From 120bf1824d296e028fd57c5916130cf2f5d3c931 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Tue, 3 Feb 2026 19:53:54 +0000 Subject: [PATCH 01/14] Update generated docs --- README.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e8184ee..a63c674 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,37 @@ the Keyfactor Command Portal ![BoschIPCamera Custom Fields Tab](docsource/images/BoschIPCamera-custom-fields-store-type-dialog.png) + + ###### Server Username + Enter the username of the configured "service" user on the camera + + + > [!IMPORTANT] + > This field is created by the `Needs Server` on the Basic tab, do not create this field manually. + + + + + ###### Server Password + Enter the password of the configured "service" user on the camera + + + > [!IMPORTANT] + > This field is created by the `Needs Server` on the Basic tab, do not create this field manually. + + + + + ###### Use SSL + Select True or False depending on if SSL (HTTPS) should be used to communicate with the camera. + + ![BoschIPCamera Custom Field - ServerUseSsl](docsource/images/BoschIPCamera-custom-field-ServerUseSsl-dialog.png) + ![BoschIPCamera Custom Field - ServerUseSsl](docsource/images/BoschIPCamera-custom-field-ServerUseSsl-validation-options-dialog.png) + + + + + ##### Entry Parameters Tab | Name | Display Name | Description | Type | Default Value | Entry has a private key | Adding an entry | Removing an entry | Reenrolling an entry | @@ -165,21 +196,43 @@ the Keyfactor Command Portal ![BoschIPCamera Entry Parameters Tab](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog.png) + + ##### Certificate Usage + The Certificate Usage to assign to the cert after upload. Can be left blank to be assigned later. + + ![BoschIPCamera Entry Parameter - CertificateUsage](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage.png) + ![BoschIPCamera Entry Parameter - CertificateUsage](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage-validation-options.png) + + + ##### Name (Alias) + The certificate Alias, entered again. + + ![BoschIPCamera Entry Parameter - Name](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Name.png) + ![BoschIPCamera Entry Parameter - Name](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Name-validation-options.png) + + + ##### Overwrite + Select `True` if using an existing Alias name to remove and replace an existing certificate. + + ![BoschIPCamera Entry Parameter - Overwrite](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Overwrite.png) + ![BoschIPCamera Entry Parameter - Overwrite](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Overwrite-validation-options.png) + + + ## Installation 1. **Download the latest Bosch IP Camera Universal Orchestrator extension from GitHub.** - Navigate to the [Bosch IP Camera Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/bosch-ipcamera-orchestrator/releases/latest). Refer to the compatibility matrix below to determine whether the `net6.0` or `net8.0` asset should be downloaded. Then, click the corresponding asset to download the zip archive. + Navigate to the [Bosch IP Camera Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/bosch-ipcamera-orchestrator/releases/latest). Refer to the compatibility matrix below to determine the asset should be downloaded. Then, click the corresponding asset to download the zip archive. | Universal Orchestrator Version | Latest .NET version installed on the Universal Orchestrator server | `rollForward` condition in `Orchestrator.runtimeconfig.json` | `bosch-ipcamera-orchestrator` .NET version to download | | --------- | ----------- | ----------- | ----------- | | Older than `11.0.0` | | | `net6.0` | | Between `11.0.0` and `11.5.1` (inclusive) | `net6.0` | | `net6.0` | - | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `Disable` | `net6.0` | - | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | - | `11.6` _and_ newer | `net8.0` | | `net8.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `Disable` | `net6.0` || Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | + | `11.6` _and_ newer | `net8.0` | | `net8.0` | Unzip the archive containing extension assemblies to a known location. From 7bb48de43aa7410ed3884af7d4d842c63f194491 Mon Sep 17 00:00:00 2001 From: Elena Fiocca Date: Fri, 6 Feb 2026 17:16:15 -0500 Subject: [PATCH 02/14] Changes to support additional key algorithms v1 --- BoschIPCamera/Client/BoschIPCameraClient.cs | 1360 ++++++++++--------- BoschIPCamera/Client/Constants.cs | 312 +++-- BoschIPCamera/Jobs/Reenrollment.cs | 530 ++++---- 3 files changed, 1180 insertions(+), 1022 deletions(-) diff --git a/BoschIPCamera/Client/BoschIPCameraClient.cs b/BoschIPCamera/Client/BoschIPCameraClient.cs index 6245868..cc59d98 100644 --- a/BoschIPCamera/Client/BoschIPCameraClient.cs +++ b/BoschIPCamera/Client/BoschIPCameraClient.cs @@ -1,649 +1,713 @@ -// 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; -using System.Collections.Generic; -using System.IO; -using System.Net; -using System.Net.Http; -using System.Net.Http.Headers; -using System.ServiceModel; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using Keyfactor.Logging; -using Keyfactor.Orchestrators.Extensions; -using Keyfactor.Orchestrators.Extensions.Interfaces; -using Microsoft.Extensions.Logging; - -namespace Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client -{ - public class BoschIpCameraClient - { - private readonly string _cameraUrl; - private readonly string _baseUrl; - private readonly HttpClient _client; - private readonly ILogger _logger; - private readonly CredentialCache _digestCredential; - private HttpResponseMessage _response; - - public BoschIpCameraClient(JobConfiguration config, CertificateStore store, IPAMSecretResolver pam, ILogger logger) - { - _logger = logger; - _logger.LogTrace("Starting Bosch IP Camera Client config"); - - if (config.UseSSL) - { - _baseUrl = $"https://{store.ClientMachine}"; - _cameraUrl = $"https://{store.ClientMachine}/rcp.xml?"; - } - else - { - _baseUrl = $"http://{store.ClientMachine}"; - _cameraUrl = $"http://{store.ClientMachine}/rcp.xml?"; - } - - _logger.LogDebug($"Base URL: {_baseUrl}"); - _logger.LogDebug($"Camera API URL: {_cameraUrl}"); - - var username = ResolvePamField(pam, config.ServerUsername, "Server Username"); - var password = ResolvePamField(pam, config.ServerPassword, "Server Password"); - - var credentials = $"{username}:{password}"; - var encodedCredentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(credentials)); - - _client = new HttpClient(); - _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", encodedCredentials); - - // for use in reenrollment cert upload calls - _digestCredential = new CredentialCache - { - {new Uri(_baseUrl), "Digest", new NetworkCredential(username, password)} - }; - } - - public Dictionary ListCerts() - { - _logger.MethodEntry(LogLevel.Debug); - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.CERTIFICATE_LIST, - Constants.API.Type.P_OCTET, - Constants.API.Direction.READ - ); - var requestUri = $"{_cameraUrl}{api}"; - - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - - _logger.LogTrace($"Sending API request: {requestUri}"); - var task = _client.SendAsync(request); - task.Wait(); - var cameras = GetCameraCertList(task.Result.Content.ReadAsStringAsync().Result); - var files = new Dictionary(); - foreach (var c in cameras) - { - Download(c).Wait(); - files.Add(c, _response.Content.ReadAsStringAsync().Result); - } - - return files; - } - - public string CertCreate(Dictionary subject, string certificateName) - { - _logger.MethodEntry(LogLevel.Debug); - try - { - var myId = HexadecimalEncoding.ToHexNoPadding(certificateName); - var payload = $"{HexadecimalEncoding.ToHexWithPrefix(certificateName, 4, '0')}0000{myId}"; - - // RAW HEX: "length" + "tag" + "content" - // length is full byte count of header (length + tag) + content - var keyType = "0008" + "0001" + "00000001"; - var requesttype = "0008" + "0002" + "00000000"; - - payload += keyType; - payload += requesttype; - - // CN is expected - var myCommon = HexadecimalEncoding.ToHexWithPadding(subject["CN"]); - payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["CN"], 4, '0')}0005{myCommon}"; - - if (subject.ContainsKey("O")) - { - var myOrg = HexadecimalEncoding.ToHexWithPadding(subject["O"]); - payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["O"], 4, '0')}0006{myOrg}"; - } - - if (subject.ContainsKey("OU")) - { - var myUnit = HexadecimalEncoding.ToHexWithPadding(subject["OU"]); - payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["OU"], 4, '0')}0007{myUnit}"; - } - - if (subject.ContainsKey("L")) - { - var myCity = HexadecimalEncoding.ToHexWithPadding(subject["L"]); - payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["L"], 4, '0')}0008{myCity}"; - } - - if (subject.ContainsKey("C")) - { - var myCountry = HexadecimalEncoding.ToHexWithPadding(subject["C"]); - payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["C"], 4, '0')}0009{myCountry}"; - } - - if (subject.ContainsKey("ST")) - { - var myProvince = HexadecimalEncoding.ToHexWithPadding(subject["ST"]); - payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["ST"], 4, '0')}000A{myProvince}"; - } - - GenerateCsrOnCameraAsync(payload).Wait(); - var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); - if (returnCode != null) - { - _logger.LogError($"Camera failed to generate CSR with error code {returnCode}"); - return returnCode; - } - - _logger.LogInformation($"CSR call completed successfully for {certificateName}"); - return "pass"; - } - catch (ProtocolException ex) - { - _logger.LogError($"CSR call failed with the following error: {ex}"); - return ex.ToString(); - } - } - - - //Call the camera to generate a CSR - private async Task GenerateCsrOnCameraAsync(string payload) - { - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.CERTIFICATE_REQUEST, - Constants.API.Type.P_OCTET, - Constants.API.Direction.WRITE, - Uri.EscapeDataString(payload) - ); - var requestUri = $"{_cameraUrl}{api}"; - - var cancellationTokenSource = new CancellationTokenSource(); - var token = cancellationTokenSource.Token; - - _logger.LogTrace($"Sending API request: {requestUri}"); - _response = await _client.GetAsync(requestUri, token); - } - - public string DownloadCsrFromCamera(string certName) - { - _logger.MethodEntry(LogLevel.Debug); - _logger.LogTrace("Download " + certName + " CSR from Camera: " + _cameraUrl); - var haveCsr = false; - var count = 0; - string csrResult = null; - //keep trying until we get the cert or try 30 times (wait 5 seconds each time) - while (!haveCsr && count <= 30) - try - { - Thread.Sleep(5000); - count++; - Download(certName, "?type=csr").Wait(); - csrResult= _response.Content.ReadAsStringAsync().Result; - if (csrResult.Contains("-----BEGIN CERTIFICATE REQUEST-----")) - haveCsr = true; - } - catch (Exception ex) - { - _logger.LogTrace("CSR Download failed with the following error: " + ex); - } - - return csrResult; - } - - public void UploadCert(string fileName, string fileData) - { - _logger.MethodEntry(LogLevel.Debug); - _logger.LogTrace("Starting Cert upload to camera " + _baseUrl); - - var boundary = "----------" + DateTime.Now.Ticks.ToString("x"); - var fileHeader = - $"Content-Disposition: form-data; name=\"certUsageUnspecified\"; filename=\"{fileName}\";\r\nContent-Type: application/x-x509-ca-cert\r\n\r\n"; - - var authRequest = (HttpWebRequest)WebRequest.Create(_baseUrl + "/upload.htm"); - authRequest.Method = "GET"; - authRequest.Credentials = _digestCredential; - authRequest.PreAuthenticate = true; - - try - { - _logger.LogTrace("Get Auth call to camera on " + _baseUrl); - authRequest.GetResponse(); - } - catch (Exception e) - { - _logger.LogError(e.Message); - } - - var count = 0; - //keep trying until we get the cert on camera or try 5 times - while (count <= 5) - { - try - { - count++; - _logger.LogTrace("Post call to camera on " + _baseUrl); - var httpWebRequest = (HttpWebRequest)WebRequest.Create(_baseUrl + "/upload.htm"); - httpWebRequest.Credentials = _digestCredential; - httpWebRequest.ContentType = "multipart/form-data; boundary=" + boundary; - httpWebRequest.Method = "POST"; - - var requestStream = httpWebRequest.GetRequestStream(); - WriteToStream(requestStream, "--" + boundary + "\r\n"); - WriteToStream(requestStream, fileHeader); - WriteToStream(requestStream, fileData); - WriteToStream(requestStream, "\r\n--" + boundary + "--\r\n"); - - var myHttpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); - - - var responseStream = myHttpWebResponse.GetResponseStream(); - - var myStreamReader = new StreamReader(responseStream ?? throw new InvalidOperationException(), Encoding.Default); - - myStreamReader.ReadToEnd(); - - myStreamReader.Close(); - responseStream.Close(); - - myHttpWebResponse.Close(); - return; - } - catch (Exception e) - { - _logger.LogError(e.Message); - _logger.LogTrace("Failed to push cert on attempt " + count + " trying again if less than or equal to 5"); - } - } - } - - private static void WriteToStream(Stream s, string txt) - { - var bytes = Encoding.UTF8.GetBytes(txt); - s.Write(bytes, 0, bytes.Length); - } - - private async Task Download(string certName, string paramString = "") - { - var source = new CancellationTokenSource(); - var token = source.Token; - - var cameraUrl = $"{_baseUrl}/cert_download/{certName.Replace(" ", "%20")}.pem{paramString}"; - _logger.LogTrace("Camera URL for download: " + cameraUrl); - - _response = await _client.GetAsync(cameraUrl, token); - - } - - - // Enable/Disable 802.1x setting on the camera - public string Change8021XSettings(bool onOffSwitch) - { - _logger.MethodEntry(LogLevel.Debug); - _logger.LogTrace($"Changing Camera 802.1x setting to {(onOffSwitch ? "1" : "0")} on Camera: {_cameraUrl}"); - - try - { - Change8021X(onOffSwitch).Wait(); - var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); - if (returnCode != null) - { - _logger.LogError("Camera failed to change 802.1x with error code " + returnCode); - return returnCode; - } - - _logger.LogInformation("802.1x setting changed successfully for " + _cameraUrl); - return "pass"; - } - catch (Exception ex) - { - _logger.LogError("802.1x setting change failed with the following error: " + ex); - return ex.ToString(); - } - } - - // Enable/Disable 802.1x on the camera after the certs are in place - // onOffSwitch - "0" means off, "1" means on - private async Task Change8021X(bool onOffSwitch) - { - var source = new CancellationTokenSource(); - var token = source.Token; - - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.EAP_ENABLE, - Constants.API.Type.T_OCTET, - Constants.API.Direction.WRITE, - Uri.EscapeDataString(onOffSwitch ? "1" : "0") - ); - var requestUri = $"{_cameraUrl}{api}"; - - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - - _logger.LogTrace($"Sending API request: {requestUri}"); - _response = await _client.SendAsync(request, token); - if (!_response.IsSuccessStatusCode) - throw new Exception($"Request failed with status code {_response.StatusCode}"); - } - - - public string RebootCamera() - { - _logger.MethodEntry(LogLevel.Debug); - _logger.LogTrace("Rebooting camera : " + _cameraUrl); - - try - { - Reboot().Wait(); - var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); - if (returnCode != null) - { - _logger.LogError("Camera failed to Reboot with error code " + returnCode); - return returnCode; - } - - _logger.LogInformation("Camera rebooted successfully " + _cameraUrl); - return "pass"; - } - catch (Exception ex) - { - _logger.LogError("Failed to Reboot Camera " + _cameraUrl + " with the following error: " + ex); - return ex.ToString(); - } - } - - private async Task Reboot() - { - var source = new CancellationTokenSource(); - var token = source.Token; - - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.BOARD_RESET, - Constants.API.Type.F_FLAG, - Constants.API.Direction.WRITE, - "1" // sending 1 reboots camera - ); - var requestUri = $"{_cameraUrl}{api}"; - - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - - _logger.LogTrace($"Sending API request: {requestUri}"); - _response = await _client.SendAsync(request, token); - if(!_response.IsSuccessStatusCode) - throw new Exception($"Request failed with status code {_response.StatusCode}"); - - } - - // get the cert usage - public Dictionary GetCertUsageList() - { - _logger.MethodEntry(LogLevel.Debug); - _logger.LogTrace($"Get cert usage list for camera " + _cameraUrl); - - // list of cert usage types - var certUsages = new List() { - Constants.CertificateUsage.HTTPS, - Constants.CertificateUsage.EAP_TLS_Client, - Constants.CertificateUsage.TLS_DATE_Client - }; - - var usages = new Dictionary(); - foreach(var usage in certUsages) - { - string certWithUsage = GetCertWithUsage(usage); - if (string.IsNullOrWhiteSpace(certWithUsage)) - { - continue; // no cert name found with this particular usage - } - usages[certWithUsage] = usage; - } - - return usages; - } - - // get certs with usage - private string GetCertWithUsage(Constants.CertificateUsage usage) - { - var source = new CancellationTokenSource(); - var token = source.Token; - - // payload = length + tag (0) + cert usage starting with 0 bit for end cert - var payload = "0x" + "0008" + "0000" + usage.ToUsageCode(); - - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.CERTIFICATE_USAGE, - Constants.API.Type.P_OCTET, - Constants.API.Direction.READ, - Uri.EscapeDataString(payload) - ); - var requestUri = $"{_cameraUrl}{api}"; - - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - - _logger.LogTrace($"Sending API request: {requestUri}"); - _response = _client.SendAsync(request, token).Result; - if (!_response.IsSuccessStatusCode) - throw new Exception($"Request failed with status code {_response.StatusCode}"); - - var responseText = _response.Content.ReadAsStringAsync().Result; - - var taggedResponses = ParseStringListResponse(responseText); - - if (taggedResponses.Count == 2) - { - // 2 responses - first tag 0000 is usage, tag 0001 is the cert name - // cert name is tagged with '0001' in response - return taggedResponses["0001"]; - } - else - { - return ""; - } - } - - //set the cert usage on a cert - public string SetCertUsage(string certName, Constants.CertificateUsage usageCode) - { - _logger.MethodEntry(LogLevel.Debug); - _logger.LogTrace($"Setting cert usage to {usageCode.ToReadableText()} for cert {certName} for camera {_cameraUrl}"); - var payload = "0x00080000" + usageCode.ToUsageCode(); - var myId = HexadecimalEncoding.ToHexNoPadding(certName); - var additionalPayload = payload + HexadecimalEncoding.ToHex(certName, 4, '0') + "0001" + myId; - - try - { - SetCertUsage(additionalPayload).Wait(); - var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); - if (returnCode != null) - { - _logger.LogError($"Setting cert usage to {usageCode.ToReadableText()} for cert {certName} for camera {_cameraUrl} failed with error code {returnCode}"); - return returnCode; - } - - _logger.LogInformation($"Successfully changed cert usage to {usageCode.ToReadableText()} for cert {certName} for camera {_cameraUrl}"); - return "pass"; - } - catch (Exception ex) - { - _logger.LogError($"Cert usage change failed with the following error: {ex}"); - return ex.ToString(); - } - } - - //can be used to reset/clear existing cert usage and to set cert usage on a specific cert - private async Task SetCertUsage(string payload) - { - var source = new CancellationTokenSource(); - var token = source.Token; - - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.CERTIFICATE_USAGE, - Constants.API.Type.P_OCTET, - Constants.API.Direction.WRITE, - Uri.EscapeDataString(payload) - ); - var requestUri = $"{_cameraUrl}{api}"; - - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - - _logger.LogTrace($"Sending API request: {requestUri}"); - _response = await _client.SendAsync(request, token); - if (!_response.IsSuccessStatusCode) - throw new Exception($"Request failed with status code {_response.StatusCode}"); - } - - - //Delete the cert by name - public string DeleteCertByName(string certName) - { - _logger.MethodEntry(LogLevel.Debug); - _logger.LogTrace("Delete cert " + certName + " for camera " + _cameraUrl); - var myId = HexadecimalEncoding.ToHexNoPadding(certName); - var payload = HexadecimalEncoding.ToHexWithPrefix(certName, 4, '0') + "0000" + myId + - "00040002" + "00080003000000FF"; - - try - { - //first reset the cert usage - DeleteCert(payload).Wait(); - var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); - if (returnCode != null) - { - _logger.LogError("Deleting cert " + certName + " for camera " + _cameraUrl + - " failed with error code " + returnCode); - return returnCode; - } - - _logger.LogInformation("Successfully deleted cert " + certName + " for camera " + _cameraUrl); - return "pass"; - } - catch (Exception ex) - { - _logger.LogError("Deleting cert failed with the following error: " + ex); - return ex.ToString(); - } - } - - //delete a cert on camera - private async Task DeleteCert(string payload) - { - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.CERTIFICATE, - Constants.API.Type.P_OCTET, - Constants.API.Direction.WRITE, - Uri.EscapeDataString(payload) - ); - var requestUri = $"{_cameraUrl}{api}"; - - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - - _logger.LogTrace($"Sending API request: {requestUri}"); - _response = await _client.SendAsync(request); - } - - - //returns error code if camera call fails, blank if successful - private string parseCameraResponse(string response) - { - _logger.LogTrace($"Reading camera response for potential error: {response}"); - string errorCode = null; - var xmlResponse = new XmlDocument(); - xmlResponse.LoadXml(response); - - var errorList = xmlResponse.GetElementsByTagName("err"); - if (errorList.Count > 0) errorCode = errorList[0].InnerXml; - return errorCode; - } - - public List GetCameraCertList(string response) - { - _logger.MethodEntry(LogLevel.Debug); - var xmlResponse = new XmlDocument(); - xmlResponse.LoadXml(response); - - // Parse raw hex content from the response - var s = - xmlResponse.GetElementsByTagName("str")[0].InnerText - .Replace(" ", "") - .Replace("\r", "") - .Replace("\n", ""); - - // Record structure starts with 2 bytes representing length of the record, followed by 6 more bytes, then filename, then a zero byte. - // Iterate through records by reading length tag, extracting the filename in hex and converting. - var certNames = new List(); - Func getName = (s, start) => s.Substring(start, s.IndexOf("00", start) - start); - for (var i = 0; i < s.Length; i += Convert.ToInt32(s.Substring(i, 4), 16) * 2) - certNames.Add(HexadecimalEncoding.FromHex(getName(s, i + 16))); - return certNames; - } - - public Dictionary ParseStringListResponse(string response) - { - _logger.MethodEntry(LogLevel.Debug); - var xmlResponse = new XmlDocument(); - xmlResponse.LoadXml(response); - - // Parse raw hex content from the response - var rawHex = - xmlResponse.GetElementsByTagName("str")[0].InnerText - .Replace(" ", "") - .Replace("\r", "") - .Replace("\n", ""); - - var taggedResponses = new Dictionary(); - - var indexStart = 0; - while (indexStart < rawHex.Length) - { - // NOTE: 1 byte is equivalent to 2 hex chars. so the "length" or numOfBytes *2 is actual char count for a full entry - // first 4 chars are length of a response entry - var hexLength = rawHex.Substring(indexStart, 4); - var numOfBytes = Convert.ToInt32(hexLength, 16); - // next 4 chars are hex code of tag - var tag = rawHex.Substring(indexStart + 4, 4); - // length minus 4 bytes (for length and tag entries) is remaining count of bytes (2 chars each) to evaluate for actual value - var remainingBytes = numOfBytes - 4; - - var value = ""; - if (remainingBytes > 0) - { - // value starts at index start + 8, and char length is remaining bytes * 2 - var hexValue = rawHex.Substring(indexStart + 8, remainingBytes * 2); - value = HexadecimalEncoding.FromHex(hexValue); - } - - taggedResponses[tag] = value; - indexStart += numOfBytes * 2; - } - - return taggedResponses; - } - - private string ResolvePamField(IPAMSecretResolver pam, string key, string fieldName) - { - _logger.LogTrace($"Attempting to resolve PAM eligible field: '{fieldName}'"); - return string.IsNullOrEmpty(key) ? key : pam.Resolve(key); - } - } +// Copyright 2026 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.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.ServiceModel; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Xml; +using Keyfactor.Logging; +using Keyfactor.Orchestrators.Extensions; +using Keyfactor.Orchestrators.Extensions.Interfaces; +using Microsoft.Extensions.Logging; + +namespace Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client +{ + public class BoschIpCameraClient + { + private readonly string _cameraUrl; + private readonly string _baseUrl; + private readonly HttpClient _client; + private readonly ILogger _logger; + private readonly CredentialCache _digestCredential; + private HttpResponseMessage _response; + + public BoschIpCameraClient(JobConfiguration config, CertificateStore store, IPAMSecretResolver pam, ILogger logger) + { + _logger = logger; + _logger.LogTrace("Starting Bosch IP Camera Client config"); + + if (config.UseSSL) + { + _baseUrl = $"https://{store.ClientMachine}"; + _cameraUrl = $"https://{store.ClientMachine}/rcp.xml?"; + } + else + { + _baseUrl = $"http://{store.ClientMachine}"; + _cameraUrl = $"http://{store.ClientMachine}/rcp.xml?"; + } + + _logger.LogDebug($"Base URL: {_baseUrl}"); + _logger.LogDebug($"Camera API URL: {_cameraUrl}"); + + var username = ResolvePamField(pam, config.ServerUsername, "Server Username"); + var password = ResolvePamField(pam, config.ServerPassword, "Server Password"); + + var credentials = $"{username}:{password}"; + var encodedCredentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(credentials)); + + _client = new HttpClient(); + _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", encodedCredentials); + + // for use in reenrollment cert upload calls + _digestCredential = new CredentialCache + { + {new Uri(_baseUrl), "Digest", new NetworkCredential(username, password)} + }; + } + + public Dictionary ListCerts() + { + _logger.MethodEntry(LogLevel.Debug); + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.CERTIFICATE_LIST, + Constants.API.Type.P_OCTET, + Constants.API.Direction.READ + ); + var requestUri = $"{_cameraUrl}{api}"; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + + _logger.LogTrace($"Sending API request: {requestUri}"); + var task = _client.SendAsync(request); + task.Wait(); + var cameras = GetCameraCertList(task.Result.Content.ReadAsStringAsync().Result); + var files = new Dictionary(); + foreach (var c in cameras) + { + Download(c).Wait(); + files.Add(c, _response.Content.ReadAsStringAsync().Result); + } + + return files; + } + + public string CertCreate(Dictionary subject, string certificateName, Constants.CertificateKeyType keyEnum) + { + _logger.MethodEntry(LogLevel.Debug); + try + { + var myId = HexadecimalEncoding.ToHexNoPadding(certificateName); + var payload = $"{HexadecimalEncoding.ToHexWithPrefix(certificateName, 4, '0')}0000{myId}"; + + // get the 8-digit hex code that corresponds to the correct key type + string keyCode = keyEnum.ToKeyTypeCode(); + + // RAW HEX: "length" + "tag" + "content" + // length is full byte count of header (length + tag) + content + var keyType = "0008" + "0001" + keyCode; + var requesttype = "0008" + "0002" + "00000000"; + + payload += keyType; + payload += requesttype; + + // CN is expected + var myCommon = HexadecimalEncoding.ToHexWithPadding(subject["CN"]); + payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["CN"], 4, '0')}0005{myCommon}"; + + if (subject.ContainsKey("O")) + { + var myOrg = HexadecimalEncoding.ToHexWithPadding(subject["O"]); + payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["O"], 4, '0')}0006{myOrg}"; + } + + if (subject.ContainsKey("OU")) + { + var myUnit = HexadecimalEncoding.ToHexWithPadding(subject["OU"]); + payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["OU"], 4, '0')}0007{myUnit}"; + } + + if (subject.ContainsKey("L")) + { + var myCity = HexadecimalEncoding.ToHexWithPadding(subject["L"]); + payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["L"], 4, '0')}0008{myCity}"; + } + + if (subject.ContainsKey("C")) + { + var myCountry = HexadecimalEncoding.ToHexWithPadding(subject["C"]); + payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["C"], 4, '0')}0009{myCountry}"; + } + + if (subject.ContainsKey("ST")) + { + var myProvince = HexadecimalEncoding.ToHexWithPadding(subject["ST"]); + payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["ST"], 4, '0')}000A{myProvince}"; + } + + GenerateCsrOnCameraAsync(payload).Wait(); + var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); + if (returnCode != null) + { + _logger.LogError($"Camera failed to generate CSR with error code {returnCode}"); + return returnCode; + } + + _logger.LogInformation($"CSR call completed successfully for {certificateName}"); + return "pass"; + } + catch (ProtocolException ex) + { + _logger.LogError($"CSR call failed with the following error: {ex}"); + return ex.ToString(); + } + } + + + //Call the camera to generate a CSR + private async Task GenerateCsrOnCameraAsync(string payload) + { + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.CERTIFICATE_REQUEST, + Constants.API.Type.P_OCTET, + Constants.API.Direction.WRITE, + Uri.EscapeDataString(payload) + ); + var requestUri = $"{_cameraUrl}{api}"; + + var cancellationTokenSource = new CancellationTokenSource(); + var token = cancellationTokenSource.Token; + + _logger.LogTrace($"Sending API request: {requestUri}"); + _response = await _client.GetAsync(requestUri, token); + } + + public string DownloadCsrFromCamera(string certName) + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace("Download " + certName + " CSR from Camera: " + _cameraUrl); + var haveCsr = false; + var count = 0; + string csrResult = null; + //keep trying until we get the cert or try 30 times (wait 5 seconds each time) + while (!haveCsr && count <= 30) + try + { + Thread.Sleep(5000); + count++; + Download(certName, "?type=csr").Wait(); + csrResult= _response.Content.ReadAsStringAsync().Result; + if (csrResult.Contains("-----BEGIN CERTIFICATE REQUEST-----")) + haveCsr = true; + } + catch (Exception ex) + { + _logger.LogTrace("CSR Download failed with the following error: " + ex); + } + + return csrResult; + } + + public void UploadCert(string fileName, string fileData) + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace("Starting Cert upload to camera " + _baseUrl); + + var boundary = "----------" + DateTime.Now.Ticks.ToString("x"); + var fileHeader = + $"Content-Disposition: form-data; name=\"certUsageUnspecified\"; filename=\"{fileName}\";\r\nContent-Type: application/x-x509-ca-cert\r\n\r\n"; + + var authRequest = (HttpWebRequest)WebRequest.Create(_baseUrl + "/upload.htm"); + authRequest.Method = "GET"; + authRequest.Credentials = _digestCredential; + authRequest.PreAuthenticate = true; + + try + { + _logger.LogTrace("Get Auth call to camera on " + _baseUrl); + authRequest.GetResponse(); + } + catch (Exception e) + { + _logger.LogError(e.Message); + } + + var count = 0; + //keep trying until we get the cert on camera or try 5 times + while (count <= 5) + { + try + { + count++; + _logger.LogTrace("Post call to camera on " + _baseUrl); + var httpWebRequest = (HttpWebRequest)WebRequest.Create(_baseUrl + "/upload.htm"); + httpWebRequest.Credentials = _digestCredential; + httpWebRequest.ContentType = "multipart/form-data; boundary=" + boundary; + httpWebRequest.Method = "POST"; + + var requestStream = httpWebRequest.GetRequestStream(); + WriteToStream(requestStream, "--" + boundary + "\r\n"); + WriteToStream(requestStream, fileHeader); + WriteToStream(requestStream, fileData); + WriteToStream(requestStream, "\r\n--" + boundary + "--\r\n"); + + var myHttpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); + + + var responseStream = myHttpWebResponse.GetResponseStream(); + + var myStreamReader = new StreamReader(responseStream ?? throw new InvalidOperationException(), Encoding.Default); + + myStreamReader.ReadToEnd(); + + myStreamReader.Close(); + responseStream.Close(); + + myHttpWebResponse.Close(); + return; + } + catch (Exception e) + { + _logger.LogError(e.Message); + _logger.LogTrace("Failed to push cert on attempt " + count + " trying again if less than or equal to 5"); + } + } + } + + // TODO: Started this here --- Used for dynamic mapping + /* + public Dictionary ListCSRKeyTypes() + { + _logger.MethodEntry(LogLevel.Debug); + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.CERTIFICATE_OPTIONS, + Constants.API.Type.P_OCTET, + Constants.API.Direction.READ + ); + var requestUri = $"{_cameraUrl}{api}"; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + + _logger.LogTrace($"Sending API request: {requestUri}"); + var task = _client.SendAsync(request); + task.Wait(); + var keytypes = GetCameraCertKeyTypes(task.Result.Content.ReadAsStringAsync().Result); + var files = new Dictionary(); + foreach (var c in cameras) + { + Download(c).Wait(); + files.Add(c, _response.Content.ReadAsStringAsync().Result); + } + + return files; + }*/ + + private static void WriteToStream(Stream s, string txt) + { + var bytes = Encoding.UTF8.GetBytes(txt); + s.Write(bytes, 0, bytes.Length); + } + + private async Task Download(string certName, string paramString = "") + { + var source = new CancellationTokenSource(); + var token = source.Token; + + var cameraUrl = $"{_baseUrl}/cert_download/{certName.Replace(" ", "%20")}.pem{paramString}"; + _logger.LogTrace("Camera URL for download: " + cameraUrl); + + _response = await _client.GetAsync(cameraUrl, token); + + } + + + // Enable/Disable 802.1x setting on the camera + public string Change8021XSettings(bool onOffSwitch) + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace($"Changing Camera 802.1x setting to {(onOffSwitch ? "1" : "0")} on Camera: {_cameraUrl}"); + + try + { + Change8021X(onOffSwitch).Wait(); + var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); + if (returnCode != null) + { + _logger.LogError("Camera failed to change 802.1x with error code " + returnCode); + return returnCode; + } + + _logger.LogInformation("802.1x setting changed successfully for " + _cameraUrl); + return "pass"; + } + catch (Exception ex) + { + _logger.LogError("802.1x setting change failed with the following error: " + ex); + return ex.ToString(); + } + } + + // Enable/Disable 802.1x on the camera after the certs are in place + // onOffSwitch - "0" means off, "1" means on + private async Task Change8021X(bool onOffSwitch) + { + var source = new CancellationTokenSource(); + var token = source.Token; + + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.EAP_ENABLE, + Constants.API.Type.T_OCTET, + Constants.API.Direction.WRITE, + Uri.EscapeDataString(onOffSwitch ? "1" : "0") + ); + var requestUri = $"{_cameraUrl}{api}"; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + + _logger.LogTrace($"Sending API request: {requestUri}"); + _response = await _client.SendAsync(request, token); + if (!_response.IsSuccessStatusCode) + throw new Exception($"Request failed with status code {_response.StatusCode}"); + } + + + public string RebootCamera() + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace("Rebooting camera : " + _cameraUrl); + + try + { + Reboot().Wait(); + var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); + if (returnCode != null) + { + _logger.LogError("Camera failed to Reboot with error code " + returnCode); + return returnCode; + } + + _logger.LogInformation("Camera rebooted successfully " + _cameraUrl); + return "pass"; + } + catch (Exception ex) + { + _logger.LogError("Failed to Reboot Camera " + _cameraUrl + " with the following error: " + ex); + return ex.ToString(); + } + } + + private async Task Reboot() + { + var source = new CancellationTokenSource(); + var token = source.Token; + + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.BOARD_RESET, + Constants.API.Type.F_FLAG, + Constants.API.Direction.WRITE, + "1" // sending 1 reboots camera + ); + var requestUri = $"{_cameraUrl}{api}"; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + + _logger.LogTrace($"Sending API request: {requestUri}"); + _response = await _client.SendAsync(request, token); + if(!_response.IsSuccessStatusCode) + throw new Exception($"Request failed with status code {_response.StatusCode}"); + + } + + // get the cert usage + public Dictionary GetCertUsageList() + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace($"Get cert usage list for camera " + _cameraUrl); + + // list of cert usage types + var certUsages = new List() { + Constants.CertificateUsage.HTTPS, + Constants.CertificateUsage.EAP_TLS_Client, + Constants.CertificateUsage.TLS_DATE_Client + }; + + var usages = new Dictionary(); + foreach(var usage in certUsages) + { + string certWithUsage = GetCertWithUsage(usage); + if (string.IsNullOrWhiteSpace(certWithUsage)) + { + continue; // no cert name found with this particular usage + } + usages[certWithUsage] = usage; + } + + return usages; + } + + // get certs with usage + private string GetCertWithUsage(Constants.CertificateUsage usage) + { + var source = new CancellationTokenSource(); + var token = source.Token; + + // payload = length + tag (0) + cert usage starting with 0 bit for end cert + var payload = "0x" + "0008" + "0000" + usage.ToUsageCode(); + + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.CERTIFICATE_USAGE, + Constants.API.Type.P_OCTET, + Constants.API.Direction.READ, + Uri.EscapeDataString(payload) + ); + var requestUri = $"{_cameraUrl}{api}"; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + + _logger.LogTrace($"Sending API request: {requestUri}"); + _response = _client.SendAsync(request, token).Result; + if (!_response.IsSuccessStatusCode) + throw new Exception($"Request failed with status code {_response.StatusCode}"); + + var responseText = _response.Content.ReadAsStringAsync().Result; + + var taggedResponses = ParseStringListResponse(responseText); + + if (taggedResponses.Count == 2) + { + // 2 responses - first tag 0000 is usage, tag 0001 is the cert name + // cert name is tagged with '0001' in response + return taggedResponses["0001"]; + } + else + { + return ""; + } + } + + //set the cert usage on a cert + public string SetCertUsage(string certName, Constants.CertificateUsage usageCode) + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace($"Setting cert usage to {usageCode.ToReadableText()} for cert {certName} for camera {_cameraUrl}"); + var payload = "0x00080000" + usageCode.ToUsageCode(); + var myId = HexadecimalEncoding.ToHexNoPadding(certName); + var additionalPayload = payload + HexadecimalEncoding.ToHex(certName, 4, '0') + "0001" + myId; + + try + { + SetCertUsage(additionalPayload).Wait(); + var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); + if (returnCode != null) + { + _logger.LogError($"Setting cert usage to {usageCode.ToReadableText()} for cert {certName} for camera {_cameraUrl} failed with error code {returnCode}"); + return returnCode; + } + + _logger.LogInformation($"Successfully changed cert usage to {usageCode.ToReadableText()} for cert {certName} for camera {_cameraUrl}"); + return "pass"; + } + catch (Exception ex) + { + _logger.LogError($"Cert usage change failed with the following error: {ex}"); + return ex.ToString(); + } + } + + //can be used to reset/clear existing cert usage and to set cert usage on a specific cert + private async Task SetCertUsage(string payload) + { + var source = new CancellationTokenSource(); + var token = source.Token; + + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.CERTIFICATE_USAGE, + Constants.API.Type.P_OCTET, + Constants.API.Direction.WRITE, + Uri.EscapeDataString(payload) + ); + var requestUri = $"{_cameraUrl}{api}"; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + + _logger.LogTrace($"Sending API request: {requestUri}"); + _response = await _client.SendAsync(request, token); + if (!_response.IsSuccessStatusCode) + throw new Exception($"Request failed with status code {_response.StatusCode}"); + } + + + //Delete the cert by name + public string DeleteCertByName(string certName) + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace("Delete cert " + certName + " for camera " + _cameraUrl); + var myId = HexadecimalEncoding.ToHexNoPadding(certName); + var payload = HexadecimalEncoding.ToHexWithPrefix(certName, 4, '0') + "0000" + myId + + "00040002" + "00080003000000FF"; + + try + { + //first reset the cert usage + DeleteCert(payload).Wait(); + var returnCode = parseCameraResponse(_response.Content.ReadAsStringAsync().Result); + if (returnCode != null) + { + _logger.LogError("Deleting cert " + certName + " for camera " + _cameraUrl + + " failed with error code " + returnCode); + return returnCode; + } + + _logger.LogInformation("Successfully deleted cert " + certName + " for camera " + _cameraUrl); + return "pass"; + } + catch (Exception ex) + { + _logger.LogError("Deleting cert failed with the following error: " + ex); + return ex.ToString(); + } + } + + //delete a cert on camera + private async Task DeleteCert(string payload) + { + var api = Constants.API.BuildRequestUri( + Constants.API.Endpoints.CERTIFICATE, + Constants.API.Type.P_OCTET, + Constants.API.Direction.WRITE, + Uri.EscapeDataString(payload) + ); + var requestUri = $"{_cameraUrl}{api}"; + + var request = new HttpRequestMessage(HttpMethod.Get, requestUri); + + _logger.LogTrace($"Sending API request: {requestUri}"); + _response = await _client.SendAsync(request); + } + + + //returns error code if camera call fails, blank if successful + private string parseCameraResponse(string response) + { + _logger.LogTrace($"Reading camera response for potential error: {response}"); + string errorCode = null; + var xmlResponse = new XmlDocument(); + xmlResponse.LoadXml(response); + + var errorList = xmlResponse.GetElementsByTagName("err"); + if (errorList.Count > 0) errorCode = errorList[0].InnerXml; + return errorCode; + } + + public List GetCameraCertList(string response) + { + _logger.MethodEntry(LogLevel.Debug); + var xmlResponse = new XmlDocument(); + xmlResponse.LoadXml(response); + + // Parse raw hex content from the response + var s = + xmlResponse.GetElementsByTagName("str")[0].InnerText + .Replace(" ", "") + .Replace("\r", "") + .Replace("\n", ""); + + // Record structure starts with 2 bytes representing length of the record, followed by 6 more bytes, then filename, then a zero byte. + // Iterate through records by reading length tag, extracting the filename in hex and converting. + var certNames = new List(); + Func getName = (s, start) => s.Substring(start, s.IndexOf("00", start) - start); + for (var i = 0; i < s.Length; i += Convert.ToInt32(s.Substring(i, 4), 16) * 2) + certNames.Add(HexadecimalEncoding.FromHex(getName(s, i + 16))); + return certNames; + } + + // TODO: Parse CSR options --- For dynamic mapping + /* + public List GetCameraCertKeyTypes(string response) + { + _logger.MethodEntry(LogLevel.Debug); + var xmlResponse = new XmlDocument(); + xmlResponse.LoadXml(response); + + // Parse raw hex content from the response + // There can be multiple nodes; pick the first non-empty one + // Parse new lines and spaces for the hex converter + // TODO: The below will fail if it's empty + var s = + xmlResponse.GetElementsByTagName("str")[0].InnerText + .Replace(" ", "") + .Replace("\r", "") + .Replace("\n", ""); + + _logger.LogDebug($"Certificate options raw data: {s}"); + + // Convert hex string to byte[] + // Record structure starts with 2 bytes representing length of the record, followed by 6 more bytes, then filename, then a zero byte. + // Iterate through records by reading length tag, extracting the filename in hex and converting. + var certNames = new List(); + + Func getName = (s, start) => s.Substring(start, s.IndexOf("00", start) - start); + + for (var i = 0; i < s.Length; i += Convert.ToInt32(s.Substring(i, 4), 16) * 2) + certNames.Add(HexadecimalEncoding.FromHex(getName(s, i + 16))); + + return certNames; + }*/ + + public Dictionary ParseStringListResponse(string response) + { + _logger.MethodEntry(LogLevel.Debug); + var xmlResponse = new XmlDocument(); + xmlResponse.LoadXml(response); + + // Parse raw hex content from the response + var rawHex = + xmlResponse.GetElementsByTagName("str")[0].InnerText + .Replace(" ", "") + .Replace("\r", "") + .Replace("\n", ""); + + var taggedResponses = new Dictionary(); + + var indexStart = 0; + while (indexStart < rawHex.Length) + { + // NOTE: 1 byte is equivalent to 2 hex chars. so the "length" or numOfBytes *2 is actual char count for a full entry + // first 4 chars are length of a response entry + var hexLength = rawHex.Substring(indexStart, 4); + var numOfBytes = Convert.ToInt32(hexLength, 16); + // next 4 chars are hex code of tag + var tag = rawHex.Substring(indexStart + 4, 4); + // length minus 4 bytes (for length and tag entries) is remaining count of bytes (2 chars each) to evaluate for actual value + var remainingBytes = numOfBytes - 4; + + var value = ""; + if (remainingBytes > 0) + { + // value starts at index start + 8, and char length is remaining bytes * 2 + var hexValue = rawHex.Substring(indexStart + 8, remainingBytes * 2); + value = HexadecimalEncoding.FromHex(hexValue); + } + + taggedResponses[tag] = value; + indexStart += numOfBytes * 2; + } + + return taggedResponses; + } + + private string ResolvePamField(IPAMSecretResolver pam, string key, string fieldName) + { + _logger.LogTrace($"Attempting to resolve PAM eligible field: '{fieldName}'"); + return string.IsNullOrEmpty(key) ? key : pam.Resolve(key); + } + } } \ No newline at end of file diff --git a/BoschIPCamera/Client/Constants.cs b/BoschIPCamera/Client/Constants.cs index 69aeaf0..0e3f10f 100644 --- a/BoschIPCamera/Client/Constants.cs +++ b/BoschIPCamera/Client/Constants.cs @@ -1,118 +1,194 @@ -// 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. - -namespace Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client -{ - public static class Constants - { - public enum CertificateUsage - { - None, - HTTPS, // 0000 0000 - EAP_TLS_Client, // 0000 0001 - TLS_DATE_Client // 0000 0002 - } - - public static CertificateUsage ParseCertificateUsage(string usageText) - { - switch (usageText) - { - case "00000000": - case "HTTPS": - return CertificateUsage.HTTPS; - case "00000001": - case "EAP-TLS-client": - return CertificateUsage.EAP_TLS_Client; - case "00000002": - case "TLS-DATE-client": - return CertificateUsage.TLS_DATE_Client; - case "": - case null: - default: - return CertificateUsage.None; - } - } - - public static string ToReadableText(this CertificateUsage usage) - { - switch (usage) - { - case CertificateUsage.HTTPS: - return "HTTPS"; - case CertificateUsage.EAP_TLS_Client: - return "EAP-TLS-client"; - case CertificateUsage.TLS_DATE_Client: - return "TLS-DATE-client"; - case CertificateUsage.None: - default: - return ""; - } - } - - public static string ToUsageCode(this CertificateUsage usage) - { - switch (usage) - { - case CertificateUsage.HTTPS: - return "00000000"; - case CertificateUsage.EAP_TLS_Client: - return "00000001"; - case CertificateUsage.TLS_DATE_Client: - return "00000002"; - case CertificateUsage.None: - default: - return ""; - } - } - - public static class API - { - public static class Endpoints - { - public static string CERTIFICATE = "0x0BE9"; - public static string CERTIFICATE_LIST = "0x0BEB"; - public static string CERTIFICATE_REQUEST = "0x0BEC"; - public static string CERTIFICATE_USAGE = "0x0BF2"; - public static string EAP_ENABLE = "0x09EB"; - public static string BOARD_RESET = "0x0811"; - } - - public static class Type - { - public static string T_OCTET = "T_OCTET"; - public static string P_OCTET = "P_OCTET"; - public static string F_FLAG = "F_FLAG"; - - } - - public static class Direction - { - public static string READ = "READ"; - public static string WRITE = "WRITE"; - } - - public static string BuildRequestUri(string endpoint, string type, string direction, string payload = null) - { - string uri = $"command={endpoint}&type={type}&direction={direction}&num=1"; - - if (!string.IsNullOrWhiteSpace(payload)) - { - uri = $"{uri}&payload={payload}"; - } - - return uri; - } - } - } -} +// Copyright 2026 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. + +namespace Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client +{ + public static class Constants + { + public enum CertificateUsage + { + None, + HTTPS, // 0000 0000 + EAP_TLS_Client, // 0000 0001 + TLS_DATE_Client // 0000 0002 + } + + public enum CertificateKeyType + { + Unknown, + RSA1024, // 0000 0000 + RSA2048, // 0000 0001 + ECC256, // 0000 0002 + RSA4096 // 0000 0003 + } + + public static CertificateUsage ParseCertificateUsage(string usageText) + { + switch (usageText) + { + case "00000000": + case "HTTPS": + return CertificateUsage.HTTPS; + case "00000001": + case "EAP-TLS-client": + return CertificateUsage.EAP_TLS_Client; + case "00000002": + case "TLS-DATE-client": + return CertificateUsage.TLS_DATE_Client; + case "": + case null: + default: + return CertificateUsage.None; + } + } + + public static string ToReadableText(this CertificateUsage usage) + { + switch (usage) + { + case CertificateUsage.HTTPS: + return "HTTPS"; + case CertificateUsage.EAP_TLS_Client: + return "EAP-TLS-client"; + case CertificateUsage.TLS_DATE_Client: + return "TLS-DATE-client"; + case CertificateUsage.None: + default: + return ""; + } + } + + public static string ToUsageCode(this CertificateUsage usage) + { + switch (usage) + { + case CertificateUsage.HTTPS: + return "00000000"; + case CertificateUsage.EAP_TLS_Client: + return "00000001"; + case CertificateUsage.TLS_DATE_Client: + return "00000002"; + case CertificateUsage.None: + default: + return ""; + } + } + + /// + /// Maps the Keyfactor Command-provided key algorithm and size to the equivalent + /// CertificateKeyType enum. + /// ** NOTE: These values may need updated depending on the target camera OS. + /// + /// i.e. RSA, ECP + /// i.e. 2048, 256 + /// Enum representation of the [key algorithm]-[key size] the device API can interpret + public static CertificateKeyType MapKeyType(string keyAlgorithm, string keySize) + { + return keyAlgorithm switch + { + "RSA" when keySize == "1024" => CertificateKeyType.RSA1024, + "RSA" when keySize == "2048" => CertificateKeyType.RSA2048, + "ECP" when keySize == "256" => CertificateKeyType.ECC256, + "RSA" when keySize == "4096" => CertificateKeyType.RSA4096, + _ => CertificateKeyType.Unknown + }; + } + + /// + /// Maps the CertificateKeyType enumeration to a human-readable string representation + /// of the key algorithm and size. + /// ** NOTE: These values may need updated depending on the target camera OS. + /// + public static string ToReadableText(this CertificateKeyType keyType) + { + switch (keyType) + { + case CertificateKeyType.RSA1024: + return "RSA 1024"; + case CertificateKeyType.RSA2048: + return "RSA 2048"; + case CertificateKeyType.ECC256: + return "Elliptic Curve P256"; + case CertificateKeyType.RSA4096: + return "RSA 4096"; + case CertificateKeyType.Unknown: + return "Unknown"; + default: + return ""; + } + } + + /// + /// Maps the CertificateKeyType enumeration to the 8-digit hex code that the device can intepret. + /// ** NOTE: These values may need updated depending on the target camera OS. + /// + public static string ToKeyTypeCode(this CertificateKeyType keyType) + { + switch (keyType) + { + case CertificateKeyType.RSA1024: + return "00000000"; + case CertificateKeyType.RSA2048: + return "00000001"; + case CertificateKeyType.ECC256: + return "00000002"; + case CertificateKeyType.RSA4096: + return "00000003"; + case CertificateKeyType.Unknown: + default: + return ""; + } + } + + public static class API + { + public static class Endpoints + { + public static string CERTIFICATE = "0x0BE9"; + public static string CERTIFICATE_LIST = "0x0BEB"; + public static string CERTIFICATE_REQUEST = "0x0BEC"; + public static string CERTIFICATE_USAGE = "0x0BF2"; + public static string CERTIFICATE_OPTIONS = "0x0BED"; + public static string EAP_ENABLE = "0x09EB"; + public static string BOARD_RESET = "0x0811"; + } + + public static class Type + { + public static string T_OCTET = "T_OCTET"; + public static string P_OCTET = "P_OCTET"; + public static string F_FLAG = "F_FLAG"; + + } + + public static class Direction + { + public static string READ = "READ"; + public static string WRITE = "WRITE"; + } + + public static string BuildRequestUri(string endpoint, string type, string direction, string payload = null) + { + string uri = $"command={endpoint}&type={type}&direction={direction}&num=1"; + + if (!string.IsNullOrWhiteSpace(payload)) + { + uri = $"{uri}&payload={payload}"; + } + + return uri; + } + } + } +} diff --git a/BoschIPCamera/Jobs/Reenrollment.cs b/BoschIPCamera/Jobs/Reenrollment.cs index 423f524..b70b763 100644 --- a/BoschIPCamera/Jobs/Reenrollment.cs +++ b/BoschIPCamera/Jobs/Reenrollment.cs @@ -1,256 +1,274 @@ -// 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 Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client; -using Keyfactor.Logging; -using Keyfactor.Orchestrators.Common.Enums; -using Keyfactor.Orchestrators.Extensions; -using Keyfactor.Orchestrators.Extensions.Interfaces; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Text; - -namespace Keyfactor.Extensions.Orchestrator.BoschIPCamera.Jobs -{ - public class Reenrollment : IReenrollmentJobExtension - { - public string ExtensionName => "BoschIPCamera"; - private readonly ILogger _logger; - private readonly IPAMSecretResolver _pam; - - public Reenrollment(IPAMSecretResolver pam) - { - _logger = LogHandler.GetClassLogger(); - _pam = pam; - } - - public JobResult ProcessJob(ReenrollmentJobConfiguration jobConfiguration, SubmitReenrollmentCSR submitReenrollmentUpdate) - { - _logger.MethodEntry(LogLevel.Debug); - return PerformReenrollment(jobConfiguration, submitReenrollmentUpdate); - } - - private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfiguration, SubmitReenrollmentCSR submitReenrollment) - { - - try - { - _logger.MethodEntry(LogLevel.Debug); - - var client = new BoschIpCameraClient(jobConfiguration, jobConfiguration.CertificateStoreDetails, _pam, _logger); - - string certName = GetRequiredReenrollmentField(jobConfiguration.JobProperties, "Name").ToString(); - bool overwrite = (bool) GetRequiredReenrollmentField(jobConfiguration.JobProperties, "Overwrite"); - string csrInput = GetRequiredReenrollmentField(jobConfiguration.JobProperties, "subjectText").ToString(); - string certUsage = GetRequiredReenrollmentField(jobConfiguration.JobProperties, "CertificateUsage").ToString(); - - string returnCode; - string errorMessage; - string cameraUrl = jobConfiguration.CertificateStoreDetails.ClientMachine; - - // delete existing certificate if overwriting - if (overwrite) - { - returnCode = client.DeleteCertByName(certName); - - if (returnCode != "pass") - { - errorMessage = $"Error deleting existing certificate {certName} on camera {cameraUrl} with error code {returnCode}"; - _logger.LogError(errorMessage); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; - } - } - - // setup the CSR details - var csrSubject = SetupCsrSubject(csrInput); - - //generate the CSR on the camera - returnCode = client.CertCreate(csrSubject, certName); - - if (returnCode != "pass") - { - errorMessage = $"Error generating CSR for {certName} on camera {cameraUrl} with error code {returnCode}"; - _logger.LogError(errorMessage); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; - } - - //get the CSR from the camera - var csr = client.DownloadCsrFromCamera(certName); - _logger.LogTrace("Downloaded CSR: " + csr); - - // check that csr meets csr format - // 404 message response can be returned instead - if (!csr.StartsWith("-----BEGIN")) - { - // error downloaded, no CSR present - // likely due to existing cert that was not marked to ovewrite (delete) - errorMessage = $"Error retrieving CSR from camera {cameraUrl} - got response: {csr}"; - _logger.LogError(errorMessage); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; - } - - // sign CSR in Keyfactor - var x509Cert = submitReenrollment.Invoke(csr); - - if (x509Cert == null) - { - errorMessage = $"Error submitting CSR to Keyfactor. Certificate not received. CSR submitted: {csr}"; - _logger.LogError(errorMessage); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; - } - - // build PEM content - StringBuilder pemBuilder = new StringBuilder(); - pemBuilder.AppendLine("-----BEGIN CERTIFICATE-----"); - pemBuilder.AppendLine(Convert.ToBase64String(x509Cert.RawData, Base64FormattingOptions.InsertLineBreaks)); - pemBuilder.AppendLine("-----END CERTIFICATE-----"); - var pemCert = pemBuilder.ToString(); - - pemCert = pemCert.Replace("\r", ""); - _logger.LogTrace("Uploading cert: " + pemCert); - - // upload the signed cert to the camera - client.UploadCert(certName +".cer", pemCert); - - // turn on 802.1x - returnCode = client.Change8021XSettings(true); - if (returnCode != "pass") - { - errorMessage = $"Error setting 802.1x to on for {certName} on camera {cameraUrl} with error code {returnCode}"; - _logger.LogError(errorMessage); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; - } - - // set cert usage - Constants.CertificateUsage usageEnum = Constants.ParseCertificateUsage(certUsage); - - returnCode = client.SetCertUsage(certName, usageEnum); - if (returnCode != "pass") - { - errorMessage = $"Error setting certUsage of {certUsage} for certificate {certName} on camera {cameraUrl} with error code {returnCode}"; - _logger.LogError(errorMessage); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; - } - - //reboot the camera - client.RebootCamera(); - if (returnCode != "pass") - { - errorMessage = $"Error rebooting camera {cameraUrl} with error code {returnCode}"; - _logger.LogError(errorMessage); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; - } - - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Success, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = "" - }; - } - catch (Exception e) - { - _logger.LogError($"PerformReenrollment Error: {e.Message}"); - return new JobResult - { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = e.Message - }; - } - - } - - private object GetRequiredReenrollmentField(Dictionary jobProperties, string fieldName) - { - _logger.LogTrace($"Checking for required field '{fieldName}' in Reenrollment Job Properties"); - - if (jobProperties.ContainsKey(fieldName)) - { - var requiredField = jobProperties[fieldName]; - if (requiredField != null) - { - _logger.LogTrace($"Required field '{fieldName}' found with value '{requiredField}"); - return requiredField; - } - else - { - string message = $"Required field '{fieldName}' was present in Reenrollment Job Properties but had no value"; - _logger.LogError(message); - throw new MissingFieldException(message); - } - } - else - { - string message = $"Required field '{fieldName}' was not present in the Reenrollment Job Properties"; - _logger.LogError(message); - throw new MissingFieldException(message); - } - } - - private Dictionary SetupCsrSubject(string subjectText) - { - var csrSubject = new Dictionary(); - _logger.LogTrace($"Parsing subject text: {subjectText}"); - var splitSubject = subjectText.Split(','); - foreach (string subjectElement in splitSubject) - { - _logger.LogTrace($"Splitting subject element: {subjectElement}"); - var splitSubjectElement = subjectElement.Split('='); - var name = splitSubjectElement[0].Trim(); - var value = splitSubjectElement[1].Trim(); - _logger.LogTrace($"Adding subject element: '{name}' with value '{value}'"); - csrSubject.Add(name, value); - } - - return csrSubject; - } - } -} +// 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 Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client; +using Keyfactor.Logging; +using Keyfactor.Orchestrators.Common.Enums; +using Keyfactor.Orchestrators.Extensions; +using Keyfactor.Orchestrators.Extensions.Interfaces; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Keyfactor.Extensions.Orchestrator.BoschIPCamera.Jobs +{ + public class Reenrollment : IReenrollmentJobExtension + { + public string ExtensionName => "BoschIPCamera"; + private readonly ILogger _logger; + private readonly IPAMSecretResolver _pam; + + public Reenrollment(IPAMSecretResolver pam) + { + _logger = LogHandler.GetClassLogger(); + _pam = pam; + } + + public JobResult ProcessJob(ReenrollmentJobConfiguration jobConfiguration, SubmitReenrollmentCSR submitReenrollmentUpdate) + { + _logger.MethodEntry(LogLevel.Debug); + return PerformReenrollment(jobConfiguration, submitReenrollmentUpdate); + } + + private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfiguration, SubmitReenrollmentCSR submitReenrollment) + { + + try + { + _logger.MethodEntry(LogLevel.Debug); + + var client = new BoschIpCameraClient(jobConfiguration, jobConfiguration.CertificateStoreDetails, _pam, _logger); + + string certName = GetRequiredReenrollmentField(jobConfiguration.JobProperties, "Name").ToString(); + bool overwrite = (bool) GetRequiredReenrollmentField(jobConfiguration.JobProperties, "Overwrite"); + string csrInput = GetRequiredReenrollmentField(jobConfiguration.JobProperties, "subjectText").ToString(); + string certUsage = GetRequiredReenrollmentField(jobConfiguration.JobProperties, "CertificateUsage").ToString(); + string keyAlgorithm = GetRequiredReenrollmentField(jobConfiguration.JobProperties,"keyType").ToString(); + string keySize = GetRequiredReenrollmentField(jobConfiguration.JobProperties,"keySize").ToString(); + + string returnCode; + string errorMessage; + string cameraUrl = jobConfiguration.CertificateStoreDetails.ClientMachine; + + // delete existing certificate if overwriting + if (overwrite) + { + returnCode = client.DeleteCertByName(certName); + + if (returnCode != "pass") + { + errorMessage = $"Error deleting existing certificate {certName} on camera {cameraUrl} with error code {returnCode}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + } + + // setup the CSR details + var csrSubject = SetupCsrSubject(csrInput); + + // map the key type and key size from the job properties to a corresponding key type available on the device + Constants.CertificateKeyType keyEnum = Constants.MapKeyType(keyAlgorithm,keySize); + + _logger.LogDebug($"Mapped Key Type: {keyEnum.ToReadableText()}"); + if (keyEnum == Constants.CertificateKeyType.Unknown) + { + errorMessage = $"The requested enrollment key algorithm '{keyAlgorithm}' and '{keySize}' is Unknown and cannot be used to create a CSR."; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + + //generate the CSR on the camera + returnCode = client.CertCreate(csrSubject, certName, keyEnum); + + if (returnCode != "pass") + { + errorMessage = $"Error generating CSR for {certName} on camera {cameraUrl} with error code {returnCode}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + + //get the CSR from the camera + var csr = client.DownloadCsrFromCamera(certName); + _logger.LogTrace("Downloaded CSR: " + csr); + + // check that csr meets csr format + // 404 message response can be returned instead + if (!csr.StartsWith("-----BEGIN")) + { + // error downloaded, no CSR present + // likely due to existing cert that was not marked to ovewrite (delete) + errorMessage = $"Error retrieving CSR from camera {cameraUrl} - got response: {csr}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + + // sign CSR in Keyfactor + var x509Cert = submitReenrollment.Invoke(csr); + + if (x509Cert == null) + { + errorMessage = $"Error submitting CSR to Keyfactor. Certificate not received. CSR submitted: {csr}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + + // build PEM content + StringBuilder pemBuilder = new StringBuilder(); + pemBuilder.AppendLine("-----BEGIN CERTIFICATE-----"); + pemBuilder.AppendLine(Convert.ToBase64String(x509Cert.RawData, Base64FormattingOptions.InsertLineBreaks)); + pemBuilder.AppendLine("-----END CERTIFICATE-----"); + var pemCert = pemBuilder.ToString(); + + pemCert = pemCert.Replace("\r", ""); + _logger.LogTrace("Uploading cert: " + pemCert); + + // upload the signed cert to the camera + client.UploadCert(certName +".cer", pemCert); + + // turn on 802.1x + returnCode = client.Change8021XSettings(true); + if (returnCode != "pass") + { + errorMessage = $"Error setting 802.1x to on for {certName} on camera {cameraUrl} with error code {returnCode}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + + // set cert usage + Constants.CertificateUsage usageEnum = Constants.ParseCertificateUsage(certUsage); + + returnCode = client.SetCertUsage(certName, usageEnum); + if (returnCode != "pass") + { + errorMessage = $"Error setting certUsage of {certUsage} for certificate {certName} on camera {cameraUrl} with error code {returnCode}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + + //reboot the camera + client.RebootCamera(); + if (returnCode != "pass") + { + errorMessage = $"Error rebooting camera {cameraUrl} with error code {returnCode}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Success, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = "" + }; + } + catch (Exception e) + { + _logger.LogError($"PerformReenrollment Error: {e.Message}"); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = e.Message + }; + } + + } + + private object GetRequiredReenrollmentField(Dictionary jobProperties, string fieldName) + { + _logger.LogTrace($"Checking for required field '{fieldName}' in Reenrollment Job Properties"); + + if (jobProperties.ContainsKey(fieldName)) + { + var requiredField = jobProperties[fieldName]; + if (requiredField != null) + { + _logger.LogTrace($"Required field '{fieldName}' found with value '{requiredField}"); + return requiredField; + } + else + { + string message = $"Required field '{fieldName}' was present in Reenrollment Job Properties but had no value"; + _logger.LogError(message); + throw new MissingFieldException(message); + } + } + else + { + string message = $"Required field '{fieldName}' was not present in the Reenrollment Job Properties"; + _logger.LogError(message); + throw new MissingFieldException(message); + } + } + + private Dictionary SetupCsrSubject(string subjectText) + { + var csrSubject = new Dictionary(); + _logger.LogTrace($"Parsing subject text: {subjectText}"); + var splitSubject = subjectText.Split(','); + foreach (string subjectElement in splitSubject) + { + _logger.LogTrace($"Splitting subject element: {subjectElement}"); + var splitSubjectElement = subjectElement.Split('='); + var name = splitSubjectElement[0].Trim(); + var value = splitSubjectElement[1].Trim(); + _logger.LogTrace($"Adding subject element: '{name}' with value '{value}'"); + csrSubject.Add(name, value); + } + + return csrSubject; + } + } +} From 64c063eaebb9f185790caa2e7e9f8a8dd53ae0c4 Mon Sep 17 00:00:00 2001 From: Elena Fiocca Date: Fri, 6 Feb 2026 17:30:01 -0500 Subject: [PATCH 03/14] Save changes before merge --- README.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e8184ee..a63c674 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,37 @@ the Keyfactor Command Portal ![BoschIPCamera Custom Fields Tab](docsource/images/BoschIPCamera-custom-fields-store-type-dialog.png) + + ###### Server Username + Enter the username of the configured "service" user on the camera + + + > [!IMPORTANT] + > This field is created by the `Needs Server` on the Basic tab, do not create this field manually. + + + + + ###### Server Password + Enter the password of the configured "service" user on the camera + + + > [!IMPORTANT] + > This field is created by the `Needs Server` on the Basic tab, do not create this field manually. + + + + + ###### Use SSL + Select True or False depending on if SSL (HTTPS) should be used to communicate with the camera. + + ![BoschIPCamera Custom Field - ServerUseSsl](docsource/images/BoschIPCamera-custom-field-ServerUseSsl-dialog.png) + ![BoschIPCamera Custom Field - ServerUseSsl](docsource/images/BoschIPCamera-custom-field-ServerUseSsl-validation-options-dialog.png) + + + + + ##### Entry Parameters Tab | Name | Display Name | Description | Type | Default Value | Entry has a private key | Adding an entry | Removing an entry | Reenrolling an entry | @@ -165,21 +196,43 @@ the Keyfactor Command Portal ![BoschIPCamera Entry Parameters Tab](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog.png) + + ##### Certificate Usage + The Certificate Usage to assign to the cert after upload. Can be left blank to be assigned later. + + ![BoschIPCamera Entry Parameter - CertificateUsage](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage.png) + ![BoschIPCamera Entry Parameter - CertificateUsage](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage-validation-options.png) + + + ##### Name (Alias) + The certificate Alias, entered again. + + ![BoschIPCamera Entry Parameter - Name](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Name.png) + ![BoschIPCamera Entry Parameter - Name](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Name-validation-options.png) + + + ##### Overwrite + Select `True` if using an existing Alias name to remove and replace an existing certificate. + + ![BoschIPCamera Entry Parameter - Overwrite](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Overwrite.png) + ![BoschIPCamera Entry Parameter - Overwrite](docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-Overwrite-validation-options.png) + + + ## Installation 1. **Download the latest Bosch IP Camera Universal Orchestrator extension from GitHub.** - Navigate to the [Bosch IP Camera Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/bosch-ipcamera-orchestrator/releases/latest). Refer to the compatibility matrix below to determine whether the `net6.0` or `net8.0` asset should be downloaded. Then, click the corresponding asset to download the zip archive. + Navigate to the [Bosch IP Camera Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/bosch-ipcamera-orchestrator/releases/latest). Refer to the compatibility matrix below to determine the asset should be downloaded. Then, click the corresponding asset to download the zip archive. | Universal Orchestrator Version | Latest .NET version installed on the Universal Orchestrator server | `rollForward` condition in `Orchestrator.runtimeconfig.json` | `bosch-ipcamera-orchestrator` .NET version to download | | --------- | ----------- | ----------- | ----------- | | Older than `11.0.0` | | | `net6.0` | | Between `11.0.0` and `11.5.1` (inclusive) | `net6.0` | | `net6.0` | - | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `Disable` | `net6.0` | - | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | - | `11.6` _and_ newer | `net8.0` | | `net8.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `Disable` | `net6.0` || Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | + | `11.6` _and_ newer | `net8.0` | | `net8.0` | Unzip the archive containing extension assemblies to a known location. From 2ea7f2c34f25d068698c4cb2a1831abcd29e7401 Mon Sep 17 00:00:00 2001 From: Elena Fiocca Date: Thu, 12 Feb 2026 17:07:04 -0500 Subject: [PATCH 04/14] chore: push local changes --- BoschIPCamera/Client/BoschIPCameraClient.cs | 62 +-------------------- BoschIPCamera/Client/Constants.cs | 2 +- BoschIPCamera/Jobs/Reenrollment.cs | 3 +- 3 files changed, 4 insertions(+), 63 deletions(-) diff --git a/BoschIPCamera/Client/BoschIPCameraClient.cs b/BoschIPCamera/Client/BoschIPCameraClient.cs index cc59d98..82e8b07 100644 --- a/BoschIPCamera/Client/BoschIPCameraClient.cs +++ b/BoschIPCamera/Client/BoschIPCameraClient.cs @@ -121,6 +121,7 @@ public string CertCreate(Dictionary subject, string certificateN // CN is expected var myCommon = HexadecimalEncoding.ToHexWithPadding(subject["CN"]); + _logger.LogTrace($"Encoding CN '{subject["CN"]}' into camera payload"); payload += $"{HexadecimalEncoding.ToHexStringLengthWithPadding(subject["CN"], 4, '0')}0005{myCommon}"; if (subject.ContainsKey("O")) @@ -281,34 +282,6 @@ public void UploadCert(string fileName, string fileData) } } } - - // TODO: Started this here --- Used for dynamic mapping - /* - public Dictionary ListCSRKeyTypes() - { - _logger.MethodEntry(LogLevel.Debug); - var api = Constants.API.BuildRequestUri( - Constants.API.Endpoints.CERTIFICATE_OPTIONS, - Constants.API.Type.P_OCTET, - Constants.API.Direction.READ - ); - var requestUri = $"{_cameraUrl}{api}"; - - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - - _logger.LogTrace($"Sending API request: {requestUri}"); - var task = _client.SendAsync(request); - task.Wait(); - var keytypes = GetCameraCertKeyTypes(task.Result.Content.ReadAsStringAsync().Result); - var files = new Dictionary(); - foreach (var c in cameras) - { - Download(c).Wait(); - files.Add(c, _response.Content.ReadAsStringAsync().Result); - } - - return files; - }*/ private static void WriteToStream(Stream s, string txt) { @@ -628,39 +601,6 @@ public List GetCameraCertList(string response) certNames.Add(HexadecimalEncoding.FromHex(getName(s, i + 16))); return certNames; } - - // TODO: Parse CSR options --- For dynamic mapping - /* - public List GetCameraCertKeyTypes(string response) - { - _logger.MethodEntry(LogLevel.Debug); - var xmlResponse = new XmlDocument(); - xmlResponse.LoadXml(response); - - // Parse raw hex content from the response - // There can be multiple nodes; pick the first non-empty one - // Parse new lines and spaces for the hex converter - // TODO: The below will fail if it's empty - var s = - xmlResponse.GetElementsByTagName("str")[0].InnerText - .Replace(" ", "") - .Replace("\r", "") - .Replace("\n", ""); - - _logger.LogDebug($"Certificate options raw data: {s}"); - - // Convert hex string to byte[] - // Record structure starts with 2 bytes representing length of the record, followed by 6 more bytes, then filename, then a zero byte. - // Iterate through records by reading length tag, extracting the filename in hex and converting. - var certNames = new List(); - - Func getName = (s, start) => s.Substring(start, s.IndexOf("00", start) - start); - - for (var i = 0; i < s.Length; i += Convert.ToInt32(s.Substring(i, 4), 16) * 2) - certNames.Add(HexadecimalEncoding.FromHex(getName(s, i + 16))); - - return certNames; - }*/ public Dictionary ParseStringListResponse(string response) { diff --git a/BoschIPCamera/Client/Constants.cs b/BoschIPCamera/Client/Constants.cs index 0e3f10f..3a8f3d3 100644 --- a/BoschIPCamera/Client/Constants.cs +++ b/BoschIPCamera/Client/Constants.cs @@ -99,7 +99,7 @@ public static CertificateKeyType MapKeyType(string keyAlgorithm, string keySize) { "RSA" when keySize == "1024" => CertificateKeyType.RSA1024, "RSA" when keySize == "2048" => CertificateKeyType.RSA2048, - "ECP" when keySize == "256" => CertificateKeyType.ECC256, + "ECDSA" when keySize == "256" => CertificateKeyType.ECC256, "RSA" when keySize == "4096" => CertificateKeyType.RSA4096, _ => CertificateKeyType.Unknown }; diff --git a/BoschIPCamera/Jobs/Reenrollment.cs b/BoschIPCamera/Jobs/Reenrollment.cs index b70b763..dc0bfea 100644 --- a/BoschIPCamera/Jobs/Reenrollment.cs +++ b/BoschIPCamera/Jobs/Reenrollment.cs @@ -235,7 +235,7 @@ private object GetRequiredReenrollmentField(Dictionary jobProper var requiredField = jobProperties[fieldName]; if (requiredField != null) { - _logger.LogTrace($"Required field '{fieldName}' found with value '{requiredField}"); + _logger.LogTrace($"Required field '{fieldName}' found with value '{requiredField}'"); return requiredField; } else @@ -264,6 +264,7 @@ private Dictionary SetupCsrSubject(string subjectText) var splitSubjectElement = subjectElement.Split('='); var name = splitSubjectElement[0].Trim(); var value = splitSubjectElement[1].Trim(); + _logger.LogTrace($"Adding subject element: '{name}' with value '{value}'"); csrSubject.Add(name, value); } From 98a926a673db5f6fb063643414a9eb04b7c58af4 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Thu, 12 Feb 2026 22:09:09 +0000 Subject: [PATCH 05/14] Update generated docs --- ...schIPCamera-advanced-store-type-dialog.png | Bin 37276 -> 38100 bytes .../BoschIPCamera-basic-store-type-dialog.png | Bin 44933 -> 45845 bytes ...amera-custom-field-ServerUseSsl-dialog.png | Bin 0 -> 20684 bytes ...ServerUseSsl-validation-options-dialog.png | Bin 0 -> 15089 bytes ...Camera-custom-fields-store-type-dialog.png | Bin 22666 -> 24139 bytes ...og-CertificateUsage-validation-options.png | Bin 0 -> 28498 bytes ...ers-store-type-dialog-CertificateUsage.png | Bin 0 -> 20877 bytes ...era-entry-parameters-store-type-dialog.png | Bin 26318 -> 24091 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docsource/images/BoschIPCamera-custom-field-ServerUseSsl-dialog.png create mode 100644 docsource/images/BoschIPCamera-custom-field-ServerUseSsl-validation-options-dialog.png create mode 100644 docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage-validation-options.png create mode 100644 docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage.png diff --git a/docsource/images/BoschIPCamera-advanced-store-type-dialog.png b/docsource/images/BoschIPCamera-advanced-store-type-dialog.png index 4827627bdfaa05d07a3ae5f6b142148fc1ad4cea..368f75c125f8c9a1d1a91e8a9c845fd6715a9e85 100644 GIT binary patch literal 38100 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 sHQo46Jy8Gu|L5zopr02d>mGynhq literal 37276 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 H&HMig=;{%- diff --git a/docsource/images/BoschIPCamera-basic-store-type-dialog.png b/docsource/images/BoschIPCamera-basic-store-type-dialog.png index 5e5575486080d15088f752af8ea22b73a35dbf8c..3769bf21dd5a54a192fc1ad3f28cceb0cff59e0b 100644 GIT binary patch literal 45845 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 z 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 vBhZ=aTklNhEx>bMLf|E~l%u2^Jzzv`aa4(0_ zV7#Q8$E8E!i6h~T%h<%&%(egb6A|n9MB8o8AJFf~1a{i=&KTsCZ{u0PX>zj8*W`82 zK0kCWHQBoarmM6lvxbfXbu+=v8U#g*kkr^^&ncOKlA*Pm%I(wXf?ewR4uh21i;%JI z(^D(Lot2jxNNNXB&uI3_&im?OLQk~KtjG}!aGQJracVw*G{3)6^NA}=?s01J`Qo4g zvat){>a#2|e>W1FN^w$kx3_b=btUK|fa!tU@pB8w3RBo)3lG-6UkdKfeE3xKor)%$ z45Rp%HD|{e7WKXGsDkSH8RfB|w#X3>XV7syAHCi-`suUg{tg#4T&$`?vX08n=}{3Q z99U+A*bTeVfOX}f#LHeFw`5Kt9B9{z1%D32X!Hh|`ZbtxG#Ygkm8(Hgq&U5oEL$_0QoR-C ztI40R*D80dPcJWbI!9F${YSjDO=k8YB0f2$e43qLp!FpK+DdR{S$~GO)5)CGfw0@&< zODQR|izr;+rxgDW+KcJ(;8!albVEouSgv@Iv=rbHA|s|TA_p}~FN?|_yPM>wK9K43 z1JQRNp?A&;WrkzIq%6vncn{?e#kb}i0P=hP>i2(T$2bty48Q?mFJwmld}3-i{5>ki zG|gPu@?U$@Xs=JBHRV8GM9iI)MMy%@Y`@a^AmjjGzyJUuq_4vI5i_mldDPL>)unfj z&{G0d!*FIrMQ_kg<@h)zy}R`!+Xv`RA(%3Lr&GdD=80C3>cc_5k4B`J(9qDlE&)C~ z1BI-j`yJ;Nrq~yt_;?*Tb(iaNm0Qw$m#9goZ*;bi=2I+B4P4M8{i{|C?~mmne;=Nj zdUt=$1YG=&z^r%OtQPh^?9pZb<`2=wHu%uN|HdLF77!4SWe8(tOE7wSG0<|m1`srB>thJ~PyNOS!;IvqE_eR)*F1OQwZFl>Ut;*MOCjd{(t z0q`By%}g;(nfl|wSBg~ghGR62iOQcJ+TbS)#wHl&)h=Oh63>G#7JZ)KGr_*!`jY_l zG;pdVZvZj5Xup6`6FZ*Qn=(ca)T<+0Y*Oeh?2>_-7^|gV1Tg1waRDbfCHk1d{%HQN zLdK&qewTbs(7B!Mp+oIvOcVy4YbO(HX$fpk<7f;k(#ZIj($H(t*C{O?`$j#gdy-lZBX)4f2=HdB3= zN#IP#thBW!tKI>tt>pCRhiRon#M)-ufQO;O(p;)c61}XpJwVq=E$JJ%^wse>>KYuf zRswF^sBQT#0Tk;*CDZjb5>LRK3ade@GP6-+CD)#7+}qL3tG6dN3xopCxC-no_J zhwNH_ic<1wjBIAmh-}!~H2O9m81BRU`Iyo%AiM;T0>LT=5Ps}Px=^CY{GC;2E5(x6 zNP1nVnGZA{u@XkEEuYCe7#?m~Xi`j!p|r>4-S9rL&S|)DO7B~(&XOd&mM&verW;eh zPDUdK=m+YHxk{WgqDo?RSyE0E)Mh0m>&9?45FeK;lFUWaZfoftdk^$|KV^kj7jose7+D3R?%VG~I~^i?Z%SugYHO z!8T1|DHpJm8;yNLfvF&n%T~HKhaI&*YI;j-sFigzH$GfwEh-@~3=dZ9Kt^cu^4?9|LdP9yUslV3=HivNnfxVh50tU0JBAizVw6b08Hc96 zn?AA|Tt4>LbaMPFp!U+?HqAe%aY&KoAm&f3V*R+@P`qF`SE(pOs~tQ#X^bi$aq8Ja ztoT~$bC#J5PW=x}uov?~lVYKTrk z&@GOMi;9DPV;4y*s-bD8z~|ijPHGV)h4C|GoVG;SSX|a;#mFe}Z61^vUcTVK5%Lj&r87I?Q6WEW?^8- z<;wvO*S3{ONg7wJfZOF5U0b&vRj*S!rdn%TOGl-Vsvt89^P`ov*^nIi!01yqrKm1( zfh=K+NUh0y`5(cmS-WNI&f2xxe2E^}Mx&`Ye`+0don07e_)?l4h{h)Zrb)(0Jgn-> zxzNKD-Whx6Gbp*Nj3*WBAepAufqy4C+-GF7#QPXG@}*|9IBDdK$oitsWq$}AWR-i6 zqH!O5HWn;R)GFe$5P!zk^!fRt!+6b}J{+3r#Kq79P-CsJfGy+{-fX(?=KeJ)#nR6I zuiAfNF{x{ikhq1Gz_dkr6H@xoF6=vu>~1+$Mni0HZ~C*p7sYxGW;6@k<)-uE_+p?U zIw(O={JFcT1Z2A0G}`YK*>$m4PU4OdMI@>B0DqEd!%02MwmW}9Bvz^QnD5)7Db>X{ z?qkY|$1_rwtu$pNH|--P0PN-Vb=5tZMMS5WG>RmU)4I-p)bBjabnzcpz&hqi>S}CO z{f&oRuLPG~3cr{GgvC9H#XZ{{Nszg@KSoip+*Izk_6izHT>~s^O#ed0!>fV1M9hZ_ z*!cDhSTsaa0RYTG|As*p*y{cle>kuV6wuQo<{WMCJ_eMD;z5!0nK)wa5^jOr*%L9Y z27u~cnM1?F0Tf&*m@K3(?B~xK`xWGeaz&cFLmZ;;@Sr!K+W~}kY=1ZI|2PGZGJ1a) zAlTq}$@*|Sdt+mx4?@ic;34JyzKrre5s@!mN-$#TV+Q`vWdGnbxdUFjCgzs7T#c5) zLPct0He&YKC&2_ZU^jAUY3Y#g@MspR5eiw_T?!N{NxQ{Cbd^~^QdB#+Ls9R$!UcSc zr8mN(>@@Ubq@=n465in&DED^3wjiR+x>j2jxF>x2|0ih3|HgiwnuC*DT+B#8u~s_^ zC~ZG%AN_&hT6?dU;@*t;8t7EjgAN`fut0g@tFD|PqgY!}aWYkA_>hLifC137rea}) zfN;sy!NI}C3xB8fi?vxfqNWjK!x$b*hj}{7iY9@Xc*SYoWK*w|p~a+iW8qc(9eUi9 zvR1VI6a$48&1~mWW_wsZuuxEnD^)Y=J{G zNf1l#M6SM_S7o7YsF&vv0=A6HwzQqH;$I->U8CXlyF^CPKwopMR-R<%K^Bw1D;YC+chY4vpi@6NmOIAE z&*?fxKu`?28T=HqJv(AZ$7eDT%#UkfxqZ<=AFQ~|>Ui>s)|(qznBCCO`ezN&8~qA} zUPPq-TFAUingT}&-9NQw_mcDd#iNa_{5dTnl6M&fZ(r5=aqpORu#hR_Q?%-|GX<$o zk4xNWgggK{(jZn^Nwjp$B%kT=-eX$C{55?h&-^hlfd&RqVK+5>pZp2cd+4mH*62r< z@zAw0lsZB~fDit`nLi+T#mOaFJb~|Gg0CDbs0GM&Y)1{?6$bv=!6Rgg0BSZi_fNkGOyo}H}h$BK+U9g#kv zDL+2VYwF2Brji;Ez_-K?z$`D6g{2mE$sR@}q|gH^$M)Zo45;A*Rl({@6CXn$B1_pR^`EvgMTcEL-#2CkH?`tr650CUI@|KD16RE85fR zO5k|VC%ya^G`k~zFpamRXa3Jwvb)VfgV&5sU1`FlZ%~*dx7}{;&IWYRC*3cDn0m4X z36Vb9de86z#X6;3R7k6&?qk8OkasD+GHeiL2$Ay9)^rBrrRaLhEV=T6J**hkIBXsep6p;3`5zV8%#phmYQ`LiRKd09NAPS5VD zrWYeg@BCU-L_bB!VAgK-LBnH0G2PCw)8P-C>O@K}KlWB;1vCztRG~5Brx-X5#s)kMR z;Q6(qimbzmaZQU9s5BWa8>ZinV+7jahqgK^lJgJ;r8fifP8^(5$pXzALMtfG=|(Ak z)VbKA&&XCffp3~@EK}yGh9elwQBXK0?7ug6^&f26Kr7taXA48T0&zvf9sOpNtfCpK zCF+(?GA$Y1kXg;9N#)tS4ZiB*MsWBP-wn#s9lXtxNVb>ADJuYUP@dOxL~^tAJPp_? zQ=0Zgh)LPzcw!YcV)io$pw*g6dqbf~y%|}wGFRVd+dS^TGBdk;x!LJoT*(sT@`ro) zbpe%LtIg-DRN?IwPG$USw&S6Sz$WAF*SerfdHaz@MMtU8 z^<@IB3V~!l0IFUSx0yRn9C()WUf-|Ba2Df=YDq-gKpKS`Wz?R?8?5nD)+ho$8=nkZD z3fL1D=Km7W)r5>grl9`xreiko%RjU|@{Oce*NTfm7* zmH(db|5HoY@6z^!ex3W29g>opeZBkJ9W9bewgi(#9@*0aX`$ZZe_;X5*YLZtgF9o- zxnsffN5sl4^QsD-dBuiy%hdtDS7~?`_-h1ZK4d(Cyh?(4NG%FTq?$O7wx)gGVfMrjEyoJ>@g2^Kb7l= zU|aCeyt@4Qg6h$z2F4}R4fL0U{V!7CZ~mv`>OGWVGXwj}VZ-_Ly#}#$A#;4b7Utnj zhczCFnmj%=mk4PrM?IbUprl&R@wDLSt1u*R-~I0N501jr`xUI|V!sXU9AuVXM!v+by7wc?p_HW|COW)Om(1y9=);;t z4MHBFlXS*Bt{K!dvQUWnF18D0D5;1RN`;s^hH^__HWzgnX%%NR`U(h2(T#-qdGu&5 zEWP_OFQROt-;`LTs;P;5L)g((iC4?bg9rX&nnNimi*b6RZ~Yq~Uoy1g7+N?M;Y zmdq%ufZ$ptOB&r}7q?z(-aXkOj~e={Wvn4g0{=;&=${Qa8NHdWGR8>?$B{Bp49mpA zY9VF8j8&zwv?4sT-|1inJabz3*B8D~teMPw#~4DL>Xdaq;P$J@JHsW04h$*}_Ppbqvvopcnf+JU!}>C5M%V&v_l3uq;_$o;Yzu zp*(P8O5z5**Y^lY=M%l_`n&YS`NdI0cv~ymknv*Zq#0J^`J}d47{YC95`(a?glW9u zEL>vJMdQ-P^`EUYYxKN2?Gl|wm~t(g&@-* zeovndG*mr1$e5_%zyIg~|eGGn=z!2oEaGSwZvl{4gyGtVY66tJo8F$i5H>Bx)DYF|TOZC&XjwXF*wgw~< zd*+$R;S-WP?@7N;nA5D)gMT77(JWZw)UAi4_|Cp$jk1P{b{=k&ufDZ6j7c%ihr(Gt zQf&HuqF3GF2pJU7=6s@v^%$HeUEztn zcT4Po>%m_%bHF;?k(u~#lJgjRhnvg}hy2f^auJb9nEAbSlE`_8%yY1~X}7VH zT_doght7B}6jStwV?UDey2Y@Q`z6+V`Xnpu^}@QQ#5d-21lg@b1~bAOKMsIPyiCw<7ABEFZ`>(?q7m*y8K zK3c?zeqoX`AtI}0$`nOFv}U$7W`M`ihBm)+fi7=yjQ5xHV{M|zt?P!9K90PNCv^@p z{I#(H)2)z}jW~CE#p+-qF2g~b7|C3jRLSR1$2HEkxz;=Ue(BTE$~5++g+Iv*otb*^ zA35|(?^cDh$uhycIHd}a>nV}XiRS2-gJGt4MkZMM*8|q_(_m%Ntf}b&BQ082L^Ma^B(6*@9O0^a zWzkW0J-9o|?3rzCe|l=KTSh4?I_fP-Kc15$g@{T>@T{(<{}vWRnzB!bYjq3Ikryb@ zWde9JtSSC971KnOYS8}AMuIuwMi@N~J_>^FMNf91^m!HaXvm2l`bo!##ZO)=kh=F@ z=H$%Re3L}Nk;#}hH)BaLv(I-_e%0SDxmvQJx|(mw_`y`i%hjESK|il`t8EGpo%?u5 zL=QnKxvs7<#Enep#0x`%qR5R%m{+9G!~Fmv^*&nA-Q%pv*r)sk>{AOYxU9958n=yW zK0;nZHE%8wH4}R~E+v!pEzJqPh;M)v8)Y=};U=y}ZDG(}O%2OtsSOMjrOTSK=`!5;C zRI6*I>IF42#w0ym>XX(mz%EGv!_*Q=ITZMz?eim3Z4`$qo-tfp>xRz9ZGOqKsyfz= znR}=YYhy2I)3xc?I8%T>8yKO1R6&qd!yC6@CDdW76aXB!Q zfptzkz89k9GTTLs-fQN7-X}QIB_30zeRKy+pF?#FV`(hUdEfgRy-ZrNiCaQ?{`m0+ zk`JL-9X-DcZ{EE9phH07GQ2SH2A9P9I`b`A^#Tg3*lD8{{>F!+J~NkrZAx<6x+t<( z7g14TRv;fs=2cjvXoPW;}YrUw>K*1o)fcI-jqRdEU-^IY$qYnD3tW2xk zwvnfTxpBsz$6^Wo$au?dE9?BmW-uGu|F@N%`=t%t4#_gstR$jUF%iSs-Wtua3+=2{ zX&K?(nJy{SN?^1bk&Tt`-0tJs(p)RfS${NwyzHZZ67P*&dymeh)PvSsGNVHF?Hbc( zr#q$sN!>=15C}f=*@+p7+bj?vIEe@wyw211x$x~tIeLTDqWCG=SMUL|1T2J1)+U0g z>VtmU8-efcp*qHRS%c zde;92o_jDS!teq95%ARC-!0yQJw0z)A+L#vAH2F=*JmB=?edSLo&nZayTXU(uYGRd zK7>3@o7ao?cWF1>UiXnd{^e)f8qMu?@V+}qQ~K8{_V@RXkB?OfRRcd`T;#s!FgTjj z^U+aP7k^Ao1k|-HMNhtc)n@crYN70M?8fYJp#GZe3n&WX;ZL0cnJzIO+59)x^2gjl zA`}5i;w*9hQ|nHxx1eHtzU=Wz9rdy6Z2BJ4;OvmDn>*OPkN^!0GLe#$>~W1UvhZY~ zdReD)-Mf;{Ee}#TKx{+Dsj3q!*FW&G{ec8W>$-HUAD|BiKL(8{qha2zxF&zWaI9H^7*N4O|1O za^$;P0zX&UxSdY>Q>_m!YjpK&P1tj-Qr5yJ^34Rrb@Ys*T%~Yt(Xt>u-W0#Ip`?)z zReJAfc*|L@Rt7V9BNLDZqgOPPaIT@P+4$g z;~Hc={>e!O5-a(V_XRu${!Rn!Qi}#B4|=yNgWKdi-lzCPIL}&G;_ns@jVR;aR=>LS zC8qtO0E_WjdAo9MRSdj?#qhJ80tQx&Fv?Yx6duPMTD4}+UlYm`%YX8o|8dnwvht-z z3ik^PEJNz6Xz>?S_(zR;HQ8)Y1lri9)=J2q*~+Cpx=Nc+`%wD9Og8$Z+x2xoZhgzs zTPlY|fjPXJZ=;7**Wr_M6+QvZpody}En)p?Vq$b%yC2O`qxDTalbc;;M-PzIfNdUT z8Ww9pD@G6;gs%f5ti2hSDWCZuqp#0g${ildKK^1O_l`wd5em4ZXH>BmGhgi`3DsI1yGP|H%Yp`M_55}W}- zFuAEKPkNxZ1=Ly+$@7Y%0!s%pS9oeQa$>HNfaRoX!&l**Lnxj_a+uKTesSfUQEb$s zH=`&?TG{7BDC5(Zu-MAnPfei`n6IW2c<>$;VaTNV^-YLkTtbqmJd2T}Z}xyJddzCP z<@@M&Vv*g&EJ>r6O+?l84z@(b!1v^)Nz1_Sls-W!S|dI;x(wIb#3Ez$^y47O1f_QK z=MCjuEhcp0fCstP$k6DYH>?vrq&|~(VTZdbx#-&lPxejj7GB(os~apFB{mk4?pHn2 z8$>CTQ&Nv@7I52DAU7uD`j`-ekFS&H*?p>Ash%^kMi>zs9F#~{_w*{?rKL`*rx$GC zDCsB^zz7(qgQ-3=lj`AmGG?l$0oe}~mCw*NSgP75e=%UYwERhb>r`>=+D@CoNHg_X zBV4VaVtGo=_h{BmSWnZZZo#T%SaBdNqP(~>QM9DfEks%>mxxMJJ6Sp|CH1{b58Z9P z?yfmaA>J5Pl-NHk>+{~IUyvCTC?!1ky_)h_J2uS9!?w|t33*kWm*CQ{wzUmDPO15? zeCJaMS5HxdLpfAIJ7thbH1Y@&=eoPEHkD-!tsUfM#sXqyEYMz-k95wc1G*YE*{-T% zX#%QwhzU(-tL9I@@{@&jf5YILh+kU&9c@H#=`gSgpU{R2a~B% zxdh}DdMhL^lz`DYx}`RceO|R6?7JwTTupa8$sF1y-(C88P(2e5Atz_Hfq&d&?ywg= z+b+jpY-H90xwFFSz{p(LjGtJqB@6=N)0bEfW+t5Q@+?UR^9f10nf-SGiOz`i?Z5S> z78Ap0WAW-0A#s?(8WFEnY`THCV;o(_+|VX;@bSiueJQFh<3(QQFJt6go74Ci*gYKxdjpx46YrGZ$b0xtVLw-DSp$b87GHB(${|gHki8M|yMLADO2DFXPAo2<3OX}LA^w8b6j*}Kg0 zZj@g3%q-)TWUL%}@{&u#?ecCw4SLsD=Bf3#OED7B>Saj*GqtVTt@aW z=IiP3jGrpp9B?2i+tJ}!($86S#{zN+&qD*B)4B^V?u?T%mXEA>7%y8ar-ZJ9WIXfW zx1WamyUOjOAv}XtF*ChAJ(k()4PUZl(PP;+(xky<#itEn2b1}n8q{vm{243LA=(uB zT2`{n9=FPECOWD+zvh_fe9b9UNqzWXq;mYD6B5nFZx*H8XQVsd%`+ewdsW~{jp+V6 zCV`nrQE8Unz`FRynT$+^@ebQr(csd}JetVbTIli<6yfk zZPC*3pH7w*6bxZaP1Kmv)2I$+|15n6n@al^tzQ>|%!OHM9b-%MbgD1T2b;EZTeC{Y`Ejl2ILHbH|FS+w$ z@2k$aAFbQRICtM2%GRBU=DpgT+P6<5!X%E_!NNq`PiscINMFnYmHVF~%j~i4YILyM zoM&_XvW=rs5Yf?}ms;_kQ-M^73UnVP1`4`&%KuhfB&r zbmL`tf=)do6s8yG1J&s#@tvXo>0$63b(|9annpc8HgRnu*n?YRoz>Zl%(Uq4A_C@#`R zt4+@=bMs2I&l^!Z6h$-liXlCD#Emt`Z%UqZSTFy5q@0$37DYYni=z+eq{yYIC9QqL%DClPi`%;rajW2Hx0#k``D}?EA0Brsh5?hcT8VCB<;pZ^hiWgCmi^^ZJ|j}|?N655pSD@r zJQ&$4FIMq1pPi9yuvk01=L+9EuXvowE@0WZ4(mZ)O-Rtx{%|RN0eGZ8G7K!oJ+gZV z=pw#~eQ%c^Hu<&m<^yIR^7H2%1}wFo_#-~P{|Gs3k$WDG`ye4wm5`8-k&yvJk3Ls` zGw{AU?FPj;P2BInn-@(Hu?F-C&;QXYoGsqXMv{r09V`lRx*Rl%vy~hk9s<41!7MEN zi8>F^ihR`qnu~_}yKAf#GUWeoJz=7V|E4mj}F7loNoA_y$iw=o5}`33dY3LYvcw%ANK_X zc)tgA!r9)eEBMP>BU1Oxv3w<%;Oar~+;#M^-W7RW^6#h5F;-123~$elpD1MpXA?h$ z7PczOPs6lLp6>?^IqZ7~Mf^Ytq4ye8aGc<{2P~5Ss&P zYzjHaL5`e40E&gqX$fS>h3{2hTzGm*#@eu(Z69rZ01;-CbKBYje+I5GA zhlgj#I->T&=iXCycYpbyNLE;1&sL~PuB^%`#f4T+k3`lHo4v4Xp;U^NJ+!Gw`M|Q0 zokv1vAEt(*f+5bM&sf2iO}&`SNX1LoVWrIQd8I*IRm04iSY1t@b=>T& z<X&5aZb4^2Wkx49&s(Wp5t_zXf3z;`5+vb(o z*ZnpuDl+oe{aDnoy$&!;ZX*mG&MV(oTz&2j+o3f2EJsH{FNXO}9K1=Sq?F5fV?&|v z;gx7S)X_;gaSsVrM;$MbYT`6mIbto!(QHd2c9J89?05uvS&VJVgqV4V5q-XWO*%jU}AE&%rHz|1ETrZ}-P-b_fI%z5&$CCKWL~7~T zt5@?cWFj10X|(bD1ezt&;2zrOv+z)cwLO`&G6HnvRmjrUnv$Cw zWEehZus=7xLJE#{pdB!|nx97pgAF6I6^)^^99^$xfe?=xTQFY|#EhL4@(Nc@mwcd0 z*&#)i3 z8HqHujh$i!YU+ylOH}$mML>yzzXO%U^n(6_N%z`;m5Vn!F~ho@07_)@i+NCzWX~*2 zt}oYDCR(j89`6zwP77)=;6%xKAbeQ;a&?a?*FOGF@&*@OJZ zZJD9K_69Jox0h25Ndc`9;PN2RI`gqghroNVdwxherVBWw$I*^j znb32LgJCfWWj*96WkbK-vvA$x$Ybg>B@`B!Q_twOiAbo-^gZSFgd>t0jFh+VB+z^7 zwY()5qHU(sH1lle3)!)mjWtf_BOrLF7Hg%uilxCwZLp{7RjWrvg+57Vh{Ihq}LM2KZ>Orvc+Y38CNFA?ctbX4S1hl)T zE7oD53oG0!|{c7P^ zz0{Jxd{~-YH08QA-GZ^zzSvt|+v${W??IXeXcVrG0cnYvm~OM~=q#{2%Aa=Ehw)(& zmn^1-6Pt7F^$4zCp4BhV}eq)X8M%5fHK8*fd(8&d^zmgPtNs8TrPQ zZ%Q1zE5q$eS`HhTBrGfoi`v?RnR(MenZ)!1iY8|d!~WcETF=pQI{VJ^8oAz0H3S9* zg6Vrr>85n{M~RDP;>gienM}U?3k#4vob@p&r-)5NU~V^+4QzkMrv*CM{yA&T=8EjA zA60{EMA;du7NPryzEg4(nbu50=%UFv?b*a`+W8R3C4YPG%a@b=>GuCXNP(&=_RCa4 zTrrO0zNk{dH6kdj7*|Q^8#L!1#5{|hlEFM~a*RjgGQ_{z9V&uUMJ%H~-ZW$)ZLLDA zVr`*_wV-c~VeyURbxm+R$*p)s^wVDeg8Lz%-(6FhGGM@pvum>(MK!v+m?LS_IM{pE z6a)^^WRw{)T{qdrlDg}xV6+6HO2aMfey#{=YYLnA%Zk=(NgI3l2Pvjpq-u4;94m5i z&1eKe{!&M2@6w!;2_4U)Ej+FkIubI?|5|O%ZR*$?llQoXmksi5pU>(5#L@VwYO;+r zzfNQko;3{<%!3P+_`}<`Y}P@i-_Or6S8}UOUNw%%%|uNu_eY7zVBG0{L$7z^ z=8n~Kv+ASEnpfvq4R^T+71tp332V!%wXgRRRSv1C#FCcs=+oDpSTBAjXD$+%)VdZO z7sXqgHQU^FJQh}#tLoU+-Oi-nv8ZH!CFu&8fK{g!(T*vc^^|wo?y29ofw?Asq3J8+j{(*HG))-(bl;1N8<+g>&fA@7E*>J+(Rrq zA-_GJ`UG|T1w^?$jS_!HSoX;WUz!Lj!iHr6J6LJ@6^@s*(W*$!-8F)6q?~6RM#d`! z7N&+3WHZL|j19_JDQRw7SQy~XdaZmw8rAc{sT8B@_>NKJ-T>_q996;pw2a2#;64(- zeDmIU`&H#QELI1l72LvX^bac|A0mj9MLSNn*!XJ7?%rP3pSk`pB@uL%$9-!DIyo1; z5c`dJ5;hrO;!5%|vjeq?^V`3L6|Ux8+2{i#1fu?PLtmAYg`KVzRlP4^#%mfo0Hdq2M|wrq5g z>131KPZo6d#%Xd?2{6k*+diCf3c_iR><=J0xvF^j-GQJR073CGvQ3zj|5RY#W6Hpa z*zA8EvybHYaY+I0v5V$B@p$C>yFl$`HZeI(G$mC0gEdVT!(CEm-N)m7Jl)S7NW*eYT5ecD8jXulS@|Ac~yu@ylh5zdRYA=3o(64-1??Z^Sz z1dwLWWi)7FUQv}TkA}~su8GvJwqFsD!pWUlXx5wtU0oFj?a73PuXI^W~%V@^`UNpAun)d@Mn}%yV*!+Vy$Z0I%k%8DRb}5*LeMXcG>P2O0wimo-m9=6Yrn+<7 zePdQRJ6b{7G1zzg=IuK8h(bznuJPqQdg!;4YnyGH#^y8D>47^iTQEv z4#uV^K`+7F@-yx|B67I=#3bl*a4nFm+>FQA{P|>e^Si+N!#pxu&6QuQusM3Jo zQZ_}5>kx^Bc8H<`*v3`?tN(IdxM!}w@X{h*D6VCiA(r9HCU+K|rY6~*PAMz!>}hh- zsnd?Rp_N`{tf1$hPsMnoS$hrY;nO9Uu zdOHda_w1yY09JA?6V~*J)d%wm_WM^1vhU+W)o;S0ZfS;Z`U4lDDFOxqilZYA@-FR~ z8BJQ%F714qJwbb74Gae}@7g%~`57TKhK3R5F-G_d5<@iRX|q0tcd#U^c1`R>(hfzM zw#%u@@GSE3YcqyL2fSF>?g4_CxMnh%}@jFg)-=bq6Aq z2AAG&emV+u{6zBFZ8cIj9mOZs`*ll<&U6UCw3L>u9 zZ(M;>RX6iH^S`F?afvvldT<67spqQO*+i42@sQ~lSd`a>MkU=~g%Kg#iLOVzxjCei zgM4BTmyKcNdxEq{$<@+qJ>^+Rj@;Z%$hd9HuWCi;SS6)8LS;C>1mcc;UHvS18@dLf ziPEVW@De|EV<~rQJY22FfvbQkiv^D&6AQ}PP9G)dWuN1GgEbFs%e|A${8VDq%R0%v zTAM|ok@?RvY`#yxTc4pl`P>3WXGzgyQ=jKL6O|}v{`lfvXHIr7L5J3#pV1zVzskp` z+Y6=Y>D?SryiGCPm~zK|N=4BdXpp0YFSEXk!F|#=f4XX=eAs+K5`V*(^e>rAQ6}6_ zzRPAFYlOGX)5E+sZZxZL6u+vbW9>{qmQywDJ;64?sayOf*(L^y-%Y){ISy$ zS(MwOpc^@mw-SXYFcJbEbCya1iTt0w#`~e9%YCBUeX>H;!$bn=ew&pI&E&4+Fz;ww6iQUF#22GH+r0#J1FXi}zi@o8^AC@WejCS-nd9NgrF$sv0ybQl~k6|l+$}#+1WW{8zDelhm@DXl2P3T*~&_Ci>$H*(Sdl~ zLW1uPU%byo6&AG=k2@Z7UdcM}4+=u9rVE^jkh_cgv|C<&Jd>AZkx7m+{k#vRyXFRe zO2pw~wh>WQCXeu}Onr55A0rDY$+eTUX3fJ5w6=%&Rp?1&J zxt@C5L*-DPl`plT0=)F2cTjS}z3PORnMvO6IS@iZEZSE`7nK7^=1GN7)UOLW7ASv~ z32}RvC3dYtOB0UZ^lS$S ztM97IWz)XG^naB|=ktmr5-~jaixZoNy;YuXQ*2+-sN?JFJ66OW3|*StLw0)rgEy`C zTLOa9FeUx-#m!;tPHca;mm&kR({X(7rolC9{ad~Mag90rQu~BO; zbs3tgr}w%iM+LgfFmrlIMbniW_|LRTcCslXi`q>wWKDJcYLF<{6KFR)te(b5N*eHd z=-DWB$E*6TvHAQN&L2qT;?n_4A#@tlfuk~p)9Ps1=C}OGieguX7bTBWb(eS(@Didb zRs6%y!qU`zi3SPtO$)7U9L8#UzwM)o`=p0BPifyR`El<7+Qqk4@{%4c6Y!3nju3Um zH4mtl^7mw)r8683Q~O=O({;SvjoT7#RvnEY`rWAMM2L|2VDx{bP@G0z$xRpJ`h%I! zmEP`if+*$-e&*~GWDZOvd|}#0ap5jtdpTOjkOM^?!Q#^J(C2Bx0OOiWLgI|84*#$A z&NHgXwcYdBU?U)kfFez$_ufNLK@gA*k&bj}B2{W|i=cpX2+~FA9RdjuibxFsLJcJp z>4d8Ep7Y?|duHCV-dShOocTEUn3eXV-S>0-%Wv>p9%->C`c%qYUSC~%50cx@*%^>M z!p+kn+^4N)V|@x%NR08l>wvq<^0f=}JbMK!*d;s5+@MdHKe$(8g2(^%|wlcffl8F2R8-U0%*UQX!5lC9VigeUewJxL);L`_np~(6kH3 z2>s55KOcYET$W<<+0k43H0-#k_C<{4 zhq1Avw^Ypa#C-Ab`T@$uY`RtNl}WBH4c6m8Fsy%(MO(y57Avjqz~d84Ia&^=J#XH@ zIyc-uqcFUYVD+9UsgtvNkiEG}wI|OkJ1aEQBz&w6t2id5tq>eTHH$7f@HiOpGp#$7 z#)45|@JYXZLH`1&#h?Be5_4~SgZ`OVz(|RM*_)qwYZg!Gtv)%bFOV&YUxAYS!D9Mv zB%Cq|=38MNQuGP6$QgUq3?J#E=9b~Vq5(O~SRe#!d>*VNVWAP7b?-~@i@E62`eT`F zn)JjB2+jY77W0#qbmkWVT$e_w|BY4aKh@~|cWYz+Po4$vUAe8Stmx|MW}v8&pRjy+ z7qt$Ks~!XDW2wnk3nv?VT_aMz0!Ol8spBQ7y3pI(Yuypma4;Kz1nrF3XEMvU&jTGB zXf!%`n`E_c>R5_(?5J4kpILx^-lkAQ92Y^XQVfs^Xs+X2TtWR-udh)~8X`cDtbyg% zKqPP$B|r1FrL2!bb$JZQ5Rz4{&jss0AOFh#Td`zY-nABVyb0ZPGG7(ymLV@*|4@Ly zYmt*KIq;18w`u}C8*O)4w^PEYH8sNV`zd`)b);w3Ag@Qcp9xmE^MKPUh58$hhwF71hod z>ha?Mr~*g7{Vlsv>V|{%tu5ueOdW!ld6Eo2ZuFADp<|bANvRXT&DTh|aNst=_Rd>> zK%`=^j$p=`>q2Q@0$<773&rdUw-TUE$ss~!M$fD@=CmJq4-;^MbYtXG?OUW=a#*E( zxFf@Yo1bC0mO-8c6Nc*Af$F?_WAg>b7oG6aTZIw4WL9FlK-HH)>^-j$n1RLJ1^H={ zbpqqZp5lBVi6^LGHd1u-}OrmAHvLE{+yq0 zDSoePWvHNuZ%7ZZRY@;Z(p$zoq|^osCvb2wWOA-6QJlvSrz?ZN;@B{ftVLyIPx724 znoG$l(F;^8w&ueQl@dV1SQ`K1ZKsN12}(6U+A+aG7^1V|l;ZY_kK~|^dC(yWh09|2s z+f7%wjX)WWt;BP=vy^>=QytZ?hv8+|aVwv|BcBz_l&SU(+thO2trxA%49Uol((y!d z9CcG3PlfJ*iGCbL%mRaXtF%^?l&BUq982eu`*=37HSy6pMpwL@aje^O)@OSD^CcEA zfh5is;<617I~4v*W7!#<{8%ckmv?ucolvV7buo1^z4W?}jYX@YIW;&s4yd~-b?w9+ zo3n&5T?!bD7&-Q-qmd3AQ+JZEncrmOtF}5syQY_xZs&Mz8A};6F=Aes(?HeS z--m@?)m%Es_NM3KJWh5HDaa=oViC%S*vFAgcGQuI0b}-;p^D=iw%sQopT{gLB3f5WKwzF@~Aa!b4Ppi={ zv0QNGyk@W*$lu2A%{&-C1z8$7t7Yg2airJNvcb?c@u~}(oMt2PmEGTY8;tMm;Uo5N zq=nq=!hXwVbZ@n3ac9RWsijZ=ooyM-sB!HDWRYl_k*Vf`5Yi)@XeM ziiUSsB5~sS14jelC)ro%wt$BcbZd8MVjdw-F|5s z=#Nx;mj|sL$ARba=oX!?5E}Q~wl!^R$lbeE%l8l392r_V^(&k+TlzcHhS)0|M2wQA zS8ekk0Q-qxNSKH~pr2BdUvf56SA}^?wduBKcgX~^>23)*`Y}>M z3G^08R9`XaD&Vd)PV%^`q9GZgvqFo3gqGD8wwKcmidEm1#>z+8Kp z^9Vdyd0ra8-3#kf0 z0oU~a*2S4AS-p_iVx#v%qz90H=>uD-XPy7Yu>LT49sb*3kyeK?E$lznHf$(&e@JIm zch2{v^pKKQ|B<%&NYN$!D|VeZ$2yTW5^9obE|4qpPlD2zvUjj%zof1i?T`5~KMrIc zFByS%JLa2y!ryYX{TWW##`;?BhY3v$4nM9%;N536y(Kc;GG&L%>RMzOY*XTY?(q7c zQ=2+|+N-&Toddmrpa(#I$F5+O6fuqD(5#;ku4qEW_ORN(BT~PouR$g zL#jlR*gW&@3feOtpe%^1or^QS9EE+PO`#Z(IF^$Y^TRM2W2|S6yI!3SQ&y*3^t)93 z1gfGDncl@+%x&<2CllUg#RC^M$T2Pi0+{>J5-V*%>;%Keinj_C=RO{5GZ)|Lnw9fZ z#?O-E+o*jmiSlpM+st6my2t6V(@yDvPVw@piR`G3rO+r18N=Pd-TgC9w==SXH(IQ% z(oHB-PHDSUY^NHPXxhQ|;G3-yFT~mO9I9!G0{gH9481^9SbXnLCS1pkc9D^mz3ud$ z805UWV_y+}ap&`*eO!MCoiA^w6^ic=zqr%9^*p`Ai`YG+geLsS!u$1maUQ@kSY-lN zg8l-H#c#U;q7?pa(^b{C_fm)U2Qx)`H@EdfgO!;H5M{l=zOh?&5(MlPM;=#o)|92%HgAan($=;GNga;J0a=-^ywW-(`>^^Xp0r=0`gt zOAw_w*cSH_1mpIOX!vH>K@AoYCzB&vndoS@k?=GUS)bqW04B)UaLJ#-PkfPA_gl<0 z;lbZB%0kWD)N`uEtC#Ergj_xKtbn|eM?%`gX1^2~65LXigt2^;eperV7%G$zz)lSA z+OJ3JV_M zMk-!pyiv?WvOleJ@iSXkP%MmnnLQ(P%MpJiFCt)>TbbYT1+dBar{EPF^RMI!mJM?! z({JEc5;$=`3FR$*57~9;{zvBf>v-Q)T5M)f&ct2T8EA9_UBsy-wNY}=t2c?9A*hYU z^p9dy&sNdq8n<^3WUl_W&`pf3otyYw_DV9nCi=o(BRKvYz0Ae(!ijL}T?6HX=hn;) z`Nc(9^_Kc7*DmEnGbCQBrY}lur6V+XPxmoN+xgn#H+C*N=$aF>yb|W#MIO013|AC} zKT4mTc?G8!vy1YgMpyQ9tVGjs9vB;^O%zl6h!gMq3V#h@Iv!*6;~2507L428kv0s` z^iAr$lyb7ksgPHaix84T&3XnJcmtaNMP#OzN$OFnT+h6RNo>*Hs6Xh;BzI>rfrmk1 zEO4Io#W!_zZXsfUU0|RhppBq55mLOO>>KSVfRq1AV`HJV|KQx*Pb2zr6)CvtU@;Ko zRG7_i2|~K*$3II+Vz--&x}dpj-S{)dwr&K?)jsp<_=r@xR`AaNt&8 zmm6UE%W2WXYzEJHrR22FcdEKc4lfU2k}6)BM6|3gwW=~4FXEa%@-|e7>&cGlK7;&( zjJHcY9rnhqwUDg3QEHR>Q3Xi~{f@-8Wu8t2M!p``#<>t{-p3c&QvTIv%XYwDtJ_T# z85c5zNJnbKb`4vd#rFo)v}KoBB@7YR8&9ov;cJt~`1J9jok#n;-|9DZW0NBivW*Ac zYl5fmq`%$rJ7r(Ioy>V}RNKHWa&&X=Kt2i#X?%#;4-(-`*L>vuQDHlWAw=`Fx?YY0 zVlxRr!2*L7V<}+Ea5qKfHWR40K=o%1pT({+vla{amM64UNA290$;wFbBlfLw%4iHw zQ*fO`Rq3I=VNSe<{0Z5o?Va87${!D3K-mWwnW4$by?vEC;qcuoNkC z+!oQpi#q_lGc&U+Nd&1Gi;>8taEl2DATvt<+&{IXr~JNS3E~fDn~taMz8|>I^t2;r z2#pz!d1ER0(BJd8-9Gd!NPsh5Lk;{WTeWg6AGgm-T{=q@d zYeP>|>dz4C^)BI0lfR9UfmkY%bYBi?2eVT9fr^tfg_WSg9wY17EH-5qyPX=NpB|mS z2c8ZULply+qSEp-rIb>X`uciO`7xSWYyz+}tGGiebWgs?9bN%3CT`n1jHypu4FQjq zxA)PJObdED%KrGkV}wvjqFX*y7bY$?)~xx+M0I$~6#Pp&+M@K?6wUjr?_ULd{A=|U zNx$#dtfx(n>6#7B-ey`T(=y2&(yqGywMu_tR3DCP7Fs+;P_5weI)^GILLOQaJBh26 z=)B&q0fD>P+E)N#OU?1r^Hcunv}=Jl^he4_YWN%S=b+RyyN#i7K$oB_^kn#*$Hg|R z#ClQnrMYfB{e*I3^9UOC;9Q7js-e8;zq2uOu^(YqB0-2?VHXOucy?J zy3mXI+5he_c7eoRIEB5fY(xio;Jv40ITU&FQv5pU+s_Q|f3-3)vA}Amoz=a|0{-y= zyr&zVUDz05RuIJ`>F707F}ZGWqUVw!Dw>?Z>mH6Y=vOog7}cLor8M2W(YiXba^A>z zN3o^6Iwto46EmBNK2eV&8uQEalb^*g5wi ze*W!_Z_W{DKm&3v!7RRSb4_-Cvy)sc?e7=*q$xzHR}_~4284&Mz?6oLsk?HqchV-B zPBwC0p=;g<{GFIsY|bAP({F^4zR%pu)%bi=e9}fAuwZ1O+U^Ay6T7HJj{^cMDq9w> zM%52kF|@=+Nx0)THyCU-ughfnr|f7VO%xaV8g5 zy`2sg6=%TNO`10*O-S|051MRjI&I!#9?BLQ+pwH>|5f?pO?-M&;k&9+7RVP^m@UvR zP(InbZyoR8-Ndg7RlnBXeDgy1dZ{3{T=es_vl2uJU( znEio0Y%t&AKYI(p(Sc0ehWbL-t|(BLYklvWx8X|?Ktb`eDX^H>)eBpyk%IaOk=6G z2HX;NIFcoU6m4k<|70$<&P4^qbNX^MYZBei;i-+Op?!CzYOYapP*DJerS>BJ&WGPZIw_q#j;#BBO?Lc9Lb0G z7}D3~WAneH!5SjL3PF?73TGgtFk9Wdxi6CoV3_I?DMya^k3i$c*Kys1;pKhm{uNU( zg-@#~MqC20u7ZrM;z@ke8a@|f@=X8R7Av{Y(S`L1OndO$7&Dxce}pMts&|{WQ)X?R z?4*IUC-A{zn!!cwVv8TrBC4aFwI%MZkO)Km;pLt1P}mkC(4Q(!OyaR5tf?J*Z~MW3 zT3EMmpRoVc!-D}ep5Y&18h7(HY&=?>Db%B!=NI}4QJYlCwojhX8cvN*T<05nanlBT z_1)^<@OVdup9&c}QG}09Q)Mop1qglUb4@+agvG;_vLF)vkiUFK_|l%^=RQ{6wmoM< z97NTYL+G#I9oEz}S-25VxCz_vM{}8GorRRpyvY;^b?IL=Np-ml0bS?nfXd-V7v6k( z+`4)4lhs@I)$3wB^m{w6$M7G{2arEzkAawXG?T97=F~~NV-u&G7tpzTahCl5@A9AFhX2)E;lK5c`8ZQuyLN^o?oA6?Gwi_-q zAf7f6_cw!x$J@OR%zKFkti(BhgUHOlkahXKtgI~1zu9y)LiEeKt*&aKUS) z%jRfv=ePN$TqJqZag9e+Oib(w?dageKS^YUYk=N>wXm!tk6*KG5>B{3xXZ~as{zr6 z_>-Dg4ipNQm=9e#?_ULls;Q|#iO17=-<1&cH8nnav;!P3D-5~svB_UnARb~1+8+MC zSse<+bB`^Au!hRU2B@|N6FLprRZHK-0)}cz^4TwN)Byk*wwnfy_68*BVBN~v z8a*mmE&X4~TLB|L5%k;dH(xWItjqIAC4sN0c`Cze?&u+p4Q;k z(o17wW1D;9bJs)H+YnC8RUEO!(HpLSIh0CERWGKm(av?9+9Xxd;KOz_U#MzKv|i9< z>r<{(zno(Q;Z4)L4`H#T_@k*`aEZ;_)~E80tCS-y8XA!s3e$3WR2}Sgc_By$vbV6q zwORk4Cy$~H0{h8&roO-wY7%v#b)o4G}Wc?Ld!Yk`MJO1Ox zlYH>C=n+E8u}ed617fPYnsH9`MYN~nz9xH|njHUuPm1|U_1KwoEOQNROs4qBU|UZ@ z{rv(#0SWN!@s@_A;}*SD9#|uT>Q2G7%72F`oP8 zNx6EU`&qvs;8wFKB{t8_&|$4>`@C2va4veJgH|?>CO+{wX-^QQ8DYCQmu;6rBNYe! z73S1X(s1)vvzi>pye#5Z26A7Ev)*d;eQ)wLn-LXiUul0UXZGv#%q)_wLc6bAi{xaz zO7xYkuIjf{<9dzAnOT}7{3oBAO}5PtjQyy2JqY_)`$9tUw@?&ud{Y&%xd^K`02-$^0}Ep1_{ z!c9YWvmyIVX5g@|({Pwk&H*dkc}C!aa2syFd$B&@hpnyUOyN*f^~}`Nv`EnaO@X?Y z;xK!Ge?e>2^B4Q$&gKq|2*F}_t;c-yeo`IVEYdk~k7X*+!oOdh{tu{u6RN;B=8Li* z!f#IZW*%9d>VD0H6P&uY*Fxt62bz51WVZC`=atst$=EwD#nyQp8t0iQE{6&YFK+N6 z%qS?1z00VZZl3o6#z22H+v!0kpUgJHPmsx`nb2~#Vp%ET<>RER&I|&9fF7`5jMh$sQ(hDkT?EnIi>f+5=B^YSIQ6|` z#zHq_c1v+H_*}-qBUWRbv%k?H=Sty?IOc?Ju~nIk8s@!gsEgH~p7sB>ML3!U10V9g zX(aRvcf3qOa#8tw7Vw{dmH`St3RR?4n3BT=3)=2pL-qIfx3o<6X68c;LqkKYtgQ0? zUN>;XMvCNPbzZA>)58Q$VC8b)5)&A z5B3z*`~DCCbKVBT3~ZW=2PVRgq=uA=!Wpzxh}ZpEwsg zxbKv+9ycv29D*DJuR#Y_Z>gm)0g;0Ip z$jEtk<{Mk+W$`dVp9>hC2|aQMdDM@`|E`^63s%|&u%XhYNOMkN=?FmJ++GSgTO#fg zPlLY314r;9I;vHKeBm4oO4;&MD_~{%Y<)U+GvIW0Bse(u#*G`|8bH%}{9S4aigPo` zj~M_@a#wK#prz1txXm|ZtDnG{a%H*TipnY~z^5_|yi3I6NJc53BUknOg|#4^$0`>v zNkk*<Ve@LZbRuQ>paP^SA#2hG@(? literal 44933 zcmdSBXIN8P+b)XBr7jUcDWX)RDhLQjZz{b@6KRRkTj(J`fVfmdkRrW<^iG6OLsRJ@ zMLGnCbdnH4OMpPaj%$DK`M$lccb~n_b*}T{{K%h?G3Fd|j4_|*zVC658THgi`zk#L zJsln0Rb3qoQ#!go5@^5AfBiu#F>XOH(a~L_)75xv9+bUBVR~)`$yE!@3!GMWR?+NN zd88;)KJJJV`XPQ#=6x?vKX;ZR1jw>0f)#8K8Gr5YwH^Kle#yc6(#NH#et)(-=#4Vb znRC_OV#nB|M^xSd{3EGe{P&NemYVc^l$I=oYf*HF$D6)#T#%BHLxH6{zJgE0i9?SK z?7O5SeU~D??&|7-9d+?iDd@8tT3=uF4FFGjfT3q6==k_};rKki z)&&+87W#=aKVyI=a8kOL5ZCJ-YdEmR9ub)sKs`VY%oiOS|ub+lX^? zbZ^gP&@OkI!Pt!U|L39(>auBHu|!9Q%pu}z*TTCG#(A?{b3tO_cXNFV4ov|Hj|3c_ z?T^49D?@g0%4UWWBA3F1E|wOC`HSgL#(5h%Ku5S4r^DJ+ZEKek>%hBtE9Gb}&Rmy{ zT75zI+jZ!6Ls#0H2?x@ny;15>=6RCR1yK9<^d zboCtF7rq5DcI=kw=Yg)X14xd-F^15QySoJo1(yr5&UD9$x)_I(dtgrwmmW(g%>Y4v zX?%ZqA%h<9s;h+2ex9(VqMCLX$%ZM! z$jfALpLJ`A(+g^IJl|f92Au^qvC!qx4R)OI$J%3oyMOhN&e)>xJ};mpaT5g=5|orx z=tNl1tB&1TYGdPKIV%Uo9kYiiHoZ<1`-?mm-|ljsj5-!cog(OgR<|Ne$XP!oAu;alwibSKske&zlo}-U;Kub&ag5b}F$1Vu$!W#^yh1Du3=bWy`p`E0i>Tii?&r*`eU9!?cU|);$lFYe zm(pb+djPrHST5H@ncO@BugmcS`pN$MJ{{P89DUHicXCcDOF*MF3-(#cN@fwq!%F}m zfarSt-A#4q(O5zo=1ZJewZ4&gx0yo+wZ`c1FEzKeCRO;0wU&5)7WPixuaB8$o2CZ~ zf_esbqi4s3dL#SPnF@+PY;ve8g?>+7e#`^MUCMLbBCR&9XF$i2zU z7R)DZb=~kBopM0_40R+mzG}QSZ0`&u<8blk_p`nAnv<)Z*mLAwT}RaM+xL2lR?QM1 z!Qh9B;3-vk?b7=gdlk13)Mrw}2H^S09HT?dg7jm}q4xg9E`rw`6_mtXpk$lf*jVQ$ zuA8m4KvUkD!@^Y?4>cV1U|#zMVs>u{V{B(RoQk!4x6VPRfa9{U*RC=iHcfNOc5q|0 zEca}{&1-uzKb*8Kj-@DBE9a6D#o!;sryC-`7d-Nkyp@>&vqUo+i=x&b{T$(-lOU4M zNh@{(5Q5txj(!tDGPa2@iG7y~P22ShXXlpPe(?5P#{kK5>2M6BLg>nGKZ;hIIIc90 zB#o}hCaJz8`d3sFm-+*zJy)mYRGvS+fi?y4wa+^qOOyd;_ZrKGx3l0U%0ca&a&5am zadFv7CkesmnwS_+3&F<7W`tXZF)YYrMRi2y!3^xEVPm!YLQa0Xdw1%g>Cy6=+H&r& zmg>0!QtGHrgw#YWU_lC3J=9)V+RNRmOiGFz_yfRyCFn6_E)}A01mNhvmB61mu6C%c zJ*ok4c)9+JjyXM_P=4&TQo6XL_Hkp1125g$Um6*56z~4SjQtpwlBnOM3bi|0xr6%L zWe&lR+97D@O}bpx!DZ9NcF=Q`X*DoqL*O%d{;2DO(GyF>Z7nUPK6Nznqaato(O_Tp z;W&eX#GB|0`O0+eR$I!jjW&`G16^1MZmdUCn(>A~i#ZM&G6Gj~a;jJ^K|ycY?b^xR z&^S7#!(5PmB(KnhIrsN;i;X_`NHzH`RtL;3Xb4EVaj!;48|l`k&s7|rf=(y=l;MWMu(5=qxZAF_oFll0HZhSrFX{2f= zq;XYq_}r8In75>-8^zT4k%$iqt(la|*WTF4?scYKIp&3(Qtg0>4d_A*#4ubVNzqki$*+^0E9jLDl|)Rb zC9n~anp-v$rf@oT3Drfn(|x;^(pz(;?0+gZP4(}cAb1>o34a%I`_RfIsegNwsm5gB z7P6adci>jOUKSSQkp%`b4;1pJEWNQxcK5L8V>?V4FgL-eMU0T<^Ml}j4wmW=&HM-kwok{IsXI@q<;Cfu=m6F#x70Y9L z#-V|0-(7fl{{m5nS0dFuYwDSq2*?P97*9g9F#DD69v*0PV)!cWB{k8j(-{-rb6ggH z;m2wtYl{jT*Yc?OxIs}~Z@XKwpZW8yh99qe!GOk;TG{(~MDAVQc%0pF;CYxL%3cvz z@nrvMuFC1-W{(%mNn1IitucT!SV3XdR+eGDlW{W&t27|g=MuWg(e{y_Ny01z{S{6q zWN_Pj()`*ddx!T+1ZK_nU@CdSwqwvDprEMxpr=ceGtjxUD`0 z{py-KY;wAWD`r}%t4%dq3SV=joJ0oJr1kc7wpCA<-c*%nUYwm$`jMA*BvdrejWmpi z+#6>p9wXjTz%0Gu**zeyM@7^wrjq(2d{B#O_4u{XJtnTXTOqZrcu#^IfU{G4LnTbU zLHHs_dvP|oA|&pBzSG8ZITRSAU*-QRW} z>s9OmJ!wGHKj4>C4M*z6KyuuJcRW@!qmZBk?$80*SzGN8RF}h^=(tp3R~narjHyL9 z2!AI$;016}yEtJ#X_ra@bgZdt@?3l++`DQw*JRweYkcOj#~Z?XzmXt}cw?53QwHSi zI1SdU1F$RVU7d4zOL|L46rOizmQpa3v^xJ`6*s<$V3!|5^WIBk8J~h@8}uHn9;`y` zqLn2jdG5^?78I00IS&s)zDYdS)f?!~)DUHvj;OhvwMp3G&5$`;wHoNU&V|9#^X?Qf zPYW7@jFwe#XQzo9U+Cy|OQ~JqaW%X{FeL`5A@l;^%tP-agH%T)&1iTpI8FIxxz! z-Js29la|1x1|_Y=#0)TU{rpb6HLx_wm?x%k^m_omasMqA{j%gzp?WPvjc1$iiH4PI zzV$WTt!OIV^O0BTB}2@RPb{bOeG63RVhB zSQ1Y) z@ma^cgh$xj?@UIsCn|5I2^)Wa!u#Iw#zJlssapD+?DO-~HK!5k0N3x`WD2XtKlPaz zC+sqiAa+VIYK-5iMOpdELM@GB zjK!D8vk-tHw2waYO~+;IV{g-I364e|w(DcfPVML-aMQ*g`xzUg6W5!xWoK(Jj9exG z*~x8rqhg1r7scI~&VPZ-PXhyfFm4e#>%nPDk#buu!>4LVPJOX3#gm_TW``$Au2)93 zZr>~Bhmc|p0cC`C$}uiSpdK6=rXyCgv!%lR&eSlL zjs*M~5rgtO#(gnnYqR(c*)R@hs3#H(Y`-ZZ;dX}1{?|L7@+X!!74^)D$GlZnO2E>` z4}I)6%04ToEj#gGyfQ~iM0VY0jB^8LE?O`8cK#mH_TTE2Ll^b?C-Kjp5P)#+`dz@X4xkKV{gZ`_Tm#DjOy@TFUk&E+=P1fwDy zXs}c4NyuGwYjRWj*&ZlzzLrXEV$fE0OqLQ>gQ3V}o6Y?~<$Ds@tq$7*a=I!UCZelF zSgy8}*!W}eN!U^zKsVVeM9ag}ozDc?Q@HUP)MlN~np~ITR8txOqV~o7GES zYnO1jRO;6R*D;_9B7Mz+@GVCyN9Oc7@x8a>skkpIH#={6O<&}3MoFMF#_DG7`yb4G zd6f$wOKnZ##+(!zwMOfJ-HEYiU|K@s-nUs?5wr~fZ3p|j*!-HaJExZ}Z{2D*kXD;NTK}ER>qMDRKMn zc-4|3YqE07TV+FMP4CtpJNTNniTJ@LiHpPKS$@Yr!3+wDw?ICEPx-s<#bk+C1D@VU zC$a!H3DL{UNnPqEtFebhUPhzi&U1Ashf|l@`B}Os9Xo*cMiYXOk?#iXx~B=( z-GZcUvY0)-Yn_qJbxT!f<;V;wB;R`&h$iAMhOzGf!ocG;!51z(pPqmFFD)Rrgp8^Q zWsGCcs!_Qe47Pcx+%Cq~gG}r4_H1ivhmh?NwE!E(Y$b84G+n{0tT1ic4}Rgksj*bKiUJm` zLSEQ8im}tncDM(j%>A0X54IWKST|rEt#()+8||NjMu)hhx;Q{=38LYY7n6q>xp-+h^3oCJ~b2C^x^eIb6 zYG`q8r%4dj58-Q^=8_&?txqiJ%1LndK1B*M-z^w8zKAlOB@ety`0_lV%-AwQxG_07 zn?VeAWV&X!1g-N)?0qtJqm59}9)bCw3%v^)h@S%@Fw7aicD4|3?kcuXol3U2#p!!(GA`{p(S ztvJvbbYebz41{9hMlTghnFFl1F3je0Hr%5QBM_xWHkS*S34Se0K^qA>N;`I{R(?lM znhp2T()uD(_vn5z35G%Y6z{EL^d7ZI#XtU8(oA@ka#oYr+UyCvr#o%Fj#pg#wF2eq z)wKyxHCOWUG+6G9`8R6P>mHW3#Y&U|=F%Y|W$0T2Gv(hrHTQ0jP3vCfST#5h~0A>}Vhrjve?k73&}|AA>zyYx(VD z2%e$3)NJhJ>nowVO^M2geIB*R$095B-98Tiojxzju=?-5Yc34&n|eY!ADj*kaH2CS z5(oKhSaJeCVV{O5!`df?`{P@#=7!*kH*%9Y>xu7$TMl%Nw3?%8#$xv@^~7VNo*7MT zP5iQ|s|3#ZMu+|>I<=A2_)>))|6#~(7^`FC zyN~UPEoN&rOzrHtcBW_AWbxkPrk%0g#Nn5E$<6yu9j~7XlSPg5-Me^4UyjwpV!8lHvmX$#@ zzk{cpC^HK+*%Tfl&r*m;}EK1Wo+S{&3 zZMBExmP2{rf%&8_!-j4Hdnx(F+CA0g)u?13xUscMYJcOW#u&ps22pI2WT_Q5{d4J9 z{5gN;YgviwR%RAPnaXNu3u^a29Qf9Y?r;jRp62i9cG=cbJLL_XS#DG3buP`JE0K+Y-V zg@m3`$*mg$(KK8}-a@bxD-j3wtfs^EPeeBQtHQqLU9>RlJSUaP%^vR1>R!#uJCm&J zz?5JdIQ}=wRQzFk+sE$MX>P@^Mt8DUf+17&dLKFX zTMN#ag!xCZ0(IU+r97pBkiBpiiCAkWP8Ok05&Iq zAL7ZWSDV^fNo<8-=^=F&PAacr#lR5IoyQ{s+#W!s(BLf+CavVXFK3js0M@ z5-rnKu&$=QX5EDn6iegXta?$^*^b|1&Ncq?1n1mT`4q+H;-9SC6}tSi_q+D=lkLHo zwJx{{L|C1uEPQ2E+7+QT>Q(_?1FdZl78%C}^t;g5-~rR7KVJ#YcHubFaF7zw0^#1U zc04;$oC|}+R@Y5=B`t0w$b?gB!f@rxK!&@M?07SQ=xFtjj!FTW%hTePbpnMowEvd!S!viQQ*f6VNg?d~coq{2p@@ zGq8lm@W`CX|y?>2``jT*Fp;qfqo{*cnBAovAu6XDGpJ;(h6~+*dW}(DLEt6&cgM z_D`Ws+PeC%qU@_7bGl(o&lIc{B1+Ixa;j5k(>g)(KPp^00xn;;gpvqaZd%)b$79`b zncGyJ{rYrx%?n$9oUE3!(We0T%;A?gG;ESz}vr|3Z z_DB$%K8!chAA~IVIJq1Q(;|r2NuyIysf*{JO2BfVx?%zxCeT0a;{lX53{?BL{k{SI zmP((9hh>HON$jYIXpI#zb9u>mh2oN1as67sWoDV7UL|6u+Jmr0!jv5cWBb=sZum_- zEMsTuT0?{0-c%(%?Rc%NF*UT&>||ZmWUL#Ea|u$A1Uy7|E7yr0vklFpjrRk@X6r~1 zqvP7h5;aBYdHz;n#M5!5mQ~F=x|?Y(Ac$+%h8MHr@|2~%(t-;*Sob(Et8cu{q5A9d zC#nHN&a=FVss@i(e3DHcgj@;CDpk{A%_~C@sZci)O5Az-#}u2qyKc+v>En(;)ppFZVuGf9YDeFsyi4lovhGZ`>g#SS0!*^<<^~scYIbH zJ-m1H_Vh*qO)!_@Rt1a$rr6t{Z+R2ATLV_{khlQNQr@y^m5)4=`X!c&fe+{>UtJ*D zO&3ms=8DocDDrV{cjFYX7-v(tUS6tFvPp;SA2%TR5snico+j9!I z9UBychh>ihVnPIh2mbculXS3~4?1~iM$ySUwmoFS<*z1?UngEkpv%08@x<94FJ8u# za+ms-rzSEXk09YKC7-%^ng}Z+NVP?FNV!10+R?(xI&DG~zIlwY3yuETMM$lWB$*at zbl?R$o{+$d(OF|Pr5yDJ?ixb-8B5(#;CNgj;6i5sO=EmZTC0*}J+Qkg*bLcDr+huXQ)4jT{BC zC>qKQgK-C!V_r)rhB@oM=L0T5+-u-U0db)T6;fqp7cP|YssFh`Nedl_teUDY{E1%f zJGV0frNtb6_Qhb#w+Z0S0R@Xl*@TsFALS4`qj3ASa8zSj;dDF%%#Fbd%giIos8pP} z`7+Y*)-4Hmzs@+GE8hB^-Qyvh)nA_|p40Md)pB`4c3UhIVM9TezDr>%6U?OJSYj@S z*K%vTnzi~ps^|l(v`4jBH{mWlFZZ|yq((SPV4=l(BVw3C>X4p!?k8TLzUdxo!4d#f z9Mv6$D=Ii@R^J#l)X+b!`4W?z1H$v#?!|Z~?QtVb{OpXhHgC2{`Q`)^j7#$v@Tj7; z%~s7pAsJiTm^=Cb8=oJ#R~^0%Qw~N$QB(USE!CetA0|d|Rg6Ci1R!f>+-7fNLR?;I z*;pzy1iW79;%D)t@1evpToUfDEK6CX)I5J&-TwfVc|CJZO{UAo`$Jgh0+f(YU2+%G zcInHwIHNOhNoNhEpNh+u!)qHI>Js;<$-&9$Ig(>S)H^aqt!3_sm#Ti$m z0Ya2-V|D~QZhr4;#Nszc%qqhwYrdKYo^l#+A>$GddH zsT!p%R+|7Yb>Yd7yrWoMvC`cr?>;P)pS68b`b6orUP3}rZa>p_)!=h>i?J!pxOb9i zXkpAW+c4*B(Oxy2kgcQq(LmMwC;8j>lulO+I-}4-l9-r;>3$mDZrm^&Xrl`j9ltLC49vz0vtS z3io8XFp3!x7Uad=Q2(ygTHH{ev&o3V`tdu!+>^MwsQwq28KR^JfQOeSp0(%Rs;|lE zRHS+<0^*p(H|Nl5AehuIlq6gOnc}VS!1=|$t^Ac@BW!uC!G0}z;PFt|U3Yu?*BqUy z%GcXXIk>|sMVZH?nRVm838MRn!>`SQzfM@@yx07f7SO0Ec%r3M(BI~3w%;qPSBRfr z=F4IQqa~QD4Mqk&XY9##G>WV6^Mma6kQzNds;zBDylphE^hWlwmlm z+bdi^BM?(Mq!3$HnEUm-?5xi11%4aZxv?=KhD;n7h&qJM_NdHD=5n*a-`iR!XeTvu z&+3cvLnXo&8i_wIEZtq@w^7q}G`7tPL$--`PPK^z*mH7WRKU$8)s=@KN3HBRvMo|$ z6+-a6HV<5EbacF@JFA4EVx6H0UmZ?YooDx03#kW8Ni*_}R!#_YDwXrG5Aq4>UTAPz z*S^UvCuO9o4i!*s`x1HPOZQibqU3JAQ=qFdbdR}asSzT#ZdX=b>%>){Gu;g0Qz)IP zisxy0YU<+cayU9;w(+GER}Y3dfTYE_0Iukq2}L_B(t-AB8PkgL2;nQptUO~qH=Sg7*& z^$w+;<$KnGe8A`TG>+pAH_zjRC-n0JEA2X&;hVN0`2@c-%9FuM-Wk2bhG+V7KW?Q} zoj)7)7%dV&)QqG*PBDXSkCLqvw1!`8*Uqr5{<+f$;v^jeHZ*06$lE90$W^NKerY#+ zg@tFts4c8iJjm9C%mPek)@8SQ(faVHu75oVi#BfCe-j;T1NmZ`&Q%e!QcNH5a8FAI z4SxJs|G;R!Weyx=icK7N>a+1^x4_!l+}1jU*bSP_7~b?<(iBe1Rm#eeN8e|n{DTAh zV1Y%BnKy5pOn(g@<7Q83b}I!msY;56&NESj<&}9-+Q$9J*~CsTWZKJGHx{Z>Iv*3E z(I=ev1oGM(bvp5>w5Pe}bJxVWO~pCFb%pQLqm(3Um;35g)JH;kEuB{h6T6nTVuM3YwAW*+HdA&@R;G31T{q#i zR8o>Kp8uz*+riO`v;I}+6~>bz6u4kzxsbMxBfP;aq>`wwn9H44r5}g&F2`lJm<{BH zPwxcUo!tZiOo~opw=Rq&@KA$ZJ9Kq9d}SL;8;5X{Hv=Yxq?YHD_!%^Q7G-nqYUs7@ zP@^)j_nVC&wr_-TRFkz0Yg|L%3HSnMugm4wV{4_;jUzB{weT_?VA5tE)~h<$SIQ(1 z;z`2AA>{YUIL*T8sDxYTNdIq*=z5|r zg?QT5#dA{5aRPRC>%pN#4LH?KhI^|CJgT!=s`Svor8e#oBfSKJVe10R#P1%T2m62` z+c@P(<_^!WswTh4r5y5(%9k#R-5Zu&0j1+`fK<@~WhvPkIoSzZlNQ`_?sbQ%WrTP@ zli2Z{c@1H~4}zkK^L_*D3~|J~`!jVbI@3Q)rNk9fe7`-j8sEM}vhylenB)vO&ystk zM9juu>BEmVwC(qfORB}s`AqV+*OwBOY899b1&q-GcsQI8i!Mq+k37>#fR8u#slN;E zzk67Yta))j+fzLPi8hZ+Dfzduk{Nn*^qribYHkSClZ2*5)}6GHA=k?j--%g?!is8T zo-N8;42-~YV-=*_%e&ztJc=@2jnjB3JpETtC?#N zuQ)WP+(W(Kx)%}#dbR=89Nb(x| zxbMP}&p#X8UB7y_DN8R-qfsX_wbO9UVyEI%p=HV3HtzUoctKx%@h803F>-nBlxYaL zOKt)fhT+~&R}WQ{HMCftRjKWm;2X;tU&o4AU{R%IAdAQ&@jjZ$qzfKCrgBkL2_l^E6I!^+P>yN+o8hJtr<|h>j5$Ye5<$bsfGX1q#Ne#0HC* zARj8AwVyN&>;dcv*SqvbR1W9$y&L-0cyIG&yRMNz12hwdo{Tw3+a+C1@nDb0w5S(` znQSBb+D&RZFQ~T=R8(^wUaJ#D2V2yHOuBwRyC^*H(B#9E91fuh=Jo+$_lP;EWrnwk z&IiAaHuY3=T$J_2;wRX1p++6Gjv9y5laPB2$xo&~EgXA1fSha|G43=EpXUS)d1S5h z(*4w1C|TWXUNyuK2=-r(zzPacxnr>v8>{eVagJP4>?Kz%y@EGZ+2>=N(B8P5mPv_? zYC@`2Y_=X(p74X>z%pM)=vn3x&ee4+qRB>Ri~{=+|q-xpy496Fq_h*%_SHY z-5;dnA!k&xFaHI)Zx1}>@ON*aAmlCvjay%m3JVKYdO8idJFow7o2y8>rMRfbt{$(! z@dxLx%Wr>Ny!IDWcubZDW7krSEkyOj()}8sIrFalWkTD5O*@LX{z~}P|3=ALqDm=& z+vAx(ZR^#PM!%ngq-+eDIz`QVA$_36*xWJHeF8+n!+Yiw9V>F5rqugkY z&0noD9f+O8 zSufnzJO)L~vKayM)?DBO526n%u68n=!L7+B>T z?U5dRN?k_o{z@n(~m?NZH{%qj4f0ovDKE#T&Do6jP8-HJ6AV1gQ zX$_sdtJzn=txWxJ6*1^MC8GkLwl-Pp#_kPWYM{ToRxbLGxZqS8 z^@>;npILq6E1?be+fB)vBkOIXq-sFa)Th)3mqU45ys_jRpF`69s%d=bWQJ8p%G-S1 z8K$F_Ry(WSS}L8sq*Q}=hY$`SuPxS7WduILR`1Rw<$Wmn?6Tt z3seo-+O1pFg<8DK7YtyzX&A|pE_mz5TR){oCg+-}2fik{oNn3Ha{HLGZQt`=gDVR! zsg14_cS~J7e0`4Y)l;zw?^A6x^3RPtSa=hvz2D67T}y6@!t=BJXMy`qt<+KDuRTZgW&fSdG(n2^f@RvFJEJgQ;dmHsDa3uotI`TGPAMW(?3=?k+; zK$f?CH}6k&L3iA!74N+J6jI06IxH9Rp-L+YSYr9xPW-4Ww{F&xQ_ic1N9PDKx_)ZK z#yrEu#^y0y(@uem{(f;)!2tnPRtRSkaG;UVupBxR;WCn|1XGGIpHT|jdh~)8ukNSx z0OWExpU{Tsi~2j*2bTZYz)Uy7-l_eMyZO~}6s@-GwgziIq$eACK?Vs|>Lea4L!mFHN}v#)(V^NSx?FQr}X zMQ!Rs#J%W}G{kUHwO8tIceh}}MA(Xb%42l}qqzg845^S1sSSc#wUQg>Up}mb4_0p> zCYHbS6qYy}iSuyyK&`ZrGVbwwR#*r(Dv{>-VSGI)&9G`7k+;rA z6|Ysr#$~81S5^KT3o!!*p8nXCQt_y63YIrb@~?vEG%n1KzL=7Z6Us`5Jug||%9E$C z;@rgG+!L(aYU58c8s?qLv$lOM(a{C*iGiJ2V)*=_iSY7r;V-^PNv5Pc1sB==n>0i1 z8Uya?&d6xJMh0tUNpf^4@0jN+CyLRf$_Ja~44V26FN#UOIQ-N}8_Zl+rX{3r=8Z~( zlwgT-R^Qzgw%p#3EpP*v)RCWc3asTUT`$6no(Z27Vlu)oRcgQdlL<$Hv{GwhiVYlSV~T%`Dj&Z$>-%Ro+k7H(Q*XvnIc>s^=o-sBHuZPJ*b;EhaWEh#D9LI?l4|b+cvxq zl39`Y;CCX-Ta1tXmlj~$9GNm(#A}n&AR2`nC`CLs)G7j%sLVp?#f%~z>nq_rJb~1W zHuy8g8*2hHg9royJ@4Qn0{}Tw%T=ej2>tS*p>|~3&bKSZYVD3qu40DH zXShykB?=$D+ryp*qXySSA;QNPXfM-cb@%Dr-Q6rXZz`#&ld>BRJKaKznCid0EOjy{ z(aCk|)^S$nF()k!(mer_4%Kz;LD#;gcy}DHUs5|d*Wmg=Y(_W2@DH2nXTRXn5fTk3i$uao*XnF^tU8Apha}7OmS)@}EAXHG2T( zrEF>oJS^|AGIx%Tjg@2wzr;oB9FLA|;%Lzg7nA8vVHD!@i1I!IEzZ;JN5{qS@bZ?@ z{>T{ewKX?q{in3REo4^>@EZM?76AV32?c#p*IFAV9%`u~qbp#QgPffi4SQq#ux@^` z5`m)Z|M060-mjR1Dh+%;9m*0kHvC|flL~U{ypiouyU(mG;i>oT#S+?qGu* zkRe2OD$H%RPf=ZS|EeXz4LXOtnczAZV93)p=V@TWrcMtABWu6PSe2qT>ph?Ky+8UE z?ES{$?}6`@v&F?IK}%Gtiv>mwDOR%nBCso1KM*UT%V0GQ(1#ud?>pQo7PG9z(nVj z#d?cGbLm-6(|LlSWzsUBKDtfCoJ2bb@`6bWalD0BhFK&d6)e78s=0>>kfA(3w3wds z(#KAYwU_LNW38cXZcTH`$mkgLQr;&rK<6d#Ao9Dgf8it2GnEmwbWJsFSi-et!>MaU>H8>Y0{27AqIIwQA!b@e{ zPpEm#X=yh>dbeF^iPB|yT|SW#UNsJGSh(xn#Km8FLrzh@iBoAZb-2>f4&R&pZmT^( zgOS{7$LDY|>6N5716s71Ye&|PtA$i6)PLOn5W-J`OMhBne=t%z@Gfc$@d7a8jD>31 zj4{Fd5ac*~Sjb5(Lr@6p-Ke;U?YO}jWnWggA$B##()(k1uS3xrMVxZIb@dDhIf@w9^1%Q&S|gr0+j*qRB&*)6|rCQe^Ly?e0( zAvqDt329XxHYUS$<5kY~W~MpM*0g-EPG+1!%W{5G zq>uBYvkozjy|-({uSddRc=w~?0!*;(VM|6p>xU;B4=?29_g|!YbpiT*Wwvs>k<)ON znH{rRA|NRlsuP(NC4YIsAy{^I)5tUtgX3~VPn3Fwt^MTh#Y zSi79R#goT<=y;?ov+nNSRrT0Q)yUA%U;(z63~EUTTjWK)$IGdm4W>s_Tks{Eu5H88 zZ6yd5f?$%z8*%-{+OU)srT)B0hR~ymx3om_{8OZS?oj+nW72i}WKot)yNX!vKC6Kc9Y{0-K&UT+AtaGj_JWmc$K_o@8{c({TM2)L?O&9;n7yb z9`7Z2q>FpHi=5M(KX8z|jEwayO1Htqnfl{`OA1+X@DOad3%JMzWv^%VJO>KXs63Q~ zoOLZ)ENJEI%@S0I?JnbDaoERDy#KgxZNqUY68i{NPUiNe^-yUJKL;*v0 zBStp(Z3cX~X#LwMDsam*|4i#}5WZph23kOtPAK-eJ9_|Fm^HEolsR_Br23La8NYWJ~S zU>c0niNQ3nd65UQw4r~PRU-Z`0Nb$w(6vJpWekxftTMG^f>T`P=7!DJUA1gPMXDAr zk(=sUUhOA6JK=^GW7ewn9V<_$d%U!{R(hd((mVUp#He7h%*j5pAU*lVo4y7v{(J?w zfnO#rLml)dbfQL5t88mtA4jYDtexDrY4DeS+<9#c>$uee%*?!}pz`a~Va_-g>%;Il z*Ioo(_Tr6W2;09y&R4_?U-nBom-qbrLECUB+gADEFH&8MkhGcd3x6af+rULRJ zqUE`z31P>$^Y!n!ixG3n5qpMZ{aZ*smS`W3qDjcl`4}&WVlX@}8ZC1@lyWtdGIc3j zo8^_R#nMApU53pG(cr0xxhFC*IPRhYr>ke+kztjPVsr2NS!^?>uU#X&(ozw!iq53> zh#D<@oMG7Pu5{nvK~=-z`kgC<3R6k~C@(M92e@0>Nrpev?vMM%8E1z_6YEo_8Qr7f z^4!XPSbHHR3?a?5C8(TA;|*>Z)K3aP1;@%JR;nisXG5~E;%}d+f1Z=k@VNJZeR=ZI zspl8m%}%uJ_?AJt?IC>fH$;c4@Y#ylb7jinw@OOR_ zlYcYHcKGw@<@4wSaTB44l6%F=n8=5mFRVJpzlty@vZ?=Mj(t4HFr%{RO$$JMbEZH! zqrre2pe6y&Goq4`muRzhgJsqIY2k=|L~LZ6!4xqj4Xd?y}fR~eeLCsjLj@qdTHGAmt<3N#!y)x z??ZR3>YiDQ+VOy~EM5sS$uV?{RZzAhnbI1 zoU7jaUAQl8Rkx`)A!cR0=5>BE<&}!ULWiMDnIk;yEcCy%w|#cZp!CrK;|Gb3o1B~{ zWE`9jTuBoTzd&vpj??1qk7zbgK+sY|X&#`?ran~&aYhT8llZ{j^4f^nS!h7OK~)|X zZM_D4GcYjtNKaZH%Ic)hWUTgO%7adK1Og-#0 z)|(Zj`7HK_oCcz!h!@noKHZ^)$8dZpBMFs84rt_}<%ve9VCcTcHzhW~M_ zd7pOFY~<{81V$duEBj3`U^Es)J0AVJSul-wsPX0NiVYV?K|MWVUhXI@(C&HoXgTq% z5RIlFFXCyuDttY|G6(UJUb{^A+8QczIvPbs_M_=mGy=Kpn6eqP5bzOmqn zZpD`C@(o}ohI-#^b50Z_tknQ=7PdPk(c zv}+f62XjwR1f7g|($eCW!up~N!}qx(N0aR6YiCOYul^f3avVbokFg0s)X56bv+LGG zOB!L(#P{M$0#!4-1G3~w@%ZE|&?eRWK-BV$q)bpaVSVVvH2<9VZ-Jq9B11)!6(IuN zCrzYthQrE=t^!ny^%f>8kI#yocySDDLq${>kg*LnKXY|v&A=PWtXQ`qA)y{Wa*X}4 zR;d$0QR~3`2e!Wb>i)VI(1{=>_;Y?CoOsbHbHGoGGIQ(zrI9Clfy(i^p`itQYI~*T zsnqM~;jG5eJrDlDp~kneACigKNmMLUt~6oHwk`xwp8vI9EwxH-A^g7Sr+xSenlS-6 zJCE7$2ul-;^~{nCv-sieuyGZ8F_<@NvQi^ouI})r2$TlPvLjPxLrHeBAkiHI7!OthSGU*K+kku*{<;Wn$a)5r%kJb@-M9}fwnla$r>v03 zan{SNzd8c~7iU7Zu(4-88TNBSOFnk}TDCaP4vwVUoDRK*DkcKDs1B7dFhg+TtgGj% zi2a6tX#tGRa;;i$aMq+aVt{#@t=V@7%)cgyj{(H0`l zjHyfD&LK$c}x@V^L%*>Q-Xn4QX`=$EwKa)EWt%1Nxn2;9hcg;&3SOZatV=xO z3}@Y&)FD*7-POdR);rNrQGW_YxtlI8Hvivpko_9+VIEuCLHiEoiGe$2@}a)En>7O) ze^kEL$4~8pA5IrS^Aupdb7r-0IqKj<=qaZAph7djV*hLn`jrxXMnKgGjTiz%j6GKf(=D$_|rJSAC4tq$u z2>QA&E45HI3};h0XE!LPAGBcm`<*dXqnR4aQL7R(^lgbYXm!`kAzF{&Iw0O}`X_E# zAFvzV8u>trJ+FF#Xn?lLrnPVp)Rb2AM4_0bpn#7Hc6{8E{py*P*07J$+(p%+sW6aR}p9j-6<)G52>v z3MjkmuUiD&{sAGsCf-*^Pyun=mB)CvfD0xHf zhnqXt9qYW`FjO)mi7(m-tUI)JHn4U>SS_^6r7%F?MnhgDrjwP<(?3_+Z<)b41{liS zQ1MZXS!1t5mtqHLs`9VD|CI<;KGM{;OW|U)K+EDJnXe0Ibspk44ZKGi>;Lh47qrw6 zTY`y-y8IiGuWSBCzWBc7k{i5EOBug){uh9im6e}Ae@-ml7eQE7J@?&TH~gP!v(wV$ z{)pN?+AlyrT-Vj~1ETClI2lv=J0}8L{33p5sn$(AolREULHP`T`>|uZJwLWXz{AJC#Z{2aHgHGh9uYqT z3ECS9&vpuI%e|5qW{r*qQ9Dg1zUs{+PSs(iA zaVeWJnBh!Mn9RO7|BO zL1RcgDRpvD;m}f4Z$4Go!XU`ORl?}?>i(bgXC*p+t$D=D)`TXGgq^xx#ijRf5$q~t zAXL6pJLnpl7!72@S*=ue*k16CJ3W7#+(Dy;TYCE@MXTQ1FP`nTq@%-0K7pUJ>f!ox zZppB1<<#~kC(5C4^CtT@V+yMThnjTc-gXqvR-W;AR}oXN15!Xc8|TVK47j2(@i^!0z}4-EBDN|om$J$5*^H!`k0ZCHru7!^ z0rKnSnwFf_*u?Q|lM~7J7Kz-RUvndAL88`K9Zxt4Sm`)Hi7-7Uvpg|*%&GP)6kntO zz2b4{7r?ZC;1m0{l0TN_wCJmb8RIb5?78Kv1e>fZ&kCVYVeVBtNI>98KD8(P;%|#) z|HH=1Pte3z`Y5C48UbL&R4?gDq}Zf-d@^!U!AaG(g*VIVg_YewW`WuaYyOhrY*`%` zEFcG*U6Pb9N0-PBy?31J{r*Est9JgUPktSPxU4tEIRf8X4uSa6_UAnpLf+?PpzU}f z+0hOI`Q?BI84RuVtLHLT`)_b@+Tb86H7*M$8M9$xVxqjYrkSIOg2I}A!BsLT`KlR% zyc7YGNnJ(~S#|Q)8a}Sbn}9WhF%uD-SElB@N7r%ky+Kya{MHF#N0C-UEOkfCgSaSbT&A%wP-qWouDCQ-1QEFL2|gHF3|=ckN5 zc(ig_XzOn9aii74s?Lz00Y9WS9k+2is87qiiP}&j{4~Gd*IEt{<0AS;bUXC+g<#{# zNQ(V#4YBkxzi=1$c9lDEeexYIu=MK#wZUSvQjDnnT&jysXFqEF5b)*|E#mli2mMIo z7u#!ViT1jr#JT5xy=+r+ZzYLLru=LY7ROcZYxMhdjsl+A{`i7)hKckX`HpE%3>BDa zfxgF0C^%sjjdVNs+4Q?tZ9N>=7BmJ532iZC-4wk=T%rP zJVLwJ?&MSf`;T~mp)<=75n}c!VzZO#dWP=%tr1Wp8be-VEo8E+Uaqa4M!SJ#q$+jB zykz`o_okSbdd6?6Z_KMXHi!U8K*Fupq!Kb$7wHBrFHQWV$yjFB37L=`u;xtInW^AF zfgT|PC-&&@aJk7qBF#NHSNykAT`Q~8zEjP|0FuIt!*NY@r1h-!rr6_Mi+ioA+{3?J zc+{Qs*SA|Y%UuNl9}M!XcprQuS>*dt!iNj>Q?^RL7ZZJOy9^Bt^}KISR}c@RL-@}{#o!x}uzb?re1c^99VmDSbNRq$|Udon_Ndg{ZrsQ?DfGWrrUREI=8k1H~BAXCw~tIUZq^s zMe>Z!qMD)=D5bJ*Rq=~6W&-!s_l@PKd9i^g{KNdW>MQR-fiY4GYh+g6VFhHeKD41aD6|$3WlH_$Z zhBY0-|1`9_?ngU?9VmV%6a1)^lvMXc6FGC8)9bW@_qX>&BWZ=idZ?uR`J0A{-AlEi z(i}oV|-aNRM&^>7Fjt&X?&4ci7jqIGS$bw1AiH99nlOLc%!Z<{47dYFADNaT_O<=2C9A zY&Fb4K+T#BlMeHWI+koKyQ*5+ykCA=?&hi>FxShTT=L866vXb8l{&_j?r}-{V!dEX zN#W(8Y;;=|)y|D~vggw#tav#okW|*0ZJJk>IK0mW%Z4nZwg~tO&02Bspj9U6WKA{< zSj0^mp`T;S)vYx|Ld~6ZcA0g?U8|~eAhh9)vTBZ6?@dYn-Tnit-Dv3#mpY}3XUA$F zw_t5d_t0JT&f`hRvT9PAl$@L!W?)D_91nRla_KrRX3eA=4H;fe%!JE0e!7j>#~V9m zJxiGht@(!*pr-%&ORM$uG_G%aru2tp*4U^O(9p-N;D zZEd;Aim#888WkQ+mG6v;ajavW>MpO1qBI7eH5 z_RbE&W+$GB7IM55zZm)ozfy+dT)NpzU=VkZBw%xG>QO2_;A9WBsWi{6rWOd5z8VCnsQf!Ic))+ zEgBtB3%*gi1uO%f{mh*Ho&4!m6LaAPah5Mti%6xEo3y8%yRSBojY!n^(ENtNaqz zLMWp19mLX{Xktz;ADm%8%|3>SQ|0U$*_yP^xz48G&Ukj(>79@mE}9arTTNeKao6g> zR=2Q!@2NGhQr{zsns$3PGkzeOSIe=nUuBf%U+V6@6`%oWmC}DWZ&{2@r07bcz^P{n z*Eyi(mW?XNRox%mqpA7%y^QQ_JlnC6rLKV5|6(`34u^jH^OUeeX4cYtugPt|k@?nQ zbFF!xy>h*2ZA;h2RlpH*hIirdZK+eAlcQX|zJk`OsCV)4Ouq&wIq^aPdhe=KvnqM! zDtezeyl`{FW=K#)8~Ne&Wgp`HV4QcfR1<949DCBRkC=VM;pk6rE1}eRTo;H1_#+k! zoLbpaCSGji3nvp3^-U@>X%{W7rc2`Aqtja(Q$ozjXc2Q;yXNer{%b?1#&>)EPvX8i z5TZ2#tLq0B^6(a31k&#M9k4DmIJild)tP3j0@;+=LJg3RwqBr?p}kjq*23$aEa1{H*}BOLu;{Bqbfr!f2x>o z4P`baiR(NCd^!(8mfhBu@4>T2n>^1>pMLGC^d@j?T4K{fBzx}M%nuk%sTn|7xrr;4 z!Vw30*Uj|1(v=LM4iTntCP^&ryjtCFEAA!b8tSQZaNaDf&o#P^H?~q{rA|f>gOFww zg!%qb1K7Ld0FSj*`9&h^U~7DMhc=om=i1(bzHpI1L-S$X%rRI zhCImQB5C0}SYgW#5>wZ6`O)kj+Q6%|ENia0U_E5`buEw2QNt3~_n?Z<0k94LL;YuW z_Wwhe9Z(3C#wI88a&m;7(Ezem!qfTjPKVa~&1%P^({y!bL@LX*rtn|>=_>%kjZ)s* z+7j@(xd6NhmsuqMdb%9Wl4`wNOPZUTo7L-dW78x}f+&RVua&H#+eyH@uA$;VUvnvF z;0uQ5(hj6X!FnYNs_{C*&cQ-3=>7F_eGr<~>+Qnn<9Rx9XF0vxenH&?2KOp=0Dz+q z2XLlv(K{D-8*TURTY&zZu3Qi6KbvL3=tETS+F=uz<3&%JLrRNS&TPkHG=ik!Ws@i8 z=T_Lwc)EX&83b~7_F^}oq^WP+jQJVjC7_88!5EVbdooFG6K{l4qH`G%BS87?607#ae1o*_(XU{{K{?Pno6@P zL}WC^P2eQse!3`rMTCe_8n}-Sk{V+TZ5qDt#sVuZsOFVy)M>Dt=@u82tP@r;s}{_r z#94nl?E8!;!N(89q6DC418D;WMkip+8Enj09&h*d#K>f@8YzR0udLESuiR7ryNvW- zmTvsZE`WZH{p$3xm0mSNIq$%f-8ZdPh;i;ey z5Q|b#j?P(Ae5W2>Qd$$aQ<&6;3v;ON)J_ROw+1)IoIq?sv`e^mW*{F~?yLY&k|L)g z%yfZQv-pJ)g=H3klb@@<8+;;g>QPNSQ10g>XiRU(cgo1E@_5b|`Ju#3?EsyxWYNHx#3odrTO zWO@8hVI;4)=E6FYcMY>1iN!*kHD!f$!yT~7@Z6c)jO^qsPKYU^JKZa&S?po(;J`50librt49oOg?n0@W?C%OpjYfwNez6)@s!< z271A^(CaqjQu8+%CHU?;SZw!UC@4%{^#;=m32;vIVekcUQot{r$(O1}c z(NskD&oSd~|ESkseeu*L8%7vR%)wuDBq#2h2&~TDeT-ewEjxs_Tdz)cn#u)EOnRMt z@;BR?HV4V5YRC`}9-K^RiJBL(TsrO^Ws})!#O^?u(#;Y<(%+4q4}2$vwhbPkO9ta+ zFG>5trKPFJpN2eXLXs(t`LJg48v`9eN@4&?kT;3@zAw!fMoxkea;CE5(rnj#FdTtEiL6 z?g^strS1yjNWx>mZ)=iLC`gL>4&53R)%I7beK3FI5LQlE9o<^C*~rY%O)ij3HL~9d zfM!ED05;_Vx(@@=)Ggw^xs4wC8~Yq;rv{q{u4=-TEllQk?x z0iNB(Lp`hb>btfM)gZTY?PY?o0EK`%YcXlFZE7Bz8Mko>urcAG-|n9V&r zEy2Ex{t8ZipRQGh8BHb&VOX+^eJn-}&m*4*p{+wJxMdl?rv0$!8_VAq;9qvU)^;Ak z!sPGCWP^sf^~mrKE|LF;s&k~^^=F){s<+Zr(1+2ivb-Vag3UxZIA6cH-OV80D0uCO zm4TC*q$#9Fe|_0ir7jo6YRpri+B!REcico+QJ;OB5Z!!&;PqMVo{diy5%}$2XlQ|C zmJoaL<9xcf21znYNv?$$+Sy3wx!_>Myh%$q>Pu|xkJ*}Vkn}na#Bf!tr<`byr`y;b zE(oBvUspew@@(SfJ}JiUkkZfE@P} zBDT)=$ma+1za#&%c^q4F6}Jvq9`Qv6~?Igk!PX5Iqz)lTF$-U~`TLQ(0%G<-~6s-iM1zy*fzo11$=zn`(P zJY=Ay#HdgiLeIHROWsk7A7dbrk3DvGBOh>BHyvRu(yhMLch0qtjSH(vkdPGimPwz7 z%n4hVdss`c#H1sj(ubPX?rb;}%~wZR)%*PPcQu7KnFlNe75uzDInq?cTpRflzsT`x zV`->~LtHh{tKWH;6&dPyiNxj6cG7M}x6GtjlV`@#m^l&dD*PFI zMyId^u|~xQ<=-kMPGxu(0>eOyt6cVlP*wgu7X_FNccQfrQz#nCwMUSlkZgr3%tFm3#^b0|TS%2Cd{|<>CoXUBF zO4H0VYJW7k?&36OC~75;bHT^^5>2g+?eE%H_Gbyi<;rgtZ&?tiDbtA*OiCdun=t*e z?NoG5^H43&`_`{s)7@qRFz<|UrkX@=@$|(2EAemp2poo=s}syBRhPx~70svp`Y0QC z+(_mXsLGPT;8GlVI=ds%(K3T#Pbt*JDzDwU-Q?kEy7WaB0=HygEk3pgDm=G-v2d83 zSMX!5viXRRGwosu4->NpyAQFngO@P(f2BGPh+(MHSX#zMx3+$|E~Rj9a2)*1O1y-)d+RNg%Goz0XC@+^YuoM}Qs z$?}=XLa}qiNF4XgWE%0+tkAmpvVcjPv$vD0h}kFqkh+LT{&c% zt5DuB45Z=WAW7-$`pmfi@u7-c15tji*VUiJ)LZ)|j7~?u4B|>i?keA6=2fO`)?6Yd z)J)4^1YMN9{zkI{n3yKQ%VrgUmjT8C@Wa4S#qzz*pw3S^#Qd+wc^T0z)R-^cp((-w zBBwL!2*=ri#AQ=2+Sl(-T={;a5wzB+9vjTvqEX5>q*Y_8i8-W>HrL{8+la3j&md~Wex$I`dD)e!Ycv%HT(*Hgg_~dkT(C0>uq6`zk`)yFI z+kSz#xn$8$gXtFO(*q;f5XxE0BZkH+X`}5I(_bWCH-=-SII}aRz%T=x^oM%VLL$SH zV)NS}z8EfUPZFq8f~-M|%?iGepm=OTqWt^IZP7o*J1%AB%29fqll^~CqNr%*7N29- zB@zj=NJoQKe11zugAY%{6ET0R_>6V+@>*P$3LRmjP`_O?B=ku4qw8+pBqi*iDV4un z&e`jJ%7eaxFDj?gn8>vnS(Z>|y2pD<G>1(f#@N9m6Z8eX*L$KnClr(({x zV`|rxla_RPuO}Zv13`~DqqZ|mCuQe0=%r-o2>XD+c7wL-Jd`6+En-N)ptolzFL~=w z)&cb0it1S%Bn) z&y2t>eVLwJa}#$Z<2E;lp31glO)>87@Y%?p?rtv2d&WPT<#(lhdS#m4_X(b8{-Q|L ze94~4ip4#!VF#a=vegM|6$ykFSCC_7->^^`VHL8j0RGFC3x2Qn)Dv&IEE5#kqi1)p zX6PpNB#oXC2kwYz%$Je8CZzsRTKLPYu}eRl_-Hyn)M4bwukcv5y!uC^P@)ySpj2D+ z7n->XIn@9hO01ln5ZN9`&9I)H@bz+x%s16FOq#k3$Qw-0Nw;SibUf#e)Nb>|N@WHB z(K}P`vy*^qCw8A4+_`NAu-zWb0Xr2~@##jz1>R=C=XgP!H+BV3U(d^&R) z-6X_7xO4^7QY8i9eeTC1^^H|f3GB&3m=OA={UcyK+FxUm7!hDDLoMt$HI=8sb(N#d zkd8lmdba57^qeDc6Fc%GgPuPRA>J2b;ANGBS?l{T>a!6e`lio{77oa*kudI&_v8me z((q?dyDB@TbP+m>&c~HFbBs8%c7#Z5!+JK^X>q9QyIpt#bI3Z=OmTL zDdf{cEqKgg6U} zGmA-NZJm@}z5P&h+@F!LizYnu(|J;fCke9L89Fv{u{_!8%&#+FE;?|!GRkDcW;w=` z_Hw8!?VFd9xR$C(o4oGA7oZwXT35_-{~~#?_f$%xcqXRq3v!*Pm}2mz&Zx$D^0~fL zL5-@XS!ejtujRbI;kU9$(+dp6=LYhw!f`5>&r;$61MA}KE9dp+x$RS(#aaUBrN*U? z$2pYcfk>lxc2Uc>PRp)bL;9CkhxUKS{r`Qpo_~&MZO+pN2M2&Oc7N@CzYp+A*fn2) z22LP)>e3yeUH-y`nyoRO@KmijkiS6 zeXH1HQ;%I)G>|p0{&D*pibEjVCC;PR$N&C*{PPNExF;42W`HWc^|f@5)m@85Y&F}q zFTi*h;M~MvYU%bThMWdMQAO+W!dXTzx1`3W zMo~JhM?Gw^K|^yGGy@qyYxTiRB{Pf*!;3yCr7mIc3^VN#K5Nfa3Ig_@8BSbmnY(?9 zpOU{&5Kd~&*{oyZ6d|xmoTZS&X;b&5s~2o?W@D{2>9Uk@j-4}jX(-md+kS@QzJKwB zQ*aSlQqINyM9P{)Hlir%q|uI3#bC?#@f@MBoJ>$i?z>l=R}iN(1HE0}`q{pzoIqLE zl(@2eIc315LuI|QQv|J>Z5&ptqGQOL=z8U|*m_x(_hfJ#T(>KbY!$SwRp|VP{nC6O*F@q|j&BK5an2Fr@wjZI02%eS&kWa{ zbif$bNw;^){aqj7*pZt%oPD!3YC5R8z8Qx-me8x!Om_MT8ERPxiO6}!M@!pD@OBVc z3s++JD9vl=48S#VOMWKjWm&D}lBoH}#SrylKHZ_~Ep8u+&s*R`z&lx0TBFqVv4oq! z-YZ#!?vsR7>In~Z2rT=&knv7xJssC9*$62TGHTQ%_U0#{$ASto8akhhy=3w${s~j9 z^iLR7bo6Sh`*5{h5hnVCMlX3Hg&9O^NT5DJ$z-9Iv)s^2dQD)PA@9?o;u7rK$>kDX zinb<`k{w(yd=ruFn}K-FKZ>eqG;0+TQ*yRKcR$Q8NKgurLTfTA;n2|?h6dVqih;v5 zui0yUPo}fr{|)ovZ2Z;nKzaSDrJ2~q-7f^X4?f=T%#X!!CsS3A3`_*k^2*MbDnX(Y z4TThPjYqYvR10`+E znieP&RCm2`IsKW&A&lkhb3DU*igMJnY)Xnni^+Y6CSO*a>GdkGDuojh%`pp5KB2TA zrench!JiRfNSXyoHfMzxOwC0VfBFw!mz2Q`FwZe1NOsv4#+d3w8Uxr&`O1L2ii6DK zvs!}-aOkG=Bp>&@<4TG%)+9OHJ+I3CtM_X+gzwDE+;99bPlH=lt*CKX*_`L{sC!mV zicQ1(uqjt46x5UvF9dYCk4?Yg4WJ5%_cm=UqgqTr%lUAQ3PD*+ec8qKl;zzwx=<92 z&O_v!$(a=eD(s@;928Yj{@3twnibS+;Sp;xq4}YYxu&~md^fO7KWgOb!!s8Xp00{) znb^1XycC+r*@{%+lEq!@ZRTFRX>B7M2+|exjRU(7#`}xdY z5mHK_d3K=WAke}TplWuC0q5-w0-2$ad5B^!5EW44Oz#Ezg-o=i>2NTnh`qGo6OR;` zHtQ+KOSV562s=LG*GOPRkG$Reu9s#FSH#ls=NVB^(!|Bu$zQp_t-hXM@2%KpwK$;e2cBvJ19bL|rjO<}#J zA&vn_npM(+g(iC@>ASOO*pzd|6zxSkE8qQWrcz zseeInuu;_(8U*ny*XF`=`PHdUt%J6&mM5bIf9IlhXGAOuzAaJE%Qt76?Dt^kxAO-j1FN<0`=?+2p#^B+w%*<1($P9K;S&F(^(~okUHb5u!|@U(Rjyl}KDX9Y*~eJf zjkXV=L3srZ^=DJ!hn|F)y!G%)TwZKXLsH;oyc5khp&t15hm?*%SCZeYA^{edotawM zogSyiqvE#p*~Ql03bYs-O?Hwy(Hp+q@0$IsYs63>bs*wcqGo&zBcE4}VpP3$T!5ap zzgs^M6w$p9?}?z^9ARD)d^;H5bC8u+{iDfx&7j9u>F;qUsa`tbf`VP$a-Q(t8%EdZ z#-tTz*4<0U!l51b`0`8d(Zvx)^+V+$C(3Rb{V|%4^k`}v`#8N`e-&eLspaIVU*Q-r`oZN<)JKVa6R@)qNjGkOSv$3 zOY}z7*K~ao)#MECKZf%Jj>MKq;)u`dg4iO(?swl{OW#fmr3&>~$FAvhB@u%r1LZWz z>0Oe(9|1%&dn33vaLDxP~~NY3Nz z!zM*Wj#34FQ{Vc<1qqYmwOz#5t~v0;G_Ye%_E^E0g8NBty_ZtQ=w1e%AZ`|6&D+4z zbeKieSj_z{-A!6w_RJiIVeXeRY=y!0d}l)A33a*YP>=mE=1Te~hl`C<*wT^bG)}pC zDfb4oqhqXU{U_Fcuz-!hc3X_Sm0Fi--yK~APJ%^qRi!6sBy}okolBF8dgMZ;+~~T= zY@an(#gX2ex<_TvmxHYF66`Mpab8Q&YvwGJmRx5y{SbNa>dlORVd;@8_!df#8!ecO>+Xn3#|LI>B*V0z&BRRs$sG**ZuqG?4z-!TvO(e>h z@{AxewBCjrDbG-Mu6?wUe(yY(#XI?#Q2>&ZO0w6?MJ6H#s%2QpM|(BA$591sL7vBsMhkD8Gw(z3(QmLMe`nekMH3c+K+H-f;mm1>A=3&9=8OaDJ_5M+I zFY9+d&-S0c4UNq=iL?Hja2PE1BHYg!s>IJX)Hs1p(9k*z*j?WVN9ezmjy-5&LsNebEEz6X z0o~Ia3cWiPy*~!}f$j$Hb_VmWKQKO&d3<5^Wez~TsQKG!!TWyU{ya-6oPy6r-)d+6 zey2Yfz!N8d;vVmNFO0=m|NbXF`xO@#7uX^fKFAje|6`f{{|A)dztN?EHAP23S(&1& ztot68(QDTrx8ibPsf9U%ipzq4mCtNIMmd!^xUdq$=0kqLOkbP>LIemDR^Z=0So17g!R z;&IjG<1gK$*>PfIXmcMR4w@hN0@u#1*N9|aa>>-!oO2>Ej@;uj$RK`iy;yFI`mGbU z<_37LZASVV2}{MIoSNz`UYU+wC642e1Pk^7AbX+me3KLRY6r#3+Xrk+5~^X*@)dJ@ zC-kAY=by%W2H!tP0tyYWYK^`bl5MTsY`a{X=qp6$Tx0Bjw!Tdp+XQ+4pbR>GHz~(? zQ8WYGhnlPzs5{evG!JYx*8hVuD6jdo6V##=eQa8Ge?KyLV|ne}3i>4KjX3OFNZ_9M z6*P=6+P!OpHchH3>6)I~RYVsvr?eKBbbo~Ke7_|mwM^PA^`)w)w%Bbh^Z){>9L!Ea z*Iwnid8317^YP^GtK`zste@r)G1&K&B+sjRUO506>A&&k;_104S|9_K>J=PP_1Z1B``)7wqD4jC z@X&Rk8z=Uwie*gW*@R&E8`7LhAa^m*xfv8zTOGNHj^apA6p#fZoj|pClc4|uaC_U1 z%bEM3gN~L__4`_U+_MV}%}f}g#LB1{D^JgazIQJD)h5k!%K9Et4galxuq!k{F0LSQ z*yA@KH%;*V2HzoRQRcA2%57lhu>QGE>n)N=?zNf&Y{9YjT$~b}X;1V2-rY9AIBY#R z6NL5zCE0Dy*Myd)w%Dg)jC^XiiCMLD#O%b)Pl24V5{05MN@W*5e(c@*9}RFMTk~sE zE@9jDF2snR#du!M5qVnV6GI{-h0Ody^cOVbntfIEv)C~=ezsJ z76+b1^bjn5*%~K>!DeQ2dZ9$QV49`w0wk%Cn!h*235mf6lC%dq+yRA&3LPtTl(TbX15J zH9>{K)2bz^tzt!TV1~E!fVn0Mn?59_#57{I(bZ(ewO6Q(8+eZ27Q$GxgCZ=|5Vm{D z?HQ>NOSekFOG;hYj&Q7{VU4@1DsFfu+-L)Q_}&RU>}Hk{uDC^gyp&^%)X{mRLt|11 zcUj^D%{1A&E;r5KXQW!Y2_!5DBuP#O7i>KJti$^)w&%uMn88YROoO{vE^cIJVYvpf zF}>|!v;yEYvGPh(dNeRL_*w;01W*KqcDSu(4=x6 zXlXSI+2&LIi}Ei$vily9SYHkrU+qKusA`KVcJd6uo7sGjAOK=Ep9QxXIZRG4jc`f4 z=V|=W3E1rs79*<8W6J951a#)q&)!>IBz12xg6KXp>UF@=bR)3thk8)^>^#;*)9R7VQW<1rVK8bh_vY$= z;%-ap3ODFsltyi}i{9sfjv?1)+ce_)4)2*m8A*XoliK{2!w0DU0Z2nY&tC)ej(f?h zs_SZMy%rXvqUB^4zu&VcMleN#8V4k<4!-FYB1||93rePItCM9u=5B;YJV6coSzqe| z+ra48)`1uvhH0{@7LM$R#P>OC5BADR#w5fn{b;H^ogCxX?7TIW*vdU(RH9N!74AYd zPsrGKH92KvUHC&aWL~pINGxMw%{!t1Tc;xS{naF~tmkFwT9U(i7*Az){yMK_?s%W( z_QLGe+?{ibTT09@Vr>F0Jwfga_4;DtWmFDNGH#+SmxB5M?e+oF{<1D-s3u#~6 z%aI=G$NsJUjJXgF@96<}J?pcbY5R5Sya){Ut}ybaJFd36MFl??cov%U=$7Yrih`9^ zmcg8l9@Pa)j8FeiCnLsV6PfwbD8VB8(E<}t*_5cCLV({6;EVykt&*#46{}4HB-J{) z|7H{Of6AgjaN@t460ZAp#!f{5kNr{X`*WI2&jD}m1kYC42eUorOAFAb@ZZ)Z{Lh=F z|DT@kUzN_is)?z!XW$3zco*mHWg7~*+YI);i*YG!?!4`Ycw&56^9saJRy2`F$iP|j zN;vO97!|~F|M57s3QhrKV^`Hv1bXSi8+H>mKHMsJ&PgY2?tZEC8)FzGa-2z~!vFN> z+<0ds@(XM}COa@^;Y_aTHDoq7X8G)m_4;@tUH<&x;^vG_pqatJ_c`DUmJ2zrjgJ1! zWKsJkA1$~tIzf1Dc7i+AW#d+S^Uz+{k_{b|$J)SPiK6dl7UNv`qFSo(Jny?WFskS! zS}_;{xyT0V;-cIivAsq8YMjRd1UA(Z$yI0do>|Jp+9kuy<$|0N@0AWNh_-8|J%c=} z(bj}cLUl^L=m441ou|C5LvN2^lMGW>7Z|i?h@DnV3p zPA$OyXa;c4VbjUA<3@HH{Xh#!nB0#kP zXk=i}ARnoFaCi5oV6RjEzNZP;>m~F!JZqAi?^BZd{_CXJ`xC#Khx}42zac#GI?+N4 zA$#u{%zKlWaRq(Z=Vmp~O7V2AMHRm70M_)g>z-fFd-uYG{C1C{uh}w2%AjKUzGhbq z4YM3h5IL>EdQ;NIn> zne%_>M)CZG3}ZF>c}Zan@)R=6u^{s>SiqV^@pblK7r08ja5gomAl3G)Gc3#wr$mwk zH!6mmAptGilAl)D1kJ6xVpsQwF@a|=KIt|3lpL*Aak3*8b#{;Ey|}7!0>FmjPb4tj z%rbdrV9m9B%NUiEQNZRaDDEv7HFdEuyrp|KFET`&0_=QErQQ$@SQsXv2Nd4&H)3Mgm$zQ3#nX`f$zYvP zO6MNhNwjt86o~#dhGjrB81RkwK~eK zZv=Xhb!0sZYa&?wbWbp0x?Z{!jvIY;Rw2lK>zkT&-RtQu0}fSsFaQd8DV5y_4p4o& z$hWI`C$!L{pBYfw-Ii(#n{%(&7XyOyffVn<6d@)NmeXd7sy*EiYhjAwEr4=x2h0;B1s&_fY$&_oaXTgqHj! z$KQi6TA=#9oF;b`$4=SAkE*X3LO1R<+yoQTSI8mYI7{ZCsQpRp0EfCHnwBRlMu6NJ z$ma5|xhwzh-0YhIn$uIcRIdV`-n}5_frVxYa9EJ-L^xA`wN9`;<$=qL|QqPPgUs zJB^216tn;%SSeA-b4|`MwQ3MdI#2R<8M}}7UXP=6@TKO9b;px(yOf|*!)M}UMA_ZH z0j(G(enZrlv05jOcJ6e)$*{19)unOqm*ZU^y$U=K_uKaJzOyeZl1{AI;~=`IZh=-SpVdZK0KRzz^TloeXkhLd}PlLjnkAO z=Yg;==fVh-VZ!7~wm&;P&;pA_d`P@W@b_yN&JB_b=L0ERKj~qQK0U`AHh}8CZL{_l zd^Id2*pSZlRA{d|V1g^Zzlb{EN5w8j?Z7JCdXx&js+*c|d&07Wre4ao6HK^wdgHTJ zgn=#fN@OnLV=PF6#gSFB)Cd`B=hln*#G~r#5$2O$p~0UR&G%DSf->uUOr;alJe%IJ zsBFOa8gmNA=a-KzE{|mb`R0E2#OeEt#-*4G8p>^0RvZQF*JH=q5MsZnT%KG{I*t-2 zGzf7RkDlmf_MTW!ycCBoa@5jYCMLQeM@ivLEE6qqiPEgYvWJG7GgeTdP6f$}f2F^v zW@Q;Bs_OSa;68o+{IQWh=+`vGO7=ief>AE<%M{g-Aq~x3Hu|AK8AXoG|59>wxEqKO zfiHdXw z_Lzku2)aa*H-uH(R^DF-pkKmg!m&1%2t8u3c`vrlIlO+&UZsYzTTRX_8w57;JV}rQ zw&KS772G}lEuIC`8 zDmT=1(iNkv$Kc;+Q*G%$bNDJ5|LJq`&rx^_bp$8Ccb9_yt1G!``_zNK*_mAKfUmx{1c~3xPAN7ai z8BRgbN!HpZA~K28pZA4Uj>P)99W)*D?ZFip=@rt>ee*^Pcb8$4yt|jiMNBVrbJRa~ zk3?Q20hDXDbClt_kp3^7f9Cnv%a>Dnwtb~9E2E-Cd&X8}DLULbzSt*`U5@>;sB0ZQL-fBpX4`w_&48BRZB_swD#{@SzOzXh!&B!2|PBv~lN5)%|#%L^)N& z{E;(TWTTunrI&ABvl~{Si(x^$dNKf1n#1vYDoqn}E zd=qOfYJO3QkJTHaLF5PUuPyizpw4h;ii^XT=+I?t8LuKd;RR_r$GYgyHwBgUuDn%r zP=iO7Z^-5I5W5qjC`|6?+X(PzMC|tUhHFnl((1 z0(MSCG&7@6qQ)mB=u0)qXn1nK&H2P!fCJvlv5Q%20Zy6V!6%l$U8QVfn03i*zB1vs z_eBZvAbj*ZavD#sal?t&YLyP6nRp*!PAm4>+wcs(G`Wi|*1Df_Kh4&bY8_&n|5Msg zAuQAACcv9ob@RCI=e6k#WbR4i^n4V|6_v@7=R{p4pM_e zt!xBv4Qw$^R;I({gnjc8TV#JHgYO?Q5y86Jv)u_=z{DpdwNS&U&hWVje{K*Lr#9Ac z_nwpq)XQ(ya?9A&NU@Q>sWhH&Y%j;mKbvf|?_vK++%M#7GHOFIoC-W9yTUAvWj~i6 zf5J90N5;}SDsaoUxM!x^YUCp1tTxyNa`uUVA3}j|nr`+YE0B{G3W`6>lTOri zyZUf9kvtRLzX^WH&AvpMnx47mT#zj^u|M+IiignKl_hJ4_LHY7o%vwKvq8Y3VBSoj zO5r5O!d?LE7kQOzwiJTCRR1eJTT^ zCvL_intW!V=Of^HYAO)Z;ml436#+267FJ$c7ll*Hq;Tn5+C5&;Yzc%{f5T%A&Cj3K z=y%@m@X)tZ7zbk6c-euWm{*+z`PbHlH*IX25R(<~p+mx}&+6gf_d7Qz!hcMtT4W8M zy6j+i%?&P?QZ8o8^cK zb}T*m#HS=&HX@j~T)UUQ#8VlT?7ajh;I_2gX`_n`O6(?Gl;RTXCVT_pm~^GWia$38 zFwKqMj^Hh2_dH>@RprqTh1uLZe|I)aCEQdeY#K!F_pCkAEci@}5u2@l1KD`v|7!2N zgPPj=bq_YS6xka@niQpXsY(|C=|Or2l|U!~q(}!*6a?u3La5R^NDUoSTIe;QN2CcM zlu!c!ZuH&zp0nTk&VA26_s*P|^Y6;6S(#aD*6+8z&+~kq4`R-O1)Gn@Zay%x*W><5 z9YDV_VU!4h65Pi zJ-M5Fy{WTE>+oquYFQLN zG2h@U$eo@p=g*hYxWl;OY(9NE`t|LnoMOd=3yIhRPeM{Nuwk~fgX(v!q^M@^VOCu; zt_$TWobuSb8W1XKSItAkz~kWX^@UhKQHC)?qz8eHE}$&0Inw|vvLw>ZH49DbFgH_Z z*C;DZ3CS22=pq!2ylG?q^qVKkS;4!Q;K&Sdb8HKz%#u6W@({f}@e#Vab7EVX4jK5J< zRcEmdEV;eA(<8+<`9tU1c(T{h`)TBhrPLbLL3Q)<5Bi;wQYJtXDx8`@{$nV;KUtj)GQz>p)5__OhM@ujy!=w8HHz-Lvp zhuK>3BjRl0;;Kz>d}D)%*ffiLC`W-3q>tWT$;| z|CrnMWT!1rGWSKGWfAJ4H;WRP!gX(N@jabK@@wVVzSu{46nDqj&b7XFH^KUCqm*wR zSclmvZ>6FqgP4NTz4Q2MwxL}?{^Dki&e;f9A{Sfj5&kl%X3j9*OzR!OY8pR(swL^; z{9%9P)la6hH;n0v_~3N~ZIkPVRZ)idqF}VkZ&>0zIKJ_-HYR~Q?h}|rN6h#qR;!ZI zv|lK2y{{?FDJ?9)qhz=?qj*3ACutH8Je7wix3Liea| ze4>fgzujPJU?~|FXXJOXx!xyOTv*YvdY5k-zu@GCe)?srFH9`7)49%2n&EQs$I|H3 zJI%H~hDPl3^hGhQF4f^ky40MhkEmkxR&4-D%D^ z+~HB64|P|QGy#H(r;#tsuBGLUVnI~e><<&5@kG^v1Ar)zgQ)JBd9SGqVIc1HN{Z0C zyA5HT<}BlDtdzjMqR(w1rp1Y$f(`(Hj5Oyb@i@~QbcP)oH8n~<^^vnQ*X~3+Y9b_ILoZIK=qBSH788W`6g8sIjvE5cq#251f+O~NAi zdTkO0TJET24{jk0-_uu%&`7wwwN}$u))YnEzxnMFX%9(h-`x)!r$FW8?60eb32TiZ zSuFv6Wp7&oG&9V+xgkVc&vr|G@8&OY3@@|UNdzXQA5C;x!TO(igBHdEw#8pG5!(y zZw&bo9_7qJ0QIL2*sd#b;X{dA5S_J4dEU1K?w$?QrWj7_56YrRImTDgUgFEp*jjkK zl-Z5I=MhAJF4@a6)T?pSk##rE_?|F5b-b$n(PQ!Nhc;+Ll(WDmU{pFjr=?a^m(TkOfbRlHS5?* zY$8^;1X)V=J*3sw#>zn^_ij?&op0{a8TH6W^H|QpvGn{@=N#=~AXqpSim}aCH0ovG zTVdGopHk9n`!G=%?44;*@`H?#%AS+o>J}ayT#0pfW>h+uI~rE;skCfJf53X-%hs)C zai6aifj#x{uCLE}4)E5{@n>+Pl=0|Eb>ExBt8{xr9)Tgc&sS=YH*w>pr0$)xCWlmF zVbOz#VCbE9+rQbj3hQ#(D$9SaHI2_1K2gn=R#R%KJey0WWi(4j$4PGvg_sK2GQjv> zV?7_7m`0?kNC|Oc$d3azmp1~H1vA()f<~oa5!t3~Ytmw|A}`cN_UK_OE*^sn54q{u zG#^1S!I5R5}_3l}-_QD=>gV6^M`FasyD!C>vRlVfV zaWkfjk6*FFMW0e{0L3PW!_9Qp3=%Yj|!Zbkc4-HrBPh2N3VD z7ZpaXH90KHpWJ`nem!wPA^5TvUiEbogl_sJq4%Qtic2ue`Zcke<~SzcFVYwLB3dbJ z4`ihN)Z|w#^6(I?6iU|9h&iM?S{D!y-~H-HLZX}aZMiDX%KCrF42p&Mzeq=$gFPGu?L*(1Um;HFt16~P*LI`Fu4^VeZV!T63l&JW_b);n zCTUX5iMy@ZZO}nze0y?NU!9pB{#te5#_Y|8g_9Bn@IJaO5JTK{e$_|(w{-}i*tpd)DXYhGUOss#nHhi?y_MLC#SFmP&Qw`y70 zbRlxQ8Ong?$M~#Z7ufOM?T`Mqlq9lhN{-GXB8nn*Bd+s1otypU^o*EKEEK#=L##`) za2DuewxypObBOpn_w?f}zHde4bp~dtNp|F-D?WARf-AQQnzXf~6&()+k`t?k91uLi@maY>^>8xweIjF&|kmapXIw0zrr zuSYZ48#dsEBlrgjxeofk4fgJ&k28bKUS%WS`DbNk$ zw;SN{HE4nTKU54N>tn0kfMMDZbllIi7- zryr-{oQ)ZI!`$J-BAmbRNJ-CE#Pqq>epV|4l(}ym2^p{ZxcSIBTUi_PtXh@>bBR{_ z_6e(QOOG$XYu+9;g+O69$qZoBswLeL9CkSI1m830e|^nS%*YpRvibqL=URwFGfbC? z@%8ADlYcuOJWGmyLK@(nElHf_LeinS3dkDCcek<(A5;0A1p{*W1^RTd!OPO-d^e5> z#DJ$g6NMN8nz}dREEo;IapiC^jrkssM^>_jFF%jcjC7hhS(#=z;)!2Lk_Y%E zcFJ&5%NTIrKA&@#JsIl4YuLgEKfQ9wRO~&;Miyje- zs~40a1@p$(|FqM`KnOqT$KE$&P72jI$jh$&758M3rc9T1HM}ulR>n$Wl6NuVY2dlj zuriMg5QF6L;qBT-^kV*wl>I6UOp`{6bM}j}xjnE>Ty}GL=`P;(&7A=41zb6&N3&N(dZhu2tduIN1j;awXPg^ z9t%@UEu~H8IU+9z2U$B}-YqDJ5`;*BTrnkbTXp%wapY)4A zi+Hp>H6&Z0zTzZ$p|jRL_k7GmRCB|N22EOZV&;901@av6w~n-u-zy9Vva{#lDo)4INXl zr*+sIXg(J+PMPaOd+rGcfy~m@5CKzVG~%35J0`>TXx^o?N%wicU2GE+hdlP#BmX64(Ryt&jG z)fg0MS#iheedsbq_D4bD31^=?!&Ag;L7qlJ2O%KzwkFvnF_sG>9ye!Ony~3B*j+4h z7ArZfK2=+a4^JM?ji}BI&RTldUC9IbphGbS)L^5fmG&%zir749P+46webuqXi{6Fc zdiU*8^^D8VZUyFP3Vg#A-wjVJ$JWYH4pc!mPu^(CUpT$ewN+I$lFoPnlf-l0m+2eT zm#LPFN?8nZ^_alnQR< zR?*Dhko@HF#cdf_eD<#0t$Ugf(GLMQQrs;a{e=cpk5gu%1EYJG>{=D4{DVMw5u?;u_h(w zZ4UKs3aqMShn|EhkHEl=7J{_{>5Xsc zU%z|Qj9mRRzszxZ$RE)Cu9g@pczKHq;?t60I1`*!JaWq{PN7{pOScJ85-H%+Mfh~= zVsIltp~e_GF0FDR#OaY-C3D)KC(3u^c*q(Mx~bxHulf~!UTZPIoz$YQZI}1?Zq2}J zJ&=7dp*%W<1g(>%a$tu4AavYUQxO@35u?dZWd3x7$F~8)2U(c>^1H;sI9QyQ-8+_U z1Gj0U^8!-$0X`4p2z#$H3rY$yNq&VI;@u_Mwl(?ahGj%n2siY3Bo2=ocWi{yzKQ@6 z!uO!LkD#7>#R_AEUGFlnOUtQdK1G9dk2f+KLU^>Psoyj|0xql9UR54%CAkE=9? zmga8{z}AnsXvM|omN=Nx<5Xm3x2rPX+eWvt&p6F`>5XbXiR{g{iAgXb?d28PpmT~N z;`0`)KQJ#6Za9s>z(-;pjlO0M9f%qrm`62d`Ay-QP-iG)^PtA^)(g__~KEN3xc5VO^|df|kPx@dgkT7zssn z)|q0Kpau!m5n_Bg24KmP52*8*$u$`|5T_*S1o=}i1|4~l2ybZia=G-cG({f5 zvw9#$TdX8+NJ3qEMOJE3oi3F#>1}&6EZKnyhs-^#E+@}_oXa`B>RJ?aw}!W{B1f({ z$tKejT4?JK5!_tA1;Kqec^DE!fr)AqAA%5DgUCFYbu$I$^yR!Dkx3=BFtYxA^3)r= zv<(TDrHwDZ3ecLpk-KBSinicL2nb`D3lRBn4V8|PuFkWF% zJ(*EEOs#>tXCSQSbT&vYVm6PWQTlYthB1b+H8sW_1TRUP;d}>_7(;OAbu|f|rV>cc zo7{s5e(!1e^EP?90{97nkVMA`&0a=3V?E>O{0Gf^zcb`a`q>BHL&>)S%mtGSh9WoR zXJfa}6>=svmc2Ne>t?G;*vZScLJUEyA7@G`~uxvsrp_T30aPhKg( z7wIXS;DR~hI+120!DJ^de^py&)zkB!Yl!KY=gj>!wpq2OPy3uA2JVeK@Fd5djA{Oq z5!CM%ZUH?z!2((_;AQMc3I6CBu{N5YTu5HQI)D;QoW`h@I^m0sEv-f|Ie72wMM-xHJ9be!4 zs+IlQxc{F+;{VzW`9G%+g^0hGg8aWxZaREMJcs4guFpYjf~60RWp}*4*tZpv{j!yk zngVC!Z`^vd`f~#FuX}I*^Pl=U{*&wUM@GwDZx74-mPk8cY<_-sH$MHPKrVOIhXgly zce|aw>DzR$oB4gx0V_2ej_%`?(FxmxhSM7Ups@m40tUn+*KEM5Di2iB4M4=8CPd_p z<|sB$^(_|jTh{@KD4SN*a;e*Ga#GS=sCs4moB;Rf&hp#EdLJq``0$tqQeeDP=XmC}l^jyJl=CG;(Z=IU_lnJv(TA0m)V;Y+L>NT9yeV zgq^Lh?W*lr;YL6{nS#W&dFA_9Xa)N4Ji@bXJHJa;!5I^YbkWj{#k7yeT2b}ztN~Tv zleL3IJ$_%UCJ)+PhC2;1ifAn@(P4aGiV9X~kcKz@azD|uAq?AY?Gl-UHhjmB&dJM? zhN1{eXeh_x$paa^!q_eN!HvTi|6HVtCTF(%*yNaOyf#0!Xk?Gkzj)aG)cdZiZ)>Tu zX?(VYv=uHguPJK3^N9oXk@b&QfDK%~N;oLL&_$*;RBy}$&q!NX;?l<0&$Q=tXb{1O z$s30lb8d)vMfPyk#!nL|jM|p)q&BM;PIsl(&PqJ9n&z^CESogw1{G;D8u)}FI}dt0 z9~7GvFYDy#27dQUF4GJK*~p~P zpUcjmR>rk>N*(kFP3h@LZm8OQwn**BNNb|ULr&pnC%{4OG@VO67&)PqI#cxXhPC&B z=L^dH{k)DVcNc2H6+cCH@>E6z3rjDp>_TJ{fW{c{X z&J*0*8mzO`jkWg^oB~&k)?6leK#AXfkvm9!*Nb%7P8-BKX7~5yIK5O)JBlJt^5S>N7?hvHTb-B>87HJ5eA{-c>$JNHPd9E)ki#FH1@;2uO``5msu-dWpumxe4#!Y65YvCfO zl~$|g&8&0>4wcmH%s=P1alyNvZy6|^spGOe3G>=p!wPc}#t@Si31_7*fVxLsu>oKx z$K`3-Gw(DJfYL$z(NIyf8}l&tiVL>j!NxQ5T@RvRGarExfVY(-C>GB69ybjU^wyhp z4=EIih5fn@fV&8pt86nhLn6jy!w4ICNt*TFV{Kl2%caFf_7~_B^EVRm%MT`oN@(AS z?4dr+D`cL{d2YaG!?sggi?&`lsN(-b!~8^GhYOx(Ih`X131l^hS-dNO2!JOD%gD$e z%gjQZiG5Rl)w)yu=XdkJ2ps%cVt?!K`4+R+MdYQB1d;`j1-}LsY){SlJ^ino`|sDM z%<~WJ#}vtSL`9dxS1>-sx-C%JZ)g9g{URu~C-i5(lrLp`2)C%tmsGjn4fHt{9Tpyb zu@kOHIBma>CC=ALVrj=%0GDKmtQc~T)UN}r7mCE=7Z)?Cg@+88>VsMfF#&f__Z zvHjrWq*t*1$KmuA6h@O~+#MtR#%DJO2mkKnDE@^*$@N(zCt%zxSlSv3kV2!xL3_t>a=@siC_VIMC^>W zuHzd=2sd;+&e!=o-cZ2f7j15Ko6%oJ^xdCt=+#?egP)6%0ZXz|3;xCf2O_HkGXQY7 zx%qw0aHGEt3*H6_@Cy-<0Z;G1x9S=EOWa}LTjSE3j$1ZX#(5@lv3ug4X_fN+{dWGQ zqZy$N3($#r=J6C1%4*Z^?eRRbQb7Uoa$1UEb~wk@oKShG8VKZnbAO3EIA_#jiC`C| zhXy1$+zWvCghjC0ACZh!l0%UM+E^{m+9tHD(vSn!&I-#OF8cY{5Plf~e7G8n`)aay zpCf?qH=l-?KJsYG@39ov zY0cCy%+ahjYj`@VH|v|v2{kTWwxpSrd19dK>ChEx5fa5@Ffaj02+tC`MS^TFpEbnR zF*a1uKA5Z)%%|3oB&&r-m|juEbN(P9g)86teX_L*L0fHsldbNs<&}SHpzVl@<`mfi|T_r;^5llDVs7>eR7g|W+S?lI%vB~hpTRlRCOwETkqVp%0 z#N}&KpPDZPBAV+(qBS*B=rh7>YHsUj>M-!OgXxl9Zcyu(P17u85HZ`oL+|yWWFo-w zOiKKUxU#`Bs1W00J^dsc6>Df}BODvqxJ3zHZ~g-#EMIpHGj{a)#g}<9C6fcifWK=? zh(9V|6xt?L(~N{dgDtdHrlY37>B`J~$C@HS$w=^Xn4U|k%AlM1M^?X%@t{R-iXcMf zD0WtW9B|Mp<0Xo9;BE0bN>N$e9|id?NslDODRk?Lvg6LXa)6{pk*0>GaAsba+FW|4 zI~BEc;Cu>-Xqi+Q^OirXyu=!**zBdchMto4(ro@=>hXpCl;nN!CP|f%ZFEdCITh z2u5DwD16vy-+2}d)ADL07>(3y8GJ1=lP%kY?e6;vk{j@ z3v*oaGHQj{ddu52PmJt<;oYDC3NrHEawBBf#-1rfa_)Q9<0Rqd zH3bbnXYriVdZtE?ECnnA;^=-6_&NW*5w0m_xK?U-MFS&ZJ>@Hgs%r`wbu0#1Pg?2W znikzJj#>?CL9|kXv1TC}QR4eCbDbd zSHX6Fl2me=COuxD?q~w=9?0p5i*E?@%RN6A;Af^l`t#3V>oZ$7Q*-<-vJb@Cmg)}J zYPHJ@)Qr{f^P>+Dpy(e>4BK#_?-(P!HRv86JL z8HtBGagc;f8;_KKQGjceQKYU~?|3)r?8`PsFLGd*3p^VFho|h`-DqI@7HnfcC@0~2 ziDG<4!hqazAf7q>_~@v56z}4nRZ^3(?B5j650`w%B9n?1XB8ex^eMxmJ#ckHb=J;W z!Xf!c=>52eW=MP;MOqqHfqez`h)0q)n=OAd`C;)p&+iJVbcZHCQR2%8);nJRF^CghJM{ZJyVXIql;kRJlACJFva7 zNqE8j&4pV$XO{0mkkH)yzLKZgLu9F7-1%VH>RQy)L~DbTqu1KJIO^ag> zyI_C4H-?lRu=sUmE9=vBEbu;m=cULxn)RN}=CRr%{#o?H&6#<{So}jH zWqhtl3D;7=GEa(h?9X%yGf+wCY|>OIYXgRHb9JywEY30yHx697dlx1x_xT!eZKFEn%ACJfU~2LjWL8%vIe$;`;2Ckkzc+&Xb~4f zzEwN}b4RMsR<&)l+S>A94{_**s~ zsLz}Q*Dl_00AKYXv-{D*i$vSSSenuzeOZ>`zC2>h%EQfPXB~e85Zy+4T}b*_3HyvK zzxpLG+gIv3*>AiuYpjp4{Ww819eXeJanmD~Aam*4{l&HX?HH6k+tZb*ZsGZPIS;T~ z%u_w)6N|@ub@tfWuDo7XzI;iK*U{${yQW5ov4pIt-s{*Wo<=>Ym>sA;PDl};9vS-M+Np13FE=DE9@79N8 zMp6VhRJoC?0e4A#yAP!Fc6qnoKI~oS!92V4Vb$Vx8GWm!I}jhLc+1(A8Q2&QOB$&* z^LnvlDK0c;orcVbMa^I86WB#_2wconjdFM?iNorbzcpwUI4<8d3O3Q#KiRM>Can6M z4%FiOipO%6gRtQ~yYT}@zIMDqWI>$m)zY#SR=5W*Fu5*tA^ZB)D|>PF=Ei^OL*5BR zcG7RzO3AajFz4Y*0b|@r%VkYmOSE{As6@%4!r9(ES-Y#qEn$^k2|;%_8ZyxL4i9!7 zdkh~5n5Vb1`jYw2Ff)m%t@)#wx)iE|bkqNa`|v7b*U1UzSC&;Nt*sjCv|rtV^*f1H zWg7(EXSw;yj2tZbnW-uzEnH&mMaLggS^I+pHdNFq-GB5PWDuqK4WBX7=51xTstdI1 zl-RN(yzUZC&Nd_y)CtOXdBjXQDyzp(mtZ?Y&U!Qn-BDcPQ%g5A57jZy%uIM*Aj^`k zh@|?{0{!aiit^hXeZB?uZ;SVy#U*0oH*IYNheRq&?d@ZA3``gog@D*eB#fi4 zOjb8cR92l#LJl6fA?lp>sH0@l($<-o#bCG_wObI~zFp+W*y+^I&7>3P1?E24nDa1l zO%)Ntr^d{qwI24eKwk(OSzEELMcL{@-0AG>?Tta1kx^_!u~fmFADL3OThGAE=+Ng~ zZCa}y-=GC{pTynZm{m%gXG;?b4pd>sAzC!Q?lUy^e1Kv#y6)*m0ryLxSzRaHy#Ko)4`3`5SEr8#3|f;5#Nzq z6(+b~QS2&@^;oT3NYg|44L5U7-uTpl?ZLc(Z*=6*T3(39&cBz8eE8kD@{avae-PBp znpaM*>gOkk>Rri~rsGm?c+ym>^YXq538usrj`rTRf&h(e*!CTMaGC;4Bq@a=AT1IK z^rkUmoZ)2tw(r9-45^Wi%WtM2f#&3;?zr-a$9BHwXB+S844J1AlEjtiaMf< z%T46qB$S79c2*KN`bZX=N%Vfo6zD@71-%d>Bx7IwqPEbi=xE%De7D z!zqb&vPwh4NpU}WX+88IwKsf_XGK>liGXoCGW_lW7NgIM5LCX#`NMby$m|+$7^8nr z(kMMT@QUXi$(ew{DwZDH+jiDe7m;^;sX8NW_l8d;i*CPG0WlXu8%MUAVaZ>|Xc)6` z_;>62h|?+2#49Q)egXgn^P8HusHi@9ITHfD+Jboq;JY8%2f#1fTrkC2CF%nJ{y)jj`^Or3-Q54uD*(!8I5_`HFwcS-Fs*639_NXUj<%XFU8=QEmXkxw zV43O$pXC!EnlmLLDw+1a z+o!#~J^REU@WScn5D*Y{2&4eWt< zJ8~Tk`{Ru>e~0|9jgYM0(PEDN^KD6H?pHllj#^{$>sV?o{ii{GX6{;|$^Q^6_?s zgRG;8NFc=Jw4G7B!C&}30{)l+OiLl$$>C~&v zBh_0Pv!|(-T-Q8NNe_w?;@079&Ky0oFNDqPxSXK1XyqyHi^2{>Q%_~jk}i(0REWKa z)jF!C7&7W8g9a=%Sp*w|M;n`z?*8eI<7@&CrNMvrkj}t!Lgvq<@lR<;OKI7ZCR70rHhBEP4$jy%8uEt(!4*YTtiPeyV5L- z1X!!F1kY5lS1NkgBR{y@0Mg5NY3skPE7JCtaf|4Z8^t!KA6ab2em~Skz1hA?!zpXQ z=tM_(i*05eT;Mb}x|e6y0J>P_+Z)w!I^W> zZ$qy!`!lBDNa%!1yuyC?55VT zq=g?KM4{L*kjl4{EefV?Py}m?Y6zj4tKjX|t@3KsS8^A8v`(y0?{9NY03Z3SdX zmse9z@s+cusJ8t$O{w0wi$y~O^vXp;PF-eh`M>lXhD~vy_knC9*25c&tmIxVf)wjL zulw1{kz_SWd{x>$Y)}y#V6xsH-ctBu@e)tD;hGOij+EI5PoKP~Wa*R*da&xTf5oeQ zG?4o9f)KbyQR+m-ma+uS3Wn+c>DppoE1trd*5=zok{p2?Z z5t=}e?0GGG;78YBBd<2(GbD+X)41waTUDDU!I+y~$Omdqn^HLC60x=@*~4)3 zA{ag@(60@@r2VXiV6!q$yYRQmEmB9q_c68cZ1W|J*h zfjQJFFVc$6-JheQ6qZVdkCBlz&kunpt(DiFd73|l1KSt7m-{=|Mgo?9rlnMY8pd)J zEfrmqlpYQYL;GWM2foYF)e>WXB>1dFvbFR&lx}U)?Mm(*PRNnAWisJNoNbL9Yk_|%I@$7;~xh_w* zpAT`uUl$H(Qo1X5!`Q%K!gok8%n#(8Z+`0gnNvL{k))Y~>6aSI(fdhWb|PV<#)-o0 zR2oG|u|dtMdPzpphA{hkw~?WdQS5ajX9h?h6`wi3qI=S2f~VMMF!(3ny70p?%)0G}Pv2ROd*Mvn5b_lkhF{3H zB(Yo6yn@h6r;A=#NfA>k%1^j2a)oqTJR9Fn9lNz2qO7&rOnvrNBQJ9O9eW3m-|6>= z{k%G@Iq#F{gNHASn3KUm!TsA+A_+B{%>K~ooMEFLUHY#SG*UP*oB)~pP7|JpuAWS> z+m?#0;2p7DE4vT9rd3N8UdSZ;bLB%(uy=j*u`d)au60p5nI>PQZ%i+{(+M>x1RmRJ zA_}g1qaOY|*rkWfcmTclMUHqI)t-GafGig?*J;TiQLw9|#+(PxtDjk14BID?*smIa z6NPjPVG`v0m=y#YU0ucv$#(9ceLFRDHldu|jqR(IGIaq5fi)|XtNbmZ8)hW)q}w&x z@y7;q$?nqyS?GaC|m3M)5^Iby9m!YXCYtY@pow<7PJ zFz>g=t<9SedJ_g4VK?c*iL?&$mPhe;oO(8nM>>^va?;5zabBuvJwczq3#==kF#{js zu_jxbVvl+Z;YHEnEgR&GHiF)i6f}6}CkcsKIa(|_SJshF#WmWFsv+dQk7qWWVLIG}r}NWCT{0I*OT|G8`@wTk z)s^~BE7vt5lEYDLzzm#21U3Ia}BdS)#p1m`CUm)K>y zc$PQ6B02#I7Uz~@;Z(_uQ*D%uNv#*dnb=;BR>&IN9Cq2HFDitHK?a92NU9PE{HuR@ zZf8_%QnvfnL$qwI8LuS!cT)r@`jltVt>_Fj*}V_2Uz>DoRCtv`on-jml^Xb&axSI80G0nKJEUKNTxn z8e%#a6a08^L+u$Ybsyr^)p02I%5I*@nkqysVyml_^6*;ni%!;FG}HB7E`J!RU+AID z7BEm3?i&Z>)W>Xdkj0_O-b2t_!c6%$809u}ieu5{g3)2wrMq-53tL;sBulq+03Dmx z8)BhD{oXevc{GaaiOGv4(u>}bbr6(@Mm*D?jF*$=HrC&~qcz$zvLIz>xMU{86;sK<_u zr_1_fHyN?8y0Ugo-gYbw3d7v2nnn)6jJWI$W&Hf!z)txeoPcb>i7$DH841#S+;|D3 zQeTvw>CzUznFS;JY0elGJ>0-Aa6XJtylGvvevIU{DJgy3+9>SN%1orJrrPeA4>Y0S zg00dnwu(4}O{*VGwAS|f7+y`HO=>E{`=kUGX4A>Yf#@9Z7D{0oH1=_iyn^AosE%1J#hSTg5Q z)HfW40W*UffRBSO*-<<#Op6X+isS-{OJ=!zuJ5ZdnUnH_er~r)QLUh%rB~KD?2um7 zB4BSN3)p@UcoWYGxAoPG@C!^3UeV+KlTk@_gCWPv4X)=`?V0961<=bysu2_`h;4gx zC+C9b_?8&?UFvOSh>F*l9Ur2h|AM(^fYH90&;eVV1y^{MG|sS>7bYy!wP{EsZGX z9MXD)v6(@iXRSV5UYaf4dLS`OE*f&RCqUuJ#%K#VlA6nki;GitMz2!dt<3N=Nz1z6?z>6?YTLMMtDv#;%)$d0XWG2_$Ria z{Rz%>GF%DXdH>pl7rY&X?cRZM(0>G3rIt~!YbW7Jv`iqu-arudI6taZfmARslKZP@S|cuGvDrz^j5*dUM5GRdTnl$@p6 zA@n!LeeJTny~%(8Fu|Cz_t`d#u(BK}7%D0+l(~!H!5Q$0Qin918UyETbmpqVzvoaj zG|#w9EUHp&7?!N0Q(3W)06Kqilu(OIz$&bWyCVmg>S%;XnNu2R{n2}%n~b91^3 zr^B*Cj(d0rYiE|6Qc+HhsvraTYQg&Poa&tVHK4O~|M(Ss|B|Q10yIRL-vZ$PV*%8h$Ly$!K0K=k^ZYS zNT;vgz=Y06x@v{5zaxDD-fg&!e&Qwj?cJ@}O?wKfQdBphL?Y*Oecz_qXMD96O*=oL z0R_A(nNz6)wSpYaP{O``{x$rki9}Q0eS(A|^>y{QtwC8GXb} zYMZ*PIYj&GbyYe5|6Yv1sfC)nv*~I}d~2PCF{P?x1c+kP(8BE=Jb?0f%ZppXRk@%F zhSRvjc}E$6qXKZ}Z1ldD{n=G3WZePX7H}K%h@f@*(hXKPFLg`{{+t{m>oQ?8^?oYSPM`z z{9W~8p6(FvKu2=ctt2p;8nu$(vMVZV#C>7$v8fd?L`ejquz;J~`t#Irzykgk42;d) zzI<0GDbx?mkr?bv@=SPRgFvZTrOTzDIJ6~&tbmrz;*q(A4WYJuvFzCA< zlcyL4ZHh-a_XP*EU?Bl?Us#(tTpS!&wbk(e7e3e&AGC47AB=tfLp_8e#~}_44jkA> z0RXI@tPuZ*xOt1!CL?F7O@3ghk_&jcO}($pUoQSXK3_ zqmk)S2e*L>|7yOd8Zf2{8MO>07P&-}diC~xImi*1C*XN-n=C8-08{)!O~gQaWMp@W z;Ng*NSSj>PTQm&WYXjbgvLCOGihBL6Ydih9X&nYpr6Kq}P@9{~DkN?shdO=SNRJ4qY$@9F*gCDScTK47p9) zPP1)=ywSX`2F@%*9u>c&O-A4%x8`}UUj5cLOh>a zLQ}@#Z;HpG%n+4Rs{-6tvXi<~B72UC$2>Pa9%n}s+llxE%F*U7IC9(!=2iL;607O4 zCu5JZFQsTPqO#Hh08FIJp!G-!77!h8zCQQdQ_s`B=e15+gjk&XR`B-l z8xIRN)@niMxfI^`Cz9oj8sGbVIKM6klTL}4r>&}k-3$8zDkuqflLZ&DjsMvEkrF*J zd&}Zx^Tx<5tYNDlr?N?KJ@QQpaUokUix>1Fzz{UH7x=J~YK@q9hE>ZAT~T{eO+E#w zJ?Z*6oBTv~&JN=P03)u6PyDcQ8yb7f{SZZ+Me!x)o-kKkRdqy{KKs+QlJXA6R7kGT zjE5;SS%n6`qLmiUSNgMHfDLs@`liij>+`>1TA_rTw(Sa@q&qZt3a$)&&IY^wHkyhv;{*RZhNZt7;U4sU^dL7%r#TI6XEjWu9kVDR7UpY1yx zx4&&GsRZ3orR`I(lJUYF{a|R*{(}GbM!ZyxQP0UEfrsz9o0~0i_+Ho@Doy1C zMYgZ3uC{u;K5_AjbHS9hVajE&ekYIqVgLZJ?UT}*rdBaq9Wx^8?6$wT<^FX@KfZG` z-sd|HbIN+!JN*z;W&R~ikePB75c)aPIT<-lAay@AkW(k5rBA5pqD$_Nz+&6>LS z_@s25{c=1tHFw0OuD+shbf=uM-~V0wZ(4xv4csUF83N{ijQNdT?E0!((y2D(pxIE` zWcP|5qMpFfu|VAr%vjR+bPcGnNpLfmDEiGILUxb1SHJPntkCN`k1Ff_q{luBwTaOH zFMbd&H|aF1g-s*}DmRW3f6cHYHe}Jd3nQ7e%+?wE-D#I|YXp<)-{7$;RZwfU6QPae z`APHZZCS~#l9opSaXjVg zcXHKt7b6+Rt@wK9z=-a&`s}uNnjhz*NJ~~+*L=5i>k4H%L>~ido$itsJ1X>da;5o6 ziA0Jxi;ipyYn7ydLW9K-zSPrSQ>v(i$zr(N+rW?1jItw9-G_>K@|#!fI5ux%TXI#4 z1Ydq!_15_NT1d-C&@`O5x~prVdJ>fn#}FNOKmQ!H4V$K=YiMTRRES88V8daEvh(&* z)NzF42MuDF{IPBFWHSj3e@$t6}6-sm80YMmgq+B8lLocYs|5Dka1D~9?D|}%bQ?j?Alew9!v<> zdW@6K>bkaYCH{5){=+x(e{tf!ywm@Um#8MuFml~NqeZG>osiXDQlY=+FR5$Gca!3!E;kdCo<&Kv^6POTs3eC zg1|#n`mQk5 z0M$uGaMKD2Qn*_ljCkN=JbkMyv2c7sgTTPko3D;|xSE@Uwip?11OCokegZyM+;>Fr zv>vTAiokg?fWGA(QQrYB%Lr$9#@9>Jnpfd$A+eOOA6@l+ps1!NihwriHhty4kM1z} z86!`%qF6!GkBkWtto~u{arEIm73*ld=NU7x-8y0oA_0<69ab2{wrqIjYi&;0>P2)J z1OWgho=r}AuwjbBiu!KC`|bMa_Sm%MaXg&|-0vg)H~hztODE84^&7J^X`gNPIc!Yu zXDmrpP4GX<6wEw6K7w_)?v0I1A>Yhxh|Q2qJ7D|E)d)CcdfrTlPk=LCv1-Y$fia;_ zZ1}*pw>Pk^P73b%3Ecj(yBlzQJR>jAXTzdBMl_LP0To=rglE7@fCLVe*5Kh!_T~N| z+yR~Kg;7Z00h>SlPGZ5Pv7?fTUoc}-eRj_LK|OyL@X-wNf9iH&ec%qPzqvAN%G|UD z`>(ur0$z!{!0TUNKnz5+V*$%{Q(RIWG3d~$0DxFevQI38>zD8~n1Au-aU^cIv%FIu zgSSd$=1Qfj`(3j148QZ#yWnylp|Q@z0T&Vg;5vHQz-f_2n5f+p;Q8iFm|&gb`Kzts zAO-;f&{=vp>pW>8^FEpR!W(CCMrfy|T5m;Y40`PfMCk3v%ujEeJl8CJpLPdXuW#16 zy06155M2VkeUp-sdU}2qm+x}ka6ji`^X9#m#;Lc$~i~^q%!!X~!J8_P>S&l#i=!CqS$$XpL*mwtTAA!dq z`KR;?1P|x26n3Q|v@z7E+pyc0x+>$;*S3Xqp#7NXF=wiU48>R*eEg7zQ_YeAM-sCA zN`TZZQ?zTRDR|cf7=X#S_d^e1hU*@7nl=ih$A^vAO+TayIyQN*<>jtT)*fWqI{egl zp_UXTJGiOt1EkNBg;FLe!ACcL7yZ!WoXX7e2;!Spn~^ z7q2<-R}QoDckh>>m$pPbePVF3+TPy}3S-1GYjg}Dh2QvkZ5b)v1~#^6V~&{c;y%XO zKovN>e8kM4b%^XpZ(y{!_D*_sN2ryBi8QnBrkC6+fr8rebe&?{OLiAv7kCbf*{Se~ zGJQh>`!O-nw1I=|w`HI)cmJ#=S>`=jsCV}g{TJ8T^S<582zT?VVObEt`^8w5^jq%D zw)_{c1+ptbs+Osf^VfgkezXxIrRROmi3EE!$FBt-_;S#+>aCX&^}N7k6#Y-*AJgE$ z+RALUF-tNBu7?gTfN6WZ&3$x>5yh=H+_DOcl(FEU|H4f>3cDulzY=*>Ul``~&7$dbqn==X!05#7P!3wp^&bD&D_y`32l;i18oa=KscRn>u%_h!d|d zow$~(rCbdc?{?fP&2tk`t)9mSdc6%0WFwy+kI`w7;w~GUa=-j(d*RDfL7;#mEZY21;wV!KRxvqy==4+*xAEhi-rpXk#Jx-ToGxyEYpH_el0yo(@UAmyvAgki;Pp5K zh>bpSJ>lrS0zPt>l3N~6YN3Q7!Z-naqvnb%>+K>!4$!`}2gXBapm+Vt@mH7~s^KGy z96t&4UC>=_Yv}2dBWd|$X>)OQEG7as$v!ts1ZIiXX@>M_A1#&&zQhoBfph-!!OABM zeg@j&=I?n&lfKo_p>P99i!JJoLkGHp#mYM0KZ*wY9(U*%THe*JD*f}*Ugd)8#>8F8 zYlr58xGhgOrc`ym^(TP7Zz`BnWK{|a9XutJ_|1ozh|8_V$dwUyXnE|W)P8NV5mQLoabsJifk5T!T~q8{eTuWybFY+lIWzLWnjz8l6yGD9HfFOo?g3Ye0T~up zsH~gkAL_@|bvQ7N0s5T3)3izi5`Qm~R0kI@Evv4w`^I;Lb4U->RoxB*KImtqt~kUY zT2-J=wIwc=VUnf=+ zq@;~gZw1}DiBnu3MCzJEZ(9zovtH>p3wtvhPsTHc?bz6JV&SX7T&77MSc7a;QeI9E zGi<><$~jz?irmn*n7E&j@RX)@Vn~kw)RdV2)d;-r9Zux0T}HX<$ZX5>gexRqyfj{ z!;`aq?jgF={vRvOBWS5(^3r;fw=SYqaDylj$zvOcxUXJ?t99tDK~BGb+*iYr;L4?b z{i$;$hv0rnpfr$0e`sVMtQ_FZ|`sl|cV1Jt-&cPvasYTasia zAA;_3E8E(dqNfa-t3X@l!_ ziG2fNB%SwoKNw5raRygJb22hA3NpQ(Mi@J^YfQ(GydQ+QJq=zlkf=FOd>+~NsnrTZ zLG4jqm|^RSJ|9aI_stGcVB0PjxHEjbaQyee)Ji(+eAJ(}Z(0Q#@`DO0bXuHNclSB^?EF==#WFkmY*V72xGkRqdM||x z8IC3d1$aW*-*7}>km!#N_!8?%ZjN4=qx4YX>`RH<>MN*2X11<&N6uTX$1mdMWgs11VtUT&B`##ym+Z#pCH+inK%)JHFhSX3qzHU2Q z1We%2(9q6!-;9-&)%kiGk136biFyBFR3JP0z~$cEfoEETNL(J;Yf~u34jO}^{v2(| z`|;7Dv@EhZHC0nBo7;O;&8=C~X_S^%-XDdbzRL=TU98rdH!jt4Bkf{1AMxj1M(;P5KrJTQ2}c%I{3CM?_sBUj>!Q|uNYbQQ+iCUT4ZoGPRP0i)a-v_E$ng_$z0_pj})okQ#mvG3?yc(2o zE$H2JSy-ol=lA5b>d%vaeRTt@A#B$@CoLxmaUWJM{l+{5$NqS%ilc%~V3A9P8JEdb&pEB2Hv16Fvd7Gc5(E#f15{xm)gQ?b zaJfo{>t(SHu>36Frfjfv@mztH8$5o#ABYI`Xzl>Uc}Xg&jubSpQDR) zO%=ruMUw3hiC`s>vfi3*xDV(fQ#ZS?A; zt5n-53caymOMdDIJ9BP#u?rBHaMq1^@H0p`!2D^%_{BqHe0fs@^Lp&ZyU!kCcM%0daup>zTXz| z43qYkcvKM&MLPMOYhXjYU`W{Wz*P2t%U@FKC@CVt8Ol zVj)54g?uO)42S3i?aQeVOXj4oy&ysaapnaFUST!Y*1PP_(Y_${Mr>D;l8Z;WJfG{h zT20fEd|*1?W9rlO2*gskys8oDy8WtI=7LjpElj9Qo{$_ERPGlxk`ce7UE$0EZfIgo zmWloNG2?lZHEOx^vf?AJe>aAR*|v8h>&avmsmaJji1s+5g>H zgZj_lV<(brkWY`fW1>88dh$EyDaO8-+G82466}||*}t~1)?G_Que)UOjMG}r5d$#7 z!T0ZNWkiJW%{fCXPe5Fr5j**9w&8zNa^=xbuYG(qMhgsW?J7k`$EJQtl9rhn!(|WF6N#a z*Xz2GaL?b0uL1qYM1NwKKL4%gx4jM_gc8dsAIPMQZFp-F*n^b2d?MtOmt8cc3;3p* zaGvPsRz*7f876b++3Ii_n-Wp~&gbxGpkUr;d_5k=INDYNhWgQx@4SBBKGA<#M~7BW z;L5zsD-XvpDZb*1Pq8T3Nhj`a6fKv?S9{+LrbuM+kK{XGqoq1moiZ4h8F&m>nTKtVC#?JeuQ-|v^|h`sor@T(7qziz zW*Jzlk{=f(B+lJh_m* z9i~-EUBU89n~{wR?nlL?g)NRwC_ODGu&wL`R7Y!R`iQBMKZ-hMLnp`IsIC5Djg^&Y zG}`g5THr0U9G_a=M^2YT8Obk9p6`43gmWKo+$`YI|KY{+4!UJ7=)wiq4PQCeG~Zm| z((kR~2id-n6#H>_Ddex9|Bqeqf65I1TU4ADi^ba8@ZTHi>vO5H?~67n9vCi1d|lex zUFx~8+DYY^U~RINB13n-ho`s48aKDK8J!l~nYC%adKEwCyvlpQ&febs@#DwyA==X1 z5>;CH04I}SRcsOW;DN5{S782BP*8}Ai_^-qQx=v^jEahy8z#xi$>DU+*tW_1?5LNs z(ehkS#0{V!5j1$Gn$s2EQe9l^xdt0vtfWxvgkB4V_&S|d}y}fZHWLE7G zCQ9De&u_7#9VvcgfP zezW!A^K2YC7XtWK<@8R-eey7{RdoNBAOiEej+OrX=vNcwdBgRjM_ZNF6iWkFD91>h zHJ`l?tSmr_QQ~l$x2NER_x8b`l4u?eoCnF>$)tJQ80pwM-t}zlvk3I#D>>S~c4saM z*(<7tegwNev3u#WYGS-Tpy|~m6Vb6uF1g}k80{P8xP_@)cu-Yeoq}JQ_EI+c5R^$M zQpoMF%(K){#FOx>_QIdw(Lx-~g1l0a14RF;RWoLCR-uTZTM=s;67G2QdjZBKsLFK> z4M_aYPah!5;MSy~_%`r~n{?EBP>LoG_K1gX(dCx*NH|WS2}#xx;NAvY*Jx8Z1pD$9 zGT}Jks+4bx2f@{q+X^YRF1udnquG23L2f>Vvr$ZS1Xf#w3AC?R6`NXZnpLU-m#xa3 zL@9kM&6Mx4z@)_<+5T+-&0@*f@U>1P$?}$89VoZ-DPgOjB#_T3kYvY%mufHWM3%)O ze^Z>2r{6;R`f}9UlE;nhV3P^RB9!MtJ}*cmuQydn#bLIXB$cQpo{|1Y@+L|7I>fNN zqs-=}fUah)`q{*Gkv2>?&uIogBV@(ChG*BwRP;m5ST?x_jhD`ysy-=T&y4HD*^yJx=XDMS8 z@!r8XG=VJvfzk-|v@MEdcI$*Z!7xZksGOr^J&WZ^v9f#krFz(JiHJrnl=zVsPVip~ zyaVpGJg9m;0$=-)FPK~U*R9FbkKuterAt+UF{*|Ta?0`B!Nn139MGo0D-Ow}%5h`? zrl$VGtbEcnzTil9B)PLZ`%3E0LD7tvn4D(eBtEj_(X;x9a4m(?2NHENq!ol2COE(U5d}D=mN0KWH`pM(5D_$vjXAU>gOCs57Uj(5o!94|~ z7rztx>4IBos5tVR@`-P`IMd#t-w)8vNmQS{?eZKl(Mre2&WVoRwH`<9a2@M{zbOaC}Rr|?^gBNHFOeDf@K=j)(3=mKT;hMLqdxB8`GX+ zN_{napKor|u>L>0D=r`Zj?_+>1YLzdFvQ!8+`YDoM$p_y#~WtMz|JbAI$mk67b zCnTA#V<-ovz^|Iq3A{zOjQqOXV@5p0sSZym9Qes+S1(3D1EqodZPxkTQKsWsR&2Ou zBKc75>QZZ#Y5!TJG8O9OTLiRMpOQ+QHhtbcqkp1BA1l{Ya%Da$QqAFD2IJea8oEQ~ z-S1(VI?gzYI4%b66TM$ z4TNX9tGP5eERKe8UQxV&t4f(>-FxNKIc)Q)FmfV)rmuDMyb|-z$^7R-jmJS!<_RAI zcKOB`b?RGClP)(EY)%f)(DT3kcQTyrx3;#QVvXms?}Pruh0jQelIO~^FmeO1(ck+* z(I}Kh<*yy5BLQIHKN-{6lt0aSai)M{Uh<`z@E36uZ{ zFi>;qwTt0+2B(LqDUToarE9 zrg4+B3#iJDPb;@mLnKqb;`cW34Lb||Z+$cpx84Ley#wHZmhrvauj;9)hsFyJfgXvV zQUyWF=Age_K#-&$gkkC2(*=V;pj6HyA}J~;(2|F#SLv^AMqCV_PMUT$QJ}&^oRSwfC3vlDx(@fmX44)3# z3Z<>)>F&(Hdn*rtlx?-11(*S}lj~Z~d+64OB$fCj6tL+IxM)vRQK6%pdm<`EMOQsD z{s;nrKnDA}0|82?Q>u=YQrEbzC#+lj!UxUVZd9Qso2X?Xs{L3%X9nOY^#E%H@Fe>m z;{ncV;!YY|yQX$kYI*Mf2(-6{ekMZ#0v_HE$N{Q-$Ul`4WabQ~Wd^t1^bzfY@8gUzd@<;?K7@1O z5D;x5a=#9E*p}|G&2n`)%G9*hjU^0+K<{kTOS{R4Fk`hs}uxjl$t6}pq+!!o*Wm_qh8^vU!E4no9!GlSEcjQ6ZiowGImk}+GVfE15A z#t)NG*2~3K6;I;Y;I*zCL$6{FQhS{0M-|4AmhTf1$P_A6W|t6fXvS4hT%J`rX>E_4 zCtuBUS1P_G&dM{UHjQsVaJ*LMEc4>3@U8PJfrJE2GB96vKgYoB)fM}5D&mo~8hd^f z*yjFpwU`hW)j$vX-i5zsXAHRQo9CaLnmos0OINs;{wocb`p(Jm$>|QGKFR(!&PpUP zIJ!%_(bkz;j&n<_+SPlm-NUukd3d~Bn@TK7zfi4k%wncww<<^=%k{Tf0!qA?uJ`v& zAxM{eVMTMkEunZ!#~&JJ%JL%$kh`$^EO?E~eLR3CY;{7gU(4j6DDm1{eBoRFoPgFP z-sa9Ue|a5z#>F}1Dv({1LJM0XS)iHWE`Dzk8>;^;304;n2!<$UoNv(t+%39GGaB?` z6UPvz7}+Ywd}#lrU#wY3WNGhOz-*q?5?_`|Y&@S805B-#mPujb)blmdXs&~>;S9dx zTHIw_(45=)CFZOh`Z8oXTjL2795o0tkNu6aQ*<_ZZXl5V#u#=A+?Z=`ojaMkd?1!k#RicyhSoE>!Zzqx9k$D7w z!`9GO;Gz>7-qWsO%v<1l&ed$mn7ar~z&8mIk&%;NZwxus@Cf5k&K@!QnW7XA<17Yz z6-a)}Umc|)2o$V^L8k<~*6o7&jj9GNGaCjDsD4Q&e#ptb?fpUHDTgn^E(75Z2JV)MWQlw$e(-!rR)cA%(SSsoKd2F=>8; z6YB|V^r~T@#}BJ|4)8)Buf1x+<90px9`r26vdxOuE5C`3KGjpqQOP}w<%&tlnBUyO z%F&GP3@>A^WF$BzhCGDr%9Lo&Ebuz{IHt{lgs-+*r*XCBo& zgMlW~1fETM8NK&L{^DNO$t({tW{Efxxj>~_$gB3Ai5=H*DnWga253?}tt_!%R&pWD zoJ}!V&t|HlG)yvU+VuBeI74jPm}!zd-VZ+Lfq@5|MtrtvHkFwt|Zk zek8nvc+#eMx!r1O(^+vWTL{{uNT-vbrJBaI!8BbjwDD~4pZ#qCyDf)${1mO`ti8PM zz+Q+}-fPadRoIA1@4%ks9qJ~IG5X%~8e}<2S5UXCuB&tjI(XmFu01Sh9^nMYEqc)* zDJ=I^r7u#2YuLD2nnJxdw5rEB>UV{DtquI%ZX`Sgg zq_D}W-b$QcoMZEA$MhqXT9io`L$P|PmJ-;D7Nk=05_PvXn*FInU8W2>OYUt*&G4$F z^C@MvEbIMcBlQ6Xg-{D7m}IROT2p5@VYUB|vzXrFvFdLofLf|}=?kt=ev|au<3IPw zyhT2U9Dep0oDbbvBY<=quuCyEd1bqoM=S(EQ83{9E7H8$qrv=J@cLM^T4| zQhFpWud;=e2^hHCEEq~ad@j8kEQT2>SDuYP7&w*T4V_G?8PsK zH7+I$WDWDZHL)(En(~n^)sem&OKWnx=50B2R_XH=!z)3snbYe0f~O|P@uRxB-87Fd zAU{2XP{|k}Df9-<>-*))7XeD@2?%tQ3<5I}R;*x#*e@UDrPzTQV8j8OAK90Rny*;x zy~*9h>DkvCqV*$@mGPzPn~}|jg^!oApX`!|IertU%_bqaWJhrTz-C+91>E^P%SP5& zVf2`h3)LuDx^M=+F59!mBg?j&tcz#Sa5$QTTfs^qv)i*-C2n$JWCTgkWaNiaf2B9y zZ9kD}nY@u4&B%v?u2g)(UT!aV9Y(pW1GSyV`Prl-L10E-f3hs6Eg4{+)W%R&y~Ym?11D#3v9t7q zG<{~>Tp}mU3n&eCgFen^rI!(ai>jy=CX6#bbKJUf-Lgw z?9r_=rmP>c-AF9NDd60K5NRHDaZj#PiXyOHB3*g8;3em9x*aeT^)}g0x~obY+sQHYX!n9*CP6vzQiAGdlP3OpQxW$HSlSJv7aNU6{n)0?Os^ZdqWOJ~~ zIqspOMo`US>O{+YIP4Pu5b-fvag>BCc^ik`PmK4NCHgM`zuIr+&gOpbM4_QqLEa?3 z4i);U@O!SO@>`8UIw)euHi;aD>$a!afZ94AbQUnoq99rP8WD77nI7q3Jr3azYwi94 zvOfOdO{dbA?hf`-%+r!8W7_1g-xzs3!dJ?AEazIKF)<9D*{N|Ej|B``_jj;V@*~|g z%Q&Fi$h0oODSZQr(C6iKGrsmaC&jE|$ULWnuZZ8Xss`?v6=nabV z?K*0rgv8~|?0Ml~?oFqLQYwuGs{$>SF9)21{r%oKRq!eY9@0n3A>1CU8YP5*3Ec%N z4pFWBe23;bwnAm>^gxen6h(^b3-kLbL_=a6T+-So zD}rrf(~-0jJ!wi@i(Q3AjwM;Qv=<)Z=4ctXUs)NCfzEZM-Z?3c>PKUA5N>tr-D4b^ z)99x{DqkH|88W<9td_W*A8Igqp3tqJ=<=k=!pbq^x|&~2fvAm@5&0L$FV4=PWzgY-B+Qb6N9%b8C>QJ@|3oNE9BUMFA0f5T z5-CUqrt(M9C{&h@NG2JFo*+mTHdwYLG73r)wI>s$N(w&JejNOxzD+~d9bVg&P*laJ z!ashpvT6kmsdmQg4?{)Jekj}zq2>g!z5EE)BIls z1?BWjIl~KrJZaY@8K|7gws$S+Ng(`9{)hINh3_S(yeDKem|E-^Y-_ruZ!iE0DZ*DI1|Jbdl{Jz!$ z&z%~)lvgj@d-j&7Ea&S4Eu4D?IRSNg4=0|0<&`T%KWe`rEt;$HI7?2|^nCjTI#H_A zlx+JWY5bLTiX&YayWL7ZcudrhM)P_6_RHKv*Ui7{<1rJt)+2lGpkOc3=eauLCQ*p7 z|I!OkIz#uu^@hmp?h)H`)hr)Gq>jVJ=Bu2}Lej+jNFE)WzFmdQFhclU zvK(`ctvtMe8*C!Km0k3QkMI40Rm_Cdq{8EeNe-fQT94I~(&bI|Yfp7k-7C81w`XR(p+}T!}Kz0t$M0oO${&wawWP@1ShNhsVwFzfX{Y_63gXzMf90+3lLwVlrHo#&v!GL^Z zWy&@gnKY4es=L*aKo(OvQqxrLLu&jJ}p5*UbBr zl&3#=#?F=NcTx3PC~y}vw)JxO?cCaQ7naPGvsko+zx2#aU4JC(C;*j}pQ$Qs;TzMa zlc;r<=*_oz%4GTakK-u(M>JEf{l)&ESLwi4SWhfe?28!1XilnemLNq9mAU92dVSOY zNNOS86;d)$EY)tjRV|%TXshs{UEL#0eUZwNV}ZEvCLk46>c^{BF?y~4ptkTkg1_pV z!l9_1vZWCHl_gN%a>8_S>PI^=nq%R!t;5he*11@DT>^JD7k~`O-abk$B`BrW^Qkav zEiwTlaA1un#5>pr+I^Ewlm(B7?ZPh`7QmP7F8Q2V%0J>ed!>b3|IU|(X_}7O)^7>O zh<$CSyYP_HIDQ#Fin-s`;VrO7!sZroDVqgDRH%=(woUXIs{?`!6t)`yejRluD@Fzl zb(5@WriJZ4uQRFNL61yGmD8y93pL$!<=GmxIxk*Uk5$2W&eO@M#T*+IO`$AM%Fx@> zdL@2gE2`k8g28kCwWykr<#>1D-_#0P02YzClO-8Z&%CBniG!#$sspPL`89M}4X(^- z3#@lpH;}avp6?Y^=-_JOWG}Xp3DQ7~f)Y6J5=O1!5#yMpBx=7AgA?gOISmwgDQU$& zcjseBN1xQ|(q=hzx7Gf`={EFoi=ALJd)pB!zfH)wpx9i)eo&9R;D)aG@aV!gmv@L} z?Sb2yt>0clUe}#_k9o+AjcldZm&8#MK9wQA#@#LL?f%qMWtT1#vlbS1FQy2y1+z7z zIuaAwk@qQBg@$LUr)AOkQBlPQk)8}{hRYTX^)1eeN3k~KN)|765w1~{Ovi(f7A`>= z)6=X`eRDcz()N{cAy{I7jGW@es_DT5q~&aVaqnzC)RMf-2~XC+Kq^QY-$JRA<#^sh zK>-LBh?%B-Eg8SIY0cNQ78hr#AR0fYriVcCoK+vYW>DpHc{PwwU0yAT*mdFrhV|CREC_ZvBLUR zK7YyVF_QJ-%kxhS5$ES~`)`*N+U@P}{l88gMTn(Npq=!D6hAo|1{tt`a*4>2i*PmU zZv=_^Iev0!Zfulp;Jjv0$62mwFn0ai_t^lB=nev_0y@XZ&(mU zfA|EaEM(qg>9hx^r%7V=KFVm*rVM=2JQ} z%d0N`^AO%0a_zV2rv#KMh3gZt1nqXy{f+pw>WfznwE0?nk3S)J%5t+i|J44;v^#*k zm@%rUS z!$Q!(X!gqug`lB1;MIs+NAy(b2{uN|7;WPdJ!p$vC%b zKWB;DfD{5&)6!7?)Aw1ak2#(*2h{kJRmu#%us9+^$l=C~Kr5cDG0Izc-;Ygm^KAO6 z5$xPGlqxzJTL1^FWY`6&DKZR|S{&rgq!i&)KXgP77R?_lm_zw(KI3&N%+5D~OI22~eC-#L*shmPDj#{;LsTWLA`@+<%KSp?P7|^leqToINXM<8&8U!0UjxCOgv*{WOQP=(cgdsS))r*qpsP8&bM$1Zrhj>U z!nS_CDg-=ZRO4y8^VP2dF2T|n0V>fdP$l<55ffjUz$Dsp)`P!w7-kCJaoISrELZ}q9QA9?;(kls z2qT6&VtyZQV%9Uczj7zrNG4}#$-$L9*1|_>d=Lm&8np$E#!Uy2P#uo~dms=(c*Gn* z40!X4NI&y3HQr*+Dgw0~MCnIdM~z!D(r(3FIUMB&O5^vRCSw&WcLKyC;*&tUZX04% z?=u=)nn+!row)D1WT-=;%T!0W@ybv}Vbp&g+7<|Z9Foi5aviUwDf>JV#x%JaE>6K| zgy`B2rjBWn01r?}D9{KmE9Bw}edM#xJo7M*F)zxieJ0k>(KD1ug*vPF@W3WsXV0k-P@-QZ`a2T@`?7%&^z}?F zdhxs~qDvu!YOtISNbfu--Coj>Y0SWw-Y<|jzk|@@3Dr?Q=3h1g7jE zg1yA2X#%jK>?whBn?kj3HE&FHhz@8D(1)&VC?Y-tn7A1Ck?}=4RkO>&4&^qqc+XDm zOgB$=876jinyJmap?%RVySrWpQuY@gkkV+0{!#5lvQQXnV0Gza zn`!L0c@1k`B{8k0X`z&~@!j_khhnuw$|}iMEH`z%s)dYnZvg5LJ^FK^bv7o2=-(kY z<0y^w_+vFlGW(akJ*PJo0#satk=Rs84BOGQ6-phb^`c#p+332Jz**ZInGcAf5;}#3?di|s8sR1cr@)6lgR`p=He&TO#seC^%!Y?K!4=bW zwvfB1;;<%C)$BsIW?c(lWTpKI1&3Hz7L477EW!IZA+~d1-)g)(>L2g~zG=;;S77B* zj%#LXn~Y9Tl)3D+A@kfh-jMI+5ji|KIV zObCgKq(15CZBZOdkB`+&i;3DD?SEynM3L&NG>jGaXQgFf$4czH&K zs!<{)%fDgcO%5_KDM=2C`o$p3CaL2#`{rECZ{3!PY0+S7XUB8DZsX9#?!O`$zo#LJ zzBk$Ff7>444_vJOK{B)djD!U4G0Y#le>Ig`8YjnK`3=5Y#=o0=@sCYUKltqI>9OzZ_Mh^F9+?ofRD)Q>QfEMqqPlArP8XZru9e~fmGVT_uZW{_&o6k}^xONeXKijQX^b^h9A@WF zgtHH-Q^g;qKNPu)k2A_D|E?JWsVt~jMIXY@t?{nWF^cp))MUKz2^3mAw;No&^5pY! zQ~-gA3`(+BZwyB!MDv9FBlpKhlmWHmGMzV)iHQb(8aC09g^0p~Cu z{ECrr!a{xPT)7J0x^L zCK#h^=mmXyoA%K6q}*}Peiq@KK_X&ib9=D$#E+Af&$38(%DkR57*fnK1J0IP9jJBj z^!dG%W+gVo^IpJ;st$PT-y^42)mktLVHv?udKw|M{kgG#uR~?WSE$h?XiG07gf9rw zGZS4}{bbLJ@sUVk{CLhOgpzcvbey4Um-VQJeBfkB+Rt~44D#7?GwqPmbGQB+mBSoP z?lh@FBVutf$|pGOG?G+*{W`72A294OLo7c=Xsg5KiC9IsRuwZ>#L0kqs7H1!K9HyH zk>n$XFF!i=b>yM~!>Lg*KF;5E5XVNz?=ZMs+bW}`R6_Qf;L_%Tjt`}J+rUYE-{fKG z@t~Pfwx_zuLt)oug?jM)m*UKr(}5d6wH(jhzN^A$#}d9K6BKpp5zL;~{pIp58jV!5 z>DrC}D=j$wuFTSQDX;7KAS8A$(-DzAzpyHcl7Qrmzn>VjRMd!iVpJUEb%6?yz^nG; zTY2=zIHd2RNN3kG<*9m#F= z@DaHm@g%+HTW>Z3ZoGKP98oY#Y;J)beU@>z6a;!gmBy|Z+2@Zz9wj=|B}b~KF$vNd zWO;9FB3%s@2Q&fXA^NCMBJqk$S3_$P6MYQ09(EMO6-zDjDS;ZeFyr5u@VQ&#zw`nI zUtJPa5ziGD);ldp#h_>!Iz{ff@8|I%+Z&9HpVjIa-HV7Zs=9a8GwSSyaHCVFCopo|OZ91KR zlUW%>+NXE=hotJi5RV$kP69jE4TOd6;ErGJY7#DFm`h}v~)t<_v(f+j8TNStTCRv)W+%{B}tldbH ziw8k?I?!53TBcWdoYl=o&v?4ULg@{sl{i7x4o!8$(Xv?~1sRYeDTV!ol2!dnjI7j+ z@i{mC5Jh2z=icVc(Q&^~+bc+-alicUVZx>ymTb8xco`x+;nHQK9Rkzsz(wcmDATjG zE4|I?nVGLJ`Sx_AqO-#-Xsf5OcP91m@RC2rOPwonBJiN zZ9i$ixxfZ94EIhI;ZRwWM%zdWMG`Kb4;&7XCEo@AhzsKTAOlZVGk01%{kwTeO@J3= zpRS+&H>?1>DG1!o(4?e#twKj)u^Aw~LIXIMo%G=5Q$X1oeErq0#ca?zQ!OsD;66ii z2Ki9u3mN@3E4na)9HidcIm7!Yv)eh8Rw7I$?6C%%)UG+;yCCQK6qWim)qK_7`Prmz zJ89kF$`5-629>mlob=}Vu*P}Hs$_>_C!&qd2Cnbgp3aRDRh(wKxRsv*t! zX{~R;v5>ovcLZ%(_!dgN)*^&}i9wXAsAS4#ZJ=o(xmdn+wbZjlfSUb!u%*~!d}i6T zdO?vg1-fTx1z7-1dD-2akIwO|@OO|K?xs|)5p|Wvdz)g8j_h@_YDWo{C6GddljOlJ z&_XNLS%ZV-Ws^SQHi6~!fk@ox0d&sfPS02Z}nzjuUMV&hueSpLNE-TWac@@xx=CZ`L01H=Cw(?w=6{ryp&3+&-#Q2sm39HG~1z0OGu({90 z<`(oc8#<@ui$tcppca1_xMBslo^fc#Q@#ky%F1$`ci(_w)}iM1PB^y*Gu2iXd$X>X z8~2m}mr+P4WO4r{egK8$2y8f+^*?g=Y1(m_pB?bcIvM~_aIr4}QZ0T~zl;JlNsMIB zPO!CqS;kzqR<6o33VMZ~D(W#emmZBL6bw6G9o-aHy;aaz;5J5|JFJu*u-C$sh{;9k zcE+bDCXluE*XK08BFZ#ls8gSSU1nE*i2iy#7JF-jTIjjF*yW<%j~_pDAbF$0!op>c zW@_HB{fBGU$_7d(@a%n=I`&7yWzEE0XC)Q5-i5mD-^{#z?h369C=G5n>VVEf&7mKl zGry&hGT}UO-(x7eWZrLv+&xFHJwuQ0n8-Xu^SPuwJJ<@{9$fh8oc7*&jqDXQUl=E} zpvicr;ZjL}*-(BfOJdZAkz_Gldjd|1vN`j(72zG$^1Ys2*mkP#2JJrq=0~3IxrWeX zc>CwC?rCIIc$Z3pgI#u+O*tmlp3`njO?{A?Q)@I+Xho;&@6~90Y6V&h7jAU~UA_7c`L+5M`yi8{A_W zA0^Blpl1j}1u)P|5S^vLT_Gw=&NWsd=@g%lq`o*Q=RGK1uT2wkJIqaMXJ+X2&k5IP zz|%{;zQ8lbdt&p@+s~u7EdsO$0!PZT;7#q6nwLRL;-XMTW z{XDQ@R+NqH;L3aspHdQdHABp1wQLW(7@**v*aHgS<99N5|Mb~c#+ri;2pp6F!jCpR zdc|q8-y(xXcT{$n`z|87qs@oDIL*;CpP!-fbg_MM9}}DD*l-I8+>C)#26!J)nV|1^ zU`!d|_XSai%6R*{{yT##r7#)_d%IHZyD2yEmWIG^2Y{h4%3+4u_oNB6Y3mbtEq5)! ztW4>x=Xkc-Vyqv*v|0<1W9J)go~v}(<=Yz`a43LdFT5~c#7AF&Rv{Qk7`7Q=wN5!e zf0e@M7)fJxH#-c!U5TMdz35`YcWZ|>qY;++P0E2aW7MKEe}r%A_a*>0FBkguJ+@~9 zEo+&=&nQcPTx`}K?6b491=JS!-b;5rO-|wLb#(;5JQ;mLJKIWe^mm!`z778_$0UMI z&a-mxpuPzJq0Xk!m5uP~7bUEgA3UmR-1f%1(|*Hk0F@Xg>@80h{yg~k>$J<$?w)ji z=(}&fO{+ULw@SPJ_Uivb$D1;aP!hql2hb+FZvgh=NmjFggt~HW&*h?MqP21hm`_7L z+%i~5yJwY0eJ_8k#PF18OSi)!$M^=9R8pHGH%@8m6OlF^u1dQd%RUM*5GS`-4 z#sES{V`ALTwYb2Hvl;Ysm?~ZHR$2dEgqRM?5W7c%tPF*b%Ra(V4}M+r#;}O<_ViPX zw@8b-y@+Z`?=6$Ak>&c#C9#8oNS1gTsxExknMP@tI1n0}l0C|_%L{fY5!rYRLs21U z%_}r>Na1T>ZQ{C~>>XEx&urfrH%Qa8U4+avl_o?*C2#g8vm!E|DfF`EtUM}&*1bh{ zpHth3moa01X}zHiv$Dmr?^*+D+-S~2^h-6zlO5rBc*ok2FH**GBxua(ZQ zATyDDCQ06d8)C#8U9U?Qo5r4>IlR%`D4(y-ko32`J)RAv`aLHRqutBMXlD7)c|vo9 zXW_s>C05;G*=kDkG{pNWQMo=7!eW5WR=?!?_4MwMqqFImmYP~yABCq7KK2RC7ZrkQ8t)OEok+3i#MRZ>Dj8Q2Nsk6U*;M+eYxy50Pc|A}NT+7Vcz zN8?HJMVGrZWzNotU}j4ZGrWr0gAee@+;&Ou;Lp3o0Cui_V6jhBs96sr^HWEdrGtMU zu68Sjl*Pgl%ED*>$-9`<9&W>C6dwUxrrS8sf2&>C|DSoU`5|Ah^pi^;4 z&*0jIY328Oeip-yfxfgAWqaJ?oP;{n8)h2j1K$V{VuIsS`;~=g=F8kwt<^N>5T@2? zxc+0C@PcJ7QR*JTveB(B6=1o%Pf0>9x&UYmBRTr1QkGr4x-UmU-r(l5pH*>Lz4bgt z8sxUv4c#fU5(qnLy{M*GWI~?th0S{?T9l_)KUlU%@b+310le!%LBjRE$32&;7?v9C z*1inbmDc+(^tBM^5n(6HegLZ%H?+02wX)hNG24%z60ULH(G+^k%O8}Gi30Vl?BASU zG(S^u6FT!8uUWSkoZ_EAzG@{*dndG@fc2rDRPWH z#=GQ%-?N}yp!QvU)RQJiqVB0n<9pg$&n?kwR)D@xD0@}xQ3U-Yv2_zrx$0sHzSHWH&%6-%dfd{MJ=BHQ zf-O{f$`v7Ji!1b3eM0iTr}myqCv=9&z^u+1dpH~ng+8(<8!~;d`^)vr>DeJ z6#0H!p69zdtF*V6Yy~EgJKu`Cj2_>ccS0YfyIL`aZSJ~;?Cx&?WFl3zL$xhhF#Wp7 z9fs-SF?qG-Kg#bysJoS(yeha}PjH7H%r$mhav50(1e<1cQaIS4h&)hT1it{?S>ml{GrtT-y7K ze~RBweRw#WIS@Yy@lDHmmO}XKvH7Jzy%URzk%{w@r%wUaQ-44IRIRF^0NCE34t#2D zW^2gUsvpa8yZutv&_KcM{r&_^G*(pbxZv!`PE1Y`#3MCVReY~N6(awvNfmYt{}U=; zV3aYEzHURNRUf$O;O^@S)S(UyX_5FDv~=UH-{8V=&O$Y4R!r|+S&-qA93B<5_UV7r zfxidIc6r!;8zqZwlFt#9HGK(OvxDc=lY~WiH$jt^$8&9M;Y)+9CPG0O`cr~l`AiZb zXSH7LKG)N{&NJ21fpyIhYn%NECp}cee=am_XHzS_o^A89q&T_=oX$J~mFZA8sHr(U z4QM0)rGjUpHKD8krF0%A*S)d5O*`pyw^FJ#!4!B!w1D+|O~dr+YA?5Gx%*w&xC!wFk$fpi^I&WyxLpin+@=0UDc%&yG4JxX$Zh8^X=y3F-YY4m z91dp`p#f5^aiec~3hDg6%_;r!g1_2>;h9a7CN=IN)PZ%SUMaSEc}Su`8gez=^6KK8 zHoD$nHuKOrMX)A97l_neG0=irRH3^?7prTkwM~c)C~!sy@q^eopa)AJC8((^lL3FS zRB~epdwKON&$vZvxs>bUUeKwQZ1B1AU7yFLoPg`o9c>1&!lF_k8f6c-+C93nvcQ-p*Z!fsi=u@JwzWMwA(YP zp&K<$(;YgNN#6tz6@)NON5!u}vF`pB;qmdGE=)YxH&33R@sYb{c=yd@Xh{ee@$7_9 z4x?+=5+&o`n;)=yebW`ibHH$hp3QFoQW4lBd0NqKN!3|JRfrUFI<@Ng1T?plJElxI zg9#v9$xr8*VqtU`5*`w_9!q{O!}aZGrM-%6_XPXbYW`ctWZ|oU&Ozt2j;IZ~f_piQ zQdQMsd}qTfCmG|wY9XN@uHcoYD8zK&QR|9P!FFZ7FTpl!opi} z*_Oy*I+9*hPO4br>I|Xjq0B|cQZQZGuQr;_V3U|M7i`@m-C$s{$5XdI9)a~dmlZps z_+!70oEel?w0g5Tr9osnzmi~}b*W7k0^Rkh+9^cE$<&kAjmGFdVpq;md(2VQLF^e& zS)9e6U+1E7&o*3d(OTW(Cza=EeRS@n>JV?h;h>ADwQDkv3dj#=G+DEK{EP@6|Nph4j^R2n- zVwNXJsKxa29LCoXiR_THRQJDm+?0iC*B%XNJYlR~a}Bab-oZ&z;^Fod{*0Cg=9#eA zTn$P={cKX!q4`Aigt9&xTJ-(QcET~|nzyS%vrPG3--WQKhqZWgk=sU)hIRJ$D?U7Y zo#{znNIB5l)8*uBl)+;uXoZ}dyzf>H89LGYcLYvD-$tkB_fyLkp65ws|82H8d4CK` zz9Yns7rj@-m8*0Z9UVj8Izhp84yNc@d-32F36r(}yq~5P78d0y{Nw}78D8SrUu$Q# zbR+K%=@yCH`g+~Ba3F%e(yeN}3R4b3+}$4BEj|UlWzRX|;^1KH^CR>N?5-RVo1LG> z+=~QXPYerXh7KC4O2u@0qYH zVi^ZVT{H!+sPpcOmuG-j-?aJQ=JcUrmpDr09~Uw3VoI#PKm5hB;@GrCo<_iQtAhpl z#coeQ_buLM5nU2~JH?P&)*vqmuX|)pPfvgE@(o{wxt$cXBg^?_PQ*U|w^p0|URQ{a zX$zK~ScS$&`XV*22J)Wof{dx_hrQy z7vk~<7S^0Fn`TMo1|7|-kQW<6hrSQ6up2+|J literal 0 HcmV?d00001 diff --git a/docsource/images/BoschIPCamera-custom-fields-store-type-dialog.png b/docsource/images/BoschIPCamera-custom-fields-store-type-dialog.png index 877b4d8125054e3402c3efe010cba19e9844c1b3..690c0f93fe659eb01c9b8faced40cb5f4e8ae8d5 100644 GIT binary patch literal 24139 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 O5i$i^8kJqT8U1H%SW!Iy diff --git a/docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage-validation-options.png b/docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage-validation-options.png new file mode 100644 index 0000000000000000000000000000000000000000..ae4ae1107ae8c5246b325aa98accdc59ed502596 GIT binary patch literal 28498 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

