From 0139db91bf81660af3de62e4a5ba35cd0fb32263 Mon Sep 17 00:00:00 2001 From: Chris Butler Date: Thu, 3 Oct 2024 15:10:30 +1000 Subject: [PATCH 1/5] feat: drop in initial content Signed-off-by: Chris Butler --- content/patterns/coco-pattern/_index.adoc | 34 +++++ .../coco-pattern/coco-cluster-sizing.adoc | 26 ++++ .../coco-pattern/coco-demo-script.adoc | 121 ++++++++++++++++++ .../coco-pattern/coco-getting-started.adoc | 24 ++++ .../coco-ideas-for-customization.adoc | 15 +++ .../coco-pattern/coco-imperative-actions.adoc | 12 ++ .../coco-pattern/coco-managed-cluster.adoc | 29 +++++ 7 files changed, 261 insertions(+) create mode 100644 content/patterns/coco-pattern/_index.adoc create mode 100644 content/patterns/coco-pattern/coco-cluster-sizing.adoc create mode 100644 content/patterns/coco-pattern/coco-demo-script.adoc create mode 100644 content/patterns/coco-pattern/coco-getting-started.adoc create mode 100644 content/patterns/coco-pattern/coco-ideas-for-customization.adoc create mode 100644 content/patterns/coco-pattern/coco-imperative-actions.adoc create mode 100644 content/patterns/coco-pattern/coco-managed-cluster.adoc diff --git a/content/patterns/coco-pattern/_index.adoc b/content/patterns/coco-pattern/_index.adoc new file mode 100644 index 000000000..8d6de609b --- /dev/null +++ b/content/patterns/coco-pattern/_index.adoc @@ -0,0 +1,34 @@ +--- +title: Confidential Containers pattern +date: 2024-10-03 +tier: sandbox +summary: This pattern helps you get started with deploying confidential containers in OpenShift Container Platform +rh_products: +- Red Hat OpenShift Container Platform +- Red Hat Advanced Cluster Management +- Red Hat OpenShift Sandbox Containers +industries: +- General +aliases: /coco-pattern/ +pattern_logo: multicloud-gitops.png +links: + install: coco-getting-started + help: https://groups.google.com/g/validatedpatterns + bugs: https://github.com/validatedpatterns/coco-pattern/issues + repo: https://github.com/validatedpatterns/coco-pattern + +--- +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +include::modules/mcg-about-multicloud-gitops.adoc[leveloffset=+1] + +include::modules/mcg-architecture.adoc[leveloffset=+1] + +[id="next-steps_mcg-index"] +== Next steps + +* link:mcg-getting-started[Deploy the management hub] using Helm. +* Add a managed cluster to link:mcg-managed-cluster[deploy the managed cluster piece using ACM]. diff --git a/content/patterns/coco-pattern/coco-cluster-sizing.adoc b/content/patterns/coco-pattern/coco-cluster-sizing.adoc new file mode 100644 index 000000000..8a8743652 --- /dev/null +++ b/content/patterns/coco-pattern/coco-cluster-sizing.adoc @@ -0,0 +1,26 @@ +--- +title: Cluster sizing +weight: 30 +aliases: /multicloud-gitops/mcg-cluster-sizing/ +--- + +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +include::modules/mcg-about-cluster-sizing.adoc[leveloffset=+1] + +//include::modules/mcg-support-matrix.adoc[leveloffset=+1] + +include::modules/mcg-hub-cluster-sizing.adoc[leveloffset=+2] + +// This is what we might probably need - need to discuss this with the team +include::modules/mcg-managed-cluster-sizing.adoc[leveloffset=+2] + + +//include::modules/mcg-aws-instance-types.adoc[leveloffset=+1] + +//include::modules/mcg-azure-instance-types.adoc[leveloffset=+1] + +//include::modules/mcg-gcp-instance-types.adoc[leveloffset=+1] diff --git a/content/patterns/coco-pattern/coco-demo-script.adoc b/content/patterns/coco-pattern/coco-demo-script.adoc new file mode 100644 index 000000000..292592d42 --- /dev/null +++ b/content/patterns/coco-pattern/coco-demo-script.adoc @@ -0,0 +1,121 @@ +--- +title: Demo Script +weight: 60 +aliases: /multicloud-gitops/demo/ +--- + +include::modules/comm-attributes.adoc[] +:toc: +:imagesdir: /images +:_content-type: REFERENCE + +[id="demo-intro"] + +== Introduction +The multicloud gitops pattern is designed to be an entrypoint into the Validated Patterns framework. For more information on Validated Patterns visit our link:/[documentation site] + +[id="demo-objectives"] + +== Objectives + +In this demo you will complete the following: + +* Prepare your local workstation +* Deploy the pattern +* Extend the pattern with a small tweak + +[id="getting-started"] + +== Getting Started + +* Make sure you have met all the link:/learn/quickstart/#installation_prerequisites[installation prerequisites] +* Follow the link:../mcg-getting-started[Getting Started Guide] to ensure that you have met all of the prerequisites + +[NOTE] +==== +This demo begins after `./pattern.sh make install` has been executed +==== + +[id="demo"] + +== Demo + +Now that we have deployed the pattern onto our cluster, with `origin` pointing to your fork and using `my-branch` as the name of the used branch, we can begin to discover what has happened. +You should be able to click on the nine-box and see the following entries: + +image:multicloud-gitops/nine-box.png[] + +If you now click on the "Hub ArgoCD" menu entry you will be taken to the ArgoCD instance with all the applications. + +image:multicloud-gitops/hub-argocd.png[] + + + +[id="secrets"] + +=== Secrets loading + +By default in the MultiCloud GitOps pattern the secrets get loaded automatically via an out of band process inside the vault running in the OCP cluster. This means that running `./pattern.sh make install` will also call the `load-secrets` makefile target. +This `load-secrets` target will look for a yaml file describing the secrets to be loaded into vault and in case it cannot find one it will use the `values-secret.yaml.template` file in the git repo to try and generate random secrets. + +Let's copy the template to our home folder and reload the secrets: +[source,terminal] +cp ./values-secret.yaml.template ~/values-secret-multicloud-gitops.yaml +./pattern.sh make load-secrets + + +At this point if the `config-demo` application was not green already it should become green in the ArgoCD user interface. + + +[id="verify"] + +=== Verify the test web pages + +If you now click on the `Routes` in the `Networking` menu entry you will see the following network routes: + +image:multicloud-gitops/network-routes.png[] + +Clicking on the `hello-world` application should show a small demo app that prints "Hello World!": + +image:multicloud-gitops/hello-world.png[] + +Once the secrets are loaded correctly inside the vault, clicking on the `config-demo` route should display a small application where said secret is shown: + +image:multicloud-gitops/config-demo.png[] + +=== Make a small change to the test web pages + +Now we can try and tweak the hello-world application and add the below line in +the `charts/all/hello-world/templates/hello-world-cm.yaml` file: +[source,patch] +diff --git a/charts/all/hello-world/templates/hello-world-cm.yaml b/charts/all/hello-world/templates/hello-world-cm.yaml +index e59561ca..bd416bc6 100644 +--- a/charts/all/hello-world/templates/hello-world-cm.yaml ++++ b/charts/all/hello-world/templates/hello-world-cm.yaml +@@ -14,6 +14,7 @@ data: + + +

Hello World!

++

This is a patched version via git

+
+

+ Hub Cluster domain is '{{ .Values.global.hubClusterDomain }}'
+ + +Once we commit the above change via `git commit -a -m "test a change"` and run +`git push origin my-branch` we will be able to observe argo applying the above +change: + +image:multicloud-gitops/config-demo-patched.png[] + +[id="summary"] + +== Summary + +You did it! You have completed the deployment of the MultiCloud GitOps pattern +and you made a small local change and applied it via GitOps! Hopefully you are +getting ideas of how you can take advantage of our GitOps framework to deploy +and manage your applications. + +For more information on Validated Patterns visit our +link:https://validatedpatterns.io/[website] diff --git a/content/patterns/coco-pattern/coco-getting-started.adoc b/content/patterns/coco-pattern/coco-getting-started.adoc new file mode 100644 index 000000000..b8fb73ac0 --- /dev/null +++ b/content/patterns/coco-pattern/coco-getting-started.adoc @@ -0,0 +1,24 @@ +--- +title: Getting started +weight: 10 +aliases: /multicloud-gitops/mcg-getting-started/ +--- + +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +include::modules/mcg-deploying-mcg-pattern.adoc[leveloffset=1] + +[id="next-steps_mcg-getting-started"] +== Next steps + +After the management hub is set up and works correctly, attach one or more managed clusters to the architecture. + +For instructions on deploying the edge, refer to link:../mcg-managed-cluster/[Attach a managed cluster (edge) to the management hub]. + +//For instructions on deploying the edge, refer to xref:/multicloud-gitops/mcg-managed-cluster.adoc#attach-managed-cluster[Attach a managed cluster (edge) to the management hub]. + + + diff --git a/content/patterns/coco-pattern/coco-ideas-for-customization.adoc b/content/patterns/coco-pattern/coco-ideas-for-customization.adoc new file mode 100644 index 000000000..e37eac56e --- /dev/null +++ b/content/patterns/coco-pattern/coco-ideas-for-customization.adoc @@ -0,0 +1,15 @@ +--- +title: Ideas for customization +weight: 60 +aliases: /multicloud-gitops/mcg-ideas-for-customization/ +--- + +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +//leaving this here on purpose to test H1 headings in assemblies and it's impact of TOC += Ideas for customization + +include::modules/mcg-about-customizing-pattern.adoc[leveloffset=+1] \ No newline at end of file diff --git a/content/patterns/coco-pattern/coco-imperative-actions.adoc b/content/patterns/coco-pattern/coco-imperative-actions.adoc new file mode 100644 index 000000000..09307a6e7 --- /dev/null +++ b/content/patterns/coco-pattern/coco-imperative-actions.adoc @@ -0,0 +1,12 @@ +--- +title: Imperative actions +weight: 40 +aliases: /multicloud-gitops/mcg-imperative-actions/ +--- + +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +include::modules/mcg-using-imperative-actions.adoc[leveloffset=+1] \ No newline at end of file diff --git a/content/patterns/coco-pattern/coco-managed-cluster.adoc b/content/patterns/coco-pattern/coco-managed-cluster.adoc new file mode 100644 index 000000000..4128edce3 --- /dev/null +++ b/content/patterns/coco-pattern/coco-managed-cluster.adoc @@ -0,0 +1,29 @@ +--- +title: Managed cluster sites +weight: 20 +aliases: /multicloud-gitops/mcg-managed-cluster/ +--- + +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +//leaving this here on purpose to test H1 headings (with ID) in assemblies and it's impact of TOC +[id="attach-managed-cluster"] += Attach a managed cluster (edge) to the management hub + +include::modules/mcg-understanding-rhacm-requirements.adoc[leveloffset=+1] + +include::modules/mcg-deploying-managed-cluster-using-rhacm.adoc[leveloffset=+1] + +include::modules/comm-deploying-managed-cluster-using-cm-cli-tool.adoc[leveloffset=+1] + +include::modules/comm-deploying-managed-cluster-using-clusteradm-tool.adoc[leveloffset=+1] + +include::modules/comm-designate-cluster-as-managed-cluster-site.adoc[leveloffset=+2] + + +== Verification + +Go to your managed cluster (edge) OpenShift console and check for the `open-cluster-management-agent` pod being launched. It might take a while for the RHACM agent and `agent-addons` to launch. After that, the OpenShift GitOps Operator is installed. On successful installation, launch the OpenShift GitOps (ArgoCD) console from the top right of the OpenShift console. From 339ac5b53974885b04e98dbf789a00b357267b9b Mon Sep 17 00:00:00 2001 From: Chris Butler Date: Mon, 7 Oct 2024 16:41:44 +1100 Subject: [PATCH 2/5] fix: Azure requirements Signed-off-by: Chris Butler --- Makefile | 16 ++- content/patterns/coco-pattern/_index.adoc | 44 ++++++- .../coco-pattern/coco-cluster-sizing.adoc | 26 ---- .../coco-pattern/coco-demo-script.adoc | 121 ------------------ .../coco-pattern/coco-getting-started.adoc | 24 ---- .../coco-ideas-for-customization.adoc | 15 --- .../coco-pattern/coco-imperative-actions.adoc | 12 -- .../coco-pattern/coco-managed-cluster.adoc | 29 ----- .../coco-pattern-azure-requirements.adoc | 70 ++++++++++ .../coco-pattern-getting-started.adoc | 17 +++ static/images/coco-pattern/peer_pods.png | Bin 0 -> 63513 bytes static/images/logos/coco-logo.png | Bin 0 -> 13053 bytes 12 files changed, 138 insertions(+), 236 deletions(-) delete mode 100644 content/patterns/coco-pattern/coco-cluster-sizing.adoc delete mode 100644 content/patterns/coco-pattern/coco-demo-script.adoc delete mode 100644 content/patterns/coco-pattern/coco-getting-started.adoc delete mode 100644 content/patterns/coco-pattern/coco-ideas-for-customization.adoc delete mode 100644 content/patterns/coco-pattern/coco-imperative-actions.adoc delete mode 100644 content/patterns/coco-pattern/coco-managed-cluster.adoc create mode 100644 content/patterns/coco-pattern/coco-pattern-azure-requirements.adoc create mode 100644 content/patterns/coco-pattern/coco-pattern-getting-started.adoc create mode 100644 static/images/coco-pattern/peer_pods.png create mode 100644 static/images/logos/coco-logo.png diff --git a/Makefile b/Makefile index b077dd838..8393bb3fd 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,23 @@ HOMEPAGE_CONTAINER ?= quay.io/hybridcloudpatterns/homepage-container:latest +UNAME=$(shell uname -s) -PODMAN_OPTS ?= -it --security-opt label=disable --pull=newer --net=host - +# Can't use host networks on MacOS as it's a VM anyway. +# Also because of the proxy 127.0.0.1 doesn't work as a bind address. +ifeq ($(UNAME), Darwin) + PODMAN_OPTS ?= -it --security-opt label=disable --pull=newer -p 4000:4000 + HUGO_SERVER_OPTS = --bind 0.0.0.0 +else + PODMAN_OPTS ?= -it --security-opt label=disable --pull=newer --net=host +endif # Do not use selinux labeling when we are using nfs FSTYPE=$(shell df -Th . | grep -v Type | awk '{ print $$2 }') + ifeq ($(FSTYPE), nfs) ATTRS = "rw" else ifeq ($(FSTYPE), nfs4) ATTRS = "rw" +else ifeq ($(UNAME), Darwin) + ATTRS = "rw" else ATTRS = "rw,z" endif @@ -30,7 +40,7 @@ build: ## Build the website locally in the public/ folder .PHONY: serve serve: ## Build the website locally from a container and serve it @echo "Serving via container. Browse to http://localhost:4000" - podman run $(PODMAN_OPTS) -v $(PWD):/site:$(ATTRS) --entrypoint hugo $(HOMEPAGE_CONTAINER) server -p 4000 + podman run $(PODMAN_OPTS) -v $(PWD):/site:$(ATTRS) --entrypoint hugo $(HOMEPAGE_CONTAINER) server -p 4000 $(HUGO_SERVER_OPTS) .PHONY: htmltest htmltest: build ## Runs htmltest against the site to find broken links diff --git a/content/patterns/coco-pattern/_index.adoc b/content/patterns/coco-pattern/_index.adoc index 8d6de609b..97d628612 100644 --- a/content/patterns/coco-pattern/_index.adoc +++ b/content/patterns/coco-pattern/_index.adoc @@ -2,7 +2,7 @@ title: Confidential Containers pattern date: 2024-10-03 tier: sandbox -summary: This pattern helps you get started with deploying confidential containers in OpenShift Container Platform +summary: This pattern helps you get started with deploying confidential containers in OpenShift Container Platform. rh_products: - Red Hat OpenShift Container Platform - Red Hat Advanced Cluster Management @@ -10,22 +10,54 @@ rh_products: industries: - General aliases: /coco-pattern/ -pattern_logo: multicloud-gitops.png +pattern_logo: coco-logo.png links: install: coco-getting-started help: https://groups.google.com/g/validatedpatterns bugs: https://github.com/validatedpatterns/coco-pattern/issues - repo: https://github.com/validatedpatterns/coco-pattern - --- :toc: :imagesdir: /images :_content-type: ASSEMBLY include::modules/comm-attributes.adoc[] -include::modules/mcg-about-multicloud-gitops.adoc[leveloffset=+1] += About coco-pattern + +Confidential computing is a technology for securing data in use. It uses a https://en.wikipedia.org/wiki/Trusted_execution_environment[Trusted Execution Environment] provided within the hardware of the processor to prevent access from others who have access to the system. +https://confidentialcontainers.org/[Confidential containers] is a project to standardize the consumption of confidential computing by making the security boundary for confidential computing to be a Kubernetes pod. [Kata containers](https://katacontainers.io/) is used to establish the boundary via a shim VM. + +This pattern uses https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.7/html/user_guide/deploying-on-azure#deploying-cc_azure-cc[Red Hat OpenShift Sandbox Containers] to deploy and configure confidential containers on Microsoft Azure. + +It deploys three copies of 'Hello OpenShift' to demonstrate some of the security boundaries that enforced with confidential containers. + +== Requirements + +- An an azure account with the link:./coco-pattern-azure-requirements/[required access rights] + + +== Security considerations + +**This pattern is a demonstration only and contains configuration that is not best practice** + +- The default configuration deploys everything in a single cluster for testing purposes. The https://www.ietf.org/archive/id/draft-ietf-rats-architecture-22.html[RATS] architecture mandates that the Key Broker Service (e.g. https://github.com/confidential-containers/trustee[Trustee]) is in a trusted security zone. +- The https://github.com/confidential-containers/trustee/tree/main/attestation-service[Attestation Service] has wide open security policies. + +== Future work + +* Deploying the environment the 'Trusted' environment including the KBS on a separate cluster to the secured workloads +* Deploying to alternative environments supporting confidential computing including bare metal x86 clusters; IBM Cloud; IBM Z +* Finishing the sample AI application + +== Architecture + +=== Single Cluster + + +=== Multi-cluster architecture + +Work in progress + -include::modules/mcg-architecture.adoc[leveloffset=+1] [id="next-steps_mcg-index"] == Next steps diff --git a/content/patterns/coco-pattern/coco-cluster-sizing.adoc b/content/patterns/coco-pattern/coco-cluster-sizing.adoc deleted file mode 100644 index 8a8743652..000000000 --- a/content/patterns/coco-pattern/coco-cluster-sizing.adoc +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Cluster sizing -weight: 30 -aliases: /multicloud-gitops/mcg-cluster-sizing/ ---- - -:toc: -:imagesdir: /images -:_content-type: ASSEMBLY -include::modules/comm-attributes.adoc[] - -include::modules/mcg-about-cluster-sizing.adoc[leveloffset=+1] - -//include::modules/mcg-support-matrix.adoc[leveloffset=+1] - -include::modules/mcg-hub-cluster-sizing.adoc[leveloffset=+2] - -// This is what we might probably need - need to discuss this with the team -include::modules/mcg-managed-cluster-sizing.adoc[leveloffset=+2] - - -//include::modules/mcg-aws-instance-types.adoc[leveloffset=+1] - -//include::modules/mcg-azure-instance-types.adoc[leveloffset=+1] - -//include::modules/mcg-gcp-instance-types.adoc[leveloffset=+1] diff --git a/content/patterns/coco-pattern/coco-demo-script.adoc b/content/patterns/coco-pattern/coco-demo-script.adoc deleted file mode 100644 index 292592d42..000000000 --- a/content/patterns/coco-pattern/coco-demo-script.adoc +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Demo Script -weight: 60 -aliases: /multicloud-gitops/demo/ ---- - -include::modules/comm-attributes.adoc[] -:toc: -:imagesdir: /images -:_content-type: REFERENCE - -[id="demo-intro"] - -== Introduction -The multicloud gitops pattern is designed to be an entrypoint into the Validated Patterns framework. For more information on Validated Patterns visit our link:/[documentation site] - -[id="demo-objectives"] - -== Objectives - -In this demo you will complete the following: - -* Prepare your local workstation -* Deploy the pattern -* Extend the pattern with a small tweak - -[id="getting-started"] - -== Getting Started - -* Make sure you have met all the link:/learn/quickstart/#installation_prerequisites[installation prerequisites] -* Follow the link:../mcg-getting-started[Getting Started Guide] to ensure that you have met all of the prerequisites - -[NOTE] -==== -This demo begins after `./pattern.sh make install` has been executed -==== - -[id="demo"] - -== Demo - -Now that we have deployed the pattern onto our cluster, with `origin` pointing to your fork and using `my-branch` as the name of the used branch, we can begin to discover what has happened. -You should be able to click on the nine-box and see the following entries: - -image:multicloud-gitops/nine-box.png[] - -If you now click on the "Hub ArgoCD" menu entry you will be taken to the ArgoCD instance with all the applications. - -image:multicloud-gitops/hub-argocd.png[] - - - -[id="secrets"] - -=== Secrets loading - -By default in the MultiCloud GitOps pattern the secrets get loaded automatically via an out of band process inside the vault running in the OCP cluster. This means that running `./pattern.sh make install` will also call the `load-secrets` makefile target. -This `load-secrets` target will look for a yaml file describing the secrets to be loaded into vault and in case it cannot find one it will use the `values-secret.yaml.template` file in the git repo to try and generate random secrets. - -Let's copy the template to our home folder and reload the secrets: -[source,terminal] -cp ./values-secret.yaml.template ~/values-secret-multicloud-gitops.yaml -./pattern.sh make load-secrets - - -At this point if the `config-demo` application was not green already it should become green in the ArgoCD user interface. - - -[id="verify"] - -=== Verify the test web pages - -If you now click on the `Routes` in the `Networking` menu entry you will see the following network routes: - -image:multicloud-gitops/network-routes.png[] - -Clicking on the `hello-world` application should show a small demo app that prints "Hello World!": - -image:multicloud-gitops/hello-world.png[] - -Once the secrets are loaded correctly inside the vault, clicking on the `config-demo` route should display a small application where said secret is shown: - -image:multicloud-gitops/config-demo.png[] - -=== Make a small change to the test web pages - -Now we can try and tweak the hello-world application and add the below line in -the `charts/all/hello-world/templates/hello-world-cm.yaml` file: -[source,patch] -diff --git a/charts/all/hello-world/templates/hello-world-cm.yaml b/charts/all/hello-world/templates/hello-world-cm.yaml -index e59561ca..bd416bc6 100644 ---- a/charts/all/hello-world/templates/hello-world-cm.yaml -+++ b/charts/all/hello-world/templates/hello-world-cm.yaml -@@ -14,6 +14,7 @@ data: - - -

