From 90fa0867a58afe1a1771d0e7854c39dcc638bb94 Mon Sep 17 00:00:00 2001 From: Glenn Block Date: Sat, 12 Jul 2014 20:48:42 -0700 Subject: [PATCH 1/8] A bunch of good edits Added syntax highlighting for snippets Fixed typo Cleaned up async example / added an example with the mono engine --- README.md | 77 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index d55a454..94cd102 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,11 @@ Install the nuget package by running Obtain a reference to the Script Pack. +```csharp var waml = Require() .LoadConfigFromJsonFile("WAML.config.json") .Initialise(); +``` The `WAML.config.json` file contains Subscription and Credential configuration information. See the [Configuration](#configuration) section for more detailed information. @@ -40,6 +42,7 @@ When the file is referenced by just the file name it is expected to be found in Obtain a reference to the various management classes. +```csharp var computeManagement = waml.ComputeManagement; var infrastructureManagement = waml.InfrastructureManagement; var mediaManagement = waml.MediaManagement; @@ -50,9 +53,11 @@ Obtain a reference to the various management classes. var storageManagement = waml.StorageManagement; var virtualNetworkManagement = waml.VirtualNetworkManagement; var websiteManagement = waml.WebSiteManagement; +``` Create a client. This will wrap the Windows Azure Service Management REST APIs. +```csharp var computeManagementClient = computeManagement.CreateClient(); var infrastructureManagementClient = infrastructureManagement.CreateClient(); var mediaManagementClient = mediaManagement.CreateClient(); @@ -62,15 +67,19 @@ Create a client. This will wrap the Windows Azure Service Management REST APIs. var storageManagementClient = storageManagement.CreateClient(); var virtualNetworkManagementClient = virtualNetworkManagement.CreateClient(); var websiteManagementClient = websiteManagement.CreateClient(); +``` The creation of a Monitoring Management client is slightly different. +```csharp var alertsManagementClient = monitoringManagement.Alerts.CreateClient(); var autoscaleManagementClient = monitoringManagement.Autoscale.CreateClient(); var metricsManagementClient = monitoringManagement.Metrics.CreateClient(); +``` The following is an example for interacting with Storage Accounts via the Storage Management class. If the name **mystorageaccount** is available, the storage account is created. A list of all storage accounts in the subscription is then produced. +```csharp using (var client = storageManagement.CreateClient()) { var checkNameResponse = client.StorageAccounts.CheckNameAvailability("mystorageaccount"); @@ -83,28 +92,57 @@ The following is an example for interacting with Storage Accounts via the Storag }); Console.WriteLine("{0}: {1}", createResult.RequestId, createResult.StatusCode); - var listResponse = storageClient.StorageAccounts.List(); + var listResponse = client.StorageAccounts.List(); Console.WriteLine(String.Join("\n", listResponse.StorageServices.Select(x => x.ServiceName))); } } - -Both synchronous and asynchronous versions of the methods are available. Since async/await is not yet available via Roslyn (and scriptcs) you will have to use the Task based methods to work with the asynchronous methods. - - using (var client = storageManagement.CreateClient()) - { - var response1 = client.StorageAccounts.CheckNameAvailabilityAsync("mystorageaccount").Result; - Console.WriteLine(String.Format("{0}: {1}", response1.IsAvailable, response1.Reason)); - - var response2 = client.StorageAccounts.CheckNameAvailability("mystorageaccount"); - Console.WriteLine(String.Format("{0}: {1}", response2.IsAvailable, response2.Reason)); - - var task = client.StorageAccounts.CheckNameAvailabilityAsync("mystorageaccount"); - task.ContinueWith(t => { Console.WriteLine(String.Format("{0}: {1}", t.Result.IsAvailable, t.Result.Reason)); }).Wait(); - } +``` + +Both synchronous and asynchronous versions of the methods are available. Since async/await is not yet available via scriptcs Roslyn CTP engine, you can use the Task direcly. + +```csharp +using (var client = storageManagement.CreateClient()) +{ + var task = client.StorageAccounts.CheckNameAvailabilityAsync("mystorageaccount"); + task.ContinueWith(t => { Console.WriteLine(String.Format("{0}: {1}", t.Result.IsAvailable, t.Result.Reason)); }).Wait(); +} +``` + +You can also use the mono engine which supports async/await! Running the following will work if you run with `--modules "mono"`. Notice in order to work with async, you must create an async method which returns a Task and then invoke Wait() on the return value. + +```csharp +async Task CreateAsync() { + var waml = Require() + .LoadConfigFromJsonFile("WAML.config.json") + .Initialise(); + + var storageManagement = waml.StorageManagement; + + using (var client = storageManagement.CreateClient()) + { + var checkNameResponse = await client.StorageAccounts.CheckNameAvailabilityAsync("storageaccount1"); + if (checkNameResponse.IsAvailable) + { + var createResult = await client.StorageAccounts.CreateAsync(new StorageAccountCreateParameters + { + ServiceName = "storageaccount1", + Location = LocationNames.WestUS + }); + Console.WriteLine("{0}: {1}", createResult.RequestId, createResult.StatusCode); + + var listResponse = await client.StorageAccounts.ListAsync(); + Console.WriteLine(String.Join("\n", listResponse.StorageServices.Select(x => x.ServiceName))); + } + } +} + +CreateAsync().Wait(); +``` # Configuration # To configure the Subscription and Credential information, create a config file with the following json: +```javascript { Subscriptions : [ @@ -128,6 +166,7 @@ To configure the Subscription and Credential information, create a config file w }, ] } +``` One or more Subscriptons can be configured via the config file. You can also specify either a Thumbprint for the Management Certificate associated with the Subscription or the Base64 encoded certificate data. If you specify both, the Thumbprint has a higher priority. @@ -135,16 +174,20 @@ One or more Subscriptons can be configured via the config file. You can also spe If no Subscription is specified when the Script Pack is required, then the first Subscription in the configuration will be used. So in the following scenario, the `MSDN Premium` Subscription from the config in the [Configuration](#configuration) section will be used. +```csharp var waml = Require() .LoadConfigFromJsonFile("WAML.config.json") .Initialise(); +``` If a Subscription is specified when the Script Pack is required, then that Subscription in the configuration will be used. So in the following scenario, the `Personal` Subscription from the config in the [Configuration](#configuration) section will be used. +```csharp var waml = Require() .LoadConfigFromJsonFile("WAML.config.json") .SetActiveSubscription("Personal") .Initialise(); +``` At any time in your script (`.csx`) you can change the active Subscription by using the `ActiveSubscription` property on the Script Pack reference. The following will change the active Subscription to `Personal`: @@ -154,10 +197,12 @@ At any time in your script (`.csx`) you can change the active Subscription by us If you would like to see the REST API HTTP traffic for debugging or interest, then add a `-HttpTraceEnabled` switch when calling your script. +```bash scriptcs waml.csx -- -HttpTraceEnabled +``` Ensure that you add the `--` before the `-HttpTraceEnabled` switch. This is a marker to separate scriptcs (`scriptcs.exe`) arguments from script (`.csx`) arguments. # Sample # -A example of how to use the Script Pack is available in the ``sample`` folder. Remember to configure the json config file with your Azure Subscription details. \ No newline at end of file +A example of how to use the Script Pack is available in the ``sample`` folder. Remember to configure the json config file with your Azure Subscription details. From e3fb0421f110e106e190307375f08d21cb541944 Mon Sep 17 00:00:00 2001 From: Christian Geuer-Pollmann Date: Fri, 20 Mar 2015 16:24:33 +0100 Subject: [PATCH 2/8] Updated to new Management Libraries --- .../Credentials/CredentialManager.cs | 2 +- .../Credentials/ICredentialManager.cs | 2 +- .../ScriptCs.AzureManagement.Common.csproj | 59 +++++++++++------ .../HttpTracingInterceptor.cs | 5 +- .../app.config | 11 ++++ .../packages.config | 18 ++--- .../ComputeManagement.cs | 5 +- .../ScriptCs.AzureManagement.Compute.csproj | 62 ++++++++++------- .../app.config | 15 +++++ .../packages.config | 20 +++--- .../InfrastructureManagement.cs | 2 +- ...ptCs.AzureManagement.Infrastructure.csproj | 56 +++++++++------- .../app.config | 15 +++++ .../packages.config | 18 ++--- .../MediaManagement.cs | 2 +- .../ScriptCs.AzureManagement.Media.csproj | 55 +++++++++++----- src/ScriptCs.AzureManagement.Media/app.config | 15 +++++ .../packages.config | 18 ++--- ...ScriptCs.AzureManagement.Monitoring.csproj | 58 ++++++++++------ .../app.config | 15 +++++ .../packages.config | 18 ++--- .../SchedulerManagement.cs | 4 +- .../ScriptCs.AzureManagement.Scheduler.csproj | 58 ++++++++++------ .../app.config | 15 +++++ .../packages.config | 18 ++--- .../AzureManagement.cs | 8 +-- ...ScriptCs.AzureManagement.ScriptPack.csproj | 62 ++++++++++------- .../app.config | 15 +++++ .../packages.config | 17 +++-- ...ScriptCs.AzureManagement.ServiceBus.csproj | 55 +++++++++++----- .../ServiceBusManagement.cs | 4 +- .../app.config | 15 +++++ .../packages.config | 18 ++--- .../ScriptCs.AzureManagement.Sql.csproj | 60 +++++++++++------ .../SqlManagement.cs | 4 +- src/ScriptCs.AzureManagement.Sql/app.config | 15 +++++ .../packages.config | 19 +++--- .../ScriptCs.AzureManagement.Storage.csproj | 65 +++++++++++------- .../StorageManagement.cs | 4 +- .../app.config | 15 +++++ .../packages.config | 20 +++--- ...ptCs.AzureManagement.VirtualNetwork.csproj | 62 ++++++++++------- .../VirtualNetworkManagement.cs | 7 +- .../app.config | 15 +++++ .../packages.config | 20 +++--- .../ScriptCs.AzureManagement.WebSite.csproj | 66 +++++++++++-------- .../WebSiteManagement.cs | 7 +- .../app.config | 15 +++++ .../packages.config | 20 +++--- 49 files changed, 781 insertions(+), 393 deletions(-) create mode 100644 src/ScriptCs.AzureManagement.Common/app.config create mode 100644 src/ScriptCs.AzureManagement.Compute/app.config create mode 100644 src/ScriptCs.AzureManagement.Infrastructure/app.config create mode 100644 src/ScriptCs.AzureManagement.Media/app.config create mode 100644 src/ScriptCs.AzureManagement.Monitoring/app.config create mode 100644 src/ScriptCs.AzureManagement.Scheduler/app.config create mode 100644 src/ScriptCs.AzureManagement.ScriptPack/app.config create mode 100644 src/ScriptCs.AzureManagement.ServiceBus/app.config create mode 100644 src/ScriptCs.AzureManagement.Sql/app.config create mode 100644 src/ScriptCs.AzureManagement.Storage/app.config create mode 100644 src/ScriptCs.AzureManagement.VirtualNetwork/app.config create mode 100644 src/ScriptCs.AzureManagement.WebSite/app.config diff --git a/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs b/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs index a085072..3968844 100644 --- a/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs +++ b/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using System.Linq; using Common.Logging; -using Microsoft.WindowsAzure; using ScriptCs.AzureManagement.Common.Configuration; +using Microsoft.Azure; namespace ScriptCs.AzureManagement.Common.Credentials { diff --git a/src/ScriptCs.AzureManagement.Common/Credentials/ICredentialManager.cs b/src/ScriptCs.AzureManagement.Common/Credentials/ICredentialManager.cs index bb05485..db5a540 100644 --- a/src/ScriptCs.AzureManagement.Common/Credentials/ICredentialManager.cs +++ b/src/ScriptCs.AzureManagement.Common/Credentials/ICredentialManager.cs @@ -1,4 +1,4 @@ -using Microsoft.WindowsAzure; +using Microsoft.Azure; using ScriptCs.AzureManagement.Common.Configuration; namespace ScriptCs.AzureManagement.Common.Credentials diff --git a/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj b/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj index f626ba2..e40ff0b 100644 --- a/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj +++ b/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj @@ -13,6 +13,7 @@ 512 ..\..\ true + 66886061 true @@ -32,39 +33,52 @@ 4 - - ..\packages\Common.Logging.2.1.2\lib\net40\Common.Logging.dll + + False + ..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll + + + ..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll + + + False + ..\packages\Hyak.Common.1.0.2\lib\net45\Hyak.Common.dll + + + False + ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.NetFramework.dll False - ..\packages\Microsoft.Bcl.Async.1.0.165\lib\net45\Microsoft.Threading.Tasks.dll + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll False - ..\packages\Microsoft.Bcl.Async.1.0.165\lib\net45\Microsoft.Threading.Tasks.Extensions.dll + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll - + False - ..\packages\Microsoft.WindowsAzure.Common.0.9.5-preview\lib\net45\Microsoft.WindowsAzure.Common.dll + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\packages\Microsoft.WindowsAzure.Common.0.9.5-preview\lib\net45\Microsoft.WindowsAzure.Common.NetFramework.dll - - - ..\packages\Newtonsoft.Json.5.0.8\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - + False - ..\packages\Microsoft.Net.Http.2.2.18\lib\net45\System.Net.Http.Extensions.dll + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - + False - ..\packages\Microsoft.Net.Http.2.2.18\lib\net45\System.Net.Http.Primitives.dll + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll @@ -89,17 +103,22 @@ - + + + Designer + - - - - + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + dh!x~msbH158H66`#R&%GBerhI|8KdT9GqcrfG_zFAAu}7)lpPb+ zXP=tJX6Ped=dNb5)eJLJSIv`V+NfD!rn{P5W(KQCj15blsOD@l^VD2wX1SUkW;UxC zX6AsJS!OcU_*N`7Q(4U?W*Vva(M)?ag&quR*jvq6W|C@Jn3<{OS~CmP3^B7>%``JR z)Vyrwu$qs}WUlqC_|{ByHHmRy4fE7gG1FO13p4%HTyJKKnqg*Ut9jJSQZ=ue*`VeN zGyBvWGK1If@NY^+$?;(gv(@C9sjKEnGi}t|W~RHEQDz3KdD_fGHOtM+Q?t#?ay3WH zY*thDp|FMr)HE=YvCg+5-%MpSx0`9CW}KP!YUY{gt>yzWNj2Y?nW^S)GYi#JdN{1% zYBjCQ>`-&FnZs(vnaN!5Td}}Qbu}B!ie8?KIb#><)7~Bz0Y~h zk9+RVbLXbc)}9a9pHc`pjZy-+ic$(`rBp)RpwvOWqqIV{tGBgxLe!eSxi9E}oIy!L zYADgSOfMd$6hOKuMUWpT3COND+q%jj$55&umr$A@_fgs)?@+oRIg4%PUdVV#268GT z_ifXQ>nSnFGn6>wb4n7jO@png0&*Co7IGn_8FCk;9r6aH8?uR#g6wpQt;>1GwD~AX zKICFbA*7j70{IW66!Igb60&ont*Z_)h0+SSgwhGQhtdOigOY}1DA6^h7rWeQ>neau zrW8TWrX(P>lyb4Yqz^gvoEX-F3(`o8H!ic$cH-f8P9g2X5ZNC~AJQckIY z)KZ!tt&}!M7o`i5qVz(dOKp2HkQgPm$Mm9v5`$bqi9;TuBq9H$R6ug?vUSx$4x=B#Ql+pxwi_!+!MCpPI zz1P;>3mHSnK#ri~eq?%4Mu|bHDRIbBN)qxMr2^7JsfGMNX@(4Iu`O(ejHh%%rchFl zb1BYR)8-mVKIA@1A*72^0{Mzk3fb~L+n!3uo|HPsbV@7a5=tlJc8dBN3u|aDDTiE5se;@?X@dNl(gs;e>4N-B>4j|jfNfz0vNt97 zW7CTSB?kFBB@Vfcl7u`!ser7Y)IvU?G($F1)L#WrTAmb=; z$P`Kvaw??)GM7>dxrWjVSwd-tJWlC`tfZtMA5r9|K)TIoNq{BesPJ$Z$$I zq>xetnM`SdsJCoPPun1KDP53SN-tz7MSV9}^`eWCyWYr;lo({xqqeR%WEv$2siIUs z9;MVm)>4`wgCDb*)!$TC?J1&kLuOG@kOqqLnJM)WB_EQe6hd}vvvrj~4xyAn$|;qQ zn<#aVrzq<0qN_Ilm(mIGAGdY&Kz663A=4<)K9lDklmbXIr3msWB>~w;DTi$Hgsr^_ zGKtazIg8Q;xslQZd4|#pSx?D8w)&T?EBABLi;0vNyr)}ow7p4~nQwkvSC`FJKN&?bDDTfScx0$OTaY_?Jy_baJ52TgS z1zAh!h2%bCOJyL%6!kY=)!tM|i9wc8;t=&dk*Pfi$$QpH1*C*h3pth244F@9hulQz zhO|;rkQXWPvrygU4=L*Jh^k(EPbq{9dCs;_{bf!Svn!<(auB5wauTHuQbB2jTubSM z+(YSsJV8lAR#KuHOnW}06hJmoiXd)>?L`8zEu|bXhEfGNh|&a^Mrni0qI5wnrSw8> zq+}rXP;$REy?BZegS<_NL%yRVA;X@x{i=ZMMX7~MqclV2QraOmQ@SBfP*RY$De{wH zJrlm8QKH|N z81){I*((bmJ5q`u6DSGDQIv8>DWwWBpV94~+V-R%ds5_w;qu?&Xo8XtIge5Z zsil-a?x&POR!}M->nL>)=Ox>oR>+Q&PRJxm4`c=<4XLC=zcamPq!d7wQ;HyOQxcFg zr5y4br3$j;%eKu;kew)PkV1<3zM>k{Ln!J?iAttXGLW+-hI~kAhx|h6hU~b)=1D;gr8t{R3ujUCA=gm~A&*i@Aa7Gj zAwNwbwxoqO?NJq;x`RC_RveC~3%Qiu!7k8s{%51(3ljZS6&nF_Z-4C`vix zJW3VhI*R&Ek*ezFWw0U2O`c@q!xsg%{ zX`$3Xo~5)xR#Q45eUu)^W=a~e?Q6Cd(Tr*HI7$IzGNlM|8YKalPbr7oNU4I{Pica@ zKxu=#N9lrWr1V0<*KM0KkWrM}pG_|&Q(};EN*r<>B?(zZser7e)I!voFJ`+pLx%mw zN;_l%r5kc0B?YOZIKP-S-%iPgbWjQ*A5%&ozfwveBUah=R6-7<)Im<8v_h_+bVAho zDW<1AkQXUw$T~{&SJMmc4O^-JGKx|JIh>M!%%YS-uAx*x)SD)zJx!2TDQ%E1DP54E zt8J-XNFgNyIi8Z+Z+bDG5`)}Ei9hEf1Iic$o*n390BP|6|iP^uvA+qSMI$exroNGYWYaucN&@&Y9T`I?gZyXnP< zcWhlT$kCKInQTOVQKW@X#Tr4 zb3SA$r4X`^QUZCFQVK~^Dj}oavzhB4Gbyc*n<<@;E=mvNM@kwJd*5b`=9pg0pcFtB zQHmfhP!fUBCA)`LBc~X#*DUN5_d?O_v@-n3mlA)A9 z_E>8(mqN~@R6-U}>LAZjS|KS)Cq(@%Q`7ezNHHZ1nM;ZKrWehW0?2Ag5k&o^Sd%#c z8S}A~a)?@!G%;0>8cGvH{mnBI(*{{b>4F6RvoXDpv6KwtcuH&-7+S;oi zdr_Jo$5YxM^C(@ATPVGdrzjc7`;^?M>4jPuGcz*=*?zs1IAkIv2|0yQ0a-w)h1^ML zhP*&&hkQoqhU9)`YfnKApvcF~^vKVmuQ3WOlgDE zQo0~dQ+gqNlni8>FKp)AEle+pDKW@JlsM!bN)n>hOw6cOK)$2YLPmUPW11n8DeVxo z`eE{PLvE*}AS)=&5Yy(3lzfO<$1r&cA%{{*AhRi@kVZ-+M6F1eJav#SDXoxU8*EG` z++@JV&X3sAt}0#A+eI_g0!AV<_#AV=3K`d6X2So+2N*H1mg&4|#`D z2-!p_fo!wMwx<-bFQpQ45~U8Jo=ls5wL)&AbV8n`^guqMq#^y3=wD1PcKE?&E`S_F zDT1hP^PAcekOh=-$eolb$P1Jv$p0v95c!lZGIv3Cru0G%rDPyyQF8N4FBVc_kozcc zi29bN=|vLqIi&&;{mI7ELey6bO{r#xdJ=4;9daI}8?uO!f;>u*PoC=e(@n{Td`BsS zglY> zQv|t$l7KW)${|lusvv79O_1*?ZIEHV*t)tPds2EK2}%ZX0VQ`k(~BD^F-RLF4tbA~ zg!EG?AR~XZ?Wu*7P?{lgDD992N;l+LN(!Q$hMG}TAHP+1E@8iwe8^ZzA!Hh*1X4*U zg)F61LSCZOLB6E4LWccjYwv_ir1U_}q@*F&QKH+MUOYi5fP6?Pg1DP)T?xn-N;za2 zr3!K>r3rEmr48~rr3>;4r57^pcUyY~awa8rxambBB?ft&5{GQ2Bq4jrQ!%qmD&5+fUc8Dv_rA(e~$i9>mBFGt(1Y{wl9P%`!3bK*X z1ld)d-F; znQI|OQ<@=HQraPHly1m6N(z!E&mK%>`Pj8?^JGdsq>@qyd5BU1SxYH}Y$;C&Oy)|6 zdSYRu4l7yymGlq!T2Q%WG0P)Z>WQ7R$- zrPM*xeX7aa3OS0>2~l^PCZ-3nl9Gn_avx@5q9aW&4y6=8swhQ}7bpoxKcyTpQSOaQ z<|;@fr3vyBr46!)(goQ|?pI8nUWmFkGLnI)J0T;vyO>_Ap~N6jxnnRfamXY}5>i2_ zfV5C*A?jYlfO3E4oYgXGJV zqlsyS6jM4O6_g&x5=t7Pu2M~&Xw39t6QuxBAXj`QrU+6@NkC>(${`JuDo6*V39_Ej z1{osPWu~q!$OK9+WF{p8SxCwKo9V?eN({1w5{L9tl8{kyJ!NXIfJ~v(LgrGMAxkLj zkd>5fNScy@443O5Q?iBno3=TSN# z4U`_pW0W*xH6^;c>BZNS0>}`#$}qJTL3XDkAV*QkA?H%6Ahnbx$ODu%$Vy5VUEjA-QsOU|QG>8AnM$ zrcj(cOqFxC6E=AQph?=CB&8UJmwE%G^G`C6r~d~htdPNnUaP)MTw3x zz4(w)0NG3_f{c`NxM@!UGMQ2iIge5WxslQYd4kdgd5_Ws`GL|4QCA0;Kac|`x#LYQ zPNT#i)s#4-g_4B4N~wT+NvVYlm2;-4y%|zSX@?w7>4wawq#(CZBR$-0>~Ol z5hO>>8zyrCGLBLXIf_yRIgio=xsK8Xd5F>ld7aV=`I3@>43=|(X;1E6rWa!>xVD`Y996S9)h1KCJPL$;Npsi`YE!Sq5M-HjAL=1__tODGA* z>y&axhEfF?Eyp~Qxd}3z(gwMb(gkUw^g=$SWFSN2IAk*C?qhl}krIQb_%;t(~9jU*vz z&KjwJs2OUc7NX{(k!FaReMZ_LYOWdShNzikBn46P$cVGQX|tL&M)DzQju8>}kS$~kOzjCs zA*CF00;LLaDWwT=E2Ryhwt&gp1^Ix|3;BhTf&5i^V@l;7V0tl$5`&ydi9;@@Bq4WE zDj;esP3Bt2CzNK0E3Ggw?T}q4-H>8R3UU@j{^*{*{;8qlLms3QLRL{qAm30*A;Y8w z)1FGmK9o9$>amGwgKwhMzA?qp815Ga?^8c931&}e6BFHh61Y{ni9C8Px z3i1-A3GxM{4U#MWn%cV{`%!u!r%^JHt0}n$nO-cT#31ib;*eh`NyyIfuc^HPQbMVP zoK0zl)KJ87+o zzNK_RhQ)1rdLUydX~n~Vq1F; zBu+^~$|+GPug0*BQUGbE6hV3^2}tyCTUR-xkWvLnQko!Dlr~5!MfFg%X9cAfvYwKG z_>*nzxzaLKY7`{~DW<4VP%&kcBxE6_0@6aMg{+`7L)KH&NU6;J5w<BIs z3M$VQpf~KCFD3t9b^ur6>>eL6VgiQfxJRVL)KBEGIpvL-W1!O0!WNf1UZJ1 zfXt<+t*i3fN~wZ$P?{j0P}(5jF}C(D$nKP0NP?1qTujN8@m00oPKiPOO^HL+Q<4yO zs;#{OGKx|QnM`ShlvCOv*HOA5%P1+xYKkM#dLV-mwmoUcC`weerOIlwBPqEuCsZ%WC^5(tlsM#eN)qxUr2^7TsfBz+X@-Q; zYzx~VJ5#zLlPD?3NfbxsjcW5;NY#L z4U`^82Sv?w)#mk-sLVDcL#Erh3Lq0GMUa`41Y{wl9I}j31zAIBf^4R=LB^h7Ywv>0 zp!7m&DH+I9lw6sAx?hwSWY~!|a~u+h|`I!=jj6B8Go`f7tsesI*)Iyd}nju}3cE~15H>6;utt$nYLUCj-Qf;oJ#BrIr_@2JD6NoXluk$wr3dm0B@HP!&DIr_Jy!K%GNk}An^FY1 znUa9CQ_3M9Q>q~T>9(#W$QVi+Bthwd%%}81mQXT~mngY%EKt2jQDTrtsjXcdcT~(6 zN)mDmr2Q5HkF1+ny50;gnKH1*H;l2c-_O zlF|zKmeL6sG0WD~137|{hRmfz<(R8_aVMn!(nTqPd{0S0c09+{RSr3TQU#ewX@dNd z(gs;dQD+6!o_|w%A-$9gB&Xcgo-0RlRca(9204rphm=v0kgF*bkozgMkXI?qkQAjI zGW1;A9(BG^?b(--f}Boq!74=E)O?>t*qDP%0A5^@5i4stoA74iV3 z6VgplXEN2opDAg`$n$OOQ90kJm|}`Lw<$S~QUs}^Bp^>w${}khRSzL5mhhVr4&GZq!dB6tFY}!K#C~kkdrA@kV`2|kUJ=CkPb>05{Pq=t-TadK&gbpDRq!iN-Ly_(g|s%^guc(X-F?6D(70&3um5f zPXVNWQUr-p5|C0#Ii!kG1!<-4Kyw>bgg@aQLORt_-A@k}KCDDrOEP25F+iAumyq zkPVay$hMc+x@sYNQ<@>uDeaJpDcz7pin>}-Eqt2d$Tf|U9!fssXG$St_yXIW6379R zQpik7CFGx!I>=H=E9BplPA!d2ugK2w3vS|-RJ1a!aky2Z`orrl?M170( zFYX#h3XzZoZtQ9H-v7QsjP-om^ke6H0Cq zX%pGmRc99^%S8SyGRn=Bg=NS$`2*8dMoB{?k33Zlp%5sP%$H}urZ?`2T~?M zPNS$ZkSbM6nGLz0vJmnHWr>!0XOoE9oBrl5)6$pokhD1^Ega*n(PH);HDbHFYX``i z(y!g!O-7=V&vu;mMfPy}Aq`2#S*yjDvy0=bbhfO@(R2sv8TIWfP5`7 z!A%*7j*;>CNu>!nNK1B`PIBW~8l$_O=Q#c^jx)(E(NfQSXOi2gB|FC^ zxhWIl%$CesN~r_gn4F~s?xzR2g<7(u4su7xnM3W}S4b%}dk=QiSxQNR$aaz^?pA53 z)|qz_In?dYlAX_oxhu3}Gau$|K%NIA&uA%C?8fAHsxrR`IovJNlFc*OovkICXR_OX zQa_{A5pFkR$7++g#2q4g{=l9d>E>z4<~h<;M^9Dz5h!((TlxP=9qm^AzfwoLt^Y4( zire=8Vy3t~TI!v@OJ+6l$GG`&EEw3HscwOm>=vBrs@X3wdVg2*XR2EVIaZDUYW_@h zmq2>t47-P9KGto4tQXl^OB=+_)r8v)v2!)yu7KFNdYrooV(02{ZV%)i(hJp|X>Kp% zY7y0*Y3>F{Jz|b`)lpCN;x5D-?>e%b2KIfr8`aY2JR&g@rOngbd5~vB4iP!Q?#n}8 z6FE}kB+4fusy$ix@=sEHy5kI$*~^%qUt*5edHVlfdroqF`TuMSPu4LLv|OdHZPeG! zlWwtziH292+D~?;K(-N4qj9pEgp8KjRSRdhrI39@RLl&wMN8ix+ly1&Wf0qoQ{3fR zs-vTj`4qPkF}7bb-7bh7pPB9kBRRIGGu>P%Kk)1@)6Iw2v%^fc3}Vj?r@C!g%s!~v ze5yO-DwU_+*;oFb*)kfZaa$~%ZF-s&J2SIl=V4Y3l|1UNNMvQ|pX6kbxqqnZ>_5r8 zKgm@h>N+!<+0O8+G)s)yI$2rvCwcx)^7@~|&iQPfcO*uA2|p`eiCp;y86;zQ!yn|= za~lqH1oaex2c}@@gMUV%DAE#vr5R z-^V1+nQkFuKl%3=Et8DsIj^os&T@+pQzHMW%xAe%AScVeYHpn6CLy-=GPe|BYcF$W z8)4?N-Fb+y^XF`L0pvXSS7koit%ax=rD~t$)!o9%;&o$kVldEe0PzSzCm_w%yt{JR7Z2=8sIIdYqr~r7(0f4 zcUzIij^W?k_FUEG3U@u^HMF_HO+(ba ztYR*7qgR`G_%32Dbn_r;Usf@5-4PHqmTKhZx-p2_yH(6ZZXx6w#9ZV~f~cc}ikasY zLpCF3o}19pH^?3nE_RcM87wXRQMS&-ZW&_iQDVM38!`4gINz;Aj6H5#;#MJMH_4;g ze2KdVG4@DO={6u{Z^Tr(&4{tbjeoeUh_UC&f4IvLV~;&^c1k%zSv{Y#MWYBgZ>e{B-T?CmZ zqRs`?ZY$(e$_mI;lwQb#BI+zt?H1Ik_IxsE6{QriQA8b$tKFh&O-#P@Mjf%M-BH&W zIYvYs)vMhyE!q9O+O5@6?<|m*nDpXGw;Q6ya&M8V+zHp~(cm#^p*u-Sz4NfdOp=&| z?i9!yB8Q1w?M{b$BclFxNsU_u$(8<{Byx>A8?vWJnMkcW4|0ac-$kxp*PtH@1m9^?~| z$3*Jf5s)2Zbk&yu>)i>E<3(N;x!IkkrO~-qWR=Kbw;wTAio7e*;C9_$>bgnfW070j z{5m6di)<8Wa(lHjI{y;+Rpd6euHMAFC^D$uaqe&@+-&3nk!?kmxEaU>kzGXYbZZxz znBPPSMV7h^4Mw(*ZF``|UG5slE+Ugfn%xbM{X|X@x!cXX#gsZ)WR}Q1ZX9yD$R#58 zx=G08BI@t9w73f(cZ%F9a-Z7;=@4lZx!?60P3HGR9v6AQ9Rb-WqP~IH>c%0VY`3>W z9&{HO;XUI+?piH1(H$j59Yr5<*F$y_QAf6i+_aYLoPXHOyH(ZRm!qyB*GcAOZlRWy zj=hF_#GRrgdms0RJ6%imJot!PYGQcZ@`zgwu~!a{xbq-|s)bV5qwWI8!6M&lsnwEg z;bU%(iQyjC=Jsl7bf!wF%~Gn(jW(%XG&-|HJo#?p<8CSBA0knaC)_&7jUwt^_+M^| zmU?FiVwSs=x9M%cQGL=)YcYM#k+aN`u5-JJsfntyuzCXXlpEDj9aU#x74wvvr=`(( zS~71XwLk5~wA4GVL)zUGWWC6?67!53zeCsVq(%NJ@~qnl*(@?rq{AJx#Kc5pulk$F z^X?SLUq#e2&llV($T$&owE4GN2bn6Oj!~U%vk~_6MR${yYL4@ZZoihs=o~3EUg~<$ z_3u=*_vP5@)fe5Umh4P;+0D~pMrss>ki7$X z#a%EU&r}`LHb7>Gyy{L^YPN-%QRVWD<1Tj+#NJzVxy4$tnY-L_E%nZ2(yuclPZ#fi z)YCb&@4V(#m^>Vf*WAhhqV6kSa~BQ}bzk|qTc@ROkj?WSce$2&=NhT2T4aS-@6@J`f_Z)zIRs)5Y?|A+*J_UuZ-I> zKvchecGp8}zkYSo5ZkZc+#c23?WuPj6Ui0%ixC3U(YmB!EFWw+pXuN`8y;9lOMhfIv!f)l**hfQ6hB+nU= zXFo4@nTfI6bfVV@vDIT2FqE1#u)zOtA>bhmRSBIF@h&jP) zLQD^0PVia~vra_K%oDw3h}k5f?hsG(q?_{J${@T+RwreKpX9acn7$ks3PT7CA}ee6JSrsK{v|v%NaVb0X)9{M~DUbctLpGRJFyyerZm za)GxT@~OyDkqf;QkZ&P#y)}^EMedWBi@dd38l9naInJXZ^Sl(~^uNnBi^zO0_LS;Z zqcc)sUKP2-Yl2J=c}wInZ^Y9kX0pgfB3F2E$O$5!iCpECLCQqF5xK^j2bnMOlgPDR z26DN`5GTjE-kZ>FGAkJ_vdC+ITr0At$c^4A$YPNLMC!bvXU(>FOk}c1y_bY^icAw} z@JbaRqS32F%og<~=2ou?F(XA(%&p!c6Qk#I zC^M?bOKCCJ{AE(t?cS*8R134${C99q*}WjZEzn{{Y=z`` z%xl&nZ{W!FnEEpNp+V!qTdg)2=dC4+M0 znSxgi@o&zNKW~!bJm)Qf>>#qeNQc)B*;8Z}kr%v8kc5c3v+MN6zN#`eI%kONAu%s{ zlOTVGyzEWUQXgF)vY*7f;&o_Q;oKxLS?(rY@luebkd!b?>WQftKv- zea(w$$!@RLya`$wo#&<0fl}9N-U7&*BE=%Fd$HHdXnZO%Rb-V{_J)yfL{1WU(`$zO zDsr00+g=xBkUZx&M`VrH3&|ImBl517fs7JS?+Crey=hO8?_^JTpHloMIrUF+-k;>M z|0gSk+Es@4y&bQ(m|S@?ag+z8LPJ#5dpr^sElT&q)p<#H}K zSMG^=yb4{)jQnMi`2(+NfLtT;k(YQ=)t+64{n$%tsgBxp*pIz3#I#6z)N$i~-fYA? zBchI?|MMylqwY@|By+DN+ojJbkEZotNy^Ep#@E zs8Z{^g#+XXkx#uIEsf4r@?7c}k@a55TV`&kd)Q8q&%Ei7Z6xMZkv?yxmTG5j5tZk2 zuR%+8uBN;eEi0U(Bxbe5q`YNX8l5ES`ofF8t?F7FJxk2JF<*I$-Z5={N@SzR*IwQlBd?46DDsUrUCUxe$!{WQZ^OGL<`a?7&2hf< zHbFLtsJ?&aIq#_$)2}UM&;8!Z9U$rmxydUSAVVe3k6x9L=$5ybE5@I_4#)^f-upUp zbb^SwhWy!^0GWcAU%Um7nTYwtTcV}jnJuD@NWXGE&lOQ;tA5JWBI-F(R&EthSFl<6 z*PrCoKgru7!=+!@QoSO(4wT@nQpXwp2l+{2)QUVyac#ZdTdRAqkb7mnw_Z!%AiGM{ z?`=Te?J8BjmqCnrKBk`h|K>S8W(@6H4ZnFqwDb+Kt5lo4JjB>ls?A;jV(j|z?_LZs zYL#k#>BaBf1jN`CXUCs}7_~~JVjRB&F?J0)$4?+etu7rZF**KB#Mo77*DphiTFFu| zu3v!|yH4%-m55O*St`c!7b3=PW#6xb*sbjQiy(F-%l8|Q$F5}gelue1N><>vBF3&{ z1^#lx*p;l%??8-Q$qM~0#MqUrh~JGEyOI_0*CNKQQbqmsh$&uZj($-;jTpO1HOS8( z#;#Hg^8F9gR?e<+4)%v=$*yt^_VW>AXZRNW2#B5GTlk|Oc7|`^#~^lwZ{Zhesfljc zD6>~aehYsRV(fa{5Wg5Pc0F#0pFoUSBU9@{L;WOT)Ee0dl4q!2h8Vm0zokDLF=~yh zRARRDD-mP&udVzg5c`I}R(^|?>Zp2_f4-F3%5T%MGRN+5x&C@nD#z}XxxNgb{I`<( zpp_NDM9HJ}+^ifSqW11we}m4mP_MbD_X=|Tf{)a;xWzd`V$|_xYrjED_C2&={t_+q z&czaQiR2mPw`eg(QFYe)i(j->@45O2pq>cj`AY`KLMgSaKjgnE#yrowNo0G!Kub;Z zX34CMV>|d0v@DDsJwu+vYnh~FrDNZ3*}+d}S>f28?%K^_)E!nG-asGk`?7Q)lz`h%w6}9g4 znA|&L8R3uLMMdWCa!zeko<;e3Yxx?`r z%os-P+5BjK3B;bekM>&zjPq-9)qS+zff&2Sag4uKi@EN-TrwZyM^k3@+BL+fehgyY zZJuh|Gt`bDg(F58YDaadA2)e&>=;hf(_t=`Ye!9i1V^I`v#V={IS)Dq1L+mr1FU z{btA^B2Q>prX~Apiy3|g#P)rL-)V%uwwU2h`a+F!Uykj?48HQREE2K})rBiO4FEGyPV`wIc6}oaJ|DF-Ly2@09r~v}E5! zFY||drD|UsweO;r`FRlgE_#_i0&<6BR`2|u?N5L_PniN)ODTh7C<`F@x7$1okbNl2 zAjeWxKrW!Hg)E|Mg4|CTvcdH0HOeT+7nDhm@DAIa>5#FM*^px?3n3R!mOyTxEQhpG zRzcK?u^Gelkad)PNX`-)llQgh#SWCQkb^13kkcqLA(v9-L2jiif;>)X(URSp&h|S7 z$avO(lLfBgVaZ_3T_Hw}MK1K~w3wNx-lLx9uhL>x z?bZ947yD~WDZOg1GGFZXBBo2)tgaL0`zgeHB%;nc^ZiX)%$<1P%axNq{To$#qq9+B zhKN-9WssjBm-_Rx)H~swInFi`v%t?!n^N0}s61Er6SUMjV?}lrsq!nd^yM5XGDf7@ z?-(HCMXvOVztwr7QzT|zk*oYNh+0usaL}?^JtMI`*C9I=>8J&js~9a^%o5&rJsKLLpJF={9W7aex4C$yuANB zOY+?Amkf{#MDFyPv{XAAC3B@nv+w_)^3*%7tmoH=-0M%*QsWF4QR~$A`Au4?ofxFm z&->Aoii^}qsfYbyE!ECUk=sNb^;@(oc4mp(Bl5WK{A5Zk5LqVjFF%=4QtjL#qMj!_ z>33+UcUnZ$bM+_v3`9L6dQM6`WzTU#?R9uN#h$IQ(k^+__0Kbm8CB{yyUG<>R>q6$ z{s&owQqQuKJ?mxV6N!0Q+LM(ZA7>*^UbGTi zeVVN6Nqb)UgY<~J@&{Qb@*3rC$)ifW@dr^c-G7h`B5Np*p;XTwM3wr;%1}G<|D)KE z&x#%StUP(4!2_?^*c}@(D}*1X)KJ)@-)Lr<6j-ddd{YXO#0HeUw_r z=T?GN5jBRXKZqKQuP7Z7(=YPPA4HYX?*;^z>@;E`i-oMNdNj-JU3G#ndd!-RCkf%n$gaNX(h#ySR zV$Mx}6Nv=NwDjfJ_G}Rp|7!N`AEnJD60=26(r+ZVJI6UzWJoamHzRo>Gem|4b(@Xs zftam=!rztj<=B4Z2EC4Y4W`~XN@8Y7sjY*e93_1@wx`2_a)|BeUxHRG_0FkMYOa*Z z3zkFXi!2b?Cg_4(57{Y5gQFQQsFJQx8PdXFjf z*B}PjO+>|v2qr-eLCg+8sg_3P6pj=StYW2Py~5E^pCJ2kQ}|Rx46c*WN+egX>b>W+24pb#>o@)%mE@pv`9tr-^yT`$X`Sz21y;0y=yxtm^VQFB4?R{f+a@yCgH(Bit3b~ZB400Q#4bnzgu4Q3#mB`N0o`Zu9E!ENYMRwEDg;MKKDjuxTQsev}qQ)m4 zv_{O__(f!#lsY7c%8%>SnR>ex6LV;=Ov{R#u_F6O%wa(rLZC4x0Z9NYIqumPfGi|XldLGEDHixrL?jcGximKx_9Y2h?EVjqw3Ss4tuPu{(h zQqw6rid-ymLeOGL>Am1ekrRUsBisv;!3r(ey&xHMBWA4RStO-S4tfx?pUBNx)@#XL zEzbyww@_`)UK`H{mP72d@hO2nM8%jfyiM|)5{xhsJybF`i_8p0X{nA*7f~@YgF?ip z-$1FDQ-dOi`VEwdIW;JT%#u=S?>;S2}11+AEN(*ej5%ERa0v zzNyrf3a%EpU+T)rTcz^0n8=xoxkX}z%RD@r(juasOwOXTiKzRpb12V=sCPKaDJvo8 zQq-Fm|B{&V{vc0F?XxNGA@dx{=OQa4<^sxhkP6DLBL9(?3n^RNZ)7fITgXMhay_cq zcRc0=9a_wrGjB_tdBF-TeS_>c&kI&T>^RR0dLVY3FAjQ*D2Uze_XcHJ7COgB zU25-c36^MCk#m}e>gjz!o0h&DyG`%6dlR1$KVT)8Bc;|!n;!@^=~8AZe<9KuO#h2& zPv0Q>Z27@pk&zr*>cJqT#rz83TPgKWkcKRf%o&k~gAC*bk>5p@1%95&Z0ZUlInEa_Ib+%2V!5P3RSrR9^H$3zlZ)|i+I8O(?kPRXy=$I7bSCLb+ zY%r1&eL&9CTKsKvPqkbi(jJsT4x8aPl_JjsYX?ZR$g@F8OSO~tfc#QPf}`{e)qpci7Vx<3foc2K3Nor|PBr%C4j2L6slDn;gt{4a=W z>C3TeNuLCZAa;#xeXtCrYNS+^lv*EjX<6*tA#$t8XF(dJ?Ak3K^_z75cxJ(0C`SCmHIAN2zgcHKO)};iy$A0 zs4L-3K@;R_$PYmaB$W61Kaf&C2ECANMAX&tPeBT@n}~XwHxs0_WRE{T2N^9j&i)e9 zCwYDjq9aXD?GfqMpiqn1?rJ@yKPVX>>Im5%lnoGdF8D22FhJCr)bByl0NE&Y<%Iq& zs;=yu_rp9bHC&VO!x0d>Cgq1Ql(I832*+y4uHy&c1TERst{{w?QkU6uXNz00yN|7aUwVWRo|4qfL z$XO_Iw3OODoHszGi3|^0wA4GdO3VzA5n&qgsK{9&JB1lYC!`>hk4mXt=(`fNhPZP$ zN=sw(eTkVXrACH@S{6H>id1T;)w0sDM4pl6iK34bCu|54;ST;bWN$q38d0H0B&rHqg(%7(JfGm`lv0=ZK zdS|G_G>VK1C+(p!XRq1Dhvi0`Jc&^~9Um^xVy>3&)Ur@Z_KJFZxJXNOj~gF07~vUz zeAuKVTUTM&qQ&fS_e$o%FlB^m;`@eaE!9!`hTFbjKVs}E`F^24PW8h40#vOx?HA^1 zsfmu1Ui?ck7lrwdB9UjbjDpzTD()YSMIQB=S#<}!e^`W=sZvUvQznLS#GEIh-bkDn zPC-l!Vh#wWBc>TK2ZW_sviF{o!di&E_dGD{hS)Xw1H+m6GhAkUr&HQ|VA!O^jF>ti z9TYAfD6*#<9L5UGXxLSTL&8FcU1c~VoTR13+45|8hgvcp8YTzGTUx3h&q^=Us{LW% zGRR8E;o(}y+al`ygd@Vt08#Ht92pkusoGQHd?YbzCG(VUx|V83l}d>u!g&MaN0I4a z?Ou9jIzLKGFj(&K!>YY?zZ`i@*BK@{tbt3=KY7eX!+xmjdZ*bKQ^)vuc9XCl99 z$<@;6{2=0PA?*%}OpHE`sbkBWFpijhiP=(O=7h-svYp5UVda2Q1tJ%QwTRhnH+do} zGB<1=AbW~j6n1Ip%h_s~IgZT>d$eTt_j#dTWVXe25~JSxniod3EOthTsCVP%g_9tA zK`stwn^Js(Yks&;OJg)HG3qOh^TS1uX_N*d&fi5;UGu{wf6B8QG1o}ULDGx);U>t9 zBC0)?gvtF?n;RV^M@UR%*bQkBIY#8tPy*z?l|vsFIZ@=Flvg2_Q|xN#6%@N#S`{WI z>TRmG*O`*1IxIKh^h%!DB3Fjpkd%nprdNf%TC(>$SA{7p+54TV!n7%+GppaoUlsNb zkc%Yq!Z7auGo#XySv^Op2}fwDj&2rFN1K{3hL|Cbn75{{2@4TZAfhr~6HYQQx~_jn z=Gw4%fK-cI7j818bjyywPWwU8p48u zRH^I}yvDFdi#cN7CGBYpXKTs!v?;9BlI>|zSoi<(G;y{ZCjC+?&RIEDM4g+ma=wT< zH&KFXMAY-T+iafTPRQ+6hN_wQu(a?Fikg{9mQWs*QcsKAN$G?vwGyb&cv)iZ`h&bF z(oA_*N_`@74`rRmMv;3dYUF5sg8axZT5%AbBVCQ#ON8Ndb%u(#?Ab( zqw#1s0%H61SU4MEN8|CZ4Pr;*iLeu5x8T3RUWna-%R}c7RadnWdDQH=Plowg>YW`# z21^T{3>Row>`V~(i^x-9Ct{|Gj1YM`Odh84)H}08b`@z4D~gR&i>Tw_v*9u=)y_>K zs_)N*9f)~QWKS(CARQtHiFAZ(As>nyF7kYsd$`G*5jj!hg>X7#+sEXHE%NVh9%O>Z zbt0W%Gh~{G%KT#34yh1%P~@es8*(FJUJg@`Wsnu2GuhO>TBJ=%y%Od_(jqU4tPBev z!`e(;uZBgC2_mYlt}tPQ=cd;@woZGO?xIzarP@^(a+($be>Tlh|xe}o#1z8u@aHDQsKl{uG5 z=3FWDZdigC+rsz4ssW-}_ zim7%^7g5&m8BpA{~$pDYZ@{Khh297Wr0W z`$#Wjy~t*f;gK{XBeKPo^3A451~TMdW|e$IL_RjFM{I(~aEaL=64jDjH{UUmtHsRl zoh4?+$V?;rdhkw>GA-F(t?m@5K#Y2`T3sy{L>5BSo7HN26-4SFGo^MFvvZ^gc`gu9 zF*`?E5OXDBMn;w)W(i_OM%oec6k>LXbRy;z#OxATg_t#n85P+8`4lmuA{oech}ktF zAKFzjGwLlj?b$UlL`zLHPeiqObR-WkF~p3H6d-02Vs?wf5R*X6ZjlKl#wint$*9I6 z=^3i7>@hqRaZXWU-sT;rV@hWlxj;(oC-S#Qg%KC7!U z+qYi#h!jHX)0J_NDlPTS^-}6+DK#!qrv*ng*$c);)*Eq_NX#^e*)tM9U1hFu+8}#H z3QCpKJFkkIDlvOU5|DRA)SRCXsnb&Js4v5)Cl&id+7R=N#FR;?eIv;;Odjt^IrfU| z7pc%v?d&LWrASev4l(0JYPF;wQ$%hSnHb4HW{KP@azI2rNUK{|C9+&(QY31GS1AWZ zVpbF#IZ^_7O=O%%Nkkef|E(Nqf7Nm%MLp$HZ;WTf?oC;-`(Rc+mCXA|<|88s zT~{B!33g;8sU^EF9~mh_jIHaa$ZW)@-^{AF(~pW&BF5H!bfgL~c3(a^vIsG@JyRkL zh_T0nDUoKx*cKiWY1LBW^h=x7G2xiVl(Wr<?);Bl2X$mGa>&++x^GoHUIwuKegt1o$EU1RV-ve7{W~6 zhDIzFdcS4w-o!$Pg~rebA(SOyD9g;`tv8vFY17_92$@U>VJ0+^OeVxKneXHIdOcs~ zTwVLTzn{_Cvz#ZULP{a0dvXHgR>&EF4pnL( z%4E(C#9Tx*4@8+vejr21V(T9$bw5fK1gexQQSu1n!a$dj8tV*XRzT(j`sPtR{wU@L z29@|%jphf&!ZOdH)ck;RF_l{5_2<$+9*gNuQ6TXW%HXpM+IknIiUVm%%B@QwpF*xS zBXw_t(6O$>lSL3(7rrcm(C6-Jz0AYg$SMe(#rc^|2z?UwWFpPB@eNwP&eSvUb7W|K z5?_WPbSLTcfh^r;b)AIPa%mt(i9Q~Fk9tZ2jVyGm+YGre(5%E?hBukE+&@q=-4*VO z^Q`W(FMB}7XQp|XHdV9#?s-#SM2VjHWGh-nJ@aYFFSL$DshBvDG?u?Xc7iMnl(L)- zp}9V83DhaUcR(zafuu{R9{-Bst$|b}{=GRyr2o$iq&r%ntRpQtDV4z;ffNicr zJ{ag_G1npg8Aw>5ma4i=LU(OE6v$yQ*CFcz)k^eUN!MHc6^Oq=moj_G!+}H=v!^^9 zNLI4OHhan=ffSa{&}XXWkw6-Y*>@TO8A@;+8yVUM8vpA>jseloDMSZD4;hOU%01)5m?#igDK zv@6lywqK6^tO#_ltVV|JB54kEa;aA!*C4YhFs#I1U#kL`jvM{aasx8Y1QL|2QS<-M z@n>})S&K01Yjq%%#jKsxfpjGc#Rq8XR@AdP(4eH;qWNuTeXS0(DS17r-^&bg=10h# zs#MO^)So4|c?DNMA^#3EDA7HvhqMN|!sH3abAgy^{879Bc_A=GiJmcO4WunFm1Q^7 zO!d4NNMlK6c`1;^ayX<5nU@23EGM$G2j;V!$?{5|l;r}JR|AV!u3&jBP{(pTOGluI z8j2M%oz|Vp$LAg}fOU(_(Lc z&>SXj1)LIEVgvSf5PBziD-fq8ijK5Y&s%{67IOurE0CKd;{z-wD)l#=P&m8))E6A~ICZ zyMboTn0KP?Kr3es7IVJwQ6ODOjdeO|?nhhe&3o>|X58m;F0Mj+7O1+O+S1>o z|A0(ipjyd5l*#l3YFW%YOJ4<+D)HAvf1qB8f8_5EG=*h;LCyVvby~#5=nw6u-vs)U zl#A;ibX@%=FvJ;i$H8D=gfr%jgTVl%yQd?GcZc=20ineI&B?cccqIe2xod1=Ae+V9 zHTGR#5sSI|Y$(vlV(vcsJ`i&QwKZUyyT&#J(pk)1V?P8+SKp$t!?|-%ihBz}NU*GrlXTZ8iFCX)}xIY7q zl1hv2p`&$biIgy*YhO_!N6DHf%Fta}6YvZ+sz(dm$rTVyN(NMh?z{_%9wim3=6$ey zq=+x0Qsow1as3Nql4w#=p(G8mqew2NOojCfMoPbF-$^tpDYsr_*;$m`OqoiH?!}`% zCy0hHp+4^-I>TfZYTi{0DOnRmrDznpi@b$?J=E4-qBKmhP-<^cr$m>ck?teidX#iTeFw=wJqL(kmQj`i1s*GaQFKIY_kzw$6^Sf6upA^(S@vX^ zCNfzLW;s|CC@Hs&hMa}AQbe_qN{jArq&x2p5iLsajUj~Ys+%rECAF@FmPV?`Q?gK% zDnLDHBKcN7Lt{@DB}!_nlhM{fT=AGC%9Q9m&%@~xP`0R2;?G|74^gd4dB5%Xhp6L>`EAcBqJcAJ_Nr4vGiQz| z(?_;bMJs2_>{X|V4i=id>VEVvM|3GE7c_g-!%Eh1hGws#%xR*JGcI{*_88b80nIeNTW@f50MK)*5%v5KIT+W!8sm>AwoG~*~<%#*6F*8%;i4xA3 znW@eeWt_>V(0lILVi60?OhwD^98s&JT+qx^v<%M?^<0mc8|qxq$feBOQ0Iyk7MdHX z38nHy8`nc~Lp`gclj})DhMwqjp6KSxx!9gxL*_iu%k|8IybC#B^mC>hvR=tB*JEaj znkz;*V`ht*D`IY^b-KYe&pjy+4vTs2Nr8xGxgRytJ8XeSW-(7fDG(_vCs*Q^Bj|I1 zNLAv`(^VkSl~j69BPtMCIum7{RCR&qx`X;tV?Bqq1~7^X#SqKKke?tIiJV0`vzet( zlqy+lh1zh<9GQ6{?oP@qw)TQJJK%RjBI7QSay5Gu?aP;nIwh6XG05zWOpzG5n=+Nw ziI9CD3q)?UE_E8@5XhCHn`JI!2IMLccaP2#oo`v`kgG+zk{at&Ja;J*a-GOoOqm+% zGL$+Ea)W4Lxfb##j_PFsk1SD{g^+w?%0&swGRQ@cn?)nbvkL2sT89u$q=gNR$(pCrHsrK6nCyqlYT-Ocqo`DwgCWm~ z34ATNphf9j<{&sdoQc||lS(ZBaQ2lA>&uGg7IP!G*L z`d)8y=ob`ki}*)$rU=r8%sV1S$zqG1Jo`H2T`{#m zXXrTA1?d(Ek7`+nQXfFx6V7ri4?@;M-WSy@k3+tJ^oRzQS0I}pABtg?Pa&HjABp(K zbUi;own9D@g)HtXI8%O8oC8J{KvRG51n^AyPSGp27Ep$ly!`YNk*9eIkoxF@(;(`a~{^nV)}y z$Y(M0^KTIISsvzkz7)kQ&0NoyqKqXMzZ|A_y{|+S%LNcRpZ`kKvRuKLeo@DA6KDEG zBg;$N*4Lt$)`EObsw_533GS6|e$vThM+oY{o6OxJ|Bh)kBKSM@h6zl&^^ogtL@UF5MG1fj8yi2{~mAT;(d(aiF9 z2tAGH57DZmT+D+Uj`j72=-|vk2z{HgRdlf|g-}~t#X6R!IP<3%WHEE1{wao8UPOlW zuRq0@k^$Syl4{v8O?s)CSyC-Kj-?Z&($SwNJAq{#`;}%5Ic$a9%tFtlqP1+>tt|9pRa(oo-NCX2 zOM@~&yNf0Gn$866bu5!1lnL2=EQfL?WDhABu+7Z3jy=MeEM#b%I=1x`t-%5NzI*j? z)wP9^N|DbQ*N*3m`E(=gM9!E`H_}dKp(l`1e`4(v7J33HjVsnpQ&KKUxzBNS21^z9 zInK^zG1u$1w+oak6t&2ljO}N8dp=7&YTBam)LqTR^S2I+(BW}{mCTQl)P2;KX(yC?lDdyEtMy;hPZ zH1i~t+H0IpW^cPqwWa$^TjoA?SD4VIVYvs+orOj(E9BP?d7tRw7{)w*Ug<5sFYpT*3$HN$RHqLpi$5 zelKG8v&6oRvr{F*T#uQf>^OUr>v?4X?yW@TI6LN9JyLVEd6u2PVy-sNvZp9n6Giie z(YBFcXNCz~xjo*VA0~8V@ zA9jzDj;L8Ir`UNf>U#1ayJHlm+8s&;qReb#r`bJ9DlMAFjQV`KJrX9g_0F;5U!r=} zM47qH&alhEg!-IkcPJ^huI1LxwG&^}t-pUBuIu2t{(L)^@4mx{iIdJ;L%n%Qbe~8eQ{7mJ)j^OUxQw>RLOK#msnoon6hc2QstK zpX==|7IPi@276RVjdeUS=OS~Xo&JVyYYwDXNw$(2>n6x;keloRmd79uL(1$zF7+;C zBd!(PY?pFoGvs+>7TQ&u+2aj-f`r^+*K_7X$Y+pByOHH`$R^0Gc8e0d=hC^~ZFWbP zj3RTp-4iB%Lhi70JM}24P!BzW=1x2PO%nfi7kAs)EarC?)pkCMx&N!iE@d&lyST?* z%0j;%+j9c$FtYoVREj6i7QJ^bwuhAX_mVHR@!(6^dc7G87TfVk%DuCK#dejFg~FT_ zEVgTP#%f2+_D;A)WOuR9vvszIEV28P__G`=wMUfra}g}H$KFz7k23c-KVbK~t;NiW z{GeU7I`9pSUx0Wcp6VYtg^>+OGTFjgVkJ`yBW-fw9?P3-)$9SVXy+@ZKp*hB% zu=778sj<2-F1lmoDZ7@1o+h*l#r6qSP~%TZAW(z z_p90^HAJ*#c&BWfMrmO|9iY3(>IRvv`T-v4b+Ww`)CzkPbv&eh_5d(vvp zSK@C`t#%`e*`l7a`&rBu^}L<*v056o*`i*s^ORJI%h48{dA8XFO3K9|2py5y>>?#= zq8^7Fj8VL3x9L(ANgAZxUb>EI#*qZ_SIBF2BMWUUv=?;PtxEi}oi%piCwg6cfKv2p zmNj+~%NG#(HA|;=2J#&w8#S*TC%KTfJoycob0J;!6jhJ@cIhI>J9e59{TZKTb?dgX zSm^WnO~|}&=jqnHUr2sn$E?>qq$g)pBJ+Wr&Jyz`W(@k)Dk)fmddOP`3>S3jI zB+I9E4$BD;df(}_8(2<*P(7d7eJtm)d~PT9>UzvCOun$EE7=fr5i-Z(ewi=q9F|28 zYW)j4kENNV&n{s37(#QnZLq7AR9b&R?!(gf((X}GZaHi5+c8MLo$#4z-P^(k>~tkH z)=tQ*L}tLwWZ56G2J(%a9af6A)j@lHn9vp1Z|!;|dP|^p^Nn`g=hT+|jpEy=XUI-h z;y=w{lby|Cp60O0&ijH&b$HKi*km`bm?vUvvWJwETgRY>>rwM2JExCIm0PDm`jrf` zn5Q|Qo((!P7a7_IH`#+M#hy(4k}`{}+adJaicNMI%TfrTf=rI z3qAjWO8sbevpj-Q?KqD8WcRYPL+E>upY0)*Pf1YEh&{scD}?I##U5jE-@wMN0Ink~>3wvpbax*c;0A()iu(R#Gmepe*~pnOyWeDP)|oMTm@{VfhCl34B^&I6P!By*=?^=xpZYuyWj^cuVNX@!U*-G5 zo~}fXg8KZ2ovurHzZlaVFk3q?M9 zNS~nNf=gM7A#}|lF4&-?Lzo#Fw-2@{sSxJOeEVRBl5%0r%(oAAbH>aIx^u4Z`=AvATn)eFkDXFoZLRDPVl*|_!Ez#m+BzuMr9^LaRsxO-!C@tO>)jD@Sa8Y@)aOcZDN4~?lt%}r zvXn#aSCXov!!qmQm|z8qne%gIutSM%i+^N1*16U^2@SkiROKuB5{w;-cVumaAC`gT*ZMEc1e;EUhdT2P>46 zTip<<`I2C@61{D#M4#seN0j*Ib(aOlSj>6dWkGAR>Y<=x<_jowSx~UhG4mBA@htsl zi_QTq4<;(96cgXkcgS8IoT6kP%G{%Rd2qTeW$la%oiSb>tm2HhNA>bxGmE)LwJ12u zVm^N@2*!_64+o;m=dUY+IV|Q=TXC>JNu{+P+M-{*ULCCBjF}R>aA`TTWFQ2eHA zHlM$)4OX*I4{83N(qKD_xq5I@a8OCPbrjm_#PTT%jt;&&GdgS9OA5Sl@*B3RFIHOno*CYC!PU!k7LU<*qV*K=#IljSYWR0X@0 zEU`91hEVFZU_Z<65Nhl8;MCu#hfA!OcXj5DU?0oQ5IWad6tu>4W*^AUsOQdL63ct} zxGi}X{GuaRz;Y-uOHp%8u$W~Q%RRvg7J8m4WflkfSIy%AWsK7SkfW%+n!ayE|xPOw7#AR_Ojdv*?>|l!9kY0 zxYX+4Fw4Iobo}{uaFk^&WDupE4JJqH)<1{PyLoFch2+2E1nSQcD*P4CYg{xC|}89>vGgg;)I5j)F?Rv zvVABssOzEYTJs>2LbWWnpwyj^T|!+U%3w}-$V$i_A;;0B=-SuIkUc}wmEc?ynNG-F zp*ogVAfG|@33Y|Z2xQ+-s;g`M5E(lWXQ!bGmW_}}ko`kLN)}t&y^p^j2ZdUsF0~7U zw$*8&HkJcf4i0s&%!C|{QYoPxma{o?NT`?PItc9-e+l)oR6}T+KQuJN@+5?g64OH? zENeJ(SZIvpTgczh*5RS)vATy7KERcD$Pu9omfcuVLpdx*Kxh;*LU~G-SahVl9Hov7 zm9P|@k2@(LM~AAy>NB97nC=&Q{b+rA`Q?h6$C*42d0d=4@mhhny73 zWhr7gIaC-X)SthHT3K#DW;NuLkTpryQv>-FXWgfTGQ#8~WafnWlq|98Idf(xGhUZk z1EEY_s5wmDft(u}VWIh`>35aqhZ1(AQZ?4cDD^oqb3^GYUqS{U7lf)9!7nBttF>#j(tU90j>Nl%Pb>j*{st7eUTblCETpH~+?hP_52**P5;f)hY3>U0f0B)}rnky&Uyi5n882 ze^Q|HpDROsN|uOM@m?9g^|32M$ve|1mUvIoyE2r*VxFdVWhj;92K11g1Xmo&W_i$) zLY9|2DP#H6lcg+MJZWaxqn-C^(=>b(#kT&lWvwPJQ-xU!xL*4-RF8w5?ES2Nn!cHlT4Pt$EH8| zEW3JA!g7=+)hwrY(#W#FlXjMJPu8*2dos-OiYH>S9>qtVB(eP9Nh(Wdo#}Hn%M4En zS+Z)G{rlWvxIo(!_w=ZTf5``qeD0?TKfq_AxFsc9>dWr`>H zEGKwU!g8@E)hrdBG_ox7q@CqePu8()@MM?;4|3uqFLu+TIKY!6mh(MHWx3mvY?d}p z3R%{BQpWPLCrep&{LHl8%yNV$oh)Z~(#NvElTnu2J&D_0kD|$wWR~|mNoV=ilU$aa zJ~#a-VmZN+DwaY|>RA?f(#o>ZlWvyxJQ-x!;)%6~?(;!knAQ_mW_yyta+xQYEOnmb zvpnZX3Cr7_RI?0u(#YcUnbzA`_V;8R%S=y(SR*t0$=}k9(5M@~S6= zEMIt1#v(SD9xi3s*OO+JnVxjATyIimet6-47oAXpk%T27NiGK9_m(tCnMlDc;7%4hDKQy=i`^5kjhYU zGSyRKeTh>ht{!7{8CGGsE;KcLT5xZp<$MNA#_G`PiTxK6+&l3 zwIOGJ-PTDEIwQI_6wh)FgxXpXN@Q68IRPZz)_st zL@D~VeZ41#Kq&L6CsCZ~^@NTsG{fF!M%*Q+nXcG>Ze-#mDD@#~_T?(BxzEeY;hHyu zM)lJ0w)rnZz0+y==xv_*^JQo>Oz3GBUxlU~rZV2V`d^2pEAi*m|2mY;ne(s=Y0mtC zP$p*nXu`%p_N)w9@&{#qZSHigD!=$iL~>=}da z%|j(eYB>~=iF$@Ztt=Ukze9cuWv1y&E+iN7b7(2c1rYje&q%237@b)Fc>}Hg66$2B zVEHu^m##C*Am^c;&7l#N=OEPQ-$HT6>I})n$ZQE!u+Y0zG31X>+i{dxY`u>Rjlyz9 zS-yhYhD?-`G)rf;K<$0>MVujd3Nq2j&!AE@)~+l8r;p_b$g{}U zPQ~#$^LNNAkdPxz&{7C_3*tIuN)}tUKt6`VI{7E+{=CHXZ140csj;>|9E@U;lboqD z!Ef~M6Lxg6l+;+eL+FUKlas^pSC*Zf0+wQy1gDtgA(ma73YN8y4d~Bgr;lX-@(W~F zXOJa&5c3%%;T_!>W!W8a5M+19`l}x4k&t5`dpLq+4rDeY$w^=-hMW!A(@E6g?Uj2u zO(#=5ORO4X79g{iGs^NL;{?TB(r2e_JJJlRI!}TlIbLzu4}#) zG7XuNoMt68Ru$whNS4#iaxWwea>N4K>KG7B=>X=Hg7axx^_>0o(>Gp9J~SbAA< zoFSI)Ao(bDx--i1C!`pX>sYzEtw|g43scA$j$qjrau?)GCr*hz8o!IPi?f_$En)^T zA4AS|Qdo|M^eRbJ;vZMfcIsKooR()hBP`~Av~!&FGpIj)Tjw~rTD-RMoqU!#+*ZC* zsKjq8-|1#CZRI;t&ZL^xSf;J>oFXNDTjx1dTD-RAI@K%-xUIR)Qm)6`TQS$M&eAoT zw&prHET*jjr(TKQR)N#1Mcl;8@It4ZrHb3S(COrQOj{Q^DS6}Dy3na$F>PJsbSv@O zy2u&SBI>xUdCoA)!`#+9XO!zPZOwD?&mP~_Jg0@lv~{s#okJPFt&5!mE#A21J4q}n zxvlw5vJ!uN&3CF<%rczs^s|_@E_G7Q9pBcaPNo*|3Xkh@C!1w0w{^LbtHf{Xa;Kfe zv~{@?pRY%1+A4DLmH6W-a!Ry_Pq?isoH7>E))h__*JGC970xh=Y3m9nsn`6iQm?>jwql~l_K<=K5ks^#Ia0;&~f8> zCqaq7zOHx5Sj@PtcY0V%Tcu9Y1*&Fsg`AF2rB13AZ(KJz=`2TcTQ@qHO8mBNbedUA zTQ@o}7wVCkwr+B=mH6Yj$tlz#GI(6&P7%um+*Y|$!u6PCSnl+(n6}ED=@*S}>t?4+ ziQm@E&QdMjxGJ1_mId5ah11COn6@gMxI$gCX{*91U@_ym#c5XJw{?rtsYTqx+p2O#wTMP;>vqSwnCht%|K_%CcZ3pu zeckR9v6yk)?sTx2w(fA^E>ZP(+r}MEvKDU{-sz;UbZ}dDI;l$hw(fN5Sxj4ZIwLHm zt-GA``QzKV%gNQ^wN>rpv%Jr3RXc@B{I;r{ZWhy4wKL^Xy;MzGHBONde;L*|Ra(5Z z7CY4}bR?nuYq7JG>oMzVv147PYc_2yc5+xuTeVKT62Gllr&WvSE= zxgOKj5+~*I@og<}Dp*Wg_c`54{I>3M2DNzaU-vu1ETi1k{mv-YW7@jk$uAn;*8NTk zi)m|_V=bVJ-_|lGL5tT`os+~u@6@ym>zrgI{`#tOs#(l3taJKVOj{2+DOZed>p>?| zi~0;p=TQ$i*(`KtJ+<|aldHsU>mjF|#kBR16Mv;1scEa;$yef!tKKQmB4UU1vG-x8 zjAaUh+IrZj;(E+7eApRgF>O8UWE78Y>k+3~iQm>EPNNoaD7W>f)66o1+j`V#<$6q8 zk2*6%Sjk2=LHW?ajib|rpW%bj&vL?*Y@==8D7;kFu`L9WNN)#zkjJ-)3*r-8+^ z^|&*v#Bb|yM_fatD!pyvNhglQEW;0vQ#H91Kos%GyP)#RjV z5f}2fRygS_xAM4FIGIZPwpKXJET*j$PRzA>q^7N>ooprkxSn6CCiW*M$@`dCa`E1l`rjc;p}Q>MgkYn8K9i&(*JwK(-GFK}BeP9xW2+G=s)uGcl2 zwpyG57BjBZPO}oft<_Ga7H@q$>vXfc$!$IBtmAr2ThBV_rQ_Rr)~RJNZM8amO8mB3 zolz~`x#;tbbpzE?DL&@5o_B;2e|5Kh6ej|fxjIVhal82Ca-4l8qG-W!+ z$>YeZ9VaUxZ+jBYHNQVjs8r85p;8}vvKvah9l%j?oVwX!Er*FjZTqTV*2+RbQSb_r&>w5brMR^cLAH6cAc>Q*nkY(3AouwV|m<@ zEG3oJ3dpx8wb^M6lOG_zIsHn?trwA@`vQ303wmM@h z=2tOWotRsw&x^%DsF{96@TZf=a=IteS#I0x=slOdLGJc+5&eco}z)SSqY;mLHCYdy(gY4W6ik>%HP^Bn>q!$! zsV5yQk9pF|^0p@+%7 z0Eq3*zgw58gHX*OH@;fSvk>~WE953CskGjJOh+ll&E(7m7S}Cd`4d7%8|eTX^U5j-%N*#w%ac&z+CWK1u;C3nTp9-;qEAF9s zI;`1VCRK^9`ERIa2RAQFPJzU`rD2i>*~x9tV$DH4)SsQ*UX~)31UG)M>a$e?q3`u} zaf_9dTTeo0iA{D}m8`K$pLcaTS=x}HQS9ojV|kV9+0`9nc^5Jl{Yi93Sw4kOfA(-i zEw#SJ8h~7aOp=?x@++hWvZtHO5;dwzO>t9MBqV(YTz_}7SayX_fA)6^SPt@}nB^Ex zDp+Pis6YF=wJc|I<^Z>WWdVfVJr8hOSQc@qscuJ@P@fNSdsyy8W&rOXDef@K;}E)= z=}_0YSC5^9`aIo@V`<}3)7>O3;vGl{YCghE;ml_c>hlq9I?K0^8<9zMvst2l)0rdP zd?os>Rch-fcYc^upwv-rNtoOLNptJ9h#gQ5?M=tHjVy;jXcWh|EiAd5nd!E%T)~-{ zZYRqk$i1jJ-R)+16!L%)YzFw(G4Ul5)O@Vl%b5~y-iEc}nd=2@VoBB`6=%W_(`D8a!i#QOaXr0b>vstD?Xza7ye3lFdooCK=7qOh` zNvjq$iV;=MIxXHhJ;hCWNVP8LdQ{Bb_$`r}!cu^GXf2=OX0u%8Ns$)oMo3VVYT`@{ zw|=VI%ksDPu)ZDx@ig~VRqMEhP{1O+tr7U}()Do1s#I0jF2=Wl*GPh01LhEQqBV>U)q@>(B z5%M(T3ODX4s<|U7wn@JiT>FUQYpUhq>eLNJZa<1#6L|v9W3z>S{Eg5w=QMv4Wa&A>()N4 z`fSnINv?C-Sf(Mf2IIQk9c4-5Ql)NLvo7@y&fMTOvJ|k~==QQ)#d4FIyHb~`guIQK z%iKDa`yd}eZg#s^o`&>77P^_Mbg7piG>Qthl;uqbt-)K|R+b)5raYrdeGb`xdTw!Z zS?HG!v_;+O&R0@tZA6Bo$}QuJ+3Id{m$Lkb3@xAA-ARp2(7_IZbFN0 z{a{aeSdQ}~Z?(>3L+HGBk=w*Fmos;|{Ve4WT0VEWRsW_^9rhB=+~rm)sSuAs9!3xE za_c$M>Se}Q-iCaKdhT+qXH`8>pL>}UB^A~XWIgU?y30)ulOIv4+RYA=Es(`-UYJBp z!T#(nQqmE%nQLC=*6NHf=ReEbK^Akiv&nHhX#D{g~qq#;A{sJlpse@?sHtyQ9*+_xv{S?)F~@sBpk-Bu<3yTfv~O-YAkme_K)sf}6> zFV&(XJkzyJrblOl**2EDyhYHi;*?wgbD3m%ia7i*$MAxkGb=eEU~U^#2t_r z*W+$QSmsd3lWudE91VHOU8lu+Cwkf)WHIkVPrETMss0FauJyE=#A431o_5oetVur& zOMZ9s=V`Z4XS{RBm2MH2nu`p*>#cOFl`OOtKK450FZq1P3vRm>@e^vMKELR8 zDk-;|Xx--*-6`!i!6XZ45>Cl;%k*S1qxQQ%15V}Ua#+@1__aO6z zo5n(CadnV4-7FS*muZB&GFd_sqE)FbH|7m0H4sIgq@G4S zZ@U>v{Ii00+#b%*c>>k^uG_CO-dVxBZhR-zJ?t>$Iy;^Sf@E7Ry|X?{=HC zh`rGtT7&PoEi6Ys==14&Zad3K5IR1;?{=~jKmi{`pWDIWeS_fk zg^BtG!5w4qzCmyk-qQ7usBaM5=}OA2M=^>usQG($ewffvbd%ezWU=);GH)aEgFC{~ z1^Ec_lbhT{HFsF%v-z)XixU3``K#NuO=eh0h4m%sq4oZ&oBOuvp?BQ))y>~Vij;)6 zRkBT{Vw=q1Hd63TWLxu<_*edabxV{~i0{!u`h@ta+xTweNaMOA>q$@&-ovtOGF97T zTHcGSr%j8nVxp}tv7CQ(J6I+`hLv=)>W`@7%x|uv#alaD+=MVu-_*EEl~jmUl=>4r{N3$R;xCQg-LxL6 zd9ipKnTh*QCXZ#kC#5Vuds3&Q!V(kp`}^;%_>k(UuqH!7sAtTbuB6tQ0ofk1)vf-B zGUe9Ekli5BvMx-fKqko4bvkn%GISO>iXXEP$$>wdORf}~GYNqE`hNSbkDrK!;abzaTTF43Lp(}H>cxy+> ze9jC|50R0wg=I5KtQ?Cd6(?i9&~1tBqODUbz#GflKK{jy4%$2u`Y|`S* zdbf*gS5kv{1f#9%Q1dP_cLTLmW6gxz4cS#LRWe|k`(+Yky^?Z~i*Ly%;g|V|vPp?Q z!`^PPTZz9V>?YS~vHpgdm!js~^~rM+}KN& zX^EN{&`0CFWED$+CyTh$O^_zlR;?1fH0TI`w!(yt>U+yJE!Gn#Me`c%E!Rb4rpP|d zJdaE>YMvrTA~O5PG0v>z%sw)q-`{?yt$k&Z7HbQh{775xzA`T?^DJaPIbR8$Q@p^k z(y^A4Wv$MLFHtisjRRyI%Wn`miXI>vS!hP_S5VJ^vYCZu6n{fWn-*`KPL&5@&Ldq2-ez zv$x6Qa%LVfbR0{Og%O!UWD#esUxZKnXzLJJ6_GhqR&%D7`+TUZkH}1yjhtD5Oh4+G zF54n9hsh4kyvUiuWPe2Fa5==8Zq6Jo(+0+G2}j5bE!IY4zC&9_$h?S5sx08l7S5!~ z5+xg=TpN1|O3jeHEM{+-A^Ta(-ZVq@eXIAT(@|0!Ebl=wYNms6GaJv>%s=~CWad8}+^G0X5+*~(&ic&zLl z8Q;TWWxp1$hsVkx7SqFHWy&w(dw8r&RpR&XSedKD-x7|KCAyT?!{cNxi|OHUvY*BD z@HkoY>-Zj`9xYxEkCSCAriaJL3NB@q;c;@262FJX$tEsk*6A!6w^_C2?K`t%0*mR- zESWnxzCW{Mz80@Pvt%KQ>CY_L&819#X32F*{Qk_6qe}cGmLU^Wdn;7jJEy)$&^hjyF+F` z{wiBoQXuJ&zsWY1;~*zOPLdr;Hbmt>W<#=M;_u^^VV0c2VwPc+tkz<$LMaz#7g=&C zXJ+DDg8G~#>sib)%#saU$}Gby*`&l@hFP+UOUY2Qm5ctIET@c(@6X9{DvRmQ$+Gni zm9ei!sq%HgPG_pV_iSiQk{uvL{SvIsaYuYQbIH(N-bG{&zVg zO0^zk`kXCGS>Q2WNSp`6xq(1-!ZOIWKNOY5t&ovI?lL`et$nz4k_`s=Ny?aK`#w6 z_8ghTV#b~$TeW!GbB=81%uL>%b7Uur8GDZG;!I#ET%uF$sR6c`g5A>RpR&OG&vR~v@TAUF%zjjmDavk zhBsq5pDvTMc<0!2WHM(?K!%>QI7gO7WO8K%XU;+9Hq?_VYnAw)+Rl(eEM{GtAxBuu z*w2vp0lgiXPi<$&LM`5Qc!n%uF=IbNws0vk_A_Lg5`XMx$X+GoRtb7YV?R@laXsd9 z<(V=^j9)uv$~+d+!!u>C7VmTAnX;cVX6>9QhgeJx&y>Sl%JlF|IjY3(;h8eQ)~#2f zhbQ7w?OC#l#VoP2WHpQF&sj1hq?g$1C`EVBoF!AWcuVXona*PRbC#^&Ql>v=$yz0T zf6kIEO7P8}tCv`w>&AuS>f8Tuao967==8A6|z&ykoWfVMF)jH};EQR-YN zShhmawkL_#;%#;LGEs{)1@-(BrSfG}MCLqM&6&R-L)VeclVz@I%d6*nS)~QP7K*kW zM?L4uYAxbq$ZAM|T*`7bBp<&JD3A>-zdx(L%f3K1v4mRr*AcRn|TE^lDKN_NjqA`Nc5l&Lkm2&+(Zrha)nV$x+T6$(hS!#`da*A{Rp2 zbCJwaQZ6ol(Dqy;b2($40=z)xbH+Rcc!8YH8S@n2D`YWe%u|4`kYzff_6vH#@0GGC zOlVuZTDEAhu0ZRbV)y>upx?@y_W*J5oKtNT+bGa@oK$SlrGMuvWmbc4)` z$lNFkIFpRbk7(;gS*%5*LAF3{lBFysKw|bIsba~7&{fbfSmVQDC|WL?wRlIZn`P@Z(yqn27&XVD^_yi+L}sDvw&o|YlL-CnM*w{d)z`<8z!{XRmeImR!m&9wGaASA)6vHx5yUGtj2o*E$3Tg*EX3R&g_DEX#2TE zIy;ZwS}J9{7Hc154ntd&GMVKN2-SS6%#0{?tIX!i(a0Q!Qn$*2h)k87&zWpwPC}+i zmPKT4lU1BKhwHgbHb!J_m(85H2ANY(&+T$FB6Ekd64bb?YGm?}xkDCe@wT5uvWPQv z$P^;8NG^)V+$n20^8_+iBXg%*7m>M3_HpJ_&fF!Z>@t3--YutUv3iiHLOplO%&<%i zq*~@{5$378_sBveQeW~DJ++8siiVKqSXB| zlQTCXQ->qu{W4F9e`dZ+wzHUhaGC66G5g>$S(`}x@xM=5ChN3#``|L!z+(2nWin?s zUCQi(%VeGse;-^XOO=#c_tLnq%|9UPSQ4WItj4-{KrUr5%jW@E&tjI(1F~>0J<>yVh_+r`>w_p9f^Wl5(pQHPcAzWX#^DXKGG`mf(_)>9Qahra zM`dk9X1T264842Oa$YVww#jsH<|@=f-$gE$BT6~~uiEOochBWAhs7*; z)V!a{*e{?Iy?ZW~U0S>?bGhtcF)n5<_p z+v;PoJFJw>tkYusiBj|p!eeq!i`X$f+M0qT)+mQr_J*V=8DlvFLfhfvGG>43VWmii z&{}?6#%b}^&J!{rOuol=e^1C1B^_4#68)*9Nv4KnsE185U5oX1)J*T5O)@7U^OVfv z%=yUBw~9~6A|)H5E{7bAKCh6SEateeLUyy5wX;Iz9;lad3rbnrQK@__-r89q3t7zC zSs|Oblvz6~WUCT??W~aNl$2YWQ8SI}X*n8}(PB+i%g{RDNnBS(pP!cTTD)c0EE731 zamQ#Y2bpG>5|LRcQ#rE>GG`&PQf4dJ5Opl%e8?)m5B$dQHTQ}v|l_Yv$S~QdQRqOv5r87wz22rqHQv@oH@zMbZHUhsgBRd z9+q>xwtBwy_uFh!*Q&l%lINFUYi%@k_olPTcL952(jO{RGp zY28NJw~@|mq+5%1722ZZyhiqKlNsX79mu?dCALO7hmIdtr;OKP(eD9h&+U{`w#iK8 z%)e028r0J%Ga@o?$}G;jgbZzCZ^}F+{&xy%WebZrj;)n#Eao`2RwhrU9&Yfi;jfh` zTD;@fTA9jXj$>hZ_hhpYe|!Ewc5fr= zv{)hmXJ{z(fgEGm3u5n&nMP#l;p5lfhcaD@m4-|LG9Svkh|EW_fHPUh(9``sk`)n| zkL4oHxQ&t(>`r>Ol|J$>bx(_vaItqQ$C4hJLU0iOh(|te07wd5AOX zWobm_Q(3{8XE^hz?25?r${xUIHJ@hIm)F5xYQ<@ zm9Dl8Yn0^&S;i9DHQL&U-&73CS|yl68$vbzDC<~KSbmZXx|Fx|{w$lgo>|D;i)Hw; z>Dj#KO1`{cVt zIxJ?}*dmwC(%Z(KiP6?UXnl*U*Wzs(TVx}P**3PwCN5>RjV-c8iN9@Zkv(BT+s5y* zSBrHC+M>PtcR3W18IvQNxrsAlGA3jElK(?GTC7Jn^M_1~$ZVBUIP(=}w#w-dnLlM3 zXZGDK+FFMt_NUB=$XKy?oJr@56Z`O8*ozAicg!(fnHjU*-&PUNBAap#8k1b$X2%&G}<711Itg+@`j!l|#X2;lWCAbEQ49QNh z^G~E6mRtXVBw-Xg$F{LN1=$ah5ZlG_3WWNzOKd;OJD#Lx>U!2gsODW_OId#4%;Z?{ zSIVprF?--sE$&a59GjrUGPCPUj!kAUGw@7~O;w`rW}1fnOpa~m%=V}!6|#Hm{J-he zcVXEhwvpvP$V_CCV%wAqM4bSkZDY^ab}hEKCv?x)P8M@d=$^6NN-D)EUa56THbk8V zp}Y9^j2+TqKL(+7x>xL&62H%T#ZEbidg!;lZ)~y_ul0RnQ&>#v`^KV(HGzLuZ~{hQ zWKGmC+M?@G$(&gewV4E&{XLnG6m89cOpQ%dHR~fAt-*t0)3sPGGE~n&u>}#CX|eM; zvnMjN#HPh|Y?JBY%nW4cR~FM^`?kppa^?hN=-pvj?5Gm|)7G@u>?~S7{`Z5^Vslx{ zaUQK}@jh)$i|yjfO#TJewAdaNbDW+DpF6z$DZuef_x`2_1~_W!Owk>yRfySV%kuJ@l2 zfA9TQ8s`M-DdjQVxLY`9@}(*lZT*e=b%uJ4;c^qbavfaGyuQhQn^!$9d_Tu-UjLK7 z#kv1({QtlH|Ly;>eOhMp@BiKQv7X!cRV`P1!dI`+*17+nb|zRG`TvdYb&77^{M{N+ zF5@I!Zkl?Hu^v|cKhgT%=S;geUyZ2mXKr8DgQt9)NcBf^KPOnay%HeAZ zqU*z_^BHQvXpZ8zB zMq6{)ujALd_|=TV)N5Yj)$+leb!t7~_b&YR=_l*{=^WnmxgN8;O-`?OJn4-8-{j4B z-{9r9BI5t`-xI87BfN~;?@%6Xy~Y3E&3}K&fA{mN>Cd{kQ-A zYu4isAO9Vd_m_`ZPUbu!p8r4cZ&OdRs>gpnGk=di-@x+=GpYa4mU%y|Q{(Z^m-bZc zM0@88pYZ#cakD+{&$&amUo-gCtRK_Qqaxh=e-^vRneh#%?JnBV%VmOPmWx?_k?)h* zF&?h(LiHMLJ(W)5#BYz;U*hfE95>B+xsvl{c}KqL@#5O0dY_nJT{>IWYsT?EeU0pQ zWVy)yFXeve+yw8u;J+(p{{QB2<<0u_&o9RRzhA%kymBuuw}-i&r~b>oC;Tt&-UKe| zD*GS5pU<=KJZysCLZU#CNm8lNLQz37rNxv_(PB|ap+zwjMT^BuGBPtc(PCj~QAyHb zQIicVHq=PcqS2HSZ4*tB)Wl?q6D>|u|Mxlfp8Lor8Jll@|F7Tgr!QXTeb2e~+;jK! zb04M057GbQsW-i1x6uEod}zAFo*k!qxcq*^q+iQ@W;>`{$k4K4MWAhZtplXV!o?B;dVfEnEplQp;nhR!zh7lw*Htp}${hW{%M75=S;FI4zK zA2V{HQf`u;uNt}Vg^K(wBbR-oO~x(sbB|oY>-`_RtYr2Fq@HW)+J5ujCcN~YLZw`E ze)FI;WZZh-c;dNA_I`t{d~tA$)uhYWxr7yB>eoIUf>E+%k`e>ZuvV-}dh`HCO}+?!F}rkY zufvt2Pd#Vi)#V@6v!ik2`h7zpi(~=gWJ> zpX7tMKVyDWkHjnaHniNMjehA@ry94=Tg<+;P`yuwyOPGA z?AysWC{*}*KN#QR8UHdL6e|A2&SK+F=I^q;*5%~m{)o~m^>BM~+E%}?b{pLXk#TRX39s9=PhDc-k$spt z;}-jcE;Qj9jaGdJ@jZMA`)q@v@O!(srmHjKd zp21y8!`Jmn)-^uMmwMx+Qg4K2n|-Ydj6Uh7gr*pIpP7Hv8h@f!;=kHs&obk_-_TEt zo+pf3>btHVj*@!vq>&GG`&5_VOT7QL(f5q~_2zt6@^_2j%eW!?=|kN<Tz{U)!;I-nwEN zH*wCuIOF1+Pu9_^SRUPH7QRruFCFb)hq`@A&*O2A)6_dXez~fd$1|V$gBjNjVu}~# z4gVdppRMf&I2C-A9*WdQtj(XhWi#{KadEpQDKZXmx zeSS2bq+UpQ3YGRG<5Z`~|Mg6L>J_Gb^}4ZdIQhFqE_$SY7|O?uNu&1@&AI(dxaquYmWfB^0cRP1=Ni7`!_J~Qz4#3V*6&l&?zhkPt9oO{ z(DsFXf%$$L{w8+gWhReaZ#XTFh7-A-H~LKYs9fw?W%NG9RQfk*-#(?~ekJn%?feqE zbvyfEeu&&__m54_|16*I%bjMwTeq9&eC`#KZ<@Ml<96LX_0@mm`&B}*9*=Vj%^N~p zHPg7u4IR!Nu}{`R7a0FuD&y*osOXV(qCOABuf1}+$1QZz{;N$q+voe$H6FRtBkdpW z4x0VS#m1jdNsrk1ppk1DowtfUp--|u*PMg<)JrCu$i4K>JWjjjJYCwaUwvW5ZyEn3 zoUU*9*2$cg52bjS!h{>j$9J-ZFVrg+x1?9*S+c(?c8EXGBUH})MLv{9=RcATp)#Jl zzJq)c|I#17!TX(ZzJ;-p&!c^6C|~3|qH-Q6{&0W5*dzV>kEQ>&*!eF{eh*FGj`HKj z<`2#zJ>}$e|Fm+G@`_TqCpa`cGQQx~+D*E3e~w?K_?hnigmxKw6PX{~Z_@kOewAkY zd*zdu?^hGKodwMPcTnwX{A)hWnN2(NQrXX%>XHB4*dhLB8+~OS{!ew!GkS%J9a5jY zw95F`_h#_I0lP774#{5`&n5q(ZryJT-|tcXPV=d~%=$#`QA+xUTkl+L>=OH=oPX>( zXt?#2oSWQW^a~ZfQ0YIV|C4@E_(Ekqq321GKhbrQUO(Yo7!#j&9W~VLv;Ms0Bz6du zcx62y`Llg~w7kCLa`4_uMY|iq7q?J7KTg7%5W1a5+o{+?>u6fH47EqxK0CjD(&WSI zhU)n`zV$M0(YK>?$bCfd?~VU^*5|6xN9cY*?uSV}4fXF++3e46*69JYKio-4L3NA? z?=6oVxn(?*^_KKwvOW>F=#hI^L+z6KB>9NfM?CpF)E(Vt*goHH(^Gc1E-&pbdOum_ z2me_f*nu9rILrEly2frD57nazldrOmd8u*VctH?y+Lul?e9qKf1p7)Fz|f8}7%tr5#B-`Hc19 z1yrMVW|7V(p>lt9NBz9?lS0KF(c`6hKOZl}&Cu<#$edTpy6`mHt`W`pkC3_}jkz zXuqew4{??L{=@sdTEOlPd;RI}LHy>NDq!aGLF-@l6EZK2?qfc6g^ zuF~IU`-~jkby|VA~wsGtHkKUKoa#wx0 z-Ta8AU*BtYOg`dmXY<{tt```AkJ9r8sV6!=_4hh-{~`@?8n*-H{^IWJKUyxr7k#?i zd}^xEd#Isu?xNFycgf7XCONkes{3WU5NXc2#4S|njqG2_dDwIlkJsPN3}4pupP70# za|e9MhvSVup~8>j`$V`$$n(T#y&Ni!=DYZ(`iQR#)YoQS=k;I4@!_puraq<52mB@; zuf8AdQ_^=;v`&|Nk^B(8w_ZxU(==Ki#C?TH|4_Hj)*In3^!StZEPPpC$oB*?ZxZ*7 zCcL=iy8v;^eRi$KRr39U=)Kc~7xy1L`lSBp^tS^3iLLzCRPS@5kP!5q&bx z7PnWw)C)=P|IR!tpeC7mBz9=}!~0S@npb-5m-V6OmGOD#_inD5ZsHfYrt%&W-uXB8 zbA_H@%18F8WM5p?sd6q+X7qadWvO2~qTX;`_i*R7QeNKj8|udISDN!ix@Y^J?z74{ zi1(f>om){4w4-~w-gKUC@=vG7XV(ofo(wGq{Ki(H?q{wr`6>JRUcJM)Wj{gJ1H3b0 z=B2g94liHondJ91CSLD;h1dOw=|^uh{xx;goyOf_;(Nfjz57Qp4tn{rZ#5iW>bI9l zd+_rAvpah4iNe#pfya%#QZBL&Cim7Q-P#>JXV>2+N8NJIT;i8|=)(8Tvt@oLaxWFR zj7P(L4=w)W9Tq)K$aj@~b6+#MALsR_*Xw?B4<%syNB85r{$>A8hl}1{(fb84b{}uJ z`s(FNehsCrTFd3)v+u;bZt7RB;gf%w&wpmhPr}Q*QK;|(CAys@GL?5$%cNA&yr4|a-T%zQ(Dgt z_m76=Q?z{y)e|ibx!f)mn0r-U-TS7 z<^_kD@Zvt!<4$5d_BeS>H&x2$k@^ zHTw0u#b>_n@!Rivq#a87#Vz$=s9Wyk$a`FJ{-F8PzwQh@^nI%S-XNf^G5NH8JEHxi z_8%P9zpigP_P=bq@p;o5b?bRG&a+HC^4cl!?kGJw@~6j9pVIb8J_k(wjgG%k|8@CA z+qu}K=gHB1dM{sp=Oy_cO{eY$C0z6#xr7(FjQ5gWxo`es{Ym?hepkY2zK_3yqxwPL zo6$J|*-Q80?@xqwgYVeApU z*e~y!3SY`2#QOX;oW4ik^0_hXn~j$Ec)wfoX&l$_xN0KHeQJNRu9NUuj&aNAC%KDu zcA&9ud*NxEIMBp*goh57U-JE|Pzk5=8Sir&J#vp%_Uok_w@>j-fe9z|WFEV*uW$IG z=OW`4J#z0$Q~8cBdJkXUV?(}~d-qovz4Gpv%ui&!INUl}5~ zV^6jzU->>*#}oZ7P2BD=x_{b{do=sQFQOa&62G{I3twRT7n}4+K8StNzYa&`K8o}g zn&MYtP5NZK9FEF;x)mrd>er7k_6)}_GwCG%)Njf<$Lp5&^F+RVH^xEPm*ewXytiuf zO8l#hTZea*z7OWJ_rZqV5A&(#J$6aFqVHuRmvqQDBJO!6{X^aOorWFowSGta#`u%_ zvEKAwXYx<(?RxJ`dfj&z|IJ3P+yj++h(aZOEyka;GvPln4F3fWU+e2NRzgFY%f2PrM zj)(7^FN!^)U*~d{@3)$_kEg1&$EWQeM;NqH+JDW7@i-v)~+9${^9%`%jw0hf^vWB zs`pI4EBB$rE#)9?dFM#za+B}cUf0@tkJ0~tkrx)~dM<9EQr^NB;DD(p5Pe-lz6q>R0<2eKOw^f1+RJ_rvKg;P5y< zWIKII?4EA)4ks7=$C&UZ8vkb)dgc&{nZ23sO8I-Ke1{|T;v5tHVy3S8opH-Jt|{st z^L^^BA#zvgdgSFhYUsJKPo2--B<6qj1 ztb2rd%kL}WU&8-)6nPWT?N-7`I~qBJk9o)83jgrkq31iQ;oK7bITKFS)oDhrxF@n3 z_ZdBW?e^Js1-I|tZ{_=#@S0-1W89~j_vUmx_i;U=bPUJW_Q-uc$Lg1MWXA_{9w_69 z$A8e z-(T5G~fz6?kI zZv6dYh<{goVcdgE@qNy5RGvOHmMPwuVCtv?hESaI828T&J%K6qd)O|Yn#*p#y4=Y1 zJDE6VGv`@yzd@+{{++mGeIxt-axN$HXxXO{x6C8!J-@f+QvbZ=>UE1gFMWsg z;9V-FKJ}^5D|QY?C10ieiCgY_$-6Y(_{6Q>eTkNfe8(?(gi3i0M`xRMByz94!k6~# zJ6?}3Vuw(ve?sMZb#cqSzqqB`h06Yryu+aF$GL5xj!&q>HyoAk-bJr|zc1RqNI2QI zmiI~}opOIq!i!zf-lcyNxqR;`^*fdG$5mNOefB%e9FuQ4{dl+3xTXAMKUwOdoI}ZY z?7dGX_wVHUTnQ)T=dHhTA5G+9zwGA?{cbDzZkLq1_>=QAd5=Ty%S7*6$$qWGBmJ}7 zi}-<^=KBqs|K>bS-?xbVK7!~IyTvV3%1O>?rJN2o`7Hgc^y{KWsMt01+zRhY82cn1 zkqec2E$vU{jU^^tseh6$LM7f~j6bPAUMls@OLc!9eV1I~)%!+{lKhZxGA_t|#g6tf z%Goa2x9};Mr;PB7=hB{rqw`Gq66`x*X@ zz~7Phn}NTX`1`q<;vA#$@HfSYs6yvN^&9sj(33!C^WQzbQ$SCL-ZS854*tsFzZ~>T zRgb?s{7rG@!ltv;Qs*4}ou}?|YSc6SOI5dXxmu#GgsfKeIlob(1HXsv->Yo*8Z`-j zh0Zm=OVlj)X8bM1-!k=j;8xJv@YkfO@Hfl7L(TWyp}q{OtRQ>XhJP>P-Bt4?Lz;!Tl)y*13;E$Kz@_{^sCs7XD`7ugrY{;Z{So8oVb} zDgI`;e*&*v{VJvdHb1Y%`d)yp7ocN3^sk5h_0Yc_y!Ft(9{Sfq_9EObg1)4t_+C~A z`d(4*#k>OgD)e=$JA!Yh65kuZZ>n9xJ*vw0uDaZ}5r4fZ9e-ne@2NY&eTeUU^<=nT z)%*Iv?+1UgdM>fJ9?vGWD;@oP0Nb}RC9 zEAUq2={M>_-=MnM{TBMZg}!f*{%?`?Z&eBY%J5f(zghSz#NU3t@8R!z_;Z|H;#_Bz z>pBm+ekafIJ5!v1Q;)wq{7rF!POBS&EDRd!oQ%IJ{LRAOEBGsP6P+2p6l|rAbvoU# z&J5=$2c?U@(;R=`bf?mPI`GBNbun~Z=IpO7bJn?+IU_;m;%|wnMVM=xf8lSPdyV7b zZ?3uq{OiHH9=z+pyB@sj!Mg#x8^F5(yc@U%E>SmvcO!T=f_Ec$H^Sdd;N1k?P2k-G z-c8^&g4YOMBY2JAHG;PUyd~f*0dEO-OTfDsyqm$h8N8dpyBWNt&SUOU@RmBG6PALv z6uf25bM7+mmN_?%SO(rQ@NNa~R`6~G?^f_`1+NLbCh(fTYXYwcyyeih9K7Yww;a6X z;5CES3|=#M&EPeIcQ^9uZt(6#e%%e;-Qe8=-aX*m1KvI0-2>je&icT;;N9!|DtIq= z_k#DJv(b4F^jXNBh3r|#o`vjL@ZN-uH^F-oI^G2DP4If0yYRQp?Q!k^or}LE>RsoP z5$`gctKNs6_aT2DdftcpeegeWc6B}i?;~eV(7A9gQJ*@;gg*uEQ|DaJxo|I0gQy4J zI@6L8-N)QScOCvlCnUOaRU&$Vbaz)L9lUgRPtdt=FHyU@`{Qq&ySqCQbT0musEO{A zzKP&XbWcp02;M~S_Hjoh>;v9D?!2UZz}pABBKLiNky{)%9CQZan*sR@#5V)-8IUKd zlW%v_g?r*x>DBs7S1lY+Dy(*$t<-J*QfjtExfWHbH{tJcgveF-iyiekZah?~P2eqH zEgu_crTP-+H{iu{*du^4)p^i71DaFSU#`Q>=T@b1)OYaruPq9;jL34;HSm|LN{m$> z26ul9Hz7ti@b_&4#$t{m3;u3pv-VQYF$dmi9xsN(HZV)aO7QYC6LH8z|kTXtqjRfR!t(&rwt1FJ>~{ zDNxP#IO@n4?7XUhAkv2PW~;kL;w4X{x54IQgE|T~ARhjhc(W~{QT^r~;@uc<)pN+* zMjKm)ngI(&AdU`o4A4YIrvasXufQt@ng(8jddP(BQ1if>4&DY;1vHv1SP$tDyF03W z8_icidLsN)s^0>g&*<0RIqGttUUkG=#i>kHPovx@9b42j@b_y-`_(d_-vK!e)tn&G z+qR8nvOrr(Hj^!_R@%-;*R`gP@fIQ1gL~kwf#Yohx)CTxy#PcxnXFy|q8zVO?*ZKk z>07MjWANI!PQDELI&JOjvT>w2Eq6QWebn(ZrypT8`nN%qD!8kzP2F6A&CuM#<@O*@ zpRKWdHV-P*7?eJ>g&tedInIbyhg;87XC(AJfw0|d!P7wb&Lr^G0Tppxk(rSD(TCXl4z(F-AAUz#Ks?9$1*C(vEo@O$2=UI>lJ`f(QGK}_yuW>kI_~tY z#%no9QGxnkGk(7qVbh!ikX{E~nsW;fg_!T$X|&Wie+2U9qA#&w7dd|cF9cql^H-om zpgf!MVn^Cmfg>%dgr(HKbf}LJA_XB9J6`~00;O&v9kYj0lUScvn#cMM0ItGqpj|yx0jrO7%3|84W}&Wfl9I1?ej1vugA_D6J0W zQR%O8vfz*EbGCEh;|{m@9;>;}=F1j!GTI>JeYZolP|whmbVxryh#qbMG`{H^qLi<4iY~$_+g_+wuGGYMS8C!0rxIbQe787P z042iTIldX!qaC1s*7aZ)@Y0+HNU1GUalF(sKIq;2VT47 zHCWW4HXy{$AT73eP-^oa+x1NLwNEf*@3!*aW z;IV8Sc&*mvR$E4GHr_TXZMVEuH}Mrmy^F9LoHS@AeH)x9Ko#6m7XVSOT&a!(q8VAe z69J;WsngcAP8(aNtwWtQuez+X&&JzrrJHR|_PA0z2duvycW=z$K7xIEygX|H+Lq1J z9`{t(Led_tFEncOxO2gC(B697^MStPu+$HI%l@R^Ykj`GF-BSY{63kz`h8Nb25oE| z?j_I{j}RU1FM)Kv&^%%!chQEvcjWOPB1DXPV$?iI!{eiZ)GOOC+zKQYt7WhMLhqM6FRI4xD zq7L;Iq$faH?33Q7#3#Lvo)4W3X{k?gDBFguup!E9h$cHzsIt6V8zPSpwWu`TJBasu zXrAr-1L!iKG~YKs3mEw)V!j5H?<4E)U_>+3r+_+C9He3NfBi0vJ=4(p^t)rhqa51m ze$wQqx8ZLqOZzCSOS2JbJ(X&*@z-jt>a;U}Zfoa(wV+XfU<$Ms9yr(4Db=DpzgU&N4Ug&p z&0h*^Itu(Ue<`;9@_jVFKMY^4$%x= zwU6ezq;mGhc@gwKi?_7R|Q3g+?^b z(P%XK2#qEH^}7edf>)tMx6n^fPn-NwZY{Rldf6({(qc={@&62A-$hu*Kii35_+E_u$s__EYN6w z%w*F1A0RB{kVe`c@w7ie|hx1>r&ZP}XEE}C;$7v?ob?EV z*y8Mguo2cwv5^IKyPQ{*xfR0BE-V*Wg_WRPH|u zyk9c91SrdgIfI&q8Hz@~2anb+8`PaZ)GjO4GX~A(I2IyorT1+$LL1z`usHGp_#`Z^C-Q8-0~laxGci0MrYA@ockRo8AE) zjU>tHArr#!uLk-D{H0re%luv7eF9#G+6c6jrBq93CcTPtEomzHFh*m5)-lQe+Tia; zh&>s72b2f2MFp?ddmi(hxIJBU2zVO3j(%vhe;4qM0#9qE8kQT7o=~sZX@@1*-2?tk zfImGV(k@PMplB?1da##P9GC_41d!g}I0gPn0&ie#TF!`eNzMZ*wY<`R@Ja#`AibES zg335I=7U#Z^JR;zFI)YEuw@~nTm8oYQ9a$_uK*(JxB4#!TEx=d09_AsU+{ue82J(? z#EsxJfmf+c0&fLSO@MNj>f~%i7SPyTW8+=vP(OLWr|AEjWeD4f5Ltm$K&yZ{)Egh7 z1W+<*PKS{W+WB*<)zW5>-m9W|-x84Vywgg%Eb8acg;La^XtwzzVk-{Htf0sG>rk|^ z>4db;@&+s_4N4DJ8k9Ym(xCK-r9qip584oZ8%MlF=@wO4eN|RpmDN{e_2t?SH5TPr zv^gN_t<<2PY%6VHTPTP0T!qjw_ci41CZuv|V3R?M^!ypT#qMX|Q9T%BE!5u+2B{WP zuQC{v-XcHn9sJQA_aZkmS+`#u8-=J1N_n){7Eo`kYOtuuq85vq*k;nwYI*Gzbz0=N zGte%}>$a%RqRkfdInwJ51ZmDd`^tGSGG|@njzu~?MIPh?WG$&@&9u%dh>`lz=g>a- z@+9mgvu4Vd#^BHXiFpoCo8`3yPqMsxAZisoR@xJ+HqxG;NK0)TD|xj48n!HQXq`fP zcokM!7E^>(kvomr46PB9fs)-_VSQ&1V^rYXO?u5#&N)f-K4R-ZW3OFYOq?G7|~3+$Ib-XVx){(Z5g%O5cz)E!=rkt=N7b6-o;X?<6SYQBSojesvgVh zvAi^=5>l$W16Dd{HE*_PAVx}hAVymJK#bJv4s|KC&?qzzGqjhVi+J@8IITpwI32XE z@Q0+X_1F;pkgPCLLz3Qj>u-^JCE_>_`f|A32rc3qx)^Agdo853KFSIqjTg%*bv z&Q$92PY5js`gRkcKLdROUJ3i7@~E+^<1(AJ5^HmXwXZ|b+UkD9QMC>4eb~|oUXA6| zTZ9&XKKorrJ8k~;**JPavbWR|k{z^$ko4I-A=#H|wE9{tY6yLTc-?(*2E;r{M+0l2 zeU%1leM3lUMB6rDKS$UE4l8x2-AcD`D;o=GZAkj;rjVTC#fK@!?~J25L^~pT!Cx-( z$b#H(DSiumB*xI(@S#ArW9KAq8|f_Y!Ys{B!2ZER^js|E^>6rlShX+o<%Q#OT{QzJ zH7tAU#n#_a->+_P)Gi8rj@4WdJ{_7j^(pYq1saDqD#Ftc2klQr&(%t-ma4GKv}&xD zt?nqqOS6Kl?qAM8ePML#W<68b>b4k!5b$>#?5hb+HmD&iV^2ePU+_+cw9&@a5IzXJ zdEoWCM*v*`)L`Rn+6GBW>2OQouO9x2;_2k^YM@>>?g_kJ469Z;w30guYo?|!wM%Nh zEn#WDEn#W3xKDvHx`D%<4t+})T?lkMT3)M-w=FEQ^{ikWq_mUOYEzWO;{wH-6@32z zM|~4Z>9`jDsE2E{>CN#kz({;6;?N-ucgf~k;co?a{q931M2`Pypp|UPIwNhjdDX^< z))1XsMl>?@x^KhZGL(6a|20_f1uV$%i!IoPGgkGwA_Wg2zC@ku4u20sTDrrtM(DXf z7i*@S_g?pF*!+(X&=))jh*Dk@Ox_E#b?}OU6M!CurQK{5g_s)50gp7#4jurcFdLp4 zECSkquv3F40MUA(Ja`t+V+dOwyxgK2fSzXFT|mzJ3QK zg0%lkBS{+1$msN;$L3llkGg(@n9rs44noxNY`Bk*>OdTH0@xRpwP{~i)~1VtFG9K* z{x);I{L6;@7HGhR7_cFf|C<{fb-II{HXFhpE1LbWqB%a6TA42oE!j#_tu&pb6q`Qf zNrt~1^%iUy1C*>j02&W8+ebG7XoXe~D`Q1Ttn_Qmwsw}Xl;%Epu~%Z|(FIg&LzFS1 znL=5t>|K||O21nXEA6++hR`eAY*;Yg`4qP36%`>`QPo?2TY1cj%f_mMcNb`HQ=j|o zjj)xm2S6I#~<#<83xK+GFKJXLWEM z*2xtJp+|`Gf!bo_Or$+lP8!w)XF~H;kZ!hC#mC9)AvI2VsgB^Sn5mL2D|z)!eO;&3 zm*yM?EwpFUW=pz_^MKBUa;?5>tFJ9q<`!)>9cfO5(Nf0wLgP%HMa33XSyW?DiAD7m zHLzyt1q$M>HZ$Z>meM@CH100TYXYJ^r_F}#vZ&i4y)*k8cP!o7*JQKVNC@V%*30vL6QEn^2o9fU?_+g-}F0INR z1KPlK_bH%7cHKQShEDLG1usA5T4>$?G&P21BgFH^OB)z3)TXZO5KSa0dFiYthR`g6+niUPaSBYff;+SNaURCx&*X zsh;-O`EHM$4X0ZBraFIx7CITowY+qT;^U>o_wcDIojvvNNf(W#dGS(Dd+hmOUc8K} zJ+924I@G6#<71>F+iEVbsLY~bi%KmjiC=F@+Tpbyjj&ZLrL>jUQ@0vxO9Ss&QZ3%< zQfs81W|jH^7JLm0s%(m?;$=--&xmTQ-jn_g{#FOSMTq2nntN0KOw#$zQmo|s`(d>5 z2lvspF?6r@J#Kv9j2^sLNLL2~@RtmPQ&7XpcQXx|?+D6w_qDtzngQM}2%GPo43x!a z9?&G9Mw>597PVT`V$nc+BW`zmgt`1cd@B&m>IdSN1AWbCJx~kgodfYl#VK{bJA{tB z7dOSQ;v0y68qy%WO$}-D4LU1Zj0l zGeV?cU+)}W0d_fQY~0K>;!K2Sw6-)R&~Gtci+pahwk&q;Mc7jiTVulIBV08ORyA3x z=EwXI(m9Z}CP**UV)eCIe@_H1z7I1VK>Hwzofm;FLT;2L%E~Lx?kH7p2%14*Uj_ayhre2@r87Z#vxY>O z6*MGDAKPHVHd@rgh*H^RwdhgfMrdxbVcV^=%c2&G8m+(8!QYq}N?W3=?i#HvO&00% zHyTq~6F)XRaCf4Veve&s^w~HtBSU)W#^r$J)$)lB?bQ$1*m|tAn-SHGsR0@}DV59k zb^@KNMR1ml4VG*e}vSHREx4L%C#uZqGF3mEh@99!lFfdFM}+oZy~eV~uVg|-ng zeq0!oUayC9lKSkLgp=U!bHrPdaPaO*{gctr;L*OyX7=|twEda{iDLt&gVx;}Vh%tK zy@}k|5OX9D&9gVeOoyc!J&Ts|0Bqh6^QJ`)LHaoJ)>w2b5REe%V$K7i(V#X->gfg^ z8{b77ElFZQW0K69nv(49Q4+N+syX#ZC&HGG5Tcc}{2MtGMGb;s_Eu{BRc(VrI>@S{;i6+8*@0S2l2@= zSBX!Sxk`L8jV@<=MpBxqP;R8MKboryCQ&`z6`Ip+*mN5<-G)t1z9dDDDcLrxE@_>j zMX-ftU(q&`%l@d|=UOeP$<&Wi-!z!C0wG=isX>KY?_k)M ztZqV$pwryS7-_53F|R>d3~8~oJ~!bRNkdB6AbY!2F7O%-n=tNS}kWBw2PG zaufan9?db6LoJAd=8mOSU%8KNh0zX1X>wtzoD=_l)_LP~AFC0W)zB{r4GuH4Sw>VFNE z9se21x3SIITp5zx%SP`1_@rT^Sl}Nin)Qx9oglQ^u<;|Mr%AV{(@MK7>a%FG zMFSS)*|3cxzK4C&VdZ)U)c{YD3 z&QL`vf4m$ariQKss;964 z`WA&|6lLs>tS=k6(eyNBBR8Agr`2ldWJEQ)h3%vA=(6@TS)02puYIJ{wa$?=v!osM zE?aJmR`V7&4tcN?R&B9$qsN9#cE>?_C!{?irJg3c)4;n2ycX6>ZDEUh6nI(K^JuY_ z=GzmF9?RR_nN6S7vVEzXr}T}KmRw{{J@oy~2VqN{It3Oy3N$!Ub~Fb^%8q88sx(r6 z3iVBNqbEK^{Kcn;zf_je-lpDRq1i}oiqz*ki#o7Z=c*SF+ah;FBjyo69nM1VXb+{s zvG+xt8x607!%_*(w$?`&eT1;ZDKd{ONuhJtt>BfUNC}pt+yO20%|J=YeL(I3*lP*N zcPypWs$xbod#$ypthLe&?ka?(JI5N){$!;OF4c?qE(ZFioFataMsFhMVJ{QkV)9&$s>v_42*a z1A*$T%|*U32ut@iTbM_?#H}eS_Q4*=hiD7TqZ8hSl=0X(CTT;;B#ZVpyU7hHM_P1> zMRP5>$RgQ)Zb(|ogexc{88`Sma+EQ)+qMB38YZuC^cAG=(T+%c~ zHSj8d{FPbM$^M8pV3FQoE`^qL!C8oH4p3ca9uU>`x=_o>`X*al=pxJOD-&LEy)NIn zP@R>|z^){PEw-oYgDEmrtP5TTfAcuD^V@Ng2*{sGEsAp2pGv*$0`THfC4|E_8tDdN ze5#ByT{gYl7Nv4nx^Izg!}g@e>{V-_?|}Mji0o9k8Qjb{#A^*JEnurCuL@G>H$Umi zzY^wATPR5V5WE*LzbZ&Q7rUlIPbeRbNyQE4YjM6%X46)dD)l9LlKEkfEU3g8)dsg2 z`9i1WH8zf1i#qrY#_y3Yd6qZdS%MLVZXfG=0JlJz=G+G@^!?U+=NTZ{^=r1ZshQ7{ z>FjAG^HLeT1An(8Y#sMpucH@Oep(mEwy}l zLwQwic?}lnJN`5$Y_z;4ioqojQM-II`B-qp1u=b%L$G4mj$UAomVhd$}3%TPDE zIkx$6jygF+-v(WhhWcV{?y;8Yy^NRPPlu=j>KjG(Z9j{re6BY6oaVa>=y2pv7i*!m zl{%X0DWx)X^c_`-S23xhXK4#Ku-)d1V%rj;5M(KGNG@EoiZ*)uJ|w8ZBzFNRRASK#PBj^arUHwOfBx zi86bwN|ezcoBeU^93%OXK1Qr6uv)sTmXa~lYH6e^9V2bJZ}g1KdiSGm^hrQes+(4DL@wfHQJy?%NfOQz@9#%6tvKGpe~z^t}*o6 zSqbl9%{hjCb>|R_6}YAr9#caLeSn=MbTCayz@^jBMV zGor70{=kU(Q)=CnioPMIF)DAY)VevLJz(jbyNL8p@K?-IK0g|}8!S!3X)H;)RzFsDaat^DVnplYR;w@GqBe_kA4X|Q zwY+SL2FJ`ZbHSm8MBcE=iM?oN6^^kD{EU zII=keS&*H!&REdzK8Sii_q6mW{3nQ4qc4Hdd{04&B?rC?TMtCzQ7>*F0imQLPCpRs zZk1VEl9fMC`%6}-gy0X~WdQ}DB^=HLnl)O`$v_?IK=6_vP3H9=^Fsz6+l@rNeTL%puWBHYw#-770|MX(L$i>8T}Uh zOCwM%mlpM%^;}xicQ&L+Kh%&W^{+ln`c6G}qTYA&6X2}@FW&MthE9T(W1wYYs0QdXpmZy(O|!kcMKu;x@%?NX zqjGnVn%!k*s;z7l)#uiaJs@?GaG z&^I-(@;isW|A_FtAR410+zZe;YMHwRDWb1KB4N6TK)k7em%yWwpQ(X&4eC(+Ky>?k zG2h4=gl7LZd1E1U9QDAo+vp!B<53w~MR`!R%crKk{nYyBPe0V?^QRxR6ZEC0ml=KO=?iy) zzC3GRUiz&&L0?Jwy~e(h^uO!`eHGTeiu8>;L0@h9fU&POeV0Ridige{=RgbfSB>e1 z>;!$SHodLsk)5Eg)9UL?pSu(E^;ms9>C{qwYWo;SpKtPSApM%1U|;-r>Hp%#-@X&{ zWm|pOl)u^^mUDI*$Mjk#V!{sg1+1d{=>}tZ$b*tPpyB&6ZSItiYFYj6ZDl#pfwn+1CkY;w$NO; zWCE>SXl|RVzQP=s?!V}lQGy5IEXGH#UyJ}MnIJ2cvI(-vDw`lHmf7|@+}Qy-X{9gW zW(QVUMDKY}Y%|r>SWTosU#^lb2@Ck0EV@l!!S>PqZY9s)-@~e-GVI^aoL{nLy?Rdp zk5FZ}_!}KtW%zi5s`a`Du~kfULgezdn|w-P(@`BRfOG<^>gM+eX&LUKej=mVK3(HGRH4|h{x@LmxwR9`lqwTiu z3Uw>l&#vVh-yK%fv!%2)t+%%5mm{exmxYgn^>p4iJ0N==vjcKQKU*DR_CZ#0o=$~6 zjc6^T(Q)`LP$T-jwmG_o!l(?==I~#>#(S2G#sN{h&Ed*Zl{yIeI>INz0xI9;uvpL> zZa48Zho1qWug{vpF9Xq6h|S@*fyjd9@CQKjnoD!|OP~uGIfz3`6M+hGy4f7w%f@@C zMaNiwr&(S#5S=_Wha0Svkk-5e=mX?rb9f~X?d)izQ`Byy?*M5F`hkAMR=Ha>uiTdJ z<*_6GjWsuTafI_fT^+wP{0$wEQ6(IUGAU zh;{&JUAWTZX?5sQphDzxUHB@XnLtgp*42ftGya-vORfvwX?Xe_G`e|F7rq}nN>P(- z$t~No0IG?{LUW6)VRhk05#l~h8`-=Bt+6iL30@}bs}8*m6akvewd7>Bk9Mf29?TB+ zK}w}CJ1qW^W43^I2K@Efl=p_IEzAXPQTRJZtAH|NZ$!WG8e*#s#O<%^mA<=h1!6;g zfOdHUTQCMv>IL+xP4@(G(&gJ5Jo;93zI{VY_a!yZJl}T+r25UN<19Mept`WcRu?`S zJknejo)1K&+RyP)+UEPN2Co+SR&vUZf^=oL5xj+#M=h#4l!2Xzo7vL6fbImU3$HNx zs%=}Xwx{Mb;YT3-J+#!?Z=A}xZ)yauE=>EZw=w#Y(NY&)XA!;XGm+zX2RuR>!mCE= zbkwq?)XVEHkei{U#+E`&xE~>?1yqLyfLb|@zyYrMBcqW(ln2lPME2E% zKAc$T*ZSSr2tnmh7d{h6TY7;-vfEP~rgwFzX18&hp|c77WfQ$?FvqsvcH5%#+f>~M zp?7fK0cy8xD=Q}YauAKCq_2H~j0^evQtSI1LdMHZ+sZm^+nOJ~5|;W=Myp-A@Axr7 z=pKE5k(|kOO_2LOZPtRm2}j|+E!`36=JAb2tG)^HI&|Lzc`-WAz8X8gX`^vk8pXTpi>Z!(Ie7GX*9NBzi1L1mz0I=0S!Z}N{f}1b z(LULI9Xz_jH)t(*BL3a5tI{#c@Mp-5aJ)sS7NuKM&#w$qDzjn_MP5<7IkEHWG@2UQ zh+9L%%a2`bcxgNvp&F*qD5R)TeT;X&sV6MRC_Yl(h%d;XU!b77@dX?km1RMOya7>= zLBEef=T-$7@)|@z#`WOQ7i0w)@>Ntp#$({o3lRkwzm3Q1tr+(UGF}3YZu}Nxyk*h9 zfM~T{kP*V01HA6G--s1te28Cbq%RMm-y0NUq#1wR@$xECK}IfYW-SSH=1`G9vAH;3 zp!QpkQ4yojVu!v&&p^s6GUSbgvJCk~r!<3RMs$;?B17I-D9(5nrKNfD7DIl_X7F~0 zmf8$?C!vbNQhC&7$SVptLHX*uI!HbGWP~WNU#LzEehDp9n|j@UpQqc*)L*}~r*o(!wf*#hcgbCZvsg_rga zTW<1IKonbU^7TOUl~8W-tw0yCv<8UkOK!51U~Y0PtfvypP2Pey2=&KgqNSXUIC7KA z5#kpJJBPpi`67;Z(&BTIS0ZhfLYkL(H~cMNv<8SQ=t};pNpAsLN_TZT+$qpZZ{8O9 zOe2U>DzrrcDFjzT4w^vhfH`fX|EhY@{eu_SXf z`rS(8OPS4~&GuEFs!X|qQIjcSUQMQ5DP_vJ+GhJcO--hp0o7zmTi9%0zNy+qN;QI7 zXw^1ah)3zDvMK81`zlnQJ4a`uc2fQ8vA0yx$54%>zOLK)tIw1>81GAX za$|7J?@Yeb*ju)(nX(63t1{_gEYUaKGXcNBHh4q z;A`M-Ls(8w>%zr|gI4)^4`2zT^R2&B`<-UBot4gKM7>WPBbsF_vS=B9Z%@3%%%f3l znUyv(q8hQ15tYI!i&k5ISr$#TsKcUljGAC+j^%BzDBq&D7_ET6UPd&#?q@{tZec|B zZM8gyN9_9%BFu>VB{Sl=l;vrEB+atC97Yc#>{QFkXGHN9S>8-Wlz$P+o6YEPge_lEjCBF| zYxdv8G%av1)A4~;rdfeipoyv~P|4vh4D>Lq2^^bG{L2H+Fs%*jcM!Q31nvV3sm8!K zoLPj_(m*EDroiq@mj~#SJ%m>>_W?~*U4cBNg~2nJKPO0M+aXmEoX`Aog1=%~75toO zZSeI1jwkpL)B0d6&K?r++Tc{CF9c6v+7sN!SV zm?p*igK27vAA8A(YHUmj(@8NCK|^?ZWIEH0F*BH|(9c;uHgp`*^iVa^ywFWd4-7rb zv>@~j)51_9_J9-dB3%a48KEhlA@xe=c&6Q?_Ql68jp{yx7l}9vC~Skiu8Q9tIjx_r;#W?(W!M zFja9kGyjITx7pnpw~^h0adG&a1`F;G`EkADOH@oM~px0ue%%s{z}RPSe<0E#z@_V_!yPs=?V z`8!gT=N<_fQq6mnFui-P2q?bg+UG)+FP^d+^o~@wPnpE}XCAy9G*jW7zgd3*+8gMj zS!)dXeAaUYeKTu=LB7Zv2E|3*Gbkl;d9e;VF7hjbc8mPZpvjSY4B9vHfI$aGJ~wE3 zn0+4dZf|r0CMt=p$ zWb_757NZ^@Y?rC`R4-5=^L~x>P7$Nu0nK65094LsG0<5+*F=jfEF=t z1<-QlZ2)R!^g7T=mc9+NhIxTgVJV|nppA@10QE9T1yX*pAPvZ2Gyy1!(QZIRj3xoi z1e)gT1vH0wrvQ~RIs>SZr4>L6nAZqY$7mT)Gow3zIvA}0S_gDnH!J^O>=sIGMSe(2c^Zli9m(SyBugH^L`05hk1_zEnxH{&~iq925JGiEz$|J zhIuaobuzCTXe0C91?mTy=JWyK=QLqUZaDzZG-oPMCiBh)%3)p=P$Bak0V-njIM7U% zwgb&!-j_h-jJ^S?WT`q6mNM@kpgKl}0WD%_G0<}6T?f?6=q8|*EL{q;hIy|7bufAp zXdO%60ousCMvpY~G^UejzVsrse4oho*3YqsLP!Xd) z1I=V~W5a@x(cR-7Pra7Z3kV=*o05vlz0$RcTjsRN8 z{!Rp1!_r>^bujuJ&|3D_0JM(%-3+vmr7r^YGI|AQ6Z?A&sGt390#b358{_99HyG^- z6b72+>;aU?ymFu{M)QDn19~8G9#9VZy8@_)rS}2NWZr{7<;?pKsFHaf1JyBak9o)g zpo=59K#N#<1kiGzxX4vN&Ft?>pp`8B2523lyt9!umi_{$pLrJn;b&Trjt79kK+~Lu zfpQpq05p@)_;X+jqZ5D@FfHIkP6HpeTr9g#@ZU-u2bQjP}plQy%Ky#S)PoQ!}p8{2~bO2}p^L9BG z`Nt>&Xd%$#NH)+S_Ll?H%+fP}R}O())pWS^5spCYHVj z)X&m?06B@2%8BP;egHH%G8rfgG|ia;v>Ws00_8C8T%barO|$L6gefyx*ND2vfjpbkd21NAbxi~NltfA<1q0>wpIfwGu4<3d=) z=;uJ?jE)1UV{{TwGovz~UPk3WzOj@q^MJ~MHqAN@sE*NvKv`+Ty98)DP+a5+gFcFk ztVX}VJi4*B5a^>w9Z)le_#My+<~0CyFz-g7wamK(XcME`fqc7A*cCu?fHuuq3ABLG zLqN+J{Sjyd(B#MyKx>%y6wq4cJp;6ndCvo>aipaSD3j3!ph8Bk1I=OdHqZh_8-bQH zdLL*7(B#NJfz~kZQ=rUr(l-E9$Y?9j97f*(l{4~P1bvJ`Ky{1~fR-~F3DnGJ4A2@z z=|CNfvVb-+nh2!EQ*4ugG8s()DrB@D&{;r}BL@L31d59s2DA}qZR81{tO*qMDWDEU z&j9r@dLC#K&;yY!ASZ+Ty#?e0`aJS?pe*KX0@@AeqsWH_eG~b_Am4HB#aik+F5RNN zESe5f#9C$pl`}dWXdzHsTiz1DyplIr1&g0_M3j zu%3A_K+BmI543`L$v|tEHyUUoqj5l+7-brCO=Ne2Rz&6jsa?sI^MHInlOq=bWijs( zpdvSc5!&?ZJDK)&6{`Up@aqZ5I4 zV{|G|A)`4!MU3VGO=om2&>Th=0F^VU0XmD(e4qu4eg#y=Xd%!-MppwZXLK!4Gou@U zRxr8+Xbqz#pbkdOKx-M@1Jujt0iaEc9tLtIQaT<5@-cc6D2vgbfp%lm2~@~v9Z(UY zzW_~V^eRv}qc{IQ%I-Z*#`2FJ|9xAsyF*eUp=MhpBo!qIvzCy=tej7?Z9+~V zhoo|@h|IQ0%Au1Ksafj~l0-!*vzCyYLMi0;dcW-b;`e!cAHVP8_s46m=e)1$df)fl zJ3G6}?kto={Q`xly-%+eg0-L&)_#Lhsl!kjbsS2kPD7d0zfcx+0g6z?N8lb& zNl*@TC6r5D1LaZILHSe_sDQc&Dx|7G?yYvFw?PTiolpvO4-}vpKxtF}3Q^6VOzJ@> zOtpa`)FV)o>I~&jJ)jts1?5qFpg1)EDxiiyg-~vAM3D;Hjw#aQU<7ii+c~d+TxtX4 zr@n?#sBKVy`T-pkNO9SQ~yB)RKn9Zml}31iI7W` zhWymkPzqH63P8SKWhjlcXQ50g8;VfRLpjt-P>h-m-iK1Ck9MIk(x-eu4bdUMN5vfI`$C zP$qQ(3R8bU5$Y@yrJRxIOqGD*R5Ik$vSXBi{8Tw8Kvjf7)D2K3l?sKaTcHS53yM;A zLAg{tD4)6?ic@J&A@u;{+-}Eh1tm~zAwSg~N~O9$0jejIMm+|FsJ>8`8VF@mL!n&i zX(*q11}dbUgA!`naVJ8l)QeC$H4Vz5UV-wd*P%ix3MJfOdlx{d)Voj`wG2w9K8Bh? z+k>A$nXG*QWl{N1g!&4~rnW#i)OS!W^&^x|?S|r10aQT!1{G3=A?HpztK*PMorV&q ze<4400ZO5YkHXngNl<{g5=x`4fzqk#pb%9B%A{_BvZ!iMn7R#$P z0VtPh2F0icp**S$lutbZ6;Pd_LaGPk+-3JN3re8+Kz?cfltK-GQmGM8fEoj(Q4uJe zngE5U$xtRW70RM!L1AhR6rtur+0LaKS@&!MI66)AFw;PSKqB=oU zq3yx$P&#XmLRnOAD4XgJRZUU+s^NM z$WQ$QrBZvKs?he}J}AK2At;?X3WcbXP!@Ft3RCByanSZ)u`xJP)=EM#suYw@m4)I| zd8m-81o`i=_mLk;hYH(vhq9U$`S`U%RS_CWSiJa~UV*{mIca;c+GK6Mf*q|QJI_3dcqq2dtUAJ5?G zvQ`pGrAk5RR9PsCDi1vdZ4Xw0BCPqLZ0cqxhpGYPQnjHNRTs*m>O=WdBWNwOJ(v!~ zS!)3mP_3atDg$!wvvckUB~aa<6e<%+r5=X@kT2K|N@Hy|lui{uO`+|<-=Iv^4nq;@ zIFwDDhN9HJP!4qg%B6}wi+e;RL3z}bP(F1H6sN9(3aBbjA$1evHn96q4N9PHgHotF zp;YP~D2-|WrBeYYlWGQKQ4c~9stuG)Jp$!WouOQ+2lN)SJ(vZ>SnC7jQ3IfSY6ujk zMnDDB7|6Nb&N%|P)C9;+O@`8`sZbU*3(BVEK)KX>D4%)@N^NNU7C~v$QYfAJ2xPP$9J+N@!$f@H>=B9fQ)SQ;_|f zS7Fv8`a`+YU?`s&4i!?P zp@cL$Mi@$^#zR@u3s8ib0%cP(pR^63V4YK{2WCX_=hgmS6HP#*OGluvyE6;P|7LMjHi57-&3gA%AsP%5<* zN~d-}S=25loB9>Xr3#@u>L8R)9f1m{KcPbEZz!R;9qk;HO1TjngSrBWQa&h$x(bR> z*Ft&J^-uwIBUDILg;H8r=ju?1x*ZBrb)anOUMPoZ2<1^tpnR%1R6soh6;eScp`~^1 zV6#+LDCa?|g`gPZ3-*HYSUYX&sDB}+6@HX4;{xPDg>93c!DBGe5~ z4wVY!QMW<`R4r&9v?_QPp@}27rY>>AQm9X%G-@@JNv(k*)CMSr`Wnikwm}8d z50Kl|`uz;0P;n@Y+7IPHzToe+E@?$aaia`a`I>>#* zW;a18)K(~s+5u%!yPyd5E0jYOLV46dsDL^Gx$UjrpHK?*Hx%h$wR1Mx(d3T9EOiBx zM){yj>MAHgT?^$<*F$;KjZgtq6{_0F9ud`{OsKH!?NEfO1LaWnLU~j}sDNq$xt(oC zb0~#+2uh=ZwvOsx>$=#wuC|T}**dBhltVoMp5D22KiN~3B(nN)2kLe+(GsQOSI z)d(t}(xH?-)~^MWMzw}AsSGGWb%b)LZcrYT2^CO}LvCN|($CgWPue7v8V99Olb}rMWhg?;fO4qUpgd|GR6xB6x&5r)LMVk=45d*YK$+AhP=s0qIx`A`Jf!?DkzV-7Al~whuneI??xzdkf|yZp{heU)a_6nRR=1d?uFbZZAU{Wg=zw& zQO%)D>LDm+u&oP1c~l3efa(glLu@u=>!@C~j(Wn@QG;yVPJM8-oq!6czaV#%?KlgiP|hUmph`fQR5BEy%0M|(IVg{+2o+E_ zKxw0`Un-PI-3mphT2Kyk7nDcUg9@nop|ml!Hx0_99)KcLD=3F*3*}Mmp#rK4gew2&GUjLTS`AD3f{xicqgZIaCzN zqZU8~)Vq*7*7_}jQmBuiH0m?RzS}Hp`-RQgcLi}Zzw`N3FS~Dp*-q2sDPRbxwuNcjG0ghH4n1K zr7z=cD3e+SMW|1q94ZgWqc%YW)ON_l)%0cThEk~gP#Sd<%B22=A{72exsyXBL3z~G zPytm5a&cXK8C9Vasuq++-2-J(jiCtD0?MI+P#)C+v>|+KRUkYA4?2Pz89KNBxescFUJ> z5^vp?P3NE#ss!GqQCH$^CRG7%Ba|O+bExWgn@8P+w*^!KymhBozot+M)f!5pIzX9J zPbfn5fpVz9rg`?r9tGu5W1#|S9OS-Xvy-frV|v+YZ<=O6nQxh1gCf*CTer+=Z`!)| zO$(tEYB7{XeE?-rpFqWz+gHA;Y~81}BWCNUbyoY#YMZP^ZG|$a9Z=5aHoFVTqke@7 zs6r_13!6O%Wl~3=2=%9}TWhm_L+(1$IVk08lZ&g9MqL4AQa&g`T?IA$#?JX#C=V)Z zdp%S@-3aYFYqM2t-8oZrXc9CdcssNR`Y2cj+Q{0yP||t(Dcgonb;uWdph%m8+n|=L z{RH);dQC+?>NvEB8a)mDs4J%9XRN7dP||6EeGpZM@mP_3!86hjJfqlbdd9&b`GQw2@M=#MsX@l8&?2m>ld-%=zTir!^4qxQN%k0; zUZk2CbD^YUt5sNt`v&=fw-qThW0q=fK^yT`uQms-dk0;p6lfA&5hXRF2DAvm$Ex&B zks4&&un2oG+b*Lzbcnhgir2#KcFbp1X=`b4mO8kthI$U zveq7ov(^K$S2M#;2|#|T4-}vVKp|=f6oY)h5m5Mk+fnRY9E~ao1sYkcl+~cF8D$}- zv8g=drz+Vx$`8c?w&P~2rI~6#A*wbMrs_gbsy-B>8bNU?9der3-WHIbYHjP9SuMlX zQ5|jF16J#1>!?g9Ks^qHsD4nGdJ>9K!=M;73W`%>A*Z?Z8wdHRNv0Ndg zP>lKu3beG^Stvv~??De*tppTkZA!KpRR#)E<)A245sFhcK+eOqBNg&fw?YA`78IuL zf}&JCC`R26#i=yN-^RK;00pR4P>5;^g{k&XlfflhgA96CR-#d_>S^@>A51|mX0t!=~ zLs2RZic#yKIJFsa+F8GEAwTs!6rg^BLew58OznfB)FCKF9fji5NyvG``kjIN)OjdC z6s7xqMJr3c|6`@~0$WJ{9g}PX67!;;PK~ZWf6r;vL zacUCebhRBXLw;%o6rf&%LexAcOuY$3sfAFSS`0betjh;bjQYf8sZ}=H-DYEupIT?N z9#-1~g{ZAinA&0LX|ubaDD|t=GObn!Igi=L`9a7}^;?22)KMr(4PJ_Kp-w^mezteS zGOVMo* z_ZF*BH6dq=)$V{o&zSCp!qk0GbgUh>F%+ZTgyK|*4{^?6+tCLKPy?V4H3SM%BcLcX z28vM;C{9g)?1dZ(+fIi3)Kn-y&4NPI94Ji9hoaP5P>fmx#i^x`^PKhj2ntc3LSbq( z6s6WcF=_)8r@n^lr6da5ZiD>P4^V*m846KxC`|2#qSWtDj5-FzsZ)?M&iefWg{l9b zD3$OLc2J2>oGJ}D<88;)ke{jm1*pnUh)RK?)Gbhqs%h&c*n8^^TSv`>;t(D$AEWlX z&6bA3)Jss5`U;9c_zD2uzs9L#$eCodGLWAt2L-5#Q1k_xy#b0*sZgA{6>=uqY%R!7 z-30}xdQgbEABw+dXO(8NQ*Fm0o28aQVd^6&N_}dYX6sf%F=`DIr#3*&bnExE&Awvm zN`8V_subkBYPGVEpDGWHd(Fl7wUwZKlpm@(+iEx4ELFp5bF5YydW@!ACAZMZNs0R6|+n@k-ClsRYfx=V+C`tvO*gLkj z85E};v~}-Vt&Odt9HcC2Aiv847%E zvs0m_(Dq=3m3W*|m7#r93goP|b+mX0=gJfEo*h)>v&E6s9Iw zZLQT_hKjFq@iPfCpa6t_6SP@s9u%hDgrd|!C`K)Y;?xI_v)=Z80{N*`P=Ja-A!;2I zrZz!QYOB>Y*xnshqjo_t$QS$-3T?F6w9m1QdH{-2t)Ljy7K&5tA!n2A=mPnvo=|{# z3<^x>R~8GwS(eRC&>BHc65jQ)T2;<>J5dc{!o}2 z3`MEoP>dQ4#i=ml?6iL4AwTtk)qb&iKE-O(Oeg>qww-OY0@E8-qjI4T^$rxKmOxSJ zLnubAfa28Wkh9mik4hhPqvQQ1BIx4P?$OdMX94uj5-PV z_u1YvP=GoQg{Wd*U@uh?ic+PZ7*!UE@3+0>p}+xCB`8Gsp)hqb6g_COHEi~fskY5h zb#0ca55=fPP@GDKoZoFn3&>Bkh5}TE)ehVHqodWRZcy|OdkopXlE|*k5+vWMbZlErP<-QYcD&1jVRN zp*Xb~@}ISSYoGwN!Di1{?Q6(6Z`x+-s2^+{^)nQr;!v2{4>=cX$M2AzItB%(Q&5Qd z2MSaFK~XAU4bG2BgyK|b$X^_P>$C0EkW<1`!D>`xC_tq^A?g+=Ox1*<)E!Wax*Lj9 z_d(7T)~_+-rKv(!&etd!OEKyhjx$eIDTxW_wA!;2IrZz!Q zYAY0@c0h4z7vxm5y}v?!st^iL2cZyk1PW7sLQ(2(C`O%w;*^X3v2?Dtepf(#$_E9g ztDq2dEfl7%hoaPtkWU}6iEr;UNO31MX9=`TWno@C`L7c;#4~1RI}L@ke_M|1*i-tN_B){R5!?}ZfB4Q#i?A#f17pL z4+W^-p%8Tp3R9<`DD@8%qyB^9RKf;yu4P>kq3|7cjM7jH!cRy-acZ2cyVGiuAV2jo z6u8T3GoTRln$6a++B}=3-Za&<+Cp1LEr!C>2avr+KE4xy;`f+VK@R?o3!Vi`^-b#_ zKeY)8P+Or8wF3%MyPzobD-@#&ZQXs=<)E#jj@UZtPg_U*4f*f4b?2Y}<$i@7)D=*a z@e)JP>A{t3R6E?EzM?kTa7A!qSS9tj5=(yO>Et9o25?MEcGuGr!GK& zbX!+^BRW$_P?)+Bic;4=G3q)fPE~=NrndJc$WK*+!p*F98x*DPgksb^P@HN2IS<&n z02HR0K~d^K$luat+du*85hz4;hQd@2C`x5PF{oy+4-}^cK+c0!8v^;M5m0~{1BIvv z6s9IXQED<2qozV}Y8K?QvVL$e)7wSzYKrMtq)M6-1eE>zNPoNmJ3W`%P z$a&cMt%Cwk&EO^|L~Vt_)D9?0?Sf*|uTY#Sgq$|E_aNk_jz9tGPbftF4TY(5P?T~v zqYHHfA{y3R8bWQR*BNquj62 zkGcYK9^o~B{M1!YfVvh6QP)FZ>P9F^RfS?y^&;U}3W~G#0pzr|d-+L`Y6k0X!7)&) z8EgavsB|bqwSdA@YbZ)(KryOgk$k~!kiUa<-Uo#se8+;H?+R1>p(r&Nic!O%I5pa8 z9c@S0YLG8D9t!ocvx-4c$QN8!q?*AVTfJJA^d=PJj(t#^Is}Ctx6VhQFm)1&QfHtT zbsmaS#lFQA>TNqpLVl_g6rjpNA*#Hsd&17DlFdT+7aNO-hq1JCD6oT+|n9Wja zp(wQxic#M{acVo{JY_p}LVoHOC_wFnLev2$O#J~xsS{8fsu}zXa)z1CLVn8m4qd1c zP>4!~!c-Y3N|h^;FIdsm4Yw{Y**a=E6sKN=oDnuV7xGg%P=IHEPC$WC zw)Zb6M4g4gl(QXssS=Pg+SVmQeyR)g7!;!VLNRI}6sLwl&RE;~ zG~}nAfx^^tP?VYo#i$pdI5iClgl+FDP>6aR3R6)iN-cowCGNXsybJlMWl(_n7z$CJ zK{4tJC{E==&U3c+E67i6fx^^xP?Y)+ic!0vI8^`zvTg5gP>4DVg{k9ElsXML<80l( zke|8$1*qaXu$M}LV$_vToVo^b#@pWOAU{hQK}jgqi%!Z)SXaZg6+Kr3Q-N9 zFcpBJR5Qq#XzLz?{8Sq#Ks^G5sLoJ~>H)>6EXaA@_V$7N)Bq?<4S}N62q;F4f#OsI z3QV%S6QB?^846QVp(r&Aa$c}?b09x89|}-!K_O}p6r+|xaq1(;nQVJMh5XcNC`_$^ zqSOW`Mtu#%sclf;McexW6rz5H!c-iJQu`t2C0qA9!B(*xp;95LFWjQ+Gg7>TbxHYU}QU{8VEoKsALz zR7)sEJq*REc91j8_I85&RCg#$Jqkss-cXF{55@EB*>*7GtT7FT{M2YDK!u?YH6996 zFF;Xh3KXMen$}vE*^qyO=?y4A35(;my{i9TcTHK{2X36sI1A{9A2rZzw?Zhr-lgC`t{7;?!u!`PO!X ztwxQv+BU1b00pQiP>7ldMXA|PjCuo#Q@N1yo$Y-G3Q$X+5cMGxrB*;O>T_GS-FD>J zI%>VGqc+<*>RZU!Ve7t!{M1iSh}r{%seMq4It0b3qmci5+j|lUP-mbpbsmaR#eT#N zswCw6U^_}d0jew%qRK;2suC2V{E+jb?YJ58Q#GIvRT~OZb)hI#ABs_pAZMrTO^5tc z3n)ajhQd?^6o-7lj#BbYoZl{cY~(^A>K!OdErFuchfs`K0mY%N8J|PWPo_L5K&^*D z)MhA3eGA2?@1Z#L6Xg7Cd-p&AY9AD$4na}sC={bkLUHO0qY!~)YC7~!) z3W`x>A^$J7qdXL#DnVh&4@Ie)p*U3oa(=ZPwXH_gwb~x5)rSI9BPc|rLs6;)6r);0 zaVi6H;v z8IZrw_Pz!MsCiJBdJ~FL3!xab7>ZLLK>mHU_Y){Ut%AZ-42n|gAZNclnl?dxYAY0= zc0eI&m(_l=b-!ATDulw+K`2TcfnwC3P@MYPYKLv_Ijd3bPdM%$R=Wc7Q$8p_T?K`x zYoX{-TX#Jaqi%%aR8`11X0z2HKXp44pz7G{ak~ch+AP%&3QF6s4v^ zG3r&w`N!7Hh5S^G)y~@ay=^t>Jt#oE4~3}ZP?%Z?MX4{L7_}CPQyWd^>=@rb&Uw>z zC_wFmLewu%l-di$r~@|ppPkDeP?$Pl>!`nM9d*`p!8$uX<7iX~$nPYemJ9``GEkT* z2SurhCfC;80L7?O$SG#ETOmJH3kp$pL1C(%%_iHr`=J1pX0y}-P?Tx~#i_QCkveIak@bfsmgXYU{4H+S9gyW>k?TtbKY5^3c-i4ynGOJavbst-e`V5LwUqH@vHk%IxsIQ<9wZ&#{vf1w- zKlP){QoErrRRG1P-=H{k7%JwJ?sy!d>s*0G4T^1S>^i?ANdf%5a^yaw9WnqJf<%z# zkvEXVNFMSnQh*#o+%)`MUF0^T0rC*i6X}KYLxv-xipDt@a}fJYmhH$+#OC)P`;o&% zw-cMVP7|aZG8~zUc@=RuHbkxED-q$lzeG6ors%tUPMe2fc` z#mH*Jj^mxjdfeWIoJ4HRImA0g>E^CuDTg#d`XPgnkw_SsgiJ?XN8U$1L)IXL$l;># zBu2Ld-WSNth+R)R_C0VTq$AS3D47^7wx$opfygjqERu~(LS`Vdkx!A$$WG)}WFKOE zf5&(n`K#!5$(F8D3bFfqHAX*j3(_2EjdVinG0+|3Xk-HNBC-;(e)bsO2=7Jg`kcUc z2Kf&u{@}%Px7t;31;mb11>?O%Zd5c{z3F9su*hvOb||tv2D`xn5j*x%7)K#?eZm+g zATJhW8ph?wuASivB>i<<|6MF#d>`R+jE-5j$x1g zPf_~u+_dsnF5rX%x_1&Cc^Tl)e0DPnsp-@tbMyD{2zu{C?)gGI6H zbhOAecN#9%-gOd@tC8!G8i>u^f$<)s5z?$EtufkMJB)TsY_xPn9!L5k6Od`hYsg#3 z5@ai4j}7~{w)5PH+xw8C$SLGMB&h?QPmoH;y+|{p6*2%BicCOWMrILF_o^G1~P=?&vz#AvF+t9NdBNQN%vpEfb5Ji?I+ngxLOKo$&b&DUVb` zY9S4fbmT##2htm{wIeY;SCr>5&OsI+-uuC>n|&;Nh?>Rw7})~bb=`^aH{=iGB=QeZ zyfYqa$hAoA|4SakdWM(ktB9^Z4|w-CElOEIoOHXy$ve>`<8)*(VxJql&$FN7_8P>V-|V`41>4sq-(a-+y&L0EB%voh7a?PiiHN;VreS;) zvFBvF?{?qpnD!f;w#H&LJC?1tad}bQ*4uNLa%1hM`1 zU`$8sG5!!n@3EEz4@Tw|Wg*5T$VZ5Mj{Op&-Pa8mw;+$=nvkg`Z6#2%B?FxI&&_rvx% zqnXVkcAxmU4K+J<2h=i=KFDa~IphW84dgAv)_jO@D`H<4{etl~#NMBGJcetAG)00) zm!kB*I0Tu7*vI}G7#AR?5qpk4i_z_cuZ57ik%7o)B!WDTyo|h!EJi*?Rv{aa9f&JT+;=U?Wnm-*+*eBd&lyv!Fav#rmk`r(WjTm$|`ZZho2DUFM#bxnGe-V4PTF zd*9e&|8?A6TvYoU<62}h@;y?Bl5qk_j zk8ws(W@C(Ac6$+QS&pniHXwf>=a3S8@iiM#8Mz6miPS*?Nb{n!#n=JqiS$M6J`E}w z&7+HK-w$TP_Hpt&##a#U_5#@MgFP48yyX+rK1a;oU_6POMan$kIyWHpeL-!EcNgV; zjP|_XU5|9!ws^N&UFI&ZU6=kCry;K)D-k=^R*a?k;duhF=S=&0It9KPX@xw3*uQ(& zed_|-o)AX+Ubrtt`yST5wzltCpTuojXWy%Ow(nIv+xM!T?fX?*Yu~e4Z5T2Nc>%HS zS8dL|SDlL6_PyyGjBg|Medc0}_PwL6vF{(b7T3bQkNX&NcH6$6vvDPEd&gW0Z$#`q z{D0+Jtg)}xc46F)*!Kg6i=5OS?-Qf~QU$TE*R6jlY+r|0$7sjB2V)vyU;93Y(e9sp zZR?$jeGTe41M`+ni1)cA1V3@vZToy|eTSkJL8c;Ri+#Sx!T26xYwYul*V{htSk0c3 zZCrshs}UP5R$GH{BVzAsyB&4V5C3}iCjQ-Sy_4*0aD2|!PAO-LbER|0xym`^TzxZuW&GP-z2c5D!TvD`<4wgJr(@A*f3Mzdk0~0b7L9KgjjM~s?~BHx7{4od zsh{=z7q^`fj`Lqp{qo!YyWTslcOKqxz4P#n>z#*pT<<*ox8MK!b}?L+1YCoXxc`Yx zIVZ`v30J2ouFlQ4I=4EdojRCp=#+7q<0`dq$~vvFvaNHC(+;aUIM+H|aMhl0DmVjh z)rL7$@WAyBF!n5_@I-J_z+$ps`X{}5x=i9!+A4trjwgE+gXq}$9X4luJdldEvOP${m-**n;r5_F_e&`&*%LW|Bul4_#xZF9J_=$5WafS1D;-}8} z#Lt}n5?4CKl2$nhNuN6%M9!&bv zX_a)!c{u5`(=O?6r+?BJXJFDl&hVsjPHxh9{O$SwoTW(@oMlPH-1n1;yB{T$a91Q< z;eMJ_(#=asbk`&$x$E(=Ro^6C>26Od<9?rXjoUc+IyaDfy_=p~*=?45quV^$@3u@% zaa$$dUK`9?siSC;dW21>Gn*%&CN`%${_q?{l9? zZs3khzTb@`H*~X;8@c0?8@m&e1MZ~c2i(cY&D|H1Te_bnw{kyAe#l*!+}hoMf6m&N z+{WFK+}7QNf5wR?XSfB)kGKbu+q=h-JGsY`ySOLtEz9ZT9`0YsJ>9>PA9w#ve!@MQ z+|Rv`Jj6}#4RwqAM!1Q-XWV4pWVe)WihHGRs(Y1hx_h;6hFi`z(=G3tx;OcvZdG57dy8*@d#mqlw}x+_dz&=+?f@fEloeEZ!_z5{L--(k0#@0i=e zciIj4&bW{I&bg2It}NEeSGibk-_6DP`fe%K&sV$H0N?$^2KfTThWOHo4fi!EHp;G9L!&(tTXeIxw<#X0+{^qXccNR=P)`gLyT>2B4UNbRIc$GCLd zOM5S!RR}xw@eBq-hp5reiT|lhK<#hVUWU$7bD(1P+r4}fDoK3;m8MofWvO+l?SL*` zmpxDg&K`uSP=7V?wF<80;nxJFIVl-HQ0>W#ryU%baC&qZHhS^xZ^kNI4vDY z_0FYC2k-u-Ko`&NR;b(m+@t@~nby{hme9rHUOM|r=iF86p47VWl3lfndmqtb?NZHt zGWz1|BI!fu;+bw%ZKrCN-shLP{Hoal+HvV)rb0FR3MKFFQLVGR7vGo78+)^VYxdH6 z@X~uap`&-Emv&rw@0Y^t#eU_Wi$|+0U3!0{s8&a6CS7_Dc1P{v7#ZjYC~9C zp?+)C?|bOt8Q4#>U(}_K-#`9;uRD(&qyOg&+)m!vUxD{;gtL`VyLhcGeSFw6!$i*B zirH!ZqkB<%m9+pgmkLUcOQWT!(gJCvv{l+C{Ucr3**iw6bg$G}dQ=)JJul6ZK9n{{ zyQLG-6gt_=U#cs$kh)1vO5>#0q?J-! zx}uwRjN7CP>1pW=X|43TbX9k+%RN#z={e~g>2qm^^oLZuhu5#NR9AXPdQ2K4&6E~P zYo*=NDXDZ%?`Soo=F($QM0!J7CGC_>OIL@y&b6h7q`uMwX|D8%^sV%}R6Nt`e1mka zlp*z(CP-0frL;pjDkVSa9ixWyp!9_Fg7mJmN%~z%&Qd?=LFozU1?gSsOKGQcLP~zj z>zpdxFSVBjN)x51^qKUXbXY3h%R5Gj)I`dX#z_mL_0j<;@o}$Tb?HH=pY)=%MEXWL zB3;$n>sLqWAdQsfN?%HQr4oI-F1Jdpq=C{j>0@c5v{yPSmFw$ut|dJn^^~5Lrb+Kg z`Onkp@o)<{1|e@e;y zz0NmD_emMj6Vh|i9O*-8leAa*SGsC|ceEN(Q>lmav@~5>EUlN~(!WxmG(-dp7Off zBZZ_Fq>rUvrNm+0-n*o3(gf*!=_l#DRCT!5rIj>9nk~ho1JacvyuEiz-K1>kU1^(i zMyl|%*X1rLC_O1nk(NqZq(3CzNUvWFsio9Mnkc<3t&`45caQS=4U!f~g;JH#-nx#` zG-PzjV!O~o5v-Gc2 zeXQ57lQdEKMA|Qv3wt}#r6E#|^sRJ3x<2CVtuJ+wMo6zn%cULCN$Kk6ync5|ZKXld z%hD2Qjr6m0N-CZ0b-qPvEOn9wOD{;d(&y6m(ow18IPVxYNokV(zT?Hu*kh$Pq}9@H z>8y19cyDigsgpE9dPQ0;ZITM5bJDdFyw0~v%_aN&$&2SaQkpKkC#{u!k^Yj(O!T_k zBBe>)q!H3|X^HfeR4Dx?Reat%MqR0m^n^5CdR4a42C2wytX^=Eq%9oBv6<+rC-XnFE z#z^y}HPU`5af;Waru48hSehxVkbaWROa7@|zvj|FX_oZ4R464+^Y-2;b&|$PZ%bRG zQ&OerUY8cqNa>4cOr%i9~2BGLy^fmHSt zZ%3LmSjv&MN$#uOjyt7HX^1pYnk#)Et(Sh5j!Pw8^Nw-7R9k8)b(RK7+0qngzO+pG zQrar*k&a0hq%yO;v$|2LEj5PxMp?$RJBBF&H%NGqg`($CVLQt7$gx!fwHOFg8K(oAWYv`N}8IrF^E zm85&5pwwH6NUuxFrLEE-Dd7$87*(WtQc&tAjhE(2pGj+^tKxq<+#wX`!@1Iv|yddS_5gYA*GbCQ1vX4blOrWRChtjis*A2x*42Oxi3R zkP_bXI^QTYkUC03r76;T(r40U=@;pk$Y&ZUA>Q)(==lX^>|r72Rbv_je@9g|8g@QzzkYAN-W#!Is(*z zC_O2?B)uzbkoHOLLa*NqQUj@zG)$TqZ)=7U$)!+Aa zw38yzGU*q|_kp*gzSLWqCFM&eq#Hl<_O_NrON*o*q>>+bJMNYGN^_*m(mAQt$KKu^ z(iABsose!??(JwNjg)ewEz;jo$|v65R?;wOzO+#~DOFkF?QJd%mR^@uO20_Xr{3OF z=>e&)^rEy(`c676UH6&SuYuG1k<}^r5s>`cta7+Up#UdP^@$%cb2?!WZ7&8d6Yt zTADAdmySr~zVx~@mY$GiNipfLR6geIO_TaduS#pABhqzw-rjVnmo!=WK>ATSFQu;W zy0nxANwcI?Qh`)5-`iVDYA215=1Uu-V^W2+UYEvFZ)u9OLfRvhT<7hrEp?Q}O0%S8 z(nhIJIxkgN?{&UYY9;lO#!9oLkEAWq0qLxC%?9rnHKlZ^t29)aEagh8r0vpSDd8*c z7?q?tQd?=TG+p{g+992m%5U^K*ONL)Bc(agDrvWLUMj!I>sLo=D-DodkQPd7r2^?c zsnTYz^Sx4gX^1pMdPiC(?UgP_mB02n*Oxj-L#3(G5^0lkKq|h)>z5)mkUC2vq*>BO z(l+UsRQemQb4{tG)LR-ap6HI({Ev!xBvX(@HLw>Kz_m6k|9OG&?YJL*Zjq#4o&(st>zRN+^zOMR)U^o%rL z%99GE5_`NZ)ufhEKj{@|opee{jeA`(q=@vsv`4zKz}wMK>My-6ZIb?xYVY;-_LXv_ zU!)3!-nyVPSz0Gukm~RAb_|u4NC%{p{ocCP(lgQ$=@+T=Z{CiE(g10mv_(2E)jHtq z?Jm6}t(LY)ha~r)x3{8nr_@r)ltxO^q(xGmv`ac6B^~mPcC*w>>Lrbr7D(%){ZfhF z)lX_B^^(R*3#4_@A*t+PuU~yBQ<@}wAnlUeKfJxwrJyuY%8@ooC#14Rye@Z3ouy}_ z9BG|&NGg5Q>vE^mUK%OQlk%kfQpsapms(OgX{0n?S|=Tr${zQ+)RVeP+0r6ut8`i_ zb;9dXO===_m!6hpNK2)S(mv^ebp4;+G47VyO8umW^t!ZM+A1BA5>9%Zt4Q^vpwv$q zFU^-eleSC8q%x>MPBVR!aw@vj2H|8%VvRDbiUx3``Yl3tQlN(ZEJ_?_sBUlXQD z1EtrcucXt`O?d6ji+kHhW28mWHtD=ny_mPRy%dp_NV}vG3Eqx7rS8%sX}MG&l`ih> zy<5tZUXnhO_Df|;czYX4eWh7ao^(X2c!jsOnKW2>Sz0E2E1i(8F6nitBRwJwlU|Wl zNIRu}r0WyCehs8Yq`}h5(tFZZ(tfE}lGpD>>3*rRG+de?y)SK%4oW5Q8m<=~VYf)l zq{pOe=}jq5vR8t=*yVzB16~vMVy&UnO&TrDkycA_DWR0t)L)t+eJFh|oslY) z_WCuFGNn<{tJ25PHtDG3yVC1-tJF+-R2nPIl|GYxkWNZTc&*%v*DqCSD0P$uOOvGq z(wEXM>7-N|uf2Qm7}caSsjKvqG)-D6ZI%v7CCYl8Z;~2I-K3GyE7C{Ox6%=*G+rC{ z;yK?bwU2<-yp$uYmUc;} zrLxz0ooh)grC!o-X|fcRmP?zYJ<=&Dsl0cz8>Bi?3#q#_M4Bkgm6l82NCzYbud;mc zs#TQkl3GcRNzX{HNXw+Jqyp(LsSIAV`Qp)TmC~dx(opF|X@T^G^rLiKN~-7`<0h$r z)JYmC&5>3~yQTBe4cB{}8%rT6BE2c)OZ%h}mAo!DN)4s1(n#r5X}PprIw6&*>~*ds zwUYWu6Qu>xr_xsGH|e}ou8Mbzno<*~v-G4iQF=pKE`2Q(N`FbEZ}5&*Rcat*NPVTS z^s2N}S|{z6PD;r)dPhr<(xhI}Bx#AXO*$=A^n3jpN}1AlX_2%=Iw4(~;&o{t^^&GY zpGk#M>6^U0^`uN`vb0>t#JUcai+|HIt9fZ15@|NpwEqG*Z=DJ zJod|beeT1$*L{E1XD!>hJBxI`NRvcbCel`s_K0*uq%$Hp(_`CcAX00QvPJ4E(kPK8 zi!@)PRU&N_sY0ZmMABQtw%bsoERpUOX|zZ$ic~7nhay#p^ruLHjMz3>h?FDJ2$Awd zdRL^wB3UhCYsnDlZjmO4v|OZJBK;;(a%OBTH;FV1~lJMEX@Ece~j7t`;d=8y)ROgNT)^e-4I)I zx=1-94HjvVNQEM85~)(8lOnm>$JX3bq%I;26ls!3B_iz<>4ZqW8)NHhBT^rcCWurd zQn^USL~?hCttC^WULrjzQocxUiBu`lA0mZsimmTDk@|@Aq)3ZIdQYS(kuHkVpkr)( z9Yq={(oB)oi?m;)OCqIqimfGAq|qYH7io(~M?|ta$Ck|ysjEnXMS51Gr6Rp2(teTt z5GinTY|Sl2>L$`dB25)(xky>PV!zO|jau~Ar{cc=caYk$$Zs&ke+#af+RA_Xt4)81 zHHW*1y%MRLNDqnhvPiFsv|FUw-zY1KY_0a!?cV(VY`ed*2OA?>`-2qy4XgO?>zx<1 z+TQ@%66sgFr_p}3ze2X--!7})5?h~Jq%diBWQk^?)>5SSZ)e>oY6ryY_MexCuetUY z$Nv5P<B1bLqYlD%a7D=_oD!RVfV--!cM>3lJ+oKjgLYF&!4cXHM zk!N0etkNQ>_DE(%(skm|?xd_ptsg0RPCiA7zN(8v+9J{+QuI8yC{n$yvDc#$Df$}a zk)p5L5>oWJ#gBb4wJwqE)?N$I--K#?))%JTN^5}U|^xXC5#QHT7DOIFqq-ei(qIRoDwd;F4vc7)Q zo{FRgNztSGnCLfw^laqO+9h5P>7_`T!lQE|X)Y=HTcX7xy(7{#kvp(sLOBKk!nY-=zGt@)S}l>{D{Yo^8_A^{#I=KcU)(RTKrYGT)*01%G?!sjp9qhuj%-x zw}kcWjr3a~*1V3iFH(z-lOIuwj#pocbW$Yk_SmEKNL7(#Q$#JkY`hjG@5?x#OcApNv(cli8G{>NK(7UX5l`Ot|CQ`b1TySjMOag?~hd{`bEd~ zTS?I)bh+C7JlZs}-A6^gyW2@pMx+)$F7dIcc2tS(%LJB)rWZweRirYJ-Vv!>q)L(E zYmQ%+@ioV{R?QM^B760Jzr=@$u^IATtR;F}E{f#1BX)%9k)rQlX`*(msC5*z+B2d< zWMBUCn(ttV=n?8IQhaNJs72=tm)oleJlZ9)jhYs*U-q3&E&5viw|iQ^61kDJ)b4YS zNGhZj-K+SuA3rDKDL!(=N4WSk6Tb#8cP;$$OuBbuyR|dvX!?KS^G9^e|NP!PAhO-~ zCybRm^Wl+N{Jr~f^WrVy2*qc}@p*B4MzNoMkBekrFe@^+&M>jsda`uQ_3-w9SwOmb#&e3lYkM$ zj?ZK+H$%DHGoQ@*R!8>bB~o<0ak*Jbe9cSf_fBMq|GeG!Jg0UWpGKC5|HAzmYSHHr zpL1RASk>-xWn|e8SR#5%t4Psz$=aF1fykrBsU42)74MSKUqFw~!Y}aX|NMVMddAYV zB6Sz(A(5ttR3y?mk#>r7Sfo=TdG3mBBSoYRA`KGhNs;D@v|6O?B7G&&k0RCW728IJ zNF7A#E7HRvO%tg=q_raL7U}OIof64;cWi5IM7mR?heVn#(sGeDi*!(=KSfIJ9b0pI zkp_u0L!{LrZ5QdVNaj7UwWNyFU8E5r%@pZPkvu8EHNv{T@l$jj?akm){=yMm=78 z^D?zhM6G`h>3_bBU)59kpKs&W_lniVWXEdpep#Jj+xWg+Y`c9#zo&9y%f@Se+!CvO zFZ%7gF1GBKVqYG=C06@Z)Z+c#>K@ydwW42(+*mE%@2FU|G&{DwR$XKLPV#73cWothHMQe@3 z`nKK{t5u4>F=-|CrM>9aRn+3!jW3%oj#W?5?|!lDgQ9lfw%GGY-=?#&-7D;~~wnQ6|`inGOq|GAzBvNQ_Y}s2x$`k2zk@kvoN~FM$*t{u?^jBo` zc~0EfrdXs_JSugl{U#=xWJFRgkp_@lk=h86){c}Uf21~nTJ$W5-{0y*QClL?I+3=L zqU);=>3dRiySFrm-Noh@wdf4_cadtZ+N8*K<)N|dnj!^A(IwJEYEQZ%vcw%C#h+#T zxeese=w6K?T^U*8Y0}k^G?x^effkXX&-ZmwbZhU4^o8j6EvaQ>*&5Qdk#wFEUDowr z?D-~%luC*|dW}e(MCv2b0Fj1^^f)Pc{HBQ7Jkkx3?f&OitM(g*PLY1`^Z~r{@YJVlUX);#J7>|kF5DeQLFu&HzZO!M{PtT#rysLsdnQ-9HGd&WPJbTQG4`X z_W8f9U2c7st6lE+U9NV4eTlwv#`o{q;jycy_FK~@B71rRwWlK~{ykh*YSGsy{`Yy8 z``fPvduPi+?}Vmq({Xp4&iD^c=7Kd(P-_d5GG-9-;U*B1?HR z`rXatj_z6>&HtBI`V6(`JA2nz^8aite(W#t=z_=+`iR)RB#>T>)KWxhOZwNn8b)nZ zq+cE>`aGT{MgPtrzKt!^HvY?A)jr?oRi=-OEgQd9-J(`IB5jE*d%3gja$CFHaS5`% z==dDps~*&%-yFwl@xK+E&!f?Et%$TevInn=TDeFENzpa`M2e2>mm3{V@o4l2T@=e+ zuHXOpEG_8^m%=@3_hR%ew=(~$a+lj5T^jXcSo>$4JK$<)Nk6#^>c>&x&n9&PE$L^M zMg0VF2TAUbD^s&+zqlOKYf$0OPU;S{qzf(=^^2(RXE${hTGAy~0(HrqK;6w9b!G0X z>!B{Yz0?&{__L3?7cEJ3`$-ydmrCxqD|6@F0QHdxLFx~q!kiIqA8I%5SJhH*ptX?mUf_bjouz_1{sEI&o)V?huZa)ZEvcdO9l7 z%~Cq`E@(+Dd@ZPFpd#HOWl+yXOKRzBNj(!4?rNM#JqInRm9G``)~HCga_?jA7>*os z-!;@9Mn$?!YD2vna?E|#Qhx*$>2~gHEKA+dl3wy%M|~D@7fz`i^&V(RFZ-^iJ{uM3 zPAQ9ePgJD4c;2$q3%LiU)PdX^73m(Hw=DHRg*z>G#=r5*6sbSYLzV`hA`N2SW$6J_ zq+#qYciBco8qPj)hjdi9J9Bp&&0cViMYhRZwo#EDW1HN`8x`){+?zZW73m4KDRU3! zKIA8*zU1+!NKZ-q$P-YJo@Ot&yEiJ*GtxlvBvhnl*&{`oEDgqa(opL2QIQt1cZ#%# z{o>y3s7QtEmnRQJ9UpHzlw@f%$~~9a#W-e_LO_3qau~Er?T`KD$+{! zRF+;x{{DzPRiwl0BX=)HMLNPh%F_3!NY(74Ed79rbd-IRr5};M`IV-Se?mn%&b_J? z>1Xa#tw<-N8TgAd6IFQ@eKceokY|%E$qwXtmkY=)=c(zWs` za$8iST)7Nylh;t`hMb@BI&yd9oRrs-d!QoqmN$^^K}G5#ZzSJ~iqu!$M7|Fdsh_-= z{5Ry>legdic`KEH$Q?xGZRA0yNDs){$%9dmhREgQp{Pg?$~(xzP>~*zcan!AcL9}m zkw>B;JuL6WQSu%tk058PyqEkaDpH1DZ+JR22hj=YbYkBT%`-cK$-?)5Go zz+$-ym&=E!m!Kl8kPnkfQITGgkC0cQBE2qGlUJc4y&)eZm!Tr9mXDFwpdx)PA1CiY zMfzGkLEeXo^mn<2dzbN(RbkD_9GMW=EjGAb%2c2;aEH=`ouC{DaxabthQ zg98*F4pss4MKF**Hnb z!Dp3RoUC-i=alX^Md^XhD?M?l(hFZudgC;u4^CJ5;tZu9zNqxanaV(XNg0H*l)?D2 zG8AVk!*Gr=9P^ctI9C~k17yDaQ|#9k@-|i61JvaJ#Y_KT`H!xw02ORw{6ZQi-1^`*5eSA3s$N;4Y;K zKT{6jZsjn3t{lNVN;Q6=9L2rLG5k_FjupxY{7R|8O64Set(?Mr%4z&YIfMI^v-quY z4i6|7@St)Ds}xz`N>o%lr0Dn$#l*vkjo&FwJfgVqd&Ps*iVuHK0(evj;g3ofk15Ic zlTsItEA{bbr2(E$8sRTW3f3s8_^XnJCzYo7o6-zVDe3sTl7Xj{O#DM>jc1fL_@~kq z&noTkFC`1lDedvR(g80h9r2>l880baP*Sr|R&!8Mb5T{hp{906UG0H}+7nH+7h2p< zn)f5M4?5Jo=v4cmOYM(tbs#3FgV3W6Mz1;)ed;jutHUv%j>Mok3Pb8>OjPqQtd7AX zbu1>U*>#LLS3Ux9zP^Vx+bt*RE)<%ldSe=0>>P);+orS6DY;20oLepM-lrB}3$++C)Dmo|mSU#55?iUOu(eu-*Qjf- zjk*r6Ro7!%bpu|fZp3!#CcIwVj9Kayyg}WH?bU5~qq-eCsO5N*x&u3^JF%0x3p=a3 z@n&@oc2W1@Eoud3tCiSQ-G@2qe!NvZfVpZF-liVHZt7vYT|I)`)oQ#$J&HZlV|b@} z9DAxK@Gi9md#NY!ZhlsZ_h|Jr-lLwuKI&P#S3QS))eCr^dI|ffvda8WRk6RS;{esf zfvS!7t44h2z!s_>|fKC#W6qX|*#> zRJ-6aYBo+%bMRR;7bmOT@HzgkV~qc54}4zjiBr{H_=4ISr>T8#y4n|KsQvIowLi{O z2jWZWAe^NR#+TKhI9nZtbJXFOua3mI>L@HwN8>y-59h06@D+6|E>OqeLUlYYQYYYI zbs`q3lW>VT8JDV4aG5$4i_~fOsyYLU)tR_lorNXpY+Rw{W2stzuc`BKrMduLR~O+b zwGiJ>mtvV(gsatJT%(rYTD26{sVnhKbrr5x%kV9A4Q^1^;oItZ+^BBAchrrzN!^6+ zs+)1Mx&_};x8fFc8@{h@$E|8PexUBaZR$?^P~C;w)!q1!x(CbEz4)P*31jY7JJZC-H0b6z)?` z<2ULV+^?R+Z`E^nK)rwm)k|2V${ORps^TG4$A73M9#(DqPIclD)s5e)9;{Y<_=6h2 zqiP6$RKs{oO~#+px_Dfzk3Xvo@Pyh3e^FDgMoqYu%XllLC(t4w<^+AW$7oA!^bZPz3tqsHkZ4i32!RXb7qE8!!er-4gw2>IpMqx-B zjfq+whP5%6q>aU7Z5-Co#$#P=0@l+eVts8AUZG9K2HF&Cs7=L2+B9se&A=3GCSIw{ z!c=WGHqr7iO)J2wwE5UnTYy(9IZ9QN3~{{r={a#S_Y2MGVyV(HICKV;1gO~9H+IzC$%gbueHagv<^5y>xfTl zopGYp1)tHfagvsU&uY0iS?h++Y29&()&rl{dg4^A7rvnN#%Wp~oUZl78CpMlQR|O0 zwSoAOHV9{FgYji;D9+Y~;T&x^=4&Hyt~Lq_w9zltZl*fw5_;B+lKFJ+i|N_jvr_{aGSOhKh$>Nc5OF)r0v0SZ7+VTRp1V-5rX9lF+F|@$JA!+(YWzYwihH$V_@#CnE3^~%l~#k5+DZIcJB9nS z)A)^c2KQ@c@muX29?&k}LG2P&X|loiuc>%Q)A1jgiH9{Cztfy}M04Z!ng^>jAO4^P z@TeBTAGI(Z(~|Kgtu7wd>f_H^13aNM!e6u$tkF{OS1k=sYEAJstr?!u((!jK15az2 z_=naS&uDG%PpvJU)!N}-S{9zu+T(ex176TN;zg}9Uedatq-Ue7=b)nJqN;a8P4AAn z-UAK2Cz^UMwDjI+>wVCn_eH1P4_$hHbn62#K_7%3eK30Uq3F|xpoYJ#pNUuM zvoKYkjZO4?Ow$YSDt$gS)feE^`XX$m7h-dLDW>a1*g`MH47~(f>ZO>euf$gRDr~Kn z;WhdiY@@HkYxVWmR^Ncv=^L?~z6r0_H)EE*1#i%|VtaiX-l%WK4thD>r0>9v`cCYm z@50XdZoFCFgI)B!c#B?v*?J{*)%RhJz8`PZ4`8ldg}3R4u$z7uZ`Y4tcfA_#(2rsd z{TSY{T%kyFW`OpCG4lmCgZ=ZVt-x7 z0lJ9;bsO*3oj6E$;{&<}2kSl@q6cuO9>NFpFb>m`@gcn~4%h4B2)zN0)EnW$dJ2xx zQ}Gc!4M*!u@lm}Q=IQD9n4W=S^h|tQZ;fO1Hu!|z7RTxB@JT%j$LsC!DZK+u&^zMO zdS{%dcfn`$Y@DR$;In!zPS(5Ob9#52qW8e(^`1CY?}abuy>Xh}2dC?OafaRxU)1~K zOno4}qz}Sb`e1xnABwZ}VK_%0j`{jXoU4z*0(~^j)AMk?J_cXW$KnEg94^$y<05?m zF4iYvp*{(h=#z1&J_VQQQ?W>&hOg=~uvnjo%k^1UqR++^dOnuw1^AjiA6M!N@O6C= zuF?zf4Sgw==|#9&FUB=`39i*kah<*r-_%#(dc6$a(%0YyeI357ug8u027E`~h@13H z_^!SgH|tyQJ$)-~(YN9I`gYu^m*WTe4&0{i#1HjdxLx0kAL)CrT;Gcy>lL^|uf$LE zeYjKKkDuxXaF)=%L+ z{WN}~pTYh5S^QQ%hX?cvcu>EDRl003{_83p(slfYZsK9x#_x0|9?{+Sz3#zk-G@Ku z0X(XQ@JBt2$Mj_UNw15?_4@d;-T+VNjqn#e1#9$F{8dlGlX_G9O>c&$^mP1P&%o1q zCjOzf#xr^w{8Mj>XZ3dYm!5^^^!9jO?|>Kdj(Ab;jFhx(8#$;Lxu_c5P&2xt zZuCII=!vG$3oWBJ+D0FA7=6)c^h1}?AKk`4OfUwa#~6%WV<`HJVdyu8W55`RL1Pq# zjM12ANaxF=pbG z#w<)VW@8g0AJdEiyvmr5O^pS3wXq1B8HL!~Sc>UJ5wKE_$R*EolLjSG06aS8hwvd#E!sMz1o zae!gsK*PrS4JQsV-1vau!NG5gu@wmvC zfQyZZSZGYbCB|f2YD~dp##Agars1o`3@kQg;&NjamKd{fg^`b?MghKN%*U0+0({+A zgsY4~e8X6ZWkwOMHi~hLQG#oYQe0=O#5avqxZWtkw~RHo!B~fH8|!hSu>s#PHsU5@ z6TWL~#?8hSe9zd5Ta0b^zOfy*8s+$bu>-dmJMlwf7j8Fp<449GEI0Pz$3_M2Fe>pA zV;}A`_T#6<0o-L&;b+Dn+-)4j&y6Fv$Ee0HjH9^MIEG&u$FagVfnOOlSZSQZuZ>f< z&p3_W7-w+5aTdQd&fx*$0vZm5~v zQ8#;_VfIAR?1h%u8*Q@>I?TT4H2a~;?2m49ASRfD&|?lpuQ?Qb<}mb|!!clv#Gp9} zL*{5qH1jZQj=>~zEGC=du#Pz%>zWg=o;eZgo0ISgb22tCr(i>KDmF5wVPkU!rkFGF zN^=&bnzONqnU85^0bXU!$EM~2yxLrZ&CEh3_2y>GGPmFj=2mQPZo?bR?byLA$D7O@*wNgH zoy=X>+1!mcn|rW}xfgFSD=^!v#IEK(%rW=lt>yvDHLLJ8^AL735996T5$tYO;~nNv z>|q|mJI&+R(>#H9nKjtUJc)Okr?9tq8t*aBU?1}=-fN!2zUBqI&%A{FOxel!Z>ree z)Nz1m;y}~J`%NbfGTr!q>A}IK4~Lim9BPK}K{JfQ%w&AXtc%0V`Z&UDfFsRD_^_FR zqs&x%#7x7{W>b9BY=(JeIzDD*;21L#A2(a$ShEd2VYbC_W;=Y+%);?zdwk05fD_D) z__Wy>Cz@UG88aIvnK}5ZnTwOnZup$p9jBN*@OiT*PBnYs3ubSeX7<79W?!6P_QMy= z{y5Vdh%cFgaF#h3Up9y0Y;zdSF^6NmITGiZqp-jnjq}VroNtc7SIn`vz#NAQ&GER% zoPdkXiCAb(!X@TpTxw3iW#&{YGN<9I<_s)0XX0{m7M7T^afO+WrDg%XX3ocz<^p`( zT!gF4LVUwqie+XIt~QHtjahbnfw=>>nLF`Aa~EzmcjHIq9xONa;>TtM?l3Fy z6LTN#H234D<^kMgR^eynA>3^q#?Q?oxW}xB5*%uL3g%({5otdBpN4e*572!AnCu*OWqU(GZ;X*R{*%w~AXOvm5N z3_NXS;vZ&fJY%-OKh3sy)@+A=nOS(wY>(&74tT-rh!@Syc**R7l9i3Jm4k|vi>lQP zHLE-7Ru43+o@iRV(6V}?ZS_Hi)fb&sKXh6B(QOUH1Zxm_tikBDhN90JhJI@}2CR`7 zv_@gb8jXoo9)_(km}HH`WNRGOvBqOvYXa7@CSrYS5?*0V#s=0DY-mlzM%FZJY|X$F zYbIW4&B9b`Ha4;HG0iH#tE~Ch)LMX7TZ^!nRfx^4rI>CNVGFAmGprJ9X_aE8wGvxd ztFX0IhSykYu#L42ueH`=TWbSeXKloG)+W5(+KgG&7QDgQitVj!c%!u)J6Pp-leGgo zT060mwF^62yYXgg4|cKk;w@GMW?Plm)!K(S)_%OzI)J%W72akY!fw`Kyxls2-K}c8 z!#avRtYdhmbsT$IC-5$-276g2@owuB_O?#rJ=PiQW1Yo&t#jDdx`6jtm$08DyBYs2 z75iH{4zNrdXxVtb<-|dj8y~PdIN0*x5G#N~tq?wFg>jgbj1O6Laky0wm8mehfi8rINoZHPgxys zg4Ge9wmRcPs|!A3W#c3(2cNZaakAA7pR>B-6sre5Z}r5fRxf

W$N^J~-X#i!-c# z_@dPxXIcaCC2J7QvIgVJ)=->n4Z}IsaLl(x;#_MK7FeTko|T95tugqDH5M0G<8Yxh z9v4{?aIrNJ3$01G#F~stttq(7nu{K(pa<kRI<&f>S$IXqxpz=PH$tg_?;#(zu2Lza&JuuME`+4!C1#3Pm)zqdSC zZTavAD}YC>5dLU|@tBp2KUsD0xK$s2wi@6Gs}cTUrC^PfioaTEc+zT$zgf-jl$DOZ zTN!xT%EUjc)_BHhgMV6W@vPMj|FW|1oYfxBTOII%)e$dRo$->@1tmKhWjhBII~P^E z8)|lU)a@Q<*ges-d!c3bM%(U#4!bWp?SAO8`=i?)hza%}^w@*ZYY#=AJq-Q!a17WZ zF=&s%kUbg`?K}+IV=&1ci^=vltYeSIy7mODXHUfX_9VQ*o{SCbDcI1SijC}P*w~(d zDfUdf(w>E>_H1lo=VO{(fLGb`v8lZPueKLqGrJI*+ey}cQ;>@9eMy%pQr+wewvJ9ee5Cwmumws+&r_8#nF@5Ni}3e2`Ev8%lgbL{*8>`K8~;(;7Gd> zK5VDpC_5D&vD0w0-4q|Sn_-@vj*rFXeBSPfQ|(^(g54XZ*?n-j-4|!r z{qRM*KhCrV;!E}*oMjKjm+hfA+a88}mL_Jp+sFnYi4Zg(dcETw&*9sa=4t+4FIw zy#Qag7vUiEAdTx6|T3-@GW}{Zm`$k+xB|gXm7xG z?2Wj|-h}Vkn{l(f1>du`;ud=wzHe{G9dV(-AO?42H2szgR(dlz{hG8)^v$@`Jf z*xo}vfQ+T~Ui{InpmGcuOYKTLZtugN?frPdK7ha2Raj#m!e8yfc+x(Cf7sP{#y*PY z>|=P|KF-=MAS0xG0x#J$C^=4|>^Oyr<20&{GpISvqV70{4#x$Sbs{67;}Y48jD!x^ zD@z_^By^}`A2J3ybZp@;sbnDIjKd~pBIAt1Np6jdGY&Vo4KmI+Jmj{>IOFh<+aaTh zBY-zLLfF9(#+w|;*u_zoKDQvFhoe5ZD>8aG8sM#tMpSZ<(Zi8~-5jZSmm>{(Ihx|# zj%L`~k&gE`GO&*$6Yq7j#=ed=c%P#!_H(quzd5q7zoR`4aCE?dj*fW0qcaY2bioH4 z**MsdgF_s-IMmS%A98eOe}*HYfujd`Br*;-dXgVO#sNn!@}tNI;OI>rgNy)z?ifp6fL!U0apXnF zmF^f%E<~<$#{}|HW#7`f6NlgTB>mF}2AE=8_%$5ir4|!LbP6b`;_v$5Pht4`goRC?X$4 zu17~P`4}=wag>mMN3I}eDQeD@s5@7o;VeVjxdt81b?9`iN4IkW`kWgv=-h-M=VnZF zZo#l~D>ij*!|R>fG0RzweVsel)_ur%=-f&E8*&~xcaaAmqqlQ6`2}S3cJ3ihM_x7O zUYzHw!1>Nfe8ssB7dZE0k@Enqa8}_)=OHY29>$NIM{tL;8b5I!#huP$_^IM{)yNp-Jc}ot=cxRK97*Q|^6$u~<-CMv zoU)IZo>RrMP96Vpnt0A><9VkOWtZE>zxY7LE0>3?A;;h4BOAz!&J`eA$ZO#WksZiu z;R=&o$SdMXCMO^>I#*q?7kQ0b_0jKYfB{z{>Oti7a;1Mu)sEa0nbEnj z$jy)$ovS^jyE;&5fy}{N9kIQuGd|$zf`eVzIK-8MkGOJiw5uEDxw_+6R}UQL>WR;~ zda<6#$cW+UO`d{`7_L4z)zuegyZYfASAQPON3MO>KrC<#!g;R2INvoCUvUk?1+L+^ z&@~blxklk)*Jvzs<>3<77+mTai_2W&u*fwYUv*8uV%J1m?wW)puF1Hw};wslHe8V*x%Ut=m+EsvWyXLdE8J*8=h;eGV_UFW^P@CHh=K#@Gbe&sCqG`nl?nF*8BOD-%p?l3?T2 z2~HkuhFl#9ZgM&@4@vNlGmv>mf{&bu%tI0a)Mq2t zLP7=>CuCAtj-2xet?|2rHuy_ITdYZFhapcEeG-xJ$J3sigp5C)4&*w>_~YqFu7`|2 zp3dYeknzXUh1?Jse>~ab#>n{N$su2fe4_N^lA9pso~IjTd%9y+PY=xT^u${|y)f6) zo1V8JGb>LY^6kjyGEZOf9mwZ0Pe1aV$mcRoe;no+NaZ2q{PYaM5uU*~(leC$!^mvM zGYrRihT{{SkvPsX3deg!<2+9uJ?A6ijAsma0djtN#^NH+I4X;gamF*AyaX9%JQK*v zka5N{k^Cw$EAULhb)L!ire_N7^i0K1J=5?D&kTC*Mc(f`GszXmS?!rcu0+mi&usEO z12QxBZY6g_#x(CXa%W^r z^KK`1LC!00IXN3Sue>|RImmhC-AT?xX6)Ww6NW7m#-fZx#7<*&7SuJc{}pWp0|cvj?AOHC&@dId6f4Qc_(sqc~6sf zA>ZtI&yaT`Gb`^|@*d>e^PVH`Mb16%1#$&)?s+efE0J^0D+f6DkP+3ZlJ_Gcs#hl; zK)%`Ynpowvsr((8-+GKoc?a}*$loL1?0J3UACPm{8zBFPoWtG_`6uKY z_J+wnBcDdS$>d*`!dNoG7tB)CY#7Nd%iYk``V(z z*AAV&EOhzWqubX36MP-f&;q-+=jY$=4&ZbYC~}4an@v z*PVPL@>$i_gM1S*@ACD;M}568&(|9t^Yy_ozP|K%9QhRH>xXlE{i)<5a~|J7EcFe- z*L;Jq!Z(yhze2v<^$jC`jeNW78;;-jM&d!=C_L;N&7UEKCLH+Z|^^tEu{R_wqkZ(c#i^z?TQOjS5 zt^G^!8h;V>Hpr;uFUGe15`4#Bikti^dGuXmPU2sM+x%rzK19BU_piZ^{OhpXzaBsK zZ@?Y?jrfUw6YlhH#!vlQaF>58e&*kXyZzhobALJR@$bMd{5x^4e;0n~-;EXiJ@}P> zFIM_1@N0i1?(^@%Z~XglzyAP!>#xEC{zG`se;BL$NAU0dYCPmWivRE*!^8gL_?`a* z9`V=U_x_Vu?LUP-_)p_e{~7$ze-@AV&*4x03wYdr34iv>L9SN6iof`Etnr)ptKY_x zekcCscjGC)2Y>hb@U%aGfA~Xq#vjH%{mFRNUl;%K*T-}I26*1z2ru|k@S;BzFZt6@ z3N%GI&5P2U?>MXoF^;En0zgXa};;5onLjKnHXMI-)z!8506s&=bf; zZy*PKfn4+lx?v#D9fN@$7z*^n#6T|$2YO>tpbsVo`eL0xKdc+*kM#lrv3_6>UJ)3K z4FW^4VPF_G3Jk}_fsvRJ7=>2`Mq_Fq51RzWU|L`-UKJRJO#|cc>c9lNEie&>1}5Qy zfyp>3Fa;kEObzng4l>&bOe2p&zP}C3z-Iz8@uR>jEDy}aPXqb5D^P%61m@%3zyka_ zun6}B3h`iIDOLrF@Vh`U9to7-kAYG=7FdbD1Xf{9pbUQxtijWPb@*3cJ)R3}Kq!56fnYf%1$SU_a3@|7+=UH-yYb549!w4H#jArA*eqCy zEra_oGq@kG4IaR@!798VcnI4E4`Zj`5$qhS#;(Dmm=ipPw+D}7_uvVzGb1)6x3pT|q z!Dje=FderBGw_38CTUAZ?GqR8SI4>!QS{)un$%S`{LKZez-5#AHN9>#QniR z_-$}79taM_gTY}~6&#L#501n`!BO~qa5VZtd6*O$!!b!luCmZra$V#q3ymY!N6wJY zcx)J&fQ>>Ev2kb;ri3PAYG?{J2~EYc&@{X%Gy|K4W@78mEW9Q(8{38Q@%m5!W`*YC z4WR|tA+!i@3Ke3<&{FIiD#DvX#n>fOg13Z9@z&5v%nhx=+d^g7Ewl!Eh1TKyq4hW@ zv;iLoZN$N$O*ka98Ha|p;De#9_*iHgjty<+IX;1$QK52tGPDE7hj!vqpTre z?V;yHQzY?o*!GE+icmqaIaNOV)V33){lJ=iVLhj%0f z@V>+lkM={pZ%+)9`y)pzF&QT&*2U?G^>Jom1DuoC2n!NZurM(dmnEj*io~Y4GO-!1 zNleE#6EpCg#7x|r*cv}bY=heq+v1mr?XWU23%^Zlk5!2s@Vms0Se@7ze@^UzHHq2y zS7HucNX$hg+zs_`cl3sPU?AKRlf%8RUbr_l3irV)!+r6pa6g_`Q)E00_a`?)<~HGh z*tne_rAv_%0heu+^@F?sQ9*v#Dd3bYp40Z{R#aqJT zuxofc=7cBUt>KB78=i!>g(qXT@D%)8cq-fKkBpz;Y2<;(`5&G^9)!$V!!yZ`Bjln54;SF_@O-e|On>Zl!7TzCv z8y^U*#v!4#_+aQ$d?@q@jtG4md|P_5uC9L~{ZvoaKb83Bi25$64*o1nZ?Gu%v$U{* zuAi0`H(VV&EiGxd7MC^r5MOQhDK2mLaqz6 zQa(>o;zz0&k#33mk*3sm(DNhFb$#a`s(KJtfw)vC6vGUyJ+0s~fUUOX^E5Fh_ zhrFH}x6vZ_O9+%Rs-=bB6o}J!i;&HZP>|7d>al=jk~^zDUnm zazgqdemBUQu9N-gInpdSm|jRFF}*N2OHN8Jqf#f`)L)jbpy$hSLwdd}H>T&y@|E;_ zS#Cnlm*uPI`LcX9J?F^R&~uJ_Ej{PR*U@v1d_6tq$T!e)j(j6M=g2qFGhe=ip80ZD zdgjZw(lcMajh^}P?exr-@1SSCd?!8U%J&=gRldbFTb1dd`&x&~vVQKRxHl z574tfeu$n0@(6ks$Pd%AKz@Xt1@fcxERY|gXMy}UJ?F_!(sQ2t6g}t3Pt$Xr{0u$k z$hz_- z1@c;YE|A}(=K}ey^dc&6({q9R4m}sh@6vOj{60Mw${)~kq5L5|7s?;ebD{h(Jr~NK z&~u^uDLogwT^js$YMb9GnB0Y=vYZ9HTw8)W)WUWOS6{AIAut>IAlu>cCF!d6- zPK#`QQ>A6C_j-I9R4K3FBOXVBsSt{Q|&r-Qliw#t6re~>q3q4EauJkPDOS&qPUyaJp z$y!E^R4yAC#ldpf$|yufMi~`XhN*ueKai0veIpN{=Qr|$^!!GCC?gj~(DNJlVS0We zKSIxg@^cxdq=WMF^gJlPK+l8n^o-N^B0UevFVXX${4zZc$t$p0{ybx|T`hk>|7!V5 z`d7`l#BGNSNjhe^i<{Q z%xo!DX`ZQ*TV&>tTW02BtIWb+s&Y+c8TndzHc@WKG=oi)8|m3Zxrv@lluns8m7D3= zM7f2YO_Z+m%ut@lEDdHTPtr3(d5WGH%F~%EsXRl^4CPsRW+>0mv!il8^M|WDDiuvKb8SEX?)UGJ(~*(yissx)bpM&+tjg~6`M)vd~?G;d|ybl=z)UNqU$zmNtntl~yrAmR{n2=h2qX*3sUfZKds?eM|eE_A~7iO=CkY z8efV?$+R?DCav~IXLD%1X!p?u(H^BeNqd$yo%Rat9ojb9C$v4Z1GHagf6@3k8HxW( ztrVs;q&20rqIIO@(C(md3nqR~Pm+ex9;ZD`n@w9tdzJP&Z4+%f?K9fnX}{8v_^J3b zS_bVpS|=K}R^b<#Bz{qe<3XEFn@f9@_73d>+E=tH+7GlE+8LUz@s~@qL|Ow{8ZCo% z9jzlRht``moR&u$PkV`0Kr5!LrEQ^oMEj0*oOYJx)@$EDCI0oi#J`A___ym4{}Nr| z-u!mEt1a>Guh~c1V%i(DcWK*cyJ%n0s%SsZYG|6l>qM(ZOQkiZT|>*FWz)Xq zweQRS4y8Rpn@F2U`+wRy)9@&&v<;uCbVwix7=a*!gb>3HN!VpGAcTFBur(MUga$&V z6HJFSghfSAz`+d$StE!FD2U*~A}Xi|q7ZQ$zy(l5z!7B;0t(;#p02L6Gcecu`mXsg zmFs@aTkl!xRMn~Ks!pG0VFj#(t*{#oz~A5$`~l@c_$7U)0S%x9+zZ_y4JN=5%Kr+c zW6y46 zFb+1sTkswngd=bTjBxr7?t}zr1Z|)b^aCekKo&d*GhrSqg6Cl!ybe2H4;+Ob;8*w^ zLL+$84RUT*C9Dbcto3BVme2`$!2>WF3gBT_3NOJXcpKh_1Mmg>09T-DdCni`3u8d) z$t9d**)s^|z+Yf7tbvWN4J7Rz!cX8BoP;xQ0d7D9gIHyVh5FDG+CnPyhCwh4a$y?G zgGKNnY=PY%b$m+rB^-w{Z~?ACIerYf62w4lXbGt>0EWS6$bmw52G+tR*ao}d6ZjHN z!a2AMl_NO^pcQn0zAy~3p#WyXB3KRUVH^Ac{IoRBzLiRZcF+&xoN*Fnz&Mx$Ghh+C z0z2Rk9EUS-0m@Wl?1ySl8=63O7zSRL2J_%qcm;OA1-JoaDlwKp6{rDqp)quU43PF@ z5k3foFdG)a^RNy!gY>uX4)$I+3IBl05Luby1!_V)Xbc@;7)%C#-kI17;91xJTVV%$ z0EgilI1e`=l=(KJAs!k-9xQ-GunxAtZa4!{{zby;P@#%acSACa1UD4ITv!6D;T3oj z_ChfngR>CKg|!8wKv%dQ215png94ZhYv2ty06)MLFsgDqLn3s9!H^5{;VgtyqfD3$ z(%z>DrQerX;Tp>?aT_e(8-(w|$50Fsca-o1oP|H2Y&7Q(w1qUthnesgEQ6O|JM06= zUrhKld=Ka03ItcDuc0l>hL7PaNP1~wwHTirPuLKeL0jkulBNe?e;5I|AbF+`&V{Ey z(mY4F8eWB6a0JBvBjF{u33tSDd_x0h4xJzkMu7)rz(RNhz67}mY5;AZ6ZC?CkOdQ9 zE-ZzYVJqwh6~`D36`>|1!#ywnhQSz^3{QZxPgsP#2401ouosTOX}AvMYEm9lhuYxJ zmxSE{QeY5_2I-p|!ig{)o`kg{x6?A~^Fbv!<2bRIB@ID-d%TPIi_QNb#1{>fb z_y*3xA5gXy;{sHJyP+X8hn}ziUV{^G7D^zZHuqXk1L{IDq(D~~2;*Qftb&(d2Ydyp z4s}5k)PTm&4tj$Na^Oi=4I5z_d;s6U6)0bq>jQL$fiMXkgQsC7Y=mv_349CuSiVYz z*3cRH!Z0X=P4F$8hv@n=4O&8H=mWzc4`#tLuo7N_ZEzG$gY3uigx4UV0sRJDU?_}% z@h}7Cz%tkXyWto}-tP#1gDMSaBY0su?1n>d1Wv+Fa0x0k;{F6uVFo+}ufcopH#i5E zp;jX2H@G1m=7G#wxei{3FCip}@fWH<95jIr&>aTCNbrEPa{}SxumpC&5x54y$>f7h zFaSouELaY&z)m;@HzB04uPiA~sK9!4XbLIN57J>Yfdc42@$C%}F(z+M_)zYt(=46xr0uy+U82LkLb1MCw4 z_PGH2a)5m^z%JXgwEYzW?3e(%PJrDwz-|*@rv})40&Hi1of%+z0_;fv_N)MVUV!~< zfW0!nemTH?J;2_H{SnAM`i$`Ja2!skS6~lF z`u&8T!`E=y^8HMB6+&A0(l9}WiU!FaPgozCKnLg!!(bdt1W7ZUaFJ!NAY5bF8wuZp z?@1%+&RL}df$*-w)GQOoy)70Tz>MV7t73gvUH zq+M&R%Xu&7yPW5*T0UumT+iiLc+2w1y{{Yx{$oRqgLkdCy;gWIAiuvKzqy6)XMDc~ z_+?y?@kGWE89(GcU5+ogC->ir%l*6DkIOyxbt|tNV=~6b*dk+!j3qLL$k-wGqH-T9 z+bYMMY?B;&K{=)Ofiix`*dk+!j3075%Kf0+3x-+gm@k7Q98875`ma#&{2pJpF zC@&qxSmovt%4Z$fR{8uQp`1UJdOLW=t7AB zJUq<^h{OqxRy`dzRW|n$tU$KUv%qyQeW-Gw~mv1CvH=wW@1tqam?F1>b$hghX4+phJkJ)+}cw))mK>9wza^sODyYnu$_o}$c4dd*`vn198= z>?>u|cq2?b$fKb=BSLv0A11&=m;{qy3QUCpqr94CR91yX6*V1Zz)Yi>nq@@uw6&&s z*r=->f!Rg_^(f4Nx$qb~4)cseHQz{53yj9<38NM7u-fu=sv~o|bmHApDsPoK^S-DH zZ-Tn=j;EViZ1mviZExPq4CJlLAhpyO%sUmQT5b$cD~xot5>^?*c_%W08DKJ*|HZ}Z zFJpQ0F_w24V|iQQVb+&i=6uOx#uu+zZ%kyim#NJ4GM$-TW-`yqOts0FrCx*0#%%RE zY%%7jt;PcNhOtb&X{_SO@hbH;Y%|uV?XUxO!aK~%vkTs3UY+-tPv?E(4YeEgzz6Ul ze8k*3d*Nf)2m9d@H~^o*XK)Y>K{0&J{5yx?3-}v+34ezp#x`{nj=@*V$n!OPW4y;4 zH2c+YIKf;xC*eEep!yzoE24g29-Y(1Vf7<(<(z@Da1MTgf56Xh-Z-j$VV;~{;R0NQ zOU7|^+4x@lW?WKN;HvSPDuHWo9e!svn?H=-ncL=fX14jALFsp8fC)k1U=EvLC<7r7 z3T2tgrkrUSVP=pK4iQk^bQl%PGR7Sc33oz8vz$?h8Eh&;6jXt`pej@|!;NUD4lxi5 zH6RXZLOk5fyf+C@3u;3h^A4jf)Pwrwokjy_2#w52Mxt5WNP=W&3{9XZG-DQ==FkFK z!adLmT0~fhOeaWXHkr<**XROWp&RqZbZ0h| z9_B%#Co`$^VpfyhW_wf4cBkSak6xxSy8F)jsm$pn3*Rs@_|T=7Y{Q>!p=~{5$1dWG zl7;^wuzjm+>m@6edr;eVui09s=X1O1zoN9aeeKPWx;&n^+P?eDS(dMp`HYpflli>m z>uhefe4Wh?EninVU03s{+`&Q{Mi_GSFOOr5kAOvwVZ?bc30}#+Po0`LmU72(!ib zd=D@ijIWLd%x0Evn4Nc+*~RjWuze%UA(n5X?Hj4LNJ<=KdWe+@N15^_NtV%e|BW{P zV)@3}zOlL|CEYl4y_I*I`KFaF+uUpUvdxp0FUS1N^5vL@b*UL|R>qQg$D8#mU!Gk@ zo}D+}Y-gp*H#4nt6U_q4H_?D({mMmYH{^P!Pknb30PX{GfvHgSm=f@*K{&bIOOIr1)oo=oj z`?zh*x29!TaxZWyN^|H2)Xw{weoxv#l)KnrGLxz^-kjZLPLrH`>0B z?YxI<>-AWF`?gw^LzURpbvyPh zwxZ<`oL*9FtAlNIw5?Rz>S9~nY^#TDO|dM8>Q=9zJ}a>5`|5D0LfhI{-xtfX$3_x6 zST#d8$EKnws!)4Goy@t&vpucpT8C@R)aq92b(+u6bR}A-b-30UTHWffj+N4e>XL^l zsU=-q*UHBlW`tagmT(8g=Qgd8-2X`$pN?njDrA(Bl(SKfF%K<{dR_ZP-ORAXGiswO zV~5A6fWBzNp-yHQAD}%WwN6Hhj5%6mtDXGvtfUl;G(?9g>G_-d z;;Q&XhwJuuj7!)%nR`mNklUD3L8+*lU#sL^QW@@cBDn zr#psdf2Q_NLkBq?(w@26ep1`3w7!UXjJHsZ|8lYyMBQo!TBK`tt1qyf{Mv%}FKK^p znAp)M_j2044=pm%w4I@C*%r5&itSYMw10{AuhaI&sK@vb9pv~G{Z?M`n| zMTXc;?QyGC+S46sV|B96D65FX`i;UUWoYCkmeivE%e_&HWq-Z#LPM3KqC>HzMG6|@YnR+F5ueQI? z_6e;eTC3hEX%bMkO4T|~dsb_E54tnxDB2<9Iy%T9=WlV8^xhFubdW9M!s#^pz;J zXzhp2;6Fg5ZEvH;LPXvCSA%%gQv3OkGuRhH#J(KjI~U6E;o!VZPv2q}8CmFRGY_p5 zDkQp_oJs2J2ko~(SdW`nWK=(w8$E}L6XE48@wAr^U z2l14sZ_pc2zBFZcL+vp{-F&NCV$;ygu@bvjk33UC^L6Y(tyfW}s>Hi#&Qo-#F5j(^ zu+vQ0%P)ue#)LxNPrKFgs8j9I_UBr!YK`WJpi{L#)68_#t;VB8hMcV>Y5{g~jBI-| zt&dx_^vwJi(PlBylUHN+MDr%Atawt?P3*Bc)?-xUO*7X)eU3N4cB_8c^Psk$MTc@m zivNABM^LA_uI;ihQks-GLzl2#m%qNO)ObwqN4I)Ir}+piQKFN~1Lzf<(yh*8yVXSA zCcD)N)Twr8d#~10+H(m_Gb`}+*sZFg#ZkU7p&53h9v{-xYHY6EY(=5gbhQ)DAct?e zj$x;l`$^K26Hk#59VcgQSJbU?(QnJhbzzW0{O5G+!I-(&^s|yQ7qGXNlXi9p=~+|y za|GHUdIc?xvaS@`6LPnB zd{==xu+#aS7s*=_+pSKaeB(Aj+LnlNwxTZt4?&$u{BAW09adY$v0=5PoFYSXSZ&|6 z+vk_98_MsUN%|4B_^w{~1g*Z(1e2$Cz11TCyCy7JCqNtD{WW6AZdFTbqSo`MQ$^Mje+@KUpWQDS zdJJ@kQoD|Q7j>!|+77EPJs?|D5F)x-->amVGH%?|C4@wXKP=)UQV!L3cjxpS+8~GY zn3Gvvq?cs>eyYc%{klf(>qx&hVJ-bu9F>ah)An(#pJ**GB{nHMxB+kJBdVj5%y={` zLTWG6wckjPylz#dp=dwUspf0@d2P#4J=7ZErJY5_e*Ec5w8)S?9}pqiej`CVZWY0s zYqyF)(;fGqY32}gN~ma|@}LF5a@Hh;mrazGv__fT9Zd?~jXKqj+Vh*X>+*hjX_)BS z5sB#O2ssN1^&M2xV6kuNJG4Tr_v&NGtu~Ody|(YuniO6snfKe;?yR*!`CL3j#zNGo zM8hHuphLCYRj28$)nojEKV4thXJ}0=pVL@!O+$+epRUH9T<0*_G+0KPNJBhH;bBcA zWiskk_o4+Ml73dO6PpnXyC6i;FDWnEGOhm2rlPXfUacS8Of(FgRzDu?T2K7b>em&! zervQ%s9g0HHj=yCg^f1jS=i_;t?y{vgKnuVxh{r8HJ3K@K-p{Bo`{yH`DnTl&rN+z zZxbqed1;tj6I)f>hX4MGk~d9jks)@iP|@{ejTU^9M_+v+jW*aXhssrHIR9fQWr~hb zb}>DJ+BKumV=XDp;#H#8k5dTu7~@JNDRsb-!Q2 zwzhwG$K1Ts$*x`*Svkt%&CJbnxe`ZZXY0f_YmHqn*v?j($9DY}8vK70t%~CdXVMdW z2?+ugevO2+dv4*EL^DPHwD{7G{g)^yg{No^j;K|4G52U`rsF{zRBE6~V?Ph%tm}u> zP4!W|S?`8+#+GHLl%Qyk>Q8J2UN7+(DxY+@tofErj`p}%JcB&B6mKu@XaPQL3Lq0pPu)}N()A@-c#4&!s<`HT-wApu2hs=&UoF{DU^|+ z%anHZB2Omm%cb;Ow$5K}o*K`(Y+dPAHB)6M%ikNFXoXkj%_41Ss=zjK{Hut7JOjy- zN3PO-YN8TVOK8Scw}KXWol}~nnJPzK>Ggb_FNfA-2eiJlFA|BL41DVr#M z(RejQ?}0IDEG6;T_g{Q*stI*BR!!-Gr% zKAeI-pZX-e5Btow1({fRYNGabrWF(Po-6I+I=WY; z#L`yxQ6FpjED-f z{C3j&y#rg|rG5`RlCAsXc6n~K|7Y@5+p~sjrEfXEeOKF*$)4=EiLN|vR&Gwa_{NFJ z@o}!4%-m5~Ib+(z59r^y(LM2T-u#T5Q5o5}Ij(l`Q(WHolzSt}waxH)U7nHIQ{pHf z$J;J`LS9a5Z{}E+C&Sywla-m5>&+dV-zYQJ(>lZJNu1a?KF*VolQr7q%^w(88%4#% z*@bl*<;uy=%AfM579}Q2t8y|tRNre#hwVf2`0?>cz7q2DCV2C^<&4h# z58KluUgx83uPbvx9(7vlc=B8iPN1ExQGN5WCT3;3#<;xyVX001rN*(8mcwN#bAq(E zr)#1sJ1$$aU3`YOTh7E>w<|9`ZbDXv%uJV;ZXBJF?R8ljr3*>AMQi*`Px@2a+a}qa mK!UbO{yoHse~ $(MSBuildProjectDirectory)\..\ - + false @@ -11,11 +11,11 @@ true - + false - + @@ -28,28 +28,36 @@ $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) - $([System.IO.Path]::Combine($(ProjectDir), "packages.config")) - + $(SolutionDir).nuget - packages.config + + + + $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config + $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config + + + + $(MSBuildProjectDirectory)\packages.config + $(PackagesProjectConfig) $(NuGetToolsPath)\NuGet.exe @(PackageSource) - + "$(NuGetExePath)" - mono --runtime=v4.0.30319 $(NuGetExePath) + mono --runtime=v4.0.30319 "$(NuGetExePath)" $(TargetDir.Trim('\\')) - + -RequireConsent -NonInteractive - + "$(SolutionDir) " "$(SolutionDir)" @@ -85,24 +93,24 @@ - + - + - - + - + @@ -133,4 +141,4 @@ - \ No newline at end of file + diff --git a/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs b/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs index 3968844..8542795 100644 --- a/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs +++ b/src/ScriptCs.AzureManagement.Common/Credentials/CredentialManager.cs @@ -1,9 +1,9 @@ -using System; +using Common.Logging; +using Microsoft.Azure; +using ScriptCs.AzureManagement.Common.Configuration; +using System; using System.Collections.Generic; using System.Linq; -using Common.Logging; -using ScriptCs.AzureManagement.Common.Configuration; -using Microsoft.Azure; namespace ScriptCs.AzureManagement.Common.Credentials { diff --git a/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj b/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj index e40ff0b..9751f33 100644 --- a/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj +++ b/src/ScriptCs.AzureManagement.Common/ScriptCs.AzureManagement.Common.csproj @@ -64,9 +64,9 @@ False ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll diff --git a/src/ScriptCs.AzureManagement.Common/app.config b/src/ScriptCs.AzureManagement.Common/app.config index 4429813..195db1f 100644 --- a/src/ScriptCs.AzureManagement.Common/app.config +++ b/src/ScriptCs.AzureManagement.Common/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/ScriptCs.AzureManagement.Common/packages.config b/src/ScriptCs.AzureManagement.Common/packages.config index e237abd..305167e 100644 --- a/src/ScriptCs.AzureManagement.Common/packages.config +++ b/src/ScriptCs.AzureManagement.Common/packages.config @@ -9,5 +9,5 @@ - + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.Compute/ScriptCs.AzureManagement.Compute.csproj b/src/ScriptCs.AzureManagement.Compute/ScriptCs.AzureManagement.Compute.csproj index e0449eb..dedc142 100644 --- a/src/ScriptCs.AzureManagement.Compute/ScriptCs.AzureManagement.Compute.csproj +++ b/src/ScriptCs.AzureManagement.Compute/ScriptCs.AzureManagement.Compute.csproj @@ -63,9 +63,9 @@ ..\packages\Microsoft.WindowsAzure.Management.Compute.9.2.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - + False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll diff --git a/src/ScriptCs.AzureManagement.Compute/app.config b/src/ScriptCs.AzureManagement.Compute/app.config index bc10268..7abdca4 100644 --- a/src/ScriptCs.AzureManagement.Compute/app.config +++ b/src/ScriptCs.AzureManagement.Compute/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/ScriptCs.AzureManagement.Compute/packages.config b/src/ScriptCs.AzureManagement.Compute/packages.config index 59241c8..2b7d87e 100644 --- a/src/ScriptCs.AzureManagement.Compute/packages.config +++ b/src/ScriptCs.AzureManagement.Compute/packages.config @@ -10,5 +10,5 @@ - + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.Infrastructure/ScriptCs.AzureManagement.Infrastructure.csproj b/src/ScriptCs.AzureManagement.Infrastructure/ScriptCs.AzureManagement.Infrastructure.csproj index 1e8510b..818ec0c 100644 --- a/src/ScriptCs.AzureManagement.Infrastructure/ScriptCs.AzureManagement.Infrastructure.csproj +++ b/src/ScriptCs.AzureManagement.Infrastructure/ScriptCs.AzureManagement.Infrastructure.csproj @@ -34,7 +34,7 @@ - ..\packages\Common.Logging.2.1.2\lib\net40\Common.Logging.dll + ..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll ..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll @@ -63,9 +63,9 @@ ..\packages\Microsoft.WindowsAzure.Management.4.1.0\lib\net40\Microsoft.WindowsAzure.Management.dll - + False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll diff --git a/src/ScriptCs.AzureManagement.Infrastructure/app.config b/src/ScriptCs.AzureManagement.Infrastructure/app.config index bc10268..7abdca4 100644 --- a/src/ScriptCs.AzureManagement.Infrastructure/app.config +++ b/src/ScriptCs.AzureManagement.Infrastructure/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/ScriptCs.AzureManagement.Infrastructure/packages.config b/src/ScriptCs.AzureManagement.Infrastructure/packages.config index afba4af..30e16a6 100644 --- a/src/ScriptCs.AzureManagement.Infrastructure/packages.config +++ b/src/ScriptCs.AzureManagement.Infrastructure/packages.config @@ -1,5 +1,6 @@  + @@ -9,5 +10,5 @@ - + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.Media/ScriptCs.AzureManagement.Media.csproj b/src/ScriptCs.AzureManagement.Media/ScriptCs.AzureManagement.Media.csproj index f32292c..8ca9d3a 100644 --- a/src/ScriptCs.AzureManagement.Media/ScriptCs.AzureManagement.Media.csproj +++ b/src/ScriptCs.AzureManagement.Media/ScriptCs.AzureManagement.Media.csproj @@ -34,7 +34,7 @@ - ..\packages\Common.Logging.2.1.2\lib\net40\Common.Logging.dll + ..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll ..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll @@ -63,9 +63,9 @@ ..\packages\Microsoft.WindowsAzure.Management.MediaServices.4.1.0\lib\net40\Microsoft.WindowsAzure.Management.MediaServices.dll - + False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll diff --git a/src/ScriptCs.AzureManagement.Media/app.config b/src/ScriptCs.AzureManagement.Media/app.config index bc10268..7abdca4 100644 --- a/src/ScriptCs.AzureManagement.Media/app.config +++ b/src/ScriptCs.AzureManagement.Media/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/ScriptCs.AzureManagement.Media/packages.config b/src/ScriptCs.AzureManagement.Media/packages.config index c054324..3b0373f 100644 --- a/src/ScriptCs.AzureManagement.Media/packages.config +++ b/src/ScriptCs.AzureManagement.Media/packages.config @@ -1,5 +1,6 @@  + @@ -9,5 +10,5 @@ - + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.Monitoring/ScriptCs.AzureManagement.Monitoring.csproj b/src/ScriptCs.AzureManagement.Monitoring/ScriptCs.AzureManagement.Monitoring.csproj index 71bbd9a..02e20a0 100644 --- a/src/ScriptCs.AzureManagement.Monitoring/ScriptCs.AzureManagement.Monitoring.csproj +++ b/src/ScriptCs.AzureManagement.Monitoring/ScriptCs.AzureManagement.Monitoring.csproj @@ -33,8 +33,9 @@ 4 - - ..\ScriptCs.AzureManagement.Common\bin\Debug\Common.Logging.dll + + False + ..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll ..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll @@ -63,9 +64,9 @@ ..\packages\Microsoft.WindowsAzure.Management.Monitoring.4.1.0\lib\net40\Microsoft.WindowsAzure.Management.Monitoring.dll - + False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll diff --git a/src/ScriptCs.AzureManagement.Monitoring/app.config b/src/ScriptCs.AzureManagement.Monitoring/app.config index bc10268..7abdca4 100644 --- a/src/ScriptCs.AzureManagement.Monitoring/app.config +++ b/src/ScriptCs.AzureManagement.Monitoring/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/ScriptCs.AzureManagement.Monitoring/packages.config b/src/ScriptCs.AzureManagement.Monitoring/packages.config index e9d1ca0..53e917f 100644 --- a/src/ScriptCs.AzureManagement.Monitoring/packages.config +++ b/src/ScriptCs.AzureManagement.Monitoring/packages.config @@ -1,5 +1,6 @@  + @@ -9,5 +10,5 @@ - + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.Scheduler/ScriptCs.AzureManagement.Scheduler.csproj b/src/ScriptCs.AzureManagement.Scheduler/ScriptCs.AzureManagement.Scheduler.csproj index 14bd090..0f476d0 100644 --- a/src/ScriptCs.AzureManagement.Scheduler/ScriptCs.AzureManagement.Scheduler.csproj +++ b/src/ScriptCs.AzureManagement.Scheduler/ScriptCs.AzureManagement.Scheduler.csproj @@ -33,8 +33,9 @@ 4 - - ..\ScriptCs.AzureManagement.Common\bin\Debug\Common.Logging.dll + + False + ..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll ..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll @@ -63,9 +64,9 @@ ..\packages\Microsoft.WindowsAzure.Management.Scheduler.6.1.0\lib\net40\Microsoft.WindowsAzure.Management.Scheduler.dll - + False - ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll diff --git a/src/ScriptCs.AzureManagement.Scheduler/app.config b/src/ScriptCs.AzureManagement.Scheduler/app.config index bc10268..7abdca4 100644 --- a/src/ScriptCs.AzureManagement.Scheduler/app.config +++ b/src/ScriptCs.AzureManagement.Scheduler/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/ScriptCs.AzureManagement.Scheduler/packages.config b/src/ScriptCs.AzureManagement.Scheduler/packages.config index ff0ec39..ce2e2eb 100644 --- a/src/ScriptCs.AzureManagement.Scheduler/packages.config +++ b/src/ScriptCs.AzureManagement.Scheduler/packages.config @@ -1,5 +1,6 @@  + @@ -9,5 +10,5 @@ - + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj b/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj index 44c3226..bd28c0c 100644 --- a/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj +++ b/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj @@ -13,7 +13,7 @@ 512 ..\..\ true - 9d55884c + cfacb518 true @@ -58,9 +58,9 @@ ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + False - ..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll False @@ -71,11 +71,13 @@ - - ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Extensions.dll + + False + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - - ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Primitives.dll + + False + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll @@ -146,10 +148,12 @@ - - - - + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.TrafficManager/TrafficManagerManagement.cs b/src/ScriptCs.AzureManagement.TrafficManager/TrafficManagerManagement.cs new file mode 100644 index 0000000..b7b9a6f --- /dev/null +++ b/src/ScriptCs.AzureManagement.TrafficManager/TrafficManagerManagement.cs @@ -0,0 +1,25 @@ +namespace ScriptCs.AzureManagement.TrafficManager +{ + using global::Common.Logging; + using Microsoft.WindowsAzure.Management.TrafficManager; + using ScriptCs.AzureManagement.Common; + using ScriptCs.AzureManagement.Common.Credentials; + + public class TrafficManagerManagement + { + private readonly ILog _logger; + private readonly ICredentialManager _credentialManager; + + public TrafficManagerManagement(ManagementContext managementContext) + { + _logger = managementContext.Logger; + _credentialManager = managementContext.CredentialManager; + } + + public TrafficManagerManagementClient CreateClient() + { + var credentials = _credentialManager.GetManagementCredentials(); + return new TrafficManagerManagementClient(credentials); + } + } +} \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.TrafficManager/app.config b/src/ScriptCs.AzureManagement.TrafficManager/app.config new file mode 100644 index 0000000..195db1f --- /dev/null +++ b/src/ScriptCs.AzureManagement.TrafficManager/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.TrafficManager/packages.config b/src/ScriptCs.AzureManagement.TrafficManager/packages.config new file mode 100644 index 0000000..d13af0c --- /dev/null +++ b/src/ScriptCs.AzureManagement.TrafficManager/packages.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.sln b/src/ScriptCs.AzureManagement.sln index e49a921..bbdacce 100644 --- a/src/ScriptCs.AzureManagement.sln +++ b/src/ScriptCs.AzureManagement.sln @@ -34,6 +34,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{011377 .nuget\NuGet.targets = .nuget\NuGet.targets EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptCs.AzureManagement.TrafficManager", "ScriptCs.AzureManagement.TrafficManager\ScriptCs.AzureManagement.TrafficManager.csproj", "{9AD45452-46E5-441F-80C2-8E0A17025AE6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -88,6 +90,10 @@ Global {46D17A73-F367-447C-A9D5-0A58F822E725}.Debug|Any CPU.Build.0 = Debug|Any CPU {46D17A73-F367-447C-A9D5-0A58F822E725}.Release|Any CPU.ActiveCfg = Release|Any CPU {46D17A73-F367-447C-A9D5-0A58F822E725}.Release|Any CPU.Build.0 = Release|Any CPU + {9AD45452-46E5-441F-80C2-8E0A17025AE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9AD45452-46E5-441F-80C2-8E0A17025AE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9AD45452-46E5-441F-80C2-8E0A17025AE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9AD45452-46E5-441F-80C2-8E0A17025AE6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 8d4e6b149834f3ef0cd2db0a74224a1f8654c588 Mon Sep 17 00:00:00 2001 From: Christian Geuer-Pollmann Date: Mon, 23 Mar 2015 15:14:13 +0100 Subject: [PATCH 7/8] Added Azure Automation --- .../AutomationManagement.cs | 25 ++++ .../Properties/AssemblyInfo.cs | 36 ++++++ ...ScriptCs.AzureManagement.Automation.csproj | 115 ++++++++++++++++++ .../app.config | 11 ++ .../packages.config | 14 +++ .../AzureManagement.cs | 6 +- .../AzureManagementScriptPack.cs | 4 +- ...ScriptCs.AzureManagement.ScriptPack.csproj | 4 + src/ScriptCs.AzureManagement.sln | 6 + 9 files changed, 219 insertions(+), 2 deletions(-) create mode 100644 src/ScriptCs.AzureManagement.Automation/AutomationManagement.cs create mode 100644 src/ScriptCs.AzureManagement.Automation/Properties/AssemblyInfo.cs create mode 100644 src/ScriptCs.AzureManagement.Automation/ScriptCs.AzureManagement.Automation.csproj create mode 100644 src/ScriptCs.AzureManagement.Automation/app.config create mode 100644 src/ScriptCs.AzureManagement.Automation/packages.config diff --git a/src/ScriptCs.AzureManagement.Automation/AutomationManagement.cs b/src/ScriptCs.AzureManagement.Automation/AutomationManagement.cs new file mode 100644 index 0000000..6e0ec6d --- /dev/null +++ b/src/ScriptCs.AzureManagement.Automation/AutomationManagement.cs @@ -0,0 +1,25 @@ +namespace ScriptCs.AzureManagement.Automation +{ + using global::Common.Logging; + using Microsoft.WindowsAzure.Management.Automation; + using ScriptCs.AzureManagement.Common; + using ScriptCs.AzureManagement.Common.Credentials; + + public class AutomationManagement + { + private readonly ILog _logger; + private readonly ICredentialManager _credentialManager; + + public AutomationManagement(ManagementContext managementContext) + { + _logger = managementContext.Logger; + _credentialManager = managementContext.CredentialManager; + } + + public AutomationManagementClient CreateClient() + { + var credentials = _credentialManager.GetManagementCredentials(); + return new AutomationManagementClient(credentials); + } + } +} diff --git a/src/ScriptCs.AzureManagement.Automation/Properties/AssemblyInfo.cs b/src/ScriptCs.AzureManagement.Automation/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..05616f9 --- /dev/null +++ b/src/ScriptCs.AzureManagement.Automation/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ScriptCs.AzureManagement.Automation")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ScriptCs.AzureManagement.Automation")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("87261567-be6a-4a27-8bfb-8f32321d48ad")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/ScriptCs.AzureManagement.Automation/ScriptCs.AzureManagement.Automation.csproj b/src/ScriptCs.AzureManagement.Automation/ScriptCs.AzureManagement.Automation.csproj new file mode 100644 index 0000000..88f9274 --- /dev/null +++ b/src/ScriptCs.AzureManagement.Automation/ScriptCs.AzureManagement.Automation.csproj @@ -0,0 +1,115 @@ + + + + + Debug + AnyCPU + {311904C9-E7BE-4831-9460-F5B02923D165} + Library + Properties + ScriptCs.AzureManagement.Automation + ScriptCs.AzureManagement.Automation + v4.5 + 512 + ..\ + true + e44a33b2 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll + + + ..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll + + + ..\packages\Hyak.Common.1.0.2\lib\net45\Hyak.Common.dll + + + ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.dll + + + ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + + + ..\packages\Microsoft.WindowsAzure.Management.Automation.1.0.1\lib\net40\Microsoft.WindowsAzure.Management.Automation.dll + + + False + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll + + + + + + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + + + + + + + + + + + + + + + + + + + {f78e3473-3dd0-4be8-88d4-e10d4a78d674} + ScriptCs.AzureManagement.Common + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.Automation/app.config b/src/ScriptCs.AzureManagement.Automation/app.config new file mode 100644 index 0000000..195db1f --- /dev/null +++ b/src/ScriptCs.AzureManagement.Automation/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.Automation/packages.config b/src/ScriptCs.AzureManagement.Automation/packages.config new file mode 100644 index 0000000..6ed1940 --- /dev/null +++ b/src/ScriptCs.AzureManagement.Automation/packages.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs index 63e353b..3d5b477 100644 --- a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs +++ b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs @@ -1,4 +1,5 @@ using Common.Logging; +using ScriptCs.AzureManagement.Automation; using ScriptCs.AzureManagement.Common; using ScriptCs.AzureManagement.Common.Configuration; using ScriptCs.AzureManagement.Common.Credentials; @@ -29,6 +30,7 @@ public partial class AzureManagement : IScriptPackContext private HttpTracingInterceptor _httpTracingInterceptor; + private Lazy _automationManagement; private Lazy _computeManagement; private Lazy _infrastructureManagement; private Lazy _mediaManagement; @@ -66,6 +68,7 @@ private AzureManagement InitialiseScriptPack() Logger = _logger, CredentialManager = _credentialManager }; + _automationManagement = new Lazy(() => new AutomationManagement(managementContext)); _computeManagement = new Lazy(() => new ComputeManagement(managementContext)); _infrastructureManagement = new Lazy(() => new InfrastructureManagement(managementContext)); _monitoringManagement = new Lazy(() => new MonitoringManagement(managementContext)); @@ -76,11 +79,12 @@ private AzureManagement InitialiseScriptPack() _storageManagement = new Lazy(() => new StorageManagement(managementContext)); _virtualNetworkManagement = new Lazy(() => new VirtualNetworkManagement(managementContext)); _trafficManagerManagement = new Lazy(() => new TrafficManagerManagement(managementContext)); - _webSiteManagement = new Lazy(() => new WebSiteManagement(managementContext)); + _webSiteManagement = new Lazy(() => new WebSiteManagement(managementContext)); return this; } + public AutomationManagement AutomationManagement { get { return _automationManagement.Value; } } public ComputeManagement ComputeManagement { get { return _computeManagement.Value; } } public InfrastructureManagement InfrastructureManagement { get { return _infrastructureManagement.Value; } } public MediaManagement MediaManagement { get { return _mediaManagement.Value; } } diff --git a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs index 5bac09f..75fa84e 100644 --- a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs +++ b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs @@ -15,8 +15,10 @@ public void Initialize(IScriptPackSession session) var namespaces = new[] { "System.Net", - "Microsoft.WindowsAzure.Management.Compute.Models", + "Microsoft.WindowsAzure.Management.Automation", + "Microsoft.WindowsAzure.Management.Automation.Models", "Microsoft.WindowsAzure.Management.Compute", + "Microsoft.WindowsAzure.Management.Compute.Models", "Microsoft.WindowsAzure.Management.MediaServices", "Microsoft.WindowsAzure.Management.MediaServices.Models", "Microsoft.WindowsAzure.Management.Models", diff --git a/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj b/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj index a53f211..804ab1c 100644 --- a/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj +++ b/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj @@ -101,6 +101,10 @@ + + {311904c9-e7be-4831-9460-f5b02923d165} + ScriptCs.AzureManagement.Automation + {F78E3473-3DD0-4BE8-88D4-E10D4A78D674} ScriptCs.AzureManagement.Common diff --git a/src/ScriptCs.AzureManagement.sln b/src/ScriptCs.AzureManagement.sln index bbdacce..cdc7338 100644 --- a/src/ScriptCs.AzureManagement.sln +++ b/src/ScriptCs.AzureManagement.sln @@ -36,6 +36,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{011377 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptCs.AzureManagement.TrafficManager", "ScriptCs.AzureManagement.TrafficManager\ScriptCs.AzureManagement.TrafficManager.csproj", "{9AD45452-46E5-441F-80C2-8E0A17025AE6}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptCs.AzureManagement.Automation", "ScriptCs.AzureManagement.Automation\ScriptCs.AzureManagement.Automation.csproj", "{311904C9-E7BE-4831-9460-F5B02923D165}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -94,6 +96,10 @@ Global {9AD45452-46E5-441F-80C2-8E0A17025AE6}.Debug|Any CPU.Build.0 = Debug|Any CPU {9AD45452-46E5-441F-80C2-8E0A17025AE6}.Release|Any CPU.ActiveCfg = Release|Any CPU {9AD45452-46E5-441F-80C2-8E0A17025AE6}.Release|Any CPU.Build.0 = Release|Any CPU + {311904C9-E7BE-4831-9460-F5B02923D165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {311904C9-E7BE-4831-9460-F5B02923D165}.Debug|Any CPU.Build.0 = Debug|Any CPU + {311904C9-E7BE-4831-9460-F5B02923D165}.Release|Any CPU.ActiveCfg = Release|Any CPU + {311904C9-E7BE-4831-9460-F5B02923D165}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 19cc72344906a0d56e7f0346d8b2b487ce42b51c Mon Sep 17 00:00:00 2001 From: Christian Geuer-Pollmann Date: Mon, 23 Mar 2015 15:24:52 +0100 Subject: [PATCH 8/8] Added ExpressRoute --- .../ExpressRouteManagement.cs | 25 ++++ .../Properties/AssemblyInfo.cs | 36 ++++++ ...riptCs.AzureManagement.ExpressRoute.csproj | 115 ++++++++++++++++++ .../app.config | 11 ++ .../packages.config | 14 +++ .../AzureManagement.cs | 4 + .../AzureManagementScriptPack.cs | 2 + ...ScriptCs.AzureManagement.ScriptPack.csproj | 4 + src/ScriptCs.AzureManagement.sln | 6 + 9 files changed, 217 insertions(+) create mode 100644 src/ScriptCs.AzureManagement.ExpressRoute/ExpressRouteManagement.cs create mode 100644 src/ScriptCs.AzureManagement.ExpressRoute/Properties/AssemblyInfo.cs create mode 100644 src/ScriptCs.AzureManagement.ExpressRoute/ScriptCs.AzureManagement.ExpressRoute.csproj create mode 100644 src/ScriptCs.AzureManagement.ExpressRoute/app.config create mode 100644 src/ScriptCs.AzureManagement.ExpressRoute/packages.config diff --git a/src/ScriptCs.AzureManagement.ExpressRoute/ExpressRouteManagement.cs b/src/ScriptCs.AzureManagement.ExpressRoute/ExpressRouteManagement.cs new file mode 100644 index 0000000..af0df22 --- /dev/null +++ b/src/ScriptCs.AzureManagement.ExpressRoute/ExpressRouteManagement.cs @@ -0,0 +1,25 @@ +namespace ScriptCs.AzureManagement.ExpressRoute +{ + using global::Common.Logging; + using Microsoft.WindowsAzure.Management.ExpressRoute; + using ScriptCs.AzureManagement.Common; + using ScriptCs.AzureManagement.Common.Credentials; + + public class ExpressRouteManagement + { + private readonly ILog _logger; + private readonly ICredentialManager _credentialManager; + + public ExpressRouteManagement(ManagementContext managementContext) + { + _logger = managementContext.Logger; + _credentialManager = managementContext.CredentialManager; + } + + public ExpressRouteManagementClient CreateClient() + { + var credentials = _credentialManager.GetManagementCredentials(); + return new ExpressRouteManagementClient(credentials); + } + } +} diff --git a/src/ScriptCs.AzureManagement.ExpressRoute/Properties/AssemblyInfo.cs b/src/ScriptCs.AzureManagement.ExpressRoute/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..64806c7 --- /dev/null +++ b/src/ScriptCs.AzureManagement.ExpressRoute/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ScriptCs.AzureManagement.ExpressRoute")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ScriptCs.AzureManagement.ExpressRoute")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("08d17bf3-8c28-4c24-802d-99faaead2812")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/ScriptCs.AzureManagement.ExpressRoute/ScriptCs.AzureManagement.ExpressRoute.csproj b/src/ScriptCs.AzureManagement.ExpressRoute/ScriptCs.AzureManagement.ExpressRoute.csproj new file mode 100644 index 0000000..da7e075 --- /dev/null +++ b/src/ScriptCs.AzureManagement.ExpressRoute/ScriptCs.AzureManagement.ExpressRoute.csproj @@ -0,0 +1,115 @@ + + + + + Debug + AnyCPU + {46EB5550-969C-47ED-9847-1A0BEAC6A066} + Library + Properties + ScriptCs.AzureManagement.ExpressRoute + ScriptCs.AzureManagement.ExpressRoute + v4.5 + 512 + ..\ + true + d3e4dcbc + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll + + + ..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll + + + ..\packages\Hyak.Common.1.0.2\lib\net45\Hyak.Common.dll + + + ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.dll + + + ..\packages\Microsoft.Azure.Common.2.0.4\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + + + ..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.18.2-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll + + + False + ..\packages\Newtonsoft.Json.7.0.1-beta1\lib\net45\Newtonsoft.Json.dll + + + + + + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll + + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + + + + + + + + + + + + + + + + + + + {f78e3473-3dd0-4be8-88d4-e10d4a78d674} + ScriptCs.AzureManagement.Common + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.ExpressRoute/app.config b/src/ScriptCs.AzureManagement.ExpressRoute/app.config new file mode 100644 index 0000000..195db1f --- /dev/null +++ b/src/ScriptCs.AzureManagement.ExpressRoute/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.ExpressRoute/packages.config b/src/ScriptCs.AzureManagement.ExpressRoute/packages.config new file mode 100644 index 0000000..8b28ee3 --- /dev/null +++ b/src/ScriptCs.AzureManagement.ExpressRoute/packages.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs index 3d5b477..4ee8e60 100644 --- a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs +++ b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagement.cs @@ -5,6 +5,7 @@ using ScriptCs.AzureManagement.Common.Credentials; using ScriptCs.AzureManagement.Common.TracingInterceptors; using ScriptCs.AzureManagement.Compute; +using ScriptCs.AzureManagement.ExpressRoute; using ScriptCs.AzureManagement.Infrastructure; using ScriptCs.AzureManagement.Media; using ScriptCs.AzureManagement.Monitoring; @@ -41,6 +42,7 @@ public partial class AzureManagement : IScriptPackContext private Lazy _storageManagement; private Lazy _virtualNetworkManagement; private Lazy _trafficManagerManagement; + private Lazy _expressRouteManagement; private Lazy _webSiteManagement; public AzureManagement(AzureManagementContext context) @@ -80,6 +82,7 @@ private AzureManagement InitialiseScriptPack() _virtualNetworkManagement = new Lazy(() => new VirtualNetworkManagement(managementContext)); _trafficManagerManagement = new Lazy(() => new TrafficManagerManagement(managementContext)); _webSiteManagement = new Lazy(() => new WebSiteManagement(managementContext)); + _expressRouteManagement = new Lazy(() => new ExpressRouteManagement(managementContext)); return this; } @@ -96,6 +99,7 @@ private AzureManagement InitialiseScriptPack() public VirtualNetworkManagement VirtualNetworkManagement { get { return _virtualNetworkManagement.Value; } } public TrafficManagerManagement TrafficManagerManagement { get { return _trafficManagerManagement.Value; } } public WebSiteManagement WebSiteManagement { get { return _webSiteManagement.Value; } } + public ExpressRouteManagement ExpressRouteManagement { get { return _expressRouteManagement.Value; } } public string ActiveSubscription { diff --git a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs index 75fa84e..99a41cb 100644 --- a/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs +++ b/src/ScriptCs.AzureManagement.ScriptPack/AzureManagementScriptPack.cs @@ -19,6 +19,8 @@ public void Initialize(IScriptPackSession session) "Microsoft.WindowsAzure.Management.Automation.Models", "Microsoft.WindowsAzure.Management.Compute", "Microsoft.WindowsAzure.Management.Compute.Models", + "Microsoft.WindowsAzure.Management.ExpressRoute", + "Microsoft.WindowsAzure.Management.ExpressRoute.Models", "Microsoft.WindowsAzure.Management.MediaServices", "Microsoft.WindowsAzure.Management.MediaServices.Models", "Microsoft.WindowsAzure.Management.Models", diff --git a/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj b/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj index 804ab1c..9407684 100644 --- a/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj +++ b/src/ScriptCs.AzureManagement.ScriptPack/ScriptCs.AzureManagement.ScriptPack.csproj @@ -113,6 +113,10 @@ {71E7CE6B-AE6E-4364-A623-60F69094EC3A} ScriptCs.AzureManagement.Compute + + {46eb5550-969c-47ed-9847-1a0beac6a066} + ScriptCs.AzureManagement.ExpressRoute + {5736647B-FC79-45C8-8BEC-3F4DB1D387E3} ScriptCs.AzureManagement.Infrastructure diff --git a/src/ScriptCs.AzureManagement.sln b/src/ScriptCs.AzureManagement.sln index cdc7338..e4850bb 100644 --- a/src/ScriptCs.AzureManagement.sln +++ b/src/ScriptCs.AzureManagement.sln @@ -38,6 +38,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptCs.AzureManagement.Tr EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptCs.AzureManagement.Automation", "ScriptCs.AzureManagement.Automation\ScriptCs.AzureManagement.Automation.csproj", "{311904C9-E7BE-4831-9460-F5B02923D165}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptCs.AzureManagement.ExpressRoute", "ScriptCs.AzureManagement.ExpressRoute\ScriptCs.AzureManagement.ExpressRoute.csproj", "{46EB5550-969C-47ED-9847-1A0BEAC6A066}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -100,6 +102,10 @@ Global {311904C9-E7BE-4831-9460-F5B02923D165}.Debug|Any CPU.Build.0 = Debug|Any CPU {311904C9-E7BE-4831-9460-F5B02923D165}.Release|Any CPU.ActiveCfg = Release|Any CPU {311904C9-E7BE-4831-9460-F5B02923D165}.Release|Any CPU.Build.0 = Release|Any CPU + {46EB5550-969C-47ED-9847-1A0BEAC6A066}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46EB5550-969C-47ED-9847-1A0BEAC6A066}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46EB5550-969C-47ED-9847-1A0BEAC6A066}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46EB5550-969C-47ED-9847-1A0BEAC6A066}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE