From b044838246a5c9e54484f1f1de6d077e301278a0 Mon Sep 17 00:00:00 2001 From: Jakub Cierlik Date: Mon, 3 Apr 2023 11:44:08 +0200 Subject: [PATCH] added k3s cluster bps under /aws and /kubernetes --- catalog.yaml | 20 ++ tabs/aws/k3s_ha_on_ec2/README.md | 71 +++++++ tabs/aws/k3s_ha_on_ec2/blueprint.yaml | 182 ++++++++++++++++++ .../k3s_ha_on_ec2/development_blueprints.zip | Bin 0 -> 6254 bytes tabs/aws/k3s_ha_on_ec2/k3s_blueprints.zip | Bin 0 -> 26159 bytes tabs/aws/k3s_ha_on_ec2/logo.png | Bin 0 -> 6845 bytes tabs/aws/k3s_single_node_on_ec2/README.md | 71 +++++++ .../aws/k3s_single_node_on_ec2/blueprint.yaml | 115 +++++++++++ .../development_blueprints.zip | Bin 0 -> 6254 bytes .../k3s_single_node_on_ec2/k3s_blueprints.zip | Bin 0 -> 26159 bytes tabs/aws/k3s_single_node_on_ec2/logo.png | Bin 0 -> 6845 bytes tabs/kubernetes/k3s_ha_on_ec2/README.md | 71 +++++++ tabs/kubernetes/k3s_ha_on_ec2/blueprint.yaml | 182 ++++++++++++++++++ .../k3s_ha_on_ec2/development_blueprints.zip | Bin 0 -> 6254 bytes .../k3s_ha_on_ec2/k3s_blueprints.zip | Bin 0 -> 26159 bytes tabs/kubernetes/k3s_ha_on_ec2/logo.png | Bin 0 -> 6845 bytes .../k3s_single_node_on_ec2/README.md | 71 +++++++ .../k3s_single_node_on_ec2/blueprint.yaml | 115 +++++++++++ .../development_blueprints.zip | Bin 0 -> 6254 bytes .../k3s_single_node_on_ec2/k3s_blueprints.zip | Bin 0 -> 26159 bytes .../k3s_single_node_on_ec2/logo.png | Bin 0 -> 6845 bytes 21 files changed, 898 insertions(+) create mode 100644 tabs/aws/k3s_ha_on_ec2/README.md create mode 100644 tabs/aws/k3s_ha_on_ec2/blueprint.yaml create mode 100644 tabs/aws/k3s_ha_on_ec2/development_blueprints.zip create mode 100644 tabs/aws/k3s_ha_on_ec2/k3s_blueprints.zip create mode 100644 tabs/aws/k3s_ha_on_ec2/logo.png create mode 100644 tabs/aws/k3s_single_node_on_ec2/README.md create mode 100644 tabs/aws/k3s_single_node_on_ec2/blueprint.yaml create mode 100644 tabs/aws/k3s_single_node_on_ec2/development_blueprints.zip create mode 100644 tabs/aws/k3s_single_node_on_ec2/k3s_blueprints.zip create mode 100644 tabs/aws/k3s_single_node_on_ec2/logo.png create mode 100644 tabs/kubernetes/k3s_ha_on_ec2/README.md create mode 100644 tabs/kubernetes/k3s_ha_on_ec2/blueprint.yaml create mode 100644 tabs/kubernetes/k3s_ha_on_ec2/development_blueprints.zip create mode 100644 tabs/kubernetes/k3s_ha_on_ec2/k3s_blueprints.zip create mode 100644 tabs/kubernetes/k3s_ha_on_ec2/logo.png create mode 100644 tabs/kubernetes/k3s_single_node_on_ec2/README.md create mode 100644 tabs/kubernetes/k3s_single_node_on_ec2/blueprint.yaml create mode 100644 tabs/kubernetes/k3s_single_node_on_ec2/development_blueprints.zip create mode 100644 tabs/kubernetes/k3s_single_node_on_ec2/k3s_blueprints.zip create mode 100644 tabs/kubernetes/k3s_single_node_on_ec2/logo.png diff --git a/catalog.yaml b/catalog.yaml index 64396fce..e6e07af6 100644 --- a/catalog.yaml +++ b/catalog.yaml @@ -225,6 +225,16 @@ topics: description: Creating SQS readme_url: https://raw.githubusercontent.com/cloudify-community/cloudify-catalog/master/aws/sqs/README.md + - id: K3S_HA_ON_EC2 + name: K3S-HA-ON-EC2 + path: tabs/aws/k3s_ha_on_ec2 + description: Create K3S HA cluster on EC2 instances + + - id: K3S_SINGLE_NODE_ON_EC2 + name: K3S-SINGLE-NODE-ON-EC2 + path: tabs/aws/k3s_single_node_on_ec2 + description: Create K3S single node cluster on EC2 instances + - id: tf_aws_vm name: VM-Ubuntu-AWS-TFM path: tabs/terraform/aws @@ -827,6 +837,16 @@ topics: path: tabs/kubernetes/spot description: Create a Spot Ocean Kubernetes cost optimized Cluster + - id: K3S_HA_ON_EC2 + name: K3S-HA-ON-EC2 + path: tabs/kubernetes/k3s_ha_on_ec2 + description: Create K3S HA cluster on EC2 instances + + - id: K3S_SINGLE_NODE_ON_EC2 + name: K3S-SINGLE-NODE-ON-EC2 + path: tabs/kubernetes/k3s_single_node_on_ec2 + description: Create K3S single node cluster on EC2 instances + - name: K8S_Discovery target_path: s3_json_file blueprints: diff --git a/tabs/aws/k3s_ha_on_ec2/README.md b/tabs/aws/k3s_ha_on_ec2/README.md new file mode 100644 index 00000000..e45bb9ed --- /dev/null +++ b/tabs/aws/k3s_ha_on_ec2/README.md @@ -0,0 +1,71 @@ +# ECE with Kubernetes cluster + +Blueprints installing a K3S cluster on top of VMs simulating the ECE devices. +There are two possible scenarios: +1. _single_ece_blueprint_ - installs one ECE (Master and Worker VMs) and installs a K3S single-node cluster. +2. _three_ece_blueprint_ - installs three ECEs (6 VMs in total) and installs a K3S HA cluster. + +## Requirements + +### Secrets +You need to create the following secrets before deploying blueprints: +- aws_access_key_id +- aws_secret_access_key + +### Plugins +You need to upload the following plugins before deploying blueprints: +- cloudify-aws-plugin +- cloudify-fabric-plugin +- cloudify-utilities-plugin + +## How to install the deployment setup and deploy K3S cluster on top of it + +1. Verify if your Cloudify CLI is set to the correct Cloudify Manager instance. + ```sh + cfy profiles show-current + ``` + If not, set it using: + ```sh + cfy profiles use (...) + ``` +2. Set your current directory to the main directory of the repo. + ```sh + cd (...)/ece-kubernetes + ``` +3. Perform the following commands to prepare and upload necessary blueprints. + ```sh + cd .. + rm -f ece-kubernetes.zip + zip -qr ece-kubernetes.zip ece-kubernetes + cd - + cfy blueprint upload -b network_blueprint development/resources/network_blueprint.yaml + cfy blueprint upload -b vm_blueprint development/resources/vm_blueprint.yaml + cfy blueprint upload -b ece_blueprint -n ece_blueprint.yaml development_blueprints.zip + cfy blueprint upload -b witness_blueprint -n witness_blueprint.yaml development_blueprints.zip + ``` +4. Install desired setup. + ```sh + cfy install -b single-ece-kubernetes -d single-ece-kubernetes -n single_ece_blueprint.yaml -i 'region_name=eu-west-1' ../ece-kubernetes.zip + # or + cfy install -b three-ece-kubernetes -d three-ece-kubernetes -n three_ece_blueprint.yaml -i 'region_name=eu-west-1' ../ece-kubernetes.zip + # or + TBD + ``` + +## How to uninstall the deployment setup + +1. Verify if your Cloudify CLI is set to the correct Cloudify Manager instance. + ```sh + cfy profiles show-current + ``` + If not, set it using: + ```sh + cfy profiles use (...) + ``` +2. Uninstall the main deployment and remove blueprints. + ```sh + cfy uninstall (...)-ece-kubernetes + cfy blueprint delete network_blueprint + cfy blueprint delete vm_blueprint + cfy blueprint delete ece_blueprint + ``` diff --git a/tabs/aws/k3s_ha_on_ec2/blueprint.yaml b/tabs/aws/k3s_ha_on_ec2/blueprint.yaml new file mode 100644 index 00000000..5d416cbc --- /dev/null +++ b/tabs/aws/k3s_ha_on_ec2/blueprint.yaml @@ -0,0 +1,182 @@ +tosca_definitions_version: cloudify_dsl_1_4 +description: > + The blueprint creates VPC and all necessary network resources on AWS + in order to spin up EC2 instances. + +imports: + - https://cloudify.co/spec/cloudify/6.4.0/types.yaml + +inputs: + region_name: + type: string + display_label: AWS Region Name + default: eu-west-1 + + ssh_key_secret_name: + description: Name of a Secret that stores SSH Key + type: string + hidden: true + default: ec2_ssh_key + + nodes_username: + type: string + hidden: true + default: ubuntu + + longhorn_port: + type: string + display_label: Longhorn Port + description: Port which Longhorn should be exposed on. + default: 8080 + +node_templates: + network: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: network_blueprint + deployment: + id: network + auto_inc_suffix: false + inputs: + region_name: { get_input: region_name } + ssh_key_secret_name: { get_input: ssh_key_secret_name } + + ece_1: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_1 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '1' + relationships: + - type: cloudify.relationships.depends_on + target: network + + ece_2: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_2 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '2' + relationships: + - type: cloudify.relationships.depends_on + target: network + + ece_3: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_3 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '3' + relationships: + - type: cloudify.relationships.depends_on + target: network + + k3s_ha: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: false + id: k3s_ece_ha_embedded_db + blueprint_archive: k3s_blueprints.zip + main_file_name: ece_ha_embedded_db.yaml + deployment: + id: k3s_ece_ha_embedded_db + auto_inc_suffix: false + inputs: + longhorn_port: { get_input: longhorn_port } + # ECE 1 + ece_1_details: + endpoint_master: + get_attribute: [ece_1, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece_1, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece_1, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + # ECE 2 + ece_2_details: + endpoint_master: + get_attribute: [ece_2, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece_2, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece_2, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + # ECE 3 + ece_3_details: + endpoint_master: + get_attribute: [ece_3, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece_3, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece_3, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + relationships: + - type: cloudify.relationships.depends_on + target: ece_1 + - type: cloudify.relationships.depends_on + target: ece_2 + - type: cloudify.relationships.depends_on + target: ece_3 + +labels: + csys-obj-type: + values: + - environment + +outputs: + cluster_endpoint: + description: The endpoint of K3S cluster + value: { get_attribute: [k3s_ha, capabilities, cluster_endpoint] } + + longhorn: + description: Longhorn endpoint + value: { get_attribute: [k3s_ha, capabilities, longhorn] } + + cluster_k3s_token: + description: Token used for adding master and worker nodes to cluster + value: { get_attribute: [k3s_ha, capabilities, cluster_k3s_token] } + + kubeconfig: + description: Kubeconfig file of the newly created cluster + value: { get_attribute: [k3s_ha, capabilities, kubeconfig] } diff --git a/tabs/aws/k3s_ha_on_ec2/development_blueprints.zip b/tabs/aws/k3s_ha_on_ec2/development_blueprints.zip new file mode 100644 index 0000000000000000000000000000000000000000..a077166c25f6b331677e81e212d37d44d0bb62c3 GIT binary patch literal 6254 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 YbKw7 + The blueprint creates VPC and all necessary network resources on AWS + in order to spin up EC2 instances. + +imports: + - https://cloudify.co/spec/cloudify/6.4.0/types.yaml + +inputs: + region_name: + type: string + display_label: AWS Region Name + default: eu-west-1 + + ssh_key_secret_name: + description: Name of a Secret that stores SSH Key + type: string + hidden: true + default: ec2_ssh_key + + nodes_username: + type: string + default: ubuntu + hidden: true + + longhorn_port: + type: string + display_label: Longhorn Port + description: Port which Longhorn should be exposed on. + default: 8080 + +node_templates: + network: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: network_blueprint + deployment: + id: network + auto_inc_suffix: false + inputs: + region_name: { get_input: region_name } + ssh_key_secret_name: { get_input: ssh_key_secret_name } + + ece: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_1 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '1' + relationships: + - type: cloudify.relationships.depends_on + target: network + + k3s_single_ece: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: false + id: ece_single_embedded_db + blueprint_archive: k3s_blueprints.zip + main_file_name: ece_single_embedded_db.yaml + deployment: + id: k3s_ece_single_embedded_db + auto_inc_suffix: false + inputs: + longhorn_port: { get_input: longhorn_port } + ece_details: + endpoint_master: + get_attribute: [ece, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + relationships: + - type: cloudify.relationships.depends_on + target: ece + +labels: + csys-obj-type: + values: + - environment + +outputs: + cluster_endpoint: + description: The endpoint of K3S cluster + value: { get_attribute: [k3s_single_ece, capabilities, cluster_endpoint] } + + longhorn: + description: Longhorn endpoint + value: { get_attribute: [k3s_single_ece, capabilities, longhorn] } + + cluster_k3s_token: + description: Token used for adding master and worker nodes to cluster + value: { get_attribute: [k3s_single_ece, capabilities, cluster_k3s_token] } + + kubeconfig: + description: Kubeconfig file of the newly created cluster + value: { get_attribute: [k3s_single_ece, capabilities, kubeconfig] } diff --git a/tabs/aws/k3s_single_node_on_ec2/development_blueprints.zip b/tabs/aws/k3s_single_node_on_ec2/development_blueprints.zip new file mode 100644 index 0000000000000000000000000000000000000000..a077166c25f6b331677e81e212d37d44d0bb62c3 GIT binary patch literal 6254 zcmaJ`byQUA+Z{?mnjs|wL8QBpkWOLf6r>rL!C{7ODJf|b1e7k7Mw$UZx`ys<1Oy3D z`0(DlzUwu9XRYU~^Vi<*`i{&&4GaL_uanmQqip|#Lh%y{%*GXpfLYnN{*4!Lg%$mK zJmA$jZ~!kX-Sxqhy2Q4a0KhF00D$w4cn}-7I}`?f@X!fi;{tPlz_~pwot^$#wWuJi z^`QALtL`&UgDwjbH*Fi>!zO#CG>4h7>F{zi>xJ+*gG49Lx$uJWI)rbeGAnl%YVY{Z zGkz{z=~Nibsn>vocY68=9QG-bMNz&Wf0t-{&7soH1fFrxC3{DQ0#<7kVz3isW{u^w zm_x96e2%~17hS5wV$6yFEXHCV?Qgo_nNqeSp+}=Pu0xbALzI^3TV9FeX6x|Myzx&@ zpe{tdL#M;Um>bq{Sp2XlmVVwM^dzQ29a8cLxy~#VguoeFPf&U6!rA-Y1h|V_arEJn zN)JwFS*4pV$g$O{jTeUoD}Eh%T2z7D=2un_L+am2m`WzU7RJ$yj`DeYKytIL8;RZh zo}CUjY|`$oet=aZsfg#Uf-4mdVj1pRrzMYwU148-c>+^2FN(!T&Q?0Igl7!Zo`8=7 zB-Y|c8N{``Y_kP;)fQH6cFP(b%7_w-qOBcfE>g}AV3#H<1X?q``$QZnYFBlF6Fl76 zDTs^RmBaub@f?l|$bE#^ywMy2e6`MeSGT%0oL050n<=c>QejbFd;LDvf~!(hf1kO9 z^0y~i;4G6>V?OPhdvhbhjc}VOU?(~x9DRh8FZDIKSzhHxbiALsXh-7M0V_v*ETSVT zas|xKn3!|KXL$sALpVsQ`|@$~R+VD0)U{{bt>0cod2}xBz}5YaB*f|?MrR1aX%KugE%Nt=0 zF1Q+Zoza`+nFrBHrdboXA?G)Xv}^ot>*zYpXrXy1oF(SF1&s|wTP4Q>W?9J0uJ5`` zUgm^TMUQiJ<$cvU-6-fJ7}~mNUsq0UcK6d_`DY{HVm&Ec8fb@TSWyIo%NcA756@*) z$TmT#FnhhxN&v`(9>9v&@tI{%H40DlhtUx9T1eC_if0#moqYX z`%6oy&b8r6pDmMba>g3x?)Pq3b;0xSsZQ@L3XpnHhU{hU*W6ZF0FkMzxR}1pH*PNz zmhDZx&Vp4OGudoko>)hD|ASHx>IS;VQEQ60!qDQ33KOmN$D@@?o$$LAb1&(`sQqVK z@?;&^*fLRqvfAQ~YSm0F$6`9U`lrOJ%^fZ(F;aOc)(o6r;_57s*}W16uY6$X1oB8L zwu#ercbtsqD81&T;}CDwv1jJZY8UH+dCixPpP3e>N=h~3yXOd^I9hj_6%}lcDP|SF zyrcd+SlSaO*@ zRg!JEk=`hQz62+38(m#>Pk9@3u$G;3KaNw)M7P|D!apW{Hm72>($7s2WLcr^V$$dd z78Vp}pfc1bYAh)d?}aQC0qspTeUzCg<)U?-)9s|^GyBIK8j~Mmtc!+cq*+-M9GC|O z=%4z#c{|zTzwW>wJok1P=vfH*yo3|7at!ynjc1wOShH{#Wf7% z#1+mqqv@Ue!ia+zA#P&I3?gR3Hjle(x>e{tZ8VkF(uB!}Xz>16Ye17L7D;M~#}=gp zQUY@deIr93&`kwxuBh1DJhHbH z#@gBpU434!Z#}BoSxSO8kxlq@vVS0ngu3?0>p}U>tWQ*`rg2tr)?!ncfH7U1saRJI z_gEY=YbP=r&JNB>^A?7Wq^2kqp5c7^Kx)|XN&_r5eI{P-IWAi90!bBa3@dz2i$V+zh zn6gwtx-^?E&+w}#vSqv<;BRuYvkUDa?v$1^5Bt9LpE~3xnZY+LKvb)Tw!lbeANfTn z*?ELY(=!~bW7=ZH?%|lu z)m0Dd+01YebTW9vqESVLmkW_+k+)MURo@G+tld))1tyyEEOczyzQ`UM!hkphFA9_l z%G0PYE>4jKOLlz06IfugF4d5syxtV0Ml%6tM8JlW-_G zwBuvRB#k_!h@4-z3vpAjwSXEv|H@qS+T>9uX7PmhX@;#axH}*Cj?c-q2~k_Vp&4-i254)leG0Boz8o#2h_Tq^oxjy#Y4cFCP8e*hqy@GdHo~0Rio(YDW4LQyvc! zWQVcmU3)Aje=8Lm#3G2xo3E(JIu;LXfR?5w>4WYU;^YT|#Z#{JuoM#jbF)Gn?abTI z2Z9la9JRn=ZP}Pqt+&Cx#Hl7+(nL>7OgBG@XjSZ-`7OEyVJ>N;9p2T>3^}yM%<4-s zr)~LQ9OfdDNT-CI@p1MJhk470UPmQ~kKduAdXh4-9IVS8p|8QK$QPRm`t(X2o@2fJ zni1suAUD9oZl=8xVm~0ddYYaPb-C9XIJZ18=Q4#W5^f8Sm^zLr6vH9c^Nyh2rK>RP zH0p(me>G%@Sn_bWSZo`BZVZ^byYO&rGW4m#-yBDN(=yCQD^@R3HFk>+s5<~;ewav8 z$cA!9slsfl`R%;RTTqO&@_u@E-<_NzBk}qvEB)Govds$Whrg^CD+0~-n49@ zv3>vHdOY=*y=`c!rzthM+qmAmrP-6Ygmc;c%Xqd6mnUH4fxA9X5LeNYCg9R*cWcuk zdBH1>%*}_ld!pEb1BrG4GD=zwQoR|RkUh6 z16No32Ubvst%Dr`X2b1j|Cd8m2w}ATUO!1YBBl|ql^3XZBH3O=F77ZVvrh!1!)r$t z=5$rn8j^Nta3J<4onH|W63)X3!+6rWB3_gLO&I0zLbiw_mHeB>8(2r|NHv&UQ@u)^F!T~^{WX- zPYwVu{nQ9|2ROvW)%AD7P3CH_eXpN7&}V3JHQa!HCvQce4uOXKxzl(U9I>~Nwv`T# z#hv+pXtFAm?M6&k@#TvIXL}ONh?<=|XS`mbCoCB~?jOU1K}w15osd`}rg$1->JDG| zL+&Ig^irCTZYREor_6q~seCZ=4rOpFpgvgk83m_-DOETyJJjJN`Wv2sfa}f$;Z#oV zRBrOLCMxmPW3eqP9ZFI~dnBvb909SS8ToFHqq=fHH1e=4SBg=d+s)T_f)buguBl_2 zq~^wO-H&9UL`B%Ei+JtK6VOwJ=G)(vP_BIWYDrsxZ;6RVQnfwVUYtbG>X@V@=y{N^ z{l#!&cx}H<9Sa+Qk$9C`EA|J>z1XgV%5+gXw#caL!&X^A_;uqPTf7n~=riGE6iL(D z7pgC|8qvY?;0q#e;D}NCqp)Bzz#8WuwT4cUlr16Dy#X!PK0>kmw_TQTyI$L_f&J*Y(1W zFcY${WJ^&gNpjc;@8vuLL+=OL`uLD`*d3)DCd_L-C~x09>rzun-WRpCFW1JZFgLQx z0m=?FKMBKAwx<#X*Sv99jPS#f{ z-UqmomU5F)h7ZAs`z4A-mz`X{9K)bHNOjDhlwhl-rBo2tQKmE$rAuT{_8gVva)BK7 zkRK^=qES!>mp?Q~%iQPTd|tRS#}W`mQJn8cf?u{rJjyiX`^p-wVKpViR(QTREdD55 zb<-QPZjrclD7{E9P52=<`|Y$rmH^1HMg}vvSeFCeETh{wlus0AZE|O;R>4}W#99Gd z#R;s#=I$}ai>`c|qruizn}ZXAuxxnSRgFBQ*#6wQQxqiV&L0YDS7gl+BiLo0(1-5Q zZpcHPN^Ctd38g8J>&v?LO1@mTywji9m+ksRX}MoDx$nXlO&V?3+Kd*=cts+;Aqf&y z5bQR0rKR*1pb3V4JiVEN2=5G4DCIR--l#la)b zRuifS;yf)kh;6(*!fweB98r8c;3zi=5*Y|^Zm>Deo%Vc)Q-kQQQTC0TGc<07g-is)~9Od z#PcO6_Zl!_ZHw-vN$N&_yP(<)7p*L4X&dLLfc2*zS}4Ko)F6wglUT5P+Gbs~-GjhI z-+9uCX)>uSqBjMvlB^v|4MIa?Egqz+5BSx);k_kvtwN9Mx|tQ#I#$ z8d(}yY-BbkAS|f0HPmDIgQbZ`c_D=3fCYra-<5e{Kb7TLYER)SwT3*)V;yPY}{X zWQApDwWBr#;^UKiBh-rav{ubSCykIxI<7(gEyZ^_fcZ%Z37E^xiF)M+rvYRDh;);m zL_IU~&E?eH?U&S|?f7x%=WYFva&Py*Fe_1ZH45zXRo^8?Q@iZA^S;)u_{I6}a~nvV<`U;Myc9tb6JslBpGq6U6%l3D+MN67cUXQVI_!vGxsKwKqL^goRd z8!MaNjgLP>JiB^G$TTm0<2i>%4~y$q)&w#PO>S%%wi!SlAscHWPQj!W#LOxbdU1Y7 z!tKQyqZHtTW!in*t`lV`5Qx{@Mc;z03V+yspn5~{Tc^w&6tLXMXpy}Bp@>SLxu}EO z`nP8QpV!2&(U%Ai_I^18NVKu&=6PMQE&p7?WkX{b^Go7V3ZaDm1a(C1wL;&8)EA}2 zIR%QL_)RVhgUD_mjwz)JbjJ2lT7%TcWI1Rc{1crnqhTf&gD()@X5HdD*l|o|P6b+`fv4FR3b!@I zDdWScypibrYu3hA7PG_^jRpIHVbt5+nZA$nadDwR zuPl&0I?12-9>;U|>yEr52-_Pmr(KsKK_p7WeDlI=E~5nOaa1FdJ%NPzJzl3wuNIQm zL0yAVCmjN=vSfGnLw1z33CAm&{p*TU#yoo6W^E3j839cv&C8e#6Frw?SALJmwR1Ca zaD5tP+`uTrwUC@aaC?_mkA6e8JM9!xTAe;#OkHf9Y{62rx+@7t=|b=hcQhjd-c-ta z??QJH%jp(xe6&c~H^0e1uE>6qfBe|GUw!?Lt=ql2V?UDp>+-LVzq|bZ zv5j9n{*T*`xc+xq(=0s(~v{Od~c@KpWx&HtPb05||kW=B0kD`yis2Xh-IM|u@yC;$jW8lf@e zKf~D#1^@(l3IYK9dy@YL2=$*wApxHTuBsX0nEni)000CL06_MiKqf{edS(WCCf0@~ z#>OVbdd7xy?grLY|Hi*$!7+A7{SW*rO&!}!HdODI+O|_Am?Z~8G~xVEV9`v&;MS$c z#?k@;v$F{z>BNBFq|6~-FYyH=lP##Dk=a1epL=V6zm7SVSTSi;eoF)~qDV7SqP7o8 zry~FbX&)m+u97HbX(zY_0%;X9EmC0sUwlr!PfF9x?zk6$_Ip-86r^C@GDU=>#cA5kmrq zOE8S|qC{lz{p5e)PohVl0EgG$`s;MwnSG z4XR^6^Fhv}cq%MALO=>TtWSP376C(%icm@$CD&Rp^Oswess~KvHC+ahW7e?@RJ;h_JSpIHdowxxzbUSLK$e(~U)%5g9h>j55IAE z{?=rE@^>&W`2b<$D=2@$=8=a^zJl6e^3!XN#0E+&2Dz`LKdE%CXib3KevGbPEyKNW z@%BY^k52kD09tp+)K-%TE2f#I9Ifr%yPaD-E%894P?Pgv-GP{r>zZP`+ae!nDd`86 zstSn|m+CPn|=CN`Auann9r&7RLZGuyvk9lMZE zRwrJZfV7!+3S}&~yN_FE2l3Fqs#YgEb~#h{Wa@V(J$7+)V|>&?vaSTka(7;=QWRCY*4sC$EX3H_m|to{ zt1G*TDT_>3BCBi_IVHcPZ7-V9KX7I^3|q}3FBjzmrP)_q`-1K~uwr1PdGmTGl3?Gk zW%&aAw;pZ&BWzixT5sY1NL3I#06_J>*CR)B8&fNj|Gg$v|D$*R8vh^7yHb;i-DE@T z`A~y(kn~fR&CG*zqL63NVzKMAU&&NLL}X!YfLtsRQ0!!l_IL9;po@!FJ4-ZD#Yy+zBrYF7fLUQJMu@9t-o2TT$jGKH0qu-1vr*<)#~)9 zlQc`G1y?FOLPX*>sI9-i_?FF^K=i0pYgA`cFS#pbq`*5^w}GM8VF zh4=$gy3H0_-~$D;;y_b+eW?FdqxR8{u$4cudwM|Y3O`qfl2zCEVB5vtB>oMpKcTu? zz#NU1BuuWSR-ym~StubFSc@oGnAD!?0n^ONx`AlDQy!WmkKP==(a7tHN6X{g32d~V z`eIuXm+3>r zL=aCX{vphMdRJ3FFo0Cnav$Yo(s+5UbOTLN!B&=Nr_F>Djlsj6+x0YZ4SKPvAQNQM zNtAV{CmX+SWNinqs3Zoxfw2;jm^`*HsW#4G2!nIkO1MS@_BxZ*5hXhQ3Q=mSEh>x2 zpkuNL^z&UJD>8FhNl)og;0s-)*X>Q477Ca;%=vul6Ih7faIZn#>~`Arh8w)hWLNLF z97)4K-iFyoh$N2ooGzqLY7ntUgpSoFH!VlJ6J{3P$1C?>>|MLj_#8D9H_hqHp0p~| zs2ZBf8Rpt`}^A|gpkhz|c#!^L>vRnWs73{n>LK%=Vx?>mq(HupZgf2cpe zga2|z{%Q$|TJ}aTP?kH36c&4Unim`?!jsx>Vw&pty_kj-|NH}FF(iT?k2T-VpFctx zG+H8d@&X#NW9pP`6UD1Q;kWCnxvRTf*IEg&$m8joMGkHEVdL(ct>0F9Z;K^Y^y$Vo zld~ANn=ec8OGS!YZM*})lkfO3Tvb(HX7wa(-kV@Z#UWcRYS!SS==!_ zz*|2L9;m0pQuW5hMjSK83N3c_V(q0deUEk5sng|_Kp92R=q%y>!TKmArIG}GbK(Ao zE4_KbRh#v-85ZMG1%>XTnnD8}r+9=(^R|C_W?$m9S%_aX2X>|>IwdGsPXtqMD=#d6 z?kX>%!jOZ%W~Pf`AZOirRU3WqYq|O2su#m9{NpxMlK!Kz|64u& z1*jnl-WUf204x9l05tz+z<;?Va~nq|11l>%YXe6o69+m+vwwSaic`wo_6!H||CJ2vEnBq4ZmVvnI zjHasNPXt#>wC^A|OP1uKZ)p8oR;ls+b%YEOL>kymNHUO zqb?!YUYjY--EVwTKY5T;X@I`kHl_^4=t-_XJ{LMII?~M&muNxhne?cg)jVteK2Mf6 z`y9s-2RqFwJmGHaz@aG#Clkn|hMAzgA96XYA}`|$FZf5<{5)*Wq~9gIx= zr#S{1!TSHFQ=E~r>PV%^TR1)dFl7Y*(Ei_n{})>Q7oYZ$Fpc%~|AS9WJYQ;?Z4JFA zwes6dggiLt9eU_&os&Wyla#@HdD}ZmW-DvZcZ2nfDR2hn-!JUU307~^P1`$JiwEip zQ)Vo?3HPt@j+i1bX)d60>C;EKX`**37Ll;@HBdtf{2dz$fz6M=)dDSrNBj#n|hUQ@zx7#HA zf}o&w$S5wLRgA=4xZ%1eJO8Q)icIAZ-lB%wCQPHqhIzAvqol~T2asNiOqlY?klk{~ zGNO3($+~A8Y@t1IdcGOrf$PSFxH1HFPzcz-N6@#8cDb=R66+njybVncpw1t|`Hd0P zXktfkSwy&jq7soR?K#Xy{(?LXArh+sF+_J5)?QdtgRmX>81==$#k;wtR);{jjBQ&W zIZQ~SkWI(m6*IVezkF}kS3*w#qyYEYyFMvssayE!_v0JmZ9bhripH7c>k zqxgVPpt@$Bea~JD1{SKZ=JDF&PI-b&>ke!ufux!eB&`|-K849uh{G~DXM$4h%KNd* zmaD)S_LH3S;s;IahZ_LkM--H%IU`!IDiv2Ay?sH~*L(9WIpc49) zcDoTHFNGKthhF2(2_uM6=gE%;u;{%>AkVI${dRWY)c2j+C?@E6Xxf>aOGzp@k=dp= zAZ$qdo#{xQ2D)WSW`6VfbOFNK&8zPl*Mb~`Is_F)_%Of$(k#8di8hlgR@=y`te3lc z%a9Ye>^br6ijLN@8}{}RSa|o{ACA?9PqGE#<{GA&u2vuf{SB_<5WEmC+7Wo0;Fs3m zUkP1?%0iA3jxv&iUBIqiLtvn$*cyQ~SFrtccQ?Q9i>GdnY{~{T*CuELQU)hRMeuk| zk-2Pv77~^x3MDryR{Mf~pt`I{RM}<_&04Rbd$;7cr2h2ch!G+ip)5h?pQ&vUCW=u& zB141mA#th;Wzs!96l(L!UC9`Nj!2)W8Hy@V6dq`n5@Zp*Il)A9!~Pqzdb zBd@h6voR?Kc5NMXmB|5y%)&{Z=I~aGt|8J^0Z&O@3(k5V3}vlVKUm*#d-q-QFf9l_ z)W9p!QMGOynRwpg`#LI+J*$IVFw67076v&8sjmvB_8`#~gbZIfbQM(0)uzy3IW1%c zj>)6xL-Qku*qDw+Rroid_o|piT$42^5NjYfSnVI3amBwv;l#uu=0O~Z`u)j5kARA8 z%a$?IANRs=zRt`a*Kiv)c4E6X+uhioHC|3l1F&um;6U(QU>-V%kkGD5A(#8(CunU9YX)|yL(J2hQd+z-!h3N!Our_#_S8;s@j_u1@C`mn`tV~Q z+6B-meVaIkR*342&MPUrM8eZEJI>6HI%p6KW=O-6KZ~+%V>KSkxX=O&H+! zlVkBY_;$|U-geLTS2x9Ry1_^UQ1Empb5OoGqGhL9Ik>r(-=4}?0bgBxJyQX5=pc7q zdox?ThhyDnkR^q@E2qX`P|4PtRujUHuP6)`Z4^S9Zy2zIO)kJ;8LRKvAMlDZ-IQ^k z`+KLucVHKcl^>bQ8ZI{5Bo!`#KubDn^m46vn?u3Dwa?huSva{#T#ARlLg_LXg};mP z6~P>Wfr$te!;xdhK&ersuSXi}t7l1&G4A}=VU8iCX-r(X$BA6(0|U^VladYTUFAkc zZN|3`pO3a zL*pjiUY-dINQPnOjFw;Xj1hqW=vJz*cQCIrRxu&sdD;W~aWT66s;e*SdKy`h=;hmg z@Zb@R%6UyG2K-!{JlpiS33fTxA3&Mbpe}fkPLOKI9~NEkH4mHwa@nZx`hC0MvgIgyt_xd!1kY}RJ z?HdF-qokymp_lyNq!KnD{W9I)?YP1u@rg(NUmzaWXc?qIfx(6vs{Fnqvoo^aDup_> zR|@9w8K$`60_k{BEjUgz`(-+DD#aDA`6pfA1_Y*H_L7=ZV{LZb0rrUCph!cwSsz_E z@94o8e<9jdt@uKov(OxPsCx4IfUlOe(Arc5(k1VltNi_7>1#aw{TnWpefissAk!3k6F345Yc(4R5m^$EB^4*hR#8TDaG_k}r zWLIGjmsLRN8Z?j=J{+P+m{C*_Kx|t%?vRZUO?Xoh7}RH+#D28HnqExMVL#Z%{)y