$=rpHh=`z#P--vG%v@YYTkj*K5_Wb{dSQ1^ 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 literal 0 HcmV?d00001 diff --git a/docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage.png b/docsource/images/BoschIPCamera-entry-parameters-store-type-dialog-CertificateUsage.png new file mode 100644 index 0000000000000000000000000000000000000000..6868517399adb2a575a0522e5483ace5d1648b43 GIT binary patch literal 20877 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 literal 26318 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 Date: Mon, 16 Feb 2026 17:15:31 -0700 Subject: [PATCH 06/14] chore(logs):Update logging messages --- BoschIPCamera/Jobs/Reenrollment.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BoschIPCamera/Jobs/Reenrollment.cs b/BoschIPCamera/Jobs/Reenrollment.cs index dc0bfea..5bebfd5 100644 --- a/BoschIPCamera/Jobs/Reenrollment.cs +++ b/BoschIPCamera/Jobs/Reenrollment.cs @@ -1,4 +1,4 @@ -// Copyright 2023 Keyfactor +// Copyright 2026 Keyfactor // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -61,7 +61,6 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat string returnCode; string errorMessage; string cameraUrl = jobConfiguration.CertificateStoreDetails.ClientMachine; - // delete existing certificate if overwriting if (overwrite) { @@ -89,7 +88,7 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat _logger.LogDebug($"Mapped Key Type: {keyEnum.ToReadableText()}"); if (keyEnum == Constants.CertificateKeyType.Unknown) { - errorMessage = $"The requested enrollment key algorithm '{keyAlgorithm}' and '{keySize}' is Unknown and cannot be used to create a CSR."; + errorMessage = $"The requested enrollment key algorithm '{keyAlgorithm}' and key size '{keySize}' is Unknown and cannot be used to create a CSR."; _logger.LogError(errorMessage); return new JobResult { @@ -124,7 +123,8 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat { // error downloaded, no CSR present // likely due to existing cert that was not marked to ovewrite (delete) - errorMessage = $"Error retrieving CSR from camera {cameraUrl} - got response: {csr}"; + errorMessage = $"Error retrieving CSR from camera {cameraUrl} - got response: {csr}. " + + $"This could mean the requested enrollment key algorithm '{keyAlgorithm}' and key size '{keySize}' is not supported on this specific device."; _logger.LogError(errorMessage); return new JobResult { From 2f9d7e15da0774bbc188fc0afa31abda7a50f268 Mon Sep 17 00:00:00 2001 From: Elena Fiocca Date: Mon, 16 Feb 2026 17:36:45 -0700 Subject: [PATCH 07/14] chore(docs):Update CHANGELOG --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f53f74..ef4ebc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +1.2.0 +- Support for additional ODKG key algorithms and sizes + 1.1.2 - Update doc screenshots From dbfc75858c48beef2aceb8f1c17a3bd2fdd9084a Mon Sep 17 00:00:00 2001 From: Elena Fiocca Date: Tue, 17 Feb 2026 16:55:48 -0700 Subject: [PATCH 08/14] chore: save local changes --- BoschIPCamera/Client/BoschIPCameraClient.cs | 5 +- BoschIPCamera/Client/Constants.cs | 29 ++++++++ BoschIPCamera/Jobs/Reenrollment.cs | 73 +++++++++++++++++---- 3 files changed, 93 insertions(+), 14 deletions(-) diff --git a/BoschIPCamera/Client/BoschIPCameraClient.cs b/BoschIPCamera/Client/BoschIPCameraClient.cs index 82e8b07..cc1aec0 100644 --- a/BoschIPCamera/Client/BoschIPCameraClient.cs +++ b/BoschIPCamera/Client/BoschIPCameraClient.cs @@ -427,8 +427,11 @@ private async Task Reboot() } // get certs with usage - private string GetCertWithUsage(Constants.CertificateUsage usage) + public string GetCertWithUsage(Constants.CertificateUsage usage) { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace($"Get cert with usage '{usage.ToReadableText()}' for camera " + _cameraUrl); + var source = new CancellationTokenSource(); var token = source.Token; diff --git a/BoschIPCamera/Client/Constants.cs b/BoschIPCamera/Client/Constants.cs index 3a8f3d3..90d64a6 100644 --- a/BoschIPCamera/Client/Constants.cs +++ b/BoschIPCamera/Client/Constants.cs @@ -12,6 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. +using System; +using System.Globalization; +using System.Text.RegularExpressions; + namespace Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client { public static class Constants @@ -150,7 +154,32 @@ public static string ToKeyTypeCode(this CertificateKeyType keyType) return ""; } } + + public static class CertName + { + ///

+ /// Returns a UTC-based suffix, i.e. "2602171544" + /// + public static string GetUtcSuffix() => + DateTime.UtcNow.ToString("yyMMddHHmm", CultureInfo.InvariantCulture); + + /// + /// Creates a unique certificate name by appending ['_' + Utc DateTime suffix] to the end of the user-supplied certificate name. + /// Example: "_2602171544" + /// + public static string CreateUniqueCertName(string certName) + { + Regex rgx = new Regex(@"_[0-9]{10}$",RegexOptions.CultureInvariant); + var m = Regex.Match(certName,@"_[0-9]{10}$"); + if (m.Success) + { + return certName.Remove(m.Index, m.Length) + "_" + GetUtcSuffix(); + } + return certName + "_" + GetUtcSuffix(); + } + } + public static class API { public static class Endpoints diff --git a/BoschIPCamera/Jobs/Reenrollment.cs b/BoschIPCamera/Jobs/Reenrollment.cs index 5bebfd5..07aa21b 100644 --- a/BoschIPCamera/Jobs/Reenrollment.cs +++ b/BoschIPCamera/Jobs/Reenrollment.cs @@ -61,21 +61,49 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat string returnCode; string errorMessage; string cameraUrl = jobConfiguration.CertificateStoreDetails.ClientMachine; - // delete existing certificate if overwriting - if (overwrite) + bool oldCertExists = false; + + // get the existing certificate name associated with the supplied cert usage + Constants.CertificateUsage certUsageEnum = Constants.ParseCertificateUsage(certUsage); + string oldCertName = client.GetCertWithUsage(certUsageEnum); + if(!string.IsNullOrEmpty(oldCertName)) { - returnCode = client.DeleteCertByName(certName); - - if (returnCode != "pass") + oldCertExists = true; + _logger.LogDebug($"Found Existing cert name '{oldCertName}' with certificate usage '{certUsage}'"); + + // compare the old certificate name with the new certificate name --- + // if the names are the same, append a reserved time-based suffix to the end of the name + // this new name [CertA_Timestamp] will be used to create the new cert + if (oldCertName.Equals(certName, StringComparison.InvariantCultureIgnoreCase)) { - errorMessage = $"Error deleting existing certificate {certName} on camera {cameraUrl} with error code {returnCode}"; - _logger.LogError(errorMessage); - return new JobResult + // check to see if the old cert name had a previously appended timestamp + // EDGE CASE: Cert name bound to usage is known and used to schedule an ODKG job + certName = Constants.CertName.CreateUniqueCertName(certName); + _logger.LogDebug($"Name for new certificate has been updated to '{certName}' to ensure uniqueness"); + } + } + else + { + _logger.LogDebug($"No existing certificate found with certificate usage '{certUsage}'"); + + // if overwrite is checked, delete the existing certificate (if one exists) + // this is done to avoid errors generating a CSR with a name that is already in use; + // since the existing certificate is not currently bound, this will not cause an outage + if (overwrite) + { + returnCode = client.DeleteCertByName(certName); + + if (returnCode != "pass") { - Result = OrchestratorJobStatusJobResult.Failure, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = errorMessage - }; + errorMessage = $"Error deleting existing certificate {certName} on camera {cameraUrl} with error code {returnCode}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } } } @@ -124,7 +152,8 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat // error downloaded, no CSR present // likely due to existing cert that was not marked to ovewrite (delete) errorMessage = $"Error retrieving CSR from camera {cameraUrl} - got response: {csr}. " + - $"This could mean the requested enrollment key algorithm '{keyAlgorithm}' and key size '{keySize}' is not supported on this specific device."; + $"Possible reasons for error --- The requested enrollment key algorithm '{keyAlgorithm}' and key size '{keySize}' is not supported on this specific device; " + + $"The 'Name' provided for the new certificate already exists on the camera and Overwrite was not checked."; _logger.LogError(errorMessage); return new JobResult { @@ -191,6 +220,24 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat FailureMessage = errorMessage }; } + + // delete existing certificate if overwriting and an existing certificate was previously bound to the cert usage + if (overwrite && oldCertExists) + { + returnCode = client.DeleteCertByName(oldCertName); + + if (returnCode != "pass") + { + errorMessage = $"Error deleting existing certificate {oldCertName} on camera {cameraUrl} with error code {returnCode}"; + _logger.LogError(errorMessage); + return new JobResult + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = errorMessage + }; + } + } //reboot the camera client.RebootCamera(); From f2d523684a16ae2fb6ad459a9a5d9555d8403e91 Mon Sep 17 00:00:00 2001 From: Elena Fiocca Date: Wed, 18 Feb 2026 14:00:56 -0700 Subject: [PATCH 09/14] Improved ODKG workflow to prevent outages --- BoschIPCamera/Client/Constants.cs | 2 ++ BoschIPCamera/Jobs/Reenrollment.cs | 17 +++++++++-------- CHANGELOG.md | 1 + docsource/content.md | 16 ++++++++++++---- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/BoschIPCamera/Client/Constants.cs b/BoschIPCamera/Client/Constants.cs index 90d64a6..92ba9ae 100644 --- a/BoschIPCamera/Client/Constants.cs +++ b/BoschIPCamera/Client/Constants.cs @@ -169,6 +169,8 @@ public static string GetUtcSuffix() => /// public static string CreateUniqueCertName(string certName) { + // check to see if the old cert name had a previously appended timestamp + // EDGE CASE: Scenario under which this could happen - Cert name bound to usage is known and used to schedule an ODKG job Regex rgx = new Regex(@"_[0-9]{10}$",RegexOptions.CultureInvariant); var m = Regex.Match(certName,@"_[0-9]{10}$"); if (m.Success) diff --git a/BoschIPCamera/Jobs/Reenrollment.cs b/BoschIPCamera/Jobs/Reenrollment.cs index 07aa21b..25591c3 100644 --- a/BoschIPCamera/Jobs/Reenrollment.cs +++ b/BoschIPCamera/Jobs/Reenrollment.cs @@ -72,15 +72,16 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat _logger.LogDebug($"Found Existing cert name '{oldCertName}' with certificate usage '{certUsage}'"); // compare the old certificate name with the new certificate name --- - // if the names are the same, append a reserved time-based suffix to the end of the name + // 1) if the names are the same, append a reserved time-based suffix to the end of the name // this new name [CertA_Timestamp] will be used to create the new cert - if (oldCertName.Equals(certName, StringComparison.InvariantCultureIgnoreCase)) - { - // check to see if the old cert name had a previously appended timestamp - // EDGE CASE: Cert name bound to usage is known and used to schedule an ODKG job - certName = Constants.CertName.CreateUniqueCertName(certName); - _logger.LogDebug($"Name for new certificate has been updated to '{certName}' to ensure uniqueness"); - } + // OR + // 2) EDGE CASE: if the old certificate name currently tied to the cert usage does NOT match the new certificate name, + // also create a new name [CertB_Timestamp] for the new cert in case the user-supplied cert name is already + // associated with an existing certificate that is NOT bound to a cert usage + certName = Constants.CertName.CreateUniqueCertName(certName); + _logger.LogDebug($"Name for new certificate has been updated to '{certName}' to ensure uniqueness"); + + } else { diff --git a/CHANGELOG.md b/CHANGELOG.md index ef4ebc0..4574d11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ 1.2.0 +- Improved ODKG workflow to prevent outages caused by deleting in-use certificate before new one is installed - Support for additional ODKG key algorithms and sizes 1.1.2 diff --git a/docsource/content.md b/docsource/content.md index 20e05d4..f5fe23c 100644 --- a/docsource/content.md +++ b/docsource/content.md @@ -12,10 +12,18 @@ The Bosch IP Camera Orchestrator remotely manages certificates on the camera. **Reenrollment** -**Important!** When using Reenrollment, the subject needs to include the Camera's serial number as an element. The Camera automatically adds this to the CSR it generates, and Keyfactor will not enroll the CSR unless it is included. -For example, with a serial number of '1234' and a desired subject of CN=mycert, the Subject entered for a reenrollment should read: -Subject: `SERIALNUMBER=1234,CN=mycert` -The serial number is entered as the Store Path on the Certificate Store, and should be copied and entered as mentioned when running a reenrollment job. +> [!IMPORTANT] +> The Bosch camera requires certificate 'Name' to be unique. +> To avoid deleting an in-use certificate prior to its replacement with a like-named certificate and causing a brief outage during the transition, +> the integration will generate a unique name for the certificate if needed. +> The pattern used to generate a unique name will be reserved. +> Certificate name will be appended with the string "_yyMMddHHmm" using the current UTC date and time. + +> [!IMPORTANT] +> When using Reenrollment, the subject needs to include the Camera's serial number as an element. The Camera automatically adds this to the CSR it generates, and Keyfactor will not enroll the CSR unless it is included. +> For example, with a serial number of '1234' and a desired subject of CN=mycert, the Subject entered for a reenrollment should read: +> Subject: `SERIALNUMBER=1234,CN=mycert` +> The serial number is entered as the Store Path on the Certificate Store, and should be copied and entered as mentioned when running a reenrollment job. | Reenrollment Field | Value | Description | |-|-|-| From a8cd6dfa18e4bcd87c49ef09b74c4ca462bc4652 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Wed, 18 Feb 2026 21:02:50 +0000 Subject: [PATCH 10/14] Update generated docs --- README.md | 16 ++++++++++++---- .../BoschIPCamera-basic-store-type-dialog.png | Bin 45845 -> 45843 bytes 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a63c674..b458a86 100644 --- a/README.md +++ b/README.md @@ -357,10 +357,18 @@ Please refer to the **Universal Orchestrator (remote)** usage section ([PAM prov **Reenrollment** -**Important!** When using Reenrollment, the subject needs to include the Camera's serial number as an element. The Camera automatically adds this to the CSR it generates, and Keyfactor will not enroll the CSR unless it is included. -For example, with a serial number of '1234' and a desired subject of CN=mycert, the Subject entered for a reenrollment should read: -Subject: `SERIALNUMBER=1234,CN=mycert` -The serial number is entered as the Store Path on the Certificate Store, and should be copied and entered as mentioned when running a reenrollment job. +> [!IMPORTANT] +> The Bosch camera requires certificate 'Name' to be unique. +> To avoid deleting an in-use certificate prior to its replacement with a like-named certificate and causing a brief outage during the transition, +> the integration will generate a unique name for the certificate if needed. +> The pattern used to generate a unique name will be reserved. +> Certificate name will be appended with the string "_yyMMddHHmm" using the current UTC date and time. + +> [!IMPORTANT] +> When using Reenrollment, the subject needs to include the Camera's serial number as an element. The Camera automatically adds this to the CSR it generates, and Keyfactor will not enroll the CSR unless it is included. +> For example, with a serial number of '1234' and a desired subject of CN=mycert, the Subject entered for a reenrollment should read: +> Subject: `SERIALNUMBER=1234,CN=mycert` +> The serial number is entered as the Store Path on the Certificate Store, and should be copied and entered as mentioned when running a reenrollment job. | Reenrollment Field | Value | Description | |-|-|-| diff --git a/docsource/images/BoschIPCamera-basic-store-type-dialog.png b/docsource/images/BoschIPCamera-basic-store-type-dialog.png index 3769bf21dd5a54a192fc1ad3f28cceb0cff59e0b..10a6c0453e0940f592073271875f1ebef4da49bb 100644 GIT binary patch delta 28510 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 From a1df9a357da18db2d74631ab15d76d785c3548ac Mon Sep 17 00:00:00 2001 From: Elena Fiocca Date: Thu, 19 Feb 2026 16:17:30 -0700 Subject: [PATCH 11/14] Update Inventory job to filter out non-certificate types; Return proper job status to Command --- BoschIPCamera/Client/BoschIPCameraClient.cs | 27 +++++- BoschIPCamera/Client/Constants.cs | 62 +++++++++++++ BoschIPCamera/Jobs/Inventory.cs | 96 +++++++++++++++------ docsource/content.md | 13 ++- 4 files changed, 169 insertions(+), 29 deletions(-) diff --git a/BoschIPCamera/Client/BoschIPCameraClient.cs b/BoschIPCamera/Client/BoschIPCameraClient.cs index cc1aec0..cf34dcf 100644 --- a/BoschIPCamera/Client/BoschIPCameraClient.cs +++ b/BoschIPCamera/Client/BoschIPCameraClient.cs @@ -599,9 +599,32 @@ public List GetCameraCertList(string response) // Record structure starts with 2 bytes representing length of the record, followed by 6 more bytes, then filename, then a zero byte. // Iterate through records by reading length tag, extracting the filename in hex and converting. var certNames = new List(); - Func getName = (s, start) => s.Substring(start, s.IndexOf("00", start) - start); + Func getName = (s1, start) => s1.Substring(start, s1.IndexOf("00", start) - start); + for (var i = 0; i < s.Length; i += Convert.ToInt32(s.Substring(i, 4), 16) * 2) - certNames.Add(HexadecimalEncoding.FromHex(getName(s, i + 16))); + { + // Bosch cameras have different Certificate Types to identify entities, such as CSRs, private keys, etc. + // For any type that is NOT a 'Certificate' or 'Trusted Certificate', do not include in the list + + // Get the current record + var recordLen = Convert.ToInt32(s.Substring(i, 4), 16) * 2; + var record = s.Substring(i, recordLen); + + // Find the first occurrence of "00080002" which marks the start of the Type field + var typeStartIndex = record.IndexOf("00080002", StringComparison.Ordinal); + + // Read the next 16 digits,and then get the last 4, which will map to the specific Type + string type = record.Substring(typeStartIndex, 16).Substring(12, 4); + Constants.CertificateType typeEnum = Constants.ParseCertificateType(type); + _logger.LogDebug($"Type Bits: {type}"); + _logger.LogDebug($"Type: {typeEnum.ToReadableText()}"); + + if (typeEnum is Constants.CertificateType.CERTIFICATE or Constants.CertificateType.TRUSTED_CERTIFICATE) + { + certNames.Add(HexadecimalEncoding.FromHex(getName(s, i + 16))); + } + } + return certNames; } diff --git a/BoschIPCamera/Client/Constants.cs b/BoschIPCamera/Client/Constants.cs index 92ba9ae..64dfcb1 100644 --- a/BoschIPCamera/Client/Constants.cs +++ b/BoschIPCamera/Client/Constants.cs @@ -37,6 +37,18 @@ public enum CertificateKeyType RSA4096 // 0000 0003 } + public enum CertificateType + { + Unknown, + TRUSTED_CERTIFICATE, // 0000 0001 (cert only) + CSR, // 0000 0002 (CSR only) + PRIVATE_KEY, // 0000 0004 (key only --- rare/usually hidden) + ENCRYPTED_PRIVATE_KEY, // 0000 0008 (encrpyted key only) + CERTIFICATE, // 0000 0005 (cert + key) + CSR_KEY, // 0000 0006 (CSR + key) + ENCRYPTED_PKCS12 // 0000 0080 (encrypted PKCS#12) + } + public static CertificateUsage ParseCertificateUsage(string usageText) { switch (usageText) @@ -154,6 +166,56 @@ public static string ToKeyTypeCode(this CertificateKeyType keyType) return ""; } } + + public static CertificateType ParseCertificateType(string typeText) + { + switch (typeText) + { + case "0001": + return CertificateType.TRUSTED_CERTIFICATE; + case "0002": + return CertificateType.CSR; + case "0004": + return CertificateType.PRIVATE_KEY; + case "0008": + return CertificateType.ENCRYPTED_PRIVATE_KEY; + case "0005": + return CertificateType.CERTIFICATE; + case "0006": + return CertificateType.CSR_KEY; + case "0080": + return CertificateType.ENCRYPTED_PKCS12; + case "": + case null: + default: + return CertificateType.Unknown; + } + } + + public static string ToReadableText(this CertificateType type) + { + switch (type) + { + case CertificateType.TRUSTED_CERTIFICATE: + return "Trusted Certificate"; + case CertificateType.CSR: + return "Signing Request"; + case CertificateType.PRIVATE_KEY: + return "Private Key"; + case CertificateType.ENCRYPTED_PRIVATE_KEY: + return "Encrypted Private Key"; + case CertificateType.CERTIFICATE: + return "Certificate"; + case CertificateType.CSR_KEY: + return "Signing Request"; + case CertificateType.ENCRYPTED_PKCS12: + return "Encrypted PKCS#12"; + case CertificateType.Unknown: + return "Unknown"; + default: + return ""; + } + } public static class CertName { diff --git a/BoschIPCamera/Jobs/Inventory.cs b/BoschIPCamera/Jobs/Inventory.cs index 41773fd..27d4a6b 100644 --- a/BoschIPCamera/Jobs/Inventory.cs +++ b/BoschIPCamera/Jobs/Inventory.cs @@ -1,4 +1,4 @@ -// Copyright 2023 Keyfactor +// Copyright 2026 Keyfactor // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +using System; using System.Collections.Generic; using System.Linq; using Keyfactor.Extensions.Orchestrator.BoschIPCamera.Client; @@ -36,41 +37,84 @@ public Inventory(IPAMSecretResolver pam) public string ExtensionName => "BoschIPCamera"; - public JobResult ProcessJob(InventoryJobConfiguration jobConfiguration, - SubmitInventoryUpdate submitInventoryUpdate) + public JobResult ProcessJob(InventoryJobConfiguration jobConfiguration, SubmitInventoryUpdate submitInventoryUpdate) { - _logger.MethodEntry(LogLevel.Debug); - var client = new BoschIpCameraClient(jobConfiguration, jobConfiguration.CertificateStoreDetails, _pam, _logger); + List inventoryItems; + + try + { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace( + $"Begin Inventory for Client Machine {jobConfiguration.CertificateStoreDetails.ClientMachine}..."); + var client = new BoschIpCameraClient(jobConfiguration, jobConfiguration.CertificateStoreDetails, _pam, + _logger); - var files = client.ListCerts(); - _logger.LogDebug($"Found {files.Count} certificates"); + var files = client.ListCerts(); + _logger.LogDebug($"Found {files.Count} certificates"); - // get cert usage - // need request cert usage lists for each cert usage type, and parse names from response to match types - // key = cert name, value = cert usage enum - var certUsages = client.GetCertUsageList(); - _logger.LogDebug($"Found {certUsages.Count} certificates with a matching usage"); + // get cert usage + // need request cert usage lists for each cert usage type, and parse names from response to match types + // key = cert name, value = cert usage enum + var certUsages = client.GetCertUsageList(); + _logger.LogDebug($"Found {certUsages.Count} certificates with a matching usage"); - var inventory = files.Select(f => new CurrentInventoryItem() - { - Alias = f.Key, - Certificates = new List() { f.Value }, - PrivateKeyEntry = false, - UseChainLevel = false, - Parameters = new Dictionary + inventoryItems = files.Select(f => new CurrentInventoryItem() { - { "Name", f.Key }, - { "CertificateUsage", certUsages.ContainsKey(f.Key) ? certUsages[f.Key].ToReadableText() : "" } - } - }).ToList(); + Alias = f.Key, + Certificates = new List() { f.Value }, + PrivateKeyEntry = false, + UseChainLevel = false, + Parameters = new Dictionary + { + { "Name", f.Key }, + { "CertificateUsage", certUsages.ContainsKey(f.Key) ? certUsages[f.Key].ToReadableText() : "" } + } + }).ToList(); + } + catch (Exception e1) + { + // Status: 2=Success, 3=Warning, 4=Error + return new JobResult() + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = $"Inventory Job Failed During Inventory Item Creation: {e1.Message} - Refer to the Orchestrator logs and Command API logs for more detailed information." + }; + } + + bool success = true; + Exception? error = null; - submitInventoryUpdate(inventory); + try + { + // Sends inventoried certificates back to KF Command + _logger.LogTrace("Submitting Inventory to Keyfactor via submitInventory.Invoke"); + success = submitInventoryUpdate.Invoke(inventoryItems); + } + catch (Exception e1) + { + success = false; + error = e1; + } + + if (!success) + { + // ** NOTE: If the cause of the submitInventory.Invoke exception is a communication issue between the Orchestrator server and the Command server, the job status returned here + // may not be reflected in Keyfactor Command. + return new JobResult() + { + Result = OrchestratorJobStatusJobResult.Failure, + JobHistoryId = jobConfiguration.JobHistoryId, + FailureMessage = $"Inventory Job Failed During Inventory Item Submission: {(error is not null ? error.ToString() : "Unknown error occurred.")} - " + + $"Refer to the Orchestrator logs and Command API logs for more detailed information." }; + } + + _logger.LogTrace("Successfully submitted Inventory To Keyfactor via submitInventory.Invoke"); return new JobResult() { Result = OrchestratorJobStatusJobResult.Success, - JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = "" + JobHistoryId = jobConfiguration.JobHistoryId }; } } diff --git a/docsource/content.md b/docsource/content.md index f5fe23c..3ba12d6 100644 --- a/docsource/content.md +++ b/docsource/content.md @@ -46,7 +46,18 @@ __Keyfactor Command before version 11__: copy the PowerShell to the ExtensionLib __Keyfactor Command version 11+__: upload the script using the API [documented here](https://software.keyfactor.com/Core-OnPrem/v11.5/Content/ReferenceGuide/PowerShellScripts.htm) so it can be used in an Expiration Alert Handler After installing the PowerShell script, create a collection for each certificate type (or one for all cert types) used on cameras. Create an expiration alert and configure the Event Handler similar to the one below. - + +**Inventory** + +> [!IMPORTANT] +> Bosch cameras can store different types of data in the certificate store. Some of these types include, but are not limited to, the following: +> * "Signing requests" +> * "Private keys" +> * "Certificate" +> * "Trusted Certificate" +> +> This integration will only retrieve data that are marked as type "Certificate" or "Trusted Certificate". + ##### Event Handler Configuration Parameter Name |Type |Value ----------------|---------------|------------ From 9bc4830ffe7b8cbaf2a8420e466544e92a1bc91b Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Thu, 19 Feb 2026 23:19:29 +0000 Subject: [PATCH 12/14] Update generated docs --- README.md | 11 +++++++++++ .../BoschIPCamera-basic-store-type-dialog.png | Bin 45843 -> 45845 bytes 2 files changed, 11 insertions(+) diff --git a/README.md b/README.md index b458a86..5e7669a 100644 --- a/README.md +++ b/README.md @@ -393,6 +393,17 @@ __Keyfactor Command version 11+__: upload the script using the API [documented h After installing the PowerShell script, create a collection for each certificate type (or one for all cert types) used on cameras. Create an expiration alert and configure the Event Handler similar to the one below. +**Inventory** + +> [!IMPORTANT] +> Bosch cameras can store different types of data in the certificate store. Some of these types include, but are not limited to, the following: +> * "Signing requests" +> * "Private keys" +> * "Certificate" +> * "Trusted Certificate" +> +> This integration will only retrieve data that are marked as type "Certificate" or "Trusted Certificate". + ##### Event Handler Configuration Parameter Name |Type |Value ----------------|---------------|------------ diff --git a/docsource/images/BoschIPCamera-basic-store-type-dialog.png b/docsource/images/BoschIPCamera-basic-store-type-dialog.png index 10a6c0453e0940f592073271875f1ebef4da49bb..3769bf21dd5a54a192fc1ad3f28cceb0cff59e0b 100644 GIT binary patch delta 28363 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 delta 28510 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 Date: Thu, 19 Feb 2026 16:59:59 -0700 Subject: [PATCH 13/14] Addressed potential memory leak; Added more logging --- BoschIPCamera/Client/BoschIPCameraClient.cs | 14 +++++++------- BoschIPCamera/Jobs/Management.cs | 6 +++++- BoschIPCamera/Jobs/Reenrollment.cs | 2 ++ CHANGELOG.md | 4 +++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/BoschIPCamera/Client/BoschIPCameraClient.cs b/BoschIPCamera/Client/BoschIPCameraClient.cs index cf34dcf..d2d2057 100644 --- a/BoschIPCamera/Client/BoschIPCameraClient.cs +++ b/BoschIPCamera/Client/BoschIPCameraClient.cs @@ -184,7 +184,7 @@ private async Task GenerateCsrOnCameraAsync(string payload) ); var requestUri = $"{_cameraUrl}{api}"; - var cancellationTokenSource = new CancellationTokenSource(); + using var cancellationTokenSource = new CancellationTokenSource(); var token = cancellationTokenSource.Token; _logger.LogTrace($"Sending API request: {requestUri}"); @@ -234,7 +234,7 @@ public void UploadCert(string fileName, string fileData) try { _logger.LogTrace("Get Auth call to camera on " + _baseUrl); - authRequest.GetResponse(); + using var response = authRequest.GetResponse(); } catch (Exception e) { @@ -291,7 +291,7 @@ private static void WriteToStream(Stream s, string txt) private async Task Download(string certName, string paramString = "") { - var source = new CancellationTokenSource(); + using var source = new CancellationTokenSource(); var token = source.Token; var cameraUrl = $"{_baseUrl}/cert_download/{certName.Replace(" ", "%20")}.pem{paramString}"; @@ -332,7 +332,7 @@ public string Change8021XSettings(bool onOffSwitch) // onOffSwitch - "0" means off, "1" means on private async Task Change8021X(bool onOffSwitch) { - var source = new CancellationTokenSource(); + using var source = new CancellationTokenSource(); var token = source.Token; var api = Constants.API.BuildRequestUri( @@ -379,7 +379,7 @@ public string RebootCamera() private async Task Reboot() { - var source = new CancellationTokenSource(); + using var source = new CancellationTokenSource(); var token = source.Token; var api = Constants.API.BuildRequestUri( @@ -432,7 +432,7 @@ public string GetCertWithUsage(Constants.CertificateUsage usage) _logger.MethodEntry(LogLevel.Debug); _logger.LogTrace($"Get cert with usage '{usage.ToReadableText()}' for camera " + _cameraUrl); - var source = new CancellationTokenSource(); + using var source = new CancellationTokenSource(); var token = source.Token; // payload = length + tag (0) + cert usage starting with 0 bit for end cert @@ -501,7 +501,7 @@ public string SetCertUsage(string certName, Constants.CertificateUsage usageCode //can be used to reset/clear existing cert usage and to set cert usage on a specific cert private async Task SetCertUsage(string payload) { - var source = new CancellationTokenSource(); + using var source = new CancellationTokenSource(); var token = source.Token; var api = Constants.API.BuildRequestUri( diff --git a/BoschIPCamera/Jobs/Management.cs b/BoschIPCamera/Jobs/Management.cs index 972b361..2148641 100644 --- a/BoschIPCamera/Jobs/Management.cs +++ b/BoschIPCamera/Jobs/Management.cs @@ -1,4 +1,4 @@ -// Copyright 2023 Keyfactor +// Copyright 2026 Keyfactor // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -51,6 +51,10 @@ public JobResult ProcessJob(ManagementJobConfiguration jobConfiguration) public JobResult removeCert(ManagementJobConfiguration jobConfiguration) { + _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace( + $"Begin Management for Client Machine {jobConfiguration.CertificateStoreDetails.ClientMachine}..."); + _logger.LogTrace($"Management Config {JsonConvert.SerializeObject(jobConfiguration)}"); BoschIpCameraClient client = new BoschIpCameraClient(jobConfiguration, jobConfiguration.CertificateStoreDetails, _pam, _logger); diff --git a/BoschIPCamera/Jobs/Reenrollment.cs b/BoschIPCamera/Jobs/Reenrollment.cs index 25591c3..d896c86 100644 --- a/BoschIPCamera/Jobs/Reenrollment.cs +++ b/BoschIPCamera/Jobs/Reenrollment.cs @@ -48,6 +48,8 @@ private JobResult PerformReenrollment(ReenrollmentJobConfiguration jobConfigurat try { _logger.MethodEntry(LogLevel.Debug); + _logger.LogTrace( + $"Begin Reenrollment for Client Machine {jobConfiguration.CertificateStoreDetails.ClientMachine}..."); var client = new BoschIpCameraClient(jobConfiguration, jobConfiguration.CertificateStoreDetails, _pam, _logger); diff --git a/CHANGELOG.md b/CHANGELOG.md index 4574d11..eeb7ceb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ 1.2.0 -- Improved ODKG workflow to prevent outages caused by deleting in-use certificate before new one is installed - Support for additional ODKG key algorithms and sizes +- Improved ODKG workflow to prevent outages caused by deleting in-use certificate before new one is installed +- Update Inventory Job to filter out non-certificate types +- Addressed memory leak potential (CWE-404) 1.1.2 - Update doc screenshots From a4eaddf52cf6040f21e9553f1e12f82a1c99c2bb Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Fri, 20 Feb 2026 00:02:34 +0000 Subject: [PATCH 14/14] Update generated docs --- .../BoschIPCamera-basic-store-type-dialog.png | Bin 45845 -> 45843 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docsource/images/BoschIPCamera-basic-store-type-dialog.png b/docsource/images/BoschIPCamera-basic-store-type-dialog.png index 3769bf21dd5a54a192fc1ad3f28cceb0cff59e0b..10a6c0453e0940f592073271875f1ebef4da49bb 100644 GIT binary patch delta 28510 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