From 3bc6c4bdc8605f1ccdf1732c0637edb1b2abf94b Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:22:50 +0530
Subject: [PATCH 01/17] Added RestApi blog on homepage
---
index.html | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/index.html b/index.html
index c1af9b8..9c2648e 100644
--- a/index.html
+++ b/index.html
@@ -156,6 +156,25 @@
href="./posts/github/How-to-Apply-for-GitHub-Student-Developer-Pack.html">Read more →
+
+
+
+
+
May 26, 2024
+
+ Building a RESTful API with Node.js and MongoDB: A Step-by-Step Guide
+
+
+ Learn how to create, test, and deploy your API, and discover best practices for handling routes,
+ authentication, and error handling. By the end of this guide, you'll be ready to build and host your own RESTful API,
+ empowering your applications with seamless data communication. 🚀🌐
+
+
Read more →
+
+
From 69b05d4c360b195e56783903cc5c95da75f58a5c Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:24:48 +0530
Subject: [PATCH 02/17] Created a new blog post on How to build rest api using
node and mongodb
---
...uild-rest-api-using-node-and-mongo-db.html | 353 ++++++++++++++++++
1 file changed, 353 insertions(+)
create mode 100644 posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
new file mode 100644
index 0000000..83f7294
--- /dev/null
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -0,0 +1,353 @@
+
+
+
+
+
+
+
+
+ How to set up your local GitHub repository
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Building a RESTful API with Node.js and MongoDB: A Step-by-Step Guide
+
+
+
+
+
+
+
+
+
+ A REST API (Representational State Transfer Application Programming Interface) is an
+ architectural style that defines a set of constraints for creating web services.
+ REST allows simple and flexible communication between clients (such as web browsers
+ or mobile apps) and servers.
+ It uses standard HTTP methods (GET, POST, PUT, PATCH, DELETE) for interactions.
+
+
+
+
+ Pre-requisites
+
+ Before you begin, ensure that you have installed Node and MongoDB Compass on your
+ computer.
+ You can install from the Node's official website (Link) and MongoDB website (Link)
+
+ Introduction
+
+ In this blog, we are goind to see how to build a Rest Api for
+ Book Catalog
using Node, express and MongoDB.
+
+ 1. Initiate npm
+
+ Create a new project Rest-api
on VSCode. Open terminal and initiate npm
+ and install the necessary dependenices using the below command.
+
+
+
+
+
+
+ 2. Create a local database
+
+ Open MongoDB Compass and create a new connection.
+
+ Create a .env
file inside the project folder. Once the MongoDB
+ localhost connection was successfull, copy the connection link and replace the link
+ below. The file .env
file should looks like this.
+
+
+
+
+
+
+ 3. Create a Route for server
+
+ Create a folder named routes
and a file bookStack.js
. Add
+ the below code inside the file.
+
+
+
+
+
+
+ 4. Create a Server and connect to database
+
+ Create a index.js
file and place this code.
+
+
+
+
+
+ 5. Create a database model
+
+ Create a new folder names model
and a file bookCatalog.js
.
+ For this Book Catalog project, I've created four objects:
+
+ title
- Title of the book
+ author
- Author of the book
+ genre
- Genre of the book
+ addedDate
- Date of object creation(default current date)
+
+
+
+
+
+
+ 6. Add CRUD operations to the Rest-Api
+
+ Create a middle ware getBookDetails
for this project. This middleware
+ helps with code reuse in find the book by id while updating the book details and deleting the books from the database.
+
Middle-ware
+
+ Update the bookStack.js
file for CRUD operations.
+
+
+
+
+ Define GET
function
+
+
+ This get
function will return the exsisting book details in the
+ database.
+ Add the following code to the bookStack.js file.
+
+
+
+
+
+
+
+ Define POST
function
+
+
+ This post
function will create a new book in the
+ database.
+ Add the following code to the bookStack.js file.
+
+
+
+
+
+
+ Define PATCH
function
+
+
+ This patch
function will update the exsisting book details with the new details by its id and save
+ it to the database.
+ Add the following code to the bookStack.js file.
+
+
+
+
+
+
+ Define DELETE
function
+
+
+ This get
function will delete book details from the database by its id.
+ Add the following code to the bookStack.js file.
+
+
+
+
+
+
+
+
+ 6. Create a GitHub Repository
+
+ Go to GitHub and log in.
+ Click the "+" icon in the top right corner and select "New repository."
+ Fill in the repository name, description, and other settings.
+ Click "Create repository."
+
+
+
+
+
+ 7. Config the git user
+
+ In the terminal to configure the username, run:
+ git config --global user.name "username"
.
+ To configure the user email, run:
+ git config --global user.email "username@email.com"
.
+
+
+
+
+ 8. Link Local Repository to Remote GitHub Repository
+
+ Copy the repository URL from GitHub (it looks like
+ https://github.com/username/my-repo.git
).
+ In your terminal, run: git remote add origin repo_url
.
+
+
+
+
+ 9. Push to GitHub
+
+ Push your local repository to GitHub: git push -u origin master
+
+
+
+
+ Congratulations! You've successfully set up a local GitHub repository. Now you can start
+ working on your projects and collaborate with others. 🚀
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From d8940eca6fbabb284278d8675bf8a8f994bb58ba Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:25:22 +0530
Subject: [PATCH 03/17] Created a images folder to store the screenshots
---
posts/images/mongodb-connection.png | Bin 0 -> 24652 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 posts/images/mongodb-connection.png
diff --git a/posts/images/mongodb-connection.png b/posts/images/mongodb-connection.png
new file mode 100644
index 0000000000000000000000000000000000000000..31268b62eeb35ec5906fccc95a4d1d69ab4ad9c9
GIT binary patch
literal 24652
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%0As{-Ko{bWBSVJY$b1HeNP5-
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
literal 0
HcmV?d00001
From 8672ebdccfe0d7d679490cdf45a2aa12a5417071 Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:32:05 +0530
Subject: [PATCH 04/17] Modified POST Function
---
.../How-to-build-rest-api-using-node-and-mongo-db.html | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index 83f7294..57c0b4c 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -178,8 +178,7 @@
This post
function will create a new book in the
database.
Add the following code to the bookStack.js file.
-
+
From e6642a3c3f1d6288b6cd8ca07b95429a23a807a3 Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:39:02 +0530
Subject: [PATCH 05/17] Modified Update Function
---
.../How-to-build-rest-api-using-node-and-mongo-db.html | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index 57c0b4c..15ca600 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -190,8 +190,7 @@
This patch
function will update the exsisting book details with the new details by its id and save
it to the database.
Add the following code to the bookStack.js file.
-
+
From e9c90e06ae99be45832410a1be86b27e0fab5983 Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:40:16 +0530
Subject: [PATCH 06/17] Modified delete Function
---
.../How-to-build-rest-api-using-node-and-mongo-db.html | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index 15ca600..289a693 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -201,8 +201,7 @@
This get
function will delete book details from the database by its id.
Add the following code to the bookStack.js file.
-
+
From 68533dbad4125bfd51e60794096d2026f7ea60ba Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:47:02 +0530
Subject: [PATCH 07/17] Added content on how to test restapi locally on vscode
---
...How-to-build-rest-api-using-node-and-mongo-db.html | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index 289a693..4fe7cda 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -209,12 +209,13 @@
- 6. Create a GitHub Repository
+ 7. Test the API Locally
- Go to GitHub and log in.
- Click the "+" icon in the top right corner and select "New repository."
- Fill in the repository name, description, and other settings.
- Click "Create repository."
+ Install a VSCode extension Rest Client
. This extension is used to test
+ the api locally inside the VSCode.
+ After installing the extension, create a test.rest
to write the api calls.
+
+ Note: Don't forget to put ###
before writing your own command, and replace the
by your own book id.
From 49652f6bfa98a29a31368a0057cb84ca218e6272 Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:51:48 +0530
Subject: [PATCH 08/17] Added references for github
---
...ow-to-build-rest-api-using-node-and-mongo-db.html | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index 4fe7cda..cfe8b23 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -221,12 +221,14 @@ 7. Test the API Locally
- 7. Config the git user
+ 8. Push to GitHub
- In the terminal to configure the username, run:
- git config --global user.name "username"
.
- To configure the user email, run:
- git config --global user.email "username@email.com"
.
+ Once you are done with the API, push your code to your GitHub respository.
+ To know more on how to push the code to Github repository, checkout these blogs
+
+ How to create a Github account for free
+ How to set up Git repository locally
+
From 941a34a5c6864a1b57c087790917401012989432 Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:58:04 +0530
Subject: [PATCH 09/17] Added resources, deployment sections
---
...to-build-rest-api-using-node-and-mongo-db.html | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index cfe8b23..6b40fbb 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -233,24 +233,23 @@ 8. Push to GitHub
- 8. Link Local Repository to Remote GitHub Repository
+ 9. Deploy your API
- Copy the repository URL from GitHub (it looks like
- https://github.com/username/my-repo.git
).
- In your terminal, run: git remote add origin repo_url
.
+ Once you push your code to the Github, deploy your api using serverless platforms like
+ Google Cloud and AWS
.
- 9. Push to GitHub
+ 10. Resources
- Push your local repository to GitHub: git push -u origin master
+ Find the code for the book catalog here for reference.
- Congratulations! You've successfully set up a local GitHub repository. Now you can start
- working on your projects and collaborate with others. 🚀
+ Congratulations! 🎉 You've just unlocked the power of creating your very own RESTful API.
+ 🌟 Now it's time to unleash your creativity and build APIs tailored to your unique ideas.
From 4cd7bbdef0d889767676d62861b7082774997a04 Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 12:59:22 +0530
Subject: [PATCH 10/17] Formatted the html
---
...uild-rest-api-using-node-and-mongo-db.html | 62 ++++++++++++-------
1 file changed, 39 insertions(+), 23 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index 6b40fbb..5445c22 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -1,5 +1,6 @@
+
@@ -77,7 +78,7 @@ Pre-requisites
Before you begin, ensure that you have installed Node and MongoDB Compass on your
computer.
You can install from the Node's official website (Link) and MongoDB website (Link) and MongoDB compass (Link)
Introduction
@@ -150,10 +151,12 @@ 5. Create a database model
6. Add CRUD operations to the Rest-Api
Create a middle ware getBookDetails
for this project. This middleware
- helps with code reuse in find the book by id while updating the book details and deleting the books from the database.
-
Middle-ware
-
- Update the bookStack.js
file for CRUD operations.
+ helps with code reuse in find the book by id while updating the book details and
+ deleting the books from the database.
+ Middle-ware
+
+ Update the bookStack.js
file for CRUD operations.
@@ -178,7 +181,8 @@
This post
function will create a new book in the
database.
Add the following code to the bookStack.js file.
-
+
@@ -187,10 +191,12 @@
Define PATCH
function
- This patch
function will update the exsisting book details with the new details by its id and save
+ This patch
function will update the exsisting book details with the
+ new details by its id and save
it to the database.
Add the following code to the bookStack.js file.
-
+
@@ -199,23 +205,28 @@
Define DELETE
function
- This get
function will delete book details from the database by its id.
+ This get
function will delete book details from the database by its
+ id.
Add the following code to the bookStack.js file.
-
+
-
-
+
+
7. Test the API Locally
- Install a VSCode extension Rest Client
. This extension is used to test
+ Install a VSCode extension Rest Client
. This extension is used to test
the api locally inside the VSCode.
- After installing the extension, create a test.rest
to write the api calls.
-
- Note: Don't forget to put ###
before writing your own command, and replace the
by your own book id.
+ After installing the extension, create a test.rest
to write the api
+ calls.
+
+ Note: Don't forget to put ###
before writing your own command, and
+ replace the
by your own book id.
@@ -225,17 +236,20 @@ 8. Push to GitHub
Once you are done with the API, push your code to your GitHub respository.
To know more on how to push the code to Github repository, checkout these blogs
-
- How to create a Github account for free
- How to set up Git repository locally
-
+
+ How to create a Github
+ account for free
+ How to set up
+ Git repository locally
+
9. Deploy your API
- Once you push your code to the Github, deploy your api using serverless platforms like
+ Once you push your code to the Github, deploy your api using serverless platforms
+ like
Google Cloud and AWS
.
@@ -248,8 +262,10 @@ 10. Resources
- Congratulations! 🎉 You've just unlocked the power of creating your very own RESTful API.
- 🌟 Now it's time to unleash your creativity and build APIs tailored to your unique ideas.
+ Congratulations! 🎉 You've just unlocked the power of creating your very own RESTful
+ API.
+ 🌟 Now it's time to unleash your creativity and build APIs tailored to your unique
+ ideas.
From d0723435e6e0e4d4b2d86e126ce9958ee4116d57 Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 13:00:36 +0530
Subject: [PATCH 11/17] Minor changes
---
.../How-to-build-rest-api-using-node-and-mongo-db.html | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
index 5445c22..d9ba640 100644
--- a/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
+++ b/posts/technology/How-to-build-rest-api-using-node-and-mongo-db.html
@@ -77,9 +77,9 @@ Pre-requisites
Before you begin, ensure that you have installed Node and MongoDB Compass on your
computer.
- You can install from the Node's official website (Link) and MongoDB compass (Link)
+ You can install the Node's from (here) and MongoDB compass (here)
Introduction
From ccd5cf234ac8cb6a1c85d2bd0abe314f24942d2d Mon Sep 17 00:00:00 2001
From: Rupa-Rd
Date: Sun, 26 May 2024 13:09:17 +0530
Subject: [PATCH 12/17] API return screenshot is added
---
posts/images/api-return.png | Bin 0 -> 81768 bytes
...-build-rest-api-using-node-and-mongo-db.html | 6 +++++-
2 files changed, 5 insertions(+), 1 deletion(-)
create mode 100644 posts/images/api-return.png
diff --git a/posts/images/api-return.png b/posts/images/api-return.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c4671b5b327b45b5ffdc9e8e8925e12613d6289
GIT binary patch
literal 81768
zcmZ6y1yoeu7dDJY2oi!KAtfmYk^|Br-8FP7J(PeTor*|z4Bf-f-6cqez|bw-T|<2r
z{r%Vbe(zmt7HgP0XYM(>p1t?8e<&+T;bN0vqoAPR%1Dc=qM)FIQBY7HKf(b1gXvBj
z2>f~As4DdyrFf8h6L^DWE~+4kf>IX#`1%7n@E+@vw6-G(3SRsD>p_J&Lx^uOntQ`!}2H@sueIbH_wX{a^I_?_wewr^$83N
zw0-TgJ+2=9^5x5|$fK_Gw(yLJo2CE9?diel>FKHcw1n!sJN+#ofy6UEv;7gQ80kb5$D&iH1bl~vCR0F0<|Y#O
zEtqm$ef^(Q_dU@jw^J~?`sB<^`^?OXFAJW$vvYG}-1j%rWM+OPg^P=Wv*&8i*%?ZXZgAxAS78m$OAWZ9(O6J#FmXs>X
z@nn(D^fs@8=q{MrIUbp)>JQ~
zB@wJj;__&f!~M+qR9gK0ilM*&mffiSvN>5*=^GRfMK1?WhntZ087XeT44T~3V;_8S
zbR5lF3qccaZ*M>B=Nejh3xlAku^BcOV*ERU9rkotV5x74ez_x?;LVX7^{3vJTWoZ+
zRVrDM2d4^bqehRh0&lPOTPA_sh55lH*-w9Gh`DSR)tu!2eF|~yisO?L4>4~=;4D|P
z3-Y1kEVI8TK7B%qdaAI@Z;omHc5fhOn^ts!w6!i(HrLd^ai5
z=~ZB_`r-W)QKYFkmOIyCmnIww=t^MV9$i16bD1*+vJlQFRTF8|WkLiuhX3$zEDqsL
zbX&rkKGM;U2|9ZEe4liVZikW2b6SHIy|yfN@>!qPhtj%4?yj@^n#;YvqKTdF&U|-V
zAI!HbH*{P!ON95!|5MD_j{(dC1VpbTTSq*k`;=pMz#k$rpl-D4xYHxK_7&;*u1^po
zCe5xs2ohfJluK^o`c>dn*hNyarr56xlCHR0?h0RS^?eBEg13LiFF@v3LB>?mL^~Z{
z1P(H*f!Nx>|F^0I!ld&xilEqT0pGp>1}B;Z6^KiOf0=V4=2H7{zvWj-N6(a<>I*2{
z6bgN@k+s`GxWiVeVu<`grS4V=1q0hqyz{pk%aj&8Wgs`)liyuj^N>w`W;+0#+K{K=gvD&zi^AJtw{;dFb^8Xt3a
z?rHJ%@^fn)UIGFYN*SL~!CIyVzv<=T()AmhkukHI^Gyv~AEcNmB4+*0`
zd=*a-O!h&TXt6%j9LCy{7R}@s>U&T;E#{%OHXrs)VVi-5hBOx35AbQ|ZF^D-hJmfh29cfHy!PkQy
zds0>?vE1$FU;DfEB|m!Y_Gr01CrLrv&s-;}ru1+^f?=D!4YXbt+xewvoRJTa+(eps
zC*F2{IL&xuE3PyRJ=LAO5P(s><>SjoneUB#t-c29j}B3JIZ8jdxxHP``Rzoq#pUp$
z;MGnA^CB?`Nx}yTz^AAWoSPyGwJSzYbE4+>9ag0K(?mpUpw@l0_RFQVbNr|LJwZ2n
z4f~&Vr$Hc*mKYXGd=i8-O~M!L|nBPo7o9oVMY1iE!h@6U}4
z_lH~$DMYzG&24cOxSe8{5{t5gkQr8;)DPTCtNa^cmD?{ViN{9uf$FA$a2_4)>3W*C
zqHdR6%S`~_TPm%mR8Ps-oZby^shG|k39l8#qNM+kDhJ0GX%z?L@3-XrFTRNGae@09
z+C~Wio1@ah8(Q^sbxpLAEoc4ACGZ#BP(vgW_DuDC5hUU|k3*(wZGj-8E9#dSZg_{&-f{T!r0%bq{>)g)ckk*y=S2}dAbbT9JnVS7r2@T`%L6ZXT^04d2XU%s
z7U|@y1sDFG!~f{`4rHu=I3a_@fm9~$UJjgcjf*Rk_(HUwo<4iiTVV6oEN>&iD;Dr^-3Ga8m|&6(P#M
z00O?gH;lRrk(wXeL;KGnLLNGXFM_i<@W?NBsKX4#iDhXO?rxNME~v+gV-{hSjU&TG
zg*q=&R7_1~>VW|0?7ZBG3nCd(Q&Z!@VPaxBI66{2UixF}7Q)5syiV1_?|C+5UgmZR
zA+jC_GRbU4ZWX|nnKog))S^>X6U9rhng+vp*;eC)iO~2o**NYSGcrQLOv=BGGVqo6
zN_|g@m8ItH9admCcW6U=G+P-*VEOX{mVH#>-Ip)$+HXiE|#8-3?Tr*KQ#J3i9I
z$!zZtf7{Pveg7G7f!XC3s_&isziT7+FS7cpb~H4-FYmDfY?7-NHM`nV8Mo8Lp7h^+
zunVJiKwJ!JBBYmvEd?lvfk>8rnNt6!uKo|y|62jjZSs%zcLMumGR#0VAipAP*0})1
z6={Xto6OM5`x`Seeg1wUlji5(Al{HLFZP2XQ~(D253yx_{rhq67Xt%>4MhG^3>*@l
z*4B5P5HnS=YROQtTENMUm2-aHohBk;2LFz)t+)Ukh=J_v=olFOOr&|YJrxW1cn=@-
z{yr8n_TNordZ;yfxDq|t9WQzT2j@GCD%M=z+zbQJD27>`xhT50+_dix;NvuW#|1)n
zxTK_{k_BA}<>FZ+JUkkOzyCdmAnf}S3VdZ)TU(nBKv!mJG6DkMhnRR9j)etUWi(sk
zMFr&?yw;OGrhRcAegzRd!o$<>9Rr?u&VFD%r>7+_EJ!u{pCnHHp{z@qH*fIP2UFUs
zZDvZHcXf!s17Rg4CD_z^(^Zenhf;rqzTk~WP7b-bI$s{ikz=+}m&Kgi+RRG}NJ~o-
zj^m2b7WjYBU*M~So%yC00OV9|8{Uzwa8^=M0$}9Q_2n@V+&Vu`dAdCzmB?v20==7g
zkD9r(wB)juXzoA`2KnX3vl(jqQz;eaf5-No(N_%%-r3OsD+H640HNOPd@qzi0ovNu
zCd$evs;Mje?qtFHPMsdjf$)BX?|2kHb?usRl$tBO|xwc$Ka}`u_WQoRR_4!SX&d)U|xMl2aI9Fm_l}`Z;coWqI{-@!>vKJQ@
zE5&a~0YvdKqBTiHN{#Zb=Nqw}ZEqJFU@O+Cw*C=VUUgCyB1^uIBT^A+;)>nl#v&x80{hDw#hAe+%DaP7(d%Q@c!c4)_w*Ko^G$OQta38oR6v=Dx`(05DY->JC00W0C
z(9`|=BeHT6`QOjWCS=?v3^iZTI{f|oO5M+GJ32da6&gM*`N8v`X>H&SCh&hb&no)g
ztVh~70CL!?oYTm`306ve>&t79^nZ;1J^>RKmk_tGfNhn^^-|-Ib3Yjz97K};+bi?E
z{s6$dV!mn=BQulbLYaLqAmHclFu}RV1%D2@3n39$-QVlUwyLY#eJSk
zk-U_Nt9YiEYj3_=7p*o;J(YZRb_U?tPs*pS2dGS4m+Q(J3kqJ(&d!ctxE7Tq;~dSp
zP#vFkI{=BBrGG!;-+g5M`Rg|8cXP5CXqhAe=s>B-$;mt<{e6!T;z=XywFeW-8UY)T
zIqkH?k-U6h%;);XzpRmCKr8J&Px}8a;@KgQgz=bn#|{OLS9zrDD_OizF2R93ke7-o
z7)MwVZp4_l$Zno&-ZJ>&^xrvA9GtxUKl|8jTe7{|I5}1h=}h^lfaU$
zmCt6H+Y^TwrT*hD>`J=@gS03CAoo^HQMFlU*8d+i-zf**vDud=nYl(CleHD3~5oxZ7JZfB0q`-NA%g!|1KMTKamSoXLHz=z8g
zu`w`6hRW?(9tE7%T-NuJAOdZE-?&8tjX|fg;vUg
zmpyR^Jz{qwRMGG43-DCeeQ7=@B@NwSLlTj>|(U)Ki(vg#+%j7sBOK2lVkV058}
z4X$^L@jn9*FFV_q}2%HepKwrOF~9d)($
z9C7$5tl%HGt{39C$EPL_v0})wX_;Rt-0ADH6ZZk`M)m
zlb!i$d8PKtl4FrXDxzeFCOqdiZX^wHf_{0(iwyl}*~#*B{4>`5@7l%{w{5M@i^w#@
zwUroa-_Fpci@JJ321#ZroNd`IG>#E@xk~Z7$%2_VP{zLQi=gwp(RgNZv9zNuM#Ixq
zfl+}h4|L7XyPE}_=0p2IK0N9tIUCN#-tD8AK9}_ta6ZcT8$dZ>c#*8L;j1**m14eF@Z`7TWaZJO4TJ-CODj!5sE|fox=k
z8L%QE4!CPmWyVCB+<4w4^}wFp^OzH$#AH>{l@-gw74mq}_>~d`YVHCwh>g3%PxS%~R&EGF+VrMaw+0Wu7f8L{g4^@4PC5S@mG@V6
zYa>mQ)pvwz3L8GXt9oTC=UFay+jGdMI!02sTBWvVMF;GwNeqg%z`B$x(}@``@=WjmJs5ULNT*
zPTOS}+M<6sKcQ;qzd5-fDAf1VqpAokW98HTz7xO3`r6brgjHKWm_T!R>~N}dPrkZq
z-M86k>@1c=8+E28xqTvSe{6ly%Ok|GO3a*USIC+63=uQS$
zuKQ=xpwS$6))=Pk!X{0b-GxiAUK3&Xf+j_KT&Vdey~0FDQCD-Wvu6*-X_13^0h7rMdV>Ha*InD$+pqj-uduf)8T(pu<@P0_-i|Fk!of_Hhg
z@!50#@LZdr&mjQxU*r%2QUF_bNlaxz`4m1!2Dh`FAEl-2pEpM&23~MmJQ++8_zr;P
zMPE$H){Wt;GV3W$aVaU|EkwS{R(>90oBn{Y4Lr*425U9kpKlt@5W^&zB|3UV3MaH~
z0EOP9r}8vabB79>o0SOHzBoMxh1EFAgadfV3mku9hjOwq8
zXRHzn$Ao0Xe9zL!Yt*beDt0+3!`O&xFO*{@i86irXKHQ3%e!+~Ew}J7CFw?9n63tt
zyU1tod>qkrRP6fB^khq4D&<9|(9Ex2lnPMwj*YS+PLmJMPh3yCQABV^MwCtcF(dMIxPUVrSbqZCW5Az-;|}AZj>JZmgksO&KZx
zWRxpHC;O-k-|<*arlV#9>6S8uyy;NoS2P*#+e>rnk@1(&HT7Ns>pl$TOr*+u8hFX^A?)Yygsc@_|C-=o7SmVt^?xvJ>`xv+;;
zQvkN&M^$Xa)Zm}7-7X!Sj0MNsIV2uWmE>iAeS4kjV`fsxF_;woQESd>mx3=m1+6J;FSHMut9ye)p`6g>lqI`
zwLI%i*oT(<)r#JOm=JMVm@!V=b~9z7kE40X@ZO1N6P>CVxl~MxxpLIv|3t5%)*f>K(
zt%l*{*as5&O09mE?gz663+!u&A_vPs?bCG;L18JL$^!z9+mEr3r@QNUsdqKYer}Z}
z+lP@<=!$9eVV921`MVLK)iTvZ*4o6ekv6Zok9!M3xX5^z!aF*iRZ*FEcOwlwT`A74
ziF0)fx;^Ch_|66g&s@@#^qo9=kIDxeQapw2YLLkeO|lw=^!Q4QF-M<%$H^eZzo2q(
z$RLwv`*zESm*S1bjO9Pms8+f^v5om1#z+gG+?w~4sPNo(YuPyM6&pI*Y5E=D`hD$S
z8xSr|2O+`SEuB$3YhPd>dfyZ$b9-dOlUQGPZqGTHO$17TNs4TQy0pxL%`p*9PC}dM
z%Hd{<`usr{f`7%kCbG8nZR}=)%?wYWe#2SrgOOljwm&O9(Lg~I1avk^P{(8L-WUd}
z4Q%30WD-VXds-^VHv7sEj8~*O$U;hG71WF)bc$3fK(C8|jhbpX7GCX$?r0+e-3F5F
zcgH@<<*|vsWM)vI;);A%`u0nYTPKX<@I;zLr=G;F`B{VDTVf@QJUg0;|rahgI
zD-bjDGEX&bVG#4!th(do`NDmvWypl|Yvf{B3|a(r?}#1VpCq=kKmGaAyYms}N&bb#
z!+tjjr)_vdJA@yIjSrT;d{=k09U4(&rXAF4?_50`>8OUUWg*OC+#*$ZRiX3?C&KXj
zh4jMS)W$-Jw1F2RNoJ3G9yPWo>B}cMv8}OgWZ=$mtTr|Lo^0`J7C&Rwa1d+2n}-!P(7|!k?cKJneDJvNM~k
z$tMKhVEVBqPgA}&x&K7mK2cSqzEG~kMw2TA@se4kHOQ)eIh|@jT8B@YU9vRzy@8pX
z9W^@7acX1uFE2+U*89SeMf@r4vbUhU>oLY6E?Q3~1x#3oB9e^R6s`v7>9VQS8!#oL
z7~w{20RCy7MF%J0{>+vU@&)ZLrhFOsKE`-@DKXAe$TKtl<@pX8YHCNeufpl&FT+va
zXxoAzF>x@M#Pnf5muU7`KALpV=44qG^J^o6cEqa()Y|1W1#=BwmOHRU<42R~oOj8p
zZReoRV{-lMPvq(9g=?^P18xFYuin5dZy2t9K}(YA4+KN
z)}cN7>hIZ8xxN;qrh0gA5i)c6^JKtc#QPgO5266thgi&Jm-PzAvmE+pJU}KlPL=Hn
zN`_wuu^Mxq^gA_PUmI#9T_Zuv-#fm7uj|fCbl$ysO*r{ltyA5!e|OSNF-_;~N8>0k
zdnfhjtM6e4QoHpAmQ^&Nx#Kq&AZ6c$9qH2j;s&eMo+-+t@$Y7nY}z3EIEP2HX%o5U
zz4fjQ8TwLoM6j9Tgjv$x45>KKF3I}9Dhk3nO={E&sy=!R6wV?
zIK=p+raJrJ^C=1{Il_yk5_i_vL^s))iSKwTjk#5;uBLruEgno7rp<1#_HA-cr?ZbsDQlk_wyf_xHdo(Q-D->*qIsb6a^~g0&3=7ey_+qXe`r`X9W`>kzd@xes)1~!
zPM!;cuM?w(+{@m>sxlr5+shqdA}5#472;i4n=H9pP3Wx$K~`m{HOfaSdOtGKWctMi
z`#|VF;}$+h)(fS7?nweT3660cJ6Bb1eXU?Bze3K46Mpqy
zLxzlNtAdHk>(*l01Qd%Oi!LmmD*2Ze#zG1zGR*B)O1YC1I)N?_K_#tpn%Y~s3$^OP
z*O^&Ql^eo{=b_^=rpq!166HiW7}>6IA9H$bKRHylj~%=vT8WmI)Yjk>GxRL*hdj3q
z{rr}$Pv&`Yp{7C7XlnC|OHJjOPdwbrYEnF$w|)386WG_Nh#C{w*X+g+I;aH$I$%V6
zd2yMyE5c4$F_v$#o^QF1It3}Mw)=XiEa7}u5x5QdRxU!i-0`7+Y?prGwk8=|>H`Z$LhIP{oyf)4F6*ZXkV^n~YKnBq
zNamu!e&v*ERTXk`#rLaVZOAxhqmj@@SfIJ%f*`S-H%;3x9cb|LoeDlRu7+h=lcbyp
zH{&~*15JJ_r1kt>(k(l6Ie!TNL*-iddd8@gr*NeWNAFQIt+mTx*kmFNp-L4#1QC^IGR1Mx?MD@~eO*i8`q
zch0fW>eI=m1S-QZ1wIfyrA3`uruK~51{c2bmQPO!hIhqKQ-B(37hB7&%5WdeFz7)mIbR=>byq_u=4zlaC8
zqSBHO7Lyk>#z3Je!;r*K7=K;jY5!g~Ry#fg5aplZ22ZfEVLDonKHD##rH>Vh;
zNE87}7v0K%I#Df`n^SzqMC<~k#tgVY(XC0jz3nDmJ^G^kdogTniZCR0H|{*&fNR;g
zkFVL(_?4N`LPoWE+}-Yk@mpfD95+W^)CE=SKhWwldbQ(k@wx@AS0{D)2d!dGT%g4G
z^UdQ=LPQ>hH^*g_IDN_WQ-@`e2DB-vLN^|dW9t%Ab_QSThBtAe@)e{6mzk{!uL!ag
z*@(IBPR_||bQwr*qM8%C6Mgb@mX`w`GkxpmFe%h`B+paK_GaWR7f}#lzRq$xj&Hlj
zXd?+BD}JIptW?`5k|85q@G+2sJz>X-<9-;LdO=uG13AsJWbylQ?1PX6GsH2pNE+
zODV-vYn9NCI_vdS4s7nXJl`ydLzbG&WXhtO+!pdK#K~?TXQM4#LC5AQC9D;re>{td
zj#EMsTUBi{zPs+nA*)THZycO~^ec$-QuQO6?utseM?a=zkaq?D4`;m17OGs6;hD<;
z>G93uA(4`DMfyo7QIELiawspjOO4BX5RnJvRLRNR06M-WOq+BlFI0FO%}Fx<%lBKu
zIyonG6B?VE#=N5C+wK#6wW4UsI{~LH0I9tR1uB9s1qIg?^{mZKIwtp|Wq&aaa+FO#UN<`r5d&M%6cJS*j#|
zaV1i0Y5LM8j~}{uXk?R3x6qpBc-uZqtEv859m*;9TLSu_Liue#(WlqoTz2~jLbwfw(ZWyiu)5`(p
zvhZmO7p(m{s&7-`mYn>h<#Ez>hVww6XWG;9y)L-Wx=Ao7Lif6ts7)iuu}?T+F#%DS
zB0#&5>m+8{;JF>6a;09*Pk;4gtu;Wd;QHtC=$vo=<
zDp5Zh>M@&$2uW{OuKj6ZiK^b(lr{R)Ffnw***rrDK=T&eh+X-^;;m2WSs&$le85
z`U}ZvE{f-RCh#2ll@7ba+rXeRca~vMY}y2(b}U>LmA}^
zNiZJ3$T!;0A21Ug=+!^mp;J>vz^dwz*&gGfW~L9YjdTl(97C()-Q|C#n;~hKEp*5P
zh)MP>HENvCqfYFxBnvKaatR5r#-7#)uf!1`nn-)Z73Af?rYJbOGc}s@D0Ek`8;T61
z`6Hy`yNVFeHwi5-zMmOt_!9PXN8_2((JDchll#
zQ@-T}mQgLp^(?q{SwWJJo*vg1_-M5!NRY3b6v&U#t>deV;M}}%VTp8~OiASj!Vujt
z{WDS1R@Jt>$u|}zyK8ZuG3Y@|=X=ZZe4YBKN`dj
zQzR82t0%?m>Njkld+NA$mCK15b@(bg3hQ;3>g@nu-T-l~TM7MGGdr}pkJ?x4LyS)Z
z!xbS4_m_%gDcL=IT2)Z@+|!_>6wPYNE1(Foxc3GW0jChdBJTseoJ!qq
zsUyAHeOpqVO<$U<-lZ}{;hrVNq`fAxTcO};`VdHv-|ga;a1JtGB&B=WT85?RI(SFh
z4E;!^{Oi*kh?LRKjDAoyzGh9~*M3~6u@}?|jrw5u95HGY7l&8dm1(vK+R=-!uNx@e
ztG|`jwW@IcJ#zd^!@PR~Q7z_If}9*k^lPhqEM!L+|
z7Qis$G6}GquEYXLN8oVrFPW1UbaV_kty67ytE_%MD3UY-Dni@xGq>DKPyzJ3w6vMM
zWe<&JK*SBK(H3{)qXcog^7NvRWHYs-T6n1q7MELN(J?M44;|
zHs$u+!gWguu?JV_-Z5#X&d;YxkH@txAN1>1Xj6NqJgvq~DEy-K8IgSK2-Z}Y^G;3$V~<-b
z&hPy=baUA8bg2yb7~;0xd6u?#T0>E^+r8Vpu6D9udz|_zUo`6|(d}|b){E+10krCH
zV9*_HXexa^YJpi(pC&|47oFj*dZV@%z#rVq8a$z|pNqb?=g`v~tkBbWSCwywySUQU
z-`4*40}mQU4pyUOQVTdmF_U6r1
zOPRNXy6Ve@+>N!y#^g~>Zu+;(iH#tLD|~VGwu$ti;YeQ#+Ik3!Y|n+~M{%{7VFO0(
zA9+eJ#SdYB^p*d+ypsZbzmpSjbH
zLeo`O=6i`RW7jPo>3N;PK=`l_Oe8{OV(87TAXhP!u5`KqMhWK|xV+zIFNSR@q3YOP
z%JF#yIbMM?*Wo5}e2=OFE0&A3*Qd#Wfk&Ff5SY$bKe&Aqc4?{on47jo`bG;Kzi5Je
zEH7_NaG?HqKALFGyrnG!2CW`09E5S7Q;idD5*f0>>WhhOCgYOFmB-@y%Ab2{%vkW~
z=Z!zMnvoO-3-%CukcO;JjVptit2X*xtjI;vL=QAib|XjDHVYN{!ixHIM}bDhOl|U?=*dQT6Kk&$_&SxnCVWv_56&rE{<3>z1BtPA#v1Cmy+Yx&VutCksU
zlsM^@VblGKLI~9e&YR~CVoP6_F&i;Di5%;QRYAXiLek!frs%4=881yNEbh15j;}w*
z!@3o``}n$`jX!_JLi^zejFd^Cp7k4=VH;z`o!sNEq#!QV9@hQEX1R-_Q6bAdvZ@yp
z<=&9LSHg4
z5ICCcbaS@G%&o^PuC5`+&3fl6sa^YD5^X3S~si-O*D;k4%O+VcgvBhe0IH>
z(tT6VYH=C2$hp+awTLuinXVk3!5rdg<3-VTE8zV`cJ67m8t1WR)P!-`)1go=Jm1}!
zf_36IdaVt1P3_1Paq-Jn$A-3bRabU9h}+wuCG*}?aAIua8c1>gQ;i+8{)T1;e#=d@
ztIeozG5|f=Ce0;$HrO~Yo$eP?Z7ru5KNc@n;0fVNKv!TZ{M7}Sj-S4bBg7cWEO4y`
zDn;7n9=yYpW5lu6%>~`pjUI_Tn^womkDsd8mmQ@=CtS@v(5p*LAH2Efcy|5tGu~5?
z`43f3b7tSZaCRn$i&n2GK)g@85yY9xP?Wk0_(7Q0LXxSjDcg-fI2MVvYxxKVq!9_~lS;2kxF$K&VND-SOA4y4f|z`^_V&WCiC)9j0RpFV0p1qVqa%hoh&*ALNMs##OE*U^U;_H^
znKL0CW$ev*-Nx0V@L!1C={^yFj4{W*%n%|~u{Q8&bA-O}d=ISm)=o_Wpgo$>5(6Eg
z4zB&f`RvVimgQd9NulYvy;`iHaqTQ|MYBZyECQvyzQNws8Wduu9)k$c=pWUrLJkWh
z&Fn>*GlPTWvBYK0$4u(FW989BxerH0zO&AhGivFknac^9R5#~7bcd7-b|d*g0~k4D
zu0@|0(nF?T17whr+JH|LZ_9geil^8|5C7vb%%olazTWV;g=w~=A~}#2-6|LW-Q-C7
z4JY_?N7j=iRJ%HdPc22&Q@ls(T+P&MjaqE1=$Z{fM|4Tfu)zt=dYW)VVlAm$hJLqVYlN|K%C8d-t3_%8)76BrUy7(T(!6n1wz
z^MjO27?Jlptlnw+55Q(@12|eK8Da%PB6s9%ZEY6^?f8iqvNf~mdrs_T=_2G54rjUz
zt~LOphnc_rd?W0EKSu5tW4!9C<2A1kps5eH2MB^xmy;`LAx3Khehq-69WM!#V{t-z
zN|ZW*j-EQoC>ho#NpW$b*;;#u$H8LTJx}j`G-0gW+qMZHh%g%=J73skqw}&(4EQk5
zLGEcHbCh)H)830H0R6#uX52=r+9cl%7#g^IO{{PWP;r9dU*y;9)rg6Rh!Ayy@U3}l
zXG!uDQ+n0X<6eodUhclq!MmkYK$dh5w;C}6^_r6z=)%E;u^79<#Uqc?Rn+@4$A0ve
zg3}9DrR7uBs*7bZNulmLvTs$h@N4&=1h%U
zIMHhjScqER|L7e6B@F1Je;57*MokCC3?^H=TZF&;$DVo0b2+4WPqU0!u!bBNW`5mN
zF`PI0$5c5L1n90noY?}=SFUDdWsSMX#xmzn8h`wVa8OiKghZ@HM@Or(auO30gNC%e
z7ZemgDT#?O-QBM$*EyA>+0~)*QW6sR_Aj?1R#!YtXV8XeDU1{(AeZZx1`0MXC&a!D?O2U_DLxRU4JkGRNDDYU8%-@gRXf$vmafj!ZT
zSwQ3Yle2RtZMa~jUup`!lkEP9ENvTDTN2}b@I*A$R0wRjXJ?Xmwlk#`3Ur)x2cj(r
z^-fPtIsm=?Z!(C6S@<9EES0;7*ZbMw;UOu1q^fq_^j}W=5cN=rVM}p%B5G!N2+mqb
zd@DSp&s`d2Y@-$~>W}dV8~Z0P6*MA?!u?Nye|Cnx7<2#MxwZX01rC5qabJ4|c=#AC
z*GIv<&te%a0dl^?7+ifAra}wy1fGwC-3SF3SK_e$BOaSiMnVFkOaqwA^4m{FJPdQc
z>`bbl%jDE~102jnfbmqWHXw%rF4Q8pI^WkUq5Y3{wu<){hSx>D`}hD_*M52^5HjK`dF$>H!UW`=Z9RW*#NfuZoZN-|A$@&8;WwO&<~f-Y#_rEmPbJ$Gew@&OkcLS
zSQFv~+=Pi#iWooqaJJTL9F4*KnMhah*_D@xEKFHV?!APX=i0yGk!k+0&b=5LZKD_LNYIS;Tq1AqKz117LW%e6xZQ2=wDFckfdk0g_d3NOyt
z`xWSJz8K6%{Bdd&$!>x%Z|%%R1})+%y~*1==E6<;=;7+wcEq;yxS&r9rwL<&?GbV@n7KCr7b!bY@=utb=P-{!d4z>EocG^Mg?-ev4yChIi+mjpc+zJVvT
zi|AE)V7zX$_50l@pH-)dK={M78eF~8*lfUNINB3Uu;
zt^C4UcEavLt#HlF-94G-uv~VI8NNIiJIXrzGgq~g+r+M<=w-qO_li&
z&%*p^$z##nRm@{gc2{vZfVkH&UDt&8A7Af*4czGLx|o>+ar?&3<;rCdpxFJ1E^#y3
zP`gE{R&$MWoyAropY?|ASOK^?p@9f)*=5y#F}|f20kAJp`z}>}uT&6^yA#E9-Vzy^
zYoe~cuFcf2*)DQ$mTs-qR;FsYTk<&{JKFhVRy}6+ojHjBl7RZ=5iAR()0ikiEV9jf!0oW
zuEwL7_8yTG@YaC>DyK8tLM2H%F)ZXDkkf(MLY@TPHc*lGgHF(~*uszFGI2;!uR}|5
z>vfN3q^YpMwo1aCfAuWBBm1nid&PQa*UVKL2M5V^3(k0+X_mR+Mf^h==aP=zB*u#Q
zm|+t>8$;>nRqd?bGVb^Vy-q)2_}Tq_&5b;T2_on>NhV=1*EtZmT7OcEl|O`Geu#?q
zN6Tsiw^*7#z2!hrywPn!vBtPf&gQj}1ItzW!gN3_`p0gQisj;JcRYg)ORtrI?Xk0O
zNX7+Pl;x1qZ8440w+~ZO!qX}*MFz-He_gI%#JW&?!4Pe+mV|i~8o%dVo=E3XUaA+T
zwO9{$aDHL6?o9JuvnBLLpC5IG;#bTMmtVt6`SjfPHiCUHO)}T^ZXd;XYZhZJMaP?e
zDAIAod4HGujoAB<#&+?_1Zi%`51!%~IFOMsd-Wr;s~Y!A)50Op@a#O3O~q
z6v(TpWM)&yPA01QgyN{3>fIRXYP_g;u=r$2Vwj{Mn+LxyQQ1oI+fx`L@Q{9)GW7U~<)LuqBmGbtCQ!;i^h_wbkDu{i3}QT?i4sD;m!0m*hUK
zP<6K7l)dK^&-Uw22ghmr3PsoSZ3R#FZ49-fO7xsi*m;=WQ&(2Xu5bf2Z`$O?p{f(g
z_Af==pLrK%V53c2dfTnX@10L*O!RopsZ+zcx$tGlfM1y7a9W$I1&BMR#?c^&rOCdu
zkGz%V#P-t*#^nmbD!DBxB?e5hEnN=nXBC6_0#J={O0^;5xwO7d2<|EurU}xtCN8uG
z^SQ15pGr2uZTpWs1H
zhuSJ3sf=j4WJ8+q31_i?t>uuuxLOZbP;(rCvgAcF^f|eGm?hTm`+54^
zc#wGccR@ys_U}B)*`|l=CSOf~#a$dd4AByJnI>Rnf5aG<#)MsOIQIgl#ae#8-KF|c
zQn@y6aIklTGhbB)<|?{us-^DSr|
zd1^LOUv%hocFQ6QPAGGj>l5Aw?G1!Xm8|_UO6P0M=c||i6(CN<$v>?Q5lpWq3@
zpFi7?g}WJ#qNVV?aY#n7#^2Yu9wCxQ&Og2TYkH_0D`T3&6AleF^*pT7?57pPPpGLJ
z7l;$C|GZyW%u7N2fF`FF9Ss=aq0%DmDSjP7qDZrZ(hJ}{jyc}_ln4e(sV+0hw=y2D
z7xb&=XE2lIwiN5+U>F)2dLTC$nIDgxnR$I?!=Sm-R>R|cIsQgD%{k%Pn
zs}2Xt%&d<~|5oQLF>Mh5rgkj}D~q)&7=Uslj^@OlSb7z3N*zgPb~f0PB`ap-glj?%
zw7X!#8&4i5Fk(IF`5;B=He_5(^W!0O$6LKbqYXDlj{*_?Y$~zY1s{51m=W-;;OIOa
z`Ip`*H{Qi5D^u27f*s`HD7G0U9($5S_Qh1Mle_U-*U9C#
z&i2O!&YKFsm`%mJV#OQbS0`c6fo+>&!Ix^81l;;|4pulfjK)nm$j5?q@=280toeLp
zoXh3Y2iNP64_sl>@iJ24RQlhv*>FbUNWb<>4;Yy4SM3Ei=YHeVYO!a0)4TA7n
zD;Z62j(vqvq;{Fcc`Z9DbzJPp1}+_?!FM~w?NNsUvI}@z_KQNcr_6$>ydf
z?&@;3h9_?2EtcB!D9fGa-%7I1Za=t}Ijl(w(p=egA19pN7--$p?6|%1Yfk$X4~}-w
z9=BlF!)w9Y92j$y5)fXkEW#g4Diq-)Ja+DreEYK`R2yY;&)!89^&=^C5dY_K#Q?NM
z#5j(1WJ&l!ZfoiC)TL|EHjDIJT}?9RhilVx?Atfd#h4$UWJ**>1&)+&q(xozDa2!S
zF)p7eG|UKEwC~Ow6KYg+2XhFosk|N>6Ax-?m)kChYF!}FJU;w?yuD{MoNfQMok9db
z5JdDIy+v;kL3CsE9=(gss39SV7Cm}zqnFW35Jaz|%;>%M&hVbD>%O1=v!3;=_uKo<
zrz}?180MVwIDW^zZyVaV>XSW!zmZRQ(c5QkMr`}Zi!W?`u;6_}qnz!V)QoH~B&b$=
z|9-=ek0bF9xb^4GoFPJ#PY#Sf2hA2hPNXIpX3+wxj!IS#&7^OyG}>nOMpV@C^PE8`
ziJ9}9Ge{>{NBUR|Xi!pUZ>ypDbrAI`h9Wl7Z-@7j)TGv_vCV}=|0`~M*0Hl%#x?Bz
zYtSA>#K9g9u7V~TP!{mTH)gN8K3*Ri#K;yuIHclDV-kairl*ZSL&b@{#8nx|vz~Kp
zxS&ca1sP21g}&W#X$amoe!c3gb(32uECUqe4aW1tHQ
z#`L*4v^sc$t~*os2^qq><6?Ofv`Nl?sz;m*9DWiq~T^pXBv`Tls9YYRga^>q@VIiy7
z2Q`TP`71DVJsUsYx8lP$6_5_uTARUfK)^E@RpaY;7t%a`RQ=|>A&WSRraO3YIX*m7
z(1k@U9kTu-LitZ)j6mVBS3j@+Lgc(MwOpgP%~ib2avsr1?%!xHYSkxnFRfZ6%snqJ
zTc1PnHr&6^ob#LNh0~Nta18HucZ^}?ijqHf69ZkJAAUI#$UV)NNqt}HQNOpEbe~t-
z87@s!-;GR?xm{fZXK$G2CdYU;MMb?LGQaX>tABY@VCVf77E7ky@@|KZT%GVoX6#eD
zG$Gm&Yo|YhI@%uZvZ!$L7>B0
zESBRN<-g%oWvs;ym5BI#74bo|iIQrani)FzIL~l2sKvkmYLtvIhgSoB_-n%#`*2Ay
zyT|$2yIQvHKeZD}S^R6-eG+1yd^|X-W8Y@KA@p~kZMonbuf|#Iu5fRA|18;<6!+@U
z&^guj9_$I)DXTJ$fj@VGd4Y(C2n(Hx`%8#{F=9NqxciF<{9FX?p6nq!aW3AofzENu
zF#r$GJH{8hy=H5=7%+sf$8CAM)74&3{KC9pSSr3}t4GFyKWx<{wnZWKA>Cs;A5UtZ
zQf&D8D`zF9F$3+1=j&44o1dIIEiGyf;A)C*n$l7~GhpYNsFN5G?I?;;efb)yn9iI1
z{(b%j&O6p}GasW1t&xcY6DUT*S!~NUq2vksuGgRnU!izQk5L&6)5|X(e-%?@{~Ff#
zb%QdrXN4^*^N@pyOWUG#I5V^&6#UF2^*mZZ
zF^8S|ZPu%lwC)_;i09KbvT~J5mdCKds_h?6F6olSLc4~we#A0O&HO{>aWlQ87B+q{
z0VV(wN3%r!4!_9v`V5MB4W#k1RO-b#J3H?OOH(!WWD}(ZMS;1~Q7C$b=k$NsrdyYQ
zm9q8cDd*KnD2`N3oez8S_tv^RRAy3a3KU0x=ZzyUW|S!zz2cL%^(Tz`bJ3lgs}v)-
z6(-*d3c9p40|Mw1y=cECrFLg3p-KEXTC>l};*#>zkZ)@BQ+E%0%h#q3E`z2Tcku6n
z>4>?xRGTe@91&j{ED-mago%wmVk?n!ox|KW|JDCQ)8nzO)-f>M|0Mb1$J%N1yjE70
zmt5ha^QLj6f6ljf`WB9+8Y~AE&ba@%W?V;ebdxlPej%m#NMn;+myI0r4UML97}ts%
z-98kBGAa3`195P3gCyQEve(GFivz}sjj`)-+qt_9O4ps8Y|cbw@kp;`wP_}HT{)M;
zrkGuC3)j$U`=7h%Jf|F|UX^sYR4e*_SG5J7oBQPPfmtXQ9(^n=a}@k1^yR6Y}fw
zyESt4aPgs^O#_1|mHe)ej;46o&h<{x>Uyx5BI;xoKLsaTEj?Fp`UE$>n9pel>Yi0m
zoWfMO>ulIp5f%Mtl&vN%Zf&LO@?=qT?6#boZN9InI!1Ty<|@iG-2i-gUuQuSd&Bwv
zIyGqgSgL3xweDgYNHo9eaf;pc?DZCCoxpmhT&4K$
zVR7zbJMgCps$;D$;j9v`M%#5LP)cQcuA{ellIF-PE-rU{&AXo%x5mJvTg!_|9lc(J
zSOaZXlzEAMF#BZW>U!)lOW6Qa$Iqc>9#6v8L)&~u#QJ;?i)bvFYHe+bWW4zpVitHN
zpxU*}B*7BeXJH=sg9Z5*DicbNq4i6dH(bY3%>~cQz@rV4uU_`CLcDc2#W2Lsnpu5TRs?DFX$%{Js>XWPeMw(-D4w=r6Om8g<
zzx@txd=`nYhPv!9>mO%7lP78QNZ498k+w2!f52;B_OTZyCo3*n%47=b^#QSPo)6^`eBW??#X)m1lTe&~uE;^Mf93
z$~+?pQeCzN+jJGk)6>_6w#?AmcYq9+VgJJ
zxzrO?Nc{3zyNk0tTId!i16(hB-AvZ-ddSRY{NFABivp+_;)Yh;oBj?2H2S!`+FMC0
zyYgBa`Q~{lS=3!SHxhKSAxbJRBeQ}vFcwgcNTGQ^YvhnN+0rCGW}_uAMwO`+Qz|ns
z>bbb8c}e`K|2q)IZu`5QoNWVBvvxbA|20wWq}
zSF#g4;JX`5gpS9A7WcD7~aK&bkPcV~XO_@7K^0zrRMxg{<=P^&=-tuQ3i)eL1
zY0p{O$BlWn%(RA6wa+Dc2>_)Vtsqf>RuA3lwt|c)XVlCXj4^F=k97?QgWJ{`ws_v=
z0zdzt%F%w(vm=uF8><8obhrK3eeAKhx#&elN^5I6otjae{DLYJXUIWc9&SOey0r1!
z-5xdT4Egcqq*yIYoe@MC5BdH6v|#$_%PG>9i0@Ag(_5Q!m=M}6^faJAO@VbWJKQ{R
zpe$-RuhPZS_~-*LfN9b$^Ki1NirD
zC3E>pd`t3<_xdx<1Y>C%AyME2)3Ph%TN_yKvc?ztSXp2}F1Zby1Ss&7yXa(Pr35iA
z9vtcJ078`1|C%ln{{Cc}>QBT=@GOqtp^VT2mY1W8S^&IE{rSz3
zH25GAD+FIPcJZLl7AkaeJ-?%z%ov1bk^7hlxCc+{isq{f^fysLD^kX#`SN;Q%}SrS~mZB4{mXhpdMu
zdRN5j=GC0n?D!wuIjITubN(LH7=#bHT;LHwO2WAzmw%*0f+8hGPTQHM{(jZa1s8+8*14xB%gcS!iBsihz8PVz&K<+m7;Ft(Cm#b0z0b#Ek5
zu7mztZdP6nrI`dN4Y9Nub
zc%9EY+7^%dVB_U-Uiz4koua#GjNP&|-UFNnF$p1}&lJt@dhoDa{a%?txU8C5r8_R7
zaI%NX$(edCZ9>RiZ+3=!{A_)-sdrOs{>G4ofyOzSW`Akxf%mS@<@R~ZRtxibfK$3X
zGBc?q*528BXvlHR+$|?IqMS|QV~M_uav2q7)*P}VkA;SDy^xJ59XvRH&{wf_8g3SQg=Yp`S9Bdxqy@O$f~^prtlF3$n$v4zI0I@u&PqyZ{0HNeqx
zDB36eE_i$XrvJ*kOs6K3D!4XwDD7Klw?GlIH(qdJMB8bzw%{gqvC17%3(15yj5DRO
z*dYYM7aU~_EKS~g!x1SpXI3bxU*BHBW+Pyas#)8ksctkvG&d(LN+W%HX_}7v+0di~
z+Z&O6o}5y$S_1f0B*%UeeblkM!e^CHvHS(urIb~Ovb_5{@@J*Vyu_a#Tqf?%X~~;M
z+-AJJ`U`SJq=TN|s9S0R2i0nPmfxLeGd`jd38GFyq%N#ca&ey_8rP35_W}*3$Ov$U
z)FKYbz?w$F=WBy$p>2<;I<{jBJ5INyYoBD+19?}r%d3E^M{KG36jR=EzKPK@JlR#W
zmjs*xf~yMW(Pg*=zkv*O&^$Z*_6#rlUHuUUY0@*|7k6t!AbAnP>vR1spz)(_AbLsQ
zelbkMrsw$<{;Na{Zg9F~r<})mYeUs?WmksSd%26f)FO6-j%%&MgYzm*>hh=*K{Efr
z=eV<_dN6cFjDX;1B3iPt4d{v&xcMD-8m4F{Rs7`VfPol>LHUNHr_!TM6S+QK3BU8v
z-iBNAe8_YD7=?1BzrX^jFQ3apxuJ!qGxl}(CEfJg6HLDk7`ilwgkvDXrFyOVSE%X;
z*|FsY+s?tTcb00&XywUm#>#0%Nm|BrCdPV7mE6rtH^KCOqHg-|WXHYOku2LHuGHkw
z_U2|`m^}{hR0Oy?jbY7=ik}|{#rxm-y*qu+-X`TTS|RVO#?sU)oDGV>LR`rgoH|Z>
z5>pL5>*et*2g;ve-iwZk#YVg(OMi%gP(ifWjt8K#TW&N?^j#RS$hl=m*{
z8P2D_8tsAGbn6{^g{ZIflV-F^_2tne?9KbcjCfu$#DMl9yCPq&xk-g*a`BS6Ku{kv
z%R<~afKODzU0xk!@%)t5%4TOfUzmT$al5FV$7u2{s8v$OZI0c@=PfGv*Zqx}ZO_?B
z8uir?mP*I+#`_6)|5dx&L8NAVqaC1=+FSt*27MYIB)wZwb|M)~zpqPQ)I%3)$gYrlX=_~kb7tmya(
ze;w~l_4zRfPT=+U`F2e-eX7Rn_F0!cr%&?5T#W2%v**5Ks9gUZpeKt!Grt587FiH;+Tg&jY
z&O(UKe$s7&9h#^Jl|+e7P`U+9EhU5
zR^yr+tcWCNAt|~A#n?-nt(i=i9O<#bTnw*geDh2q%vIf{)Y&fIHsT8ZN@YSc_=;Ga
ze-BYw_guPMP~`In-!Yz729LCw6MIloc@*4^6J|RdZqR5*X+(I>bMqdk6S8VWDot9*
zaQiEFA)$Z1a$c>~D?XgvvzaUn2iRSR@#BitVz2%3rG9JL16iiV>b$roiIhGEKg2C)AASXOjEZbU8-IO6C+2T>TUx2B
z@OqM7N{**i(ddBpwvW?DoYU}|W}>2(y|bQbj>Y~OPNt0>P89y(2j!l+bQTSF@I#u`
z;8k^dnPZpLPE33C1Kq$U^_azG(mbga%E)+52Ch=W@Q$+*(n%Mk>y&r`LbY+PsRB7K
z_>OiUMYQzP@@E9gOAFT|lb>wOt#^WjgMGI_WF~7&1_!N9B^u4|z3f4n;}Oj;<-&em
zgc-`buK^lXpP%j+^-;v^XC+#+98+6wphce>=ea=-TI{-WYsu>N*Vq*@mVnpmzi!G`
zi-EYYkHO^r$o(4Jd1#2eeuxsM=jBDhj{GGzF3@TW)7Jxz$&J)kPOb{KmNOp}QwU$0
z0bpPp`{KbEEMkclYw*OeN$%Ye_RAwvrTbfPqdw}rlj{)E#bKR1SQ@=`?eTipv(?hZED>k_9Y^!r!V&X^nJ)e8o||BCBi53-ZNDN0v3VHv>jTYoA=9nW)FHp5#Sqejj1ezWENR3+#9Nbr)GK>BTN%
zGf&R7nm^0#7=BMa-=zw;b2|(&HR0m7oK$G=v{AlVH{!*87;U|QAK+v?wnoifU5TP&
zo8cfSJ5jq0ycKHYJw4&zPCgjW7DTf7kX4Zz74z@fo(mgr-@q>~lqW7{eH34j2ZTvj
z*mYSnACvDpT=~VXrfp%hI#1l5|
zo~T6wn(k2rwh2ef2cZuHp%*?9{%?vA}T-j}hRRYU!thC3x$8|5`C
zlW8grx)R$6XKG>Sq@Vo|P93R*S=&4z(@GLHjnOT&Mm9g0A4vZ~!_Hc0kEwfAL3x7q
zP9i;DfG=V7)VJjmR`8psjMSQ)gt7iW?``f~1#rIOo*QIyGMxOn^k+*cfl6_E)6m!u
zAF!|>;L;VDi2mHn9Kyf?b#2eV>mOqF_nfx2oxf$s+kB`-{gjHG$G+ASXBUzVdq2+v
zj0P!oQ=)KpiG5?wvV#V?=SCMfxjrIvzvyB^5%nEKneG&dZ$wn8-G&kiW|_v7$M*=+
z*(XVqYtQF9Anp|s!A;f(zcFKXdxx1YQ-Xu|evmJz&|U}ZI$*qf;7^_{Z`HyO(?Za^
zl#(Re1B(eNmao-%gI2kDB@c5HWqHs`?Y?$FXnOr2e4j3F8`iM1$-(KO&H}
zqUyEhmb;GDRiz)x%UJQqs40lrF3DI9B5;kiC>Skv1=?lQsYlPqMygelK9SWp2#121
z=ro=i3U@_4$TI7b51xn5=}ZwuK^|^+;7=1RU)=rV)+`|z(1LU=nbg6i
z*Bjn`AnMQOffi=l^2|@HO*m6ka47bS3feYiW<)}(^wTc8%a?{o4$sQ&maIJ4qQmw@
z5vFSW<|)DlWSY6KWsX~u_~r;aKg_O9a#SVZ7wdihOvq}@Z0%uR@vqb97Ov!}$X%0i_ui*XruF*-bcz%&bT+5;
zZ9>HlZ&}bnr1SS%W8c3|L4pOR{jS2chAd~joUV;>F2Q%R6wuev0$Q&JFzX*fofYilBxB$$?kP}+H*
z?ptg{pFxxKsk*&q3@i>wpPNaxb2Lk8Opa}NxM^P`x2Ao=2lKec(<8-}cG(8oPN}Z3{ylCtV(e`3EKX;hsYay(!^lCitPcTE^!5-s
z)1@TS+5cheHm6;=is)y1l5E-fO=Sgxn8fJB*X2p@ii@hoBj--9x)?bOi4wh9&4=)8
z*+`S_2nwhS14vm;Y4XD^RrgdKeUqrIZE!7)9}$WY#Czf1B_^;v`$Z3kJ|O)@8`Q}iLj^be*81F6nl2dM0M
zJFQZ0k*155m@1jrH-%$s>$%&Wom3qQA2}wMQF`~$DK{Y8TvUMg4m)A^QPwVcHXUW0
zjYhFr=W{W~UxcJd-294PS8>|V`bqp1&_LIyam;1O{j~D|Ef7y%v*hvCIA?aHR>>^g
zk0URJRTH!8TuXQBG{>UArgahq=bcUj-zH3#9YZMnI4ITxpk7gPSkEJECRu|T_lq)z
zm_6&8J&3jLVQRl#xnR2{H9cC^eJnY4{jn1MK$o&Q?F&Q9kBm*HYb~$zM@Z=IW
zTmFS>PTalb_?NaTQ&n_NNAqO$^agsDA-GV?yS0JDZEE0rKNA2~K`pj!QP)mDLcZEm
zsdhpDyeCryS$*z&^=j_+NMZ-GXDSwvq+|LRf5V8BH(^g{TWCJ1a0n(jbS7T+oHCR&
z^n5AOUZ6EH(zlp7_yk%cTv<7ReOIJX^PBE`qFs77bR#ewZ+U1p6B=yeM+TfUxNb~6
zWKv1{b8;>*+_Es+APgPNE_a=yJrxLN++CyRH9zSqdG1cb2xcGrpOW%zbzY{57?K=-
zNvKiSet5opF;cXppz0Szx$O(}HuF@m%}JXhq`Ud(=oo@?m(sPB9!bm3PYO`0-nM?m
zQJ?7RI<-{Ck^ShSeAzB`jG`drX=Ib5kg}$=vow0tdh7XO`%d_)%f^Qwcc6=P0eG)a!j%*cJm#7
zV7&EmwCDSqpc=C#O>Ggp%4A1?sLxUQ*}T46*SNpkGIZd*=Mgt9IzAou>bD`>X*IbwlDv?q%NlXAs@TdLkn48GZ
z;@8c*x6N#KBMQ5!&Cbkx4n01NE=B*A^d7GE#z_IkhQxj-oZH)NM_-4zp2ZB?RFodU&gFbx
z321=n*ez-k`x9=^qj!U1J;ZUvJhsk_cvV;rdY#A)?Ofj2gFt+ysGVhlt^J3~um1js
z#pRkXwN+h+`iwJtIrmC)sBP*O{SApLO$i-i)NIX%5KDqDSB~B2zVgD;=gy^}0LRMs
zyY%pD&Pqi3+K=7}l8Fc@&6TQfKjydQ*1B{`>EX+EJ0Uy59o(&v2xmh~y;AS`A@Mtt
z2l}(*<6@Rw*0c?Gml*ypH{Y)+qc5G@&9>q`t9kM_K82kYzb7cxJxMd
zomg`2BjrBnYDg-vB-l8$307o_Y%ZA`TKK3mT+{3`*iSWnGcT!Ue!8E5HqW5V+2+0Z
zVyl}dZ!NrD=&apYLa))nzS(0f_=e)F*EUAA-r1b5#cPZaZoN^Ws^*`AlzA54Iz=W1
zS)u;L0^Cr`fz$8gHgy*MK(5{Ilp7W+zw**?dY}`x
zsOD)`Iu*U@)yX)Hb|c>lP(>bP;4$()(_j`k8l6c=k)tBAp)5%raDH<$`n7vVF5g%q
z(aMw@=V)}UtJ3w71-Zf{E#t#{y!m+tzCK1KGXo>v8m&`NHc55Tgl9RI0H4Be*JT|J
zz_kvhyBjrvlcF$LB1fltcSw;gr_w^4D}AQ|Mtd6joJJGJp*~LWz81Ga*wN(q5`H43
z5Ye*v4DwgkBt97AcelQ;v|z`IbI9>x5tJcA8`q|`#X-!b#8ZbW0d+oZ0SQa<^uCsK
z076#OrcU$FWOG>7u-3j$$k%2>W2#%6m0&!|`|}JT{omaEBfa+cZNpMIx}Wqga5$m}
zC!&pwL3@^ZTEYgp4{bPfGm??LoD%jg-LHewH}|6GNSeF20J>1hDE)&fYK4&
zqF{~|9kG)BZG)foj+)G0zlV-j-6ik!n@gac!{R_rv8$dh0rOEP68@scp9Ww503IXo
zT*!pf)!HiQx4ekiPjq@O4U)778r{w2+D{c17x(nK5sYOu!j%+pU+CDR+H%1n;Z=8x
zIt5>4%HrKuyzU=AunPTk;KUk0s>$iLhC#|IPx){4J6B~hu~X7T8^+G4Q*C?
zqsK(C4k7A^C{`Jd;kU@h?mdG<+ieo!d*U-Fs_U7?Kj>$o_#K;}S0*OW<(_SR@MW=)
z-3U@>Ea6wDeR2^8HeIXvoll9KM~0SWVTXY_;k06tAd6{rdI(3wg_r{RE14e>9%NZ4CYn
zU|Cg{oEKrpKve7S>W{Wa-5wotYPUKxi?2`oL*aM8e4;+~4;S|y;_Fl11GFNEte+L|
z{A29_z7$&y{?{aNU-<&foqo9RL4M{@Y*1`@lRx
zkAmwwbZ_JEtv%4Ez#mD?1nAF0I4B{Y7#8L7f9M+y4pfgri{jb!XtV6tfhZ(Fx5ws?
z9k?=QQ()|Vt@Xj9RC0FPxc{yHZp!P=DlHNLLEUs*0BB}$Z!6&6yF&6QLn!XNP1-Mk
z%pi#PR&%(ZAHSMdtA<55&inOv4JT$=TvH1>$w~gXm!m}-1Tks=!^V*9a<`zxtc~ni
zUhiV!ussnR^^4n$?1}i?Q{aXm?dnQv;a~nZ)3S71VKmha=oM@=aRDch|K-SvGZ;*!
zwQQh1iP_CN;~M$5Xr)73?rRAEjCOIsDr8v}cHP^kcPjL?`yxfF?9UP1ZIr3o@!S)@Y=g12D$nLf
z2eXWSe3aP$*~8R!+J|(uiljGJAGq(E9q=ZxgB4z-5vVV
zPwq97>n|Lmt*`nCZO5q-^U(o(ujm}ao-U2-mTcn2SutI=jw3{;l^+b-reUamY49Al
z2LI#Gx@_<4L-77!iNgYS-HmI#MIYgXWa|
zg(b*DImwtz5*CPCy85N5wt|AHr4|R^l(Ydz*!$_)^|AuMZkqF8a#TZd-_uCD9huZM
zO_kWqgy{d4yG?g&!=~rhK6_xPwXW)3O
zI#F0?Ls~_TKgj*$ug1+K(kV{Npts{8Wt#F;N;?r%dRTgkNMKba2uf^~SjlmflGP0`
zUDE)@0s!|+XTbzM3>|*)oR&UfPNsgi*Bx?Q6#aBxaX;)8On%#?IN{SzYn>>&mFw&A
z&T5@==;?soFa>z7uW43>8I4(krfv7ItQMROGUNrC3RdR1iqc=+911k@FT-qkfGf)c
z=5461eppWl@R=|EDf)gp8rYj{9D9^i6U})L9f!z}e5~K%ql2!?ydRPF{r%*+X69@;
zRfYMyG+)VoQZR|a;OKz0KbZpyT4UJCxOopU(CAp>Tsr@TyfT>zI)zuaFKw;`oXgfq
z0{hu<_rF4FZGGrNqN7hA;*17yS2i0pAutV)kdA@QaWg&PMHVdtsfxt-1KzIcffwpT
z9<{~6lj%0!dlBm~tLBMor+tOiYki!$6j^5pI|4MO;S=NZxPuGTf?yue`jjExL@N^-{fxWSYOGq$QT~eanUXH8ub#%mE
zMrDUc#sL;+vEj%3)NCS_`j0Ee10%0-aU
zVHJWu#4me(ZF>)Qu5lQQgUc-*dmK2mk-Yp?g}S;s$Hp;2*Ik^KSYwod-Qs~$1o``0qQ6g
zRZqbSt_X7RtRWgqLwUy?0<)Nat;K}{y?6t?niT9OVk0ks&KnI64`mxh`>Bw02pR*G
zPeB^ihcrLlIBzwTR2m>rDD>t*|k_qeC0@afJ*NyKL%%$Fj9
zQ;X>mDuw3re)ieD{qefB1lspvw*UBlXgdMjBZY{&I-gGAC%L!aM+H=Dh?saUuca9`
zph;mE_w>^U?=n{C_`934p=D3=J$L=)w15n$g!1iAby!zZn-qzBr3S<}zJ1jE9GF${
zyB$dbmerHF(1k7A^qsfEZGE5IYP1sbo4?k7c2348P
zC2c5N{_vQCkOf`g{RtVfq-J1{PIp<44wD6gPxm}+)OkJQoFxA)vO;@&KSuwaVFe?K
z?7gmo2BFMeYD+l9H)mXfso|puEW*&qllOd7ctDn-L%?XKb6OP~F!oZyg@qtjG({CS
zZ{`!Lr6+X#{WEw=FjdHn0@$*u??;gkD8~KXJnsvt@ZV>ELnM3IZmvw92I2*0$L7;P
zClAH}Brv3=_2v`WJiAyO
z;ZJ$L7`ZPPFN9%Dnu={LCEzuhPDaa)ZY4+fHzoFNu-PThEghhYm`=C}F+G!5SGOK$
zF?s7x30pU9ot6vtrNgM{;aQL&MLhb#b2zTjht1kg-0H)`Z-
zLnzLnHuatYcD)G=^AvHEPv|o~EpsbGQ*`fpcGIX#;3bgPI1YHSzsi5zQ!E7Z
zzX?c5zq9MrECAYs*WkQoRqEK&Q{6X*OBsv>!1M-d;RRFlz^jDcY{Oao8>>c;i+kEF
zAI82#Zm@+UFJvrXZ3W=)p#ym6m;71Qd3o#7N+u?4Y4c1GGSoZop7m;cYMV8%S-Heu
zXO<2i0BC9edqL%&4+c;a?PrZb5#~r9)y3Bay_lbsSUXD1Fg18jN51>#!3BKpl4nUF
z^#V+!S$r%Bqul{DN-SA^;q65(ulZC6W5B9~#jLt~{ZqDeu523J-QZN&OcJ1U?ZJWh
zGmd>78aXRG+HnU>kD%pSeX`e(56O!N#tPk9yt}3oblQ1!UjYysA(3{1u0xnZmJ*pa
zws-6z<>O{Gc)fb62e7B9M*EF;)I~fBKU3nZuurk4zPn!@>?Tk*fIQ$nFZt|nZm&=|
zw^+b$^IykJmflYLS8TyosU~iM?mK`zZ|Osz7{Jo70_9Al(=sOQ1DC6Iw3dAla&
zzEXu`o4T^_T1Xnnb%dd$m3G+HtbhM+#tr<9>_>$#C}g371X&o7UnlCN^-t_#+6
z-vqpcxueI!>RqnUzmV7eP|GEEa;(+88V}2PoK?uXugRx%jpv|E&G43f`?zdgg<6~g
zJsicVT_VM@F9LACU@8Fj7n9G1$l-yua8?6^Pm?d)AHaI4AD^j?#=8Ou=d|A@v`Yx
zJ`JLx%DQ)_RQ_wDiggU5yf)t$&J0S@1k^j#)&>o(p8>y25=W{E>6rOX!&`uxAvs=Z
zK=$$D$Eik-GTjKQka0X5Ar~d{g0tpE;u_ysl5Gj^=h@c+GBB*Y#6TT_zoKs9x^PX3
zv$wvm8(`|JDmkT~RfYQng91xR-=`9*LHW)ISuI?mM|>jL$hawXz8*U+hq{{Vs3VTc
zfL!_SU-D1ERzBXm$tDwq6=bo49@*BUw4FUpP~?0~k3+`yeiq`UQMC>@zd&VvV!q0Y
z%tmeK0MfjzUu6$0*%Lx}8U#Sw&USG-He>P-mGQ3xN&<9Sa^Z)ix+O1c;2gi~OnY9%
zzqQb}Be;1LEA4AvKAstaC!gT1*=C%$znEB$>))r-JW~=$}D$Y
z$UI6^!+QIu=t%#OnN}&2@olfvg>N6JZ(+aYtqVc=-HWi$#fmMr%f)?)buPa_esV!S
zB22lintUi5Qb1z<`+4hJNgh$&e{TL;P2%J}FJ*B_98}ImXRbn4^9;Aa+6|rK!f^yyTr*?N!J`oHAn%$Y&7nvbbpEOPl&Wr?%BC)mszYqhx&npYf|#^SfZke
z15}}`mpml8+2P{xpq>GV4PfX{TUtnL{Nckl2tBYjkLgZ-`NLth5dg70q4E_Z#5l7=
z(E$d%D874>)cqq1nO0TBySELYLR9mizIpM#dC?XU2zLR#rT4D`5SZiC!WeIr4i58=
z5B|h-s5ZD-17BNMPxsSgHvmR3cK>j4fV(dsU~qU)!Cf)cV9v_e%1_$pLFDIa4!E(!
z%KwoGTNh{cz5*-`_YY~zd)L~3AOHVNckZ9@|Ml7Kk;yZ|=>WorNC?;_ss)ged1OY#Qhirsx-s&IYK=o7p45Xd1s65p@mV5^upy-oG<3|TDO|aQA3DdET$7`
zH?6(?kAleQVw~?J`5*+C^k7?o(Sy>h!lK<7DttyBrihb%AK|PGY;2^faTE$ElbA2!
zl)G$0cGKD4l>*S{d(_Ce|Rs$1U*#1ciO5b&!Nw^k;V9+Bq#mu9agE4%KNYi_K)0KBh+ob@z!QS
zRa&+_y1l%LZEZ1IEHJ2j#;DSa4IGS3YfcZo6?EZ#B_}tbAP?Y~
z6R(ADbRU^4MW0rLsi_qM0AlA$H8ui5Fd!SGe`y%&73UR+auo5ffL)^4Yd$
zyeWo(F?Xq*2uy5c<{AiT(rBco;YKGJlBMI|$HY8jW{Ke`S}1*^Sxe<+ECDBV`U-goOC*F%4dZ?>hk&XW?y2w$|a=x`-37wehw74WFjGBb!2-ML;^nWRMk?+7*2qr`qNXt@@5YJu>3~@j$l$K^KULcY
zK!vMv_Mm}Ab;NDl&|HH7ToDO0mfyz`-M>o{GJ{1hiRd_BYvVSYJI7K?P}t1j
zqwp8klxvb#^dx_>X!8zT_Hh=Mk%#B12%JTF25zTSU__A{rh+Ai&KG%>$29<
z`mY@m0Z{zc)iT1ZS5^r3KiiUyI-0_Nqt_1N+tjSF?wQxx$9)z0=;~q$BKdANW^xYu
zKt%YFM5$o0%ENm-6_d=Hpelv6fEF)VgNO)smY2KW4zSw>Y;#_f&)~1u!O|E00#F~}
zy@;VCd2q|+{swR~sC>P26nqQZUjc~5qvAE7i4-GV>lq#J>1|OwfZ}s)!O1@j*aDpF
zMgnMoaVdr?cRc
z2yjU-9nQ!j@nMNmOEuaRA}EbdNIOMs$A7KLrWiDe=uA$(3z?L_c}I%JG!CEOoGwp3
z*Z;%UES0yn>!XT9g3&!X=$3(F0r4BhF5*87^x4+U&Mb{?Du0RepGI~b%=vAM%wa6z
zAO5QOglCvkPt-R-`L!yhS+~|h+5?TEA?(0*lQgj=+D_eQUKh%L0KAJ1P(Sv6{xrrS
zCL!+Ov8T``ieqWa*4h^)4K5Y40g(E*>q9b|3XgHf60}nF*@2`x|4uisbz8itw;C_e
zdP12ti14N5DOoN8Xw`+rg+cD*%H*NHf%yplIH!57)rPK7{WiK6q1}2+K4(yltyRWUV5e$r*t%4<%pz4Tw_ABN
zx*3rg{wI{Tw%}AjF2IOCMe|gF!PwF=;ZkL6R<`}{V#Obby)E0I{%0HmZqvaZE)Qg(
zIM~Ds8Ncpxt`w^@@Rn-V;F@YxUbC-&&rG{;doGxI`i|OOj?T1ZuwSk{5Kklh^0Pxr
z{Q%?_5S_6G2u$pa6lP7medP#+x-iZS+Gp^BfZ4f>d6~n!Gv%QZ^VY>m{7DWcDNMr0
zTibjROQ#miDi`f@voGdUa$G_kC23hrXRSM_dZ~@@dXCVYhXURrk^uu=_wn4H1mB5)
zQlltNEl9GLM9?pdQ`-~(@^YWRAsZHzxgNZ9A_CTG_-=DWmj
z#=HB846y1@&ocsIjN(L4A-?3Bd0}w6ZBW{-@28s`H;u<`V`*%VgE#ZJjKDp9mOy+#h_sIVyV~ARsGuph!oWyvC=S+v9&6
zA7=+evM@Y)A~EvPQrW0=^Xw%bsA%#aAc*p*z!!tCuKsh6g5O0y!zS`&YgNneM?l}F
zS_Pi@7Yk)RYL34@eB0eWYTGZ0Tuh*Pr@lKy!c-j`lidtQ{Il})>byTR%c6a2leV_5
zI<8Ty4dT1J7gs;QCI7`g<1z1R(-4dG^ALl|M>XzYMtjA{dG^yrf}+5Df|Z%trgTWG
z(z>pM|qN(5bo`Fg9
z^q&RLw-1|$yjQ*P?jV>9VYDJ2(<(?f0P^vQ5iMP@ER+;#i6uW_6LZU2j4K1U<)Xth
zH#b;-86@Wr!p2SH2E#{drwVKjpK2BD)%qkgeu~ESs}v+eS1L%YErV+%{V>)uass4}<)F4-4E%{v`#2eL7l9wVo3ugi-GL9028c=;m!nC2&`)
z6GSd|O5S=_E7-$FG$j9bjaw8aAML3WgNv3;th}s-8UWv}#h|3xi?k8ngvlJgn@Ej*
z1Z(kbgsUg!Onj(+=(H-&*3PMbnjioMegr_4tYE-J^|(L$%18m0I_ljT6%IM;chhf)
z)!5YnAB@jsq9Hs^WKOrzo(lPBpz9t7rJm(+M)+bX#B+9rQ27=J4+0R)ERlblzVBll
zb0+<=FI&b{h-8j^NgG@@vyx80BQFRO(10yRn12i%&BlFhJ4byPgM_0CpEQl8P@8
z&(0v-pwYtdcwdsm6|0bYEo$UgBh)F!V_iUAl^w4|09!-3dc+2H0sda*3IN>zsIs&~=?O;?&2K1UjOijXQX1e&JC
zbk?OLk21qsmTm71kVHQ!s}Vv)+HiIPPl#3=`;?P6_qI<{gX=ivdfb^V-7!KJ*382<
zPcpjQYPbHU=ku@H-_?V)5*x+wt+gF22i~`(MeNlzWD#c+*e0MxrO~ADjYySQB;r+DQW4FR=Qz8YC!3hZctGWRJyxk
zhM_xERJwbHQaXn2A?_YL_q(y~`qsMZTkEd-{&CiEc;7vH_I}={_V0Oq!N397(7w!N
z-iq9rGH$y?ot)#{5zn+ocI`IV9xKRcUacS1k%F`yO`x7^He9W}PXmX#z~w70^79?O
zA`zJ%2dgDoaIF`6gVKIRwgyM0q!jTK1iI&V@1PBZJp>55?$W4FRK%Gzkghir
z@tAzDYq%CHh>!?e*>q4^YwS$1>zbZ=X*1DW@|<&aW`T>Fqhd!$4betEaCcILcbdJc|?NtCulJa&a;9KQVF=i
zX@i{?y6CLhNPLCPWc*05;eW_qs`Y19L$$c9o^@GfA!Ltrk-`X)LO9s+W8HTi&jtDY
z=_ZFM$Tc+R#7;;9@>p>7b#;2q1s&VdZx{v+E29NxH9TXtrG0&$x^E)0`#{6$EK&0R
z;AP)^)8n@upd9(bX_K6>X{0=c*g~w#(bgW$q8GHT_ZTM
z@1l5m{!8LUo@Qipl(Wo;)0x>puP<>PC4;B;?^7?|?TMv?vjMxm03R$XymlqG48O;}
zEAUMF$$$SptVN8G`73W=k-+tru^sz4_7eW_Z^L2ipEOARJ9Y;9r~lWFxu>P2IWG5s
zpf|MffuMsKB_Ms@tNR%p9E=an$w4ARquNey-*cgp{9j1REWE>GZYB7^BS-@@g&Mt$
z9_9p%nr{!6Xi&B|5{$%mOJKvyIaJ^33o`kjZp(r?C`vNPGTfv#b;c0F16?sJ
z347c3#f63I0RaKp#fB7?y(!-ody@BsR}77e26C0|)z;OmXz?Ixo#>@yb|uC=@>c?k
z?Hl>VX&EaoEI6k=*<-j~0;MPCP{gOcXAn-wv2wRR=Vi|Awx*
z-)_u^K>tCy(-19g4#e|qgO+ON;r!2<@XUc#E}3d@oW-K6tC+)$hvF4=hidq|B@ERJ
zj48$^VkM=eL8`j(o%tt{hdcVezSbhv1cXFUa}(TG3XH~x6hc_Aj8au-uiuLsAE!x2
zp6|ZteC_7aU(HB-?
z4l@qY?JWOC91dv{;M(zqrV5jXY{pS{9yE3WP9fUk->(3|e6~1MSFfYQMfYic4JR-{
z&w=LAf*tvgdgHM3=@}%+!4e&$YaGu0|)~_?Ly7xe#cn`Yo8CywVF-zqoY!4W`Cf+
zPZwYFWvw$^KHD#S-8sd2KSg(hwH{y>q-eV&;){Q+^zkTF`6mzoy3t3kOrt@vOH+$C
zO;;sZ_j`_@Xof;XDC-kOh74_xmUs$i>4pm+`YOD9R)#d$P^-elE@x@z60oDcKHFyF
zJ1g56)znRg%bOr7M`m9+$UkudgwFlV(cy%6grW^m1>j&q_9^NH0;vNTB22QhwrqS_
zNbUVp{Q>B$RfQ>Kxv5j!$VTH=bftbD*mh-I6`rt})sNz5tJ%`eYbwvuba$Ft(;R{}
z4lSqS05Dm)4}Wc0Dd{O7jIAUnN~*pvn;1kcMUHjtc)jfMVtm^j&s5#x3RRFiNF3mB
zq}1+JbqG^?8S&74$;WopG*MUtX+5Ux0_dpa?csJ6b`8FGwrz5_gKFYacN|sLJ~uQB
zt4o;7KR;R!G7MKH^)@E?G>~r2z`?BoUV3#5)7Xt1sxdA@SJXuR$~*!tnM))P7&CMolA#hY5?bVSK!ZAMM62zO+kC%&UD
z7h9C>d-mv5ll}a7_YTwN;|Bmw5Y)GXmIc1Er>97!Tf?4Y_BA7#WzevgnNex?OUQ-A
zi)Lv?LDvGPL`n4ZAC}P
zkJDvfAjA_8FFxJeb-o_D8Yf-7vdw%p
z(%j@pN2$~-{HCn$tPm;);4C*L-j^FKqFCDGd#`lJ3*;rX$d(%cM%J6@?`Y%j=jwj9
z6wXxwKn3VGOa>Z9z~5BRiE~nj)}*(ImLwm9*tMOssKM{Dko|};F>?UL({2qd0-Z5#
z8eNpA9e~9cc2|-uy!MVUBjG_cReC?~*fxND<)RICrJ!sQc7{!q!4a(!@j7)B1Wbqj
zgRVNJfO=^t{}Ci^qcPkac4kSXG*IevT^rO6r4bR7SKApqH*eUOCXaJZFO}`RC+x^B
zk-ffKO2l0YsN&6uNMD?7(~Gbwm?NN{KI$H(JwP@+N%yCxd(?Rs%hvELhU?FtKiVtr
z>`~P((a0*+0>zr?1zRUrN5gM@ZQQ6Rt*YO6oX^e9-}wOe7;M9;KP$M@(Mw`of9J`0
z0*Z+KaMuy~E+}*Nr?Lq9BhXq*=)|r?M6+vwO0zUzay{
z#aLzIv%T>lWG!~T3)7BCED0DLm*h9bD^y!sR@WSf0{ux!bx`pjyx!MMXcs?q%Uf>^
z9^o-)S%t6W=%Wrmn*W6NHbEHRbPwAuBpS8Fa|fk5>3+w;ivimdxcXIt`HNq!eRyTc
z6DJ#ykyzSI6`j|;*;Ge?g=Zu|l+?|1`>)$gnAvP_OuPyDrNWj0$d>`MGO$D(6$p9?
zSa&J8Sb0Gk91<(vM02bO$Zr+2omE99M1(GUA~j3=W=}-0cPt2hGoN$k^l0j36>&L7
z`5DOLWgNtt?JESCN<|+URhmdx_<`aX>w3FjJ6%J=a+`M?-=t+wUttBBJ=Aif#@{fG
z4&UpX`3d6ZDv#FAfG
zLX$$wf4$CJbo9ba5fu=E#AnOIg^$W}%uJ-awSvR;>Ldbdpp6n^M;et1CD(SI;}2Co
z@8vgbFmLvHIQ}r*>xj1piB1Pxjp<4Va#Z=36LFg*sN9
zCFB@AsE$B;17P}NqhAE@0P(zomb#B@P87vP1i!k%6{Cc?-dcdVgI|}v(tL%#C|F&-V1(A;Z}vKnUq&l_3|6T
z8)s_iR7NT%DW_Vvp?>ApVY+dCR!Bz&&I8YRsPTTHVtnWLO4@K^Y!UKaUh*ng7k7*)
zOB){>0#zwnsF|zXv{H>mu4?Vd7CUuB@b<~Zcz=q5FzsvGzf7ys8EJ@tWqU45dg|jm
z$7LI2#}xa(;7h^;LKN&3f9Cf|4;|lt9Vy-D(_+2KEumeoOh~F`X;^;;F4E4eT{IsA
ztQNowU+Lv^*9m<6fkS{v!TcBHDP^qIw*`r@v}eBJ!=wT+Y@1os%$CoL)Bvt8kg6pZ
zgUR&0F6hPqDM{SM$8#Y&-8g&g7i&*ddDf^O&q!b)XsvUFgoIHeJC1o(@Ns^hf+diw
zi61-+%=s`%_~NU|Gp30svPy&@zu1GJhi`QX>sS->0Bi&HuowY65dQts&H^c((2KLB
z&*Jt7Hcq{-V2K)BV3NyYYV0<00fT3=C%iPpEMqLJrt
znSRT4ee&A1v%yVRurGlP-ihvDJg&YV>FI_)+{YA%Ghct6Ek>}*u3jjwcfTbKRc~F&tWBgh#Ii|(YMO0BmlprpBu)UHTR_!L`j@l;IftUp(XlB;9BkS|oxA+6J
z=GJTHN|{_%J$zWXeoe$l%$MZ2wg9Pn+YMg;7kbQrv(DJZYt9UC&2lP6t?jBB(JVk`
z$oiFu)xfUCRba0(=HO@^PLqIn?xF0p$vHXJ6bBnioS_6H+L%QX1lW#D7w?V&=ec$IgBW)vPTZ(jHx)PV+;+F&@iq-jiH36P)(oa5XI!FN?
zpfI@bN`@8S8L)XUeV)O)D#-pRJwPa{oE{PBhi&*kxST3-t1xNMpnRb*%0AZqfYsCn
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