From 2056489493d359619290b0ce382fd72415fa5003 Mon Sep 17 00:00:00 2001 From: Gabriel Mazetto Date: Mon, 15 Aug 2016 15:19:02 +0200 Subject: [PATCH 1/6] Added "Host key verification" troubleshooting doc for Geo --- doc/gitlab-geo/configuration.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/doc/gitlab-geo/configuration.md b/doc/gitlab-geo/configuration.md index 182965060f8e9d..3cd4b2a7ae015d 100644 --- a/doc/gitlab-geo/configuration.md +++ b/doc/gitlab-geo/configuration.md @@ -178,6 +178,24 @@ to fix (all commands and path locations are for Omnibus installs): - Did I defined the correct SSH Key for the node? - You must create an SSH Key for `git` user - This key is the one you have to inform at `Admin > Geo` +- Can I SSH from secondary to primary node using `git` user account? + - This is the most obvious cause of problems with repository replication issues. + If you have not added primary node's key to `known_hosts`, you will endup with + a lot of failed sidekiq jobs with an error similar to: + + ``` + Gitlab::Shell::Error: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. + ``` + + Easy way to fix is by logging in as the `git` user in the secondary node and run: + + ``` + # remove old entries to your primary gitlab in known_hosts + ssh-keyscan -R your-primary-gitlab.example.com + + # add a new entry in known_hosts + ssh-keyscan -t rsa your-primary-gitlab.example.com >> ~/.ssh/known_hosts + ``` - Can primary node communicate with secondary node by HTTP/HTTPS ports? - Can secondary nodes communicate with primary node by HTTP/HTTPS/SSH ports? - Can secondary nodes execute a succesfull git clone using git user's own -- GitLab From ea493608addceeb20c4f3f8d040e7cfbed631db2 Mon Sep 17 00:00:00 2001 From: Gabriel Mazetto Date: Thu, 29 Sep 2016 20:09:23 +0200 Subject: [PATCH 2/6] Updated rsync instructions to preserve repository ownership I've moded the instruction to a different place to reflect the timming it should be executed and prevent issues where the user/group doesn't exist yet. --- doc/gitlab-geo/configuration.md | 51 +++++++++++++++++---------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/doc/gitlab-geo/configuration.md b/doc/gitlab-geo/configuration.md index 3cd4b2a7ae015d..b586fd061775ba 100644 --- a/doc/gitlab-geo/configuration.md +++ b/doc/gitlab-geo/configuration.md @@ -10,38 +10,15 @@ complete the process. **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* -- [Repositories data replication](#repositories-data-replication) - [Create SSH key pairs for Geo nodes](#create-ssh-key-pairs-for-geo-nodes) - [Primary Node GitLab setup](#primary-node-gitlab-setup) - [Secondary Node GitLab setup](#secondary-node-gitlab-setup) - [Database Encryptation Key](#database-encryptation-key) - [Authorized keys regeneration](#authorized-keys-regeneration) + - [Repositories data replication](#repositories-data-replication) -## Repositories data replication - -Getting a new secondary Geo node up and running, will also require the -repositories directory to be synced from the primary node. You can use `rsync` -for that. From the secondary node run: - -```bash -# For Omnibus installations -rsync -avrP root@1.2.3.4:/var/opt/gitlab/git-data/repositories/ /var/opt/gitlab/git-data/repositories/ -gitlab-ctl reconfigure # to fix directory permissions - -# For installations from source -rsync -avrP root@1.2.3.4:/home/git/repositories/ /home/git/repositories/ -chown -R git:git /home/git/repositories -chmod ug+rwX,o-rwx /home/git/repositories -``` - -where `1.2.3.4` is the IP of the primary node. - -If this step is not followed, the secondary node will eventually clone and -fetch every missing repository as they are updated with new commits on the -primary node, so syncing the repositories beforehand will buy you some time. - ## Create SSH key pairs for Geo nodes When adding a Geo node you must provide an SSH public key of the user that your @@ -153,6 +130,32 @@ gitlab-rake gitlab:shell:setup sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production ``` +### Repositories data replication + +Getting a new secondary Geo node up and running, will also require the +repositories directory to be synced from the primary node. You can use `rsync` +for that. From the secondary node run: + +```bash +# For Omnibus installations +rsync -guavrP root@1.2.3.4:/var/opt/gitlab/git-data/repositories/ /var/opt/gitlab/git-data/repositories/ +gitlab-ctl reconfigure # to fix directory permissions + +# For installations from source +rsync -guavrP root@1.2.3.4:/home/git/repositories/ /home/git/repositories/ +chmod ug+rwX,o-rwx /home/git/repositories +``` + +where `1.2.3.4` is the IP of the primary node. + +If this step is not followed, the secondary node will eventually clone and +fetch every missing repository as they are updated with new commits on the +primary node, so syncing the repositories beforehand will buy you some time. + +While active repositories will be eventually replicated, if you don't rsync +the files, it will not have in the secondary node any archived/inactive +repository, as Geo doensn't run any routime to look for missing repositories. + ## Troubleshooting Setting up Geo requires careful attention to details and sometimes it's easy to -- GitLab From cb57907c3d68150aadb35bc11c0d95e3b0308c14 Mon Sep 17 00:00:00 2001 From: Gabriel Mazetto Date: Tue, 18 Oct 2016 00:36:47 +0200 Subject: [PATCH 3/6] Document Geo setup steps better and make order of actions clearer --- doc/gitlab-geo/README.md | 26 ++++++--- doc/gitlab-geo/configuration.md | 93 +++++++++++++++++++++++++-------- doc/gitlab-geo/database.md | 2 +- 3 files changed, 91 insertions(+), 30 deletions(-) diff --git a/doc/gitlab-geo/README.md b/doc/gitlab-geo/README.md index 83535c3ef09303..3bf1f595f55933 100644 --- a/doc/gitlab-geo/README.md +++ b/doc/gitlab-geo/README.md @@ -20,8 +20,6 @@ locations as a read-only fully operational version. - [How long does it take to have a commit replicated to a secondary node?](#how-long-does-it-take-to-have-a-commit-replicated-to-a-secondary-node) - [What happens if the SSH server runs at a different port?](#what-happens-if-the-ssh-server-runs-at-a-different-port) - - ## Overview If you have two or more teams geographically spread out, but your GitLab @@ -51,17 +49,31 @@ instance, than a normal setup. There are a couple of things you need to do in order to have one or more GitLab Geo instances. Follow the steps below in the order that they appear: -1. Install GitLab Enterprise Edition on the server that will serve as the +1. Install GitLab Enterprise Edition package on the server that will serve as the secondary Geo node + - Don't configure GitLab as a normal install + - Authentication will be handled by the primary node + - You will need to setup replication before continuing (next step) + - Than you will be guided on how to configure this setup (please follow the correct order) 1. [Setup a database replication](database.md) in `primary <-> secondary (read-only)` topology 1. [Configure GitLab](configuration.md) and set the primary and secondary nodes + After you set up the database replication and configure the GitLab Geo nodes, there are a few things to consider: 1. When you create a new project in the primary node, the Git repository will appear in the secondary only _after_ the first `git push` -1. To fetch from the secondary node, a separate remote URL must be set in your - Git repository locally +1. You need an extra configuration step to be able to fetch code from `secondary` and push to `primary` + - Clone your repository as you would normally do, from the `secondary` node + - Change the `push` URL following this example: + + ```bash + git remote set-url --push origin git@primary.gitlab.example.com:user/repo.git + ``` + +> **Important**: The initialization of a new Geo secondary node requires data +to be copied from the primary, as there is no backfill feature bundled with it. +See more details in the [Configure GitLab](configuration.md) step. ## Current limitations @@ -78,8 +90,8 @@ There are limitations to what we replicate (see Current limitations). In an extreme data-loss situation you can make a secondary Geo into your primary, but this is not officially supported yet. -If you still want to proceed, see our step-by-step instructions on how to -manually [promote a secondary node](disaster-recovery.md) into primary. +If you still want to proceed, see our step-by-step instructions on how to +manually [promote a secondary node](disaster-recovery.md) into primary. ### What data is replicated to a secondary node? diff --git a/doc/gitlab-geo/configuration.md b/doc/gitlab-geo/configuration.md index b586fd061775ba..1eccb2727be50a 100644 --- a/doc/gitlab-geo/configuration.md +++ b/doc/gitlab-geo/configuration.md @@ -1,21 +1,35 @@ # GitLab Geo configuration -By now, you should have an [idea of GitLab Geo](README.md) and already set up -the [database replication](./database.md). There are a few more steps needed to -complete the process. +Before starting with configuration instructions, make sure you followed the +[Setup Instructions](README.md#setup-instructions) first. + +By now, you should have an [idea of GitLab Geo](README.md), have already +installed the Omnibus package in the new machine and already set up +the [database replication](./database.md). + +Next steps will be setting up credentials so Geo can fetch repositories, +replicate some required configurations, start GitLab server in the `secondary` +node's machine and configure every node in the primary's Admin screen. + +After GitLab's instance is online and defined in `Geo Nodes` admin screen, +new data will start to be automatically replicated but you still need to copy +old data from the `primary machine` (more instructions below). --- -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* +**Table of Contents** - [Create SSH key pairs for Geo nodes](#create-ssh-key-pairs-for-geo-nodes) - [Primary Node GitLab setup](#primary-node-gitlab-setup) - [Secondary Node GitLab setup](#secondary-node-gitlab-setup) - - [Database Encryptation Key](#database-encryptation-key) - - [Authorized keys regeneration](#authorized-keys-regeneration) + - [Database Encryption Key](#database-encryption-key) + - [Enable the secondary GitLab instance](#enable-the-secondary-gitlab-instance) - [Repositories data replication](#repositories-data-replication) + - [Authorized keys regeneration](#authorized-keys-regeneration) + - [Ready to use](#ready-to-use) +- [Troubleshooting](#troubleshooting) @@ -70,8 +84,9 @@ instance. If you haven't done that already, read [database replication](./databa Go to the server that you chose to be your primary, and visit **Admin Area > Geo Nodes** (`/admin/geo_nodes`) in order to add the Geo nodes. + Although we are looking at the primary Geo node setup, **this is where you also -add any secondary servers as well**. +add any secondary servers as well** In the following table you can see what all these settings mean: @@ -83,17 +98,19 @@ In the following table you can see what all these settings mean: First, add your primary node by providing its full URL and the public SSH key you created previously. Make sure to check the box 'This is a primary node' -when adding it. Continue with all secondaries. +when adding it. ![Geo Nodes Screen](img/geo-nodes-screen.png) +Don't setup it for the `secondary` node yet, follow setup instructions below first. + --- ## Secondary Node GitLab setup >**Note:** The Geo nodes admin area (**Admin Area > Geo Nodes**) is not used when setting -up the secondary servers. This is handled by the primary server setup. +up the secondary servers. This is handled at the primary server. To install a secondary node, you must follow the normal GitLab Enterprise Edition installation, with some extra requirements: @@ -101,6 +118,11 @@ Edition installation, with some extra requirements: - You should point your database connection to a [replicated instance](./database.md). - Your secondary node should be allowed to communicate via HTTP/HTTPS and SSH with your primary node (make sure your firewall is not blocking that). +- Don't make any extra step you would do for a normal new installation +- Don't setup any custom authentication (this will be handled by the `primary` node) + +You need to make sure you restored the database backup (that is part of setting up replication) +and that the `primary` node PostgreSQL instance is ready to replicate data. ### Database Encryption Key @@ -113,22 +135,19 @@ For Omnibus installations it is stored at `/etc/gitlab/gitlab-secrets.json`. For Source installations it is stored at `/home/git/gitlab/config/secrets.yml`. +### Enable the secondary GitLab instance -### Authorized keys regeneration - -The final step will be to regenerate the keys for `.ssh/authorized_keys` using -the following command (HTTPS clone will still work without this extra step). - -On the secondary node where the database is [already replicated](./database.md), -run the following: +Your new GitLab secondary node can be safely started from here. -``` -# For Omnibus installations -gitlab-rake gitlab:shell:setup +You need to go back to the Primary Node Gitlab setup instructions and add the Secondary node +as you did with the primary. After you hit the **Add Node** button, Primary node will start to notify +changes to the Secondary. Make sure `secondary` instance is running and accessible. -# For source installations -sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production -``` +The two most obvious issues replication can have here is: +- Database replication not working well +- Instance to instance notification not working, can be some of the following: + - You are using a custom certificate or custom CA (see [Troubleshooting](#troubleshooting)) + - Instance is firewalled (please check your firewall rules) ### Repositories data replication @@ -156,6 +175,36 @@ While active repositories will be eventually replicated, if you don't rsync the files, it will not have in the secondary node any archived/inactive repository, as Geo doensn't run any routime to look for missing repositories. +### Authorized keys regeneration + +The final step will be to regenerate the keys for `.ssh/authorized_keys` using +the following command (HTTPS clone will still work without this extra step). + +On the secondary node where the database is [already replicated](./database.md), +run the following: + +``` +# For Omnibus installations +gitlab-rake gitlab:shell:setup + +# For source installations +sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production +``` + +This will enable `git` operations to authorize against your existing users. +New users and SSH keys updated after this step will be replicated automatically. + + +### Ready to use + +Your instance should be ready to use. You can visit the Admin screen in the +secondary node to check if it's correctly identified as a Secondary Geo node and +if Geo is enabled. + +If your installation isn't working properly, check Troubleshooting below. + +--- + ## Troubleshooting Setting up Geo requires careful attention to details and sometimes it's easy to diff --git a/doc/gitlab-geo/database.md b/doc/gitlab-geo/database.md index 3f5d8d6775e651..2eeda6515f983b 100644 --- a/doc/gitlab-geo/database.md +++ b/doc/gitlab-geo/database.md @@ -14,7 +14,7 @@ and `secondary` as either `slave` or `standby` server (read-only). -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* +**Table of Contents** - [PostgreSQL replication](#postgresql-replication) - [PostgreSQL - Configure the primary server](#postgresql-configure-the-primary-server) -- GitLab From 312aa7ec86ae45d6f4e6f91f5fb31b074d379632 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 20 Oct 2016 23:14:30 +0200 Subject: [PATCH 4/6] Copyedit and refactor Geo docs [ci skip] --- doc/gitlab-geo/README.md | 36 ++-- doc/gitlab-geo/configuration.md | 260 ++++++++++++----------- doc/gitlab-geo/img/geo-nodes-screen.png | Bin 54040 -> 40431 bytes doc/gitlab-geo/img/geo_nodes_add_new.png | Bin 0 -> 64024 bytes 4 files changed, 157 insertions(+), 139 deletions(-) create mode 100644 doc/gitlab-geo/img/geo_nodes_add_new.png diff --git a/doc/gitlab-geo/README.md b/doc/gitlab-geo/README.md index 3bf1f595f55933..762bb1d7f153d8 100644 --- a/doc/gitlab-geo/README.md +++ b/doc/gitlab-geo/README.md @@ -47,29 +47,31 @@ GitLab Geo requires some additional work installing and configuring your instance, than a normal setup. There are a couple of things you need to do in order to have one or more GitLab -Geo instances. Follow the steps below in the order that they appear: +Geo instances. Follow the steps below in the **exact order** that they appear: -1. Install GitLab Enterprise Edition package on the server that will serve as the - secondary Geo node - - Don't configure GitLab as a normal install - - Authentication will be handled by the primary node - - You will need to setup replication before continuing (next step) - - Than you will be guided on how to configure this setup (please follow the correct order) -1. [Setup a database replication](database.md) in `primary <-> secondary (read-only)` topology -1. [Configure GitLab](configuration.md) and set the primary and secondary nodes +1. Follow the instructions to [install GitLab Enterprise Edition][install-ee] + on the server that will serve as the secondary Geo node, but don't further + configure GitLab as authentication will be handled by the primary node (more + on this in the configuration step). +1. [Setup a database replication](database.md) in `primary <-> secondary (read-only)` topology. +1. [Configure GitLab](configuration.md) and set the primary and secondary nodes. + +## After setup After you set up the database replication and configure the GitLab Geo nodes, there are a few things to consider: 1. When you create a new project in the primary node, the Git repository will - appear in the secondary only _after_ the first `git push` -1. You need an extra configuration step to be able to fetch code from `secondary` and push to `primary` - - Clone your repository as you would normally do, from the `secondary` node - - Change the `push` URL following this example: + appear in the secondary only _after_ the first `git push`. +1. You need an extra step to be able to fetch code from the `secondary` and push + to `primary`: + + 1. Clone your repository as you would normally do from the `secondary` node + 1. Change the remote push URL following this example: - ```bash - git remote set-url --push origin git@primary.gitlab.example.com:user/repo.git - ``` + ```bash + git remote set-url --push origin git@primary.gitlab.example.com:user/repo.git + ``` > **Important**: The initialization of a new Geo secondary node requires data to be copied from the primary, as there is no backfill feature bundled with it. @@ -119,3 +121,5 @@ connectivity between your nodes, your hardware, etc. We send the clone url from the primary server to any secondaries, so it doesn't matter. If primary is running on port `2200` clone url will reflect that. + +[install-ee]: https://about.gitlab.com/downloads-ee/ diff --git a/doc/gitlab-geo/configuration.md b/doc/gitlab-geo/configuration.md index 1eccb2727be50a..b260cf961a59a1 100644 --- a/doc/gitlab-geo/configuration.md +++ b/doc/gitlab-geo/configuration.md @@ -1,92 +1,47 @@ # GitLab Geo configuration -Before starting with configuration instructions, make sure you followed the -[Setup Instructions](README.md#setup-instructions) first. +> **Important:** +Make sure you have followed the first two steps of the +[Setup instructions](README.md#setup-instructions). -By now, you should have an [idea of GitLab Geo](README.md), have already -installed the Omnibus package in the new machine and already set up -the [database replication](./database.md). +After having installed GitLab Enterprise Edition in the instance that will serve +as a Geo node and set up the database replication, the next steps can be summed +up to: -Next steps will be setting up credentials so Geo can fetch repositories, -replicate some required configurations, start GitLab server in the `secondary` -node's machine and configure every node in the primary's Admin screen. +- configure the primary node +- replicate some required configurations between the primary and the secondaries +- start GitLab in the secondary node's machine +- configure every secondary node in the primary's Admin screen -After GitLab's instance is online and defined in `Geo Nodes` admin screen, -new data will start to be automatically replicated but you still need to copy -old data from the `primary machine` (more instructions below). +After GitLab's instance is online and defined in **Geo Nodes** admin screen, +new data will start to be automatically replicated, but you still need to copy +old data from the primary machine (more information below). ---- - - - -**Table of Contents** - -- [Create SSH key pairs for Geo nodes](#create-ssh-key-pairs-for-geo-nodes) -- [Primary Node GitLab setup](#primary-node-gitlab-setup) -- [Secondary Node GitLab setup](#secondary-node-gitlab-setup) - - [Database Encryption Key](#database-encryption-key) - - [Enable the secondary GitLab instance](#enable-the-secondary-gitlab-instance) - - [Repositories data replication](#repositories-data-replication) - - [Authorized keys regeneration](#authorized-keys-regeneration) - - [Ready to use](#ready-to-use) -- [Troubleshooting](#troubleshooting) - - - -## Create SSH key pairs for Geo nodes - -When adding a Geo node you must provide an SSH public key of the user that your -GitLab instance runs on (unless changed, should be the user `git`). This user -will act as a "normal user" who fetches from the primary Geo node. - -Run the command below on each server that will be a Geo node (primary or -secondary), and paste the contents of `id_rsa.pub` to the admin area of the -primary node (**Admin Area > Geo Nodes**) when adding a new one: - -```bash -sudo -u git -H ssh-keygen -``` - -Remember to add your primary node to the `known_hosts` file of your `git` user. +## Primary node GitLab setup -You can find ssh key files and `know_hosts` at `/var/opt/gitlab/.ssh/` in -Omnibus installations or at `/home/git/.ssh/` when following the source -installation guide. +>**Notes:** +- You will need to setup your database into a **Primary <-> Secondary (read-only)** replication + topology, and your Primary node should always point to a database's Primary + instance. If you haven't done that already, read [database replication](./database.md). +- Only in the Geo nodes admin area of the primary node, will you be adding all + nodes' information (secondary and primary). Do not add anything in the Geo + nodes admin area of the secondaries. +To setup the primary node: +1. [Create the SSH key pair][ssh-pair] for the primary node. +1. Visit the primary node's **Admin Area > Geo Nodes** (`/admin/geo_nodes`). +1. Add your primary node by providing its full URL and the public SSH key + you created previously. Make sure to check the box 'This is a primary node' + when adding it. -If for any reason you generate the key using a different name from the default -`id_rsa`, or you want to generate an extra key only for the repository -synchronization feature, you can do so, but you have to create/modify your -`~/.ssh/config` (for the `git` user). +![Add new primary Geo node](img/geo_nodes_add_new.png) -This is an example on how to change the default key for all remote hosts: - -```bash -Host * # Match all remote hosts - IdentityFile ~/.ssh/mycustom.key # The location of your private key -``` - -This is how to change it for an specific host: - -```bash -Host example.com # The FQDN of the primary Geo node - HostName example.com # The FQDN of the primary Geo node - IdentityFile ~/.ssh/mycustom.key # The location of your private key -``` - -## Primary Node GitLab setup +--- >**Note:** -You will need to setup your database into a **Primary <-> Secondary (read-only)** replication -topology, and your Primary node should always point to a database's Primary -instance. If you haven't done that already, read [database replication](./database.md). - -Go to the server that you chose to be your primary, and visit -**Admin Area > Geo Nodes** (`/admin/geo_nodes`) in order to add the Geo nodes. - -Although we are looking at the primary Geo node setup, **this is where you also -add any secondary servers as well** +Don't set anything up for the `secondary` node yet, make sure to follow the +[Secondary node GitLab setup](#secondary-node-gitlab-setup) first. In the following table you can see what all these settings mean: @@ -94,66 +49,71 @@ In the following table you can see what all these settings mean: | --------- | ----------- | | Primary | This marks a Geo Node as primary. There can be only one primary, make sure that you first add the primary node and then all the others. | | URL | Your instance's full URL, in the same way it is configured in `gitlab.yml` (source based installations) or `/etc/gitlab/gitlab.rb` (omnibus installations). | -|Public Key | The SSH public key of the user that your GitLab instance runs on (unless changed, should be the user `git`). That means that you have to go in each Geo Node separately and create an SSH key pair. See the [SSH key creation](#create-ssh-key-pairs-for-geo-nodes) section. | - -First, add your primary node by providing its full URL and the public SSH key -you created previously. Make sure to check the box 'This is a primary node' -when adding it. +|Public Key | The SSH public key of the user that your GitLab instance runs on (unless changed, should be the user `git`). That means that you have to go in each Geo Node separately and create an SSH key pair. See the [SSH key creation][ssh-pair] section. | -![Geo Nodes Screen](img/geo-nodes-screen.png) - -Don't setup it for the `secondary` node yet, follow setup instructions below first. - ---- - -## Secondary Node GitLab setup +## Secondary node GitLab setup >**Note:** The Geo nodes admin area (**Admin Area > Geo Nodes**) is not used when setting -up the secondary servers. This is handled at the primary server. +up the secondary nodes. This is handled at the primary one. To install a secondary node, you must follow the normal GitLab Enterprise Edition installation, with some extra requirements: - You should point your database connection to a [replicated instance](./database.md). -- Your secondary node should be allowed to communicate via HTTP/HTTPS and +- Your secondary node should be allowed to [communicate via HTTP/HTTPS and SSH with your primary node (make sure your firewall is not blocking that). -- Don't make any extra step you would do for a normal new installation +- Don't make any extra steps you would do for a normal new installation - Don't setup any custom authentication (this will be handled by the `primary` node) -You need to make sure you restored the database backup (that is part of setting up replication) -and that the `primary` node PostgreSQL instance is ready to replicate data. +You need to make sure you restored the database backup (that is part of setting +up replication) and that the primary node PostgreSQL instance is ready to +replicate data. ### Database Encryption Key -GitLab stores a unique encryption key in disk that we use to safely store sensitive -data in the database. +GitLab stores a unique encryption key in disk that we use to safely store +sensitive data in the database. -Any secondary node must have the exact same value for `db_key_base` as defined in the primary one. +Any secondary node must have the **exact same value** for `db_key_base` as +defined in the primary one. -For Omnibus installations it is stored at `/etc/gitlab/gitlab-secrets.json`. +- For Omnibus installations it is stored at `/etc/gitlab/gitlab-secrets.json`. +- For installations from source it is stored at `/home/git/gitlab/config/secrets.yml`. -For Source installations it is stored at `/home/git/gitlab/config/secrets.yml`. +Find that key in the primary node and copy paste its value in the secondaries. ### Enable the secondary GitLab instance -Your new GitLab secondary node can be safely started from here. +Your new GitLab secondary node can now be safely started. -You need to go back to the Primary Node Gitlab setup instructions and add the Secondary node -as you did with the primary. After you hit the **Add Node** button, Primary node will start to notify -changes to the Secondary. Make sure `secondary` instance is running and accessible. +1. [Create the SSH key pair][ssh-pair] for the secondary node. +1. Visit the primary node's **Admin Area > Geo Nodes** (`/admin/geo_nodes`). +1. Add your secondary node by providing its full URL and the public SSH key + you created previously. +1. Hit the **Add node** button. + +--- + +After the **Add Node** button is pressed, the primary node will start to notify +changes to the secondary. Make sure the secondary instance is running and +accessible. + +The two most obvious issues that replication can have here are: -The two most obvious issues replication can have here is: - Database replication not working well -- Instance to instance notification not working, can be some of the following: - - You are using a custom certificate or custom CA (see [Troubleshooting](#troubleshooting)) - - Instance is firewalled (please check your firewall rules) +- Instance to instance notification not working. In that case, it can be + something of the following: + - You are using a custom certificate or custom CA (see the + [Troubleshooting](#troubleshooting) section) + - Instance is firewalled (check your firewall rules) ### Repositories data replication Getting a new secondary Geo node up and running, will also require the repositories directory to be synced from the primary node. You can use `rsync` -for that. From the secondary node run: +for that. Assuming `1.2.3.4` is the IP of the primary node, SSH into the +secondary and run: ```bash # For Omnibus installations @@ -165,23 +125,21 @@ rsync -guavrP root@1.2.3.4:/home/git/repositories/ /home/git/repositories/ chmod ug+rwX,o-rwx /home/git/repositories ``` -where `1.2.3.4` is the IP of the primary node. - If this step is not followed, the secondary node will eventually clone and fetch every missing repository as they are updated with new commits on the primary node, so syncing the repositories beforehand will buy you some time. -While active repositories will be eventually replicated, if you don't rsync -the files, it will not have in the secondary node any archived/inactive -repository, as Geo doensn't run any routime to look for missing repositories. +While active repositories will be eventually replicated, if you don't rsync, +the files, any archived/inactive repositories will not get in the secondary node +as Geo doesn't run any routine task to look for missing repositories. ### Authorized keys regeneration -The final step will be to regenerate the keys for `.ssh/authorized_keys` using -the following command (HTTPS clone will still work without this extra step). +The final step will be to regenerate the keys for `~/.ssh/authorized_keys` using +the command below (HTTPS clone will still work without this extra step). On the secondary node where the database is [already replicated](./database.md), -run the following: +run: ``` # For Omnibus installations @@ -192,19 +150,73 @@ sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production ``` This will enable `git` operations to authorize against your existing users. -New users and SSH keys updated after this step will be replicated automatically. - +New users and SSH keys updated after this step, will be replicated automatically. ### Ready to use -Your instance should be ready to use. You can visit the Admin screen in the -secondary node to check if it's correctly identified as a Secondary Geo node and +Your instance should be ready to use. You can visit the Admin area in the +secondary node to check if it's correctly identified as a secondary Geo node and if Geo is enabled. -If your installation isn't working properly, check Troubleshooting below. +If your installation isn't working properly, check the +[troubleshooting](#troubleshooting) section. + +## Create SSH key pairs for new Geo nodes + +>**Note:** +These are general instructions to create a new SSH key pair for a new Geo node, +either primary or secondary. --- +When adding a new Geo node, you must provide an SSH public key of the user that +your GitLab instance runs on (unless changed, should be the user `git`). This +user will act as a "normal user" who fetches from the primary Geo node. + +1. Run the command below on each server that will be a Geo node: + + ```bash + sudo -u git -H ssh-keygen + ``` + +1. Get the contents of `id_rsa.pub` the was just created: + + ``` + # Omnibus installations + sudo -u git cat /var/opt/gitlab/.ssh/id_rsa.pub + + # Installations from source + sudo -u git cat /home/git/.ssh/id_rsa.pub + ``` + +1. Copy them to the admin area of the **primary** node (**Admin Area > Geo Nodes**). + +Remember to add your primary node to the `known_hosts` file of your `git` user. + +You can find ssh key files and `know_hosts` at `/var/opt/gitlab/.ssh/` in +Omnibus installations or at `/home/git/.ssh/` when following the source +installation guide. + +If for any reason you generate the key using a different name from the default +`id_rsa`, or you want to generate an extra key only for the repository +synchronization feature, you can do so, but you have to create/modify your +`~/.ssh/config` (for the `git` user). + +This is an example on how to change the default key for all remote hosts: + +```bash +Host * # Match all remote hosts + IdentityFile ~/.ssh/mycustom.key # The location of your private key +``` + +This is how to change it for an specific host: + +```bash +Host example.com # The FQDN of the primary Geo node + HostName example.com # The FQDN of the primary Geo node + IdentityFile ~/.ssh/mycustom.key # The location of your private key +``` + ## Troubleshooting Setting up Geo requires careful attention to details and sometimes it's easy to @@ -216,7 +228,7 @@ to fix (all commands and path locations are for Omnibus installs): - Is Postgres replication working? - Are my nodes pointing to the correct database instance? - You should make sure your primary Geo node points to the instance with - writting permissions. + writing permissions. - Any secondary nodes should point only to read-only instances. - Can Geo detect my current node correctly? - Geo uses your defined node from `Admin > Geo` screen, and tries to match @@ -232,7 +244,7 @@ to fix (all commands and path locations are for Omnibus installs): - This key is the one you have to inform at `Admin > Geo` - Can I SSH from secondary to primary node using `git` user account? - This is the most obvious cause of problems with repository replication issues. - If you have not added primary node's key to `known_hosts`, you will endup with + If you have not added primary node's key to `known_hosts`, you will end up with a lot of failed sidekiq jobs with an error similar to: ``` @@ -253,6 +265,8 @@ to fix (all commands and path locations are for Omnibus installs): - Can secondary nodes execute a succesfull git clone using git user's own SSH Key to primary node repository? -> This list is an atempt to document all the moving parts that can go wrong. +> This list is an attempt to document all the moving parts that can go wrong. We are working into getting all this steps verified automatically in a rake task in the future. :) + +[ssh-pair]: #create-ssh-key-pairs-for-new-geo-nodes diff --git a/doc/gitlab-geo/img/geo-nodes-screen.png b/doc/gitlab-geo/img/geo-nodes-screen.png index c77771aac6d066dfafbe1814ac33791e97ba6d39..f2811373e7fa515cdd04b43edf95e42fa9892359 100644 GIT binary patch literal 40431 zcmeAS@N?(olHy`uVBq!ia0y~yV0p*Dz_gKrje&vTNx|dQ3=9eko-U3d6?5L)Ew2e_ zpZmV{jqmNPlkdLSd-7h+-t%_VH-Ffjzbn$nStfH_vG4ID-Z4=r+r4v6=gi&vkq4)*qR5ac1$kIm(%J zJ};BaX1lt;z_C^S3&I;ZU|>#ifjdkp<$%N;K^TxUU@M17xUlsclob>doEVs$5m5NY zSWaYX=7hPrhJnxIQl^LaE8j?x}17?-9MAt+wL^o{}=GgEl$td#pR1ZSU`Zli=Dz& zoe*y^uC^_`Vit2+`b&$~r2kh^PwRR9ntXRtw!b|0k8dEKT|fR{-FHYxr5rewcJvnS z^-uM-8@%m24u!-o{}XSQx&6(in}v+`#jW(yQ#A zTk0OP-VOLre*RRB5o_J<&W?^1-pK{me?$EoQTp89lK1+qSIsI>_8$&y+{L||dEZ@- zH@6z@c>Na=Ig)EORi4yq&z}2FfwP@|&xY!qZ~jba$TtTCWG>IUDtkz@v8{gab^b1y zb*0~$Rb=cx9Lm%9@yj2JX)Au67Qe%H-RifaP@jCo!-&66=QQNogA9vBGHg}N#ghKR zTlwlIw9Mw;lM(;(ktE~&I*?y?A^gg7W$%XRHhkAVvDq%%^?CW9xOKbv_hj7PtEkUj z^Bd&X*ROn=cl(>Ky?#nyl;v|PTIGASz)bh*w0_v_wqfISzYt@cHH!A zPo7Cj|5P3L&J1#p??0Y*awgMW964xvYfIhSYx%bpH6K5>^3azB((XauB<}1y21x`8 zk>}0^U+z-BVsi3x!`i}<`2FnVy^C%1H)jULo35>JnpXUod7peoN5_inPw55aWyjTO zYo4{e@)esYon89;lIPPq>)&r;3@I+&eEhT|!c^0@HNL*5f3M2?xPSFa+4IfY4o$DE zzZU!Oblkk$?|!Fq_1>>uHg`R1jlF=NVBqy9=O5%9|D`i`Ws$8#w$aqrPnK72E&ZI9 zdvo4eZ`Q5bPHTN$|LXGI-CGI|SLNQ>+sGRKp&+2V2GAf(zevgvM z3N8A-?%KN8)k&Mb?)_+YcS~Hm_pNp5EBCKiQ#$+Vi$^m{`t+yjTJCbT?i2aF^&h`7 zG^eb{e9!UxU~F2vsp~HJU3aTb{@(oV-QF)PzZb@)oX)kl_wL?A#{2T1Z1~ga*UC-3 zq2Eh$zN_W_{xVHUn@=9=&3+#TKbtCz9XUNt#*^mM9w zMg7j4#~$L&yE%1FmlRh|3(kc3xJLGlsp-9|%XH_zh^pHt~f=`EpUVop-HFfINd*2j=u7206mbtU?XJcQ^-39&rcLSQA zHp)f3D*0Tr@bqh=9h;LNsdj?S_Og|kzV+9cx88ggr}z5d<&^l6k487Q|5}wfZT7;u zv;J+mb4&EYUk4W#m)Obn=XYrDE%s#JRGxA8m(JSzJ6zfO=7#&8W)Co#d8+i)g}B^X z8v#tvXySv2b zdmplU7U+alX5IR_>-E8?Mcva+?|b&|=_b+r#UG7sx|lofj$MB`XsY;!x9Unti`K1P z{JxO=F*NsW@!{PxXZG@CqW%{AHx9jJFXWYr)4OeOCox0(T~fmKN1T!8&Q890Mc~I< zH6^7*dc6l@-$QGy6{7Q|q<&?1&cAxbiw{LN#baw`t$BPpMct}iqBZp^!%S{}wmNH2 z0UDizs4R*~Q#ZZgDgL*i>tn9-&LVOB>ALl6@19OM{yj9f?eK-X=K?cdpJLiy3re@S zi0b2OlaA%gtf+hMmToq_#a90H@SJ$P+XjE`-)1Yne4GF6ya}r1t_QZacXV{@vS%yb zE8lFbq@=VcZqm{xlV*k4UNvj!&X&F>y63{THM^U{Z`t0~+jjRt-qqkuQ(}02lz~dV z^GD!S<(1i4D<-Bs&v>n%w|V`ne>t)jrtZCEwnMvm>(iTM^?5tbecHF_jhuF|v+slJ z^E)~^s&tTSoS~XNb=EZ7h09cHuYT$Kdph-X``_KO?!C?4n{!im(~~tkKYoE~=JSY} z`HJ`EDY4;~KP|s%vVQ%nd#_eEiO&l-$nC%4<=TDM*6Y@LP22REG2UNENr}q`QMc{2 z3~ruPwnz2!mHgFjw%-rCng2g_+7|Vcn|5w#!Ojn^_jh!3Fo`wqzSj?KD_lH$;it~k z<94gtcBH4;ZP)tn+S$d$g>n6c4FSHszK!#27YakFHCvULT7rzGxuO@fqvpr(=BAs@BLTH4y75fLkznwVa-LRtb!AYhb$P}jjD0gecexRMex zq@n{E&~c(+*wJIn#cdd_F@PX@-J33w@LSjr%@MKP& z^o`JvkQICO+({M{6%#5w(Z)Zn` z+%btef|5ICJvx1B#>|CFZfG1mrkeG!>+G(;F!2eck@Lis?~Dv*+ULJ#>g;(dR;&=Y zYI19T&GLn2{uduUoHeoZ?uXw;Ui{vr{{5r#^p$?c%hp``awNjl{kT@`MR%*(%{Cui zKRsS+pZha(`TF&~Jr@s6ZjCLozNxt}cGsSBTeMZfE*ctNO?Y+dY1;B5SqCpxZ~Oo5 z-RFBR?8B|9>@D6MpQmST8z>mOOe5)(h-;g>mSN?ruzcGWUp{X%hcv`re!sA8>#0+x z@@ikM**)Jrt@yqDKI@t@t}a@ZrOU3pwOMsb@5c9kbNpiq-?0DsQyL!ov(lC4_tJmQ z&HuZ_|2P!>W&Qnn$8Niwm!EFm{L%XUmGFPh)K?YUNU#6#EV=4qKwSIu=+gY&UteA> z7Jk}TdB(vdR=(L zO?G9xuYd29uYX8M%#v+))^7P-^>OFYuDAl z_6`sAqIFvDzwyf6-t4I9IdiTQSLxNl=dWx3S4!P6y>c(qC!}lIG542~C(Y7}-S(LI z+B%!}v9iK$|94)x_*?M;|DWQ^!c(`sX#!=qz_?|%r~73F)=asy{VvB1tI{v&PPw_c z?d@f2OP`-kv*mqP_4(u7o5}CO-g)Zw^k15@_PW*HoO<^1xwhY!Yya(9weVNhy#MXT zzm_xqTflFg`ufSo!%>EBW&gh3|0n2bZ)|n6^#0GjwGY?tTQGfk+@{}F&DKgqJqKkc zI$CcwaqYak{g&+l^O;#wrwXmk)Gprj=bI1Pjc4mL%xwcV+sCcglKSoUiw9>|QrCLD zzP9kv-ou}*Z5>|nes@;*UYMWn>a;~{zV5c)QO>!~_1R>{Z=0uC_EVne1^c}D9_x=kG3fCk z5$V}$p3df5weBhZt2a|3ay3p||8~Z*tCu7E+8dVs(?x$CpSrv0{hL{9Tej40dmVZ& zc72CtaLLA1_r7gCS{Qh%YW=F{Z?Sn*i;VhWLW|z;T;0lJEB(5As>FVW@NmDa(pocp zwpwj@tGx8+aSb)IK>2ld*Ip{CUy-`}NLFm!yl-nF*F5==aa8^MmB!VnWz)C6o80|* za*n=a=L{p)lP@jp?z{c|t+;*Fz0COP=>A!gWY$JmM0Z}CSoV6u;vKgne&0B2Sn>P^ z-&w!D@Q{?AXL^x~yN{a6?T@Q8cb`2?KcpyUOHz{1)|$_TyT5+gCU3P#FZS-WB@({T zm3N*tn5i3wW}eo&QTz7Wwn(qof>Up;s%+lb%=sNzzApQB*H5pm&XAy6Hgk2?UHqDC zZDMU1Xt?oY)c*TlKU}?jaPIcU_ojb7w9O{CdD~L;jC0FA+g8QTJexLm#_Sc9)$doC ze0M&owrLiKPORki>wJpED{&9CPpgy?6TO&u`Pd z_{wtg7JYO7RMqcWvQNt7o;>;fWBT1nsXIT5|5fa^w<@~xyJ}C#^|}>$_tu^0c;P4i z{if!|sES8@e7UDWf_#=-{`R~2O?5PX{QqrVo=Uu%AGddxO}T$oBuk#-hP>W{a5K&`GyJi@CbIyDLs~ z`*lsLvUPU_9xQIjSi3Xt@6y?u>y}+IDt~eAZ&B!!dsnwrc1G=ZzwS)hYkBX^&6Br2 z|08?#`t=oePH&R=zoTgTn^%isySjWf@s{M}%~*Kl=EqZeBD6N&T+=p7x{IejDAM`+ zp3c&|szuMXOLrg_l}OjYZ~9T6rhCJhb9>m)TkG z5HGiFZ$G`65^+?;=lVtMR-@Uzr|uehZ{*Z|qnCeIeOX&oY^=3!=Vklg+SJKsWA^&jxzt;QAEvw$oxbY9D^5`1kY2a+{O^PJOJDZYhL;sCPdaqiH20#^ z++B0>%OguK%DK8OU9swJ_1!goJz>{+i?+Xh@ovZGvUkT-&Rpqyt!gwgYioYpq$HtB zTQY7JhMLX_Dazcfba?TU_m5P6?&Ev6NA~-^IpS+i@BUWUCX~J=Ja_R*_xIYt$y=YL&*w9~JD2#(`Zj0Jibao{=AJtjlH#&v-L^OB z{>{w(w;#Tg`BdUJ)H1<3Cr29SY+MDTF+KK@0|R5d-=ci?`m!1c4ga7c~-Mx#*Wr)|KGhRoIh7+ z^^GSixpoC%Kfk}r`u{0p_kQy~w%`8B-eLXqz2xiP-dC5G_nY1Q{)d15>o%K(^;Iur zW%pLNvzpso-tq7LmCGNm)u%*D|H`fXIzR4O+ur$_&rjs_zWC4k_wE5rz3Je3zg$f= z{NTp#UzZ-=zxt2WYr|I-J3enaV|uXm>(u?VUZ=}tuC*ptn|_?`e}nhkowfO~KLu-_ zUUWApJ?}d8-tL9Ho9|scw&xVzTWh6P_rTfW)~CauY|&bJu6g>eSF1tn<=U@Ovetxn zrL^!(js9P{d!Ls3M8QI>Y=e~>*EwvQxKS(XyZ+~^uD3E1!Uhn@k{eINaA5V1eZhK#JS=iLv+CO!A zc*d_&r;TQxwX!o0tnSV($qd|-yW&d3^z}176ui~V`Tcm!zF%F74jnGtvgX>hvy$xG zIn%FCc^jNkv165Vti8a#iKchoJ@wpo&+Yf`gI9}e*S4?R=p`7u?1hi(ZTStiCnaw+ z+W-6ChflTgyY2m6X`Rule*_pR|R53PILb4_p7 z!Vb;gDOTw_&)v_hosfO$(~pd``9C*w{aPjC>Z-PC(ZMH$vUB^b-#@QAwmkQEaOOE7 z*W>3hqnE7=-1zX}t(T7^XYYL3*~QZz5YkdR@!`X5jJ6{4M)b^t`zHxAUsU?mdzn8`SeQ`(NCb9XYumIdx7J>?@#}I`f_`aNKDk~%9+n|{>R1?xNLrw`{hT`&36`JHL`aq zt?Fxj{e1Df@csFZmt=o0eDls#*SF`|9ogLXy4NQ@-dFnjdCi?~MPFu3>VNz1-N)xQ zzHgJ$d%vCG|GafOjDu@`eYx0L_TS>e_xit~w%=|fSH0PIT%>Su$k(aqU&G`7tkMhL z{`Ya%$E6>Cy}G}D<*!qhf1O&~uc5X4t*&8KSNThQxk{JKu`>OjM%v%{eA#I?bFQ`g z|62Oj;Aqvoe;?o9Vk^HlEi%5;vHqucf5w}K+v<68{>zomySDw+Jt^ByC*of`w&r== z(IeMvt;8G_KlSmKHBHyDPWNjjof5g5QQ7t9Wlzf4o4J3NtUi=1>E&mywE5QkJ1SSL-?d`K4p*bu zXLs#Oo0XRLVxRfjJXtN%YtuC}^VUg8X-yTf_wQBPd^h0aF5ZdT(%H6cGqLmXF7}Fj zw|G}qFepc<>eh!;N#7}bVir?-_IA~qd9zpa+fNqxQ`| zi=R24gIwL!UM=pux$D}y#+AF*&pxa6^y$1S+ty5-WuHB3(qbi(+S1#z3#)JO%f?QB zx8}<=%eC_+FIcg{O}{N9&xZ?B_pf_SSQPnvPF9|3lfM7%*Q!_h zc6|z*CA3_A%ir%uQ#HM2>^lCoGSh5!X_{Npvf7fZ&eN^`_w;`FpgD2gdDi^q-Rpk* zOn>tG;gv5Hx9h%{SrlxQy?0J=d2!N7O;J(Nm!}$8yE@Nq_#JY#?~h)dt)JB|>myhH zzJL4g)0al!%Ji`8gRf$4*H6D=y*9Eqtn$x1c9VCFyyV^KcVhR}L{8U>z4Tq~|0K0o?a-4` z3#*=7)PFty|Ihiie=W~{S^ww!^^ls>IdYXxx>ptb5a@P{|KG)yTlDYt_P-C_{hO&# z`*Hogwb5I7rGBnGp4)7le_Chfw|T$5yiEQ+ujVa#`Mhh_bIh_oN}qq-9sjGX&a|j& zQ?d81)crz%&yx$>Q;zuXdiC~PShf0G{U5RU(TiTZc)4x*mTC7R7VlW{)oAwFTh^w2 zr;FFtp9vSw4NOVdbK8G)$=BoicBfj#-M_u*ecJiJQ+F<}(z>%~%Fpyvv)QKhWuVE|5kG4B>%vrp)* zmAzB?0Fv&e#NS`jB3W!=sv5fana-tsoA3U1JHPLJ^7-SPH*>;V4~D+Ixg}=fM8jLx z-Z@Lh)c!p(>t>gK^djYSy_H*5#fd*x&-}G&TVm_-zZYhfzC7o{`*fC+=)yD8z6)fn z*tu}ViHfPFGq$Mf`em=5UK#8D{PDT{#rNMnSa;#;gLAjNQ}@b#-#1VE;>L-y_P^bc z=H{N&e|R(FuK)XtG97cKC@CjT5fESAvcux2ySs*w(yebf0^!f!EnHc+?eYElr{~rk z+a+;h%d@vJAFOt~Zkk{3woks#r}z39o!8Azmd3HMuiJKb`h4+q=Qx9%ThoraXnjt( zU45nWNqOPx!b=zLE3SK2pZ|UO@$@^fajSpMOuudW_}zrGv-eYOq=Sk+l*Gk%rpw!F zZd zvSU(f{rWEUnC8kWC1z=a2c@*E3%?T{lhX5U`<^}97JlnnbolVsjk6VJuD1VnSNHVC zU-zcP22WZ$_0+jG|)UA{J7s7_BgQhS|l~=JAC!}p0&r9J&};r zem&2e`TZTcZ#8qa=;!~BIlBB!(eJOvb~(AWwcp+=a;-4pVWxe_(Oo63;l(oTt9oY% z3$N_Y+h)7L(m>l$TmOETQ^=xI(lPdrSN*lJk}v-^_jj!Aj?ZOxepkgUIdgv{+vLda zeL8_Lm$a5YbS=LZzBSc-t^VF~`XQd4onBsEAu%QH9|a#q-TkC+<)!b{=(Y{=v1Nbv zEx4z*{l8>&bl}5>r_Pn{@(FxMaepK6SvqvtaGO4$|C~9` z^IHzoB&>hWAKzD9-#7i;J^r<&Pj-AS|GiiC_r5jl_Vv+K)@{32_3r;!|K(~uSJ=wK z@9$qb7#sVuu=e9ccaxV>KC92a9y;gBbh%oWLh;*eU0YSFzqGo`UEE@Q?!Ux)iyhiK zr!3RA{b%d??{xfaa8($*$Gi5|m%uc~+jZIYJ3epO*C*@$X8HQRkJ)XDWP~Ty8}3jx z%HTCMpCTu`a^~ss7ni=?-c@Vs9zA`TmRjDrx2dIT=gyeE#L`+^qwtsA?)CE{ZGAU( za+m%)W*Ztd?d7YN{v|7(K4o3^@5c8nI>%pEM{QfV(am$B;H?QFizn;m_e9s^ZJhKx zRZA~3cKf^S-<+2o+x2^vVeZ1W@%gv;r$%j8v@31ZyLaOHU+e2zQtKv7dj6(l_t|@F z<*v)cHLcWQ%ezjO?tjYIynp+{SK0TjCHp3Axi)7{TJ?pHw~w4znRfQa%BqWQ|CaG_ zmw!k=*wSCOxN2w3Ty^DW`klJFR|3}U=qPxbUwQe-B5ijQZM92z5f5|if9%$a-FyF) zw!Vg=^-yN)%z2{BIQPuo{U%wvS+0IdzdWD+@Ll_rqgFRJ&Huh`R^Imc{^=^(mFMEF&hlBM zwP(pu&6C>>HZFhrp@gr}N?l6&l!>xc&}sjzyxM!__Rs5^-1mpCaL@nRo%?O-SLLj{ zc5d#{z0dPkuUXg4;Et7e=%XV1?3xBAwuv+7s==kH&X|F>YnwEUZ^h26iuJiO&&)f;`e&_lYfKW_W; z{r|H4e~$HUsrp|jdT;mQe&fd`Tc6s#2>bKz{+FxuKbM-xTdeIq{ypOh|3AO`KmNH) z-~QBMhw<#QUT^-F|2pk1zwvhgSN`dm_y7Or|2i(dsC50hKwi^IuV0Vi$MWJ=2QI9zWMxHyLRj@y2 z^UXDXgCC2CPEGrryk^~_ElSILHdf0od$;0mz)8d73n#7I7&SjHa^aO78Lr1wvR=-L zEvujN%X&xl8vW2~O)tCpIxd}Y{cT+$y>8#LT-#6lDH>LKVG|!d?3!WZDj2*hn37 zt4q>;>+DW!-TwE%`&}i+_pRPDd-2zq+*4%4*REI*u~a{1WlTGJ`LbhKs%~xBrMst} zs*ZBMethox=XK>g(7yEB>EUIW&5IT<*W7Qj-u>NbT~EVV`|a<)e7)3iW>=S2@Z6J2 z-b{&D`rdBM8rPRy{XLg@erlI&TyiZ>+9o!xAYo^cl2XaSO>ZyD$j-OiR)4u@=}~uW zD>X;&>u)aE%EP)J|30r@eoiv}eS7Kjb6IB(-PHSDoLku^=Ib9+; z<7VsdHJClOo=@uG_boSb!oKcRuKHbm{&jTy?;ZO-JU#wp{rze`L-}ocuP-Iu#AzVFYDe~*u^&wQHxJz7sY@YRj@m-7Fft^cz0`2K~C>+2V+zPj%E z)vFKIy*XB6`>W&cgLAiyvc3B>-z>j>HC+Dxu75A@H+^~DWBcotxZGB74?Fi{rY~2m z=l>61kAG>^uMfTd`=-F$7YD-&1SY-*&1k$jdNus1mTKa{x0mbBrftsB<}%ec3)23y z>v?Tk&yB-dr>)6g=ynHPPcV(0JU{PFtgMzecM=Ty{Po10&Hee>Injt;x?P?M&- z2`V|06Px>&B_Me5yO{*z3z z^{cL)vN;u1>#g%kuUFp|6cntz2UT4d(ryt(jU-Kteyy}ft89}ISJahd-d zGRr17@l4w5-*>NGyH-_me)qTcna58jcXo8_GKb8myQGA_W>~*!)v3IW@W8-@t5#`U zy>_kaHhUmwrZRd6&#%dyiu2N4o~Lo)yY|KBno!TWd>XBC)|XSam*0pz22;<^y}o%j`?6}O zPismuzMnarpK*EN=T)n6Lvo+izKymH-p|eb+O${cFS7{(3O8*)0xl@3}sU+1y5NcWJ@*_{_;5f6eFpd7^CQ?t^pJ zZx0SHh`E^0du_A-UkCetH}j|NdbVLv{Ws_7&DQbTJ~qCbXOyJ&Vyff$7bhA0Uq8Lx zmhE@VF>==4cTSMNtvOdIduJ=(x_<`N*O#--$}Tqjv2$Abi@iUz|9&jrAM(HM@0I!k z3aQ(x%jWDfb8n80tGiu)VDqn^{_`^{U*^`guHXHt?C09%-QmId8Xu?1uZ-Vc_v?k< zR+a0`*75nrLrR_YS5`H=-Sm9k&&IFSzrGer-TAqzSKIARjH9Dt)vKTXFLfx^Unpk& zy}JH?`j*v8-daJN)u26(z5HyN?bZ8MJG@S>{+8JoeSF`N1q&2-XHV8GK5cyZ-J9Of zfPe{cRmtn$Rz)A%vtq#l1>5ggd$?ZBRxy2j=GTX5(+~cOc>el~-t_xcJF0)4eXM0C zd3#e&gw$VD#m5 zX63R)OZEJt%kO^5v}Xdl?ZM}>j~~2i+qEyf?jJE8lm|uQ+&X-Jd0;4&s&P{xzG)*v~n1JvU^t>wn7+ zo~*2_nl+KzR#kndWq@S-3%@Jtj@@l`yS@3?vZvd5_nlMcz1pq6Z^iuoZz6XejIDji zHhsR$?OP4Y<4bqNb>6I7P+HOQb!NVPpT(o1sZs3Z_CMF(owQ`roS9r)T$lRe`lhdZ z)o}O0x$CzLL*H$WeIL?$@?BM5vvvITz)7FV{4X2-UCVrs@%)}8_Nw|@Hu+fwf;M|9lZN%+VlngJbr(BTm0(4LhiEb++18iD-S!o?Kt1O zJ9gXpvo&8WSy@>#{ob**ADo-N{c^;_+}-zF+xZ_9$ldw5t#@tK=W`m$A8q$u`1EEs zbk3?RUNVR2|FvZq@r5P@4Mt{r{57r?1&oWV&PW5>e;6Wp#glt*+l+S0?ZG@bz1t+Mn*AIH|AOaP!;V ztLEQcwaQ!6TeRli{^4+X*^$>D)^2Njc(UcbmWGDM{yvMxmCGSf@u2wp>j!?5y!_W* z@z&MD$e9*{iG;+uNC6u#%9r@Hn_IvFhtnd2J01k3#jX+p+Jr{QI!xYn4CW zpU$|SKl^h}SN~rev;Fm>yn^ufJ%_*5fkv+O-SfNI+A4M7lh3Yjw*3pgtMy#zpZ8|{ zKizmxcQRGl`@Aa1yuZKruVg1Gn^fI+U9~CR{_E@iQ#O6duD$sd5_mskK4%uFd-5LL zdCFtXlKX!jvD%tG@U;DW=QCI3W9GFtYQxU*T{jJlyE5km=dYum?XOMt=exqa|JUNA zXKRA$YA65wdaBsOxMoh=uam}AMGuUBoqb^b^T zXm#jO2d^W)$PB&O6p|1au-EyYEOzXk^l_fs-rcv~WlO8|Txq%Txh#IRRn>~Lxb;(1 zmhQC;nrvKTdoSbK55cZ`(GNa*Mfq$!b)(Kt-~ayd1uc84Qa@(qp3B}6Yo}K`zi$81 zGmnkrzbDpZ6P=LpWI@%hwtrpo|Mg6<*#93 z5wTr*)~>f^Jw^84j%?djbmy7FyzoAox9rMmpC3M>@tg&eQtnsC+?g8h6MW-?$L)G^ zbMq{p8v?wt#=GBU`(EYZ<-FLLHCaWo`ew{p%ZmGDm63j%-1gTW$=mtQrl2BW<@Fhn z^D{17;=Wb3HfB2a>MgI2gzh!^J;&$lwbyHImO2`rzj|}u^M7YASCz#ryjxV2Rq*`u zuS2HClb0`!kuAPwqtk3%|6Q?p_dLN92V=wMh6f!#xAvRO+jfU}|L3c_S*nBF_v6^( z2j@a60}dWMxGR5~-H9xX`wJ)L=U<$ixKPU^a{sl6e;e7_`vND=UKmnW7P6eJ+_+|~=*5yiZB$`<$h`1}t$1mCh}&)2hE@cvlp?O!Jk33<+AFBkpZEjs<{%z55- zSE~o}y;vLj)9*CDUEGq)*Y=nBCx3f&d~<*1#idr_-k)-7XV0F!<?oj0Lc zX3^6_YoBkK=F@+9hM=>kSxwI}z28UPMQ=XVAK-Q`ckTSy3k(;xSM69I%YWXc_Wjvf z?XL%;7mG-l`Aimm{xT=9`F8TT>0iH;7Cg_5e7iI1__e40wuJ$bCm%}vKE}~I(;!m1 ze>?B&*|Vj$R{!+rm9}(ocHgryQ~uqQl{>#G6xP>UtlPf-_S=e^hyK{Conhwc%-;UO zr}yULs>WVJImxB-?%+_$=`34*6FuizbSlse%r6z z^Y_YH$Mrwun|J=*IbHwPuin>jJo)+l0`+P2## zqgOn5kT7?x>Fs@D=0-j$f*PKfe)_Iu?B1Q)h9s{c)T2Lzj&zFAIJ| zoZS_+Qd?5kH1n#j=cTJh-)A4XB6IueZTlZt+ajh|=Pz>G|9$0|w9Puxw%Pw{-)HIO zT_zJ8=QwYh@B9S|lhZ8jZdJP@2=c4o>jFbz+6kJ1McmLE{`6SohDs$d@Gr2A6Ug+y;-gz+}_O;BNflm6*~QM!*R5Kj;csnh9};=`!;?>|Le}1?jQHugbXWDqhGQ*!*G}y=-S+;h zl)aO)oBx%0bDTWSTJ0^Gbo%$MueNU26WeAam~1p|Mr& zrAAd`Ie;(*%8?NQK=}LU4hsTV&=Q;fM z*YB0B{wK2FKBZ&h5(k{r=aaQZ7!;z`2KwPru6k^yTi3oV%O0)c#FhIX@#|)7BoX*UX{E zr*E2fuV_cG{?xk`<@@9A2B-dhZ@KxK=98Ac-l@lZ@4o)>DKh@r_LDKIK3hI7q6zn{6pZxT-TTT1;OJ+|st6Cuzvzbr!jOlVyi;|vI zvu0gQIdyr$1cBUL*T1cC@Q&?cYj4T$Z~f|Q1X=?>^OLEGii>uBSoQ7PNlX3;yWeix zHRU0v{vu^>uayA>y_Aw;6W4`^UvAKmFy`e;>BpySMFjVPyV!i_G8o{;!|D z-8RdIRm#f3W#;wU=d|{r*Hr7-u!&? zmQFxuTuj>;)nUy55`{HSkXIYgXgqg+Fa6hk&{wZ?p|^*F@M#{ z$Sx_tWx7jq^?ARR7F_>lwQQ9$7aw0(=h2UnIY)ox#cbo-Qq2}!SGo7osn=iHr|k7w z|7O?0yGOIXPucWz&%YfHHq=ep;lBUIjk4JA_l4VY@73+ybg!;*-h^=HmB9-&R~q>@(2HUGElKT=z5g-ZhTiUMmextsBC*zyFuIo)#4n zdi5nyqH}SZ#>bwokrMm(-bGEn`r_MC|FgSFzb%-SekSP1lFlmSoDKKp7N0Cz`MI|C z#?#ujuXf$r_x-`9l-9Q1i#@8ZOE+%F-SPNW&`FDn_IRYtzu8SNf^+WynOjJ?LM zlTO?5UvA+Pz9sd4*|B|d-+ld85Vx-W_S?+JdDl+g&b>NyO;|y}hOAq>CvWi=o+?hy z`tsu9HZNWN8mqp&vdVqacUz~=DgCqK+qSiH@1CF6CmTNfw(aW;lb>&Xyz}YDh__Eb z#dUspebtThd*?gXMY5m#ym9x(w-dW816Ht4E8>-x)GU5$$tyWi!E={Q{-S&FHCGS6 zl_|OrcE8{D|29y^!oj^l_KxY4yucS5JXf8JUtw6ESG_>MRLQ6P)H`hzl@QUl^K7qe zJUI6&qu0ipg)=@o*n8huT%K=cwKhB>>pJf{vplO+%P;$9mgcSGdM*Fr@>2FM-MsVI z%d?-oxxRjz#lG;_-@mTa+rQ?$`kU!DUrGg){!Fda&+C_&?`))&yWTCXRPIjXtMwW> zIa^NYp1t+qo5$I`IkEG1E%Iq?X*u=igN1SB6#>P-s8=IQFnxUduR57FIwN8{- z-VU*6p}$M4|H)PV%dux*U})(3Xtg7ITZop4ip%jZ|DcrJ{J9oFhG8GuuV=h?v9j!X z`Jco8UOoD5TJ?yr|N2LhGdK7Dn=o(Q)WuQl>}>Pc%G0;YU))^$R{q8=={u&8ufF`< zk@I#-PR5A0|0D--`1yEj|-) zR91IWY+R-7-LKxM(s>#tDlV^M_O{P{InT+-sbtBj+$%ROH}4MHzRfk`$Pd#=bNYAo zty#Xiahm?=qUC?Btn~KpTp1+X){^DsH*=O$o~DV4OJwD``{w8G{(ZRPPG8RU-KmlJ zw+~lU?$q^;?Q3doF5R)~ZP9xDsb3#jd@CkFsuZj6rK6zA-w`YP;N%2C;k|6=Ur z{w`bgR4mIS9#|-DCN0uI@r2W;L7g#HO$Qkhk{q>xwFeG{bQ1idS*A`*p&t*H3?aX)jliWs*Ic(+r=k1oBHD5g?JZ2@UG~er!Th51kJn++Tzy9mp#g7wtXMCHv z>HW1;o7M%Y7v;TNJnj3|+gm?wm^ZK1Z~nct7v~--Qq{3t@ch=^GbaOoF0GXM^{k?| z_fG!zuZxS-vwpNlT2-6+w{F*ad3eP}DdBym%6>kaVQ#8cGg)f(?9k%(dmbI{FaG^d zMz_0yKV$j9y( zN32&`%_$E4{yy$aSTi@&3o_zj$^47@U`*I6CKc53Nf*p?kG}&P- zXBnobn7AtE`-|-hb7nU+H;cae@UpP4{)YXADOqu6Tv}V(UjA))tGE7f<_u-eWxKR| z?^Z;e_y6nS*g5~jRM+KOUO3%WceJuqUboV5@^sm-|1EoeUHx=>(wgSopf1u?`=h@m zE&8mk_xkC}-(NrNQLZY!?fdqO-7AwF-1`gT@FYO*^dmSFy#Dd?%_~r=cJ57n+sc2{yX|e?8vEbA z9~b^-&6koldDZ1hoZ9!~O5d2ZYVH01?_z$>_l?_r_4LN)zc=1mlli{y(i0x=(2Ya- z50f3ug)>+6XBFI-t@YfutxB}sZmU@A>h1H5Wvu7N@BMp&m4Sib0cgKm$mXR^OTXu9 z8$aURyZ?vNf^hb_q#u_)%S|h8OMd?Od7@<*X#DX<|G`-O(5kXkPR{LGMaP;HBiLYT z0klGQRy7+*NFAO&@B4;1AoK0{PjBRAU|={<4Llcf4oO?0_vU?4* zpD=IL;b!O@6hq^|2Sa$~iO2vTX@0CKATx6&pRCo2CsR~>`R1?L`T3HltaR?*|HbK= zW_HV-{y!ge|}dpvB_z>VKy0 z&tJcDrQgAW2f6t8uKhdZHvM{Kf@bKYBZg9TWs}Zbn^hZE=DvUZa*5i%yKXQ2QZ6bZ zv!?LlbLPETp#DPxUs3`4mjze0qo&OLwo(#7|$HQnO(zk^PwfzC8=;GZR97ins0 zy6v5~=*x3+ZFaBUTK4i&>e;gq3*z^Gvj*Ap^nspw>7q7X>1BzB+ccM?dWc$G`E~!W zd*5d1JF;s`cE+whbVu0g&rQ?)+m|oCfBo+)Ro1M(v#Ni5i`i{59WuZ9rHtoYgPcie z)GE-nwpXvR?(Qshzg_`;)n(er&1x z*BxIK^X;~?6DTP7-*30weI~D%W>Eay$0w z@zmlk|9%*9N&jnGR=2}@TH5c|JhjQ|PMv!n@T27-m$c;LEp^*o_s(25+ubbV(~pZ> zvPLn1#@APD`qU=2+~?Yc4FG64LYGQfc5tJwxoD-mlA~ZB~ z)ruV+ug!8U$RBQdv2*_4n83o1yQ{Fi0j z;`{2R*%w;`LFsozp|FY3m0fPC|zi$$eky)d- zcv8;oNft#Npw{f7TTjZQot>P%9(-c2x#j82$!ot)RLS+OJ6$#R;9=9W9bfnH$$nG6 znCzL(7^?pk(-1 z-S1EQw|9T+UmZU8dC&hv?>zmNP0lHQ|K-e=b6?J!Oa6WF^6tCFyCUq#1HUANsk$mYw7OVKX|2NwAy;=U~{~yo)OPZbzKeFh0{Q2set!=xfo7IZF^s(CZFDFbyRP<=` zd0EMCM%C*|-Ktl8diLVW>x@^gdhfkkW-V@*b`(N7^bcFJ7@iBh7xd z-Y%n=8UJ2w-KUs;>%3d(8s*q>mwcT$aku^}pR&DfzyIfnJrDB_H%|Zf?cctI?;d>S z=dY43jk{Y~JY~1N-M%}5GfSfPe7&$mLrbe`dDi~EbJ_2|#~-^k`MQ#k?Z)JX&CPAQ z&t+Htx@TuxFI*ZfwRq)9O|AU6W1Z4F@B1+@F!<;kmc8SuzyDK`iMhFZaB%RN$o+Qz zmaedX1mM5-bprq2t^cR?@3{Sc?>{f@|IhvNbN_Ega1j1`S^sZ;;N}|FJLUIlH&%R% zuGHUspojut4)lYaT z({e^%;OZ#jJTWvcy7ORl%lA5$;IPEY>bwf)h=%%$e?cefebs{Z_c#hVxL z>rLxQiyu^f`FTD0?z5+Vr+@Z!fB10S+IMUBJzSS^tV4hD>z9`8yPvo5m9J*!EpP2J zy&wPfZJxEr(W6HVYwzv)@uqd3`-Q#pAM5|_dzKrLu_N2&*Xn=n)@i)5@ATwf?Cx1v ze6Qs^9_lWU6K&AzcA^Yem_@6PZ0 zKmB9<|Mma%r(L^p?B)9Xean^|+wp$i?{}{Xw*Nn@zt~)Ukll#i!U;b9+zbqeV`l#?p)vt=S-A>16)-E`_u8I4e9n@Af#GE0j^^Djj!v(W{eHJR zK4xc;<+_-iGQGXwkKUNyKhowq`%(Sfc&Yop5B5Kj|Npc8*rZpfg|EJ>%*e`mQ-9O? z>*7tVZM(0?$Ac4t;ro*nbq~)k+OfmJ%j>yYvj6)9uchC=F5N2k;M{W_Rzi zToJ*IFI(I5`11LW%y}cfT%%gauY8HJ(aVUE&l4Mi)9eKI*L>^zcUtDham{Q07QO#| zPxQXM?!2mB=^rm_nKa}3DRs+!ZU%;i&UBDhpN7ZvguDteF)?v*cGi-T3M%|rPV~wabr6Z$8b%S8l3(zoT;VsYi{L{w`;$)j!=k z7UM5}z99TX1UGN_%XcCF<2&wNx?%X{=i*xFuX|&%_iQc+1XP6ze{9hq|L9(tsBd3uRh$i+h>>RHl0|J{&Vx>R8x%~olKAG_$vQL^LZg7 z1B1awp7H{5-H06u?{>f6myzM&8XTNlfA*~J#Vc1Ne%t-D0D1XqR`LJOQc^)5e?Fgo zw5fIfj2DOZzh>);s?T{j>&0Qo&D-+LzW>eJ71@0#e| zG8P|BF8FU-QBV&mxC&ofXms?yzrQ{n#QS*By?zeJKrY)wx*LsNR=iuOo?PX5fAQOY zUmr~Ev{PbWU{F&8m6_Mq#dfEfo=!S=i1p(!>F!73`(p$?&z~p1zdkuo=g(99q<@z` zKmL0EznPfb{tfT{@BeqZ;^)=ri)ubTTCuw%a}odlb+gwTjxE1EQA1m^FLSe8r~Mjx zi;L~d3=9WUQg<}()|h{*79;SII0q(4@G>`rMjr5LxCstz;0}w2!eQ`2IF$(x`9RGYp%WBqFAr3k+&OL9 zG>@f0f#Komo|9BOC+%xq8niMaGqcl2ZF0H0!JUJ#S1w%=^7Zwd=(k+`R{#S8Lj&g| zzvZA>C@L!I)4n+m`Q9xG(MsI{>W?VR^>f#ndg`}PoAr+FSFc{F{Sp9aXwldrEb;Dv z9>jx@ZPp$FV82XA-O39MF@O9Vds6zh(cZToKlJ>( z82upAbNZFf){{@9KGeV5(syW-Ex5c1cxwtSKL z?&-sIFK?_*ekS~z%kHh;?znjA;`kq19$cQ3w~4oW@<$nF1_lG8!?KglMYQc+xH#r7 zJ9pBnH|C%BopIT9`S9JNbIu3G(oAAe9ovT^rPb-<6yJL3Ga|s59hKZ8z zW|ZWm@7TR1-O*?6U$=YHXL>xAd?)tCQrcQ8zAy5!*W*U^`8~SvUwO^l=gq$SfAJw# zS69R8e-G#QpN>0sn*H0c=>2t8&(72-q@A5D|N8s&@A2nne$Re`&&$HtG->wnbTDAb*0Yx`>VC1pF^$uE0kukP<{U*_MriCwNId|FQTIv=%J z``2_$+H_p`>fP@}Z&$tz4Ej|t=lz@C<*#=h4*dA)(2TDRkyHF;i|U8Jl`FHmXH%^- zZSS|3GjqbEHp^9-*=6n!JYKHfKi|g2dYR3KggslI`Zvef-G3`*b*H!Fj%Dhu$A72h zA4@J?=I(j(OT>@ePYZYM{(kMLPP9mIx=-(=%*~I&^Vjtqn-^{W!0OuViSPG-LbwtX zPRFe8n9l!iGjD#Rn7^*A;iJ<&TR!rXr}Cfc>RLPh$j@D$H$J^u8EE!;Ye&b4FJF#K z&$p8^uK#oV#k+TX^XB=STmCiv+?@Hx_pSeZ?*2~Z(~E!n%Pd^8SN)P~{P8J|9^I(h zW0$wZ?AXJ(ryqaVx~}8Ik<*{$I+owFF?unh>Q?_z=Hl>YwYL^-pWm}n|LU=szn*2} z+K690f3A;p_IY=gBd6w{>r$UC)7{a*`#Jq+lkfd6`|r)4wqIiFZM&{+-rmB8tND|{ zPW}z7UYL8~=M1CICvOx#@=7t9yYb~tOT*M>${P!A{w}ng+o|oIy=X^;*MET-@5|EX z+ZXIOU4F+|c3p+mvNJIP@^y7a>rCeK=Xy_fxqP$0?uw|;lq@KPl^14BZQ@g2jLJ*hji^)$Oz1}}HJIc1W@zWqA${$KxkaoWD^|16IF zxw`!K|Jui=W@+f@^?jSY{o|47e*WJZZ^ZbY{;Iq%|LjaD`}?8dv1{2E?fCKU$EU38 zEBaPGoc#RpOU2}C2bM40t>+eba!baGeP1~?f4j12#|O}T%?uLCzaB4t^{w2GKNn@n!|tD+=91ngzxb@(`s@>% z<7ODD#{F1R7_(hj={q676zVhz5g6)4VzWn$jdVAfP9bX?!-hciOxCb3RvqOTshh zN|T>wzUB2^ydx#;OV1C7T|PRMIaOz7he_%0ug|2w=hr^GRS{Ka)M~wYp*~xx~ z)%9IK@h^Aw%Ec|}UESV~e2%ZZ|I@T&iuM0<=NFg!YI^Zv@AkS7v-<_*MIVI?KY!$B z+v~S(Iqz>}o|oB%`CguT%GPAwD4lor)0vL_-fydFbI<(!`f!iGcln&&Nsk^y)b7iD zvD)3`$W;ITrpwOOT1TB**E?y`@kQ^R$wzyX$96q>^ytR*qSx+a@4pn7e<|bt6?l{B zxNX3$$FDUs_4-W3+xF+|`aD}hSFg|aD|3Cww~8qu;>Y`*^%dUji+L`~z|e5=e8KT0 zli&FrogD1_NIic|_hR*PN2a&icZJKzZzr z&9XBQ5^G=jY?*UUfcySE5%F2K7cJkcx^1tKzFghE$DpF9pXc9W5%qg@O7|o_JU*pt zn|oin-~HyA){XyNVz+FK>(#fvC30JTtGn7=q4Tx@Qd^ftD=8&i-dz0XqdC8ui_5a* zmdozN%go;Y^7r0C-uQju{yw@p-#*M+a$8n#gG$lo ztvCKZy?(LcXVROvof_Xvzws8!@BdigGy8j#jAf8*ZmV$ zF4x(G{eQT$qT<*U4b8b?_P@X0{^;xO?~?Lp>hZKAf41lKhIXf&m-upA+N~;T*>>eJ zo!_zG*00y{qyF>jZS5?ti!Bec7dD=^VsB~nI@yj*lP=vT{v6@=HbScZ%uLDtKR-@Z ze0=+LOjFLVSiXwdo<;gR<(~G(85kIP=0D^UN?8PMP%2dNluuBAFi#h-b0&dX zp__;h42qAJe_2wsh#%DCo00Ic#42cI$i3-?ci?TsW1tr64?geZmoHwqBBHCSTN!^2 z)Dwp^H&?7*-@j{@6}Y+iMRv`;eRfe%QA(3fKDjGM^CmB-<&34l{Xp+jiqXYOmxNY^ zXuW#%N(JP$OXV9vv_y4vbtj%o`Sgwh)TE7yidwXCrRJrVUtHut!(|4JmtK~bn3}qJ zdwbuT4(g&$@mktb#=yYfu;lVfkEKDC@y9^^j*Y$RA`e=OKS7|ij0x2DASc}M#}H3( z#lJV80hC3H7HRC;Z<2Pl+UQ=?Mr|wOnSt@gUhU*Ra=yH`=DF0bKhx!A%6-27t0?C9 zuM?}AU=BNO(Ej{<-%fqGu4~t>W$e8svb^t2FRStLBY$2! zUc9eoBVW1o>U$kitAig~U28lX``10+)$?ZmXnSn>A;NmLeXr$G)s3IJpWWVfrxWfmp2^uevh!DTKKgz7*Z;qNzG!}&{dhau zrq^Hd-A_(&|Mh<_sKx$fTXW#=-K~au*O;W8{T-QOGehdjpT@&?Hz?{~mVLjz##nB) zv8~ssWycTQ*X=)jcdxQsw%T2>{j;rg>vlc4oTxwfWXZ9-ES3gY@c9#m@4DAlD0OvpB{|>yny6p= z;;nk}JMXQ9%l27DNuPK9x_NW*!DpW@&buX`8vN|o*Dq`1+rICPO#S%mWOlM;Z21(p zQ_fs?xbEej=N}KP+4SS)C*i;T(q{|4-|6dS)-x5>KdbXv{`n`~@|Wwn1H)ouwx&n9 zm#(?|%ue|G^mBc;!k-;GGk=ZTmp>)fk7{Vo6ys%=xl*aYUXT7wdigQvsCDzdRc|udb}!t2_}yXo z^F8k3wNpR;Wd45_+#XV0{7ZY=&HWA0`}9R^&Havjne-^)_t~`v*T3K7m3(hc<@Q;> z6V6mV`P$K8vH$1H8K3Xm>*!cf{r>si|MiO`K)v7wox`$+W#-vi%l*6BKGAFGqK96| zB~L0?ZgD@Bcvog;rd;>uTIZbe@-}yLdmlZT^g`+=^Lfu_0`xg}R&#(TxDCZpa#{Z|+FaG%H=#9Na zfp40#pGyV36Uo!7a%ki-Jot-t9jV5qkUgi^qJlb73ZHm?a1tQ z>EC**u~oL^uLUb+-upHqGDv29{Z$#^v*3}96v=l#&b`k1Yw=FM)?k+UkK-xI;9})~ zZkzSK%|^E2iw(c}>eQx{*=+pL-Dx+c1LBYE67PPT%d+`YG-b+^qnp?3_D_?kw=7qJ zCnuE-Sdw;Z8Wq$zEDH?~?$43$VQT?S7~L5S90pL~0}Y(f0D+ap!!|(n-HwWiO1io# zR4{QzvkSPSK2RQ=o}MmaU8bYNQ$9fhRz*PD$_?-5g=mS+ultqh;<9D?_T%jGH3EWd z)*d3@vCW$ASFT?_zR&e}C6uaK{l*tw95FpLEd5kSo`(ySp6OntlDz zo12>j1utH`Dtf$MzMtc;tV$QSwAv?a_xH=?fAamd)!%aV{C>AvP!QBw)ec+Jfl!1< zqz~?0y>v-v?%cV87r$RmULU_-PO#Qq?)IfiLV|)XORQ$inx%B8fV~r?A^$^cP1IJc zK3QuqK|%SN503xi`)%v~RQ&HhZf0tFbdhVf(&UpaT2oI|S0Y-%Co4ev&h979^ij*Z zv*Y4_jXe`VR2agBw&$C7zq#{kmWICm z`|Ltjo#>5fb`}LTRYtPnA1e;={a^&FJzWd|7zUtB)*}rm}bt1pT#boFAuhzZ0y|!}aJ@a>0a!)UbPQLwV)ry;6 z>gHJ0Yf4G$AHRP5+woPR*2=ZTS0sLYJ6me={ZoPYywCGnzQ3(bwb>=iR(~(6|FpRO z@oBG4MSL%O6}@v`_0v1`x8KihwR`V><#=25$JY}l-Z_^md-i!7XvX4xY@79t(?zw- z_sZ(3L&9=*tv$W>*VARy@3@~X;TKYtd|gl;ecjlzZTChS1NE;5Uqx(7`_sQgx+)gp z#N9i}OGB={>pFK&@%pUv{1c@%-!B!Eo1g!`UGwhGv$B%??^@Y|pYN)Vv)*Vq?aG^< zVe8)e&Hepx$K?F=`M>MpUVQ%NvUmPn?fCwlXZs4&^RpM8-ZlB~-6!*oFz&17DKD7* z^cUNT)n6w^?5Xf{aVasG+s$8|*O?kRH866k&b_WJB<$)jcK6rr^*3jh{CW9cUPS0-6D_Uj$EL-y zFZ%k-c`D!96T>@5hh7Qa8R^yty*}wYhcJ zk*>GR?i)|fU(HTr<_x-HeomBaC(uy@vVzuFNIhdvEW|-TviR*Qu@>m5Tq(gP8B{ zQ9 zuj*K8nw|82xBh2;Ro?$Rnf&D8yT6Lp=l}jA^3NvV z!5w~sYv&yw|N2qbZdWc=b6=+*=jS_f<+^+FMSolE&pqAuPn-Sv(Mwb3^Y2(&4a%^3 zJQe@%ZQ5e=E%vQU$=sj& zTWj(k-~M|m+ho2p+poWizAygbk$ol4TB!c_?AVXt>)&>(-oIn@f2NOB*8RUW|2}u` ze#EZ-u6O6{bFS{suD!M^->DlH_0{vwgX!;&-jm*2886q60vbj!d!+nsT3%;I$1i5< zr2pc}A7{P(nz64$X*L360&&v{zPkC?EZnb5Rme%U) z$2vozU6!f$<*e#F^=j(Ir<3hn)AQAC>D386?bcqra(Q{k^xAiaw+2S;we*YiaE;Cm zuKD=Uy>RdMYX#wvyLIgTJn}J#&+R&2zOF;{^gZbk9cT6pr(RwC7`?}6mqVJFG z{IzUH*-kyXJ3Dl;%<8RPShUB5U-Nh`y}kJMrb~05FWR%G=0d>K(+9S{_c%T|e~0!L zyO08n>EjuU#Q)2VW)gm z-SJPB88-6v@2)&Q=k$JdYoG4@ziCUpuT6Zeb^dqczSr-wEG4?Nvwqb-vH$vT){5A0 z+1vU5+Pm((3z?$7PUhRr%q5StN}}0sg>F_cll^5?Rb^bb_hE@nbdYfTa=q{I;S2lS zAOE#dxL&Jx|Mriv{okZO<#yfv7k_^o%&ty)sJ_yoa;dIX_8h|LKZ(r{BHJd{=!_TUI&l z`Y-3{zyII8`z>?I^y%*5@7F%(mp#BH7ybR~`QPz%I?t7__lwsCY+mv|bMa5Ln#O^i*nWhsd)P8%{@AcUaZd+gf*z?pqwS8Z` z*slG&Q{L~hzI1&0#(itsrC$F$Z)acq=cnB}-o0mP-v9sk&VBF8)nNa}?lVo`|6`k- z{P&09mzth;fxCA0*P3jv-|}8vIo4ef)M$9rb!y-5vQ$@{xIHTOZWizOZ_m*4_4C;U z=b2g0{S8R|DPuCPU%vcPar(aRXD`Y`FZ}Jh?)%zCuG%@LtN-quyKzfWp-lGs-xk}} zZ`1OddtdPM_HVXAZ;m~^8yLD<|M}Nvzp9p8$ld$((A>bdIJx-pJHPn(<*$bwtv)OJ zcY5fH#}_O1^J#q9sFU>L_K&iCNC|7YEpwgvy{(r&?rpVRywzOkZmn(Ik3a8r7(7^5 zyY{U5qxE&am;bx|*FN0*i~afwr)t$nvM)C-ybgTFnQ4ZU}5}+(yetePrJ2~k9LVNuj-vOb$78` z_`cUN885_V$@;!`OTGHcQGfHMO-kRk-Kn~A&|~`DtG^1TOb_q*Azs=Z7k<7s805EH z=K3jS=asKl<;{6l|8wJ<{+PpeUz%RsSQLJL1E{oW-}i6j)$MWi_Y1|X)Sdf_ABU$W zCxa^d`Yr!ow&rDDelEQ@?efWvjvc?QKKu7S{)G*X&HvVQ$uC~_J^jNk^KR4g(yG1F38Hf`?MFFQbJzr zoBjIn>4^K+oO{3id0zF;L;m}x_-7No|F`+Rc-=PUz_>WO7v-XSGW~hqA0LmfPvf!q zcJa=?k9+3x?Cq;Lw|0H!)7yTavFaTT|}>$6jcUah*4(yQ-lx=iJt z{p0Vm+%KnD5X&rkCqP)5e_rpsju#nL!dFG7emr}&e{=HR3X^H;ncaRxOnaYOV;x`J zo4!N(hxI$Fb@5&Gn+wvfEH%DZ_SL24{q)_B_Wyg=zddS;`M=Ar-HZ3-Eu7A-5D99x z@%~|3vGr{g&)h~UDqN%Y}y_5?dhMSx+Skq)iK_)I`(j#>0HUn zKTmu;`g>!jck);E+WSj-(s%sM3N8Kr`nl{ot~rwz9*+zR6_mEO6I?w#QyYJl?k3>HYlHclpesyWYF;{QqHeZTr`NWZVDBv1#l2 zs~7J*R3QZfq*J+gFN$(z+{yY~9-l$W&o^LpZ;>!ufauk4H1mFB!AVx!WvoC@{6 zIg)>GKliJ<*QN2tY~S4Vd-LjdtnLRzV$7S9F4>>wKhmFfUs(CC?6-yMqhCB_^biAe zXnyWw(9NP{<|n-%Jk#QE9>Upn=AFst=g_A)^FK&xBK#nD_;Lz^nGutchc$W z+xKPeEvziRmw(83uk6OG1FxU|4ZO+pJmp2y3`+2AD+Z(y=mb0I#tC4(tyK2S8dH5aVcr{1icdH*Z!`5&{sv22Rt-o;F_pPA2VW-mP=LVEW74e${UAv-+FxMrE+1;iT+5@UFQ}a`{a8$L+|&IbD|rUq-D=pxmzZ8 z?b*UV57t@O9(qt{efVz1dG~KctHSd7FPDZdTDnt_?|qc$)T_~p9zQ!!T2-8@bNfT& zmlP$d^|2l0)2{RVR@;+x^qNKG$7iqK$JxI4Y9GJTizQJMr)8 zO*7x!h>Ml9{#Q~OvVH5`I)9y&v2v!;$G`i=FMNIC=i_6GZT>U2@9yYWe?ML{RJ-ih z&yeCRCfAO;&(2D^*~Y9a_dEdHKdoK5eYv4oSh(BUY5b4AwEoK2GpQ^1xZTU$_v6pk z+Mg@6VV3W_9sl}k;9h>wUHf^fq@V13|Liw7SHGS2zw!L}@)%~(U7$?OoV_~v=eP5V z7Mlyt{L*W&EB)<)j~P1h_HB2+yMHuY|K8HR{#CT9`kC}QC8cd^|7+BJIJNLb<-@9&?Dsv)$IrR> zCi|beuKVQ^gG%>9zIU6P_Mcw$@O16QP0Osp*2M{1f0OIG{QLU7s+OqmVwqdJm8XU4 zcXpjx6|uiI|G&A}%r9SWY_2Q?4Y|xJ&->Rm$)~*L=gD;ufw7{ZQ$shtn|rrV?RY)w zx$?Qryr5f2;jz=1x!gKCRR;e*e!G=T^kT zT>NicU1Y13yab$VWZx-0`gPRa&GqT3efHA=UTjO-wP;sT;hTL^ejiWC|6cPty^G5dYrW(DzHfKUEe#C`(d!I- zz5Uq4;O%vsKQ?U7?|W>yeV^K?)2G=(1Gm~KaqS1Enkn!1&3^y*^o;x0wpadRx8*Xu zU&tHqBX`#Sx+}L!Rlns$%ZG+u-I#Q>&7x$H-6}1y{#Pexu*BC zS^Gex%k$@dZJuYXc`qy|IDdVVl;~9L-~XM1cP)Nz`~TagcR#l4zv-)A zXD4MHbk{O|JG6z@pvc85_`Rv*`1OrD7Mb00|6v%(u;ccnxz86bt2({lyzgDv>q*X` zu5WU5{#?Jt_#iH22eZVZIJtL5d*5EXc1hy5*|j6H?BnLVILz2kcQ==P@uIBQm{8^4#b5d%L<+H-6m9to$#Ki(!Vwa{If| z+0*p9U!|G`Mn_A}-uAxJINatIU&DJn@E|S&6&Kq=M=C*UCWv0@8*uO8x^?UPKj4Ry`+mY^cmDodb%|4c zzgl(uzEvfM-a9~~ew7*B@qNTo4&i;zYuoKP2O2Uj@0~3$?=-#xamwA@lJC?Cp+U8z z+Whccm2(AaTSe^I2 zV_r$@pVG$ZzrRQSGgVT0ci*J?%=!8^QQ0M>^8Noe)ID3UJpcWhp8k9PKkjJX=5#y- zYFf}XPt!YpzaC?~I5n?}`R?71&%W)v|EgfR-}htf?RBu2zSLr}vTb+$j~5wRwyo_t zE;Z}%>&yGK3?}W3OxPj)^Jjl-cJJi)zlOW2_x0_U{;*>AZTWYffih`RjaAC%J6vUle@5D$c#= zTUE8pk2g03+jq;at+$A?{F=FBm-XV^%T2${zb*BDL*g}wzLyUxo_=|_kZ{GIW=ggO`-~4mCpy0mT92ezxP*wr@Y)WZa*zt@J>__i$-(mvA-V{Jp)BE>jd&J+Gm%&n!NoCvacD=aHY1=~o{;yNHDw2EM{2OoF?d|R^N9rX% zBrjuj-{f@uy!oBK&%c|w`R}s(x1M)%Qta`y58u5nd(-8!wlS# z*ZkNm``%T}=;L+fxbzPm)BgYb*|uAL-E6_9*Ka-gyqJ5@E4Skt9=^+O+w)HS?%l$I z`@xGXmfgL0ySnzq>wZaPak?*S`CE=J}{;mD^@Pv&N+jYDWvo|A#++>~>tf-S+R&?A*eoAK(6X zxJz>5mZw!qf}|h4H$T(!KlgC|Z=~N}lX`#5=GNNT za`&TS#Z-5T`JtBITkq|VQ{63g?0eYsqx08mU6nZ1SGLxCoj;5NsU@*S^V zyyytg5-lw)h17zR-UX}-(Xz6#I%a=oY0%0SuU>T_+7;z1)~#FTu{7wh{5#MVoDO@?oYa9@kV^35ulYM*KoisKE#Eu0x<-@cP@ z;KmIxyOf)o)*PNx_u0v5Th2+dgk${=f3N%%mMGi5q`iFqrNW$Bw|7>bTlMJ0WXt+} zumjIceoLn9_{?W}u}|J?^^3zkkvc1*w!Gq=yXU6ybM=f}ZNJZ-PBB_pdcr#Uc#i!x zKl$+cQssHKN_G|Q4tst(@6Fja50uKVl#xf7C)O#fiP%PRTnU*PJpoXFL4-k7955zUVG z_W$$Pr%-4A`K5d9YgWq44xPDEe&w>l_&WvWS3mFhAKcsZd2`CfW!Xn}<(IB3&bais zx~QagTHfBNA9kusz55flJm;DY@6R6lA|aU1&dmP&@Z95^X(v-Ixh_vXb=x#oH|*ds zsk`rA1nz&lP|N;j!2EZ$OB@syaM%C#*w)mWweMrV+wbd6|MToCy8gzaVoqBV&(bvg zixabDxmf<}iukdG7cub;2(t}6Q9mSrw}oVWbsyyfLD<^`Qi z`&+Ttx%n@jsrc@_m89TUHm~PFPyv+FT%BYHX&%kFHc{^TlH=JLCoZV7-%hIMx4o^s`KHeF>-KLq?m6r~Wm;0$(YyO@ ze0{wCao(!umUrso(u%v*efP25V5)cO62B}n=X!6mJ8v~lg@i88KJ^$LfPb>iwOjXp zUgV=TdDij0kJqi<9PB^e?yA@9P~N-EMWtbVOVmCc}cVm)H?evs4%FvTr7X7?AhrgWhf5)danzw4c z-dytfT8fSQJFS#$DcLFq_0R0G(oQjpR*T)Ps2%!x)^7E?b~g*IKmF)itrMO;^-S94 zJ&)J*%fFjsfByN`?XlPUHm#qMwsGa7J5S=9{}u)=d*dIUv*UL7l$Bif3f-Ym^To~d z`{7uH1>N!blh!`4=Jos0*!ukN-0~NVI%%7w2nOw7n6&sHZ7+vflnLne)tIX4@pOF`aDR zonLgR#OUDnr_gjOc=69!fx~mJ-(BUuDR}Dl=kLFMUMiinx88d>f0(B2(KWT_l^)+d zA3aS&_qp-h-CteK{gaEe-|TMhw!iz`n`x?>MDwmKz1@H1!#;7%gd+R-QMNiUp+^v@cYXL;jO3QtIIBZ z&i?&TSakZ`&fPg1_WSSMyVq*Bntx?>ePDk6`d_gZ<2Qcg)x4ZF`Sj`ar(o%2ucu@Z zD1m?aazFU&|N9H}e*M-+v%9_quT)=6`>VXx`f6gsb6;q*yKI&`JeRS0PknFL z+a30A-~PE*r+Zq<>(@IcXi8L?wcqfLq{00T=lK6?3vb=#we)*++m`>?pPz7B-W)H0 zr6QM<0}}5#V1P&Buq-U5Co(4QfTeCFqXeFEm;+qcdLH({bew1~yaUrAC~44U4ReJO z^D%l@^6eDD#e#e1#btswi7+rQ82kpWodq>8m?6ve85kINAWLgO(vXcMpu?jYC{TD{ z4R__=tm^vKJiQ8k-Tl8VM_)b5`hMlxzoJ}~f7h4rNrF}-f~t6gq>-}~9Z{OD} zILFF;f7Pw~KOM^J{;s=a7xB~U`GkjjAg3}gY<_pm`u)n}gSX9Z*{)AM$iD0Ax!ouR zMb&*>ZYh8M*{*5ve_u{LrwADbVqi#{fv8T zJjYhmY<1UZIiKpAHAeFP<&VvN{~Ua-Qp3(81>fEH%M+)H-AX#_f9}&=_BY0Q*8g!KhC#q82-y#yl47+jVE%~UVJ@W^iO`amAKB81H98~yt|Ic{l4F) z@ulSZl>XmgyyfSjdrxiLbD&^))RN1&?^=#a*-Okkn>I7}Slf=T>AO@t)y@A!vW9u5 z+&KB)Lpy9uz~alZzkK?5+-GCT>&vCtQ^aiFrC%(6)?1aQaW!Y!&77;Vw$_IwwuMF> zUHYm0Fjv1-^7r{a_GVgh8Bf{#=**Pqrgf1TlTR-B@+YZwlg+31Z=QZVAHQLnn|;`y zm;GCHvGyXs~yns=04 zq-^`D-{t@H+;3I3%7q-8=Y2o1{g0~mvYI>FL8BGd_bQ*7dvNzVolNhq-d|+HJA34F z_T8!vJy;OXySgaFXy%md&!XOx9iNt>`o|+@(dpyzn-`jX+MC}0ZMw_-i(j{@oP4Y? z{bWi|)-~~0-`hpFzP$dpqd!XScmGzcn4m?Q&$}J#lm4cCeA1$;?eo<3o_TI1YMJ+K z`l~l@gX`<}pZcuqe0T4}6Cc}emASKNMt5FITc&k%)@rl+H>_{A&7XJm?DB~VFW=p# zZB@4Pv^d}Ky=K*$ohNPCt`V#@*;9VqJ>7Z>o#$`YFFqb``uMY9;f~oSU(Y!4-b&W` z*u2?$CoO60TX>>U(n3!5X;8_&M^hl+ zhWr#K$DiNcO?$k5w$l5C-;WbpcYo`-`>*^a*Y5Yn+IH{zpW4Y&xBq_#SJkn5mfw$G z<|=w@_piyvU-Du*}Jz{g{w{W^xl4NvP$n4Gnad@>1SvE{5hjw_RM{KAFK4& zcK0q6w*4CgJ`Kkdl6 z;*>2KZ(dIL|LASR;(lSC^8dxIe+s_qyNi~|^vEiIS)%jK@V7kA$^A7Ot;BVvyneU9 z=6&kw*Y*F~51sGx`@JLoX@R=u?9G=a@!3eW-d?`9e$l~YTc16CQBbZ|wmV$*-JQA7 z%Fa_&waa!d*zex{dVAKyvr@I+Z$AIjGU@*mH~-I8GtY)u9}k*3?Y#EA)$H*F9@2}NA3Z9K-tzmvwi|D6?eT2eZ7R&ZPWCci zx$ybpM{b{aQmSHQfBybb^Ow7(OTJrH8GG`dKiJm?x+|ylpR$X-yy(K>=49qO`{hD+ zRL39seYRxB>wk|0Tj%3`5^q$@9=H8pDw4PF-?h)-<<9%ZZT}rPz2}_sMMs_B>5Jc+@$_0< zHGAhSyUQf$#;*DH!add2wshi0?c%jglm0kQPcPl!U1oPkG5?L3 z``mkyd;2<{pLm_qBb)sFtDNVg*B5?f*S}D3jhuPy#{JUm>?)pp^Og6%n-#jn=e1qD>gJm| z-CF}{7cX35@AvWg923#poQoBmdbhtu#y!~>oD&td$?KFs3x_44zd6CZx$KB@X2Q2fN*>Wok7rDsEB&)?*ZbK@%J=?#{dv*QzNjZ@y{#__DEWnr_v`hj|B`O87MqRdNL)*wfvL( zvI%K+cUqgBZ+*M&KXqc(#H-&HdgWVBjLdT%LP$@l^djWwu)5w%Tgl z@cC=LR zrhn!K#Y@9Q!#jH$56=x$t@?g#b=9WzE}GYBdjH3^xlEV5_}W6=%^?09=u~nB2Djq{ z#|ys4KP%-4RiBosU3_t0roQna^U@u&^&w4FhQ-M{l6QdJ#n8ZLcn7=z2ikvt^&k=) zc*?>{*vd{->-Vx zJQbzE?-aKmq!45pw1;tj&+2X8!!@3K-G9jvayAp?eVb=BJE}J=4=dYk8s9%y zlFzceZOixFpV+4L*79!|PrKv$E8Br z&EtK1A=9(Z|9q$UzWnzc&)7ZoKTh@A%R`2h85s7|@)+JRm3iH@`^??Ch^JG3PrjEv z%lz?PvEq+2&a>9$!h$Ye(wVRP-$HIJ-L)NmYgg_IN}uBwYq87y>C&ZH-&spn?h9gn z$8+TFvyl1D&->qom!{6llKS@YVt~Wl@>yH5qt~9&eqFLF^-XNey?^Rf)o&JLX`K#@ zi(I_;`MYDb?VbHUKmUumDxcTA+xL8H>?-RERxeFsSFOL2nLb}{eolyQ=}xWJWviB+ zHZE)aup)1s{kq(%qFU?MTwEAD-9$#loVV@ouDWj>Sz4zFuuh94FE>AsP%f-gL@w6IW`O~Yr zOU^%>c4+agZTrKXUgfo_c(|@+;f6c@`X}O|*8RJ9;>XpyH7>s9QKkkaI_cMKuTGh| z>f}rBUo-w4T&<J?6SL?9WzuM%&?X}O6tsl4T-eznaTEE0|Z?jzG z-M?1**N3sM`@a9kP0;=+28M<}$-EuX@7@O_`|kW^Vwp5OcGdcj!yA8;?^cz1_w8=U zv43UT%~!1{dcUK(B_u8@{PG0*ho5(BUmUf2cGdElGs;(=T7A|ry24uP9}*R|c;ba8 z+jsfa=rulkz3KMbPwh)CtO$O(v@Eu?*S3Gb{@|r$yYs5uM7j7@?76b8*fzQO!H@Sl zxO=Ta1H)DxEPQ|AGk;t_>fN6$>p^EfGcYiGo~+om`_iVO(2$T7i}v^|O%1gw+NSz$ z@qA(TT`tpo|J=S^AM$i6`=fW41LBq$Hz&Ve^*Ve1`p?Vzv+u8ayGmF8>bJ>vJ^R%? z|6c#Tvh07Y=cNO0nK#z^n|$22Sb6QH+i#254}apHJN<6lvIi}D*Kgbv)B85>=iRd) zr}s*;9Op0pxA60(>C;y4+gBG;x+>RV;)k7($WN#AU| zc&@h5ox9dsqo?w=m%M%$ytCGE>-+UrzX=EPmoIE^ewupqQ_G=UmjaefzAL9XDQAZ? zSKCwh9=>wncf~7q#q|2$`NSVP;cncjkINPFc1YVSzqBdqqp>K&!hADlo^s*+kMkDY zlzZpoINj@Q+19?EW9w$0EKv8<-JMnPCv*L(Q^NH=W*2LZ^OrBYXg780t5e=9gZ4ujMGO_id#4_bwRjTfnz?e__exdI z=DFLqZeEn*c6jdc-&3?+ZChD(f3Kwd{f~#|s@U4>jGg-R_?34Bpf3FWH|s;s-g|cA z?dHDiQ3vE}eSrhj6+umIz>!YWpF5URh?_on;ti`%tue_#C4bS@C zul}W@`~jp3wkPme&5qgmP50WhbXQMSKY2U_BHnQGK!LgQ!wK&14%*GV9lm<5z5U$R z%b^v5xy<3aJUegquUfOl>33b0->=0Y5ceO*NrYA!)E|9f;CV5%&AR=t;{N;gtNl43 z7FOK;`M1tercX29_-VoOuT@VAEUw(V=?Ndb+dSp)!wJ`4*Zzc!I32i?K#2<%{AY1^ VaMUILBC8*7#JE}Fff!FFfhDIU|_JC!N4G1FlSew4FdxMTavfC z3j-MZblzRhz`(#>;_2(k{(xD4Q^As>lG}rUp@G5E#WAGf)|2bC$_n{r%z0#-?8w|JKBSoxu>l(Y*CBo5_QXQd$N| zGnl}F>e}u*-D}ys)cbBL91L}43HvImAQ-?1l51GDuF5Vb{$NluOZZpWh^y{1p1f~3 zb^ka!NRpw~-h}z%L*|#RT7Tfw^@Zn7O4L9#9=eg`?!N+F5CzB1L~eVS8}Q`yhf~k@uC0-b_-Vc3le>kh0x0kq7-TY6bY6H}fmM2m0ky25XKF#w$iN^qdDpikMdkAIS^`UX*S!*nx~jTi z)%%^xYWBv(p5_Ic5g>o(q*hF;{XCY4c|6ibx#^{%vNksvVE= z79@Wvs4jQbEN9ltKdiof+h?^6tJYU8iCG(b{rT%CNMJFbL`huh0nZGaW1mp>Glh!?jAUGJ#ngjv({pk2#9f4D`#6< zaL>OJdHim}smOxR>j9@<=icF5Q}b7|W*^6rSK50%Z94~1dar2t_mJGzv+mTa+xB!G zTX?CY(~Fb;RCe;Mky2W-Dmx(b{=?ANZQuxCSaD`@!K!V!HKIY4QZYZPIu>01${dsP zf-|1?vvK9dzU9Y1Z0p;13lbS7yzhA47H?g9viW&d^t*FLJ=K33~rQz5~@rNO~zfCHC>``}|x_Z99PI38*1^P~_qptH7Y*?g! zrQG1^45!s?H_XB6SH!QYvcFn-|6WVzx@n>RZccZcwm9|PijDJk@o|26dMD&vTj1BL zzfVnmzSl7VoM;>#KU>|f%qqSm^j(YpJC@LORna@8qpq%8yNW$*p9I&7%!sG&ig_iY zuBPi7gKfA_VfjmC->*lR`dZ=k)?DlM@NSgRE#4Nh?i%lkZ!NoDDX&>|I@y0-@$!B5 z*nC++z!KwpdbLa00zisu^c476?gj07@ zC#5f(>R%Pfdg8CZG5N%)+s{`9@r8da{yImUV-HwI#-3MF8auhx*+`~6Up1$%D#Vg| z^{V!ue_U&Q?wv^t{p;|~F8+GLsc_r%cYfZy`>S%d9zvC7->?xVbfr@s0+{)e^lomT&n(0bul%efq^%^^4IG|wBoYo%9LuUdDQ zRkk(wU0dkAGx<-~)W)m}pDq`+Z$`-7>-S@Ii@)8tX_S6?Z>~OA--RC)!ZJH&HQWt% zW~>b~4?j5VPEE{ms~y4-JB45E5dL(fJmRV6jHh|BudMcqgLPQ!yiyvmVDX1jPZDM> z-#hcpTi?*>@6Vlj;Fs~#=)|hmGGXha_Wd%--)HWU@HCI%`76tM!=#yDogb#Ry_*>_ zclTkY*w&D*Yu7Cd-8=PWXu{LX_gdl3pPxLbEI+JO6$Qyo>3_cdyEA)UsQSFs+2^&& zPd`67Cv;s^;MLTO1($bSapzwx%wD?XOyY{Evu4c-_kRk}lrc$2NGR&crW-exb6IgM zmdaVDyLs~SSC@9L`eo#=?g=S)8s3MZc5G!U1!itu-f4p5JO4w)OZs9>FiOwl{{x+VO7KcDyAN9109y56_)&D)Rj5SN(g> zHrxq|PI!7zB_dDkT%hXf7>FSZ7EiU7Oqy+feOtWyc}wl?)2a7-cD?gF@#Lk1C&Y{& zVPEeYeU}jVv^4wo&TXAH=E`1zTOohWNPKs5>71`Sinc$WqHeo-)tc8Ym%M)0 z6JDZTYyHt!Q50;J!(Zc_KZ>^0eN8YUyuZ73nhLOxnL5wwkkPn^!Mb5mEV*wX2KgdwC&4{OY&j?W-r8 ze3B6B&Ny}bH1AbbDiYhAR z{qTR8+~C_24pm8uy~w%rbr;X?V$=MoS(Wqd?*oSj!@lR9W{=Qyn7cRy<_xYYM5XyL7EpG|fup8$mz1H%Vf_nF}b>CO1F7b2EOg@2_W>2~S`C37tB< z(wNy6Y|n?ubM`pp-rMM3|HeBs%x@nTSGTI?!$ifdJh6rAWQDFQuVy#x=J{M6_%P<{ zynv~e+#6&*rZJWEx3ODst+^ws^y1@^NU%W%Zk#&3_E+gox3#x61V0Un?tT85t7}Sl zz>+6hN_1m(Mmqm4y?R9OuZTdx$MTC0XISrDv*)GZQ>_I>*&GR9Ti<=z@G0$|mjCv} z?V$7$!0+XKddl4J1%H~7rcRrBI>kuSM8zXeaAB61q~7FC`@@VOp#dRl`1i*xnc^&& zw>Ca5@9O*P?XMG}cInwx&pG7mEVX6N)3DV=pSx9d#|l1N$i=nh{mp)2@2j$&M{P)K%TU#%)A|fm%XjR(8#II6eo|p1Zn^%d3&7DwW z;k;k({tC^->?R?_n%3s~FFkHzvwp|~Hh0 zqw3q6IR4Nt8=CBD91WBHGB7YC=qycrdTahP#qOI+7`k0MKkAAK$wYjt$@%P&`uv&p z+l*~KYP*B@dIhu-KafB);FHpa$4`&meYE6nXf@LNAjtY+7oW3Ogftup0rym^pMueANC=O zXS=T2vBc+i(Wj~L5h}CKUQ4NtTpPJNO!DPRtG{0^i;79DYSz@e_4BxVS9f=EpZ<@d z%VdAA`crf5Ng{92owL^8u38=Z#W`2#amlkK3%fY@FFup~{q^kn)hU~=p3yjUdhM+( z$@|^-^Q4q}&EDTw?tM;b`H>&f{H|+nzxCzeAJ+l^HqXnr_GIcck-89*c1Wo1)g{<)&{m>GL=Gu&s`P zfg!`{6L(jNk>}aPheU*Ao)qle5oTyK`|PIMZ%^rJd@A4gS54P6RMxsIB*mpgN346& zt?k!aK0f{{9ws=+w6gN&x%bCy+4)YsQi=F1)-$v+J+y za^3Rl`uk z^H%%LHrG~Aa7cFR52~!J?EPE&_3QRuf4bLyxwF~-MX&k2i>t0?iwY!M{85-(^0)MQ z#@Sh=zaA|1pE7IKvTeD-C8vF_uZ-TlE_B=c&&O_8y*?Y6B`6)8I$z)B|CW1|bi@0Zsk&9!W7_V|7M{pxl8*Qep1zn;0=|9a{4^z6&aba(w&^ttq->vQi( ze6m(+%J0ox{Z-oRRNCg1{`2qc%KLTItHb`Ds-d;DyZzri4%*@C!af}oiPRA*eSOPy z`<pZM*Ms{7A;}b8|r*+0AKZ zvuxtS!j^5#zMl1co-G#-Psnn=xh4e%7-pVLllAq#{>*oF$%_w(GtZ`#zPaFdxQ%x; z$L@W9-&ucsbJ2Ns`TJ`RmEB9;?R>6fqT(WLmUCg>-`}AjAxn;wy){WX!okWeZy*2k z>C>o9B`d$ZzrX&$gM?lQyO_7Pwtg-*UdZU`)}r+{!tdz$`+v7ZJ#POVnpoJm?|1H2 zz9n*3|8D8E z&lmgkp5LhY@pETrU7noiI?3>PHxuT|{kS6?ucdzeV@y=))2F{4tZv=)=MHDq{0plb zPkm8Ow_P)bS8~n1+SGkgY!Qo}PhBk+Hjl;gUW=dI-|Gi&ZGAm;e*A)m%57STc7C3o zZ?|S#yrlJd$+BfH^Xq>v|Mcn8mqYdQFTUO!AGSWuc1zOJRZ-t(PMx~eUA{Ibc$v?Y z>i1_Zs*1<2$lv$Z@%z313-iHXE70=Af_LB4W-%UT6 za;dxinyr~y)c;@CeWp&ECU@UV-97vI+Ur{~r@#1H{`^Jj^Z7xAo*VzY->9Ct{rc@E z{}~tcHNKmU31+^L{;KG~9&s?#%0P0_rywR$_BihB6Xy1T!= zzPi1A{j%7ynM%q^TT)&IEtR!ea&ofT%Sqk(VXw_{MFL({iY@#_Fqm`RN%qyKquFus(kai zyLf`bzWrxfn;co0CH8Q~Vb_I|Yp=GN3m-~bqQbJeo>InDOTyN~terIJ|6Psz zeP8Fj+4Q=R{atX(>}y>e9M^YjTx^>4q$BEk=JwmA*XM3uS-*cD7boX6%k=pRH*5%) zI%Ud>`2V~7b8l@4^YPho&gOAQYD!wx|HhQ*Pq*BDyX*J6{TUw?G;(oq1>N7b_v-rm z{I#*$7oPh%x$nRGv!>7I1Lxn{DRp=IzJ(VQY>3*LwUS%k!k?W_CHwxqzooXWpkkO|q2lp& z# zqM}X5dgRt_*kI7w+PX4-zTK_*2R~YF#O^K&J>DlPDj=|6nr@Vao}QoN%h3A`WiRhU zu8rP4?PyY9S=lyF&JJAcrfFprb@1T9R~PqIPu29Q`u=Y1w%prV3JMOg)+GUsj*P*L zCW0q3UsnC^z7J~8$<1Be7N)v1byHMsmgwymP?bFWar>@UQzKPx8Jv8#q_}st^Ao8a zM(3ZGHWmHdP>|catqB~Lw;xxoN&Izqr(Vh2^>ZFQ5?ULzH!M8fbZyej6@kiM?){d} zdb-L~%KF)l4f{)9n`a#Pu&}GAqoDe};#9lNgDFNUD?dN$>g)@1SQ@XT?zCi0a%7PD z_1`?aylX!dmy~ST_P*dxCeOPo>o;9nyShwUM_2dquF}_~2U(woX_h-UG=M6uzPY$a7%qqq0!jg84y*G8My{y)tB>dMN=IcBqS z%w|8U``|dWbn&7^DxOQ1E(J9Jyu7`G%gVNKadV3X=FaLrHTmZA=ko6t7CrjwoU66p z(n>HTa_u!YeDCMS~fnmyVbJJ zOo;P)zHD{(j5I;MYNe-7L^ZZmrW`%L@vQRH$>A>w;x}HLxQf4am%8THfU9v~mX)oW zZvDHy*koDc)$hO0E>;o|6?}E=pL9?_LW7^I{fdQrGnIeoixb_d(1fBO76G;eFxz2oyU?;W3iwW97x$K&}{6Q`AV@Sm>#~e$t%s^keHw~>~b|Osj0r@am)-14aZcBY(g3v88=0(wVE?=^`S*Us$2S2a@cTn zdu_2djhz%*wtMff*}Io5TeHTevGMxEwutw5zXg+RdD6sng?DEm*Kh zvGHu$7Dm+m9ACoA%VMPS0j1D`qs$`O_>w+TVN~m%9mX|9Kq}LI&aOd3OUSPc72xbZkczh zy@Qm~2=VQ=!EpR@lHTg$+}P;nr| zXk~Fy_FKDxh_cnbm8?f^?bP>eWE8vkrfll;+bKq#X1in4CVNUoR)Ra`J3dw^T-m;7 zk4>#@{XVuY@7MdywK|z&_PRfIcgohABI4r9FI))N>g#dgk*c>z$q9kh)>chh+t`JP ziCo;gp?P`h+IXdxP1B8jbzz~iRn3nLx75|FY~o5vwg?FcZOOT5)GKEjrKqTQYj5>- zAz@)r$w+(KpoAQE*617S$^fA zbNkh$+3EdlK1>V@2P$;Lx_7A@U0oS6<4oG*H)SigoQeAAW}=|rP^dfWbdJ%hm>JRb7MqEte)q^>0i*u4QBtWdG;K zV!K)9{?g`oA(4?Yo0^(T3LZG<#_friU-xb1x3~A#@7Q56{kV*M-ke3rNnZ~0+rN11 zZx>kQ#&-DctQBY0#O(e3lSx!8bnf(uGZW%wS!}9%wz6nhWXg=Tudknd___CF``7#C z`!6lluU)dfKJsNj-=2qmcWY`XtvPu5y?)}tgQ03O`MEj6d_JGhidVPeQ8qZRDD!zw zaL{cw{?#$5Mq71@zwBAA{Cv-;>N{@}pZc!XoGim0`p%^3_B6e}v0Omp>ycCbecSd;h7F zN#B;sga+LX>&i$H-k`3cqM>;3)5xsHVCj^%2- zuikGj@|C&i&mPoY^)<6*(iOdRt!h0PKQ^45|Et9NQh)cgtXDf6L)B*YbMUV;x*y@t z;5vPtt)J|ztslb!vtP%C{q#yN!&DO>2Gx+%11^YgM2SX?~|o-N{?0UE>`%f(I{43{YZp#(^ za>v+T!^p_#f7OTkv&xQct@`qDc}PISibIDU3%`yv|C{yo-PK@FTX)^ey2W+Bb0@yr z`C5PLx!bIuqWEBrk*1MNh;H&M&1ID-t`VxT|3fzPy^UIZCu{P}oS>pv<@rI370(W@ z7t=J~AJF`(Byj$_!#JjMAHyk3r#Z{Pwo)?3Lc<<m^6pR3`0nuBl@aL<@6Uldxn3oAxi>e?SXG;U zB6-*LqMDjLH&62U!+8z1`Rh!&AjkHq4aft{rp#~3zm7Gms`Hw?q?)x>rts|`)4maq~*!AA)@5ej7F(z z`*)kYzq3B}cTlO0wLfe9xl(aCu|+eUO?-7p(Xn=y>dMHJ%QH8xnpkAUbK$x0vfoP% z)V)YdE&H(9($v)S=6zn!$e~1F?e`5#1u@QFH%wZxr%7q4{OLgV|7SB>)RYtz7jB>P zech_H=AmEXLg#(iG>PZZ;ZwH_`+a&qnS~)^lG0&kQAxR1?~@oNz3#m6dY68`=^LL6 z=$s3~zh`Hcyyl(t(n6Z=#srQ{Ag?hnylPixoT|8KVcVO;)S{1&86Ae6!}*bZu}s=b z8lZ8k#u;bTZsxT87Eph%Bx&=_RI|_5#C-eA4>QNUJ$>pFCKuJY^+Ye681l>!6Wbh6hn8E;~Mb;+`@&-Xnwc z3iIZhOC~%}aCK|>y<4N<;?F0+46&Ij4x9>g1;xHaqLF9d#D`s7PtKY!EVyUtq4Ctm z*>6|eUeGWb0|SGB+5QxZeSB+t^7M>-Ks{{+1_pvbuF2)JXu%ug^DB5rC*}b4q~N$>6LAb!x*xfe47k0|6XsAjV~HFbC%C#c%@7{_W$|Ry}uh0>*K6tLDs+(T&*=aCy1^^-Za#rS|wdefqTO z-OlHK?wUY?uQ#k=Klg*R%IuJ$?0x6&`b~%dah+9=FQ)oWfE`o>3XpxmwnAM zudE3CXSWvO;@)zP2a8<0RXoGvYfD`to}M{3*ShrS)bLl+h^hgd2OltTXlAZ zp>y@OH!C;Y6Ah19C|~!((bCdVOIP>mw%pra9yIgsGQFa2V-vG{ZrQAF@9wVlxBq)3 zv+|DRxoNu5C4awO&ptcL6r_4%^6@XfUat?=+`PPW&;NhFzdoHF|LVoX#UQzBYokkl zzulhw{M=lG>x?&O>FZygsO+xdXZWJ`FyUP_-|yR4O4{MEJS{HZE?|Nr}aYg_K@%a5Ntefsj4 zbbd%cz=X83vzFeub0@0Wd1v*U<@4*JmM&ci>gCz}c)`0d!5I>->=_4 zY0@MSNy(KjFE3vmzCLc!5>{?83*G3%#DzjaLMFMlOrAb_mi6t;O)g&EwVV2OA3u5S z+`1oI4p+b1>3(-tX>dr$6uo^vl8zoddi4g#(GfaQ1_=!+FP~12zt+UcePw%o{N0+* zXW_v+Nh&izR6=6Kj2RN1m+tMYj$Jo@=FFF0DrcV!OWynK?d|Z$<<9MVla}=K@GSqW zrLR9-CAR!-X;)|GMNrWG`BT&Ww6JW>sn@Eisy~r*#G65&F8PR@k)RBaF{>) z)s>Z1ACHQ!W`P!e|1N1TYkNvr7A;Z9e0OK3magtpmAlpN_kx1 zxw%HZ{!d``^>u4MeSO?-?-k_Ap(Zw6!OzY|Xm5D#>q+`n(D!c0QSay1IQJ zA9X2~3ak5-?CwdQTRLr5`TKSG`~Pn9N_hIN5L7(;_)+0`iCcfqf@XGpEqnWT{e3?c z1qBE1U6ou|xN+UCS6a27PO5LZ{dSf`;i6yP-fDZ^+L}FmzdxjSZ(#Zp%aC9C>WU}7 z?UxB4uWik~{%Y6jb*ne}J(ctN|LgkxlE=N~S(lgjg1okB&Gl8G+H)(P&79PCUb7S= z^ZD6XtN(vKuU=FBa_RI{Y3xV=%gx8;Ju;_LkXf0lbis{7BoQ=kqB(gTd%DJe@{3-|c)pZ?}zR&2+t3lgvvhQ>RVSQdf6ZRaNEU_PGIQq2PoIjm=HHJqzf;f*s!e8|eb)6=&1c4f$}$6wys zy870(+|^H>q&$88Tw71iul!D7yO6N(*22ebzB7$nWv$CfcK5x#z5V)z#KTi2PFx7G zO-04Uw(83T`+pz#dFAc)JX{A_`o_R;L1A9)x0~VrYckeZwLyxW^Pug3FTdvd6p`7O&e z5Jd$=uqFz&dY|gGH@r&5Y(bFI81Plw@awt#f6%a=Wo-JhGc$jEyPaQKcINc*`^%=M z?GMc_-IaIDw(9-i^RIIMTb!Gly?kHDezn@#UNaH@+ZX14_3`$;{B(N!x;Jm$R9UwL zo=bMVay4-7-^%#POMGrx&rhDw_zr6A_ACx$3wyu+|310;KOePDgEGR+&FSHhW!GcN zGoPNCy7k@RyzQs6wq9E))7~$0)w$npZSc8$KFaFz)@EMLzj}VZ-nvbFpyDHE^Uct> zxVWc3>uvt*kgNW6lr7V|{8aa^$KBa{4!*q)?`83%f-O`zaG&*q+j76TTT)I=>YDHE z?LBqUq(y7itm#T^ZEf}P_YXhbC#&k&Z}%%>YOPMx7LV80)?U6_e*bN#B%iF^s@3_s zf*&96xo~^E?Rv3|hEcogChzyJ<9_=a4|1RR zRR->Ub-i!1x*1Z*Om#rk#;^dw>7_MdedVYEC?O zaIm@bm}Gj!xjB|mI|>%QDch~L|4$LGyj@KF&(j|jmhadRu{rJRrB$J;LCu)#bvxad z+4%(s{qnAND(4dAFz9r0$GIY~@YXsxK%1zgnGNKjm!N^#_K_UrzB% z{(9r^ck8=#m#4k0s(yDI6u3-GOeUq5EdGA&i%v27|Gxj%mc#C)-)s4^kG}fa)tR@> zI)886Wc8kptM;_Ix>jXgi~jZPI4c)7@70&V>RHEl!%rt|T(Mz;hyLDg+v=jX_@t($ zN?GP?c(>{&o_%jmWz^oPt*1_( zzPdi%-gmZ{@7Y`jE{rC(oPe?6tW{>9hp@#_QcO`0TB`|s!T zsEtXjMa9LY1rHoztKV+z>gc$zE_U~quh-+Ve}8+sDMCleFsWtTzF)7p%w3Gr&s}+O zaq-sD*I{ep_s30~IC1N|*RQVkS>OKm=kxhl_VxRUii<&m*s-NoLx27I{XTo|vzV!u zh3CClz0F8XMJ40enVC{XDIMGL@2@*M+gw{q%WHaU*-W<{iNM18nlBgKqjr_7baHYs zsrr%;TXNBLQ-qG+dH1hoYrOZSpPREX*w4}x)FS@&_V(8&ll`@fj4mbajFAO3U*GTj zJ}+!d#KMja4qi#4BdL-xvB&4d#IJiN>3?qH>c>?<;r_R8Ufufm)xJ;P>dL-Uy?Yb& zb&Kqu(*L`yrfoJW4y%uk4L-N-u37G_jMvxJRy}BBSMgjOw)Rr}|KIVpf4^Mr>h7Mb z0;;WdJ)IVPWp()auHUCFzK>7;`teH?D+7bW;|m%8_ug9>tp4`?{`g5-a&McJzP#jm zcUS4`wOb#a~2macF#CF>3wWl=%g*__ZfZXn)un*ScdD{e9b@m z|6RIn%%(M`tWHl`f64Xv{H62v{|hjWtKRwV&uIala_?X*M_q5%Ux;aw_5>jChO{6z3guvn{5AXhHdq>Z8MfNm8R{d6Uv~GVlkbF2cK#xqQl(nem)VNTYS!P zmTmR6sBJkfx5TXLGtIuHvvk?AR~Oyoum1mg|G%cffzrPB=Stta`}*|NypLP%&XK)- zc~{k?bL-a0hVR)sU-oYFxl^ysT9z;Gef{`fd70hZtut2_Kkd#wb#v?O{q^;4Z*BEf zRaKp|#CNutrlzK+w0YhXm8Hv;ty-|aA$E7!+M>S}zy7{nWj8NwHE0ZBpPO_<>6;sY zCr_T#($u_ou$lep&f@g1FD^RY-kv{QMb@I=Kw`qvGm`0Z7XJJDTU$fJL)on-AT4c~ zm$&!oHObp=``fIDFe`d=Q_AL<39nr7tZVD;KbdSbul(A|Syq*MoSdDmtadl&mAl~| zz3p#c>Rj&gw!zA6d_ffzGtSvP7Abvs#c{vxDygiU!S`y}`LZrv60Le6|9wSjcf{5l z!PVL8c0_QC>0Z9~_vEkKkMDmSkN>}@<%e08p!8z)_xpo)m%YFGX=?Ur8Er$uKu=H4 zUw^;fSM}Uo{(joktkC!O_D-EOYn5sCwTxe1US?fgHFcJG{yOQr9gZhYp1if?gD>uDDeTbq`JMTB+Pn+bRGuJ0&(d}URrcKh$b<#XN@mB+6;Wl{MlX_~Wlv-`P?4 z>e|}bO-)U6rk%dJkx$lYiD~w=7rS1s3yz7IvuM#Gle{|?)3497zP@qy_34|dkIgPC zE{Vy1^~%%QdUsjO$D@B^YU}$>z4EmVxjy0h{>90b*~aDPrs|)1@aERr3k#bM9X_mG zr=EXzS7`d&(lFPAt);KSzP`D+`BZkx;`{sGT{(U^8#Ih^?7Bufi`Vh$2;KO7F~7gP z4Gs#L#Kg>eb)hr+(`V1LjE#dcGc)5@!=|>Yu(GmxPC9k^w6>gg(Cr@u30nHGP#oS$`${`yREkYVWsq)(d*hBzI+BKK0T}H~NT{^5=-D zsqdzk>%QG^>hx*Thg-N;=ghvL=h)6CJMm;nP}1&gqNkM)9lpBBm3yhIUC?5l;AK7+ zzu&K4e{!;V_R%g;Q1(2Nw)xWK%c({)wc46Jf+8YjELyyH>b!aH0&mZ`5uTLvcJDDR zZtkzI*YD3dJx$lk(-Smh9JM9mVL^T0xvkb(`Ot-6KzgoS1-=(?b_f|48v%UCq zT0cA_WQzZ(mp!|Gf7;S>@#00$&_Y$!t~Ft+^L9LJ(>j0r=+T`v^8416Kb12)ck1b@ z2uVrFNlRK^&z*X8c3HtP#rOYD9WT0;HgC@AUHihUc9;GB`g*x;^tKhLr>A9ITQif5M`D5b zy$Wa0EbOk*)xW;IjZVGaSNDHc@cdnn+&s@s7CgLkds}Ys_Po0)o?_juvAfHzPEz#- z^|W8S$XNb+L-?!0C!HHM1n|mR1$?&qAEn&RUsi2B*>ltBy~$B)!(wY6%f7m_vU%OE zH%z7Pt~j3G`(@YV+#Ivr-`@FOTfi84pJhkzy=!ZuPbF>4IJo_@h@f2D)19`}-%sal z*H+c_?ab}pe^OgRBgD;Z*{v<>ELZ-$u+aJIzu)h*RaITHudP}6BV>)3Zq$jq?XOQv zRL;8mtfC++BqZc1Z%{(Qf>WnX#mrkgV}``dw`H(#bie0`Y;O(ugmqCS4 z+1p#7-t@gWS?jmt-VWP-uWB_HH#evd-TU=g^sdK!)>&7MPk;KQB>vo~h?#fu!o9q@ zs=mBfc;iMyq>dP#oKG|JgE_vUzYFmDN-tyPX z3=9WmNWGnKV8sfJqeqTpe0+5D)xEvdM?by0yF2^gp;o=>@S{hLfacVG{`@KWIlto3 zy4!hIj``mH^5paSS05&V$B}M*ojoN!Kx1;V|D3Fwi(0?Exx0SOoS3KLA{KY+9TO)` z;$QY^j`6Zp{_Ev#?I~@)mb=0-=iT)C(=wi~vpscM|AP1C`$3@fHI|P>`cL29nLNp@ zS7H(SzrR!XmMvMiV~5M?Yk3#;F|%J?nLO!OpVYGB^Q!{e`Q)!|Opg4uU;Y2;KG|E@ zPd3bAjBs#h0M(!Tc0U{x6&17Y@7ufNasCrFKA9Ef_iKVBB_&UtJb7`BW$}~=69PWY z|F&a?#oE~2VMmW1wW|2A!0zvt%Tc%04GjbT{`z|P_4@tmwrnwZ`uzFp-S78ZzPQ*u zG$v+^b30$=pC2DzU0T{*_WoY1q0Z8Mx%cSCLIB}u={y&#qe!R1@ zFLveIJ=e<4S5)_9KlY8io0}efy>E4K)b-yxf9-v`W=&}>dwNanf9uC<&fc*M-?w9# z-<)vw>v{M0)q*Oe(%08k`p>r$Jze+bqkC&x+pfEhPu~5tWB0$>?{}AfzgK-;{kaSS z1H;$l7umuteT)m6Idi6{?HZMp?)`G09#=b`?3_I7vNsW+>SNpOyvy0^_dff$(Rxe% z^76RqxS2DLo4mahZTjvCHz=)un)R#e=f`c$E57zJ_{yqO?zv_ErvCc=_toj(Wd42q#`6t|%wKK<>%Z#xy#C5E z-P>PI758guXEC_k`taK=7I$lo*UqYXXR`O_J9p8tq--5Bv@`~JUclkCM~ zOC}l_8<&1QYyKKE4yigl=Ftb4J5{gOdinTVS=?{83e;Au{{AjBAz{Ix!-q>Rx{AM? z8Xk8sw*2nWsoLRTHC&;!*|)c?J$35TmjlfF8OM6Ssc>p|oaV}BrqBH>+4<$x{QUg< z^@oRtxBjbXQZFqFb9?#2V4eB>n$3@b&%E3Jzs}XgC1gwG>uYPjzF6F!b*xA7*Qe9^ z+D;tq&lg+ezk1uXxM-)XTR;Y8EkwqFN%cn!mn@C-g@=?Mcc<` zE!XvKFD+d@_wLTJn7NmC-8sK??>uX*)%v#%3dZ06|85Sy`}aBER@^HV_v?8P5i_hx zUoE-2yL@%|xSoIR(~t*2aW~e_eSRv@_8_F1V(q=IMn~PaYLMeScMc_wUqo zPd7$R(lj;w+OS`mWnbZ&8-{mlzuyH7|Hts1Z7Do6$1>QtjpyRa<@4XYUu0t0`*+^M zTbaA0esASwV7MTnqN4I;YRdGK)nD$0oi^GnecI+{kZ!+reff_a7tbZKCU1&b3mUk- zoxgwW!^7>LpDh*qRF-F6@jPW$`i`<$(J>jBu%JWmp$QIP7Gg?@oB<^&k5AFlIMoC9Ss5P0L`BUidv|B$ zl`A1PbIjUb&pexU^!V}B?)`FI-QAzdH-e`TK1el+CM2};$zD3vD{Y!}MZ;Ise z^Y{Gh1F75l=TuI;IC$>yMIx)j&4bPCrZqnbrcRx@bFXhj#g0ptviM`->Qc9f=|u&- zE^cgWta`ro`W?HzyYFJ>?zy{ep~T)AP<&qy5r|-9OWS@sG%oJlMYFKgS0BcNZ$G!g z6ND#~eBElkYQu(r|9k$we|3NVdX=4`J+3Y;p!KoecIe&9yB^RJX9qGS!;51LL-XdS zwQ_6U=OmT+M=O=)QCpp-q{i9Z~J#opRDyVyS>$~ zzwN)X=)#47sZ*zB-V(j;HECYeqd-;Ft=AVF_5ONvdi?7b7fVdD#g^XNTmABx^!mw1 zKkdJ8`u1Cu%y;acx8&WeN==cQd^azAdtPkG-!Iu$c9pKydOg>|?esKVlgdXde?Pr; zdiwNf=9?QAcl|n*$;HLBDneaRF-|m|IU#*X}160Ob$IYeS*OH%PLE$ze9msOn{4#Z==yo|8)6L`-|O=i@fBoI6XzbdyA-g@YeUX=rF% zV3)63le&L>KxO4lHl7#DUtW({`r^g2eY+2UlH>xhKi;wi7OStm`Z!%*#>eyOJKpPQ9t6t9$wN=J-px=Jyu_Dz{zdnEPr|?DKQ7r6-Sy zzq&eo{`D&>CvQzWthV>ls>eUKUAk-xTBib9Icr;8cHQ6p@1n~2HDRf954ZQfXq_Gx znwGXKYJ1kxf_V2nnNTmURrBgT86G`;H1lXzXw|Ei&rAN6UVm|^TmQ;G=95*=@9vbF zy7kva^&WX`&!~MhQ*+E_zbV^omUl;G^2sF^7rR;Lgnv3XCF=advuT&>=T*4b|M{_b z-Hty&wqK7d_Oh!8;J5qIap@9YsLlSWvr)07PfgC&yqK@0qqS;N{qDQ#)aTWN+5i8v z`rW?I`cte04-`}eh{T;WzZt=GFH&(v8yL)B+{d<#^$lcwYdG{BuRhf>rq2a~S z{U<<~^8h20_JId`W*$EE?r{GutyelBlS^25W`_Vee@SJy-uFF(%7&pllwH8u5W z#X8rVHB3x>`+0U5KiqRNWNYxMlR2v{nw>i(B_`AZPeB^pUZCE zwA}Sxo`2PrEg_fJ@AZn^RdVV6`@hpwPR@;acVoU|=;>*?vFl^pOEq8bC`|tHaryl0 zziqu)cXv$%4OA!n2v~oraM9mSpFU|#d-~+bpPPKTS2nqJ+s{8g{chfR(=AyyKmD+h zwJy6L+;1QBJ{P>oWU67iXhMS8WKXl%zGB_3PoF;3+pi z_Zr5ZXDpj%6q%Tq2-;0jQ8B}RoA>z>0fB)N4;?;in)Jiq?XTqR(NAw}NSqAXNAX#I zzt^O5_V3?R<#Xqs){^D#sQUV9;g>Hwxp#NPGP8dPuBg}%{#3$Z!Tw#PZx_v(6Qdiu zE#~FRmr*;jwl+04m;9@IzQVmfFYD%}RxWPttr-`EQd3hikDs&8db7Crx!=s30bn( zyKzs<-~Rg2&dKL2{)XtrY>6np zTfDxFPjbnQ9cES~FE(8Mt1j9-jaIS?B?6D z-m+qggxoV}o8SHYZ9D7x$K_S^@7lGrw8EaBlQn(2$y-ETUfuK8@!I;!uk-h;HNRIC zo_kv@m<~~`?c%W|GRNlzgV~b>?EI+D_63!EO3g7ngtp=H_N@X<7)P)w9PL+JUk2< z^?&r}(Vy5qY~f*H%QC}bv^}eyz5K7SF*dqh{G{^HqepkWnk6kFD!Md0zAmn@vGJcC zs1epM*}=)lDc-ZpbDP)w+^ssBcW*p1S^w&%9iPhE`(GxqN<`Gu>}lhdUzdA(+sg|J zo&D5<&1d>__4ns*N(?PE<5yq(efy?OMt`>zYy{2P?D}AHNDJf#Ur=ME;N!=SyjDl} zdG*cB!_Cj{a26C4-1TJ=x9Qg@Cn44|{1A0!0#zjp41P(yg&qp?g*ZUk8St-c8mOkO z(1Z6(3ecq1nRgVcnZIbj(d6O;}ePBHqq+l06K0GGjrKTS?k zr$>uQ3#)d|Yw^CMYPf zuYdCY#`Z{gd3%@Me*67I-gfKQv=X=6c#v%wYe0(&7Ob0B^U88-=H;mHSj)AiKJETr zHUFI5=aOD|`>;u0?$pO$dcS}D1eHh~G01C*%+a9jgz1Ia<941_wub$ zQ|{(XKby8XgWdgfP44Aoy0308pYEeJ`En}Ao`z+ua$y-k%Y5do@PD><{r7t_7hC7g zUwD7|`U}VB*S&k6^z&~1e%(vP=l4A*nz?>$+~zRnHlCuLJRrRnwg^Nl^yK2<3Aw&5 zw&ay&@RqErQuX4?9W7pOoHBj>`)fw=n{L0owJWzBv=O&N5~OFr%R~=_Sz9h`GGb+C z{kdC$chQm^F8ce8qECmf2}((6SvR|GD;vMmiks{AE@a)WH|1{Lb=T=J3nwbKYwMV7 zIksu{yB)s#Hb3$~%gS$Wdw=0r?`%;~(WTn!cZ4i<>zknR_s3=ZUyn}zJazVLX#cyr zC2zNeugrDY^X}*EzppOup1yA9udc37Z~i1tw<^h4f8c;a`{}OkZqx70l~G$Nz%y)l zZ!%)5PPX3KQ@MIx{X=!UyoM*1g#Qg zV$zW^Eoxa7Umfb2@%=#a|7$ZYDsQcOtOjZcZ`^43>vZn+jPvvM{(5wJeP~?VI#6Tr z`P}NVqrc9*ik-W-=(^dSO-q)z$k+ecIZZ!)<(xS&ymBTE<}vkam6Vi1LPFN?+s#@& zRr~siJ$qu9e|^6i8txaoIqmG8Rp6S(MC{83r^%q{PmmLLzpua2A$a&t>>Rd_hyCrd zk8~tfJ^mVQTJs}d@5g7>la|cR+vB%s!6O68z1&ge z4+_gq$JKo`m9;MO`Ct3a)Ar+!{adrI=l%Wjc|E98(Z(aW#{7PjyV-2t{JnqIt=svl z$kolwW6~u4Wf@ma2v*g8^9GmV`P|~!saxlj#Mk{@d(P^y$=;8@R(JLHUp{OsADWdl zYhLv;&)E9ATYr66>_27V#Fv}yZ7mFW7j?b%scG)bJ)z(K{mnaD^_2DNi;J-b4<4Mf zWP04prB9xS*cyFiwEcYLF=&_o)aEpsefD(~C?Pr|J0!Haoqu`f&eeH;eol`sy{H=g z;*<9B*DKTKU4OZJ-lEOttq$K0%@9bRTe*vk@5TBD4-|UkOoJpPXKLx{eyy-y?lW`A zzS=5n3yTP0^`79M-`}G4R`nh_JXY}3cnW{b$mf;P^~t$r67wXtZb%F9`+*IhVgU-o*x{=P*o zUS#x2+OA5npRDeC;YFY_XeHyhxz;Po*U!7Px7vSd@?5LZO`!JVg$n|`5@sO}A13bl zw<}vjPHx#mO}#rML^pn8kooiWKrP(mesdQcIN-2! z$&#$At4w!&{FQxmSE;tEyZLoc7veAbq^*gM)z-fTR~@~K&P*3yu(G$WSTgOw(j7Zo z6crUir}@sb2{gZF5PLd&&6U-g%Q&XREt$IA+#ETivPMtax zR#CA-?(hEguRq1(UtimQXQ^W|+lyD)%QdyMRvk0T%xu4+qva(iD9ATm*0w4nY<1{$ zpZyz8Z7VFyRq=fIFj2}VWdf+dV*BCz?^SDp0|HjCa@Soxc6N5@hlEv|HgCSVDV4ju zl!J$B%FP(l{ro&Up#2@EtHPhJx)XZM*MIuSl%U^7T-whcJ$^h?hnt%_*vDtfrOU=O zVW2e}3hfc{#1Ll&gnB}LfqWiZmDluT{>IvaQn;W^Xsqfet-6=?DqSw z-fR7s>$yzI`CC?W*j(^{{;I04ZxlVVu5VlW?#F2!(5UXx>FKY(n%}!-TYfh#dH2=q zYu6ysb)kWcA($dPi@2=aj#X0M?*}_+KQCmP0eh&}3 zYaLp*XpvHCYU*m&?uhxD8u)+ztGEo1(S761PJes%R` zF=)H_o;@|SpU-}`DtfX)==RpD4;-1l-kM`Rb>6&%bLPmLon`C(_Lka;`u+Rt_CEng7i1YpbY4?5+NKY3ucvmnFNmaelP=yJh7p(BAc5 zCy#5{9en#dzV7Pz{eSYC-lUzKm3b~(|M%`$U$YMV*ci1rZEoJKr~05xXaB0s%Wl=1 zyky3UXH{>%Zl5xzCcxA4?bieQ-vzt4w18Z9DfM*ee|!0m%F3O)N?)&8QpxXJ<1ZJF&wuf--hSDkLr$fyZa7Z&-|Z4#|97pAm0kGM zlPQ;aqVp~^^V=_SY-ZB}wZzL#x>h|r8lJjw#?|HJ`d{DOU41V1$%=cEOiErP?EU_) zUCO#@%A-fOEI?s6VTpDA{?KCk8Ovw(+blbDNQqa@BtY4nZ@S9gr`u+Keds>_#e9C7 zHJ^%B|N8!V_3w9ov)9fy12-Vmg~4s;xG*&=ZRkID6&fbW*j4%DMjidJTS8Q>;=_F@ ztC9`ptUi~l|NilHem7`UuD9O43onh7Kf3M(l`;pSOKbCIOqg&Xd{XSBwU^4Hbx*&^ z)A{_wd#la5KX)G{x3MsN=(wA={_?kXXW~;`O4ou9*E&$k!^v`C!Mne=@8;=(N9Igo zc{o{k&SXHFy}bRfEdUMk1tUNfF)$!j@Z)OdCM1CJ;_S2ckAl()!;j9ZS(9(x`SNJ? zvhd^uf}FgZL3w$M3q?VaCXQjNeRo!}a`AG0Di4&3Y1q%raA0G{2ZN{LB3hp#*5$N- zcQ;&EGUIGoYa5HElFga>u9*caVGWHleS%V4W+*Aoy4NiXGHSs~#P$Z#w*XLiRFx65 zo#6PJGR^%90$h(S-E=eOpB^9Bm5eiCKJihTyx;rs297lh%%}A=LMnHLZZr(sG~=ZJ zCrF`h=hd{}yu8Lw++3oPg3sPRGSRrl$jlZN60>T>iULSCCZkCwZSx|f!=WKDuih^* zvAD;|%$BzKCI@Ie2*U!-%@JpOi@GH4ae||kh=>E(OGJx(p(Cs%ez)%5`|tm}i|yw; zf1d=g#h&9sIb%Z2`M=*)|Ni^U=QTD)JDe# zR0B>**?#-$o6q{IR&4P2zvF+t(d?5M;FM-y#iYF>_0*HjT_4+CYH4c+du6RkJ6q?x z{(PnP_Ww_(RaxGf?Eh!J|F_RKpT}q3-^X0_=wrQb7+CKGj}Lrua-2LoA?-_4=9a&^ z8MU=)tNZO)KJ&iMSk)c6`ueNaKkvV~xBvdq4%w-*#n}o?cs?@w00x-}m@hztxi_3GFri z?tFH~Tff-4rzN)E|8$=^f4+Q2?Wcnxdw*P7z3b<)*H_o&-qt!VDlY!I*Zls)(Cc>= zNaz3SepYATAGSJlbK3cf-1_^XQty`E|GnUt5!gWi`#IJ;m+u&|#pkVm{{Q!;prD|;x4wan8k%-Cy7c}1_t(~h#|8Au-4&IQ ziFv*2=TFwEPb$;bO%?mut4QeE!<_OiFP*3Pg07rK02Rae-$ zsI`X+~~WNzt{fy@>zfCh$TW^XK3Dmj^mAhJj(0h+1rWw4cwecitBb&rY2> z^=;AK#V=nP&GgBdKjX!a{;E9tTBC|NGZ30wdRk#TxH@ zRd93%XuZqI;N>r7=kL3$x!mX4`_rJ6Y7>2~fitiJv+{-}e-;*&6>IkFd6d5U?z@uO z-FMebnG*8#)y>0C_a!GMr)1ynXMzI*C#wCk;3y>;0cxmClxm|`NvefY&~`6 z%#~8}JBvVrNtg9@?>J^v`}^Cq?DhMX&Q8CxZf^aXOU(aw`3njPPFk|inf>+Z_4_U^ zbZ*bS`+x5C`>VcnzBTzg@puU+Gku@8m+$$8Rqr-=>tEaVm;KA{Pmkw&Rs7C1zOu_# z+xE}<<0XfEx4-&)et%G5VBpbT!D{|jmYt0@DSMMqZw}d8;5$jv&Td~(MrzT=9iP6x z>c9Kf==!G{Iwz;hnpJh+J}*;Bn%w31cRSqm_kLKDl(gt?)U?Cy{VRP}OVpc#%iII~ zuYTP#P*hyFUS+pR^wRg+qNd%v8}aPq^sLI5pSuqqKa8yL4{UG+*U zzTA@s8i$0Wlq*;E)mGPwAIzVX<^!%p84?_<%imq$xBsKyIm-Ax1>n;O z85kNIOI}~|y}PS)vPx|I->;LF-1(DKFTVQV#lzt7RfYrS%ii75^gMO`e0WvWE)`8n z%gC_RSMR%i=7vo9FfiEP-kv{SW#x($9>@D+C#!%~-<@O&gRRu~usPV@HgwXJO{v~n zb8ZGrGRe7NP%nNuA2ee=<7UpZt7)Ih4Z%+Tn(+12RjYyr4ND#iukk+K&bTgSXV4^* z`hPW|VqzzA@~S@ef{WX=zIx!zQX6;2KZ}x^tvWL(IGF#(Zbt^?lc)7T&Dy}ghnq|e zii7rIGg!==I(6#F95cx7gn-1v#7$9aH$|=G;^GQQOq}SWw)xcBFju#h%GxHo*$h7k0ndzz5m3@9#CHsw)%|P{l8YL&sQgZy!5oIxAWqU!o{MZlA7H| z7acjW%_{X2%S@kTZ2J9zrq_PWImSvp1#jK6g@wn} zxwSKQm@=3Yec8YyrMUX6TKCf*(q9g@_h-G`)$8T!J^5x%*z|LAP0G%6beZp;y*=mh zty1aGkdQS$c9=<7r?r^n+*y=+yZlt%_SZ|ppRMqI-Z!i2lnZFn==Z0qw|?%A1JIzw_b@=da+iX zlkQc%SLT&93b5T(K2_!I{rPL=*F~<7UcY};l6+-l<*#qM=TE6I2u)nLP|7rGhE@5i zfY(3Q$MJ{f2F<>-$*A_@QS+?(`{uUsOTXE$j$2%R^42?1OU>_Zx*xu3!-f^tlu%iJ^oy@_sc1n*ouQUyE;3s zb&0Otn*P2na;@1`|D4r<%I%suI$IX~T_vxrr4=;k%k4u;x89R3T^aqglc7-{V->*;fZ2U-kC+$=B{*zx{Z$I)CoA-K#h44z3UXT3pKGKXrPvsKAf? z_SSQ^_OH&q5qkT&#d*0ud_~J+_f)R^bad~_RXOM0g_p;B&$*j^u5W+VSF5Ej>nC`#Zsk*TQfhyGBQVzXZ}j2G_jz59s#g8jn7-w~ z_N7_ZbiC^KXSW^elT!24($Tu)z4_jy?e=;B5g9A|=350C=k16R>vp|7|9J7@tWdgRwOG%!4U_B8aR z*S-hWk8Zk|v+K{MZWT}azn^Ar%elL7Uu{*GX8Y#kYiW0X`OY%QT(itaa{c_eU!n0e zKi5`$d$BBYdhCj3_TVp%&+lKEeccaqT-(m~to!wX{PO0Vv-vC1+TNah{hcir&yV}w zH08jr(@LRg|r7wn+SwG1n-y zsqF2&)u0qT}S3YU;xALp=w8Pe3 zebSj+dTZrm5dnb(@^vu}HvR2y&wYC8y#9sE<$jY?YQG=W*V5Fx$ohP)s&|8Hx48aw z^ZS37bn98{e$<=zHF@rX7xz|V-&N7nH}@~w9edGm-T9T)PYaLC{k>W5dbDe;%$|J} z#p_<*`uA?yYOD0`|Mj`WEcf=+MQ#XSZFSxCWYK5PY{^$?v(TH{)z{1S-8wAko?5>B z-?~@NSJmDDO~xH|@5{RUZ0)Q2>-(eMK7J)tcJEMGQ>IQ`J84qT(W6_-R>#b{ z^0j?_U8qyd96$TqO?@)H*ZJ*rE~HMMxBkP2g6Y?1t$uyy^7T#4nk)Iv7smeo_UTzo z-KU>5wk7}X?t1_3_Lo<4%D+A-ULV2|W-MPF7PdNc{=WaSR9?pauM3)A`*W?{z6Uv; zmsS_wyXyS?{@UgL-ZQeYv%kE@E?2tCj^PS>8w*qKfoW^4zg*HT{&MT}`xn#W#a3od z_mi?r>QGr3e*WF7TT3T1F*9G;73!_3a^&@iizS{x0Ran|n3$(dD~l-G9c#O*eC>;q z0kL6W+d%tbJcW;I+SvGjW?)Pf%>VZ0Zg_HR`tdcs^X+V>3dk>CaKNGT)fLBs2OXu% z%a$}XH(%LV>^}2sT59_99e2KOT$2OJ?853jfjK!nPEJi%mzST{%0I^T<^AGsZ*PMp zsA6}Q1jW_WP5r+k?E3or{H@v31Cnd~Z#hr;_2u2lvRq*i35f;sYTNGx?yI%gJ8DD1L@#e|)67Q^)1U8i?UvY@Be~lC-woxL75t2= z&#o$aE0lG2|Ke}u%WbPm-mluR!;FiA+S`xc+xy$J?v945tE-lcj?ZMZzQ8oM zWs@ccXW35M{VK@ZbJK0@xh?j4t$yo*ieeC6x=gNUx6Zj8#r0LydqbbS_QzG3yY^}W0IH}9$Z`{C<*Klks;cBih^cK<$e z_2cbXS3$eLyu7XdSxuWXX_+JQ@0SM-K2EisF=<&#i^cY;#}z^0tIsYwb0+!K&Bd!h zJEY7M;{+!@w3;>V;kB*L-dKHqw)M>A{r!9X#y(%Ct!Ep**o`O9!(+oTKe_dX-TOcj z55M_jt}I%r{pEuFyTH?88?$aIgKkwQu(`FRw_PP2@dQ*hXrfJc!@2vIB{U=>f zGCTJ0pZ5RfSA`1x@F%ans#boFJuL42>Faluy?paw|IfZ#_ve0F^T+Mj?QixM<)&We z=Hd#faM@Ax`4cSKyRyVIC!buh=FOWfhKJK;ubZl}_v^WKx#`CR^WXXBuM2lyuRm|z z>s{OGzgFL#e0}dJt@oF&mX;)~@at*5S2Qnff2nLx@Xj~yuH3)-`^ZJZJC(M!AFH#! z&#V3Q_4?6Q7a!LzoV5B|;jd~1{rj1>cRzYlKEZsw{MWy`KOfoq@~q|Ow#C2C%zeDw zKWBBb=E|3c`t<3n zf?KVj*ZkLfIltmS!~a^Lt=6xZ9cmReFi9ECKD*4{?zfk2QnJa0`uL;Aj%B>uBpQ0H zv$OM>X0Y0dEn7nD^&^(Jc29qKW#wd*$*aD6>FD5?elzFV*URfyNc?*G*6{UeJ3+zY zyT7NWKCdt-IVt^an|tn?vfX{DsoIJUf7r;1b-RYGep`ROddJ??MOBy793364KA%|` zwK;9Cn11X!&B@1hugPBSC%dKOCYP-Bw55BizgK_lbeXqp`S!Q+f|Y-I9sTmw%`&(C z$6lYAIn#Y%*4OI8;i4C7|MmNcU19KZKiMs*ugi3! zw*@WtnfYK-?VZ224_3T=eQ0*s%JcW-}*XRL{xO; zk+NJ-35f+^y2+q2HM5;B`$@;bt?&2zy00uZul-wR?$)ZaRc~)>^cH;haF$JB&e5vU zo#M84udOY9^Ynh)yDhWTqqgUP8ttt2&jlZu@2pmornN+nP0Nd~V*fe06d0 z>Zt9ROAovEX_>w)IQn_z%JwZOFN>Z&dv-F#NL$4s;+y?(Ro9kw?awz1Ma8FsqHE(u z!>su?{Otd33b3@?S^v-7#5XeXrkw0%yVt_f(uX-{0-^ zI)7qKX?6F_HJ2_0wLkr`#JB3}i)9NAIPgl^Jourq`S;}5Ygd!ZR)?Q|7xnG87Aq@T z*q`US>~3Ga{8f8fcV}4p5*OW=9X^$nKecppF0JRDuA!zD)tUFNeE+Y#4^Qvvl{58e z=aaqoNOixqzI}Yy>d=)d+e5;lUTwHOOZ{o#_kSg2dqbbSxmEh**Q2*PKX3cHy7=3! z=X&AS13y1Idu5aBnrS-G3!4ssmX2qiy~P_BE4;Pvx#?oPuiuZ>etNj){MI99>%)4a zje~Z7f3sTR+p9ITF|mi&-P)(OCsREB|GScs{9VCj;n#g*-|3e3-Cq|Q4N97|zb9Q? z_x9sF^UluPt%aY%SXo&u-{%~7wv`OJ1iMutAO?N%|)V=BqXV~=WiAI;~897*crC=?t)r&zF#S|3?D?RA{cuk3JNx~ z@k_6nUmvG2`R1Ck+{ah9<;EQSym8~jU&+_yYX7{Pz9}*{OZfV(q)l(+?(WV2O(nga z%RlAHzPWzZrJF#lOHdEFd;Px9%*>ThTXPl)Uj3*1>eY;|k@B9itWuk%t&do%zyFut z($uA1URmq)=2~C#{=Mt6oO(-p`^)XF-cx7JTq>rURC?~_^6(n3`yUdUzg|AS|7EZF z{qWh>)|w>!Ncj8Xa(?Kx{Ofv-+~RsyH?Dajb-Vn{j3uf2*9UFSo2&ircFc7%P9B~s zCj_0p-d?nHmRR}1)4RUCx*3~&{p{))OZM)&eR=j*?QOGd;!cOJxww3Ot?uf#KbCvX ztvse_YFBu2;;nbQ@mF=NcJ0*L^+9HB%uYA?v%j65rlw}y+cUF`S2`xyC@K8u%}u54 z+j8y(Zj6hFSg|a=cxUwY<(prxHA=s}Zu52V{PT0Szm1={xv28c)zXq%D<^L)_-M4( z{=0B%Yirh#4F_-StzLipx=Zez%Cjr7|Guu8?@_e7+`Xiv`0MN2-rZvQmzPeTqrds) zn+>&#nrB<@ZSz%|e0tk@?)+Ovr|-9(dw2G_Q_o)QTKRhK(^o$Z9(2sQyK8BmjOD6p zYoom;fhPUmpAKJLzFv;+d-Uu3%5rns&&{=Z@mpRjSZH4VSE2u)smS z_RrE|{nAVQWGDZLbzv~*0S#YS{d=#5WgY=E7H5&N`DRE|)G}A^y71}eWI0zeFti0u zh+olkNNH($%Bifat9I;g`Tb3P%GtEi--kUI7>*sC;K0z}T>s|QV%P5Jnj2%Sdu5Fe z-9O66u)rxMCL1)W!Ce=-rs)q8Ydgzo-`Ur!zRxkPvD36?Snv>bHs1r4W3Vkv3;JLO z@eQVtZqUxGsj2DDf9(dZlVD)@VC>8q_ApWLpB`w4kAZ>VPY-NKf&q2T`yn)@2ObM0 zbe14!yfC5fb zC3q)HeOjz;yCV2D@8@!eat4XG$((B*9ZC`v7FxRHkPmO()xB~3qLLD;GUqP;vHKL* zBMiMklR4L@sqtKTwfOedPbb2By(FHL#Lm7Ow*2{i+YK?7clm^MPe`-V-oH8-l0@d{ zF#U;bXfx7GTyXFAWA{{%=dWH08h>fYT(_pa&EX-V;;zl_kIuSMHlfIyd#gci?bO^@ z+xXbB%za`@)?N0sJ%4fW>w9ZU=Wb{axO?e!OmF}D^$f)gVKO&YiJR9iOIF>PCu?k? z5Mf+3cll+Z_SGx)MBGwmt@IF<7>bX)n?no`GS3}(@nv>s7cMoTgxFo78ru{@nVfuV(z0s@NLUYIc38z5SBx`s$dyNmeiR@FoAf zdj%3`rPoxLR(EnXZ?Q|B&ULCgb@T15Z%&B$W>wcjBqX_H_x8SCuYT=(Xwg5x)ag%N z&Su^pp7Z+E&s#Hm(^5sAXS|cQf7xdz?lmc=torC@S*6D&di(azyYZnhh}&pN;GD(B zukBrZ?(D6sir4e>`e%yVbW48x>*d6)@3j_NxJw?jtoq(BZ=#sEVE=3>uxl2an{{Nu z0Z&fmtIAfMr_aw0-KevCi-Z4+XRCZ8dQ>vw?=6hlUix*9vHY8VkU zY@>~yO<38@QiJ~qZ1q_k8#U0Y8l?5Wx6%gM*uw+A%bTr~fD&9+mYo_PHR&$BXQ ztnvGG0A%Pc_wCm$?eDB#>>4>~iGcTnI*Z4Wym>cc-Mji^qx%AO;byS>|o78FXrE9P6_`zs&a>?)TbJLEdTst28Z>_ld{iUkyW??=>d7E#~wR_(cTV}ie zrEqIh(`udhJD=&kJ#W3_`tiG~cTScM*?D%=e!cq0u-#|ZCfn_K=DSp6$?K(t<*#R7 zo`1#ku3vD3L&yHv(qO9>ob&nk@#9oy?aAH8r|u80fAeno&S}TfJeU3b{Y|!D`32{F zyF3>%9(=cki@ocV_m*FCZvNAQTpzk3-BZ>I$5!PZOWwoIy*);i)m&bSdDiHtZGN-q z_il;aX|ZLIKE0o=fRjyw+JeAkVtW@`uR0Uum+_Q!_ZzLv(^i+4xI_1nGAsyV{HNDo z9w$+_J1_oU)3%hiQ?KTIE-#c4?LN8Y-bLB3hdOTmjTHfhMnjb8sRLR%3K7M}{=gQ% zF*w*}Oo6VbV<`Bf1TB{b{%}0d_TCjb1{x>Ue%-Wb)1TN7h!@y|Wo6&KS2EFXW(|9n zm8A|X)-)60#|Kj-MqtPMQZ$)9g`r;jfOKl=Q!Op6NoUi(LoQfjV0hJgGbbn`V+9kl zbZX1vt!|OG7cEL^ZENv>g}%D+3=%=T2TUKEMA((cakI-(T$ADgSFXB<>D) zYJm>_+un1=r}ooJ@mo7GySuo!Mdu5wFFt4Ge7K$WWBEm?JAd-`1@E`pt6dkjwQ8;1 z&o|t%wzJlS=|;cUQ+)o~3BkixHafHK{q}42DGSqJ-K6Bdu{q%MQZOm=lIM(*}A11$y34glR8vax8ZTfda1C#ZwUZ~u4A>vcQ5 ziqrNl`F!5mU4Q?tSwWZiP9_;RvW6G|K-23E;l;1{B0=c zgcK%brYqb1^Y5BHR-1YDSe{h;^!(G)azXvC2@?`LgCZhU$o+X<`|93a&|scv%?$xo zRyNQI>PbruHnV3uU3K+e9;6s55X#!*%+%f8y|wPI+uyJ6ZpW?(U)2Asc9H7oX`m&| zi`{##92K9Z-+gq=qen@#Up}Ts?M+(?J{&J!KDO?rYSuNKRmbY&>Yfz#%9%PvZ_m5l z#w#r7Qu?Wt3zu9e^azv9`&vsYKAmwN^|)$B1c z>IWScoS2yS&kk}l=L40bH+e2!Uu0CZ<(SPD5_&Xuo%!#t<|R7X(f;-ySNzL=)_iMo z`g*ZHzhN2+^_3@s~&B12W^B|KL79f!w*~HYybAD`AMvfT)%GtXt~zg z@@HW-&$Hs!pR04$)LdEh=D*yf#r-x*4m2=qKQ(jW#Fg9c&s}Yux7&4d+|TuHy)tph z(Vn3DHXc2Sx*qZGmvsK?ZPxEDf>vz*&fTt|qT(_s#c1Z0Wu@A(zcwEi1*e~e^(HqD zoXXq&|L24H)9dzqbMxI@v};+cW$f*3?*p=KDXxv&9cO;uBKG3Nv!Lne^!cT`!q&#E zzH-H6ZQN$R>#@~SK{ppYJ3IU3vDeFAJA87?y|riQwPZir)J>oZ<{m6i=#??_k(>$I zf>OG3y>mN%_SsvdyYhZr?aIFF7C3RDlzCan(Ym=)jZI8k4jw#sYu{&n&{j%m>!`I+ zTh|0`Yie?8ZEwFGQFplX`irIi^WUFaym;07|NZ;Z)PA?9q$GMWG^(gL+?ePqxFlf9 zJMKjt*4wUzt&N%q8m$R0$Y|EdnviRbP=5{`9P0hebU*6TfFe6%Fhazz(!X-g@hRmXeZF?e8zw79EXWRlncPZ@Xtl|MZh7S6;9G z=N%Y0@$0p>_5}fDyJOw^<$~M!wg$h{($Wfv2v~8Xg=Kw~r-w(zmxzxaKTgWJpLJtj zt@Zj>Q-tt^Z%OEx#L?FTL5)D>e0L-}|!NpsRT99loo4 z=x}IgB&cvF7n%_t=_Z9 z$*nnXu623P|GL_*r~X$vgIpF`x^-LLZ%1~1*|6t+nxI_@_kNu(nQJj|`JzQhdw*WD zesx9Dwf6V7kE{5~k9)nl;TU`V)uNZi_rnttC;H7fad{7`{Qo`m%BBB4ByU^x|GTZM zby|DMq^M7OWrU;!|AO5d(ggFAiJEzx1!K^9cz|@ z|MDqDmGhZ*Szp`x{ZCx}{?GAuzaKc<)!TdZ2xoZa+wJ!)zm|!w-)-D=H0h%4ciR=u=T!y?3O>x+K7aoMVbHqW(x<77da|I%Z7`0CtX%r&QPQkE z^nmWNj{6a|T)2WSm5dSgM72IMAD=ajG2^@IO z#of&u>(rg>1JW*Hqho8*(h|Jxom-*DXtJZ8F=DVTb;c?+wv{!?uq{^S7y#lyz1!|{CYOmOJ>*@2Zt6i zOE2Yl&h>e=)y%Pw)`7!n=Y*#%ck{0A|Npn|-dsE53riuM*kZ*J=C>w#dtCMRx0kQw z+P^sdMyCJ!<_Mix28El{eCE{L>Nz*-(`#$f0rl-u|+@{atue)T+g{*6F*0f+k&E<~!T% zHbeYlJ5XQk!L+-2(TR<#uGcN@=w8QDVw#b-)^5YDKcBq6d@(*>y=U)9kwxBmJ5RhV zn{AeR(fD#)KwaIwUn!|C-|c=Ekdm@w*}un{xwrPXPWp0ijpeU|YchYIUToi5@Nl`` z?dr6&j7v|Vr%ai$Vq@~T>ywtA4hafc^!c21xcOZJ&&0&UNlTt;@4L9?CwJ+a8-+)Y z9n;WWy}j=D>)R#?FJv}|InTE%& zd}(|SRPk}2w_WQwIe(&x?dL1@QzlJX<2gA$@b|a3B^TH0U1(~ZzhcJ@mu5EJ3#rrN z)<_!PyZ%kqdg`P*f#rYy@s+;36d9Bou_N*DcdL(=Uu^5?De>L;HEnDD{c}%uR)0Nn zWz*C6*G=5VUT%xdo22sh_0<2%MYZ=`eDZqz)zs;6HK*Q(hJ`Kre(!&PcKF&rU*BHP zkvY-%`vP-sAIrSD%Czd=(dnsXv%jtvpAVYnc(?OAV{3c+>!Z)-2iDX?_rLnG?ESo$ z>U62s?b=hPPMu|5zc6h5&oFhrCz^_iapm_*mtVRZ1hRoY?d-)}@6A?h+T@hEa^)b z5|7&aZ(C*e)8nCdoK|bw%1_NNjkaa4-(dJSRbM;!r?kFhU$WKe-Ae0sdmfu|Zj-Fl ziZ1^D+OOBW?b`KMFS7i7$kj>bRXrCnp9{P3qEM^)ALsPvt@T@eX*T}-_3h$(xqpif z9X@swCdIT{?*~@eRQL?xNJ^4KUGE6qQYbSo?p9Gt=6sj z{B?Ti@%;SjmWSInRS2N+|#d%zPvD$wI~Ra`gGgu(zmAJ+2`-oe!X{Y z#62p=~%z~>RxH{*H^FK%lLBVdB2_iq%Bonx7+tdY|g&C?5vRlkJa}% z50_s7ZMeE}`F!TbNlSOV=P!RbbNRo8zO%Qz*eU)`)l>_kd@S*7w|vOg>)xTCj$4OrePTSb{=d6q(xZ^QMLV6&%ROA7 zTylaVbbZvlAC(Wq*V=8Ev}Db_yy874m z_pfifzh{4E>GuDB|G#3*wY0pQy8ZU+RC1$Kg#1=M|NY+l=mczJEo+x3EJ{i`qA-p`Ax&j0l=Xa3pf zZCYAdUg5EoGnJH;r_P+I=m~0urasRJ_wngDXPdrb(xgcyB`0pKTD9tu`)4teo$g4^a z^zA0@-Qr>zZRTYv7FzdZ-dDHwRng`9ySpWqd9P=GyHh#Kw0fQ0to;GkeRc#*k1y*y zo&0CUzCajo0U8<)oc-_^7&h1}sK9AQ> zPv6ZaZ>i1K|Wu5M^Z$dt>)-j`l{cFVf?^L6id)8f^y|23Xt?k?P)wQ>_ z^{&1y?`c)`W`~NV+Oy}+eU2VG=Cw-p=hZ9suS^Cv0T|v~4PEu?zEf+wVW8>xKYO=b zOqgI=-tIO3PxRy8x1?;OZ>3G$**O*b+Y$`y|{Te^|ZC#>1Vu~qF344 z>DROihS_h7(6RayeBr^Ff6VN)W$R9y@bH{;H|_h1y$k=$XX;+EM8*B~QStZ{*W;@_ zug6yRW@TlWeBK+`ciEcG7hk{0G zTc@w=PB&iYx9aA<#XX*HMa^oK@H`ack~Ilgb}s$orpjiOtA5-vHX#d}+g4UxEt)@9 z{GQ^5Unl=Dv!||~thZ!|iuJ$tSkRH#Q>RaVKDl`5(z59)Z*Oe%4h_B9x8OkNZ_t_T zVV<6yV)~IRWPe z_e)tUn13d1^X1ou1rGH~moC*ZFW)Yv8?|WFs;sy7HoI4Uzv}mROVrw`zh}3nZogf6 ze{Z?At#0VDZ9*DYF=f;=)#Ks<&OcA@K2)v|HJr zg8WqcJhke;g(@e@{;YWO^r_L-_X@Aiy|sUT`ON1-);^qnPX7DLuHxC*$vLaw>r^S* ztR-*Cc8lr9t+JFq8y*-q@!MPb2VW#T?n&9#ttoqdcQvoH*{f-{>lXihx7WLwowwxH zz4iI>$LoH7lfQ7czQSSRM8RE8mr0vE`x7{6$(_5^TguhezU->YW$sM&t{zzphppN;>~d2gm& z@WzdXAg`Qzb;CW%ofv-%|sC{#=>i+8Kx?x{89qoI6?XGp`uP@2V z--Oqk7dgIZ?~VZ1@_SEy#BI)M~7F_k~T(|WEQ=h%|37Lwns-Lz7*IiF2+ZA6OJ_k}6oy$?3-am0|?CZL=wI6Q?Zk@S* z%gNv7=IoxHo-ege>Yc>Wyck1NL&Y3Ik zzGh`Rck55#JCF;%T-_uJy5FkctLXC3h^rS~mc5mJ{0`hhVQ^5|kTq4V>VsYXEx+)i zN00t`JNLVWl~vSrzdccp>n+VLs6JFrzXZu5ALN&@K*n+gD_H!3brA=M9BjVVZH4foLw-g_N zI!z1=b;)&KI6+OC#maU4CWynkm+;TSG(R%IWq0qMtq$ZPWwr9%k60q}ZsZ5U?*| zONe#ZGp|WKZi^S4O)GtU&DFV`FDxP>W5H>N(=)b4t-7*vQ`Fj1`Wjcl z<7?MGJsqBP=f*|7?=vgTiZ<#&<{}^T9Gl|csW#cuvy)TGWW)Tjr|&pREFBLgn6T`E z3^rZh+WJZ`j5jjZY^INWdPVW`+BN$k_fDC+IhdVa_S%x{^_L#$PhVNReVx>W{r$wy<6_^`E?fvIk`tZTPiClqua{zA*ynsn;bhjM(d(3>N46C1`rr26e0BYQox5ePQ?~YYU)}R_{;CBFJSMN( z9kuwpwR`rpy5*BD1$hR=)$O}6zC{x2a@ zr%YS5Y?<3n*49&J?=HT$_*|fmkMzvNi@tOlDo-s}^8fu!HXt!^Vo~|~t3MZ?1J&h9j~{SwArX~k2{Jk#Kny5PUNsGR**IwY~C&j_cCS;<_9i?_C4kvpEXb>)&BE|WyW#a~Cri;1ZfZ;3prs@j)X`|)F;Uw>#! zjMD70%gpc3id(<;-A7R4iGiVJVJLf;?%A}>ncwcPdiiu*Kk%=1>I8xH`C;n{cgJUC znb&SE>izVYd&=zH?&7f)=Ux}PZ(qrKw5zLIR6JVRC^S4;rZKW)OXQ@GprBPZZp;Y& z-fwm~!zAm}+R36~Vq!16A@h^x64q9EC3tU+(9zP-2|7Q|_R2nIYgx-GA9jA(!rk*v zW`I&t)XrDYt*vcZhK2`U7pouH9=d&9?3SFHUQ?$`S+!@6llS!6wLgArdv$5)QgbH;HPSCO^w@b#=}9apB;toyOmv|2^J&?bg=Uruhe# zuUfY*Z1)luUU@r}3)3MJU~>|APM$nj>K-YHa|FDw&~RQ()iDiS-OKgqbt|ORboiQ(>F4H_-aGNIQ4g~0?7(}DHBB*TZo7<(FTsaG zyC3R8uf#+hGX=YXfif}0M!f|qy}Z1bVj(pm!=DFRc-P$8k}3Q`2x9)9bsIKVTu|L& z0jo3>R=`Gfsl{qx*#)tyfNk}fkeiSBPfz>Y91<-2A}cD)qoZf$-qgA;^MhPm7Ob{h z3$uH_=Imb`Ypjb>`m?nqeH-Bad?nE7iM341YgBH&Ej#-+W1n2jkHFl!znXd2 znhza1w59Ym|Ez!azkk`i``zWX_vX87`;I1EZ0VeAn)oQ??aj^R7w&#KF(v-~N=ak; zg4<5O^!x4B*hTJTj$LKdh>bAo|KhpapjBcW^KQ)xUBx< zxtn^Pr%rg}Z{f}0d#4Gq@19n5*{ZI(;=Nw~-z%O>3qEr7I{Pk_EgQn*BmTax?*fG!>Q108>@AiN1hbjov7@dy7^|x_S-gD z`Rl~vYFxM9ty^C9?oQ}>lo4$|akt>r`{y=adRgNS8WrVG*d4p=5L4*-zsC$8ajkV< zJzwZYa#^3s%1xU-O#wBMXMKCq{p;cJH&wU$eAiv zy9-a8@bLY6Jowg@%5IgH&5_06LGIIw`LiD$@}Ily` z`?{vC?$y9#zjI}&CNq{@-Ej75p|9Fx(7hb@e#>V)U1hpz<;sf0Hu=iM6_qE`kk+pFFz%(xHC)(7?dJy{|PqfBt0s^*#E1#^YsYy?lHEoND&C@2^ZQ zT_3g8?fm{9o6e+d{`d9KX3&w9w%_d*eE3kX_s1V&&>+jq_h&D)@!o&!61VS7*={4F zOQuh+&Az&?c6Zg*_%Exuw|;IOx7Hr_TdGoiC3gRQ=h$5( zWp5t8Gyk?se%+5p<{!7f#=9O&JE)Lc({#wacXH|Z^UMZ5cY{PL-<~y6TYh3!e!teT z{hGHg9`36A#~WJvY2qRMJt17Y!B5#Qr{-LbOH4j?IxcM4C-b->nd2p4<*sq%lY2Dh zrdpQ-h|2#9zZQF2wDfoErg!&Nu2P-vJ;{lE&e{zZABTMVBdm9x`+vq)=O8XFE>+KX zz1U@c+4(GPy)D~q_w&o=s>G=(PoF=pF1a&6W7*HSOmni|>?qqE>u>va4yauE{jXs9 zyvkSdx3*+<&#QhI-}n0anJwa9F79cy`aVan>h;<1ue+`5)_&O%ax=%w_UDz&zwV27 zoBsTj{q;=n{|o#6{{DJ>zwJ8b_PT$^>%P1&e0#h8z{^sb%AV5uYp?g3`&|0}_w9MD z^(zW~@7}Sx`bbBjlu1FusZ*y+(%;$C{<`@;W&3T@hpV(j|p7rgEu-CgAf!Wt;R;MqsU9Y+Q?waiNJEN+fbR zJI((Vm4TlUi16ww%)HRKlN>+eeU~nt&fjuDk(XogZdY@HkZe5&X%ow$FVh2_^rgltwpJC zzZ`kBO6%s^GSEFupU;c0jK01ObOLSi{_6h))9?NJ{y(_?i-~)*-?_4zZ@*PJIvw72 ztnc^V@3X%om-QJLRjtUsuT%QwhNG>q@szo97ytRgRQvz0TJF6~pnSXQ)v42<>&niY z;qkoG_TF5}I(>IiQc}q~%fq0%v=%y_3kwaMYBy{9g1Gs||30djdG=ZGy2sDXMsKY? zFX!s!mi0&f_^RC7+rIvK-nDy|>dSAM=Gsb1PTkXWu5Nm&4Vpdc*4uTUum@wb{MPKN zS!?5e-!KFnAol#6=AkJp99*Cd%YXo2O5Qd_F8DdHa}kU*c)&b+4wLPF=rhO6uLLNPgLXjQfnMeinA~ zY%BzgJ1W{ZDZZS!>gI-XZz~^GudVY+h{`H|`t+&iq;GHS7nt9xiT?ZhYv})fwOiB9 zZeN}kpYAnRy{GM#&xT#QZl#;fUVLWKlBT9x35%+~=k0pg_S&@ioz2- z#jHH7zx&8j!@4skLEDF|%HBNKw07fTIm@b$NuWsL6jr}(T~_GXnOu8&TcOd+SN7*$ z-`Mzg(vlf7=FiU*k(Sn8SvF;&`gOzi%O~a;8s?@LNZ9Nvd-tlZA9Kk1_1A|N79Rff z=Cl5k$(v)_`>)8IPusk5%a)M9z`*5mE+?#*&n?~4R#p4)iFuxveazd(tM4C~TxYo( zJUV+o_}eS3(7*W$53QfEVpjUUxZ4>9CuZ$-Uh4mE?Z?_&-g&&an?2S4-@lkJ;Z51| z*Kf-ruhp!*u(|#8wDOo~XQflNhg8?Z{qO_LIG--uzvBDf-@UWHocki#)!7;7<+bV9 z9D6TM&(29pPMqNAwR(RiZT{yc#xvfS?RJ05`}Ds^l8UOT-L349 z;NZnG-=8gN5jZEeYaVzg+wWG4?Dr?8FYoQ0opyd!;QRHjBV%P=b8~U|OIBW47n^%m zRaLcb+oDB_=Kq@V;-aaKm(QP<5=%GTj*Va6R$CsvJw%!bw1(%=qb%mx=k5Lk>ixf8zH4l7Tj#Yv z<*waRF;Ij=|0~`5?L-I1-{*J#zgoS1+UsYt)v}-LeE#D}&EwCfw z!H%@?<|#*$3afdYot?j)IL!az?Dl&XqyNub=QlUVq~e3a+m)aHESbzdXZ`K(lS_B5 zs{Ys1U;5yHV`}Qxpz~*Ve0RQ0`}^{I{pB~7pG`6@I4oVh^wpyH*afMl!(ZI{Eq`gk zX7-iI$N8*kesuW1;|<@xQRQyQ;jdM{=f0fv?M^qSnIZkwJ-PP#_54c{HdliW(z>Hb z%OP)(EOqdZ_w$>F&+pw>csZ?hV@79Darx>cOF}p~Kfb!H?kyf?5jQtz(%-_rcQ-}o z%re>e?JVFdnGofPee*bwb|D_PB>r-8b5WIoX^R&&NLoaP{K;`1r5yuW$d!{z*6*d0@MhAr5xrUS0B;Gm{qX*iqURX11E==uxAzG*(bYSWq6+ zA7l6+{duwfikw%q5{mgwnM~UikS?H3w2lj%3M*g*W7eXJH z9G>C;*2_TFg1glU;Q;|FrpN!?e(JO~Q>@qORp14M3@m;g3%EH%R$pCpHGALXzPUSB ztyvQil+@J5C%fd_+#se{$Q~z$)z`9^SBI{?{_@4fBDw zi;7Ntb!%(4TfddN;KPTw29<**nUvoVxNrVvaix+FCQ#)Hj?TEO?y=;w_Cflo}K%B4%iscBg4r<+PQ-pOynw`iC5uUfrY_I3HYJ8OI7GX2(jKi+D3&%AuA zd6_S$6VJflm$kJqG$o})Z)e3GwV2wOhYmTJ);~;-`t-EOb8G(g)7XZ4wf8Rwur7al zZN_JJEk(sRLBWTwCSUbdo9u~iOu1mr?)dvUrSIl|ZteQ&;UDUmxiTv&DcjK zZ$+`FxcKT5Cpf;Ic@wz)-Mzg=SCwr;7cNxHy07P{sd>_>>P^Mo+^V#10mu7fMTCSF z9XV2=s;Zjt`&;a!EccAa+_2JjZ~i>|v@WaoIH!F{Dgu`w}g7VGNh_&m$l+~w^xXWo60 zq)94~Yt5!knc_9+(c{N4*P=s1*XG)%WdCn$K6PF{ATo02Ef@Fe_RCI&ysw_WCJwY= zWz(jrtmErqzIyn7esS>A*R0~p+b3WC6>~K%Cg#znS>O>UhAUUIm{(_YyCyDN*!N!6 zx-1|hWr>!S_EdrUVQz~9gY)LD*|1?l)$gZIpL$Q?;_4Q;|KMi$#oVms#fu X)!D z&G70~vE>UV8DG4Z<{9MaxiTp^*)KAG^G%cLcTB2kN3s+C@ALBLxNfd}eTQvc7Ut;p z>!<7T-(~gpneE=Q3{n=AZat;h=<0g3>iOO8TQfh0g@%Q#yp?ounQwIJ)~KtRs*#+W zAFWneW~E zGy@N}^G{Uil`r21I%w`Ew_WhorBSiF=PmuR<=xiby|QaTCFz`<+^Jiy?(=;AsJrgv z#n~Tt*qZhBB&?aXHe#iuaXRQ+w!`gw*Urt|Icdp<4+Xr^RuSFe`jZc4ggo~<`RdBb z#qPE5?rI0WHa~M|!@}m-HFxiPUAytt-B|GOAw$Dt@QC_kk>=S?cg^RWZu{5RD$>l$ zNXDk3V7p5C#^z8@!Fx@7dX{8{_1!cV3~v(LgtzbjVkwDbV29|zq$Wi{VS zJ-3Yi)}Eh}CqLaaUvGN!Q;yZwj-+i~x$M}gr}689s-nsv=dm*geBoGguHbh0n@gZ` zt(O+3&owWqSa2FrHWYLpc*Qe)=EQYpdcHVJhloAc81{1-tlH9tR%+x`V2~q_k@Z4W zeXFXf!WMZ$R(`uav>H{na^Pu=(jf$ENKK{WfF9HSsXdNf%YBeR^_kMl;8r%xs5ldjH|? z>-(B#wV%ByB)L;Roims zVlQv+uU9Ug*VNPu6zg_9-ar4sWPjV$`)z)0_?7aNuVklP@sAIJqN1YO#*5t-=blaE z@0z*(18e+!@a*{mpD)S&r>ETUoCI2}*250DxUg(Ux!BOOiPcYYS}XUS@`DWO08dKziR#6->x#-S1>$Y{>7vVhoWi|zV838JLziH)md9# z%j5Q0S)HOM7RVozC07dcy_}?eMi9U+h>WF!^+;d!NkIvuTs>=6znV zcV}G1N71`wzvtfCSscFi+nYIWy*xd`W}D^4Y}>hd<;FU*sTZ%j%0Io}$(uTG#@xU0 zcB-~cz}H*(GRo^NRDqTb+owJEn53nx?H?H)8oD&|{Js_Pb!XOX|NA0P`L0~~26 zX}7pR$MVi!qjR_Rx@=cZ&y_3nHcNeHZ}*sFH^bCj{>-e!pr{bj`*S6;8q}+qRnt9b zl8|ZHnV(UcN@jX_d6nF&eEw>gw3?=lj?bhmHAl@stE~HEt=HYSA(5K;^;&*??d&yS ztHahs>3T+OE}MJlQjo0avnM&>Zp|-aOK-Uomy{ zwH3>jxq%LaUu%AU#kSnXTe7Z7+5UfY+GzIKU)Q_OgAPIee&=_?p~Hv2KKguK!*1W& zw0-8@(q=X5g)4th>m~CH= zFdV+38#?j&J)PvDt~I~Etw{Pcdy}l~niR~ zNln$Nf2?}E&?mh#{7I?#$r+a-w>h(ietcM;dUtDV;P(5fuiwpG74>PSie|}yn_SYi zeyQi}AAZ{Np+C%i%F+c30zfMmQg78iXjptVZ~N=X{`Tv|!#soP>h`%GzgzzRJV|9_ zZ1m;sFWz5|x>YAFasU5k!msbIwLN#0J-Rx}HoNWDx06LT>n?qKtR4~;w{H2rpF66) zp1QKg)!QWdTa4$W#^&}fr&h0Dz3bK@^Z5G6@;~3o<{H<`@KKw5=+GgPq#prWGlkbG zIt^qPM-+ER1qdhNBp^Y-TLNu2cWeSUpdrEBZ$*V)@| zgGv)J)`?G5S-Q0J`jPB)*Rt2|S@7}k@vO(k&Q^WhYW`~O^A{JBtqLA2SZ4dTWs-H- zm070uU(L)spAA~)b}M_`wRwAge|h(1=GSkTZ?=EhhG&`iDQTkO}pmL(Z1vv@9P4t#_NZkln3uHNcs0yKDDDW`0J^s zT(;FMi~BApDu?XNs(k#sHGa#l16pcoZj(Y{V%CVqRYa=$J;^+FhQH+T+3neHx8I+; zsrHTk?cK!>e-w6gbXRpwWeZO>ku zHhD8>$73AB!!>8G|J@R`_SfUT-(UQl`ToVj_IKB@45z;;c}mVo@#BVVe3sG9Z9HKi zAydvtSN1Krm6;#5dh5NN$9iQKzj%>R`fiSrr<7SvhgGRp;P-cTRXlgk-ShVR)%>ed z>MU-jf1b9stE=l$Xn5SR6DK@U|CzkXJ^WpI>fFt-hK7cqy$N1kUY9N?rmtSL%1i!i z^o1vNrcdvI^Yb$B1Z{nN_Z!uto7TkW{r2Cyh(3$U4Rp8e{`BdSiYI8rsC53mwg3M9 zT2=plU)1Jjw}ZE@H(q*9*v&atEh0Ad?dDl$1JgW%9368PT-;l24jO`*Wm`Tk?d-hO z{m=BTmoz3=bM^DbFmPS;RVbJNs3DOLPWLseDPYm$<(vdODG#j|VA zp)58()Q@wq`G-R{ov#;fnrpNFl;`Z_rlz4mNpH96YHCis`|g(v@9%<7=E&ppTNm#I z9Vq&4H*Z(>YTg{X-+#D|zgUTV`2B8sZ0?U}$=safyfB zPYK8^yx{1Z`l@D{&TMm!ptoBN9CQ}7%9yb#T=)CU%I1#xf9&^Xx9@jx77k z$H&fUX=+}4r0T8e86H=-a>=cNM{Bp=4~>i4ckF-BnnjBiiAYIlZMO8fdi5&krsJ;e zZrOaNEfG4W?(SWF?~7h~?z}5kVr;9^Kbv;?rzYjqs4Z!)^~Mr z)$Y#QyK2=c(*lS3)Gr?4fq@(MMed9`-YRmzN7jNomR3`H~IPcTmwR|1S6T?r#77e_!8kiqLs=Y3Jm1b1fXxir3oA<51%|7|$5_h>e2l;dJR{!L- zzi53qUCYeO4Rm@%WbCdC@(0v^J$P|zYCwwG@XHh;O${5|_xd$CFKv)`*$tO$vUD)-%$w`kI2>r+V^EAEPi ze+Tb({o(vFng81FxVcqNU}|cN*G=PX4YayNVAFR{F0mTeM+AL}B4P z+dp@trOk7%iFZ%aFfZTk<>fVXg24KHwVO&Fwm!b9sd`iX`h8vSnv?ANHXq(>QNOyh zczK$9@xP{i)9Q0JzV*+2j~h>zv-P0$zaMLx7{M-Yc&4$lrYGlZ)c4N?y~q1joc*)Z z_uhWkfPvXnKlU$QHg8Pz{|{e(hcfm)yMNi^r%&DlL}h)idf2?#%w+ERy448>AO%ZC zCQI1b3(oxao(D=R6heA>QF4u;6S#SKufB;iW{PFAIgk(TDK+G8`L!Lod|Y7%Y&9BU zCER~b&WSnc=ek$!N!xraj=2K1ocu?xp|N+{qes^yqi(J-5)nT=W2Wc}FF)&lT|eGT z;_;1u3_YJyc;-Go0JMhf^gXSsS6FtGW|(tQNeQyzt>L>3=b}GCVV*vmkcF%c6F#~pJl$RbInIT_@%Zz|3H#k61mnP^ zDZ`w~KeK+q7RfQdm%BeWllFa+?E~nb07Ddeb+iA@A94lz_}09U+g7K)2`-ZR; zmXdw`#d9Yx#4$KGoYVE(6ty;L?=$PSH)gIrb;?UsRW0Mi1;caciUY`nmVZUJeb9S+in=$J@KR<8N*~x@_Vn_7yX?x9yhgp(B5cV4vD?Cet-(49R=FNpbBt;A0`8eL znudms(cAy6I5#)w%C_7)ny+=my2IASEuZt&T0}}}Rgc_DDYKFZJ#LG2rb(^+o!1N+ zg?Dvbx~uH%BG3wBmx>*$bj8+2ZuZ+<^!-HE)|YGa=9Zl6SlHFoHAMw98gEp!YZ58=f=Pk8fb6?;IS8~0v@b9bb!B{5 zJKx)szOG90bZG++Ol=ecj60`Fs2{Ps)l&1e2?K3Z`?QjxSk5Qbw@}K{d>GRir`SNbp(`BzqPaYN5uuk7yRQ&zQ?XYCb0PbeT_$nSk86v=tCO!oj`w0|(P!3~pX#b>xkYsa)4CHUIAV)FR`~AtWz^c* zn)UC{`7KXQKb@3yKX3Z(>h*PoX`ofzGtUM}nJfV9MF^{NTv+z*7HEBDh?CPEC8a}G z)mKmVQJegUn``Rq-R_Is=Pm}d|J+?)iYL2iy?2@S?XC3#i}L;ZB46FHbX8PT1T9ma zbSdcSl`AVYZ1C8*`}?aufzP${^ui`i6nr)F=Hj@!d#h7dxmT@na(2G5FLqK;(4^8Y zH$GO~{&MEc!aiAR&eit{hf?~?R_|DH6g=qUvFk! zYi+sqeCXSwM^*LKL*|h_Xy>~HvSu{|?)|*&OEgpSvz-xF#kvnUIm_O+E_<_J#R-ql zkT5O9eQSH%7K4&WVq)UgZ>LY6o~|M)BBr_T;O6yOz`n~$jl`DC_(w<5^eJ-wHUf!>_t6!)My-?=I$n_E^1 znGka5&N^jsK#X@&jj8H}m9Fe6TeY>cu35j|x88U5_EnoUd0iFjHp{)GwfgERKh2Y% zxrNABtL%%DQnj?S!hC&u`D84XG&MP?svKGEJ>4(r*Htc25fP9+Y4hB`!op6WN4Hl+ zU)PJ;mb28$%PTZ4ZsF3?`@(8!qDx<1I++_=Sh&&4%jd#%?dvPn?1@oTUHU8UuiNpe z?xTwi9a8%G=BD#o>n)cjE@H%_3V31{-Lq4Ye7lKuBJmJ^UsdYTdU4mosIu6bCvGZSGT_EEL~o@{%-!8 zjJ0u}=RP|VtFe0RH{UAp_%Gi5_gc~oBuXB#CU4C->UDO8WprTRL@B$H4Q21nOjQA0 z04~~1pJUB2C#`(_RGb`ch6(0Y?%`%!tj`FeD z$4r>aqqptjRZB?48xVik{Ez9jJ2#}6-uC8Po^$I}=BX(MmhIu%xRLuw-tS;~vh1d-&El zIXjC;Nxf~q1aaOui(cQK#ozDVe*C-TB0GDjdC8i*^u4lf;07#1!?VI^Co6v2CT>`_ET=x}xXLo$+dqOTA6397K9+Ol!!x zdC^yeA_Erp_};nrF3tLoI#{aV!Nb)PPTee&&i-zayz2OE&Bk?dE8@1_y=lf00an1! z_%N#^H2Gm@a{ar$_v_fU+sqWYafjO}0^BlW5U`lX7IIJSe7;}bh9c7b$72m`u5keo(-Q$^cHRQgY3CmkXmVd_597cdGp-ka_YN| zF=^*Nm$@Y!`7L!h#DE8u`I{vDx3B$u_vWTq7vD`!kJzcbW#wmOsO;WlJ!?K4ZN4^p zOnimA1_eg5Y6 zwynGN9EekbOdBZ_)YwLynC-4^8uRT5sL6j=%XHKHn40fjsw#_ZU*}3cddT;#NyML7 zA)Y;a-j$b`8=ht6t~;ci{(A4xEgs;Q^z%PkIWzX~`*%z_`EHS>f8M=buxjJQP~W{_ za;#zJ_+Dk1Oj@1$n$2O|p#{g9wDX%~^4-FBuDTqV%lo=mbiz-j#cRRFe6X+Qlgm8E zv3l3(vy!P-KU62@7Ja@O8S%{X{@#7Z&M~b%c1X_Og1cpo?D5$TR%tGrs$N=cBy=V+ zm-qJTPoWo%WI$#Q{p5XRBd=Tu^qJQZKCfE_H?ced{2?x-=nb?S2IygB!0 zXFm`OZ=9-rnQ3q3w9vz~dur>Ztadm(ySUQG_2OL16D+sqG6rylq+E zCaa$>&u-dWy6)Ut-+F28$5MOk_Q@rdesW>sw^x167#4i~=9IU#bJ*4gdl-EqZZ_V(IuUAqsgvRu4Iio18t+V3f+5{mVj%onegn*C3_=lnV) z4RCgNkbcnO_sQ84!`>ZQwd?dgz72C~cdfcU*(z3c`NjJu=AYkCbnV)d^V1%joN}P; z^((HD1d*Qq0^nfHSld*)WU9X1>`U?el|m7f)~8NgEj!D(c9wA7&sRG`&&o!Mz6gMn z-zM?Jhb7AwPm9@V`u%3uzCT}<$@_Bcm}PwE)a{jxrPG;h7o7@~kJ&mm$9|>eL*c~> zz@e8h_f9I)KAFs?Yu0KyPFbEfb$c+Q?W4?ur&>ocb9OIl37hnPIak%^Gg|rgSWa+2 zL;UUO$2OVYRrY)e?Rfff*Rg4{Yinoy=Fu*9oMygo>XTTDr)Q&C_pZEr)AftVn&Nhd z^BOKsU!Ue*`I+HcTkcuj^|N-JiX0b>&41rw`PA9JGg9*<_1mWb$e!VRTRy= z^5;NjCSnqs*3|FpB zxtTC;%kShPp~2H;UvlqX?;JcY@##wq?eyGxEn(}X*>bLsTK8G)%qO!w%Fwba=rZ%1 zXEv8tJuHv!J@Dz-j(5Kvel6w9+^~6hWA}b1?US1YL(Xz8`E&ASh5^`;f;6tS_6^m) z_i8qVc(;c3r{Do?!N;sAi4LPPTg#_=TEERTf^?H`MgEU|M%0P z+si;jr$Ky681H^-?u~wR`8lzN`OH+;a9v@(3r-^r1)rZk5RY#OJ9lfAu-n!bCI@!S zVGY~I6=uV`R^@!tsV-=+zr^h9 z^PW%sJ4-5Ju1#XFvv%c%_38_!Z0@TrjtQ5Dg|r}|y7bx3{wTV&V0~8hr+sHR*Z9rb zvGQTx@`Itl+oy{E-eC=C0XZ0a{9e2yDrwas@3XvX{KPKI5%m1Ww^(YoL(dX$dB<>2 zOJHH3cmKDdQ{s(RPdd$#{#PL!W4W85QNq*p0mQBt&LceQ#A>fi+28kg^?_A+j*T4a zVqyjA*}Z&ZA>rC6B(iv6O^uA_KHfF2#9nkSSg~{Qaw)mRif-=U0BA^f-ha?&pWU+a z*s_PSTAM0%$#Ev*xwD?nQXmZmvHQp`6C)}Rrk(y#(w>KOfOD<1{bgl zEYkJQ#p`VM?Pp%SOZG$f29XyGkWx|MLR40RZ}*(#s!XffWVx<1U*OyXHt@hpy#V9= zQD64_m;W|p`3l|@(kmDk7*tDKBT7;dOH!?pi&7IyQW=a449#>6jCBpoLJTaejE$^J o&9x1TtPBjCR8zm8Xvob^$xN%nt--kBF1W?u>FVdQ&MBb@0C}U;QUCw| diff --git a/doc/gitlab-geo/img/geo_nodes_add_new.png b/doc/gitlab-geo/img/geo_nodes_add_new.png new file mode 100644 index 0000000000000000000000000000000000000000..84ff70c5f616745ed9f03856975fd049aa2cfd67 GIT binary patch literal 64024 zcmeAS@N?(olHy`uVBq!ia0y~yV0p*Dz$D4R#=yWJXkVbgz@Wh3>EaktG3U+Q@`{+& zx&NyZE|)3ZJo_(i)Bc>(@88{h&AY$){jw9s3|j;q2{@fxmZQKqQD^6EiDYKBM+sl! z?yQd4m~$s(XL!ovrrm|p@64W+`ZX@i?b7pqikVAZ8fO*j+*|*=(w_fX&$&6p&tyD5 zr=D_7+Z^cv11W3dK7HpB5QKt>$vp2mV1P%W*;)w(n2$Z^gGrodFx;UGlQ2pkpyfn{ zsmTh9vaVNpbKibUy&h|`_|XkbBXg4<_12vo9V^0(X8NpJv*ya*-`_(60vz}YAja{8 zo$Yi!CHref*W&vxKcZ!T;9J+YniH^Nz&+e0`9AYIxrL;%6%dMU30Yl%RjB&)?v=UiGS3 z<(B=2Lund6ey69H&HS_fu8WJymBofTUfWCD0Y#eRl3m^DGHuzmUmbQuye3gfWX3)(;F3S&Z&8wf#a+f{s#-5n6z)APF&+h2xs4`E@6R zx6aSuyT0qUqtG|`ibP|Pnz!j#ObhsX)myJU`|e)_&foldHmv`bHSPZP`5?pe5QZ^_ z>?>Jz`(e~{dyhj$+2cyq)!fwCpKlNHYYf7#Y%k(Ybmz5a?{t{Cp3%-T! z`zG6edg~GP6G3&C-~Vm|IY=#@t^91Ss#R&l{B0>YA;+fWTGc#i((*aG*P?6F(Ff;j zAwgbut|)QgtT6j^%T~T)&*^>4_QPgJw#@6gnZCj7D>A=6-V_t@HdAk+5B~Nb@TMo3!ckC!qfixmfxYKYo!(}OZ~ra z+4j5qx47az{fjJb)vv7BcK3Gf_MKS`v�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 literal 0 HcmV?d00001 -- GitLab From e45d0c762e699b566f1f6d34c4b2f2f160f374e5 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 20 Oct 2016 23:19:41 +0200 Subject: [PATCH 5/6] Fix indentation [ci skip] --- doc/gitlab-geo/configuration.md | 50 +++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/doc/gitlab-geo/configuration.md b/doc/gitlab-geo/configuration.md index b260cf961a59a1..92fa56b5149e83 100644 --- a/doc/gitlab-geo/configuration.md +++ b/doc/gitlab-geo/configuration.md @@ -220,10 +220,8 @@ Host example.com # The FQDN of the primary Geo node ## Troubleshooting Setting up Geo requires careful attention to details and sometimes it's easy to -miss a step. - -Here is a checklist of questions you should ask to try to detect where you have -to fix (all commands and path locations are for Omnibus installs): +miss a step. Here is a checklist of questions you should ask to try to detect +where you have to fix (all commands and path locations are for Omnibus installs): - Is Postgres replication working? - Are my nodes pointing to the correct database instance? @@ -235,38 +233,48 @@ to fix (all commands and path locations are for Omnibus installs): with the value defined in `/etc/gitlab/gitlab.rb` configuration file. The relevant line looks like: `external_url "http://gitlab.example.com"`. - To check if node on current machine is correctly detected type: - `sudo gitlab-rails runner "Gitlab::Geo.current_node"`, - expect something like: `#` + + ``` + sudo gitlab-rails runner "Gitlab::Geo.current_node" + ``` + + and expect something like: + + ``` + # + ``` + - By running the command above, `primary` should be `true` when executed in the primary node, and `false` on any secondary -- Did I defined the correct SSH Key for the node? +- Did I define the correct SSH Key for the node? - You must create an SSH Key for `git` user - This key is the one you have to inform at `Admin > Geo` - Can I SSH from secondary to primary node using `git` user account? - This is the most obvious cause of problems with repository replication issues. - If you have not added primary node's key to `known_hosts`, you will end up with + If you haven't added the primary node's key to `known_hosts`, you will end up with a lot of failed sidekiq jobs with an error similar to: - ``` - Gitlab::Shell::Error: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. - ``` + ``` + Gitlab::Shell::Error: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. + ``` - Easy way to fix is by logging in as the `git` user in the secondary node and run: + An easy way to fix is by logging in as the `git` user in the secondary node and run: - ``` - # remove old entries to your primary gitlab in known_hosts - ssh-keyscan -R your-primary-gitlab.example.com + ``` + # remove old entries to your primary gitlab in known_hosts + ssh-keyscan -R your-primary-gitlab.example.com - # add a new entry in known_hosts - ssh-keyscan -t rsa your-primary-gitlab.example.com >> ~/.ssh/known_hosts - ``` + # add a new entry in known_hosts + ssh-keyscan -t rsa your-primary-gitlab.example.com >> ~/.ssh/known_hosts + ``` - Can primary node communicate with secondary node by HTTP/HTTPS ports? - Can secondary nodes communicate with primary node by HTTP/HTTPS/SSH ports? -- Can secondary nodes execute a succesfull git clone using git user's own +- Can secondary nodes execute a successful git clone using git user's own SSH Key to primary node repository? -> This list is an attempt to document all the moving parts that can go wrong. +>**Note:** +This list is an attempt to document all the moving parts that can go wrong. We are working into getting all this steps verified automatically in a -rake task in the future. :) +rake task in the future. [ssh-pair]: #create-ssh-key-pairs-for-new-geo-nodes -- GitLab From cae6e93e8d55510542cf2022ee7142c384f80cbc Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 26 Oct 2016 15:14:36 +0200 Subject: [PATCH 6/6] Add info about adding the SSH fingerprint to Geo nodes --- doc/gitlab-geo/configuration.md | 36 ++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/doc/gitlab-geo/configuration.md b/doc/gitlab-geo/configuration.md index 92fa56b5149e83..ffe6d76ccd2987 100644 --- a/doc/gitlab-geo/configuration.md +++ b/doc/gitlab-geo/configuration.md @@ -8,10 +8,10 @@ After having installed GitLab Enterprise Edition in the instance that will serve as a Geo node and set up the database replication, the next steps can be summed up to: -- configure the primary node -- replicate some required configurations between the primary and the secondaries -- start GitLab in the secondary node's machine -- configure every secondary node in the primary's Admin screen +1. Configure the primary node +1. Replicate some required configurations between the primary and the secondaries +1. Start GitLab in the secondary node's machine +1. Configure every secondary node in the primary's Admin screen After GitLab's instance is online and defined in **Geo Nodes** admin screen, new data will start to be automatically replicated, but you still need to copy @@ -191,11 +191,7 @@ user will act as a "normal user" who fetches from the primary Geo node. 1. Copy them to the admin area of the **primary** node (**Admin Area > Geo Nodes**). -Remember to add your primary node to the `known_hosts` file of your `git` user. - -You can find ssh key files and `know_hosts` at `/var/opt/gitlab/.ssh/` in -Omnibus installations or at `/home/git/.ssh/` when following the source -installation guide. +--- If for any reason you generate the key using a different name from the default `id_rsa`, or you want to generate an extra key only for the repository @@ -217,6 +213,28 @@ Host example.com # The FQDN of the primary Geo node IdentityFile ~/.ssh/mycustom.key # The location of your private key ``` +### Add the primary node to the `known_hosts` file of the secondary nodes + +>**Note:** +This operation is only needed for the secondary nodes. + +--- + +The secondary nodes need to know the SSH fingerprint of the primary node that +will be used for the Git clone/fetch operations. In order to add it to the +`known_hosts` file, while in the terminal of a secondary node, run the +following command and type `yes` when asked: + +``` +sudo -u git -H ssh git@ +``` + +Replace `` with the FQDN of the primary node. You can verify +that the fingerprint was added by checking: + +- `/var/opt/gitlab/.ssh/known_hosts` for Omnibus installations or +- `/home/git/.ssh/known_hosts` for installations from source + ## Troubleshooting Setting up Geo requires careful attention to details and sometimes it's easy to -- GitLab