From 04647b024a25465d4c26b8204765272e1fa3f747 Mon Sep 17 00:00:00 2001 From: Balazs Czoma Date: Fri, 3 Mar 2023 10:19:41 -0500 Subject: [PATCH 1/3] PubSub+ Event Broker Operator description and updates --- README.md | 202 ++--- docs/PubSubPlusOpenShiftDeployment.md | 528 +++-------- docs/images/PrometheusTargets.png | Bin 0 -> 68796 bytes templates/eventbroker_ha_template.yaml | 856 ------------------ .../eventbroker_singlenode_template.yaml | 571 ------------ 5 files changed, 187 insertions(+), 1970 deletions(-) create mode 100644 docs/images/PrometheusTargets.png delete mode 100644 templates/eventbroker_ha_template.yaml delete mode 100644 templates/eventbroker_singlenode_template.yaml diff --git a/README.md b/README.md index 7f7aae2..9d0f4cc 100644 --- a/README.md +++ b/README.md @@ -1,142 +1,112 @@ -[![Actions Status](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/workflows/build/badge.svg?branch=master)](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/actions?query=workflow%3Abuild+branch%3Amaster) +[![Actions Status](https://github.com/Solace/pubsubplus-openshift-quickstart/workflows/build/badge.svg?branch=master)](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/actions?query=workflow%3Abuild+branch%3Amaster) +# Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform -# Deploying a Solace PubSub+ Software Event Broker onto an OpenShift 4 Platform +Using the Solace PubSub+ Event Broker Operator (Operator) is the Kubernetes-native method to install and manage the lifecycle of a Solace PubSub+ Software Event Broker on any Kubernetes platform including OpenShift. -Solace [PubSub+ Platform](https://solace.com/products/platform/) is a complete event streaming and management platform for the real-time enterprise. The [PubSub+ software event broker](https://solace.com/products/event-broker/software/) efficiently streams event-driven information between applications, IoT devices, and user interfaces running in the cloud, on-premises, and in hybrid environments using open APIs and protocols like AMQP, JMS, MQTT, REST and WebSocket. It can be installed into a variety of public and private clouds, PaaS, and on-premises environments. Event brokers in multiple locations can be linked together in an [event mesh](https://solace.com/what-is-an-event-mesh/) to dynamically share events across the distributed enterprise. +>Note: We recommend using the PubSub+ Event Broker Operator. An alternative method using Helm is also available from an [earlier version of this repo](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/tree/v3.1.0). -## Overview - -This project is a best practice template intended for development and demo purposes. It has been tested using OpenShift v4.9. The tested and recommended Solace PubSub+ Software Event Broker version is 9.12. - -This document provides a quick getting started guide to install a Solace PubSub+ Software Event Broker in various configurations onto an OpenShift 4 platform. For OpenShift 3.11, refer to the [archived version of this quick start](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/tree/v1.1.1). - -For detailed instructions, see [Deploying a Solace PubSub+ Software Event Broker onto an OpenShift 4 platform](/docs/PubSubPlusOpenShiftDeployment.md). There is also a general quick start for [Solace PubSub+ on Kubernetes](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md) available, which the OpenShift deployment builds upon. - -The PubSub+ deployment does not require any special OpenShift Security Context; the default `restricted` SCC can be used. - -We recommend using the PubSub+ Helm chart for convenience. An alternative method [using OpenShift templates](/docs/PubSubPlusOpenShiftDeployment.md#step-4-option-2-deploy-using-openshift-templates) is also available. - -> Deprecation warning: deploying using OpenShift Templates is being phased out and the templates in this quickstart will be no longer maintained. The recommended deployment method is to use Helm. If Helm cannot be used then refer to the [PubSub+ Kubernetes documentation](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#alternative-deployment-with-generating-templates-for-the-kubernetes-kubectl-tool) to generate deployment manifests. - -## Pre-requisite: Access to OpenShift Platform +This repository extends the [Solace PubSub+ Event Broker Operator on Kubernetes](https://github.com/SolaceDev/pubsubplus-kubernetes-operator) guide providing additional specific instructions for OpenShift 4 Platform. -There are [multiple ways](https://www.openshift.com/try ) to get to an OpenShift 4 platform: -- The detailed [Event Broker on OpenShift](/docs/PubSubPlusOpenShiftDeployment.md#step-1-optional--aws-deploy-a-self-managed-openshift-container-platform-onto-aws) documentation describes how to set up production-ready Red Hat OpenShift Container Platform platform on AWS. -- An option for developers is to locally deploy an all-in-one environment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview). -- An easy way to get an OpenShift cluster up and running is through the [Developer Sandbox](https://developers.redhat.com/developer-sandbox) program. You can sign up for a free 14-day trial. +Contents: +- [Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform](#deploying-a-solace-pubsub-software-event-broker-using-operator-onto-an-openshift-4-platform) + - [Description of the Solace PubSub+ Software Event Broker](#description-of-the-solace-pubsub-software-event-broker) + - [Overview](#overview) + - [Step 1: Access to OpenShift Platform](#step-1-access-to-openshift-platform) + - [Step 2: Install the PubSub+ Event Broker Operator](#step-2-install-the-pubsub-event-broker-operator) + - [Step 3: Deploy the Solace PubSub+ Software Event Broker](#step-3-deploy-the-solace-pubsub-software-event-broker) + - [Contributing](#contributing) + - [Authors](#authors) + - [License](#license) + - [Resources](#resources) -## Deploying PubSub+ Software Event Broker +## Description of the Solace PubSub+ Software Event Broker -The event broker can be deployed in either a three-node High-Availability (HA) group, or as a single-node standalone deployment. For simple test environments that need only to validate application functionality, a single instance will suffice. Note that in production, or any environment where message loss cannot be tolerated, an HA deployment is required. +Solace [PubSub+ Platform](https://solace.com/products/platform/) is a complete event streaming and management platform for the real-time enterprise. The [PubSub+ Software Event Broker](https://solace.com/products/event-broker/software/) efficiently streams event-driven information between applications, IoT devices, and user interfaces running in the cloud, on-premises, and in hybrid environments using open APIs and protocols like AMQP, JMS, MQTT, REST and WebSocket. It can be installed into a variety of public and private clouds, PaaS, and on-premises environments. Event brokers in multiple locations can be linked together in an [Event Mesh](https://solace.com/what-is-an-event-mesh/) to dynamically share events across the distributed enterprise. -In this quick start we go through the steps to set up an event broker using [Solace PubSub+ Helm charts](https://artifacthub.io/packages/search?page=1&repo=solace). - -There are three Helm chart variants available with default small-size configurations: -- `solace-pubsubplus-openshift-dev` - deploys a minimum footprint software event broker for developers (standalone) -- `solace-pubsubplus-openshift` - deploys a standalone software event broker that supports 100 connections -- `solace-pubsubplus-openshift-ha` - deploys three software event brokers in an HA group that supports 100 connections - -For other event broker configurations or sizes, refer to the [PubSub+ Software Event Broker Helm Chart](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/pubsubplus/README.md) documentation. - -You can install Helm charts on an OpenShift Container Platform cluster using the following methods: -* The Developer perspective of the OpenShift Web Console; or -* The CLI - -## Option 1: Installing from the OpenShift Web Console, Developer perspective +## Overview -This simple method uses the OpenShift Web Console graphical interface: +This project is a best practice template intended for development and demo purposes. It has been tested using OpenShift v4.12. The tested and recommended Solace PubSub+ Software Event Broker version is 10.2. -* In a browser open the OpenShift Web Console, Developer perspective. -* Ensure not to use the `default` project, create a new project if required. -* Find and select the required PubSub+ Helm chart variant from the catalog, then click on "Install". -* Provide a unique Release Name. It is recommended to change the name that is offered by default. The maximum length of the Release Name should be 28 characters. -* If required, provide additional chart configurations. For options, consult the README link at the top of the page. Note that currently the "Form view" offers all the possible fields and the "YAML view" shows only those that have a current configuration value. It may be necessary to refresh the browser to display the latest in "YAML view". +This document provides a quick getting started guide to install the broker in various configurations onto an OpenShift 4 platform. -Additional information is available from the [OpenShift documentation](https://docs.openshift.com/container-platform/latest/applications/working_with_helm_charts/configuring-custom-helm-chart-repositories.html#odc-installing-helm-charts-using-Developer perspective_configuring-custom-helm-chart-repositories). +For additional documentation, see [/docs/PubSubPlusOpenShiftDeployment.md](/docs/PubSubPlusOpenShiftDeployment.md) in this repo. -## Option 2: Installing from CLI +## Step 1: Access to OpenShift Platform -### Step 1: Ensure command-line console access to your OpenShift environment +There are [multiple ways](https://www.openshift.com/try ) to get to an OpenShift 4 platform, including following examples: +- The detailed [Event Broker on OpenShift](/docs/PubSubPlusOpenShiftDeployment.md#deploy-a-production-ready-openshift-container-platform-onto-aws) documentation describes how to set up production-ready Red Hat OpenShift Container Platform platform on AWS. +- An option for developers is to locally deploy an all-in-one environment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview). However, note that this requires sufficient local resources, minimum 2 CPUs and 4GB memory additional to CodeReady resource requirements. -Assuming you have access to an OpenShift 4 platform, log in as `kubeadmin` using the `oc login -u kubeadmin` command. +## Step 2: Install the PubSub+ Event Broker Operator -Ensure your OpenShift environment is ready: +The certified PubSub+ Event Broker Operator is available in OpenShift from the integrated OperatorHub. Follow [Adding Operators to a cluster](https://docs.openshift.com/container-platform/latest/operators/admin/olm-adding-operators-to-cluster.html) in the OpenShift documentation to locate and install the "PubSub+ Event Broker Operator". ```bash -# This command returns the current user -oc whoami +# BEGIN: For internal use only, DELETE when publishing +# Pre-requisite: Docker login into the private registry that hosts the Operator image +# Run: docker login ghcr.io/solacedev, test locally to ensure it works: docker pull ghcr.io/solacedev/pubsubplus-eventbroker-operator:test + +# Create CatalogSource. First need to create pullsecret +oc create secret generic regcred --from-file=.dockerconfigjson=${HOME}/.docker/config.json --type=kubernetes.io/dockerconfigjson -n openshift-marketplace +# Apply manifest - note the namespace "openshift-marketplace" +cat <,image.tag= - ``` - - If it is required by the image repository, you can also add the following: - ```bash - --set image.pullSecretName= - ``` - -3. Use one of the following Helm chart variants to create a deployment (for configuration options and deletion instructions, refer to the [PubSub+ Software Event Broker Helm Chart](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/tree/master/pubsubplus#configuration) documentation): - - - Create a Solace PubSub+ minimum deployment for development purposes using `solace-pubsubplus-openshift-dev`. This variant requires a minimum of 1 CPU and 3.4 GiB of memory to be available to the PubSub+ event broker pod. - ```bash - # Deploy PubSub+ Standard edition, minimum footprint developer version - helm install my-release openshift-helm-charts/solace-pubsubplus-openshift-dev - ``` - - - Create a Solace PubSub+ standalone deployment that supports 100 connections using `solace-pubsubplus-openshift`. A minimum of 2 CPUs and 3.4 GiB of memory must be available to the PubSub+ pod. - ```bash - # Deploy PubSub+ Standard edition, standalone - helm install my-release openshift-helm-charts/solace-pubsubplus-openshift - ``` - - - Create a Solace PubSub+ HA deployment that supports 100 connections using `solace-pubsubplus-openshift-ha`. This deployment requires that at least 2 CPUs and 3.4 GiB of memory are available to *each* of the three event broker pods. - ```bash - # Deploy PubSub+ Standard edition, HA - helm install my-release openshift-helm-charts/solace-pubsubplus-openshift-ha - ``` - - All of the Helm options above start the deployment and write related information and notes to the console. - - Broker services are exposed by default through a Load Balancer that is specific to your OpenShift platform. For details, see the `Services access` section of the notes written to the console. - - > Note: the `solace-pubsubplus-openshift` Helm charts differ from the general `pubsubplus` charts in that the `securityContext.enabled` Helm parameter value is `false` by default, which is required for OpenShift. - -4. Wait for the deployment to complete, following any instructions that are written to the console. You can now [validate the deployment and try the management and messaging services](/docs/PubSubPlusOpenShiftDeployment.md#validating-the-deployment). - - > Note: There is no external Load Balancer support with CodeReady Containers. Services are accessed through NodePorts instead. Check the results of the `oc get svc my-release-pubsubplus` command. This command returns the ephemeral NodePort port numbers for each message router service. Use these port numbers together with CodeReady Containers' public IP addresses, which can be obtained by running the `crc ip` command. - -## Troubleshooting - -If you have any problems, refer to the [Troubleshooting](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#troubleshooting) section of the general PubSub+ Kubernetes Documentation for help. Substitute any `kubectl` commands with `oc` commands. - -If you need to start over, follow the steps to [delete the current deployment](/docs/PubSubPlusOpenShiftDeployment.md#deleting-a-deployment). +From here follow the steps in the [Solace PubSub+ Event Broker Operator Quick Start Guide](https://github.com/SolaceDev/pubsubplus-kubernetes-operator#3-install-the-solace-pubsub-software-event-broker-with-default-configuration) to deploy a single-node or an HA event broker. +>Note: the Operator will recognize the OpenShift environment and will adjust default broker spec parameters including use of certified RedHat images. For more information, refer to the [detailed documentation](docs/PubSubPlusOpenShiftDeployment.md#broker-spec-defaults-in-openshift) in this repo. ## Contributing diff --git a/docs/PubSubPlusOpenShiftDeployment.md b/docs/PubSubPlusOpenShiftDeployment.md index a039b52..47062c4 100644 --- a/docs/PubSubPlusOpenShiftDeployment.md +++ b/docs/PubSubPlusOpenShiftDeployment.md @@ -1,59 +1,31 @@ -# Deploying a Solace PubSub+ Software Event Broker onto an OpenShift 4 Platform - -Solace PubSub+ Software Event Broker meets the needs of big data, cloud migration, and Internet-of-Things initiatives, and enables microservices and event-driven architecture. Capabilities include topic-based publish/subscribe, request/reply, message queues/queueing, and data streaming for IoT devices and mobile/web apps. The event broker supports open APIs and standard protocols including AMQP, JMS, MQTT, REST, and WebSocket. As well, it can be deployed in on-premises datacenters, natively within private and public clouds, and across complex hybrid cloud environments. - -This repository provides an example of how to deploy the Solace PubSub+ Software Event Broker onto an OpenShift 4 platform, including the steps to set up a Red Hat OpenShift Container Platform platform on AWS. - - - -## Overview -There are [multiple ways](https://www.openshift.com/try ) to get to an OpenShift platform. This example uses the Red Hat OpenShift Container Platform for deploying an HA group of software event brokers, but the concepts are transferable to other compatible platforms. We also provide tips for how to set up a simple single-node deployment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview ) (the equivalent of MiniShift for OpenShift 4) for development, testing, or proof of concept purposes. - -The supported Solace PubSub+ Software Event Broker version is 9.10 or later. - -For the Red Hat OpenShift Container Platform, we use a self-managed 60-day evaluation subscription of [RedHat OpenShift cluster in AWS](https://cloud.redhat.com/openshift/install#public-cloud ) in a highly redundant configuration, spanning three zones. - -This repository expands on the [Solace Kubernetes Quickstart](//github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/README.md ) to provide an example of how to deploy Solace PubSub+ in an HA configuration on the OpenShift Container Platform running in AWS. - -The event broker deployment does not require any special OpenShift Security Context; the default ["restricted" SCC](https://docs.openshift.com/container-platform/latest/authentication/managing-security-context-constraints.html ) can be used. - - -### Related Information - -You might also be interested in one of the following: -- For a hands-on quick start using an existing OpenShift platform, refer to the [Quick Start guide](/README.md). -- For considerations about deploying in a general Kubernetes environment, refer to the [Solace PubSub+ on Kubernetes Documentation](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md) -- For the `pubsubplus` Helm chart configuration options, refer to the [PubSub+ Software Event Broker Helm Chart Reference](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/tree/master/pubsubplus#configuration). -- For OpenShift 3.11, refer to the [archived version of this project](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/tree/v1.1.1). - - -## Table of Contents -- [Production Deployment Architecture](#production-deployment-architecture) -- [Deployment Tools](#deployment-tools) - - [Helm Charts](#helm-charts) - - [OpenShift Templates](#openshift-templates) -- [Deploying Solace PubSub+ onto OpenShift / AWS](#deploying-solace-pubsub-onto-openshift-aws) - - [Step 1: (Optional / AWS) Deploy a Self-Managed OpenShift Container Platform onto AWS](#step-1-optional-aws-deploy-a-self-managed-openshift-container-platform-onto-aws) - - [Step 2: (Optional / ECR) Use a Private Image Registry](#step-2-optional-ECR-use-a-private-image-registry) - - [Step 3, Option 1: Deploy Using Helm](#step-3-option-1-deploy-using-helm) - - [Step 3, Option 2: Deploy Using OpenShift Templates](#step-3-option-2-deploy-using-openshift-templates) -- [Validating the Deployment](#validating-the-deployment) - - [Viewing the Bringup logs](#viewing-the-bringup-logs) -- [Gaining Admin and SSH Access to the Event Broker](#gaining-admin-and-ssh-access-to-the-event-broker) -- [Exposing PubSub+ Services](#exposing-pubsub-services) - - [Routes](#routes) +# Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform + +This document provides OpenShift-specific information for deploying the [Solace PubSub+ Software Event Broker](https://solace.com/products/event-broker/software/) on OpenShift, using the Solace PubSub+ Event Broker Operator (Operator). It complements and should be used together with the [PubSub+ Operator User Guide on general Kubernetes](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md). + +Contents: +- [Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform](#deploying-a-solace-pubsub-software-event-broker-using-operator-onto-an-openshift-4-platform) + - [Production Deployment Architecture](#production-deployment-architecture) + - [OpenShift Platform Setup Examples](#openshift-platform-setup-examples) + - [Deploy a Production-ready OpenShift Container Platform onto AWS](#deploy-a-production-ready-openshift-container-platform-onto-aws) + - [Deleting the AWS OpenShift Container Platform Deployment](#deleting-the-aws-openshift-container-platform-deployment) + - [Deploy CodeReady Containers for OpenShift](#deploy-codeready-containers-for-openshift) + - [Using a Private Image Registry for broker and Prometheus exporter images](#using-a-private-image-registry-for-broker-and-prometheus-exporter-images) + - [Using AWS ECR with CodeReady Containers](#using-aws-ecr-with-codeready-containers) + - [Deployment considerations](#deployment-considerations) + - [Broker Spec defaults in OpenShift](#broker-spec-defaults-in-openshift) + - [Accessing Broker Services](#accessing-broker-services) + - [Routes](#routes) - [HTTP, no TLS](#http-no-tls) - [HTTPS with TLS terminate at ingress](#https-with-tls-terminate-at-ingress) - [HTTPS with TLS re-encrypt at ingress](#https-with-tls-re-encrypt-at-ingress) - [General TCP over TLS with passthrough to broker](#general-tcp-over-tls-with-passthrough-to-broker) -- [Testing PubSub+ Services](#testing-pubsub-services) -- [Testing Data Access to the Event Broker](#testing-data-access-to-the-event-broker) -- [Deleting a Deployment](#deleting-a-deployment) - - [Delete the PubSub+ Deployment](#delete-the-pubsub-deployment) - - [Delete the AWS OpenShift Container Platform Deployment](#deleting-the-aws-openshift-container-platform-deployment) -- [Experimental: Using NFS for Persistent Storage](#experimental-using-nfs-for-persistent-storage) -- [Resources](#resources) - + - [Security Considerations](#security-considerations) + - [Helm-based Deployment](#helm-based-deployment) + - [Exposing Metrics to Prometheus](#exposing-metrics-to-prometheus) + - [Broker Deployment in OpenShift using the Operator](#broker-deployment-in-openshift-using-the-operator) + - [Quick Start](#quick-start) +- [Additional Resources](#additional-resources) +- [Appendix: Using NFS for Persistent Storage](#appendix-using-nfs-for-persistent-storage) ## Production Deployment Architecture @@ -67,39 +39,27 @@ The key parts to note in the diagram above are: - the OpenShift master nodes(s) - the CLI console that hosts the `oc` OpenShift CLI utility client -## Deployment Tools - -There are two options for tooling to use to deploy the Kubernetes cluster: Helm charts and OpenShift templates. +## OpenShift Platform Setup Examples -#### Helm Charts +You can skip this section if you already have your own OpenShift environment available. -The Kubernetes `Helm` tool allows great flexibility, allowing the process of event broker deployment to be automated through a wide range of configuration options including in-service rolling upgrade of the event broker. This example refers to the [Solace Kubernetes QuickStart project](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/tree/master ) for the Helm setting to use to deploy the event broker onto your OpenShift environment. +There are [multiple ways](https://www.openshift.com/try ) to get to an OpenShift platform. We provide a distibuted Production-ready example that uses the Red Hat OpenShift Container Platform for deploying an HA group of software event brokers, but the concepts are transferable to other compatible platforms. -#### OpenShift Templates +We also give tips for how to set up a simple single-node deployment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview ) (the equivalent of MiniShift for OpenShift 4) for development, testing, or proof of concept purposes. -> Deprecation warning: deploying using OpenShift Templates is being phased out and the templates in this quickstart will be no longer maintained. The recommended deployment method is to use Helm. If Helm cannot be used then refer to the [PubSub+ Kubernetes documentation](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#alternative-deployment-with-generating-templates-for-the-kubernetes-kubectl-tool) to generate deployment manifests. +The last sub-section describes how to use a private image registry,such as AWS ECR, together with OpenShift. -You can directly use the OpenShift templates included in this project, without any additional tools, to deploy the event broker in a limited number of configurations. Follow the instructions for deploying using OpenShift templates in [Step 3, Option 2](#step-3-option-2-deploy-using-openshift-templates), below. +### Deploy a Production-ready OpenShift Container Platform onto AWS -## Deploying Solace PubSub+ onto OpenShift / AWS - -The following steps describe how to deploy an event broker onto an OpenShift environment. Optional steps are provided for: -- setting up a self-managed Red Hat OpenShift Container Platform on Amazon AWS infrastructure (marked as *Optional / AWS*) -- using AWS Elastic Container Registry to host the Solace PubSub+ Docker image (marked as *Optional / ECR*). - -**Tip:** You can skip Step 1 if you already have your own OpenShift environment available. - -> Note: If you are using CodeReady Containers, follow the [getting started instructions](https://developers.redhat.com/products/codeready-containers/getting-started) to stand up a working CodeReady Containers deployment that supports Linux, MacOS, and Windows. At the `crc start` step it is helpful to: have a local `pullsecret` file created; specify CPU and memory requirements, allowing 2 to 3 CPU and 2.5 to 7 GiB memory for CRC internal purposes (depending on your platform and CRC version); also specify a DNS server, for example: `crc start -p ./pullsecret -c 5 -m 11264 --nameserver 1.1.1.1`. - -### Step 1: (Optional / AWS) Deploy a Self-Managed OpenShift Container Platform onto AWS - -This step requires the following: +This requires the following: - a free Red Hat account. You can create one [here](https://developers.redhat.com/login ), if needed. - a command console on your host platform with Internet access. The examples here are for Linux, but MacOS is also supported. -- a designated working directory for the OpenShift cluster installation. The automated install process creates files here that are required later for deleting the OpenShift cluster. - ``` - mkdir ~/workspace; cd ~/workspace - ``` +- a designated working directory for the OpenShift cluster installation. +>**Important:** The automated install process creates files here that are required later for deleting the OpenShift cluster. Use a dedicated directory and do not delete any temporary files. + +``` +mkdir ~/workspace; cd ~/workspace +``` To deploy the container platform in AWS, do the following: 1. If you haven't already, log in to your RedHat account. @@ -143,8 +103,28 @@ To deploy the container platform in AWS, do the following: 9. [Install](https://docs.openshift.com/container-platform/latest/installing/installing_aws/installing-aws-default.html#cli-installing-cli_installing-aws-default) the `oc` client CLI tool. 10. Verify that your cluster is working correctly by following the hints from step 8, including verifying access to the OpenShift web-console. +#### Deleting the AWS OpenShift Container Platform Deployment + +If you need to delete your [AWS OpenShift Container Platform deployment](#deploy-a-production-ready-openshift-container-platform-onto-aws), run the following commands: + +``` +cd ~/workspace +./openshift-install help # Check options +./openshift-install destroy cluster +``` + +This will remove all resources of the deployment. + +### Deploy CodeReady Containers for OpenShift -### Step 2: (Optional / ECR) Use a Private Image Registry +If you are using CodeReady Containers, follow the [getting started instructions](https://developers.redhat.com/products/codeready-containers/getting-started) to stand up a working CodeReady Containers deployment that supports Linux, MacOS, and Windows. + +At the `crc start` step it is helpful to: +* have a local copy of the OpenShift `pullsecret` file created; +* specify CPU and memory requirements, allowing 2 to 3 CPU and 2.5 to 7 GiB memory for CRC internal purposes (depending on your platform and CRC version); +* also specify a DNS server, for example: `crc start -p ./pullsecret -c 5 -m 11264 --nameserver 1.1.1.1`. + +### Using a Private Image Registry for broker and Prometheus exporter images By default, the deployment scripts pull the Solace PubSub+ image from the [Red Hat containerized products catalog](https://catalog.redhat.com/software/container-stacks/search?q=solace). If the OpenShift worker nodes have Internet access, no further configuration is required. @@ -160,11 +140,11 @@ However, if you need to use a private image registry, such as AWS ECR, you must --from-file=.dockerconfigjson=$(readlink -f ~/.docker/config.json) \ --type=kubernetes.io/dockerconfigjson ``` -4. Use the pull secret you just created (``) in the deployment section, Step 3, below. +4. Use the pull secret you just created (``) in the broker deployment manifest. -For additional information, see the [Using private registries](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#using-private-registries) and [Using ImagePullSecrets for signed images](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#using-imagepullsecrets-for-signed-images) sections of the Solace Kubernetes Quickstart documentation. +For additional information, see the [Using private registries](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#using-a-private-registry) section of the general Event Broker in Kubernetes documentation. -#### Using CodeReady Containers +#### Using AWS ECR with CodeReady Containers If you are using CodeReady Containers, you may need to perform a workaround if the ECR login fails on the console (e.g., on Windows). In this case, do the following: 1. Log into the OpenShift node: `oc get node` 2. Run the `oc debug node/` command. @@ -179,311 +159,34 @@ If you are using CodeReady Containers, you may need to perform a workaround if t 5. Run `podman pull ` to load the image locally on the CRC node. After you exit the node, you can use your ECR image URL and tag for the deployment. There is no need for a pull secret in this case. -### Step 3, Option 1: Deploy using Helm - -Using Helm to deploy your cluster offers more flexibility in terms of event broker deployment options, compared to those offered by OpenShift templates (see [Option 2](#step-3-option-2-deploy-using-openshift-templates)). - -Additional information is provided in the following documents: -- [Solace PubSub+ on Kubernetes Deployment Guide](//github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md) -- [Kubernetes Deployment Quick Start Guide](//github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/README.md) - -This deployment uses PubSub+ Software Event Broker Helm charts for OpenShift. You can customize it by overriding the [default chart parameters](//github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/tree/master/pubsubplus#configuration). - -Consult the [Deployment Considerations](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#pubsub-software-event-broker-deployment-considerations) section of the general Event Broker in Kubernetes Documentation when planning your deployment. - -To use broker TLS ports, you'll need to [configure certificates on the broker](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#enabling-use-of-tls-to-access-broker-services) or add [OpenShift's service CA bundle to the PubSub+ service](https://docs.openshift.com/container-platform/latest/security/certificates/service-serving-certificate.html#add-service-certificate-apiservice_service-serving-certificate). - -PubSub+ Software Event Broker Helm charts for OpenShift differ from the general PubSub+ Helm charts: -* The `securityContext.enabled` parameter is set to `false` by default, indicating not to use the provided pod security context but to let OpenShift set it using SecurityContextConstraints (SCC). By default OpenShift will use the "restricted" SCC. -* By default the latest [Red Hat certified image](https://catalog.redhat.com/software/container-stacks/search?q=solace) of PubSub+ Standard Edition is used from `registry.connect.redhat.com`. Use a different image tag if required or [use an image from a different registry](#step-2-optional--ecr-use-a-private-image-registry). If you're using a different image, add the `image.repository=,image.tag=` values (comma-separated) to the `--set` commands below. Also specify a pull secret if required: `image.pullSecretName=`. Consult the [Red Hat Knowledgebase](https://access.redhat.com/RegistryAuthentication#registry-service-accounts-for-shared-environments-4) if you run into issues with pulling the PubSub+ image. - -The broker can be [vertically scaled](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#deployment-scaling ) using the `solace.size` chart parameter. - -#### Steps: -1. Install Helm. Use the [instructions from Helm](//github.com/helm/helm#install), or if you're using Linux simply run the following command: - ```bash - curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash - ``` - Helm is configured properly if the command `helm version` returns no error. -2. Create a new project or switch to your existing project (do not use the `default` project as its loose permissions don't reflect a typical OpenShift environment): - ``` - oc new-project solace-pubsubplus # adjust your project name as needed here and in subsequent commands - ``` -3. Follow one of the examples below to deploy your cluster. - - ##### For an _HA_ Deployment: - ```bash - # One-time action: Add the PubSub+ charts to local Helm - helm repo add openshift-helm-charts https://charts.openshift.io/ - # Initiate the HA deployment - specify an admin password - helm install my-ha-release \ - --set solace.redundancy=true,solace.usernameAdminPassword= \ - openshift-helm-charts/solace-pubsubplus-openshift - # Check the notes printed on screen - # Wait until all pods are running, ready, and the active event broker pod label is "active=true" - oc get pods --show-labels -w - ``` - - ##### For a Single-Node, _Non-HA_ Deployment (Using a _Pull_ _Secret_): - ```bash - # One-time action: Add the PubSub+ charts to local Helm - helm repo add openshift-helm-charts https://charts.openshift.io/ - # Initiate the non-HA deployment - specify an admin password - helm install my-nonha-release \ - --set solace.redundancy=false,solace.usernameAdminPassword= \ - --set image.pullSecretName= \ - openshift-helm-charts/solace-pubsubplus-openshift - # Check the notes printed on screen - # Wait until the event broker pod is running, ready, and the pod label is "active=true" - oc get pods --show-labels -w - ``` - - **Note**: As an alternative to longer `--set` parameters, it is possible to define the same parameter values in a YAML file: - ```yaml - # Create example values file - specify an admin password - echo " - solace: - redundancy: false, - usernameAdminPassword: " > deployment-values.yaml - # Use values file - helm install my-release \ - -f deployment-values.yaml \ - openshift-helm-charts/solace-pubsubplus-openshift - ``` - -### Step 3, Option 2: Deploy Using OpenShift Templates - -This option use an OpenShift template and doesn't require Helm. This option assumes that you have completed [Step 2](#step-2-optional-using-a-private-image-registry) if required. +## Deployment considerations -#### About the Template: -- You can copy templates files from the GitHub location to your local disk, edit them, and use them from there. -- Before you deploy, ensure that you determine your event broker [disk space requirements](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#disk-storage). The `BROKER_STORAGE_SIZE` parameter in the template has a default value of 30 gigabytes of disk space. You may need to update this value. -- By default, the template provisions a broker supporting 100 connections. You can adjust `export system_scaling_maxconnectioncount` in the template to increase the number of connections, but you must also ensure that adequate resources are available to the pod(s) by adjusting both `cpu` and `memory` requests and limits. For details, refer to the [System Resource Requirements](https://docs.solace.com/Configuring-and-Managing/SW-Broker-Specific-Config/System-Resource-Requirements.htm) in the Solace documentation. -- If using you are using [TLS to access broker services](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#enabling-use-of-tls-to-access-broker-services), you must configure a server key and certificate on the broker(s). Uncomment the related parts of the template file in your local copy and also specify a value for the `BROKER_TLS_CERT_SECRET` parameter. +Consult the [Deployment Planning](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#deployment-planning) section of the general Event Broker in Kubernetes documentation when planning your deployment. +The following sections only apply to the OpenShift platform. -#### Steps: +### Broker Spec defaults in OpenShift -1. Define a strong password for the 'admin' user of the event broker, and then base64 encode the value: - ``` - echo -n 'strong@dminPw!' | base64 - ``` - You will use this value as a parameter when you process the event broker OpenShift template. -2. Create a new project or switch to your existing project (do not use the `default` project as its loose permissions don't reflect a typical OpenShift environment): - ``` - oc new-project solace-pubsubplus # adjust your project name as needed here and in subsequent commands - ``` -3. Follow one of the examples below to deploy your cluster. +The Operator will detect if (1) OpenShift platform is used and (2) the name of the OpenShift project (namespace) for the broker deployment. It will automatically adjust defaults to use for following parameters. It is always possible to overwrite defaults by explicitly specifying the parameters. +| OpenShift project (namespace) | Broker Spec Parameter | General Kubernetes defaults (for information) | OpenShift defaults | +| --- | --- | --- | --- | +| Any, excluding `default` - Note: it is recommended to NOT use the `default` project | `spec.securityContext.runAsUser` | 1000001| Not set (OpenShift will set it according to the OpenShift project settings ) | +|| `spec.securityContext.fsGroup` | 1000002 | Not set, as for the `runAsUser` | +| `default` - Note: not recommended | `spec.securityContext.runAsUser` | 1000001 | 1000001 | +|| `spec.securityContext.fsGroup` | 1000002 | 1000002 | +| All OpenShift projects | `spec.image` | solace/solace-pubsub-standard | registry.connect.redhat.com/solace/pubsubplus-standard | +| | `spec.monitoring.image` | solace/solace-prometheus-exporter | registry.connect.redhat.com/solace/pubsubplus-prometheus-exporter | - ##### For a Single-Node, _Non-HA_ Deployment: - This example uses all default values. You can omit default parameters. - - ``` - oc process -f https://raw.githubusercontent.com/SolaceProducts/pubsubplus-openshift-quickstart/master/templates/eventbroker_singlenode_template.yaml \ - DEPLOYMENT_NAME=test-singlenode \ - BROKER_ADMIN_PASSWORD= | oc create -f - - # Wait until all pods are running and ready - oc get pods -w --show-labels - ``` - - ##### For an _HA_ Deployment: - In this example, we specify values for all parameters. +While it is not configurable through a broker spec parameter, the Operator will also similarly adjust the `runAsUser` settings for the Prometheus exporter pod. - The `BROKER_IMAGE_REGISTRY_URL` and `BROKER_IMAGE_TAG` parameters default to **registry.connect.redhat.com/solace/pubsubplus-standard** and **latest**, respectively. +### Accessing Broker Services - ``` - oc process -f https://raw.githubusercontent.com/SolaceProducts/pubsubplus-openshift-quickstart/master/templates/eventbroker_ha_template.yaml \ - DEPLOYMENT_NAME=test-ha \ - BROKER_IMAGE_REGISTRY_URL= \ - BROKER_IMAGE_TAG= \ - BROKER_IMAGE_REGISTRY_PULLSECRET= - BROKER_STORAGE_SIZE=30Gi \ - BROKER_TLS_CERT_SECRET= # See notes above \ - BROKER_ADMIN_PASSWORD= | oc create -f - - # Wait until all pods are running and ready - oc get pods -w --show-labels - ``` - - -## Validating the Deployment - -If you encounter any issues with your deployment, refer to the [Kubernetes Troubleshooting Guide](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#troubleshooting) for help. Substitute any `kubectl` commands with `oc` commands. Before retrying a deployment, ensure to delete PVCs remaining from the unsuccessful deployment. Use the `oc get pvc` command to obtain a listing. - -From the console, validate your deployment by running the following command: -``` -$ oc get statefulset,service,pods,pvc,pv --show-labels -``` -The output should look like the following: -``` -NAME READY AGE LABELS -statefulset.apps/my-release-pubsubplus 3/3 23h app.kubernetes.io/instance=my-release,app.kubernetes.io/managed-by=Helm,app.kubernetes.io/name=pubsubplus,helm.sh/chart=pubsubplus-2.4.0 - -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE LABELS -service/my-release-pubsubplus LoadBalancer 172.30.129.136 ac4917b2be7734df09a296f5da4dce38-1140440410.eu-central-1.elb.amazonaws.com 2222:31020/TCP,8080:30035/TCP,1943:30695/TCP,55555:30166/TCP,55003:30756/TCP,55443:32303/TCP,55556:31861/TCP,8008:31233/TCP,1443:32104/TCP,9000:30811/TCP,9443:30173/TCP,5672:31234/TCP,5671:31165/TCP,1883:32291/TCP,8883:32292/TCP,8000:32086/TCP,8443:31426/TCP 23h app.kubernetes.io/instance=my-release,app.kubernetes.io/managed-by=Helm,app.kubernetes.io/name=pubsubplus,helm.sh/chart=pubsubplus-2.4.0 -service/my-release-pubsubplus-discovery ClusterIP None 8080/TCP,8741/TCP,8300/TCP,8301/TCP,8302/TCP 23h app.kubernetes.io/instance=my-release,app.kubernetes.io/managed-by=Helm,app.kubernetes.io/name=pubsubplus,helm.sh/chart=pubsubplus-2.4.0 - -NAME READY STATUS RESTARTS AGE LABELS -pod/my-release-pubsubplus-0 1/1 Running 0 23h active=true,app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pubsubplus,controller-revision-hash=my-release-pubsubplus-68d69ffb5,statefulset.kubernetes.io/pod-name=my-release-pubsubplus-0 -pod/my-release-pubsubplus-1 1/1 Running 0 23h active=false,app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pubsubplus,controller-revision-hash=my-release-pubsubplus-68d69ffb5,statefulset.kubernetes.io/pod-name=my-release-pubsubplus-1 -pod/my-release-pubsubplus-2 1/1 Running 0 23h app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pubsubplus,controller-revision-hash=my-release-pubsubplus-68d69ffb5,statefulset.kubernetes.io/pod-name=my-release-pubsubplus-2 - -NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE LABELS -persistentvolumeclaim/data-my-release-pubsubplus-0 Bound pvc-eb2c8a52-85d4-4bc2-a73d-884559a4e463 10Gi RWO gp2 23h app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pubsubplus -persistentvolumeclaim/data-my-release-pubsubplus-1 Bound pvc-ab428fa6-4786-4419-a814-a801a0860861 10Gi RWO gp2 23h app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pubsubplus -persistentvolumeclaim/data-my-release-pubsubplus-2 Bound pvc-3d77864d-3f90-42fe-939d-8a9324a62e20 10Gi RWO gp2 23h app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pubsubplus - -NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE LABELS -persistentvolume/pvc-3d77864d-3f90-42fe-939d-8a9324a62e20 10Gi RWO Delete Bound solace-pubsubplus/data-my-release-pubsubplus-2 gp2 23h failure-domain.beta.kubernetes.io/region=eu-central-1,failure-domain.beta.kubernetes.io/zone=eu-central-1a -persistentvolume/pvc-ab428fa6-4786-4419-a814-a801a0860861 10Gi RWO Delete Bound solace-pubsubplus/data-my-release-pubsubplus-1 gp2 23h failure-domain.beta.kubernetes.io/region=eu-central-1,failure-domain.beta.kubernetes.io/zone=eu-central-1c -persistentvolume/pvc-eb2c8a52-85d4-4bc2-a73d-884559a4e463 10Gi RWO Delete Bound solace-pubsubplus/data-my-release-pubsubplus-0 gp2 23h failure-domain.beta.kubernetes.io/region=eu-central-1,failure-domain.beta.kubernetes.io/zone=eu-central-1b - -[ec2-user@ip-10-0-23-198 ~]$ -[ec2-user@ip-10-0-23-198 ~]$ -[ec2-user@ip-10-0-23-198 ~]$ oc describe svc my-release-pubsubplus -Name: my-release-pubsubplus -Namespace: solace-pubsubplus -Labels: app.kubernetes.io/instance=my-release - app.kubernetes.io/managed-by=Helm - app.kubernetes.io/name=pubsubplus - helm.sh/chart=pubsubplus-2.4.0 -Annotations: meta.helm.sh/release-name: my-release - meta.helm.sh/release-namespace: solace-pubsubplus -Selector: active=true,app.kubernetes.io/instance=my-release,app.kubernetes.io/name=pubsubplus -Type: LoadBalancer -IP: 172.30.129.136 -LoadBalancer Ingress: ac4917b2be7734df09a296f5da4dce38-1140440410.eu-central-1.elb.amazonaws.com -Port: tcp-ssh 2222/TCP -TargetPort: 2222/TCP -NodePort: tcp-ssh 31020/TCP -Endpoints: 10.129.2.14:2222 -Port: tcp-semp 8080/TCP -TargetPort: 8080/TCP -NodePort: tcp-semp 30035/TCP -Endpoints: 10.129.2.14:8080 -Port: tls-semp 1943/TCP -TargetPort: 1943/TCP -NodePort: tls-semp 30695/TCP -Endpoints: 10.129.2.14:1943 -Port: tcp-smf 55555/TCP -TargetPort: 55555/TCP -NodePort: tcp-smf 30166/TCP -Endpoints: 10.129.2.14:55555 -Port: tcp-smfcomp 55003/TCP -TargetPort: 55003/TCP -NodePort: tcp-smfcomp 30756/TCP -Endpoints: 10.129.2.14:55003 -Port: tls-smf 55443/TCP -TargetPort: 55443/TCP -NodePort: tls-smf 32303/TCP -Endpoints: 10.129.2.14:55443 -Port: tcp-smfroute 55556/TCP -TargetPort: 55556/TCP -NodePort: tcp-smfroute 31861/TCP -Endpoints: 10.129.2.14:55556 -Port: tcp-web 8008/TCP -TargetPort: 8008/TCP -NodePort: tcp-web 31233/TCP -Endpoints: 10.129.2.14:8008 -Port: tls-web 1443/TCP -TargetPort: 1443/TCP -NodePort: tls-web 32104/TCP -Endpoints: 10.129.2.14:1443 -Port: tcp-rest 9000/TCP -TargetPort: 9000/TCP -NodePort: tcp-rest 30811/TCP -Endpoints: 10.129.2.14:9000 -Port: tls-rest 9443/TCP -TargetPort: 9443/TCP -NodePort: tls-rest 30173/TCP -Endpoints: 10.129.2.14:9443 -Port: tcp-amqp 5672/TCP -TargetPort: 5672/TCP -NodePort: tcp-amqp 31234/TCP -Endpoints: 10.129.2.14:5672 -Port: tls-amqp 5671/TCP -TargetPort: 5671/TCP -NodePort: tls-amqp 31165/TCP -Endpoints: 10.129.2.14:5671 -Port: tcp-mqtt 1883/TCP -TargetPort: 1883/TCP -NodePort: tcp-mqtt 32291/TCP -Endpoints: 10.129.2.14:1883 -Port: tls-mqtt 8883/TCP -TargetPort: 8883/TCP -NodePort: tls-mqtt 32292/TCP -Endpoints: 10.129.2.14:8883 -Port: tcp-mqttweb 8000/TCP -TargetPort: 8000/TCP -NodePort: tcp-mqttweb 32086/TCP -Endpoints: 10.129.2.14:8000 -Port: tls-mqttweb 8443/TCP -TargetPort: 8443/TCP -NodePort: tls-mqttweb 31426/TCP -Endpoints: 10.129.2.14:8443 -Session Affinity: None -External Traffic Policy: Cluster -Events: -``` - -Find the **'LoadBalancer Ingress'** value listed in the service description above. This is the publicly accessible Solace Connection URI for messaging clients and management. In the example, it is `ac4917b2be7734df09a296f5da4dce38-1140440410.eu-central-1.elb.amazonaws.com`. - -> **Note**: There is no external Load Balancer support with CodeReady Containers. Services are accessed through NodePorts instead. To access the brokers, use the NodePort port numbers together with the CodeReady Containers' public IP addresses, which can be obtained by running the `crc ip` command. - -### Viewing the Bringup Logs - -To see the deployment events, navigate to: - -- **OpenShift UI > (Your Project) > Applications > Stateful Sets > ((name)-pubsubplus) > Events** - -You can access the log stack for individual event broker pods from the OpenShift UI, by navigating to: - -- **OpenShift UI > (Your Project) > Applications > Stateful Sets > ((name)-pubsubplus) > Pods > ((name)-solace-(N)) > Logs** - - Where **(N)** above is the ordinal of the HA role of the PubSub+ broker: - - 0: Primary event broker - - 1: Backup event broker - - 2: Monitor event broker - -![alt text](/docs/images/Solace-Pod-Log-Stack.png "Event Broker Pod Log Stack") - - -## Gaining Admin and SSH Access to the Event Broker - -To access the event brokers, use the Solace Connection URI associated with the load balancer generated by the OpenShift template. As described in the introduction, you access the brokers through the load balancer service, which always point to the active event broker. The default port is 2222 for CLI and 8080 for SEMP/[Solace PubSub+ Broker Manager](https://docs.solace.com/Solace-PubSub-Manager/PubSub-Manager-Overview.htm). - -If you deployed OpenShift in AWS, then the Solace OpenShift QuickStart will have created an EC2 Load Balancer to front the event broker / OpenShift service. The Load Balancer public DNS name can be found in the AWS EC2 console in the 'Load Balancers' section. - -To launch Solace CLI or SSH into the individual event broker instances from the OpenShift CLI, use the following commands: - -``` -# CLI access -oc exec -it XXX-XXX-pubsubplus-X -- cli # adjust pod name to your deployment -# shell access -oc exec -it XXX-XXX-pubsubplus-X -- bash # adjust pod name to your deployment -``` - -You can also gain access to the Solace CLI and container shell for individual event broker instances from the OpenShift UI. A web-based terminal emulator is available from the OpenShift UI. Navigate to an individual event broker Pod using the OpenShift UI: - -- **OpenShift UI > (Your Project) > Applications > Stateful Sets > ((name)-pubsubplus) > Pods > ((name)-pubsubplus-(N)) > Terminal** - -Once you have launched the terminal emulator to the event broker pod you can access the Solace CLI by executing the following command: - -``` -/usr/sw/loads/currentload/bin/cli -A -``` - -![alt text](/docs/images/Solace-Primary-Pod-Terminal-CLI.png "Event Broker CLI via OpenShift UI Terminal emulator") - -See the [Solace Kubernetes Quickstart README](//github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#gaining-admin-access-to-the-event-broker ) for more details, including admin and SSH access to the individual event brokers. - -## Exposing PubSub+ Services - -The principles of exposing services described in the [PubSub+ in Kubernetes documentation](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#exposing-the-pubsub-software-event-broker-services) apply: +The principles of exposing services described in the [general Kubernetes documentation](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#accessing-broker-services) apply: * LoadBalancer is the default service type and can be used to externally expose all broker services. This is an option for OpenShift as well and will not be further discussed here. * Ingress and its equivalent, OpenShift Routes, can be used to expose specific services. -### Routes +#### Routes OpenShift has a default production-ready [ingress controller setup based on HAProxy](https://docs.openshift.com/container-platform/latest/networking/understanding-networking.html#nw-ne-openshift-ingress_understanding-networking). Using Routes is the recommended OpenShift-native way to configure Ingress. Refer to the OpenShift documentation for [more information on Ingress and Routes](https://docs.openshift.com/container-platform/latest/networking/understanding-networking.html#nw-ne-openshift-ingress_understanding-networking) and [how to configure Routes](https://docs.openshift.com/container-platform/latest/networking/routes/route-configuration.html). @@ -548,67 +251,46 @@ Here the example PubSub+ SMF messaging service can be accessed at `tcps://smf.my The API client must support and use the SNI extension of the TLS handshake to provide the hostname to the OpenShift router for routing the request to the right backend broker. -## Testing PubSub+ Services +### Security Considerations -A simple option for testing data traffic though the newly created event broker instance is the [SDKPerf tool](https://docs.solace.com/SDKPerf/SDKPerf.htm). Another option to quickly check messaging is [Try Me!](https://docs.solace.com/Solace-PubSub-Manager/PubSub-Manager-Overview.htm#Test-Messages), which is integrated into the [Solace PubSub+ Broker Manager](https://docs.solace.com/Solace-PubSub-Manager/PubSub-Manager-Overview.htm). +The event broker deployment does not require any special OpenShift Security Context; the default most restrictive ["restricted-v2" SCC](https://docs.openshift.com/container-platform/latest/authentication/managing-security-context-constraints.html) can be used. -To try building a client, visit the Solace Developer Portal and select your preferred programming language to [send and receive messages](http://dev.solace.com/get-started/send-receive-messages/ ). For each language there are samples that will help you get started. +### Helm-based Deployment ->**Note**: The Host to be used is the Solace Connection URI. +We recommend using the PubSub+ Event Broker Operator. An alternative method using Helm is described and available from an [earlier version of this repo](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/tree/v3.2.0). -## Deleting a Deployment -You can delete just the PubSub+ deployment, or tear down your entire AWS OpenShift Container Platform. +## Exposing Metrics to Prometheus -### Delete the PubSub+ Deployment - -To delete the deployment or to start over from Step 3 in a clean state, do the following: - -- If you used [Step 3, Option 1 (Helm)](#step-3-option-1-deploy-using-helm) to deploy, execute the following commands: - - ``` - helm list # lists the releases (deployments) - helm delete XXX-XXX # deletes instances related to your deployment - "my-release" in the example above - ``` +OpenShift ships with an integrated customized Prometheus deployment, however with restrictions: +* Monitoring must be enabled for user-defined projects, only default platform monitoring is enabled by default +* The Grafana UI has been removed in OpenShift 4.11. Only built-in Dashboards are available. -- If you used [Step 3, Option 2 (OpenShift templates)](#step-3-option-2-deploy-using-openshift-templates) to deploy, run the following: +Monitoring must be enabled for user-defined projects by [creating a `user-workload-monitoring-config` ConfigMap object](https://docs.openshift.com/container-platform/latest/monitoring/enabling-monitoring-for-user-defined-projects.html) in the `openshift-user-workload-monitoring` project. - ``` - oc process -f DEPLOYMENT_NAME= | oc delete -f - - ``` +After this, the only step required to [connect the broker metrics with Prometheus](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#connecting-with-prometheus) is to [create a ServiceMonitor object](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#creating-a-servicemonitor-object) in the project where the broker has been deployed. -> **Note:** The commands above do not delete the dynamic Persistent Volumes (PVs) and related Persistent Volume Claims (PVCs). If you recreate the deployment with the same name and keep the original PVCs, the original volumes will be mounted with the existing configuration. +Check the OpenShift admin console in "Administrator" view to verify that the event broker deployment monitoring endpoint has been connected to Prometheus: +![alt text](/docs/images/PrometheusTargets.png "Prometheus targets") -To delete the PVCs (which also deletes the PVs), run the following commands: +Regarding Grafana UI, enabling custom Dashboards requires the community Grafana Operator installed from OpenShift's OperatorHub and then connected to OpenShift Prometheus via a GrafanaDataSource. -``` -# List PVCs -oc get pvc -# Delete unneeded PVCs -oc delete pvc -``` +## Broker Deployment in OpenShift using the Operator -To remove the project or to start over in a clean state, delete the project using the OpenShift console or the command line: -``` -oc delete project solace-pubsubplus # adjust your project name as needed -``` -For more details, refer to the [OpenShift Projects](https://docs.openshift.com/container-platform/latest/welcome/index.html) documentation. +### Quick Start -### Deleting the AWS OpenShift Container Platform Deployment +Refer to the [Quick Start guide](/README.md) in the root of this repo. It provides information about [installing the Operator](/README.md#step-2-install-the-pubsub-event-broker-operator) and [deploying the PubSub+ Event Broker](/README.md#step-3-deploy-the-solace-pubsub-software-event-broker). -To delete your OpenShift Container Platform deployment that was set up at [Step 1](#step-1-optional--aws-deploy-a-self-managed-openshift-container-platform-onto-aws), run the following commands: +# Additional Resources -``` -cd ~/workspace -./openshift-install help # Check options -./openshift-install destroy cluster -``` - -This will remove all resources of the deployment. +For more information about Solace technology in general please visit these resources: +- The Solace Developer Portal website at: http://dev.solace.com +- Understanding [Solace technology.](http://dev.solace.com/tech/) +- Ask the [Solace community](http://dev.solace.com/community/). -## Experimental: Using NFS for Persistent Storage +# Appendix: Using NFS for Persistent Storage -> **Important:** This is only provided for information only as NFS is currently not supported for PubSub+ production deployment. +> **Important:** This section is provided for information only as NFS is currently not supported for PubSub+ production deployment. The NFS server shall be configured with "root_squash" option. @@ -646,11 +328,3 @@ If you're using a template to deploy, locate the volume mount for `softAdb` in t # mountPath: /usr/sw/internalSpool/softAdb # subPath: softAdb ``` - -## Resources - -For more information about Solace technology in general please visit these resources: - -- The Solace Developer Portal website at: http://dev.solace.com -- Understanding [Solace technology.](http://dev.solace.com/tech/) -- Ask the [Solace community](http://dev.solace.com/community/). \ No newline at end of file diff --git a/docs/images/PrometheusTargets.png b/docs/images/PrometheusTargets.png new file mode 100644 index 0000000000000000000000000000000000000000..335fab12974882a61572d4f7334e8f698513fa89 GIT binary patch literal 68796 zcmcG$c|6qLA3v&6kx*1V6iP)1S+g$@*_W|ouf$lg?}o942$gj#gD@D&*tfByELq1k zW8bnHgN!l8SngEcf9~Vn``_=r9}katFXw&Ed7tyzU(c5hdOB+KSJPW~C2b`ts>%eq zg7cJqawm%z^yt`0+{M?%y)=o~^*_dD00uo6IiX z+S*!AO&OPREacwm_Wv^n%CURx{?O%rr+(+o2mLz>VY&N%@Mf;xcebXPrUGNkr+)Ds zFuN}vcG~3r102+8!|`vt-5k>4(b1eo*W!fVQlyB~(puTQZ{2DTm)WWdA<+J2DNM64 z=GET6##D?~LR+t~%{3L|K6RBY{%O9ll($WN{J)+;uC3F(-WbT}_2oY*%y-C?^x;+b z_huSN}`Z|7rSvj;7>98d9fcZbrMnUS1Bt z3ERQUNrrt0)tkNLo~+`3b89e9@XA3MRtFtm1iULF$DX>v>zwv1V;w)p>t1HKqqj5H z5*}${SqoadMkUw>&I15*SRqe z#%&-S{GDy@QFdpEW4Zkg^fBLBov(Ct7U70$|kEFFJz)Yfuml6x*ej$~H1LX}li1`dG1ri*HP}!nj?o(s zXM2E5NQj(mD)^!!&8N}vA@5|EW*?$Bn<8Mo<^H3_VU1xAG6L?5xmkT77?w0c!mov& zcZWq}%SZyl90$_HtHa&5LvoP$IkZ&ixJEqN;>9DbUxNMqi-w9z z40qO-JuW`V5Oa9L8S5|JFAuq!^ZHuRs_@|Vr5i!_S!+a9&HWS1`_jLJ z=cc;TWgyc_KyH^wT6!qMCGk-$jvv%rT6c$L)uUwejH~Um$>?f41K`adHCn4!iaAa6 z;bohVPxq9!a+W5mf!=-6F3h|5nMht7unxZ;w0mMC5eIx)DF$NTN=ROi!h*5LmRZb!eUIUmF#XyMlNX0YWY(7rB; zxq`fo5eRZ_IcoZ%#9%sl*;HA>Nj9}MP}}KngcXLYvi~YB|C0?`8_8JOd}bD2%>8ca zT)%6aS_e9If4{;rcP&o1V*G4hE&Y#7lO~HgDuV^Zm)j zMn1H6x^dp?-ouK>ymEb{XM)*c%_LA`<2^<-n>MX6+;;nJ2GEN6TZXVrq#VbW9&BUa z=2$U~uhs>M|6bB`+icn&iXZUNavQPK9%nZc3zb7DW`pEjv-49X8=@9YJK-okhk=ICM#>C^yo?9PkE3-8aK|1J(hhorAo}*tquN34+`C zv1QX3SX|3(fO@X~6=p>c$HFWtv-rrYrpU5WQskU$btWxM(_gjbmzFj!w(4tQfAMv{ zm?#QQGmHc4rFy(7J9^bntlMZjH|oBfE6|=?Qr{oRyImHhs`` zn_F*#by?Isn(KMYBlEgRajM+zJk0)Ep8{^gtc#Yt|{Smdc%{C8Chwljj znHG#Gw0`e>GhYk$b)>w40EdQW)LJVg5y)4^TFI{#1FO2Yp-BC6|3VCbP-=2Z(In91QyGWnwQZ= zLl^`oL~i42cm0dMUZcVTZ3hKFm0(R^u6C^8==CU>yAB7a{R1Z}WpafCd8`<~!}G_I zSJtqp822?J7ee+5 zG2n4+*W+dY@0FBcexLHoebpUbNdp_@5MaQRw{%)Wqqr+(;sGPm=A^L%U2 z!NQy_YO|@5SMS3F5HP>l3)nS^i}4Ze2HiKK@ORg91=2Dz&rMPJ!-eq6d*iHt-twJ+ zj3&;Y({zIf?r;Bn;k8^79JV|E8d@-SRTO1;9!0$_D}#B$=>^k3KyGfaST2y~Z9QGg0;QL$s>Tp26LE;R|GF%44K1&ld=RpKxRmge3shxr} zGv}RA@K>2@cIBzG-y*xczW!=;;ob#mpyXb_-aLtO-_UVCKwl23*c7lTB)~SMt{qwClk!9aJ`)wb?_XWjn=T7I zMFy&5bO-0Jat?YK-7c3fxZMiU?>krmogE*_4 z_N??r6Zg!XA$gQz`auF>!+gU)j=I&=gq}sE=RLu@zxDO4=N~0+$CghAkJ1cMf9sD* zXMJ{wbX9afPT}ocl$Pkj<7XLbJ=8?4=^)sCR?iwkIpp30l>fc(z{s^glymyY{tOH1 zgyHWtlm76rESqe2V3#LKj>S>N=a1^)U9OtzqE^+~-QC~RO~Thp1l+qtO=?yOJ%2H? za=QP-_7d}33FrMrI*#{OTO;bW@&s*`D%0_%&$IrU)Js;dU?TaD4N^y9A-Aw6j?a@e zAuNQ&OmjZsunF6|WL~0D0BoE(Xj-JjIA}lY3XHFarAbi#tE#ml<^_+P*H+P~6h0xI z!>2AlJh^;_v&5w~8^FgOTtK|FZv37|a2N9Z;m?ZpI~EH%sLBSDcc058!lU6WZ7(Np z8|q2(M41mx#qH0t7!my1_m1q1n2ah9oR@eCYKj3;1>&PAb0eZzmy4|ZocC5r%j$oD z%bIix(4ujd8~`JHNA`*e?=3o#?$DRr%FlqX%*Mat=z$~eK>*W&I(Lx3nMUH11>#B& z4fkK8ds`0h>R}aE29fMSkAuFx?UT+Weh0R3|2Ec#X1V=$=~t%%RFa=)IPkWQ-HhDq zvOC^FqE6W8 zDWsdjS2isZT5)T0Xq~of!(5e}+j;mpc0NU&-4M28@DNlSC!O&);|LxAWeON&zc4SR zm?iyj>;`fU*>hG0bNwQ+>~{J{FTcgiFwU@Z|7@P zH+QRRq4&-AZSxk*z`QMk0>SEM85A2NL1WD07R^AbgX7%mFI&o)`r>UNi-v18C}wW03Tx$(@^(?kK3a zYOc9RY{Ro*)kNrPCQ!m*E+V>*eXd~}vX&`m?XDUgAt4ZPd%P@f&uzQvyV--9SM#%% zNFVJl9?i%wCn~=Sc$L9d2LsM+wYEAswxm0@4AUP$R{Ev2Zod92Nyq$^fp@q+t(ZCr zaB(AmyZi>LrRZ|}Mp8jTA~-~={SJyjf~)T_GyfGr#PxS#M(x_>VRkenW`6Hz47=D^ zbk{p-$9k<7rB*z+JDV+!a*F{~;uAy0${0!0up9aa+WY7SD|T_<`VUs1CGA?yYLg8S zZuix0@b+Ok?QW;aCsfX+3-#*Z;RHHBdkB$9IQqar1cEWkA$li&wrn)3iHp z(5vY>J4`g;05|PKQJP1q8LpXsokk90Sey%LL>jh4VgKKmc9%p4`tg~!%%_MF1#Qoq zOrAXEMwoINvfeI%sNJ?zg3Fc3@}jW&^EyZ8=*pC1D4y@di@p7RFDeU|V=E}CFM3Td z@P?V9P#ra&O`ImbVe9FmtVehVERNB%Ocr9GuqgE~@7IxZ-s|2XjF4Pe5=dghBr)>{ zd46!!@UsVtt=bc1gEadW_#AS)X=a8$Qjj3e|3luM?*9K%4Um(!~1DzB5LBdRWLo7?gBu#-{|(TYSB!Jhk5WjQhXOn!0VL#ka14 zO^c1sauR|)S3pBr-%6aP>vVcMlMKY#Uy4RNuC(9lg55Rs3X9*byB&j;vutnmxFD|Z zXyU0d)~6Hjn_GFTKtqt%=3a~R@@@2>9jaNt`=U3gG8QY3BGg!MikNbyG{XJ!q8t;m z7MV}Van|F?P+C5>s5#> zx9dA5vz(C*t{L{|h>w~bb&9s7RZWF#Pf5Kux5%v!4~N7ipY1$r-UI7H5qlPy*ur_ORZP_W5`D}G%dSH`k0{X;)t{#fPkWLJF zCeM}8yKOh_v+n!#b|<&bNBn0wZTSnJ9Dd7uCrjIN-*f%q+vuOh$8{V4{nDZ+qwqftMX-rFB3TMgq4nj7MzL9^$3f1`I?Z}c^ zQ`FRyz=boT{`I*kxq$tOs4F-5I?{iU|IjR#U27XCrJv#&WV7qhl3M1DIi6&_Omob2 zfti`VJXd}BkI}01ka=LI>D}bBTfjZR)v2_FG^8@asKfi>Q?}`F8@o1b+54pu%-WQt z=AqeJe0`ImA$U`;q>4D&)kPOJv!ELg16SCCY+hF2c_6f4O4fO%LH{D%Ekpe3fVj(y zqzsikyrW6s+AOCZ_fNZ1uIp^oA02|fy&HYky^Oy)1_`lQ?T3hat?Pki?XtMDd5!9A z`)ecWE?*qhQWSW5)0FvzsFI|w+u#$lqxS89$YMvQut@G`paxA7Ucjn(f}!hu zolYVu>5L<39%WH7OmWmk5OIyj80ZF4enXOf3|?)YwJ>? z6{w_e-mRRW1(bg>5 ztt>f^F(qtRU)Xpd2uhL-_bvud;xA(CZ`0=7=&RWQ@WFTUN!()2bm`5JAX9+XEH#fd z2lK8d8K`lqNs}kw($P%!B2*P^`EMT4&yk`G%xSSbi~4rbl?}H=?fPkMZHW|YYrX2H z-qRXFtxr}LvVWvFVlzsTfUkqpc&%Df0DLGBC|~VDQ8DMF6UU$QLGETiz>D86$~*#| zcZH=|_(pL-Bd@YD)g;)pv;+{Ux;M1`*ann6uv3v4ib}K5XlLENYxZ&mKkGd5zB}oQ z=uD^>-jOX*{Nb|fW#3}iQ4TA=8MLPy9`Y@VmL{FUU7J=J5HLjjpSI$V;d6!^zZs+V zI}$(t#8@Z?%lSXM7-c!yqvAJ%zYj1He+%-9ES7glA>5fMIFp^;ixsS9s223)xeZJD z>-kVoZ8QFPiS`r32RDPZR$h{#I6L0C?k1Do6c4$CHx3A&N?%cC*k%g({5mWe2KY1- z_8}6~gxnPRH|Dk+<^71_^G+HwkXKOJuaI~?t-}B8p2)4FJJv;RG;_Tbs)rqwQNmjA z-t_j;ACGOqqP7*Yk=nAvCVD{DxM5|Sql`aywEZPYfORqj8B-3LwzHloxV&@Imtae* zj4;vu@9#(p`ieP1DQ?71PGO$h(RR|cPvjQTbCshQd|vf=fv=nO$Z&FUB3aCt{X8$v z_XlVR)w{sPUS&ypZ-u0p)^D`<{)nXaDP+ATGZ-B`d6}{ZuSVXDmZDmms}U=GscnT1 zkF>50znjmzO|1LFB~(-#wtqwaneH7-u!t<=X4&g7uWg@WS;%HHEI+$Az-bj^JWgLC zmQ`%*wAUzue$wY(hXU3)??qV5QPT{FP|P1Hq2<=dnL5+d9-FY>dzxJ7Cr_~=Sg$p_ zMX+BVn_cz{?pC_2elhs!zb|yA*_Z2(y%1#g_mUDdi-jZqo&MkQ3h?cJ(QqoO5T^fM z@(%wmWBwmYaP0P^-zWZ&^iAHluTw&8`AiQrCpQXWSsYJ~-ygXgQwvy0>du1p$Hp8) z#RAt~+4g)f6?bfXw{~0nO`3)r`C|a_L+W_nKHUMscED=TQEiEfs(zlOMVxy_pJB}TSaJKeoTZPWhp+oR^UpE_TeVySK` z&{QbYl_zN>f{)dWtcpsvIlTapS2vOcfE+TYE`n37{V)?fo2&{YW;o`AkQlQ`kb~9X z<}24O2p7BHQqgVmg*qCJv#_#TkB zBCj5KZ(GQ$*8x%1d?%Uw3wB|FWFlupx3)a978YHIV7CzM$L1)7<2LMCGiaM3R9UaX z0-;);g!I3wC@HlLjg^?F&4ZuH+q1U`n3ej@;YxY3`}4XG;#GyLJ6>DwT>GB*8<$!X zYe9~2HK1Vf{z(VJ9xHxTXoy8Qa$?Cvodcvr7fc?QOAQIZ1)PO%Q$CAp zH@MUsxC6YG5b~9`vfg_%;G|Jhu_Q%E|EtP}ByMju5EK*~oPJ!L#n5+rkxqO$HuT7L zRSX%C!&^YpQ8N@42!Lt(QgV)e4&Pzb`P?5-$vnC)H~X`#r|T|C0t$*pf$JZ%AcloL z0uR-{bm(;701zZJQy%wzmdg;O$cRrn#Y~+9(>4@(v#f5DNKzyL``7#9WB~yvLv5%q zo<(N1z>`NCa-1i}&=Jv_%*V9+Z&$C!_~f9H#`;pkODx%a4iKK1#Z{UII1*N<_T8Mt z*&PKA!#$VN@9#CBvW@Ii`(s-Kn2&nX3crao;Jbv&cWR_uoBsVMY%$Zr%;NSF5wb~^ zOt2N=sl%3*yD(|s)WuzcBYm@r-?+T0WJS=l$*>v>DMLG9rtnvZr|BoL(ZyEB0~4+| z__q`JGmGc3H+)v9gk$gi(*iV_H5Y3Uq&!pFZ#PG@^Cp!T zZh>%I1kxiIKd(f~rXI&j^2YoHQWIwy94Vrm^J1n!RwXj5b z86WL$Br62VqXU0GXP5Q**>i42Zj|9~?v45%ohiPg7~mN)!J#K?6+y_8&7N7MZ`Po2 z-+YRIhQ-N`j+SpcA8$_2u`rZDJi(Gqh-jY*#J*=aG*~WZ3end3pNOG$hD2Sx=)0dR zQ&qMlb1uFh8P0>l?0612JCj9m|8xn5Qgq3#)$a zL5Nd5z<%m5L*BNELpN2&vI)GfO!X$xUw8QTzls)wTPlf;)UtbbkqM zJKH|>Z*YKebq(|{PCz+rrV5q+`<&_<-JhEaV2#f&lA&7pS~?;J>N#sy^7U38>o6tU z-98ubT^0$|C>PP$1NS9K6>lzUZ{=^ZS7&KJPBL%E&LW&bF7r&BaNcf1qy_P%8$Qfj z{_#LJ{%ydvJI}cpn?H$m#&Zg__5i){Gos2P1(B1n7SHQh+n*$ET}H_+t0R67jFdDd zehe~ja+}t2%$idVupfto=mdRIU&-{^S}oM#&D2-XpCBqmcmPM5lrDpo4CrFw6>vTHdFtp{Nv-V!BH&eWF=DVVRBOM zQa__$WhC)2-28_pHh6d{^|B{DSDs33ru3WmU_Y?7;Aa(Og-7|y&Lh&EoFUhUO{ouQHg(hW5k~K!tbAWy;UB4O_Ef*}c$PaGu$W+lK@AV9c#JYnQij!CcIjo&3=@~!b1FmOLk0wY*bWp+-uBi zM(w(>;8Q>?Fnd%GxK}RFZ3r5AEuit)IFIe(nexlBD?Lf>D2J9>G922Ut!k9DG54!0 zP7!#OYN3b6DSoCt)14~%`aiw)CcPMzp}T|Sl#^OW>uodDQwBhdJ5llWS&%HzELcmr zmG}s0y-RyzITx@gw)zPyp`?gsAx@2ucW`LQ#PK)q#vs^z4TYl`(N2Lz`JHvd(<)L= zQfPD`)=WM)yZ3AlAvbOq%I|xaCV1mTA&|*xc()F@53R<*9Rf@5Jgu=A&_}2HZ4Mel z-Xq>`4w5j)A7XK}Gr;z@ju6bJkV~bfJy0zcn6nWM%^jY-iAKTNZJBrrTsC@p=+b@e zRl=>^Ia5L4XHKnND>KjO*@>yA_1%x18f{KeZz5itcRm|zIh_v65?YgNo!lzK=<*ou z`PF*`qTI#rcp3I(9oN72mFFBilePnl-@zQL?QpqCBERQ(e(MEo%N9~L7*b=Yjd>r;5mxRnR};YJaA#K1 zUo}fL%cK_H?d8z%mQTS43@RI?A&Wu7hmgW zV4DDZC}@d3v_62NHB9c_9|OkA@kmym>=-~lqj;jScJ1#KSs+yB4;8x>% z-LqH3* z6X{3cVotGe*WbO#^2?Oj~WY!SgweOgJD4SID>3JT1 zfnI1nrv4@;)}M^Rt$9>kggE3Nlu32YP*y9ZHzJ{03|EWCX^`H< z>30U-6Am1|$0Z##8Fkr)Z^;#yC`=VaI6vh(L!}bl*7AtW*sUhFaP4t zCalbqX=QC4HBHddb2`AEI2+_<3-M}R!s9RnS|?jabrZpx)8kuMpOz|dsB{~|QXAKp zTV}oYGU$*=9yW5uuK)Sq_D$a*g{if(234`ExU?Vg*^te*25TxnLYUO4#5uUw+84o& z>Q;d$FL}K-#F2U9Rv-qrYk(Qn zX|bQt-!i7Z`Rg&d+F?($oTOR-dXegdISL)ZCC2Sl?*ZAtW@k71iiS}#5CJI3{LI6+ zZ|Q+?Z4L>1WL??qF4f?~N^_|nDNssYh;psx?@VCv+MB0yJS+E> z!-ag-+}rx#ZHr-$!(gaYzDotao?%v!$R64XW-8het>2ktGWvooPFxfB^IYD}dZE6E zP)ZII_m9Q~eG1wYE<-YPH|=45E2LT~pm#^VBkGXbsZybE7iS{A0xC6FgZ#Yeu24pv zln!>5;KTl8ZhHAR)~+!_mFD-mfYOs}HuuT#rB)hpV3hX&R}jaKMysA`p5bIx8C;N{ z!cO`Xf7#SLk1UO`UYM)q+(^XmxxH#ka?rl|N#dTc9BZ=A*7s(pn$e*2wm!!7cUfQm zDKaeZb7NQgjsx)P{or1|Dc|M5A|?5yp*sGl)G=LBRt?_+lj7TFj(Y}9$6LH7K2OTw zNv-%67P!4t_$z1+OkJGGk=&nkAa#HRy>R;V(4e*3a_x-);m{1f#6Ujn5kLBP3X-k{ zm#_RLUB|5Tl`7yo1IWjbehTK#%Fil=bRIqLDykLuZ*tAk5A~=XDLr>B;A%}> zVSW&YMLVo0=*-lYln%~tDUVGihPR3RR*lii?rV=g#wlvcyJ?fEq@6?L6Aj;cDYMRQ zFeUKL*Yca)68XupEv+2PIr&}6L?4_IiMKeovFXo9B2D@f%1dYJ&6>ZB-NoPg3i`FZ zz4$X|`#bVF#Z;EHIN;PzwGHL7J&A6t*!(o-d4}GH7{UW^rE?rR$2SkQE(RSAs5|3z zbL*7a0=ckXE}@Rq=rTik%58zQNAnH63&T?FQ0FL@vrf#E&x&Rt0kce3&iVQ*b4-)& z)F}Szb;INs`)qunF|H<6{B1MH`h4xHZCiHXyt=oJR${Ff0qGoF--c7OAp35GsT()e zD_2=!5Jq$dj$;bk&H@Ug9BwNOxE;FmZ3H&qTXL{CCa512zkyXi@OxJcwMMJD$uAx8 zA!qxnb0m(zDzjN_&6lgsBAQU%bp<7CwWnWn(aFv#5EiBY$b{>efAH7+i#WWA~jQTlqnM05w zIWdC-VJ_+5*T{VEZ6RK@&>FaHA#;iU_TiDul7bma4~S>)*Q4ibCPFDu44KB`kaDIB zZB1@8r1mnwW$2{J75AiaJyu$ z8Tr+x)n-)|I_=4~en%iXNTV+ddSBl(Sfp0qvtCB(aT%jreA~ggvJ$H3C*4UvB)7=8 z|rb z8LN4l0sbD~K^}^~AK<)k^CsWoZwTuKDplsaMcd@TmtdEMuKT=j)Y|S0b}4R;n2qip zLkGE(HsgG)=*bjy)h>Z?Zp_b1;4z?cGDgeNdV_yBoIvgsH<@oRH8O2h=AF%5r;6JH zBj0 z74v9FI`UiY`x|-^p-j?vu3PQ?Gy^LcO-$Y0M~z!P%BiQGs>O_KGZaSL?Rz6C68Y=%iCc-(#Z;lk@ow zQO|>zt2!bcQq)KsXkn{1W3P5l`jVFlQN+hoqrJ*i%cBfHIOqo&{CePc_~vk@ByCZ84zTu&^dnq!=U2f3ItWKb1<20@nOx3AD8RoS z1u{&x$j=o8pY;GFO3q)pIZP0W-R%8z{z$IAxQ(NgrvAE{zPZao!;Rw)1Oq#VlN9Eo zr6dA-QP{o*w}SJeCs2)7e|9JO`F7B)ttr)wpgYfsva`!~&VTrE62>$vcU_eDgv0qy z7{TiG)Ucu@A(pv0T_fgDBV!jPXyrBX``058@oEjj-zHHiYXrv~`aOqg_0BdK#O~2v zb$!rQKGe~6g?MLfs(>+5Hur;DHqjED>xW5ged2rc3QHgWCS#vOpIMETOr+K=0 z>lyXhJ=F&$k=-tiXZrXb7;j4^9*+U{l4RNP@=KAwSx9Rq=%>0lM}Zu#W}jvxz1vlo z@}7mTqznLSH=l7C`TrJ9V6wmW+--Y%RPI_OMV>8250dCs^INCDfQNMX!_x(c8q>N` z&YY?zbL#({`8;`=Z|THXJatyr2nW+kKFkJ+!d*{2r`(TVK9A?UyCr^sZ*A<=)_G$H z$7{b;969y^?EEcmie7RgTJf;QXcaHyWebslqp}*&YC%1y#HXlIf6FKM6-5B0ZZ~Do~$-uvLCn~er|ZgPPUY@-X{E3 z-6QLM5@S0wU}8V?uCJ=27{2TW>(#-}90c!2MAy5U^)YrEwSO%(TIM&@QT-|YfRSi10ERFa~B&e?3&U)eSXKsa(J#GVWaj)-BQ7WLpLu~B;YmD~S zPm_8tLOOqzWFz8xnIf~t^d4XZ&PuS-k-1(MeIT`vWS6B;%An0*VoT1*H+AK*70au` zAKCSZCzpOQo!x5!AKUhl8)B$~u(F6nY&rbxN~RK?;HNL)s5NZ^HF3d>)n|k-_%-{Qr(6V^4n_iNy#En(652K+o%^Y38h4LB8 zR;$t0eBzSyC2nv;zi1$~6U>`FKPjh>y!cIvh&7>QIrl^YPw`F^RKvOf0h(OqTRjy3%6Udgs3X!7kY6AMU4T7F4C7RAL2Jn%|0DoHAdC*m z{E(${EToeex|M=HTc7^%VXQI8PTZr;=75NW6(cva}mq0FoCl=3~=lwK1 z2O`jgwci3H;&z+6J$Wj?-=(>v=Y1`zi&`(=Z?$TFZhOMLbMvNPsu3qLLBZ23XjJwG z`^@C>3_G#iTTdFUe|D`l#glBy#{3RQ-E7fX6z} znV~^+SHb2-n>19svB~bk!o)lMmP_rBr8x7S)(Xkq@xPlrc zn$EUI8pK(WY7Uv}QMKMeNuXn&S3_8BvAm1x)0U=JCM}jEq4p z9oPig#VnL2k1L;YPk%XHLZl7cf0lhoOZvZGmpA>rvwbv7V&2vxX4{lKH?rO?8nMXb zsb?UH6>E<%wU2Uo9&$-D4!awX13AYvuzu&&R?rot<6}f@i&D!JrFf;h@1_$dgY5wZ zYE3K#KPq5*=NVtrZKV)2^FvzA_*4MFqu<;&*z8tn?yVnOPz$D^PFAGj{p#r(yd4@H z0pcu`$%Aw=!^z#4X5H%I+!hs@>(DltoewfE6{c39A4|GX)-(r8l6=I$TxoE?zAg`P|4@p`wYWTM+vLfk-GBZ}XK^H@%=CmIb@ zAM#ojg@!+1n{25#b%gY)gPQUgTW3lV5_mAzfHLDqph3@)n$f_lOyknB!njefy8MYu zRne(SqOrQfouNKJmUTT)ccVa9%@PIEUk%F8bmeJsC$~ng2S#}ed_Ca!*g?2*j}QCQ zfBxlCUKcmQ`xrE@UQ)_}Sa$`sn%5u-ZO4x2H1r;41c5PWKNXY8-PcoeXA25>vP?YI zTJ{jNv)bAKUeZB$z)|&&a=uTfLgVE8R56hIqtLSf9x+stpg7+H#xn|^v|VaXTgnQ0 zPO_?sAD8Y9oz2#}h;1Yl`l~jfI{E!^p1*-uv4ay6SJevk=sIP7BE0?G_z@xlzwcsJ z(BOd_GwbN)cqX<@eD&tYFEtB2MTO{AW7MCU7w%D#-If?RzDG$3`%c6uQ7MWYTb_b| zR~7s5<3~b?PUH$I@s=eaf?#&Ao>pzbNx{}U)E9Qw4&wAlMbixT@$;PSjz-K?vq}C& z3C5}GM~uvOZ)lsdi~*&;?&tk*sb<{eUWIa=OsGG+b4|6_@ovfzhpM68S4OIkiN~5| z1VYis%SJHMN~4!iF!e&wT%P1FGx!%-3RTIAYz{}=gmY1{(N zF`e}nznYIpEi>T6#x)~Jqhcf4Ovronho=_+NJvt29LMf3TK?i~m2}WDKR` zbf^BMbQNFH?3v2 zfch_9jY_d-8?G|HAaqI6#uou@X$r`5pwvqsGo`)F)=*iaJ&A>s7fz~QExK-w)Mg}d zP5diQea3=Qoc~hLw|u*MTyS;`C(kMQqM$cvw9=;gPkV9ODX*}9Fp|3#!wmbg4erX} zml*Z`03mX~azMukEy8%#IrAD1hwa)kyxp^(}CbrTC z{Zf=NR|@i=HAAWVpsk@1VuMPq}M1Ym|espFU;B&9_-oYBRUBJ_}~H zEqv_R{`U15$-{B9yajAtGXa(GI;1(-UDAb{*Vj=%4G7P*O$t0AOuGGNwoo?v%g1R7 zZCMfzX)j#3AnrYNRVIP`9d^`&f{&?Q%NVENbf-t`PAtE zu{pC61aw@t8-TLcuveGQn;`T*e}7MbepqXLa{c0++0{&<+wc5z??CbzI}BdV+qq_^ zL4+LqBSfl?NQQmZ7INU%cazoc&FBx_Yb4)z>S8gFc2sTYjFuAvmwgto`?;`uWfoI5 z?X^2}55x{@av8~2AKSr)_9pVwTZUDr{C+dl*k^PTvn=JioyoqB7dt?@HwBWadS!{3 zqR*xO;6QxL!>E6YA7lt0?9D1{ZfMa@$6=pl3bRzxKP9%NF(oK!(NIb=;d}q^Pz{|g za&{8Dv0?%H|A~Y09EzMHv*dhr2F&YPZTzYU(>n1LxS2*xO8H@R36@eMwsCD~=Y(vu zwqoYLy^H}PV$g8sUt8&l(i6ttP2UDS~p9+3QCfu<#891>< zCEVyH9yqQESrp}~e|hAT(r;GfwZX2eLMcx}$ToUTqrFYak7uEE&gLPrR@MjaCQBVk zwjAtadJ=g|vZiXcYBDyy-KW4-%v$$+fNZ&q{`i#5G0^kk(R>DDdMQeA(wjQ^jt60Z zf9d7!V_}1@s50Mq-L3JNMi0t17K5G6hp@}E<{da&K0MSSdjq)7iX4qfCLEpu#K)<3 zv}om@QjjaQy*GR|T8c+4(H`1sw^8x{14?P=7zLw)bJ)hES@~cw?zJaCs{tQvB-jqD zqUE6ETY=gyx@`&VKHlV~-*WhaZNikz)pUmzJ;CkPx{P8tX#UovQiW7>*yo_Ad*}S? zs}q|B_N~Zx6o9arA+U8oilirf-S?}mc{KNUMlda8f-<{{@gDLAX za6~^EKL-&7);bYgWN>zMHmeYW_jWR?=y&5@|1p``-Hyv>zJ6mX){K<~xv4{|!Q?5=VRR|3F+cbWhd!Yr57ul=0wMJYZCFJ=FC(jUU99M-NSSKEEUs zW)15Kk)<{&s2u~sli+fsFNx*lwDopaaUO!A^G3mW-4k7z#IX@y85p*J@^kU3 zYVI%Ag{4P>!Jk>$zwdn^-0XQ?6oxq0K^(94qUX1Jaeiz;0p^O!x zb|JJC^g!vDnj&1|R1?@SHoW^MY3kbSg@6~beBFN# zqYJ}|IXfIAn^|db#~DKs-7WpPO#dWo&oSKmEIG&L(z%YLw;Cz^%^ah?*;-?!AhSn< zI%7QZjdQ`2e~ED5RBBLEC}G)Djx8*z`-^Xh=AdY44i8kZ%{Z4xE>g4YV7#KGy!alD z9b?^=ZiZ|vKsT$~jjQ}!(&j&Y6JyJ}tbmeGOSo%>D$yFQ2!cm_E7(*B$dF5K^>?k+ zvPp=aydkY;cd3f(GM{;>G+)2H_U0kwOX-3XQn3-r_d0AFIX-WPpx1X4w9ByUe ze%2A=GH$OuZl z&b*!KZP#r& zeyv{7Suu)v&jL*@>|_zLVGWy*H|AT~-ec7_H>VF) z=Oj#67_0o+%>3>)lNn69j5boPbm3{kVNes?WwZS8+AwiklY? zh}dK(9>i#nHWLz=6jxdnb_>oVbSf5ZA9`@Dr9H{)T@Yq~0ePHtk8Z^hh9QN@mR`Dv z-tWDp5Cj*!A5ad9vJ8n7FiVkn`J%#mQ{8ezMcp)9^$kHyZ)mph47{0d=c6zCr6|1d zeE7U6$a33l?(UDFv}09vwjF~5nN0+Ph63~mBAZYZkJz-#Dv40LI&Kdtp#9~1At3qr zz(^hw>*yXepI6!HWbzC?mY9IUmkmv>ZF`Vqt4%-e=cEG99yI=M?oM{jJfhpYp^R#4 zL40Lh3dBbhtbz3Q?XQ=}_iP{o-CLRQ+XhA1&rJ!b1^V?_ii>kz<%V$BCxAq^v-v_A zK0Ua~B>_ULh;7W!(-o~Z^PU#%F-qf&3@{0>k}e{EZle~*a@~egEE97DjhN(x6K>8G z@Yj_Iu>9AX9WH&9t2b!7n2arLuFw}NPt4-G5P0lIMQM);!K`4DXoGRN!C?6V!($d$ zeGSELtK$=z;?84(Q70e^0pgL?;}eGL0qolqo%B*ZGwEU9K=C<(@WCgC|29uUp@avy z=>_F3m*B(trgXmYU@&A_G5Uh)!B5u-jZOBek5etI9%59jMx}0B z0d*tCS3~;@Wg1U2A0M6|R73;tg3;WjU?up>m?sxmJS%j*bEQIW!oa`wOp$J=7rzNz z&G>h8qJA_6n5T*_^q97ZXxWy}CDu?yzd7>+&Fkl{bO~Iyq!=iw4CJ;IY5M<_a8YZc zLB-V8V4_qgX_Ybcvaro0>TVYz^!OCF_V`pEyY1vG7-gXMe2jhwV9F{0xIIEQyBee5UlP+uB{GEmsa|5sJu?xAF zdLgS{y6)Tc(+a`$gM$ISKAM85TeVpc}@HV&IlW8qepSD4)jkfUq9O3XqzOoJFi9j9NOD+GbR#GTRehMYW_5;dIGVOu+Z4%QLD&FAfFw40pyI> zRr)U=$xe=k_sjS%n4kj#^DYF%*_ zq%>q$DHWt`?MTF2_LRX3)o#-Fhh!Vpy|6UL%-Ybdd)7w3Z{*%Ae`F($(>PZkqVVmM zPr*hQx(a^9i&v!o81!08mQxyP-%PIl@Q3$E+FPYgRQ4wgEA+I!Sge@q<7VUCx|*@z zo=cqf+);ZVp?Nh?r5FC} zN2(3$U;NGZui+rKO?r#DTm}P)52n;V>7GvM8yEiaO76;1ws^|cr-@kzXgf}XkVTF6 z`DUg0u#b-oyDtFhO1P)IW0}1J>c~Yr2|L7@_Kg~M)A*hd4@=^q@64SwCx`n3+arvH zd%uaz#sFR`%c0laEjH7$p!!;3M47I^9uwY68xjF`;aaG|yi?Me{r*(GIh~x8n$sr? zmQM6l2H`Ie@6CTDscv7u2a#07H`=MOk@W-XGYPhgjI*TH#PqV%wi!X&TBp}hZ|aQB zg??zez{`Fk`KkXw$E?)ud#kz;WAB|&w1^)fyq4K?@%-<+_whj>ZmEl`HHSRWXPgdU z;z{p#=|V#{gu$T%t`Ub6HGz<3BKIu4uq;`;fsILdHm%9y(hH($53f$+UtSAxzCUe= z5mmeA%}4Q_9vzWMHtQ5N89MJ>@H~_VV|a=m%ltUz@<`7^FFwRIzr~&})KpQWx5n*Q zS)RaxXKL^2P5YBKynn~}BFBN%{%O`?il%9f(Wfh2P=;B!?3?_W!%E~KjI5s4ms`Ly z@RN4XXS{JQCIzp<^vW_>xFYMcPXG8Nb4t(A-(PB5vkrF&<11VG!|lRV(iUtkYyv+` z%G!}k_!2`3DSt46@fCfbrXRfEVD=uWmS@}iVxdO!zW61AMe|IGxwJkPoU%FB+B`zr z_L%O<059@N1c5RK71kD-qPN!e=51$|-=tbT5x$>bddG%g;bU4H7<{cmWsDYvEUSpt z@8SK>ViM|KFd{(BFT}@)Bc!A~n0dzx){N{2+k9@NGuY(;e$#mb#W_J2$W|;#6J@69@BOXwGe+vc0@MfYSk)|FI>Nbo2NWn?Ftgil(eL5y zTECQz7HM^h>oP6KD~D|QUIQfEhc>ULFhXD%^-HGWL%4_Jzq?gge^eDm^8qyX#)n#2 zG4}EyD{O?N-dx!JFTg^}nI;^d_h`~zl2<>FDxd2&^hX}FnLMqaF(LRHH~foJjeM)v zZB&3Mlkm!090^`!Udi$Puph3NZ>%vL@YPvg*3%a^eED_CZ%ENY2;{%_`*k$^eBh2L zcApBfVUPG}K?oAZW^e`XdS%v{{SKdW-f-a669BB4VR6NF>cd`>lTVG3vV+i(2Mq~P zDWN_yCHWoJ4VjkaY5hVA3hTijX3pmC?CB7X7<%egSp5wcHcmLZ^Cg(i=zhI_& zi<1v8hl{9;iYyR9h7&kefWQK011Le~2Xct46D`ir##6MB(hd;<#xko%a~|Hq7_1u> zl6+9~EP9`ZGMlv-^YCBg3JCZXB}C(H0_y3lCBH!9VXqmJu6U}`)~h8@y^Ts&vQl%~ z^va{k!uEsIg1ArZWXssrs!03~=;>p^yNY{|QR6k;o~J}3!N;}^td#*OCqbph znW=%F^6g`G#r(#cxlPQy8RF^4Q1hUy{&8)hU4AxaR|%U zY1pp#(LLEV<=$WQNpoja0im%=1=b-dp_uhA9RKv6jX!T^5wS~+U<{1kp(hUX?zmV< z4vn;(qbYi|mv^)};kfsuUS$qoNzR|uL9cw{4rC9{E|!f{xi^^9lsSX4YVx0;B>E}? zy999q#T+?TWb~!EZ?D4wOMR2le2Hi?MO0iJw%8_joTf`6A9_Rz6TVDh%(VkO!P`}~Li zLa#ct6AKnn2H17G&VxTDCe})<({6;g4%gsy$rUccUJl(`ucEzFIMC$GW4%R=%F7l{ zFds?Lf>yYV)n&B~WR=d=5^1NWxZBF)KC4^Gt6g?_ag6>o6VUj(_Z)nj6e{uK&mf9? za5~7oWz`V!a?Fhtaa_zGS3nZvmEBSxtHTR!KPj>LHB>auaD-P-Ipl@>lY2{@;fa-F zZaFj3))ct{N>N|i-tWBG!kYhs51t1maRRR#r+5&3L?*hSVY_B&DR>R;RN=~f|I3R5 zDTA&K9dUin_a96#pX<-k&q*i^=_`OZ!rS_@5?3dUN!1KL{+p$Az!z{>Z1>w^(m(3{ zJ9R+B(ru^n<6K?;v&NTq|3yMyiM2nkFR(1l4P?Un+^ewl{f)fngs&eW1?2|mxlLpd zlr`asB~3kBXSC10o)Dg-yh@c-hyf&B2sRY8iZ2CJa9~Q%zW!Nu*Xs=VCydulaqv+kLb z4|pIs1XyY>IB@w*@xYgdkF4_|z^ z0t|5D>)-eJ_`r#>+5kp&)FngoleVZk*FOhc()ztz0j>ah>WtPFhhqW%$jdw`UQ-@% zTzk|n6ANw4zP&m;JvljPa2VAFT}he-&V3_|@9AapLi0Y6qbk9hYrZY#vBoG(pwq{1 zzIXZ9BaP;`Y1LU4aIXe4@J_f*BZN4AjZBIftpEEjqa(|1ml~A=r#uk3)|(Dc$!`Ni zkFbNs@ja%I(dx4ploq|O?gUE(INQ<9+fu#CuteRnSGBouG|aV6jE0UjfWo@%Hads7Z|X{V9x|mnivK|Kq?$MZW*LvX!1xZ~)`Y z84|3*$mtvW00=#6rN&AMp+UX4Ok71_@ z)t0=+HP@kE*nXdLyNr$lm-h8e?QO`7Mn8v+1aYU_4KHC~EzfVfw=<1VV{QD!fO`&g ztJ+&NU?oQ3z_T3AODMjOoP6?YeeT=KLjw4yAcsv_Z-nr<&4Zm!Z?)&6XW;m2d?6fObeQx z*hm?njhO^#Y2nsjQ^@N`O^=Uyu@X6ePpgXAo>$j?S8)4IS`^8mZ)&>tW$K;)oK2+$ zzc>$M8_Dc>8(smU+vGV-_!w~@<#WwWLc#Qh2BGC;-G*9E~M0ZYA>Q~W9 z6|i6%mO2^?q}q#53xk^{d7)2mv>y_cTA!)_4(PDLXY}n z=99=)pO5Z(8D+3*&ANXjU@8I_XsW!kB^d16pGL~eiOciHY_%t=lq$xUH(`}JY)yO+ zOUEVq?4#b8_h1(jIVu4T?>h)DvVw)FQ|k~v*H_6 zki+`<8<`C+=mX=tPI|R^k}<;+)t((a_Y|t1x4PcK!JRDKE`6!mavmi7hh0terS0j0 zwp1wXWpMaPz9~_KV7K?nPzgxry}3nsYsxjCAL&Q!pKF@g`UA!9xv4y}MAhIo3QYQE zU!#9^FI&6XZw0R+E~-9`0*X4`Mcvr zynCMBhdDicE1Biz+TYl7>d zTULwRcjo=jNf(~v{+qPOO5&R)!iGwnaXyy@b_#5ZG~gZ`wN|8zW(s64_C2C*(JcEc zL$>qtr$3Ca=3U!j>iahnYiEl9m!pDUvkqrNMw}oNs*!VAI)859dP@0Y$|K>5iqfCR z1SU~5r@$Mj7j2iHK5;q}9$$SIacVBSi3TcX`5`ckuC0pDZY{K3R$4TWHr?PjDs`Z= zD8j;?Q=JLgG|K!x_IMBLhT&WFoEwX_z+14w zkDkmEr@%`+aOcTfPgNJ_M^i!&xXXLU+ur8KLlhWrJoD%&MM?4{q+hZoUfYDNQh@M4S1niU_*PAg*v1Sd&WK|g3F<)-+F|QJ*msxB_Yw6&z+Nwp& zx-M!+2)F~G)3e2c!uR0wV2<6-w3QlqK# zlb1h2tSj7jls&G8d}FnzsKpCAC13NbtMQ>bfmsLYbe(Q$n#BsRz*(QfeSW?|JjfB* zNIq?{%8H}a)MY1m9XP;)nV9~iinGrks09Q~ws^PDc~0Di4VPqTJazckb9^FTO{(A& z530AtS2J+3$x6>n)))Ee?=_9wvnU7|t5{2aKD$KSiFjdRZqftmD+a;#iheftl zJCb#sWs->j;=&h~a~&%bK;9VdMU-tbj7el8Qv#AIVg88*?Psh;Nu6pMcCrY&3>$LU z%*rX(A==d5D@n?(7R9jGlN&xcp?ajME1%t5n64S3*vp=XUv-DOQWAA4$_NXHnz(+fdsy?pVe+ruT9J{wJ) zjMS<)=*~Y8ps9FgiKij+5=LQxN<>iHuuGcngufDAwGU*X91A@_(vXcEL#DH$UT7@n z^@>=3GvjOiJeSDz%xK+ciG*lBHCEHeg3lI@^ss#jr3q0UXrt}mHIwIYb6PXt-oaaH z4UTr`ONk;Yf+_2^WG}UVXUJ2qwPFGD@{hkCgwK!56nHDw5C2rNHwEYtixq35>a7<_ z01m->0ohY|4i<%MTYz^_P{V}urD`Da9=|@)eWnp{bP933Ih>l`w8>JF(4Ve=`Jx-f z{wdclbmQCS>(gg0opJERXMTEsW|n&*E+fp=(fP*GC-xQU)AB_`t@cT3dK+swB*3N| z@$=?EYixli)`Y>!m4YhOFZ6jqhE`Hld=kngafH$_t>NsQKKccNG@!JjZx0>gjPCGcY^;E17KcG}hPECo{dL6@nu%BUtyQ^^RhnSuUz%qgnbQ8T!$f`mwks0(R`OfX&NOs3iUMoZSUux#9?&)3bbh8MOiRq2*_mfWUb9@;eJ4 zJ^FUSdVg>g@_z--d>6bafG@i_;I`Kt^OjuWs}HbQ4lzPz|HRa+%y3Sj>MZ(aYa~_* zTsZW#_Q%x?gOJiQKbLVgj+x+lOn;no@cpfw?&_YMjT!_z{PcZiXlG}m`H^c z%5wg8b^(|LPv<^I1ufgzKsYUbI4i0#Qw+ENXz+;qyf$-Gvm40c0H*C3Rlvt(lI{yV zGuwmmZ+R^1zo*0J$|F_4lg*$_!ygfJE}wcyKd$qSebenz0FFB@a`m~?i=YXG*_PxB zq~8ue&pvZF!t`S=f{sm|;f(E#P7Vb9`}ofdM5^4M*B_p2Ss?q9)PCO(@Cmv3!hOL2 zf@s1C%K?t$qMedImrLp6gKe!Bhc__JaUwDK7qO?nk^bR<#Ua4LEd~ z(2jmpKQSc*KrlBMkf7o>3V$wF9i7fU2N;l~CgR4-_j84Oag?@p-e&Wx`7mJp_6@>0 zj_%h$oMd8tPr6J*n+tXM^V%pAAd4nho6k_o?T zayD}1AG8iLNXNLHchWuPRD%t^(t*Ou?OPe zb*C#;*6x1n*UjX?{T@%#1&OB%$bjk3rY}9nm3%7gaCFF#Q;Q0dfRQzH<-00T<^c*c zGEH&I_*prUS>^6-TK^SEowcVw9MZ-8n%HaTZOYf)J&erjTtwQwyP#t}!?-}2*L&?@ zSlU3&{!Z|`NXJ3ceC|Ma$m!xpb^9Kk3Xu_>19tv*ITQ6M4zT~_pyLi5;Olw4+r@6U z5@^p%rcHaiRF3DQ_z*s5q+!71w0tHp{z9mlcUFCHp!0M)1%x(G!P!*SE4hxj#EV=r z=ymX zL4z@9t=&=k9_6p~$C}C_$g8S9VORZ&g6tmJ?-hdb6Rt};$X_b4F-X%wSG^3TpG74>Qy)xx zlf#X=qUv=M?@Do<#Fsz1;}d*O)9}j4+=yU*^pc!7MSJ?gUF^G@N80b_Oe3$f=f8pt z*MIb@kLphl9sPbT3538za~|YzX8M^q#1}8IP3Dl+#O^H;i>0~2W~)lX&nq~>`XdWP zUvn(g)Rz1R(Z(}}C0*mEid)N;D=9vULvjcHav^St`hZ8)mWCJrtNfNgH>4<^Yl&Rh zBhtA(p&g2!C-eG=Gy%3~(qlm#c4Jd=r=%^@bM#K~ojQ6g<)6-!CCT8&1Xr|h60N$@ zcDvb1FY#I)04sKM?^i!`?qx8?PHs#bb@7LP{63bUNv+-i^Rp;Lb6AeV=0423kyYId zQ??Vv?2)`jv1;too7|E$ffkPCGGtCU$IoGN7e$kHagX# z#n-CP6B!ZC(6%d9CR&)17XM4FOtVj3)#d&_q8E00Pm$I>L2RHWIsK!4TcuYS`SsSO z;`SuaJ?(LdNp7Qu8dA=hCAzUt$OY$|lW#3qA7!}~;u8k0J?-6t$C!N zO$g+51h$*8OtI+)oaAT^Q*zE}hf>?|`F=Ngu7VJTBm?CY^#q+BEy!AgZ<1dRuoaN& z>|T+RJr7Zb7miKU>OT*|W4?m*D9DrwS4y_;_5d|s8Mx&mxr~nsR`@XZ>23$VY@v^fPx0!iDzV!S<2R*`24KE?gz*dq zL9JcmdPJcq%H^_YE^G!9|rdzHR>0WCG@tSyE z>3j$n=CeM1=o&b>E>7Bvr2D!%CT*lv8Ah{A=tlrfjs>R`ki`SGs{SP-?cUbR%_Sg{ zWePWmqnQ3)uUt1)_$4h@oDp>k+_FQ?#(-NNpD#J1HE4QjkH{JSBKPmPeQdYUzg`6S zpYxzcTCKQ1ePyB=jl?fM4i~U1Xp<6a*q5R>m8CT}jR)hWBdr8i+yFmD+|}8zcarN} zytJW5Jo!2c%w%0m-t4ukJKU~;uAlst#=ek8X3%SBBHpV-g?P*Do&NmGg#0qk{PIOQ z2*w8c^N?K(wUo7`A&^|Oma8Aee>z7pe$+T*Hapjs)xoB~h-*r_<`xQ8!P&IJ@_?MC z=cIVKPpOfnZI$_gYA#rI&X3&aruTFG0xI~KPB{&QjXDLb)Gh8ze4_08h5n-SnqJLf ziy%hjU5J+>^?e8_-Ue<^PO1Qg^2(j`zXCB1du@dtb&1C5;C`l980NU*e&i0Me~jRJ zY7-mt-~!i!Npk9aJLp(SzjJad^tMc%X>h5{xp0NzA?obluhJ%xoqSGrqWzhVCIJ?U zmGn}0Ve^$%Wr%qckwM)m+FFSJ^*Pb7u8^hWC(LNJI}K9lGc-v%3Jm4j6kx62^c#K3 zFJ)owUU6t__)XIM$qbK)TkM6TUNx$Rg6rgTcdR~qw~Aa;o9DI(cnmU)TDt*f#92wJ z%p#58k%~Qlzp8Pq-x47zOaCPg-45BL08ssbhd-Y@gK}2u%_IZfvst$eaE}(-DSU?2 z-EevMA{dY`3=|!^aCn9MI=FVXzgfjKMiy!`T^1SyQ<#0VuVS%yhMjkV!KGL05LQwi zWX+Q46bA&UmfT~`*<%?w@aBo{f$A?M{42~GTrjyxzGk)Z8xHrQdHKsd*`{EUv`6S& zyli%QPn^lS5?a~#;3L|0M`FECjgrM;+NHIcD~H4K^(^7G`pCZimyE$;y?|I*h#kmo z(+Y`F|I%PveO~%WQji;6X;UOH$H-}Y;-Vn=YS!@tpV8Ye!ufLfLiKZCf8}4ytpVq$ zrQ6lVrwy`dBz6WU^q(<$X%^*XQkdu(?U}Mb#pu$aa=J1~FVjB9{ooKi%vD_Rk|oUW za`X>Szg&nOPoUzvod-cS^c=l~Z}WpnIOx09B-MZxJa-W!eJYSS->a|7AzD3M=8Ti` zN{?S!fp?C-;#$5eEn@HAKtR?t=7cV$L<|6as*Ce(Oe!9qkF7!ng95&ka3SRy>6e>g zj5vjL@}wJ4CWTh9x-#37lPFuC`!bYwcta<0!wM)j05zrt?u7>#0j0|4$!c^!)v=iR zOlx81InFTJPl4L~SuP{naHDOk&=NJw=Y3^QoqolrO3Yg9J5njsxaiSNtqP`kmI-H> zyx(k>QYB$uhWH9h)f_CT)4T(p2`O|m78_iX<5^v_26&n2LT||XN1W_lL&|1Y(^i!( z1$H6d5{^Y=;x&mtc{1gzl^fLq?=f?yB@R<4;!ig4C4Y2XOHeO<(|{@wt}e(jna52n z<&$=nRAS-fH#O;BCOt7#ejqrnH3JJFOkwxOEV{zkBS|skyINMlSBwNgMgrnlXL=d7 z$`Wq*;d-NTH<$#sC=usMtp-S-aqw{(a4_YYk4wE%X&S zFC%eieBvjV$se0c)E1TAY~?RFw58J#=UUoo+!JKHt46eI+Fb4X2xiSAmv$xn3uK-9 zFV^_X_H^ znT=MCIbO`xOZl?}=2PmX>)RGl-!=JVS(?1-FOA)j_d6@8f$o0Ukl`#>6PFBNf3Y^W ze^Su7kwr!)qtU?#>#wkr?>698sWmIH9C+FFhofOyP^1_!N;YiXqUg&rHd`MWFWj3X z5DjOXg_GW%Cy|w2ms}6KyZE8zg9>(^`_#ZR;C9iUroMm@BZ+?Pi@V?*B-R~g1id9P znLAoj%DfYQJ3$_Ho4Do2q)hJW=O-!f!5-e1xXT%};x^mu_RlI*0ek_-n!^JCRAh5) zTdx;a-^cow9Vz4(1=I0suVIRdb&jV`99{jpKVke)@o_QQ2B7*XWh9@wmyASkN!JIe@Cy-3KERTxnxnKHu=N4>iLWX+elmTAog-Xt%Lvc zKVZFT#wqi@_b8_f1>2BV#i?4o#F4ZjIIhQsFttDD{INH)=yrV1I#PoqgrOQn*x`Qb?9Ks+U5K@+a;ucW!fYK>EkCUvCMS zEch%WGSjUh)$*E*bQ?QDclvrZZEk)Ii+5kB2|C%6hY#GQ2pxf?%HAUS5*A;&p8-Ex zV;iP$*EzS)^Pbjgsyu$|EiEvkOB0U|3O{O_r{YT$s5 zvYTGDclO}3OFQVq{@aTN?$rXT?eW#j#5VUpvat7!B{#l7=5@{YN$0<);(O9XHcnh; ztmTs{b}wp)I$Zf^+Cx*rUc($gLuQUr4>!Mi)&N3|T4L%JGQJ-^KDV8&$sWHgPX=tM z=(LIodANHpwTf>Gvj_o9L)*}|x=Sj_)xrZ*dSr8$v!4VQTYZyS{1<&FNBu(ge3kE& zSRwwt)hNPk;1hEf1Vb8CPkUyboR7-&XB5EV##j;4w1sx9EldQ`X23Gq;3z~|@Cotl z&%$mO&V2qZ1As-}ukQ;6ex9FA<@${rjUV&c75Yug1wL_f^8b}Ywo${2dMYJR=an~S zZ;Cx~p#W4hx*vdE1^_(f(396q$wJ-{oz=g|?xPy00u?WY)X9H~^M3BhTF9}}VPu0n zR6slIZFz8NCcz9Jkr|qZ) zM+xKOG|*M+8O%vb&j$Vmb1oWuz8?}260^1Pe@1%dKI{jWfy5L~&X@N*Q!@eRfWMFb zHemH%#_RZ8)3AW{tR2t}|GVwx9ue1K)m|b%dEzi30Kf8agKA7`sAw*r5jK(x?9VY? z`cNID0(<3Xl=L(6PbWMJ)hXaz1r^-4+q-uJlx^S))$0UyP>6Fh*dErcE(@f(;>v`2OJRGP0T2`+P*t?(lqt>sSfoUxad0g22V*B&@)ms)ImiP!_atBsM(F z9KzzOwThaS=O04=~(y4Ez?;7ga#POm%n3~2+v zs~!31zvMD>NF6)X3XOJ!+M5+?>dHN?-6#d?6Rp8QW$J$}%0sJ}bOX{BWegu);a^)% zu4b55d7R_F@}SWu^vOP8b59GC@I+Za&h~nBrp{yKqyRN z{M(0{fb}_B5{%9jmv`W(9Eaus9>73-!>&b2JbZZmqk(k@1gT+xV9`nkg0*(cXS-3{ z7G(cl{aI{4bSKWQ0+^X&`K7?aliF{1D)+xs@qSV{AX|4|ml6y(wbut|gltu5@cud3 zsC%(|FH3Jb@V%&3y@fR7F|f(rn`9NQ+@NYNqlj_&Ok?->1@Bqk*&aY%8?9aAx&21r zltQPHF-nE@KVyDS3baxG7pWw zes;~)1MD&W9brBTfbWsOD_dxX%RYRf!9Tm|jGCVTFmq`AA?LQ)R2#tU-T(k29dZD) zEZb=5jp!8j-&@AI(U*!5tndhcB1xcPl@F7$0}SJ3QvTzXWO~8O*8*h#%TJttbToj$ z>{Jk2I@F!Ot6&f+oN<@86498VVvm-0Sn;2EL+5ZFX*<%^b@!#>r9HFnrb^s&s&EdR zQN*qI?WQH|Y_lLxnSUn-@?REWMC~;=+kCqk8ma0ZKuOrAo@k(!@U)DhatEesQ7f>g z%oPX(f;h8h+2dz*MCe|Y#N!k6Rvmqpnz7=N@cPi#c_J?8!$R2$ZWW8efZ9_@jb~4! zB;#DAJ4MsB#-~lBvnqjW&(rI_Y+9S1ZJsPX%$m#)tFU$77u**k1vcWBwz^#kHLT3% zPLiwxc718caJ>nzI_`rD|5BYCYugf|F5vTx^wz32vDSbwGhdId`rlQ?$C5m>G_4+w zFfa8A7$SG7b;1Re@zERH2YAef57agLF=akkI1jv0in+f;Gpe|plz!KF8#KevFk;iC z=RaG|4+wyXi z9A|06&|j?>!^vG3WDzt%mc}1>+@b0yna?lobVFY>lnCT!`ehInoQkY3+@Cc@RqjM4 zO63?^TfYr{TBy^#HYQepIFC!E;Z(kt``3fNk1HJU|EY=V@|7Ly@+Z8#z5Ib&9i3n+ zm3Mz;wGisS?rgWM`4VVM=9fZwvThaBi&ksO$^7oKJxAlrr&q_)ZVH}snfnqiugb80 zZko~xpQ=28&jPjsJwJlTe}yyxoj&gUwdJGylOJg=Mx|W9HdO=9YW?h!>P6}$*ZIP> zwejvV4&ukW=}+Csp)B6V4K$QRZ`iK&7pa~GD%)UgJG=doO0I+kd_MMEExCHI_Em$I z#p(3iQE4;5EYOVj2o)?YoV08c`Cf<(e+ozo&)~1h(oeDGw~zNJ(32g@u4Keb^0hZS zGA5RmFr?bO9bUg_0BO5IAzmv1l|u+EuVDJ?AwS&V)x9?!h;-z@u()jE3m#eYeJ^Op zmGSrqXPk{#>j`v;;Tx()NQ)dDfOgsabdK(@&z8=pUyMkGq34VwM$GH{$ zs&xb3JG_K@{ItIETkuk{RrXl9?XKalGO6xnex&G*-Y?E6m4oF_QLYq zd8%a$Wk>UIy|?*-D#Op$%ghj)vKincZJirMQlW_1jG(bQgwo!zIA&d^yGE;e!~0|_ zr5jz6Dm^NQ4J*N)mXGCz7z9PFx!TTHTS3a`hRl=HQXUJU+dsxt< z?bD?D`%ejj9)9k*ZtTfV1lQExGmb4xqyDwIjI5)v&x6YNfZeouq= z4M|w8d#eJ(YU47=$*a{fv%xwjrd#%{Uu*LKds(qt#QhT_o<(huLKk0 zkI%11+FxsBJJ!%k_gZB|1(PXKO5Ny0nIr^-XQn5LO8b zKBe@RHy6mOy0+|Xdpxb|dm{K22ICx_dQIx7X?Ul+hMnnm%RTPD-%E zGL=}jyGhyG&QLB1?GmU_G|6rTS=uR>`wQ^EW-Ce`o_;L@Nz!HXU^9&qx z+WMSDIK!~bO;+t`D14uSalk;ItoZH@geksx;Jy6tHOrtRRR%Y9f43_S)Du);iTZ*+ zzStY}?8e6HjSmcS!=;Lz3l00Va&_C1SBz1X)r>fTzAFNbZWSFh3Wul7VwS4JSL(9I z2!Vl02H0o6?8^oxrAvJqLrKgirsn*1BGcz@B#QiP(+-Ec#}i9chY+Rw{K)xj#CfDF z;ZW8##Ql^R5t`2xRHZK)>}VTCEZ{5ROnd}q;_GT!dQa6)b8?R%4lQ}DNZvK_Iuf(` zv6^-qL;cjFn_$ZCT2{*3=elS+lv`&(i?Gonue)F}w9aE~ziYNtQO*JCE+1tiU2{Z z9^)mvlIBYX9o9WEPWe8tZ7@ij)5hPPl*q#7TSEmRcckDxFZ|1YvfSijLud%EM_D7RWCRJ7O8vEUM&*m2 zir`#jf77+eXvy|O&0&p()~AJ`vP0e%dTUy;3gAJ6nrygcZv=W`^u+UMbIPtTCRg=t zYYX0s5Dj|CXB@Z9eCW-`k5RX(zu6-?yYtHzBb%{(g{^OhBs*$w(-f^D>(K4MhP9d$ z6?1xSXsZ*fjzF8SN8XX?Xm!=+W46C) zYivC<+|9T)>rdo1-q6}`m1DF>w9cw2;_~vzCx{AO#da%0#Lq3k3-yIF7dqIZe{Y{V zd21Qk-{+??I9}N=s5E&3)Rt)1_CmwvJmW)jVe(k6gLnLco_4J=Pii1d-N)p4y~OIz z+;Vm{L4@c(8e_ZKTGD-_#(UrX=~<|2=SHU?fLeuw9_{J77lIXupY*0BkD0FtpRO_x zK7t?k86SeLK=^345H^3g6-H8b^e}d6Gm@PhC;Gg*jxSn9|NN>h``F5*dJIt7Ju6yQ z#zzV%!!i^)7d{RocqX~qm_>FpYfVmef1VzaOR;bS%08RvVp{)$(mX6(H{0qnn*a+gx&oX3dVVRYlKC>U3`h#4sYr- zlpjc`7wp$5XtfS2P8#Kc;f1{A>E6C<3J2PCS`=pHuX2gMRq^C*>C&J%BNq{@v8{I#AI4O?4DibSR` z>lYNocjWwOzmGlI?blLGGJk03TwvP;+v5@K(*+kWNR4d|E7hGtV;}vI!KRW!)9)63 z&yOa?`MZGj1eh6@OjMD`4K;1{II{b12zyn}A^4t5qEPd1^SYs<>`*gdIs#)po;Y4*tXvSXO7_|}&+-OzdZgStp<1^0b zkGPecSkLWMJs-YVfNbkxYP&pVTF#_WO(yst9N2F_CFL%W8N_|?yo=^N@)P?NNOLuqPQirFMa^*(McEPpWcl(y~wKwYRd&00@ z+k`hm*lHmYR$fY!UG7x z=0=O*yfE5D#cd4U}qC+3u~&W{8A96q9z-26U;pu9FW2 zHIyHBf+2<`yD$~dR#u^)6Y|pE=C!jzbNNjnl6Z8M?E&I7A2)xJrx)&$b->-EBr%io z)Y%S2;n4UVp&LfhL^W9h4`e!lzyQLP#ONTxn@`65%W+$5B5iBQK1 zg(akn3>6x8JOQ`8!6}j!JAOP$giFU?)y6fpPvQ1 zZj?e_eWLSb#kTx`==2We71dmK>$3jkVf}KSd6)3uB@G^mP*0&(fZJWO=^ltKZE<$u z0Z&SqNqlg$q~-nD#4zR~CX2S|yHBg%`KbcCy^2%aiHbDG&Kj?6SFPrR1lG<5 z+2Rf=KPkY8F7+|rje1KbLk(k61vV8+-Z%7XQDGE7cjA@VgYn}wSoV6SI%6ceyI{ZA z)3^BtfdSBj0sYm0)`*3F9{)r0SwCHWWnp_lWs3${j?6P(Mohcsi^lPpOkX~^r=`jMdkYWy zi@vkiC^Lg=2z40Z)ZHx3B=8~Ua#5$-Vd6ANyyY-S^i#Gu=H^)zw|EoO7y4+tohDrfJ?XF{!Ak zMT-tJ)ocdi?4Ts%;(Z~CvXQMNCW`G+e1HDr$$7>)b~vSU5e?ScKM)CD$GY9BL#VGb z$4R1@Q|(H&EUv9QRW?KvP`jZWSb2!{O!N6zt%^{JGT-jMmx0V0dH`ONtk^e!JAMSn zPjA1?r-18?jn9b8J4w9@J;JYl*O}QT@=WB(iz&2aiOsWFW!xcg-Q9g{D>Z%Q$5CZ^ z`8ZaS9V)_L?qjl{09DT}%z=`{rTE``U0Sx>%Gx7P z1R?0@a*7L#x_bHKM)WW7J;1Nt!Z22y#ok6fjS_!n>~ja$ z6sUOu)_+-_+-uFC$*SB4B>XbJ9t%1I1I}A;*X#CQ1^@a=ZR^g1?>`L+JZCzrQp@M} zw1{U-g3gl{I{KptxtuqDlpW?j#@*bZthb`S+uZ7Pf(Q^3{01GmACe9EfZ-#9H_BQ_ z?Qa^*-Htp+P9gwM$S2weL5#hMb7epw3nLsa9iSlNX);CZ7IHgzEo* za6gTS{(}=Yzx_uNg&+pr|6hR25Jd97m-v4<@^9T|!x7R|@lyzY|6?0hqwUIm)W2gb6O(`mr(^q+NwVi9! zgM;jaI-iF4iTB*)KPWV$;-J0;8Mw;U&V@fxYxCeSTtsAKXXW@A2#VE*$FVs9ajp3Z zORXFr^&dg{ojVPrTCf30e*Z0YP`j)|GS5#!N(LGK;L;%dq=3{g?w=bps1>qQ|B832 z6ri519QOtzE!SHnuni1AHgWs%C~=0oXpCmkMY1y*PbEiGB_2&cr;xR}+`fgzXPa6Y zZ07S`hs$y~G5hcKp>4y}>0X(B=g8HekZOLh_8i?ke_e)`PWt>?ZWgIaQ_(-{T*!`$ z(>aAc(rC+N0xMM&hkwMGCvmpe&?~8U``55P8JgZ?7V*ZIDG9I9-gsegHKU;28x}RojP;(c{p2+T+ zTw*$=l6UOM@qgJr zikC*MP&Z;_-RCK(V?E|@W|Sc|qp)lw+v`40tgO+I?t83#r`W=H<`?#WxUm21Q1lUU zy#V|_O>P&0z{J^-E_sSiEa=t?<GrfQkFaq?dY2#5h~o^)^y*3 zJNg~LRaH`mGyXR?#B?)>29c$yyhJjB6?{5I03hw;@Ud_4q6SajHw)g!nbhIRL0aY* z83ozMR0*16WKJaA^K7!*6$u!8xaRKeZa9+62#<=IJOUYP3DEhPQkA|yi!1;f>Muw> z?2LSiF%{}~Hf24^i-%M-=?>g~nXUiQy~sOQY#2}Zljso3iT2?Gs>j7ppgCyIajRWy za=H_x6sL+T<>+P?Ycsl}%x{oq!!Pldn?})gO6u&JxoTsBhE>=Xap-&T7@}}UnOcV_ za&sM`n6UeJ7ToG`VhmAacHE2&yG4TX0VE#bA5!F@2}f-c`kb1ENL-jE;_q?2on#QL zNqocwp9-3tIt}b?MoP;mt3_%IJv1^^59+|CC~y?HT+lj3$^nNGJlZ zCrg?tM#z&prML%9gyR26 zSrQf$zNH4^yqF6*jNM>PNr&GCCL|;f?XGlqH4*h=L4Gc{vch`*mG$_)z5-~2@;Cau zxPPk99%G{=Rh~R>m*_8fGdrM7`P_0acvdE2AS`588UDU=|HO&ucYZHg0@)-LuYeuN zfw|iAkJ_$FEA-43o)O0hC#s;-$Ir@Q5{8e%W!3neP$x;P)n&pK0!Nrpz$XHGYXTPBFtN~(YWwGfJ(n^vs=89KOZ8E)g z61gcOxt<2!?*-Fm9B5ks*pvwA;N);8ku8qSbmb47ht2p;8XLl!F?`J}Y|va>`rWUr z6jR+IYfS&$SFE5+>F`=X2nuUL=T_6Wi*amVS-zaNi`};~F}b}ktC$wYb0sf&r}|w z$;J1Ke)q0{OGxSBk_DeJMLZAuRnAL{ff3tZ9O-|6e|6LbF%F(=7rW)>Iicgbm5y(*sk zN=RiC-iGov85d}7kJ6MRPwFs+qh-&RbM>GN58s7dCN9F5IfDrC~Rz9!WUT9jgAVY7>jh;-L|^Q#Lp2{Spm zN8a(h9oY4fz7ja%5B2`gd93siB#tWupW3?v8-*823&ZPlgIx)2pe)_Gq@CO|J6>mK zWkVNxigoi4|B6N1*1EqN>7$3~Lu|f<1T4SW44!ZLYQWHadd~6P{A7VX}zq{hA8>BRT-4y`8`#07n=_xX@wT*T;na?#Ih>*IU z`|}C+$&9I+7?}FW7%TaFELeoMa%5d>b9LXMuJY3$DFQ%J5nbe2y~no*s#A+F_cT`r z4Dt#(ds#MA>dbZ+6oMBf^XHyEgAHNF52m~AzW@ty!5I!J4WV30Qgpat> ze{}$b%bSalAja#Z;1#Oi>B%VRh3xkDJo%dE4>`ejdx-Tyy*(U@wo`3%rR z=h+E~xF)`g<7EGmT8X@-r4&J2Sa4XFAkPHLPBUUhI&MI`Zp;8UaKcEVi^T@0j1%g} zJvl}MY?#z7G@3f=w14Fetf=~FRy2X9;ojV zz6`K7IZe94g9je)pIQzVBhO zG8A-%K}gNcsnXq$$0W(Ogk^^?cJ{K9@hkxy)Jur3M9k-!sIfk0W@pC~`+ybcXmOrU zO64;J`lH?KMQ0j(5Vh1iXTr|AuTHnFQi36|>GT^$E|Nw=p~cF0I;{1Q+fi0eUaS?w z#{;t?3Tw1;TBvwo97MiR-lH8_m)iI>=vdmQAA^+0ajHI&iOL9|hxS`<@dZsne)Q|e zcFSz^@8DmRCXgL$uF_ z`o5B4DADy+!sacf%CL}-Pa6hqQNF#rq5EW389vBu9?sL#e6|H8F?m*=b%co6VZeJ5 z_){tCwDoMQljBVt?IH{SKAX!w!9+s%hm2GqQ82r-=^BSJeAhoAO-%7}B z_<)&7P%9$WlI*rVrq`8J34Vyz-o$%@iZz;&heDK6GIjGK(>j;<*|hNr^2;%S;o5v# zGo88nAjS5$-m^O+b;hwJ)AQ`l&JgArYoLNiY4zN!j;5~$maK9SVG53AH~E@-#{CmT zTD77#mm2+^`!wU}v^>(hG(Bgsorj*Caf2E5>W##)v#A3zHEF#dX09(|U6>47!@+o@ zgoP|;BGXSO%A{Yj9fQZ+T*W#)_{U4(p9{q;Z0}(G^kP%ARir%`#3Wgcc{c|0iX1d| zseCW0wieJ`5;Eprg|6DAo1}a-(NiBtkZ)Rn?Ty=R8+aR;-Z6)&<76dBVk=}^EE>mU zd3DZ$1fC!7?!`axs%B^~o%k}-R5fLsGYM2i$eizpi##hIDI7eaG}q1%HtJ;mS>aQc zjsa@7Ar_Ybs3I z{03dl-U>O&#btKMv~%lkiQ7oi^y>>so!WB1#0cl}gPJ#d2AxJxgq8xMAWveQPp6yN z=%h#D%A`_y{-C?-NuNXf2S#1E4RyV%2IYjLppfGXDC!=6#wWuIZcJV?V#zJrdz?m4 zEuabrx2f9o!KR|Za6#PDuRpB*n72A%#`mQA=m!-w7z34iE?xz==X_!&uX&K-OU}hQ zDFH}~z_)2JMU8ElLvL$F4jB*>@#1-@N1q?B3>Yx=H(M*+%&qTe#8u4IgW)GKMNRkK z=O&vI$WSEuB@B3j?cXW-LoQd(n-wz}eM4_=97Tl80$@cFO{GML8Zf^5W5I4!NYX+5 z?8E*+$pA-W=-YdCTQZC*8a+*k7>gdFYSh>P9l4Dce(a5Nzi5Zd#3_rAdv5vSaB0~^vBGCt+x%YLs z(~v!~l3wwrpW}b(^0zmx_w7$7;~PlonXC+>4wZ`MZb=?_;5&X4OBT;>Q?b02zn-P` zK~W(@6JT&`YtLE;6YZ5O|kRtM%J*pk~^^oA00->yd4MEwQ7K*&R`F4uwSji82w>0c(HL z@SM+#b_flK8}%CRf%mgOa&Id)gd>beasAP_pXSQT;JuKvUtHwuHM2(Pq*0cmU6=E$494*iJXf z+gkdB`eL>!&-p7`Fl3khkjbEv2*RO`!`p{PLQ1e_)G3unjbJy3Z%mI@b7Slz_IDL5 zt5JS@Zm)AjmFIkYFPb1eVQ8n1tEa9jCMk&?5HN01KE>~S@)JJ?b;Ak2WsQma(_#Ji zBYi^&Q=9Q@WfhCVx7xr0ipLj#VcEB|p!Qh+=YZnpZiQDzL0TN9wwT_^Dk}1$+@|~# zASDB%?c|oT`Kj*Kk8&P6Mrsk)JAjXl^^ti^fLxLpKIp(_54?=GzEG~%Fihbw-b=@+ zUR~cP_L5cSGAi}J`9uW~ zjP3m$O5q^fo+9!Ac#*DR0VL_wfVih~waYKsoR%^ni zqYa#vjlk&}7GJ7)E`FdI!(R(s+)<^k@D2?{tNuKSEMz4Pc|d~FQ!rjr25IVLah{+} z_Cv@d%yncH19ZqW7hDHT7Ey}B7EL)W%^b93BYncI?Q%}_8)%>_q5N5 zdsv)siGQ77Gi`8PI z10d2`BlVHc#wHHs2JOh*Ob#ihOdatiBMQHq)cQFs#}SnH*qBjwu5C?qHp>*Ww`72IE>dpop|_p{LB1-CeQ zvx|2@$?@SlosZ;DJr0?UMqlgrkDq>N^|buDb*&yo;(Kfu4__a<>E5-g_w-dfy3@}n zd)H_&J%b`QY5UcPz2g!89070b!ohb$@r{SIAOVIU>8IdS!Ol8jTlmqFu2P|*7SCde zdYpn&wwv)9=F2Z!rLKE%vB}#7DGP6398MYv>7$txfwojAT<%j&0_$w9fww`B$go>K z&uF?XiYZ*vz@|rC^~*0(W2C!&g|5t=crqy!-x*8{jC_581#T|hSv6lcwp+gRV(GD7 zgarmjaIvkk!o7;1kpd$2M9dfGd=O(x3a$A#c-z>MGB|y(WWYT2lKykL(E@!YG_iZO z9V0dAJ~8?B{q5nD=#up3{e3Ko2lk(_=QA$Z*ipYsGAK3$Z^9t3K?G2e!}p9u-n|3u z0rkU-xIQgtpVqm)zP9iU!+rZV0oX+Ow;4qjKML@jV2G>E>f|${ApgdlZ@6l6R}HBr zsdXr$-B`klw_dd{YI4Ztw~M;N+20&S^~UPTWuRF6LvAdI4lkYG;>B+;C5MPL#c+n zdh(`i~Mda{Wm%A#f2}dPPIadpm*2cnYjnL^7CYqblr~&z*PK1X1Z@r`2Wp+duoBI0d?I z27xSvK|gWHUg9T9-4Kv{2x53z#j_AfZj-2Xo*#fIA1g^bb6(BnKJ&>|AQ^gb$t2D~ zOEXqf7h2ot^5Yd!NSeNDg9UDJ=n-Rk?`xwnB^h7ZhhdaP7-pBezuspLe5%eXHp@dD z#ZSZjG1Bc_-Fyixu}i?gI$e3JL~)v_`hg><%lz_?1okZ*3F*m7faFNT!@!M#VTCXm zoksSRfMBj}U}?FE#dA=N=cQ(MR!3Ue_A`^<@0b9OpT2CgT|)X+FsL}C)M%HP{IyC^ zfLrnW4pvFY#+Db%&K9Sf#Qhqp798xz;_lGj%;F|ib~hC0zCy6q^;aZZm?ud(E3U*qt4bnNm{CA~6p1PC}NI{v#tBU$OEn0E9LZ{PBmhFSk z(^)TmZMh+#UQbhgiAYCm51Vw1qu3~NOsgo)Nuz!V+rH-^dZc1(n#-4?lk>yO`<17; zQaAFum-+K5L(=92g?+{q7z#<9*W|K!+2Vc(2HTPsT3)&?=ZV|nDzXkoIs-{W%%Rgk zo~Yv0^&p7*x$cR#Jd=rhWm1M_(-A8j>zaM;pnV(0MQ)HvaALd0yYrsslrH0g!H&qM z8#kdw&%5J4Wk*y+T3Q;TLrum5h#orVPZ3Yw0O9dFlMjc=&CCxtD`%N3ibG%9@T-=t zkL%Tq3sUubkQb9~(-ELVT`u|LVjJ@fcEqZ6{E)HMsj3r(U&_l7HygX|ZBim~+M4Zk zn8=VM-0M3?37Bj9z$RF6;M{1%f!mNaoD7tyDk0`A9v?_OZ?q7B10qjjDpW*btu4#F;3i zl%&N4O6Y`T^&}10%BfKVLLNV{5Eh8beH#xG)D=*o#`Jrp(^5tJ0>!$pB`l`Dm+hm@ zWUdkiE8d0*G>vJ4dj>D_{`pAkE!LO*(hgy6#Rh0sDx^`dj%h@i&ls_BiA%meXP>0W znFLKIDefCQ*#i`pkZnb>OfoAsgOrR7DHx54`fA8xKZ3(OVi~UcdUjzr4>if~cxpv& z$|Ide3)}o3-{{lucd_)X1RB3>XLTvZqRU(nAchprF5>#Nl+LjGtaS7|B!SQwh-*Bz z7Q!UwOP*hUr?Ed!7eQ5d{+NU{y>!+>@z~p0b7^2ol-UOi{MMLkhyhpq}V-uaqW1UQl*E~4uORY!rP_Q2(UN?QFvo-)jqT{H1%8J#Kk+blzh9cm~4#Wu46sES0Wmmfk#wnjp=vgVfLdZKOuX_s=JCUCF_luLAM#*HecHkEv@X=WlMwQ-12D^3BpGm>V} zU+|^EQ5_qHI9j)GyTC9Swc^@n!&UFbe?OpICZK5vq_->5BFJ`i@bPZA+kB{NkXbZ& z*ojVg8B$at_k`m?t_8L)CLKE-!Z&8T=+wCfI!k>AF~Mf}25yb9Tdz||vwB{b;jaQ^ zii5;>rj6~R#U8Wr#MHGMpD#{mUPG#))^E=d=t|ULAyDC1pQ4qkrsqcG7`2_5R_I}s7S&vrUGV*raRjEyL z&Jz71dcB~-Ux;GFt>5^L$ORg6+Vs;4NHyt!Qp60D4I^jqqyo`u22?Ao{=|9;^HC`c zi^n3|-u->9`HQ8*9r-!=zK>aO?5g7)JuOaD(@8gtOUi|G$S)&e<}M^p0~XgdC$>zk z!*y7F`SqoPG)?-F*P~%#W2_Mff(RjU;r0#d@#~+0s%a>h$TXX#-Pz1IN}lJ8E>IsG|QXb-mSI z)D^GExWbie0pYGSjp?8V)yHTP&;RmOiE`6*ozo0xD)Jtn4ihaJ9 z&)~@TWKll*4n8mr6rk`-7G;Ce*D)!mx6AYbS=f!%1+PBd38=RpLz$*P+t*#JL|kcy z0z(6UBrrHx>qtZNY)(fJS<`>ht5bZ3i~U6L686LNBQE?!s@gh+iE`|%5lK{joe3;8 z7kKmbEWKi-guWP$xPUy@w=b!*6H~Z>lsA<*gYxlsH_!=ama*%R!B5#3)n(buG!n~> zd7$q)QPG}Z5gU;vdcqY>;)}b=h_-vp!S^*kdGLZRDm%mvA3wQ781;@ByzcZCYt!nU zrC@pCKGKvuJ{oUkt}b#e;YI^CI{j(b?x{E<6tw_vZ4 z)!v?Q-1>VgZ9Mi`)Y(eaVHY|%`hTXaUt61>dJ}rtlsmN6r9xft=q~X0RA{h1^r$`6 z7znR*Y%651rm{4$4~89RdW=5$dIb>K4sU9*u{yFoS{IvXcE5WM_d!unpHah8kKfU7 zEH2M6=ZirmBq+px-`mZ#HD#4LGL0C_YKO*7Q=%XKm$M zHaV~vq9J+5-UiBEdv`lTJdxY={D=T*bC2@H`@DX8y1b%yh}!3^D>;i%F>!ccJYiR zrXI5?r}o*`X_<^0*k7BY(nlH8>T5}YqFj;-qyxa2!u^|3j|ebpY7ELCc(S=4NBbxr z>wUY>+cQ?1>zN1ypt0Az4pFw7f+&x-$k%t+#wnPs!_ceW%9>(C>_3>=^69=+B9|99 zrQ6=KVrm`VN+I0n`$UyO^v2D$J3Ieum!*o;<@tr@BeFes^zwEYb&Yup2 z6$$10eyjfOSqNu|(B(f&i< zoh;gxxeO8t$fYDOb|p{=^!_5dV!VEF_T5$%Dly&{SLcYgSr^n-+~|!)Ww9U4Vif}< zv8&deK{PE`P+UoT3S zNb0w8dmR$Xe{nG>+VZ%N*9XEaNTpG7w5_4V3|taNSCwAPpNfS?g{J{`PXgQH+ltsV z&Xf;*e5jHFDcj1rKtL?F&uj!&yto5n$goTPa>TNVJpmj3%7c1{oj(HCpDs7kc(EyP z*U_D>fszY8co4Y29r0yb(TLYu4S+OM;RhGdV56{Z`nr{x zO%OW{LwuN!{LE2+CQ>jLq2z{O*`D_GmJ%#0U9AMZJ)CZS5U|PfCE;5~u0KFSN9<<24p=knCByB>({X z$o~Nu{R=Sj@s?eq{2vU|G!z7U^gnj={%^7OKf8VRH{AcvJb(O6)%|Az-GA$LA^l{} zQ%FGoTCsn>&Qn1Cd%{P|7+)-VlPwBh>ig1Wchktfm!l~Q7rxA0I@FpWXwdc9BbZ|& zEqAhl<}1@*WLmHYM;Odq5>T3H#Z6qxZS^CnL{&31v4zqhv|dzo_;F%zWS}Tfeg;oJ zf{E|^6*z10(A$tq$smI)5dbJm~>6bKho$kxl57#>Faiwu;eRV!7+xa%q{ zN_-{UW^J@zP^ZOEO5SyV8jS2q{P4HOO1L|1@H_M3`P!y3zz^Ik0|;3-$9ah{7j-^( z(S6H@R+6hPu&bTvAr?a&mq-XAUlrk>)t7b@tIof-<)7xMK)aqc2Z6^<9lj4xl_dTY zJ{26*jjK%vlas08(jdcD90p|PD?nrpE;h^^=AJN_47kxQWb~VT?+_d9*P@mitZ2R3 z+gc5L{b_|-XdnnTG?#uZ0WTWhTZntq&B3_(|3LRhwFcgdW~lJ$X)SY9-=R7w7;Q}+ z|E@}GPvT?Kw>|Z;(?4qD%$v1V_Rkm`Ra~??v_Nma8c^D6#>KwARQaI9c{B5f%U?T)2U9myjc2T1&oN7#)oS&bl zOoLGZWT%%T06_udG~;P@^urbQG50vn;;=6h1P@6kX!F};bcWZ;E4Mk<{UZ3GH!;V^ zr>-wdX6d);{X=AY`hGa{81|nj;)7WW%~+9M$R@(96ty8zeq$S4X+V#|>)u*5kbt_T zG|^5C+knzNKE}&ibrdy4xv;a)5We%G3YTosw)Zuv*ra$C-6yLSaBOE`K@)=N)|)FD z$~x;%tt8MFiRJTe#&N#0 zXb>o0b|(ut<()Kl{U{ipgk-Yixh`rUTf_RbL;baan06U~1c|p2VU~khB z9`OFClPKBI?qo|spl+4`MCD?eUfIiDzl$z~qyKl8jQ+tMrvp|=wedM$bV-+N{Kd(| z0R+HMu4XlNy*nP=2Y3I+C*n!|7q_sb5*BU$@)>!BW}E#~_I~p=r`0Yz5N5H?8qVyQ z7w6#ZDsBb(?6u#-YKs4eC?HR0ips7ihEzE8{wxuf9Q=tS*vRg?9mA;_`usIs0Bm)o zam2M_K6aLf9*TuI&yxfqNK-Z^+Md*e>N187%zy=K?*0)Y_gA0!mQv{9_7^E zKQAs#KXpJa0|V~=-MQK3rqn2_)#44ZgXiUT7JrmhV=NIUfXHU{ zLe6H(G@AIqr{^)MHM;IXqE%N23^~9T&ez>UyKc z?%gndT0tK>`!_FTxP8I=&s&u83*Gel$RTZ$qjo6i=tg)O?HaVH1@qiSpeJ+=&{U$_ z>lr;gh4kz2q#;5S(E`3iN~=jv)r!#tdtClw*k>)e$&`$hUNLxh_3L)3lpM)YBm1T7%Bx?E0pRx3x zFBG^z7d)mij1nINMgczbF8+2t83hB zSn!`UBAY9T&eWZWcOO`rB-@XA%B=y{wWb>TD$|@vijb^}vkuP!C>9N$8^3j zX&kTFx6-V3##bC9FCsy2RVHTbTI|0N`6oQ~q1N+*P!+#SdH7|qp<+^vEfLGA#uk$W zyT=+!FxIiRlEl&nPoEhq3JGKl=^v)TGVQXq#cUX+Bz^pcLgioblGP>3b#O9{)d}7h z>V{+qfyA)Y){3~DkUF%;-Ecb`5d&tRe+bOxy|qh!cq2w|lJwuzBd;8o7fH>pmpI4z zO|P2FCh*oT+*HV>#TD5EtFWL79#28R!j+5e1qGL+BOqrI9U4ZeiN0-Xx;`w%P@i%1 zvLz6wgrU$#&=9Tn)lnRw<&DKA4z1D%n&PZY&Dp=GD6*b<>fk5=<@WA)PDNhru5&jS zO9Cy|uqObY*9Or0>`cDtdNoZ+wAv*hzmdsiO_fFO&mS+H&Zxs_v)-(4x6)*e7eg%M zFEno-w=#o;j~*r^Bp;_@pVG$M;~yBhi>)0!wZWIKJy+`3=59mY%(ZG+ze=SJ>-+cx zw@85`L1Xd^q-W5QL2#v+Del7zqE?O@@aYfx8ojw`=zP3LMuyYukPrL)aY@bcfBTop zBkHyFYlNohVKgex;3rz0e`XNmL8|$7q~;d>caiyPlF|RCfBBzJ8c$-F6Z`KmkfYH4 zX2$=s0=U2V#sBR8%Z-hz_-5J0HOz^jR0#h!$`M2+B_;jWVTJr7`(I4FEGYMXd%=m* zI&fg#76bLhSv$s~d>agmlC$+1wWa@>kQW>5^#A8d|G##1NjkaFE8oUkk{UEJoV;8? z>66GvPTl~ah0sBUmvrz?4mS~MR39+3>gv-m$F>1I$`Q+NRBX<%7^~pgd@)*4_C{7! z?Xa*f3sX0tH5(?(?a%xe;6uUf?VZHrSxC^;JDdk^m0T9gdAFPk3Du>MrrNG9A-)fz z4muGLLrNqbbIkc#TfTmWr(;^!EgEEm{$mjAE$1(!x-jAD=Uz#VJ(XCR{-|+@QtAni zLcP6bf-&eOyLfTGJnhtF%4mYuUTzX@*yh;%;*;h5p`F#`Zi4&ZDOUOB{8;rFGXeY- zHQabFjiNLd*1i5ap5h8Z@EI}1Smpb^`A#3gbWS;$uZV;}!u{+(LATu3@lp3Qx@y<$XH=R8OFhmf~ z7(07s)c+&FKWAh=H7EULJx~RB%l%>(t}z~{c0JSP_j@HuqEqXwH63B`xc+9!+&wyq zOf8>bSRE@lad~1*o`=1S{z`*s#GFJv_d&)?8knN2^j!A(?1T zwy@*BDEZv7f(8unGSQ8jX6WzeKBm-&UpT^)4K)awD_`M$_-q;{i9_taM_<)ze27x6 zaSXv@=H3;^uq2;b^FL$KReJwGugGRTJ+@^hD4G*|V|oo&BS?^{s)DYWsL|!uKdRX$ zcEK3Tugp6+!lTXVI&1??&WWw194T5F;Q85jl(SP|#1a7yH}X&0S+1ug zi`Li~VeU#i`3d)~;jwi-0BDMU%$sv!B@s;VPi(vSipIYt{IMbbv)w&(^9I-ch32cL>;sd_#RQOc6BLGe~Khi)5YIW)Rep>xDg zx;%TGqgT#i^0l`r327%>kR(0C*wwZ&4&S9s&+^OI6p~WBJ%m7_1-Jb!#kG6m`|S#C_G}+vAug?qJ+g!^>0%0 znODI+wh6_H1ZG>82r%*Oit-Q_?G_!_<*qA1jlPydc%K$)i77tHzB@jh0|!2P(D2H2 zgv#7gVlaUdvWmQ37$&PNP)n|03gwZyzp%-;OUF`M8My?ZjfO|xylgQUl=Yizl)j7d zNFwe0bx%5qQU8b3#4h5#K)F5Sb{sHVd7t4eNBGf1Gj~C=kquK#L!#H$l%49KzpqtU zezd&O#qtKWSa}{_F3C6`K-@wL-aYx$9@hccfnhDnXf?Jo)mwqKlREPtPN7>vfNp2~ zH#x$475CL2SKBPWujY1Hy-Axg(o$SHBVSUNJ#b~C<@Vxzj7fy1{m4x<7BakRs$}x2 zb{M>K6FErQC&9Rfkua%i9kAy%F9bl|l&?$j^A;R_Jl;qs{Q;~Seez3kx6Co3iOGR* zXv1%iZGp93HPHRr%QUKnAyAj{ii#S$HC|N+)$30u@5g@QjZv89d~7U$P49F^iy}?J zt14>73X$zRPX7aiKRg1WNZ1D5;)QcJmo-JAfV0e-Z)|mk0U^UMh;94{-7b&VEAWwL(Gq zYir7a)LK!;we-A=XSJm}<>kd+?l~vB!2yQ0m_7k+c~FmgWoSQ&PGhVP!z(7pQQmn#MPVIrx)T4axhi`?Id z90!#dsyY~-yw9TH$}wyJJ#%a}#N#)%6Wt%>fZsX_CEo4J5091ri_Zp;yFH8H zNmuqxH=WP)$9qcrtCg zKOyuB`o=Q7FbCEdx8Y({cS?s|O7t)H4*cW$EME^0rM0H&LdX~{hPLuzQuU`zFeqL2 z_YH=V?Z|&O<)rW(r`UdG9wj5XU8jDN0n3$FmW?=Fpm5twL)A$%s9Mctb;xFr7KjFd zX}&uVhmf`cXWzX)NPz@5UaBt+Bz80|B346W)05?ud|vl9Jl)jd*Dj}vO8Ooe=`AfS z{M!l)!?`UArN3^)HmI$)&Px(;ve?Xa)MKX(Q*}z*6@cPI{u5+)?2LK30(+(5QWVF% zJHJ_7cyNx^FLtq`&^`u5*QJYeL}EmE*TGs7j~g$4z$m2;#*py-{#$H@sWmkS!$she zn-NHeh=&!5G4eo}iyY6YHAYx8`{q*Fs`fKR0iin-h1+YG^zfcj>x3949Z~9LRCMiUM~Uw*@|=bt06fQdub*ins?Tx zvk@*Rd|H3{=%OYA^1M`p;Yg7&??d8ie9=l8+EQ{C_ZyXTsRHYlwr26Y`%~IYg|>xE@YC z+h>0%Pn*z+1Sl;$a^ea^_mOj5dHJDqg%qdn*5AK{AE>p;UH1ia_k#>m7Z~>%aJrs4 zAI^8307Z_dQhGGYs4f02$_6-@z?-Sbk>Vz<4^z3@?T%U?FJX_4J!iKg2Q^(sQZCHx z6lp)+3H$D(iuLL>usi#^d6LD3hP*rr*U5+9{vOM~5%+eyjyTxh0r|PNj)2C5`%7xAe9Sqve263a3GAOzw?Y`w)+wUQ3_3@uz*Y-CoWlb8PxGMsG^Fc^sI)IU|?kq$RTLw!EOF7K7NPg zD0V;dhJo!_{jMO||5e^wM%B@MYrY92K!Q8LHCV6&*C4@l10 zn`9T;S101<*-$=p&f)c&82_5JNpT|+@GKPqVYs`$U+1{33`BJYT#lqveAz5mmbvT6 zCm-vvUM-d7Bk5c_NFdv{AYRbx=o#Twr9 zeHhPi-+0g?>GbouvWJZ`@p($mjr5me#}Zlz+`k@m?d(Icn5QS(m=s3H)6bQ@EnfA3 zPKY+%W~%2<0JX$rsVApYMCGW<7nJLy4Posk8S1TfOHG$KLpyxY^nNKVmF{fG`lbQj ztoyPn@1&L*2oip931CWLDS$xJ>jXnA#!^10YTnxn}&ww)_gzEYC{yp=i0h$^x9ePCR zO-b%*aArozZ7by;E50Zm$dKe5b;)x zKt^Pv`#Oe=Nf-$RCnMgMlxT`@$w{eGVdxj`C6nLrG-sn0zl*&{O{_M3n z2USKQdA^K4tE{m%6cgS6vIM z17d~eC}vmU471$CuU#gBSJZgX{S(g9l3=@;G~3xhE}F|0Hko@g5vce*CKl(qx`3$| z%12RY#qmI5?BZ*ZDlHbI|5=m*jcI2P=%g9cvCi#xrBqjMsn(COPT0f$0Hy7p)dNz& z?pdmk&=cYn48fsrKcxL7vW;vLq4uyYj(H9y)+@wNT5p&H^dTXUUk%|AtRLcD4}V>rqNMt6Lo7?PQSSn zaB1qf$MQP8pqMy}adx=+L5zPsPh^}uo9o~Xbk6*^eQY0+8;A`3#=O$$Q?WnlO{>^K2k+)o; zoRLcm%x6sEu_NSdW@XfVq|e6un{ zYR?4Ra@yQPp2J1Ud)=2-S&HH0zzIas zt1=E_f6en>yju0(8L1OtKuB@GJwA8QHKxs0)iYJbDi|2t8qvowOri-t?B>ik=oh@Q zS7ETb?S4~ei78a(v($Tn!|0B)!@K0k1oBuA{^@VDcwt32C;KHvJ`h>V!+L=uLz>88 z1}c~rysUG>mSY!namWhAw_odPOh!K>mZkmQ#e1kowg0c>Jx)!A$q<@j;e#o~J!;>f z+petl6y85v-Q-PEZl4;dLYTQ{4LTZ~d2M7F4=YhL@@4U(m^}qaZr2oNlxC}`fQydpI1B>SJlJ#aX1d=)A6hMQdjeeCq3-m^|m6XR_VjUN9@!1}0M zjIqJ6yXiR~ALCNFk?9}rJoX|O7E@Ysp#+5X0Z;Vy)<@r23;vFz`css(`_KEg$b+d) z@q?m6GAenm@7aVhu2UJ94g~P&d7Ytm%Y~=s2VO))YWoQ1ANik&h((DDQ@sOq2OD*~ zvQ&)hdb>Cgk%>w*oAcs^veBJlS&I(FRwh6+^$2%aM&ZP@zqb>A$t}Y3SFLm%W11@A zIe4Jxmxh!Jm&&?t@|_xBR=we@W5cG#!$XTOc!l$Zru=9*_S|fso*?q*Gy95n_Y5d z-j>&R(Wu#H+x;n;KcB!z^AbP7Kz7KjtuWE z<9lDnG=jd%+%F0J?bAI-+}4AXn29=bz_y^cj_D%YPjOdqiJNCGXIts!6lk`mfv9e{ zKSVCK>t$XG4=@d)TBSM*-DsTp-1f1vOPeR3*cR*2+R^74aEfjg^DgWxFE4ajGM?5v z5<-jTKAPm!x1ip;5D7NWeKCH(B1$=QX%V8CUz$d43a{$Gs@eGA-b_DD3@agMReq^z zXS$ZasK&I5;@KdrqEmxr7KywrK~lUaaBKjdl-r|w$A{gp0(Z7 z=;n`*=h+irRl7Due|$#jsTVsnJ}>JLY(JLtYsrQO#&NrTg*`#wsFQ8{Y{V>iND}o< zBIh7wy8gKbb(Ah&eL0M>mu*L5TK&7ud3Mii4_b-$N|s&>#b0!nA~kE@dBpQ{uO~Zx zJ8G&L*J}7il~77&cF3PHR}}67m%tuXH(nkb*cc08~mB z4=tC@B$^aR8G+N}?-H9=7(D^cxhC>xw^32W%GO#8%V}fKu1%7a#G>Z>S?VR2-U8aLcWUBWANlf#oK@w5R+53(OLFDnJ zq67o~eEa9-hlYWX2_N&bF(>T?LW4Kk?Ox;~=uD+CH|7+2dktyyw`GG69uS!X6jAp+ zuzXxhGPEL6!kCa8_k2SZ1!eUn9vKTeZD|Cx1Zdu zW-I-YO?NqYw)BGxuS-b*!9%krjHcQ9ATkoZ1t9lAs zG%tk`Ry}n6%h$%;o2lNreN}KZj@?58pjQvPC*5x#e5E?sA7H`@Lk&GNK1SpS{sK&R z>cgY3TiDgpJL`xQFgEcvJ4bdb9i;<0_!=M`v)iQQh)q6F^lW7uBr@{gL0T=@DFgGB z(|3gZn`WsUCGFHlEc7qldtB-R`Ky%1gfBJ;G4@?%>q*A=KI8?4N- z;iD~ts@;e1%w>~q(I3pkO7ym)5?UPkcL(p4K1{#JayKT!*e=D-yV0W!^|;-OCTr38Be7wO~0 zIXlHv*1-HbHm#=71c}ypgoFyou44~9;j&_!BgK~rd9u&XT?Z! z{t6#REK@J)Z7`>yp;UE7bGldC4FyfU#wx(!me@xmnUyNgX$>o$F0LCe_tWEe-S##H z)19bTJs^A0&L_c_~1iosOWMvZs}xf+sk#4n^$l2CKieD^VFcYqF!!fXqmjkhzt-B?K9^S+W}Lc zVyC{}LcLYv!R600_hTg)Dw9^WYNuimluYk$`L`#Fv5!rslyd8WSc7&HIZwcYUsKv0*Ar zM`l9gy9(|eYm&HkQDdIUJRgm{-#gV8`8A##AJnU1_fgnp=mB)Dnn*@vD3hcFW;;5Q zDd@I(97*r}>+uQ+HHL+Y&wDP9nfXdo+w0;|X5O8Oy6BB&Qr-v2cJfdW=vJ4gOl1R?|b0dkyhYvWmpgO{B9vTxO z%h;Lpn$Zi^wW-_BZllqSwQ;rRCeKdoni+cokQW|vOVo~W^FWOWAaR6?z{C>b)M@2; z%2%hHc_y}ml;IS7(84-n)gMfTK4rgdU$EkuR#xmg`;n(gzku)Nyx653=9B)w){^0M zk)NX{$UMv>zV4p&o~K+vD3o3`Mca}M94zdW!&P4sp&1u;?0K%$$thx_Tj>yC@JhqG^{^?4l>$LPvFY5Smsh`(lCJE7i1DU+jZ)3fI9C zm=fh#38FKZhiD~2P#ugd%Q0;fkEZQ$Vv9LHe&ESzgxdejrRYff&7~N0Wi#Ez{aYd-2ejcHVEK{R5aTY~pgb@6)kkipy zFfx(MUBcdX$@R)?!j2tL4g$k{%syP{h^(Nj7AX3-&e$7!qNiNYpH4Pyb748Kf;dXi zw$Om%bc5)}CUL#~F=)hYKHrU1pez6dN=Ga&JeVKHg?c1bBWg;V2w8^ppMd|R?l zG1+jfTM&atZzug-ZMsa0(CHAlQ)2)M&6*}@k-(=;&JagIRWpWazZvb*ubx!!@QUmU z(&#UWBjHSjs~=RRs%1SYOjY1oSizxUr`|{5CwGA_xso12ge&}BM#yMpQ=n}Eii0ZB z{ejlgxPBkg@3Ks3gX?GLF@a>Ma|~ZKublADF5aGbdzthCv*%0}g>WY`3?SWkg9d}s z1F<5y;iZHjIi>a6gS7UE^JuK(ElcR|D%%8UcEO4mOa52MzwO7uppiR7KXLY*McBqWJG{xDjkPkDIFwzRuk#I z^rZ>36Uph$g0!e>trBTNnnE6lPy1^7a*mkLu^nARz1reCvMy|u2U~{qk>%&Xo@q)I zcPfM$mcs=qOu}v>5nhT!u}u#059A(AUHY>qeygA1TaPtIH4(BNQwq>pgnIWLD$-tA zc!-z7`NLfVs@v!hm05~oGTG<}CgINzNZd2iI`p(!n(*DNjNvbtAxFI8@L}mWEF3Z` zxMhD>RY)pf!)SV6Y77n5u-K`RuO7WPJiISma|gRA%i9vjB6)K%bSBi@GG*t31=K82 z=lE5I%jmT<=feoZlhaPwM-P`L1uw0{Qb+~R9??i5Mz4h%rIt1vS!oDYGD-YBZ~EUV zy5VP3N$0O5<#J;B{CMc&U|>bVbMSAarC;Cte&x1sWjU#KC6*e%aVed`{aw#s$+G1> zw)CdN82#43z@68E0){hPk=7_=>W!^?kP+zuv47;t4A8P_$juI!pipUvoZ~!>^J}v) zDcXt1#e3XGpEr}VN1>jQ!Vwr@%KU> znrYkh)4ySXJu@v<*p8@73Cd(d}r zrW(DPy0|>#6G&;KeuPSk1|HcV=3KW?r*lv;jakG8nb~a;Y?)to9p%PcMPvnimZMO4 zv-vMh`a^+yk=2HlDtoQ*Y<9~!?wJ4tQuP2A9^PYC;dUiJtyZ(;kE&@#6Y&UD`i=Kf zMNhM&WI8En(^Od?2Wj|Xv~ujOlXQM%bt_e(u^lF@)PozPuHF(u(UOi&umam1=?Ptc z(Eh_`M){OXIv9x!P5#hiQihFJZ;3_;o3P<8`N(vX`K;x_D%XV$m#cB`&QUO1uzTvg z)HXv(e`I6K_HByp>r>d$!!2pLh7OoZvusdUNA8ubZsn-~Vu*$W+*m#1!9lVh3JdU6X+@Og9*SX<$$YdM!p zgcQWIRaqjI8RXR5&A#DU>L$c9OFDSB@zD)wibck1R}sP8YQlX_S=JG9HAczyHiRye zX@x_H(6)Igg;*rc z_WC@Wpa^XFN2Ac$#hQumwjX%*7s4wgXRw+|Bh%d|EXC1N$J?~*2SIK1n=m+w-586| zHmmK=mk@L<+0Fi=KB=P`l)Rq*ggZsz}8$V`@2 z9>2QFWz?p-dIb?#%0tM_=g!w9*~4yy1hL7JKUW>0ZT;xl_v5szOw#NV?^9no>ZXsUz(>m@YlS`NbLs%$P_bM%riHYdq6c8Eb-SPFW{Av>11z=AJJq z%~58Qb2D%wF{4eYG(m7mpcc*K-BuV^>&SuPr;QseZki=B{4k!1KMGenuiNE^j!b zSfYlXp;%$A;GQPKcny5@p;tsG)$4DsnM~&Aq{;A{!<2N_W}-wsaGinw2KX3!3lDhj z4c8qQ;rK>kRVsB$%#P^!}7iZmq6{jQuH`6#9R|JpY{)h&RtN zQbpPx#fm_`YaVZoo@y{%%#LNds1x(2>$;KY!kZNS23J(25WJ8FgohF)^VWB0r}9#+ zb&}=Drd7||9qNQ7BpHzg4gwP{^<&U5Q*AHrB+fEMQxIXStQ^t{+fiW>w&$2{-DlIyYSL7dTN)Cki z=r5J1F`Sd-33|@{lgHOru#l_;G^up#kqE?jL^Q{mj>oX1){xk)2#Ne3ies4ixHrEV z<3Q>C$uTOMOD{9A9EFQ*cS~7?@~1|#EVa2+cadbWi#7t^R9L3>Y=!j}1Kdm4zw@g0 zd~okmQaVR#P`b&yq=-npg)vkzj32Fe0b|q7-#@BvxUxv&3q2O0* zT6w&Q<7*F&{$vTE$53nic@}0>Wz1Vn?XHsMoiGJhnDq7}arWw8Z|eJy+g@@KLPadD z2Jn(*7%2SqOJgYU%j;6KYI6Lt<{E=oN*~r@6xSKx=7+;n@S1QCi=UVH=PK3?0n699 zXqo^u6-0h$Tj&UJqrc|&4UHpeG*vV#N3@`2_Luoyh#Zf4Qt|!kOe2j?B%8EU9Oqa{{yXv3Dp3&d%q%2RVxjEU)PAWWZtsYj z5ZV*`2VxY;?ykP-SIpW}^0aJV!)ZAo^op6xvdILzJ>Wbd)QJCbfZsaJ0%ao%ed=jc zsE!Pr_9WQc`Bjs+Gve{8=2TzT)($&t8|Q`bxC<$Ms$|!=x+Y`2M8S2dP%7rrIU)o9 zHbg+Bi(5Hf6XRCkK>Q{`ZzPE1?KJ;t>cxd5Q<|>y-n{Di@6I5E1p^1AU@Q!+({ci?;X{^IyK!){hMbO~y8SP$D4ooaWe<9qhwpWu2s& z`a-!Eo9w54x@NoW+zz%tnY}O#kFMB@X>H}L`V~=nBn;ZnRMPnrv_%XMQR+WN9W0|Q zNHZi+w+?fGqVm6vk)C$c{}z4u`(yv{>iCb<5L{O0OmlS9&p{t@!)X6qeLkRe!k)-c zg{S2P>-QPK@BZuXXwCteT+Z!qegiKr?>}EKc`Die9`;XZ{J(}i{g>VUe;acBubw9Q zC9~y4mD?ZwKpYXMflp;e{bj3NF4}CrJua93hky{@X@UX+9I8K0gX7B01T8=sbPVh& zTkl+<+8HlN&yelrDddyFAZ_JF2k=T&7)l$J{^1?$TsA*0`B>|hnRdPBevRCdMj|Lz zAj#o&YN7oCX0dxu^~0LF(tEc&ve_DoLg3p3B4LCb)7I$GXx@M3PSzaP%bR+~-Jpm2 z8@++U-C>Vml%(@3^^(hzdg3_Bx;q3Jlf;1cJr~IhfFJ+gQ9XmXNj?n%^k}FBTA$|( zC1sD3R{@=(uXA+O3!;-&06>v8_sS)S_d98m@;EXf`?E)HB?bmr7jjC3NO(i!rmhOtu;a&U!TR$sl&h`6DWzBp!1jUO%{84@;lh= zjUt}oGIxKkAha=sI1Ec~%~n<5_Zm-Tun=-PeFdOOeu$;Z%G}}24|~VM#je`2!M;V) z^}ZRgTVA0;*8P!YeWUr;aM94jRb~^Q3(>hJEUR+0LnLfvM^W4PHn?8cMywm(6-#pcLNZkNtl%RccTT(pey?6;Me!wB|9k%I-vrP>z=-#Rbdp4GR}H z=$KEsed#eNN(9DKz0Ncg{{;dZLT6U0yPxx7qe{bIF< zA4%V)-a+mxU1*d`d}tRJ#i>WMJ(B%GrL42Fu&^)1XP_FJz|qA*^*eT`ZS6Me{nXix zlsCrXdFe^jg<$kHVW!A$TlyoIYv}one{K=?FuLCLG>1>E$~-;#ED9cNBsWMOP_qrg7H(Ov~{``81iLyaty6 zwX@q2WF?4-A7p1DX1A-L>Vtc7&?oqfOplgko8;S*m;eug@OxLs{(aKkw-@=hp9zXo zs>ByJ!O;xb(g!j{d$c#&4ThLOSadW*%F`Z4#0ZFpQF|4`7Af; zkmR`KPs3)QPe+FB80C>85wm%r@wx*GkQmLTO#?r-Xmdw>z zzypjK-dN7iH*YjAmCltp-g^}EQ_z=7b})$0dXwA1t=-MzaJ73N5hw!bY`b?YHJU=2 z#$fPEA1xblb?MvJ(`s2V9P$OP_p!TNJ$twUBUW21k<^%|pWbq=4JNC*yB!2$|FF+M z9*N5jq;{}aqN%B}oP$ZhrtjSsA_|7PuwF*|{oII4R7Ym-FH+5^4vu!g%TsEu`2S;|@Xzr6 zuLInkd>a09P9ujk+&D9J68ihzsaOD|1zr*QIt2bfdOevfFOnVm=U4f_I(~n9sR~2~ zS?X+ztwaC8Wc=vS9umTE_5*7z>*?#q;JTyZgTA#9m(FkU1 z_^sZ4=KZN&&T8t+AYb!)y<|3*nkDIV|?n1|${57p$2ZE$b6YMgK~ z)M%eKlRrw%j^1)~-NPX6g?qiETeGmv43|(Y4TrZw`Fl=8bi*Q_)jjNa9UWOQn~kV7 z@6Xg|OFy4LY0Gl4-)%P;zXaMs;ZK&_Ll5$~g`;-((YWTFUstmk4y1UyAmXkbdORqa z$|qdU;j5@%eDl`D%}f?1KDw~DD|7b-MTv$y(`f9}JW%Fto~t?hmHQ(qTB+*7VoopF zZt49xjo!#g_Eo(}6uIs5js7@f5A$iC*y6b#_et#5ub09JsbO(mqV8$b8=!i59cF-g z28}0jcmVeS*=9G6I!!XNA>Z$+gbMi@Z=@2cI(2$SZ=nXKK8WHC=zEEg+$YxQC5m zrx1XJl$e-Nws|0l1+S@jpSC9OqsrLZP^O_O~6$O z?veKK^Xsb_52yyfV_^}0BpX$H0PNb;Ib6KA;i!9x5}9_~)_liTN+nuk;c8=qs5M4Q zyw}rSPHrBLwn!5NN-_QI859y_;`OPuEnAx&tKI$Q>;3uOx?$e1D}%{gTXUArO0>>n zF7X~$$u(M1*lFl9hdvn?kl!HVk`jsR)!Yv80H`FaaJaQJNV!b!(>meDsgmU5xg_UT zeBM{e(Q}nwDB@UvS+U(h0kZF+;zeYtm-)H$2dO1@JNlRkSIU7z=+gmv`2%PocXpUt z`HU`sB}ya%Kwarb2o&a<_ZQ$l1!KrvfZ$)flB*uAv752EezB+JflZW z>Y7(F+4ax8@#W`XxR8`DoLml8oMV<+}Csa z;9u4oLz_FAz@$gMn6zZrKDX()`ikq>GlVoTA$|oKKLi3#xh1YuX;~DT&B5Zm2y3F1 zx?vp7c`>6UEo^!k*Wq08pB+GM@b{XWy_pOJ2Kq+}@2jz_*KJ1bZVeN*IUe@4u_8u* zXh!uZC6hv6LK8AXQE54P9j>oso^fvBV>JrxH|%7cdc-To!MuPhK0V?< z!XsJw_tNncAFS!>=6#x?b#>fxe3E3@P;L1M_{)qtw?w7D?&dRtPKTe=iE(wNKXNZy z8J#eNiEw0KgcT_Yi__7^x>VmUrzm)M!FX(6`t}b6i*jf|{_%bK@6E(rGc?}%J| zZ$U{syXlpNA#lU@tgiHG%$D>+W0Xp*;Ik{H6y8wT3t3o#t|5)tYK)7$Sx@iV%QUNH zfuqv~puf*WdJ6n8{?Ft?zl;63zHsZ!YPw#1L%&`3z+g{<&coe@k19^Jcbq}My`i@8 z(l_$|mK!EN0JvUrbb??jlf!<6>M5o<7rDe}k%CE}CVqeB%o=>8=qP3ZMAMU?4$^&~ zq$7w~tt^3F#N>}QkTcXtJ0z3KSJ-;gB*Nz`RhCZ0G^r$AkNY;r7-XtU1-l6a+> z!<)dLv)@{1ayklBKoV)PFZI<6F!22ml*CO#aaq5%q%u5QcHm_DQGx%9BnkuwY6*(@ zdf^^Jt{IB`SmOIVsDxNyKyOs4>@yyhGn^q(QWU}m(R{H)xYmgxIYH{C)GwM1X+Q=< zTx|cxSZ=^K!lBigt2bMxc57QqAp~sv)J)TVf@Xb_a+*xYN`p-oo|(ILaDif>fm5Z1 zq4Ax)ZSCD&LG~&?00|v}%KZ6&{;Oy<}PATY80CkrC<;<9QslxEW}r>`668c_es&KKCu(5ySv-1x2&9(bjgG>;;UFR-riFk zGVBQPW$=~JeW^E2DQs<>1F}d}^N-&C$m^UVImfJglz*OVFz+JA@Kmz}UJ|=Ai28YO z?7J9f57K~~Wgzi$Fkk20d=K*rNFTj;0i$;p9%Xg!vXaM2^8P*AJuG5`w_#6MYU=^t zB{5*Lgu~O#A*R_Cgc;+Sm9;I1FNklp=R>5M!e$wXYK!X&j~ThSH`lD6tHEn`1y^sk z>j_-{kM&BSPr^U=!r8-WU#(cD013TCtnl-nGZj=yKh@}sqMb^hy7ENVjZoOElUy$k zepujIp4vvbqvqEGW*2@q3zWi7T@d~{UL9fp?M06RIj)6dWun4pz5v~IBcQ+HuJ^@t z)OifiW{)?y-wOkht*vs+Zo))j(LWxVfn}HNivXZ3tlCcT9n9yT;(nmZ<%4$kg)C%J zc@?YC0>?E0t2>+7lAi6Tlc4sObgyZO-;kvgo@!}{Q%B@Zy^JoW%Z^?=*d)JCr|qQ# zIse%-GcQsPQ*Nv@SRLyL&=hQJ4AP!A&4NF@!o%ZGR4J;w ztrq$QaVSoRXF6reZ$XWJ+KXV*6;z@%@i8G2dAt3Nfzc_zo|DB`mdI$RKwhybaOAUR zjV0x~zGcS+h97!pskjUf_;?mq`Ws~Y5J0@U=k}-pX_6$4UC+?OnqO=A^3xTLL=PO7 zkkJI|mAV4WiX4!*LZKldM|Pa3&Occ%(CMUSGq6n}RUS+_NphYi!$?_r*BhQuHmt% zT}L)We|BuLoBO!^TSD%yOY=kASq-YG0g0RJR_~u^fb|rXoMmL3Uw};JKu<1mNC!*a zKp|(_(4k-XrHA0p5o|21FzuW>@*z5Q%Rx)PVhnFkzlYZKqt;#KQ{MJA?fHGoZ1mgu zyO7&U!F3F+GRr02rIl2VLF!`D7RW8M?((vY)svVJw*alw;c}Y$;7@be=|J4jgZ%HzegmmvAGZv4l? h`~UD88~oPC=Mc)_D+x9vqNfhoVxOdiN(6Mg{vUGCUL*hj literal 0 HcmV?d00001 diff --git a/templates/eventbroker_ha_template.yaml b/templates/eventbroker_ha_template.yaml deleted file mode 100644 index 9627ec8..0000000 --- a/templates/eventbroker_ha_template.yaml +++ /dev/null @@ -1,856 +0,0 @@ ---- -apiVersion: v1 -kind: Template -metadata: - name: pubsubplus-eventbroker-ha-template - annotations: - description: Deploys PubSub+ Event Broker in an HA configuration using persistent storage -objects: - -- kind: Secret - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-secrets" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus - type: Opaque - data: - username_admin_password: "${BROKER_ADMIN_PASSWORD}" - -- kind: ConfigMap - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus - data: - init.sh: |- - export username_admin_passwordfilepath="/mnt/disks/secrets/username_admin_password" - export username_admin_globalaccesslevel=admin - export service_ssh_port='2222' - export service_webtransport_port='8008' - export service_webtransport_tlsport='1443' - export service_semp_tlsport='1943' - export logging_debug_output=all - export system_scaling_maxconnectioncount="100" - # Uncomment if using TLS configuration - # cat /mnt/disks/certs/server/tls.key /mnt/disks/certs/server/tls.crt > /dev/shm/server.cert - # export tls_servercertificate_filepath="/dev/shm/server.cert" - IFS='-' read -ra host_array <<< $(hostname) - node_ordinal=${host_array[-1]} - if [[ ! -z `echo $STATEFULSET_NAMESPACE` ]]; then - namespace=`echo $STATEFULSET_NAMESPACE` - else - namespace=default - fi - service="${DEPLOYMENT_NAME}-pubsubplus" - # Deal with the fact we cannot accept "-" in routre names - service_name=$(echo ${service} | sed 's/-//g') - export routername=$(echo $(hostname) | sed 's/-//g') - export redundancy_enable=yes - export configsync_enable=yes - export redundancy_authentication_presharedkey_key=`cat /mnt/disks/secrets/username_admin_password | awk '{x=$0;for(i=length;i<51;i++)x=x "0";}END{print x}' | base64` # Right-pad with 0s to 50 length - export service_redundancy_firstlistenport='8300' - export redundancy_group_node_${service_name}0_nodetype=message_routing - export redundancy_group_node_${service_name}0_connectvia=${service}-0.${service}-discovery.${namespace}.svc:${service_redundancy_firstlistenport} - export redundancy_group_node_${service_name}1_nodetype=message_routing - export redundancy_group_node_${service_name}1_connectvia=${service}-1.${service}-discovery.${namespace}.svc:${service_redundancy_firstlistenport} - export redundancy_group_node_${service_name}2_nodetype=monitoring - export redundancy_group_node_${service_name}2_connectvia=${service}-2.${service}-discovery.${namespace}.svc:${service_redundancy_firstlistenport} - - case ${node_ordinal} in - 0) - export nodetype=message_routing - export redundancy_matelink_connectvia=${service}-1.${service}-discovery.${namespace}.svc - export redundancy_activestandbyrole=primary - ;; - 1) - export nodetype=message_routing - export redundancy_matelink_connectvia=${service}-0.${service}-discovery.${namespace}.svc - export redundancy_activestandbyrole=backup - ;; - 2) - export nodetype=monitoring - ;; - esac - - startup-broker.sh: |- - #!/bin/bash - APP=`basename "$0"` - IFS='-' read -ra host_array <<< $(hostname) - node_ordinal=${host_array[-1]} - echo "`date` INFO: ${APP}-Node ordinal: ${node_ordinal}" - echo "`date` INFO: ${APP}-Waiting for management API to become available" - password=`cat /mnt/disks/secrets/username_admin_password` - loop_guard=60 - pause=10 - count=0 - while [ ${count} -lt ${loop_guard} ]; do - if /mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 -t ; then - break - fi - run_time=$((${count} * ${pause})) - ((count++)) - echo "`date` INFO: ${APP}-Waited ${run_time} seconds, Management API not yet accessible" - sleep ${pause} - done - if [ ${count} -eq ${loop_guard} ]; then - echo "`date` ERROR: ${APP}-Solace Management API never came up" >&2 - exit 1 - fi - # Uncomment if using TLS configuration - # rm /dev/shm/server.cert # remove as soon as possible - # cert_results=$(curl --write-out '%{http_code}' --silent --output /dev/null -k -X PATCH -u admin:${password} https://localhost:1943/SEMP/v2/config/ \ - # -H "content-type: application/json" \ - # -d "{\"tlsServerCertContent\":\"$(cat /mnt/disks/certs/server/tls.key /mnt/disks/certs/server/tls.crt | awk '{printf "%s\\n", $0}')\"}") - # if [ "${cert_results}" != "200" ]; then - # echo "`date` ERROR: ${APP}-Unable to set the server certificate, exiting" >&2 - # exit 1 - # fi - # echo "`date` INFO: ${APP}-Server certificate has been configured" - # for non-monitor nodes setup redundancy and config-sync - if [ "${node_ordinal}" != "2" ]; then - resync_step="" - role="" - count=0 - while [ ${count} -lt ${loop_guard} ]; do - role_results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/redundancy/active-standby-role[text()]"` - run_time=$((${count} * ${pause})) - case "`echo ${role_results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -`" in - "Primary") - role="primary" - break - ;; - "Backup") - role="backup" - break - ;; - esac - ((count++)) - echo "`date` INFO: ${APP}-Waited ${run_time} seconds, got ${role_results} for this node's active-standby role" - sleep ${pause} - done - if [ ${count} -eq ${loop_guard} ]; then - echo "`date` ERROR: ${APP}-Could not determine this node's active-standby role" >&2 - exit 1 - fi - # Determine local activity - count=0 - echo "`date` INFO: ${APP}-Management API is up, determined that this node's active-standby role is: ${role}" - while [ ${count} -lt ${loop_guard} ]; do - online_results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/redundancy/virtual-routers/${role}/status/activity[text()]"` - local_activity=`echo ${online_results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -` - run_time=$((${count} * ${pause})) - case "${local_activity}" in - "Local Active") - echo "`date` INFO: ${APP}-Node activity status is Local Active, after ${run_time} seconds" - # We should only be here on new cluster create, if not likely a bug - # Need to issue assert master to get back into sync" - resync_step="assert-master" - break - ;; - "Mate Active") - echo "`date` INFO: ${APP}-Node activity status is Mate Active, after ${run_time} seconds" - # This is normal state if we are backup or recreated later on - # will issue a resync master to get back into sync - resync_step="resync-master" - break - ;; - esac - ((count++)) - echo "`date` INFO: ${APP}-Waited ${run_time} seconds, Local activity state is: ${local_activity}" - sleep ${pause} - done - if [ ${count} -eq ${loop_guard} ]; then - echo "`date` ERROR: ${APP}-Local activity state never become Local Active or Mate Active" >&2 - exit 1 - fi - # If we need to assert master, then we need to wait for mate to reconcile - if [ "${resync_step}" = "assert-master" ]; then - count=0 - echo "`date` INFO: ${APP}-Waiting for mate activity state to be 'Standby'" - while [ ${count} -lt ${loop_guard} ]; do - online_results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/redundancy/virtual-routers/${role}/status/detail/priority-reported-by-mate/summary[text()]"` - mate_activity=`echo ${online_results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -` - run_time=$((${count} * ${pause})) - case "${mate_activity}" in - "Standby") - echo "`date` INFO: ${APP}-Activity state reported by mate is Standby, after ${run_time} seconds" - break - ;; - esac - ((count++)) - echo "`date` INFO: ${APP}-Waited ${run_time} seconds, Mate activity state is: ${mate_activity}, not yet in sync" - sleep ${pause} - done - if [ ${count} -eq ${loop_guard} ]; then - echo "`date` ERROR: ${APP}-Mate not in sync, never reached Standby" >&2 - exit 1 - fi - fi # if assert-master - # Ensure Config-sync connection state is Connected before proceeding - count=0 - echo "`date` INFO: ${APP}-Waiting for config-sync connected" - while [ ${count} -lt ${loop_guard} ]; do - online_results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/config-sync/status/client/connection-state"` - connection_state=`echo ${online_results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -` - run_time=$((${count} * ${pause})) - case "${connection_state}" in - "Connected") - echo "`date` INFO: ${APP}-Config-sync connection state is Connected, after ${run_time} seconds" - break - ;; - esac - ((count++)) - echo "`date` INFO: ${APP}-Waited ${run_time} seconds, Config-sync connection state is: ${connection_state}, not yet in Connected" - sleep ${pause} - done - if [ ${count} -eq ${loop_guard} ]; then - echo "`date` ERROR: ${APP}-Config-sync connection state never reached Connected" >&2 - exit 1 - fi - # Now can issue {resync_step} command - echo "`date` INFO: ${APP}-Initiating ${resync_step}" - /mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "<${resync_step}>" - /mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "<${resync_step}>*" - # Wait for config-sync results - count=0 - echo "`date` INFO: ${APP}-Waiting for config-sync connected" - while [ ${count} -lt ${loop_guard} ]; do - online_results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/config-sync/status/oper-status"` - confsyncstatus_results=`echo ${online_results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -` - run_time=$((${count} * ${pause})) - case "${confsyncstatus_results}" in - "Up") - echo "`date` INFO: ${APP}-Config-sync is Up, after ${run_time} seconds" - break - ;; - esac - ((count++)) - echo "`date` INFO: ${APP}-Waited ${run_time} seconds, Config-sync is: ${confsyncstatus_results}, not yet Up" - sleep ${pause} - done - if [ ${count} -eq ${loop_guard} ]; then - echo "`date` ERROR: ${APP}-Config-sync never reached state \"Up\"" >&2 - exit 1 - fi - fi # if not monitor - echo "`date` INFO: ${APP}-PubSub+ Event Broker bringup is complete for this node." - exit 0 - - - readiness_check.sh: |- - #!/bin/bash - APP=`basename "$0"` - LOG_FILE=/usr/sw/var/k8s_readiness_check.log # STDOUT/STDERR goes to k8s event logs but gets cleaned out eventually. This will also persist it. - tail -n 1000 ${LOG_FILE} > ${LOG_FILE}.tmp; mv -f ${LOG_FILE}.tmp ${LOG_FILE} || : # Limit logs size - exec > >(tee -a ${LOG_FILE}) 2>&1 # Setup logging - FINAL_ACTIVITY_LOGGED_TRACKING_FILE=/tmp/final_activity_state_logged - - # Function to read Kubernetes metadata labels - get_label () { - # Params: $1 label name - echo $(cat /etc/podinfo/labels | awk -F= '$1=="'${1}'"{print $2}' | xargs); - } - - # Function to set Kubernetes metadata labels - set_label () { - # Params: $1 label name, $2 label set value - #Prevent overdriving Kubernetes infra, don't set activity state to same as previous state - previous_state=$(get_label "active") - if [ "${2}" = "${previous_state}" ]; then - #echo "`date` INFO: ${APP}-Current and Previous state match (${2}), not updating pod label" - : - else - echo "`date` INFO: ${APP}-Updating pod label using K8s API from ${previous_state} to ${2}" - echo "[{\"op\": \"add\", \"path\": \"/metadata/labels/${1}\", \"value\": \"${2}\" }]" > /tmp/patch_label.json - K8S=https://kubernetes.default.svc.cluster.local:$KUBERNETES_SERVICE_PORT - KUBE_TOKEN=$(&2 - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - fi - fi - fi - } - - # Main logic: note that there are no re-tries here, if check fails then return not ready. - # HA config - IFS='-' read -ra host_array <<< $(hostname) - node_ordinal=${host_array[-1]} - password=`cat /mnt/disks/secrets/username_admin_password` - - # For update (includes SolOS upgrade) purposes, additional checks are required for readiness state when the pod has been started - # This is an update if the LASTVERSION_FILE with K8s controller-revision-hash exists and contents differ from current value - LASTVERSION_FILE=/var/lib/solace/var/lastConfigRevisionBeforeReboot - if [ -f ${LASTVERSION_FILE} ] && [[ $(cat ${LASTVERSION_FILE}) != $(get_label "controller-revision-hash") ]] ; then - echo "`date` INFO: ${APP}-Upgrade detected, running additional checks..." - # Check redundancy - results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/redundancy/redundancy-status"` - redundancystatus_results=`echo ${results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -` - if [ "${redundancystatus_results}" != "Up" ]; then - echo "`date` INFO: ${APP}-Redundancy state is not yet up." - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - fi - # Additionally check config-sync status for non-monitoring nodes - if [ "${node_ordinal}" != "2" ]; then - results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/config-sync/status/oper-status"` - confsyncstatus_results=`echo ${results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -` - if [ "${confsyncstatus_results}" != "Up" ]; then - echo "`date` INFO: ${APP}-Config-sync state is not yet up." - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - fi - fi - fi - # Record current version in LASTVERSION_FILE - echo $(get_label "controller-revision-hash") > ${LASTVERSION_FILE} - # For monitor node just check for 3 online nodes in group; active label will never be set - if [ "${node_ordinal}" = "2" ]; then - role_results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -c "/rpc-reply/rpc/show/redundancy/group-node/status[text() = \"Online\"]"` - if [[ ${role_results} != *""* ]]; then - errorinfo=`echo ${results} | xmllint -xpath "string(returnInfo/errorInfo)" - 2>/dev/null` || errorinfo= - echo "`date` INFO: ${APP}-Waiting for valid server status response, got ${errorinfo}" - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - fi - nodes_online=`echo ${role_results} | xmllint -xpath "string(returnInfo/countSearchResult)" -` - if [ "$nodes_online" -eq "3" ]; then - if [ ! -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} ]; then - echo "`date` INFO: ${APP}-All nodes online, monitor node is redundancy ready" - touch ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} - fi - exit 0 - else - echo "`date` INFO: ${APP}-Monitor node is not redundancy ready, ${nodes_online} of 3 nodes online" - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - fi - fi # End Monitor Node - # For Primary or Backup nodes set both service readiness (active label) and k8s readiness (exit return value) - health_result=`curl -s -o /dev/null -w "%{http_code}" http://localhost:5550/health-check/guaranteed-active` - case "${health_result}" in - "200") - if [ ! -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} ]; then - echo "`date` INFO: ${APP}-HA Event Broker health check reported 200, message spool is up" - touch ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} - fi - set_label "active" "true" - exit 0 - ;; - "503") - if [[ $(get_label "active") = "true" ]]; then echo "`date` INFO: ${APP}-HA Event Broker health check reported 503"; fi - set_label "active" "false" - # Further check is required to determine readiness - ;; - *) - echo "`date` WARN: ${APP}-HA Event Broker health check reported unexpected ${health_result}" - set_label "active" "false" - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - esac - # At this point analyzing readiness after health check returned 503 - checking if Event Broker is Standby - case "${node_ordinal}" in - "0") - config_role="primary" - ;; - "1") - config_role="backup" - ;; - esac - online_results=`/mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 \ - -q "" \ - -v "/rpc-reply/rpc/show/redundancy/virtual-routers/${config_role}/status/activity[text()]"` - local_activity=`echo ${online_results} | xmllint -xpath "string(returnInfo/valueSearchResult)" -` - case "${local_activity}" in - "Mate Active") - # Pass readiness check - if [ ! -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} ]; then - echo "`date` INFO: ${APP}-Redundancy is up and node is mate Active" - touch ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} - fi - exit 0 - ;; - *) - echo "`date` WARN: ${APP}-Health check returned 503 and local activity state is: ${local_activity}, failing readiness check." - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - ;; - esac - semp_query.sh: |- - #!/bin/bash - APP=`basename "$0"` - OPTIND=1 # Reset in case getopts has been used previously in the shell. - # Initialize our own variables: - count_search="" - name="" - password="" - query="" - url="" - value_search="" - test_connection_only=false - script_name=$0 - verbose=0 - while getopts "c:n:p:q:u:v:t" opt; do - case "$opt" in - c) count_search=$OPTARG - ;; - n) username=$OPTARG - ;; - p) password=$OPTARG - ;; - q) query=$OPTARG - ;; - u) url=$OPTARG - ;; - v) value_search=$OPTARG - ;; - t) test_connection_only=true - ;; - esac - done - shift $((OPTIND-1)) - [ "$1" = "--" ] && shift - verbose=1 - #echo "`date` INFO: ${APP}-${script_name}: count_search=${count_search} ,username=${username} ,password=xxx query=${query} \ - # ,url=${url} ,value_search=${value_search} ,Leftovers: $@" >&2 - if [[ ${url} = "" || ${username} = "" || ${password} = "" ]]; then - echo "`date` ERROR: ${APP}-${script_name}: url, username, password are madatory fields" >&2 - echo 'missing parameter' - exit 1 - fi - if [ "`curl --write-out '%{http_code}' --silent --output /dev/null -u ${username}:${password} ${url}/SEMP`" != "200" ] ; then - echo "management host is not responding" - exit 1 - fi - if [ "$test_connection_only" = true ] ; then - exit 0 # done here, connection is up - fi - query_response=`curl -sS -u ${username}:${password} ${url}/SEMP -d "${query}"` - # Validate first char of response is "<", otherwise no hope of being valid xml - if [[ ${query_response:0:1} != "<" ]] ; then - echo "no valid xml returned" - exit 1 - fi - query_response_code=`echo $query_response | xmllint -xpath 'string(/rpc-reply/execute-result/@code)' -` - - if [[ -z ${query_response_code} && ${query_response_code} != "ok" ]]; then - echo "query failed -${query_response_code}-" - exit 1 - fi - #echo "`date` INFO: ${APP}-${script_name}: query passed ${query_response_code}" >&2 - if [[ ! -z $value_search ]]; then - value_result=`echo $query_response | xmllint -xpath "string($value_search)" -` - echo "${value_result}" - exit 0 - fi - if [[ ! -z $count_search ]]; then - count_line=`echo $query_response | xmllint -xpath "$count_search" -` - count_string=`echo $count_search | cut -d '"' -f 2` - count_result=`echo ${count_line} | tr "><" "\n" | grep -c ${count_string}` - echo "${count_result}" - exit 0 - fi - -# Uncomment if using provider-specific StorageClass -# Also uncomment further down at volumeClaimTemplates -# This is an example for aws -#- kind: StorageClass -# apiVersion: storage.k8s.io/v1 -# metadata: -# name: "${DEPLOYMENT_NAME}-standard" -# provisioner: kubernetes.io/aws-ebs -# parameters: -# type: gp2 - -- kind: ServiceAccount - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-sa" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus #end gcp - -- kind: Role - apiVersion: rbac.authorization.k8s.io/v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-podtagupdater" - rules: - - apiGroups: [""] # "" indicates the core API group - resources: ["pods"] - verbs: ["patch"] - -- kind: RoleBinding - apiVersion: rbac.authorization.k8s.io/v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-serviceaccounts-to-podtagupdater" - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: "${DEPLOYMENT_NAME}-pubsubplus-podtagupdater" - subjects: - - kind: ServiceAccount - name: "${DEPLOYMENT_NAME}-pubsubplus-sa" - -- kind: Service - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-discovery" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus - annotations: - service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" - spec: - ports: - - port: 8080 - name: tcp-semp - - port: 8741 - name: tcp-ha-mate-link - - port: 8300 - name: tcp-ha-conf-sync0 - - port: 8301 - name: tcp-ha-conf-sync1 - - port: 8302 - name: tcp-ha-conf-sync2 - clusterIP: None - selector: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - publishNotReadyAddresses: true -- kind: Service - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus #end gcp - spec: - type: LoadBalancer - ports: - - port: 2222 - targetPort: 2222 - protocol: TCP - name: tcp-ssh - - port: 8080 - targetPort: 8080 - protocol: TCP - name: tcp-semp - - port: 1943 - targetPort: 1943 - protocol: TCP - name: tls-semp - - port: 55555 - targetPort: 55555 - protocol: TCP - name: tcp-smf - - port: 55003 - targetPort: 55003 - protocol: TCP - name: tcp-smfcomp - - port: 55443 - targetPort: 55443 - protocol: TCP - name: tls-smf - - port: 55556 - targetPort: 55556 - protocol: TCP - name: tcp-smfroute - - port: 8008 - targetPort: 8008 - protocol: TCP - name: tcp-web - - port: 1443 - targetPort: 1443 - protocol: TCP - name: tls-web - - port: 9000 - targetPort: 9000 - protocol: TCP - name: tcp-rest - - port: 9443 - targetPort: 9443 - protocol: TCP - name: tls-rest - - port: 5672 - targetPort: 5672 - protocol: TCP - name: tcp-amqp - - port: 5671 - targetPort: 5671 - protocol: TCP - name: tls-amqp - - port: 1883 - targetPort: 1883 - protocol: TCP - name: tcp-mqtt - - port: 8883 - targetPort: 8883 - protocol: TCP - name: tls-mqtt - - port: 8000 - targetPort: 8000 - protocol: TCP - name: tcp-mqttweb - - port: 8443 - targetPort: 8443 - protocol: TCP - name: tls-mqttweb - selector: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - active: "true" - -- kind: StatefulSet - apiVersion: apps/v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus" - labels: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - spec: - selector: - matchLabels: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - serviceName: "${DEPLOYMENT_NAME}-pubsubplus-discovery" - replicas: 3 - podManagementPolicy: Parallel - updateStrategy: - type: RollingUpdate - template: - metadata: - labels: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - spec: - imagePullSecrets: - - name: ${BROKER_IMAGE_REGISTRY_PULLSECRET} - serviceAccountName: "${DEPLOYMENT_NAME}-pubsubplus-sa" - terminationGracePeriodSeconds: 1200 - containers: - - name: pubsubplus - image: "${BROKER_IMAGE_REGISTRY_URL}:${BROKER_IMAGE_TAG}" - imagePullPolicy: IfNotPresent - resources: - requests: - cpu: "2" - memory: 4025Mi - limits: - cpu: "2" - memory: 4025Mi - livenessProbe: - tcpSocket: - port: 8080 - initialDelaySeconds: 300 - timeoutSeconds: 5 - readinessProbe: - initialDelaySeconds: 30 - periodSeconds: 5 - exec: - command: - - /mnt/disks/solace/readiness_check.sh - securityContext: - privileged: false - env: - - name: STATEFULSET_NAME - value: "${DEPLOYMENT_NAME}-pubsubplus" - - name: STATEFULSET_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: TZ - value: :/usr/share/zoneinfo/UTC - - name: UMASK - value: "0022" - command: - - bash - - "-ec" - - | - source /mnt/disks/solace/init.sh - # not using postinstall hooks because of order dependencies - # launch config check then PubSub+ so VCMR can provide return code - nohup /mnt/disks/solace/startup-broker.sh & - /usr/sbin/boot.sh - - lifecycle: - preStop: - exec: - command: - - bash - - "-ec" - - | - while ! pgrep solacedaemon ; do sleep 1; done - killall solacedaemon; - while [ ! -d /usr/sw/var/db.upgrade ]; do sleep 1; done; - volumeMounts: - - name: podinfo - mountPath: /etc/podinfo - - name: config-map - mountPath: /mnt/disks/solace - - name: secrets - mountPath: /mnt/disks/secrets - readOnly: true - # Uncomment if using TLS configuration - # - name: server-certs - # mountPath: /mnt/disks/certs/server - # readOnly: true - - name: dshm - mountPath: /dev/shm - - name: data - mountPath: /usr/sw/jail - subPath: jail - - name: data - mountPath: /usr/sw/var - subPath: var - - name: data - mountPath: /usr/sw/internalSpool - subPath: internalSpool - - name: data - mountPath: /usr/sw/adb - subPath: adb - - name: data - mountPath: /var/lib/solace/diags - subPath: diags - # only mount softAdb when not using NFS, comment it out otherwise - - name: data - mountPath: /usr/sw/internalSpool/softAdb - subPath: softAdb - # use this instead if using NFS: - #- name: soft-adb-ephemeral - # mountPath: /usr/sw/internalSpool/softAdb - ports: - - containerPort: 2222 - protocol: TCP - - containerPort: 8080 - protocol: TCP - - containerPort: 1943 - protocol: TCP - - containerPort: 55555 - protocol: TCP - - containerPort: 55003 - protocol: TCP - - containerPort: 55443 - protocol: TCP - - containerPort: 55556 - protocol: TCP - - containerPort: 8008 - protocol: TCP - - containerPort: 1443 - protocol: TCP - - containerPort: 9000 - protocol: TCP - - containerPort: 9443 - protocol: TCP - - containerPort: 5672 - protocol: TCP - - containerPort: 5671 - protocol: TCP - - containerPort: 1883 - protocol: TCP - - containerPort: 8883 - protocol: TCP - - containerPort: 8000 - protocol: TCP - - containerPort: 8443 - protocol: TCP - volumes: - - name: podinfo - downwardAPI: - items: - - path: "labels" - fieldRef: - fieldPath: metadata.labels - - name: config-map - configMap: - name: "${DEPLOYMENT_NAME}-pubsubplus" - defaultMode: 0755 - - name: secrets - secret: - secretName: "${DEPLOYMENT_NAME}-pubsubplus-secrets" - defaultMode: 0400 - # Uncomment if using TLS configuration - # - name: server-certs - # secret: - # secretName: "${BROKER_TLS_CERT_SECRET}" - # defaultMode: 0400 - - name: dshm - emptyDir: - medium: Memory - # add this if using NFS (together with montPath changes for softADB - # - name: soft-adb-ephemeral - # emptyDir: {} - volumeClaimTemplates: - - metadata: - name: data - spec: - # Uncomment if using provider-specific StorageClass - # Also uncomment StorageClass definition above - # storageClassName: "${DEPLOYMENT_NAME}-standard" - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: "${BROKER_STORAGE_SIZE}" - -parameters: - - name: DEPLOYMENT_NAME - displayName: PubSub+ Event Broker Deployment Name - description: The prefix to use for object names - generate: expression - from: '[A-Z0-9]{8}' - value: example - required: true - - name: BROKER_IMAGE_REGISTRY_URL - displayName: Image Registry URL - description: The image registry URL for the registry containing the PubSub+ Event Broker docker image - value: registry.connect.redhat.com/solace/pubsubplus-standard - required: true - - name: BROKER_IMAGE_REGISTRY_PULLSECRET - displayName: Image Registry Pull Secret - description: The pull secret to be used to obtain the PubSub+ Event Broker docker image - value: - required: false - - name: BROKER_IMAGE_TAG - displayName: PubSub+ Event Broker Docker Image Tag - description: The Docker image tag for the PubSub+ Event Broker docker image from your Docker registry - value: latest - required: true - - name: BROKER_ADMIN_PASSWORD - displayName: Base64 encoded password for PubSub+ username 'admin' - description: The Event Broker 'admin' user's password (base64 encoded). This PubSub+ OpenShift template will create an administrative user with username 'admin' with specified password. - required: true - - name: BROKER_STORAGE_SIZE - displayName: PubSub+ Event Broker Persistent Storage Disk Size - description: The size in gigabytes for a Event Broker Pod's persistent volume (with suffix 'Gi'), example 30Gi for 30 gigabytes - value: 30Gi - required: true - # Uncomment if using TLS configuration - # - name: BROKER_TLS_CERT_SECRET - # displayName: Certificate Secret for Broker TLS Config - # description: The server key and certificate for the event broker packaged in a Kubernetes secret - # value: - # required: true diff --git a/templates/eventbroker_singlenode_template.yaml b/templates/eventbroker_singlenode_template.yaml deleted file mode 100644 index 6951087..0000000 --- a/templates/eventbroker_singlenode_template.yaml +++ /dev/null @@ -1,571 +0,0 @@ ---- -apiVersion: v1 -kind: Template -metadata: - name: pubsubplus-eventbroker-singlenode-template - annotations: - description: Deploys PubSub+ Event Broker in a Single Node configuration -objects: - -- kind: Secret - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-secrets" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus - type: Opaque - data: - username_admin_password: "${BROKER_ADMIN_PASSWORD}" - -- kind: ConfigMap - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus - data: - init.sh: |- - export username_admin_passwordfilepath="/mnt/disks/secrets/username_admin_password" - export username_admin_globalaccesslevel=admin - export service_ssh_port='2222' - export service_webtransport_port='8008' - export service_webtransport_tlsport='1443' - export service_semp_tlsport='1943' - export logging_debug_output=all - export system_scaling_maxconnectioncount="100" - # Uncomment if using TLS configuration - # cat /mnt/disks/certs/server/tls.key /mnt/disks/certs/server/tls.crt > /dev/shm/server.cert - # export tls_servercertificate_filepath="/dev/shm/server.cert" - startup-broker.sh: |- - #!/bin/bash - APP=`basename "$0"` - IFS='-' read -ra host_array <<< $(hostname) - node_ordinal=${host_array[-1]} - echo "`date` INFO: ${APP}-Node ordinal: ${node_ordinal}" - echo "`date` INFO: ${APP}-Waiting for management API to become available" - password=`cat /mnt/disks/secrets/username_admin_password` - loop_guard=60 - pause=10 - count=0 - while [ ${count} -lt ${loop_guard} ]; do - if /mnt/disks/solace/semp_query.sh -n admin -p ${password} -u http://localhost:8080 -t ; then - break - fi - run_time=$((${count} * ${pause})) - ((count++)) - echo "`date` INFO: ${APP}-Waited ${run_time} seconds, Management API not yet accessible" - sleep ${pause} - done - if [ ${count} -eq ${loop_guard} ]; then - echo "`date` ERROR: ${APP}-Solace Management API never came up" >&2 - exit 1 - fi - # Uncomment if using TLS configuration - # rm /dev/shm/server.cert # remove as soon as possible - # cert_results=$(curl --write-out '%{http_code}' --silent --output /dev/null -k -X PATCH -u admin:${password} https://localhost:1943/SEMP/v2/config/ \ - # -H "content-type: application/json" \ - # -d "{\"tlsServerCertContent\":\"$(cat /mnt/disks/certs/server/tls.key /mnt/disks/certs/server/tls.crt | awk '{printf "%s\\n", $0}')\"}") - # if [ "${cert_results}" != "200" ]; then - # echo "`date` ERROR: ${APP}-Unable to set the server certificate, exiting" >&2 - # exit 1 - # fi - # echo "`date` INFO: ${APP}-Server certificate has been configured" - echo "`date` INFO: ${APP}-PubSub+ Event Broker bringup is complete for this node." - exit 0 - - readiness_check.sh: |- - #!/bin/bash - APP=`basename "$0"` - LOG_FILE=/usr/sw/var/k8s_readiness_check.log # STDOUT/STDERR goes to k8s event logs but gets cleaned out eventually. This will also persist it. - tail -n 1000 ${LOG_FILE} > ${LOG_FILE}.tmp; mv -f ${LOG_FILE}.tmp ${LOG_FILE} || : # Limit logs size - exec > >(tee -a ${LOG_FILE}) 2>&1 # Setup logging - FINAL_ACTIVITY_LOGGED_TRACKING_FILE=/tmp/final_activity_state_logged - - # Function to read Kubernetes metadata labels - get_label () { - # Params: $1 label name - echo $(cat /etc/podinfo/labels | awk -F= '$1=="'${1}'"{print $2}' | xargs); - } - - # Function to set Kubernetes metadata labels - set_label () { - # Params: $1 label name, $2 label set value - #Prevent overdriving Kubernetes infra, don't set activity state to same as previous state - previous_state=$(get_label "active") - if [ "${2}" = "${previous_state}" ]; then - #echo "`date` INFO: ${APP}-Current and Previous state match (${2}), not updating pod label" - : - else - echo "`date` INFO: ${APP}-Updating pod label using K8s API from ${previous_state} to ${2}" - echo "[{\"op\": \"add\", \"path\": \"/metadata/labels/${1}\", \"value\": \"${2}\" }]" > /tmp/patch_label.json - K8S=https://kubernetes.default.svc.cluster.local:$KUBERNETES_SERVICE_PORT - KUBE_TOKEN=$(&2 - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - fi - fi - fi - } - - # Main logic: note that there are no re-tries here, if check fails then return not ready. - # nonHA config - health_result=`curl -s -o /dev/null -w "%{http_code}" http://localhost:5550/health-check/guaranteed-active` - case "${health_result}" in - "200") - if [ ! -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} ]; then - echo "`date` INFO: ${APP}-nonHA Event Broker health check reported 200, message spool is up" - touch ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE} - fi - set_label "active" "true" - exit 0 - ;; - "503") - if [[ $(get_label "active") = "true" ]]; then echo "`date` INFO: ${APP}-nonHA Event Broker health check reported 503, message spool is down"; fi - set_label "active" "false" - # Fail readiness check - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - ;; - *) - echo "`date` WARN: ${APP}-nonHA Event Broker health check reported ${health_result}" - set_label "active" "false" - # Fail readiness check - rm -f ${FINAL_ACTIVITY_LOGGED_TRACKING_FILE}; exit 1 - esac - semp_query.sh: |- - #!/bin/bash - APP=`basename "$0"` - OPTIND=1 # Reset in case getopts has been used previously in the shell. - # Initialize our own variables: - count_search="" - name="" - password="" - query="" - url="" - value_search="" - test_connection_only=false - script_name=$0 - verbose=0 - while getopts "c:n:p:q:u:v:t" opt; do - case "$opt" in - c) count_search=$OPTARG - ;; - n) username=$OPTARG - ;; - p) password=$OPTARG - ;; - q) query=$OPTARG - ;; - u) url=$OPTARG - ;; - v) value_search=$OPTARG - ;; - t) test_connection_only=true - ;; - esac - done - shift $((OPTIND-1)) - [ "$1" = "--" ] && shift - verbose=1 - #echo "`date` INFO: ${APP}-${script_name}: count_search=${count_search} ,username=${username} ,password=xxx query=${query} \ - # ,url=${url} ,value_search=${value_search} ,Leftovers: $@" >&2 - if [[ ${url} = "" || ${username} = "" || ${password} = "" ]]; then - echo "`date` ERROR: ${APP}-${script_name}: url, username, password are madatory fields" >&2 - echo 'missing parameter' - exit 1 - fi - if [ "`curl --write-out '%{http_code}' --silent --output /dev/null -u ${username}:${password} ${url}/SEMP`" != "200" ] ; then - echo "management host is not responding" - exit 1 - fi - if [ "$test_connection_only" = true ] ; then - exit 0 # done here, connection is up - fi - query_response=`curl -sS -u ${username}:${password} ${url}/SEMP -d "${query}"` - # Validate first char of response is "<", otherwise no hope of being valid xml - if [[ ${query_response:0:1} != "<" ]] ; then - echo "no valid xml returned" - exit 1 - fi - query_response_code=`echo $query_response | xmllint -xpath 'string(/rpc-reply/execute-result/@code)' -` - - if [[ -z ${query_response_code} && ${query_response_code} != "ok" ]]; then - echo "query failed -${query_response_code}-" - exit 1 - fi - #echo "`date` INFO: ${APP}-${script_name}: query passed ${query_response_code}" >&2 - if [[ ! -z $value_search ]]; then - value_result=`echo $query_response | xmllint -xpath "string($value_search)" -` - echo "${value_result}" - exit 0 - fi - if [[ ! -z $count_search ]]; then - count_line=`echo $query_response | xmllint -xpath "$count_search" -` - count_string=`echo $count_search | cut -d '"' -f 2` - count_result=`echo ${count_line} | tr "><" "\n" | grep -c ${count_string}` - echo "${count_result}" - exit 0 - fi - - -# Uncomment if using provider-specific StorageClass -# Also uncomment further down at volumeClaimTemplates -# This is an example for aws -#- kind: StorageClass -# apiVersion: storage.k8s.io/v1 -# metadata: -# name: "${DEPLOYMENT_NAME}-standard" -# provisioner: kubernetes.io/aws-ebs -# parameters: -# type: gp2 - -- kind: ServiceAccount - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-sa" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus #end gcp - -- kind: Role - apiVersion: rbac.authorization.k8s.io/v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-podtagupdater" - rules: - - apiGroups: [""] # "" indicates the core API group - resources: ["pods"] - verbs: ["patch"] - -- kind: RoleBinding - apiVersion: rbac.authorization.k8s.io/v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus-serviceaccounts-to-podtagupdater" - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: "${DEPLOYMENT_NAME}-pubsubplus-podtagupdater" - subjects: - - kind: ServiceAccount - name: "${DEPLOYMENT_NAME}-pubsubplus-sa" -- kind: Service - apiVersion: v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus" - labels: - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - app.kubernetes.io/name: pubsubplus #end gcp - spec: - type: LoadBalancer - ports: - - port: 2222 - targetPort: 2222 - protocol: TCP - name: tcp-ssh - - port: 8080 - targetPort: 8080 - protocol: TCP - name: tcp-semp - - port: 1943 - targetPort: 1943 - protocol: TCP - name: tls-semp - - port: 55555 - targetPort: 55555 - protocol: TCP - name: tcp-smf - - port: 55003 - targetPort: 55003 - protocol: TCP - name: tcp-smfcomp - - port: 55443 - targetPort: 55443 - protocol: TCP - name: tls-smf - - port: 55556 - targetPort: 55556 - protocol: TCP - name: tcp-smfroute - - port: 8008 - targetPort: 8008 - protocol: TCP - name: tcp-web - - port: 1443 - targetPort: 1443 - protocol: TCP - name: tls-web - - port: 9000 - targetPort: 9000 - protocol: TCP - name: tcp-rest - - port: 9443 - targetPort: 9443 - protocol: TCP - name: tls-rest - - port: 5672 - targetPort: 5672 - protocol: TCP - name: tcp-amqp - - port: 5671 - targetPort: 5671 - protocol: TCP - name: tls-amqp - - port: 1883 - targetPort: 1883 - protocol: TCP - name: tcp-mqtt - - port: 8883 - targetPort: 8883 - protocol: TCP - name: tls-mqtt - - port: 8000 - targetPort: 8000 - protocol: TCP - name: tcp-mqttweb - - port: 8443 - targetPort: 8443 - protocol: TCP - name: tls-mqttweb - selector: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - active: "true" - -- kind: StatefulSet - apiVersion: apps/v1 - metadata: - name: "${DEPLOYMENT_NAME}-pubsubplus" - labels: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - spec: - selector: - matchLabels: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - serviceName: "${DEPLOYMENT_NAME}-pubsubplus-discovery" - replicas: 1 - podManagementPolicy: Parallel - updateStrategy: - type: RollingUpdate - template: - metadata: - labels: - app.kubernetes.io/name: pubsubplus - app.kubernetes.io/instance: "${DEPLOYMENT_NAME}" - spec: - imagePullSecrets: - - name: ${BROKER_IMAGE_REGISTRY_PULLSECRET} - serviceAccountName: "${DEPLOYMENT_NAME}-pubsubplus-sa" - terminationGracePeriodSeconds: 1200 - containers: - - name: pubsubplus - image: "${BROKER_IMAGE_REGISTRY_URL}:${BROKER_IMAGE_TAG}" - imagePullPolicy: IfNotPresent - resources: - requests: - cpu: "2" - memory: 4025Mi - limits: - cpu: "2" - memory: 4025Mi - livenessProbe: - tcpSocket: - port: 8080 - initialDelaySeconds: 300 - timeoutSeconds: 5 - readinessProbe: - initialDelaySeconds: 30 - periodSeconds: 5 - exec: - command: - - /mnt/disks/solace/readiness_check.sh - securityContext: - privileged: false - env: - - name: STATEFULSET_NAME - value: "${DEPLOYMENT_NAME}-pubsubplus" - - name: STATEFULSET_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: TZ - value: :/usr/share/zoneinfo/UTC - - name: UMASK - value: "0022" - command: - - bash - - "-ec" - - | - source /mnt/disks/solace/init.sh - # not using postinstall hooks because of order dependencies - # launch config check - readiness check script will be launched by readinessProbe - nohup /mnt/disks/solace/startup-broker.sh & - /usr/sbin/boot.sh - lifecycle: - preStop: - exec: - command: - - bash - - "-ec" - - | - while ! pgrep solacedaemon ; do sleep 1; done - killall solacedaemon; - while [ ! -d /usr/sw/var/db.upgrade ]; do sleep 1; done; - volumeMounts: - - name: podinfo - mountPath: /etc/podinfo - - name: config-map - mountPath: /mnt/disks/solace - - name: secrets - mountPath: /mnt/disks/secrets - readOnly: true - # Uncomment if using TLS configuration - # - name: server-certs - # mountPath: /mnt/disks/certs/server - # readOnly: true - - name: dshm - mountPath: /dev/shm - - name: data - mountPath: /usr/sw/jail - subPath: jail - - name: data - mountPath: /usr/sw/var - subPath: var - - name: data - mountPath: /usr/sw/internalSpool - subPath: internalSpool - - name: data - mountPath: /usr/sw/adb - subPath: adb - - name: data - mountPath: /var/lib/solace/diags - subPath: diags - # only mount softAdb when not using NFS, comment it out otherwise - - name: data - mountPath: /usr/sw/internalSpool/softAdb - subPath: softAdb - # use this instead if using NFS: - #- name: soft-adb-ephemeral - # mountPath: /usr/sw/internalSpool/softAdb - ports: - - containerPort: 2222 - protocol: TCP - - containerPort: 8080 - protocol: TCP - - containerPort: 1943 - protocol: TCP - - containerPort: 55555 - protocol: TCP - - containerPort: 55003 - protocol: TCP - - containerPort: 55443 - protocol: TCP - - containerPort: 55556 - protocol: TCP - - containerPort: 8008 - protocol: TCP - - containerPort: 1443 - protocol: TCP - - containerPort: 9000 - protocol: TCP - - containerPort: 9443 - protocol: TCP - - containerPort: 5672 - protocol: TCP - - containerPort: 5671 - protocol: TCP - - containerPort: 1883 - protocol: TCP - - containerPort: 8883 - protocol: TCP - - containerPort: 8000 - protocol: TCP - - containerPort: 8443 - protocol: TCP - volumes: - - name: podinfo - downwardAPI: - items: - - path: "labels" - fieldRef: - fieldPath: metadata.labels - - name: config-map - configMap: - name: "${DEPLOYMENT_NAME}-pubsubplus" - defaultMode: 0755 - - name: secrets - secret: - secretName: "${DEPLOYMENT_NAME}-pubsubplus-secrets" - defaultMode: 0400 - # Uncomment if using TLS configuration - # - name: server-certs - # secret: - # secretName: "${BROKER_TLS_CERT_SECRET}" - # defaultMode: 0400 - - name: dshm - emptyDir: - medium: Memory - # add this if using NFS (together with montPath changes for softADB - # - name: soft-adb-ephemeral - # emptyDir: {} - volumeClaimTemplates: - - metadata: - name: data - spec: - # Uncomment if using provider-specific StorageClass - # Also uncomment StorageClass definition above - # storageClassName: "${DEPLOYMENT_NAME}-standard" - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: "${BROKER_STORAGE_SIZE}" - -parameters: - - name: DEPLOYMENT_NAME - displayName: PubSub+ Event Broker Deployment Name - description: The prefix to use for object names - generate: expression - from: '[A-Z0-9]{8}' - value: example - required: true - - name: BROKER_IMAGE_REGISTRY_URL - displayName: Image Registry URL - description: The image registry URL for the registry containing the PubSub+ Event Broker docker image - value: registry.connect.redhat.com/solace/pubsubplus-standard - required: true - - name: BROKER_IMAGE_REGISTRY_PULLSECRET - displayName: Image Registry Pull Secret - description: The pull secret to be used to obtain the PubSub+ Event Broker docker image - value: - required: false - - name: BROKER_IMAGE_TAG - displayName: PubSub+ Event Broker Docker Image Tag - description: The Docker image tag for the PubSub+ Event Broker docker image from your Docker registry - value: latest - required: true - - name: BROKER_ADMIN_PASSWORD - displayName: Base64 encoded password for PubSub+ username 'admin' - description: The Event Broker 'admin' user's password (base64 encoded). This PubSub+ OpenShift template will create an administrative user with username 'admin' with specified password. - required: true - - name: BROKER_STORAGE_SIZE - displayName: PubSub+ Event Broker Persistent Storage Disk Size - description: The size in gigabytes for a Event Broker Pod's persistent volume (with suffix 'Gi'), example 30Gi for 30 gigabytes - value: 30Gi - required: true - # Uncomment if using TLS configuration - # - name: BROKER_TLS_CERT_SECRET - # displayName: Certificate Secret for Broker TLS Config - # description: The server key and certificate for the event broker packaged in a Kubernetes secret - # value: - # required: true \ No newline at end of file From 19077b875b56bfb1587635832115b6d5f3d384d2 Mon Sep 17 00:00:00 2001 From: Michelle Thomas Date: Tue, 4 Apr 2023 10:28:02 -0400 Subject: [PATCH 2/3] Documentation edits (#5) --- README.md | 26 +++--- docs/PubSubPlusOpenShiftDeployment.md | 124 +++++++++++++------------- docs/images/ECR-Registry.png | Bin 25196 -> 41617 bytes docs/images/GetOpenShiftURL.png | Bin 27116 -> 23358 bytes docs/images/PrometheusTargets.png | Bin 68796 -> 71005 bytes docs/images/network_diagram.jpg | Bin 98715 -> 91021 bytes 6 files changed, 77 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index 9d0f4cc..7f859e6 100644 --- a/README.md +++ b/README.md @@ -2,41 +2,41 @@ # Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform -Using the Solace PubSub+ Event Broker Operator (Operator) is the Kubernetes-native method to install and manage the lifecycle of a Solace PubSub+ Software Event Broker on any Kubernetes platform including OpenShift. +The Solace PubSub+ Event Broker Operator (Operator) is a Kubernetes-native method to install and manage the lifecycle of a PubSub+ Software Event Broker on any Kubernetes platform including OpenShift. >Note: We recommend using the PubSub+ Event Broker Operator. An alternative method using Helm is also available from an [earlier version of this repo](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/tree/v3.1.0). -This repository extends the [Solace PubSub+ Event Broker Operator on Kubernetes](https://github.com/SolaceDev/pubsubplus-kubernetes-operator) guide providing additional specific instructions for OpenShift 4 Platform. +This repository extends the [Solace PubSub+ Event Broker Operator on Kubernetes](https://github.com/SolaceDev/pubsubplus-kubernetes-operator) guide, providing additional specific instructions for the OpenShift 4 Platform. Contents: - [Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform](#deploying-a-solace-pubsub-software-event-broker-using-operator-onto-an-openshift-4-platform) - - [Description of the Solace PubSub+ Software Event Broker](#description-of-the-solace-pubsub-software-event-broker) + - [Description of the Solace PubSub+ Software Event Broker](#solace-pubsub-software-event-broker) - [Overview](#overview) - - [Step 1: Access to OpenShift Platform](#step-1-access-to-openshift-platform) + - [Step 1: Set Up OpenShift](#step-1-set-up-openshift) - [Step 2: Install the PubSub+ Event Broker Operator](#step-2-install-the-pubsub-event-broker-operator) - - [Step 3: Deploy the Solace PubSub+ Software Event Broker](#step-3-deploy-the-solace-pubsub-software-event-broker) + - [Step 3: Deploy the PubSub+ Software Event Broker](#step-3-deploy-the-pubsub-software-event-broker) - [Contributing](#contributing) - [Authors](#authors) - [License](#license) - [Resources](#resources) -## Description of the Solace PubSub+ Software Event Broker +## Solace PubSub+ Software Event Broker Solace [PubSub+ Platform](https://solace.com/products/platform/) is a complete event streaming and management platform for the real-time enterprise. The [PubSub+ Software Event Broker](https://solace.com/products/event-broker/software/) efficiently streams event-driven information between applications, IoT devices, and user interfaces running in the cloud, on-premises, and in hybrid environments using open APIs and protocols like AMQP, JMS, MQTT, REST and WebSocket. It can be installed into a variety of public and private clouds, PaaS, and on-premises environments. Event brokers in multiple locations can be linked together in an [Event Mesh](https://solace.com/what-is-an-event-mesh/) to dynamically share events across the distributed enterprise. ## Overview -This project is a best practice template intended for development and demo purposes. It has been tested using OpenShift v4.12. The tested and recommended Solace PubSub+ Software Event Broker version is 10.2. +This project is a best practice template intended for development and demo purposes. It has been tested using OpenShift v4.12. The tested and recommended PubSub+ Software Event Broker version is 10.2. This document provides a quick getting started guide to install the broker in various configurations onto an OpenShift 4 platform. For additional documentation, see [/docs/PubSubPlusOpenShiftDeployment.md](/docs/PubSubPlusOpenShiftDeployment.md) in this repo. -## Step 1: Access to OpenShift Platform +## Step 1: Set Up OpenShift -There are [multiple ways](https://www.openshift.com/try ) to get to an OpenShift 4 platform, including following examples: -- The detailed [Event Broker on OpenShift](/docs/PubSubPlusOpenShiftDeployment.md#deploy-a-production-ready-openshift-container-platform-onto-aws) documentation describes how to set up production-ready Red Hat OpenShift Container Platform platform on AWS. -- An option for developers is to locally deploy an all-in-one environment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview). However, note that this requires sufficient local resources, minimum 2 CPUs and 4GB memory additional to CodeReady resource requirements. +There are [multiple ways](https://www.openshift.com/try ) to set up an OpenShift 4 deployment, including the following examples: +- The detailed [Event Broker on OpenShift](/docs/PubSubPlusOpenShiftDeployment.md#deploy-a-production-ready-openshift-container-platform-onto-aws) documentation describes how to set up a production-ready Red Hat OpenShift Container Platform deployment on AWS. +- An option for developers is to locally deploy an all-in-one environment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview). However, note that this requires sufficient local resources (minimum 2 CPUs and 4GB memory) in addition to the CodeReady resource requirements. ## Step 2: Install the PubSub+ Event Broker Operator @@ -97,7 +97,7 @@ kubectl get pods -n openshift-operators --watch # END: internal use ``` -## Step 3: Deploy the Solace PubSub+ Software Event Broker +## Step 3: Deploy the PubSub+ Software Event Broker Create a new OpenShift project. It is not recommended to use the `default` project. ```sh @@ -106,7 +106,7 @@ oc new-project solace-pubsubplus From here follow the steps in the [Solace PubSub+ Event Broker Operator Quick Start Guide](https://github.com/SolaceDev/pubsubplus-kubernetes-operator#3-install-the-solace-pubsub-software-event-broker-with-default-configuration) to deploy a single-node or an HA event broker. ->Note: the Operator will recognize the OpenShift environment and will adjust default broker spec parameters including use of certified RedHat images. For more information, refer to the [detailed documentation](docs/PubSubPlusOpenShiftDeployment.md#broker-spec-defaults-in-openshift) in this repo. +>Note: the Operator recognizes the OpenShift environment and adjusts the default deployment `spec` parameters for the event broker, including the use of certified RedHat images. For more information, refer to the [detailed documentation](docs/PubSubPlusOpenShiftDeployment.md#broker-spec-defaults-in-openshift) in this repo. ## Contributing diff --git a/docs/PubSubPlusOpenShiftDeployment.md b/docs/PubSubPlusOpenShiftDeployment.md index 47062c4..550a1e2 100644 --- a/docs/PubSubPlusOpenShiftDeployment.md +++ b/docs/PubSubPlusOpenShiftDeployment.md @@ -1,14 +1,14 @@ -# Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform +# Deploying a Solace PubSub+ Software Event Broker Onto an OpenShift 4 Platform Using Operator -This document provides OpenShift-specific information for deploying the [Solace PubSub+ Software Event Broker](https://solace.com/products/event-broker/software/) on OpenShift, using the Solace PubSub+ Event Broker Operator (Operator). It complements and should be used together with the [PubSub+ Operator User Guide on general Kubernetes](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md). +This document provides platform-specific information for deploying the [Solace PubSub+ Software Event Broker](https://solace.com/products/event-broker/software/) on OpenShift, using the Solace PubSub+ Event Broker Operator (Operator). It complements and should be used together with the [Solace PubSub+ Event Broker Operator User Guide](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md), which has instructions for Kubernetes in general. Contents: -- [Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform](#deploying-a-solace-pubsub-software-event-broker-using-operator-onto-an-openshift-4-platform) +- [Deploying a Solace PubSub+ Software Event Broker Onto an OpenShift 4 Platform Using Operator](#deploying-a-solace-pubsub-software-event-broker-onto-an-openshift-4-platform-using-operator) - [Production Deployment Architecture](#production-deployment-architecture) - [OpenShift Platform Setup Examples](#openshift-platform-setup-examples) - - [Deploy a Production-ready OpenShift Container Platform onto AWS](#deploy-a-production-ready-openshift-container-platform-onto-aws) + - [Deploying a Production-Ready OpenShift Container Platform onto AWS](#deploying-a-production-ready-openshift-container-platform-onto-aws) - [Deleting the AWS OpenShift Container Platform Deployment](#deleting-the-aws-openshift-container-platform-deployment) - - [Deploy CodeReady Containers for OpenShift](#deploy-codeready-containers-for-openshift) + - [Deploying CodeReady Containers for OpenShift](#deploying-codeready-containers-for-openshift) - [Using a Private Image Registry for broker and Prometheus exporter images](#using-a-private-image-registry-for-broker-and-prometheus-exporter-images) - [Using AWS ECR with CodeReady Containers](#using-aws-ecr-with-codeready-containers) - [Deployment considerations](#deployment-considerations) @@ -30,12 +30,12 @@ Contents: ## Production Deployment Architecture The following diagram shows an example of an HA group deployment of PubSub+ software event brokers in AWS: + ![alt text](/docs/images/network_diagram.jpg "Network Diagram") -
The key parts to note in the diagram above are: - the three PubSub+ Container instances in OpenShift pods, deployed on OpenShift (worker) nodes -- the cloud load balancer exposing the event router's services and management interface +- the cloud load balancer exposing the event broker's services and management interface - the OpenShift master nodes(s) - the CLI console that hosts the `oc` OpenShift CLI utility client @@ -43,15 +43,15 @@ The key parts to note in the diagram above are: You can skip this section if you already have your own OpenShift environment available. -There are [multiple ways](https://www.openshift.com/try ) to get to an OpenShift platform. We provide a distibuted Production-ready example that uses the Red Hat OpenShift Container Platform for deploying an HA group of software event brokers, but the concepts are transferable to other compatible platforms. +There are [multiple ways](https://www.openshift.com/try ) to set up an OpenShift platform. This section provides a distributed production-ready example that uses the Red Hat OpenShift Container Platform for deploying an HA group of software event brokers, but the concepts are transferable to other compatible platforms. -We also give tips for how to set up a simple single-node deployment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview ) (the equivalent of MiniShift for OpenShift 4) for development, testing, or proof of concept purposes. +This section also give tips for how to set up a simple single-node deployment using [CodeReady Containers](https://developers.redhat.com/products/codeready-containers/overview ) (the equivalent of MiniShift for OpenShift 4) for development, testing, or proof of concept purposes. -The last sub-section describes how to use a private image registry,such as AWS ECR, together with OpenShift. +The last sub-section describes how to use a private image registry, such as AWS ECR, together with OpenShift. -### Deploy a Production-ready OpenShift Container Platform onto AWS +### Deploying a Production-Ready OpenShift Container Platform onto AWS -This requires the following: +This procedure requires the following: - a free Red Hat account. You can create one [here](https://developers.redhat.com/login ), if needed. - a command console on your host platform with Internet access. The examples here are for Linux, but MacOS is also supported. - a designated working directory for the OpenShift cluster installation. @@ -71,11 +71,11 @@ To deploy the container platform in AWS, do the following: tar -xvf openshift-install-linux.tar.gz # Adjust the filename if needed rm openshift-install-linux.tar.gz ``` -5. Run the utility to create an install configuration. Provide the necessary information at the prompts, including the Pull Secret from the RedHat instructions page. This will create the file `install-config.yaml` with the [installation configuration parameters](https://docs.openshift.com/container-platform/latest/installing/installing_aws/installing-aws-customizations.html#installation-aws-config-yaml_installing-aws-customizations), most importantly the configuration for the worker and master nodes. +5. Run the utility to create an install configuration. Provide the necessary information at the prompts, including the pull secret from the RedHat instructions page. The utility creates the `install-config.yaml` file with the [installation configuration parameters](https://docs.openshift.com/container-platform/latest/installing/installing_aws/installing-aws-customizations.html#installation-aws-config-yaml_installing-aws-customizations), most importantly the configuration for the worker and master nodes. ``` ./openshift-install create install-config --dir=. ``` -6. Edit the `install-config.yaml` file to update the worker node AWS machine type to meet the [minimum CPU and Memory requirements](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#cpu-and-memory-requirements) for the targeted PubSub+ Software Event Broker configuration. When you select an [EC2 instance type](https://aws.amazon.com/ec2/instance-types/), allow at least 1 CPU and 1 GiB memory for OpenShift purposes that cannot be used by the broker. The following is an example updated configuration: +6. Edit the `install-config.yaml` file to update the AWS machine type of the worker node to meet the [minimum CPU and Memory requirements](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#cpu-and-memory-requirements) for the targeted PubSub+ Software Event Broker configuration. When you select an [EC2 instance type](https://aws.amazon.com/ec2/instance-types/), allow at least 1 CPU and 1 GiB memory for OpenShift purposes that cannot be used by the broker. The following is an example of an updated configuration: ``` ... compute: @@ -101,7 +101,7 @@ To deploy the container platform in AWS, do the following: INFO Login to the console with user: "kubeadmin", and password: "CKGc9-XUT6J-PDtWp-d4DSQ" ``` 9. [Install](https://docs.openshift.com/container-platform/latest/installing/installing_aws/installing-aws-default.html#cli-installing-cli_installing-aws-default) the `oc` client CLI tool. -10. Verify that your cluster is working correctly by following the hints from step 8, including verifying access to the OpenShift web-console. +10. Verify that your cluster is working correctly by following the hints from Step 8, including verifying access to the OpenShift web-console. #### Deleting the AWS OpenShift Container Platform Deployment @@ -113,9 +113,9 @@ cd ~/workspace ./openshift-install destroy cluster ``` -This will remove all resources of the deployment. +These commands remove all resources of the deployment. -### Deploy CodeReady Containers for OpenShift +### Deploying CodeReady Containers for OpenShift If you are using CodeReady Containers, follow the [getting started instructions](https://developers.redhat.com/products/codeready-containers/getting-started) to stand up a working CodeReady Containers deployment that supports Linux, MacOS, and Windows. @@ -124,16 +124,17 @@ At the `crc start` step it is helpful to: * specify CPU and memory requirements, allowing 2 to 3 CPU and 2.5 to 7 GiB memory for CRC internal purposes (depending on your platform and CRC version); * also specify a DNS server, for example: `crc start -p ./pullsecret -c 5 -m 11264 --nameserver 1.1.1.1`. -### Using a Private Image Registry for broker and Prometheus exporter images +### Using a Private Image Registry for Broker and Prometheus Exporter Images By default, the deployment scripts pull the Solace PubSub+ image from the [Red Hat containerized products catalog](https://catalog.redhat.com/software/container-stacks/search?q=solace). If the OpenShift worker nodes have Internet access, no further configuration is required. However, if you need to use a private image registry, such as AWS ECR, you must supply a pull secret to enable access to the registry. The steps that follow show how to use AWS ECR for the broker image. 1. Download a free trial of the the Solace PubSub+ Enterprise Evaluation Edition by going to the **Docker** section of the [Solace Downloads](https://solace.com/downloads/?fwp_downloads_types=pubsub-enterprise-evaluation) page, or obtain an image from Solace Support. -2. Push the broker image to the private registry. Follow the specific procedures for the registry you are using. For ECR, see [Using Amazon ECR with the AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html). - >Note: If you are advised to run `aws ecr get-login-password` as part of the "Authenticate to your registry" step and it fails, try running `$(aws ecr get-login --region --no-include-email)` instead. - ![alt text](/docs/images/ECR-Registry.png "ECR Registry") +2. Push the broker image to the private registry. Follow the specific procedures for the registry you are using. For ECR, see the diagram below as well as the instructions in [Using Amazon ECR with the AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html).

+ ![alt text](/docs/images/ECR-Registry.png "ECR Registry")
+ >Note: If you are advised to run `aws ecr get-login-password` as part of the "Authenticate to your registry" step and it fails, try running `$(aws ecr get-login --region --no-include-email)` instead. + 3. Create a pull secret from the registry information in the Docker configuration. This assumes that the ECR login happened on the same machine: ``` oc create secret generic \ @@ -142,10 +143,10 @@ However, if you need to use a private image registry, such as AWS ECR, you must ``` 4. Use the pull secret you just created (``) in the broker deployment manifest. -For additional information, see the [Using private registries](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#using-a-private-registry) section of the general Event Broker in Kubernetes documentation. +For additional information, see the [Using private registries](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#using-a-private-registry) section of the *Solace PubSub+ Event Broker Operator User Guide*. #### Using AWS ECR with CodeReady Containers -If you are using CodeReady Containers, you may need to perform a workaround if the ECR login fails on the console (e.g., on Windows). In this case, do the following: +If you are using CodeReady Containers, you might need to perform a workaround if the ECR login fails on the console (e.g., on Windows). In this case, do the following: 1. Log into the OpenShift node: `oc get node` 2. Run the `oc debug node/` command. 3. At the prompt, run the `chroot /host` command. @@ -159,73 +160,75 @@ If you are using CodeReady Containers, you may need to perform a workaround if t 5. Run `podman pull ` to load the image locally on the CRC node. After you exit the node, you can use your ECR image URL and tag for the deployment. There is no need for a pull secret in this case. -## Deployment considerations +## Deployment Considerations -Consult the [Deployment Planning](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#deployment-planning) section of the general Event Broker in Kubernetes documentation when planning your deployment. +Consult the [Deployment Planning](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#deployment-planning) section of the general *Solace PubSub+ Event Broker Operator User Guide* when planning your deployment. -The following sections only apply to the OpenShift platform. +The following sections apply only to the OpenShift platform. -### Broker Spec defaults in OpenShift +### Broker Spec Defaults in OpenShift -The Operator will detect if (1) OpenShift platform is used and (2) the name of the OpenShift project (namespace) for the broker deployment. It will automatically adjust defaults to use for following parameters. It is always possible to overwrite defaults by explicitly specifying the parameters. +The Operator detects (1) whether the OpenShift platform is used and (2) the name of the OpenShift project (namespace) for the broker deployment. It automatically adjusts the default values for the parameters listed in the table below. You can override the defaults by explicitly specifying the parameters. -| OpenShift project (namespace) | Broker Spec Parameter | General Kubernetes defaults (for information) | OpenShift defaults | +| OpenShift Project (Namespace) | Broker Spec Parameter | General Kubernetes Defaults (for information only) | OpenShift Defaults | | --- | --- | --- | --- | -| Any, excluding `default` - Note: it is recommended to NOT use the `default` project | `spec.securityContext.runAsUser` | 1000001| Not set (OpenShift will set it according to the OpenShift project settings ) | -|| `spec.securityContext.fsGroup` | 1000002 | Not set, as for the `runAsUser` | -| `default` - Note: not recommended | `spec.securityContext.runAsUser` | 1000001 | 1000001 | +| Any, excluding `default`.

**Note:** We recommend that you do NOT use the `default` project. | `spec.securityContext.runAsUser` | 1000001| Not set (OpenShift sets it according to the OpenShift project settings) | +|| `spec.securityContext.fsGroup` | 1000002 | Not set (OpenShift sets it according to the OpenShift project settings) | +| `default`

**Note:** Not recommended | `spec.securityContext.runAsUser` | 1000001 | 1000001 | || `spec.securityContext.fsGroup` | 1000002 | 1000002 | | All OpenShift projects | `spec.image` | solace/solace-pubsub-standard | registry.connect.redhat.com/solace/pubsubplus-standard | | | `spec.monitoring.image` | solace/solace-prometheus-exporter | registry.connect.redhat.com/solace/pubsubplus-prometheus-exporter | -While it is not configurable through a broker spec parameter, the Operator will also similarly adjust the `runAsUser` settings for the Prometheus exporter pod. +Although `runAsUser` cannot be configured using a broker spec parameter, the Operator similarly adjusts the `runAsUser` settings for the Prometheus exporter pod. ### Accessing Broker Services -The principles of exposing services described in the [general Kubernetes documentation](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#accessing-broker-services) apply: +The principles for exposing services that are described in the [Solace PubSub+ Event Broker Operator User Guide](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#accessing-broker-services) also apply here: * LoadBalancer is the default service type and can be used to externally expose all broker services. This is an option for OpenShift as well and will not be further discussed here. * Ingress and its equivalent, OpenShift Routes, can be used to expose specific services. #### Routes - OpenShift has a default production-ready [ingress controller setup based on HAProxy](https://docs.openshift.com/container-platform/latest/networking/understanding-networking.html#nw-ne-openshift-ingress_understanding-networking). Using Routes is the recommended OpenShift-native way to configure Ingress. Refer to the OpenShift documentation for [more information on Ingress and Routes](https://docs.openshift.com/container-platform/latest/networking/understanding-networking.html#nw-ne-openshift-ingress_understanding-networking) and [how to configure Routes](https://docs.openshift.com/container-platform/latest/networking/routes/route-configuration.html). + OpenShift has a default production-ready [ingress controller setup](https://docs.openshift.com/container-platform/latest/networking/understanding-networking.html#nw-ne-openshift-ingress_understanding-networking) based on HAProxy. Using Routes is the recommended OpenShift-native way to configure Ingress. Refer to the OpenShift documentation for more information on [Ingress and Routes](https://docs.openshift.com/container-platform/latest/networking/understanding-networking.html#nw-ne-openshift-ingress_understanding-networking) and [how to configure Routes](https://docs.openshift.com/container-platform/latest/networking/routes/route-configuration.html). - The same [table provided for Ingress in the Kubernetes quickstart](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#using-ingress-to-access-event-broker-services) applies to PubSub+ services vs. route types: HTTP-type broker services can be exposed with TLS edge-terminated or re-encrypt, or without TLS. General TCP services can be exposed using TLS-passthrough to the broker Pods. + The same table provided for Ingress in the [Solace Kubernetes Quickstart](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/docs/PubSubPlusK8SDeployment.md#using-ingress-to-access-event-broker-services) applies here. HTTP-type broker services can be exposed with TLS (edge-terminated or re-encrypt) or without TLS. General TCP services can be exposed using TLS-passthrough to the broker Pods. - The controller's external (router default) IP address can be determined from looking up the external-IP of the `router-default` service, by running `oc get svc -n openshift-ingress`. OpenShift can automatically assign DNS-resolvable unique host names and TLS-certificates when using Routes (except for TLS-passthrough). It is also possible to assign to the services user-defined host names, for which the user must ensure they DNS-resolve to the router IP, and related TLS-certificates include those hostnames in the CN and/or SAN fields. Note: if a PubSub+ service client requires hostnames provided in the SAN field then user-defined TLS certificates must be used as OpenShift-generated certificates only use CN. + The controller's external (router default) IP address can be determined from looking up the external-IP of the `router-default` service, by running `oc get svc -n openshift-ingress`. OpenShift can automatically assign DNS-resolvable unique host names and TLS-certificates when using Routes (except for TLS-passthrough). It is also possible to assign user-defined host names to the services, but you must ensure that they DNS-resolve to the router IP, and that any related TLS-certificates include those hostnames in the CN and/or SAN fields. + +>Note: If a PubSub+ service client requires that hostnames are provided in the SAN field, you must use user-defined TLS certificates, because OpenShift-generated certificates only use the CN field. -The followings provide examples for each router type. Replace `` with the name of the service of your deployment. The port name must match the `service.ports` name in the PubSub+ `values.yaml` file. -Additional services can be exposed by additional route for each. +The following sections provide examples for each router type. Replace `` with the name of the service of your deployment. The port name must match the `service.ports` name in the PubSub+ `values.yaml` file. +Additional services can be exposed by an additional route for each. -##### HTTP, no TLS +##### HTTP With No TLS -This will create an HTTP route to the REST service at path `/`: +The following commands create an HTTP route to the REST service at path `/`: ```bash oc expose svc --port tcp-rest \ --name my-broker-rest-service --path / # Query the route to get the generated host for accessing the service oc get route my-broker-rest-service -o template --template='{{.spec.host}}' ``` -External requests shall be targeted to the host at the HTTP port (80) and the specified path. +External requests are targeted to the host at the HTTP port (80) and the specified path. -##### HTTPS with TLS terminate at ingress +##### HTTPS With TLS (Terminate at Ingress) Terminating TLS at the router is called "edge" in OpenShift. The target port is the backend broker's non-TLS service port. ```bash oc create route edge my-broker-rest-service-tls-edge \ --service \ --port tcp-rest \ - --path / # path is optional and shall not be used for SEMP service + --path / # path is optional and must not be used for SEMP service # Query the route to get the generated host for accessing the service oc get route my-broker-rest-service-tls-edge -o template --template='{{.spec.host}}' ``` -External requests shall be targeted to the host at the TLS port (443) and the specified path. +External requests are targeted to the host at the TLS port (443) and the specified path. -> Note: above will use OpenShift's generated TLS certificate which is self-signed by default and includes a wildcard hostname in the CN field. To use user-defined TLS certificates with more control instead, refer to the [OpenShift documentation](https://docs.openshift.com/container-platform/latest/networking/routes/secured-routes.html#nw-ingress-creating-an-edge-route-with-a-custom-certificate_secured-routes) +> Note: The example above uses OpenShift's generated TLS certificate, which is self-signed by default and includes a wildcard hostname in the CN field. To use user-defined TLS certificates with more control instead, refer to the [OpenShift documentation](https://docs.openshift.com/container-platform/latest/networking/routes/secured-routes.html#nw-ingress-creating-an-edge-route-with-a-custom-certificate_secured-routes). -##### HTTPS with TLS re-encrypt at ingress +##### HTTPS with TLS (Re-encrypt at Ingress) -Re-encrypt requires TLS configured at the backend PubSub+ broker. The target port is now the broker's TLS service port. The broker's CA certificate must be provided in the `--dest-ca-cert` parameter, so the router can trust the broker. +Re-encrypt requires that TLS is configured on the backend PubSub+ broker. The target port is now the broker's TLS service port. The broker's CA certificate must be provided in the `--dest-ca-cert` parameter, so that the router can trust the broker. ```bash oc create route reencrypt my-broker-rest-service-tls-reencrypt \ --service \ @@ -237,9 +240,9 @@ oc get route my-broker-rest-service-tls-reencrypt -o template --template='{{.spe ``` The TLS certificate note in the previous section is also applicable here. -##### General TCP over TLS with passthrough to broker +##### General TCP over TLS with Passthrough to Broker -Passthrough requires TLS-certificate configured on the backend PubSub+ broker that validates all virtual host names for the services exposed, in the CN and/or SAN fields. +Passthrough requires a TLS-certificate configured on the backend PubSub+ broker that validates all virtual host names for the services exposed, in the CN and/or SAN fields. ```bash oc create route passthrough my-broker-smf-service-tls-passthrough \ @@ -247,7 +250,7 @@ oc create route passthrough my-broker-smf-service-tls-passthrough \ --port tls-smf \ --hostname smf.mybroker.com ``` -Here the example PubSub+ SMF messaging service can be accessed at `tcps://smf.mybroker.com:443`. Also, `smf.mybroker.com` must resolve to the router's external IP as discussed above and the broker certificate shall include `*.mybroker.com` in the CN and/or SAN fields. +Here the example PubSub+ SMF messaging service can be accessed at `tcps://smf.mybroker.com:443`. Also, `smf.mybroker.com` must resolve to the router's external IP as discussed above and the broker certificate must include `*.mybroker.com` in the CN and/or SAN fields. The API client must support and use the SNI extension of the TLS handshake to provide the hostname to the OpenShift router for routing the request to the right backend broker. @@ -261,24 +264,25 @@ We recommend using the PubSub+ Event Broker Operator. An alternative method usin ## Exposing Metrics to Prometheus -OpenShift ships with an integrated customized Prometheus deployment, however with restrictions: -* Monitoring must be enabled for user-defined projects, only default platform monitoring is enabled by default +OpenShift ships with an integrated customized Prometheus deployment, with the following restrictions: +* Monitoring must be enabled for user-defined projects. Only default platform monitoring is enabled by default. * The Grafana UI has been removed in OpenShift 4.11. Only built-in Dashboards are available. Monitoring must be enabled for user-defined projects by [creating a `user-workload-monitoring-config` ConfigMap object](https://docs.openshift.com/container-platform/latest/monitoring/enabling-monitoring-for-user-defined-projects.html) in the `openshift-user-workload-monitoring` project. After this, the only step required to [connect the broker metrics with Prometheus](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#connecting-with-prometheus) is to [create a ServiceMonitor object](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#creating-a-servicemonitor-object) in the project where the broker has been deployed. -Check the OpenShift admin console in "Administrator" view to verify that the event broker deployment monitoring endpoint has been connected to Prometheus: +Check the OpenShift admin console in "Administrator" view to verify that the monitoring endpoint for the event broker deployment has been connected to Prometheus: + ![alt text](/docs/images/PrometheusTargets.png "Prometheus targets") -Regarding Grafana UI, enabling custom Dashboards requires the community Grafana Operator installed from OpenShift's OperatorHub and then connected to OpenShift Prometheus via a GrafanaDataSource. +To enable custom Dashboards in the Grafana UI, you must install the community Grafana Operator from OpenShift's OperatorHub and then connect it to OpenShift Prometheus via a GrafanaDataSource. -## Broker Deployment in OpenShift using the Operator +## Broker Deployment in OpenShift Using the Operator ### Quick Start -Refer to the [Quick Start guide](/README.md) in the root of this repo. It provides information about [installing the Operator](/README.md#step-2-install-the-pubsub-event-broker-operator) and [deploying the PubSub+ Event Broker](/README.md#step-3-deploy-the-solace-pubsub-software-event-broker). +Refer to the [Quick Start Guide](/README.md) in the root of this repo. It provides information about [installing the Operator](/README.md#step-2-install-the-pubsub-event-broker-operator) and [deploying the PubSub+ Event Broker](/README.md#step-3-deploy-the-solace-pubsub-software-event-broker). # Additional Resources @@ -290,9 +294,9 @@ For more information about Solace technology in general please visit these resou # Appendix: Using NFS for Persistent Storage -> **Important:** This section is provided for information only as NFS is currently not supported for PubSub+ production deployment. +> **Important:** This section is provided for information only—NFS is currently not supported for PubSub+ production deployments. -The NFS server shall be configured with "root_squash" option. +The NFS server must be configured with the "root_squash" option. For an example deployment, specify the storage class from your NFS deployment ("nfs" in this example) in the `storage.useStorageClass` parameter and ensure `storage.slow` is set to `true`. @@ -303,7 +307,7 @@ The Helm (NFS Server Provisioner)[https://github.com/helm/charts/tree/master/sta ``` sudo oc apply -f https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs/deploy/kubernetes/scc.yaml ``` -2. Install the NFS helm chart, which will create all dependencies: +2. Install the NFS helm chart, which creates all dependencies: ``` helm install stable/nfs-server-provisioner nfs-test --set persistence.enabled=true,persistence.size=100Gi ``` diff --git a/docs/images/ECR-Registry.png b/docs/images/ECR-Registry.png index a60b5a0aff01edc90605ba20fe2303dd015233cd..6148970a064c30794dba033ba67f0811ccfc1bfc 100644 GIT binary patch literal 41617 zcmbrmb97wM_rNz8x{Znz>A3r$^!u4FaQ7uIW#2joy%BvB;X5-t*Dwk0D#c< z@c@aZM8E;Q3FROrB?Pq(M(~*hdutAF1OOlehzas5x}=?~xoRrjzCBznj8=tH`RBk{ z`!sDrrjW@s<(rvl_cB!G8=I*}R2r>kDzDeH8N0ULj-l7CRcPND)0kb}}v^#u_L zbVRZ9mhwTuA4urw$&F>!{ZqhqXgRRi z`ZZsT+qIPU%N>~&avB=QF8%5Y?@t{)x^3Z!h2PvdNl#=Xx2H*nto*>trkg$kK5uEs zmCn5&)nfUywmL)bpIuB>sN;PLQq0OX~!A44Pg#MD<^l)mfMi>HhHSK-bD zZWzQ>*B09n_pLp_Cw3Tm>C5(C7;yju>8#47@nb6nAP0^%;2%Q(lHP|FhD|i0H!G^7 znM|{cjw@V3LqkP5+|ts*Tz@*5Patl1_4gHKW@)8vrton8cZi&Uxz;U6#PyA!L~W1A zEFbiRHS6n0HeoJ?pYG=fCa3RSU%$3d4#p_3dw+?ILn#bC@xlPK=f)BC$Y?l&=(40H zzcenm9N!)~SZ*Xp<1JrKhfUaV?Go4Sy%9X4#FpHHTMSu*Eg<8mUOmnR>b*Sb%*`$a zvsFZMqXKKt}tzo}) zL||X-i@XbNZ{@zc9KS7}MgG-E5y&k?EFoDI1VP6&q%U>q^}xzG;}fj{)@x!h7q^*P zvl^8C4oZ`%X*YGAY7t2M5w#DJBD*?|AHA!-Jd8E~F^Z7RQ!RwWDZ^Au2+yC5T(&t&V zW&8Pva|jzlN>M|mtE)oAAM1|%#c_>%{p3`@c96UaG|RGpznFD7vdpJ8Er+CA+xBsr zqz#Al&y}yu!8_}Ur<)lFjK4-tGPU4~%*0epGWgvs%eYP0NShXKZ9s4#I@?pH?JL{Y zwj#rgCyM0!j{6J0oogL6_amvNhdNSoa4Idaq54LvEr<3IBjP`?RklpAD$Bfy?bi9V zs3*?}>c*|ScPu9xK?)}0$heC&hVL7m1nCj3?-LCj>^ebFcYhcP@LZg6x-7~Jtc5l@ z89d7lUhrO>ZzkqhSDcYGAbWSgf_@*)_s^T`8^n$LXc~W<{kEkgkbHf#aey>EP(8X) zNpD_{9hQHEl<;@iG%?PWN`hJnfsGm0&TM~( zo)g;vlIcwN@#6gh)UCMBH<2wkGBQy=q;%Sy;C(C>U`zfe9!18d4S`-{PmJQVP1PgP z(+X}LABUX_*nsT@ePwH(V!_aZxRA%6?CQ#{Y>0((X@qxfyY(v1z1mD_J3o!_q!Jp| zxMo01kmZQY_PcrR0*PcDs-$*8Kq7mlG1v;;@D@6PRN-p5%Z}Lj2F;4*15uj{TvUK_ z>mADls+54^5d^ghV*M*n?cR=#6GscN8>eT-S`$Xptq0n%ve6?wYUPBa_?GMj07!IA z;)3-K4+kY)lUtgzxK@yJj!E^1uI@tV)Nr%n&Fe}-jo*3Mx6iQ>H3lcIjcn4BPU8*d zdHqfq>yZHdWQ&JszbiF__zaoXseF4ViG*IHhyqx_tKX zG8s;it}a8me-za@d_l(OHK;6?KJPE?*JCLx)^Bm{HZc}l^w{sXn2b|~W8NVptFgb- zSz$P%vl(Ti$0SLnnFZNZu2@CEk_ya(P{wnl7Dz?7>RrPaZ39pE`Nr@ z)HfkN_V}1A?^sLk#o9)z_rrn3-MJst=CX8A);bb?JNvY&xnS}v^wtpJ&4tYCaV^Fj z5@L{k?qhmz#-r%6>ph7bG>9wswoqgsel_=~GG7BFo9nF$sFWh{Jbi^4?FiDD2N!VY zaCZ{ZeN83Gr=HGtmaIQ>X&5)p+)tcl-XK!hzuk4*wDfObM_T0FV5lSCAxCD34Ly?a zrVmuMtxp}b#TL%E?)y)ON^%HWXZQl07w5cGI#XounHG#0Wq@YD$I?GDyrmG0j!*CX z^UnHdXO}Yk?V2vb`;L5i!ibK}4Q}G)mPCKYo5XmAW$-Q$PWbKm6x(afIU3DEKP~e1 z^yv1b<(x1qvHUCVdx^ng_`X?ccCp&<91t$e3CNVsbHQS!t*J$FLlw-1tE-wn z>^JhF5cvdBB7InqV?hX>+TtxVyn}68oO(uX=PSDB9VHf9tYPfmc;>1t$2ST&5*8qa zMm#Pf-cV^(ps$ps0pEpJCfwn^0M})oBjGR@#1fD%)?RJzJ6~e9=yXNz14bZA-4ENG$>7KPgNl~ z7B0Whx$i~+f+}DsDTdx7LO(3f(HNPf!OlC#ygXQ&8qX(y;>pyOELt=3_@~B3jUa`^ zp*0|Pq5XU<{>7t1{e^m>{lOU+ueL6xcK+;Xf%26rUvE_MZVxKGlUmPE^l;QyUcUW{ zBS$Kg=E#7)fp_tH9`6#{wWcA)VPISw7eTXrzKuciXg3sU-VKU;8OSE;T+{w`j1$GT zeBu!xyRq@RFpm_(_ta%9P2teGWnfH#r%2O|`c}8%bzd%q0Om`c7TYIJe*l+B2?q2uZSc}_&p|BHOzh^a-l4g_1ssw0g^u^- z0*sremGO}_7vunIX{{PTsW+8ZHNGmU|25Kaa5lL$q13g}3Mr_#(p8Tj|#?<^L^9 z4{tLtalSrJFDlCAw=-9B?EH_Ta-N4QxN^}04+}?_qxE~~U+J+UH!2(Y-R|}eTZ3ca zE{4G~ZZa~6H&3LtH!kHjGJo@O#Z0$&F~So6Q+TUYXDYI1WvowoX!}Fpg|iNW69VUo zUaC=1mI4SZ$WyR%xCZz4XzfNy_|RXHeD5w-iT0|jp4E}(Cw#A$_#W%5b#!#_)BI2Q z>lE<#wZ z-Z?*;8CFu=0HT&fJodL8W`snuV;la7M)Xm6(|4m2j_M-{A;eWDHZuYxhxtQ>=yho02ZcJfuc_wZRaL(h{ z)UraH*leOSR2seeeilD+6aQ+{G`_D3E8Pnpm+8PF)x0hc9?5PY9!Q57NqS)wAOP^v zZKIA@X;MfIf?DsWAIXxp z|GL9aYdrRYDuvks{Tl;~e+kPwIF{Mpl~PZ%mfiTz8k5(hk$;8Co&kPAKLnu zCxJTwXG8jJRt}8sQQMkmu3;j{2{3fxT^mzTmNFcO>H`>b=FqG14DMGNS9)IXYIFul*knp={#^E<&2Q9nr!5lZmFRnq|YAFc#zM^@VM{ZL_QtmzA2 z?z}2NNoFMb6k1!llv=3Gjfg3wT4vkHKtD+RF^U)i08=z{V^h@1c`tCGHHwn~Z~|9d z>vEvQjs0OmZwU=~jtNe#k^N7(T55AWKi9AjW5{dEL>S~Sl1S2y{tNpcWCs;^E6TKKZ8-tWZHhMcH`{h42)bgvg z1kNc0s1kVZi)S9c(NcQ1$Gx3X)N3YN=|w_O;ct|CY{0c9p}oo_`-QS*M|z#BGu=aV znb+4i^xucO8B?4tgU@uzC{o``{F&vtI}WR=cY;9SA=cN?m2dNk8dn7Y;-g1pRb(Jh_Z`ToU+NhS-{MEb-+a7 zA${p)we)o25pM2Kdf4E5-90)QereR%Ni`~6biSYiw4X)j&Pz-%8uqz_hJ{%)2mP%T zn;4mHAZ;5XzD{I9HZ%hYX(-Rrr=nqw`oc|R` z6su7}T8}nPAfFlP!gUtnsN&PtVIQ)+Po-x6vAmhbTN%hLI+L2RM`C4*~j&L=T7fcl#SsXssTm!p(-t5x+C zt-o6cq`9JXBjmWfQ{$~)k%_K(z41TlVPQj+aK|0Kb&8I~e`kIaqPY4rmsC#i!X0*b z&#-f@7QSAKiMVhzQ%jOIgB-ivKb%W~w$czOWpYbTi%!Z^a%Ye7eHQ;&*6)ei;omI< zYbekL;V25``hk>RA1=@Kt&LSqO`YGPv5vME=*_^$u;jbN*mk^#9xk})7+PEItejT- z6AxId*k7gR_p3>9LqnNr^Ffe;y}V}1y(b%(maIt|E(Q-XDhO31^aJ7=w}fQ zu_)nxzXr|c2mZfLs(umr{#U3k02t)|m9Kh)|Ib-~|NC_uG~KmUXB(?~f&ZOcUnCNR zFCGmv$9X56pGb`dg3DOgj|aAncEzU^|2gXnz+q#9WlbpP=}1o-wY|N)d=~g`C~`kvUCHk5=e9V& z#CHQ!DszU1?ABR$36#7#u0d$D!E2ihQ**v5y1GiIs^T#B9383G@a6grM5H%f-t-+E z9=4TlUiJQYHfB6C?F$~HDscRt^H1G8rI%x0lWGYOQvy~{Y( ztQtxFYEjVWV`_>VOWL?*3#GGp+|g+?`O=d^I5=?_80FAVS6$w*4-6b@q1Y8Qy>XM2 zN+GYUtY7#6sV{*^sSbV!?bmXJkkD&>P+(?sd@OYsbG3qI0rTS+){1P%#2)q z;f5mNW`QY_DmE)50fDXaV9tWU?G-2@V%gi9bgFv&@|Ddl4y$q?;$ownWB+o|uWR-{ zyV(>J6l%IGl)b3KX(mhd@nq_SF$fU4{aF|!V&$Cw zy(A5H_M3E;w3LwN74Z?ux8aEMPI7DO;oc7I%JAKV<9J060s<1kthw*G!m8LT;H-@$ zyuVUpRg1tsS>B?|V$kNa{D8Q+mNPOUuSct?iL>N)5tH#dE&bzF%sbXASIu95|V%lpCQ zy5cqnT7me)LU062ez1>8ok$mOyt91#9=@PwH4QE?7^(XGI~f9eKQ`*0IH7;H`{n}F ztsuAZ3O}flHhu~i)a1!V6vvmXf>cs9E$vXc3c6a-?KI(5Q@?daB4QmdnavB5v1@+LzjM#{l2jUeyWScYoo6qqG_2`cwiLLF+1H3=Sd=_CS z5fOREy>?l-#)7QO->s{lRSeLN+^R}Jz|3M{nd%$Zg@g&jCnz5}Da*)EWoN5$IQ6X- zqa-v~k$AROFr><5a)sB)EfLE+{aE3co8ltiNW z(&Gd61_|tzTF~OBRIS^UO8Y$~xRcy(x{&cB=Voe$m(d-AO0odAZ?C3zC;ZnVv}g!Y zK;_GOyuT(9xQW($`fH$PNX$6IZ0&wia#w~gw9m`km;=(Jwdk*I|| z=TlT14_^dI^n@7%%(;RXJ)sY$u-c!gPm=0?i8*r*VsB1OpgcGf>C8D-;E#+q|DMOI z4#&lh5YI2M1r}z8L+6e$7dvSqJWD&idn-Z00DV-G*E2OuDr=&*|H)opvj*#^oLtg* zGgPUv`^ssETV53sP~AQoA4RP&DmqOKV0wAJnC#SXW)!LQ zS;O5al4Y16SCb%2DviA(iZQY7!5OYF-DX#%tLjl=T{Ry5=k@mVMDo)66XJTo4H0n~ zy^pets;P#@a9ZhB3CybFLz6!_Ykcou4Vmd;Wbn8b8w<7c)`Q#b0;vCI|8J3=arR>0 z9&I@weF8xQ>kw_R@3KzmlH~CC+)Gb6q`#*2x+~BDc*HPqb_~0TrQ=kU}U%oaD`{9*> zH}Z{v`x2HKQw%z$&`SX@)z|*d4ITs&$-nZ0a8LGU5TY2Oezma?g)yI7?}vLT-B*vE zWDGCp^zHnfKIciNE-gUXLm>7N>)UJ;Z-DBG(yn|>-Hqkkk!GQ1{F+qP;nxBG8r_>I zk~`S99yLgBtzFFG)AcK}+U<={gZFeWM1Oj89QW->VjCAHh|#{++qK$4i2Ze`uUsbw z*ZGeisSYh)bY~`FhF5}XYpnz|obK%YNHXs%x}w-iOmy~n_rc*PONH*;lfz)b(;$z* zv55cVxrWdCc@Fk^qBS;Re8xyTl z=a7?C=0ury^43HJnWN0h0rRze0xv-%XLS7*Ne`)w;qRB-aE=BaGo8LzW&`--nI6hc z7RO-m{B7W>2eXAm1xSPVh1S3wfiAqiVJyT`rUwFJMPtFm&^P*^g(!E~SZw?`7U=cTYqsQWDOGcxYw~*) zQLW(zd#MVI$x^EU3{h%RvxOKPNE6E9yOMFI@pCf0@0W(}9&WsNXFht@8sa{D1pRrB z8&z(HxWe^*jFcG$(-=ma*b_%u!hxe2<45`DbRCRcUVB!h7e9R*;kF{i%G;4_e({OZA^ z2XNS%+K;y3%2c~}WTh%X1o5lv z9JpPv!2NM>W{LiP^rd-i!E< z1>VB}oVnWx{1MUd^=`+BB#%~`SMk9HB{!$e0P2v^+Fk473G5CL#!d_JneOIdDb+uF z^J3#aG0jXF`~fFv@(F3b&eV0HI3ReAPHKL=_>zjblKNH^Qpw<+H(eOqTuen!`?LL1 zqrHp1$qHEGSN$7@ft7(H3ltri`wI>7#A8&?kx-M{ZObgiSd-4-qH)05)*o15+U1EJ zE2GKCOX`mUGdP%x1i}nm2vq=KLGBY+6V|Baw4yC1n3=#F$8zTCQ zjKIcw`G#AiTf4TbbgD2g-+KfD>*hdSF<)m1c@`Ug{fx6Db)<{d05lOEfq^ygsW88e%U|u98vx+3-I-5XXs}= z;#R|XUv6^7eD!fKR47~Ku@xS^63yk z5`jAfL(bbhJi8#sIC(w1wbwY&>b=E85aV=xV*@CVtfZ?wBk!!QA+8l(kF}Yu^qLK& zz6CpxApSlp=bZTzJR<&;1gxh-KcR9vl#+;SP1Fb;utt6u$oT~?*TtHL0+-)zJ z!e)QVD_wQD(K1`$lNo31gF;z~nv8?7Srw~#eSlvnY5su_>0}-Zxx(@`qORor+QhW$ zKrTorq;}z=2*j$UR>%qR0BuMRTV}ZjM(H2ly3i+Q4eW;P_QVw52Hz`o)>u}RRF^Mh zFwQFdm)5cMazv7~#_SNeOqZ9#WmsTP$`hWS|7KxICCmQc?#|T81KWiigBJ+r?3G+K z2~9*O(3F{ywh}e-GP`dk3;Ywm!jBdb0`pK*x}6Fn_dcH|t`Hn$Y7z z0g(rt8}#)Z1fAiP>Q|4gX&W)t^>fmtR(A9CAAyaI+WQ-q<0<6b+IhArs}nbej& zw#SHDXV%t&PKQ0TLCB^1zIB@Kp+l0AyK9S-xP$T8?f%J&N>C~csx`IIzom`6mNN!r zRJ2?O8GQDMPWBZgjkm>kmJR+)qQQHfS#|e`w#TH~l7tbkr0tA2F!H}~3?RU7S+9{e zS+xLur5^xE2^n{|JiXo4^Qf92NUj%AI{toPCutZTKX*DrQ6|%7rCcu4FU_ zH{qinYIapgt&l8R)5g0lh)ji7*JQOXzQO2{!Itu7J`-toH7M>24S`l&T_g#JI%IYrqr;Jv=wU@-*C;%V~Kr#hx?i?()G|J^}=FWdDAjOW)M-mn7v!E#7M2a&;No5Pq{>3{3fG2{YOtQ?o|8;R@-Bb z`|c?B(cv|S>nKi+fbT$ex3MV?RRrB{OOhf8gd+&qMWgck^?=zW@9H>It*wTl-J?K& z9%(h17X)b{8}%7ocpO(@fZ=BVc;~`E(;MjawgE7w-wgC9Od<*fu9PQgNp{k8(Pp}Tvx%GM;TU>P0vpX{Ra+WQb#PsW1Yu9=_<>Mo) zY|?1sHOAFWv#{W*Gl5+CtEsNv_J;D+TjLND0oyN(3@pK1|BZ{oy>Qq_s*eCG$E##P z>T71hHBt)*r2kV*<`(b91I@J(<+{=kTknEn7u%aYzlQDX&;T{jRDK*xIsL2N0!D|^ z%KoPefqOEu8egeH!Wd>h!*dA&aJ%Ki>&DBIjvuyRa6U-OIK-6zeXrO+r2+DAdGM*% z+FkVL#3s4N(;^FL`LOZWr*<{QM(TEsgYGn;t24z6HSZLRRuOu0W45rp(|vy|1^S4? z$milyDjkr6++>y;bOoA}`us3_{hIA$RxgU7*Lo!O^rf*i7%+tMm4O5+ub)ZsYOl8g zD_p(EdWhjhT_=f44EJV%nb<=S4sr40>tC!AwRM0XFl820b;z7+w=$WzldZu~ivkR1@eG6bnn12nOgIFl-*e1M<__YYb< zD2C+E#RdxBKTmmb(lzA9%rjleB&xm7K{&zR^x2|eySZ+j@4{$jfX5$3DsO~$l>g8} zTt!3Af@5V%9Zkeobv1K?c6N_9x4Bm%Z9r6Zx-tD-cG;kZl4el26THA4g`iB+)I2>| z3c{nEvFgd#%@YyWQ*B`9eJur;EiR5!QgYO(KtuJJPZj2%ZPRMA?A~%fzB5ExJU7x% z=4Z?ax+6Xe!z1Rx{GQ4%XzHb+ld|G`MhZ4|hW+-ysfIj)4idW)Bne1F+#serN`I?nZU2Ci@7A+~CB{BXm{E9{tw zkREh7+;=MZtdGYySmv+npY+tL|vzF9%uUJ zrTXp$D}H*ZUJ9>2@aAU-yov-DftftH%CaZc40k|!9l3~*a+ zG#J$=tj4bKX6IeZ(qIdS&6@jM%Z;0{uf<%~>y>qgmcOrim!}u*2j1_2)hoM~3TbI4 zbrrOGA@2#oGpQ%qcQ<>eCuy)?{OMR0?ZhEQKWUYtuXU!u4y>qsKY zMqRBS6@2!D3rSGxzDz$__FOePz?=8cFO~hQ;1vp%*?&1iS+wp`ctOl8Eacx00ys{)LV4Z5P?1ewwyR-%T6vO9zTq3 zm&FF1Zs2GC;+$K)dve2!%lhBcxtpQVwdXV!c~^_45J zi3#$06NrTq^yS+_js&4g14?e0*Q$x%xXRXzZUz@%uXgtKMt?32U~9ood_j3TN#PC_ zTG8EH@aB?)WQ%oa-$sp)XTn?-8)F8^8zBV)AvU8jATf}!+Ib?NgrU})^hQb{AaKQ$ z{D{Y1UraCELBUy1GCxi5uKQP0kDSEDs-Mv%C&Kzd`e4t>%35~QUmeGU%$Q>S0b3@; zdw4qU#~jbt31j|-mGMac063M*~&i9)*R!n`#{jR-uk4HQFSd+lboWSjAgHJTOzrt9vcaO|S zuXm>L=v*jhgWR{|o1$#iSG8)^H7}Xct?*yG!#`E}4*C97sd;z0g85KC9zi-cpDm~5 z;8Z+3k|MRU2F@-hfCNX=`}N$k^5oZvXHm|N;P?iO_!TR#<~^6=`8Ymy^oUI z=Kdf|v{8Ak?i<1#grK0RC}_{yNkO5l+TiVWX00!ji*dY(7HbM4W2-Oc#&U3%qmObuqJP4g1IatJHx7`F2k{j!yCP5?FpMY{^jv z>dMn@&L_eg6%3Ecymf%*M+4_{mjHcB65qv?M zJ_*FVX#)WY#D-_jUIbXlfD?8PXazkzG)QQQGo1|)b-S0+8SpmG$PRq-3N7k_-Y#h> zQ!w4FLimt2_hL*ddQ*)fHOEedy_|ERa+j-*bJO{CSU+_Z<5V3TA}z=E559AZA+utn z=x;TGsw7BTg2a(WFI3Pown<+v@_K{RvsPC+8xNp7z8DF8)l1d9prtC{kLJ}u>`0C& ztccGTq>`r7wf|ghIfCr~uR9PSk1}ek+4(wuIW^tFEL(rSD>$n0vLBrQsovz24|wew zTHW0S?ad@U4ST_7H;uTzqi%cu{Bjx~`m|c_pC7iqorQjZ znBC01lC?ybfgjVISh}$l9}l1rP2?tMJjrCu` zjfSRMPKmY{fW%7cBm;Wt=YMf?(X`c2^5RkF{YnY!D|N9zZ1;uCt@Vqmk~O)(qgX$< zC{Bo4E9iacB*x!P8B)9j@jE8}JtzxzrY=)Q!zWE)fQ}iQF`fRo#R8M6;=y!ez}RY` zciS&2@mY$h6DHv+oXV$oxY8e|uaVaPG8R2DGRQ{Aho&_)n6caAN<0NZb#89*hZ9EF zy5*8i+5iYm8ma-IV_~zDVBSz}`b>h8K3@<28tFL z$N|b~t=>lID(ZZB(eq4-u$6P$GX9R$GTBw?SHEDU^0$!A(`s)HY^hb0K6E_Oi3qXt zw7y+{o!N9o44anqYb&)Ie3SlBpOv)-297r6cEzV+<5xoYRerGO>e|lxoVyU<%T5uR z^F`oj{y#hC_>$@^NKylip`aOh)7zhQpZIig15PAQv>tF{6M7DudH?ih7)fY;l6zkr zwgrQ##k#*=7eFC6S2eVn4elXVpu0bigKsZ$73%L#<8jVt;P<^ERQI0^32E}a`3&r$ z4Kmm(q81#^#FwEp)BfG7J7$cpv_krUH(!prJ5dmvj5}$sA1O8T$q<%3snhI26Ra}- zbXCjB#OmGJ=Ufmi{jONJfkq6-&sts3p%g$6ul^Y*&t?pl5Q$e>mAEZk$l;27@BNPB zsGl=)we1T=p2k$X3~TtWx?G|H#tbv9_SQqjvj|^@-Iqtdb_qq3e{OJ&kJ8B6yi|TL znx~YRy#mor5DV~q@SiayOJVyg5ryC6c@?rVR>?sQb4ppM8yTJltatzip8p{tq*cJ< zg}X3UidSp=(a**s*L2k6oYl1cuBP*A3bP-y7u zO{Qn%$W}fsWprLm1v|ODL7(Q-VRR?O`@IJXY*S!UD;?&h?Qw*t@AP3U89e_((`pTH z!2M#krIWe|JZ#QEb`af$GlB9cfuU@BQwOjT?{wB@1nhK>laC)WVTV57<(saum2qHA z|LpJNgIilHpDBx@zlN<1@gA~F-DSj-K0FSk7Oba;{9H}K-P<8WiWjE zA&jTdRY$u$lu{iyDk7hRd&{6P4E`0t`xP8)51;@2<;UH)rO0SFG--Lzmrp3FOrtVO zMLF3>QJw=^QIOgHt;=(%MaF}KKY6fU2SEZ3KkBOwXovaZJyFRx$S&0uXqpUP%zfr& zVsk=J=n?TkM;bS_YYc)6(kZCn8)bO=pT<}}`cd{99Z9WD@i&*e*tJ-W^2jvR)u!7! za=ZJ98^jDTIn@T$b(U(M@c#Agl#1Q_!N+ni-;xOEOKa2^4FDEAhl3CFy_j#ROx!p5 z4V+gbu^C$3$!7|xOz-4w&EKkRuh@8!Si^)~4U!bifAWpi$@L-eMe)diw}6#HGMfJx zu~hp!k>I}+ZoUhJ`{nGJ$cG>o*c(U>Eon@I3z)pe9jd#W`q^X>n^w^V!f5FgW_P{4 zRm~3U7z$_Ef!Tz6CGSpn4Mlg@V@B6Rswn3P+>?87xYM1|>HZck%$k0j_*v9SHI^dB zW`!*@HPvLj{BxwiN>&xx2iQ4G#N)JGss<~S4q|7B*%aU%ijihNxga+C4a3qHm9noN(3fLXB|kKUR1UK>^U+ z$bFCicc)E#gPc+}g%o6bwa&CD?d~8XINj6LLx|_>nEs9YxgDI ze}&5RvCbVSE(c(h;ewo($Hf`O4(glka`Wed!3QYo?Ncu&A$zJOfBfH}+x-)TlPl!G zn*yR_d>X>k>*AGGII49=63UfYJ)>4QqH1mNu3)>TDNXhteW)Twi_i>LVKM%wD3RD` z9}c2kGfqe0z#7XH79-wtX&Cf6tFU}W3m_SBwbz^g^j~uM1vx<4!0`vek-;DZ{&(3> zp~^vId}%wyIEI;k*_^*E{0D)eWbvP@5MUL}DNsp-E$zJbC8Lwps&fzw1;+iJ zTG{3SxffRVfDW>*#KYb5Shh!XaI4G{mj_-?dIb`R15*`OCSkdyrNqq5-BbB(g(R$a#h9koFSw~>7sdhLi0*7N@n0&eV1Y{><2{`wP^mGduu%}Lz zc9?`R>cvoiYzdjKe*$$ilT~QFkwmeTtP<=eIU}HcoDpt;jD~`OTqfIA9Ed!51SF8q zNb2pS7ZDaG4gOpACs4eFgkhMc?|61Myn`Vmt|R!;p@yqopTOJ+@?<)2j|d<<@vVkS zdS%eq;~Be9Ai_c_Q+#iY!u}4)fDF5tKUSZ+*i=3=sD8T!uBssM4s(A6c4~a&&19y z?F%NmuCAfcpolM-%F@4m9@RgA`0{G>)L#Rf2NR?0;bD0ORv=L1`NmaZzdvl`tQj>o zgCg;KC$5{N@C}H>4A=krt>GLl@x|=t#cZD>t;>@&v~$(6b9P_v(bVy1;|7Rw;Tl{2 z5VKhAZ^lcY+b1{;A9V)nhH8Kt{3+B*0~iYC`nxdVu@~2qHC!T-LUJcdJoBdweRw1` z4p_i_#!SfLa$jBY-$IH0iRU?;uXe^}#f-u7BYrJLB5vhEpG^{PhZTesj9n0r4?xB) z$;(G1Kp;~fGmnXtOXmpK`y-}UD6OOpCzBozp{54xa?>`BFBg4QZpSaxu0$2Nxlv3w zbWr8y&bBis%K!rFw@E3|Rx21L8Q%5Z!S32(|@@oYp-aR4FUe=5l$h{Yq7Br}KYb48ox2aSrfxf8Sz&797 ztY@`2>6$6;T?=&Ga&POFtE#Rr2G6M{QE!dO;4nXtoFO9yE*tQg>|}vBDlpAl1%iLj z?CeGM_VG|pqmm-oM(&qJj>%B(=I07P{BQbGN!55Pk;`P!uiSz7dOZOWx+&n|Bp?8y zb!eSjCHwy`{OE04;s>gDcnGA&D3g^Aw}o~$($d6DidzigvG3fpfV^8+$v{N>R!#(t zfz>?R2ZNT%TA9dbD;CZ7R}|mGR5CLDF83=2Mh_>l zq{Rd4xZa{M;j^4-(dfM69n}%6vIdZlM8*xzHN@mCpZ>3Tx5MS?R-P5IAU2ImH1_rM^3Gm=X*%{_JYq(*bv@Os=j#1BdFGTQ4*otAd2oH(NoMIG$Hk zua`F`o(1_>J%48+_-P!NW?d1d08z27u4;qE1Uy|zOe?D?P>Jh3-BjzP?R}`XH&3Z7f^6Q!_prG^U)Nxq(hAF!gg+RD-4mje>OuV;D8ee*Xll_b{a5b9E zK-#Nf0vQotK%Vo8a#&ygVC6bKFg)O`_7Q|p&>{k1ua5!Ry?IN3Kg_kZxxMKFl6}ou zoMl$ax(IN6*r>$aJ{){Ner|7;ToDLTib*K=aj~{!{vUL(G+_(oFNGKTpDU-!d}MJ3 zP{1Df>|mspvj)&Z)qA>A;c?2ZRuj$7ms=Di=1>$(PseS29gNE5aXJaSB?5k`9~qj% zMo}^h3ie*le7 zS%lQKyu2VCn|m#YJl;DJznSER^UC4{!pzBQ|240YnU-6e$4woZ?fr$Op4<68!Ll$6 z11ZTe+ja^j)H#2|oWrG9Is$?oANsjP9XUiyI92EKffmo!tM+Q6RMT>FNNr|@i;~Yu zh0;a%-ndE=84KKsPIp4u9%ktN1P6$}QG>q+yB(Y~c-I~hPZr@21v(2k_i_Wh3=rFu z(UX%400BLo%2n-rD%sxT(MqEC;m0# zBD}chmw16O6w$~W^N2e2nD`2?Or_P(QNE&QRXP``Zl-LlZroCEDKU0yDNbR&i6sO= z0wsuvrz;5jPXssUp&tyni|H8s6Bcn?dCw-OemkM~C&_*=} z65>s_H&?i=EzEDyZMxH9VxXTtj$b2v^=2sJjq83VCo%r`_?VFJJr5VXlT~`B@X{4- zfe3hX4hNgkf}Yp#6(kbkF%Wiks9bMs1HA880+~Gf;n~E#!5@dH6eU>~yA^hYP?&h6 ztBWosT~|7;>2%)R0O>+TAUu5}0U{z#u>GE-CZ%%IF?t$D0Prspx@;G;FyCKHE-u)P zqbkMdpx6tw{|} zeS^pkqpEXtMXUSX$!z~;ld}x>(5UA5ivGu^<9<#e)G0~O&&Ar`oG#|vGcPhT=YJ5c zd6G4a0G`%ep%CFBas>RZFwzVc5OuCImp&zRuB9&#SCM$0y9A32AY|Lb4xgT@_wYa6 zp;2kypp-URn(TCh_w0bwwd5lrhI-BEhGO%N{cKR? z&*lkBKxAZcT5oHOci-Lco<=9~rWHLq63oZ}xvy5ck=ccFgma6Yo5*ZWvz7g-DN%+@ zbsCBGuVeC5!j(X1X)2l~tV&vd^>{oI-_Gq>Q6C#JrL>}ttB@aBSm4~}m}&zteKbPA zv5Zs(JtsZ`iU&P|rgS`w%d!Y=_XXBtXz$({h{-XO{sKT+U%pm+#8TnLkw!N#-&s?X zWB$7^rpkE&tIGSBv?S*Np?f8>cQf##_V;>-lDGIN2!WAXu)>-;S)kN>=d+M8(CyV7Gm(G-v5b`NHv;Ae6rVeC1EpqxOXWul=vgp-TQ zAU@IOBi26P`#eb*nN4qtip8@mvF6RIuTn(0Q~)cS!R5~4^z2t^Z|*sR(4wdGfW4*& z3zzY9>42c;duIE1@5#LRf>^^cmA*5u^Bd>94j~_Y&!l$^0vQ?|@OS|BujPR4iy%UW;!E(Z6&5dke z8SdOY9~wPX(DnD6au76ti!(1^X-9#HaeG&^k%V^dS6$+DBdVv3= z6c6eCBf~KO5WX1Lj1&dQE5VLjacyPwc+jN4S-v$Xc)pDik-{eK-5fKt(9XQ?J+WSt zSK~TtC0D+Cn7xENy)Vn#Y=v&c57ok4T*P+#H_?5u9BfhmN#swC7)IB#)+LLneak>Z zn0dOM0vPHg3LJPz8#{CsEJWmy}N3g+j9%rZE6YyVZXKP_;ActPq zJ8VAq#jNCsdI_}36c%!q>eqgY>+#GfckK`!kCf09HKs}NRkobzvCdzI`5b;VGMABAf&qm==!*`LJ$Yk=dz<4AER19Ihp8wdAP zN-X3-hO@Iea+(#RCLYPdj;W=Nn^LUoKQ24`Dhu5dx@N3=ri+3ubW^21gIvLmarqb(j{Ove07h_x3ZRPy z`Nq9|@NJCw-npRqML-a5YReVFBv5h_0>stfhz)go&ZL)ztEdPs7&46zLw5?WU+u4Q z^Fn`KOffw7HWe56?2kR7WHEWJ-S)KWM@WYD)n3U_^-yeSXg7wL7bh*2F#E5j@wnSfFP*uwAb$$&K(*NMxcryaMxdtq;Q2vEefsgTYTGkl3bkr zwC_7JAB=pm6n82&Pd3<+p8NF;)Ob?(l-!zM_{yK%{8FT%neGW`bb8(S7|JC&{@pk4 zYsu8D`ys5=GtoUeh2OB8hxej*!+ z0|)ZAWu6-W6$UuBAE(5vh0t)R&(-|5z9Fkw<*Ids$l5KWbbdX?(QeaI)!%^W<6Y>U zFihJ=WCv-O4pkt^PM9^tFmz>U7X!Q_bEa&^}?w*2gRJ{Kl)PHqe z@#ZB%-LO9GztO4kB|yQdp)L8bY#)Eo_kBHqLV7<$_RyBFcQq%z>kXMZWyYwwk7`Cw z?~z*jZ)lw!KPa@wvgpqSa17he^4%G++SVqZEkx{6RgtovF!6FHeZy6j8RYMy-N*_j z+I_c}?;PUw`4T}AgvogRt;`Ur7bK$i+j4f=2UCoYStwq!U8oWHmqYQ(hvfUqM+lEw z_JjB$AtbboRD8V+N9{cP8{FWVfDi#GxfuHR#A9b{} z)~MW9J=CjUS}JO66rH4GF_dD>jab+};PoYXC&U8g1S{C;f(RKES+lO!oU-IzP*>u? z+}>h$sKiK&K^8bUbRY`CfBw;VJV$c5| z78pofQeFsxy~95I$~`|RRyok5M+utfcXZ=u?VtrH(Nb~6PAR{oShI}~dmWZhty#%N zOG#Pos|sLac3mIjjmv_6BVF;~QcABI6!VH~C|{PV<Pd#hg{z+n$Ol9XfA5DXHP?&5eNUhy$ zPks``fxpoOYjSHvOH*|eA%15E&eJtmi$J)6*sF5b*B$2|Q}%2|4^m;qxGNSq{sPp0mbK{OOdgfyas|uCa!_pO^YJM`Tq-24{m!A?X zU9^ADgc4Rlni<-L{M$Ya?-#hSh-CQw!>9+SNmbZykSXLxc9riAwOe z6OCABlbyH{ZnC1TNN#UooGRjsZ^sx>biKeet+h6bpEJvX2T~lH<$b*~ z9eJENBMm-B0ur zFfX%sv*YDHKgJ6+(2t7-_a>X7ni8UXwJz?eBzp^VwD!!QfX%FWZ` z;`1G+?Hr#a5wf|Xgshm0;&RToS06DF{UUcKQ9OErEg2n9M8+%!uO7IL%dNFn4SFxr z@-i^j_6EPU%Qe{|)gTx7L#|kbNMsgMbJnIK9kPufm<_cTq2gx>+y0a-gNMlhTG-N0 z_kuVE0a|o$&HWXQN}?w!G5xqWikU`CUs^Ko+9Uk?hKqho1Z<5uqho~TUwv#qC|H@D zP_wMUKP9_GPqe4?d@M&2JilhPQ1iwBjFHlMt^WiO%-a1>#dtUy57>G%?bW9s=Oa>* z5n*mmtmjCimB;bFRnlb78SSC;i^gLDY!+3XS2y--5%Axj8V?VE%u{tggdQw9Iv*_` zfZo@$5BUu*8F-EY8uZy`Wy1&)7pmAjcuMtnyZf7QHJWS|6Nz(J6n(ab1vh_2)A0oXG-ld{{6d@A1o>N}`}^Af3wRL7a_aIyg#Vt#*d-dmJMCI`a2Zt)eIy<;928{Dq3yb}zC_;`cC?t8LNzeFj( zy*HVL>yVKBdjU7-s}rsZH5;>i{S@H90^9Vfvk${p2eyq+`$L3Ohqoi>Y9ulQfDN|R zZ5Zxw8zL87K`>&|5Z4_DbkP{LBNaFP%^13f8`toCBPfVpZ@vIEHrV>(?NQ$+q@g;t z0VD7YSI8RIe!mU!kZYV_F0F{&Lp{(hm+ z$cTsmcUlSNs1XBtEVohXNhi>$6b1pGD5aX{!GnQ!(AT_y6#}tw!fRmJj+vUH?rk)ckum9C)wP!mTg9PM_(t()ad zU>3Qu&!usp9TM`_kIy0v#Xfj9ef$|nI<54nv5Skj)8Q{TE4NSlip*6{ptsh;ey}qE zJBFh*gqpYJ8quRtwXb@!y;2)O>&f|RQdZ3?ZKyxxbI8GnfHOSHJH<18||ONUue~uF0`+%OGuE>x%=3i8MMOJZMHGM z(8sol@PM{Wf+RrUuX$!&jJ9T#^>nTcF3JCdk0U}CAmUvB40wnG?0dlW62HM>U<8v% zP;{?#5>xtOzv3@hmeQ1ksG`66i8`Vcs!`-LniFd~n8aPJh2H988WR`heKp!7!-FDI zrmnT397Ka@SBI_+EJ(t*Y0T40NbU^u zLvn)GBMBM^fl@vpaaT8&?|I|{jN@ol zlHUQ$Y}uyci}0^5rEM9`Rnwb7j0)AZ(>|IWq919e5J-?s6P>Un3G(VI17-Ar(*2 zYsfpp|8_Rz((UFjc_h=>egVF*(X#&R)QRykG_p9}=t|#BQB-C*m>SEh&*YNQAA{A1h=x9db^ah7V@8x~puG#7y&< zHNtu}X4QxtQ4J?br%g8Uj!5{_NhWsZFo3Slja6Fj%|05>02-3DZ?Kv&1A*85`t5B= z@HAR1|H6!Aetk8(qBEu6NBd%lF)2hH^|Xdkv#eJsEFZ2L7V3JfEAI(wgC`xG(Na~Ya5K=*DOCz5Z9b-0 z77Z1e)Sk{q8C^5dSNXDLGyXLU$=8p2&W<>atkd(BGi(*qot_lryef{)uUAk8JR=$yK$o)s z+9)FHXc26;NSGF{h7tE@_ZD}G7-^m#$*61Aj@hTrf)=ZzJLY5ya+7Ks^KS?);$hw4 zTnvn+qE3MLU?eU&`j7W`huor~OIH}Igjr8d4XlKmna*EEj!BR~pkoqL3)idmNL{mv z#pRoWTW54eRim2u4hvUC*s7|RL6y#+u|NEX80tsTvSLDjGQwshD~OQI#_Ue=htST*?mAx&Q||0@7| z2Da=MbVrp|9o6ZNB_UaJBQ&%f7yyLBNqf|ZP#e`tYZ7LOAAxSm5!pF7^i?u9>?Yu~ z6p%;P)>xYOLmEMT`}(Ol9#6wT*@4=udnL~%ug|dJ3ntC?8Z6xIA(SKwqxHA7jv9Cg zU0u83#5bRWse}8t-JK-fC{T-c5^<=flR}6m1wwed_w{5DG6AH6k%g|;)Gx9^qrR*U z1A`9_|E|rVZM_F2Mp2PiLxY-UQq2A7*7>Grn^E= z7-EXJa3vLYexNklmZ z!wr$S+TDI`_fLy6pV}!&Uy9Gef3qnWAZVfq`wc?E)ncd^lz&6Ns{4{d!AVrwwiyoy zLd0M~#*%n2lL~xTf4+5&kyQ*%W?YU8jX@vy?NUBeUO11eg_;&0?}HNBE-@MaxVZs= z8eZ`_jisO70H5n0(Zh?E%oT7C%^?23uG=)?1(8sM$4~@Y5AL$>B1%Rop23Qa-8Co2 zmb)j?D2lfUjpbOzy+B9<&`ACb?hY4l!IU@ZHf0c)Ujb63DFi`?CHWsfj|sb-*i}0p zUlo*?^e%LoxW$oAk?|J)5Secjt!2L?8aQG@mK;f~4?XiSh z|7&H0aJZ`Kp*j{_%y&^k{X2(Upim{!-!-;Sc`34-H-&*Q;w9t=WHK0C+u2#MsW@$) z{r*J_*X~nqO*W^u331`J3dsTz!{d$RMn90Xdedll@#IWjpkgI`V5wAT?`&94nSu;i zuQgp{mppEsTvEPokL|o+=wM%~yvBDW|rNl&=C$T-U{*6iNpW)YPZE|1EErEkafXR~h zNu@<+IuZt~0Ntf&qx9RU89~DE&%eNmNNoA*aj>sE$vSd+&jDzVVvV|L&ZX3~i6L~! z8poFRH4+ocNLBHL*jSfV??15qdGkFrfG=>fCfY~qy<@r2YL4Nuq1xx{xMXwS2j9d- z+V2uN@-AJd+b!Z*3b+{}>llP&O$}TxP!CEU>c6Pq3f5IQ7zktcH-qIl-R6+SZu{E+YOrO;i3EeiXn%`Pq2AAG{uwn;s`Dxz{e5*kv3fe*sr~M#nfc-c z>f%->2>@+7dO2vkpUAL!9`cd+yZf91fUsoQd*#O5hWK~DpJy6x{0`<4OCm7--yMbX zlYp;jsRO4u3Rt>TFBSt{W|vMEJ+b7MSVb#m?im_Y?nLFavFe=NG;&R9#-{Fg(uwE3 z3>HL`@mIZRDJ@wAERBDmFkTn63*rzEzVD-}|* z)iz7@ILTd-sJhk9E9dYB4ScSQA)SlHR-bEMl{$FeTH)73;2qj@fIWw+Q-NC%Ls!x( zi~bL1$>bwW86|aeHf`|)#G&s_)J&blxlvLeQx2Ohr%E`>6VT}1$I~<|-Y8SJ<5jb^ z5(6C-mktjF0h-F77y?-&q*nPy#+!@BEUkHoYl6OIF4BO6Cyp~Ow{}!ibWPPqASJHh zzWY>7XUy(Q;!c}>#NJkr$+s<1qyir!GSuV({p~)UnWuA#?^^C@2h0K_GLLIWP<_9w_lV}b~3-Z z{I?c>zGiWNeeDoTLuCBv&_cJ~DlEPpXpaRA#6hVHX8Zn%qn|Kh`e=i)LdD`@YhLl| zs8HXoY1{5R+Fx@(L&H}Z1{A>l$H&Ct(0}$E`W@_lu`UfwC=@gOy8uV>KR6Qy=d~Nb zu>%#27H-;*>{ABM=FX1Bn%m5^)88lOM~TMBiHeEAKmpt)ZuV;?sv!?tR|x6pkE71N zLOUQkSd|U`k}g+r+a4x~%N3Lwh?S}p`zKJ13W|fT18i_32IyUcvjxeDY<-CT4%Y=G z>ZwrcKgd}|2JqiBv`l`&|Br!tCBtKq&hyI;+Uk+H7LAxjA63P@`8#eI8D=M)B>4IE zVI%!#3SJv$Jo|;(f#R_$XZ%&70W*C`={%Hgnm!JDnZb)&Zl-wJU zxsh2_37g_7T+=Xz{A3JNkO{EfY+LtuKBFK%_2Wb^)Qf*1{eBxy1}Rju!nWYm=x3TH ze`9D0s$c)ykBd}qd&KB?CP@coUT=rX&wy+mP$y$j_!RmLE6%9v;9@RmucOKIHJWB& z$Be9UE`RWzL;-#n^R&ml`t{=5jgf_fH`h4@!_4~IM$4R;yNvRjmxEgAPa3Fk=iRvf zc-W{qWtY^Es_^(*(mRB&RK^r(kY&|K_U)i)6D<@UX%?<^^hFKAX^%V6O-ex0QQE7G zTmb1@86I!mF=Yz_^EJ>6oenpb!x^jEdKC)&?JXO)m6~_R4ewGC8yJPq7YGDh-z@ z;fJNcR*}TAbkU6u*LJVO*$dKOvC7EKfIZVAxmkn8ZoTO6M^kiM zoE!?{XfxVe=;kAfZy#&Ji4(8+xV}rXIQWjC4f{0`6}p6%TJqWb4oH)*?1#k z7JsK9^O{|@al&2ntSRhY+7Gi<+nl z9xPPjlM5hB_}v=Ol)l#H;n?)v{I&!WjT*P6hqg$P(Xp8otX%;1Gr*-01P{uR>PiE z>J)fwNoKYq*kRUJ&uuJQhJ9cnFxe!_rQr^MRv_dzMXo?UMr0GvOOB_k0gB4 zF~99-YeL%yrKBqySd9FlpDAoOx@_Fq{*tTsE-b#W%Ou!5YsYxmj6e6I<(g<9bDHuG zjrsiGf6FycTN-AI3$@G3GdFs8OC@}r;IssT#o(9QCmu{XHtSprSJW4CWwm{4i8q-@8}3|i zZEs!_v=&l0Mkbu{iiNT}*&OB}&B~W>#|x*fAZ5uxE)FI6rdsZ_X3-Rgh{gcosr}m< z{?7E@&xkceNvF1`^9F>%?lz(G#@(9lrY!f2_UL-(lQ0VI%c(He7J0KOjM%JSG{#Rh z3ImJB)`Jcb5luaYW`CV{u@)?x)cq{&+`*MrBt-_~=oi(?$Khwq`zcpP^@On>ugY88 z@Pth_0()Ssh_VxhCxsI0y^Gz#jW00)a{dK4`iAFv5gJSQf@Rt#@N8z3@K9j7$V)*i zno=se)4Vb$nR)@{Pj9f27;|%{RE@hM#fr;Sb8-GE>8{ZNoolPAx+}3*8Upux>?`( zJ*8%(`1=@>otpsrOOj5zDsGNRY8&M~imre@Wsk?IjHWB;hEhM;0Y&qnawNsto!~z* zk_yCPdUxy2cPpTjpA3N!`XBjOmqPE(6o(%y5X-Tg8DR+hnqw1+B$$0zEi|0P;4~JE zTOfOO+kQNmUaP)6J#8J|?tCkSrU0sZYqUc^n|=mIKhSOLp@ zI2|CWRKADF!7J2!ov#8#)#~$AeiB{;pR!yNQrZt0*;ZxVy`vIG(4p&fWTfVZUY$@& z#9ABP*;FKDbRk<)X5{x^RAi*4+LeQiY0N)beS7Gbc7|aHKk`!2HZ*c`HU$U7MXssz z*xCvmViDJ5O?Zk|W5Uaey;5D#ZOy{i+mqxxTjFmE-z`;d&}Qi5CTw& z#Z6gGcPaZhD^f^yhk|KOHX-&y^Hmbrj3SZ-?=8Am5)v>w(*sxdTp3@Ong45;p#|X6 z1}6dy@>jlJn~yjabEJVk{jDSSMw4MsGSel^f?Sn;NGF`($Ojh(-gArF-;i)-)qCRk znx{m+DHmKQCv)A5f+l%x5hvKOL=!Yn#~_$9mNa5brZyJRhrw|{S}ytmO%^OgI^qp| z`-s}}VLLE5;5zvyP0+>!Mh`ZepWaMlv9fD7VEr8FF$KqVekApoPi2dn8*92zji ze5?RaL0@VCQXf2HX*CFZvLi^e%`_!CiEqiRuS4KD9hBca#+vu>NVPUOuWV>nta3p| z7L{kxFotx78|03xjaTik+AnL>f{YMt9Sl^4mwJ7hoKOrO{rI>dd9*LQ4QqB^;BLN$ zIk{p#=9+0Cia^3PN|v?4PDGt{)GM#_ABLT^7RihW@dftq+0g=`ryU1jQ4i-l83Fpk zD&3J*y6OW9)hj6wt#2>ztJZ$jW@Q0!=}PqZrk+dmZj+eefKeU@ z?_xKvJye65Z!Hfz>%1j1^u9UN*)DefNn*Oa?dP@YsG(hJh8i4r`Fv>NAKNPRqU?ln zABS5@?#y{?K?Wmg;jS=vY`XP5!C~6Na!dneCr`@2b1H%8sa0+vly_qxjFQLB9%Qw~ zX9D0ryn}U_l14zI8JS4f6+XU%t_b&hy`=<-ygl|>I7tP$3f1$s*9xomyZ|Dg9<1YW6_%4#Zvs@#-r$GnO|D0sBq?OV~2 zr3qG1wW*%5skGP|h#u}6qSj}-D670h9-g}u(Uf>CvJOHw zw0QBAz*~|2b8+&hG?H;&VoG-B(;W#&FlBqrwkiO?dor}>5AfYLtt{Uz^#^?<6ROxD zwrIaVF6EegAb4RKfK}kid`^YP$_zcG5e)v4-RUqyO{wNPe6>`KS7wCR zvE|Ze<3mQHF8e?0JXRTbU~V!tXzV{>?0|BjUJP!)4j&1FlOIBRx!ESP zW;-wfd2Q~2#NU^#b-1!42Yh$xb@cWx2%N=w@kEf#))pmP*XBRjDGnlb3{50fXr}0Y z`Fnv&>^rE}lArLp0j@QeW9jesHg(NQj$mFy2ucGfQvY+UVE*fGC9;Hc8c|6|wAY0@ ze;gPa>o?;3;ImX*#1P09*JyZDG(y|GXHcLHeqEA&%>znl9L*W%`gy|12(uvih?|V$ zT`4gwbFfWxJpLs;;-?o=+fKuGB4Lhyo>c3_%>^x&5J}q5$3^MJ4H9(3N66zZF$WCs zs>15iL5dhX^|Se1`f$%OJ%X-z4ehgg<`$6FG@X<%N_ja=KJIMqm{+Rv>u#O1CnH~& z11!8qGD^AOKN1rVUm^>3bC=wrwQ9o*;c@i2x%SSe0w7ZxK@QQ29N{FMze*qBEy+|gpX zH&)f_-86n3!||5=v&6r-(6}J{svSIutAVybT>WTg(41_x`VJADVsJO`+p*YSsRWPh zzMV)Z#U&K&>)IU}Hbzm_!Lpj%*Oby9L7KTtJO%Bt`-55xmJSH|gHAwZvPm5E zanH14SJtTc701N|PGi~*d`D)zNhx%urkyp=eCOvMXWtH4L?ym9ij=r_ix&Fbh@Dxh zG`de|Q;_cFxF`6nfI6Ct`86y#%qhR2-$JzIR{wl>Xo&tRA_}!XYP&+c8P1 z<1_AMnA+tehDx#lA{kGoq;xm_kvh3;eY?npPM@0vw|x3A?g4r?ftK{hWFq2bJ$S`d zyyu3)QEj9bVX~~O;+d+$7t-kt?U{0M&Hs*$+u9rz zvm>!8YPaaQtENX1QQ0$AG5GxUu#=>uq7lr{@`Q-ezubEJr6r>O&A}-7-c;l3wyjaU zG|{0W$K(7F+GmrQ#cr`ph*~-Zn_ZP&fC+$iV<2cnnF)(|E#g;QWaRU033*I(< zxQ$qkpj>-g(q&d(i6{xnVx62>LjK7J@%X+^aq=}AFN>WUItbv@x}=g!L{vHHEc zV@OpvD>@VFosu~^tCkaN`b7BXJ97JF#I63rR@^_1MPwNsO)rean9eNb;wGEHtxC3F zzQF=?k(_(T=RLdORqMu?Ej37RH35zD0!kktkp(hsEsa6&Faa30sJCHWAD4E{+-9mH z2C-5_?E&NfB={g(l_dFytx($r=o9Amt z_)?wmzm(%qUspC_&(8@{5EJImXZRh$3CCW!cY7JN|+Fqnmm)-;K=KuhDWQ0 zhh8k@c(FbfgyohT1R${JShg|-ylcY3+Vr;t74CkbFaOlj<AI#b}GRm_KEOjjk(G@Ho!XD4nSOp5%Dy^>VVmsN7vI^%q0JzGUznwecY z-#V3~;=H)$Iy6$N-GDv%@YR+(voYV&DEGq9fAFlhQ#SUS>JbCKjLkw$FjC{ejDqj} zbn(%*7qz8;QMt2SWw-22k5VRC`%-zGZ-Ss&g!?yjIV+g!eZ}i~i3-h{{?&025rDT) z-}x^oQ2#Hy2mfL{%W&c*iv|ZrN{@{Hey=}m0|dfB^EvqSej+ThCDeQ4)BspG*oedV zWEjZ9tfZr=T{}7Lm;`dP<#ZXV!s5ui>DBI1fe?s~ll!kB+W!iDtbVOYD*M(mn;v2S zJtwxBnpzy0*l+(d*7db-(xP16m%Rw8E5lu%GVni(Ti7YgX131Pi=_lHFd(|yXcr{N zgG8dH|KtV1OTChKKG9M|yxA(NTUhz{+i4{W%PSTwIi zqot+g7xw(%nFgk)?|zyRHlY28{@RLsA-ujXDQ!5_@Ce@Bz9-TUnE2TpvApA*_cDGA zR=}j{#PO%Y>IK11{mDUOv>0EsI3K7c!?L|=Dgb6l6?_>@-%8JvRg7*N8$A)jCJq?< zOGNPIENkDt<47+PsHgu?krxAjzG`};L<{Dfy14%CY~>@2^yT+uZZt|RVqi$Etx^Kf z+OUaXmjUjinsbvXT$gtU-o78=!IR;9s&|mSGOyKARK&H^hpm^=r-*@RwNNzK&0ooB zY5h+bmsfyV6T(4p;cV{pH;1m@<#(>E5C_Iqph)+u9+{$=4mWfK1_7uJ z@V%zK2R?Io91Zj?(dBt6cHrn?dJ5zX>SU9HWiW5y1zh@v>onGuBM3pVwkTwqu5d82 zfp#8;s(6GFf=O=p4;Y=79KyiiFmlHr(t^Z>p+KPqdjv=kj?W`HNXlK|kuP=AwCKm; z586a~<=f4go}{+St75y5n!UF-h2owcj{XT6pX3k*loenwSh~7UWxmxC%eoz+X`IA;i#``VFb(B1wzy z<0xo%wAz`w9rJ4BxUT;QQ*{3h|0G~d^;No(4J|$c%`ir1DzMN~6D~mP0soGH@-en? zb1U-{jp=YTLseJv{WJ67wu73!s#XAcM4jn2gE%!tz4x|cZZ z0G}$nLm(Rl3V zV#SZGZ%0|}FmI-wCT3IcMTQwUW>K=%2jT>iTsr&pJ0JauA10p>V*wMDTS4)S@BfIb z-@Zo5xq^&l@D2bs)d8E74=E|(himqIK{!qc<|A}0JQ;H;?Ma7B`>PO^RbQ}*n>|iQ z?hZ*w2LFJBv^c=MqQ*L?{S4j9>tmDsUqcf+?g9rL`0~Veq;O1fljSjqi~Y^P8v98^ zs4h;zB=2&lhf8qV#cn4Tkps)cvSXJjH2K{7gR3cbC#zgLi*aDy+1U6u9yqvBB0D$* zko!FKclpWfhx7KugL!{2$tTzsb+C+!*-~>Pv&!$0ARogz}kwE4HUQ`+a9L5vND1b283<#+PiiYO6?T?`Lo*C|{b+JGZ`uEPImuE>4 z`WJHXWIBt|e>0Sg%>P%`vO_49G~d#~;Mh4rUjUX=vw|q+UYF2GoD`XfKlv_+K7VUE%*7 z5Wq=%<8I>vAlkaL9vJRPNrai7Pk=lxHs4hI*nbQJpLANm+xJy;vV@=}1x69+<4rPg zfATMkOlv8Ln$1^c<8x*kskIv6=HYTDFqN&I;sjU5bdlQ0F|mJrozD6_lE-|MZY_cn zTJOR{gyYx|;A=3(6Yt8tIwT}+DY)a>MueyN9p~v5ZZtPMnkf2)FSBxchlqnT7J3Ac zZ@CthThoU9&1(F9CsK48DL;HEA%!<`N_6!3axcQPG*)0V+LFKjG)2*Wnin9ykF{|~ zSUWc_nV&yBDA!iY4k}?CKd9W^lpG9yYJRT`Z8uS%sZ(7&v^=f5@|KZteD7UjV_>t$ zFMj)u5sZ}PW_awsuZ%lY*H@P{QO%ZYU*!p zRGrJ8P$+6_LVwQ^rIeTBe)#V=sBM@Y;8ETpB0!7pybseSLf1TY-G0>QdY(!Z?6s>F zxe-*jqcjvs!F|9WO?@lh>izqs>rKH!U@V^mA8}1?Xa=6bV7MhRNag$u=Sd#g8xi zY~=6_q*wb=lZCT{9|h))X0Ed#sVJhY-MYR8i`id#9|RZaXhSrs3*d5=LBA?aO}f z=6a@((lN32G zKGz?-`8J)0iYZ4xhCV-!?{`B!x2oyUql zQw6$TSVYm#rp&{Z+5CYGfB*fR*oCq={`(cn?>V@uWCEzN zKdSkR=QkpC{<&{vn{Ytq;(&hYch5cJs;hr)%&;>g3-Wh$To9iKtc&-Y%T*Skg&wx)5fyO&A~awZitx{R<2v0kZ4s z+Q~_PioSl0&20uY)c^AQL!<~6Zk9xO4OPW^1jG$&Le1k#zn?y)3g*~D76%zZB4KcQ z$ySa&?4wT}Y?UNA@M1+4&*ATTa=5`OwuHuGpEg()t7d?>Xgf$7aT!zTY<3F-V<>oE zukxQmbYe~lE4MTX*ZMvY3$^epEGe7JmY74N#Mb)2ri?ffV|eyI&ujBRO`*HN-ZgFA zD49ao<%nC9O%KVY8Nv!$Hre#X7-)5`oXJTQ^*yPyq>;rQUOzv<2Oyr5iS5p#@BZ5E zxlb&4JK7U~RklTtKfQ4}qlaH=5bM6k4=DNb2OA%rO?PQcLhe7^Y(g4%fJ@6?cQ3}) z&&>fJvPD)oB>{V6w>0E$;7~A;^BMQ-7BfNi#neY^gzT8cr$5-tn!Pr1G6xEKgS~8~ zbh-6KojHc7_-R5uu6}_LL(1cM4@9T?p=G(`A4_95uD&sBG|`V&KXyIe6c!r2O0$6k zN4QA(bauj!cZHGP%Aa_OA{C>bZ1C$br;|mYDX%(3Ap53WVC8g9g=COSLE(dVh6O;C zY#|5+`FIxY2ty;)NmC6mAUX_Ho(cZbZDf#HjV4)e@wm$N!_DFkh;F7fO>7x;*TZZiBMq5K+ zIlW0S&g}f6jzl%jcrZizrKPcqs6>j@Hf0@663M3q&76WB;uv#s?Q2-1)OkV+$DO6& zQSCA&sZco#X75e4ZAh9t?kB8KNR~oaztc=O;)>{xcjXknpgUG;?5@&OK7) z>O?ScwUw0Jf1F>obQ%z19zMatW&hbMbf$t~Z-jZ6IsJ4_w*YKhR%bKoVWk%p&cRF5 zw@%80`8+H$c3ts0N_k5{o^oUIR6M1l+fi_E*8w zVZvVV7Sw$j_-Mh$l*@7?f;7>YHPGcZ4vmRHmK`c=Nq)&wwq7rLZx0`7>HbfcB1MiJ zzPfOLTH5$O8S12(T|08YhTl@T(RE78;}T*RnJpj7EE<98N0TaoI=|T(5A^rQ`45ZW zy+uSGCPU60oho$*Db?#TTI{Z$k@ZR!*fOX(0-}@w8uA)D)8PcBC8IUJzZb6)ZSm~~ zRM;E3AoOqbO@bM?_^`?Ne?t=M^ffw)U8`rbTBwq8|vQN;ciFu^o2C-W8&e7gz?9o1>0PeL5rH! zFuWNAbR60}p)IzV{vJFcyxw2HSzJq|%wR0ArCQf?Me6D9<#|*?T#tu7sC$yH}W?J@|j= zo2-9dc#v$0a!?g~T1l>bvJm|9Su3l2F#mEk9u157c>nkR>Fg?_;#j)v;1Vo^;4qnl z;O>&agKGjII0SbK5FjwP1b3HUA=m^6?(Xg`gAZ;&26%H{?)TRB`}MzGtE#)Yt7_Fb z`<$~k%AmYHI7Ta%ES75zzfhD0!}l&8!oYn%+Jjo>H&q6V)%jEp>3SjKc52+iu&6$o zEhRmq)8SUG$?u8B(2zm#WV)IDd?bdvheL0mP&78;qRz?V?bD|pVX(v?&r8QI4>uyE z_5U$!oJ^RJ8m2nOj1{gh8RP*K&I4c3PuJ`7b{-fD5&CmpU?@OF|2sgye+GJG$J-Aqb>BSs?vwY zrYFnx{Cpg5uFBSj|GPu#T*RmqzH9xlcOPE{s72C7GBfTjR9=Pv8L4?NZS?doejX)J zmTh05p#!Xy`H;eVNADMVSnJLKetaOmj+mGU6n}$eM{Jy*5tO)~0jKp*u|s_fkThQ` zTtC!HHnKIV>gt#0rSON|%<|t&{6PLyZ-d1Ao@|KI;t{hPV2y}0*!p63<2n5^@N zCGkfa-x1My2-u1>WLZAu`+E29*|4|aLaRiomHFN!?bk*DaUg;@2`#-$QDk_PZpAQqVqxnE6aDi1Lu=D2aJhC#_&h1!hMg8Puw7)8ogsDGJf6(a(+f9Yh1?Yixz;)2D$BbnC2Rr6L@y#0qWG ztQ?v29=(w3i*sP#%$tEwEer0V$O-U##_!nIv5ozl0baG^N?BuA9J&H~2jHir*RzDC zHVd3ZdEk+tBAcUzMhPYr6+xv8x#nFTC8Wf=AsLQOClzH=!=&xshcJc2gJ7)KT<*r>EzLjUN>DEU|XW z$q8w$d;TycOn~S33(fC5c z?e2{iTcItgQ-hhlol~m_VA4lc-_$^wr}^Lq{xBEJHG;Ya4u3!Okp2`{z+Y;9kdfkETwXsk&H z=~1oiySx8MGWD2p1GbIIA+1v6wtqnfT3w` zVVyYw3};JgqF=0v1m$wz!%rNpjL-bFcJGcIQDufUFFmAA%YOMzn$n@k?u^6MJzk$N zSKtGe(v}bXu$|z={Bmk>;ZKU!j0&hay2Fv4022XT0!=Alg6Lgubmu9opb!N;f&QAE zy@>X!nn#_RlSIL|Z+Lj6?UR>9X}nCCBmFqP7bf6Jg>c&4vYnCV9GjbrCVS zXS-S7`!=y_Ie}}*nM?x@+0cB+fp5;Oiy}L$R|#+zZEPT_Ex7eZf6Zqb%KSpyN{6r@ z05dgpfa>NOZ5xMy#)PSbp{`l;>B<$-lQ=u^{ZOWMbE}~Cms>4#p*-s>ZuQzl*y;yg z$`w!&;+lTLh!fIQ=Azhy3d{pj$@A+LeW{eB5nUE;_ji@HKOV|xx3e@ARo>UeKfKpv zUi>s$Vd`O#gjq}H^0?SOe`g zr-Y5;R$Wm35mmqSXlgJb2a__wmt;%LLLiDw!NKSDx61Cnp&Klo7{tDhe#o_y*3S*Oo$S<*EUc3d{z`UYC=0Bb- z&q;^OpIBQ&a>FF%%glL5r!0AE=f&DS_1L0JQI;#F+4SVHx4!WzSvt>t_uw$zHXit9 zFR}{Fku|PDF^=)XGbz-=yJU^FN9n_WlXLprI&A;rUj3};zh@+0{_FO`i9I!BVw|ek zk7A?(rk(2s96PCtMF4?h7L)|6?e}gz&9pQff7bdsDzN%^qNv|1!rJ8c8;*Ls1~ov< zhS#0{tGGwIUkT-saaQ#Q6NJAGOaUc0frL0WIsO4|niO@~S-)(V)HGWPmwu@qQm{_f6`bNzMI)<vcjy%+R`A=$*$(Md8cTc;M0?vBUulLP%S2Dfdo1&K6cg(Kd_c?Y{sB6X zCC+|(_;P*rjpb6>PVjvs!yAQ~6y~;+-$A2sfQv2}*|^P((O*7C8DWb(WH`M-@mPXl z(rqpvJop&7Z&N8W3}H&haQ6Ee??_^C$gt1)c~>2+{j?W*P|=?C)TK{4tz&QRD3Ipi zT5yw-|7GN}AI|^is)t%{$vmoq6iN!7_J(CuXUtu52%Tt&-A;+AbUe^Slu_ILd2wUf z{kC#@(bk!&*8Jn~jH&7Vsprc;UsCZEj)NQ9Cx+BKiS@Pp4DhyAyVm}-1@@HwQ7geF zK0my+o8CiP!5xhZRhkW>V_f8XWjgNhiuJrcoj)rmRSG606mbTzMB+OHSJ9o~vgru9 zwC6BvciNc($f91K$zD6I;Xi>iquWxf`8)fs8VDd{#maMfe#Q-r6hlb>E#memHt{bF6JL zU4=#mW_=r!VirrMhpyyxvwO%PF9=s!Bv59$wik(Yl0O(hG&hXq6Y&{FHmn?HtRH9t z8r^N4NlrNttbB$ap>M`G6|XHg987z~JPBjbCd%xguy7ZyuIo68T%4y#mhQpGVGNo3 zlU%voO2qjh6!4>}i}lWTt}4de5&y|dLCoDR0p!Q!@$A(b$$_pccmNm{RYC~E#qfAx z86Bj2gtV*mWVF!aUG6Ik$(dhNK!Xe(3ZS#)!{ST+j3F3z4jdd_>$NyR^4dv=DGr=` z=EqCCan{ZkD#U{|i7Mxgy~VbuRN=woHSeO{`KvyDZxZzjXF6E%z1$-PVo@Ji$dHAd z*}l~sKIb?QLiVV=)cR$rvAar$$`#7v?Lu3hye4V=k_m%|h_WaAA?jptmfRd7FTI)8$3 z&Fx~(_+ZV+uim4JvZg_8m=WkZrj2**9w=KLBYLOkgSc@=?aKo&P?;GIXv^`o37c=q z7%QVhU`A~h__W9^{%jzjN$ci#^ggJ_*6Sp$D%=fV)zQleud&<|#YA9$s92uu-CRGf3({siG$A^6+~8Uz9JJiN(R6nzpygR3~7oFqsy3jzqXWS z?{fs$)H!Q!e=7R|-rG!gD+IG#t5#@(=Mz7VSEIxT zM@HRdc&kHLK5eImOPoMt<<;3tQ@v6K>4<+ctdEgVSH`3P3=0|I$`0I>OZpny;SJf7 z&Bg**9qP%nT%(8?Fg=Ze6mdX@2|A$Kv^@QaazzTgo+rv!3=kI2=)+s7gLdp9Krm#O*PHu$nXElt^Tc20J-SI=HshU z#=C2n1+qAyj0+4h+!JU@Vi4ucea5S7SJ-JqJoesB7-=68;1sLB>b~4ztnrQ|Xz8SQ zJQH6qwA->Cp>s1KS-dinENO|z77EU)5i1T3WK4SNJ&f}Phmt$&RJGBG$>T{ncQd)r z(zDJ#r_#{u5tQU)Y#-_HD~?Wz`L_XkJJ9(Hc|4~dId<7xL)4RKvv+`V5Wiis^eCu2 z-#)T;%1Q8k9$5oXHBsE1A%D{P6dXL zt{#v*k4a7@BoI(E6!*iRo{lP*K<-_~QpSjkir6p*hKaR$ZB|Il5IwzFnOzd2Oge7Fh6k<;kG>$!E3mZ$@BFOzad!* zMRMy;c9CwyCu;$sR0K-~5%i>+@6|?sZrpwM8X^pNw>#aOPSZmtSh9m||7Hs{=@pR6 zxy29XnAM_rMEqdmX<%CIGw>3=)Pk z0)v1m0h_8R;}*i-85p(80;Syx(aVM;9EVN1!r))q|c({m%=;r zhycxJdP21>Tme$bUG@jPVJ9zYz{G>aeD-=13?{`7S)`Jo3kqdSwZLCoK1|{98GBP5 zVS~Xix_qg;9E0n`CS51TuKM+|HvqwnFN%BbLbFa^TOgJkU59qM9(d2Fm&s?OP|+nd zzFF6=sM`n9WZJi66CtUTS|AR19H*iouP}3}++FQon)hlU&IUOImR9n^Sn^~<4I}xA zU+z)iET;uzTbLX@zE?%Gf2D5DqR-KYmzAZa5;j;RZg2njc`QeR_=mGD`xM4BF`e8( zLy{)ey1!`boPO#xbVWL*r^7E((TW=s)-Eb6E_)IqF|?ExWn5=>k;#C?#Vx+aIQy8W zt)$PDc^svbTgDW8q8J~RP8v!k-f9*2+N;WO$Mn{{!m+%9CGt1rZ%TZ9XbpSa2P%96 z6#bJZe>^Dr1>P76DM6|3x7WN$6sn}j$y57mHOhN~8e{-1{~gv(jy$?Pw;Ql3>IhKN z&Bu3GH*2_c1QaSK2W-llQl8?n#98l?mOKq!l5U z)yw@^39!wLh|wxgAl?P^R3am-RL38^Jo==K9Qh4qur)<7|u4`+<9vjI4hQqNvJ)W+r+_4;r9kd6| zPnNqPqrRacTe}MZ5*)}Brs|~Pb{57!A&F_7A|lr;?{at0e&r;ct!S9=F9Fq0^e$TH z=OMmc`)ZY9V$$@!r;Pn~5VT7Zr3!af2k{@1Tvng3Z62R{bb8aPQX1YNfkYjL+lZ6G zQEV@*%@uVv3I7mpud%8p7oW37{aRVgCJhr$u>rTEQKrUF-Mw)WdXf37>MY7~#%1hs z?o4IO*?vo>SC&3>5>=51k}7`;?-ir%mbahl=S6twIEhD%sMB-Af9Sh1Hp%|bi`x_^n!Y1W*YwFD3xg!>|#H$h$wLQjN=EB0l`XF1{Ha}01sDReX4;;=4mMvWDoi?he)7r?iu)nw?}72Xi(T#|{29(RKb3qxCyt z+ij*mvz=0M^DECxjTcmgq~&)hS=MbPg6r9)+%CRiPYn!Wki{{BR39(%F*|Fa;}8kV zqod3EgiMM1U(-z+D1`}e)nnr>W8|b!1iA9$cm|nW#p~grqF0pnjpYSpWEq06{-ND1 zbSvMbbn1j&$BtFa{qvS&GG)$~`#Z-O$Z7x@l9Z&Of=ZdwaYKo0#$it#!$R|K1jVVA z^)bw7ZVH~fMFD48C>I_CK9ac=Hbo?6sj z`~|m5*OZGT@1cax((dpQqO&alsd2G4w?Gy)Tk_5dY_)!BPq1K0Ebq9ieK{NPlW0F# zYh{=aJ$@dwXx#eSd)*;(_C#%luH`r;A{ImC^bT2Ub=OT#vW*q>)Y&SotLMT&N2W^+ zrlex_>vw%k`8H&@{#^`6xbIKbYRV)IztXPcps$wvuY`=|HTB!!y?{n1hV$O2^#Z8s zVp&!#%cm`@z}D(eNLkn~cTH(FwZmn6`^1vtRqcRrFpH79-=(dg^TRRt9}MN+&=~p)iGQ(UBnmhu z_kU_4fkeLlD4zV=%=p!RwF3NC_rS>iYK8LO-TD8k)&J)u)%0>kZ3tB|AIK$`eW8*0 zKLhRp?~8hAiDNrC{DW})Czpe0gZ(F$l H$p3!;MXr<4 literal 25196 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 DH(rij diff --git a/docs/images/GetOpenShiftURL.png b/docs/images/GetOpenShiftURL.png index 77c7980c66bbb3b2bf9db55b919e424feb9255f5..29121e80e96596fe33a53815968e2987978e8bdb 100644 GIT binary patch literal 23358 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 JrDuQr<6l!JBvSwY literal 27116 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 literal 68796 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 diff --git a/docs/images/network_diagram.jpg b/docs/images/network_diagram.jpg index c50ea88f897e0c18c49b8e45f09d5b455f92fb01..1c8a7558599a92e9c95866338131e1630e4e7ecb 100644 GIT binary patch literal 91021 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%0Aq;vbcvKY>6M-VKYt1J&}?Y{am&Bf58M9tYX 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

I#WbG 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 Q)6aklW@v8k9_kYRKOK*QK>z>% literal 98715 zcmZ^L1z1$w*DsBHv-e)V6~DEJP*+tX!l%VYLqj8a`$kR^4GmKTctt(H0e*pS zEEfWA=q{RyvS^jV^xMD}tdFnWy+T8)i6OYLzy`kKf!-LnprH}}`ujppe0&-4z6s~bY=gXkTc3gwl>|#nIB>AXWw?6PxL(<#B^Z=c7-2sXO(4+BX5I)1$l zu^Yl!*@)nPh`$XNr%HGWciqiOBF2938C-vp@7X57NUg9UV8Os)Wde@84OT%?|DBg7P1AQw$z&?; z9@!rtigCmux&AX@PnzC)JU8u27}dV$4yu)n?S%ca92Czk&aFRl@HYt!g%p*_O|z5z zXNm$>>dGz@mA+K!WJF5D{ofy#OAu_yWa-{Zx=nJiu>Ukc*r3ewObA}esD80F0jfah zFi__IS*ct7rvvox)XkmtR1A1hh<}A707w`d=|k6XviuoD0M|nRg}jL~)I36P{`v3!dTjIp+NTZpo`<#HG0X!Qu}t5$msh zOyNHmU4xqKQHO3D_s=J-brhm$b%UGD3Ojx}y$~4A_%VI9u+g%7Y5iPcL)`jna?`{U zs|+tj6$kHrD*hdvz~(BpFgG*ycjq0RfL2!Ohh=;#KVpQ9qxhN%n2H1ic)d)Cl(Tl)Koxg* z`@ady2ONrmv-|lV2h4hefxXx$Hh0c>-UK2F!hhF?NwQ&3Txq?!KlI6DQkPbfkxAVb z5gG8Lz8H}vV>d)S3;#eYZO$({Jgt{F^fo`@FkEY|{Lvd}=e%9)abgMTHzVk!7rEyJ zCy8hK{(BX6i82kZBqezrE>l1Me!_vS{w>W@X?hUH79W%R?^cbCwnP~1*tq0=2IN*M zjVR!4+xeTP3ZXv7jVp$dnCDfGb;=5FRQWdQHIli(t@-bU6PJV=qX(MYlCIems$~Dv z?T{PL(&s=1y^lkwL1z?3j39lSfj5wzdm%h7DIKAb@m|>%YxO?QQ7gQ zkiDp~6>Yrg@^kx(uxvk!!DLLo`xbjb&5svvg)OFeKjrXwsb#~4`_pZ@F?gOzzxq~A5BZr@UK5WKizQHB$NL;5Sa@}@B4|nJDcoa3Km!SS7IDRZbLq{l8_+A{(^*TbqJhzwg<_xY<8H4R|i>J8XJ&&|gT4I7N zd!Q>R$TlG*#uQr6RIX#sPuo#4+HZXC#Hq8|a@FL<627@)`xh*U7%-awFcZjvF>d69 zezNKP^?@>R*zW0C`h|a&;`7wLN(yUKA^jJsYN2nWh2t>lSRqXjSstti6v?;$d2)Tb zg)fw06%HL@##@i#^@*&Jo}D%U+e7Z0;pZeW)xPSUXrJMjmd(VRY$Dj(mUEJBj8^gc zFBMM%Vc&e7dD9j`K-*1OcO*YqfX z(g_c^gp_KQ!8jk^c9n(guei|N2x!UI`i817?}>w*T5|?poN={wMLdnN#LXtT`q1Ie zms5Q-?ot0PY6n@qTv0Z<&sBx}VXh3GHts17PWU*k$T=wIBlYZC0Er_U4_wHr@SOkGCf>S=<^_2N{RMjT`tfbTj%G8;Gh8&`X8UHwFVD6JZtzx{(sYO>fNDOXO59 zFB&HlQ|OM+=a%+xauGJQ`GN~T9+p&mqZ0s2$;d_7%Y#(48Pl8ZHJ?=eCYVxG&gS3A z?-_S(yxzL_(DepP^WyxL))bH}5Wu?&mpfbj$2oa~tXX zC5o85Y8ZDZ#O2v|K8N&t&Jv)>T$wO8gzH~jZj;EY#S@~|!braU&ibFuhONztW0Kk} zW8L}+_}uC6kbNf!&15xCbzu?V# zIIgS|MprzKt6iamV9{d_uqnDY6*p^k#Tb^1U{(Ysnxj;#g3?}fV=G!9*YZcEy z@+`hhKCd?QR7np5WasmfRfKBNKJygVyYw8^q#){BLTs7GUb66~bF~fjHpY+eM+16! zg%!yoem;#I!&VxP8|US=i`IPQyVg^75Td_U7I+};)Srd4W{c8~+m45}rdVIs7bb}% z<3b%u{>fs3kr_V{CerUUxk$mv9k^e5WzmkAP<0MRbZ9As*U|SJz4V>y(BS< zkpperTN%lrPZ?@01p0@c=^{a87A2*_Q9-;-RGEs5EZ#TO>u3h@FufOTaDO8%ST{8$ zi3Hl|E{C2Hm{29b3*kl3_zQ&DAcPIW+MvEkBk*rEo_zxheci~UTWaVAzF54_KrL#6 zm^cyJEMT(+eQuVVG1LtsLhXVYC1^bNmqx+6Z)=4gtnpwZRVGk|OyS?0RUwuqn||7> zm;gP7Tq19C-~`b9q}J?Ig?duOyZS=iIiE zUGHU43opNXN({YGAsA2a%F`4eJJ%MkZW#zLNhD@@8G+8kN!?60kGh4iL?_aTe$s z{E7K%|8=WwoD&t#)I1Vm5t%Lf#ppo3ssGC!@`MvgRBPDqdj77XNN`n4EM);PFW3iNEP!>Y%uFaUbMgVRCjOmB5Y9& zJ=+&|;WPH(sELd&H7rg{7-|jlcRIic`z?$))eM>}!sXk1t-AWx(@OaCffq}GxH3CY zBtMfZL+m-h2Per0KoH-PqHpJY^&gQ=CK9vJHNPH&b#z%{YDA_;P^JjH)4fR%dEDp{ zSbo`Y+ZV~W5cB_h$X!w^$;Lx3-r)a;A-agJoMit-wV&~d-L>2p?;FjEI9J42ff>SD zKW~zJs3Wp7LS;t%VRg7`TIVfR&p+pM+y(g%iUuO%NT=R}Q>+|qfPHHLJi*~g7_2WA zHV3JFCBP}2=Le-vxs?LRIL*FEkPVdRdx*>Brey&m+YN}RaySb?9ksRTHZm^F+x`1d z(^XpT&eK1QTjuP8vli!Uk}=>gb?cchfB?C68R^H#bj@sc>(hOwV>kSxE9>k6BsB?hJ z!`WT!m#`Cb`XZn0w~2baJnSN=eOd#IHj+_~TOERaDB|xhz#DU^vHScFlFjzjUoWu$ zEh|p(>8uV$2AHAxbEf@wE~;e++<%ZKo+u)KS%rde_<7Ff3Sa;xVtjwKB`E}pVGdoo z9i3iSLFf$+^&uRJ!3*W0BMaI<4>4wqBvQmyZ+m61yv!QAO#cGM)iOHRZdZR+RxZKn zmjRQdLWjhM#_KneKVEWz_TT#dCLS{4qAS>*2&i`m2qKOnI_lOsX0PA%4w$O|pgyp1 zoB6;}R<56?ODj_4aPmEVm$;Hl^9nj_FNtV;Ee5k;k(KkP3no`%$*a*h?q=|m>77y?Ne;D>o|8_B}drk-hpC zB+kth+jsJ%)Ob%Ka`_Qns0X7wEA^`giwJhd(~h^CfzXH6#z2UHz4Vu)h_n}a-|+FY z_j8N4Dx!}!tDgaS`OAXO3($HjB30E^$Wt*noZad=hdI32*WkXGzaB*(*@4AmhI;65 zoi_%L0tZh2DN|EJzVOWiq;9n*8mC=1nt_BC$EQq!s=3wABjyFLlUm=#`+v+jy7M>l zWH~&bw!$Tq*V0;1{Peth>rv3x9H$fNPjZVh)I)B7=+b!klO>tr&Oy+3&e6{oYngok zaHuua^MxI>8|nV=yQeNra(7|PYaEr0R0vM|giW>P0<2}o?|RPtkI#V}weE8o>n``U z%2n#Hdr(HT-u_9R$5_n%r<)Mg+i>+~@-K=tKJy>wKL>;$?MY>jd%~d7E^wRGP&SFN zheg-+6Bif%5mO8=_hceD3Vd)iACKKD1v~i8-Q1a6dX?L|9EWseZ%4nXj!ReD)4_xr zF27cSLALuMDKb**0=|b^ooJ>BKuFF^O-0XwvC(z#|9T##GhCR!J;VbrG=PW!Vu9L|nA-Wa< zFCRjpm#a+HIKN*Ss*O$yp3}{zm)c=SHnflE(Xp_B^~YUeny4x*Hv4E<@_lX(+_#yU zWGJv%Ils^AdA{!dPBaF@5PrM#Jc4az4@SP+7FwSBY8?`ef&VZiTr! zgGTQK=&=n()`7)A2u~S`!jFKCI}B%3;D_Y*Zd7bG97|~qrGAOWc}U6<$#{Pv(r#)} znS`HyQ~pV|U=iY%{^%YoTTe!M1sbw|{q~Ee+%C%YFUpEb>|5dTqyY^LV7IC>g`sp?^U0MtP z+nekc(L4o_Vsyscbju|(m}-z?NCaKJ!3*J=H~0?pnZ(mZ7Hw!2*rXq*DOB1&jU+xfxDW9@ zWf@5Km#=?m1@^;GVL@8`mL@&T+*FGf#EcHPsVC9Po?Xr`}@$XQK#`ZgE z6*|9o?%1_`Pa0!3>1TFwV-}t${2W*JM%6~Wt8OQsdcU8T@eh=jr1Iz=Is_pDldYLq z(g@W!1W40S{d@PVsY06IAM4h%P<62V^iikYi-50Av6R~pZ2m@0iHUy)yBxuoSSsj0 z=p8Aq`FS$W5%CeklbNe6iy9N&s8^VKRn#?iubz#IRWq#(I)by&AidhJ0~g(Mq>e{) z4R9~$;Dd(iqP*VZS-K2XQS8TZ<^su%0c8hcAV&A1qa2tLbQ4QF&qgw8m^38+na}Bs|yWjtLeAvLcS>%Fhj$4ttD4wV7 zfH`VC`%pW1AnCBFp-N#dEQVt#=J_m{G*jOv7GuLF#}LNQ0-BPtSON`AJ#OmoPD|4> zZm#T`?4|dmGc52^hBT$;K`7>lETtA>&A#eq=SBR92ZvWThNM;T;fBS!qA<>Zqtr&W zEeAMSnI48B{ZsLDz_q=ZZ>HRuqx4X@S}D^^ia%>+F@lgKWre@dANNplhn;s%_?K-P zWaoA0eJ6D_W0uSPw0|y_ke481g{YZy;&0knk2FQSj;H@^*3d#mcd_01og~lix1;A+ zeN6SUlnl4*kt)g~v4~=9x)=DDC*sTdc8N;s(I}dfJ}8}&cAzHZVT>PISoVW*+dJ*v zBlG*KcOC=oz``~v3*|fhp{r$`(uSF|l4c2Pyq@1kh>CbeVA%7pFodl_tqcjL?xtA? z562>PimS$bWFkGbDr z_L<$|c|nF{?%h&rsr4(c3IOkn{Qyig9qo%&)>g#T^tPiG2G z|B+&ucIR70c5Twk(++B7s?kztc`yJ=v@T8l9YFy)WmZ9XiXY88HU~&d1&EZq)KS-a zhm+ynoZT8;R07e>6iJADz+8VlMywKVthc5C7pzsFXl~)=U13Z*{8-ddb*>~~lj@IG z5VJZ{d;i{Q)4p!x-Rrjya)NptONA8{kKARch1Il3#ah!uqYzb;0rcdd_`bwTe%4K! zw}A4|)*w-lbrasuAM$>^3j(YH%Modk1yE4=n`~9go(L_LxG?WcL)W}8xmeF>20r&) zPCL2r^^)q36kUlmIzn=YACJTjw_;*bIl>JKTVl3@{pc6pPRstRXeGWkQV&%8=)p$p zh0HS*aZ$hR7(A6$cJ44jXtj5{7)zCMH?J3!ovHKlb*r^H8V|w}7T%Mk{33!F5upv~ z&OQ_~?UEy!O%QHI9VAn3U)H>(PQu!3z5?il8K}3xTW8WV+hon&1RK7QEH=(DXXvpw z_nlBrCz&Iu^y`&}7B*LvhQ>Z;L_5AazMdto^vP7|^uwF8&9qUxZGR4SuEn3PzQ`pG z;dL3H&@Yn6Z!cnrQ_U3H2=M))Xmr&@zX?|T@wd+vVk$K{l> zxLt?7BV?KFJ^H4aHr%ZFXJ~Fj+B^E8gP9sjzlgJrHjm*?6MkSrz#`%}kJn5SMaRM< zpDL@wVf|`j?#d%R?|rLDc09A{m;HNL<{!mczsT+^sxF#s&63hmx- z^l*bd5NA3KKYX!sFw%82_)=uEjl&yEejA-#REl(GaQ-ne`Yfv#eqz_XZQjSk%gwcY zg-@PWNhw+3xI58cSLb@_5a`UXH`bVy1EE9JHCH(VZa6Ikwwo+D8S5F1z{T1hpCR#j zyo_I3CICFr&MgoYZ*mO8a$c*7==aQRENaEdGW3*=!CGBtd~kkX7HWC-WkZl^aC(Nc zLotJS2u)5dcSg6BKbN^6#WxmQ|F z@=9>vrw4ip`T1hujDGBl>dhqeyIjjj z(0--Qpvo-F`LLMhxg3Y~mPtHa--XU;Au03c2^C7-F=Mvr1$N*k0Kqa3t^6$a#3-@* zPSLaBK;qYYj!$C|g9nemus8mrWR=%F-CD73r%`+bAH7kx0L>aT=g#PFxsqJVQY-uD z9T_s>4DxAVDY=JZk-Eb8?n|^aBY*appDuu;LBFN-0BVLqF(A&uhR$!Rb+KlrB>TyWN(`Bs%xSS{3(*hFcy5$9@~4%_ zX@2xtNV#DJ1s81Cduo&jruV6t`!F!1gWN8X4zD9;dyZbly&!%cEDB{FCvKv6l#J~x zO}Zf{{s$b{oPEdk98u3ciV^crb!)7ig-Kve$MLJZ{x~~I^zz}SbQH-e#1YJ_gf z_0kXymwK67FU+#A$5b#Fps2{gWm7jg={ZAM8$uT4uqr3QhWG)%Gya~x31<)HMd39j zDUtwKp4v837t^rVdfstFRuwkeMUrU9?^@>GR~Y&@^kG2OK;AyGciH%~W-i-#j9>?%Qm@Ao z+~UDd>v)M#S@G3kTS%7Z&3QwWmSTax-Eke6W4p{EHA!bVKn)!+7SD_Odf-Pd1)=Oh zq^Iw~p4_HzT5}7W7Oib>&qpC?P*{FQ&6CODd*ZAsM0W0{!z|r2;}@opXgT*D0@L{& zaF?z5Krm5#{gF=e7EHX(udALBC z6wgju>bP8A_G`6L?JwF{?2j(Z!z*L1w-7Z8s77~kdOx3Ho+1X6UtjAV@QN zTu`N!Y4RPlsKPJ0#7ngC$fGFbrIBj6v32CK*(Buq(@%q|8cUU9b5UT!MLo0Xw7IJD zPxdbaeBZTyLIKepsN2&~x0+hdY@)KrpzIJOHTwqn*{tw9MLPa*rSdLK<1h9k8Q{S3 zH$eP~`UW6-k4lJUT8lDS=-`#EpG$0#D!VKO`U33MBp~~9&2o6GJo;YrKe7thJl0)R z3eRuNw>|uucM)w0+=W9D0Kci#f!-I0bcG_n|{&h)~yG2A`uI zHqtABjF>rNS9q5%@#PK2CU)Ad!&l{l(MiR8LO3cG_1KRZGI`%Kv=!D*O~a?hlDcyJ zcr;E&sJC3P=6I5DviZ^Jl##N;@7{xJ7IP-n+->zXzwiD7V9ry3jw*{ zdJne1Ew`Mx&GC0P=1Fj_rmyhge3iha;wtyxej7c-%=44R72|VC`};Nw$VfJEue(}! z{<9z1rzHBg^lWnSNADEPIm*N2&8c*%R4su+rW@3*T(J4nSz!rq7;+ zuyS)n?EN}F($>|T&UvQP_^>J@JZ&Y%Lgr$)HV-7?4>ygcT%t*NP|TS~(62!M49hRa zeD8or#Rk``9KrUMVy{lr<)CX)QO%lPLJ*+KL}W78U#TFLOXkW#Szl!&u@zFg?_Fvc z%zDpdG_9eXT|abg&R*tN!s`vZSWdY}G8Dcb@i8sut)v~snu=@8_rd>=_gGy~D`%8E z{L*w=*`-T`FYicV#rHOLdUGf}koeto^|N~Am)E0Kglau*N1u!pNB`M!Gt{3W2nDRW4&mv*eUs(gc*G@T-yLno#RO%Xep(hGE&T9 zGkTVO4ko%ahs=FQR-PoAoR)VFZkXQxuFM_Ae~HD6SYe9myt>Yp2VgznvYqE`9ouJp z{E!E9?Ft2_dp%MejhQw3U!kt2dja)qwlzE=I->p)-8q7G{?;YVtd~c@{|rtz%(?-4+MwlbaH1xipUECev3;vy?ukj#oBhgkjkI*i z+n$}?F@=;J?-RN#XS>4NQ{)yZXm*-<%`MlSE__Cf@7oCF7LxCL8+(o?OOA%tXGe!f zc0z1pQ)^P*yEcXk`*kpBg`5#r_E&a}MU=bw9UJW806p1^*vh&;x`!skFwe~QsBo*7 z6&9TJq@U^@A?wKc zzjvh`zW;QrP0@PCvEYiWU)LtKHKCHe`o(iHNaKs-Ls5pd7vijR&N)?-em7^Rd7+f% z_ATsETtgv8wo6;`Z+mm+cjqfrOJ?4!XVM4Jx4GLF6;t{xaJnQp?^5y(`ELuKSkm5K z8K-^geH`Rkdz@O-T13hcVu6bW_F~8NShX*MHB7HW*%{>-IihDxGxRO_3LeHFtyr2w zN}nIz{zxC=?+Uov6R@`XOlDz&NU|jqM+$tAUZnuSTU05h-yE*dtnJ~rTz=s8^8zRG zI=80@Qsc2pYoF_Q>K5h<9PsYAsW}|4H zV!R^z~dJ zT{l{!S$IldVAC%QY6d)Czx_)23k^%Y)i^rqGQS=fORHTt{KBt~-PI5I2<~KS@Sr}1 zFySDo&{$NRBlRBpc|%1Uw<&?UVKpcjJLR6EOJ1`oTK3um;HGx|$qR48D z^C@t=7MbI&zJx{1QLv=B8zwe+eLY#!1*9Avwfda|F9%h z2GDuk9r@LgO)4Nzb+Otan?bsw3bw$lvlG&7lqgfHi1!R-yJ{rIPF7{T_n7XFQ$-I6 za-as}O{BEPN+`KaPyczbZGcVY5E{1{C2v+oLK0PM$6|OR8FudFb4E&9fDy`)N3nM5 zN1_r9blVk%shrdoxf&AYPoNf`NU`i}2_N^Id5IF=MO0I%DrWA!;d;MYmh<}K7dqz$ z%`u{QHcg(0=qC{mnPelf+JEaoduEEJZXFJs%0mDa}r0VOP?xRxOywRsO2c~-x)>WbDr?Pgyov7eyTrgRFcu;<;eEwxtk z2}dbdQ`RY{rW3R8g3-zinrhj;v}1&~|DItiR(s%fD}%!Ocf*7RM6ml1svH5Fb@VJg>J7)*3u_`>_V8*^qWKbj%@YFQ>-0k zhQ$lOY5yOMtP^PmYBiTnt_iAe_p61{6-P60Q?oyc5T*k2AHz4DOeD=*{pLd^6y*~7 zew|75kiG5L=N%uJPtccU)aZ29?GFhB@QuvUoYwuj@sqs9RFTKS5yBlp&UpY4CHI6? zW;FRtXoNYN-UGKbxhIIOU*4%6YRpQ8hUSJ)1d5%X4?@x14ST-WW>QYI{QX)hAe>!w zKLc$uQ@G0)ZUXQ}WSLZ1r%#o*?Bw&!sDOZkTg6sLb5@nqD?5@&xbdo_N^5e&#ml@O zr`zr@kByJ|3srS$jOOz~vmLO>&j49nXT!`H85D~CC~9Qv8IU|s81X$f3Jvh)@mTz^ zS{$^H+o&^eK>bMrk;d24n{-%uHkwhr2NHU}57y=bMz_|3?tPAiq{eiTCQ?~9^9RV< z8&Y&xGr8i?7t`P|Tv9XCAxny@51zaDJC_DFB`;js4}Iyn67rs~w@Myjf#gyT zNlCAmF@oFWzRomArO3aoyHHCYQy`8dAX7{+Wanq7$)1(|%L7ZDc5u<=DnR`-!u!Hv zLrDuoUDh!$wFuU9W#g53fP_npI-93`X6g}V#UzTU;Wt~041I%%l=2RHcX$&XYja7z zbTG9mV=0-GD1<0rj?WVyJsxX@d4=-FJ&*v5=;bmqMme9e?RlRm!B|7ylsznPw)rlJ zd}t9x>H|NN`m^yUyWfJ|<|Q*McKuz6aPY$B1gVop~`BLBP4Fer%gP!?S>*b;z^CGLZowCt}@(MYbv14i_NH zH6}ciOno+xRUwfbB{~s4N~S=fT$k~r-ZWX5T^Ie#Qk%xKhf*YmSS~yA=n% z0_zUQwmV>CcCM8M0gl@c18yhen(YU}m#6elC?>LcV%hMDc_E%QfTBqS(XRyed|rYzwN^My}6R>h$QX;xZzlJ z8oy6#{J7vF`WkOSrW}R42ENK_6{_ZrKsuIYg`%JUhgAbkGcRuf_0>Y!`czQcr|0ac zA)Rb*fp|ARUkGz9rj{G^lSS|B=QxGh?n_{V=(^y2BXQ%ct-;g0#;=;@k-g}gV?i$x zv&9SQe!;AEh0pOiD(SY*g3asgh;dkP3PI1lm=EkObK|RCf8ROZjU~`Dx)<&Ru!iYg z4mO&s-l>q|8nmd^xWcNL8(u7b)VKi%^bRKnAp4l)8t?xnVzLB=wbN{OX+L>CZ$3@r zCJB&vdGf7c5f=hSSqcec5XSi<$UfD$6$UfCuWj0|@KAb}JSFwokHpyPPsZVtm0EErUY+S-Z_ZB$ zhYT7iT&V6NmOl7=1w+no?FbIr<> z`R*_&rf6m^@=*VHS!VnMNKT7MXB5ZeZ9S6-s(x0f_qj=;xWdhRsgm}F-%?ztf?fW~ z)F?=r!hQil;WXUHcz^dTow0 zlW*7mu^6>QEaI1n(|e(oxBnG)3K^H-vINwPTwcjHQi1ajmi?k9*do3@hHdw8jZm$i zTP_ra>%kJn<}Q2^B_`VLr9Inwp8!8>Z)U_N1yt;NdJCnG=73&d2@Iui7**m53_B8i z?P*$5sQ}GR8rm-onb`g=ST)>s%y-;4EOL>jb+|XLd^Ci4P_~iYko10N=C!(h0=7}q zg%@$u#D;&D_2oBaCB8qH(E%J)50Zw1EVcy*3m59E2}M-*em?#Zd(G~sX*Vzs)`SY+ zbKfFydG%5MI$8_$GU*i?EMWrYPi0qvE3v<56(-kh+h*H75SO1wTx+#Y@qUcq(t_ZF zY!d_Flqo6vfcd?)5}%HTM?DojmH-FUq3TwG}*()okK)-3q6?z%rhVEpIzWW6WDaJwG^x{-2y)ZBEz7%t+D5(PrAgAllF@l{Xjx$j>NURlwd9s(68r?rZyT`^)++aeY{CPntc>^8>%VM3Z6Kcv z$T3#<8xMLQcTKi)P9f1SA9ZGwWQjru7MCxwwO`e;U480!%b4@4R`*oaKyS2x4h502 z6ekS<7<3>XhS2g552s7xbZ^!mD3gx!aL?UrZFQcwlR?ec|D#kJEeRA%rSzL~tjS4g z&TSycj!kN>r=~}d)VxlEUBd@E(|mgB;%Yt&>dS=B@V7jM1>1~SJkOC(sso1}CwGQ! z#ydfiIB<3Wgpn61DKx1qqOM~SA@;G0ZaD2XtJMdiSa_kYz=Mvp+8pql`WHK4_4;37 zR7$5T#_!E&Z$Cfjs8l>!xjCcsIJftAnIaUqzah>78?9V+duJx!#`_h=yiWtUcRPwC z`{MmADMLW;hnwzoP%nW(vo4cnqG8IVPKX;75aFHN?h3g@UF|!2*bc7Tti1*zw^ROBvw{R;@mjfpoXk)_Bd+1nwjPxdioJZI6F^ zmiFVw`p1|3fJPz&{(cWr8?cqe1Pr01wuY@w8nSq@Z(m<|NeFh!9APxNa|eH10+Kxr zFyx+m<_LJx)|7XX_U^-mpN+pDLE&!wK&*>dN+fY`)7F!eWAD=2vD0OhjZIaKcegi- z_X|taKdm@zOH0*FjELf=h*%;AOsf!GbA2qlG4nxj+(PTr>-p8y4^70+dlK2EMtC^x z_MD*?DA49pw*}8nU9qK~NOOOQ4CFhVG;m?fvjw+g>-XzrxkG7&2JGSvGP7)$YfkF6 zcRsgTm0uF3LZQ#?WB|LD6Y2t9;hII$(*X+NG6k!+xg46i3|fgRcMhEP#HHp~k>DBzT(+P7R3CQI9*|`01^T-Dv$rKQ`2nD=XS)~jhr%STo zN5Zh9BfMhNKCMV{8$SFo3tz;;sZu(XJ(A#(!B{?5apJ;CAilcta3j2lL?TJ0aX_dG za?LE_*Gw6$rW$%Oc(P)6B@OH)_Li6fA~VL;6={#{4#vYj@h(UG1cT-fed`!MT{|&T zze{%s7vzP)^s`4zD4l@CL(9-W^7Crdmc<;Yq^3wW0|EnigN) zX4r0Cg9Yf7V9qxnZewH-rf8;x=pogQ%v0$f*+=~2swgxYwsvA<4eyh^zM}6!`*<5i zZ+|eHaFw&QM%HO9y}nM(E{&P)V#Jw?2`uyA$dF#b?%mvk-45;@Qrx4*7=2UKa0wry zCsjJ_7U|3np;~JWPzXFl(!vSqNA#q-qfg+;D~Okj(N3&gkY&k6D&OK8Q)!HgBx!R$ z7YU#gY*O)JSX$$+&f~tK9~Q0ZI=YPqRb>-xE(lNFiun4H?pJ)(xafWjx;-Mz04)68 zhWlXeHRGo2HpDGOmHZ-`dk18dPUK@7VXxXqN82^qM$?ks#p{*7)o_tT00EcbL2ggZ zHh^PW^2=4RvOsI)W>-ao8j99P4`j<@*%bNxNQkju0MiYb^mb^E;uh|n^A&7%SpCN0 zvKc69lIPI17R4;AGft_UgC)Qj{zT_nJo?NsuI7um{Sk~eSUew4?gpwv(MR(RhanqK z%N$0@6dnD0&MPg_cR!&+hIawG5z@fy$dAlWeUfCp^=hBKfJEh-T_Iy|jvlij27h_e zPQ8Ha;aRam<0}%DW?Px8Md|*ywM|JWZ$910ZvsniTnK4hE$%ov|Rs=vgdICiSE#}jYAgmM(AduFQ#dLbQcvw0s|o8S`z z*sLM3D2hHT?i6}k*Sf#f^2_!L6phdpN|P092H` zuB2ymcF?k5)K^3V*TpX>%<+$4hTy^=tF9vLtq=Aot2!)GGI_>4Bph$5x6W>@r;n3R zdM>vQH1obOMO^S5nX)1#*hM{lF&gy=J4+_Aua;vM{DZXv6CWBTsLe3Wkf@sqa#|9J zdVxkNN!-l~@@1aI2ZQLzPxij4nLqNPRPi)P%vigh%Sub5)z;AweD3OsNQL;2Rf)H7 z54EXkV9d5u)B7|uYH?-!JP0}|N}o(U|Aox^Rmk{CDY#lLVTT5=0xxB#<%iBKQjUUv z8XyferBO=DWzsX5+rajvC9#fU?LAG|fhZ7<2Sy(8=NBbE&+P-7t*UULRX? zMvzKGC5FEb`bW)50Es8qksV0V!?ngR+Zb1wS^BpZeNraI|(1FFH z;sk+um-l~5w`iq!m z>}me^<;pTm)1{>q#3_V!|8H(A5C)!lBrUS`MXNe>{xiReU1d3`d~d8t8OSR6xqOs{m}{v4!HB?xCVor&h|RW$-mb|i;*Kp$d~6J50jqibqHJ&r;OLGwA}XIsyxg^{ZVi z>MdYFW6Ewm>-BI(%|<&;3+}B4ibq~Q+!+F!D+a$$=kjKFH^Aa1Xdf57=5R}KnSas% z59pJ;HBEq?_*L)C;(y$BOZj=6$UBD}(}t7OdJamk*FJxtJv*ZL!*!RWNRxWc(Hl~m zWn==Kg4OhiuGA|CS5`c7VWtPiBtkCV0He3X4=p1hR4GyQ@!#s+4m%1EWjI`JB?dCt z7%muF2}tOhm8auyF||$wDQyGsUITL%-fM~jR}=1lTq(L*^$Q$Rv2a@G@Axd(Q(SL8w=5eTV`M<@ z$^SSic6m*{;IsB}`tW>a&uu~KNOczh0RoBZVoq z*&6R&VrU^3qG`r9Mb@0rH(o!U6rw^QOFVejZB~%#6k{qiv5hr8-{u{&VNo%tK&H)Wg&GBMwJ)J>8S^<(~ z?M%rL2$*W2Y$>s#W>e$tr?_pk8wx`u`$D472SiGb=Q~oI^ya@!eUZ+D9YS2R2!YO* zwceD(yBa_W=E{|&3n$mYq|$WUm*BU;i+)Ynv%i6$nNJ4}9r%+#r4ymHEFbE0G6{C| z+iV5VfMe6!hUL=GbI->_v*(cW zVb}JnA|Rd8Fapwzl%z^243g3@w4{IxJs^m5NROm+cXzjfbTf1e-97A^=lS0E+k1QH zKOP6n+;GjhR{YL$F)2E3XOj<-A?Q*BC{H&2+VDodJog!zv0N?nX)YRh76TySPkK*J z;+_veB-SP1b9iwQEwZNm{R#3s_heR+V4V}SRsfv{NxFTq0D5fVP!!e22=4b|1ixKk zbLa9uLX&*^WK3|?WhF7wrH@M0%`kCBl`X|A-1h?nq99(fUfO;&cgK4nK`>b!1L3FH z!ug8@4o%=}kM344kX`FjBqgLwLOQi7rnsgI%L~wfGMEHj}beCQM*Zh;9c5QFGb9P08rZ@U{ z5JfwwY?waBe;fc+ODTj&G6UMR1L58-20%#P67Apv4QJ`RCGJhOS%DKA~Zlf9X7?w zgntnaTE0A2fZrse?-1Sl_pAAoX1?iyf_a*6+4mbx@UwDr3mK)ev(2ZgZOGZ#*~cAX z(u}?hrHG|}D%6LL1~P>v2)N_L2su?7cglH5-r>wUorGH(=r_JpX#1DtURg*r$)8+;{nZ~`0BM0kFAlueIc32 z6-MJy<58Fp4ltrb2NanvFmix_bE1551~Y!sozgc#Y{yltDWq$Z%V-kvnNpbyB=LNd zqwX5XakQDnakNuf8TYgD@uyFpkX9ak&(zQd9wWC@Gyj#V%kR#YlLXSb3rmGvZ zv2?hr>=&qD*Qak=TVNwKcGTLOi|R9zB}S3TQdgw42$w=#g7{o(Oq#SbH0@VEU67u< z=H&gU9_de+6ZEd=*qEdf8YNMVRFbIkPvf)J<885VBiJkvP1u3>BI+f}ARr)DuK}Yi z#rU=^^9XA0ll*8I@+UbgulI=}Pt3>7CyNNDKMKk3M&Zt`4{ zkqlX6U$mP9fW9*LEi5*B9)%z4BD_wx{v=<$qH}j9UW6UMZcoRQFRwO@4ugq9P-msN zj>F9tD?6pFGoTu!0Urx>3edgI9>iMeN$P-|LIdI@we+UL<5JY) zXT27yv!S52^7m9r5^xkxCi&tAAZs&kj$X>KU7zg)>Qq`Rr?@V* zhdk%#!2XyT-Hi+it3S~OG68d&v0WFjmK&7k*{PUn*H@d|!7Gjx4KdFY16mj{bdMDH z&-3nXCb#W%t;59|5M*Oms?cbzWTA0lyU%rRw%8to>!^@kzoV+KlJD0ja@zVd^!I59 zajb^~n*Q1A!&;(&w?UDWkBSFQXgm+=DaK)7C*{N6{<=38M!(O;Tr+id5$uRRFYfU& zKm6Zl%;2Pu>h^syv`fd^BrR&1;Db05&u`TnRi}O%UrS$oY_Ki)Zo}W_`!=|8oUIY> z6@t}||L>Sd!Em?v9(BVymcrmZZ5(La_U-YFvJFn(YQRpU<&ys8%h8CG$u)lhDk6Ky z`&*nQ6ym<%eyC@7a^v55?!E1EBSmj-I(*Ts7y1q;qjB}y#1%G!z=lZWfcim-tdzq< z+v3fgSaG6QLoG?al93ca!QWhmn|Kw(^vDa2w;%gYG-A_{zj~Ku>ps@VBxDai{tO*l zc%yl^EKc>%G4(%C4`mF`UCRz2`>K$79>Bf$ty*|_qorTi)iXoov+-M_u;rJF8Fy6O zsGz*XJXJiORzP(n+;n$7r(I+F%R^NE1zjykYV)9PmF62m<(b*4fdK`ti#viFDaGzT z?%R}<$oEl`WZZX_)pB06H|KFHp*$^Ju|AT%5}xOMbob!mhP>{|FHGV?ZN4&3vlC)h zU+`rBcWpyHi_JCle(`LX&3?pvrAE2^K^0XQrQTb_6H(3wcOU=a~~p$gz{^lHb)gNJa&w zW{((+$=Af4aM zK_ht#9gIR4;guuW%}==4Zd{+H(kzJ{cmnEuXG z9~nbPY@I=8)(>LSHvRyfc0_|mkKGy6ZUJ(hd5{^eD7C`S@s^iS%y)9^;>t$&Tu`>C z)XG{)*N6A?X7nI8fAfWcU@xs}vc7enMWyj#lRGkKY^6Jt8k2`m!rWM9LAw&~Z z@YVf$^s)1$Q}My?mtHG(YHFd!%?Qye$=yrDAZzuEs_tfx;*6GN02cuw`1o~eAGw@N z)W0Gd`03*=a?{q95(4&~Jv2L(%UR{GQ-bH&G=`m|KaZA-o<0dDBNe!AC|BlzpFP=| zdw&YRNFR+ZfDt|I>NS~{BG&>_EBA7OP6;Y$8A zZf~w-!K*bLWzo-U2$Veu2r4IcexfMrm&d#Ry>GsPHGpbv;h&g)oae9=P;wvvs-w%7HI- zN=O4c9kHIPMZf~?dIxoHp|39; zXq@j~>V(n)QjzqPsuiVwK3ky#&sH&21iG)USdW6yd|*VzFKA4}il1^!+a-F0x9{h^ zHaVh^3GUK*BUlssYmbam`x}Ae<)ev-iGh(ybvEc5-S}g+9iQlDL>dV9O^I6}*OKXc z(E&!uB$wUk;J>Xw4(i2fk zs@JFc-~T4nE?touYS7iLbdf~J-<nh&&q3C-xe$CFf)anOWp1Iv!xIa zpjwP%#;fYWdAGMaL$_?K#bC{^caZ2vMJyWQV?~%dr9QsRIAU_ch}d}AbG_4U7Q{(&aahcL`5VeXmc{YN4d<0BB4?( zyYtmJu6L_+vHNqi_pjdbCMh95|AbeUmjP5}n#m-2XIPVnqKoTAT z4bZ(ONeclX1MEcxm1ICQqb~^5K~;7)E}Vu{PccDWgsE2-mB^N_PEK)CGazyU=XBBQ zm+zD|hf?BT_vApzE}Q!?<#0SEvd}0-s$>Gx_Iec~EA0{+ETJrI#dX;ArEN@MpCnW1 zaWDvR%_C^CBGDmZNMnqhdTBu7^K67-=bgHpiOz7HJ^%Y@B4(v_hqLsVu@FpZl~WJ~ zKvg1K-f;pV;cOZV=2kCs-#3ptjM5x+o>@rP>F`bpw#))UTlG0?)FeR_$W(%k0#0RP z4GK$UJpN^MEAp%Y|@1+xo;eRBQk&OtsV{`WmiBn^+32vXSNl}{})V1a1 zMVH5s=sC>vX+8Rn+WK%JeoGe&A+9P*A35MxVa0M01A;he(x#x~sMc_R*Q+^bjKH)4 z5%>WCViowj6I}BK=7Bo5%Q6D!CaIn&dI|tW`2k5|G*n~YRZ7Lqbqb;ndFaWRN&{t1 zxyPAx{rJz;-&v}q#@D-G_%WJM=V>n}ly|$lA9-QKh=Pf6U`o_3Ui(~rT~C{CvckCr z{R91?+`hc199~TljLD-r!%Pa{tlx^uaS(o5=+A4w5@WWrTa{yGXSsqJHhkwmKWxF`j^NcBXcgVU{d%vb)PrNw}>eqY;0J1 z@>hA1@q-*5@EPmQO5KPl$9v{rQPCx$aP;l;RppCXrlC6yZ$QqQ5ACV5L3 z?Il8XP_y~w#F+QjCTpd`S_U>am)S`?Y-b=gOD06OT(cfR+! z#fpuK&y*kDpDy#3FjVo2s?$^e-!+%cah6JE0#9E_2IPOToEcMrLh*niA=-oB<D<;_R~AucAVDu}Eg~oN2}RKA9AIS0M{Q*ZLsx&>dGjfs5v(wB ze{08uNq2`1-?(F}Kx&&;9`MA(@pAEC1T-xfY&=spEvGXc;9>o#7(zi~^K$1|j3a5^ zR9;jo)TZvrNVP+AzPKsXn5Smr`d%i4cI2{0wEpI1BvMBCB)Ilfr-O4 z<&PhQxJB-Hkndw8+n(u`siJZvOSLCwWf!J%cy!aw^SCf)E&ly}TZd}EQVL*-9K%q) zl7m<1qSd$G2{zeC@}3DmR{yp=AK)vIb;pvjeMGhw%RyMp%dqu1`?buQ(S(it$Omx+ z1H&lM6nF4%=XP{*f3jGC4FUKpJ_gOFLk-sc7vIvQ1D9Gn58CroGsm&kx<02->;*sN z@(*TUj`I`6H=$<8amTVuJxqhq7v{Y<*m*4dIFNmEpz@cxgd>l+(+Q(8b8mro)VL{wN~ zHu9!n&N)Aj-t1lL5TLagrr!YGv7J1v~;}# zcyOSNjN!ac)pYbuZN_D~67bbYz1I6Xg7p*lVbb)ErhE1f_God@Fv~2CLiLZ*&CC;BpT2eZ(Mlvka{g z@i2XdW|=s5;PKgQ)?%F|p8wzRQl(Wa`W36|27#uEm$di+A_`A*gGR|Q3bum#p2c`i z8wJV!9FYP6lU@cs^R>?L^=EDaQ|-+hmpV+c5RyzevO@G9KhTk+s|yV-vXT1>6Wgt4 z*`62nNIbi4-)IUu;!IVOwLF7Hm(OE4;T16Y> zFaBxHc;A`g=Zt1e4nE&3bnr8^i^eZrM+>rsmY|I?18@GlIU($*{#{Y|z4JBLMwoGkr zO@rYl34iGc1i|tq5$+cf;}cf|`p8X9LXbgsclYJm*zn=HmQmp#!sh}_5_PHWb#^A4 zS6m!tbCv#7a3>yyk;0~76!Y!6ojks`oqi+O76oGMJf&|0df8G>J+u?tR zjPyCxNkonbOr*X4Un(*`N9V$L6cazZr8wW4{@-;}X?F!XnR}eGTlC9_s#hL1`RvPeJsGP2AN$|S|B=ry`RsUXb60m@g z#_|L)FGvvo2ztuQXqV7a#_)8ur_TF#L#t$XtBaEQTsH3NRGN(Mc6OTRa(0^709Caa z%G(e~+Dst|oT5Jp1*i0Xy%C0KDJGL?0V#--9YnLz0tTru-vww|1q~#v~Ch= z00(2yFe*TOaTu#G`AijGbp5)Od{QzAi(q(2=7Ri$&)gn^eXoL1LB?UUgM>+H^^c1# zA9js0@WC>1!c%|2@LNDQYwIGNK&oYH3eQ{&z@Z(2`ays80y~?JY}{(@ne~!}x1G{~ zR)Ao2_05;}9PxHSdR>xZ;_G^`zb};GqfQVy$INSZnMW8Jzi$5HuZr1}m9=`E+|&cO zf$}SJR+sS&ao46_`S~sxy9ZT_Cc=@W7u1(g$#TV=c;wVi%FfXF_LmrFkH2P$8#G5 z2rqh(*su4&ls{mNzT*FxkdV7*x;=|E^+LFIS@3syYV>A);kU0ne;vMD(M?Jp1ezZ{ z9|*KqYOUYS-O=aI!>>(f{XSp1__O#djQ%}vWLwX|-}XBPhG5lP!q@nEQ|1sRTfaB+kp_Clsu!=#k2CQGr1lf1dG+fJ9E!cDhpv?K#xnHq zeKeYhzGM)+nh37M?{R?|yZJi(Z29oPT4=r8gc=)Jlab)AsGVJGlZz;O*-~kF4uzoB zci@zt;QIpO8!~>`7&-B#Y+7h9!GJpMT&nO5qU9O zPdSWUw}Avc69R*trq&?U=oVP)8;kOR>ckB;1DsxfkkCCO{Zo9yus3bR3#DW6)Qf;s zGdHz}qgisi{gCW&k*59*q{@ID@a#=bM(z*h;-@6>A_JrbH}Y_CCMYKnJCIu_@vXb~ zp5^&;iXL11wjiL9(#P4Hmj{M{Pa_+b!7eShR04zqQl~F~3@jaE{Xkeha(hs0;r_SnQ zT7WR27@E20ur2TK=vpnKx#EF4i4IolrZP5&QpN`LDS{ojLwYmG{&VU@_;p5&_q{}l zSehU2ysbr3_~yv%fdMd9-@op^e1O(+T}qFCEu7}XD4Pi6mk{s63S-}#W7DLiU~O`) zyIZ?<@Gm{lR=y#O_ug!eT~x^8tp`5#R{w!V4oPI^zYRK&a05jOO-|Soxcqz&0Diok zrN4Nz{n~-c9Y2DHMq|}n(MZL%0sAq4GMv^e1y^qx5&-IoU`O$_Dxot;h>keQk z@*%{&x}O>!r*z4?+5Q8!gYsBJ%-i4~)<-e&^Z{q?drE8Y*=&w9Euz!|LH!Kxf{pgxtmv=%y8Xw1AwX}?l~;wtB*4oUUU3kjk%GSUvFC8 zSa8fJlph299YU9l%14Ta=kIP_>~*OAfs`9LorrTn5fjz|h<{+v3qkL5oD2r1CZ&6s z#$F(q7xm~aKj`dj{_{3U{>WnJxhDwKNgkT0{bF?1BL1I3lU1_o4>Yw{s;zoi(e1oQ zrS!F5r6!hIJ+C>(LHNvGT(67uKR+g==0M`u7wh?4s#9kg90ykCYU_A^vDG!{|DeN+ zk=~pS08eR}AKS6ds|jz{%rkG=AkpQ~yG2B#7(w~!khC4riF4fhntM0R=Y>r${p#t- zPv{1E1sUuLePB498Kakq`D$_dSNx?qLLHKG1lS-eCr7BFu^%p0eDh_)267?AthO~a z#N(+%qb2=o^!diA0nPhAvM}R)Az~}c6asZg%iqE17&#A;E}=;E*N5cvd0v^s$?+U% zQ;JL6dYCbG1mgJF!+V4_Y_jgH!a9!%k1HAE3XeV8#$EE%0$4Eo(@D5JN4GhWeV@_k7|%HCgq(b>IIe5NV` zrXkquN`fSbs0tAZnpIeIj2CeHF^KqPehDq36UN)#^upP3e`PFj!;zJO3RaU;8|W=d zJwqQIO7T5Cv1s!cO)3j(LEA`W0SLChDOOdD|A{(5YIySSjBkwK@NTGozh-cQPHA2` zi&~Mi^4sh3+C%4NRx4FTFg7(dMELoDt|`z)3>O`R5dQJ3s4?hh@?oKm;AM)?j^xFn zOjR@MxOo3sRc+-NN%d2}6hY+%nN5TTI4Nu=AicX$!K{v3(vg}^jp#!FMHdBNUt7^7 zsIWpRdS`|o_43??#2D;O$Dp8pz4S8ZFpCHERF`MI<^9*G`f^jbr4bJX25UMDW`z$7 zUE{DLUPx&)*9c>3V0tiX`6UjAuAX|Pa)y##Z=K<9*i&R^KpanL*Ra+-Ze*h*Au*Av z86f@~Ad2D7GiHl^*y_+9Dj5nee8>|={%0ANWB)Ocba)afxhqiJEJ@QHO<|A->$KId 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 From eaff36ef5fe29635b962e2c7b012d57a67605e5c Mon Sep 17 00:00:00 2001 From: Balazs Czoma Date: Mon, 24 Jul 2023 20:07:16 -0400 Subject: [PATCH 3/3] Doc updates after release. --- README.md | 63 ++------------------------- docs/PubSubPlusOpenShiftDeployment.md | 26 +++++------ 2 files changed, 16 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index 7f859e6..1365827 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ -[![Actions Status](https://github.com/Solace/pubsubplus-openshift-quickstart/workflows/build/badge.svg?branch=master)](https://github.com/SolaceProducts/pubsubplus-openshift-quickstart/actions?query=workflow%3Abuild+branch%3Amaster) - # Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform The Solace PubSub+ Event Broker Operator (Operator) is a Kubernetes-native method to install and manage the lifecycle of a PubSub+ Software Event Broker on any Kubernetes platform including OpenShift. @@ -10,7 +8,7 @@ This repository extends the [Solace PubSub+ Event Broker Operator on Kubernetes] Contents: - [Deploying a Solace PubSub+ Software Event Broker using Operator onto an OpenShift 4 Platform](#deploying-a-solace-pubsub-software-event-broker-using-operator-onto-an-openshift-4-platform) - - [Description of the Solace PubSub+ Software Event Broker](#solace-pubsub-software-event-broker) + - [Solace PubSub+ Software Event Broker](#solace-pubsub-software-event-broker) - [Overview](#overview) - [Step 1: Set Up OpenShift](#step-1-set-up-openshift) - [Step 2: Install the PubSub+ Event Broker Operator](#step-2-install-the-pubsub-event-broker-operator) @@ -40,62 +38,7 @@ There are [multiple ways](https://www.openshift.com/try ) to set up an OpenShift ## Step 2: Install the PubSub+ Event Broker Operator -The certified PubSub+ Event Broker Operator is available in OpenShift from the integrated OperatorHub. Follow [Adding Operators to a cluster](https://docs.openshift.com/container-platform/latest/operators/admin/olm-adding-operators-to-cluster.html) in the OpenShift documentation to locate and install the "PubSub+ Event Broker Operator". - -```bash -# BEGIN: For internal use only, DELETE when publishing -# Pre-requisite: Docker login into the private registry that hosts the Operator image -# Run: docker login ghcr.io/solacedev, test locally to ensure it works: docker pull ghcr.io/solacedev/pubsubplus-eventbroker-operator:test - -# Create CatalogSource. First need to create pullsecret -oc create secret generic regcred --from-file=.dockerconfigjson=${HOME}/.docker/config.json --type=kubernetes.io/dockerconfigjson -n openshift-marketplace -# Apply manifest - note the namespace "openshift-marketplace" -cat <Note: the Operator recognizes the OpenShift environment and adjusts the default deployment `spec` parameters for the event broker, including the use of certified RedHat images. For more information, refer to the [detailed documentation](docs/PubSubPlusOpenShiftDeployment.md#broker-spec-defaults-in-openshift) in this repo. diff --git a/docs/PubSubPlusOpenShiftDeployment.md b/docs/PubSubPlusOpenShiftDeployment.md index 550a1e2..5cc08ab 100644 --- a/docs/PubSubPlusOpenShiftDeployment.md +++ b/docs/PubSubPlusOpenShiftDeployment.md @@ -1,6 +1,6 @@ # Deploying a Solace PubSub+ Software Event Broker Onto an OpenShift 4 Platform Using Operator -This document provides platform-specific information for deploying the [Solace PubSub+ Software Event Broker](https://solace.com/products/event-broker/software/) on OpenShift, using the Solace PubSub+ Event Broker Operator (Operator). It complements and should be used together with the [Solace PubSub+ Event Broker Operator User Guide](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md), which has instructions for Kubernetes in general. +This document provides platform-specific information for deploying the [Solace PubSub+ Software Event Broker](https://solace.com/products/event-broker/software/) on OpenShift, using the Solace PubSub+ Event Broker Operator (Operator). It complements and should be used together with the [Solace PubSub+ Event Broker Operator User Guide](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/main/docs/EventBrokerOperatorUserGuide.md), which has instructions for Kubernetes in general. Contents: - [Deploying a Solace PubSub+ Software Event Broker Onto an OpenShift 4 Platform Using Operator](#deploying-a-solace-pubsub-software-event-broker-onto-an-openshift-4-platform-using-operator) @@ -9,20 +9,20 @@ Contents: - [Deploying a Production-Ready OpenShift Container Platform onto AWS](#deploying-a-production-ready-openshift-container-platform-onto-aws) - [Deleting the AWS OpenShift Container Platform Deployment](#deleting-the-aws-openshift-container-platform-deployment) - [Deploying CodeReady Containers for OpenShift](#deploying-codeready-containers-for-openshift) - - [Using a Private Image Registry for broker and Prometheus exporter images](#using-a-private-image-registry-for-broker-and-prometheus-exporter-images) + - [Using a Private Image Registry for Broker and Prometheus Exporter Images](#using-a-private-image-registry-for-broker-and-prometheus-exporter-images) - [Using AWS ECR with CodeReady Containers](#using-aws-ecr-with-codeready-containers) - - [Deployment considerations](#deployment-considerations) - - [Broker Spec defaults in OpenShift](#broker-spec-defaults-in-openshift) + - [Deployment Considerations](#deployment-considerations) + - [Broker Spec Defaults in OpenShift](#broker-spec-defaults-in-openshift) - [Accessing Broker Services](#accessing-broker-services) - [Routes](#routes) - - [HTTP, no TLS](#http-no-tls) - - [HTTPS with TLS terminate at ingress](#https-with-tls-terminate-at-ingress) - - [HTTPS with TLS re-encrypt at ingress](#https-with-tls-re-encrypt-at-ingress) - - [General TCP over TLS with passthrough to broker](#general-tcp-over-tls-with-passthrough-to-broker) + - [HTTP With No TLS](#http-with-no-tls) + - [HTTPS With TLS (Terminate at Ingress)](#https-with-tls-terminate-at-ingress) + - [HTTPS with TLS (Re-encrypt at Ingress)](#https-with-tls-re-encrypt-at-ingress) + - [General TCP over TLS with Passthrough to Broker](#general-tcp-over-tls-with-passthrough-to-broker) - [Security Considerations](#security-considerations) - [Helm-based Deployment](#helm-based-deployment) - [Exposing Metrics to Prometheus](#exposing-metrics-to-prometheus) - - [Broker Deployment in OpenShift using the Operator](#broker-deployment-in-openshift-using-the-operator) + - [Broker Deployment in OpenShift Using the Operator](#broker-deployment-in-openshift-using-the-operator) - [Quick Start](#quick-start) - [Additional Resources](#additional-resources) - [Appendix: Using NFS for Persistent Storage](#appendix-using-nfs-for-persistent-storage) @@ -143,7 +143,7 @@ However, if you need to use a private image registry, such as AWS ECR, you must ``` 4. Use the pull secret you just created (``) in the broker deployment manifest. -For additional information, see the [Using private registries](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#using-a-private-registry) section of the *Solace PubSub+ Event Broker Operator User Guide*. +For additional information, see the [Using private registries](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/main/docs/EventBrokerOperatorUserGuide.md#using-a-private-registry) section of the *Solace PubSub+ Event Broker Operator User Guide*. #### Using AWS ECR with CodeReady Containers If you are using CodeReady Containers, you might need to perform a workaround if the ECR login fails on the console (e.g., on Windows). In this case, do the following: @@ -162,7 +162,7 @@ If you are using CodeReady Containers, you might need to perform a workaround if ## Deployment Considerations -Consult the [Deployment Planning](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#deployment-planning) section of the general *Solace PubSub+ Event Broker Operator User Guide* when planning your deployment. +Consult the [Deployment Planning](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/main/docs/EventBrokerOperatorUserGuide.md#deployment-planning) section of the general *Solace PubSub+ Event Broker Operator User Guide* when planning your deployment. The following sections apply only to the OpenShift platform. @@ -183,7 +183,7 @@ Although `runAsUser` cannot be configured using a broker spec parameter, the Ope ### Accessing Broker Services -The principles for exposing services that are described in the [Solace PubSub+ Event Broker Operator User Guide](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#accessing-broker-services) also apply here: +The principles for exposing services that are described in the [Solace PubSub+ Event Broker Operator User Guide](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/main/docs/EventBrokerOperatorUserGuide.md#accessing-broker-services) also apply here: * LoadBalancer is the default service type and can be used to externally expose all broker services. This is an option for OpenShift as well and will not be further discussed here. * Ingress and its equivalent, OpenShift Routes, can be used to expose specific services. @@ -270,7 +270,7 @@ OpenShift ships with an integrated customized Prometheus deployment, with the fo Monitoring must be enabled for user-defined projects by [creating a `user-workload-monitoring-config` ConfigMap object](https://docs.openshift.com/container-platform/latest/monitoring/enabling-monitoring-for-user-defined-projects.html) in the `openshift-user-workload-monitoring` project. -After this, the only step required to [connect the broker metrics with Prometheus](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#connecting-with-prometheus) is to [create a ServiceMonitor object](https://github.com/SolaceDev/pubsubplus-kubernetes-operator/blob/v1.0.0/docs/EventBrokerOperatorUserGuide.md#creating-a-servicemonitor-object) in the project where the broker has been deployed. +After this, the only step required to [connect the broker metrics with Prometheus](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/main/docs/EventBrokerOperatorUserGuide.md#connecting-with-prometheus) is to [create a ServiceMonitor object](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/main/docs/EventBrokerOperatorUserGuide.md#creating-a-servicemonitor-object) in the project where the broker has been deployed. Check the OpenShift admin console in "Administrator" view to verify that the monitoring endpoint for the event broker deployment has been connected to Prometheus: