From b84b299ef6f297979a194fa30d1171f0797b2de5 Mon Sep 17 00:00:00 2001 From: Anthony <59890724+narlock@users.noreply.github.com> Date: Sat, 8 Jun 2024 14:28:39 -0500 Subject: [PATCH] Add setup, start, and stop scripts and update readme --- .../package-lock.json | 0 package.json => KaizenLAN/package.json | 0 {public => KaizenLAN/public}/css/index.css | 0 {public => KaizenLAN/public}/habit.html | 0 {public => KaizenLAN/public}/index.html | 0 {public => KaizenLAN/public}/js/habit.js | 0 {public => KaizenLAN/public}/js/index.js | 0 {public => KaizenLAN/public}/js/profile.js | 0 {public => KaizenLAN/public}/js/settings.js | 0 {public => KaizenLAN/public}/js/water.js | 0 {public => KaizenLAN/public}/js/weight.js | 0 {old => KaizenLAN/public}/kaizen_icon.png | Bin .../public}/kaizen_icon_outline.png | Bin {old => KaizenLAN/public}/kaizen_logo.png | Bin .../public}/lib/graph/habitLoader.js | 0 .../public/lib/graph/kaizenGraphInterface.js | 24 + .../lib/graph/kaizenGraphInterface.js.bak | 0 .../public}/lib/graph/profileLoader.js | 0 .../public}/lib/graph/waterLoader.js | 0 .../public}/lib/graph/weightTrackLoader.js | 0 .../public}/lib/habitWidget.js | 0 .../public}/lib/profileWidget.js | 0 .../public}/lib/utils/utils.js | 0 .../public}/lib/waterWidget.js | 0 .../public}/lib/weightWidget.js | 0 {public => KaizenLAN/public}/profile.html | 0 .../public}/res/manage_habits.png | Bin .../public}/res/manage_hydrate.png | Bin .../public}/res/manage_journal.png | Bin .../public}/res/manage_lists.png | Bin .../public}/res/manage_weight.png | Bin .../public}/res/placeholder.png | Bin {public => KaizenLAN/public}/res/settings.png | Bin .../public}/res/view_profile.png | Bin {public => KaizenLAN/public}/settings.html | 0 {public => KaizenLAN/public}/water.html | 0 {public => KaizenLAN/public}/weight.html | 0 server.js => KaizenLAN/server.js | 0 README.md | 65 +- old/css/index.css | 291 -------- old/hydration.html | 58 -- old/index.html | 77 --- old/journal.html | 58 -- old/js/index.js | 630 ------------------ old/js/lists.js | 322 --------- old/js/profile.js | 164 ----- old/js/weight.js | 453 ------------- old/lists.html | 67 -- old/profile.html | 59 -- old/schedule.html | 58 -- old/settings.html | 56 -- old/weight.html | 68 -- public/kaizen_icon.png | Bin 4378 -> 0 bytes public/kaizen_icon_outline.png | Bin 14555 -> 0 bytes public/kaizen_logo.png | Bin 24817 -> 0 bytes readme assets/Interface.png | Bin 146233 -> 113507 bytes setup.sh | 160 +++++ setup_database.sql | 51 ++ start.sh | 42 +- stop.sh | 19 +- 60 files changed, 330 insertions(+), 2392 deletions(-) rename package-lock.json => KaizenLAN/package-lock.json (100%) rename package.json => KaizenLAN/package.json (100%) rename {public => KaizenLAN/public}/css/index.css (100%) rename {public => KaizenLAN/public}/habit.html (100%) rename {public => KaizenLAN/public}/index.html (100%) rename {public => KaizenLAN/public}/js/habit.js (100%) rename {public => KaizenLAN/public}/js/index.js (100%) rename {public => KaizenLAN/public}/js/profile.js (100%) rename {public => KaizenLAN/public}/js/settings.js (100%) rename {public => KaizenLAN/public}/js/water.js (100%) rename {public => KaizenLAN/public}/js/weight.js (100%) rename {old => KaizenLAN/public}/kaizen_icon.png (100%) rename {old => KaizenLAN/public}/kaizen_icon_outline.png (100%) rename {old => KaizenLAN/public}/kaizen_logo.png (100%) rename {public => KaizenLAN/public}/lib/graph/habitLoader.js (100%) create mode 100644 KaizenLAN/public/lib/graph/kaizenGraphInterface.js rename public/lib/graph/kaizenGraphInterface.js => KaizenLAN/public/lib/graph/kaizenGraphInterface.js.bak (100%) rename {public => KaizenLAN/public}/lib/graph/profileLoader.js (100%) rename {public => KaizenLAN/public}/lib/graph/waterLoader.js (100%) rename {public => KaizenLAN/public}/lib/graph/weightTrackLoader.js (100%) rename {public => KaizenLAN/public}/lib/habitWidget.js (100%) rename {public => KaizenLAN/public}/lib/profileWidget.js (100%) rename {public => KaizenLAN/public}/lib/utils/utils.js (100%) rename {public => KaizenLAN/public}/lib/waterWidget.js (100%) rename {public => KaizenLAN/public}/lib/weightWidget.js (100%) rename {public => KaizenLAN/public}/profile.html (100%) rename {public => KaizenLAN/public}/res/manage_habits.png (100%) rename {public => KaizenLAN/public}/res/manage_hydrate.png (100%) rename {public => KaizenLAN/public}/res/manage_journal.png (100%) rename {public => KaizenLAN/public}/res/manage_lists.png (100%) rename {public => KaizenLAN/public}/res/manage_weight.png (100%) rename {public => KaizenLAN/public}/res/placeholder.png (100%) rename {public => KaizenLAN/public}/res/settings.png (100%) rename {public => KaizenLAN/public}/res/view_profile.png (100%) rename {public => KaizenLAN/public}/settings.html (100%) rename {public => KaizenLAN/public}/water.html (100%) rename {public => KaizenLAN/public}/weight.html (100%) rename server.js => KaizenLAN/server.js (100%) delete mode 100644 old/css/index.css delete mode 100644 old/hydration.html delete mode 100644 old/index.html delete mode 100644 old/journal.html delete mode 100644 old/js/index.js delete mode 100644 old/js/lists.js delete mode 100644 old/js/profile.js delete mode 100644 old/js/weight.js delete mode 100644 old/lists.html delete mode 100644 old/profile.html delete mode 100644 old/schedule.html delete mode 100644 old/settings.html delete mode 100644 old/weight.html delete mode 100644 public/kaizen_icon.png delete mode 100644 public/kaizen_icon_outline.png delete mode 100644 public/kaizen_logo.png create mode 100644 setup_database.sql diff --git a/package-lock.json b/KaizenLAN/package-lock.json similarity index 100% rename from package-lock.json rename to KaizenLAN/package-lock.json diff --git a/package.json b/KaizenLAN/package.json similarity index 100% rename from package.json rename to KaizenLAN/package.json diff --git a/public/css/index.css b/KaizenLAN/public/css/index.css similarity index 100% rename from public/css/index.css rename to KaizenLAN/public/css/index.css diff --git a/public/habit.html b/KaizenLAN/public/habit.html similarity index 100% rename from public/habit.html rename to KaizenLAN/public/habit.html diff --git a/public/index.html b/KaizenLAN/public/index.html similarity index 100% rename from public/index.html rename to KaizenLAN/public/index.html diff --git a/public/js/habit.js b/KaizenLAN/public/js/habit.js similarity index 100% rename from public/js/habit.js rename to KaizenLAN/public/js/habit.js diff --git a/public/js/index.js b/KaizenLAN/public/js/index.js similarity index 100% rename from public/js/index.js rename to KaizenLAN/public/js/index.js diff --git a/public/js/profile.js b/KaizenLAN/public/js/profile.js similarity index 100% rename from public/js/profile.js rename to KaizenLAN/public/js/profile.js diff --git a/public/js/settings.js b/KaizenLAN/public/js/settings.js similarity index 100% rename from public/js/settings.js rename to KaizenLAN/public/js/settings.js diff --git a/public/js/water.js b/KaizenLAN/public/js/water.js similarity index 100% rename from public/js/water.js rename to KaizenLAN/public/js/water.js diff --git a/public/js/weight.js b/KaizenLAN/public/js/weight.js similarity index 100% rename from public/js/weight.js rename to KaizenLAN/public/js/weight.js diff --git a/old/kaizen_icon.png b/KaizenLAN/public/kaizen_icon.png similarity index 100% rename from old/kaizen_icon.png rename to KaizenLAN/public/kaizen_icon.png diff --git a/old/kaizen_icon_outline.png b/KaizenLAN/public/kaizen_icon_outline.png similarity index 100% rename from old/kaizen_icon_outline.png rename to KaizenLAN/public/kaizen_icon_outline.png diff --git a/old/kaizen_logo.png b/KaizenLAN/public/kaizen_logo.png similarity index 100% rename from old/kaizen_logo.png rename to KaizenLAN/public/kaizen_logo.png diff --git a/public/lib/graph/habitLoader.js b/KaizenLAN/public/lib/graph/habitLoader.js similarity index 100% rename from public/lib/graph/habitLoader.js rename to KaizenLAN/public/lib/graph/habitLoader.js diff --git a/KaizenLAN/public/lib/graph/kaizenGraphInterface.js b/KaizenLAN/public/lib/graph/kaizenGraphInterface.js new file mode 100644 index 0000000..bb3a1d5 --- /dev/null +++ b/KaizenLAN/public/lib/graph/kaizenGraphInterface.js @@ -0,0 +1,24 @@ +const GRAPH_ENDPOINT = "http://192.168.0.35:8080/graphql"; + +async function request(query) { + const options = { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({query}) + }; + try { + const response = await fetch(GRAPH_ENDPOINT, options); + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + var responseBody = await response.json(); + return responseBody.data + } catch (error) { + console.error('Error fetching data:', error); + alert("An unexpected error occurred when querying kaizen graph - are the APIs running?") + } +} + +export { request } \ No newline at end of file diff --git a/public/lib/graph/kaizenGraphInterface.js b/KaizenLAN/public/lib/graph/kaizenGraphInterface.js.bak similarity index 100% rename from public/lib/graph/kaizenGraphInterface.js rename to KaizenLAN/public/lib/graph/kaizenGraphInterface.js.bak diff --git a/public/lib/graph/profileLoader.js b/KaizenLAN/public/lib/graph/profileLoader.js similarity index 100% rename from public/lib/graph/profileLoader.js rename to KaizenLAN/public/lib/graph/profileLoader.js diff --git a/public/lib/graph/waterLoader.js b/KaizenLAN/public/lib/graph/waterLoader.js similarity index 100% rename from public/lib/graph/waterLoader.js rename to KaizenLAN/public/lib/graph/waterLoader.js diff --git a/public/lib/graph/weightTrackLoader.js b/KaizenLAN/public/lib/graph/weightTrackLoader.js similarity index 100% rename from public/lib/graph/weightTrackLoader.js rename to KaizenLAN/public/lib/graph/weightTrackLoader.js diff --git a/public/lib/habitWidget.js b/KaizenLAN/public/lib/habitWidget.js similarity index 100% rename from public/lib/habitWidget.js rename to KaizenLAN/public/lib/habitWidget.js diff --git a/public/lib/profileWidget.js b/KaizenLAN/public/lib/profileWidget.js similarity index 100% rename from public/lib/profileWidget.js rename to KaizenLAN/public/lib/profileWidget.js diff --git a/public/lib/utils/utils.js b/KaizenLAN/public/lib/utils/utils.js similarity index 100% rename from public/lib/utils/utils.js rename to KaizenLAN/public/lib/utils/utils.js diff --git a/public/lib/waterWidget.js b/KaizenLAN/public/lib/waterWidget.js similarity index 100% rename from public/lib/waterWidget.js rename to KaizenLAN/public/lib/waterWidget.js diff --git a/public/lib/weightWidget.js b/KaizenLAN/public/lib/weightWidget.js similarity index 100% rename from public/lib/weightWidget.js rename to KaizenLAN/public/lib/weightWidget.js diff --git a/public/profile.html b/KaizenLAN/public/profile.html similarity index 100% rename from public/profile.html rename to KaizenLAN/public/profile.html diff --git a/public/res/manage_habits.png b/KaizenLAN/public/res/manage_habits.png similarity index 100% rename from public/res/manage_habits.png rename to KaizenLAN/public/res/manage_habits.png diff --git a/public/res/manage_hydrate.png b/KaizenLAN/public/res/manage_hydrate.png similarity index 100% rename from public/res/manage_hydrate.png rename to KaizenLAN/public/res/manage_hydrate.png diff --git a/public/res/manage_journal.png b/KaizenLAN/public/res/manage_journal.png similarity index 100% rename from public/res/manage_journal.png rename to KaizenLAN/public/res/manage_journal.png diff --git a/public/res/manage_lists.png b/KaizenLAN/public/res/manage_lists.png similarity index 100% rename from public/res/manage_lists.png rename to KaizenLAN/public/res/manage_lists.png diff --git a/public/res/manage_weight.png b/KaizenLAN/public/res/manage_weight.png similarity index 100% rename from public/res/manage_weight.png rename to KaizenLAN/public/res/manage_weight.png diff --git a/public/res/placeholder.png b/KaizenLAN/public/res/placeholder.png similarity index 100% rename from public/res/placeholder.png rename to KaizenLAN/public/res/placeholder.png diff --git a/public/res/settings.png b/KaizenLAN/public/res/settings.png similarity index 100% rename from public/res/settings.png rename to KaizenLAN/public/res/settings.png diff --git a/public/res/view_profile.png b/KaizenLAN/public/res/view_profile.png similarity index 100% rename from public/res/view_profile.png rename to KaizenLAN/public/res/view_profile.png diff --git a/public/settings.html b/KaizenLAN/public/settings.html similarity index 100% rename from public/settings.html rename to KaizenLAN/public/settings.html diff --git a/public/water.html b/KaizenLAN/public/water.html similarity index 100% rename from public/water.html rename to KaizenLAN/public/water.html diff --git a/public/weight.html b/KaizenLAN/public/weight.html similarity index 100% rename from public/weight.html rename to KaizenLAN/public/weight.html diff --git a/server.js b/KaizenLAN/server.js similarity index 100% rename from server.js rename to KaizenLAN/server.js diff --git a/README.md b/README.md index 5c59aea..02539ea 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,5 @@ # Kaizen LAN -> [!NOTE] -> This README is currently a **plan** for Kaizen LAN. There are no current releases at this time and the first version is in development. - ### Frontend ![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB) ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) @@ -23,17 +20,21 @@ **Kaizen LAN**: Continuously improve your life with helpful widgets - accessible around your home! This application offers a interface that contains many different self improvement tools. The goal is to provide the user a customized experience to help continuously improve their lives through the use of small and simple tools. The following tools are planned to be included in Kaizen LAN: -- **Kaizen profile** (planned for v1.0.0) -- **Weight tracking** (planned for v1.0.0) -- **Water/hydration tracking** (planned for v1.0.0) -- **Habit tracking** (planned for v1.0.0) + +### Currently Implemented +- **Kaizen profile** (v1.0.0) +- **Weight tracking** (v1.0.0) +- **Water/hydration tracking** (v1.0.0) +- **Habit tracking** (v1.0.0) + +### Planned to be Implemented - **Routine checklists** (planned for v1.1.0) - **Text/CSV editor** (planned for v1.1.0) - **Time blocking** (planned for v1.1.0) - **Journal** (planned for v1.1.0) - **Food calorie tracking** (planned for v1.2.0) - **Todo list** (planned for v1.2.0) - **Countdown workout** (planned for v1.2.0) +- **Countdown workout** (planned for v1.2.0) # Concept View @@ -51,12 +52,11 @@ This application offers a interface that contains many different self improvemen To utilize all of the features of Kaizen LAN, you will need to designate a computer system to run each part of the Kaizen LAN application. This includes the Kaizen LAN server, Kaizen GraphQL API, each microservice, and a MySQL database. To be able to run all of these, you must have the following: - **[Node.js](https://nodejs.org/en) version 18 or higher** (used to run Kaizen LAN server and Kaizen Profile API) -- **[Java](https://openjdk.org/projects/jdk/) version 17 or higher** and **Maven version 3 or higher** (used to build and run each microservice) +- **[Java](https://openjdk.org/projects/jdk/) version 17 or higher** (used to build and run each API microservice) - **[MySQL](https://www.mysql.com/) version 8 or higher** (used to run the MySQL database) - **Bash or related terminal interface** - macOS testing using [Zsh](https://en.wikipedia.org/wiki/Z_shell) (preinstalled on macOS) - Linux (Ubuntu) testing using [GNOME](https://en.wikipedia.org/wiki/GNOME_Terminal) (preinstalled on Ubuntu 22) - - Windows testing using [Git Bash](https://git-scm.com/downloads) (NOT preinstalled) ## Dependencies @@ -82,34 +82,43 @@ You can download the latest release of the application from the **[releases page ### Initial Setup -For initial setup, you must have your MySQL instance running on your machine. Open the `setup.sh` file to configure with your MySQL credentials: +For initial setup, you must have your MySQL instance running on your machine. Verify that you can open MySQL through the terminal by using the command and signing in with your MySQL password: ```bash -#!/bin/bash - -# MySQL credentials -MYSQL_USER="your_mysql_username" -MYSQL_PASSWORD="your_mysql_password" -MYSQL_HOST="localhost" -MYSQL_DB="your_database_name" +mysql -u {your_mysql_username} -p ``` -Specifically, you will need to modify the `MYSQL_USER`, `MYSQL_PASSWORD`, and `MYSQL_DB` values. Kaizen LAN was designed to run on the local machine, so there is no need to modify the host value. -Running this script will create and configure the MySQL database along with each table utilized in this application. If the setup was successful, you will see a message that reads "`SUCCESS: Kaizen LAN setup complete`". If the setup was unsuccessful, you will see a message that reads "`FAILURE: Setup was unable to complete`". +If you are able to login with a username and password like this, you are ready to move forward with installing Kaizen. This README does not serve the purpose of showing users how to install MySQL on their device. -### Run the application +Run the `setup.sh` script in a bash-supported terminal. +- You will be prompted to sign into your MySQL using the script. This script will create all of the tables used in KaizenLAN. It will also create a **secrets** folder which stores the MySQL credentials and LAN address in the user's `Documents/narlock/secrets/mysql.properties` file. The APIs that KaizenLAN utilizes will read from this properties file so that it can communicate with the MySQL database. +- Next, you will setup your profile. The script will prompt you to create a Kaizen username and enter various information for your profile. After this is completed, a row in the Profile and Health tables for the Kaizen Profile will be added to the MySQL database and the setup will be completed. + +> [!NOTE] +> If you are interested in viewing the contents of the bash script, you can open the script in a text editor, or view it online on [GitHub](https://github.com/narlock/KaizenLAN/blob/main/setup.sh) - + +### Run the application Once the setup is complete, you can run the `start.sh` script in a new terminal. This will launch the Kaizen LAN server, Kaizen GraphQL API, and each microservice utilized by this application. > [!WARNING] -> By running this application, you are running roughly 10+ applications on your system. RAM usage may vary. +> By running this application, you are running roughly 6 applications on your system. RAM usage may vary. + +When you run the application, you will receive the messages indicating which applications are running on which port number: +```sh +Starting Kaizen Profile API{} on port 8079 +Starting Narlock Habit API{} on port 8089 +Starting Narlock Water Track API{} on port 8083 +Starting Narlock Weight Track API{} on port 8081 +Starting Narlock GraphQL API{} on port 8080 +Starting Kaizen LAN{} on port 3000 +``` -Once the script completes, you can choose to exit the terminal if you wish. Next, you can navigate to **http://localhost:3000/** to access Kaizen LAN. +Once the script completes, you can choose to exit the terminal if you wish. Next, you can navigate to **http://localhost:3000/** to access Kaizen LAN. On other devices within your local network, you can navigate to your LAN **http://{lan_address}:3000/** on any of the devices connected to your network to use the application. You can find the exact address in the secrets properties folder that was created during the setup if you cannot find this address. ### Stopping the application -When the start script is ran, it will run all of the required applications for Kaizen LAN in the background. The stop script will end each process that was opened by the start script. Simply just run the `stop.sh` script in a terminal. +When the start script is ran, it will run all of the required applications for Kaizen LAN in the background. The stop script will end each process that was opened by the start script. Simply just run the `stop.sh` script in a terminal. This will kill each process that is running on the ports above. # Concept Idea @@ -119,9 +128,7 @@ Based off of [Kaizen](https://github.com/narlock/Kaizen), which is a local Java ![First Iteration](./readme%20assets/Interface.png) -The first iteration of Kaizen LAN introduces a simple interface utilizing the checklist api, water tracking api, profile api, and weight tracking api. The navigation bar at the top of the screen expands on each of the widgets that appear on the home screen. +The first iteration of Kaizen LAN introduces a simple interface utilizing the habit api, water tracking api, profile api, and weight tracking api. The navigation bar at the top of the screen expands on each of the widgets that appear on the home screen. # Future Enhancements -- Multiprofile: require users to "login" to their profile. This allows multiple users to have a profile to utilize Kaizen LAN. - - This includes the functionality of providing a password (or not) to sign in to a profile. -- Anti Habit API integration +- Multiprofile: require users to "login" to their profile. This allows multiple users to have a profile to utilize Kaizen LAN. This includes the functionality of providing a password (or not) to sign in to a profile. diff --git a/old/css/index.css b/old/css/index.css deleted file mode 100644 index c8d23da..0000000 --- a/old/css/index.css +++ /dev/null @@ -1,291 +0,0 @@ -/* styles.css */ - -body { - background-color: #484848; - /* Grey background color */ - font-family: 'Fira Code', monospace; - /* Set Fira Code as the default font */ - color: #9c9c9c; - /* Set off-white text color for elements with the class 'off-white-text' */ -} - -footer { - padding-top: 20px; - text-align: center; -} - -footer a { - text-decoration: none; /* Remove underline */ - color: inherit; /* Inherit text color from parent */ -} - -footer a:hover { - color: #00a657; /* Change color on hover */ -} - -h2, h3, b { - color: #ffffff; -} - -p { - color: #9c9c9c; -} - -.special { - color: #00eb7b; -} - -h1 { - font-size: 64px; -} - -button { - margin-left: 10px; -} - -p { - /* Additional styling for paragraphs if needed */ - font-size: 16px; - /* Adjust font size as needed */ -} - -.topnav a { - float: left; - position: relative; - color: #f2f2f2; - text-align: center; - padding: 10px 10px; - text-decoration: none; - font-size: 17px; - -} - -.topnav-right { - float: right; - position: relative; - color: #f2f2f2; - text-align: center; - padding: 10px 10px; - padding-top: 50px; - text-decoration: none; - font-size: 17px; -} - -/* Add the tooltip styling */ -.tooltip { - position: absolute; - background-color: #000; - color: #fff; - padding: 5px; - border-radius: 5px; - visibility: hidden; - opacity: 0; - transition: opacity 0.3s; - z-index: 1; -} - -/* Position the tooltip above the link */ -.tooltip.top { - bottom: calc(100% + 5px); - left: 50%; - transform: translateX(-50%); -} - -/* Position the tooltip above the right-aligned links */ -.tooltip.right { - top: 50%; - left: calc(100% + 5px); - transform: translateY(-50%); -} - -.menuLink img { - transition: filter 0.3s; /* Add transition for smooth effect */ -} - -.menuLink:hover img { - filter: brightness(100%) sepia(100%) hue-rotate(120deg); -} - - -#homeLink img { - content: url('../kaizen_logo.png'); - width: 325px; -} - -.container { - display: flex; - flex-wrap: wrap; - width: 100%; /* Set a specific width for consistency */ - justify-content: space-around; /* Adjust as needed */ -} - -.center-container { - display: flex; - justify-content: center; - align-items: center; - margin-top: 30px; -} - -.add-button { - margin: 20px; - padding-top: 4px; - padding-left: 10px; - padding-right: 10px; - padding-bottom: 4px; - font-size: 25px; - background-color: #00eb7b; - color: black; - font-weight: bold; -} - -.checkBoxLabel { - margin-bottom: 12px; - cursor: pointer; - font-size: 22px; -} - -.checkBoxLabel input { - width: 24px; - height: 24px; - margin-right: 20px; - margin-bottom: 20px; -} - -.checkBoxIncomplete { - color: white; -} - -.blockDiv { - display: block; -} - -.box { - flex: 1; - min-width: 300px; - margin: 20px; - padding: 20px; - box-sizing: border-box; - border: 1px solid #ccc; -} - -.boxNoBorder { - flex: 1; - min-width: 300px; - margin: 20px; - padding: 20px; - box-sizing: border-box; -} - -.hiddenBox { - flex: 1; - min-width: 300px; - margin: 20px; - padding: 20px; - box-sizing: border-box; -} - -#profile img { - float: left; - margin-right: 20px; - width: 200px; - height: 200px; -} - -#xpBarProgress { - width: 100%; - max-width: 400px; - background-color: grey; - border: 1px solid #ccc; -} - -#xpBar { - width: 1%; - height: 30px; - background-color: #00eb7b; -} - -.bmi.underweight { - color: rgb(0, 145, 255); -} - -.bmi.normal { - color: #00eb7b; -} - -.bmi.overweight { - color: orange; -} - -.bmi.obese { - color: red; -} - -@media only screen and (min-width: 901px) { - /* Show the tooltip on hover */ - .topnav a:hover .tooltip { - visibility: visible; - opacity: 1; - } - - /* Customize tooltip content for each link */ - .topnav a[href="/profile"] .tooltip::before { - content: 'View Profile'; - } - - .topnav a[href="/lists"] .tooltip::before { - content: 'Manage Lists'; - } - - .topnav a[href="/schedule"] .tooltip::before { - content: 'Manage Schedule'; - } - - .topnav a[href="/weight"] .tooltip::before { - content: 'Manage Weight'; - } - - .topnav a[href="/water"] .tooltip::before { - content: 'Manage Hydration'; - } - - .topnav a[href="/journal"] .tooltip::before { - content: 'Manage Journal'; - } - - .topnav a[href="/settings"] .tooltip::before { - content: 'Change Settings'; - } -} - -@media only screen and (max-width: 900px) { - - /* Adjust the size for screens with a maximum width of 600px (typical for phones) */ - #homeLink img { - content: url('../kaizen_icon_outline.png'); - width: 32px; - } - - .menuLink img { - width: 20px; - height: 20px; - } - - .topnav-right { - padding-top: 5px; - } - - .box { - flex-basis: 100%; /* Set the basis to 100% for stacking */ - margin: auto; - margin-top: 20px; - } - - .hiddenBox { - display: none; - } - - #profile img { - width: 175px; - height: 175px; - } -} \ No newline at end of file diff --git a/old/hydration.html b/old/hydration.html deleted file mode 100644 index a17e6a5..0000000 --- a/old/hydration.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - Water • Kaizen LAN - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-

-
- - - - \ No newline at end of file diff --git a/old/index.html b/old/index.html deleted file mode 100644 index fb073c2..0000000 --- a/old/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - Kaizen LAN - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-

-
-
-

-
-
-

-
-
-

- -
-

-
-
-
- - - - - - \ No newline at end of file diff --git a/old/journal.html b/old/journal.html deleted file mode 100644 index ac07d11..0000000 --- a/old/journal.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - Journal • Kaizen LAN - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-

-
- - - - \ No newline at end of file diff --git a/old/js/index.js b/old/js/index.js deleted file mode 100644 index d1a0703..0000000 --- a/old/js/index.js +++ /dev/null @@ -1,630 +0,0 @@ -HOST_ADDRESS = "192.168.0.129" - -document.addEventListener("DOMContentLoaded", function () { - setBoxInformation(); - configureChecklistWidget(); - configureProfileWidget(); - configureWeightWidget(); -}); - -function setBoxInformation() { - // Set checklist information - var box = document.getElementById('checklist'); - var currentTime = new Date().getHours(); - - if (currentTime >= 4 && currentTime < 10) { - box.innerText = 'Morning Checklist'; - } else if (currentTime >= 10 && currentTime < 17) { - box.innerText = 'Daily Checklist'; - } else { - box.innerText = 'Night Checklist'; - } - - box = document.getElementById('schedule'); - box.innerText = 'Schedule' - box = document.getElementById('profile') - box.innerHTML = 'Profile' - box = document.getElementById('weight'); - box.innerHTML = 'Weight' - box = document.getElementById('water') - box.innerHTML = 'Water' -} - -/** - * =============== - * CHECKLIST WIDGET - * =============== - */ - -var CHECKLIST_ITEMS = null; - -function configureChecklistWidget() { - retrieveListInformation(); -} - -function retrieveListInformation() { - var currentTime = new Date().getHours(); - if (currentTime >= 4 && currentTime < 10) { - getList("morning"); - } else if (currentTime >= 10 && currentTime < 17) { - getList("daily"); - } else { - getList("night"); - } -} - -function getList(checklistName) { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - CHECKLIST_ITEMS = JSON.parse(xmlhttp.response); - populateChecklistItems(checklistName); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?"); - } - } - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8085/checklist-item?checklistName=${checklistName}`); - xmlhttp.send(); -} - -function populateChecklistItems(checklistName) { - var checklistItemsDiv = document.getElementById('checklistItems'); - - // Remove each dom child - they will be dynamically readded - while (checklistItemsDiv.firstChild) { - checklistItemsDiv.removeChild(checklistItemsDiv.firstChild); - } - - CHECKLIST_ITEMS.forEach(element => { - addItemToChecklistDiv(checklistItemsDiv, element, checklistName); - }); -} - -function addItemToChecklistDiv(checklistDiv, element, checklistName) { - var elementDiv = document.createElement('div') - elementDiv.classList.add('checklist-element') - - var label = document.createElement('label'); - label.classList.add('checkBoxLabel'); - var checkbox = document.createElement('input'); - checkbox.type = 'checkbox'; - label.appendChild(checkbox); - var checkmark = document.createElement('span') - checkmark.classList.add('checkmark'); - label.appendChild(checkmark); - if(element.streak != null && element.streak != 0) { - label.appendChild(document.createTextNode(`${element.name} [🔥 ${element.streak}]`)); - } else { - label.appendChild(document.createTextNode(`${element.name}`)); - } - elementDiv.appendChild(label); - checklistDiv.appendChild(elementDiv); - - // check completed date - if(element.lastCompletedDate) { - sameDay = areDatesEqual(new Date(), new Date(`${element.lastCompletedDate}T00:00:00`)); - if(sameDay) { - checkbox.checked = true; - checkbox.disabled = true; - } else { - // Not checked, we can complete this today - label.classList.add('checkBoxIncomplete'); - } - } else { - // Not checked, we can complete this today - label.classList.add('checkBoxIncomplete'); - } - - // action - checkbox.addEventListener('click', function(event) { - if(event.shiftKey) { - checkbox.checked = false; - var result = window.confirm(`Kaizen Message\n\nWould you like to remove item ${element.name}?`) - if(result) { - var xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 204) { - console.log("successfully remove item"); - resetChecklist(checklistName); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?") - } - } - } - - xmlhttp.open("DELETE", `http://${HOST_ADDRESS}:8085/checklist-item/${element.id}`, true); - xmlhttp.send(); - } else { - // If checkbox is checked, disable it - if (checkbox.checked) { - checkbox.disabled = true; - } - label.classList.remove('checkBoxIncomplete'); - - // Call the streak endpoint to update date and streak - var xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - console.log("Backend updated"); - giveExperienceToProfile(PROFILE_ENTRY, 5); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?") - } - } - - xmlhttp.open("PATCH", `http://${HOST_ADDRESS}:8085/checklist-item/${element.id}/streak`, true); - xmlhttp.send(); - } - }); -} - -/** - * =============== - * PROFILE WIDGET - * =============== - */ -function configureProfileWidget() { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Show profile details - PROFILE_ENTRY = JSON.parse(xmlhttp.response) - console.log(PROFILE_ENTRY) - displayProfile(); - } else if (this.readyState == 4 && this.status == 404) { - // Show create profile details - console.log("Profile not found, showing create profile interface") - } else if (this.readyState == 4) { - // Unknown error occurred - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8079/profile/1`, true); - xmlhttp.send(); -} - -var mainProfileDiv = null; - -function displayProfile() { - var profileDiv = document.getElementById('profile'); - - var mainDiv = document.createElement('div'); - mainDiv.classList.add("center-container"); - - var imageElement = document.createElement('img'); - imageElement.src = PROFILE_ENTRY.image_url; - - var contentElement = document.createElement('p'); - contentElement.innerHTML = ` - -

${PROFILE_ENTRY.username}

-
- Level: ${calculateLevel(PROFILE_ENTRY.xp)} (${PROFILE_ENTRY.xp} XP)
- Height: ${PROFILE_ENTRY.health.height}
- Weight: ${PROFILE_ENTRY.health.weight}
-
- `; - - var xpBarDiv = document.createElement('div'); - xpBarDiv.classList.add('center-container'); - - var xpBarElement = document.createElement('div'); - xpBarElement.id = 'xpBarProgress'; - var xpBar = document.createElement('div'); - xpBar.id = 'xpBar'; - xpBarElement.appendChild(xpBar); - xpBarDiv.appendChild(xpBarElement); - - mainDiv.appendChild(imageElement); - mainDiv.appendChild(contentElement); - profileDiv.appendChild(mainDiv); - profileDiv.appendChild(xpBarDiv); - - moveXpBar(PROFILE_ENTRY.xp, profileDiv); - mainProfileDiv = profileDiv; -} - -function moveXpBar(xp, profileDiv) { - var nextLevelXp = calculateExperienceToNextLevel(xp) - var percent = xp / nextLevelXp - - var nextLevelElement = document.getElementById('nextLevelElement') - if(nextLevelElement == null) { - var nextLevelElement = document.createElement('p') - nextLevelElement.id = 'nextLevelElement' - nextLevelElement.innerHTML = `XP to next level: ${nextLevelXp} (${Math.round(percent)}%)` - nextLevelElement.style.textAlign = "center"; - profileDiv.appendChild(nextLevelElement); - } else { - nextLevelElement.innerHTML = `XP to next level: ${nextLevelXp} (${Math.round(percent)}%)` - } - - var i = 0; - if (i == 0) { - i = 1; - var elem = document.getElementById("xpBar"); - var width = 1; - var id = setInterval(frame, 10); - function frame() { - if (width >= percent) { - clearInterval(id); - i = 0; - } else { - width++; - elem.style.width = width + "%"; - } - } - } -} - -/** - * =============== - * WEIGHT WIDGET - * =============== - */ - -let WEIGHT_TODAY_ENTRY = null -var myWeightChart = null - -function configureWeightWidget() { - var today = getCurrentDateString() - console.log(`attempting to retrieve /weight?date=${today}`) - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - // There is an entry for today - TODAY_ENTRY = JSON.parse(xmlhttp.response) - console.log(`weight entry for ${today} found`) - - showTodayWeightInterface("weight") - } else if (this.readyState == 4 && this.status == 404) { - // No entry found for date - var response = JSON.parse(xmlhttp.response) - console.log(response.message) - - // Give option to create entry - showCreateWeightInterface("weight") - } else if (this.readyState == 4) { - // Some error occurred` - var response = JSON.parse(xmlhttp.response) - console.error(`an unexpected error occurred when calling simple-time-block-api (is it running?)`) - } - }; - - xmlhttp.open("GET", `http://${HOST_ADDRESS}:8081/weight?date=${today}`, true) - xmlhttp.send(); -} - -function showTodayWeightInterface(elementId) { - console.log('showing today interface') - var element = document.getElementById(elementId) - - // TODO create a special div with an id that can be styled - var displayWeightDiv = document.createElement('div') - displayWeightDiv.id = 'displayWeightDiv' - displayWeightDiv.innerHTML = `

Today's weight: ${TODAY_ENTRY.weight}

` - - element.appendChild(displayWeightDiv); - getGraphEntries(7); -} - -function getGraphEntries(daysAgo) { - if(myWeightChart) { - myWeightChart.destroy(); - myWeightChart = null; - } - - // Default to show Week View - var today = getCurrentDateString() - var daysAgo = getDaysAgoDateString(daysAgo) - console.log(`attempting to retrieve /weight/range?startDate=${daysAgo}&endDate=${today}`) - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - GRAPH_RESPONSE = JSON.parse(xmlhttp.response) - - const xValues = []; - const yValues = []; - - GRAPH_RESPONSE.entries.forEach(element => { - xValues.push(element.date) - yValues.push(element.weight) - }); - - displayGraph("myWeightChart", xValues, yValues); - } else if (this.readyState == 4) { - // Some error occurred` - var response = JSON.parse(xmlhttp.response) - console.error(`an unexpected error occurred when calling simple-time-block-api ${response.error}`) - } - }; - - xmlhttp.open("GET", `http://${HOST_ADDRESS}:8081/weight/range?startDate=${daysAgo}&endDate=${today}`, true) - xmlhttp.send(); -} - -function displayGraph(element, xValues, yValues) { - myWeightChart = new Chart(element, { - type: "line", - data: { - labels: xValues, - datasets: [{ - label: "Weight Trend", - fill: false, - lineTension: 0.2, - backgroundColor: "rgba(0,235,123,1.0)", - borderColor: "rgba(0,166,87,0.7)", - pointRadius: 8, - pointHoverRadius: 12, - data: yValues - }] - }, - options: { - plugins: { - legend: { - labels: { - color: "white", - } - } - }, - scales: { - y: { - title: { - display: true, - color: "white", - text: "Weight" - }, - ticks: { - color: "white" - } - }, - x: { - title: { - display: true, - color: "white", - text: "Date" - }, - ticks: { - color: "white" - } - } - } - } - }); -} - -function showCreateWeightInterface(elementId) { - var element = document.getElementById(elementId) - - var createWeightDiv = document.createElement('div') - createWeightDiv.id = 'createWeightDiv' - - // Create text box for entering weight - var weightEntryBox = document.createElement('input') - weightEntryBox.type = 'text' - weightEntryBox.id = 'createWeightEntry' - weightEntryBox.placeholder = 'Enter weight here...'; - - // Create a button for submitting the weight entry to database - var weightEntrySubmit = document.createElement('button') - weightEntrySubmit.innerText = 'Submit Entry' - weightEntrySubmit.id = 'createWeightButton' - weightEntrySubmit.addEventListener('click', handleCreateWeightClick); - - // add them to the dom - createWeightDiv.appendChild(weightEntryBox) - createWeightDiv.appendChild(weightEntrySubmit) - element.appendChild(createWeightDiv) - - // Recreate the graph view - based off of what is already there... - getGraphEntries(7); -} - -// Function to be called when the button is clicked -function handleCreateWeightClick() { - var entry = document.getElementById('createWeightEntry').value - console.log(`user entered ${entry} into the box`) - if(isFloatingPointNumber(entry)) { - // Make call to backend api - createWeightEntry(entry); - syncProfileCurrentWeight(entry); - } else { - alert(`Unexpected entry value: ${entry}, please enter a valid weight entry.`) - } -} - -function createWeightEntry(entry) { - console.log(`creating weight entry for today with ${entry}`) - - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open("POST", `http://${HOST_ADDRESS}:8081/weight`, true) - xmlhttp.setRequestHeader("Content-Type", "application/json") - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 201) { - console.log("successfully created, change to view") - TODAY_ENTRY = JSON.parse(xmlhttp.response) - removeCreateWeightInterface(); - showTodayWeightInterface("weight"); - } else if(this.readyState == 4) { - alert("An unexpected error occurred when creating an entry") - } - } - - var data = { - weight: entry, - date: getCurrentDateString() - }; - var jsonData = JSON.stringify(data) - - xmlhttp.send(jsonData); -} - -function syncProfileCurrentWeight(entry) { - var PROFILE_ENTRY = null; - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Show profile details - PROFILE_ENTRY = JSON.parse(xmlhttp.response) - console.log(PROFILE_ENTRY) - updateWeightOnProfile(PROFILE_ENTRY, entry); - } else if (this.readyState == 4 && this.status == 404) { - // Show create profile details - console.log("Profile not found, showing create profile interface") - } else if (this.readyState == 4) { - // Unknown error occurred - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8079/profile/1`); - xmlhttp.send(); -} - -function updateWeightOnProfile(profile, entry) { - profile.health.weight = entry; - // gain 10 xp points for entering in daily weight - profile.xp = profile.xp + 10; - - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open("PUT", `http://${HOST_ADDRESS}:8079/profile/1`, true) - xmlhttp.setRequestHeader("Content-Type", "application/json") - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - console.log("successfully updated profile") - } else if(this.readyState == 4) { - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - } - var jsonData = JSON.stringify(profile) - xmlhttp.send(jsonData); - - moveXpBar(profile.xp, mainProfileDiv); -} - -function removeCreateWeightInterface() { - var createWeightDiv = document.getElementById('createWeightDiv') - if (createWeightDiv) { - createWeightDiv.remove(); - } -} - -/** - * ================= - * HELPER METHODS - * ================= - */ - -function calculateLevel(experience) { - // Define the base experience required for level 1 and the experience growth factor - const baseExperience = 100; - const experienceGrowthFactor = 1.2; - - // Ensure the input is a non-negative integer - const validatedExperience = Math.max(0, Math.floor(experience)); - - // Calculate the level using the exponential formula - const level = Math.floor(Math.log(validatedExperience / baseExperience) / Math.log(experienceGrowthFactor)) + 1; - - return level; -} - -function calculateExperienceToNextLevel(currentExperience) { - // Define the base experience for level 1 and the experience growth factor - const baseExperience = 100; - const experienceGrowthFactor = 1.2; - - // Ensure the input is a non-negative integer - const validatedExperience = Math.max(0, Math.floor(currentExperience)); - - // Calculate the current level using the same formula as before - const currentLevel = Math.floor(Math.log(validatedExperience / baseExperience) / Math.log(experienceGrowthFactor)) + 1; - - // Calculate the experience required for the next level - const experienceForNextLevel = Math.ceil(baseExperience * Math.pow(experienceGrowthFactor, currentLevel)); - - // Calculate the difference between the experience for the next level and the current experience - const experienceNeededForNextLevel = Math.max(0, experienceForNextLevel - validatedExperience); - - return experienceNeededForNextLevel; -} - -function getCurrentDateString() { - const today = new Date(); - - // Get year, month, and day - const year = today.getFullYear(); - const month = String(today.getMonth() + 1).padStart(2, '0'); // Month is zero-based, so add 1 - const day = String(today.getDate()).padStart(2, '0'); - - // Concatenate them in the "YYYY-mm-dd" format - const dateString = `${year}-${month}-${day}`; - - return dateString; -} - -function getDaysAgoDateString(days) { - const today = new Date(); - const sevenDaysAgo = new Date(today); - - // Subtract seven days - sevenDaysAgo.setDate(today.getDate() - days); - - // Get year, month, and day - const year = sevenDaysAgo.getFullYear(); - const month = String(sevenDaysAgo.getMonth() + 1).padStart(2, '0'); // Month is zero-based, so add 1 - const day = String(sevenDaysAgo.getDate()).padStart(2, '0'); - - // Concatenate them in the "YYYY-mm-dd" format - const dateString = `${year}-${month}-${day}`; - - return dateString; -} - -function isFloatingPointNumber(input) { - // Use a regular expression to match a floating-point number - const floatingPointPattern = /^[-+]?[0-9]*\.?[0-9]+$/; - - // Test the input against the pattern - return floatingPointPattern.test(input); -} - -function areDatesEqual(date1, date2) { - console.log(date1); - console.log(date2); - if(date1 == null || date2 == null) { - return false; - } - - return date1.getFullYear() === date2.getFullYear() && - date1.getMonth() === date2.getMonth() && - date1.getDate() === date2.getDate(); -} - -function giveExperienceToProfile(profile, amount) { - profile.xp = profile.xp + amount; - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open("PUT", `http://${HOST_ADDRESS}:8079/profile/1`, true) - xmlhttp.setRequestHeader("Content-Type", "application/json") - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - console.log("successfully updated profile") - } else if(this.readyState == 4) { - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - } - var jsonData = JSON.stringify(profile) - xmlhttp.send(jsonData); - - moveXpBar(profile.xp, mainProfileDiv); -} \ No newline at end of file diff --git a/old/js/lists.js b/old/js/lists.js deleted file mode 100644 index b8a0b95..0000000 --- a/old/js/lists.js +++ /dev/null @@ -1,322 +0,0 @@ -HOST_ADDRESS = "192.168.0.129" - -var MORNING_ITEMS = null; -var DAILY_ITEMS = null; -var NIGHT_ITEMS = null; - -document.addEventListener("DOMContentLoaded", function () { - getProfileEntry(); - retrieveListInformation(); - addButtonsToDom(); -}); - -function retrieveListInformation() { - getMorningList(); - getDailyList(); - getNightList(); -} - -function addButtonsToDom() { - addButtonToDom(document.getElementById('morningChecklist'), 'morning'); - addButtonToDom(document.getElementById('dayChecklist'), 'daily'); - addButtonToDom(document.getElementById('nightChecklist'), 'night') -} - -function addButtonToDom(rootElement, checklistName) { - var addItemDiv = document.createElement('div'); - addItemDiv.id = `${checklistName}ButtonDiv`; - addItemDiv.classList.add("center-container"); - - var button = document.createElement('button'); - button.classList.add("add-button") - button.innerText = '+'; - var itemTextField = document.createElement('input'); - itemTextField.type = 'text'; - itemTextField.id = `${checklistName}TextField`; - addItemDiv.appendChild(button); - addItemDiv.appendChild(itemTextField); - rootElement.appendChild(addItemDiv); - - button.addEventListener('click', () => { - // input validation against textfield - // then add the item to the list on backend - // then call the getList again - // if success, make sure to set itemTextField's text to nothing - if(itemTextField.value.trim() == '') { - alert("Kaizen Message\n\nYou must enter a in the text field to add a new item to a checklist.") - } else { - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open("POST", `http://${HOST_ADDRESS}:8085/checklist-item`, true); - xmlhttp.setRequestHeader("Content-Type", "application/json"); - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 201) { - - console.log(`Successfully created new item for ${checklistName} checklist`) - - // Refresh the list - resetChecklist(checklistName); - } - } - - var requestPayload = { - checklistName: checklistName, - name: itemTextField.value - }; - var jsonData = JSON.stringify(requestPayload); - xmlhttp.send(jsonData); - - itemTextField.value = ''; - } - }); -} - -function resetChecklist(name) { - // Refresh the list - if(name == 'morning') { - getMorningList(); - } else if(name == 'daily') { - getDailyList(); - } else { - getNightList(); - } -} - -function printMorningList() { - console.log(MORNING_ITEMS); -} - -/** - * ================= - * API METHODS - * ================= - */ - -function getMorningList() { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Retrieved the list - MORNING_ITEMS = JSON.parse(xmlhttp.response); - console.log(`retrieved morning items: ${MORNING_ITEMS}`) - populateMorningChecklistItems(); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8085/checklist-item?checklistName=morning`); - xmlhttp.send(); -} - -function populateMorningChecklistItems() { - var morningChecklistItemsDiv = document.getElementById('morningChecklistItems'); - - // Remove each dom child - they will be dynamically readded - while (morningChecklistItemsDiv.firstChild) { - morningChecklistItemsDiv.removeChild(morningChecklistItemsDiv.firstChild); - } - - MORNING_ITEMS.forEach(element => { - addItemToChecklistDiv(morningChecklistItemsDiv, element, 'morning'); - }); -} - -function getDailyList() { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Retrieved the list - DAILY_ITEMS = JSON.parse(xmlhttp.response); - console.log(`retrieved daily items: ${DAILY_ITEMS}`) - populateDailyChecklistItems(); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8085/checklist-item?checklistName=daily`); - xmlhttp.send(); -} - -function populateDailyChecklistItems() { - var dailyChecklistItemsDiv = document.getElementById('dayChecklistItems'); - - // Remove each dom child - they will be dynamically readded - while(dailyChecklistItemsDiv.firstChild) { - dailyChecklistItemsDiv.removeChild(dailyChecklistItemsDiv.firstChild); - } - - DAILY_ITEMS.forEach(element => { - addItemToChecklistDiv(dailyChecklistItemsDiv, element, 'daily'); - }); -} - -function getNightList() { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Retrieved the list - NIGHT_ITEMS = JSON.parse(xmlhttp.response); - console.log(`retrieved night items: ${NIGHT_ITEMS}`) - populateNightChecklistItems(); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8085/checklist-item?checklistName=night`); - xmlhttp.send(); -} - -function populateNightChecklistItems() { - var nightChecklistItemsDiv = document.getElementById('nightChecklistItems'); - - // Remove each dom child - they will be dynamically readded - while(nightChecklistItemsDiv.firstChild) { - nightChecklistItemsDiv.removeChild(nightChecklistItemsDiv.firstChild); - } - - NIGHT_ITEMS.forEach(element => { - addItemToChecklistDiv(nightChecklistItemsDiv, element, 'night'); - }); -} - -function addItemToChecklistDiv(checklistDiv, element, checklistName) { - var elementDiv = document.createElement('div') - elementDiv.classList.add('checklist-element') - - var label = document.createElement('label'); - label.classList.add('checkBoxLabel'); - var checkbox = document.createElement('input'); - checkbox.type = 'checkbox'; - label.appendChild(checkbox); - var checkmark = document.createElement('span') - checkmark.classList.add('checkmark'); - label.appendChild(checkmark); - if(element.streak != null && element.streak != 0) { - label.appendChild(document.createTextNode(`${element.name} [🔥 ${element.streak}]`)); - } else { - label.appendChild(document.createTextNode(`${element.name}`)); - } - elementDiv.appendChild(label); - checklistDiv.appendChild(elementDiv); - - // check completed date - if(element.lastCompletedDate) { - sameDay = areDatesEqual(new Date(), new Date(`${element.lastCompletedDate}T00:00:00`)); - if(sameDay) { - checkbox.checked = true; - checkbox.disabled = true; - } else { - // Not checked, we can complete this today - label.classList.add('checkBoxIncomplete'); - } - } else { - // Not checked, we can complete this today - label.classList.add('checkBoxIncomplete'); - } - - // action - checkbox.addEventListener('click', function(event) { - if(event.shiftKey) { - checkbox.checked = false; - var result = window.confirm(`Kaizen Message\n\nWould you like to remove item ${element.name}?`) - if(result) { - var xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 204) { - console.log("successfully remove item"); - resetChecklist(checklistName); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?") - } - } - } - - xmlhttp.open("DELETE", `http://${HOST_ADDRESS}:8085/checklist-item/${element.id}`, true); - xmlhttp.send(); - } else { - // If checkbox is checked, disable it - if (checkbox.checked) { - checkbox.disabled = true; - } - label.classList.remove('checkBoxIncomplete'); - - // Call the streak endpoint to update date and streak - var xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - console.log("Backend updated"); - giveExperienceToProfile(PROFILE_ENTRY, 5); - } else if(this.readyState == 4) { - console.error("An unexpected error occurred when calling simple-checklist-api. Is it running?") - } - } - - xmlhttp.open("PATCH", `http://${HOST_ADDRESS}:8085/checklist-item/${element.id}/streak`, true); - xmlhttp.send(); - } - }); -} - -/** - * ================= - * HELPER METHODS - * ================= - */ - -function areDatesEqual(date1, date2) { - console.log(date1); - console.log(date2); - if(date1 == null || date2 == null) { - return false; - } - - return date1.getFullYear() === date2.getFullYear() && - date1.getMonth() === date2.getMonth() && - date1.getDate() === date2.getDate(); -} - -function giveExperienceToProfile(profile, amount) { - profile.xp = profile.xp + amount; - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open("PUT", `http://${HOST_ADDRESS}:8079/profile/1`, true) - xmlhttp.setRequestHeader("Content-Type", "application/json") - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - console.log("successfully updated profile") - } else if(this.readyState == 4) { - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - } - var jsonData = JSON.stringify(profile) - xmlhttp.send(jsonData); -} - -let PROFILE_ENTRY = null; -function getProfileEntry() { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Show profile details - PROFILE_ENTRY = JSON.parse(xmlhttp.response) - } else if (this.readyState == 4 && this.status == 404) { - // Show create profile details - console.log("Profile not found, showing create profile interface") - - // TODO add create profile logic - } else if (this.readyState == 4) { - // Unknown error occurred - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8079/profile/1`, true); - xmlhttp.send(); -} \ No newline at end of file diff --git a/old/js/profile.js b/old/js/profile.js deleted file mode 100644 index 5cb3e7a..0000000 --- a/old/js/profile.js +++ /dev/null @@ -1,164 +0,0 @@ -const HOST_ADDRESS = "192.168.0.129"; -let PROFILE_ENTRY = null; - -/** - * ================= - * ON LOAD FUNCTIONS - * ================= - */ - -document.addEventListener("DOMContentLoaded", function () { - getProfileEntry(); -}); - -/** - * ================= - * GET PROFILE ENTRY - * ================= - */ - -// At the moment, we only support one profile, so we will just search for /profile/1 -function getProfileEntry() { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Show profile details - PROFILE_ENTRY = JSON.parse(xmlhttp.response) - console.log(PROFILE_ENTRY) - displayProfile(); - } else if (this.readyState == 4 && this.status == 404) { - // Show create profile details - console.log("Profile not found, showing create profile interface") - - // TODO add create profile logic - } else if (this.readyState == 4) { - // Unknown error occurred - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8079/profile/1`, true); - xmlhttp.send(); -} - -/** - * ================= - * CREATE PROFILE ENTRY - * ================= - */ - -// TODO - -/** - * ================= - * DISPLAY PROFILE ENTRY - * ================= - */ - -function displayProfile() { - var profileDiv = document.getElementById('profile'); - - var mainDiv = document.createElement('div'); - mainDiv.classList.add("center-container"); - - var imageElement = document.createElement('img'); - imageElement.src = PROFILE_ENTRY.image_url; - - var contentElement = document.createElement('p'); - contentElement.innerHTML = ` - -

${PROFILE_ENTRY.username}

-
- Level: ${calculateLevel(PROFILE_ENTRY.xp)} (${PROFILE_ENTRY.xp} XP)
- Age: ${PROFILE_ENTRY.age}
- Birth Date: ${PROFILE_ENTRY.birth_date}
- Height: ${PROFILE_ENTRY.health.height}
- Weight: ${PROFILE_ENTRY.health.weight}
-
- `; - - var xpBarDiv = document.createElement('div'); - xpBarDiv.classList.add('center-container'); - - var xpBarElement = document.createElement('div'); - xpBarElement.id = 'xpBarProgress'; - var xpBar = document.createElement('div'); - xpBar.id = 'xpBar'; - xpBarElement.appendChild(xpBar); - xpBarDiv.appendChild(xpBarElement); - - mainDiv.appendChild(imageElement); - mainDiv.appendChild(contentElement); - profileDiv.appendChild(mainDiv); - profileDiv.appendChild(xpBarDiv); - - moveXpBar(PROFILE_ENTRY.xp, profileDiv); -} - -function moveXpBar(xp, profileDiv) { - var nextLevelXp = calculateExperienceToNextLevel(xp) - var percent = xp / nextLevelXp - - var nextLevelElement = document.createElement('p') - nextLevelElement.innerHTML = `XP to next level: ${nextLevelXp} (${Math.round(percent)}%)` - nextLevelElement.style.textAlign = "center"; - profileDiv.appendChild(nextLevelElement); - - var i = 0; - if (i == 0) { - i = 1; - var elem = document.getElementById("xpBar"); - var width = 1; - var id = setInterval(frame, 10); - function frame() { - if (width >= percent) { - clearInterval(id); - i = 0; - } else { - width++; - elem.style.width = width + "%"; - } - } - } -} - -/** - * ================= - * HELPER METHODS - * ================= - */ - -function calculateLevel(experience) { - // Define the base experience required for level 1 and the experience growth factor - const baseExperience = 100; - const experienceGrowthFactor = 1.2; - - // Ensure the input is a non-negative integer - const validatedExperience = Math.max(0, Math.floor(experience)); - - // Calculate the level using the exponential formula - const level = Math.floor(Math.log(validatedExperience / baseExperience) / Math.log(experienceGrowthFactor)) + 1; - - return level; -} - -function calculateExperienceToNextLevel(currentExperience) { - // Define the base experience for level 1 and the experience growth factor - const baseExperience = 100; - const experienceGrowthFactor = 1.2; - - // Ensure the input is a non-negative integer - const validatedExperience = Math.max(0, Math.floor(currentExperience)); - - // Calculate the current level using the same formula as before - const currentLevel = Math.floor(Math.log(validatedExperience / baseExperience) / Math.log(experienceGrowthFactor)) + 1; - - // Calculate the experience required for the next level - const experienceForNextLevel = Math.ceil(baseExperience * Math.pow(experienceGrowthFactor, currentLevel)); - - // Calculate the difference between the experience for the next level and the current experience - const experienceNeededForNextLevel = Math.max(0, experienceForNextLevel - validatedExperience); - - return experienceNeededForNextLevel; -} \ No newline at end of file diff --git a/old/js/weight.js b/old/js/weight.js deleted file mode 100644 index c19ef11..0000000 --- a/old/js/weight.js +++ /dev/null @@ -1,453 +0,0 @@ -const HOST_ADDRESS = "192.168.0.129" -let TODAY_ENTRY = null -var myChart = null -var PROFILE = null; - -/** - * ================= - * ON LOAD FUNCTIONS - * ================= - */ - -document.addEventListener("DOMContentLoaded", function () { - setWeightBoxInformation() - getProfileEntry(); - todayEntry(); -}); - -function getProfileEntry() { - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function () { - if(this.readyState == 4 && this.status == 200) { - // Show profile details - PROFILE = JSON.parse(xmlhttp.response) - console.log(PROFILE) - showStats(); - } else if (this.readyState == 4 && this.status == 404) { - // Show create profile details - console.log("Profile not found, showing create profile interface") - } else if (this.readyState == 4) { - // Unknown error occurred - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - }; - - xmlhttp.open('GET', `http://${HOST_ADDRESS}:8079/profile/1`); - xmlhttp.send(); -} - -function setWeightBoxInformation() { - // Set checklist information - var box = document.getElementById('weight'); - box.innerText = 'Weight' - box = document.getElementById('stats') - box.innerText = 'Statistics' - - // set Graph settings - var graphBox = document.getElementById('graph') - - var graphBoxTitle = document.createElement('h3') - graphBoxTitle.id = 'graphBoxTitle' - graphBoxTitle.innerText = 'Graph' - - var weekViewButton = document.createElement('button') - weekViewButton.innerText = 'Week View' - weekViewButton.id = 'weightGraphWeekView' - weekViewButton.addEventListener('click', createWeekGraph); - - var monthViewButton = document.createElement('button') - monthViewButton.innerText = 'Month View' - monthViewButton.id = 'weightGraphMonthView' - monthViewButton.addEventListener('click', createMonthGraph); - - var yearViewButton = document.createElement('button') - yearViewButton.innerText = 'Year View' - yearViewButton.id = 'weightGraphYearView' - yearViewButton.addEventListener('click', createYearGraph); - - graphBox.appendChild(graphBoxTitle); - graphBox.appendChild(weekViewButton); - graphBox.appendChild(monthViewButton); - graphBox.appendChild(yearViewButton); -} - -function todayEntry() { - var today = getCurrentDateString() - console.log(`attempting to retrieve /weight?date=${today}`) - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - // There is an entry for today - TODAY_ENTRY = JSON.parse(xmlhttp.response) - console.log(`weight entry for ${today} found`) - - showTodayWeightInterface("weight") - } else if (this.readyState == 4 && this.status == 404) { - // No entry found for date - var response = JSON.parse(xmlhttp.response) - console.log(response.message) - - // Give option to create entry - showCreateWeightInterface("weight") - } else if (this.readyState == 4) { - // Some error occurred` - var response = JSON.parse(xmlhttp.response) - console.error(`an unexpected error occurred when calling simple-time-block-api (is it running?)`) - } - }; - - xmlhttp.open("GET", `http://${HOST_ADDRESS}:8081/weight?date=${today}`, true) - xmlhttp.send(); -} - -/** - * ================= - * SHOW STATS - * ================= - */ - -function showStats() { - var bmi = getBmi(); - var bmiString = getBmiString(bmi); - - console.log('showing stats interface') - var element = document.getElementById('stats') - - // TODO create a special div with an id that can be styled - var displayStatsDiv = document.createElement('div') - displayStatsDiv.id = 'displayStatsDiv' - displayStatsDiv.innerHTML = `

BMI: ${bmi} [${bmiString}]

` - - element.appendChild(displayStatsDiv) - - var bmiElement = document.querySelector('.bmi'); - bmiElement.classList.remove('underweight', 'normal', 'overweight', 'obese'); - bmiElement.classList.add(bmiString.toLowerCase()); -} - -function getBmi() { - var heightInInches = PROFILE.health.height; - var weightInPounds = PROFILE.health.weight; - - // Convert height from inches to meters (1 inch = 0.0254 meters) - var heightInMeters = heightInInches * 0.0254; - - // Convert weight from pounds to kilograms (1 pound = 0.453592 kilograms) - var weightInKilograms = weightInPounds * 0.453592; - - // Calculate BMI - var bmi = weightInKilograms / (heightInMeters * heightInMeters); - - // Round the BMI to two decimal places - bmi = Math.round(bmi * 100) / 100; - - return bmi; -} - -function getBmiString(bmi) { - if (bmi < 18.5) { - return "Underweight"; - } else if (bmi >= 18.5 && bmi < 25) { - return "Normal"; - } else if (bmi >= 25 && bmi < 30) { - return "Overweight"; - } else { - return "Obese"; - } -} - -function updateStats() { - var displayStatsDiv = document.getElementById('displayStatsDiv') - var bmi = getBmi(); - var bmiString = getBmiString(bmi); - displayStatsDiv.innerHTML = `

BMI: ${bmi} [${bmiString}]

` - - var bmiElement = document.querySelector('.bmi'); - bmiElement.classList.remove('underweight', 'normal', 'overweight', 'obese'); - bmiElement.classList.add(bmiString.toLowerCase()); -} - -/** - * ================= - * GRAPH - * ================= - */ - -let GRAPH_RESPONSE = null; - -function createWeekGraph() { - getGraphEntries(7); - document.getElementById('graphBoxTitle').innerText = 'Graph (Week View)' -} - -function createMonthGraph() { - getGraphEntries(30); - document.getElementById('graphBoxTitle').innerText = 'Graph (Month View)' -} - -function createYearGraph() { - getGraphEntries(365); - document.getElementById('graphBoxTitle').innerText = 'Graph (Year View)' -} - -function getGraphEntries(daysAgo) { - if(myChart) { - myChart.destroy(); - myChart = null; - } - - // Default to show Week View - var today = getCurrentDateString() - var daysAgo = getDaysAgoDateString(daysAgo) - console.log(`attempting to retrieve /weight/range?startDate=${daysAgo}&endDate=${today}`) - var xmlhttp = new XMLHttpRequest(); - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - GRAPH_RESPONSE = JSON.parse(xmlhttp.response) - - const xValues = []; - const yValues = []; - - GRAPH_RESPONSE.entries.forEach(element => { - xValues.push(element.date) - yValues.push(element.weight) - }); - - displayGraph("myChart", xValues, yValues); - } else if (this.readyState == 4) { - // Some error occurred` - var response = JSON.parse(xmlhttp.response) - console.error(`an unexpected error occurred when calling simple-time-block-api ${response.error}`) - } - }; - - xmlhttp.open("GET", `http://${HOST_ADDRESS}:8081/weight/range?startDate=${daysAgo}&endDate=${today}`, true) - xmlhttp.send(); -} - -function displayGraph(element, xValues, yValues) { - myChart = new Chart(element, { - type: "line", - data: { - labels: xValues, - datasets: [{ - label: "Weight Trend", - fill: false, - lineTension: 0.2, - backgroundColor: "rgba(0,235,123,1.0)", - borderColor: "rgba(0,166,87,0.7)", - pointRadius: 8, - pointHoverRadius: 12, - data: yValues - }] - }, - options: { - plugins: { - legend: { - labels: { - color: "white", - } - } - }, - scales: { - y: { - title: { - display: true, - color: "white", - text: "Weight" - }, - ticks: { - color: "white" - } - }, - x: { - title: { - display: true, - color: "white", - text: "Date" - }, - ticks: { - color: "white" - } - } - } - } - }); -} - -/** - * ================= - * CREATE WEIGHT FUNCTIONS - * ================= - */ - -function showCreateWeightInterface(elementId) { - var element = document.getElementById(elementId) - - var createWeightDiv = document.createElement('div') - createWeightDiv.id = 'createWeightDiv' - - // Create text box for entering weight - var weightEntryBox = document.createElement('input') - weightEntryBox.type = 'text' - weightEntryBox.id = 'createWeightEntry' - weightEntryBox.placeholder = 'Enter weight here...'; - - // Create a button for submitting the weight entry to database - var weightEntrySubmit = document.createElement('button') - weightEntrySubmit.innerText = 'Submit Entry' - weightEntrySubmit.id = 'createWeightButton' - weightEntrySubmit.addEventListener('click', handleCreateWeightClick); - - // add them to the dom - createWeightDiv.appendChild(weightEntryBox) - createWeightDiv.appendChild(weightEntrySubmit) - element.appendChild(createWeightDiv) - - // Recreate the graph view - based off of what is already there... - graph_text = document.getElementById('graphBoxTitle').innerText - if(graph_text.includes('Month')) { - createMonthGraph(); - } else if(graph_text.includes('Year')) { - createYearGraph(); - } else { - createWeekGraph(); - } - -} - -// Function to be called when the button is clicked -function handleCreateWeightClick() { - var entry = document.getElementById('createWeightEntry').value - console.log(`user entered ${entry} into the box`) - if(isFloatingPointNumber(entry)) { - // Make call to backend api - createWeightEntry(entry); - updateWeightOnProfile(entry); - } else { - alert(`Unexpected entry value: ${entry}, please enter a valid weight entry.`) - } -} - -function createWeightEntry(entry) { - console.log(`creating weight entry for today with ${entry}`) - - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open("POST", `http://${HOST_ADDRESS}:8081/weight`, true) - xmlhttp.setRequestHeader("Content-Type", "application/json") - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 201) { - console.log("successfully created, change to view") - TODAY_ENTRY = JSON.parse(xmlhttp.response) - removeCreateWeightInterface(); - showTodayWeightInterface("weight"); - } else if(this.readyState == 4) { - alert("An unexpected error occurred when creating an entry") - } - } - - var data = { - weight: entry, - date: getCurrentDateString() - }; - var jsonData = JSON.stringify(data) - - xmlhttp.send(jsonData); -} - -function updateWeightOnProfile(entry) { - PROFILE.health.weight = entry; - // gain 10 xp points for entering in daily weight - PROFILE.xp = PROFILE.xp + 10; - - var xmlhttp = new XMLHttpRequest(); - xmlhttp.open("PUT", `http://${HOST_ADDRESS}:8079/profile/1`, true) - xmlhttp.setRequestHeader("Content-Type", "application/json") - - xmlhttp.onreadystatechange = function() { - if(this.readyState == 4 && this.status == 200) { - console.log("successfully updated profile") - updateStats(); - } else if(this.readyState == 4) { - console.error("an unexpected error occurred when calling kaizen-profile-api (is it running?)") - } - } - var jsonData = JSON.stringify(PROFILE) - xmlhttp.send(jsonData); -} - -function removeCreateWeightInterface() { - var createWeightDiv = document.getElementById('createWeightDiv') - if (createWeightDiv) { - createWeightDiv.remove(); - } -} - -/** - * ================= - * SHOW WEIGHT FUNCTIONS - * ================= - */ - -function showTodayWeightInterface(elementId) { - console.log('showing today interface') - var element = document.getElementById(elementId) - - // TODO create a special div with an id that can be styled - var displayWeightDiv = document.createElement('div') - displayWeightDiv.id = 'displayWeightDiv' - displayWeightDiv.innerHTML = `

Today's weight: ${TODAY_ENTRY.weight}

` - - element.appendChild(displayWeightDiv) - createWeekGraph() -} - -/** - * ================= - * HELPER FUNCTIONS - * ================= - */ - -function getCurrentDateString() { - const today = new Date(); - - // Get year, month, and day - const year = today.getFullYear(); - const month = String(today.getMonth() + 1).padStart(2, '0'); // Month is zero-based, so add 1 - const day = String(today.getDate()).padStart(2, '0'); - - // Concatenate them in the "YYYY-mm-dd" format - const dateString = `${year}-${month}-${day}`; - - return dateString; -} - -function getDaysAgoDateString(days) { - const today = new Date(); - const sevenDaysAgo = new Date(today); - - // Subtract seven days - sevenDaysAgo.setDate(today.getDate() - days); - - // Get year, month, and day - const year = sevenDaysAgo.getFullYear(); - const month = String(sevenDaysAgo.getMonth() + 1).padStart(2, '0'); // Month is zero-based, so add 1 - const day = String(sevenDaysAgo.getDate()).padStart(2, '0'); - - // Concatenate them in the "YYYY-mm-dd" format - const dateString = `${year}-${month}-${day}`; - - return dateString; -} - -function isFloatingPointNumber(input) { - // Use a regular expression to match a floating-point number - const floatingPointPattern = /^[-+]?[0-9]*\.?[0-9]+$/; - - // Test the input against the pattern - return floatingPointPattern.test(input); -} \ No newline at end of file diff --git a/old/lists.html b/old/lists.html deleted file mode 100644 index 6cc575c..0000000 --- a/old/lists.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - Manage Lists • Kaizen LAN - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-

Morning Checklist

-
-
-

Daily Checklist

-
-
-

Night Checklist

-
-
-
- - - - - \ No newline at end of file diff --git a/old/profile.html b/old/profile.html deleted file mode 100644 index 03e17d1..0000000 --- a/old/profile.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - Profile • Kaizen LAN - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
- - - - - \ No newline at end of file diff --git a/old/schedule.html b/old/schedule.html deleted file mode 100644 index 2e9b985..0000000 --- a/old/schedule.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - Manage Schedule • Kaizen LAN - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-

-
- - - - \ No newline at end of file diff --git a/old/settings.html b/old/settings.html deleted file mode 100644 index 620faec..0000000 --- a/old/settings.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - Settings • Kaizen LAN - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - \ No newline at end of file diff --git a/old/weight.html b/old/weight.html deleted file mode 100644 index 7b0e719..0000000 --- a/old/weight.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - Manage Weight • Kaizen LAN - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-

-

-
-
-
-

- -
-
- - - - - \ No newline at end of file diff --git a/public/kaizen_icon.png b/public/kaizen_icon.png deleted file mode 100644 index cf6e246cc6868964b2c4c3de21d4884d70e34e42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4378 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 diff --git a/public/kaizen_logo.png b/public/kaizen_logo.png deleted file mode 100644 index 3bd82c0aebb91c786e11079f42bb821d5845f0a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24817 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 z 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 I-8SO?0HutAK>z>% diff --git a/readme assets/Interface.png b/readme assets/Interface.png index 86cc7e4f51f864bd6b91b5c591155b8ccf085d01..a9890c443d041a2d86e168bc797011ef8888c727 100644 GIT binary patch literal 113507 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 z zxf_i2DM`ib+e!;@M#yz}v@d%_rV8dWVXW~nBI6-;Qv4r-WgCZbq(SQ%mZKmFJduLD#PDMS*kQ42HxpD$Hn<#4Qe(JD7{ktlCB)EP;DsN_b^~>b659Hq4rBzpcq+? z_mxL5y^abqZ;+(0m64pXq;*scU(t>0!4TE2=(C*p*JElf%zkV+eoxqzImp@54d3eI zHC7LEHLvxxy&3y@<2Bv8F*(&{pu5g?9=n_j@p$)Jmk7B_BZOemf*XiZq0dU)Af()l z!+@fyyle(TypMM08YaR1*PabPzrzOTJq)&D${beoaeB{@G2u#sj=#NU z$29CtBWp0OvL61Pt@8wF=9757p6=EL#izMQ0K3n7x&dvD24bQ1$u7|i&o+tM4Bavy z;9^9XtIqMF983+}uIhNH1~ZHob4?-^jTm??1QHgG7VvxK-`0aWclRo+3CH(Qg6*09 zUiM({h4dE7E>)k7NbuQzp?ePPW&P1 z+tO>P4eM7X#W1cz!u%&UQXB2JIg{+EQz_D0Izl?M>7L-ED~hh0Jm|NSp?jeB-KA~G zxHp{i!7_ax_M(Imkc21P=Ynt-;|dAdwK0jeF-B6Y#&_Qg>TZ=uNxXPrV+3da3mH8%1CP7`5un-qPo z7hETePF84drpAda9}bs`@3){0MkLp_M=%>@mmqOgSShbrvN_WoJINhQV)8@OUSd^C z0p8@cvFl3duSLUdA|q_FPX1{2sYRl`3cY{Vi`b@G(=12Zvb{(vT$X zpnY&~a1uN1W7HQ%rOt*7uPxS^wk06-+(`3U##Su%e4R!*XhxnDdwOKnpR$W8a&Mdr z&B~xjyQ_^HejH*=BFK;aa|?Lr5fT3mW4wjbUXj@;)z9Typ|pNew)9E8&MS_1E5}t4 zWgV2H(OG7}?W`vkcTlNX( zG+~z5rXWpJB$S2CY~qF*O>ay`fU_vxrG-!4a^?f~Yg+P!hx$WDKS9@9p!H+nqH)0)oYS*sA>A_xDwuHpd#LAaqKdoy6X1lFhNC88nAm(Np{_0G>SP`Xd^BS~8#2E8j9#2HShX zqWzKED&I|YCa16oe+C(&!CjcE@k6DaD+>=!iRWHOuq_t{5qZofsP#l|?C!UG214ZE z0cptY{gWnYa$M2DJDMhDq2qTkhG3KLsiD+W;J$6!<=Jwp+MN5gMHk9XlmHM#oS6V-P@6&9w z_d}#+%Pv{kEsiT+LoyZQ6pnJ*Dst=|wpYeCnqGZdb!fkzEd0ymc{6;hZE1AMBMLx| zB5tcF9F5ZCIq$JLGA>t{(apwQZJ3;=4IoKHysy6$RO^SkoT#Cz7wpr!VvQ>{C*NlYU$I_+`(YJffz> z5;@7rW|c?jzIuTP04054j+Ejf7HFYjX$}n=07K$hy1$q`-Foz!YGvo0voBpIQ&|gQ zLQdkz;x7Sk^k|9LDDG88BFOhedpzg(VC1J~7Gf7Wl|~p5F<=0^HRBoiSnxI@X-o>w z2)f(0@$E(G&TUVDE0iUj@$r*Bc~eOnQR)$>Q@zGVtC9YQ&)ht1IbV@37s9h0H%Pql z)Q#GWbhuC6)u_}}ERj$9X^vM^;vq-P>@vh38Pw_BMaUHy-{>=~Aoz)39;m0k6Pouh zYwObI{ZO0r@+?>O)pk%+xYV6CYOR7L%_w%fHWfZmX;INF?6>sd{yVdEqr0s8*Qd== zn&Mdf0L;$CmT|mlQ}S=aTKvE>Ik#K zdVgf1KaXsy%7Z{mX7U8zjxej^t?@yGV4_8gVu~lpFmXD)&i(uPSVm;aWM*3c6zc_B zk@j-VAku@SuraWm-0bqBC1{e5MAggJv;E#z0d^WES_LNgq$Q_rh9VnrWpEA9^ee7-n^pTts+Ztu2_< zHB#+dSW<+SqtszmpTJ%jV1MT8ao~og!knpWLyc280ycKP-ZZp^%$(b7EqikAh1(KO z5bub=T&EwWRyp`ggl7xzwd{NylGw#at!2;?JYc=DhN05uYLl01aoZ0R*S zeIWZldEng|8Pej83t#Fj`pUvr@;%N&JvFA}# zH%G5g3Ol{#4#c=iDoPX#`~Fx|`AwxZFEtUD^_f=ml8n{*HsOX#Q(5>fx>gT!ER{!s z(?1a~S3~ZY)r66h_k~*W33jTBd>Y69Jbw`7UYqOdxV2<@iC~sODt79(VXrseTr|&3 zaRl;!eF1TtS||t&s&NN2pk+dKU$ujb+0uq$C5^|u?Ii$iFE*?j@!bDLs5<67#Ol!W zlum(#gWs&5hI5{bR3Y#6PP(HzXn|Lt)`~t&Wt6}Ve8iwkG=qAKZuOJpu2h2hdH~Nc zCwN%utJI@5C%jYU5djBN3%nik%_vd@re+KF`HCw0Cfo0M3-zbfAbA)qd%F0n)USym zc@;G7Ov)6BVq_hf-R5dc#Tf=a#q%iD_1XH~6W=RVJ#6)}&Drl*X5oI?sG>ravt?8= z56vulfDV)av+3hm&*9ia5b4}=yv@f=4pv`OeIPr@t^r@Ta7AU?%q=ywv+ago^B8>K z{YaTX)s%)!sX;JI^2KpDOHQ>aa`{T}nv#NIcD@?uTPD7*f_#4YWV%bCow*q+M`+GP zYpiJPNTim}8-reLj6Ojm#O$G&E;dd17!htS3hpJ!Gl?wmUyEUh(`@-oEoP%nQx;3K8)ZiKHQ1$@GBnO7?hISA%%QOfHv6Rk0qc zv{}Mhw@Vs03lGfM8YQVZ14aq#+m{(UErG(Yd0M08KuUb9ItL{KHEn>4^Au06bNiw*Sn8Ng^pxQ->Bk)jc_PM-YyJd`+d*q~?Inldd(l_v`^f?= z6?Y&31V6ujPa~qCzVn#!?N_b+)1M)+z3#GF2~R@ADuox83!x!Te*n(|0K$C-NF zLCXg*wVv|f8XH(yY6Cs?K=NAV2gs(Y5wb_2DeGxPV@2>X8E)No4THyFugRTVewCS) zEoaW~aXN~A)J8Y^{k2@U3G{Et$Ssr~?<`YzOL)P%ZPrp9UkAh9JdAup9^92}Rw{QD z#d6$&h6nOuRgGnM;Zz7Eak>GbRb*W6((eo{HJR$1`{%+qcfz8ZKEJ2%@|E}ptzc7j zc+eaqN6l9raw)g1xy#BWB+=nO79|hD)oOF`MCAv)7v2wtQ~tv=mm{PaOY4 zc`NwzBh7Uu{Vy&E{HBZwt9I|3iY&A@2}*H_cN{DgZMLw%4P~L2HfO61@O=-@c8&rb zv`_p*f=eNNV(*f?fH3{<8oZ0g=ww=*Ec-L;6Jy!g_q^|QVMjegTsTXRU z6+3Mch!5fYh#}X!E#VY^I-Ta5nNs}BKS)ZxmLVKgIo0n}Ud_TwjFomc- z#!9Wx7~)Yr>bKkx$O8JT;&o_CUYOjK8f~yij)ZBs-E#1&X`R!_7h%;jKLS?(-bW_U zqO^9_Yt83B0t2Q2If-#F5j$mr$Ezk}{nZWpad75LD>Qkf+0KsA3g4tSSS;U)^k6}2Gp=>`YTz_wqP#)0G!4(*9#yUl zR%>6TsH9&+fKMS^l1E?h^nDj|`z1EX4t#Dd7HZ%=8)B-#@|m*1IoJ3k8IU;PHXLv= z**?20z1qB1f@-)MzANFKN^c0hibzYakFz=n)fkGgV9_%*a#@~beE>*!Ke{YDG-&^y zxF^%hEmM!?t;letlR@shmJuvZJ&ehE{60m9$tJw@-EYODW_D_u+5iG8LQi|B&xq-4 z+QEUjyzd)14Y=#T)sG)P>_8F)v3eC}Z%TROBc;27(U(KGUOjlLpw7wg>_M({8gB^TbQrzzIKWXNB85}mR)N>{BrqaEuNv)_tJN3 z8(x{*XSvQXFo>uwh6;FyW5a~*&L^V<3A#EJ6M6f5JyW}9vvEB)anMVUO6IYU5EXiA zt4?mY0GXYsrgrAy5@o-a&d*fnvua<2%R}H1%mr4E&3$vuh~tyy^1!A{CC~Nhc(S3< zmFQ#qj{6huDMW&Yr-*ZzHrFx$V)|14kZ<$&Db2>u&>D_NjPiY;WKf%$EQ_Yp$t#Ex z+ztxAb@Mge@W#o3-b}+qS#heIbkz?*om3=51d&K^2@fLdDlpk7o()#^I*85LG7_Jb zTD{)KXT~G^v+m(m--miiOB7|}ZWp&W#fQ%vzNxUH^?uoJca+7}`g=ndfW^SPD5uv+ z(AY(>5|B@^(hqv{cxKs=ZAnm4M7Z2`76_telO)`ih|il&8@aC0FizOa2FxOl>Fsz_ z`)fH@cEsB~n?UtlF9k3G_Er|nCJX-o$pF*jaxrZUl=Q}?}*AyYHYhY94d5bx*>{a=>=obD3KmCX7pkcN3K3+n5wIUH}4;NKc$(6^c$>iks zW>fKM#J-2gX@z{NU2G(~XTw!B%%iR@pul8+aK3l|_tyN~@I@m(gv3(tAht*vnq;8x=qjO!k zybs$VT%1+stuZw~PCwg|D~>%+)|T3{ak;ZUdElD>%}WA=_$#L(gP^Wbx z_zO!hR^AxqUM}v^OA?DqagDS5OPW&LbH`n6FmywrtoK+J6YjXxvE#GO_0G_mVke@% zI=ORy1x?-N6f&axw^)4I@!`z@?alBM7WL9+ZUX20s^eC|nv9#v zja$BP^z0W+Oo*^bT9eH1qcs0(Gl??ng$}EW3WySIIabU#xK3@F-RC^O9`@Z_ZYtqwgx7HHp7jp=eZO z{)Z+rInlnEqn~&bk5VTwa_~zxS-a)V=L_thay!2jQ;7Nr1&W6xP-{H_a`XmbqB>qc zhwe6TQs^2rX=vCVWHIUVAAU_pzNRWka9t;~uu}hvmFneK`Gu@!Uk4ny5BaDdDIv$V zCR;a-S>Fk;He*gC@;jgT%Hj2eXyoaY8td%%K^yC9;z7*^x)9?-Z*94`jj1JV~3tUPbgiGCRoZK#x!zbBn8 z_pT8^Ar1U|6swyt?-0gsy08=sv|rLlTTCuHOoV9`&L?Wpq<>{tWV{SEpm@eq?R{!@ z%6syd0g{~ikx~TQ+#`AOSmna;95U*6nciOa`LR<7+xB#a%#{NReHn$T!x^T|8 zNV^|qlBm@4HPt<%NB|NpA;NU?n$J0y2Ii@cjfmD@5(qqbGT)9IfFLqdD8k}l@ z3dw^2!_y#H=A8IG1xV9tK^;3&Z+Ssp9`yIjDAa95-0srIJ)uo2k!|D*?x+W zonQ?Rv$+t@nDLOgg5s_90KLhokf$nq6xg;2ieyECpWpXAhsZf3t0ymnc>GE%6=izJ zgqi-qzvpb>jT|jHFZ%3>w6%@?f@x)`#Ax_nT?i$m-{w!JRHqXvvFm;mW`_zNX>quL zaauoCCW_Te?fw(FqMxG=AK}V}*=Te?ro<(VhMr|hArBXc)YO)vMl|TZEhj4}sD<{a z+)eUX=gTNp14`z5r^C-jgj3vEjyKa~?bbe7U6E)xLcje^`7wkMEi;xXlq59Hy-)J+c!%+%z1@;>8 zhJ0lPl+D{2Sr(GCO>N$Gnz6O9n#{36KICfG-aSg9Y<{bXa0D~zJhiq_A zGo<5sZ_2wWb}3T~e|CxWZ!^OVR|z&aY^h(>IK|K8IsCxrKLtodJx;`#Z@A5`cIj!6 zVY@gG-DHh6!Xa+ZJ4j{|a=^ZxlsMJa%prU986@(}YP>|CZ^QCv^QG{qyo4NsB%+`1 zO6{#LF9PK2dexUMEWDxh4|*f`>33E&~f0(zJH7-DwqO)bfp(0f$Oz5(~HU%{(y!a-#5AgS zN=b7M4eL*3N$mAW5`%TPl2Yu_$mbT^zt0ihOaDmf$->~zaF2@TAxe$eB&XP+IbG7# zV1;bW`q62HBC)RXyy1I)WSIah?#UjGaf-HTMxw*2A988m{-cX3W+gzg=>m(Z-*pil z!$E(Rq`)Jpg>GolIaVpuxcOq`+^L0<3~q3!*yK44$oSUdGAhx$Za?hSNPLdlg`Lqw z@%tN`nmIPq?=Z@(h6D)6w*WN)wa_bWAalk12?u=)~E!<>!;xf7MfX80K(MB zOR>hj>nAa#T3p#N=pS%0*mTdiuR&VTv_XT+_d8D^?p#r9!WUKOxGz9Ic>O#JC|9b5 z;g>+^jN-W7!tiW8)!yxuT>0uk^fZa4*Xsye8Kb8;KYff4o3e{++L0fR=-Cm;g^mtY zDQ~Q;!t#VYa_e!J>-&Mgkg9=EIiXg^G+Tu|K{tTXh*+i^Xr&7n^$4Ti7G z4OtT~&Eohh7*!4MF zZn=Mw^>N||VXJ!QXubw$U}flyD5I^s`bths`L+PUwwJuEpq)Ko-` z+d2#c^wOtZz73W_wYcro<{+Pi4hHA?K>^-KISmx)Dw+t?nqaE?o!ca;R1VpLlarGQ zN@$gf#sHOrl!Qx?*3w2q{hIylokW&SCnz^=m&}Z>WL9v#)!!$iktzWP0%@XCc|4!W zzSz3uJc5|>oj>KlQciY|rt$(%9J7Rll2p~;Tj`m!O3+R5kQ904slv{bL-k11P}tO` zS_xg>k8D{Sk5fp8zQgBHdh)`zL7Nxemw)`0iFIh{s&tR z!AD0Xb=4r^*7{1T4be#Ek7^r>iNA8W-*)GJ5*P0>E^1e3C_Y#+V*Z#4<;sm;6ZGAE zQ)tXTPRz?Ei{JY_r-}Y+Y}P@AkHe$->; zM%H3PK~&A+*~{}*JU{MwZGO+@Te*UvpJz_xWGNVr^*9qDOg4}T@=yh`XGE>#5w#*i zI71q>ok{#=3&zTUY-UsCuGEnzINA7-RiTK_5&R?(9?J8>fkSPAHdFZS`Bo)b32IVT zRc!vHxf=H0i9D8l&TUy`F71AW~+?9W?7=M z`GSXT$RA-yHXrLCTP4TvjG3&jmR929!Q0N*_K@#209-6_eINeONj050qps+pgJE8i zv&@uMzu$ZDkn-v$(DRvlQfB@50CX|*&D#Cf{cw;s78jV{ZeiQ9e#H7pqT@QCiY4N_vA?~)unN6PO2(F zsez@dBfzI8prd#bEN7Ml$>QuuwYxmnQ-D|q-o4Cs_KA_QMDg9y%BTRceRr45Umnnn zWg*d%jH?~1lkrl&aSogoTAVRjW6d$g5-m;uw{x+qBp~6UNw${sy^+T|yh6Xp$Fran z>_Tfpu}_N@~~hU?l+b_VENGp_b;L3ynPls7vnvo!>)i zkg+(`)snv|*$QN$KZq%WF%;Kvw=w$s?0>^2?!aoskI95f*G4~|Masy#_l!tJ zO=+U37R*l7*7bT904lm1mq`wN`;~D9j?Rr~2LNrNPtTNMoY4hM!OAIU7Vl&u=|i;su^G;)ssJ; zR>e6`kJ1>3D02Diz_`ngpRk#m9r;Eas@Zt?Wy$J*yYF$qsdXIxPsw&!3{mgHp1vfn z4J)I|^U3CF|C>|)XkUiBg?whLPXDV(|J{Up($7PLHXlbiWSe!SdIO?IUq+vXK2I`E z%TqnC-ayN3e-lD(+^hkTz+`bA`9xr1L#5F+&iA*8-@ZIUi*TxY9Lv!q-^8ab3m)>7 zF;K^OQ2EQw&J}Vb;`Bgqn)^f_6q4DYl=h3vSWDVuU!mS}StMAl?eIei>B9GB2g_OV zCZAI;lxF1ngJ6S^K%vuEHOWogLKPt+BqW1_K%&p4D?(adCH8R}GS6;N_za*@2@gNy zac6IhxB9MN7Ct`PKGI`GPK5RHRq~bVbPWa6dAU1Jj?n&~nm(4%;y^6d&|>jdvF^=^-oSl;GvdD;* zMtJGb*5v2BKzU+M56^MTy}^fmlk4=iCti%-e^;3>;ez(+a3c{`m~j=U1t)m#izzEQ zEk;sK#nm^eCN)=5yL``GVotd2R7)ho_eB3iQtMJyBCq;V3ujf>HQ6+rp;# z!HKN8%B1xjesn>fZ)xS8i1oUCLf7ui&M$jctAHjV#TIb5$1JU+3dJHF93Vo(^t#VF zh8nb;oo|=Y9zT8|RAPQQI;?5Zy#JAF>a_XBmzie8F+z{s20s?r4w^O?qqW@SmOv+ELCz`<)(LZUL(Fve}@_4Fs+2y^+`&LKa zy7v*N*}!ZJ9EDJ@|!}OhIvfEohRZ(2@i#R0YwGSRGZPdj62+ z^h^;Wd@uaUR~#v~m45AivWKoxQP4!Wk8#(0ffPjsUC04AaEIr^_i(JNaC4%ElNydP z`~(7zDCqZ?P(>w|gV7zMDfg0CSY!;tgz2!JuzX^#cyck=1wT*svO9GdchOPPS=jP| zBF41GZ>0$ay$c#P#%^Yvox^<+&Wq*A4C<~wu)%i&q&N#xOztoyJ?x*pe3}#mmU;u5 zqinf4{*kC7Wb82jxobaJcOyT3?ro4r-N)4+?sRN>oypMVKO}>x(?#uW z*r@9_kpLH33rcAD#hRCUue(Jtwx*13Vlv`5m#{kn|go3m%h92O$@00&X&gczz3jnJiYSG z$*;*$&9z!?B|8%5zp}TJg|SDN91K7747AwJjzG(m7p44#F%|2ch~-l)JSa#w_WXX*RMlU?+zX>{P@GyM@kWmqRKoAmmJl37(AQj7RA`6ewIOW<@` z8Q5%u&{Yb2n5aRCy6aIcINw_`G11UT@%VG7c#iQ$m(PV8M5#UZvUs}P_gJ|yVilFb zxz>g`I>dO2jXmqB#b{xe_vY70VH9|?wXZCGEM4yl$k;WlMh9m3IK&eA4B*{lHcvU* zSbkh3ojtZP(zUJX(;eTUESeTydv0Ry+Y&Vn9ju4+5=Ud}GSMZ9u9pJ^tBGa@!WQ2i zWn)c~HP03l%rU8c{S{w1R@&bF>Tcey+sbDlk*e@laC~egEYnYaMws@9P@3KKMGLoH zAFieyYA(>8EQ}t&Q=hl$S&ipeF_)8{JFz+$0i+Q}HzTSFs{~3BB0hi+rlHAk3M2Xa z(KjI-t29S>SHSY>M*AIQZ+owtG^{%N4O{A}Trc{-y%!4M_Nh`KiWbSMhsbVcNwhU% zl6-?GC{*!W2oB64uNdnto9&>pCx728po)=dZ*?W={}O>InE}<@GxRU9@^vD|{>$9` zHk<6+fj-cL`<#dAmQD7Qp>gmeg&z!Wo1!ldqWuj`Hj}1WgzwsqcGWF1qty3tHrSZE zjY=u!E1>3jGN>oPzxUCTqBC}Wxj)n^_Z%4|wGb=RY@n9xDU}L+H<$=jqzPAByFmPO zJAAIfh%)5EC27aHtHdqN6NbL({CZXpW~0?5_a+g3Wpx<-jPsLHgLA9#Io&}xx&uOl zRw1J9#KoebGCM}9NJK$%aI|W-MjZJcCSRpOx+(PqcOH^@N!TN2KKr?dS`*)ZI}ADR zIh*z-PB0E02P4c>PNPFv69@cF53)oE0A2`ljYs?jvvK8b$s_rnE6GW_!GJu z2c127*zl9V3&SIimM;UYHw`f2FRlm9fYkMSJ<_jGFIDPo=(~8iKKcjQGKqeNJ6n5w z_65}q?)fX1+#BsF(l7m5Fs~R>@tpjIDz8r^U`0B%mp^w4$0tn=;)~j?O?n|~HU8gA z&X4MjiCgt8>10X)^{PZt zWq8LYc=w&azQrXUR@yk6)A@ceb>Kumi*jZ5JX1|tScOUgs|+%Iq7A_p#kR`~v4olI@}8Wf zE93l046VzB*Ig*&mnlN;O9?Exq+?1-k~aAe zlq?soPyF^-sWxf=a%kPPx2HcYXC2S0l-F`5@sLoPz4a(AJ-}is(JQwk=n_zo%mpKJ z<4!EryL|>S6{$x$(MgH8U+h;Kt{EDR3=)P#+I}eI>E1?XMI^mY!mmE^#6C>OwB2kT zqnEU}QE7(s9b#=pjJ?Kh7-<&K`*4uFG@8c#<@!aY=o&P)S=swd3e*=oY8n22-P!;A zh5Ick+8n~|Vz;KW8e-8WY8q>5^msf7ee=9+-m863$Dc82Jk54UPd~CBTYXKk7+WQm z1G|E8NZ{y%e{0C6u2FaUaU0@N@@*5-m zxtwe7hR~PaByFG{*N^8{6~dg)g=HY9j`zl92ur)Om+8jJw$WGT++^8XJs=1x+Dlbo zNP6#|2N^k8_k=M0$#?(t@l`&xNVme!*Ol(Dwx*-s!NeIkzMsCRify_!>)Fq^1{fG8 z0SoYk6ULI^*08vs>yy^H^%Dq~hE64b5BMCWvZ=$jCKihXX+vZuHiT=H+Y63u(=lg059XkdT}b!vDO?0T*YgiE;PdJkwB& zv?{8WBKCvhd-BC9vuQ#yV06$o%$U0pYQ2g9Pn7R4d+_&~9;vvh`f5fK;-}9KR!EWL zyPtnGlz+KO{q zcdgMrTob`P2y^x<`cA!e_9o@DL$K5;wzrN5GO%GLx3QyRSxGaBSQFpOK;Is1lF{nz zF_WtfN`MRhdqDNaq_hZQJ$MLt(N1X2DpRi^RE6$AxTCM1KMk%!uh-S}RpKtxqpaj= zZ5@+z z;l65_j8xZTWBHR@-`vR2Q|O6rsdInz1LR+WyFcy)xL9H5b^u(kYMG@ZDrdW>7538~ zxzDU%gR7~w^P9GmN41-4D*nwCeMZx3FG}HM3yJ568?Q4;^{-h5MLs$6!&U|Ue!3pr z>u2?#{QQxmO5b`{KaBR3?c={)rucMa_!zo_Gu8Jsi(NwXn7b2P-vWbFOYs_ zAh89B#mj%q8x}s9NnkurXS(ygpbuO2;}sarJJo;H3jm85gjFS={thJe++H-~&jvJ> zqpYH{HsJ+$2l{1#=%38&5FudL6I_Dd{mG{OFG8ka%AW@V z9ji)KdcT^H`YXjhzDuP#U~$*{wE4dS_TK^fmm~RqZ-wP1SR?*d3jiJKzpL#Ji}U}J z?fG&n#_NB~8JTimeoYB#!(RRS zV*uX<(Yn%W+|n5z5L%e^gk$_}WVxw;pINGX5`Swx*Xj0wx+P@BVqe}v}WHG7EgFeB$5KXGw&Zj{eMD^ zfeh$+`Fn77xJtNbZ*0Co5&KK7ky$9+nF`1b_%z;>H0%|C0Z9e-fs6Q3pWG*ABO8*Z zb>o1{;+z1yceZ@a4fcYZllU}+4X{V?<{QefhH>NQYyY!C%FlzL1-6~BFTOE<<0 zlGJ_mf$HrbL{y!Yy?tXp9k>3NZz zTe5$0U4hm24gHX7=}(xr8-RYYE>KQ$w=zJ;Vb5B^fO9%VXV;D!Q8B3;q;;Ao!@e#S zNB=gApa#H=)ShOZ1Af;O6`hw}1g%`Wdg@Jt?vJzgCKs=cZ`qkzc~Zcjq)!_Eu?c>= z2uw!jO+Jkh+xxC-;(P3M3Q+eKwg8O-1J3u(It2hcyAq5JF=V3reE zfY)W*7=%^6{bn>;TtV6Z&GdUN`PurDx!ItTH0Qy5PRM>6IA|69|9Vu$h_srwlBK)?xyj#|et1}bl zGOnXHj7V6XW1_QZC-yN^!-{fqzRBTV7&e%}2=z01#p8D<#n8N&z}h`st{N z_zF4nyD`9hQ(G`>mim<$Q~-bs?0TCfn@)a=8+-2xSQyMR;9rHS`D9f}xXuE~2cmF* ze`%!)w2cvY55oEe+wr6zqQKD#1%O&tbv^KGTLVF0X3W!V-L0kMzl0}uiMprC(JA=8 z3KM<2?Krw5s9ytzeE~;xs|he)SSGIl0b&I>So~^-oULis*51I5d_ApDK4g?ts6XoSz=T1INL^SEl#W86tW?)R&4c~E#f9YEsT=m(22RdWhULl z+ivLGNhq*-$J=R6%Fd6ECrzZXyJ7(t`WCRTH=F`t=Bk-To=|V&E!8F>@?h%l+(u)t7q#xZ=Ef1pmD(AHrklM3;Q8L{Z$R6wn4SWuBgd>$@fh~0s*X$ zd%7)P;w+AVJFdVDv%E|xU)yVd8{1a&Fr|y%qHs2j54vcj%oYX7PXO%RlMB5#T*G@EW-Exuf~lG?2E+g8yPfZr&=+*1Rxcesw-}NC>1@6%VQ%&{lx` z)qqL`f|Qke54)qi#(QN+t_|?@k8kkmj`ngRKKNpj@;#XuiIq*2Lwz zsocYB_N0cf7kzUU%&fOA2rn1A$^`WRSfF2nzFvHLw>#J9_Q-%eb0dA%?T1rq9k(E9 zRSBB&p-?v`3yT5(qL71->;q!{+nX_+1w#L>;;ykoV4V;#eZGJ)dB9X|ZCv90`E{jf z%N7AXU#ZhN=y<4Yc?ZcjHglSK^WY-CGNsjY4jP_#nZAvLm~a;ZcM4-ty^&n1^g9|w z@+2CsUthI)ldqYSxf3mtqJ@{kSo>re*9A(G!HtOP%8Vh!$1wf9~CZ_UKb^Y@am87q*qB+Pvq0fsJ# zDzN{~Ap0_}bpQ5x|H|Xxw703Y`fuuN`o?p~Unb~x026Vw)lN8O`|ZJ5jMHErS2N@Z zGR0FKc?;-x;R}TsazFrA?2f~fxVTH_$|k=yHC-DI`P~}+ubnY<2rSyt)+~89z~OU? zOE#M@Brwp#J`vP&t_N_PTP?PS<^p*T=o2l)0iWZLw>P)vCuyP9OsCt3v#^)3^=OE|W!Wo*_zVd}2y$l>c#|35QU*P#-2x$4+!K*Ns)Go3k4pg%s52ciI?B z?Y>nj)T>p>tjpPqjoQ$x(fsy5_ADH=Q1wmrkKasir?M$<0N8jaKruWYwnb(;>FnCP zN?>!0O$q9srV{EESM%)E5=Gn7oP01=X?}FuO9qa3lbO|>=^_40pny$M3vdDo**VhU zTCB)3IE?D6vMYdXH&M#x2LyWW#bA9APAWC0jh&5iAL?_9HlYI*P9Jv*jgJd9^}j(f zl;q9)F53_ZENh<0Ju^1$()7jlbUfrKG(z^x_C-l z>e1ok*&AYLks23h&&qb%H$bSapCIxU07evLY;0%DMpP%?s=iH}a`slw7P@h76J2AGGXF>rMf7%G7a(v4!#lofi8V35^`R<+6;I=(VB73pY$|5 zxsdgX)dpZ%zwOvJ^<4XnNC9#aeiglSytmQA zVCuz;;3yDe>NO9v)b-oh?U|65YK6w|vdjTHz8A&{wFod4^xHOAc*0c(07EMg^{|L( zuoZrd-A2`4tI_8~Nqz#m@p{Jkq@OQ31ho)PrU60Vrpos~{8|vyJpI{VYtG*61iZtFc;6LI-U1co1Wi&!H0D<6e?L|AozQ^ zx@8Kh_R!6yUP7ZURVDaDkj4PPMDMq_aSuCA#tgNB+z<@xw{bvJ zT+jEUGNah)UZRu9Q5LC=n$I%Pw)fonyfj}f5UKn0F1ln#3Z}&D0yf1;;=U*)-}ae6 zspml4m4&?1G!QcRm7UMQ{q*L5p&GZXnbW0qn|gg*(qA?II+R+edW*x}Q~4NBR4W2| zLPk}^T&vx^d0>bK%M-h4)qg1yN&BN>PY5y}1II^vbVUKecsncCd>iY#!oP)10J_sP zoy%+z0(HdmSws`lTeY;RF5PjNbDh*NIUh+ZsCcE_*$wqOsT5z39}wXigEya#mrfiPFPw$`X0AZt0c`eNIoaB=w=cc!o4?Hm zLMS(-Z|vcaNn>vvKqkgO;=<#6ya>=tPo zF%?qCkS{<0U+Y!j#Cow9gjXUs@3C?YSmr(@E%MZaxPT)Yv>K81F)cNY& z5gFG%|NG7$xra4hU8bdd+fR+<9D49-&|G8hIM%lgPgRk;Y^`^kx4qhi3(6{l0%Jc0 z3_8db*Q-*Z(v456Cb`!$Wy5YSV|Uxo=mLl!ntJ1ZuofB^l-4eP+5#4ZyRU#<<<2Vf z%04x}PF8zb5{6*7p|e{P|39t*gp-<&ZkxzqAZP&*mgv4crL#&D2n@fiDvFTvS$dz8 zvJCJi*wFC#`g>+LQ#tqZq!(dVTUIzKUQKYAt=ujNt(h2Sb4_PHSITIAK*hMAv}EAQ zSDCucaUj!Sdj0qKx5~&g-rJttA8Po-b4)`4z-EajR!}MbmVoIdNLx~E7z^q1Zr%!1 zQCAJnk^o)M=5<}`fooyACmhc8}1+I#a zNt*#%77aS{(vEL7^|l2v91iN0B5 zSNFyZFq6fFKAq%NDs>d@lCY)O-@l_8mF>OwCb*`OI5GP6J35u<^uS;s_&YWeBvv!! zKW%$!pp+>X1Q(b8a_&kgm!1}M`?f#UktIntalx&a{B~Er$h!UeX4k&>N&q7^bEz}+ zd)y0zQ|zg;F;VI`fBM)Tpa0{6$v}GFt>VID`!B)rpHkP~e$_f0=%6W!J{9=mbN}fg z$p%RJd-nW`ng1yF{)dZ9M!?r|Y+{Z7Q!!cEv;qU&p1I-X2ly|~{ck@Tm;mHx)j9Oq ze;u8Fe^(C)J|unTdeZA3hvL;^IuF=?2Mn09!2b@||E`q(uCPCB!GE{pA437yu!vWh zc)yvjKn%M508H`BSN4s^B+|<`*(~ zp9NTDDq%p8FW9BZ@-~8fh>AVibP#Dz)sdfO7I+`BLJfbp$T24VzpD{2#xtCzAlL~F zMf5rOLX?73KI84*7)+;E1&>4O{|Gbw(*<`qV0ejO#}t3<{Qb+R{AM<#Q-S;&Hb%Mi z6tDvroS(gunzoJL1wfwAyamK2cEF)Fz6JF_MiMf=1tiJEqGyXig@q;c1sipCP001F zn``)u*Lrdj!eHTC*XZOn-P>#^XvY;R@)|ER{xN$(Y%2^LtyB2_u=kc>QEt)SFd(Ra zib@Gc7<4Hp2uO*bbcdvffV2Wb*I=L`sC0)kL&MM|C`dO$4@xsM3?1(tJe~u`bM*h= zf4$H3T+jL9H4gXO_rCXDd+im!^;`2GBH0ybKXfm62l%BKm|mMOU`Sesdo}ax<;E10 zja|)9j#py=XKlbnJ}`S2Q?)Z)C+}vB?k*^Y^8@Zs ziS{`RK(wnpL0a7*W8c}q^ok@MXQglh5MLEem#>7dy!3dCk%88@YJl?N+HF|vO&njh z%dcIjM_6oIy7Wso31Q~`9631Io=h>LFN=6oh7dl?TJKB}f)@{a5~gD8@h;-%^-ugD zRI#_+B4*XAV?U_6@3UK$p}V6doc1FiyUWq@p~jodC!Q&%$yu?zWE!ZdmV$}#Zf;;2zCb>mxs$fA&^vBMwgQ55`J1`ITe+L>^9Mk42UMw^ zP1E)8dnM(&pvR9Qm`g{Uwf=*V3g~l&1|Un;_Kin}t9WIAso)deZ{P4Y@#ADDS}IYNvh>=q}SPCs_ry zaRE)574Rz{^ zh=95>d=7>kK&O~ln?d0$++`G+%PKho} z)?A^y2BU9|aN9N9;A1tSKOV98q&b?$@B}73Qz&Gc$YazPRm_+bnQhrOBtubec@MMO z5l<2Ra{MV#i_V}_Kt)YBJoPeDCqf!zCMvcYD$;UFtvw4il<1!JvQb?Z)H8za z0U}+C!5X%&5kesrQX=_U(c2(&2&36u@KT@hXOo6BUahr#9hqWz?;`8R)kYc4DdgS` z5|xnK;Cx62o+F2zeaH^&SDJr=Cq2w#5OeJ2FgD~g_eg*3&GD;UfE!W~d65w`=DP&y z`1T5P?f8hpiRqehKGy|zMR57npW6VDVi!R&7eLvjUeThF9m?f+!#_b;t;PtG&l0@H zH`1y-6?WAUCwg${dIM<5C&JAkzX^!oblwtjzuH9U?KzdPf9#P_!>Cp5x64MR1`Oy# zANSn}cU@QTRa%awvLuFzjyi^&*xRPdnn5AjaXb_)r9&~1lU)EmFFu zEXv2qd8%hWJ81!8I~M&;w_U-xl!b){8byCARt+5!5FC5m8?P-M_Hhc-bE~9h*HEId zIFBFzq0k0;*BInm&@*GWjNFf9hvxxpUD`1y#p#M+JkI3hS&&JDEbv%yY4NRnbp(wN z?#(v{V_TCr790Ru$4Yh4zySbU;wMw%chJnf2ayH_o|EhgB&r`|>b z%EG!ZIk@6kiUGz#s!Tu5Bj^);dlT-vNf`~aV9lM5Li%oYkk&QXj6*Vo9Koepf~b2f zsZU3*_JfUxs^%VXN-Q2@>BoJK$u>?GqcUJzx!cc(<&sgnJEcPhgDx?%I7JpRorK9v{4Q}E$Hqkv8QUCPjsMqEwSkLC$a^lvNLGXVqjw!=yJy zFey6L<|vECSyHAYbc!|gMjhP;7XGkOZ*Q;E@Ai07&_%z5T%;e#}cD3 zX)%=YLv+%c_uS>pmxtcm<9@$6CGYN3R-r}3-Ft(14SP4dVj~=M?<$qYx&fV$!EL@g zeglZfuCWgC&08C@1h1Q;7a$4_iL7swC6=z&&iCejc<54c@xs=A@JklhFBa1$As4_Q zj6?b*Fhw#{KcZ5Xdk|!+yPQzz>aL64dTD1JWQTc}k7UPd-wO+1edwP*VBN6Ehusqo znsgP?^mJRz?J(v-rRz~A+`^fmUAVjrixk@oW7BO$VHV}qGC>q>ZQi;n$D+9b*-W0H zA;*uwT$T|^SJ=6pjXX}<3{x})A2?N{PW!F&BKo3 zDeBP=O{SDA%Ok#!7Kf4!!7M{1BSjrD6q>oTB@?1iyu08P{`6}rLyiX|JWoEr~Rg&gq*7z`uApFEJnw`MSO4iawuG~vg^ z$J0Qx9~uz?1&oMr;`>d7Fp7Xki*k~8toFIjY-&dCW$s47z zM^^A#@d=DgCb&%au)mgal7(B9JGw@hN4uGuEYr2r6g*Al+lPXUOM?(W`Do;RLgw;2 zs0NPTJxgZwmq7t^rZ`TRB5l-1%?uKDW_42r3y_~g+ssY$$rKUI$S`vUNY{&4Z@LWA;hE=yStYq)fc9h8I?(VPab=V0Cwd4gClnRWwiR$Qlzz}$ zjIVqnVl0vCxcdkdQsbCD_e)w&Hf7aib6w~|}?fOQF;!t$z3I`5855s*Y5I2;$*UO|{XXIy5QzY4| z*KQcB(;fOQ!h%99Fu=LgPMX4s-mo#4i|eS&;~UICjSgCqT4ngk)`xHrn}wU?Z&=It zHd(h8*;_FT2jTaI(nYdrfOjdXe>T>ef7Q?(WQS9O?S#I)yfhsc!PPAv!!J7T5bv{* zK_@zZTN>^kKjQ|=noW;|SXXp2-u#N+1xf?eI4c4?OoPPbh9UXT8qZMrcQ()GHzuO>#)SCq&838b zydvABh^>iH7KC2O$DfV&=5Ku>mQUMvG6?n7Zwcx)-pGo_b>+Uw z({P4yGK|i`QZ#@x*suNuuV|a@hLqzNA55CseR~nzRb{B9CMUIZwg;$Z1EgDjNJ0!S zwbs-z6@zAPty_j8Q2G6qsJyHF%5F8aMXv3#yn`yPz!v6Eoyub!S?j$#(%;KeCx+Rx z78o?4w0!b0VCs?;iUf5vVOfCwjc8YB6v*0lOW&dfQB1V?;7p6m*PS(FMO0V#R*%vB zzEVAfm-UT9mfA(Hc|;r7mh&7Izwv8mERFZza^^m?KH3O&{Lwc2VFpaH7|qAsIvbc7 z5IkYD!&N9-U#26?qJDghg_8l_V?3(T%AuNS+5?h15C8`*Q`cIa>=gkt5=KFI8dC7_rl!c80YU*lV1y+UF@^o>8IZTb|^lF+wh&>N-Vt ztr*dz-nLq=-mDr$JR>7jnI9hjwhy-&n~Asu8-#6RIl{^4n~mkAfMJ^;=Vp!TBi(t6 z)wH{h1#21|xQSzF_tt9>NZN;Z$$nuYYdIE)6V`4c{h_wzmoP!Be1bIVd3TP)jO-p` zS#JNd0gv()F+)sj5{d`%%54vsk)#RQf?)~orS9j33ah_0l1y&=Hp@%@CbjYYMi*TQfa|=$1{7eu5l_Jll{q< zSh16938v^Sn&y#K2!@(5+wioMZC-W_|&`dg%RRPB;HqQiFKw6x*23ERdSyCl=bKyyb*Yd)iY(M#RMu0<+f{^C)h8!#?S}#?PvB5I1`4pzj%vY9z-V(7 zq?U{~6UT;vu_jljJC4K-F3Ad8=Fd9^7JRTXmatwHx?9vTCu8DNe!?XQxn-X?Qfz_h zV(fT|On4JI9b}mO7Wjcqk|k8PXC{ruJuGSLVsFTmgxxBi>*&3I0*~t|@0w>*SAkLq?i;KAE?QHt z$${HET;Kn^JFXA&AAGV$L*B-o6q@}j1DR{BVnh}eJ1TGfJiRe0;p~^LW?>GNe!AKgL^h_}J&5fdSNQn%v+GY` zFkrg!<=pkAh|DL`+RbKf1YXc8sAA?F8U^42vvmfCbCy3zhr}fSJE1f-K4``MEOa9B zU`3;D+8q+wpDw$94I}AK?8ts8X~$Q9*#0-L{RR9V&zMH1O=jfxpWMPF-`_9>npnpxMM4#kNx-5DxCw$1r!(0U>Dk!#Y1`AByhK+drzP zq%-KuGcB)4vEj?SYPlu+)^r~azJm`oh%jf-p%MP{u2)Ea5XNS)1pM{N|1=vr;5hnE z?!OxZ|3~Crqf^iB`%+d`k!X}UEJjfB1dmLhdibvQd_1%_TQ#9YZ@4>>i_Qz{)#m4O z|6vcVFax_$=;Om*;vYOJui$Ds3Y<_i#Hg;yp8bP6hCi6%^Ha>-IJEN9G;bgIJ8^oc*uMpYr=9?(yZUC{R#tz8sVpjPN zdlP+}7{f6=><`1Sf43!$5+lYy(F4Qr|L;@d|G@J6r=ovIpx7CWYXM4sm^n2v_ZPo? zwn<&w7siRs`^OH6pNJXWI9Ibw+_?3&3w3{Av%=MVNp4L7cFP~4D&mX>WU$YEtUkv2 zoqA6PW|a9Vm?6I@K12bMK;{vX5Zf&X;{WRA|jvv z`m_}UE~4{NkK|9M^}!7eZNt<6)%4!`@zMwP-(MqYRR$`6@$Gk8`(JN(&IcHV{|)T> z%Kz`q7#VuN?7Po;?h^E~H#w1Zf6@7H|L@+;eYRtVoP^3&ym6bf8+sE_4US$z7v#P# zxWr{}cApUyIC<#M{mJcc!dQI4zOEQSxT1#fb!JP-4b|r9YR4b$o1{OC$nx~_2PFv` zCyw~s!wCN1Cq|n4MumpKK$|N=&epy{Kj&n1eWW61KZ#A|I-ip5^eB#gMUrCSzzVV6P*3+apfZLfqjqnnH*ZPpEOG=$jto^#>2vPP*0tE z5A@Ec4U8IS0c?lt4zwpRuEL+{1-f|VN)2^%xsozw zSQ;9@c+=6?Nx6<0&Xu<~W@*_H@IF&m*L4k7bQetAd-uj2mi~QIBPLr5?==eV>IaC1 z+G&s>Nde7eMomEtd9vC)!$8NhBIQFzKNd6vr>0O@u=IOKDef#N*h!9$+^^7J&;$rN zj^w%Wt+_tBj{_j zLju*}rfi0}=22`Vm^fuaBkQ2sa#!-ziFP*9bfTW-xGj$y#gumdGW)0kRnFsT_)3FB^sZ(U~$U`c|rCTPDp zP%7($>2$Vsvt~bM`4zK$nb^r$@5lb3%s3RSbC|kN3~(V5^k+hs z<38jpp8PNkDwiVs);0X5BOJBB|^JZ7n`@~(3B^|P5n-YHa{@Z88LEsc%+Nx8oY;x)Mi ze&3H6TU^Y_OoOKOv!!dEe@PEUjNZUJuFe&%MmS*>yYd!^2IK;d)bFUjEWzDJxJM~r#!3!{`Q;7LX3*kdYkeujE{fZj!+3mgQy)$ z;$SN1r+K;Z|H_oHQ5F!uzR%dB+{!SofugGEL8ouDd)ud2=RtW?X%+tr&}*!XmyR4- zNtyi0teW(l0FcD!jTXgJo>X22QER)i&N|`0v~3#P^EPe|s#n8nEks3azh_emFFbVxD& zrFy<=dreHlx|l=p!Y{94P`uxEnMd>cd{t)QS_(c{b=UL?1S}P6)N0EChqo*7^+RV`7+IQ!X4Qh@xYWz`evURPf-o&xZ#hS3Z1$dNMH`fAr1O zn^*D7rHjFerHZG{+@6ybnM1gjrN}kSG|tV;%~;MiX9`6d7QKn0fls6PSReZbg!ax0{_e_8w}G;hk;Co!&9kwf17vg#;r$cQ zad&?G=2*~>R!cA9vIP|(|GW^cl|iHRyJGPHY*3eJv8fo{NXe)wr9arzB4LE zemU!4WY${Xg)F1peQADo<%5eN3p@;ro~HjewgaOOu_QcQ+BCb|(st>?>Z1lKv#*@#k=w9JkAeA`%Z$63gPtm)KIErZ}QzRgUeJu^w1XyXyH+*qV9&! zOuA#Q|ByX;HgE&{Be{-0)IiJ$yc|gSoq{?;hqJxcf86z7_0BLjJe=@_es^?WLAgli z9JF4n&rtpt&c7=B1)!A6aHD_P5Pu(o2nE6EQg$&HJD*?fBh1enfU?u|l>hOL|9XIc zmp?ufbU~;@;$JWM@rP2Zk6N4`8Gk!L3NOIxG@Ops`JL{@!qEjLQ}8hHZzqUJ47`rv z%a)Aa&N?=y$U?XD!mHm-P(UnD@?4*c5x<>v4{|yO6#e?`AM^09=0&{%I0z}e<(mC= z)+@pBhCb_Z@$U=#)2I!ZKveR?;(ucK?^F7pSpNIm?2GDuV)@gy`um=DfY!TtwzQuq z1l^C*Wy5(ajlIb^^SwFC3vKNhb^mq4pB9PH##c#E`WywSY?GUx9wW-nHmH?YmZ9?y z`AiJ7f1^!bzJ-<6%gEv~KIMKIg7ploz5nILvnfIIf#3*)L8~6(6Ayb}RKc&&RcT44Gpnjp|O>YN3D@5kZcpyTJ1=BsB|IEI|3ONM8m$7mjbT4F7lPt^Hg{`05>DpX24 z#(J!N^_w?mm{4GMhK^aJfPHf=l3dr}f>Ux9Xnia&74N?kz?}XDl!;Z(O0At?jCg#@ zWHw)AHFs}!>rV677>(%K4bb>jdUT{hT2Ug1v9G|&ir}=@R-3(2I!VnN3jeXPz~*s| zk{K?TCOoyj7tmK40}4iyshPrOt4eCM$~1d>0jY0+D7VvwYsJHbRH60$n-`e7WV;p zsjRy5o?Ttr9a@V`$Ayo_X2*i{SLJKaxDjo12#g9EQd;a^M{;JGTzFk z{yO-eXGs-WQL_ce{8QBYg*(ZNp>mP@y`UX0$?RHyvfL}2*YzqJH{w+|#cN`9J7Y(2 zSK38->JjsjQ0YK=4z20AL5~<3)S@upT zW&)Hrk2`z%=lRlQUspi*#w_LcTx8?Su(OU^GwF49cbsgZp=nvigi+xD(4y=W3Q?9e zq+mKw_~cgP%CWU5=eetcw7Gb8s$X-uCR_3j|+S$ z4eB~J^B`e?VPz{qb*hY|s=|zlU#PV=yk}KQd&x7FSsNG|GXOUG2gB!~$w~=Qw?wQq zmd41+wNsp*6+=)G;VRUAdYzp-AUPpy&l!ud7_@r0HKsHhrwUWcV9f>LMnn+17Fieb z;BA&Tz&G~M$1q_l{uMD}A86}LtcECR%T6{k7({$g8~M~6!N(mNVRTEteLl`6k;d=g z4U_iETE(^|QRsHV$tc-$eOH!dN7ebeU-N04XRbPLFV@Op4`Nz8T9RvKSX25XWifB- zPL?DUCrWP$Uxba$Kh{sHwxO82Q+t}D<4CE>TJZB7-xvKW6R|P#avGVQiPf`ShTMWt zGVWgM7UW}l@`)3S8_wa=dqxhWLmdd8eX|w1emqSRUM~l!vM2leY_54?s+@=qV6Hmu;C)2%KM|4Qk`DwP5AdF`EvlGJCAo zt#`*nw-#nRAT{ON#@=Y`$aBKhXL#PR9aM%nt=mv_4|1|L@}c_|QJeB*Y~gzC_GrMz zYlA=+d$q!gG8PN^Oj!%U%9l4R;^He18(oox$LSXKFnes1I6-e!UJxAsnI9T7?giwv zfu~EmGzxbmbad`c5lJkMH^nW5DXdu>IeOyd5`fk|z>sU*V%21i;I)bZtQZh{BI*@y z^ee`wm)$2BomM8#G%>uzwp(uE?FWe_D)u$vx-l2GCqihETULIk*jpianShF-3oo(S zCGmh2{Y7Os){Dj(TT927H4@aQb2z}{qgPJf@5$14>vo;KAPRgirBeb+U%hCHQJq(= zIE@9W7kk~;yhmiS9Reo^dWIM&-bD!BQuOou;-uJ_B>MDdsAscKidMV-M8mg5rdUaMMgXyD|;FnEM;y#t1;$@d} zHy8-A`)!?9_OpFmc&mhF)KLwOh23skh)(jd2J;*o4IvtD--(u9qh_zSXYA8|K}`ST zW{R6vGQar7o^r@?+};sPMZWE*>((lSQ)2zZjxT=gT^04gmAk``eYc@LNd&mJ=JRE1 zc7X_Q_vML}x8s2+|x#yd2QmuD9zg>KcNoX1}AD1E_) zdv@(eEy2s2NZaAAiIPNlRh8*_oN3Y15v8FI`&gmMY|jcQUnC3=W(8XI92+?YGaVdpt<7Am{~z! z;3=N57{M_2UCVs6;H1Y{v{9L!A%Kn$>{@&z;3SlZ8uGi_drhITn-Q(%&+*)+&c%wi zmp{oZ+7ueWViFR55&NQI{KK?_6oS-0`#NL21% z()do!Lb@%xN-%}nJ!>p}{Y#%iOjb}aYjs2+ojRercVE;}mlx^18O&z+bL~ZZ37B4< zE!WSq{N|#x`{n(mowTh^F=`#>t$38a;QH}QZ}`oPuWvc^I_1mshtjopfz{a1ZdoO) zpoD!g?rh>?UBr?Qh9O6h6>BVoRi&&hW9wwJEp2Rf!DmTw9a}|^^Y?XJo$1AQ3~gNB zx|p7M;bBz}{?|A-$}b2ee!B-9cA{#_e-whQRAy({e#$tQ zn|%F+<~uUR=bY=)1Id;t&EgsvSzF7Z`WF2KLXtx-Ui7wE)9VcdGrvI_N4t^@N(1Wd zl#C-gf{8+1r1|o_o4%Wyr-mLYvY~?Nhe7Je#QmO zL@q#j?DZVh1{^UvUhl%-S%3Yk0-g>yA=0%@8~)W<=)Xk&MMyA1C>F@NNm?Q8jB z1_Hgw6VBd>PvaIGRXZ(Ta*+;xqqtcB(l~Ibvhh9~_MD)Q8>O@s>Ee#eLn1P_l+) z@EI!_*Ux~c^Q3U-lJa0w3L!`IN_XKrhx8!pv;GcFg*~3K-78zdWB|zH;T#hqEVKE1 z3W?Jm-fvnr?N4)a9qk&m*GZMX%ia&v>|kD#dD5ttl9Pd?P6YFF9s1;ot*58>nPRDY z%@NOMFZ>ycQPIZ6*A-{1*P6QK_clG>r&R?FvPH>WO)Qs>N0kk5gKarVeCyj{`cFGH;|v`ZKgm zJGCaNy<1XNw|9yY>WKH^n3l7j>B(+mq2z5Uz)?t?Q(VDGbr*@V`QXevII>Q57Sk5s z1KOW)yY*V#;HN}FbJHE@kz*1yeVN6ijDuOMi&o=^w>X|uC2pa*;J z#Rw%3R%g$sUrW(QGUo7lN#Ikov1-bdJ$C|Uw@!-^cRmpvcNomb=VZnN9wm7TBi@m_ z`%da2*#aV7pIsTPdzJ%3G&Rs*Wy(fuN1ldCO9NT%8rL;nGA~44 z`G#v(Al8)!IEeM#-tu3OEdXJ4m69h*IY};Y!&VY;i}L7g?3>YY{8N_+y;v7FLfuju zjF7o;8N?9TO!Dz6vj-N^V)jf^;$;i>3Nyl8JQNY}lpJD`EmP=H-D)BuZo>`{ghX*h zYheLD$Ic_|d&oXbPSZ%hmXoM2>aw}iz^TJ|L!2*3pY0Zcw0NkIlR1WVl|Pl7(4|oX z(O0b2aybQ_Lm6kd>>OF=#{3iu=M_#MvGE8m`Ov~MxU#(k}Bx@+e%*~~3sEH>{y)+Z8&it90^!+7Uh6|}KSt8lG^ch^UrZJIgP6Z+3Z zk{s_8^rN};d~0>A$}$LS4;4B^Nh0#<06p(#S8il*tmm95Jh_%`BB;@EM2cQ8tGznU z{Bk7G-U49dTD4|3D+?7O0{-%|paIYcLp87eo8}#=dgF^)$TpdBfen>QX5LlElcC$E zn49;atDcB#F!F$9s4Wi9pYRfnB?V> z5SQz^wH>2%8D`X(=h@x7UN3Vsb{>vXAl19Ao76*k?>L=;hsey+0{tCyt>i~_^c1b# z2x-t_hyGfv5a;#@WW*A-PK7q_ef zM~I!E7gSghV@8+j%jEAPAFE7PJ%V1Y^PS8LCY=#re!%O^PUsjfDzB3!@S#u3R>cTBi? z>~myu{zu@>k`D?bAEW(z(xn|;gaa3vi!sweZ=XFin4I&OFUd_WMW`Aj&rU1s=At44 z9gxWolLoel>N9+h_tl_V{n+nCB5C=m1d5pxrHf(uBpyq|UXPY{#s+B0l~U3V;xF++}`R#di_%%h68(E#JPPEc~Z zyGK`u9)Xxh+G3l8Y8InkcLeGz@pM)3RoDXh5Jon&1~I%eaH`Lc++<~X&Mrd0f(k}y zJIf2slze;5Dl>SDj5lSdT-v}wS~M5qms;i$cS zO=Xc%JlnFp^I35$^$QscLIJlNF5IwmOmb!}imcqk6jf2%?M4wjvAPqJ2xX zjw4&q=q9atZSwZr3(top7m1jZ0(Ht=98=Ag4#Zu*q0LR;-PrdyC4eMPyN`u_ zZNWePe!J(WrAK?(3P)wIccz#8<*J2U9<1 z5)Gw9)CUJacq-yHT*R(*s)dnXQnos0;jrf+x?WM&$i~jCy zZwpOE7mnz;O*R(>8eeMES|}1Izs|rc`C^VW9U)i}sgBKg$If+DF}(2&NROMB6Yr7 zZHuUZzQTO6)|lm$*C|Sv`e4OI{F4%w_NQFzM9S+DC7#zbc}vH;^NMc?fJPpJ8X;ec zL*-b9$%Wo@JiV}2<936_DzRT$onvN5&d{hOikfr~@a8Y&G5L@g>EBw@0PR}LY$FKn zBCQ+PKMz@-Ge^|8oJND@_43D^7=u}7d|mJBuK5XJ2?0O1fWn6lrKhnlmZML7RC(F? z@jXgpTa{A+OZ3#@vkEG%4Qi!;J>k!S!hm|*B~>hMG~)}+}{Stlm99m zxr=vGhZFS2DKEbp>XIrNVr4!?r8Kp%<3;N>IX$v`ZRBZw0z|GW!N!3o_NXa=FREM` z8RvI5)Gbr`0n(fp`WnPMg9_*&I5aK`qP#(Y?q+3H$nuQm>29$bZc}iplPq)Y7swMh zFpQShX#Bd>?eT=B81x2jZN)!<96L!lYCM=!%(iT`F#WL_c#>l^J6&Rz%RZyFQW1*- zfcVmqn%X~q3pBPVQES+Yi_Jh*Wt5z?t2*(gLd3$Mzr66)eY-lNbV;fJf|qwK^BAFQ z*tJ(U+M3BO(N)KI>y;JciH=rzT_`u_5dwHe9RWb3Kal9sD$8w9>)Vv;2$v89y_dAh zaoWPv*G!xqb;O7s;eC;*`S1mH(oL#5Iv%iUXPG*_R2c@{L3gN?`wro%d*Wqs5&}?4{~{C{0RQ#9gnW ztmpb4`GaiO2Q#lLQ_n?x$WdO*fZ|kOpp~>(NU2pGVJKzVm5LI9pwdu0WnbbaN(r3g z!mcq-N74`2naG&+cz~!a!;F-BzrS+?h`~K|E+0x&WmQ*0ID;M!&z#GteaT@4gwg&m zV?y`z1T$6SC7Gqir1+#v2^5iWAY62{FFa#yMX(Jn65`@fl02~j5b(B8b&C$Y%&l1z z(4J$k;ENCAQb0UfLU^~y%0hYTL@@kO+r^fQl{>611`?=suUlVfZ$P|H3u!CymBqRP z-m%bpz@SOQejtgJKo=8J0|I)dXC;ZwbgE_$Wtc#NU=i{l7a>F zioF!>7aO-k;jf7+LeGY@?)c(F37PDDF0*f|z8!5V^HnfvDff(ma;1>W?#IBrm4;48 zjQnT#srj`$ARA^9YyMx$^i5pv>^vbwb9am|*U!KEu)W9JywN6DLKEX9SuMOV>=e>+ z4YMIcHqN%fZ}a#?aeE;?^(AIFZs+Qwoxb@Ocb%jnP8pj5tw@}ec?*5q%4kk#!8RdM zTgvRFqyZ;7w&p8nn@@Oy@)K(5xOlX*CnwR>yA1G#wh-NtK8)1I?gb; zsGGfIg(<_3kSY;7#paZ#*{yjmr_mGsb0@dCTsKjJ*hh{Qeif|B2|G1HSl95HTQ6iD z@?^ET`1t4tkr~f|-f1r(|5;3OD+6x2Ufb%9-)R^!RK8{Q{Ox+Zo;3q>M z7yD?ss%O4BGud%03H7ZzxM7t0{JhMV>#)2a?{j80b!{_remprrXFcym&n>fAVJc+X zsOz)ZK%c3q^YZ%cUL+vT@T5h4sez_$x%Y|z)xM$EOUyJ$SwEk`4GD90?_M;*vqTS;ig;z(_h*36Q((wYlzNZyr=&k3Vu5It=~r&Dvr#B7~p zZ92*g1VQ|9qKoB^``0t+pU&a&yTLA=icY672Hy4?;COWM+2a`0} z8Z;*)kY@&Y*S|_tL8^iotGBlky|>Dmt@_!-u%M+lf&8|US@c$R<9xs~WL<57j61Uy z`8hd@Td~4QxFIH|cdglr%7O-h0FQ4CmV!Eo(*l?M+(3Xkopi=gbBaH_Oaj)^wW!n^ z-6>fa0dL=W3}qmwMvGU~8jc`$w2CQH4P)nhWk>Fkt~_QKw3Fh}(?O)rXBXFZts6K! zBF?8|nk&EFjmZH|YSN%SDo73{C69T{(RTWY5jC(#d4H_&q0;I|lpPd6H>9Dd^%N= zlYpT>LT(^6ytuPyGF%B=1)QK8 z_W*E<&KswDryZ&2 zuAQ)W?~f?}c>+rUbn7M{J%fY9{B2w(Y|l!IPakpj^~qJ-l>!-dMznIbB&VVYn=WK= z+w5r;(_@$uy}eCDMuyXwC*MB3nj)L1Q$Ni$=O~Ck&=kdPYJE1<9ta6@L~J4RJhsNnj>gL3?~0sjN6mK{Wq|xAf!FD5=7* z-KUpl5;HD=OEDp}QBRLz>+V+Uc!%T3s#b22I;v|^9gGzhF%lkfymjfH@xUM@?Eq3) zvIdLHDFW+lad-N`*;C(wt)TqP+nyO zpG_J7U33>i%*;BI-*=^JAwW>tpnea8Y|TM9mtF@iA0T$`odx)6`nx?@H$g--S>9+=1<#u04zY5?v+ayz$ri$(?7c8x|{r4(6`EI0AM2> zy={H&Z%_K^zY66TK;HcFo!J9fx_?9t#&`nMcRC%TU-du!`2buEx&&~_`7Y7IroY80 zgAQuL7I=K`&;J(j9$*DtX>4m-(fKFg`rCMt0RxZ~>z7xfR}Oe|f4k=Ue`8z#FpeEL z@wV@G*g+9I0I1dymAmY9Aky;FI_}Tz7zUrdA>`iqTYNgpOMnR^u)fH5;&-nELRVmC zt!>1u{B>oh`XnL z3(l`E0I&2v6j5kB>FA9czj*g0(np{jTzSL25Gov?^H~=}zz#Hrn|85eoyTh@#H8zu zn!*Chv82JCNdONHV0-wl7)O=cP|%Po?jj9YZ9r@#a6FfKxTTb%DaVRKdd|3U-%@hD^pLnkpn)3fmFOEWlaOgUz4>WlMV(de%s{8 zCp8rLpye5TK!1**H>mqn&j(S7%cExFMH5lEpkYLR7|7xqQ&8*?uLI6}3t;Jka+K)( z)U5y@hMh^vZQj&_k|opt!aVoOny4FkfnZ+b{mKMlxa7>M-~am~NRkyi5Grj2X*#X@MSd&_>6+L3L6e82!BU(&oAJhMfX1M>hlk?{%SX)HjSFP-{!;4#AaA=8Ce6`tF>ccA0j?Mq_~n9g9VYShd9 zLJa_WcOP4Gh|K&pi1Gc~HerhCehX5&59==}H>j{j3p(egYZtY{l~kqs=PUMxFz_=F zZQ+HtV_Ngg0_aa3@bPN!RMwF0?l8r;7t9Jt-JvHbuVn$;P{r zWV@{AviKYW?6VtkG)8<_!vKtqoVroTqMl(6`ZdA{Nm%bAK8O?cgYMhrAeV0o<O!Z*LvW6Tjw2UHRAXnK3cHJUUwbElSuUE^b>+PUzzEoZ!D%E&1!{NM zHY1(q1u<>1wY}$n>)MO4qUd4Hp@!^o^I}Z3TYZnjyD;*b$YC!pxd@XKM3{D zfW_d3pH_FoQ-KUYEc^3J4ElDT;S+1e=!gygR9Cl!!1f(>YY@0vxzZquD%k*~(S09} z(az*&%D~Teuh{^=SjHRAMnI$aq#^v8$phs?nJ4UT%(~O2x|J`u%B#ph&By$Kk`MrD zGsAp|m1IeRs z9CLziDV7AEsNL4TW}Lco$2TugHarZc6oahO0nKE1+;?5bwRb_tN9m{)B<&;>&ow*; zq|36b{Q!Yd66`IGGY08Ns0oW`?7W_Z(@a3dT4@gg###*NVbwNg5GHuvx=gnKk|7U3 zF#0ceoqrIlV;8!m7zw0Kocs-lK10OQ={5mmaPAadb%kh1NIBo+2vuHldb8q^a z=0`WYIY<cETkn$aL^l<;FCS7yUF!f=kpxh%dKk{RTtEd7V!9!%ITVL86DGT z0IT8X$t*S#07#N(0k7$!nv%$?c!sKS6UvZ#jCehdx;Qf%8nZSNgr&n$6W&GXT_F3V$-D=Qu{Hd_^JsDtrd8NW2O%yEU@L z@($Kr4zRM;gG{irZsjW+s!BV}Anr##+_jj(YKZrI8LUz#S07*%ki|BDUsQXn40=iH za>3Qo0fq>#gLGgXSy4e)HGQtjQ;q!zWB`vI?+ItwijuuAoE=`J`c4mthqn!m$eGeE z9IbJJe3sK0^DpEHs!X@F;db48Qh_8IUGgD$g78+gc5f{HJAE&3Y6zxTj{{nG`x2WJ zSEea}F1VRGqEG#!7Q9(COM{b+X*jJIvvHhpw%^uA(QDm0VCMamRRo`y?%)uVV;Y#^ zUssb>j0We;97EUjjN&6|hys13ELl-mxSJ|(wG=@Pi^%xXf)t#fJ}(?w)9mE#_XNjb z==kDVRq~SQX|)cix5B%HTPu6duy6Xv!Z;q2VyS?ivtO=`-(lK_`7o`nu!LIY2!qRs zq7_9Hpjz~SflUDMYR{WVRw_k+r4|s+;X{h0zSc@0g9ObtIAW%>GREyAK%6p9E3La{ z(|3v<2d}YxZLcMD8umQ0lVIEul%#1ec7|4$mlMYntojb za7>o`+jj;nSW{FtK?e^DpbOK?EVe<=x1_sR{~ksn*MUTOTYVw>7l8z-CDudpL?VIO zhFG0dX#JxIWxS3)xY>lKRlRZy_xU~U6GzPeu);}QR2bq6!wT0FEMG%~q@WO)_8&Ex zSeZ4(QL#aAg7p+2gY|tCo`v=54LW$l)hYpM?^C)J7ZjLPT{{zUah!!x0+T)8n);;0 z8z`aLUi)=YYC+ZDce~Ez&Gr}A>nQKd*;m-GN082}VVhCs79&nQ&ETJqA}ED*!EkoM zRwsJdx6!mddfE~3vm4#HDfuJ88&8~-0~K{OIPr!-`|aaqgT-*F+TOP#;g&i};LR6s zLMuKfu3O~(!iLW#Rq&7lSo{a8S5meDN7-Z=|)s~_g zI$T+pk_}qoNi&cV4CqBeBK}D_M3{eYtq9uPU^;kP#x_ zy0^1dqSnSw1HVQCOemDE126<2>CudG5tGfmGrhTkAr)V*ri`U}_EHk6PXTZ56uI%u zbdMsOHA;D2Ri(kay@jNh`GVpKH6`AD0wzXAS7euFAqXH@-W(VmYrKR>NIi1YauLh_ zn~DC{e-%#Qk#x4NN9ijOO8OY424skT1CVDE(2XvL(8F}5_!rl2uNbup8d>7V%6%xWOC3LDKiyeJG+;h$&L>Iy>L6>e@;md5gS9!o_T-z%O|3-TPIexdv6pummtcNR^igFb{jQ+Nq z(IAx$wt?I34LD|#ca)vOa|DDf zLMIl(2>X@^v*T@CoqbGNY^hDJ_{LdC9P0VMzcq3nD>^Bp6=A58Ll&Ksr zrW-qE1Y~ovrLvji{=?_r0YWuesJ}9uX0FMx>yhro$CZKCBY(r(8zZvhIbUOmzF77X zOZrQDBJ#>*O0!un4%4-S{kSCmPBGcK;WYZ@mK1(~Ay13k+z z)}d|Wz(i34-P7{u*xw$AG3Fhz_&6h~Iw;FC{GFFG-@Hv1wez9YTOtv%cK3y_k$H9%12;c)Tvy!v#P&tI#U7!ig~v3kX~ld=If~T7?}{ z{RI$Db+DO2Pks=3xb%^RIJLRarjlzCzYsmXkw}Y586f$~uQPg|OSPN1Zx2_lfC$<& z9hsR6ADHdYptI*$cI zh~)rSp7g=aQ#1ihd^%!UVi}{E-v9S+Pb3OCXY@H0e}%%4!zcvvuK}uU&b88O!F>Z0 z#r_qz>Trl>5wLM9NbwEJj#)jc4ijj(2su_md00cq74S-_KHf(^9vfnMTg4Uh+ik%} zOBE-T3B{orzHjGTnhcP(dXieeQ!?h3Q4w=fUWo+WD0p)Wa4indEagr5z&EZBcdU7H>({-5VdrH5Ac7^64LHF5r4-OrV4r6i zg4A5MJlNW4)U1j*{`qSw3oppZo*nrz9liI=4}2IYv6CuCqk+>y?6|SUr$ooRn#5{# ztuyT72m{O{4Pdgep)H#5%QhWQ718|!nQcCV7?W(%PUB7@Zt{14419T@^qN2jfuhv` z4t8laUFs)Ii&=)fiG=5{jz;~FuF-(LkwuZsih5YV_LJ99-YjV4x{MT%>(G$f%wMgthVNFN4PC2 z16aR26qAHc<{Aius@Kw<=m)<%IQ5MlFsSk1E;xYj=f>_B3zMd01vUffdrg6vLhz<4 z5|vUWQOR%td-@u5yQZ2ABlXaO_7T-!Vwizk1w~K>kJSV?X$nZv;8sZnNj%(e3qf`& z&}k+E{jQjzDcCa2b4*W(6~BT#-Sif4is=Km--%s&prx1qT#oApFr+;Dx2=h64QRa~{!mAK^Su~&$amtrQe3h^ImLQ~h^Y5M6F z2Oic?6=+yP^UJI8k6$9AQBA2=uj$*Nx}3LgZ`N~i|K)ard^Ma>(pz)x`K04gh~+a2W)KUh z(+CEG<0*%R@W3TuE;G#fmToPJi-2YSP5b4MxYu_LKiVUz|^oC@FVyU+zP=a60R2E{9|1*7NQigl4(d4;61CJyBrd$?c7yhS|0pBbnmL({;g^6=U+4H{w}^-R3E z=c;;#PUt{ ze%Z1AvbT2%!JFFHvH#@_iAs4>I25d~7fZ)syf&fQ#bRy`O)`;&85#FgvMMC{rm_jY zW=thYg8wnIHVqU9^=PxXgg1l$Zgv7uL6OxPR2sR8#iOb!xcb5u{G&{?83l-BqOj@U zb+*UcMQ{KC;rgW`YjOAH0n3!+Lg2f2`4K@f+8N@$+ zPA||tSRK+?X@W^aWH*EX1VKx*T&HupBIvJw7&FJ&r`B)yui;v%E22oEb=eQQzB$?O;}wjL1BcJ`0izZP`-H7$L7__E0R)jEp)P7z~~yBpBc5 z^xncWvkNp`5}jNtgjbnU5ZgWKz_f(&|%4yysLc6U1>=NG@tVvXoVHi?(Tk$D{hCXMdZ8(St z?)X;(6{@cjEh!Om!=FnCIei#=kmGcES|UUwtCoyl(^?u)KKz2N2jb0Y&NkC(k$Z~D z1K3c25M=DzI^tzd(lQppfgbIcP@_sPDu6M2o~8t*ouLxmkn6?WK-=ixV&L1)~!AG42fc!?^XY|%Rz$QE(7o&ZqV9p~^@L-N} z;zq%%VgB36*rqf^j>sjQQ}3q}Vx5-;Xj|G9H7?`xu$kiu^xT64w<@92Q+Tks#^Ml} zJ8$VE_(4ZKzpMM+AOO_g1O4mX`UxV++(E(Bb6H0VMKw-sfJMzB?=$7WQH!f3{PAZg zH(mv48aKQsh1qYtd#NQ}k4gkzcvf34O$n z{}=<>9vQ}ph$0-_!Ml9_c%y$kz&#CZaDx)4jeX8Yj>D5%k{ASRlHkH-O+sd}TP&to zk)YlNn9r2A&=_#IWQp+NEUYF~IQLATf6r!7NNi1r3m>H&SV=IsAKW;X_6n8Ro?Y5e zurwH=@#55I7N5o)J1t(n+~H`?dg{{*u%n;s= z6Z{Z*=3xm~YeL0eP1aZ<8K~F+N=jM22+JFoCTWyYhFQ#al_lY}JRd{Hit# zor9=eZ%OE6qESbclG8I!6CbVJK-xX@=QEC!gVmq3eE@O^m5#d7so$aC;kC9_14N}mEtKH02ms; z4el?RKrj|{v_G|`w{Ur3$_xyosW3=s1>bLp*nE@!q!24o-g&qi zNeE-Zvk1O^EJ>OL`~x;{?%ajD@*<3aRscihMH+&q@s5ABVr(f`V;3_qB8PIS{e?)P zk$r$Uk{5>pPyT0QO8E&_Hm#4wt!~M;_i4E{B39yNcxpM`($T~~1kw2FA;aaRaar5{ ze#muJ8N0SK_zRgy0^;l;4Hv-Mm)3T{{u+Fov~!TlRT*jglfi!T==g!jUDFQAZ2ME= zB;$m>oto}8?Rlm8*RuR8fZyg?kIZP>`^NYG^6&ll->0X{0a-u_LZ`oFCmbIn$l<*Q zheQTaVfVqb&Uc`E>#g*i6UqK$Atca90kH^@aF5~fRG3}}>Nrmot`ItbE8Syv`hr!H zf>ImeBj@RilV*T!`_8R#50hV~sxqc%AjR*)yyYzd96_cVF?|UjkLhlDYj29^ie$*gJdzhh>u2ad10?4Isg?ZFKn`C1CW%o4i1CwV%Yu?AU{e4?P zze;^25>9Nz*Vic!k9hkR*&Z8U?I&+=+%SWQBzQl4vM!Tv)!s`O(0Dx8bLR)WL;|@w zT>cI)kQ?^%8q#OS6gu1dbFMprJ|h*XzdX{M9Fhr>9c(dtw)UzZuGd(+Qc4!+QMiL4 z_`);hfr0AM?F9d8tXx|n02pxsZQ*vG7tY!s5!k5+5+$S(*-Sr2yB~dhA58Q}VOPsB z*U5-Nv`etTCbEmxl3~|WIzc_RhcY&Su>8(n2FPLhJCFtAA`uNP|J!EM&naZwQ5=P-yU8;7KWnsm()4+;%l$;1@X zozR+Mk!~KsC8X^tmY*SGqtb7(cM6U>E$S3K`DbR+&6APMSvrs*y@9(NkA=>AFD=(* z0u&!hWU0D^Y-Y%f9U6Om|Vgr?eLNsIU7#6PO)l{(cXk zX%Z}22L>W++6`23v_HP z2Pzb%Y7zkR=YyRaAh`N1Sc#Fh^I<#8CSx>cOkB38l}M_c>kFeQ%;V2AkkiTi0O*Pa zD*R+wRXep2WVI(mM!bbtE;i?zv4gl`XQ&4BF?$A9CE(!JU{oM!q}{ufVN!J2rxrTE zko_H_rRJ~}Ou3sDpoxCU6UAtDI7gwaEnP3fl&m2J0u|app2vVTZR(qcA>u8iP={aZ zj-{#yhlTA({l_D)5X+E3!DPZ*y)`TwllPDIyp*0M@A-_{Y$mt49^M1X{`%R6iE!>l zySU-?!tG);!0rCoE0D-PKk}57kP5s+5b>mhJe!Ez8blx?G*Xo+$C~hZ znBn`uhAjjW!({v$#r#ozmEzWyCvOn>^>a(Rf?yU21>a8AlLUz@_2B>SRizlaFU#wb z@ap-kP61YAnnoZWmLDh=`$v6Ghl~;BmHCMY&>YwnD8qoe9LW!vEQ8Hp1U<>aErS}9 z64LlKjYOxB_4~gAll8#9R%gRlU{Khlx7ST}=8>S;9U1i5NPrb!=^vuxNxGn0dKH=f z(@E-aMoqqSTpkQDizWmCjjxaJ5*@!4%;9^Ii7xZElJ(Yd1n6GyCOrfEctFP7nSX1*WW)I;Xd7a-|A;(# z`%X?;vOM}iDC6H{XmQdJDBe`)!5k`?$i{t$ccr98gWKX#sV9+fd^+fQi)ZcdOp zE9cn`R-$%js*kaepQTzX071^{Bnec#tj^Xl|Cd8BQk@*=#atmr`Qxq~)PX{dL@43) z+xNm6Ys|ES?czz125oc8w1NhM5@`1x%#TA3!-SE98rlmP(()!-*ut>A?~x;m_SlYh z-xc7ki7Wjex*)-9x6diVtu#Y20J00Lz|dZ64BclsG!QkA(0&DB2OFr*BB1ggC-;wE z1Bn;g4=q}JIZ8*VEQHt0=5bH*s`;=R(4&o=7khU{P&?Ly3kn49%bs`vhlZI~ zRyVMGGhc?UvtHObpnhK1KfYLMDHs22>PcTq5i(yhS5SM95VqBv61G&ePxga3Ljizw zCNTZ~-on6D1+3&{fs(E7Qn)^mBs7oL)Pmrq224-qS!)rMv6-01-nY=imf_qlLjqLG zGH-6==$qzTLpwOZR)`-Bx%2OSd>TLe&UJ^RuulE-A*o9zs_y=;ltPvqI8-rCZhV(_ z0!vS1n(w3vn17o{ol3k^b1FgLK05Y?*z;dL9MX93ZzoDhofQ-M?{)lR56L`*awC2q zMB^_v_P_s=+fXAQtBdtH@xQ+7KNkVhHQ1LiPpS$3xh6J$1Ny|BW(}Xb|6h?LnQt_L zGCtf_`tjU|NQ9gH1X=WX`R1+@oLVuvrEp>ddpv z219%~41aYHU00#wiYgqZhvbni0(kNe@^JzrA0cWCJcOS8{oe+bapg#~)4#rt{u~!n zwr=S&3t=R|tU82O4GPjhc{(6&OCImfh7+$A&MzI{H@y&3Nz`62qy70FMLIwXTe`Ma zR`_3cw556^=nZ+`VQ-4E8G*;3MPKs}W|+kVpHa!4ms1P)E>C(b9oT$*{?MBN4E{P> ztDK2#ducu!o5B2lRM%@XGSK;}nfSG`Ut_ZZjg}!eNcE}mDJqTDfUEUT+0y`WF!4aW zU7Ll4AOiZfyY}V~7;SGDfB4_m`b`nhmN1)k=JzrI(m@hc%?l;GX(`F|?M32f)O_&LsGd6%v+W~(XBMurI)&Cp)n`S;=><(ojR8bt>=X?&{m$pGf6U4iNYf#cd$l4slBb zAs=^UVgYE-5RK&g>P#)EE=uhC5C=qo)e{S#8?*k>b3gf@G1=x1VnQQ()}@MlbM|<0?J81E_>ocfpWpSry??&b(0Rs5 z@$UBg|Nf)}ut7&#xWo$n`5b?LHpV!3=)uO3LGAyqJ!K?70sFHN__t^K>DT&wp@4<* zcOEyx~qAGpkW+tJMGRPf{wmR#+q-{`D!JM7+C3t0A9sn_6!zO*LD2cU8r&{}R;| z_<$!;nN%TExG%S?0(pFBpA5oaQw_LR`Z2J3VyG>CdyZr2i%O;YpKnd% z08}lS1J9c(;#^Rv;{NB}!hS@EV`GIxc?;K$fyw|#Ixb<-p+U8r4O*uEGA#vK+V_5Re*mr3!?vs4PIfHgg!Y zdBdR5JRmQw!Y6^QX9ATi)PoN>*kl08*^B5%+)Om?Ur>g~wS&W51$p$=b)r0XKahn$ z@k1tzFue*lf1;#;^P7PA0S{=D77ng=gKTEFP3ns1Ux(shWIXomQVzYvsTl;hj#@GTQRAW88*~ zsqn*cT@1)xGvX`aSME9{hIVzydn;8o1~+Mq8|A9zCuR~*sloHNL=|w@q#nFmzM%ph zhe&cguSPftL+0V920G=jcm)DcL@`W$zlj*G?m>I@D^%8PRRSYnUb<54#(UvkcMqeC z>&{vAdxKR$pAU?n=f86^Egv9N!uXxb_Snf+u&m7(oLAr4FLlz^a~%>?x+Qg4{1%PQ zrWd2)PLH!}Tv`%(<$B~Jw8K}qJlQeQdFHxA?ReB{jK87kcIC_rg>8!4RW({4>wYq{ zC#Fgl=CpV{BJ#{@9A*tnWcMn;trhykO|YKszN8<4>0)t7vcxdryXYP(xneUbBo)rm zi(7`RuK!zrb49vKxc#GBwR-QZ;WWt^`VG|Jwj9mb`k&uZ+=>Yp^UH9WmQn3pUdJw- ze_`jXcoxD*1dc->XC=avzo@l6(!B#N$Gen(>%W!)IzZ=VQ;qq9gSW-=m0I z+pe!>cneSP&Me%Y70WW#a%(PuCKKeq)@()!XFHXvLU?P@?&NB5@}#r>!Yab(`2kP# z&^e)z(+-06dm0cSFp?W62;v8JWR99KKS3fv;AHRMT*sNthpK4P1~&4A;_p6H(XgC%~<$IJ_l^YO`wnl8i{>+HyG z4>$9}GZLDW=&g4|9o=I>YGHQxB9FV{_%yAkUsrqc+xzM0dg9|!nq~q?xAvwDSte== z?^k{T9ZCvw>NdkskBOY4cT{TcTs-C{eVOaqRsgn0D0=#Oc%Qo3s0XCd>hJCNuEICU zv_s#Z&QaK=Ks$%&XJJZg&bW;UG|Y9&XE}5x89!l=J0+yTyU+brdubZB(innYWtD^q zr7-Qw{01RTq(mR0ief6Sf=KT9mAG+dwBhQ5^)aQD?%I7D!iDB`-}okTz95l&>>N#O zmV(?KpKqNF^R2sGSbkLZ+TXE(YbyrK{XbMWv;OO7#-|XL8Z?6})RJ+iVE5s#X7khr@a;-zn*j$xWB^Xau z3dQ=uy4S+wN+w!}s8~$@ecpg%SUuUb@><1e6u5ln4JSD@%)EyjRj5M5MF!8oE(J9V z*;pvDSV4gtGe0*U->w+pH-hK0);;li$fEwy8@TzPYX8C!)r8wuL9X8c2 z=yxDvqbaUCnYQ;15K5B!LqLgRqtf&s#wznHPE`$Ohm|!>0GayVHQxdN@n`1TJQkZA_ZP^jq^$>Z*$RR zYeLRK*gC`C8PMiUXD5_WD{F1>4@O^4`4Dc5IXUYWMO*MqzIsX^Su|Cu68$8;@;Fvr z5byrIs?YHLy$(fIE72o2yy&n2nhy-j_pR-tj%6ZC+O2|K6Z3QCr9bh-WCZ;Qt@;X!t@NvQ;oxUttpk)X@i!hR>!baJa0Oi z5`C_#E;@^f3cOdc!-Eo)(AT|F3l>-RdiKt+VA{WMBB!mlaf+z|`;06?M?b;fNW`oa z=@4ggrGvno)lXA{99bVOc^avI8kbPLE^tIlH!chxG5=Y!;jELnpm>hZP&WlPVTGEG zQqcDOS7(;G#NFcPiS(7Vy+x<3iVhj-L02(EAKPt##wsN#>p&WekXaGo3rJyXi|av6 z);+QD`Gpfz{^3Z*L{#E3Q#la^6$|g*Az7SmZ+pSiYr##xcey0lscojeF}C_ zE3jA^T0l1su7|O3DYx`^dK433$lh`ObA8F{r6_#Q2?C8++}~KdIis(Hnc6Mwn6eaKCPX&HWF0 zlkty?xIC_}TdYlq)W(w9hO(5~I|RE;$aRryI@7~C3XX7Nq+9OOl1q&WP%-Q~7Mxeh zoCDKT$>ml(w^g*)s3Mu)M%})$1jYxxW%ALd^rWKdRJ5L4!j1Y0NCiz&Z7z?0Hf7N&J*0~n z`h`1}pKn9O+-5xK%41=C-CR*6`-n;=rv3i2WMd0S7L~rR0KTUg=pj^qg(MfJVG)}J zJwA-I&?dS-?~JWxG!H2pd(&3TbwpRcOyzwM&)b|`)T=s6>x%P+w`i~*4ViS%7t?95 zS%Zo!3j9Mcy+z!{7SQr{)OGNe?jIO0Qn=AJ3=rPNiUa>#ShLcOn!kVmLZTW-->eNBh| zg$~o}iiF#%`?>ZzPw)&*e`$TIYx-P;Vt1&&{{?xgJv8X^+|tIPPb0Wg%0Qyhi5+nQ zjRt|4f{oBuM9tWIzBJfKA0{}a5yD-`kG_dn-Ne)Tr4+66lTP}MkRal;p{}Z8r+-TA zGKHYXf=FA@|NOFCbbMYfO@6lBc{|D_Bx0U4CgqScVTZE7RjMpM_nADTRFwbGHpO5B z$C+lOAcd_m%A0(mHY>)?nxi&2Krjv2IG`l#9F&dG9zC?@nyV6pmb$m)pv3igi|eu; zcn_`h;ny!Z917b9({0vlLATgJSqYa$Qw-jpFT*=siUE3o;D|Pd%C8SZ=cL_ZX62-% zu%;|dE66Acny9Ow>&ktzV`vB$PVpy<{Sg1|$$^s?9M+w$@Xd3!Mzq!WU-#bsdv%aLSJ zwAg8ToyP1U6@{L9rlErP&70*sB)J1qr*2Are zNzdMysLxrIj2MP+U|LJD`?RT6vV!Fo%Ycij?n9A&P5ZGyPx0JH#h!{uQl%TM7 zQm$4C=ze&2eg%uD_f({TIpH_uOXfW;m5&NQ;UQ7E#0+yLt0uoac~Bp-Lw&7He>V`W z9S;|@Pl9QMO@H|TQvOnhc@qo(aV<`ZU$Yl}d*)-vbT3Q~j`!F|GpHFI$MT?*vel*5 z(s8ye2tR9(g9*!bV1+sH6@-CQ!}<~2YTjSON0l|=g>7BggCB0fu1(INJPzm%2RB*z z?K_`JGxpjBs9h-^srPxIHrlBbL|;?xTOGK-^DUfa$SpIj;T*xVG&JdmXiG-SN-e#` z*JtDz#9UJ@RGtk_XT6d`fL+LZsf~C}a)N>W0B5aj)~v4&jnc`J^9S~pWwzru6tcLD&@Q2uL#T| zGt|BkQc^aeb--R$tvX~D>QJyHy~A_RY32fZXEWV@tHA=6z2)|9I7ie#qN6UOu)=*0 z;=~ifJtUgvnp3p8f$kgRbc7U;Bl9?3m_ySS!L-G8-`tJjJ^-feNRl|xk4@cG?k2|O z;Ch00qp`7%5Mq=nn9G@!_}e3TaR*c#ijbsS@IQ;f6_R zYUzj?=YHGJ!hVtnVV|1Mg%*?c+!KB{_4fCUHuG~6?D0lNiaT>ksWp0M{ZI4z#~OVjB+k*F|spUX5>%pywX; zCuOafPWHHy(-M0hE2Mxvhn-Qtd3`nV2)5FYU7Z?Rn*}ywY%j}0p3vxRmcTTtNB#~_ zr}zZ?QEu!Ui)Y*Zreot(x=}z2gMH%dlOWqmFDBErE{)nkdz*{M^%%N5zxt&IJ@is{ zP47g;xm=6}>^8-0&kPwrHhw-MunCW zUi~U2E-A_OmD=EVdwxZfST}`Om{KQsrq+?{ioJ>=L2m!aaf)Oh#LB$D%?;ozU5$6{ zJAOH^y1A9~MnV&n{nl11_qYEz^CL5mE3T4l!^i%i9Y8iSx z?88=aO6SdjAxst80xpfu(5vZ@)3R4(cu{Zu6vkKRzLU9Dv!Jx0ESKy-^zK1idc@sX z9i!CN5rbYP9XW49r9sY5K_^T>GAzSo_WbAsIV+Wr7=`I|R! z(vwBP&@3R@lX4}3IOk!g7~;V(e_BYW3vNuA z>auB0^Dtir5wt{0%AIUeu)@cBrG$^HAQbxk-u6ImZ*9aa0R!UPC3{}e4*li+>BUuq`uk>h1nt^ zS<_CfSx}S=(afC#^KVLfH&{iHVODqb7WSp2Mh>n%p3k>--hScY=7aE%*2PGI06^#} zxH^58z=K)+R5Os&urp=b%?xU*Ing2lhOS1qOop&lyRj2RXm-8EzlWjWl1QwQ1yyOpkm!XcD1)HPfs zW}Bf(1Y*!}1U;vf=4%WSz>6-yBm?$P=(0)hE=*aK2-ZjPF}qkOhdteX$BZUC+Vy13 z345PKHzU$)JW&$sn7E$>JeXm~`?pl7%QJV{bF)qJ)@lM=e7iGzZTUbQhRbe3|W`*%f=LU5Lt zk{Jr>Pqn@+alGEW_iY`As`=^QkisgQ!NH z@bc#u62Wi$n{Lf>vvS3Vi8yyZZ@luA=g!pLwJVXnH_T}CuY@lT#_F7Pr6+kv&rz!dzVv+|N_$%_BCEbgSuY_1^ zJ1lO*_S&t?jSaaax5qhwkE8n>h@Fylnm&Zw192ZRiz9K9 z9ei?XiOvh)1@9R^g8JP23*9(4S=Vc3r zH@xq?j*fZ;ew0yL_c=$vSoZLU63<~V^G_W{M=1Exk9(q0FUNzuJ;N62<}P$-0{IG;DC^YY5ZW8AQPc%C|<}sX|Fnky?R}=OO&&ZQn7>|xW#jI9&>l&IUiCV zZn~Ub1dgkY^`sWO&`Kdoh!PeOv_v80@IJP1wB32BQj6&F7VkT7!_-tI@xE#`n{JDq zC~JBXErm(Us|K-D4}V3KJe%Z|=Ka{~_+e3Xp$8%h+jY9b@!pmDwWLjkJ1~q>?U|MI zy`+}gP#MK%iV1!E(&ktGZbWyz!xTC6yWk7fbi`>pInV);eKi2P#*1HjUCaHHG!2-U zncJRURj3>4iL}`IyRLUB8E3K%d-I{e&!{C*%pJjof9)4F`uN6!(S$gO2uKrcrRuN7 zBN;4^mas=j(keVrpP=RkhP%AI>ea5n4WZeX#4f1D^H6<>CmtfBZL|Du9s-4o!mFhG zidOktFkEzgEucH7T-*z2l2|3f(4o*hX9u(54)1aZ=&=xOtFzh|*AuqF(^;w82*RTkUanFW6FmJ{gE)K!ee|KJ^ z88tdF52z3~0^J=IQFXM(+SjV$?J6|BvST~SgI{DL(5^MbShv6(SVGHIJ3JgPGg4K% z{yboQQ`QFenER-P&U20gU2(uYG$rNF1zPHEES&x!3A%BI)S65B{zjB@tV!T0*6`;WVYsf;b+y3ayCkJD!o z%vp}EYK6qhx)e?CDTtKqph#E+p?Y^_3h-=1Ay(emH=`-2H^lC!kF}z2qJsR`3Ls;c zwoZ{g^YuGp2spX2|5HX%Z=|1VQnVFQ;3{O6f*Z*faHI0Y^=9iaDmYw&_(Qn<+lu#G1~vl@&#*!e9 z8x>|>n|JRcKN(w99nC^_w?)sWuMXm*<1q9OBhwujGN@1Nx{RA0M`Ys>Pt%6Cd3}7<{dOsM6TfbL!Y0 z&xpB}fC60&P)g@&Hs&`&CpEOJXBv}!yp5wuky8NzF462j{*Lm%-9oP?)kG`CpL(F0 z&)35YZO0N=Mdv}4+6HP@#QtF=CeBKhj1&Hl{!9}hv7jLjGrA)N*RZ85R8Fern#f&G z_Ar=NNeT{8-rncyOBHYc-dv_uv0T$<^+L=my=ubTk+MRws3G|*f`^2n7VynelW$Q4 zL=K^zVh^+7jJGj)Y|2WQc@*x0{TsCWi7a$& z1xLftkOe>d6~<9?Utgbus~T2_<$MmPiR>YXA<1T<-L$K%j$B>?JDkWQ6BqsEJ##Rv z9@H!L9r8hu%S>MbHNNt6@L2JuxIM3+X$nRB#Toe6-tddGc(*1Y{XFN5b;k2_?aknP zFoRW+wTpu8($S?wiF!z%uB3W&jPu@;(`U}?GBG$j0F1jkkKFJ8q&!~Y=$1hkjA)PF zn$MSDFs#~Ro^Dle|C8`kI8(af85J%|Txilj^wM)Et0Td8XeM8s7I#S3ab)#Qk@x~n zox40Oqjg1Gv*nN~Z`=T!BT_?p0-J?v3k?2PHzLN!HSk_5advM#D>&qU6bK?4NtOEyfHCOKOlMP_H%t=x~Tj6TPZ)+~xXe&X+ zr>=K1qZrMdJfDYf8~Kwn84Zsn&1}aPsFP>wU*Bu=Gj{JVwIv@N+ z9E>&gDgB4U>!&|?72$`5^UY?r^kG|%^vko}m4GLF)+xgdUPMmv%OK1I`I!W3xx@E~ z?o62?T&ZdGI_baZ6!_9;MO^sIIJU7!!huta1}!xfTDeq2w}-gW#gLX3vd&0gqBj9; zM2*rHq?P#a;VRr_X;}DNZUAWpbvK(q%gco@_y?yE7t+)igT0oonYHRUOhi?ot3alb z{?N!lUz!cFwRRX>y50XiP*cP!vO#l?TTytt35I`qAzPIQ($2r~@J}8pxEk3=mH|p$ zP^%b$pm`r*>6JM9+nk(Bc&#F*RJIN@nghA`N-fKH&w{r@OCI>Wl3^zx1}buz{0R`z zHYKSv%ujWjmAzodhJ>>Yv{kp=5WRra;IlC+xEBWMkzp1bt$2uGC3h<;DK2)Z zm(aqFBr=6?3kr5BS#*Os!&Ydwi8rw+AZ8z`y`zT-UbiXC5UA z#(P(~Ef4L;wi>Fzar@~YE?2}OuTDd7%UV8l_ADg*RVH0=$Jjs$LSUNPo~}W+%D*?m zKUJ*lJAbQ9j||F;L9yTPa~!@8Oio1ar2QwWx}gPO%$$ zzWn5iMTLg*ACU1sdAZ>iFax;FU%Wg6?$9HR$f*SC3!Ld145N9#dn{l*>}@1nEUQJO z?FiQ0&cx?R0)-HU(hxS*m>_4mPqRoc)GR^;ALZ@%jU)x#E)TPS3Kn|m$vhy{C)J9v zXkS1eqs>eIOS}A%71oF46osHzq&ztjejbKKR=X;c=dM+LS8i7U(c27l3=8~-l^BaK zc=K(*Lzb6FcSc1e0aPpIM^d6p;@^Ya&h1^YhyFf_ovh+K8T$KF(6{`m6ZdwkudR@v z?&u&g?V&mcVz82uN+w;i^0k?68U@)%#bN`EIJdOXlr&R6$#Jgdeqs3N$h6TWf(D7= zOVSkhnGWQ$C5DI!{8-!CC$B$a^1bqR%=ps+6A{|Ud4p-%f)NRJcO_?z)Q%r4Y&x5v zj%!j7y*`25E15UouQu*Zt7)!4RX6LZG?53yZ6{@URM`r)`UIT9L!fTdh$VCf%ppul zmh)18^IHJCc^c62;<^#zkHBMw+jbz=HPsjj{T(K^!R#9NRkrAdWWG|{(YGD9&3YU)C8LCpu;b^X1J9pO zo+qcf!xze@Nxe;B3Arh$bR3u^B!FVN`rfi;u4Rl`cb;vEhV|!bL21@p3RT!^#YznQ z)iJ7Bc~tRDJK{Laxg(MbxrdUo5NJuUH2zqAvN6Gje4Jf_*ht51*xx=Qc219U>F8D) z=zu}+-qPhhb=)SKKiBay;yZKRu#t(Et_fW15*+tlz@1e{5d8Iu>9e_m!A9e>MT_oh z-5YBWr%#`5E818o3W=5N%WWn9wuyQ_Gr~%xn>^@vHIfR$Bt8coFH0pS*co|IFES6p zRb+z^)v6ccj4xdi+s~@jv_BxJ*UyS2QSH^W62>v2-}cZ~ulk7JN1CA3LWUQyJ(j~A z*ql0-Ff_$X3!B*?~0X%002xYIvp+pFUu+7?6K0XiEa@i1f3!RquJP%GU#8O0NIhHz$FiRXwEy5#!5E{f*ADST(K6t z?c56^Npnw3zoBV+9c=3E*lc6&v*VDnc^~#Y&jb?if*6G+DI;zjeUR^un;ftB31=!p zqtJQ7YV47J=yQr>pN2F}J#H#XfR*artt|~-r7JQNWLFT&{n6XGKwX-K%(JPaePEmU zH5=GfpGKxG6N+*1X?>PANhK%7>@+zX$71xnI%1fE;Qns=@s4eueOA?|v>5Qodb!Ww?U>2&9<~9oWoM-|Oy z;5rSQS?BtwQW3^28?1}gkN1IH1l$=y2}b7J$^x6lNWw+pA)V~V5qk!!0$u{wCr9okPN4tJ&Y7|_7(t0tQ{nsyR`%cVR zb6_&n;5uPWZcgY~xFNUpP? zA5->YQ80$}U>Z17$8+f5!6ZyhjBkK6!H`76^qWbYEb!Y15@5TL=d$Z2w zT?$)^FPduj^Xtc*aAAbar_%vBL+wZ~2R8#P?T}`0GuPigTCtkbAsAiV-FeYW5-NH! zAV`1i-|>-H*w`8}oWk^q+tR_5kp;y4>M{QmB5$`tdL~@$WHZ&}SnQS!xFHjo1oT?H z+9#FAPe;MX9Z~|5lmhlkq$si7o-bZx!~4nmf{3QO%!L3?hwQ%DjM)CcANttNX@|-d zefXo{da5c?au|wRCyX1aI99BxK<@RNL3mPWX=~_qy8zbXoekD)+fXl0M(*bGgNbuQ zO9FgzIVMq}%Gf?0gZd9pd&k^fM(t)!mv^m1ZdfxBvYWm)JgJRf23yw}XlVk|tQ8=N z<^IUXh$uZ|#>Piy}S5*qs|zg%S1$ zDht$!!YMZJRjc>#z~l|Sn)@($OEn_omSWK>J;|sl{tbwM(8x+o3&lx#ad~)j!Rcpb zlD7Sq=F&BqQaRJmZ-fhyO;#XF&~6tSM!x+=o97ycm@(3`{mI1`mv=g7E2_j)T%?EF z1(?OHzq7+LPyw1jk6{mCRGnXo*ID4sPMz;DTQCVQZGhWJhTYPfHb7f9{_@80Z+Ldk z1&G10EEYGp3{bqT3wpUQ=9z40l?ESM^MgL(#|WUmy}|oaVIy=#n$Byu?8GXa%rD|d zQg1F0cmsnybEJ~BaOk7cWm38GqNC#ELCW4!m}foGS4gd{D6#~LkUa;_8%kXcyiFk+ zcJ^RCPW{(|4(wMC&NN%!q*GzdK;-_#GY-Qxe-ZHYOwdDJ?7|U_xRO!VQ39PC+~i$U zA>XtkY`-_laJ&hECi(IlbXj$5tY3eJj0NrF0FM=Lr0(O_+E-? z4%JoGLzKDDYvHi7B|oTfN|7D`;0wD|QXxv?^ts4)uQ?^S8_ht8=N9$M&mAAVO&>9N zYf5b*{kGa~quJPnC|TzAEg}+rLK$lwNo*V+R1M_IUYOx znM^VGX*>YA;&M>jf%lpV+ou`tRL8z~pi)vGGvHqK&o_47e(Ay~$9?fFr+NT~mMNkm z9{a8C{JW?U20h-SS020f#W86o7%MP5Y5H2h=ci9*YN)J7UG2!qJJ+U1Ixg(gQEi1^ z3m#Iuj#0&*I(3RNA9wH{J46OWCn|bUY{?QlgiF^J);^t$$T4u?G`Y96@R(wdDZz-> zP}+ef^4rn(sPh$6-rjXrYc?-ufl*Ctl#8PsDC;J^yb!j*1A0h@JTw(c%e3yWu?3i- zBtcw@X^t+o*RU(hjV7WgG3tpG3%EVr!o4O$W2Nq)&{3Luc^<~5AVjECY!0bn!8Edj zKrgrq15qjP5Lt{l329@gx^5{Y3IjXBoU(4X&Aai>w6xm*2 zZ_BHf++G0vtqEM3!VY8dL9O*^S`&72*&=?M@!`Rjj?l|%_>V#Q9 z_ipjJo>JKu8$_2%jv&uwvlF|v$> z7d0=oz%b|~YY&&v+}Bu_H)&TL;i&bjJiG?Om#M*`CL1(2OzsEVULwF;fx5gYwQ_k; z$DjHlMQ7~0)Z=@(-=umR*32>v5|%tKY@FIlLeDYhO(WJt5DlnzSNOAy)%f`O`X(4k zmEBMDt$aF|f><9ayA-&wO@x04=9B z$Bx_kgb^XbaY`ho6PUnEt+i35W{4YCQrqvt0v>XU?)Art?SZ z!DAChQXTh2Vl!fN;<{gz3L_E~-~lHXHWqJW-584*2Vayj=eG95yeTd-a9P!x$kp4qmCl)yPk?p4J*E=&Eqp!Ec*47DH^gV(| z_*h2C>s1$E=uwdgsybCG@_+0nCaLX$DG)5^C;BxDdR=ysB8P4ZoX>(0LyZh*9qzSS zARv-p1cRhO9TjrO8R6@ql{_mCaX1ZRDlF@#&59znnqfvdq`xT9h<*Xuv3^v=ZG~-e zCG2>n6~&neAsD*&`}-^Q54{%s71Q6&b3vsb$8KdtlhyC;7;59mj@?$uJX#Smos zoP3GO{!S@Wv`&CgPi^yKu}z02#@}2NfU`Yj|z^M2T+v?xK{;KJP%`?rhOuE27u}0OWJ1G{4%ZY3tX6) zkqV+xd#FL3`MHQx37LMYX6WlcFO8eC&gXQpVgb2ig#j&T^E@rx2_rGuw@O#P^4v9} zp#Nof`X?G>Tt-7Hf#y|^1=(OStjZwvn<^>2Rg(BfBZ$0ws0&?zS+E#y2Gh+va583( zz{D^e%HKVho3(~CFc?zjR2ygw^C@qA0qhwfgDnm0vu*nS5m#{A?;XT*b$XW}E`YF0 z7VmfMJ2vcbnE)kgdvm;fpbqUIY1PBdLR`Sq3XoLX}(4s1`2*K3Ay}q3w1-#ypnngYfbVG8PQap>{ zv=apW6$0QOnv{^wnn9wG;0mAz#>#xF1%9GWqRa6kPUN8!WovJ+Wcn4_6=&ojUm&)z@xsB6lNzC zf&sKT6B!cIlO7di4>COQzE!|O)<;BklQY2zp7pCSP)Vtn0cue5Wi`6As z;SP`z9xX}r7MqR(6o6Y2&b&-F<;ZT*s(v-w`%v`jSG(!D`hL_YGM5=WnH`;S$9@@u zrl^AGCd(FwjccS6!F_S8+?P?w1o@lID}Oye0(#p`Zs4ff0m0X%oI%v4h%Qf%Rz$W? zGOTU}G(B7^!%LwcnGKB;V74V($x<~^P=S0h8+>IeLLUN7@oj`kiX_7iM;Qn3x)TSa z!3mt|+dFYRGNPlEz#E6_GMxwyClxgRFu3w^hdg3OK+@9}bdcV#9grfdQ)AV-F#~ zG)Nw{gLRAm)IV_H3TTV}2y{Jm6!rzJo^-2s`NP3+2bYoyb?5_Hn~fATddhB$AS}cu zXM98XtPmCgP*!avS@oW6ug7;GP)Z?D@MnW}svF+jVfkMO{dzIICpua_0@ca`MPZZp-m+W7=-FGJi6ZdNZ2g~r*6~i(+ok50EHiwuV|f00^sSvb;HkeKdp=vnh;b_lzIZm zY*OSkSCTG*%hy&`5A}fLE@=57JbEDDXCPY!927#^vKZ}1Vc7*xAC$E!Opu9TbhuT+ zK)pgd@K?;O?Hl%MDCU2s$=+YMyH~UsKxu?2I}ig|W|w(4^qx5_wBpx#eWdf#{jb;= z`aGv%;(2D6*rd!99TWTr_@s7R{#;tkJ6l}=(jEaiN67T^H8}4M5;o;2Pp;_Z|7yAL zVbNyTda8XDf*J2nqEvjAh8m^0pnVa}vK%BZgx?WcE=;}|<>O1vYd({h*wW)vF0{A=sv8`cgPep*Sfbh62 z{ZBWJzrNLv1h=aM{)V$lH4QH$xALZ2yl8m5h?f0Cy7A$QCC)%f$moY7L*dnAzD?*tY42clrRB=@7Yiht%8I6G9m>5&_S*JXooS9 z+h9TQ<}z>-vSGSWE95~&h;$|**a--u85|QI!aa}uYE?j+3&AKkVL#)0>sJT9>H`As@%6Sw-$eS($A4nG41GqmY+Al zsi!DS&Cs~m*i%MhpFu4BXES}kOu0{^Ge+o_AOHSO)Zk9w@Y;6GJWHF0fe)m~i~%b< zNBVRRC=YXmP}`{e^c13liPrVJh`N2tl?&l}4R#usNQXTA74=*wS%TpFExB;vcOcOm zlDM5?^@~xlNGr~ysLG4Qg5~$Sq~70ST z=?HWsbQnVWRlG_EF2E@E%tqW=v@Dp>8pt0y&KC7UBfyAg}w~MJLJ`uUK6Rhxo zHOuF%zdq3K3)sv0;|N@g_Jpg;0>`ZZv>1fxQ&wMfOk6-fAnRY*Y9!Chsztiw5Sw|G zhC1Y1f8vXvz57@$-%n3-_4+TJ1Sv3R#n{?%9)A+vTo^5=TY^EJ`M%ADkn8}UoQ;&t zH3f*AZRRCY2{0lfHe1&UyR3)N!+HuF@sDhFZ}=ThbmCb(1A(2Wi4Yge+A?w+zg{v0 zIb1}*c5fF*JtERJ9rYDJ=gR^wrc9g0(?%XLJcFlB5TCk@Y=$8U6y%mpS0enMmOic($F^)m)>&z**BmM8|-rHVwMwZ6FY8g7mE9j64U#=KFI7 zT-96dexs;l$?9`o{mu6yrj&$r!X8GYswK$pMIg($Ipgn@PGA{fT>)3L1Qz9U$i#C; z)&Sne=fHs-?c|yV@MCpLti3|9(Y6BQ6?vfqDuKswiukJ0e_hM!V+7+FC9Y9(0+(cv-OpLgimojhRoqfgxXL~rdUE3fF} znV5|gBk!@q6%Gsyo7yQy+L@-gy}NI}JaZhUs>|2abZ)WCy-!2v+O$rZ{6~f5K*P?) zmgT5qm|d%>*u7U^6^q+5Gx-(BQgIVE-sG9ZcSL_fDR}C99-P~ZezVh z={yjE1l;mk6e6JGVFop9{=}oe^+qV=!0?Mi5;ugd3RKlv6`!^4&G*oO3rEs^d4xWEt-lOgl zX!uCn_pLkrvy9Bsk!_DpTLXNBZkQe4MZzl{T?Grx8eAGG;f)=afcch;m@^o+aP)p_@$o^&;hcj zRG+-$PXe-={%~SRoT`*L~lPFD2j~|@%U`H(%h>Dk8~!= z#kklp4b%ZPw6C?L{I6hP%}M*4z^%lA7QokE9P@Agq+|n(=U|_FJ;i^0J8Khyo==So zeEct;$8;X4J5)tP<00TR$NBRs#UzBTH-xQwjYnpFyTb2I7!`|j7x;^wkob>9f)f!U zPOc_Q)SV5nopo;izc%37wW1Oc=r+kxf^PLO|KT#B?sov9_w%EKi)+tq<5%eOTwv8I z-EQ2B=+CrIfp-o}`nRs!`JW$C712j@&qyuajvK$R?^~&6j+xU5ZZ`1KAct)RJ&^fK zBMqz@#1lU*_}w8tdbxSCL=KyPXrZGCDTrK@c+o5FOkk7H z?sFe?4F(b%A}D#MkOz2Baf>iU4FeiO`P~Hw#;i-qBnu132qV#JY%$cl0q6<2A0*J zf84UNvNEP%t;X@gD3~bg`TJoKQ3~{ljfz;q5K|D<%+PoLj8ME0R4dJGJ@*73*WXn~ z1J0!hC=CBqX8X_eWhTujNDE|IH^OS$%$bT{SV(Q>`Ypw0>?KkZtYX(EE5 z!Ve@(WW<&ZsxX#k92r~Vs>C~fG5~yPsAnQ_HXzCBR;1F{!06QbpvS*T-xa|qFTV6n zyH8MrbkTN_5uJ#0;rz_Vw#fy0Vr0+E$$moEPN)oB&3YDq51Sgs=3s!`WrU_-4sE}q z4id^+_H*dDP6a@=a(@_0Nlp99zT_kO%-jd%>{g_wOm_((6sbN{+^@_mcBc!V$(5qU z~vV~(icQ!D@i}S``U9N1u#b*<6Epc&<%cMK%%)q2ZYFqY`=!n`UOqYz5rj6|f zngz2HA4cIw%tdh-d?7$KVz?q^*tsuX7i4N2#JUt0tcOhHu{N1aV%rmV^6kec+e@qh zF=lNa`HU<9$XWn$?yf8P7@!phf4fjJAFv>%L^%ga_QalPNm1Po{r!90(xGDd=u-?d zI$>bO!qzCL3FJ@Uy1hIzkm2FDwyT5lr@le=L0 z5W|OaZP_tWbxYUnTZk3$q#h*O8Z5eM<$UgtcZT zwb(1}(mIKX5jq9!{123y^qm3ZzA>z0uJTX(Z35e>SrsKp)hYjg!8_iDy2UPedT%GR zG+tf*qQom#%?=sZbEtkEBHqbPoczIgQL#Sh$+ljktS=@EZ6kG8w_3JmRf6t1|A>9t zKABrw<@DeXDJ;p9J;X^B@7gqs~?5FAX~H$Q5=oq)Wq=6ancMn-V|THd&p3A z<>>?h@7>&*uJwX@pZKu7T}X~`0Ch-`f$P>dJs41~pKvjrM!nHhsYk8lu?I3MNqad< z&UK2ygY-1}C-pKN8nH&UU=H`I583?^O;rsBp*2N2TC`)ytGRmg;t^YS;cB=c+omfx zcRH76YArS(eL(b*2IqowUjf4A-H?_1WK)4vWTE1wO`V!LdVX2^^oep1^ z{1JFu(n8fmf~AMeu^sD@kT7)6wx}ykJYcYL3v=iZ6{>!l8oX}TedXhp*8JKr*D>c> zHI1qdv?8-^tWR}<`3!34X9{8kmnIV=h~(z>hX`O4paDQ9@Oc!A26mjfQ1y$}%Uy;S z5I$-@{dr!kk_JA1Opaw+#_OU%PRTj8hG`#(Z!xBafenhx1ooVd8JQQcqv35P+lu!M ztJZyzXmW-~LOM9d)Ryz!NB^kD`j+zUh^%^o>zv3|yH$6Met{Gg_(36z%n`t;p7W`5|B@RN#`MrA5H}fYH6{Wn$OPX`6{I_vJ<4hy@Yp)QpKK)~nj^bA$=m*0x8N`4JTfM<1)oXmV}o zDA;{nQ}Rl(LTHQn^5LW3Y++7WN6A)qipIOOPpIa{-kA6NhV|`QRSn2DbP;o?1xem} zM-h_4jOQHCiLLNF89W^RIF@kdp$5vr&?m}evR5fU->CKKF(9)QR20PZ1T!l7=h5#L zR@+iBg zusPr=C-vJ447({C^Jo-XTr16U_22GDak3QfO})L3Por8~KiPCU%WR@^%q9c-*IT)> zEkUdDVm4j-ea{@BPTNP=N$4j*baiIxJ1sQc+~e0}QVdM>zQuUtk{34Z!`%rj+mWhh zRTNgVx6zv~WN|FajSd-?tfJ~Zxsa3>YUjJNqN%Vlri9{{Zb-3)9s%+0i})1ndnAqY z`mI25@oea$%nu?9%|*7P$D6dFgl6p4xzZ6J z@Z>|ZfQl^y$eqSJPZdENrb8*;mK1v9LYev7IUN5lYm<56i{5^ zh)&aw?oUwFS36N5!=3kvJagx6{i!ldq7XX@n#n1ti4K!6zH@f>NIzETwxs7|(31a~ znga#&v3>$ICM;c>5u=7HDPMRtMMshtR|#alW#tq*7Lj4}4TBDfyUKSTla{hPG=TYB zrtTKgR!~gdc{!Vl?5$n09SwO@c(#$QHj#bP{rgH`?frM$cpCMH-u<>6dk;sKxX+fF zTTHd$xg@8O0ogGsvY9M+MFiCQfsCy*HI4NJ#VaF?+;y+Lrs39C^$+o?idCuSfKm_< z1v1oC0p}T8m7@Y;CfY>ALT0V{q~hLMF9vbYn%ZHNOWHp84fdR!MzWi{7EvJ0U9F5O z|B|({_ax6*()2bTPl;j1;7C$~S~9$cRsA$Ia`Nqo9;y19=R+HPP(X5YO#fihH_VXU zXWmlliCtBI5u}tRWH>|5<$iZWr&+YXM~cXEN;C#_6%g_a@-O{%Vj?4TBTKBpNqh*f z58~`vYVqk+FotLt7`C?6b8|5`WnRrTOtGtb;Wiq|pqri;D3#gmsurgl#SLm{)D7Jr z=pl73 z5yYKmqFOFsr&>^9cNfVuTE(|X&}Y9{CZ8QvKG$I;hQnF1VQHM7~Ug*K}$bl`$U@jJ!F76`a@<|pqSpNIaK8hkqaHCy5B%}{!;j#yW*KBt0Bv{JU41>4k`&W8S$_il`S?=xP ze}j+}kfwPUch?F#Sz45=WfcTbIt==9{++z}f2b1-kgbwc>ckgPn4wD@$SO$fYCUa< zvJ63>X8Y>}Hhx^h3NWNV#HK&D4zyx`Hud)U%;?^(vPS%=c;FNQ`}Ur$C*Sx3SaVlZ z&Q5Gu1!%dm#IShD( z{zlBos|B5QJ$`sBmdM&>{-C)$_Qs7hhQ{r4Jp~u)ZV!5eE`kG@>m6mZvI`u`K!&>KRvrORBsc(b7Wpl&M3=& zi*zWl!#kxd_jKY}Z5v)UJj_;vN1`?JC>h^X{ik=bA_ciPq5Bs934WR(O_Qk$l}#I) zJCF6u%y?)&WE!rdL z?u*G#VVQfo;>}+pT9VHn*__;XldUX1bb}zM0{o8!5Y7zXxA;w?Kua0{DWA7r{Ygkj zmP?A97qg!vEpIA(Diy2l?}^H0zkR!zf!(o8E9NYFG^O74xvh7L>n{|)4-TGv|LPPq zwd)5Nxxzzd33=`jyz#sxM5)Lw+Dt%53_tq$#bIjb)mF#@ z@sMhej<1Fi(>rUBj0!*`{IZt;-&yQS)>|~0>lZ4~5QoXfK`^{7#$`}OFKMh#M71Cx z!d~+n(O3&~#LO20v{HFr=L{k7o=$=n*e46~qRtzAC0vBnE3#NB2dG*1!AMq~G3V}u zDxu=9_s0KKaCr>qWt=vQf$gi-Te23Ym;m-jwIR@@GoXKRyi&m} zM$aBNJ}`Ei(Xj_@4H6(Nyfcl;3S2N~C-~F5HUU_IC%A@oFrxgr<3_vEg zhC}~YcIY(pr*Q%!!qf?-aL`6f1D=S>AS^HjG|Q+B$|0$xsbt?IJvO05NS_u)98A-p z{`JYM-hht+6HV5>h1POuc0;7Z76?VErX(x{G(%1mW6JlryJ%oWzdr44z3j_{=pK@r zQI8t5_kxDUbLg$hmVe?hTYIVw9tsx$yQOa+$H;M#->hKeyGoS~JcDTUVL248s-agz zT^yPcf{;PrYIVBT2jlu+hU!x)Crda``fQ>Ww8`yC#skv*eO-DFPK{BxewOUpvTqjE zSx#5{<>r%9wZ>FTR=Gr87@q~w&rus2A2FpmKY9klGGs<^Iamu0n7F7RGS~a4T5P66 z`DF*x7n`QKCn9G!&4Q-V@`sYFVP=d!$Xs%A&UnHnPS85KaC(4EVFUp36IinLNAPsXSUWKpX$m*-`zpkb^l!k_lCP?^%)WN zA7Uzupib$e`qNWfxkCNB9$)P52HO4M0sL4bUKZH1;rb(ie_FKf-*Fi(|8iD}%%9AD zYh#oGVo(uOM zOCb*~LZqyn>+kFOhM3s0+(-i`-haC^8!F1KT9Rgq|5(@4aQUaJ;Sk^0{=a`m@FRFe z^3Ux5V_lEH({*R^jpNZl31O35gZZ%ahsSAk;t|o~XPL@?8a(qZOYgxoHM`Szu zk3FEznnvpS&!n&h6%(L2C^HN_v;(51 z#KCs!wlY10RC`}tVP5BS42ZhM12O(Uu*m%e)hr!HTvmfTN4iTNM>V1yJdR`x7w7!w z3?rQkoTifXbkd-oY8=Efwzpjwx6_?}9|R=s9RD$pi>me(sB?V7Uj_1cS~os}GL-!X zVZEuO3jvTO=6xGfaAz->duvG>XbB#jN& z15vFUIqp9mRPrtE8xTSCroSyr7eW1TJR_(m#oGi)JN63saBv>~;6+_!syh)nUSlYp zd1zQR*P%g9sA-`1a@0Tu;Fv}5$IEOW+0z|rJ5e|wmL6_XD`I!|jni4t6J(gC zPs);)-hdR(b)`zfq-+q!E9e6rfRTGzo6VaE4Z{f4;;B^2rn;8Uk=Fa`mQpwg&XqG$ zeGcPm4poikONyZwF1qwU%oT!8&`FBza9bF8;t)QReLQ24Iy(Y_ZGkVM{lS+5$$9i< zU(hvASu>JYYgzekvVrD+tI*8T2U8u`k%UI9iBn=Q_L1~-ff|=rWNF8W*Ud5RX zFHyf?iM|dwkcoN}(=4p(^+E6V93vBuUZs{lG=)68>tX5m<2&3*F)j5&^#Swr^KRih zxjmlw^T-YF4jh<`TpTvs7x-lw_<62-XXZ|nYG!5cku<$_+~@K>M2P|CpeXJ$cjDIR zbw>)C1;V)LO55x`9C(k8W_gNYr^lFM)fkB$hvlD#?y*{e2FRV9HhEMX$@Vb zbtK{E--VP9`&T-RK}uzw%zd0?GK~CCrtW>_fP&7X+Tnw$Peh7UG!HB4Bukgy+%i!DYX z8FB0aTo;YsT-JPJRGW}3s2ghO7VLKv4p z`7}LDYNJA$^T|OK%6-z+*RDw9oer_j%ijMfHMO9_#=+$cGfjDCoiWy41e3zwJO9e6 zf?~_Kj^C#$b#;?P?XcY5V>w3}?%Pc}u_d=neUn?i$Z>ES%2cY$ul=l)3GKz3ct!Th z*CHrHN27RDElHO1&7t1h2W_C*>XQ$H3S+Mv`_OEVASYiDMEbrh@QWSL)a|al2q5%K zylZX_^q4-FL!j|A#RaF;t(jmW|1>0!sh>q+?%W(A6C!4n_qnzIgwTpM6`1QK>gvhK=!af5+HA@mi#^&!(#@}H zn6R(7_o2*?lMa-fZsfa^i*_lw-+C~1n>Nt!_LPgfmR2PfF4fkxy*SXhwzbybq-eKx zlnc+|s6&ZXE9Vjn{?J|Ae@ZL(`NN3_^41Brc-p$$K{ui7k>l%82K}cHAwKn=TIVR# z5BV`!f_}9?&qA$3apqILBb$xmdFAQ@DZkL9J4%u7g`vGD-iuIDlA{k{b1G>1caRr% z_^8PU5s%{u@`qI1*@0i!FUn2_oS6>r;EAzfSJ0CA66E|f{x%;?Fv*FQV})|v#)yiO zw2O5iiA@2GH;D~q?^6|dt4@OE{CB19R5kHYj-4(OP|lNGVE9DqJ$+MVi$lpX%~A5O zz@&Fx&R=D7gBK=1H~HelqCVYNlcQyq$j(rEGwa_y$9P#YtsC^`rt{C8tQLNA$w{9s56VspdoTyx|B(gKPx>PI+Xym>IR0B3~Kt%t?T2p~|jy;NU`q?;h(VbJCAqm^nn+D!rgC zt7BI;NoIN0-6t;g)c*1F#}|7w`zIdeJk-LZ$E7JaL=?ANQ<#mclM$CVQb!>-9$^K& z_MA0)D6xC=if?@M8;b|Zn)80vu~E@(p}aS{w4lULaKB~EUlUW(A9!X_A>F)xU3`s- zLV4z?1nXJekRC%&@>q+UbzlIsK59)KGy% zmR#9=B;!=iIW9yp4VKcM}`*=PVTK`3j zmqO+MR>v~2MP!*!zH{-gwoGp0$**xadov4F&lp_CBIsR{U{jT`b z80Re|o|dOEX|BW_*K`z(je--q@oU2yThEHSxTc(r@?6y=1J3NP0iWs|KnHFoR%9KDE%SX%-GJO}sSH#lau&(DHgin8{6Dhpm?-3(UgI&)bFQA4O}LhUAEF1w_;7*eYph zM;S``t2DtL;cU8L+D1j(=SVf)Yv-A@N0Okkjm?`{JYk-P#yQ!TB%0bgK8e5oxqOqJ zOLG#lxvzqnXY}`Z$y9VB7O_jX2c`+z>c>JJOmW!Gu!>48k*LJr+XNw$?BrVhQFk>wi^ssa)Q5%V) zz`Dqccu!L4r)9E1#hEMXG2i>g&|cmocg}MKG4c7zZVd~pXD>5nC+3$jdGUbIe#~V+ zl#WPKvL|P6uz~PGm8+fB?4uD)RG1>KYH??CmudBUj_FwHYa7qhEEQUeb8!EdY)jbX zu^ht6ug;(rrkk*1v{PACo=9vqigzYY z&ML^*so~=h!P#oxE$351hAIjz0y-q`AH-!PhH3F)-rFY*hnt(ratU=&JvF>NI2kk{ zR}u33fpNZ1&i=(LyZnW4@;e1%_gp(W-96vSE`+l;xZH238>XQ09xfRxCmIPZ&!5tX z+FxE@n>>Z>j4x^loJvK4i4aCn<$nz|XI<*-#u7T3zsj!J&?a;Yq{1=ho7aI5`sdJu z4@hQ!m8?A$6r#v-LN@6twb?LGkuAb{3pjdz+t2Io_NrQB0!29!-+=PVq96_)vLP$M@%0nwF@H?wjWwP7IZo zspv{mU6TJC9Ejo=@NcetqBRnd)D9vrxy4Z?t@g{!oE14F=E~PX{UqF3Hp#Q*gi61@ zn{ZsMfzST@k&gJ~2=XECVVep^)6;p~*2$mEstpz@j!ddPrWj1P`7R`*P{TmFrzy*8 zFfmK6H4x?zA@pA*B=5c`wOZ}oe60%NMY?oRZ9O?q89(sxHW9v>bt1BeA10xUY#3IO7H|Qqx z%fo(FJZSl(I;xJtOy?8>7pxC!S1syHbeYL~3Fb}j^gX)YY-Wt`SmHO?;D?mF`(+pt z4dklDB&q2QG`m%n;?q@%6E4vulV+LH-sipXkk3znLS;iwvF`b_( zT@`KQC6gBNvDqyokyN+)T^2mEI`#=S> z3U|<}cC2jehAC`1336D`tf+A1HH6?O5{nHY2FuV zuur#R_#_xRMmX^GUzw8ww66?uJnnwDJD^f*sQpF)mt$kGG&dX$To1eO-rX?%Z!y|9 z5__$;eCOO(Nzd7ieVXe`)1%acNTn-Ht=4|snbi2~$&o|b&N+Vd7AlPC+A;$Y5NXP9 z4hx?X(9}HHOlUxIPP3rLlWaRFb*8K4i+0(vj+5=Oc42<0*|H(|z(buk^!!A4n8Z+% zNN3)tA>V$%6uYm=h9C-}!o&OfhsF4mD}yPImRW>(=N6d1cqJGy+WJYBHFO~-BkxLU2fg$vVhUh*~J4W}!McLNB6 zlrgf|;W+<&RN)W=WH0Qg8(mJ{KE_ygejxk3W3|&&camZL;>;+*sl=Md&H*{0PL-F# zUOvVodqA_Reg1l!+xX>wRYX{}Szcz13X5qt*&@IF+oQ`>c5>O~WX;sIb@DP1NsY9E zb;T{y*&P$Zd39-`Z@92&StTitAehEMMwgJboSp82~H`uP)(!<&{QMJwwS!TN*i=L=l<^I&bj6-Dy4|Gk{>OdaJ|(E18y8U6k}Yd?|Y z26Q-F+vl%uqEzQ(D%3H%MDq8mKTHQOtbCf}-@lO)z*=s>=U(_=Wy2Sb0PkdBY1#kx zZ={8H(S@m>TwCZ3J`7z6=)$8%IKK^kx9;Qbz`O3qajp+vfB%EhUV`NL#2qLA@4I-eDL)VbPNDtlJ3^4Qn zL%f^cKc4%(AMfM+`hIvhj$t;lXRW>WTI-7Qyv{|qrn=IdTla5aVPV~Q{!HN|7S@ey zEG#?$f}6l6B7Ab+u&}UAY(OB*=O7T1ri-JcjhzJ+7RP7%PiiVS&ZHgwt6GORoC@!3E|ZE z<9)`^HF#SO|5YGcrim`ijo+)csu+@Q_3&}ue9O2y2)cbsx~)eq7OL}F`D8G&#N|DF zBqB=!3AII8A6MAtd+7T%`m5Z%8olz|?tDFa*EgO{kf$DtK~1#kMXCNQ`A(Gu=Ym1v z&=YBQuOA&NF)6xI4}3Vc1hpf-?WXS{UIu46%-dPcoKLsRGz!M2MnoJxKc=uu`K}Nk znq&Q)+=N_VS^Wxa!|2OAS~~vAGG2)5u6gS>QA(PZt%A$^G?veFEEHb4qAoDeZjRoJ zZ0A{Yqp~g0;hUl9PE&jw-KP|>P&~8%q9yUq-9IeU0>wOCMQkF$By)L0&%Uu>7 z!QGvet=%UMsxqfw0o^DC#$3xn=eebt8rCD=m;ehq%mxb&IKl>A_kkA{7Vei&EPUXd z9C#^Y;r!3p8`)X7|8tBdaQ#KOSD@$5f%jKtE*2IJuGWrVD{E~(psR74*E(PwHC1sl zM|)lqb4ODPUQc_c>n2!|p5nlvy#?5W$!ByN-ise7w5C@L0Kjvd$`p;Luwo)uQ zYMM+SM;8kwVP1Y-eirFlOiWCYF6NfvFBKI3yE*We6pJ+&>?F>|=i%YO>mkVN=wihu zASNcp$N!k`@nas~8$7OF4qy{c9tT&}|LWv_`cbfOHFL3X0^2w`FkSa+V(RDymSSPK zzR>^v{MUV2c-s7*D>=CS_hSJM$aj5)Pk@)7?|=ISno3@ODz0hcX z0e%rd$^SI?zfS$1Oa7&)&R?1e2?_kQ>0eI$v*{aG3m1^1J#bO5^#7Tg|8D%(lmFdN zlJEN2|1uW;HPHY06c}mgTatYLJ8ROn#^~NwU}4E(Jy(!>?TNiLLpW{l#us%JAIPjq zNccR7keQSq5bN>nAXOHQ-w%k#H`@!|R8(taR~hm^xLBgIiZ1o+(~B>QUOHuEQQ}#= z>>$M>{~UsaP5xUm?l}|swD3e?qQ6rx%_MU{?6hzUxvc740z39bm1m}*46U|bDA76p z+BAP5i+$s+=AV9L-N4Dw)69SKC@TQx7RR4{eY!!EJwx{A)3+%`cv=M zpYeydGyd_?*C(x$1DL_x)DPq0j6S<9)8xS$!VaWVxqmhh9xDD2 z2QlZX8{Dv??20uBvM#rzSz#yE!BdIsgPj-$#0s%*ygM{Zm%qUiE&h=RimqRn9`0>=7a6NeCuLxWn2f5_g2-8IMM&} z;;wtqOj;MEXK}PSvO(2!^3-rK10~9_ebt14fMOWVCO_qz;kf6^8qI?Rda(NTf0!_^J;HuqVTxg5_qe+?^!H*u6T!X+4$@sM71d? z;oQ`@t3?Rp)#GcOUPqKS#=LjqpX=wpEXq1ZRy!2o{8^fgz(L|go?7bYm-fcPL6wc- z`W@v0ts>=EOUKygro$+ktvp&`SmBcv@FuMh#ANPdkR&(JP(M9^m_n7L0-;remhIku z^5=`J`vw-@&L+&F;(0sle46e)$+=y#6m2v7{l%%4RxrVckJJnKv^G3A`#8mDofZ{&~np`2wLcb#<<@9-fmf z=uUc@*-F%T%wg+ozHe)p{*8{mR|jmi#-XQ;ksYM(VrT@}wrkfiHbk0E)gZecZ`iEr zt$uTUCBl_+=I6F7z3dB8ck~#p@LB48(sH?{AK%AAG+kYwhC*o_k~*Sjwco{92d#%w zu;=Y9!Smyrd?jc0p~%4nD#lF3D0+$r$BBy+W610KA{MbeW^#B#dW?0Tl>M^pq3Qm) zq=cD9QK^f=A)BQrkv^mbspG$enEPbwbztZa$XU{9LTci32BKdIt-o`pcbCQ@Moo=W z%KLb$q42#-QlcOF;z_r?IjgV)Nz37Pft<@>JxDM0biXvlZt)l{b15JYUHSCSgMZgr zAqy#Qtz`;d@^CaaP)-js>9@c~2vvx3K=zUOihl}FySm|#ci61`CSZT<~J_a-;4P9qwnDuZ_khb z5q^sxvkzDBNy_~dg+H4Q|JNIJk3v?zdZzP6l+=|BhO8I$B>gTT`sy)m64uazf4Nj# zv46P|zfz59$r-|!yz@m%Z;g=Om<;G z0IwH5pYGk&$KI<>>(KbZZ#vwc;p(W(3mSre?wEB%+UR1vote$U2WbAc{0avno=)f9+`m<;u^F{-iI*o>P7{ zi9={rGm)9B$W7Yf98m_Lcm)D`jrGvy=`a2~`Db{*;95r5dH3{0J5q-(F@^AiB6@{C z8qOa2MVEEkxDH-2O0(EY+R%kNHcUe?i=Mzh+(gh%(eeH<>j=ysTTdaa16FM5Q|&hf zclle#Evtl)Z|KloleU(*zWoxC_5${j21Thq>W01W?~_0PyN=J8&*kmu`g5{i47=_T zGV=2cjc;pDk$7m+=4Ebp#QqCY(T~*8IiD4eXwhC{KWt*Eo4B`KCJTiumx@hF3KN#( zv^jkKxHJQB9s)ypU)*^#j$FIs@+U!d4n8;s8|=J(r^9#lD9SsZCcj^qR&6UfTjb{( zI+D7#zt;Xd;hG7uVDHTkzqK5TO?a14YuuKnesN;GRNrR+4^dP}zczlNj zk^?dLf9Xp5J>u~G&TCzS$J8<=?(M7BjQ`-nleZJ?gaf6Cw>t^vv!&-H*KQ z!-IMChR^;yWK4Ki9N_AVK= zG$hIZhKmH=`C}HBWp$&DCB$#H1z&==;p8Xgk^Kj(x&(o2)_^=JbflnFzJYpre23aZ z1=3pv-ZgtnGPV*nfScyVC}^qLI3h^&e0UA^FL{IJ-Sv;8;`fCBE8Ht(MN_b;{_c)q za<9o2WeLbAMGk}4^J7%>cBI9kX25OH6|jl-Wjkbz6!NsPB3zs2f1Zv2S?v%+fp*DG zN|D^jeUmLsIlG4ev-a=A7gb80FL@-7d+fD*7C2WV!|d?Qz4q!lBbSY#mk=Hqyxs6P zhvd&=DH|w<2aLhap%Wd6zPpAD1J3yR9Z5}6m~g%%t-LQru$-An$c{FyZ&Qi+%YplI9c4K!@u}u^j?;i z6vSVNZ++9oxA@O#(=8zu#1m#PYn0=NB-wARF(aa^7|fMX(<)BL2t`!$+5m+(B!Gmn zIi~qddFP);3t~6g%=ndhJX?eX(Znxk#J#z1?Er*pk@*|JW=9q< zAB^O*{{@kVKSJ!0rZ`o{S^&nx6~XRVOq^{q_w{MSz7XHlG@(tb{TZ+PxY@(eiM=du zyS6&M@GqRuP)P8~5ztEo5thya$AXSQzsYlc-(g7XqDD!h&J+&>DjMlM+V{ zE8{mH3vzp3Lkcwtz4;1Lk^kbsW>^seq$#r1= z7`sg36AUX&!B?|w+m)aQs)t~XXf0*E>VLa2Z6dgUv({Qih~*GmlP(0&gqcANGG6Y6 zRjlmjP`5n!eq#VhwT8}PXz-ofiI>QKVHQf#6R{+xL}D#(&7k*h zru6uRcuJ`|L^S%njQ-G)m@K2;$--feU_X$(RjuF7>c0+M{Ii=MF$C$1K-jgJ*d{r$ z9hxyx--tubey&PtwCDweDQH;pDUZhtvj2IiG{4HiLF;>h;$ycVM-c^r52gN-cH^$! z5uOr-Ek>~CMX^P3eXfQ6484_Z<2s$;dpx0#<-cuo&QE^@6Zv+B-A-~D2Y41Z=>ym_ z#aRnJV-Ex1R3>I|7f63AamXMrjd_1I$|ypxP)J@Uu=wl>S047?gO!n-uM5~9LGIkO z$CCvS*^fWU3AifF)1hCmGVimc+I`9J-l?rvoP`gzGR`ErdoLLRu|hzgGXPCi)8RyS z7`l_YAUd8A(hoJjSKw&)U6Hf}WZfmIoKMySXCaaUgd9TP(|PLYDU>{K<5vAI`YJA7 z)PGZ}p0R5_`tT|B<}3VzXuwa-iByss2pvqSl8w- zbeoyxk!Q4FSAasyG=W0xS_gK8=agv#&wh(*yKhXcgtVKl_%a3jo4}GV^{`L^ncLHg z;68r&*$-HdoG4*st4v?_v)@Y6UvSShSIw#yLTU3Z&~q|#(&q~#><*b1TUJ9e9&_o( z<7P1xD+zk50n$}+ZuHXs^kP|dfhV(!>HR;E{u{Z8FQS ztjX+-HG1RyK_kd!%Sya>K3yp&(u$bg1Oy-<2Z)i3>42rJ%&bP^7n?7Zr5qZ_HT{V@LdA`hU zGg{aI8NbGR8rnv_ZgrbK3-)*EB(_RHRV`NEXe+%_Yb5_}et|7FPNJWW_jnxk3Quug zz4fR;rTh4=X~XV@rYuu6;2|`mj$VHZ7~yv-5^EgFQ&YinB9Yvc-ElgeySkXODJZH^ zuHUJ%CH~q;Mx6qxu5<{NGQDbx*369lWd7#G@8aLzW_LqHmTi7(5q$;a`=aSUyg>P9_H)36=RtP=#Isqt z*o{`v0F|VcBE*S5&^xT;&hNbVOP|qX=;J*u7mW?e&8>JZD2;@Bu!808FA9xsN{qfj zb2V&tnT0Hd)I@rx0vHApT5hao_m{FM(Yw7S7R68f;)_W#i|%Asbg0|Niw?~Qu7pw< zSsAV2-Gkq&db5WoC&_m3))BO>?r``9&8JZhvvI#KRI#LA7xkp)58%=u*R zTeRu4j6LfsbS;ADh7NB5dUPda-b&9~ebo{rcg4%6A@k649W9F> zvSTL5NG5pj`9=tZx^>+VW=oLWSq{|qz%`GfYT%j2yZart{t*UKDCfPe;y7QCkGcO` z!(2MuUadzicgDKPo&dgO1y$bGJJgLbQ(>y^WLw&Qw=b0$bXCzfJMdy%P2JFpfS%<7 z<-8me&7SGw0%TR+eUIN$8EzdI#M;pNpYNSgt>RrKj1uf7Tg^o=^zU(nZ{|W#Ljz?) z7*8dLyppv})L`G5L}r6`O2yc)kYx_k*G#TNj42*^4tIobTb9dNqbBik+SiXK8n}&yL-g} zZ2iUs+W!ij%bnnyO+B^VCxPmr^8T<_C8{ShSfq?yM*a_j3B@~MP|s4b9{wrcZ4EI93g3P(iL~g|Pr8zL zF74HY+pW=sp zk{XXIOID1MNuHFTMtDgvVy?TV)H~*sW^O|*Ut;+pS?4+jKa+}Ud7g1bMNQEjh`2V5 zr2X(UK)jmt9L%$MJ*S&u+1+(RcyzCgL`IS&Y?VoH;cH-|jJ`@s!fZxJ zH}#N2+;lMH<|8syxVN(bXCqqB4u46BPp6cL$DmFqh8A{lJVla<&(9{(B10vIak)4Ik!RNkGrQLT)(MRW=Uu)J5BEB`XnGd?}yATnt|3JJ}L_rXu~zwIWXU@Z2P zDB<|03Rr3qNySvRu)(^>{p)lQpGro@WFh#z)nl*ekK1o_ll}=$ATI;dO%C7MX)}Mw zOXSObCxWMWR44+ow(%~yp(l>D(}>v-^Z4P`7?{U8%!8P}V-lP8v*Fik>vzsVzm6M&@7H&R z+HBR_d6#096;6=Fcs0_73yU|J+W0jyXh6l+3(KZq2u4(oW4sVFDxSev6`r44hsThq z9G3Q;91 zJ9~d}Bz=3p&_?`=|9-p8rmw2haQ#7_#2Qxoe98D!Tyu=g$M+kY=7g-h^$@A!IsdB^ zTx+@vpZ!j{pvC=P6x}WyUB|}$R=+=7uR{ap_Is>5=FbLlBjH<0%P!NR%uf^A8})qk zo8$PCDeg}bq}0L_FCr0{bv0HT)W=@OVmrxsdMZlt*8Cm)-!CGyCOmU65IMoSa77B> z{c3~h1?n+1rnV04>PAmtrM98h&si%XBtataOu~Dxi~|1jmUfSS;lAr#!?pR&B8XCn zVc6&WhDe#m(BjOi^R)vIXq|NL9|T|)4R-6i>4ynbgQFf5<95<}MBM|u3$J;QzjXSq zv%tm^Q|Gf($40Rk*M6y5T;qwR2CHO2t3FkfSHJh!5rL)H+~slg&{B+yp`EgZWQKs5 zq8c{%u-FJ{`gFFMK+8;j>pEK00<4Hlf`r8;z(xM?tr)R3Dy)EIYF!WZkD@eb3h zf8>%ri}f;5iE#=2xbS3p;wDjj3*VWN{15vm75&&U5`ripp3uc{r-%+n-6*-NQvFvE zA*=T%^Uk3xIP*z)Z_v>41CtnB?3uk&*1PuW@uVpvCN$Vr=cfllD~U!KB82$2ZYeq| zmTNcce>{!(JKmG+zCn?H^8T;B9U!RZ;xA%5-7 z-#TyCoS2ooN1SB%oo#s4gt=uE7#b&0l|4M)_yw0%x0H`D@DbgR^X!V^Pa#dPv-9N; zMR3MRI-DJDoF2d-X6;dSal1*8pJ;UrpiVu_38g9hyp84`sSoaps3!6mWwfm?Hq4yY zY%>cP{N|*v92Ktd;o7DCXx5|X3o^5Nd8J8rgomhrjnk&!YHx9eq-+xi=@LuuNpRz1 zxjPu<(32HbwbsnI&AN2+oc62%Kx$(5>nTlJvQ@@}BL{KS3%q04@(BMI!GF|dhabv1 z4R@kqeM%lSvz&jNEpRK6O;qjiI0#hc^7iyts;R@JiQBthJMf%6J&sK+<@GDKko}M! zTd&%gAA0IbnLnaurQ$Qxe+6UpWf{E~De-e-$V}^(%9f<6F%QAR@oEUg(76oe=$sI_ znnmu5COG*6WvOpr3=obPXE;3)Z=(IQe#LnTw65daI-!2IBRFr_5aCN(n(@*Ri{4Gi z(YlWuDp)oIEhloviaPD8v(k0$h{olR;O+NHhqJ=?kB@-pm((Y=mUdX4dBKgpbyQ5j zP9QoZ0&vWdTr!`tjPF`yL0TS_#9jS^PzDedR?X1+h;1IdD!cLBf}w3Y^V3K%Rd~fh z5DbFMlP<$iXHm#|=}6CN0V#_C5sN+8hQb-1h$LU6L=v*9J0X@bm{RM$8b3p=UGoA` zW44l`P|yBS2}iGPy?xQ~kp38{W1Y(z^5qz|1G7kv6PNw>vnSptn8%Kn-*)BLYIJ`4 zF?edJD(spv4c^P*q_wMJUg92Zkh*^-OIJ4E8$^*o?nwpzW|_YoulYoN9q`J$Fr)!W z+32K|YQLZS-AqmOEW{RakUEz}$*uFrit{F-<|%=Jt*?6iKOi|4PDtVmsqx@VKeAp@ zEST2ugjJ>wvt%e6NByUCC+Aj&@lcBrJ!qqS^^7n*07ZgV6~K89XgOD(Nv`5yy=O|X zS@#UT2Wl!UamMs{G{$-(DHF#cVkWfLr#}#yl@5_r_OwzXd_r?b4^bsFuhcF zkKN4F%VOH&LCC79Z~CK1{9gO5JYQyTRBkesIOV{`EMhAT?`N76Cxg&eU)Ix%qY2v* z*x+@Zsoiuo0tU)Kc@eyI9P}R3&cT=2^IK#x+BLhaw}-Bww05STd!*hkDK{6a1>8RD zibQ$L=Y}Ht`o9@C{};S2 ztbsCep$MHTk|vYYoV4ScU)--d6)=+>5=`!^1}Z;=B5ss15B2OT-!Qm)bbfhQOLevo z#+b1KL(lriXX&L+GRWf!_;vh>_Tpy{f@Q<)gm!i0NA7q7Asz_tsZCwxz-+=H&H?M~ z@}82mqlJ>ZLX34|K<*VT=!H)Y)?C@lDHM@0GUm=Oy4ch{?Rl-kFC%hG5$~8zf$&>F z|8cwI>^}=j{Bc-wob|a1VFgDI?`~0|9USma;b~&7gFVTDVRmd7qBfOMl6%33q;Ra% zfRtH;eney}{j?zQ{<9_~%fclmH1+(%M>3|?__U9$2kYU0+wizda$E{u zyzi!g`-DYsRYEX(wdsjIz3c%t`=?d6|EpYnL||95pm?M@J7{z2*X^MPT2FW!^Sz5^ zEIDH8PNLT?m$M5cM8UCkA#?ERp**~V`j zcdxUJe9XllqmkbP>BFkI5W=OU+~Nj4qrA|Ow1&Bqh{h3qn;)?V+&UDV9Kc;;6o~ZD zKj);ywuFvUHMj1lIZgvWmls{O5`14mRqCh`^0sew*YzV%N*bx)Xw|>DwZ_g5m41PL zPY4rMJgz5p|L&2}3{kn9bY#D zlD$R>N4;;aqPM2~B~&>J7dAT^cc|=>0Fo=V7yeSn-_m*=b$5oPjb8nQ2o5~bHqI(7 zes#Zn&s<{UX5y3-&N4kdqmR?&(TP(L%kF~^zwfU{uUkeeuw{C%v-GR@t`4Gz5acd}WXCVlcNb+$X0y%{7N zPDXgm=+*;A?I&%m@@g~nQs6Ghk1dohy>PNQs~tG;;zzJ&fl7LcWq(FG{A_`plFmHC z|MJv_baB4*q$|XKI!UIuPYm$5gIW;~nx)Xz{n~h4nIjjh8Iv&jK?9GO_Mu|#NWr^E zBNbfd2>VxQ83nUt2JC7naUkzYP%9%dah#o=-@CRXQ1zUjH}SIB)Jvtv>ZcN$JQj|E z2{DBDddE*EX)N9vS@-*Ox3it*bhacPndwlDMwOQl%>|KFi-xyiH+*)BSb>!M&F?WG z)LQszLCcR}Wo{?4$|n<>FVF9}6(o)npLOC8i=BKjp@Jhwz{7eqP9|sVe14zHamsKZ zF9h*!#F(u|$pDmBZfHrHaB&2i@iQW6BXbgSwiwC%XPjoG6pK{e^5s$lb)4K0L|oz~ z?id7nTR!xmgQk2&bYdgIuBXGcgiTD-TZ`B8Yn*cy{!j1j8TNeom^mq)#?3~bo8hyF zb7rR9#o(#V)??1l{xCY1XX4uxLxVI{X`ekdv*pEbnz>3E9{V1bXR7H(#gZn<#<*Ok z*qN7y`D#Uz^>Y_Hhq-*doc;mMk8YxY#M_ZrIaRkAPyzHFTKOMa)qXt5>7i*!b*TH1 z{7xm+1K`)ZBH4(y@P1M6Qp98*CvR@o0^lbev8kTSZZqx% zm(i*6+2mMbLjQ0Xid>&ULC{eOc@O!Ix>rE6=A6(UiT8v(f)7#lg7!- z){?wah8eCo65W_T>{TjV?Ko6T>g%7!>(c z`<>DV_E>FyCI%YUivGgy{s1_0MJf$2S%`Ao( zT(va6u0lF_!Gu15bvWp|D+k^x<*}E2v*N=sq3D?h)71ob9dr?=WI{W7JCZ9RdX9s>n&pSd0xI#o_Op=(Ny@!;T#1LwhN z5si*CBy%VyQP9vXbJPAcy)+{b&^CNg-bUh^-*e8Qm|r977NXh#5l5=@ZXn5WgpA)h zh*4SQq=jUk(OX@XR8h%V;x!B!6JOiQ;=^WsHIFZo)F+ME>e6k_o^16V-!ALs-Jr-k zQGi@w<}w}UPC7)+Ztgcp47^Hn?tt;HIDKsVyJ3J8jjLzeReY%I+`>_FMTYA2o9qqK zj!lVo>P2xh#oInV|Ajs^v3je)o<-#e<(C$wy8SDKJ7SAPQlRKboFzx}IuraiUb$s& z7mb>Lk7ezES>1T3gZK0?XeAc-TlxF&OTdRR9Gb4WK9%wyciXx>kA?c0z5dCH2PF2}k!I`UGEt1bk4&H18N z9*KG@aQx;W4ydS~XzhQ%ah~>I^I_Ung3Hl}_FA4(R%?JfDLp%%r+R$^J4LkEY7%(h zDb+&=ec~Gedo;k{f=^cx^Z%1UU2HpQpy&MkFN1#}L#jaAZ~^HTG*gkcH55;;XMEM| zA%SDXZdl+fq7XiJ-aEH!B3>iUZ^i>{f*Ml(gSFWq%L;x=^b{dgw7HY83(GJ>00!6j z>CVI9Z#fL<3x4SOxjSM-j(L*iH&5R{bC_bp0_BWV4awUwzicC*`@oc=ytm)e9WJRc zuPrFvY-vk&Fu-czF=i%bc|p@z0eHe9@y$(P zKHF3FG$(mt`FubF_Bvib-OY_}Z2gUjjk3@>V|jYRGepW!u(Jd__> ztdhJuSsDVCXF}N1aCE^M*MV5}e~LB1)|)FV{&XkfnfT%-16s=EQ;`w3%IFd<*8DHm za`6zgCjMt(3+C6k?s=qd@a)?5xew*kqS@b;NEQ)x;}FrIR8eGIk(oKcCkj$oM}VJg z6HdB#-^x$!b5%verz!OS--{TQ)LBlDvmx|5irM^U*bsH&adv(wJGh0tHNREG-d7Y7 z{G{_>9gyB2^ALwYe(t9!yHJBWT*slSSk1)a(X)tl#1{cDU(I~bAgF=={4ig}pjOtT zK?`*eB{Eyn$4w_HM!GL&8JTX`)%reSe~Zk;)hSm=l!{?JwDl>PdY|PMl0l}I=|ha+ zbmYYOUW|XkA+9dBN2zz;zVA_iQ7ktt%sxU83z7tFj|j%HvQZVb$>E+llQy| zyfK(iLIDc{01eVIW%Ay^7b$wDX6z@G505Ft19jg~7;jk}$8%6qYMd(oA^{)DZtelE z;vVtt;sSe{TMI)cG_SfG{Ckh0cIuf-=BhNrLKuvT-O)kOY+K+(hK&}k9W|ftG%-m` zDdi6=P?1o{9W$bJkA@|Bu?oADGIxO8U;Ii7@xg3Yqf<#39pZp8X#SiA{h6B1Qmk#U zuHfwB*svQ`H|tkqZr!Hh?Xe|i7PB|MAY8}^JCr$Zllj(!sc$N%XzF;wXa6{8{W^G_ zMm}1y1xh$=r&|p6?E?C`#xzrQ02d32e*e1T<2C>tHm>n<-F_F>!T4(A3`1uB_*Iuq zwA){Ssx0ajsrH}=T)kfp>UC@*!WSwn|Zvb+F0XXDtq+3~+Q3KL4uamDtfkl%|4?l|b6tv&J&Xo0vCQ-UmiT=*Hz<{E?P-z4r>kD2VTl18G_Hmu0|>G4Ss? ztUN{*dCw?R&E9{PB;A^SpUr;aK{rY_0m<;ha^}s>Yrb`ziJ7^oRi@_gU*JqeJIR@( z#sTk8eq%lUo?lH@m?n?jiSg{wuyWB6sqE7>fCtuCnQ#Z9QMP5t1`J5G*ER@*mttIa zf)B@Ddl6DRbzCDbB$Qx8T1tb+`?r#++MGI`>XRTWw-?%@(6Qyr=nYrlO95#t>f4JPOib-y zry(Lx0ML0!zU~Ah601(}vxvR&tH*8aHO-755q{FMXB;sym!1qiAK>Unik^gZzW`#; z@H^5+vtDcI$YJO8?6Bg4xA}%2BG?q4G4xyYro_W}cJd5sx2hfeF;hdBS#)E=jA`Kk zHJYH!vRYT78rMwD)$(Ge9@V!X$o{kjDh(y6DwpC_`K$a+F+o-WvN8H-a9d`i#7!!# z*bmzUH?+guR4qa6Pp??)5^g^!CqGyAwKP=FfMiYm8fhgf#gU-zHA+47HaW zM{Lt=&tjM|<_o-Z- z4#yW`h0d*}v1-CJ?$SQQ;_F$5Wr;9uwKP%Zaa32x;&j!tOLqmF!Fzdn2@qwdPp^B5 zyzG{>XDnm~Pas7RW!;8~wh4n9FFcbZw$ss1Zbr1E^Wc>Xs zF2q!R`x_IuTpc@Jxu?62VQ{44Xe@&ko_$X=+{c@;IA8m~lu4R`m98n?cODPz-8AU8 z%+IItfc|1!T(p(``?i;x@in%MW*9JNPp7bMnz6mMXEgyosJlez^Du)8ARs_(hX(5X24#2NIVx7bMCtHh z!JKKGwpDlel&RhJVm~`@q)DDM<4bGWDC>`-{4Ywb;=`7{Hw-ifUjx()7|Pdik)5yI z1yCig;7VJurgFANkn98OK^SA-2=M41w-?vgL}tLR7R_<4vL`*}e1{4E>dR-ZcM;qx z=`g0-Z8^E#@K;xefZ;^?Pi>WWrW#00A|mGOPj)7rHNP!km)m(pl%=Z?+V&k?XG|t5 z=nuZN>Ix9H8CjUL8kopt!KZVx*e-JnN#Dy>v1GU!7#ayNj$ zQ-p^&w_^)stOZao1+z!_`^poBWERMypRyTlR$}GX7yX-!yC3EG);UNFp;@+}%UL3a(Qs4-L0=-TK}tW4 zbGs^WUKHJ7%_hf6#gKXdkr^3s=C_o+_)?_cAfMk}gkSlPL^9Ta#N4TR9Uw?LD-Ni8 z(}bq=l1J&{%!nd8&JLKPn8btn6gMpy`ZVwHoxyF-8$#!0c)!B~J-*8flkE$l*roTv z!9W;$GYPjnq9oqGmbDBi$(#-N#J?U*pBGC2?Hctz#r~Pt-ycV zZRlljX-3hv=O=}32e4A=jAaFOj%%M7yYFeYQJhCH>JQ_lUT86^t_~tqor*Z6?}ys4 znbA0;D|S6q(qoVhp6T2l4(>i!)Sj)jjLag)_WC@VDOPdz%5mL+CLy>vgEXc2Q|6We zff|VzepYi7E+5_&G@?pGrI#2w`Fs~TF&N!epp9i2Me|7eB@Jqkh zb(wR?O~8qIp8**{VnG%?9wLq)8=$Z}*4Cmf50d+R@>~XPR_Sgrwx5loL<9E1atB^s zFcwhf6inDFdh<4(EGlC~Y2YFDCYnFm9{^MxG>%mKI98G8@9X(46H#89Dh++r=D@du zd)-xqO*m=i->Zp63lj7{?q${{8T;UuRPQY0S^2N9c$*6V3=X)DhlPU1Vb;Mjvx+iI z^r1G3*~cxGNm0$wyQmRwjm9>YI#`9|e-zK%4o0r=!}kuxrc3;6+&*TDj*H@b(tlo= z3IPojn>t$i3Cn#~dN%nx%;)L?tpTW-awbD>GZKdeGMV#+=DdEEO5i9)?Hqcv-_6$# zi;RGo(CRuJJ;l{kPZKlUnzKYU0W|cZ-meZ0g}5ROVy~WP5~%g-K!{#h_9T4{V_U$Q zR$age2^lBbrD_||S(_-g5|J9c2Mdl^QY9H(wd6|?K)liI9=D|H*>G0>A^g!EjtoKQ zQ-8*FJ___Jbz@j}Ydrx3mR4ESK5Bn;0(ZZw1fV$0Nx?$4N(&h7Zf?P?cS`k0-J4Q9 zjJ}7^MmPO~0yJc`$Z8VU-&0kw<|t+V!|Lrmo_OELt8t@`%;3GT79xMI-^^h`acU!z zHxn2!-04fyKM!TD4rFZ8VL3ws4lW_4%zCChtDAO!#(TBh%hp%*_{FqkW#8D&#-z(K ztLApX{$NA_7sy$GM8|!Tnzn8V0+InpAfU``rA9Ep!d=uZsE*~7`*PJbZ`u#D9S#lQ zT+pJQBv){?OeCR##i!n}WL>xL;*JQmqB|$>Pvs$Ee91k`D946Ahi7^2n!SZ^!P|+% zFlf}(CF-Kj=^nD+Xzx14NjBht(w#I-eQRUv=|MktU&Rr8vn{HJ)Oi54wh_L{WiMy` zOKR5oNP8fvA3NGilvzx$6VKamsoy6}bB&?ZMp?)#&od4^Df_w=JOXMJdKq)@R|pq? zLw2iriRHad;tIx=9sbn;PRZ`+z3_e%eVFILJNHECE%Vs-YV^hZA*x3O_vcWj4!*-L zlvYr)@gjP=S(9GC7F=bKIUm=>u~XJ;QUYx%^_!oy?V#uII~@N@=Cp^cqqV#U1SFUwxm|QAOI#iML_!ts z$dyb~S%B%`IqONpZcNplw1j_1yI0=L%Y`=AIo}IDj^`Ipje(r%3HcKHTlO7sXGEF*ks|inh8;n+D_$58A`f293 zOS;lu7b-*}0F{VmW8tGsqaKDb0lz~Ym0gQ8pjCRX44;0w@Z8U&b#?4~OOIb!0??!c zHvA61ag6FVvh*5&8A(tXp+@1$WFzkl`@xbAxLE6(Piogj?-UfQ6&!hiFALnx)YU}l z;%`SYq~&ygciNOm)=X;;1e>^}d$U=!kIb#Z*6++X1`$h#M~Ll*1vh^Y1O&+K#^CR( zJZ~#Fn$$GbEpK%tJ;SE9GMOnm(a0<0|iqqP$$%OBrj(BbQxzOOz${o7~5g7XKXJ z4C)8kD}5WUJ*QW4A!w_l*Fo?Y)aUo|d*XH*BYPDtzH`sw1Dv7xcIgS#(@qV)LC529 zcF)i7fABC2*o|Ym^d<39aU0HR^G~A@$cK$o`!l8SB8|4uzvT0p`QF>|Y$Xzv(1^6E zi7S3drFZ^CHc>NLcR#&&GR0mJkfkaX*dl$F8H0UyPPSr`oqM@=Sh+ZJ0(;%@cyjJk z4i6+~4D_)-5ixY&;d+S_YQn@kX)!zWiz4OXO;QBn&?A93LXd1JD~XWep62#Sp>aqm zNKIte`#jKRJ`n#=tP>W~F6#*^)~`>&cqOijfnz{z2-9^KCHVnMN*;C6M$RmX%;3!CDgZ3<-PKA}3HF5!M{ zz7sQcv9-j@EB|r4)<_jDvMH`1VCy#bvdgS_Vo-bU zuQuHb;cWJJ&^Wbw(YPg_E>LJZ;ifnDn<7cb=4J2c4VY`EGC@{nW{rRl9H@XL%%1jn z1PG+zM2^@N!aS8CcIZE?XEv$i$f_q#o z*&!g0p>c%DrLCVd0qHJz9ogBSyF=SOKi(JJF;566|L1=JfI%Y^Qj={wL4yQWUoQ!+ zsOyuQ9a1<&W)bqo*X^<)1+SG7^i($* z7C&;OoNW+V)m|PMT|G$$BE{(zRmAZGeU%A`1;nak{#Ie)9k3313;E96r(P9@wc zeu||=pk>L|eN!9CQx45IDnv|)Hxib|fFvg)2l7f^B;I%M3iEv~J5DTTa?yq8y~a@Zk#&?7jc-MAlL=hyo3 z$GHZHXbw=h@#FWsJjm=XDb-LUaZ3odI1E^2(t|}Qz2vhF((^MUZ{gw6?-Qa+!r>0dXE(*AE_)v+P<{h3RDqF2w>h zVm{sg~4~G?g!)jQm>Q!_CWeC7BfI!)%h3BYSY}I9grm zXxMM*UAf`i(J1@QWXDN)Ec&YUl_wG%!ZJr^*Q|D7nMDi=kSywpASv+Y9#>5OQZKHf zeWqg&k(tc$(YSl>aY*#S+mBQ4vh3R)^ZXS9Z7cUOqT$#iH|7#r z!iQxA?v?RaDfXh|%H8to1VQ5ArJKOk+x7zrDrwC)Q70!-W~|8F&uD@dgv|9tB8Tei zJELQ?5Sty7F1ZlHa1wE5Hc5+94R(|-SqHlN6k__G9Ax}(7M zk?BKCy0oL8JA}RarjqNx?h9DPDv2nMncb^J5+9w88w7;2wO9*CqpLIQwUVQDT8A2D z*oK;;GE`FiL#gVmZu6_QsIl=pXP4}{OH2QZ_Wh}Q@=8;>`2^WOvIx}x6bYFee(q+q zbl&5Bku)Q!wbyBAd3j+=f_Cz6{J#$$E=~yCC&uLDIqw5FI(b2yWzQhOD2sgjY5%}Y zN~uLF=FE9ZUF`r=cV!5I?93g6)oaD$%w(Wvw~k`E3=FO?PyJ8%DL$Ckw{R%+jXtC%ARd<{s8&ljri{m$O8mM1OAPsb6mdI8kXOMc7(50&#$2Fl&X!&HB6QS&B}XBX1AxTOI& z>WR`@cugTApJ|CCK)2bMR3d#7k7It3XZzJp_E|Na$wzO$b%%A^=n~N1**Ls$$r8dQ z%ObQQOD`b=Q!nt&Am@#W1M~$Z;l|tzOVXpzLWT`MWMq7{K;oY?3y`#Ip?Vy|H~kmG z+4FAmHSjy{H9l6}Gj+0yA)vcvr1dZQBs99wQJ0`8=WyTPOkQr?vIp880QuOJDY)3oxyYv!>c#xYqUFi;9f1!l^ zN34|FY>kWeO1@_l6|bEyTuUAHYc_j+yDwRp#HD*=jG`Tv-fx3S0>&+e=>wghqw74^ z+H5K#hjr&IiZtVJU#C(;efAB}*uSxc+BnN(Awh>O(E?eg#Vtj%tsWE(=J(rM(T{OB z8>e;;3;^I&%WAVm_ayl84v(xI9DcwB&?Knubh!9eiNqe==fBCc0D#I^3y&%;~ zYx40#-{$|OOEK+?+6<`DHsT-20ZHNjVR{gj?3Uedt=h}POt0-re=)M&%`7OcdlZv? z5lG^b)pGwO@!1cn)BPu)E+OyI6?OwE1Mmy+wKUg#IjL4FNS6_KAb${0H0Om*{Xguz zbySqy`Ub2>3X&q-sdOVPsZuIRH_|0iLxXeG|Ebo1>w=e+Ohdw%Eq z|9$H_Yt3>!YuwDtv!A{1eaCfOH!&BdD^hE$WMIGA#8im$5?5~n$1A6aZf)LyZl1=D z7YU0s>;}xGt1lB?{q8r9y4?N5-Qi*sBP+gsmh|fhVFOJGsTFhdepu2Mj%k#BmmEoy zI`y%fk(=_0G_v86LK3J37paM0)L0MaI9oJ}#%R&7$*m<%?l0H8*a}QO>slAODZC3s zjrT29N`6zkEFe)3oM$^TX#3?J2gF z;Tl}NVhOmyDNhOcH2MU#^6icWWwLax773gP@jp%8!xAdaOkVr-eH-d=wdC}D{FIs! zICR(GwAdL#tWf%;Gi?N;z;-U7z-0Ji@jVr|wX&q5!UoNZQ zYM;9rm&1cx1J03{O7f->CdqaJ|8$)sVSPA__1U|eL^qymmmT!MN?B&bqX02sb={EN7SKD?mwBS;xc@@M! zKfYFtFN@gOdy_?d(v12mxD&c~;F|w8&+H-6*{&GYd-vw4?bAyAdPAX1VOIuPQicJ8 zs<8DRO48Sf+1~c43??kTmP*~e7iKx#rd>F?Q-d3Y<1R6GYMf(Y-`&UpI`SM$aH~@ zV=BmsekfuZoH3>r{J4O;PZ{pR+7}iPPIfe?p75q=TeV+*tKzKPYj6p2c&Jmf2J82@ zIqX_)UuhS3H+$suyG>!-XSmytW>G$({B)UY`|>59E{rT%TYmB%iKKFSrf9(*ld zqT%#@x-nH9dmKp|(ssp-tsJlO4H3A4gXy{O%DX`oisyL6q<+5@DSO#-nk|FuCYYGWq}mcoyxPyR z@*7QQrEro>n5Uf5B}Pzk7U7b&zax(#E55xcPUbjcuX5b2b(vtlqJq5hWCWaHRy5tF zFHnVF5l%i|>WX0yr@<^fCRdFWaUZ>%$4BonQ82ZaZ0f)3i}f+&u2LDaLdUk3CxfMO z1b@cubjAtC$D`d+hF^Yx+OhX5;V6~Dt5;*dLsuG(tuczy=&ys<=_6!FXnf#OK!-p5 zoHxym%f_@_ENcLU_)xzBAPrpm9hRUnAqHAtjof%CJZWcR2M#Lv<%?~9Qc>iKjAwan z1vBSTt&PABVr@?Z5uvNikp0fI! z!i}T(A&T3%x^vkT7M@ve%Uaq$B)_7yz2#dN@e7(zc zz$K7{!#H-JM!7{Lqnoh%13OnkGTeQ}e(YW2^hm#r^%yo0b1?ZjO-9*!ITK|Ogdqj- z{kyuI#+|Fm-To;x^*wk75^N10pT+T;zdWWTb5XE1>1fF0;}*SKXeFxWF+D9a9X^=I z1c%41+~HckA|R}6t7@2Qv5Wppd046C3aJjVEM2+SDk^%519D}dDDq3Fj*m%09>w zWhwM7i6=YGI>CL+0*t}W4C_sz=#QA67diEs;~Mjt8XtYiEVzONpu_PCR#gjr?&d!@ zgD#!wh?ZRX0iRpjY(2>>oa%K;a{rK+a1lxFbnNe>$CNe1suWk2rFn;~phL2-K1Z1O zsFfvyu<7{Y;BFd4f!M^iBAGJX+6D#Kfc<#0ssfgWS*L%tIRg`R=eUo>Ff zyj>etg&PcPNpjiu;E==wUkn~CzJ|`?Z##_d*`($im`h^~zmki~VE>X!>q?4FOqkCd z6sLTtR;_EQ{?tP)j@|ZS+Pg>*3O&(hM~m&j!*H_k?S4sNK9}#E#CuC{9HRTaH^p0R zwt6Zz{2_0<;!>4zW~le5+i5|43hiMrYl$LU`>Omc*E09j;J0G=v{?}UW>c-1p2pvM zfYcoRNHZZk0*&JQhs;ox$Z?JXU*7k+DeFezM8KE|q0XON!n2KTc2FFp1fcGV&s1t5bX5b$~A29Y_Nxec5?l1$|*-lcN(=r_vUHrch>7C zcYHk~%;}{3Qx(diw?AFc2vpeTl9e+@&o0@?rIP}i`Sfgs2VwSg+Iq2?hjzzBc~=F?vc+*`(Q(devRi0JRVGRT%f$JEW7?V+??@30eT&4pj)M#`@5OQ% ziKt*#M*4!vZfV9l&o?h=@2W=aT~XPo>5+CA*6Y%R*C8Zw*6aAEEarP%7^P*xw~H%I z_dh+u{DBzTj%9Wv?FJB%iEti;o>|_lrL%f6WHHdRcBdlGW3`18Ls{{$mEcW^=MnaF*WiDe=obq?_!kpc$a`oH2^GT-@>7 zC1BP3x)vNB&)~9CuA*|Cx&lS;y;Ej_O~rUgIfaYoEN&Y)4hL&td3`o!KBwr5Ik3&b za$A>(yhG8*p02fR4eINd#6>owj0W+-0PyV;s_zu@O7yfHx3Ov5eoQNvjqiv*O0E6@ zacZ4XQpoUOk3NU#6 zqpn$Vy4%R6M=?>yYCDxYsKyhcc0ZP=gWgjkR@J{!#VS0P>g)x}MsO}uF7}HcG4FTx zUovY-(%3P4*4pkuL;32s;&=fLx%ml=M$D6&+95dWJj1Lln&KvYm%4-@R!;;It2Ao1 z7Bid}LYRVaM+bwW?2Q>w9NtXccBwRQy1{~VdKPT#V^p>T24`-+$g;kmxIOE%WrTy< zD>g(iLU=Tp%aTca^&Z95547@(X=>$&C`5fI-pStZh>4~2B$T%b+(~0{mI{4)_g|f2^&&rkH%OPLjBA=H3Wb?g)OXkigF|I2i647_7``#6K5IV?fO1EazNe zEoZVCh@o3`Y)I13raF|T)8!>R6&(_^#VHJ&V3r+2Va+M^bCLR}4Z9bsQsbg<;5(F~ z(EHp*-}~D1`~ctd=NFle43aGuR=YN$2?iTf+~}mD28$oMEzd6pgGB~EW?o3-&Ub7>_aP*!~$!f%RuN^US8QWDflYr-R`R@CNW>dqC5lTwLpf^DE@+l0%Z%pM2=;qg3*ueI#!4;Crj#~wN?L~t zYdoAXkZ=}lC`d{VjP7A&r;U?1AGm8|^*V04&Xeci0+_g%ZAH**zD-n6g{`hGA!Z-9 z&52KmK^2+9xLzQ6I=n#_A4@$eSX9J zgYD?r8*S=KsnJ!sH~HYz=c?5>^MlYaw2U>tqYo248LyK^dq=~(ibcKE-<*8DzTpbU zk(nR`&c#vpvgECQf0@5q(6#pkKaISG3Em#Q?8Fo^vwkuwD-*fLDpzvOHWy4?_|%p6 zTXCJL(Q!>X_rEjc$`m|jOKCEUZMGf?=x_-S|HQ6RizA?nSdb=c6p4K8rZ>_QO=|gS zp=PVFdkN1mmycV*5IYPG!g)#>%*EqlWQh0z5rSCg^A1CBDCd~e;;{JU%JoySe484+ zxcF#dh3%a+jQc1yEwUXEIhFI>p`Ksv#EI4B<4zSqqC(lZI<71op1u}EZfCEbaPCeJ zoea1OeVQsZt}*Rlpz-mW=RJZcy^W!aa}3u~j})3>qlt%6-7GEElPzk3B1&Z(3J)JX z;5WsQNP4Jay==om&KztQ^^V{DgHg2oNwtSMc8!qXKVaymcwE#M_mo38&9BFlUI4x14C z&o=J&$3M=e&=X9i+I6z}`@Z_8|D3Ipa19jN3zQ#B*Ol0aacHH&n zPM@q2;Vm_W&ETD2+39SqI%IRjGM3pa@>RAd=PBI7H&~Vd$Dw1vrzMJ@rH@JRlt)^h==4b^K!*>;1z;_Fr{_ zeha%f5e_BHR{2=8rn2P{?E=Zm1QijM(IYG6i`1< zOr=L12iIi#Ygp)PV&*kZzP=V1j;`+=XFxs-s2FYqXvXgiBbKZpSq;i$5<%UtlHWb0 zf9ARew&07-Gm=b%=Q|E+IO;dl&k#)qJ+ho+Dw-;&cC;Z|*5HL1+5q+25PLl`vyG>+ zGd*~f`z!!^a2#qVIWs7Y@WZH8D(YFiO`26puNBh>vP3!CsP83vkR?&78;e!D;o_To z$LtlXBWqV)vU_^A-B}GYBk80d)?nWw_&9oEw>et% zRB@i(4zNVnVEYv0QbJbCUe{K?SqUzw2PZe?_)@3LO=9 zFe{g9uI0PY#N2#JvzfTDhM@;r)fGI~6eG1a9B$L6MFkbcy*(OJxECmM<$YY!b~`4g zA1oO!uNMXIDWdBW)Hlsf52ott)G-pIf6qw#^PW|8kko-5*!l%7ask^G(bR~`-%w|N zOvb}kDUZB(me_uAW(@ycpZHrIknvR(5K>RnRrqgWi;S;o!GIlQg`B_t-CyE-|NDf0 z&hG!_;eYe+d$R0*>*4=X>!E3UlA*w(3!Swpk;xDu7^#$o>ckiZfnYg>4@0Krm z%hd9(#~g}Qwt3sj@*q`hM46|KLwfDapXOI}4pI7L)7EYLSf%jr@w-3XuaQlOytQ`V z58Is_t@sbt{T~33^~ZN5){`a^3Pb+y$@>q>JD>%656qMcTZI0%0ZL$iaQRa$qW^X{ z)FNV})|$JF6aTjXSzv&RnQaZ{U$^_WD=|mV2g7mfq?qS#Z~t{ph$(^rr@vP14FA(% z4c_zG#bx)|E!@#F|8E15-~)1cH@g1Y2{uCq+K6aPwT}L`0mASBO7X*y|H;>cPj-zg zXnIgv;a~9I1~|V21G0FtnEnoK`s)krqQMdAXo;oq-v%6g1p^c<6;%G~^JWFldv}uj ze+%M&3*w&!;Qu!ZB4j70oQR6a79dVCRq7V;tIPjUwmV;qmwDc8X@r{Kv>I!=mgv~0 z*a*}MGXUF*dG_GnFCIeNV z09>Y_@e%{L{^n40!%>F&Ugg$LP)iz$pFPT~s{$AzzJDm&uwJlOJIPK0Sm#B3zw`B> z=&fzz7_zfCsxT1nycz|GKm$}^>@P*X*H8bnegh2bi{k6U3W6-x?K)RdhD(V+MrFf~ z#OgU*8TVok>i)GOgeYRJ7J!6@0Oe98whtu~9gg+h0L-QLlZMe+Ltu0alX|_gy?U9+ zYv-w{*{EbZx#SNmXy-7HxScD(b_V=Z`A#xNO{-405)eizTn-`=AggH=Np6KMw@Y~d z^vW&v6qLK<;Q+_NkFdq|joiG#C#B9?|2nF?j-TrSpwGtC+>L{_fxFWwpo6<6mWu+p zilMoiow?Pq+l}NK(;v5d1zffZzHlD(`2>)Oi*5kq7lK(>>Tf5IIij>CYW;*!{7TbP zUdm<$sv{s0(p3iQAnEKjZSg^i?3_872S9u`Ky-@!Sc)oKTfJQ|WwjBkbEQw`8decT z%#+JWDpkijv)dhY9Yg#)4dEQjUA=>KcrR`^Li@Rf{Vg?@v**t;nVT^whk{ zK5dtsNF9OI7=zro&B--5B4?2ow@XIk;IsSPqX)cBM`5+%YL9*633jzefgSk61Owd-L?C{yN~KtC|9^Qi+~? zn#xxz^_zYOr)j|HPY2<+S8qQ6>6Q(hn-!gdv-S}#cxA4qnW^=q>jJvYb0GBM5e3&H zyqbi|X3<4!epzqsQN)7N=#LhI*)lyYD?Mb56YZ71@i9GPsrOft{@TkoCj|I;d%;3nt)|XHnmqGG*mM`>kI-gb_$@v=eCkj0)_Tc1L z)2u{?u2u)l56wt{v#sqd{6p4mTNMZC_@&nHQRNGWG?&YVNucz&;eB_3!aa; z0MZi4X4UMJt(wJ_j20>i2$I%Ei=2MWJy#r>(l!DoI33M}tR?O!q#wk{MdPl++`KIz zK3#=Ph`(;0;1iKw^+EXP#Zl9 zXQ|=TdBAGWjssxsj4;&Ha}UPbxmXc5=fzu>D~}CWCxxQU%|Z0#^<31gi?nfgwvSF1 z{_X7nkgn#R0n8MbL(nY=%p-T+_%_& z_2U5SR~i8yBSJ)0pHn}+Ix7F7D~8zHX=Q>I{f^re(T>+}3Q#Aek=({sQKN`<->FYE z#}4?e=-UWVybn}@2$Be^WA(fCksQ82s>XH$Z|Fv$Q7jRf;7t$4K7m;I8%|6BE zCbl!sAc!>0spRiL?Pkco8t@l+o3m+svuX_z{nwjahqs-xPM)2wwRUc|b0?!L(Wa_& zn~=Tb_sGOcHdxA_;n=9yl&Ovg6lio!GUA@EB%V{=1=WXn#XSITDsF!09r}RK;NEV< zg@=1|!m&yH6Q+Xn$fKk+wcegYLC4+e-u#n3m;Qv{4{|ZMSRBm~lID^oP?%iv;cBle z+JMF3tB4nGjVZABD@g0J#6so1bkmJ<6V|y2#X=S`zwvT&m$#Kx;<^yL)M)?&RgP*)D|#;}kGd zN@HDzAA6V9UU~!^x~d0xq6Yl)C1!w#ZB8`K`uH)L8XSrIc5VyKLoQf)^(^^eH+MC+ z+f#ZgBTmZ%9`*}upi-@_dMbL9ymU<m};OvD2w*By@!cvbwm_PlgT8%yJJ80 z22oP%UoYn;UWWKntdfhsR%4Y*ZMO%wb^18jw8ncEqq9CaRHr7h#P|#s9M_V*6G8!v zM((iLFzh^}5_73er||<)o}!9|&)7R%;uLuive5@%wls3JgQ-yTfmsoP6k#3nsINPI z{vTySD_VJH`+|b*x6+L7z>8PHXW@@dX{BQt0Q5!JT$PhUU(<6nwPVTjvfT1RlLuc% z7}=DVXNS3;fA%P0(hv6sOJg)jYAECo-A%nfb5YZw^!*p7$ZM)>(dGnvq6FO)ZKfg7 zIrcc%cmMJ7N|Kn*D{8nOYPe{1VazX81<#)6G(?`}xKdmv0H&IMgY5KUU4TyGBYnz# z;-b?IHP|p^#%Z4UzH@nQ!>r|*sl9QX0TC$({_|0IqAs&}wOkdbAM(&_w*}zPydkdy zuKyrdeh$t6Tos0(m8-ZTUZWygp`=gky)Wn@g!n8__HjvOB&Wve=vG$>k5eHyD0-N)uc zDzdIigrRnrP$YHvXwCiyN!JYSTRaRAFeQ~H78SatH zUyJHHEjv&r_=TfkQ6km#*jqB;-W7|;EW~yxRJ5h1z10)PD2(rzy(?D8>3gF6sG55K z4(q+vyUmxiR11wB-~qHlkL@pZkH(&&Shu{!iv43RfF~g~Mm3NjwGPDZ*#Zj5Kf$3P z8qz*tof8>Kp;V)b6I+QYbr~dF+E4B7#tDTw4dMb9^}YSwp`|@vvVtpsy-C1Uifs*? zTQj8gq!zD@>2{ZN(#}|xs6x@!vIt(_S$cGOa8i~TC3n;*fdE5t+HVp%@;jt@z_t*f zAP_jRuiIAPVuNSA5A-}Lj>mLFx7V<|5m?1a3rp6HvFS z!Dg$es^VV`ZM2s*sj^_1YS3{$AI?(5IxK?->;zTz4wpat=VJfIzdv*kv;;^|RAYNE z(jx5a{Ap+XL|pGRUlP>0jwC8HLP;^tmB}K;(p9{UoX<) znZ+6`oJdHlY-C@-!93{m8jP;!g|p@}NdvwjE{@z8?1W0-G3_suzamJPfJUP~I%PEe z(mqNkUJ*QB@Kj{V0IofZ%{K+5`HD(DAh#R9_gZGOeJds7kB2ALPwmj?~+1Dnp1ERV%7Y1YUDQ%I0?TvRofmuH2H11)n9rxJim~1uY2$#fyCx;;1TSVkxxo32zVq2 zOFAypVVtU+=EOFFaC4bKp(yzNue+i|(28&RUf)(YlVoUi3#i3e`tv)0E9d997fvPd zhRenF4h)0|z`)1HeRe(DU&tBexJyAz$7|4mk=8IV4&)gPfo7R0KVs?`a8qR93)DHDP zzXaDOny98iH=|kpmr@@i$KgB(Qk0Z7)hDAN{#oz2p$r``ORA{A9lOli_+W z4M?p+JWP((2UBlbX~%mX4A9tdg+o!@fRda)HY5S1IllTGm}o;Y|Dit*Zg5e<>t)3z zuH$~b@(e?gJKff`>v0x$m42P}8R*Q&{oEY-K-;>9R){(U9#$@V^+|7H;wLenmh^ek zX2Hz*!B|Pbz=^GP`};m|W+&oN>>x?^+!wn#>)poN8|=bQSK$0~K5K)9`XA}e&%>RL z-iok!7a(n#^_}lDXcdTf5%#s4XHTPmz!#`d5gmlX8?g9sIx$K}cI>wpk-eTPQX0p( zY-QdT!4q1cw6iU!ew2Usf^RayYC8A^yR!kVPT;C4lX5~BX3_oEou$wrqN1--m-){? zRw7keTuI&Q6kFtzhvqVaPpyS?47!1mDN@#*6WhAzX37hoy-O@qRJw7=<3OJA`)O^b zg`mYsDsyEoRL4Wig=OiP?Ff{kP_WjI>g<}JKBV}QHv zTFc|4b}Nw=Db~iNZRUj18#bYjX~^@Q#&iC3X~$PV1b?m~IU#eoq}`g1(@%u8ZpRxi zBJwz$qMLID?##c%)#sWOwvmXD9_W9Y3~7ieR7?~of8B35=>TqqRq3InAP9K@>(u?0 zHR1)@U;8E;$qTa1yT=8KiXw5N*wf*7oQggKyLKlvO&U8bO}}lK(vUw+gP)F<;<0^1 zqK%_ce>ibq>JE~{^nr(MdA{wUR)MkrRWNNJT%ZX+s{gPc?g9Wz@!O1RvWXgRpbvP* zDN##oO3pz@E9)Bo0paKN)nUK&i`Vk2ddSBQ_@>z*NHpoxWveawLLIHd&xo+dx~w+! zysHKPtcFAXDOeqsp&j@7rDi78ku6D{eteIr)k1lfTsjugYY|gWKB}Io!wWn&xe-exbzl>D6Xj6;91Z;4vKTR!lNYsa{9*iti}&y%3Tug| zq)}gct=$)2dy<#04+}J0#KWk_*a?`P=*YMFdA>go=(54>h_UEch`7JnH!^xXQBhE^ zHVpe~RtJ<3e8iWAwKH#CyL^6E{nvklHzGQJMNMpsPTk?5F**!lDkKzv4FOpsD@7rg zq|l44zlQ#4u>ZUm&_k@zlv~H78TM6ZlVp?Al!?L7hjF}~1IPIG$&_`a1eS0adb#8~ z{6F{n|G8MVLR?0hc~H0xH+ZgpGob(e)#27)Xri@>yx@H=D@ieGJHDD2 zv!K7usDFhKzdNxccLN8`9i-k;{NXJBr_WrMMx+&YObgD*{J)>@*E?bjIN_-O`(gi> z!2iwIU#o8Ue{1ZI&GrB0U71o$QZ6O`A8d-3G+I9BQ5L#8jEQ4{?gf`wIolr^dPBlv z_BQyCY3US^UNOl6oR&D4!0xcV1a^m@{zGoXA1lCKQsl)SS^$5V9}v`l)nv-_JlL2EZ}XV7BPecw}9Va24W!HV4_nCb+dZZWrn-HOF#OzzNrWP z`B}eR*eN04rj*teFGiBFtvvE_r5#uiPVMgQwhU&eD4wl%S^K&NnpAEBH{m--$}X2_ z;?w`(fd6UFf4dM46pJQE#YyphKoWImzPflq0~Pvm`2AhVANTg#SN~}Uj~*guiIB<^ z3a2a)GzfQxCCmJW<0DaKeppeooT;#?Mcd>0*oX-R&fTd-kf07Z2i^UMyK?gKx~oJ9 z0+U@20^g~qtbJpQ97IB`15(-!XAAyQV3I~HEcdF{$U*Bz_h^nePy-<7%E`$wE%vy% zI;TpE>9!Hv$}insPlHxK-06|iSwXl6HP$jp{CO{@@*kn+B4SM)Dw%c2-+YIEd0vzn z2&k^87VyS$rT)OFjE0}pA?KhWIzg8y8xHa3OW@4&Ns6fTQ+@!Q5GFxp!Wb^=Rr&z# z8(RYZm*~(9WK>cUj$BHu=Ne8X&5L-js~c}F%xi&4);17btN?L<;JaCn?=lAc*1kR< z6X1@FGF<_g-f|G|G7Yn4fJc0!i-4P&7TgGejVU1DIpJ-6k4Fn02@*4~XDhOiRJ!Vr z{K`v*$xYJy^&qvrHUZ{{u_I0y&q=6~L zafH1v0$|=013D+g2|ObWdDIAEh;Hsrm!Djswi13;vBlNi0B2e@2Co|`V?n>Y(LrKu z(Jyou!Y~B@*SZFsVdX6?do;Bl`Vs38kHb7N#w(VEhDB2b& z#B$Qv7j>SRgPTsd1W_+X>Xh?iP1oJAA|32+=W9Pj<^GWpv9m`&LPCm?V%+tMu8?6#hBNvSnP!fHKiTXRoXi?@{DAM5I8An_~pq@3@!zTM8l$NIQ13`Om<4 ziu(gY#&B`~GDE!xxf; zcYhQF2yBT73fKK-jE8W6EeqgI6Dn6bwo0hTg_ zt(vP~7f)YaM|GupDQXfHR8(2_a0Q;I@w%cd2I%?;fLV^c*aii}f?Sgfx}Dl@AE(my zH3VypWHk!X`+{U$%5(EigcxU)M^C}NI1x(h`ZI7`r$^kskgSuymI!HOnr!E6(?B#q zoCmy*@i6|y0A%uhpO=(aFk7(bdcM9&4D;JZ0xuvPMDX|oG<{Qj{rYo3 zam#(bJE5vq@Xqt7V?tRXKowYe98uCDWB|iFzr+vT3kSsGA(Yy;bGO&YR3doNcNI-T z=%`Ntze`pFV>!tB$d0SRvvZtXon?OoIXpwwON25goC2n~^o z-doRrN{bO>jAj?NGvT-c1BZ|%j7x!Z+8SP}nYsNX0xBP70+@u~LxcdGW?=H@I zCZcmb12+P9a+Up8f+Nqn_wqsdz}`#%xvpafCqj0>YvGtE#N+D5OeL4oQgs5C(mggbnVjE*KrD<>o?UJdCZqp5LSM?ElrcSre<-*_{sNhIv%AtfcXPS}cNtr0R- zP?h!mT%xJ|)5i0~yThB8f}c@~Lg<~@tj!;?mZh1AlxTc0u+Y~E9C>HxPFK$IaDRT` zSag@`M&*s;>?=KlubGP!LytR1;`XWUc7itRN&#q^32a*ft~l4HifGvzKwYVAo&w2z6G2fl z>^Y*(1RMnQo}g(vjRM>!vSZ+c;RXdY-fH37I4aIQA*`hRjMB>j%m#+sFtqU1Os%M&iGQo_`-fD&H4Fw3fa&U$9MU9se35 z3fZ6EH;9`(d8e#KXSc7;Nm7xVm&LmA)dDmg$hkztwEH-@m1Jq%SH~Hc73lbD^3pZ& zwFnkfsC?3}rrVeH4Bp~~Nxw+e@1G)3RIe95lH80CI4tK^Zu@ zAwO=Lw58*<^B*X?HlrKaYo$jQrnQ!c`@9|do?%n)UTgDe+ZXNYgK0{&d=u~SE&P-VE@AAyHdb?8n{LSk7aU6>~clQ(;bKlx|Oy@1!&u0uD^n8k47r1Kknh~#*$IO z((&l{}Qyl9~sjguqL+G>s5aN;dg&gKRykR9wxj9ZtTIkJUjm7|*>}c^xwnr>CK{@SM)Q*Nyf0*Kv;3k} zuRjTt=H4f%`cSdMVg0E$d%Vd=2DbXqur77}lmIVwUcUJ>V$9%0R)o9&mKocX;FPt?W>DVkP0AFdYxmXV}BvJ!hs54WMuw{zfS z5YLL)mBd~J41hJNQPp1r_Ux-RQ1c*}RhCT9c3O#)hzW(aI7~D6;^F^+aH-%!NHK-T ztCosJt?n9d(5GDDu2(cZ4|o&{Dq8eVD5X)?T#~6Bc7RKp=oaX&B6_v7>RR`*Z|m`n zUO-_&FxJ{$kRM7J`T+UMG`gLA1)3y8A9THMnC^9IYwsxOQ9ko1HZ^M45fhH=b|Kgu z7VM}!9o^J0(}*I_cunn`Ms?qu<2$z=%0szgd*vN-UnYzo++N)4Z>INKv!;~`&!?q- z87BGGmM>QoohA3&N{h4=(e%g)wP9I{{rHy?3Q}4r1&Fhtlstd@BIX{c)|GcFdjI<) zQK2ZVe)J_7s(hSTDu}+Q5~nKOJ)gZGM>KR6S~A?bMH_!x{cbyGghX zt^@60S=!6HK%OQ-E*R$$Y5cK)3nJwbgEdA7FLTE7 zE;GW+5Z>gHFxRKh=u(mm))Y{;AXnU5r%T(nBVE^I7w^j!(BA_6jmzcUL1xgQO+aqj zFAOCuA)P~lYj!xKt+tX2W!P)c|H%xaV1(!Mr&m9yMh|H2axF%}1Ta^)1SlxV<=FU! zc{?w*gtYhM&egy8q41G0yFY)7j)hRi5YM@Zg@W;#$z3NL*>P{YBoRGr=?Bj;zQAS= zluNtyrj=9_#Xc=eo+z;=s;$l{H{?uY7p>}i%h~P;@uAtO`#w?AwZNN4vny7=pj(5) zt-;gY8Mz32!f* z$=URt-8B1rcI~3ZvOFE*dCEJJO>v4aN4B{|P~NKQSO1u*&*a7ZX3p|j**LJpndwP>>CL;tv|QKQnJ%eB zNI>`dtG$J|mT(tO^MsAsuN$iHIOAW@n;1QU&ti&o{47d(kr%f7I>v=lR>H?1EnpQK zK*tte{dL=ed>@=A3m}{+hxco-Si+CXxg~Uv_CUSokLrIGQnI`wK2(D9x=w2pCbS|k z_XvgV;yM33DC){6T(&_!_`7#M zpEdg66Y*JT{_qO;S&CnhW0)xGiN;XPN0<;mvbfjpe!_JLAV#`!l0V=3$X%=@odtB> zXkG$56t9ps^_f0Ik_)n6P1ezEm}tz2XpAhfs6gQ=TE#{bZX>(`l*8FYXk@}L+Sy@r zP7rB^D1lVr{l!^Oz53MGT<;1Tf4^tANf9~2pk|Vs`$_0TiLs0tVJ1$D+SxK~W;V_E zWFGiiwOV&~K>+t)k*W614uk#Yr^1QXsH*Z#&uAdnN1|gLqVEMz0vzC7O}rOzl;IuO z!~G~DP3^)1nb`#%fX;YD^WlWodhg>geMrO^Bkre@%=*T*y?1{P$w2ptQwW3(UBXbE z`$aA-uziF==}MPb8?O#hhw-7_9Z>v4e)nxcwf3|oK}*<@My-O(PY+s>V6+|kw0bfQ zC-Ow!Bg}g{X)|`5!|m!mue3ePy0EABn@sYYvWQ_^GgXf3A;Zm~Qy>OS!cAS;fE~-7 z+PZouZP_hX%dpR4m~7sNdD2U(3GD$)7Gc|bc+82vdEYg$H6CoBuJvnFeKS2d(#9;M zUEF#?hQ}U%_*U0(?^_T3J3}1a9JkR|&uHAm>r@HPen!I7ACtXn=yZ+yuIKjBBI{ZG zHf$pDWaU#kZTeej3MEW$CBD3E7lESn+RwXxfv;LInWGm|FRPh;l@wV1f>94lAVM5!0EJOq z>j856jKtG=?29;5)7_ke2GJ?Yi<={oB}__f-fc1B zCOBv@Z>9xSeI@Frg3M z&_;_fxDu_(8badb+=|@LLp~D&BLlv`e1Ew=%kjPdkAsCvW`6-&vCJx+WiyZv*3J`&_Yb0JmKdB`DTCBFh)8+JaWoxfg|D_DA( zR-d24_vM;M$lb~VGc?N-o=aH6URS0rL+{@BWP8DTzAxFMBGI-$QQux9Mip$@m&I zT_R6%b@X9VI3|s#pIk0BbZ>Ohxk`mMskv@L`3V0O>ypDudI1F2W93_6wg$LMTkm%2}b8vOiHUTvo#~+|<%B|M{urxhHE#+ZyAQ zbkVw3R{FrE`DVTYj`ko@RCchqy`-KXvgB=1$Jf&e#|Di7E6aJou3I*s=dqY7cKsjH zr@*mPLHOywQjd4vnzar2UDvYBB-%U6qpz&#JZt!YCef^Ni!AZ7UVacmn}rz2uvM%y zuN%duO!NWBq(kN%`NS)GiZUE!4B&ffQ0N{Z%o*>@4bfXpR z^RBr(^%JscQ#-ljo6%@Hd|%pDN*pibbihf?g{N^*eO1Gw%)7mWz5qrX zVr4CSQZ}%c)HS!Z)f?!Shyfbp%1cv8Vb9ki)F}5kadd4hVFrTwfn&^E$NF-Q0`~nK zxu*l!$WAYMD@0hsKWaKNq6}dxz}DY;HVd1*P~@xAhedT@!=~P3K_*z+sCheEy&&X; zd4QAp|9zB}>lpHV?9JJ{$A4upJwd*eV*aML6T3#{dvSC905zK@ryl zte0hJEUKz4R{!N?b(MQ4(VVX)WSURe-F(PJYIZN}eq+hd_v#9bi8~~md851q=RNnM zgXw9v$(#gFU#NelSdi6C4v^e5A(Gct9nWeEWe%YC&?1$us{Y`GKgu<+bjnpxnMocS z=CuKUtpvycx}6p?)%WEiHe6qV6vuBRzc9+C_+l8Jj^JW~);VeHEa`67&g&Ve6b9V& zC~9s3&IoLI;@RwTE7p{16*Gh5-gg*F9bGc}u$bB;2G*OZ`PEBK793m{JN+*yV`AnR zi3tf#h#R(_DML#!dP)P^R7P+eY4lGnKGrMhD5C?{l?yHynJcJ=bJ9#*q_3S;^@aMn z?F&@CE0!0vmaWiwyDES!f>dPR*oo~~9WCTXI2OTocX~dO9LnrApH`r~3nTRWm6vmn zZEi3+eOgnpG|5$8mD%OTK&^OGLs#K&`?Nyc^2jYG)Mt%Kf<;Xm*GXK4d?3SDxs&iM zwX8H?MECaarlybn}I)vn~FZB(Gg5 z&lgKELJIT|?bBRCS93bv0%rbf`$&IBSeW-gm!{%ISWY99NL z;1kry4RI6AgpjpkTbmwGVJAVf2?L$GjH8KA_v;GOE}kwO2ShJzY#fKJnHJgCZQ_{V zIO4<$zeg)cMjLFdUlzC33?Kz1^(TogA$=5cj@GTfW0`H@swqE)26xI8pM&gXd2Tl3 zX~B~eGR!C0+7@oPX+No$)+9NSWecjf<4o(zdhYv0tAGF2_Qmis_DtTumq)!X33~-q zbzWQgrrpmkq}D6f`K5l{v+0l>iPVqXxGG0JiDT_iCM)qa`%j;E7W;=ZV^93cJnES+ zF~gNF`_n@^#F@zd@IUYni5Ohlhn7HJNUs=Yrf2eEU0_5~``2fFGAD_(E{J!F z#1nWz^K<2o&gv)XD}Ppge!s9|hvRWtOPPG;Q<4JGP}!`s?7z+;iPc%*AaO{7wrG3I zwpcF-U7n*9p;Kp|M_SgaEK(l@{J1AHqsiX8{2*ASXwUeIAeQ21ZE1~)dN)nz-FwK~ zj6vK4PFnd^;i>m{H8nf7VvA`Z&uDHwvVC5)Mr&KLbcw+~JqS~Y2qffsAkcQ$hC+TN z60mn_@8i^130L7!+B~#hw7w8xSuB=k7r%0pln@p{s6{4eGlav)H)X-4>|M_D9(}fo^@#dyRCKh<-~zFW z#gwAxHFsp+eHhe@Q-+?}g026WABDa-pwwUrNkekKkDXvv3*%(#E*`Ww#L-T3`_z6> zx^s!Qm0KixSk>hUa$@_S%8{6BO&k&~cgmSmyVMaX8@Li08DYH<{Otu2!^4yE$GmN3 zYs?`HOyyCGxuNv5`N4HbX+J413-tpR?R$dKo_%jHpuSt<@i2)7c75~tMP6u&n5arc zb?;vJk-N1eNi3-yfOIWji$f& z^CA-cF?gXM$pUo%^jnzZ+$eY<_I?_q(ckzxkE7u_Oxtu~?>0G#fV6u<+%O&ajD$ZX zkEFPdpijqW$MA8`4nPk-!m?c0fK@CC|1`fM)c&3i1sKz|TtC6F=zY9CM7C)lE!Gii zc6?A!IeXtG5vMtaL61+>(I%osE{;3r**Qe4Hrvnt0H_ns=!%j+KoGke(VcD_(NvA| zrW&)%4Rn)7CC!cxuEQW*{v^SBd{74wUb5U~4xkHL_!-8)y-Mvd9&m%5+1$z-LMF)D zb|syC5>5m=xQaQ$#WL=C@9FvRtSU?39wV!eEyflgetcvk@q>fTHZNL+w|1D9)_$HI z$Bv-6RP32BX}mFHV#x_y6qlj4lX~cvHkTX4sM?BKp>JpTO_`R)tLAk3x#vyGrt^rZ zJgs!&oVky1d3MVxOPJ>W!`@p)Rk`hb!-$}O(jeUuihzK0w@Qi94N7-O3DTj2fOI1z z-5r92bV)8+q`RAUUY@h}cJBlC`{fzq9^-k=7snEptZQA@od5ZcU!=ect(a^Yiym@D zwrRQ^=|NLW*0tv`f5f^!8v#&lm4FFArjLXXwtO@!+i|rJp0=B#?(uXa z%)2RL_k`llXqm_Af)Eyu=^jZ)sMJ}nX6~=>{#CI2Iau!vN4i@EI%UK%)Pn^}cv^1? zi_-Vt`YdLv+vUrCmd@>wN$I^V8o0e+iNM{%Y83N7=>KpYlAa z*{&h92Vva9tUQ{_rihu3wH#AbL<%Ay5l{WJ{%MG1>jSInn-`N`Yp5Tx5{A|k8-H+7 zeWw3XAl8_Qrn~f2A9mkeZ_ixzqp-)#K{N(AH85j-m*Mmp-TgUQlTrGq{h~@~2iKEI zkon%M@*SReQ=>z9c~p4==IA^Zgqb&>=h4fEP!vd^si2`({K=27=X=CRQ+uiD4xP;I z@y^0%FEf*Bk*Qg1{j_8(i&0VS&i=do$&c`{#RV-9@2|CL+j-k6rHVPm#A-N3HjiGKoeVe2t4lfE$m z#+}*#b<$~6dH**=#(zF*CoFeHCSfYUU?PrgFfNUa(=6Zm(dxSm)+J6h%0E_|A+75&~m1FALuj zm(;vm*7VuXL1{|{FK{}8UM>6bdnn@*LFVM@IlUKYzXOo}dF4qa7$1-(*z&@R z?}6YGhx z1ilV+4O~Da{9!DM-c!#|m;1iU7Jc=RKVEOzr|5 z`wtEEtfqjARS5Dg?zothhtB(}-I?N^HZ)lN1%V5!q`f1c^G_6^a^~OuIY0O`+4&Nf zgMz+-d|5QX>1LY-u%3Kz0&r-A47vc?)38%rQ1H-h>gXV;&$C42uPyo4B1mclVSD09 z`Io2kxj0QV4W2idUU-5!Z^GEv*mS(Ys$-SvTHkReYfs78m?{qt`edD7>TH5gML=Ja zR-_jqCtGXcB0S8=%%oe;<4~9ehsX7Tr(Y3c zc7hdGC+@V1Bur8CJ^KV~ERunnt~GjgxSDk(q85w3(N=l;)|IsTLP^^A&{XRC0RKbs6fx15K zL~xBdQ-BFJG&lYD6QZH-rMYMDU2@DSY(^g4F#rxSVSGf%xx?)YWq}Y{hjUKYBz+kG z=DtH@KO-g0RElSE^>46IU?>ZKVS*|)UFZsuOejn28=`#C%A{V=yANoa-}eDId~}X) znjn~S7D=l#)}oHf;d=&FNvJ)-Q>y&EccECZMBXYYC9nL$0jUs%r!?j?$ZGoRLYE$2 zQ+MxHibKBwF1zK7DeUDWLabb&d)N7TbzGVE2MT}!0~S5Xb0sO42e2eHC;%WwVs7Z+ zC0W$&DOLl9J<)d${9>zM*bSc2J|hIMQz|Xj0lIWv-fg|)#!?fBjCO8a8heU;2p>VS zlZ-g&8I>gVYe8L)@SI2eC_a0vlHwFx$46k8e7=uOB*)QWP2%thAhpopA5ETuIw{7i zW~=3%#Uh$-3ie+d+TSvKTW2UIn!%!i(~+c<{RUWqyTF}x6tG)5jN8S7NzI`Acm#rH zzF2}7+{W?YKz^I{rPMHlA`@RkN04tPW7hQoijbORKt7i!8Ns~%>~$=+ov~-p$cW*m zz<}e>jp}biVcTS&2*6;xn-HyZyw%&{gGzKKqLz}WXZM&{2L>GJ8_#zIh#`Z;F@SM2 zLaO_|0@z~aEd1wn=sVNA?K|W#zM9@F;B7JJI z6jxR!_D22^m9tvZ!C1`vvL$u9&|}0I`2UUq_FS)EiM}rX0nYw)jI;ig10X?wpfkF2 z7|K~<)evc$KMX1WeNvRKJ15&fn*+t8%3>f7JPsZy<;Q;S%kYQqg-LLG@RD&LC_7YO z<`cOhE#j$Ly3_hn^KRO11U$hdl1~jM@=_I=JE$1A9q=%!A@v=I)LXp| znjT#MGdx`Yw$0Z7IF1ftPrn{MVgY?nLK?|0(%j%0Ha^~6+8;6Xu zgP|WSMe?CHBd-rXh>O-ZPnj{B|L~jQ{D7w-r20#=`Nl+o#*IqxYJtX zI|%W-8^Xd+YecuioBL~xT7${R`iV|F4gEMfMIDfm-``1yz23bm1VCrf>AlkcW0c|J)YjHN+Pox|D z$b-w5S4WFID*_gm_8toaRSdl0zc{stWiwIS#F3~-b%i`q#pNE=2Bep5-4QFXZ@|sB z#CHK4CsbZ@0NZU&f48J~vN_vQA%2_A6nISt!HN5|+&TgVU6Q4dZ5)+l_y=tOct~=C zYx*0X-%ZwGRHio^yx#!p@AOOD%T4oneoA$(dgN(G7ypr-R|#)uIZ1=hDoB8AyH40P z0ITL5=AmgMs%dElcS??Vd>bVo!a?pjGr?2VoqigzO6C%bLb+8rl9P}xuRy6fq^c*~ zKaacj?ncmZPDyH0R#tW{wWs0?!trn5<=^XNM`4iI)2buUe1I`-(}|D2vVMr5?qx(% zC35#Te$#`RZxEjeGWj#xg>!Na)ygS2z?0_dv5-RE)f zeue?e?sOjOv$O)~4_d!ohd_hvPHBO<&t^?MtlgYc;XnH%$WUjOz^}&{iyG_us<^4y z@}A&jfxC0W$vYD~kZU5f`tfwuHVWQoVFoeOpu%@kJ?MQer10`|R{*GaJfH0G3T{~8 z<9~*Q^8Wl3h#sR-K7u(cwdV62ag1nteh7cYQi(Kxg<|qEQTpBTYJ9uXSBZLimt5*w z%b@S}5G(Q1CQ;ulEdNm9?EKHgV`3rCHPp2ItLWqabRD6qH({4L70FN1`tRF(6V0xfB>Y)wzWZWuR2=` zIZ-iDrQ4W;k!EjP{ynNV#In=v zj+;zoyrnFyS>wpA)95AdB$2=SZni%7zPe$Wo{d>~a(J2Z#Zy?7eirWjZ{s#Cp;SKFlq_n> z5N=hPP(^6qwyN>cghrqo_m1l;Zw0gWHj{m8Lr0gc5K%ZNW7y&+FQcb?M1dUjC9s!} zaeId33?cz6lv3TWc;SPDk7wz!-E`Q`7wIx8@7T3Q)%_@9J$ho?YW3g=&JRa_I|dU0 z_~<%Hd~4KxH@pBWxsi?H_cEYy*|4ZtmYS}~LHx^`j0fSl{NzT6B0j1`HFvkYf_Rf8 zse;$&%xzPJ)KZ{%8K$)Im~#mAu|$W5D*e0p`wucLI2Zd>*7_VTFW<Ga=vLlSk`irt_F3> zWa0XCEA+k4P^_L9RqMCaj+((wWSr8k1syWGn!ah9i@!bp(4AuMm8GvW60A`)Hr@zv z@O`fA-mreSO-fWxnxgs`Ey`CpeZ;Sl3@UQEZAFj$))nvrQN)X}#A9q+#7c34?iW12(Z3*y_uoyJ7t-F&%ipN2`u}sVFeO$$9el91wO~ z>{|}!*OR4a4$c=QcZB>w=9C(A5I*zO_r$p6Cq#*=gL9DKam>q>14kUgmt&iey{><&42vUI?%LK{_$DXQwBcwN)uM zC55syAsZI}PXQeK>_#$|swzKrkB*m;VRuvs8kNOys&yAhZ2pPALLerL$Nctvhr+^|$ zxow@XEBc4&gKogv_&Byf4-VSee0_DSJ568T5IZd<&wB`L4f4Pua3V(LW+@a|Ir=~1 z$*Z!w6Mpe9haW_A*(rGXMJ3W^A5t^KpV?|N(kDZ~K4;7MY_&PyYLw zlv_^ruV2`@Uf%xt76a<)oRHEpH>x1cMn5@cz>HT;73&3BHJx1P=T-$i@)10YtE>sU; zyk%_KDq;&i=vGI))KS|zah#GE^jd<&=tQ-DdLl_8`8ph;He$trykJY@`HEkh z13fn5%de;$B@n>+qY$SL#0JO%wT%4aP!6c+i1xwM1_ruk=8(n_#*KyUKy^+kDqgQv zI9I?1V7c?QhwlKP53?Z@e^}r>%{!Z9f{^%;VRJvPVGaBEc%XlfJPvH=IydjOU`P4? zFYxu_h}04*+keBcxU#&UnbCpv8F#d{5C*_CRT90ufI*Uju14 zcZKwqU}~lhH6TQIw?JY$csLyrAmK8u#x+nlnrfxR3uqbQw+-?_S~cpxsYrx#{d!HL z5yy2V;CJ~9sl0*NyoA-f$vhqPwmLEB;85h;=u{<)K)@tYbPWdT0q?hFdF)*D?HUu- zc*fczh;76*2NCXY1j&M zWTF(;turl|zF0pT%y-4*wS+Vlp1Ibjiwg1DX@Mdqpt&=aqX%$2?(%@OZ3d`jLXY>J z{A6(ygQ$$+Gxc~K#eHQcjsmF*z8sm5%Gr~fl>>BiL>CF6hg@L z+Ydi%`dem8Jio9WcE%UejT98|lrwJ(G5s8)O)ZKdxh?e)WC{ zl-24H6wlM)hW7xmU)E8c<8?fjE8rRWl(X#vCo#4MJ2SFRQYPnj2@GwP@0<4G73bK- z$9y~Cim`pj#e%ZWOL?5I8+cCkUBzr-nl3kz`sp2&i8wL#6;JLHS=|yB66D@JIm00J zD6Jm#k7+EICm~5(@cv+uUbYmy97CV%e}?oK$*8Ck0V83H_wF3LFhy7;1wZBNd>Hc+ z;;m%N&eT{O~{f4}(X87NNl4`AksowN~$^G~O3}TVEg_fH27tt^2Z^K#g zPvRc}c}N^s*a-yFn*=hE14+{m#vKwOykTUzc}75tTCl3XJu$Sw*LG~CV6F#4ElI(( z_vcMUFHaRqX2&X3jPz^Vl-JM;->BESm3Y`P>G;-dqEx%Yg|~X=f(eYcNjjRiTRSFb zQ`OV^p8lFM@ly2S9;a#~2RT}EIoq;T$TCI~qiT1kN^5sEZHSsuWf%I|gXMJln!^$LbCr>OkE+6Sh)hqe7}nI)lgE7!}1xrh7P_k}HLC z2*U0{N@fkc=Qa4?vx(4l=7MeDmsNV#TGdk9~760GighqO?iTHQ_XCfHbi0-#J&6V)tu=;iMWtrv z9!zHKscrk+F#0j)7bvFPjf85?Rj}hdWEWtNe_MCHm+_y2+uvXG{sdFLb?ZneTtG?m z!^Q_drKqOf0l!-=;1tsjAXs|U2%bx<4Pf$SQF zn2iF;kVQIpuO@PKwy-tkXgcQP44L>bxr|}Q%Qpl79)tT(MIbl^6qP9Te=4 zso}?^|CovVYf85`iV(_IeFW&_e`~=176GB33p#`0+eCt`!kUw19xQCj=H zTEMYs{k?GoG^!2Ocj<@wFOzY`r)n!GFNzM_@zuaD;Y0CJ)K#oy&rg?#r9Er8$G z@$awyx3BT{Yx({4|H^fFlh~!~bIXc}d7A<6zoBaTjkpBez7(-vDG=xbM-EskMEy_8 zc=s;6hNhRe8!5Y~a(BLpqoX56Ib@?97nuuxdCm8)j!04lAe+x{TCZIrsoz{vd40;O ziudPS{Xbv0uRl%dc;7p**O;mC`%U}vHJ>kBkfrBM^zPUjksm*L9pm8O%t^<~V*xt~lm;)qu&*R-9tB!+Gq1vZTqRxYl|F-rQKO>;rx@88dfvE-5NEv0@GD?$ zn+^^#ymb{i`!~5r*GSO zhl63{B!&yEbWDkq9cZjw7kL#dV88$ds+vIL;N?<_%>p~j6x++V-(mmF!G!%9m>6w6 zm?8co9*6=9qm?ZKJ?6B1AfpTZO-I0!;uqJSi7&VeT1!c32u>wPe1OL<^5*sXeCL=5 zN+7ue0nW2T=JY0j(nH_vyJ2PsQyH zK0r$%PIci=V8yQ^zvgZMC;&JXsSL92CS;e7Tfd+Aj>+NGtnN_S(y^Mk2QHT@ZW(;Z z?x$|^NiSr$(%j*s$AF-dA!uPHJ62i>O$YOwO(WO>Bf?Qo?cwkf598kMu@?oyxpRl; zxcUgqMZ~8^L)Du{?G_+(5x!g%lG|?|g&d4f%EF&>30#&qbA2bp|{!_zL zXqs(&ktF2VZ*NdLk*&l813UUFEq_dcozR*s96ZCGP4Mn(Zt1Y*ZPiFt%6WynuD8>e zFY%Z($F;xnXWLL?CBFz=tgXrItL_fEf85lvn^peGYJEkjcJbR5Niu6m^BpyO(i;J8 zHo@$Awho2{CN;IO_mximc8Vs^V<#mBxQ#@eLHe!8y+FsoV+|0z_B*uB`vKmsc1S?v z^x&0MNLk^|0yhaQQv$_9-mv0APzF%_>;iRj&lsizafs8)Xcu#6O7_%^RKT@n0tkfH zb)fMdPJeeYQREIK7=!Cc1N{cOmIb<+Pg|=kJ4ay5QUWww$$5#kP3OC9kvf~g<|}s~ zF->U7_Ve1B&QpvnM}C*(&l$p`LlVKH6L(3y44SNXkA9J0dhfua`YOYoKgZ*ac-y}O z|A>MUBN+x`pRgU+JifIM4fH(@7svz_K#x8)izxrWS^dSq#cXx4rv0^#*MF?2;C+|5 zd5B)k1Y3F}eFrADpnsQtAX`CNalM`=?EjD89nNqsz1eYbq_6FpZ4V@l)9}fy+mgl^ zaOZ?sNJzHZ|9*!vun$517eC?#8>@W892P}n; z&odvHRuQhWi_5Ri2kpGOy~bAf{C>kdK>YO#J-`?4Xg z!$e-)u`vWE@qnuag>9;r)4oOh***mk<-KGc%OozSKqaJjP*mEjD^7=&!z|;~<~@%b0T0Syb4!PME0!|A(RwONfOgmP*50(qq60vQh4%6&s|J8b;>hp#GpHRgW)L&3eXkz@kaR%OuF7nErgI&yyNqvMx_|(eXk<0hGlu@_ttmvqnwW*2 zL^AOa0wdb^KI?uk*%(ldfBtuzwO~2*bc)ss)ZGt6b7x?wV$BKzlVez3{kfAf5TuFW zwvBeF!E^?)LXVJcJ=Sss?HCk`NvIx~!A}tI7l~{0xlIsyuTsp2ccDrU62B-EYi(kk zX_F*z+~>SF-SONRf-w6)Udf6V zCWOgJ=)5v&M0+e%5E?G7+E75}V^Yd(54VF z-G5HNX@!njbNj9^4*|p94*jG(1Prq?l@ANT{K_E5fJ_8lgZ-vYEs8B0&BENs!3(;( z6hSP)vox`$x>PBLbyBttKvpwV)R0#fnux@{F9%YZhMaY5Z;=w+7u!TV7_IeRp!HBe zs`Q&ktuJ7;rB*?e(;l~;i#cjoec%GK9*-Zlx#64yolMuh3kBxb(y%5JKg1g#`mB3D zx?F}pUeGcx=kz>R*`R@)wCDE2%^IIC(#p?n5N+l_MQGPoo9TeoS5Y7Y+f`^`H271; zn?KZh=5fLt)*YIl1%ncf5B`GXILVHv-sl(4eq4}0*>QM+M#UGLQGO6gCM%A4v}KPu zrWL;B61^g!%(6}VXp_ZDa+t@TGpEto%1y~reS zrmipIi2SH#M`_gD=4Gb3tMQ$Ju3*j$Me+e&?Xmm|BIG`RD9q<_X@RQ=ovuYv?0fmy?>PVPmj1WL}}H ze{%C$eARX*9*5|zS=lJf_jubWbOD;j7a(o$pk>nhg1?rs#!%S(YTm<9a(-~;$Q~#- zqL6ko)$TseGUE4ZV4E^6?rO9lv`U`wK63Rk5_O(5Z+;SNGpixvq%QCTmpJzj2IIZ> z#rR4pMW~8L3e0T3`GYL$edm^~?;s{N=5b|zB$DIlGs<^6!EtYwk+M#;$piFbh_%o5 zhGm;=pE3oLDZ09`Ah#_!j?T9_fUM${E+q_XYr^**x2`vLR`J7c@I>)NlH~wZ>uwAy z8$G}AEfpt%Kx#&2=8vq+a{Jv9P6nvv54HF8G?Iq;tBpWANxAx#H#zT z&x>km*{fM*t4D4e&==cfO%~5tUk6jP%rIQ!Zbc%OWlGt_$8Ke!E+sJqF^f*GKT>R; ztmu;9%2t0GOW*lhF)3((;rIS6uK{E#o=gboXjvj{M>R0y63KAm_rxthT=n;b-~Z%f=m zFiD_wJU;=QH9dfywi=PBu3e)@juwb->m=#xy}7Aq-nkid-hl3k@frel+_Q>8P}cTa z;>_Rb462)MWIn*f#>S#2>La?z`UrvZ2S%&!$>yjbdEH%!`^IsJ(HUhUy zrEv;Yc zcz#MZ?{Eybs z*Cg&y+ncWX2t&0dORpRZzIDt?*n;qVdoPKf_-pFh^=s0#(Qqv0#9s{s;y8WwT>+CS z`IEwv}i z(0+V&&0y@Y`XXq4KlJ-7G(HQoK`7oAeqvUj~)5y z1!n~V7!*%!>9gnpN`A-dB=qc%^N4tz#=joBSK8Cl7v1siiTx*@ z!Ror9P(-^BI1NMpSwOJ8D@gkkCATiU+Za#mshycS^>WHH61kC}YjOrJr5r7s7pf8O zVG0bd2~OKHEgrJ9?K#RP{H@xx#e?T;stCJHT8*E=BEy2;4-E?d@w*%sv|-5mis-y;MV>#`{fXG z&eR#Y7MC3`6wE-Fci>;As7Z2^p+V#HaR|t$KsTMP_}Q(tDnU;n;E9eu*&FR;xqI!# zlQ&6sUk&||Ui}s-SdNu!RQ*0`snI6x{epjnT?@CsBijduzUwIu1x`Wz)vip!>&i+% z6?2-odHu(%Rr;IL!zMs;4knwLzWFV9>lwM<9)J{_eIGSw@wUnnH5C8+W7wOFqb46S z_^2W6$2`^OdZp9@vyC{13CwWJR?N81i5tQ8lfY{MpZor)GKXEg!{}PA)E!)y->dL7 zt;5eQ3J*K^ndr*4n?en(8^4`Ye#GyUGbl~@7Mg~rSWb?WT>q|L@&-8O$f~t|+Nu%T zkvesKE)LG}RdWuI9dM^E!*6kk<$r1Iyd!t?=Ya*i=*2}Qr_%!VIH*}cQHw@B;xp)= zrmexyodr#FJBNs)lc|eI@(V}~@dm8R45M)t0$%7*2=7?^hz?V37y+wzrA=tl^>hnl z7+%In{G%fPf-pt#){$Puyyw{V1;QRu*lt316I5Xst8#ffSL+>K_sOcF8*TM}UY zh|;89uI=+{+q(#HJMpNaQD=&bPKchkomj{O+b)8i+E~dVHw-o^;`JS zH;WoxP0SrKX@u9V%4clk+Z02=#9S<{kChMDkC8b2{YLPyIn#-lQ&}hImyX7qtCi$i z<-DhqjYidBxu$NY(F!K9LvQrGJH)WD_JeBTPwp~|2Cu{+C5qw%eNAb*b?aoeJOpv4 z^G;7emiMik0@96l{c(zT>9+8d^@|v_z=lJmS*gQFPyX+%C0h#kB@bPvL6-~QNrT%Y z)~IsGit32zv-PUG#UX+llAEk~JU(C9hf2}+L)tlp3A5#>g6-$@oa1ZnPb;@(FJ}q`JC$KZVr+R} zrNrldsT+<7Cs{QYF{I5m6h?a)_8;Dim-WdgeBa9-15-Xb)bVTG+J19Nei&SItErBu zZkIPz?#_Z_@KVRt7R#wGuVzqwYsXH>5aYm#5Ep6KdpmBy(}ET))Y((%!5*GxTQava ze=OY*kUg#o8fVP=Tr}gqSX%TadpQtyP@JUU5B4&igl4a|qJ%@aC{D~L3)>0$teiS0 zxj9S{hHT?pI>LucnFhk|(nz}0OWc(ZU06^wCpsP(et5r=dHe6pFLMNkuh=>T)IJ7G zn!UUS6zsEw<6{fB^XEDq0yQR%thONQZ-B9BqVF%X%kXYBJ;O|pNnlPCQU{AgZc1K`vYWz4!}YEAt?`gbgD%`zp^wFVFr2Vji%3nATri&75Vj2;*8 z+wIc0HTiHptjz(fwU}^1IGK|L6XMMYvLjUGBB6R!U<4kn!bahYH)>AlYJl9QPE+)7 z3L$Gvn1-8vNvP7R%~!8`jB4We=0soWZF-7!=75F35@!)>R)#F_Z0mH3j80q%wtbzH zsl0Me%A@T4H{ulmhq}9gBi#)Cfp;uk*eoQEcNcjqHxFfSZ-38=!)|`VSUTI!FNYt* z0^rGn-ZONCuT<`e9^5ZU6~o3+j2={ySDVQMR5Y$lKLEFW}r+Vs{2p&T(fK9C#fHgPv~fcX!{!ur{5mt4J_Q<}+<2 z@R>Ut*O``C)wR#Lg-a78L^`H$&z^7X7(omN7i3!#%$Sb($)2Nm&_7L6-A0e^Gr65_ zpgAD?EJ#gKGhEnBe=ce`6kmtB1Q8qW@GgQTzc3SN3uy$EYr?)N?Yd1>^S~QQL{Vps z{c=$+9|B!I(!MR0+PK}}Xx`dSk#=HfWd-_fgPpN2#pvZ#itKSN90e`tiT@xnKf=<` z!jgV$*cUMB-N*OgL6N9!u5reo1W5@YaVmo-I+d;jT7W+vuRO9RR^{r*&m^b&!hcJD zM9F25)PWGD#g5@9MTiqz@odr$` z{hCSdHw>^aOiC9me*sQ&>8p_6)AzfH%! zYe-M0HGy(dNx8wgxsUc;@DRr_;jp5_3@4>g6+}{2R_wKqez93|5C!uxU!u!D9Qv-% z`nMGQw{Z?I^C6`WUSK+p7&cuWe;gffJ9+=2*q#>7`lH=sYhoK8@)M*d->$hMAkDc6 zijt43Fjit-`^e{{O#TQValAGy!E^sBoq`O1j-Qd8xPenktEjNkK40w z(Ksefz1YjoTVGn|;u)COaoJz{oRN^7a4f%39d^OX%Vs_IE%lSfz*s&9hg<9;x(~oZ z&>&R1tZZR%tkk6c`9)=5sGfP5i z6WU7kufx#GhO1-p_RhV%cr+Hyoe#BluH~h}bj}&x|A=4VYrmOva=gZ6oN|mAuU@qED%?!ZqRABw?5(9Y&NZm(Gj%8Z#JsMkJ&12Nn0l`qQ6G z$=T;SiI6u6dBJ3+Gf)BbHd!J>5gdDe3pdWRBQ>d5QOhJ7Gk3l0Y+%gn8 zdL$R%^5A=P?}ORdcgC}R;oLbAR{ek%z2|_xh|c6(a3Tk@e$r7kT=BUU-OBm9na#=I z+U5z6ma!G6N0mstt|7h9m)C;2(=*mn7KZ-pKz-?Y@B4}FF%olMbn$vco^k2X@t)kN z*+|iHmbB}8W9Y}AAKJ~6QYUh39*Q9dcMaj6f6(21wk2eU*gzu{^}#-WN|r!6A%FnkOPF zKQWgx)*hm9PP;vfSOz0cOvNw8veV!|PK3$T1i*ll3(jBAaBx`EMlTw+c)s)2VB)J379mM0WGG8&BJ=3ltetr<6VQ!Xx z&3vuf)qHvuH?LL4HF3fGJk2v+{IDy*_hexlc5}hL>Nwu>O*Hy<`>EB}c@wLOonuQ0 zSzJvF2iF!gTup)|!dH*h@>Z-!{^L#v!nwC&XC9K5D6T<>iyZtT$Q7%v@{ZF<{<;jy5kkBD6oQBi(*U9nV)3o zbZO{3~9-sS4ST zMoj^Xd9F%ZkZNge@ccOtD4nbAMk903s@3yVgMG?})j9cR$JRI75fnDsjjbru3+*zS z56fKC7qOi;d&Muu!M4!Lf5a=~t&%)E!`1R{RCF(eA7+3R24a-#b-F>dxO=A=b4 z_rqko+T%sn5^29Q-E3c6I<5I~ScN@IkRxMTz9GKqs-fJS0|m4vb!B?*=U*~;Kk%(&zIoX*nqU&da5{*! zX-1>j1kPZOR)WgSrsfroN!Su{HrCGz?Q&wL5B&LczdCWe`p%j+K1q_^Y-esz{(1mSsoc)D9(bcALbHdpv7^M@XhWoME=Rjp$ADSRhU3H|!xu1q>o9v1NG+r4wOL)OSEghJ6fg_~)_luVtI$`Rf2xy*4p)&CuoMBYicHQfN;x znB!fsq%3jCK+~7tas}8aXQ! zNLMP@E`L;!pGxakKT=(af!Yf3K^zmdVa|Zl+x|{W2oPhBI`Zo3CZ&Pc$>Mltj>&MI z7);LpvS%llhWv`sH=KRve)I;gX`ZOETNww0zVRRuo<sioKQohEx`kiIf(J4o9)BU62r$PJh%<70jP^7Rp^hc!09oc9o-_zkX)3fe z7baU3POs!s>(#@(@&Gsq2yg&Lgaa@|W68-;TmrFTX}o;nYsTK?Q`j&Q&g? zT*W&BCS<9xC3N}D@&%etc8YC5z8V_rE3b}~(yvZ1+%$_1mGLFE_9FrssdW9dYE^Tgk`IW2s`M#D zCWaw9JQ|s}MZkEKJpe4Js*CfDi`TGniylHx>`U+ZeIXFKqxsSR5~Hd+p2t_^o?r}< z%YJbpYBMl}wIw^>^wj`>@lbt0!?rhwv-05q^FfhOTK+BM3>L&}CV4q zg*D!JHMy5(Uzwd(l_k{k_Bi9M^|A7EOHK|X2pDi+aj|b<4nVR)4~TJBYXQ1@e1ZRf zivu82a=7E)fYex)H}`pi^XS_Jo+&GUKPc2a0PX)?2<+Tesb{@#8d-nZ>;f9sCCfQK zfb6$TMp8NTM6qJWinsT%2psaIJL@SH*je4OCSaCqqq;YqtHxp9D|FLaI}_1jufJAz z3785yAYly;4psu*yl>J5fYvrTG#|62t($0_sA9P#2)wOx2IHHrN8duICIGPQhp~yt zEi~ZCjpw6K4FnHtK?~iYNNdNJf0x1@fVNAF#qt%M0QYXEt#of&fEqElbat#CjQaFO z=Q0PI#w^r~W*WU`5=t7?=p%5yL9EHyZoY$YjF06q9OITE${{&Bdn?1$KzrTGAdS34 zlah|MtIcB=_>0KTvO8>QXDlRtOepTokd93k@k~9--BSTRL;y{uGgKIL(U9rnUZ*h;oAT<0XW0!Rd+43wD*CP zceMG?YK_P2opFWDUC1$f2p=VGczD<#JWY1jqZy3qA0VU9)8(G!vgMVPfJa5!-xV9K zR4_dM$&CISOjmu+FHY(&)NIEAFPZwL_bY5tKO-XW1sk&43vBn`tF0GvGuEjW3Kq{ePila8&0D+-#2x8xfb4vECY77 ze7OZQNE1k;gO|l`J=zbW^5v`PL(DX(ZpHAi+^YRg4G|xfQi~UsIPT~lfVjzp9FVnE zW(FIFc8Tr;VeY`589yNt2Y?ij=hSpFl-uNPOXojzop!$&x`i`h7Mx06(!c$)qZq#T z{)?oE{nz~9NRY?rZ{^=FET~fNSpW>^HtV4*L)iLPMIN>KA>yCszz>{>K=_)=S+dX* znE!`M&&JG0*A#`zcd)Ag(EjTXMvVBzWbN04Mqt-*5?^Kwxc@wjj>-3A68USNDP*_r z!Pfx)p9t4_3_H1cd*n|uzsF;Bm*Rk+kk8L7^P@~vh$Ko z@-3rMEAyf?o(Gn(YFh0!W@@2m)5aa47_k$Jr%WJy_4pIcjOT@;C^dvoX zI`f1O5ifhHNb+uQlJp&$6w>kBgYnkw_jL3D4$W%poKj1*`n6fzEKOvZXJ%!5iCFWf zK_ZDq4>qmL?FP%z;di=gHaWOmP&sZ>?QH|&;Ih!;!AUR20p`8dBNvtT26~sx(x@dP zy!i5B`+eCj{c!RR4B#f11{ZO{Dy&|zpqq8b(T&!1c`qxNyMKRkZ9(^CcD_d&$|Eg+ zT3ZK)gT0eZB4QM75@W_k&4xH0rmj)=zOkTBpN&8gk-S9eyxRAjvE2r%;w{q2jTf|ngLGb4NKg40>fO<OyL+ z@NUkl&ubDmHHjP+2`5do{2@|S0AgVdSnuYbnN1OO3Jrvo>OSuJ!Xajao2Hd-$FiGQ zqlmtpXH7&FGO3M{Q%n0kIOxsqG?Uy92`Vrj_$n5fAeNQEISyA({sh9Ab<>{*VL&UP z-~><=KEk|hE`4@cGD)+Zy#QE+g8mbL-^>PlKP9CHPNZKyX~4PL6)B$wm!Zf6dT(py z(0+}f*7I(8LU2Uw_1ipIC?-6@hVfIC*Q70|Cg)Td?^Sp#l=Z9G^hm4f zxwcV9dQF#jbT2WmJYtH52(u~^z?{|fU`WlP5)$&L`6zd7Wp{`M<&^+XTUT-Erv-wK z;ne^`GQr$RjQxONB)+a}ELM`g`uO;G_ru(!m2f7Vdko059F;!nzv*Bo_nJ2N++r}E zev5AN4Y1$w5nKi)Nozy-T2qDwxx0gPeL!dsRY)JPc?w8&D&}{a?>1H^yKA;*o+Ve? zt<2wHRL4J`E&!EKiqbj|oFNi$eWPrb>sI<;C`aW*33~Xy14QpReE24h5p`$bS>oN_ z8Uu7`g7@Ci<{pOkrg`P37vgFwY*unT$u3F+sN8wm&rtxs@dL_9hu(0Qj!Z))Q~GYYV~=$r;g?GpZ{JGHM*qg%DQv5x=6xz+D9*OVBy$^!cSv5A-pxP%yk0DHuhr z`UG$v$ZaJqZdhJi9-Q3-k)eVPBQp7_PY7ZJ-}2Mj>lJS=-9VrT;RSA#q+dtxRi7XM zdMy)u_1DG)E`3x;VDFZKeGY(=f?eK z5|>BJU%NLKOPeQ1ajTEuihU-S6a_Y#F8BAV+NMY)PeH)RK3ojAA}EqSlLBvGCRx5T ztB0;vl^O&bg*UcW1w{-x8t{fFG`lO}4IF$fRL9=u=l<=M{5=5UfEJR5lrQ%c@dnOa z5gEhF9G5KqilBH6;T?DbW4Z{*74gPRFdG3$xcpsk_mvmf4Bmh@kc@WaomK#0RjpaV z;L3~C1#fu2^z5qsGkNcQ5LR<%Ke1kUk<8!?&9<4BXVc)q48y_G{_k@5?{fIpX8nI= zIV?WUDJr!CY$Hh%-=yEOmfSlPAm>-(6Tf$J`e6R~G7I~kdrR;I;?q56nT$-xXf{s^lnB7i@EdQ_D)WD?&+9Ey#|_53r|?uZUKHxX?Up*0&?~s<^+#0Isq& z5pMXZWI0P2gne8Ab#v4!0-m7-xXQINgbMyYZ|UEUkY~*x-en)oSesmRmCoQQ%{OSj z?EP_v|M5}o_wRtX-;5rqc2&e1Qv+A&EO0IFs;WW05Zvtht`*~iS6pT9B)Cf039_Zj zRX6(`xY1`N-=Q*0hWp+) zWco0%yEMQ{_3acM2m7uB8VYmGK*A(h(7O&pW(wnu1mlat! zn}x(nu^uR44%sb*o*6=d{~SQ$^2STKzo&nHjb=X<3%*V*jx&gffuXx@UgrRMc&V?3 z^E9CGm-*IgGsR*o+A>Yx(>O?2X97$$it~zq$Zn0$VvaZ$ZE0!gI)wkZXJRwz9HPyv!+dMZe&_bP}bKa7M^*uG#|lDwt(o zGCzMtR`?_l{5m84bqvH;?3b2|5C9~vutHpiIsp6)+j$ec;d)RlllaD{BZ2|yz@jTa zz5NMXCH0Ve0==t(tr(L08;oPf^?Mx18IkR4yMm69dN3&;e9gW=8F@)rQGxb4Xw8j7 zEhI+38`2^V;rv4jAY;0)Yzt_?y{iV~ozRU9 zPl)us>w`(EIT&fmwwK;NA(}cA=N#TAhlZWPn)Idlz^*(sUhn*{RiJ7i@$ICH+MDlj z5a{2B3v^>U7*tE>#xDTfcXF0_$?xw+%AZfGL=kEO-bgZgfb)P982QqT0S(ZccBAS5 zKq;n<; zVobI9a_#0_g)w_Bt>+&`;CsP~czIVKnRIt=EKEg6S2B!7y4{H)rEIb{p?eJNZoGVY zPmx|nsBUSYHDV|1zR}ME2xxC`&9F58G5k)A9Y{-6$SSH4G4-L zp@Ikqh>9X3pdj5KAl*ZkfaK66FqD)cpmcY`5Yi2zDBU%*bPPz#P|uy+b>s8h{R5sK z_MDk>+{2xl?|6mQgvAMZw8_~Ev>GE2+_*g8!1*Qv`J-$;Krm{Z?p#iE2t5Y$RXU_a zCowE1Ez^4&{2o1*HcHcKP#c9ru6_j&@Pq}>+TD5F1H_V|BF#A}+eRcOoHUe$ksTE@ z&$Y9>j$*u|e3uH;i=DS#^|~iQ&Ah;@$gtRf>gT;zZ2vLB=1sEPpD6B&S8nz-TY~2`rpwJEjxmigWVZfeZigk=D#O+Q#WUcSIRamV=wE(?!q%0S zf+R7ckQJSnCh3)&BwmxV#?;{f-YWOXgIoU<9Rj_{XD zXyW=#NspW3y9mRuP-YK$kZG| zmo3F8|0^CD!2y^MYnJD{B?%KQKuH2~j!3?M&bC6n0?%UPJ^dB`K&jW9U4>c|Oq6nv zxZNxOLgNKJuj2Jyk0o}ZcyoV8x5A4=jDOV<{`pDzUf&!@BX7~Ut z!Bfxyb$6XhKdA5onAk);XN)FK9e@_x*`wrhEM<}ukiX2rk=fMWT^b_f5ThY2_NJ#q08TN|G88C`sXGOK`!%%jxgfCPHMgw2uPgx zB{y+?4eOsLf|OAPjMC&tBbMwxPNgCZCYPD#v8VX!&;H|+uqLLk-}&`Z=6_`gYos8T zq3Qil_dkF8&#xWIV3eAIH}3oY$D^kj2y&S<*U(A4{~Bd97-i>9>Enn0HQBtNh^7A3 zVS(kpM)?ub;fN0Nm-?^7ahM)VHgED>7oYzaWn>l@I7UC-P!#C~p%yjm{UM zK&%wo`D z2eG`P&wf2?NI9_Y>iQiF|F&s(vzy z<1kt>^)8iw;m)w=u-qfJ!`z+-+!vTvCH_L+`EX*2!xHcRHpd_el%oJQ`fHWc8q?n7 zv_VXm1{DWbt8rjL0WSgqL+u8uxA%ae=ae{w?gBCY58)hvA;6641}#5sihsj4?uNN`xvNK&h6v(^kU&`Q@dP^+aU`lfkG!~+Ev!N_VRzCB6B4$ zci~Ufng@TI=?)!({k36w{HX@_!^eZH9&?1h!RpUJp!u-fk}w1|QR%+}KxZ8ox}>HH zClK%9vits-G^la6hcBWQs78Lp*j}{Pun}l26N*}9?Ws4R)zno~t|Lik`NwF$YGZJ2 z;MHF80KA4)=Afbgee^(#s5{}ab^jpUI%gu212H3uCQBJi^BvRf-iW;W>w-~?!b!^C zDXRX*g~Dj*gHeF#Dh6w2*t7&>o9^uncYL32a1Y!Cd5`T-{*oh>)*>|LA_#Ns0S@rF zSpgkHz39sRDyNi*{L*g9xyLncXsQP;SddFoAG+ zrZNRfkmiKR(Ehqd7}df2EuxKMDSizP>;$z(B?c|N3!9+=2V?i}3qN68M!gUswY&Jo!Nkyb189S5iRY!t(GOXfPx!6gQorGv$#!Pw+Gy3lc(kbTHN^HU6&Y=E-jNdfGvE~_2knKT^uTt+ z-`*(2hd8V7WPso-d@~j{9Q02)~X^m#N@9m@&63G8?nWVN}t_Q+0?E=7}h-IOI zYX?YGuL75nn+G<~v`W+p$nHm`I|6B(H3qnnN}2fwOhOh1S&4>Zh?xZdreV{F?l?AS zNuVcLfG={w0+uw^IPi*3@z2BUs0fybX0OFzf=0$*W47D6O~5-j zex4>iH+xWh!M&O*W^0Z`D6j2w=}UuiXJR$}AFCP})_iib8__=I*+;_v!yAAS>Sc=W z>j5C(n2TmXCUbMa@YhNUUdqp=<(C{BRBFTYo|~Bi=uhw!QEzaiaPD^Y!fCwq52M8ul z0eA*V9$1K!aP0!I__cDbJpe`-G!WI2f`gmj{vxtd(@4jmo1+Mvb^7;kOp*`aA~mmx zc^S<|k+N>XF6U>bQN79iTdFV*qM>DNb)&0OO0~gdrCMf3}eD;yLaz3^(l!$QLiWJ)A1P}tX2P^v+7|EfOg~2#che}T1(NUl9)I2=N{?AZ@ zHxh(4#QW7Xmqr1kNVQ(n;{U(D|l4VMi|XbT3?OmNmw7TY)@Kh94D{yfbXy<%I; zJf9T+Gw;&)J=~5=@UHCdqwPnRi}M03=OjSjlR}vwxedL7$JH4079|?Ux3$kM1Z7DqPB1>Houc*w5`OGGrDpkwnAgV;gMq?%~)%(9PJVT(|9O}aHG}w=H z&lq^}f5234KIoiK`V!qs^j+&!tsKAXh@rz2@n~J8He)Bv-GVfsQuN-~$bH>PyI>Nl zQD?cO=vB&!5$+nP(?O$!f~t>;mYj7B$NP@#%U1hhtXIAWxRKaSxgS>D|Fcfwa}ft* z_mO-+LAsS-1&KudP!@%?Y=gik5Uczk;r?I2f4L3_4m(jRZ-fi*(r0%q=sc#$aC&ce zj5M!$7y6d;*Ytk5s!726UT-f zPVQ5x(VbQ2e4g*K^w#6?%yU$lPSc{0?y8>#j?9pZL63jI=J|w!UKR__6AIzm+6Dy& z9@EtWmo(WYtaJVGbP*Le`Os+M&n&yz^7ShhhVm62SQdQn=;FY2V@@q_jzb6d=oC~P zIG6A2DIGaVhZXEN>RaY~6h#&CADYc;)P!U?6sW{4zBV;0FKDR{Ej{mlNG!2#5-@eR z(wp3WvGrfDp?~44%za2b4j^_FiveeWL!LPM6P49+1vdh2KW$k#a3|LJzrYdR0B}Y_ zw-akRoyoqrt)`{~A|~asGr5Q?RzE7cuBQqG2s<$<8RBbBp!FJD73doLSd$K>*{4l; zXl1BPH0VMKP&{w5be&-wZzlq3v|h!koV@s~no#%z0n4A>91U$3Xrsx1i7C$`y)_;B zBGZpAQ+wZgoyU*7_H5T{6#=flyO#oEE{{LflnjZB&qxjtoI1ThBjEbV@CNyVf8^Z1 zC0)YW80ZH?s!il}m^ZB91Np1U+h(_nyVs(bR1$|jwJF7@E)0)8B&AWlS8W>E_*kK#x@@8uCFcZZJ);A>RMY?s!scGxm%>*~z(c(s{h1 zUlT3JOm{fw*}req|3M*y?bj>uD~STIx?zxfYs-DZ!hcFOR_YWnvuUWLdKD-6l~_(( z=#6J`mn`9edrU*a=$}e^pPJ;fD{J%wY9)-&wPuSBlROVr;>lg*Ln7i8?-x9;4rm`_ zvD|memW=Ei6fBUkkWVx3X(&LjB+vx)Qqd>gI8X3A5wza+C>lUlmTh>LUlCs13Q{-2+R&6@mNvrfd52S3k-L zvl%uUfZn2BcQ(FLxpwtVo%4`0MV{JcXbcq(oJK8h*R`=j8*Z(q^xdOnrO=t`vC|eO zbZv)d$<%1cGGQ|Yp3=|naC~q1v49ao(Eo17h`VMH0&f)$FI_WdG(ahO5DxW|Jc4A&3jA6(TQ60h z+?ezlon2wm%jByD)(0qapI z2_4T^Jm<05VL0tXQI*lejq^(v>4J(ThBoY0|7^VcEx(z)#d?21+gq3rZ=^_feW^EP z>ws?T?iT)y&t2Lz34}6FVwB(2Bxr_ra(J?GSkJHd7fEjUoDB-CO8%J<|9vCa0e%RV z^)o_TDttz)2CH^{^@)n@A11GR7?@Uu1<(lt*~}9Oc6izsCf~6zo8^-u#V#JeM0(rm zBJDRe3P%0Nx2R8pAN*^VL=FRJb%bc$A;o2(Y(kn7hKhJvzVVolDW^~=Mi$KtBvfvi zwUJR>>}L*wiJ)FyftIW)H|aa%6-x6sH&P?#^!aOAwyrlMp?G$-75@d-@f6hdrn~{J zmVj{5_23Ry?s0fHVvX5jaZ24t#EQ_O>YxLmnU}b`*>X`usoBH!4OC-dotjxTMR4R8 zo*u)REOWcI<$Bs*m&u=>%rKbcw95?m3*^kB=&HJI1JJ{>(&=tu5|xu)*Oeee8Skdi-Wn?5M(fyxFgd{gE1B8)#kmT}3Z# zJOt&K>srLb^pfekd3H1#4@FzlszlS8wvl$yey>2)lXN3h>WT_V6E`z?&SG2Hl$?vo z?>#pYs}d_;{_QRPYd?@-uo`0lRJhl$@lwAMk0&Mu3TFwG^_fHl_dN2>Ym1&)WS^UN zH_Ni)WlS1o*?WV`=TEXKl#MHjXgpnhMsW+dHOG9ca`6~En7bsbK*;^ocoqpUB+?n zbwf}IKFPFp18MO?c49*i$*P@F9piKmV&y4tDmXb+)#H4Os(DBik@DB+`s))BZaP;S z2V*u^1=-s)-i>q9M4M-(d^HUY)1?%?F@k!U*KwlrQaCsS@h4himKw1X8I;C5Z5rm= zXr6N8a%Na+Y2)#=rf#c})vLW-JMEKFesxpHr14JIgH39V;JdkJ&&qquMDi#FKuPKri-3l{acn{*E7_~kduwjs32@}Jf;0!tp7Ir4FNp=jhw|vVz|sRwQYsEWFa&s{g=S^>J>d= zaZM4nNxDTbBxqKhiqmhS#bCx4zpCOHFOB54QmTqlqw+JcZjzkHQl z|Bu&>(E*&%n4=3X+)$AB#KIG@qSb7;4De@cxWb70Zkj`l#f6E7W4BnAy)FZ;2O?UUt*xN6qZzb_eGV6R5qGdu+vi&yKK2xlZErxO>E+k`U zI})awKb?oNxrhk%1|}EcPMj9}D3IJFKHl-m&-K&v5avI^W{4&pZZH z)>-=ty@V7jj-Z%}0Ci%`(#=0G$BIfgg?>f3U%wc;#0cNVntF^wBdz>pn`)*DM@K*A z(YIkg)Mw~)0Ne2#wPim-p}4-`k)C*A3&->tZpF;MxeLqPM~-DS(lWwXSf{0kp2kva6wLI{`@BB%~rZge$3BRw^aC>Z2Qbr zZ$@c1gw9Wf`viy8{hueEW*MQCLcN^g?)N4ZCJebE|OHB zzCz9KS~6HVBn9~n7I5|+R??Q6+^HaEg>IweLNum1OoY>CarZi2-5>9jY6KP}tzgyM zo)vaSkr9jL;B~Uz{2`CL4c^@A4}#b742+jjl$6Zata9cc%!-uXTN-uAH1<&_I=x1p z1A`G$m8k>LZ^L@64Q`HdZ52;G5d}mzzA4)1MKC4@RsQT7xmEYcsgUg*X)j0Jqxzw~ z(M*{L_m7LSjck)jI#+4F&z8|??QV`YSUP?%gZ9^pwsw7s(-|15+I?Yoq8hiAQ`xUK zTsLXB+EB)k%`|URek#Q;tdsqE?R5N(bXN?cft&5=H2wmDB{P!iCO&e5dzwO0S@)Vy!VxYQ_uI0<5@P>VS~VPzbF65)RM{ zgzgUOUJuG84-Zfi3B0#ZzZd2hEkOa%NY$#=OOAC%I`@NUn0C&dhmmq93iG@p&p#odVg5l@=%1!X zK@An3rRF8UN~iX2C4%i~390I?e8o7k@bL9a^~+v{xC2On=(H!s ziBcZMaSnX2wC&15(aDKUBbtURVf;JKuW87Wq?cmk*fXC`I41%;$ehmMF~E2Eoq$?+ zl3;YG(Am#IghpZgL&>QEoUv#OO6?Fx{^IdPnNwed|B5(OUkkSiVXL?5+L7Rw3#V#e zp?le@YU2ocm!X;45S-W(2oIz&KYEzVz5ltqmZWUpm;P^lD@kmIUjsbMRIWMz6<=e zr72N?9flbzNbr6+J0nbxw`&HcFMpI9Qzru!#yayBCWUCtX2B^9ZNA)|fzNNQmvuQd zVUQdzZ(v1dpfiOCdX}>Rnvgq$l@Lz0GODpQ3XE1Jm*lbS5`s51As);Rs|$D?hWm?B zY#ud~Y?ZVUJGeD6%W26K8n`+Pn8fHtpM3ZZ*qm}LMXT^E3`UB=YIKMIz8txi6fcQY zn`iYq_&XO11UTx=VlUoiQB*(iylj{T5!jFSit7%S7raSj!*Mme%wOwkORr-eyMjtV zrS6@=H)nAfYF!Cc5)g0lAYu^>ecIFOjMnBC7KFO3*C%pcLC>r8U%ySXt0=EhoKd8$ zA_?TS5u4Z-<%2x3RZZyDI=VGe6~DhR&7<+m$dZ=x#mo04-EUYcWtJ;TESG6HL^aG& z#ay>H*pny++dhUr&St%`cox_*2zz=-AR{nEcZ)?(!X0{CgU(t)#?RlO3pzvSUu`hH ztL+f`K=Sv?HU4huaMkJYA&G9elMnPQQ!bA|vva9-AfUtr#6y*%J z6G%XE`9L@|o2oV}jdT-rs*%EeK^WaBQ;=NI^znp{0Z~5klRyt*YkgRJ;4E-zD1yBT z+KVO1T27Tj!8@oVEB}w1M`?ky9egwbgbg~1QZtv~Ray~(`*{isPyoI$whTyT{k;%k z@}TcW)w_=gcdm=3mg5**vT+V1dNV!UP$q19_~juS<|&qS7Q6i)VGFC~|SS1Sqj z$`DnC9DBnt(oconz(QR|73cMKjdzL`IL7>tZy=>1QqvR?EnUha-kuz4Mh7-RN$DbL zGj$K(_u=8_J**qEJ;c{7WwZ9=2jf+YW5f4M&VL-{V(kf^zxa$jr?T#5;U4~zcAun` zo0=#dO}WY5=<|~lncq-^_z0?h5yY;6ua4g4R&3ryk6EGYSM3TPy`xY!W7u;>_>J^$ z^{1UE9kWzr|ElPw#^Kz+Qscr?shIi zz@RnP065kD!{Z<@CV{*m?^9DI)q>PAn->v4Em@6s74@W+f!50vx`HxKXW8P~krDcx z2v}*Rvm5b8<&SFp9TWRq>XHx@VP39Px7r6GRdwO@kAjNbD{7YX^b1l^b>JO3T!3<| zp8%MGZH%6q`AUWm6vLG3UQ;moeIEn;uBhMCxAdj($h;emCcm_^hT*YBKcmg?`gSj8 zjr4p%!i4B7Zk|vzdRPzsQQ0}z_#L;=GUW7ttnvjHt~B!})Yp%k{Uu5_hnqe;*3mdW zuy|aRSX!1Hk@&1kzO85V`mlu1FoSu_UKpEFO~qi`jx+7P3Km-N++HYa($4t^#ym86 zMns7hg=pGTdqu5&m+{NReyJUHDn4|Lz3yJvExdYm^$I)0Ju2-vn*?>YcV@G>3K}0! zgylq%)s2Uv(q@Z+Kbd)0ZgGqXJht>Bc>YJm*>}Zf?|`(DC;)oSRGp9FDd#H13*!J< zI+hXrE8p=f*siD^QS-@Ukb75=w7*1)+h# z!s1^ksLyj3U5_Vdvv8{N?K7u9(O3cd+T7?j40r_&5qO0Tox4dnFj!Wx?-w?fO@Jvtz-en{@kQcl3z_4pYr^A$?Gdl`Khc#sUm zTs(Dl<_xq4y^{8*C5(M^yT3n(mFBF&O)H=0w-Jsj9`O+aD%s&wKx3OP|ItvU?n?8RH$#kqK9ujCMvv1(r!U5x3on4rB%{|5~XO>;;M$uhK!E-TUwATGh!j^XV@&S5K)t_(8(D> zHX zXlZMR6fz5xt5;M~^l#mC6M5kP=tz|~>ubd@*2qx{7y}O@ccPw>)kLV@#qBUhcrCxa zAgcJ4rO8KKA^qb@mO*&H%-0h*xfWt7dUWVenzcoB;O&CwF`Ffc9h@#|@B0@~DX&{4 zThWyV-{c-7+WKN75X4Gx`shw(FC{d1Ic>%!{$6NQ48>r_w(}n6Ox;O^r}7=?TTsiq zX4U^L!5}gqyS@-(5R%57DH^7<_k>uP=?Z0t&DXw(su1XIo00!n+GF-=`$onqWC3GQ zmtzB7s7V+F+M430w=JjXPpV%MQp^o~o$uVpM2r=9zx(7Wo^1wKo#f!5OJ--FSyj`- zdy<%g!Sd@g`~6qahnf^%)vUpH12-GtL#`2g{Xg@IZpPCld?)=%2@b;G!#oqTVO}GLl1T7$Jes*#+H#SL!sT>4TusUmr zBf|71b0|;`h4a+9E4w9(=C$|;o7ZXg?(h)?API~SH>=3|YTF7m%MuR|P(7a?9xZ*M zqm{$G`J?p}tQ7)bqVRZSYX}@A?!PK@FZ0;a=H*mz@)l6Ud0%892Pz-5s}Ck-=x` zEVx22H9PKY#6~W$V6oS_pRfzr6j3W!q=5b>elIzq$&aIv>#o7)ehZzwJWisMLJqOE zKU+3G-<32ai2snlIq$@Ey7>M4;aXu8MfLb@jByB3$O=9ee3JO-^da>U;YN=W$65O#TUS+Y>+to64u_gRE9vaP?$*NAx*8)& zErkuC6&B;+I0cmg0XQF#(W2O$>^1{51^WpJ$QjEsccbqi zGJ)}yhsIp~Yyn;fhZkO5Lj0b)zi&n5CwCx4LO)wHJS<(Q`{p2iq_NE+2di3;z+MXr z>i*Jl#u60_JGAj}#t{VUZUC<{8!Sww^ch%1rC=@*aaB;=R7 zR^^>Ygf<9gFZA)jr?;-^&Z|G8L+PvjynQTY+WhVJrgC3UGhl^KLJ?Zcs@)Y?pD{X* z1o}zqS^jQsl2L($28e^T3h!bhvm0O|t~57K`n65ziG4 z&CMH2kH&&81rkw5*L&{(uR^A3)-qq@OI1cim_tRWQ*zIGed#L>Xz`Oj!VJ~7!reeX zIPp5nye@A&q_MI|Z6c)OIexkPY!#h5#F9ExRKyJ7+jwrnL4*^N05@>xtQ>l~{L}08 zN1TE@th_JcVnW(Ui4KGz7bP8#%hc-|D))ct2V?|%rL}t=tj@EnlP{;xbX<0+)%6G} zRggYXOt!VE{x0y|sO%N4h%gIwp+S^K-uT%0*X-ft_SiT*r5>u)uA-=7xwP8J%CnPU zp3bQz-BMH6hiOnjmmQ%!-%mxl7CIDOSB{D}Hn)NgoqLZ-e$&BA-TNg+v!{^14Pktr zpIYEs>tAWp$4N+FfgB<8m#ApS2u3`k<#o(WcubFG?I<^S4ZT_Q^kH+prStj-bC>RD zH<5Iu9c<~_>sZX56sIUP?X=Cdg9I-*+%yroNj~-(YMsPm2z(-2KZ$O0HLUp_g)>-#hf! zzWwf+wbQnu7A~v~@soi?a7$ljg>W4%cAD1A>R~U5Dw|~18|`Es|8~~*g!1)SzjMTtCNl%II@fsA=U>VDcZc10BxjT zas<+>2_Lh1e?p2%M-B8Z_|hc|_|}KkS+Z$(62=|B@PUB4NJpRIMF{=Pe0!PbDq-XN zFphTKHdI8aMeRVFavYsPfdzB7+a7UeK*s3lgs);!Gi-z*+D z>t8-cP(cOP<@~g+BBFZt1ur7F%W;MXo^S1ui@DnnK+?yfGak+mBY%&5OOA2(*aT4w zh^QvFqnXVyPNTyq-QD7+02lY;ju^@kfqGV+6$o{*O!-TFu8$0q8ReAH<-QO;HKh(M zOc?&ImJ+Vkcfi(C&9BN-?2iB?9Dz^Fo&R_sk^ngLmbLnbkxXTl}VV+*_Pp z=5YnLD%sHB-+!>T@HpYmQR5G!xz;{ioVS?k73dgM-n-`IjqaP#^?H4-0RK{`v=1t!pR*OILMyYG2TWzJ?b5V zKOWn%qP?`{Ne~bfv#ll6L~?7z^XYB6`>GkXPLsWK zpQ5QfA)&53jyFdR{Gi&ymJ8?~k^#EbK{L@tpGwHB(Vu*_{r>F-3}X;~Yp1d`RcgK=oibPqzAOagQRyy^Kx+d)O8%=`BtZlG>#sVFq^lGs`Su2$>;vZl-muEWz9(m9PUXFH zWvs0GQo`+jto&av31Kx1^f~`)dv_*YInmcF$s%bAhNBk+sSy(N^BJ!-MZR^ta%QPh zzdtsv(KqNnn}?U`AURiW=OcR?tzlDB0g|`_3JYWG7wf4GSssfAg<`1_#jd0I>&VTd zj7lZ0DvK$o%Sr5J9+qP{C-1u$D)nUmTS3&hZq&Oz{bQg0eNe*t7`jlhX?xNFzAUf3 zoQ7JW%H+l%Hzy@p)0<5gs^~Ot&If~)A-}_A{ zaHD>P?QU;bDQB&Gd4;s&7sndk3G^fFikAJY^$Xprc8)aXLY>fJmvcumRSI;#Hk(5U zc^_vHjhHaT6WdRVN!Yw|YU zto@9q>GPG;xrb5_6<*o@c0zH%OQX3zbS=+2TM#LKr=i!bCpVE(Y_>zD$5y*?geybR zdhjPU`g^zMtz$6}SCKR?SNE-9J_6xo7TaD&nTzj|oq8!OQ1?u zmEzTZ=U?PxbMIj5$!ds`L}<6;lWF5k?IF0sW9<(*)V(Ob+$J}ElqecpDB;$dy02vG zFp}Zow~3od2;t0WgNmJ>G=3E=srE{t<(Xn9=}H!>ZCT&___~RJdu#FQw-ByC!MLd4=Yu5cDc)?)9$w-ai7W2ne75gn(Qez~wx3%^uL>-Rjv*N$|Z*S%Sa#wN91S#a#N zs+`@ZMXG!|l-;mMebxj7VFSkjT=E@NBjNMb**4jn&jl-4eyVCtTG$ z$V*&C6_5lKvov_q{6wL6XO* zB%jMd3dIGIy~$9X#_l}k!eOrWhaO;K&$@pR&yik_?vDETHB$Njy+m9I*VWoTJf68w zxw%CWDn5Z6CkT28smynXrO0u7Zf^OySNWn-?#(;A5Qq#LJNv%*Q0@mODVcJZK4^EO zqsRU+s=s{^zKL@$tyM9tNcoPpPT#gsDv6DZ=KyJcm#4Y$059$vQ%f6^FRZ{+(;448 zXtTejVS{U#+}}&JRdYt-UWUIlhaKdJ(}az*M{ZxPo==|mv-X!XWc^2$&wH`Amxd)a zu*~eKP-3k9|2{ppaiXYve$ppIxoJB#^4@uzetwX-sCgiXxbwY6$(cDYn3DO!FD-zl zj+)k_y~#H#`zARk?uuw#^)q=8ap!xrpzN2c7oe06z4v{yASM%)uxWx8hs%}wsi(`7 zMh4mTPPeNkp5k6kO4}7f(Gf5>5^rzlJkPzj>6$|Vy{beLpFNP)uV-$P95n&?%HaPX z#p7clpcxI6o2yLq73tO)13}N7l=BlwPOCA}@yxueoSaUe3Tz3u$YD=yrgZ?O{vMzw zB-H~n{e7A@a-QF>V9acdf6TTZe*%>R23A%Dphc~-+L!h^nOQl&1E3&6pXk5&pN;bS zlK4bo_DcuNWf~?ToFL!LVFINL5rW6t<2rheEwFY(g^o9^8PZ^qs7JeB?}G?QgVss= z#rySZ&&{4Kv5{XAen^KsqTj7~XRs;seP6Bpk9yzDG0%dk<<-IEC7Q_7rOVgPwVMUb z9+%xrvT;MTj?pJoerqz#7Q74xgx_{xJw#QJ1Afr+!_BEIy#_b7mt8lDi=Ea-b^v4U zjZl�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 F{{vjYB;)`9 diff --git a/setup.sh b/setup.sh index e69de29..6143450 100644 --- a/setup.sh +++ b/setup.sh @@ -0,0 +1,160 @@ +#!/bin/bash + +# ANSI color codes +GRE='\033[0;32m' +RED='\033[0;31m' +MAG='\033[0;35m' +CYA='\033[0;36m' +NC='\033[0m' # No Color + +echo -e "${MAG}====================================================================${NC}" +echo -e " ${MAG}Welcome to the ${GRE}KaizenLAN ${MAG}Setup${NC}" +echo -e " ${MAG}Created by narlock -- ${CYA}Version Beta v1.0.0${NC}" +echo -e "${MAG}Please make sure you have read the README before running the setup.${NC}" +echo -e "${MAG}====================================================================${NC}" + +# Prompt the user for MySQL credentials +echo -e "${RED}Enter MySQL username: ${NC}" +read USER +echo -e "${RED}Enter MySQL password: ${NC}" +read -s PASSWORD +echo +DATABASE="narlock" +SQL_FILE="setup_database.sql" + +# Check if the database exists and create it if it doesn't +DB_EXISTS=$( + mysql -u $USER -p$PASSWORD -e "SHOW DATABASES LIKE '$DATABASE';" | grep "$DATABASE" >/dev/null + echo "$?" +) + +if [ $DB_EXISTS -eq 0 ]; then + echo "Database $DATABASE already exists." +else + echo "Database $DATABASE does not exist. Creating database..." + mysql -u $USER -p$PASSWORD -e "CREATE DATABASE $DATABASE;" + if [ $? -eq 0 ]; then + echo -e "${GRE}Database $DATABASE created successfully.${NC}" + else + echo "Failed to create database $DATABASE." + exit 1 + fi +fi + +# Execute the SQL file +mysql -u $USER -p$PASSWORD $DATABASE <$SQL_FILE + +if [ $? -eq 0 ]; then + echo -e "${GRE}SQL script executed successfully.${NC}" + + if command -v ifconfig >/dev/null 2>&1; then + ip_address=$(ifconfig | grep 'inet ' | awk '{print $2}' | grep '192\.168\.0\.') + elif command -v ip >/dev/null 2>&1; then + ip_address=$(ip addr show | grep 'inet ' | grep '192\.168\.0\.' | awk '{print $2}' | cut -d'/' -f1) + else + echo "Neither ifconfig nor ip command found." + exit 1 + fi + + if [ -n "$ip_address" ]; then + echo "The IP address is: $ip_address" + else + echo "No 192.168.0.x IP address found." + fi + + # Create the properties file in the user's home directory + PROPERTIES_FILE="$HOME/Documents/narlock/secrets/mysql.properties" + mkdir -p "$(dirname "$PROPERTIES_FILE")" # Create the directory if it doesn't exist + + echo "lmysql.username=$USER" >"$PROPERTIES_FILE" + echo "lmysql.password=$PASSWORD" >>"$PROPERTIES_FILE" + echo "lan.address=$ip_address" >>"$PROPERTIES_FILE" + + echo -e "${GRE}Properties file created at $PROPERTIES_FILE${NC}" + + # Modify the kaizenGraphInterface.js file + KAIZEN_GRAPH_FILE="$(pwd)/KaizenLAN/public/lib/graph/kaizenGraphInterface.js" + if [ -f "$KAIZEN_GRAPH_FILE" ]; then + sed -i.bak "s|const GRAPH_ENDPOINT = .*|const GRAPH_ENDPOINT = \"http://$ip_address:8080/graphql\";|" "$KAIZEN_GRAPH_FILE" + if [ $? -eq 0 ]; then + echo -e "${GRE}Updated GRAPH_ENDPOINT in $KAIZEN_GRAPH_FILE with LAN address $ip_address${NC}" + else + echo "Failed to update GRAPH_ENDPOINT in $KAIZEN_GRAPH_FILE." + exit 1 + fi + else + echo "File $KAIZEN_GRAPH_FILE not found." + exit 1 + fi + +else + echo "Failed to execute SQL script." +fi + +# Prompt the user for MySQL credentials +echo -e "${RED}Create a Kaizen username: ${NC}" +read KAIZEN_USER +echo -e "${RED}Enter birthdate (yyyy-MM-dd): ${NC}" +read KAIZEN_BIRTHDATE +echo -e "${RED}Enter weight: ${NC}" +read KAIZEN_WEIGHT +echo -e "${RED}Enter goal weight: ${NC}" +read KAIZEN_WEIGHT_GOAL +echo -e "${RED}Enter height: ${NC}" +read KAIZEN_HEIGHT +echo -e "${RED}Enter water intake goal: ${NC}" +read KAIZEN_WATER_GOAL + +# Default values +KAIZEN_XP=100 +KAIZEN_NUM_ROWS=0 +KAIZEN_PIN="1234" + +# Insert into Profile table +INSERT_PROFILE="INSERT INTO Profile (id, username, birth_date, xp, num_rows, pin) VALUES (1, '$KAIZEN_USER', '$KAIZEN_BIRTHDATE', $KAIZEN_XP, $KAIZEN_NUM_ROWS, '$KAIZEN_PIN');" +mysql -u $USER -p$PASSWORD $DATABASE -e "$INSERT_PROFILE" + +if [ $? -eq 0 ]; then + echo -e "${GRE}Profile entry created successfully.${NC}" +else + echo "Failed to create Profile entry." + exit 1 +fi + +# Get the last inserted id from Profile +PROFILE_ID=$(mysql -u $USER -p$PASSWORD $DATABASE -se "SELECT LAST_INSERT_ID();") + +# Insert into Health table +INSERT_HEALTH="INSERT INTO Health (profile_id, height, weight, goal_weight, goal_water) VALUES (1, $KAIZEN_HEIGHT, $KAIZEN_WEIGHT, $KAIZEN_WEIGHT_GOAL, $KAIZEN_WATER_GOAL);" +mysql -u $USER -p$PASSWORD $DATABASE -e "$INSERT_HEALTH" + +if [ $? -eq 0 ]; then + echo -e "${GRE}Health entry created successfully.${NC}" +else + echo "Failed to create Health entry." + exit 1 +fi + +# Move to application directory +cd KaizenLAN + +# Define the node modules you want to check and install +modules=("express") + +# Check if the node_modules directory exists +if [ ! -d "node_modules" ]; then + echo "node_modules directory does not exist. Creating and installing all modules..." + npm install +else + echo "node_modules directory exists. Checking for missing modules..." + for module in "${modules[@]}"; do + if [ ! -d "node_modules/$module" ]; then + echo "Module $module is not installed. Installing..." + npm install "$module" + else + echo "Module $module is already installed." + fi + done +fi + +echo -e "${MAG}KaizenLAN Beta v1.0.0 Setup Completed. Run ${CYA}start.sh${MAG} to start the application${NC}" diff --git a/setup_database.sql b/setup_database.sql new file mode 100644 index 0000000..edd9baa --- /dev/null +++ b/setup_database.sql @@ -0,0 +1,51 @@ +CREATE TABLE Profile( + id INT, + username VARCHAR(50), + birth_date DATE, + image_url VARCHAR(255), + xp INT, + num_rows INT, + pin CHAR(4) CHECK (pin REGEXP '^[0-9]{4}$') +); + +CREATE TABLE Health( + profile_id INT PRIMARY KEY, + height FLOAT, + weight FLOAT, + goal_weight FLOAT, + goal_water FLOAT +); + +CREATE TABLE RowInfo ( + profile_id INT, + row_index INT, + widgets_list MEDIUMTEXT +); + +CREATE TABLE Habit( + name VARCHAR(250), + profile_id INT, + PRIMARY KEY(name, profile_id) +); + +CREATE TABLE HabitEntry( + habit_name VARCHAR(250), + profile_id INT, + completed_date DATE, + PRIMARY KEY(habit_name, profile_id, completed_date) +); + +CREATE TABLE WaterEntry( + profile_id INT, + entry_date DATE, + entry_amount INT, + PRIMARY KEY(profile_id, entry_date) +); + +CREATE TABLE WeightEntry( + profile_id INT, + entry_date DATE, + entry_amount FLOAT, + PRIMARY KEY(profile_id, entry_date) +); + diff --git a/start.sh b/start.sh index f87f5c1..74a8332 100644 --- a/start.sh +++ b/start.sh @@ -1 +1,41 @@ -# TODO \ No newline at end of file +#!/bin/bash + +# ANSI color codes +GRE='\033[0;32m' +RED='\033[0;31m' +MAG='\033[0;35m' +CYA='\033[0;36m' +NC='\033[0m' + +# Change directory to api +cd api + +# Start Kaizen Profile API +echo -e "${MAG}Starting ${GRE}Kaizen Profile API{$MAG} on port 8079${NC}" +nohup java -jar kaizen-profile-api.jar & + +# Start Narlock Habit API +echo -e "${MAG}Starting ${GRE}Narlock Habit API{$MAG} on port 8089${NC}" +nohup java -jar narlock-habit-api.jar & + +# Start Narlock Water Track API +echo -e "${MAG}Starting ${GRE}Narlock Water Track API{$MAG} on port 8083${NC}" +nohup java -jar narlock-water-track-api.jar & + +# Start Narlock Weight Track API +echo -e "${MAG}Starting ${GRE}Narlock Weight Track API{$MAG} on port 8081${NC}" +nohup java -jar narlock-weight-track-api.jar & + +# Start Kaizen GraphQL API +echo -e "${MAG}Starting ${GRE}Narlock GraphQL API{$MAG} on port 8080${NC}" +nohup java -jar kaizen-graphql-api.jar & + +# Change directory to KaizenLAN server +cd ../KaizenLAN + +# Start KaizenLAN +echo -e "${MAG}Starting ${GRE}Kaizen LAN{$MAG} on port 3000${NC}" +nohup node server.js & + +# Detach from terminal +exit \ No newline at end of file diff --git a/stop.sh b/stop.sh index f87f5c1..935c144 100644 --- a/stop.sh +++ b/stop.sh @@ -1 +1,18 @@ -# TODO \ No newline at end of file +#!/bin/bash + +# Array of ports to check +ports=(3000 8079 8080 8085 8089 8081 8083) + +# Iterate through each port +for port in "${ports[@]}"; do + # Check if any process is running on the port + pid=$(lsof -ti:$port) + if [ -n "$pid" ]; then + echo "Process running on port $port with PID $pid. Killing..." + # Kill the process + kill -9 $pid + echo "Process killed." + else + echo "No process running on port $port." + fi +done \ No newline at end of file