Hello World!

-+

This is a patched version via git

-
-

- Hub Cluster domain is '{{ .Values.global.hubClusterDomain }}'
- - -Once we commit the above change via `git commit -a -m "test a change"` and run -`git push origin my-branch` we will be able to observe argo applying the above -change: - -image:multicloud-gitops/config-demo-patched.png[] - -[id="summary"] - -== Summary - -You did it! You have completed the deployment of the MultiCloud GitOps pattern -and you made a small local change and applied it via GitOps! Hopefully you are -getting ideas of how you can take advantage of our GitOps framework to deploy -and manage your applications. - -For more information on Validated Patterns visit our -link:https://validatedpatterns.io/[website] diff --git a/content/patterns/coco-pattern/coco-getting-started.adoc b/content/patterns/coco-pattern/coco-getting-started.adoc deleted file mode 100644 index b8fb73ac0..000000000 --- a/content/patterns/coco-pattern/coco-getting-started.adoc +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Getting started -weight: 10 -aliases: /multicloud-gitops/mcg-getting-started/ ---- - -:toc: -:imagesdir: /images -:_content-type: ASSEMBLY -include::modules/comm-attributes.adoc[] - -include::modules/mcg-deploying-mcg-pattern.adoc[leveloffset=1] - -[id="next-steps_mcg-getting-started"] -== Next steps - -After the management hub is set up and works correctly, attach one or more managed clusters to the architecture. - -For instructions on deploying the edge, refer to link:../mcg-managed-cluster/[Attach a managed cluster (edge) to the management hub]. - -//For instructions on deploying the edge, refer to xref:/multicloud-gitops/mcg-managed-cluster.adoc#attach-managed-cluster[Attach a managed cluster (edge) to the management hub]. - - - diff --git a/content/patterns/coco-pattern/coco-ideas-for-customization.adoc b/content/patterns/coco-pattern/coco-ideas-for-customization.adoc deleted file mode 100644 index e37eac56e..000000000 --- a/content/patterns/coco-pattern/coco-ideas-for-customization.adoc +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Ideas for customization -weight: 60 -aliases: /multicloud-gitops/mcg-ideas-for-customization/ ---- - -:toc: -:imagesdir: /images -:_content-type: ASSEMBLY -include::modules/comm-attributes.adoc[] - -//leaving this here on purpose to test H1 headings in assemblies and it's impact of TOC -= Ideas for customization - -include::modules/mcg-about-customizing-pattern.adoc[leveloffset=+1] \ No newline at end of file diff --git a/content/patterns/coco-pattern/coco-imperative-actions.adoc b/content/patterns/coco-pattern/coco-imperative-actions.adoc deleted file mode 100644 index 09307a6e7..000000000 --- a/content/patterns/coco-pattern/coco-imperative-actions.adoc +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Imperative actions -weight: 40 -aliases: /multicloud-gitops/mcg-imperative-actions/ ---- - -:toc: -:imagesdir: /images -:_content-type: ASSEMBLY -include::modules/comm-attributes.adoc[] - -include::modules/mcg-using-imperative-actions.adoc[leveloffset=+1] \ No newline at end of file diff --git a/content/patterns/coco-pattern/coco-managed-cluster.adoc b/content/patterns/coco-pattern/coco-managed-cluster.adoc deleted file mode 100644 index 4128edce3..000000000 --- a/content/patterns/coco-pattern/coco-managed-cluster.adoc +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Managed cluster sites -weight: 20 -aliases: /multicloud-gitops/mcg-managed-cluster/ ---- - -:toc: -:imagesdir: /images -:_content-type: ASSEMBLY -include::modules/comm-attributes.adoc[] - -//leaving this here on purpose to test H1 headings (with ID) in assemblies and it's impact of TOC -[id="attach-managed-cluster"] -= Attach a managed cluster (edge) to the management hub - -include::modules/mcg-understanding-rhacm-requirements.adoc[leveloffset=+1] - -include::modules/mcg-deploying-managed-cluster-using-rhacm.adoc[leveloffset=+1] - -include::modules/comm-deploying-managed-cluster-using-cm-cli-tool.adoc[leveloffset=+1] - -include::modules/comm-deploying-managed-cluster-using-clusteradm-tool.adoc[leveloffset=+1] - -include::modules/comm-designate-cluster-as-managed-cluster-site.adoc[leveloffset=+2] - - -== Verification - -Go to your managed cluster (edge) OpenShift console and check for the `open-cluster-management-agent` pod being launched. It might take a while for the RHACM agent and `agent-addons` to launch. After that, the OpenShift GitOps Operator is installed. On successful installation, launch the OpenShift GitOps (ArgoCD) console from the top right of the OpenShift console. diff --git a/content/patterns/coco-pattern/coco-pattern-azure-requirements.adoc b/content/patterns/coco-pattern/coco-pattern-azure-requirements.adoc new file mode 100644 index 000000000..4f2813a5c --- /dev/null +++ b/content/patterns/coco-pattern/coco-pattern-azure-requirements.adoc @@ -0,0 +1,70 @@ +--- +title: Azure requirements +weight: 10 +aliases: /coco-pattern/coco-pattern-azure-requirements/ +--- + +:toc: +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +:imagesdir: ../../../images += Azure requirements + +This demo currently has been tested only on azure. +The configuration tested used the `openshift-install`. +https://docs.openshift.com/container-platform/4.16/installing/installing_azure/installing-azure-default.html[OpenShift documentation] contains details on how to do this. + +The documentation outlines https://docs.openshift.com/container-platform/4.16/installing/installing_azure/installing-azure-account.html[minimum required configuration] for an azure account. + +== Changes required + +Do not accept default sizes for OpenShift install. It is recommended to up the workers to at least `Standard_D8s_v5`. +This can be done by using `openshift-install create install-config` first and adjusting the workers under platform e.g.: + +[source,yaml] +---- +- architecture: amd64 + hyperthreading: Enabled + name: worker + platform: + azure: + type: Standard_D8s_v5 + replicas: 3 +---- + +On a cloud provider the virtual machines for the kata containers use "peer pods" which are running directly on the cloud provider's hypervisor (see the diagram below). +This means that access is required to the "confidential computing" virtual machine class. On Azure the `Standard_DCas_v5` class of virtual machines are used. +These virtual machines are *NOT* available in all regions. Users will also need to up the specific limits for `Standard_DC2as_v5` virtual machines. + +image::coco-pattern/peer_pods.png[Schematic diagram of peer pods vs standard kata containers] + +DNS for the openshift cluster also *MUST* be provided by azure DNS. + +== Azure configuration required for the validated pattern + +The validated pattern requires access to azure apis to provision peer-pod VMs and to obtain certificates from let's encrypt. + +Azure configuration information must be provided in two places: + +- The a secret must be loaded using a ../../../learn/secrets-management-in-the-validated-patterns-framework/[values-secret] file. + The https://github.com/validatedpatterns/coco-pattern/blob/main/values-secret.yaml.template[`values-secret.yaml.template`] file provides the appropriate structure + +- A broader set of information about the cluster is required in https://github.com/validatedpatterns/coco-pattern/blob/main/values-global.yaml[`values-global.yaml`] (see below). + + +[source,yaml] +---- +global: + azure: + clientID: '' # Service principle ID + subscriptionID: '' + tenantID: '' # Tenant ID + DNSResGroup: '' # Resource group for the azure DNS hosted zone + hostedZoneName: '' # the hosted zone name + clusterResGroup: '' # Resource group of the cluster + clusterSubnet: '' # subnet of the cluster + clusterNSG: '' # network security group of the worker nodes in the cluster + clusterRegion: '' +---- + diff --git a/content/patterns/coco-pattern/coco-pattern-getting-started.adoc b/content/patterns/coco-pattern/coco-pattern-getting-started.adoc new file mode 100644 index 000000000..b18d0874d --- /dev/null +++ b/content/patterns/coco-pattern/coco-pattern-getting-started.adoc @@ -0,0 +1,17 @@ +--- +title: Getting started +weight: 10 +aliases: /coco-pattern/coco-pattern-getting-started/ +--- + +:toc: + +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + + +[id="deploying-grcq-pattern"] + + +== + diff --git a/static/images/coco-pattern/peer_pods.png b/static/images/coco-pattern/peer_pods.png new file mode 100644 index 0000000000000000000000000000000000000000..16aa4f4fc11f8baf14c5c67fe476116ad3fb0581 GIT binary patch literal 63513 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

