From 1185de0a37a13edef909d9159b4b45687ae05205 Mon Sep 17 00:00:00 2001 From: Zhe Huang Date: Thu, 23 May 2019 16:08:00 -0400 Subject: [PATCH] This patch adds the README files Signed-off-by: Zhe Huang Change-Id: I8356dedf61795d9c140db05d45de2fe2bc609b6e --- LICENSES.txt | 32 ++++++++++++++ README.md | 42 ++++++++++++++++++ aux/80-Auxiliary-Functions/bin/uninstall | 48 +++++++++++++++++++++ .../helm/dashboard/charts/common-1.1.0.tgz | Bin 2615 -> 0 bytes aux/README.md | 40 +++++++++++++++++ infra/10-Nexus/docker/Dockerfile | 17 ++++++++ infra/10-Nexus/helm/charts/common-1.1.0.tgz | Bin 2615 -> 0 bytes infra/10-Nexus/helm/templates/_helpers.tpl | 17 ++++++++ infra/10-Nexus/helm/templates/deployment.yaml | 17 ++++++++ infra/10-Nexus/helm/templates/ingress.yaml | 17 ++++++++ infra/10-Nexus/helm/templates/save-secret-job.yaml | 17 ++++++++ infra/10-Nexus/helm/templates/secret-docker.yaml | 17 ++++++++ infra/10-Nexus/helm/templates/service.yaml | 17 ++++++++ infra/10-Nexus/helm/values.yaml | 17 ++++++++ infra/README.md | 43 ++++++++++++++++++ .../helm/appmgr/charts/common-1.1.0.tgz | Bin 2819 -> 0 bytes .../helm/dbaas/charts/common-1.1.0.tgz | Bin 2819 -> 0 bytes .../helm/e2mgr/charts/common-1.1.0.tgz | Bin 2819 -> 0 bytes .../helm/e2term/charts/common-1.1.0.tgz | Bin 2819 -> 0 bytes .../helm/rtmgr/charts/common-1.1.0.tgz | Bin 2819 -> 0 bytes ric-platform/README.md | 47 ++++++++++++++++++++ xapps/README.md | 9 ++++ 22 files changed, 397 insertions(+) create mode 100644 LICENSES.txt create mode 100644 README.md create mode 100755 aux/80-Auxiliary-Functions/bin/uninstall delete mode 100644 aux/80-Auxiliary-Functions/helm/dashboard/charts/common-1.1.0.tgz create mode 100644 aux/README.md delete mode 100644 infra/10-Nexus/helm/charts/common-1.1.0.tgz create mode 100644 infra/README.md delete mode 100644 ric-platform/50-RIC-Platform/helm/appmgr/charts/common-1.1.0.tgz delete mode 100644 ric-platform/50-RIC-Platform/helm/dbaas/charts/common-1.1.0.tgz delete mode 100644 ric-platform/50-RIC-Platform/helm/e2mgr/charts/common-1.1.0.tgz delete mode 100644 ric-platform/50-RIC-Platform/helm/e2term/charts/common-1.1.0.tgz delete mode 100644 ric-platform/50-RIC-Platform/helm/rtmgr/charts/common-1.1.0.tgz create mode 100644 ric-platform/README.md create mode 100644 xapps/README.md diff --git a/LICENSES.txt b/LICENSES.txt new file mode 100644 index 00000000..2a3dd5c9 --- /dev/null +++ b/LICENSES.txt @@ -0,0 +1,32 @@ +LICENSES.txt + + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the "Software License"); +you may not use this software except in compliance with the Software +License. You may obtain a copy of the Software License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the Software License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the Software License for the specific language governing permissions +and limitations under the Software License. + + + +Unless otherwise specified, all documentation contained herein is licensed +under the Creative Commons License, Attribution 4.0 Intl. (the +"Documentation License"); you may not use this documentation except in +compliance with the Documentation License. You may obtain a copy of the +Documentation License at + +https://creativecommons.org/licenses/by/4.0/ + +Unless required by applicable law or agreed to in writing, documentation +distributed under the Documentation License is distributed on an "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied. See the Documentation License for the specific language governing +permissions and limitations under the Documentation License. + diff --git a/README.md b/README.md new file mode 100644 index 00000000..3987ce68 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# RIC Integration + +This repo contains RAN Intelligent Controller (RIC) deployments related files. + +### Directory Structure +. +├── aux Deployment scripts, charts and configuration files for RIC auxiliry functions +├── infra Deployment scripts, charts and configuration files for infrastructure support +├── LICENSES.txt License information +├── README.md This file +├── ric-platform Deployment scripts, charts and configuration files for RIC platform components +└── xapps xApp related scripts, charts and configuration files + +### Directory Naming Convention + +The root directories are orgainzed according to the deployment plans. Each directory contains subdirectories for +different deployable components. The prefix of these subdirectories represents the deployment order. The smaller the +prefix number the eariler the corresponding component will be deployed. Consider the following example, +. +├── aux +│   └── 80-Auxiliary-Functions +├── infra +│   ├── 00-Kubernetes +│   └── 10-Nexus +├── LICENSES.txt +├── README.md +├── ric-platform +│   ├── 20-Credential +│   └── 50-RIC-Platform +└── xapps + └── 90-xApps +when deploys the ric-platform, the credential is deployed before RIC-Platform. + +In each of the component directory, ./etc contains the configuration file, ./bin contains the binary and script files, +./helm contains the helm charts, and ./docker contains docker related files for building the docker images. Please refer +to the README.md files in individual directory for more details. + +### To deploy RIC +TBD will update when we have the root installer. + +### Configure the RIC deployment +TBD will update when we have the root installer. diff --git a/aux/80-Auxiliary-Functions/bin/uninstall b/aux/80-Auxiliary-Functions/bin/uninstall new file mode 100755 index 00000000..9ab2775d --- /dev/null +++ b/aux/80-Auxiliary-Functions/bin/uninstall @@ -0,0 +1,48 @@ +#!/bin/bash +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + + + + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" + + +source $DIR/../etc/dashboard.conf + +if [ -z "$RICAUX_RELEASE_NAME" ];then + RELEASE_NAME=$helm_release_name +else + RELEASE_NAME=$RICAUX_RELEASE_NAME +fi +if [ -z "$RICAUX_NAMESPACE" ];then + NAMESPACE=$namespace +else + NAMESPACE=$RICAUX_NAMESPACE +fi + +RICAUX_COMPONENTS="dashboard" + +echo "Undeploying RIC AUX components [$RICAUX_COMPONENTS]" +echo "Platform Namespace: $NAMESPACE" +echo "Helm Release Name: $RELEASE_NAME" + + + +for component in $RICAUX_COMPONENTS; do + helm delete --purge "${RELEASE_NAME}-$component" +done diff --git a/aux/80-Auxiliary-Functions/helm/dashboard/charts/common-1.1.0.tgz b/aux/80-Auxiliary-Functions/helm/dashboard/charts/common-1.1.0.tgz deleted file mode 100644 index ccccfe6340f1a83c9e8bd74fa745a0e71a9c24e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2615 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 Z*QPeLsZG12{{{d6|Nn$78oK~w0056t80Y{1 diff --git a/aux/README.md b/aux/README.md new file mode 100644 index 00000000..34ce2cfd --- /dev/null +++ b/aux/README.md @@ -0,0 +1,40 @@ +# RIC Auxiliary Functions + +Helm charts, configuration files, and automation scripts that deploy the auxiliary functions for RIC. The auxiliary +functions are defined as the features and services that interact with the RIC but they do not collocated with the RIC +cluster. These functions includes but not limited to non-realtime management components (e.g., dashboard, DMaaP, +VEScollector) that interact with RIC using A1/O1 interfaces. + + + +### Directory Structure +. +├── 80-Auxiliary-Functions Contains components that interact with RIC through A1/O1 +│   ├── bin Contains deployment and uninstall scripts +│   ├── etc Contains deployment configuration files +│   └── helm Contains helm charts +└── README.md This file + + +### To deploy the Auxiliary Functions +```sh +$ # Modify the configuration files in ./80-Auxiliary-Functions/etc/ +$ . ./80-Auxiliary-Functions/bin/install +$ # If you have an override value.yaml file, please use +$ #. ./80-Auxiliary-Functions/bin/install YOUR_OVERRIDE_FILE +``` + + +### To undeploy the Auxiliary Functions +```sh +$ . ./80-Auxiliary-Functions/bin/uninstall +``` + + +### Deployment Options +You can configure the Helm release name, Kubernetes namespace using configuration files located in ./80-Auxiliary-Functions/etc/ + +In the one-click deployment solution, the above setting will be overrided by environment variables shown below. +*RICAUX_RELEASE_NAME +*RICAUX_NAMESPACE + diff --git a/infra/10-Nexus/docker/Dockerfile b/infra/10-Nexus/docker/Dockerfile index f61b21c0..bb9a60e4 100644 --- a/infra/10-Nexus/docker/Dockerfile +++ b/infra/10-Nexus/docker/Dockerfile @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + ARG NEXUS_VERSION=3.15.2 ARG NEXUS_BUILD=01 diff --git a/infra/10-Nexus/helm/charts/common-1.1.0.tgz b/infra/10-Nexus/helm/charts/common-1.1.0.tgz deleted file mode 100644 index ccccfe6340f1a83c9e8bd74fa745a0e71a9c24e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2615 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 Z*QPeLsZG12{{{d6|Nn$78oK~w0056t80Y{1 diff --git a/infra/10-Nexus/helm/templates/_helpers.tpl b/infra/10-Nexus/helm/templates/_helpers.tpl index 9f9800c6..fba2b965 100644 --- a/infra/10-Nexus/helm/templates/_helpers.tpl +++ b/infra/10-Nexus/helm/templates/_helpers.tpl @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + {{/* vim: set filetype=mustache: */}} {{/* Expand the name of the chart. diff --git a/infra/10-Nexus/helm/templates/deployment.yaml b/infra/10-Nexus/helm/templates/deployment.yaml index d3184c0f..65c5c235 100644 --- a/infra/10-Nexus/helm/templates/deployment.yaml +++ b/infra/10-Nexus/helm/templates/deployment.yaml @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + apiVersion: apps/v1beta2 kind: Deployment metadata: diff --git a/infra/10-Nexus/helm/templates/ingress.yaml b/infra/10-Nexus/helm/templates/ingress.yaml index 1a7522a8..078f1af1 100644 --- a/infra/10-Nexus/helm/templates/ingress.yaml +++ b/infra/10-Nexus/helm/templates/ingress.yaml @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + {{- $fullName := include "nexus.fullname" . -}} apiVersion: extensions/v1beta1 kind: Ingress diff --git a/infra/10-Nexus/helm/templates/save-secret-job.yaml b/infra/10-Nexus/helm/templates/save-secret-job.yaml index 801df246..44b75ef1 100644 --- a/infra/10-Nexus/helm/templates/save-secret-job.yaml +++ b/infra/10-Nexus/helm/templates/save-secret-job.yaml @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + apiVersion: batch/v1 kind: Job metadata: diff --git a/infra/10-Nexus/helm/templates/secret-docker.yaml b/infra/10-Nexus/helm/templates/secret-docker.yaml index 7365f7e2..d113b382 100644 --- a/infra/10-Nexus/helm/templates/secret-docker.yaml +++ b/infra/10-Nexus/helm/templates/secret-docker.yaml @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + apiVersion: v1 kind: Secret type: kubernetes.io/tls diff --git a/infra/10-Nexus/helm/templates/service.yaml b/infra/10-Nexus/helm/templates/service.yaml index cc9b5185..796206f2 100644 --- a/infra/10-Nexus/helm/templates/service.yaml +++ b/infra/10-Nexus/helm/templates/service.yaml @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + apiVersion: v1 kind: Service metadata: diff --git a/infra/10-Nexus/helm/values.yaml b/infra/10-Nexus/helm/values.yaml index d7324f56..b35bd0ca 100644 --- a/infra/10-Nexus/helm/values.yaml +++ b/infra/10-Nexus/helm/values.yaml @@ -1,3 +1,20 @@ +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + # Default values for nexus. # This is a YAML-formatted file. # Declare variables to be passed into your templates. diff --git a/infra/README.md b/infra/README.md new file mode 100644 index 00000000..55251a62 --- /dev/null +++ b/infra/README.md @@ -0,0 +1,43 @@ +# RIC Infrastructure Support + +Helm charts, configuration files, and automation scripts that deploy a development enviroment for RIC. +A developer should star from here to create a kubernetes cluster that is pre-configured for RIC. +Such development cluster is mimicking a closed field-trial environment. + + + +### Directory Structure +. +├── 00-Kubernetes Contains scripts to deploy K8S cluster +├── 10-Nexus Contains scripts and helm charts to deploy the docker registry and helm repo +└── README.md This file + + +### To deploy the Kubernetes cluster +```sh +$ # Modify the configuration files in ./00-Kubernetes/etc/ +$ . ./00-Kubernetes/bin/install +``` + +### To deploy Nexus repo manager +```sh +$ # Modify the configuration files in ./10-Nexus/etc/ +$ . ./10-Nexus/bin/install +``` + + +### Nexus Deployment Options +You can configure the Helm release name, Kubernetes namespace, and specify ingress controller port using configuration +files located in ./10-Nexus/etc/ + +In the one-click deployment solution, the above setting will be overrided by environment variables shown below. +*RICINFRA_RELEASE_NAME +*RICINFRA_NAMESPACE +*INGRESS_PORT + + +### Passing credential to RIC +The installation process of the Nexus repo manager will generate certificates and credential for docker registry and +helm repo. + +TODO: Fill in the details about how to pass the credential to RIC diff --git a/ric-platform/50-RIC-Platform/helm/appmgr/charts/common-1.1.0.tgz b/ric-platform/50-RIC-Platform/helm/appmgr/charts/common-1.1.0.tgz deleted file mode 100644 index 994e516fbf9b9d86e0b0d3032750ea5b4cd5efd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2819 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 Vb*V}EZvX%Q|Nor%weDc zVQyr3R8em|NM&qo0PI{{Z`(N5?(OSeagfftn+zJoPU3Xdi@C_A-PxeCX;Eip(5nS4 z9os}HN<&gfjkN!LK~j<>*|H^BcDjIg;}7vXJUrw>9)29Tf$s}F1cau&pAFWOK2 ze!u^EI5eOAe!uwHA6&jpznlLD=NFf+U%(zzSxu2tM7-$tcf~1I?tdhakp7NB(twZP zVbJqXx`Kwv{Jt@L0~GopBMK!<0|At~EYkUbatPEM1-QEN$Q~y?j=*-P-a`U9a0X7l z_uSR&Qb~&W|3FxTa!&)m7XF{Vz8n_$e>J%1_vgOo!2>>@ixDa$US8(i}zKSdQ(_E==bawXm_~;O0KPM2gGiKG3 zXTRRwyuBO0J=HdR1`U7X45b8te@0ZG2a^SmFl5vv6NbRZBLo7-Odxuo0^LN9f-1^q zuRsP<^+*Kf0X-^}pp!`DdQQ?BROT`S90-S_>oMGpkKiBIuiflD|{5GbFcpvrWp-b)~ifs7{B zt#Vq>Xv6p)&;O~9clMt-GGAaAI4W$(7uY=i4~CbQ7lrwMI5_Wj^Zy~z&Yi2+*Sh(? zoBtcy5W4xloBwMzO54L%@9F96#~#2(lmUCNRp-RVgeZ2t1U*TDo+Tw!fmk>_fcrVx zx!st^`Q5Ilb;gfrKHZ{`v>hk*2VV66BHOLv*3f1Y)I;#mofA%_pNKiV9>8geJu_}b zu?QF~5fY!HpsvwSdl`BF2{>{U`y+aw(Rp*laPQ#ga$u67$}o?w^`*K~>0UYr27#7ONpMWAtjIw3#c>vY=Ew zVy+e54>jY4XiUx(`5oxF9;*$47LfN#Q5h2VAUwTG3Og8KmnBwb?$Rb(Ih?}pMCMF^ zb!eSR)!_H4!cB-?hO$q_FI#d)>aPRZc?>88ZErAGEnnA2{Cv=z{~jW>et^=Q|90oU4Q&YB`EPgrTeDHx9=;L> z{_U4gYo0y+CHA7bQ|dtKj9F(faYh{*U7;5hsc)k5rjFiMP$J?kTwR#2)E`IFDg6RR zr$?n5_BR5FLLg}=(}=MJ{238Orxd-UW172X>E@s=hUmUTlrBwINWuhNqK6n6_z3T! z2?~x1rLFjsBJ(8Zo@-jp_G~j69Zwd`M$r1k!v-KA>F3EbxY4TeSkZ+L!j)%kyiNUaZ`o&VSQ ze+_L2o&VSQe>EGW?cuBJ{-50qR)J~nh4~V@gJugh@m-c#rExQQpc`@J5@8}pWfB4q zZ)SSPflh&=i&7G?fMc9F#^z~2z)24vlG@A~Y8o&WJnCO&7kHH4q2=;}K<({hw@a5g zhUVc$e|F{2BlXg} zb^c#N8$##*b^c$?MrnKasu=%4eO==!0U%<(!5?CC;73uPR7^ZWzYcXUUBgP_jB6p zCE*-#IJ8f~{RDQ1{Ref3?ExLJB?Qj&z+D>9A({kpY{1@5vYYZijuK_6lWmUy9HMdX zMyX^@wg0PDyS8c9BvK8+X(L+Rg%M*A28_BJrX!Q}L&VqzlW{LJDVDL0 zCmCgP5Cz$a%*djZQ6Wr0OK4D5^fn%BmTQX$MWfbWLb+(INoWg9GfI?!?r`67Wthyw zDrKW2Hclb?3PP$7fK(y&NHmE%su^-rDcq<;ks4FS{=$qz;}D}#$%al_d!a=om{r-* zOBnMDauk{nnVuliwOxTh6}pHsLw>5UqNKx3-SWKc+K|o-x<4eS4vYaK!OT zB;y+!4x9j|ETgc-(j{s<#iZj3HG-!ni|ZJyuQ0i~MD9YIE9ym*czL1z)%S zD}zY5C=Yf1KO9^Qiu=D8-TVIzlUmGprS{ojT*gl_-0+yAZEC~Xg4Ju_8T*#b`H zNn4>a-6v2gm@@JZi1IateZH5qMGU=eO%Xpz-}__V*qp_%IVvtCVz}i?eKcOW-}!0_7fZ1%vbM4$$|V zR@Z-VTyl#cfZOhWUktB`@qe!`hu!+`5UF(ss$2hc>%WFJgl_%Ut^aB^O54NNru#qf zjqkt8X0w(VpIi~1X@oY+BD-+h7XKJav>D)+h**rZb?pNDy40mE Vb*V}EZvX%Q|Nor%weDc zVQyr3R8em|NM&qo0PI{{Z`(N5?(OSeagfftn+zJoPU3Xdi@C_A-PxeCX;Eip(5nS4 z9os}HN<&gfjkN!LK~j<>*|H^BcDjIg;}7vXJUrw>9)29Tf$s}F1cau&pAFWOK2 ze!u^EI5eOAe!uwHA6&jpznlLD=NFf+U%(zzSxu2tM7-$tcf~1I?tdhakp7NB(twZP zVbJqXx`Kwv{Jt@L0~GopBMK!<0|At~EYkUbatPEM1-QEN$Q~y?j=*-P-a`U9a0X7l z_uSR&Qb~&W|3FxTa!&)m7XF{Vz8n_$e>J%1_vgOo!2>>@ixDa$US8(i}zKSdQ(_E==bawXm_~;O0KPM2gGiKG3 zXTRRwyuBO0J=HdR1`U7X45b8te@0ZG2a^SmFl5vv6NbRZBLo7-Odxuo0^LN9f-1^q zuRsP<^+*Kf0X-^}pp!`DdQQ?BROT`S90-S_>oMGpkKiBIuiflD|{5GbFcpvrWp-b)~ifs7{B zt#Vq>Xv6p)&;O~9clMt-GGAaAI4W$(7uY=i4~CbQ7lrwMI5_Wj^Zy~z&Yi2+*Sh(? zoBtcy5W4xloBwMzO54L%@9F96#~#2(lmUCNRp-RVgeZ2t1U*TDo+Tw!fmk>_fcrVx zx!st^`Q5Ilb;gfrKHZ{`v>hk*2VV66BHOLv*3f1Y)I;#mofA%_pNKiV9>8geJu_}b zu?QF~5fY!HpsvwSdl`BF2{>{U`y+aw(Rp*laPQ#ga$u67$}o?w^`*K~>0UYr27#7ONpMWAtjIw3#c>vY=Ew zVy+e54>jY4XiUx(`5oxF9;*$47LfN#Q5h2VAUwTG3Og8KmnBwb?$Rb(Ih?}pMCMF^ zb!eSR)!_H4!cB-?hO$q_FI#d)>aPRZc?>88ZErAGEnnA2{Cv=z{~jW>et^=Q|90oU4Q&YB`EPgrTeDHx9=;L> z{_U4gYo0y+CHA7bQ|dtKj9F(faYh{*U7;5hsc)k5rjFiMP$J?kTwR#2)E`IFDg6RR zr$?n5_BR5FLLg}=(}=MJ{238Orxd-UW172X>E@s=hUmUTlrBwINWuhNqK6n6_z3T! z2?~x1rLFjsBJ(8Zo@-jp_G~j69Zwd`M$r1k!v-KA>F3EbxY4TeSkZ+L!j)%kyiNUaZ`o&VSQ ze+_L2o&VSQe>EGW?cuBJ{-50qR)J~nh4~V@gJugh@m-c#rExQQpc`@J5@8}pWfB4q zZ)SSPflh&=i&7G?fMc9F#^z~2z)24vlG@A~Y8o&WJnCO&7kHH4q2=;}K<({hw@a5g zhUVc$e|F{2BlXg} zb^c#N8$##*b^c$?MrnKasu=%4eO==!0U%<(!5?CC;73uPR7^ZWzYcXUUBgP_jB6p zCE*-#IJ8f~{RDQ1{Ref3?ExLJB?Qj&z+D>9A({kpY{1@5vYYZijuK_6lWmUy9HMdX zMyX^@wg0PDyS8c9BvK8+X(L+Rg%M*A28_BJrX!Q}L&VqzlW{LJDVDL0 zCmCgP5Cz$a%*djZQ6Wr0OK4D5^fn%BmTQX$MWfbWLb+(INoWg9GfI?!?r`67Wthyw zDrKW2Hclb?3PP$7fK(y&NHmE%su^-rDcq<;ks4FS{=$qz;}D}#$%al_d!a=om{r-* zOBnMDauk{nnVuliwOxTh6}pHsLw>5UqNKx3-SWKc+K|o-x<4eS4vYaK!OT zB;y+!4x9j|ETgc-(j{s<#iZj3HG-!ni|ZJyuQ0i~MD9YIE9ym*czL1z)%S zD}zY5C=Yf1KO9^Qiu=D8-TVIzlUmGprS{ojT*gl_-0+yAZEC~Xg4Ju_8T*#b`H zNn4>a-6v2gm@@JZi1IateZH5qMGU=eO%Xpz-}__V*qp_%IVvtCVz}i?eKcOW-}!0_7fZ1%vbM4$$|V zR@Z-VTyl#cfZOhWUktB`@qe!`hu!+`5UF(ss$2hc>%WFJgl_%Ut^aB^O54NNru#qf zjqkt8X0w(VpIi~1X@oY+BD-+h7XKJav>D)+h**rZb?pNDy40mE Vb*V}EZvX%Q|Nor%weDc zVQyr3R8em|NM&qo0PI{{Z`(N5?(OSeagfftn+zJoPU3Xdi@C_A-PxeCX;Eip(5nS4 z9os}HN<&gfjkN!LK~j<>*|H^BcDjIg;}7vXJUrw>9)29Tf$s}F1cau&pAFWOK2 ze!u^EI5eOAe!uwHA6&jpznlLD=NFf+U%(zzSxu2tM7-$tcf~1I?tdhakp7NB(twZP zVbJqXx`Kwv{Jt@L0~GopBMK!<0|At~EYkUbatPEM1-QEN$Q~y?j=*-P-a`U9a0X7l z_uSR&Qb~&W|3FxTa!&)m7XF{Vz8n_$e>J%1_vgOo!2>>@ixDa$US8(i}zKSdQ(_E==bawXm_~;O0KPM2gGiKG3 zXTRRwyuBO0J=HdR1`U7X45b8te@0ZG2a^SmFl5vv6NbRZBLo7-Odxuo0^LN9f-1^q zuRsP<^+*Kf0X-^}pp!`DdQQ?BROT`S90-S_>oMGpkKiBIuiflD|{5GbFcpvrWp-b)~ifs7{B zt#Vq>Xv6p)&;O~9clMt-GGAaAI4W$(7uY=i4~CbQ7lrwMI5_Wj^Zy~z&Yi2+*Sh(? zoBtcy5W4xloBwMzO54L%@9F96#~#2(lmUCNRp-RVgeZ2t1U*TDo+Tw!fmk>_fcrVx zx!st^`Q5Ilb;gfrKHZ{`v>hk*2VV66BHOLv*3f1Y)I;#mofA%_pNKiV9>8geJu_}b zu?QF~5fY!HpsvwSdl`BF2{>{U`y+aw(Rp*laPQ#ga$u67$}o?w^`*K~>0UYr27#7ONpMWAtjIw3#c>vY=Ew zVy+e54>jY4XiUx(`5oxF9;*$47LfN#Q5h2VAUwTG3Og8KmnBwb?$Rb(Ih?}pMCMF^ zb!eSR)!_H4!cB-?hO$q_FI#d)>aPRZc?>88ZErAGEnnA2{Cv=z{~jW>et^=Q|90oU4Q&YB`EPgrTeDHx9=;L> z{_U4gYo0y+CHA7bQ|dtKj9F(faYh{*U7;5hsc)k5rjFiMP$J?kTwR#2)E`IFDg6RR zr$?n5_BR5FLLg}=(}=MJ{238Orxd-UW172X>E@s=hUmUTlrBwINWuhNqK6n6_z3T! z2?~x1rLFjsBJ(8Zo@-jp_G~j69Zwd`M$r1k!v-KA>F3EbxY4TeSkZ+L!j)%kyiNUaZ`o&VSQ ze+_L2o&VSQe>EGW?cuBJ{-50qR)J~nh4~V@gJugh@m-c#rExQQpc`@J5@8}pWfB4q zZ)SSPflh&=i&7G?fMc9F#^z~2z)24vlG@A~Y8o&WJnCO&7kHH4q2=;}K<({hw@a5g zhUVc$e|F{2BlXg} zb^c#N8$##*b^c$?MrnKasu=%4eO==!0U%<(!5?CC;73uPR7^ZWzYcXUUBgP_jB6p zCE*-#IJ8f~{RDQ1{Ref3?ExLJB?Qj&z+D>9A({kpY{1@5vYYZijuK_6lWmUy9HMdX zMyX^@wg0PDyS8c9BvK8+X(L+Rg%M*A28_BJrX!Q}L&VqzlW{LJDVDL0 zCmCgP5Cz$a%*djZQ6Wr0OK4D5^fn%BmTQX$MWfbWLb+(INoWg9GfI?!?r`67Wthyw zDrKW2Hclb?3PP$7fK(y&NHmE%su^-rDcq<;ks4FS{=$qz;}D}#$%al_d!a=om{r-* zOBnMDauk{nnVuliwOxTh6}pHsLw>5UqNKx3-SWKc+K|o-x<4eS4vYaK!OT zB;y+!4x9j|ETgc-(j{s<#iZj3HG-!ni|ZJyuQ0i~MD9YIE9ym*czL1z)%S zD}zY5C=Yf1KO9^Qiu=D8-TVIzlUmGprS{ojT*gl_-0+yAZEC~Xg4Ju_8T*#b`H zNn4>a-6v2gm@@JZi1IateZH5qMGU=eO%Xpz-}__V*qp_%IVvtCVz}i?eKcOW-}!0_7fZ1%vbM4$$|V zR@Z-VTyl#cfZOhWUktB`@qe!`hu!+`5UF(ss$2hc>%WFJgl_%Ut^aB^O54NNru#qf zjqkt8X0w(VpIi~1X@oY+BD-+h7XKJav>D)+h**rZb?pNDy40mE Vb*V}EZvX%Q|Nor%weDc zVQyr3R8em|NM&qo0PI{{Z`(N5?(OSeagfftn+zJoPU3Xdi@C_A-PxeCX;Eip(5nS4 z9os}HN<&gfjkN!LK~j<>*|H^BcDjIg;}7vXJUrw>9)29Tf$s}F1cau&pAFWOK2 ze!u^EI5eOAe!uwHA6&jpznlLD=NFf+U%(zzSxu2tM7-$tcf~1I?tdhakp7NB(twZP zVbJqXx`Kwv{Jt@L0~GopBMK!<0|At~EYkUbatPEM1-QEN$Q~y?j=*-P-a`U9a0X7l z_uSR&Qb~&W|3FxTa!&)m7XF{Vz8n_$e>J%1_vgOo!2>>@ixDa$US8(i}zKSdQ(_E==bawXm_~;O0KPM2gGiKG3 zXTRRwyuBO0J=HdR1`U7X45b8te@0ZG2a^SmFl5vv6NbRZBLo7-Odxuo0^LN9f-1^q zuRsP<^+*Kf0X-^}pp!`DdQQ?BROT`S90-S_>oMGpkKiBIuiflD|{5GbFcpvrWp-b)~ifs7{B zt#Vq>Xv6p)&;O~9clMt-GGAaAI4W$(7uY=i4~CbQ7lrwMI5_Wj^Zy~z&Yi2+*Sh(? zoBtcy5W4xloBwMzO54L%@9F96#~#2(lmUCNRp-RVgeZ2t1U*TDo+Tw!fmk>_fcrVx zx!st^`Q5Ilb;gfrKHZ{`v>hk*2VV66BHOLv*3f1Y)I;#mofA%_pNKiV9>8geJu_}b zu?QF~5fY!HpsvwSdl`BF2{>{U`y+aw(Rp*laPQ#ga$u67$}o?w^`*K~>0UYr27#7ONpMWAtjIw3#c>vY=Ew zVy+e54>jY4XiUx(`5oxF9;*$47LfN#Q5h2VAUwTG3Og8KmnBwb?$Rb(Ih?}pMCMF^ zb!eSR)!_H4!cB-?hO$q_FI#d)>aPRZc?>88ZErAGEnnA2{Cv=z{~jW>et^=Q|90oU4Q&YB`EPgrTeDHx9=;L> z{_U4gYo0y+CHA7bQ|dtKj9F(faYh{*U7;5hsc)k5rjFiMP$J?kTwR#2)E`IFDg6RR zr$?n5_BR5FLLg}=(}=MJ{238Orxd-UW172X>E@s=hUmUTlrBwINWuhNqK6n6_z3T! z2?~x1rLFjsBJ(8Zo@-jp_G~j69Zwd`M$r1k!v-KA>F3EbxY4TeSkZ+L!j)%kyiNUaZ`o&VSQ ze+_L2o&VSQe>EGW?cuBJ{-50qR)J~nh4~V@gJugh@m-c#rExQQpc`@J5@8}pWfB4q zZ)SSPflh&=i&7G?fMc9F#^z~2z)24vlG@A~Y8o&WJnCO&7kHH4q2=;}K<({hw@a5g zhUVc$e|F{2BlXg} zb^c#N8$##*b^c$?MrnKasu=%4eO==!0U%<(!5?CC;73uPR7^ZWzYcXUUBgP_jB6p zCE*-#IJ8f~{RDQ1{Ref3?ExLJB?Qj&z+D>9A({kpY{1@5vYYZijuK_6lWmUy9HMdX zMyX^@wg0PDyS8c9BvK8+X(L+Rg%M*A28_BJrX!Q}L&VqzlW{LJDVDL0 zCmCgP5Cz$a%*djZQ6Wr0OK4D5^fn%BmTQX$MWfbWLb+(INoWg9GfI?!?r`67Wthyw zDrKW2Hclb?3PP$7fK(y&NHmE%su^-rDcq<;ks4FS{=$qz;}D}#$%al_d!a=om{r-* zOBnMDauk{nnVuliwOxTh6}pHsLw>5UqNKx3-SWKc+K|o-x<4eS4vYaK!OT zB;y+!4x9j|ETgc-(j{s<#iZj3HG-!ni|ZJyuQ0i~MD9YIE9ym*czL1z)%S zD}zY5C=Yf1KO9^Qiu=D8-TVIzlUmGprS{ojT*gl_-0+yAZEC~Xg4Ju_8T*#b`H zNn4>a-6v2gm@@JZi1IateZH5qMGU=eO%Xpz-}__V*qp_%IVvtCVz}i?eKcOW-}!0_7fZ1%vbM4$$|V zR@Z-VTyl#cfZOhWUktB`@qe!`hu!+`5UF(ss$2hc>%WFJgl_%Ut^aB^O54NNru#qf zjqkt8X0w(VpIi~1X@oY+BD-+h7XKJav>D)+h**rZb?pNDy40mE Vb*V}EZvX%Q|Nor%we