From 7c84f590f30e9009e8c0b1ddb4abc8d5afb0666b Mon Sep 17 00:00:00 2001 From: JoeKF Date: Fri, 17 Feb 2023 13:48:11 -0500 Subject: [PATCH 01/39] updated to support 2 store types. HCVKV and HCV. --- hashicorp-vault-orchestrator/Constants.cs | 3 +- .../{HcvClient.cs => HcvKeyValueClient.cs} | 22 ++- .../HcvKeyfactorClient.cs | 154 ++++++++++++++++++ hashicorp-vault-orchestrator/IHashiClient.cs | 15 ++ .../Jobs/Discovery.cs | 20 ++- .../Jobs/Inventory.cs | 2 +- hashicorp-vault-orchestrator/Jobs/JobBase.cs | 24 ++- .../Jobs/Management.cs | 58 +++---- hashicorp-vault-orchestrator/manifest.json | 10 +- 9 files changed, 248 insertions(+), 60 deletions(-) rename hashicorp-vault-orchestrator/{HcvClient.cs => HcvKeyValueClient.cs} (96%) create mode 100644 hashicorp-vault-orchestrator/HcvKeyfactorClient.cs create mode 100644 hashicorp-vault-orchestrator/IHashiClient.cs diff --git a/hashicorp-vault-orchestrator/Constants.cs b/hashicorp-vault-orchestrator/Constants.cs index 9fe095e..da037a4 100644 --- a/hashicorp-vault-orchestrator/Constants.cs +++ b/hashicorp-vault-orchestrator/Constants.cs @@ -9,7 +9,8 @@ namespace Keyfactor.Extensions.Orchestrator.HashicorpVault { static class AzureKeyVaultConstants { - public const string STORE_TYPE_NAME = "HCV"; + public const string KEY_VALUE_STORE_TYPE = "HCVKV"; + public const string PKI_STORE_TYPE = "HCV"; //same for Keyfactor plugin store type } static class JobTypes diff --git a/hashicorp-vault-orchestrator/HcvClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs similarity index 96% rename from hashicorp-vault-orchestrator/HcvClient.cs rename to hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 5bf6e2c..c641934 100644 --- a/hashicorp-vault-orchestrator/HcvClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -25,29 +25,30 @@ namespace Keyfactor.Extensions.Orchestrator.HashicorpVault { - public class HcvClient + public class HcvKeyValueClient : IHashiClient { private IVaultClient _vaultClient { get; set; } protected IVaultClient VaultClient => _vaultClient; - private ILogger logger = LogHandler.GetClassLogger(); + private ILogger logger = LogHandler.GetClassLogger(); private string _storePath { get; set; } + private string _mountPoint { get; set; } - private VaultClientSettings clientSettings { get; set; } + //private VaultClientSettings clientSettings { get; set; } private static readonly string privKeyStart = "-----BEGIN RSA PRIVATE KEY-----\n"; private static readonly string privKeyEnd = "\n-----END RSA PRIVATE KEY-----"; - public HcvClient(string vaultToken, string serverUrl) + public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint) { // Initialize one of the several auth methods. IAuthMethodInfo authMethod = new TokenAuthMethodInfo(vaultToken); // Initialize settings. You can also set proxies, custom delegates etc. here. - clientSettings = new VaultClientSettings(serverUrl, authMethod); - + var clientSettings = new VaultClientSettings(serverUrl, authMethod); + _mountPoint = mountPoint; _vaultClient = new VaultClient(clientSettings); } @@ -59,6 +60,7 @@ public async Task GetCertificate(string key, string storeP Secret res; storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; //add the slash back in. + try { var fullPath = storePath + "/" + key; @@ -146,7 +148,7 @@ public async Task PutCertificate(string certName, string contents, string pfxPas VaultClient.V1.Auth.ResetVaultToken(); var certDict = new Dictionary(); - + var pfxBytes = Convert.FromBase64String(contents); Pkcs12Store p; using (var pfxBytesMemoryStream = new MemoryStream(pfxBytes)) @@ -154,7 +156,7 @@ public async Task PutCertificate(string certName, string contents, string pfxPas p = new Pkcs12Store(pfxBytesMemoryStream, pfxPassword.ToCharArray()); } - + // Extract private key string alias; string privateKeyString; @@ -280,9 +282,11 @@ public async Task> GetCertificates(string stor return certs; } + private static Func Pemify = ss => ss.Length <= 64 ? ss : ss.Substring(0, 64) + "\n" + Pemify(ss.Substring(64)); + //private string GetCertPem(string alias, string contents, string password, ref string privateKeyString) //{ // logger.MethodEntry(LogLevel.Debug); @@ -299,7 +303,7 @@ public async Task> GetCertificates(string stor // Pkcs12Store store = new Pkcs12Store(ms, // password.ToCharArray()); - + // string storeAlias; // TextWriter streamWriter; // using (var memoryStream = new MemoryStream()) diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs new file mode 100644 index 0000000..67b34af --- /dev/null +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -0,0 +1,154 @@ +// Copyright 2022 Keyfactor +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions +// and limitations under the License. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Threading.Tasks; +using Keyfactor.Logging; +using Keyfactor.Orchestrators.Common.Enums; +using Keyfactor.Orchestrators.Extensions; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json; + +namespace Keyfactor.Extensions.Orchestrator.HashicorpVault +{ + public class HcvKeyfactorClient : IHashiClient + { + //private IVaultClient _vaultClient { get; set; } + + private ILogger logger = LogHandler.GetClassLogger(); + + private string _vaultUrl { get; set; } + + private string _vaultToken { get; set; } + + private string _secretsEngine { get; set; } + + + public HcvKeyfactorClient(string vaultToken, string serverUrl, string secretsEngine, string mountPoint) + { + _vaultToken = vaultToken; + _secretsEngine = secretsEngine; + _vaultUrl = $"{ serverUrl }/v1/{ mountPoint.Replace("/", string.Empty) }"; + } + + public async Task GetCertificate(string key, string storePath, string mountPoint = "keyfactor") + { + var fullPath = $"{ _vaultUrl }/cert/{ key }"; + + try + { + try + { + var req = WebRequest.Create(fullPath); + req.Headers.Add("X-Vault-Request", "true"); + req.Headers.Add("X-Vault-Token", _vaultToken); + req.Method = WebRequestMethods.Http.Get; + var res = await req.GetResponseAsync(); + CertResponse content = JsonConvert.DeserializeObject(new StreamReader(res.GetResponseStream()).ReadToEnd()); + string cert = content.data["certificate"]; + string issuingCA = content.data["issuing_ca"]; + string privateKey = content.data["private_key"]; + string revokeTime = content.data["revocation_time"]; + + if (revokeTime.Equals(0)) + { + var inventoryItem = new CurrentInventoryItem() + { + Alias = key, + Certificates = new string[] { cert }, + ItemStatus = OrchestratorInventoryItemStatus.Unknown, + PrivateKeyEntry = !string.IsNullOrEmpty(privateKey), + UseChainLevel = !string.IsNullOrEmpty(issuingCA), + }; + return inventoryItem; + } + return null; + } + catch (Exception ex) + { + logger.LogWarning("Error getting certificate (deleted?)", ex); + return null; + } + } + catch (Exception ex) + { + logger.LogError("Error getting certificate from Vault", ex); + throw; + } + } + + public async Task> GetCertificates(string storePath, string mountPoint = "keyfactor") + { + var getKeysPath = $"{ _vaultUrl }/v1/{ mountPoint }/certs?list=true"; + var certs = new List(); + var certNames = new List(); + + try + { + var req = WebRequest.Create(getKeysPath); + req.Headers.Add("X-Vault-Request", "true"); + req.Headers.Add("X-Vault-Token", _vaultToken); + req.Method = WebRequestMethods.Http.Get; + var res = await req.GetResponseAsync(); + var content = JsonConvert.DeserializeObject(new StreamReader(res.GetResponseStream()).ReadToEnd()); + string[] certKeys; + + content.data.TryGetValue("keys", out certKeys); + + certKeys.ToList().ForEach(k => + { + var cert = GetCertificate(k, storePath, mountPoint).Result; + if (cert != null) certs.Add(cert); + }); + } + catch (Exception ex) + { + logger.LogError(ex.Message); + } + return certs; + } + + public Task> GetVaults(string storePath, string mountPoint = null) + { + throw new NotSupportedException(); + } + + public Task PutCertificate(string certName, string contents, string pfxPassword, string storePath, string mountPoint = null) + { + throw new NotSupportedException(); + } + + public Task DeleteCertificate(string certName, string storePath, string mountPoint = null) + { + throw new NotSupportedException(); + } + + public interface HashiResponse + { + string request_id { get; set; } + bool renewable { get; set; } + int lease_duration { get; set; } + string wrap_info { get; set; } + string warnings { get; set; } + string auth { get; set; } + } + + public interface CertResponse : HashiResponse + { + Dictionary data { get; set; } + } + + public interface ListResponse : HashiResponse + { + Dictionary data { get; set; } + } + } +} \ No newline at end of file diff --git a/hashicorp-vault-orchestrator/IHashiClient.cs b/hashicorp-vault-orchestrator/IHashiClient.cs new file mode 100644 index 0000000..f42eba7 --- /dev/null +++ b/hashicorp-vault-orchestrator/IHashiClient.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Keyfactor.Orchestrators.Extensions; + +namespace Keyfactor.Extensions.Orchestrator.HashicorpVault +{ + public interface IHashiClient + { + Task> GetCertificates(string storePath, string mountPoint = null); + Task GetCertificate(string key, string storePath, string mountPoint = null); + Task> GetVaults(string storePath, string mountPoint = null); + Task PutCertificate(string certName, string contents, string pfxPassword, string storePath, string mountPoint = null); + Task DeleteCertificate(string certName, string storePath, string mountPoint = null); + } +} diff --git a/hashicorp-vault-orchestrator/Jobs/Discovery.cs b/hashicorp-vault-orchestrator/Jobs/Discovery.cs index 3dee838..7219cef 100644 --- a/hashicorp-vault-orchestrator/Jobs/Discovery.cs +++ b/hashicorp-vault-orchestrator/Jobs/Discovery.cs @@ -28,18 +28,26 @@ public JobResult ProcessJob(DiscoveryJobConfiguration config, SubmitDiscoveryUpd try { vaults = VaultClient.GetVaults(StorePath, MountPoint).Result.ToList(); - } catch (Exception ex) { - logger.LogError(ex.Message); - - return new JobResult + var result = new JobResult { Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = config.JobHistoryId, - FailureMessage = ex.Message + JobHistoryId = config.JobHistoryId }; + + if (ex.GetType() == typeof(NotSupportedException)) + { + logger.LogError("Attempt to perform discovery on unsupported Secrets Engine backend."); + + result.FailureMessage = $"{SecretsEngine} does not support Discovery jobs."; + } + else + { + result.FailureMessage = ex.Message; + } + return result; } submitDiscoveryUpdate.DynamicInvoke(vaults); diff --git a/hashicorp-vault-orchestrator/Jobs/Inventory.cs b/hashicorp-vault-orchestrator/Jobs/Inventory.cs index a331bd2..9aad4f1 100644 --- a/hashicorp-vault-orchestrator/Jobs/Inventory.cs +++ b/hashicorp-vault-orchestrator/Jobs/Inventory.cs @@ -26,7 +26,7 @@ public JobResult ProcessJob(InventoryJobConfiguration config, SubmitInventoryUpd IEnumerable certs = null; try { - certs = VaultClient.GetCertificates(StorePath, MountPoint).Result; + certs = VaultClient.GetCertificates(MountPoint).Result; } catch (Exception ex) { diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index dc0cc0b..f4f7c71 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -18,12 +18,19 @@ public abstract class JobBase public string VaultToken { get; set; } + public string SecretsEngine { get; set; } // "PKI", "Keyfactor", "Key Value" + public string VaultServerUrl { get; set; } public string MountPoint { get; set; } // the mount point of the KV secrets engine. defaults to KV - internal protected HcvClient VaultClient { get; set; } + public string RoleName { get; set; } + + internal protected IHashiClient VaultClient { get; set; } + const string KEY_VALUE_ENGINE = "KV"; + const string KEYFACTOR_ENGINE = "KF"; + const string PKI_ENGINE = "PKI"; public void InitializeStore(InventoryJobConfiguration config) { @@ -45,17 +52,26 @@ public void InitializeStore(ManagementJobConfiguration config) InitProps(props); StorePath = config.CertificateStoreDetails?.StorePath ?? null; StorePath = StorePath.Replace("/", string.Empty); - } - private void InitProps(dynamic props) { + private void InitProps(dynamic props) + { if (props == null) throw new System.Exception("Properties is null", props); VaultToken = props["VaultToken"]; VaultServerUrl = props["VaultServerUrl"]; + SecretsEngine = props["SecretsEngine"]; MountPoint = props["MountPoint"] ?? null; + //RoleName = props["RoleName"]; + if (SecretsEngine == KEY_VALUE_ENGINE) + { + VaultClient = new HcvKeyValueClient(VaultToken, VaultServerUrl, MountPoint); + } + else + { + VaultClient = new HcvKeyfactorClient(VaultToken, VaultServerUrl, SecretsEngine, MountPoint); + } - VaultClient = new HcvClient(VaultToken, VaultServerUrl); } } } diff --git a/hashicorp-vault-orchestrator/Jobs/Management.cs b/hashicorp-vault-orchestrator/Jobs/Management.cs index 5dd0c12..8e014ee 100644 --- a/hashicorp-vault-orchestrator/Jobs/Management.cs +++ b/hashicorp-vault-orchestrator/Jobs/Management.cs @@ -29,10 +29,6 @@ public JobResult ProcessJob(ManagementJobConfiguration config) switch (config.OperationType) { - //case CertStoreOperationType.Create: - // logger.LogDebug($"Begin Management > Create..."); - // complete = PerformCreateVault(config.JobHistoryId).Result; - // break; case CertStoreOperationType.Add: logger.LogDebug($"Begin Management > Add..."); complete = PerformAddition(config.JobCertificate.Alias, config.JobCertificate.PrivateKeyPassword, config.JobCertificate.Contents, config.JobHistoryId); @@ -46,32 +42,6 @@ public JobResult ProcessJob(ManagementJobConfiguration config) return complete; } - //protected async Task PerformCreateVault(long jobHistoryId) - //{ - // var jobResult = new JobResult() { JobHistoryId = jobHistoryId, Result = OrchestratorJobStatusJobResult.Failure }; - // bool createVaultResult; - // try - // { - // createVaultResult = await VaultClient.CreateStore(StorePath, MountPoint); - // } - // catch (Exception ex) - // { - // jobResult.FailureMessage = ex.Message; - // return jobResult; - // } - - // if (createVaultResult) - // { - // jobResult.Result = OrchestratorJobStatusJobResult.Success; - // } - // else - // { - // jobResult.FailureMessage = "The creation of the Azure Key Vault failed for an unknown reason. Check your job parameters and ensure permissions are correct."; - // } - - // return jobResult; - //} - protected virtual JobResult PerformAddition(string alias, string pfxPassword, string entryContents, long jobHistoryId) { var complete = new JobResult() { Result = OrchestratorJobStatusJobResult.Failure, JobHistoryId = jobHistoryId }; @@ -92,10 +62,18 @@ protected virtual JobResult PerformAddition(string alias, string pfxPassword, st } catch (Exception ex) { - complete.FailureMessage = $"An error occured while adding {alias} to {ExtensionName}: " + ex.Message; - - if (ex.InnerException != null) - complete.FailureMessage += " - " + ex.InnerException.Message; + if (ex.GetType() == typeof(NotSupportedException)) + { + logger.LogError("Attempt to Add Certificate on unsupported Secrets Engine backend."); + complete.FailureMessage = $"{SecretsEngine} does not support adding certificates via the Orchestrator."; + } + else + { + complete.FailureMessage = $"An error occured while adding {alias} to {ExtensionName}: " + ex.Message; + + if (ex.InnerException != null) + complete.FailureMessage += " - " + ex.InnerException.Message; + } } } @@ -133,8 +111,16 @@ protected virtual JobResult PerformRemoval(string alias, long jobHistoryId) catch (Exception ex) { - logger.LogError("Error deleting cert from Vault", ex); - complete.FailureMessage = $"An error occured while removing {alias} from {ExtensionName}: " + ex.Message; + if (ex.GetType() == typeof(NotSupportedException)) + { + logger.LogError("Attempt to Delete Certificate on unsupported Secrets Engine backend."); + complete.FailureMessage = $"{SecretsEngine} does not support removing certificates via the Orchestrator."; + } + else + { + logger.LogError("Error deleting cert from Vault", ex); + complete.FailureMessage = $"An error occured while removing {alias} from {ExtensionName}: " + ex.Message; + } } return complete; } diff --git a/hashicorp-vault-orchestrator/manifest.json b/hashicorp-vault-orchestrator/manifest.json index 837162f..f2f8779 100644 --- a/hashicorp-vault-orchestrator/manifest.json +++ b/hashicorp-vault-orchestrator/manifest.json @@ -1,17 +1,21 @@ { "extensions": { "Keyfactor.Orchestrators.Extensions.IOrchestratorJobExtension": { - "CertStores.HCV.Inventory": { + "CertStores.HCVKV.Inventory": { "assemblypath": "Keyfactor.Extensions.Orchestrator.HCV.dll", "TypeFullName": "Keyfactor.Extensions.Orchestrator.HashicorpVault.Jobs.Inventory" }, - "CertStores.HCV.Discovery": { + "CertStores.HCVKV.Discovery": { "assemblypath": "Keyfactor.Extensions.Orchestrator.HCV.dll", "TypeFullName": "Keyfactor.Extensions.Orchestrator.HashicorpVault.Jobs.Discovery" }, - "CertStores.HCV.Management": { + "CertStores.HCVKV.Management": { "assemblypath": "Keyfactor.Extensions.Orchestrator.HCV.dll", "TypeFullName": "Keyfactor.Extensions.Orchestrator.HashicorpVault.Jobs.Management" + }, + "CertStores.HCV.Inventory": { + "assemblypath": "Keyfactor.Extensions.Orchestrator.HCV.dll", + "TypeFullName": "Keyfactor.Extensions.Orchestrator.HashicorpVault.Jobs.Inventory" } } } From 8bd698e0dbe046b08e95dd152fd65b36d8d3961b Mon Sep 17 00:00:00 2001 From: JoeKF Date: Mon, 20 Mar 2023 11:40:22 -0400 Subject: [PATCH 02/39] Updated to distinguish between multiple supported store types. --- .../HcvKeyValueClient.cs | 1 + .../HcvKeyfactorClient.cs | 9 +++------ hashicorp-vault-orchestrator/Jobs/JobBase.cs | 20 ++++++++++--------- hashicorp-vault-orchestrator/manifest.json | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index c641934..929863c 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -277,6 +277,7 @@ public async Task> GetCertificates(string stor catch (Exception ex) { logger.LogError(ex.Message); + throw ex; } return certs; diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs index 67b34af..d9db55a 100644 --- a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -27,15 +27,12 @@ public class HcvKeyfactorClient : IHashiClient private string _vaultUrl { get; set; } - private string _vaultToken { get; set; } + private string _vaultToken { get; set; } - private string _secretsEngine { get; set; } - - public HcvKeyfactorClient(string vaultToken, string serverUrl, string secretsEngine, string mountPoint) + public HcvKeyfactorClient(string vaultToken, string serverUrl, string mountPoint) { - _vaultToken = vaultToken; - _secretsEngine = secretsEngine; + _vaultToken = vaultToken; _vaultUrl = $"{ serverUrl }/v1/{ mountPoint.Replace("/", string.Empty) }"; } diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index f4f7c71..d2d3515 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -29,32 +29,32 @@ public abstract class JobBase internal protected IHashiClient VaultClient { get; set; } const string KEY_VALUE_ENGINE = "KV"; - const string KEYFACTOR_ENGINE = "KF"; - const string PKI_ENGINE = "PKI"; + const string KEYFACTOR_ENGINE = "Keyfactor"; + const string PKI_ENGINE = "Hashicorp PKI"; public void InitializeStore(InventoryJobConfiguration config) { var props = JsonConvert.DeserializeObject(config.CertificateStoreDetails.Properties); //var props = Jsonconfig.CertificateStoreDetails.Properties; - InitProps(props); + InitProps(props, config.Capability); StorePath = config.CertificateStoreDetails?.StorePath ?? null; } public void InitializeStore(DiscoveryJobConfiguration config) { var props = config.JobProperties; - InitProps(props); + InitProps(props, config.Capability); } public void InitializeStore(ManagementJobConfiguration config) { var props = JsonConvert.DeserializeObject(config.CertificateStoreDetails.Properties); - InitProps(props); + InitProps(props, config.Capability); StorePath = config.CertificateStoreDetails?.StorePath ?? null; StorePath = StorePath.Replace("/", string.Empty); } - private void InitProps(dynamic props) + private void InitProps(dynamic props, string capability) { if (props == null) throw new System.Exception("Properties is null", props); @@ -62,14 +62,16 @@ private void InitProps(dynamic props) VaultServerUrl = props["VaultServerUrl"]; SecretsEngine = props["SecretsEngine"]; MountPoint = props["MountPoint"] ?? null; - //RoleName = props["RoleName"]; - if (SecretsEngine == KEY_VALUE_ENGINE) + + var isPki = capability.Contains("HCVPKI"); + + if (!isPki) { VaultClient = new HcvKeyValueClient(VaultToken, VaultServerUrl, MountPoint); } else { - VaultClient = new HcvKeyfactorClient(VaultToken, VaultServerUrl, SecretsEngine, MountPoint); + VaultClient = new HcvKeyfactorClient(VaultToken, VaultServerUrl, MountPoint); } } diff --git a/hashicorp-vault-orchestrator/manifest.json b/hashicorp-vault-orchestrator/manifest.json index f2f8779..559c5a3 100644 --- a/hashicorp-vault-orchestrator/manifest.json +++ b/hashicorp-vault-orchestrator/manifest.json @@ -13,7 +13,7 @@ "assemblypath": "Keyfactor.Extensions.Orchestrator.HCV.dll", "TypeFullName": "Keyfactor.Extensions.Orchestrator.HashicorpVault.Jobs.Management" }, - "CertStores.HCV.Inventory": { + "CertStores.HCVPKI.Inventory": { "assemblypath": "Keyfactor.Extensions.Orchestrator.HCV.dll", "TypeFullName": "Keyfactor.Extensions.Orchestrator.HashicorpVault.Jobs.Inventory" } From b5ca9f163fb7bedc465c634bc044bccb9349ca94 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Mon, 20 Mar 2023 14:20:12 -0400 Subject: [PATCH 03/39] Fixed store path and mount point mapping --- .../HcvKeyValueClient.cs | 123 ++++-------------- .../HcvKeyfactorClient.cs | 25 ++-- hashicorp-vault-orchestrator/IHashiClient.cs | 10 +- .../Jobs/Discovery.cs | 2 +- .../Jobs/Inventory.cs | 2 +- hashicorp-vault-orchestrator/Jobs/JobBase.cs | 4 +- .../Jobs/Management.cs | 4 +- 7 files changed, 52 insertions(+), 118 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 929863c..a926df6 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -41,7 +41,7 @@ public class HcvKeyValueClient : IHashiClient private static readonly string privKeyStart = "-----BEGIN RSA PRIVATE KEY-----\n"; private static readonly string privKeyEnd = "\n-----END RSA PRIVATE KEY-----"; - public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint) + public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, string storePath) { // Initialize one of the several auth methods. IAuthMethodInfo authMethod = new TokenAuthMethodInfo(vaultToken); @@ -49,31 +49,30 @@ public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint) // Initialize settings. You can also set proxies, custom delegates etc. here. var clientSettings = new VaultClientSettings(serverUrl, authMethod); _mountPoint = mountPoint; + _storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; _vaultClient = new VaultClient(clientSettings); } - public async Task GetCertificate(string key, string storePath, string mountPoint = null) + public async Task GetCertificate(string key) { VaultClient.V1.Auth.ResetVaultToken(); Dictionary certData; Secret res; - - storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; //add the slash back in. - + try { - var fullPath = storePath + "/" + key; + var fullPath = _storePath + "/" + key; try { - if (mountPoint == null) + if (_mountPoint == null) { res = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(fullPath)); } else { - res = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(fullPath, mountPoint: mountPoint)); + res = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(fullPath, mountPoint: _mountPoint)); } } catch (Exception ex) @@ -117,7 +116,7 @@ public async Task GetCertificate(string key, string storeP } } - public async Task> GetVaults(string storePath, string mountPoint = null) + public async Task> GetVaults() { VaultClient.V1.Auth.ResetVaultToken(); @@ -125,13 +124,13 @@ public async Task> GetVaults(string storePath, string mountP try { - if (mountPoint == null) + if (_mountPoint == null) { - vaults = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(storePath)).Data.Keys.ToList(); + vaults = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath)).Data.Keys.ToList(); } else { - vaults = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(storePath, mountPoint)).Data.Keys.ToList(); + vaults = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath, _mountPoint)).Data.Keys.ToList(); } } @@ -143,7 +142,7 @@ public async Task> GetVaults(string storePath, string mountP return vaults; } - public async Task PutCertificate(string certName, string contents, string pfxPassword, string storePath, string mountPoint = null) + public async Task PutCertificate(string certName, string contents, string pfxPassword) { VaultClient.V1.Auth.ResetVaultToken(); @@ -204,17 +203,16 @@ public async Task PutCertificate(string certName, string contents, string pfxPas throw; } try - { - storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; //add the slash back in. - var fullPath = storePath + "/" + certName; + { + var fullPath = _storePath + "/" + certName; - if (mountPoint == null) + if (_mountPoint == null) { await VaultClient.V1.Secrets.KeyValue.V2.WriteSecretAsync(fullPath, certDict); } else { - await VaultClient.V1.Secrets.KeyValue.V2.WriteSecretAsync(fullPath, certDict, mountPoint: mountPoint); + await VaultClient.V1.Secrets.KeyValue.V2.WriteSecretAsync(fullPath, certDict, mountPoint: _mountPoint); } } catch (Exception ex) @@ -224,22 +222,21 @@ public async Task PutCertificate(string certName, string contents, string pfxPas } } - public async Task DeleteCertificate(string certName, string storePath, string mountPoint = null) + public async Task DeleteCertificate(string certName) { VaultClient.V1.Auth.ResetVaultToken(); try { - storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; //add the slash back in. - var fullPath = storePath + "/" + certName; + var fullPath = _storePath + "/" + certName; - if (mountPoint == null) + if (_mountPoint == null) { await VaultClient.V1.Secrets.KeyValue.V2.DeleteSecretAsync(fullPath); } else { - await VaultClient.V1.Secrets.KeyValue.V2.DeleteSecretAsync(fullPath, mountPoint); + await VaultClient.V1.Secrets.KeyValue.V2.DeleteSecretAsync(fullPath, _mountPoint); } } catch (Exception ex) @@ -250,27 +247,26 @@ public async Task DeleteCertificate(string certName, string storePath, str return true; } - public async Task> GetCertificates(string storePath, string mountPoint = null) + public async Task> GetCertificates() { VaultClient.V1.Auth.ResetVaultToken(); - storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; //add the slash back in. - + var certs = new List(); var certNames = new List(); try { - if (string.IsNullOrEmpty(mountPoint)) + if (string.IsNullOrEmpty(_mountPoint)) { - certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(storePath)).Data.Keys.ToList(); + certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath)).Data.Keys.ToList(); } else { - certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(storePath, mountPoint)).Data.Keys.ToList(); + certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath, _mountPoint)).Data.Keys.ToList(); } certNames.ForEach(k => { - var cert = GetCertificate(k, storePath, mountPoint).Result; + var cert = GetCertificate(k).Result; if (cert != null) certs.Add(cert); }); } @@ -286,72 +282,5 @@ public async Task> GetCertificates(string stor private static Func Pemify = ss => ss.Length <= 64 ? ss : ss.Substring(0, 64) + "\n" + Pemify(ss.Substring(64)); - - - //private string GetCertPem(string alias, string contents, string password, ref string privateKeyString) - //{ - // logger.MethodEntry(LogLevel.Debug); - // logger.LogTrace($"alias {alias} privateKeyString {privateKeyString}"); - // string certPem = null; - // try - // { - // if (!string.IsNullOrEmpty(password)) - // { - // logger.LogTrace($"Certificate and Key exist for {alias}"); - // var certData = Convert.FromBase64String(contents); - - // var ms = new MemoryStream(certData); - // Pkcs12Store store = new Pkcs12Store(ms, - // password.ToCharArray()); - - - // string storeAlias; - // TextWriter streamWriter; - // using (var memoryStream = new MemoryStream()) - // { - // streamWriter = new StreamWriter(memoryStream); - // var pemWriter = new PemWriter(streamWriter); - - // storeAlias = store.Aliases.Cast().SingleOrDefault(a => store.IsKeyEntry(a)); - // var publicKey = store.GetCertificate(storeAlias).Certificate.GetPublicKey(); - // var privateKey = store.GetKey(storeAlias).Key; - // var keyPair = new AsymmetricCipherKeyPair(publicKey, privateKey); - - // var pkStart = "-----BEGIN RSA PRIVATE KEY-----\n"; - // var pkEnd = "\n-----END RSA PRIVATE KEY-----"; - - - // pemWriter.WriteObject(keyPair.Private); - // streamWriter.Flush(); - // privateKeyString = Encoding.ASCII.GetString(memoryStream.GetBuffer()).Trim() - // .Replace("\r", "") - // .Replace("\0", ""); - // privateKeyString = privateKeyString.Replace(pkStart, "").Replace(pkEnd, ""); - - // memoryStream.Close(); - // } - - // streamWriter.Close(); - - // // Extract server certificate - // certPem = Pemify( - // Convert.ToBase64String(store.GetCertificate(storeAlias).Certificate.GetEncoded())); - // } - // else - // { - // logger.LogTrace($"Certificate ONLY for {alias}"); - // certPem = Pemify(contents); - // } - // } - // catch (Exception ex) - // { - // logger.LogError($"Error Generating PEM: Error {LogHandler.FlattenException(ex)}"); - // } - - // logger.LogTrace($"PEM {certPem}"); - // logger.MethodEntry(LogLevel.Debug); - // return certPem; - //} - } } diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs index d9db55a..7993f42 100644 --- a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -29,14 +29,19 @@ public class HcvKeyfactorClient : IHashiClient private string _vaultToken { get; set; } + private string _mountPoint { get; set; } - public HcvKeyfactorClient(string vaultToken, string serverUrl, string mountPoint) + private string _storePath { get; set; } + + public HcvKeyfactorClient(string vaultToken, string serverUrl, string mountPoint, string storePath) { - _vaultToken = vaultToken; - _vaultUrl = $"{ serverUrl }/v1/{ mountPoint.Replace("/", string.Empty) }"; + _vaultToken = vaultToken; + _mountPoint = mountPoint ?? "keyfactor"; + _storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; + _vaultUrl = $"{ serverUrl }/v1/{ _mountPoint.Replace("/", string.Empty) }"; } - public async Task GetCertificate(string key, string storePath, string mountPoint = "keyfactor") + public async Task GetCertificate(string key) { var fullPath = $"{ _vaultUrl }/cert/{ key }"; @@ -82,9 +87,9 @@ public async Task GetCertificate(string key, string storeP } } - public async Task> GetCertificates(string storePath, string mountPoint = "keyfactor") + public async Task> GetCertificates() { - var getKeysPath = $"{ _vaultUrl }/v1/{ mountPoint }/certs?list=true"; + var getKeysPath = $"{ _vaultUrl }/v1/{ _mountPoint }/certs?list=true"; var certs = new List(); var certNames = new List(); @@ -102,7 +107,7 @@ public async Task> GetCertificates(string stor certKeys.ToList().ForEach(k => { - var cert = GetCertificate(k, storePath, mountPoint).Result; + var cert = GetCertificate(k).Result; if (cert != null) certs.Add(cert); }); } @@ -113,17 +118,17 @@ public async Task> GetCertificates(string stor return certs; } - public Task> GetVaults(string storePath, string mountPoint = null) + public Task> GetVaults() { throw new NotSupportedException(); } - public Task PutCertificate(string certName, string contents, string pfxPassword, string storePath, string mountPoint = null) + public Task PutCertificate(string certName, string contents, string pfxPassword) { throw new NotSupportedException(); } - public Task DeleteCertificate(string certName, string storePath, string mountPoint = null) + public Task DeleteCertificate(string certName) { throw new NotSupportedException(); } diff --git a/hashicorp-vault-orchestrator/IHashiClient.cs b/hashicorp-vault-orchestrator/IHashiClient.cs index f42eba7..01298ce 100644 --- a/hashicorp-vault-orchestrator/IHashiClient.cs +++ b/hashicorp-vault-orchestrator/IHashiClient.cs @@ -6,10 +6,10 @@ namespace Keyfactor.Extensions.Orchestrator.HashicorpVault { public interface IHashiClient { - Task> GetCertificates(string storePath, string mountPoint = null); - Task GetCertificate(string key, string storePath, string mountPoint = null); - Task> GetVaults(string storePath, string mountPoint = null); - Task PutCertificate(string certName, string contents, string pfxPassword, string storePath, string mountPoint = null); - Task DeleteCertificate(string certName, string storePath, string mountPoint = null); + Task> GetCertificates(); + Task GetCertificate(string key); + Task> GetVaults(); + Task PutCertificate(string certName, string contents, string pfxPassword); + Task DeleteCertificate(string certName); } } diff --git a/hashicorp-vault-orchestrator/Jobs/Discovery.cs b/hashicorp-vault-orchestrator/Jobs/Discovery.cs index 7219cef..fb40c41 100644 --- a/hashicorp-vault-orchestrator/Jobs/Discovery.cs +++ b/hashicorp-vault-orchestrator/Jobs/Discovery.cs @@ -27,7 +27,7 @@ public JobResult ProcessJob(DiscoveryJobConfiguration config, SubmitDiscoveryUpd try { - vaults = VaultClient.GetVaults(StorePath, MountPoint).Result.ToList(); + vaults = VaultClient.GetVaults().Result.ToList(); } catch (Exception ex) { diff --git a/hashicorp-vault-orchestrator/Jobs/Inventory.cs b/hashicorp-vault-orchestrator/Jobs/Inventory.cs index 9aad4f1..6232be6 100644 --- a/hashicorp-vault-orchestrator/Jobs/Inventory.cs +++ b/hashicorp-vault-orchestrator/Jobs/Inventory.cs @@ -26,7 +26,7 @@ public JobResult ProcessJob(InventoryJobConfiguration config, SubmitInventoryUpd IEnumerable certs = null; try { - certs = VaultClient.GetCertificates(MountPoint).Result; + certs = VaultClient.GetCertificates().Result; } catch (Exception ex) { diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index d2d3515..c2806e1 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -67,11 +67,11 @@ private void InitProps(dynamic props, string capability) if (!isPki) { - VaultClient = new HcvKeyValueClient(VaultToken, VaultServerUrl, MountPoint); + VaultClient = new HcvKeyValueClient(VaultToken, VaultServerUrl, MountPoint, StorePath); } else { - VaultClient = new HcvKeyfactorClient(VaultToken, VaultServerUrl, MountPoint); + VaultClient = new HcvKeyfactorClient(VaultToken, VaultServerUrl, MountPoint, StorePath); } } diff --git a/hashicorp-vault-orchestrator/Jobs/Management.cs b/hashicorp-vault-orchestrator/Jobs/Management.cs index 8e014ee..90e4bd8 100644 --- a/hashicorp-vault-orchestrator/Jobs/Management.cs +++ b/hashicorp-vault-orchestrator/Jobs/Management.cs @@ -57,7 +57,7 @@ protected virtual JobResult PerformAddition(string alias, string pfxPassword, st try { // uploadCollection is either not null or an exception was thrown. - var cert = VaultClient.PutCertificate(alias, entryContents, pfxPassword, StorePath, MountPoint); + var cert = VaultClient.PutCertificate(alias, entryContents, pfxPassword); complete.Result = OrchestratorJobStatusJobResult.Success; } catch (Exception ex) @@ -97,7 +97,7 @@ protected virtual JobResult PerformRemoval(string alias, long jobHistoryId) try { - var success = VaultClient.DeleteCertificate(alias, StorePath, MountPoint).Result; + var success = VaultClient.DeleteCertificate(alias).Result; if (!success) { From ef57edd2553733d0d04e993a2fb8682003440a5e Mon Sep 17 00:00:00 2001 From: JoeKF Date: Tue, 28 Mar 2023 12:05:39 -0400 Subject: [PATCH 04/39] updated doc to reflect multiple store type configs. --- .../HcvKeyfactorClient.cs | 39 +++--- images/cert-store-kv.PNG | Bin 0 -> 27860 bytes images/cert-store-pki.PNG | Bin 0 -> 24062 bytes images/cert-store-type-advanced.png | Bin 0 -> 24700 bytes images/store-type-kv.PNG | Bin 0 -> 30679 bytes images/store_type_pki.png | Bin 0 -> 30301 bytes readme_source.md | 125 ++++++++++++++---- 7 files changed, 120 insertions(+), 44 deletions(-) create mode 100644 images/cert-store-kv.PNG create mode 100644 images/cert-store-pki.PNG create mode 100644 images/cert-store-type-advanced.png create mode 100644 images/store-type-kv.PNG create mode 100644 images/store_type_pki.png diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs index 7993f42..4d2f2b7 100644 --- a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -55,10 +55,17 @@ public async Task GetCertificate(string key) req.Method = WebRequestMethods.Http.Get; var res = await req.GetResponseAsync(); CertResponse content = JsonConvert.DeserializeObject(new StreamReader(res.GetResponseStream()).ReadToEnd()); - string cert = content.data["certificate"]; - string issuingCA = content.data["issuing_ca"]; - string privateKey = content.data["private_key"]; - string revokeTime = content.data["revocation_time"]; + string cert; + content.data.TryGetValue("certificate", out cert); + + string issuingCA; + content.data.TryGetValue("issuing_ca", out issuingCA); + + string privateKey; + content.data.TryGetValue("private_key", out privateKey); + + string revokeTime; + content.data.TryGetValue("revocation_time", out revokeTime); if (revokeTime.Equals(0)) { @@ -89,7 +96,7 @@ public async Task GetCertificate(string key) public async Task> GetCertificates() { - var getKeysPath = $"{ _vaultUrl }/v1/{ _mountPoint }/certs?list=true"; + var getKeysPath = $"{ _vaultUrl }/certs?list=true"; var certs = new List(); var certNames = new List(); @@ -133,24 +140,24 @@ public Task DeleteCertificate(string certName) throw new NotSupportedException(); } - public interface HashiResponse + public class HashiResponse { - string request_id { get; set; } - bool renewable { get; set; } - int lease_duration { get; set; } - string wrap_info { get; set; } - string warnings { get; set; } - string auth { get; set; } + public string request_id { get; set; } + public bool renewable { get; set; } + public int lease_duration { get; set; } + public string wrap_info { get; set; } + public string warnings { get; set; } + public string auth { get; set; } } - public interface CertResponse : HashiResponse + public class CertResponse : HashiResponse { - Dictionary data { get; set; } + public Dictionary data { get; set; } } - public interface ListResponse : HashiResponse + public class ListResponse : HashiResponse { - Dictionary data { get; set; } + public Dictionary data { get; set; } } } } \ No newline at end of file diff --git a/images/cert-store-kv.PNG b/images/cert-store-kv.PNG new file mode 100644 index 0000000000000000000000000000000000000000..3e707f4beaa87e989264c55fe024d1ed103f808f GIT binary patch literal 27860 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 NRap!9M#&=NzW~D$Id1>} literal 0 HcmV?d00001 diff --git a/images/cert-store-pki.PNG b/images/cert-store-pki.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c6f70758a891dca483f4d96e8b5e2a2bb6ae6a86 GIT binary patch literal 24062 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℘tqF4M)#S(5UF=d-;m006*BNL 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 P=)m{%@0QwaUB&r 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 -This integration for the Keyfactor Universal Orchestrator has been tested against Hashicorp Vault 1.10. It utilizes the *Key/Value* secrets engine to store certificates issues via Keyfactor Command. +This integration for the Keyfactor Universal Orchestrator has been tested against Hashicorp Vault 1.10. It utilizes the **Key/Value** secrets engine to store certificates issues via Keyfactor Command. ## Use Cases -The Hashicorp Vault Orchestrator Integration implements the following capabilities: +This integration supports 3 Hashicorp Secrets Engines; PKI, Key-Value store, and the Keyfactor Hashicorp Plugin (Keyfactor Secrets Engine). + +### The Key-Value secrets engine + +The Following operations are supported by this integration **only** for the Key-Value secrets engine. 1. Discovery - Discover all sub-paths containing certificate. 1. Inventory - Return all certificates stored in a path. 1. Management (Add) - Add a certificate to a defined certificate store. 1. Management (Remove) - Remove a certificate from a defined certificate store. +### The Hashicorp PKI and Keyfactor Plugin secrets engines + +Both the Hashicorp PKI and Keyfactor plugin are designed to allow managing certifications directly on the Hashicorp Vault instance. +This integration does support the following in order to view your certificates from the platform: + +1. Inventory - Return all certificates stored in a path. + +[View the repository on Github](https://github.com/Keyfactor/hashicorp-vault-secretsengine) for more information about the Hashicorp Vault Keyfactor Secrets Engine plugin. + ## Versioning The version number of a the Hashicorp Vault Orchestrator Extension can be verified by right clicking on the `Keyfactor.Extensions.Orchestrator.HCV.dll` file in the extensions installation folder, selecting Properties, and then clicking on the Details tab. ## Keyfactor Version Supported -This integration was built on the .NET Core 3.1 target framework and are compatible for use with the Keyfactor Universal Orchestrator. +This integration was built on the .NET Core 3.1 target framework and are compatible for use with the Keyfactor Universal Orchestrator and the latest version of the Keyfactor platform. ## Security Considerations 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. The certificates are stored in 3 fields in the Key Value store. + +1. For the Key-Value secrets engine, the certificates are stored as an entry with 3 fields. - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key - `KEY_SECRET` - The certificate private key password - + ## Extension Configuration ### On the Orchestrator Agent Machine 1. Stop the Orchestrator service. - -- The service will be called "KeyfactorOrchestrator-Default" by default. - -1. Navigate to the "extensions" sub-folder of your Orchestrator installation directory - -- example: `C:\Program Files\Keyfactor\Keyfactor Orchestrator\extensions` - -1. Create a new folder called "HCV" (the name of the folder is not important) -1. Extract the contents of the release zip file into this folder. -1. Re-start the Orchestrator service. + - The service will be called "KeyfactorOrchestrator-Default" by default. +2. Navigate to the "extensions" sub-folder of your Orchestrator installation directory + - example: `C:\Program Files\Keyfactor\Keyfactor Orchestrator\extensions` +3. Create a new folder called "HCV" (the name of the folder is not important) +4. Extract the contents of the release zip file into this folder. +5. Re-start the Orchestrator service. ### In the Keyfactor Platform -1. Add a new Certificate Store Type +#### Add a new Certificate Store Type - **Key-Value Secrets Engine** - Log into Keyfactor as Administrator or a user with permissions to add certificate store types. - Click on the gear icon in the top right and then navigate to the "Certificate Store Types" @@ -54,11 +64,18 @@ This integration was built on the .NET Core 3.1 target framework and are compati ![](images/store_type_add.png) - - **Name:** "Hashicorp Vault" (or another preferred name) - - **Short Name:** "HCV" - - **Supported Job Types:** "Inventory", "Add", "Remove", "Discovery" +- Set the following values in the "Basic" tab: + - **Name:** "Hashicorp Vault Key-Value" (or another preferred name) + - **Short Name:** "HCVKV" + - **Supported Job Types** - "Inventory", "Add", "Remove", "Discovery" + +![](images/store-type-kv.PNG) + +- Set the following values on the "Advanced" tab: + - **Supports Custom Alias** - "Optional" + - **Private Key Handling** - "Optional" -![](images/store_type_1.png) +![](images/cert-store-type-advanced.png) - Click the "Custom Fields" tab to add the following custom fields: - **MountPoint** - type: *string* @@ -69,16 +86,16 @@ This integration was built on the .NET Core 3.1 target framework and are compati - Click **Save** to save the new Store Type. -1. Add the Hashicorp Vault Certificate Store +#### Add the Hashicorp Vault Certificate Store - **Key-Value Secrets Engine** - Navigate to **Locations** > **Certificate Stores** from the main menu - Click **ADD** to open the new Certificate Store Dialog -![](images/cert_store_add_dialog.png) +![](images/cert_store_add_dialog.png) -In Keyfactor Command create a new Certificate Store Type similar to the one below: +In Keyfactor Command create a new Certificate Store that resembles the one below: -![](images/cert_store_fields.png) +![](images/cert_store_fields.png) - **Client Machine** - Enter the URL for the Vault host machine - **Store Path** - This is the path after mount point where the certs will be stored. @@ -88,10 +105,63 @@ In Keyfactor Command create a new Certificate Store Type similar to the one belo - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance -## Testing +### For the Keyfactor and PKI plugins + +- Add a new Certificate Store Type + - Log into Keyfactor as Administrator or a user with permissions to add certificate store types. + - Click on the gear icon in the top right and then navigate to the "Certificate Store Types" + - Click "Add" and enter the following information on the first tab: + +![](images/store_type_add.png) + +- **Name:** "Hashicorp Vault PKI" (or another preferred name) +- **Short Name:** "HCVPKI" +- **Supported Job Types:** "Inventory" + +![](images/store_type_pki.PNG) + +- Set the following values on the "Advanced" tab: + - **Supports Custom Alias** - "Optional" + - **Private Key Handling** - "Optional" + +![](images/cert-store-type-advanced.png) + +- Click the "Custom Fields" tab to add the following custom fields: + - **MountPoint** - type: *string* + - **VaultServerUrl** - type: *string*, *required* + - **VaultToken** - type: *string*, *required* + +![](images/store_type_fields.png) + +- Click **Save** to save the new Store Type. + +1. Add the Hashicorp Vault Certificate Store + +- Navigate to **Locations** > **Certificate Stores** from the main menu +- Click **ADD** to open the new Certificate Store Dialog + +In Keyfactor Command create a new Certificate Store similar to the one below: + +![](images/store_type_pki.png) + +- **Client Machine** - Enter the URL for the Vault host machine +- **Store Path** - "/" +- **Mount Point** - This is the mount point name for the instance of the PKI or Keyfactor secrets engine plugin. + - If using the PKI plugin, the default in Hashicorp is pki. If using the Keyfactor plugin, it should correspond to the mount point given when the plugin was enabled. + - It is possible to have multiple instances of the Keyfactor plugin running simultaneously, so be sure this corresponds to the one you would like to manage. + +- **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. +- **Vault Server Url** - the full url and port of the Vault server instance + +At this point, the certificate store should be created and ready to peform inventory on your certificates stored via the Keyfactor or PKI secrets engine plugin for Hashicorp Vault. + +## Testing the Key-Value store ### PFX Enrollment into Vault +**Note** +Enrollment via the platform is only supported by the Key-Value store type + At this point you should be able to enroll a certificate and store it in Vault using the plugin. 1. Navigate to `Enrollment > PFX Enrollment` from the main menu. @@ -112,7 +182,7 @@ At this point you should be able to enroll a certificate and store it in Vault u - Make sure the vault is unsealed first -1. Type `vault kv list kv/cert-store` (where "kv/cert-store" is /) +1. Type `vault kv list kv/cert-store` (where "kv/cert-store" is `/`) - You should see the alias of the newly enrolled certificate @@ -127,5 +197,4 @@ At this point you should be able to enroll a certificate and store it in Vault u ## Notes / Future Enhancements -- Currently we only operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). -- Creating a new certificate store is done implicitly by adding a **store path** value that doesn't currently exist. +- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). From 35d86ce34d99a85da663cea8a5f8bd00218d175f Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 28 Mar 2023 10:25:59 -0700 Subject: [PATCH 05/39] Updated to new workflow --- .../workflows/keyfactor-starter-workflow.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/keyfactor-starter-workflow.yml b/.github/workflows/keyfactor-starter-workflow.yml index 4c2d327..e291ab4 100644 --- a/.github/workflows/keyfactor-starter-workflow.yml +++ b/.github/workflows/keyfactor-starter-workflow.yml @@ -5,6 +5,19 @@ jobs: call-create-github-release-workflow: uses: Keyfactor/actions/.github/workflows/github-release.yml@main + get-manifest-properties: + runs-on: windows-latest + outputs: + update_catalog: ${{ steps.read-json.outputs.prop }} + steps: + - uses: actions/checkout@v3 + - name: Read json + id: read-json + shell: pwsh + run: | + $json = Get-Content integration-manifest.json | ConvertFrom-Json + echo "::set-output name=prop::$(echo $json.update_catalog)" + call-dotnet-build-and-release-workflow: needs: [call-create-github-release-workflow] uses: Keyfactor/actions/.github/workflows/dotnet-build-and-release.yml@main @@ -18,9 +31,12 @@ jobs: call-generate-readme-workflow: if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' uses: Keyfactor/actions/.github/workflows/generate-readme.yml@main + secrets: + token: ${{ secrets.APPROVE_README_PUSH }} call-update-catalog-workflow: - if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' + needs: get-manifest-properties + if: needs.get-manifest-properties.outputs.update_catalog == 'True' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') uses: Keyfactor/actions/.github/workflows/update-catalog.yml@main secrets: token: ${{ secrets.SDK_SYNC_PAT }} From 65506fde309cb7e1b12fd4fbab2ddccc7ba551d3 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Tue, 28 Mar 2023 17:27:24 +0000 Subject: [PATCH 06/39] Update generated README --- README.md | 122 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 95 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 257cffd..1049c87 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ The Universal Orchestrator is the successor to the Windows Orchestrator. This Ca + ## Platform Specific Notes The Keyfactor Universal Orchestrator may be installed on either Windows or Linux based platforms. The certificate operations supported by a capability may vary based what platform the capability is installed on. The table below indicates what capabilities are supported based on which platform the encompassing Universal Orchestrator is running. @@ -33,58 +34,69 @@ The Keyfactor Universal Orchestrator may be installed on either Windows or Linux + --- -This integration for the Keyfactor Universal Orchestrator has been tested against Hashicorp Vault 1.10. It utilizes the *Key/Value* secrets engine to store certificates issues via Keyfactor Command. +This integration for the Keyfactor Universal Orchestrator has been tested against Hashicorp Vault 1.10. It utilizes the **Key/Value** secrets engine to store certificates issues via Keyfactor Command. ## Use Cases -The Hashicorp Vault Orchestrator Integration implements the following capabilities: +This integration supports 3 Hashicorp Secrets Engines; PKI, Key-Value store, and the Keyfactor Hashicorp Plugin (Keyfactor Secrets Engine). + +### The Key-Value secrets engine + +The Following operations are supported by this integration **only** for the Key-Value secrets engine. 1. Discovery - Discover all sub-paths containing certificate. 1. Inventory - Return all certificates stored in a path. 1. Management (Add) - Add a certificate to a defined certificate store. 1. Management (Remove) - Remove a certificate from a defined certificate store. +### The Hashicorp PKI and Keyfactor Plugin secrets engines + +Both the Hashicorp PKI and Keyfactor plugin are designed to allow managing certifications directly on the Hashicorp Vault instance. +This integration does support the following in order to view your certificates from the platform: + +1. Inventory - Return all certificates stored in a path. + +[View the repository on Github](https://github.com/Keyfactor/hashicorp-vault-secretsengine) for more information about the Hashicorp Vault Keyfactor Secrets Engine plugin. + ## Versioning The version number of a the Hashicorp Vault Orchestrator Extension can be verified by right clicking on the `Keyfactor.Extensions.Orchestrator.HCV.dll` file in the extensions installation folder, selecting Properties, and then clicking on the Details tab. ## Keyfactor Version Supported -This integration was built on the .NET Core 3.1 target framework and are compatible for use with the Keyfactor Universal Orchestrator. +This integration was built on the .NET Core 3.1 target framework and are compatible for use with the Keyfactor Universal Orchestrator and the latest version of the Keyfactor platform. ## Security Considerations 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. The certificates are stored in 3 fields in the Key Value store. + +1. For the Key-Value secrets engine, the certificates are stored as an entry with 3 fields. - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key - `KEY_SECRET` - The certificate private key password - + ## Extension Configuration ### On the Orchestrator Agent Machine 1. Stop the Orchestrator service. - -- The service will be called "KeyfactorOrchestrator-Default" by default. - -1. Navigate to the "extensions" sub-folder of your Orchestrator installation directory - -- example: `C:\Program Files\Keyfactor\Keyfactor Orchestrator\extensions` - -1. Create a new folder called "HCV" (the name of the folder is not important) -1. Extract the contents of the release zip file into this folder. -1. Re-start the Orchestrator service. + - The service will be called "KeyfactorOrchestrator-Default" by default. +2. Navigate to the "extensions" sub-folder of your Orchestrator installation directory + - example: `C:\Program Files\Keyfactor\Keyfactor Orchestrator\extensions` +3. Create a new folder called "HCV" (the name of the folder is not important) +4. Extract the contents of the release zip file into this folder. +5. Re-start the Orchestrator service. ### In the Keyfactor Platform -1. Add a new Certificate Store Type +#### Add a new Certificate Store Type - **Key-Value Secrets Engine** - Log into Keyfactor as Administrator or a user with permissions to add certificate store types. - Click on the gear icon in the top right and then navigate to the "Certificate Store Types" @@ -93,13 +105,17 @@ This integration was built on the .NET Core 3.1 target framework and are compati ![](images/store_type_add.png) - Set the following values in the "Basic" tab: - - **Name** - "Hashicorp Vault" (or another preferred name) - - **Short Name** - "HCV" + - **Name:** "Hashicorp Vault Key-Value" (or another preferred name) + - **Short Name:** "HCVKV" - **Supported Job Types** - "Inventory", "Add", "Remove", "Discovery" + +![](images/store-type-kv.PNG) + +- Set the following values on the "Advanced" tab: - **Supports Custom Alias** - "Optional" - **Private Key Handling** - "Optional" -![](images/store_type_1.png) +![](images/cert-store-type-advanced.png) - Click the "Custom Fields" tab to add the following custom fields: - **MountPoint** - type: *string* @@ -110,16 +126,16 @@ This integration was built on the .NET Core 3.1 target framework and are compati - Click **Save** to save the new Store Type. -1. Add the Hashicorp Vault Certificate Store +#### Add the Hashicorp Vault Certificate Store - **Key-Value Secrets Engine** - Navigate to **Locations** > **Certificate Stores** from the main menu - Click **ADD** to open the new Certificate Store Dialog -![](images/cert_store_add_dialog.png) +![](images/cert_store_add_dialog.png) -In Keyfactor Command create a new Certificate Store Type similar to the one below: +In Keyfactor Command create a new Certificate Store that resembles the one below: -![](images/cert_store_fields.png) +![](images/cert_store_fields.png) - **Client Machine** - Enter the URL for the Vault host machine - **Store Path** - This is the path after mount point where the certs will be stored. @@ -129,10 +145,63 @@ In Keyfactor Command create a new Certificate Store Type similar to the one belo - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance -## Testing +### For the Keyfactor and PKI plugins + +- Add a new Certificate Store Type + - Log into Keyfactor as Administrator or a user with permissions to add certificate store types. + - Click on the gear icon in the top right and then navigate to the "Certificate Store Types" + - Click "Add" and enter the following information on the first tab: + +![](images/store_type_add.png) + +- **Name:** "Hashicorp Vault PKI" (or another preferred name) +- **Short Name:** "HCVPKI" +- **Supported Job Types:** "Inventory" + +![](images/store_type_pki.PNG) + +- Set the following values on the "Advanced" tab: + - **Supports Custom Alias** - "Optional" + - **Private Key Handling** - "Optional" + +![](images/cert-store-type-advanced.png) + +- Click the "Custom Fields" tab to add the following custom fields: + - **MountPoint** - type: *string* + - **VaultServerUrl** - type: *string*, *required* + - **VaultToken** - type: *string*, *required* + +![](images/store_type_fields.png) + +- Click **Save** to save the new Store Type. + +1. Add the Hashicorp Vault Certificate Store + +- Navigate to **Locations** > **Certificate Stores** from the main menu +- Click **ADD** to open the new Certificate Store Dialog + +In Keyfactor Command create a new Certificate Store similar to the one below: + +![](images/store_type_pki.png) + +- **Client Machine** - Enter the URL for the Vault host machine +- **Store Path** - "/" +- **Mount Point** - This is the mount point name for the instance of the PKI or Keyfactor secrets engine plugin. + - If using the PKI plugin, the default in Hashicorp is pki. If using the Keyfactor plugin, it should correspond to the mount point given when the plugin was enabled. + - It is possible to have multiple instances of the Keyfactor plugin running simultaneously, so be sure this corresponds to the one you would like to manage. + +- **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. +- **Vault Server Url** - the full url and port of the Vault server instance + +At this point, the certificate store should be created and ready to peform inventory on your certificates stored via the Keyfactor or PKI secrets engine plugin for Hashicorp Vault. + +## Testing the Key-Value store ### PFX Enrollment into Vault +**Note** +Enrollment via the platform is only supported by the Key-Value store type + At this point you should be able to enroll a certificate and store it in Vault using the plugin. 1. Navigate to `Enrollment > PFX Enrollment` from the main menu. @@ -153,7 +222,7 @@ At this point you should be able to enroll a certificate and store it in Vault u - Make sure the vault is unsealed first -1. Type `vault kv list kv/cert-store` (where "kv/cert-store" is /) +1. Type `vault kv list kv/cert-store` (where "kv/cert-store" is `/`) - You should see the alias of the newly enrolled certificate @@ -168,6 +237,5 @@ At this point you should be able to enroll a certificate and store it in Vault u ## Notes / Future Enhancements -- Currently we only operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). -- Creating a new certificate store is done implicitly by adding a **store path** value that doesn't currently exist. +- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). From 9d921271e7b547aee4203d8aff734b71d81a1f0f Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 28 Mar 2023 11:48:08 -0700 Subject: [PATCH 07/39] add apache license header --- hashicorp-vault-orchestrator/IHashiClient.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hashicorp-vault-orchestrator/IHashiClient.cs b/hashicorp-vault-orchestrator/IHashiClient.cs index 01298ce..fbee83e 100644 --- a/hashicorp-vault-orchestrator/IHashiClient.cs +++ b/hashicorp-vault-orchestrator/IHashiClient.cs @@ -1,4 +1,11 @@ -using System.Collections.Generic; +// Copyright 2023 Keyfactor +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions +// and limitations under the License. + +using System.Collections.Generic; using System.Threading.Tasks; using Keyfactor.Orchestrators.Extensions; From ce9d231e37981ff185e85e8973c9e9e44665412f Mon Sep 17 00:00:00 2001 From: JoeKF Date: Thu, 13 Apr 2023 16:15:17 -0400 Subject: [PATCH 08/39] Only trimming leading slashes from the store path now. --- CHANGELOG.md | 10 ++++++++++ hashicorp-vault-orchestrator.sln | 1 + hashicorp-vault-orchestrator/Jobs/JobBase.cs | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..5200a32 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +2.0.1 +* Added support for storing certs in sub-paths +* Updated documentation to specify storing the token as a secret. + +2.0 +* Added inventory job support for the Hashicorp PKI secrets engine +* Added inventory job support for the Keyfactor secrets engine +* **Breaking Change**: the cert store types are now: + * **HCVPKI** for the PKI and Keyfactor secrets engine + * **HCVKV** for the Key-Value secrets engine diff --git a/hashicorp-vault-orchestrator.sln b/hashicorp-vault-orchestrator.sln index a46e58b..af7d618 100644 --- a/hashicorp-vault-orchestrator.sln +++ b/hashicorp-vault-orchestrator.sln @@ -7,6 +7,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "hashicorp-vault-orchestrato EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{83623EBF-AC4C-4158-922D-959AEFC75453}" ProjectSection(SolutionItems) = preProject + CHANGELOG.md = CHANGELOG.md integration-manifest.json = integration-manifest.json LICENSE = LICENSE README.md = README.md diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index c2806e1..5e068e4 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -51,7 +51,7 @@ public void InitializeStore(ManagementJobConfiguration config) var props = JsonConvert.DeserializeObject(config.CertificateStoreDetails.Properties); InitProps(props, config.Capability); StorePath = config.CertificateStoreDetails?.StorePath ?? null; - StorePath = StorePath.Replace("/", string.Empty); + StorePath = StorePath.TrimStart('/'); } private void InitProps(dynamic props, string capability) From 8b84ad9f12b443b5e1b7f633dd4a44d95905c51a Mon Sep 17 00:00:00 2001 From: JoeKF Date: Thu, 13 Apr 2023 16:22:17 -0400 Subject: [PATCH 09/39] updated documentation to store Vault token as a secret instead of plain string. --- images/store_type_fields.png | Bin 13147 -> 13066 bytes readme_source.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/images/store_type_fields.png b/images/store_type_fields.png index 5488fb3683b6282a6af77c7ece9ee1aa9623c344..3af4fb13215f736e9b92f47a64e5e9692c2eba53 100644 GIT binary patch literal 13066 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 literal 13147 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 P#N1Jq*N}tBd Date: Thu, 13 Apr 2023 20:23:15 +0000 Subject: [PATCH 10/39] Update generated README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1049c87..6db209a 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ This integration was built on the .NET Core 3.1 target framework and are compati - Click the "Custom Fields" tab to add the following custom fields: - **MountPoint** - type: *string* - **VaultServerUrl** - type: *string*, *required* - - **VaultToken** - type: *string*, *required* + - **VaultToken** - type: *secret*, *required* ![](images/store_type_fields.png) @@ -169,7 +169,7 @@ In Keyfactor Command create a new Certificate Store that resembles the one below - Click the "Custom Fields" tab to add the following custom fields: - **MountPoint** - type: *string* - **VaultServerUrl** - type: *string*, *required* - - **VaultToken** - type: *string*, *required* + - **VaultToken** - type: *secret*, *required* ![](images/store_type_fields.png) From 4ef2e3e35ef2a9bcc45a33a3934134650511b7ae Mon Sep 17 00:00:00 2001 From: JoeKF Date: Mon, 17 Apr 2023 13:29:01 -0400 Subject: [PATCH 11/39] removed sensitive info from tracelog. --- hashicorp-vault-orchestrator/HcvKeyValueClient.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index a926df6..c3ad040 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -171,18 +171,19 @@ public async Task PutCertificate(string certName, string contents, string pfxPas var publicKey = p.GetCertificate(alias).Certificate.GetPublicKey(); logger.LogTrace($"publicKey = {publicKey}"); var KeyEntry = p.GetKey(alias); - logger.LogTrace($"KeyEntry = {KeyEntry}"); + // logger.LogTrace($"KeyEntry = {KeyEntry}"); if (KeyEntry == null) throw new Exception("Unable to retrieve private key"); var privateKey = KeyEntry.Key; - logger.LogTrace($"privateKey = {privateKey}"); + // logger.LogTrace($"privateKey = {privateKey}"); var keyPair = new AsymmetricCipherKeyPair(publicKey, privateKey); pemWriter.WriteObject(keyPair.Private); streamWriter.Flush(); privateKeyString = Encoding.ASCII.GetString(memoryStream.GetBuffer()).Trim() .Replace("\r", "").Replace("\0", ""); - logger.LogTrace($"Got Private Key String {privateKeyString}"); + // logger.LogTrace($"Got Private Key String {privateKeyString}"); + logger.LogTrace($"Got Private Key String"); memoryStream.Close(); streamWriter.Close(); logger.LogTrace("Finished Extracting Private Key..."); From 39702136a178fcfb30a245c6b1c2cfaf7fee86b6 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Mon, 17 Apr 2023 17:29:50 +0000 Subject: [PATCH 12/39] Update generated README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6db209a..25d34b6 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ The Hashicorp Vault Orchestrator extension allows you store certificates in Hash ## About the Keyfactor Universal Orchestrator Capability -This repository contains a Universal Orchestrator Capability which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications. +This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications. -The Universal Orchestrator is part of the Keyfactor software distribution and is available via the Keyfactor customer portal. For general instructions on installing Capabilities, see the “Keyfactor Command Orchestrator Installation and Configuration Guide” section of the Keyfactor documentation. For configuration details of this specific Capability, see below in this readme. +The Universal Orchestrator is part of the Keyfactor software distribution and is available via the Keyfactor customer portal. For general instructions on installing Extensions, see the “Keyfactor Command Orchestrator Installation and Configuration Guide” section of the Keyfactor documentation. For configuration details of this specific Extension see below in this readme. -The Universal Orchestrator is the successor to the Windows Orchestrator. This Capability plugin only works with the Universal Orchestrator and does not work with the Windows Orchestrator. +The Universal Orchestrator is the successor to the Windows Orchestrator. This Orchestrator Extension plugin only works with the Universal Orchestrator and does not work with the Windows Orchestrator. From e80364366e4cac9dcd3221ad7ee45ea09d36a69a Mon Sep 17 00:00:00 2001 From: JoeKF Date: Wed, 19 Apr 2023 16:41:28 -0400 Subject: [PATCH 13/39] Fixed issue with path not being resolved before attempting to write cert. --- hashicorp-vault-orchestrator/HcvKeyValueClient.cs | 10 +++++----- hashicorp-vault-orchestrator/Jobs/JobBase.cs | 11 +++++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index c3ad040..78438dd 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -62,7 +62,7 @@ public async Task GetCertificate(string key) try { - var fullPath = _storePath + "/" + key; + var fullPath = _storePath + key; try { @@ -205,7 +205,7 @@ public async Task PutCertificate(string certName, string contents, string pfxPas } try { - var fullPath = _storePath + "/" + certName; + var fullPath = _storePath + certName; if (_mountPoint == null) { @@ -229,7 +229,7 @@ public async Task DeleteCertificate(string certName) try { - var fullPath = _storePath + "/" + certName; + var fullPath = _storePath + certName; if (_mountPoint == null) { @@ -251,7 +251,7 @@ public async Task DeleteCertificate(string certName) public async Task> GetCertificates() { VaultClient.V1.Auth.ResetVaultToken(); - + _storePath = _storePath.TrimStart('/'); var certs = new List(); var certNames = new List(); try @@ -262,7 +262,7 @@ public async Task> GetCertificates() } else { - certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath, _mountPoint)).Data.Keys.ToList(); + certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath, mountPoint: _mountPoint)).Data.Keys.ToList(); } certNames.ForEach(k => diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index 5e068e4..76652cc 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -37,8 +37,12 @@ public void InitializeStore(InventoryJobConfiguration config) var props = JsonConvert.DeserializeObject(config.CertificateStoreDetails.Properties); //var props = Jsonconfig.CertificateStoreDetails.Properties; - InitProps(props, config.Capability); StorePath = config.CertificateStoreDetails?.StorePath ?? null; + StorePath = StorePath.TrimStart('/'); + StorePath = StorePath.TrimEnd('/'); + StorePath = StorePath == null ? null : StorePath + "/"; //enforce single trailing slash for path + + InitProps(props, config.Capability); } public void InitializeStore(DiscoveryJobConfiguration config) @@ -49,9 +53,12 @@ public void InitializeStore(DiscoveryJobConfiguration config) public void InitializeStore(ManagementJobConfiguration config) { var props = JsonConvert.DeserializeObject(config.CertificateStoreDetails.Properties); - InitProps(props, config.Capability); StorePath = config.CertificateStoreDetails?.StorePath ?? null; StorePath = StorePath.TrimStart('/'); + StorePath = StorePath.TrimEnd('/'); + StorePath = StorePath == null ? null : StorePath + "/"; //enforce single trailing slash for path + + InitProps(props, config.Capability); } private void InitProps(dynamic props, string capability) From 1b586719203d3e11fa5e2815a61a7ffe9097cc33 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Wed, 19 Apr 2023 20:42:26 +0000 Subject: [PATCH 14/39] Update generated README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 25d34b6..ceece95 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The Hashicorp Vault Orchestrator extension allows you store certificates in Hash #### Integration status: Production - Ready for use in production environments. -## About the Keyfactor Universal Orchestrator Capability +## About the Keyfactor Universal Orchestrator Extension This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications. From d1b34c4aed42021089327f5ba9c997d9704b6124 Mon Sep 17 00:00:00 2001 From: afolsom-kf <105309476+afolsom-kf@users.noreply.github.com> Date: Fri, 21 Apr 2023 10:59:15 -0600 Subject: [PATCH 15/39] Removed KEY_SECRET from PutCertificate Task --- hashicorp-vault-orchestrator/HcvKeyValueClient.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 78438dd..9928190 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -196,7 +196,6 @@ public async Task PutCertificate(string certName, string contents, string pfxPas privateKeyString = privateKeyString.Replace(privKeyStart, "").Replace(privKeyEnd, ""); certDict.Add("PRIVATE_KEY", privateKeyString); certDict.Add("PUBLIC_KEY", pubCertPem); - certDict.Add("KEY_SECRET", pfxPassword); } catch (Exception ex) { From ef9e7b4bbf90fb65fe34719f7aaa4c8773a36437 Mon Sep 17 00:00:00 2001 From: afolsom-kf <105309476+afolsom-kf@users.noreply.github.com> Date: Fri, 21 Apr 2023 11:02:08 -0600 Subject: [PATCH 16/39] Modified PutCertificate to include ---BEGIN ----END banners (for key+cert) --- hashicorp-vault-orchestrator/HcvKeyValueClient.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 9928190..3fb1dbf 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -38,9 +38,6 @@ public class HcvKeyValueClient : IHashiClient //private VaultClientSettings clientSettings { get; set; } - private static readonly string privKeyStart = "-----BEGIN RSA PRIVATE KEY-----\n"; - private static readonly string privKeyEnd = "\n-----END RSA PRIVATE KEY-----"; - public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, string storePath) { // Initialize one of the several auth methods. @@ -193,7 +190,6 @@ public async Task PutCertificate(string certName, string contents, string pfxPas try { - privateKeyString = privateKeyString.Replace(privKeyStart, "").Replace(privKeyEnd, ""); certDict.Add("PRIVATE_KEY", privateKeyString); certDict.Add("PUBLIC_KEY", pubCertPem); } @@ -278,9 +274,15 @@ public async Task> GetCertificates() return certs; } + private static Func Pemify = base64Cert => + { + string FormatBase64(string ss) => + ss.Length <= 64 ? ss : ss.Substring(0, 64) + "\n" + FormatBase64(ss.Substring(64)); + string header = "-----BEGIN CERTIFICATE-----\n"; + string footer = "\n-----END CERTIFICATE-----"; - private static Func Pemify = ss => - ss.Length <= 64 ? ss : ss.Substring(0, 64) + "\n" + Pemify(ss.Substring(64)); + return header + FormatBase64(base64Cert) + footer; + }; } } From cc81f01814a1eeeec33bbb4d35f4537ccaa9c60c Mon Sep 17 00:00:00 2001 From: afolsom-kf <105309476+afolsom-kf@users.noreply.github.com> Date: Mon, 1 May 2023 17:03:39 -0600 Subject: [PATCH 17/39] Allows for Recursive subfolder inventory Allows Cert Stores to be allow a boolean value for SubfolderInventory. Allows inventory to be done on a root storepath and all of the component/subdirectories. Included documentation update to README.md --- README.md | 8 +- .../HcvKeyValueClient.cs | 93 ++++++++++++++----- hashicorp-vault-orchestrator/Jobs/JobBase.cs | 14 ++- 3 files changed, 86 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index ceece95..f2f7fe0 100644 --- a/README.md +++ b/README.md @@ -76,11 +76,10 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. For the Key-Value secrets engine, the certificates are stored as an entry with 3 fields. +1. For the Key-Value secrets engine, the certificates are stored as an entry with 2 fields. - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key -- `KEY_SECRET` - The certificate private key password ## Extension Configuration @@ -121,6 +120,7 @@ This integration was built on the .NET Core 3.1 target framework and are compati - **MountPoint** - type: *string* - **VaultServerUrl** - type: *string*, *required* - **VaultToken** - type: *secret*, *required* + - **SubfolderInventory** - type: *bool* (By default, this is set to false. Not a required field) ![](images/store_type_fields.png) @@ -144,6 +144,7 @@ In Keyfactor Command create a new Certificate Store that resembles the one below - If left blank, will default to "kv-v2". - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance +- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. ### For the Keyfactor and PKI plugins @@ -237,5 +238,4 @@ At this point you should be able to enroll a certificate and store it in Vault u ## Notes / Future Enhancements -- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). - +- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). \ No newline at end of file diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 3fb1dbf..75d8b61 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -35,10 +35,11 @@ public class HcvKeyValueClient : IHashiClient private string _storePath { get; set; } private string _mountPoint { get; set; } + private bool _subfolderInventory { get; set; } //private VaultClientSettings clientSettings { get; set; } - public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, string storePath) + public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, string storePath,bool SubfolderInventory = false) { // Initialize one of the several auth methods. IAuthMethodInfo authMethod = new TokenAuthMethodInfo(vaultToken); @@ -48,18 +49,47 @@ public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, _mountPoint = mountPoint; _storePath = !string.IsNullOrEmpty(storePath) ? "/" + storePath : storePath; _vaultClient = new VaultClient(clientSettings); + _subfolderInventory = SubfolderInventory; } + public async Task> ListComponentPathsAsync(string storagePath) + { + VaultClient.V1.Auth.ResetVaultToken(); + List componentPaths = new List {}; + try + { + Secret listInfo = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(storagePath, _mountPoint)); + + foreach (var path in listInfo.Data.Keys) + { + if (!path.EndsWith("/")) + { + continue; + } + string fullPath = $"{storagePath}{path}"; + componentPaths.Add(fullPath); + + List subPaths = await ListComponentPathsAsync(fullPath); + componentPaths.AddRange(subPaths); + } + } + catch (Exception ex) + { + logger.LogWarning($"Error while listing component paths: {ex}"); + } + return componentPaths; + } public async Task GetCertificate(string key) { VaultClient.V1.Auth.ResetVaultToken(); Dictionary certData; Secret res; - + var fullPath = _storePath + key; + var relativePath = fullPath.Substring(_storePath.Length); try { - var fullPath = _storePath + key; + try { @@ -74,7 +104,7 @@ public async Task GetCertificate(string key) } catch (Exception ex) { - logger.LogWarning("Error getting certificate (deleted?)", ex); + logger.LogWarning($"Error getting certificate (deleted?) {fullPath}", ex); return null; } @@ -99,7 +129,7 @@ public async Task GetCertificate(string key) return new CurrentInventoryItem() { - Alias = key, + Alias = relativePath, PrivateKeyEntry = hasPrivateKey, ItemStatus = OrchestratorInventoryItemStatus.Unknown, UseChainLevel = true, @@ -247,31 +277,48 @@ public async Task> GetCertificates() { VaultClient.V1.Auth.ResetVaultToken(); _storePath = _storePath.TrimStart('/'); + List subPaths = new List(); + //Grabs the list of subpaths to get certificates from, if SubFolder Inventory is turned on. + //Otherwise just define the single path _storePath + if (_subfolderInventory == true) + { + subPaths = (await ListComponentPathsAsync(_storePath)); + subPaths.Add(_storePath); + } + else + { + subPaths.Add(_storePath); + } var certs = new List(); var certNames = new List(); - try + logger.LogDebug($"SubInventoryEnabled: {_subfolderInventory}"); + foreach (var path in subPaths) { - if (string.IsNullOrEmpty(_mountPoint)) + var relative_path = path.Substring(_storePath.Length); + try { - certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath)).Data.Keys.ToList(); + + if (string.IsNullOrEmpty(_mountPoint)) + { + certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(path)).Data.Keys.ToList(); + } + else + { + certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(path, mountPoint: _mountPoint)).Data.Keys.ToList(); + } + + certNames.ForEach(k => + { + var cert = GetCertificate($"{relative_path}{k}").Result; + if (cert != null) certs.Add(cert); + }); } - else + catch (Exception ex) { - certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(_storePath, mountPoint: _mountPoint)).Data.Keys.ToList(); + logger.LogError(ex.Message); + throw ex; } - - certNames.ForEach(k => - { - var cert = GetCertificate(k).Result; - if (cert != null) certs.Add(cert); - }); } - catch (Exception ex) - { - logger.LogError(ex.Message); - throw ex; - } - return certs; } private static Func Pemify = base64Cert => @@ -285,4 +332,4 @@ public async Task> GetCertificates() return header + FormatBase64(base64Cert) + footer; }; } -} +} \ No newline at end of file diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index 76652cc..a3345b8 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -21,6 +21,8 @@ public abstract class JobBase public string SecretsEngine { get; set; } // "PKI", "Keyfactor", "Key Value" public string VaultServerUrl { get; set; } + + public bool SubfolderInventory { get; set; } public string MountPoint { get; set; } // the mount point of the KV secrets engine. defaults to KV @@ -69,12 +71,20 @@ private void InitProps(dynamic props, string capability) VaultServerUrl = props["VaultServerUrl"]; SecretsEngine = props["SecretsEngine"]; MountPoint = props["MountPoint"] ?? null; + if (props["SubfolderInventory"] == null) + { + SubfolderInventory = false; + } + else + { + SubfolderInventory = props["SubfolderInventory"]; + } var isPki = capability.Contains("HCVPKI"); if (!isPki) { - VaultClient = new HcvKeyValueClient(VaultToken, VaultServerUrl, MountPoint, StorePath); + VaultClient = new HcvKeyValueClient(VaultToken, VaultServerUrl, MountPoint, StorePath, SubfolderInventory); } else { @@ -83,4 +93,4 @@ private void InitProps(dynamic props, string capability) } } -} +} \ No newline at end of file From 87a1d1130d7102c8366d5c18e4420fd172a0c39c Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Tue, 2 May 2023 17:29:27 +0000 Subject: [PATCH 18/39] Update generated README --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f2f7fe0..d244307 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ The Keyfactor Universal Orchestrator may be installed on either Windows or Linux + --- @@ -76,10 +77,11 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. For the Key-Value secrets engine, the certificates are stored as an entry with 2 fields. +1. For the Key-Value secrets engine, the certificates are stored as an entry with 3 fields. - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key +- `KEY_SECRET` - The certificate private key password ## Extension Configuration @@ -120,7 +122,6 @@ This integration was built on the .NET Core 3.1 target framework and are compati - **MountPoint** - type: *string* - **VaultServerUrl** - type: *string*, *required* - **VaultToken** - type: *secret*, *required* - - **SubfolderInventory** - type: *bool* (By default, this is set to false. Not a required field) ![](images/store_type_fields.png) @@ -144,7 +145,6 @@ In Keyfactor Command create a new Certificate Store that resembles the one below - If left blank, will default to "kv-v2". - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance -- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. ### For the Keyfactor and PKI plugins @@ -238,4 +238,5 @@ At this point you should be able to enroll a certificate and store it in Vault u ## Notes / Future Enhancements -- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). \ No newline at end of file +- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). + From af822db8c1f2b61152fb7e4565987053d32f163c Mon Sep 17 00:00:00 2001 From: JoeKF Date: Tue, 2 May 2023 13:50:07 -0400 Subject: [PATCH 19/39] Updated readme_source with documentation changes. --- readme_source.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/readme_source.md b/readme_source.md index 94ecf38..dfee350 100644 --- a/readme_source.md +++ b/readme_source.md @@ -36,11 +36,10 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. For the Key-Value secrets engine, the certificates are stored as an entry with 3 fields. +1. For the Key-Value secrets engine, the certificates are stored as an entry with 2 fields. - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key -- `KEY_SECRET` - The certificate private key password ## Extension Configuration @@ -81,6 +80,7 @@ This integration was built on the .NET Core 3.1 target framework and are compati - **MountPoint** - type: *string* - **VaultServerUrl** - type: *string*, *required* - **VaultToken** - type: *secret*, *required* + - **SubfolderInventory** - type: *bool* (By default, this is set to false. Not a required field) ![](images/store_type_fields.png) @@ -104,6 +104,7 @@ In Keyfactor Command create a new Certificate Store that resembles the one below - If left blank, will default to "kv-v2". - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance +- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. ### For the Keyfactor and PKI plugins @@ -197,4 +198,4 @@ At this point you should be able to enroll a certificate and store it in Vault u ## Notes / Future Enhancements -- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). +- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). \ No newline at end of file From 28291c04eda6268707f3baf81a7268eefeba14e6 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Tue, 2 May 2023 13:57:27 -0400 Subject: [PATCH 20/39] updated screenshots --- images/cert-store-kv.PNG | Bin 27860 -> 29419 bytes images/cert_store_add_dialog.png | Bin 20278 -> 22194 bytes images/store_type_fields.png | Bin 13066 -> 19387 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/cert-store-kv.PNG b/images/cert-store-kv.PNG index 3e707f4beaa87e989264c55fe024d1ed103f808f..e88e2d9a43a5da5b0a543a8647f984485c10b83e 100644 GIT binary patch literal 29419 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
=+I zskKLXA+Lot2OW`~j!HeL*I4xuoKuN~82H#ywV^z;M}s!xk#&lWhSOPC9Lx+Is$Iq( z@jk)VM4Wk3ODx%3q7aGf*PfK}`1|cEwxX17uju3nS>AeRuCZ8xI6)kQbTp^)ua6^k z%^`d)nykh8skNTnmJRNIGsJSiKqlYP%yRN4=RtM9lCv;xJ*lj=?FF2$eJI{D0@g@}Xak@fGFz+`nnE#felT5; zn~v`jmj`ZumFYXdNyT8~>^_UDJ73bp3<&e9%oF{xt5;)sNU@N%rvHmFp#GO=`ahI` zpT7s-AVA+kE!y`hEkM@A9t&Sg{dkwg125$6onNdUR>FJiKvRI%;Hsg-?H1huA0ppl z&aoQU&i6<{qe+OI&oSMq?6vpZ5AXwuWZqDj!!-~CtnZ;El>}!0)@19(v=(9xLHh}QkkrrC+{fI;?_$3r%kAze__c*45 zP`(SOS01u-NU1MJIYqxD7rrVHl9eX)j}AdqSGJAdiHpX1^gef>#S0(gz@RZsvs$-; zYhXsOkILr0W8#bm1m3p^kaRMUY}{dFwAkbFRTZX+E6UmwanOE_G^QSA5Gmuog)M>; zZ$OLo#4Y9W~ngQMd}W^QNcAgZm&ehuMhS4t_6 zCZ_29duIwaM&)H@=h6a+J0@tsn?h8^?_R+?7Es180GZewdK0V`7n0S&8xzKnEpeYA zJS$?T=p{ywTz1A3L%NaELt5wIhLKLNl-NRqYzr+UCg#oX>LY6jOu%M)gZ2SojHIr0 zKHJh-nphK@9LZM1iy^I{?Md~-VXAuUqkyX>TbQG^kXKp?FowAkK@wE=Oas6I(GMRI4DmljEXZeDOCS!m4IVT7J`<0fvYXBj5;lAJ$KV>!z#1LCVW6@2r?1SyFu!pKuf^gnHwnP zjnQsNjG48hf=`Ai`G7FGc__#ts7-UDRW;R`cRf1Jv^{%e@XND@amC(G+{If^mD*QF zldq{hOn?|jZC1H#J%bnQ)M!PD?eAd&nHW&j@0p=dBiy7)6$XP_%#7nFj#(R^T$9kTePxz2EG!KgOkY>yWuM&R*Jd zXE7C*$<32QOpjN(CrzE@6tKXLR5iEX)%wL~ga(weHPjU?gmDz8wXJGUiqZyzguRsA ze=gMj049eS|MyV)=TNo}VeRehF%VkL z;g5h|z8r>Ue-q5qvPv0ID62lu)D$uCMN!n5Ddm8b`key!%6)7*Xx`Bwr0?PvW{^t~ zEjGzRZ)6tFN4=U$#%(r<9lIaeK|B2dAHovv-NKw-Q-t?`j*hNNTL%ag)8+Lde%#vz znm2-Dj&Hl%q_=( zDN_9Y$&Sx{w3$h*6RnxktIW}HIf$d&H?I)_;aM^5AJ)0oE;T0u_;F)13kW~3jJ?YI zL^w$b>1rO@85uRKR~q{aEcI~$q0^A}x07?9Mh>E$+wSL7y7+_@CUcvt?l#_Hx8N5W z0N!S_pB20XuKE}({cOevhZbjE<|{xF6Fb-C)eqbzzA zBssiDd&d0@ka5sow=2pt0I$v^MTl_$4xzRT%kk5DD!q6iKD4AV)?Mv3-`yXarqL&? zZ%q|CiDV3+?kB3+E{xRq4{rnq)AP`Ij0~F-lPEtHWu=e_;rGD;)SZ&LW_3$z0YSQ* zC`|sKnD09L)ka@KqddW%lHVo%s8j($_vrx(OyF);b7wb! zAPR3^W~Bsr@aD4q!}(d%RY4IyrMM8CT7m%C1=k0lSN)lr>}Rf^X=KyWN8Hl$=NOp#VHNx+*{>3ie0QnkZx_jMt0?|_S1u_sv8wnSeSvT z00+ij25XlrMTU;ld?3Gorjf67{&|)I`k_XB zufFHGeZA$ixi!51{0i@ty5C6jr}6oJ&Efy@M$11fBY)lr{+CASe`koF!qi{GE!Ofc znr1sGYR~d&&U83>@0_3PZ%pBAH*F!6tq^d!u{A{QPu8aq>*`LlywJ5m7sPM9M0xB zH08%;?RFu_>P{1@U&&@vTQ@T!ejMHP(L&#o7kO17OZ+Q~gHzO5aqjrX;!Ks?Z`bOo}6-C zy92ar8p2f;_V$-jrnK*7O+N_EwPG=*kUHMGMS=|<{*mXN`lcm+apJ9>qkLX2oJ_NB zrs$&rPYhIM;W+JEvuSP5ZnCcKNd7{duG`?nK%R!guCh9|2j6+2R%^{&CYyFMC3!1> z5g$6lhZrFfpZt-q!t=7+u>PASmPotN*yjY|q|fXcMp~BHc_QL_`TISm%y-$eDN|xP zH9Kc3p1H8r8IBaY@Y+-7kW9M+Zz0aSw}x#w$>4S`?|yMFSk3sEEoY*M5}uqhQ^B|*4j8@9*CjIM-Jj&XI@Vav zM@&MJw@Er=o=gwkV=Ew59tL?nN~0*h6lviPJ~#JC39*$HtWM@p@9EUZ(8$2co36W?z%I{odgJO!%mr-mSdb?}dT+ z^1S@=W6xin)~tMfsCH#k@3Oz)HEUz0oxk^IzpPYTXj|T`Vne+fy_ugUo#&tZI-+;^ zrid*VQ4EknVRD?cjsS`0=3UwF$?gpwj)l#5$LtYBBg48IMk%0U+JHOMvcrH&Q*Kz!Rjm8> zdA@af&(f!@qk;arN%;HiNw?xz#~{MU0aoU*YbeS}Yx|gNx0u4o^cr`zQ`OzwbB)sOnD)KRYuNK%%LnU?D{NGqC@@6} z!o_17cpF|e;&d~P*ddwFx*tdmx*^{baj4m)b#H#TLCt%Ec>rG}jfhMHw`azXg>j&^;6|c1P2A{Sg~8o6wf@< zt=A8L@3&xrv&akNNtZfia}2cqIiBR0Yd|yi)#>~tKUxrpZ>Xy{O@%y&3t{{2KlaL zUo7>vKW@vtb{~85@2M}SCUehY&E9`LDWK>6u@oPy*-O>GR{LDqOKdAj54aXLD>VFu3{EKoj6QdZ%buq}{kVaHGbth-pisk2Htsau zsA{nL&5%de22CT38DqFmKUoUKly0Co1GDw^zNdC9jO-s-9_wwSX#S1950~?uQ9q^CL}HpFe`|J zM?gp^mi6}p3Y@r+lU=vBOeVPSK93fW>l!1;fO5S|xz9uEE__=paF;?f&=EZxeJUts zk-X6%>Fy&{k#n8U&02>hcRl8w!U~8Y|sdg(`d0S&$Zgk7vP$#3-6x4l05${ znm$BY@ijwVsInPuus~C671b5HY*a5~pCW9ct5V(~;YeT<9eV`6G<(dz6Ij17@|F!# z3|)OKiD%-JfSs8i&pPgbxLs)4n^sNC9*!aS7Zj0hxLjhBH%-OR@ft78UY2l4>ADdDb4zys)g+c)QUyItkZkkli;@&Mh-DZ=ZRi`y zs(Rxp9SyJFk@K6cXyzKc_5R1!$N9C$xbu%=FNwbhM>0Ui`F-i8J<)t7eWbTfeSh(8 zpR}6n$X`ZYFm#C~Xvb|_$XDyh?OAVp?TVgm6i=Uae+6=yP@rU(c~@X?>ZT-DT3uns zU3qOrd3eC;`N)_E59FhB>*3_YV3co)DM)f$!f%eDTT-IQ*;k5^xFLTms-)t$aW9nG zYTKw&l>SbW|8bMQo%0Ay>bKQToAbKM*XFu7F9J4mqIQTv3!sMe3Qci}o;<;(K@M`? z>uLMAsvA#&f9GuR?Mz~!^7@Gt!SA%c*0@hOj<)4>Jd6Sm?^DktFDY1n0KNIkuJB+# zN6^SRgf%6fu3H%Mb(pMLn9os|Hv{6hCrXzg`gCx{;=4)iI^srk;?b5Q-iEV>MKpcV z<+7F^eCCD1#7eQ3_uNC#vvD~;dAx&1rLQhVtGj3n*Jzas*0*^NM=!+!lT0S}2v|G> zG4G@%m76{^bNTY-^rOxZM60)_Eq>%>8qOpIyv?85S9~+rj|y}x9UEhvNuPIrO{~t4 z<)}N)8c{uTma?|+kuWQMLQa%#jNfTy{zd!LBh&QL6W?D{>AJq3F=NA0;h*LXcx!1XY_3)AE#!NgJGfO>L&MeOIV62gmnZl7H`A^E+6)?KhTG5&fvgw>qm1LyM2f z{k5;^_YP|~FqOw{yw+NmXcCD0)}@_0>Tgn^s{UGa_yMWR=U!BJMfD*z7NZv1v5L(a zphSMlFGAApRqRUmB&hv(vLYgU8JoXgfEJcr8^Xa(_KOF~5A=haM~IDy?-`#0UWivo z2u)REGVS$~?BoL|L03jh=AD!WWU+quiM<@&EF#6OGn7i11z|Zd8!XrjQCHuI7R-ur z)uKaeHB+3QOtHIXjG{b~??>{;TVh3 zFdEQ6yVkFnCu%)rKKE=6_Iy{0ElkBG(KVh6U`kBRz{2{%ra(f;mYuFL&&dAgsVKJ8 zu6oHCLPY~7QI$CAJaE^;%2%x~Xf_g{srfB7Qtr9wL`!+Xs#+zT%%VqJ7BmO7t^O~$ zYx}XCqbR;gi5i}%3{R7rO@s<5#{ptJ!|M6mBRPQqgzF1-#c)h2ag91fVL;50uPKl1 zum10x+d300rZ!B$PXT}Xa&c_#$)=OW3`)Xp-_{Y4A}HHvmbmfEhP-5K648UIIXprZ z?wtFYlLW2fwIZ*P|L`y%YCyi4J4iUVSTBdB$fg18=|EpPWrQPl?nrzNl>teyL_!MHpq6 zQ9&(MjFgXc_L4f^3^S68ZPUTjA*M+dazT#6Xn8>~NA6S&;k$H`>z~ihnudE(Pr4Lq z>F+I_?TBY&tSS&@4%mBgUm)Wdq^kOA$%K|qtSx3h;OITqD-2SS0{mMQ>%5BibP>W} zfe$uG;8h?)()-3S-Ne2Ymu zp#sm)?rSAdZ{7eEA1llC(43rYI40rsaSa-Dw)2~Bi;P?f2z+0$L#IUUM-8k8xe2H^ z?F+(;qPDADgNmy~Mn1OlYX-s%>^YYR(=UGW2wsMs{%%yODWd}#$n<&d7-hm*GE-7| z)_YSO1$CD-3vx-a7DMvVSC0&<`@Lv1MWo2$mAYC=1;ug)J=e0pTjxp7lQ{g{WCH20 zC=a4x44#RZh_1$K?{zJ2f!eRSOVy-T(eDev_%r+4##E1&0#ClD1X=Y3*Yt=Ayn%{6 zg!KC<)n%TTJOZ8{YMtJ8(4Yn>1zU4gtXoeQUu+;!oF2qK{N5Q2G9Kj40tg0%OG3A2 zZ@#>>i@Bs2x@AP|(*F{B?DjyIrC;CQV?@cy8*zE>i|* z(iTB#jVbYBE4|6_YJ_Ua#~_Gm-^;Q3fZeC^?L4L=Lqx;35Gm84%iZ-7^3GnR*#2|% z4G&H4&#sN!+_Ux)d2A&39)hnIX3HxIPf=i2`*cK#dtYqx&X;4F+n${MYK3~%`~0v& zdu3o`*IOGiU!Ntk8YSgotf+9dRJhj2o#U$s5l-zagt_eO-lPSP08k3Oy z^sQOIM-3+TL|<}@(yBk0acMPaRG{2;4F)dY!g=`wtSm76>_`%zKk;srl}WK-V1GZl5Guv<%Q%$8E)6VgIb`; zipPJ~Q$D#|IiL+Nl8+v)R?{-9E+z?~0)x3#6UkWS(yM4@lZi?&-INp<+UanNzf5!tGMfaiqAGT&|&(5?hm%Z#p6`v#OJfe-^V45b@{UvXhQM?eP26q zmUNz-|EeXf?xow0aA%6-bDn_U)~0d0cKR zrI_K_oYT%U$eeE8xZu-aR%ZCYQN$E6GK#v5plLxiJ!txhx0loG?D!OqALeEhMR_s} zS@>dy7B}%}avXH<&n-O;bE1_P%Fs(_ZAz@9yzdVY1Bk-!%rR;(hPCkpB-IZy@{SHK zbV4hW$xoS)`qz^jmXpc~lvFY{CSrvRxwj|Zta5Z>%AJyV?kgWiY!^1T>e6lPtaw*mFmf)TMR)DX)2P$=JLK$%lCf@op}KLN0=L0Y}xQpANl& zLkPhNG;NJ;o2AUh=mX=g{uodYB@aiq8Yg@@_~-|b#q?L|@8z98yAL1b#u<>5cwD=Z zmY;9|#W?=n89mvmpK|^Y5*f8y>BVHR3+O$w7|GoRTHvyR+y6&3N&u$;o`>^N{T0v* z;PaFHA89Iy`+tz8IRCq({r~tTt$7X2D!r=bSH|%nppJ$ba%+g+&3dWznU}>)$H2E~ zHrFrjnJ0tbkAnaeIxSAq39aTr%iog%6z9EdC3>Q%y%aqK=KFA@gE*NoG`q4nqH;LP zuM~37Npn96k~~6IDp*IJ_hU>nzKUIGm7}_Z(z`&hCLk>%JhyOUC^k*7C=P+gUR$(f z3D#yC^$f@%9K^_{D@}36pP1fjaV->ky>!#6r+Dt?^bl%=J+<8B_D!6Z@q7^E{esuX zF_<<#`R$u_9VS`O97|q>?veUpStpf-&%|$^k%z4{_-+!xQ$nnS#7L|55X@C^JPD}h z-=G|IqDpWCy`ja`oH)vZ;S-|Oh-++W%6^6c{gF{DL=Gdx8n=267jR|tzTMDSURLejG( zs=ObDuB`&<9c;8w8iHT22zaaVuI;UqS&{tj&8-eh&-S!m!M27Qb*g4|B@_AL7r^+0GdG`oa!?D#GVll|OW>J0pCds=i_hHPy=txul&_TAVIFJul0 zS$>Tj-nt2j)2!%YEl@mgi-}lm3=BXRgcEc`Ovz27pzMh`xn>$1u?3olx|{;Jn&ZdX zeV(bk&HVwPn%&HKRk$3zmCxLhIXbRWC^yd;rF>8nGFheJn&^oe{8g((&7nJ^X_JF6 z&>qOkK<5a|-8<*f;7(^|>RvC?V0Ay5gOuv8pIckDrFp68ahOxruySFA_!UFyKHIH` zKR>l~bFNx7zF!;{yU^^U&_kwPmC*mQhL+%rM9FoYT26idJX@Y=;whi@$ZrC)#t> z4tLSu+G-a1lFi$p$#Qz4CCqA6hdR!FV9M}>!#$|rJCp!l#wcOZW6NsH>)u+;y@bH~ zuzIKie%^<&{OUU{`ea z0oW3{h(O_zS)NqmQN-Tvv9}p3$(=e&>J?T}EbDW#oD&x=!gYGT%45S+snQ|)p3w_A zmE~4D7gj=~%2Ci@uDccy{imrMQGRC~9>IpU^6?3fr$_rV(9Z}q-|M_-Acjdzi zvCR*VmU-FAr|~cZ46N)4`*>`hHzSz)Aw%Ic$V$i_mbynP{AC+pe3cKetl#5!_gj4> z_+SWwjPHX#g}$m-`hWrmNxAK#lwm|vpHRN>9Z{ZRm9K8)#rqGp__~0r;LQVZIhLZD`FI*o8oAygrqYS6KAYgCW^Qmw+oNjg zk?KZr)mUM(C*bft+^Lt<47uUR3YhaPsxI-m^JGq~hx4SLH4rgV2eV@7_OeN*rA_LUDUVwodrJOeB324(9>6K=hmhlcd32|iuY4o|3A zirDjg@0l7vpY!S?U9$dKrv&X<-$XZ&u!9wRSf(p1mL#03-#n^sx??R&8oSjIdvk^>icwUhj7y8D0{g%mB!U@C4c#r z+%k8`t}`2(3^r_!RrboeS9LfqE0%a+!L;_WrQK^B1KzRJV|fz}p1mFBaSALts}AF- z;^j#XneJ&C6Yyb1v?)yeSD#GctPkfj@}#dR$>kdmsp&0$6#?C}dghsD+I^F5xE@cZ z@^)2IBDQ_;ER6UCdiK!9d@X)6G@_P#ty;+f&695bS~ea207NDklz2Fmt0#*<=(Ef4 zNpjmYKl;wzV`z*}Lyij)&AmzDuOa#j?<};9gvX}(gns`)rLCyV8qu5QrOe^i4k=wU zLw`AEgx%|p{q|fo#}bb^M^@YO4(qSrTqy&HD%|EZqDdfqfDd-&J%20J`Ylmv3|E;< z-E-%v(PB=ovKiw}T49bG^SK_Q#q%3#O>->_2qsez=l|3CFF3xY#chFPY5=eg$VaQ14r+h9}Y-y_H z7}v(g({DZ`PJJpe%cw9N+5TdF)5m>mFR^M12|Hgf42Aqi1B_-kkx4NKE$A}qV@RaO zCHx+$bvo+3we4bnyr$Gp`z9pUo$EbhJZsV0JYY6G3MqZiD68R54F%{{+GXtn&BtHn!woZ@3pNB;F@{Je665$({#2DkY~m_yghe$Xy}U>T4Jn+e zKIFw2H$>Qk7rD{~>|#)14Q6o_3}@}LUq#_it@w|VahZuPnGrL}qrs_OW zw^-w0|9TQuNarL;sgO7Dk#&Z$Z@m1#E!X)lsA0a6r1IOMWHMDgSu-IUH$rnXdI4hcqS4G@dk10xsk6|QpUfU>v1VfhZ>HPwmjvOvDzkIef8>@w8`9O>#^a3!Vzi} z4K->#p}c#10i85R-CT#VTtsri4*>~e3^HrZ+G`rfH_25fH%MR)Q1nmB3I z%Jaiykwm8Msv05KS@Gvi4JW0v(`XcTKml|)a6&mQN;FYm6p(g0zZ_)Kv0r+^%FIY@ z`s_<;)RlKEN~U`mO-J?F+XGZVawn5xsBTYkui&sxIf>BNK%X&?F+?>2Hxpmz=aOxl zdH8-rqa=l+r)Jk^@~_2fyE0|Sk~d$s3naxd4R#0GY9Ey!i|VwCk00K=ffMk}2apVb zwrG3p(zrq+Gp&)moM}jl(yH6rq5~_~N9p3RlEkH+8#lp4amw0d>-hKy(DCux zvT9XTv)S^Y(l0aM!;IkP3*JI$U^y>8qOzQkVQ9zScUGzU$0N&!u77jQ>x%km+k`xO~VznvDAYi6#S{UCDh@`Y!NAm&P-0 zMfIU1E@mdKwr@(mm*Iu|{ZEntPV;w{IxZ6L&*>{#pHYAQxp}PpU!ErPW;0TG|8&8$ zVBvhnR0z)8;=L8@B|)zo?E6!%Xd-cA;o|(#flASD_j0wotZNw!5f>`JlTZWluN&Ru z@aeln+82wWbGw^~PJCHTqvvJPBQ4PA{=!E~R9E(lzYTG`rTC`Dv2kIHXYO8uYwC_S z(T5#`pM#pj?JgXkX{9Q>FqvDBe$&^`5a5aokIyKghg9I;+YlmPnEXa?kwR~D9nd>z z+1sf?!})<#`=2s`LQG}^6;tb+kfkO4shP<1Q=3A`pJ$)Jen_wApx_fnKOjdnDrd+r zQo34RX!1n4El6J7e_cGiZ6E*ShqS$MaPi+!Y@IIMtL;vyQy6S777akiL&-pM24&?0 z(yAb-=2Lvp;FHQ0hxM~AlKUIKF!uXXrU$zZs|}Ds+M+dn)Zn^RN3M%k1Z{=GA0+z4 zNW}gOEm}TucO>qn?5yB{Q}lzb8;u4&>1xLQi~Qv>Fovd$*_>W+VTrW7z}OF=As%Cn z7cXB!LC+owz_1=GQ>H`q?%tTQ9aX`D+Jl>>1*BC8bFw_mJh=G_0qgtoG(gVq9J40J z(Kny>&Iuc6j+T`eE&TJ;6?bDXkvC5aa@@5BY8&2#^24Grn-``-RkIg>m_+JYqKmqI z%hKgGyfYmgIkuaw#u^)FU}xcz6M}V_b4RTN5*uP|fqpy)AiCe$%lfu|vaO05TLs-p zR^y@q15+xqw*xh{9yRPF5ofzKK$zZikW|0}wX+5}X3WaQruv@rSrt`%P6-y15vvoI zH>~~2R%?|KrDvr-A2o`aJE3q)hY$BrM1Q(ncW%fk@WVNj53zIA^L9{8mtdXqhm5)4 zc0t`E?$JA`LDKR?{DU)Ls)u~AwX;J^OSKTB)IDHK)j5O-Z=(;74;JO&74;-`&%GTE zwFfz`!_c$XArtvKSM$>LmM2vW{)CCm=vTb0sAGS-ovf2U6S+=NCcwg$VjxaBu%VAX zrDFHs{CoGFZyr zBV*m)(^2gZb5gw~R&X?4&jcIE`@Kapa)1G>B#Q>#k$^HG_x&WvNt>FcaeflCMsDfb znKSRqGWCKdppRQxeRC_3iTx+^5XV4p3DnTn`tID9q(B z*BatA*eq-Kjt>^OJFMLoF<$WkJ+9YI4c?xd>ZtS7>d|@tys7r?=3j-N4v|sSuGy1; z9tmsPp-l^CpKF95+nni5i$7{lDT^=@?&Je4HfpgGCPv3^B%6+e{f(ulYl1M<>-Ohm z`KE(rZPqd?ZnIIV+kuTV;3M(siQzwOqj|d8t-Sc;FJEINRj3Vh@XlKX?8GT%CAYcfs(qG}!LGEUIg zfi~Gx3%=>f11jS{pG2ioFAdJ|f~~3rt;~d>gND}EP;BCht5M5(Wc*(s9iKQ!n=O&Z z!mSVc#O7%FbI+g74kywd=A{t^%X`7~12eZy?3W*3y&PEu&w=YV#tXbRel&O&x}400 z#^maaYJ)QwUKA0%h&FqQPkOCkq9ZhzHq5S`CZ}6|vIBrMv>i})O z`cjt0#n6C-DW9kv^Qr!EG!n)@r|$maYnJcBQ{MgQAmCK%UZBNq{&hV=^|;720LcH` zq!W0(N&fLff=-`NzPJ9M`|B*%JCOc={TITJ7e)^ZONQ*&4%)atW(Y#rBeb7O@aK%7 zST;fHq1YnVgl&8hh9P~OEhfG{Unc73uuS-BNC9`Y-4L8B9%{7_9?n-K z?(iDA^KL$`L97u+s#%$VHZb{+u3V$V{rp;u$F}FRXhTSpo;;LKJpcF$x7rqu?b>Y@gK_xA^mBWo%tSV;NVKT1IZ+m+dm& zgU8f!{lx*Rl&KT(Iz+8EoGbTl?%H{pdYU|Dt#@qLRLC}SvSy!L&q-ATpwb-BDS?_z@aBL;Y zW4*oPC|Y+~u>Yga9{?dM&<$HhI86bckm@?^TL#E>H~J$&zr`*_GmT^3E!Vw&C1a2ziO zpN3Ccc)ANV9C$YRm0L9UUqPX1h*+?ka5~oKe56nPc)HIA)BzTNMcXZ%^;YKzsFvi} zciA>obInHe(MrgyF9b&q&;{zJF0XHZh3p4bjXS!$oV?)~bHc?c4uMfKZT(L9KfAAH z9MIWXdN-3rhd1?irFwDQdxO|*&rW*)_}rabG1qSdD;FHL$u^k=B%6o@C6{qWu=6KA zIlABs{CUVXEo?E+RJi5|s=@c>@W^B`vpmZZ}1kTB3K-xN!%ws5R}~VMayIJ&b=^=Neca5@j@Mm0DmdarxNKagD{#Y|T^j;6i-tm4!8CJ?k+tH0J@q-^XnU*tSi^LZlDk(bu-+Moas|14_mm(k*Dbq&fe zdHfSRsw-u1a3CaVnTI%79B&c?cRTiF6VyqNY^G69Q71Z>j4wNDVuyh!j*aD;0oR9W&(w5-28Dlz0ntU4kVo+*ybM8A{pU>A4%gYMCZIE-1a(*&0VBKREk8ZkWw60a0xR58IneXZU_6p><-)gz(aE(l|Hr6R@m)zGh z_RPOmJCwLWdTwB5s#+^*N{OU;oF*Bn<$Yvg^+R`%zk~+Cb!Hff_aiv{P*ri|xS;5? z#lG#XU>3w2ZF!P@w1Hces%>0G_%5j;b7UYnWOh-ie6zdsR4R9Cmm!y(y(`tc+S5C9 zAkYI5r7X-g5!mFdKB|^1TBOuf(f^X^EF?i4O^Orm6Z5lJsc7rrXsh&Y-Nr8@EZM|&${m1(>4DTGO zijTq&&X2F#CacePSvv{T2Tlz*BKUnK8t9)0I*!v-I9B^#`g>qSGpiKoo-T@RkWVP` zd)Smp$2pF z7HPO-r@2$r;Ic2KKC)XMj?jP4Ah~Ggc4WmZfVsuOW4tW(Ua{eu6V^D5DW?;6XKj|# zxO8Atyu9gWP-w;+Cq?^>lwki9b1(0FBdRtH$j||?Dwnt3f})#@|0?%bIw^SY{A0LQ z{2Y%DUEz*vu@bn+7^9ibC_(&5QznnZ_`Nb}9mAwnM)I_Be?k^G~E)d&4!EI#~-sot3t{uP@6 zt&O7?hATg42~ibx8Tf+azSSzS7M0@7?IvFvxRyk>ALeG3~ zQ|S#)RB^yN%H=!9(*?~$4FbzeJPkA2Dc^mYB?@^B>|T#+A_ZV0Y(DW7CRV=*;-h63fVq=ll4%LADNGoHYYC9BQ8>aPo=&{7%SYqXBI2!TsVgcU-}Lr zZpxTtCQVm#e|ZTAcGI=3;_0-yc>Gn~eT&oH$5rfIV_&O`B^9JTiv z`x-}QE(`AT4Y4=%qB8-GGlYVtfU`7>Z{GX0ZTl%h2;WUgJ-k4Q87(5T(@JEl9IM89kpLl6aA-E*-!t%8q{ z^QY9~D98Ep#-PbB_we${3m|sr=0CGh-fB$3f|%DSK19G{r}=X8n(eZ!AVifBOl{@$ zHHi~dzIxH8Hg_NvceZT(d@tNC-%c4fFCKt!tHI?>%&< z0@rXk6)Sm*Zaqjm|5;n!8XSt%XbhX_IzLtg2%145)Zc5(IHh=Cv>zr%q$_CL1m+!s z`usK*>mrH=*Fz;t`q$Qd#+u0{zgn-S5y}RBvzCX)(Ay8uAX#w_e06^IJqoOU5TRI! zNJ%O)o$@9s^wbBm+z1JV znOOC4uA5j*2E>0-$GojONEcc7WF!$Bs?<39Y)A=kp!bn;U5|}SQ#}uTw+dy2a5NXD zEWRAJ6g1w~p%XshPH$qgE@|0IZ1lY|@%G(XAKpSU2B;4w@ahtU9=Mh%8m2m6X|rcF9d|z@l+U%dR}(BkO_GJsXjdeywZaH#`&5VtzO!lPj;3v zzD{b5=83i!)0}j{(3~jUR9m`UA;0Z2M@bXkye__)3>u!&O*%f91EcSGQ`BL86+N^w zF50__|0OUd@AXqe6*el46b@AEs${TJ6*1=Q!-kT|X+0C!mQmXQdsip?s zH>G8v)+>M;?4A=kpzFWH-0@cWvKh5J{iSn!>)AUGm(GMef&%E0OxZlNYL9V zp=>&Yy7YRdw@dR69ks5pB8x00P=hZu8w{Lqv{Urz!o9hz(GU84Zd`ngEE$R4?Zq4Iz>@$43MM`>3L#m01qR;G$DL~+|jgrb4uK}ap z=b8K^U%kJ2ui5RK_X>Ke&ck-n@TJ@BH!4dv%ML|nifNT3ybgM-IQskR#WVAq^bTMF}Q&TZeurntY=WY;dCf}5BpNXkcb-u?2h(?Uxo z(4M}p4IMQvm=ohtI^VQw-C17&Q{PAi6{j!zWpS0ua@{z%HrV8=x)~9*oPf=prdN}< zY5Ka=`!l;(cV^{zxrDmdVEjs~Nx6;WsZ22#_I>zzG`$26F-aEPy{XH{{l*=jgMGxU zT3@u{HIyF;)xuLh-1vgpt< z^*?$v3kQuJOk7i2v)z3aA}Ek`nAxlne4$h>h4Y^? zhEQO;ixp|V^Dj30N5LD4=fArwiV~xS=3|9zhjjj~H{o>>%7Qk@y}j|Ma2hRzpXVDg zFZ$EI2$OmKT(Ogr@;mvhn{1=Cun?tg9CdZ5@1)>SHuSNUXM;bIgD(4)91^N~RjXn3 zIM8d};Un%2V&dWxnOchqwM>s@9AoxfIXJBjNW7&%Wy}qsTn|!(Wubt;d(l)D#L=aF z%)I_U*8+XruB#EjNX_p^1UFzI%d%}P3$D??D8xH1*BGg2^1f%?WrAt4Q{*bt76msg z*GT_`w%NkFVA_>&VG7k;Dof8pb6Y4J$nq0asa#E1pJl&@^YNBA z!q2cQic4Rt{0u2g=UA;L#J%w_LY9cb$U6>%e0rc1dVN@YM*QekvF$IRdq%{^24TO1 z2=$4DffT|J9x%3#gH4fVZTRyzra;*DQy;&!Jq>uPnQT zT$*u}@Xa|!#+}f!BiE3J9_=g@2DwK3knE=)PuFsgvmP`xJHKWExv~PT;XD-vrah3Q z0;gIj;j*&byRE6hc-s-7mD`KLokGl9Xqirel9@lkF9Nl^Q? z`x>n{I9VV-%IN|nsZyBn+aGUh8i#o;TdI*5uqt^58VrXsvRucb(2>%J<-mjkHP1!s z?D>e~6L#aw3R=Z`X6ToX%~6c5+yc6G{Jr@c?E{q~P^S|R7;BL9k>Q2(1W+Vge+{|z zc@s{eZV)l!$FOZl- z*peNZ>VQ{TL?y=d4P!WGyvGgkFerAK!Kczr+bs^>ZEuo8j*w+b=t(VK*B~Lk$^O+! z$lv!lvNKqiBM$M7jhTe(t5)0_Aj$KR8whzlSM9{X!OMa^64U5PD7!l`Yz0hnp}(N< zu~xxjA`H^4kjG9P9UH^Nq&QC1OIbv~7WNBi z%I7-CtL11PUroM*AdWY=`_ub|=WpQKSwG#D@=d-ti#G|z`43LyLk;o&-2k+vbh~| zRz8?%@Z5epebAoX1mDA_%KxMB#=S$(5+2)o*RqMM9MY`Y8A3*>tGuvY+z5P4=HSK==T^@or95b#nJ9`e8rKuJ`KWb&}F5X(B2QM zRjIyu(IS90=X+?#f1$E!Hh)r7LCvxHIDgnqm#v*Blc4zk3=>D1e(ihGmI1`6rH@k@ zTw2~|E#BPCysU*A#Daztm=$qr;Ih|b;y%(oD3GFnYrQhg<&=sUSu4@cVFsyHXRAL# zxP_WuVLPAFnv!-EZBx~c!nWlAtsEOKDzF%%UN1Dx**Z5aaa20Os`vyiOU?HxKfG}r za3}HBDqu0`YZQSa#*pcoTzUj?z1HleoY3+1H>Kk!E=n@kLaE&2xN$sXxE^zI&P`B7 znvh#h5-uT!0TCeB@xLwJ9=Mg}@Q5tz3rb?lrLg2admD% zT%Ay?$x5|aX{&aBx)-R=#Q|7C2!)LbSeXoPWktRbxP2ROoA(e_g^ZynX#W0JAGpB- zDx?pmg0wwtx`8l6QRuz?JGWIUD)6Er7iHd4xN1_BgIB`nE4aa*RiY<2fTeo`I^nr* z+sz0zU5$I5Qp+_(7Fd0Wi2KN7pjwpsNO$1?vyr21oLRJ`Bm8=VqiCl;%SoianpL?J zA)LClzzci&FqGroy1R2cX;m6tURqfXD%m)b?9gIl;{+H?;lF@|#_|!|e|q_ahKJz$O|$Dl;r{{5EkP4lT8hK=mV+}K>zL$QMf-)_fG`qa9{#mMib3 zl1`!4I8`^vmkQ3CV8HoXTmVmvp{nsek~B3%))N0q@=C^0;qrF^+_p^3{;vIn^j&e> z>Vw@AqyHc+Kr%Z8AdYk||A6SH`aJ~n^!u=BVBRILsN{cwDBuQ8dP8`O3S|BOXlWvV zwP&3*sSI0fS53s}yaDiwAeBG9AmhrL{CmGwP%O^hO73MmfQ7=GL}^ZwQ|8KQ-aYfU#-}wMAS$6sexO zYorKol-_8|Pq~U7wlyxP{}Ri*Y-;+yi1}{)b|*iSZGiNl^Jx^ ze@AN8%lFl3WEY zyfa0Bc(%Ll0Gu-~>wqoQO=j%V6I`5^I#tq$>BZ3E4wo&WOget1xe*Go?GFh+a?3kP-HfoV^k{q7uvN;Zp&1lQfFaM%&`{=hY>PVtb3ub~x%D?t)Uyhvcg5*N3J3Ig(?y<<+o*`G7aO5@7=+x{RlP$`< zaKb08d6W!!B2%I9^7RrGi#v;EhrCNhQ*C93$A6&s?mtjmy5q+keI;#%aIcthe-g~= z_4V$1!jg@>3St?nO0V3eI9DTCdi;_;F2PeEowq66!*E(nQB8AbH#Je~co(P@2Q7Yv zUuT_}=wCzibuG=kS2}vW9zt$T^~i(LuJ;?bm^xx307@7T@QDZD_1sJjU((jgu;Rp) zXvRNwxnfAV8GP2vT(rbm8gk?HjvTDC(4xlnHx%sINS%8XsN6?*La?5nUmG4)=LHc#~mZjZHqG^;?paOM=j$uu?8 zt;{nw$n0+sff(H&A6kZ=x3B24r1$u3{$4wco?I-nl;1Ewq zul$s54~Z#U~uE{n`MsVD1Mg3d#R_(7`R^D2gan-4f!BBy!-!n*k@3YZtb z4;i+N%UQbn)`Fd5{6JhU;g65_u_J2l8Uf6?;3@-Cr!a)KKjkrppG(!nZkz1TY$|AmBIoB(;WI~{0HQ%Bt%f0Y8x z0K7S&gGsFMqtYn~@u=(q&P4vWo(Z2Q$`+1S1XkCfJqId3W6jXx?xrt%L%&(%3quT*5eK66hy@lYCO>26tez9+bxZ^df$rRYFe2Ll-$e# z2=FkQ+_Q%fR*zwR>=fA=4;0KYG71Gzx(ZOvd)craW;r^b*|57*NX#o&o>ddI>TwhL=PHt~mSEI$6jYz6G!)+(m2WP?xkn2%l+ znP5ypb*gt^xa)%P{|B4kCRzL@cIBDah#3k)%B zxFZf$U?3RtO619h8xV!Wn1s}qFQz#M5d>Cbq!BLE1n(^3*bVF0`>*wI;w&Rmmia-1 z8ev;BA&;X)C*=6JyY7LB-x6^YIT6bHmL{@MEQ_)wubhZFB_3FFsdpzyW8$QTeG+tO z9q>K@bBjdx17E-2E4a)1>%i)pi^h5 z4)dO@g=*U;3#M{N_j$SK3ZE9L)^N4Wmozn;py(B$2kbV4Oz`Cmce=#j&2nLF^wzs8 zj%ucF+Z6KnlPm74y^5O|6KBY;V0%btZ&_VPsdj^Ice>GYQv(LI5Si4f9HdiE++n< zG)4*ix2YS$P6^)^HV%qY*HHL6EqP{^n#aYQ(CJ@|L{lERbxvB?Qaf4WYtn?*uHP4G zF|6SMc^ue}dbVnU=Zf81IpS~p?U}Xt;;Pd&sR_WDuuy?>b^&<;j~Vk=thEK78--n8 zF0q;6zN}S@kE*OfvwDfEm&_Jv)9G72mtA%=uHCdgL1(#=+E<(V6QiciRLGo~XLR1C z;7vDgyqi*PZu_dwi%hE#W-DxL&X7&b7_Q*eE^ZvA}7t5q4Z!9Nm z5`8?gc}gV1F>m+Cm~{b))0gJ#^H`cwF1vQupJYj`>(QyWNyi`C@Ra|68}Uxss<>tgJn*G4m$R`SrQF}A(zruHdA};S>0U~`5>i*P>E1w5rg=c#7u3}^F{9UZHV zC!Os3rFXn^-z`Q4Wl*o_p>f*Gu1=1nZw;-Mo#Z%jM8~r^?QZJKSod>Y3q&g?tUJG; z`g-~WBh57PNjI-vU*&SeNO&#dy|wH7SI^#X)xZqc(E%2#m(E%m9!xuHXy>z3c~ZWo9&En^XTS#h_@{DNkMZK+ET+({2hSFH10< z_TZS`uI=oan;Ck<-6L~WFD|`%H}lGldt1D9r{{<6zxG)qdw1l+)POAqJAlpc1Xan) zYeY4b%cB(~9b^}FOk6sNYx3#CjDcLIzN`Rsnbrz*sHa}o`qRMCCi-IHmuZ2MyW@G! z@U>qpO9ob!-OqBqJV|V_xc~B_(Zv~3C-S9C-PmfRf&1Y+z0@A1q;#n`?+wenvV}88 zUOsJEDBEqd)C;*vD;JgT-F8_+)$%T=p&E6KU%2J)9C<;zzM89d%BBYUUgH|exvzJ-+*#mrQL32dKn7^65jdA{jorotROfi61MAJ2nGaqr z^J8^ZvS54qHFycAcA0zvRJ&}q+k7&s&%NR=mWrJnlsf1=O>la4_8VRv?aw}jNL2Rb4_ z!}#A^%4+|;`+of^bgVvct6Odgv{JSG^JqPy^93Bis*n051766+QFOu_VlcxNX6RyV l_}Na>-3S}GH?Z2}zrE4hEym}M92EkEg{P~Z%Q~loCIBHTMF9W+ literal 13066 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 From ac54067611e8ddd33183a6516e1150abc1a054c9 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Tue, 2 May 2023 17:58:24 +0000 Subject: [PATCH 21/39] Update generated README --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d244307..e1d408d 100644 --- a/README.md +++ b/README.md @@ -77,11 +77,10 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. For the Key-Value secrets engine, the certificates are stored as an entry with 3 fields. +1. For the Key-Value secrets engine, the certificates are stored as an entry with 2 fields. - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key -- `KEY_SECRET` - The certificate private key password ## Extension Configuration @@ -122,6 +121,7 @@ This integration was built on the .NET Core 3.1 target framework and are compati - **MountPoint** - type: *string* - **VaultServerUrl** - type: *string*, *required* - **VaultToken** - type: *secret*, *required* + - **SubfolderInventory** - type: *bool* (By default, this is set to false. Not a required field) ![](images/store_type_fields.png) @@ -145,6 +145,7 @@ In Keyfactor Command create a new Certificate Store that resembles the one below - If left blank, will default to "kv-v2". - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance +- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. ### For the Keyfactor and PKI plugins From 27cd1dccf47e42873abed13946a7c92db665d48c Mon Sep 17 00:00:00 2001 From: Rex Wheeler Date: Tue, 2 May 2023 11:04:10 -0700 Subject: [PATCH 22/39] Update readme to call out cert store limits --- readme_source.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme_source.md b/readme_source.md index dfee350..3cf73f9 100644 --- a/readme_source.md +++ b/readme_source.md @@ -104,7 +104,7 @@ In Keyfactor Command create a new Certificate Store that resembles the one below - If left blank, will default to "kv-v2". - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance -- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. +- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. **Note** that there is a limit on the number of certificates that can be in a certificate store. In certain environments enabling Subfolder Inventory may exceed this limit and cause inventory job failure. Inventory job results are currently submitted to the Command platform as a single HTTP POST. There is not a specific limit on the number of certificates in a store, rather the limit is based on the size of the actual certificates and the HTTP POST size limit configured on the Command web server. ### For the Keyfactor and PKI plugins @@ -198,4 +198,4 @@ At this point you should be able to enroll a certificate and store it in Vault u ## Notes / Future Enhancements -- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). \ No newline at end of file +- For the Key-Value stores we operate on a single version of the Key Value secret (no versioning capabilities through the Orchesterator Extension / Keyfactor). From a0962e2eaf5049ec4a0f23844c9e7aad3450d31e Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Tue, 2 May 2023 18:04:43 +0000 Subject: [PATCH 23/39] Update generated README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e1d408d..7af90b0 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ In Keyfactor Command create a new Certificate Store that resembles the one below - If left blank, will default to "kv-v2". - **Vault Token** - This is the access token that will be used by the orchestrator for requests to Vault. - **Vault Server Url** - the full url and port of the Vault server instance -- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. +- **Subfolder Inventory** - Set to 'True' if it is a requirement to inventory secrets at the subfolder/component level. The default, 'False' will inventory secrets stored at the root of the "Store Path", but will not look at secrets in subfolders. **Note** that there is a limit on the number of certificates that can be in a certificate store. In certain environments enabling Subfolder Inventory may exceed this limit and cause inventory job failure. Inventory job results are currently submitted to the Command platform as a single HTTP POST. There is not a specific limit on the number of certificates in a store, rather the limit is based on the size of the actual certificates and the HTTP POST size limit configured on the Command web server. ### For the Keyfactor and PKI plugins From 8e8d24864126406600d6c677f946f3f267e99d01 Mon Sep 17 00:00:00 2001 From: afolsom-kf <105309476+afolsom-kf@users.noreply.github.com> Date: Mon, 8 May 2023 15:12:38 -0600 Subject: [PATCH 24/39] Adding InputValidation for KeyValue secrets Ran into errors when a storePath contained secrets that were not in the correct format. If the secret did not contain the keys PUBLIC_KEY, and PRIVATE_KEY inventory jobs would stop and discontinue. (At the point it met the "unexpected" secret) Code implemented here will ignore secrets that do not include the correct keys in the "secret". Added a note in regards to this to the documentation. --- .../HcvKeyValueClient.cs | 23 +++++++++++++++++-- readme_source.md | 2 ++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 75d8b61..131f46d 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -118,8 +118,27 @@ public async Task GetCertificate(string key) try { - string publicKey = certData["PUBLIC_KEY"]?.ToString() ?? null; - bool hasPrivateKey = certData["PRIVATE_KEY"] != null; + string publicKey; + bool hasPrivateKey; + + //Validates if the "PUBLIC_KEY" and "PRIVATE_KEY" keys exist in certData + if (certData.TryGetValue("PUBLIC_KEY", out object publicKeyObj)) + { + publicKey = publicKeyObj?.ToString(); + } + else + { + publicKey = null; + } + + if (certData.TryGetValue("PRIVATE_KEY", out object privateKeyObj)) + { + hasPrivateKey = true; + } + else + { + hasPrivateKey = false; + } var certs = new List() { publicKey }; diff --git a/readme_source.md b/readme_source.md index 3cf73f9..ecb8513 100644 --- a/readme_source.md +++ b/readme_source.md @@ -41,6 +41,8 @@ This integration was built on the .NET Core 3.1 target framework and are compati - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key +**Note**: Key/Value secrets that do not include these keys (PUBLIC_KEY, and PRIVATE_KEY), will be ignored during inventory scans. + ## Extension Configuration ### On the Orchestrator Agent Machine From b474f6d3160e7eb94ac32cd132b4598f08efa9c6 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Mon, 15 May 2023 16:57:15 +0000 Subject: [PATCH 25/39] Update generated README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7af90b0..04ca4a6 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,8 @@ This integration was built on the .NET Core 3.1 target framework and are compati - `PUBLIC_KEY` - The certificate public key - `PRIVATE_KEY` - The certificate private key +**Note**: Key/Value secrets that do not include these keys (PUBLIC_KEY, and PRIVATE_KEY), will be ignored during inventory scans. + ## Extension Configuration ### On the Orchestrator Agent Machine From 535a3028e5fcf3bf99a5a06ce3f5dc2b389aed48 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Thu, 18 May 2023 15:08:04 -0400 Subject: [PATCH 26/39] updated screenshot to reflect token as a secret. --- images/store_type_fields.png | Bin 19387 -> 15612 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/store_type_fields.png b/images/store_type_fields.png index d8c51ff6551331f40a732bd5b64cae0b6ebdde4e..2944946448a4a14da30ca90d640518b308446493 100644 GIT binary patch literal 15612 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 From df4fd98694886a02d29aa96c57f1a91af60917e3 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Wed, 31 May 2023 13:38:03 -0400 Subject: [PATCH 27/39] including certificate chain when enrolling via platform. --- .../HcvKeyValueClient.cs | 53 +++++++++++++------ readme_source.md | 3 +- 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 131f46d..6d175be 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -39,7 +39,7 @@ public class HcvKeyValueClient : IHashiClient //private VaultClientSettings clientSettings { get; set; } - public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, string storePath,bool SubfolderInventory = false) + public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, string storePath, bool SubfolderInventory = false) { // Initialize one of the several auth methods. IAuthMethodInfo authMethod = new TokenAuthMethodInfo(vaultToken); @@ -54,7 +54,7 @@ public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, public async Task> ListComponentPathsAsync(string storagePath) { VaultClient.V1.Auth.ResetVaultToken(); - List componentPaths = new List {}; + List componentPaths = new List { }; try { Secret listInfo = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(storagePath, _mountPoint)); @@ -89,7 +89,7 @@ public async Task GetCertificate(string key) var relativePath = fullPath.Substring(_storePath.Length); try { - + try { @@ -215,13 +215,12 @@ public async Task PutCertificate(string certName, string contents, string pfxPas alias = p.Aliases.Cast().SingleOrDefault(a => p.IsKeyEntry(a)); logger.LogTrace($"Alias = {alias}"); var publicKey = p.GetCertificate(alias).Certificate.GetPublicKey(); + logger.LogTrace($"publicKey = {publicKey}"); var KeyEntry = p.GetKey(alias); - // logger.LogTrace($"KeyEntry = {KeyEntry}"); if (KeyEntry == null) throw new Exception("Unable to retrieve private key"); var privateKey = KeyEntry.Key; - // logger.LogTrace($"privateKey = {privateKey}"); var keyPair = new AsymmetricCipherKeyPair(publicKey, privateKey); pemWriter.WriteObject(keyPair.Private); @@ -235,12 +234,36 @@ public async Task PutCertificate(string certName, string contents, string pfxPas logger.LogTrace("Finished Extracting Private Key..."); } } - var pubCertPem = Pemify(Convert.ToBase64String(p.GetCertificate(alias).Certificate.GetEncoded())); + + var pubCert = p.GetCertificate(alias).Certificate.GetEncoded(); + var pubCertPem = Pemify(Convert.ToBase64String(pubCert)); + + // add the certs in the chain + + var pemChain = new List(); + var chain = p.GetCertificateChain(alias).ToList(); + + chain.ForEach(c => + { + var cert = c.Certificate.GetEncoded(); + var encoded = Pemify(Convert.ToBase64String(cert)); + pemChain.Add(encoded); + }); try { certDict.Add("PRIVATE_KEY", privateKeyString); certDict.Add("PUBLIC_KEY", pubCertPem); + + var i = 1; + pemChain.ForEach(pc => + { + if (pc != pubCertPem) + { + certDict.Add($"PUBLIC_KEY_{i}", pc); + i++; + } + }); } catch (Exception ex) { @@ -248,7 +271,7 @@ public async Task PutCertificate(string certName, string contents, string pfxPas throw; } try - { + { var fullPath = _storePath + certName; if (_mountPoint == null) @@ -297,8 +320,8 @@ public async Task> GetCertificates() VaultClient.V1.Auth.ResetVaultToken(); _storePath = _storePath.TrimStart('/'); List subPaths = new List(); - //Grabs the list of subpaths to get certificates from, if SubFolder Inventory is turned on. - //Otherwise just define the single path _storePath + //Grabs the list of subpaths to get certificates from, if SubFolder Inventory is turned on. + //Otherwise just define the single path _storePath if (_subfolderInventory == true) { subPaths = (await ListComponentPathsAsync(_storePath)); @@ -325,12 +348,12 @@ public async Task> GetCertificates() { certNames = (await VaultClient.V1.Secrets.KeyValue.V2.ReadSecretPathsAsync(path, mountPoint: _mountPoint)).Data.Keys.ToList(); } - - certNames.ForEach(k => - { - var cert = GetCertificate($"{relative_path}{k}").Result; - if (cert != null) certs.Add(cert); - }); + + certNames.ForEach(k => + { + var cert = GetCertificate($"{relative_path}{k}").Result; + if (cert != null) certs.Add(cert); + }); } catch (Exception ex) { diff --git a/readme_source.md b/readme_source.md index ecb8513..b211ceb 100644 --- a/readme_source.md +++ b/readme_source.md @@ -36,9 +36,10 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. For the Key-Value secrets engine, the certificates are stored as an entry with 2 fields. +1. For the Key-Value secrets engine, the certificates are stored as an entry with these fields. - `PUBLIC_KEY` - The certificate public key +- `PUBLIC_KEY_` - The nth certificate in the chain - `PRIVATE_KEY` - The certificate private key **Note**: Key/Value secrets that do not include these keys (PUBLIC_KEY, and PRIVATE_KEY), will be ignored during inventory scans. From c2122a8e16e676218640aeb6d7e92134c68e3c19 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Wed, 31 May 2023 17:38:44 +0000 Subject: [PATCH 28/39] Update generated README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 04ca4a6..abdf146 100644 --- a/README.md +++ b/README.md @@ -77,9 +77,10 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. It is not necessary to use the Vault root token when creating a Certificate Store for HashicorpVault. We recommend creating a token with policies that reflect the minimum permissions necessary to perform the intended operations. -1. For the Key-Value secrets engine, the certificates are stored as an entry with 2 fields. +1. For the Key-Value secrets engine, the certificates are stored as an entry with these fields. - `PUBLIC_KEY` - The certificate public key +- `PUBLIC_KEY_` - The nth certificate in the chain - `PRIVATE_KEY` - The certificate private key **Note**: Key/Value secrets that do not include these keys (PUBLIC_KEY, and PRIVATE_KEY), will be ignored during inventory scans. From 3a7015edcd302469bb1e57be68845077de74776f Mon Sep 17 00:00:00 2001 From: JoeKF Date: Wed, 31 May 2023 14:07:01 -0400 Subject: [PATCH 29/39] added flag on store type to indicate whether to include cert chain --- .../HcvKeyValueClient.cs | 22 ++++++++++-------- .../HcvKeyfactorClient.cs | 2 +- hashicorp-vault-orchestrator/IHashiClient.cs | 2 +- hashicorp-vault-orchestrator/Jobs/JobBase.cs | 22 +++++++++++------- .../Jobs/Management.cs | 2 +- images/store_type_fields.png | Bin 15612 -> 17863 bytes readme_source.md | 1 + 7 files changed, 30 insertions(+), 21 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 6d175be..6796217 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -89,8 +89,6 @@ public async Task GetCertificate(string key) var relativePath = fullPath.Substring(_storePath.Length); try { - - try { if (_mountPoint == null) @@ -188,7 +186,7 @@ public async Task> GetVaults() return vaults; } - public async Task PutCertificate(string certName, string contents, string pfxPassword) + public async Task PutCertificate(string certName, string contents, string pfxPassword, bool includeChain) { VaultClient.V1.Auth.ResetVaultToken(); @@ -255,15 +253,19 @@ public async Task PutCertificate(string certName, string contents, string pfxPas certDict.Add("PRIVATE_KEY", privateKeyString); certDict.Add("PUBLIC_KEY", pubCertPem); - var i = 1; - pemChain.ForEach(pc => + if (includeChain) { - if (pc != pubCertPem) + var i = 1; + pemChain.ForEach(pc => { - certDict.Add($"PUBLIC_KEY_{i}", pc); - i++; - } - }); + if (pc != pubCertPem) + { + certDict.Add($"PUBLIC_KEY_{i}", pc); + i++; + } + }); + + } } catch (Exception ex) { diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs index 4d2f2b7..8fe3220 100644 --- a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -130,7 +130,7 @@ public Task> GetVaults() throw new NotSupportedException(); } - public Task PutCertificate(string certName, string contents, string pfxPassword) + public Task PutCertificate(string certName, string contents, string pfxPassword, bool includeChain) { throw new NotSupportedException(); } diff --git a/hashicorp-vault-orchestrator/IHashiClient.cs b/hashicorp-vault-orchestrator/IHashiClient.cs index fbee83e..043dd63 100644 --- a/hashicorp-vault-orchestrator/IHashiClient.cs +++ b/hashicorp-vault-orchestrator/IHashiClient.cs @@ -16,7 +16,7 @@ public interface IHashiClient Task> GetCertificates(); Task GetCertificate(string key); Task> GetVaults(); - Task PutCertificate(string certName, string contents, string pfxPassword); + Task PutCertificate(string certName, string contents, string pfxPassword, bool includeChain); Task DeleteCertificate(string certName); } } diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index a3345b8..21ddb33 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -24,6 +24,8 @@ public abstract class JobBase public bool SubfolderInventory { get; set; } + public bool IncludeCertChain { get; set; } + public string MountPoint { get; set; } // the mount point of the KV secrets engine. defaults to KV public string RoleName { get; set; } @@ -71,14 +73,18 @@ private void InitProps(dynamic props, string capability) VaultServerUrl = props["VaultServerUrl"]; SecretsEngine = props["SecretsEngine"]; MountPoint = props["MountPoint"] ?? null; - if (props["SubfolderInventory"] == null) - { - SubfolderInventory = false; - } - else - { - SubfolderInventory = props["SubfolderInventory"]; - } + + SubfolderInventory = props["SubfolderInventory"] ?? false; + IncludeCertChain = props["IncludeCertChain"] ?? false; + + //if (props["SubfolderInventory"] == null) + //{ + // SubfolderInventory = false; + //} + //else + //{ + // SubfolderInventory = props["SubfolderInventory"]; + //} var isPki = capability.Contains("HCVPKI"); diff --git a/hashicorp-vault-orchestrator/Jobs/Management.cs b/hashicorp-vault-orchestrator/Jobs/Management.cs index 90e4bd8..0670d32 100644 --- a/hashicorp-vault-orchestrator/Jobs/Management.cs +++ b/hashicorp-vault-orchestrator/Jobs/Management.cs @@ -57,7 +57,7 @@ protected virtual JobResult PerformAddition(string alias, string pfxPassword, st try { // uploadCollection is either not null or an exception was thrown. - var cert = VaultClient.PutCertificate(alias, entryContents, pfxPassword); + var cert = VaultClient.PutCertificate(alias, entryContents, pfxPassword, IncludeCertChain); complete.Result = OrchestratorJobStatusJobResult.Success; } catch (Exception ex) diff --git a/images/store_type_fields.png b/images/store_type_fields.png index 2944946448a4a14da30ca90d640518b308446493..c727456ca20e2c6ffea41bf9ffa056fb612f83e0 100644 GIT binary patch literal 17863 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 C!mJwr literal 15612 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 Date: Wed, 31 May 2023 18:07:51 +0000 Subject: [PATCH 30/39] Update generated README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index abdf146..c1a050c 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,7 @@ This integration was built on the .NET Core 3.1 target framework and are compati - **VaultServerUrl** - type: *string*, *required* - **VaultToken** - type: *secret*, *required* - **SubfolderInventory** - type: *bool* (By default, this is set to false. Not a required field) + - **IncludeCertChain** - type: *bool* (If true, the available intermediate certificates will also be written to Vault during enrollment) ![](images/store_type_fields.png) From ce47d0d832a5f21682403e25ef4bfad50b72e075 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Wed, 14 Jun 2023 11:13:42 -0400 Subject: [PATCH 31/39] fixed issue when checking for revocation time for inventory. --- hashicorp-vault-orchestrator/HcvKeyfactorClient.cs | 3 ++- hashicorp-vault-orchestrator/Jobs/JobBase.cs | 9 --------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs index 8fe3220..e97768a 100644 --- a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -66,8 +66,9 @@ public async Task GetCertificate(string key) string revokeTime; content.data.TryGetValue("revocation_time", out revokeTime); + - if (revokeTime.Equals(0)) + if (revokeTime.Equals("0")) { var inventoryItem = new CurrentInventoryItem() { diff --git a/hashicorp-vault-orchestrator/Jobs/JobBase.cs b/hashicorp-vault-orchestrator/Jobs/JobBase.cs index 21ddb33..83e8eb7 100644 --- a/hashicorp-vault-orchestrator/Jobs/JobBase.cs +++ b/hashicorp-vault-orchestrator/Jobs/JobBase.cs @@ -77,15 +77,6 @@ private void InitProps(dynamic props, string capability) SubfolderInventory = props["SubfolderInventory"] ?? false; IncludeCertChain = props["IncludeCertChain"] ?? false; - //if (props["SubfolderInventory"] == null) - //{ - // SubfolderInventory = false; - //} - //else - //{ - // SubfolderInventory = props["SubfolderInventory"]; - //} - var isPki = capability.Contains("HCVPKI"); if (!isPki) From 9cc3aed8cacfd2678ed9dd104b18d0034ae9dbe5 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Wed, 14 Jun 2023 17:05:08 -0400 Subject: [PATCH 32/39] Updated property names. now including full chain in ca_chain field. --- .gitignore | 1 + .../HcvKeyValueClient.cs | 75 ++++++++---------- .../HcvKeyfactorClient.cs | 37 +++++---- images/vault_cli_read.png | Bin 110140 -> 70203 bytes readme_source.md | 9 ++- 5 files changed, 62 insertions(+), 60 deletions(-) diff --git a/.gitignore b/.gitignore index 9e70390..50f98d1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /hashicorp-vault-orchestrator/hashicorp-vault-orchestrator.csproj.user .vs *.licenseheader +README.md diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 6796217..70700a8 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -86,7 +86,7 @@ public async Task GetCertificate(string key) Dictionary certData; Secret res; var fullPath = _storePath + key; - var relativePath = fullPath.Substring(_storePath.Length); + //var relativePath = fullPath.Substring(_storePath.Length); try { try @@ -102,7 +102,7 @@ public async Task GetCertificate(string key) } catch (Exception ex) { - logger.LogWarning($"Error getting certificate (deleted?) {fullPath}", ex); + logger.LogError($"Error getting certificate {fullPath}", ex); return null; } @@ -116,42 +116,45 @@ public async Task GetCertificate(string key) try { - string publicKey; - bool hasPrivateKey; + string certificate = null; + string caChain = ""; - //Validates if the "PUBLIC_KEY" and "PRIVATE_KEY" keys exist in certData - if (certData.TryGetValue("PUBLIC_KEY", out object publicKeyObj)) + //Validates if the "certificate" and "private_key" keys exist in certData + if (certData.TryGetValue("certificate", out object publicKeyObj)) { - publicKey = publicKeyObj?.ToString(); - } - else - { - publicKey = null; + certificate = publicKeyObj as string; } - if (certData.TryGetValue("PRIVATE_KEY", out object privateKeyObj)) - { - hasPrivateKey = true; - } - else + var certs = new List() { certificate }; + + certData.TryGetValue("private_key", out object privateKeyObj); + + if (certData.TryGetValue("ca_chain", out object caChainObj)) { - hasPrivateKey = false; + caChain = caChainObj?.ToString(); } - var certs = new List() { publicKey }; + certData.TryGetValue("revocation_time", out object revocationTime); - var keys = certData.Keys.Where(k => k.StartsWith("PUBLIC_KEY_")).ToList(); + certs = !string.IsNullOrEmpty(caChain) ? caChain.Split(new string[] { "\n\n" }, StringSplitOptions.RemoveEmptyEntries).ToList() : certs; - keys.ForEach(k => certs.Add(certData[k].ToString())); + // if the certs have not been revoked, include them - return new CurrentInventoryItem() + if (!string.IsNullOrEmpty(certificate) && (revocationTime == null || revocationTime.Equals(0))) { - Alias = relativePath, - PrivateKeyEntry = hasPrivateKey, - ItemStatus = OrchestratorInventoryItemStatus.Unknown, - UseChainLevel = true, - Certificates = certs.ToArray() - }; + return new CurrentInventoryItem() + { + Alias = key, + PrivateKeyEntry = privateKeyObj != null, + ItemStatus = OrchestratorInventoryItemStatus.Unknown, + UseChainLevel = true, + Certificates = certs + }; + } + else + { + return null; + } } catch (Exception ex) { @@ -190,7 +193,7 @@ public async Task PutCertificate(string certName, string contents, string pfxPas { VaultClient.V1.Auth.ResetVaultToken(); - var certDict = new Dictionary(); + var certDict = new Dictionary(); var pfxBytes = Convert.FromBase64String(contents); Pkcs12Store p; @@ -250,21 +253,13 @@ public async Task PutCertificate(string certName, string contents, string pfxPas try { - certDict.Add("PRIVATE_KEY", privateKeyString); - certDict.Add("PUBLIC_KEY", pubCertPem); + certDict.Add("private_key", privateKeyString); + certDict.Add("certificate", pubCertPem); + certDict.Add("revocation_time", 0); if (includeChain) { - var i = 1; - pemChain.ForEach(pc => - { - if (pc != pubCertPem) - { - certDict.Add($"PUBLIC_KEY_{i}", pc); - i++; - } - }); - + certDict.Add("ca_chain", String.Join("\n\n", pemChain)); } } catch (Exception ex) diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs index e97768a..2c50863 100644 --- a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -55,28 +55,33 @@ public async Task GetCertificate(string key) req.Method = WebRequestMethods.Http.Get; var res = await req.GetResponseAsync(); CertResponse content = JsonConvert.DeserializeObject(new StreamReader(res.GetResponseStream()).ReadToEnd()); - string cert; - content.data.TryGetValue("certificate", out cert); + + content.data.TryGetValue("certificate", out object cert); + content.data.TryGetValue("ca_chain", out object caChain); + content.data.TryGetValue("private_key", out object privateKey); + content.data.TryGetValue("revocation_time", out object revokeTime); - string issuingCA; - content.data.TryGetValue("issuing_ca", out issuingCA); + List certList = new List() { cert as string }; - string privateKey; - content.data.TryGetValue("private_key", out privateKey); + // if the chain is available, include all certs - string revokeTime; - content.data.TryGetValue("revocation_time", out revokeTime); - + if (!string.IsNullOrEmpty(caChain as string)) + { + string fullChain = caChain.ToString(); + certList = fullChain.Split(new string[] { "\n\n" }, StringSplitOptions.RemoveEmptyEntries).ToList(); + } + + // don't include them in inventory unless they haven't been revoked - if (revokeTime.Equals("0")) + if (revokeTime == null || revokeTime.Equals(0)) { var inventoryItem = new CurrentInventoryItem() { Alias = key, - Certificates = new string[] { cert }, + Certificates = certList, ItemStatus = OrchestratorInventoryItemStatus.Unknown, - PrivateKeyEntry = !string.IsNullOrEmpty(privateKey), - UseChainLevel = !string.IsNullOrEmpty(issuingCA), + PrivateKeyEntry = !string.IsNullOrEmpty(privateKey as string), + UseChainLevel = !string.IsNullOrEmpty(caChain as string), }; return inventoryItem; } @@ -84,13 +89,13 @@ public async Task GetCertificate(string key) } catch (Exception ex) { - logger.LogWarning("Error getting certificate (deleted?)", ex); + logger.LogWarning($"Error getting certificate \"{fullPath}\" from Vault", ex); return null; } } catch (Exception ex) { - logger.LogError("Error getting certificate from Vault", ex); + logger.LogError($"Error getting certificate \"{fullPath}\" from Vault", ex); throw; } } @@ -153,7 +158,7 @@ public class HashiResponse public class CertResponse : HashiResponse { - public Dictionary data { get; set; } + public Dictionary data { get; set; } } public class ListResponse : HashiResponse diff --git a/images/vault_cli_read.png b/images/vault_cli_read.png index 3a332dba71859b82303e4c6d8c8a0f798f5506af..de49dee5132a9e870ebcdd36c9b7131ead47a518 100644 GIT binary patch literal 70203 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
H77H#d5XXXW(Xs(Eh_F3VWtFaPAy$xdf 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 S3lwHz9FI&ajcW{DUjGkB#L3YB diff --git a/readme_source.md b/readme_source.md index 740e840..ffacb0a 100644 --- a/readme_source.md +++ b/readme_source.md @@ -38,11 +38,12 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. For the Key-Value secrets engine, the certificates are stored as an entry with these fields. -- `PUBLIC_KEY` - The certificate public key -- `PUBLIC_KEY_` - The nth certificate in the chain -- `PRIVATE_KEY` - The certificate private key +- `certificate` - The PEM formatted certificate +- `ca_chain` - The full certificate authority chain, including the certificate +- `private_key` - The certificate private key +- `revocation_time` - a value other than "0" indicates the time that a certificate was revoked. -**Note**: Key/Value secrets that do not include these keys (PUBLIC_KEY, and PRIVATE_KEY), will be ignored during inventory scans. +**Note**: Key/Value secrets that do not include the keys `certificate` and `private_key` will be ignored during inventory scans. ## Extension Configuration From 4bc043eb0d0b82029a29153fe6255ef4659b9c4b Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Wed, 14 Jun 2023 21:05:50 +0000 Subject: [PATCH 33/39] Update generated README --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c1a050c..9b41eb3 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ The Hashicorp Vault Orchestrator extension allows you store certificates in Hash #### Integration status: Production - Ready for use in production environments. + ## About the Keyfactor Universal Orchestrator Extension This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications. @@ -15,6 +16,7 @@ The Universal Orchestrator is the successor to the Windows Orchestrator. This Or + --- @@ -79,11 +81,12 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. For the Key-Value secrets engine, the certificates are stored as an entry with these fields. -- `PUBLIC_KEY` - The certificate public key -- `PUBLIC_KEY_` - The nth certificate in the chain -- `PRIVATE_KEY` - The certificate private key +- `certificate` - The PEM formatted certificate +- `ca_chain` - The full certificate authority chain, including the certificate +- `private_key` - The certificate private key +- `revocation_time` - a value other than "0" indicates the time that a certificate was revoked. -**Note**: Key/Value secrets that do not include these keys (PUBLIC_KEY, and PRIVATE_KEY), will be ignored during inventory scans. +**Note**: Key/Value secrets that do not include the keys `certificate` and `private_key` will be ignored during inventory scans. ## Extension Configuration From 5f592029eb9d61c2cbd929b44ca9d132d452a4f7 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Wed, 14 Jun 2023 17:11:09 -0400 Subject: [PATCH 34/39] updated CHANGELOG --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5200a32..1f4b1de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,23 @@ 2.0.1 + * Added support for storing certs in sub-paths * Updated documentation to specify storing the token as a secret. +* **Breaking Change**: the properties have been renamed from: + * `PUBLIC_KEY` to `certificate` + * `PRIVATE_KEY` to `private_key` + * `PUBLIC_KEY_` for each CA chain certificate to `ca_chain` + +* **Breaking Change**: Added a flag on the Keyfactor Certificate store definition to indicate whether to store the full CA chain along with the certificate + +* `ca_chain` contains all certificates in the CA chain, including the leaf. + 2.0 + * Added inventory job support for the Hashicorp PKI secrets engine * Added inventory job support for the Keyfactor secrets engine + * **Breaking Change**: the cert store types are now: * **HCVPKI** for the PKI and Keyfactor secrets engine * **HCVKV** for the Key-Value secrets engine + From 9409f5310f4d4b93aa0b2ce23db4fd3adda33fe9 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Fri, 16 Jun 2023 12:49:29 -0400 Subject: [PATCH 35/39] fixed issue with revocation time check. --- hashicorp-vault-orchestrator/HcvKeyValueClient.cs | 2 +- hashicorp-vault-orchestrator/HcvKeyfactorClient.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index 70700a8..cfcbf82 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -140,7 +140,7 @@ public async Task GetCertificate(string key) // if the certs have not been revoked, include them - if (!string.IsNullOrEmpty(certificate) && (revocationTime == null || revocationTime.Equals(0))) + if (!string.IsNullOrEmpty(certificate) && (revocationTime == null || Equals(revocationTime.ToString(), "0"))) { return new CurrentInventoryItem() { diff --git a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs index 2c50863..3e7f073 100644 --- a/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyfactorClient.cs @@ -73,7 +73,7 @@ public async Task GetCertificate(string key) // don't include them in inventory unless they haven't been revoked - if (revokeTime == null || revokeTime.Equals(0)) + if (revokeTime == null || Equals(revokeTime.ToString(), "0")) { var inventoryItem = new CurrentInventoryItem() { From 88116855b3d2fa7a91f8a8d33d3a0835107c7146 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Mon, 19 Jun 2023 16:16:00 -0400 Subject: [PATCH 36/39] updated fields. the full chain is now stored in certificate if selected. --- CHANGELOG.md | 4 +- .../HcvKeyValueClient.cs | 41 +++++++++--------- images/vault_cli_read.png | Bin 70203 -> 69116 bytes readme_source.md | 4 +- 4 files changed, 23 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f4b1de..fc49f36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,12 +6,10 @@ * **Breaking Change**: the properties have been renamed from: * `PUBLIC_KEY` to `certificate` * `PRIVATE_KEY` to `private_key` - * `PUBLIC_KEY_` for each CA chain certificate to `ca_chain` + * `PUBLIC_KEY_` has been removed. Now the chain is stored in `certificate` if the option is selected. * **Breaking Change**: Added a flag on the Keyfactor Certificate store definition to indicate whether to store the full CA chain along with the certificate -* `ca_chain` contains all certificates in the CA chain, including the leaf. - 2.0 * Added inventory job support for the Hashicorp PKI secrets engine diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index cfcbf82..a768c75 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -35,9 +35,7 @@ public class HcvKeyValueClient : IHashiClient private string _storePath { get; set; } private string _mountPoint { get; set; } - private bool _subfolderInventory { get; set; } - - //private VaultClientSettings clientSettings { get; set; } + private bool _subfolderInventory { get; set; } public HcvKeyValueClient(string vaultToken, string serverUrl, string mountPoint, string storePath, bool SubfolderInventory = false) { @@ -86,7 +84,7 @@ public async Task GetCertificate(string key) Dictionary certData; Secret res; var fullPath = _storePath + key; - //var relativePath = fullPath.Substring(_storePath.Length); + try { try @@ -116,8 +114,7 @@ public async Task GetCertificate(string key) try { - string certificate = null; - string caChain = ""; + string certificate = null; //Validates if the "certificate" and "private_key" keys exist in certData if (certData.TryGetValue("certificate", out object publicKeyObj)) @@ -127,27 +124,28 @@ public async Task GetCertificate(string key) var certs = new List() { certificate }; - certData.TryGetValue("private_key", out object privateKeyObj); + certData.TryGetValue("private_key", out object privateKeyObj); + + //split the chain entries (if chain is included) + + var certFooter = "\n-----END CERTIFICATE-----"; - if (certData.TryGetValue("ca_chain", out object caChainObj)) - { - caChain = caChainObj?.ToString(); + certs = certificate.Split(new string[] { certFooter }, StringSplitOptions.RemoveEmptyEntries).ToList(); + + for (int i = 0; i 0) { return new CurrentInventoryItem() { Alias = key, PrivateKeyEntry = privateKeyObj != null, ItemStatus = OrchestratorInventoryItemStatus.Unknown, - UseChainLevel = true, + UseChainLevel = certs.Count() > 1, Certificates = certs }; } @@ -228,7 +226,6 @@ public async Task PutCertificate(string certName, string contents, string pfxPas streamWriter.Flush(); privateKeyString = Encoding.ASCII.GetString(memoryStream.GetBuffer()).Trim() .Replace("\r", "").Replace("\0", ""); - // logger.LogTrace($"Got Private Key String {privateKeyString}"); logger.LogTrace($"Got Private Key String"); memoryStream.Close(); streamWriter.Close(); @@ -254,12 +251,16 @@ public async Task PutCertificate(string certName, string contents, string pfxPas try { certDict.Add("private_key", privateKeyString); - certDict.Add("certificate", pubCertPem); - certDict.Add("revocation_time", 0); + + // certDict.Add("revocation_time", 0); if (includeChain) { - certDict.Add("ca_chain", String.Join("\n\n", pemChain)); + + certDict.Add("certificate", String.Join("\n", pemChain)); + } + else { + certDict.Add("certificate", pubCertPem); } } catch (Exception ex) diff --git a/images/vault_cli_read.png b/images/vault_cli_read.png index de49dee5132a9e870ebcdd36c9b7131ead47a518..c09211030a08981e203ee08516d6c8e432b390b7 100644 GIT binary patch literal 69116 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 Ik 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 AP5=M^ diff --git a/readme_source.md b/readme_source.md index ffacb0a..e69172b 100644 --- a/readme_source.md +++ b/readme_source.md @@ -38,10 +38,8 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. For the Key-Value secrets engine, the certificates are stored as an entry with these fields. -- `certificate` - The PEM formatted certificate -- `ca_chain` - The full certificate authority chain, including the certificate +- `certificate` - The PEM formatted certificate and intermediate CA chain (if selected) - `private_key` - The certificate private key -- `revocation_time` - a value other than "0" indicates the time that a certificate was revoked. **Note**: Key/Value secrets that do not include the keys `certificate` and `private_key` will be ignored during inventory scans. From e7a14f6039b25b14b77fc9c7b9f05a9429223240 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Mon, 19 Jun 2023 20:16:44 +0000 Subject: [PATCH 37/39] Update generated README --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 9b41eb3..73c6275 100644 --- a/README.md +++ b/README.md @@ -81,10 +81,8 @@ This integration was built on the .NET Core 3.1 target framework and are compati 1. For the Key-Value secrets engine, the certificates are stored as an entry with these fields. -- `certificate` - The PEM formatted certificate -- `ca_chain` - The full certificate authority chain, including the certificate +- `certificate` - The PEM formatted certificate and intermediate CA chain (if selected) - `private_key` - The certificate private key -- `revocation_time` - a value other than "0" indicates the time that a certificate was revoked. **Note**: Key/Value secrets that do not include the keys `certificate` and `private_key` will be ignored during inventory scans. From d5e6f25af0294ac84b0a9a355ddfd533203936e5 Mon Sep 17 00:00:00 2001 From: JoeKF Date: Tue, 20 Jun 2023 12:48:35 -0400 Subject: [PATCH 38/39] Fixed issue where improperly formatted secrets would cause inventory to bail. --- hashicorp-vault-orchestrator/HcvKeyValueClient.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs index a768c75..44bd24c 100644 --- a/hashicorp-vault-orchestrator/HcvKeyValueClient.cs +++ b/hashicorp-vault-orchestrator/HcvKeyValueClient.cs @@ -125,9 +125,13 @@ public async Task GetCertificate(string key) var certs = new List() { certificate }; certData.TryGetValue("private_key", out object privateKeyObj); + + // if either field is missing, don't include it in inventory + if (publicKeyObj == null || privateKeyObj == null) return null; + //split the chain entries (if chain is included) - + var certFooter = "\n-----END CERTIFICATE-----"; certs = certificate.Split(new string[] { certFooter }, StringSplitOptions.RemoveEmptyEntries).ToList(); From 0df56bb414326b02487303d36cbd08411eaf9fc5 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Wed, 21 Jun 2023 20:42:48 +0000 Subject: [PATCH 39/39] Update generated README --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index d4e5f73..73c6275 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ The Hashicorp Vault Orchestrator extension allows you store certificates in Hash #### Integration status: Production - Ready for use in production environments. + ## About the Keyfactor Universal Orchestrator Extension This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications. @@ -12,8 +13,15 @@ The Universal Orchestrator is part of the Keyfactor software distribution and is The Universal Orchestrator is the successor to the Windows Orchestrator. This Orchestrator Extension plugin only works with the Universal Orchestrator and does not work with the Windows Orchestrator. + + + + --- + + + ## Platform Specific Notes The Keyfactor Universal Orchestrator may be installed on either Windows or Linux based platforms. The certificate operations supported by a capability may vary based what platform the capability is installed on. The table below indicates what capabilities are supported based on which platform the encompassing Universal Orchestrator is running. @@ -26,8 +34,13 @@ The Keyfactor Universal Orchestrator may be installed on either Windows or Linux |Supports Renrollment| | | |Supports Inventory|✓ |✓ | + + + + --- + This integration for the Keyfactor Universal Orchestrator has been tested against Hashicorp Vault 1.10. It utilizes the **Key/Value** secrets engine to store certificates issues via Keyfactor Command.

syL!vRjSO5h{sL*4&B{e)7`O04!+6gT-=3w`cMt!#uefJ}Ydxa0rws(#5e;3OC zAd_)4kuah5;`_eVLvQG@7VI3YxRO8iwa`9JC;z0pGuW+0W66mKZGeA~;~i@^va|@5 zRJ?RCB)S{Q4qdAX3)q95xh_n`kLTEv%>j!FP{E#7%79!%qxq@)_H7HXBjGGuR=8|t z*MXX)B$@#V6LmAi-)@^J*tX%afqGLausLk-`wh!fK$#*MDn-Gb!jp(#za`^l@qza4u|Z#V5v@57Xa?hBgr!dCy;^-9=(%TgHBJFg${`Fd3WX6 z=>o7sA=1-7oDSM_y}f|zmc}NK@_2z*o9+t{lxJKfi6P)kt`LmF^xzary04lTW1#8H ziwPh}ABKL)I2M?TTp)CDU%0C$6PsSGLGqN&s@Fgazcv_h=thM!Y4kpJYrTc$Igz^G zcy-^1&9suxW(mm{meo(w$h&nHz+B|c@htz%-~ek;N6|*~^?(DIC{(yuyvw6;e9bXo zs^h>C9?OapO}g)NX)R2SKig$jEAw z&S_VLzM!n84ze)J#F9OuB@Z5)M~Acuc5_~c*Ri;0TQ-@tC=-JuXCpq820ufv<*)qn zhXiz}#E4`uY~fEMV~TK>;EXOq3kMP&jo#^{3`zbBAN=gOo*47?J{{0{xE_|w?`QG& znE`Zi%}=!+4HYVI^GjCeu(W>TYS=5YqG&^F=**RK+b3HXTl7@fO!U2g12}GzOeOVT zT`ZfSeXL7uOEX<}yrXhX(U~9@?8Ez2svX|{MCs%FFf8NwK*!LT+IGT@3)YLXcUz_h zL#Ci(EE{`eHi_{N+8J!uJezj)waquD^PYx9YnzB|?2=aiEW_#Po8r=bV81Ym*vOipwXKao?JEZ0@1lLpI3G54s?=as>6t10em&jYLerY(i^~$aCqu^+|_u5c2KO zoLx(}D1vLxc8M=u{MqL4EBC8*`j+lr%BrrM_-BS2!7Gj0YZ{l?4P@_Erml4A{yc$h zTx$rWnV7@Zb!>(Rz+fBU#O>Y8)5p3Iy_ME{Vl|hES+VCkxq`|{ z-X#CTlSis6{MdIzrK>2PqRaeEEnerrW`(g0$en zT|`rjcFRhajk7?;res{_cLg@?U^K2Uj=Ww}JlXf`!>suFqSEiiE%y5}ME=;t& zj(@sk7Lqmg%cgkOE8|By)i-T{irh_u-k`zfqBLoMoLk@ApFgl?=8B$l=Zwp;K13DJ zp;JtF(m@X+C;6y3>Pz599Jv!vU8>!wF4W?aiKQfL5CNTfN4&PM9RasAg{7A~kr`Uq zq?hFocR2A-9C?nGA47XEe3m^go-pxB1j10i%g?9|Xp^e@@GO1Ol^_WS`Qyenq9wUq zqOvrLdUbu4<5woTy;o+F(sm*vOOyB#tgc5nM2rQ;sJIo=<9js|_UcM|tgFMAF5T@w zzQ@$M(s9XPMP3L}x##vc!uxIJcV}i5nh1kvEoGlo2=cEpI7WKs-@iI=kpMC#yt1M+=w_%o=hOl?( z>1ws<=~dhMye3{KIR}_(Z>&O;OwC9hgj+Hr^L11)28{#H6z7+dJxu3cj?b@@`m|v3 zj_8+*DwO=Hl8>bJiZLQImcn-WZt`gTR|LRMGp|~G1lLhqMe+!2N|2CIu~5E|$51wV zm^Tp($MlV7!wSgB^*DAQYJ4Vb`9LHAOk3)5k*2&=Z4bw?kXPo}P^Jn%FB+Y$SvSH> z&>dAcz`$3x*2qv0+jqe&@9z*%p7A~dOekdi%E`-j=Z>Zfj)xUR{xr6nPW=GVWMr~8 zZHl&jGj`@H|5yL`FY)95xv1dKILe*4G5hU2{CdziHk;U>P{!;=oB*l~7zVusq85#9 zsh#a4QH40-VA7CVeUmhD>X==Goz6UFR?!w#j#-o>U>;|+(Xln6wE?-4 zm}`SDJg36J?Nrs zV9nm6YkP!wtwn|XWA4dvT$hs4A9a|e^JetmFxwhEw27f}kM#2(OYvK8H?XT212mo8 z6RliY3Z5xOHc0T#+OVta7%!i9V6prL-2z4W{-yu=wM4;V(22mRN;d9&yD`HuRttIW zM!XLwfCm@pM!R3aIU(OB1f(+rBTMYCFs+hQ5xN00-74Gbj9p4=Ij8r<@>ni0&w|y2 zh+E!oRrEzQ0(a*O>O2wr9>blrCx;GU~jsd0(QC4js!p<{izYjhXp0Gs%fr0hqWxAp{2SLi@ ziB(sJx+w2Qi^Xn!9u?J-*G@phRTY$HiRQ+>lF`M_N@6}XeOm4Z0q;OP3$A~L>HPte z^UuVq3U*Ggb!ByeITzrq>di#s=Dw$y9OIRtETN)y?)LUL3&;Z_ak5y;L{9tFzyT*> zJwtKIrd@&Et2XoJ$K5ixFG-sL2Ft28+^oDr(4tiv1dHivn3TJ;RlHn*yPaT@c4My=_yjSk)d^TD)PZlKx0?jL5O-497ajbm<4h&dx%wFjRA_PXe-^I*h z5-&0wIkppO%f<72>CXfON*btIr{6?&BUe146j8V;o%*B<6WE370C*5438>s&rm~~@ z<6?vuMzn$vB67Yn@3wfe9l_<-t5GbPoJ({=c>n# z@E%clkQ)$D^2;8+XF~Ok&`t|~Am$5xsXdM^b?==8wU55aqWge_gX;=n?PPomE&9d> z{NUlG`mr|n#n@`~ZN?)d3_svk(mnT~Z_Fig%2x)HM%?CRqezwd-LYO8{%77L#lYs+ zYk%*RN^r)q2yZL;Yp$NNlhL>=KpV+m9u@N%L{5@^g~`i&*eJ}-e6sD7FJwMbl^J4h z>uGr9)FY0CIIk|bp<_P^k=(n|-qwaPuHgR}CZr@t99w}t;;^!2t=R)olAy_x;2F-d zH;p^ey*%>4WnILGmZ^UKmLbWi9=jPQIJ*Uzg7#2W+(En zfikwLPB(n9`@%5&&zxn}(?sGQxlBi~*U$cHPRz)D3LIF~Z6Ox)pb;^VmYSzCJ&J98 z!*OI}itIJ0__}({rvAc%>2BGXo@J#K*|ii{en1z{iiY=RVb$eIe$0q@bt28wIyAOX zrfbtTtsoL7(ilD_ciV%T{ef)JbOYsWRyTediTm{X;L7-0{HMR|#UPYaq;#|e%o2_b zFX_W4J?w2rZ~@iqY**jB|DgRanRLxf=Uh8a5#yglb~H!(#jDMipQ!5<@MbRjLS)~` zVzn8Om5JgB$Bye-t_@P6q8Vh{36d1GGd*I)EKtm`=MsSMrzy8-@=i|!`i)fTYa93O zg~7QtaiXQ}+kj&C)vtRP2+PE0yO~Afp@9r(Eae5o8yLjZBLQW)T?ecgN1q0cBV!|} zAN}hoz4K4;qvGo34QhF#`JNUd=rX#qs^x^(0Pg*a&wJZRKpSTb1bpa`^a8Df^G>f* z?0Pm5-a}@(^Djx|^bIf1TQ)qK2aNY2l5HFgsxL;wJMSwG;!^^igKwa2FTGYaHD6zY}&c18~ zIDCBkE{L|?;>U;ovu6I!a-YMUDEGIyv$RbiP~hshJ220zrVC_N>bAcCvDh>mvE&Gz z{kG;gj|eR#ci~o4riTyKHz@K%q^Tw~N|Tqn2q zk6rN>Y^2Ix(<8s%<5FJp>k+pV`2ej4Eec&k%*tF~@OJzPqG-A^BF;(^6ix7{j9vl_ zn3ncxB=O~ysiJsFx~1KRmY~1PTI>2xw~pxTS>{}Iy%U4_wC4lvN4_>^%55kJ;EhkE z_({9{g{(H6&*pu3ZQ%l;O;2k=rUEiI*8BJQ>t~HWh<34?`!Xb6V^|?Du+d=;EiY54 zejEiJ@GbHO6N@mdO&S>a5t!}G*yony%hvV_Yzub3y_I)A8<3Qrl+UT)n9q38eTFv_ zJj6nGjR9>=Q0Z-xP4rEl)2%hr-5rm=gk@^~fz$~+s<5Ta!y-fhOQ9Ht4$opy>_~~^ zz=}HCkAXe*w-;5w#Xojm0I6ctI#q4$?dJy%aeh-9*>M+2~YBxmja>~;k8 zaaL5#fPRnH9t4la3cT=wQ%ftK3uiaeJ-*LI6!=B~?DW}^fAZfv>IUJvr-%oTZcwQG z^QOj!nGj1P9K5Mu$r%k%kGTo#K||zkgWc}MuX#f3R4b#-#Li}tHNJbfEI=<)9MD_% z&4Y!t^#a>tal53^R+-T@=|nAG4H6&C)kwoqvwZ>QTV&Rn^b6Y->t4FtnGxBITX>p1 zZ=hZnIdu2*iFi~G4lEHV!iSG~7~p2a1*1rd=jQ33K42ERwSXk+w&$($-8o|iho%)T z7?U=S*p21W7N#!DzV(XE6wcyQS!u~wIG&lu1q;e+!FysI*in>wG!tBt?d6I!V%eeW zUxgZ(UL`h*OYxaUw+>B9_|^ref6$6hQDk&BEc&rn+Gzf~XP1phLnQM-@HA=YyeEeW z_&7Bybm;!Pv@598j!i4L~m5&=!C)KDc5Y^yTnfOinUnglY z{6U0if4!-|f`1=ESQ^4XPhNGSS@8|<(+e%b&J4)+0&+rD`xBUO=hO0A1qN@esYe|{ zx_yzkhU5R>qf7sO)^oM-YS?<+^Ww@{Z`LgrN7^}DjN56>1Qy!Sq)|Y8YID$n{a)z# zxV>~Lr4HFQUbc`rlW`C@4tXFyom8Z6w^Tva0Qz&-rAxjp5!iD_YC6OOWiksGKV%dBxays`M)yNsE*HNEo}oOO-h>8 zjH4*IEi2Tn*A{Cr1Zzj2--C}ltIX3v)kJy~lAZe zF$^gh!-nh?I6i~{8yBdhkQo`@#E=JSlfN81A#1z9GRTHg&VPrUxjbzP66jxuSm1@J z>T>S+Z94t+67wC@H>KBw*K7_>lz18+Jt8xBvU(twGZWSs0QnVZ!a4YBnpqctk>Ak_rHCaH;yS4jI)3=3$cwfAAr-x$$M0icA zPSdXK*Im}WydisDY~86HvziRG&h_G6Gpr}^-<|kJMxH8maP31#v};ZoWz=boTA%eu zlPQs7TFaiq8wTAKlZ7C*RW1U zgiEJ!Jz%bCf)I^Jyg7RFBlydT^kD5{T0Xb}PH`9}-X7uNRxzTlQk{Dzo-lWpMs0W={E}$8_uI23=$yYSZ5P1s zpPUDXCRo=WgPztHj7M))2)pu@9wBwGrKUSL+G-0;JDaOCzAy6z9fHp88t^LM;M`z;K555Fga#$In<-te zA{2jYWQJY>?*BLX-iC?u$-k{oj_GMir~E|sRfr!Y#nfmnoz=ej zJ(NoKt*MHGD#%H#YPtSG=HcGJ)4bizE6}k^TeQ6=Kgu&P7?)@X6L_*Ci^Z&xlTz)D zV@YetL4{80!9GKI2Yk47Un`d9?D$WNy@t}V+P55S5?hZj)iS+vV7k^Ow)>UyxQ5jT zJ;BIV0g!SZATZk^(T*|aZ}X~AVW&q%oIm=< zM^)jhyXZ-&W9`-N^15R|yb<{o3}|}dxtGArZ+cOYC+BW4CyD<=7x)_`{*(t_cr2s* zeusAi6$tylkPckxZh^V-8MRHj%gl$eYo36K<%K)SdqJq`fc;t5@q@f%?i2w^R{&D9 zW7h1)-j1@$XBaywKHA87?&3iq$K&qW_?${$7#cGV#4md$&E8|T$P_(8w5zu#fDNT> z!HUD$=FY{vD`$&Aa?4|;9m6vDmn4e=1X73fck|#t4ON(D6pFJ{A!7dR#8_4>e-W); zb5q_^(vM9`NjEFh2e6FVb)w|L5FsbIu2KTXhb8tSHKi)0O#iZr*gC(!eG6Q|Zu1|$ z;1LL$eiT_gc4^fIoqgwl%4BOK>KTAgK=HpV`1-N$Dn6YvI$zz^eX(0l8MO~1ivpZt z%w($#ZED=Hg=w;+OGgR4p}~7l6(`HHd70EMx*@<)c!!rU-kD#Vkb|oJauj-NMVEv~ z%LypL$%FtRBRfVAn`3C}eGtlYgzexTsv>VbxsmvF_d$ra$kPin+e&DU2|y;8ALlC4 zF41|rI~CTA`xQD-nN~p2m@%FLXRZOcI0O<7czu-HYyImvYTj9Ex)&lU+AzS17`e1DWMTlTb&o(PfkORMbuFs%d?d#O?1K>of<903JtMV#=29 zIy20)7`q&e-rsG$H#i9$n~(%xY424}daHaIM(}LoxE8Yq#OFB-Ro4Wl5{-{9gaE!o z4$~d<`4j2_8i#%I+HY_rOdP!HsX%-ygjy^pf9P?w{wKi><(X^$#t!&5Ft?Upe%?P` zWf&j4MTh|Rx&BamvDOv~2`IV2$mX+zHB`5>{n z*|#ud4FsU`ns&_9Pwk~83Y6>fsx84r0N8OTn3XQ7{24#GZ?PJ=&t#oMV?kzn1OoVJ zr$86{!tVx};&tDllnH9jV$z>~JzTb%*73bDLH{tlonsALb2-Vd=)0N%4I zIvHMp&a&JVzp-YDfkghClv&BgFv9Fxq-7tawQP2;h=vTHg+hXf_k6izg?Wh|CP{}| zK{Zl+1AFSrmrvIMhqo+(wJrd*RXE4(Cjf$2yGWhpzCsWY3dfT0; z@9owvbD;B=WjzfzqtQF z_spdDuvnKYY$&U8$rWR#j>gexEg<-;-+*7Hha_fN0Op#+Mz6~LW*+M1$f@vn1T@wR zPG=mefEb>ZwaZiPHm$xs^R!k~SPS(_Z?ZZ=&W`;O5)EbC zt-!hVK|6^DH{qx@+TOn^};S^0DCu+K^UYlZN6@uIxs5Qp0O8Z-G&(PKRlGiYtMb^FMyWyf(J@FwVQKFsd|J#+sO!EcV0I`mHwV zRz{{yRez!G5tkb#PUNd82UYh7uoQOeK|j1`N1#d2amzO3Pgd(Iy`CLEm0p064BsX@ zP&~!m9u==n%a04)5x*WK+t19@P@P@%ztI@7&jMV&`wBt1QGtdWb|d+qvT8pVAuzi5 z%m0NvMDiDz6=Sxj<%Rt<6TD{yx=Y6&NUV4k)rCY(@;`$dZ3?M1o#irXDLAtjaxa!e zcrvL?y=I&+b@1~_XShQnh#K~*W%4H!G5R9AFUrWPS&_C44hj5Dx-Ssr zoRipR-y6N!`!16;r@!^M^&!f!i^tpeRZ+xEJYPJ;!-UkMC-z7Z z_o#gmC`}wcV*by5XKlaUPVm1#h%b}$u@r}aeGjR^yhlYJ^Y8JT3O`x0AsF6u4 z(fgu!m4A|!Mb9RBHK2%%3<&TFH<$J-M%-W%^lT~T@OB^LM#gC=Mi&^pE9q!W)#{VZ z2Bx*!JA}SnIA-!~*x2YSo59EdZ>-I_IlSi9J9_PrV2SrFlege@QZk*)FeR-?qmHTx zxQKR>Q&X7gF%v-WCM`%0%V~cAh_>8$)>UySnO2BT|DYv>G(VhVb|keZE#=H6JB6?$ zlf5iLyxbfj-I4gZZFL3~f^vq`$-`+OF^YAz9k0&oFrbuP@8xZs;B#zR`Jd9G^-2Ga zuJaB{G7jIpO)E1iOD$(=nmI^K%!QSjEhTg1q?{?DnR_6WmAO|ra*%0m#fcj#2X1qs zqLK>-ZbStH5B~Ib426DFq z79!NQ6X^cNHFR-y@pj&8D9~8=2ueCq@Qytk^4xiB%}D7Hn_YB`M>%sKmt+c`Ap>&! zYN*S(mt%|eQS`>X=--^3*j4gQ3)!eOu<8RCtY9x?0y-;!=Ep-YVb|0MpliD5bW%t9 zjk18W@zpupN3{J|z)QBwyk2WWH$}Vo4aTKAd^qpCfCo2f94Sr30{J z*7N^SFCIFU;eNaH=gW!D9g!w50oGSs4V0e#US=Th&^hb$Sz(pt$_lrb_dk1=h|2_ff$r?|CqnveFC}u)q#60DpQagszZE*3mWwehv&CY+lT!KOKxcNF+?pVu9~MJEvyaUci;&yz_S`&qUyYQ z#uvWrG>20rc3;>#h>j^S zmoUBT`}h5#?3Pno9r+;y`e^m&dKm3=dy6!2_tEs|G0EA$1o$~U{KH%~sm6{%Uu>KK zb_B+NXKl`8Qcf&n1Kd9DTX{uwCuT(Lj?K;GUIo^2Uy`8}*>7K-WpPq1M|cU9l;r$~$H z0$1WpntmKsekA(R;CB$bdq1#!pF%-nwD2ok4~RnR%)#1GGnUGhR!i5C?@nX-Olptd zD+5Q+QC9Tj(|CwWB#NK8z16u}j#~s-=sQIAcD0WMXdMl4sR-bN7i9cpvUv~RW;sLo zo;5zeUJd(j{Acn^_AmnnL9AB-4sA$=uo>Q(W7_1KD^qoj>$ZpX5*Fz^28Z~}FA z8-DW5F311LEoRrL;Qx+=%HV->TtY6kElApiqeQ?%T?@x)j0rKsU!y&ayQ1B%MSZs* z>lDZfb-q+aSu#z1azuX-^@98NJ6p&Xf}6mso|F45eLHARrR`EI6B?k8<@wB3vj@w2 z_M>aTYsr)gAwsw-y8z}_sr2uHt!X)1AmQZmss_4>^o?$zccV!}uP!4Si+u z++;5>>lD*TnNWK_R8I-#+ca$e{KR?AU5e-FvP4=MVhcPJlDj_Rp&puI^Ob+v!LxhB z=Oy$_Y*+nGK*D}WxkeuaAjJD>Qadt3-#%Gnx#2wF5miZb+RbK&)pQCBSwFnBdtFll z@dNV^{DreW4;RYQv&nJZef-GRJol~KPry`je*WquV>gp04RRyGdp9BznSWk4Ou4b$ z9{degRMH=7g|#WzKy3?R=lZcc?)#5DU$Xw}*>`sam}+Lob*2XDpBrC(F$r7~_e0Q2 zC&liwGKmW`{+Lb8IizC||1m}>X{t1t1m4;1Gh9RV%b?>PE8BMD?7`!xnA@zBz9j5Z zWM^Mo+NutaM^a*d_$}pNTr5C>B#EbUX8wn0?VG^ROg08KXx3d@NwY%4c`G!C~uFvmNNDy;MCY_sdO1LV> z`C{J5^I4pxbL4FxEUkY4Trpc8n2CTso@s7oS-3S>uQyl&W{)RnF)Mi)`gA6J<<=$R zom!E)(Yf9o&&g4|!$s)t1#pe?=3SN?QWEh4G?2~ACf_m#^4RoQuDhODNON1Sc+l4w z-OUMJXyuGMel_8INYl@pRqCn0WUUo(L7>%V+a;(rB~RbitsH=D7MH5?x^k9(yBe4@ z54-_=bhh#l<%B3$`cY3FG~pZ_m`^Y8C_346Cr5>`Y}3q0pvx{F-48|iEf zyn^_czPN%daOx>8X1MdqN!qfNPjq-;lT($nH zzvmxlf!0pCQdKuLll=7xM1odg>()RDV71ztFxV&Wd*GFZU4ulo`zuny7ESqr&qR0g zNW?EHeAO=O4Aawg8%CLigbs%`v~oLB zvF(MWj8Y`4&H=}Ath+jj7$Dnk7>zKF(jxaZ*k?^m>!z8_LO|KZt$szS{MZnr^{nP0 z(3?M8hD!26zxj;---fj#IxgM=m(oi@FCzgH`lkYGnim1Vf9-_eSh#T@Ew_r#OSFcx z9Dsh-fErk!QVs5t3Zx(L(Z3%nA8*98eR9$As9t5qGcBT*Ldc=3WR+hbMbVC=C_*|b z9)(fVB4SnAhX2A2+`5b5ZxIjIGXkeUO{EHL%2l|%q32Bs3Zk$k<+qRL)@T2nQ8*C> z^m0a=;~l`^yTbf=4uKs-Zi6KA-o@4`FX&Gf;f~iKMWJEC< z-g5RU{Z8EHX@Ry-Bq+noASH?_2TPc0^>)AMdb{YJ$zO{b|N4Xe>i?6tR8@fJ{*&0q zPLr0(J8}Zvxq@E|YclSE3G!|qd;?-- zOrHpAGK3iLB713Fpt@369jjyKDKdQidC2`+2S>Hoj>kD3!sdjylOvI<&Xc2qGWDvw zPGNUb#jMp!D_K{O+={Erfh)!v*`-EZXG09YCr81XLH&vn6E!5ip!zYH z>JT0c{JuupAgZr8Lm)sYK++$1c~g!Q&id3q759n;*~qqKnon^3gd4IM6^(%7K}QA` zKirOdlTge*+;x)wrcS-7C_f?K5S~@{!9WQhCno+`qa7Z{j`pZrwC=9+80Q;RWB=II z?^Zfp-Wkp%81|5dTELy%S<-LXLJ{^a_WgpD@xwn8>4VZVhTpHFw)D}c@(bAo$nCGe zTFZIgR+p5%2U@4^HyB<5N9c4Rna&O~LiYXxEnqwt^dFT{l-a9`e`5aK~Lns;^$*J6$sc9D=Rrx!3USOb*-(cf~p?N zPgj2+BnRajw)FTu62(@0uKC3Q&dX!7_#eECY~Mr|V>-1(d7TKgjc$_|l1)UOy96<+ zv{YaFkTLEPMXfDy(!#BTC7ww*o-;e9xS5LH@obuG{qQ;mXo$9m?$|1Y^Cratdt25R z?i#ZrxtYnWgKZvV^MImoLrICjh4OMSt?LNObs0qOZYpPIeBDX?qb#G-XBYzm)#F|M z3DG)cqA2(x(1ARiiOBO`#vHx8;5s~7Pvzd%97$eSw{6-kmoj`8$<;?uJk}?@&;99o zO!XVH@^N&|H|b4MI~VY}+4T!acPav><>73#xUbD8%{DnVoaw>7_zOY{WWA_q1Q?_w z8dz+mSq&~Gv_{VP6YADqvtBmtHuF*wGwS6NGL|Aqkx_g+oAGRU#8Q4XBv?a{be@nd znOWLLenj><-}*z5Qnl+G012?RFDbd3SVuFA8cnhEW5HTB8Gqx}z z{wnx;BX7T^tMP0!VgP}%b%39nDT?8Wbx|5*9AOjEIes6@NmM;`FQSSWl{r<&b<4We z$>?OrA(`CA4f#27!M{$zyG5Uw-`a^m=&YqT^F*F+XhQ8+5>`5b3ExT~Gon2`GirY|<9P1rOA>Y*>v~8_ zJFmJwxkx5H&nUIMj_hPFn=Nj7f9e_FchhKdo*Ez5i)y_z`uw z1XvvFhCNzr}FxQ&nOTKQCnDN9nibFkyC=cxy|g(ruvM2u_Ry!YCs z#kj3P{^nW^Au;wO5;%TMH8_y~GVAMuCj6-`Yu-v*x7A;4{y~kSmCiI#&zW}bq&)~D z#dW_dt*S-_uA$9_te2Go#nX=17?ao^Y(X*k23@b{75>XUEwhWF?^0UVnx%__uo4A%4xkNzr46M$M!13RVWz`5`#g?|E}%N%r3TKI0l0#%H+h1@=lm zHo#lY|2+LA_Lm`P#rUM0ss9emV8MPO}BYCx$`j90`UH5`d1r@)kxM)I6AXlnY zFpm1Ge&@-u4f#6TxJKzVc3SxTXVGq%%W>zyp(HNmlRwQPHh7zZVjf%6&SbkcJYzTy z_JTA+Nz;oxNB&W}sOGe}SgUb{W(Aw#OBTILzFBSt{{qr>{xiD_{}kLg{#lbZSv*t8 zsl^8+Bfb03`dQNMi&pWzhVCyQm{(a$ZtU=7itl*3-^-}Tg(Kv*Mxf8o#FN{4o7?sS zLMo%SfWeWf$>dLRz_;@1H7n!)86;y(=ahKQ+$6YLQ0~%JB1aHXU!zfz1*4$$1yc3l9^d zJHKEZ|Jlem&Jle5|7OJgcV#0iblbLl&%uY@LGJ4f+S?trKgHp%HYyF$&STR|tEK4Q z(u4P)7w#PVO=r}bvwa%?Z9HNUO!sCy!pMKaz{ee_-v>B+~<2f(lGwu<&VSXr&hub{OQ`2io3UM)j z)k*amP^H(@3XMQ6gN;LVp8$A_JA&bGM@?0D$jUO&L14coRY}{s0Wx^e7L%J0Fe>f7 z@lw-VUWM&dnlNL@B+%ElM8c*0RSh}gHlXg6KdrN#+}RVfeqi!4`;&K;yS3b(3n~cu z0E3=K*4wc;c$sPWr142odiBc&l-Hs1V7jyJ_hzbc{QBDrr^L#7bI>~7k2j(^UX@2PBAZKR}+*gEla{Vn+~)`xk8<`)wbP%?1QC-Tj;_BtU zV{+k+V27r=QmPy|v^n>w4rd)v68)kE5fms%d{U8Tf69DD zpojdj!FC2>29Qi-Q6zAIdlmE!!=@`P4NKKYOTbb&MD+H@fQY=r01ln{OkVxBh=)?-KQuwbv3+vNS4E$iG8P{_%KcKqO7C)IRGvGu#j`9>$}M(8 z%`IDH30^snEqQ&d-IoXVY;#9s7R9z^SINe~4U^dGT58-5et zVSrePR8(f#3}hO$3M`o_}N<5`>keeA63P%p7F(! z2yU#JAlECJsk@_WxGol*7kQ}*Nt3XEHP+eMTaZ>L zQFZUjs|ObBH0*Dbs+i9fEZpq2Ox0DZ#srSpDPx_qZ6@N5kq*dab=iX>%{R?~V~Gb4awn%k7W>;AV1$??9$r4*=< z(XT4;ug9h%#bi$r&=Kq~VDU(YlQ*ZRFjaLnN0LOu5AJsQ@UNAiI8+wm#TUo9to0N49q z>$AKY7H_|@w?Fx7*6*-;o4j z#1Na~GIol=Jb0qsfqKsDxOyRvn9gzBZPBSlxs2xDSZb5 z_8)qGURl-5a?iU$xI-E2b>Yfmz&GZ-K}K}<1CwV%x%0Yud_B;z5|)(G_`;t1LRITU zDS`{|^e=|ABsvFf6LSGX+}9NyQ}gk|;s+H!$T_8QoAZdq?&-rGxI1g&H3v}hTfaSg z=2YM7?ZQcoosiIZJ;9D2{%5+MUD;|PW4~xG^S~9ha9-?|R6c?vb+;vO(Ep6Ec=O1Y z#8y>-wCpDI;g^{dnGt-vWyMZ{`~$ezrW=KI3s$AX2Rt~9GYej2cKIcEd1*s8Jbcl4 zts~`UaJsOzHN(<%LrwW~tPH-hDqt6_k2!0^zLbq91cG}iY*8n_&)?EbT2{^#@;Vtr zoVt-_I^qmd1jo*`3icH+i`@F{ixEQ3m9=4KT(h4+FEyh}YX)k_7Dp+hQ3mS=^)9dy z(IpkpR7VrQinl8?sO8Y0FRcW^*L60dfD%PvwMcD2DCr@qkZQgph~mfZOAPqC2P`Q@ z%`VN?vt$OVp@@g@BQfCBW-7CLB(-4d8sedcDKf}S7wO?4a3DBsxkwjtQMeiQ_YtsP~+VBiOruTFAiCp*@dt@gZ z%+`JW)%iPB&hUHwH=8n%_G>>n6k*Pd0gg&z`2MGAlU;^p_J(P_i2~oB^$12CouS#k zYdpdMy1scx7yc~@ShiZ^S&>CUu_e@KhNbior~fZ<88~F;z#X9`TS0G?0)#lKl~dI=X%BV zL+~@D?>)NDBHxHjE`Npl7s%V{tEOADb9k`u@hfLe)JIu@C|S zf5CFDZ~?o5SdOy|Jq^X=6UmoZ)enX|hXyBm zxTS1kWRg#rx)Dx62xDCCv?P9rgP_iqPs7OM-vGnXei<)9TZP>xR*V&b0FM)3I4ERHq%uAVXit2z?=U$BA>O*5U>{FR+|*;a^^C$qGv85Cw3pxo&A(geE8dBSz@sT=Lgny6k?K zAQa}QNu?3Cy=Zy!3tY`OorSDr-tX+r&pl|jOZ+|0e)xq2DCXuF&s6)y$Eo-b&{ox` z0%LjbR<{3{`v+#qM#b4pmf#R3$5AhUy4>kEem2QxbIA+yWXu;KhvnVe`QF1 zy726<_!7K+bcs58_NBFKgvCqyDb>ImY~|A{cdb9w3qRmVWhFzUxcFjM z9U(5+Yl~M0tBt$6ow8vk-T0k~@dB$sm>Z3cFET2?*WA92DpJK^_Ran(l3=0i`_BI^ zUtYlU;4Pokty}ePxsjvjB3k5(%%4%&@*Nnx{*S)z*IQOry@D#4woM>Jdb52{NO0Ooqn&GbDOWF>onHGY6d4Jn z<*8O!A|p5f!F8qdqpDJGX1~pt$qzJw@%ns(pGi8_0|6$yCRWXBWN_qF3kz0y=8a5t z>>a{Tv~}H*l@G=z*m#-7sK?72xxpZ{BAx!eqavMQ z@xZBJAoY%KpXV3$&i3qM#T|$_T*9yzz#fmdt`YK%VpvT|m4bZ8*u3FY|Bq*=GQMfGcLYAru1=}v?)y*4Uc zfI0`o35F<|9${kk-3+cbm{&TnVBinM@tHHqt+EsXGy4tm)X@A40_9O1i36 zr@%uCA26KDi8p+%z?(}yOrZq-?b^O|hEC)9pnNEQWw6#BHIH(9Dw>B8+x|vkbb@2= z`HHF|2giN3fw1z;krR8h-G0ey!YUjbIsY3Kcj8~SH1o`Vvul#sDoWm-G3hAn3&;*L z_FsSX-}8tO@Wr3@ip&@WaCmhWTe&gGd2Q0Xs@wX2T0;AUrr_JR_fdZAxKD!6ruk`S zBo({dRX|NeU04pVa4(Ru#%$wBjnUBJgYjwV#8jdMHN*8rxJ6aloNNNdmS#B@l0iT(0QDewa`I5ZR~#Hw9%huD76W5W&bxQ_st8C> z&r{>&3;V_@w$2V)itwwo{Qa}}mQB;S_ja>DQMUctS#(;@l^cjuU<0k zkH}~N#dvpz^n*W)17C)O4MZf0y?Y%!qt|G08=N#80nO8;x)$!Ju1}tN|-|n#Pf`- z3DTX`CMRkJa7TmQCeP28W!&izrIQd^Nf;Rl2GeM}hIg)KXDd`WMrjTE^i5+}PRK0- zf}3|LM&BOD#!cLTyRun%kA;1?w?TedcGI(0(I3IehO>9+pAmoUUoln1Od(}UPd4jj z;_i-fb@EvQ+RWyxUifK2&*d8g3pz9Wr)hRq{o~^xbC8C00#Al10 zB}FvzLS=Ytb1f^CrRNvwh6j0z4Cmo<(il?oqb26~GY{A~@!)&J9XDh_P~$8(LK1v2x+R!rQCak znB=*gnC>9@%b4iY-snm_9i^9#8Fl#T=!T9+O4towC*4t3@LJMtelyz5tPi#GFl@lH$1h1y`BnIe;GQDY+Udh?oATKw=KqMbc zO7-itAk7*-$EiW{(y(i7cTMrF^jV=}^!mvh@WLZ9zz*GEVh0EdOp+HS_*3^k- zKL`KrmfiZ}AKqOHer4}ul_XI&wK_H%@TuITXnV;Mx<*)z4EC=0$0RVLm_laF+&#L2 z-(u`g5~(2m3HQdIeph9dKBsCLOZFyh=PpM^-zW7Rs|bdC z(A*ca5BL>GYzA3Oe1(Q+-t606tt*SvS}vM%WZEPVKXt5)CC%^radr?;*n_L^D35&U z#?2H{%zLjAnd&cB1f8FRTC!y|PTiJxk8D7Ss?P|}Oa-wV)MzU*loyOGLRs^KtPLd( z`*>g*SXBrrZ|bUMAXb$*B|8>7!tPcsa(9;UOrW4J_fk}^X6A;jrR z#1>)j3qToux@68)vbO)v-HkL>+hl-ff?w~UJs}g713vQf0bTi+^N#d= z{KyGfCz2sH7&1s{$qz)q%|I4@&JvsKfi-yD*=DC@%1iKKaM^4P)AB_y~oww z{zve9Qw(q+<58shM*FCcaAf($#J#dusCA5m5uk=g>_dj5NGYzks(I)V^=e&HSwS21 zfdj_4Az|}pV68b|mwGN1g}qDsk@h)JxLQr4h$$C+i7-JjXzNS8TzZSf`CBtK1im>#OZ*KLT9pcIC+~laZm}YyH>Eqw5K%#QH z0UjsK^2x<=tLmEHw<_;CyoQ&AAiq`~Mx*OKID1>tWE@cFA~uu_o=m5->eW~C7^>p* zc6l^xG`ZRI;zoXIMTa$rCUipyT~XPsb5S``*x6Blxe}B>_^pjGT&~<=UL|L3PY%DI zBVT2MA$DquE!CH~=*3_|^C7-b;Spzv=u5N_hd*Cem_;NB(WEmTNLyL<4eq|$tN_hg zO)byCNJ&gW?qe!GINq|_J6Tz3`w(6!LceA2@rB?jLcIuv_HOB~+A&&|h+fC0zEC`F zPaOU`GaBg%2KE?pdC0k2TIasueEJvj$MKvGbDYooKIYq`ow8dicB2*MrovT7sEE)S z(6dh$K}U|avlOgwA#JbY7Fs-9S@q=M%{e@~LFJ@AVqe^eLXSOxsRs*taQw(9k?(6B zPSNvS3>e9E3B_Ld%(_VJXu+`E>F0Tb`F943!#e#S5|Ir0se=g1!tD(5hjzOHcnwn$ zTNrx7Y3|5;&PPV0xeaAp5Cq5vs|owZL&1?{ufIylL^Jke0to zbo}=(itt|B`xAf<9S2{{$2z&ZwiScUZ3S1>UcTv3Rnp4)bIUIX%~q5uFsQXpaqnl= zg3~;&*p2m1*mpa*`%Li?KlSjf8#f+GUva2=AX3`8@;t1;<%BY5#&}vZHUl1yEMLD# z#65MO*0zv;VRt^Q+V0rEm2&&W;OF3&r0ej7z$*$Z1M?`x3!hUi-S^vy6)WJAlFe#^ zz7>vpJ)_kLc=uHu=drT!{U%^9vMtC_bkeNk85sF94}h${fevvgNq*qJmY@uIF?x#$S6?;hxRQ zZA*_+^{8f`3sFkR4_O&I$Xr!VQ01SzjIxIS6yDky$$PUS&n{_9SnK>f0$Io8P%Fm7 zX^Bvj{i~`(Qfol%KQ4WjTC3ys4;B^a18>6+t$3gl9ezn*^l9PUZJSLny9!w5nyqVV z^DLsU3pGI25#q-G{-LTc3^=FxyUaJmI&NZY# z@~-FDE_R8^CIuw!or)A9^Wq~Wzh%qUXO|`w_dI7`6YC;VZBRxAlv>NOm3hQ z=kvQ!bs$g?eH0JE<~E^~yL3bhP^HReBue4G-KQgkO;uvpxTlOeUDBYMmM^xj7x`zYyn8ul zFlZEFhD|0r^w;(zO@KH1Mwgf;_ajMqbqyH(gy`$w7l@T3{+!!~S}>KK4^HvpKpwKE z73Lb7W>0pn!!^F|wolmtDy;#E59KDrH@BPE63igm|V;$>53jVA(pwFDAlk)9z zDX(ZQU&2xp`6=#pX7eL`lR$@5{%!-;f{4@+N7d@P$>l^UjM;z?Mur+L2VJdv##3LK zDnqf9YsRQPV{6{3`WSywINy(B3qgY^@kDx=%F0*FXJ04J%l;OR=R>2NapV)*37Kw) z7lPY+rC1b~$D=v$H}L(Pa80Ms=TlXxE?v-&XmjpZ9`qX&DRm{jvwob zBoO9=TQq~Tf_>nB)d5{SlkmfgE}q^c4kd8n+Gm>UBCnERjv6ULmlbnR?N4b8O>str zp-OqI=cW$Lt%2S$kKJG=4jlgX?%Z(w{}+#E#Mp`S%b_~kZZG9Dx;Wr&>c~gOLlh)*48j@Pm z*3UWeS##K&{$~G2@aO$6PXreX`_~1t57J3DV4r=Xt$qSIoFB8i)PN^9Ac> z0O^FZkmt4oS#tB5tLv-mBl%7Z3h-_sb!0g%^|5OWr9`^WcG?zFwEY3h`7)#+`4y7K zbt7T@1HzG2%=0(2?2MSnS+e&nu7@6mf#ROy#gE?>*?j}iRdLb!nZDQbE^7-tYUh{k zm;__t!8;e)PZEmZB@0x&DO{S~%%9o%$HLH6t|qe`PP&q?-;B%ZvYha^f(B~)5G}1< z9G)7JM_Tvic(A1pPwl=wVgR9fFLs2|(%dL=z%|Lr{K+A0!SyEF&n0bq30d2h*ceiN zxQCn14WDbo$B<-aM>AiMWo5!bje4c}{oK(z@3#a;w6|oe5WSomivPwoF$(vr($gKT zzenFm;dQOHD1U5v%R0(_C1rPG@XUkbV>cYtgddlcU6vah8_(J-1be3_f60CijSlSkgtYbBYGF)459%qaz@@magal*x}5=uZ}BL)tn-%6Kf~;;{HG z$aBhP(?v4Mbl*X)>zbVb{h6Pr4raByHc?yrt3G@F)}_N%utM$Io?Aacm;qLt9f+>% z6z{!6nqTW~Ov#beBR&1)<>+VEH6rOkn_RmAHeO1=%@=}28$KbO#0q7~Ma_$#H?Q9L zyq-DgIcdPq95h2Q&2OS2zolp)7yuZB|dK2?_&#BP>< zviItRTpSGVOvX;JaW;cYbNB#qh-<83*C)+cS6`b4`PjBG0+3>0<;g_1+%MvRGO6J!b9wKh_>Aaq3 zyone{>WCrTyyiY+h;af^1mKk2iYkODB+Tw5Ik9a~kp3Ib*Y^Ws!TBYF|BP6nd|_A2 zPPi=;u~WOoI{6>3!y@)q#3JHdmV>0;-1On0*8GG;l%RDwidx0?=0=tRB4|~eY6=Q+ z2>}ZGO!ey4J_0cLdAAruQ#d>ok@t(mK;OZXd9)>Z6#x$<5=H?Ai$}J0H!05lwCqHI zKJ29pFt*gr02Q!u*~1_!gj$?7}i3UQH8-7_4X=F^tWcYu_hMEX71>0i==`)@S(BQNi-4|z`2goeA9T& z=v)Z*{^8?DuDNwD3Wydo74ngORGY)Yha>9)y&C*=R1BorPFx_>(Slh2^%wI$GZWu% z|KHB*fX+h>!Pm9+P1O8F{3vhOGV)K-92`+c+DFeWn1BAXNOn22WPVfy$Bjq)?L;{C z!!O=&)qVmG)Y{D|vkx9-e@;syyop;G-Z0M;h@SWA$9)|aNo9IHA*uNqkNHeMdLI2S zB)2auU4$4?V$ZY`#mH`%PY2s8l!QfsYHyj)8V+s_cP2H0F0EoW3FJYF?M7C|V~FXa z!ss$G<9V0-!KsKq8GJ+0k$!Ddw6%GIVP1bc-P}_Zp~oF~uot+#ONn7v%s|xFYir*5 zNzl3PquV7!E~RBhA})A8yXhYP{9sCOybCmjq;1FdtnC`J+cT0du1Sou6YtfUZ8lq^dRT?@?6 zPIB>qSgHC^%oZDhIX3HMt=8y%!dfWn_4zCNr6HqtA&!wL6uBY25Va?=%z*)mB&w|$tF@1V@qlh(?VJfD-s z3sT0d$up|1`2=^bq0MruxOA7kp>muf&2|ozp7%{{T(r})Ttq#dCqOe?6QSfc>S||2 zlXgHaqOb8}T*I?lArM)?uvlB$bnVD~^Wg;7Y&Dn0kC+=Z(PWm&Eq2`BTfC_inVq+xc5DZ?^9meE?r;NERMhDDdj^QQE5?lU9F_tCr7w(3MwHulad% zXf&Yz;|=@7mJbwhVBbV-y5iLO8FqT%s)?t}*22PO^=<}9!|K+(p^*h+p~tM0(XbC) z&2F+={G{A1@FzD<80O3cWj`E7B=#1MDNF92lj);M`G_BtA5hGcUVE0yC54aOwtynw z$ljP)F=xi37#l%p&WrVic%-WY@WAPD6Vn^6im+G6g8D7i@7|nf4ixY|c7rUt7qSJ7}InefZ8#a|D zji-KZ_?^RHK>|1+_vlzIH8OT2_hR;5{hf-MfXm5Y_b&B0WLnG}NmAaAnE4GXFpv-Y z>MFevNf2+y0YpBE$HJ!EA3akZ#Ht`f7aW6jG;ip!X1?a{^NL&L8}vM~>rw}Juxw*7 zxp)f}UmB(`DMGP9-Y7$Bk(i4ke_H-_g)N|jHSv?Py68tBk&ny6LUPG{HOE+Oa+_bgtADZK`nOl5cL3+%O^olbojK68$;M9=gVj+N)ut3$Q`q*gdv4A_CHzus^?+cGvjST%#@|3>P z$h%Jwh})P%xV-}G@iw_*iTIhowDJu|jgPqtNNjyd|1OxaP20bUm#SI&YTGB^lj^~^ zX$`HJteViA+Q9o*@`h3Wgu|aX1biY<8$Zd9gmr3PNw6UBcU>9R*jkeA_yh7!-BIs@ zWT6VL))}tcMAuGCZS^g#snwYPZUU^<+gO=h)gtNaz9n0gI)yeCKJC5+FlC+YG^}Xu z3m6fD!JtQE#@>$eNd>}ZLB zXSg_aa+kWeF85V|;(l(Tw|O`qaH3)AtjK&v+HNBLh(8q6-g7Wmid}feXy%+(`%k|a z$CLkWQMP%g1@W^p#L*SL`ltrm%USUoHPX*nve>LM3w0^NlGpLE!Pizw*b1F1sXOHN zU-xBywN&J>&d!=1h=h+pUwz7>jlU3)2xYu-zFC9dkdJfTUP^gtUDasZ$f*Z^YMYIc z?5ziiidj?k)T=9}_aW-Npd8N^);;%ybLoZSO)inK(h!28t+Qy5G9px6;T$LY0c+sv zU&{@sS(hXn$}CoUWT;z$+M0G^39REj?9&<<)VM3VCx`EC<#oG8vxENFB#vWq=b`0X zGgqHnVd&YN5nClSoqE9EF9B?+t zA**J`Ob1>1va$0BIT0#NE|fQgKjn576zl5(;;t!#XOQS~I(*4@%2M(FdAu!Nqc4!T z>h8AY%YlRDo}V7wXAc_kJCUegqlSW3KVt23pn2a1_-U_x#J1awkZ%#J2KURsV<5=c zp_M2CUtXlrFM<+}n6*iXm{j)9YX!K&e#ag@QDlvaS-?WJFHHV`Ry%W^br;mTplwi1 zhy(R(Rx|Ab>Pyg$G~L+|slPZfzYez(?{Az^0B_NsN%e$<;1vNA#ZtwQukopS)VAg9{y1=d z;^#eUDchQe$f<3~d)tWwx6=CyQK3lZZJ(E!smg!K#c$c()UO@}&3V2Ua}vqghqcg6 z7|+MxeSG0YdpAv&y`auUWaU>Y<_8@~3JtLkd-Js9fL>yLd{`!ZoZ2tQ31~nkwr`s% z7SXp-T(oH_eZovr)*14(t$uVYxh=}7ylvZm!(or3;%YA+O8#}tjmf>SB)Ru8k#qya zD4G(A89cWX-@v_0m*0mj)|thKqE=T>V++p@jYmt}?Yca%(?@VYK@WnXjt?ev9!HtC zu_shfs*1BE%=TA@V$P*j0zBLbPP22MPR5p2#_}?6`VO1S z>xl4QaV?^%Ay2EqTsCL$>@cRvGZ(vl=;v>%yeuvF!G(@Hz16_nFNt2Ni!aXscUdVd z??6R=4&q5#``hh3A8klgJ-d^e;PC*3o(JB_mL&hlseZln z?kxlBZ?wD*e#30B!z*})c59Vm^qA`R=b#>C!H6v{f~NT4)JCIaK^^;cc8n3Vz;P*s zDkPukYHfi$+HqCQFr-{9!2noeqfO{w1!(9&rghHo_n&Lc8!;bVGqAEeJtzc2zbxE; zaOPe47x^K)Eh3xP77SJO1Ia;C%jF$ePF5f`Q{c-co1W*AcXo*a135h)UO}Ks_ZwRl zrkg*Pmq9qGLen3pgbEIR&j%S_`z5Q5myQMh#O9U7oV5%!Fd4191bWxxC z#-n@0Ke*tE4p%NC(t;^A>Wfk*W_WcN!|bYQJVvJB{0Xz% zZ7qI#BSvatD?@O!uK~gWsh5UafPq)50%~3>iz>AID1YsQo2S34?M~~`vJw|`BVeTJ zi^(*rpgtJ|9sEYPV|O}j-0K33+(Pjwh6%0gfecG!HD+l=25yp785TqtC*7;69gymn zy=rt*7jm=14sL1x7tU75bNoGA^{b9M130nh#H`m<<=zOm&EgnkCsVx9-&kL~Ovzvg zW)ml2>#o1TIB7?I{?AP8|KfYHLlyJbTONaxOu{F2WfPtAY;n zv{x8Tw4tDW72y*qjn*FxPgRN-eG`Dv)*1<$>ciBxue1f>ZhmD4^PnpH7+uhW{!@e9 zcr4tz6+SyYnG}N;5t%rriAm`&#EwBMZgyf}zf4T%5h-8bY@}v+zm%XH zATvJ}?z)*CVl#2n+C3cpRs#|fx3-e|%=3lqbJS0t2M69AV}YpN(zC5s3zI#2)H;E# zY&xjX8KpE>NMVYeioZ0#ub*C$kzNGj=JPR|)5?qUOT?qDI?kGj4lO_nV!2mS6azaN z1vjsg>!l|9Qp%;i!pBLKJP&J%XqKY>{J)Q!xM~vND&@CLJDe?PjFoN4f8uTR?EYbX zL+z|nftjQBK-cR-zDH&Pdd{e?qIgU9YCJ~GS58w+6=nYyZSNV?RMY;A;*H9!2&hPt z5|yS@0Rd@2L_kD9q}NDCLO^;AsE8=NBQ;V4sgV|X5P{GMJwSlaTj&WbfpFsU{NJ@s zd)N7N@+Da-$=)+_&Fm@HuaIwR_95JF$9zp#Cx1rIfRcF=idgTGc|Crjm&S2(|E@;H ztvJQ*<@PoZlHR-})Y~|?_?VB#eIm3TZ;^aBD#QTjqL3x090ko0X|?Ee zPs&?>f1c5n&j7EaeQAwnsw$uN_;b&1$8%ebe6CES?}WrD6+Xl>sMhD>%>}7J@9#(1 zgE5E{@AE}MgD8_SM+PaOA%@tG&@Koib<+v9?5mJPU!Lodev_}CUs2~5s@K%K@oG3Q zr$Oz}YFV^>wD#4nIeYP3>wrt!u$AYFCb~yzS1a)*k>C;kUs7YT#81?!?tjy3Jnn(} zZ?6d|LO=o@n1B}r)=H+u)dhxAuu9RpYW8f!gf{ zudq)ET{{!uJc%Z*p>{RF`hxdbsD6p;!GYPasmDv+R%KehvK18CBNyaB`TtD z$oTlzwiXrN+kI>Spt4-3Qs6Y2b?f?L3JJI_v>o)roAW?0!bf*ngvF-gZys#usZWr8+f@=4smp!AEu*A&_W zKjX4jJLxcbvn35Y(D~UO@3~E8_2^PRnP(dFw4JqZMk6nVP!{uH!o>~Y}Nx2qfG@}tLP*TD+-=*_A0;7y z_q3v}J2dAShm37yFNte`ghAc2{V}-?0*z(%S?k(35V<0wMbkni&9+aVZRO))Qo8}} zqNritKjcq?fDbF808;c=&%AF1WpvWlaPK^{ZqTF>+Ky9{2#N{x%BJQ5bP29O81EVT_CWm48=~M}ou-qo zPku}E?Wf{tcb=beTu**BJ7Itmk+F1&tTCPXgb$^+Bnad$7u)P)WUEiMZALEcU$Cpj z_E)Sw{~OcdZ$F@g-))1za%Mw@r#7h z<2S)cN0sFot|QIf=rcDQ@$^#vG9qzDjba0B04Qb!(_E3Cr5C#6OY?o9#7%Lo=#B;~ z10L7HMtUM!ZcJdq&xhXN%KqKC)W-d!&TsR9ci_=Kvm8rno&=VCUvxMn=A`DVBjEVm zV9qO#dB*TL+P%I1B2tg{|F;`k63xw!tlkiB%_DsnASC(e_Hl7CvD^4Zu5L{2#$*< zANB=3{+I+RAKso_iU}~0Kb-z-aPS(nnZ4t!Xl(xJC~(ShlkjK8B-Hl}_mlf_qG_V7 z2&bP={vOu2t;T`-pWZQVTvDRXWXo9l4*U^IR=?2DF&6piAT4)?)ELv#(!~neeY7&@ zK*eD_<*Ral@ZDIlO{`r`A@c3HZMK8&^oJ36yrK)@)+(f&Bp*d}4V5;ZdjKiqp%%hBugCd_8p50{7QzQ-=scRYoM4*}XYmq13$h5lJeI-F;8h&bi?;!DQsRYxhj!nG=aK&u9AwLV754{7&rm@76= zd#kjTm>T@z5E4ja_-3B!xFkiW6|4H!Gd=-yx6Mv+sq;KdPgE^rl_ht+?CL8 zf|l9!I;Q!fCgsZhMXgZyU{m3eKv{y zyWGK4Cke#6rkD4A*@N}vdw_T2OgpL$3h5DjW!Fz$b=f%$Brceq?EZ7U4}6;k6O#>B zoH#MW)}-IZs2UR5bQ)0xAl9nT5c{l|uf1D-W~G*r*}?LrwFf5%@QJXk}47wnX|H$GN;U0`q*czvMvQ9It7gIH2~ zruk)*jmz#iBU`-CwU9EqjE_EHnwMPYU2l0;*^1BgQDH4!ZfYX7nWD&O=pfP&`czCR z#u51jKWzl*5P0Zkq$mua5^HA*rx2$^qzF^0-A!ZgM^Fh>2-7VC=4hkkzkX6`YeY`P zJX6w*{W`VXM_wd;AQ?sx{Q!AvYf=z(*I6o0wvuTdj|fkzk$zaeLR_ zW!dwlc*?76U@ZXfuIu21_FL<3Sl;Uz=-N$abXb$d{}~R;T`nEj5OV~}dRnSv$VG3V z5GWIn@cHeg@6XD|*SFkWW`()gPD}DZT3xcPk8FF z>_X9j_W7pY)I>^|tyMy}6UAA-K@9UO&y2|w&@nl|Um@R7dKe2YL`s)u%aVAq1)uFD zHF^1;M6W6lFy3Parrk4(C_<3yfjkw&b|@Bt5-j7#S4B^9m}3@$x{fo&QuqKq5Yz{b?Mm9j{2-9a_KI- z(GsirDR}85_XrvSxeqCFZj@Nr_N6_Of*4 zQOE2fecWyu<;0M^g}%avqGS{*kEzMxs9oqr+@Dc#wM{eJaz3nEri+_Oc|Oh|tFe5) zn)j#puHD}an>yh7uX zZmKCdk#Z+Q%z=x(+nPl;L4QTO2tC=dFYC6c0S$YJ>d>eeqHU*cl)p8_i3;q1&)lOv zrpML$I_E|dR`k|FeB{sgWP8ZTK!jk#gZNH)V(fEb)`CC6b1Y#`;p^%Kh>$OK&)lI@ zm|97p9*bg`w`iA~V<&8yoDbLMy0d_orwV2vcAS3q_F!+kY>IRtF%J5_=&pkd9CFtE zTmQLh_o0HznV{z8JNcJ5efxG5ij~l`}eX~rgIEM@JRkN2`;AUhW2U;E&1d-r3B?m%V*U4J-v z&CE_DOA^jp!$y&ogcka(_#^q^w z4_?KTJp0b{RO%sF*NN`KQ8u<}k(IRF$#PUouFNHkeeDXowzWj0<yN*4cY9M%(Yyb-D?14*qaoOdJUSVo#gDcY3cE6$mEC!$ieVcQMXJUrYkvd zrUSju9r*fPW8ur<1F(;FqX(uCpK({~L^=1pE7<1_2~t}l4y(n9l~$;_SCqRUZx!Ei zb-OC(1$^C9Ts|{k)^fNtQrf%=A2jZ)+RfQ-ju6Dw+d0cwZ|Aqfz1_4aoq732yaK(I zgxK{?;hb;fdZ4_1Vwj)df_0%m^DDlu`zOz4UOQeB5g7*m`6H*Ixmq1k;+R>qKy;TgqW~)_z&aofxVT1jQKEyxHZaqv z@|Ipj-thc$uf}MB{V=$=Y#zYBuRQ>v9jW=LQ9%QDPI|KgaV1kwR(M^@VHR8%5P>8)@Oqv$ z&0{Urwhp?yv+10B?UDCGny!59b83t5E|8=CZ?XoJ7}Qd9*;6a6ksB{Czs%A=3?PtB z`xjp^JGeSWW~E|+ti%y z9g=a65!}r@@nn7-E0vG(=FJ7=yFqBz&dn-tYsKDrQTX!xI*RCfH@6})UdUiYL z-oSsgq2C){{_h7xs#42;5S(6r6{TqY+U(*8Us`9;QY?!NRw<&rZ%ejc;f z<2Nf9*=vgH8DZtUNBT8?36}<$c4khiLXUYlwh#2q<7e5*aq;FOK5TG>I3>tCqy(?S zTWDpe?D2cI8&w__9hcIq`;C(%@y&CLhRvgLuNQeg1LRld>q=bkImNNEKLNXs&uA7B zRKo6F(u436i!MvcA~YgUYX=0PbhA+;NZf&&P967X?Vv`x4W+d{yF_REX_!^kiac0O z2vS4(%2j`L0nO-3SV}H(zQui_G-1bV5U0DI>kZLv0WvcY;T!O|VlD-peXC>cW#U?( zx*p8orGdCMt}8Y8EU6^nDvdbaRj1N=>@#e~WD2oFrGw9vlnq zA={rzS!C^*y#y~YY|trEa}X8_0q#+`Go(=g6=-o?-ly=6-foQGm|@V+@z{8zy7HNn zu$OS5c!Yl$D+6}(G{e(B$1zf?<9Ywg9S(Kmtzc>% zXZ`wjd-x2V$;Hjvz*1bfiGpLP42VV20pX7uqhjqy<(>AG>&%&3RoZy{YcLyJw?i|} zbh-!WX!@A_(Zu%gl|P2AdB7QU33DIkb5B5z(zBY5`Z4e`@+4?A@I#FT>BTwq928I2$huDvEA0@j5ymGEWvaS3+C^pumb5#_YRkt#@h>0!h z*4>C;FmLrC9a~M8DD6k1j_>UR59Ri;<{d&2$%wi=F_?q?Ta#wnc!aN>d8~&|_$Be;ykzY%$umyeO57GYu@!w9VXM99a4njv65e4_&X1g4wJ$n0ps+~bJua>S zK!V;rarIV#Y3U9nW*IdvmxXVvbVYOQ23&7s;ZrC}JtSGhh*)O{`V>IbeW^wri{3%P zlXGvo9H0FBzT)t*5Nvu)^R;(H*L3rHmz?d388ITWhn|7*D@KphZp6# z04Hsg#nZ!n8(`(51KE`UdEQJb6zLbXk(`W5U-=BK=^}T9*61(aCBWBT*vcGSA5eaJ zvbLDqTkWyHKFH3t_*$Uj?rvaTmBf0f|A3%M5Lmgb`8^5HAOF!VO*Seys}T8p;IWZ8 z$c5fdk_xfBoSZ4@UVXn;y=OeOod=I6obJSRPR^ zJ~;75;T%*s&?5)HmKd!9-G7~}d*g@oPRdcf^(A6G)S%CVe>9~ zI{8h^Wxh^w(?n+~)G!MIO?KIRMCHMO8d2HRrgKft4RTKpUY6nv)Q#bZUZWd(V7NA)slJ_uvE-e4F+s(Ddp-h;QHwkge-Dz6>eH<|2 zY_}VzG>p27dzNXjNZajHBeAsUZL>PQXK|9}PO+3j^Mj^Og~V3BsnrZZU*JXdp#2~y zf+vxbxp@*fKI0B^eL57mvnysp77nx zg3Q0RS^iWmtLlo;%+LL$#wE%MkCn*qY|QQ`Cl`O*Zt(Tz7V{Z%3+g+~%a!(MfI!Pf z3fXwr8aFsg{d>b*Q!VJ+Z`5m;ds&Dy$sK3j{&>7VYZ0gM}F|%!X0P&@@4!xeVmReHIxM99iED2G@{9?OPc~91 zpN=TrMF$s37e=;;W1!INpj>M0x(1BD6ZJ>HfvjUwMaN5!WG?y3w&b0kwAr zQ_(|30#+BY!mF(&F0ZCmR%NrTl3v!dG+k;8k#J`@@O;)4^t?{rZ;SV3$5q z4~wjNsQ=3TN^pNZFmBsfsl1M(rIx}XzVFYeg(%#+yb}X_zxy#S zt|ViFR;@CkG%oe^1l4c2!(OIRQp^rFmXZH)!B=|x@^B%_-IbbP!o7MF*yL|}%@bm~ zQlEO%)uOQv8r3qXGNfdRaN{+`dqkT60|WQOeDvX~Gs^Gz+$9#RB8vx-M9p=CEG({h zTbg@`O|hcbo~8B?(xQ|(89wU$>N3)BMUVrg{H5wP3)*Mwx>A12n+ zW4|w2pf6>jW?U*R`RM6uK`#X%*$JF8e${33A6c)O%d2cU=`^fi{1A5u%6);6sWCg> zN}%%@CSXtoJn_a<4Oxa@`>wtKp`D%h1OKD=%3&JHTloP%N?e8UCz_Nx_OM2lyQS1` zlET;lNo7N4_!Pqq#awvW1mpo7bg{*&({Er5ZdoKH@FBa|vl7D+NX zD?1#M3DOUEO8)JcL+u*BMT9a&x2A5j07@d-LS2FO3aAFRTInO>WJ z5e4LlPCNa}Qf2qDR2+_R4LMK61Ta?;j_O2mZ*N#c_eWglzDIx}t2UTZ1*P@IrFH5n_pqKYG`kW$6p zPIn#`g?kT$GK7ab5-_(d9tcn*&Pt8r;&e&Aasf?q9{Db%PGfa%h2AUhLs9=L||!Noyda8&B6&UKEZwY6vOfMQaqKP&O;ckNm#aiJwZHo z+p!qot@VDSn6XjC?I@)Q=g%tRo9xbX^chrrfAPwDn*0Pv{U#;2DOS|#onVKMv1zE^ zNX#mCCm)rg`ij^rBzC(@HMkHqbUZ%bpIhf3!#o+Z&gmJcBphMS1LCiurq%{bWVtQW zgKPcCX7h3dItoE197orhWxxP+hyy-rPlky90nWj^I2^U&dXjzp?Cxlc(8}7>tzvxM zKXG8o&6gH01691zs13BmB~)I2C(82m&mI{RSpXtPKXUwxFfK5{mNVW$l2PcbyFVdV z6W`AuoZUuW+R^Lk%#g5%&A06J#SC4REOMC)x}|P)&)loei@P8BqpjVuw+M-lv#Fmd z7ZGC?57a}cKiuoH-`aak8F&mo(eibR#Ju3cFi(!Uj*p0M81L!Z-UG$h-o#Ty1r0`W z`Y=>W?wUv7CzF5bv8#RP8wTFC`>qnCsF-Zest{+6uS$|`9Zp?eH+ea#c$_REQ%5Hq zq&l90eCvbJ6_TOI(eQE@8F3)SCofp;^BlMwaJ&thilpsg_SmL*O0T-BR!p{#u*(p# zBxii!6r}&+wrR_C?#i0N-5VJ=VFUA7+j4Q5X?mE8>^ZVVuT|+@HjLEjPNP?fq!(|0 zhC@7Wd|4$Id*Txx&HlFDtYzr!*~s4JwKF=zC_S{cFxFc_A35qTI5W%Y4e==HG<095 zv_rGJtIQ!XDWBjM%0TW0%me5j=AEtOEcF9~C+#xpO>RKRPJ;Z`me2RZt{n)cy{1cD zOz6sh_NHvdR%ws@a5LYe(v>)%G7eZ~vuF#^k@4;9#b$(m6kKXG5{+BQGpGHh)3_gd zRQ5d!GTrH&)p+JETJINKBPNYKGnJ3Q(AH(0(d-+(>$q}t_Ms8B|5nhyU9@$fb8nu? zl8)!DzNe+T{(H?>sLuTYjgAVrG`KK#es=l7on<`FfA{Ux|C0;Fw*J=)v6k?FD%UeI zKK33?5 z+Gz2XxAKa$m-P&(P^`iyHtf;NN@T)JT2F7~rghwRvf?F|>$s5t1 z_a)8L$;?Oj`b(vN?6xV6b$v`}UiaIEt*1WjUZj+m>2rJkj z)%OhvlaZ6AzH+IWTm8z+Xbo`guI~6&bs0XjqGBdnW9!1sXR7kPfP!v}o{HXn+fyv_ zi?BJ_OEcqa&r{U`Rwv$6?a7w8+8RFbk=Qy^yX0q)6t5dD!D+kMANh;kQIgG^YviGW zqRd|ELJ=!puM^^PK=PScs%wV4y`tN{0j&y+S;6Z#n6vq^Q9nn;xc`^^VRytD7y+AA zx`#CjtO{FtXVG)}R@0_>MygUyvVAevfnwB21`?_tedg&61Z#k_UK&oy1@)IFG z?vtHc?%j3=GPmK7>8*$rsm!*Ymo;Ds3ZAuNc?H;Pps8FhHE?}AIgldajZNB);f~Rh z-~K}$RsKJap=PfM+U6X(cfT1^Q4g{nS;|8g{G=xS%5*H(6TkSn{*KrDvJYOS)ROM+ zf%l^SyoD?FuT+SxBxbZYB+hqg5Tw#ZXW71hoH`}&n}^H+^UomhN}7GQ^LeL4{P$vT zlU7xJVM?_*{W`8Yh4rL@oP~~y68v)O3=eywBMv4$5ihg2-KQGG@gN5YE^9dHMDdZr zvfy05i$0a0(eW+*j3|hHc}B)sqJMpe%;6)~?z`MVC>^@kAKx0})3-j0t^O2{*R;sQ zzHHXADdY;?N>Y)g0&HOaJ!WYb&U2B1dDl;Mb!F&gcD0oP*MRXQ@q$?weW=;oNsSX3H*g&wVU7|(@xOL{=i z8K29nB{e~EcD@4BQpp(bmn8}H%ah+Xqy|;KC?Um%O);OUFS*NAu|3@DzkAs7v-Ms` zqljoHw!FNAi+d@S%&!r(wo3{Cb`0>3#NdJL;D&VL^+a4@^Z?9{qNf-JrB-$sfEk`% zeIC320aJOb8pr6U6(_v=p_KNE_;qbOOm_Cm8_NA8($}Qcrm`o*dpE8IzNI*n008~s zb~;Wk5vI$19kx@=ptC7ggDg*EB&0mVCD;nx;JO$(z0Dcv%t=2pA!qMLeh%wVKts-4 zj90?ljv$BfmD0Bz%QGmWEhW;ASIdBI=EoQ3X`%HYLI_^L0Iso_p7^Sd$;-f7XM*3F=j8Vo3=-K)&YtzW;bCiW zCSYFX$G!@4o_c#K)P$6PB^SMm6pb~-zHw|EYwmJkkqq=ukkb_%@R9N&(E^@wKHhfD z?oow~xF4pSn!+?=sKli%Wt;=Njq{f3;zE;#rvrBE_7X$9O$#Y1dveD^8B3PN7A+)@ zH9S&69=Q(iX4Fmy{0c#+t7ZjHPu4{t77ItrLOyk+G;6OjY$btj7h=lB*CECj!+$HQL*-tE_~61i{HR1A&7J-#ILnZMJmIP2#_PK&7AUbduars_VgyD^ufS0)58 zSK~!>Ku#?i#u;&Ag|a<2*p$R0R9G{rn0(mKwTb>0 zt}Tf#d#k#nTL3TrVUq2N@$gpk4zxuTRQ}N0GF90u%yQKoIm{r@pj+kN)6gKVRZGyx z{@H!C_sCAR4&DP_fv-5=&RQ=i(ov;ecUi7jLDPL<*%yztTj2*+S?J_I&qhHEwHp-*ADwS#J)VG1+=Xzx4ycY+EFD4yQ*Y$?7WG{F@Cit!tF!d<>rf@tW<79`k$i=_Q~>JJ3V{4$m-prgTp2ES5Fe#xyn4CNO~tOKSp(d|d=(0Rwb9zET3 z^GGkRWUUdUb1yndy+&2xam)<&w(KlDyjxy%eZ-BI#IU7V7}mf;g(dTb;*V3+8Q zkm#a_{HZrk9FceC@jp-v&ezVoHL{kTL&G)gh3KzPUqYXNJD=3#l7L>uuT@<)`I5^h z_KHaAMAx!@&HU@b;77r=9n;@$%LDyIujnxdDX^D~bVSJt*85OiD%)qKOjdZax2HS5 zT`8}UaW6xo%SgAr20<1hK+A!)J(VOc?O&TI=4W=x%dsgHRCS>gT3j_$FXT=j$&K_p z*44b?J~+7A8;y?;?tHwa%69O1XFj_!T4^#y8IW@ZB;8r6s0vHnHvl4ULA@~ zg9tG_((SNWaeV_eK6+cPBLJeZ&@eaZQuAoPJh`+Q`R=BO{5@Dz#QkLdSA0!02_1nG zju8g`5|cSE#!s$cp?i)pDu#GnOX#WFuwJyyBiRx0)<+B>d4 z?UVFc(0GRJ!`U_Cvz6{L*SzWdhaM$gJx34XbuALB&{Gx%q6^1`dy4zbtpOcAV@5#J zw55TDLCp(!h%&V!;((3(MBm`4`(pBfb@_W&KYTAMFfobW0?z;JCdQi+- z4s36l*Ss>!{D8`a`vBCRzL6GgU2|YsXNz{atwF~i6yWnsW{PYIP=HaedxyyB#^ zelH3#-|=d#mvpUEKf>q>G5U{pq??Lo6W3eg%0Bg1C)*#Gssy1on@oH$hNQ-ruOmBr7nWPhh^C;T#2_VWZAnR6+NQA=` z|2qqHM7ep&AK;f$37zt`)5!|Gz8L89DOISZqH3-Lvfrw(hI2{)Q;uFTVxFW0ehQ|^ z`Sj|8@H8r6hGzdMM~B-IDr~rO9jH_&0l7jd_8;yH`$^3;rbn9JfZQwwk-j90@mSMSG5aQ;OtE`I zY%y7z$jK(W|DinG@^&G)Nwh({s-%)*Is!_!q=M*YSELhUqZ+m26sXYP_iKX;Kq=V4 z3gMd1B8p-5n=$v3--#ci7o_`)vsaS&j&IM=>{FB5cm4LRSkeC%5nT5_S?qTT|D(C? z^Nz;TQ!;c2^KA2_?lsXK81Spfj&zi&_k>`Vk2Q}p-gW-*(eWxWJg31>W z+&rY92F8{{b-?C+uwoERH!$A^)lw@^VNXRtnF8#pJnLj$!m=EpCf?Rl&}%31CAEq5 zWe-7yw>~3_#S^?gmryPpu!e9GZWu8NrB?^ zlsoXLS!Tej2-FzDxufS8eG0AsI+z((xR#{P;m2fFnX+z$_u_N{A2Q8lQHkz`j|;D! zjl~ThG^;;;iF`2itTf9lbfk^GZDZL_asQ%PLhE^^mQ5Y2ah;!&ULEJ3MY{~wC7gNZ zVB(}rg{+cv_+lX*zOUkJ(_ylNR_u$$lhJ@}b@Dq`UA>bKF`2@;4bUq$H%}VPjTf8O z##OgyJ6?1zHIXOO_JSZ$v8y{ZCFNOJn8Oh%q;ZqXWvaM_%WN5Z;PO`Jl2Y*%4%lYo zJWs$!us_Yt3on|6&WV(mZg=U!UcBtBLs zOqm{&Cih&se zxats27`hg66=B+e-r|6AzXdVbF>oq?T{aZZLz1CW${eXI=wjWm&LsZ2CQfW7gS^fo zv68P6*{3){R_zWDj}KLRAA1){XD9aXMeeLg&}+-RqOdMm-sV><`L--p)$S)Y_X6U3 z{+YyWdm`5G_3HukUS;+h$Z|NAqhG6>pOKj8EhY!vE8W}sxbIHo_b4}ju!+^47Ng!A zY;ffS+^%Fv#kG?aGCA|~L96p=LF{1t?Q6KTdV!F^DsA;s;~B$xNX^4VEzC`Nw?fxdn9KR>J)wmgFbWzb>0&2;2|F@!7ij-8l8|4&akt*hIr_d zX=Rb#>~v(a+i~lmZ0}xUg}&PY_XC%OogHBsnwtR4XDS9Wi1nPO+!)1K5dnyF2F zmOX?dlws!l8TN0@?*$5-F9Ja&my_uUcC#fENWCG+5tp7v=WI&Gf#t>u(Q%dy|HK6?D zN|lyCbp|hQ{a`ZWS@CL3U$7$wM?dnfx zJn-aEzrtBLgdi`JRp!=v;It}dh1ec}WM_*rcdmruev($k+*sucpJtjT(`R9mdS>gy zadTJFMuMGZjL)zhB{s6;l&qo8x)70(uA%$NOyjDXp{|j(DMu$VP|E{DNS;!U(g|P1 zvJ4CQyOl$Et)fLmm>2(9cqP?s*m$haoKuuh*w@OTGA2knYEN&*@IN&+;H*n)W6JT+ z(|k?-voG6nas;mB(EEsHi4)H(?f>Hwp@Z-|`DKajn1z~ztrFQor1jjzPnN*M2wfWm z7^@bPIMDekgYh15oKWp)<7s2BZW8Dcc%xH9On?!%6Skw$A^;-x42aUv0UrY4d+IE1 zR#wQy70xINeb7qit4YoyZpi0pG__1xZdwao*2HO<9RoV?iiVBt|)$JpTByjmTjgQa@@$m%mz1J@FSV~0a+ z;A_;6fks5fG4Njq2NHeQ+CxqlTJ80oZ~G}IToudD5u6t><#VFMXf;cC_1bocbm zt`VJ|H9ILkN-jI6y46Dsp+-kBl*VJnjUPX+#B+~*t`<*guarVV^15h`?~pF=tv%lh zyE;q9=4kePTU{gLY4sCaIOxF+dKHY|2!&rfG}?{)Kt0x%u)5SP=oLZUuqBrC`O?wF z#lAu2HcDgWY=6&Q4VK_he*bstOVf1ozbLf-^Zfl+l=t`6?uB;fafNNmLRtk>+AG+k z{P@Wj6|;95#}D#_4#_GUhx%cSxoLN$sZR=;InOt^3;w726DLP)RA&}qtRu>Lc~9_- z`ZK}+ckbUCy_4#si<><>*1vh=zrr0Wtou9YB=S7+eoOD(QNXY3{Ue?io!icJ{{A#O z&XX?ACoeTap(U__!nJUIvC8$hLy?ro1d!(m`bXfr=*uR)QZtoH@=xgCpzYM(|LpE% zQXly>lXybNM?DNt=Q6j!D9m{CLVm2oPWp3B!2J}F|5Wt7ZdW+Z69*7+HQ{&40!<}4 z*6y#4;@pGdFSK3tZBO55xzkJny^3coO(p-f!|tu1G}oxcLLG`()>rZ zxbDLLuIc_CiGe7(>m=tLk~~C}lJVf&jp?igw+Gj$GY+T4cPlae30M zZk6$FP@cAHd68&o;7qA0EZCKS`BXeH6lnpAL-#WMYX{C4u~|Alf3aFDO1;W&H6ZRn zzVfBoBdSL7NTIzSBgJ-OlJ>dCY5{H62c~J=3XZ+1aK3;3gH)6ya8NEvfoggg3|xOM zU&!zM3fdEPvhvg4&PUYI{@X%Z*-Y!cMROC+{L!Bd7za7KGta1J-+Xgo5g~6M~gpX5|*VO~i7x;qNzT>ljF5yfIQy2Kg1r-BmCYfFoGD=7Hq%?wa zH>m5!-76CMFEeIY;@PXAE!Ys@Kx32jM2rp+d6Ux;>sScHG0t$1+gQ_GJI_n zN-b(GQR`RNRY*1Zq5ZAgec_Xx!H$avN`YfufnAX4&Q>}o2i8H5F zaQ_?6cT%u`$z#% zY6p-gBkqQY2Rx~6T6_O@t!uHs!E}fEPIJ8QfA0bR_cN&fad`NDTRs1G^!@*Kfz=bn zJ1u9YdoAZjgq8?^c**&)F7^ng9HQ@eP9Vg#c%Qc@pC7Z<$lA@;?kJzX#b{{&O1zEy z0`06^9UW{Jm&M1n$@BmoDjsj4e(K1rFSJWnX3lY5w;Cngv# z&qyY^MRoJp%}ke%OXp{9i)6Ihv=4>mkL=Vl5M;H%l)whF*&tT zP1~v5axS>m;!IDy9w@s|`TbxC#5+{S&DGW7<-4{e+O8v5$jf?aFt^_<$pzAUU2c~> zEZ!Nuu=Ja5yRfbM%McItKfUjG*`K1^I>E^`Gfl*j_j@vNn(Xi;GK}FT?ri-|w5 z2mwAr@GCPDjKancYOmPsC3piry&&u>dzVVIYWvNakTXLDsF@v?#s}d$Z!#6%SA&DY zg7>Lau#|s)3m9j4_~uss|7yn7^J`y}o(=Z*HwnqgqFuJ@hBkm{j?~T`z?OdiYy7b7 zVQ=M19W`J2jX++u;z3TMblE{xo2qVveIM?V3(tC~=HGwgOW=M&eW%%7{@)$1{$ING z94*JWryzxulLo{Ne1ClDH%1Wo$Lt^)UL|%22Y+@Ud?A(81jPhJ?ir9|qVp-HBrl@A)_wBcf(#va*p#)$MQLnkJm2^tch{3Zbv-cj z@R~)B3&aluc2I2WvZD|7FbAqo`(^{6McI|zaw@p!jJ8~l1{ZuzA!rCQW_)*!zXUb7 zU;Le_1V-Ssfm&3Tzd{oaI;NMT8xPMF(S=wY?iZ#8*304U96(Y-`38San}hzR3629p18)yQhaeLd0EBolKku@9fWqgf(Ee)1=-5EGq( zZZp`qMlRR^T7fcwYlT*&26K?SW#%AoVc~*KU{|=ab=AN!tpuA^ZtTK_+s#1pTVTuz zr1vxt*{9=x>7>Ul>CViVSRwp0Q?|`3ne1bZkIY^j{6X>`aEzzbLXKjYO2h~Z4(QOf2hi} zh<%!bwMeM)Vklfoi7AMkDq5v^cBmkldstk^A9l4@pi^-7yPNPW%Wp|RO2CAyuF(!Z zs;Bm;X=F0li3fidIs-KQ72v+N)AYqoEZWy2spSWdr}os`HcW&Ee3#51Jm&jm^|tMD znzr3_6z`Y%v=U;nq-D6JelQLx~;QtFO5x*{6*3Z>TT>uotkkNs|2uqC(OeB^GKKIKD* zf~mr~ZeZ)+2@jl1xp@?p_IBit3O8K3lh~dAkIfWG-jpi)pp8HA%ru_)?M1%7=UCog zTN-@&^ogML0pdXvmy$7b13z!Vx3#>nwoN%QwAr$pOb0UYrwI?og^%759Zq;@}T zqrdfZyO-vV%`8pqq9t1GKFvM0b-w*AiLSzWuJ;oTyKF4WO=A@OMN>A6K4ApQT>3oHxh)c8IE2%JDVpkFI*Hac;*~sy_r$*KKw*UV9B{TPLv{kCUx^DBqBRc1u zcP@MSJ#DeP^NZ5tlV3r;cc@j4J2Q#jPN0|}P*&~bnSCCo_N@*0<@BU!@gWcK#R4Zx zSf5(FxqS4xz~9T~mgfKRt3Bqo+hE0q={`$$Uox+$Ul=}7KX>v2-h=vW8rSyu-VAz~ zy`;>qthP#6aM9Ui&Y!pP7v(;kX5=0d=9dvH`?YA5UF+THJJx22H~m|?Za4o&w^h&b zKVPZ3@k?v>H@m*oD=!~wJhMY>m+$J@LOcGcZ%?IXu6|UMB-;u+TzAK7MQY#Z33#iuXwSTzNG9Xw_!Nm)f5S%H}^PH1Y5Cz3w~p z`>HrC`9%`V{q1}T7t{XTI41OEr_)1MdvTFo|E_$Ym#>dL2RJ8xYB-g7zY zwb;^|3Sy;ie!aJ^TfWm*uJ*$DKbEKZ{clxFtg3F_*gCh{LH=~O^t}D+j+s>yXYQL> z69SB?%=G@vHd8CU>*r0Dx^a7Pg;({X%Ww8eiKlyS1>WoR;wA9bXVIT)pMEHva^GuN zXKCx#|1ol#B82bqZGP9iW6GvpewFRLb2rW9wGvzUK9=wKq&KHhax6aq$84O^EaJAS zR`*L@&y9S%YfVM{LOa#wH#0XDm}%7We=f+f?XeU6{e~gv)#_`34-a2spV$1D8F<(7 zQJscG{o=E;zIV^-Ui`wJJMH?;E{j*MbN5|H|9HMB?pKb@irCXJ-QC^wudOeroAp`T zWZiOmf70BWg-i4|7oRn)4URwjBp_GIZu_qDXTO#$HM;w3$#eUl`Lp*idz{5QKNHywl4zG+Z8@n_=W%w&^aZf|ae>t24d`(9e6`Wn5}&QBZH z`SML&zw%7qL_^C9)30#{zFchgR=zopr0D-}z AP5=M^ literal 110140 zcmce7c{tSX`)^WBDioDuUqY+xlbuN_e2{j@GFhUsOpI+XGs>3iBxIS&R#_%w-;#YD zOBoCXgTWYsVTM`H=ySf;?`+@SIoG+)b^e&^nfLa*@8@1$_kBO_s9QIU`462wv}eyA zep8ccclPYrYqDn#@5I3a+%vV=*KTqL9>^Wzt9wfN#h17T`&Zd*v6g*d=_H9kR$Z^4?ghOp& zqd3HP4uP|SfHSd8EHRm|qgM|en+w_Gu$wsG3Dbkz6B{RHc%rzcW%f<~Pveq86N}XW z;%ouo!JLzu$F3gSVSeiu?lF*NkveGaPI3CClbq%ImpK%09r+a)@g5pWoMX_W5KIaP z$lkuVD6G%kp-D9rYlt$2!cJm2>v)?{O(l(fJhj2#QwykxQ|HDY(GdE_3zAo{o>p^6 zF*sunlfWV4;LPp89ZN$F!gL(+hRHmuCme|>HS|70S>1w0>oK4;LG%@?Z{%X{fsqgG zUtPh@xI)Q4QQCe@HruVJoM-M@W2h8l5+jhWY zk0z}pp026KlMYKfK2z5}+#NGbvK3G0_J{ZsPga4aVa32XiBu>1R2TCfHNa^~TNK)mln#Kv)}&Ip{OwjLYDq2f8AEpO@>6cGC^hXrJ% zvTi1*VE60IU5k`-H-i4{Rt|9tcEI>A=ab_z*LJM;?#OP7Pm=CV`HHLAdm2$!6NkH& zgs=mI?-ik}wR#x;8sXR0orSxM2c4vh59kuod1nJRskohIs^`34#6)?oJa0I6L(3nF zfz(%ZY?0UB>n%|ldjC#MEitx_rAy?(CX=i7_nZhj9Or*|ua892Sp^54h)*g}ZxXAT z!8g!Khakya^+sgrE;EL6y|v)VuRb2JD(s%x51D%tOPMK+8_%_xKG?m?a5})=XAnW^m>VClSy4%ARK}EdO`=?+6J6}NA-y7TkKBOQqCWnnCO%MOT zrEq*2@f3=HNlUyT^9HVWx%h-crS|||2c7YW9x7Iij&riTQ}rIu#y#* zMUl&|@KV))1k7~-6V`3H_1Zd}IoI|%Cj++Lcs#o9d*ZyfNZ;Y{ zbByeZ-#c_1ar~h3YF6zxsLt@H_D>eKcSX@y(jm=xQtu{DR+#zd+EDjbi7Qaj`;(ES z-_h=I$PIIN>fY4t>yUfxlT~)!vlrgQ$`KNYTAB5&5f>B>>tAwL0zbDLtJ0>`C3FUN z@qCH7y`U~LIDf~5Aj2@Y7gOTBRv~Dj*3mAV0X9rJYGckjUo#=af*0R-FfkKv$sy9`|<6BY=OD?De38TSD4L2I?` z$BX0*h>)ZHB;dxlEWEK+d*16c^d*0Ii4cVu@eca|%J@p}r$>06?L*vk4-55r ztwOOAaxgsff)8>0)g=U#c8$o~V&Gye9Ff0UN}?*UZkd>aBULOjD}pB2sUfPk9-w)n z>^7t+&FX_OE`uBX;;Ju58z;b}(4#ajuu?cOk-vHxGFrdhg z1_-9&=iFm-T=*vy^T{sa-q}?$XgeP7_T@XHw|aux4SMaGIAQk|zUjWVTHZNH%~JzC z#-U%|PBX)3E2)+1Bo$jNorOXAS&tN9l>&HQx$mf?o!6JXorD6ZJZBe~N+uiWt@H{$ z4XK?iK5yGYi^GwAzcLl7l=^&r$Z;0pa|r{OdcsQ`?36*O^)liXe% zZ{-z|2}=;<&M6hs(-J0re8b;m1t>+~=oNPbubrK{IWjj=XC08%#Yr!C0dBZ7Y%oJ- z*WKX~(izHB=Jaqj@Ekff08-F8KkK8)$i9qA4>>Z_Q_2ATptUu?G5yE#fKw#(jk#JW zmFMY%Es4i*blF6&%_l_Dx>C!9$#p`xsv`~$;|9p{r2;0m6?eWAg(m4ApYD6sfRzWl zW@Z(@r1$=v{<9pAYi{qvv|;y6@(yKr?GkYQhkpY6D$c0W@UghcHJ5Wa1}bj>xpz>m z0}kQsq^-umliaW9Vk{pxBV!tq#T-zB??Mx?o~us^uV7d+bX#ls&~YpcKO#7~*B3c;+KH&A zuAFE>DaxgZ={8Yu3Dss3Jjo=$!daVRsK+>U;^dehOB90PBu%FT{N_#i%{pd>u=fy#+t|6ZT<_m=b6|@2m75fu#=VjT64wsW=}1Sn@v`bNi)7_-*iUH33G4 zZGEYPrk#!LyuU8su(Cat`rQ7L**TPqCT{jVjfe}@Bp$slA+M;cEuBI>=WHM>WOwO_ zpJW-?sBQ5%u%4?k3-_R~s{b|yge6#-Z;Q&qwgOI$ZSC*{7s%8>O&LjY8|x{Hmx{dc zYi^E-aoBihTkO5|1}GI?5#d@sefWEeFN|{0T`Bk-)?a4W8`Ics88sMC z)rxMK65QfBTctcQj860-yjNTJdhwL-xMr8LOYM*CR!yz}FLfE@N}T+iJMciWU`yat zKc%fgWU8N4P>Z3QvkUaXK_=@?2ac-179#9>dbfIc^j~E>I|pf%{vUiO2E#CPZU^KB zH~ek6lmQ90&jE_{WBhQ_|KUbu!kFh)c<&5ABk_|jk)6gv^W|5NT-Yq5sB9p;JBBfz zuZ3LO#oc?E{+vk!4Ub^p*j3fZyAE{j{05FgS^^nA0lwjO$co!XC1BVgJHEkiPXNYUj_{ zJ$nC8@&9ZDEre`haR}xXh=cE-fvNOe+}{^tx`T};bGD>_jo~nV=(TpYBIDh)6ztpq zUc2$nCCRIk);OtI&qh?bG{D&xpk^YVvS-OIE zh?|};s`+R}Z93A|H5ck4#k2!zpiUE738YeKxeSrmino+qL2jH2&ht;$3~?Tx3;8Z! zkr%V_LzdKK_*GB(1m&k27EYOVfs(cAuS@OTn;o3upD^N}x|TUwppX7tH1@nej3=jdJOhk zFEhwre^=V|LZAipf1`!sJ9AkVq%!+NjHF~z0cVCP-gL>*%Sf5fD5Xr|Lm zGTbn;!N(_PvH^SBrBRdP)nCTV*W~&ks zOAu`@-&1eKd$;aq?`i%xZ#j>bj8d0qYvswBV(h6Mb&B^P;=#k=%6yJA1r` zb%7HWf7FBzy2SIWLF@;(q%~VVo%Kow3C;xNi{ojk~-(CL(kY^k`7+f+^4x58e zPHH#XawpuFnbG~<0@_KQ5-tgf)R)5f9Ut!t^wpWv9{T>oOjIEG0~-Z z(pg84i-<}#f$IR?ZLu&2);7K>7xg|8cH(#7&niSrBVf)&t+=S`t>~6EjLqth;;fJ^ zrJhT-vfWw9tHftky&2rF_$H_>cFEV&Ilp#g`vRM3qvE>un#Dy$0LcWCxCxWWrbgC| z6p&44;f#^nL*jcj+toTAP`)<4dET)8Iw=zDTwxwLQBSb&IX0g>s;G&F3ttk%e(Zfc z?us5`vsH!eVSpU3?Tb}2k5V5hwBGQs-nj1K6QG;8)qP6nD%@@@M1KEF!2LW@@rU5# zS0W8xm&3jK%lEf+sl!G~sxz)%Di^U=Cs&(h{UVw+XOg4~CtKOi+pI8d8XVO*ci16) zgepDu>9)D&ssiAZ{}&nP_OTMpq~wqTTbABny|g88*jBcDu> zA+|dZiL?PQ4e!60)OFl0vws8^MLw1Y>+rnViHg#fUXqbLdvM(K4brwlvtTyA^v#%i zPx}M4d4HRUH(LTF?FU$Qo>o}U>4jEjhgkPlcq=)3SJD__zkB($^=<(6>XH);%xbdd zepkN}D|YBB8{c6F!gus*4))2XF-j4$Mi{ELSpqF?AnVc@ebw@GUV`Yo+4M16={jE^(*j z(3>fizw5uE7S_hXN&Z^SQ!7U25MMJZz|CMyk1KY6rcQ- z5L0TE6^eq%+YXSIXIR5G`PmlHGK0$3iHWPm^WU zuzv1$U=l#1L`5U7@}u6Ik{Yn5!F@H{ypMdBHsPx2j(E5bdrBfwW~Lh{ylLan(hyt| zcl`nOUL$mHtCJ`B=*D3@F!$p1_WILxHh+EJlL5_7+cLUMK;by>3{EE=K4%v-Z0!!bF7Orn=e*uvUDX)%ynZQe$&2Y!LrQg@iXLH{y~c^ECj5|EkOHr=b;&|) zfZWTeocAxeE+5@0nXuU|K9%;BH)&#Et!eX7nb^ng8PLFiQy4lZ@JU?ElBPWkSE$|% z{p9LmLQ)G7bbJ!)mp z!G~trWC>A&Xk7DEmR!&wv7W}4beSI0-LS*I4#=(3EDu=GQ%Z@9=<=!#h~yn=LH~Zw zg%-=-n!A-2!ZDSsg=Ugn!dAI|LdnV(9~5c1W>cM{zzqR;&A`&O$fGssqzpe!jJY>O zM?e-{BIb%EZP|z?d@rW!S$+X)j%@@N}kjYp}fxiapHMONH;Q9l-Tc_9J z?&P}ybA9Sba4tw;=Y#rMYWy*b^w;)`kR^{T%m$;<(7LgNPCuRM#U=FW)aidI8FD4$ zcs)asWbp|LsgQ-?u;Bbyf zvUKQer^$gzJ0`Wk2A(Xj1H0@jU)$gvnj2jIsScTX6QA4T8rsN385_|v0w&w>$0sc; zJzv$4gB8!znYL3_fJU}OsAW+7`Tc>OcC`ZQ!V8e>k$Ef-&fIb}qVHC;5l6J`k=iu% zMura>Iap`BIE;4H!LZ?s{^NC8dxs(gP(B=P5Svx ze(%L}>Yaw0GaO&+sm}EGeR_~Cs85npdBIEx?lJQjgAqe~dbrPvv5(A_j%Sflz`LRo zY$x#!&FiW*_ffpd9vb(?<0NB za=jPlCpF%Zgl6?mMzIp8T-43_sI?1EfD%DhWal)N>WsPcbt?bBXi4uU@3k1wz0N&8 zD8u{j6y#ruG6#@nzM+-Zzstlda306mR6pJEsw_jA0~D~>%}@ShWH z5(#TkVzn6=6Dxj52H>R%n4NQtf!-^!aDzcY?}D3*bT!E#-{E=0snpSxyIvXS@Zk28!b;vHIdJr05BOhMN*yPA`jNs(=RX*d~>TM#8^G7Ag}h+Q zH~(5)Fgpg^wb#jSfL!!7zu{fgJP1`ql0v>u?SF+<`o}k%Ms7*Sb8ibv&vrNG6iu%^#*sM#-mJOv95Hq1u;@yGGX_!=m^i!c1Lu; z-A&Fkdg_7{^c;tcyUxgpS_3|6(L;4`P2PdMB*&2&vT6BKkW_Am1D-Y7sOZdvlnLkz zxeBVXn{E*i_cS6uv82ijU0$bFV6UY5>I*y%hGYIIxg{t^u!J*M|aS+I~V zlA>yyQYZE$%NJM9Nj-?h=kT6{+Hoo6T2R{>((rjCKTPw$lxl52YQB!N#Rey&k9Vje z^3MuEN09aG2=e4G*fnR1W3!0Dx{}f>xx$Ay!ISBNO*mkX4 zQ#UpNJ}lOz4nQ_9ugsiscWy{`w<@oww)V31`4@NxI<9eN|2A4t0A)5r;$QHPXLwso@^oIwXsk7Xc zAe)5ylXx)WrEpDKL@;99KXt>et+Q+4PZlOzE@1Mf$GLC=#pG5V;K_!_Jk+d~^j1sX zpZ4TkAAUyMV4r_N9F!02zzCx4KGviLqDjbWNv9xhpA#^d*ZZSte>bk`noup>z4y>D z@j!S6EI_(jz{H9oWRQf;Chg|5@F$JSx+e6okG|zJKo+}3R!@2?^wtEtfA?Z%!JL^y z!W;jq^qG7LhKvAC@h#&5#hj7^pBevCXW-jW`$x$W>i*^8{&(XFZxTl_l3wA*zWYNk zoN2}r{MVayKDN=eDW@Qfg*&!}JG$#iQ@OZoN3dH@9Huvi(5|W82CUlS1)FyzY`UA~ z5BIU%HrWNQiTOqGIo~uVjltt{2123CK?N%ELG7uFpLm5TuVYfoxl_%F>=QIWFxjYS zKAQJpm*=M!(n-9-^T^=N@@inY1Ugk+9AL#G2)r%UuJI?)hdVHNzBHM=5Ks6N`EJ}_ ztv8mA<%U$tx!)=Xm*keDAY*`3!Nw5p(EW+sfCfsTSh{Zrd%p6{xd2RdUf3u%1NX+D zH?_H47A&Hw&lc34#U*>^x+yRhHt`n`ja;k~MX*DWx1oT16bp%wzrhIk1&sIcJ@wvW zte#lCTNi7RpW*p3h_nZL=5G^D2D{E^-AmMTVxHv}yu^AjyhEflWdu+|``=_ep2avx zaC7{&Kkqm(2FU$D;h9qif>(2~Ab0V?yMzYPUgB*3h!pkHt>GUOv(fW^YbuWgO{j^& z+u|r!MkjIOq^hGkmkmcl$p4QDd5n7Vh3q#9?SY^nP<)aps`AFZtbP zWon%gd-8)PO-dmydcI}xgTs@wmfuf6lC%q{vRHqc6aFz@2A@>yPQ6DmVNL-$5hmtc zKCWq{w=XuMpG<1^*&!svP93>!ucByYIi+ffS=0PGsQkopu`smvmGQt54c2hlcT-SR zUwl<$(vO>2@c@yav>)0p1`>?AHY(ynsp)C=y(}T7n|F7nsEzOw{sRoH`rX&@a1&e! zanE|jC(Y4lRX$<_Uu62Nk$IkHQXxfpGeZ%J(`$)okzrIy9kZ)&tW1Efi^owSJ5%|l zuIrH^M0aS!<2g8ESgK@Xe68+D$&#%`T5<)?}#RH=IE)%( zdXJ;=13K7ian{5u&W{^k!e1?p&cPTgZk1+xM8LF(EVd` zY}rv~UD-gZc=)}gmpyE=r?o-2_&0XW5*)agbQ#lJ_=W+9Kg;zB@umS+o-bOo+xEl` zG$g;6*p#e4wp4fGL4K3z2(d4NnUDLxiY+642eVP0EkQYvQLI&y_`z@7_Z628TLs0? zz?uj-YRfzrkPxu?vyGHj9!2K*-#ys4;li(iX4#{|%+b{3>e(1Z~A)n8@Z zZHs#T_b5gM)YcBxT8a$n0|YT5VKaqO9ahcZ`U`X-{TMs6tM(EzKG($MxzTphtEp2H z&Vl-@q>hiPK_f_R(d~Y=@6Svn#`5T)r#W`&cHnK@_mKJWi3pM4D^sh{4mgLxxG0!^ z##2t;o5JZ_8LJ!K@aiOuJTja*qzE1KhLK_;sYEv3&@L zRIHR*KMHg9OcCzBZ;$rvI~9XFHHUE(XM zMx6nROH~q7W1mv`irRXfePe5?GkoNssB3 zuiQ~6bUxkmIa^ooIr6?nt7`S9b73|j)--;{v6Y8xU1qeKLM5ob=O|)^ErvO#juo_n zi_>I5ts@1SZ@sK8t0~0e-a?H4VmWQGw(68mVzw7FpQA8$5S>8(3MUulJ7iJT6jIW< zXWIxe`?KG;hJ-drH3#>YE$~aI_$wd82kqZB#Gj(;Y{a&Hji$Fygee+?w|x=Lt0X%j;wjq#2pUu)OTbVh~K&9Z+fH$JESm32)M z<-bz?6}4H=9*A5ZR6i}x@)!&pP!JnvZ|six4(>kUSV(teKb2SW=vCC9rWzb}?iQzY zn>=*;fLhs7`m0cI$!XqjxS+pJY6I6x2sA@J*Ejn{%OdCDwq;9MBYMQth;5xWE#2yN z=f?!otm2-zB`A-(Vv9g?w7VS!m)7p;C_hq<0|A0hyjaz5UY2wsgsc6`$f&C5C$?|w zUsU&=jju>8%DU}-;Hb@@%}6hVZ={!ga%{W+=*E078;f=Qd-RS&giXlzyVN_hDN-NsA%Wg48QE3`#eE&C@dR0!TUKA{BNC*t#> zvh$0k(Iv!A48j{*n>vf2uE$X3X zI?X3hqb{3_@|GnNiD9MTj&GdR?55tAsv`=6zqr4K2~}heZ$F;9Ayi!OI;$hrfAQH$ zDzU_-GXRM)+niiP|rve#Oo7sB|Q!DNwEvJZafg*k0y<;@G1H{-@M8=$boUHdaR2 zjNasx7pjyXsWNANqH&$eZ`aR`0(iTUBeSE7YEa+ZxX1O|g)bVF}uYkp{&b*Mys)4?xGNRmN^4w63ilZ`QpiV1Hq_r>3V; z*?T+Byfmi|7CdQ{yY!)!*mpn(8f!LtYcsD>F~g{%|I-LO+Y*DkMl{SQ&Fhc)ih5n# z1;muhskPmFdxkYE1#PsQ_dO})u8CQetIOVmf(kti;R}H$i5FW>rYYBIA;wk1N%MN& zI_B&?b5@k8Eld7|8AYj>y&3AIoNEtO&L@8P(YTHeUJ1JZmmn5~si1Sx_WEV76N4LP zHwoFvOG2nTzl)$Br;>#m{Eqv*@lEVX>~XFkZx=XWcyE?>5}*J#kuQ=4WqwGb5_ zq;EN*4at>*S+9PAvuha_JN=_Vi?DFX3g(*ihai;$qzbnnPOCvIizD30X?0O;f38|9 zERMYd`H1MW-haKirWpyDetUUqorO_zvYSeI_j-}0zI0w+YSXn$+h;||bA5PAaWHVy zZ{b0j@RLUK^bKL30caHPP&!=Lzm>W~{N9Y2vVcp9@?R}N9 z@SvL~J4~I;ikdollecX8dyKyQ)+EtdMwAraJ}oY(>WOUbPCaXeVFx)BB%3=0?1P-P1aFA{d<5S<0vW_soC^BUX2%Ll z6!!46FNg0Hlu8({I6yP`6x?`vLLosAKt6{<@X*JKN`o+*Jh&hxr{=eXVeG%A|;0=F_+Yaf8!}<4{RoGz3ZP;Mx5FB zt=vQYc5?jN$RfR@zJzXWvr71ZJU6`f3KQ)K(h(>*!%?Zyy#a6)+}w{DgqPxfJ`w=P z7Yl2kuSLp{KUM6-ogqQ{=zMyRE6Yv=$J7UpJiOA{<;Khoy{RQ3Ow2X>I&yfu%%>%t z_%D`lQDCIbjXaW^pF{?)(ZZ=hHQUk*$N@7Kbk<#$6yf_wrhSLT5aE%FT!lVmj6XfL z1exVu$vK1TEYo$M@4Wy#BLJ-&(1V`{sa1lqJMxiDhDj!DJ8Nl=BA}@W%~vyr2I{>D3VyBaVWiu(hb*2wZ zEJ{tHTfa-Zv6MPbO^5nB?YsU}BunYt32DZCXW5);(V9l(=qH!Sz5%(P{gWQ*?e9M4 zY-C$GH3)}BFjU7i?bQ{k9qiYaHQsKudDFEgFx(7t!7RMUiJDj_qdBX&#`u^f(#l}l z3)NUuDYP)e-IW4@aY@RNKxtF&>jiG3ACgApy3Ta1MA@dBf+ViSiD@0zBGJ5k15%YnyijKophuBM=+)X7ULTeV=!=+7y2a!l+c z`&fDZoJL(Yr(|&b%P97!Wv}JTO;i$e;DxMFMwecxgyRD3P6^?WF?>Ap?#@%Nc|DjCBMv*AkM_)64`N*lx*PI9Z1Jh)xe|hg=(r1Np5}rb zpL-zC`IpAZ)!HYdN{UPMn_ruW%zM_@n-|CQITvP zvrTmSZi%qMnQPnRQ`2|0^bRkd(WojN7Dz>Af5`!(f=_P!hI>^{kUryz8lxQ|k1i>f z>M&&><{8nhC4|XS^G+8NZ$<&Rd)uf!GeifXFHD=zqtygfP@9_T9B;x0?r4^)dZMXs zBp}P@Fb__4OV+aEc2?&{w>@rA-OUzi>X+Tcp6mOY*E7cowBN2^Ojnez9^n>p_qU!@ za!`~r`JB+!or2ps z*P#WQPqwcDeha>F)JMM}-Jj6ENzgSgbG{GPp6}mj;pPH^XBt#r$NT`6!cAA-Ykww? zPVuFw$3hy<&=60Jl0qToE}^}{m0uh8m4)9ysJrT)o!pGnxZsE_Z#Q-YSf$qYi z?u6za(#*4DU+s9FBS~4gOocYx)94HwyIVdS>*kcJ);o-vuPrVod=wO72x6tyv#R{P z%v@}L+`(SY@3E|-ZZ|Z{0;eV~5UjsRc=QJ+EM>-{7_v>B+t)N9a%5O3il!&$+W&iE zot|6crnOlwEVl!jV3yEI&#YU!gxc1L$Ka2T-6E#UqwQE&OF~Xuz0+2MMCR;HDQU^x zE2Ob9BKI26u1&eJFw?))q+KB6oPK0x7BcpiLg|?}%PWR9~!C4*3n7p(CRaIg&(H1?7E=3#{ zq3JT-9Svn9R4ODN$2E`d(YK~WvCJ=6Fvo!4xWMwSgg({kV|0t@OtBLmCr1v)AYC+Q7m$H*@bwLKv3z8KgdN*n{i22%`lRb-Ry6JzvG~-PHlXb9^0(H6JN8e* z-7ih-i_5I-$8Fzmge{_AH@Aa(4fRiJ($f0Q1aCA(yUA5xTMg&ajaJ5WbNWg!>GWTL z3#>#0tf(z+I8_Oyx>8*xgBz~lPZX#u?zW6+DFyfh=r-+xO)31YDD+Y#jsmkA|A?9K^492@)>j|Ev9BEU5j0YM&I?NV7 zCmb<|<+qe=BPtak(`Da*VnO=;$oX(>DXBfU(+ihnEGaUACiwdiL1(7z&%%#?ouyd2 zZ~y$kO{?zHeH~UC6^M4xv<(@``vlC4)1L+hx8}?(GVhj^!v32rf3U~xRa)Dkd&?f* zI-5fqI(Q8(tYS>*oE<0WX{>rh&>N0n+C#o1k2Gi5A_7CMdjUK3V& zQq=lV&DIC>LT(Ci?t~X=maq}@qVl@ew+-GO5fYdVpJR33J=#2}*LQ?^jsj<@O{*7j zUmGcIn0ZJogxNI>snZB!{&Pu1XMxeYxdynUB_L_{aEl1&AdxP zF73~~L^0@ob)uW+wQv*Xx`}V{mHX*o`1`3|9te>*-{gwZP;uwDKE4`BwI>Z41i^G& z?;xCs^d%?vRM6SL46&RPh-Q^6IG3ri_Q_X^Vv#QS&l? z_cD5`{-H;IwR?BQVdE@L_1SdhNBMMW2ravoxHdlrHdVzc>5LY5S%R*&DP0if&nov( z4i3#|8p_)kE2sFdZjY{5^r(>h{oa_T^Ny;{=xv2(;qet4cLo4k>VNqdR& z25!U^sG1*2v9>o2i$l4OI$goY38d>ADE?A(lk7eFq??@R8SB8Pbim3qw%USpY)4h_ zBBT>f=J?y6_usXh7&JZ#96Zyra~2&!Jg4JV#@1DA}L?vnm}JZ&1gs0jSwbj9cW#4Kr8EY{d^6e&W4jEHrfd z?O)b8v7s5_9p;}(W1aNxZjbn?fR8G|@{NAEmON3fXld4j{$4LW!QD4=vP3^R?zirx zBa(iGPpmOscdyYHTzrHKJke)=D9{di3DBN&40uvA7lh8#~T|F5z~;N9DNBwJc74l26ESm8WDr)<88*^ooX1hnKm|2D2<1vEy2%?VOL%*2vy_8jHJ-MMsH8!XrDQ;Z02FP0knEs41orpO3 zW{}3puuA#$P<3jkPeY~MHm`Od((WOf7&Qag`TUa@%yk}a!D zv0fT7fl-s73xP4h8TTUArAiV%sTDO$MmCt(?Km!BobmC++nU0)Cq{%@ZV=)rp426<~y3FC3K8N`_$ zsNAZ-UdH6h$H@fGNdoni+LIjgYC8|X5RoXHk{wUD6Mw$D+-(#}U6Ui}Nhd~f3q#a) z6T|BJ-$Gmou)jZDz22yy+!clCEr?IZXzFJl1pfkk9XYnav-1ofFNC+heF9bAiJAHB zJ)0tU`~eE-EyrO3a<@D?e(R#b5@`Rl;<;V8|6%jNzmB^eeOa>B8F|7PkK`9tJMiY)l({>#%y5GJJp)lE-@SwYwB_e-a`P z)ZM80VIvy93IG)YU(~10u=c@^tCVO+uC_Eqc^Wgr7KuHIX=HnmUt4j#-F`C3&>7kV z|9G&D?~V{o2lzx^4&|jR2yRuL8&7p0@r~00Q!csUo=L@sLJBiKQ|2pbsAG4XYkZnn zT6%?wD?9~?o!?=`Y(=6OJG9twxS?JVBouUIi2ta^JK56QgHj;Nw)JM_8yhtdzq?&z z7s#T*d(40<&sd;SbH@EL_SEABla)RV&2yEYt%m(9m+BEOxZwvAJE2%jkFt@;y(3zJ z$KRcwl>FUrE&BJaUa@l~iPG5@pPORws@0_-g_?rzjsqvs2Xsvwq|<-t=SwzE0OS=hJBNekeF|YG`;qe6ud7+PklE_P&tkf5H?FCb>1Uy=XnaFJ z4;=d>D4p7Ft2yLQ^%53|thbe-1T^&6dT+okO~&zdT64VM%TAR09gplf^hVD=YI%hC z-blR&3bLcud%=F~5Cf8w`*o!6x7C>xHKhADXL_iA(Z^(zCyil?V)PZv{c;#X0FwDi zokwUddgYZYq`-3I222mTFnQp5w~9xp$Me*ZL`FHs)3>=)YpSY?|0E_$BeL@W}x(@z)y!W|Ybm`Pj zI=_#o*LuZA>=G=C@VKMs*?bf{l4)@=M=f{#)WE}t%s&O>veWV-;thD^ack5oQe>M@Nmm_t=~1{d???pNyTh_Uz`>@DJ9rN#1418l ze~DC)tCsh(?-s}p2yg6ReX%9IDsWiVU6=>-$69~hg$M)xm`iDQI|5TI!v4x;2-{d* zwI~`)1%9DVJe9bhlt2AIO<6Mqq-bxWLbRgBR^IF1%;-GG^6&o2h>^Optoo_&;=Mr9 z3NhS}be0J%k)t~vi}OkM*bwfJb7|Zbdh=fS@!+F(f2Tr89!k-)+X1Y4U!xZrguo49 zcjYG|fq^kAEv{+?KzTIZJwBB^LA{E;p@aIW{~qNhIp=ExSy^iy z$lIZO?&t_CFuy9!FdEml{`o3mf3JNHdE*i~O+^2T&ZTQ`r*4Hue0E(vwMVi@dUa!y z4}Zjk$L7@jXpi<-6T5)>Hl`56aAtje0WOIy9oO{bW2u#7#s5H7_j@Jtw?EEEMtm}` zX-wUU%}$UbT=xDLy+>p2I%r``>(pcsSgzDlgLXv?YOWpZ|mgb)2u%?a=3)gkh?eVv`dob14p;A zKELGZ_s(@HPiKEd6doFUyOjL_AyW>rWPP~h8dyt>ZhVZtuJM^&^7;tp8Fs0s!Mf1k zqe#f}&Sn+;zlu2x<|W2Yf&Z=)bp zxHxDbs;nXDkIUNbnRi29T(`+W)_6P(Z4&VIFZMb!yeSd1@>bUg*>TWW#|Bn%ZOfRB zS{CX~XWrIreVl@ueFUsm%&&M}6%5UiX2dF0qBiHeCaE0PRW zu=c~n>k{&FKco^mQT)e0m`O@-jzM|Fayx(W+k5UE?0dJn1CzV|TsZ=^f4}CAuw;Vc zwT0jlIw9O36~ljv*15Onmhw3yoF;J zcel0kMVd`t&(?<8Q-}qFnhBf40v!WR0(g7t_v0*HVn^3JAYW{e@M3CHaM7J`0QbXN zEtTDj32!mjwERtTpHP0$SgL)S=pFa$h?txHpr%uwEP9T19;$ZjW;xLp^TGn~_SkH_3K2or+_NkSyE?F)eNI z>LFK}4YJ`e@Je>WyQVJXZUgBp@PhO8+lL(=20KsnUFFfM5`EG#F?jg1#@9`4QP^ES z&|HS!5^1C1Lu%^+F5Pcu#1$UsYG$h`w5cdpi8SK$^;fJmDnt%Zv!!q z<0K`Q``Hz^^Vlc0nShjdBzKbv6GI(k8o%VGuSyVYwT&-h%kDLqiq|Slu=n|EWx85W}ID0{NtB6r>JBzihJZ^&>ZJEMbHb%Gk(6V$oTif0TSzKrbCzc0oWrJ4 z&SyC_EL4)i9Ot|x%-I~WVGcRXVdlKC&G_zfUDxgR$M5#}Ykxnt*K5z?QYAKx z3l4+Nrg@ZmR*E?92$b{t6|P)$5>LG1md{^sLhYnI@nV zVR3T8-fm+d6u#Y|rzIfwT|U;QId0}v)4!9d@N&gIFv!UJ$qH0wqi_K}KAeJsqVBWCJ=1T;b6zL8WQCi1 z;7Vs?shwbTVlfd4*Rb7zL-gmi)nZHX;hhQ#hCf3_SvlR zG|(d+2WFIF9o%s2YAYnmkYX;%lPNj=)qCos>30|vvpX|f?tKd{h?e~#XiH4T+dK*Z zdMkx2*X<6BMwg%W)>ef-)lR6*RxfW4wt1TQxjTTfh(^zX92C`+{fdZC;Qio#$@rW~ zbxep!uN5p%45;F=J5)W-$_cb#uOO_-OR4hQr>0e|=oR1@JC|M%=;GtoIvC%*5TyW= zc~FxZLqF*1>|#iJnAU*t^CMr_r#KF!Tum2j?A&M?+2Elg{Gk;nX7r!cG571)k;t~c z6sA{&o9%-5*PEte6EZ3EiSS!Af759{U67yV$}T?)h`LnY3$-zr)Lx#Q|8gbNvJBCg z6H7b!5ejNMI)-Kezxd3qr%YQ?8yrl;WMdS1P?=)5P&CAKR&i;ybPT;T}eyod?MgNUvpS_zT;X z3wd4Op|u!TI&LA8UoAuh^rnV)E?h;QZE{6(rn2%c=+dzipJF)?>cs`xzHd_ps;Hk= zC0+YDD(_FrfBl}rH16OB(xqk@xMt9yo~CU`3@ls2KacF${E z-v~<539>p+l_^yt5f&a7oa;pa5GLf zBS^>GMuT{aI;9XgmP`OZWBrTgmpFH?FIf2y09r1*6WZ9+9xj0Npm$d!)9u* zsSUM1u2?!{VToi=GVa?Hy?}e?iu?Vu7(EpIcxnd&y2yU+P&GdzPl(%Bn;ZX)e`@-itf?Kqx?__{s~+p(6h0_LNRbk6AP7bFCr+i1g%* zOQxL7@rwy2qserBT=n}P0z~+sJ$S~u;73Pokwd`PCB40VE8qUZ60P=2;T6}Xw102y z{{bZLZGj6ScDlWMZggy^Zji6eNDE1)lLpg=-#_|0d%g%!!VqWZ?>AbaKfBIJ25&KU zKQfwLHZ^*-zrgR_hRi?Aa?NwSV5NDC{L_EH&?!fQp)P`ZceD4!C z6$5&)$%`k>oxh-ikqu;g-KY!f!`7)&@RdGV13|%Cqtt)XD+yz1o)^r~=WA`szIu|w zRgNY#uu4L!Bj>i_{noal9$WD6#Vxv@{Lb>}MY|`00RVGh_mTZAWg68!))?S4J{=LL zdj?>Q7*h)xu=Pn0dG6(@@>6zNe_xF17x+l5N*wmV8Zx^=|3q~*Yt!0BKBc|~UVBFTUvu2EYH8Vt-Q?6S6Dc2fqVZdSN;ugL=M#*}Ey$FWPCf>H~2 z(1Ms~jgRNw?K79YAKtx7vIVF5HTHZn$WU|)y+L-LN*tv)8?Q`NXgHYuK@96hst7(D zkcmE-{#OX<{#L#3{6FJ={Y@ED->zjLNj{}!ojtzqz)h1Nc?;?BR-eh=r7*YIFYARp zzd}n-i@}8~YRu&qQ{MRL9Njciu1^GvoEE;76vmb1H<3tUhckn*BwakC+JEX*%X_){ zU%Ak>ex|ikCNN#dQNWsDEzc>;0&bU^9%BTnFC%+UN&%z5vS1fBtWQr$`(rM3t-$z6 z4(a)Eu4GnAQGRP-IB2x7G>jfYD#&pywOJigUaWK_6|p~ELb;ZP8+V$iTjXRSB55+8 zO{cs)_y+gT`;zMo~B?|L7;eJjlJvYT=w}P}wZL&?K36H z=kn|%etx+JEeC!2oxNo{0aLFUZB}l)<2Q9-%Mn_IEb_LjeU{O+vV{rsFAsP8yu?GZ z+c{&XB>tbXn|ura?gu|UG(u->IdjQHoo?MxZzwEpMLg+K&~N<6JFmNoV}UknJLLO1 zxH2Psaft(9u5{A7uoK~48FZhTPL@r4JOp^Z9{7I5BU#;zecydUr9qpcd~2w52&J<2 zNt3q9ZeCpqk4nJ~1y_06NTV2mnH)dK%U#mkb%b&|zaZ#ST^c_kFzgdbhRH98-g$yj zv}C#zE}Y0)P#0ck`w?d;*0@Gx-krMky=dh4--anfdYHcTLkGYS3xk!9YTd}5brUOe zNIO3}{BhtSnxe;UB0_rtK-Zfucv-hY3cPUB1a2`->J`0>d$@XvDSshC$8&k~w4|Q$ z#FrdD6vgSZ74E^Mt+M9U+;!JFTT$-NaS}J(s1hKXM98s5SJ^W_b$RKjiZp-gd}?5- zYf49W5%yKQor4DXnJ3vlzH_JiC@F_TE1B#WuqV^Xta=V68H zzQbomih_tKu?OJXt&fDL- zyFN<)yJm!_3LEf*<^~#}lHztX?+yAPoadLpPoPWG%nrSki0veu893(9s zo$m@)Klp@Ni0QaR@<6!gQUP@;F-{3vpJo?w6@aoKxRKBE_x;yv*Ih-W`AYc_qTUn@ zV))wB>f-2KayQ&}F-k+AYvf|!?^qOa=xt*!XY@EJ_?AGxf?7`bS|R zxJS*zNH)rT#CDYA#jIkz4}5_c8Y&g-F<7>EiR?NGxZ?klgfaGI_~m!E@|X?lcf8ZQ zBsc29UfKKUp9D!sNJOud@a$aM7zq=+yw(?Z=hcXr*|hvD;dqQ9^KnRG2z`z+9GVHi>m(JJT$Onb)F2GCOtC?E%V=f_iVtYiXStsC4h8qx@TM!+I55T z6dpOUv&5@VqH}kZC|lFiccQLu`!4G4>TMejN@^T=P7VCTdiiN9Iu{}g@tIZTC5+fo zT*U+aZ1haHz7vVDP6vqh#C^PB2!ZUm*~NKtcinjqIhKZAP@K?}A; z)%(DSg>X(iH;&S6?&;o>bbv~t-I|usH-l`~pvpIIIIge+hjXpQW0!GTaQZ!|16~*c zzTrGn9oNzrG>KYF542$x-=k!D8Buzo)QN|w7Ojd33KoX97Z%j00w0Y|JjZIK8~ioC zSNf)iCmGWjp0+@}g-EG0#KsC|T7H;2;wef^SIJdc{QmK7iLNQG}-T%OnN{PsecCTXYq>@C~7IeuI#+EO=t@JEKUr} z!~S%K($;tj(uMu)Z?o28aPO(@+S@Aj3v!|y;hz-!2az|H$SV19Z!Qm=JLa|px+yvZ zY^%^Mg$;DDWc1D`QStCac`}C94<7wtxV9@d(LBzf`$PeUYB z0J*|{H~J5zXf`H9pJb-4OL0J3EPROVbkBk7elPbzlj+G|_PNbbV0(m~`UprsSZAPR zE>Uj8tlsziZXG~bYSz9<8DlHB?TbCCBgts<6804rn$kYDayGNOz%J}AOlecYaYau% zrH&Jj7`kMPbX*iJ(g&8B%(v$5toLp_+b^kMHPiWR(!_A#yY@_Q52W8rq)v!*V?DRC zQcWj0P+5_X{u7OX&-ZXi28R^2FO>w+7B-GBh~J~2Cx0tEzE|aTF}24;Y37Q4V1Df) zmwX`&9Wh+Y(9nZN-M~HS9a|REv}G;Gq)kP@qvbB~Rn0pzwG|fVId^=vb6pX(Zn5oU= zXxBEZ1S~?%Uiv3ueWM7dyR>oyk38ay=N@!)4Yq><}0;F z!yySMQ6wd^rxKc7->N=v!smqZOmD~NOIjgc)mY;Ah|{F?nj(`zxk&~TDwqZOGc=nf zB$Ur#tRRSkw05Ft`vgm`dHgy2iGPw1j|DF^_AINOeG)$HXtO)SEH3x{GFZ83@i)B% z{}Q|S5??2huh2YZVRS7DYsXdweG;8hz-teD>k^h!G_Y^z=AG`jdQWWi?eG@j)^zn>?YE6mIO6{)r_cWvL{p;Tuiax$_j)C{Ei~_rz(Zk(v{58B zE?2U{TCzj0js$6FOk*C|w71{2bJ|xMY_J}oU{#>(l}0mG+2u(wx`yr0Xh=vHI)Uog z57sf;b7f;f34-6awGg(;RcY<$w%`fJ)#pKz%uCmH^;dMTF5|VSHH*+c^kW%3DG@r? zAnn@H!zp-V{6P z>>gw|N_wG0T)6tqo7*~yKbH9}cc^kPzb-mw)$aq}KDuYvS9cfh5_a#6;nl52k8^Xz zYm{|Y$U&^UVZN4R$+1h0wl7Kd`9^R=9S64IK8R4^x$GAG8JT_#J50PAI=|1;@Q1Nf z@CCh{*%?-F208ZmChs1<+8}qt5^0!d${T>c_FO@m0PU!2Fm}4BRc6kXS0CJw@ypu` z{ZqgkSuqE1v2zEv>Ntt9C%B_LTg9o$1Z5wk!~(>l#L?;x$m@9crqVt-=eMJxz4ThX>r@sM|oI4`7d_<7&=*17dz`e3c-|Leoa#osQ-^M2n(*_VJzVEXb$=PIkX|b1RZ((P8_~ z-f`F!C$5gTUfo)yeYZFMQO*@@t+=rZ=*%AtZ(~m78(sw!&7LKGd!V=6-uCTIw33&6xpD9RL^SUtU zh3kM#>$87IMlX(x$ZqOS8fs7UzM#?k|7|Fa+80(@70-0#4EwEa1)x$hDKU%hgF`L@ z?X6en>u%42dn~g78vrmH)`o8_{e+3@WT7hYqk6#M@k_>CVjY@Sr>qVkkzY(Z zw1DL|5C124(O|p_gp+?9CV5P+piFT^(|w&0I1w_vctqpbe_o5S{<)6@6?~(PdQ*-4 zW92m2@oP@j=Ii>_{t(ArJ#9m+ZfxHYq$P=+(sN8&(r2mvDvz(01JnWI?bhA55;ZHf zc+06vH+&e&Xz0lD845887GfU;7((V(dJIW7f z-K?xWn{+qGvlRmH56T!F9{!-LA?8=e)Q=1}J;R@;X2m6-g#oNUz-E{JmeP3+4@>V@ng|x*yTw%RxDQdG& znHD_SRo>o{k!sLn?Ces1yFOHx-Ln7zKse`q3 zQ6+H3i4}7#%1DW9F^FDxaw<`I;me+_HNSj%?14a|Lg{ht;mfh*AyY#o;TBr~w&?DXWY*IA=pi0DcdUe3Sx8aBY(Pto9`bH6jC-4;I z(B+!xLrZ4!!U`W4&)qclLXhaM6GfD$U3;v9*oRq!0(Igo=?}kclO+0kr!be6anIww zO~U^(EnoNG{klOrgb;XtdeflAQojS;Y^-^y(~mLSKkOfOKqN5VjgxE%VG#I7w29fN z&_%7?wBe$yDw-nujx3_O4jlo877NOlQM0#-_nD+0vxrQ2ScD+aEHY-~cLXX`Q@K_9 z@67rI$(-}dM@9;o0pw}HU8TJW0;RNU?i{r#Qk+i`?SSJmA~Xcqj|2LQGZn(6`;LOV zE%vH(%C+G`n7@WcORJy6QOzs_ z&xkgxPfmSR@uZ5vcFpG9$OE{Yfjo%|5^Jgi4*foMSQ33RQ^Ed_fPjEA`#DN)wx4KS zUgq^?lBE6-&68asNCh}vz+J}>RGcj#hS3}e`otJA<(fpQ0{Ten)hT_?L#;%nQ2Bo0 z%(~X-p(SN)p4C;ed)$IF8Gj}F!ozgmx?gmU5z0zrKiq<@tCa0nQyZz|W z_?vP=F^n_6(S+8s-C|&htYS%l zU#{_{GWd}9yi$#}=juNkt!<;dgnn>L?aBFtk``be%FGD+NIMP$`T@E#2qe@7`3gDSkYgKjBaH7tT~RdVyWVAPSN)L(5(H!xwA8`*DjUhy?=BS05Z@R z`6D+#K>=VxAR{H>#NROG=tbvw(d=&e4a0CNXh&8XacRb{4Ef>_XK4ep(}j9Ib&ciE z>AXpn7H{@%%ApD)%8zc|aW4xp4?dasc4xE<-g)b2Wxum<7py@sM_2N4rE8lA8`Cok zq$Qy=3fOsMlTigY-q^!%F(r^1v=Br2UVXVgnCV+A4t~^>TX7F{j;d}2=;o~q9b8eL zJE;T_1zY_^fJhGLZZ)3x=l6jaLn)gZWI;A7oF*bvCjhsP+HR$*NQ5T{d7HY3E?De{Q64R^E>nPi6`#!e(i5hRZxu>BP^cSY9G-xO4NO2JYy^rG3&Pe zjkehkMf(E?m2`(>?A@Oz3as}mwkg}Uqs*k47RzR+HE{aTTeEK>un$n9oJn(5Vf?0@ z#rpJ$>1&(Vh^vEbQXIRfo8-ISdkVctOH-L!MHdIuW=r_ik0VixC^OANW#( zaub>a8MUK=_k$!{JMH{Hm-AO@l4PFT638^aWa$76txCE}lp1^O zI6fa_6N(%C@T%qA-j_>l#w--P7xEDzAIe2QUN#>u)6RkHR&K_yqz2}Hb;&s$t`U5g zs*wN2)i`4(QX$btMJEpOr6De?6qa)=)V^V)VB`@Y z7&sRr9yS}tflf+DLwADAdwgcO&B0<|Rkma4{8^RAgVyk)can>*9}oXh>;L7Y*z9XV zxh~k=#(m0z`eW|Ltn5mODF|!*Lg08^u1%5wM>MwgAxxV+Cv(ALPoA7wnJ5Nx;4<+ zq<(4+&qhoy$^gQvlIlP=fVQX&>v+inoW0p(BAXu6Ub#r|El&%KAfqUzete$1hQF9ll= z-I*AenVpz5f`r+*=c!yS=^gLiV?1uW)QDg2T}fE@+ZaPnvxXMD#=EkCi&k5gA4DiL z5SIGO_8UW9ak>Wn6^@DJ2|bxhkMX}cj!6d>K?QsGUO?r1>gtIP zjpsds?z}fclF%Vs#QE;O4bzi>?A>BBI_mKn`CRpCdJV^oJCl~o+6n$&9?D$G{~v?2 z-hap~q;lRy$6#BP_#Y@u2Z^io`H8L(sA%bWsY9`ED8t72Z1DsQd|rRo!Rbwu&m`kr z1+8~*QORsmohmn6>Q_c9q^)VQni>FaCdI0*Xzjq{s-_QR)&yn?zM^;)x_3B!)tWWt zo?Jhfz2X(FU45YaZultYGJKeo8J7xQ;Kjid#1CHlvmIaCMJ;N|-;(Sqm&eUnFKycY zU^Li4bGsX2Zrv1!j5t`x;mETHmD+oVA!bdHX$JuR9Q5AWJ{wworhJ zVuJ}O`=7jwxx?)wo$J~Sd$$$L7@2;*u%_tXxj?wzwWJLghmz0cP4B{fCV1V6_Ezei zZ+L@xuJTi?7A2X=e^+3#N)`ff`keLVJSs`CyNTziqCe*kKRofRoJ!yM4Xn}r*WJ1t zyZHbcqIum?@dq8}9OMrI0VF(zRgbwIpFnX{i7Q>|?WGnXHEWxH8ubY}u2ex-We>0T zKY)&asXKde6EsmynBD$Enc6aq8vt>%7QIj6j%=;Y z8zeQ%iuuX_8wYkST}eT*5d!x1fpz|(OO=)S>B#gkdBq+v?2QyR3=OSmkTx8km^VU6gW@9z7$vPtQ% zy)MQ>L2j+9=ycD1BP*!%w*$WSy&Yc|%VoUL`pnRN7yie3$L=(gYA|dww~ZKp3QK9? zrlZSZYkAUlT$F{k`yODpuJ)5e3 z0+(N~ViVtT8JUK+Hm+{iwLIcNSFafWJ*qC3zuoro;h(q$-OBHIIAte3kr6!fc;>L( zm`90lwcmG~5%Qxc;pd32WB zB2`ZL7f@W2m=v~4Y%V=i?nlDAz8~Ou3;d=Vh!`U zSNVM7_Z$-a{7N_AIf@SH^eNGV*OGCyp(zpKq0opc+Sb9Lc%b_e<0gNm1B0F93Uv8V z*#z{GKqPRU%-tCjW`3(`uJS9+dD+sm7dulw_Alzp+4W`KD-*t?sF046CtvZN1b3`? zQ`DA)m*h7+mT#Q^zGyF9hDc5BGxcH=KXueLBeu+RU?E zJ-?j&#d>p8=Sb}vpp(Km@}p-WniY8Bw~FWNw7oHuo2_J>!ye6Dur&1sBwQgcf||ZT zbe**Ac7v1}aAOT{q`s^HlV@Wa%O)26xrd0%qyMO9D!^$poTITKyQ#!g{R!wmSFQyt9TOqMyxgN|`cJ3Z&ao)p2V1M*8Ce+gkPyImj33tgRRTHI(gtqgS+k|^TkR%#Q9d5WAM-tC`|xt zLT2^ooYykM(ub)@68$81-}c@>x5sdoqp#fORidkyAP5Ic#iE2!#*GcdKPsl1tyZ8P%{?{ zc$SL@ynlRb!w7g5cLUH3F1FrIMPzbJxnlG6(ZwzGw}|phI6_QoUX@E}3rGZCtR0=o zoDJVOv)c*2JlB+n6kpM)Q=jQ&>uxy!5Fa`FKlqEi=6Ke*0^!y3{}?kb6ZIum|IzP& zUIum9@SWRH7ql<+U`yt!qDg?o2#-o1NiNUL)4W)c2nmSMC z&Ee__arR;LGx`%SEptA$R#7)ShmN?-@$b6zCAL#n@`5bnGe;o#ioDDvnKi$Gcwp%T zO=i1Wz)9?3>PT;S^qn;-?|bzZKwNB?RQ|TZXOG)qHFuq0HhB&bQkzHxHpSWR)cXl-FArmoi=DTpS+Po6#`%$2mGzSq!l6}fp-0|T0urRq{tG|~kYd8sh_#*I^t zrplFRjg7ryz!R`occm=v`=pImNBHiNBiV-v%zz_#xcL)C`gA0X7Zp8Tj*&mCp%|$v zeFJlEs1o7baJsuY1g{VeuB!+{0SB9GjM4v#y3b!^5; zW4?QKCi>S%P_QJwYBR=j;3xHWhm zFR2fv=qI`nvwYvVfj)81Aq*Dxdga%s<$UWaB#j788Y;zg?%5yoNOpW%rOH*Zl|meF zi&6v^=$_2%XGy2hKB3G$#TTfe+ve=!b-zN7xw%LBTP7IKnV-91vdJIlqPpA5tLIp9 z!jXp821eY>sO&98#zmcc;uO{{Y%J!vox@mskggVMM3gvmlJULM$LloHKWk^``lUsy z1;KS%hVX?a!v^@StYRh9=5@$aOpDxB)rlyIUE?w7h*vgt+Uck?OsQK9W^qkFX;s6G zZSQk|{M*0xTcGO5idGp|&gmliUx3H_hrjb?UL&()kssQAvBlc_HRwGSQO3E1U*)1a zIIL;EUwKp?unzmyz1^_)2h;SxnayAl9cwyABqXaZ_mJZg_!eQ_zxy`4s6PmoJfuit z8tp4BfBU^Uld0wV=DIm+GK4W?g>O#GmIz;Pu@G5RkPgOtI3gxFNOY=1;**7s;?x6> z#t0o!-^Nxi<;CMzD9DdsWw7(E77w)naP~7|)@+W0cGAXQ zYKuSB6mqKg=479SKz#LNj!(Sy{BtZ;DB>aIB5CjZ^5>o;dc3uSzs-^ZtQzOpCz3tu zZXG1>m|3ykRiJ|TNNYDNMwfeDk#4^b7(a)($o)2s^th3pi;epYZR}&ui#w3h(5|Sh zlB6Nl6Z8`j-qx&iHiY_yY+w_uVKN4WlMsk>ot^59LE)tmN1J%}{ufC}3-8M4m9$jC z{vhv;hZVzoJ2z>n{MUz0exXEU?KGQiG*)k$%Wo)7IS-;~i7sw0Hp+afx$3EoQ zy*}}C%c(fkYEg-=3Nv-2A9pv3jA zg*1im(Zb{)L=8TB$C4V7dON<}l}oGlC(8}xskDao2#0rIM*T|+QtCoPx&<8Pyzf!s zrQD-As{pSb4$#}~I^O*q#ha#&R*KwfQ-zddMSU>Yz@jF%SO-bJ9+snL7PWhN=8wUg zq?b6Nn(cZvp&B%KPZ%IgremX+l!Bb5`mgp8l!4JnT(Xs0^!DYcMR)r9ksv0& zs3xoiClB`^RF)c~k?vs+&i>CMz$N2MjB1Xmm|5NSwB?-@MsOSj6*Y@-8j6Lk;$=;P zZEffTE5E!78$^0Q{DX0>XgM@`40^GZSdDKpWdhv#c(I@7z+q~4gco#|03;Km`M_iJ zA-V;7T?2zkY-{34uA-Sej-L2CLb?qyxKfjgJlrnp_)!^A4n+2YVyHU6zwRJFe%0l& ziLTZpO}iwjF3)Wi(}(nLVJWQ2=WBrTDH%{MtP?$WrCgea``KPZQ#H!BA9U7>gW3S-EROjx9lGU6;J`4F{7dO73;~tZ8`V8>$ zwTK#h+Ot4^+chL`F{ZTIcJ}tQ9`yi{g0CF46}u`TDqU*2kfT|N>xOJyq5uiM!;UW7 zk(EP_&F2oz|6STCjG@JNzp9~&p|%G7^2I)I5(!todPyWA{C@s^V4L1Wl9UtZi6Sjj z!&#XQ+yBYW{ho6lL%9833--E!?U^LAyiK}(G>^~BytyRMmNU%Mj~_6@aHKbgUY8&- zih=*@>QVULHr61!5UX(1yGvZFwk{e^GAGDs_i{6H*kG6VPe{pNs51kGb$$yOYN~(K zxw|O;ZK$sZ&0(QOE@sg%Q=x|RT~_Iqr(_Y=YQ|=WSJKGWJ0`G@Hf@IF=@LwMpMBkQ z>@dXQX{OaA#`&MXaEwBr^VCP%lq#xDwAOXzS&P1_xqPyM}>Xu5Y}2ufeEBNh2Z=bT^2 z2!;dO`8QX#Z-_b>x+2$%D zAP1lO)3$C%{yHgZhwSh@>W*FjHUdEH@$_o+d6{b;Y-@fM3~R|Lj0P3mq+ELz*|c<{ zk@ir*r?1-`2)l@T6Q`1vi#=2`bJ}FV!YKXVjjh>!tZ(P6cfvj6^^#>Z7;0aPlWy#R z6S7JbUEsc%V%}*86%TYowL%uafiB?wx-JEs?&u_eIn0$^0qqE0u#9s4o#;KRu zAD_=}{8*RtTxvO2hc5YSAqqU|`?E_jRYomWY z>-ZQ#16BzguEhOU2jAeSInxLcM%4ahWE_5Djv+1Jx_3U+el9^okKNH8cxk^KbBraI zrTOl5@oof$tXbb(5LnCl>CE$YQIG( zT!H%K3^l>f^UTBhv5ae%`9kl!Ix%}PcOnrm?l_WYR#HKi_DrLN~s7F-`+oJe$F!-}&B^NwUF;o%V)@PXGxY&hzEx zXIIV~p~{M46Rh*!7?dD}Ef&nFW~>!t1d)G2dnm)ckuL+CKqN$0BFTbc6F z*9wI(ABMaTRO63CgBeR zt*p;gP8*`I(Z&bkN5D;=UHAM)G(svwEA(6%CLIa2UvxC^{;|XSnfiy^Bl~LO2?jdE zQCBZ!7~&R*fVV$8pIKFi4W8VdTGF@hWIIzvr>VbDxsquD)u;;WQ)B7iiWwqnyI{Ei zwg!#t10E5A^U`IGyqSCJ>u&e>weAfr zsN_Pp)?FW)=&wNJ(jqjnr^NA=LR$869@Qd~|Jr?kywx6XPsyoR%Jt;GDA$wGw4q*w zj~D#-+-tLBeeO$UX>#3j7In6@I9Hh77uM{9gP*@?{Tu#xAz|Qqpy>F+Jb?a1gSIgM zQ>u)Ubo&{+=*=2-UT4V%q0FotWAHmN^VVI@0mv_yaG0=naP|K5S+a5hi~gfU&H@I z9i1dQ>n?u7$06Pm8u_>eqeSx5DKVCeK65#)f%j{%-5Z6oMk!++N}`gmTIyl(3xy^} z%70wbZ;p+m6MWTUoLxdmT(#myJd@F1Nf@TvK+?;(e+qbBjq!{EAO?W9xP!@2aS@jG z)IHZdr1L&A;9Lzf6MkwWHgLWajk3j_hNq!Ul2LKG!!^-6tK|I@j8>@FJCES3a=GnM zqFgt#9^EhGVYE!hb^Rne$>>S=sL&_)z7w#N5)dB_-n|l1Bl+%j0iZ7wUb2O6Vi(8y zHYq*W8ry9v5&ydxWL-qV%Z~A4)4Uj##1owN%7-V2Svi8i=xu7pS`sP%Nz&XzQQF=F zyv79T_=$SO9v2?5Ycwz;+Y!jVlM>9(Jrw76=8mMQr|iB<*Fc{8m@)iy zen5Pnz1OH?Fp|`gkOFS-uhDN8)9WY>gSX&p{q0(^19NY9vLTy>XXUNy&%A2-jJI>wl5Rp#G4XkE29z0pCQie)CQ@$SZf`0m;(|>6zt6+RG!)GjWM`#df>d^1#pXpn4?F7(Bu!xlD$*(J`9hG~V~J0oyv* zGlPCqYHm*4EVZbTF!K7`5&5m_h)hp~5X=}aUZyACjCrTAn&Xo5H4w91=b4`}J7dSO zrDvD>alKm4W|A09Z>0;~YySja44Qe<1O)Cq`>Acm>ay&A=olQwQrOV{6Cg_dH~o6R z`HpH$75QZPQ-H_nRECeFI5WQPIBiMm-VMgvE1hDpJyglW`o}{BQS6?J7jU+9XJD6a z#N?IR_!a~GFUig&4uL`-YhA7`LsqE5o>0-c7cS>C?tv8Z3OUWHKxIXci$ueS3vpo;^9cSVF#$%QO^j(zm8M4sEbF2K$ z1VQ<`5K;1VLO<~r<5!=hi(YlkUObq`M&iNVYtq_<{*Q_B#6yLT$8*-Fhd$fKqSk~& zAy-Gubldrj=}S<*mGDaH2z2E3N5cw+&%~H8!@Sof3bTS>eO=w(~N{Ovkh%G>9HOdnGJ)vO5HP z-M7&B0z-VGK2yli+B0F#lj3k{&g5*|`iYfCu}-I0uGQSGpV7PDlv8 z?jE8G%}`aonT4H%dy%u7-ODUJ}uoN z<$)_fdL~($&iSkS7hiXXK=r_3_f(gtqx=f3j7Wq-i^gd~=B8=;sVN1(*zPx!HL^C= zpEFSsI8V4cgM;y$GmbMOJsQ*FLW;5Rj?~eOGmSZs@?8%|V+?IGava=f(yr?#%N=P4 z`{7%cyu`A(;Vy9Ng-3_l+=pI*-s*vb{yNiK6LC2BO#ZhmTgB{!?PAvbG#kR$({1$w zKbI``#tTLP(n5335I69=b6~7Rlzi1%7udP%to--U@jIT&`f(KZd4nU;TJ( z+qIa@kSq&n@*C4Q2UdNV#6A4{s2H0RRXt2iqqVr)+<$PaG@n{i{u~7pT3z;*Q!V$T z-vq40&Bdb~5BTa4TcFZ!LCd|BgcL6#Ug?2~t*^Td4uo`W93E!j_iY)X4Vw702o}az zaOxzqu|sL!&)eNLm;X6LckW1eiH{V)M)Sf#x(Xj|+`@Rl5i7H&sh1H3P) zNb=qLRP*U=_8*?}nW7*+_zyyRQ-!fZp1<6K z^zs1i)f+x<+4O#mD#qF9T%Bh7cdt$-32s3U?5MpkTV+V$DqG+k;-hC&WKteIbPRpi zAgku_UODQDl;qzAbC)5mRe zAg7L0@y*?CQV}(;YNSQ*8@TMWAYK6%XB;lW87@%xn|Xru+HAo5*WYzj9v2K<%J7UaMVK_x^KyL!*m_Kk(~z#jXH z?d<+AJOg+U%e6U>713UdEPZ`?FyPbJwA(?{dY&=-ma}iRnZm?s7?dMEYsX3+*MgUE zEa|-%B}}fu>_zso?@dNCn~^=dq?i>AF39T>J+L)RbuFL%R@d|1TdvD!xWx_NG(W>= zQ%;I-<%H37T3s<81sd4J@JplgysK7*qet# z`G?Qdx#D_Cc1hkH`$hmYp%g zEX<7IneX>^-^cOX_wgLZ^VjvybsTejmg_p_{G9Le{nB}PRJ{zYR7A~4aIZO$!{~n( z9!^?SdeJQDLLXGEhJetvd%8kWBSLn$S*6eF)Pzy}esaF5D$7r>9j)KDOlcMHa-jg7 ziMG9bR(CIEn}$S8N?jO(Y7b<`x{C znlw4P$bDZt+Z)WYSNm;mPa%M!nZGfd(JB@|j591037nhT5tl)Wt+nlQOK|^WqQ{gv zkh11;Xd=+J|hTS()e zDAQMw>``$C%53MF*!I~a&`aF+)%67SN8`2i8$&^J2h$)m(E2D{?BM&CLNEQ$(8)`Y z49YKVg&Y;w;fa#IKp)|J+xCCZhVTV^|7zFg=ksyss&>sY%2CTKm9IGO9zXnnPFRN; zX<0zrgJMD-A63v458ZH>8Er(@hmkKetA=~0)zJs$)3rL+PC;cj!j1jF$_1zTKS$sYzG8A_ME^ z-wO&mh#_6D3eZFHc*GKnw&Q}G%ZIeJOixZN&3wVQjr*;aFC4fnvF|Z)vX(Rl&$;Vw zUtj8ks{gYy4~3{l#v70C#zgH4>;eNA&5J%+U{~Z!qRD4Cq2=$O@)6%xSQ{(dk3|LO zmmOwXnGntgaTQ@5(XTFo%0PM>ruP$-Bq1%8a40luNZ(Yq4QJdho7SW zNJ`XXp3Se(uyLf7@1o3~bk6fc^*ME)%16(DbQ-$Ddb=*9uT}Bwn4fx-n0~SB)8~Na z^W>8^2v`9>=l#5C)FPaa+AH^fq&^Bm~4dz}iFjJT4w+uPU zlOmeHoyxfqZsQW0?kW!IfThYuG266z8{Ps(b2o3t2uwA)!5RSf12e;1xA~5AdZ%@= z!fd(m=yE4nih(Pj9yKN;>46Y$7N8q>xo1@YQDWf~`f4rcz2RF&!nND2Hgl2)TUk78g)k znX~oI=kh)wE&CkNtjoOKb{!_1&gj0bMLtS4WhKsJ$!j_2i(Z+Z@>*jdI5VXfw|i^% z-13b_R9-rJd+Tq?WsXtLeqCSQeB-DmP=dJ${Y#XvFfO!B7H%>xxf`;M*N9r=9#Wnd z9)`O`P^PHbE*Mr`DYEq#|1=L?65rhrIrSk<4WNoN9UG|`WAYaM@vo*s+ncXiw%9XP$`R!)eDru`RLc5~YYoYVA9xC|>l?XI$>845q6qeiI@M*rc*dD$qM;L_Y z-*6v4v>(<5{>2vi-gsl~=j&AzQLi71{=XN0*KRRra@a78gE>C0ECEXPgxW)R74Oh@#cYZ4U>_U`7 z@{}Bgx^wftem^mt}_dJNR6~S}PNL(7FC?R|gA?%A613 zy63}+&u(%&*a}YRK-(yaLW;_^eBR&go>tI+e$Z*-6SZt=ua6knr$~19&=Y@QZcK;R zMPx?$kFZ?4RLL^=QtITAj6X`acLWEa&^EuVt!iEWP8-k--D}``EKuI)Hcr4<{!HI0 z#O_7ZP_6SZnE1)3RfDe=N&HR0@-8MHb$h~Xm@j6~pC+3;t_YdAcx%1`bzsY8`C&fE z`M@}IGML&n&BCW{+v`blY*sKW>)MGEPb2?mjn^ymg1AthoOOE>)#-CB&yMl{s_Q`( z_&)SPm#RBtGuY%(*m84@MzmKV!hQj&xW)U0h|Pm%0q=F5!!jl^wCQT)EA%U;gUcb- zz11k%R^t3OrGF2~HXpQD5P#k4*{LNA zRW_AXK<3+DStt$g@2zyOjNRUqz573R7=`%_G2N}jo zKTBPhVUoqH_ro@2#0&nr^^q&FG*V`>G9$Kc#PV7s+YwKZ&P;2+OBlz$ck3K+U1UP` zn2;~7|5pP1uNBI_32}yP;GD~Y5WL)HBEI-<@!gCKy~$jX z@qF4S+|MQQ`rm`MU$2PU-wMD!dDhmvbNFG)DCkGjFK!b`ja~Cu2L9_lQZ{1N&Oa)M zACiw>Tx%+b(OXNF&t+W)ZNLwk)_TLF!Aqdu9|`{Qfb^eU#v8!!=MnaC)Cfx-r+ltgK;rlgmvz&wT zRJjC0x=g;>b+*y&Cc27egu8O9ccfn3IYSq(wlaE_6Jrd!y3Grfl^0ljC}}K_mAOA5 z9E2unxonJ~)B*Ks`c<-iHUMK_7tquLI^J)@jJ7cMQR@G|(5LO&SGS&xAzs zbz6}J0+5@~8ezzyKAufHm%gn0-917$v8y&5son&*%9Sr3-s+;gvsb{qH<*DNJ-44X z$1)x6KF36PGEn=MYu$7U_d^xn462ScdVA9Vd5akHTRm?6);qK2lkj&=$)9{PwAB-Y zA+jinaR5#lKtfhO&4WhSydmnfTTNKL@}qSFm)hl=f3pfI=@)`hTV3Zd<(qi#U15kL zEZGfQJg6A?z$%}JB6})o=HK74^c*&ByBN(Tvh?`N?o=_Z$re-#-YQ;BL#yQfJMUs7 z$Oo*6NJ^1$%E07z7mSj_NFg644d~4D6xZJt`UM-{cT@~ zX`k)k%k_n4#;2kCgw*e}dvO+|SZHUqBC}p9K0O|oM`=D~P39E-X+G~>N6-!$4pQFL zd7FL(9O;;Ex-#r`;Q&1Sa7D1HNid3cW_rwJ5{htmax5{P!VTdY90DV^Yx^3vOCfDb zVr%s-I44=R$Gw=k!X}TiBs95TS#L1%&rAR6rdzZxDW7pJAVT_2CF@nDC$%4=wB7KS zHQ)ipTGS|)xwY0PA(rCp3`wkeo3PrO2;T$aqG(Ej4ohXKL)15nb-N|ZH%DI;06nyV zWotPC_-YEj0;G<4PcbdWnoiF?XzcaY_LYrI%Nl;w|ACyJD&JiB1^|8GguCqppi`aa zB*kdMO%_}k`$3L2?H*YcjM>9S{O#X9LzrbHZ#bOh=NJA9INUPkIayV($2hRaH~kU( zWJ^nn@33hVf14(Ok?O9}cdw(RI*~K$+m^sak!$3}rP}+^J?p{C?i1<{#b1HS3mWvm zN40vV1|~nK4av<%ZNA@h=ruUBUp`dE9yrnBM`*3^8}4%tap)cMXa_Gcf0X8EJw4pZ z?;i48!1Ikp;K^JhZ zrkes1GhXL1l7_D;UyuRVj8=nOV8Rpl=QNY~hTto|?3@YvZAmSP?3&G&5uRhA{C~In2gKjrYl&!ajCEh+MSK&(6Hb^6 zn~iz`>81oT%;#=UF@7^l0wm5qyM?QE&Xu?Uy_stp<>#P=ChUmSO)%*)FKbXA6dN%v z$8K$16p7kB^83t***FKEdUMFMWkaz0v=UNb<>HtwsC#D zWQt3m>I%NG=^oboS~ID?<+gjPh=oV2dA<$L2z`iEM=g6lc24IDjNN(U=QBpUUMmg@ zOyu}tLKX?v{gNz07VI5!PS2alQ)G|UvS_o=zPL5~ec-e4B1%&O~%}lQE09j4Q%&z z{BF9{(x!JX>TCxghSSD3bL#cKC%aBIcyQ%Z$mhQQBa>%G1J|D`b5WDg!gzfVWq12v zdadlp(eIj6UIOBpCT#x|WWWUgc|rGs^P~DkHcr!nhZFSjb7wMwM|9aIL0h%|lB}A4 zHhOcpS456{OZiBtBnvt3IHhy-KBr0dB{dZtn67LUyo)5??indWEIdg{eKxc~Z~Nke z3zBK6w1>BbJVxf|Wie&OteOJdwks`-2jp{_FWIj4fKt-YUgP_6oldl%ro9Q&zGvXL z3@lXxE#SB(Tfp`y9uk+=x=7df`-M{Ms>o=5>PrY(Y6^KXS41A+nAbcgxD?hq`OfbD z-}fYHjwvqh8H=3Uo@2wmbfMgKw>-G*My;NIQk#R*KjeqokS97mj2wNn)HCv(7Q#s% zpLCzth!cOy2Qvl`2m$5XxA>7F$6`NrP^3xwTub2dr$xGl27B7bs9RC# z52Hm1k}@V+%C zY;%e%e6yg1G`P_BiYKCw8DZSawb7L!tB2r-l#E_+KgM4c2X+iS<{+b)a?E~}B zE&+{MKX4b88@0nDJMS1NQnZ?;5IX?-BX;STMat~~nVwv|TKAO@Rg1M$y=s#noIr9uQ;9qfd zQL7$)H$=kvf!fIm{>mF4b;?ZK{nGC9-w>LX?kR14@K(`n+^X7-bf($tZs7p(Ylm4= zty0sC*NU}wOz@LxR7meQe>KwO;56vB0ah%WTfaZ6zh$nBvt}qsR6jEeqo%K<^iEQ) zj|rr#Ca128S4qhx93|5KNA&pSnjg~3hxEA{j=JgmhKI{B2zu7czoV@xjLBiN6Qq@#MkBq zXqS%y`g*r8ATH>zlCsP&l5x2GR;aHy@ux1|kQ`$Q!c>U6FF!r{6k0p-r*=r`XQIUF zwv}agTIlR4y3l{~zy#;XU|+OMH?No@04W451OTKD5{`uCuLWiy5%)gCIspFU#&!R! z5U$>G0siO}WN{_b-c(n2c~)O`j_J|#DPNwjM)g=J%TOeLwE>^sjsbeC3r zke}M@Vr3ynSc|-emjBrjdS1{^m7YpK@j+gV*q;~)g44Q{FlzY0*^nXaKxMsl-qJtT z<#a)H$4J_asbveILVa-pTSJu1w}BG6oU|Co3(f`3Kae%E2gCGFf5{6?2iFjQ9(2D^ z6Km>Hp1RxHH&O3uP^o9hK&J!M;eBZUE+{JZhI>oFPp@o%beDw}RvEsQxOuZz3VdYU z^th5KqV&{ix6^c89zs%heMEb^2Mvy=+HA>})yz&o6iVhRMOXrhy02$K);&oYJI4Q- zBmTa4E9%GIs#%|85~x3A&D3q@lnwA=zP{)5{2Dn=TkRfGv9O`d{wqV3eID~!8D$GG zFz6VT#V4qz)G1N2cMQdEaXF_Hl)1kF_IkZK&QWl0Ba~9Ux5)qenyfUGbJ^0{GPz;G za{*<+jDqSTb)|4NGz#P*j01I}r!#mf0UNh6mA#q14?khgk?QnnNV)>4{P0n|D6ypA zEfyl1tB7e)8Xwa3D8k3p`=#J+4^AhlK}F>0?82Ay`FLhWx-u`I7L0m(_AJ}J3{i*_ zqy!*`Awek8*v-m5IobH`jq9J5YhdY$=MkUQO_lB4jdSMf%1u$){$RuUBv9kAN$*yR)(e7#8XACh9ce(ovmSAnmZvu0_GY>mkkf-1H36 z_YI|Il2&35dxij1m`j02@*XUwjjx&o@16dYx-9i~mo%-u*?3Go_^K??erdaU4>ooPEH7upRvDy$6)s7$Ct;6%Ks}N*5~22Kaq)L>t^VxHnT=#$Mj-77Pig6-K zrKj!m^}fwI(hLKcR9X6UT`ekCPrj-5s4@6eow`8N2sVpZ^99s>8FIPge^jfc;e@nV z+Cfo%`%F$^-m6LzoF7K8QxCPm~`U3DJJXy-q0j{cgH6MabaRv9&Hhw(A7JMEPZb@3N$Bb zl&x}{+EY9xUhZF=1@2?3 zLT^)8bNwrUK-;DwEgMJ)y(j$3!SZcm= zQ?B6GnhD}GC-LMLm0!6d|173O4eY9=9IV#^h`+I`#f8`l&M9qvRm8Z8%oPrjCZt2W z8SV>EOV5b0i(tDkxjy}j9p?dRHWNe8@r?&(HI(LmS1Gk>5>nq+JH&+0i(%h-u$4&xgDoX9s%BIKMS6{vfZ%w)RRpu5&d&9VTo{ib7O@TnNP)$OSNJ9{7F9g<3n1q_w@Ssuqh=YZdg&6y)wzZTs=5SN_1p zu5%YQ9hjmM@;=BG_ES7HlBqKZy%U~SS{?nkQSdDFd7t@(%{MbA&@AHA*5%u3dNcew z@0rZ0;5pvDGfH|_AVUA%71noDyTf`bEkvZh428`4&80EFs;$P2qGd)hE3B-DUc1*McFyddmS|_)j=7~qAtx-#Q{-y< z+2&m8pDx%1#=_sb_^*R^>*vc3$6gXEiq^u5L66#psp~tF>a+=4dg=wnm6hKz#~- z+i_hHesW z_0A^fjBZGJDU#pVf1(;BR&(F~F|}oWXtn7^4)2Sf3P*-!X-NtfkvaO_xn-DzUqL2f_j9d82= z#B@pQuDK|#8!~y_4HRaNKI?$LM!r^p0l4wcpJ3YFCCz;WI5s5S2Y71-e)Aoo$;qOWHOzFSafv;Z%N2Bvn27m@Sdt*8LLs|RCsXwLj9aBq2cFo!X=NEliAm&Xv4)Y z4BF`T&nif!jzpFN@NqtGKZ$T8Dyq$jDL)*$4o9*-IP*#?mykuaFIQ z^1UJ|(t8A3?pWr5TaY3^98&h4&3rZl!7L&g9NQ4b8oB9p z^k8QI#%yopUod0$JCCkUnMPx$w~X&x+%lW-CeCjNi^M%lT&2DSsvGXqF4YFLrI_pJ zkxdObvY+SrD17x!r`<#vRA`PyZBD6&isOUoqwHym;l*5%WvR}3@A105m-7}*@Y2kD z`C%0$UgV8Jp552z*rApH z5Nf$l&}e?NHlKA{PSC|Ny8%OKF51-q7SImrM^~+!Rt1uJuB+4(y+WJuY+3HG=AW9e zuT=wh6SP*F3)bi@dJ#@*zu|l2SA8%>h%YyW2$_2FO6*7QOWyUqQ1_ibWgIPcb$#+D zqVg&r%4^?_d-asfG}Rg)MWsha)9JH`X_LrB=ZOpsUG>F=>uAYnQ)qSqu|zY7Sv&L< zM!c_ir<~{5->S3yb?F*P172VU&4(i0Zls{XN8 z73e940p}6hy@#=2$-C;j8qB-n6$`3G3g7G2X+pBNsvZ8g+!k8I-z;7FKY zA>W-hi%@061`D$di)xBI5#~LH>p+3Ct9sm6Wh_dEv>}3vil@3_r?B7P>C}6gc4BUGs5P~G>Y7)x-m5ynN*EM1dBStf0V|?0%J1Lof+C9>0+5IQty^D8 zxGx_UTYp^p!zP$T&B^H1y0VdKbrI-xu}tU6185=E9{PO~4|PW@@zTN72c+8=>2dQ5 z@Z7;X=+I3L|CQW($j&x1ky7=EU;KRjXUKJ1_6LZz)!#OZEkAj~hRfF4GKrmkUo{jb zR(5yLL|1c-e^GI`Z3rv%(U7&1RpDuWZtw*NC&F>wWwHwU+(Ib-rw~8Mc=r|qgGIFM zeap(z4Y#O&*@sd7kneIiPoK+;iml zn_v`eH9`ml^&t^E26*TtG;cy0Y(N~Jq{)Lf>$`Hyi-ViBhUtmHjL~czEZy3fm!|)W?KKqmIT!!r-G4rK{r#d|@ei2xcWT-mGtmyh=T&;1EDqf#ayYPr*uXt=C( zZyvc9mS?r%^(Si##=YzxGwDY5*GrBB;x4tT4RGww^C+P+?c5LFZ!j{bpGy+ETwzZ= zo;BYQ*M!B!*w8!FYE9@~mS z`AlWzLhT=Db%vto>oC(Dr!P)rXP%(yk*-Uiz4nA0$f>^Dk9%|oP<$oQWi;*7!G)%@ zHgvZEBqudB(SskKeZ(}Q`vtXqv~CSB+}_lvJsMf^GKg57?t2X2o(HTt^cHGm_FVtf zlV;bpC=z8p#@Me@R8iVDZ9DdDnUA(93OWTaE&8nD+L~-Q8l8M+^~tdX@`BqW+ovM? zKi0Vt{SnHA59WCF#5nqeD8>&WGW(h{d*x1e!ZUSko&?1Y6S(gRt5YWHSR4D#PM!Ql z_jTciBn;`=_KMOFyKS7wNkhWTmsD1?-peHt_P(a{f+XAfGioHQlRqaLxK~Q-RVwC` zfG*XN9vocQ|6GfZL9m6jE#LmVZwSieUR34X7nAxe3_;?4lG&s05pPP5tc_z62suBo zt`@$|A!1S`Wxu4Rg!8O1=&Y3;)AmVn1;A)6lwrPKPB!>9C~Y0s+LGAiwf^1ne>h-QT$npUe*r-MEKZTYoXQ9I;=f(n#=Jo`Pf=co}PI+6_2A0n=4|$U4OK!iZ87egjFsX zaogz#p`O)&_n-Zyn*4b{tGxqr&f)3Q5w;*SbidRWF_3sID*=#}!1bMHZ;;$?sP z0(_XoeBX3Uw4C!x(dbG_qUBBX?*$pimBG~B;(=OY-xgxSptb-Uzou4rnsMC_;~3^I z130U^pncyefWmpGZeEqY{*KfZlln>c0sM>y@Y4&H`vA+|jT!>C`cXO!ou}J-F@sBL z8&CO-y-nFWWwpQ~#ik4Vg3*2Dv>~l#Te)YoA4ka3XsVO4AP$Q=+A1*Cc&|zODNq+w zH`@(_%iM{SDIKNxySJ4i|D>-!I2eyN!wPa7cSrqJ9(7pNDpUgxe^o-X+rvpRBee)q zSbhJMW*O=e+Vp{s+x~q-x=xAvM{L|y5-oTcT!jr*!1+OK}zK-Q^4vd_a(fE?m zwdjNf)66h>*o#$xHTZ7)cV|iW-lf$eJVctUT*vV$0@|dwFIqK$WtXWn^MnMNNs)arzt(| z#ZV!2*%XYA`P2^Ol~8Oq{N{G7eN352>L#8GzmCtcZk^y6V!Rmz6$u{+z8L zKHM>EP_{T+*(#^W&mwJfjFGM2TaglM*EBtXggdY|uGD5;UjI7VVBjL30zoyFSZ+Bg zuP+^D{pIxYHF1yDsS#&fq~3VpQ(OgO%$PC4{POAUaZ5R*g5{OT?^29t=8^;8$NQQLQ9@i{rk zvjubDiPxgPEy(a!4AyN37bDFt=|GneK6>?S8*2dS08U`vj@UBd(7G5Y(fx8K=J%+% zH1zLG;s@_?G@or|4UXaX)g>xd8SW}}wZ@qnw(P_g+_quX^mWh|c0S)P?S!ye_PIFk z6kN}jO&rsk@80><_?@V{fL3vxxFObF(6l1K-l=+cxZXd2dJ*SOa(xvX)hS>gvU=FX zww~K(X#lNCC4Sjy)6e#dK)MjniqV59fwvfbmIX8o*gb+GNVwB=oSdM3v2UqYl@6zv zF5o}=tYn?*beOt9-nLp8C5AJ$KB`kQRS_+?JpS|D$@hk50VyzmB0V z>s=C0*L7o>5rd#BH!c#`)XS8qopcR((zgj~_C z!fY=Af2?wTmKpn5v8Q23mj2IoP*q`giKQET69mlJwSMYM$VGtl*(KpK+&A{y>%9m~ z^>dT4L0nWaoN+g?Q#8Zuhqp>q_XlAV-@E=vZ*G|<64o5{IC;Y_5zQeJ>T8w-=8aZ6 zAg5&C>U!Ii+A-J_lnTKy?#ffH_8`Ht@IIW>lLz;CZ`SFeRT~AIOIIk)Q=cGMrHKvA)m{Jl#jY~@TdJp{hQ$9ha!8qa~CZ2x%^({ z7rkhhIOD5vsDja7b$ALf-KbT)*CbvMNvdf>%JCk$Oy?4sEX3L^bg;PJ`_fMQ5%MGW z2!si38BY!k3VRiu7CGf!b$B;XO8<)MBX&eapzp_0fw8`a#Iu^uFK2bHMkSZV@n_-4Hx`w zTHu$ni_$;T-(b33y^1XD`ot7O*W;Vw$9rCOpN9CtK?A;xhjIkGW}<(-$F5@-J`Xv? zoJ!R6RMZLP4-B-rMH#fWm=)>wR!FTK_5m$Byy2|Uq5 zRMeV0Oy#wEO4Ay@H+%irc+=0v3%xeXsqktpx^V@?OUNB++ps+5_NWl74SH3=qo?Mrl-4+?y2Jc;mNX(CZoWpcM}`cd zD73VpG$K6?GG|$&6IB?xomjaHMpV&u2PkZe=k9Oc;LW%Dn4@E^_7eHHTiV^sz^Cuo zP?kzg5;O$3{vBNxQuoAmr!e|L{1qW}{o#h_WPu){lq4>~_c6Al4vv z2TbPfFeIa5L#qyoSC)2$k%6=KLwtn;0`;Ay{80Cnk?i#Ekl&4a91>|;F`tY#uAf3= zm|Z6mnrZ#4F3ihu!V7oFv9E4&GWB}+4nA_}u<~-s4IKIg z|7Yb?ai3@T-zF&utc3fFEc`9*q=ldKsZ{%0?AT7dF^1d7&#YvljQG$a0xOMFUJWQ& zfHJNj5}MEJzk$3YEOV?yy#=n<%xMkgL7Z31YA4XiSkTNU7{WE$dz|Mb7{yMUS)v$z zIC(gZ|`i*FJdy(>F71vr?Cr*3u_`swcT<`<|Y$AH1i8Q zxgOO1HX=u9!Dp!bF+a)XLP8%h9?rYELE~2$rmxWHzkA2=nPUYi zn_w3{=LmOob7Q=wuZQd2J&%vM6m)UV>a3sHqpcCiqv+Wmrq4kB?{5AU5zcD0@_PaCDL3!oN{Bi#uwqXCBaL2G+ElC00+7%XK7Jcu# zi)W0$v*wO(E*IfJ)%9jnwSO?V;3#i!m0(nyHS&y9z?$XwTCWTs3isIrFXCS&LEK*oW+%X{+Bbd27q2wP`^ z7Jt8<&*;6#q!+f$^H9CL#t#*II)%KJ))TM2C|cC9f}Jb6AB=wdy85U1Ym*)hagJLc zHzw-ISz5hs?-IVf_JmEGx9|7Q$pbUtJN|RM0lIBDyXFm;;1p|FK>O;mC|lbGe#V!? z!YX@{-Sq1o@ilGMW~E`oCzx`N)*19Z(H=7p_>DXi@RDbFAD2nrdW1fkWLFD`Ucrr2 zMpESOMLTP21?m*>hlwTXI_9J}l0R0M7CGq!ba_2To_9|Fa7Kk7*7Eg?W?Q>&siPFOOE$qHXSQMZj5ifIoZTQoDmA+D$()m zwet|5-!d81XMv&O2+avU7!P+Y%kT%-oCRCOK=2gDU%Av~QvSP*q?+4U_vnfQK3rq2 zo}35!(|HP7#EvTBxx?fdxQZ=%D^BUehQBkk}Fr#!6^Jl%Khm?#`^#FmWkkw!jme^FzKkv)*+eZZ_e;+%)Fd4}3bZ z2jdQ+RnEVVW6zx5auTbfUVUVou8PG zC?Z0MN)=vjfeO5Vqmp?CC~_*9FW90mHgh()qYRbTJ5(A~h*QK4K5L{p;iv8gyhL|4 zl_U$o^;*W+MEt)pcs9aDl(FL`d)ACqp9kBucb_${z0tGqd*8U@pVDA8{Xy)3FEM=8 zpSnmfAB86>d`WpGKvQ4LisKDKPfQI>% z!2Vaa&l>oNW~9C0?j0IlQd9c~^+0QLbe>*uoEr5?-v7-cCLei~rUHbIs$JnbYWsIM zk_7cRlE)jKaI4kS!Op1exlh;~c+NRZqj!L_epsjWy|rbho!?WqPn7h#8}3OzC_xI= zy;F;+aY3&cq-=U{^V|7*zo~Ifgg-A21^U$4y9;ZPUbd846572A(^4r(cm;XA>e!Q73 zo~Z;;|M#`L62?C_^tv@|KenEQ9NzKeG5T(ApY!m!3H**ilntZn5RS3Zt!5SR&zOme{HYml1A2`de(sg0r1aeZoci%tC1gog`e>%v$j7#((EU5@ z(ZspCLJeH^RXfSepaoS|e|MO-3e+uw|I%nDP=39(xqoNRV#MB%OEJ3dm4RAJtwf#| zM`8;lxJlBkB82Z_2i({O&g zrN|}tV0Ix@%HLULxjz9Tiz@#!Z&x$yPzf6h7S(ny_RwK@7%t7NIklG zc2S&}LqsZ``q$3ZRBUW~0drH?D(shtsx**@ZRVFO6t)_=9c33xp~+I_pX z;@h$mo4OhP`*rfnFePtYgevzl^$epxzgVdv_Km=Q9-VqM>SiTAZt20tZ!qj(HG={t6j5Yxv~K%E`%rK zU}Gt00)*2pk3E{B3smp?E9fdOD$EyIU}>7ZdAhS7V{$uRZ(Cl6)56!Givjzn(k6_q=%2siw)U44^g61~k7Gk~XF9d%F65lpwP zcmyD00~6e`TG>Gg`b%Dw5xMDA;u3FKPX&YqDE+3rx)I59r_ZsI<>FHSq?46FWjb!2 zrLy0ztlgp9n$fm;)5?Mt{hxAil=-yc)U74>irh+5lK-W^i#ReKZ_?ax*e+yjFSX??oJJ zr83g?;Pn0>u)R%MfW`H9{5te$ImLwRJMsSev)fOHBOsPh8%E2Q>lNWG_A+z+;+g0q z2-|~;-MRamRFWLj*}{7wy0OPhbOdkk?k^7+MiCxG2TBXjb! z>CAk6SqTkCZYIv1Nmi#3SRSqC-v6>*aH-*kH&fkcUEwbZF6=gKx}2b+W&@k^{?cB2 z2c;GRI3WY~uM%9pxH@Rha##|^8ek~g?X@S6+6!{C^vP|4xVQp7Cy%K5OoegqT4QsD zyY&7lY$bR$AY}Zn1No!t!{$?F9O=cpwB{76+-wYgL)viaQ3Q;oS%i4roS&Lbe}S7+ zbnTX@IotonFaCfb>T+19a(HHJtfyyg*V#H`W`Dhn{XugrGFW z%a-WPkJyab9k>HSO*YpdYSG9NlpeXO$ZI7B z;e}LWj3ot$r%?YiZ_M3NgKE6BXiTe6Xtslti8GqN0S2Df4H_MDWf)Sbr)$~^|U4g)Q}@_M*c8wSlSt6An?lRNw%vn zj}Mb-=h8o!RYOga}DleY7H)C&Bvv;p@G_*>1zQ@2ZxzYP8heTC`ew zkD!Y7Hal*kM(j}{wS^?8qBd1EYm^!_VyhKe#Hd*+b`WAjtcZ~qZ|>)Po_8G2d%S zUuf>;u)X_>u9kh189>bPnB#3JE9M>5wmKKR%Ff}(jV=ur@|#(KA7y-OH71U)PJ$QrA(uU_|IDpBQw2Je z*@k?XrM?lX-Ufh;tvX$_CmD#BKpmN^&H@7mkwH3*KtE7|q#8#-LiclYmoIctg=BGWaJnsb+19z{!r8*_+|L45)Ka0@+ z?Pp)K9h4HA2O;-EightY5%0;pG%~FUN1);N=*Io|4L!zjT<}**W3tsWlIbA z6buK2gu;&gDlYHNzLq;vrO<{AhP1Hb?LA2|aHFQ(xbb`BU|HxrZe*6gON!{gJ@+`I zEz$>fKks_}MeVKGghAnv7aHJ`RjwNv5lBk#R`Wu-l9K~+{>zc{NdHYLFG_}SEz9~& z>s<6l3fb&4N_9?5#@{yX^a=Y)>pOuAChS}4*p?ERSj88a8>r$3(>}X<1(HVl!eHO# z((n*Qh1FbXuB)f&fqHe6S1wQX)mUpOGv9@|?o68z!C;rjB`WoZ7!Q9#`Lg`7Ldj7L zip}e^J-PRRmVM~}^&$nIwf1pP2L4uMuVSQSDDWUq>FOwV(8((8bY~IVzu~QApCF>%)qwAgPOxaCH=Zl=4R~3sWbN1H;;gKVs-(wBTMSMtc~BkAUC2E2d4Yu z26(|$M)8}-$1aPAOyYiBZ|@O7QKUD1!(*1DIhLo!V;7bmAqU6JB(Zr$Xw2O z#*ZRq7wv&<3oW>TB$*Lw@B@wZL0(?5mRXXawdC2eYrB0k_YLn(pNiCsm$XDw{AKr= zi|YHdM_4=hd@5Z2`}27X%^cmAt!|*tq`y5dKd;sDez*n<&AIQ6Fl8Y?9TF02LPf@zc-GRGee9xprW8GY`ugr}*>*-JZ6=53FDf$$ zo*F2LY;Zb11M8vYE{&n$6nptoX9C%j>dFQb3o6SF4MOj+`qx=lJ>aPZ13hHC@%|wp z-u-K7upzpK#;*25rw%_AK3;}x)V)l6vHC}NQiwEN5I0TxXYEEyLP{?oTSt^^?8l~J z9^hy^)gYp_8f81rqCL`czkIT%(OKnIf7`f{jANC!{omvqMxUONsG!{TW;&VSN1)ai4O#C!OXw^2E+##q#GS_Q=;`` zngveN_ZWF<0LT1bA_D8>EGN*<4Luu*p8hS|ep_>;RJ=!Hl{c|aYS2Z~X&cb66E(Qb z;@h|iuQ@~eaHj)^0iLKS>2y&y*TVhjZ<>`xwddOu$A$=`(!Sx50RoI0a8ZK zrXyeEZ#i@oiLT^JV9@NxwEH<+yJF*O#eb8}?6hBYdnntb_ zcp)(Y!nM{}IklgDxjN?!WW$h{&2`W2ANp5A<5m2Xh@DK?XvxM0zY_^Q#l~g1&pqd9 zejQq#9Qi(e=BzjeS0YH_5=xfM`+0*C70p8qSl*we}l(Tnc{ws;Enb zplq{Wc11Z;@)71eKQ|*ggLQ`avrk$_iBv&iQ@6(sL>vB@8gez$(~mjH4?k*+8Eq+U zlwFAJvL9-^_q2ZK1pXOPN#q}O{gPCKL3{$P5WApv!5=P?8#N$1sfUQ4BaJ(JO0}@n z(=wpY81*VY*5juw$x<=%(bk-!I2~}G|B(B^&>Hg_i8KtRPw62WeBBw$>9~WZ@PyaYKej&+(D9#@Auy; z&1Xxk?D`hYNti>{ixO0MBrX2`n?J~ zaZNHg$w}rZqAyCxZ*=?TaTJe5TyxHfnD(y$&ZhzQ2SSXk=gcp%B!aUJQDx&_hTI6h zoez!HNegfmu4!Ba*_6W<#->v!#yiX_%gpTM!I%;bBetxwX0Fm8@RcUR0jeB_%{(1; zTUKY@p5xFI6{8W&+OA7|2lT@Q7wf*wuZHUgv!UxI44VkUj&MW>uU9vWMp3Gklk3U( z*c!;s=cm-d$dRK}|3PycDB=x5i`UxLJovNX0meKrBO|Tm4ihDwcO$iCUv3Kgwe`0_ z^t4r~4<@)nIfQidaAZHHqaHRyuL1H(grtCvg1Y|jtg_2iR>meg5~3lgJ*8SfdW_5o z%8qzFFtpIVeQWm8Q`>pJUQwNy*Grl$174V50n*09}Wr^CZzEY58`IyEinao z&45@q+J4xk=EIh)@AGrXSXIo>(0|9KwZ5IG79kIQ-G*wZ2csTF>*dvZ*|IAon-V@Q zb50_08_}3;Ia&T)Eg(@Cyfpn$Rr#sVLleF!+9mrg?$Bs%I zDfMlYyRZB24B|T~5T7p(mwD;@rR=QO^N#w4hDq|Q30iUL47B=gP^3{0jMjgub12|NeIeB;(G# ztaNEn!vP3iDRI?v@oNwamy)=&<6twjQ12S(Q7CSU-tS>+IrrQ4O5J>g6WfFY=B^&Z z==e7h9aQF-_jd4ZTG#zZiQUZ&YW4!?Ch!{OwdalpItLyODYBVRzVV*JUBb9Eq288^-3b?`YgjVy{FQK{_6Lny6nN>))IqPyJ};nYfgHK zh{nY`eGkag2;-Uor_FIFuk1c`VCk}0Q_}KnfI{m!t4$7L>(h;fg{QN;T*3}vQ)fR>H$-N5o2_xQC+0@~2O$pK5-Z+-mdz?zE(t>+J z__f55jsErNI(2F1_x(o$2I~Nv-q(F?pC07ER9zFf2;=DK?{j|LkL7nc8UW9ITM z`(7%@pw~|A?ftB9X|7BK%4?J<0*i12h3RX`LJiFOu)il|H4=`q0ca_8>-h&R;#bd ziRa#*p3-+p4mpM9p`t&ErSR0MwUKm2%lktEGl(m3R0GA6*Hg>qPYaYBm(mo0F-S$t z9lExKtKK`PHntkqwcq&Pq4d-%CH})k{zq^A-z*mkn4e;^m^Tz-@6oi7L1Jvvt1{=)3a zWJAf}3BK0k2VvX6Q%+3n&r*846Kl>E^$+5RTvLp&BY>dQ%Ew*9cy9M$X2^4Rl(+nz zaff$g0K>M#t#Xz;OY05WVUuX7GJj9lT_36k8hoJ+#dE=Z#80}7bC`SD*VYPjaSy} zqK%CSoDx_>51;Kcs~ML%yn2rCwlZ!;e^q#=m|Wm7BJ*eMp!2m58sy0nxTAF~5!>!6jDec+@ZK<{*IIdIbac%3_ zmqp3HMZ~!~`hOG`u1ENel;jo~`tq?k)jylO2KLGXGG(3@izw$=0fFnchgk(1OEgXR z$T{6;!c66=lkq4b;vNS@o4yV?G~2)5nn*h@Hsl)G5Royn-~}cA{AGi7I~zOljMt-V z#6_)VuDE{Ise81g{|foHd6r|R&`8`0)BT<47qEXbIe{#|!)yTtzi1v*qR;Kc#NyymAvQU(9jb6%A%Td0JK9 zuvhn?+2INnw8s_PS2wV7Vn{?`y>6IxtCdDjlj;VN=8z|>X{3Mn^xaifzZZEwvplT7 z{yx>nDZ%r!`<+4N{Zo0+T-o`_(fj&&#DXyRon03v$~Q2+?3@p8sm6g4kYEoQe}Ng` zt~DFct3nHaOO3U0@fozE-FFz98Q z33O@w%53{3pl_zpj{6@QTUi9&+yCXhiG~1doUVs#s@1{Nnl3qo0pB&Cx`PfDc2=#T zr;(_whJdz40v{OjQszyO3dZjl(RXtiKD-uDiIkE2EhDt8f3fT@vRfbx(sahjWDPbi z(En&ukuTNUI_~Ru+sDE*PfPKdc_?Gm_|Jv%Q?f-Yla!87{9-MB*+Fns3aNAC;7NdJNg@Mv&`! zIuq3#?Wl%H&I5h{bG6|t`z}-np+fysg1O#U>JaGS0dLjlby+Y*eREmE$;d3_R|A1m zhQ8YpGpP9JUGY?7qp# z`8+dsfxHHUT*oH? zR4+nD;!tA2|8yCtnr^H%7~G{ab8a_Brgv`NR!GxCcm}PKyt?ga_v!&2>R(;w0ykr1 zk1}2+DNL@C7~h^(A}h=B5@#`o8u^8G&IsN+nal$+>imUy<45f8@qByRGI%sPL=HF2 zd51(y9OP-9mGMF46rRQUEii0mrb5u@zh~=Wi_A|g>Z8We>F?$=A$lMrv^nOH@<_6(CN zw!ahV96Sh8IX^~Mh|Egxyhq#a7-PBJkZ#gW?4;Re|Zx9VZHEo8{Ftg zXwAQHq~K9ROGZIJH2qN-LnCHsnzKC+W0hQ?QFMKV%YJKuBMn{~O+kQfgB$+?i(?J0%BRG34L(I|0G*?w{-q_k{AT|}@1C^Sa zNA-G9;SR_5Aj=efj$`6is^muisJW++Y}tc|f7Dmod^ux}i1$|M}R{J=TN%y?^pj+(Rkw^TzcBfc~JlXvXYKv1x*Vlw0D+iFo? ztP^B<(6w=UB7KSV=jLZj68ti?%EXf2wkcd@ou-$+5l=sP=lfmp>FZpT_f^3f_FY2> z6SnRA*%yV<%Pbnym1H=DjHOeYy8}@Cia+^@TBie3i6nNbs`t-h^_i=#)D0*Hqa#D>uP0W8Uj9myASH}Y+tP3cYZo`-YkW(Cl z6eQ3BOYr|WB{)Cp7;5FC?NE}iIpnUbO1d>Tj=vvR!7*dopJQQ3l}4{@?7Zo<0ItmL zIdp9?`1q1X2PQ(a$DIYFqZtcE8gIty*Z>7x!Zz(DpQ!BoLoGQSwUU3d9&57*Jzf4Z z(gi%%HKq8(gZz#!|GK{n&h^j1%hvd$z<0)%Lv0UM;Xn7rPV*~cfm~L}R|Ciy zsBA-}0_u5io%NyY9CvMFyoY8-lgzTfQIY>@l;#{<;7KYTT>BYX zeH?U;XF7M*w90(FIc8FVoO2O{Ap{@dys9KL5YWTk&C~!9%#y!`b5`Ty5e-1~nHlh? zzkQCmGy89g<@p7neHwDlph`j1V?~=H#Jq`oYT|?SoBgxavVXJ_3v*yTqI$1-TRK~>}XMRZvyBiB- zCs6CQ+wFTNm;GKH<5b6kS(J>V{RbT`XSgVDptb7&e)E*qmy`B~vk!D{!sUkFbvHcB zg;ZcJ!tVC%bBsMame4;WC{E(=T+8>~pZ&Dzj z=%T0>fg7%)dzt4+wC1p|F{8(|+aEifTuB*Z62S&iCxv+(3U=p(jNU{UfIE+IXW6^6 zTipdV;!t7a3otVK(O(mGj5lRzoXBwv8dcnQqk&ZVT~D5ON`B_ zimM?evTpGQzg-R)AR(|F=PwV^{qD01P!@Iv(yyujs$HBUVV37U8TvKM)@!>HfzAeZ z*`@-~HzyV5uzjc721F^I#>Jud@hCbOi z@!rao!_BXzc2l$;**tmP5>WQBuf6V?I=x=>VEL2qgh8q>!6j`3R6TNWZ4mj>YHP{} zL7VIWLdPdBF3&T|I{<(C2Mw+ zAoqTmB;-P`5gpRi`4*bfl1 z%g9LehI>_Y^7>in^k-V~B>%Zf?Wc>co!0K;ZSF2N@9Q7lNPK-G-@BSL_S1i6bl>!> z`b1Iu+$k_elc9>aIk&wU3;jjD3$S~XZ({rJ& zDKV6xD8tUj#Pa5?=Y-IBXhhRrFt;SuD!{AV3OBvzEA0s+1H#8t=Mi$Zj26#a%nMH2GhZY_|g(OY#&JH1Z%7 ztw1&X*(yVq*HW>9q2;zXKuHycO;u~++~*&|iaET_{$I#V?k(HoCK4z!<_ibZUcL8x zGg>>ERBDTSrODFW_{H~KOx#r>mw-9wdgW}**{mX1S*4{f!~#vHs2BMz4yL7=Js`E2 zXmc>FwL};F&Qmr`;4p4@!D2$WR1KR=TYh%1(8;gR=Dry2SnBpt_Tn(<#Q&m)@n`q( zrJjGQ_p9AYZbpMU(djEstNmsyZU|FGNH$iGivEBB@4Ir9>DQ$~7iXVXpmm~m*BZP1 z8<$o}r@zVq3G_wY?HXIr5`ah!lhS*`HQNX{=M-uG8#(;#MDOCXGWL6;Z?4dhJGc}o zF`lq75T190KWDXTyAgSbst_HD?!ibi!0xO#Z81*8CDXI8+p6b0DOTbnbN6uuRJL>F zZGjZ^!FEa9`q^1geJVfHfw-*GB9{pJ#v>7Kli;qm2R1jOlEGE207W!`E zy1+HLB!$__{>goYc;}yczCFHGF*!W`UuJw&k;Sa@U#{mD=oU(Vlw_*j1=a-UVtoj_0zXCQw2hXh--#^MU!1vHYoMRrb`_Q54VP ziV;kbscp=?y^!X0mds%z>*Y*TmZyx2k&`It&(RHDO<3Y2 z^wG55U80I*$uxqp9om}p4WW{d$Mmi1uN}e~aQLYVnYeu^Q?7|5uSCgx{xx=c$5-M% zGU$uWvWch%@_cQ7SZIrH1s8g$D&0}Ck5)1~tIdj znevWwdRlfho}cZqn(j%?X;DXQk7wuhtcZD$q}jXYE=Reg797Z1-vy8=(nv;hsPlu< zy;9m2|08KcUM^sI`d>z&CXn~4f_MH$b`fXU40|QchP;AGH6YC=2R`YkHw{WW4(rD3 zul0hKZapJD#SQ6;HG7k|1zs}x(d-zI**JXo`a}v(yJO*&FOg540m)tZRyxR&t0q`l z#_A8B*I5@Gf5ch=MPVAEH)@~DAT3&!<&M73+j{M2>V90+Ug+_gyF~rUp}948P=%SC zucwENZ>`4{1G@cL(9;`~SmN{6%YVFA-Z=bL zsMitgNpm2^K00HV_P(jEj_-&PZ{kum3nuK+$uOSjSXD>M!OS5+@4B{aX}6-Idm-X% zoK)e3qgHdI9xd<&50AvVZ3+f&qj!X{l_XQ8rSeWV9lA04h%2Nqqhe;h{7hxLh!B7w z-}Oi1=xXp=gkT&AR=o{NfQyuRN#0u1_5|>^=GJ_Ky>R_qQm$^8ZCjnR|L4}8D}E89 z9k*344SBou`XF9U;pd{Y{_asbi+N9dPg!BTKwCzQNy?+I<&{b&2=(DmB}w)pUk_<~ z@G*F8?T+vTiu{8;lwD&y9k(P@3}^!Ts{ht0SnT9Yu2)%F(TKC=7Hn~U;ky++2@n`! z(v_?i151fn1fvkW0I?krF%40} zx{&y`uIP4sP{3&&WZ%<0!<)Ck5pNR|a6XzVE@=y^Xn5H4n$=C9TMHDAD{0s}Hh8{? ziHfl=mg?`aPMvxfg0o$U!~LlqBFuJaW}|-qe36frIst;u_UuIZ{iV!2KiPJ_uy#bS z$tu>|4}SA$I>R?lF>~%cIdryz+xVo^+w|hN!YJCPp8M|%z&RRl7y1T&P4YFdI^2XZT?DL^VLbYhI7=fh&2d!M(bIr{c_lszydaQ;Br*QXY@-hjALS z%$m$0Nke&6L)o3*+l3_BKJ_T@x7yiLZ?yxA7XVfF#*}tHabk`ZWSIB8Yf>=kSI!S2Biqezh66ZcD;xhmF zoBn#?_4I@`S1rdWC+B(zSZPj=gXf@}JiOJ~KBQgfaopa{`1c)qTOY|!wgxm6LrT*t4Tho zKtUt4-#=AI6%D?T$;^d$f^nR5lm3vWZc)7B66RI`aZA9*2NX#0-HdBmbKCjt@a1>B zyBYoOt-j@Ech@h<(Ay&Y(;pIeKds=9%gug)z>7LhR!bI-lFy&{3uZi}{0z<%_{G1wGLZ9Sj$)>?tkk^~#m zVtRdp3JQED^rALFF1qV{$WhToYHNtv|L{|`VHCEmGlJa|O;hs!I%oge?UL7ofxu&A zzXxnxi8*=g=I7?M4{=MnK-QT^Km*T)FN-)P^S4?JQ*=WA�|`)dpF99s4kG7YjJ7 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

h_D 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 literal 27860 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 NRap!9M#&=NzW~D$Id1>} diff --git a/images/cert_store_add_dialog.png b/images/cert_store_add_dialog.png index 3c0561fbfe5cb6c4de7469c5fa7dbac2e372a60d..3cd444f795e721d3523f91eea7af52b3303240ce 100644 GIT binary patch literal 22194 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 RBFLYie)8~fFWDX#^EVcQx)%Td literal 20278 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