P70Jk-)Q= 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≪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 Date: Tue, 8 Oct 2024 11:23:14 +1100 Subject: [PATCH 3/5] feat: Add getting started Signed-off-by: Chris Butler --- content/patterns/coco-pattern/_index.adoc | 10 +-- .../coco-pattern-getting-started.adoc | 73 +++++++++++++++++- static/images/coco-pattern/trustee.png | Bin 0 -> 35976 bytes 3 files changed, 76 insertions(+), 7 deletions(-) create mode 100644 static/images/coco-pattern/trustee.png diff --git a/content/patterns/coco-pattern/_index.adoc b/content/patterns/coco-pattern/_index.adoc index 97d628612..cdaa57c9c 100644 --- a/content/patterns/coco-pattern/_index.adoc +++ b/content/patterns/coco-pattern/_index.adoc @@ -26,13 +26,14 @@ include::modules/comm-attributes.adoc[] Confidential computing is a technology for securing data in use. It uses a https://en.wikipedia.org/wiki/Trusted_execution_environment[Trusted Execution Environment] provided within the hardware of the processor to prevent access from others who have access to the system. https://confidentialcontainers.org/[Confidential containers] is a project to standardize the consumption of confidential computing by making the security boundary for confidential computing to be a Kubernetes pod. [Kata containers](https://katacontainers.io/) is used to establish the boundary via a shim VM. -This pattern uses https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.7/html/user_guide/deploying-on-azure#deploying-cc_azure-cc[Red Hat OpenShift Sandbox Containers] to deploy and configure confidential containers on Microsoft Azure. +This pattern uses https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.7/html/user_guide/deploying-on-azure#deploying-cc_azure-cc[Red Hat OpenShift sandbox containers] to deploy and configure confidential containers on Microsoft Azure. It deploys three copies of 'Hello OpenShift' to demonstrate some of the security boundaries that enforced with confidential containers. == Requirements - An an azure account with the link:./coco-pattern-azure-requirements/[required access rights] +- An OpenShift cluster, within the Azure environment updated beyond 4.16.10 == Security considerations @@ -59,8 +60,7 @@ Work in progress -[id="next-steps_mcg-index"] -== Next steps -* link:mcg-getting-started[Deploy the management hub] using Helm. -* Add a managed cluster to link:mcg-managed-cluster[deploy the managed cluster piece using ACM]. +== References +- https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.7/html/user_guide/about-osc#about-confidential-containers_about-osc[OpenShift sandboxed containers documentation] +- https://www.redhat.com/en/blog/exploring-openshift-confidential-containers-solution[OpenShift confidential containers solution blog] diff --git a/content/patterns/coco-pattern/coco-pattern-getting-started.adoc b/content/patterns/coco-pattern/coco-pattern-getting-started.adoc index b18d0874d..69bfeeb24 100644 --- a/content/patterns/coco-pattern/coco-pattern-getting-started.adoc +++ b/content/patterns/coco-pattern/coco-pattern-getting-started.adoc @@ -10,8 +10,77 @@ aliases: /coco-pattern/coco-pattern-getting-started/ include::modules/comm-attributes.adoc[] -[id="deploying-grcq-pattern"] +== Deploying + +1. Install an link:../coco-pattern-azure-requirements/[OpenShift Cluster on Azure] + +2. Update the link:../coco-pattern-azure-requirements/#_azure_configuration_required_for_the_validated_pattern[required Azure configuration and secrets] + +3. `./pattern.sh make install` + +4. Wait: The cluster needs to reboot all nodes at least once, and reprovision the ingress to use the let's encrypt certificates. + +5. If the services do not come up use the ArgoCD UI to triage potential timeouts. + +== Simple Confidential container tests + +The pattern deploys some simple tests of CoCo with this pattern. +A "Hello Openshift" (e.g. `curl` to return "Hello Openshift!") application has been deployed in three form factor. + +1. A vanilla kubernetes pod at `oc get pods -n hello-openshift standard` +2. A confidential container `oc get pods -n hello-openshift secure` +3. A confidential container with a relaxed policy at `oc get pods -n hello-openshift insecure-policy` + +In this case the insecure policy is designed to allow a user to be able to exec into the confidential container. +Typically this is disabled by an immutable policy established at pod creation time. + + +Doing a `oc get pods` for either of the pods running a confidential container should show the `runtimeClassName: kata-remote` for the pod. + +// Add a azure portal image grab next boot +Logging into azure once the pods have been provisioned will show that each of these two pods has been provisioned with it's own `Standard_DC2as_v5` virtual machine. + +=== `oc exec` testing + +In a OpenShift cluster without confidential containers, Role Based Access Control (RBAC), may be used to prevent users from execing into a container to mutate it. +However: + +1. Cluster admins can always circumvent this capability +2. Anyone logged into the node directly can also circumvent this capability. + +Confidential containers can prevent this. Running: `oc exec -n hello-openshift -it secure -- bash` will result in a denial of access, irrespective of the user undertaking the action, including `kubeadmin`. +For running this with either the standard pod `oc exec -n hello-openshift -it standard -- bash`, or the CoCo pod with the policy disabled `oc exec -n hello-openshift -it insecure-policy -- bash` will allow shell access. + + + +=== Confidential Data Hub testing + +Part of the CoCo VM is a component called the Confidential Data Hub (CDH), which simplifies access to the Trustee Key Broker service for end applications. +Find out more about how the CDH and Trustee work together https://www.redhat.com/en/blog/introducing-confidential-containers-trustee-attestation-services-solution-overview-and-use-cases[here]. + +image::coco-pattern/trustee.png[] + +The CDH presents to containers within the pod (only), via a localhost URL. The CoCo container with an insecure policy can be used for testing the behaviour. + + +- `oc exec -n hello-openshift -it insecure-policy -- bash` to get a shell into a confidential container + +- https://github.com/validatedpatterns/coco-pattern/blob/main/charts/hub/trustee/templates/kbs.yaml[Trustee's configuration] specifies the list of secrets which the KBS can access with the `kbsSecretResources` attribute. + +- Secrets within the CDH can be accessed (by default) at `http://127.0.0.1:8006/cdh/resource/default/$K8S_SECRET/$K8S_SECRET_KEY`. + +- In this case `http://127.0.0.1:8006/cdh/resource/default/passphrase/passphrase` by default will return a string which was randomly generated when the pattern was deployed. + +- This should be the same as result as `oc get secrets -n trustee-operator-system passphrase -o yaml | yq '.data.passphrase'` + +- Tailing the logs for the kbs container e.g. `oc logs -n trustee-operator-system kbs-deployment-5b574bccd6-twjxh -f` shows the evidence which is flowing to the KBS from the CDH. + + + + + + + -== diff --git a/static/images/coco-pattern/trustee.png b/static/images/coco-pattern/trustee.png new file mode 100644 index 0000000000000000000000000000000000000000..cca62f39510c9d4c23bf3f555091a8518246ac4e GIT binary patch literal 35976 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 yM^#2SpHVaQnR_S5K8EN?oJ+s}00000000000000000000000000000000021vcV|; literal 0 HcmV?d00001 From 4f6fe31df5b184d5472908dea34f3d6892ea5e0a Mon Sep 17 00:00:00 2001 From: Chris Butler Date: Tue, 8 Oct 2024 11:23:52 +1100 Subject: [PATCH 4/5] feat: Add getting started Signed-off-by: Chris Butler --- content/patterns/coco-pattern/coco-pattern-getting-started.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/coco-pattern/coco-pattern-getting-started.adoc b/content/patterns/coco-pattern/coco-pattern-getting-started.adoc index 69bfeeb24..86fbcd1a2 100644 --- a/content/patterns/coco-pattern/coco-pattern-getting-started.adoc +++ b/content/patterns/coco-pattern/coco-pattern-getting-started.adoc @@ -71,7 +71,7 @@ The CDH presents to containers within the pod (only), via a localhost URL. The C - In this case `http://127.0.0.1:8006/cdh/resource/default/passphrase/passphrase` by default will return a string which was randomly generated when the pattern was deployed. -- This should be the same as result as `oc get secrets -n trustee-operator-system passphrase -o yaml | yq '.data.passphrase'` +- This should be the same as result as `oc get secrets -n trustee-operator-system passphrase -o yaml | yq '.data.passphrase'` | base64 -d` - Tailing the logs for the kbs container e.g. `oc logs -n trustee-operator-system kbs-deployment-5b574bccd6-twjxh -f` shows the evidence which is flowing to the KBS from the CDH. From cb438a74bd6fec93c8f4b73cc13c6c013880f444 Mon Sep 17 00:00:00 2001 From: Chris Butler Date: Tue, 8 Oct 2024 11:40:18 +1100 Subject: [PATCH 5/5] feat: Add high level architecture diagram Signed-off-by: Chris Butler --- content/patterns/coco-pattern/_index.adoc | 12 ++++++++---- static/images/coco-pattern/isolation.png | Bin 0 -> 39730 bytes .../images/coco-pattern/overview-schematic.png | Bin 0 -> 39488 bytes 3 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 static/images/coco-pattern/isolation.png create mode 100644 static/images/coco-pattern/overview-schematic.png diff --git a/content/patterns/coco-pattern/_index.adoc b/content/patterns/coco-pattern/_index.adoc index cdaa57c9c..c593ee0b4 100644 --- a/content/patterns/coco-pattern/_index.adoc +++ b/content/patterns/coco-pattern/_index.adoc @@ -26,6 +26,11 @@ include::modules/comm-attributes.adoc[] Confidential computing is a technology for securing data in use. It uses a https://en.wikipedia.org/wiki/Trusted_execution_environment[Trusted Execution Environment] provided within the hardware of the processor to prevent access from others who have access to the system. https://confidentialcontainers.org/[Confidential containers] is a project to standardize the consumption of confidential computing by making the security boundary for confidential computing to be a Kubernetes pod. [Kata containers](https://katacontainers.io/) is used to establish the boundary via a shim VM. +A core goal of confidential computing is to use this technology to isolate the workload from both Kubernetes and hypervisor administrators. + +image::coco-pattern/isolation.png[Schematic describing the isolation of confidential contains from the hosting system] + + This pattern uses https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.7/html/user_guide/deploying-on-azure#deploying-cc_azure-cc[Red Hat OpenShift sandbox containers] to deploy and configure confidential containers on Microsoft Azure. It deploys three copies of 'Hello OpenShift' to demonstrate some of the security boundaries that enforced with confidential containers. @@ -51,12 +56,11 @@ It deploys three copies of 'Hello OpenShift' to demonstrate some of the security == Architecture -=== Single Cluster - +Confidential Containers typically has two environments. A trusted zone, and an untrusted zone. In these zones, Trustee, and the sandbox container operator are deployed, respectively. -=== Multi-cluster architecture +** For demonstration purposes the pattern currently is converged on one cluster** -Work in progress +image::coco-pattern/overview-schematic.png[Schematic describing the high level architecture of confidential containers] diff --git a/static/images/coco-pattern/isolation.png b/static/images/coco-pattern/isolation.png new file mode 100644 index 0000000000000000000000000000000000000000..9c78c5450896b3251ece8d1576c9d5d132e6b54d GIT binary patch literal 39730 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

