From a8741cd3529cdb9289bc9ba7c8d145800812d798 Mon Sep 17 00:00:00 2001 From: BlossomiShymae <87099578+BlossomiShymae@users.noreply.github.com> Date: Fri, 2 Aug 2024 02:25:17 -0500 Subject: [PATCH] WIP --- .../LcuSchemaHandlerTest.cs | 27 +++++++ Needlework.Net.Core.Tests/ResourcesTest.cs | 25 ++++++ Needlework.Net.Core.Tests/UnitTest1.cs | 10 --- Needlework.Net.Core/Class1.cs | 6 -- Needlework.Net.Core/LcuConnector.cs | 10 +++ Needlework.Net.Core/LcuSchemaHandler.cs | 49 ++++++++++++ .../Needlework.Net.Core.csproj | 6 ++ Needlework.Net.Core/Resources.cs | 21 +++++ Needlework.Net.Desktop/App.axaml | 19 +++-- Needlework.Net.Desktop/App.axaml.cs | 19 ++++- Needlework.Net.Desktop/Assets/about.png | Bin 0 -> 150228 bytes Needlework.Net.Desktop/MainWindow.axaml | 9 --- Needlework.Net.Desktop/MainWindow.axaml.cs | 11 --- .../Needlework.Net.Desktop.csproj | 37 +++++++-- Needlework.Net.Desktop/Program.cs | 38 ++++++++- .../Services/DialogService.cs | 47 +++++++++++ Needlework.Net.Desktop/Services/LcuService.cs | 31 ++++++++ .../TextUpdatedEventArgs.cs | 9 +++ Needlework.Net.Desktop/ViewLocator.cs | 35 ++++++++ .../ViewModels/AboutViewModel.cs | 9 +++ .../ViewModels/ConsoleViewModel.cs | 75 ++++++++++++++++++ .../ViewModels/EndpointViewModel.cs | 10 +++ .../ViewModels/EndpointsViewModel.cs | 57 +++++++++++++ .../ViewModels/HomeViewModel.cs | 55 +++++++++++++ .../ViewModels/MainWindowViewModel.cs | 41 ++++++++++ Needlework.Net.Desktop/ViewModels/PageBase.cs | 13 +++ .../ViewModels/PluginViewModel.cs | 7 ++ Needlework.Net.Desktop/Views/AboutView.axaml | 39 +++++++++ .../Views/AboutView.axaml.cs | 11 +++ .../Views/ConsoleView.axaml | 65 +++++++++++++++ .../Views/ConsoleView.axaml.cs | 56 +++++++++++++ .../Views/EndpointView.axaml | 19 +++++ .../Views/EndpointView.axaml.cs | 11 +++ .../Views/EndpointsView.axaml | 27 +++++++ .../Views/EndpointsView.axaml.cs | 12 +++ Needlework.Net.Desktop/Views/HomeView.axaml | 75 ++++++++++++++++++ .../Views/HomeView.axaml.cs | 12 +++ Needlework.Net.Desktop/Views/MainWindow.axaml | 57 +++++++++++++ .../Views/MainWindow.axaml.cs | 12 +++ Needlework.Net.Desktop/Views/PluginView.axaml | 20 +++++ .../Views/PluginView.axaml.cs | 12 +++ 41 files changed, 1051 insertions(+), 53 deletions(-) create mode 100644 Needlework.Net.Core.Tests/LcuSchemaHandlerTest.cs create mode 100644 Needlework.Net.Core.Tests/ResourcesTest.cs delete mode 100644 Needlework.Net.Core.Tests/UnitTest1.cs delete mode 100644 Needlework.Net.Core/Class1.cs create mode 100644 Needlework.Net.Core/LcuConnector.cs create mode 100644 Needlework.Net.Core/LcuSchemaHandler.cs create mode 100644 Needlework.Net.Core/Resources.cs create mode 100644 Needlework.Net.Desktop/Assets/about.png delete mode 100644 Needlework.Net.Desktop/MainWindow.axaml delete mode 100644 Needlework.Net.Desktop/MainWindow.axaml.cs create mode 100644 Needlework.Net.Desktop/Services/DialogService.cs create mode 100644 Needlework.Net.Desktop/Services/LcuService.cs create mode 100644 Needlework.Net.Desktop/TextUpdatedEventArgs.cs create mode 100644 Needlework.Net.Desktop/ViewLocator.cs create mode 100644 Needlework.Net.Desktop/ViewModels/AboutViewModel.cs create mode 100644 Needlework.Net.Desktop/ViewModels/ConsoleViewModel.cs create mode 100644 Needlework.Net.Desktop/ViewModels/EndpointViewModel.cs create mode 100644 Needlework.Net.Desktop/ViewModels/EndpointsViewModel.cs create mode 100644 Needlework.Net.Desktop/ViewModels/HomeViewModel.cs create mode 100644 Needlework.Net.Desktop/ViewModels/MainWindowViewModel.cs create mode 100644 Needlework.Net.Desktop/ViewModels/PageBase.cs create mode 100644 Needlework.Net.Desktop/ViewModels/PluginViewModel.cs create mode 100644 Needlework.Net.Desktop/Views/AboutView.axaml create mode 100644 Needlework.Net.Desktop/Views/AboutView.axaml.cs create mode 100644 Needlework.Net.Desktop/Views/ConsoleView.axaml create mode 100644 Needlework.Net.Desktop/Views/ConsoleView.axaml.cs create mode 100644 Needlework.Net.Desktop/Views/EndpointView.axaml create mode 100644 Needlework.Net.Desktop/Views/EndpointView.axaml.cs create mode 100644 Needlework.Net.Desktop/Views/EndpointsView.axaml create mode 100644 Needlework.Net.Desktop/Views/EndpointsView.axaml.cs create mode 100644 Needlework.Net.Desktop/Views/HomeView.axaml create mode 100644 Needlework.Net.Desktop/Views/HomeView.axaml.cs create mode 100644 Needlework.Net.Desktop/Views/MainWindow.axaml create mode 100644 Needlework.Net.Desktop/Views/MainWindow.axaml.cs create mode 100644 Needlework.Net.Desktop/Views/PluginView.axaml create mode 100644 Needlework.Net.Desktop/Views/PluginView.axaml.cs diff --git a/Needlework.Net.Core.Tests/LcuSchemaHandlerTest.cs b/Needlework.Net.Core.Tests/LcuSchemaHandlerTest.cs new file mode 100644 index 0000000..62ab554 --- /dev/null +++ b/Needlework.Net.Core.Tests/LcuSchemaHandlerTest.cs @@ -0,0 +1,27 @@ +using Xunit.Abstractions; + +namespace Needlework.Net.Core.Tests; + +public class LcuSchemaHandlerTest +{ + private readonly ITestOutputHelper _output; + + internal HttpClient HttpClient { get; } = new(); + + public LcuSchemaHandlerTest(ITestOutputHelper output) + { + _output = output; + } + + [Fact] + public async Task PluginsTestAsync() + { + var reader = new LcuSchemaHandler(await Resources.GetOpenApiDocumentAsync(HttpClient)); + + var plugins = reader.Plugins.Keys.ToList(); + foreach (var plugin in plugins) + _output.WriteLine($"Plugin: {plugin}"); + + Assert.True(plugins.Count > 0); + } +} \ No newline at end of file diff --git a/Needlework.Net.Core.Tests/ResourcesTest.cs b/Needlework.Net.Core.Tests/ResourcesTest.cs new file mode 100644 index 0000000..e0ceb0f --- /dev/null +++ b/Needlework.Net.Core.Tests/ResourcesTest.cs @@ -0,0 +1,25 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using Xunit.Abstractions; + +namespace Needlework.Net.Core.Tests; + +public class ResourcesTest +{ + private readonly ITestOutputHelper _output; + + internal HttpClient HttpClient { get; } = new(); + + public ResourcesTest(ITestOutputHelper output) + { + _output = output; + } + + [Fact] + public async Task DocumentTestAsync() + { + var document = await Resources.GetOpenApiDocumentAsync(HttpClient); + + Assert.True(document.Info.Title == "LCU SCHEMA"); + } +} \ No newline at end of file diff --git a/Needlework.Net.Core.Tests/UnitTest1.cs b/Needlework.Net.Core.Tests/UnitTest1.cs deleted file mode 100644 index 06c2cce..0000000 --- a/Needlework.Net.Core.Tests/UnitTest1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Needlework.Net.Core.Tests; - -public class UnitTest1 -{ - [Fact] - public void Test1() - { - - } -} \ No newline at end of file diff --git a/Needlework.Net.Core/Class1.cs b/Needlework.Net.Core/Class1.cs deleted file mode 100644 index 5aaa21b..0000000 --- a/Needlework.Net.Core/Class1.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Needlework.Net.Core; - -public class Class1 -{ - -} diff --git a/Needlework.Net.Core/LcuConnector.cs b/Needlework.Net.Core/LcuConnector.cs new file mode 100644 index 0000000..475c1b7 --- /dev/null +++ b/Needlework.Net.Core/LcuConnector.cs @@ -0,0 +1,10 @@ +using BlossomiShymae.GrrrLCU; + +namespace Needlework.Net.Core; + +public static class LcuConnector +{ + public static Func GetProcessInfo { get; } = Connector.GetProcessInfo; + public static Func GetLeagueClientUri { get; } = Connector.GetLeagueClientUri; + public static Func> SendAsync { get; } = Connector.SendAsync; +} \ No newline at end of file diff --git a/Needlework.Net.Core/LcuSchemaHandler.cs b/Needlework.Net.Core/LcuSchemaHandler.cs new file mode 100644 index 0000000..5025ed0 --- /dev/null +++ b/Needlework.Net.Core/LcuSchemaHandler.cs @@ -0,0 +1,49 @@ +using Microsoft.OpenApi.Models; + +namespace Needlework.Net.Core; + +public class LcuSchemaHandler +{ + internal OpenApiDocument OpenApiDocument { get; } + + public SortedDictionary Plugins { get; } = []; + + public OpenApiInfo Info => OpenApiDocument.Info; + + public LcuSchemaHandler(OpenApiDocument openApiDocument) + { + OpenApiDocument = openApiDocument; + + // Group paths by plugins + foreach (var tag in OpenApiDocument.Tags) + { + foreach (var path in OpenApiDocument.Paths) + { + var containsTag = false; + var sentinelTag = string.Empty; + + foreach (var operation in path.Value.Operations) + { + foreach (var operationTag in operation.Value.Tags) + { + var lhs = tag.Name.Replace("Plugin ", string.Empty); + var rhs = operationTag.Name.Replace("Plugin ", string.Empty); + + if (lhs.Equals(rhs, StringComparison.OrdinalIgnoreCase)) + { + containsTag = true; + sentinelTag = lhs.ToLower(); + break; // Break early since all operations in a path share the same tags + } + } + + if (containsTag) + break; // Ditto + } + + if (containsTag) + Plugins[sentinelTag] = path.Value; + } + } + } +} \ No newline at end of file diff --git a/Needlework.Net.Core/Needlework.Net.Core.csproj b/Needlework.Net.Core/Needlework.Net.Core.csproj index fa71b7a..c561f21 100644 --- a/Needlework.Net.Core/Needlework.Net.Core.csproj +++ b/Needlework.Net.Core/Needlework.Net.Core.csproj @@ -6,4 +6,10 @@ enable + + + + + + diff --git a/Needlework.Net.Core/Resources.cs b/Needlework.Net.Core/Resources.cs new file mode 100644 index 0000000..94922d1 --- /dev/null +++ b/Needlework.Net.Core/Resources.cs @@ -0,0 +1,21 @@ +using Microsoft.OpenApi.Models; +using Microsoft.OpenApi.Readers; + +namespace Needlework.Net.Core; + +public static class Resources +{ + /// + /// Get the OpenApi document of the LCU schema. Provided by dysolix. + /// + /// + /// + public static async Task GetOpenApiDocumentAsync(HttpClient httpClient) + { + var stream = await httpClient.GetStreamAsync("https://raw.githubusercontent.com/dysolix/hasagi-types/main/swagger.json"); + + var document = new OpenApiStreamReader().Read(stream, out var _); + + return document; + } +} diff --git a/Needlework.Net.Desktop/App.axaml b/Needlework.Net.Desktop/App.axaml index 6ec7d0a..b7d474f 100644 --- a/Needlework.Net.Desktop/App.axaml +++ b/Needlework.Net.Desktop/App.axaml @@ -1,10 +1,19 @@ + RequestedThemeVariant="Dark" + xmlns:local="using:Needlework.Net.Desktop" + xmlns:sukiUi="clr-namespace:SukiUI;assembly=SukiUI" + xmlns:materialIcons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"> - - - - + + + + + + + + + + \ No newline at end of file diff --git a/Needlework.Net.Desktop/App.axaml.cs b/Needlework.Net.Desktop/App.axaml.cs index 1186c08..932f95f 100644 --- a/Needlework.Net.Desktop/App.axaml.cs +++ b/Needlework.Net.Desktop/App.axaml.cs @@ -1,11 +1,23 @@ using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; +using Microsoft.Extensions.DependencyInjection; +using Needlework.Net.Desktop.ViewModels; +using Needlework.Net.Desktop.Views; +using System; +using System.Text.Json; namespace Needlework.Net.Desktop; -public partial class App : Application +public partial class App(IServiceProvider serviceProvider) : Application { + private readonly IServiceProvider _serviceProvider = serviceProvider; + + public static JsonSerializerOptions JsonSerializerOptions { get; } = new() + { + WriteIndented = true + }; + public override void Initialize() { AvaloniaXamlLoader.Load(this); @@ -15,7 +27,10 @@ public partial class App : Application { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { - desktop.MainWindow = new MainWindow(); + desktop.MainWindow = new MainWindow() + { + DataContext = _serviceProvider.GetRequiredService() + }; } base.OnFrameworkInitializationCompleted(); diff --git a/Needlework.Net.Desktop/Assets/about.png b/Needlework.Net.Desktop/Assets/about.png new file mode 100644 index 0000000000000000000000000000000000000000..4291c01ca94ae29170eeb01f5119c65ff5c23016 GIT binary patch literal 150228 zcmYhiRajf^(*+8}9f~^?in|moP~6=i6!)SDR!V{5?jGDFxFt|1?hXM;DBePV777*g zq`&`n&T}qulZ(CIy=G?3%$j-Q^>x*V@agc;(9no9)Rhg<&@hYt{cxY4{=xP2??*#J z4{%db($`Q@V$t{Wc6Rf0LPO)4&rX-o!gxgyJ;3g+%*IXltUT>mf=XmLOU~0*^quO@ zXgW1s2(qR+NxX_|vUMP9A$=1{`GD~T%L?n2J|>x#$Lr*%>lCu5$^{z|XUYw~V@TNXt-qU5V0L-Bj9E!AaK7#hRaf3ImnPe&TQDxLdp{@dpy5 zi~m*0ZD}XKxa@!Xm)z#9tGHK`W)aE|cs}YD{%B~{D*t}yz5MokXlM@#8p^MXgKSRk zkK2LMplzHzmG?3`b}|KM=xHO2KIlIb(R|UAGsxn4ctrjRXyFI`j8q!vg}T&inWLjrY~}E;O7c zL8PySWq>jw=NG(RF26r*hE#wTyUq zOZ6xaA;dbA^rxAxK7>m;P@^V8k~>9f=P(2^?EO&vKKIavX31-Tm%uRB@kPZ zH0=YfG+OHi_|)0NLfg_Dhk2p~l7s>&9lK@qn4Ro1b|Snc7~4k$!jS!B6xgqv%lBG) z2l4VJ;(?L6tc244nNFn-6!b88A|P$1xf4&Vfn!3RoB@VKP1e%n8Xjq!oJ*cu|GfQF z>Tjr~3xm#)@^%L-2KL*l9MqQ_t=OR*2oH4`e<4qtNoa*bANYbn9ghICp;P0 zqz#av9ohu7Rf_k#y|vn!e$Tdd;be+TRk$@l9##hS6S_%!%K%Li%ci0Ye=?#G+d4nx z4tOh(Qu!^QMFl*|nGA@)j5CVrIE9vlB$>TV8HznHMNH~hlt+wCQJeZkXKp-iD^k8B z!IympGE4rIYpR3e;fzt}p$>cX{ll-Terea+AUmnhZ$z z_gt42fmZ*60EZ`Pj6ne{((Q$_$bmWIC6F`CbBmZDjV=S8NU0LfxgCqIT zE(-EE?#7i9}q{vxSh6lcSy)jYkaP(Mt&h9_?`>B><=27d>(o=!3$85FP z9!CL=uL+v4(OT9sY=lB?0H(oLG*h{t6@}qj;4Mp^L&E+!x2Cv~0&(KFrM4!0k0H<{ zz#&mfCOGebxA10_&w2_C`;e3<3;s;S7{OSRdB*{ef)+sMSQ*R%rOQ&w?aJ?%SHXN8 zZWPC#0<|`q3l@|vZhpTGo+xU}zuU6519j7gLpte!;pCvL900Lx&z}Qv3?iHgY=y0y z6DX{^Uju@~R^yi#IQspQ#4K)_hwAAE%$;79@Sw392uFJNE9|Ot{%j^)q2<*;>)<2T z({((f<;eo5uIj9(>x?)w-~+MkF?6wwz~Lak+v>UHxhhxC6i#$X#Rf25bO3?Mie z=VEl#Ctg$t=2vGg4jx<%%dQ}QaOVZmo}o7?Vj(v+_pVqRbtRoBp*E_HPsQ* z%nSWL2$zmFU!1R1sKUK`K1`%6u??}^VTv&n(xE36Os+H{4dLRSdUbMLsNIqqPO;Be zY)%-N*p6XMgb>V)sVF^H-C~W+K(*SomirHo;pL%D5!9)xH?ENkb(At*;HTL6meRja z6i1bGT|O5Px@9>+u&OS5Y|jFF1uX_{(fI4!(^O#)O|jB(HDi59j3UrcJ3*M}Y8_tU zRWzJdqCCvkX}79e5jFYy^#*Pch4Z#S0K{b9>!lCy4EszG4$@tm z6?}Y0alyJNdP$yHqyfL^{U(jcZj)%en<*j$*!E+h2kNQGLnrV>NV7j$1EZ{A>2840&v6@NM*mYy zI4g5EX#b_1(D6|)P?joFo(F$S<_YFo&XT%QbVBq{WAt|91Got_=UIOC)AJ= zH-4)W6WIk~rLZVhMvvOzm}CZXO$`9+p=GOi(-P+a6)_$39qQ_EsdA5Oj_N#CL3$jcG;$B{*@ zMNeUvsK&XX0!f+{ggi<}BnJTkPUhm4J@j)NH zsb3JgPGuq1CFS@<`SqJ!dI$J1zF@rI#Ja*m!Zq#)#ns_BxMEvg?sMyB9NL@fEfA%- z>&`uZQNU7Mxr1IvZ<{Vdorc?p|C(T}?AXj;ayjhk+>tWfMOB(A-(b)ldfI+!dZ~9> z6J&dckB?&tG^ES-k-m`95ku_f4jg^)O?x0v8C{4%YW6+cn=uVxaTm?JcVfNvxjnsP zQ`#h=v-cdewv`ZfX;gq$6@WnU9xqLuH0KIEmxVbH+X5;Kp7%@Y<2tyUSk+mx>NK4L zB=u&2?{G0}OOp`56>z?Y{OIDf!AIz_h6}l_Sv%&qL59GVFUw;=|7Mv6>A`Dh6T||~ z9EhRQED-fJOS^ASamFB~9yd)dPcpz)1;w0Hei1jX@6SO?gD-_f(+jdxWnJzgrySUc z2y0<3d*cQLLlCcYxZ;%880#5F6b4e4^U6R>J5-lECV+O7Jg6pu0pvnOhq3#QN>`FR zBIWgE;l4XIo5>z$*!KoXa9W42QfCzV%7_KfLqqtVN*?%%ltCa2s;hg=9Ra%iGi7?3 zo|ZdY%Jft*O!^{ceKjWx*9P0yG6wRQ4SZH$;rO)Y9KyaQ9^7fHJ;D7q*Cn@v1^|nA z*{F5Ob1eO%Cp;!_r?(B_Z~P#!B6_(y*ay>?Ob`%vQ<&o?Q?q=%iB3*OVJyq$vIF(~ zinIN)9p>U(zyq;KgDYx=jwyfldK#9E!La0&3Vg8(6xSl9Q^|0LMRaU~eO=ix|K{qN zNOUCl^Q*q0`v+eVcLkDRa0r_O|0>TN@iQFa&pw{B1R`d4{A)g|Aq9s1=%Y3GN~-2= zNOw{6h9V2|{R%3{kBO{+`xsVnrY3Z#O#)+;%A0Z(sY?IkW$17=D~=u?$R((D8AK*Q z6O*RuU>u6mEYkygZ3VtMKX4MhT9R1T!&+JWeX`?7wERzHIg4Ho-3l>YwCb)n0U0Cj z?h=z%2f3kt4+rMSeI)ySw|OK@4~^JTf-+c;`-v(yA$>yG7>(fh;wdvc3%tFGBK7?* z%vCdU+Gh)1*$H?W9Pia(5zifXkLZl%n-p#oU!W0}xQ`eBML%oMmh1KjXB%p%;fmXaSWC5^*ezZU^A2|BZxfHDfwn@scPNsg{m-0 z7$Ow~2Kd|C8ZIr>%Vud7yb~jm-sJD0MGwF=|FNzN_@AY+^*o{s(7~#O9`GvaBZQYq4%^VZjeATnUZ(8-|1W*aZmPW1}4Skl3^$|HLfxrm_u)LyyFVzvu*z{rxxR) z3}zEcD?^fAgh%l)^D=O)fdciIGu@tg9=`t^fM&4P%uQMi+<`tz8UwsDJ3J(1E$~|M zzKEzB14~MOaL{~#DoYfZRfc(T(YP3X3viEb15`Li%kVT=!1Z3PlwYTkrSFcsQ3ff+ zavWcJy7eUdkC;S6FtH9JV=)}W3bBN@`X+dV{r#Q~tV3$2)zpUMg-oYz_B8bDyu5ay zU=2+Jyc_vTfigURIk8HhTwCtro%kcfY4g$X_~0tr2~~1eBsJv)6TbYC+|)|4Y?t$9 ztj|hi{Awd!x*18T{q%Y9N`1Y^$=9xjW@Tp_I`Y36T0{)LjcBdYnuJerpKh5{ZIhEh zC8dl(OSaMML66a0hh}B{Yk@`-C>I!Xf!&vf}5*Fgoelp17M90V&aDIcEY{t6baj#B@gYZ8K zdXxV(2xpXgGKld)@gxD3I}m{{E8t|$hyOi6#y33secf3LDWT(HycSELZZl>iIG;EJ z+D_cWVgmLQPDasV0=f4_G;QuWC_;H9Uo4v8d17aOo0o>)c2@0wIHAs+Wvy=Kr=n3S z!+PzIRd(QFiLiKa?oO>J4W60THMKB#mOoPmV>0Bv^`T94#Q1AY58ou35-AQKeew?q zv7!*InPqdkcF3hXxHz3;o={sHnUU!%4N~vhYkj8yvlrK4Eu^U9DC62a-*PkT`qjW( zL3oi=7U6~`F)4omyw(dDiU8GQ&T$m!a`E$|__5=R(fj5fmru1g1BdQzn`L>-bdH?t zIAc5Lvz~1<5;Q|Kp>ya0Z(W1@i@PDHu4lz5A^S@NZN9|7{Sv!*<_Vhr6N{&Bt=_Tp za#?}8i_^=_Q5C%E>grJ?;7oA^tSeoJss<)?XaJv%6`u&o^OTwT;xjZLnL8A^jQ4&Hf@omm&vD}Ok+*6u;(a!AR|IS_=-k@rlnu`$L0X_a}m*{=V46ZW8*{Ef9Y+ zUaHq;X;_{C3x5$lFt2jz2i3kkNjalHbLOhiG!O)6l5chw^f?Q5EX`W#&&G{MxW-F01VLkAs)|ago zB}({sPB5&n_lY3^_BhYvIOvDtrO)NGrS|kpV=acdeeQO-}VOWq@^km z3dx+`AI-43b$7!p&`4~r{&xy_mOG{{^I(@pi# zH4Gq3f9s97aI6q`wf&waM@9@qp3<4`yWO+L|GFIw4PB>A{sK21?xqD`F#6pJRRI0t z8Kdfc4*r0Bf4je)Fu5b?jRS^??wghH?JROCSW^70Cm%PLmwJx(a$lEjN3soDISOad zE>Mf|Y1v!P7ply$y302I%n)9R9EwGE;jQL|U(;(pZv-+%l>~aN;oX3SUN@)zGd@1% z44xxizDd-^laKBP4Jpz>_n1HTvPgV%4v#A*s>w^fI4+yaO{TA{0&X7%?F__UgmR9* zF~;UXb@|^aoMM^Snk45D3BkYL<^AZ&2+$v^ZXIIG(?dTNi4RnV@m-=4xp)|}jX)h4NM-j`x8zIEp)>~PI z*GDlw$}9;Dz=%V_L0r{yf-zqbARqFM4o{%Lw}%TL_Hd~PKGyaGA*;dQ1o?dk1HV(} zgi7G$a6RIBjk(Qn4T5mbY78_hDu6;>Q1(+arJ*zh#iCjm9stK8+{G-i2}vk175RKP zh5!hD&x!3z^LiVuXLf9IB3fDEUs`c4ZTWUz2(O}jy*4h9rI7e=xZ*(@~X5!D~SiNeU%)m_6vvQctQYSaT zeS5mn6)hI5U`U0ML(403*blB(-{Dwlze_E8sl;wfAOEM zXV

2v(F`t5g^)Qpl-SOQ7f&{9fU9&+*ue$F5DgM;jq+C{X)(Td%6E)(017?LSh3 zPMNqi2JEU@`$1|s{(rWc>}xzZutW8XgbILh^mZ0`SG^r7(!q_YVQ(F{l)?BaXqnOI zhciO^I*79opIueX%`AN_7gK7Nx+=_XMARPQ?De5e{S58RBAB!k`;*-EcFM<=CS1!;}p4WzMmH8(lhHqU)aDbUZ zvNyY9Kehjx^yRujI|MRMJ@S9yGRbautl$g46;-wJuW3F0?Bp4NRZUPA=N}yT2lR@cjKtH;FVh~{u#39lm zjk%SRg&^n;P2A7Y?;LHfFwNj@UPDC@Q^w+E60wr~?^d05`B9;RbTCt!>YCAbVC5XF zUjgjyHBM9`72&Ij3vou@5UVSoPPg~ze|k}p16O3T?aY%f+>PS8PaCPj9$!fO$MoUC zvHrj9R8_!dhGe#eZ0s7Bgn=dnQv*rQfMO2s%$%&>g=5Hs5~TDR_auLO`1VX}W)c-K z2E}Pinqk=TmW`+1LGcvI_Z8+)~SEgn`l3!R62?pV1t~?=SM+o(Lkwh;vqoXQCUx zp3{wyJ>hLjX0inwbXFzNJ9V(dw$HZR>L?Rg+uB&8^m&*#kdZj#5AChqmZM~Q6YhUs zkH#x18Vqm&wNcG~4oH4-C0@50lD3%JEfNxcp_;Qbm^NzI`}P{W17uK5xKQQBCQOt#xBdMTa^tG()aNVXQ!1##WcbJX5_2V-$o= zrPNhJ;dPEKivP+vE4eBeUv^(W?8o`W-5aw5Vf_Cu$kmMIJEyfe7q~L`vP@p(J>9Tw zn`EG@A(!s`&x!HUA=5q>P-5&t#wAc!miAk2K&)-&j5d%_@pYzUwh8v9&*#lO$f{=& zZ3o!hN;&{DdJET_RwB1RWZVn8xk{?@H{YbS9+_VcpBFxf@v5cG815|;qJtI-QU ze_lme45k{cJSj$(QUi?plr}Zx;i|8$Ie=>$7MuNdJWOKZ?^NxxIj7hS*;h^&`m46I ztMIv3}!3NPbcllvdv|8OqI0!FwEKcAh)gOI91OF8bmI zE^YZmJWc3m3A~%TeBm}KLnn~tY&Hdk59X5`D@2w18Kx%Wq&l zj+|yw`le6Z96Jd(eT-#ueQa$}9SnlX8u0Z?IxSRyWCyJt>G{cnIvbEtX8SMUoPA|KMb$%TL z>NGnIcSrM#gB#@i&#N)C2TTMf$Y^z!KsBw|UIl(*Cz(qv+8@L?_+gA$FY~c^cQswC z>trsHt}~ahCVF)T#ZAlFt?DN<7gTnQ!3<01rfCQkVUoRC(@yllce(=CLE5I!5I-2qnVccc(jJz%&*VB`oV4} zgZ+Bm{+g})n!((PM63c1_N1>s+TyxRjv*k<+mYjnowkL7xHsys!qSK^M#8YcQmUDZ z(o&=+w@({ykm!tP+-Fkly9R`IK*YN)_@B##WQV=r((JfEfVX#o=@>qsJMF zM&ncqd1bo;+tpn$03mi+zQb8}rcGk(@(I7q?VbRQjanP79jqCg-n`a?>uKVw;d2c)VScqGI#K~aX1TB~7Ca_TKMZ8tS>a%%Af}~hxYkobs zAI*z!3uU;}CDqg~B*UMlD*U#?5gQg(!WGeI6%wadO|k7S?6zNK+vI4FcAF?U+nR8& zTmS8&`t;1AUhvEnLy1JuoT%?@fzLc;+6^Tc$<}K6W{=F=#OFaNHehFnbLD=ND6tzg zW=cx;_@(5JbE#?$ifT-vWR20|DBWt+WC((CPni(_mwHJGcW%S##_VE|7tt%F`oSKa z#?TW27=N+^irH!C7x@>2|Lp#(s;(J%uu{_Mt^V6c_`i>{kQ%hPC}^UfmCmDf z5GT5}Ek~V1kt;!R<_3dkK32BgrCKDLz~F6_g(~NE&ZK@IqkcCg7R}OmNM0dmBn(h) z5xA9H*VZP?_Gg^X3tjmWdPcMl_nQj1mYhFx^)g5`-Kt5V;frLt+hOk$XG*;U<1YG_ zJGebJs3BqV-*Ol}AJsfa?vr)jV3Teh27|>Jk6^X{Ro=qn3~KrYiPBh{C8g3VUk!K( z)kXJbRwvGKFQR)9Ni}RSD~$zk>HGmLq`rXjtlz|uJY!d3tTOv}S5ML?xF}Qapo7x3 zI?W2+0VTfl7)@8QqL9Gg1LS_NV-?_`Ge30Y*&#*4NwE^v7_NAZhVZUf9Xx?^hd0tT zh{DRANDMw(e`p)o@8JA7HO!}Z|1QLIz@Fi1ZE!~z z>J$_FAd6rey^8n7}$1vQe8=s(3Ht~b~Eef=gw#;pGgJrU??kZ!f`%v#upa&$iXW#%^SUm~@A$ zj7IBbs1muspMTZ`_{HmQ$~1<7E7YfT4_%d$2j$cmB|A?=h5<*PS3$Oydc!JE;-oFy zY;i#aS?>}zDti+~+RK7%)x6mse=a4atbGH|2ud&Iomb^bPjuDjpMU)3l_=H&rI>Ma zDrP7EdXTcU+>2PeN`Uxtq)3ca8lvL&M^&6~j|Et>t&TpzC2}=L6%PifF-HF;LnBVRXM%`|yU9o!U;~hXRG69R_lZn|lzG1xg%iDp&LEDED!D z+2uH$@^d(DbDT;G$Eq-Yva^wZ&b^QoSh$6M8Av2V3fs^M@9drH0D`nA4e%@h^Qh-) zg=#DofS7`KIr`cPC0}@!m&$(~Oy_BMgZ~M?IELIRzynyFW83M~q%0}YWCHQR^bNVK z*LvqY&FrB`jR4$UtWL}4TK|sMr2tzaCNqL(pW8;gs01KorMB_>Ker|Fz5e}KUJWkp zLs-iYTT8Z%la6tvb(-L?jwMYTSgu=%6e67$FMl!UZX-n{uGqHXGVN8Zx(^AY%hLfKa)?;Jq;o_iU0g)tTwBG?gh3AF^C_>j! z1>neBJ-qJEIuY6WbXUC^G-sx*%_07Z!R0hDB$ zlF}G(nP657k=!TFPku@T5`|^>N`pkH39g9pVHP{tADUlAuX^lb+&_hB`(9w0*I|wC zD!8phD}yn>n*(HMYG+@3&{cYZY&YDSXFXxK{pAU|<2NB`f6W z$z89~BveIvxOsB)h;0=xVcuZRx~#~HNyAG*m1k_t;<)rA-I*@1CgOAqa4(cj>$GY; zGvT%Ml8tRha^4~0y6+$F|J1N zUW*tAK`E)q_7Fc3I&lpmmYFxn@p^aT|G8XMJqMx!?^J*1{mH)~N|)zZKzs9Zvs9>? zLH!WI-@B~yyXo@Fu)iK}exKK~@S(q5NeckCSdqp-Fv62-i>&q8oDEuv?alPz5#fJp zu8|NTcDIS|1rvSh;KdKX1*W}%wbz7eqJG}hmwys=xN+~Zlwu|a@(4Za05XffS;3Z8 z*5zXD_PJIF+3S_r#w1c$0IYXsHL_VEni6Gy4_;>rfXimv^maXK@H;U0>&_54NjDGG z3;r|#Tl?Ua!Ag#S@SG&EkSKw%%NLG0S1*!+N(034WJK>39%kK6IMk%AWI88Uei=!& zWPW>QGVx|QNjG;R-$F{-g0fzkn-GnJIxS8*TX}74#tCohJ&@atBeKnwarS&)!cXiJF z!`*8yNGLI~lTtML4XQx-<)gcT6Hm9YYoF%URL@rouT+?*TCt8?a1e+e{*G3$YsHKe)w!@r;)+0_%~h z=K&YD)ibv3Y;z5b+c#HVf1Rz?QY#)m*GRts9S5tnK{Mypwfq_%G?13u`hgc8NEy0= zLF+&aYrJ71r#X?D2KaL1|=vWXtl@nxseQz4V>uk6p zB{ZKtiXkBD*pp4H_DnT(`6Q15w_f)`<5;hocipvqAPv8W$zQ^#j;SI^cdICkzwmN= z#iYFP+?})i+^}vsEua%smo^~pWM1%Sk-jMRWAE^hdVijYkKgbjI7lWtNb_S z4(P;6o2wt#PpHslrPXYEe>S&y?B^Ls0__M)Le;ZBcTqf_FUADK&ZbCyIUbM6{*0)a z9@*8UHo<++VRT#3OOMbenGZ5a)~DUGv|daX=Sp&|i=)o-DGhx|;%0^yQ!69zL}5kh zfIyM<&bYy+?ZwZ3)o)3F!x4YhD#(Z!q`K;|wVJw!T67p-5OHt*0bP!-U@O^MOO_b}HoVNwu7EjL7ZJL_X~whN zAxNNQfDQx5*AvsmXZgfJ~Z_)u~fsxUdf{n)VO{db1GcF;v5`zN2f@-PmTki;O%%^Jvg z4#~H3qriIG{IqfDc`>!``a$>nNxE*b%*gK4O5iGs)U^X@P3x-7ZzK%0%}}h1|C56A zV@ZPd)~XGE`EiKFl3Gj$FBV{NRua|Yy^5k{)`Rcznjg}*?kZ&542EpJ!vD;W#rH`Z zDec(v3S&3!pJAWFzlN)q`nm*t!>jchY5MJWbf+D5g6=0r&W2bjhUBhR-VOdpF!cUj!FOl(%) zF(^}`W=YFYFg$-nm(j{3{Xhq%m#?e>B=PYKG~9eepmQ&9OYv>^M`*2thga@roxRrn zdVAK=eaFhA%Wu^15%$-2-MS{_P>jIY%C1bUWJ>1`_jv97j`d5QHU~Q+h!ASFiKV!hJP^$ zZ?z;5sVBIGxdicFMB75n>WeY_>s`YT83PQ2_LR!*U52sv^Db~)bq|s zd9Ts}0VkZD(3y{ZJT)o~FI4xvC|(Zoa4Kz!t8=%CtPZd{5JPEf}wkgP_<6xWx`G0apTq{PEhU50f_ zC-0-h*98l%V7AH}#`7diNqkk~wuH>UVZje9L8Ki0(FD629;d@VmIhqw2ox;O-&$`= zJDvG6TM3hCyF0dVq-%`kY4cQvy^^8hs?HT(FwneJ-s*uB7uMnCCIm&i!6A0ze8qLb zAYFr9^^@R#Z%9IvdXIWq!Zk#Fo)YfvIs#nw?=X9wr0-H{g-k z>^UN8S{bk1TYwd9y!v@I|M7Nh91Wth|99+!9crOYEkm@)2)&amCH` zYtjJ|4-XkPO$5KK+`{+bj3rPIUDDiijg5ZLuU1M?EOU{|m58pB5WZ$794A5=0@HfA zxZ%B44vUipvFlD{J&b#^7yXS9H{4CyPV&5hd7FzM!z)sy&GelU=|?ZsH}CY%DlG$K zP~P!jlHLskac0_f!bSuHNo~0j@h*?JJ&ATUapdjcV}{P*dA_SuuhqQ-G;9fcjo(`O^&fcx^5=IS6t3^NqLW9@ZJq$CazI5(UhsN||} z7VE}b0+lwScX^~^$wBSl#XK~f z3>Cpd)9k~I3aeylAu`;XuiUq;GfHm8;pTo+Vt1H7d0C($D1Ku7frM=yhr5r*OE0yb zj?^kw+Ky}!F#=-84OG}qr6ywreK=3XOtt;Fpy#ONzK@qVfIwn4iej;?#P+Ec!i$Zz z8GP-t$;J}%izsY}X^BDHik?OIUPl&uofl*V3kB7XtJZu!NDHvSlo6T*0c=)wA8M72 zZ);QZN0WaHNq&IYHX;?Y&7Sn2rR^RzsB)9uy5Z=Lg}2&PjjZIN6F1o6VFJ~+KHn8< z`&JUw)Z(dz*(W`(ArR$l+eSF)IUn*|y}n{SGv$htj@@jV_{<7AdG;U_;P9ej!A=io z|0!ulfaVyA#p9M0`G;gIg;1igKylQGX4b>J`o@^sD_y3}xZ%(nJ6lbNDELbC!*~mDCq`zlzEX!@S4RIEKnT=q$t2X8iTY zHHX`vG_aCvr%8TVuui0tpFv=hMg_Dgta7g)ClCY+&dykOF(KzA@>P7{FnqZFjA30b zyv;HWTjyRPy(Dn{#i*j<=sqBy?N#M#(m3*Z(;@y!*b zmEKwyz@_W}>TPUki)gv9yr8l9Q#tSwWFlNu?8U#46jj{X78I_H^RM5L93^#1nzTgl0bLv8306Z>s!I zhfRQKmLC1e(D<=r_|Nvu%lvCI#cRAb#KN>gw8*a=0zRR#AkJo(tL>SSsSosXMu5$V z6opo;1COoaH>j;8;m$Xxs#QP&LD;J*6gDG|BCQfne0iNENZOPXLLtrQ3fiXECd``D zH~8%zyZaAnDx{~ZDRI^j$6h`W#xVK}lwH-_*N%&1x>SqOxN49hFk#R$!&k%PvPFe( zklF>>nC-DVz6i{2cP7J`x(yGorjGl&n7L8LJ?7t`f5Q{(%FVV+=5_S^%DXYzpQ6T& zm%U7*8<}-Nj2QpyD(1Dfi$iVjwRE(Q3`E@7*L12*fgluyNJDi$rNnUZ?1nE92Y%9J z67!7*W7M(rV5jYx;8UM(HjM`?w<#TU)@Q}f>qk^Fa5|k$_Nl+hRCjVxan4G8iCejO zMS&S?k0S0pTDQZXyG!`J4E4_E)ZfNg56?y zfzq3Uyx%tgkVgNWCkO6AfhXEPaElSj;ZjZY@dFC*#;xHS>D$MFm2 zi&Yz(0%iP%;RLka?xBdwF~IfK#8himuqWi<&(mACCM3h&Z5?T?)yK_-XlaDFmW)@s zK=U`}75C#ah4Q(w|M%Ik4pGpcp74RvEN(UC-1S|S_FTcDg;nhUF6Tx}RTm-)6cq%wvS$o?psJ26l`2WZB723-Kv*82P0#h;I@;A{R5 z$sJW6!BZe0gqMR>^pTS=mRi8tctwiJ;X5V?S8N7$lFE^IV-`*8KRD4cC02* zQ9b9UsIK%ilW)FGZTpxah;A?6G#8|K#dfVVSc{<4gspODtDV#MltVs3j7UMmDe{#r z8?0A;x|Kc&(dHF{H=i=?YLL27{7E&8>rW{`9;h{!Dn!y^aOh#-d1oj&mIW(OGlXwT zrjCY1&i|K5?#*^i$>MA4K)ZsAi^JyW$B5FW@Q(*0UQccG#8S<%V z>FZW3R-9G<@3iq94H+}lM<@CLL|Lbkz=o{Vo`w>$xxb{)p7WX2X6e?F>H#xCcfaRL z0xTyClNjNPjsCTaKSN@v#;e+_gh3h0DV*e&UG)V7XbMcad#s*iOC|xfj6|`yDKA^nQ0UMJaX!3dq&xf%+G&Hpb-(z;y!%+p+dx1Q1Nz<{KM#)3UPikr6}mtWfx&Iu zj!q!ae=kc2h6{nR@V{gb#1O>}?;6Q}{gP;)k*-@@coF61c-xG@Gue`fqY2f0PGC6b zRN7w5FB!bOVXEB_^*yD{JQb3?4b~`6(-?JV%84TE?Oq*jEHOKB+3-?2%ISk5T~{Za zDQ@u|Y|#=rc-x^OVA z6^)+Egi%jG9U^bMH3Ov~m>ljnBkUuFDqT>HJoBELvWk3@8~ z`DwDIq;@%L%3+$*{EUOP5@u+G1u+q+xF$e43TxSNo+#>V8e5Z{TOWR};%69f@8; zK;<=Zy~Wu$;<7ZJ+PBJ1i_+2D>uwyP<>sb|_0jq*3G9{u629?_xPLyyOAerBtI2qW zvs_F~oCJ*;&w9#*A^wYi14zHtFSkM2e^U^CTq)jkhAGp2MlrGFD`7JI8%1{-;sZ zGwFVq&6>i!B_Xtm#4VQ$l!7RyPLRfV{1g8T{mLifY;en`cTE?0w>lTBKT4iXw!4&I zU`|gOXIa{LYKt>S>KU8M&UTVgJpH}c9xKDg(eqqE%i0U){$%UNlg!0WAEvd~n%%-m zPtgMnpn!K9V+gDdO4`y6f-V^UW-uxhDakPC-$sDkE|5_jmQ?G{byVQ3iBk3x1XxeL z@xx3(;21JWJs-9n>b1x698!{h0IO?Q=&pc%26~qE(H?Hquf<{fZ3$cjSUjAoUep zup9oG*p~TuD4Br()Sv5%$@BS6=9Nn<0S4|c{Gpx_%{0|2L@L|L zo=-U%qGaI&qVfXI->C33m36pJSYbBLzv--<5mrctl4F^_{S?>0l6pS*iosF%5~Vv& zz5zEB<7$-Np9pGjXf3uv0|LEo1s;i&UDE%3Cc9%4yv=Ab7BtU!LDS(I4=Bz!WIK`G z_0s105ozF}Fy@!gY2uq0yzyCNR8C3!$<7R{UkY_+E~p_=H-w zo%&@`@Xxq>rs=hQGDMEAfp7!UX8K^ulcV;4zoo}FJxWLTh`Xc4-q$zN*GPOnN$c~n z$kNQSu?#lF8hKd^d<@2NIb-*YjYz)Jp+kBr;coNjP>-Jp!oKUu@X7Huobun39km(; z?C+%B)z_Hx9TfZ#|DcvUo(q?=SOuR`0LbY@G{DgO%sT&EAL3|DuRM(He;-E6BDO*tlz@QgN zS8oPvN>#tipP?0u)IYBSvisSy>p|UTRa6gEY!TABaW0M4#KHEC%UG(5m74)9CRA$z zQ9$X9!OYAtfXoT;On&C_ArP@u!CQ$$^;Xa0sL!z(W%#AYg$+&MyE}DpRz0YtM?*t6 zS?dCbW@5$E%j&P^(`Hvg!BuUBkLUo-;n!s@2INvjBL&++?ID(^KAbg5TSwJ(M{dIB$$_F{-XGDDQ-l}eIO0_16Or%+Jnbzy3A^sS;800$!` zTo8Liad&$ARm5;4gg zg@vH4Fx09pK6EZ0ziG%1s#|5GwwYWP1nl%Ltq+Q%H<*m=glH+Ofw11yMw|_)I?E^b z|6A=D+zt3G_G6x*%R@VStgW&ITEQVw*VESd41l41l2g8uAmci8@`Lzx^D zDU{$M19@1|VVqib_d@pqI22K^cxWMGVYPWd0UqvsEBOu8Lxw&-n=Gtvy}z7!CU&JL z1Lku>#SG>Pzu)iZJes51`3vwRF&EH3?-FtSY^7|+o(zsA>8Y?aueS6o$@RGhc0P=X zt~~-}pqgYsA?gmNhdorVI>ypJ7l$82O{y66P({89*rD}-Ne{jPe*GX=>zLzbVo;Mf zXHajaJepZV*14LE{dh3k?khRcWxv!y{K~~illu{-5ED)FK$S_gW}-Jkt>-@^Nxq_yPQsf#d}wH)Jb>L}a7 zbfkrm-exNhan*QM0r~l5zi5i>sULlLb}=OY&mi#6%KYEJS5%24?i6Xq#L>i=G>uUb=Qc z8l<~f2}P+zK~YfRx%vLy&-;0vf8gFdGjrygGjm9vt}{ z$bHEV7lqmfA-SPgbrV2;qfG}>7ABr#6#u4;)<{mo2*)`?6;BYfhAT{v&GClUa$pJ~ zl8Tt=t4ns>7x3+Bj zYEUV6_9w4>-b1cHemKb*Jc2_z7CW$_{veeL+u&(d zh-2s9h{HTa9BeL9d1KdeY)#9?OjV@D#cS#TSn^6VfLl?C?*gC8=P%GU4=G12uQzgH z1sagkl)`W%stj{r06H9KPDsPe=e2!5bL%)fcTuUbui|uGI!c+3 zf=`M(X`a-(v{vA?5ZS*E;*Q$Oyj&d@0Z&~n;hIaErIf6P!mfkI+_x$vF66S$-ccC$W?`1#%^+2R4o?HwBc03PM8$b>lpP5m7;Gq$*7UWMN=G z)n&YpY^ErK$BV?TzaT|yS^9Z?a8#G;6N&zFJpq9J{YO#^Lms4XqAT!`8+neL!{CvZ zl>ON!h)@;IRYD!5jd!Y0F85NnBY7hh2bxSD_XuG=-=JKi=5Y7x@RUot>m!Mt%egdN=SGAermvrOH6Sv3T{Xo9H3~!clu8WL@ zZCCE{lxlg)-_crJHbg5n4Ap*YokS`=K|5>;36;(aH2Rs%PaiN{#p&KQnEbYSGEbm4 zreiqc()2?aKo-t61u5!K<5@guq!f-bmgo9joMMC)jcra^r>(&HbJf zn{qXrrpE1ADlGi@y})+4eG*5#H;$mNnw?Lzt#Eg}s0DnI* z4>55nzT(2qCCQkNs&!bm<7D>pk#2hTD)3=LR+gPa$V<-oH-tn0ZVaXr?(3VVQc!+U zo<4~d#r|F#ZyCu&()xv*CidA8+oqpAyXgUxtV}Ho(A)6f!@WdAzbBMJe*tJXj69@s z;g0D68LRC|Fq^-DB;QD7(ynOE7?z;?I~Y%8VFiAwLo*wSV~EpXfRB^3bz&N7s>Oje z;bfoUr}4(8PmxN@69Em_lp15(;hJiZj@%?gLI&(=;Vii|Qh4=QneZjcrpB zs(V|avfH+GU9dg-j0ih-mmq+t#<8l^D%+%FWnid{!t8}R;j3fWsC0+P8Ce23{P#Fb zDIL2?_Yp0apI5e7K>DN)jDZ4t?eU~Lt> z@DG(%mb9QAa=5`e7@lTlvmS{#sECp|U(jj77rTG0Cru}$upTik&D zzhSrBv}mbkI>5`&Z=yxp#MVn=G#;La%7ewU@*x($=t_4}`PnwLP2&M4eYyq*tVno~ zv`X)?F{*owHK)-B0%SS)DUKox-W4G zz_OS47XLc&)kNk$&2LXYDi&ANek%5=9Hi~?+=^$XTCE7vU%`&2Sz^68_Teo;cq+)>00lGC5LU+hnz^mo0dSShAt#PL|(1B@*p` z!$D#YUm7|c#1@HQ4xW#}?T^KF*ivL9|LO3BN>p}gd)}|dhl5u@_a<|t@kL~0cS<44 z#}AEw8TR*o0D>n#J(kulE1({az# zO(jggQ?I3LpVWrC?wB^hP9YI0ptP#dB)C6#-t>ImchBHN1gDBm*REr&k&P#ic+r?sLm4av25;{`a)bO;rkAS z>=TzO?6r~u+1<jdzl$N zCTIU{$W2VvTM_u_6Kodi+rQW6+f_9z_Cj}92G7LW$#Hq;KaM-!cEg-!O1-H4CReZh zZxmIDNc5#z0cYogbArIPJFpDuzncl&vElYwuUOV7KPnl!+;$>>;3a~hJh?2f(yFb( zY)8n2surck4L^?D8+3Q5q2UumVpu~$`d_?L7K_ORwt$Y+MiB^V!P@!!DF_tZT8i}2 zSL>VeI*=teC<@IHFFjsSy|fUycx4m)4YN&eKR4Sq9!1@A%Ed_16SpeZOmI~>;XvWx zZCNV zxA0ZWGKc;>Gw^;*iOWa5ULl%CW*Dq_V>tFoPLvl)XAVE8Hv$N%_pQfMa-Q+QjFQ@F zkBK_$q9S*KF$9Q7RFB8 zy@A-pO_79nUGQ^xdURDe8`m>`qgw5J>8oU>MKI;s!SP@TnjJRJbdkg7Y0!7eg}X{M zG|T-MZA3aa#C@xFN1u?A0>;n!&obYBAjTTMfVlHRtC#N7S{|3Y9tOj3gqpDjCJDgR z#?wBNI>!fOQ2;W>+f1UOu&S{=(>i{YelLKo5&ayKUiy?)-MJ?;2N4rgcY4Gka1qYn zdfr81>6QEQ=h>t+;WMm~aSY=$O;B=@<(IAdA1}jXYFDXoP@80-0`YyQF4QF;`2$us- z>W`=efIvFv%W$Ry%9mM)IVKu^K(?lQEf@~0dTVHH@EAQ$9NdXZsgRzp?}suB45>Sg{< z7vyNv^x|syrA#Z=`Ie%sCVk*VZls*l#cG6$>W6pqM{u@1MMgjwEnl8-=8@OW^Sjyi z55c%^GnhuAw|C?o0g@@4HUj7@<0Q9-UI&kmVb4oDCd^WQo{pX`6=70qNb=Q_orN@k z`$6geT>H~+wvIYy)v$L{PC1q`#nQXKfn0ys2lBhT-2V0bq48r&mrn4T{&tuqA^5Cc zPo%vy-E$r1Nt>Zen9+=4VJE8kOP46d-`0x{B+b5ZC7*r~m-%%>s^uiPm~Np3b|tN<=Q-a} zSIgm5OBi}S7xVT($=osmbAnLhMg)p3%(3`T$wEqRXS`E#-0{ORp!WD$hy^)7-Z2DxSG2L$8Q1{^qC2A3U^R-q|>}? zZT1OIag4DRresTM&*u^f60dShDN367yidn@p8fXYh$Iixw|9kVvE_P37}tIIZf5hjRzY_jVm)U*U7%#SVRvWqU)aI zS6ICFHMREmV~`GD3(hfaOvln-4Z8_t?YF;Hnparw_hfxo027)IL?lP;PpFF1dooHy z+!&P2#3&zSi|(%(*yS?2N}AfVE*6YZ$r#QLSU#?6WFz}R7%v6T0XyeH18t$E;nS;) z4h?<}(ji`BTbZtO@AFvE1#Int9BP4x2$I*aKLd(9 zAEvE8pAB7xt}U6YJ!$3G9WC0O=&=ew!1jLq*DPG2+3YoP_~wjyTa%?0rghaQrnJ$n zR9Tv8ebo`3tM;8|S$4`|N4_ll7mVF*pOx_}s z=ug5oTkVS$iQsQsR3Hb2cw~9?p={Bc*Q%$*A&WJRs|o_(#0Qv-HJ*>=7=NG086Xpi zbxAp`Beew|Lih|q3Qgr#91Jk#%MAhi(t(&pdKS_dPj_Lp;=|f$1>4gG#`L;#`-$+U z0G5|C0HUTko3)}}ZWm|I4rR!`g`%RI>@YE39Y9t~@@BlukO*UoZPgL+Z+7+6wLw<= zaoW|)$47q1CuxmwN8=5B0mm%-o>|dttUoJfH~-(@(!u!N3-{LJTP!tLrrn zHK#8?WoL{eTDFtd_4;OPy#}mSuNp(EX*PCcl$(lP^$*sXeeAip@*o$;-~faU@0#q| znH?B=RlF+)75A;*ng23QCySayyKG92}T|s|YXiH@?cYEg8ns z;uNo?@=^-&W%X-5WUZI7>wx0-_jLULEjxPXpX++VKqa-kMLpQ^v^+|BOQWenF08v> z@ZThBqwDgBa1HYBWaDj!)EoW(dO^Vvx5pW*Xrg(r&rC`N?})v^NESHOsIXb8rHh~I zA#FIu6p`xH#Abj3o>dJeD8e)6rS<;Y8Y{^KfWXX{;mpwR0Yby1t_R)KYBo zOJ{_~z?a_tGFnq-RWi17O zcO^pVOwKS|j?4^vD@)$MIT`2TMgvgix&Ocjl3y%3j}_wtk)N4FhwNFbA)jn3p4PiP z1;Z%QH~`(Cho5>O0Sr_g3to7^lSim#Izdnbva`?l0yEI=*>RQlR2uB2v@@16)kn~f zO{^xg`i*|#8)s+#64Y5FZoTu0TK^DW_fYBov^HJmi1N6|0zN1~q-?uf8n#qN!N%tD zD<5q^9IG4g>}YtUC^g)~ZOfQ+-ll!giO8dAinv^!qEUP=Yjlj*)p;oM&kgfkio(I~ zyb!hAy~tWe&B?O%XBnH-)hffS6o|-#SneQcL9_llD8(<#VwNHCmpw0EWw=c1U-Ts1 zQp{{-1_Qm8a=(km?I=N_qkULnWD!au1~+Z%^0{fPuM`+YJfHZEH@5AVyf?clD9Am3 z;r!#y6cy$lWzHPxt$snvNVs85CGFZ{<}73r;;M6a1yhZ# zo5fm|p$XY7`vh2rPou(KV1%R)eHV8%VYQHO0tp&A{+-C!+Jp}>3L+n+*^7V3Oz5KS z_63sU%po&h$XM)NReTP1E+m}oqecBu_Obl}Y!5Z#G zfo1AR?092&*PzFTI(!?Mk_2O$%f(Y422W!6%prgN4vR^4V#K!9B_Ak)dZA@OZ7zV9 z)c39XjG_=+?1E;rh?(D+*a07IpS{?Yz9i=!s+~Iz8k@+HN5REcjTaA!wa!@CbyI^z z!}tb$ms{Mq8)NPYY}An(jPf^uHz2+c+}P`#t&;oDf&~;2aO=L$VPe)H#1~nGN>^i7 z(lt#pOCzmzjNiTRG8PivwDX#99^T$6p9eXN;(kTK&ehZP>W2QTNS(T1^FRH1>P9BW zd;(nN{XBh(NL^RO|JUJEJCm!s|Aoo`CYv#9m%tVuVg!k}-7>D(LIfchACxlMi0s#v zq>o4uqTy9_PPju9YJ#ymy{hvN;jvtFnU-FqCTA~2MJ^XKSLyrT3Y^rDvHI87E^}Eq zYHdI5Rk><#a5l}&f?h)JcKqmTy*|!Q@L?TbGh-G!m`sN8-Q&0)PdWW^;f4_jJh}O*xxH zTySsrK(+SwHXwJxL3oi}H@T10kG&}Qop|NUh)@h0WZK*Y<`6Mv;fV1?_TuIc6(Y-qMBqvz0kAUAyS4Bx1qSho{rT)e*)rWq zj39w79Dhh$wCr5)!!&}ZVj8@j(RLVGMO$%SPM{waOsH_Z{{U$asGc)y|Bp|5M0kuU zu!0=o#cc&g!+)}(>Fs@6xE|KW6Nt{^EUeL~HV83%{M zzH-O7(9%bVCU)csEI;t(IP$*Ebws(KwTfu$X(dFd=b~FrQT<`1ty`0dO%X3(B zFxaH{O0N3()F{4ti9mU<*oR;)gHyzdeZM%ZR?ZD=_(KV@RdI2>AVB{E zpu6q1?bQC`wf4K^PiI9Rk@refo;t^tN(dT)nK{GV9eCKXy8<%&MfR@0|NASu^`;ws zoHJ(HcWB-C5*x9Lo2SqewFBT3x7MQmHY}>}*FrC^aDBmuno7!HYu_f$)EFMF%#}Md z<1Qr^(wAE|HGsoFn@$sMa=2lvO9Jp?k9;qGZC`xPQ8sC9a;ypxcLQ<*&!4vsph}gR zma^mcw6=Aikp%V~ueSHcKP*e-)nn^WJ@YWZ$kt6+p;2MCvLw_~`{geuLZ+gK@Z0B1 z!xG7)jLAs$r%VFI=|VDh*)wUd3%md{0Z)fTtkbGrr_Ps1*PWm*-aNYel*!XLaEfZ#O<1Smk z7GR1uGK{UQYa1<+Yq)hEB64+(+Z!kgWpp!N^h@~tJo_NQ z?{5S$!s*d(8#IOms$EZ6PF2-MSu}K`KE6<+BmF@i7B{TAz?TZ)`{nC`1DzN0^Vu4!SAp9 z%cg)!p!0%0Z&%t1?QTiPQE4^Qxd{MvrHh-dc}Eo>Q}E=yrl&y}-$BB0GF~?MjO`Ah z^5_j2Y$|q3f*QWI_m?Z69BbsyC>?)0Bp7b$OH5AXWw}MtxiW|zbB~4Z`$`kJnv$ca zwkjnAtJ=b>jS^psq{Nc{ZxJ0CHV=W#j(vm~LJG87n%)56>vOxd{F78?i1@U`K*|l; zHT$ezIDsbL#FG8MrcFKTr3BWe1nzyJrS83%QZ9^Tl(tFvWxIdCmt#v{DeX2zG%dRF za}a(ou%Lw%=-{`JqWSUESaK91aR8;qD{}DgGzuz{1ZBbl%YXhdtB!zq2F*N_aVkkm zURZX`=M!t8+$}vls#2G;SA$QG&jM;(fT$@eT2}eY#;3Ba-c<(Y8ml?O$IZ89ZCtS_8tlp3!^4?M5{Bu0>aoW9wiF_0xjPVffK#D%+Ha;}tcyZp$l}V6p?Q6Pen09oU!^`<+hF{Qc0=UOc zllRW)_)54JoLlQ_9wC^FwBw3kX309K5VB`%H{Q|V9El+syRBKc# zsf0+0A>V>tt{UWWIV1ao;P-h;Tx*n(7BFPIepf#BDtfoRY&gm2(?+X7YC4H zsJMf3jKV$#GAb#t`0dPTq&w-6A&$qWV>~V!{q$G@2<|lw$gAm-R~_BO+uoc&6Xl8o@%3&T_*gR!>4Pkbx2p6XS$|! zR#}7YLgmM@=0V6Q;N``E;5VBrC^cNIInL7a1wPCd^AI)XgZU7)m-nC>j_vPKcdS6< ztd{#kcuVq|xMJ=mT{lVzVWJRM9#B6W)t1-RcrmA+_b|RUhPD&<9y4N6@&0?9(4sGX zp!V19Yx?(J6+Doo(qq{nQ^57`e>0n6)|A|9n8u!)`C}}X%KMe8k&DAdvvecrRrBJi zUG=HwRkY)(Py_x^V6oMUMqY!c+DIObP+1wQ=9liKYU(A^x+<^kTD_OwVYQ*A z=dGaK3g;&xbj}tJ`1EN@@|*_5F*1Oad0!??c=8z|aJDxFD7|~@I=!%Us+MODv}hUh zT9a&%Er+}~fa43gC+MsnB7lRQDoi{|Cr3P~I%wfdddV@tuXB<0i z2#F3vf4ou3q4H~QDA!H-17tuv`K(2=0ygvb0>?YgIaBSrP$o@K^(`$D>e@=-WtLunltJ4sUlNB82lsY~@~kkG$AlYsvC+9nP#w$OsU~^y zlHW;?;Bs>Vx(vl6(n#ozgp9=Lxz`JV^btPDUT}$0OKbZ)-TA^VzrVGv1#QJg( zX8#I2ag+wDJa~em;+_z;ybMjTS@pV6qRMp}GiKb%qz0Zq)uaWiYbVuh%h1O^PE_cX zlkF>yTUO_T-`p`oQ|m|wrnRmmY&-kH1*7i{?J#c`*Se!woMre3=O$ExR*Gu>*AYEtzQpvgT%NGnG$6%{Pu zc{4Vo>sQ1ek)F^AY2-mo*Ifi};7U=|`WZKWgA`+T^=3?jd}AR_aleyh+T*P*?5BXDq#^s5 z_ehBA5rR2qo#24+1=GLFmIbspZUwo}&R_n%PJ8s(i)6e*j@R`huBM5WB0;+HJ}Yf0 zbk3@02ku&{+G*OHOGRQWueQ30vb!iVu}clSLK758Fpp+VUvF#v zi);lBro|^*UnI>@bTJ;;hv4(j0Q6slmmgQ3nYQ`D9-X*&A_CR!J+xn99ED&tJad_U zdir-2YRjg&b_6dM^Y8(gmK{^}m+hEe&RO3s-WE}R1we8Uvmc`8m9didg`!E~^{pU)=_odVf@0XB>Onx!%3xEe?p@U=5IQs|qyi8%0NrG!Cmh!?#7@@Ot|Tj(`h@uQj$Izx%i^v*;#w+ z)PhFFmp$9$Vy4M{ZX@#&eurA8D+1polIHUf8%ah;@35f zW+b5|3i=F=Q?+^t@0!%AN$Zu|I9UGMuwAnKg=@Qpxha;=r9T}jua!2kqkx73TKhK@ zO<`+!S6(dKLag(9hjvf`N`>e3H_}y8k?OLZWKm6{H((*y8`o87U(+XpSnf{yDoGHHhY+W-7;5TPh^8 zvX-)i7{1i6VQSSL>Z%|h7xq?1fduLHBp->0e)r5CX9E<$$wsLF&od-$QFAq=w}0q_ zas%!r-jX%6bVInSpP9a#rft{aT{r(HMkrT0^;U+U$6Nk`>KZ&BM>oY}-dER%@i}mf z-8+c(VEIZOOS+57v(cu~bVXz2M@ZVwd}xo5CVl9|L;GLPF{yI-x)73i_>sw-V=E2+ z2`L>{W&v5kQcc!1Rp6@%^;6Fa;bU$SSwOK7U=t{*eCxatL%4ebNEwark4G~MzQ?v< z)7vdI;lJY}fy$RAA->FCg;gjr2PJ-87M>SU0*SEelQzJtv#}T+Ibpd`x(ocny`O+g zM7Z1Hz*OJWRRBH7mT3=1@KoXhe);f>v1a-}mEwV?tR#!2@9mBNVe~;(^pt)>_bJxG zU+5f@dcs&n0dMbtADL_rCcAU;SXwaOxPA@jG(MJw9)I9IWd7L3cG!W-THwRtGN6EG zRI&iOwwXxB(^$g6ial3w63`6x_8xG%VH;Ltycb8+ccjAqjeJ-PwtCjwfA36DDOJkqT5{{Myy;k@kC@jwL=N( zPkKHdY=J0=8WID#sG;4b`L7yq|3`i^^8f~|)X!P)AYRNAeKZQ|3p`*Za$5n%pH`m+ zsg`2ta?0>QR|OHYI8p&EA}D&b4^$MtpC6l1V^a^h$XvmT7ETnQxHBnPpIY2hz3j;+ zn`ISCEX_IH^+;T`LFPms*umQt(Z93|NnERRPnr3id=FV(fk-8=h$Y0OiB&jhkEbL& zGhpB3DozkXAIK6jX!`)X=ib*Z*ns47XL!KOXSb9BBJXG&%l}?3n(4MBchoa1;gQKAaQRTYrlv16r`WOXLwU|4dLZv10UrHYX-g1DN+& z30sHIsb1cR1p8;gE7d3}7B%%KQrz8Xqrc!dKX3k+;BF6>44Wu$1VHuJ$9~2Cb)T6}X_b}C$@+A>utbi~cH!DQ5_dH0En>!P z;PKCuTBEP&`vPCiObB58Y6YJ@92wmE$+8m29wfCYD-aQ-Rq}a1UgtQ3jF@X2$B+L$ zo)^G0mOLk~RYK~9@KT5fif3Yok$4%Zfd9wZ-5#3uX=zWHk(vfiBV+Bp>F~#dx$=kY z!wZT!@%xNm2JmK~n%N0|^pHs+^8bB4-k!VS)CIPtEr%K8WMojM_joBP7M@u)FDO^4 zr#BU)$cyRH`W*>N(fCdt+v;7Th%58X!i4zk20>lSMByKR^7}8)2_s%qqb2?awTdjn z%h~V1Tri9^uAlv5qFq|?GTFp&%9D#Ij`ks3SA8$F<&QNzO@)efqhNP^;i>W}in-{ZR5 z`@?ny=Aa>$YMaeLe!vm(j}%~LzICWO1t;_}q?Mza2@x%Xtvq03T%Oj*_*Na&xSR;AT{>XMjNC!RPM~0l~OKJK)Oh4+m2@Y zHNKkdIm5WbfTjB8)BMD1!eu5bgI7QBqGIh0Eh1lgnDL672mh;YBw99$`7`cOm_nVg z+*~=F2II7;kAF#_8W?$)AUm?$=v4bOS92ryav0$0C{wEzA}l^!>+%As9T`+Ox?iZd z^v4dvTLPGx9RvUT3Y-!p>;e2!Ydq~=_cmN*HMAF-1e#ionESO-@5tju za1=8f9@VVb*Ihg=M|AGt@5d7p0Veef$gP0G4V9_6)-X))y@;ZsJ>SK?I zy|yqfSq4Y*ke;g+SA#CpdxTteMq9A4`r8T)G_`xCMSF&rD%?bN>AC{=a3E z#4M9&6)q`TkhK0uRppfg2}Dh8vce7~NwYD%1vuy$NtW6F@5}btwnC6| zA%cQHu0fHv+|KEuEZm=l;9J}VJD<-XeT z)7uSuivM@_7#8n9_tp$suha1lKpn6Rlp?uPO8|7BU!RuxIsb2YO9e&jI;bL?V)aAM zA|TINevQ{xC)^x7+C$`*Gx)crY&L$5@){Wy!w2g@b{~mf-yN`!Nu4&Wr~4xvcTXxu zog}dZR?>eJPyN`Q_=XmrXG=4~rz6?c;1q9q`?f|nBICHvL`lvzAKOzMCqU%e9rCw|0x9pr34eRFq)InNM8rWBXBX!`cd>qsEL*RjOQJEH$@fRu& zbu8=ea{GeW^21OKvZz0CM#pUn`pMyd)S=xX-lwh^Z!fq3m=wY_L=A|SpPacIla$&HE3@Ux7>P7KYtADTys@eJ)33I;#1_Wg{A7RN5 z5yoi|hj>z5{NG_kls#%^5Zzu*!F93GV?wtuLwNyhtUIQhZ(FfSYFJNip$?*-5nwC0 zSh(5`*L=<@Xhg`nodIC*i`Z=!8f<0UM)C4|K)SQ`QhZkRa3h)zG}?08Bu%ck$U^~i9}k^T{d{e zZ=Z=G!ME?`+v_F~g-WaG^I{eI#xG!QN3v>_*;NJk-4z`#r^7Ya_wkp(9E{4VXZZp| z5Zp+aG*r$wFeEnab|dZvM4#ID^5)FZ#=p`L{oj@zI#T~n@xAF(NGF>3d?CP?COB(k z2sl;Pkbd%EoXc_JVgXDvf{ox-`(g9X5C^NPsi}~p$5RHyX+U6od3Xh+kA|4k^J4!U zU?#wz9Cqw43y_1`oV$bD7k@eex+HV0RQVUr0Z;{@g_{OLA3{9(TM7Udw~=%B7(HeAFZ_?dPu?S&%Q>I_8F=TLD5amt{( zR%JmAZXB}|qKA>UQ;3ULEf<5k*u-h@L{jomTX|>A)BJND!q{M^0Q3YlmFVCc)UvGy zVFJ>WdwKL7pa82`M!flI^66~!?C0C;gv~pSk(p$MWvFzrpuVKq-4JP4UH_BN9w6G! zOa6=Yx0o?g%%S9=J8b0k5{iK^-LT9G`*Q;r))x786jkBQP1=1JH1x*(^>BjpOUB7Z9^6bkDU=r` z4}^JbJ-Xa;e|2o<6xj!$HL;9EhUcJIZH!10(0)nBc>vpjaOuwYL{yix6fl=4_@N(A z40t6CeUW{6as^CXJa2em&B71CT|faMg^0fA#ygZAjj0ONkt2$t5#P`U8@&F98|05B z-PegB+zOM;4^Qe5Fc3&E5dFxKK17yoMc7Xo10d*UGe~VT`X4M&Vg%So^~_NPrYQV- z^6h1%Zxs^=7g^JsUs97!>cZo2wC1=v)8%N&`3Yl>9@Bq<$%@p$%BxC@m-Nca#$aPj zVfD#3&o+1N)Rv$;XVq0W20X0ok?3ifOh6Ha;23;a2m2CG$yBCS{S{DT7yz6BIWe#L zNXE8s=OVwRwgB0P9E~y`{p7ikUemDg+~HmHY^Y*xZycoDQxbN#44DIsiA${OEkNfLjAUir{RX`>Is;;ZvY*wi$ zxKjK?YvGC4H@9*WbJSY&0w`WKPBFd*UwIYv6kCqW@u9WHdz^+cRjqNNxh0giCHz$R z*7`xQb zRfFO{${Cz9>*Ge`;D$;)bTf0bkZa5z0)FeQjUZQcstQ{}irmD8Z3?_dzJ3&9gt`x& zd454dO;`)519A_J%J=^_;?@vC?2X`Z)TjG*N{qL}KyM_MMR(lK0eFaqkLepPfI! zqeP~Bd-&MU;!rlt;_dxZ5A7!E%n9}wAeQ_NJ;*0|nIIs?_rQ%s=nOHk+_q9{53X!G z5y%-%4nX_)ohES%b-|H52)ZK0%%m+~+Wd>=PDCQt=|h+2?gQ*bM665gi6q=orybO^ zy~y^TC!+?q2BUvjnGA{l^q zrV&k!VP&3=`32g`nm|CoS;j+!(lfv}L+1lHXVM`+N-ru5YNp2_vl^MFMecT`(kEQ@r;YnHOs96ObSh)#kZ{P^% zRX{%a7ymy#Xv9fG*YC606CTUr3RBmL3Y%DR@#yYp{KWozAa$CjD|#dlUYWqGAj#SEuYI# zH~+#@OZt)FyJM(#r0@QQMihcFXMK!jidc2EBL7&8RtaGkTR7bOOg~Pt`z2Bwj{%5uK^5bkaKu!6&GYxu1eyY zpXN%4%a9I>Z02x{b1;(!WYFb)`*dw-#609fzhCAj^}m$`JQn~B{IkSx0}@=St8vv^ zmJ%GJ#9k7m`m3N=j>=HPnvIvL+PaqF7VK2ymZ4)021My(GSXoLyZzKg1_-eh*FQ!0 zgwGlzfSrWV`r}gbOXm+Jm2#%Bt0qMB;8;egR`N8FHu0_DiPuqe+9ri>sK*G=TrS){ zZ7g;PVsj#)2|85x0QV1aR+A7$%&;1Lw1rHW#u%SpxIqDt*;2F_t1omVfMX2F=CRaVN5(X}gWFAbCQ zCylPLc?Hpo|K3&#WHZnRUDInq`>~W}isGde4FbeuWg?Szys~&Tv0g1Z7r(ynDIK-I zllydH0p<3)Ej^t(aji_j1@>cc869)q3Fj7SbK5UOs3-(22I!l-2V>ip@L}7JERakX zCfj(MZD`;!L#SZrFEbneJ73fnywd$~T>lSK-yKi&AOBl~?3R>~RQBHED3xSy*+X^`AL!yYh$SzRB<(E|D%HcuWi#h?{S;b;8>?%_O$kf&Qr|~N;CkY(?c5^9cTIB5wWdI6-j9!NOw<*-#qJzeqKgk zBIO7{R7RGE_%aW?#T!0bm3b%?kMNKGSw2auYy2x?TyDJHKx&>_Sfq>-T^}qm6_tDu z#L(4VtKPRg3>M`TZUL6$AhR3yHaAc3Uk(-+{=zz`HHm5J;N(7*{41hjvU4milQegBy{dlH$cav(x2zTN*SG$;9s zT12LnQZYO+=jMP31Du;EX&bH%$x)mwrJF3%oXCt=_bA%g3>OP$&I%g8US9vX!#E#^L=)nx5U6Ri%hztQp9b z8`H&8e!j+Q|IgKQ0+q%?U*RWsP7&acwYe62otr*4=|4NAwSKb8M=VJ+H&Xuf56p_L zO-gc&3#`7&&2djak>B>y_~Xr6wmM!&l~pPKn+7<*Ui7=kG7ANns5|yKvb?J9D%14+ zI#xF^2NnL;T$DISpMCmvRomF4RS)?oGVzJEtpj11uvsRMlzU$N2rt6RN?RMd=?i0xK%O&%yj<8COoSkB zx$3D0AIfsZNc?^!Y_~D^sTUAdzBha#Gx`nH85NNS`9}C-R4^^#uj25|Is3vwA~!LH zRtw|(l?R-lT?h4(LV<(fQ~?0eO4Y(7<}`qn**cndaUCx!%lSj*{1OaZyo_&YvYlmt zelExQ>~$%BpNwY?qJDXH>n!sFyJvCt)h^~NoXJ_?s766l2E5HyotBSHua-Mtd=^Ba z#PsUNb=>~+=2xG2({t@`{h#9zCULt@j{GBKeeKhrhY!7^nB;JVz3E*uG|KbbAW{eR z9!vq$o7_oV;c!aO0;9eigigJAEy(s;0e0hxtR>69tUoC#1gxur&^l@sTl({Keo*z7 zhv}lN$3Fhq{(LIj>?KrvG)m_NKa^3vgjFS{5~lVA+X>lpZ8sim`{5vPse#^}eYs^KzE2IuT9P29W(#0yHN zI>jd4vd__>feGvg{1YF=$$GE0C+!>8>2$M#2oARovumHR=e6o~*T?*?#QM{Xy%(9j z_x`Frjpn`{i}#oPc0wePoNij<;kW5q+ZJy$u8$`x9W!HQmJJ*uoA=*U@~GqKixW=` zPqM;K(%&Dp+~JE5T^CC=x4TiR98phC^8Dj% zm(Ym|nMmFLuBcTD;$fnJEqW9Y^C}OZR|+2(9Wkd>qms2NQdeXr>et!;C4#0#Yd8$m zhy4Dt*#N<&dR8diSpPj6(<7N1Z~j#`P#($Y-UA+d#ZFSY5LybA*o-Y|dwKib)Yl@< zKvu+`F7XWf^)fVu;jadyAnQaZelG*4g3Z5Gdo*Sj+qE#4sIaJ9;*WGU#-vN{&Z}l1 z<%UvGeo-Xb1##U{3zz$`#_qq60r?gd z!&pi9;hJDEOt++{c8C>i72dyb?|3)L&7}R!-XPhF+_bhcRdSQHQ=|HDSLg0d+B|lm zez6Lp%yn;9FK$Zm3^Ui!l99Y$esBqk_fh)@p(t>R48ujOvtE^I)0D;}M0T2e@35mwjxz_46TICu3q={ykG@<;4^Z@;zF=GwD}_ zITHpsWyxy(WdGHv_A}))j8(}=vL-s6B46GTseU|Z>U4y3=~S*dd?L7hg_{h0$u?6I zpB2%;6}C!dAT`1~zJX!{Gn%jbk?Q|Qo{pThh|8b0UK89a9Y$xlYKoqJz5dF9T<>$J zTxgg=n2)!~`Tk`TO{Hy;k6jrgiK&PBVshy4rB6%7y_?>qnVm{zR>mgPuj}^{K9cwzwe=_L9`8 zqq+K#dRrrb@w3sTv%Mz5RyDoqC6Me~ENN`H^yHy2C$G_+ItAw{POVrtufQ$sQ}^&6 zV-3G4#Wl9dqXVjqOxK^;qyUv?T(_=*)(k`*JOTr@u@f$q}-py(v_ld!t= zNqN*TP`}S|(tI*fqkIY5)1QJif>Hzq$X2i}Y2re4AGsvPS4|Hh*)I)yPbZ2?AA#?> zpMIBe(`R?#Xz^%se|*d{d-%J@xRWeh!c>(2amz)A!pe45&rG~mb|bhAn~79OC;h#* zLX*t5_{s{WO5>0L4MkG&bhhi za@4MxB)Qol_Q=?i&!l9J7t+)(pJ z0M(`2c|JZeWj0Z~=@@d)eYIyfu-cCk9my;%S7zKHRxbVr<*=dIwqtgaQW$ILg5@UW z8O{DNsLUm%rGw`oXpvvEqBzH9%Vu?Phkk2@zJ6(n_G0k#ApWgZ_W6J2E?2$7*xbHb z>}@4VwJ?t<-shUnE&Z4L^Gb$si9pf6cpk>q;I3PbcI|@8B3%C%7p3mJ)%VhqGgNhH z@xsSiIb~Z^HKv{^Ea*Q(97p@N*{;-U7rxt?+KW1dT*Z1W|4WBRsLvN=*|$wZ&~`=m zy56#FGwG7)znh5BxUN`|(fsX0EcBQ=%N>j)2N>rwyLVv&67eV(~oqSdf4%EZHt%I9B)IAyD#l^qqAcEiNO(@(K;O(r;=Z^AL~gO5fsIV;x5!(O`~tF`E0pPU>A zCvpD!KV7cG!?n&yMhUK`4mdl!JP1w%?M8;UXP0k-M-&-{k1Rpa>uAQpJwiGkvjwld zQpef1?f{A>(B2Xhi|VvDyG4x2&#I&L!n+JuJOd=^zwEP<(oPSl*x*CM+{cC?@9P0H zNZmKKjsaE1Z~sh;Ai$6*EK{z`UMU1nQv{vwxXK4m=5f^U`yx+i5u&k_ z^tG6@a(ncEcLKRhsyF21kUW0Gi45-w?8%|)p?Upw4U*#X%ukAJ*UO@X0ol)c^`~sb zo5`0mFa4nT&zQt0i&9`k?>SrJViEEmz=vn3GoTUTa;GQ7w{`+O;XIp%9w?5fe4xra z6gVWAle6+w6edhWX~|u?lGdHQoW9Mns3@5>2P0^Yrx>&cJ1xmT-YzC> zb!NQM?^nUwuoMnqVNy^a)FOCrjFIun1*99l*28z#4jT9QF3m1-eQkwAo-EaKn;^_i zz8D=iuQqq4{FoY~q*o082G@ehc^V>iXye5#;IB;xq6*I7vmV|d|96`RuuW=v=WMIn z#IP0gNI^xM*Xe;b-v7N_V33Bsox;*A=_Z$yyHRo!n7xHxf6K<~snmHawYIT#m0ull zXU3-Vai?fgrAz$xssvR2l~uZ5RrD}5HXkYx$nI1$JhKnX=6}lhDiD1`)}^qh$n$gD z=|1u;vR=aY6onKc5WjwtRQ&Hw4F9B6lHdPhe)nEwb%Rj-(he46!9$EY`k|dnpW~Oe zRPpl*IvS8uyW3!v)eIPYtAT7Bx~XFf`K3u)T0dXuk2E_JJ{f^Uo@5|jY*PnHTJ1}A z3*BA+U488&jeOGE<@P-XQlApqsZ=pGcA+)ylDApkqg&Xb6f@hctg&d=u*ax>ufD%IYeEA9wX>QIw`QblxK5vMfp~L;SQ~EZs;qvXb z)-p(>l$H5hfb;DOQ>SX=4u^2uo-M0(#po-3>vl6S;`znUOeof zEq0{$DRpImUlaoNQ4`ZZuV-TE8IDCSE@W`SNb zaI7I6SZ&^|T)l}Fx*TIqj-@w7jwgD7fPjiS4+Gjya^E?;9`<56hz>E}>P<{+?6kx<3j=-eAjG+56FjMvN z;iP_8WH^d`OaeG~Z`c?#C9ev_mS9!%N=Dc5s}G>8bM2SOt?w;XNN+7bKDS??M<@pF zks=bv(hv*J&tKIp%TQbfrH+q6)FtPeoY=jzbbjIBOBSB|7AtBa*9U<7JqRi_yWZs^ zV>&L=zZvClg3JM+vNN)BhOhJWgz{e|w?MkJMqok(zE>#~Kw+mwE=wa0#m5Q7ls#fY z%zUSWVkiLE@fx91yWd6&-7}L3{T*rFsf!5?d?3;Kd}!u`lWTp=`~JTF-Ynl*icdi1 ze4H65^R{GGt>AP#J2CKCX0df6H`MCV_k~z5;@^9g=jfj}au5C419X(aEM{6jgm~@{ z(`n;1F%&F=P!@s<_>wKUM?wRW!O0HGhBh~*Ub8KYd!D;>`FwgBkCDko>w!<_gF2s($9TAK!#xbyY?bgj*??l>I^h@5VQj zRJ&n-1~Ac`7Pxt%Zc_wRM>gipAZtQ;BNK=N@8g_D+)t&T;2q`gS{w|i!cU9_8wdm& z_*B4G$WL4ioPW(BxQx4t`8CDB9Iih1Ez*UU7ceLmT&Yv_Clywyf=^0s-0{K(xwaZR zfk$8?K5ARb;@M!ogl_Vt;@_>QY&O|CD*1N?YbVdyKxB$vUY3hCPI<2~H0`Oq^u4so=j;`U}%`U8CL zB~ah-%=+I2);RJL&YDE_v5a=sc@1U9XuNaXF_$YK;=HdQ}{J&>NABf?; zZ^4~Kenop$4BoStP|)3#&i2C^OOFN?`G9HRCrA;TJqH7I;5p6|4`FEA!sB}_4SEeX zs-8dOX78qt%e|*xaw3%6e6~6y%xkzQ6STlm3&U7(-^^_;=7<%svTd!W$9*a)u zV$%_P{rcR=_AjnYWeNkGAshW4rFL#fmg8Z|^2FBPU`2ntlu7x|7ApH||9PK+@^b9? zGLH-adcodmpT6J>{z>Mq$1q0g+@fR_B>8ct(2y}B_55|MN*_hhw9J)&n(HGtZm#Ro zZ4pm8d&KP|?j8t>Ub<31CQRd1s5-#){{`3Yay8@V;>1_%-Dy~%f)`_D?#lP;s`a|o zc#tOYTjM%V?k(QuQ!+M^xfbInJVrXJ9*1cF2eGkm+IJ>JW zsOp;CU(Mjj&*sI&-AzzTcv&A=NILyz2I|b3#=-=?lA15QlH1J3iV2|A(hXt%;RE1Y zPB5+<263fKu+UNIPE@f2mwVe;3q5WN*&M*oV)1MFpkjy6!fHZJ>U5fNc61Tv?=`Ey z2ga<+!tkZ`A>9$aaRDiTz%pF%7kQQ@w+89}gsCt07b*m?Hyfhiu{UK%bVxO?ZbcUn zc4N0;=lwXTW|tvsZAU(2=p`fdlWX~>C&s;Sa9q9yqkFag&;QHqWB;A45)aX73xgx# zhmg|?z<7GENX|XP3}mGHX=}eB`wSCBc2b2k5@O!$~{v& zA9oGwx;UC;&pNkuG(?W~m;0Gi*qBOZI|OGoYtprZ>kjHXy~QQOT#xzk zGVMR2RAvMqhhXmTW8SXAz4_vO1UuYT0SdV@`JwUg7$YZ^1iG2GKM~OCwE7^)G}g)p zxKB8Yomo9T-y&Kc49=T|gy@mqZHzgKm)I8IT+ZY^e~Rt_X{(K>*dSCVP_))K?i8o# z?6esZ?b1b?KcA*hxy@kQbDS_S+B=+v-QjLb{z^u#QnVsNA^*-OV9HJMu1o7ArrKXg ze;tTiQM}ZXA8q?P4*&IV_n36Z>Q_Z}5MQDkvh}rj)b^yS=H9DHtJ)(y8j~C{_90b5 z{DKtV;z~cRyLz9_?ujMkoixxc7S%8h=h3~}lT~C63uJ-@%B8Oiu4kc*5WC9jw>MJ` zM>ZDgSN8mM+!jXmLl#qn>yalTEjf)g`fTgM!wUmU&n;XJFZU~a$Ch;l`ue`-x?5Gv zViY!1YnFaIVlB^;xO+}1N_vzK%gHY3GFN5)b)aWFF4wyIQm0CPRuLFNe$a}F!9^!- zg@IZRseK~pEyxT0oswx49_3(8+27whly{l|brt4g%!BYH&IHQa4VNk_S-y?L-}WtA z-L=EQpf6N-_tJtH)?N!`QFfR`yrHbC{$qv<)(-bhqu4LjQa5~cSHM$`7f`SjxKD$| z|HKSVzD1B8w(e+UWP-L$MeJj<@2yM~I;%}zG@iH-(KMe&1}SPU^5oR=$<`DzAq`=} zw0b{pG^S`SRFQ`GEmPH*#*cT>spt+r1r_N) zq1h|Rf6UBq^Bk8!`Z);gnQ*?g2!>pA`a9!E_C9e<4KRF1llA@y3JcrqJ!#mYQd0OE zOtTizj{YqwNTl=mk*)@6Ba$X=lORBi5aA_e*q$C9doaq<^IDZbZuiV)Uj6=q72Y89 zgOH+b2N<$EW62`);dk$ikAwC1cRhVrGOy%j9N7Imxm!PXl;kfNZMc46Df|%O*H;gj z{RKU-+pIEu{0_Q!1%H(E>#QDA`V1e`QL~*n^}|iTZSpeih27+2T$^J1Na4za|4$dk z_ZD-Yj>U5|u&6r@#@SHmqUNbRQIXufLvn~P%?=$|<$>Svc>GvMFX*u|ZteuCyfk&u zd#|ZYe;y7B=Oh}UY4uTNb0F*qG>EGG$3WRsVL8kA$%flmD7tDJr~BlRfd4J z2f5OW4OkDM^=*w3edD=+vxEJxX9kOBHdEMtfI3MoNYa-q3IGTrchZO!q-nGowIX1x zXXj*%Bl6CxLvovCg*uoyussa>$Hs$NCeIm{aJ4T$T%`_)w5>*Y{vE=%X9DFBxUX~j zJC{b4uj|=41(=1)dt1jG2%BbR=``5!->DgcX|0$F`3jjEOYaPztg)Vs4Sz2O=c_~1 z?&G<80s|~HAkEP&ep-tkGog+fy1zp}63fZ345h+B-P*CZO&Nlc0zT5<%9H13!S|m* zPa)zVYb73!RB_#psI2)-b?1QbQL{99ODp@fSEKQ8_Xd|(=xqxvm1&-Sh*D?y1rMK+ z`|ATSgCF8rRVer~R{n*#J{H>-^IJdOWN*{rB4_v`p8q77SxNvt&CLW=sE;+e$n#1x z99ue#4U1aP#N@k;DS)vkL75~lXYZ$fwt6UG1y>7)F0Rjt{55-s6Cj`y-=jO{^KQe` z7LV4^wMT&?*gkK_7E|v(tIVS0#v#sY_i3HghG0zMB%sLiWhV0L;w4w0 z@G_b+H=D3bp{&>FhyM8EJz*jc8*B@3=Y@f5W0WY#{Lm)N`YkLFI9eljd2GQioD}d9 z9YiUj5{vR<-bj_VjuY-8=e@l5CX_eaXe?-+oRt+MfjpUa3!1b_Zf2!?5kw(hhc2=O zL|Acktjg;j{Hu6{h#V7z2~0Z9G@|T6&W_h4XXV7V=i<-HF)3ifP=PQ0)>Ath;2wl) zD#2yk)gf9rSXYDFoFIq3M38m6Kcc`pe|19ygdEH0L=F7eW%Tn1#N*{g>i9d%0fDJW`*dB>|ha=`NF@|KYJt5Xgeis;`GmDjC@5lM zJQKW#yphWtQ`S6fecl?Col6Tt$Q^^;w)UD3v7^}|hZ9;ZdAcLJj}~T(#liqh0|-sJ zFO*eHIMnb+DrK#3=;A^__Wc&I0e!o zx$1}MOV@IHHsK4Ws~BZk)P%UdeT2hgaa_ z0Q3dwJd3=UNK%@r{Z~&%FWoB%7bj>2n_hT}SxQ8Okr<{QO8N+>%6;Sb5e?_N^Me^M zW1oMYUYRt)Ts&DO6&5cpElivR#TmJrHci|`!KOGkPhNrRCP@7p{#0;QQ)ktf`!ewB zqW7u!HNCn2J$-Xcw}8s}o&uQg-~?$S~g2 z%kgV_FG$lYenV5PL^9AQSA6OJG;Y&MS0H_HrN)6QVve<-L~$xdUXee33Th;KiS`0MDW+B;q; z@SR)-oedVx3=!Wg0K_WvfPi~xKB(YT2ibr8a!lccI>foPl1)!)^O+Iw7(z~QOFkf4rw414@g6L02u{ zx}A4xkDNcGCpRuA7oM$5Pi_}UgImIgVWe*WAwD= z!eXX<_wXrx$!-vu)}R!S3sxLh+P-*d z-4XTX4oRu@xC$yGin8Nno&YT8K-Q(c1lb#l`22X{apx=P?dQU(xQP7K9TcvNk~bm> zM1tJXL(tH&JRsJhP39vC56PP|Evzwqh{2B0cBaE%p|dyR37_tkf$gfH2EDbM<>tt6 zXhF{q65FKp^%9J!e>Md*@%7V}aRY=pcl~A!tF-O|WBQpaj-@ltyg_NCZSwA6+-byB zA4;hK5ns1_IcDCCVe47N!LErt0C)x4LmgafPA5}oKBWk2GXQ; z7QUyc*PMw|W==U)JK;;ce<#b)s;^G-$xE`m#&kWuokoydlof2ClL!YQemNSxq2X3&zX;d| z6sifNTgI9(hWIS!@}6b%zK-whd~%-3pQ?f)&!7za@Rd76R7cp@Yc}xP{5#TC>HBli zlK|SmXS!^@tmrrgG}McX(_4GEHqve33R3SubZ_RLmNs|_B=AfWzgspk7O6USkG^iN zk+ml;^c~F=Z#ep6G%7rjXIZiBH9QSXX(;(1NX?n$xUtryRT<>dMy z@|%T%jySB4_C!?yYW$kN?>74ho-GYEAeg`K?|kxX=-s>iJCeO7Bi&XX(MDEM23Rb~ zk=*!nXYImXc%eDqX_Czzo=D#B-Cumua63}@sD)V=#j&}+U@535HUNvvK|#7jzrby# zr$fM1Zg6~N+prve1)M1hxCt<-<{%djMk+=;G(p7wbEZ?;e)0_Dtk|7*XAiITGJmqP z?5K?p45zEDmH}1cu`tFj>X5>+7oyB*xv`T*TaM2Nr=Gf>t;b4C=*Ps9Or&+h*P|9U zUm*2c*~fD9UV!2UJsOsW`7=Psk|XuvRk~&@-m7su+td6*e2~HEhn_YY)xa!`Mi|qB zy5b-xM!t0TL_QWNrzijjAH!$9aU)s4U4;hIvddf@y@L~@S0pcgL z>p}r(M^Gr0G&{_X?kO!%NHqKgw}>6G;%3WYitqkT(%bjbRZ~J8Q_{{l&5!vbm#uID zMTrc$xEkeng09Y>LP?95K4N$6DAgYkyxeTQfPC+A_QzR|W~ua^e!WgtheA?Q^RA-K zQ(Qp6RCHuo3_6Q@?09)>{|`E}Qt(7%`KVM$mmHA^mfOBcO=0 z`-%#Vhfy*UDVKShh!V`Nc_^*ja{SCi>7moPfb3XD^0sy_R#$-U9MH3%^aBT4gP%w- zD{_`VX+_@`fM2hT9(RvG_dNItUm1IYWn$ns;#YfYDmF%8^HQS9lR%Qx&md*E-rn#C zcFlykPG+FW&tEk+{tMhA8J$OXRV``_$aZXM(TX^86_!Nf7w)gNkg507@3oSr0YYJy zAL|O%nS(MC&R?MG7gt?xqg9H}sqLBzx%%~u=00uWvI$OL{!W{3C^9R0oU+)Tj|j+S z0-MgBw~RiR=Ha;Zp|HqvT|_to>hv|M{=4UFfsDAWAb8@WhB| zn+t#=R&UYsImfg4bc_5aP^j6*Mtp5?K*fWBY?u1K!3|T=U{9P^qv4$HhKNDUjdMQ^ zDD+ujOpJVDSdyKN7EU2BeiC{f-1jP1`^`0+fQgCc7yd*;XqDKze^LOAm~!kxj`gRx z6eR%M#X?O;HwDk=#HI32C|l7=U=f$i-w3VGhgszOz3&ys^CMug^7#*iJj~#FEo!_Q z4Dti-kw#IL&Ep2$#EZ$U^$e6HV*wwr&->W)7OQi7a@D6I&(Q**NnofCrrUSPC7`n+ zk2IJ+m3Io?ttx4ag+~^mA?D-iknFaFls;Abm-mmZXhK>#UWi`eF-j7Ba|VWZ9qd^Z z%h{d~jG`~|9}M_~`YBQgaA<*Irl&}{Rr(7NWJdYF5Dgiy6?@lI*Xthlisb)GU0$5d-8&?H z6!~U(ZeWw|(s>IwQyy9cND@tXq<5srgwqQUh@!_M3-1scj6ENZ15o;vVsBv|@ZRvL zW7R?iUNDeI_}f2f&D%Z%{asfsJEsnDdr`c?@zOavL9Y7}e`1rB;?t+BT|bPx#D0-! z0K)pKq}Uw8lj;8FghdNTi~YB>0#vwITn{wp%RM{+u<6E=iQgLiI&PYW(KLwE zX06qpR1kmwP+dT2V9K)1?8U{jhQftz=IpgrFZT?j!Jn?Qt-^#zOV`uTaE101sk~8{ z47r2AEt5}fA1EzrR1trlwiC)>dCY&ZRPZ)N}8 zTjtL@#Eg3?D|tI0T2u_o1am8N>n4tu6hpqEAhlb$e~yhu3vMxLLexfybtt2*WCz+9 zZR8CdzgGMAA_NY_w9<$msvB+E#sC-2T)(Av>|=W+o-x)ie!Osm767C7I)%N?vd8K9 z<_2DMr+GUWw%qz_D|B9k*z_n9>OrVQQQC5$BkAR3UU{qIsi=pY#?pYHdGr}50x)aT zL>~C=qTF<~u_z&fr6MmpLjkE)l@V42VaCv^$iiqBRQ)jTr0Q<8FV2{X#f)wB98638U-|j>ojl!gZSa$}T5;_Qv5i+m`azwKG zGifbA3&O29_}Rt3P)OmRK>YpZA~$DnVN5c!R5zxy@8giSUfjnC41H=h!N~wGS7EWf zz3FMbW1`&VEY0NNROs0#R`=?ki-ifB?lmZ_o_iMXXAL9pekUxL;%A++_u(GPW9%CpGL!F8zm{kY?$;B&lb(FJu^c{6GDtuL*-RcX9Wu~ zQcC#{;ap`pR%(a{|5T8PG>q6=(!$u9@OY3IeqpZ+zi55vw7JLz@UlTC|J9N_${jN} zmySTYUPEqs^D;0c(eTIIn;~zV)snX?023zfT@LHDDaN;R>z(z})+fo=TvZ>2OFlY8 z_gtSF55E`b`%umfZxdS}P<;8TO!j=77JHhQXaqOyLRU0i_Jiu-!h==>k%~{c1r}qbRCKz zg;uUzjn%n(K0uWfEvivKx$sGvBzZNl4ih5-ABlWNnQ%Ud=TFv3dB%7OKRUxfv%RM& z`nA6-nezq|BV=F4!S(bo z&Y!OpxiJJodR|h}d3p0%csrk3&g=N9y;=H4@8-3aseI(OGFRdXYtmMF&if$HYK%dd ze6N-jS^7F2HZPjonETLhlTk$XVk&vvy{4%7IyzFTI3NG#RX+*50{IK3)Lv>L=5Dult>Sbn~pS*w4~+ zy2Xd}9i*_z=Ym(9)G;p89(ZUd;rziEOSnpLVdv{s$2HbEhCqsOM)pEjMQgN-)LR$B`ci`jVU zvYvi!JCj%ZIwBZ_xq(GIxoGV=0@_bnW8TG>ea?sE<^EQE&s0nr&JAQkBt6lW%v}1K zl*^XZ&yG;uv?a&+JASs#yztQcZf*rbwgZwfQgu`Rl96nf=VdX$&GkE5exZ1_j*oDm zm!|!I9+K)i+OFmsEAINo&q2w_a=9yX3pEUiRBTvMp1ki&3Ob(b5b$WE#uH?`Jcaaj zKl4h)Ek!Bp{*ID9p9=~07btd^$xcx07PQkg*mex>7Z~H-n;Ya*od(f3+3gsjwIyi( z`{7ArX^yb$p!yKMAw}`ihD)D*M6N{o#(R2NN*KDYZ)eC0Q5n{Y zWVL)>T<4?(ULeGX>$zoAkmhTH+p;X?xez7hIcJ*Z4P%YHZ^gZSzmX;e8-n)aU-`%~m|QamDXI?UW>qx!F z0VBs6s|0uFo1qYRK+Y2Ql{nchC{G+0)HMF4+hpg?u< zis{IVpy(e%+=FBExd#C>ju4Uc9Ri6u6B#&KG5)G4$d-0UE@$czza~cbS!qbhW%$)m z3IKhMy)No9rr^z7L5ZYM-YD&l-n5ziv@$)|;I0kCoq?gEAI6mPd$zQLiP;%3uRny3 z0O{8@(_b@Fs%HQow1}iTW+}T76akrk__y#P49cy5a2P1F-Cmj8gk(+WEAK`r%hZQT zkeNw(8DjZ|wr)G&pfRYPC<}V_#fTq7Fb|K>H3DrVi>KL1L$S$ zeHUCuyNOO`D-P=r(vr&{dRSD+C?&F7X z5*uR^Tc0?)J#`W|a%`!rcr37BT#Ineue~6Fbt$PlTgWNbhX|)-&^N$|2xG@+k)E!hcZivCx0j6Y@3vK>9d#Z z2(HkIRCGQ+(JMY$(tm?JW&BgsC3H`k5U~gCdUDki(W|@-mb4=T&bhAq`YGJFehPWr znwp5-TyP`FOV>O6M6MJRi*mpFj!K^D5)=i0RqH+ofjNFhL4ap%iW8AZe&1VvKt&ck2a>wIA`zOH zrshsfNZ%W^Y!Qew7#)x{GhhaofxTWx+mT}#AB-rlVSK_=Zj_J(Z<4^eo#sA$&5V5})K{40FYB5Ax48PxL=D`7i;fm>RnP#J ztF29^sFZ|xTN}4!FS^w+V3j|J6g0g>s|aM@9#4D zX87E~)`K9|ghblxtRhG_DCAls!;q2RA(zcr)Rs#^WaZJ1a_L1rpqg371m!P}eKK$A`_q2FSKkCmCy}7@AvSM@djN+Y# zPUFda?*B6NJ{B)NP~ebmNpMj3F7UMir2f;3WT1!#LV7h%V`VK|F$SAc2L|NF$MRnX zBKZV^niYJvO?!%yj?p|1#uh*+*TdgZZA9VwcZd-B*t(n1e;VfBQFkO~XnnB9hwt=P z$xds&6J|ETLemecOoh>aQMRT}OIy)Q0pf0D_IxdZlT9+fuL$0Ys6QreuNmtr-x*|< zSWNrz?SMe~J031pE9YLv!P@PSW13Fu+ga4L4U_msAWa=zBv1Yj%J;FH5w?U&K;?uK z?F|-he&>)RxW2l7XT9>?`XHyDAEn5JU`H78`<#1?@HrT#EL#|77yB&waeKyl19pQ} zm+U0~#=Q6b3HtZuRfM-X<}4SY=b>ITWH4T_t$9=>Ke)zdu|D^YgV4f{H#Auy z1~69hRgM5w*#}P$-@m=N2BOb10XZJ|l0H}5JuDZCKWyuWm7k%l5;Te5lqG_9U-j|f zobK^WubsiDi}rkVGBP~hyxfX64289wtK0rqLgGgib}$lhPL->V$mee8BRcJ;2k}Re zDwm9#&oxP0g!w$zQ8;$MGc4L&s~#3rIM~mg+)q*3e!B0Lo}sM{ckno?%;eN8AcFB4 zj{x){wCVtY#zAK$|NBtTg|`VVykY@SaQbtSFB+tiV9zUhep7 z#CGWBg>;E0e0c-^BAdDL;hY#M`GznP#nF!|M0}|Js|jZ@58KKaGno|!a6d;zzY9n| z{0UH_wMbc9E~Z)TDYsLt_;pzJNt)61K7V)lYL?6AUf(Fh;0OEGiDp?vl;3!%!n|b? z-aOzGFMW|{0YK4~zjGm#4W1!qy?>1x%`QbNUI*Cb8)bddhI9M7ZHL7LeiX0%*vSv$ z?rA^o>DM|5J*)aq{~iym;vj*tuLEPUkzVe3p3BK=es*D40kY;Syb~|a`WF~ z^-sC%eR4>Dhbx`HMD9B)(if~|3I99R4EXDO&z)Y8+l4zbCN1cSH(vt7=1wn&UIia3 z&oHQ?$QOG&2sdcHTRat+1#Hs+ZIDHVNaZT(L;n8S)Rlnja-0zLlh2^_p>O#i=9TZw1!Lt&-tTv}RaBbWVRND{^+!uQNCH^~HMf*pav5^OSST9f z@HIMB3`{S^oR`tfAhG=S-=RzOYXol^DKht$|4GX}M1XqR(DC(d3|JGIbi1Coh{Z@a zLQM&RkRT(`fe1`*J$&Qnw(?fhqMR z?$th#u&P)p{n8^-TBo$kEBu!k@ATG!yeZ>sbxVfdsx#0wp8s-4-z#DsRH6sE(>zqY zhto^Bm<9q@fzwVNW}B*jP&@j(!-p9W;|QY7x$mmpYS;9z>C<(@1Qkg+iV+AJ^6now z)F5NBLUO~E+T@EzQH1mSG{~*?#)+KwONYEP8Dy8-u9|%S`#% zp$OM8S|5bH7xMj~@-82j-*Sp>ac@1!cfWq2-=zIF;LFtta8%tXN^p!Rt`PE6!m=YG zBha?=wasUV_yCOt&m1V#k0N$U2`aOq>zLgBAg!8;H~Ga~;LFHDv}dRKyX|=Sq%CFx zx9Igf54Nxyf;1}y0@sxk9LiXv-o`@t;Dh_(KI|eL9b1EZ{dctPI%@K6ePNh+5D*?A`R2A=}D6WOv2;CZDLc$9ZY^ z9ru?noT_nyt3{l@M(wU$#Zj{ZSBPD^B*o@OOQGX74^fw{WAXMYRv6xeceL;mRNet* z+SPmFLN4;Ja;VuT3tw3|kLWbsP!q^;sP-RWK0v5}9=rN4U)Yh8ZVH}$eQ!PtW+J{^ zxJF>oq452zF0wRnOLgTp4`us}ANyzNx70VD=G#`Zex|s3=nF`4D)ZjlF0}i&p1@TvaV%`36*(-~S2n<*J6&TsCxS7H z(pCF6vq<-Gs8Oo))r3HhO$JOP# z@d(FlxI-|%j~0sqTWpGb2y1DFNmovh%8@C=(wbeEMa17)fi=TQ zzp!xFEb5*fI8ifhQ^b-X!_08izuXkZ?p)00hJkG$v1*;amT%Yh^;nD$*$@_Eq|_HT zr#3hNdRRsSB{TBSo^J1c&8#bx-}AE~;vtu-o)fI@sih5@bcuWK-~68=gd157b$TNQ z+vGuP%UF4eFtIQ27mdE=dkTHV-vAv|pX9XvRIQ9fjG5Jo9)E`P%)<#nFQPxZreulj zc)t>%tT!{VV*x-ov6(%x`T zpk)-Fun;UgY4p@T^D2;@xmoXlO&UjWd6w;Zrk)?~lBF72)RQ@O0n9u$))qLB(pSx{ z6&aLUZT|H-zB;jE#u6Z1rA-J$Z!cAfU_Ma}#&M33a~}NN`pC!Ju51CB@DYl+Ta04A zyn#M=O(;!b)rk9gx;F}acEm>}j$=y0@zkP_j*UF?WG^T=1MX0nv7+lE`NRqfH3(FS z0W%?TC1cuXA2p67H&GZ^+5)e_ChLoLC=%q8g2vxkWEXP)`!yH;i!cSF@!q@NtYKSB zD0}Q>eY>iAA-1gN^tFq>ftfy^#|-8AQg{sC3=D7~KD^PvjyTvL^c56^<5hUzX;74l z+yU%(VDBSbwP7T=mEz55q=DeBHl27qgg=)+^HDnKhST&i{T5z+zrlUe{x)?YTLjL( zF!ITt$F|!hBj7Xq2C&7r6davZsy|kEIyniG%!E_b~Tl9 z$PrAbn|sRG<2Zc4Y2uc1dmRZrzFAY{yy|VtV$Wg1<_SDtm-(pN!Bp5&73c_@%QS-8zlQB(o=RnQ27Zx^7Zn*g*Pd-m-MMx& zdK_4i3!YV`+|tmW)xy=SohyT2WRQ=`1kMz&vv&d zzb`g^kSebqTsxG)s~);RT|(bK{h)r=j=M>p*v_RACm#H~UXlGyxbu;Nn&U+vw~7eI zT5t4SwuG&+Q$}$N7q3KPoPYdS?b~df+tIPXHAYr(Fx;-1+@~j!#Y@6_r3uMuu(7?X zVnI6Uwza%cV-;V9QxFSQ9>uE$27CMEf4y~dDY#()v!#l`?0w)Tj*3-H>D_QeK6qmE6K01$!ez6 zMKX4jk*7PoBL{GFwcjXqKeUZc*Lj7+Ce&-R|>B74h{iaTrLL7E_<5639svLrZ}M- zm0h<}=<=$2o02S^34J#O%4N|o`3LiEMIQZelBa%b^7*vZ*Yj=_o9>$9B@#Qx^t{Ld zW^^R#&8sh`KFDb`Vm%7u|J}b`y_x%VHHU_4+8A#T2kRcevHGR*QMl7<}>4_0NwzBuYkFwxGCoI`7$5G2XYbjjj8unLaD!(6gkF&3)5vrcHbw9vnz?-xig235fox7$N;cG(6Ljh3hhTe`7ZM2YzsS zZX?5JY+cbWr`ga-WvP$qz=`A6Yfd9NPh zZb!VPX9@ZvbZ07=`iY{L{oCL=xE-pn8`(JD*u@*bs(N`x05-pD`BH6p&g+oVE2`Iy zdiY#HbM_d@I1H=F?fH*`uAdH|DE@7fDbG{xN-XlTvH1P6?Ky^#_nd4#Nc^(70kthKP}S1-J)fTDZFEZ;e4Tob)LD$o%$EcunA&zpbQI(1ua0!A!ce zm1Ky}8rP>1t{m^%kgA)`bNM(rnZsvsit<-7E+swRxS%l#javjHTl6oI?hK5(u|u=S&s_7RY-o=lkVUPC02&JG(EXO`Y3-(Z77RV%`UWg|TjMZQB65aW>QE`WHQP{Wr)Km6qitq5Bj*7e$fRT7H3%*UP=a@d!I!1Gay9 znRjHX+$;ULHF_)jvrZ3iEblGod++Z~mGGlrY-5M5K?C%f9%YFdmC0_#p*kBTY%S11 ztlFl@%YqO(#tWwpB%0i@JEQR1ao?yWBJTWabpg}oBbFWg{{KGObc2#|4`1=&N4iGF zx<6d>J7epfeyjIl`FKXN zu3y7>@5k-0enCddiVX|XjXLFl{h{Tq#pc@YOLqle#JGILcd8|$mu>v7cy#I=^=x)h z3cL46KO`-@{SE4X;2zPZCs?60^0!nLdydxn9dmS=f+(IGqpZrd*m1?XBhi1|IQ-0!Rj$I5dn8Zg%_C) zs2t7RgoKIY=0$ODtn1d(E;9wq2_dZR@^V)lxF>S>C8~qlkoaAr!MoV7JFGe@6IvR~ zC8xL^)I7fXpueZ1!UA@2Ek3n3B;{?Y;=o_w+TGK&h*jiYkEn~wxXX3NdLO{vaa$j! zM`l1W^rocY3`PaZ+_=|KFT)-9ARoDsSX_twZwq^e``&h;Uu8(_$%+HUBY-}|OP1coUqQsodFk)?yDy<{K8kHyg;Q`7$3ZdStQ4>S zhO8I9F<75ns9u0K{OsegT z8|)3NqStGN>1eSbDLkJik&{JKGQk6TKNhWTJ@0JtD*VY&3L`;09o{4V(;w~ge1!4H zZS_3EHO|clz2!naY#N!lQS`7S#qH~jukEhE^eloafaLszKj*wlW!^f9v@KqjMlxdW z^UW)|CGS_k=wF4KjXsam4Th5=yMMD~_jik~MiSzr>1T*nyq%W6vat!CHs1As=M#mP zG0<2UT*m4~WxkGkOV;}%8@#IG`NkizJRgd4AxZDj_8!v7Hev75E}s?{Z033VTA%o)V~um6EP4L2 zv(EL!L}`-MJ2P_UA^mPziCjM^mZL!$I2F+Cy_~QuW<*86^LrA;pf3%6stx29RjRdq zqeRqkFkgAC=>KH~+e6Yw81Z_S3Qx!0++p(QJ5xI>X7&V8k!CS+M#xdNT8#BR11C~+#0&xOtT z6pIxAJ>V`J#aUhRg6u6w2LAYb?)cF!(HXP6H46hKkMqAFMt|?rF+!ylEYP7@ZyMvL zTPBU3bA2t_jDDC}1hMfgUgu@-to`CI>F>WUwVNq2+Z7^r-m*Dl#j9Nu51{L4u*46M zgaoZwK5>1_@(&d3XmZ5dJ3VD#b?J|9^JW?;(!Y(RXNin#nx!w-<2DOF7lZCRh4%uYBN{N_QLt*MV{X_mf@ZsVx! ziG58rH9L$RxoX%o+TS~#6~NVt`&IW*Hni+MoF&SfI!+%@;-WBb7TnbHFlwQ&j zM)uB7Hbc2sq(lGRYbaUTszO4HeJbKgl%Wx9Rv-wLXWgJzpC+5Jz9EWIW;3e`zb zrWmEeF(Ln+cpr2!Z6f~@U)*@i#5DkB_9rCs7tHr2ntmD6?}yvOdZt;5)HxT$-duMC z4|loIA1KA({e3ytla&hcxyTHAX)OAvvJ$3;zI*>O#Z$?`hToKWl8|?YaVqPLpYkeA zo{Mmj&zasJkjmF(iGl>GU2o#qO$R|bDu&d5v$bCFfrV1dl{ zil*lT^2PE!WEI4P-tPX53TF_I1Qg?%yM1pJk}b&vY4S6Z?CYPf+0~4y4gqn#$2Ksin~_ zuYC16Gb8z0W+^zKx$lu2UxtB%5nO5efgU)fgsz+S8XzWP!jp5gvb zuc@w^oE-YcZt)z`zQbyrL%)_Ccf6LJSF|O%g*HR1gtXeYw-tU{^kYKCP$`;%e@Zfil}r6Ml{zMrv*G+3 z5u!IHsH=`)L=@2gVOVQ9oD0&hf})3L@=J`pN1o%)%yv1hNlaWw)W-qM1|@&;fi0_? zDOQLtV9XyhJ$wS=hV1#WBALciU5scsmAVKFmIQxkz6fK3sXDy$=c_C3aN5Xf2s5Jg7VOtD+Nw!dBo|R~Lu<9zhywndea+@b6ZT zxpkUov-S0k#|8Y@M!^(f>1qI6)OW9Z9N53J#^DlmhlT-Xe=+uO1^VE2O3_@p^!|9K zk4phqupe#!F81Ml0;o-M$sFPn zJJ;IRWFNirc)xy(FChFUvrAUi-7(A)|Act27fYH@S(~9naKJUFEW55pE6>e#?jZ%i z$aXXB9L?PMWiy>a5?UeD`u@S;X+0_Oo#)tj?lvJ!{LLBj#EV?xL>`EA%du z?dhAWT{Be$YsuY3ufyKVvp_l{C{?yC6@%C@`?1q!E#-=!?@=5NiaX0$ibBt`du5t- zd8#DdD-4k{)x^YaJ%DlFB99p0X$spBoRvO((kN=POZqfFsnWpRQ1^!E{b|?U7Dz8eUu;}Z2&wv-dQEBzHrMT3VkQSH7#YG zhC>_b+V$`W?M&~hMds@u`1N-cRA(CXnPV(q*`)9=4m@3jBf77`EgCo4kOob&L*qn^lP_rh(LT_*#SGEf&$kHJ2oFXo4KMh?)ZpmqO0yy`e)`i`G(zqMfUlM9>rtrH z4V&Z0km62+jo;x_0Xs&zD0eDPp2D(VNLK8RsZl60tpD?nRe-AM%I5Peecg>)8RBo| z&&2um|1wMmUMFo^Xv-Z26Jg)*>W02tESvN;H)1Nek>8FX$+3r^MKWW$m!-g{zo1v9 z|Jn0y5F6phf@mMi9cla>LM5&O^B5^zM{Vu9zCLG%pdbFXX4)&+^Zu8%tZ4NTc{7r1 z%|7XtsdxbjwiAozuSY{i2V47+_}Tr;Mk;o<{BMgo7G>CDJRI<;g%C^}ItZihwAO5z zPDutqca~ZrUDN!50?oTPNw1^9VWk#esgCihHv@9D<^BrJUhn&np81ntrYZA``e?39 zjxG(G{E94dGE|P9GWZn{8=v{_N@nI*(OzFleU!YZu_Y#@RIu7#UaTC0;^ReXf&w&p zv8nT2HV!8DjwVz8YafVRO6b)y9+wd+%eh93{!C#m*gS@9`t`8Fnctn z-1SJvC)^}`9Dz0=dT9IA?!1J&Hu2LR1*Pz#Ft8K#j1MMCtYAXUF=y!MT2Y9m@<(2J z6)%aL5W_S>rscS_f>bV2<=Z^`?eXCMJ~=fy%j>a3wIM#C3f&YNRo){v4f<77h>O}M zuXL!9V3?&m9}>oIB`xDyhl|N7@!4L6<`eSq^I&P?Esfp%qIwa=|Mt=J!u{Zc@HG4^!W@AL*BjI{0|j=RLsw$n$9wN|BKL=`h%u-7kuK z=~eaKaxczi=d8B`Z9lr;D13Jrl6D%G))m##W@s_+L@JMFGueuLbm{w&@?Xo4{`zI^ zqQO!rH;uM9*0Jws)`C%H3XLmm%eoIVgG#|sz)`3Fv*QLdb6@SMfeBM zi{+pCiQD^TMHtlSswppxU{~u95Q_Qj7^~cK0icp<)cN0nxIZ^Zr5h}~1 zi?*zcQ1hQvA79&^%@;hEb(}>ASC#znEE;ZWrSFfc9Uv|i%wUlKP2H;J>cO{?9;a9+ zK$||Hg--tA&5@Ft0fp=ZTnO|v<#wZxn0?NLmt~M zIcXp%JLR8v{2lK+=;_%uAG!}3215m0F4H9?I;i^vxaSn+lPTsh?BBdaHsfU+0LS?H zY1dJ=0fmbu-5F&e&KyHA5i45?EO^7|8P!!iXO002^eWD#IJm6!bTT3{fatEg*!@qE z=2*+*I@wAc!t`epI;RimR0aOc3wI=(FsZP#pY%3?$HX54C!RNJNga(n-l;HT?&?iI z+^(5Uc*WfQNFCn#k!7=9w=dIWWGUzdha?pn;sM58e!^E+-$8BRF3Xi*>(SiZ1m;>( z9{cW5)PEch%|}AIeQwayV@q(*AZ7&~d&bY4_!UFaR`k*XQzboP^-FCmGbPB)2Iq1dIBC>fFiD67xpEAY z-sXJx+;WD{C|_aXy3%Mt^x|0{qGy(8NwreO|;*# zFBk9PP&FC?$Z&WC_9ousCQ;+nf^r9@=hE-=dBB$WCbAVcGzb4c3G@@&!g1)X`gSPp zM)3cy+k74MkZLw!Sm@rrH*4P!b=PB2&#@G@2#N^Khe8_X*R;_ZvlZ>QtK$u^$PF>V#8>q9 zs#X+CyT_obcgV*xcF>IzqBw$pl&t z%+wFyEW$@|-SyM5_6j#8wOo#cGQ5ASARA|A7z==SkO&bq9Tqd$n+@(+g`4=M(*C=? zZPalUyp@I+v0IyiA~UORa{yRG9n#@37D_ZQ>29JF-=vEgiZ|x{vLy4Mhw{Ikti!pf zk(+fP3x~R%1tTrMPRQQF0Hyo;OKozWN^J2!y$~nm`FG1#=;!*FOx=1vBcs2N*#t_A zNp85-N5&?IM1OP`1RM5P%Bw?UYL$Siir2u%Tj~r%Rq5CXZO&^L_-+EGG?m-sLwi5{ z9@u8hFrjO%mHX7}Jn({@OH@b+;~jNyHD#@ACLL}#L^(Y8+|(id8lWBi8;JU z@OXp}8i_Xm2SugcjQae{A)1V0Jm+F5;4q~zF^N5TJgG;c7R+lN#-u}dF%ohF5<=sS z^%9;{y8a;i7d-vXc`f!(X}bz(#7fz=?!miBMyTf5tPPZW2SNLh5H2Erd&SRN!Tg=) z14W`k1@u4(_y^P`kNv8*hsDhI-YkfHC-|Du{qN~@iNjR~&POe*>$|EIF>L$9Nhkpf znk$XpRtdI3Zb)^ljY$bZf=|4fN+KAyQ3Z=q3<_y>{+pWDPe}${b=h}rWt=gB@$V&Ns_b0&^-&uwFCBlpjUvEsx z%dGe7DE43ReX)gW+S=X%zYqO5Z( zHm5A4c-oM2_qVjV;dHmHG5Q7=`Cb|OSNeA@UT%#-&{P0;pJftEzwLg|!oA2;OR_O8 zc73kX?H?h88JFgr*CLzc2@&}ok@DaS`P2oNTfGJc>tBJsXn|?lJeKPh7UHmkh@<$bIqilLHR6K6evStEeg;@3Un*M^NNSVX_kh zSkdFdnj>`$Coej+RBrnmz?%b7C;t8w>;a^{`;CX3sw!81l4h23bd5P{D*CjlL86IE z8c4-h$+5mC73hwg%kj{nxo#xuQ{mFMF$dFp!dUQ=C!dY{7MlR?+j;v6c)Cgn zLDTHUe&1fwxpWk=xva>&1@A=G;ody%6`N!XsA*Vh- z^?OqciwUiyUdW)ri*bQwfzAGw?&H^7K!kr}6zJmgX_I&J@diIOTWrKX8Fq01S^#-p z*oMs5j0EbpKX;xkY@PvE-tBGkmd$MI2MI75S2Ll_>2tKQKa)<{W6MO?)c+PF=yE92 z*f*TrWFAgG@mP1#-536)XR72aw^!HP{XIM~x{=@7B?wtD%dT zv(fwBRt-Z;u86FD(1K@ldVRQ5h_lAXpCrL%ovec7v_|FQS;O=DFP^9v36oz_NQ51F z1}x9v%X&SRbDFwjd(K*A8|R5icw`0$;R`byAuV%b~@Z8=M2#54N z$sR$I zARwvHoJ?ZrEd{?U?ibh&{>M$s0g}ltBmL|qI|aIOg;2QiF#Q*4{ZS(*L_mgH|8<#A z2%5XX+Ce)vEXk_}b1b+!!yZW2tBgmj^&x|y$Dc#SrSo!2QSoYg;5iV1C>A~E8+KaP zw+23dlxO-bnFJ++*`1{~vTm-aKqNMCMb&7-ZvatIzc1yKgsG)5cWrcCnVr#ci17t| z_a_U4jICV~1F^eIJ12`-Ac6F6--FpPl{WH@d~(OSqhTFkQ+}J0PK@k9e1A|db4c+- zb*sw4P1gTV1h0fcJm(esMXAuG?H#k0SNXv`9;|NkHX%#-*os^{)qi5}lRN7udoF3q zA;!cS@OUOzsNomA+=mI`XPzGgJLc~~Gpmvo-lyUoxfu#oB_#JE1dPXT0U#KF*Hdb< zJ1bf(iw6&rfnINP^Y<#By&Az?rnLj1%bYGNonO(%Aw}<-yoeL%yYx{}D(9rVEzfki z0$k~A`*6JP%`RR^)nphH1>zp*&K_T(b-ITqWVfPduizi5kYA;X>JX3gEP3{D64$tI z-WeisAemt!j6B^6&J01$0`Pu;o@R*|BS48oawD8bADN*^2%m|jzZqYSE*0KhmwVlE zWzKCq0|G(>^iFDerACOohxM9027pbRz%P*6B?cOrZ(sfd(SY?7`Ls1T^idT$*;gyPoja0a0 zn1KGXLjABwM}y!i3c*IccH${rHFEpt+~;+wgfr3#<)ixf>W%n9PEm9!NacGJFV7-d z@F;aaOobU6cl?R_%#sLMc)RlC$VAD#1*-*T7Z;tqsuY}elmf97MgBf&HIY1Rm9^e2 zi%4DQuIqbajG9X?Kb38O26Kh{<~8>aTz`V=jl{Ya!jA zPq)Y{usg4p6rrg)Z6B*QCgJ;2Uw7O8K*bpD#9acHI3~aAp}|w$tUe}3`S-b3Dr}IR2(GxU_~34Gy_YeI@>mIm7du)#M8^yp_-RNP?TGHe^s>K6^@poe>91t^is}g zd^YrZSo&ztGkc%3_N!a2rcT!J!}%L!s`wMkntlE_SqlLsdh-aU;V>i?D)Aoq40^3^%Fbs{18< zCnl)p*^Nv^}OKF>vQKw~D^U0Znwdjp5t3t7{)0@f^yhZb2ilXmGyKAIgwqz6w zkeUo^9lZ?+S!4tBofAJ<1Iv$hRJhvivIx3j-50U0q^$A|N&c=gLO1_6qhbNw>$QSo z)gnmV5ytVPfIHo>Dzyq><8N11+PsEt=~6AfCBK)OdXcy8N4nFEhJ&Sq1gZTTrL#GX zGN6eCzK*?RL6+JXw@xMbnYPGYt*;HEEEY19)y!Ewp!DMaK^`gi$KnQzrqj(py7N&)NliEn%i zjnnEr=&7HvE7gY)d~r<)qkKKon%;${_Fum%*9&B6=wJl=*X)|gxL>b0l_K7iKI^;b zrJY-bfAFe5r)|o*?GFZOnH(Z76zw_I=UfYMIbCAv+}wQj2m^L!{0_5mHHBeN{>x9- z-Y%od9n4mFoH7Nb5h9)kJ4--*;%)j`_Z~U$6J`BLu2!cK|9ZiIz-4`kJ!?;ZV8j^Q zR9lP)#rZ?keCH#Qr4D|&MCXY@mwa!eatt$*{$TBtXN&GVf`0r12pSjK=7GI0A4L4K z|7GgqHTMbm8VFhg0<4K=XF*j>EKn&sk)kMU1x=m=I)sl$`ryvE?&nw6f)+eBgDN5D z*!;|km?@W9^-&=`(HHj*x{{nR{nT|}WY$LM#6T0J9ru1+{Ym7jhSOg0t%&bCOrHyL zQ)6Q ze!oj=kCz%f^MpF`npe2pG`M=r`*HV4GR5)!;vLI^-`S*tWDkDv`h1zkx)KAfAeUM6 zIWN7`H4#lGyS87S;BfYVyXb+KcAdh`{Amc!{wf)ziD2nE!hTdjXodmG##eGu`(#_U z;otQgkCA^~E_ch`tYg1_oi0N(t07()5U?pEsJ4Z3QT@Fna}0dR%0}4Z=CwfMb&oM< zw0}8>hf4qNze`HIG1zFoYIytZ(e;_T=W1=s(D8Hr<9shU z!<>i<5;RJs?RMg`^{6Sr9}^)%q3{L@b(42Ss9wP&6&d@&U&xfud#caK zTtZeB%^|*=f*fLsnWnn9Dm5$)V=D}l62{-KcXxV$mh+A`7lV@92ZJ=`wpcJFZau2IF3(3w70J1ThJM<+tlYWH`BnO5?^CI4vd3=>aB54N#epT)v_G`hDTn_` zHi9By`-KK?YE-v8TA$2r&TtO(JNHAJ@@onwv?ehOUum{(2=8=1k(-W7ddWNaU6GS8O?`GH)@;}9g%2(Lj=&B7;5-za zPV-#(s3(|7Oii^Hc+2{Mudx2>@z+LCocrU~$$9RH>rFo0#p;;^A=rJc6?{0g#;|n9 zS)LS{hFq*@c5opXS_ZnI~Ea*WcbH1q2`Gct|MTUrRz^J=h#-yxEex!dy4= zMHManc6jvCIvR)${1N#;F@LytOXY)Y6sfXc>$?3&?tP@5wUw@NR*w|1JGz zIIf#WQTd-{uJ>wQ5K^taJ79j(@>;gs;$;_<=7O^Mg?kIKD1DAV*i~;Ni&u@5&|K{T zpo&`%wgT;IA8nkEc1Aj`UbsQYv^qL@tharSwE0|%FHn+ZvuSV3EtKw{7eG*b$Ug;` zkEVZfRHC@OP6Q!Bg=cEh{K+S|!U^%Wf~7j=vOb*F8F>S97SHviPXVfQ(H1a4V>w1PXC_$oyn2=R$cjugGvAG57d_!h5kge?|MIvNDbko z6JsK*ADrYc|JLXL*60m&BnaJX$`Gw4r1YW2jR#(OQmHC;z4BJ!^RI+ z`+R5jTNGGW#DY`Lwdbz=UBAECTUs6 z8 zfrB7t!P7ldn6K#it1vZ_^zto(iJykROpqR6HeR!YT{K#GV0!0u)y>vjI}9M=kyy`uaH>gIVxmZSZE1;HE3Pt(6MpE1 z)l(-+`Kkz;UPXyDV=FlJ2EG!QpvBPHdDvx?Sm+B3T|@{B604v&N(PRydjs3oKclhn z8KHpVO$!3H+syl)I*%QDM*qh2n)ei{bG;gTs`9+~^5%`~-Xb1gWE`!H#Ysq&5E9F27{_8hg%u%R(4p** zg2w(lIUo;7*6GS~1tw?g(1ER~|MJ7vvW_6=#|su`!Sf#V{zpWIxCG4`$?fT_GXl7( zA1m=6Yy%9>6S}+mzauzGMocT?9~7BKeShXvt=5`k_wld;Zd0ddFFbG6!le48ozp>x zIW**1o#j(>#Qu>(TwuxDp8GLUmQAmOJf8~9+jl!^nqdJV+Jo^n1Sfx&b=a<-70sF% z49}tY<}x5lSLfXV6_g=lmDstr={Cz&;D+nQpl^^Ha=m>D+Kus(-(w$u%20iFL7en; zM3qBBHblpx&z6RUlx6X3@TFk8uDeOS=s0@Bpj7HviLPV#AIR;&bQB+t*5__z-45r8 zdzW|gg=wBZi#>Xh@3eB&GFBj@03CQt(v51x|7ymSt1GdnAD^lanN`^Nl*@C4HXo*c z`rs<;_<1i7<*UncYxVX(Rp9)KvMyxgup4xLk?Vx%H>%asrW&;&+8B<-;Ln)U6cL2%z;7X%%@azT z)+dWjXGl5Ccf@-3&y+d8Hjzhuw23syg#>GoIH`~nNe=XeMr@)M%Wdg*Ho9Sxf zN;w;(`8c3aGtYh0L@e)it&HR7dZk2Y^10I4X!M7`sp&kdGHYrb#T*Dp(^z6nX8y|k zGzR2tI*(O%72qH2g*?1cep)|r(6-xgycPUW>}^j_+#)9Z%bh~zr~Sl}9M5|~w&QRb zxnlCKD9dpmxYFo1|0?q>>uJQGRct95-jvxZ3T3Bw*yu6HcXmG`pk-a(VbkkFRyEdi zw7QCAc8H25sx7BlUB5E-|A5y#02askw($L0^S<&=4hS4c}%qbSbvn-11@QFmveYwW1ipd z`H6&NK7rq&rHs=SfJ3}Z=Lqdt=|PXLRNgr%e)?$uO|vjZrRVK3#scum*2SqG{v^RX z4%h>}{aYfHQGc+Jky#7uELz+3m&ro^#D`3luZrhM@i5i>`&GY7(X~xeMAH>%OV!!F z5cDW?H}k#ya3liHZn_X(LQp16vWe9z{vfAAw#sh;doz#|9xc2?-(8Y5?1FbB_9=8o zV?DF6oq2sC53y0^Lxq5$d)F!-f9pRA(XiE#@IMunu=U8^N)21)$H9*bd6?~@)W+i?ZkNgHR{3z(w>(3Lz57Nw6wbrU_<)(8y6mMh_yu4 zEB@uxe(EHZ|&TQ(1RX#vJs z{KkvB=ygy0dHLT(-V9c#l=vInS5K$3+c(sQzOP$o1eHfzy2Dfft7nPY_sX z*wdkWRfZ?0$Aa9~n4s~hku+TGx|P5R_uGIgv%%ZRU-cTVq2F$Q?*g8J^yOZqqax{g z5ErR~xvoIK7e_>-ziS7iN1041irEf=1=ydwgBPJ8y^WSnmanyVObC4J{*F+*(v}h- z`>V&L;0ME%hO-MDEm1Ra)A#I&NzGkhvxszs*__LYG@eJqGg^F|pTTuSi656^6~Gus z`XZWqW2wl|8GcB{iFRG~pxruG?zD$=+; zg|*P$DZpPgo0#h%<1>kN!{~dN^$t}_@d~UT<$Ul26q4h86vl48TlBQgpug-+5Yp^H zYhG!_aDQKfhIY}gv_olv*m!W2tC`7YN;&O~@Vj(W>y-?uAeedAc;>15yNE<{iXzn1 zBX(y0fXiCIt#F2B_on3EJg;bA;uP)0CW=p|tG&X<6E91vwX08s)_qQc0 z=61`@D?&7LUo{f0?%xm&H;8gr5X)VSXFY&`xiQ*VK8&8a;^xT1iI@zRi9*?8TVCDp zJ7?`H`@qW=Htb>brkL*OkT>gq>F9L;iN8lrOI4gre5|e5s~q)ODy2}B^Gv8@7y(2} zvo-H>?pH0W?8FM)haJYlt70?tGGi(wO9Zz~bXa3P=MyYaVN$%If?5#6Sy9EnoYRgp zn~Ng=C-~Dwwg8v$Yzf4w(1~xqT^KJ#Pjv2j#+H2N1k7>L=-~hutT5D(LDE1REdQo{ zj$z}^UnwdZYNnG*TQSE<#m%*v;&D1JLD#FP6=SorMa5o%M?EO+2S}}ixxvxgDWa?T zq-}eK3H&=x;X=aXz+?1^qYK88MUKiq_2W-4mH~ifN?Q=fRrYuk1HhuLP{Dy|VsN@T zHCuQCz0YGbSe+Z79ExpL(Ji&{D(O^9TY-U{Hb$Ol7{GOW+zN0UsvjdQg-}vYWN-H= zP?g#o{@NFSDbfIjrePAGgRM1B1!`H#&vB)Hap-Wk>kD$?qtpMbhh;uN|KT8%%QQ4# z(GU%juGEFHRa2KJZYBzlH-@=qNC`rV6Yh&|#|I>7p?TLY@e4csk6pF(-xJ~$)SW?b zW~F@ag8XgKo|M036z*ha%L^QS#RNxDzhLIKYm`R)qH72TO<)sHo2;fh{fxrSYe9^G zuI6pq>b|>)L?tIycmI}%&YE1g$@#G#QI-g~ymp|fgXL`u@G?9}i5nv2*jIY`Q=KHkPISVf zHHMbip9I{P0e&*13uQ6j##)YVL! z1*TXDACK@_Q~z1gm44L5u{4b-)mWC8uZV_dqw>KH4( zf%5DTPtun*&WCW``{VGd8; znd|M3(NXmix^Lr!c>MS_6*qs!^gk?}# zCDr@`LX(YpXTddG?-1iuDtw`hJ~2nNZn^N|n-;C_3&sqy$;&Y}M_%bfqYxdbTov>_ zQ`L&{5-1oMj}e=NQh!mg6}jJUEil){CI63fJ*DkK$Q=7(m<72fQw zrLzQ>FFP3%P{vcTvKuJ=9QH8;sNbtF@W5WXmz`P#68!Xy*XcgNoSv{7yuRj>w~D#~ z7~CV!T|2yfw`klW?FDEvuq=$n)H$sxhz{!G5PK#@vc`Io?xUZ`tqumg&PxH9tQS{Q z!l0cY^dg_|Ard8$$~Erw3?o{RcXKnI^U3BzM)8JiYmz?A_9BakA7du`E1H($ryr{u zHDk$mnGd$2YC&vljNLE(ZIj(27E{0NP+eZ}bxuvqjY8ZU1GD}m0L=X~{1{TD4*%lc zLuX^5NCT#>b^@EMbXQ$~2}5s2R{TaZbbn@>P<*b)G`rE{^rNgj~nK|IA8t%b&HE0hIp&?Uu3Pn7@+Z8Q8&Pz zwL%bbrHZWLdj-_jZWq5N&BP&mctp7Gzl_nX4?YSd^SC9^pIXA8Hz6c>csZa|aYjMt z_RhB~e3EzaTQ@cO7M|&%Ont4}k>~u=MUo$^XRU2nyB43f4MOkSnAE`p>9B;Dv1~;D z!w2ZenhOPC`(om!%f7YGg=n3(no|q4Ej&w`h_i;mg&y~awS%C`tP=2X*B`wL{*v0* zoBY}0r>j#soNV-c(Z-#meHCH^m^lc#2!2VL*${_UMYpE^M>C~9uiyoHE_XD= zDE(`8RCt(fx9p+tB@XRCAt{xo z--Uqm=%>yGkU$B@b=3)sUy-|IGg(T`mJ_z}DtE4F9Q&)bs`c+MJ2YQNv8VgB#iYFd zI-SzhbxEOb1+8zZ_?AKiH{W6-?^z$epmi~e=SYSfy>>UBl;?p)IZ^#O#eOX{CCqvg=Hp{!&oFw|ywg9~xBu~5N0~)bM!T(9-d#$5pL<~18_MZSaTOw%e>5uTva<0a zyZYa&vGTnDicD;3%~jUmOdao~Q5ye~rhJ?MxICQdAEa!W z^9+mFT{EnaxaSMnnf6RjIJ+X%qaKfed65Ftx#e6{+C`r^Uus(%PY_xdvw&H2 zG@UU_ZuzT?1WFDV$~t|u*PN_yeb^5)4S3_M0*7Lsu|F0yw*MjZ*LIl{qxzr1@__8c z?^Xr*?guXlf1{`y+OXD#19@}zii&g;dow9ZnGJW$|1$HBLLN=#b^M?Z%&8nEkOro6 zH2Ppxhj1RT8&OH~Q zUCVT$dVTId^0d?pDcV!xrc-mzC{e(ONi^om<;4HQFO%^+j7fZ~-O{&J1NlQgahesa z6cG7;OucnjlYQ7fOe4}QF_`jA^Pkw$dq4S zik`0>l-*%4M|A71NIPeI)zX4g$=UjV>Y1FKqHf949!|iZYWOJavb>r4-wjhGPl6j- zX7TmVlrMKsDy0dK#BXnNpL+iokYbFVOCoFb{Zy4iL1~O&`w+Y%A!OZp(o9qWrsws- z55Kk*=08~a_NRIm^&lImV>=Jh$ti$eUU!79&uXKi>wqzave4LyKH@;eaK12^Zy z2W)VS7Q~sJ9%Wz3JZ28=U@|K7P-V8Y0vw4?ulvV)ipL(aNite}tP?7a0OrW}?|fz} zhU=j{AJW1Eq(3>L+@VJ8ERkIKQHU$l*iK7<-)NBJeNxK~s*st%ys#%epv}ZSqIC44 z2ny-ePeC6$LpedxV>R=!oG$39%rZEZ*qc^x)9(0^?GU_abwT zsZ(>4&To~6p(~z;p9Yj(dz+|U#@;^(+_w4KH8v)5surd{4dcsgbo;%h-v{aO#aQ%) zbXRLnQtFmso)_`zK(fk=T{gygu;5BUVQbPOwvQf;5zqFEpGkx~0j^aTkxoJMiD6IcMy4OSAWFrCr$v4n8{dx7z_~Bm zD3+=9;wub4DzNgGhsS-JIHlmqRi;{We)z+I{=zq`>x6LG%^M9pOE~k|Kkza<1T|*f`f}88PM+E?jOb-93AOMicFLE7Di4b!=fimf7HUB}mw71uJXo@r0qx+f&y-F}u474JN;2TaB{J-F5N&6KaX1W=1fACc zKB@^te94m)V2_cqyK?>``)s&33(et-LQ<$2IYm)$#~^j?s3cFl5LXk3`y)=lqDUAlD5|WW+oH>;8LEaGg6U{Tz5= zJ{0xI)x6gJD+RNyiV6`y+J@=Sdd3sK-V5IZq7iHUdJleMv}gC?b42LQ4(eHXiG4Q8 zAaS{5e*f17R}EutNQYk19Waw zdt<_T<)_)GFB3kX_az-&$km9h#UYVQ<1hr39p@IN<83C7NNzM5hTBQK9YwKj4dgMo zs+Qh{oYtdH%aII78}#>ulHaNt;z052&W0YzjdT~m*TWoye&l*OJUYx3-x~c% zAxl`zOSpWbU(@ACzc4q4rwIEvzFSWyL#j^UCrb`FPYD*!ATmFpNhfB8(w7upd&bl0 zNn4`StFb@6ABz*!=8xGml{>js37DqbpW7JEdpZT)$v*zR3+Cd(U13tiPG+yA%@Mc! z4+GE!bL!-&m}dqV$s}1U$NP!XP}BgtY$G)>#Ftus7CDM z|9;83c{Oed-Nj8mKjx!I_d9fh{1z6h)k@D5*Wo$Tji&H4--oXTFD30iyUvl>4ucL6 zK{Z~Od?CNz@g-yA^=LtDayd4MZ~u!cVzHL-hEAyQR_uM32kxzx{Ym?=_P1pp-vWMM z6q3-Wf}w7hpz+u51Y7G-x!76v??&ye3i%~mwUVcMV{SHFE&|@PzmwhN@3dk^zW%0W zj1cZvb9B3wXKYnherdRoS4HNZf;c*=tQ#$*| z4T=7);(o-z<=*?CIKiBf#o%F$J>}dR@Glb|40>^dZR%wF{b3coXdcxU0`Gf(<tU`J`z)PmVS<4&him1q*Ih-NPWAxI&8AYW6k=+cR=qy}Gu2aW{3WQc`G{G?8mJzCQ zstQTw=wrLov6?rggw$f8eNDZUP?^YT=F;W&7+8kl?=#mWHNP2s#3K0}gc^>@@m*P7 zxGewLs6!H4>xqe1%^Jbg{{5Txqm&bDAR|OW*ljnrvw=jmkEARo`Xt%NFWoaRQI{4b zR1)ZU?^i;E{=<@Y5EBcjQoK8PFT))Vb zB`R8WHoX96h5J4I6aO@oCVDRoB`(^-rW;hi!ZG!YsY*NHgeX0ZX%4@UUq9k%-i3#jI(4p1+t|EG%Y0#%CCle zYuHMCBWlg8cDk6#j}zMNHD9v#egwdbJO0oS1NHlWXk>!3tT=+K{VhC&`6cbqr63X{ zlF-6CMlRwFrxTKdm~HHy-|?hn8E9OM$cv%WCZdZ7-+3Tch&K0Yo6SM7B$;L^oONtR zK|~bimlHa5z|4O(uSTWXQ@_x8SutH4;0^8+P}1I{IE5{|T_rnj>BsgC?txXFAihue zU?|VxPVM%rT|9mFCVZfQl_=ywIN1>??JM@%46lRuyK^5cl35^s^=n{L;JVB22aVDL zS$gQ6vq^^ijDSp(2+l2!Qqy`qN{6$if!;h6!O{7ExCC%;rAzWI*G2^^XSA#pP)~ZZ z{r6|e;f==MZu=1k!v@$N9Nk<{e0_Lj%C#v%33Yn8htwCJa#uqou-8C%proZ*?d8~9 zzCCcTTte%5{mwvEn$z13t4U#?wCzg*wWvgI0p<2fq@E z?Sr1n)Et;qVDZA6yiHP>TXXK@5+4LJglw}y=SuTZs+Ll)`z!Kbs(67-5!3&Eqfiox z>PQ=sg-s2nHLD*h3>;Nk`Jgflo0|<79WAxvs>9;_c*r2Q1ZbpOSSF`abKa9bV{dUC zOE)67rptT_3)vlZGeX3;0R(D~NZ&i1iW3smCN>!ojX-*;@jJmln=ohrwEwV!~+rx|x4OB#5fk*ezGJaMi)FjS*R z5jqfQ1g_rlxUl2TPevZZ$|et$V1tW|+H(o-{rmkBI$Wx_8G+{aZ(E**ROYF_4byid zItX=qLV%zO8?MAC%Lg#CK^+JYWMO~vl#WxlPF8F#{d7m>X*D4YUGnzRfN?aZ1`f7L zW(Z|*k5JAHHNA_hpz`B}L?XSvuePqkyyYS}$f%&C;sbyP_VSF00*?_U7Y&3!<~~Oy z?@B@AY!AFr)5;XI-r1IcyxmnNqz;-zJnDc8hGF_Lt|u5p*gq_O)uTKKwAh20Ca*QfJ5DJ0$#f-RavK9$}ZK22DPF{%|q<7!W1n+8u|Lc!! z5?7vmtT6=r3k7820<FTTqXZx)XnPP~c~t@#q2jeO!e1eZ3|76;O(7)+)83 zhxzHl!}FfQ#<{l$~}rf=;PWv$nT(0bNZkR*`5h z^Nwv%nzkL|{V_1i7=Qkf$$8)eFJ9Nd;huUi4S;7!DFT9NR4Lr}bNDH0<|hq>NQT^- zN|1R-Gd0G_kOptk=Hae_2$=o+m<}Tt;KmWN=+0yj=@B_F!C4kHTkLu`*gN=FJZ z%sgf9HD6weLVeD9aqz>d=z<4BpQ{1ImAbtLUb&h#&3R=X>F*bVw@b*P3Nl59R8CLA z=+3J>z9>k@6;)x)M!B}nQBa#A}zYH8Aj64$8Z< z+%cXy7M5nF6(GdIA&Od0m}x)h)HMotY*#ux@E|36fpB?YOT-J0{J?R_P5LMsnPX&z zX0cpBGVE4VcyvXwOvU>YQz@H&sokLyb|E{h?=>r$ex0XMps#T<4kU=sTp3i-k&uhj?wSX+MFt@nrg)SxuwSarx(?TQW zyj?2*d$#4_9jN?YC zHRi8(3*;UCC4wE>%ixaij-iLiKg~^x$EI3v`!!@8?5Uso6CA=zu^q)!G%sVrW#wgl z?t*PsV}6rhfl@)JUC7gm2Dj~0{fo-nrWe3jihqnLu^a@}HkLoVp_WfBG4o%dh^uVJ zxckkQ5-r{>`NEA;cg&g+tHDyJVDv_aUH-J)VaVw6QxiRz!_xfK%yC?-*7GHW#XY&_0aL2vH$3i-b1OXIa&AybM4`U z6!l4P8+Kf0;RSIpxmu4&vY1ucAkAjz0fb_e&^?=pKzzZQR=Y(EX|KioT&(6#n! zqzp4tqdIfIk`o(ZgiyYJ#GjU114{mEiIx4+?O830v$j^ph;`mQe zfha;!*rhl*3`s~MO%@GSE)=C(I$EH~fcrv8YxL*I_Q2VdghUZ^)2jdL9OtqZ3esoa zr2!`vP4E6EJ};RiKXIBNfJ2D2_=~WCwRAY|`tvFM%3eYZ}AY!B1as!SZ^l4uH@^-$v!8k&@~cNk7NymEBa=PQW@I)hU6=8Si{^cGs2SDwSIYGOk*p(kKOl8mf8;)@XdmDfiV##%R>&$sfkx z)+Pz`vHYh!0Nr=I`O_J7?&jH1`mDTSUp*5JM^LDrNon`~2066^PZl}b(XA;-+@wa*sRA%s_vL8UViFk287;CVl zpe|v5a(W{TOM$t~#vH@{(c1j3oykE>pHbk?0_Lga^uMY)KY7o{wVrAP;qZDj;_`hc3@?bw;~!1; z(m1P2zMBRb>}hyTCG4gHmL#*vDPPJIs&-Ruf#riN9Go<&gOX^IU{7% z<}Vb2ZJX3&ItKdWE9uaX-7eFIp!|48&%; zNuVE5&t~v%Tx``qfN3LpeeO1>4XLXnWI|eGAqjmu=k9^Gd~Fln^-V>7&wVQ2UEd7@ zp%JG}thrMxobg(aas#?Sljq0?=Zvt%@f5h9o8d1ibyQSdDNlC~qn$IU?RTh$-eeM7 zSs6pgZqI=jRq&YbeJlgX+LkqSp?7Skl+x6K00Y{!JBz6dFafD1Ds|-*sP92+g25K3 z3`ri1+N`&^({?)H7FaH#!I~F9fW!@sUn(|(R zn1frEapOc+QwcZ&$qVffW8;X&f@-SnE#9&0qcTTMHHk}-TY`fwrIHcAStYS33H9|_O*G3(Ag}Q$imQR{r?vM}IrItd;TcG~`x1jK zNJZk}fa=#KRVU3IC@EJNNDGahrUNh=9Sshi%em_5mhQd^nB4O2G)MYa51|(dUUc(J zvzhz^n8}BGT)MDI_t?cPcy-LCHelzeSQ;_+R=tlp zQlS#uAo~IIg@l4m1q^ES(fA7$9HI6$;mKJ~9`G{fUlw!EwfyLgf#s2ABcF*+!|nzT z$?13!`Q*iB!$47}ax9a$l15b^Ttc`;nsa>X5wrH4(EauZluohJB0V~{TnqA~L!Bvyfgt`Ys) zMdRZm_zqdo;fMC=BDB0I-}XQ6`}sII4^D}d_ycQ`rYY9wqNXGV`#yx!0_7RW_*9Z- zRK_dnuNe$1P+6D3KQeZ#@Bj41fC(FA+c;a4o~#DuJA^3FS}^&RWgN5u$@68B?q@ph zwA3PYb=rr{8AoxD2UpRowsswU&dg_kyvUV;Fr9+1mIb%EfWEDi!Vm3tOSTgY!VBJL zTzPKWHAI8)O0eR`C<>H&;q4HO+}lc*uLCEy{FW}1{w^a^uk!>?Ay}jw(e65k2bdP+&`Q^{FQfr2VK&yEiTz0XHA9fyVf|qz)i4x|+)g!ss z)3WxKfH-8qUK>Jav(jb+GJo@Kk)p~MR49nEI*#kzOL)iw)Z)KF{@y>>o_vzTR@^b^ z9$xT%k9QYbm;!&EB5P0jiE!GKo)StLUYhsQg})5DmLpz4SrtHEK03;E+HW-jpw4bk zlOXZ8wqs=qut1C^CH(nsfVJ~L?Sp8mcMgIYmAC3p3)HHN&I2|@1Vr)XEUmo0glwN) z_|6LB%4O7MKwS5ZOa@F19sw?s%YJ*g!VE~oNYyOnDN9}C+l+)HS1Q!uK{o?OhwtkA z@a;#swyuc=xgj4f*cws_v4b&V;*!P{NJ7<8Ad19i1Z+#Ol;NLV?maxm*FQ-K(Rl3y z?BoQa+ZKR_!1-NH>)89ZUI&Od54;jd{*S(;X)tz3S;b=r*6xepS41lDE?3;mwQd9&n*0)Jd@L;5`Yk@qGNF;s2pBTK!17ZsHmi zjHWtmO?B4OH$z8*vL)R#KOKYbIdA`f;WeuKAL(N*W_rwg|9XnhgIp;*M2i57+xk^IoiKo_+lk3EIO(_`9e7JhD;{8~LCO39dO%jWnB^ zSfuL#>SO6mvAbXuGgt;#kggPSC+W@M&A{J@yQdrKRfEA9;%f~4pZc-&#Z;L;!mF?Z z#Z-d+v7qh@xF?iUm(4h*DOM0nh`bL(dA6tgLE;{ieTtmcf7^cF{~wMjUUvX}`5%l1 zpWk~il$rHC!dyfa1~;wO>4khEbi0}_x#e7e@L$DGmtCAXaR2DSSqh!_I8Q*W>@0sX zG5;i|lCbnKTy9*CEXiPAf`s_Vd^`)8{6`}psg*Lv(WSA2`=4zkm5Y+{7BqpNk^vUc znb+qF;`$B=1ez|yr*;G-5jC&r%kk071gNo=nE%*%c(VAXz+-m=b*S`refg~9s4g3z zknVpdv{DtoJzr0}%XUuw1h4oQ*v$`?WttkB|E2hsYi#3#7cO}mu0->BwD92TowBn8 z&hsT;dY3ZzQRDS~*JUCzzey5%3OMKEypul zHIv;@|AL6ac-|QRwy2c)C2bcCE|fKX(?PWozHbP;w2Xb)6xAfNY=`6y<^Kv}7a)wU z#PSw?pE?Pho~WboZ%-vWQ=@CUJ#46-UT)=gHQ+jCPz*e*w%z;vf$tdifeB5y)>DuB zog(xCiypFTK`K10r{a4>sH`#!9q)JLQp#+%^0htmYeoCl9|eyuM({jW^ENoN(V{@oiPV9bB zh8?fz_S11P3;6X01Sl~lpv0T^1k7KFPf>AILw?qm2N>9oWDS-qd_V(yLgidOQl7`X zef0t%5mVj%LQTe=^p;LLAJoav1o3#-QO3E&p2qj&A;;M(?ZhbBU^fjdbXgP_Fa2$K zC84gjSTOu27UglzxRZWkUVwfbHfswKcNw&VfoS#G8!XLinX0{MN#c6 zH2lcHQrsLU|MRs)SI6DbhRruuTizlJZjhGUlW}q_i2JAiM+pKC)T(le2f0%z)i;ZZMMY@s$1uH?3F1{)hK)A|ulC_L5z&NDY6k$L?Y; zrhpVSkOX&)G#s?B$S-d2dmS3rw0>XRE_@#V-0AiDK838S?P&6DYtd@wG3jJHvG)OW zC&NF3lO6JP&}vyaidFqtZWTgMQfb;aG`|1Au*f41@G21)Tj`)^W5~`)8GdZXEOP6+PvN+sZM6c@dSDunm6syL~FY4<$5@EYOy~+Nah|?`*u!HUn$IG8g@R%tl|8w@Z=!q zidygakKI8Z&=DeVwQ}6Q6cixyYC$SJqoOj7a!SL>IMyXlo#xbg{4f(Eh&jyQs*0B7apc-{J2c`l9>?sLzD@2awZ_{5{oS z`Xy_Vu*0i@n;yxmvr$e8pTn8}byiVXS{R0`gV=#S8a zS4VG%-ZyY=dz-20p|Vv(DU`#gCWdlnPp?ym1D4>ai?f72@!z3*otfLWc!%ROUGh`g z+p7{8wB}uufD{kzRDp-4fxg|95L%mmc2)Wpq{#c0fqZ2teYfuY8zhuLm^kbhRTgv7 zun=#c&hqn;ZTo2O{7=DOtW9vxql(U(@25Z7J(t9Rt;va3XyY+AYoGQ}z4%2Bo2jK0 zH9e%lPJVr7(@C&<0%z(w+d+5I4O zSv2`LVkQeX0o$8w@)O`g)1spNY6d*TaZm?xGqu(4_EdS^*)+>h*6)6^D+Yc8(|y~Kpj0y!1Qh|QYw5VZ^jGNLa#_hZ-8o2X&U@^?3I`X z7vr^emX)TPg5eKKg2E-eaP&*8tk4XxJurEZgAki8G{cu->rP~8~= zh$XniV}84CTQ;45A^l^AYnj9EqB|L{|2j>ln55?P*vxdO`mxe~Iw>~BYQCeN!yy$m z6xHLt*}ZnEN6*^{5!2*q!1lm-L&;xP%OO=lMn2G6Rd!sRB8`vXfy$Fv_BNLu(iNBb z)G7+n#K7NJ28!c=4Dq7}5h~#e`%i;mVUdz06%lFqxO$)~YR04h)U?CuYTvU90r(w^ zJf^}Zr2m=H#SoC5;#CbPevlHCb1qv#Z=6UIcO^U!|w8WP`^CPP(2$-PKX-Y z$`rp$RpM(UIcKzew$d${cXr(1R$;Cf))WTbglXqbHOT73`$}1ilNjdGg)1uOy_Zz4 z{sD$d=UVv!IJoTX63hxyK2Q>#3Wqhj0c_3J%YiCVuQ9{SmBX9m!1=ApePJo8(JXm& zG)z-E^0h`ee*mutIoIBYDHvJ1M7wR?B<#viuF-&)B<(s&+nJiddNDTLy7*Ac>ZW;? zcX)c}U{s!%3B*@Cn@*Dt)qlKodppcA*W-PRS#AIR*z1;O=W}dxIqR39uPN7B5Y0IU zQ(U=4YuS3y|HKfi1PSDmCH8mSD!$}5dMNKNwM8*9_fe3@>WkKfbvxo}klNM#^Ow)c z4RsV|{cW=yN1HM&!8ENosJj6&WGhkgZR|RvulhI}bn4XIl2H$goV=BR6hU0Het0{3 z#jo%`2^W(e4S(N6|B^D^mDurh7FCL4r6%OYW#?|cuYnQOUEa2XnfSUkY(>j@qxFAZdsc|R*Sf8*&q z;6|GDA4RMu>9(by;53D%EamI+tR>3T#=Cl-CXdDBh1Sbo>5PnP?YX-*5+9gE7bNW- zZZbGmlwd82sSLAtgi0$ROR`~MOT5_!yn8s_XXoFYHsZd%Kun!}Oo780g<8i-%>t6z?NzS;9W}7RyHpHEG&|X;Fe|YAo znW*;Q`M1cfq&KUUR9fwCKb4i`CCK_!qd5{{#cEL4bSi{tokCO^92g@o;h8!ZU3T(* zA{2$5o9tzT1&=Wpg?5OZ^d=k~9pg>IV87(SLNNzog1FXp31~*`Hx*#Uj&g(%qukz~ zptRhkC-^Mn+9_qmh_u27J}t+uTAHU!{_;Oc9z;JNX%U^S3plT~xP`xN?JWD@O>vWV z9UGWx?pc4|w0kQvODnl4W8Fb^lMYvtz!SrHX{Z3H*$S@fsTWXkb1oZ{S3}f2wBPmw zAP9!6Zf>c|Pl=VW603o($WiV<`u$jC5s*j}RS`d*Ht%QBOs4Sc0+N>Bx#NeKKzN3b zoVz`;B&k;)ua$^7HkUY@;+~@i`Ys@4FJKQu-|d$!C3#i5uUqmSQmg%e=0`{aGKB%A zENe-m3M!P*k)$z4#J*0CCP-{;qCzZ+@)Z=f5AT7w6kN6u_aDt4-wy&k;1zSuFpe+B zE*@R_IC4J%c~%=Pl6553p#UG!R$!0;UyP|psvV(=pAPv!SJT86*?cZ+d&_Q}-g&!9 z4p`}a*yoTYihF6=f2*VXfUaA!U7JcTnHFGz$WWa5%0<`H(C&YxN2_LJy%xy}tJpbU z#Dcpw?dG9yNpt0FS^!PNY=$_xWi!J3^UN0ek$<>bh>}n%NsMd=U~~LPV!z9qVyfi&Ufg-}HCh8R>9Rn8_yDXX^XQ>> z*9{S^QID)JTB7xxpyV)PM+RmXVKkd0l!FQjw&lUu|A}(7=f({(0qNDp;u9h)#c{JB z798vp{*MB{@>v3+QC!wYzMWNHa95#$U6I%D73g2L>fVMLwGO7yO~}VEp(higLfrG>3wMwb>1Q_~+1VgJoFN6+MNUkxkYW^I+#9 zUt-@>(Y(#hFHXru?R0vhW{z`#3=s>NzBBGh2aNgjcrW4VHYXQ2xY&*nB+rGn1}Gs$ zo5uf}IciBfF>nOS#a-U$3c*R2@$T-rpbzTEZC@bvApx#}27B%OGYKXuNDd>XTW*5^ zX-*S<@&Pz{gZaf!{h9d5-4a10E1XHW*3JF)^dcckKNm@#aQDM#n)dlz&H-I)2A-4 zhD`eAl{P)e5oUakJhrmdruEIgFGx0pbTo4E(1rks01#jm)7o@U305!X8mfY5yolXN z`MWe`na)c>Ulsb&n_1&K?k@gV7#Dzk*>->&ehO1s`;n|WCaKe85HAwHTKAOuLHvCe zv0@Jf4ASmSZv6uH_@ko2^^hmM+dXw}Zfb#ov^)@9#B)Ps56@Tisj`B|d^>&}1pRyh z$cjQ^2EF|7@7*2n%KQKnthezv9dj!R#kdQmf$2bmzE~yR_YZk44;fl> z{;WorC*3%G2S%p(Av1Sc@%O=%pV!%eHUDC9M%Q2#Q4Rm_E3Y_cF00fyNDwNj=)n)mQZ6h}PD zf2By+qqhBTK4kwD*~2d{#ehPR9q-6dqA?AVm(LrkrfP4t~i;Q%AT*Hdm$%iIklHI?RU*&BW#fQ!}(Jw}tcy4VwwnbexzE zq(fL$4#q>9gpb*U@NEi*o|;iLG&zy(9URWe6BMJKxD&Xi13KvPJzZSh91$qMK9i^5 zm-G1b>3o<$j=52SGKK}p%=PFeSwg8Y=NM5wGUi#a4Ad-MWhGiJ#^EKbcr5rm{G;$= z<@vPlFy-qheQ|49CRl4MeHQ?^eoh$nPp({Q@qUt1HTt+?P3QBW^PZi`+)hukCSFff z5_Ou)jg5 z%y_sfBr#QgE1sQrZOL&CV$_3iT<~Pmk<9@^l3idXx&Rd&cNc@>w5$pT zXX?Vy8TPxEl%!_6R1(}c1Ftymq!396be{7o3Hd3DV!_I#PkhzIfxB8|#H>9sJ)osO ziWEjo7mK}i9v-^kiaBcYAM*@&|05@{f+iFNk!SFa_M(5!FQ7d?#9pzhx+H*Bj81!o z_Xq%oSt!NCRiaXGhvirRlahmTxR<`C;$SSUDHh6V^>bHw8m2Q_JZ8HP3T$+L(*O5m zRT2_3Njue|8ABZ&HK6V&VesKY%h9a0jGWC1(4el=n~%jh7+O@M0A5R?hY^ zPYu@k_mqCKTFULs>mejTI~k@v_aZwrcn;Dx^U3y@pZnN$?4TFJe9@ZS6z0_?T9MS& z%5Lv$ToXRr^4B{j7GLNkcX(;FwK{ZhH`}0;eZmKTMe+!aVR7$le-Rc&}tniqhY4c@^)25~B^2 zo@Js!X8vXeA9ECc6`C(a5+`Y?PeeM`3wIa2T+Li#ECn%SH_m0n4nIogFCy=$hS>4} zq;Pp=c@iH?1Zq8+6Hq91%d+n7yhSYwV^*sl#xlZ`6N)f*y!SY$cflTGJ32M@=T`C~ z4_dx(3aE7H=Z$kVTQ`)nYeEZD#ahcnx%SFY?njdRMt=jdW|>gx6!%kB{=CO9OLh(g z18$vz#)D&kXs@w&ib|W|rBwDvzr*7$t-Zh}Vt8Ani@gs_5q{szPPK&GL7JZT%`ii- zIm;y6Pe2HGvj+$Za|v&|a2HeMb{el~asN`IF2Odu+Xt%&3?1y7-Vb{)rN+NnWjlLv z-=6V7sNS5+QM>KtZw+9syYPeD+qAY;U3+I!V=^GA+@77qxJSz6^MU&1c0Y|QrBp4~ z^0p!tqy6ttoXW`F5Bl_`#0yY|+q>$JFZ;X=`Za#^jz1fVWPXhyC{G@+yXjN4Y zu8sP}Bt1fdcwmGC%#6;?PyXd=vC0`WkZiAb^H8~3!3GI7d1JcPTqvBk-3=Hp)htna9Kp#ms&tV z7nf?<2^yb@<(tGtsd#`?<{#bLx8?`rQg_28O_h788#H2iy2trwT(SSBEB{xzLB4~| zDd*j|JFSqv8`JF61s4FusOt~T)-Or{i;?@9ZYZQgvD|g{nl%K={`G<#KJ@%4o;}jc zoA(2-PgW&$G(Q!My0qcnpyA&KA3f`lPAVf?e@(YWmM!idnf{zJ(b!jTOISf`{?TvA z%L-S-%j7cC`8>5;p~kE`2319+zVpx2L;nuv_o}2<9+bW!FDX7^&Auh&A~5Sn1JnEO z6-c=rI?=K(@HW_&v1a{naaVnYo?DEYX}+Tdw4jx{s~Ii2TY3XKElRuVK4^2FgNzuq z3^$tdFW$@#L{Cx0dFN>G1x3pNEO_^rUl!9Ne{7KUiaL;F%5^eWmFs1}@ZisvxO7Vf_wzyUAI1n+@Iah zc_&qy&c9pP8hZ0n53y+4O>MEoR#3a8V*K;6hQSK#@9@Aww#uzVG=;jiMFZ%ry#zQ= zCZ`Y_?p-P-TLo9=Zf|=>afX&#d1&8C^5|KF{5=rOE^|I@)yJMtD5<;f4;y?cf_L7! zr2$ObxNcX+x~=;Xq-~aEP<sRct!dZIyzZ|(N9NErDxYIu1PUte;YKT1qr10&&`=UYXhV-uOWmV#w)eG%uSp2=w zUDfj8DS6Q>QA|h|MT#HU!yv9wti1|68I(z=UrSL#us6Cps{ z)?aEr+gF_N4*X{yv`%4qd<97tLZ_42fIOBzsEC~Hm?*ldu1yv)!>Doi?JlW|uEy(O zJ_{!r4^3jG^V${JQ0f-Oe$0RV8IFBZ%G{L%w-xe!@iQYc+KO@-7+@-3YQ+*SskV$5 zI|Ut=Yc{0WbR23gsa$FJ48&7(f9SEf&hU{<(8&f>K~m>V42*BgKSq$o^akDFGt$6* z?}2xgUSL;ECvrJ@tFXPQrpt5JTBMcYOx+%X`nOF=$CO{k@>&RZs8x0obTMA3r@rq0 zBW#%Y{5MdttW?=@*|;x3-^Q9=#NPE5h4Rju!k4mH(OwC0&ni4f{U9o|ryl&&c^LUw zh2+3ReWPmA*Rme@vG78n_w>YImOZ=8D+dX^fMIU6&~CZwmh1rST(0JR+8RP4cAhn3 z4oS?n@PA^c|Cs>j+Q@Wez->boNO&%EMl{kR96Y#+Z+$@Jl(YngZhmLUp!xxtO=dKg z_t-w`rmbvueE>yUOk8n9vVMXDtxTs><_!{zNj20ZY9r_w@`=H-8o>gV%1i>n2*cO^d14f+7K12ktD>fEi)q4VoQd3K?r4 zK4qn-*f*_J5DI{oOb@zBxYTf4&m`2uXe7;9>XMt1Kyt=T$}RoC{0n~M4(b8tqL9f1 zQ6Q*wJ><;OahE_rS;F)B-5W_+XFh>*xaY+)C6~Br-jy1cq3_KUn|zF(yT^!Gc7k6a zcYW-|S~xakq!Z>)(Q2X=PIEd@Ck7Lr#d15niY6vF)YDD3owH^XvdEk&e+|E`-H97e zkE;p%J1fBXsV(1p8IdtsOXRdN)>bFUTE~0%HMMmjSBb{Bg3npwhnJMc=rJ%zf)?Nj zD{u>6ZY017F2#H@wS6P)U>5xJ?UpRqeX~80lrxZvn4#~NN#};kvj{IQhDlmIM7_Yq4+`XZVapqP?TwMZ>&mSjI!>xFMqBi!KIjFBVUOOZX;-5Qc%)N*}N`G z2Bybm;xlNDToqAZ1Ze=GJpk3Kb;ix3( zUq}EY71V(UzS}ML8=95DdClrYFZ+-Zy35DY(O1mss{-QTEeD&?v!NhBFXXY4;DC-to$?ovA{rPqG$HfiX7Ifd_Hfr^#> z$1it=22Nu{?6KbsSzCABqWztRl@Q`}1zWQrFCs%Lz7TX3#N+XMP99=CH>3_GB$w^| zTk?<%Vv{gQm4?YHq^1R$aW>|S9pcpGaZygrVzr?84F1RFK46F$F(`gBpv~(|cP~#a znV9_^nz@YTB>`dJs$WjMcw9$?M;&zcW05X$3m8qQh#Go}n2a5`3YlkkU>+jI6IriB zeOxp+@rm}9Eatalc^#U+vsCa|OhD3znDb-=bO&&z7adn93k>imT{TMP1J z%ryGVbEF98I_Bl}Yg(oZ;-*|S!zz+I)(<^(Vb@tyEsSM(g;F2L#E0)!V}q-Rizu^f zQ=lJXhGv29ZwT^ul5^fRUB{bz_$L7(p40PNa1HFXx>3&>zMSyaHn$+P41=JHLf7r0 zNboG(bJOYVyif9E%%idg?lEP$UNZcEfl8DV`DE!%O6zp<0ECI^uXtTlr%vESGm{k} zeqHL+TE!q5F_G31_`h8;-L0R)f0y~!%X}h*Qa-+6iTP&QS2pk${x=j)1};!fbNTd6 z2GB9}P++OEJbCzr#@Q}wn|Kn@UjlEq-ncHdAd^n`##>77B_;3uNZNxrVO})SWzz^^ z%hJlW%mKgAC}@zQuJj)Q^KA`%9(X!M^)X!C<7wdl7B4NErmBbvZ#*iPP3VXZO}2mA zL*(e04R8P>jMqhW2aNY~J%hfRb(#0~`~S$A&VEY^M7hi|k^F)6w<&CHuBZzg0gQOgH7w6C7^!9=e!!Iab6l-JIE^4RI}J{=za1n%$>sbYW;YPKve z`y-Wey_Kgc2%>3%WqkITtzOmnH-tVUm0?-~x?h@M+_y$MH)9g~O|&BWOo6J3J6&mUPsW}MO%FV@ zeIL0i?0<7CaLMeY>BIR`Gp#<5TprGzg!{l$19{rv<<2F;`%~$H3v7v1QtuaMFMsX> zvhSUuqHRdY6pH0AV94G7#PHVK4j3Zl6T7WpOc}^XWN9={&_!k&;yvn+ZZkJc<#=u| zXwT5Wku?Ap%a>RCZh2b`1N#w89b2NzI*VRNTfbV5@*jb>H=6fz2qi`7cOBH;1{$B) z-|5rfgQ6LVFahi|09~E_2L=*PfoD#ln4D#|%3FdUSI?~H7n&1i&!O1 zZ7o^e${&C0_aRsy*CpTo`E*LZ>q5-A2(wh>M7wY9T++8d>5Jz4=GVs(GkW$TF=ic>pOelo4ga zMKfBEpF|d<^yijMX2?Tec?22i%=>BRiDf>Cg!ZFFAK5dLHSSC6tmDC__%hQA8y2{pm;5AYv++c(s)42bN!p|oy|4Inye8Zw>FJO6XX=6)< z6~3lCbhTs@-(Ifuw$}~uXC#k!w5KTvePA)CckC?AS}8aN(52}N4gM59`d(^gF3Fc;7{i0 zYIolI=UCL+wRL`}VCp&i^~$_fgB&D8Z>^Xr3L56U2d4kT8~;OE9p^ix|GYU4Fd_3s zpFbmnfV78!H*i*6^#iwUDFHcw>BKAIK)03eA#^l#by>U!f zZ?myC?y6SXoSKaK0*);@*kH5$;>lw!B5TnyG4b(spr$Vgh-NYUo{iD*kGlVlrmyg8 z^8enJ?vj!i9TFlTIgym^MwlWElEOA5L>i<^S{epQNV6f`CBkS%i!fl6B1%2?=lgp- zf5GnEao*=#=L%)CoBtm&hn5$)j%(z!Hk`mR!;)Uj2cRkCh2|;p#Vzu@HjZVHzmL2l znI+hgn&CbUuBaQ>)PJ^Vqb#7r1L}=>LH3d8rrz<{I=IMVIO){)bCVjb9Dpgo;Uv;* z=98q4^%F^)PHeS#42|C`m09c5;aunTuz(a}MuMG7$fwfGKO$ zIEEwpR^TpvK?-4ijyac@-zFd(UOjeIT8;}i&G=BGk1b!orzLT&DBcmuw!Ew=KR#9{ zS6D6#Fv5CmllSd7{b_7<3ReLM4jYe5KpmdS&IdH3e56x&p~Sbdtwj66cArstr(d;u z*7i(_)InUPsioHH>a4voy>(GHchtH+5p{|6w3;!tc6mhdX&Eh(5? z%XC9#iOp2UJ3=V)%7?1OcLN>0pTO$t29--y7Q9%4f08qwz!?)0W6$}aA9e6EJ$n5$ zv6Kp1h_C@^>4cI`nrKYu8sz%|Xvf<^6P~cm9!JL8%yD`+Y*q%))n2%!A&N{1uZ)($ zyBC}-x^MJc6oFe}+jjLJUh_lg$w#Ps^?TFrp18ly^5T8}M@izofM{~txV<4CHGbbp z`KxqXQ1oML(H!w@84pJ1XKJ{@th3GUC#2jh{j`PFF5F}-hxDA4Uc-dXn*qnqxInL3 zKV6htmq%gX@D8gwz;z-1hDOMk$UbhQHd~SNmi)wfGak|2lx`J7U>T$IFJt0mY|W== zqXUByX+;mUwib0-ag#72GQ)a^aRg@o(|@O^vf6xVr!n6fWwWI>?nPC&>;erw8@C}- zqmDZtkux639vU071-eUn=oKr*G@hR{2htpYzS^enJI~j@9%bDmP84rwp#lNkRtl`P z)(tC$XAPNedErdpmxVD~(*FFlhd-6;a7tHX-2#5MX743iNz*|5J36}L7i z!_%M{H@r||=MP;iHV4F3)00zV9abk#pd?4U(yOZLUmzO%hGC0<0|;&LJ2NOeej<)w zi=`Eouk_9W{^w{G6x!laW(vWFfulRTpqm}K!a)K_}`L<2qSJmcNBRyFlsjziW@yZ@4)p57cJ#!`^9 z-t2K^warr-cbImueEn$_qN`Eqs_OeV)Of_guEhjRQNpO)c|;w(;x$h+u|C!s5IzdO zEs-N_xo1HrSsD2DwRym0|Bz=bHPB#mpI4D^FEW3rU0ex#$ah)th3n*VhD50t0{ame zO%gXNDsv=`^lH666DznKkXu~)D}TG&+c17Q-oo=bhgO_tle#H&1KcM{^fpS*C}t6i z?yuZKMv*9^0g1vGYGbbOw{IAr2L45xQU6{o@(9*ubF{rqL(K;~$v`{+O7-vG8ZggC zw@1cfpo5GC^OSwoTQ#ziO6P9rJ*LYodhY021BmR)c_G=n<>f^U2M5$KN4oQ_0V@w$h)bpm(0vHy>l}_1FP6LWvCFFP2j19-~x~nJ+W? zlc;@7p!Icu9t8M=n#|-CwO}zlf3dqoc|Aw?Em5DRsbi~AQQZ+t3anN4k5`C6-q&Kz<m#uW%J6nqEr(x*axzhb^S_gpHwF)2->*OT!cb?)kG;*~dv_?Y7Pz!zR# z?45bU@=CBvJZ5&}=HsKdW>v?Yy+kfG*s4Cvrz_X?U$Xxvrl8f$U4D zJAN%{65OrD_-7Sfc#Rt@Z8#g;`!&GB+OU74ay01Q|3^bwJ_vItlZC(hz_l z#^vpuv=DCUHskShm89w-y~Ot5p>IG#Gu7V*7k{(8^X={xOZIF(u70(sAJ-PqUqhw{ zis{(%8X@d<+dcXVVQ!ik+;sn91SbneId?O+yp?oxsV zz4Q~fFq%$$+rUV;egD3VgD4qREOK`{hhQ-7T*L^@N-e*@2ejaWwwUjiIP*U%bfk+l zYG`BDuOV3O^n-o=kKE)~TsGmy_C^C?$JXnE(g*ijRfor-2>#`6MSE*j3k0{uqSd=& zW7YmE6T0Eh9V<7j%3AVxS#2SEZsIOpWKA|8-Y`Yu<*^kKR3#Pra1D{=yoHi(n1k2cEstbE!M20w2k>@5OYk?c7yH zG1uV?0IP9Z%tmnA`Eh}58MQjbVa$v4XvAY#vXKt?-K!NGggG9MFpJey(3mej8sxJW zjEJQZxaKeWG`#yhE$xEo?leQrld2-qx$=GI5T3MJVC}aiFiuzc@0;kiG@7WFDcVbT zK~NG;J81&WPJ++KtqmT{%+mS<-;S1 zF5ej&PRgxidm)2QcAIsBHg`M`co27CQ3e=w9j~K!CVJb{YMH5-sw(*(Ka2)cJn_ho z;mOzMgLcD{G2ID1MFFZi;RW#YZBi3kF^>J^pu^L{+Z9I!<2^1K`O(ou4$&qDsXt#s z&)uUyX|ZH1@>5QuDpXkc=LYD4+wWF2#p5Q1W9$jfgZD%{sfT6_Lwk2BJ}aZ~roR?4 zMM(`g_qyyWDbcG#{-|x@w*z5m!_Ta`n%U0ONwwNqgD(LBxP}t3JvVAWIOS2wq!Mz0 zO}?Q|UhzjS)r*&YVw2CAACmFjowZ{PqvM;RZXxR=y7?2fS+gF3oPpku zulr**w#>CrkBz|yq|Tw50_~MFU@<#%OU-ww%3gEcK5T3;dA=)tczu?v?H$-Zq4Dfs za#vY#=oQg^z4M7IW+LHV8EYJraKFBj@6M8_%10`&l*n44P|3bt8FkfuNmF-$@Jq-% zfvI9jI3HD6eXU5My1sg@l#Jv)y~kZLi7$!hsa9!9@wcFCri&-XW_P}j%@{2aylpB6 zp)ZYok6mxkUR73?tsBADMWsV0a+(Zt0E38EhUAEXoZ3}pQ+WUPr$%rTaL zW^)O~nMJ>!xsL#MblYhBHE^M?pfNbE$$A4{W}clo?9PavPo%A%LxW;2YRC9_9F*O; z$Y_SS97Z;@?mi=R?msAqd?b|?9&5R%;ppDe$RpXE{etWQIxMemn;&{imzNh#2OZ;; zFja-+a!jSejP^1Dx020RfJ5fkY|1+A3#$K|Keg&}zP|m2IlKpt3((6|@aSOptu?qG zU_})eKS(MdQ0d5aF}-IOwUwVZ5vV}IkBrbe-t1!G(EG2JT{tL?kRCyjjgqVcktA=D zGc{V(#Rj>VY6^p> zR*Z?BSK_8VZdRiLF4aejEp`Ni?tD$YcV`bv?V=P__2Z00odC{?^m_4flz#j{m|~8d zaZ7Cx&fshZDee!It$G33K%s@&7sAL$VSQeHQajX$L3Za3+`;eGZ%-|`6172E-P>e@ zV&Kn18GS=_*X0xKa<|8fd4Am-)0D03v=Sx+JcsK+5#B0$x94egE#ZImjvv6}1UL;l z#ti7K-AHPj{)rSE@^UuG6Yg!G@(;&0Cet8;FB_yxFE@Kyj;L1JMaK|etIkY+45<*b zayoRWG@Qn)UL7Q~0oJ@GuLje9-oJ^O)IVISDv=_EMM%%03y9Cy4l5kifi%6KRdKBc z3}RqCK);!6eA4HYkzqqfTcu4jv4P6)4!f->3J_WNPo^G5;{eE{5r|;O2v~~qZxOJ1 zqs&E`x|PKI_mU+u0Z6Ajmamuy*WEV7m;VV>0Ur~pzsNBE{EA1OjTCuam5@o{NgoTQeo7e4zI=`iqHjK z^p%dnA^^E{*T&~>Qs`nA*B$I6-{n%wFUrRVaO4klsLLN#DpXQr8t7sCpE{J!IX3Gz zQKenYsO0J4&fKL(t;}{_L6R<}I8Y!D3CMi>A)3>lf5j@io28%0!?|P8jCV2b<;fPE z{suDq7++bcw8$w-fkOo$qRJ)6wH`)G!^j=?=Kc(Kz zGk|@tWq#-ZSzcfL@&>2#y2EKogq3-#;e)QlEM-q0?Nrg(7DJRQ(#H;~kjHkS^f+|t zucYF4U2t91p;VZu7%Nj*ZKE;xn>d#)c+=y1c1lc2#l*?MSsc%pZG|+IQQek zVRZNls+Oqqu7RX8|JQvc^K`1P9WB{Tn(rwkFrx>VxleoH>q(fT>X|$42a{ftX!r6M zy#Xh$OzIvDzJu}nndC=#Sx$~DXx8WT#r|BPtm4U+MMaMIFTSmk3GxM5iWWY}N;0V% z!H3$aNvAXB23!~b>Zi+v0z1Rc#ik+}>hq~p69&Ti^M79g_l~HG)q`TFcz--1A(Fk&RVFL@Hj*ZPw247!1|LD-iw44JZzHiu~ucZvUOH%$JX@LQT@Z_k!`eU zh#*BRT@mgczTsxi=gIA+1efz3YsnG=_J5N8=dArL<5kuy(3nr|8=g6i@DGG&%(vj< zpNACWCRnjIoICXdGo7##!`nzUF|UjsB}!Lr@W0I+jnSk#cctmv44yuzy3;93cr8!Q zcG3U$vvx2=ipfbqo~k`d1NipNfXDe8x=ff+F*`JOEs!MX_@bAzBa-WRteY*-57WH#NaSDb7rRwN{F;Ptn)J8$b`~g6O z##mF*FA1091WKq$VJB7tQH+?6leznyDD_?&vE@UUeVLe!-}V8aSJRk}%noTBQ(W8A z!B*%!U)JonM4ytIYsr%b%GjHq-i6u`YnAv+2j2)k*QV$G-sc8Zb1W}xk*Wb)cy43m zHdOymSEq+cul&Nd{jkQAPS1IL;A<0OS^*Y$Z2j)x%;{&(+<*_`EB?pZ)cqt>(PC2` zE?Sq-y#7b$Uef+|{PB!$YoS}o-CY`cIl-}=b*+WkkK+>f7zhs z#VBF2JFOvE6A$h))=_X4rJZPi|7}RwMM)H7~yOJC6pV%2RRxHe8@kc&x*JC$w=7*T$OtP|P05 zV5JJW;Bzg(;54jn#@PzmZykX>>~1cQ2Z zN#p^~TrTnx^LUYDysF&9jVQ}G7jqPZrD}(Cfv$>djr&}XqEq&QDM@+$BzDz)h-|S2 zKLr-0aOeH+tk0it9M>rm8(L=Y9^&^V2$BKgS3}P+ZZI-Yp1@a&tEYc8pUxIMD;U68 zviJPeX;C-ER3(O21I^6s{az9r;5)=n0Gx^JW-gDQ|C=@6@{vX!lzosB0!tnsG1<~w z>r8Y*bKk+i-e~dhY6P%YRkoT>{Rmq}Ll-dFPcdyB^9G!*4@*WwEZ}X#Iw^I0kk?JT z<##*|k`!aqp1HaMpmaj_j18PYR1*qeG~|nceUfihUD-eh-Gj!=LuF#h-%q->F3Y#y zGWLXVH%FtLN%W5?8Ob1m(>!>*?V$aqMM56*JO!_pG%MA&pzTIM*-TXx^y>ri=Ux6{aFF}AU|{==(y@85q3B6 z?ny#M5Ru({S#(A0#hGi8K@K^iW7;fqwI)0M_0OvClMLM@72R3ZysHFoHIkxuv0Lb` zj)|bRsT_7P@mI5F2`+qa#sNMJeNtaPZV6W?p-zE?=bFxk(*;Q7kmOSRWgx7S(=+jp ze*dpj@%G)ID@z=1@NrOt5|426)Pn;+ZN_kuQlMU{{+M@bRUu&*t=dnXoKwpdPX!zR z9b>Xp zB34h-@6RXcTHaJle3#dHI00o3wH;l2<+h~#X-T57jKD5>XoY`Qp&#UbR_#?7IJJ`| zB%3{8jNBK!B9u4XT?@UY$;pZ~GbZ6X*F1H=0W~tO$!{}hN#8Q_FB{l!D%C2sui z#p%d%Qk9wwqP+1`;SpC+$7k`SO^fEq+ppjKXZ1G4`B`j)>lGVuLalBYqJYBXg_~cm zo`^#&1NuK8&QZ%i{U2fvDN$LoFUnK1s~x-^W=nJts{?k;dN$L6rS4b+`}@taA$nRR z2%+;?0edH1R3n|GQ59-ZrY}rgTUQTbSc=Yq+uPypmT=yfNO@p^pPoqp>WJ`k33 zQax>8t|I+4HSyUcfvl!M;@^{Ov4`c62l=ZX+UwwHkl z^I|@3szajNgY;-d#_?xNXgsL?1L}ZMb(&g1;C45>hfh-CynnX9Kkn^&IkUuPdEw^p zcmu%eRq&YbpF%5=cM?AXnf}qX2p1Tp=>rgNwJjQZDt$r&;1146tIzCNSv({NQ3lH_ zyL;oS5^?0E^Vw{Y5=h)Z;xA0L$ySQDW|;twj>a&*sPKsfKPFelUqm32mvj-&!;NHO zWVS?YojM<}rD+8B3i~N!Ea+o7Px~^}H=qpfzrHw7!>3Fekio*W{(S#o3THL-erbwL z-9&?Td9c*gRa5_nBc5G4D3!@RL}DCS9X!@2o3mF!Ij?V%bRX!j#@i^IjXr`1Mrb{C zcb)XzRfxt*sHG=ce2Q@KIC`lCcGbPvc}Egqptq3DvN*ybVr+(CJgK7AoMPzrcS3+O zBCsa#FYUBk3~gr%pA9hlGGB`|YanR~`UVt24}UcH-Ea?JvTq_JXn@I5B2UdEIi}p5 zhs*iEkV#sujQBr`O``GdLMBMDCbsmQ!Nm&vnhbz&%>6fp5NTA6luAW@>23@I?~25$9L}K~9{G@~3|9*Ol^qJZV(fe3~Zz=^pA_b}X@nW<@i_W@1y%lEb zNm0*}rKjm|X}24H|BO7ovXiK8{ZEh1N&&c6;eXo>3H+AWk3@4jX(qU1c{f?;cmadE zmv0;dWK90IWxe2=2E9$&f;I&mR@*3uw*6entnTPq!JQDOAeKDr05{W(wL=F^8J4^M zM@=c2mPj3@YpU?>Ef)zb4NdJ`eAP?W;?FrCV>9_+X0n`;3-ub(hP&eZdZC^N$%p1p zA5xCj?vf;XBxzWW5Zo~fe7c_cBif5yim4xSlCo<9iMQqPk99j5|e{r}J#7 ze|So-jFBK(_3w=*FC%+CUl{t!v|}Pi;TpMI@YUdcK0-hA$HK}I8lrfgQj5+Gv3>Q? z_rRm;xNPDt?XQ;Ds;_k8#`hhVLX)ey^#<=H*)ev~J%GTn%>lL;()@4>MX>Rw?%dSw9Z<^Js zmi3gcPTtB_RHIhHP{!tA6*#Q2cayBe(_^Z^Dxb@Z@n&@#-6V&71 zbpF)zskyPc$jICT6o&6-UK!yvI4CB!cF3BPYg$N;w{yDqX37W6K>UR8$r8p_wRMBRgZPE4Ucv+yGV0aF zeS>DH(Pj2fNImstrM-eG>}kQfpMhavd3P9czpiXcNreGg4y9*Bsnr>~(r?mom5tyt zIS;FFCI!i+aB>Jm?Qva%lQ%Mt1Q%|uzY`Y2AvMzJm12DF1B;t6_-;?5#2)X<&$5GL zdK0U075w&NQGJs?P^%6AaH({Rn4r=!{~rPmlmX!M9eUXl@zWYcffnX6IEd8q?UpK; zj3dU$l)9w)6(PXOT7!K!VKwCZXc2}y`@A;iA$_OKJpsj4E(Fg1%H*0SzzD8j4iZ5& zyFQ+5#4sR2NTpwYPmau4c`qQylMeA1@L7;RCKchzgiXJ_$M|EiEB5WWhrGTJ$Z?~1 z!D>Xq0HgfHLLV>DJ=!bZ#RwqKQG+7_DKhkb)a>j27Aq`;+V-~g9X8Q-+LvP z!%Z@)hNLu0_tg>oY;a%RvoETs-D0elO}Qe$|QdD2g^nXyVP)AtxbvO zVKo#qt+1f11ksdeTb3GZPyjld6*f685K8d&P(NogR|6eO7B zETRC-lACs}9!!soCId^MO2Les(ZZ9cIO`n6oP*qdXwZ}A^E^Rf8PP`UH~P^I(D{sy zgs&sQzB~e{!tD3+njL!m1#;k|2O?W?CQ<*p53#!nIXl444827wa20(lnh#V8`nVse zypAMooGz^#W#yn>4#jwH{{B!Bkt(gvcva0Y^u29;{JoTn&gR#cJ&(S*j$-pmqw_F zQ@x3JG!!C5W)w-ea{?dF_+t`STkJoyq--#O(R)I}7Pf6h=HW*cs>)}JyxesD-&KPo zQK$DwoS#)wuP`1wv2L=#I}28tO`ip3xZl~`JPo7=@+R3;CkB{_Cm*w6QdK(!Dz;c^ zcM(k1w15jXi8c0s_rsP=|qW619I`dfW32;=omW1_hUi@fXFEiG8b2bxXR= zNz#&bpMnM>pjNT;mz|vD0U)1q=pPQOI9f1YnD@MZg5Z~3RoJ5k|A3uH@6OdbqyuS( z_8T&6twzNYTL~7{2CEunOgY)(B2%~psOMAXdEc0m>bhbYVfEoNmv2hrln=E6gR5~o z{~3nI=BDA=q&&P{dM>*zOFC&9OJ*wm-q>DvyP=&&&rZqn!e>$A{M5sR0c2UDzwdVw zrfGWaIJd!~%dZpdtyad$?oG++FvT_!=f=0OWr_^RHX#^Sd+b{cVfn#;~jKk`P45>WcQlJ}Z2NCUA&szjt>j z0P&JP_MeFJhqhS1WDuRv2hao4p>U)Fc}KcBvW{)P%m5;&@PuElN_0n?&|Q+AZKK~z zG6lh}FazBR7MA{%qy@Ur`1K&xW8iV;P)0Jh4%nwn`!C%C=2k&^o9$7U^ZURCJ{Hyz z)N{^+v1;(0za4F7G)e{l_h=^t1EBt4XJ%=3W-?{C$EBMOyl>y;z3MkEuuh!a0MTr- z9Xc`{P7W{TO&7L_lh1s?IvlFANyn!9^xl>~jC!yxp9CJI`f z7Q}$ia+UYS3nHJCx4 z6c{Vajvmqwy*GH+aJ~SkGGGwwLrg)6RR@UxaR4ckDcs%QXZunOE<;%4iEwujPU}-T zGIzxv;wvMIare`8E)mHeUz2)iIP$#!DyepTis|z5V^{ycO2^BCG^mgVXcU=p0GUva z51S(B_|xGG`sew=Au+UHdw@&_yjx{LAfWqwrn^8nHM1HeIytTq9o>D(_eJ#$J{&=u zVFG`P&d0r$Zk;U2R3yatl!n&}n%ZaAP`SQ_)OaClXv=Gg> zg9oO3YHI2hSVan`Wrd)!5cfdZekZsY4{eB-$E@DNhc(Lt0Nzb}!_vc&`>r2Z^K5sy z-zLfpKq0*+*_$T{EDZVS!%O}cy&%0bt$?5S%UboUR_eB+d=?N-$UMO0ip&P)TFaga z#`__y?PpLK5p_Nv5;Yfvz$P?gu{MKW&4%fkr}sG~mCXoSff8~zNN&$%Xlo3T9CyN2@WLc?c;4vaiJ9U#y2;|a4 zsCoMX{C0BZBI8iUTC(Y>qc3HBgzp8fOd;Xv=dt@2>Ec07d1c+KB-3it ztA9Rqx%v?sE+2&w@hhiNw8vURyCwWM>cWwD*1BAdGv>X@P_~n;7{mPc+Ch4kx0q&e_ECv?bSs*@N_{?#%Oriv zCsrMVm2WTmG~%(*UG{85?9fg;J0mJ&UCbesx5e_`M6K)HSxC;{UP|SI>aopX86`(q zJGh|g#GA}N#5mgz-<0lufh0m)WLag*7ry>Dyv5jbUTS@GPO^Ycff?abuE!oqf(%7o zTz8(jq=g*5q{k!*NnbC*&NVBy?;S1xk=SyYqkX@J?{%^O;IN!yg{(N)ibRlLs4(+0 zg?jkT&VI6stU${5=5^(`H!6fS)f(#t1(IUs!2Pge)rAOtxDOxt8{>$hc#Qx*Evy#} z`s0Wkw`dnUGx{c74gM*gLkg{wr@EhQ2Z^6IezV@A39#{AlOA+G()wMrpoMT#KZMzg zZ;kb7y@`J4P)2I$C?KCtrUx|iTJw#Ga-US9*1CczLYig0M+6aonsUJ6j@=69kC~{k zHNAMzawBKhvPnctmEKfs#;_>pIiV4KFNMvfA5*Rgx&UogDsE?) zwn~E^Pp^}%GwRxPvGZHdSEi1ENkA$xW8u-+spNiXW%L1dcPnMG4BaqIO=|&nvaQzm zxDzWH`{b&{$sbd4YJ#QaBwzR-OZTT}A}A#jCRo0Ir~FHgu6$HN6zSqu?qHA_!7Pj;nvHMy!y#zj?8%{*ib9(w!UACkSd zGkyv}`-9@926c<~qT3s(b(?e=qx!P!iY8aB1sHyiT;ZkOq&;)6{JihHRaAj)b~@SN z8(2q~m6_5?Gtw*;u#!(xBcGT2iHp>EP>Vyzp&=}F)v1;8Cd|Tucl8&ZocL;;4^Se4 z>u&&0*mwnQh}^a;1C+$=q6mBl`|hxBVsxk}V+yr|n$Ik}J(tMy!^74xn+>p1m$N<9 zoQ5XSQY0%Lk7#l&GP_Pc#dyrVBP8%RpOkz_%SI_pRb8zSFi*GjTw4bc!Q^dXI=VH% z9DC7{R+FvgX#4$|o@#MV(sTGE>fmOm^=(&v6Typ|47LrE-}Z2sn5`n*Xn;BJ8irMU zLNf4pXaafbC6mQCpUgFZejF3?!wzJ8(f0AG2Xk9r>Y+FzvlZa*)eh+8z7Q*8-gwvU zgLjX*lK$Be;t?CWoC-({Nr~DFPsUHFGXcI9Ca>Z%3Z}Chw~cd_|0vE~t6z{akXPGu-FKV_%cK%cRS~n_&c@Xd2%l*4Uyrrk@uLWf zt_82Swz>`&M<1-eSd|dIt0oqg5guPyiEjt+PZGNTAW1jRM*2S5S9@9?^X5L|(+u z-}iFu91xP@3A0W5)c=;*0i~CMp~GTD`|o(uVSwLn)wDrLX}Z?Kdk+ua*#q7@7jreZ zQ%c6va=|+T!Qr)R<1ZXZAGad=uInW4JUqPf374^glZemy&kjt-3aWV!nDRzV**hh8 z3$EO8J+65JxfOs6OdKZ`wvaUrf$G%gQ(*s@qjfbk!ho>^1U7=Ny*yI^JY+{lGKcTI z^VTR60I-CfJq2Y6_n+=s>98QaKzXvT@J|--o4<|rZdoo(v7(Akc3ZTkz1*IgV2XhZ zglFrAJYc@Pr*JOhUF$xc>B$tXV~cVeEHCeCvRVlaTzAQ7lb_p_PnX(Oj1<%#U_VSuf0nBPP z!B;7FyP@R^?GN4gcAI{$z~|xDQpHkILRvsV2CX}C65x5_Ewu~%U9kKKbf7Q&BwCJM zJg#^;Dz889W~8RCj(v9{SricXzLGnywZs0jJSqcA49NEdod&In!(Y;F=bHgm9?Boz z&Yb7H7Rea*R{AB!Hvx4q@tx+Fr0rkrN1#eHou&b==GHgb*EA?L=(SYx7ov~9D32+* z|C7|Tr`o6{Ys|N+!lnr_N17A@pt35XBRm^IbQg?OLxRJ(37LbEVVcfI+lE`WUAEz3 zfTx;s<$hAE?=UqfFrdUv83~q{`)uRE#qrB_V6;JI0?0OCA;ko+(4Cw9d4|Dc&F!8@ zz~*VH4@s=vk8!r;S+X-LvweUWVn2(mCX`RGZ3W@Wwi43N7)2N1&bQjVpg-@mP=>|i z5He`I3jh9Et>H+<*|o03O>0)?Gn5+44|jO~NOx2|(*sPH<~jaQ^uS-y#z@7%`RKyr zPN(HxCJpJ8o43Uz9I-V7=2A1zce+bqB6`Bg#o@)5XGwQXBWMEwawRlvD0E42fa6^% z+aV0~sdI>>JkW*?IfL=-qDAvHnfORcX=oU43sSnRSIdjdwVI}Gh*5#SxM>;S@bDiV`#( zmDiY`U?|#5aL@09@fbM-4JXc--sxsM666 zxK6t;@_qTw_%x=%1e#U3f2GK;7Hz>d%UO=Iom_moE&+6d6rlNC=6|T|^oLy&ui# z3cmcdypnxwrwiufKdmbAlf%~1tQ6bQ#}z;LzHf9`%=5JVBfvd&oqU9ytUKw>bv@Dx zS!j7tl9J6eLL(2L144Oh1m^a0qob7Ky=&Aiw8v?DU$E;yqSb)!NAgVGg&6t&D+}`D zrNb8E6N%rx$h*lfcTMjY+?kKo+trM#)hkh6#2muJVNauvgwkvFo4~qA?j)+5yT9R| z!1;baW9iNAr<;d|2I;JCVA%(ZC6a$^hJpL|d}7X&-Jn_1`YI5?(cu_Bmp1qj}H=16#Z?;fTT4hF=1;KMB7DVK&CkM8tD8p zsy~>*MMHD1bG95qdz}9pIsjvqMPTf{^r%A>0qNp*t=@IvPAYdO1-^tE1*cKZL&^z3V^vF!>Fitsisi0wsPYv-CkTYE^xcgbR&2%nHk-HU_vJr9qAqE9fsH^k3L{14EEVj z-Dz4$By&uMiMv+kXzf?NLypab)psIl+jFVD$S%3byu92NY%vU(?&P{_3BNlFBgFk; z50|nT`8bYOjU;$o1#WJ~tKq=+ihpz&q1@TCeRFA&RJ1*`zoYelG@N2AYQH7)-QCAI zC9s|k@_qh!b#GHAK*!IDtNx1^JjU>t(09`HyfMQ&VLN2P*A~s(3BARH(g*<#s&tM2 zRQ#p^(k7HkRBUNKzTq!0MK8<~z8&`J@EZOEjyyXFLjj`uz>uXi^82&~qAHnKgExT} zIYO-!n`VG9=p#rg12hKMcfJZ=Uou(NXej&eKozEX10=g?PawUFShLlygIthrPhVeN z(nNbVy@D@lzie8OBS7eY@A;^jBJhPx{~O(J1o$p>l088815#lnO83B!O5)ESq~x$( zV#ogZUDtOI%yC0Z57PH0pCl`w%5{`6{2r4{@^3OKH65bfA#~@UGOgcj~Y(mm#Zm@ZS2H~fvh^uWd5Q!h}_Uh1(L zks)$33n~RY!{`TpLf{&HbAJ{MXWrvyVa4Bn=Hs>%d4Nv=Z9o#7V{88;RVnebb2#CO zk7h2IrU)xaiEIkDl$|PmITU@*ZeWJq@eBY2<2=nyYQvLIR6*XwN4=z4wy^~6Z`xDl zjqtm78zf&YJsFpv@b(OScsfxQb*XpPtky`gsx%2 zJabCzKwPq_Wgm!oe(<++?+DCE+IA#W;1t4SEu>AfnNpuHv&jF4+86z4Y^kMKbA@Mc zqxemxsfn#YTa=m&NYeq%wy__p9vIS3Y3IEe#SiKciF3`m$?ZTS{D0K%B>bDr>}s6C zk(`VRkN6ibyv^f#qkS0oHd}=lS8Wb|XAI{~lywIqz<_AMzsW_b)cpg#H(=bhL~6bI zBBnA30V4j!v+kV2GKoH{%ByIIH5fW%2J*j2TSAXhCK9V$L@Huk)ZKYD({{MfU`gEF%L zdkNf1K<+nFxPn8`7n!RK@DeG&ho3m}{vyu|KqxLe$Y3%6UogOPzf78}P1+C8!}o*E z`(x7H2lvYGm{2i?VY2n-og#P-?HpaHl32rX>i^HeJcj^a&H!5Tx%96zp3mbbJ;NSS zGVDpmDvVE#?=q*|k%Rs`PD=Pie(n)Sw<{501{dL-yW)eA5F3km=93Co4JFJ20kVin z>h(E1hJ>SCVZ$fNW`co%qp#@&gnUTY(LgED1@iAyZc7^4Pvm7PHLkvpRH}qGMM%7y zMsgpFM7oLRl3Alci+yoeF&jgJ5QJ)U%f-_IZ&`sjM`KwaAe5UV?3a$w3z&^St&1tT z;5@r3d87v3wnIOQ8EJ2#bM~9@l!3n!*OJQNwgx{U)LbTts}q(GHRUxD5q& zC7--xqpOPEM~$BUdBXBUx%>bE>yBG-B}pj*QO3Fp#1Z;JN&L8ukW*`3Synvym>&n@ zluyQiR6HDcH`(08F#-%C`AtvADOOqq&V1RpyrLR}u%uIfYPvo7H;1A;EBhjFft=h4 z@Mn`G050M!rs4YAf@XkjHTaqZ&^@9s=OMM1I4#GvP2SXMvKP4bKy?K`$lSFkRvsW@ zDSj@mUb=43Ag0z)A*)lYn(vYwVD$g$mgQWI%;Rv`NMmQDAU zHEbzkEs<=pO5iW>SV|Q%(j?OrbHv{W=P0o{zOv?!b#_h4;gbudX_gXIgK5N>>1u@l zzaJgxd>KHUhP4{O_r2b#FK5>YmR7wo5PgbMu|DMk-eWrf`Ie>sKKKWfVL3dL9P${qO>lpnbKk?Rwvac(k zK6w!1b!xkVar8&w#MyPgZ6A0#OJQ!b9T{5tNZsV%$`L-EImuU~Rr?*GJ8)?g4Bh3J z)oRC&=VzzyV*S*KlhO4X5#C9Eu?>3bbBka%w`Pyd6EkWf3HB0L7RRk|v2`;?QG3;c zT9~1Lj}bh9I4x{e(@~KsrBc5CH-$RHYCcg7*1!INQW8sz=@P;kIBjpUh~;o$0$bN| z-aMZ0MudU**dffTDSH8@Ve8@blK~)mkqT+`_wzlR-)^6mK^S;ffhxS|;2i%sA+>6B zm6bO&L5?n8U+lg20Aa)9GrOJrYI-g3E;L;kvq-vnKNeoLz+@w~cJk0ONp;m_g)T?N zh}lXmV?If5LLxm}^^ukA476O!0?uTA3kbCU5THaVK$0>GABa^`;+K_OBOB?Qk$aha zf&{Ej3BI!(?yyM`F-Oh<6z{XNI*3Nxn}K`cQubXo$eD%79X4FS71O;gJ>B&jK;Vkz z-h58Rdle=qmzRdv`ITWUD_ADIp{U^`dX}WK*CPj~`uzx6sbjxR?R@G5-y2=4e`vlp z*6>F0R8;?0PW)P=HJ_C%0U8qCO|Umx^^pHx&(`YS5qxR;xn@B>E{@JTgOLiH0ZSKx zz-T72i%crG6vN&_F{%Is;n#Arwehx$mExF8M!%i^sYH4u#QHe~Ro77m?!xLq#Wc8S&$bbWqQ+$SAuerrm0koAtB%{y7AV8pg3eDtmSc#Md}$ zvNL`LZF%2E7NqnVEA}l`DA^Lz?(Ad=7t}IB;}yHv_xg|9VeV`M==HoBb=y^#_8OOP zAY)8YQ|;GG*YBcIB9EVQG#8pMI`7 zai9Nk?Izvwi$!g-e2eQoXepyrs=0yN!PXWb_VN661JaN5am|UJc>D@A(w!YUd9(oB zipPqpYJFXr7vCm4T0Jh2xNC*RLUbQQC1x(Ll0JP^13hYIOKTQNz&StjEQc&4!PLsW2~Hq@~Q`m z$^=}%_}qD>*+#zagSQ=Om=~7U)!45` zVhdx-O2HY;Qc}B24v$AVmqi79TBnx}ojsH;ch6Z?PK2knD{x87&K(BsBmy}ZL^GnB zV+gh_NghG6$Rr9Qt#pTRgm4FZ$!TiD{aBLHT-o|6 zteD!mS1ryCyXjn~yiWc9NIDCDI^X|~Pj`1SHB8qynC@=l=$JMf2g7uCOmDio9VTa* z={#c0aCDp4@BVy$e}Kp1a^2^?uJ`?Zzh18=m>kEazR&~w{ro!wd|G|1hv;skTpEu# zJkc;#kZED4y5w*frtJ|~PZiXkjbb^W#gUj{brQ6y$y9*p zM}VSm`ZaAka3_%7aT8yv*bJHV1|AJ2A8|49fbVCvH*5NmdHAXXGn^LaCQN_L+f{Z+ zjLUy9zYJvP3z>!d)IiKYfDE=kZK7owjKYZdcW)pVB4~%*dwuYAl!6mrwjL$~feLNO z=l9vBIJBQ6fUTf!Dc7j5kWxQOQJLx%+WJ zL}~Ye?%(QO@~#QHdActF}tFnHPtaWWY^=<*XbgoZO?~nUt65g2W25o~DrRWTC zyH>R%TqY$ML%9i$;lx=VO?HM#R!#wAOabVMEJOgZwUvx9aJxT*G0Yf!yK7VTPKX7t zin)J!`u6hfo&?F=KY)i1>*&3;h6o#(t-?27@_#Kjs|G57mACCCfny9w9Ou`%w6~EH zOzBa0`~AtW301)7iau*1#*jVTbfjP9|I%v5T;5*u=gy(bh=_ zunt$pGQ@J_kXfoEj)gNl?%@2=c=hu&!%Kq{z5#}hsU)1p(XimU=C{p+OOVa0vC$>s z1bx<%3V6IWA+MtZmi$>$JcH5Jl<65i>d8e7{>om@_nJWr1a5VTPaMqMt@P>iGTC+j zuf#)Q((dht{cxOjrt>_%!gDt+0!5a*p7n)ZwXaEe4cXHyg#Fj`51H*P=kes+^ZsC| zbWFSy&JUhX^gYH=IR5#$Di+}Dem_a=p{e+e2re0WUGW36SIm+r^T+bDn=O|;mihDNXi^zIgk#Ip zMa_cbhs!1fju5wp8b}pVwE#iE2+6#nXQyP|At9A7r)*n(TP% zq#Dn1L9X#iaPvjmRk_{gS8r&3X80{eNSKGCy?gj%!M$!r3SR{%n{8s3jCs*0Sm|r} z-IGY;-#)Y!&Kdb$rWzbA0mM_yVsqOIK;+x9S+Rihyf9dlRfzeFWnWx0 z5E2@CEbaQhm%rR>klIV1<$Rv}`ILplW9leBeOEwMu_!k+5Ty7WGqK7WoSwD-c_HQ` zYU4GGaN!}-KjPW^3Go148Nda|g|q(KgtQ4_F@}6RMAYQf>HH1Em(PNJ;+sT;8F}jR zZSW;u{MvJcXf?sQAIROW+-!@yE9E9GK9anr8Y8wy@Qt{U!P1Zd-PSt^s#zX^;PVod zu5swUzq@%83J9LfCmNAd9GqOGzeSvlGn=vKe$T-OAgWqjp@mV(EgL$gOw9pL0apPp$PShS5+|Bo3Q#*Cc zbN|I;M2$28xMv1)weQSpY{g2mL0|fL2ft&f-&FCsd3asYafcd_la$#UivN!SfX#w{ z>4ypqm|-e&!~kGo>0U9`b!rG*!_zEWIKM$5pey5K9^&^)*&JIjM+GQen)G4e(SSqi)oe<4q2w1oE;JJ$^*IlWC?U6j@K3pZ+NnXx}Ju$0=WOvr)Q?;5A%yyF# zPX%s=vz`*tYT0fh*-s1n>k^mX?RQc$kZ;2-K?x;`bYxv5kSU>tvR{{V(Zbhd-Uj8a z!_{4EXP&8~l_&*XuK%34#8Fh|kx~UU{T0vpTivvwLD>{ddSP`m1z6qRKDG4@-)$CH z%SHeHN>nttUf031qMTZi!3G|utvGUBB-4V%4`J$KdVlDkk#~VmoXym)mWeEDp~W|E z-xJJE_4?N_nzPRk6+WCiPMsgs#m`~<*1p!{D602hJTaO(_F0~~luVua(3RiYJM~pj zvZ)&$Sgz`nHN|(Zj@vJu8~2L=(znN5LUY`Z7OMIv<{}kZTTIxPX1dCh69Kz+JN!B+ zy5Zo(;weTI6;2cs_dP(i56F}$WVPIW#} zpf*(gXub>)&<|@~!&f`MPfL>bXQ1jC|7}Z4tSJA^Ho=yRa&7aeW0Eebg|)e55EyRV zml>_BtE6hJ;u$AoijU!7cMGe4@;;)?=YO}3koDsLFw+B$1=^9-&)wp+0Rnb5cz)0)qsE48tn|J|e=1F`h*ysLzAkISbd107 z$}^7cS0jdrH+TrC8vqa)** z4W&v`9bn8Auz7{dJKs_@rNOTaOrvzS5>^7_X2E{=@;{QoiGDZ*NPox72SACO89ti< zvrM3Z39M|zr4Ppac)olDmzqN-CYXMz;j$MkxbpdJb!)=lDC-BIdu%+^(scE2bP9Ln z=EhFsFt}#-zYeaXhXYKWTtM;R=7opKcz6eMdx&6vD50;>n+1-xz$|u$*l8S*;zcn7 z+I`8iBWK>iGP<-nHS6}LCoSpFyn9iylvQQQ?b;vYUx_a1RD?B>4|XC&?23GBQc<9h z6WbvDc{g#a&S~=U2EUaj5v35qj&ZU2KhCkp1qgaMfV!*bm>HOzvG$p&UR=P*;Y~Vm zSE3<#huW#E)<~UTbU*`A>SejMlp~P@gRB({pAaHat`b{;^2)->CIr;Yu?Vq#c-S`x zoPh<0<3ygm)TlmNCoOLo1ccwo-~!oP_r9-w(eD?6p{P3Xs09-^q5(LSE}J0ymC0%y ztC5rR9mviU=RdQq|DNY)51X#h5x%`;rwXRaSKq$9?;-Yf&e=Qv$W-K9G=Y$~@MXBH zsuh^PiJR7zW-epkOQ0WwZjperM&>Bw6=f{XduNBs&`i|>agv&5UT?lw9)4pbdUpE^ zXxW*&0|!prVuYO6^QL0A{`M0Dz&*X`O8DE0EJt=2>f1a8EnoIJb{N%|5LUiJIGBde zV3xh?E>rsKH4kok%HD9ue5iLlkD6N0YHMX}na4(QWfCbD2P?UUGD<+o4Nu|tRKIaX zhT>@igdYnmn=R%hp4D%8CW(Lty8)oZrDs-XADmZ$9!mWi5=#;OJe$|_Y1@VT!oD5i z{Qjo-YH)>|wnZQOR4_`sJ8yocz^wDqrkgpd~x&L-#z7%XnRLh-9_J_G#)V9W&o zyMB|2h(>KUmT)OQsyIJu#&76}W_(I1t2JI4Qr~W~EAxKZqscTC(mPV$Hr=<<`h^L&$~K775586W#WK53Msnc$;N-W75Ky*j_F}QgNC6@> zXU;pH!1}1JT3nz?5k(SXI2~u5HDLe~KgGxek=pZo?jox$aM#Z>+pX3C6ATE+l4%!%weoT#JV zNl~66AJ!ghC0U7k4nSKY@Ch%G-)4dbGr|jOmYD)-| z)A5!iK&O?`dUgtYJ-MVK>h-SeQ^P;mt==Q11P1klgGslyTu}5;q zTt8+0RhNiii^1LV6tre6Ksc2hz(OGM$GCw?9!f3{53eS z#%o8KZ`B^hDef{~cV%SU-ZHp=&3o*GwT_lcMh+QKqWg*Y_x_RN>R+MU6~)U?_8FFx zb2EQk%7NKBg=0@y;CTuw98+p3DJQ`Dmv3<02W)!ALonATO#we4L!;P-CNzXZjpEY1 z5;#8|5S>;*bH;Gdb&<#6y~YLU$}*7$rQVmn=1u2mYf30qEZC$KsaYMbOE&-8F$>2# zAQy-l0^ch$b)JKKp0%(NgW&_JtiA?pFa=w09ZEx?gc-0^wrG`#d$mDT-qu9&vGdgR_an(SQU))3zZoDxSF zh{_)HM*j)XefoG`XE8`{IFd%tb53?qoR}!LO5_}YyABwlVJ&gOaUR~W%Dt@DJ9gA3;k{4Yg#Hp4O zAwOwoLw&8B61Nnry-_e3?7K4D3gYIoE%UYir2@yyxemK*e(Nt17xHM>{FvESHh+pi0*jnnhQ82tvOaO=C*;4293PO6;<&Y&47z1@pEhCwHz@QjQL5AM z!!TV#65Pu46-mc9^C97U9b$PY!k-cC1h?=k|6iyQ_Bzs>Zq3T^1Fa(EERThfb)pW| z0oOA$g^E6`LQkmwkFdg-d?;jSz#F~rS%VOgk_;DJclIjHmOoBiXC-SzAw_}qf4=w5 zpY_XnIoO1=8H0PeF|t>CWZHa}LFAZ-+tpB4A!dtF1BS;$!;TkvgFh+VuJ)e^*gV}V z{i1(mgoeBgdf%erZAjFCC~Qrp=@=)kNdp+rL~U9)l9>U$wD&J671w4RW38gulv{sZqW}6H5 zIgHAoeVyC4V($hjCB<@yj~7(TNgZ@O&k|vP5KpnBixw|N1S7ga>}J!+u)1v_OOk$h zl3D*tEx84Fk39LuB)fK8I&eD@$bO<+-r^S4UO@E*YRHRX-}Bgiq`mUu{QBaW-bE+V)V6QP><2p=vsEn`r(SX zWEpPjT)Kg}a-6ruo3D)w6=zOOcnCpl>S3iug*c>+=86tqHFjkJK15-rr~~x$AME*^ z6)4LP1ZloZM~0JT?j}dLru0wn49R6mlv$tYr4WOvTHH60q zsg4Pnxd_V(DWVVv8aoVl?^wd6j^g=uhxlY2rs=t29_7llMJKa1 zZ^N-xelJ3?3 zBCQLLqy*G+;B7)~RO?(;nHYbS@^kqWog*p%R z#{2ek9;M)_WH$L@L#8v?ZBUl-m(CKJuFK5aPo`|bJ`@D&c0joih$kNltAXLaYit^l zU|74AwDppId8m1QVFIzx3{UGI3CGo3$S-<3j0BShw*wB)pwYeY|5T%v6gano-`DqO zPMbTMUh&|R#6xOV_88CPsaZvk?=78m`D`idE*Bpl)7t!-5LRMA-KZq< zvUTTnYzT(;A%2;5ib*&RG-FL*l5YY1F>@6Hq01k5Ke8HA-E|-Yj1?36z#cbNZm`Sh zuIsDPyV)r7MdCMIzj*-V(ACVJuMM4y4i2KgMxX@_YkNzx@A`us1lY7>&sfNc_hpL` zH<*Dmb=Tgh`-g=-IQgGLi&;3Hz2OXtOF=L!krW>q@2907uJ4)9eDxAeCDB zU!GWnVv@l36Oy&fw-oUgudyKR(o0Bb<>7ynTyWJ^QmS<))O{Js8tO>GkH1OjVlX&P=a${tpM|C|JTw}NG z3rFH7z@kcR^x}KTbVmDT%H+dK;8*?AN%!7uB4-;oy!VOa^S3?f=|BOu)XFysfx$2} zLSJCeJ_mVgL-GaOgZy_9?0*zB$;Dletd7{=iK=tHleXA+f9UoWkLYEBYEL1@i`8$& zH;J_vQFUQXnrNnsD+KyjoW>Zw{ec1pDxC^1lr*wFqS2^jrHD(V+32g^C03kU7G$*`$M-Qi zO8l2%fZ^3zbfC&c-;pb#tp<-t%(ooTY++&l%UVM{n|6Y!US3!MGu47Ry;k~#9`gnT z3j8>oKAM7=l9lX!Y3cIE;ZB_3L-Kr-)ilc>TmBCPFXKQ!SI zs$@-{?38WXC4c0bKsX3p9?Lq*m)prOS5``P)|Ie@swYWG4`40gmER4>4|h*-d?49^dBYgQJCR2$=|bp2Xi`~N_QgP7e} zKh!GYjdp}JUp%v^KZHh^t`1p4`PRQNZyZh3nC$?PrK4a4_Kp*l)6v(Ssjd zg+%G07E5%hy7Le`I%$7DK#3|X2>^bYgA;dr)r|~Hl47b`?`^=)?O$H5b>=UnSmMOB z$}MfYZNj^ja&o0+ruz4C1->L7FbuBU>OyUr9)&xXH2>SI@Et(SnsAOI;btceVgF5q zv@UG&;5Ol(IBe@SkWLJV)Sh=^I|>i0p%8R3U3)KgcvI^IISOk&k}*G#nm zpU}rVBalf`P>Tbb|qu2`d7bb$W`u;XiPzPfB_eC-%uN z&9v?aWd;dUdssc6y|r(abX5MSaGo5Nz7ij7`4;0j_2P4QzLA2(1Q88W(Q|4Q*?_tw zmp$+)3j4DKk9})96jrW48X`J^Ymc4l)Uf<~GyI=hAyPTtx4|vgCtelER(cyC3jDI! ziEt7s`oezM8nUvOjL*GxtU|0$rsA&HLDu=3pC*c1mVvp)==4W;01Br^`;#O{R%BBd z?{SXTGnF#YO?mFW%7TF3mteg@NkNBSD65xkC9*5^aZii~Q99Kj(KcUV?%Xa)=72bzmvRS*^FYAk&)(f@%dkuxFJ^8Nt?4>Z}c&DziUULEQ)Lu^K7-GWK_n|U>e>c3O8#4uA1S}Dzaw4L3_gl`kngXiC8nu zcMG2=mzv$sac zCCoLWR`Kx8pFBw8IS$^z*>nZkdMpprAuHKpIGe!i*5bhi%6A_@&Mfpx!QZ`oe6>T{ zYOS1}6m!MSRnsPRd8rl6($8w0s>8IODci9_LYut%vuUaY{Mfxc&4e+&2;nJkbAx%? z&>+SS^PlW#LDvoTLlNEl{&%xR2TV~u(9hWFHUg{-*Ki)Gl3M_|e$KbK&`B5DtUd2+ zC5vd*8{7uSC)8G{W(T3XMjLG7!6hd@`vT-N#QOW_+LVK~@GXdQf&Nf|zZF%k*H{M% z)FUDNFEUcIBY8)h2|dP1+cXQEu!)#w&q8rmXPu9+o5c71_zD!;E`^RXg^AKnM%OPF zCpwvaLe@4F@_mVV;XHVSWv#wo)RZx0%7dw&S_zo>jJfWURg4ABfHHT|PF{KyspX7r z0x9hvSWMc1L&mgF-5VuLNsKYc)PCsno#_jIs-JE>bH$?lP9 z4Dc;@IvY?ua9%lc*-z~W*}qpAi+S})r$<9}e>}fY>Benaup>X7~aF9uxXAy4h;@N0OwP9iJ62@`){tSmh`w4?@ zpS;sS@_%ck1Y`W8N2O0wuuI(yPj;aGIBV-8qvMdA?h|YT@2|L?F3Lfpzh3M@=>jH> ziElae&^`FQ>`CUq4O$T^nUI6ABMu+Wv%n?gQk?a|Vd4r9tgjey?1Vq@Jl4Cl!L()(kEDCDLFZ(rl#tIfZtoN|2Gsg)PKFF4<~a zpHbu495gw=~ma7iA_g|Wdy7(QLK$5q@S1Zp!9rbqpP&mO`Jj*l43C4q5EHwf`L}HqUm*l)g zrJsyeqFq$bXRD-7I>`KKUNs8|&T9#qv73$F+JSfLSD#3{&f%8dVj-)2ncsIvVj9eX z0{zm&0s$M|3S%bU*#2DrS3pHK)p6Dr8UzLHMA>!_YKD*3-!a87sAz($E)7H|Y=F*s zZGndu$t2kS%2h;E`xKK!|21*{TKk7vi~4Nbf?9<2A1mz6Zz3RF6u8CL%jM$HO7=2K zH2Szzm`Y?QjR251?Fz$BPWItr2`zppvt`gD=Ecwx*J>8xqOjTrp28xq^NR)gqzSQ1 z)m?*$YR1z(frk_#7DdfHa{^plnqBA9w=amkEzxv0_$B%o5JasV+kRB+`1*Uo0ECRj z#b&4a(*T%4yWTEKU^JGgv}$~lnh4B7itnRgf57?T<&V}>{3CPyQ+K^e1Tm{17NBY6 zWIo89dJ&INNcE@W;tYO+^(!%eer)QC*Y*Hpjs0L+RvE>R{GR}O8A9M=LrONz@&+sV ze>SbthLyiqnx(P(Tw-E0UNToxFtOsuKRVF6KMX*sljU?U$9B+X!9Ua?Yqxu_9MnDy zym@|3Jw3mv!T5FSC2uh0r$FTYPe5!XMV>nF&L7=Ii?LzY>0!IBAXOhZ2^HFsORcLG zG!{)}IksfUl4tVsvY$leO@bAJa?zs2m9vBGSUY}cgrCnim`!eguEVtDTir6a{pU)}iwocvH6w^Q{xvyU2(&IR?T%e}eniEY zPOWfjB?6|9t&t+e)VFu*$4;m8x)!KX!Hd$R7Emjz{&$cB)HcJ&I;;JBTM4765Da}l zl!m&oS6aVYkL3Hg$n9aC9q*Au0JpCJ(kd8Sp`C_ACQ-pd@%jVd^ux~SU zUo|%VWGtclb;jE^2PI9u19EIeU+pTD<|(Xv#ulhD7J3!c-J2L!Q2o71Kbww&0S!R{ zkL8%US>YuZ?HT&9Pm-gW4YO0w>5ALDq0Svo#9CaStrsi+WX4E^CZ8#LJ_18P=*zwu z5>tkqGiJd4{=hU~#VK1Gw=do)vo->>mmDWk3=(p?ofX96{Mp<`Br1B0*T$>r|c; zV^l!$BDartSR1iOJ7&HsSd<7NO0B$h z`^&BE`!9O&jFZuc4#S3mB|+L&L{MBa)}f}>mV#S*+A-aB-RIg|kKeY0H=jnRpMAQH zDJZmB)D){iT31r2^ZNhFPYkGazHMntRvbW{_k}Ooi|Ly zE~KBmP2HAN2Y$cy@x1f``c+SX?%4-)`$aus!#nE8P|Ow|@ZDm}N}X!I*I5w(ObQdZ zN)ZFbtIbt2JD#$oqN{#?xw>gc25)e*R%!8zPf&&F&6gTqs14ZYEt`>YrKUEpRgBaT z%Pv;Hc)VH4^iiCfnT6kkUB?{4aL>gVf*_eE*C)`2OA6sqf=;wCOp|9eV>b_xhc#-Pn7M07Jv zg+Wc{Zy%l2l|E62-dPy7%G_7^CfLrnM15VFYisvELjm76m`UPH&Z)%%IZo%|qWyn? ztTkM=08zYODt;Y4`UHm(e=XsC*YIHe%GZ2kG1YRD$ONroX&biq>N=U8n)bQ~zV>Ae zSs&r}4VJQ4{GU#vs|#TEGr}~xhYbw9Haq*gFszBBVfnj4a^LIk3`r^mP?T?VYaz0i ztPfDhW(%37-Yljy&;|HgYX2b9BAQPaD>+lr42ELd5-V|y))Q^$Out?Oo!xd;!0P&LY9(oQQZ(g@ zr8$oWMV=ny_{Rj_6I!&s0MD-dNZY%Oi0XY(`c&|XvhbQ?pEceLbn04R#U(?*HqCGRwzQ}3iu>aau(ou3TY@n z^x8UzuYL_^vS7G=#^2UgFT|12G>gR#{`^X`i~*9HSt3CX6Iv8ob9ki%yZosY!PNf= zgD2=R@FuB>wZl!n1o28OkMyc9pUxo14^_$rX9$=v68czr>%#{2vsw8AUuND0AVrLt3wxh z&Sn9KXx06s@qxgCdz$UPqAuBqq!iA8&7sIm{zH~{=ObI(lu;?;l;W{=bkta8r8=Ah=?r&{>97VD*(%Qw6W zIGG0K%Pd;kH)O)<0iS-A{tj)tW6vn(wl4JNca`=sNf_f}4d$@<12J@X+!a50VkIODkcfhbMu>8J!jT#wh z_UCRPzhsRoFw~DDdi*2hBNeAw=%Hpy>Y$-ICGK?Z(B2#6#VJPjM#X3wUcl1ePU-&T z0XY{%ms?EMXYO5T)DbFsWjsgWUq((6Nl80!7IzK+{ma9=@g*-}`d-}|W8i$(i@Hc( zWBOOaWVOFffFmQrZ7Licw1)d%6zIFeyduCrdY_XOEo!@z^z~Se0I11H^u2={=GJRm zg&Bx02u^)K>3=FiK(3H>zioh4t2p}c*q5t2Z4$@a$x9{c46eUZi2efoe+oWb%r3&@ zc4OwN#y{VdG_5I3A(>8<2jT+JW2oM6*e{4?_n~IPaCKqaDih-YtXN)SwZ9^j#@HK@ ziRd{-`)S{QAC9$dmo#6 zYCpYLp)5}_ZqP@qT+ff-CeyKFI*+UYyp3BwZ+-GsRooS=7h^Yd9MTtJOX4DY@eJp9_DI)?Dqk6i|s;o>G4WHTM>Q{CP!#1Vr3?&=K`}-|>1* zN8f9Nr)(b=OKztCF`-73C+n6R@LTzuAW?q&1Ejq3XDtdV!I5h$g1?7lZZ(|aNWm{| z=*^?WokFO{)J9=Rr?OY#?oc_5G*Xm9nov_{dq95<;uU%w^8=BnxP)gM!oIxY3?S%{ zupBX%IhHI14&AEG3*NgQtRC{{iy)W4y6$F;@Ef~!qUZ6{Wqsm8^gHXC#dyPKtcpB< zx$l^clD8YW*A42{JN(M7p?BpJ9o3{aPM>_nt%Z2@dfq7J>X5w~P-++vHChTeh+iO* zx(7Dty|d9Lt~((K^V+=-sY(%SV2|{1CqC1$W&C+c9Q-ef(*W0^_c`+IN4PraqXcVXdevU>}WS zrCt)(ODWYL(Bu0|GlS17NpXF_?c(jP``>V?tj1_u>lb*a-UFeDsPv7yZz@m(KSsH` z)gn4gtv?D#+EflC=SNr2?3$q~{8pY;}5!s?l}4b#V&P+3QRx7 zDugZ6CiQ2A7s|!XtIZJ>WgGE>&|OsTzl!|JldQ$Q4<~cMPCqjn~ee@nWlbT zj=BDuLM0Zy9>L3q13Gd1&h((W|5)Y4MAf?b^ZBwPC$Ah~_&^*_UI<`I&R6F|OF!bI zou@P3Vg-8O5o*8Qpw9snt`0O`>zgKA>RQ{C3Dj?yA6Sbnpqm*eYQL`FOMW=zyn=pW zzez@P@XPceCer*i@jelhhw;9E?xX&QXlDt5ToL|0&6-l*a`fNhLw8oGOQ#L;{&yi9 znXP3Awub6?Z}4PzX{O!)6NJuKD&IGsiS1Z|OH-=g%=q3nM9BaeJz$q5e{3yf(GEid z`X7uDtY+d=5ku@T?6sGMhL!0R9Nzr0%#Z5$2deyxdX2TGo9ttASk&^I`K^ppW+N>+ zrCx=_xZV9|Ve@a+XbJN{`;?_rG}+ygpCN}XD_SECz)i{mLOkV#rKej@}#)8^7}l+U>)1Y>6GCal}&KF?mrO0{VRckJsu&RdAS1 z7Ckk>ykW_x)Cy$ks=BcffLiY9dq=*5IOqAbmNxjBpHod@Fy!>2ZSh< zj!Ws(>C>>0Bh=Cv65#jq`P%nFpNpn?C>sMlaeoweXx4SvAY6_$!J44U$_Db~|K3=U zXR9Oq6nA}xh;z>nGcm$LV|NB)YKw@9!tK3=L%P|8VQiW#x(d7~Qw-2A zs&f$Ia3$Gd^Zu|H4e(P!QjV>~$6yiqgu20~Bk6fORn&nK{>ld*%g+Yh!mdLT;-%(y zHYpCj2+W@H_lud2weZ)bCEdJme>zln3rlq=2)*OFfx9X8FzMi2d_fKCgh!J>f_uN& z(y<9U074;x@p3%s+o`MSPfivG24 zwjw}YI8ajHbW#(%#{(+(>91pt-3hWIA9ahJWeEY^>$15Gc27oh2~O9bWb;nA)pJT% zW!$D>lAI=HCt!)3gU}Hhi2pV{Laws>HpWid0bSF5RpFx`<4pQKOtMY)7H~;g?e4Z-CIt9=e6}!_NHZ_Ux#{@ zC$n-TyMzVIlB`6_x&<@*hjC=)k+N=16m(u6*RYVtG%&L~c(?l{-tMXoJVAup>ZCJd znLwlF&O%KCn?kv2fZm%+awb-PdtU*JG0+TvaV(!OD%7!rD}5XAam+U6>pkur7MN_I z=e2PTPs}p7tMWdeR*X3fr`OFidd|K;1l;cwsJ)bEjxrs$G5d=7%;yVEk(lw)oYkNM z91$pE2?7%n2A-~GW)yHKc|DFtdKbSI>OQD@?ASXWLm0SS#!EcYIsXYMfF+Yk;!+t8U$`FRp?NKZ0y;{-eCwsu}^f!;&h$dn!Y3ZnP{XIKMhfZbKUUC>Dcy}ws zjiboTurq?lX~!Ji>Pv_0oiPBb8$v89=j=(W_|pAnghC-Lp;OoD9Q`s9Az<(ZO9zAW z)B^oE7hyP8rQMBRmpF%05?Y7yz#5nl5InZ9`FwY^LH`bR$NgpPm|RM0uoN9$C-o_Z zJ&nZ)QM6m}YJAU+w^0n~qB8|3p|1LOGIfi%$#Np;21rVJ-o<2dYL}KFs3Vz4ASJ$F zQXNMOFFm(1_SsKZ4_&>Bz$-b56(jzM0x0|hhW`=+ho1o&;w8*2wxura4JQikW7k`u z_q9ym$Ir`O)Xyf|{w&zPrzJ=2b)VE}Sbyl>Vdrd&gX|+xLcNUNXC4A9wD25KyhYS3|>SJEA?P#c~;{X$-Ne+QnND2Dh^pq$ILU zKms246i(`C27#NM^*5XEOU3!lpX9z8^ZcWgC=|C#L#766lMpvB#*)HxsSb~Axd<{L zrGkUS72$mTrkL5)Yc4<2#x^`6Z^=<&NT2s(vN!x?AM2`ae+V~7>F450rY>q4W0MS9 zP~FT(Tt^*BY6;y0bJ|!F;eY)wt6aUZ7}yIk^b_(2KIYmgjd{P(4=P+@(+)+6k>g?l zA)uBuAXDVYqUiP9ly=B!RXj;UjPTl&HdV*f{+i3li~cnI_`IE1*vy@Y+W<@CsTsF0 z#e8`B)k@svb574ZN3&SdT{<&ba?XcPL8A%%M$S$-pHLpB^cUfHj-vK)OID1kpe%Xe ziQ)*rT)Qtmks8EuCJv*AWRll3cjkm3OwLl-h?;irLYrQJPoZ5`><0=z&)XJnzbxS6 zqWL;hyzv6_IdIq7jl@J<!N^I2)Ne_pWijf@V)oje>EnTJv}ITt0WD8m!T zp{$Ul+#wMcv|PS^n`o|=T1!^&j1cLOsi%rCAog!8&ApvDh-ii_s5sv+LU>~F_nNJ8 zNEiKfq#B1f%D#B+VB`HE#Y!H^0S`It2E881aa6cDm-~ojZ;1CH@O%JdGxLjL4^1)i zOu{A<@>%@7xb@eX!>?djO}f~N!aC)cH6w9DU_*FF>$f^Noz6N05UOpo{~~)>=A}7U z$=cX_VAS$+mkQD5@q%(_(F$A^{3GM}TW}#%s7F)_T8Z zP4COJP>A#~>|_Xf2uj$hlR!OfTH^)pWE4%CKN_BpjIyJGJ~r+t(swecoNh zfh5d^Z9HA;(#N4sIg?mAe7aG6J|9#GU1HXke@MB~s^|`_14a8imwlD(f2VZBkv%G^ zT*$-Ntuyj392|>4f%(%L9)nVJVtZ?K(Vw4O3G|UkO<0Q%6DX5f$}>m}oMW{Mzee1~ z%|L%)b+a=KfqSu&5!%%ft9%?D<(L6WM31^}WCm+=4G>B#+r*M?r1_y0C{@li3ch9D zi#$OXu3e6Ekb|RRA>f%MARk04oBB&Ui)F z%B38=l)~0I^U=-QT)*PeMUj;ytqz&=7jnouD$PSmmE;I5=H0GFLbRXipA8?=NlzCw zifrnh7g2yo)x*8k$~v;)yyh9rHmXW95Tb3K>)gA9Pt*!(3H*D8LV9V;&^2fGd;OO= zNa=dky`6-1n^|vLvZ!Ms=-qBeqNweu<*-{br-;qt30T7S$&O!mtk6(){oQHvJBk0fNDmb zlM*ioxr_fHjoVJKS?-yYN)hA4JAmg#*e$YTrJ@exQ?OmrHhw7H%9kIqwk#IP9AK;Z zYoqsjZ2nuZZ}?;XzZ{3gc9bF@XrCQ13(+<$nG&NeI!601K6aA1zNNWP_JI@WaE1fW z|5k^okfQ6f195M_LW;bK+6BGHV2Rk`w(YA(R?-t@>HynN>6r8z@wwlxm8>fWZbIZr z@?>#P5f~!k znC%q$dA^Q>u+e@P;Tc=F4Ore|8DTy4jl~ZWv~}1FFO_)@p{(xm&!BH5cik!>4Fcr`?2o5P~TAftQgXCjl_v}|y>974&albR0L8{E; z3si7Wb~<8A_>6@+wV|S^si$NA>60?E^GBYbKhD5xO4-(-F-y4fU8x~(!3!N=kHV7503*}~>_f0ZS9aBADqmW1N%23E3)p0Oi>NSFA-Wtay=Lq2%E1dXs_FlAwz zFjs(9Dw*sx>I`)as8<|K`RCsJeq+qa2+5x}R1aI_=j@5dMN(N+nEs}3V2y@vP4vyU zA~fAqnJzlThif&8gSyFdI%_{$=~!_I@+gSV{wM$i^kCvvCu_gY$<_GLot7|Z)cbSq(K0C| zJrxx_NqC}?Jq{a#)90@0!}ZczCog&!Ube~V{_bOC)U?|*IN-Na#%iBOcijPuF9e(@ zVuUg7Pv3a=9Rpztp(`M4#d#zULm%lnni$08n-+X=Ev$J1MzWM#b#)6w0~m)Q;1H26 z?4LQuU!)2{J&_VGp2bnCsY!mqZNL~5kQH8On-Xp<1M87H>2!U%+fR%|``?F14XfkO@>$blGnRZ6MC}?!%N& z$QI@G5H5h)`%L0gbXA<0X4a8luhjY&Q<7WYpD}?LuZAs6&Z-x_1kM8)SK^S9nabm6 z7bXy)XS2}9xyNjQqG#Nj2jlTt`6;|jf;>klPh-q!3K?fmW{oPcH{84`Tl9y#TFBcs zCFTrceP@p)Qv;H|j{pu)a`gacqL}D#GacW=d2wU`QAe1YM0WJA<<2vdjdu#iYI3q* zxh;I$|3}hU2Q>A*ZCpVF1OcT}I;ES@-BMCAL_p~wv4Mn0mmu9GoudUdy1N?&2vP$^ z2q;qT`TpKN;h*iCJ?A|4bKlqXxnN$si1FaXn#EN=z(LJS`%&c;vNV&;US0P?irtHM zh0*IUxw)goxa>_6I-HT-We5Z@x068ih*q^_A7Bv&JeHB%llpx|MMAgRZKyh#Au2j0 zp!`^{Ur^|~*TPkzRicaD@b7M!#nPbipm1vWAC%V(!F^4!_SWjit|+1JarBi~(*#}G zsHZ*?IAl6}**qr(!xoeniXa4#uOiD=iWn!aBc-KCS3&LUfPjF$z)0zrqU~g=?~2v(wiEgNeSCWm+E>MSs|`~_F%1|*)cNoh>;HP$>@ zMG)m`|GD8xJsl40mKwMY-gD{uSX``(_W3{O#+l1z zWP#F{b9@J6X-Ugo8A)eQPD0iE3g}hGU`!yLkJFHw_v|c*arC1%eZMAdI9p_6|7^q^ zBAYWEe)Cg4Fa6YS zXcxIMN5);b_fztJP!El-k9#C+?Pjy5pgfC3pKJ$-ax|*~fx1NLC0|6%S$vHLiFZb$ zBM_pKw`^){2Am=~S&pK3q#o=b7o{pfHA#rg+W-h$+XCzLPOS|l7PNgr9|j1MjyU?` zYd%dK0e2YZb|_I9cEUBgHdx4;#57TIJao8=9DDWd00DX0Xr@3i;_fNVex?d4&tJ*D z$0@vxhUet%rCbZ}ubz+#tKjm_h%j)S!4QDxy?3K)Ggl(=uu3IITK0zD)dcbP$3hU( zbt;*B-`KgO>4MAs%_~40K|t3*evvF$r;_dwkNNee$M=$m zYs{4BaB2OUA=UZK$Ef_P%;^0OA}fq5VX5^Z*HwEBIEJK7Wi+nh>uXCu%)>JeAa#N9 z)gaNL7HBl1D8@|iQEHxIp?&Li(feMF(Bm(p`d*I!6N}6LkU;Cg!zLPxmbjC^aIH)! z)#Y7H#q;9Tp%_@gdea9^Q;I6yo$s)}aVS>P0Y*t!_)l9U7^;>H)f631Wy1_|dsKCi z0&MCB|0qSqA#DS;L_!YwwF>q6OLu*_3PRMsb-9_|>Oaa^0W8x43fY0muk(g}8V8q- z6a$8;_bKM=0%J-%{pJc~K*+aSDh11luJV@KEJ~kC>HI`Oe>Rnf{vZOPgNiBJdbY1X zg^JSvdWak$VF=JgRa(%N8jMrZc=WFI-vMA(WX{77VI2>JYkvR$A5UM-p%|||=J|z^ zc<0M3p6GEa!-C!jMr$tp3`o;?jtS9bvkJ;=U_{V*@De_2WmQKPRsU$9ReAXaTtVFHb> zV6fwrc7HTe;y*95tfWp4C+TLzKa~4Nb_k`b(GH#u>sec2P=TFAnfm*{_sA(t0 zho%*%cSgDb>T1gyE9dypnsv0p*5F5U7U1o(FDWUk{~H^q-BL*Zl8Bwj6t$G*ChY<+ z(+zjBfvt;><~UCFcc})-)g=F*6)6Z_xG*GG8Z$1{5PG@(47*8DKM=z9S+Ho;zC_Q? zCv?CYNX8-8KejL+e;-lCe zbz!vH+$S{CGX+}G6c?kpxW!(a-yLj|D};elgSf0it6do%cH+d=d(Ue1F7{$;6v zG#8LEl4h0;al$Hevy-`7Gk*G)mVEUFrGN65uNgX9BdyH5-4CH?{w?lNiTNUp3eV$=QACV`RX%=Yiyibgv8+*t-yA$ou`UVqd`&I;P!%!DI zl5>yv?C!PXk8~3MFs-SmFyK>Tw^TZ37978H0vUDo#`5~TIH^Cv!5D# zKBgV_vu3EE-gD^B0qBI#G5WYm$G1ac3#-nS^m16YLd#LJW;AWTiqji8x8!ozOVc*g zmyT3{JLOi6%)*+GH}*RGv}|vLr@BB+xb)C{dc4x>A8Csvm;?PVqo1_7SZp?Z4-tiQ z{tr?-G9qo8Dw3&)n?9=lyTf_{ZE9Rz6K2MgIa5l%c%GqyzpB7SJ|Lg0yo@AK$26!d z`nu2C@~GDSF!EBN3i5WFtXlEw^8jAsPjMQs?X}8gepoMCFah-b(YI6E5Py3gMnE8Y zan7H|3o~Kq;-lrHs$2QbkFN9EPZ8IK51P&FC=6?g&OM=KrK&S56^4iu%Zt+zFO?a+ zUf#)179N3jI`SgqZTD4ZN}z~L_Gx3hL3xTG3TXze>URvfp~R7 z2VCI=R!ITz4h_g+B{ASkII~N+l&Ah z)tS{dG?^38&%B9ZQkSJj+ns1!!CB^m5OOI=0LC)d2T=VCTa`{UJrxYVaYUyT>qTd?vZT-HWr{vLmtud`_-IxQvsB9~sz(uvc7u*q7f{pz>g+aDEKsm@4`!Z1iCThNAdM zIjHmTX<;nVnN&0B2Zu0r@}ATKjw7q6IiZoL`2rfbFaMRv#gnsORqhPQzSA{(+|-Y# zisk~!|Jr~{bhuL){E9Fs*(rDE?yuh^(!@OLO1@`-XPwO-dt(0USd`>8N^)c*SLPn2 z-YxDV#CtI=Y`jAjJELyqBhU~p*a6C}Ns@2-{am(!JnABLdG#+{;;3)TlXR~B0^+4A z6((F@9>|wCY}ml9LO?t-3$9{~O+y2q=XGb`EKh5vW&7_2+v}G9^R<&RANA6)A8BV@ zkXvbuaW>TPKmnrkfjRLuJ*sEJyZIkOK$7-ipcOAfz`X$V#TnIGsd8upSZs0Dy7hH7 zL>(C`5778a4;g?JsO70+qu0Pqe$}OA{+Fm41JHAT&|v$#G(wsi<59HU?edd;-)k-e z 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 literal 0 HcmV?d00001 diff --git a/Needlework.Net.Desktop/MainWindow.axaml b/Needlework.Net.Desktop/MainWindow.axaml deleted file mode 100644 index 59b4807..0000000 --- a/Needlework.Net.Desktop/MainWindow.axaml +++ /dev/null @@ -1,9 +0,0 @@ - - Welcome to Avalonia! - diff --git a/Needlework.Net.Desktop/MainWindow.axaml.cs b/Needlework.Net.Desktop/MainWindow.axaml.cs deleted file mode 100644 index 609fceb..0000000 --- a/Needlework.Net.Desktop/MainWindow.axaml.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Avalonia.Controls; - -namespace Needlework.Net.Desktop; - -public partial class MainWindow : Window -{ - public MainWindow() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/Needlework.Net.Desktop/Needlework.Net.Desktop.csproj b/Needlework.Net.Desktop/Needlework.Net.Desktop.csproj index f3618b7..b0bd5f6 100644 --- a/Needlework.Net.Desktop/Needlework.Net.Desktop.csproj +++ b/Needlework.Net.Desktop/Needlework.Net.Desktop.csproj @@ -1,23 +1,48 @@  WinExe - net8.0 + net8.0-windows10.0.17763.0 enable true app.manifest true + + False + 10.0.17763.0 + 0.1.0.0 + 0.1.0.0 + False + - - - - + + + + - + + + + + + + + + + + + + + + + + + + diff --git a/Needlework.Net.Desktop/Program.cs b/Needlework.Net.Desktop/Program.cs index 0bf9f5e..2dba233 100644 --- a/Needlework.Net.Desktop/Program.cs +++ b/Needlework.Net.Desktop/Program.cs @@ -1,5 +1,11 @@ using Avalonia; +using Microsoft.Extensions.DependencyInjection; +using Needlework.Net.Desktop.Services; +using Needlework.Net.Desktop.ViewModels; +using Projektanker.Icons.Avalonia; +using Projektanker.Icons.Avalonia.FontAwesome; using System; +using System.Linq; namespace Needlework.Net.Desktop; @@ -14,8 +20,32 @@ class Program // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure() - .UsePlatformDetect() - .WithInterFont() - .LogToTrace(); + { + IconProvider.Current + .Register(); + + return AppBuilder.Configure(() => new App(BuildServices())) + .UsePlatformDetect() + .WithInterFont() + .LogToTrace(); + } + + private static IServiceProvider BuildServices() + { + var builder = new ServiceCollection(); + + builder.AddSingleton(); + builder.AddSingleton(); + // Dynamically add ViewModels + var types = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(s => s.GetTypes()) + .Where(p => !p.IsAbstract && typeof(PageBase).IsAssignableFrom(p)); + foreach (var type in types) + builder.AddSingleton(typeof(PageBase), type); + + builder.AddHttpClient(); + + var services = builder.BuildServiceProvider(); + return services; + } } diff --git a/Needlework.Net.Desktop/Services/DialogService.cs b/Needlework.Net.Desktop/Services/DialogService.cs new file mode 100644 index 0000000..b8f68e4 --- /dev/null +++ b/Needlework.Net.Desktop/Services/DialogService.cs @@ -0,0 +1,47 @@ +using Needlework.Net.Desktop.ViewModels; +using Needlework.Net.Desktop.Views; +using SukiUI.Controls; +using System; +using System.Collections.Generic; + +namespace Needlework.Net.Desktop.Services +{ + public class DialogService + { + public IServiceProvider ServiceProvider { get; } + + public Dictionary Dialogs { get; } = []; + + public DialogService(IServiceProvider serviceProvider) + { + ServiceProvider = serviceProvider; + } + + public void ShowEndpoint(string endpoint) + { + if (!Dialogs.TryGetValue(endpoint, out var _)) + { + var dialog = new EndpointView(); + dialog.DataContext = new EndpointViewModel(endpoint); + dialog.Show(); + dialog.Closed += OnDialogClosed; + Dialogs[endpoint] = dialog; + } + } + + private void OnDialogClosed(object? sender, EventArgs e) + { + if (sender == null) + return; + + var dialog = (SukiWindow)sender; + if (dialog.DataContext is EndpointViewModel vm) + { + Dialogs.Remove(vm.Endpoint); + dialog.DataContext = null; + } + + dialog.Closed -= OnDialogClosed; + } + } +} diff --git a/Needlework.Net.Desktop/Services/LcuService.cs b/Needlework.Net.Desktop/Services/LcuService.cs new file mode 100644 index 0000000..aa1acd3 --- /dev/null +++ b/Needlework.Net.Desktop/Services/LcuService.cs @@ -0,0 +1,31 @@ +using Avalonia.Media; +using CommunityToolkit.Mvvm.ComponentModel; +using Needlework.Net.Core; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Needlework.Net.Desktop.Services +{ + public partial class LcuService : ObservableObject + { + public HttpClient HttpClient { get; } + + public LcuSchemaHandler LcuSchemaHandler { get; } + + [ObservableProperty] private string _statusText = "Offline"; + [ObservableProperty] private IBrush _statusColor = new SolidColorBrush(Colors.Red.ToUInt32()); + [ObservableProperty] private string _statusAddress = "N/A"; + + public LcuService(HttpClient httpClient) + { + HttpClient = httpClient; + + Task.Run(ProcessBackground); + } + + private void ProcessBackground() + { + + } + } +} diff --git a/Needlework.Net.Desktop/TextUpdatedEventArgs.cs b/Needlework.Net.Desktop/TextUpdatedEventArgs.cs new file mode 100644 index 0000000..246efe2 --- /dev/null +++ b/Needlework.Net.Desktop/TextUpdatedEventArgs.cs @@ -0,0 +1,9 @@ +using System; + +namespace Needlework.Net.Desktop +{ + public class TextUpdatedEventArgs(string text) : EventArgs + { + public string Text { get; } = text; + } +} diff --git a/Needlework.Net.Desktop/ViewLocator.cs b/Needlework.Net.Desktop/ViewLocator.cs new file mode 100644 index 0000000..3f8142b --- /dev/null +++ b/Needlework.Net.Desktop/ViewLocator.cs @@ -0,0 +1,35 @@ +using Avalonia.Controls; +using Avalonia.Controls.Templates; +using Needlework.Net.Desktop.ViewModels; +using System; + +namespace Needlework.Net.Desktop +{ + public class ViewLocator : IDataTemplate + { + public Control? Build(object? param) + { + if (param is null) + return new TextBlock { Text = "data was null" }; + + var name = param.GetType().FullName!.Replace("ViewModels", "Views") + .Replace("ViewModel", "View"); + var type = Type.GetType(name); + + if (type != null) + { + return (Control)Activator.CreateInstance(type)!; + } + else + { + return new TextBlock { Text = "Not Found: " + name }; + } + } + + public bool Match(object? data) + { + if (data is PageBase) return true; + return false; + } + } +} diff --git a/Needlework.Net.Desktop/ViewModels/AboutViewModel.cs b/Needlework.Net.Desktop/ViewModels/AboutViewModel.cs new file mode 100644 index 0000000..26d7951 --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/AboutViewModel.cs @@ -0,0 +1,9 @@ +namespace Needlework.Net.Desktop.ViewModels +{ + public class AboutViewModel : PageBase + { + public AboutViewModel() : base("About", Material.Icons.MaterialIconKind.InfoCircle) + { + } + } +} diff --git a/Needlework.Net.Desktop/ViewModels/ConsoleViewModel.cs b/Needlework.Net.Desktop/ViewModels/ConsoleViewModel.cs new file mode 100644 index 0000000..4226126 --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/ConsoleViewModel.cs @@ -0,0 +1,75 @@ +using Avalonia.Collections; +using BlossomiShymae.GrrrLCU; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using SukiUI.Controls; +using System; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Needlework.Net.Desktop.ViewModels +{ + public partial class ConsoleViewModel : PageBase + { + public IAvaloniaReadOnlyList RequestMethods { get; } = new AvaloniaList(["GET", "POST", "PUT", "DELETE", "HEAD", "PATCH", "OPTIONS", "TRACE"]); + + [ObservableProperty] private string? _requestMethodSelected = "GET"; + [ObservableProperty] private string? _requestPath = null; + [ObservableProperty] private string? _requestBody = null; + [ObservableProperty] private string? _responsePath = null; + [ObservableProperty] private string? _responseStatus = null; + [ObservableProperty] private string? _responseAuthentication = null; + + public event EventHandler? ResponseBodyUpdated; + + public ConsoleViewModel() : base("Console", Material.Icons.MaterialIconKind.Console, -100) + { + } + + [RelayCommand] + private async Task SendRequest() + { + try + { + if (string.IsNullOrEmpty(RequestPath)) throw new Exception("Path is empty."); + + var method = RequestMethodSelected switch + { + "GET" => HttpMethod.Get, + "POST" => HttpMethod.Post, + "PUT" => HttpMethod.Put, + "DELETE" => HttpMethod.Delete, + "HEAD" => HttpMethod.Head, + "PATCH" => HttpMethod.Patch, + "OPTIONS" => HttpMethod.Options, + "TRACE" => HttpMethod.Trace, + _ => throw new Exception("Method is not selected."), + }; + + var processInfo = Connector.GetProcessInfo(); + var response = await Connector.SendAsync(method, RequestPath) ?? throw new Exception("Response is null."); + var riotAuthentication = new RiotAuthentication(processInfo.RemotingAuthToken); + var body = await response.Content.ReadAsStringAsync(); + + Avalonia.Threading.Dispatcher.UIThread.Post(() => + { + ResponseStatus = response.StatusCode.ToString(); + ResponsePath = $"https://127.0.0.1/{processInfo.AppPort}{RequestPath}"; + ResponseAuthentication = riotAuthentication.Value; + ResponseBodyUpdated?.Invoke(this, new(body)); + }); + } + catch (Exception ex) + { + await SukiHost.ShowToast("Request Failed", ex.Message, SukiUI.Enums.NotificationType.Error); + Avalonia.Threading.Dispatcher.UIThread.Post(() => + { + ResponseStatus = null; + ResponsePath = null; + ResponseAuthentication = null; + ResponseBodyUpdated?.Invoke(this, new(string.Empty)); + }); + } + } + } +} diff --git a/Needlework.Net.Desktop/ViewModels/EndpointViewModel.cs b/Needlework.Net.Desktop/ViewModels/EndpointViewModel.cs new file mode 100644 index 0000000..608fcfa --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/EndpointViewModel.cs @@ -0,0 +1,10 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Needlework.Net.Desktop.ViewModels +{ + public partial class EndpointViewModel(string endpoint) : ObservableObject + { + public string Endpoint { get; } = endpoint; + public string Title => $"Needlework.Net - {Endpoint}"; + } +} diff --git a/Needlework.Net.Desktop/ViewModels/EndpointsViewModel.cs b/Needlework.Net.Desktop/ViewModels/EndpointsViewModel.cs new file mode 100644 index 0000000..a2ad6e1 --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/EndpointsViewModel.cs @@ -0,0 +1,57 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using Needlework.Net.Core; +using Needlework.Net.Desktop.Services; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Needlework.Net.Desktop.ViewModels +{ + public partial class EndpointsViewModel : PageBase + { + public HttpClient HttpClient { get; } + + public DialogService DialogService { get; } + + [ObservableProperty] private List _plugins = []; + [ObservableProperty] private bool _isBusy = true; + [ObservableProperty] private string _search = string.Empty; + [ObservableProperty] private List _query = []; + [ObservableProperty] private string? _selectedQuery = string.Empty; + + public EndpointsViewModel(HttpClient httpClient, DialogService dialogService) : base("Endpoints", Material.Icons.MaterialIconKind.Hub, -500) + { + HttpClient = httpClient; + DialogService = dialogService; + + Task.Run(InitializeAsync); + } + + private async Task InitializeAsync() + { + var handler = new LcuSchemaHandler(await Resources.GetOpenApiDocumentAsync(HttpClient)); + Avalonia.Threading.Dispatcher.UIThread.Post(() => + { + Plugins = [.. handler.Plugins.Keys]; + Query = [.. Plugins]; + IsBusy = false; + }); + } + + partial void OnSearchChanged(string value) + { + if (!string.IsNullOrEmpty(Search)) + Query = Plugins.Where(x => x.Contains(value)).ToList(); + else + Query = Plugins; + } + + partial void OnSelectedQueryChanged(string? value) + { + if (string.IsNullOrEmpty(value)) + return; + DialogService.ShowEndpoint(value); + } + } +} diff --git a/Needlework.Net.Desktop/ViewModels/HomeViewModel.cs b/Needlework.Net.Desktop/ViewModels/HomeViewModel.cs new file mode 100644 index 0000000..c46dbba --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/HomeViewModel.cs @@ -0,0 +1,55 @@ +using Avalonia.Media; +using BlossomiShymae.GrrrLCU; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using System; +using System.Diagnostics; +using System.Threading.Tasks; + +namespace Needlework.Net.Desktop.ViewModels +{ + public partial class HomeViewModel : PageBase + { + [ObservableProperty] private string _statusText = string.Empty; + [ObservableProperty] private IBrush? _statusForeground; + [ObservableProperty] private string _statusAddress = string.Empty; + + public HomeViewModel() : base("Home", Material.Icons.MaterialIconKind.Home, int.MinValue) + { + Task.Run(async () => { while (true) { SetStatus(); await Task.Delay(TimeSpan.FromSeconds(5)); } }); + } + + private void SetStatus() + { + void Set(string text, Color color, string address) + { + StatusText = text; + StatusForeground = new SolidColorBrush(color.ToUInt32()); + StatusAddress = address; + } + + try + { + var processInfo = Connector.GetProcessInfo(); + Avalonia.Threading.Dispatcher.UIThread.Post(() => Set("Online", Colors.Green, $"https://127.0.0.1:{processInfo.AppPort}/")); + } + catch (InvalidOperationException) + { + Avalonia.Threading.Dispatcher.UIThread.Post(() => Set("Offline", Colors.Red, "N/A")); + } + } + + [RelayCommand] + private void OpenUrl(string url) + { + var process = new Process() + { + StartInfo = new ProcessStartInfo(url) + { + UseShellExecute = true + } + }; + process.Start(); + } + } +} diff --git a/Needlework.Net.Desktop/ViewModels/MainWindowViewModel.cs b/Needlework.Net.Desktop/ViewModels/MainWindowViewModel.cs new file mode 100644 index 0000000..71dd498 --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/MainWindowViewModel.cs @@ -0,0 +1,41 @@ +using Avalonia.Collections; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; + +namespace Needlework.Net.Desktop.ViewModels +{ + public partial class MainWindowViewModel : ObservableObject + { + public IAvaloniaReadOnlyList Pages { get; } + + public string Version { get; } = Assembly.GetEntryAssembly()?.GetName().Version?.ToString() ?? "0.0.0.0"; + + public MainWindowViewModel(IEnumerable pages) + { + Pages = new AvaloniaList(pages.OrderBy(x => x.Index).ThenBy(x => x.DisplayName)); + } + + [RelayCommand] + private void OpenUrl(string url) + { + var process = new Process() + { + StartInfo = new ProcessStartInfo(url) + { + UseShellExecute = true + } + }; + process.Start(); + } + + [RelayCommand] + private void OpenConsole() + { + + } + } +} diff --git a/Needlework.Net.Desktop/ViewModels/PageBase.cs b/Needlework.Net.Desktop/ViewModels/PageBase.cs new file mode 100644 index 0000000..5e0e9f0 --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/PageBase.cs @@ -0,0 +1,13 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using Material.Icons; + +namespace Needlework.Net.Desktop.ViewModels +{ + + public abstract partial class PageBase(string displayName, MaterialIconKind icon, int index = 0) : ObservableValidator + { + [ObservableProperty] private string _displayName = displayName; + [ObservableProperty] private MaterialIconKind _icon = icon; + [ObservableProperty] private int _index = index; + } +} \ No newline at end of file diff --git a/Needlework.Net.Desktop/ViewModels/PluginViewModel.cs b/Needlework.Net.Desktop/ViewModels/PluginViewModel.cs new file mode 100644 index 0000000..29d759e --- /dev/null +++ b/Needlework.Net.Desktop/ViewModels/PluginViewModel.cs @@ -0,0 +1,7 @@ +namespace Needlework.Net.Desktop.ViewModels +{ + public class PluginViewModel + { + public PluginViewModel() { } + } +} diff --git a/Needlework.Net.Desktop/Views/AboutView.axaml b/Needlework.Net.Desktop/Views/AboutView.axaml new file mode 100644 index 0000000..67d9051 --- /dev/null +++ b/Needlework.Net.Desktop/Views/AboutView.axaml @@ -0,0 +1,39 @@ + + + + + + + + + + Blossomi Shymae + + + + + + Needlework.Net is the sister project of Needlework. Like Needlework, this project is inspired by + LCU Explorer. This tool was made to help others with LCU development. Feel free to ask any questions + or help contribute to the project! 💜 + + + + + + + diff --git a/Needlework.Net.Desktop/Views/AboutView.axaml.cs b/Needlework.Net.Desktop/Views/AboutView.axaml.cs new file mode 100644 index 0000000..6b9dfa0 --- /dev/null +++ b/Needlework.Net.Desktop/Views/AboutView.axaml.cs @@ -0,0 +1,11 @@ +using Avalonia.Controls; + +namespace Needlework.Net.Desktop.Views; + +public partial class AboutView : UserControl +{ + public AboutView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Needlework.Net.Desktop/Views/ConsoleView.axaml b/Needlework.Net.Desktop/Views/ConsoleView.axaml new file mode 100644 index 0000000..4739d6e --- /dev/null +++ b/Needlework.Net.Desktop/Views/ConsoleView.axaml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Needlework.Net.Desktop/Views/ConsoleView.axaml.cs b/Needlework.Net.Desktop/Views/ConsoleView.axaml.cs new file mode 100644 index 0000000..72856ff --- /dev/null +++ b/Needlework.Net.Desktop/Views/ConsoleView.axaml.cs @@ -0,0 +1,56 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Controls.Primitives; +using Avalonia.Styling; +using AvaloniaEdit; +using AvaloniaEdit.Highlighting; +using AvaloniaEdit.Indentation.CSharp; +using AvaloniaEdit.TextMate; +using Needlework.Net.Desktop.ViewModels; +using SukiUI; +using System.Text.Json; +using TextMateSharp.Grammars; + +namespace Needlework.Net.Desktop.Views; + +public partial class ConsoleView : UserControl +{ + private TextEditor? _responseEditor; + + public ConsoleView() + { + InitializeComponent(); + } + + protected override void OnApplyTemplate(TemplateAppliedEventArgs e) + { + base.OnApplyTemplate(e); + + _responseEditor = this.FindControl("ResponseEditor"); + _responseEditor!.TextArea.IndentationStrategy = new CSharpIndentationStrategy(_responseEditor.Options); + _responseEditor!.TextArea.RightClickMovesCaret = true; + _responseEditor!.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("JavaScript"); + + ((ConsoleViewModel)DataContext!)!.ResponseBodyUpdated += ConsoleView_ResponseBodyUpdated; + + OnBaseThemeChanged(Application.Current!.ActualThemeVariant); + SukiTheme.GetInstance().OnBaseThemeChanged += OnBaseThemeChanged; + } + + private void ConsoleView_ResponseBodyUpdated(object? sender, TextUpdatedEventArgs e) + { + if (!string.IsNullOrEmpty(e.Text)) + _responseEditor!.Text = JsonSerializer.Serialize(JsonSerializer.Deserialize(e.Text), App.JsonSerializerOptions); + else _responseEditor!.Text = e.Text; + } + + private void OnBaseThemeChanged(ThemeVariant currentTheme) + { + var registryOptions = new RegistryOptions( + currentTheme == ThemeVariant.Dark ? ThemeName.DarkPlus : ThemeName.LightPlus); + + var textMateInstallation = _responseEditor.InstallTextMate(registryOptions); + textMateInstallation.SetGrammar(registryOptions.GetScopeByLanguageId(registryOptions + .GetLanguageByExtension(".json").Id)); + } +} \ No newline at end of file diff --git a/Needlework.Net.Desktop/Views/EndpointView.axaml b/Needlework.Net.Desktop/Views/EndpointView.axaml new file mode 100644 index 0000000..15038c8 --- /dev/null +++ b/Needlework.Net.Desktop/Views/EndpointView.axaml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/Needlework.Net.Desktop/Views/EndpointView.axaml.cs b/Needlework.Net.Desktop/Views/EndpointView.axaml.cs new file mode 100644 index 0000000..b5d43f3 --- /dev/null +++ b/Needlework.Net.Desktop/Views/EndpointView.axaml.cs @@ -0,0 +1,11 @@ +using SukiUI.Controls; + +namespace Needlework.Net.Desktop.Views; + +public partial class EndpointView : SukiWindow +{ + public EndpointView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Needlework.Net.Desktop/Views/EndpointsView.axaml b/Needlework.Net.Desktop/Views/EndpointsView.axaml new file mode 100644 index 0000000..566ed40 --- /dev/null +++ b/Needlework.Net.Desktop/Views/EndpointsView.axaml @@ -0,0 +1,27 @@ + + + + + Endpoints + + + + + + + + + + + + + \ No newline at end of file diff --git a/Needlework.Net.Desktop/Views/EndpointsView.axaml.cs b/Needlework.Net.Desktop/Views/EndpointsView.axaml.cs new file mode 100644 index 0000000..9e2e5a0 --- /dev/null +++ b/Needlework.Net.Desktop/Views/EndpointsView.axaml.cs @@ -0,0 +1,12 @@ +using Avalonia.Controls; + +namespace Needlework.Net.Desktop.Views +{ + public partial class EndpointsView : UserControl + { + public EndpointsView() + { + InitializeComponent(); + } + } +} diff --git a/Needlework.Net.Desktop/Views/HomeView.axaml b/Needlework.Net.Desktop/Views/HomeView.axaml new file mode 100644 index 0000000..b3298d4 --- /dev/null +++ b/Needlework.Net.Desktop/Views/HomeView.axaml @@ -0,0 +1,75 @@ + + + + + + + + + Welcome to Needlework.Net + Get started with LCU development by clicking on the endpoints tab in the left panel. + + + + THE PROGRAM IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT, OR OF FITNESS FOR A PARTICULAR PURPOSE. LICENSOR DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE PROGRAM WILL MEET YOUR REQUIREMENTS OR THAT OPERATION WILL BE UNINTERRUPTED OR ERROR FREE. LICENSOR MAKES NO WARRANTIES RESPECTING ANY HARM THAT MAY BE CAUSED BY MALICIOUS USE OF THIS SOFTWARE. LICENSOR FURTHER EXPRESSLY DISCLAIMS ANY WARRANTY OR REPRESENTATION TO AUTHORIZED USERS OR TO ANY THIRD PARTY. + + + + + + + + + + + + + + + + + + + Needlework.Net isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc. + + + + + + + © 2024 - Blossomi Shymae + MIT License + + + + + + + + + + + + + + + + + diff --git a/Needlework.Net.Desktop/Views/HomeView.axaml.cs b/Needlework.Net.Desktop/Views/HomeView.axaml.cs new file mode 100644 index 0000000..b3be36f --- /dev/null +++ b/Needlework.Net.Desktop/Views/HomeView.axaml.cs @@ -0,0 +1,12 @@ +using Avalonia.Controls; + +namespace Needlework.Net.Desktop.Views +{ + public partial class HomeView : UserControl + { + public HomeView() + { + InitializeComponent(); + } + } +} diff --git a/Needlework.Net.Desktop/Views/MainWindow.axaml b/Needlework.Net.Desktop/Views/MainWindow.axaml new file mode 100644 index 0000000..3e41bfb --- /dev/null +++ b/Needlework.Net.Desktop/Views/MainWindow.axaml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Needlework.Net.Desktop/Views/MainWindow.axaml.cs b/Needlework.Net.Desktop/Views/MainWindow.axaml.cs new file mode 100644 index 0000000..35791fd --- /dev/null +++ b/Needlework.Net.Desktop/Views/MainWindow.axaml.cs @@ -0,0 +1,12 @@ +using Avalonia.Controls; +using SukiUI.Controls; + +namespace Needlework.Net.Desktop.Views; + +public partial class MainWindow : SukiWindow +{ + public MainWindow() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Needlework.Net.Desktop/Views/PluginView.axaml b/Needlework.Net.Desktop/Views/PluginView.axaml new file mode 100644 index 0000000..39831bb --- /dev/null +++ b/Needlework.Net.Desktop/Views/PluginView.axaml @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/Needlework.Net.Desktop/Views/PluginView.axaml.cs b/Needlework.Net.Desktop/Views/PluginView.axaml.cs new file mode 100644 index 0000000..0f1f41b --- /dev/null +++ b/Needlework.Net.Desktop/Views/PluginView.axaml.cs @@ -0,0 +1,12 @@ +using Avalonia.Controls; + +namespace Needlework.Net.Desktop.Views +{ + public partial class PluginView : UserControl + { + public PluginView() + { + InitializeComponent(); + } + } +}