From 0e616aad29375ca34bb01c25a1722405ae0bfe04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 21 Mar 2019 19:20:41 +0100 Subject: [PATCH 01/82] Add HttpStatusRanges in settings --- Tiny.RestClient/HttpStatusRange.cs | 18 ++++++++++++++ Tiny.RestClient/HttpStatusRanges.cs | 35 +++++++++++++++++++++++++++ Tiny.RestClient/RestClientSettings.cs | 6 +++++ Tiny.RestClient/TinyRestClient.cs | 5 +++- 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 Tiny.RestClient/HttpStatusRange.cs create mode 100644 Tiny.RestClient/HttpStatusRanges.cs diff --git a/Tiny.RestClient/HttpStatusRange.cs b/Tiny.RestClient/HttpStatusRange.cs new file mode 100644 index 0000000..0920bcf --- /dev/null +++ b/Tiny.RestClient/HttpStatusRange.cs @@ -0,0 +1,18 @@ +namespace Tiny.RestClient +{ + /// + /// Represent a range of http code + /// + public class HttpStatusRange + { + /// + /// Min http status + /// + public int MinHttpStatus { get; set; } + + /// + /// MAx http status + /// + public int MaxHttpStatus { get; set; } + } +} \ No newline at end of file diff --git a/Tiny.RestClient/HttpStatusRanges.cs b/Tiny.RestClient/HttpStatusRanges.cs new file mode 100644 index 0000000..78d4f61 --- /dev/null +++ b/Tiny.RestClient/HttpStatusRanges.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Tiny.RestClient +{ + /// + /// Represent a collection ofstatus range + /// + public class HttpStatusRanges : List + { + internal HttpStatusRanges() + { + } + + /// + /// Allow all status codes + /// + public bool AllowAllStatus { get; set; } + + /// + /// Check if httpStatus is allowed + /// + /// status code to check + /// + public bool CheckIfHttpStatusIsAllowed(int statusCode) + { + if (AllowAllStatus) + { + return true; + } + + return this.Any(r => r.MinHttpStatus <= statusCode && r.MaxHttpStatus >= statusCode); + } + } +} \ No newline at end of file diff --git a/Tiny.RestClient/RestClientSettings.cs b/Tiny.RestClient/RestClientSettings.cs index c64ca2c..c12edb6 100644 --- a/Tiny.RestClient/RestClientSettings.cs +++ b/Tiny.RestClient/RestClientSettings.cs @@ -22,6 +22,7 @@ internal RestClientSettings() }; _encoding = Encoding.UTF8; DefaultTimeout = TimeSpan.FromSeconds(100); + Ranges = new HttpStatusRanges(); } /// @@ -79,5 +80,10 @@ public Headers DefaultHeaders /// Compression / decompression system enabled /// public Compressions Compressions { get; private set; } + + /// + /// Range of status allowed if empty use default behavior + /// + public HttpStatusRanges Ranges { get; set; } } } \ No newline at end of file diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 3faff76..846bd12 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -802,7 +802,10 @@ private async Task HandleResponseAsync( cancellationToken.ThrowIfCancellationRequested(); } - response.EnsureSuccessStatusCode(); + if (!Settings.Ranges.CheckIfHttpStatusIsAllowed((int)response.StatusCode)) + { + response.EnsureSuccessStatusCode(); + } } catch (OperationCanceledException ex) { From 9b3e2e928792391efc80a769e29876cffdc8f03a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 30 Mar 2019 12:36:01 +0100 Subject: [PATCH 02/82] Update README.md --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index e22f88b..096d90f 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,18 @@ Define the timeout for one request ```cs request.WithTimeout(TimeSpan.FromSeconds(100)); ``` +### Allow non http 2xx responses + +Allow all status code : +```cs +client.Settings.HttpStatusCodeAllowed.AllowAllStatus = false; +``` + +Allow only a range of http status codes : +```cs +client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(400, 420)); +``` + ### Download file ```cs From acb8265ba733419bd6ad938d26a7b0e062d3353e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 30 Mar 2019 12:38:47 +0100 Subject: [PATCH 03/82] Change httpStatus range implementation --- Tiny.RestClient/HttpStatusRange.cs | 33 ++++++++++++++++++++++++--- Tiny.RestClient/RestClientSettings.cs | 4 ++-- Tiny.RestClient/TinyRestClient.cs | 2 +- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Tiny.RestClient/HttpStatusRange.cs b/Tiny.RestClient/HttpStatusRange.cs index 0920bcf..0ed8e5e 100644 --- a/Tiny.RestClient/HttpStatusRange.cs +++ b/Tiny.RestClient/HttpStatusRange.cs @@ -1,18 +1,45 @@ -namespace Tiny.RestClient +using System; + +namespace Tiny.RestClient { /// /// Represent a range of http code /// public class HttpStatusRange { + /// + /// Contruct a status range + /// + /// min status range + /// max status range + public HttpStatusRange(int minHttpStatus, int maxHttpStatus) + { + MinHttpStatus = minHttpStatus; + MaxHttpStatus = maxHttpStatus; + + if (maxHttpStatus <= minHttpStatus) + { + throw new ArgumentException($"{nameof(maxHttpStatus)} must be inferior or egual to {nameof(minHttpStatus)}"); + } + } + + /// + /// Contruct a status range + /// + /// httpStatus allowed + public HttpStatusRange(int httpStatusAllowed) + : this(httpStatusAllowed, httpStatusAllowed) + { + } + /// /// Min http status /// - public int MinHttpStatus { get; set; } + public int MinHttpStatus { get; private set; } /// /// MAx http status /// - public int MaxHttpStatus { get; set; } + public int MaxHttpStatus { get; private set; } } } \ No newline at end of file diff --git a/Tiny.RestClient/RestClientSettings.cs b/Tiny.RestClient/RestClientSettings.cs index c12edb6..93a4590 100644 --- a/Tiny.RestClient/RestClientSettings.cs +++ b/Tiny.RestClient/RestClientSettings.cs @@ -22,7 +22,7 @@ internal RestClientSettings() }; _encoding = Encoding.UTF8; DefaultTimeout = TimeSpan.FromSeconds(100); - Ranges = new HttpStatusRanges(); + HttpStatusCodeAllowed = new HttpStatusRanges(); } /// @@ -84,6 +84,6 @@ public Headers DefaultHeaders /// /// Range of status allowed if empty use default behavior /// - public HttpStatusRanges Ranges { get; set; } + public HttpStatusRanges HttpStatusCodeAllowed { get; private set; } } } \ No newline at end of file diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 846bd12..e6c51db 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -802,7 +802,7 @@ private async Task HandleResponseAsync( cancellationToken.ThrowIfCancellationRequested(); } - if (!Settings.Ranges.CheckIfHttpStatusIsAllowed((int)response.StatusCode)) + if (!Settings.HttpStatusCodeAllowed.CheckIfHttpStatusIsAllowed((int)response.StatusCode)) { response.EnsureSuccessStatusCode(); } From 79093d5bf5910f8ebae5c0421b9f0d1d4da2e22e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:01:09 +0200 Subject: [PATCH 04/82] Add response headers in HttpException --- Tiny.RestClient/Exceptions/HttpException.cs | 13 ++++++++++++- Tiny.RestClient/Tiny.RestClient.csproj | 6 +++--- Tiny.RestClient/TinyRestClient.cs | 1 + 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Tiny.RestClient/Exceptions/HttpException.cs b/Tiny.RestClient/Exceptions/HttpException.cs index 81d2c38..592df87 100644 --- a/Tiny.RestClient/Exceptions/HttpException.cs +++ b/Tiny.RestClient/Exceptions/HttpException.cs @@ -19,14 +19,16 @@ public class HttpException : TinyRestClientException /// The headers of the request /// The content. /// The status code. + /// The headers of response /// The ex. - public HttpException( + internal HttpException( Uri uri, string verb, string reasonPhrase, HttpRequestHeaders headers, string content, HttpStatusCode statusCode, + HttpResponseHeaders responseHeaders, Exception ex) : base($"Response status code does not indicate success. Url : {uri.ToString()}, Verb : {verb}, StatusCode : {statusCode}, ReasonPhrase : {reasonPhrase}", ex) { @@ -36,6 +38,7 @@ public HttpException( StatusCode = statusCode; ReasonPhrase = reasonPhrase; Headers = headers; + ResponseHeaders = responseHeaders; } /// @@ -78,6 +81,14 @@ public HttpException( /// public string Content { get; private set; } + /// + /// Gets the response headers of sended request + /// + /// + /// The verb. + /// + public HttpResponseHeaders ResponseHeaders { get; private set; } + /// /// Gets the status code. /// diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index 9a1bbad..20509fe 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -1,7 +1,7 @@  - netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47; - 1.6.1 + netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 + 1.6.2 Copyright © Jérôme Giacomini 2018 en Tiny.RestClient @@ -36,7 +36,7 @@ https://github.com/jgiacomini/Tiny.RestClient.git git 3.0.3 - See release notes at https://github.com/jgiacomini/Tiny.RestClient/blob/1.6.1/RELEASE-NOTES.md + See release notes at https://github.com/jgiacomini/Tiny.RestClient/blob/1.6.2/RELEASE-NOTES.md true true $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 3faff76..61593ed 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -817,6 +817,7 @@ private async Task HandleResponseAsync( response.RequestMessage.Headers, content, response.StatusCode, + response.Headers, ex); throw newEx; From e5252f8d22801aee71b5877c0bb3a4e43427ccde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:04:02 +0200 Subject: [PATCH 05/82] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index c358f95..96e7c63 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,4 +1,8 @@ # Release notes +## 1.6.2 +* Now HttpException expose the headers of the response +* Constructor of HttpException is now internal + ## 1.6.1 * Fix patch request which sent patch verb in lowercase From c3444d5768ac739379ebd0bb33eaf9c874aead47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:09:17 +0200 Subject: [PATCH 06/82] Update stylecop --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 8bd9da3..3557c72 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -13,7 +13,7 @@ - + From 99465462bfbc5678601cb3ff6c41314b440f7cb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:14:51 +0200 Subject: [PATCH 07/82] Update nuget packages --- Tests/Tiny.RestClient.ForTest.Api/Startup.cs | 4 ++-- .../Tiny.RestClient.ForTest.Api.csproj | 4 ++-- .../Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Tests/Tiny.RestClient.ForTest.Api/Startup.cs b/Tests/Tiny.RestClient.ForTest.Api/Startup.cs index 58c0294..9f05233 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Startup.cs +++ b/Tests/Tiny.RestClient.ForTest.Api/Startup.cs @@ -26,7 +26,7 @@ public void ConfigureServices(IServiceCollection services) services.AddResponseCompression(o => { - o.Providers.Add(new BrotliCompressionProvider()); + o.Providers.Add(new CompressionProvider.BrotliCompressionProvider()); o.Providers.Add(new DeflateCompressionProvider()); o.EnableForHttps = true; }); @@ -37,7 +37,7 @@ public void ConfigureServices(IServiceCollection services) options.RespectBrowserAcceptHeader = true; options.InputFormatters.Add(new XmlSerializerInputFormatter(options)); options.OutputFormatters.Add(new XmlSerializerOutputFormatter()); - }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1); + }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj index 1bc28af..e4b425e 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj +++ b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj @@ -1,11 +1,11 @@  - netcoreapp2.1 + netcoreapp2.2 - + diff --git a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj index d487ec1..4ff3bc3 100644 --- a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj +++ b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj @@ -1,16 +1,16 @@  - netcoreapp2.1 + netcoreapp2.2 false - - - - + + + + From 46a5666dedd0c734f22853cfecfb672c935bb55d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:18:46 +0200 Subject: [PATCH 08/82] small fixes --- Tiny.RestClient/TinyRestClient.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 61593ed..312c249 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -223,6 +223,7 @@ internal async Task ExecuteAsync( { if (stream == null || stream.CanRead == false) { + // TODO : throw an exception ? return default; } @@ -488,7 +489,7 @@ private async Task GetSerializedContentAsync(IToSerializeContent co serializer = content.Serializer; } - string serializedString = null; + string serializedString; try { serializedString = content.GetSerializedString(serializer, Settings.Encoding); @@ -559,7 +560,6 @@ private Uri BuildRequestUri(string route, Dictionary queryParame if (queryParameters != null && queryParameters.Any()) { - var last = queryParameters.Last(); stringBuilder.Append("?"); for (int i = 0; i < queryParameters.Count; i++) { From 6b6cf167b677a72f87cf79f028e37a520e83d2f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:20:31 +0200 Subject: [PATCH 09/82] remove useless affectation --- Tiny.RestClient/TinyRestClient.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 312c249..b2bd13a 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -729,8 +729,7 @@ private async Task ReadResponseAsync( CancellationToken cancellationToken) { await HandleResponseAsync(response, responseHeader, eTagContainer, cancellationToken).ConfigureAwait(false); - - Stream stream = null; + Stream stream; if (eTagContainer != null && response.StatusCode == HttpStatusCode.NotModified) { stream = await eTagContainer.GetDataAsync(response.RequestMessage.RequestUri, cancellationToken).ConfigureAwait(false); From dfe5d36a2c221f184f08c8fdb7356289f415e8e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:21:48 +0200 Subject: [PATCH 10/82] fix identation --- .../Controllers/FileController.cs | 2 +- .../Listener/DebugListener/DebugListener.cs | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Tests/Tiny.RestClient.ForTest.Api/Controllers/FileController.cs b/Tests/Tiny.RestClient.ForTest.Api/Controllers/FileController.cs index e754e73..c587b36 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Controllers/FileController.cs +++ b/Tests/Tiny.RestClient.ForTest.Api/Controllers/FileController.cs @@ -14,7 +14,7 @@ public async Task One() { using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { - var result = await reader.ReadToEndAsync(); + var result = await reader.ReadToEndAsync(); return result.TrimEnd(); } diff --git a/Tiny.RestClient/Listener/DebugListener/DebugListener.cs b/Tiny.RestClient/Listener/DebugListener/DebugListener.cs index 8204f28..bd5854b 100644 --- a/Tiny.RestClient/Listener/DebugListener/DebugListener.cs +++ b/Tiny.RestClient/Listener/DebugListener/DebugListener.cs @@ -46,7 +46,7 @@ public Task OnFailedToReceiveResponseAsync(Uri uri, HttpMethod httpMethod, Excep } /// - public Task OnReceivedResponseAsync(Uri uri, HttpMethod httpMethod, HttpResponseMessage response, TimeSpan? elapsedTime, CancellationToken cancellationToken) + public Task OnReceivedResponseAsync(Uri uri, HttpMethod httpMethod, HttpResponseMessage response, TimeSpan? elapsedTime, CancellationToken cancellationToken) { if (elapsedTime.HasValue) { @@ -65,17 +65,17 @@ public Task OnReceivedResponseAsync(Uri uri, HttpMethod httpMethod, HttpResponse } /// - public Task OnSendingRequestAsync(Uri uri, HttpMethod httpMethod, HttpRequestMessage httpRequestMessage, CancellationToken cancellationToken) - { + public Task OnSendingRequestAsync(Uri uri, HttpMethod httpMethod, HttpRequestMessage httpRequestMessage, CancellationToken cancellationToken) + { Debug.WriteLine($"Sending Method = {httpMethod}, Uri = {uri}"); #if COMPLETED_TASK_NOT_SUPPORTED return TaskHelper.CompletedTask; #else return Task.CompletedTask; #endif - } + } - private string ToReadableString(TimeSpan span) + private string ToReadableString(TimeSpan span) { // TODO : rewrite this code bool addComa = false; From 0265c33ff50222d5e08f1c6e539960adea8d84b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:25:32 +0200 Subject: [PATCH 11/82] fix warning --- .../Tiny.RestClient.ForTest.Api.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj index e4b425e..d0c5150 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj +++ b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj @@ -5,7 +5,7 @@ - + From 9a5d461f0eca03dc0a6100de8b55476176a87ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:40:21 +0200 Subject: [PATCH 12/82] Add new tests --- .../Controllers/HeaderTestController.cs | 18 +++++++++++ .../HttpExceptionTests.cs | 31 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs create mode 100644 Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs diff --git a/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs b/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs new file mode 100644 index 0000000..7a88b5e --- /dev/null +++ b/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace Tiny.RestClient.ForTest.Api.Controllers +{ + public class HeaderTestController : Controller + { + public IActionResult Get() + { + Response.Headers.Add("CustomHeader", "CustomValue"); + + return BadRequest(); + } + } +} \ No newline at end of file diff --git a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs new file mode 100644 index 0000000..b17e699 --- /dev/null +++ b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs @@ -0,0 +1,31 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Tiny.RestClient.Tests +{ + [TestClass] + public class HttpExceptionTests : BaseTest + { + [TestMethod] + public async Task CheckIfHttpExceptionReadHeaders() + { + bool exceptionThrowed = false; + var client = GetClient(); + try + { + await client.GetRequest("HeaderTest/Get").ExecuteAsync(); + } + catch (HttpException ex) + { + exceptionThrowed = true; + + Assert.IsTrue(ex.ResponseHeaders.Contains("CustomHeader"), "An header name 'CustomHeader' must be present in response"); + } + + Assert.IsTrue(exceptionThrowed, $"An {nameof(HttpException)} must be throwed"); + } + } +} From eec36b88433fd01f06275e0265b357da98c0e465 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:51:42 +0200 Subject: [PATCH 13/82] downgrad nuget package for unit test work --- Tests/Tiny.RestClient.ForTest.Api/Startup.cs | 2 +- .../Tiny.RestClient.ForTest.Api.csproj | 2 +- Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Tests/Tiny.RestClient.ForTest.Api/Startup.cs b/Tests/Tiny.RestClient.ForTest.Api/Startup.cs index 9f05233..d4db2e6 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Startup.cs +++ b/Tests/Tiny.RestClient.ForTest.Api/Startup.cs @@ -37,7 +37,7 @@ public void ConfigureServices(IServiceCollection services) options.RespectBrowserAcceptHeader = true; options.InputFormatters.Add(new XmlSerializerInputFormatter(options)); options.OutputFormatters.Add(new XmlSerializerOutputFormatter()); - }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj index d0c5150..6d2a08b 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj +++ b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp2.1 diff --git a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj index 4ff3bc3..3bc09fb 100644 --- a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj +++ b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj @@ -7,10 +7,10 @@ - - - - + + + + From 9b00f04f3b742e0543313a90ba47228433bb961a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:54:56 +0200 Subject: [PATCH 14/82] downgrad version of .netcore in tests --- Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj index 3bc09fb..bebc0c1 100644 --- a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj +++ b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp2.1 false From 60b6e7088e7854e3199c9ff213a51504e3a7806c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 17:56:30 +0200 Subject: [PATCH 15/82] change version of nugets on test project --- Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj index bebc0c1..d487ec1 100644 --- a/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj +++ b/Tests/Tiny.RestClient.Tests/Tiny.RestClient.Tests.csproj @@ -7,10 +7,10 @@ - - - - + + + + From eae3a122c99acca219c9dfa67ceb23f3a3a6d85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 19:43:16 +0200 Subject: [PATCH 16/82] Fix tests --- .../Controllers/HeaderTestController.cs | 18 ------------------ .../Tiny.RestClient.ForTest.Api.csproj | 2 +- .../HttpExceptionTests.cs | 5 +++-- 3 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs diff --git a/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs b/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs deleted file mode 100644 index 7a88b5e..0000000 --- a/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeaderTestController.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; - -namespace Tiny.RestClient.ForTest.Api.Controllers -{ - public class HeaderTestController : Controller - { - public IActionResult Get() - { - Response.Headers.Add("CustomHeader", "CustomValue"); - - return BadRequest(); - } - } -} \ No newline at end of file diff --git a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj index 6d2a08b..1bc28af 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj +++ b/Tests/Tiny.RestClient.ForTest.Api/Tiny.RestClient.ForTest.Api.csproj @@ -5,7 +5,7 @@ - + diff --git a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs index b17e699..24ca502 100644 --- a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs +++ b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs @@ -16,13 +16,14 @@ public async Task CheckIfHttpExceptionReadHeaders() var client = GetClient(); try { - await client.GetRequest("HeaderTest/Get").ExecuteAsync(); + // Call an api not found (the Etag header is present in all responses on this server) + await client.GetRequest("APIWhichNotExists").ExecuteAsync(); } catch (HttpException ex) { exceptionThrowed = true; - Assert.IsTrue(ex.ResponseHeaders.Contains("CustomHeader"), "An header name 'CustomHeader' must be present in response"); + Assert.IsTrue(ex.ResponseHeaders.Contains("ETag"), "An header name 'ETag' must be present in response"); } Assert.IsTrue(exceptionThrowed, $"An {nameof(HttpException)} must be throwed"); From 19cab9d790b093e9f7c5e2706c20c11ee459f6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 19:50:08 +0200 Subject: [PATCH 17/82] small change --- Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs index 24ca502..d5f87d5 100644 --- a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs +++ b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs @@ -16,7 +16,7 @@ public async Task CheckIfHttpExceptionReadHeaders() var client = GetClient(); try { - // Call an api not found (the Etag header is present in all responses on this server) + // Call an api not found (the ETag header is present in all responses on this server) await client.GetRequest("APIWhichNotExists").ExecuteAsync(); } catch (HttpException ex) From 551f784cf2fa39032a692a649508db3b2ffd447a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 19:51:49 +0200 Subject: [PATCH 18/82] typo --- Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs index d5f87d5..986c2cd 100644 --- a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs +++ b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs @@ -23,7 +23,7 @@ public async Task CheckIfHttpExceptionReadHeaders() { exceptionThrowed = true; - Assert.IsTrue(ex.ResponseHeaders.Contains("ETag"), "An header name 'ETag' must be present in response"); + Assert.IsTrue(ex.ResponseHeaders.Contains("ETag"), "An header name 'ETag' must be present in response."); } Assert.IsTrue(exceptionThrowed, $"An {nameof(HttpException)} must be throwed"); From 2bb6ea8e4cb514c4ab9409c207bdb803b6437c39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:14:56 +0200 Subject: [PATCH 19/82] fixComment --- Tiny.RestClient/Compression/Compressions.cs | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Tiny.RestClient/Compression/Compressions.cs b/Tiny.RestClient/Compression/Compressions.cs index 20026ef..079db01 100644 --- a/Tiny.RestClient/Compression/Compressions.cs +++ b/Tiny.RestClient/Compression/Compressions.cs @@ -4,7 +4,7 @@ namespace Tiny.RestClient { /// - /// Represent headers of requests + /// Represent headers of requests. /// public class Compressions : IEnumerable> { @@ -16,9 +16,9 @@ internal Compressions() } /// - /// Add header + /// Add header. /// - /// header name + /// header name. public void Add(ICompression compression) { if (!_compressions.ContainsKey(compression.ContentEncoding)) @@ -32,9 +32,9 @@ public void Add(ICompression compression) } /// - /// Removes the compression + /// Removes the compression. /// - /// item to remove + /// item to remove. /// public bool Remove(ICompression compression) { @@ -42,20 +42,20 @@ public bool Remove(ICompression compression) } /// - /// Determines whether the contains the specified compression system + /// Determines whether the contains the specified compression system. /// - /// content encoding - /// returns true if contains an element with this contentEncoding otherwise false + /// content encoding. + /// returns true if contains an element with this contentEncoding otherwise false. public bool Contains(string contentEncoding) { return _compressions.ContainsKey(contentEncoding); } /// - /// Gets or sets Compression system + /// Gets or sets Compression system. /// - /// content encoding key - /// return compression system + /// content encoding key. + /// return compression system. public ICompression this[string contentEncoding] { get @@ -81,7 +81,7 @@ IEnumerator IEnumerable.GetEnumerator() /// /// Removes all system - /// /// + /// ///. public void Clear() { _compressions.Clear(); From 7e3cd27895d48dcf3c8facf2829c4a998c5b4b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:15:11 +0200 Subject: [PATCH 20/82] fix comment --- Tiny.RestClient/Compression/DeflateCompression.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Compression/DeflateCompression.cs b/Tiny.RestClient/Compression/DeflateCompression.cs index d42872f..8483292 100644 --- a/Tiny.RestClient/Compression/DeflateCompression.cs +++ b/Tiny.RestClient/Compression/DeflateCompression.cs @@ -6,7 +6,7 @@ namespace Tiny.RestClient { /// - /// Gzip compression + /// Gzip compression. /// public class DeflateCompression : ICompression { From bbc5c581a1985d5fb3cc060754481a52411d4155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:15:21 +0200 Subject: [PATCH 21/82] fixComment --- Tiny.RestClient/Compression/GzipCompression.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Compression/GzipCompression.cs b/Tiny.RestClient/Compression/GzipCompression.cs index 7ff0f6b..d95cb02 100644 --- a/Tiny.RestClient/Compression/GzipCompression.cs +++ b/Tiny.RestClient/Compression/GzipCompression.cs @@ -6,7 +6,7 @@ namespace Tiny.RestClient { /// - /// Gzip compression + /// Gzip compression. /// public class GzipCompression : ICompression { From 647536623c5fbe446678e1edf650f22ea8419657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:15:28 +0200 Subject: [PATCH 22/82] fix comment --- Tiny.RestClient/Compression/ICompression.cs | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Tiny.RestClient/Compression/ICompression.cs b/Tiny.RestClient/Compression/ICompression.cs index b68775c..1a66585 100644 --- a/Tiny.RestClient/Compression/ICompression.cs +++ b/Tiny.RestClient/Compression/ICompression.cs @@ -5,36 +5,36 @@ namespace Tiny.RestClient { /// - /// Represent a way to manage compression / decompression + /// Represent a way to manage compression / decompression. /// public interface ICompression { /// - /// Gets the content encoding of compression + /// Gets the content encoding of compression. /// string ContentEncoding { get; } /// - /// Gets or sets if the compression system add accept headers when the request is sended + /// Gets or sets if the compression system add accept headers when the request is sended. /// bool AddAcceptEncodingHeader { get; set; } /// /// Compresses the stream. /// - /// the stream to compress - /// the buffer size to use - /// the cancellation token - /// returns stream compressed + /// the stream to compress. + /// the buffer size to use. + /// the cancellation token. + /// returns stream compressed. Task CompressAsync(Stream stream, int bufferSize, CancellationToken cancellationToken); /// /// Decompresses the stream. /// - /// the stream to decompress - /// the buffer size to use - /// the cancellation token - /// returns stream compressed + /// the stream to decompress. + /// the buffer size to use. + /// the cancellation token. + /// returns stream compressed. Task DecompressAsync(Stream stream, int bufferSize, CancellationToken cancellationToken); } } From e1f772354531a78e4c8710a8663a03e7dd9d6681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:15:36 +0200 Subject: [PATCH 23/82] fix comment --- Tiny.RestClient/ETag/ETagFileContainer.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tiny.RestClient/ETag/ETagFileContainer.cs b/Tiny.RestClient/ETag/ETagFileContainer.cs index eaf3aa8..0c7f018 100644 --- a/Tiny.RestClient/ETag/ETagFileContainer.cs +++ b/Tiny.RestClient/ETag/ETagFileContainer.cs @@ -9,7 +9,7 @@ namespace Tiny.RestClient { /// - /// Class which store data of entity in a directory + /// Class which store data of entity in a directory. /// public class ETagFileContainer : IETagContainer { @@ -19,7 +19,7 @@ public class ETagFileContainer : IETagContainer /// /// Initializes a new instance of the class. /// - /// the path of the directory which will store the data + /// the path of the directory which will store the data. public ETagFileContainer(string pathOfDirectoryContainer) { _pathOfDirectoryContainer = pathOfDirectoryContainer ?? throw new ArgumentNullException(nameof(pathOfDirectoryContainer)); From 358e6e28a2996a7e80b60f10f1cd0d49f80a5545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:15:45 +0200 Subject: [PATCH 24/82] fix comment --- Tiny.RestClient/ETag/IETagContainer.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Tiny.RestClient/ETag/IETagContainer.cs b/Tiny.RestClient/ETag/IETagContainer.cs index bdfcb9f..517d5e8 100644 --- a/Tiny.RestClient/ETag/IETagContainer.cs +++ b/Tiny.RestClient/ETag/IETagContainer.cs @@ -6,32 +6,32 @@ namespace Tiny.RestClient { /// - /// Entity Tag container + /// Entity Tag container. /// public interface IETagContainer { /// /// Get the existing ETag. /// - /// the uri + /// the uri. /// The cancellation token. /// return the etag if found. If not return null. Task GetExistingETagAsync(Uri uri, CancellationToken cancellationToken); /// - /// Get data of specific uri + /// Get data of specific uri. /// - /// the uri + /// the uri. /// The cancellation token. - /// return the of data + /// return the of data. Task GetDataAsync(Uri uri, CancellationToken cancellationToken); /// - /// S + /// S. /// - /// the uri - /// the etag of data - /// of data to store + /// the uri. + /// the etag of data. + /// of data to store. /// The cancellation token. /// Task SaveDataAsync(Uri uri, string etag, Stream stream, CancellationToken cancellationToken); From 716ea14a357dd16848a9918e74adf1695d2107a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:15:53 +0200 Subject: [PATCH 25/82] fix comment --- Tiny.RestClient/Exceptions/HttpException.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Tiny.RestClient/Exceptions/HttpException.cs b/Tiny.RestClient/Exceptions/HttpException.cs index 592df87..a18f279 100644 --- a/Tiny.RestClient/Exceptions/HttpException.cs +++ b/Tiny.RestClient/Exceptions/HttpException.cs @@ -5,7 +5,7 @@ namespace Tiny.RestClient { /// - /// A + /// A . /// /// public class HttpException : TinyRestClientException @@ -16,10 +16,10 @@ public class HttpException : TinyRestClientException /// The URL. /// The verb. /// The reason phrase. - /// The headers of the request + /// The headers of the request. /// The content. /// The status code. - /// The headers of response + /// The headers of response. /// The ex. internal HttpException( Uri uri, @@ -50,7 +50,7 @@ internal HttpException( public string Verb { get; private set; } /// - /// Gets the headers of sended request + /// Gets the headers of sended request. /// /// /// The verb. @@ -82,7 +82,7 @@ internal HttpException( public string Content { get; private set; } /// - /// Gets the response headers of sended request + /// Gets the response headers of sended request. /// /// /// The verb. From 6c436b5f62b11450ad5d6982944cb76db16f8e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:16:09 +0200 Subject: [PATCH 26/82] fix comment --- .../KebabCasePropertyNamesContractResolver.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tiny.RestClient/Formatters/Json/ContractResolver/KebabCasePropertyNamesContractResolver.cs b/Tiny.RestClient/Formatters/Json/ContractResolver/KebabCasePropertyNamesContractResolver.cs index 65f8548..030776c 100644 --- a/Tiny.RestClient/Formatters/Json/ContractResolver/KebabCasePropertyNamesContractResolver.cs +++ b/Tiny.RestClient/Formatters/Json/ContractResolver/KebabCasePropertyNamesContractResolver.cs @@ -1,13 +1,13 @@ namespace Tiny.RestClient.Json { /// - /// Allow SnakeCase (or name also Spinal case) resolve of property (property-name become PropertyName) + /// Allow SnakeCase (or name also Spinal case) resolve of property (property-name become PropertyName). /// /// public class KebabCasePropertyNamesContractResolver : SeparatorPropertyNamesContractResolver { /// - /// Initializes a new instance of the + /// Initializes a new instance of the . /// public KebabCasePropertyNamesContractResolver() : base('-') From b56a31aef9f8bb125e6fadf375456e976da0dabf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:16:19 +0200 Subject: [PATCH 27/82] fix comment --- .../SeparatorPropertyNamesContractResolver.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Tiny.RestClient/Formatters/Json/ContractResolver/SeparatorPropertyNamesContractResolver.cs b/Tiny.RestClient/Formatters/Json/ContractResolver/SeparatorPropertyNamesContractResolver.cs index f83e9ac..bd0d9e4 100644 --- a/Tiny.RestClient/Formatters/Json/ContractResolver/SeparatorPropertyNamesContractResolver.cs +++ b/Tiny.RestClient/Formatters/Json/ContractResolver/SeparatorPropertyNamesContractResolver.cs @@ -5,25 +5,25 @@ namespace Tiny.RestClient.Json { /// - /// Allow a custom separator to resolve of property (propertySEPARATORname become PropertyName) + /// Allow a custom separator to resolve of property (propertySEPARATORname become PropertyName). /// public class SeparatorPropertyNamesContractResolver : DefaultContractResolver { private readonly string _separator; /// - /// Initializes a new instance of the + /// Initializes a new instance of the . /// - /// separator bewteen words + /// separator bewteen words. public SeparatorPropertyNamesContractResolver(char separator) { _separator = separator.ToString(); } /// - /// Resolves a property name to a delimited name + /// Resolves a property name to a delimited name. /// - /// property name to resolve + /// property name to resolve. /// protected override string ResolvePropertyName(string propertyName) { From f80117dfe5d997ec6f2c33aff1828dbe5ca82548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:16:31 +0200 Subject: [PATCH 28/82] fix comment --- .../SnakeCasePropertyNamesContractResolver.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tiny.RestClient/Formatters/Json/ContractResolver/SnakeCasePropertyNamesContractResolver.cs b/Tiny.RestClient/Formatters/Json/ContractResolver/SnakeCasePropertyNamesContractResolver.cs index 543ecbd..41d9345 100644 --- a/Tiny.RestClient/Formatters/Json/ContractResolver/SnakeCasePropertyNamesContractResolver.cs +++ b/Tiny.RestClient/Formatters/Json/ContractResolver/SnakeCasePropertyNamesContractResolver.cs @@ -1,13 +1,13 @@ namespace Tiny.RestClient.Json { /// - /// Allow snake case resolve of property (property_name become PropertyName) + /// Allow snake case resolve of property (property_name become PropertyName). /// /// public class SnakeCasePropertyNamesContractResolver : SeparatorPropertyNamesContractResolver { /// - /// Initializes a new instance of the + /// Initializes a new instance of the . /// public SnakeCasePropertyNamesContractResolver() : base('_') From 20ff5ad214f7c1d9190550a4cf5f8d977ea2bbe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:16:37 +0200 Subject: [PATCH 29/82] fix comment --- Tiny.RestClient/Formatters/Json/JsonFormatter.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Tiny.RestClient/Formatters/Json/JsonFormatter.cs b/Tiny.RestClient/Formatters/Json/JsonFormatter.cs index 5722ca8..88ccfbc 100644 --- a/Tiny.RestClient/Formatters/Json/JsonFormatter.cs +++ b/Tiny.RestClient/Formatters/Json/JsonFormatter.cs @@ -9,13 +9,13 @@ namespace Tiny.RestClient { /// - /// Serializes and deserializes objects into and from the JSON format using the Newtonsoft.Json.JsonSerializer + /// Serializes and deserializes objects into and from the JSON format using the Newtonsoft.Json.JsonSerializer. /// /// public class JsonFormatter : IFormatter { /// - /// Initializes a new instance of the + /// Initializes a new instance of the . /// public JsonFormatter() { @@ -23,12 +23,12 @@ public JsonFormatter() } /// - /// Gets the instance of JsonSerializer + /// Gets the instance of JsonSerializer. /// public JsonSerializer JsonSerializer { get; } /// - /// Enable snake case for properties mapping. A property "PropertyName" will become "property_name" + /// Enable snake case for properties mapping. A property "PropertyName" will become "property_name". /// public void UseSnakeCase() { @@ -36,7 +36,7 @@ public void UseSnakeCase() } /// - /// Enable camel case for properties mapping. A property "PropertyName" will become "propertyName" + /// Enable camel case for properties mapping. A property "PropertyName" will become "propertyName". /// public void UseCamelCase() { @@ -44,7 +44,7 @@ public void UseCamelCase() } /// - /// Enable kebab case (also named spinal case) for properties mapping. A property "PropertyName" will become "property-name" + /// Enable kebab case (also named spinal case) for properties mapping. A property "PropertyName" will become "property-name". /// public void UseKebabCase() { From 290226c9618d36b4512688498ae6ef56f809dd80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:16:46 +0200 Subject: [PATCH 30/82] fix comment --- Tiny.RestClient/Formatters/Xml/XmlFormatter.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tiny.RestClient/Formatters/Xml/XmlFormatter.cs b/Tiny.RestClient/Formatters/Xml/XmlFormatter.cs index 147c172..252e14c 100644 --- a/Tiny.RestClient/Formatters/Xml/XmlFormatter.cs +++ b/Tiny.RestClient/Formatters/Xml/XmlFormatter.cs @@ -13,7 +13,7 @@ namespace Tiny.RestClient public class XmlFormatter : IFormatter { /// - /// Initializes a new instance of the + /// Initializes a new instance of the . /// public XmlFormatter() { @@ -37,7 +37,7 @@ public IEnumerable SupportedMediaTypes } /// - /// Gets the instance of WriterSettings + /// Gets the instance of WriterSettings. /// public XmlWriterSettings WriterSettings { get; } From 10975b4ba0fe5c355de039805f81831e496ef26c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:16:55 +0200 Subject: [PATCH 31/82] fix comment --- Tiny.RestClient/Formatters/Formatters.cs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Tiny.RestClient/Formatters/Formatters.cs b/Tiny.RestClient/Formatters/Formatters.cs index 48d4d76..05b3980 100644 --- a/Tiny.RestClient/Formatters/Formatters.cs +++ b/Tiny.RestClient/Formatters/Formatters.cs @@ -5,7 +5,7 @@ namespace Tiny.RestClient { /// - /// Collection of + /// Collection of . /// public class Formatters : IEnumerable { @@ -23,7 +23,7 @@ internal Formatters() } /// - /// Gets the default + /// Gets the default . /// public IFormatter Default { @@ -34,11 +34,11 @@ public IFormatter Default } /// - /// Add a formatter in the list of supported formatters + /// Add a formatter in the list of supported formatters. /// - /// Add the formatter to the list of supported formatter. The value can't be null - /// Define this formatter as default formatter - /// throw if formatter is null + /// Add the formatter to the list of supported formatter. The value can't be null. + /// Define this formatter as default formatter. + /// throw if formatter is null. public void Add(IFormatter formatter, bool isDefault) { if (formatter == null) @@ -55,12 +55,12 @@ public void Add(IFormatter formatter, bool isDefault) } /// - /// Removes a formatter in the list of supported formatters + /// Removes a formatter in the list of supported formatters. /// - /// The formatter to remove on the supported formatter list + /// The formatter to remove on the supported formatter list. /// true if item is successfully removed; otherwise, false. This method also returns false if item was not found. - /// throw if formatter is null - /// throw if the current formatter removed is the default one + /// throw if formatter is null. + /// throw if the current formatter removed is the default one. public bool Remove(IFormatter formatter) { if (formatter == null) From 63a1d1f995861618b4362779b159376b51002af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:17:01 +0200 Subject: [PATCH 32/82] fix comment --- Tiny.RestClient/Formatters/IFormatter.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Tiny.RestClient/Formatters/IFormatter.cs b/Tiny.RestClient/Formatters/IFormatter.cs index caaf49f..4c5749e 100644 --- a/Tiny.RestClient/Formatters/IFormatter.cs +++ b/Tiny.RestClient/Formatters/IFormatter.cs @@ -5,18 +5,18 @@ namespace Tiny.RestClient { /// - /// Interface IFormatter + /// Interface IFormatter. /// public interface IFormatter { /// - /// Gets the default media type used to send request + /// Gets the default media type used to send request. /// /// The type of the media. string DefaultMediaType { get; } /// - /// Gets the supported media type by the serializer + /// Gets the supported media type by the serializer. /// /// The type of the media. IEnumerable SupportedMediaTypes { get; } @@ -24,7 +24,7 @@ public interface IFormatter /// /// Serializes the specified data. /// - /// Type of data serialized + /// Type of data serialized. /// The data. /// The encoding. /// System.String. @@ -36,7 +36,7 @@ public interface IFormatter /// /// The stream. /// The encoding. - /// An instance of type + /// An instance of type . T Deserialize(Stream stream, Encoding encoding); } } \ No newline at end of file From d895104bbd23aee10867f9239753b9fb33bd329d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:17:10 +0200 Subject: [PATCH 33/82] fix comment --- Tiny.RestClient/Listener/CurlListener/CurlListener.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Listener/CurlListener/CurlListener.cs b/Tiny.RestClient/Listener/CurlListener/CurlListener.cs index a78b780..252133b 100644 --- a/Tiny.RestClient/Listener/CurlListener/CurlListener.cs +++ b/Tiny.RestClient/Listener/CurlListener/CurlListener.cs @@ -11,7 +11,7 @@ namespace Tiny.RestClient { /// - /// A listener which will create a postMan collection/> + /// A listener which will create a postMan collection/>. /// public class CurlListener : IListener { From 9970b7df2e882e53b608b5aa9ad69be331778077 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:17:54 +0200 Subject: [PATCH 34/82] fix comment --- .../Listener/CurlListener/CurlListenerExtension.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tiny.RestClient/Listener/CurlListener/CurlListenerExtension.cs b/Tiny.RestClient/Listener/CurlListener/CurlListenerExtension.cs index 22d136e..0fd6766 100644 --- a/Tiny.RestClient/Listener/CurlListener/CurlListenerExtension.cs +++ b/Tiny.RestClient/Listener/CurlListener/CurlListenerExtension.cs @@ -1,15 +1,15 @@ namespace Tiny.RestClient { /// - /// Extension to add easily curl listener + /// Extension to add easily curl listener. /// public static class CurlListenerExtension { /// - /// Add to listeners /> + /// Add to listeners />. /// - /// all listeners - /// listener created + /// all listeners. + /// listener created. public static CurlListener AddCurl(this Listeners listeners) { var listener = new CurlListener(); From 941c32aec9b809d540e2a193c7724366856b18c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:05 +0200 Subject: [PATCH 35/82] fix comment --- Tiny.RestClient/Listener/DebugListener/DebugListener.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tiny.RestClient/Listener/DebugListener/DebugListener.cs b/Tiny.RestClient/Listener/DebugListener/DebugListener.cs index bd5854b..60ffe69 100644 --- a/Tiny.RestClient/Listener/DebugListener/DebugListener.cs +++ b/Tiny.RestClient/Listener/DebugListener/DebugListener.cs @@ -10,14 +10,14 @@ namespace Tiny.RestClient { /// - /// A listener which will trace all requests with + /// A listener which will trace all requests with . /// public class DebugListener : IListener { /// /// Initializes a new instance of the class. /// - /// true if measure time + /// true if measure time. public DebugListener(bool measureTime) { MeasureTime = measureTime; From d02fc5f930f30fcdc3bdb1f37c6959dbaa811d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:11 +0200 Subject: [PATCH 36/82] fix comment --- .../Listener/DebugListener/DebugListenerExtension.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tiny.RestClient/Listener/DebugListener/DebugListenerExtension.cs b/Tiny.RestClient/Listener/DebugListener/DebugListenerExtension.cs index dec03b2..b409f26 100644 --- a/Tiny.RestClient/Listener/DebugListener/DebugListenerExtension.cs +++ b/Tiny.RestClient/Listener/DebugListener/DebugListenerExtension.cs @@ -3,15 +3,15 @@ namespace Tiny.RestClient { /// - /// Extension to add easily debug listener + /// Extension to add easily debug listener. /// public static class DebugListenerExtension { /// - /// Add to listeners /> + /// Add to listeners />. /// - /// all listeners - /// allow to measure time to this listener + /// all listeners. + /// allow to measure time to this listener. [Conditional("DEBUG")] public static void AddDebug(this Listeners listeners, bool measureTime = true) { From 404c806fd204fe0b89de95d0375323633dcf732e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:18 +0200 Subject: [PATCH 37/82] fix comment --- .../Listener/PostmanListener/PostmanListener.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Tiny.RestClient/Listener/PostmanListener/PostmanListener.cs b/Tiny.RestClient/Listener/PostmanListener/PostmanListener.cs index f26139f..5825485 100644 --- a/Tiny.RestClient/Listener/PostmanListener/PostmanListener.cs +++ b/Tiny.RestClient/Listener/PostmanListener/PostmanListener.cs @@ -13,7 +13,7 @@ namespace Tiny.RestClient { /// - /// A listener which will create a postMan collection/> + /// A listener which will create a postMan collection/>. /// public class PostmanListener : IListener { @@ -22,7 +22,7 @@ public class PostmanListener : IListener /// /// Initializes a new instance of the class. /// - /// name of the postMan collection + /// name of the postMan collection. public PostmanListener(string name) { if (string.IsNullOrEmpty(name)) @@ -49,10 +49,10 @@ public PostmanListener(string name) #if !FILEINFO_NOT_SUPPORTED /// - /// Save PostManCollection to file + /// Save PostManCollection to file. /// - /// file where the collection is saved - /// return a + /// file where the collection is saved. + /// return a . public async Task SaveAsync(FileInfo fileInfo) { if (fileInfo.Exists) @@ -69,9 +69,9 @@ public async Task SaveAsync(FileInfo fileInfo) #endif /// - /// Get postman collection json data + /// Get postman collection json data. /// - /// return a post man collection json file + /// return a post man collection json file. public string GetCollectionJson() { lock (_toLock) From 4884deac7b6d0714b0c798010a30c358aa9cc6fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:28 +0200 Subject: [PATCH 38/82] fix comment --- .../PostmanListener/PostmanListenerExtension.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Tiny.RestClient/Listener/PostmanListener/PostmanListenerExtension.cs b/Tiny.RestClient/Listener/PostmanListener/PostmanListenerExtension.cs index a6b6807..e5fa1f3 100644 --- a/Tiny.RestClient/Listener/PostmanListener/PostmanListenerExtension.cs +++ b/Tiny.RestClient/Listener/PostmanListener/PostmanListenerExtension.cs @@ -1,16 +1,16 @@ namespace Tiny.RestClient { /// - /// Extension to add easily postman listener + /// Extension to add easily postman listener. /// public static class PostmanListenerExtension { /// - /// Add to listeners /> + /// Add to listeners />. /// - /// all listeners - /// name of the collection - /// listener created + /// all listeners. + /// name of the collection. + /// listener created. public static PostmanListener AddPostman(this Listeners listeners, string name) { var listener = new PostmanListener(name); From e63930f92de08be1610aaeb2f025ece4fd6e216c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:37 +0200 Subject: [PATCH 39/82] fix comment --- Tiny.RestClient/TinyRestClient.cs | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index b2bd13a..5705cc2 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -32,7 +32,7 @@ public class TinyRestClient /// /// Initializes a new instance of the class. /// - /// The httpclient used + /// The httpclient used. /// The server address. public TinyRestClient(HttpClient httpClient, string serverAddress) { @@ -55,7 +55,7 @@ public TinyRestClient(HttpClient httpClient, string serverAddress) #endregion /// - /// Settings of + /// Settings of . /// public RestClientSettings Settings { get; } @@ -95,9 +95,9 @@ public IRequest PostRequest(string route = null) /// /// Create a new POST request. /// - /// The content of the request - /// The formatter use to serialize the content - /// Add compresion system use to compress content + /// The content of the request. + /// The formatter use to serialize the content. + /// Add compresion system use to compress content. /// The new request. public IParameterRequest PostRequest(TContent content, IFormatter formatter = null, ICompression compression = null) { @@ -109,9 +109,9 @@ public IParameterRequest PostRequest(TContent content, IFormatter form /// Create a new POST request. /// /// The route. - /// The content of the request - /// The formatter use to serialize the content - /// Add compresion system use to compress content + /// The content of the request. + /// The formatter use to serialize the content. + /// Add compresion system use to compress content. /// The new request. public IParameterRequest PostRequest(string route, TContent content, IFormatter formatter = null, ICompression compression = null) { @@ -132,9 +132,9 @@ public IRequest PutRequest(string route = null) /// /// Create a new PUT request. /// - /// The content of the request - /// The formatter use to serialize the content - /// Add compresion system use to compress content + /// The content of the request. + /// The formatter use to serialize the content. + /// Add compresion system use to compress content. /// The new request. public IParameterRequest PutRequest(TContent content, IFormatter formatter = null, ICompression compression = null) { @@ -146,9 +146,9 @@ public IParameterRequest PutRequest(TContent content, IFormatter forma /// Create a new PUT request. /// /// The route. - /// The content of the request - /// The formatter use to serialize the content - /// Add compresion system use to compress content + /// The content of the request. + /// The formatter use to serialize the content. + /// Add compresion system use to compress content. /// The new request. public IParameterRequest PutRequest(string route, TContent content, IFormatter formatter = null, ICompression compression = null) { @@ -169,9 +169,9 @@ public IRequest PatchRequest(string route = null) /// /// Create a new PATCH request. /// - /// The content of the request - /// The serializer use to serialize it - /// Add compresion system use to compress content + /// The content of the request. + /// The serializer use to serialize it. + /// Add compresion system use to compress content. /// The new request. public IParameterRequest PatchRequest(TContent content, IFormatter serializer = null, ICompression compression = null) { @@ -183,9 +183,9 @@ public IParameterRequest PatchRequest(TContent content, IFormatter ser /// Create a new PATCH request. /// /// The route. - /// The content of the request - /// The serializer use to serialize it - /// Add compresion system use ton compress content + /// The content of the request. + /// The serializer use to serialize it. + /// Add compresion system use ton compress content. /// The new request. public IParameterRequest PatchRequest(string route, TContent content, IFormatter serializer = null, ICompression compression = null) { From 76e3d84286c1bbcf27da4c76090e9ba3e94ce713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:45 +0200 Subject: [PATCH 40/82] fix comment --- Tiny.RestClient/Listener/IListener.cs | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Tiny.RestClient/Listener/IListener.cs b/Tiny.RestClient/Listener/IListener.cs index 029ad6d..20717a6 100644 --- a/Tiny.RestClient/Listener/IListener.cs +++ b/Tiny.RestClient/Listener/IListener.cs @@ -6,45 +6,45 @@ namespace Tiny.RestClient { /// - /// Represent a request listener + /// Represent a request listener. /// public interface IListener { /// - /// Enable the measure of time between requests + /// Enable the measure of time between requests. /// bool MeasureTime { get; } /// - /// Invoked when a request is sending + /// Invoked when a request is sending. /// - /// uri of the request - /// verb of the request - /// message sended to server + /// uri of the request. + /// verb of the request. + /// message sended to server. /// The cancellation token to cancel operation. - /// A + /// A . Task OnSendingRequestAsync(Uri uri, HttpMethod httpMethod, HttpRequestMessage httpRequestMessage, CancellationToken cancellationToken); /// - /// Invoked when received a response from server + /// Invoked when received a response from server. /// - /// uri of the request - /// verb of the request - /// response of the server - /// time ellapsed between the send of request and response of server + /// uri of the request. + /// verb of the request. + /// response of the server. + /// time ellapsed between the send of request and response of server. /// The cancellation token to cancel operation. - /// A + /// A . Task OnReceivedResponseAsync(Uri uri, HttpMethod httpMethod, HttpResponseMessage response, TimeSpan? elapsedTime, CancellationToken cancellationToken); /// - /// Invoke when a request failed to be invoked + /// Invoke when a request failed to be invoked. /// - /// uri of the request - /// verb of the request - /// exception - /// time ellapsed between the send of request and response of server (can be null if no listener measure time) + /// uri of the request. + /// verb of the request. + /// exception. + /// time ellapsed between the send of request and response of server (can be null if no listener measure time). /// The cancellation token to cancel operation. - /// A + /// A . Task OnFailedToReceiveResponseAsync(Uri uri, HttpMethod httpMethod, Exception exception, TimeSpan? elapsedTime, CancellationToken cancellationToken); } } From c41eaef0ec3b382c8e52ea3a4a27bf3b6b3b55aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:52 +0200 Subject: [PATCH 41/82] fix comment --- Tiny.RestClient/Request/Headers/Headers.cs | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Tiny.RestClient/Request/Headers/Headers.cs b/Tiny.RestClient/Request/Headers/Headers.cs index eb4c3f0..326fc82 100644 --- a/Tiny.RestClient/Request/Headers/Headers.cs +++ b/Tiny.RestClient/Request/Headers/Headers.cs @@ -7,7 +7,7 @@ namespace Tiny.RestClient { /// - /// Represent headers of requests + /// Represent headers of requests. /// public class Headers : IEnumerable>> { @@ -19,19 +19,19 @@ internal Headers() } /// - /// Add OAuth 2.0 token + /// Add OAuth 2.0 token. /// - /// token to add + /// token to add. public void AddBearer(string token) { Add("Authorization", $"Bearer {token}"); } /// - /// Add basic authentication + /// Add basic authentication. /// - /// the username - /// the password + /// the username. + /// the password. public void AddBasicAuthentication(string username, string password) { var encodedCreds = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}")); @@ -39,10 +39,10 @@ public void AddBasicAuthentication(string username, string password) } /// - /// Add header + /// Add header. /// - /// header name - /// header value + /// header name. + /// header value. public void Add(string name, string value) { List list = null; @@ -60,9 +60,9 @@ public void Add(string name, string value) } /// - /// Removes the header with specified name + /// Removes the header with specified name. /// - /// name of the header + /// name of the header. /// public bool Remove(string name) { @@ -91,10 +91,10 @@ internal void AddRange(IEnumerable>> ra } /// - /// Gets or sets header + /// Gets or sets header. /// - /// header name - /// return header's value + /// header name. + /// return header's value. public IEnumerable this[string name] { get From 63a5c0713dd372d4b69882e2b7d0d53862f24286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:19:59 +0200 Subject: [PATCH 42/82] fix comment --- Tiny.RestClient/Listener/Listeners.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Listener/Listeners.cs b/Tiny.RestClient/Listener/Listeners.cs index e8c8e92..d8efa6b 100644 --- a/Tiny.RestClient/Listener/Listeners.cs +++ b/Tiny.RestClient/Listener/Listeners.cs @@ -9,7 +9,7 @@ namespace Tiny.RestClient { /// - /// Collection of + /// Collection of . /// public class Listeners : ICollection, IListener { From e5d17c6c39ff36b05d7e4649b95383fb52b26bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:20:04 +0200 Subject: [PATCH 43/82] fix comment --- .../MultipartFormContent/IMultipartFromDataExecutableRequest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataExecutableRequest.cs b/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataExecutableRequest.cs index af5da83..f72e4c1 100644 --- a/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataExecutableRequest.cs +++ b/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataExecutableRequest.cs @@ -3,7 +3,7 @@ namespace Tiny.RestClient { /// - /// Interface IMultiPartFromDataRequest + /// Interface IMultiPartFromDataRequest. /// /// /// From a17503cababe99a2f106db553650640a3cf861b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:20:12 +0200 Subject: [PATCH 44/82] fix comment --- .../IMultipartFromDataRequest.cs | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataRequest.cs b/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataRequest.cs index 0b6c153..3258080 100644 --- a/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataRequest.cs +++ b/Tiny.RestClient/Request/MultipartFormContent/IMultipartFromDataRequest.cs @@ -3,7 +3,7 @@ namespace Tiny.RestClient { /// - /// Interface IMultiPartFromDataRequest + /// Interface IMultiPartFromDataRequest. /// public interface IMultipartFromDataRequest { @@ -11,33 +11,33 @@ public interface IMultipartFromDataRequest /// Adds a byte array as content. /// /// The content. - /// The name of the item - /// The name of the file + /// The name of the item. + /// The name of the file. /// The content type of the file. - /// The current request - /// thrown when data is null + /// The current request. + /// thrown when data is null. IMultiPartFromDataExecutableRequest AddByteArray(byte[] data, string name = null, string fileName = null, string contentType = "application/octet-stream"); /// /// Adds the content. /// /// The content. - /// The name of the item - /// The name of the file - /// The content type of the file - /// The current request - /// thrown when data is null + /// The name of the item. + /// The name of the file. + /// The content type of the file. + /// The current request. + /// thrown when data is null. IMultiPartFromDataExecutableRequest AddString(string data, string name = null, string fileName = null, string contentType = "text/plain"); /// /// Adds the content. /// /// The content. - /// The name of the item - /// The name of the file - /// The content type of the file - /// The current request - /// thrown when data is null + /// The name of the item. + /// The name of the file. + /// The content type of the file. + /// The current request. + /// thrown when data is null. IMultiPartFromDataExecutableRequest AddStream(Stream data, string name = null, string fileName = null, string contentType = "application/octet-stream"); /// @@ -45,32 +45,32 @@ public interface IMultipartFromDataRequest /// /// The type of the t content. /// The content. - /// The name of the item - /// The name of the file - /// Override the default serializer setted on the client. If null use default serializer - /// Add compresion system use ton compress content - /// The current request - /// thrown when content is null + /// The name of the item. + /// The name of the file. + /// Override the default serializer setted on the client. If null use default serializer. + /// Add compresion system use ton compress content. + /// The current request. + /// thrown when content is null. IMultiPartFromDataExecutableRequest AddContent(TContent content, string name = null, string fileName = null, IFormatter serializer = null, ICompression compression = null); #if !FILEINFO_NOT_SUPPORTED /// /// Adds the content. /// /// The content. - /// The name of the item - /// The name of the file - /// The content type of the file - /// The current request - /// thrown when content is null + /// The name of the item. + /// The name of the file. + /// The content type of the file. + /// The current request. + /// thrown when content is null. IMultiPartFromDataExecutableRequest AddFileContent(FileInfo content, string name, string fileName, string contentType); /// /// Adds the content. /// /// The content. - /// The content type of the file - /// The current request - /// thrown when content is null + /// The content type of the file. + /// The current request. + /// thrown when content is null. IMultiPartFromDataExecutableRequest AddFileContent(FileInfo content, string contentType); #endif } From 2eae907c101829c4f00524941a6d2e305db70e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:20:18 +0200 Subject: [PATCH 45/82] fix comment --- Tiny.RestClient/Request/IExecutableRequest.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Tiny.RestClient/Request/IExecutableRequest.cs b/Tiny.RestClient/Request/IExecutableRequest.cs index 2d1aec9..edfdf91 100644 --- a/Tiny.RestClient/Request/IExecutableRequest.cs +++ b/Tiny.RestClient/Request/IExecutableRequest.cs @@ -6,7 +6,7 @@ namespace Tiny.RestClient { /// - /// Interface IExecutableRequest + /// Interface IExecutableRequest. /// public interface IExecutableRequest { @@ -15,7 +15,7 @@ public interface IExecutableRequest /// /// The type of the TResult. /// The cancellation token. - /// + /// . Task ExecuteAsync(CancellationToken cancellationToken = default); /// @@ -24,43 +24,43 @@ public interface IExecutableRequest /// The type of the TResult. /// Allow to override the formatter use for the deserialization. /// The cancellation token. - /// Task of TResukt + /// Task of TResukt. Task ExecuteAsync(IFormatter formatter, CancellationToken cancellationToken = default); /// /// Executes the request. /// /// The cancellation token. - /// + /// . Task ExecuteAsStreamAsync(CancellationToken cancellationToken = default); /// /// Executes the request. /// /// The cancellation token. - /// Task of string + /// Task of string. Task ExecuteAsStringAsync(CancellationToken cancellationToken = default); /// /// Executes the request. /// /// The cancellation token. - /// Task of byte array + /// Task of byte array. Task ExecuteAsByteArrayAsync(CancellationToken cancellationToken = default); /// /// Executes the request. /// /// The cancellation token. - /// Task of + /// Task of . Task ExecuteAsHttpResponseMessageAsync(CancellationToken cancellationToken = default); #if !FILEINFO_NOT_SUPPORTED /// - /// Download file async + /// Download file async. /// - /// path to download + /// path to download. /// The cancellation token. - /// return a file info + /// return a file info. Task DownloadFileAsync(string path, CancellationToken cancellationToken = default); #endif @@ -68,7 +68,7 @@ public interface IExecutableRequest /// Executes the request. /// /// The cancellation token. - /// A task + /// A task. Task ExecuteAsync(CancellationToken cancellationToken = default); } } \ No newline at end of file From ea89c797dc89db741cb467f554ca7176b83dd4c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:20:25 +0200 Subject: [PATCH 46/82] fix comment --- Tiny.RestClient/Request/IFormRequest.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tiny.RestClient/Request/IFormRequest.cs b/Tiny.RestClient/Request/IFormRequest.cs index c9a2985..7c90617 100644 --- a/Tiny.RestClient/Request/IFormRequest.cs +++ b/Tiny.RestClient/Request/IFormRequest.cs @@ -3,7 +3,7 @@ namespace Tiny.RestClient { /// - /// Interface IFormRequest + /// Interface IFormRequest. /// /// public interface IFormRequest : IParameterRequest @@ -13,14 +13,14 @@ public interface IFormRequest : IParameterRequest /// /// The key. /// The value. - /// The current request + /// The current request. IFormRequest AddFormParameter(string key, string value); /// /// Adds the form parameters. /// /// The datas. - /// The current request + /// The current request. IFormRequest AddFormParameters(IEnumerable> datas); } } \ No newline at end of file From 29b6e9f40f24b396c2ff5f1bed203fa7fc4e1e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:20:37 +0200 Subject: [PATCH 47/82] fix comment --- Tiny.RestClient/Request/IParameterRequest.cs | 36 ++++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Tiny.RestClient/Request/IParameterRequest.cs b/Tiny.RestClient/Request/IParameterRequest.cs index 86b0a6c..0d5bd45 100644 --- a/Tiny.RestClient/Request/IParameterRequest.cs +++ b/Tiny.RestClient/Request/IParameterRequest.cs @@ -1,16 +1,16 @@ namespace Tiny.RestClient { /// - /// Interface IParameterRequest + /// Interface IParameterRequest. /// /// public interface IParameterRequest : IExecutableRequest { /// - /// Fill header of response + /// Fill header of response. /// - /// Header filled after execute method - /// The current request + /// Header filled after execute method. + /// The current request. IParameterRequest FillResponseHeaders(out Headers headers); /// @@ -18,7 +18,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddHeader(string key, string value); /// @@ -26,7 +26,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, string value); /// @@ -34,7 +34,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, bool value); /// @@ -42,7 +42,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, bool? value); /// @@ -50,7 +50,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, int value); /// @@ -58,7 +58,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, int? value); /// @@ -66,7 +66,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, uint value); /// @@ -74,7 +74,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, uint? value); /// @@ -82,7 +82,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, double value); /// @@ -90,7 +90,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, double? value); /// @@ -98,7 +98,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, decimal value); /// @@ -106,7 +106,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, decimal? value); /// @@ -114,7 +114,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, float value); /// @@ -122,7 +122,7 @@ public interface IParameterRequest : IExecutableRequest /// /// The key. /// The value. - /// The current request + /// The current request. IParameterRequest AddQueryParameter(string key, float? value); } } From da904d2c95fe65e4ba264b9f75e483eb4481ea24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:20:43 +0200 Subject: [PATCH 48/82] fix comment --- Tiny.RestClient/Request/IRequest.cs | 58 ++++++++++++++--------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/Tiny.RestClient/Request/IRequest.cs b/Tiny.RestClient/Request/IRequest.cs index 112c324..44dd5fe 100644 --- a/Tiny.RestClient/Request/IRequest.cs +++ b/Tiny.RestClient/Request/IRequest.cs @@ -4,38 +4,38 @@ namespace Tiny.RestClient { /// - /// Interface IRequest + /// Interface IRequest. /// /// /// public interface IRequest : IExecutableRequest, IFormRequest { /// - /// Add a basic authentication credentials + /// Add a basic authentication credentials. /// - /// the username - /// the password - /// The current request + /// the username. + /// the password. + /// The current request. IRequest WithBasicAuthentication(string username, string password); /// - /// Add a bearer token in the request headers + /// Add a bearer token in the request headers. /// - /// token value - /// The current request + /// token value. + /// The current request. IRequest WithOAuthBearer(string token); /// - /// With timeout for current request + /// With timeout for current request. /// - /// timeout - /// The current request + /// timeout. + /// The current request. IRequest WithTimeout(TimeSpan timeout); /// - /// With a specific etag container + /// With a specific etag container. /// - /// the eTag container + /// the eTag container. /// IRequest WithETagContainer(IETagContainer eTagContainer); @@ -45,48 +45,48 @@ public interface IRequest : IExecutableRequest, IFormRequest /// The type of the t content. /// The content. /// Override the default serializer setted on the client. - /// Add a compression system to compress your content - /// The current request + /// Add a compression system to compress your content. + /// The current request. IParameterRequest AddContent(TContent content, IFormatter serializer = null, ICompression compression = null); /// - /// Add byte array as content of request + /// Add byte array as content of request. /// /// The byte array. - /// The Content type - /// The current request + /// The Content type. + /// The current request. IParameterRequest AddByteArrayContent(byte[] byteArray, string contentType = "application/octet-stream"); /// - /// Adds stream as content + /// Adds stream as content. /// /// The stream. - /// The content type - /// The current request + /// The content type. + /// The current request. IParameterRequest AddStreamContent(Stream stream, string contentType = "application/octet-stream"); /// - /// Adds string as content (without apply any serialization) + /// Adds string as content (without apply any serialization). /// /// The content. - /// The content type - /// The current request + /// The content type. + /// The current request. IParameterRequest AddStringContent(string content, string contentType = "text/plain"); #if !FILEINFO_NOT_SUPPORTED /// /// Adds file as content. /// /// The file to add as content of request. - /// The content type - /// The current request + /// The content type. + /// The current request. IParameterRequest AddFileContent(FileInfo file, string contentType); #endif /// - /// As a multipart data from request + /// As a multipart data from request. /// - /// content type of the request (default value = "multipart/form-data") - /// The current request + /// content type of the request (default value = "multipart/form-data"). + /// The current request. IMultipartFromDataRequest AsMultiPartFromDataRequest(string contentType = "multipart/form-data"); } } \ No newline at end of file From 8d74c64b75f8a77d513a6edc126daa14769645fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 20:20:50 +0200 Subject: [PATCH 49/82] fix comment --- Tiny.RestClient/RestClientSettings.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Tiny.RestClient/RestClientSettings.cs b/Tiny.RestClient/RestClientSettings.cs index c64ca2c..c7ab3ee 100644 --- a/Tiny.RestClient/RestClientSettings.cs +++ b/Tiny.RestClient/RestClientSettings.cs @@ -4,7 +4,7 @@ namespace Tiny.RestClient { /// - /// All settings of + /// All settings of . /// public class RestClientSettings { @@ -25,22 +25,22 @@ internal RestClientSettings() } /// - /// Add to all request the AcceptLanguage based on CurrentCulture of the Thread + /// Add to all request the AcceptLanguage based on CurrentCulture of the Thread. /// public bool AddAcceptLanguageBasedOnCurrentCulture { get; set; } /// - /// Get or set the ETagContainer + /// Get or set the ETagContainer. /// public IETagContainer ETagContainer { get; set; } /// - /// Get or set the default timeout of each request + /// Get or set the default timeout of each request. /// public TimeSpan DefaultTimeout { get; set; } /// - /// Gets or set the encoding use by the client + /// Gets or set the encoding use by the client. /// public Encoding Encoding { @@ -71,12 +71,12 @@ public Headers DefaultHeaders public Listeners Listeners { get; private set; } /// - /// Gets the list of formatter used to serialize and deserialize data + /// Gets the list of formatter used to serialize and deserialize data. /// public Formatters Formatters { get; private set; } /// - /// Compression / decompression system enabled + /// Compression / decompression system enabled. /// public Compressions Compressions { get; private set; } } From 4ab6e021a79d9f5f1494459dca55cac0476ad87c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 21:14:35 +0200 Subject: [PATCH 50/82] Encapsulate exception if needed --- Tiny.RestClient/RestClientSettings.cs | 5 +++++ Tiny.RestClient/TinyRestClient.cs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/Tiny.RestClient/RestClientSettings.cs b/Tiny.RestClient/RestClientSettings.cs index c7ab3ee..61142c9 100644 --- a/Tiny.RestClient/RestClientSettings.cs +++ b/Tiny.RestClient/RestClientSettings.cs @@ -79,5 +79,10 @@ public Headers DefaultHeaders /// Compression / decompression system enabled. /// public Compressions Compressions { get; private set; } + + /// + /// Handler used when HttpException will be throw (can be used to transform exception). + /// + public Func EncapsulateHttpExceptionHandler { get; private set; } } } \ No newline at end of file diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 5705cc2..8f480cd 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -819,6 +819,12 @@ private async Task HandleResponseAsync( response.Headers, ex); + var handler = Settings.EncapsulateHttpExceptionHandler; + if (handler != null) + { + throw handler(newEx); + } + throw newEx; } } From 4585c486c8a8b69c87812a2c4c26494cf95a647d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 21:20:24 +0200 Subject: [PATCH 51/82] Add test --- .../HttpExceptionTests.cs | 23 +++++++++++++++++++ Tiny.RestClient/RestClientSettings.cs | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs index 986c2cd..2470292 100644 --- a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs +++ b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs @@ -28,5 +28,28 @@ public async Task CheckIfHttpExceptionReadHeaders() Assert.IsTrue(exceptionThrowed, $"An {nameof(HttpException)} must be throwed"); } + + [ExpectedException(typeof(NotFoundCustomException))] + [TestMethod] + public async Task CheckIfEnclapsulationWorks() + { + var client = GetNewClient(); + client.Settings.EncapsulateHttpExceptionHandler = (ex) => + { + if (ex.StatusCode == System.Net.HttpStatusCode.NotFound) + { + return new NotFoundCustomException(); + } + + return ex; + }; + + // Call an api not found (the ETag header is present in all responses on this server) + await client.GetRequest("APIWhichNotExists").ExecuteAsync(); + } + + internal class NotFoundCustomException : Exception + { + } } } diff --git a/Tiny.RestClient/RestClientSettings.cs b/Tiny.RestClient/RestClientSettings.cs index 61142c9..d7b53db 100644 --- a/Tiny.RestClient/RestClientSettings.cs +++ b/Tiny.RestClient/RestClientSettings.cs @@ -81,8 +81,8 @@ public Headers DefaultHeaders public Compressions Compressions { get; private set; } /// - /// Handler used when HttpException will be throw (can be used to transform exception). + /// Gets or set the handler used when HttpException will be throw (can be used to transform exception). /// - public Func EncapsulateHttpExceptionHandler { get; private set; } + public Func EncapsulateHttpExceptionHandler { get; set; } } } \ No newline at end of file From a9782161ab44421886dc230b13974c22ab3f1239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 21:33:46 +0200 Subject: [PATCH 52/82] fix comment --- Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs index 2470292..877a794 100644 --- a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs +++ b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs @@ -44,7 +44,7 @@ public async Task CheckIfEnclapsulationWorks() return ex; }; - // Call an api not found (the ETag header is present in all responses on this server) + // Call an API wich throw NotFound error await client.GetRequest("APIWhichNotExists").ExecuteAsync(); } From b682714b11cec52a8b234c726794a21a77daf1d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 21:34:18 +0200 Subject: [PATCH 53/82] Update README.md --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index e22f88b..4fb7af9 100644 --- a/README.md +++ b/README.md @@ -340,6 +340,28 @@ catch (HttpException ex) when (ex.StatusCode == System.Net.HttpStatusCode.Intern throw new ServerErrorException($"{ex.Message} {ex.ReasonPhrase}"); } ``` + +### Enclapsulate HttpExceptions +We can setup a global handler to provide a logic to encapsulate HttpException automatically. + +For example I can choose to translate all HttpException with StatusCode NotFound in a NotFoundCustomException. +```cs +client.Settings.EncapsulateHttpExceptionHandler = (ex) => +{ + if (ex.StatusCode == System.Net.HttpStatusCode.NotFound) + { + return new NotFoundCustomException(); + } + + return ex; +}; +``` + +Now if I call an API wich respond with status code NotFound it will throw automaticaly my custom exception. +```cs +// Call an API wich throw NotFound error +await client.GetRequest("APIWhichNotExists").ExecuteAsync(); +``` ## ETag The lib supports the Entity tag but it's not enabled by default. From a73ce3b49a8c9dab881356777d88bb0f0f326ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 21:36:36 +0200 Subject: [PATCH 54/82] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 96e7c63..2c03564 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -2,6 +2,27 @@ ## 1.6.2 * Now HttpException expose the headers of the response * Constructor of HttpException is now internal +* Add possibility to encapsulate HttpException automatically. + +We can setup a global handler to provide a logic to encapsulate HttpException automatically. +For example I can choose to translate all HttpException with StatusCode NotFound in a NotFoundCustomException. +```cs +client.Settings.EncapsulateHttpExceptionHandler = (ex) => +{ + if (ex.StatusCode == System.Net.HttpStatusCode.NotFound) + { + return new NotFoundCustomException(); + } + + return ex; +}; +``` + +Now if I call an API wich respond with status code NotFound it will throw automaticaly my custom exception. +```cs +// Call an API wich throw NotFound error +await client.GetRequest("APIWhichNotExists").ExecuteAsync(); +``` ## 1.6.1 * Fix patch request which sent patch verb in lowercase From bd448ea82340939b42b5d94a9de8b1147b7b36f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 21:48:39 +0200 Subject: [PATCH 55/82] remove using --- Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs index 877a794..e8d3b4e 100644 --- a/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs +++ b/Tests/Tiny.RestClient.Tests/HttpExceptionTests.cs @@ -1,7 +1,5 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace Tiny.RestClient.Tests From b43bd89294aab63b2edfc7eef7201a46b71fc471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Sat, 4 May 2019 22:00:36 +0200 Subject: [PATCH 56/82] Update Tiny.RestClient.csproj --- Tiny.RestClient/Tiny.RestClient.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index 20509fe..3ea40b5 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -2,7 +2,7 @@ netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 1.6.2 - Copyright © Jérôme Giacomini 2018 + Copyright © Jérôme Giacomini 2019 en Tiny.RestClient Jérôme Giacomini From a166f912684b86dc9b749092b9598293badb608e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Tue, 21 May 2019 06:53:27 +0200 Subject: [PATCH 57/82] Update README.md --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 4fb7af9..66d7318 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,23 @@ client.GetRequest("City/All"). ExecuteAsync(); ``` + +#### Calculate headers before send the requests + +Before send requests to server we can add calculate dynamically the headers to add to resquest like below : +```cs +client.Settings.CalculateHeadersHandler = async () => +{ + var token = await GetACustomTokenAsync(); + + var headers = new Headers + { + { "CustomToken", token }, + }; + return headers; +}; + ``` + #### Read headers of response ```cs @@ -108,6 +125,7 @@ foreach(var header in headersOfResponse) } ``` + ### Basic GET http requests ```cs From 8e9276aefcc67bba276b8aad2add02204fd06da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Tue, 21 May 2019 07:02:04 +0200 Subject: [PATCH 58/82] Calculate headers before send request (#90) Add possibility to calculate headers just before send requests --- RELEASE-NOTES.md | 17 ++++++++ .../Controllers/HeadersTestController.cs | 24 +++++++++++ Tests/Tiny.RestClient.Tests/HeaderTests.cs | 43 +++++++++++++++++++ Tiny.RestClient/Request/Headers/Headers.cs | 5 ++- Tiny.RestClient/RestClientSettings.cs | 6 +++ Tiny.RestClient/Tiny.RestClient.csproj | 4 +- Tiny.RestClient/TinyRestClient.cs | 15 +++++++ 7 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 Tests/Tiny.RestClient.ForTest.Api/Controllers/HeadersTestController.cs create mode 100644 Tests/Tiny.RestClient.Tests/HeaderTests.cs diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 2c03564..d4e2c67 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,4 +1,21 @@ # Release notes +# 1.6.3 +* Now calculate dynamically the headers to add to resquest. + +In this sample we get a custom token and add it to all our requests => +```cs +client.Settings.CalculateHeadersHandler = async () => +{ + var token = await GetACustomTokenAsync(); + + var headers = new Headers + { + { "CustomToken", token }, + }; + return headers; +}; + ``` + ## 1.6.2 * Now HttpException expose the headers of the response * Constructor of HttpException is now internal diff --git a/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeadersTestController.cs b/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeadersTestController.cs new file mode 100644 index 0000000..1c49e20 --- /dev/null +++ b/Tests/Tiny.RestClient.ForTest.Api/Controllers/HeadersTestController.cs @@ -0,0 +1,24 @@ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Tiny.RestClient.ForTest.Api.Controllers +{ + [Route("api/HeadersTest")] + [ApiController] + public class HeadersTestController : ControllerBase + { + [HttpGet("NoResponse")] + public Task NoResponse() + { + foreach (var header in Request.Headers) + { + Response.Headers.Add("FROM_CLIENT" + header.Key, header.Value); + } + + return Task.Delay(1); + } + } +} \ No newline at end of file diff --git a/Tests/Tiny.RestClient.Tests/HeaderTests.cs b/Tests/Tiny.RestClient.Tests/HeaderTests.cs new file mode 100644 index 0000000..bfe4be3 --- /dev/null +++ b/Tests/Tiny.RestClient.Tests/HeaderTests.cs @@ -0,0 +1,43 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tiny.RestClient.Tests +{ + [TestClass] + public class HeaderTests : BaseTest + { + [TestMethod] + public async Task CalculateHeadersTest() + { + var client = GetNewClient(); + + var headers = new Headers + { + { "Header1", "Value1" }, + { "Header2", "Value2" }, + { "Header3", "Value3" } + }; + + client.Settings.CalculateHeadersHandler = () => + { + return Task.FromResult(headers); + }; + + await client. + GetRequest("HeadersTest/NoResponse"). + FillResponseHeaders(out Headers responseHeaders). + ExecuteAsync(); + + foreach (var sendedHeader in headers) + { + Assert.IsTrue(responseHeaders.Any(h => h.Key == "FROM_CLIENT" + sendedHeader.Key), $"{sendedHeader.Key} seem not passed to server side"); + var responseHeader = responseHeaders.FirstOrDefault(h => h.Key == "FROM_CLIENT" + sendedHeader.Key); + Assert.IsTrue(sendedHeader.Value.First() == responseHeader.Value.First(), $"Values for header {sendedHeader.Key} seem not match with values resend by server"); + } + } + } +} diff --git a/Tiny.RestClient/Request/Headers/Headers.cs b/Tiny.RestClient/Request/Headers/Headers.cs index 326fc82..36c2a1f 100644 --- a/Tiny.RestClient/Request/Headers/Headers.cs +++ b/Tiny.RestClient/Request/Headers/Headers.cs @@ -13,7 +13,10 @@ public class Headers : IEnumerable>> { private Dictionary> _headers; - internal Headers() + /// + /// Initializes a new instance of the class. + /// + public Headers() { _headers = new Dictionary>(); } diff --git a/Tiny.RestClient/RestClientSettings.cs b/Tiny.RestClient/RestClientSettings.cs index d7b53db..0e78a36 100644 --- a/Tiny.RestClient/RestClientSettings.cs +++ b/Tiny.RestClient/RestClientSettings.cs @@ -1,5 +1,6 @@ using System; using System.Text; +using System.Threading.Tasks; namespace Tiny.RestClient { @@ -65,6 +66,11 @@ public Headers DefaultHeaders get; private set; } + /// + /// Gets or set the handler used to calculate headers before send request. + /// + public Func> CalculateHeadersHandler { get; set; } + /// /// Log all requests. /// diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index 3ea40b5..d2092ae 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -1,7 +1,7 @@  netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 - 1.6.2 + 1.6.3 Copyright © Jérôme Giacomini 2019 en Tiny.RestClient @@ -36,7 +36,7 @@ https://github.com/jgiacomini/Tiny.RestClient.git git 3.0.3 - See release notes at https://github.com/jgiacomini/Tiny.RestClient/blob/1.6.2/RELEASE-NOTES.md + See release notes at https://github.com/jgiacomini/Tiny.RestClient/blob/1.6.3/RELEASE-NOTES.md true true $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 8f480cd..e72d7c1 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -590,6 +590,13 @@ private async Task SendRequestAsync( stopwatch = new Stopwatch(); } + Headers calculatedHeaders = null; + var calculateHeadersHandler = Settings.CalculateHeadersHandler; + if (calculateHeadersHandler != null) + { + calculatedHeaders = await calculateHeadersHandler.Invoke(); + } + using (var request = new HttpRequestMessage(httpMethod, uri)) { if (deserializer == null) @@ -625,6 +632,14 @@ private async Task SendRequestAsync( } } + if (calculatedHeaders != null) + { + foreach (var item in calculatedHeaders) + { + request.Headers.Add(item.Key, item.Value); + } + } + if (eTagContainer != null) { if (!request.Headers.IfNoneMatch.Any()) From 5f62d9b5507bf103df11e65fad4f974c08d30eb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Tue, 21 May 2019 08:58:50 +0200 Subject: [PATCH 59/82] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 096d90f..d025305 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ request.WithTimeout(TimeSpan.FromSeconds(100)); Allow all status code : ```cs -client.Settings.HttpStatusCodeAllowed.AllowAllStatus = false; +client.Settings.HttpStatusCodeAllowed.AllowAllStatus = true; ``` Allow only a range of http status codes : From 4510e4f9080b47d1e8778841e4fd492bbef52153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Tue, 13 Aug 2019 17:33:33 +0200 Subject: [PATCH 60/82] Features/add new nuget tag (#95) * add new nuget tag / bump version 1.6.4 --- RELEASE-NOTES.md | 3 +++ Tiny.RestClient/Tiny.RestClient.csproj | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index d4e2c67..36ba5a4 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,4 +1,7 @@ # Release notes +# 1.6.4 +* Add new nuget tags + # 1.6.3 * Now calculate dynamically the headers to add to resquest. diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index d2092ae..8d24682 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -1,7 +1,7 @@  netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 - 1.6.3 + 1.6.4 Copyright © Jérôme Giacomini 2019 en Tiny.RestClient @@ -32,7 +32,7 @@ https://github.com/jgiacomini/Tiny.RestClient/blob/master/LICENSE https://github.com/jgiacomini/Tiny.RestClient https://raw.githubusercontent.com/jgiacomini/Tiny.RestClient/master/icon.png - httpClient;FluentHttp;Fluent;RestClient;REST;rest;TinyRestClient;postman; + httpClient;rest client;FluentHttp;Fluent;RestClient;REST;rest;TinyRestClient;postman; https://github.com/jgiacomini/Tiny.RestClient.git git 3.0.3 From 5833b943562056a944681c9d0bc510457796495d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Wed, 16 Oct 2019 17:04:28 +0200 Subject: [PATCH 61/82] Features/add overload queryparameter withlongtype (#97) add overload with long type for AddQueryParameter method --- RELEASE-NOTES.md | 3 +++ Tiny.RestClient/Request/IParameterRequest.cs | 16 +++++++++++++ Tiny.RestClient/Request/Request.cs | 22 ++++++++++++++++++ Tiny.RestClient/Tiny.RestClient.csproj | 4 ++-- .../publish/Tiny.RestClient.1.6.3.nupkg | Bin 379257 -> 0 bytes 5 files changed, 43 insertions(+), 2 deletions(-) delete mode 100644 Tiny.RestClient/publish/Tiny.RestClient.1.6.3.nupkg diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 36ba5a4..add9823 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,4 +1,7 @@ # Release notes +# 1.6.5 +* Add overload with long type for AddQueryParameter method + # 1.6.4 * Add new nuget tags diff --git a/Tiny.RestClient/Request/IParameterRequest.cs b/Tiny.RestClient/Request/IParameterRequest.cs index 0d5bd45..2e2eda4 100644 --- a/Tiny.RestClient/Request/IParameterRequest.cs +++ b/Tiny.RestClient/Request/IParameterRequest.cs @@ -124,5 +124,21 @@ public interface IParameterRequest : IExecutableRequest /// The value. /// The current request. IParameterRequest AddQueryParameter(string key, float? value); + + /// + /// Adds the query parameter. + /// + /// The key. + /// The value. + /// The current request. + IParameterRequest AddQueryParameter(string key, long? value); + + /// + /// Adds the query parameter. + /// + /// The key. + /// The value. + /// The current request. + IParameterRequest AddQueryParameter(string key, long value); } } diff --git a/Tiny.RestClient/Request/Request.cs b/Tiny.RestClient/Request/Request.cs index 831c9ee..b25e32b 100644 --- a/Tiny.RestClient/Request/Request.cs +++ b/Tiny.RestClient/Request/Request.cs @@ -321,6 +321,28 @@ public IParameterRequest AddQueryParameter(string key, float? value) return this; } + + /// + public IParameterRequest AddQueryParameter(string key, long value) + { + return AddQueryParameter(key, value.ToString()); + } + + /// + public IParameterRequest AddQueryParameter(string key, long? value) + { + if (value.HasValue) + { + return AddQueryParameter(key, value.Value.ToString()); + } + else + { + AddQueryParameter(key, string.Empty); + } + + return this; + } + #endregion /// diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index 8d24682..4e7fb51 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -1,7 +1,7 @@  netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 - 1.6.4 + 1.6.5 Copyright © Jérôme Giacomini 2019 en Tiny.RestClient @@ -36,7 +36,7 @@ https://github.com/jgiacomini/Tiny.RestClient.git git 3.0.3 - See release notes at https://github.com/jgiacomini/Tiny.RestClient/blob/1.6.3/RELEASE-NOTES.md + See release notes at https://github.com/jgiacomini/Tiny.RestClient/blob/master/RELEASE-NOTES.md true true $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb diff --git a/Tiny.RestClient/publish/Tiny.RestClient.1.6.3.nupkg b/Tiny.RestClient/publish/Tiny.RestClient.1.6.3.nupkg deleted file mode 100644 index 076f29a441ccbeb5f9cff0e37045f50d73e3a2c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379257 zcmZ^KV{j(X+HGvxwmGqF+Y>vPBopIJ-q^Nn+vdc!IkElCsqe?V_f*}k)%{~v_3r(w z-D`Ds^U5 z4*m+76(kZmT%~hvIIY--BUUboXT%eTOPc-gg;XHT$5{W<$A7hFXwmpyNByfmEy^9; zz9Iw7b)NpVelmaZVmtkHG)W0jTZLZ?J*{3#3+UB-)e^2t3r5okctF)6#d4d1 zTF9PrbQ|zsMe|?j8{819c zUmHJAdMv4~>jvc(V#Llzg{nhUC7ll`h@_^qe^G0}=*xtO1VZ+WP2nGH>mg@b6P4A@ zLc+>4F>)zVpB=^pNmA6k?+vzgYD@cn-&%eg(k0&@HKWp9Kwj2if>`KNl4U*z4onk$ z6Y!r2`JkLc88z^LrCXL@GgSRSE*!goESUn9@9N@mHj-*tt8bu*E?PHts@O75z$KC+ z*UF=z;0R|Gn8P+AsKyh@0Mb9*hV$`T1{~}qL&(mQ#5F@stnBP@q&SW(1#bQLHjz7> zo4g(yHMPTAw=PT^2jM!E*B_Jw{bq^%l~8lwCB0G7!wQ$OxHKjauInDuwv`VYgJ(VH zxGkWdvrHXyM(Tx3=Zy)rc&ZotFqFdr9@X%hI zJDV)rv*M2`gvuD5Y4(cT^!wpQz{#(5yGLgWX5E5dTQ`tbA|n@*yMIZ`SH&`O?A#>! z7)fE(hSly?-@OOVJ`#+PqQhZ~4HIsx`o|>VcX*meIUHip3Nyf5=5ydKi^2qn0ho$~ z6}StK(P>8?)Zb68qby7JmW!Oyy9U86pz<-P0EHR6*$c`b?_*`tvkK(ZkN$wDRS)C^ zx0r|uN`z^%tmeo<9z~a8++2-~Y?}>ru~(>fUl&b`&HBR!&xjY*LmdJ#JTbPx6!h#@sft3>nnK*WuYS1~2s^*dt>mH(QLXPnmenUuCpx=mi z_jfF0hwKNM6#lzLtfh+@Cvk4jXhR-zYSI@fUUvbnbMvI7R2S>sfs{KqbSqY9NU%nR zYUD&cb{rHahVJr8u6HGxre94m%m#b{)`jbOHj`btA* zY0+oD(pa*a2A_J-Hnc-Ze^#V3WgeE%Y&;)4H9z^_yX(()Gb8R4&HIk@@;NoyZsPG+xlWuic{w+|jrM=0?|tX@eF^;^uf?ElRy0LNgAZZ>0f{pO z0U`Y7wRYA&nH|hsIXIdB+jX7Heh&M<`d~;r`MW7u&a=E>ZuLZ#4 zXVlmEZW$>u3pO{~?Yz1}3F&%$PN}U`*8aprCvSbVLIAd$E0Rp{VfVQU7xR-I1t_5W zB%dU)X8`&FjzK>WtvKSc>n@grRfI`Zd0s}*%LfnfX^&WBNUJ`y0(4<2$q`^Oip>ys`33`N+a-ecW6Lr5`u%_L|tY~8I}7Y;c7B`(oN9( z-9L#Wj+o`4PPD)a@fghTKRC`_z~ z2hjkIf6n1+<(M9dAJm?^MNSwNX1ej73^)*))Q4Eq7DVY6nED|sj1gd#8RZ;S9hDDg zfMOHqfksqBCMW9IAc!%6d@x>WLdV7$NF9wzhh}#q6M}gNvUh-zB5_+pB`ZN?d0QkX z2N_f!b})vQ7Yg_dCIJ6HHd`s|2$~H<)rL|vf^3SRZVxa|Bdb8yL0pk%g90;rpo{KQ(W_IrbU>T%t%zsog&jc% zq2EAG8D>56CWUvvKf#8|yTf73)FX#VmgC567{~9I6WAPy??`4H@_dDfK|kS!A}3ld z#!OVCw!wM9A24S*NeWE(9iw9?tRD`=^5i%alxjpjEJ+%dg@0H_7p;y;kANvaWLyP# zMhz*7870)P$BzP@K)bwdyBh?)hJM~qs|be+zq@`>APx}ZsR%Cw zoCh3(yMa{y7^~$>#3@Y208PflC4#<<7JkMP@NALpVliSrLskdjm|GDQyhkJD)9p28Td8ejMFu=5kD*JJyoAQT3KI%n1YCi25L;#XbE~8ehU1RGC4q8a zmO)wZ%p&Dc0}LT}t$NZOKEGcgNn}!B*!s|9mO%wz9>R_+JgX0>BQX!nDSrxMq{A$N zEy5mxbYPyM%3l%s9)RrmGv00ozX%$Ty}}H*eKB0JhZ#Y~#mpGm&Y+2?k@R$egN<%m6Tz@sksmcdUR z?wgRAc~brkZOV*h7ADVGI1ykc{0Qr8CK5<*1lFDtC)_p!Q6OX1CJ-JhIL`242$%Y7 zvNwg{DFAzD40nn->zt=X%TWCzIhfU&K|j8K;6)ybsfZLB&FwY8D#{agnw;i2$44Z@ z8E~s=+>CGlw$C_7MWO=WWQ*#l!m4pHc>wpd!pD6|xofMFzIeErGYmqAC23Q9VwfqS znNd>7=`G-IL@@mp%@1bM7oFXCFvhUrHWnEuYeNlKLdyZepdAE2*mpr+oN*HA7xuAJ zL@^HZM8&hT^ual+$8ggOOHByj&=`h*pSF3kJPD}uE2-Wjny;oV&$0VQkog;p9SuAR zm%Abe+$koSB)NA4=H~BO(!J=w`LzV@DD}^%+_+$Ve8KtU1PTfF&uHC1PrMOBaKLbk z1#`M0fNkQO45HwU+`&oL;hP$TOt9R+o8v^w#Um6lM4IEcb&3Nfg~g5z*j49pRoDcN ziL3jL;P@p&RG>#ESSC!f5G?7PN`P(wthJa{{Knlwxs`n`6m}qX`3+=6U>0#I`_SMT z6D%#IvLW>`u)sFfC-;J=-26V88JPfI^LxyCSSJ{hd)Rtn3N;{}1Mf-9fV}LUNCeaCGmlK7UYEQUNkK#+d zPlWB=0vvvK;IwO{4*@yl%$6~^u~f*7O)w_ZAjG-LVw`2Yb&ahn>G%x%N75cy;19B; z=(#V>{<1cfbK6FQ!pq#+K6n^sQ#+$bgoBsXiMxZe=5ZEY*-N&lN9H7xzy6^GJrZpE zFlB1}Mht^xLI!M64f+LrawaKlH==oZ7@s;+2ZdkUW*#(gY9T8VEYnL+u%V!m&`u%1 zLC``%iH$Y_C!qXy2c}0bLZM)d`mP3>kJvzbf?rH(oyPo(III+CPv)+^1vlOeI@-79 zzt4nEea69O@M=&3`aRioOXQLIUPPxXU~hs`SJ5}Okz=SXn%Tt~Z(lf?Bz|K~%OLr8 zFU<{hjJWXT=NMudNJ*FtzQ3J$Sir}R#g zWU}}jit)h+_obOO%oKHGpJ-w?^BY$(+Y`sB0T>D*0M-_3_w_f_oR`Fc(BLT!$7bN<~-gWP_- zV=UA4M&>vxqdOQc?vOpCgH}f0jDuz0z63Yp7YpndUz+{vTaDWloZa_*LK?#@Lx_;^k=Srlq4@QDP2 zrn!TrbBY6lrgsVh3!PxOq8>EE@f~o&9T^0`K*p#WS0Wrp3dn{ye@RR_5h^2SosXOv z4gV52(IQxJ@f)Upfraxc2+S?orJg(&^CQL`c_fi=_B9%QEQj;U2+Xb7wWN7Thx1Db z%&p#iR=aV*_|S*!72+C*?gZRnyh4w?l=;81MO`ciLlRL8o(dtPm^3kqVZ6d)yoS=< zVgCc|9X9=4D$QN$1k0P{zp*{Kw}Hhf@3KJ>mG>25cr<~f{ww;})C_0ky`Ie{6Zj4` z0$vM?rU)6;gO^hq1)jxpB(>wwg;1!ZLpn$kD~l`n-6uvfL; zsCaj$Vz*ZFW`*XZmGQGFAVfA4fN;IIv%ki{+>wgWUV=Q9;*`@ zNDpwn>}zaMaPm$0`{vE#$fYUf)QeDfC6Ko(G-SQS9q??-@67``zR}Kd6Nmflo0qL$ zgn!`U9}?+upv3)8F}9UJXppDS7bocrNN%HvSnoybHUuuo*T3;5`rZaOGv_TJmyrC* z``AuIQ6JsH@1V#Dw+5@jLVf0m{b;!d{5Tu$$a!J`q0&AN&qnckDBD5Kc7lgEL~v~x zrYEeSpxCmng`^$|A+_Ly$tG3z3b-TpF|8OMt(YJF|Acy-hEVtsGg+4tV-k;#{I9o_ zkj{W@NN)p*+uN>p0bI%SZstKt$baU*SN*dM=Z2iW^9y4ajrLo8JBXNS>UR#5KHV*! zI#JY7HSog{1Uc~~(fq}E!0u9~&m7IaX(A{$?p%x?jb&O+AAcH@i1Nr^Ii$7V3e*?W zqe*`IdW5DEVP; zNc)Iy5tN`d#~WXRJ>Yhm`S~0r_%Uxpi0nZJmjaZ=UKT*SE1fPaJ$R=blS75To!a4^ z=@4ch^a}?XDMIW6n9FY%;`i|SdMj4_{*vwL$`JKB6Gh#d)⪚3TvakmRABURsA@$ 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 TY$4xy(kt18-b2kr2y*tM0 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

j6p~VAh->JTM;}4!J`OX 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

p1x6Lzm_imzR7W6&vW)!l0TYp}63W zSaM771TvKp(pPeXj(a0()79MMnARZOyG{L!PU9^lY#q~?zqDp=c5wAB{Dt@d^=8on zb*cYMRTf}fRbG~+4}Wg?c6cc(KYe!{1nBtvQ^`EgHC>VLxBXUA7Z@N3_c~CX`$@sM zrHqj$dR)wy(hyOQr5xQ^!NC+bv7h2|ozUxV@Lz*tm(urneADwB&{IFyU_wKX8q5A| zV2TFjis28X+#dBNYmy(<$P@wt6v51C7a336kH(lwnSR|B&P`_}F%?-m59NwJuAi*T zkr+m#JV8_)T`Z12)i`{s5@oJ@@)W{U>bp!}AUv>-ewfDO?|69ceQ(K!Il}W>F%8oU zyH2?IA?Q+IwbZ9jmFp!RI*H%zEaj@oNu70r%-i`c-{QnwZnGWvQv>CX*9cRjkk-WMZrs)g?+w@oV;KLLcez_+#Ir9s*6xQ!|R?nk&_h9<3!Lc zbc2_B!=Dz_(~Fc3qcK*#wFHsp*J!*HA5>``&kl~C>kA@Uof*TA;p9&p+>YVD>`Vx( zOefCREM73U;a+po+z zx?vA69Cu-`8KSpA!aG@am4(3S=NVmC3(;KZev#1`4|M}nCS?Gh{ zG|)0WKGNq4H=Pre3H&%B7aIaOQo)k|ha`H7lclewWkqyKWm5IoW07 zh$oDWd8LKyy3A5Ldq+hE4&q)EJH^wNi`RbO5%V|UJTk5}1{lu0;F9K%g3~<*NUe^4 zkQj`{_z4$e@`i$J40uEiI`#}tx+eQr8yC3^lX=D<%vWu2u-X$-MQ1fgpdNB&IFhV$_4X%XPAF zet-6(yoI5KTqp7tG8G906Jn?2TqhGul8dOqbKm7wHBWPUOYn%G9g>6HD*Vo9EYy_W z+9AK0DEA5k1uON{eOlt1bspMcn9$$$Yah|xG35?F1}SaDzu9Gt3`n&+pg!Gdv89)&Y1K_;->ADz z(7%=rXY-@wN+9~W)vVNycp?@aTEUcsjZ_JlylCVwzJe9YcW zM}~2PFF)DbW#2t~yAO?hr6a4KI;(OA!Rp7c@6o~;v};*tFHTBS<$_x`gnN-8ln7P(ai3li(44`VFQ2Tm~7q*Zyz_f$Acsf!QYCY z;+x@gl@-|*ZSB{VTtzQo5D^bIW^zN2Un*J{5Y-cp|2qWxYI`H~Xv}Y(#=F}j(0yER zN(3c-IFAN$#a^>|TsjFTh^+u6cTiieo3zH(PDr^&;wf~Yu{2Czb*} zEcJ1nl>*&HO1{#KkPG6;5MF`fkyBw_P ztllMDVTukO@;7Le7UuH#f0~L4!c@^q{o=wFl9FEOC~&~Z5p&zg92dt_OgHj&i+!qd ziLIb50%NN-vwhU_m~CYhbN_2i<4r#k)87&F+nt%(a=UrS?}^1L_fNt;l(19RUy|U& z?mbDnVE;+nhYAS5=aX&Um$VD+pM`uNHuMe8)SV7nGH^>jO`;_hTwy6)<0;$~-L}rV zm1vg}Z<7?XX;QTgDQmm4U3M4uXnd!q>ZBEgwb*Z|4dSeG7gW%!U}4S z9L5a;KN?CtbvDsD-bKZb%87+lD#=lfS$Z%xJkO4!X;D>`rV=`YDVnvCzcw2BsBjhH zkjqvyl_YV;4mOtrbNM`w!4N6bg^?)TFVkY5RNS(yjYO-PW?Nm`UE;fYkbDP@7Wm$I zb6R97>*D_oYr}BDC#zKeiV<#{T#113J*zfMOKIM^*roc=wDlV9R!c|{T;e`>jIzyj+ff&|hMo>(T%i|vw#sxwh%VBtVZ z=biEc_?p6Tes)GFD(9Fn_XFZHsy!xhh)6<--4==g>xR%;)ZtcfvCzTDMg*d3HDxVw zL-MhW4%Q)_^We6*Zri>!GMuE^vum4G+IZFyAsB3=mqz;&Fq5l1hfIB1v~R-f@BaiND4RF5JlM&s|KkoeT+_*8pnO%)Av0iJrxe^3%|P3 znnU4NZSl#z5UeZDI24A}7BK9MVRb3~2g9-2B=~({SX;?_C@ib5_1)VvRFheMC>*QJ zJ@3VD=$4<@3rfb>rPh15acFDrNLfCLv{!r&jDr?VHS7<$u4jn$idm;qHv7ZO>M@Ge z(d^@BLHn~*>(nOesNnPOvghB`Mh(B~C-q~$1ldj;*gG}0x1je+&^|UZt(~QxeVo!H z0US+luDJ{XzKe%Vc3y)lBDd;mZ+9V=i9uKU(#44NM-o1*VHWs681?SLiHM$0U|iR6 z`R2d+6n@NT1=3Z@Bu4D>9blcE*xJnZkshg_c40X&7zeXzKjq}C(y<+i5I}3LC9TG!G|JEIdNc&v8+oZ zxswJWv!ByhQ==0P#feLWPxe zMbY)Z6%-;UDk!e^0U~}?)%}hM;IjYk`~QAl^wsOC>aMP?uCDIauir3q!i`L2jM?D& z;}6E3W#X@f{pY_%xYBc_ig#fg6DaSrXOxe~MD|K{De(O(|OJ(CH!x2K=1k({N%Ei#a^ z(WhY(Q!ryL3+e)Vparj*JN1&eaKEHXwyRv|-Au%!s@l5RDUc@JuOJAHb=<|I^=KMFX`xN?ks{ z1jx3Pf3DQyU5$qrbHodPUKy~G)OaD#%9BY&NE)0}vKUDnbW%YQR)Sa;iP=Qy{sN7c z01_KNtqO9c+q4eQiHZ%&ITX7F{pTp3pu}4N zv$iYbjl+QV%tc|)?{_w4lA$LrI@BymwsNo;(wCLm zIl#-l-X|IuZwq;#mC(9Kx??FAgF`!^eeJM)F1>vk-c)R~LrJ%5t?BO2s)a@|LTy?( z-JM!n)DSw&rgs`8fMC}Nc1dvP1cxLzb%Ik8Tspxe32vR>mIRMZpu~Af?O=|Luf~3D z4?q~MyhNH1hm_V4hqIbUks|2+u0G1a?v6wnkd(SkKqyw~5s7!kblngfwU|t#%EHJj zzf-MDshtZI*L4BjWww|T#FLDA%m;?-o)l5o8HWz7NNox_V~~yjV~-=|aEO$voabPC$Y2>QnTLE3 zW|2Hiq@%5E48|@*Y39qrXjIn^JFY)~x&fl1fmo4K)D$0tiVw#2ikj7>0TA*w0__as zK?ix7JQhXB#Z#L+R*k^TNv9mv>I_|{Og88*B0WvF=uqtPP<$8~HUkZsUE5NTrdiH~ zlV^y4gf@cl#vB$KnOfDsbnJ1&hXcGHi78ffoH$0gSJRD$Kr zBzkOh;K>d&4xkQg1h&-S68YmJ0drF8)0%>=n8PKjGfd+)>`=u*eRVtJv&vy2ecl34 z%2t^Y)}U1tjffD%h?JgCdA2qZN0+>bxD0CGIsxLcl9*4iSWR3a=Y>ndPzlpXM8*w!LMi&klF%U zUyIDPMF^0;FTx3rO~8Es`ZH^_r*S{#(vS5HeBx`KO1?zp1y}^uj=Wm*{BaiTAv?1 za(-MO>^%wXosjl!AbTead%J|ak)WMtncu<1Sqj=4dduNa9PwFjcVHaN6LHihgN{#( z1)Oirmh(-9O`C#dYgO9=MoyNTcVM~++hNL4fPFrWchJirCLL`mfQlBin<0B7DZ9y* z&W82;wOKvgYlEsezhOa`#3T0jG>n&WdOKyU6}79?WF?yyZmz=(wN6{Ip6bc;v@6Pu^=xM!6Kl&oa1n0nXS1K#WtHj58<^rz7#qX2cmt9N&z1ArdcWMx2Snc?MC0 z0nwjMHd5Nm7HTt89S{qo+iI_etRZRzcCM!cNXu;&Q!JfDrVHD`RnFQ+fKy>#Fq@VR z5&IfZL=BIGwX0fpHil{R5OZd_2))ja&H-yvyvO6Hj*eW+Xw6q2&}VW=TqU?_d=5o> zXr`kwRZ;PQz=7>^ln;~TYcWGe&^qX)>cmtpFk5`CwZeIb{H*7kkHrPDU?G6w%5cd7 zcrLIVcdUjWU-ws>1sai~LDZ=b^(2Xs;{@Y%nv8pkW!$?;#=Wa$+`ESE>9)j`mH@a& z4#+ELKrS){q(=$`>OyVa;KRn&K@wLS-f4#7u4 zpHheJlL+E6iabfxF2ynKt$hMKu-0yeHPdCZW~zfHSx0f*nFzIdoE7}+cxV8+b6Z+4 zAVZB0!CP$xl#36;(&s(3;v4nNltI0@sD zt2i8AfKyH$u8*3nUeesOdI{KkwlJ+)Ts~+DIF#dU&`YtbSW`g(- z^LWA81K8Xf^)>w>>rtf$wr>LxwCoSpl9^12{Xt_z+P{ct7r z!&9;!Hc~%4W%NUa=m#WdS2OdO62?3WVL#00xCm9_*I<)oa$J_jmtcCfNW%c~gs;Dt zrjp#MmGSG4HwSs}P`ME2i#m~UsqDM!F+*HtScDnoA>t8Yiz{sx!f4i( zVQ=_E`P|{{oQ@!srny%&_PEqIL`Tnp=k*x>9L4x2F~;9SF&;S@M4pNTFC^#Lh8%-S~_wZE90 z=V`O{7n5tp@nB~Mq5cTfe+Sl2F%ljY>h2W71Bv1IUDiG*5q+@WrR0h>VMTXSMaa>D zsLadBd7i;MD=80h7HmmoKWnm)qk*4Q#P6k{Q3+9V6?U+ru3nD9)!5IMNMsEnm*GHw zVB~?!YtidpZ%X&`XYEXNa1Zf-aX4f7;dez(I`h!`yct*j!;B3@K(IC`$ zY`EQ5;c4=xm^qzw?Lo!MM0@bh>t+5z=pfMQF_eT$p~s|}kLv_V7%QtMaNK6&boCdd zb}bBr+ARQ7+W64!5+NV#V}scNss(+tCvhIFeH(Jww2f%-r!ec&=qggeP5=(81oZKq z(#L}yr9PXMO`EWHGV7k9l7i-lKMPoeU(W(A;h9$e6?+`E`14F`ZVJ{5h<%)}CT*4_qH-}ocX(EMncPs@Avecz^u;bE zYIQf&{wa3c-Vs}C@5$UP^xQ3^)RsD-r6lC)1WF{Uk|*=zoyf|UtbDQLw%LO^XA9~B z8Mo5iuKlgKqeCgoQ{Dx9{1wB;k-SZJ)@?H1-*v*@C80!CTQ2XKyjRG3Yk9Ad_cD2J zh4%?{uVR3y{R9_s|A1s;agq%aC>@463RUchQe@%|s=e+t94=UgQr-gyb=Tllp9Npm z48PID!B?S^ZIvyQy6q?h5k=5~bxVwVM1Yd71M4tuR7mib9-38I>uc+Az2~{zH~KDa%!-&Vus<NiuNxf55`8^+sqa6K0tXnByX3H*Sx@~h3-ynvyhu7 zk3~<>?tCF{ui5S<+3r23q2k9Uw7Wpa+h^*x->ToorxFU0G0~bF zvkN@)e}bOUN{*X)9B@idjfXKD=r}kC;azk*-VS$AO|&{0ZJ&&GNJcv%dLh*OI(l)X z7*TkWqxDwYX#d=9ZnRgDk3!(9+lI@@PsvyRB-g)AE7wjl*OPLWHl_C4lVwe}*B!u+ zATkU8m@e0)`ecqHQpiMBGJw$lmiB%xX-R7*k|vAR%;D^p8qnL}?IRfGKYdV%(m&_O43 zkc5spp`#>p(g~d;p|eitED2q70wrV&S(I!q8)@V>HR?gWLDVXf+MPnz=a63T1)Aa@ zx_XLANc<2As>g!0eW6JFON?+K#X_QmkPuy$ftv(9rHXVfQGtAjHlDPvaAjp+hb`Dx z!h!+=chDj@5++#l(40)<4%*jAMZZ32(XUThbU`<4tX`C`6N*~%SZn>arB?GfzED2L ze}n5OcwYRL?zY5tbhjtIr@Qt88tF$$XC{7vyQ3a4@%)%2o*$8*{lb#p8y89WFy3gN z-~%T133f4a|KWWmo=ai0!E-5MLTfQ)CX)NH zAvY@IB0)RaOm2yk`)?`t8!7i&X1;&^TFO04a=$j@<_Nh+IN|+ysg(PxlzT+VJ<7~| z`(LEopGod7hTIlHE)tUV?NP2K<=VNB>)=AJlkVDYDA&e?T$Q6-#Dv_ILM{@t-lKN(?6$aq1uQu#^DQ|lgLbj}aR_2uZJs+_&k(mEs}Ah# zx$GjjVadyFv`3`Yf%!dgr=gpj!DBe9puI&5G2+3k&c*TFUhG1f2Ge~->^w*9KnzYE zAeV$vDhAn{c+{XG)oF{Ta@<>}a@G!U7@P8G4*6(ZI~<7e$y!T;oNg^06(B**@VFEy zpzWjLEhz>#x#zn8^oq&8D3X0qEc>E_i#4lFP_uuybhf#GoLMVQvSTx@BCuWupVN36xW22STGR^xuudV(51fO8^5e?=?C zT?9X;b&lAVuas@+B-_$iwxx?~OIN)u-MBfBJ4!t}ke(e4J&S~%NYDqe9xtn8J$+<7 zy=6UpWj*~Y;(JN)H6*^5A--6M@5P(N32a9zDSxPxKUm5iB;}u>w_^x51L#0m(EzGw zpixnYs0axnfcCB(jT0vfVozf?InUMTQ*n(X^wJ5vnB`qCFna5Z-ZEz&ozO=T`s#$f z&5HKZ8U19={yL$5vz!BT#sHafpiUUrEaxDdF-YbdtP=)H!WlZ@3`rQG6NWUCHB@H| zl{ts$gkjBco~bj=lsSj%gyE7fLMM!ngpoR7q$G^e38N%ov`!e^thO;aV~or>Rws;Y zmh&u~ahA+EPA81B<}6WiE43?dZV$wd6wAbA_(ry#NGPJc9wT6i=>s93{*VYpK-bqW0&AM+Cfu z!*zK``U|8X#}K6+55Fn(h{yA>;y6SgPnuuV3c1*iF2WGsQwbG&=un*EN}P)~Itu4k z6b)wYioN)nNU29gs?vbB1hFX+KH{l1@U)l%_Js zmm-vlLp=5D3D}g}<3a(d8LX$Fz+f`jsg;QdM!X}6vAL^odl=Im_R?$mQBfy*XBW%D z{l*TWoT`;`xqoS6vkY5KB3p(#w2+pZDlCZy{X%sWNSP)Kd9EYe^(C^wG-?H9te-*< zj{(MG|H-zKgl#XNrc9Q$)zG&4NbUu~wihJZc9LmZQFXlX)D?A8!hcp#(`Bboi{69N zWDicW_MqAJl%_1vW0Q<(l6uS}%O2}hEsnUt%nQSo5{YL z+`RA1aWMUaaWGT#-b^tLs*p6x7zY=U?z2v7984D`oK20GAx&6jj)U34inEigIQ>K` z&XQJ~Wwqig(qyJ}99-CJ985QAPO_>={-2D48Ky0#8QX~$p-8P2+UjBqg8K8(zvP~l zQhyQIxu27X4g?~DM_UHrn*ob0fom;xXt|Opq|p((L>!Z0qJ&M>B!|w5G-uszu(F!7 zUNTtO%~|gntY~xAmj){*nH9n*0vYAmb**tNtD|x)0_zgi)@Xa~@pciV9*sk0YL}vf zLvQ0>l|TMwV7SXj#QY=<0Wc^9p~r`5G;>V zXGM}()VA8>w$(OkTRWqE(YCszw#_lxw%lmj9rCQCoqY`BubRr^i8csIcnB`V5gVyE zm3ln*rj5g0tINbp#;TePt=oJ(@8nIf+uY&_TnjTr5+gp zyV6ik1Fbtm02*j>DW_JA1J@OExo|(tQ^7-NNuT@HB#wxw0O#p;yYo}92Eoo4y`jL zofh$(gm|Ab-bIS;EkpyQD;Hu1HWLeSx}lLCYw|;MNb@_6hk6)q2wn8lRaxdDZEA-B zh<8Ur_-wVK0TFcZ_KT!J0O^4NBrD*;5Hi=Wwa=yXL`EQ)tkqCp(c?8dhA>!vv1#U~ z9rTAUC)Wb)$>exFk77(OJzlG91Mu3Dzci4)V<^V+dg745R0|UCjjN?LG8(rP6B@cn zgNVkLlZpu$jVo|M8>7@;E<*9;$sW=mLNR(sN>enL(iBd^RyG(S+*)5Fs+v@%)(!^V?_+!@0~d zhhf!;Fjt*g|3Z7=y=P+cXDGk>q&tX?kMlpvuN}2*CO}c*gim}V^KmPbbpWBwm zxowGcZbJlI&5m}x!l>G3x44=~maax;JuoU=zlEv&>9Y+;zrs|sy~0|u=XdE#g>?4S z5o11El%DNSuT3Sfu_ICsM_bS^oU6oJ<{uZVQqY`{vcc*GWr&UiM}!EdnMgR{Y3Ar z*iN{ni|E&LRHTzGGgM-!haC}))e=jPtjG5=!vK3n1K;NzseY=MGw(|pMy1Iw(R;K_|W0{4%2^0%Mp zhq(UyI@u3bH(ztWAjb1E;A`uJuRS7s?RN6D^U;%@ppFo5gYHT3bEwar5RQYVIJE`X z%5$w`JnV@_J00;U!r73HCzp&emm_neJ~fX*2kSu&ww@f!mUxm{PA5a*5uq)vWacUL zNCp3Cc#^!UpYC1jDVsJ1;}IQ|vbp1v4TZp`9v3&nQuV2Ky-@>9yI}5%Gh|PMwddi&begab z5)zw;XB0D6dl+RctG$gP%05e~J|&}UJG9XyO8v7U#6HWCR(l&oh^6NNrG67d`{`t& zXM}Awi5p@mO)Y}P=EX*%5?CcqFwA6XVhmEKy=61}{wJZ5kX|Ih5fs&SyPyExDYi%k3|v7)?#8pc;C6#`Vf18`-}7d0AV zVrOF8wr$&)m=oK!ZD(TJww=k1Gf8f2zx@8+`|8!Jx@XnxzUTJo-n~!tuEttRRi^vC z$N~V@QfE_kkHb9+R3pE_J?ru9UfelV0xy!CjP%e#w1_q#Biw}mO8i)Kpy7$>%kSJnA!{~ z#S|TqFlWzJ4v1_pnxC6Cc>WyNvamsghy~ClV`4U!`sIq^Vq8vC~dW#*@XLgq8Cd zPMlG>!}HiHEkF2zhTjL9h1?taeQblbu2w&zVABDm`XqG79CW)fde%DqrIxw#U`=Yx z{iSMBR_!TtOmq`q3>Pe3_aS3W?Qh?-f8)rBe>UQ(YiUCe5=8OoSKeZl(R7lN*h_x# z|B!how?@d2x+%AWE&MgC#6sTCuf`(2z*C&`rKB_g`CX!xkW8GE3X6CbUI$TsvL)F^ zW9O%cEak9?)jok?#7gN)>Otl|XYV3&nB{*oQrBwkRmXh z``J@H=Z-Zg1c<-bm<=V`DIl?sdha{1IZ!oCI*j&d7T*8Nrg6CYt<;Aa%)qkGkA1TU znVkw>|B5KB8z8wMx76zc)aggV<^#(0DR~&C{&5+aRBrqh5I+yYPgjV}E>(lkI9mQ) zoXj&@t{<;gw||#({2GKoI|fNhUC5|~Vx?l7sq0NV4SL-zlQwAL8tOrz#kfrc$EgEH zx~K;7Q%9?l=eXsuE6=sI{#T87KDWvto{fMQ(e6@~Y1V?5p-@-gw}cH@SF@R3wKzuv z``xZw$YbJLutRd8I@@9ic~!%JcO%UQm;Nwmq8fpZV`CrJIBje`<#ETn-zk;RmE%4(mXyn?jOE_Xf~NKh z2e_Le6BSvk)3X9w&4nN&q<#U()gxt>=_ zP5J6bF#jiojL=We6aUKGAM)!;SYVsX$0PrGucT$vZz)#L>UgwV$A)df^%>N9e#{Bq zAb8YmQO;Y4VFZcH+bLNq>f9z)v6Rwbc@3wF4hPn7Cm%S~yegEXW#dCZfb)pEQr}?am;((Hy{A6YldYTt91Go$tc#0%NlU38`$ezw*(IYc zJ(9yuq4Q#mU%!G{oj2AjM2VjK_qZBD8cL6H3$4{XF?c#kxKs;@^dIeX6lm#|>OU%_ z1j+4T{asq3T)~yzH`+?Q1n(-xJwk`fWw*g4JWh9xa5Bw&W(;6kzI)t_(Q*4%rpt3PxbxF|lEhO^2%OhR~oTiSpooX?2j7QJ!i`e-=eoBi- z9L4?&r}>=4{xqlgI4)Wv{ap4e%MWIjQ?b(X-+qi?;=>v7n-8L2rkzkFX^hir!Ow?7 zCHZtcl=k{(&rkf5W?iBM34Ue*7syQ_c4`72xtm=~R)U!DMt*7nJj|P2fH@z``OPja zD}j%9*3E8x3^X7avN!FffbsEw_;&QljPF^1n*dKC4jM4waUGJeLDNwg9{~l(A;a-8 z6$>U5V|yOOLFi>J9&kS_6^yXFj{S+yYln&881_;{fJwKoTc2a>$A$~bDko@L5{vUv z{GF7Gg9;ykCoKwGDz~AM_&_RIZY$?LLz+_lO0EQpdHt*y6v1H>oKXH!y{!_aN09xTr6Ukb>!M9?RHwX6w6=Hb+nDaHL<+{ z=D$qsdHI?}o~!EER7msThxL3mH>ml&VzKQye7{m$ep)3cYsfFr`9D>T zs2NZGb~ZQB`?^JaTuWNkM!+4}M!?+t;J#NQS-s;me7_19XZFMT-?!p&ZubwmlUl)P z^TBO)Gnb#j~gPj z3tJV0pZ`WY+B|ONRy(FnKp7u1meg?gN%Njd#yT>ZW^aDZg&>qr*(ofOZoS@zv#zwf z%9(k-zG=^@MOCs+s|72cKwBLWgImyqx)9`+IOFhtXrIa3Wzmh|YQ!JJF4s@?15p{xfBWPyj#?OkOznLJI_+An%f>`cnDQtGiIR$c#^+Bh#8A#FTCf$<;mz2e zVewSi7aJ;6tZ!xc!2aaQ`paj#wPVk4>Y$?pXC$QwS35rt%SK=~Qb7=wMcjvO z#0dIkoCz1JvkhflXUqhIR}!~d@yb?8(g;XNYo;@O=A4hM{-ro4$H~J6VVW>n$Oc~nKyYQc!R6Q0A?B5l3S881+ zk#47We>q+-Y@5Rzcz=QQUmovo>EmWw6%*P+7)~Jf?o%3`>cs-MLc2Dp6%HgJ+3rm_ z@N=PEsjV)x3VC}`+hi{bVNPAfu0{~x+Ey_Dt?jB$1nRM<9SMVXbj?2t3 z9kJ|MlcX}9Do^&Tvf>RXe=WjQ9-n=+tmz?nC<~rUE76r{$X%}x%&FhmYd}2Yr>~rc z3Hw!$OaK?TR_0cb+D3`U*^0D~??zyA!~cdriWlYhTXn*OpR-pRDOL9Hr6^z*!=al+W=)HR-HPgw!C`({ij zHvzBlTLH?&3w^9}F@Wvj_hFc{cF3Jf1O3n57%gZ+iT5j|@_)2-X!GvB(Y-6Z%EvG7 zWKugpYL+t5MWy86N1lBIkPo8!;!Vbt-xY+UV+5sR05qd!QI%rMpoSpB5c`A$*iMTD zXiBJPa;Rv{Q5%!+%!ibjz0vBa3a4sNPS?6OWUTv*xj*QFvELHClXpFYVZ?HkZWu>DPbLg+z% z;yAs_iNz0Y^rdnW7XwaWHk=!?UBY@F(2pzL@KU^cqDoGeYccJ!2rHeTG}xyCK)4sP zSirqr&gZ>t_bo`b(XlBPDv-C&l?`N3L+bCCqj`wEXk!H*l%C)b^Yn0Z8emDPRN~ux z8pjxGuD3&bN1dPXO=82*Tn6E#P#EIC4ij@vv*~z05RFH6C~jGP?J5U!AF>;SI4$DT zY1OV-=3uDmAxlI&4I7*K(2;B1SXl9g|A;1>^NlMTkv7qpPF*soWv1_}p&dE->W1>6 z1&Y;0V%OYo)6f1&DrMd4CHUOqv|$>UZ|lyS-k#b4TNB*vd?j-}$1LbcNb&WpTg* zZ80p(1ZgjU+g;&)Eo%;aGKKi9{*E<{NDzn5w-So4N6p)w#N$!4Gw@OrY*-eWu3{*M z7zT)0u@jd6Bc?_OmYe1=T_$O6LxFVlrJT#Rl5@Tz1*Z#DcP`}UeKD9 zjm>@b8HV5!ihC7d#K&tQzKXi_y&8t!)DyMyj3n1%ju}CuHREWfrF@1a$P!eCf&f}C z#;d#ik21gY;I_Z;D)D7<&!xhTlf2~Rhp zJWeVkr|a+@ntz&QV6{;u89b-%W!tOA7X_t>8+7AhojtU!&LfVsm<{a&f@jgO$WLfE z7Y!Vnq&OGcH4qT7@avJFwPDElf3vNm!S`LVvAKuio$;Q;tG{w3eQ}g>Q zNq03qmo44Wh&L~!Tbi~mlHL1k&3G0b-1->$*lA`cC)|JqUhgK({`Xt4}DS)I&NR8p!bdLeh z&MRIoH(71S*APW!EOkp!kQtFR1Y#%^~f>Jt~FviDmusUB2Q%!q<#{lR5hg zg~R$_SJmaVYGJ3K|98@=7Cur!NS6JUA~3(H!c;R%m{86IjzM6DHQJ(>VekCDF)4VL z2o!uuw3@Vfg{e&GYy-J9#2kl#?v|ewl7O(EK0(kded$iD^~h*kl5K8DW_G9R{j3wv zepB4|cednkzb)wCazBU5AD(YttXw)(&+U>`_~E~j^Y}HFm3((HqdlZh$K7IQMI6U7 z>aKdHq|5_H)m&p^#owSr&fhtCwt${93ZV_F>+=-D+WS|UkpJ!Wd zpy0>}s#fs6!hL~2k;8$yI4@l8DfJJS@c_>T$wo%k-O)XJWkZXG+$igLM%t4-4uhE) zG4xmDbI}}H!6KCkL%uN|vVocwsE-XYV}-vZ1#^l2tgQbjU7J=#_4q9!{{#(RoKL3Y zPfCbFY`Cx;BX@8oa`|%@mgN#>jWokru10iw@?(4WOBb@Fg@CE11#87pe#wv(JqKlx(CF^|eu z&ojg@ko>J%jw!NphbFJ1jDri#YZUie0(Z$B;FgY7%Yjz-jRxtcE+LLX!+?yh!;orB zxjK(u*74;#yab-}##NlC+HV(wzd6=p56lAT@wb5s*Oa7(tlXd05DY-Y4><+}#Wly9 z@zwlI={`o#c-w;ozot~LlKnfKuU~H~jt7B!EtNIT>zL=5gj-R~H$Hl%Qeh{iOZ61m zI2!L=U})MVZ3N~^8-Z7`&I3J37iT7hf%?!1`p__4h!}4CSjVx(hoaALSPgsowaZ8x zqeJ}7V_aICe$|UXN{Yip(xKA?gGoj}uTlbkc2dl=pD`KBv%PJMu{tDI!A|vbm5F5sY+6g5FV4PS1=|+v zr?-tq${$DEOi1PkI!0&Ow-4ULV^8H|8F|Kg%`g}s)y zH-BR3D}{5rF&I~a9`6h?7q4GukLVOS_GbwD?g_wNpZ)0fo{P%2sHK0_?yynWuGm)I zLFB}2aC6Csbll@$rQ0p=9?3&lhxexq>pg<*8v|?>`a?q&^G}}u`8pVGm~Up3TXW`& z*^}sXj*NEZuT7x67(=@9}o#*hj2&h zrej?g9C|f3fOlF&J~G^VtO!Nf7VIJl@O*s<$1LBE1xk$P z&wS$aFqf0RVQePN)P^(%*G!G7$ZwdDL)yBYVg@h=kXJWd)nl6I|KQ-6%FJ46qsg6t z@cpx1ILJ?rZwqdTYSQJ*$y2rN-r=pI(a-@Ybp-?v*iFS@ekJ}5^i^8#6W8S^*o_B* zJ+`~6)dusI8PP81Tr7Y+W;m$XgT7%23EmwSeqwDT=w_|8P0pFj7o~6XMJs(N3hP4i ziamDphi&$5fjRG_HS&A4=0WQ$gt|`Jfw%ff3BNq06~3R)BG-~W;|xsys8)U`{A-{Z zhLu0CAOmSDj=g1oA`d7)rKHAnT8j1c<26Oe&F0^O0oV<(> zTx(>9imOc=qbe|m_z_L}*tuQ~3zPI)B<*pK98&6w1kNmuC_48_(oQnrTa|e|sno*M zn^3t;(z}V~D`oq0TG>aoB+AUf_|vnaVk?xn+C4bx8c%RASUF@(sk8emO$v0Xtkvf) z*pVS(&H2D+D^HAt+!S+s5BVbQI7J_o)|>3FK#Fhi`rdUDbo>6s2Ze^Tv9E66agw~* z2RyI`Z}{4s5cw^K2}6YoTo44CAOHqsmDN3AF0xQJMXTvzj-_qv|XBqrTT=HQA#IE+KvP6}dI29-bqF z-HA~*Gd?3d7X1O`*tB?EWLJI`WgTL_RC;G)7*~!@Pz=3VvGnm}1AVfiO6{6~NUqpP zm?MAkBXu%#-DDM}JMd3`Z3*T@^}5gduhhC$Md6S7Y^ijF5^avI+~!ZFFqI;pz@SMgn69FhMWh{(ZNu~n z*u=EE9nBWVI>)}Rd^g@Bjj=8~yt6s@Dro&$WeYh&bq}O>vWFEJd3^8NeIu#D@a^fE zU^mbUvH`3$+QdneJdM`;tpcI)FxXBDN)oujGThln;uX|WKC-poR~`01UhTkO(z8J{ zI6Es^O^BBArcTU}B2QjTn#!B3;N_tmt`QMi zc&B6V$gtv$X+t#A%gD8TE6G9Nh2H@81F0=%a;%9KW{O5^2ck8jY8UOxaX0c47AP~Q z!;O+XT-$nG)C?9JIa~5B&jBpwlbpa$htBc($8p0{43iX zPj!M}i(q^}b>eDEZ>)*t2In16f2juO0TK^7hRFqd)lk~fN!s#n39Scn40AL}(m(J+ zpTi!`s3LDo=8?ibp`!vZS~Kf6$jm6Kc`DpqTMHxYh=Gtvo*5sp^*3(Ae&$;+Z$V6{ zeb$wXp?wnFFU!5~pA^P@sF-_SWVXaB>2m<$>bw${-76H#q8#>j-$8paTaYghFW^oR zxZmt&-eU`>q2g(&)A8Ih=AvPVNvGYWV!}>Z;AvD$aROq==iZz}rFN^3Kz3CJcn-hD zbrF9)z04E%(a61H|CpQkiIA7U*;>Ng$fD0U>7wGVbZ}o!9rFHil{DeX?8-E_MZ;!i z4naHG{&JZu)Hdi8)NMbAIf@AM!%h{HsC$+!brD<+(k@OZj{#ng-8VBs?%RzQW4brB zQ{;pVMO@H&3tPT^whO#~d|pNfEz#{(_1^)UhjmhW%MzCQG&<%+JSsoB6?wRDlLEP& zmlz?rXb-Fdkj(U;ugC7qK)!NY`Iw5BS@)echY+?&B|)P+c`g! z1Kw1oId<%%ujKtX3d;S*pK(k4lY8!vr1Fn^p?43P{XuQTJ-xi;xrk!Plo1cUgv zzcrv{pRspsCr!)w%z5&UFdkI!=@L$z26>3Cl==rWB=jqDe5?JSOA)vHptuxX=p9W6 zpr@jVN?A@Q>*wZD0Oo?OeyS93QG7YKj;m^MuRePNF3wTZV+1bs+o(wWqP;Ew@xQ(f z-RozJ>}F}~K$9{F+3wOOa)NdO`FCyc;T!rI9|w+E>JTF|w9L-TaF_E2j_F^URIXa- zpr%5={waUiZ3GYG<|U`%=UH5k5*rJBlOnpQ%@XB)Z~EWj$RUeqXnxu*$TO5;qK_<{ z2VAy(#Ckb)ma5s!H;?kBoa6>rt#~zBllEi1;N~HF$1LV6^Mo=6x~OR*Iu>{GRkSsP z--eB)%;i+fX&S}K()79hOWV*1DDEnD;*A+dY&E0SI-m=vx!|Iq+%N#~$jAS%F8Kf? z5bRNf-47w&=g?VjmppBBm2|B%dxeqj9S-3QEI79@UWQjPV^8DG4MEm>Khw4Y}XlT-ewjrMTMQiOvKflS+G98-@FIgHq9$_c9-4 z%r}^x@574xt{w!nj9B7v=zC~0=!3N;;?zii9~v@r{HT*^>j$XWO1D{}W{j}YEdp7| zR;IjUt;{+JRu+UPkKA8>D(IFbdMRuL0m>;8IY1<8^1La~;K-lOoq%|`69vqK_1kTM z{%9Fs!*<2~FLAJg^KE=qecQC*JW#q&J8~e6wJ6V)ePZV9PV2awMHd~*(gtYsG`xm} z(d2zo9Aw$FTnE;jHO?d(bBdJ-)lxr@iuIQf73);LPRE?%Gd}*8? zLpanLi&;)GBGT1a918QCjmWYVMwT&aIC>*$Q5#V8q0;0|r!xER|GIeQR8U-I_a(-kAfAJxam* z_U7*qKS7r{qjfd3Q-2%mf;3;Zo;%Tj6?*hwnwf@T9&C_`;) zV1*NgxB9h*^5jEd)rN4S@pexbe)4)q(ovyJ1|>zk&?SB$Ii0MDAw~_N{+J9|8i6+A z`U~??U3y~&^AdyXMqY;10PaSD%u-NW{Y+}-Q4dgIwK!_?L}%5+_aDP*-=yu3zO7X1 zwSFFNE?`7OHp)sQA8t7d57 zE=|XOn`H{EE4fax8++e7fha`>bU^#0JYN;oa`$ake757zGQlk-?YXL7z;|)*Rq%|L zKR0?k@eWJu+R)}l&fWRh6r4AwkGmTXWC!POJ>V81*ksf-WT;jDu_uZN z1nkw(t1=$6n8gvO;+|gRhU$(idZ|x1hlxaRc`*FmYbDGI|=TjcI=&F9HnA zrAhF;^PEC@=hiGO#^$(d{6%GMm}=4xe~04W?G!*|sprN}lx%!)5-m$Vx@8|sx7p7qtcpOG}al3i(YMwXn#Syp$t6m@_W(%vc z#vtQIz1aszQ>;_D2Nc7OPOtP2d6Mv2yK)Dmr&IGbRN;W@p$dXToLwcBe@ecHjo$ zZ}^>nzBMEdBQ;`*cf-Vv3n1?98g`UJI)Vk?!WT#eSQ@JziZ?^^W!XA;$0R zG4Pa0%jLeTQ3GgxDkLH=d}tAjKY_hFkJau(Oyq zQto?qe}jBMrjpko2PzsP(xu^j9hn_S8*W|(sz+vh7IUzCUgcJ z5|7-{9>KrIGTf@%L|1x$q1!U+Ay99*TU2t>rrLu!sT~Az3-Ire4D(2SR%g;Mc|F(@ z3$#_$$fz`|`urt@An3{XX206Zr>uV+IB5f#P1(Ro6E1GQA5F%AS)ctP55+;>m?LOu zMB8Y8#3&8q8~3CH7#l5-xZfzk+lsI9zefx^5ue~(0xM0INS#iaTYuY663m$gV*cx(3UY}w*0UkZc0A0(|FOHD3tu6PzmB2f2OWAHL$iq~! zo;5`0`po>N+i<;lVb{Abso$Q%{{zbZK(lfCq2cew+Y1tE7wIFj(HNbIz=FjaTZ)MZ z)e)NgIpZY#jlxO(ty*Nwwbw>DpQ=fhjKG{gzpfNeXu>@pRSFpU2hb#VppLqwT`D1X zfKRT0{valJ!cUGF?FEXv4p;`l3FzHozLecDK66FVKX?XmYMYq;DZ2~y2^*fRylo8b zUL`p~?wd}!L+%^=4-`!D{<(aT8!|LFE>HCyy31B`aOC=rtjSah9Ge;5NRqX7J0)H) z`RkatYlanvzsRDVC-;m$viqx>h&B!_)V&CjuZq~9d~kjVnb@%*)ca!A^zA{DJ1|;) zAbe?<};?kGP=jo&=iXohu=P}j`@v5nY+<#y)Y zuZ@zQSOq!O4?hNZ5tu#uu0KWZaezQg0qNUbI48G|d_ghBHR$?JQCR0W>ipUGYh$p3 zKFbW}m_s`{LfCb(iF2)GQm+sI1+$L;&)^ll^{RV_Am?)R6%~N*KV-x41j467;gHm zF^DNVtw+E!su{~v`aY{)EJxjUH%^u8p3}#%d5C|~C6V1N_{?r9zeD)G+F2{ zF3JlXAlB52PA+*X<7sUj#Uf+!k+OzYDKjM2gkU9e&G#QJcv3LxZ@BhO$Z8_yIoz_O z1TV=Ogx#LIB%i2jOtX0!m|e&vpQz5pXY=K=aN6I#PyXYkn5)a-9BZ}^>adL4=nY`; zk84K7B}AZFlLF##P~)iCr>^_@n6s&BvyW91m%wK_tRkyW%yN1fAKl2x8E9=dMNULh zb=5L?q8#mFP%z5=^hlkUQW@1ZyKPKW*Uav=J-VrqH&A=|9XTqSTO!df4DR$9Y2~h@HG)q{ zb3+bJe|%Vl<_*UGZ!W)n6s4<;iHF-QDxn|e5*!r+N7tW@X~FQilXG?*oA8B%P)8e3 zm9msmtJyy{=jIa_9Nf&lfA};yEf>rgTmSt{a~Wj{pl{q%azujqit!$|(7|5fc`rdX zzUu$d(6595xS#D*H10h+EHpiO7P-}Fa!X%mz?K_cMe;=VZeguz@jQIC ztvbHfZ8UN7cW@?pvqbb%OVxz9Qx6Er64KjV#+FaUbF2UKuP&`NEvNjQ3gYy&w{lS| zNm;mpa+Z!2&76C}dFrK5mo5uuOD~jPIgOH{Dy&*oLEfVU`s`xm{Q5O#RW%ZVu$2g4 zn3B{&6XnIDzxQ%|6VwVtU*M%JHrF{+3$pxa11PjpZ=H(YDP3YNCkmv1B9>HvTbF-t_}nD$yY4WyTi~sNr>PA(9N!Z8~#_;yv!8_zvrje;o-exbMnwe z$4p_u^(ysYK8&y0nQJ`kmnt=O)x2zQL444>sBqdSpCf|F&uX-xWD!3O#EJv0jL_Z5 zFdJmO11*SJTaNUjCRr^|8@M$hjbV-cmK2O3b&<7L#~LFXUAQ$B4a67P-KYU|SWS!+ zyAk_v8)`ky!4|OE7RMTs6F0ikp7W`TSD z8Kw3e3twUf!FH&AcH~-N$6U}gy#@nT3 zS}Bboge3gwjnoZh@4T53zG*=eZMUH*{=@*?YvdD}G6%59yLZHZIuLh-L)Tf1GZc30 z_mD%v!zxfer0ra7Ne_#MrD{Q;BOeZ8gt0;0xaPLP`xEdlRkF zrX&;mS{?F#5@d%O0l6wU39~Iyy+)j`sRo~ z6bSvDyBXfL{|wMTs88G#9f6UBeS{cK zz0jd_ZDT1`XLO}JZA#vQEx{g2mgKG6$z68m-3UpN2LbO8UADdr&;7N+uXKjz8kV(b z{bM|H`%D?bu2=b@x?0LpfnSK_q$2u>`&h(QwBQec`RH;8WQIC1!V0Qvhw~8|;jM{3*9p)+P~2=%L0<7UNwQ<%{ytiB zZmO8^@V8HJi24?t=?BQtB5elYZQ&lqTe+=9r?+IyI#+PI)7DuWZADk8$)(L$tqd8= zEaZ3HxKA-QJRPk|`f@*NB1+D5EhwCcy@HvM_+~D~?rjwILWCpZ$vYMmIQpOoh8*xd zMZyCBNPEwJCz0a-HF9L~$Jdavxo-C_NEgn}sv~a~vdf>^h9FpD`U$skhg`1|PI$kC z7k`nA?ZDpFf7!gfEE}Rp-)a9k(Z*xX5pS6*+O+sx?Tfi05N%B;OzInA5{|-_elSr4 z^{0waGT*j92S>_}eW6M^-+Hkm%M?#*dVvzl`Fujiu^5g+T zzO#L4d$WFNMx7td`q?4+m}ANZ+@hvOpUbRL{z|X2M)Ff{@y-?Rr5KX3eh=62_Dq+s zcRH1!r*3B&)!1E|$az9sDWq49dbw?=3+Xh` z+s|3L=#3V7fIBFi?jROxPVgkvZE*-ckwuwz=VIosOAU9Axc0|nNW_3?#LFSF@3U1b zNWs&E1*~TsX(TIdaSo5GDz;yVrtjO+*6JagTZmMGiyqrG-50rsqZQAYulSPkAZdGB z~&UiPH?@rl!-K->2hKF9}Yb)|eYNOo=^15VMunAcuGQ4y%c zQzm(Mkf+?g_DE#4;M)>(^7XU?WD@aZtlw(V??KrA#R=KdoE`MJEideUSyn*#r0z8NS_%(Z zGg=-)QPWBNj3L1Z>FZq-#1lh-&_(^6D#;1ihgn(H>Y{oboo)XkF8WS-mM)1^b8>)D z_*i8FYM+7PQe|SqK`u>Z;@NK24-?d@CFlxYBjMq(X-xO9)J^r;CfELlU(J&IK%MLM zSxarlB{-hhjy%hnOy+aVq)rmIvTzqDM3=nUygl!@#qEH%Zuv!lA2iH1{_+)XWLNS( z-pJnMe^nTIrnX8nsGdD_UTU3 z$EsKKJq#FdrDE3GHQYwHDplii@N$&+DA0D11#_Hvcs}%a7udT+bb@*%Gad{eg;+uT z;_#T{n>K&NXiYZ+J~b6u)Aut&jG^&`@BRu>g`Fj`Y$J97m$MMqG6Xe8nQr5Us9%31 zaqLpfGe{{XbQBg)mOwUxKZJM@%alv0OtIilK1R-wyjCF|3#=y`5QdOM#uIg98L0f< z(CkPs5DHO8)*iAe58*)Ep0)b{u?AXgLJh3Vp}{n&0+HC@2?zzU2Vem411>VE#4*k% zZ$Tc7Q$gm8EI{!_E*UF=DAOoG6^!%2bENCzJ~ZZ|^`Tkb>b+KLY*|XNQ1#>;X$L+a zxFs_b>#+u;A#h=9_op&-+98eR25ZDN6qytYRUm9&6jaih#P)v4C@R;BS5f;CmbR&Q z2@2P$Xa|MTI8my45f7|Dw4rV*CTvj&en%H?>lOMb22zfM!se8JVOEiI#JtG zYDD^N1uPUj`D=k7UD#d`N5KI_SSQXE5vI8hur0L=#Z!@>9+*dBuFPHZ?@)$;R#9wr~m#u?h{cf%Qvo=}^ zjPz^~A4D7Swq$}?az1i3F<0bwN4!Ds%b3B|lC*y}C8#=p?0@;+MplQ=CO#t85_Lo! zkO-=Ru_tbiC!#HS|IYzP+GUhv(wej;$O4vRa6ord8-MI#k?VqJq+Nn*X->+dH)+b= zfowLbgFsu!>CV$IkEtSph0sLV z7WwuWOj7Ru^TeoK%%C@zMw!X~UxlhjGXMAUx|AcvfG>nL?SBRRukzo`q+F~a9DTP# z{(pV$fB$cVx%ONZG7L^*!I`u0hLKQ>RKDGD?;Vqag zx~(w|^S;&3kPo{z#>d_`R{UiACcKBZD!eOhmR#}K%URakYdS&=B*^L?^%~VVEl|}6(GAub6Pw^I;7VN}Eu2c>^{uv4)hx3Rmr}cNP?uWY zGF>A)17}67ywFYxfe&M97b z@Ygj&Wou@J(cGpP_WE9={TscyH$5V&e?iLAY6kc~4{NFXkar6Q$Fh{GPXW>SP|wzn za3H)8IN1Zl4K?j;JCh~bfc-0p&eU^+0KsH7P+jqBch6o1G5p?X&##h{^kPDl4aHcM zzBiQ5C5OZV9;x{h>a)g4&+Rw%{>M!ukS|nwqHH|y^^Eww&h^ga#9%j3ErU=CE^{bc z1bbt3F3Gm_qm+}XZcGsO)KQSx`Av}SjuP*2k!MXIMCW#Vqd3J*y2O*bk(ogKixRD@N*LD2D(44 zDJP2)9JH1yk6@tF0coc4v`ivu*o=rc%mn@D*yIWYC17esKJB2d0i(t-B|$0?8W5WTVJsTT6x& z)DDX?Nv*EC`7A~o;i*-KMnFZDFsYjPP^q@FlF)zn*m=Q{L3mAt-dc)SZ8m3cl-+kp zZ=pLmIDb>Cw5{%(FtbWF4n6&S{8T2lxN2G3@xEwTGqAZB%k+hB2QNg-?u2s062W&9 zH^exXs2IxQAl`=C>}FM7$ljK)I@T2kKR)djDGVT# zKZJn*IT^+uS{U7j5)Jc(+4WPOkMUC2L%ADr4{3yDun*0l^!M6jahoxWE6UoAg2M&! znMtmj;O+xV;rINp<^GS5&h-L*kY|~Y&UTqMvwls|W$`Kr0QFXc5|-WiljVL3jH|Kb zRcTu&jO*{3$Mb+X(TZsKO=wGq763#UVIc#eH6a*Z0CI7qFU0l5_dQbH*w;)VF?Em3 z{oyEQCUS3FyQDD8lbimaeBX^v-t_EuCt4oK-Mj)32vfpxw~7bp#U*AFe$(&o3sAyx zm=^%|z$s)@Rd-2$y?BU(5JouRk{3H=^nSSMoyj*&;c?d%+I;5UQIMyPz~~ zaX$1nIU0ohIR~rmp;21T`u_Z-ITPjVr@#^A{N5K4;D9z0;4Oyd7_SBW9I%djCg!1T z$ve0@j~HTCs1Fl6PY|*eW)Oe{M=4 z1VVfWG~nL9jTrQQm=NxQEO2NgBn5t*a9#HQ=|s7;PwrE_dT0=M8`)<8Uq+3%r1!OtNlg3u3np70p|Jmoj09G%ROpOGJjhh+E(%_^6UKn_(=|ZhBbtV4V{LC z@4st^R4LFe*U@})3Htq z$r7c)+_#~>Jx|yH6w`;Vsp!RJGynM=-(8F2ZVGbQlqj=()yB83qkoxSS3NqxXqo(m9B^;aFUZeh71tH}72Nize*yo3=9)7d|two18ZGqfHod6n5Xl z7ItNi1~TCQicU}IU zuj)^ukAqiEo8FKU@|&5gtMex|AHy%2yswpOl#jE~w!reM^N(2P*RC5MJJx3CC|)C$G*XQDAmc)Y3tzkANnX&IAf=CJQCzUE0MjKvG8DrR>H_bH{o%hh0~b zX;!^=S$Uf~s#wa@_$(KiGmkxO`VdWBaN?xdxVK59Ab`PEUs|3Z!0M=eA027Yt5)l%$M?aUwNS*;h;|6$X8q z#F$J_vL}%e`RwcuntoSTsPX>?j6ie0C`mGMr5IFV#>r7q>|9l9ovzeYC>JQTPFEhC zRq~*`-P3N7YUxl;sXB*x+;O6_T5r0bH^5Ki#;roiOsCFTBc*gPl{X8;KC@^d>tHFH zKy;ur)-MIq=t%C zhQzRIdU~N?=KXRyu!yiwFc*(nHe}!lu1ib~WsBRp+;Qou8W&*fVlKa678CQg?3ku> zBA3Y*EZeq{<3*@`Mxm3|3K@1;!s$doA?8_Rwn}AajK(lVs*i4y{uJp!mmIz>F;U86 zOuED&YmwzXW~K^A_N7?%W?>NtM?PJid}L1#m1QJLezD~vT^&QX8OR91?Gn_=TrDe7?rckCp}x$7p+XTq)}ho0$om$TjN z9}^@Jr9uJHC9x~aDn7bfa?|bOhBV)4bOb#!=d4QBc8Gm_u0%Y>cKA8jL0pnDs6?V@ zE66&dfE6c}9f59`THY!44Vu|x+Nu@{vXXEGL>r)`;*70;-b!|Nt~RsnVuf;TG+D*S zE`RrSIi1=SD41Q<+PRAwKWL`Xa7VeLR>Df1uI^IjZr1h5iG#bTxGGky5uJO;9{a?+l`)0wfo2jtLQJ{jKgG0bst0q045Or0mbqCWRlgiZ z{>Uyz(Ks;eJFLPCx68n33gFru20f>0w+~pbmK3tg(-zU-&IyRkOOQ28nSV5d3K)b~1BPIMZ7;)Tx27Vl(>xU!ons>~+qK+SVFkQl2TV4a=uCC!C zdvp24iJSxb)J{~W;i@w7nRg{)D`k~?Q?csgBv!N}QEla-axEhQjZ{>up8_~=%ejWf zD%mUD&yy4LWW_^CsAYP3I+aZo!KRC(@?$x>m@%_R*<~rFWoBuhL{Czt`_pC~ z^QGW5z+~1oXRXmJjZ4~s=amze?WNI9ZeeH^R1y|eEo2C)PhR1`yu;SQKq&>Lr8(bn za(eoJnK%g<9ZXqi;K^vJv1EkRShq{nS#o_-jUO+X#S%J_v;yh`Vh@{{0PI0nRdCLT zW!hM)O{9V{mA=p7n8u)l0wRIO9qQnD)Vc8ttw`QuiR9IjoR zb7z4T<16RWIx+z5lYT(1>S>S;Nx!;cfj(>2gaWRZPdfmb2m`Ws8IK7X=28qSKohrF z49;`b-vP#72*4^&6VUTq5LWeyj1@b^0CMI+HIlq?H5TjsDr8SSj|qSsqI5{?i4{0K zMtd2RpdzHTPTsr+=dp=g$Q6>9S+S{1SYpVgt>S3m&Ut9ac%D#lHX2T4Ptsg}(#nqK zN(I9EoUk9yYb)0k%Jr3(Bu0G6{wz7P@e-`iwtaZ%=d1B{d65yP1qOWj$!WL{Hf-5y z#q`eg)sQ+US*#2-UyaK62$VZjn(~eUwnTx$q3mf0#=qqjL$rU-*$l6+`4)Y-5=BQ# z*&>vO9J+KLG;LGrU?G=Lm~rSsTCze@2Frp0!b~jWhAq?W7JT2$gCZSUW-pL>@*;B+4dIpP9tk+7#f|({w zBgbJo{qsunSu>@%Icm(q_1LzRnMp5Bq>AO}3Ptg_j1z zFVA!pKQm(${Jo;_P%G!Od4?gonkEcCSxOXxc*!poQgicxS(&_|m|3~4 zLZ>8g#8wf3vQfEFLkC=hb*9+vEOBLBCt>>&J`d>P5*2B0(sNPMmY*7}ALJ;|4CUiO zDMP!`a>|*=kuTfXE#)mHQrX3JxPxMEI)ygdhurfMn(;_7Y9?-nPgHfvcF_)<9PK~J zZ72jWJqo2w!N}Y)3K%cV*j_2MTy#3)OR8S*vifU?9V2-w3vqF%k!>6ic3<=gD`^$8usC&m1ro* zNAJFL3D0yfH=IkHR0?CCRD-QH-He$|lqLJDL@HyZt41Z6PCLRlmPyNQs9l`wij$CB zrxn*}8Y+q)FHBw4bT2j9mYE@^Mw=>?8n`Q!S0LP6uCS;Q^0-wD(Kg0C7iTsY06C6R z6v&=bF+td0p!W22YJ(tSL z8O7P*xYLLr5mjRq57im&;byyU5lk;{yo590PTH4+ z;yfglN^tiCDQys5F*uOU&5*5@A)!X?juFd@!`4C((^77>*iN%VMXuvez_8r!tG+qg ze@9F{j5?*_`J9*eO7)Q(<%v^_<}EqD%JH+3?j~Ox&J~BKG}&+k-hF}KVO@9Rp?uEU zL-rKrN<@(yriX?9%}SmNM(8Cz2=Hug4Ed4;_9~iC3#!wAuO+3<-)JB4Mq;o zYSZJupG@W1Q#zx1*ebSDhn+O`0jESSjIbbj z=Mg~fz7l83JSv=44ez$<^xEh2$A+!I{TbJC|~%_f^ZtBiq2^D(NFu$QyFJ zP`L{$^IVk<3tM6Td6&D6@i2B3hCE6+hTbNWA*RdTF7gZKK`Wi7_Uy?##pJD^LW(hrO(*4Uz{AYC&=3i(U?z%c%U^JJzGX;vbLl@4u&au> z+s@UCxf{|;P_wWepuOAb#nfJ>3O|80&w^4j@1#^7NqI@1yz%%ls9O0Ut4MmDyr7o5 zk9`rohTD!NkMXdf?Wfu ziy?T&0$bB*isi2^3PrV*r2-XxELZq9BQ*7w7xt5>E+dco zofN-*bgPpr-GnPt2jl%_g?9@sTyjBdNFA`q7As-3aidjUN=bp<#L9UqXFDQufRc>W z#+OSuFd4c7r*jE2?IdWI8~mCReR2x2pD6YDR85f$!IWg^`CCv1>ReJ5r%`!lkLzYBP>?}zLK4~qgm$S4t8O^2_ zMNf8-UTZqPMMV?7ggY0KEG3Z3Pxqga=jsFxWi2Olr!_NKjj~qjkL;*R5*o#N3*@Ey6lqrZAN=GI+SJXK;aa|u%F~x+)i9TR$ z&Pf52MtGL!FMaPQXXH^N%LNRCMXp!^WQYWEl8jFRvKW^IR79Ktlth?N>{8tlQVA|+ zi*{fpeN4YebclOIIpY%Fsqo{zwtL-{WtlEjhB!8nPaKbldC)Nx=d#>(loK~jBG*I< zY0fF4v=JZx2yX2x@(Lou?H0L&uzS#Q61gV#))EWce;OJSyrsGK)%6UtXDK|Pu;ihG>oK_38A z6xAabKSf=vEg z9SBw|kNrz`lGV!k_uxg`I?l?GWCNRf^&*QTK_BjWOFZa+=jR! z!^1{uRfex6>f%ajX)m|t@TXb{*+Ptykx41#p!m{Vq*)0Pu7Vn@u32#dtNRR>&axS$ zxgHq~8A=}ci$be&Xo{u#=h?PsNcKX{w;@ij6_M4oLo^oW=GbRtxRG{dA>*@~ZGlW} z!vJ=nbSIvU70R@GwpZtHBChUXG0rpN;vqd$Yu%C4q8d& zn8g|??4t4oqNN|P^tf{9#nsYho#s$_rGoOVV!gvtFAtug5!#05Ry?o6vtNjYG1Qwt znL#0TUCPI7MK0k<$~U`MZPQBiZt|59YpEY+kn8hVS9rKHpzcz9t-q{^{+T?s1)l6k z68?JZ-C7dv1h`ckL#Wjng1#<}r*12HM=7nAC&$`rIh+zQFDdgv(=ZL1Ef$2>)6YIw zDqoT*JI0m_m@0i^+%m&PMJ7Tc4Kv#zJza0vSQ_A3&J-z@X~8#V7%&Cxx*N)7(hSSj zV#SwKl0v&Cn6i(`kl*V%^PIE`IeQhV{O>IHJLArWQn$np&m4T>i`ox|KDuYL@yKA; zVG)9eYYa_`)*@(GPhhOZ5b=?Q_3i<0%!n3Ez8&Fgo-kRk_{2PW$9nnw=ANGu#BRxDFCS7p=nxk zo2aeVP=@=HAv&nCEM!^AT9%j^AEqXXrsJntmQxMQnnu;yM4PCor+lHsHpZZ|@#Rwx zW@~FLing{wDzUIYcQ>}yQWPWRWAUX2BC>D0NyKYK7})4qQO8}WBOW=9?`GLA-%}q6 z#h1PoU;2|aAz6qoJtnj6i=sDeX!U-u(I)Ds;OFB@--*=x)O>fx9g!eb?c+q1-HAceqZD6y;j%}_VdMp-+b!u`P;@Ua-EP*&=kb3Od~J+v48amG zA{d^H>?_tIv7uSXN-L9Cn^segTvbZH0wQ(t{c?r+#TsFe8=Z`3M7o+-GutU3CnqfN zS42XJ^B+lN;C>v{@ha$_uZU2`ZzE~!mx(<}IO06knELP_#$$GHcx zm3p%9N%mD?*&=D(iBMSj0JuOJgSP=--^=bHz7FM~gXA`#L2$L<_-;Jw>X|kVL@1)M z#ltO#5SoRyz~{!;E7jH+8jE$UxGJKrG_(zpL&t+J{Q-L+;sss>&S9;H?}lIXd2qBD z4YRpK0oF;d4r3gHy8)(2VwzZoHz~tf-h>=o=I8($CD9+Sr**))<^9KPEf3XRUd6}j?8jx5$v|TA=wBDI#4VnPRJapGO z;21zj)R3aYxY4Aa#bgwd!gBw{mJ;`L-q+K4#-x3iG)pb-NG-o6QY%dit!@lOLuBS5 za$q5Lz8b(#NHRqjI8He~f}z?d=GLYATbAyFrt^eEQ>`9B;iZpb9yc)J_vx$-_t$sm zI!)ruZCbQm=UV?N7b*|b8zC+qZ7Hd&W#IrdAt9nr$oR4h8($Zxi^d0IQLqCos3nWQ z#OqE}9D!ynP4+Q4Ka+xnW#NW;T>_Zu8vQlltRY&APBbP9(3CG%8vaV_nj_(8d@6p- z?RJ>#6O)AEw{=4#;uLUZCRxxaVK~6`t&#d@`~+Hh1}>djKuoj4x8-^xL+PlK(WJNl zh-pEtXGl5XLl{TYsgtwW(zo@sKGktNuHz@4c@1^o1c<=hD|#2a<}NtRUGSQ_fT^aL z#(L?3CmWwkx``L3z2*v!AFYdMYBHcnVIPJ9K1d?S#$RG3yEqwH2l`)GOLIQxj%YF- zqBy?vFv>|R$3qmyPf5%vi8vMC-O58Z!WuE8)@WNW~as}RRL|DqE$84^>Vy-^CD$8EduLFpbt>+wXl?dBom9Mc#WbKQ^a;h8cFJx zEpu1tn>>NQ?>2eeLdsF^zS|?sM15oJ&poEW?G2W-H`wTk2nnb0LGog?eUTXV@6?JM zI4ycSRA^O2+rwpT5Bu959+mx#{oLKH(B86!$I2QW^EW)!;0!C^F7hepGN=c#QN=?= zI}>H?OhnYi@=#=h(vRTsnumt(vs#bIKi_yWF+5f6L<=+1993Yj<`i z1zB2&`1QB0{L4AVL7(#+^f{~mc;C2m5hEbY8_ilVr*JUEk;Or$oSIBE%(;7l*%+Md96}h$LK3; zBj%ey=Xq!OGKUZQ2X$VZ4Ul#r?-2^`t!-6W0UGO8)rs^bT3f(^D-1Dyy;Q&J33jGF z?rfgh;W=#SV!c-?`srJz-_r8k`n}QLKRb2DmE9Nak9IsV`orJ*#G@}RJtVFdqGm~m z_Xr`vIs&ARj`wuZcgi&SDCEEVkFkHg>3f?C$)DCVZ`qXn{OoIA+4S=I#D?#F(tPvM zhi^Z*_SxTk_{G2c!@KwV;D!IWGjsPZt^3{s-+br;g&`~Vov$8g`}{SJwI2G*r(S=< zpVVD{_D!GuhofIP{>90Z z7u)~$lNUD4f9~jucm37R{<%inM*r>?e>JURrK83iAIw_(@2AmmZ-I|mGh&^0Qkdrh zd^*Q_UG?GHHur_iR^c4LM#JjZNDuSc;5-EnQ}76FCO$*ZW6`iWh@sSz6g*48#~u7J zJ={u&KW+&7c3a_%wKQelNI4fNI2TbHJxr*@#;|XfM7h7MHb=CZ3Hz-OrKj+8$aLvd`q5!EOgiSsciBb1U>|Ga}aFQbQL^oZQ*eufYJEVs~O>?IzfiE20T zij|u>nvL(~od)!@t^>Q{HY!%%L2GzEH{^Oxa`-IooIk$7sFlpJ$A7?^Ny;-`@-mv8 z?s3M;AJ_5eqVV=0`Mv5$`r#;53H0JZBOjAlJb`$Iaeicjf0gCAqz%fmG6f1JJ? zV@Cft?zsEs+(w&JlTd!78VzMr*nPYlr5)q*C>fyxC&XUa9}!mQ*s@IV5O1uFtwH27 zSUv_{2Wit81Rb-|d26i2zp{|0(}pHz}`lc#(n) ztV!qi1WxL42oq#I9WyLlgpz!P)o_Efu5&S7lemt04G+JUCW2F3VT!^&Ko|lQ|c^47$s{P1UjgEx15S{e(A)-dT3m_ffcHWG^KT){ZnKR!XMwR`2&O$BP2zWxSU z#z6nX7GrD_MG;K`?&}}!pXf)TXQFqIyOk)}#au?x=W2lj>1I@52LA|mEB$1U*vc4m zX(O1rGVi9nIz1)y1LPCNv5{de zcKi6~VZ-)c@-()2!yqxiyh@prkJq-!5nQ30>I%{p!*(t$87G}vPCRsPv_b7MnD8!J zaBs@Ki)n10JDbWYJm0Xr(IY~aRFZ~!_0l#L=2H-}S+F2)J7pChe;3gyu8hb z0e5~wA6PRfourYNJUZ;vhhUR*X~{qr^QB^7O};s8I9I1mVon6~avtzb%=Z;;89o@TjB+TuJ9bHyp=dPWd-5oQ#x|3Z( ztkcAr%KH)`f+@qw3h{bP?5zAra`pZ3n}a?tD)wt)_vO?L{A8%ut%>cGwJWZv2RGZJ ziK;tsWtSvxzQk9%#jTpyTS>ux=W)Q5XpP0C}L+ z1=X$m*0R{6iSEjZ<+qM*4*u4+*rkcCS6vhJ1~t)p+4WZWYPRUt#BG;NXr)g{ziKLh zpL`ZaH8FD8R4(gN&4KDzNpi){EeBdeW$hI|@TxwQ9H^0%L{|9Bz1XLTU6-o6(ucCe zUQO({ROR4LS&LgVvFB1%SN;~YsMACZe|$x3;LS;_(SNhMCY7Dd1!thnYXdSGrq!H0 zok|8)q)*gc6_63O`6IDc2V_OmlpR-bFi zYmq7Knl0KLFCLzGi^zXF(HlOt8CGT_@hVu zsPX%s8+grl@0Q=1|L(V*S$urQ{_cTy9iOt_Vg2kYH(o*8+%Nt3>Yoa2WQ;bw58z3| zRiS=Zou;j@?P=f(O{NvjRi$$?Z=6!Q=&7t#wAJ1mJMzk+ z?fK-47$5BE+Obn8ezqP`{GiYGeDz_MSnlr1R9m1`TyikW5zZJu~dnt-gN}v>2DCvu@hKt#Jrq+ zF}O`}hZq;r2>ZoRKtp0w97cKw;X%Ok_jt`e{+s-Fqli|>jc-+S=uMtp!DSz}dnS06A-l{S;@hv8K*Qvnt=)%V$ zUw5G%$%`z+W4Wy5MTeu%#c_;`BenKG`s3gr&sQA^>S7)B`n0-gDETtP0BB8ckH?_R zlB!HiDtsSG40EY|mE&BX@kT4bx3`MwB8A7l*V^TCNG+Mrmdmfptvgr zw%5lzrT9Xx!R^o}{?Qqx|%<8^ryVP!TK}Cl02>ETUpo9k45IxZfmJ{5j|7xyttygMvitRY@b9uT^msZ!Sq)UGX_}}F2 zRi4n~wdi5zMl}9z7k`h|exgQufW5Nxn<-w`$+dkmXgF(Q`Rxbqa;>+fUVW`gdxxlx zj{InY?W<3hr+4Dn&X=gE-E}BGg}~-L`i=Hq;)Om3YmJRMwt#!@4|nbc(wyJftf{Wr`REOq5cl+e|8}xjoZ%YF1F8|!0tr3Zj_$^ z+znb?%;Rnz^B$gm={oX^nyXgkLyrA_{{1`t-KL2~M8!S-(Tx1(-+#p4{{>J>0|XQR z000O85+}7z=gby}=M?||llTAtCIA2cY-wUIZe?_HbYX5}VRB?KE-^1uX>NHgQe|^= zLu_efZgehqZEWp5U325Ok?&V^|AD1_SWnfiy_>uxUgb2hH{;ECJh3#%Rb5@(Kon## zLy-zW*`uWPzvQ>%mt8kLNbpMnNsy9l&4Wjxh(>p#yU}Pg8kc|gy7HYz8Zj>nej5CE z{=?u8!~gt`%X#R+e-8Y+B#hD3%-_oI{8>O&bU5{b?fE@r@!0oh5MN&Kr?S;WuG!@Z zzCkxS6!FNxWXen23kAbmTgum5^Zyj?uOr;ICOE_@1u9M{0#;0g5^Ck~$g%tr_6Obmhb$hylVc;Q?^x^qHg$&<&Zvmidh0d6pYA9s)74X~!!=>3t#V1y!v;s4`)`0ae5TQi=QNkA7G z09?2ZHY*yDIE)IM^8y$_FNQhi!lu^wlob2gZF`9C?^Z0`u%TiJo@IeuTwI(tn_Y_i zUD1V4VygFQD0lzx)-}y&10^Y<$BkV^I_(U$QQt6aj$D_nliuI)$*((sE2Uq29dSNqKXF4jCV@+R011$$;TKvmd3K5W6?Kmj`=Vl?d>^Y; z$5iyJuOht=u6U@(@n}rjEu_IpyHokAoq!fnhio~SjVVXl1=p@L9n9Di+Oh+mc zw#eIH3{?P~NN-02HX)C6*NBOz*>_cwgM|T|^f7X%5269rjFhK)TdFC>bewR`U~w2V zoi&;Xl%=@=#kuw-M=@b^pW@*%EuWSU0#Uq)`|EFjb?SJc!W0f$>6OT&`}mPWw5v=KKNeE1h5Ri zu}fen&S;aTq4rbVp;WeLo`R@9vSmQ54D`D=Ue_Jr(e4m`7Uae7xQ4wr5oho{|Hg$m zWAFT%{q}(hDCZ(t!T6VZ5lN7bb~l{FB;K%bIH!9+vUM0RnuD1jZ#vW81YRtJh&jXw z=#%3GEXKJGC(pf`qxk`LTvYkS-a~4D_fFG~+>~mjZf^^43RoC?Tt1%&perZIIV(V!57F+3=#@2uV}msL8H((tL;+$djjzZqzyN`#P(NNaQq16%nYSk=;Tr19`PoMFxw_Y zOY$4h)2(tCP|SyIq!K&LxM{Qq-dzxvI%(66Qh`$V(um#Cxkskkb^WNTqf8&I%B|@pL#M&c4_>`2rIO(@9458lJWVsB zIvc7{kPX43fTgIzoRVM?Q{@ZoS6Iq3&8#cj*Z%i z#)rbsS-FB$edwTvWfTYoc z#&`m)cKlr*%`BvDrlj0h9hE)G4rs6Ds5r(`!oIwtK1_=I)U{7Rw(wcL$AAAT8Dc)D z#EIc87+Vs5i&bv$u+Rs?N@qAE+@SeKVd!#A@vg$-)dPD*K z-11a_!ij|BUC;@1djF~P9q5{@N$~4otCr*#APJwhpgi-Ff^!R2fjrRX#f%9J5CwUR zr9CS+m>ee#Q}9J6^!h9OSEKSv@;;C4&gTy3spoGonZr+vW%o8PK?C#T@P|TPlX{cY z$&IUJ3V{KNVCFR26-e3-hL}g1eBBqyPG%)B6@_RrT6StwXI(GzcDBpcIC1AW@VaO2JU3qM)SaQ!*4#ZupdC-%<%r|#&3~z$ zzFTCv*R!(+n9eJ$HQ^h=SXECm*CKP?W9djWu-_%|z?$>DUi(i~i?b;^CApzSv&+uC z29dBSc!{&H$9K@_!yt|7?{HcRmQT&&^$&jU~^y$E2z>e|1jk6(l z%jvW9CJbabl5}yQmgiG>j)WZeXD8N*ior0UM*=YyW$KeP1MgWZ6VNasqw!Hqs2o zahV>{HOyW2YDw#1G$dn z)jTRT2PVYM0dSp6Fi9?=3eP>4Th%Ph%`L$UK|3S^yHP-x(MYH%ze7WQGg0m}2nwE? z7cJE{>pZl@u;!O>3-;{3g}cy*7bQws@o#onBSRz&%LSwtbxRC+ZeUvCrfH#oqQ#ed z@1it7N$FV0980%7_aHO5wTEc&ElVWE%2GqIrIR>b*}Y<4sk@2Mzm^VX{X%aA5MA9d zR_I4O5epCP_>zUKJqej*w#^KMt58J>h~PCg^HtI052mHS?A<$LxKs7{N1OY;`-g9T z3D*}ovU&|zmCXiLKZ?9L%~gcm$YbxKZlOB7w{wfK6B$DJKx#RqU*bNbL>x)Xtg8e>43{ z=KhEu{kC@LFZw@?-Eyt5wQ?9Ak$4JSD6HC6#mHa@Yk&NjbYdxMw_&_!^qMq%6pHDS{n%y6{@Y+c?j0DyBG^-t=w?!pX|R1H^BT8w+|!ig8L_7?@QRJ>#c}?V)uchU9kTo?tKLW z;Pc70A4=K<_fNuJGd|roENwd)t#5v1;?QQzI|ybg3jgZG%MSB}NomF~QaZ=4K=zSl z5A&9NmnVAVB?myrik3$IxfcJ3O5=7N8j}adRZyC6kLqX$ zUByQl&@K|Ycd!nt4MX4XOcn6ok>FYQ2}|xrl;KIO+EchIx^0}+DbX(Gb;b#3)0|x$ zQrdQJyY%Aa!SGJc1XXucr!QdsJKiWDFL!qZ|4ed0Qw|S?!U}4S9L5a;uZ1I@I@@p) z?W3Yk<-~J4Du+&vSyG7@o~QLU8XVe5GSwWy6wTU+vL+fjQ@9Fo$Rxv=N|Lxx1)EEP zxqKeUV2BLe+(;BI6KSwdDy~%4MxxQRqK)ooF7VwwO1=X}b9`^TIV}=lb@4yLqenR5 zll9sM#R#@eCIj90QcW8s^7sda-GZg|VA&e~9EGbZ5)=7TLq`=4jIIzQkQR#z<#|QM zHkpq)6LkjWO2#>7YU1HetmFLT3=&i>Fh%Qoep7vAA+|o2t_5~mINVesu`=O3Gb{rfH0|&7@fKVZmUFWZMWFHg zbFopQaF=|b#kvr990qB?%W|x%wLU6?(NZOgo_;;QKD~9>_G-x1UY(sIW!8$t9qZAn zE(mOL4#heiR<>w6!K%i7Wf!B<<{-V^~!l=h1MiGSl%;7*-xvI~JBzALu&RG*pp3c`O{OOfc-kZ)lf<(g{k&DMZ$L zw^8`5bEGVnGwT%JBjccj%1GTI*R~E>r>)YTnkR!cG2p8y)~)LTadpMR4+|E4ll z`b{@GnTI9F_CDCbsjNfp2p>Yg2niiHH`92RyW0Sr2=82%F`r6s$ zc|~H-iygTb41Q07hYc9mw}jF8T`(4b=`oD!CNjMW8spD*e3)=4wwwrR2j9P~t9Y6|)cYDHmwiaXnl;SsSY>K2gkCoDk6Ol2?*)yR!hM z-Z}zbROSuwk0zNkI>MIDWaQWmHn!DCj0|u8cs*^y-{a&EUQlO`MIY}bFPld_9dNbE z)UsT{+^HX<%_X`(;9 zL<_w+sDW;i}ram9lv{l7Fy%dL2Ptewpvmn{eX;& zq^R>S1x4~+o&Fqwf$mHFUY2Y%J4)5Pa9vTK#?+p5zPf&YJ-t41^Q^w&E0-7Z(1rj1 zA5cpJ1QY-O00;mQC$&y?p>Y{Bga7~lJ^=tG0001NX<{#KWps0NVQyq$a%3?sGA~qV zZh0xswJWv!ByhQ==0P#feLWPxeMbY)Z6%-;UDk!e^0U~}?)%}hM;IjYk`~QAl z^wsOC>aMP?uCDIauir3q!i`L2jM?D&;}6E3W#X@f{pY_%xYBc52XN}||MWLl(LimFQkM@f0kUo7pDXovSK}eZ9Pt96R|c#kHC_m`@?=sG zk_IQ0EJjiXom7y70INV$zm*`?MPfEly1zi)_b9) zo*A;9=~T}QqaIb%GsCE-gBq%fK|+I(R$ZREuvbxm=&HVP`NDUR6I6lc{| zP&(VbMyrCH={BtcbfRLzat_6=LH{|*Cn)h&z^v^GdE+qPJ#$eQ^t(w`<881aJ!hYj z=j>zV?5(J>F1uE2tz_uQiw-r5lC2zUhV*5nb`J2eulI=t#@j+3XeG2RlI~av#^BIS zXkR;QpG$9_hBp-(?NHL~T5GyHv}&PIj8L0aPIsr)7Bz%Uv+12i2_V>Yf?X0EI>8|c zPMzSC1eZ>5NrGD^xFx}(6DV<>QahMq+XE1WD=(2I#37}1#Nn(aQltpFzpIaO zu)8CX1|+4f6A+4(dPL%#F>hRr~OX4kejRUAd8-Xo#xJ3T=NWh%b z`n0B?E9P*?>I~Dk4Lek^P+#2+`K)r7NT0U=l(JQ(gf(bYMI$0aF(RcWRGzJk#L*>h zA})g(xK4n$tR&`BELIbj$a&#XIWPQG#OqOL+Iccw&!u=h&xqGf5wDS;jgheo?eaOJ zx!hMb7Hy!$&%%Bmhh9?A-x(i|M(``z1f;gW)>q`X>Lw!l902Zk z7Ea%Lnmq29!!2zjXir)lNsa#nZn2BRJ$|lP=>Sn_!0xx7tX78u=v1rYv}%1K$$hbp zs|_eah8JihTd{`6i0j(+#MK4^F$o=$)MvCV*%%zv*mn~Vbi9d*;>{1fRU3W=N*`C z!giQ)6kwl^;~n&Jh)GAA3ZSAz?PkaxNy=`rrL$o@e{EJz_u8Op&Tm){Ch>?pJ`Llg zoZe1ZYens9HCf5#g`4YeL#@-6tfzW1J?#vPitAWk$dmUPlTj{3@v{uBU4S$801)HU zCgTiB#OX*pvl(#)62~_qUWmjCnh|Frah^dGVL9*SIA!~?Q zft~9q0n&1t#S}|tk?F#=aFw(65#UtV7tE%mL&UyD6j8$?VeP8cosD4{J;a=uE<&&K zqjSL86z}mks-q(pGg|Z22lSbo5?2YX8lOYa9-8T>OjT5TAaG#&9Oc7g`C7~n60{C_ zsX8&$3(OXuYprk|B0uXn=VNh!ELaGjxH4R_0GO0qGF~a*-tfVmcr)^nq*=O(?Ln?=H&xWQ84Qd!}3RN+#i!W2>AQnNz6z6@F4ZL+>QWPNwa`tH)} zyIZgCc1wM?%KC1h`ffGqOBMCqYOT+~phNJH(5KX)`y_(6j3Q4`wM%h~duyKn53IG@ zVa;?It(ofJN!C$ZcP2uu9%ltVJ02QGC9C{LAxANK0D3{8pivstl%8+c&xB? ztfo$%2i$CKLZnYMKl^2Wu95wDpX|@IvOn*)^xkUOd#kATRvW#SCVFqRb$-_62c-N* zr2NOE{0&n6qe6Zo%70kOUr+KMHsq%Z`AE>NFy?<7I}Z0C&PR(*nEywfbpF?j`M<6a zyIigU;t52+=$E52EH-E5w@)%FKX8(@z-1?{1xB5GEua}|0jYuAs)6IQG`Rm%>w@Zu z=DOf77whTuthz~0FK6d|pS&)}lNwa5eVxB@$VK$YnSXAQ*Wd^IG)!*PGJ){CKDopJ=4#i)W>K zSeIQaUH56+Ld-%N)Xh&?q>eQfsrTc}mUuueHtv^q!fA8hK_m5$ky>Y@)??}~iW<}& zCPCT;yxFx!kY4q6x&B~QE}l_vFE|_ZQ8Wm39vg1=Rd|~GDP~S*U3*aRGSMFV^Lm-T z5IP97dJHAuQs^fksa*?0p>_)Zl{P-KyF|zb``BQ1fNDV> z?Ma+RYu|=kHffzYUM4rxcF4`K9DT7%iCW!FwSS5ow|B(W+Iup03q5xWDYd0e zXekM~I)M_&s^rN$c_*^+B`aSnxo!5K&e?+cK*p_fw`+fE?&weo^OSc1AAiO0aU^fk zopqbc_jjG}cS$Ib)t1Y`MSe#_T1WJdY zjzSfCq7<39gKDpP4TlTXp_KOkLftjE)n~z%HN$T-aqv~>WLsqmrEWV)K|~R>VBHcU z9}%GB>o~ODKy}LB`fp0ccTk!BY8^}$juDDFJW)mUUn`7InW7LUQATCTs5T7lj{lJ5 zPRerCsk7ib0XdF~PQe^+qPFFfqnvWQg+nMqVz&4{aj>Tu=-Z?@*eyd$;M$Ky{81Tn z90T9=0q-50pTd;wT}DfFOLj%2=So6KbZPII(sWrZg{+;XtoNm?_f92iBxYNHuA=?R z$b+#F_cn8dybn-b4$0dkX{h+|3GFTr^7fhf?YHXp@u`GDWK6Us$Ls>n{GXtww36ed9tWHfRO4X`2RaT8 zLUXEM%yQ&9g@+Gh+YUazm8s9DMl3DJWH`+h9n;Y$wbBu> z@>BBFKgsp4)5^8e%=M()rA?{*_GDSp?R5t*B#6wyKc>rdsXm$Gh}5#6WlG%zm~27G z&X~-lBxm@%nu(Pvl+4hRT0Ul=$vx2qEl?;#kFU`_!(PjjyVY&=S)#2BsO@w@J4vY4 z3DuI&MyxK>;>y<ISH(M%5s{y<&3?1ZA$Jl0zOZK>6KjxUtY@!#Nj3Z56grMoTh9o_AT@9D1nfJXX} z(wT{$;O?kLOgukkiRVWoXuq)J_r^t1K8!coC-{JgeS%%g+<$nViRV%nZSY)*n2?(- z9x3UMl7OD&-!La*r}|-~JaV_h*v(iy^m#kc)(*eS4IvNx60| z!iE(8_KnDAy?%n7cn8XrI3pR?e}JK%cNYtlw6ronVy5j)ROI}n4D2goI%l!`$%CmuDZNOjucsT}tfs+_e$ z9LA=6nnONX*A54we6rTkAg5bPM+HcbGdwOu3TXSNcuR@_PVV_G0KHX)3Ry2Sr8fa8hA}T_H2%x=dN8`i^gV@v9P0n*Q z`czya3B7beFJ^fc42<47qqof2M9HC|oM-BcGiA=+)o&KM(ej@1cco8>%9XPhN-j?)R_tT{`R+)C{V962Ku zEeL*~WN=(PdJ^MlC5C?32!7Za_kC&ar!EBC6j<%UEj5%@(aq&vjxRj42oBmDXB^_O zC)6e&UqaG8kTaf5Aqa9sF(Bn2<_?cbbGvSs(e@?1OschvQjZ!q;;<_AXf3(W^<1H= zcrO6K70+NmEX9*+9!Cjt#9AtKxv2d);t>IF;c#6ZlKui|$T38z$HQ+*J>v0vtT+x4 z$dl$*wL&iTql+-a_f$f~9y%1KxDw~$jgG?k6-9&DyJ9cCCQ|B=k*YM{?RX|cX|80- zQXmH+r>8062(=1`>S8IfTH23Nf~1qsGNq{u@}&sn;t)?gdjd8k_qb4iY6k0RC@`2z zc4}o}f)VeCVr=dz+#bfXhrRTgepJ-S-r2>naKEvGD5q-WT<%}m*et`AlgO6g4lSf5 zrwU8rLBCL41yZI7L!RphcYTR$FpXM48SAGI#AAT**nhI^Bw^bNs40`BZ8fy*K9YNZ zut?d=CO7Xpa~w=RVI0g9y*E>ggDND=GRDD$ zr2DMX8VA#b31?FyW=Ip3nd4x#u;T1wD^5SrinF8@XIZT{i!_;O9S0XS8wb;knv<+* zlK&^;V1{YSX~uTqMJQ5hg|@mFgP{I=^e?%mrPN+%j&3Hi@>^swKdwFd%RslsYm0GncAf&AyI*+!Wp7dgdW^}&~CzDZ5notY1lex zSbd!%>^eu-Rc&ThvLh9y^LU9`VaGXo0|d+C)LD^a7PYN5xox%0+SbmfU$m_*scmzN zwkc85GGX=fk9_^YP!c%lu05*~s}al}R{PNg0XzG>rd*XlC#QArq&PY!Lkd~w_s zhgmNgW+*}N*%S5T)^t+NuHZ@AioJNsTd7Azz^*jZ(?IJE5r78TT*|3cB@!Jfz8B% zoNj2O$C~^Q9n$=cHBX$Sq`%gMDsdonp*&!ZUAOOMwo+W@@w z1AR?7m#L z`}1UisHx+Rc8O)Bl_>2 z(mWc|1Dr2V&2_TNft|E;w2-z`SfN&RP%|7ZPI_&@8vTh0E{aI{mm}+_hkNOh%_^}RIfH_+QjhieZ1Hhqhlj`~f}{-Ggz6_W^a{P93ACG&j$#HJ zAy`Q`{7yQJDGCX*(za{BNk=W?FeN$Mc=*#(k+6{PGo}hr=(uAYo?9A*TMO{yR1t9b zT(JzFD?XBn4#%Rs>qg^2B}*;w5p;fZ1kTB$Ac>_cB`j3|9jkBh;-ieu83U!oSx)d; zH@fF4!=663#cNHnJ`dx&Fo^N|4EWl5;cJfw zU%Q=r?R@m4C#WL?+@O0>{2c1DCxqkRDNbzxw(?vn84r8n(N0Hvif}fhZg0xddjAa!FWVRrEKo_ zWJ4kFsmH|)u~dEPU2oI?Q}0+~rDKv^+F5e$^$N>={-ZIkK1}u;XWH`!huVv3ar4s03EY6AUw% zWT$qvFay)qgxlUQ?DQ1bX`)yYK7ngOJSJ$w!u~3~W2Ltiv_vm&D~}nR!~ZjTuxcD= z>@E&8!XgttN~|dFpoZ~PN`=7m>X>*RgwJD*Wi9(k#s#PLjNs6fMShrKa{>*syX$JA5=cn(z$8~FlsE*_4%0N2=#*k2ss z@sU0Y(MC%BbS_Qaf??7$Ne%&iydF?XguHfEW@7p39Yn2q;_ivZ%-=!n7hA{*_w zi16Bg_v4v^^}e4*Ikk&vc(@aD;LaT3u5W=Nj>!0MpIjt&?mlPYJTgS2 zYPKV*>k455QmdS_39h{3%*OC>b%7Oi3&-l}u5z&Zy)+ z6jX8n6;c`&kdh;kluXesM=l8PBpOM-tggS%(h0Fxnz+XoVs&YL<#;Cg+}^WEE}FIS z5=$dYZxu(TecJilJU)%S8>?`Nmt`#}7GTNajw^5sEW*}y!MQL^@uel^868&{QY>ZS zU2xHf^iUu}C>OdgzSz>ujWiWffe?bO_~vr&I$SHIhXWZ+%$E_aNx{W~FMTeCjl`8$ zE||DVG{35|rOlmRHEf|*b3zUD@nzy_S$YsW8Di;cutl4x*CW@f_`IaKzF@`5aluMT=nGavnp9Zk z)?Ns606edfrLb6CA)X1=3pdKbjn=}5G!;OG7M8A#d9D4fXPql7S!>Z}jubh^nhy~O z__XGjX0+ZH&~D&*z&FV*Z5bD9kqu(a@ts2NC0U*-_Neu>@)dyNcW-~F$!q1lfbYTl zw&b;SKLEdgp}X14{7AnaXwO3892=ciGwASS!hQe&%WNmE#n%Asaa+f&L|)rN%>?4tH1p;Q&vg$RLdeQmjE5V>1S6oSG>{iwB^cVru@7rpNc? z)Z86i=v#8355?^KA@1zLbb*qR?q>PBqlr-bBUFTBV zwM#_AU6d6JO41i*Q!LRIgDgc`C#<9`(U#f*adMB@7^kB3z{V6(V~_#yv|$gmW>`{d zoFdvf6rUsU5w#~$H4*guh}Jly4F=bsRHrvL9xXk74?SAaEKp>|RiTbMvDZ|`t!O<_ zofQ-nkO9l-hP^E5>5|lOC%tn(C2$bn-53Oj=oxm)47;rv5P?yWg2Q2_p@c8RvS2sK z`X1pB;j6eecop0a^JL$K2Sf(8XKBibKAZ=%DkaH>-%no0yV+mC|9g-RHwho!Cww?* zt+C&9<4>Bo@u}7tO>!N6fEx6%T!+`7v7I#29*|4%1IeD;B$nd(TH{mc$s6^x#x9FS z!k70a`!cOHkS5j|pNWTt{f2kzC4_f>O5TK-f|CA)+04^eP>5!_5?`3jgat(}Y-S$K zsmQRx;nl&=TBlzA@@d5o$2AgPYr zJluj3t+2e%4W#?i#h^{|r|E+>%V`lkjRRxvP+n+$b*8QOAV5;Vy! zZG{-$4PqP*0k9J8hm_>;jb5}LpN-UHI(Fd-d`53Z$2sj5NVHK;j0atTHb_m12Om>B zxW$YIwA{u;SMuTsgMFX5+ z{;G!sOEfqvXP6(&M#2o!4;yKtM*b*gm>-j)!C^7Oh-l#S=^Bbr{{t!Y?P-qs!*bOB zWU2t8zCWt4kjBeTa@7BnJn9cyMm=s`xqU7%z-__QrVc(=YEv8G@!v_0|IYMydhc`C zsL+>Yd7W;OUHa>EV-Mg=M>y*s7k-z1-|;T@YP>WGIt#@ zef8*R`s&ZpSC5hIzerylfHvGqLH(HY)nm!N`g5|c{&tGF>xk*CM^56cM+|TMU3lve ztG6C8z4bS8jNgT~9x=W3=xNSfKg+r653`vtcMZg5{!HHbhn&0qNcPsBo6lXxEpyjK z(Z=JX+Y!@?e<#Ax)AZt>r57`9s0Lm<2vs|qR6_=OG2Sg+{IhlL@_E3EJ?1o(M$d>R zKIw5T=B#sk#xr39DN36Y^~kn9{ozb?tv*v(p8kH8GnHcM3^UbW)cHXgdC0(-N+F#` zC+VC@rKpocq26|GtY534v#mRk$#i(-ci&-3> z=Zo>#7r=73f1sQ=_rL&R-zX=}Ju@NUJjvYS16pqK-17@F-uH^}d=JR%MdKMyl7s2- z&^e6fi7<%dXvX8`ax~)!^wSy5C<{lkoBD;$s@v$76Dsz$CSO7Zj%GJc8qF$C8qF>) zM)QppMZ_Scq-7B6Tz$wAB8Dsq!G|d#ePK4^Pamdw&}bFSa3(xvGvHxr2yWWWQtFY4 zPf{M9G*qb#;z`N~;4bM~m|k84hBSUE1wD=^X+-UgCkhas0&oJ`aC3 zF!>z<%24r`3-0A^$GzMXp0t-6zY}=1Yn}3g{PGSNT)PXm8N&G9zW}hix%hV1#%9{+ zha16HGK8=A$yYj8<2O#>u6Byk_)!53{g_Qh=RsXcnmbnLj<3Y+l6xpZI^FSmal^u` zb;Y+W?$o_URii{Mr0_gT41elj6&6}e@dbZwV-1$_h*F-^z1z%EQ7mQm*`bs@ejk=v zOM%V_=>1qKMU+ZO-Ft&s3V%&20A3UG`yBBHu+)RtcY9}=Sz2NiSR};e(@Ft9n7}hJ z`Y^z#G*geQmSK=V{*#&rQh(B?6{(6g6o)|p2}edCRcQz&4}%QKDYh2&9x%*0uN>8Y zl|tv6kyf`3SO1wPyB?usi+eqQ1*u$q<&Rx{-0?aF--kJV<&PX~7=Ez5fubv{JKlgU zjCFR(ln_Y9I;m`O7+-qbBS?6Z(*|$+F;pichwK^P6P+H#v92^AO?w=4nZB_0lo9w$vP*lK zThD9d1K5G@NLBj%lBBrT3L;JS#?v-gpc0 zQ~Ztzf1bn<^C=dLxJ(d~dPJ;SkP7ATN217onWA#w(WVH5zBd6c>aM;yrQL7#~XsR{U97&!NKN z$8(>fX>pR67IWpam}^XnZtF_%`9H4#-wHd?Ya&K#d`^oqnPllqxUYwQ_{|zjF!U{N zCNuZ4x4`uexUN3Q+`0v5Zza#IS;;=;pdUEwOFot_e5^?L815m$<59HFb7{U}Ki7VB+P#pCvR_al#_$8>VNYeYi;EYZ#uH~Pt^?YKN}=s)Bn&U`rV%!m9rCm|Jv zg=0Zl^1S*6y6WpRuObJ3(6eGedUBo}nCA`3gB<)}uL}B=ser4Z7^Y78ohi4qc{^xn zWHt*jk#6rw-CQx8t3@oX$B+7ABgFlLMtiJ{_J~G%POH)G*bw&#;!>>QQiQma(-NoD z9*0UiN^$L!&w*jX?b8yiOt**Uz|r)U-Ht+$ zfzN@hc+ztqxxIJ}45a!}V>!(g^QG3kgda#;${OKd7ll} z0l03$6DithzQX>nc=!tWL;6-p zmeJl&qMg~^kfM#n_TEX0XJiCIN<%xI^!!Eb4T-IiOvRT;eIS&f=B8_;Qp6u2Lo}7n z!}Ejqf<08>FOepCAN4!VL&w$QzLL6s;lf3K&D2&-T5XL<3;MY&)nPH|2g&9>r4O{W z6ih4e2jnTvK!r!!g>mf@rrR8Uw(`$>B>T^OWSVlCK0+#`?k#})mjyDy0dJEtkP(3! z^LfKnX+CeHD;}oo^b&3DWXv6lum7u0*8WpAy884RJ@?NW9sTo0&*7)rXjJJkY!01f zX#Za|r~Uu4=H&c&bJnoaYff!jT8N{L@!ixsRFuvF3T^9JT2CxgNsq3wdNc(mu|R=! zRu(R(@(qoAS(e=jlPq^DdcpH0uBVoXZ)(^pmh+BCuTs{LeO{zbEOq z$EDNp!0-1E_FjbhKkecS!((=l|7)Os1@~R{*t1b`s)rMXKXY2 zJC5Wt5+9&WKv?fOah)9!tronH4gbTj5C z-OWr5@YKSoJFo}MIj6Q?)9BMNUaEecx`QFW=eE4fGRgYetX?_hc>4`}#GSmy-H|u@ zwiZ_HIM!jj)rj%dhsIlMuu|XK@D$@|m5!gLxjR3D5yxEiyW*8ybL z0m80Bgrx+<32qqv~2Ys;)DG<^VCO&Ljg3l%r|_j;h~C z)|p~doyn6PCI*O6g%1;WAdD=~FoYWmZqi^sBun<ce%g$G z7O{qzHkxMUMH~Cd)8_G^UkUhV;s&!Sn*6rHh zkA^Zkn+5P!7#M{M7&{-jRwx`WW>8h|2x6~i z#r2Xs@rK}{xZjEkq`dKvRmWZDPRLt{yV0+Zh zE(lgs5%OoVzeaD&X~}+twq&y_A?;x6vawWCc3DXQTV1*Z zU<_ah>+CzMg;%-3N>eYw17S483opRfNZ68ul z{=H==|M?1p>j=I^FtY+{RDEc-*OcMKXK=Jq0b3EqwpYba&#hpw9;_%kSX{;WhOu=w z6rS56o896=i@lPCwR>A(uk~q(>Bj(8u{R3NZBfN)AZLjEM3(s+EYpR>NGq0yy>LkZ z(!a<;nIp(z=lfCH5oGxr0Jdc5+1TDk)a}vUtja$nw?A_f-x8@}*;$x>UM}i(VGQft zpdviSkMLj=;Wd;luev2tz_O_=U$;Q{mqY7%u(7QU;~CR(%wunf^airYFACQF5?P>$ z;5vdYwityQux!0ktmW}PFT1&9Q&~R)doKqu{M`q{J||3t6wbg80EP!3LWFh77g&^X zj&HfCECyIh!m1=zNZ4$Nl@JysEQPga3jwcQ)|` z6VDG31?y9(eSS8Da_%Y>ybB1^s9ccEr*eO#av`>uH3Dy-DzGc5MLR1tm9>QDm1_vw z4_Ej&eQ^SP5Xu2wMkOIbb&uHWq5A0_-NzWdmuJ&2A^H zKa8Q2D7%laSf#+$6V_Q`8wgu0bG|?_^Ie~(5w zi3@9Q!QLcZ8cE5c?>@ckh!e4V`t=VlyIw)8fbF7~+)#<-irGGDLn`@T8VSNefn~PX)Hi)pZ^APLDh7EvNGF z>qk-=*h;SEd)aUo=4@p567M6*c?DZT*f`309a~G-)r8%`9w4kc)psv@h%lTX z6X1XA2^-51ThBHS_Mi>1jqFiNeb2#q0(tWk#I~~M2*W*v1bc;TCTuoI*$Jx-s-3=V zXkuFkdx2ygW`84WydANh**3zyAWY@2TIx&TuMuxPwJ(FeN!YK1Mfg7nTS)cg^LGfV zCn+8HdxV83XAOU!up0>*z(0TQGeQm(kQ+lbK`7^$S^cSg^ZkzTKq_<^Y zx+3E!qywpc`14t6mMxIa=4$Q$XO9)UXwPSh()~brF+Cjcv7OmDke-+NHROD;G#~Pa z^b^_TKwq9#3Gk_uWl-v7s^x<87ww$QPumLcsnWK@?E$3(w;#c?2_gl#u2h5~z07Wv z(1y*(?hO)N@D2d@e%V)!e0F{q%RW^)1Z4KpMgZ&?8xJr|I|tzB&IqutD&~{rLRSqY3l&)O@9>Nz7(^KcU#hX)1M9K=^rxw2I=2q@B9POXL;WN zI63WK09#R>-d+<9NFxch&S!Z=y;KJaWV)QN4#+zc zaIlq8S1M;8tKUJX!?vFRj#GXMoS4VK@*+s7%=roI^E2hQ*-xF{l*xi352rkwHI<`2 zUwAOxoMOtc2OTW8!~^h<{47XaR8N52|r|2L#ZIEo?tume3O%UKTTefI9D&Fz+4OS0s>ww)eb z@<_Y2*H-?=vO=pBc2h#7!_@612YUWKd-HK|Ix=;A{+*KS+yAXTLX$3z6D@Q9f0Tw2 zu&*D*o@E;Wj$$tXyo0}K@smA}u7Mb<);(3X74|#CQb%egS_$p8$>D=^iL*HMWPK<6d9kG~p?`)AdtXGkNj9tI zhm4UfB#2n5+sc{~J+@cr5F@`SUzEi@LT?|ZbWa_ghwIBlkt0R;L^Fl3t5{LWLtwv^ z5=)PSG8Oi?#3q!y=1|#70&}g8=49H~4vB4y7G&DlM}&ROzbY!rbh57r+s}6tWiluG zLrRI~a=>6>#+>f=Bh$H)1thjSw-4~55_>E+syJDZ!1y|M$4nQSC9!7!OJQ3HyNcS7 z&bC`*rn9##GSk^Ei_CO(z#=n)l@*vW{j6hwDKk^<#k`t^GEEF+ni$G7FgwZ&85qjU zGO$+eewjH2mT-;CY-wO|*QCrm*0VtGm5VZq*aD%8t0+31YwQ-n7P?|lc(P&-NnU5y zbY8|@mb~6BFDqm38d5IFEN7p}oIRlpmF%d@IVR#|mCReH=UkXs#jY$gWp-fK7n(9V zuv;Z>SII`DBfCfP4wT%M*^xacdCvu>^G@tB$$LHMWu4fwl6O&dz}J~=k-YiY_hfcv z+a>S!^69(_dq?uz6<*ebeJFX~mbCJ9WuHi%t@QrPuIwwxi~35{ZtMriEB9^4?8c56 zE!vpbon;p3*rmKD%PrFTc5`MgRz=vWt`{P&WcFqqjGVAOVlzcfSBJ9gz^fA&jE=Ve zyHjH6k<`?_>~+HS^ZKIqGyAbU5<{QwXL!i{f$7}DZY*xfG%$Pn$mbSpPUPFn0kpfL z``{qPi-j(q75<+xf^RA#QIANYahgh3yfoZgV+X% zp)O~zni8}2p)l%ADMQ)h5>v`hcA?1W`l6VJhO)UOrp%#iTZt+2Og69-v0Gh#%XWrF zu*s!n4I|i$QX#V-&;qRxXe?`x*g{Xw(AjJcVGG$grNcw#GFzFz zUiO?9n#6_>b}Q=|ogJFYE-2IMiz?@_`DJE(Q&?k}S>F_Pu*|G)I-6N;);F8oST1T< znKd^whvifVY;&|eRLd@_5cQ>GUlp2f^fcCRiP5(x#l*0N1_Q&|7qV+AOdq_8-Bls< z92l!suVN2L?DwiZz=!ERcIgXbH=b*jGiXL)WnqiKR!D19pDQ^y{T;Zp^gHQnn{%TJT0Tq|&tDEo^h8 zZh0@ell7>g_PLg|SRcBJ^{+D9a2Fd=C486XPUm;A)K;dGcqjA-J6~ee(WcO&EVZq`sP3Q^sZ9CDo-$s8AJ;_q5^%gC+Kg9|J=GyBV$~Lj`YSE(iV61FnZH=7v@Fv#H zz*57{8XkfOY3^6+Lh+`u-fFR=**R^`~j zYNcja!z-*&U>v2q!nQ~r*7tYzTD9<{7Yo@Gb+p&vjLJw?)d$;SUY$qx?I=9~szhrE9`_4J=anWVp$|F3a5<{@B0{ z=Wh=0w_w}CpIWdT;m<7C?(i2DY=8KW1^ajSD+~5>_-hNMM!vCNDUt6iSS0d;1uKaB zWWm}*ez9PkBS#D@t406FZwB^!{;#nX{&zTA-MWx0Hf@Fg0zd3-%#i(Q`vyeyAzG;(f>?aTbrc@f_w zbKdUvvLe1;@?HX7F+U`EZvd~De{ZRwgderkP{P%YdJS(xN_nWG-oBlY3f|J-?FOuk z!JE!o@y-VC4o53~c1KYIj__)Jfsu14tLAaRqw!wN7s#AA-aGKC2ovMI179Y2INm$* z+awRidq=*Cutly7-j%*i{2__8(Dp|<@y8`LAq*=({;b4)FaHvFTO>9h{~N$wli0T< zKLYl)#C8$3OJbWUj{>%ju$v-(6xp*n@m~ZFTI&WZ*h#bqJ*z7(mKb_g58hs4=vg(q zpTy9!dh;<7!*Sb}FOwLK+y49&iQ%{%z~7e`j@yC!SBc>W7|f%c1%@MF2=6X29MeO2 z!oYTi&*V26*#7Vc{)U15J3NZ-F|eP*V|ciWj;WEec+9|3BIEfi1B*n?=8FxiAaV}h zW?~iDCSl!LK*4ap4R3 zN&~w&Jd1CT7)H$5`~`_&Y`uuTE-{R)alTt(7)>wc2PK9hd=7_2Jj3XHF^u9`UM8_I zFpB5%GbPpsM)75Qp2P;gC|#%gC|UCSSkys6r7z#fyl zM9J8!>-aO0cSFh9fNhbyMR}96mh#sm_F&#cfbA3*Sg9fFdOoFx;C)!UIBOZ7DKIv> z@>;;=N$iZuVUe5oB8iO!>}GzGflZ4n=MNg#imY4tOAx0|2QPxM%J?mgMN`6!7M=B@>7qQq)S z9?t%dpD(e&C7S@7-B0g#&OYMvB=4AKI{%0#B<4x+0`Dq`;jFfY-ykuZ)%Nh)B=$1Q zIeYoN5_{e0WqbKUmKvJ)@TAg{GZIm9ossU+Y4HM!@rf-XQ1^r{D{P6!V2PB z&Ibr=Uf9dN<(>hil<&BIfGOoWo;|>n@*OW6U`qL(S6HNc&#Ns`e&F4bu>J;C9sPk% zBy1bo@9!M_ksq|={E7ca*nZx%3bEFM1a?^<23XA?llL<}JlN#@%#RH=dB5;ZLrmT; zy#Elr20QzePm;Xvf}9=U=MT}#^#QE^P{Q1E%BS-qe3-!aFB;|?BY7LkM*=oU@;Vmv zh#uj$NerKlj_`Yjn)Myw&kZ%}JIXf?HS0Ud3x=8X9p&Z2%=(V%#j-nexbtwy6Ck);VfZ zHcRXu{56MN*)Fl?fag#?lGr!Eb1DZVmdS@kUCM6~D^^BD-HJLAXjFMPCb)+ZQHhO+qUiedB1!Ax^=70bk)q6>FLwcr>3W-VSP83=zpBv0e86L5dRZ= zlymdIH4&XjCQDVFYyRLh;eMZNx_BZoox7XSEo$_h`goGz5?h`w&7g@sXCj-pa$rad zbc_XsD_ABBB2kmni69$$Qb}c!!2*g>=qQ~fAR+W#Mn}!{10^0)rAbTwj%cikT3Sb# z!zFNZToFRY=&mloRyDQ5(r9s!j9%0A!#o~S+3Tm@4I0Hj1|BMY7>Q6|D+TS2D=oHFaYASPpN z!WeI#uCs|;@}9(I8dg?j$3XD*oFGPXeWpTUx#O zN1M7`pp2|^HdS;YokqiIIIUYVX(j{Q-|z}nvn0JImuIR8z8@E?4B5`_N*26tiziE2 zxht82EI567YDMZ@ZONPIIWgFD_x;j416k!E0t?FXl~V~VQlB3$D987cSqW3efVaaz zed*&@nYOI?^TRn1P1qR|DtoX)rI`dua|wDCAYSdYjIVF|HFE~Ney4-x@jK+Dff)ob z*iN0zFGLkWk%y_Vl2iaY&o_|e(%+cKn%32+O;0-~aq;e( zp*-*3{@s~Wv>!4rS-cRFt{>C8-s=EwSxhHh<>{<1OD`gi7C2JfVrV)3>r9-X+dQH9 za)z&yFCT}%6RO#N{NLS^*1u+#KE&mwyrI7&(H;Z4mQWJD)iqY01|I0q1tBX6%LK0h z0<$a^)v3f#CU}XRvEiNmt``S-tn4XBIvinM z$pr}#-8K#SzLj8xs2=8ipXC33kdG;3K-BVAgE$|!DTv9A1U+NNFeYrN+r|NEG^lY0tBqgHDs}Q^ebmGoyR>pot)dnfmwd9K%994szmgZV?wKXR{wEv zM63d~fe)}i(lY5`0jtWjfe*F-(<0u*0be$48R~Jw(AwX@L0krFnF_KX(y|JgF6Is5 zVp30-f;`dtht*YjAzg#nD*z^jgePai*ozHzjMR~^Bk0FgTOG!@suK5#(1S8Gcm>YG z*R(5+D40cO2`zTTX*GUufe`f0&vCJNmm7nSNO-t;7yH+JBDFB*pb{oYTQKfe^2KqH z%twSW9oQ;@NILqrk*5Q0Pj%Q9PzbpqM*YGB0Z@?lyj=LLlhq@;d)iu*T&`lT~f{*YO^3~jD z8`Rlk33*HXlldHR#;|L9*qs;Bj@gJ>Zt?;q;VBk)%sD0t z3Tgf8mp7ezTU}DTh@8d(AI-Ckou^EK~~lXM1jj=5)RsWl&3!7kP$0ML!;3JEQg`iOtFh z(?zLGiMIHW7d5qF76373g5xaD4{;%oJ7KY4N?|?0vk0H;6EXfPSmK+2@;F*)pJ5N5_=;ig zX)oFj@nMe=IAEN57Lsc0Xx;5rW5%hDiu=G67dJ>J>m=GeLV>k|yY!`p3xNebyfs0cKeJ>%H7-|Lu1>W`m;_l0oCsF_Nvk<#i zGh@KMGc~G2Jcoy`eeo~PFQIq5FQr?rca%o&CCr{dTg(D(RF0^wP&_fM80OTGT4z7* zi|;ir-p6I(IS-6gR}3+D6NStAk|%XMi)@j`>AW?u8F7N#6+N)YLzlV|-?OvvS#sQx zB#1a&nFsT^;xy*cBP>V^`-jm%JkL9_v;0C~b;$%SAI9EVKMLv)Msb0$P2tvbit^G0 zjl2rdF;1#RUkcoiI#7**RcK9kj)P5+s~-cv7#~fDDs8vJUI}fzvU)AcgjOiVI;#f5af2IlgFp%mB)wi~Hi6EK+I`ZbC7Qcm*+y>pT4$ zf7S*XPr4a|JI-MY`=HQ697#RRs&XJpZD0JAMO^i1=nMM0-v9m2=torkME`GlijxSp zszUL`%>DGvMznSB11vtadJXj5$tKXTXl8t8YHN4$Rt74sBClZuR3D=kCuo*drPK4Q z^DR+MYhs?}*sOK&X#)!LtZRYrjRvM7ho88DOGPI)rwnV3=MMJdEzeoL7zQEmm} z6*wy+u$@(sgOD%L|5H7jmFcY(DJ!MjMElq)O848}^N3>#KbT0gyOD}%Rci8W2@h>o zvb)8NFH~goO0Ulr@zJT=aSui}?EJjA#c(bC8K+U4?x%b10JyRE)$CSjQS}Zamg*co z(Wpq~RbH25D62GM1=MSWir%n}aF^y0|L2%jN+If>){YIbuhfh5DkE##(L%aZT1lm~l+7U3Nq+FrAfqtGbO?f=PK5)Dx zzmGDQT))bt-rC=|=pLdClEy87!&?kDE>coxY4flLTUUJl`GKyRc8%0c$hFh1lzL5f zdl}54NWJ|NO0%GI`d>SlpDWqxTg|6O&Nb^u>p(lo-Oe+VK;u9+d=}%6?XOqht9`6x6Y{3UdU{|oL8`Iqa+Tw$=Sj@!pmjkJepMIA`2 z_8qotC-hLl2e5JsWP(y*(2f3}zwA4~Tao2Roi2SE2&Rgiwi%&SDQD9G<1E5*XnoDkromM7n$;Ff_CH>6}+ZavI z5w~IKtps~UJzyP^`_V3VSp& zk)!^!#_X8;X+mF-k7O3$_Uing_(=HeOsE8Xgi1rQ68@LKFCJQ!a7Fxw3nD+nc0})} z_*Elq$lU<^He?!+ChWU=SkaFFZ83l8{XC&$$=CybRGIMq7)8+Qc(tweT}S)-c)71q z*fns+DJNUADSGZ5+Dq~VX@;J1AAim_XZ;?xy^|(;E)Z*Wh=mE`- ziJQWkun-ejOVCvX@W$(R?o*d<`ICEtuw}YF!;xxD?om-zJM(PD<8fE+ggQld%%ny69}JH1S(k{~8P{o~28uCxGk^PZ;+ z#D#G!MJ_j@Hg$wv4e}y=%j?63#^$E*g+bq#_BTJfBkezKgOLix)l(q$(t2r3gN``>F;6fF@O0)eHl{}BC0{C}Sr>Tn*+;Efyb|H|C|#?$t3|6dvW zU;Wo1$&Uoa{ty*khFnF|61`LKBuv;MSHPv1_E(2|Oy~!dCs?yXQCpilEf_Ae72!ym zqAbSF;0Hrj_%UT=g2I@{*tMj5rPBGL#Uj^2@WS!}{UWjX3~L|j_)~4z?>8ffnfaFX0ymD`;_H$|IP3xlmg2eYuhx4NYogYuZjGrhGF1 ze?J+}?R0^tW3VG?lk@NMBQB$ufi_asU&v3R6r`V>3GoOR=5Zx4K|QELP90a5^{23k zG?TZWY?`iBJgQ?H*?LNiEdIy=wNi%>fVq_1)Ec8%ygly~19zo;g7hHx4jJ2sTT)+D zHZxK_H@~#US{=H9?o5-&^r#?zXlGT!Dg@KpZ}Cwc9-ag%Jpu9;uDt@jA2bhI5Kx$n z!rChA@SnZlYdW7md%6Q~N63bOSdaFr>6+*q4{|n=}v)eb~~zogh)YwpC*4n*r<(~`kYc09a(csKGek7+dnu69R`ZJ zg{wa752{Hidm=nN3i_0Lh-YgV^-;X`94>U1Q&k6X_tzsgEhm9|gx*mc;4V3sbM*Bd zHXo|Z!$csV4~6@SMnL`n7Y#+FC`b_z2S^6J5-91fIw{xhgmPS&Cktrj z*TiJ=FQc;p=Fx`pi=z|e_um?KASQ8N7$j87M`+&&y@8@p2>#b4F|*9}{9D>5hz>)9 zuMh1)5z`s=jd9IZKv$THGzd8hf+y1o<+lf9$=P0JPO-tEH`eaY^hKrHPa8C!fHf;k z&v#}w-xF;>+Y779!k}|cCS4XPc7Qjn9aJ_Zx%`p!50>_ocGEp~C`Vh_1SBtl&zV8Q z0hGS(ek)N-`jBQK4}}i+UBp4gzHUtGV%z1b{AN8UN95%#0qaYoGyP5{z8!d|TJvqp9SmZIb_fBmH2+KYs8)H6k#T^Ic6An4AwLydf< zAO9qPBXB9y14p_wgkHKFpD z_G_3xY0c|7Z-eBy(@|dodlmaGO za=>(^a-dDfXL%)_=r+)V4YKd3J;gs%OT6RkxFenI(XK6@ZjuRVf5bf<`)mivV_q+P zf$aLP>Be=LZ415tU#?pYCik0P`)XGpTLXJQ4}IFHo#r@kR2*PF=q@&eMZUEo>lE>Y z)X03pUmDM1wL!4X;iUqD?7n+8}3 zyNH~~KvlzNBe<_c#DVT{Cg34y%G>cfKyp(dfZ(GC0}&trd=Nu4feFyWeu^^?J}Q&X@PM`t`G8pu z>K=Yi@Sr9T0mhGANeBffFVPh^H>DT$O~DI#4`2^&hw@goXMRr=ST5Wdv`glLY-fES z7?=Q^0Ng`~8}7yFR@28Cvm5>e;TCI$Yk(YRo01p$MfR4mhiMP`r!e`@`&;7-!RU#S z=uLv#R=4PW;B*Y;??JCTkL#1ua(@+xOnd%J&HFYzgSFTT075PLYb&~u|?!D;RazWm#D4)W&taNfP&tr91* zBb!^ak?J?>hs4$S$G&YNvQHa1jDv}rZMCu0P;8b*IqOh&8e3E^)4l$XS#-_%Swp$i z(da66U%Db^P}`VX(P?lgw`5KWPrI%us%fkdMw@N<>SCd-UcwQePuR6Y)r~;;Cx4`y zTm!K(zvU-7lU&0Tc4NzMb=9CYuFtzx0nYP#C1TTJ(tEL#h3%bGN@7d3W!WIlPLY9+i5NJ@N=u`K~j*nB&eNh!lOgukrxc^&ymgWRcD{Bu#nW$F4_`33+`+eay-cAdFw@LgnztK4#}rxXw;R64vfNC5 zd<;J7&r&q^om5#0x9iFt*EQh9@)~J?gjk+}(l4!?`gS<(m1E%m3!4mbA+~^RL{v*>+Y7{#9=0PcCj#f93F& zdP}*hyeB<{EunExa}x0_If)hxnjVKvtYc+jtlz+i zOox@80Doe0dq*F8i(o$N205Qto2ktZ4BZdAbVZ3-f5dDpy)bZ_JfcQs&l6aF#C=7! z@%7!8y@+l;KQyy?%6(I1eQ!Q6e8Nw5!)0|9BeKw+To2vrac5h0F+KpeCoQVrw1bY* zSRfzVZ!&uCyI8Jgyd%WIJB4(^i)o#NPGq@DS9WK@YokwR8-s=XEv%siHLDh{tX2y) z*Xv}z`N!dNqxW9%vaB2NX3jMbPm=dI*4lEq%M;N}o?V>g#>fDxfy7IpaYmT$mxY#l zMF$s_&dDpCf6-0IrCvR%1<14rbd}ts}4p=+LuA7xKg;(w3Vez1tntw z)ECFrNmT*3s+fykR3a{xdN2pYUN$OD|G7-@+^Mihu$8~mvHk9(Di-qaak5Rsyikav za1HOwcDeRSqw~~v3y3c~G84s~I8X@@!mLYfGw`n%*RSe{U!!&-)vCXiTg zU15Z>JY~d*hk342O&p-ev*SAgm>6Oju?V&bPClW0~ybrPvd}H_8$N^ z2_%5Vy}l+OfH)gpj<>GZ-F}pGI<4u|kj!14_D=#oiPALxss{d zUG$+eM$D3KV=C&wzR4QfGPK8*FfJ#Q#Er+eVekaoTcNaTX3n6jR9F=ji}k@P0aYS=gZ0l0OL961Y$YOv26V$rm7Xxv@h5&Z zY1(U~cCiUd#(#@p;OY`BAbIdJinc>4J^U=~Tq^0SPIZEH*;MAbk#v~mb`aSM%P+*nq->7%JhMQIQaV$ zykEn6F~hvIrbg0w?m4N#(MSNgS2>3Bw6iWP!hVXZOt(gsmD;~GHD!1NJQQ-Lmc)s$_fQjFHr%4G`u7!$i@ zNL128Yft1zDm-p;Qne}cBFuIZ2mXxM68Nb2+5F>yE65y|rNNNr=67hof{w{l*Qywl z#Z&|qfo;{NizN90F%SwaU+joPo6#GRZvR*4;xXN@H`h_hH<^BW09NY1gva1G0y zSAvF@=*E)Q>yaimv~7LRtlg0xY%5VI?kF^r+472*Fn^6#iN&kZPPf=#yL`iqv1zwR)?FiU)ly9(uL}w zl0%)j*FsWx42wYL8UnIAD%BuyJ=CCC`eYgT^1w$0;u1cMSwW??aq@d&q!JJjx5(@e zL7Xx`b)`}j*Eb$4V$=&&NN)<;4_wE{C5(3!99=#6OXZ$%^tP|!#HdPzv~?Wt>7t|A zS|wjq-9f^zCxu`%nk$p^H?ZllUy4sRyqP*Yf`j(Y&b*v#e_)N?xJr4Eb5(WFg21Rg zddZ-M(vVorTkv2X~j;opzW6pXwRa?}11R%4+Ida;U;|^sC zItIFHxrCbWNzMV6p~e7G6E{WI!jvnI!iIS%6OS5=*D?fHCpmd`@o-fN=C7rcR5cQ` z4i%BLCvwAlb87PC+c_8>l4*6g$Z7k60IFoVExa+f_j%KmZ0VPsb&N{Cxz!5^RQ%OU zh0kzmzO%g}gQH!daM|@GV2h~?Tz)!Ivic+2aS6D;Idd5?8rL#s8^Yju@~JVR`&U`q zkCzEK`@d^cF0wKYXXX8h5AoJX9LjpQun$Pz!_@?*^%TM$HA>a~%oms)uv->;>x2qe zR5jG_N4mCntv4~+pB9!X)uLz@Qs`h9Gx1u%Ol2~{{&gmp{CyKJ+zAKg#5j0NeQF+6 z(I-xo+E9n@b;6wBizi2$Z>Xte0AVuM7C=T}Wjv@DmA_-xxayyjNl|c@m|C@Ga#Z2h zt;&pVewe{3$7HxX7qCk%6{?R!|5_+$uE+3)I-adwN+*cXbO;k*U+PeHGG6!?zOTzo zLv0$Bvnn_xP%}G5%Oq6A@s2&*Z+o>HC*kpWe@JH?D4iuM zqe&)fM=`xOxHb2|ousT58OniZC>PP>5uAPn-LHgTaIAmHZ&?SyMBl7@l0Xu*LPaFc zO2uY=;uBsYi^-KqT2*mQV(Hy?46Ln{M|COVMrXcs2grZ)#{*Bx_0Xa)I#JS)wn&f0DPt2mUS^&TXK? zO4SqvjxXd`r!Gtimo@Q_SPbt?XpI?kqfe~iTE(8ppa*{Xz7MujXUDGS$`Lt}RtM|k ziCH(jNH{=91M0(TsDlLxu9KjnHP(B*>nM-ei$lBrJ)!3p zW>J+!8z#=b@rf8fzD%Md{C4aZHIfybs+uCS>jssm8SZ{oI1?_M58f~(jG>%)O77)% zN-Da$eQQG?mg7Pw5QgKu15qC}W<^YWUy;wDWckjTW3BkY-!QzZ>B2fYQClbWD`p~b z;YPJVp?^W{Evu)RVDsa+^t*5^@lEA(l1*L$;Vi{<4{1vF)c^;*lm5>6`3yH7`j*~^QsN{mZ$HIp0@KruE*56&=V$xq;M== zQE=e*q+}M4)?lo^xRL8Y=TVrB-@?lL-dfWKsjKE0Ax*VrVqbMFyePuF`3f?zqUJXQ1~UKkf#pS& zjB=g6y0&W$pf##$3}BtBG{!M_2=+J*ImcZVmtO~a<46ujK=67k#XylAs}jHLDrM*5 zIyNlD1~Gg-G*lKFT|8R}Jiz|fn>wt@m26k^tUNwKyxy}0?$2qd0XA1gHvjnga4YiqeYIB-x==Pya;w3h*(cIF;xbdo# zM(vqr|6paETgNwqP^WTzMP;iq5>M|b$rne_b8ubva?Ab!Pv@2a?n2O-b)kMt z42O1{s4*-D4g1Q&iYr&+kHJhjI%Dy(6p5JLga`LsCgs^(!-C1KsyL$BfgItk%wr?I zgQFn3HwzFd28eu{&i%e;=ymDsy^un`$V--9MPMe?O|OSk_}zVCY&sWs;KvktB@y^H zKB1ZmP3sV~JZZcJ2V3`L*ek_Dt_Y@;rXO=RhA_jtxGKt;o@7orOk0?^YyKFP<$%8J zy(nu{{V|-fmG`e1htGA!h_@tN2Ykm{V?=zcI_17&CNO(qNXWbS@L<%^my3MMuy7(2 z&CRcXY5S4vix=Emn)zO;)R&P+<-G)hP(THRDUIq28!_{vD#lZMDJ^mIdnQ`9mqU3x z&1L|#66F4;aiB9SotB+|rTDL!5e#a*M%#R49Z3n_t${IDY7;IZd!M+7#i3*=jz8FK zpvCskOqV34$+#bBsGfE(uN`UGF6ib>B|Z!;dqQeM?{X$0u^{+j_X&7H17xLet_}0m z)ACx5sP=TsiT3(yB2p=*_T>+2sp&>Oe;{c>b5_*jkUTat6zNUOtQoUp=tI9QP&$_! zyu!oCJfNNFNYo{NCujfSB%EG^#-G%XJ!7@7Y8$bJ-oTs{O667*tdN1>e369(paF*l zf!julhjQD&DWHHKVCiGx*E+%WX(|-`KBD-QdZabGvonzBFFl9`AR>qGZR8*am&V!U z5$^uTB+iHxi>1N*gM`tl4;@2@G9tmq3q7K*g&~h@3nP!BCs_LvY+anRC4-jJH}#3( z(|DG2i;4<6`Nb+Q`=OC%r-^3#p@eauHq>L!MUciXs+2wXuqijA#R;dCOhepW7P&AI z2$@EOKWoy``~ABE<>+on!B#%G{1XNAL>6CCh<%qZW_Cc z9p8cun)y*%*gZSc{1}s|0&YM?z4Auo8`V~eV(7dnxX|~KXHQYfumt{t9>0hJSD!(I zuHh?=zTDu5bbSC`1rwc6MVxDuTm!&#)=p}6BxL<-yMb=(nh2#pkrKo3?)Z$qM&I>9 zw7#NO?$1_(~B-oP_xXwZU71>`D2F1>EkHP`YvthG?H;*M!{43^?cC_sidW$@7vgm)lTo(dJoJYm`X-~ftlVCG}N0Vq%_0^iQi>p^Rvt}acHV4~3tN7q%9 zfVsT;JH|_u?^S(1VLwNAaG_js+kL-r9l=E)xrw6spzW%9QaMEH?Q(4Z`2L`;_7DsB zy~imupZ5r*!G?rY&Lr$nVJ7rZ)0FF|5k0sJ(Aj_isOca8L_6rsL*Q?97nYF0JG1!9 zhDV#+s8GT!L+G2$Z}aOwM8Y-PKQ+Qw2gY^d1`HyivP+7^$(BM>)>%=*>~39N0XZ)1 zdt$oeL_tw?=gc>a2>hs6=Gt9ae= zA?z!;pp%@jx)>u$3w8Z7kCZlww5V)TZCRE^Qyk@Uq+fYev3G$O7SRG``{U%lCz_hv z(EeHYE9vX`UNto@0?>$$3~uj0kyo2}QEoYrAz0gFnQc^YLd2r>J!#$#n^{E#Z||1( z4*9N;;sRY>B~l%A(K=80%b)!t5oYjVg42Uim>2b%wsX>B9NI5Hyqd#G!@V zAUzdHtQzU~=Kco6e8x7lh?M1s5pm*N02yfD;+Tak432x_UWX-j6Ih^(yzz<;j!!FC z$C$#hn7btuEY4~0Mki5{_%_Dyk40Zaj9d}DutE7I4B;9P2#*~|4X1rJrYx*tlzMdu zCXR|Ck~A(5b*+uNvvaSDXH*s2MlO!WxM=HQ&h8P<lAR0)M( zjZ+jLLgkkR8<;~y$04mP6C%2G3q%tvx}LBNX)2bNt8VIw9_QM1iV0)v72dw|WlPeVnE;IW_+lIGAuYgJNNsG`+JDG5y zpGn6@puk|__z#eeM&Io*OMLL>j&c4n@nMRx?Ks7X{`>&;g%74{&ES$y4MY^Ie}1Y< z9~1>wGohjZCe+c?F>*w?@ImUgBKbDGYKd+IHpc3ep)m2>;(*4AEHDR$UT8N7ieg4L ziFVLM!g_Y{UvLJNJj3Nkv@t_>8Yd$u3SqiZq4SyY7e^qT4J<*4JIiK!L__LG!`=Cd z^1eEexi*8`ng?JTUuKAII3G{?_TU${gkXfYbsvb{#h`spmnAmFfA}Ht!Uo~Nnn;Aq zu>X9gBWqR5tp6}$oO9Z$3+tMhrjrCmLDGK%yA$q#>wr(`WrjTWR=;txuSEo{YUKgp zlC1bJMD=b0)r;yc)gV|a1~qm-bF@v&0<%ihsI#sDTkFUvhA0^52?VtSMcyQ~{qch^ zMIic^rb4I?ND}zvZA<&M)aC&T57AKVuT4>S)^~fSO7Wskv7rG|K2eha`(V?Ms{kNf zRf6~hz&3p56Fgiy?`PbLK%QbhNykK}6HC4E7zIo3Phj>}P2}hpQwLiUJI6}U$~1}xU(RBoEw-icc;K1VnU1sg{{3` z1PT(2qwMRk9eYKFTNGnxPP(?H-G-F;@f|AC;PLA_6k~|S#kzfWPzip=ZFk5dyG=r% zT`RG#^iG6Lgv5zNN{((yQd+9B@o9@eQlK#OP!F0^6~oE9ja5Ut;DjzMM92!aG;!o%TBR#~DXcu9KPlO7nsS+Puf3 zL*(%~dxK`xg=70-xI}4baHfhYk-0vIaZq))s_LUU8BrCGpVbxl90U%-%-GS2c=UXJ zb|~Yw6oa>@DE5LxvIFmHE+<23#G;F7ksn~~gK!Gw%*<1oVt4Wjg<%oMy0ZNT*rY#( z?bOaodSMiPkB2-qr?{<5?VGG))uO*3@)3p+TJOr~eq9aGRwOB%3ky3E<-MUPE6X;p zv&fdfnBId`mep1z?{5x=C-7>3vBvQeoX$igiLhi)n9SqvM6&~w%dYK-Zce^F=$cgJ!cg3dEmX5-CVN!9rlj3iI zPBdjD^M27pjnnRR9^MCxVt$8ABkcn5NuHvu{Y;qcOHbCW9>nVyiRPD62!+3;sFAzB zmJ+==_SsLEviy1d(SfdU$LaM03Rk9tIKMF*fiRt`e_$Ems%HP3GI1pvGiNb0`iq)D zK4ja0sc+y+v9Cn2uiG$2JXZRWVmY!RKBJCT<>OY+l44*HX|;UVIhJSQzX1=X6QXMx z-TfQn?;N_adf=Zun@4uH^YNb~HNU}U8E5R4um!A|O(Nk?b=;XVdhgW2aOR{v7k6-? zuH}QI2%r7^#kxlKW()P(`}4$xo7r{id%kvb^!JT3f%{(KUH={x;n|pAhbk2E67p|P z!@BPDE6EU$SM?=71}9_z1( zZ|=Lq_3w3uexBBWw``BkDWUUg^Y7W$N$V^(*H=jT6S>b_-OrO1T>_VPUF-Mc;;DZc zA0M%*S1;??pMcDkz^_gEFLRA$NwG){-jv3dZMppYEf9i6;{mtpfOUkwJ^KvG_-gz3MRdxjVLN(jG}U6fRMIV!u8Vcs4{s`2NAX zJ8AAdxuw-r7iM5mvZE^C@<^8q9@SVU3%6#=rxUMD27Ic7%rUvR-3q7oZTXDP2O|y!ZqN2v4}v@N*X|Ec(9Y zlR`9hgIakX^<52wRycM;N{oK8P3Kok3h%B4)zs%j1TBvGg>xR~gp3~Yn#^JVm<=uw z7UR*fYAt<(N@NCQYj^l%OVfDb*$DW2;8Aj@UzplcQ}T8pe(SEJ z!o?9eD8`UoUXj-wp^9_o89SRI^||+c_!{8P#Ha`0?8;*9F?YlaE`Eys3Xs*4ypZiU zVFtJnC8De18Ic0mxd{z#$G;}jv3ZE{hYwYr>pgBvS_88T>2FD7lspHhRjkfTS+|C{ z;7`niFr9{fDOJ>lFWq=pjXY-U-EeGi@U_jBBu~^0d-tSEP%-H|GHPU8*$!D8M6q-~ z0f~hhP-ZOGL`O#tn4A~_HR2LRVDL!33vpJ3O`mZ46BzA|_cLF3XLR8iiGDL*wY(p1 ziY}Ls<$j2>;Eom5yt~j!at&e1GYUe=hIH1^BdeUO)J@zVH7^e@5#3?a5cpRIH=M%x zMX8^5uq>VFs*lW@3B}jj0+Q`9B5bec9H58aHKZgV6u}GFwG7>PnwAmfQ*sXJlJzay z@FRSw3kV)CnBWt0lWMsY6-G)3u$4z3`04}*mtSHna18StT>%rp zqKb)DPsvus2apHYp!yi^kbed?k`V{kSe?yQ!n&LNqoeY)Q16m}496C|a8EgLAUN^- zRd^=;g8DOHhR(g5&*elTIr!O|3FpkrT}==vVMHj~fiR#QH^6NSM5U$)4Fl zp&AnZVoJ~ri1P?sw8?L%Vq(yVZ;5iFMeI%{^JCJ|3+mB=t0SNMgNwGg2Ip}Qcj{P zQIQ^wUOKN74R%W@N&7s$cz%bEe<`M~7^jM(kh~IZ8DvuOFyxYbjP)a=gb)(YtSHx_ znf>^*zWcbEQWn~5lI<9hQqFq^^@dqL2@T+?5e_ew4NaqdeJ2KcEd_femGjb<^Ij+Z zctjo<(b>x;aSVrI8t#E_i41g@)4!I@#@1lu+3%_ebCN6mcjXsn5fN@>Oq$P5?cKBZiozQ<(GoDnOLIU*Q zvqzJ>lg2Q*M>p7c`*2aPyyLFZ?jgz8wo(0fOrw6bY|F5+Ox2$toY4Lo*X32Yn^CS-RuK; zeyzOFm#^Y!jI1w@A;utpF;TLF5kQdHg2-+_QuE;x$hMNK%C0&B*V|*Mq*Cv}!Eu{n zz!Q?icDsuu65?C=b7wMz4fWy2ZPIjA)OMCJ?&rQ*^UqPm9_9ELj#R5+?@2Zm%M57h zpZnK_Hjfpv2#m-+4am3Wr6iXz6!8=X7 zRsHG^9i)AxfHM+|dVhh`Ux?4G6>*9xd+_~{nFF-irPD-JHuMs+w>Ml~`%(ouqaEXbY_AuS^w^?zh;FhX!9+;V#hmL0{K_KNsz_rwknh zx+}T{9^*DGy9uAfNzU0+>#Plx4x$ZMV$h7N%c_HqY>Ur|(8o}_JwjBzDlIWC$Vo??|<4%eI9HB@A(0F66 z*U|F%iRI_K)qq#|@k)swVpQbqYB8@8rK=?CkBleP=&c*rC9Z3!LqBn`t*NSyTs>zzFblh8xEXwi}P#^t;+>3+#gC{yK z8zkp9e>0VYrmI%EBX3*6UwDDXE_NN@uzM&chpV0otJVOSQ@}xb`EbksWGYqhwouOI6PhnN%u#6*kOy;h zR~xE$Bw0aEga{OUOOU!&2lMaztm+B~JExz6Uqx?orSr!=^|t%9^KiTO!}_$x+ts`7 z$$7`!139AS!(h;P_j?tA_glN%miKYA^|t5ywf0t*)$7Q3v##Cb7FXAI^mTh%%Xc)U zm-7WAVq^su0UIL$_O-k2m4Un1*8NJq?zzWReJB0rs`4gV=kYKo>hkAWRJ8YN=(NY) zBwvc>;Q;CTRoaT{@}&38&Gkp9<3(a{O`cg{46%M|f-2YvLHhVbEb>}c<3Hg{WTOhg8O=dr5S+k9{pwinkT)(Q(# zN?v$5+@##E*-6>z5fertZg!L*jg$>?0^v;hpV;lJ4tz(AK`c zoIJ)wbwmc_cHrZC)BLmB)2zOtjiz6Guk$Ijk%9^3w+ro6K-`~^I~;Cs=aDJN^;{6m zlve2R`WU-0>>#E}5#d7O(L@`NDPLVm&-vM7-fUr}fg3NzBEee+r^;FgcH_-=>n)yV zX^wSB*(dSn zls6_vZyEzE(JyIzm+>uip+PU_y-6y~LofH)YDJE8>>A69CLBG&CAJ)?{_wQj)DA3b zmx$dF!QQG-TDZ>cLOIx?5bujuGR1t6u#em;2m7_DiFNXpR^do?!7;#T05At;co3o&E1bTcmbi973>B95_r``Z?mdmIHx(x&5s%QstA+w%6UB>e`I+t#|= zBCbN=R!xP}G;%tW990df`ZP^GB95&GU?&n>t~{Pwqz8d>fE@8A{W_)NL>70uEMx7e zDMWKIo$;|!*wnkWMTL_M0fNTQouCf&OJ#ZQ=w=8F|L%$N*m7MtmHO%(mCNjUWmkVX z_{zj&gJzp^hx(|Yxn7)%wEgfp{Ha>bT!3r!fN;fLl}Ir>MGG#K9bL=_KtWl_Q5SB^ZL@NOO3O>td0TlYNf&j@Cv`ZDy)^Q z-}ec7u$>UiLisTUlLZ#)1*7(3CQ{wfv6B$b+s9oA1(`%H^Y#e9I}aA@}UeB}QDr$AW0yR>>Z>D%%C)f5Zpy8~I<+mTa%eCH`diAv~ z?H!^%I`X3pwy!>2p5B3H8(*TPcGsi)sOu}UYzH3qtGCyQ5heW*kk%ETa}f9ira;oj zqaO8Ofmd510B4A^!nmM(42((_IKL4zCYaxGMI)v7b^4oq-F)A|a+h8s$)Ca~R*c<+ zqYrFz`dZ=!#wu!nD_JiOV^R-)LgYPA9C#f^Y7pB?-oroBP!nbAI->r{{2V%{a;W^ z0|XQR000O85+}7z=gby}=M?||llTAtCIA2cY-wUIZe?_HbYX5}VRB?KE;27vX>NHg zQe|^=Lu_efZgehqZEWp5U325Ok?&V^|AD1_SWnfiy_>uxUgb2hH{;ECJh3#%Rb5@( zKon##Ly-zW*`uWPzvQ>%mt8kLNbpMnNsy9l&4Wjxh(>p#yU}Pg8kc|gy7HYz8Zj>n zej5CE{=?u8!~gt`%X#R+e-8Y+B#hD3%-_oI{8>O&bU5{b?fE@r@!0oh5MN&Kr?S;W zuG!@ZzCkxS6!FNxWXen23kAbmTgum5^Zyj?uOr;ICOE_@1u9M{0#;0g5^Ck~$g%tr_6Obmhb$hylVc;Q?^x^qHg$&<&Zvmidh0d6pYA9s)74X~!!=>3t#V1y!v;s4`)`0ae5TQi=Q zNkA7G09?2ZHY*yDIE)IM^8y$_FNQhi!lu^wlob2gZF`9C?^Z0`u%TiJo@IeuTwI(t zn_Y_iUD1V4VygFQD0lzx)-}y&10^Y<$BkV^I_(U$QQt6aj$D_nliuI)$*((sE2Uq2 z9dSNqKXF4jCV@+R011$$;TKvmd3K5W6?Kmj`=Vl? zd>^Y;$5iyJuOht=u6U@(@n}rjEu_IpyHokAoq!fnhio~SjVVXl1=p@L9n9Di+ zOh+mcw#eIH3{?P~NN-02HX)C6*NBOz*>_cwgM|T|^f7X%5269rjFhK)TdFC>bewR` zU~w2Voi&;Xl%=@=#kuw-M=@b^pW@*%EuWSU0#Uq)`|EFjb?SJc!W0f$>6OT&`}mPWw5v=KKNeE z1h5Riu}fen&S;aTq4rbVp;WeLo`R@9vSmQ54D`D=Ue_Jr(e4m`7Uae7xQ4wr5oho{ z|Hg$mWAFT%{q}(hDCZ(t!T6VZ5lN7bb~l{FB;K%bIH!9+vUM0RnuD1jZ#vW81YRtJ zh&jXw=#%3GEXKJGC(pf`qxk`LTvYkS-a~4D_fFG~+>~mjZf^^43RoC?Tt1%&perZIIV(V!57F+3=#@2uV}msL8H((tL;+$djjzZqzyN`#P(NNaQq16%nYSk=;Tr19`PoM zFxw_YOY$4h)2(tCP|SyIq!K&LxM{Qq-dzxvI%(66Qh`$V(um#Cxkskkb^WNTqf8&I%B|@pL#M&c4_>`2rIO(@9458l zJWVsBIvc7{kPX43fTgIzoRVM?Q{@ZoS6Iq3&8#cj*Z%i#)rbsS-FB$edwTvW zfTYoc#&`m)cKlr*%`BvDrlj0h9hE)G4rs6Ds5r(`!oIwtK1_=I)U{7Rw(wcL$AAAT z8Dc)D#EIc87+Vs5i&bv$u+Rs?N@qAE+@SeKVd!#A@vg$-) zdPD*K-11a_!ij|BUC;@1djF~P9q5{@N$~4otCr*#APJwhpgi-Ff^!R2fjrRX#f%9J z5CwURr9CS+m>ee#Q}9J6^!h9OSEKSv@;;C4&gTy3spoGonZr+vW%o8PK?C#T@P|TP zlX{cY$&IUJ3V{KNVCFR26-e3-hL}g1eBBqyPG%)B6@_RrT6StwXI(GzcDBpcIC1AW@VaO2JU3qM)SaQ!*4#ZupdC-%<%r|# z&3~z$zFTCv*R!(+n9eJ$HQ^h=SXECm*CKP?W9djWu-_%|z?$>DUi(i~i?b;^CApzS zv&+uC29dBSc!{&H$9K@_!yt|7?{HcRmQT&&^$&jU~^y$E2z>e|1 zjk6(l%jvW9CJbabl5}yQmgiG>j)WZeXD8N*ior0UM*=YyW$KeP1MgWZ6VNasqw!H< zAqBu-u3d(~^GozjPrCEW)*`#~C2#r{oG2WR8OG(gNqs2oah zV>{HOyW2YDw# z1G$dn)jTRT2PVYM0dSp6Fi9?=3eP>4Th%Ph%`L$UK|3S^yHP-x(MYH%ze7WQGg0m} z2nwE?7cJE{>pZl@u;!O>3-;{3g}cy*7bQws@o#onBSRz&%LSwtbxRC+ZeUvCrfH#o zqQ#ed@1it7N$FV0980%7_aHO5wTEc&ElVWE%2GqIrIR>b*}Y<4sk@2Mzm^VX{X%aA z5MA9dR_I4O5epCP_>zUKJqej*w#^KMt58J>h~PCg^HtI052mHS?A<$LxKs7{N1OY; z`-g9T3D*}ovU&|zmCXiLKZ?9L%~gcm$YbxKZlOB7w{wfK6B$DJKx#RqU*bNbL>x)X ztg8 ze>43{=KhEu{kC@LFZw@?-Eyt5wQ?9Ak$4JSD6HC6#mHa@Yk&NjbYdxMw_&_!^qMq%6pHDS{n%y6{@Y+c?j0DyBG^-t=w?!pX|R1H^BT8w+|!ig8L_7?@QRJ>#c}?V)uchU9kTo z?tKLW;Pc70A4=K<_fNuJGd|roENwd)t#5v1;?QQzI|ybg3jgZG%MSB}NomF~QaZ=4 zK=zSl5A&9NmnVAVB?myrik3$IxfcJ3O5=7N8j}adRZyC6 zkLqX$UByQl&@K|Ycd!nt4MX4XOcn6ok>FYQ2}|xrl;KIO+EchIx^0}+DbX(Gb;b#3 z)0|x$QrdQJyY%Aa!SGJc1XXucr!QdsJKiWDFL!qZ|4ed0Qw|S?!U}4S9L5a;uZ1I@ zI@@p)?W3Yk<-~J4Du+&vSyG7@o~QLU8XVe5GSwWy6wTU+vL+fjQ@9Fo$Rxv=N|Lxx z1)EEPxqKeUV2BLe+(;BI6KSwdDy~%4MxxQRqK)ooF7VwwO1=X}b9`^TIV}=lb@4yL zqenR5ll9sM#R#@eCIj90QcW8s^7sda-GZg|VA&e~9EGbZ5)=7TLq`=4jIIzQkQR#z z<#|QMHkpq)6LkjWO2#>7YU1HetmFLT3=&i>Fh%Qoep7vAA+|o2t_5~mINVesu`=O3Gb{rfH0|&7@fKVZmUFWZ zMWFHgbFopQaF=|b#kvr990qB?%W|x%wLU6?(NZOgo_;;QKD~9>_G-x1UY(sIW!8$t z9qZAnE(mOL4#heiR<>w6!K%i7Wf!B<<{-V^~!l=h1MiGSl%;7*-xvI~JBzALu&RG*pp3c`O{OOfc-kZ)lf<(g{k& zDMZ$Lw^8`5bEGVnGwT%JBjccj%1GTI*R~E>r>)YTnkR!cG2p8y)~)LTadpMR4+ z|E4ll`b{@GnTI9F_CDCbsjNfp2p>Yg2niiHH`92RyW0Sr2=82%F z`r6s$c|~H-iygTb41Q07hYc9mw}jF8T`(4b=`oD!CNjMW8spD*e3)=4wwwrR2j9P~t9Y z6|)cYDHmwiaXnl;SsSY>K2gkCoDk6Ol2?*) zyR!hM-Z}zbROSuwk0zNkI>MIDWaQWmHn!DCj0|u8cs*^y-{a&EUQlO`MIY}bFPld_ z9dNbE)UsT{+^HX<%_ zX`(;9L<_w+sDW;i}ram9lv{l7Fy%dL2Ptewpvmn z{eX;&q^R>S1x4~+o&Fqwf$mHFUY2Y%J4)5Pa9vTK#?+p5zPf&YJ-t41^Q^w&E0-7Z z(1rj1A5cpJ1QY-O00;mRC$&xskousmjQ{`uQ~>}c0001NX<{#KWps0NVQyq$a%3?s zGcQzWZh0#9Gdmk#mkqq#nO$}Pkp)C@ z5|F4wB_nZk7f)~*1T%^f`5m7bz^`2Z!!EbTRxr1HhbSJev%J- zvv|ZgGa8D{txrs^pE##z^2E7w6Z48DO)aWFe{Ru?xkbHBA6_&kF=c9XMux9c$r#d` zv4LD;3r{Zin;~~EYgLrSYd{IkSWwa`&w_LjBqne~{gf6`Z^o=EThEF9+Fcyl)$KCO zivL?z^FseV9M9S5Ov+uGdAvq)mJXM9#&I^{1Z-md1N}TU)B|`w8(uwc>il_dt?8=T z)lKT%OvHrh`iA<+kS5)*?WlYYo|3N{{9j!^b#?+WrYoIE*05vp^=PhU`dKm$>L!?z z?O(;%?AI9cHp@2z+Q0bE+6?~&2p!b+iH2f;Ns#TR{9H8RRZD~!b0t~d&XIhC%?M$UY+3KsM2m^{RjVqWWhZT{9iY^Q8eh zpaIWQ20WJxc%ErMmoy*}^p0q%vt)y{`Xsiv4i)I6e3QDCJpspZ@El&h6y?Gg_a(XmC=WOyqe6~=!*lJ7wjX&D zF!FsNXOqtrcexU|fb0%9q4C_0{^(+-k7PdV!(T=IH4}kc7S=YFMe3J>%#CHaj*Vr} z`dcZT=iI3GgyNYF9aM4&hu#`5PIM<%GV~UNrO=m&kPLC)3r1eS-?MBh;bS($$Uq>cTb)qlZ_;qHjLK|IN5#C%}rL0I*3 zso7*pRdSYikU>yQfH%_!zr)pNuVad1U?sOszgQwLYUM+Y@(r zRCT6lyrvzhS-6*BhhkPWSf-5$&KIuC)2EVa$cvgUhB8`f(R^`^Tp+AzPQvj zOF0pLwUapK+GT&^{YIU7Ztq-TTDfUHsw7<^uAx2*W*{~@_`WB|YVx+HN!#|Q~V_lP} z)-_j4d!LK;zDn79DcSof)81ZbZzSmTw*G`*gueg|JQpk%62Nr1FkZ?vO){v0OHlfJ zsK#mDBV{@C1~gky{Ub0!98Lj*c{q}%p<|wpDOf`IVu5<-Sm5gy7$oUZI7gk+Ox7v& zS8CQ=1yfW6=HpyvVm`(`HC3h5Bd0A{Q9*r<11i#N*)26>ooCfIQkG+NaWYt-;B7`A z>?^{1GKxxRBFM71z5plKXP~58pN=yg5idmIOU;OlNPM#yaUl{vZbnQZ@qkH`!&df- z)4XAEglkXH`o@Eqj(YBdbq+W{EO8NJEC-4kD2`>&67GmpyX%VqjX4*=?TXKtSb}-9 z$S_!EX&5+U&ssCb#po>|>{PfHz-!_XtlmH_Wwgd_%r<6PN?b0vTH-Q_#^7bu*h?;fMRJ8bpcrs~^B_1$LHmnrMJ&0e32!AN1?0s+y0?vu>HWe$0g zreA~O)?Z%+-dDc>K*P1PrfC=p9aYva38B6mqj``W3By8*lcOibBSTA^jhFgMpj=`i zE=NXDsTG)G3?!3b6@Taovy$ppSn9*M6o|vu3N63@@!#@RlP&s}#5~5jePA?_g}V ztx(bfutp3x)I@CDnPl5030NQK*D>=RMaQ_`nY9`(w>Jc9$GSBb^MRMmOUiWfiQ1T_ zBg#IHDf>LG{NoAbA5YrswOQHgQL@)&(_VgQug!LQ8S- zo!>dm?0n~O)&v(GyCxWZ{564Yt_hR|PP+!K6Vl+0-&-HFA7`x(&N|mf-^W5d&ehA8bK!Sdw+0QO^BlZXO!%~imPAzd0Hfa&Z zWq9IdOfQyc2yVW}HH|cFx2(Q7aVzpJMIPKlUWxP16&?2Ujd-*QMhw=0`UyX0Psu}7&TAR77>y=lxD+iA{t4d;wI zXwE>64v{mq=&jT|uVbFOC=YV0XaO77)d;6 z?}KvL2aDcKt>{gx=pm{IIeG+@*^!#(EzI*UFYIdCY)d`-bLE1$ce3#fXbY#09X`&qCAItsMghH`L; zwN0t}vO%DPxng?-$8SDPgJ+5QTo@Ad?Ez?VOYJsX0Fj*>FiX%LdO+@=)%Sv24%%v@ z%{2X0bQvX~9{`tK0{Z%?%Ga}fqA{PAV}HY5%4v9wN=lk5@j76!ppoSbz|Myj<@;QY z#C9e(_$2F1#6C}v6;hakMiPmtJVufu@fJlQv@yoBV)FmDQHfZ-i()V=&pAa|xL_#O z??8``v2>69hTFQ|cC*&iGER1|*C_iPi{pL^(i1QceaouU4oox30O4?EI`rMNNtP^7 zixj%1u=E{jW313vNK*ptuihn>)jwAJ76zXZ^@dC9O>#GGuiSR~MCER2uHIP(dPp7GjU8N zz-GRNJ;=afE39HL3?RRws!%jEVdaPjNy~0nY33sWl>7&d+P&C{%D4WTl8Jp(rjOPD z)1_;u(1s*ysQ#;@?W)oQags4A6QkM^7y|wz%SOs_`R`{*Y@i%RWM5*APf*)9<%m;` zPtj6Y3Ueg(V;spa(a%V8Fn5+*Bj^s?b;G#S2F5J7YycRaW>@#?J+him-4=|+Woz1_qQjY;-O>O-CD}~!P4(XyMBj$ zPbfs(WLxsePC{$=3EiYtjkQJ`q#|3x6?M$S!8-`=WZ;QDDAq#zrlS2)(f+CE0NDol zY*JVEG9RdWnZK)hnGfaK`Daw_eYJMpNo(i#&9!sBTstE{{}lt;OlZz792afm7{!Yk z|7$R8T+7z9dCe9+h>srGV^Mz>oUbt7LV>I)Y2REool!|eeFpbG%;G>wpi20%1o!TP`B zj0&UGR}~gE5-k{|=!RCfNz+}aNY`==$UoD@pYDXRnu)n=*cpUnOAK5=FTjyK#-4}P zB}DF^yHkp~k6YAz+@g!RVq=Y>gdJ1Vp2uFR$5yMg?@^&*g%`LOD|~cyB-7~XOs3OS z&*1pPkkUEHEV#NF5tA{aP{s@-=mDO3PNGuD|3<~4Z&fV%j#>LPU#nR36~&^j%~;ez z%0)uTehtcvDY?HYxxXp7ho#&g>idh5`!mV?#gyAp%0+^n-Av!Ok_*-%xn3^i`nYx8 z!p)^z=w6VEn3P*2eoyaVM{E4eL| z+#)5nSjx>oJG4-83rTJZQ*J9M7YTZ#nH}0Fxp5^orsP&hxw$B}Qpv3#xs|5e5-Ar6 zdR{ZRHA-%KCHEvHw}VY?J0-U*$!%xKEtPWHrOI`%^UVE{Js2wUF#zOfiGP@g$LUBE zU;$f>s$yG?s%)o2@+2`)*gSWpks;9nSq)%s--UD4hB2>n(4LysP=rCJ*woF*u7+zZ z?Zsk$yNUm1}8f55l)NscewR(d?4+1B+5AM#ZWgk% z?s@j$YR|nFS9|U~WdeevOt_Q1Wx|s@#pZBbR0npZ4(wufU~AcdT}+3&SB7c5g3B$S z$TfxXS=sG))xm>&Wm+PJS;uIJ?{Q9q=r8n+xa(48tar=l*D#9RxFh~&w8-&5lWSwp>PFFdH7=$6sat<{ZLsiaU24R>Y3^xeF z6=8%y7@-Iw4Z=u8IKv>E(X6&J4aS)&=O}|Ps#(s_24l3!ImRH2vF9uoEvxju;>Z~$ z^eS8(WpTY42klr|iJ>1Z#{DGRC#O9!I;WPVCE7ry^l(P3i^qE%J|M#7E8HWw6SZ&+ z*M`(XU)nEoCm?o12!dSgFd(%@%o`b%;l-0|&lzRX?PWwGYT!zogaM%gm%5%Ub(POi zV7_H1Q!K@knm$)KbH!VThLchIv*q0hULui(j!2pSX~;29G~!`T(TI4W4l7P{0+?ff2s(V`REX+@FXYVg^qp(g}_l7+k=nQL?bfN#X`Is$$=S^iyT!74%c1Egg zCt0?YRVRA?ennkGlpeFls>iywmq)rG z{FU*0sYYZr*p+IGB0NIG7`QZ;l)XeULQQ90#*W_qiuD z4rWRdCa4j!lnJY>agdN!Or%U&g_# zR9m`P7&@dQ*%A-`f`j3~;WSr#8aR6wJc8edCy40)a=P0?2aq#_+e;^ylNX>CUOJ5o zIyWLJ&orkgq%X%aT#|;t5OD$5e%LSbWxvc2jd&dNKjf+(Gmm&gAVydPL!Z~3uHoz0~=%-@? zy3)9n4e%r{v>M8uEyR7n1f>DcXDVAt$0e3|TLF(Ya;?0k1w3ONLU( z`Y`Du-3Q7s3x(M#`1x#O7U?7L$R}L?)@&@}gT9Y}b|7^upGW>T9A!^4xAYsaR(%AT zEs2w`aew}ICijR%V87wduj3l-cez#*lsT4U<8XbX6F2rPnC=rYG zoy%b5HfL434OX-{Ylz9pYtEWtvhtg=7MiSrR8|<5D9EVHYZ!_5QUls`f^f=QB8B1uyIg?kC=hF#Sr@*bv z*q%lT8OVS!zVJ#Kbg&l8r$M)ba_XaS;_$>hp2TQK#dtVFG~y9jd9-3Qg$mRI&p-KE zW{(-=9YsfuZ~jzP6JVi*G_}8WQfID%P61`K32Flr7iv6gWSdcRTjr3qs5F$!O&~+r-&3vNo zp}YR73J+;hzt=6#d->7>j{465k#zZ#TD``hPr?`zh3ExQW{GL*fX5bmEV2qd#(E(D z9RYU=Y?}2dof%_p2iha4G3H_`#>jKXn}FAa{ADTmJ1zzAoUJ?*G}VSACSzniL#+nR zlnW|!lcjPsu#8l^O05QJF)oi3jmzXxU|Fh%ER{(C zi|W>=q2}^zftxK@%p$5?S5dpBBe%NYF&GVt@erkT4=a$BSS2_K6N%;P8sEF>?&^xl{Xps;ZcB2LyjIj zYRq$M)I7JwKF_U@^PCgyy4foyMAXqC8stY(`F41@^@v&TDw$&pT=8n@NYh{mYp!Tm*J<`tVkqxp(Hl+5*+T-=e zdb3A5*m`8W>XG&K9$7DY#D%6`YgQd_*?Pnx%O2^j9#-M`m%HHi5umckI~ph!aYNQe(xs-|xSTvj1*x)_?b=_TRnD`tJ@~|J_MFa~Hw8f4Bec zAwHH%%=***+bH|*KC;$rs{h(s{db@2zxz`AZ{zX$@809~-@U5;?zQ*dy|(__XjYxl ze-`%Wr!t^aOI?LPO)Vo0g+4M)P*!9XzGj`o?+0K|l z252|~f>S<%a&BYR8QwfW?_PslAC-1}jOC%Rq3^Z4NKDWKGU12aD?y6|{1ofM^= ztaQ;Z8*@BEt}fvd##)Dpc;sqf239U};K4tKk|cABMm*%KUy407#~34Xt)(0)hD*6E zWC=P14NJKWI5^Ixr5rMFDYu0>p{FrXKT0|E1Wjagzz{5p-S3i`WIzWX5iU~oV;Z{D zXlN4c=B8ukAy*hyVJ^5+T}hjJSV)?c9+`yPbgUegh%Rs9TwFXRZ6tg}GbRfialL?N zH0#kG#pRUfW8~2Kjn)Xb&SG36Hy`oyLRfDy`x#<4S-)s!y+Wp_DV|X)bwq9!m{O;sy z&q`l=LHgQS^0f=lleSSuNcglVMX?B|Efas3?GbD?F=Ul@Hf0qlt< z#bN#X7tx64$Z5%2cRyKmAzJlyvM0j&L%674AT5N1gw9$Og_=b#vZ?Ke=@+&e5(!G>ue2r$xMl#Xs(l)Qj3u0+ah1urD<11z*5DFKW zX0pg`{URe4s`d1?H%vRdN_JW-*VBK)^)w!dHe+EQjm}5V6Gytescfr`JT2jW&K{td zhqq6WhqqyYjxSutDm!QqoOEImW3rF>g3tG)KH4dL{sTF0b*B@TDrltDA9h>Eeu!>t zw-G|yYbs4!Y`f(2)yGZeq`<-P2oxQq!sGnX!7sBS=uYL}ACUpyR}Ov(M$mg{dGV3* z@sFqj`x_m&Q~LN7=ndX@*lX_Pc|{|tfNul%nld54c&)c2j0ta-n(%hnC%j$cZP*Ze zS;1!xjGd-tFfgt%d)y*>^sD8)quRIH%IKX3wp+y?{D*YhI)cR?J9wORMjFPa)EMSgpuQ%q%wMJL3v$`6kVOQUP*M&C%#I8OSyLzqzyZQz>9WKP{k(|LsS6@dt^_wZ2 zd6T!mmAN9F-vUKkxuYXJf3|7#Eonr_Z*Yb@9p@pJP;8tvT*+Ihe$pCO%>p;Ge8~+s zMX91+L(zaC=LZsrwZe@L!Hooo`J-ilA!LEuunpdzSHGRBz1BOV1tO*eJjpvP3wVUy z4J|NRLkrwVg~Y-;$pXVtEa1`aLN4ftss`N2N&1x=he~%$f1r_>K!8Wq}HV5 za8mMa6qFuJ*YCkZS};w&S1OrnDw&qN&r&i?=-pAtR|PHjsSvFANy!l@N~Y1393vLbkk`ZmSY1X?9Ld4+-+RWATr_Ldd|M+dZUi4z_m+;2xKHTnjKda7Pd0DS>z&aIFu!o3(rhEZ0qLxY3V`* zDiHL{ZComBR2J|Oo$3@MK3nZViIxZmeUf6M&v>1Jg3W{P)SM{p%RfM4Q}b`T^{@*4Yjxti#1f@dn!iZ`&Hrl z?S&C(Y6TezZCxGr+xy+fxX)ZIM0t7B1J0 zn`Hd`R?yiiR;0=2fyRB|#em~G-AA?5c->2rvAxKVdLP*vz)xW4E{@da6%YW}laLti zpgnMteiQt@2La0+$Ib^Ef%cFiWj;XNHT_v`#%UZieJDpqzwkw zY^BafZf>LafUafyeIT}HHAMwv!0pe%pIFLH3aR5wc~ba; zTEF~YU%wz?WcXfX_}-oY5f~+DI2^t*l?bHSZm=w}u^+D1G`J6bIj&urJ&RidKe%0C z8RA$UE&^J$Nb%vXQ}4UH>;mxrzU0F{OCSDK`f$ox<2TEV4>xn;-&M)f3%u;0t*V+Oiz+?vzf4<=#R}TqB#{AxS+tR&Bdvi=7Ivo2;xL)lOg;AyrFDYL;qg^cAJpp37+TAp@5Y8mTrSMK${}LXc|F z>eiwWlemV!t6W34v(xwBy}LS!;ZS*}%RJ^(E~qWYRgd?v752ybnZZmsXfuKt#-NRw zt;k3^tyW~vXM|#Vo~J>J3|L|;bn=uzORdOI2WYU~#Pb*&n-<9Ni4+{4#F4M85?v^| zXhvs>&YIExqsIAv%yAB@7#PPtn{FS-(qAwqL5u9sx61LoP>$n)0B(ls0g*bs(Tn!s zy{wi>$1Yrr_bbilIH&y;61Cc~@t`x%`fDli;1`MqFIw?nw4iS)LOj5e-e5aC6t3by z#E1uYKwQNGJR^Q0@c^Y^JV>X0q|@XO4+dgC9w2W-2F8PQo)QmSJS85aaTyODmNQ!w zxAc+GfRfFk0n%hN$lw$WD3cKl2$9hsjl2{yWh?rRRwHfE0B4xnjj&*g2C|V}d}+XF zB+M{_u#paGBrgj01JrvZ#%2&gwzUoi))f|5OxhrIOYv?%M8Zx~#BE2Gm_s_3uYwi5Q0Va$U_J?KBvg>*$cpRaQ#3WJNL|l-`C>Uxn~w6 z+{c-F0zhk-I`;&)dA320XSj=G186)K%JJM%j^}YOh}38k&1UxrKv-e+92IY=wZLFkcBp(!}v)wh`rVv#-i z%RJ?o58htl;pkDvIR`iiXy>Nxr?#N}eudNC`zN^fUdB`Q-V?6^ufCf{eJrN3Ll)Qn zhT9AgJmb;|u-CZ!o`i#a4fp1!k*`!pUx|~i)V0U=Nh6)RQJlsXxM=7<6uj6*f8x$(s-o$p?u<+@F@#&Z^ea|AR1ZXGl>{c8~%mRyq_+MzHfG?-%1Fd0z;c2ZAo@~RQLWQSl>d#6Qo<`y@xRZoetMF8vIt(gg zc%rR^J?B_z;B#hLDOAEr;qTZ>ADE`eas%x{Y-E;fWLEl~DywK5i+Tgzx{tA!8g}80 zLmQeO5ZZRfKLW6*oU4!5ptl@xeTs4WV~!uMK@NUIGnUwmwfY0z#7EHk@jACkNr9xo zab=UQ1^f+rkkEty7z+La)u~aV9pVe?hQxY`d7D zmY6muCMS>sVsa9nqZsnnDE^X!7k>W9&uDRL6~u;=l! z!}V8sjPH3vX!2bsvSlyJUI(Z1b^7H$M~^mzA&3Sf^+vGQ7ca%#-CbH>ad+8Wbn&0> z-v7=dC-$D?nItpGyp!`Bg3>O8`-ea-n67!k3rS0U0y!!*YT%*3QHK{(-JSX`2j%sS z%3{!C+ovT#kjYV82)@|rIBeN)c;?ZWUCc7*#oX1~--)M=R2C=>;@tTxj~({|)N;DC zwTh@LKvVSO0TOwCFF?nEe2C87`SGrXv4$4?3(yNxs)C$r-g_m8`8uc$lr`fPm9Zp< z`%$ru?B75*BS3Phf>LGx171r=K*+Da$lm?ZJa@mxJUaE&b*hj*Uk zq6dXoQdl3TPFVvgE3QASjeOT@e9BWTh$Gt3Yjmy3%{?>oQ6)oyg=^Hx4fNCwBxU9n zfWEaZ_Urf{C=H;_p}g`6!dNQ8geu-&C^~=(1-8BsF$ zEIp|(wzjCuqHQ7jt-CdU6=b__+MWLlcd$8cs5n;>j^e~jPOK`#-}Q;W=Hpow1*yfl z!xKI$!`CY1&~aSL4;ne&dXi8HrXGIR_g0Y$xKL9FXZK>W%@vdY%W6NT(Od5w6+sa_ zd~Ne)IA@$vQ3W1|a|WR-u{5fc?-t)*Q^?eG`9!Ky)hw`%O0}P>wfpR}9wgSa;u!73 zW2G&bk)Aj3tuTWXPFeL{j=e&K#tl)+X+Z$#B#iJ_;f_z8@6g>FP!tRfDh zQnL=$nC2M)wW&CFiMKbS_Q_fph6||TX+C7uRij1BZ_XRm^o%HvgKy)qj}eIr7?p0i z{HYmvbU08&>^~=l4~RJWyZB9J&nB({jZY2Pk~ZM&>|hZ{Ed0{gN$!P*n~WD)LOSoV zL|%igJlkFk{c6cAKt8I%KWl%9!igI@O4jSlX>b2V9(5a$5>|N|f!uwAyXuBmRh5JT zhzSq#9v7i*;$v;GbCsfwd=O`roSOP4U$SP*PEuHYbMI|PM0FWy*5_*Rf#JmKdt`#O zEW$n}d+(&xB;rCb&umWPuY6Pu3f`1<>FBngB~%m;z%mt8^5ma8 zGpeyiGpbB_m04N2l53GF>eujsO1aU^z4sRT{o%+@Nhh(vVl7;hh8Hk$2M&uVvM^a} z6snr%p4Fp1hK(bP*VeiFptYkbSQIbmw|4AoNd{(>*P1N1hgYX5CfM$Qy*a~T&O?he zO}yZ|UX_Nrpcr$L17kye)=`;od;WS66aN@8pt7N`_1B5LE&h)cPbJp+l~2cc(>7Dx zIe%NYL5j^>^>Q`1*9N$r&2lA1%;ql)*>jtk?rT@jHHRRN9o}E(km5?b zxzDy#a@{TNpGPT_PNkk0(cRGlXFpCYtTLTidgBELC0D#>_S2ocU3GS?!$Fe89dyb8 zslq=^pUMNnAoQ~8RC6tA+#ybY;amIC;NW*ZiDXM2=CK{Sm1s^YQuNw?qdZrIeppjD zYmWY*L1pUGw~i;8MXx6I6lOBahVBSnH(SeIvr}F#HttO$cd$9aeL(uhDM$JNanp)& zO4CtZPC8@l!E-11PKnyRa;G%QJ)I@)AanB@^<4r1aO_nNIkoAcu`(^5eoQ=(X|I8P z#e%`1#Si^)2a-5 z9}kl}(Y&Ewx|N#xK&JYyod~#l&IiG9IuU(T+c?t$IFI}Y62cx{B^KBi{_7osg&nu6 zr1}Z0bv)`C(Q<(v%fDE^nH~Il=g;bF&Pg#AV(F49X(WTKoF!=jyW) z_%5Tx9`ASVwFphCMfQ)|Y}&W$(VZQh#yMX^Hs9W{vcrO`OzoG4)=;JFyAd;`G3OwA zlEn`!1LIyc!*zS?w3C+g&zqT6V(R!@$sXo*c zx@8)%X{I4`m}kgs8G=T*C}d5WsM?R-1tA6a*OW-{#Zg%v!mYXx2KRO6=*S7 zbB3po`E0gO@nbt-I5R9LSw{zs^-|&HP9LDZEegZD*lm3>oF0Y+@H8 zsc-a8D91lK3gs`D!Qde5<0?VoI~?Z~c7IkE8Y_kpY`7S*F(K4QEy>ccaiMTr?+J0} z1`ZcyehN{D&GhmP_@|yCuZ(WnKgPMfJqh$Oe>HSo$Akem<>V8VVGPx=O~_&m`@`HE z%y%qKkz_GIAyLHd(2-xOpccp}t#x6fMZz1++F$6NcEuMASXw4JSAne=b_jNs6Mu%op-#ZT4fQA=ygyIR*!U}Iru1Q0~ z&;nH;(U3VpQC@Cgf<0lm)PlPCFGOyUp#Pc*ah z52#n02*=cw9;L@7w>A>F45RF9oh+p0?3h==Sq8eq=6Lm=R43HHi`unC{B;e(h4cNK ztBChkpyp8H7{W;sX!D!7EA_dl*q&K=VW^F7;yK5~dOLyMj&J$mP#}w_2A=uG{6^Kp zvZh*davSpmGxPFzbbYk#0ftIKxK8%GpsHSaidQjxN-pw>r?IldM2!9!(=6BI1xGdF z_{7jej9@KEi5ynA0)|js%FP9`!SZc=Pt(z0d#WeLZ*xV2su%4ZbH%W# z7?x#8iQ*cMUlD8tao{@Di8|>`aidm{V?9V=C*C^BVn&{Wjn(Rv@y}K4H-QO&0)}7h z^^R;o2_GOehe&qJtpX>W;mwhK^q<8ciDs_gTYs5rN0IcR8|LNQHqeRcAN3R;<1x`n z$?g^pR98(!0mDq6;bc3F^9@!MeLo+x{ zqZEceeI;n@P06Lyd5ya#02GDlrc%!g>B<|bJ9MISh1LeJ(P_y8lXkx0+!8`R1BsfE zYT_h)4LFsXwgrHx}$p37IX#pjFO#R9!`>L=(-v3^+jl4N={Q1lNhqE`n zM(wZ5}@83T`RhP+Y#?Nja-Ra zdx}nm1>`ZdLqEm3X+pNAupy)txspI>-d^ElED2th1sR5mD1dqhZi!7O2%6)}yN}A_ zoKVi#mQnfv%R;Gci2L?^8?^R$Q6|$Z;teXn=N}Y1Pb3U<=XCo%vcv=L_)W`Z{Q;Eo_0_d}r+w2OSzCzf4DHEH z9CT?GGnDCByRhqC&dB2zpPPSGW6xks(ikdZUaFX(_dAwLpSknq*CHeTz$|%G6^m(> zK2!1}F!9m|DBA9(&Rj=FW`N_u!`MM0C2G`BsPYG`j8jVeW!- z`!8tiaXb2kv&S4ioZ%3e9@guj4G1*w*_ofBV{~Ba4PMZn5sbGXE#m)hpkq>8rqyS; zZEzC#c}3cs=^YT&k|QDkQt4l;FGKq){KLU~2HTSs%3EiJ&QiESWio@em_iFyZ%(Vl zI986cT2}mC<@Vtg;J2*x=y}Tw?e?N}V(^Qsbwj!owG=`lqfcy!>{10G{n=)@g*Ra- zkH}wU@86(fVt@H$a;F&(*d19rZ65XI1xxST!k-E%N@Ixpnp4a4ue`Xp-yJy4h-}5a! zP%ctPelC9Qka(yGRHB+b!90FGMy!v~iRt_cfANPLK6O=bq&<51MPuGF2FrlT0&F+zB1!fndUxZxR}6h?xCR2spF<~TOF#Irq%r>C10x7>44cNyHM zV9)#hf-_#7+#&bRL^v)8Mt0+pN4Qy`3=-J8_d@Ace^CfFV4B%1PfcUD6xesNV<&ts zw&htTS8*%AerwV9>)mwVV!L>GYlBelU#a{Yv#VC%Dx=0C{s!9Zn5*%NVNl{`vd_vV zp9t}Xj3>usc3u@Kn{nB(THM&eW>oI)_tSHKSgo`LroZTgAWh3?)7TFMd|Z ze+Mbqa&H*6`_;oQ^!HQtMsIMoXib&_gfkw znPSV)Rs6H(Zk5F3llFHbArF$DmZlqElH!~>F<&(wM_bobanCP;lNlj;{#iqIJg6e! zpLyCTa02$)=)nlz^?~$#LpBg2m;#90Ytd;2O8!eUA4z>cHeXE6Wb(&MjyS;nV_t$+ z?s{eFWYBM41rX!HNJv*uI^JPrevZLt&~*+@Op&k2X-%(30eX|4$3G z%MrMm5+AD!PZi>lDR}R4H$my<7_N7ECOvMR6{n$`y6ESN<8f9G+HF>r$mGyx&364f7P{LG2nRX z)PD=D+83Cdif3jLi4ib9cE`GJyUU-`S)2L-$TnQV^S%dk6np17H)upbul&gdD0%fv zh~U$Qn{hn_nrQGY2H7$*&nU7dm2L}^E$LUCQZk2_b#*?6o$YC*Pm(v4-6)`pH*%)h zm@xhw%wgoRH)Z4+Z_oVv>@3!(yKt9sSKv&uT3$=IVKu;(StMl|2qxP$+WG7%Rb4b;c1s|-Lke@r~$W`J`deO^Ukt5ls;BkhT=H~lv<^*KOb=c?3z*|3= zyc`zC(O`aS{1+db8oj8i%Bu~1(EcH(>KU@*FqS#wR~Lg1o+1}pD>o?jRz1uoIGfU9 z+=#i~kaKEQfgWg2?F4{OhB_Jn;Ct}5&LjdNl*f8md?%T3vH1*HYeMNVD^h zB~4S#mlL?`^4h|q*;tx0l(!Xgo9K{^s83}R^mzRdCGaQ{xl*fG zXhu7*?6x0~mlJ0WW;PII&L$)o^DJNCJD>&|0sIncUm4G8zFQ>i23!oS$kx~P*WM;o z%9)a%l8q5Ezw;1Cx%a5JovYMnDUP*lYNxZ{KKNTHGk;NY_mgv{J)F+ovX8$@H9HQSAJ7)cx&fr8^sn9{JD!N>_+7NV>H( z=XKj+&;yaCvx0Ck2Xu#H9~Pt9Dg`YUGK?wAv;xpQZ6^OXQ9cS-F0=&S@7714UU^C< zpV5c=VBEaF5=TYS?Z)2d_cPxn@+UyAxx8MX(dn(vO$ACX~tXLfJ9!N0WWdfi6CbgT z6cKR{U7q+ve5+(h&faZ~HIQ%B&}_k(&#z|q&vsyQ$MF0< z&SHty?f9|{n=6$S-vTM6M)o8A>iQxiQPVBovgG{ZZANHF+f3~_fGl6^vlm88O9tpS zY;?_PnLa#xHGU=_Uc^25?07D`!8PA%RrT|V_UX#FXwpxsdMj+dr~sd2`%O<`7LGdb zWDaHiCK*>sc{jg{$(UkJ-je@V#>8 zsoSQp5B=f@l%9pBu1w#lft{i_4><6CQPq^ZZWE5O_{v?!8 zs~GI%X3V!*Tng9rr=ININ^#2jk?S721De2lE zaytj7_9BBqeYLlGt!(erYIa@33Mz;p~{ zvk69_tUYL7{bn|))~={OVx8CnR4Y`-PSz}NQfH!9D2mrnH)J>Gj^|gqw{Be;WuSj$ z!aXq$wahRoK@9++h#jApIPp?+aDCdjd(farCla=X5BL;oL1dMj^@ z*xdq2=P4Wuw@(9%+R*Y+#RF?6;M5$GSTX{-Z8(~ROn5tE^}$|-C#!^r5i1;Pn+dzXPoS6dW(x(i^Up4ImU=>j22sX&|XR|6VmI^7Td7IA4LX@s_R^GH?s}aJ@Ju{EPE? z(WMh;a#Upn)eSFbQQ2B2h}aN}n$aefiC}ud2{$qSIV|>H;rPkwt-v37=%sc0{S$AB z*Eiz$x@G^+eoouT?NeoYeeOQ0&vi_5SFj$XvrcP7F?&;t!o#bS4r0*$90p7ruY|=kJY)_s;Krp0kSh2RMtj{0Fs;QgE4VAbWZSE<+Vh%5pCc@2ZCF} zDfeDMmUmza$}JIsTlGdBV>3)j*i)GQXA?zXKNe2}UOlLz!;Q;^q<>z2p3M!Nv3&Rt zbI_FEPovWDg>RI|XS%djC0wsK-7-+anrnE^ik*PM$1AFRFQ$z<-}lB?OdFY1msfmO z3`~l z>W6nd8-pl^Vk1;)Kw{VK(UzZ}kRwI^$SBO|pl~WRke}MX=@SE<5OzSA)iq~r-@Ox5 zBfRUKfEVQUyFvf0@5p}7h;}w8=c(r^4Di_E6!;R^sjV7y4l&4k#p#hZQH5z8f)66` zo7Y-sdZMt-qzTO}Y_Rsh`zXB z#5(J#Oh22t&b8%VHWaEO>tBBbZN^L^*#GKJe)xw#Bg1$Gc-HS7zTJRR}APR@j%OmL6@aEj@crpc-e!cNE+7}C|lWUtGso#|p6qPx%{ zR&a@mR2Cs3Y#q`p&C`avEmV${?Q~4p!4b085Z*ESR_&L43h3O?49B!>cwZaF%OonS zJLN2rpuzgC1U5+X%~8piP!%tdfR|^>%BFwW$h7QhC5Idl3E?m2$ku}h8dE&#Wm!ZyM)Q5(kFkmh1dvf(BRc)=zqGS*=^?JF zP1Y5=ijn7Kg8%e4os0U!K>+cZ4+n<~$Qgq=L^2o>)IR zY5_O1K3g@nN}5R8Zm^9KVlh^V_Dp8dQfdRuUOJEkc6`DO^zS7kfSrG8dD8OXZsV0t zf56nBj)+yXrZxQ+Z^=$@e{${RD8VN4S+u^`1VPVAu~ay*v3wL@6HZa#>vt5O#--HD zTQ-l8!dQNc2#Q}B78UR-YYb!X%^V}#RLtZNhQ;%P05cUR=}BIj6+&1O z4iXvNX~ITD)#*&XmM0He(r_1E-yw+Vh}7-;0EMX)c`~pNf*Cgo$ftFqawX$jMd1DX ziA^@bpgNst-YTY@q7ec{TAe3K8J2mPyhgk?V zao*mFXY#v7EXZ2)d(fL^)H0nN%4I_GZRDAVu4HvI#)s01SPkvwTw;gp*dF5QyxU?6yarQ}@=(%L{yM~w5=6b7{)Y#_r-|mFVr&}^ap=+{Eso=Vm0o&cNugXSUm;J3} zP@%v21*6+8QidWmS(zw?+PK)>bq=Lrt@{$k1kWvv=3` z?zNp8T#5|6&J9y2AZAIg5@-T__>o(|N}2cVz&;QI%|H;$xk#>ACCRG>_)SvDL4txxS`d$*yIDriXuW=rk<7P@d~T3+CyX!Qun)U<2*GW~v}c{;E8aaiFQ_TpbT^VG97){~K*$J(_* ze7yLuov@vrn06I(wYOPBb?R|TDc0;2=oI_pR4c4<$x=eJee`=~XwFvL?w|2jZh!RS z&?C}03h`I5DW?Rs+b22Iskb*J?6%QLU5l*QiX8OS*5?}LF5>AA>S`5eoDgV(B%IU_I5gtw zrCIigvC#G6A)R7%rDF!9V*=qP%tc{0R)LG*$Xi6_MZsLr(m>)sAIK?Ik2)(+ppU(% z-4J0t?jn5Pvkr+KMh`(Hd0^FX3u&O84)R`wdG=OI=n#zoa*r*nDZ~gfwZ?+4&k6ZS zYru)^iMJ2znAo0?`>yB09{m))Cl7LpEava^Zj-tHZr-;+0wUD=09S=I`+tIC?;N!U z9wLMph`7y%7Fagmg!UBC@5KKk(+_?J%Z(~i-r^$-G~42PKU3HXW)+@5=s|~M|0s(i zJ}>^fb{MVEPW%hYeb{Qu1E~Y=Ox2mOZw`q8H%9^@9EyR)PScuv&NgGBCx6fZH$hU? zVW;A?&_sT`oLGkE_mlR{;NrbobNqI-ErMG7i>XT)OkSN;rjj__;-yi5Q|A|>^%>)$MR0GSNg?- z*DsfC=|p5xT`Np=4c_9k7?7naD=6b!QC1BvJj7Tx8Eao>+YYXlKhM=TNh-G2w?dKY%C%)3`OZq+x>5e2-W5ob5vI^lb$Kbnz5c8XS>??B2s(J$LR&Yb$!pa=Zy zmD(J>t|j!tAxwDHIMtX1!8CB;s{_Seeu+a_-inGyQ?9Qq!^DqUbD@GW>Ihz)qV*!o z>2B$PYlkfDEgxm}Xfsu~r%K%IsVW>oYJm?`+98( zVy>UF9o4#CJmYwoxqjyJED&6Sf4;PmLUlop0gluVv({^>u?s@930sXnuznSdFEF)z z5Fe39zR%+AaSz$0tUhG(>@0PNHrVEuIv4!kpd^5$8TUS3AJr!{jJ8E62;RR)NR0do zs0HPDZyH$LAjIKx_5C)LUgU82^LGLVJ%n{K7PnHj^3~r!J*#E~R96{+7F(i!c^I{N zQ~T2h@#kz?X`dLpy?s}8I#YcYE6%6=Hb}}e&c7`eHFe|~@W&S!`m22d@g$mUV(x(w zO2~P@(vRDkN9Q$6*IGcLh%%5b4!N8&QlAS_nH(U4fd`_5l6v{hl$O6+fH!nE+e}j~ zKVao|r?1>DF$eWHemrdeU}Vlfyh(K%M2q~iy5+xQe^SI$d@fvnE*!5rRn&fak(m|GQkH6qV&p>7aAX)imx2n`{-ZCn|DX`8 z;6OiaS$OuHw|$84GKXzXKyTFTAW7C?0Cphy%jBB>mxwlhj9WpA=v0@~WF^T#ykIGQ zysMjw#wt|&UUAC3MSC?>Z0VUzOlT3#*&VZA9w}x3^WvO*lMXZuT~Bz+v@cIXDZ+BU zK6=K35A6?OD*Y<+Z`^YA*{vN>_1TP%QT6$6!Znc*^*>>Fp4V$_cm|_6cb`FlO0JL~ z&D?(FXABhNTy&WAv{Jn@M!Mo6kHQeqYx1lk$YbAI^@xuNMUSrF^J~|nWM}?Wa`%HR zghAx)2UxLGvLi7t*f%JHRGDZ&u(P8vTd{K^%3tyY51Y=H&v zBpH3}zQg>@S9XmEe)q=(Wq~Kvj4e?t-lo!`(9C1yaD&8rKr*ps(CgIXF>_b2QQg1{e`cy2w6SRbg9KsapM?pvZuZ z3KXW;Bw|Ixh$VzVRz?3k1sFApD+7>hHK^56!uGoKnyeZW|0;yXesLOUFBw9f-~DHF zUjCJc+2hB_`4uG2Vt`pIv6^R)Zg>hz5{XH` z<7Xd6CzseoivQ(;Ffxtr5@2ufVE_9r{@Uj&m_Gz85r_9iXA1adLV3)ovgN0>i_~4i z6UzFQ7jk-28dQ{@{+!&PJJ#n_r=_`UIM@}{+QP!#z3!8GGj1o&1o5I77ca~~&D$IgN<2A{PMzB^URmunOtlJ2th2DT(0=ti_CUxlbRr;r z^-2a$72(unKlw1Nri)A%Nz_^M#r+5?ewCPir9Mu87WDQ=JX&4TzXm1;XE|Mh3)|lV z2oVzKYJ`+{g_RaD;Jmbq;k}v!#A?6q330P_1oI(hpjcYF0IQ~E*%2pL=^O=JmTbJ6 z1@t7R-VWX^8y`gp6`z;LkhIi>uPJs_iWMq%XSgA}(&vHXMBf^+ zC4vNI0BwdiWA`fY&O<-+LXpY@yHUOK22wCBm}XGM-B6tiSk)=%$ITMCM)T;#wF*0x zd^SFgcOY#tw8m_S67|oZQBuR$`l!%c`MxknaP-0Tk%tZ;O`vIESJHXo_FW+P;hkaC zW|h>@u>H~b5r_11W*Pz5pA2Vq<{EqsYJd}JxP!kn&xaF^D`}~W=;--WvS81e{oeU= z2hJ92DCSwg{Kc7V;&KX4{pp*jOIO;KXlM>CD?KQ83n>&2ot?h*`<8DYgLoT`}Eq}S1e; zjN;B}t4B$&9KNcp`k1PY_Feo^ll1cMym)RY{Fm%xxPtwpMVo%+dqrKwSq-#*iH*c^ z)ZyQGE#_V}HxAcEg!lL>Z(8i0E6g?n?v}0c-EQAR0OegCO9&o<8Nx2YAyT)&)-wVX zHcaiA zS3DqriTFPXf9l&sNWsi`&DnAy@-Bnqe0j0T*x*P-MG{4NsQ*@m9Q0)?1)+xlA`l{m zr25KSq+W~*+=MB%+brPrap1L*r!IdB2))A~N7!%C8bVe@c!m9G!3bo4Flgu6c18-; zc#AV)q3_H0<)gfuf3w0C@)&aaa!ir%8hH1 zRQg&7{+`P=y%<6ax&rx{Ri0Ut@+M2s))$Ww)3@%8>JLu%jnTofSY;$zhfn8VI=gPBQPMn z0X4v7c>{|6|38$o`>y$>h4+7uP6$;(R*_ZESkZ;)AdS6T2<5W;|5uC^KS>itcGQNg zh?xieHw=#4DY4A|wf^_9O_wtu2OEg%t*~ViVue40vW+80M&d~HR->!Vi!S|EJI5A^ zQOt*)@ZVG+*i@u`;Pfp?{QyaQ(=J*i&MQ%jU5K#A;dbPs;_a~v+!Q|W z%K+nS_O~mZ`kpi|t*hOow|ATbwp?&|h}B>`Zl1i>_Hfm5B)(rGgk|@(AaEeP@L;1g zqpXHD^v$5YszTbfSo*}R<*n@)DSSDvrH>rG;dU!U;MalAXApb(`C(87+q&G->KK84U1ej}3yxcPdw*h~g zl*7N0mS=vzAFecmXX}4=j`>f4C}ciDP3Q}SJA79Xd$HoNX*+oV3$|{=EMQVuOOwH4 z&Q({k;x}0V<@ZIJM#=(AG=~Dil@Ol^O0`Idb<`7y6}h6usOpj_cM5*T-q-_~{+!(E zk1;66Xy?Trad?_)>=_=Q(jviLtU5vO{hQ;URNsjyyGDofv>_So-R(c2+U#x7njW75 z!Iu)f4oP-!L`ME_kje2=xS$}Mk&U)9&MmJDdS*sLf5k&RxC}O3BX}ESLdZQO)^i*( z>Z`($WpBQMDB#xMnzt9su|Ka#(Xv#`-L%PM6QsC>n$swzGYZkfSYPYLeMl7Nv-(!Z z*V4AQiTbn!2rTu#?x&m^D+<=k2$12v@|hzW0DFqT|1^BN{5?Nja0rq58S=kA&G#U8 zx(?mJz4{J`A->ohCctlc9xDdZ=Jp_TI!D!n9f{=L1P3i0DTtD~Lhsz!PimnT7kq-S zN8N94q!IfABI^`ui)3(4@tgrV2^dcJZ~t^;TrV~Nd06`WkT8}9I57_4m_go77)1qf zpvywudk)9KNZ70q!n_$N_UAdp&|lo}Sx2-t!BxLVju_&4H-kmZ3-ejw_P>bZbrlo9 zK8xc8nA1S^gXt|VWA2%lenoY=!b5n1=^rqta?aqn=d9S_y9sBddTda;DQBfNeQ3oL z5xM7r(&0AWSr=j%pgbuD(;G-D!au6jM+G*LI}?p_*J%JTTd_(q8>#kx9);P#k0iE4 zb+_U`rbcIq<@d}BQ4P_5$^_C|B<9QOR0_NkM6sUNi|V<8k&Uhvci5mof(npQ0x`PQ ziv85$<-ui$!FQ$}rt_%k@$z>CJ!IE3;whp^ONg%`Zz+JvcyzcwFJ**qUdS0wwkJue$wiw)JM|>S1o{|@NM*qyUC{CYSLefix`)ZR! zCFxn&2CwXkV@Denh+sXhT8;+8&4qg+%0hl3(Nd&;CU4??<8C3_V&O)GVFXhBWarul zY0N;(YW&w4mVf=0PPV4xM<8T1lH1XTX~7i^#dWj|!7J-JbP{g&d5!%M zya{KE&4!DfawunuJE2TF2Dhs49Ha^GV(+cz<#$zsXArX78=yK{EpYv=u``ITnBplL zmcs8l-yq~b4||;uxsT6>@p_$5xsNG^Q+hYit>-C*i9&iXW{bVZg3zBtg6Y>SgfX8S z-}LOB-rQIqaUTZ^b3Ng|VMmSaf%l(h`(r{(cFE>5GK|mshzO(h^Ya=oHCcif|Gy}wF`6Fs?QlYBk8VH=Tac@KNP0@s<( z3lA=1>qWI@fxxez_$PY8eBn_2?clv077;IQ9gsR#T1cD|z{;IzEl22hYHLkCvac=05#f+MOZ=t78uuPtiUe8bMt-tYK&l#K9TIHXkMMhbZC`_A?XY^w_Ppri=sb&8Z6sgzvA-R^;(SFV>rwkEGn^yOj*R$Yjz#5MKn-!9{MhlDP$wRD0{9D zT!huTB&?Jl(&L@^^7n|-iI3yf;R^H7@p}D@jP|Y)jJ(;`p0MzY_P3DW<@p5*Cbkl@?iT$1x-5zj;K8Q#K5XSfBhL~^Jg@92E0Z+`c*!tx9lxxJDTrj`B9t`$(9^orw zT733S-d15fb!{$^yVhm}(8b|H(x88>zig_Hr%NBRMCY!FlsS02=C7%gGk9w3yQ|w~ z{S~i>2;Vj7Z+>3BG@kfY<)+_ zDa;DG2Gz*$>f8P$CD%3g;c@uWkku?uY<;Ue5H%T|6mQ$zuJ~u-IXESMdv;^iFmtm4 z=LU28^6AAyhv!_CW5=(kEOs~?9Jg}cwolpGDR_>jSYea@M?HZ<;B&|Qv%3zDgBfO~ zn6J7=fEbI-+zsIzVM}vjFUM^yrru7@HOQDYnL}ak&*f?;a(VkE9)ScOITgawco0&*?e(rQa(F zr+Pw-tU9f=c}rody~VKvD!1-SyGO-a4W;4)45L+l(jOS+3dC4H<2zpI?U+J5n2F2V znu$d`z`dF?j>rSBbM@en7v-bm(*mk^Inb+k__jy^=byo7nA^GzfuFf$X0{$i)FJ|L z+lO-g^bF+;+*~~PO{wlYys!4aRLvfX@SEyz2|!rN-+7SLce3`MK68A6uMYaOIR{g` z!Xka{4#gQbO03Vl5buS)FbyrP^aWZ5DVYoWpc6HnvUfH#FN1m2VIo;eu zZk`AQ+mUNC`^VfLw&wNSoJ0N|lp?EU3%SJYM6^goIRu*KizFBZ23~VzR{U8K~{YSnPU_18tT%e-`TP4*XU>$GHawRDMK}L)P5+zP-L*p|tDBDsTdXTgFdCc2zE`72SjsijkEZaGup5)tsK)qNfJLkJ zf$JEdHP_XbqB<|`YJV|9!Qa7|DutqwBfIt+kdk4vm zR2ZVyB%Ceib9WgYKgO;!VfHEh*??PA_cYgyS7$CU;{0>@k*hqFfa4>V&38{C!1B5l ztI2+KTuHQ+PR{6fc?8=LV_nftr4ZG_j{=IL>^+Iwv+=-<=F!XO)3sxL)m?ao?ez^xHRkrMEm*GmcQkB^G z8_j_^1Anb=pX)*?Vy!Ie1z7T1aA}dOWJNnk_C`ZljqIr)>sjmb^Q#Qd~eE%tG;gN zt_UUyB&k@KM&I~_lze<|&BJOwQbZ}ETS(ci4Eek*lWMT&R+oG74Z4dLD= z59=4CE6^sr(Df`B`0a4^*HDV0V| z*7a?}THC$o&+mcex>5u_t<^CZLQAW6&Dq3L_m5!U9s3DrwHjaYwm>(XJ3Ja|Q&F~hjOSuV&Y&goo2V})Lf zt?2n^KVHOGAi^=>)fD!rjN6>iU+sT%6lS{BW#MBQ0=VYDqkPcw^gzshe9OA4mo-P<}pD*~^UD@5HTDumb42C`yYv-A)&OxCRbue{CJF9txkm=mY ztnu9DtdoCLf(la`e~xLxfdxOJKUR|3*lOGjTiU9%Jub$RG@JTNO39`)eQ4T-py^UX zH6O){RN0%TvIZ3Y7(TGEK$!aV?ibZTRBXlH0-CGL>z8A4klpY2LnR*fk*gl&6Ck@z z7*7V1`A+6nwp-G{z!|ABnc{Qnirt8L%}h6I3r>m|=Nb*JJ6oB-fryw|{uqPdEqRsi zp{YxiNx#I>qggz8By%%dYV8ZP95gRtTbM6w8z_=KGoebsd{IWBd@u`Nak>3mAagjg@XJbFDGP zs!mEYX^f6@&~%Kv#hP&jV>_VjwA6%#R)@aa#76aVK&lmjY}K_~=})uv5p=)f&&qE4 z1zCUEBnSub$dwu-$(Ra>4z4KMFRvD^{RJj!4MM3ucbE;D{l<;pNTRHct|5ld(XKc1 z%GaeOl~%}e<-Hs4Vo3-<4be-*<4+ZRkLlw@X#Jyw>9bGY;j&rp_v+D>upxJNt-(Bl zdmPG9fkv*3%(+w?Vi|?6hrMiN@H%@RZ?D6b3Q`Z`&7xYIc?4+HY zh>`umT;9m=DKg{t)xvF9%Bq9|gi)w2V*56HGBex*Xt2`b8D3xP7NwoTvil-BYRheV|&aCUzRH`{C z`2e&9_Ja%Y6mk31Fcr#xE$M`I9L``Vjpjs+G+dpw^)ab_g^ugK6i)2hZwsOIea3;h zLdl2R!maY3u3VS9rD1=HP%Hg~GbYnz1#?X-=f{2QhRzGD*2_WieU}S9{Y)RDpKoejl8&>~xt4*xi*d8L21nt0=AYA8y-j^C%pNH-m`k%v?1dTl3}1iK3Eo*Y$q-E* zALe!Gn)cBB%-~1+1Zenw0D(Y$znGF-mkOUF`7XGI@EkkYNCoVrPgJrl*$};s{o+8tXlG+0uI4C zS?IFo$SSQJ$a@1G*XYpV6=8R*S2Au(l?DJ z)3aUh35EVt5@mJ`IU6=SQnF_B2;K!3sne9L$L)MFyntojp$RPXK3HxNJs!*r&l zE5g79ul3|bt=6#)Qww!Q^e&T)bL$J9Wx(uvtn?9}gXx51MdNTBYX2^mlx+Ae%{Pg$ zAEn!2tyB)mGYwC;h-Q3?XNp_H}L)tRKq!x^O1FlH~wTr#V;nyQ7Xj&SSl znXL1(G&f*dh#k&Xgmr^>NxN=NX1!t0gArC0oJBI;S1e3JmC3l&o7mKA(Y1iPQkhBi z4P``_VVCVRRK#BEL;+)AW~$J|LsLbp?Z61PT%GsU!rI*`mk6c~1Ol;bZw-0tY& z68myTiYx+qbeD<&BCRUv(#kefD47;haf>Us0qziPf2c0Y%P9+QmteViC~vK*UM9p{ zJdd~ALnvy4Si%VK?oy9lUecgww>&?3SF!b zJB+2yG3rNu&rv^C4{XV5KH*HZb+BxmP`;;CzA&hW(@zF<$llSG09V|D@=QPnhg22d zeUB$OT>I&^o(kEad|7Dgw!--Mq#dP)F=V?lqmtU)Mo;n`Ozl_a?3u{9w&v^!$~k$| z_I1r2JLPrei5s&0TDem!^M#czka*x_lW=zZXsB!x(3zXLlzbJ1y;eCz59uyp+$s<9 zIKOYo>DHd&^JCepC1$k)Hl}mm$No@<3*OmhUa@lPI~#9IDBp_H!%g3m;MMyZN@5!w zm`%rKl5yKC_4HYGDGAP2V{CvL^*CZ>jvf}aQ60qO-L+JmnHykcH#DA5s~(p!o25p8d0}noXI?wk|gR z*PTbzjL>QO^T^PXQ3Z2XTtT@FW2M4(UWMgrECRIRu}n(ji6^2qE_+nT6n8j9s8|Ns zyCcy2@g%%smAlj%4*YmKgEpag-nP&Mr7@w;%M(I=(yi8|`I=MIuKl^>3??SW-FP0c zs;Q_6=KqD+uKwI?wvaiJi)E*0y?mM4W-${$R)UEiU&jpdNGZd*4#UYJhitCp`_ z>}~SSEIjW_!}Bu#ehoRDNqC;LudHeUXF8j&oUG<6XRCP{k9$Ma230xwcj>`K?H6b~ z@4?m5tL)i|-kU3@q2*GQH19sRO&ibEV6t%-hPT}EM>cBXp`4`Vtg`kmFVr*DK$+7v zlFIPjn9ALG;3FBkp_GHE<*ohLr)oSxepBUPPEhf%NHVXajUTHZcoy|`8c%S1%EhIf z(Dg*)R-Zh&U?-P@n}vYf^xERpL`ScyP$#X^*lb?!1oahYP)*-~L5olf?PEJd_sBc2U8?{f-rcRuu+QFg@4 zd=al}^TbZXnK;kh62Def_DosoSN--YIU9N91T0`|g2xf5x4690xgFi6YGrz|8?Jb* z)YYDc$$8Vprj5tT+MuX0wf@4Y2+3&(&Ne6A@HpSq8#cLuUi>qI)`WMPP5XF-_vIbw zDwId_sui;>c|V9}F6GSLY^r(G^BFrNPnezLtV<{0DAlI8?$ia&aiWRwy7Nn~y zTrW&{lA6?7;D_yM7|i5tmDxy9-Sx^}xNMv~gpH>%@mR_Z@G`&llWf$Rq-}O7H>$Y1!Bb)vCD1*ofFUo_u{B#W6sdbg= zM~M7~s29>i5toBBQQCrw7OVoiR&t-@aBxgwsotj1WdkB*j7E{~0H}G1NrI9ByqW7% z`ul?tkrk1dAqrTKghgOc2%MpW&=bHcq1gf_Mc5>Gl!`cQ5uv#7<*5slF^|xS9!($dl-=)?tay4g4@(?FJWISEjgXU&%eNMMw0sP)F_e&!7*=|;h613tg;UZX zGg59rHCMh5B_|LYliFHzLh8@v5QA(fr@6}0MNyum>6|yi8HA2&8K&hPmxkoHwB(bK z5@<;bt&kPTls=OZvxeTH>q>8&kK-gtLDRo=riq{Il~j)6wST+{G(1>HrWB1=jfLq<9dca$vRXUV9y z^Q6+9)6%!NNw&bw*WezPUc|kw3#zdsHX}Z3MhfW?5oSF7W=&0@)}R47IwD z%k6vhwj^{(pQv$K1ZOYe_C#8+Lwr+Cdjs-qfwFgqf8svNlrC_^^#Gwf0JZPb{ifDX zK=ldj#;J7>6y=YVVbCSYqa7Ehd{$2TURrER+%HY5%kr(kbrr5Fa9v5%xF6|8!Lyra z<7;`K)uaYKZiAH$)mS=Tx)mNSTFCW1iCB+EyTGOKC+wXZ-{|Fyp?)!G`J4>Ds70$c zo%p`ixHCMirbB>+KT4OPj=1VqqjnrJ{4#XAc~E?{ zGSY;UVRyOX3f%T@X5DXI62Gj1v?qmK9g=I8(FgIDc-cYo=@4?QsP zL-Ik{by33z`2kuNGa9aoQe?PsapZupxOL17M;38h#0oGh%>_6jvNaT?#gQA0g`9)w zXOz=Pu+7gb;o#!PT)PoDq!RFL+GzI&`4*X5y@2nFBc-pZLc$UqIp*h^3M{0sBZFiZ z681>x)5zm`Etk2Ff>9H^3k}G(5J)2gYn|&cnG_NXocyWMxw^%zvnV2N|T4u6hhIFW36+ujV*@3$vUWm>KZ_+Bf|^_$QQ=X zALJVp69yGX15_2{DibR6*>H%nZD}n%a?UO20Flyzelj_OU?5U@xZU6GkCYw_ zg~5iPz-OR=c7Hg)u-%Ww3o{NbFd57F}>_AzMqVgS7&x}t; zO8+FX&OKJo+@(h&bDvf0k3+83xhFV)o7ur1M2c9gb5GYteTe>ITf|~RG=o7C1$IC% zqYZ^L2J0fFe~GM%lwJup5~5x~R*}++LCOA=Hc`ogqRuv3k!>4;s**6qX4IVx)wL)O z#s=&Ohnu{qq%|IIQ6}$UDi1ceD0c-T=t(^{EbyxhEM1gsDC}2|rHs}EjmT~oTj^H_ z89}NGhuhlPU@nF-B5pqz#}@-Z6ZL)+wiF7q7}VZDu%8n;8h#N9!0zYTdYp zSUv3vDTMAbx5SJbGQ|`wjI7mc7m-<9NaFwt@M0Q-z94M zTHU6R(#z-Fp0->sOTGgtzq2~uvy$(C*zF7WAL1SrZug=8q5aU9?c&XrAaG%e)|yeK zyAGqS0kN9Pya39zDCFfTCXz^l7PIQjSbj$f?Uq+~ak- za&K>7sDka`@MSGNA3Mqpqr+(U`H4T0+Fq_7BxuT(g?nwp&XOHK5B^m7ShE*bG|lgRN~l! zN$Iq>BrX^(2A*OeMYh7Vdj=5{5DG{y3IVNGXgwM;4BrDvv!XPM*{-+y+j_*9D#irb zq|hcYls#e~bE|{;E{3v4Nz;L`#?RUavmEf|=(^3~+KjpYKs~GnH~d#-&I7Hf-1n;s zQ0>;aQEn7u+##-(Lv?WVUuN)>FVI>H=*WN?smwsAzQNF((p?VO-Q|!BPKTMV-5*dl zi8w3~6P{6PLVQrd^*#xy>9ne$U)NNno|dSrA`R=PVTsC0RKZIsDEB@b5;r~!gJRDN zMCi9&)XWb2(U5AZa09Gf8)m3MHz4|l>2?oxgZN27C%s~w3}L{S8*6VZO6_j-)b3WH zlsuG@XzF%bQ@1Y&`c?OWEbYFKkGr>z$7`Rs`A32Jd}=x>upPHzLo{ifDvxJZE5Rm%Uf?-9Woo)@juw^4K0;fnp$1 zb33-k$Pg?DY3kKTTKcBB&||N*kGH+^vv1&fP9PHuFgm}pZgFSr;?BCooyFkR!Zj+L zbyet5-2lsCm)BA;#)KAgd8Mb|r6R{vhR2k0QQWbhrZm}w!E*PA<33g&H1x2=!`FVa zG@Pg+z!Ra%L94f2G!|Th+`qh#=Q7CQMnm1N=X<1dKln7&uc>~K0+eHla4fR5O)TR^ zF}UmX43xc@`1KjisUd1e+(Oo)&Rtm`uQft;!R*=9TUBgL-v-U9e4CN~Cmqq*RKeB8AAUk!+;&NMvp( zGB+5Rv#Ls)8$>luAtqA#Q)VfBfq8G0O#VO!ce8V7_c!aAni`+W>C?QcV08pTT2|I#ReO3>R|x6cd3MS-y=Z-=bZ78lTaTr?5O<}a zJnCKAi{5pWGi*|K;oAnL$#!MMK+|b~nPIfY6-8SU0!;^LaLw1imiMDAi zwnly0K}P24TW=d~Etc8a$xF5Q+Fie*hlD-j^R2Sjt(W2Wes81Rs<&6zQ6laM8Cr(g zv{fLFMd!4M(o&wepdVLs$4I9#zfQ*O5mPFAyGSBKSn1UUmn-zhRpW1K{YJx<(4X9V z_}Yusow+mA{qVkj{^Upg_{GvGx}2!4MD%_l3YY*09~|lH;m`RW%BbUe1?vu)RW`^h&gd#3*Kn{RpKCkLOp{?EqhZ_dOQz5G`<>|JzI z`%ho(yk+!-x$i%3KJmG4{&eD7*S!5(YybU;GfSsGeelIMf9F4cR!7_UPhiT&CA;U_ zzs<;AIPVdzmL2w->~7D{B6s^WE6+@LOZ1BBeatn^GqTlW?_!4ndgsjy@YJC6ID`8c zJb@KY>5Gg#6AI{EB@TUq!HYKOkQr!W!dDsto>gI>-Oq#dY6hD*`c(#Z1@)>F!|KVV zfM=D*v5)A*9WS{8-d+gq!?-r#3N;4Y2ItKCIOUfZe7!zk?^8I~vmEif6MUJ2XBoTz z3BwNkrJ&wGjGCu1LC>>(6=A%{N8p~n!~&4t%D2fSNKK|PxeNN!xGxy$PV z_7+W0Pl=Iuf}=KZe$Uni>}hEzpf^Mu(pj6tBG2u%XK-PiXSm(Qu#VBJbE`u-^|7E{ zGTJfHAgP9c9F4%^ zVHhinmZ!(EBzs)l?pHUpGg~dNT(=*~lp5cLPE6a-co!$kHY?XBmjJduWOZ*OI zYv|^sfozgWx^D=4@xrKIi78{j-R>Au7Qy3;9noS}Od{&pQ5#-M0*zhg|T zJ!AwmcaxX9Nr?C9?f?72(iZpeRjd!>`+bIe)A}Z;myp7|BP<`j{%q$DNeR zl0@A0$AYTohQ%naSKF@D@#cpIklDh%$+V%u%1v)&b!>7z3) zED#fN!<^w^NxpM-Md%wnNHx`_yBBFG+pwV-a9~b=)LM%Pmm3 zwni+<#UM@T$WJ-0i=XH`Rp!W^^7=Rg!nR?Sb7Go)vMh8fr(;EYT4whL)MR;XSd8TU zu+rpZ(U6nbtJ0mI z2>whR;MQQL8WM!`4S_ErX-KfI)bXG4U_Oh%qEM&yX9%_XnFaG9z+=MwYN*rh44vE= zI=M4+N@wVFIs*$ZXM{V;%$`{fGuXr+)YR!QYRTbC0>94r*zMw=&r00$F5zV%oE7*2 zOB#0LUP9g4>i8q(A%o-t-_*gA=lE>xb?#X0f zHkz5@&`dF{xmQJh=3Wt88TkH)ps znOyYX;K(S8*5&f+6F*!uf0+__MRyI3u8Qv82Ugt1fDa7r85|u%pl`H)w^S=$%oj2< zDt}2@vz{ zZbjy?tP^(A^c7JLWFLPBUhgEPD{DD;FJ7N{0 z_5rF@s)%W&wX&$%J<~cVm~HZ$UsfF(MuXd@Kx(E;C?^?>j~(3OriWq^eE2VlDrSp? znknU@2T}X02UFT3)nt{kz`gVEDkt32wV`WmS2q!yc$WlLCc0z2y*<5aW3le3o(=0a z#@DagxIP|R8(-gR#W!r+(6g?4a^t#0FVP}{7F3@2p&*6~D^2t!gEmyY319u`hn2Oy zmrPe0wCQ}(*8Ju%Z8B(WW$KDAOw=xRi$Uuv6ILDjURmoC)6{2B)v?sFbIL1U<4-Bj zRR(RT%)xu?`J5T7tF1Hdf%cW>`V2O$Gic4ZQ}3$!k~B3K{&G&Z!UUx1vzrari4H`c0T+Zvu`86%SGRt|ta$mFaRi@tc8egcdX~&hB%=2eW zXsbaRUn}i=f488f$F59V`!5U7HiI_5R?_+Z1OU|=R41Q=q6=jS6>jo=$DuBnp32mY zK$2c~~x^tRj94R_r6`-@(B`>v1fchrj%z($0u){={@tGna;=meK13-Rv!H9kAAWF z7kAy4xpJTR_WM5XUvcrf|9N_^^@ZOle6#SkYyaS--??mT=iHyHeW>9}w_JJFzvgeg zxsg}nht1!8iHza>yf(j^AAa44CG=J9-%4X_A^%-2{##y%d(;!hzZNS09UK`L`TmDC zZ>c-@k)coBZ=Gs?e$7*yqJPWbF-*hrhp)DBnHg)>P+$MP;i0`lht;Pl4(BWw?cs`E zR29xlzU8o9>>o~Bg}mNE=;>Np$=a1oOw!2izTWj4NXwJVYk5%T?3t@S_DcNBOWz&) z!sU6o$*t4Hj7O>FujwXl-N*Ygxq(z_7*jc#$;UG}%aRY(@$WyEB9BVd{Lkll{KIeXw&W9fnn-x+HNXggAV_y5H%n+sJaWDTamsF#2G?R~$q`U`X0^k6vcphO zInEiEQj_{jo;u)aAJt6gqdgfp@G~io!cPENa;j}spRS8iAMJ6KJls(4n&i9~g7F(>))@vK=noW?a$$Ie*Ba$T##NC#nyBWM|0Yh5+-AAtl}IgXUm zhh(|d$MvycC0CSoA+J%X@qSpd%2kENG<|^oimh-B>KOaDo7-A(If+@&hn-yc-O|oq zLN19#6e=QisD&AV=;iG12OjbEwhQ^O)FjWqhr2)Dg>!K3uJiP9B2I?eXMxHKbv0R(-77 zTjMn~dxMwf_2|`WC+F&4wM)(anx(4KuqjxrI_SPiO6OCu+?F;qDxpa^^zPE^US}Vz zJeRg!k4(xl*@sQ-dfRQ2(C3J2@pO{?9ffj!_e%@QYf3T-50ll$7ug@OePp?0rjOuT`tYqfkgJY8CiNl7oR+Rov%CS3NqxZ~D&=r1WW+N0=p1U8eV# zy?sPqS#(nRas1cvbo-pVdS7S0{M$jTWY1HxqS;xDSo-S*_+3puL}@SU*4`yvS^3SR z%dN4bVF=uWo~pXcx`O$JzaC-IF9dEb^k%- zdD!l%nPg_~?JncJw3FG%Zl{xr-Md$Hb#={1bgXSz@``fO-mUrX2k=9pzHCaOWIJ&` zq-|LQ0T2K|5Fju9@NF45&opL!6#hK=>FmeRAIAUsFBe|q!ha6@yC96w=TBv;^Fp(WC47T!bSUDHgUx;(&HlXr?`#q+S21OX85?Qs zcw4q!E=jy8Jbs|q0vbCDN<8S!iRMmB|GoyO?5qIdybR;wT;NoTop2k_B}%3OX~u zPw3J~A`k<3Jf_Jy4%ztPTz#^~q)8Me#1GlK>4pI^XVWD1!zWX|T+xKaOFsnG zyeueiC*~}=U=;Wi)A>%-IUfT*1qQq&TT$1a`_$9f>@a~_D{hAgbb1}Skq2~*#`1wf z<&#}Jm;XCSyrzyn&#)z-Lj$@*STBCE0PKC{6uNUFWXX%qs52)4!vStFg7@1;@CI1Z zZuI_06EH%t!|?yfF#LAD(v2Cg8{ipjH2+^?v6nAn#U1LgZrwW5IAa4J#kcyN6vQ+|-*v>Wjw(uAAlYLG3H zi1R`==p8RfNS<I)Bt?PiF4CCujub)Nl&5%l7&8*a!mPubNFALvY069@i9gidgtvkHz zCmY8PVIuSVn7Z)mrXQ16!s+Zg?5$l?;3o7Fp9CNpu;z3^`T``d1jiVu+8N%dun~-9D2P7Zms*s z)sV{W9PF=+L0HGW(0%yOa?YA{n6m^C35*o@!1HJwdS}kf+zF$^kuQYnAh71kl!nWi z;?@t7n!jWy-sPM=(vix|R7FdH6BE!WXNEooY)BJUJtET~Mh^8sG~k+%@pNZP<=dK$ z6FRGWP9IdDEIFkh7a_PP(Czg%Tp^psM1)&f(cW})fxRSPQLWR4-?Oh7dQQinUlq!q z*RvC+l3_->tuztH%xDHYGqra2kBRSP<*_G=h8Ioz{vCxBG| z4qXB(aYmawi?pAb4yCe1UIwE1$W{TdGSI&!$*SoHUv6L3^{;L*(CDl4v=gWg^U(prpOPpY%dOQ`z1T~9x?;G zbDDnUrc^U^J6nKLz@qSe5fes5OYy{6@kb^gWN=!v*7C8mIJJ?BA)@-yu@GO({2nD6 zqN(@}5IiI7Zf|FP{1U}Wk|gG8K8b=rEc1~C+cPaw;ARxJ(AW%pOok)tps{iGM6-b@DKEt| zN-9eb(%;q6=R*_)lr*YGAkJJt!3|d=Kk!+?4fJ}oisA%p^gKhP#j+-CJsM+=*hSVS ztm1d{c_!>T8a9kT{w{GIsoE>p>7)BBl>zwRhg4*nXZ;hF4tLgL4PdHNtf+gJ@zWaf z**^hRn*B%?ar9CdNw01IYe&8}l8y&cbf!I96R5fpkMxzM1s=l+(yS;%q7KA~M9&pH za%^_Rt5vN6uP(uCtF`M=#^x{z8`*{TA6ad}_p&$vBotm=(qs{VMxk+5c^drp6ygg= z8*X@s?XRlf_yNk98A^@NDWbwX;&mKjnqP*NCAOMz(`XUAJ0~u6 zvZg)dAZGBT5xb?HPiC7{^Qf!j-4X#f2|&QiC68|kfg9e=2}d2|pk(xi1GlqrppiaR zs+9^!eWuqGJXewaE zf-%15Xh=QMtlQ)n*kZ{B9+gk|iS{jhd7D+oW}`H$Zxnb-Gl_Zl&9ELV7jm|?ZLRAl z(?_dzYr4(QX|Rif*DO7D^oV(@)X_0}Z)<6-&4OL`j~eh%>@E$nOT*DhhhqEi z+F8%l;lPC$=(Z?g1iUAfL`$%~61Z@Qx5(7=`u_6aa(4I7MYh_ChZzs@n~#$PFwp1CbQ=r6TPgO-4h^{L!(DFc}#;ED$R z(nn{EA70Rcc`FUW(YVxw6#IcvlbYC-Mmo(9CZ8R)EAsyx-Q-}#t+zNiG+m48EK*(#k70&DUi@i#_erj^VHt=y#rX6Sn4c(Q(OmKa|4bXNjs_N{ z%>5o%T>6h==gG^DM$;9rPF~}2?L0J}8BLYTII*8R22?kKAg{{$`7mrtvRdIv!nw?B z;z-xrk*H&lhH;cLm!pBGp1_MibE;izW|its0}`G3{>_N~ip>Pk@3;lQ4q0I5i_jW9@0$hC~8Su1k-?`6<*ju%_Y2nZS<^n9!n zH{^7jV`^WsagMm*)H>H~k6OK>=f46-8c%706=;p)@A_!wA@wsQ6~^kI>`{I|_iT

p1x6Lzm_imzR7W6&vW)!l0TYp}63WSaM771TvKp(pPeXj(a0()79MMnARZOyG{L! zPU9^lY#q~?zqDp=c5wAB{Dt@d^=8onb*cYMRTf}fRbG~+4}Wg?c6cc(KYe!{1nBtv zQ^`EgHC>VLxBXUA7Z@N3_c~CX`$@sMrHqj$dR)wy(hyOQr5xQ^!NC+bv7h2|ozUxV z@Lz*tm(urneADwB&{IFyU_wKX8q5A|V2TFjis28X+#dBNYmy(<$P@wt6v51C7a336 zkH(lwnSR|B&P`_}F%?-m59NwJuAi*Tkr+m#JV8_)T`Z12)i`{s5@oJ@@)W{U>bp!} zAUv>-ewfDO?|69ceQ(K!Il}W>F%8oUyH2?IA?Q+IwbZ9jmFp!RI*H%zEaj@oNu70r z%-i`c-{QnwZnGWvQv>CX*9cRjkk-WMZrs)g?+w@oV;KL zLcez_+#Ir9s*6xQ!|R?nk&_h9<3!Lcbc2_B!=Dz_(~Fc3qcK*#wFHsp*J!*HA5>`` z&kl~C>kA@Uof*TA;p9&p+>YVD>`Vx(OefCREM73U;a+po+zx?vA69Cu-`8KSpA!aG@am4(3S=NVmC3(;KZev#1`4|M}nCS?Gh{G|)0WKGNq4H=Pre3H&%B7aI zaOQo)k|ha`H7lclewWkqyKWm5IoW07h$oDWd8LKyy3A5Ldq+hE4&q)EJH^wNi`RbO z5%V|UJTk5}1{lu0;F9K%g3~<*NUe^4kQj`{_z4$e@`i$J40uEiI`#}tx+eQr8yC3^ zlX=D<%vWu2u-X$-MQ1fgpdNB&IFhV$_4X%XPAFet-6(yoI5KTqp7tG8G906Jn?2TqhGul8dOq zbKm7wHBWPUOYn%G9g>6HD*Vo9EYy_W+9AK0DEA5k1uON{eOlt1bspMcn9$$$Yah|x zG35?F1}SaDzu9Gt3`n&+pg!Gdv89)&Y1K_;->ADz(7%=rXY-@wN+9~W)vVNycp?@aTEUcsjZ_Jl zylCVwzJe9YcWM}~2PFF)DbW#2t~yAO?hr6a4KI;(OA!Rp7c z@6o~;v};*tFHTBS<$_x`gnN-8ln7P(ai3l zi(44`VFQ2Tm~7q*Zyz_f$Acsf!QYCY;+x@gl@-|*ZSB{VTtzQo5D^bIW^zN2Un*J{ z5Y-cp|2qWxYI`H~Xv}Y(#=F}j(0yERN(3c-IFAN$#a^>|TsjFTh^+u6cTiieo3zH( zPDr^&;wf~Yu{2Czb*}EcJ1nl>*&HO1{#KkPG6;5MF`fkyBw_PtllMDVTukO@;7Le7UuH#f0~L4!c@^q{o=wF zl9FEOC~&~Z5p&zg92dt_OgHj&i+!qdiLIb50%NN-vwhU_m~CYhbN_2i<4r#k)87&F z+nt%(a=UrS?}^1L_fNt;l(19RUy|U&?mbDnVE;+nhYAS5=aX&Um$VD+pM`uNHuMe8 z)SV7nGH^>jO`;_hTwy6)<0;$~-L}rVm1vg}Z<7?XX;QTgDQmm4U3M4uXnd!q>ZBEgwb*Z|4dSeG7gW%!U}4S9L5a;KN?CtbvDsD-bKZb%87+lD#=lfS$Z%x zJkO4!X;D>`rV=`YDVnvCzcw2BsBjhHkjqvyl_YV;4mOtrbNM`w!4N6bg^?)TFVkY5 zRNS(yjYO-PW?Nm`UE;fYkbDP@7Wm$Ib6R97>*D_oYr}BDC#zKeiV<#{T#113J*zfM zOKIM^*roc=wDlV9R!c|{T;e`>jI zzyj+ff&|hMo>(T%i|vw#sxwh%VBtVZ=biEc_?p6Tes)GFD(9Fn_XFZHsy!xhh)6<- z-4==g>xR%;)ZtcfvCzTDMg*d3HDxVwL-MhW4%Q)_^We6*Zri>!GMuE^vum4G+IZFy zAsB3=mqz;&Fq5l1hf zIB1v~R-f@BaiND4RF5JlM& zs|KkoeT+_*8pnO%)Av0iJrxe^3%|P3nnU4NZSl#z5UeZDI24A}7BK9MVRb3~2g9-2 zB=~({SX;?_C@ib5_1)VvRFheMC>*QJJ@3VD=$4<@3rfb>rPh15acFDrNLfCLv{!r& zjDr?VHS7<$u4jn$idm;qHv7ZO>M@Ge(d^@BLHn~*>(nOesNnPOvghB`Mh(B~C-q~$ z1ldj;*gG}0x1je+&^|UZt(~QxeVo!H0US+luDJ{XzKe%Vc3y)lBDd;mZ+9V=i9uKU z(#44NM-o1*VHWs681?SLiHM$0U|iR6`R2d+6n@NT1=3Z@Bu4D>9blcE*xJnZkshg_c40X&7zeXzKjq}C(y<+ zi5I}3LC9TG!G|JEIdNc&v8+oZ;CJE#W6v`AuQU7ee+%H3-uU@+w$Zn<@LAq(XW@`3 zQ)>%m)+8>h8GmuX#PKs`BxV;(m|ReE$&7-jGYYz&JGkKD#H7iUX=(nZO2&X5jP>Ih z3kFYoWy(FkniQn)YQ{Qp#zK;|VkD#sATf?38lbe0dNXEU*&0st;-wtg)%j}7ivQbJ z>mu6;a?fQ_?yB@tHIlPbxU?O?*^tw)iS-Zk^Eyy3;JqDqf1Y}HAI+Lt(PRiG{p_;Qt$~>r>U~YD31!KFn zG3INK@7dv;`uorR^%VxF?H9F$0P8`vtL#%zhgU5TVN6dn0eVH)NzxKUKr2foHAPb2 zq>{x*YGaa`Bw;0pwO5!+mhLIhL^D7ZgV}OVL202V1{TPvf%MF>MxqWKtE`F8>M0Sf z7OWk#4Y+Y8oIYe{DQ6Ou zb=6O%tGoUJhun!u?gWxM(UL2q+=-UlM$+J*d{8N`naWc_)rHIMbL-t8MARWPs<8KS zYx)CIQfi>_GYuH){@Ui4+0?fMqcI)S5|Hxyg>HaD=_$fvG=^)c*JugkI9ywyPHxmG zQ(k0w$PM0ns`8+tZnU;qqUsv~SDox5>TAg+T78Y`pG#H$%%*F)tNs#cz&2>WS;~Mj z$$+yg1M1R%NHE%>sm90#Yc=)Q;&!M&d*#DKmsl>?6Z)KaKo_F}s%~@ys3pz>n4)_U zo#2{Udlta7NZ3{0*yjzpmV)Q-nnfrV#<)Mx1wcvA6&)6K1zp}HQ(JuCOTftYhu!=A zdR*5N*?{Z~x}otrfc~hnbB8iN_Teug_r~!+E{5e-GN#2DCA9mU-)OEFc`=-SxfZ9hMGB_Id#rw?3`VN zrs{GVac3o4PF-}1T@?FPXH!l8toa03IX4Dn`^Y5FNN8Mky1p3Pk3%z|dA+cCUbA^s zc+t>fbdl~h&Y-J~eS-?MB-CXzr>h71RmVZ7n}d)NK=7CZk0N+Yf>#lICc&o&ev{x= zgcOsIq6n!bff5r$%}X5H-W#0@JxtoItOPCCM}|nFFOAXqG$n$r@0d{=n0kE%j@R0= zflw^!5J~jIbnRe_!kDa2SA~&TcB@vAQu7%%hr2880r4cG4)cMb`(xEFC1;a`wU#M0 z$B=f8q@`0dKUals#1aEAScg^kZa}eSn}MiRKxswSp2C0@=(V?SPd94PFbwa7@5AnwCGsu@))YtxwyZ>5c1NRh?xTpJj(i z7U^!%_Qe2vi5O12d-wZ&aowkEA!$!I9Y#ycz-e`cye1NMrM+aO zVRy)Vs#TMLHIDv-V1&OQ4m=%}3khKAI>t-6rl}99;1ZHPAFg&= z_edEoqZZ9pQ1b+g5SLp3VK$EB3(zqy!4xbZ{N=$K=vd$ze=$kYrErd#(m>XkHP>nO zTm@596z1b>cj7XPeQK&osz**+vZB12EEiOyIkMYo$U4W=)KQj`b#XITpx|vrFyb$G zjj5=VB0?;K8*^}ieE~{(j0+*JYYBEhVmzTrF`mMPu+dy&_d;I7D<~ z7RoLb6$_dB{F{rfZ~d1$^083aa?~If^h8( z7^N2=$AD;AF6&7WaXVdc7-EwEmH$&DGj7$)<8;?18JEf zaA7@ouNqSI+^XuiUDb1ks^?C#p1WkiU4NUS!quw6RaD_>tHLx{;cB}=v%avZ?;cg( zeX73uRecYb^{qGSyVp_Q-KxHIRNviJed)5kyPfsv3`PnA7YK@4bf5YxT;`A`X~vB> zZUZ&N;C(f70Mss_HBBwtVe7@U6A&6pF`9?i@dzxmI5~P^G%~crSiIC+3FQ*waXB)K zN-e`2BOqBHQSpbaFe|Bkg{3~s-m?9Vs`fwPXx+oAbsMO44_mFvkga<-dERj`a5xsh z_SIq2{E-wr#Es=R>EaTrIGR|2Q%?cjn>ARir1@yIg0~z|TBX2^iNL|FzlE{gu|i1= z!WuE?QWLRxXOiidBw&4D+{CPV6a(Xa2i9b?+};qZCF@*k&Idj=yI!UnPSoZ+9aZ*u zO4;XWu%aot3DczW4}#a zALOX@!E3S~R%1WBs`_CY^~0-HKZImIAi=oJ>SvwZhW&y4u!!TLQ%l^AO`6Yf8J@TU z(+gx8f}1~j<2;(S8&}?uxC?n#ArEdMufzH08kup8>btd=;R==EddzSgB7P~hxWZME zS?)I0;Ut-^!_0R#_C`>aZ#PfN$OYN zD0~Y0`38kNjmV8S5FiNoA@j57^{?+w5Aov>1Mgsz=gWJeJ6ZepS-R=dxCPt@ZBRQe zX|Z~qwOD-)FRuFM)#BwjbtRlO175IFo2=A}R_Y}y^*2U4S6ZgAnM4{}@ZvW9j`Yg6 z%FSCc+PA_z{l=)5FkS|l3x{&Ke}5>&&gZG^2&&GN?ZSV701FjCM}c-*Q4TJ#wkmaB zF$t8gR&3jF{N~~`I7ZZD!;q+H1wfNqYIoxTi0tHoS%UV^gK`J0raRhshhg|0~~ z;~ljzmTxYkDFOFaZ7V289uI1|59Iqp4-^XB7a~?QzVh`>513K_q8sMvJ`~%$98=;%qdRpQ`^toWoG#rx&u$jMh zA2P7mGP@WI1IX{H$QQNyv2sL&q-EAFxAGAIO8yH+?E!2>*_;1O$;3e_(^IR3=~5pk zv;pdtIQ8XJrkrX^U=G@y#S9wKnd$U-TCk{M>wXoVSQ5met2jb9{15AST8KwS*Ao8QWuDO;&Y zrL{?Dtq5&QLK{VBDOX|giSG)_EL08h&oB#|p$KhFLR&>>XA;^eLVJ_YUJ*K&gbs?( z(IilU;)BMnOtzPcG`h#us5ALGQ8(MvvnUQT4z~v!fFS_HQ#3*n8URs;1#A9^Gb)T$ ze?>$%NVH&-qHCMrCQTQmB3(-~Apb-ge})^%Y8IwDu=5DZlo+^zk%uFDgfkDVONiXY z@FW%WoU*9rltt%v!p53K2|KB%Gmo=YucKCb-=kE;3LkJWR`}`as!yS-yFQh!MjFQ_ zhLp~#&w#65hnS2R`7&l8!3gr?a}s4r{?{rNeWPO0x6IzJ`AWs2FDVv%WyPXKQZ5pb z_G?gXxsv;flKZQYdrZm=p}s#Wxj&KIpDnqKrCcN!nGN)fE4g4TlI!DAuAkfIEj(Px zh3*Bph)KBxQZ5osIxkY8xosSBTPnFNNN!6@Zc{0@WwKlsn`P~n?88u*ivb`@OZ>}1ylz(_4+}VQ zR1`XLRAjnck|&9Y{D!&H%?yb~$f^Z<`{&M38^*lMMSE&mZ2<+AD71{!3WYFSE88XUQDH@X1{Jd5J}V3 zRz%H5KvX*sMhWEf8O^wPcEl4MmZAi-ctk!$t~I#1=RP0wYN7g~lj@7JR9|%Fa?i6X zS9|W=x!QB@CKC`OWx`Y6LngfSXF43Nqw2s8)PWtX4s0enu%qR056UoYlybQR6umKD zJ}bKiuLgLKzgSC@W7ZK`;yauZA^HoWE$+G$n`<6?F49u9WsqviVAYl(sx3p!ww&h} z$ODz014z$-mY#;xbD(1&oAI)hs%NySXOyaEjH+j>L;Of3egughX^AhD;zu@&6WET{ zO8$jP{v;)TqLM$^Y{v!M4xkfMMdPWW306gAvLYnN0NS0@voPA9~-v&9) zHW_EDoc&BfKSk(o68bB`IVRzp2C~jI8Rx2;15Cnz1~~_sjDafWAd@gi5eA!t!HO`% zBn(l6p(bIdBAjOu&TCNH`6lChm2;R$7}g-?aFa1y z85B$Lq^4glVS2ogs67L*ywK6lkPtXZ%lF}9HBpC*R51@P$FpDt$yUy4*N0ioBwH|!FPk4pupX0Tpo6quPz_848{1S6lR z#o6pN`1lIbe)iI9=Fw;md;5JB!+qH{vYcjgmF3Wu7g@HPK(>sw$yb)VP+AfXwnl2Z zA!Uj*_kG&?k|CwzkNZU@Orc6|}jiYT3kld-#wo{XBJHfWC ztUA%-_bcisqJLD;{<)`7i`j!yR1Z#Z_MqMNl>IT;V-u`ul6uT0s~+ppN*?Kk_|Lw8 zUxYK+am?&7=o2oFhR5Wd4))!|hJ9y`gJ~y?gNtSFT`b2zPbAH-#=%9T`;5~X2h*ep z6V!<5%7hj6I7mnToi0J@ws>e$Qkkf?6M<)A!$ZlDX%XDi@s~(c)FHcoLBmDeCCQ^J>^+i*AOwz zrg4bpsp%0+*ezsZbFw2r_mZj6+J1K9qLqE5h@hL8sww?(PB;e};0<|=bFl%PXxz#M zc=pColJ*rz+Ix)wr=vX#Ss!}QOsj&R&lrd$!^vc0ko1u* z{p6U1!fXZn{Ejh;^r3j<6Rxi{7|Zye??a#+P9Dp%$o~eT>dTpkE#?F$LO>S78ndh5?chndoZAsi7Y9Nj=!(@~wQJeLxZnCl) zvdTOrE7p)Tz+&YzWKFVIxeZzKELL7JD}qZDWR&I94#j&Z6IE+rm~rtrnQD9E<1MpA z9U6zs)G|dxWCi|mPlQhS`f>ZqxDOW#wqfVnhFzcxYp%1UUFS=?Y7Oj4cBH~|Ubg;n zX~+3y10?HqkIBkTW>MQNPj1`g4cgY;s$aHkK~mf1TWx#5YTF~~EVG;a3w){rm0u`h z)|E154H6zvhX+=TF&Le$#pt96WAV=QJgyFUoNtGWg*4*a_1BT-(+O9%z^%>leRUKv zkO5|Do_tR|Kx9+IbxV^ z7#%sn1*G|sLd_!{d?_I+>hREQ0&a`^>x#2$HWM}GkhiWlr)C>c>E#7^m#f5&qG(v& z8=}}~ijWTRuS@YkPhyM`y<3U~%2+PNe$YTH$Qg%5dUSsXB1&3FKOX69J<<2lU4KQX zm$a!l;F0IO{HZ}#&8L7!x_nBlUgIz(V2p`D^nxg}(6V*V>j*wJSp^?+y%2Gd8r&D%jFnJ6&^e( ztJmKwXWwAkHME>TG%*Dm4#de~9v+`GrULF2bvMy`yprHw2_iQED-m5y$gYr!CS+Vo zIo42EweZ#7LXD$Cn3^zJ*lQ?cq=|XAB+tf6DWjZ?^^*PJlKrNBcod-hfD!R*1;$ykQMRt#1m^(#}tdc#lmfF8s^+-#*N7l+7S)1G=t4`G;Ypfn= z%O2^X9#-M`m;2%O0i$>SnCu&yzE9DE)K7G# zi0y{ox9sHgh#N|VlVio|-|xS5vj6UB(0>mm_uqpJ`tM#x|J_GDb3efcez*VD6CcYZ zrvGXGt&{!t5LxSP)qkz*{(DIF-$Tj$x9(K^_uwh}??Kgn4?6qrK}Y|sv#L(&Kb!o& z^=_n(V#;GaePw?X#bqq6_ni#j|~OwT&8eS}QItrmQy=rI=H0s+_asX{TQ zApdB zjC1M!nCgJXoE`9(>;Sqi++fLvY1Qrkn{0+O^=?oh4KqJ1y6|{1ofM^=tW;5Z z5$1S-TwTIv%(V^`@ygZ0RIFU)z=MA-B}wKMb$H0xxC(pfVsnhlu$OYE7%t^DktOI5 zG%V%X;NTcbOF3lVQf?Dznb6W)1o( zEY8cr-k>+05%eY|Q_zV;XNq^;Bu68_EfBy5K+sn9ccV%@l!UY2o^@nE}gEs`&l&W7~*mmOuUQB1k4 z`HQ?eM+bY69L$ABIiclr3Lb8++TjSlgid<8z<=hwLf+NO^sW~vn=uFDg{Z@Ns0Wln z;8QQl3u39}vgJjq23WStwN{BX*=y9PbxS~6_S2)*xPFQ3InTD|&x}5r0QSU_;;{a` zRMg=)a$54Xdzh>`53Tw-*%M*SQC!r|krqNi{dVG6#q5V!sCY$Ur zE;nPLT2F6%!?M$>WTypkJ^dQ4r}0R%6$^W6bUuQfIMVG+SqpXKX(9h}c3;gpynUuT zybTLKu`FFsH{{sDDh zAF~5@OCP@$y}=ic_^iD=pQu9>@NEG9{&Wa1KKm^RbHdxBCcHh)32zU18#V-AR`6Q` zW4EOl42j$rY}j+|nhk%I9lIYzxpzOvXk zSITGaxR=qL&NBDHvyyc;a(v$*QX<50eF>!HdjS4=r0Yf}?D1PQxGCfEWfJu+%5qGt zK!EQ^m=kYqwU6z0G5j_K_{B|}4s5T)`$;`MMvo59?zRwp8g9z4+hoaNo!m+3*5}|*RRDXN)`PI ziUv(N-;+qJ6>fY8t|LgyA8ZQ@APd}$ZSaMB#ywo^wcaZ&5Vb7et-sHftS&7ij%VTd?|malE}FICGDjn9Zz}}Kne|V~=2y0Jw7K0j%NAxeC)Ge70;u1p zO7{_Um`pr{MG{Y=aYLby@eC${p`h`s?6{cKal!iM?2ZcxqdRt7IxR+@qe5cdbJTI? zCv{xVcpkX{5e$&#W~jugo%s-fa7}B(o2=Fc!^R6%xVFh&V-uHa#|<+6 zek17Y6)Vu>^FZ^y@Cv~3o$eD_a=h-Y$=F`tO1_Wm0pLe4bVpb6^9l$6>{&>RcF`WV zMZX<>-+_Rou9N43bwGQ}l{6oq?wau;x8gL8nw}J=zm)U$*K+tQ25F4V7^HD2MKN05?0+ejQb%cW`${dPdY}t^O)hj)uBMLCWNby~FXd_qBXp|p z)_+G!fM|zXDMEMHB4ZONBjYnA?fC3AxfFNZ3XyRaWo2e6(hqi19MKkoEJa&P-%5%K$bj3Qc|WqGofJ~Xm-M9Yd$oS~ z-no83#LV!W%J7{t10pa=QgAqYX(LE^0B{w|Mwyv{z>}qFVcsT)*8RsZhWkP8~@%~<0rMOJWdVzSuHDj zqp>|S(;ipL%HzqN{F7W(nrn^UlqWxFt~K6wXe534*JNL&wZ^Z?fO`E2xd#5#@@}() z^zPrtn=n(RqW@qw^E4I|vYFm`&aGy`f}#&Lvw-GQWZ;4VuMQWdW?Bmh7$b~J7oP(2 z^-|eJBq^ojGU5a&ORAm5GD51BQm@&nrO;QD%J*GOqYoLljL=B6AxWw^ml1+gi&Zug zb(q981YYGD!jqZ05AWU8Q4E*Ld!fu@P33~xf?V}@A6wykyq_LQmxDGflx7avnAM83 zdbiz*H2REC`M$r=phX5OG3L2>(x9bQq^ScmSa0HQ7##P{k>e97I6jFZUs)x(P;}9N z&J>+Bp#P@E`ES-ZhgA%W1Zz@7Oz?0r!J3JJw;z87m z2Y5hS#REJeeme00rC~fsrGBK-6)D+jnMGj)HPpf`1YbLsIZY9ypsBOy%BICZPSV4CCTl1=uSN0+QU z!`s!|6+Xq>m5(2cOrEBKkpFDSkZC}kiO(2IjU@YOAlX;5_^Icvutl8^VeT4$&HRD9HKyjSShBZLGo5o+wqx#kQnoRhbPL;F93?{LX?k%$d2x=d z8hG(QRBa@wmZQ8lC)tYw4lnix{ouuZdzwn4d&HCP^m5glH9BbB6V4+=X>+0u+0MH^ zoT;8MXDY|tpVT?6KF`(}W~xD`^ZhjP^3+U~M>?OMq;neG{WYJPHPp8qEdvXf8a>(VVYFa}l+)ks8f| zv0tjmmx|PAE=nHF`N^ZXi5ktz9E!+6T+m<;n_P3q7T7};h2YIpfjwFa`JdfP$zy`D z8J_y4b~E5+Y6xz!UnJ^~ig!{?lZPs`LEcGO0lbNFkS4Z+&?BFGOK{L&_O{Kh%>bj+W+Z@yguv=exCD~_Kb+KGkUq>zQ5g4%_pQe>%= z)P23}Qn^^l9dtt}cj7H9^)^L351{X0sZ?1iHFaOeE|rg^z-!{6pq}^#mfDSdx9=;> z%F-CKz#<`jDXkRn|IYEAc6cA^(ne03|VzBry@E7{4usTr3)lw!034T`+ojUKaghFYC-t&&$Hu zrh3^9^~z@`-AYlnSTGiE8;m91#>cj{-{p9KM(xZ=YG;m9P;t#5+A~E?;vn`ses;L# zI-tve*}VPP*RUaMq0-s6(tKPva;0uooY5vMdg23 zQ8*W)Y^i0hV6Jh<3cfbkYkb0;=Oae}$b#Q27k&3GDfT`Iv@OYdmt_=tKQ-rC7dr;M z(U0P13mHFK$@uvY&gCcV&!0gKkMFG}R^kW?3I|49CJCYr5$AUO&G`1f{;aTB{wC}m zm;9WPkAm|!8eWq7SCrS51R-p9%%M&xon*lCI<^1CQP_^gXncgsD(Vndy9@YcEuM2S z*O~avzo2;A(_ZIOVzM~97p1$3X#q9m`&G35_e%GF2e%}nVH0caROSx z*QiNvIXw*Tq2n?LY<0}>y9J0Bcu+XLF?_1WU0q0A7qbiH(duGRhhpWI62Bogv2xUY ziw*paThFOrt*XbHI!hb{rtv*y`vJZ2M@;=>7br)t9$(tg%bNw|$G7lNrX>KDiPPnU zK8g4<&fdEDp+k92NXK(R>T`!uDs;I%zghAGeF$Ck7n-1vV+_X+)EUWnKEXV{QXb?O zBXAPOuP}za<;AdepzkpHoXtCi`uOZ-K_=4e9i^K$j%yAXi|gyxmh2XzZ5$h8+p>NO}9)h||sTJyC~41^QOoVq>igJk57Y1{deZMkp?%ae+=nOKi+14Fy=XW!m>SP(s8}$y_BeLI3Gz>T zM;_(^$|JD^zK9kH2XMoKUNN~Cez2Zl%WHE#e4Fi(SbW+_JHz<2 z)$uq-wlP?Lw%x`ceXX^8-}SVhMg~4@J)0-(3{x9}a%b2Pd+K_Ui)tn1ZUds9AGc!g zMgMR(6sAvGSD2Bf8LlEcKoyvc^u;GQdVN2N3bB$B+)YSGP8gPINXK1sye2e3>$p+8e3wZ?`uh@U55feYeuu8X4h;nAe{t-2+m4 zBXYYYO9Zp152P~G+;oFf$_{0dA@(=B1kdZ@L;gs4s6?5_jrtwuk>lF&U`eeGnDvag zpPID#S(6s@b3dxXVN#DsGWYNLKwn3}w31L*oth4p`wg$axW-JIC+hy#M{@qyM=lVj z=_904>b@qBe{MJ<8V>CDgfp_?!h(TlWm+(h-2o3Tw|$AWmojFLz#|CfoT~l5+vsyn zztMC5xY4iHdXotLB{h|66nN{#P_qs5)301!ImK6Pv7dOuD3UTC*?Z^eqkcvg3>_ z(kldgmxPTK$@Hs)%>Qfy`acvM_t{K39 zdk(D=@uMWrCHO&;6upOA*3IxH0RJRcJE-h=LECSG$;E~c97+(sapF7$@H?+3VGY7p zKaBc_zJ;O*d{eM|-$n`u$bflqSh6n-;MU6&vc7h5OBdCkzg19xTZx@l5K-zwEFZXg z!cWr#>W6LAsF7nrN5d)Mg8MMcw&U z_u`*N`-AR{{bBdM%TBL*=bdNGQKp;O8sOWizu$qKXwLb4`|TfcI>t*i&)^TR1O$DK zCu%m?e4^GR&mM2Tf{*x;_t^*X2H#SEJ4XE5fiT`i$niFs##_9vs2gQ@igmY2N0!rk z?ViDiV=w!C35Y6syR{9eZu&3)+?@;#g3<63LF%3yzY>HC``^DOmnZH=aCyr%j@n7z z6M|c|@o2w`MIBP{er;T`{YG%>hCFqD3-yr^tdKsgAk)_U@d!&Y+#lP9waLn`@?Dxy ztbUIfX4BcBZ>_WBBa`jwWpIKQevp0$JKcsZ)3l7S|uQ8fWa)vqLLsvK2QdD6|qcsZ)@W&#hTkp<>mz^w&0X%GO7 zO7`K7z+C87NpnO^8xJDr$}D220slf`O|flsnVlDH9CX)K(5;*D*4DUxfZOQ)Al{LM zaY-A5HGq0wdA!xur1zC=vg3Rf{=@IFy#l{BJb5lP>G+M4tJRn^$LeE{dMSAiWde7c z&+0n3FL)Par#~QZX{*ZW%9hnFo8!l{nVVe%a5mfk6wPPs09?B_hxFjtHB)C?h@WR* zO_#xZ>;u}+!K~wIxmGCZHMCE6xb_45Ixt94*NgB^T$yVNetzS1DLz#07v2O{3b z9S7r&LASAQ;MY^od`-{otKr&L`aOO}kp3}7)0*$8JwmY0Ot@e<_jj+Er+ESkN!5zwOuj}cr-u!3M;f*%vSDuVEw$QK}I z15w(QeUhiMaQK&II(wiP;ltv4ug=!E5I#z#Qe8W`dzUM@;{N+4!Aw? z?}@=c(~$lcGJT-l55$6II**i1xVjO`ESbmN50NPbUEZ%OX;n-$o(o8WjulKwCe%pm;!m&YmVc z=M=UB%JRYi1%7s{2NbY7eVX!jBbg!Uiy4&OR)v;%n(RBU=bq zN{ik< z#D=qlJizYBm)JPsEmpko#JiDrVK#+oxPn>~W>YC=ajE28OxXQYE{n~ha?ew_D7%3z z0A2@8VvDH_Gb>`{jUdi1C9DZxO#oX)SUq4RfGuZh06!;=^~Kl`B7jRoGL66)0>g$^5%F zR=yFiHwn9ruzdCw7Hp;><=hL8Bd%*UPC0_NSE{*BLetfB zBK8Sk3j|_K*}rLS$gaY2&DdAeqFVCLmaGYBG!vdB<#aH#QLx)9Id+#&57SR!#&mJIb8|7RGD+|Q7kd#I239c0e*f(Cx zc_Z6Myk5jx%AO%?H({&TbA)ML#MZGF2)m7V8`z746;SO@u)h)3jU(?#wuP{{^uET6 z>}A4MyAj*QUUAgEgS|?;?_9{+&E6txia_3n>>a`e3FPf#?-DkSYWR}9N7!i+j^eP1hE@&Ei#8b#Bi*{+8-Ij{*HVbc2(|GAZKxK5x}>&!l->mJ!;0Ggjwrng;3eJ-0Bz_NafT<&K9JhtzsES`7SWb!&!a+bAFxv0>Co^+X2oA>;(8q#@hh@mj14?YI8P| zbVw^d2=Jp))OL2przkW1KL8)e_!{8jsdgJLcBCK4_$AX!Zw_T6a?i-r z*)`4jS@Kb`&hCn#wud!@x$Xg~EN9odh5|$hoOOvK_t6wgH>4!ja!s=l0C$DPST)`V z{l(e&u8AahmP4yKDyO8kVNJXXvLb8*yE?0(%OY(iUl%J%+Vsh$PXpzYyI z^vVCW>}Od8see{>eZl2q=UdRDT+*IHf&O)&(-UMZw`85FMP=ePYS$Wo+gxi%!o7}K z9?dfIO9{5Mv6PESxv12$j#7WmvMm;-JYk3B-vG>%vF0M0YL~jtgZY;O%&am?>8wvvj5cNB5X6Le zt`Ad5e}FUH7$vTEdBDSebfcfIaJK}wUY`aq>Onue+LM5EEB%VJh89k)C0TN+yTFpX z!tLzG6MtG(YW0~z!qvL1TbTz(Vk^DjI6WPirampxl1IvatB=%Vg?_SSJdr<>h7!;# z0+9&2on--R!wLW{=2a0}PA5q3g_v(jlX9el$*x`z^s#<;N?t#&K`EJkZ^g)nS*oWC zdw+}@=d2&yEy;gcHqcr6i7YGqUyhwiibv`?n_jpC(giTfpyUq$UP|-M9&Ky{rA-2O zm3s_Dwky(1TVcO*c9%XQf>uJiHSyF!dWC0N+Nt_Z`g2o9T~hycF6@0Xa<*(xR+f?y z?AY6|jp(sUj3ri_vE|FM*hlE?XNxP+2GCvHmD!h;;62+!!meT8r}PB--J!7j*kuvH z9#hzsW-~k*+=CM4-Ig~$;$k}#wkz+dh?{*#*r$9-$qf+?`+~58yiZ9M^RN?2N=6|E zEVYnw`gX;pa}NtEtYu+0;N>dp+``qu1D299XZcr0yzC-{T@F|Z+d|ki)P{7n-61ob zz2%UZ&fa&(OlOB2GBa3d6I*78ozcXWnWc8Nwxyv=8$+2khB7V8jWQz^hB9NUvn3Pm zE7?j_-;cigBl&E%!W#KDMjA6$k;DSNzeft$G{P3LvAH{WF}p%xg8?gH%M_LYSTn0W zlxbKP$}F=mlo@A%re?pt6{%+DHkJL?I&V5}#V#Ohq4&(Z0BgnODBcI&>AW>trg$HF z1FSW>+miA@qz&7sa-IWLYRBGCIVZ&etQ|XG<@`9(o((OwWp-twi*1=**#(MMY&6rl zu^Ecj-1s@tjr~ROp39ofyR*v`@Aa$z+^Josc#Cq!gnF=LinlzMMSHN-iZ?Dko%dvG z74M=r-t#}GcxM`OL%rA&iZ{^kM0>Fp6z`|tgIaI)vf_C{>CxV7N3q$WtY{zhiG}^h z&t_j0n?2nq+MgXKY@7F~SaI|mrk9vGIXj1SD3LX+E-MFKH;KXcs|IYE!t!GS(+03x z2|LJtDn27RkZn*Hj;eu{58jqJo!eMiv(8Zqb9ayRc3=x)gQA1kOC_eBoDF4fD_tfO zkB$yydsOXrWg+iB3fn-~ZwgyMSOz)Xr#`HGD2pfzYahxAB*wA6p=_SQP?z&rz_4o{ z&dLm1%5c`)u%!%V?G5Ew%_aiY-LPd2XDba`=17)ZYReqW3QDDv#+ls!E0P$0+BY>i znw2T+dfye%39OaE`lQ?zy^yUWY$1El*btr0HkC>2+LV`~7cm!pxP{%!`sHnpUd$So zoAs?0GgxK0U0(w3Z|wRK?5c9RzS-=ja=X4cED)D9+>-NFw4U9ru=n%ci_T}C$7Ov- zaz2V)Vf8K6aFx}YD8^}AgVOM(JX{2Z0&z`Qb z+i*YIBy+Mae5t@ot(Mp&1=INhY)7?S!vpLe)piXJv%S@}E>EzI&1J8QP07lBn%&;q z^bjNaIkvZj=^<^hpJz>5N~}j-x9k_#4u!>Y`(n?*vd@qhtY%z$*hGcp$7XmwWU~mn5_oq6_p%KN`z>^5_I~DS zD{Z|k@3HKEv5>-c<=qiH!1CIfo?M}Q#46j`zWb47r31d_vYpr~*&kcj0RKO-Ke4bz z{{7jXT390Gv+RFcSa;ud*`Hb11-=v6haECgWB;+Rx}wb35ew^Gniu=h!X_K>*jE;o zQ`jcd_-%SI2|{ zTM=_Pu-jw01A8dubzo1%{1!H<(dJmHg^ehBEtYO!)2epGGA!&^llNl*3)>w(5DQw^ zs}*0wGA(Ry#SgKFg>|iH6U(-+#uX=GITqHX(wCFRJ4>Iy*prjb2P+Sm=)EMpkdL%@ zv7ACa!{Qa?6!S|Jc9FLfFssL^t8+>$Y)(#xoH7fWpVuR&($R(iIV~KTjmJh7}p#s&ZZzh7}p#sd$e7 zuN!|?@m>hy&h36j4c+;tjvBi2udEv8<@Dg9ooR`ybNX<9JCk=kVEGnrI`7YmE#6t4 z{=8Q^Sp&w9L42^4vp*ZeM@k+=ltFx&%83zW2(KYbMwB7EPVq3J4CPlU9!8X*d@*5H zdh3Iqh0fzE6*jGOMb3Hrc7;vKp3cwX_b6;!{5IfiP}uuT)&RCqVP_im0=7wE#e{8D z*r2M10NX*>^6YsfPXqR`P ztrPfV3d6`Si9ew*j0_j>PZfrd;X?kC!Z0#S;kg|ohGT3R@1!ssV;Avp3d5*zF<)b0 zgJTK)n1zju&Eo&Duqm-xe$2vV#xCJ!bTqO0*k5=*3%fcthcC9U6|p*gkA>YHtLKL- ztW)fAe$>Kx#uoCbGfnKF*p)Yg=oX7ZVgCcX#QroG19riuXh*&wYa5rFgG5^W;9s?^nDJo23HwnBs{hq1=u9S%sA}X$;s_ ziGh_Wa-ZUZyGUM_X03Cd;Ugu+d{rF)o2;;ZSH2c|j@K&eTfm;@3oYzG>;-;{h4sjN zi9e#S$P2cP~Gxu%-T0x%+v) z?qoq$oN|Be0e+9dQc|AE{fHk^*t&|Ba}V)3JtTHG^R3)}^HmCaHuwG9!@Rnu#M-8O zlKUV2yuz-m^5uQUKT%kEQD)xv{FuTn^X29Jz$f*R*yaAJykGcMg{||QmG>Jj>y4O< zm|S$|EqiQ9!MS-{bW_+Z1w#Srr?C5*jmi^Zh{7Ikb|GM+dz<~vnIj86>TP#)B0B?Y~#VSV)x>!Tlr#_UTiw6{jQgrdS zrDtuPM?7cgIUlgUJEVBU>kcVi@s2}^SA3|-l~!J#=Mx_*taarwz>YYi`0?-*!}UB$ zu`!h57e`gO5y9y^MI2MuPPa@L?eY=QN0nc zW(sSa_d;H}s8ZOOd0PN$+sD={Lv&WWaiQrvL-bbI)KCC;0~MxKPv-$KTwy8I0TvJw z98!W}nj>dW)Hrem=`SN9mYX-7hs2c%Gx7o~Bo-?yy>dDaiOYu*geoJ*A1|z2NCAm zT|S*R5id!Mk0`^OuP9z5J_xY46mMhk=Xp(pXRyTZuC9s57;M+qM3fG;>njrR!FGK` zV#Q#)z9Mn!V7tB|v39UsUy;}_*siZgeC(*NNF1?bV!71w?6wz)yz^{cQ*p?_Ybw4a zOvcD!ar`{HkBWtUK4Mq0N$jg=u?U=RODPeT4YQ?`i0g*gyk?^92%FbT^d3BY19T?A zvT$r?V{L5Pwr$(l*v7`Tt&MG)8#`Z;4ZhgMpLhTJ-Z@=;x@V@Vs{72G=`I@IA>1rV zWn02rQDtk==)|^ql@^^@>87*%^=Muy#rfi>lZ(N#Pp8Go9^E*c9Eoe-U}R7k+w5*1 z$8)@+5vzvfs1tF`HPS6o$zdI+?NQ0$6kZX?zxbDG5;d52%*v;}j}~?TV$jmAVN3*C z*P&I(G!QUrOMI!R)ykE)`YpMx*K9%esu@0lZMCQw`OfwGUB^hbGT0BBC!2N12{6^f zda4=Qk08w9?0-nNrnH(IvFXa_HW+2i*i!1~+udzMUSe%_KNh{wWv?0_WSZac{I0XL zH-H|n*zAroxihpgki1zjwA;ztZ{X&*lDk>J-(1NZK65#LbVIwEPNeUQ@3`ZQ6oosR zR=Jx)+od_TAe_0Pi<@b%Jt5go-(+`1C17mx(jRFIKGu-{>YZ8DPm?6{XX)xbu$MrnMu?(}IfTY}^}bFr(5+SwItzr2MKjdG=es zyHk{Z=}T;iii_wA-;GmFNnZ3&_NO~jxqqv+e>PbDBH1fOS%CgW{P7zLXvp5mp00Ex z+&Oy0bD~0#wy+lQtjUx?HL?iwxoPLe!yWV(NyCou(spnY%?v=e0cI*?t+luuO$e`* zQ>(P5W?IkgjBvhUXl^|IyT3a8wO}6YfM62sjcF7;n7Kw$j!6F0^ha?25^f!Hv>CQq z1~o7BC7`;N147bUzHVjhhUQOc_p~sbH=2oUX!68U8(;>X9blM^U+a&vA+-{)OiM=Dehacj}n zuPN*DhZ24dAJcyUA;3eby8{)VI2RAvI+u>TRXlD?R2d_& zK8ikRC;Z7*`AcrYNG1_*;)V4_)oID&XhTKiv#q)LbOM-7Q-Y*5b=$svm1JV$sanbZ z>ZGu=b}w>{HGM!4Fm&hBF4Nr%rx|&y`)m16X<#?1rHyd;1RIU{>{QaHUf#Bf^Z>i1 z^XwNo(Q_Z-6`jO0{Y(cuiz4C>Djp9oIdGZHZ^D-hyZ*~8mwO$tQMiHrT_DTG3ZJnzC1d7pt8qXT2z3D3<4-vb@E9h4ILH}Fz{B(4D z{!YTPetibr_j%2W|^#!gY-WDa1#0p zNbpu7Jaw3)FhHC@=iX>L^9Jj~JQ8yy0GxskU=_%@q5=59@URS)sxpmhm`N`j{b-}W z%dACxH0g2yILqECNq z$4}OY<18w?SwEd$>)3=#<6ypSm#&1Q-g0lPG@#c~GWM$k3M(y;)!TUW7(>7TI2v8VOyo@#U?Ys|Mriu)u)K(f;#nu68?_~^b)g!TQ4c9D z{P|nWVhF2DANWceQS=~PARfYh+JyYJ?9$RQ*%b=@!4JC!vIf0b%o+|m+Z!tMtj$V< z)j`TUt*JCbm|gA(rqy6VS6(3n=e!LYTV1&b0SSG?@ArrfFMr^bc);>4cW4YPvf@=* zayE3V4>il5ho64h(f(V9D~8ZT{c*6L+_Iby(AgT|Z3F$VgmhZDJxz2r>MpweiD2*C z^w{q1ew2$_cD3RQHfQU+N9zLxm{kcKnL*i64R%8BKWA6i=*&vjOnZT?%BC%s~9Tz~!R952?x@6dk+2jJ;Jx_lnRsa9%Ko%dBgb@DpnOKy9ed5T?qhn0Q( zbv{;x&wi!wwwHWzQ73(`p(Pn!zSfC;F6jg_pbSAN4VO;Iek});a{Fj0%GJxw5qgkq znkVbv0AT zA`db|-XsSCZi&JXe13Ok$@oKt^U72)ZRsCGN&z0tEosC!<~dS%gG}eoc6k2zXE!IpTw#+?KChl5 zI6WlpfA?1iN7b!xtbF-!_S$#ICv_R@TqUfYaX=zb=R2tM71}xA`Em>?&T;#@5jWsa z38)b|543}i_y(5-?`SK=2_s7 zFW9taM&Ihfogv2Utc5=l%bPhE5<70#Yv)48VV%WM^7ewE7Ec5=s@lV|ONo#ncz)qw zzXi~=^RPc#1Yf8xB`DVupcGpMU#;I8qH{%(@5q;*`Gz1C88hfwpoVGr%49O;>*Z_b z7Bp8rGsAd;p>mZDc7DP;PVwgR`g%PzHGA{&d{k7}`*ThflE~?Zk`%v_$FaZ(-njCHjlrQ` z-dr#rqtK^^pQBJucJ$7jd?{|Ziat2^3QIzOu=OAFDqHi(@?LGTq2h$T@qn0HqL6oN z&4wO4Dm4G0oAqm`EJ;1EgGUVxZPE4#b~zVV{40TrJ);1@(LG!JYVoRo?f~c(SLhap z{}hH)GJK00H6+t2SS_P=s@U_};-jlqR!Ey9N~L7Jpe%gitL<9;{B^d{$^_+;%*I*j zUqSa=51O&0qs%2gj!%a*L#^lZ*y(`PH^`F8g_MHV%Q0!h*Y?p+|-5!H$)eeK}DyAsYg!^HHD!d#e0>vCv zNudORSVpqQ4qC>bfK>Sv)f~ywKe->Zs+w0hJeric>wTMgPKVf3wrfElh`=m}9xT7e z5f%H(Bl&8k47DNs-3xUyiJN~u$KH^V$sDV*WE3LZ^07Y78h7;mZ zNncXT2AeOf`x1No8e5wYW(zpL{XP{X8yqdwD?8Na@_bw)0hMtGFZ9G39|^fS>R5#a^_4>_xrlYjXbw*xlz4pzj5Xu2pm7oFr# zH>x=}!Q(%pM2UoFQ3vLJBKLNouc{330vP!F36Xq^V+8Oq>E!uPks8D|Bm$>kKT`oV z!5%1jvQGR15wMTHh|iIkauMD5p`F+UCTizEXPtBV8&fRl4?D2hmC~r<(GRJ|aZDJ| z%;A*{3i)^=Z#f1$U@wV1l_Z~G2ZkW}h@bg|FNIGiPDruIGQ{f>jF<;hf@fe`Db~V_ zkc0g|G#Y=bR4bFiH+`!t*Odar?Kt|KHIVDcH(~0(b(i&co8Z@WW$d+~U423FwChqF zPyn%3Fo0`t%lT)S{u<)XCcJ7>*~u|gZ}@=_2yRI&se1TdlvP#(veMWr|gITLm)aN%waLD$1g;HVGyfmTYt8P zDSkK>-U|nBiI>8-6LaMO#IRZ&h)ciki8wXk?STf%QRc$BQ*gxrz`i$6wZ!dd0E=K< z7{Z^P2|w==C?McrFwxHC{+Ac3JI~5eh%S_K2`9dRNC+&nZ_i$xU=Q>yk!$l{Xjp%_ zgf|o$2zXdb)N_$~y#Mf@BlXQcEo?2hC+EOJui<*tEq#iACcwRb&%i%nfe4)sA!T(c z^9#~llKDyX0>bapaQ*l&EQNtY3+@N~PT0aW%wr+n0X2UjKuvJcPzp#3%TUB;EA-hH zwTgD=5PTN2L)DwPpbOJ0cl~o99+ohi@8W{_CN?N(O-9*y6d#I^)l6{c*dKv^2!h+2crR~A;r8iM4WQn%& zZJ@|z=synoJ0?!@uoAWek*t3lvC`xA9bsuHWb)_>Jg}UnXK`QRmA>ZL`71?(r9XoCh zM7*S^3{l^y0RcUa2r7=fx6mRl%v6E{A`$fKt7I*lAB=Er`V`MLfOOXj6kmwv)><-v z*s6YDWo-mRfQ*yP5n9EI<^3luH62G8pz-a5RPz$#eUr8vlvg8HhawI3{kjU6_IBb| zEfY9b!-LrV$E7oMihG$Rjjp~~k4_I@9c1~VTWT_(X{|mOEBX+IkNmp1pB1c9{u%NT zMGMVS=kF$YU4K%)Dwrbt)~|KH=5m);XK4&ing1CHv4Eix{NI~=qzSbtoe-BOT=ey1 z*D3vrVAiQhJXghrKt9Chj#<_~MvsNlH>b?EgLdJyw}7J5=(gy+ym|H#TeWb&?<77$w?Z84`AA_`qbpSE$6l zQrzg?rc(Tym?eZn8!MkI7M^~%c@Enp8zEEY^x1TL7IOAn=I)rxMNhA!@6;JX%~{Q+ zvWM#S=GkTC+ji&N%Eupu^MHu2;?LQBt)B$#q}Q53j?e}O@3uct>=0Wav4X$op9O;j zVR~^9LK$EmA{GjvMHEBx;6LW(X$xy#-%h^@KM!96Dv2DaINsC4DRE~xwzfPC4_ISA z%h=`n7T+Cb+QR3;kJI@(=r(V)rZ&dANaMwx>5Jp#s)hpm;f&}pi@a_617ertP~l9M z8)7uBHMc5K8Nf;r8{CI^PQbk3^`+7mvVqRSwPJP{Cf^dj1@YV^`D$x|no`1HZ`94e zHHl#k;?~$#E6NpmA7KJWH-x2-=1dAJczsD-ptsXjD8|f8C_AsdJSO5I>V~*9$*aO< z>4n&w{t_&g|HOt1z-I&dOZoTSmN>(wjwLd{u-5E-BKqZte$I{gGj7(u-R10dtwU9T=gn{xHsBS*mKLyHOB$&7Yke5SAyU^sg%JGK3-VfGU$&~2>xtGi)x<_Nyi@M`*} z8lG3264|+n!AFbj4(Bi4&{yxJOQ57?t(!_;^CfNEXdY%>o8jvZ07i8maza zR0qk%tib@%i!?v%xfh+>6G$;SJ<`7lo`ubM(a#B%h0W^-+KV$k{M-TYtnoeagazOT z$p*A{g#>`ua4^SdfL}`FQn8VV{rsFgs4K8bzAQ!ccZ|Z7^A?ookj|h56%>L75&XR!Dcu+1 zE%(Ya+9gZ`$_6ZU1;365&ANZP28H5>v05-3z{<$;+g=Panjyo(MH$bxh>1Mz`GoFdCUnIxl_&E!t8I2vy<^{je zqSJu&%29%RWnzK^L~SQY3yRXppR4b}KGV>HeZqecW-zesgmtHbXSs&m5CSy8vYIE` z;XNq}q^lb&Sx#t#?%RJcK5-RD>yJ8uTtTr}=iUea_yZ{(ObpGHhzg|7Vv)giL97-e z4%z}8!NlV6`ev?LV|O7BQ3|9vv57$aNeiSSV&g&kaOO*NW8Q)kL9^KGeepdJ=1bad zKyF}P!TaeCo`UAUve+#7AoyUd7B*uQK?UKg7P@bkuGxOt^*^&+(-laM#YhGngUC1)CYzlx6q}aCcCHxlG)Z-uYfqr2KCGS}KChh{hCu8Lc`%Lh? za8)-D*Sw(e-sv|OfbVGl`A0Q_`mp9px?%;vKW)DenDRls8we%)4?V*J`o7tCi?MvB zXDN^-;{1fW20gG1%xB31_g#Aqk2#cOdg{R{CYAF5?*mD5f|XbZ{RJyAfq91xWx;$W z-0y#v9Jo0n2(o1?0M@?vE@~R+?OV+x@akL5yl4;7o6G@9R6^emZH;$Ldx7BR z<1am6OMa0mfODqcoj(PnH^L&wP}CZ*s)YI6k^=5ej}drPdeHy0APp#XrM*_}BzVT& z{$4N&AVbM`kiI+t@ON)- zglFPcx@*yUZUE;zR^YBs0NA_4t15tV!5R<&{2yQp+LfCF>&yJaeWt&61GLR^1}Xk+ z3;c#4#l^e+a^O|q*a^Zlwja@R_TFE2(eR;^{*$@CH79?c{yGk<^2z0g^?8Q*8@pzB zWH~MiSG_{LZ5wtP8C(ZzkT!_e*O89{&M*=`ib98R!?5fiGu7) zcC7^X+ph^W2l>fx?F={$3I|LAP60;%{egJMJ{Q=}G7SN3x&PmhqkhK^sV2V$m$ zH;{# zzgu=tWN^|Pw_8OxQMDw*{NJ1q^K5U+{zsnRd?wUW|E)2QT<}ePefJqeL0}v4Vqlb4OjcU+FJCvHpewF#FbzAI&!; z<88}NYKt0%ws#ta0eA7!z@sP8*_z(2Y(Xo5h+`j5|Alv?U884$UU1K{>yp8?OvAyu zZ#tp*ENyf?lUreyV2XC@KECDG?|Y4kFWx%-W^rx4lTUc`S2x>R-u<547@bzz_MZh0 z{Jlg6FUWiZiJQ~Re6V~(@xJr#77*Ki1BPkjVzHXm#Hb134J9S|ORPpj!(3en^^EN2M}& zQk0LQw~)DH=8o>p_QrN?>Rd|A&hSYTDSOEp-CFfI-a@#tE~3dm(o}nWme_|?U1dxw zzaDniG^1Q@othD5({iirhdfn}o;Zy(Ky_uRfh28@y3SrRy(*GyOB`3JR_-AEW#(l~ zYjJNLb(x~sXpJ6An#_((?6)7L8Alo|!U!BQ*#%A60n8(YYUP^TBp44%4#TW2H$e#d zG)4Rm7Y!4VG(jFGk~F%LA91X2Mii-y`(b7jv1@rE#9d=iPH*uymF|~J4(%U&Rj{_stqz1Aq+3oVOcoL({Q^Ttf%I1oD zbKwI!^z8NuQX_2i{2u@Qlj^MRodeePR$YRT8;+YP4#VAaT;P>+2}C&T649>x^|TPk zZo2iNWj5#sWUc-SZ4n!^V=+%fy){Sey5R2O`0HvgcGO|}RBYQ~gOAhA%#km!eCEfd zJY7WlcA{e|+-Vy?mnrH>MXirHMgP;Jx@AtiS~EaqL*}ri{IhU6(v=2X_FN=6CsbZa zsHrK_b;l%VMU%s;r%3s?DB!o_Q}WPN9|;+1#AO<|ich|8S=q_cji#tE*aPRzhZj+v}O2u%)GTh%8! z<91E>a!2wiR`twI&PcTc<68zsj;C$sg57R+(IbqJC3TOA&)4AX6|yJdC{U`Uyy+Sr z<3dLjPaY^ObCr^N2iag#=XQkvU-eYx`u^p{OfXY9tX)gXDa>Cp;V021U+B;{`$TrB zh|~R?bScoRa^V^tkaIUCF+CteFM~@KD5v3PC{?L1O`7}=%yqFTC6}aD_d%)BD^Qk) z7Q%4xMTEr{utbSIM50OO!<8*QjEv-dL?MOMaM3?=Akqhys3F-yAxYHI31a&{R6A5p5h>= z81I;6Rc_NV_d98ri1#5*D^YIN22M0lSfe|6&5skl@v2HbtLjRH&8p<3)0!*+gWniY zR#JmiiRBb-hIYMBsS%DBDay2IV=}HJ+O*1eNOJ|tktfkXo?DZckE08cQ73i=8Wi)0 zlORyWc~tE@L_93{(pULYK|SH8o-=Bq9^IeSMG8kr>{>3FA{2Sj%O-Wg`1f?KHe?%d ztvvQ*{MpJiyDx|z-aB-kaE89&pX_v@xBBn5H zmN^b9*md$M#g}XL2ckZlV)sobt0K?y zsw>y>)KH-tubU=`X(GrNw2M{WykyHrrw27`%V#<~H)#IBGtFo*2y5G=E1Cu3H`n{c z>9Qpq%im~SzH)0#d8SF*L~Uft5gn=zDAV%iQ6FVo{u(#vq+7>tt4OnVNC~?Yi&#A0 z8jZ$IeCdv;_4Q}xH=Jd$S^fF@&pq}HcFpjfrdf0KDJ?|+wbWCSyo#N9Nr%lscX^<* z;?x~L7=U>Q5myo~D!QWzg}X-@EoX2|K8si1PV4McpTW>yv^GVXKbXuj=6=X>m&Jla zDou@na>XD{m8UGmAIxOFFJ@6UB5G>pJB_&_-AqY5@qNKwOv{J>EeMUZ@&MDHtbJRLF?+g_yzo^)$sY-Gn(W`d+mHVdL$M z9*b_?2}1Y_4(+i$##4lWbGZp6x5b(K>9E&{=!bLD#Iqcp)v=e`$hT9g>c3ugdu}h9){OtZY9j3X~)ZdussA38Iyb#0V3R990B-e_U ztR*oFa}E2+c`9`-k!p~Fh(8-wg`iRLj4`FIl>0ZqNc0A%9+V;xZ026F2P0uBTyr{d z%V;OFS1TGb)aW>mCfVPr#|1H#p8424Lu@&6Wy`1EE=)sBKWT;MX1A}yc@)=sHyJ30 z@YLPWv-(Bi2c(j*)sW&PMx$B1(q-#tFGf9!Dpa7loUfbSSgfCs{)`%7eTUS|*&g`* z;b0HtATVV70kjyDRLpR;s@v?&{1#wq{B@}~(1eiTSC=XP=E{|uP-F#HD?~7Mn52Rb zu^`Ku(W~4=u-bW0(Oq;s9PL>Km)Vo~tUPW_u#A}^SS2rVwHL->Hj;eTpr&p~u0q{a zjyzMYHg(US)G`}KrLC&7@}n&Y`~=HI+pVL{5<!BFxqA98OS@#Gh2!gJj^#RQn3}QUnu5nAzENNl9}U5~kK0nG+>+p;W>|>_*01 zQpMrzIC`{5@<0S~$^dh$2u zBxAb0dqo+&=~Rn$51)3vSI#)JV;xm(KKF^7K|Sp_bFfy9`Jxbs+yw=)OfUBzmk4qj zuW0*l&{iTzbbswe>EKXV&Btf_=nNbvN=Zv#r+%1JP?Dh-L?OIntyoIaG%c#5X|6Z_r!Zg+g%bW^t9h55z8c2H{-%eVd7yk}PHjeYOFRld1~iDkRDzzjbg`fv9z=-he* zOjlPicF@`<&!mHvUA42+Sc0kak=Hh?vNDTvGX99dHT}$#?VMF^@upSm`_ieryW9mswc9=h$A3!nWO}0pKPz*J%5Bq`%u^-3kchI~ zpz6zC-_1B|BbU!ZVSx){Yj;4;fi8_{T8&G+8wX}e-k__Ybj zgVtr>NG(1U+E&%*S}z|}c2=B;^aXCt>_3T&^;miGC4=G8X`VG0TXL*utb3s7?0R%M zYOZ|klPihg$dO&Z+{}?(jA1z&{1nO#cV4#qRddw|x|UJy{K_HWb=4v(CtQ!0$+WKj zPdV7t(&PK6?4DGEbZ(XfwH;x8L4NMBvnhwUb@e_ARrmUyZ2LFFbmf*57oK-MxceV! z16u@|O2NwKWL*Ccm3J5{sc?9cMhg^2?{qfTM#*l6X{GSe4~op9B$G+h>{QP~;H*A9 zSsXfmk2j$^Z+Esw2(O`O&&wgTRI#a^20KePc$O{V&0(s?4`|eagC3H3qQ91b39oIA z8Cf*bmJr0EDUY0@G9vbal+8amGT?M{}Sqz396;q39TX@x%^^=(mx;{27>?@u- zA=UiS>%0(t2kn zTCKKl6HL9_Nw}XGV8-?9F4XD4?jOPJ7kFan|2-6r2?d2O(_mpY|1RzFZzw$d&Z*Hh zWCu`M_a@`y88;O^c80;e;Df0N=B=C{lQ>xa@so_k^DU#xV3u^$nZsO@C7rSTui4Hh z#S)(14LWYB$8~TlZ-$N`#XO%m1q=Q%Joa~lq28!v=FucL!>_T_49$2-m&|6s@t%8O zj?8L};%`I6(qkjuco{zEtvb!b^p*gh-KCUI(9En?ab1pm?u1*yiDVzLf&fr6%4x>b z>u?2(b2+`=cLvlqvKZ!!tfhX-eYa%CKdW;BM|$M1xkw&t$?IG%h1x20GV}H&X#E9% zHgiM&-iwCI42kZ984GHCrXm{QDKLGe|3? z3K>hbsNJv3b?c`E;H`!mJ>=A_OaVYbEi^TtS81Y-uKix)&hs?|A7K{C`c)qpLvWj? zv!~L#GE~h z90=*}Vf&?p{oq3~D>q%G`MasOSkB$%Im4T`|5<9I(R5XpH5t-tZ?8L$C~uBLVhU}z z{E0eB85Db&s8E+$TDxfH&-{@U0#LNzFo6)792`MjEJK1WJcaGsE*DG9Mcf(#2kVbW z22^RF6Q(h00|ZX&HsBB~4&?<|nW!X^gdW(j#9y6)rZ3 zEnl!jtaO)@1VIkzN!wO=&k0RVOiRKl`lJ3QPIP|}3YREsA!VSpNE4(&RK4^y6~?a} z5|dwhQ>vU)$%KWD#f09_sqnQYJy`;ml|J*8+Bf&sglSyiu4$fvJj9gD>5lx*Ru5z< zrWM5G)PL@+5Fv$rO<9(T9+mC{pVq#E*eLvDr>JQ;32n}wA%6L=%mbfN;9|)?dtVp$PS)j(X+;5R(zm)%oc0U?C29>5Wm7$?V6a z7&w*RJEwF9(H9bd1aUxa2dvN+hi&REpU!R@96%FL^5@A|^X zi525XXk!V9K||o=(f5!nrxz@huB$mQ^p{EY^>=PC2P{#ZOKzgvqyY83<9>XCndU;#-MQQ|?iYlh%$xz4l6v3O9;; z7MTl(we5L7Q=khT^}V;2vfwHN3b(mhkV1;y8(0uJwY-`Sz*6TXt#@TKbs7>`2|VY*nH9{X-gbpEwZsgiCN8Y1 zksC|L;orFwkW5j3pCcf{L-|#_5zMy=4q4JwnZB(eIzV62z^y}#YNC56l0|}pk_F*9 zwAvcoK-D4CPzI^MgWvhXjhkH)`UXJan{D%^_UMR5Xr+k@*}SOaiPZ?WS32A0*G#Z; zYC?D_YC)TMSf-rcY<`?{GaUfHl2ILyU8tjpKznLtkd-$# z!1RoK@T%$Xskiaea4(LL3=}|>M5ihZezYgClNy&8di&oLh8HlZygHQJ_aLbtMu5-& z|Dw3A1$7ci9`IJ=;p9i9e3p-QKEHS$G4SJRzZaPVfH}7?_@|P>e8{v#hZOgO3E8UTwI0`vh-PVQ;Zz>H_xV> zc&j~9mBb)+_Fs1nwbdd%Y`l6(LWkRnQq*Vf7klnZkT>aVW>u3lW2EUTyD`ckEWk%C90VD^?m z&i1*@&1s=_0i7`}=d)S<;Ztiv1!9E!5!vZ+VpX}lL8)ltEIK=AX%Xm5yN(F4fZWzk z9`eqWxY|^!c!G-?Xi!a;AmdA0z~fJT(i}XySwyCN4yhMJdu%4L;+hdPifc5^W_gzT zO`O+ku1--2U0_%N61nx5_jY;W0`2j3eyd)cREKC)cT?w9lgeen+C}uU;4mr8*5%N% z=vN`@=18`F@OT)#j;%!IB~MHzREZ749T?TB!jnxqtbfrqMR@QeXt?gM4@i?LSd_o; ze0izAHaE-i&vJUkyWguHlf^wjg;A{$L+LHgzUNfDF-T1!8hFg$hyqTHeLcb@nk{Vg z&>26Fah2E`{S@B7CMElsn?85p#VnwH5hY>(BD@-Pg9waCV8mW;{#Ye6mZJL#i*i#0 z_${G)(3f*U&y>E_D@U3tQj{+4C$*cjV|zv&{s2bUKFN_({QQxi`~ysv80Y+T~k|xt06bK7xY;DjrvC?^F5X?v1qlG&lK3vT(4A1CcgGm&z6P#H<&cm}FZ#ZAgb%Aze z0)--GWa4q9sQJ=e@yr2BW%-R-!szz~sfeBl!Q#nbc6v-dGFJK#sfTzQ#t zS-)GAHu}s>1k+~vr44-#yaq!uhT^A1LMBoFB#F(>i65GNnxgU6w~a-mLonHnb zDXxBq+eug-kNXPxJ~Wj^LBzwK9T+{Jh8f)^j$nW>cC%;^MV-S&%!^>F(#CU7-_0UW zgI3+&MN#}o1Fz{8P@0ZKEE8es;_z}Y!3|tH`KP4C{Cll2=hh;s6#~3)d~cjsG8yy{ zB*V*fk%tih${xx`MlFV8Oa~8WeI$@+q27>G0^YE7Z7sisyEZ>6lN&BHXNra@jB@LH zPu~KUb?iB=V6`#`HX>HC;%=9ih^mEhyHuUod{6JvF=k*-%V!P?7Pt1wp2LU1<*yUqa?7L{ar4 z>lBMxh`S7CjO4@K1cx(vV7oxG;CyDdZq7v-QCV~$t%=YLI0@!ehuTPMv0BS?fva1p z-KwNV5-kt~TOp6zv|BUeh;`l;eaAcUvhDmHXD0Jn;2{i}dM?YbR0clr<=sBgYnOF~;??_^QSP!-=^GYxT$Dr)Spv1j!fZQ2V_}%3STcbIlq&%mm&F>=I!`mmYRz^>*(#fhq zBd(Gt^6ycKL&ck{kqb>5KaNgEy@ejB7^ge|joL3xTP9$zyG@q3k22I}oxAxh`$0y2 zX3qT9%qy45=Y1r@Ju;d(S^u92of&255@F*#c0P?3!9YS9um2dvd$gvg`QoX(goASOs?(vbVi6HrMM5+_Hw7=h zfa(E@nX>QQwdNNXz%k3++YOAm+8D#s zot}Ni%a1A5zFfQp7Q?sGptv!{7vIg6-IqySO@7sYmzp;ITSe&n?mb1yGsl@>&F)() z&I{dNvTuq8XWjPuBO_ORMglisjvr>Po2#FvZL42z=$5q^KIZ^gPX8w?!J1-%cSnSk z8_GBDG@jO(aa1lMME8jSZv~{5W9u-V)2viYa$huW^M{*5p5tXLto4Z1!axBhR`6~T zD!;^m4}`paiSm2((L7kldt2x4rxL4E)iC?Z^D_PbAIKh9B4Yr(sO-_&pN<(=QNX zI(ngb-;gY9Pxc6ca$;qA9btTdgB6C6)T;eGmrE*X{fp7L^Cp~fXs7Ffcm}dyu~<_@ zX(QeOvODP9(~<<^+aT=C8N@q#x5B#r>ZxfzM2p56li5|HWKFi}| z=zO%$=NyGLkyqwFpCut#H-NBAn43oF>}F(5l{*hYl4Wdrdx#X$^u!UFTTAmmqAl7VsrhYPrugHNJVuU44063hR2LOWw`SeLb{ z)l6I&i8V&XQJ&fUcj$n&AMsH66*07cMRbI2CQM>4&kyxDNOYQz%)(9aiNYgHtW;kW zlg$YE4ytn6p5ETzR)p#2y5AVQpENCfX#Fa&3m7zRVz+Jac7JP`lvak zU(~z>mTGG|Y@mm*kP`G>a?trKKAUVFcP?EQFG^;IXTeRWaZEX7(&i$dF>KmcAy}|7 z9$jog_7ssy!5AH$GiZ=Z?1${qCjP4LI3&WL05{pXINB(A*6i6hAJ^Q1na*vH=^=%W zMRZsaZP8ony?@pSrJihWx>WBsh?D-_9r506<|l0a9q-6%WauvHI!B$)lKi$Ps+-Cu zwLbg8T#-Y7oYPnM@O*9lK6DhpukQJ1H=O}6j@0ynp?T)OYQf?48bT=xR^t+ePV@Q5e*y*eQQxF z=f~#pVsgDTI!PIr2O>aW8vTXwNXz7JBDAOv6RxOSG+j~|%!hyHNjH6p4iR9qW^51D z40X}~MAKQX$@}2g+g2YqdPX25)oH3iGp12abL!_un?HFm2uzMm-a^s6!)Msy_xo9$tAO4 zq4J!U(SEl_)UlsGoR$1hWav+&lS{g>y4aO^qVI#~y;^$|Uh%H}-p#^;7kzgHZwg6E zL_e+lSBxcX5gw`6} z8H{E}>Muz(7D2w!br!+z-rdmw1(PN-k}nF%@)B2&7ZqDGabOK5Hyst96OI>IZQ|&! zx^c?Ai8L&V7P;-&mIc4v3!Xji=T8ibyDWU|4B4)Fdhqp+-9w6&($s+^-F++Sj{vlp zrPciviMvPf&J*Rgqg>bR%{!_KzEGztBx&2pUN5{0K4)8&YM`^5Z;LL>ZlR1=F74pU zNn{7v68@C-yoZ4GVZoPG5+hMjdvLbnc$R!wO~t3Q%l&UXEX9E|m%nr@K!@91Rw>1dkCkKU-BgavS_zdk8;Hx_YF{{piFLhcUHC`EJ`Lv}UW3Wt|yMIR1oH1FiyC zc2TQQTCU`4)YYe{Yf{OV2{Tuu2kerMZyQgm=y|q!-<4S{MYt!dd~X2;oPs~H0laR? zY|OfJOViZ(5WhEeAu^T;D=DhC@-K9QHM#e8F6Fn+x_o}G;4RT7vPb4=85%n7zH0rk zZ1q?iow2kcI|4?XV!!$0)*6rf#ak1lm z`H@?EYVd>AY<_b#^NCMjOt0z1JS^vobcQ|K@Rzl}{NcB#>CsEQ%;n<@ioHcceeg1i zsI$)cu;o_6A2OE%cS$u#)Mto0(J@{)V z-|(&6IK(~2Ls-`D@e?s!kE$JmYw4wRscHJH5W0t#~ z_Bh(tw^Jlu^UK36!-Mu`7GW2Q%LVfBqI*bdufa-bpOfMP)ba#n(uv5rNLY6Fu2_X^ znI&rrdcrY1I~s2J{iHEXW<_RVAM48zE^JV@FUIRWuC#DZeMP3dL2sZ6tMoRomU;xC zdjgUj%{PPA#v)^^x7;FJ?_5k5(VMDTFj>8cE$_{SVp`a%#bp@I1#4OAdW!!hD~X^5 z)8)&f%`z?K&|B<0%@mG({!SJYb^YgMd;3Fc; z_W!kZ7C>=C+qxbcf(CbY4ek;Mt_kiCJm}yA5AH6(CFtPp8X&m43{Dc` zlDg;Is@GG~Q#Dib)xUPHwY&FTyI1?1lFjdkdY!_wk@!AZ%rTip9_@|Zw!0rSPv&^u zq3#)i-`em)K&tMnEl8f%pjEC%>)f->fGvqF)C;!8hvRn7iXT0d_K>v`&E62cf%S&o z1g(%gbVHM;r2}(EasJ)alX2cuA+vPkXnV|Bha2I>YB=K~Z9l5k4#}>(J~mdi7RA>K zrl;nf3d494@x~?ZHTce-<%|YpAKq*P2p>agsU-A$frBfGcIih(LUP=YXS^QEBHXEi zs0DBGpR&|mB3Xml$zIJ-5Fa4iP_f#m?^HGgj-iZN>8IKYVeYRFjR@npR%H@Bc5=S> z(Qy^|z%*#$!hkL*%g8H=rvo`v^2eQL{k{@!&RxzP zCp%i$#jQNh2YplIE0CHQzswW8S&JY%yOvoENpFq>dVotR+|^Q?-?+cefbdM9?E8sK zRxR6qxs34Gdn-kHVXh@Va}EwnY!h3()6vU4a8y#O!0RuV`_w^I$f~!biGX!iDl5gB zGx9}n3Ck~erAB9>u|1DV?4H6!O(&gRzU0SP3fsHrP*|rNYUgrxZ;9ddrc_`>b_O;Q z-q4Zv=&*XSv*e<+wL#LLCtqH1HpIkM{hdupni^u>s9VyvJhD9X3~V|6rSeUflF=;8qGx4{4yk~Qy;Bb zM)f{gZtqaY54jD(IfkoCrpCriN6xAoHgMBfYkg*CpdJ>OQUpSLbpKFMiY$9RmGV96 z@iwK{4su#PsJ8e;bv`!w-M%`uyi`|4N31i-P6_Z#YN;)1#%u?RK5jrxp-y05ucr1= zh@nC6qXCH2Wrr=F?YT&k zby~zn?}A^^UP}5G&-Av(J|Er&dD#qdE?F>jj&Pg0DDLE!xOxuBm)RwxAvwM`tzN0! z9z)yVe%05Zwp?0p82AZU&AY%yIf@B1B;I7$)W*I_IWGr4+=hHT;E=REB+fZShnobJ zRto(DC%pGmK1^7HzZJK>AZs{#@k(`VZRx7kkjq1FypgfemJFHFNMEl%YQgtB^{@`Rrn$BJ-g_!1+T|p9(8XDU*G@`{HJC{hBA`wN zA}eQ+u}Vn2zMd;H)V2}#(tN#NPp_e^_jY@xV%qa?xr3vES%6`S?@`{Pg}tb(gI9|c za`;K3X1+vw@&MYL*?XDPcYY$~^)gdSqg#Zgh7TvhzCeA0{Y!$YB`t5w&+Tc46(!^C zb35%4UsR*-$Ys_Nve|a+duk0>zdE%ub%}1?4An)#Xx=%^&qtA(-BVcZze%jcyP$dl zZA}&7weo?gW+{)bj$ZiH*zq## zp}V8Y3vUDssH9t_`lIh&sP6Ao-jhA<_w_>Fx}YR#f99E#T8exis)j70e8Fur*!1QQ z;q`Ap@*?UIh4F$J`i@1=D3gu;^FjU7!nSYNQI zS=o88zAXAhJ4i*KIIhm2G1X^2u3%CKN=L6Z$$9 zwyUH7>3}ajCfMqLLx1Bhk)p{5>g!#|rc#5vcZ zNt-|gLmXX!V}`XdCouX_<1^1jp|PFf;as?$32=5Pf1Q%0#DEDj?1otrDjXC*TfEuS z^R5~AB#TY^8GW(!TQC%d#WeL*FP&rF zOQWnij}>2q$dP6}xf5G`Z$QE3bwTlolUx0)beXR3%f*HYD{0%#8ihl!a#Dv7IPxm8$ff5Q{a z;b<|o*`b9pwz+2np%5nPupxu>0sOBONMfjA%LUsG=!gc;jVaF`Qd>^;3&|2Rd%hhA z9+c~=tZ!fW#Ti zs)-}<$mWLMzPcHI!RY!n(#+fhb|ZZp(}?3Sm6JQ$#J6+Jgr-HaD@sDzNiORfk5G`B zuc5`%_4WxRiDLO!eHHe^n;^WXxBIrV1H|v!5$($Fzs$xC9T6W?M!nP;=$P=nnQ$CS zb4jg*eU21~ebaSrN%G!eY;*-F|8pE$;68cP?r>u8aN6b^dO}*KDgD|`hR9Uh(5RZE zygwG!1cODe2)vC9mWD9pG=&t}D zC9fVu`oOC|U7g7_XJ`L*YNOZX)4|}{N`m)F1388`L)lw7Rwvu%z0#_3*|JrIUK!Ps zea$y^nW3E%H`NR{;}eDa1a0cb0;N~h_Hsu-XeOXkx==)2b{bkijidp5 z-t89+sA`UhPTIlJZ-|C=hO;{_vtrP#7lyHbXyAu;O|FllzW1--5;>pKnmr5$AQ}%z zFB2(Y#g{EopM6D(wZRFB#5F4Xf?j9ChURcjBX~{90n_G`=CfO<#_1xc>!;e4cjEIL zOG;Ay^t1MeOv@Z-rZC+hT+HqDGgCx$qgEY5Y@p}+el)uN+%J& zJ@}Q=UAdzBCmVuniZVnYeHv$ybh!0eNcr`~-h z681ri`8*D8nUh6z-5k4dVgbclA((1Ery6+ms@9)@fvt~Aj!_Rs79q~WyPK;r_+Szi=t2(X+LCeffsKGWGn3e z*3uok@zDsX&V|CdSj8=vF&9aNaHPG@rpoAF<)M8Jdo_+D>}ccK2U0JGu4L`D0oCun z>EC_vjA$|FnoQfa=emXuiW=L%V9NBlzf>+z!-MeQ8haC2hRDu6?69(Q{RV32BY|Ah z1Vdhr@TLo~Nt$7B@-}Z?k?s!tr_@le98E(SaN6>Dn;;#lOHHBh4!QYB!SmLFEM@a_ z_48uT_9`Y6ACg$t2u+OrGk>DBF(he{?HtpK5SXWD3gpCzsF!A7g559Uv|*wi2cm8i zn?e2D9?4;q3(salH5a^Z&!$`141E-?dA~JoE12aI9$PXR^?hLP*t3)oo+?}3CRlho z2v3@%d>eMf;_Z>HK46~DRc4RvF3%a}aWh&)%7W+E&|q7>Pd_aUa3KGOnHofaY;X%!!}%Immj|r5 zg|+95JpKGxas80qohOSSW0>48%z-ez65Ckdm~yh+;dvpGC^b}5U1Y}q0O^C&JIxyF zz0A7{82gJ*575jcyQjUiRr%-#{p%RQlh+5VsI~IFlX4+%?@yMr$7eUXg7CjK(7%Ok zqf34zU)6!x0R1dICIOD!AVDh*rxwT&v%DQy0xd#l zA#o*Rh$$zrM-$#&x^j`#%p&@gtzJGL*)R68WCh3o^O1Tz9R6`i+9Hz7VB&)Z6Kd~d z(@YTdz5knpw1p%ofl&PU123x>GA+Br!#iU`r>TDr+HQo>8l|y&8FKpy%bT;IAnn!FlW#(7nicR8zfr*?c z`ToUOT@f#xO7(5blfEm%U}oMuj)p#lkHStKH^FtI8GC>#LZJ^nH=wq%_f|q@pOj~5edmIyvne6x1BRg-Wk>cqnkEn z1mKyrMtKyGHr7ad38s8h>c0 z;^C7cT??pW-9J^}EQpMwd#^W=I)(8%wt#q5ySp3vsTnt&GAH)!PYeT0Ql_pwyr$2I zCsaijjKn2k35OqTjl$t~!#B_iR!A>tt>ek&zFD#wWFZ``F$6 z*xP{&v@L zR&&IPd%LPz^c!8L#t<>jtTxc|fyH#lnT%!;ekCaN*wlVrDiMv!+$L`Ittym+S@(+Y8oerbe? zNbi0YUt9wA_|~fl7UzHz&)#g@+3AQx^n7-Wj(XU*y?M(vY%(<~(x<9Q+55;BrDMyod*htWeRlT@UBt|n*ET5F~k+tBI$36_+K2Ezio=MSaW$~`4QjbV_8e~ zS!PU8`KLy3pneJWzh+KGvc!*@yrHj;g*N(X#XEUIjNCq*a74VQW18N9tq94$3feji zB_h@nhcBd(=6&zEP zM(N8FHixrEt+iY^BG6)t{({)exQZaJ@nw&owp&tA*Y`bAm}g6T8f#tC($e2QlnYN2 zmGjgVlZHWV!7JKd1J=1FM&-3bTy}Z_qCZ2i;(6wtSrQi-6pIcOB-cCadVh|mL5ksK z%J=h0nZ9VXBf{ZdG}{WLi;VUt2s&sPc_Zj4EeVgdX@D)*H=PnO@3a2=oOeTruiLNO-1a!5?f;++U#yT%jnp(B5ki;WeWsc=VHxXxch# z-^g`MX`k>4Etbp5x`ojp&Xjx@lCGd*ZR@kD90_RTy8U>vRnO-oSVX5Qm@-6u(dwoh zBE+h^W8Zqsmfj2_*vQ7TdoOHnl-wR%z6Na%b`w#pg(1FnIByZy@aTeu?!!tSY`YBf zC-=>vE@WAKI}^}4>{8?4<9n6g7L*&LM|XzHfrA8x^|okRj}A*AKBBnC3B04ht?c9} ze-fHQ5+AV2_%LS4Jd+4sqUiicfBg&=j_GpNTW2%fg>>m{>IC@8nrw27eFsexp24=S zbI~jcMW$XTM~qlIC6k_ogS}S5Wr}X^3@q%`iXP=%Kn2Pc068Lbe}Af}HrYc^XRU3? zrX;7f^Ffz4&@+xA5&cuL>K!+MxZJDfrgr-679Q?IOAO{an&WOXlOspD5xV&I#xTBH zsWxjU_GG+G0|C_N-Qe(?&GZfDB%DQD+r#-}JxMlWjOXaQ=8h7vhKxG+7_(S05JA}c zcb-(2mLv9A{jJN?6W)3ba2>{cN;1vTn+(pm zRo~yM$e|6(kM~wu(IrERFkb>Qlb~0n*3pO1uPTa6&HD=n!6|jfN7;ex#$GKhT1&26I^c() zzTDBYYm5;M?8jMUTwz-0grP*cPcyxhVpsl!Zs*Aosfga>?oeX$jL=5>A>=U2f&8 ziz?>P;6Bw&*56`S!C7q>YfZ9D!Lm=luCsbmkH%o#TC4AhcWvoaRP?=cf4CN}N(|~a zHZpM15e}m8CX53uroZReyBOkrR2Wf0IT070Nr5%VzSyC#Aa%yU*U{SVU+@ZzN9S9; zR!=I#6bNKUtB>#GA-pSgz}bu)*5FE_1`eR{q`*4e3dMF~Fw6wS(XX;izs*)#sVR?o z1xh#9)nC@%Z1s%wLWst_S@UqxF=gD}grHgXI`q(i)B)ko?K1Sj{7!{IJPOUeFO~foW|Om2nAR~=Mm%g4Hymm| zctU4pLjzbn(fvgVHqV;djKxvntU3y9jw0)Py`kA|xr3V{$2b3?GzVkjB5-=$NTDU#|kYbtZxNSR`2&*$b;6e#cgX_e8uEx&QOQUp5$$fXN!L@I2Aovny z??|N-!U6A%>1$ysVH~tWHvO+ta}gj54NiKJ4IG+!qH?#x4wx2))%y)HmM7 zTDpT?^vs~j%hhErwFGTndScM1@Nu90*W~O4WV!yuf;rDdpr!S(jJ8O4ou(IhWB{%b z_W^oyg+=I9xOR~$&wcO6clPkP$%8G+m-n@5`!lrr#p~zCHGAM$Db&t=x=WKz*hMAc z1wrnH#++;U2@xL7^2~y4?~EyGC}KtXie?n(j))LNSAzg%%Es^3_HGm@VJ|iBr}{!K zr7=ayjd5?p@Gp;g!a}o@jr8V$x4WHp*ghkca8v3-)KUlMBu1H;3ri!{aiq0lQFlft zO=EZ`_>*CH;4nc(zJ7j;016)(9zTmxFA(bPJ1p&_#BL0gO;$qcX&u7Ai6{qBdmmXu zx`3fwucrc<`Ntp8g$PIO8aJK4ZcS9}#uZWEk&dBs;Vds2cL%~A5$e5g>DjKNzW6{Z zkVG^cWEmwf6crB2DdP1Pp7MY-515=F(lZh@Z>%ABea-%UYBVp2s3Q_Xk#3@&BMh%A z_vIIT)$R~VMSh@BWF0b7@wf8q+ROnUO_c8 zUp}znW6igf?uX4FR{{bOHazC)ydNwx5s8>_S^nTYp<&5^7f44R``797mIh139ufC* zPPE}-alY&s)F9! zKQoJ$;?G;$v24TTal_FW>r+T8#2}>QYaFsC)e}0~s5ZgERYes-TJVEzXt2r??UX`p zUjz9c^-m?-p)e48@{IRdf@Ry_vDxCAkRz^c9eHjqada%BvI_S?NA& zkjrrO$B_w8 zphA?!r!>dkH+p+ng2!OX>}I_qAth|tt)0=FSWTTQb>_`6hjjni5VmQF z5#L|{06ath;Pq2OI2fB)8(WyMIhi@STA7$RvDunA8=D$C8?%|%JDRaLINCdyIXYWC z{lLd>&TnGE$;HlR#?8ga%gt}j&Tr25_ATGj&WwZ8gw?^x*3`ryN`2XJnFqsrT;b7J znoUuVgI>Ej<2ALJjkIh09S_gy6%KR?CL@Ls)CM(YNL+gL|~v8Vg_T(+H3=9m0Rauisru z37}?R0;N{hKHZwk$gJX-;;hYUW$Plm)I-7*8ehIUG*~|8*lap%Fe7;6+%ibUJ0J5l z8csBR$)f^}M?)7GuP^#_X&QBNHQY7pd-`Ur69RbUAD_g=IgdOr83h>|3+jt?{ETVg zdnm8_qdUDI%RZ1Iv8H&vRPlHG3RjSY8YA#^6`I1`9(Z4&ZOTB!GL;+vA_WHvZ!O2Q>ZRxx%yJ_xlHa%i>o~@EE`E|1i#h;C@+gRTF7sNxt>EPK#wt!Uo>g?ICE56 z(k0dt>Q#U7)z0Y=F5yIHISgGZPnkX1UQ7SBM`wHr$-~Q!aHYscRj5kmaKTi}4nsw! z*gDrmRQ3=mBuXrHN@hPT#o&8hdvmbq;>uni<71ms{2YzBACrIFC0eqR>* z*Lo%^3{9D~V$(|EcD<5o3@xu$+ZyM=_~;xw7Mzmew$;{N~qsV_bzW5TExf4m`XU3 z9UC1Evet5W9_EBv=*lD@KX~*oRIPYpxHQ%rC5LO%rl?Ms=B%_#@(tY5uGcazJm&U0 z`_=~Ui5SX&wAUxCGj;96D}@uNYb`}ZKS=l6EE*HASy>LB4cSB4FER*{(z0QGniuwX zY>R=wsmMb?V*~yxf%vnFML<;V!-4_;emuRApL&*m-3%SgY@FCwf9`+(W5iHj79Sh{ z0R0>QcuGM2(?LyPXqv<82%r*OfK#} zQkV{=Z+}OP?Ig0XKA~X$K$-LYLh<}3C`qftD3-sX#w~uKc>f&=^T|Nhg?jV=W&nUo z5Ac7}v%hTQP5lSzzmv7>tnB{@(+;EbCg`us$IpLZa{N0c)|1Zu9NFCOYybfBQ|tXq zBmde4PXEH>{CCWs2X|WRRoT&BnU@q$|4E|yFGm@Z?F}MK)RVe5P`^10-P1S!FZul! zhcUIW`DcguY4TxY#MI4`<1WMhjxq!PPpGGBj(mzSexd&Kz28** zp3nc+h-eCc{)d5oqW+@Ft7K7NEd1NA>e#BcI`GWSMsL-%k1fP|ahz4u$sf5iNYPS;!@0oPx3VlV!M z`Dc{T~5W%h*0~zJsX|=!u&IGf7AJs`TL@hU&p8f z3hqyxe=>j5`O~o#zzhgsKfO`qcby^le=z^HY~?qdzX!{|_F8HM{}J;yoqrp0{IZ>+ v4eoCPkbmwBegb~KRR0AKY=`^*f8nko5BGGc1ON!0UK0pUG0^>VP6qrRH~0Q7 From 0e1cd763bb11f3bcf33c2b84e349865082ad32bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Wed, 16 Oct 2019 18:13:41 +0200 Subject: [PATCH 62/82] Update icon and license to put it in nuget package (#99) --- Tiny.RestClient/Tiny.RestClient.csproj | 12 +++++- Tiny.RestClient/icon.png | Bin 0 -> 10656 bytes .../licenses/LICENSE.txt | 40 +++++++++--------- 3 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 Tiny.RestClient/icon.png rename LICENSE => Tiny.RestClient/licenses/LICENSE.txt (98%) diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index 4e7fb51..4fcda7e 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -1,7 +1,7 @@  netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 - 1.6.5 + 1.6.6 Copyright © Jérôme Giacomini 2019 en Tiny.RestClient @@ -29,7 +29,6 @@ * Support of Basic Authentification * Support of OAuth2 Authentification - https://github.com/jgiacomini/Tiny.RestClient/blob/master/LICENSE https://github.com/jgiacomini/Tiny.RestClient https://raw.githubusercontent.com/jgiacomini/Tiny.RestClient/master/icon.png httpClient;rest client;FluentHttp;Fluent;RestClient;REST;rest;TinyRestClient;postman; @@ -40,7 +39,16 @@ true true $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb + icon.png + LICENSE.txt + + + True + + + + latest diff --git a/Tiny.RestClient/icon.png b/Tiny.RestClient/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..595f63250960c66a4849fa4b24d74e1559fab132 GIT binary patch literal 10656 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 Date: Wed, 16 Oct 2019 18:38:45 +0200 Subject: [PATCH 63/82] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index add9823..4be9cbc 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,4 +1,7 @@ # Release notes +# 1.6.6 +* Add icon and license in nuget package + # 1.6.5 * Add overload with long type for AddQueryParameter method From 343b548067ea265a313580f19a8b8d8ef81c7fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 13:57:21 +0100 Subject: [PATCH 64/82] update comments --- Tiny.RestClient/HttpStatusRange.cs | 16 ++++++++-------- Tiny.RestClient/HttpStatusRanges.cs | 8 ++++---- Tiny.RestClient/RestClientSettings.cs | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Tiny.RestClient/HttpStatusRange.cs b/Tiny.RestClient/HttpStatusRange.cs index 0ed8e5e..4a1218d 100644 --- a/Tiny.RestClient/HttpStatusRange.cs +++ b/Tiny.RestClient/HttpStatusRange.cs @@ -3,15 +3,15 @@ namespace Tiny.RestClient { ///

- /// Represent a range of http code + /// Represent a range of http code. /// public class HttpStatusRange { /// - /// Contruct a status range + /// Contruct a status range. /// - /// min status range - /// max status range + /// min status range. + /// max status range. public HttpStatusRange(int minHttpStatus, int maxHttpStatus) { MinHttpStatus = minHttpStatus; @@ -24,21 +24,21 @@ public HttpStatusRange(int minHttpStatus, int maxHttpStatus) } /// - /// Contruct a status range + /// Contruct a status range. /// - /// httpStatus allowed + /// httpStatus allowed. public HttpStatusRange(int httpStatusAllowed) : this(httpStatusAllowed, httpStatusAllowed) { } /// - /// Min http status + /// Min http status. /// public int MinHttpStatus { get; private set; } /// - /// MAx http status + /// MAx http status. /// public int MaxHttpStatus { get; private set; } } diff --git a/Tiny.RestClient/HttpStatusRanges.cs b/Tiny.RestClient/HttpStatusRanges.cs index 78d4f61..87a0264 100644 --- a/Tiny.RestClient/HttpStatusRanges.cs +++ b/Tiny.RestClient/HttpStatusRanges.cs @@ -4,7 +4,7 @@ namespace Tiny.RestClient { /// - /// Represent a collection ofstatus range + /// Represent a collection ofstatus range. /// public class HttpStatusRanges : List { @@ -13,14 +13,14 @@ internal HttpStatusRanges() } /// - /// Allow all status codes + /// Allow all status codes. /// public bool AllowAllStatus { get; set; } /// - /// Check if httpStatus is allowed + /// Check if httpStatus is allowed. /// - /// status code to check + /// status code to check. /// public bool CheckIfHttpStatusIsAllowed(int statusCode) { diff --git a/Tiny.RestClient/RestClientSettings.cs b/Tiny.RestClient/RestClientSettings.cs index 057d338..8a48128 100644 --- a/Tiny.RestClient/RestClientSettings.cs +++ b/Tiny.RestClient/RestClientSettings.cs @@ -88,7 +88,7 @@ public Headers DefaultHeaders public Compressions Compressions { get; private set; } /// - /// Range of status allowed if empty use default behavior + /// Range of status allowed if empty use default behavior. /// public HttpStatusRanges HttpStatusCodeAllowed { get; private set; } From 18a009cedf76fa7df03dfece287bcaf4854c6279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 14:26:17 +0100 Subject: [PATCH 65/82] Add test --- .../Controllers/GetTestController.cs | 15 +++++++- .../Tiny.RestClient.Tests/StatusRangeTests.cs | 36 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 Tests/Tiny.RestClient.Tests/StatusRangeTests.cs diff --git a/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs b/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs index 317e457..8dacc2e 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs +++ b/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; @@ -14,6 +15,18 @@ public GetTestController() { } + [HttpGet("Status500Response")] + public IActionResult Status500Response() + { + return StatusCode(StatusCodes.Status501NotImplemented, new string[] { "value1", "value2" }); + } + + [HttpGet("Status409Response")] + public IActionResult Status409Response() + { + return StatusCode(StatusCodes.Status409Conflict, new string[] { "value1", "value2" }); + } + [HttpGet("NoResponse")] public Task NoResponse() { diff --git a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs new file mode 100644 index 0000000..5d0ec4d --- /dev/null +++ b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs @@ -0,0 +1,36 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Tiny.RestClient.Tests +{ + [TestClass] + public class StatusRangeTests : BaseTest + { + [TestMethod] + public async Task GetStatus500ResponseAllowed() + { + var client = GetNewClient(); + client.Settings.HttpStatusCodeAllowed.AllowAllStatus = true; + + var response = await client. + GetRequest("GetTest/Status500Response"). + ExecuteAsync>(); + Assert.IsNotNull(response); + } + + [TestMethod] + public async Task GetStatus409ResponseAllowed() + { + var client = GetNewClient(); + client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(400, 410)); + + var response = await client. + GetRequest("GetTest/Status409Response"). + ExecuteAsync>(); + Assert.IsNotNull(response); + } + } +} From 9f4c421d0160d06fe1cf7cc4e1c24d55d3bb93eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 14:46:47 +0100 Subject: [PATCH 66/82] Add tests (and fix bug) --- .../Tiny.RestClient.Tests/StatusRangeTests.cs | 21 ++++++++++++++++++- Tiny.RestClient/HttpStatusRange.cs | 4 ++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs index 5d0ec4d..976156f 100644 --- a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs +++ b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs @@ -22,7 +22,7 @@ public async Task GetStatus500ResponseAllowed() } [TestMethod] - public async Task GetStatus409ResponseAllowed() + public async Task GetStatus409ResponseAllowedMultiStatusAllowed() { var client = GetNewClient(); client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(400, 410)); @@ -32,5 +32,24 @@ public async Task GetStatus409ResponseAllowed() ExecuteAsync>(); Assert.IsNotNull(response); } + + [TestMethod] + public async Task GetStatus409ResponseAllowed() + { + var client = GetNewClient(); + client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(409)); + var response = await client. + GetRequest("GetTest/Status409Response"). + ExecuteAsync>(); + Assert.IsNotNull(response); + } + + [ExpectedException(typeof(ArgumentException))] + [TestMethod] + public void AddInvalidStatusRange() + { + var client = GetNewClient(); + client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(500, 400)); + } } } diff --git a/Tiny.RestClient/HttpStatusRange.cs b/Tiny.RestClient/HttpStatusRange.cs index 4a1218d..ad738ca 100644 --- a/Tiny.RestClient/HttpStatusRange.cs +++ b/Tiny.RestClient/HttpStatusRange.cs @@ -17,9 +17,9 @@ public HttpStatusRange(int minHttpStatus, int maxHttpStatus) MinHttpStatus = minHttpStatus; MaxHttpStatus = maxHttpStatus; - if (maxHttpStatus <= minHttpStatus) + if (maxHttpStatus < minHttpStatus) { - throw new ArgumentException($"{nameof(maxHttpStatus)} must be inferior or egual to {nameof(minHttpStatus)}"); + throw new ArgumentException($"{nameof(maxHttpStatus)} must be superior or egual to {nameof(minHttpStatus)}"); } } From 17af8f07e42e9b91318ed3012105b7603ed1ab49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 14:50:00 +0100 Subject: [PATCH 67/82] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea4b116..d692557 100644 --- a/README.md +++ b/README.md @@ -191,7 +191,7 @@ request.WithTimeout(TimeSpan.FromSeconds(100)); ``` ### Allow non http 2xx responses -Allow all status code : +Allow all status codes : ```cs client.Settings.HttpStatusCodeAllowed.AllowAllStatus = true; ``` From 004fdb8feaac7eff0dbb5a7a7f5331c1d72138ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 15:06:32 +0100 Subject: [PATCH 68/82] Allow to use HttpStatusCode enum as statusCode --- Tests/Tiny.RestClient.Tests/StatusRangeTests.cs | 6 ++++-- Tiny.RestClient/HttpStatusRange.cs | 12 +++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs index 976156f..864b846 100644 --- a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs +++ b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs @@ -25,8 +25,10 @@ public async Task GetStatus500ResponseAllowed() public async Task GetStatus409ResponseAllowedMultiStatusAllowed() { var client = GetNewClient(); - client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(400, 410)); - + client.Settings.HttpStatusCodeAllowed.Add( + new HttpStatusRange( + System.Net.HttpStatusCode.BadRequest, // 400 + System.Net.HttpStatusCode.BadGateway)); // 502 var response = await client. GetRequest("GetTest/Status409Response"). ExecuteAsync>(); diff --git a/Tiny.RestClient/HttpStatusRange.cs b/Tiny.RestClient/HttpStatusRange.cs index ad738ca..a003651 100644 --- a/Tiny.RestClient/HttpStatusRange.cs +++ b/Tiny.RestClient/HttpStatusRange.cs @@ -1,4 +1,5 @@ using System; +using System.Net; namespace Tiny.RestClient { @@ -12,11 +13,20 @@ public class HttpStatusRange /// /// min status range. /// max status range. + public HttpStatusRange(HttpStatusCode minHttpStatus, HttpStatusCode maxHttpStatus) + : this((int)minHttpStatus, (int)maxHttpStatus) + { + } + + /// + /// Contruct a status range. + /// + /// min status range. + /// max status range. public HttpStatusRange(int minHttpStatus, int maxHttpStatus) { MinHttpStatus = minHttpStatus; MaxHttpStatus = maxHttpStatus; - if (maxHttpStatus < minHttpStatus) { throw new ArgumentException($"{nameof(maxHttpStatus)} must be superior or egual to {nameof(minHttpStatus)}"); From 9f022813858d693f49fdf081a0f81bc0dcd70fcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 15:11:18 +0100 Subject: [PATCH 69/82] Add constructor with HttpStatusCode in parameter --- Tests/Tiny.RestClient.Tests/StatusRangeTests.cs | 2 +- Tiny.RestClient/HttpStatusRange.cs | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs index 864b846..193f3d6 100644 --- a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs +++ b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs @@ -39,7 +39,7 @@ public async Task GetStatus409ResponseAllowedMultiStatusAllowed() public async Task GetStatus409ResponseAllowed() { var client = GetNewClient(); - client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(409)); + client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(System.Net.HttpStatusCode.Conflict)); var response = await client. GetRequest("GetTest/Status409Response"). ExecuteAsync>(); diff --git a/Tiny.RestClient/HttpStatusRange.cs b/Tiny.RestClient/HttpStatusRange.cs index a003651..fc5c64b 100644 --- a/Tiny.RestClient/HttpStatusRange.cs +++ b/Tiny.RestClient/HttpStatusRange.cs @@ -33,6 +33,15 @@ public HttpStatusRange(int minHttpStatus, int maxHttpStatus) } } + /// + /// Contruct a status range. + /// + /// httpStatus allowed. + public HttpStatusRange(HttpStatusCode httpStatusAllowed) + : this((int)httpStatusAllowed) + { + } + /// /// Contruct a status range. /// From 5fd01387e7454b6dcb1bcab20069f19977ebcb34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 15:32:20 +0100 Subject: [PATCH 70/82] Add posibility for request with content to use WithBasicAuthentication WithOAuthBearer WithTimeout WithETagContainer (#102) --- Tiny.RestClient/Request/IParameterRequest.cs | 33 +++++++++++++++++++- Tiny.RestClient/Request/IRequest.cs | 29 ----------------- Tiny.RestClient/Request/Request.cs | 8 ++--- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/Tiny.RestClient/Request/IParameterRequest.cs b/Tiny.RestClient/Request/IParameterRequest.cs index 2e2eda4..bef7b36 100644 --- a/Tiny.RestClient/Request/IParameterRequest.cs +++ b/Tiny.RestClient/Request/IParameterRequest.cs @@ -1,4 +1,6 @@ -namespace Tiny.RestClient +using System; + +namespace Tiny.RestClient { /// /// Interface IParameterRequest. @@ -6,6 +8,35 @@ /// public interface IParameterRequest : IExecutableRequest { + /// + /// Add a basic authentication credentials. + /// + /// the username. + /// the password. + /// The current request. + IParameterRequest WithBasicAuthentication(string username, string password); + + /// + /// Add a bearer token in the request headers. + /// + /// token value. + /// The current request. + IParameterRequest WithOAuthBearer(string token); + + /// + /// With timeout for current request. + /// + /// timeout. + /// The current request. + IParameterRequest WithTimeout(TimeSpan timeout); + + /// + /// With a specific etag container. + /// + /// the eTag container. + /// + IParameterRequest WithETagContainer(IETagContainer eTagContainer); + /// /// Fill header of response. /// diff --git a/Tiny.RestClient/Request/IRequest.cs b/Tiny.RestClient/Request/IRequest.cs index 44dd5fe..52a2613 100644 --- a/Tiny.RestClient/Request/IRequest.cs +++ b/Tiny.RestClient/Request/IRequest.cs @@ -10,35 +10,6 @@ namespace Tiny.RestClient /// public interface IRequest : IExecutableRequest, IFormRequest { - /// - /// Add a basic authentication credentials. - /// - /// the username. - /// the password. - /// The current request. - IRequest WithBasicAuthentication(string username, string password); - - /// - /// Add a bearer token in the request headers. - /// - /// token value. - /// The current request. - IRequest WithOAuthBearer(string token); - - /// - /// With timeout for current request. - /// - /// timeout. - /// The current request. - IRequest WithTimeout(TimeSpan timeout); - - /// - /// With a specific etag container. - /// - /// the eTag container. - /// - IRequest WithETagContainer(IETagContainer eTagContainer); - /// /// Adds the content. /// diff --git a/Tiny.RestClient/Request/Request.cs b/Tiny.RestClient/Request/Request.cs index b25e32b..c49f1d0 100644 --- a/Tiny.RestClient/Request/Request.cs +++ b/Tiny.RestClient/Request/Request.cs @@ -149,7 +149,7 @@ public IParameterRequest AddHeader(string key, string value) } /// - public IRequest WithBasicAuthentication(string username, string password) + public IParameterRequest WithBasicAuthentication(string username, string password) { if (_headers == null) { @@ -161,7 +161,7 @@ public IRequest WithBasicAuthentication(string username, string password) } /// - public IRequest WithOAuthBearer(string token) + public IParameterRequest WithOAuthBearer(string token) { if (_headers == null) { @@ -346,14 +346,14 @@ public IParameterRequest AddQueryParameter(string key, long? value) #endregion /// - public IRequest WithETagContainer(IETagContainer eTagContainer) + public IParameterRequest WithETagContainer(IETagContainer eTagContainer) { _eTagContainer = eTagContainer; return this; } /// - public IRequest WithTimeout(TimeSpan timeout) + public IParameterRequest WithTimeout(TimeSpan timeout) { _timeout = timeout; From c3c886cdb26b6bd185b23640af37e4838f0601ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 15:34:19 +0100 Subject: [PATCH 71/82] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 4be9cbc..ebb47a0 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,4 +1,7 @@ # Release notes +# 1.6.7 + Add possibility for request with content (like POST, PUT ...) to use methods : WithBasicAuthentication WithOAuthBearer WithTimeout WithETagContainer. + # 1.6.6 * Add icon and license in nuget package From d60a03f764185a92eff6b6f40e188487412c5d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Thu, 31 Oct 2019 15:35:10 +0100 Subject: [PATCH 72/82] Update Tiny.RestClient.csproj --- Tiny.RestClient/Tiny.RestClient.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index 4fcda7e..d0df915 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -1,7 +1,7 @@  netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 - 1.6.6 + 1.6.7 Copyright © Jérôme Giacomini 2019 en Tiny.RestClient From 3d9e03257ee9f3249c260d517baa6328397b7967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 10:08:00 +0100 Subject: [PATCH 73/82] Add implementation for request --- .../Tiny.RestClient.Tests/StatusRangeTests.cs | 4 +- .../{ => HttpStatusRange}/HttpStatusRange.cs | 0 .../{ => HttpStatusRange}/HttpStatusRanges.cs | 6 +-- Tiny.RestClient/Request/IParameterRequest.cs | 37 +++++++++++++ Tiny.RestClient/Request/Request.cs | 52 +++++++++++++++++-- Tiny.RestClient/Tiny.RestClient.csproj | 2 +- 6 files changed, 92 insertions(+), 9 deletions(-) rename Tiny.RestClient/{ => HttpStatusRange}/HttpStatusRange.cs (100%) rename Tiny.RestClient/{ => HttpStatusRange}/HttpStatusRanges.cs (86%) diff --git a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs index 193f3d6..4d1c93e 100644 --- a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs +++ b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs @@ -13,7 +13,7 @@ public class StatusRangeTests : BaseTest public async Task GetStatus500ResponseAllowed() { var client = GetNewClient(); - client.Settings.HttpStatusCodeAllowed.AllowAllStatus = true; + client.Settings.HttpStatusCodeAllowed.AllowAnyStatus = true; var response = await client. GetRequest("GetTest/Status500Response"). @@ -22,7 +22,7 @@ public async Task GetStatus500ResponseAllowed() } [TestMethod] - public async Task GetStatus409ResponseAllowedMultiStatusAllowed() + public async Task GetStatus409ResponseAllowedMultiStatusesAllowed() { var client = GetNewClient(); client.Settings.HttpStatusCodeAllowed.Add( diff --git a/Tiny.RestClient/HttpStatusRange.cs b/Tiny.RestClient/HttpStatusRange/HttpStatusRange.cs similarity index 100% rename from Tiny.RestClient/HttpStatusRange.cs rename to Tiny.RestClient/HttpStatusRange/HttpStatusRange.cs diff --git a/Tiny.RestClient/HttpStatusRanges.cs b/Tiny.RestClient/HttpStatusRange/HttpStatusRanges.cs similarity index 86% rename from Tiny.RestClient/HttpStatusRanges.cs rename to Tiny.RestClient/HttpStatusRange/HttpStatusRanges.cs index 87a0264..f54ef56 100644 --- a/Tiny.RestClient/HttpStatusRanges.cs +++ b/Tiny.RestClient/HttpStatusRange/HttpStatusRanges.cs @@ -13,9 +13,9 @@ internal HttpStatusRanges() } /// - /// Allow all status codes. + /// Allow all statuses codes. /// - public bool AllowAllStatus { get; set; } + public bool AllowAnyStatus { get; set; } /// /// Check if httpStatus is allowed. @@ -24,7 +24,7 @@ internal HttpStatusRanges() /// public bool CheckIfHttpStatusIsAllowed(int statusCode) { - if (AllowAllStatus) + if (AllowAnyStatus) { return true; } diff --git a/Tiny.RestClient/Request/IParameterRequest.cs b/Tiny.RestClient/Request/IParameterRequest.cs index bef7b36..f05227d 100644 --- a/Tiny.RestClient/Request/IParameterRequest.cs +++ b/Tiny.RestClient/Request/IParameterRequest.cs @@ -1,4 +1,5 @@ using System; +using System.Net; namespace Tiny.RestClient { @@ -8,6 +9,42 @@ namespace Tiny.RestClient /// public interface IParameterRequest : IExecutableRequest { + /// + /// Allow any status code (error 500) don't throw exception. + /// + /// The current request. + IParameterRequest AllowAnyHttpStatusCode(); + + /// + /// Allow a range of status code. By default all 2** statuses don't throw exceptions. + /// + /// min http status. + /// max http status. + /// The current request. + IParameterRequest AllowRangeHttpStatusCode(HttpStatusCode minHttpStatus, HttpStatusCode maxHttpStatus); + + /// + /// Allow a range of status code. By default all 2** statuses don't throw exceptions. + /// + /// min http status. + /// max http status. + /// The current request. + IParameterRequest AllowRangeHttpStatusCode(int minHttpStatus, int maxHttpStatus); + + /// + /// Allow a specific status code. + /// + /// status code to be allowed + /// The current request. + IParameterRequest AllowSpecificHttpStatusCode(HttpStatusCode statusCode); + + /// + /// Allow a specific status code. + /// + /// status code to be allowed + /// The current request. + IParameterRequest AllowSpecificHttpStatusCode(int statusCode); + /// /// Add a basic authentication credentials. /// diff --git a/Tiny.RestClient/Request/Request.cs b/Tiny.RestClient/Request/Request.cs index c49f1d0..f692f64 100644 --- a/Tiny.RestClient/Request/Request.cs +++ b/Tiny.RestClient/Request/Request.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Globalization; using System.IO; +using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -22,13 +23,14 @@ internal class Request : private readonly TinyRestClient _client; private readonly string _route; private Headers _headers; + private Headers _responseHeaders; private Dictionary _queryParameters; private IContent _content; + private IETagContainer _eTagContainer; private List> _formParameters; private MultipartContent _multiPartFormData; - private Headers _responseHeaders; private TimeSpan? _timeout; - private IETagContainer _eTagContainer; + private HttpStatusRanges _httpStatusCodeAllowed; internal HttpMethod HttpMethod { get => _httpMethod; } internal Dictionary QueryParameters { get => _queryParameters; } @@ -38,6 +40,7 @@ internal class Request : internal Headers ResponseHeaders { get => _responseHeaders; } internal Headers Headers { get => _headers; } internal TimeSpan? Timeout { get => _timeout; } + internal HttpStatusRanges HttpStatusCodeAllowed { get => _httpStatusCodeAllowed; } static Request() { @@ -493,6 +496,49 @@ IMultiPartFromDataExecutableRequest IMultipartFromDataRequest.AddContentTrue - + latest From e60382cca8da681bb1ee705067ec7d072286c9ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 10:42:03 +0100 Subject: [PATCH 74/82] Change implementation and add more tests --- .../Tiny.RestClient.Tests/StatusRangeTests.cs | 63 ++++++++++++++++++- Tiny.RestClient/TinyRestClient.cs | 54 +++++++++++++--- 2 files changed, 104 insertions(+), 13 deletions(-) diff --git a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs index 4d1c93e..35c85dd 100644 --- a/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs +++ b/Tests/Tiny.RestClient.Tests/StatusRangeTests.cs @@ -9,8 +9,29 @@ namespace Tiny.RestClient.Tests [TestClass] public class StatusRangeTests : BaseTest { + #region Client scope + [ExpectedException(typeof(HttpException))] [TestMethod] - public async Task GetStatus500ResponseAllowed() + public async Task GetErrorWhenCallApiWhenError500() + { + var client = GetClient(); + + try + { + var response = await client. + GetRequest("GetTest/Status500Response"). + ExecuteAsync>(); + } + catch (HttpException ex) + { + Assert.AreEqual(System.Net.HttpStatusCode.InternalServerError, ex.StatusCode); + + throw ex; + } + } + + [TestMethod] + public async Task GetAnyStatusResponseAllowed() { var client = GetNewClient(); client.Settings.HttpStatusCodeAllowed.AllowAnyStatus = true; @@ -22,7 +43,7 @@ public async Task GetStatus500ResponseAllowed() } [TestMethod] - public async Task GetStatus409ResponseAllowedMultiStatusesAllowed() + public async Task GetRangeOfStatusesAllowed() { var client = GetNewClient(); client.Settings.HttpStatusCodeAllowed.Add( @@ -36,7 +57,7 @@ public async Task GetStatus409ResponseAllowedMultiStatusesAllowed() } [TestMethod] - public async Task GetStatus409ResponseAllowed() + public async Task GetSpecificStatusResponseAllowed() { var client = GetNewClient(); client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(System.Net.HttpStatusCode.Conflict)); @@ -53,5 +74,41 @@ public void AddInvalidStatusRange() var client = GetNewClient(); client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(500, 400)); } + #endregion + + #region Request scope + [TestMethod] + public async Task ForRequest_GetAnyStatusResponseAllowed() + { + var client = GetClient(); + var response = await client. + GetRequest("GetTest/Status500Response"). + AllowAnyHttpStatusCode(). + ExecuteAsync>(); + Assert.IsNotNull(response); + } + + [TestMethod] + public async Task ForRequest_GetRangeOfStatusesResponseAllowed() + { + var client = GetClient(); + var response = await client. + GetRequest("GetTest/Status409Response"). + AllowRangeHttpStatusCode(System.Net.HttpStatusCode.BadRequest, System.Net.HttpStatusCode.BadGateway). + ExecuteAsync>(); + Assert.IsNotNull(response); + } + + [TestMethod] + public async Task ForRequest_GetSpecificStatusResponseAllowed() + { + var client = GetClient(); + var response = await client. + GetRequest("GetTest/Status409Response"). + AllowSpecificHttpStatusCode(System.Net.HttpStatusCode.Conflict). + ExecuteAsync>(); + Assert.IsNotNull(response); + } + #endregion } } diff --git a/Tiny.RestClient/TinyRestClient.cs b/Tiny.RestClient/TinyRestClient.cs index 24bf5c8..779bf58 100644 --- a/Tiny.RestClient/TinyRestClient.cs +++ b/Tiny.RestClient/TinyRestClient.cs @@ -219,7 +219,7 @@ internal async Task ExecuteAsync( using (HttpResponseMessage response = await SendRequestAsync(tinyRequest.HttpMethod, requestUri, tinyRequest.Headers, content, eTagContainer, formatter, tinyRequest.Timeout, cancellationToken).ConfigureAwait(false)) { - using (var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, eTagContainer, cancellationToken).ConfigureAwait(false)) + using (var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, tinyRequest.HttpStatusCodeAllowed, eTagContainer, cancellationToken).ConfigureAwait(false)) { if (stream == null || stream.CanRead == false) { @@ -279,10 +279,11 @@ internal async Task ExecuteAsync( { using (var content = await CreateContentAsync(tinyRequest.Content, cancellationToken).ConfigureAwait(false)) { + var etagContainer = GetETagContainer(tinyRequest); var requestUri = BuildRequestUri(tinyRequest.Route, tinyRequest.QueryParameters); - using (HttpResponseMessage response = await SendRequestAsync(tinyRequest.HttpMethod, requestUri, tinyRequest.Headers, content, null, null, tinyRequest.Timeout, cancellationToken).ConfigureAwait(false)) + using (HttpResponseMessage response = await SendRequestAsync(tinyRequest.HttpMethod, requestUri, tinyRequest.Headers, content, etagContainer, null, tinyRequest.Timeout, cancellationToken).ConfigureAwait(false)) { - await HandleResponseAsync(response, tinyRequest.ResponseHeaders, null, cancellationToken).ConfigureAwait(false); + await HandleResponseAsync(response, tinyRequest.ResponseHeaders, tinyRequest.HttpStatusCodeAllowed, etagContainer, cancellationToken).ConfigureAwait(false); } } } @@ -298,7 +299,7 @@ internal async Task ExecuteAsByteArrayResultAsync( using (HttpResponseMessage response = await SendRequestAsync(tinyRequest.HttpMethod, requestUri, tinyRequest.Headers, content, eTagContainer, null, tinyRequest.Timeout, cancellationToken).ConfigureAwait(false)) { - using (var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, eTagContainer, cancellationToken).ConfigureAwait(false)) + using (var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, tinyRequest.HttpStatusCodeAllowed, eTagContainer, cancellationToken).ConfigureAwait(false)) { if (stream == null || !stream.CanRead) { @@ -325,7 +326,7 @@ internal async Task ExecuteAsStreamResultAsync( var requestUri = BuildRequestUri(tinyRequest.Route, tinyRequest.QueryParameters); var eTagContainer = GetETagContainer(tinyRequest); var response = await SendRequestAsync(tinyRequest.HttpMethod, requestUri, tinyRequest.Headers, content, eTagContainer, null, tinyRequest.Timeout, cancellationToken).ConfigureAwait(false); - var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, eTagContainer, cancellationToken).ConfigureAwait(false); + var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, tinyRequest.HttpStatusCodeAllowed, eTagContainer, cancellationToken).ConfigureAwait(false); if (stream == null || !stream.CanRead) { return null; @@ -345,7 +346,7 @@ internal async Task ExecuteAsStringResultAsync( var eTagContainer = GetETagContainer(tinyRequest); using (var response = await SendRequestAsync(tinyRequest.HttpMethod, requestUri, tinyRequest.Headers, content, eTagContainer, null, tinyRequest.Timeout, cancellationToken).ConfigureAwait(false)) { - var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, eTagContainer, cancellationToken).ConfigureAwait(false); + var stream = await ReadResponseAsync(response, tinyRequest.ResponseHeaders, tinyRequest.HttpStatusCodeAllowed, GetETagContainer(tinyRequest), cancellationToken).ConfigureAwait(false); if (stream == null || !stream.CanRead) { return null; @@ -740,10 +741,11 @@ private IETagContainer GetETagContainer(Request request) private async Task ReadResponseAsync( HttpResponseMessage response, Headers responseHeader, + HttpStatusRanges httpStatusRanges, IETagContainer eTagContainer, CancellationToken cancellationToken) { - await HandleResponseAsync(response, responseHeader, eTagContainer, cancellationToken).ConfigureAwait(false); + await HandleResponseAsync(response, responseHeader, httpStatusRanges, eTagContainer, cancellationToken).ConfigureAwait(false); Stream stream; if (eTagContainer != null && response.StatusCode == HttpStatusCode.NotModified) { @@ -789,6 +791,7 @@ private async Task DecompressAsync(HttpResponseMessage response, Stream private async Task HandleResponseAsync( HttpResponseMessage response, Headers responseHeaders, + HttpStatusRanges requestAllowedStatusRange, IETagContainer eTagContainer, CancellationToken cancellationToken) { @@ -810,13 +813,19 @@ private async Task HandleResponseAsync( return; } + bool haveToEnsureSuccessStatusCode = false; if (!response.IsSuccessStatusCode) { - content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - cancellationToken.ThrowIfCancellationRequested(); + // if status code is not allowed we read the content + if (!CheckIfStatusCodeIsAllowed((int)response.StatusCode, requestAllowedStatusRange)) + { + haveToEnsureSuccessStatusCode = true; + content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + cancellationToken.ThrowIfCancellationRequested(); + } } - if (!Settings.HttpStatusCodeAllowed.CheckIfHttpStatusIsAllowed((int)response.StatusCode)) + if (haveToEnsureSuccessStatusCode) { response.EnsureSuccessStatusCode(); } @@ -846,6 +855,31 @@ private async Task HandleResponseAsync( throw newEx; } } + + private bool CheckIfStatusCodeIsAllowed(int statusCode, HttpStatusRanges requestAllowedStatusRange) + { + if (requestAllowedStatusRange != null) + { + if (!requestAllowedStatusRange.CheckIfHttpStatusIsAllowed(statusCode)) + { + if (!Settings.HttpStatusCodeAllowed.CheckIfHttpStatusIsAllowed(statusCode)) + { + return false; + } + } + + return true; + } + else + { + if (!Settings.HttpStatusCodeAllowed.CheckIfHttpStatusIsAllowed(statusCode)) + { + return false; + } + + return true; + } + } #endregion } } \ No newline at end of file From c91a1df68426af3a4d75fd83828590e55488d2ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 10:49:48 +0100 Subject: [PATCH 75/82] fix test --- .../Controllers/GetTestController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs b/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs index 8dacc2e..9cfaf38 100644 --- a/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs +++ b/Tests/Tiny.RestClient.ForTest.Api/Controllers/GetTestController.cs @@ -18,7 +18,7 @@ public GetTestController() [HttpGet("Status500Response")] public IActionResult Status500Response() { - return StatusCode(StatusCodes.Status501NotImplemented, new string[] { "value1", "value2" }); + return StatusCode(StatusCodes.Status500InternalServerError, new string[] { "value1", "value2" }); } [HttpGet("Status409Response")] From 4378769641e2bd88d6c38065b8ff8d58a2e176e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 10:50:00 +0100 Subject: [PATCH 76/82] add period on each comment --- Tiny.RestClient/Request/IParameterRequest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tiny.RestClient/Request/IParameterRequest.cs b/Tiny.RestClient/Request/IParameterRequest.cs index f05227d..e5db6d9 100644 --- a/Tiny.RestClient/Request/IParameterRequest.cs +++ b/Tiny.RestClient/Request/IParameterRequest.cs @@ -34,14 +34,14 @@ public interface IParameterRequest : IExecutableRequest /// /// Allow a specific status code. /// - /// status code to be allowed + /// status code to be allowed. /// The current request. IParameterRequest AllowSpecificHttpStatusCode(HttpStatusCode statusCode); /// /// Allow a specific status code. /// - /// status code to be allowed + /// status code to be allowed. /// The current request. IParameterRequest AllowSpecificHttpStatusCode(int statusCode); From 1880bcb3867f39cbd4e7854c6e24c1647a21dc3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 10:53:12 +0100 Subject: [PATCH 77/82] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d692557..a22f4d4 100644 --- a/README.md +++ b/README.md @@ -191,9 +191,9 @@ request.WithTimeout(TimeSpan.FromSeconds(100)); ``` ### Allow non http 2xx responses -Allow all status codes : +Allow any status codes : ```cs -client.Settings.HttpStatusCodeAllowed.AllowAllStatus = true; +client.Settings.HttpStatusCodeAllowed.AllowAnyStatus = true; ``` Allow only a range of http status codes : From 928eeb103072d0375795a0b7fe9dcdf4f7ab6246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 10:55:46 +0100 Subject: [PATCH 78/82] Update README.md --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index a22f4d4..fef5a42 100644 --- a/README.md +++ b/README.md @@ -191,6 +191,8 @@ request.WithTimeout(TimeSpan.FromSeconds(100)); ``` ### Allow non http 2xx responses +#### Globaly + Allow any status codes : ```cs client.Settings.HttpStatusCodeAllowed.AllowAnyStatus = true; @@ -201,6 +203,22 @@ Allow only a range of http status codes : client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(400, 420)); ``` +#### By request + +Allow all status code : +```cs +request.AllowAllHttpStatusCode().ExecuteAsync(); +``` + +Allow only a range of http status codes : +```cs +request.AllowRangeHttpStatusCode(400, 420).ExecuteAsync(); +``` + +Allow only on stats code of http status codes : +```cs +request.AllowSpecificHttpStatusCode(409).ExecuteAsync(); +``` ### Download file ```cs From 28f25ba8b4f0f10533af164ef10e5ab9b0cd669a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 10:58:28 +0100 Subject: [PATCH 79/82] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index fef5a42..2daa20b 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,12 @@ Allow only a range of http status codes : client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(400, 420)); ``` +or + +```cs +client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(System.Net.HttpStatusCode.BadRequest, System.Net.HttpStatusCode.BadGateway)); +``` + #### By request Allow all status code : From 02b5c56ca4a5feec5fb746f11de72739ef3a075f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 11:04:38 +0100 Subject: [PATCH 80/82] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index ebb47a0..d73978a 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,6 +1,45 @@ # Release notes # 1.6.7 - Add possibility for request with content (like POST, PUT ...) to use methods : WithBasicAuthentication WithOAuthBearer WithTimeout WithETagContainer. +* Add possibility for request with content (like POST, PUT ...) to use methods : WithBasicAuthentication WithOAuthBearer WithTimeout WithETagContainer. +* Allow non 2xx response (see sample below) + +## Allow non http 2xx responses + +#### Globaly + +Allow any status codes : +```cs +client.Settings.HttpStatusCodeAllowed.AllowAnyStatus = true; +``` + +Allow only a range of http status codes : +```cs +client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(400, 420)); +``` + +or + +```cs +client.Settings.HttpStatusCodeAllowed.Add(new HttpStatusRange(System.Net.HttpStatusCode.BadRequest, System.Net.HttpStatusCode.BadGateway)); +``` + +#### By request + +Allow all status code : +```cs +request.AllowAllHttpStatusCode().ExecuteAsync(); +``` + +Allow only a range of http status codes : +```cs +request.AllowRangeHttpStatusCode(400, 420).ExecuteAsync(); +``` + +Allow only on stats code of http status codes : +```cs +request.AllowSpecificHttpStatusCode(409).ExecuteAsync(); +``` + # 1.6.6 * Add icon and license in nuget package From 30499c40296d330bf29837b6a638e682b546df8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 11:08:27 +0100 Subject: [PATCH 81/82] bump v1.7 --- Tiny.RestClient/Tiny.RestClient.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiny.RestClient/Tiny.RestClient.csproj b/Tiny.RestClient/Tiny.RestClient.csproj index 5e481c0..b327e75 100644 --- a/Tiny.RestClient/Tiny.RestClient.csproj +++ b/Tiny.RestClient/Tiny.RestClient.csproj @@ -1,7 +1,7 @@  netstandard1.1;netstandard1.2;netstandard1.3;netstandard2.0;net45;net46;net47 - 1.6.7 + 1.7.0 Copyright © Jérôme Giacomini 2019 en Tiny.RestClient From e8bdaad75e7b29cd76c37f20cc30125df460570a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20GIACOMINI?= Date: Fri, 1 Nov 2019 11:08:56 +0100 Subject: [PATCH 82/82] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index d73978a..9b5d0c8 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,5 +1,5 @@ # Release notes -# 1.6.7 +# 1.7.0 * Add possibility for request with content (like POST, PUT ...) to use methods : WithBasicAuthentication WithOAuthBearer WithTimeout WithETagContainer. * Allow non 2xx response (see sample below)