Pjm*x-vhMDIKbFrH@c?Z9uoDz=NJhYb06 zMHpNT^w!@54SqNId#8L~)Y)Tu-53cXV*S@+8=j26@}9Q9O_jC<4wAO2u6ZV38uRA$|HU4e8>dT-0q1r&)Bfz@%g!5%xpc{Qa++QY1dVh?Uckn!K6DE+%LPROyZ4a8)|+k z(KEj&Tup~r^;{lfFA08*lQqylY+0WSkVB%*{#oD4JNT+L0b5kY%gV4N`Q%r(z?AoNMVldD6G5IIw)ms8Up=vQAyM(JSQzZ`^Ru!r5xX4HV4jS zgqg>p-oO_e=+I>8DxWEUf2A>}` z!=S8y@cU9H7khz#|L$=GP5uQDgUv@Wht03hQ2lrAt@E~|ppySl1rMUuqboHjjMl}^)N%()RhJa%P=E}YlUxh) z3K!o_TiO+|I1d|%XS9B8x=5A!&hY)s+-xq7IghJ~L#MU*yCeUUYYirH-)4vbE}BXx z;kymJA)81c-zh>qni)!t7-UJA`k}heT|z?|%9(O1pv(*(@DT5b8RVZ94}OQ$^em?m zbF+;pxO-_^oQ^(8W-MWG_$bICoCa5By?!IRMJ%tz$3gJcTgm>RCzbnh2B0G{QvMv} zTrf@}-JWEJ*8oQAz0L`^Gw%onEzh#88A>d4>wQnhe^!6? zY_?*mPejbP_3jVQrk!qQ+t8@NZQqzGsfY)QUf?lB#p!}WfRTC#N|du$!?AgG|bqTis;cMk3o|kpj>!=$*EIa5!NUp?8IVc8ZuR044& z%S1e9GGN}CEm37}pczg@p=%*7efPT<6{FCbfcn})YVAFJy_*;0RoIoC#%)5FCI3N5 z?5ywghrR6i%%dNgfc>9vNmu|v?OvWBI&$PO(!)meuJsJaM_2hiD0)cj=D9bqJ&Y1( z^Mm@m+aYeOtK-McOgl zw$I`+V*DMGgWjzo%lS2-62L_Spter%LZp*2OiFWS*Of5>zsC=q1Eu9eT&kt~Irf9c z;sNmnErbm|uX4kE3pkSH0;MH{Q z;0(?SkcL{yPTB1tyRAkPa19ndN!;;rK(rTs%3+?Q22(ZwhbDo?LTS>{E#S3;+clt? zfKQ2-oyAK}#;&_`5wTnG9M?a!Qm^2L=%k$$SYwq9XB~W9F%i~FH`>!iEwNW!uQ5}t z??}jLK3VJ@q_0$iA~SRFj`1H~RGW<`*PjLvE*jZKTz1O0#Qq4X4=K6oXPLsf{Wut| z>v4gYej^#AZ9(jugInfVNVtYVQ06VSKxFTa2}8mTNBr5fI0F&eJVx&}_c4^)7COoj zEmQVT&{T_N6c9=IP@)jI)TG6JgdNdmFLD(w2)ozM(m^zlaYQBC8%?$Kg7~e5m~ZeX z*SeSHMmU`?-BW5WV5m)od>;(d8V|O2T0V-l);)c(gio)A?a#RM`O=F zC7d)HEL~KM>OGWQsP?m9=rUKB=XJWp;ul9U;Q`0+V)FRpjPuXMz+i|>eA-!K{gmTT zIBX5LTUh2@zJ*q1aSYgk&EvEdZ+YqgcIn*v#B!0X^nbDACJXSBURDbK4SO^RyY_Hl ziH0JRC_2k;t(iCqNB3;@|wz4)TC^M75(YV|6RCa(xWnJ@83 z0`+XST&%I}Bc+)W2q6azZF}q3^{Lbn349}3N6*#6{m@z*#1hhsUzpUVsS%C|v103b zKV(y3g1Ytf_1QX{0*W!$yW9({-*JYh&I!DI;F^7buEQ=1XWilNSpxn9>S9>EHXRkW zQMe`m_|~>8nb^E2!rl|GyHwbyfhZbZ&=ZaA|5Q2Dm?=boRJm0)ZCNA1yPFo^j+xS6 z=;;Tg9*xyt3?6FY&8|JzEh5h^CCmCy*qpHX@f4Y%{_hGFmqdh3;SeDJo2*LcJeB;8 zZi53JQdeaevh?+pSY#kFbGZFeF!YdJDB(Gz;u%yLFI(GT&>q!}`+Md*6Cv)FpPJ|7 z9XQ!*%fwZ{&3jMIDT{?OU5=>$X9F%et!oB?6{loV`*Q%8V>;N89o>1K+lI@;HJVBy zBq!%BQYT01i8sZdnr**eypOajrcSz(K-lckx-pdOtCK>=Y!Ea&P4jO%6p08R?_HZ5 zen7QO70bs)4V~LN(=Y{5rPjtM%pAXmd8eEp=?{001)tPHZ9Ib~$uV`93w-h1I}61o z9CzR0Ep5S1T|lGa1xCgE1SQVQGjYM69X*NUbhC%7R4!0KCwgHF%^kiiMMyu|gAfdy zqFoe)BHtVUl$uo8o3Ny}Ndg2|qRDkrrI%eg`MvkS?5iRhA>-Ylm@vnDEX}=G6d5Py zE2iI`dJLFE+*XzWe5!#df?k5kk$OAfF^X;CNG|8dn|U7rVIXhMtR>E|p?gT~VV~?f zx=%Qr`W9?+_AWK4&ft}W+Wz2}BU3!O#6`oak2Wzx@tx|VsXwzC()@?a$3$)I%Prhj zo$$t>+$scour_0)(-%y4Kdp}BUVVJh_Bfgq0zqo6S(ISo??EChAWg2Zr7b%`Cdl>@ zJJLK7QFq08q!<~9y`{?e`{0W%QapBxs)pf+RM6@`up7|R1ngpos++{HdD^*I+mV~f zn)mxfZto=O_@>W6Nrs_gbi|s8?^CD)Ti0)C2>AorI$GdpouBjdH+4UM9;<;!r{m_o zBO3{vjc3gJ;_Ci)A#l>k=#BEsp)no9o0_D#46l#`6 zzPoL+A{PMmkjQdaOiF>;M=*=kW0?@fy)(nXNU{xef2gk<_PN84YSBsLdJD?c+TMUV zv1!|U3!cGUXQWqviX`K70Y8!VZw+-xoO6oFao?MJ4Fie^07pmxoXPS0$jSNG{xHl> z7salm$5n&5%7z&z%Hn27f{Bnr3c-1YbiIg(z%pn7m7)(b*`+`WNnQf(O2r=1GC(Cai?=WN`p!m(c1imFyu*P|3qY# zRNM3mtr!4=vgL-W>+mPs1Ae+jd+T*7Y;k%AkCfGI@55p`%1dGY7qG85%}VtbSpA~g zT`uV30H1|Bo`Z3`(pbaUTtca}v}`uXhY%;!*ACv+LaK5GY#xu?fQX1CNsHh*W5rFh zbP#dKN1^L5bbV{cxTxDeaG8RWmz8cP`z)P-E$Rt6KR~&hB9v(8-q2V*=}R+7+d65* zhVaT{r=n(fU&up*9bYV#J30wg4{FmPc16}`nP@DJEl9sy15=S5k*afHU^iN$sNvi5#*b9iGFKJ%MwmT?5xeMLro*v}+;KCcsW})5TH+_q zHtgFBI*}EaBiM%-B?-s>5Jv7h%)O@tYvv+GQmn2QKQx1R3>Vb|H6KW2M|Y%tT1*$) zZTl6!+qS(36pA?o(lXd2A&Wp6J42^B&$lU4s_gJRW+Or6=|Eq%u2LI`UgmCdN1msaY{Em zDIuj?|K#*_b3tLVp@F^`ML60Gygi(t3+DoxPd}h&cc91g0UC?-{2c^DV;p2)eDTlp z)ou>FT|9w50>(7Qoj0&73aJhmp~jT{-b@nwOMN||qDW+0_CAgbnWXBHr!H==s#i2a zaQ|cEtv$BwjC%O>`kIG=J419;I%`J#8Z=TGLjFdisBJGhXI%$3h-gc$P~SrynTfYb z7W7m58-RWM0rjdS6>lf`ktZbolhWMHSMhx1CmA`?sXLvHjKe)a_u^oMddIy2Vkg&| zhOJtWc-dA1i}CW>zuL8STx_krCD^25r}Q~ApPS|OGjOvi_P0gAFD;Ut@u0fW4(Vh zzO4?B5lCBiD5)p=#~Df1xiZ>Gs59WYCN$VgW)`MJlr-k9rf%nD0*okJ4tMmL-5qkD(CE!e~CPDK)-DnJBI z$M*jj%!> zf}y9nK@m^UV!n5~paZ)n88A-t8+L{Yef%33bGh)uTiH5O3k|Gzqka6Bg=+isgKw#U zroDLR2TB{I8e$Cc|%lA>_|AycF5=O zx*6UbH!8eB0FzDkEWK61?RO2G^egK_B;~r?X5M7A|Ujpe;PMy!?9+l#GIY zhMeX^KsC;Xa3x#dMv=F&_}r9z+Js#uSDy2mhtuKlav+JY?_icIbMw$~zX37O61vRn zY$0O814_ZQCJJD=ns_Z~<3jXvUjke#0xl9{O7wOWfDDr#${y^4oDxw{fH=@wg$E6+ z6J43gB2~bt#?<*VLS?{h`*Uc`7v)9mLN@?pny;ZCif4dhIoiljqRVt5=UD4 zxQ@I>BJQ8O9GClTkn=w84gs0|b3H&(yh%HJj9R3170~^swd@^k#rgt&1#h4$ZPI>w zgi~PeY_<4SF3yj;yhR_G=~Og&_jQpWcqT^{q)1Lp*PvvzJmpYEmPfk!E3fswE0T3F zgXkN|zj9(u(mMAe>F&r{#pIRoKj}iFir7{CzEf!-1Rj4pF^UkOBY?`gudscIEfG2JF~G`FUEg26b# zBp?L(#?oqv6EAG<)19GdTsQsV$2-g3i#MTTN;yCWHIRzY{~@P#6U&08RL|Pt6&2Lz z+NQI3k!@q92eUy${AVE#U(&CKv&O)3F;zH#qQ3=RSzqV+c^Y?qubR1`9U8#EmJNCR zi#Z7N*6+udQb<9=${#?9H7PdJ)zIKrMH&dMV~1X-xfl!)NKp1eG>*8jLweC~e97bj z-nlJI*`e3qcaA)~Izqt;T|3J!0@)f}wgYn==Cgooh(pS3Ww%DQg~wnu6!y!14k(TO zA_TRn^I$6)+L;RwI1z{WD^v;6>C6Npl|I8&7_=6?UfVgLwMQC)9Ck8VC&KjlqZ<)zRf`Qfj6$P}VB}^*I;7TgY5!&}lYs7rjRQ zJa$^!Y5^HuE*+g8Cj0ZVUa{V`2|zayNm`;TVmyJLr(lZ?*Qt^^$3? zGeekG{6)<&wkU{!ai6UR{bQ7bQDQ1rgYMR_JdbG^g=x5i7umWy8E1l8G1j%>T(P-S zHd}l7hq%&EWD?V+s&dWKJVBhiPG*&0jI3nC5LQh)9Y>&FEUgFx?L0Zm%u*+HhaUF~ z+bbES1Om(58ty~iq$vK(4*spa=pR;(Xksf4G5eC&OA<`krS<&c2l0ZHp~|o4tT+^g z-%j(w)65}#!wC*jTBtpLAzx`b5e~(C@!OQ$T65KQQJU$D9Fyt;8z@iyjtQ^)5!oVL zp~4!o=RBbjk|%w99@Lrw1u2K<4V%I-AICZhNN3R2BBQlbV}g}<%wugamS6NS-Yo<0 zGeF-{x18qJCWltNFV zgMJxR$MrN$PJ|6v()9s^=q&3|MT2frzhLfJRwi##d5um!mEKlSc=Jy*pVXh&s!?j z_+&Gj0^wz@ChQuT)1#c(If*kOcwYH#sA>MOmz|-J6ml>BsGtt_6sGpf^K0d%1zNv07H8m2N!n=Qtl)en1|0um;YGv1! zcz8mFZ$QVl?Ha}bt6uJeA11wc45AV`vt!6xu*#8I*($3ZAzIYDM5ej zwwLRbsukxIKSVS~lEg3B@sOkbX;aXaViuTJw0DYkcKYHCHh9KWhySxlfc%J`Y`#+0 zf8Zow%@D7`G@;N4tHt4b+^|P83Za#Zu~mAsgs1gFmHQ=s_u0%gnn>=Jy!GUjUWRI8|3Kvvz%w~otD42;f zYn=+}E^4wsS$c|Y7qGW7{kH;FOWxMJb|ut>x}1uA>DgVa?Ym9JTKn%wh~f#7B!drqd}doB8|A?%LEKT_pbxa*xb zXr&>W5~1A=riMX#c)sDz^GfBun){em#3pVMz$%(u$>qt&eyJzPIkz-J)wAuB`RelQH4sId7c#? zy7j%hSEdv9my#>ze>bLxRa{GOP0?B$=3IEc9x246AiHJCP!T)DfsFxzv*%CjxAW(| zuV6Qh8+ekKxa0)*MGSHpHKT&lV>VOC^ieKgo0LKv{`+}^_m>3$&lxc0$-XiS7{Fwy zqPQ9ssXVA|foqd0$6gxte$6ish7AOh$OV{%S-?sQJ& zI-h59@_Yhz*pqjZ#-}Ij%Ys9Mv*nocDaPMmDN&nG`^&`UVz2o5q5h^{|Eh;F59pYa zl=YT7%_wb$l(Sa*q}tddX*pi;itO$5DnfaF0YvRtX{7RpVCqq9{t$O0i<<}*KSDO$ z+Z_wtUmx)JQ}ZVDui&5K~sUf_u?G%sTI(oD%dR! zhNaH*)6)ng8gyje3Ez#+u7CUbs=()2G6sRX3OPmwFBt9(ZEi;G6S}4b9FAkct#YrF7o@MA z2UB9h9==pmQRS@4wED&MnwT;Z3SGmigrjK4-sW!>tM?DK!`!Gm6J$SUZ)^O_vN6|()vkr!}J>JR_ zev>}9#_bfRP^T@p9)UqWTQE-xCSKw#$f_@pz%$$QGvQNY52e6u#$7yVZ8|KXa_uF2 z#%b8EL*E2$qzld>EX(pmjpNW%)y&Ud97GrL|L7vYE%rux^ll(qd)3_+%x3(6IjJ@k zg0KZzEEhr?()qVOCEP3Q?z#P;zCC^&4}8#CXNhLBP;zDiUBFpo_;t2s+Xj{0Xj0=9yvB3 zXMn|eZ%Nr=>JJ(4G~wsv!IsYBO3X*qtu$H5qOY^5@`}y@IYIa)?pxCBAZRJPzUMwQ z@DbGN1;1!&xTl&*hn*>WsXcn(iudKq28kv4eo#IWYIq_NY!ERsYP`DJx1T+)dd&zQ zO^wAdI1f6h5v{BjLBo@$X%q|)U-b#zX^WNG+NFkxdf*6SrE5sY94g3I|Nc&chkIc) zZ`$u~3rscmtW4r{6bKkYTfSS);zZLgTzm*q@1|o*fGZmg{1+i|ny0CscX>{*5C?Ls zAH>VVXca*RCBFFtP9>d><4-E?(;72x%2I=!~vcc7X^DXv>I7xzmAh zRDj98BL$}0)6L38|N9Wa_;d(EJdUiCz zYc#~=OkZ-9HaP}qrC~4So&2-EmUr^AxH_TkBy{FHQ|+I85A9Y}QeD5Xq{3b2G`Z*H zsiyx{rAzr|e=P6io&3WchU)|r>+DC!!PO#fIiZx@+{${oU%m8DeV(33wncT4&iJ)j z;B(1gf<&aczpdI-x9D+(A^DVM8nvOzqY6N{V8A-G%FMt4-}>z7WO-D1MjB|tO@SUx zKd@N*fe-9H1N^mtq6)vZSnmDPS8IT~Jyasv!opg=9(7{?!UJA9ux0itPt*(nrHAr* zpcq@Vo;clL6?&6;Zn5xSD|}PY>5WzOKS%nmvd5JOeE?9*j)C2UQ6R3`M9lzem;(h*`kg!e918QN=fWI5GJVo<91P(Lie+v_~?cBkaSX%;k?QPil z^wXo>+eB?NR&sTcpyv;QOTbq(UUx2}Z^lOkX0GRtFOevk@pbbaw2s@)2ip_TwJ552 z&pP#0P_`OI%X@n2SMxa^Y|O%|zxx@q*2ao51JT}rUal(GoWUhW)hEEg#G&RUku=)v z1X{v-Sbg(Rhx_eT`Fqu5v&-QGo8($O6dMw50Y?wj#h(DMCnXrhXf(DD77dTe!{qK! z?hcQ+b6)bM{xgAqd9WT49BQ+m_vqjHKa(ur8Rc0dYgy5#wz;xN(l3B11aaRpR9>MW z0Q8VjH%@O@H_{#I=Z#V0CF{}>_omBkOA%-xYkB~lld+Z!^cCDacDl2KJU9HmC64S( zy2F^b?qlmm!jQkGy<>cM`4~9YB}V0*?=3QXN%|!q9-ZKqWuSWa2b+ca@g_0TjjKyt z+Xlp(j@e1ODr{lDa!&$x=ki|y2n-{^<{-{vUlrTL$Od&es9>Sv33#v+}-5Fgku(OAOMYa~KoEtxHLDq*n5_|cWYp7@MSh0dV8OF5+vhm&L?|WimShQk8-E|&B{cSCsJX6UI?%$TyX#cT!}%FpPoDrlsI9{hZ~(LAB29e$ZUQWc zSPeNHtb&oLW|#JSx{k{Kcd~L!grW67MAF+p*2ti6UEBM)v15X5tCQ0iq7ViwMnL@Z zaxqN~TDNNn?t&?(UkR;I9EF?E?Bi&4z}#p0Ke8&a^g~Sb2H;Zib9CrY=v9CWQabzW z#zX*(&4RxFLOuny_Fs?A1W2+M1wHEN28KQ)yM|LRT*8$R9r9y-60a}lJ4Z&7v-ysl zMv=>gtWi3Ac#;r;44Dd-zj=ngXHV(lc62BdMI9LLj~l)$4f>ax4E6N*TgCSUkU|8( zI+A{_;s5+mrmr$+@w)?CaN+MJT>dwnU1Z-BKQCgMbk0dUa8ai-Ft;iYYrAfH)c;`K zp0^wK{~fc8+cNWZe7t8srS<&FCiCe~@`(T>EGTGWpDAya@-6Yh4|LeJIBKO0?yFxM zI{YFIrO!qy%>U_j(c}e*6!;$p3Jpy{6!}t;cViprh+^vI1qpfY^R31fRP2Z?`g-hs z%F-MrnQ>qcMrR*lvDsbM^b>x&kqz7@1STg++n73q4Jd_70?T{n?Az;v_*ereDYBK)Gkwt2XSdxFs+-%E2AG)w+RE zC`-6jq?ggB$U!fv+r%DeyBBZ++P|Wg4X*wzwppMth^!VCjmRV<2lu`=@PK|%N?Sf3Mc*l^uZ&VKu+KfyE_I$v(W}kX zS!Tzu`NZ`Mf9{rT*^I3p1E}__&KHVvZ!a7`Yu3Z@cP5Q037PZ+cV@)idM?1G>6B<9 zeT3_WV0)^`>Hq+m18Aeac-ZTd^%LxjBarzNQAFdg+BGa21EfjiiCktlueJMEfwHh} z+j^Bw8-hn6{5+B8akU+Hy_sF!^VO~rw?p>%aYb4MqQZ6-Id_-^F%HzP0k&$xx!F*z zv%`8ihVzZhqAJ49}u`saKo4>z2Cx!)1^ zc+HpuJIBF^4%KdJA{-9lI8QLn+dDIFc06yElvb(c_@$<;=T+RKrvT zp-RfDQ*FuZF~Gof%VFOe)nT8ZYUPl58C=e8IeC=O2#IVrBlJ8)jY`+_FuxqV zh!|pQ1DT2|NF`Afj|4EX5wcusHI{6jmRgpIcCnNx-AEIX^`u|eHL+$aUS#}fc_;<# zs3!Vr*%XL{(U%LPqg1CZ?<-z3DmH}o1U+|=e zJHQX{_tFaw9as39g5A!YkrR?3B-cdt$S&wg+_<*K3o;_rmBe3GK7SQHzP0=7^{||s zh}{llJzmESp;FfdGjr=^+R3_TR2q~3T=fWi^kcE`VK1ujNAJVewj?kXX~B&frF*I+ z9B|deHrIRT5={V*`Fk8`ILd$&0TWS9zcCQQuXa`AY?bmV&L*o?L2d7U0_DSjZc3hO zVnt0-XqqmO<_4GPjb2$@uj%|)8J0sM%|mWVASRny!b_%(f_HDhqL|#H0Bonc*whTm z!QxKkNNx5E(M?hLJ0WC(ltM8#KX-B|-7)S5MJ0TRMQF5yz`oS?e%5e?-*u-L2sxcV z@|oQe{n}{NA3y0~1-^|b!?9dmgdGOd+k+hh)046PVOL7fwq#x3OluDLPApm~RE~Q; zf%){k34o}wTV|r(%2pL3{_OB*l4znt90Dw0;6xx*fvZdUsq2cUquPYmV&`6b=kT2C zYK8(jd~Aw*!Gu>7MZz_Q1@7)K)(_HY{Ug&LQnmS()7S{a*4{Zx754=ng~o_K#(F7g zG^9=(ZW%ggjzbpJmuOWe5lk+vGIU5KqKxf%5SK0GS)jyB{IiYFt-;_ltmyYmzmIZg$UAhddrLp zW9OrU>=$T|4?r{+RYEt3I_uH6*mv{Hnb6P^G*Xh#kA{Jd*tX(G?%~rtrpV#iiYbGk ztl29!%a|!Nucd*%Y}Q^X8***?lB=NDgW0_n&@FbsT&}4(1s=97YL7rHVL)d^^)CuK z^>4$E+41UN6SuqG?mVxunzT1 zcoGYH6#|jT+zSD;$EJjYzb0=G$!U@|&QxP+Q}Lhw756VEH-iF1++4abV2`>AmB6-_ zp&LLnw1o@FvLqV#2&vXLUh>naUA*iJI6*mKLEf?VQO|0o*@h%;ee&w-`_?{wZ>gut zJs7@8Zi*%VLLVP}IkU&t`Qm~ley#hsnAaw|*eKZgN-(B=YP7xlQJx=ec~Jg`*`3l9pCPYgjUS=MwwY3*0;7k35h^Q|dj+&A z(Um7r5Rh!hKog^<0n2nlS=oc;Sv>g*?jrX`Du)_IJJ}gj6})Qqzo@A$>A?^nM{o4; z9x#}Va!XA$JZDn(JichCjVP=}Y%OPIsoC>HMEHX5?p98aLT}@5PGpN7RXx+w{4}lC z9|Ng3$MDbT|E4L0E=#!s8Q16#0CtXb8!PRCNA0bXnt2<)!?#$|v8(;DzUau6veMOp zZZec3bW3bluO$O9Yn5$n9vm4NN0fRQ`K9mbTU|-F(XO6L=d72&Ivtc-oW`i}klZ*- zOs!LwOqPADMfI>F=1Q|S>*30EdsUe5^e$py-&}Yx$Gfh;LE~e+7at@2>7cF-R96D& zkrisSNq6-3R+g2-J{gxhJXGbjlIOK))OJT6+91%xv$-K^xc{X9XK$uUk*Nzd*|%Hw z3=;AsX@0ShH|zg952_gFUi%i$i9&9#iN19q)^BZQWVa!oQTzMXQhBH%=TC~s4YRwM zQ`1TcX0LP+dK@a?ZH+qI3UZDpK>bYg6*@3WbPs;q0er%uy`DkoItAa3Wl0( z&(O-qin?j|LW~0)!zPx(c}ony{AkJMtGS{_?!{-RB$TfRge<{Xg<*ek$VZjBC{)Q+0O~vPUoi1f(pR(i)>@n&tUxim-bJH79%C z_jCNpT4*h`$<%?LwnpFjJ={n@yKq`6AF99Y@Tw{7F0z97KyMCU`{pI1IuLLG4l(X9 zjRaP@n`9^UXlXKPjUoc54DN;05!b9-rrYn> zCIbf4l6QU?#nOO>_wzU_^||cgsyfS~eGC8?)@<7?$9eAHV=KLw~0(G+D742 zU?_$irRY}y8E*n9j249X*kDdLsMXx6kLm$t=Ey(7JBZB1$4>L#IFOEMEB8AU4yvb? zBYCZfc=5tFkz_;Rh&nQBE`-z?!2nONvB+;JW zehl;){k>E(c{*?2Vc5ZxBd8zvPF+I4FuH_g_prIw47lUtr$wbi7THI04q$D)sXM7= z&F)sRRel)EKR326!8%p~!5lBU13U>(UBIUl>$^!_5(~Uga&_{Nkr$@^9dp~Ze-gYf z;1du{8wJ}78qC~y6=lyyPR%wumsNR$_wp0wZf2-E9W#@8a|QJ;U6tzo82SH$MLGRX z!RD)g!wgd9PZF*U2!MJAt~_yGvxA^N&IOXAvj`W%FI=_aJ%^KR4)RryG#7~UN9}2y^EJutWK?KqEkiztrJ59l3N)i;W?v0^!ztu z>l~P+vQ1?Zv2WzlffYbQV(R zVSyrACXMUQg;*}a9U>>}3#O53%4p5{f;8v0O=}P!3J1J3;#xQUxr8eq9%mEhCJ#)S z-iT&43G+241eH*OcX*-<{7I3&saEB8yP+$!?M_ZHlyIK3@VE{Nx zGLKr~v&}djR%+d4=s>)0b_Jy-XmG$p0Fds)3OJ`1z!jAYDiy&cH+u5~g+Mo55_DM$S?CYG6s`#Wo-MMX yM>&{%@LUy4I^mb}K=yOi#uuDZP=}P1$<`b~1QVFeFaQ7m0000%+UNiP0000m@Kd$` literal 0 HcmV?d00001 diff --git a/static/images/coco-pattern/overview-schematic.png b/static/images/coco-pattern/overview-schematic.png new file mode 100644 index 0000000000000000000000000000000000000000..2ba0bae004e3deee10bb7965f0f520c380fcf880 GIT binary patch literal 39488 zcmb@sQ;;r9(15qLZQHhe*0z1twr$(CZQJ%)+xG68@6Vs4a+ABv)m%(Zbx))EnQG-f z5)xclKtLMeB8uvYTtsyL?UA@Za)D{qL1RD!Y*|vJN=S-`NuQ#n0^lPp?A{HwfBI0z z-|qxyF~9P)^5iNgVm|@X3e?>GI|c;+(yzjsi^-qkFaKM?Mn5&C?CYJuPt9M(?Ynux z&%82#o;S#Esedy7`U7$2?JN8z|FdsUFb9wf82uIeH~t%b-QV+{A3y-WCGaZZQvVrX3!vpQ@8|!+ z_*H(z`6~G7f7Dz4t#Ptf4R8k#|4M#o01%%I;PU4Hjt`p`fFb|%-@#vtjr=1)Ex-1k z{%?&B|7(LzLAQQ;0Pip5SO1T}-EQnR$*+V5s+pGUm@B?u56X->B70hlysU_8lR1?>9! z0OSDkKbQbOYy2VL@f0K9!3j^$OoLn0R-4IHw8VBtvwh=N8eKp8sX0K*}W z3K0j6Sb{Ne#R7%>|9=E`Vq@t<{HGIvHcPjnza7bwm%VjY@)MdHC6=H7#fcn;Ux@5j z$~6O96n7s_0wlYqRK5?VKeeY&a5M_vhuxpnQ^Y?SjThx?h!Do{=SmV>9ji|~r`drf z|3_nh09|7MnWZNyzbUXHR2{4L-BG`o9oFD~jPYHfYByO{@uEtf^=LSy{b;y2<)gaOqZ~Z4R^xn#J)vFdvMTyT zQ1vzD>H`;W+Q{f}23CN1}n6{hryc~imj|u%n;o>h3W&MsO zN1D~CZy-nd9fvFN=RwSIzGef*OX>yBjg2XPX|>hPKd2LFZ}q+zV`NuzxeIW_0itv` zSzN@@drveRqDuho*9eOg6JZCU1HKdAO`sg0yV28ekS~g~97biHJJjfZ!S6Y}AQ-bf z5{v7B#=4O}eDRfPY*`9U6(#39kWTP{%LKf+lT641J)GL9iG+Ig0o(8B`$Vf^*|_#C zB!pV4Ec%eX9&4De`t#F|QOk0sRMnJg(nBcxvg&B25>!2ASq({lBe$@HRmmb>MjK#G z%IY;8^W%67d|YaV+wHv~A#VK_O055)+oG*!4Mb{>|8eP&UM-<&BRA%ePi?0)Z((nY zZ};{%_^r?$uOT}2I<{W_vHFsTK_Jw-M<8^GCP^{O$I9ac{qkCHV44{t-8Mp_9x~At zv^CnCp#f?{0<30u^Tv8IBP#Y&$N~RDv0~giIIaalMy^MGBYH+jnFE7wgMn%jnBO2cM5^SDiv0*FLfc;J z)zrekp8eA5Ip5~WuySs}!uz*9Q39l=E z(^(@_dgukIenePROvYmbOu?h-a&5baBEtDOvQ>%6LSEIQ7x*xgNA&Uk8dcO0%652h zV%+vPTXwde!K7ULuS8sfOA3CvP;}G?x;frMQOk|M9!tx^Ahp9sP1 z-Zh|lS|#hj!sX+PuflDrf;k5fv;fw05MEYr{}VwLg2k{7TFQ$7|2>~(me7_rnHPrg zkaMeg6OQO1HC2Ic!w)I)B0O9$?gD^I1N;@APkJ-Z#yva;;MlMbg|n!&D>7@;(#s#q zTyi|ATPIOzu>!V*nFj9jN;($*EMXodfr?05Aw#w_=!KRG#{dqdssgJF(iK{OIeXNJ zI@p!|^*#o21C689z5F+bI8E;~6ky42yyqo?r7-0}DZCrzcX7GJKv`wBBrV`;vBYwP z++YL}ZO>${DA9LT(S=L!+8@Qk`CmPPCJ$}#SK!!w?}fyNfxNSt515_{t*NtuE~B4q z|H<^w+hJ=P?^VlSwP(i19ZwF^0NQazCxLBy*UwN{0Hd1!!ZaDuVGFwOTAV4c!ZMG5 z)=TB~x&x7d{Vru++b`}9QQ^-qZs1Jf(5u7#B+;A+^KQ~33m@U1u%j7>sPkF6@LHyht1HN&S9BXsyS}G^p^f?yNPikF8YOYa68=V;NAMb*jlBDH%(D zjs~TyJamKfKGphOLnXzF{{f^i8=c60y@P*6EK2fC3`y_r2IP^pQUIZrwXjtj zWj?MnK*F75l&}AZ6h4~w_bcjCgz}?FbckXx3&qE>7B3;#tfwH-LPb^YI3~oZCc@8r zNjz+JJnjZhTE@gd2q9g!D1*huyWO-4>2@e->IHsHcol+E+)2U|k%l`DPwDgSW*qfC zA*4nagf;s93#_7FUR*!K7AR?xQUhcCshtb^ih(!yfi9$brHmw9bBBa_6(y$v5L~Xt zj40oe=YgvrShd1K#1-4^*$#I%Ni1Y@#}=q1pCj7K0v1`j&Mswt(Gpq_N#qcjH@@e5{gA@z{MfSmE`^Dgh5ukA_Mq4>v2O086ftjZ=aSGOjuDUY8^Y(&%!}F6EO# zPVo6heJB(;DHlbDtNekyvw4~ zxH_ckq@a&+?Nz-8bB4PIbHwe58u3i{k1^WTVb0n5ULbd5Lq==5pDuG;v#)8TqBR z7qDyI&beO)VC2Tj3g*;b9e)z9*u3t?;chl?Oss~4`#dUn;@87WW!!AUFWzisvq2^3 zCiRw$@F`PuYkzok+;X4)x+`Gh29`9%T1AZ%N*dIv1DgSVXod$oGD$eJkdCgXkyo{v z5W^H+!QDD+OcviNa;P$td>QAI*5kpHYEW@(>+)8p$q1^_-iWy_e5F#j}6+vQ0W%+D(USzSMH_0h5v!LbeM0|z7U`n=o(`}}pWzbh zYiJLyfPw?eqpimWi?DEuuyOgKGCSW_oo?~a7pP(GVg{UrAv8DiQ(xmacsoeM#7sZX z@r3vMXs290G~)J`g;L_Cr$^1LBSk!uo&3n#ybo(WxUpL7101ouj}0?8-FMVB718v& z7)>WxSeL|r6}_X`bPCLJ5;#(1Y6a*bs}WLrMlLh#n<3$`q2uaPgz@&*29i#5k*lGX zb$ajX9DDD3nmmUW$9$V)XSacl@AFeS0;ltIF}OZ76v1RXaAj9|u>W$)V%#}i52dOviW?szPfwMiF_s`L>z4+|l{CIubh7KExf}e=S+6(c2u!Mnrf9m3;*lgRc zRBZmgl?xz3xpC`B6X~?vzFD0mo)yjxwA(6y$IJ+G&jW7Bq0%(#rA;$hG*k$BF!dN=2cqw9~kk8=yp$#{ZHHn{Fz9xd;v;M zB<$}FvDML+_-aF16&&w!|DQOGYJ;Fwtkc;1x12Pj3TmG5A4h@kfouWoUi|xyZT>H5 z73UZa5G;hT<2~0GM(m=JB@odGgdVOZ2VN3g=BIHssRoT+BM#I7INd`Pc$8)XKZKUp zB~heeod2qOp~-&`@_*qQ)7xZ(yU)@>Kw~deFiWx$+4^no$7C^64!=GlA7dn%uu{GI z2NZ{Mi9%+ECE^h`-3OI4xB(CXy_S>k@xp6kZ_cp)`m$0D^B*jLhuW>F&uvSTL#d7h-h?|3>DUWX`nWVUP1!}&h z>R!H18(-46zH)m^T9z%4uAL&|O zY}zC*jKHtl=P&f=BSNz{--=Cg?4DQO%#Bm*ka*zf zB>fwK6wxOm+p7?{y=y>#CopU4|Aa$hf~rsY|AA&cn)(1L(CEYYGhu1o?tgReKf(X?-NDNq(7|*;T(hrcg%GErmQm_Z zVms*NyTA9QuyU#{s^C->l@p?scMYZsvueI= z9u6ml54HtdUrrp*tk?*f`xmSG|4UzOV}h7(duObm(Ek@v_F~v~4%YBF=h3>`N6|Jn zI;_7;Kin_m48q zrhXS+q#sJK?NI<^Jo^W?bvDeDm+2gRu3#c*bJiCs(Fwi!FU%Tz0t7sM-{jm5iO||H zcXe_^T}$!wdF@}A1)#Tspku4mBT|fyK094Vt}e}b;|? z2Cr^I9eQSyN9fl)!O3G%Od`kQu%q6ei2NagnL49WMjMDwHV zy!4pV!kf6m<7%fw!D^lCcp+PfUN}f3;>yfELwX1gB7FP?! z0uf(G2+ffvupI!^RX$24lCHC z!a2f7wVd~h3N-59l_H44)reB8FGe9!42OKP2D#cyr$+9A1x6`WzqO@skSbAI_XsG2 z3-JNsC7i6sF#4#4%w}tC1M5?fP@Zhm#I6hgDO9FQi;k#@;vOV$IopDkl zgSyvX*`~1I(wcnD8jGheOcyN=MZN!I|6+PdNxDvRBL;OYIeBUBUsQ?LBiFny3eLI> zU%NP54YZ^9SNO)X@xLE%7hvmNvUE2kUaCMuCJIPW?mdbKiK+LzVRU-^%T}Q0tdtXm z_(@;eX~HcEBL5XjKWqN&FRq*t1Dvy!@p0UkXVS#q&~TWN^f9-^iZo9Ddp-Yx^aJ@# z8g@zDr~l9u4{vXMCSf|kr>bk6D9e8j^UYK($59^+1m?Y&@l;8jziOgu4{(YWL4^dS z!M*`zyPkcp$IVZ#YYuj6^6og46$42oMSOJPjj68q>0&LU^JR78_fMPSd@j<{oJZh8 zpr58D6C6KmHQ1?hkXG|#U`4If$tSWo*EIQgB0@yB!oPK2A4=KE7?Xe}Z#vKzt@hv# z2=2=?DI-@)A|-p}y{RfKNSp1@UvBm^nIEqfD9$=Gi+yeJ)0gH}iTEK2*1)G-bCjRK zMN;Z&|BBiVOX##C;8D3n&$Q@b^~cDcR38u)gwmmjGGbzrzv|QDfF=xSKuV;wwAKoL z<_$Frg?XejEA%5)oOo>Bqy~Z6Fd^rbUnILfW$>dE8vP{i1_j&d;(a_&DjIPPxQs0(f3lv|tiCf8@k8#K)gwWjsdI-gu z%u!ZpbqcUuLZq~RPsxO4i}|}N$~X_(IN15P+*DE{@mBq)mXJq zWocpXH{s6@_@u^JNJi<7iExJB26qYE7HUpREx%?v_b9YF@*2>Q(C_iAICy#Z-gu?; z(HG8CU8)^D62&^1T|O;kE8e%Lz6YBy#^=nR*7RP#6obxHJLd$|L0CAcOB|7gOGIgT z1{^=HN|KF(XTexCK43?tC2PvJ;#nimWG%V!x}?F)1tmnlm<}DL{awg|_ha}?6S9t4 zH0EaM(M#*7aXFfRxHPDh44cLsQlr{yU2%qWepDKVBDm5H=5?bXs3zn)=lNqpy=t>D_ zg40IB>5?-lIMx}B7Y%bPf1@6`FmU&dizcQ{v!Ib;3#6+ZqVZ4mQTy+U%xfSn_gVf^ z+mkS;`}#yKAOEt=N^4{kX~0q_;*z@;&uTlFUx4Cq^PRty{(ROA{D$hQ9^kX(c5p$$;3mr{31A9 zDMNak8SdzLRAJJqGH6~I-_Ss#(7SGshW*BkZB_epnTj)UMyg?;m%0YnhYzi+DR~pz zlSz5PF(f)knm*CJZttnN-mXA{m=68J4A*#WgYkie-jqymCUpCe2aA{GHhSRIbVtzw zPmf2yDme2Tk2Eft98n1j_?YVVJ!l*k!Q>s;s(r+aN}^}*@|bZ3Yh=(MruSEfhshR$ zZ`ckh$Jy!N9gz@dppEtdnQwALn@*JVC(iR9>hbCI5{l0$UfqC;#|6;Yq?os+R467H z3|%V#0sT~#Mq2vNun*7Ca#j>=QOUxCmoh4zO1%H@P~i2QB*`1p>ZBx{(+J5he1toq zJ2GSjXk)M6FW1X>%nJKez9H>1&T5`RqCtF(Sx**Uzi2J+t|DxtUK$pMy1?1^(+sT= z!D?aKviy7IVq#+!f$3`c5(`VxM>OH}^SV_`L5tNAC0_|gbei{K%A5?g!NiS-lREb2 z*Ym*zgt<8NE`J)Kqb(cD25#5Q=R*OcDaa!{&A#L>1A{0w1R0UU zc}yWT^jCii(2*jrwVsU~;t{OfjOJqL7HOnxG%Z{$G=5_dSG=RGRkCxnF&{-|?ve~W zW6BSv8hIB&DM(=>C#SIZC*~6PVr>Bs)zn#-dO>T_&B^Zq9OIV*)PalGb%)>xKFE5m z#dPCGF;XNtqZ!N$V$GuL)Xt$*zC)u{Vr|SvEQ$!BZ}4}pI}u%*Mz-#+!w7K#^o)Ef zjGS1hkE9TYPZx`FAStz|_sAm8T1gnpJXiOYA)<`e8E?hpqdLIyLWc(HMpI9x02VEC z3c^dHkUW6%922YK9oGCNr)A7G#a^-v|O#MP9W~8Gqtq1Hmzfs_op758wgUw z`_g@2C_>EA%*S`AS7J40dSMwFVrTLn^7+v8j$~|W1a20v{GtXUzsFFz1w~gqCQ2|o zKxd@R-Lmg1D^{ZeDxzhfsQ67r3h|`HDQ4DK@;5uW>nS2(()CJFWQ_sV0mYWO+71GS zclCFmy1;(pN_NFU&EPc0rsIgpCqfby#V?0hmR8wS`Z4$o6AmF%P4xvmQgxE znPZ%>W-$KM>`8^Z3Qg^gD&KIpSU-vJNMhaC7PK&qo{hmJ(}nU^T1n^+K6St5_8Ou@ z^m+XyNWc4qi#~~^Yq2q4+6;oVrMtrYS$)ge>sQ_MH>a?47K-*G-|?mW@>xB_c}IU) zLe;%FJ2t1oCa}6-dwx#1%aXxzb~(W-f@{Crxi zok+k@^fh7)=hP4 zn6=Q%b8owL8_988jBmdBrZtP=$E_sSYW}$QM>t4(O11UCb0fyz_1L$k_F@GMfzUB` znQTHRQBxca2qzU{2C|%?$xE3tgVepb+f_bx#?l)?1kvQh`F&@%S$y5zW0RmoYEJpY z_SkaPHb{*qFp*|bhJQ3q?yFj;UQfk^hl$d8nZ7Oh_*ufW4$_Q;#9$ZvUC(pAVHn z!WP-zA?lI)_`}iTzdCb;9pXU5S!~cLpiTl6!-0(3X>P;UaJPz+?|)N%{8Gedogp)t z9JMeTlU5n!vYf+ZRaItJDbs3CFW6Fg_PDfXLWv5FTffp}0=pZK3dExmd>Z+-m8 zlw)S*^lFsKw`ZWFJnNm0@$pekxTUdf@MhXvgSPHr=<$tYo?9&?2g)ShTcdFFI*-u7 z^-jVTqYw&IbUgDMb*s;RShBlN?^?`kbBmOh0gS*fmDZhN8CE%!`BbK=_9Uk1E06{ZR}h2Lm(5MS!ikfV}DfuAWd zf4oX@Lqpde@HcQmF53kyn3{*a=68NzX9ZIUi4$9q+DW}pqQTqOrbCY(@6-@ellP#g ze_AE6rE7;9xEFGiNY=K8+XQf{Ss7M?>xVu}-H{j(M2$={e|aE8l?sr^?7_1xGEK*6#7SjjI~HTF~+wjEtD#+eSbKr_O8p^WL4{W`&9) zc3MJU`FxG4<4W-N4RpjeBaJ*_6gtZ(4g!5-QuxCatf0s`N>?&bmSynO&MYnml@x0R zy^%^7?g$$^EFSQ2PEvyN3TQHgYGd!V$E(dc$E%ZnCuqc3IC(YPOqxofxX)DweLx#QVR z_&BAK)TCka0)}`FGWjn)d7+1{d#4+6;b94bOei;$zIV;0#^PL_lw=-+xKGs%wQ|i7 z)Z;GkO8ZAWX{5-PZ)()Y!O)3Tmn1yvf1j`eW5# zgftV{@$}%WK@uwZtdMJvaASc7oF@SdAu}@br%*26;{Hc}ky663IX}b2b*;CtR0w}} z_1$rS5p%EUdpOM4yUKGO7bUt^F5T*;8C>TU4gV6R!XoLQXmtzD-@*eX;zLe`S7yyqL zi6O@h=*h3F!yS%3@Y4{o*i}y079yI-x)RD9xno?bSG-y}S75AJCd?)19LN@o`>;YG zAP|wC5$81e>(4a$*v9XzJRZp>gYK{y*Pf7jf|esDc3u)&L(0y;p?=f4CEp8Aw%zS& zLF6k57L73U=nl32#%3PCY7cOiGN8?)MEb9{{NKfSC5171(1tvz9M@dF=L8EFfql$8 z?+S?*cH{NB=y=89_skMgPZKCPG6o!h^+p*|~(lz6xZgW#0qW626cDnsEmE(Nr)QdgiekR{hL!{c7r2v z=)26Y5eM$mN;0*L-x~qtKo7}0!I6{rg^ps)Z2Xcw zf7xO?Nl`_~5>-+DFYdH18CZA9UBy4t$uj+;9!Cw8$rT21yf;L|<|A|UbO#-Un6GQB@S z?Nrqay;{oziykxVN$hP&06Mb1P;`HKSLr;#g$$8|qrbblPAkZD3mHAfxpE&B-_axq zIDCHL){K01X!yMivck$ri4jSvXQc~E<t~svwB12&o6zjeJ1#{BfID7h9dBM^p62d0%%3%N4g=8 z@8leV*z+9oohahn3n?u=wlSEFj|xJ_VL~fvEB0n6mz7Ie~6KfoPNBUnp<6a9-6JSH5t*t8tyZBG!P276nS^4ho4{1QfV9VhW-CO*!1+0ZMGuIewgqf_SM7 z5aUa$z*=KGCGUgPP(la3`sZ<1d8iyy6?fbK`;{nyUK%VJnNH*z#uV^51(Nu0reqwX zDZd$jdH0(F3#;%Jr8r>?S|++IsoDQH?wq z_Y;~dBOqvuh!su}#GkK|CaO(!Kqm&C!datarJDLYQZ-hK`@HLdxF0n}{*;I2sqrK3 z51rA{vF9vHVU%`J9edZmOSj?amRfa7g%%T=?b?li<+98s zQ$2@htb{rr1>@5bPlp|+od_493Gr)jZ|&SO6DER(C{2O#AA#aT#Tp$bM!7s3ja^u( z0928-&(B@kz}@D2RJ?~vQ?NI=-6?;#v?-{#{>#5mUVC=v;-!jh(7Wl^N!B66ARh@m z^3)HdSHs?N22|`AGK2MPva)LdcYo*tJa|6t$^Gpn7fr%>=GE+8qrluE-0d=zss~Ss z2e87jW~x>QmQoEjWmc6`({z*mvq}$|k7` zB^xSCQ(qmRYmQSW?ND01E;~e)Lz;qF$zXI(X!Fi#MzFbZJ>3t;k(geUbBsqUqGb|P z`wi&|d~@c#XaM~M0^xNanxrmp@{}DH7rv*m3X3MUB-~-Lc@+#cUq(&$Z@wac7?q4R zg2M?puAlT7P#}`Y6hE$bb;iIWA@-_LzhsnPSi;1*dN0Q?@Z|C@+8cOYmYM+csb9o{ zi6DKYP0A6t=F8;oYVowM%~zPEXmE^s1n(DEOj&tDQH~906vC1h=rgKFw`8lPJGQ0E z)oG8;eg^)0ALn$}v?Eai9mKI4jq_#JMMWCbi+>S#$RarYL@S{IiDONy%M&FdtI7lg zcgWM>;LO`oV-a9x#5k|47aT!86h2c3@-4d7J9kgjr_kLKd@elDcrJztAlCGJyS@A`9M%3St^PiBX+~6ZCBU@gm_%L+7^+dC} z+V;cdtil5D1^G}%ejyQPb1a>lc6QYXFnn~4q-&)N+M*dSI3^SWQ*3SGEn5wHjWXm1 zG!~oR2fga6fCa>USTAZ|Dh>pm0!iV2oD1}JZ9Wanv|Ey*tv}% zlW(|)-5!SF(!&KJmXn?T_Ach*^IV9a3!2u12?{$a_ecI&s@3bT6}(ywWg|+?3;Jli1G{a79XcPp=2z z*f`7sct!+Wv>fe46&gPTeF5llu1cj1>)vIJqUY>H67a~niXV$hpkVS&P7qLm$m=F= zVt(zvqfw;1Z6zzIPMF8;)ZwNWVBbj>exip*Z#Gfk=4HR^pNW=5zr`nbG>g25{DxGW z&{2vFy8ID}Ow2PfR^US@C8?C=Wz}ODOHG(nwmh zlv+1)zGWF3BB_7KJt_1OJBawG8qa647X%qL_UCP1$Q8WXTq3 z+0v6#U=))7E>gbbRSTRGF=ro#Gkx2Uf8_b8cvR&JNa=b=TPiC}EKZ|!Dm#8aj>r-L z8y81v{`Joaw59p_Qj9OXQH|xGZw%Sv+ZC0GV}xz)^-dALUFwm%49V`zf~J?%gdgSDWIC*qGwc*sJm^Fc!v975~)KpuooLpE)7Lr>`u zmbI+Z>y0u+49i#)e^eiF9y3M_3r7i`8MS+2cmG`{@5?^08W}6hLdhx>&s)a`3mXxH z)bR@gCV971x&}S6w+Mo{V$yegPrXoJ1XM+pE^7kc3 z`aHwHZ~r<~&++z}g33ECU89)RAnwS;Q}w9zGS%?i&|$X@#BvZMUEsy{22rAE0~Eb2 z>%XT&#>!_7nuR36b!T&FA1YdtFUFHH=dN4qCknGOz(>c*Ukw{S1V?ptGzepP*+gUs zdh*gGPfdkJUh1iL?nZVN?^4<}g_9zde{~oA&ZASBspwnt%Pm_U*F7)I9E8!M9dHP9 z#P6`CjXtx<1llOwyx? zwo!R(mTOBx5{)6Z*+o*ZbPDmlKhRYZg5Ibc*)OR{FuYb3UL8*NR^)`a)H?M#mtj?{ z@N2pa5>7h3mm0yCFoeX;;++rVi}J@H1H@S4#mSN`<~!GuJnvm;4J!6~x;Jy~{y2)@ z<^w&_EfzNYxJ#5b$VDvln_Gkse=;gdk1b9cXT*xt5+^Q0k6b7KBW}n5{AFIWbQpT zbRI$KQf3bZ&f&mEA*(Z`2U+8)^rH&(^pd9Y@77mmMV0c5no+|yj(SEqWb1B z9hPVYrQQtiz1nK2EjSL>dbt7Z=jtnq&BFxlY+kPDxLDL0GE?-{o=Uzgq_tbQ76k~V ztV{@-z3c@Y>g%$o-nYdo>q>QBW%H|MGv?#G*d_Y`p{VNeK`Z;bgLC%Jskh+FO|Mkh z%@9N!>AZ;7jWr9XvsKEmT}<6Fswh(qwkAs|KSnaJd~ClUWcX95;mDS9uB?QO^b&9= zM|27&DH^T@Wi_yk`81yf?jV7GGq-?F1-P^8iD(<3@vlP|Tx@EyIZs2| zd*GM4^$}ZI=221KsP}~^v@K-#e?e)~v)heMW2RNCLwo}E?ZAVlx^*+Wc zpgM(6e3z^?eG|#%rA=EP$QjGz99-sGm~e&JLUFqFJrdHnPPOO^@zZ33j z8O#c!eSXO(aV6r(`WqX7j zVT8Y74zCsIL*j|?$&#r)5fj+twjyO`jAzZ zDVN_C{?7T`vww9w6g*=TEgFO(sjK1$jAsJgecI5;z{;`vTtnft$gLw3r^a)fvg z6Mf4X14lvBytx37`@!ckDf#{*X;ArG@`KhTNQW#4c2L(_T~1%xEGd0oHCAqLMJlr z$9?owLmb1pP;;(KQpyfKo*3lo7zHNu2y)Q&yk2WeJR`@e9P_g4IGrFn+D&{?3Q=c> zun-f6nv(%|$TEXY^tO*%EtnJ|=kRgVb}W}xnzAac9~l^oU^ zXTSJ{1!^rxTDeqo%+M9}LG#cD}aL_PF|6PtZn2v9A znh(cJ9u^5R@U#ixjsoaGmq7%6W01Ix9`!`&F6y^|#q8Z?Y@+WVs58NR+}v>Gcq$JH zl+h}QJxRdc!Lx-6oDXP0jd0-d!*YxXxvMXG07#?>pqlE61#SZR5cLxuP3$er2FGz* z2IIeeR~dxIk(To|a5Cl}DNE3c#{1ycH!gZ=Lj~vb4Aw^9+U**!EMy%>NG!k+Q9bBS zW*5AAlKqr8a*wPN@rbPXg*=nn8J&k4y%Q8NBZL&ZnJz!1FB>6`ili;_7SMYd#K~^p z?)De&7Ad=%tPAaaUBV8)F#_-*S3~X30g9H2^&W>f&nviN-zMbiSp#i1z?*4M^jtK6 z(MJBXNBPq4fffWWbP^N@wJHyoa5n3e)ri9@M5L!&CZL;?Lar*|?ty$T^=3{Sv-+hp zR@VtManG}*Vjk}>IT0|poAz2Pvb0dzRki}^JB81%LAH4h6xfF5H~3{4;%P%;;M4VK z878p8Q>rSD!Vi-9V(fd?wlHqopobgUbZ+pOVK{D+U%s{etA;eYgd)o;1btr1kI_pB zZ7Hjp+tXB7|HXO_W^av~8vZC$MEeUY0Jk`?bJ!uJ}CQzuen z8&tN>J+cHmz}84ryc<>-r)IkDR9*=*R5gSLxoW_XyGWbei7+^O0m}Car5%vN5|<|{ z-8_K(e9C-HOS)K5;VT)p*bE2>f>rx8-=atDmTV@-OFijQG@X@^o2FZcN`n|qobIVMpcG%q}CbR$@`0r?oT3vl+jE8 z5|s#k@};a*;7w&e8C^pJX|YEb${ZTm{IZNuCME@~9m~LTWu9U^@YI6BJ7O&d!_4M| z9yf@16FF3rpUQC31^;!G6dZgNOB*jt`lfqHg+M}>6p3wJ=lZol*encZ6fR=vrU5>z z&e&6UjSRgeZu`%p|4`4476SXXUHwTP={i`Qyt7WFJA@8pQf0uOG-P?Jm- zt@dZos{J^nDIp6?7P+=@ZhvIqZcEnQum`(d$}WXdY75B|i`l%$B~2J8ubxzgrdG() zzm%0X0ru zdxPm0N9X1Gl+YeEmgAJMaMX?owDi^pFxI{3G;BCNAW;7xOc$d3fIS#wLrT<|8@m~cQYQ!Xu(_`D zG?o?28yy(v88Yb5qLwJHeQ3;XLT`Z@`|H#IV2>OUo~bxiCju7IZM?CsPTn!N7I(XQ z!p#&Qd3%-rel^@}5uL)~kl(1EAswgf=ZD;Oz!Y6oXVu(bKW(@aW3sN`@(ukd4kXD; z>xKLTJHUg$f2kd=5FAxf1z4fi1FC~AH72>>P3Wu0U3GK3Nn@x>o3_OfA^5ZRQjlR< zuYtS>%lsGfx@$ZPFhPSjY0U4Bk9T_^cG%Sjygu6C5wErL1c%jJ*YpKp^r_C7l{h4; z;?Evt2JaQ5&qx^xB2=r;XDGgiuf~1lhxm{&4YvCNofNAYZ{HYbQ zITDCGKBpA7JFq*zDmPaA{u|(>P{wZ4zBWIC`co>r{SvY_^A|os;5KMAjTE_z!9=YL zKB)jJG(!%Wqn7tnrg+5medeaE&4LY=A|8{byspQ6N)+Ix@=axe;Lo9EQGA$FLn>Cv zd(p-jnD44f#kk0mUw!09S5RMtGJPpX)a@`f_SOBd*c=^Ia%ba6?Zo;yh$BeFq$at7 z(UKi&<Qvg&G$mhVBVTj9iRNUNCw_%ZP?^ksHrmxn-TfLZp^1VZ|yz zs365lc)CyD5L}^lKAJ)9gfl{PZ#C){p&o4A*zkMyfYeTDc_~y^3S*rfK5w(XeN-!M zcRKd_jE?#>c}Sa@eB1>h1ruQ#6f;gj6v~`1*fAq;>G%PGU(YQjsXJyY#Fi~72CCDI zh+Gy)RO6Mg)Xo^xxw5`G!0fg*EJFk{$}WN~LCe?y^(7c4LKBCvoZ->i;GZhO@8~i9 zCr}^fhza_8$9j3`Jffpl)RkG~F9y}lyWpv=I3>+gN#EaRzZ+E}lwyNyIK{;S7?6DT zV$BdimU5we;>CoZZ%=6W9r~auU%-w9$q8!vDxP%8_!BP~;Mr$qp%qd{!p*#|fnrzA zA?9*LUP3ifD#jIeBYXQ%M`&!-@okc5#yZF8qizzE304Lkw2j^Z8%T7rBWap+urS*+ zPxNoi$N;vd%Eh-E9&TLYjyo=PKmC5vhbKEhCe6;*E^FN;Z%54hw=R+StC%yI0^-u69{F~t6x|>vXMwDFvewxs2E9d+4`HDA`coWDIn~PSent_ zqr>tx2xaI*4y|Sa%HV?{yfYb?(+}n4XV574%c*h45D~^9;8uW3AvJ)bShWI2wipBd zP|tD>>$LAya4EpHxs*$q@T9R(oE=$DJDoqOr$n@q?`hc5lF{j+ySPg&mxVI0jBBymh0+lCSQ+$qDPAT_y7O^sbZQdZYu0wdR6Mroj5Bf%3sbhAw|L|i~M4&^Vq88?Xy(!Y1KilxhpjFbr3i~}`Erg63Xmp)7AaIuYa z1v|Z;se*H=@gA6Mw45T2*CcA+DZHENW*rBtLhxq{EUfTH=rISw)zKRgrYzy%V?|i> znVL`Hl*ioU{6y5G>1QFkEK3rtFi=T-!{dp~@lj})8?&R;QTk+!nWh-ie=umUQ$(LB zJ|75Dhu7}<0{{xV93l)kqbvzdnII8-mR>rZUk!x7c94^!UD9Fp(ZLAk$Vd)JkcP_9 z*{jisCo*O}TOqp0@{J@LpN@u&d|{%W-tJwv43h2|O!p|6-f=Uv=|&KPe}wM-xe_K! z6n#{6V~AKmOe5|94q&5v1EdE>umCIw0Plnd$N=<;k2Hf*a>`Mez&6fYVVnMddFmbX z(+{Qd#xo7fyE0FAdLOnOq9Zy-8k^ON)#~P{|EN}6$wC`f}i#6cU~Ij%3aHJc58VDifmtpN_^B`|T8lC#K+yrohp%_d~m~(F+MrJ2a9pYxB79 za`lOgG%I$=EfI3w7ITd=`LC?h*sEG^(9-{^PQDT#js;Jnd7vSinnn;C-h3A8?C0?S(rg&TRY@GVJwFA*=QX2e(7$ch zNpN-`tH!uoHZNhkV!);PHZpnQiYP4rhRxM77bss$Ez2ybDYc=H}Jc}6^TCo zQ9ywXs!EDZg{oBZhT3y6z=r0ttPTNKOUGp=H90SA5BZQc+WI6M4dffG*gdJhm>#xx zZUp}+vzz=cY>lES2sflCuS{yF!gNkc`}gkma~LvgAAQ2Z5_F=-oBdB{v8yFRDwW;1 z`LMoI?efv5o_V12a`oxu1RdO^U=+*9}AYUsOq2G1pyyxp7Emy5?>vy>|y zS2i|dIVjmIAw`(AJ!I~M61()o*to4Mlzson45(scJZ!RVv>D=`92vKqIct&#D5iCo zw~_O6vt7-25H7!4ZmQp%7?M6%|cga&EzvP!tphA@2+F@;Z^T9 zzO@3pY`WQ*Q{L6YLUL0Y}EQfL?Wx7bl38^W+;Krf7VAV;0*JY)$jj zMW~@mSQIl+O7yQoPF|8vR!{Y+u!pi$rttTs-fR_Fh)?s-V#r*()I1J+n*wB?_{F#8 z!jo6@2O&rQuY%)QBe!=6nY{5c(HpZIxUp#%##8B*-OfwC(X_b+6dVHJrt8+-*9n^; z?5U8Zt;Ys=OERq#nhQ{hk+kuNp@*?UimTkwN$J}GmScD zI9Tj%!A~JUy8PuDt~Jn84v&v=3OKaxOL4BZ1sPK%1eDC&^FQ{F_KZ}Ac9~wAx5-+| z+Vw*t;S?rZ>gYGap*7!6{M5Gc`;+B{HndIy^GHJ_b=B*4Y{|TTtJiJOW0o0PM|YdN zxK&l|v@IE{9+EY7Twob~r=W?nTMQS~j8~cW9myBRIhdXjMyPaP!rJc!(t821_gkPw zz1CA+{@yS#JLa7uEJ7(yJokoWA0pUi7Uf0k&mJd)#?nz3UbcI)m7m`-{}M+lLB_tj z?wiI!d*aB;^nK3-#)J1XNc;H({a3O4;@pav;laKa&_bDjU|!LZMvh{|PD=O4VmVYq zXAX9X+aB>Q&npMclW4P@Pr;z86SwfpHUZd|-v6RwpcL2cx%{SaRSx5wKUQ6gDF3zU;X1>o?E24E03^q+rxe{>MS zGZDd~%i0Q(guola)xbWF=8E8fvoj(XLS^+gUO`e>aUj`P%!I%lMtSZ0!P--(9 zMJc$p3*tUUGHlQ47cXOwU|SN)7)?oJVqWmd4+inHV(u%b)*qAq_Mwl!;b}tWYJXvR&F|8!1F4KqL$iAd;83kN_^T%8`5}d&lawHD_3? zn-CAcgUX1tm#-ax6U6|sV@m8uDD!n^cq`%XM7sipHw7}1y>Bw9%c|`bi5AX~K7!CE z)B=%%NBHL|?Lj+H(wcLHVSd@4BRr|vmG!JY35GO!m7<1078$gEnf~q__GDKw2eKD@`PkCl0_4|@8(PX z#pq*v0*5-{=K&E{(B?d`e`uSK0#BL6|}3Jd0vSYWs@2%i9I)exOv= z+n5OqNx8N5*UcM+Ccvd8=@qck(aVn+%1HHq!V7STEy%;xh)job&bUv}RJtt`cmW8K zld}p$4DxG&9y7pC#nF$`-%R5o(geX}7#QbCmks1U`&wTM)|^nVV+jKKYt@@$loCwn zT|D5xBIjSb2OR5C%>D?Tv)-^X)3K zR>YX&qQ8|r+`O19afIisPI%c$oi}%(Wl^l1T=CIk=X=^CjvWZ7$Et=Lr`gd3;5jg0 z|L&#@6N?(@d&}0uVI8aiQQldr)0SkW zpctf(;M=vO&-fHZ@~0;3eiQ|q*Ou4`3DHrdVw#`KO|eY>#@{3$RF4t7WK;g#QH)` z=0Lb*vM;dB_<};?&z0aBGvUuzuixd@exW`>DlJ%|BIVz?4N2;f$d9j5@|+7vn>Leu z--sX)yP1tIT-5ADuIc-kbrU)3!bZyco_;lFa8$v(Cz@ZMHVUB{`-Fvaa3y zPl}|ZM??loRucHlMu!=9`RT8T%(7;NGTW>ueLS(@66F*IO_eqB^B8su|5aV71(gPTpT0vV3bY*wCjh`YGGliI$L)dl5=l4wH5)=D6bjXXU3uSg!Asx~_ zGNQ_SMaQK4ofy!FU?vyGaJ?`uTI~MC##F^{dMAQn$HRhQ21Msxo$RUQD0b*^K&bj} zMX%f|hy5%Eza2ZbkGZLk?e!?+5m;$0BnuSdyx$nXJ2E^>C_KLA(SO+zDlMLsUL=AZ z&U7s=MsB>=b*Bxd+6plVi7Ar(cnK!Cs3!@c*uVrrZq&;Hl+6T~Pp?CEfk}IZA5M;< z_G$5%Qy3IY?=AyJ{3jG^s$Z``W9jU_f_DX;j@B!vt4x;i`BWswK9XOR{`rw%Zn&Xj zc0rKnw4=e6+Gk@)h;Rk(cFve{#Lhg&JG)F4Os3bK1FdtJHDGtN6 z_ZJ7toxPYu4D%b2cuGJxHc?I6@=|YLNvV~t{uzV@)%1gZb3I4w;leaACutnXyG5K$ zZ~I($mDm33elbJ^H)_4kzJKBUkl7z1Quhq2890`2kU!!-qY%o>3@S2_iJAEY9STc6 zJ!4T#TT4@@5P|RePpjj5=-{&+TMPcnr6S=NuX&|bl&moU*6N#3CU5R56gS zAjjA)QR8h@O0@>C>Xom$Rmr7J^VE2CA&U7a_51S;;dw}vBjhgy(&D4#{;++5g<=m= z6*^5pc3175R6^%|E5MjlSMSND-uDINQbKw+e&Ti0ofIJ|nv7#Jg?>mFc@nyN4cS#TfBoe*R@F`zWRm>Vba+RPen*+phVyoBl-KSrMV^+(G30S8g?haeY4UU)H zzIH-m-3pqL*3^u>oQh%8e3R~y)J6x@E*%Jc3uhlCwbg~V9gf}U>Il1wBDpQ?ydz{NnkTv33oLm|1Dyph$)vf!$c4(0;` z9S5ly9K?uyDQW)bmv~;C?1ri zIqZA3$?7>KVE|KK-UHL^7|)`*RNr|W|Y3h9H{^>!Q42aJ={1R-z`2g^hXNU6>*q;s0L?-)ofKkSu_&%`#| z-900#nN~21dB<%zk8tPTi#?>6(6f4%4n{KAR|D%?axeDs#X$LIVMnx;VCn4)C&_XB zod(1#vg^^|@XWL8c^6I)8B7VUOyY4vF*CD)I}R1ZNjeEpEBqJH%vfI>V{iO%&D-Ek zK1}cO!G}aH!Pj0G0hLUMo$9Dl8(T;!tBlQY^gohX(jveQZph@IM=ru)FXhJ6g$G#f z>)kZiVMnK7jdC?(+sWk}knq;^L;fZQIXH=6SmEnP&5crgU=Mj@ql;gOL zlC(ZZoN|mE!A5AD?SRnAO|=NiENT&wlxSNh?lI|MC~M_WTixu@GGilo7exfZ=!`RJ zpcu$}SVz-#+$thN8u4Wbiv#p+Tgz|-sp2FUV9i_gW1(E3bZODrtf|k!0p&b?<5mE2 z;GYj!Magw8N>GPXYU0ApS&G6ruYcLjwpzJzBD^yD+^^;#)r<`*G8G~cquAT7ygS?x zZ}bRcs}|;f?g~ns&(QnchE1|d(sUD-fu-<$BnkQbnZyLVd#|>0sy*2owa7GKJE0;+N?rv^(-jAP=*2ml=76+zpG zrX|>JZTvvbgqu*{PEP#QiF)S%68armt=gm;>!23Za>yd7vNWrzJs1I zS>xkDnDmu%?2EfV`!37A5k_vE%{rUkrLh@Uq%v+_3#4ibV!(E45euu^&SLD}@5pOO zmU>|a=@~zUFL976h+O7igzPvTDyh8!<+PZ|1){+4YhEyA9+ShrKQIshD2qZ!b zD`nYqhcei`Qr_zQegXdF2Gd*;Z}~JCNMb>3R$NyP3=16!|(RSV6!-S zVP)=mgKL7P9lJQ5XLSS&6i2~IgiYeNaHv2D7Y-33_y?Xc>Dp*5_j>d2X~C~-P(whE z69+B~Exc{VWv9(`L&#@2YbdI_P_~f3$}&q86o#*7^JFPvc4kNMC31}3{JwgVlMGb| zG7ENNWXU0SPA%pzDZUWgnw{?yl}r*gu)Q9)RfpJ_a3~(^niv7+ug9UN-9>xt?ui8t zvE|?n&A@&ho4S)ZVsl)E)KPcmP`SZzgj0W)vcLx$7YJ4`#{3{MqX_*@Hi7rD=eFlx z&&ab+E!hBV5fX2HaSUTe(Ocv&Yr78>4H-peR!awUs&ONH?dYCwnde#L73ZI{Mw&=6 zqm6xd_AR7JN&R(?E^@A*lxNZ70V02k`(5r=2 z3~j%;HA?(_nLbV)V4TpwHK&1I$*z`DS|R=%o+t5Rb#_j5Ux>ToE`wjbj2*w8{N9!sfQ=Qx_#+U|Zr$-Pbhe-Mcx4C1EFd z;n#DN?-A&+{y8ZHy91_@!%7PMZjoe{sP{-e@CL;c96es@9pUY}d!nRq{^D5g8=XsSA`h9o*N2KE> z^3r;i&07#}>L-5;8R}X!K+F);qVzP^J(nBII}aGNu|RE7comH|w^&mgFCl#aBl{o7 zJL85N%CdcO$GQHU@kHB>iznY>MX*9I$KjI zS86oexIGz>Ces$+BkYx)JGZ`rbx49P!O z->yY|jr|BmIk)*`TP1f6Ua1937|<@c;iT;qj>a8k!N@8^7^LzuVH_h4GBPJX%iXBqcLk?e zy7dHv$5he%xMjNO<|)1U1rZ)u0h&9Nx*a=8qdstSp7+WQ#R~O2$QxZWO){C!6HxJ$ zufOoTp+QCk=QnGA*h~8DYN$A#C-|JY^HWzf1+Y5lV8e~>1g{fIiT_p(!xoD*LM<0f zdU62~%QZXkvdm@l2K!mK>Mn_~F7&r!3nBo_SbM`qqyK@3q!n#X?^anGH?oj{44fy^ zwozhv(SoE;n?sYZ44?{u9DrMwfo}uvyJT{|P#otYY6&oCCM zoyf4ikhT!MA7uUcRn(y`kTljK4el#BlSz&Jg0CLW(EqAbYFs(+x?YUWL^nUI&Qs02 z08O*0Ejn*Ep{Z(a?eZw_1PlLe0Z!aFhlT|N6fE&!+i=QWwy6u{XV&L`Neg;eU-PJ>7A0W$qfr$~9&K<|cX*AGg-NOgMUZat~&7fq}|$upw1cfhV?lY`}s z>LW~XA!*thSg67ERMk4kemc=v*knAec*-Sci{uN^B>3Yd7Jsx|`?u|pV*JPNTsp}f1BnQ+qCf^2nffwIaNt7w3(uKK=aOnktk|F7OLB2IyvnVV1#8%C!F9OR4gXB+Q10xb~C;eAO#CZ{Abp zeATAZJGR?1h{NVt3$-ZGP9m#<> zAIE)9rMCpT`=C!x-L31p4G?4%yvL)Nnsv&s0kRu1HjR{;&U%leb3JV|l6sH?3YuGE zd@|^?hrr~##g`w*3uC`kvWWX@08y#Tv3yKWLP^2-S4yfVZt?E6G`lpi9At^K2;r}9 z;1NP95Y&e1Xbb6OrML6>VNovR={UNun{F)w-VoZ%F*)FDF+nU@B~%NG`R8NHLz==i zBYGbTDt)a`-XqBW`bY_w$V=rD;HPkm~Bj9(}ovncJpNwf8iru5eD;9o349K zLZ8D7|1`DoZeD)GXVDH{*NI!cpdy-?*qV<0Rgc{Dc`fM1cDd4gp#!RlEd|Q63lpmG zR@bYsQ{II^s^T{{vYyx$G}|T2nsHe6no*xua@qy_Kua2SPWje_ODRns_0=yJHn`b{ zp&8NH9V#Sj%Ve~}uA}N#cAm5!Diu2uWnPPC(_)g>GXXFw>L(3UMZb6kr%(8B!kKFFvuqG1m}Yas4hziy2TvF zkIT4WeYXFAb;rS+x}E^p_lsrL9=7m0MU=x}Wa)bPivV4`@vGj|c0h z3xA42k6efL7dhH!Hs)PyQq#B1yn_u??BDHKD4#G6^3NhG-<-PUu(XJ5oQO3B;CHZx z=-4@%)p}2kFA7zoWw={|*LThpJi44^q(Vy;D#rzNTt2E+v+Mp8z=oB@TUX1$j_bhd1Lig7GUPv6arodzyH-{?Cs({5jjGxcmjeL~dsFC;58gB;iZ7^?S;Met`RWgW&kJUZSl#{CCi zP>@Vj)KjdldS6q0on=eeWg(FeHDK$!vZyFS+!l<|2xipnpw*vv`X3Eszv!S?27@Et z${1rW|C@|pt}P3*T^5tQc@f@%7LUjNz=^gMF;TLNjkslO7>Pt4**2|PUVj(;QV$Af z!T1dctcO$bxO}AVN4%7kH@Q^3#j+PYgz2o&p1inM=;JR&J&;=)lS4q$HgEs{Isn2) z1@K`xWC6Hnu!LCd?r`ut0b-WSp8S}7+nXX>b?&1>=E!& zoqHuPTaOQUNf5#kTdMBYg_`Raz(8&dCA@x(ITjyMW0?++ty9h_P#q_enA(&HM^Ef> ztQU*PQn>$|-ElMO(B&!gmco9JDF2v$Tod7#Dv2!m4dON*76mFjV6Ea>sMmEEU{LOw zpL&^C_i7Paz3vZJ|j03rZ(;a4R@&SW1{n z@$&LAgmnD^`}~Qzv$F5!^E+&taChe4is4ae>&x7>P${6t2#GjiwTBd4jYTNh2J}`? zXH<-M!bY`|XKpS_mu~(@y?6Jq4w6P3QE%*a$QbYEaBCOR$66wP?Ql`dGy8$agsLg7 zJWF+`z$b|jS;c?Clg$ly$ITNa(@utLKEi9Hzr)8 z40ZB6aW_d2Xmpa8{5m${LJ$-S3T+%w^vBcs69<)YM1|3BrFHsB$(pl8(hzz}Y*}om z(3#}&y@$-po*U9A6T;({%&4+b z2OiPj>%9!xCt4riod4^Y`uMz{^%6jRW^P!xQ%8&Wk0PryhRWAtxJIbF+%}$i7kb|u zkkqQfh=g*cybJshm#*erG!t1D6-2-{@z>k9z^Sb8 z8@V17eX?%J=AoMf;c$0b_0?EuD|rWb<@NQb7WrxK#Qo$l82^^Sx3=lvN5D}TIjL$< zr(o|Kv}^de6`Yjc;h^)kZTBeV?MOQLnvn;5KUF}X0a+(H#<_-GrS7%QuI}bUYL?o2 zxq-RgzZz1dq!s{7rEbWIegtPQYse8a&4q9i^qNu-p7c{_>>rJV7P;iHA~Vkm-m)sl zuw3I)&-wcm26m9`q$>+Okt`-xJ+*6jyD_VMOgXNo__2oKU?BYg2TEX5=0C{P2wq3EUqx}IKcbj< z0-7YbQogW<`yQ$nvsS8B-A-`yXoCVmK&noJrAkkxpO(5iq0|8bRP`E)c3fkPaEPI+ z`f;Cv?GVy#`!LyFey|$rv{$G!xmvKiymZt?Cr#!?-PCxC{(ek;S(0_N5X&Sj*yPUv zUOKyFml&796xxo#t@;%79i7(?O8yNEpMliNVt{_O{&2{aNIe{}3a*r;*X#&Jg0R<^ z@ALk%lcRTymstwvdJJVFb@qsiDlH&OfaoecKel5gPB+K__w1|WCLR4jtK}1v&I!0=;fXB`zKhw3lJV26xR>7t5;Xk2&~ zl?J|P%3fOQ<>l(fi_N52yBk9Qh@Qr>G{N9}OGz86T?ype7=Y5LKNqapQ4DOTFuieV zR%BUiK=I(g$nI}3XTyo|dV#uYftNJ#AKLs>$aU0-EiuI|~r_wahg(Tya7Ws*>6#Q5_Fi-aJ9nvIEv7mIwd!> zTo^!w4o&77)G`*3JV+NNNF=c}(!J>1e0+5{7)9_y2fF@^8L-uM&`U~5I8IcDzMI5G z<7M!zyFCLdOAYBi@au;kvxsy;ZE$gEx_YpM(dv${p?29SBWh$V#cE}$?xon$xxj*} zUQUSg%>W5@#u<@cwx{!Gm*a6kP{ojZ7_iOsx#qToL-AI$#BPUT3INbvZ`$RAy~cB* z?*tkkhUu~j$*m^8v9S|vg?Te-{l*w>tR`>62?77-Yu7u@D z^*x5_EJ~&)>8(8@^4H96V{@^nrq`1A!1i~6vuf*m`dow6 zc8)XCe{#b1Aoy(&6OKL4c4rEXrrUx_H)Sk|vM>*D4!T=|$lAu-@$BO?U=tf$9g$_F zIK(gaY+g)=rTOjBl-wxmIIkl|O5}H^$%l6JbZrMMPN)Ni^pF9jqQ)}{TouR7TjUrEL;$h>J zhYb8TBIn)@?#x=jJ}qFM7O-6e^2B4PrR9^d;5!3#+GZC_i3CGT{ENweUJ;Fg^@@7MJz}1*Pgtj{Ij`x$LxaFN15Ff8)}Xr&gX+SGB21y6%_uxFW7ieSKEvp4Z4+|2NNz#UH3Syta_=-8}q%kX`l`}^`2@H24 zKeEZ#KmZhl!1AYR?KQ!qi&8qklEuner0)yGW~qT;Pi=jHwII0R()#fo)C*=mg*Lq; zi0+kSt1?6_(+ip}iqo_UwuhY6^veVX^^jvvqn%h#vC;9rL$jh~7|;G1;v6iaDPSD( zH*U;uVkms4i*F2mRnLZ9#I=S^az~JvAE?VCD6fQ~)&#zTE=|#p|LO7125^}atwI(T-PH@@orXAt-dP#3tn~xhM7AtKntA8n@ItUz z3(v-EA|}aD)m)($sy=I}YM>8wMIVXZpSH=stQOkzON82L!FoT*>ZOs0ANc>a>G*Z@ zOc-pPXcWoFcP6b^r%+3+2GGe8q!J;CR+rX@Y-Xc1E`wJN2pR*ljmkN~auce1`~FI? zi{NHY-8|MsJtOrW*W#seo1elh?CQffdEKMwu`S+Rv$c0>8+z7HK<|b=!qv;o2Ix8z zr1ovH^Rc1ib<|$1H}(pUrw(|gPGu%-MVo!HYjfWA4#wxZ;>D`mJHq?q2;Q5IuMe%A)zHNiZG>&P78+Ktp`L%Woqg%gH-Nmx4^Rd{W37VTterO41i?^#z_N8DnV z(&!JFh|=a7E*n?D`$iuc_?Lm zXT;RcsA)!Eh^gOlEN?%v|KRn%zhFZ!cFBaeMDoFT)~~1Qu^9 zYUy}@oI9&RxL>ow|Bf8A%+{w#hUDrT#)7wXTc_nY8-qQZp`)UeBxNMy*EQ#(3fgIY zM+swK$L;EN@|JNb+OU=)qiJYg?Vi=SV#3you&p2-BtB@5p31R&-8JXToi`~)i+p2n zbmv!B36@D49k!d~efPJwARCKDo>W6k48z{)_~KOi%q1a0XUUjbm0_n_r@_FZ-8%b# zpNZ=;ACHFPo+MT}zv&XCBOl^kozB!p@+0lEAK(o7%Eo{d+iynlf&=H@7yI%GwP61$vXlQp9s zbHKnu6+;XKDBAe4jen|}j6YNGk6l)8tRg$yE$wn@@|WO!7%JTj`C|}?Cg{c`TrEL; z(R!q+#dt1FLa=0zWNYT>0$}$49EEQM4H;@v;0x9zb~?hr9yho>aMu~f>;<7gb3+%V zR*MD?Meidu-$)&f^&}|(n-^o8_?GM_YQoEFsxbPrV*?03i}^NUK1|0GU6$)*tdU1PymKl8^i;L!0EJ`{Bys>Ee|0b zRVRJo=1#gV9?zan$UUMhOB|B&O1CWuznt#rvzwq8e#?RlvvI;G-&XDspY0TBhR`JO z3i{(MnvRa+Kh@MHW1n~jA+&HZ3QFW>Xm90sQn&-E+P;}@%!M@()gw{yukv_;1$OOa zV*Q*AZ_~rwX+U&kI(lNk0#WtW5lT2J!J%#s*mgJD@quJ#&s*gLqCxKDrrS0PAc`J; zCEBgyv%XXIQ@xHfO;#jfVJA<%_xu1c@ zq&B3?OnPVm-23XRY2`tL!S9ZW^kyxxZ?2W_}E!~jb=P_`=FMr~Nv zaOIcKnIk|_oBSX$XJ&God2Ws3DJdAd&Sl@KJF%`o^lVXpa7$&YD!F@l76oIH2?Naf z>HaJI*vdA3CYD656MoO$$hK)LvSoeA%Wyjfi&yWl2sVX?doYQ(pOK7Aq*TNL|+6?pU` z&5lCzIMlRIE$Qi%bc7%$Zgy)17htrSrQ(4QCav7`&W{{D;qt|=_cwFy#f8vNREP$p zdwg@(*>R|22*3ms_&3{=G!lM)1vrk{hAvR~9YKu&EQ-b9ewHc08U4(X&GMrIPImg! zYbE8$)T>gi{~`*e=N1q12F@5DR(0H>SNo ziVFF0^mo4$wShN{bc_cB04Qw7@fbK~-1`rYnI78Hma_?!|0So+ci#G~C2lvQlN4CN z$B z08yGPrm^O1irQ&A#R`GCYEB>1AO2V-@#$xS_x#%Lv>=|mS+oq;#s(=pTtV`=`a|1?J-x|);(b4(b&)!CsC*P)ClW6=qi4L z7*KQx_3KlvwCxccEHIaet5&h2(SALaTz)`yIDSdm=Fsude1GjSbM04XAQyRSVdf*P z3t*jr1DX;NV+U-){NgU!aS(GT>H?VhB3oG?-{ZBpUN8v@5fa2N^Ns$02hf{oa4G0AdCM^>5p%tCzH9Y{!* z$we|Z-;~jM?`k$GB~i-aI(}R98&X^-sH9rsoW2kEC95bMQSsk<$*?j$(V$fj!s3;0 zY)+44WB5WPKY~`?31GOpU_{OkcCHtX`r%_F^^S#FO$nn5pqaDX9Lo^FK71XT6Qz?5 zVi7-3SXm3FZ2hHul&b+}gFC2}`7`l0fISUrom<)zj{fbst}y+3$CrECuMN#qoW}$> zLxu2hA{S{hfB<@Nnvvp{Ai)^A(m26*r7^S^g%pR)M9rqKrrvi^!KUPOlfbjoY-i4t zlHdj+_rW}>wSI<5uZqgD*O-|n%DPF~Rsu-%g%dSN@gK32Hr~{6-lfOaLj8gFi0mt) zWyhmWQ$~`c)}zrnlH#emjAehF1d^&8fQvQJ)g5n(E0E!vtsNm zMsY~)rQ|BkKhC^;7Sb$9|1eN|*i_}H4v8f8BmTXcNfRExU&luBzmo9)cw_+KI)jC#;!9L`#h+5+gpBKg65OEZKTs^DDt#fZVq-#m(?> z1k1FiXSV%bI7|wcQ|#;%BT&!d9#Udayan1dBPJ6sQNJpC0~fIspS zhe+w=(ZQm1(tlmtMDYa+m+O~w_(7ph}S_O;1vVvIO{r4g&i3r&@1hf&FnRkHk0pUDMt3z z4+zKqt)T>ZB9&er6u!{-+GK53Ea9{oYH*=(;hEXIk;&vYAW{ShhehoLSg(Si#$7`| z8_YDG=!h@nk8q;4Lq%p+wSInvLP)8E3_x2h5e zOC?Nj?uYYO?b!u#x9B}dKR(Q5e{Amw`82~6Be-=`Q>ID)vJTxfdeg>_3B4I1prA)oLIVKN}`6r>7IS47!lL487 z&01J@T$juc7sDzO!t7z$L`f%wR}qXVmskR*<_f@j`kVS(TV**vU4NtV^T@6)i63*9 zcV^HF<~uL#6n%s#NUh6VltaIR)FZL}&aN#Nn&b zXj`tMtQTn`FZN5H5!PL7qg;hkG6qY-vCK~)R37qiJI#wiHpcSNGgT)uOVr$2nTbjil?>Ez{yksJz2lxHYwl-?XaGp3<%DBAMrc) z4WRJ+)K;KkkJgvg&AiErbJOR~FxX|ZZ;!V%epB}hRGPP8@)%u-qTZ**durdV6v||Q z7&;jN>yveUl+01Bf%;vRhyS@#X=AA~XC)?5e!7oa_J9hNr%nF(!8~`J#XIzXnrlO; zVK@KpzH4TMH&nqi5TQ)u??30X7?v7d>5e#0EOy{pp&gRt$S92SV`Oh=vEr_=3n4c? z#d{Q6GGN{liUJVEyh}E&ENB)NNF;KfOAD+N&YJDI@*gn7mkeh4gAc}Dd}s&nu9IeP zwk^U}k(Q2T+9-jNJ`sm~!~p|KxP4RuBZ5v<&*jG=Rr_YKIoS5N_9TS?BN^Q0Wt{+l znw)##Cd%?6l;o3z?37;8%@;CB_mYoXc+6u>1Rr_zgngifZfOt@6Skg0-JL6ZXjvN$ zsjK5}Uw3+h?H-fRE;-B*uuqMfNCrVAW0laLS3d= zrmZE>^UF2n2Yc$#MKU>cxtntzV}C}rplEv7Yoz_V#qM5?RaDxCzXUGxU~ldFp$4`f zv1>~aZ~%O!#Vc_ieK_P`zwA>=6IHkD@~rmz8AiXiKeu4r3C}cqVaIm)@OZgnEUtc) zX1ojG+aUt@2w*yq!5f`(U z8G-3kvYm`yZVWY}D@BgA{0Ou6%bek%Y}gB)Yb#c#rv`2WXXz=D!oyzN*O(x#w0q=r z26gNMkL9Bdb?ddGqA3FY_TwqwYvg18?QBiKv@*W7*cvCc(@g&IraI8qGff9>931yG6`_sQYFT30pqdp@l(b;YRA|jaPK} z|LTCuJaqeOuiVO94j{{H_(ea&S`o(yqA6a7Yq7kxT0&c^?Y!&a_=UZ;y8#=ObWdm> zI=?^3J!42xp);yLSE4RdqLZyb&Pe<@@VnDLfiX1CDH(Fp4*`@XY{n24A7L==%_77# zwH^HrbaJFONc_;d#Nsf-`(P9^gX#N_eS};tBc%KPDjg`8>xpC`;!#*rAEM&ka*eMf zOQItFI1h{oVM>4V4-MOH6V)KDhE$*^DgBC!hlh?9B6_X%I?wK3*`KmnJ1&?PW*9N< z@re0`$kJS^L-{GkUe*OF9nQxzx#Jb3vV9pLUzk77OG!9zA&1U9BZk2rYYiet0F?c+>@y|eQys=37QNN$8| z)@eN2|K%x6>TQ6v$lbfIshK>zUd}F?t~2 zN#$Xt)R-rsvvGaqVH&06h33R!!SW$w^upxZrNdFVnh_PZ)`3t>tI8LU6! zwji2&`QO&VZ>=OD&pmSj?ereT*=5|%fB^AUu7`SCK$aFPy+0_ae)m;56;UBk3{9>u zrpTy4-`T%&Fw>_%=&Yd|)m2d#g-hphTd);~O4Jo6pzilyh{#_x`hg0w3Wz+%m#UBi z00Qs;9$<3%vXec%Cnc*v$Q-fwpoI|C6`aK@N8XnCV`H{~I2wEl<7dq4 z-k=Q`xZxW>Vjw2vS@IK8kY**WI_=rHE&-fjSp*be|9%5?;LUS`4aJbq;iG^9FdEi* zTuQ6F+%A)t?lrj235EaxV@=!K^c+2nu>(HAXlKLJHDuOkme|9t6HWiWqqmCwBW|VY zFzQ~Kt`8dx9!TVXHIBVT6ft#*N<*yZ<>?YtxY6l(=c#fL3bv7qql=B|s&-IyC8Rr} z4yEca>RzJ`rRm@P#b*Q}NIU9upN|(+?EQ~Qx~8p35IUUX%&M51lxA!vQd+Re5H$!Ir@S725Yzksylm6e8Sx$uR>D%*!(xdWsj{eL}}XET4hi_%H^4y z^$!Guy=)aG8DMSMUI2+5eNln2%=ZPQmf*Qh!@|WSO(z=he7zHk*h1j$(5VgDjDkb$ zLUGQ#O-7k|d!#YK;tA}qI1e9q0w?~QU~}XhKM~67yD=3Ro(^{I6y2k&Gz#(uf661Th8h-*vlL?-| z1hG|?jFgmu_MIdg*`Bh<-gnCyMVH6Op5gGQ!o!VCi})n`5td*8&6R9h51<~6Cx7}_ z(G%iQ`fEqMwi@Z^pb$kwrZ3$VGOm(AUG(3HmBBj5Ix>fY;0oU0T@U~Sr4JK&Vs!t> z1Dcz3K|zN0g~?tf#2%@)$w((8+j1wTo}AmtZ_B_E!K+d*1+J}R6uM2rPo&x2)1}PP!)QenxGO40ir{~c>Hdb;jAJQ z8vK9AYBS!Oa;YG0`q7ex*p#GA6=b zA6AOOlrQH#@a|O+Bm3k>J&o3i$1Hr-Q!ov1b3agu>_m#qCHtHXU>tE;I9a$tLyIa+ zUT^61I&FxLU%m?Z)(R7X#Prjl$1<<_MEsM=NV}_6(N^h!S;hc4QGPM z#d&=32GONS^_S5i4mMTLqdIlHNY$zDf6wg!;ZEGp zv#&jzeHfyI0`&17^s6K|3b%{(_Fnvb6eGN8l2|K~j!^8s8a-LM%3}t@B#A~WyGk1L z#E>I0? z_D+r#Q)SC%$!7{-)lc=-8{4K2VxNSCJmOG5R#0SwpckVCd6vw7Q`SX#QxjUD!u=4msQD=LC0vXylf(|_j1?v@ zJH{8KUpAOpnHl<&0mF9{Ky0A~uVc=sdL1m8T2jreTH;YwqjjDogT_7)XhDCLAn@oJ z5neIrcE4<}5LDx(!fzRUD0w>NXN23}-V~RhFUUdVUE5eJQKgJMRg?{Eju)Ov5(;dm z_aWyLSz-{%RECMTrw7scf`Yux^XN)IIDj=)643grX6b332&-inu6Mrual*$4NsP6o zFM4}0vzPPf1()AmY0E|q=Vjh379@Nx@ERVVyd|<2pzr$cq5{OeMD?(#yPoY7J{3xQ zYYK;%T|Z-Y$AUYg8P@Y}JSv z{&Ti=@8r;^j^A(GKMcukT>nU!%{0>|&P{zTkH)>$uVO8k<8C@pwMGXSWB_%f2?X;7 z3T=bHQ|p+c6f5Dh*xwdX0j+|$2`h-3GP}P-gQr&3H%X)U%-i=Ph&Y?@Hl6@wd=bC& zHYFZxXjh}=3C-b9bZ!mwVK`4zu@lpGLeQU;%fip5yT_kfDEswiY%<2 z(;D1Erlv4P%7zdPX1B27e@D!lUfIMu-lB3CW2|~yJGRQ~>P;_+G?*?7oWI_~#Yw-4 zKgT5;8q1MySKWc!P4EBp(u|d0AryR800QC-YtWD4@$i71memDh00DC!Cu7IGpGzq1 zu_jF$OUNj9E>Qgm8fujas<_e)>(dxp(=1gx*N8J1j9o*0Zy)^@ zlB)Gg%L)i+H6gFCqc}BvGtJD+=f6y(#kujH$M>oLFsSck{yH;tO-t9#xcr1nNilh% zF%B@LC1;T`uw62Cgfi*c#0X5A$n;t2vo%Am!!Td@@Vs#8QJG5yw$S&{C8Co+e+aI9 z>NI7m=@p^c9^qm9mM?t1J_rolz{4`43|o1yYWOUCb3+v6hY&dsJ#A+|WMyItzn|+V z1Eg1?;+y#2hF2tErOgCvE>3_(Q`^^L4vmyM`e(QwaO5A&%lzc8P! zstEBuC%Zs&s_P!so=HNNl{J(yVlt^iCsKPk(&ubn# zqnyq1Y%m|qFZg7|M~Oxq`>6T`JDYnlvA3L`Pn%c977K~&w|pXcsw}2?TS>(~&134XxONb}TH`o}pJu#qV{iF7L|_v2CpJGpWMl+xkYu6e z7t}m#vMsM89bSeP-(etKL{EPx) z(rM&@`{QKHB>R+dhwi)Jo)Bp$iFOql(|{?_VJd=WMnEe-`=a|&QSyi zVwztVqmDmlp87iZvXx#zTB6R-D0+q++e6?^+T;l2=aDofAY{e_fZJMtK^xRcOBUJC zsj*BrTB@5^A-N(P**L0OShz3Kj?_mDSZ%fLLTVjVg?%^uT|L|mDd3x#hON4`Rozp1N!|0HvgTQu zGCw%-Ehu@`4MjvG2e$lPXsD91=xS4&&j`$)x~5enaxnKg_YTqyKCxzlBJv^ks=s`BZpJl>$XB;mL9_0X1Rc`U0}iYJj;g!*GnI%2&zzD+{S zN-yH5Gjf#t@5~AS81^yFa7*qIGc(ZrlHDf#)4qcxMHa1;uuu6|*7u(l|2fu{!2!c& zwg$s4rO)ieV-{)|QWZUN0e`WX0ziCErK|6x(}mSHp2&@i=+0`ZLAQiHM%l#fTj*$2 z5v7_Fl~E5WB)M}=EG7RH%#$PpzS}o&DDvcm`k4rwahx0AG{$+`5>eXO}%zI*lU)~zXj;;Xw z?!b#LinfiXtp9A0){`;ZtB-o!dS{$hYmV&-ouClT>V!H#@^};jdmr5HBWG<%c z4g{WcDmmMur9rNPDAG6XNljCW*zn)~6kOiUr{XCMW>^m71POk7r$x<;LrbwJx-HD_ z>oVoLp!ME7?f1x)P7X}^iV5(vh4N`?1ddu#*a%{{vpa%AiNhWq=q4=2U05hwN@_Hg zZKWfxwd1VfX5xKII4vXKCM#A}m-J1++tC@VBzaMuYJ zRFW17L)x}|vlFQk31ZsR=8JW&k_o$=tNBX~QG5$R5ZiMUS0Z?1S_(_wg1#Kl&P~p> zxVeSfubQ|y$r0-t@ju7HY@#V+v{sV^!rgldYaP3jteEI@Q&O%iB>VJ^!kIe+HF4_8 zA6-;4i<0K&9ej9UzrqX|h69KGcLXreRu(KBLrNO1oXo0*0x6jNW(jUT)CwHL+Mt#g zo>~gDj`R?an09H=_7}&KBSdCfn~|>j7QS$UxNX=3j{$NvX*@bK6IkFJ@kru$UgG_H zQoUJCg7#HsL+wtK(b97V<0dQwPDn+ym~@sSPV0oa{j>nLX!Dk{czcExYiqK&;@lWT z_R`45@js>Hkh&nXhbh(1HwACQpVxtJ$?(3?cbDL9>9RU#{X;N5xn4OR#MW190J{*_ ztVmf5AWClbYBUwW5nFh^Y z=gqQadRN^THT0Xpat@KQ5A2HN6QQAnv?^@6K-j>}xW$T&5_lTB7E<*aam$zw zE7p!wVEamr!j36UMj!P1=3-D4VzRXWpsZ={FwruXP;fu2WFHqa3f!b7~BUtUua6BYZ}hdR7(G zFUyj}(gp%MheX@eGLHh2#8%5fz2=|%+5P2KN7yj4A8OAP;f0n9oo zjK6IsNS-Cl2*9nWtNR%;Zi2A2144HM)9nl}A%kF>gWn6?Ba7psd&oas&egOe?*Hg! zKjO6&LzWN|Gv*x?w#II1$N@7kw50M6us}}p8n-{>^;|T z`5kY(+h^Kuu>s>fDti2Rf3-;mfz&)a&nlB{U{(v7!~>0Ut?%*aWr`4PD_&c*g9WiE zYd2(PHYE`rAF}<&QyHpHOqah7c3=qkzz@}IFq5sDYqU8Fl%VgRXekD}zm#0)G8gRdZ4@B$)uE3zpU zXp~qPhG>y6$}ncVSy0|9c7#Dif8*@?G$qQ>u}>8GcXa~pZANHX>4Li}LYfd{`X~VL zY=WEs04p0OqU~H4vqyMzty3&IWPC>B&Q