%lM2kc&)kqxQiV`Gij5z{=|XbGM;L!r|s7Y@iX{7thuzui*>*q2yjy~ z%F2+y4nCSEh35C^vcqtz5XwpB!e2@c4<_&q? zfgP~*?n)DWC}bwLdyS7!@7UjRjTL8M>YcWtcd4OcXD@=STFio4_>EHBkJGAR{#@?9 z#!yhhSd7#M#(+%QG|6SCOY`smy}_RzO7+AlE!qs5`LRl_h^Sev1N=u*0pY+!!)Yi% zuft%7gM})mw8J;={J20&2D8Q76|bJIh6hcZ=TEWyv5X)VYkv|lSv{PfZp03KIwN;_ zlT#g*RkCrO-rV{znWLi0D4Y0_S)DZD7aO(JlCByg4RV)-e&^nT@&(#jNV|aoXoE{C zkto%XVteU0cy5gB4(?@iQ7$cJrvJ`mzm09IBxr9?&$8NPOZ||Eyo+uKepq?ZsTxFR zD5>2MI;lPd{i-0w`Q5ULaxtAc19P0{dU4R$NnGta#>40a!dp!IvAWfSkU)6?y9LXfo31dv1q4Mww4sfwdZtfBOEM~!N^El6$0 zgEZM*G5#mm0s`Du*~n2!B)wp5%%nuUlnLrM$#(JZc`p{Inl&ZN`2v{71`>Z07{|^^ zA>D2vTUjw9TD!ieRN}Z*RsiQrXDkv2x;F}W9Rh7w{+_y|t9QDEd^H1ox{8UxQI6aP z6;GYzVp;V%&u%10YL0!oDy_+QL?MG_%N0EZJKd%o%OJ#Bg-aXF!f(tcpuveOs|oUP z3c|>K?&$gtbys{TU#*$~6`7*(-VpztS|a`BZAefY;T0 zzCBSEo1IvhRWmnM6SPZxk-bpV!Iwxsl?q4}*?0;A$Osd$mxgQTsB8={sERWLq9O%N zI6Z=f7aQoyq5LDJ#iQLGvY~irl)#NK6_q%2+5PRpsLESOpZl#ly6#yGml zPEebFvC>{@l~WtR8N3+ZnDDmrwd%t$pRJpEH>OC5qGOq=>TIR|47wg!W%|v1I0(Hy z4@U;R47R*4AC%&c?1Cp`PGtb?e~<|v66uGUU<=%R>dpRw1Dt)W0-Wp>dT65=?7A^` zsLU26u)B^O4mQi;ni3Et-Kn4{CL`DsZTg5~TYeGe?2L>%+Z?+aR#fCCh(Z)vxDidy z55Wly(KsUTbfG*wuH(|+=`&6Mqyo)BhR$ow-s8OoJ2JhcYy$rN(%$C;LnGm`vt7=c zMWdNPPJDGo)+4=+8t?WDAYwvjWrR$scP@sOuUKRr{22$$=eSY?#e!T0NyYZJ?G+u2 zTJ{v4U0mlmnOVPJX9CgA)FGys^0DF~F}`Sf^Zq_N5oUk|Hmw#*l)%!5O>zYosaUU? zClJw+`|k|%;k)?KqC%>_@r&XmkkQGHh}|H}K$90Haz_`H(d_4Fq6;oiuL}^csKLj~ zkkn;mV@!W&0}xCuT?=D)lN*^fVishQ)=t-;+9L_`Bb-Mnl!jwgklEeq$_Y)CLhC3v z8+hCg%H7K_t5=aII1u#B@D}CYBgq&WbwQa*6&#Zpn+}AH0If7soe}iv_|^XuKTEjA zxCO^TD{9056(>i|2nBZ0M%L=-P>A=WhurnP`4l;deBNFNz2_8P5eiNz1AgEEY0f;Y z3s-c!ZG9FFWI#@iN9S+29cB7tW#6Hvm1-@F-I1g(~ zgihJvI_bTA@Ba>lUQNzL*R;~ptyn^_DO~8bW58l)#6A1pZ$)W>7cMbk6Ro}=h}KJ}YCVkmz=!Imr1`}y!?7aNC3-CFxc0pcms0;9p< zQpTX6DY!}I<2RaLMVHs$rGyR-OV>FMwK#92Iff|f;66KeR-3Ojhv61mz**9lJyUM9 z$|JWjt|l+%b!1qRcbC=Alt3R2MMP3FQ=Q%Gnx4QnZ_}Q6p2cY(L5t*qg+MZ!!gM)Z z38`DlxoTh~%#8jpayvaDj1E#t@rdA)v*2v57o*(R^HnSYg6_V}C0ir-1u(sOwU%!I z-7v{5R}Oq|KdQ_P#t^eQtf@alfvT0vl+MjY_kp_tKjybLdu}BN$FNNpn+L?6 z9{5FqC_fvs_*eE5olC;= z&>I&yc$e520qhDL3l>C0UVp~AU`&|4i78W3)rJi$mT)Aw1P;uE8>^!hd(*tBvkl|u z_VeQjZLLzx0tmS%HP%ao>qj2geC8vEQOu07*ZZHon;4X;funm~*#-)@KUvRMBg@l( z=gEo1RX>G;LZ|$fJMAiJG1wzf1;mJ)4t-L!Q3cPU%Ke0z^hA>t7)kK6UkhG%JI!)= zzhJHMHhw+#l|7bmC~EA9V*oFi>?lytmo0GQt{&MMrqOT_=LVDl?}lmag|uunSw%hD zL#027ZIlM-8G1Q{f^DZqw&I_b!3?zLdt55-Sc583v^m%w^qB%SO$=y)>__TdzN?c{ zm7SGa#i`KM@r*NJf3TWr6AUPJv+R7&OG13f_E)PH@|&7R!Y_imHZ)JshQ=<1+@+oN z;A9hLjl#H($oO9~fO-%?dK)5ohC;8`6?iolSU|GYJ10m!<%cMEsG{zN8&l; zu91=&OmZc>4gQUDFBGB+Su3Z{f`|MaG>7@>BT)!f zgi!K^WE;;L1!}FqW1kabj3BVX0Y_Vl)NT`w^P48y>#^~-!ReXh&j@JD+c4$mhnv~D zvy9zj|CvT9`4XV68-ihv11e#+9u`Y~M6DH&d!mhc<5$Qka1l0Lm`0GTN(pN}x`|;< zT$k+ZOT6ss>uf>4c25qUk3YUIR-klnG{FZfb8r~JDsoL$F!OKYAUX%zp`7&2GnIXMb z0@CissQl0Ouk}vrwSDW0+nciDr_cAr^zT~SzH^KK%uWPlD~MJ_+k8b2g&ewV{6dBL zbK%sVXbV(a#Y;@(qDD?{%e86hCCh@WM1G+<4+ll&%%Y?&bVS1=jxr`*6<}-o##)W!$j4qbKgkP8UrAk;Jf}ieb zjDDCY2%x{mv_b|4u@e}sR-^o#KFpUXFZAgAe>2r~q~n`M3_!lr z{=T#zkQC0iAxKu53JqHubItgRWT(Bv-f2pIBuE~}Z5>k}HiV9nM^E${*uviNZJ?0L zDqj}(B3GUvNx0byWxI^V49xtg?S6r#aAK}%As;zB+erU`;|HkXT?HmdoC{lOmAzwD z{iRjbl*o4*0)3+09)%p1PHNPSanOEc70RL}3boSp42O3no}S?|KN!#D?#J4y@CS!o z%PH*SzO?Qaav`5ywED&9EYe*EAGHk;7}5$cl)b%zM$sJ(Sriayw)*1NJG48BqB9p} zeERQSXe4j!L-~EvV8&tjxwi)dW7>HJ0b2mjW&8z@@2{bmU3MAKFH~gJ!X>UtY9-sobD&<4U3E^~}JPIjXO1Nj)XdmpbQEDS)z10Tbmf znv8JgEA-JRi9*U%Qrq{x4*bidDJDoWZowLVz$oqoUzkv|F6$B`Xoa|=FW3*;aKocM zci6=V6>kp>v8F@@q07Mfw2B57Xe(l2)%6Z|7(#A(vf$G2{re^ZU#38~oVsuMea zBWZupUL1Sq(RKT@H!2NHI~iY^9`9Xw&@@Qn5D61x%7+6@lDEXA&X=p29J=ed)0d_y z==pt2G1ctvt@6wXq3N|q$35YUvEX#{@2=$cgY#}-9)`q~!W-Al?muu&`P-P>i?EP7>*~(6}THs}_2qaeFoK4MQ4xpQ9~~*N>bRu@p3&AEY9m4NgzKt(Be9^-v`iA+ zW&0D;nr8W_o(l%tZc@IxJzwgz{UTa~iwjQDfNnj5v_}UP$_EJBOjeZ~5b*iT%EMMh zr@6F8D7303TaF826Q8lnm=M3KF+f88=@`T*fRJI4MPskm!Rz(-cp#VW_5nZ5T3Khn z+tU?+1$6|T1(C(}c1;_VDjbe5(4D+btSF$+P`$9N6g#sPg0H17L|1gw=Hs$*+58E0 zXDI>?AJuxQj-Gc1$yl)KtY87vF%O$ibnF2JBL={zQ<6xQ)+VFcW4I9 z!g?Dy`)yNrt$HUIx!rj`mztdZZ8kqbT!o_0cD~l1gbU>?!t6eguqL4X6iG&R$gNrl zo=$*OSYw6Y+BMoT=CSQuZ?s~`u?YOr78=Xyb;9J%mVSp^$7KPUo|$brakSLz6KQ1* zDY*MEGmgnJVjNb>O9Yl0uh=r*xZOjiPEBsxG|x^H5xn&g=;F(}O{GwKP;GtFrm1=l zz__V#rQj+se0}Qfm>K(yWp`~e<+Xal%;s|Sc?y>N02S7{BA0h8wB-);GVE^?5H*w} zGqoPj2}LFj>F2lNi3w^$=1x%j#y?m+f;~J`kSQCthgIPoeTKms{#-e~dq!~Zoe0UQ-{l0vEPrR$Svq7|7oO-+fJuhO1)owsLJ$sMcj83vSVL+ zLTczK^a-BA<$+S8AQo{Y`IEa!wJ5Rn<%qBO{%AGV>veDW^Y`npNs2(Z;JhLD^SBk0aj4pg{v*R-Sl zOi-(7^{7mW+(3011Wp_hHwQQ}NhzIM)dKik1(dVpMHwCt8PZ7A+aA_su-?y3KtHvL z7!QaWh0|@Wfy+S{TL}fPxa$WkD8s1N^f{^h+lL8TcF#Z)IZz$UTtQ}^!w7c3p?7?h zefn`;$5-Mncejk`hNEsKlD1;xLJq+|0I5w>T{h?CU(B>n>TofP!eq%dkc%ca1S=Rg zXuk^xZND>vSMWDX6Xyv1;iO2$9Mm@p!n6shj)*!A<;qYXxDx(8_6YpPo{#&vTMPS~WQW!0(7xSDSmpXR8X~LHFdLDmgtca^m{(Bnx1hz$ z5MMOnJ<1Ef4J*y?1gDy@*q) zQyv<8_Vvhl6!Js?oA2kyz?W1Ig-nnbf^@K4g zjbPyko+2uQ!XwAM=0mDT;&>d#i5TK(xqn8frG~?BLbAKRphe{S4em6dzc&lTJzM`^ za#&WPfcBk7E<1oW;#Y3?4ftRc_Y-vvyv1@iMU=&JS3-i~)|F3)-rMs5JJPNXAyn=% zubFoDdFcYvqH)awvr&s2&OvmHAJIRkFv{9uf$|4i3G_UrxkQI%dw8fGSe@s;E)C*c zgvul?>~mn@N^8W^BRLENBi`BN>c(#F!GjIVlD~!S!S6F61sK_xX3?|d8BUMRQQ5_r z>aj6OXd#&H?ra6T2B`L>IBxrN`A-()Jdc5+@#i^)!|_1lPzNYku}BCK>&pW@1(@s& z^4qJNr@-RX=GnQAFVv%*lbI?X+MQa0*I1xZispuIqUNJi9d!ytn)aP)xO9d1JN4*H zy~#jd1=yo@Tg2aaZ-7gU{&uYUw$G3=L+cAQLDMHFJ)r;VK4FR^**{BZ^5#d7Ov$R5{I^1t13+fuc#}?O6N5 z*ut7cian7?YK{D>bTFBiEE*rOzRP857`LcoOdVbUcedvCFZ@d^!=LBhK87JA0|un~ z?uvAMIDR#=4S_Xia|fZh`!}Vp-h-WCDq0Me1QOLcb=JnH+bt&grh$=@I*dgYyYoBN zC>|3eR34h2Rc#Yk1y5(V(T|7Ga_1+={ji>h^IU!~w}pZu-5Pq1Aepw&k{kA{Zo5}q z7_9CO1k?)@qNvmflwiKo#F??Bm6b_ZM9G`jNO`NTgm6M3(9u*UvRS7N2GQYP7%be2 z>k)8NhgYluf9Ia7WBL@;-O)-IK_-mi$%W+NEp|&#LW?I!#6-|ldbpjj<==W(^6%c% zz1z5iGt&agf6)IsKBE3lkYE(A8KHv#0HBis2C)3!`~6n7Hl}8_4mSUlCHe1YEXF_S zg8xn1|H^yQ;V(zbsi${v%!!rTpTfnO^Xv5NyOE)qNtY+L)=LND4hy1|!a{M%`E(2F zVr?C-Gv1FIh&|B)k_6=B^d4m;1o%=BV1nPk1b~FZ@xRkIT`wl6=n4*huV^K@?x7nr zM|}jJyBJ8@Q;ULA#Ne6_D}VQirb{}PKLj;hBycAcznD0+GtNmq#zMp5sO1*)-r??63~5+ zAJMxiGo5e0`a4eycUC9V;Z}~CmYAE=$M}A1d+sFj=?lSZg>#f z3Yv(y;*`GVEwpLJH-bzZ3jLCC2rMum^P{L-$05 z|4sThYa!_X{hYKVA`yhUmIjyY1Gi8#w!lHQZY+qrQRyf@Na&%ni|+DA9$|g z7MuknTkQuWfjK(MqgAKO>Z|4hT*z|RJ%~7)KdA2{Lj4-hr7t~!J%}g+L*g4>yw*C6 zBndVg&+@Rt9CiYEhf2_}W1J-7ewP~}gul;?oo1i@R-eM9Nd|!xF^Tmt6q))!@fSZ| z74st<9uzu`VAx+nLx`~J@Ujq*JO@9-Dev`8)=WfluRT^zX(Cr)N*C1o?|(UyMe2SIY3hQ)$U9f~&E z=bxHAzg=(R?A5L3Ku9%IIAOrv{e3ZR!kRMsxN?Y(8Z=(t=Q$ztYv}WWLBh*`0(%=r>B;*QY z&%jJUeAk={8Bk^oho)eWWFNMG>vPaS`5Rs0(GrYy)I7qhtcQ|^>qZdR&DBRc!4_bA zTKy?r7G~GY6i+Zm^ycphBpndJeiq+K6XERRQpu zL)IhYBR%_PHAi3?W5!JjecFhU$8biDn{G)k%zP5~K|E?I|es9^HN( zdJmV#we;NdZQ@}&w}crr%jYLl;n9S&i1Q|yps@p%XwtHUT2)UY$W91go2`@i9IBpR zOa*vqf$plA39^9pVZ+qS1z^)+n9G*ZAmz!0?w00kmX()h=D~HJK8GOw2-{_*Rz7>u zLYOfNJS&X<(SiaiQ6WuQT20UW%P`^x)zR_55*?n~)Wh^;5L|mAG=i|-=Hr)Ef%2+>(?rG(^fs6q8+I6oB!yrq+Ib?W!y|&aCcKv;fSV{2!-2n`6 zM3MUV@+hFHHFgt7eHElTgJ za&@;Ua|X{akD4svp;8rwPvDW(tYDUaEwaKXOQb5Hm|pI&;?!DNWjh6S?=dDly9wI6 zZRB0rJFQ@ysJ?RbQo~*%v`$>p4yAh8VJ@_fPhBTI1a^mf_U0sW!vp5jI{v`P*E5{E zBu-Vb8Pd#4uE$=Wxv(^De9;e4Mtr0w% zv}`k-eWvaV!6-S%LV2j31)8OsKFY-v;aJCpsf-x zbV44xGmnO(E5GNI>`y<&5)yuUM}D!%FI)3Jez)EHd2AjgmOB&<`VJkewClU{U47y( zKve=MI4DQUIQ|CFE?dY1F*&y9dHZ=2;8(2@rzhn?PDTUPbWwi?e#_yBDUQajE!4Ki z>Hif}qrr>q>P>uOlCeG8^nC8cptC9;cy5%~tX=DoaF=dnYh4~AdqIBesB)>ybX!>x z26X$50pYAL92uH}7ktz2`u=3+wNbH>x+1mz5Q(PUrn78;J=y-P_YRA8j$&&016z?^ zV1Aj%l=l3GT%oCit^e5qhi@gO868&!^Zd}h2lr&tz9(DN0G)4LKQdUTtD$YYWRqM( z_9dE539nO$cq>;w5je^^_O(CZy}C)dZma&bU=T`nlmqwBDawDkGXmcVnZrzfO|a*S zSp?mzlTVJ{#o)QEu#P-li^H(OTU7yhh}0vIs0EImm~q+qT-r9ccKk16zOze?`R7F9 zODmH8I!nVq+?7W|R?FuHcCh%Ajoz1XpRl@J_0=?fdtgfp+#bm*#2;S$+mJg{Gv#2| zkxmX1F?s$IG3~jVnK*?y{omWy&vS$jEsir0y{N;9jIBUEuKTTPv+21RHbD_V;apr( zb>?>FFn9TI10>uL5ccZ#G(B}O{a^?;d2M>iLgg-9iO_kdJWc-fxIaD@|0as~D_7*fj-1~_c5!hB>uaU5EWQX&o_%``Yc$x#qB#xi~y`FC|(BuHpeLI659+~|j{iINGxwj64x zWOjkRq6+JD$5VcIi>)K}wP$@qIY4&oSCQKUrV1EnPSq@y5xr?3{p}%!c<$|$zoJeb z&Qss9AUU2-0GEOg{anA^fLzWvyt&s{gqlkhN;!`eir<`HZep-=meMeLuqDK8{X zRTe6C!6*2e*~M5@_19u*MJEq}2aVw`7pfd*H3kl^Jh+k0egY#vl_qD4N~6I;5^;T2 zF7M#8is|cD75;e7Uxsl4@g&`LO;vxeQ5)E7Aq93QvmMjjBKk;;Bp1d^yvU z!o1x|lhXc);>Ecl4{`6i^}fUrhQUPe>EN9ahQ@8-++OYE^k2g$zr^!HGp-c^vb2-i znt+88pvf%u$R$3Vm9IdZ)f0l>jEgX<5c*Po?ztiogYbH|`3sKu=nw?jC?Somk1O;8 zYYtbm#FD(Soaps*^{iex4szzNrZ-Qzc4t1Wx^}Av=;khxN|kbI72IvGXk8{2DdkFe zJlDIv<`^^G3W3LT73jsMnUQi+=&-KotDCcu7ptm0tB_ohvUKDH6}ds=VMtX+TLRjq z_OnwFkrnL~L?bFO)a2|g(hpW<5v?|9yrxV0#t2%rY08v+5GJXK`y$(>;}1Cvx&Bm6 z!EgJ?@1B#mt4}A%2%?x6%t+ihF8O2BdMaZJn<&mNlR}CdT09lamlzA(t7ya4~1W`6TA~!D8H1k%x-?)9u5$!*`&&^lJb8Q-8niZqjgG8{lT-R~bjIP+MeluC*IKR=&pG|02PjubTG<%K;H!4+a-Db0((Pz)aZ+S=kM2sPs@8Xaydo(`v z%}eWI*ku#s=JZB7mh-hZ#li0$r}pWkRC0D&)Fa1VQa$cZPmfJQX)eKGl}x8@!+lWY zVoeZRXsg#}s&ZR5etKWf7Up#T9f9etlTO2Q>&YI6IZkr6W;sqa!*qrvESk%fcE?c< zWXU>mO`kQ9Bd|&=&M++$#mSbqhau2zI)hgi{3R9;Hh8pYTZHIjIB$CI0S z9}N_%D@8ui`IQb#Z4bI|K_r=ESW{EQ2NJ!Er?yA8wiSciT3Do_)?8TR zB4|srVN6g+keBc!K&)Y8UPc&I0k1j&rH&p?kKW>7P$wIs3KrJ0zZd7(*Bj z9~>l;rb4GqGu!L@;n)=>Km@|>B~k_=YqR4_*KDeImGvk~afb4r>0b(Tz>>9SCs(-7 z7Tw1Ick=HAiVG&1y*Yq2%MJ~7K6@oF-(`BL7?(k{2SMy*YQq#+jFT&X&v-7dh&Sw` zjMUj}1o|xc7q*1*hb@^EGbAj{a47}C{qMURZe{QU)Y3=`kQ7{$G~^biu<_L$tNz(i zdwA?mw{$a_%@amax7h2hCJpzi z=sqryFS$81Uli#HD$pq>8cYEx4&7s)aY2hGH@b_~G-L=B`#xy(`Jkwixjp#sPK|Rn zYh^bANW7^wSJ=A}-bgATqV7wk2oFPr?asFP)?dxKOn_$e9A57iCpeNJFQjF80t;OB zvghM^CX;Of*f7`o(#fML%CNgKBC@@{J)A^9*_={xL2da zPHjmssyZf;p?}F5CvA<;awn>`1>79uF4?YDu_~T6G+zy>s3^57U7pak4XJW+d8@oJ zYN(uT6#r5no2h6IWS3i`EP80wd;A*>A_|=&|hYOuFh;IH{x1eJx?a}M) zI(7me=#d{MyM+MSy1xXZlWf&+J_I$0&E(TFwsC`rD@<>|$C4gw`<8CqvYeQC!9 zDixQ^kman69Z}lLcyP8~4EuW#JIQ8S=fJ`Ha6r$S4&8I4X~WM-D|*MQpw>G{v#`>X z29;4)tPJ5BGpu_`f~{=w3H8z4?A`q<^fIu0LlQxgJJOH`v9R@D%R0-6WBkaH4px zEvegBC&lH8WyXQ27Y~k=3v|sAwTA-LKM&4E}Z@Ge@Pu zlr+FsTS`Q#MSSZ-Y$Kl*47@tVk`369MW!K_6rcL(`X;&bf4jbBHf^u2#5<>S3gpo} z-=$EgfKQ1@F<>1uDl>-(}0E);#gl6@EtUM$%HdHG>OO}W!j5P_O6CR4( zo*OlU{4t9k8Y;ztr}g(*>^Pg^j?DnbPmwrr&~CS=!0<6TS5DD23))9UcD9Fu?;k{W50SlR#4*jWa})uam;cMDGN;O_3hT?cn} zm%tD-!QF$qLvRfcNN{%_NN^q8<&wL5Yg3#3zP&XyQ)mA4Q*WPhx_f%g`@EgSM2*9= zuzddQ;yWHJ4v*M%@R~znVyPob(}0km`~y!jhm9r^TP6j>W(rQ{kQTmsgUpXz6Kx}n z0w?g?-y4LQpUPcyUJKXd5}<2m>A&A5w#17im{>0M(+m|vVSLqIz+IrbYOoZ;?ipY0 z)+dEohERt_sw+e8r7J-ycH9tlwV@R0Tq4=9Uq16{iMAa?V2f#VxTo489<%}t`x@9p zF}J`$i(*UhGm6p?FrmYhE4@os3X0#Y&tGDM!;t`M;_FU2;zl7YdC`zm?H)(oI>{UB zV$5b(m^CJ9Sk1rWtKZhsqZ^ae_ViOLrOrUsEz1Zna+u2)4tQQIpCyA%iAVg997^Pc zVvc(J!!*n7zZ0*ghdZuNH4$5Mnwy)*oT)ptYymx#Qz$3Wu`HRC8hHluv6G--3xw$q zNV^5xJrq?K_EEVXH4fq`2|hq;Cde^AAt8OYfNr(VHL!#(TJ%B0?T6Fz6H!G#QBNN4 zG4y2D<$d}2hRw%Bcdxe9PzZH}=6OEk`Bt|%kC4)gv`9!!Z=vD4vE%tr%+dF3VSsyC zfpVrJo~Nq`4W6ehP7|s?ZL1~0J5wwSVG1171)pV^W-Mu@f-z+_YX7dNpdxK?7s-Js z@-waz=AKzz1@cT>S&UxOQr1&v_M_@%h4As@0Af)yEqgahjmRk>66S^aH>O8ctox!! z_UpauuYIyoX7H1b2ps8RQ29?Ft%*JHIp7Q)@?y#G{H;ZppVoh(SGCbMe_G}_=c-PM zuFzx^7(!{k#8UwfRvMH*jrkXz&mn0(&FJ)VpV(>DFS1l^Rq8w3M=lXS7Nj>3vT7g` z4UvPv@=$iXYU|5FDwlo)c)-dUFVbGNq1U1zOK||R>-!p#?nW|d!gm^5WD-x=f)egW z-{tLa>#*fH*v{c^0c-o-eRHm&5R zNo+;+-OmSvplPExQLTN=d4-2QM;(7UT{bb#EA*P;>@PZ>~?r&bx=n0wc1^awL7*slOI3Kh za`3tjdpeF>{g9is*c&?b)lj|7X;#n2M>`_9vMojjBlyHv3_p)b2B&>{?+R_JdG6?& zoQH-h7Dc^$<*|wcWbcVA85fQTC#@W7P>9#k!h*T@nT|AVKZ1w@e%|zO17+W!PTUtB zdJqwgX15Do*}L2L2)xv3nla4ZF z!$P({)d&bubbQ*OiP>5(&Ch|NaU`hu7S5&1t4zTFFL|wfY7(WnqPt8c?h!m9nu-Ya z^3kZZ=$fWT&TyA;!d@_1k=2=QoA(%Y)BMUbvf8u4H1e|PC-`+wlS`>YuM2mzE&O?T zPqRcX%W<~eyIskN|5N4T>Z-g5N~kNWqus*!N6$3cJzn=u6c{d$9^D-=`xuK z{woZ&0Waa2ytPA(saGb{H>lmae)(mJ)S9d0GfHOELCvo=%1cH&-JBI3I35Bh$x-u% z7jyO7m(irX`&C0Ba`Ga`lSzD?d7UhhU;8vZ-MG~HHb@YZMAp*yEv~^PvCXd}VJ~hV z-ko|h&Z6B%tw@&A*Z>l;&d$}22Db6O$J)DleCE*gCj=cFp3Wd0)b^H-CS3zF&@mPQ z<#PrvUx9oHCyzZ}U%uM(eBDUeJUwv4X*&ym-PwYzO2#I6AGjDo<3LXYrMb)G#0mxd z1DcMNd@@Gio>>0@gv*c^V0T^*kC`-=IdVG0d@nac=jFF`Roof|W~S&AM7K>014jiK zx0Hvm_%DawAbqeeq!}mDDYXYKvt_)!QM<6yQ_#dc zx%YAw>C`QG7HOS9iy5jKZiQUa*EiA==h}E#@9J2+#ZFu2sSx|6%`++86DDNeVr3Y0 zQo1uFul*t7cJzhK=Oa_EFb$3vCeDUPy z=Yi%-mFcf?>iWm36{DB)YcBnY!EkPVqr-aYvIV`yN}SpoQAk!AyaoAyg(4MxvFH5M zD5VJjF)+;I^v?Mp);N2aG8Kv9%Z|YSJHG&TR?#HmL1qdY6IQ_}y%IllQ@UPXnZd}E zH`JjJR6XB?Ynlb2lTMb48Kl=k_la7rM{Uyx1RT$2i}!{Vu~tuydneA=+32UECNtm*bg6}p-)p{8Bq$s1XBChB8jVoak9sk6WrAxJxqfv|ZU;$P2~z_B z8_ynm$q>hF%Q2Q}^&n4yKsbV=^~on${{$kb{wk{xT=_UTC!8bqnBr%FJg#9ihmZM1 zH4a0y%qkcuwPQsl=*Kz`v2~s_(M)a!7*hYq^>(FKDeDyPf^Br>Tf1qlw=2ZOPeHL} z!m&Pt5GOILmPbMi(d590_VhGrqRxh0DWcO)oLpaOTOX16*i1tie@db2exYF1%33s+ zBQy+J%y}hg+O`^}j=rPV7h5@UgqdE?IC_{6;l+2*=VrWR)$A)WjzuYOpC;_s>Mw_1 z@3|@4wB151p1yg&^bLAiq(B~7;7UOG%InjVdXcLJYrR}{V~}JXr*QkzWA|FM?kVuaEdM%UF1|lKonp;d9UydOuTZ(xQ#D?yI$>+x4)2ON_xy`aF=LDg; zTyw?`9~T(#rlv1^7cDN%z-5S32!(ZT`d-49zZx^GLN-KeL7d5+3NfOlD*a4XnXUq8Y;pU7Fmgd@+q% zT04eQ`Y#9&J;=0C%nlm{M|H6L0ZodP>uij~Ypg$-3HF)u6`bCMS5}J=9XI}P{B+j? zS9D$sG|Q^Atdf~-u?nf&sytaKt9%b#zbrp{gle~A?21+#k4Bws+uRx&4u)23OS|ET zj+Kqe^`1VH>e%A{grqtkww8U3x^x*h<> z>=Iokw?M1r^_-+U zFx)+Hp_`O#C^T^Kl=I|istx~Gmn6j24qVMcf0>C{=Z%J#=Fe)-y*mn@U&+9EqO|-O zo~mYDNYFyz?cgqZe-Fxe_wc-yj#49_ZE3J};smZIyi+s1$^Z+*&Ij&? z%k56mp7>h>FZQ~wv)oRzzCs-^84OQ2bOP;>w{Wf|f4p~hvD}jt!BJO#{VBQGz z!V7Z92?bf+dBcWkVI}wuId4Bm*9yH@%JTDEYD3Q)`ZZx|R)$CST~KiImDlW;Ng>Lh zIe+gfq8e51qWen~q%WxxOUAt>Cv2z>+TO_>G3w-9a|Wk2X!WLV9UZ4C4-m6eUI&?C zQb_5sw@Qzfzb-fzhdYmGkd!yj68eyPb`qn!IkYO382lmP!Ga|#=eVn7xq1rh@=D%OY#K1ZWAjacG||Z`T%Z(Qq0=NXJXGGIkw^v))vAbN=-k+{7A`6EDoBOnV7G1!L><=I?z=w%=wLETt zMmgON1b)ky;i^XMvE}2#XtN2ZmG;7X0}ROywU&*cPK${3iG32iA&|NN-u28Re#}|h zx2=F>08-y=Xe`50Ln75_%0<-~Be>=6E(zqXe96$E;4-JNqBU2*CJsh?2F2QtIU=V| z8aqK&D8Qu-5^?O`wj-0AQ`@;M=rwzjmWkNH^*qHGmw znx3|(T2i@T`>~H?Kw(oRWT4^pWcknCw4L>AMiY8Fbn*9?QVUd=C^9A+2eJn%ToqJQ z0ulbpR#k8=>CQv##-p~}^V#JF6tfZZmR`P-L`*_30sPH{&BbC;Z4FN~b?6m`R749kuFO-1lk%tE884v< zLsKqSi#%s%^#Jpb!7oo`z6v(}60I&Wg9hP?qOb7nTbCOK^e1cm$ZH!fU24?JQR10h zq?ocv+&CDl=C>&jo(^#%(1Djg#F4YckUURc{Pm6RBtHbIE6O&-lzY{+k8ksQ;P2Cz zmP7dM;$}`fKco*B)4?5V(M6)_Vhv{fSDoXi5!)*#mzR^(XAwjbD26M z^t&8M=1p-C5a=Qs9SZ+Z) zAd+rY!AGa)1}M_RpdEt>L%3Sfs`be2Z{&nh+E~zZC=w~cf+TYykf$b@%qP#8Fa#zG z-kO31;p5VG6uEon4E{`b!E6z(^d(28ilN+(91n*M?<^7<=~-j~5m@Oukl}o|!9hsx zF;Zojbptr=i=%qMag`evE|MW}eAki2i;^eu{8oYx=NV6H@K#xUswbs~N328j3A(c9 z?E22HYdKhZFassJ%T+TNkcb35P+@RLOOf1llHMrbV|#<(yp@;BEx1zkbr)V9Q$}@O zfG|fiWnfDeU@6KY*i_{r`ti&f>70GVliA*ab|k+K(QEk#;8 z#f`!gh>066z(~gO%4$->d!Hn5 z`A>&U4Xt4=LKaF!!RsRG`qQ__M$A+NsvYyj;#s}Gfs;WQ$Pq^oEROcm{Ezke^3b`b z`RXc9T9IEO#F4#c-;sAK)L%|1Z~AZ5QYc66hjuCx;t@{rNAs|o-)gLkMJkE8G{|0$ zP7LA|+Q8wq*jKsJkoR@Kh3TV~=j zR<|#md;=sE2yq}FgYLr;f}OO?gL6GdR*L}l2pOSh(dp7WyGl_rSK3{VHRwe601RQjZ1c>Wg^Te=VULgP^ zKGM(Q4tpO)%EpuBpO^@Czc98s-D0MwdeU&Pd)ioTzM$a%sw4@#IF{*ZeXJL( z7RxlcX!LWiO*gP>dOCs~ApI(CrdH1~Y z83bx}T08a@d91)ICP7T0b8tywe3~6LdpieezM&$Y6_W@|0mv!EZlG4Vz$$j+PqtEk zAGTl8Zx)!3%ag*snSkR%rI>s8BaZ`OBc(nVZTnoB=9d6}D!$!=Poz52%4!qgbZBc_Kq9IkVh(*~ZYAVc#YwA6*9uZQT_V4P?sFPHMR0f8r1 z>#IiTxm7L3g|!>Ahf!1p@k656T;;d!v+mtBB?o2Q@Y4-!Luu3B-+8a#b^D|Q9WBU> z=y;jbpUlFJBF62R;AaS!+Js;U9Bnv%+J;S*$l^a>L{&&W0XAz&ckYX=~Qb*boD@5?luYX{{^67Pmj-vE3pf-5V|9E?L^V8nb z!`GF%J0D)dcVKExiKs0)QNT$6Ot8OCn=BX35YNq=O&l9d3R$ltj+pz^?RM`Xs>xBH z^kjhWLd_%so23uB)Pd^_x)2c$b^zm&4vnn13LgY2U@NecI3(n*jcrk6O#3PZC84AB zkT_>A9d$p1f0&T@4mYkE#uPqzA{0m{iYi}k`6YU6zSPF1fN5`rI*siI)y^6rp|A6tNiJr*J zz;W@a@7ba~L%=CUWwl3TEg`uIgN1%9W@nH!L(fEv&|xb zRB)%g@7^A3nZ5YYHG^MO$jre&-u_x;8job9+Bo~z;^M{d?cm~gKMhTeu#uq?p_^7L zoi*>LtY=@}_wRkrn(Oz*ckuc}Xz`tA@TtW}6t(#&(Bi?yVP96KAv)9j?p%chp51Mr z2@esP%t*TZfhWi7dc^ORtV*WOSs?s;uD;zK`uNxfA^@dEJmU!^RG(DW^7j@GAG+*y zp|OPSl1GccFT+i0zgB(M`?k&|NG7#uB$#Ju{ZD&e{b6tovPUf!$id?wCSidrE%^C* z@8cQ#s|TAK;pm{A1;lGk4xdRJ(+jHWDXlH(DIq0&UUXN3 zi#1;!#3Qdjf?(W^Nqob9?3=rDxfaJr@xvxOyttm8?lF@Xt=lk1=<5xOE{&1W7a%56 z3M_{eRa`){SsS&EG_=a`er!nos`phuCPa6g_|^rhBjtLxD^BDE60=7{RCpAq6P? z8(9bYP@LUsaor~3lv0xkCM;^QhJe>dD7K`y_C<6}kVfc5uk7c5{(cn`KmaDK@axdt ze&tk=hok9>vz^Edd2Ln2j8`9g02XIar789}E8{gEo;U%#a1gX=O!Qv9Ph?3E{nNA? zT4V#L2UkDie!7Md3`cg>s!9mPJprr>42s7c3#*c3jOwqZD6jb)`f?nsIW}OOZ|ni> z1T`H?y_tE6?S^Bs&3iwlN5hO9zhow|30^1ITMZX}mK8W+p7p0#E$q2X2PE?6P1;aD z*^6`Rxk)W@=(8=FmpcN)j|2gY@<*Dk0Iy;__%wuN1sp$e+@Ma`aT7AmCJ6xQBhq2; z{6XCojZ)kozft|gCa>k(02uV(|F1lWWD`%#a3Tt&x);qR-;1dCKS+B2&)fM&e#Ac| zo8>?MV|Ijxn&OLO6Q$!o%h@KN8k*=@#a%R%D8wNY3R)9;nNNk1e~wx`NT!*s?%`V2 za|-2=SI*bh7aVT|-ft}MscHqtWp&S=$Ou~_r!#*4ph^QnYCRny!641J1iYF4%=QY2 z-924Dm~o%an$O?K9QjJLMQ$KZ87@%KRkbBMTVKRUAEoUaZ%87o3;)YI;wpt@SY*=A z)gTFTryR2jXkU?}A1ZS{p`txW8?mh42C;{;+L>j+g>|#b1fU{O&UmWycD_RQp{z{D zgH)u5t%+|gXFs2UsjEiO2jLa>WHDG6N-8trpffIP1+}1wvkV^$%QK^OI+z&?>fCr# zv^0|=zuGOB4Jx^2tFwhz;$2cop26wBC0qrnDk4$Jcy5^*&Z~kM)FQn6SWBMGXfz=G z+;U5c46?zvM3anBU^lI{j^!L9T26<6Mf+m>X=v&NItZ|9*7~!gw`Hu-q|lzbPTPW;7NG}A#g>MN%wQL`{v;!7y=uVz1Uz? zXIgxtDcHeWp~;2j54{D&<*~LA`&Ga@_7j#6N4@44fw6(IbNmJ?z_H)#n$IJo@cc%`I&|=6!sOK5i zpphuJN?V)?UM>jMo@C*2rSsRV<&)YrEy*{;DvR{4Uk>6vI7A1NM0}}rrm1uqo06M? zXV_GfJ6ys%@GhQF5XHZ^o1BJ+4YT}gm-+F>`R>k4ETi&IqG@{^ytJYN<%?62WEfc2 zw@*~b(BAAzZAO}ob(BgJV6{8njL!uo8<}~0W}xN#h40?Ccf$UN-;5Fb9gI8^7@m#4 z9#5`4o(~ZGtLvzAJv9~3?Zjwbx()R5=K1Tyqu&IhMkeOwHtse~jwb)Euq~ebk9XHc z6(QwsFACd7h8S*W6vq%vGQbc97eRgqOgtK^WVIWWruuRnO9ST5u0+xJa(33$d7u|~ z^@4hZp4joD6M>n!%!sO&6epQG^jsbenu*AD<5af9d|;}QjwxOhZA-Fy(Dq0rvCp(X zxK$~-zZ|Kdvt?(8+0r)c>1uq^*OM7D@0YKKX~xr8W!FF03qdn0tCGKK>Ogt_0iN(#a#t55%818SAkamfX6kO zFeT%FncexoU~7}MgTuuyXHuH)e2Tq``1Rvye*a_{ zXaJpn(TXBcK;8j^V&$ zqYDsC!ht3p**|@dfK4OZ9s~7nV`Y>`H^gIe{gYBt3=mdVf;#1R`ZQJ32rvZS~n*gj+a8Zp2jgPC|eO`+Nz z*?p_umYzb4@4%9sErjE^cyNNj0nBHX>1(Ow<{sodm_6vLPzdbtfm6y-AifaH)>C6I{%YWp#837DQ2`UO+StA3`L-fpLIg)ZT!3tw-{u-5 z1#CXq^+Zai>MD$15As$6(p3OMtu4QL@Gp{k4iVcI-;Z+26dJS<-=S0 zH)JK5maH(o$ZN$gOM{RZUScuQjxMF86Z=@6w6(9v)XVa-y}ZG2Weupp()mZf(sa&e zswUK_aV$a72fl@(J)YPBHcNxc8jBiX2fiCY_w#oHf81Q8`{uA!Wa(Sd zFfzEwaba;6aD;l0arJgqMQtJCyzRA!Gj6Yw(~Fs8wN<)q6UlT@I6cIlrIg-HX7}(? zqw}0w#AT_Ni?tsdX%f(Ih^ABKy!eTxk5n94gFkPE#V$W&F+}EOYE{&A(uaz_=Vuw3 z+wp#H&uk4xsl{oN#2u86)vSERR6#;O1huODGWA~JLJQWLL1RyIubG)?bamtyd=bkL4+R;|kn{{)7Ysbods=m2o z=pJWNVgS{w)VHXgq`$_~P=Kjtok@9-=)k}8cek#qTQ0k}ANJfTD`XZ?5U^iQliJK7 zb_~o33IglwMDuH%x#e!Coc>c5Zs{Rax_}j7$E^R8I{~p+ylKB`Ppap9BBazI7D92r z`22a6oDEqjZ{()a{!C?<Bi~C&A$jO`cJD~{^B7s zBf1f>o7`ZRzLzOO;vxvg-#yFGuDChF05nRAT;aude+Bz2e^k1W@7|nD!n0~{vYZqW zvZ$XTR$rICw_1)XMwV(O(OdwFSl`uS&+`$ib6BN$7t!=6GfBPw8$-l3SGVCQ-)D!P4 zc|T>*V2{Jky%9%Ie4lib%Qstww2fJr!iRp0Zu?5Zur`qyu&+Pi3Atj#Sala#xl95i zuKE|3gBzPV*Hd*R#%P~eTEB7qxR|xFiyQA%r1qPTZPDuV=wL+8VW2>v6)O(+8}fy= zd7y&o=8J%R6@}z|86ZU+w>U`}65R}Qo6U`UsayUo0(Twn25+P}dcMOufk!^F!64#A zkpFmvQXQMDE}Ie79S4R7PAVnno+y@!%gm8i-pE(P#fvv$JKzVsB;x6sEN-UP9vicj_d4R?X*~16#=qxYko*XsScbp*l;O~+?N>%|C_4JHdyUEW-e1d zo|w&NrP2HADcN1|;4JztU!PxO^YAW+n69@8U6Ni^ZNtSjG09^Py}kDq#z^9BF=EYPJH=*z*x&o)=qslI0-)5l{)FC&0^ zUlk_+3$QozUE^V~85>~a^CJi8X)!3Mo&l!o6!h`6!KQ@m9kH8ss@qT#vre!m|A1Eo zUxr!`HW6#wXz#VlUl@>4IUuWeI+txus==BJ?6`g<>>uFWurrktSH%M>%Sicm!FFUh z=EuH7A_A7w8kXR z1AQk7kE*uv_KdlJAUL0=EU3jT^)!}zc6>gWy{kHIYYqy&rGa*`7sMLL5PWPY#dnXG zm#dFMlpx=K|62WBUFByrFL%Kc?}|iY>u0RcUX()T--jeq@{R5*imqa1&No zmOgZ}TgM!8;0qJf`QF*D8B{?-@3u|0F++ZCgt;F@HH}7tpoDX4Da`F>-yTyoD+`k_tR@xBB zs)hzW&m-@i`xVwZP|GIaAy?d1szB+Yquv<$%ZtF}n+x9UIc-TsllO!#s+k7ZBSB>_l=_}L`P`s z#5XOYe3aeIKnz$`*j6|n)B@x+SVOZGMsY+p{yHldJ6AlUDV^u=6B_?5Vmh~%nyhX{ z%XKeww%qw^KQ^6uyRC4D`TiNHT{*CG2(G#F#k@r?dNJ&o{|QrWI^O9YYp2T^F4)N1 zbQ2ic=eg2DH=#us3w-^xjn+VrxPPVFmc|%)@=(RSAG?QWn%Gpcw;eNU5<%_d(G_kl zXR;L974NSuR%B3qJJwyw6d1NHh8O*wl@Utvk1lh1^kn2#)QG(|jPCnyM0rL6)}%9x z@Q?rObN&Jk_!|5*!2VFjEj0)#^#}y5zEllU+oSw~my>w>w(zTE)5xo>IdJRWz;2D8 zW`lvqLI;%lNC#RRL^LtQ!=hAlaR4a1HgON-qY*`FP za(mTFoH#6MsX8g?gPJBezu^RgT&J>?U(tJ|BZ&{=qG^_|e>tMl7!JsWh z$gWEA=NswB5`M+2Bp0=^+v3D+4Jh?#gCdL>bmyNH0>KnmeeYSGUyd!v8y-{lvkrbe zcJjFJT}D5#Ds8k718v=)xWP*k4Z)8?WLA(%Sw-=)07xQNfs_NEyRh$SRmocfk;;vJ zlpS6Vl_%O4eZ%NqXK9QZkJuj6@su{$_+TqgtN`d#K5O1-MTsd=X+7R@y-VJuKlyU2 zzI;tu=(}r8b{oI`RAX4Hv4nwV)f6jsxMow0B68atO|5iP0lSwf4!@ncp}V1I$^H1Apm=f>mD$y7>A|k)6aKBtb}t+sy2k8)WkJ#x$)k zNSqb_$QXl-VaA7A<16!y1rp4cR&7;YjV0}V$$LA5jx#o(cTxd5k>!4cUza54lRGC5 zb|}UZ;I&6Hd|^S>zEMGN*@fTg>B|xJN#QL*2Ebe{WbOZs+|Aw384idu1efP7Yxvp# z7Z5v=BamO$wMW5keFNZ|GN0;RgG45>E(^W7yLpg_!f(4~tTFB)4O^ z><-DTm7oisr1Man-(9?eKbpuLyPjvUYWoXeqS&Bt^V8CYUMrMuJ9pUD5Qu8QawI%p z+016?WH@=uZJU`EXVU+<8a?n7_8PkmdY>M|ap1w;`Zk8xuoEP8ET$ir?6Vx&t+Cfd z8P1ir@#I`HoCP)l^iK^jrpJiboc?JpR+_~Hd6Iy|ou@bOe7zp&#_{^~@6vU6vTebR z$c*n3=QI-&7j~+v$fzrTrYWeY9Z?e$%&uSYapTW;YLRLDh6z zAahBZ3>ia)pWW=sjcZ^#ea*-@!XOIP9g*zCB0fms;40}}q1W6~z(lm?KBn06U`yTL zR+v@n&An{W*Adssk7XV0!o+ig!TBj%IhqQXo8so7rowuxQdM}>Po&7EtWf{}UiS7g z%kf}!)q-jx)kF`{n`P&h8bYk_Tus+7QS3O^SPm;n0y{A3mr?XJ)}qR(d0}&~^BQ4Q zJFrM6L)b(vM&DXC{U6F)uvj$o4{#YNp|r2Os+-mkMUxq8Q59}eDA)Ebt+}F~k;NVD z!17T$nI|KT8c;=CV%t4nQu&5<&A$5s(kdSK&wFg)aQ%l;y*6$8mhPxt>TRhM=;W2) zU3=`8^1h;N_G9Ts9m9=8BQG$*quylA6m+X>{c`-QID1KX_5O_MOUB^(8VyM%&PHqD zraLWs_u^cxef+Tm3jdCCvIa9kpdkTiBTcsay@BcH1+360FV3nd)+5gM@4n#TDsDaE zij%vnjhO_YL?-F=aM>)^a%+qWBCc{an0w5$5z*)1KQl_E&$2(Z@E07gj_G zgDa>({b&r8wWz?x58*&+VRx`bact=A1|lCTI6H;;kAHsF4uiqYWK+z|hfmV>;>=i` zd>0K#bEg@FU4T8-H?u6ZPxMO;b|HOLIQ;8nS6An@MAl751aNBBs8T5RC)x`esRp3hsIRf9i_M&)QxEFFLEEalaU$kOy+ zRqw394kG1m-z#|ekTmST{ z?Q_az>e}ou@a4r(2WjD{qB5X`d2ai#FZzn(@~rNs!KbV-demfF*IWRcSl`njv#=B?CM|qSD#OE{2v;2 z$U{}L)IR}#a^Cex{Ph_cvXGZV@L}J|4+aR6vJiX{qhKU>h4Z2^cjRH29P-o}S21v% zhD5T#a@BI)2}O^>1z7()GmND4CjO+IO84QWjBCD~+Yi6Ce&Ci*6>p;UXmG0iE2TGj(A+*DRa=erk+kt9R74s3+2xO zt~iO$ZP*`!P;Oy6(8YZU=Ja(jCbzlO7ybMJ?En#1W z2#MpHTuz_k>+t+{LKB3fhuCD(ov+27DR@lDR_mFWrOmzLG@zrt)==XX#N5SGevi%y-5wk6Eppy*27c`pmzXY_upo*a) zS2e<)$az`#iZpnV8a>bDe{`V~wo>VzYEkct>LA8d+?4OY%iM3cc7Q%&0T;?7p46g= zweMDfDX`iZ7_L@neGX~WA%V08K60$kP0=%LxFT(TJHrxFd1oLn!t(9*{K}}rkwxbg zmf>eQWw|pKbjX{^8fU@Zd4Rx2cJhf8tkk^63z|E9g`}APX`H?(#eG}>RwDLYS8_NX zoN{np`vCgoNA}B*sfA}erV-ihT%@C@*E(OacXS0Od2rax#?ux9A|{hbsMFV56P9|a z3xSJLnXugaRgLC!K0@t3+uCe^M$I_t7Kk=7L8z#zv!v{7OMC)v$c``8$ z4(V*ks!6^BNHS^;*F>I_P4SFbd_B7DM9kmcc$nan>))FMX}9ufT3^OFaMu?^WFvbg zK?{Ap8zjQ{m79u~{ao?U=+78cjq8Zia}gKPyh*IKn-Ta)A)5YsEN`)(D`R^-z5(tGiJj)yHgDPPtYG_CokI&W3^H*DFAV3OMf^~l z)RXb(yaK~=g&V#ZNgTKe9{2bqdsi-KB2PvGAI>fRnPh)`bJ>$$63xxR@rv#V^%A7J z$0+D4&jd9V(nz0^at9T2T_!MdAIQM8p_mmhhKvVo5_@ABK5sihrA+WGQBr}h z5Xbv@jhp{)V((Gp|JjENTl*tfk+mvk2_8U8n*U4qdF1#juOoY`5 zqqSJLGp}L4R$CEM(n!0J?C<63T>0WF@m5Dk{L%1n{8b&c9f`j`J}c`h+qKPU_Fh^a z>fRyoxXx_vNcNumoK5?qDI&fi{sOUaZ4a-=4W5&eUwrBFUS!w9gb23j{d)B6$sq?^ zUReiio$<>0{9Ah9(8A#F1&We6%^VrKGd?gA?1Iw$Hg%<4UZFR*kzt#a92K>liT<*B zP9!z%%M?Jg^ep4l@b_t;$a=|!Y?Lst~LG|Vseo_BXF?8)xe)<313p%(=CvmB9qs^c}n(%zqS64Kl01Hv$G z$-UB(U{U}(z!?KN_(%FZ6_8M9BDwkhG|n^b-kQAt7lYp{I{#lKvlpyN9Ez YbKw7 + The blueprint creates VPC and all necessary network resources on AWS + in order to spin up EC2 instances. + +imports: + - https://cloudify.co/spec/cloudify/6.4.0/types.yaml + +inputs: + region_name: + type: string + display_label: AWS Region Name + default: eu-west-1 + + ssh_key_secret_name: + description: Name of a Secret that stores SSH Key + type: string + hidden: true + default: ec2_ssh_key + + nodes_username: + type: string + hidden: true + default: ubuntu + + longhorn_port: + type: string + display_label: Longhorn Port + description: Port which Longhorn should be exposed on. + default: 8080 + +node_templates: + network: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: network_blueprint + deployment: + id: network + auto_inc_suffix: false + inputs: + region_name: { get_input: region_name } + ssh_key_secret_name: { get_input: ssh_key_secret_name } + + ece_1: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_1 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '1' + relationships: + - type: cloudify.relationships.depends_on + target: network + + ece_2: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_2 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '2' + relationships: + - type: cloudify.relationships.depends_on + target: network + + ece_3: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_3 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '3' + relationships: + - type: cloudify.relationships.depends_on + target: network + + k3s_ha: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: false + id: k3s_ece_ha_embedded_db + blueprint_archive: k3s_blueprints.zip + main_file_name: ece_ha_embedded_db.yaml + deployment: + id: k3s_ece_ha_embedded_db + auto_inc_suffix: false + inputs: + longhorn_port: { get_input: longhorn_port } + # ECE 1 + ece_1_details: + endpoint_master: + get_attribute: [ece_1, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece_1, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece_1, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + # ECE 2 + ece_2_details: + endpoint_master: + get_attribute: [ece_2, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece_2, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece_2, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + # ECE 3 + ece_3_details: + endpoint_master: + get_attribute: [ece_3, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece_3, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece_3, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + relationships: + - type: cloudify.relationships.depends_on + target: ece_1 + - type: cloudify.relationships.depends_on + target: ece_2 + - type: cloudify.relationships.depends_on + target: ece_3 + +labels: + csys-obj-type: + values: + - environment + +outputs: + cluster_endpoint: + description: The endpoint of K3S cluster + value: { get_attribute: [k3s_ha, capabilities, cluster_endpoint] } + + longhorn: + description: Longhorn endpoint + value: { get_attribute: [k3s_ha, capabilities, longhorn] } + + cluster_k3s_token: + description: Token used for adding master and worker nodes to cluster + value: { get_attribute: [k3s_ha, capabilities, cluster_k3s_token] } + + kubeconfig: + description: Kubeconfig file of the newly created cluster + value: { get_attribute: [k3s_ha, capabilities, kubeconfig] } diff --git a/tabs/kubernetes/k3s_ha_on_ec2/development_blueprints.zip b/tabs/kubernetes/k3s_ha_on_ec2/development_blueprints.zip new file mode 100644 index 0000000000000000000000000000000000000000..a077166c25f6b331677e81e212d37d44d0bb62c3 GIT binary patch literal 6254 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 YbKw7 + The blueprint creates VPC and all necessary network resources on AWS + in order to spin up EC2 instances. + +imports: + - https://cloudify.co/spec/cloudify/6.4.0/types.yaml + +inputs: + region_name: + type: string + display_label: AWS Region Name + default: eu-west-1 + + ssh_key_secret_name: + description: Name of a Secret that stores SSH Key + type: string + hidden: true + default: ec2_ssh_key + + nodes_username: + type: string + default: ubuntu + hidden: true + + longhorn_port: + type: string + display_label: Longhorn Port + description: Port which Longhorn should be exposed on. + default: 8080 + +node_templates: + network: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: network_blueprint + deployment: + id: network + auto_inc_suffix: false + inputs: + region_name: { get_input: region_name } + ssh_key_secret_name: { get_input: ssh_key_secret_name } + + ece: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: true + id: ece_blueprint + deployment: + id: ece_1 + auto_inc_suffix: false + inputs: + network_deployment_name: { get_attribute: [network, deployment, id] } + ece_no: '1' + relationships: + - type: cloudify.relationships.depends_on + target: network + + k3s_single_ece: + type: cloudify.nodes.ServiceComponent + properties: + resource_config: + blueprint: + external_resource: false + id: ece_single_embedded_db + blueprint_archive: k3s_blueprints.zip + main_file_name: ece_single_embedded_db.yaml + deployment: + id: k3s_ece_single_embedded_db + auto_inc_suffix: false + inputs: + longhorn_port: { get_input: longhorn_port } + ece_details: + endpoint_master: + get_attribute: [ece, capabilities, master, public_ip] + username_master: { get_input: nodes_username } + ssh_key_secret_name_master: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + private_ip_master: + get_attribute: [ece, capabilities, master, private_ip] + endpoint_worker: + get_attribute: [ece, capabilities, worker, public_ip] + username_worker: { get_input: nodes_username } + ssh_key_secret_name_worker: + concat: [{ get_input: ssh_key_secret_name }, '_private'] + relationships: + - type: cloudify.relationships.depends_on + target: ece + +labels: + csys-obj-type: + values: + - environment + +outputs: + cluster_endpoint: + description: The endpoint of K3S cluster + value: { get_attribute: [k3s_single_ece, capabilities, cluster_endpoint] } + + longhorn: + description: Longhorn endpoint + value: { get_attribute: [k3s_single_ece, capabilities, longhorn] } + + cluster_k3s_token: + description: Token used for adding master and worker nodes to cluster + value: { get_attribute: [k3s_single_ece, capabilities, cluster_k3s_token] } + + kubeconfig: + description: Kubeconfig file of the newly created cluster + value: { get_attribute: [k3s_single_ece, capabilities, kubeconfig] } diff --git a/tabs/kubernetes/k3s_single_node_on_ec2/development_blueprints.zip b/tabs/kubernetes/k3s_single_node_on_ec2/development_blueprints.zip new file mode 100644 index 0000000000000000000000000000000000000000..a077166c25f6b331677e81e212d37d44d0bb62c3 GIT binary patch literal 6254 zcmaJ`byQUA+Z{?mnjs|wL8QBpkWOLf6r>rL!C{7ODJf|b1e7k7Mw$UZx`ys<1Oy3D z`0(DlzUwu9XRYU~^Vi<*`i{&&4GaL_uanmQqip|#Lh%y{%*GXpfLYnN{*4!Lg%$mK zJmA$jZ~!kX-Sxqhy2Q4a0KhF00D$w4cn}-7I}`?f@X!fi;{tPlz_~pwot^$#wWuJi z^`QALtL`&UgDwjbH*Fi>!zO#CG>4h7>F{zi>xJ+*gG49Lx$uJWI)rbeGAnl%YVY{Z zGkz{z=~Nibsn>vocY68=9QG-bMNz&Wf0t-{&7soH1fFrxC3{DQ0#<7kVz3isW{u^w zm_x96e2%~17hS5wV$6yFEXHCV?Qgo_nNqeSp+}=Pu0xbALzI^3TV9FeX6x|Myzx&@ zpe{tdL#M;Um>bq{Sp2XlmVVwM^dzQ29a8cLxy~#VguoeFPf&U6!rA-Y1h|V_arEJn zN)JwFS*4pV$g$O{jTeUoD}Eh%T2z7D=2un_L+am2m`WzU7RJ$yj`DeYKytIL8;RZh zo}CUjY|`$oet=aZsfg#Uf-4mdVj1pRrzMYwU148-c>+^2FN(!T&Q?0Igl7!Zo`8=7 zB-Y|c8N{``Y_kP;)fQH6cFP(b%7_w-qOBcfE>g}AV3#H<1X?q``$QZnYFBlF6Fl76 zDTs^RmBaub@f?l|$bE#^ywMy2e6`MeSGT%0oL050n<=c>QejbFd;LDvf~!(hf1kO9 z^0y~i;4G6>V?OPhdvhbhjc}VOU?(~x9DRh8FZDIKSzhHxbiALsXh-7M0V_v*ETSVT zas|xKn3!|KXL$sALpVsQ`|@$~R+VD0)U{{bt>0cod2}xBz}5YaB*f|?MrR1aX%KugE%Nt=0 zF1Q+Zoza`+nFrBHrdboXA?G)Xv}^ot>*zYpXrXy1oF(SF1&s|wTP4Q>W?9J0uJ5`` zUgm^TMUQiJ<$cvU-6-fJ7}~mNUsq0UcK6d_`DY{HVm&Ec8fb@TSWyIo%NcA756@*) z$TmT#FnhhxN&v`(9>9v&@tI{%H40DlhtUx9T1eC_if0#moqYX z`%6oy&b8r6pDmMba>g3x?)Pq3b;0xSsZQ@L3XpnHhU{hU*W6ZF0FkMzxR}1pH*PNz zmhDZx&Vp4OGudoko>)hD|ASHx>IS;VQEQ60!qDQ33KOmN$D@@?o$$LAb1&(`sQqVK z@?;&^*fLRqvfAQ~YSm0F$6`9U`lrOJ%^fZ(F;aOc)(o6r;_57s*}W16uY6$X1oB8L zwu#ercbtsqD81&T;}CDwv1jJZY8UH+dCixPpP3e>N=h~3yXOd^I9hj_6%}lcDP|SF zyrcd+SlSaO*@ zRg!JEk=`hQz62+38(m#>Pk9@3u$G;3KaNw)M7P|D!apW{Hm72>($7s2WLcr^V$$dd z78Vp}pfc1bYAh)d?}aQC0qspTeUzCg<)U?-)9s|^GyBIK8j~Mmtc!+cq*+-M9GC|O z=%4z#c{|zTzwW>wJok1P=vfH*yo3|7at!ynjc1wOShH{#Wf7% z#1+mqqv@Ue!ia+zA#P&I3?gR3Hjle(x>e{tZ8VkF(uB!}Xz>16Ye17L7D;M~#}=gp zQUY@deIr93&`kwxuBh1DJhHbH z#@gBpU434!Z#}BoSxSO8kxlq@vVS0ngu3?0>p}U>tWQ*`rg2tr)?!ncfH7U1saRJI z_gEY=YbP=r&JNB>^A?7Wq^2kqp5c7^Kx)|XN&_r5eI{P-IWAi90!bBa3@dz2i$V+zh zn6gwtx-^?E&+w}#vSqv<;BRuYvkUDa?v$1^5Bt9LpE~3xnZY+LKvb)Tw!lbeANfTn z*?ELY(=!~bW7=ZH?%|lu z)m0Dd+01YebTW9vqESVLmkW_+k+)MURo@G+tld))1tyyEEOczyzQ`UM!hkphFA9_l z%G0PYE>4jKOLlz06IfugF4d5syxtV0Ml%6tM8JlW-_G zwBuvRB#k_!h@4-z3vpAjwSXEv|H@qS+T>9uX7PmhX@;#axH}*Cj?c-q2~k_Vp&4-i254)leG0Boz8o#2h_Tq^oxjy#Y4cFCP8e*hqy@GdHo~0Rio(YDW4LQyvc! zWQVcmU3)Aje=8Lm#3G2xo3E(JIu;LXfR?5w>4WYU;^YT|#Z#{JuoM#jbF)Gn?abTI z2Z9la9JRn=ZP}Pqt+&Cx#Hl7+(nL>7OgBG@XjSZ-`7OEyVJ>N;9p2T>3^}yM%<4-s zr)~LQ9OfdDNT-CI@p1MJhk470UPmQ~kKduAdXh4-9IVS8p|8QK$QPRm`t(X2o@2fJ zni1suAUD9oZl=8xVm~0ddYYaPb-C9XIJZ18=Q4#W5^f8Sm^zLr6vH9c^Nyh2rK>RP zH0p(me>G%@Sn_bWSZo`BZVZ^byYO&rGW4m#-yBDN(=yCQD^@R3HFk>+s5<~;ewav8 z$cA!9slsfl`R%;RTTqO&@_u@E-<_NzBk}qvEB)Govds$Whrg^CD+0~-n49@ zv3>vHdOY=*y=`c!rzthM+qmAmrP-6Ygmc;c%Xqd6mnUH4fxA9X5LeNYCg9R*cWcuk zdBH1>%*}_ld!pEb1BrG4GD=zwQoR|RkUh6 z16No32Ubvst%Dr`X2b1j|Cd8m2w}ATUO!1YBBl|ql^3XZBH3O=F77ZVvrh!1!)r$t z=5$rn8j^Nta3J<4onH|W63)X3!+6rWB3_gLO&I0zLbiw_mHeB>8(2r|NHv&UQ@u)^F!T~^{WX- zPYwVu{nQ9|2ROvW)%AD7P3CH_eXpN7&}V3JHQa!HCvQce4uOXKxzl(U9I>~Nwv`T# z#hv+pXtFAm?M6&k@#TvIXL}ONh?<=|XS`mbCoCB~?jOU1K}w15osd`}rg$1->JDG| zL+&Ig^irCTZYREor_6q~seCZ=4rOpFpgvgk83m_-DOETyJJjJN`Wv2sfa}f$;Z#oV zRBrOLCMxmPW3eqP9ZFI~dnBvb909SS8ToFHqq=fHH1e=4SBg=d+s)T_f)buguBl_2 zq~^wO-H&9UL`B%Ei+JtK6VOwJ=G)(vP_BIWYDrsxZ;6RVQnfwVUYtbG>X@V@=y{N^ z{l#!&cx}H<9Sa+Qk$9C`EA|J>z1XgV%5+gXw#caL!&X^A_;uqPTf7n~=riGE6iL(D z7pgC|8qvY?;0q#e;D}NCqp)Bzz#8WuwT4cUlr16Dy#X!PK0>kmw_TQTyI$L_f&J*Y(1W zFcY${WJ^&gNpjc;@8vuLL+=OL`uLD`*d3)DCd_L-C~x09>rzun-WRpCFW1JZFgLQx z0m=?FKMBKAwx<#X*Sv99jPS#f{ z-UqmomU5F)h7ZAs`z4A-mz`X{9K)bHNOjDhlwhl-rBo2tQKmE$rAuT{_8gVva)BK7 zkRK^=qES!>mp?Q~%iQPTd|tRS#}W`mQJn8cf?u{rJjyiX`^p-wVKpViR(QTREdD55 zb<-QPZjrclD7{E9P52=<`|Y$rmH^1HMg}vvSeFCeETh{wlus0AZE|O;R>4}W#99Gd z#R;s#=I$}ai>`c|qruizn}ZXAuxxnSRgFBQ*#6wQQxqiV&L0YDS7gl+BiLo0(1-5Q zZpcHPN^Ctd38g8J>&v?LO1@mTywji9m+ksRX}MoDx$nXlO&V?3+Kd*=cts+;Aqf&y z5bQR0rKR*1pb3V4JiVEN2=5G4DCIR--l#la)b zRuifS;yf)kh;6(*!fweB98r8c;3zi=5*Y|^Zm>Deo%Vc)Q-kQQQTC0TGc<07g-is)~9Od z#PcO6_Zl!_ZHw-vN$N&_yP(<)7p*L4X&dLLfc2*zS}4Ko)F6wglUT5P+Gbs~-GjhI z-+9uCX)>uSqBjMvlB^v|4MIa?Egqz+5BSx);k_kvtwN9Mx|tQ#I#$ z8d(}yY-BbkAS|f0HPmDIgQbZ`c_D=3fCYra-<5e{Kb7TLYER)SwT3*)V;yPY}{X zWQApDwWBr#;^UKiBh-rav{ubSCykIxI<7(gEyZ^_fcZ%Z37E^xiF)M+rvYRDh;);m zL_IU~&E?eH?U&S|?f7x%=WYFva&Py*Fe_1ZH45zXRo^8?Q@iZA^S;)u_{I6}a~nvV<`U;Myc9tb6JslBpGq6U6%l3D+MN67cUXQVI_!vGxsKwKqL^goRd z8!MaNjgLP>JiB^G$TTm0<2i>%4~y$q)&w#PO>S%%wi!SlAscHWPQj!W#LOxbdU1Y7 z!tKQyqZHtTW!in*t`lV`5Qx{@Mc;z03V+yspn5~{Tc^w&6tLXMXpy}Bp@>SLxu}EO z`nP8QpV!2&(U%Ai_I^18NVKu&=6PMQE&p7?WkX{b^Go7V3ZaDm1a(C1wL;&8)EA}2 zIR%QL_)RVhgUD_mjwz)JbjJ2lT7%TcWI1Rc{1crnqhTf&gD()@X5HdD*l|o|P6b+`fv4FR3b!@I zDdWScypibrYu3hA7PG_^jRpIHVbt5+nZA$nadDwR zuPl&0I?12-9>;U|>yEr52-_Pmr(KsKK_p7WeDlI=E~5nOaa1FdJ%NPzJzl3wuNIQm zL0yAVCmjN=vSfGnLw1z33CAm&{p*TU#yoo6W^E3j839cv&C8e#6Frw?SALJmwR1Ca zaD5tP+`uTrwUC@aaC?_mkA6e8JM9!xTAe;#OkHf9Y{62rx+@7t=|b=hcQhjd-c-ta z??QJH%jp(xe6&c~H^0e1uE>6qfBe|GUw!?Lt=ql2V?UDp>+-LVzq|bZ zv5j9n{*T*`xc+xq(=0s(~v{Od~c@KpWx&HtPb05||kW=B0kD`yis2Xh-IM|u@yC;$jW8lf@e zKf~D#1^@(l3IYK9dy@YL2=$*wApxHTuBsX0nEni)000CL06_MiKqf{edS(WCCf0@~ z#>OVbdd7xy?grLY|Hi*$!7+A7{SW*rO&!}!HdODI+O|_Am?Z~8G~xVEV9`v&;MS$c z#?k@;v$F{z>BNBFq|6~-FYyH=lP##Dk=a1epL=V6zm7SVSTSi;eoF)~qDV7SqP7o8 zry~FbX&)m+u97HbX(zY_0%;X9EmC0sUwlr!PfF9x?zk6$_Ip-86r^C@GDU=>#cA5kmrq zOE8S|qC{lz{p5e)PohVl0EgG$`s;MwnSG z4XR^6^Fhv}cq%MALO=>TtWSP376C(%icm@$CD&Rp^Oswess~KvHC+ahW7e?@RJ;h_JSpIHdowxxzbUSLK$e(~U)%5g9h>j55IAE z{?=rE@^>&W`2b<$D=2@$=8=a^zJl6e^3!XN#0E+&2Dz`LKdE%CXib3KevGbPEyKNW z@%BY^k52kD09tp+)K-%TE2f#I9Ifr%yPaD-E%894P?Pgv-GP{r>zZP`+ae!nDd`86 zstSn|m+CPn|=CN`Auann9r&7RLZGuyvk9lMZE zRwrJZfV7!+3S}&~yN_FE2l3Fqs#YgEb~#h{Wa@V(J$7+)V|>&?vaSTka(7;=QWRCY*4sC$EX3H_m|to{ zt1G*TDT_>3BCBi_IVHcPZ7-V9KX7I^3|q}3FBjzmrP)_q`-1K~uwr1PdGmTGl3?Gk zW%&aAw;pZ&BWzixT5sY1NL3I#06_J>*CR)B8&fNj|Gg$v|D$*R8vh^7yHb;i-DE@T z`A~y(kn~fR&CG*zqL63NVzKMAU&&NLL}X!YfLtsRQ0!!l_IL9;po@!FJ4-ZD#Yy+zBrYF7fLUQJMu@9t-o2TT$jGKH0qu-1vr*<)#~)9 zlQc`G1y?FOLPX*>sI9-i_?FF^K=i0pYgA`cFS#pbq`*5^w}GM8VF zh4=$gy3H0_-~$D;;y_b+eW?FdqxR8{u$4cudwM|Y3O`qfl2zCEVB5vtB>oMpKcTu? zz#NU1BuuWSR-ym~StubFSc@oGnAD!?0n^ONx`AlDQy!WmkKP==(a7tHN6X{g32d~V z`eIuXm+3>r zL=aCX{vphMdRJ3FFo0Cnav$Yo(s+5UbOTLN!B&=Nr_F>Djlsj6+x0YZ4SKPvAQNQM zNtAV{CmX+SWNinqs3Zoxfw2;jm^`*HsW#4G2!nIkO1MS@_BxZ*5hXhQ3Q=mSEh>x2 zpkuNL^z&UJD>8FhNl)og;0s-)*X>Q477Ca;%=vul6Ih7faIZn#>~`Arh8w)hWLNLF z97)4K-iFyoh$N2ooGzqLY7ntUgpSoFH!VlJ6J{3P$1C?>>|MLj_#8D9H_hqHp0p~| zs2ZBf8Rpt`}^A|gpkhz|c#!^L>vRnWs73{n>LK%=Vx?>mq(HupZgf2cpe zga2|z{%Q$|TJ}aTP?kH36c&4Unim`?!jsx>Vw&pty_kj-|NH}FF(iT?k2T-VpFctx zG+H8d@&X#NW9pP`6UD1Q;kWCnxvRTf*IEg&$m8joMGkHEVdL(ct>0F9Z;K^Y^y$Vo zld~ANn=ec8OGS!YZM*})lkfO3Tvb(HX7wa(-kV@Z#UWcRYS!SS==!_ zz*|2L9;m0pQuW5hMjSK83N3c_V(q0deUEk5sng|_Kp92R=q%y>!TKmArIG}GbK(Ao zE4_KbRh#v-85ZMG1%>XTnnD8}r+9=(^R|C_W?$m9S%_aX2X>|>IwdGsPXtqMD=#d6 z?kX>%!jOZ%W~Pf`AZOirRU3WqYq|O2su#m9{NpxMlK!Kz|64u& z1*jnl-WUf204x9l05tz+z<;?Va~nq|11l>%YXe6o69+m+vwwSaic`wo_6!H||CJ2vEnBq4ZmVvnI zjHasNPXt#>wC^A|OP1uKZ)p8oR;ls+b%YEOL>kymNHUO zqb?!YUYjY--EVwTKY5T;X@I`kHl_^4=t-_XJ{LMII?~M&muNxhne?cg)jVteK2Mf6 z`y9s-2RqFwJmGHaz@aG#Clkn|hMAzgA96XYA}`|$FZf5<{5)*Wq~9gIx= zr#S{1!TSHFQ=E~r>PV%^TR1)dFl7Y*(Ei_n{})>Q7oYZ$Fpc%~|AS9WJYQ;?Z4JFA zwes6dggiLt9eU_&os&Wyla#@HdD}ZmW-DvZcZ2nfDR2hn-!JUU307~^P1`$JiwEip zQ)Vo?3HPt@j+i1bX)d60>C;EKX`**37Ll;@HBdtf{2dz$fz6M=)dDSrNBj#n|hUQ@zx7#HA zf}o&w$S5wLRgA=4xZ%1eJO8Q)icIAZ-lB%wCQPHqhIzAvqol~T2asNiOqlY?klk{~ zGNO3($+~A8Y@t1IdcGOrf$PSFxH1HFPzcz-N6@#8cDb=R66+njybVncpw1t|`Hd0P zXktfkSwy&jq7soR?K#Xy{(?LXArh+sF+_J5)?QdtgRmX>81==$#k;wtR);{jjBQ&W zIZQ~SkWI(m6*IVezkF}kS3*w#qyYEYyFMvssayE!_v0JmZ9bhripH7c>k zqxgVPpt@$Bea~JD1{SKZ=JDF&PI-b&>ke!ufux!eB&`|-K849uh{G~DXM$4h%KNd* zmaD)S_LH3S;s;IahZ_LkM--H%IU`!IDiv2Ay?sH~*L(9WIpc49) zcDoTHFNGKthhF2(2_uM6=gE%;u;{%>AkVI${dRWY)c2j+C?@E6Xxf>aOGzp@k=dp= zAZ$qdo#{xQ2D)WSW`6VfbOFNK&8zPl*Mb~`Is_F)_%Of$(k#8di8hlgR@=y`te3lc z%a9Ye>^br6ijLN@8}{}RSa|o{ACA?9PqGE#<{GA&u2vuf{SB_<5WEmC+7Wo0;Fs3m zUkP1?%0iA3jxv&iUBIqiLtvn$*cyQ~SFrtccQ?Q9i>GdnY{~{T*CuELQU)hRMeuk| zk-2Pv77~^x3MDryR{Mf~pt`I{RM}<_&04Rbd$;7cr2h2ch!G+ip)5h?pQ&vUCW=u& zB141mA#th;Wzs!96l(L!UC9`Nj!2)W8Hy@V6dq`n5@Zp*Il)A9!~Pqzdb zBd@h6voR?Kc5NMXmB|5y%)&{Z=I~aGt|8J^0Z&O@3(k5V3}vlVKUm*#d-q-QFf9l_ z)W9p!QMGOynRwpg`#LI+J*$IVFw67076v&8sjmvB_8`#~gbZIfbQM(0)uzy3IW1%c zj>)6xL-Qku*qDw+Rroid_o|piT$42^5NjYfSnVI3amBwv;l#uu=0O~Z`u)j5kARA8 z%a$?IANRs=zRt`a*Kiv)c4E6X+uhioHC|3l1F&um;6U(QU>-V%kkGD5A(#8(CunU9YX)|yL(J2hQd+z-!h3N!Our_#_S8;s@j_u1@C`mn`tV~Q z+6B-meVaIkR*342&MPUrM8eZEJI>6HI%p6KW=O-6KZ~+%V>KSkxX=O&H+! zlVkBY_;$|U-geLTS2x9Ry1_^UQ1Empb5OoGqGhL9Ik>r(-=4}?0bgBxJyQX5=pc7q zdox?ThhyDnkR^q@E2qX`P|4PtRujUHuP6)`Z4^S9Zy2zIO)kJ;8LRKvAMlDZ-IQ^k z`+KLucVHKcl^>bQ8ZI{5Bo!`#KubDn^m46vn?u3Dwa?huSva{#T#ARlLg_LXg};mP z6~P>Wfr$te!;xdhK&ersuSXi}t7l1&G4A}=VU8iCX-r(X$BA6(0|U^VladYTUFAkc zZN|3`pO3a zL*pjiUY-dINQPnOjFw;Xj1hqW=vJz*cQCIrRxu&sdD;W~aWT66s;e*SdKy`h=;hmg z@Zb@R%6UyG2K-!{JlpiS33fTxA3&Mbpe}fkPLOKI9~NEkH4mHwa@nZx`hC0MvgIgyt_xd!1kY}RJ z?HdF-qokymp_lyNq!KnD{W9I)?YP1u@rg(NUmzaWXc?qIfx(6vs{Fnqvoo^aDup_> zR|@9w8K$`60_k{BEjUgz`(-+DD#aDA`6pfA1_Y*H_L7=ZV{LZb0rrUCph!cwSsz_E z@94o8e<9jdt@uKov(OxPsCx4IfUlOe(Arc5(k1VltNi_7>1#aw{TnWpefissAk!3k6F345Yc(4R5m^$EB^4*hR#8TDaG_k}r zWLIGjmsLRN8Z?j=J{+P+m{C*_Kx|t%?vRZUO?Xoh7}RH+#D28HnqExMVL#Z%{)y

%lM2kc&)kqxQiV`Gij5z{=|XbGM;L!r|s7Y@iX{7thuzui*>*q2yjy~ z%F2+y4nCSEh35C^vcqtz5XwpB!e2@c4<_&q? zfgP~*?n)DWC}bwLdyS7!@7UjRjTL8M>YcWtcd4OcXD@=STFio4_>EHBkJGAR{#@?9 z#!yhhSd7#M#(+%QG|6SCOY`smy}_RzO7+AlE!qs5`LRl_h^Sev1N=u*0pY+!!)Yi% zuft%7gM})mw8J;={J20&2D8Q76|bJIh6hcZ=TEWyv5X)VYkv|lSv{PfZp03KIwN;_ zlT#g*RkCrO-rV{znWLi0D4Y0_S)DZD7aO(JlCByg4RV)-e&^nT@&(#jNV|aoXoE{C zkto%XVteU0cy5gB4(?@iQ7$cJrvJ`mzm09IBxr9?&$8NPOZ||Eyo+uKepq?ZsTxFR zD5>2MI;lPd{i-0w`Q5ULaxtAc19P0{dU4R$NnGta#>40a!dp!IvAWfSkU)6?y9LXfo31dv1q4Mww4sfwdZtfBOEM~!N^El6$0 zgEZM*G5#mm0s`Du*~n2!B)wp5%%nuUlnLrM$#(JZc`p{Inl&ZN`2v{71`>Z07{|^^ zA>D2vTUjw9TD!ieRN}Z*RsiQrXDkv2x;F}W9Rh7w{+_y|t9QDEd^H1ox{8UxQI6aP z6;GYzVp;V%&u%10YL0!oDy_+QL?MG_%N0EZJKd%o%OJ#Bg-aXF!f(tcpuveOs|oUP z3c|>K?&$gtbys{TU#*$~6`7*(-VpztS|a`BZAefY;T0 zzCBSEo1IvhRWmnM6SPZxk-bpV!Iwxsl?q4}*?0;A$Osd$mxgQTsB8={sERWLq9O%N zI6Z=f7aQoyq5LDJ#iQLGvY~irl)#NK6_q%2+5PRpsLESOpZl#ly6#yGml zPEebFvC>{@l~WtR8N3+ZnDDmrwd%t$pRJpEH>OC5qGOq=>TIR|47wg!W%|v1I0(Hy z4@U;R47R*4AC%&c?1Cp`PGtb?e~<|v66uGUU<=%R>dpRw1Dt)W0-Wp>dT65=?7A^` zsLU26u)B^O4mQi;ni3Et-Kn4{CL`DsZTg5~TYeGe?2L>%+Z?+aR#fCCh(Z)vxDidy z55Wly(KsUTbfG*wuH(|+=`&6Mqyo)BhR$ow-s8OoJ2JhcYy$rN(%$C;LnGm`vt7=c zMWdNPPJDGo)+4=+8t?WDAYwvjWrR$scP@sOuUKRr{22$$=eSY?#e!T0NyYZJ?G+u2 zTJ{v4U0mlmnOVPJX9CgA)FGys^0DF~F}`Sf^Zq_N5oUk|Hmw#*l)%!5O>zYosaUU? zClJw+`|k|%;k)?KqC%>_@r&XmkkQGHh}|H}K$90Haz_`H(d_4Fq6;oiuL}^csKLj~ zkkn;mV@!W&0}xCuT?=D)lN*^fVishQ)=t-;+9L_`Bb-Mnl!jwgklEeq$_Y)CLhC3v z8+hCg%H7K_t5=aII1u#B@D}CYBgq&WbwQa*6&#Zpn+}AH0If7soe}iv_|^XuKTEjA zxCO^TD{9056(>i|2nBZ0M%L=-P>A=WhurnP`4l;deBNFNz2_8P5eiNz1AgEEY0f;Y z3s-c!ZG9FFWI#@iN9S+29cB7tW#6Hvm1-@F-I1g(~ zgihJvI_bTA@Ba>lUQNzL*R;~ptyn^_DO~8bW58l)#6A1pZ$)W>7cMbk6Ro}=h}KJ}YCVkmz=!Imr1`}y!?7aNC3-CFxc0pcms0;9p< zQpTX6DY!}I<2RaLMVHs$rGyR-OV>FMwK#92Iff|f;66KeR-3Ojhv61mz**9lJyUM9 z$|JWjt|l+%b!1qRcbC=Alt3R2MMP3FQ=Q%Gnx4QnZ_}Q6p2cY(L5t*qg+MZ!!gM)Z z38`DlxoTh~%#8jpayvaDj1E#t@rdA)v*2v57o*(R^HnSYg6_V}C0ir-1u(sOwU%!I z-7v{5R}Oq|KdQ_P#t^eQtf@alfvT0vl+MjY_kp_tKjybLdu}BN$FNNpn+L?6 z9{5FqC_fvs_*eE5olC;= z&>I&yc$e520qhDL3l>C0UVp~AU`&|4i78W3)rJi$mT)Aw1P;uE8>^!hd(*tBvkl|u z_VeQjZLLzx0tmS%HP%ao>qj2geC8vEQOu07*ZZHon;4X;funm~*#-)@KUvRMBg@l( z=gEo1RX>G;LZ|$fJMAiJG1wzf1;mJ)4t-L!Q3cPU%Ke0z^hA>t7)kK6UkhG%JI!)= zzhJHMHhw+#l|7bmC~EA9V*oFi>?lytmo0GQt{&MMrqOT_=LVDl?}lmag|uunSw%hD zL#027ZIlM-8G1Q{f^DZqw&I_b!3?zLdt55-Sc583v^m%w^qB%SO$=y)>__TdzN?c{ zm7SGa#i`KM@r*NJf3TWr6AUPJv+R7&OG13f_E)PH@|&7R!Y_imHZ)JshQ=<1+@+oN z;A9hLjl#H($oO9~fO-%?dK)5ohC;8`6?iolSU|GYJ10m!<%cMEsG{zN8&l; zu91=&OmZc>4gQUDFBGB+Su3Z{f`|MaG>7@>BT)!f zgi!K^WE;;L1!}FqW1kabj3BVX0Y_Vl)NT`w^P48y>#^~-!ReXh&j@JD+c4$mhnv~D zvy9zj|CvT9`4XV68-ihv11e#+9u`Y~M6DH&d!mhc<5$Qka1l0Lm`0GTN(pN}x`|;< zT$k+ZOT6ss>uf>4c25qUk3YUIR-klnG{FZfb8r~JDsoL$F!OKYAUX%zp`7&2GnIXMb z0@CissQl0Ouk}vrwSDW0+nciDr_cAr^zT~SzH^KK%uWPlD~MJ_+k8b2g&ewV{6dBL zbK%sVXbV(a#Y;@(qDD?{%e86hCCh@WM1G+<4+ll&%%Y?&bVS1=jxr`*6<}-o##)W!$j4qbKgkP8UrAk;Jf}ieb zjDDCY2%x{mv_b|4u@e}sR-^o#KFpUXFZAgAe>2r~q~n`M3_!lr z{=T#zkQC0iAxKu53JqHubItgRWT(Bv-f2pIBuE~}Z5>k}HiV9nM^E${*uviNZJ?0L zDqj}(B3GUvNx0byWxI^V49xtg?S6r#aAK}%As;zB+erU`;|HkXT?HmdoC{lOmAzwD z{iRjbl*o4*0)3+09)%p1PHNPSanOEc70RL}3boSp42O3no}S?|KN!#D?#J4y@CS!o z%PH*SzO?Qaav`5ywED&9EYe*EAGHk;7}5$cl)b%zM$sJ(Sriayw)*1NJG48BqB9p} zeERQSXe4j!L-~EvV8&tjxwi)dW7>HJ0b2mjW&8z@@2{bmU3MAKFH~gJ!X>UtY9-sobD&<4U3E^~}JPIjXO1Nj)XdmpbQEDS)z10Tbmf znv8JgEA-JRi9*U%Qrq{x4*bidDJDoWZowLVz$oqoUzkv|F6$B`Xoa|=FW3*;aKocM zci6=V6>kp>v8F@@q07Mfw2B57Xe(l2)%6Z|7(#A(vf$G2{re^ZU#38~oVsuMea zBWZupUL1Sq(RKT@H!2NHI~iY^9`9Xw&@@Qn5D61x%7+6@lDEXA&X=p29J=ed)0d_y z==pt2G1ctvt@6wXq3N|q$35YUvEX#{@2=$cgY#}-9)`q~!W-Al?muu&`P-P>i?EP7>*~(6}THs}_2qaeFoK4MQ4xpQ9~~*N>bRu@p3&AEY9m4NgzKt(Be9^-v`iA+ zW&0D;nr8W_o(l%tZc@IxJzwgz{UTa~iwjQDfNnj5v_}UP$_EJBOjeZ~5b*iT%EMMh zr@6F8D7303TaF826Q8lnm=M3KF+f88=@`T*fRJI4MPskm!Rz(-cp#VW_5nZ5T3Khn z+tU?+1$6|T1(C(}c1;_VDjbe5(4D+btSF$+P`$9N6g#sPg0H17L|1gw=Hs$*+58E0 zXDI>?AJuxQj-Gc1$yl)KtY87vF%O$ibnF2JBL={zQ<6xQ)+VFcW4I9 z!g?Dy`)yNrt$HUIx!rj`mztdZZ8kqbT!o_0cD~l1gbU>?!t6eguqL4X6iG&R$gNrl zo=$*OSYw6Y+BMoT=CSQuZ?s~`u?YOr78=Xyb;9J%mVSp^$7KPUo|$brakSLz6KQ1* zDY*MEGmgnJVjNb>O9Yl0uh=r*xZOjiPEBsxG|x^H5xn&g=;F(}O{GwKP;GtFrm1=l zz__V#rQj+se0}Qfm>K(yWp`~e<+Xal%;s|Sc?y>N02S7{BA0h8wB-);GVE^?5H*w} zGqoPj2}LFj>F2lNi3w^$=1x%j#y?m+f;~J`kSQCthgIPoeTKms{#-e~dq!~Zoe0UQ-{l0vEPrR$Svq7|7oO-+fJuhO1)owsLJ$sMcj83vSVL+ zLTczK^a-BA<$+S8AQo{Y`IEa!wJ5Rn<%qBO{%AGV>veDW^Y`npNs2(Z;JhLD^SBk0aj4pg{v*R-Sl zOi-(7^{7mW+(3011Wp_hHwQQ}NhzIM)dKik1(dVpMHwCt8PZ7A+aA_su-?y3KtHvL z7!QaWh0|@Wfy+S{TL}fPxa$WkD8s1N^f{^h+lL8TcF#Z)IZz$UTtQ}^!w7c3p?7?h zefn`;$5-Mncejk`hNEsKlD1;xLJq+|0I5w>T{h?CU(B>n>TofP!eq%dkc%ca1S=Rg zXuk^xZND>vSMWDX6Xyv1;iO2$9Mm@p!n6shj)*!A<;qYXxDx(8_6YpPo{#&vTMPS~WQW!0(7xSDSmpXR8X~LHFdLDmgtca^m{(Bnx1hz$ z5MMOnJ<1Ef4J*y?1gDy@*q) zQyv<8_Vvhl6!Js?oA2kyz?W1Ig-nnbf^@K4g zjbPyko+2uQ!XwAM=0mDT;&>d#i5TK(xqn8frG~?BLbAKRphe{S4em6dzc&lTJzM`^ za#&WPfcBk7E<1oW;#Y3?4ftRc_Y-vvyv1@iMU=&JS3-i~)|F3)-rMs5JJPNXAyn=% zubFoDdFcYvqH)awvr&s2&OvmHAJIRkFv{9uf$|4i3G_UrxkQI%dw8fGSe@s;E)C*c zgvul?>~mn@N^8W^BRLENBi`BN>c(#F!GjIVlD~!S!S6F61sK_xX3?|d8BUMRQQ5_r z>aj6OXd#&H?ra6T2B`L>IBxrN`A-()Jdc5+@#i^)!|_1lPzNYku}BCK>&pW@1(@s& z^4qJNr@-RX=GnQAFVv%*lbI?X+MQa0*I1xZispuIqUNJi9d!ytn)aP)xO9d1JN4*H zy~#jd1=yo@Tg2aaZ-7gU{&uYUw$G3=L+cAQLDMHFJ)r;VK4FR^**{BZ^5#d7Ov$R5{I^1t13+fuc#}?O6N5 z*ut7cian7?YK{D>bTFBiEE*rOzRP857`LcoOdVbUcedvCFZ@d^!=LBhK87JA0|un~ z?uvAMIDR#=4S_Xia|fZh`!}Vp-h-WCDq0Me1QOLcb=JnH+bt&grh$=@I*dgYyYoBN zC>|3eR34h2Rc#Yk1y5(V(T|7Ga_1+={ji>h^IU!~w}pZu-5Pq1Aepw&k{kA{Zo5}q z7_9CO1k?)@qNvmflwiKo#F??Bm6b_ZM9G`jNO`NTgm6M3(9u*UvRS7N2GQYP7%be2 z>k)8NhgYluf9Ia7WBL@;-O)-IK_-mi$%W+NEp|&#LW?I!#6-|ldbpjj<==W(^6%c% zz1z5iGt&agf6)IsKBE3lkYE(A8KHv#0HBis2C)3!`~6n7Hl}8_4mSUlCHe1YEXF_S zg8xn1|H^yQ;V(zbsi${v%!!rTpTfnO^Xv5NyOE)qNtY+L)=LND4hy1|!a{M%`E(2F zVr?C-Gv1FIh&|B)k_6=B^d4m;1o%=BV1nPk1b~FZ@xRkIT`wl6=n4*huV^K@?x7nr zM|}jJyBJ8@Q;ULA#Ne6_D}VQirb{}PKLj;hBycAcznD0+GtNmq#zMp5sO1*)-r??63~5+ zAJMxiGo5e0`a4eycUC9V;Z}~CmYAE=$M}A1d+sFj=?lSZg>#f z3Yv(y;*`GVEwpLJH-bzZ3jLCC2rMum^P{L-$05 z|4sThYa!_X{hYKVA`yhUmIjyY1Gi8#w!lHQZY+qrQRyf@Na&%ni|+DA9$|g z7MuknTkQuWfjK(MqgAKO>Z|4hT*z|RJ%~7)KdA2{Lj4-hr7t~!J%}g+L*g4>yw*C6 zBndVg&+@Rt9CiYEhf2_}W1J-7ewP~}gul;?oo1i@R-eM9Nd|!xF^Tmt6q))!@fSZ| z74st<9uzu`VAx+nLx`~J@Ujq*JO@9-Dev`8)=WfluRT^zX(Cr)N*C1o?|(UyMe2SIY3hQ)$U9f~&E z=bxHAzg=(R?A5L3Ku9%IIAOrv{e3ZR!kRMsxN?Y(8Z=(t=Q$ztYv}WWLBh*`0(%=r>B;*QY z&%jJUeAk={8Bk^oho)eWWFNMG>vPaS`5Rs0(GrYy)I7qhtcQ|^>qZdR&DBRc!4_bA zTKy?r7G~GY6i+Zm^ycphBpndJeiq+K6XERRQpu zL)IhYBR%_PHAi3?W5!JjecFhU$8biDn{G)k%zP5~K|E?I|es9^HN( zdJmV#we;NdZQ@}&w}crr%jYLl;n9S&i1Q|yps@p%XwtHUT2)UY$W91go2`@i9IBpR zOa*vqf$plA39^9pVZ+qS1z^)+n9G*ZAmz!0?w00kmX()h=D~HJK8GOw2-{_*Rz7>u zLYOfNJS&X<(SiaiQ6WuQT20UW%P`^x)zR_55*?n~)Wh^;5L|mAG=i|-=Hr)Ef%2+>(?rG(^fs6q8+I6oB!yrq+Ib?W!y|&aCcKv;fSV{2!-2n`6 zM3MUV@+hFHHFgt7eHElTgJ za&@;Ua|X{akD4svp;8rwPvDW(tYDUaEwaKXOQb5Hm|pI&;?!DNWjh6S?=dDly9wI6 zZRB0rJFQ@ysJ?RbQo~*%v`$>p4yAh8VJ@_fPhBTI1a^mf_U0sW!vp5jI{v`P*E5{E zBu-Vb8Pd#4uE$=Wxv(^De9;e4Mtr0w% zv}`k-eWvaV!6-S%LV2j31)8OsKFY-v;aJCpsf-x zbV44xGmnO(E5GNI>`y<&5)yuUM}D!%FI)3Jez)EHd2AjgmOB&<`VJkewClU{U47y( zKve=MI4DQUIQ|CFE?dY1F*&y9dHZ=2;8(2@rzhn?PDTUPbWwi?e#_yBDUQajE!4Ki z>Hif}qrr>q>P>uOlCeG8^nC8cptC9;cy5%~tX=DoaF=dnYh4~AdqIBesB)>ybX!>x z26X$50pYAL92uH}7ktz2`u=3+wNbH>x+1mz5Q(PUrn78;J=y-P_YRA8j$&&016z?^ zV1Aj%l=l3GT%oCit^e5qhi@gO868&!^Zd}h2lr&tz9(DN0G)4LKQdUTtD$YYWRqM( z_9dE539nO$cq>;w5je^^_O(CZy}C)dZma&bU=T`nlmqwBDawDkGXmcVnZrzfO|a*S zSp?mzlTVJ{#o)QEu#P-li^H(OTU7yhh}0vIs0EImm~q+qT-r9ccKk16zOze?`R7F9 zODmH8I!nVq+?7W|R?FuHcCh%Ajoz1XpRl@J_0=?fdtgfp+#bm*#2;S$+mJg{Gv#2| zkxmX1F?s$IG3~jVnK*?y{omWy&vS$jEsir0y{N;9jIBUEuKTTPv+21RHbD_V;apr( zb>?>FFn9TI10>uL5ccZ#G(B}O{a^?;d2M>iLgg-9iO_kdJWc-fxIaD@|0as~D_7*fj-1~_c5!hB>uaU5EWQX&o_%``Yc$x#qB#xi~y`FC|(BuHpeLI659+~|j{iINGxwj64x zWOjkRq6+JD$5VcIi>)K}wP$@qIY4&oSCQKUrV1EnPSq@y5xr?3{p}%!c<$|$zoJeb z&Qss9AUU2-0GEOg{anA^fLzWvyt&s{gqlkhN;!`eir<`HZep-=meMeLuqDK8{X zRTe6C!6*2e*~M5@_19u*MJEq}2aVw`7pfd*H3kl^Jh+k0egY#vl_qD4N~6I;5^;T2 zF7M#8is|cD75;e7Uxsl4@g&`LO;vxeQ5)E7Aq93QvmMjjBKk;;Bp1d^yvU z!o1x|lhXc);>Ecl4{`6i^}fUrhQUPe>EN9ahQ@8-++OYE^k2g$zr^!HGp-c^vb2-i znt+88pvf%u$R$3Vm9IdZ)f0l>jEgX<5c*Po?ztiogYbH|`3sKu=nw?jC?Somk1O;8 zYYtbm#FD(Soaps*^{iex4szzNrZ-Qzc4t1Wx^}Av=;khxN|kbI72IvGXk8{2DdkFe zJlDIv<`^^G3W3LT73jsMnUQi+=&-KotDCcu7ptm0tB_ohvUKDH6}ds=VMtX+TLRjq z_OnwFkrnL~L?bFO)a2|g(hpW<5v?|9yrxV0#t2%rY08v+5GJXK`y$(>;}1Cvx&Bm6 z!EgJ?@1B#mt4}A%2%?x6%t+ihF8O2BdMaZJn<&mNlR}CdT09lamlzA(t7ya4~1W`6TA~!D8H1k%x-?)9u5$!*`&&^lJb8Q-8niZqjgG8{lT-R~bjIP+MeluC*IKR=&pG|02PjubTG<%K;H!4+a-Db0((Pz)aZ+S=kM2sPs@8Xaydo(`v z%}eWI*ku#s=JZB7mh-hZ#li0$r}pWkRC0D&)Fa1VQa$cZPmfJQX)eKGl}x8@!+lWY zVoeZRXsg#}s&ZR5etKWf7Up#T9f9etlTO2Q>&YI6IZkr6W;sqa!*qrvESk%fcE?c< zWXU>mO`kQ9Bd|&=&M++$#mSbqhau2zI)hgi{3R9;Hh8pYTZHIjIB$CI0S z9}N_%D@8ui`IQb#Z4bI|K_r=ESW{EQ2NJ!Er?yA8wiSciT3Do_)?8TR zB4|srVN6g+keBc!K&)Y8UPc&I0k1j&rH&p?kKW>7P$wIs3KrJ0zZd7(*Bj z9~>l;rb4GqGu!L@;n)=>Km@|>B~k_=YqR4_*KDeImGvk~afb4r>0b(Tz>>9SCs(-7 z7Tw1Ick=HAiVG&1y*Yq2%MJ~7K6@oF-(`BL7?(k{2SMy*YQq#+jFT&X&v-7dh&Sw` zjMUj}1o|xc7q*1*hb@^EGbAj{a47}C{qMURZe{QU)Y3=`kQ7{$G~^biu<_L$tNz(i zdwA?mw{$a_%@amax7h2hCJpzi z=sqryFS$81Uli#HD$pq>8cYEx4&7s)aY2hGH@b_~G-L=B`#xy(`Jkwixjp#sPK|Rn zYh^bANW7^wSJ=A}-bgATqV7wk2oFPr?asFP)?dxKOn_$e9A57iCpeNJFQjF80t;OB zvghM^CX;Of*f7`o(#fML%CNgKBC@@{J)A^9*_={xL2da zPHjmssyZf;p?}F5CvA<;awn>`1>79uF4?YDu_~T6G+zy>s3^57U7pak4XJW+d8@oJ zYN(uT6#r5no2h6IWS3i`EP80wd;A*>A_|=&|hYOuFh;IH{x1eJx?a}M) zI(7me=#d{MyM+MSy1xXZlWf&+J_I$0&E(TFwsC`rD@<>|$C4gw`<8CqvYeQC!9 zDixQ^kman69Z}lLcyP8~4EuW#JIQ8S=fJ`Ha6r$S4&8I4X~WM-D|*MQpw>G{v#`>X z29;4)tPJ5BGpu_`f~{=w3H8z4?A`q<^fIu0LlQxgJJOH`v9R@D%R0-6WBkaH4px zEvegBC&lH8WyXQ27Y~k=3v|sAwTA-LKM&4E}Z@Ge@Pu zlr+FsTS`Q#MSSZ-Y$Kl*47@tVk`369MW!K_6rcL(`X;&bf4jbBHf^u2#5<>S3gpo} z-=$EgfKQ1@F<>1uDl>-(}0E);#gl6@EtUM$%HdHG>OO}W!j5P_O6CR4( zo*OlU{4t9k8Y;ztr}g(*>^Pg^j?DnbPmwrr&~CS=!0<6TS5DD23))9UcD9Fu?;k{W50SlR#4*jWa})uam;cMDGN;O_3hT?cn} zm%tD-!QF$qLvRfcNN{%_NN^q8<&wL5Yg3#3zP&XyQ)mA4Q*WPhx_f%g`@EgSM2*9= zuzddQ;yWHJ4v*M%@R~znVyPob(}0km`~y!jhm9r^TP6j>W(rQ{kQTmsgUpXz6Kx}n z0w?g?-y4LQpUPcyUJKXd5}<2m>A&A5w#17im{>0M(+m|vVSLqIz+IrbYOoZ;?ipY0 z)+dEohERt_sw+e8r7J-ycH9tlwV@R0Tq4=9Uq16{iMAa?V2f#VxTo489<%}t`x@9p zF}J`$i(*UhGm6p?FrmYhE4@os3X0#Y&tGDM!;t`M;_FU2;zl7YdC`zm?H)(oI>{UB zV$5b(m^CJ9Sk1rWtKZhsqZ^ae_ViOLrOrUsEz1Zna+u2)4tQQIpCyA%iAVg997^Pc zVvc(J!!*n7zZ0*ghdZuNH4$5Mnwy)*oT)ptYymx#Qz$3Wu`HRC8hHluv6G--3xw$q zNV^5xJrq?K_EEVXH4fq`2|hq;Cde^AAt8OYfNr(VHL!#(TJ%B0?T6Fz6H!G#QBNN4 zG4y2D<$d}2hRw%Bcdxe9PzZH}=6OEk`Bt|%kC4)gv`9!!Z=vD4vE%tr%+dF3VSsyC zfpVrJo~Nq`4W6ehP7|s?ZL1~0J5wwSVG1171)pV^W-Mu@f-z+_YX7dNpdxK?7s-Js z@-waz=AKzz1@cT>S&UxOQr1&v_M_@%h4As@0Af)yEqgahjmRk>66S^aH>O8ctox!! z_UpauuYIyoX7H1b2ps8RQ29?Ft%*JHIp7Q)@?y#G{H;ZppVoh(SGCbMe_G}_=c-PM zuFzx^7(!{k#8UwfRvMH*jrkXz&mn0(&FJ)VpV(>DFS1l^Rq8w3M=lXS7Nj>3vT7g` z4UvPv@=$iXYU|5FDwlo)c)-dUFVbGNq1U1zOK||R>-!p#?nW|d!gm^5WD-x=f)egW z-{tLa>#*fH*v{c^0c-o-eRHm&5R zNo+;+-OmSvplPExQLTN=d4-2QM;(7UT{bb#EA*P;>@PZ>~?r&bx=n0wc1^awL7*slOI3Kh za`3tjdpeF>{g9is*c&?b)lj|7X;#n2M>`_9vMojjBlyHv3_p)b2B&>{?+R_JdG6?& zoQH-h7Dc^$<*|wcWbcVA85fQTC#@W7P>9#k!h*T@nT|AVKZ1w@e%|zO17+W!PTUtB zdJqwgX15Do*}L2L2)xv3nla4ZF z!$P({)d&bubbQ*OiP>5(&Ch|NaU`hu7S5&1t4zTFFL|wfY7(WnqPt8c?h!m9nu-Ya z^3kZZ=$fWT&TyA;!d@_1k=2=QoA(%Y)BMUbvf8u4H1e|PC-`+wlS`>YuM2mzE&O?T zPqRcX%W<~eyIskN|5N4T>Z-g5N~kNWqus*!N6$3cJzn=u6c{d$9^D-=`xuK z{woZ&0Waa2ytPA(saGb{H>lmae)(mJ)S9d0GfHOELCvo=%1cH&-JBI3I35Bh$x-u% z7jyO7m(irX`&C0Ba`Ga`lSzD?d7UhhU;8vZ-MG~HHb@YZMAp*yEv~^PvCXd}VJ~hV z-ko|h&Z6B%tw@&A*Z>l;&d$}22Db6O$J)DleCE*gCj=cFp3Wd0)b^H-CS3zF&@mPQ z<#PrvUx9oHCyzZ}U%uM(eBDUeJUwv4X*&ym-PwYzO2#I6AGjDo<3LXYrMb)G#0mxd z1DcMNd@@Gio>>0@gv*c^V0T^*kC`-=IdVG0d@nac=jFF`Roof|W~S&AM7K>014jiK zx0Hvm_%DawAbqeeq!}mDDYXYKvt_)!QM<6yQ_#dc zx%YAw>C`QG7HOS9iy5jKZiQUa*EiA==h}E#@9J2+#ZFu2sSx|6%`++86DDNeVr3Y0 zQo1uFul*t7cJzhK=Oa_EFb$3vCeDUPy z=Yi%-mFcf?>iWm36{DB)YcBnY!EkPVqr-aYvIV`yN}SpoQAk!AyaoAyg(4MxvFH5M zD5VJjF)+;I^v?Mp);N2aG8Kv9%Z|YSJHG&TR?#HmL1qdY6IQ_}y%IllQ@UPXnZd}E zH`JjJR6XB?Ynlb2lTMb48Kl=k_la7rM{Uyx1RT$2i}!{Vu~tuydneA=+32UECNtm*bg6}p-)p{8Bq$s1XBChB8jVoak9sk6WrAxJxqfv|ZU;$P2~z_B z8_ynm$q>hF%Q2Q}^&n4yKsbV=^~on${{$kb{wk{xT=_UTC!8bqnBr%FJg#9ihmZM1 zH4a0y%qkcuwPQsl=*Kz`v2~s_(M)a!7*hYq^>(FKDeDyPf^Br>Tf1qlw=2ZOPeHL} z!m&Pt5GOILmPbMi(d590_VhGrqRxh0DWcO)oLpaOTOX16*i1tie@db2exYF1%33s+ zBQy+J%y}hg+O`^}j=rPV7h5@UgqdE?IC_{6;l+2*=VrWR)$A)WjzuYOpC;_s>Mw_1 z@3|@4wB151p1yg&^bLAiq(B~7;7UOG%InjVdXcLJYrR}{V~}JXr*QkzWA|FM?kVuaEdM%UF1|lKonp;d9UydOuTZ(xQ#D?yI$>+x4)2ON_xy`aF=LDg; zTyw?`9~T(#rlv1^7cDN%z-5S32!(ZT`d-49zZx^GLN-KeL7d5+3NfOlD*a4XnXUq8Y;pU7Fmgd@+q% zT04eQ`Y#9&J;=0C%nlm{M|H6L0ZodP>uij~Ypg$-3HF)u6`bCMS5}J=9XI}P{B+j? zS9D$sG|Q^Atdf~-u?nf&sytaKt9%b#zbrp{gle~A?21+#k4Bws+uRx&4u)23OS|ET zj+Kqe^`1VH>e%A{grqtkww8U3x^x*h<> z>=Iokw?M1r^_-+U zFx)+Hp_`O#C^T^Kl=I|istx~Gmn6j24qVMcf0>C{=Z%J#=Fe)-y*mn@U&+9EqO|-O zo~mYDNYFyz?cgqZe-Fxe_wc-yj#49_ZE3J};smZIyi+s1$^Z+*&Ij&? z%k56mp7>h>FZQ~wv)oRzzCs-^84OQ2bOP;>w{Wf|f4p~hvD}jt!BJO#{VBQGz z!V7Z92?bf+dBcWkVI}wuId4Bm*9yH@%JTDEYD3Q)`ZZx|R)$CST~KiImDlW;Ng>Lh zIe+gfq8e51qWen~q%WxxOUAt>Cv2z>+TO_>G3w-9a|Wk2X!WLV9UZ4C4-m6eUI&?C zQb_5sw@Qzfzb-fzhdYmGkd!yj68eyPb`qn!IkYO382lmP!Ga|#=eVn7xq1rh@=D%OY#K1ZWAjacG||Z`T%Z(Qq0=NXJXGGIkw^v))vAbN=-k+{7A`6EDoBOnV7G1!L><=I?z=w%=wLETt zMmgON1b)ky;i^XMvE}2#XtN2ZmG;7X0}ROywU&*cPK${3iG32iA&|NN-u28Re#}|h zx2=F>08-y=Xe`50Ln75_%0<-~Be>=6E(zqXe96$E;4-JNqBU2*CJsh?2F2QtIU=V| z8aqK&D8Qu-5^?O`wj-0AQ`@;M=rwzjmWkNH^*qHGmw znx3|(T2i@T`>~H?Kw(oRWT4^pWcknCw4L>AMiY8Fbn*9?QVUd=C^9A+2eJn%ToqJQ z0ulbpR#k8=>CQv##-p~}^V#JF6tfZZmR`P-L`*_30sPH{&BbC;Z4FN~b?6m`R749kuFO-1lk%tE884v< zLsKqSi#%s%^#Jpb!7oo`z6v(}60I&Wg9hP?qOb7nTbCOK^e1cm$ZH!fU24?JQR10h zq?ocv+&CDl=C>&jo(^#%(1Djg#F4YckUURc{Pm6RBtHbIE6O&-lzY{+k8ksQ;P2Cz zmP7dM;$}`fKco*B)4?5V(M6)_Vhv{fSDoXi5!)*#mzR^(XAwjbD26M z^t&8M=1p-C5a=Qs9SZ+Z) zAd+rY!AGa)1}M_RpdEt>L%3Sfs`be2Z{&nh+E~zZC=w~cf+TYykf$b@%qP#8Fa#zG z-kO31;p5VG6uEon4E{`b!E6z(^d(28ilN+(91n*M?<^7<=~-j~5m@Oukl}o|!9hsx zF;Zojbptr=i=%qMag`evE|MW}eAki2i;^eu{8oYx=NV6H@K#xUswbs~N328j3A(c9 z?E22HYdKhZFassJ%T+TNkcb35P+@RLOOf1llHMrbV|#<(yp@;BEx1zkbr)V9Q$}@O zfG|fiWnfDeU@6KY*i_{r`ti&f>70GVliA*ab|k+K(QEk#;8 z#f`!gh>066z(~gO%4$->d!Hn5 z`A>&U4Xt4=LKaF!!RsRG`qQ__M$A+NsvYyj;#s}Gfs;WQ$Pq^oEROcm{Ezke^3b`b z`RXc9T9IEO#F4#c-;sAK)L%|1Z~AZ5QYc66hjuCx;t@{rNAs|o-)gLkMJkE8G{|0$ zP7LA|+Q8wq*jKsJkoR@Kh3TV~=j zR<|#md;=sE2yq}FgYLr;f}OO?gL6GdR*L}l2pOSh(dp7WyGl_rSK3{VHRwe601RQjZ1c>Wg^Te=VULgP^ zKGM(Q4tpO)%EpuBpO^@Czc98s-D0MwdeU&Pd)ioTzM$a%sw4@#IF{*ZeXJL( z7RxlcX!LWiO*gP>dOCs~ApI(CrdH1~Y z83bx}T08a@d91)ICP7T0b8tywe3~6LdpieezM&$Y6_W@|0mv!EZlG4Vz$$j+PqtEk zAGTl8Zx)!3%ag*snSkR%rI>s8BaZ`OBc(nVZTnoB=9d6}D!$!=Poz52%4!qgbZBc_Kq9IkVh(*~ZYAVc#YwA6*9uZQT_V4P?sFPHMR0f8r1 z>#IiTxm7L3g|!>Ahf!1p@k656T;;d!v+mtBB?o2Q@Y4-!Luu3B-+8a#b^D|Q9WBU> z=y;jbpUlFJBF62R;AaS!+Js;U9Bnv%+J;S*$l^a>L{&&W0XAz&ckYX=~Qb*boD@5?luYX{{^67Pmj-vE3pf-5V|9E?L^V8nb z!`GF%J0D)dcVKExiKs0)QNT$6Ot8OCn=BX35YNq=O&l9d3R$ltj+pz^?RM`Xs>xBH z^kjhWLd_%so23uB)Pd^_x)2c$b^zm&4vnn13LgY2U@NecI3(n*jcrk6O#3PZC84AB zkT_>A9d$p1f0&T@4mYkE#uPqzA{0m{iYi}k`6YU6zSPF1fN5`rI*siI)y^6rp|A6tNiJr*J zz;W@a@7ba~L%=CUWwl3TEg`uIgN1%9W@nH!L(fEv&|xb zRB)%g@7^A3nZ5YYHG^MO$jre&-u_x;8job9+Bo~z;^M{d?cm~gKMhTeu#uq?p_^7L zoi*>LtY=@}_wRkrn(Oz*ckuc}Xz`tA@TtW}6t(#&(Bi?yVP96KAv)9j?p%chp51Mr z2@esP%t*TZfhWi7dc^ORtV*WOSs?s;uD;zK`uNxfA^@dEJmU!^RG(DW^7j@GAG+*y zp|OPSl1GccFT+i0zgB(M`?k&|NG7#uB$#Ju{ZD&e{b6tovPUf!$id?wCSidrE%^C* z@8cQ#s|TAK;pm{A1;lGk4xdRJ(+jHWDXlH(DIq0&UUXN3 zi#1;!#3Qdjf?(W^Nqob9?3=rDxfaJr@xvxOyttm8?lF@Xt=lk1=<5xOE{&1W7a%56 z3M_{eRa`){SsS&EG_=a`er!nos`phuCPa6g_|^rhBjtLxD^BDE60=7{RCpAq6P? z8(9bYP@LUsaor~3lv0xkCM;^QhJe>dD7K`y_C<6}kVfc5uk7c5{(cn`KmaDK@axdt ze&tk=hok9>vz^Edd2Ln2j8`9g02XIar789}E8{gEo;U%#a1gX=O!Qv9Ph?3E{nNA? zT4V#L2UkDie!7Md3`cg>s!9mPJprr>42s7c3#*c3jOwqZD6jb)`f?nsIW}OOZ|ni> z1T`H?y_tE6?S^Bs&3iwlN5hO9zhow|30^1ITMZX}mK8W+p7p0#E$q2X2PE?6P1;aD z*^6`Rxk)W@=(8=FmpcN)j|2gY@<*Dk0Iy;__%wuN1sp$e+@Ma`aT7AmCJ6xQBhq2; z{6XCojZ)kozft|gCa>k(02uV(|F1lWWD`%#a3Tt&x);qR-;1dCKS+B2&)fM&e#Ac| zo8>?MV|Ijxn&OLO6Q$!o%h@KN8k*=@#a%R%D8wNY3R)9;nNNk1e~wx`NT!*s?%`V2 za|-2=SI*bh7aVT|-ft}MscHqtWp&S=$Ou~_r!#*4ph^QnYCRny!641J1iYF4%=QY2 z-924Dm~o%an$O?K9QjJLMQ$KZ87@%KRkbBMTVKRUAEoUaZ%87o3;)YI;wpt@SY*=A z)gTFTryR2jXkU?}A1ZS{p`txW8?mh42C;{;+L>j+g>|#b1fU{O&UmWycD_RQp{z{D zgH)u5t%+|gXFs2UsjEiO2jLa>WHDG6N-8trpffIP1+}1wvkV^$%QK^OI+z&?>fCr# zv^0|=zuGOB4Jx^2tFwhz;$2cop26wBC0qrnDk4$Jcy5^*&Z~kM)FQn6SWBMGXfz=G z+;U5c46?zvM3anBU^lI{j^!L9T26<6Mf+m>X=v&NItZ|9*7~!gw`Hu-q|lzbPTPW;7NG}A#g>MN%wQL`{v;!7y=uVz1Uz? zXIgxtDcHeWp~;2j54{D&<*~LA`&Ga@_7j#6N4@44fw6(IbNmJ?z_H)#n$IJo@cc%`I&|=6!sOK5i zpphuJN?V)?UM>jMo@C*2rSsRV<&)YrEy*{;DvR{4Uk>6vI7A1NM0}}rrm1uqo06M? zXV_GfJ6ys%@GhQF5XHZ^o1BJ+4YT}gm-+F>`R>k4ETi&IqG@{^ytJYN<%?62WEfc2 zw@*~b(BAAzZAO}ob(BgJV6{8njL!uo8<}~0W}xN#h40?Ccf$UN-;5Fb9gI8^7@m#4 z9#5`4o(~ZGtLvzAJv9~3?Zjwbx()R5=K1Tyqu&IhMkeOwHtse~jwb)Euq~ebk9XHc z6(QwsFACd7h8S*W6vq%vGQbc97eRgqOgtK^WVIWWruuRnO9ST5u0+xJa(33$d7u|~ z^@4hZp4joD6M>n!%!sO&6epQG^jsbenu*AD<5af9d|;}QjwxOhZA-Fy(Dq0rvCp(X zxK$~-zZ|Kdvt?(8+0r)c>1uq^*OM7D@0YKKX~xr8W!FF03qdn0tCGKK>Ogt_0iN(#a#t55%818SAkamfX6kO zFeT%FncexoU~7}MgTuuyXHuH)e2Tq``1Rvye*a_{ zXaJpn(TXBcK;8j^V&$ zqYDsC!ht3p**|@dfK4OZ9s~7nV`Y>`H^gIe{gYBt3=mdVf;#1R`ZQJ32rvZS~n*gj+a8Zp2jgPC|eO`+Nz z*?p_umYzb4@4%9sErjE^cyNNj0nBHX>1(Ow<{sodm_6vLPzdbtfm6y-AifaH)>C6I{%YWp#837DQ2`UO+StA3`L-fpLIg)ZT!3tw-{u-5 z1#CXq^+Zai>MD$15As$6(p3OMtu4QL@Gp{k4iVcI-;Z+26dJS<-=S0 zH)JK5maH(o$ZN$gOM{RZUScuQjxMF86Z=@6w6(9v)XVa-y}ZG2Weupp()mZf(sa&e zswUK_aV$a72fl@(J)YPBHcNxc8jBiX2fiCY_w#oHf81Q8`{uA!Wa(Sd zFfzEwaba;6aD;l0arJgqMQtJCyzRA!Gj6Yw(~Fs8wN<)q6UlT@I6cIlrIg-HX7}(? zqw}0w#AT_Ni?tsdX%f(Ih^ABKy!eTxk5n94gFkPE#V$W&F+}EOYE{&A(uaz_=Vuw3 z+wp#H&uk4xsl{oN#2u86)vSERR6#;O1huODGWA~JLJQWLL1RyIubG)?bamtyd=bkL4+R;|kn{{)7Ysbods=m2o z=pJWNVgS{w)VHXgq`$_~P=Kjtok@9-=)k}8cek#qTQ0k}ANJfTD`XZ?5U^iQliJK7 zb_~o33IglwMDuH%x#e!Coc>c5Zs{Rax_}j7$E^R8I{~p+ylKB`Ppap9BBazI7D92r z`22a6oDEqjZ{()a{!C?<Bi~C&A$jO`cJD~{^B7s zBf1f>o7`ZRzLzOO;vxvg-#yFGuDChF05nRAT;aude+Bz2e^k1W@7|nD!n0~{vYZqW zvZ$XTR$rICw_1)XMwV(O(OdwFSl`uS&+`$ib6BN$7t!=6GfBPw8$-l3SGVCQ-)D!P4 zc|T>*V2{Jky%9%Ie4lib%Qstww2fJr!iRp0Zu?5Zur`qyu&+Pi3Atj#Sala#xl95i zuKE|3gBzPV*Hd*R#%P~eTEB7qxR|xFiyQA%r1qPTZPDuV=wL+8VW2>v6)O(+8}fy= zd7y&o=8J%R6@}z|86ZU+w>U`}65R}Qo6U`UsayUo0(Twn25+P}dcMOufk!^F!64#A zkpFmvQXQMDE}Ie79S4R7PAVnno+y@!%gm8i-pE(P#fvv$JKzVsB;x6sEN-UP9vicj_d4R?X*~16#=qxYko*XsScbp*l;O~+?N>%|C_4JHdyUEW-e1d zo|w&NrP2HADcN1|;4JztU!PxO^YAW+n69@8U6Ni^ZNtSjG09^Py}kDq#z^9BF=EYPJH=*z*x&o)=qslI0-)5l{)FC&0^ zUlk_+3$QozUE^V~85>~a^CJi8X)!3Mo&l!o6!h`6!KQ@m9kH8ss@qT#vre!m|A1Eo zUxr!`HW6#wXz#VlUl@>4IUuWeI+txus==BJ?6`g<>>uFWurrktSH%M>%Sicm!FFUh z=EuH7A_A7w8kXR z1AQk7kE*uv_KdlJAUL0=EU3jT^)!}zc6>gWy{kHIYYqy&rGa*`7sMLL5PWPY#dnXG zm#dFMlpx=K|62WBUFByrFL%Kc?}|iY>u0RcUX()T--jeq@{R5*imqa1&No zmOgZ}TgM!8;0qJf`QF*D8B{?-@3u|0F++ZCgt;F@HH}7tpoDX4Da`F>-yTyoD+`k_tR@xBB zs)hzW&m-@i`xVwZP|GIaAy?d1szB+Yquv<$%ZtF}n+x9UIc-TsllO!#s+k7ZBSB>_l=_}L`P`s z#5XOYe3aeIKnz$`*j6|n)B@x+SVOZGMsY+p{yHldJ6AlUDV^u=6B_?5Vmh~%nyhX{ z%XKeww%qw^KQ^6uyRC4D`TiNHT{*CG2(G#F#k@r?dNJ&o{|QrWI^O9YYp2T^F4)N1 zbQ2ic=eg2DH=#us3w-^xjn+VrxPPVFmc|%)@=(RSAG?QWn%Gpcw;eNU5<%_d(G_kl zXR;L974NSuR%B3qJJwyw6d1NHh8O*wl@Utvk1lh1^kn2#)QG(|jPCnyM0rL6)}%9x z@Q?rObN&Jk_!|5*!2VFjEj0)#^#}y5zEllU+oSw~my>w>w(zTE)5xo>IdJRWz;2D8 zW`lvqLI;%lNC#RRL^LtQ!=hAlaR4a1HgON-qY*`FP za(mTFoH#6MsX8g?gPJBezu^RgT&J>?U(tJ|BZ&{=qG^_|e>tMl7!JsWh z$gWEA=NswB5`M+2Bp0=^+v3D+4Jh?#gCdL>bmyNH0>KnmeeYSGUyd!v8y-{lvkrbe zcJjFJT}D5#Ds8k718v=)xWP*k4Z)8?WLA(%Sw-=)07xQNfs_NEyRh$SRmocfk;;vJ zlpS6Vl_%O4eZ%NqXK9QZkJuj6@su{$_+TqgtN`d#K5O1-MTsd=X+7R@y-VJuKlyU2 zzI;tu=(}r8b{oI`RAX4Hv4nwV)f6jsxMow0B68atO|5iP0lSwf4!@ncp}V1I$^H1Apm=f>mD$y7>A|k)6aKBtb}t+sy2k8)WkJ#x$)k zNSqb_$QXl-VaA7A<16!y1rp4cR&7;YjV0}V$$LA5jx#o(cTxd5k>!4cUza54lRGC5 zb|}UZ;I&6Hd|^S>zEMGN*@fTg>B|xJN#QL*2Ebe{WbOZs+|Aw384idu1efP7Yxvp# z7Z5v=BamO$wMW5keFNZ|GN0;RgG45>E(^W7yLpg_!f(4~tTFB)4O^ z><-DTm7oisr1Man-(9?eKbpuLyPjvUYWoXeqS&Bt^V8CYUMrMuJ9pUD5Qu8QawI%p z+016?WH@=uZJU`EXVU+<8a?n7_8PkmdY>M|ap1w;`Zk8xuoEP8ET$ir?6Vx&t+Cfd z8P1ir@#I`HoCP)l^iK^jrpJiboc?JpR+_~Hd6Iy|ou@bOe7zp&#_{^~@6vU6vTebR z$c*n3=QI-&7j~+v$fzrTrYWeY9Z?e$%&uSYapTW;YLRLDh6z zAahBZ3>ia)pWW=sjcZ^#ea*-@!XOIP9g*zCB0fms;40}}q1W6~z(lm?KBn06U`yTL zR+v@n&An{W*Adssk7XV0!o+ig!TBj%IhqQXo8so7rowuxQdM}>Po&7EtWf{}UiS7g z%kf}!)q-jx)kF`{n`P&h8bYk_Tus+7QS3O^SPm;n0y{A3mr?XJ)}qR(d0}&~^BQ4Q zJFrM6L)b(vM&DXC{U6F)uvj$o4{#YNp|r2Os+-mkMUxq8Q59}eDA)Ebt+}F~k;NVD z!17T$nI|KT8c;=CV%t4nQu&5<&A$5s(kdSK&wFg)aQ%l;y*6$8mhPxt>TRhM=;W2) zU3=`8^1h;N_G9Ts9m9=8BQG$*quylA6m+X>{c`-QID1KX_5O_MOUB^(8VyM%&PHqD zraLWs_u^cxef+Tm3jdCCvIa9kpdkTiBTcsay@BcH1+360FV3nd)+5gM@4n#TDsDaE zij%vnjhO_YL?-F=aM>)^a%+qWBCc{an0w5$5z*)1KQl_E&$2(Z@E07gj_G zgDa>({b&r8wWz?x58*&+VRx`bact=A1|lCTI6H;;kAHsF4uiqYWK+z|hfmV>;>=i` zd>0K#bEg@FU4T8-H?u6ZPxMO;b|HOLIQ;8nS6An@MAl751aNBBs8T5RC)x`esRp3hsIRf9i_M&)QxEFFLEEalaU$kOy+ zRqw394kG1m-z#|ekTmST{ z?Q_az>e}ou@a4r(2WjD{qB5X`d2ai#FZzn(@~rNs!KbV-demfF*IWRcSl`njv#=B?CM|qSD#OE{2v;2 z$U{}L)IR}#a^Cex{Ph_cvXGZV@L}J|4+aR6vJiX{qhKU>h4Z2^cjRH29P-o}S21v% zhD5T#a@BI)2}O^>1z7()GmND4CjO+IO84QWjBCD~+Yi6Ce&Ci*6>p;UXmG0iE2TGj(A+*DRa=erk+kt9R74s3+2xO zt~iO$ZP*`!P;Oy6(8YZU=Ja(jCbzlO7ybMJ?En#1W z2#MpHTuz_k>+t+{LKB3fhuCD(ov+27DR@lDR_mFWrOmzLG@zrt)==XX#N5SGevi%y-5wk6Eppy*27c`pmzXY_upo*a) zS2e<)$az`#iZpnV8a>bDe{`V~wo>VzYEkct>LA8d+?4OY%iM3cc7Q%&0T;?7p46g= zweMDfDX`iZ7_L@neGX~WA%V08K60$kP0=%LxFT(TJHrxFd1oLn!t(9*{K}}rkwxbg zmf>eQWw|pKbjX{^8fU@Zd4Rx2cJhf8tkk^63z|E9g`}APX`H?(#eG}>RwDLYS8_NX zoN{np`vCgoNA}B*sfA}erV-ihT%@C@*E(OacXS0Od2rax#?ux9A|{hbsMFV56P9|a z3xSJLnXugaRgLC!K0@t3+uCe^M$I_t7Kk=7L8z#zv!v{7OMC)v$c``8$ z4(V*ks!6^BNHS^;*F>I_P4SFbd_B7DM9kmcc$nan>))FMX}9ufT3^OFaMu?^WFvbg zK?{Ap8zjQ{m79u~{ao?U=+78cjq8Zia}gKPyh*IKn-Ta)A)5YsEN`)(D`R^-z5(tGiJj)yHgDPPtYG_CokI&W3^H*DFAV3OMf^~l z)RXb(yaK~=g&V#ZNgTKe9{2bqdsi-KB2PvGAI>fRnPh)`bJ>$$63xxR@rv#V^%A7J z$0+D4&jd9V(nz0^at9T2T_!MdAIQM8p_mmhhKvVo5_@ABK5sihrA+WGQBr}h z5Xbv@jhp{)V((Gp|JjENTl*tfk+mvk2_8U8n*U4qdF1#juOoY`5 zqqSJLGp}L4R$CEM(n!0J?C<63T>0WF@m5Dk{L%1n{8b&c9f`j`J}c`h+qKPU_Fh^a z>fRyoxXx_vNcNumoK5?qDI&fi{sOUaZ4a-=4W5&eUwrBFUS!w9gb23j{d)B6$sq?^ zUReiio$<>0{9Ah9(8A#F1&We6%^VrKGd?gA?1Iw$Hg%<4UZFR*kzt#a92K>liT<*B zP9!z%%M?Jg^ep4l@b_t;$a=|!Y?Lst~LG|Vseo_BXF?8)xe)<313p%(=CvmB9qs^c}n(%zqS64Kl01Hv$G z$-UB(U{U}(z!?KN_(%FZ6_8M9BDwkhG|n^b-kQAt7lYp{I{#lKvlpyN9Ez YbKw7