From d31905671798f8679f8801cf75c7faaf8a45e796 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Tue, 17 Dec 2024 17:28:50 -0500 Subject: [PATCH 01/53] v0.1.1 Fixes for favicon.ico, Logo Image, Graph stability and caching, port configuration, readme updates --- README.md | 189 +++++++++++++++++--------- VERSION | 2 +- handlers/plant.go | 6 +- main.go | 40 ++++-- web/static/img/favicon.ico | Bin 15406 -> 105662 bytes web/static/img/isley_logo.png | Bin 0 -> 292290 bytes web/templates/components/header2.html | 2 +- web/templates/pages/graphs.html | 28 +++- web/templates/pages/plants.html | 23 +++- 9 files changed, 205 insertions(+), 85 deletions(-) create mode 100644 web/static/img/isley_logo.png diff --git a/README.md b/README.md index 82766e7..557b6a1 100644 --- a/README.md +++ b/README.md @@ -1,105 +1,166 @@ -# Isley +# 🌱 Isley - Your Self-Hosted Cannabis Grow Journal -Isley is a self-hosted cannabis grow journal. +Isley is a self-hosted cannabis grow journal designed to help homegrowers 🌿 track and monitor their plants. With a clean interface and integrations with popular grow equipment, Isley makes managing your grow simple and effective. -![Isley Dashboard](https://isley.dwot.io/images/dashboard.png) +I created Isley because it was the tool I wanted but couldn't find. Existing options were limited to phone apps and websites that either didn’t work how I hoped or didn’t work at all. I wanted a single, self-hosted solution to replace: +- 🌑️ Vendor apps for sensor data and graphs. +- πŸ“ Spreadsheets for seed, harvest, and progress tracking. +- πŸ—’οΈ Notepads and memory for feeding/watering history and notes. -## Features - - Integrates with AC Infinity controllers, tracking temperature, humidity and VPD - - Integrates with Ecowitt soil sensors to track soil moisture +Isley doesn't aim to revolutionize your grow. It centralizes your tools into one convenient interface, helping you **track, trend, and elevate your grow**. -![Isley Sensors](https://isley.dwot.io/images/isley_sensors.png) +For full details, screenshots, and feature highlights, visit our official site 🌐 at [https://isley.dwot.io](https://isley.dwot.io). -- Sensor Data Graphed and presented in a dashboard +--- + +## πŸš€ Key Features -![Isley Graphs](https://isley.dwot.io/images/graphs.png) +- **πŸ“’ Grow Logs**: Track plant growth, watering, and feeding schedules. +- **🌑️ Environmental Monitoring**: View real-time data from grow equipment (AC Infinity, Ecowitt). +- **πŸ“Έ Image Uploads**: Attach photos to your grow logs for visual tracking. +- **🌱 Seed Inventory**: Manage your seed collection and strain library. +- **πŸ“Š Harvest Tracking**: Record harvest details and yields. +- **πŸ“ˆ Graphs and Charts**: Visualize environmental data and plant progress over time. +- **βš™οΈ Customizable Settings**: Add custom activities and measurements for your grow. +- **πŸ“± Mobile-Friendly**: Works on desktop and mobile devices for convenience. -- Track your grow from seed to harvest -- Notes, Photos, measurements, feedings, waterings, trimmings, trainings, and more all trackable +--- - ![Isley Plant Data](https://isley.dwot.io/images/isley_plant.png) +## πŸ› οΈ Features on the Roadmap -- Maintain a seed inventory with strain library -- More features being actively including: - - Alerting - - Additional Sensor Sources - - AC Infinity Device Monitoring - - Harvest Tracking - - and more +- **🌍 Internationalization**: Support for multiple languages. +- **πŸ”” Alerts and Notifications**: Set custom alerts for environmental conditions. +- **πŸ“¦ Export and Backup**: Download your grow data for offline storage. +- **πŸ“· Webcam Feeds**: Integrate live webcam feeds for visual monitoring. +- **πŸ—’οΈ Logging and Debugging**: Improved logging and debugging tools for troubleshooting. -# Installation +--- -Isley runs on Docker. To get started, you will need to have Docker installed on your system. If you don’t already have Docker, you can find instructions for installing it [here](https://docs.docker.com/get-docker/). For an easier setup, we also recommend installing Docker Compose, with installation instructions available [here](https://docs.docker.com/compose/install/). +## πŸš€ Quick Start -## Quick Start +Isley runs either on **Docker** 🐳 or as a **Windows Executable** πŸ’». For Docker deployments, it is recommended to use a reverse proxy for production setups to manage external access. -Follow these steps to install and run Isley: +If you don’t already have Docker, follow the [Docker installation instructions](https://docs.docker.com/get-docker/). For `docker-compose`, you can install it [here](https://docs.docker.com/compose/install/). -### Option 1: Using `docker-compose` (Recommended) +For Windows, running the executable from the command line allows you to see useful output logs. You can also configure it to run as a service. -1. **Clone the Repository:** - ```bash - git clone https://github.com/dwot/isley.git - cd isley +--- + +### 🐳 Option 1: Using Docker Hub (Recommended) + +Run Isley directly from the prebuilt Docker image hosted on Docker Hub. + +1. **Run Isley Using Docker Compose**: + Create a `docker-compose.yml` file: + + ```yaml + version: '3.8' + + services: + isley: + image: dwot/isley:latest + ports: + - "8080:8080" + environment: + - ISLEY_PORT=8080 + volumes: + - isley-db:/app/data + - isley-uploads:/app/uploads + restart: unless-stopped + + volumes: + isley-db: + isley-uploads: ``` -2. **Run Isley Using Docker Compose:** +2. **Start the Container**: ```bash docker-compose up -d ``` -3. **Access Isley:** - Open your web browser and navigate to `http://localhost:8080`. +3. **Access Isley**: + - Open your browser and go to: + - `http://localhost:8080` if running locally. + - `http://:8080` if running remotely. + - **Default Username**: `admin` + **Default Password**: `isley` + You will be prompted to change your password on the first login. ---- +4. **Data Persistence**: + Isley stores all data in the following directories: + - `/data`: For database storage. + - `/uploads`: For storing image uploads. -### Option 2: Using `docker run` + These directories are mapped to Docker volumes (or bind mounts). Ensure you **do not delete or recreate** these directories during updates. Add them to your **backup process** to prevent data loss. -If you prefer to run Isley manually using `docker run`, follow these steps: +--- -1. **Clone the Repository:** - ```bash - git clone https://github.com/dwot/isley.git - cd isley - ``` +### πŸ’» Option 2: Using Windows Executable -2. **Build the Docker Image:** - ```bash - docker build -t isley . - ``` +1. **Download the Executable**: + - Visit the [Releases Page](https://github.com/dwot/isley/releases) and download the latest `isley.exe` file. -3. **Create Persistent Docker Volumes:** - - Create a volume for the database: +2. **Run Isley**: + - Open a command prompt and navigate to the folder containing `isley.exe`. + - Set a custom port (if needed) using the `ISLEY_PORT` environment variable: ```bash - docker volume create isley-db + set ISLEY_PORT=8080 + isley.exe ``` - - Create a volume for uploads: + - Open your browser and navigate to: + - `http://localhost:8080` if running locally. + - `http://:8080` if accessing remotely. + + - **Default Username**: `admin` + **Default Password**: `isley` + You will be prompted to change your password on the first login. + +3. **Data Storage**: + Isley persists all data in the following directories created alongside the executable: + - `data/`: For database storage. + - `uploads/`: For storing image uploads. + + Add these directories to your **backup process** to avoid data loss. + +4. **Run as a Service (Optional)**: + - Use tools like **NSSM** (Non-Sucking Service Manager) to set up Isley as a Windows service: ```bash - docker volume create isley-uploads + nssm install Isley "C:\path\to\isley.exe" + nssm start Isley ``` -4. **Run the Docker Container:** - ```bash - docker run -d -p 8080:8080 -v isley-db:/app/db -v isley-uploads:/app/uploads isley - ``` +--- + +## βš™οΈ Configuration -5. **Access Isley:** - Open your web browser and navigate to `http://localhost:8080`. The default username is `admin` and the default password is `isley`. +All settings are configurable via the **Settings icon** in the app. You can: + +- πŸ”§ Enable/disable integrations (e.g., AC Infinity, Ecowitt). +- πŸ”‘ Set API keys or server IPs for integrations. +- πŸ” Scan for devices and start data collection. + +To override the default port, set the `ISLEY_PORT` environment variable: +```bash +ISLEY_PORT=8080 +``` --- -### Notes +## πŸ“ Notes -- By default, Isley runs on port `8080`. If you need to use a different port, update the `docker-compose.yml` file or modify the `-p` option in the `docker run` command accordingly (e.g., `-p 9090:8080` to use port `9090`). -- Both methods achieve the same result. Using `docker-compose` is simpler and more suitable for most users. -- Make sure you have enough disk space available for the Docker volumes to store data and uploads. +- Isley is still in **active development** 🚧. While we strive to avoid breaking changes, improvements are ongoing. +- Found a bug or have suggestions? Report them on the [GitHub repository](https://github.com/dwot/isley/issues). -If you encounter any issues during installation or setup, please refer to the documentation or open an issue in the repository. +--- -## Configuration -At this point the only settings are via the Settings icon from the menu in the app. You can enable/disable the AC Infinity and Ecowitt integrations, and set the API keys or Server IP for those integrations. Once these integrations are set and enabled, two buttons will appear on the sensors page to scan for the devices and start the data collection. +## πŸ›‘οΈ Recommendations -To start tracking a grow, click the Plants icon from the menu and then click Add Plant. Fill in the details and click Save. You can now add notes, photos, measurements, feedings, waterings, trimmings, trainings, and more to your plant. +For production deployments: +- 🐳 Use **Docker** with a reverse proxy (e.g., Nginx, Traefik) to handle external access and TLS. +- πŸ’Ύ **Backup Directories**: + - `/data` for database storage. + - `/uploads` for image uploads. +- 🚫 Avoid deleting or recreating these directories during updates. +- πŸ”§ Use a Windows service manager to run Isley executable for long-term uptime. -## Notes -Isley is still in development and very much in flux. While we will endeavor to maintain compatibility, there may be breaking changes as we continue to develop the app. We'll try not to break anything too badly, but be aware that it could happen. Report any issues and be patient as we work to develop Isley into a full-featured grow journal. \ No newline at end of file +🌐 For more details, screenshots, and the latest updates, visit: [https://isley.dwot.io](https://isley.dwot.io). diff --git a/VERSION b/VERSION index 6c6aa7c..6da28dd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.0 \ No newline at end of file +0.1.1 \ No newline at end of file diff --git a/handlers/plant.go b/handlers/plant.go index a3d77ca..975500a 100644 --- a/handlers/plant.go +++ b/handlers/plant.go @@ -1140,7 +1140,7 @@ func getPlantsByStatus(statuses []int) ([]PlantTableResponse, error) { } func GetLivingPlants() []PlantTableResponse { - statuses := []int{2, 3, 4} // Seedling, Veg, Flower + statuses := []int{1, 2, 3} // Seedling, Veg, Flower result, _ := getPlantsByStatus(statuses) return result } @@ -1153,7 +1153,7 @@ func LivingPlantsHandler(c *gin.Context) { // HarvestedPlantsHandler handles the /plants/harvested endpoint. func HarvestedPlantsHandler(c *gin.Context) { - statuses := []int{7, 5, 6} // Success + statuses := []int{4, 5, 6} // Success plants, err := getPlantsByStatus(statuses) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve plants"}) @@ -1165,7 +1165,7 @@ func HarvestedPlantsHandler(c *gin.Context) { // DeadPlantsHandler handles the /plants/dead endpoint. func DeadPlantsHandler(c *gin.Context) { - statuses := []int{8} // Dead + statuses := []int{7} // Dead plants, err := getPlantsByStatus(statuses) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve plants"}) diff --git a/main.go b/main.go index a24e660..cd06367 100644 --- a/main.go +++ b/main.go @@ -16,12 +16,13 @@ import ( "isley/watcher" "log" "net/http" + "os" "strconv" "strings" "time" ) -//go:embed model/migrations/*.sql web/templates/* web/static/* utils/fonts/* VERSION +//go:embed model/migrations/*.sql web/templates/* web/static/**/* utils/fonts/* VERSION var embeddedFiles embed.FS func main() { @@ -29,6 +30,12 @@ func main() { version := fmt.Sprintf("Isley %s", getVersion()) fmt.Println("Starting application version:", version) + // Define the port + port := os.Getenv("ISLEY_PORT") + if port == "" { + port = "8080" // Default port if environment variable PORT is not set + } + model.MigrateDB() // Start the sensor watcher @@ -91,12 +98,17 @@ func main() { // Load settings (PollingInterval, ACIEnabled, etc.) loadSettings() - // Serve embedded static files - staticFS := http.FS(embeddedFiles) - r.StaticFS("/static", staticFS) - r.Static("/uploads", "./uploads") - r.StaticFile("/favicon.ico", "./web/static/img/favicon.ico") + + r.GET("/static/*filepath", func(c *gin.Context) { + filePath := fmt.Sprintf("web/static%s", c.Param("filepath")) + data, err := embeddedFiles.ReadFile(filePath) + if err != nil { + c.Status(http.StatusNotFound) + return + } + http.ServeContent(c.Writer, c.Request, filePath, time.Now(), strings.NewReader(string(data))) + }) // Initialize session store store := cookie.NewStore([]byte("secret")) @@ -114,6 +126,17 @@ func main() { r.GET("/logout", func(c *gin.Context) { handleLogout(c) }) + r.GET("/favicon.ico", func(c *gin.Context) { + // Open the favicon from the embedded filesystem + faviconData, err := embeddedFiles.ReadFile("web/static/img/favicon.ico") + if err != nil { + c.String(500, "Failed to load favicon") + return + } + + // Write the favicon data to the response + c.Data(200, "image/x-icon", faviconData) + }) protected := r.Group("/") protected.Use(AuthMiddleware()) @@ -132,9 +155,10 @@ func main() { } // Start the server - if err := r.Run(":8080"); err != nil { - log.Fatalf("Failed to start server: %v", err) + if err := r.Run(":" + port); err != nil { + log.Fatalf("Failed to start server on port %s: %v", port, err) } + log.Printf("Server started on port %s", port) } // Helper functions diff --git a/web/static/img/favicon.ico b/web/static/img/favicon.ico index 9f5a90be90b939bfe68d189bc8360679c4c7badc..000421b150bdb1ebb96eb7991119d26470163d34 100644 GIT binary patch literal 105662 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 LX;0>OZ?FCjqr(~> literal 15406 zcmeHOeQXp(6yNfpC?A5NQB*7-ictc_M2(3_6(SG?L9_1OULgdvegqPc-py=VW!3nH zXfTS2Vj>vAA99xN$CV0VL`g(IFo+67iD1+a1i={OLn!t4_HHlR>uv9L@3W+vO!jVf z-h03IX6DVCH?x9JCG-`B4i#{(7M|`W2zLsCP+gt)KW>;HtiZF06O-?65`-;R3c@(l z0SPD)&vEm8)$OS3U$?xjzi&cK>mymbE@ZGjLMHz$Wbh}1j*hBa_{?glzX~)PQ99g3 zw)h4yrb09CON=eNQ8w8xZo1CD)%{8BPPfW7EkxjlB zIF~&x^ z`#K0v#lMmdE(uv|8tzrGl< z+&syjq5o+fe&r34Qn5jXn8VjQc20`(2fD*Ru@2-OExc?8J3Atq+6WH}RcQ0| z#gmWHhhGa9Teia=F`DegKzXRoRsm`*!;L;XP1kDz24&xe6; znP{<*>2zNIHRQ^a=Ezvth}@gdFX|OHbzx!W4ag>-B_719OQqfi6=4Bds3Jux%tg6S z^CVEM_wulS)}i&W$G4&0CG?zeS_Qv9?6GD(SuxmW@OfuZ{zLf$xv3g)BfHE)-LgNX zb&q7Rhk>;Pu@B|XI>-11LmrFA@a{opel9!cB!F4S3j^DSz)W*~cku$f!#bY5KU3Fe zyQi!d*%AF@3f9;^cd>W6{nP(je6JjDm_&O{mx1Eql-<+DHpYx%@C{Onirvtn zT~)GPU!z#+&V20cNlWVlgKeYOt{57~@#rM@js2eTy=~jsk7lp;Q?1@qQ%D`)8*c~h zA4`DU(RH`f!X^|#2Stxe1nzH3h~3r!K6!iCVB_=ALDC~*h)=1pr{o!Yt7z4a3ZjGU z-wnPByxLRzviDu5{R?$(M;>kk_F?_TP4G3W3Also^A`%c!{;RY68F;vlBGU`F`LVJ z-;q)5`-!mCFfA7ylx98}cF(ldFE+;R`CEJs?GJaS1J1)-0_<;~P|V&vzf!+97-3pM z7`=25^+k6eo+{!#Ro*r^TO+G!f%gL9RRANXiZ zI@OIond|+c2VhT*N%ix&E42ZR4ziBe%;JCc82p6Q;`bAN>PztTFZYnX9=gE|KWGv?A3_0z*eVt>g;@mBMh;rC8mf@4S%Xt(>ewtql z(Eja;(J&=su@?i-R)kK7Ctd)4y{F>GxJ9n7jO&wp`;et>gCC;3>Wb(OesSQu%TB~= zTl~^hN`3O7I1{$AQt?w$#V{(p5@*Ixi)f(VKziNTp!P6$j?5LsDC046W_a z4zU8~GmGsHkZa_tXPD8!LWh9!p!PY~zjM{S{PoyzV4j8W)BeUJ8UMEw8W-A?av1*3 zKxFgf_IVJt#(hqY;%Lfqp-%<>wjxa~VF$k^CGovS!E}J#H+!8)M=U{Sxp(B<4#*YY zy!TRZlQxLIXY2Kv{h$FRX#yL#NAMQoTHUCMu#@3J?ok@Gw=`zHa*q6>T!DqLj zjdRUQwqtFwCuBq$>6?mlp56VYwV7x&jgm}0-`*EVtoysz4tS2^yxm8%hDL7ba`I=M zeDO^ht(n5uccgD>u$Ob(qdlmvZIyIBpK@-5#gk_)FCdrB?tmxOI(#0ThYIPemd-kf sv1bS6!Xi_h8Ropf#KY#5IAb+0Ap>WMa{T@-6W`uvy%y-TK+mwi|0J~5(*OVf diff --git a/web/static/img/isley_logo.png b/web/static/img/isley_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5915b112bf118cccd63a74a055bedbec577446 GIT binary patch literal 292290 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%0DXbdQWQfxuu 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 FngF=#(d_^L literal 0 HcmV?d00001 diff --git a/web/templates/components/header2.html b/web/templates/components/header2.html index 19dc2dd..3fd3a14 100644 --- a/web/templates/components/header2.html +++ b/web/templates/components/header2.html @@ -6,7 +6,7 @@
- + Isley Isley diff --git a/web/templates/pages/graphs.html b/web/templates/pages/graphs.html index 4891abf..97c804d 100644 --- a/web/templates/pages/graphs.html +++ b/web/templates/pages/graphs.html @@ -157,6 +157,8 @@
${grouped[0].type} - ${grouped[0].name}
graphsContainer.appendChild(graphDiv); fetchSensorData(grouped, queryParams, `chart-${groupKey}`); + + }); }); }); @@ -166,9 +168,33 @@
${grouped[0].type} - ${grouped[0].name}
.catch(err => console.error("Error fetching grouped sensors:", err)); }; + const retryFetch = (url, retries = 3, delay = 500) => { + return new Promise((resolve, reject) => { + const attemptFetch = (attempt) => { + fetch(url) + .then((response) => { + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + resolve(response.json()); + }) + .catch((err) => { + if (attempt <= retries) { + console.warn(`Retrying ${url} (Attempt ${attempt} of ${retries})...`); + setTimeout(() => attemptFetch(attempt + 1), delay * attempt); + } else { + reject(err); + } + }); + }; + + attemptFetch(1); + }); + }; + const fetchSensorData = (sensors, queryParams, chartId) => { const requests = sensors.map(sensor => - fetch(`/sensorData?sensor=${sensor.id}&${queryParams}`).then(response => response.json()) + retryFetch(`/sensorData?sensor=${sensor.id}&${queryParams}`, 3, 500) ); Promise.all(requests) diff --git a/web/templates/pages/plants.html b/web/templates/pages/plants.html index 2c6a79e..baabd67 100644 --- a/web/templates/pages/plants.html +++ b/web/templates/pages/plants.html @@ -196,6 +196,16 @@ let sortColumn = null; let sortDirection = "asc"; + const setActiveButton = (clickedButton) => { + viewButtons.forEach(button => { + if (button === clickedButton) { + button.classList.add("active"); // Add active class to clicked button + } else { + button.classList.remove("active"); // Remove active class from others + } + }); + }; + const fetchPlants = (view) => { fetch(`/plants/${view}`) .then(response => response.json()) @@ -277,20 +287,19 @@ }); }; - // Event listeners + // Handle view button click viewButtons.forEach(button => { button.addEventListener("click", () => { - currentView = button.dataset.view; - fetchPlants(currentView); - - viewButtons.forEach(btn => btn.classList.remove("btn-primary")); - button.classList.add("btn-primary"); + currentView = button.dataset.view; // Update current view + setActiveButton(button); // Update active button visually + fetchPlants(currentView); // Fetch plants based on selected view }); }); searchPlants.addEventListener("input", updateTable); - // Initial data fetch + /// Fetch initial data and set active button + setActiveButton(document.querySelector('.view-button.active')); fetchPlants(currentView); }); From fcbd1cfa716043ebb0161ed79e6ed127468509ce Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Tue, 17 Dec 2024 22:03:39 -0500 Subject: [PATCH 02/53] v0.1.1 README updates --- README.md | 4 +++- web/templates/components/header.html | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 557b6a1..e7dacea 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 🌱 Isley - Your Self-Hosted Cannabis Grow Journal +# 🌱 Isley - Self-Hosted Cannabis Grow Journal Isley is a self-hosted cannabis grow journal designed to help homegrowers 🌿 track and monitor their plants. With a clean interface and integrations with popular grow equipment, Isley makes managing your grow simple and effective. @@ -9,6 +9,8 @@ I created Isley because it was the tool I wanted but couldn't find. Existing opt Isley doesn't aim to revolutionize your grow. It centralizes your tools into one convenient interface, helping you **track, trend, and elevate your grow**. +![Isley Dashboard](https://isley.dwot.io/images/dashboard.png?raw=true) + For full details, screenshots, and feature highlights, visit our official site 🌐 at [https://isley.dwot.io](https://isley.dwot.io). --- diff --git a/web/templates/components/header.html b/web/templates/components/header.html index 6625c58..6b79ab3 100644 --- a/web/templates/components/header.html +++ b/web/templates/components/header.html @@ -10,7 +10,7 @@ - {{ .title }} + Isley {{ .title }} From 8907ae2700f67b3aafc497b216f74b11b3546070 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Tue, 17 Dec 2024 22:53:10 -0500 Subject: [PATCH 03/53] Create dependabot.yml --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..cd88554 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "gomod" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" From 502d1760921489c5a7acb5d59eff407d7c3929ba Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Wed, 18 Dec 2024 17:47:16 -0500 Subject: [PATCH 04/53] v0.1.2 Refactor - cleanup types - log file / log rotation - Security scan improvements (hash pin on release artifacts action) - Security scan improvements (URL input for EcoWitt sensor scan) - docker-compose update - Bug Fixes (JS fix on ACI login, Outside VPD sensor for ACI scan) Prune sensor data older than 90 days Minor HTML tweaks --- .github/workflows/release.yml | 2 +- .gitignore | 1 + VERSION | 2 +- config/config.go | 55 +---- docker-compose.yml | 8 +- go.mod | 4 +- go.sum | 9 +- handlers/ac_infinity.go | 38 +-- handlers/image.go | 27 +- handlers/plant.go | 392 +++++++++++++----------------- handlers/plant_activity.go | 83 +++++-- handlers/plant_image.go | 58 +++-- handlers/plant_measurement.go | 55 ++++- handlers/plant_status_log.go | 27 +- handlers/sensor_data.go | 128 +++------- handlers/sensors.go | 202 ++++++++------- handlers/settings.go | 190 +++++++-------- logger/logger.go | 45 ++++ main.go | 33 ++- model/migrate.go | 60 +++-- model/types/activity.go | 7 - model/types/base_models.go | 171 +++++++++++++ model/types/metric.go | 8 - model/types/plant.go | 15 -- model/types/plant_activity.go | 12 - model/types/plant_image.go | 15 -- model/types/plant_measurement.go | 12 - model/types/plant_status.go | 8 - model/types/plant_status_log.go | 11 - model/types/sensor_data.go | 11 - model/types/sensors.go | 15 -- model/types/settings.go | 12 - model/types/strain.go | 12 - model/types/zones.go | 10 - utils/image.go | 42 +++- watcher/watcher.go | 154 ++++++------ web/templates/pages/index.html | 14 +- web/templates/pages/settings.html | 6 +- 38 files changed, 1062 insertions(+), 892 deletions(-) create mode 100644 logger/logger.go delete mode 100644 model/types/activity.go create mode 100644 model/types/base_models.go delete mode 100644 model/types/metric.go delete mode 100644 model/types/plant.go delete mode 100644 model/types/plant_activity.go delete mode 100644 model/types/plant_image.go delete mode 100644 model/types/plant_measurement.go delete mode 100644 model/types/plant_status.go delete mode 100644 model/types/plant_status_log.go delete mode 100644 model/types/sensor_data.go delete mode 100644 model/types/sensors.go delete mode 100644 model/types/settings.go delete mode 100644 model/types/strain.go delete mode 100644 model/types/zones.go diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index caea2ca..82f274a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,7 +58,7 @@ jobs: - name: Release Artifacts (Main Branch Only) if: github.ref == 'refs/heads/main' - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 with: tag_name: v${{ env.version }} name: Release v${{ env.version }} diff --git a/.gitignore b/.gitignore index 5a229ae..24e8d39 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /data/ /uploads/ /isley.exe +/logs/ diff --git a/VERSION b/VERSION index 6da28dd..8294c18 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.1 \ No newline at end of file +0.1.2 \ No newline at end of file diff --git a/config/config.go b/config/config.go index 473433b..1920c1e 100644 --- a/config/config.go +++ b/config/config.go @@ -1,53 +1,20 @@ package config -type ActivityResponse struct { - ID int `json:"id"` - Name string `json:"name"` -} - -type MetricResponse struct { - ID int `json:"id"` - Name string `json:"name"` - Unit string `json:"unit"` -} - -type StatusResponse struct { - ID int `json:"id"` - Status string `json:"status"` -} - -type StrainResponse struct { - ID int `json:"id"` - Name string `json:"name"` - Breeder string `json:"breeder"` - BreederID int `json:"breeder_id"` - Indica int `json:"indica"` - Sativa int `json:"sativa"` - Autoflower string `json:"autoflower"` - Description string `json:"description"` - SeedCount int `json:"seed_count"` -} - -type BreederResponse struct { - ID int `json:"id"` - Name string `json:"name"` -} - -type ZoneResponse struct { - ID uint `json:"id"` - Name string `json:"name"` -} +import ( + "isley/model/types" +) var ( - PollingInterval = 60 // Default polling interval + PollingInterval = 60 // Default polling interval in seconds ACIEnabled = 0 // Default ACI enabled ECEnabled = 0 // Default EC enabled ACIToken = "" // Default ACI token ECDevices []string - Activities []ActivityResponse - Metrics []MetricResponse - Statuses []StatusResponse - Zones []ZoneResponse - Strains []StrainResponse - Breeders []BreederResponse + Activities []types.Activity + Metrics []types.Metric + Statuses []types.Status + Zones []types.Zone + Strains []types.Strain + Breeders []types.Breeder + SensorRetention = 90 // Default sensor retention in days ) diff --git a/docker-compose.yml b/docker-compose.yml index 78b84e2..8e270c3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,14 +2,16 @@ version: '3.8' services: isley: - image: isley + image: dwot/isley:latest ports: - "8080:8080" + environment: + - ISLEY_PORT=8080 volumes: - - isley-db:/app/db + - isley-db:/app/data - isley-uploads:/app/uploads restart: unless-stopped volumes: isley-db: - isley-uploads: + isley-uploads: \ No newline at end of file diff --git a/go.mod b/go.mod index d68a858..84e3e3f 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,10 @@ require ( github.com/gin-contrib/sessions v1.0.1 github.com/gin-gonic/gin v1.10.0 github.com/golang-migrate/migrate/v4 v4.18.1 + github.com/sirupsen/logrus v1.9.3 golang.org/x/crypto v0.31.0 + golang.org/x/image v0.23.0 + gopkg.in/natefinch/lumberjack.v2 v2.2.1 ) require ( @@ -45,7 +48,6 @@ require ( github.com/ugorji/go/codec v1.2.12 // indirect go.uber.org/atomic v1.7.0 // indirect golang.org/x/arch v0.8.0 // indirect - golang.org/x/image v0.23.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.29.0 // indirect golang.org/x/sync v0.10.0 // indirect diff --git a/go.sum b/go.sum index b35583d..e927ab3 100644 --- a/go.sum +++ b/go.sum @@ -83,6 +83,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -104,8 +106,6 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68= @@ -116,10 +116,9 @@ golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= @@ -130,6 +129,8 @@ google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6h google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/handlers/ac_infinity.go b/handlers/ac_infinity.go index 0509069..d97a884 100644 --- a/handlers/ac_infinity.go +++ b/handlers/ac_infinity.go @@ -3,37 +3,37 @@ package handlers import ( "bytes" "encoding/json" - "log" + "github.com/sirupsen/logrus" "net/http" "github.com/gin-gonic/gin" + "isley/logger" ) -type ACILoginRequest struct { - Email string `json:"email"` - Password string `json:"password"` -} - func ACILoginHandler(c *gin.Context) { - var req ACILoginRequest + var req struct { + Email string `json:"email"` + Password string `json:"password"` + } + if err := c.ShouldBindJSON(&req); err != nil { - log.Println("Error parsing request:", err) + logger.Log.WithError(err).Error("Failed to bind JSON request") c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": "Invalid request payload"}) return } - // Prepare the payload for the AC Infinity API - //# AC Infinity API does not accept passwords greater than 25 characters. + // Enforce password length limit for AC Infinity API if len(req.Password) > 25 { req.Password = req.Password[:25] } + formData := "appEmail=" + req.Email + "&appPasswordl=" + req.Password apiURL := "http://www.acinfinityserver.com/api/user/appUserLogin" // Create a new HTTP request httpRequest, err := http.NewRequest("POST", apiURL, bytes.NewBufferString(formData)) if err != nil { - log.Println("Error creating HTTP request:", err) + logger.Log.WithError(err).Error("Failed to create HTTP request") c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": "Failed to create request"}) return } @@ -46,14 +46,17 @@ func ACILoginHandler(c *gin.Context) { client := &http.Client{} resp, err := client.Do(httpRequest) if err != nil { - log.Println("Error calling AC Infinity API:", err) + logger.Log.WithError(err).Error("Failed to connect to AC Infinity API") c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": "Failed to connect to AC Infinity API"}) return } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - log.Println("Non-200 response from AC Infinity API:", resp.Status) + logger.Log.WithFields(logrus.Fields{ + "status_code": resp.StatusCode, + "status": resp.Status, + }).Error("Non-200 response from AC Infinity API") c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": "Failed to fetch token"}) return } @@ -66,18 +69,21 @@ func ACILoginHandler(c *gin.Context) { } `json:"data"` } if err := json.NewDecoder(resp.Body).Decode(&aciResponse); err != nil { - log.Println("Error decoding AC Infinity response:", err) + logger.Log.WithError(err).Error("Failed to decode AC Infinity response") c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": "Failed to process AC Infinity response"}) return } if aciResponse.Code != 200 { - log.Println("AC Infinity API error:", aciResponse.Msg) + logger.Log.WithFields(logrus.Fields{ + "code": aciResponse.Code, + "message": aciResponse.Msg, + }).Error("AC Infinity API returned an error") c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": aciResponse.Msg}) return } - //Update the user's token in the database + // Update the user's token in the database UpdateSetting("aci.token", aciResponse.Data.AppID) c.JSON(http.StatusOK, gin.H{"success": true, "token": aciResponse.Data.AppID}) } diff --git a/handlers/image.go b/handlers/image.go index bdcaf60..c71d00f 100644 --- a/handlers/image.go +++ b/handlers/image.go @@ -3,13 +3,16 @@ package handlers import ( "fmt" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" "image/color" + "isley/logger" "isley/utils" "net/http" "path/filepath" ) func DecorateImageHandler(c *gin.Context) { + var req struct { ImagePath string `json:"imagePath"` StrainName string `json:"strainName"` @@ -17,24 +20,35 @@ func DecorateImageHandler(c *gin.Context) { } if err := c.BindJSON(&req); err != nil { + logger.Log.WithError(err).Error("Failed to bind JSON request") c.JSON(http.StatusBadRequest, gin.H{"success": false, "error": "Invalid input"}) return } + logger.Log.WithFields(logrus.Fields{ + "imagePath": req.ImagePath, + "strainName": req.StrainName, + "plantAge": req.PlantAge, + }) + // Prepare paths - // Split the input image path to get the filename and extension fileExtension := filepath.Ext(req.ImagePath) fileNameWithoutExt := req.ImagePath[:len(req.ImagePath)-len(fileExtension)] outputPath := fmt.Sprintf("%s.processed%s", fileNameWithoutExt, fileExtension) - //get the logo path from GetSetting("logoPath") - //append "/uploads/logops" to the logo path - //if the logo path is empty, use the placeholder image + logoFile, _ := GetSetting("logo_image") logoPath := fmt.Sprintf("./uploads/logos/%s", logoFile) if logoPath == "" { logoPath = "web/static/img/placeholder.png" } + + logger.Log.WithFields(logrus.Fields{ + "outputPath": outputPath, + "logoPath": logoPath, + }) + fontPath := "fonts/Anton-Regular.ttf" // Replace with your font path + logger.Log.WithField("fontPath", fontPath) // Create overlay request overlayReq := utils.TextOverlayRequest{ @@ -67,12 +81,17 @@ func DecorateImageHandler(c *gin.Context) { }, } + logger.Log.Info("Starting image processing") + // Process the image if err := utils.ProcessImageWithTextOverlay(overlayReq); err != nil { + logger.Log.WithError(err).Error("Failed to process image with text overlay") c.JSON(http.StatusInternalServerError, gin.H{"success": false, "error": err.Error()}) return } + logger.Log.Info("Image processed successfully") + // Respond with the path to the new image c.JSON(http.StatusOK, gin.H{"success": true, "outputPath": outputPath}) } diff --git a/handlers/plant.go b/handlers/plant.go index 975500a..e33213a 100644 --- a/handlers/plant.go +++ b/handlers/plant.go @@ -6,106 +6,36 @@ import ( "fmt" "github.com/gin-gonic/gin" "isley/config" + "isley/logger" model "isley/model" "isley/model/types" - "log" "net/http" "strconv" "strings" "time" ) -type PlantListResponse struct { - ID uint `json:"id"` - Name string `json:"name"` - Description string `json:"description"` - StartDT time.Time `json:"start_dt"` - CurrentDay int `json:"current_day"` - CurrentWeek int `json:"current_week"` - Status string `json:"status"` - StrainName string `json:"strain_name"` - BreederName string `json:"breeder_name"` - ZoneName string `json:"zone_name"` - HarvestWeight float64 `json:"harvest_weight"` -} - -type PlantDataResponse struct { - ID uint `json:"id"` - Name string `json:"name"` - Description string `json:"description"` - Status string `json:"status"` - StatusID int `json:"status_id"` - StrainName string `json:"strain_name"` - StrainID int `json:"strain_id"` - BreederName string `json:"breeder_name"` - ZoneName string `json:"zone_name"` - CurrentDay int `json:"current_day"` - CurrentWeek int `json:"current_week"` - CurrentHeight string `json:"current_height"` - HeightDate time.Time `json:"height_date"` - LastWaterDate time.Time `json:"last_water_date"` - LastFeedDate time.Time `json:"last_feed_date"` - Measurements []Measurement `json:"measurements"` - Activities []Activity `json:"activities"` - StatusHistory []Status `json:"status_history"` - Sensors []Sensor `json:"sensors"` - LatestImage types.PlantImage `json:"latest_image"` - Images []types.PlantImage `json:"images"` - IsClone bool `json:"is_clone"` - StartDT time.Time `json:"start_dt"` - HarvestWeight float64 `json:"harvest_weight"` - HarvestDate time.Time `json:"harvest_date"` -} - -type Sensor struct { - ID uint `json:"id"` - Name string `json:"name"` - Unit string `json:"unit"` - Value float64 `json:"value"` - Date time.Time `json:"date"` -} - -type Measurement struct { - ID uint `json:"id"` - Name string `json:"name"` - Value float64 `json:"value"` - Date time.Time `json:"date"` -} - -type Activity struct { - ID uint `json:"id"` - Name string `json:"name"` - Note string `json:"note"` - Date time.Time `json:"date"` - ActivityId int `json:"activity_id"` -} - -type Status struct { - ID uint `json:"id"` - Status string `json:"status"` - Date time.Time `json:"date"` -} - -func GetBreeders() []config.BreederResponse { +func GetBreeders() []types.Breeder { + fieldLogger := logger.Log.WithField("func", "GetBreeders") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return nil } rows, err := db.Query("SELECT id, name FROM breeder") if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query breeders") return nil } - var breeders []config.BreederResponse + var breeders []types.Breeder for rows.Next() { - var breeder config.BreederResponse + var breeder types.Breeder err = rows.Scan(&breeder.ID, &breeder.Name) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan breeder") return nil } breeders = append(breeders, breeder) @@ -118,6 +48,7 @@ func GetBreeders() []config.BreederResponse { } func AddPlant(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "AddPlant") var input struct { Name string `json:"name"` ZoneID *int `json:"zone_id"` @@ -134,6 +65,7 @@ func AddPlant(c *gin.Context) { } if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Failed to bind JSON") c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } @@ -142,6 +74,7 @@ func AddPlant(c *gin.Context) { // Insert new zone into the database zoneID, err := CreateNewZone(input.NewZone) if err != nil { + fieldLogger.WithError(err).Error("Failed to create new zone") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create new zone"}) return } @@ -153,6 +86,7 @@ func AddPlant(c *gin.Context) { // Insert new strain into the database strainID, err := CreateNewStrain(input.NewStrain) if err != nil { + fieldLogger.WithError(err).Error("Failed to create new strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create new strain"}) return } @@ -163,25 +97,25 @@ func AddPlant(c *gin.Context) { // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return } //Insert into the plants table returning id result, err := db.Exec("INSERT INTO plant (name, zone_id, strain_id, description, clone, start_dt, sensors) VALUES (?, ?, ?, '', 'false', ?, '[]')", input.Name, *input.ZoneID, *input.StrainID, input.Date) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to insert plant") return } //Update plant_status_log with the new plant id and status id plantID, err := result.LastInsertId() if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to get last insert ID") return } _, err = db.Exec("INSERT INTO plant_status_log (plant_id, status_id, date) VALUES (?, ?, ?)", plantID, input.StatusID, input.Date) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to insert plant status log") return } @@ -191,26 +125,27 @@ func AddPlant(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "Plant added successfully"}) } -func GetStrains() []config.StrainResponse { +func GetStrains() []types.Strain { + fieldLogger := logger.Log.WithField("func", "GetStrains") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return nil } rows, err := db.Query("SELECT s.id, s.name, b.id as breeder_id, b.name as breeder, s.indica, s.sativa, s.autoflower, s.description, s.seed_count FROM strain s left outer join breeder b on s.breeder_id = b.id") if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query strains") return nil } - var strains []config.StrainResponse + var strains []types.Strain for rows.Next() { - var strain config.StrainResponse + var strain types.Strain err = rows.Scan(&strain.ID, &strain.Name, &strain.BreederID, &strain.Breeder, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.Description, &strain.SeedCount) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan strain") return nil } strains = append(strains, strain) @@ -222,26 +157,27 @@ func GetStrains() []config.StrainResponse { return strains } -func GetActivities() []config.ActivityResponse { +func GetActivities() []types.Activity { + fieldLogger := logger.Log.WithField("func", "GetActivities") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return nil } rows, err := db.Query("SELECT id, name FROM activity") if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query activities") return nil } - var activities []config.ActivityResponse + var activities []types.Activity for rows.Next() { - var activity config.ActivityResponse + var activity types.Activity err = rows.Scan(&activity.ID, &activity.Name) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan activity") return nil } activities = append(activities, activity) @@ -252,26 +188,27 @@ func GetActivities() []config.ActivityResponse { return activities } -func GetMetrics() []config.MetricResponse { +func GetMetrics() []types.Metric { + fieldLogger := logger.Log.WithField("func", "GetMetrics") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return nil } rows, err := db.Query("SELECT id, name, unit FROM metric") if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query metrics") return nil } - var measurements []config.MetricResponse + var measurements []types.Metric for rows.Next() { - var measurement config.MetricResponse + var measurement types.Metric err = rows.Scan(&measurement.ID, &measurement.Name, &measurement.Unit) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan metric") return nil } measurements = append(measurements, measurement) @@ -282,26 +219,27 @@ func GetMetrics() []config.MetricResponse { return measurements } -func GetStatuses() []config.StatusResponse { +func GetStatuses() []types.Status { + fieldLogger := logger.Log.WithField("func", "GetStatuses") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return nil } rows, err := db.Query("SELECT id, status FROM plant_status") if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query statuses") return nil } - var statuses []config.StatusResponse + var statuses []types.Status for rows.Next() { - var status config.StatusResponse + var status types.Status err = rows.Scan(&status.ID, &status.Status) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan status") return nil } statuses = append(statuses, status) @@ -319,9 +257,11 @@ func CreateNewStrain(newStrain *struct { BreederId int `json:"breeder_id"` NewBreeder string `json:"new_breeder"` }) (int, error) { + fieldLogger := logger.Log.WithField("func", "CreateNewStrain") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + fieldLogger.WithError(err).Error("Failed to open database") return 0, err } defer db.Close() @@ -333,6 +273,7 @@ func CreateNewStrain(newStrain *struct { // Insert the new breeder into the `breeder` table result, err := db.Exec("INSERT INTO breeder (name) VALUES (?)", newStrain.NewBreeder) if err != nil { + fieldLogger.WithError(err).Error("Failed to insert new breeder") return 0, fmt.Errorf("failed to insert new breeder: %w", err) } @@ -341,6 +282,7 @@ func CreateNewStrain(newStrain *struct { // Get the ID of the newly inserted breeder lastInsertId, err := result.LastInsertId() if err != nil { + fieldLogger.WithError(err).Error("Failed to retrieve new breeder ID") return 0, fmt.Errorf("failed to retrieve new breeder ID: %w", err) } breederId = int(lastInsertId) @@ -355,6 +297,7 @@ func CreateNewStrain(newStrain *struct { VALUES (?, ?, 50, 50, 'true', '', 0)`, newStrain.Name, breederId) if err != nil { + fieldLogger.WithError(err).Error("Failed to insert new strain") return 0, fmt.Errorf("failed to insert new strain: %w", err) } @@ -363,6 +306,7 @@ func CreateNewStrain(newStrain *struct { // Get the ID of the newly inserted strain id, err := result.LastInsertId() if err != nil { + fieldLogger.WithError(err).Error("Failed to retrieve new strain ID") return 0, fmt.Errorf("failed to retrieve new strain ID: %w", err) } @@ -370,10 +314,12 @@ func CreateNewStrain(newStrain *struct { } func DeletePlant(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "DeletePlant") id := c.Param("id") err := DeletePlantById(id) if err != nil { + fieldLogger.WithError(err).Error("Failed to delete plant") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete plant"}) return } @@ -381,11 +327,12 @@ func DeletePlant(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "Plant deleted successfully"}) } -func DeletePlantById(id string) interface{} { +func DeletePlantById(id string) error { + fieldLogger := logger.Log.WithField("func", "DeletePlantById") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return err } defer db.Close() @@ -393,56 +340,52 @@ func DeletePlantById(id string) interface{} { // Delete the plant's images _, err = db.Exec("DELETE FROM plant_images WHERE plant_id = ?", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to delete plant images") return err } // Delete the plant's measurements _, err = db.Exec("DELETE FROM plant_measurements WHERE plant_id = ?", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to delete plant measurements") return err } // Delete the plant's activities _, err = db.Exec("DELETE FROM plant_activity WHERE plant_id = ?", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to delete plant activities") return err } // Delete the plant's status log _, err = db.Exec("DELETE FROM plant_status_log WHERE plant_id = ?", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to delete plant status log") return err } // Delete the plant _, err = db.Exec("DELETE FROM plant WHERE id = ?", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to delete plant") return err } return nil } -type SensorData struct { - ID uint `json:"id"` - Value float64 `json:"value"` - CreateDT time.Time `json:"create_dt"` -} - -func GetPlant(id string) PlantDataResponse { - var plant PlantDataResponse +func GetPlant(id string) types.Plant { + fieldLogger := logger.Log.WithField("func", "GetPlant") + var plant types.Plant // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + fieldLogger.WithError(err).Error("Failed to open database") return plant } rows, err := db.Query("SELECT p.id, p.name, p.description, p.clone, p.start_dt, s.name as strain_name, b.name as breeder_name, z.name as zone_name, (select ps.status from plant_status_log psl left outer join plant_status ps on psl.status_id = ps.id where psl.plant_id = p.id order by strftime('%s', psl.date) desc limit 1) as current_status, (select ps.id from plant_status_log psl left outer join plant_status ps on psl.status_id = ps.id where psl.plant_id = p.id order by strftime('%s', psl.date) desc limit 1) as status_id, p.sensors, s.id, p.harvest_weight FROM plant p LEFT OUTER JOIN strain s on p.strain_id = s.id left outer join breeder b on b.id = s.breeder_id LEFT OUTER JOIN zones z on p.zone_id = z.id WHERE p.id = $1", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query plant") return plant } @@ -463,7 +406,7 @@ func GetPlant(id string) PlantDataResponse { var harvest_weight float64 err = rows.Scan(&id, &name, &description, &isClone, &start_dt, &strain_name, &breeder_name, &zone_name, &status, &statusID, &sensors, &strain_id, &harvest_weight) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan plant") return plant } // Calculate current day and week @@ -478,13 +421,13 @@ func GetPlant(id string) PlantDataResponse { iCurrentWeek := int((diff.Hours() / 24 / 7) + 1) //convert sensors string into list and Iterate over sensors and load sensor and latest sensor_data - var sensorList []Sensor + var sensorList []types.SensorDataResponse // Retrieve the serialized sensors column from the plant table var sensorsJSON string err := db.QueryRow("SELECT sensors FROM plant WHERE id = $1", id).Scan(&sensorsJSON) if err != nil { - fmt.Println("Error querying sensors column:", err) + fieldLogger.WithError(err).Error("Failed to query sensors JSON") return plant } @@ -492,26 +435,26 @@ func GetPlant(id string) PlantDataResponse { var sensorIDs []int err = json.Unmarshal([]byte(sensorsJSON), &sensorIDs) if err != nil { - fmt.Println("Error unmarshalling sensors JSON:", err) + fieldLogger.WithError(err).Error("Failed to deserialize sensor IDs") return plant } // Loop through each sensor ID and fetch details for _, sensorID := range sensorIDs { - var sensor Sensor + var sensor types.SensorDataResponse // Query sensor details from the sensors table err := db.QueryRow("SELECT id, name, unit FROM sensors WHERE id = ?", sensorID).Scan(&sensor.ID, &sensor.Name, &sensor.Unit) if err != nil { - fmt.Println("Error querying sensor details:", err) + fieldLogger.WithError(err).Error("Failed to query sensor details") continue } // Query the latest sensor data from the sensor_data table - var sensorData SensorData + var sensorData types.SensorData err = db.QueryRow("SELECT id, value, create_dt FROM sensor_data WHERE sensor_id = ? ORDER BY create_dt DESC LIMIT 1", sensorID).Scan(&sensorData.ID, &sensorData.Value, &sensorData.CreateDT) if err != nil { - fmt.Println("Error querying latest sensor data:", err) + fieldLogger.WithError(err).Error("Failed to query sensor data") continue } @@ -526,9 +469,9 @@ func GetPlant(id string) PlantDataResponse { //Load measurements rows2, err := db.Query("SELECT m.id, me.name, m.value, m.date FROM plant_measurements m left outer join metric me on me.id = m.metric_id WHERE m.plant_id = $1 ORDER BY date desc", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query measurements") } - var measurements []Measurement + var measurements []types.Measurement for rows2.Next() { var id uint var name string @@ -538,15 +481,15 @@ func GetPlant(id string) PlantDataResponse { if err != nil { fmt.Println(err) } - measurements = append(measurements, Measurement{id, name, value, date}) + measurements = append(measurements, types.Measurement{id, name, value, date}) } //Load activities rows3, err := db.Query("SELECT pa.id, a.id as activity_id, a.name, pa.note, pa.date FROM plant_activity pa left outer join activity a on a.id = pa.activity_id WHERE pa.plant_id = $1 ORDER BY date desc", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query activities") } - var activities []Activity + var activities []types.PlantActivity for rows3.Next() { var id uint var name string @@ -557,31 +500,31 @@ func GetPlant(id string) PlantDataResponse { if err != nil { fmt.Println(err) } - activities = append(activities, Activity{id, name, note, date, activityId}) + activities = append(activities, types.PlantActivity{id, name, note, date, activityId}) } //Load status history rows5, err := db.Query("SELECT psl.id, ps.status, psl.date FROM plant_status_log psl left outer join plant_status ps on psl.status_id = ps.id WHERE psl.plant_id = $1 ORDER BY date desc", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query status history") } - var statusHistory []Status + var statusHistory []types.Status for rows5.Next() { var id uint var status string var date time.Time err = rows5.Scan(&id, &status, &date) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan status history") } - statusHistory = append(statusHistory, Status{id, status, date}) + statusHistory = append(statusHistory, types.Status{id, status, date}) } //Load latest image var latestImage types.PlantImage err = db.QueryRow("SELECT id, image_path, image_description, image_order, image_date FROM plant_images WHERE plant_id = ? ORDER BY image_date DESC LIMIT 1", id).Scan(&latestImage.ID, &latestImage.ImagePath, &latestImage.ImageDescription, &latestImage.ImageOrder, &latestImage.ImageDate) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query latest image") latestImage = types.PlantImage{ID: 0, PlantID: plant.ID, ImagePath: "/static/img/winston.hat.jpg", ImageDescription: "Placeholder", ImageOrder: 100, ImageDate: time.Now(), CreatedAt: time.Now(), UpdatedAt: time.Now()} } else { latestImage.ImagePath = "/" + strings.Replace(latestImage.ImagePath, "\\", "/", -1) @@ -590,7 +533,7 @@ func GetPlant(id string) PlantDataResponse { //Load images rows6, err := db.Query("SELECT id, image_path, image_description, image_order, image_date FROM plant_images WHERE plant_id = $1 ORDER BY image_date desc", id) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to query images") } var images []types.PlantImage for rows6.Next() { @@ -601,7 +544,7 @@ func GetPlant(id string) PlantDataResponse { var image_date time.Time err = rows6.Scan(&id, &image_path, &image_description, &image_order, &image_date) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to scan images") } //Convert any \ in image_path to / image_path = "/" + strings.Replace(image_path, "\\", "/", -1) @@ -666,13 +609,13 @@ func GetPlant(id string) PlantDataResponse { //Convert int and dates to strings strCurrentHeight := strconv.Itoa(iCurrentHeight) - plant = PlantDataResponse{id, name, description, status, statusID, strain_name, strain_id, breeder_name, zone_name, iCurrentDay, iCurrentWeek, strCurrentHeight, heightDate, lastWaterDate, lastFeedDate, measurements, activities, statusHistory, sensorList, latestImage, images, isClone, start_dt, harvest_weight, harvestDate} + plant = types.Plant{id, name, description, status, statusID, strain_name, strain_id, breeder_name, zone_name, iCurrentDay, iCurrentWeek, strCurrentHeight, heightDate, lastWaterDate, lastFeedDate, measurements, activities, statusHistory, sensorList, latestImage, images, isClone, start_dt, harvest_weight, harvestDate} } // Close the db err = db.Close() if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to close database") return plant } @@ -680,13 +623,14 @@ func GetPlant(id string) PlantDataResponse { } func LinkSensorsToPlant(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "LinkSensorsToPlant") var input struct { PlantID string `json:"plant_id"` SensorIDs []int `json:"sensor_ids"` } if err := c.ShouldBindJSON(&input); err != nil { - fmt.Println("Error binding JSON:", err) + fieldLogger.WithError(err).Error("Failed to bind JSON") c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } @@ -694,7 +638,7 @@ func LinkSensorsToPlant(c *gin.Context) { // Serialize SensorIDs to JSON sensorIDsJSON, err := json.Marshal(input.SensorIDs) if err != nil { - fmt.Println("Error serializing sensor IDs:", err) + fieldLogger.WithError(err).Error("Failed to serialize sensor IDs") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to process sensor IDs"}) return } @@ -702,7 +646,7 @@ func LinkSensorsToPlant(c *gin.Context) { // Initialize the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Database connection error:", err) + fieldLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to the database"}) return } @@ -711,7 +655,7 @@ func LinkSensorsToPlant(c *gin.Context) { // Update the plant with the serialized sensor IDs _, err = db.Exec("UPDATE plant SET sensors = ? WHERE id = ?", sensorIDsJSON, input.PlantID) if err != nil { - fmt.Println("Error updating plant sensors:", err) + fieldLogger.WithError(err).Error("Failed to update sensors") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update sensors for the plant"}) return } @@ -719,28 +663,29 @@ func LinkSensorsToPlant(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "Sensors linked to plant successfully"}) } -type AddStrainRequest struct { - Name string `json:"name"` - BreederID *int `json:"breeder_id"` // Nullable for new breeders - NewBreeder string `json:"new_breeder"` - Indica int `json:"indica"` - Sativa int `json:"sativa"` - Autoflower string `json:"autoflower"` - SeedCount int `json:"seed_count"` - Description string `json:"description"` -} - func AddStrainHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "AddStrainHandler") // Parse the incoming JSON request - var req AddStrainRequest + var req struct { + Name string `json:"name"` + BreederID *int `json:"breeder_id"` // Nullable for new breeders + NewBreeder string `json:"new_breeder"` + Indica int `json:"indica"` + Sativa int `json:"sativa"` + Autoflower string `json:"autoflower"` + SeedCount int `json:"seed_count"` + Description string `json:"description"` + } + if err := c.ShouldBindJSON(&req); err != nil { - log.Println("Error binding JSON:", err) + fieldLogger.WithError(err).Error("Failed to bind JSON") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request payload"}) return } // Validate Indica and Sativa sum if req.Indica+req.Sativa != 100 { + fieldLogger.Error("Indica and Sativa must sum to 100") c.JSON(http.StatusBadRequest, gin.H{"error": "Indica and Sativa must sum to 100"}) return } @@ -748,7 +693,7 @@ func AddStrainHandler(c *gin.Context) { // Open the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - log.Println("Error opening database:", err) + fieldLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Internal server error"}) return } @@ -758,6 +703,7 @@ func AddStrainHandler(c *gin.Context) { var breederID int if req.BreederID == nil { if req.NewBreeder == "" { + fieldLogger.Error("New breeder name is required") c.JSON(http.StatusBadRequest, gin.H{"error": "New breeder name is required"}) return } @@ -769,7 +715,7 @@ func AddStrainHandler(c *gin.Context) { ` result, err := db.Exec(insertBreederStmt, req.NewBreeder) if err != nil { - log.Println("Error inserting breeder:", err) + fieldLogger.WithError(err).Error("Failed to insert new breeder") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add new breeder"}) return } @@ -779,7 +725,7 @@ func AddStrainHandler(c *gin.Context) { // Get the new breeder's ID newBreederID, err := result.LastInsertId() if err != nil { - log.Println("Error retrieving new breeder ID:", err) + fieldLogger.WithError(err).Error("Failed to retrieve new breeder ID") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve new breeder ID"}) return } @@ -796,7 +742,7 @@ func AddStrainHandler(c *gin.Context) { ` _, err = db.Exec(stmt, req.Name, breederID, req.Indica, req.Sativa, req.Autoflower, req.SeedCount, req.Description) if err != nil { - log.Println("Error inserting strain:", err) + fieldLogger.WithError(err).Error("Failed to insert strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add strain"}) return } @@ -808,9 +754,10 @@ func AddStrainHandler(c *gin.Context) { } func GetStrainHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "GetStrainHandler") id, err := strconv.Atoi(c.Param("id")) if err != nil { - log.Println("Invalid strain ID:", err) + fieldLogger.WithError(err).Error("Invalid strain ID") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid strain ID"}) return } @@ -818,22 +765,13 @@ func GetStrainHandler(c *gin.Context) { // Open the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - log.Println("Error opening database:", err) + fieldLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) return } defer db.Close() - var strain struct { - ID int `json:"id"` - Name string `json:"name"` - Breeder string `json:"breeder"` - Indica int `json:"indica"` - Sativa int `json:"sativa"` - Autoflower string `json:"autoflower"` - Description string `json:"description"` - SeedCount int `json:"seed_count"` - } + var strain types.Strain err = db.QueryRow(` SELECT s.id, s.name, b.name as breeder, s.indica, s.sativa, s.autoflower, s.description, s.seed_count @@ -845,7 +783,7 @@ func GetStrainHandler(c *gin.Context) { if err == sql.ErrNoRows { c.JSON(http.StatusNotFound, gin.H{"error": "Strain not found"}) } else { - log.Println("Error fetching strain:", err) + fieldLogger.WithError(err).Error("Failed to fetch strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch strain"}) } return @@ -855,14 +793,15 @@ func GetStrainHandler(c *gin.Context) { } func UpdateStrainHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "UpdateStrainHandler") id, err := strconv.Atoi(c.Param("id")) if err != nil { - log.Println("Invalid strain ID:", err) + fieldLogger.WithError(err).Error("Invalid strain ID") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid strain ID"}) return } - var strain struct { + var req struct { Name string `json:"name"` BreederID *int `json:"breeder_id"` // Nullable for new breeders NewBreeder string `json:"new_breeder"` @@ -873,14 +812,15 @@ func UpdateStrainHandler(c *gin.Context) { SeedCount int `json:"seed_count"` } - if err := c.ShouldBindJSON(&strain); err != nil { - log.Println("Invalid request body:", err) + if err := c.ShouldBindJSON(&req); err != nil { + fieldLogger.WithError(err).Error("Failed to bind JSON") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request body"}) return } // Validate Indica and Sativa sum - if strain.Indica+strain.Sativa != 100 { + if req.Indica+req.Sativa != 100 { + fieldLogger.Error("Indica and Sativa must sum to 100") c.JSON(http.StatusBadRequest, gin.H{"error": "Indica and Sativa must sum to 100"}) return } @@ -888,7 +828,7 @@ func UpdateStrainHandler(c *gin.Context) { // Open the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - log.Println("Error opening database:", err) + fieldLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) return } @@ -896,8 +836,9 @@ func UpdateStrainHandler(c *gin.Context) { // Determine the breeder ID var breederID int - if strain.BreederID == nil { - if strain.NewBreeder == "" { + if req.BreederID == nil { + if req.NewBreeder == "" { + fieldLogger.Error("New breeder name is required") c.JSON(http.StatusBadRequest, gin.H{"error": "New breeder name is required"}) return } @@ -907,9 +848,9 @@ func UpdateStrainHandler(c *gin.Context) { INSERT INTO breeder (name) VALUES (?) ` - result, err := db.Exec(insertBreederStmt, strain.NewBreeder) + result, err := db.Exec(insertBreederStmt, req.NewBreeder) if err != nil { - log.Println("Error inserting new breeder:", err) + fieldLogger.WithError(err).Error("Failed to insert new breeder") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add new breeder"}) return } @@ -919,13 +860,13 @@ func UpdateStrainHandler(c *gin.Context) { // Get the new breeder's ID newBreederID, err := result.LastInsertId() if err != nil { - log.Println("Error retrieving new breeder ID:", err) + fieldLogger.WithError(err).Error("Failed to retrieve new breeder ID") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve new breeder ID"}) return } breederID = int(newBreederID) } else { - breederID = *strain.BreederID + breederID = *req.BreederID } // Update the strain in the database @@ -934,10 +875,10 @@ func UpdateStrainHandler(c *gin.Context) { SET name = ?, breeder_id = ?, indica = ?, sativa = ?, autoflower = ?, description = ?, seed_count = ? WHERE id = ? ` - _, err = db.Exec(updateStmt, strain.Name, breederID, strain.Indica, strain.Sativa, - strain.Autoflower, strain.Description, strain.SeedCount, id) + _, err = db.Exec(updateStmt, req.Name, breederID, req.Indica, req.Sativa, + req.Autoflower, req.Description, req.SeedCount, id) if err != nil { - log.Println("Error updating strain:", err) + fieldLogger.WithError(err).Error("Failed to update strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update strain"}) return } @@ -946,9 +887,10 @@ func UpdateStrainHandler(c *gin.Context) { } func DeleteStrainHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "DeleteStrainHandler") id, err := strconv.Atoi(c.Param("id")) if err != nil { - log.Println("Invalid strain ID:", err) + fieldLogger.WithError(err).Error("Invalid strain ID") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid strain ID"}) return } @@ -956,7 +898,7 @@ func DeleteStrainHandler(c *gin.Context) { // Open the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - log.Println("Error opening database:", err) + fieldLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) return } @@ -964,13 +906,14 @@ func DeleteStrainHandler(c *gin.Context) { result, err := db.Exec(`DELETE FROM strain WHERE id = ?`, id) if err != nil { - log.Println("Error deleting strain:", err) + fieldLogger.WithError(err).Error("Failed to delete strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete strain"}) return } rowsAffected, _ := result.RowsAffected() if rowsAffected == 0 { + fieldLogger.Error("Strain not found") c.JSON(http.StatusNotFound, gin.H{"error": "Strain not found"}) return } @@ -979,6 +922,7 @@ func DeleteStrainHandler(c *gin.Context) { } func UpdatePlant(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "UpdatePlant") var input struct { PlantID int `json:"plant_id"` PlantName string `json:"plant_name"` @@ -1000,6 +944,7 @@ func UpdatePlant(c *gin.Context) { // Bind JSON payload if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Failed to bind JSON") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input: " + err.Error()}) return } @@ -1007,6 +952,7 @@ func UpdatePlant(c *gin.Context) { // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + fieldLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } @@ -1015,6 +961,7 @@ func UpdatePlant(c *gin.Context) { // Insert new zone into the database zoneID, err := CreateNewZone(input.NewZone) if err != nil { + fieldLogger.WithError(err).Error("Failed to create new zone") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create new zone"}) return } @@ -1026,6 +973,7 @@ func UpdatePlant(c *gin.Context) { // Insert new strain into the database strainID, err := CreateNewStrain(input.NewStrain) if err != nil { + fieldLogger.WithError(err).Error("Failed to create new strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create new strain"}) return } @@ -1035,7 +983,7 @@ func UpdatePlant(c *gin.Context) { //Update the plant _, err = db.Exec("UPDATE plant SET name = ?, description = ?, zone_id = ?, strain_id = ?, clone = ?, start_dt = ?, harvest_weight = ? WHERE id = ?", input.PlantName, input.PlantDescription, input.ZoneID, input.StrainID, input.IsClone, input.StartDT, input.HarvestWeight, input.PlantID) if err != nil { - log.Printf("Error writing to db: %v", err) + fieldLogger.WithError(err).Error("Failed to update plant") return } @@ -1044,42 +992,23 @@ func UpdatePlant(c *gin.Context) { var currentStatus int err = db.QueryRow("SELECT status_id FROM plant_status_log WHERE plant_id = ? ORDER BY date DESC LIMIT 1", input.PlantID).Scan(¤tStatus) if err != nil { - log.Printf("Error querying db: %v", err) + fieldLogger.WithError(err).Error("Failed to get current status") return } if currentStatus != input.StatusID { _, err = db.Exec("INSERT INTO plant_status_log (plant_id, status_id, date) VALUES (?, ?, ?)", input.PlantID, input.StatusID, input.Date) if err != nil { - log.Printf("Error writing to db: %v", err) + fieldLogger.WithError(err).Error("Failed to update plant status") return } } else { - log.Printf("Status unchanged, not updating") + fieldLogger.Info("Plant status unchanged") } c.JSON(http.StatusCreated, input) } -// Plant represents the structure of a plant record. -type PlantTableResponse struct { - ID int `json:"id"` - Name string `json:"name"` - Description string `json:"description"` - Clone bool `json:"clone"` - StrainName string `json:"strain_name"` - BreederName string `json:"breeder_name"` - ZoneName string `json:"zone_name"` - StartDT string `json:"start_dt"` - CurrentWeek int `json:"current_week"` - CurrentDay int `json:"current_day"` - DaysSinceLastWatering int `json:"days_since_last_watering"` - DaysSinceLastFeeding int `json:"days_since_last_feeding"` - FloweringDays *int `json:"flowering_days,omitempty"` // nil if not flowering - HarvestWeight float64 `json:"harvest_weight"` - Status string `json:"status"` - StatusDate time.Time `json:"status_date"` -} - -func getPlantsByStatus(statuses []int) ([]PlantTableResponse, error) { +func getPlantsByStatus(statuses []int) ([]types.PlantListResponse, error) { + fieldLogger := logger.Log.WithField("func", "getPlantsByStatus") // Generate placeholders for the number of statuses placeholders := make([]string, len(statuses)) args := make([]interface{}, len(statuses)) @@ -1116,6 +1045,7 @@ func getPlantsByStatus(statuses []int) ([]PlantTableResponse, error) { // Open the database connection db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + fieldLogger.WithError(err).Error("Failed to open database") return nil, err } defer db.Close() @@ -1123,14 +1053,16 @@ func getPlantsByStatus(statuses []int) ([]PlantTableResponse, error) { // Execute the query rows, err := db.Query(query, args...) if err != nil { + fieldLogger.WithError(err).Error("Failed to query plants") return nil, err } defer rows.Close() - plants := []PlantTableResponse{} + plants := []types.PlantListResponse{} for rows.Next() { - var plant PlantTableResponse + var plant types.PlantListResponse if err := rows.Scan(&plant.ID, &plant.Name, &plant.Description, &plant.Clone, &plant.StrainName, &plant.BreederName, &plant.ZoneName, &plant.StartDT, &plant.CurrentWeek, &plant.CurrentDay, &plant.DaysSinceLastWatering, &plant.DaysSinceLastFeeding, &plant.FloweringDays, &plant.HarvestWeight, &plant.Status, &plant.StatusDate); err != nil { + fieldLogger.WithError(err).Error("Failed to scan plant") return nil, err } plants = append(plants, plant) @@ -1139,7 +1071,7 @@ func getPlantsByStatus(statuses []int) ([]PlantTableResponse, error) { return plants, nil } -func GetLivingPlants() []PlantTableResponse { +func GetLivingPlants() []types.PlantListResponse { statuses := []int{1, 2, 3} // Seedling, Veg, Flower result, _ := getPlantsByStatus(statuses) return result @@ -1191,7 +1123,8 @@ func OutOfStockStrainsHandler(c *gin.Context) { } c.JSON(http.StatusOK, strains) } -func getStrainsBySeedCount(inStock bool) ([]config.StrainResponse, error) { +func getStrainsBySeedCount(inStock bool) ([]types.Strain, error) { + fieldLogger := logger.Log.WithField("func", "getStrainsBySeedCount") query := ` SELECT s.id, s.name, b.name AS breeder, b.id as breeder_id, s.indica, s.sativa, s.autoflower, s.seed_count FROM strain s @@ -1209,20 +1142,23 @@ func getStrainsBySeedCount(inStock bool) ([]config.StrainResponse, error) { db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + fieldLogger.WithError(err).Error("Failed to open database") return nil, err } defer db.Close() rows, err := db.Query(query) if err != nil { + fieldLogger.WithError(err).Error("Failed to query strains") return nil, err } defer rows.Close() - var strains []config.StrainResponse + var strains []types.Strain for rows.Next() { - var strain config.StrainResponse + var strain types.Strain if err := rows.Scan(&strain.ID, &strain.Name, &strain.Breeder, &strain.BreederID, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.SeedCount); err != nil { + fieldLogger.WithError(err).Error("Failed to scan strain") return nil, err } strains = append(strains, strain) diff --git a/handlers/plant_activity.go b/handlers/plant_activity.go index a6dd5f1..9fdc37c 100644 --- a/handlers/plant_activity.go +++ b/handlers/plant_activity.go @@ -3,41 +3,61 @@ package handlers import ( "database/sql" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" + "isley/logger" model "isley/model" - "log" "net/http" ) func CreatePlantActivity(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "CreatePlantActivity", + }) + var input struct { PlantID int `json:"plant_id"` ActivityID int `json:"activity_id"` Note string `json:"note"` - Date string `json:"date"` // YYYY-MM-DD format + Date string `json:"date"` } - // Bind JSON payload if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Failed to bind JSON") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input: " + err.Error()}) return } - // Init the db + fieldLogger = logger.Log.WithFields(logrus.Fields{ + "plant_id": input.PlantID, + "activity_id": input.ActivityID, + "note": input.Note, + "date": input.Date, + }) + db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + fieldLogger.WithError(err).Error("Failed to open database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } + defer db.Close() + _, err = db.Exec("INSERT INTO plant_activity (plant_id, activity_id, note, date) VALUES (?, ?, ?, ?)", input.PlantID, input.ActivityID, input.Note, input.Date) if err != nil { - log.Printf("Error writing to db: %v", err) + fieldLogger.WithError(err).Error("Failed to insert activity into database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create activity"}) return } + fieldLogger.Info("Plant activity created successfully") c.JSON(http.StatusCreated, input) } func EditActivity(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "EditActivity", + }) + var input struct { ID uint `json:"id"` Date string `json:"date"` @@ -46,13 +66,22 @@ func EditActivity(c *gin.Context) { } if err := c.ShouldBindJSON(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + fieldLogger.WithError(err).Error("Failed to bind JSON") + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input"}) return } + logger.Log.WithFields(logrus.Fields{ + "id": input.ID, + "activity_id": input.ActivityID, + "date": input.Date, + "note": input.Note, + }) + db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) + fieldLogger.WithError(err).Error("Failed to open database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } defer db.Close() @@ -60,19 +89,27 @@ func EditActivity(c *gin.Context) { query := `UPDATE plant_activity SET date = ?, activity_id = ?, note = ? WHERE id = ?` _, err = db.Exec(query, input.Date, input.ActivityID, input.Note, input.ID) if err != nil { + fieldLogger.WithError(err).Error("Failed to update activity") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update activity"}) return } + fieldLogger.Info("Plant activity updated successfully") c.JSON(http.StatusOK, gin.H{"message": "Activity updated successfully"}) } func DeleteActivity(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "DeleteActivity", + }) + id := c.Param("id") + fieldLogger.WithField("id", id) db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) + fieldLogger.WithError(err).Error("Failed to open database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } defer db.Close() @@ -80,14 +117,20 @@ func DeleteActivity(c *gin.Context) { query := `DELETE FROM plant_activity WHERE id = ?` _, err = db.Exec(query, id) if err != nil { + fieldLogger.WithError(err).Error("Failed to delete activity") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete activity"}) return } + fieldLogger.Info("Plant activity deleted successfully") c.JSON(http.StatusOK, gin.H{"message": "Activity deleted successfully"}) } func RecordMultiPlantActivity(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "RecordMultiPlantActivity", + }) + var request struct { PlantIDs []int `json:"plant_ids"` ActivityID int `json:"activity_id"` @@ -96,36 +139,42 @@ func RecordMultiPlantActivity(c *gin.Context) { } if err := c.BindJSON(&request); err != nil { + fieldLogger.WithError(err).Error("Failed to bind JSON") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request"}) return } - // Validate inputs if len(request.PlantIDs) == 0 { + fieldLogger.Error("No plants selected") c.JSON(http.StatusBadRequest, gin.H{"error": "No plants selected"}) return } - // Save activity for each plant + fieldLogger.WithFields(logrus.Fields{ + "activity_id": request.ActivityID, + "note": request.Note, + "date": request.Date, + "plant_ids": request.PlantIDs, + }) + db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - log.Println("Database error:", err) + fieldLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } defer db.Close() for _, plantID := range request.PlantIDs { - _, err = db.Exec(` - INSERT INTO plant_activity (plant_id, activity_id, note, date) - VALUES (?, ?, ?, ?) - `, plantID, request.ActivityID, request.Note, request.Date) + _, err = db.Exec(`INSERT INTO plant_activity (plant_id, activity_id, note, date) VALUES (?, ?, ?, ?)`, + plantID, request.ActivityID, request.Note, request.Date) if err != nil { - log.Println("Error saving activity:", err) + fieldLogger.WithError(err).WithField("plant_id", plantID).Error("Failed to insert activity for plant") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save activity"}) return } } + fieldLogger.Info("Activities recorded successfully for multiple plants") c.JSON(http.StatusOK, gin.H{"success": true}) } diff --git a/handlers/plant_image.go b/handlers/plant_image.go index f6d1948..f7a3af4 100644 --- a/handlers/plant_image.go +++ b/handlers/plant_image.go @@ -3,32 +3,36 @@ package handlers import ( "database/sql" "fmt" + "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" "io" + "isley/logger" "isley/model" - "log" - _ "mime/multipart" "net/http" "os" "path/filepath" "strconv" "time" - - "github.com/gin-gonic/gin" ) func UploadPlantImages(c *gin.Context) { + fileLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "UploadPlantImages", + }) + // Get the plant ID from the URL parameter plantID, err := strconv.Atoi(c.Param("plantID")) if err != nil { - log.Println("Error parsing plant ID:", err) + fileLogger.WithError(err).Error("Invalid plant ID") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid plant ID"}) return } + fileLogger = logger.Log.WithField("plantID", plantID) // Parse the multipart form data err = c.Request.ParseMultipartForm(10 << 20) // Limit to 10 MB if err != nil { - log.Println("Error parsing form data:", err) + fileLogger.WithError(err).Error("Failed to parse multipart form data") c.JSON(http.StatusBadRequest, gin.H{"error": "Failed to parse form data"}) return } @@ -39,10 +43,9 @@ func UploadPlantImages(c *gin.Context) { descriptions := form.Value["descriptions[]"] dates := form.Value["dates[]"] - // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - log.Println("Error opening database:", err) + fileLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } @@ -50,10 +53,12 @@ func UploadPlantImages(c *gin.Context) { // Process each uploaded file for index, fileHeader := range files { + fileLogger := logger.Log.WithField("fileIndex", index) + // Open the uploaded file file, err := fileHeader.Open() if err != nil { - log.Println("Error opening file:", err) + fileLogger.WithError(err).Error("Failed to open uploaded file") continue } defer file.Close() @@ -62,11 +67,12 @@ func UploadPlantImages(c *gin.Context) { timestamp := time.Now().UnixNano() fileName := fmt.Sprintf("plant_%d_image_%d_%d%s", plantID, index, timestamp, filepath.Ext(fileHeader.Filename)) savePath := filepath.Join("uploads", "plants", fileName) + fileLogger = fileLogger.WithField("savePath", savePath) // Create the uploads directory if it doesn't exist err = os.MkdirAll(filepath.Dir(savePath), os.ModePerm) if err != nil { - log.Println("Error creating directory:", err) + fileLogger.WithError(err).Error("Failed to create directory") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create directory"}) return } @@ -74,14 +80,14 @@ func UploadPlantImages(c *gin.Context) { // Save the file to the filesystem out, err := os.Create(savePath) if err != nil { - log.Println("Error creating file:", err) + fileLogger.WithError(err).Error("Failed to create file on filesystem") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save file"}) return } defer out.Close() _, err = io.Copy(out, file) if err != nil { - log.Println("Error saving file:", err) + fileLogger.WithError(err).Error("Failed to save file to disk") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save file"}) return } @@ -91,11 +97,13 @@ func UploadPlantImages(c *gin.Context) { if index < len(descriptions) { description = descriptions[index] } - imageDate := time.Now() // Default to now if date is invalid + imageDate := time.Now() if index < len(dates) { parsedDate, err := time.Parse("2006-01-02", dates[index]) if err == nil { imageDate = parsedDate + } else { + fileLogger.WithError(err).Warn("Failed to parse image date, using current time as fallback") } } @@ -105,27 +113,32 @@ func UploadPlantImages(c *gin.Context) { VALUES (?, ?, ?, 100, ?)`, plantID, savePath, description, imageDate) if err != nil { - log.Println("Error saving metadata:", err) + fileLogger.WithError(err).Error("Failed to save image metadata to database") continue } + + fileLogger.Info("Successfully processed and saved image") } c.JSON(http.StatusOK, gin.H{"message": "Images uploaded successfully"}) } func DeletePlantImage(c *gin.Context) { - // Get the image ID from the URL + fileLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "DeletePlantImage", + }) + imageID, err := strconv.Atoi(c.Param("imageID")) if err != nil { - log.Println("Error parsing image ID:", err) + fileLogger.WithError(err).Error("Invalid image ID") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid image ID"}) return } + fileLogger = logger.Log.WithField("imageID", imageID) - // Open the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - log.Println("Error opening database:", err) + fileLogger.WithError(err).Error("Failed to open database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } @@ -136,18 +149,20 @@ func DeletePlantImage(c *gin.Context) { err = db.QueryRow("SELECT image_path FROM plant_images WHERE id = ?", imageID).Scan(&imagePath) if err != nil { if err == sql.ErrNoRows { + fileLogger.WithError(err).Error("Image not found in database") c.JSON(http.StatusNotFound, gin.H{"error": "Image not found"}) } else { - log.Println("Error querying image:", err) + fileLogger.WithError(err).Error("Failed to query database for image") c.JSON(http.StatusInternalServerError, gin.H{"error": "Database query error"}) } return } + fileLogger = logger.Log.WithField("imagePath", imagePath) // Delete the image from the filesystem err = os.Remove(imagePath) if err != nil && !os.IsNotExist(err) { - log.Println("Error deleting file:", err) + fileLogger.WithError(err).Error("Failed to delete file from filesystem") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete file"}) return } @@ -155,10 +170,11 @@ func DeletePlantImage(c *gin.Context) { // Delete the image record from the database _, err = db.Exec("DELETE FROM plant_images WHERE id = ?", imageID) if err != nil { - log.Println("Error deleting image record:", err) + fileLogger.WithError(err).Error("Failed to delete image record from database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete image record"}) return } + fileLogger.Info("Image deleted successfully") c.JSON(http.StatusOK, gin.H{"message": "Image deleted successfully"}) } diff --git a/handlers/plant_measurement.go b/handlers/plant_measurement.go index 5778b4d..c9538d2 100644 --- a/handlers/plant_measurement.go +++ b/handlers/plant_measurement.go @@ -3,13 +3,18 @@ package handlers import ( "database/sql" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" + "isley/logger" model "isley/model" - "log" "net/http" ) // CreatePlantMeasurement adds a new sensor data record func CreatePlantMeasurement(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "CreatePlantMeasurement", + }) + var input struct { PlantID int `json:"plant_id"` MetricID int `json:"metric_id"` @@ -19,26 +24,44 @@ func CreatePlantMeasurement(c *gin.Context) { // Bind JSON payload if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Invalid input") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input: " + err.Error()}) return } + fieldLogger = fieldLogger.WithFields(logrus.Fields{ + "plant_id": input.PlantID, + "metric_id": input.MetricID, + "value": input.Value, + "date": input.Date, + }) + // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + fieldLogger.WithError(err).Error("Failed to open database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } - _, err = db.Exec("INSERT INTO plant_measurements (plant_id, metric_id, value, date) VALUES (?, ?, ?, ?)", input.PlantID, input.MetricID, input.Value, input.Date) + defer db.Close() + + _, err = db.Exec("INSERT INTO plant_measurements (plant_id, metric_id, value, date) VALUES (?, ?, ?, ?)", + input.PlantID, input.MetricID, input.Value, input.Date) if err != nil { - log.Printf("Error writing to db: %v", err) + fieldLogger.WithError(err).Error("Failed to insert measurement into database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save measurement"}) return } + fieldLogger.Info("Plant measurement created successfully") c.JSON(http.StatusCreated, input) } func EditMeasurement(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "EditMeasurement", + }) + var input struct { ID uint `json:"id"` Date string `json:"date"` @@ -46,13 +69,21 @@ func EditMeasurement(c *gin.Context) { } if err := c.ShouldBindJSON(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + fieldLogger.WithError(err).Error("Invalid input") + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input: " + err.Error()}) return } + fieldLogger = fieldLogger.WithFields(logrus.Fields{ + "id": input.ID, + "date": input.Date, + "value": input.Value, + }) + db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) + fieldLogger.WithError(err).Error("Failed to open database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } defer db.Close() @@ -60,19 +91,27 @@ func EditMeasurement(c *gin.Context) { query := `UPDATE plant_measurements SET date = ?, value = ? WHERE id = ?` _, err = db.Exec(query, input.Date, input.Value, input.ID) if err != nil { + fieldLogger.WithError(err).Error("Failed to update measurement in database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update measurement"}) return } + fieldLogger.Info("Measurement updated successfully") c.JSON(http.StatusOK, gin.H{"message": "Measurement updated successfully"}) } func DeleteMeasurement(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "DeleteMeasurement", + }) + id := c.Param("id") + fieldLogger = fieldLogger.WithField("id", id) db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) + fieldLogger.WithError(err).Error("Failed to open database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } defer db.Close() @@ -80,9 +119,11 @@ func DeleteMeasurement(c *gin.Context) { query := `DELETE FROM plant_measurements WHERE id = ?` _, err = db.Exec(query, id) if err != nil { + fieldLogger.WithError(err).Error("Failed to delete measurement from database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete measurement"}) return } + fieldLogger.Info("Measurement deleted successfully") c.JSON(http.StatusOK, gin.H{"message": "Measurement deleted successfully"}) } diff --git a/handlers/plant_status_log.go b/handlers/plant_status_log.go index cc7a307..07856aa 100644 --- a/handlers/plant_status_log.go +++ b/handlers/plant_status_log.go @@ -3,24 +3,37 @@ package handlers import ( "database/sql" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" + "isley/logger" model "isley/model" "net/http" ) func EditStatus(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "EditStatus", + }) + var input struct { ID uint `json:"id"` Date string `json:"date"` } if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Invalid input") c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } + fieldLogger = fieldLogger.WithFields(logrus.Fields{ + "id": input.ID, + "date": input.Date, + }) + db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) + fieldLogger.WithError(err).Error("Failed to connect to database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } defer db.Close() @@ -28,19 +41,27 @@ func EditStatus(c *gin.Context) { query := `UPDATE plant_status_log SET date = ? WHERE id = ?` _, err = db.Exec(query, input.Date, input.ID) if err != nil { + fieldLogger.WithError(err).Error("Failed to update status in database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update status"}) return } + logger.Log.Info("Status updated successfully") c.JSON(http.StatusOK, gin.H{"message": "Status updated successfully"}) } func DeleteStatus(c *gin.Context) { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "handler": "DeleteStatus", + }) + id := c.Param("id") + fieldLogger = fieldLogger.WithField("id", id) db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to database"}) + fieldLogger.WithError(err).Error("Failed to connect to database") + c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } defer db.Close() @@ -48,9 +69,11 @@ func DeleteStatus(c *gin.Context) { query := `DELETE FROM plant_status_log WHERE id = ?` _, err = db.Exec(query, id) if err != nil { + fieldLogger.WithError(err).Error("Failed to delete status from database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete status"}) return } + fieldLogger.Info("Status deleted successfully") c.JSON(http.StatusOK, gin.H{"message": "Status deleted successfully"}) } diff --git a/handlers/sensor_data.go b/handlers/sensor_data.go index 3782cba..3ec6eea 100644 --- a/handlers/sensor_data.go +++ b/handlers/sensor_data.go @@ -2,9 +2,10 @@ package handlers import ( "database/sql" - "fmt" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" "isley/config" + "isley/logger" "isley/model" "isley/model/types" "net/http" @@ -13,114 +14,46 @@ import ( "time" ) -type LatestSensorData struct { - TentTemp float64 - TentHumidity float64 - TentVpd float64 - LungRoomTemp float64 - LungRoomHumidity float64 - Soil1Moisture float64 - Soil2Moisture float64 - Soil3Moisture float64 - Soil4Moisture float64 - Soil5Moisture float64 - Soil6Moisture float64 -} - // Cache structure var ( sensorDataCache = make(map[string]cachedEntry) sdCacheMutex sync.Mutex ) -// Cached entry structure type cachedEntry struct { data []types.SensorData timestamp time.Time } -func GetSensorLatest() LatestSensorData { - var sensorData LatestSensorData - // Init the db - db, err := sql.Open("sqlite", model.DbPath()) - if err != nil { - return sensorData - } - rows, err := db.Query("SELECT * FROM sensor_data WHERE id IN (SELECT MAX(id) FROM sensor_data GROUP BY sensor_id)") - if err != nil { - fmt.Println(err) - return sensorData - } - - // Iterate over rows - for rows.Next() { - var id int - var sensor_id int - var value float64 - var create_dt time.Time - err = rows.Scan(&id, &sensor_id, &value, &create_dt) - if err != nil { - fmt.Println(err) - return sensorData - } - switch sensor_id { - case 1: - sensorData.TentTemp = value - case 2: - sensorData.TentHumidity = value - case 3: - sensorData.TentVpd = value - case 4: - sensorData.LungRoomTemp = value - case 5: - sensorData.LungRoomHumidity = value - case 6: - sensorData.Soil1Moisture = value - case 7: - sensorData.Soil2Moisture = value - case 8: - sensorData.Soil3Moisture = value - case 9: - sensorData.Soil4Moisture = value - case 10: - sensorData.Soil5Moisture = value - case 11: - sensorData.Soil6Moisture = value - } - } - - // Close the db - err = db.Close() - if err != nil { - fmt.Println(err) - return sensorData - } - - return sensorData -} - func ChartHandler(c *gin.Context) { - // Extract query parameters + sensorLogger := logger.Log.WithField("handler", "ChartHandler") + sensor := c.Query("sensor") timeMinutes := c.Query("minutes") startDate := c.Query("start") endDate := c.Query("end") - // Validate input + sensorLogger = sensorLogger.WithFields(logrus.Fields{ + "sensor": sensor, + "timeMinutes": timeMinutes, + "startDate": startDate, + "endDate": endDate, + }) + if sensor == "" { + sensorLogger.Error("Sensor parameter is required") c.JSON(http.StatusBadRequest, gin.H{"error": "sensor parameter is required"}) return } - // Generate a cache key based on query parameters cacheKey := generateCacheKey(sensor, timeMinutes, startDate, endDate) sdCacheMutex.Lock() cached, found := sensorDataCache[cacheKey] sdCacheMutex.Unlock() - // If cached data is valid, return it if found && time.Since(cached.timestamp) < time.Duration(config.PollingInterval)*time.Second { + sensorLogger.Info("Serving data from cache") c.JSON(http.StatusOK, cached.data) return } @@ -128,23 +61,22 @@ func ChartHandler(c *gin.Context) { var sensorData []types.SensorData var err error - // Determine query type if startDate != "" && endDate != "" { sensorData, err = querySensorHistoryByDateRange(sensor, startDate, endDate) } else if timeMinutes != "" { sensorData, err = querySensorHistoryByTime(sensor, timeMinutes) } else { + sensorLogger.Error("Invalid query parameters: Either minutes or start/end dates must be provided") c.JSON(http.StatusBadRequest, gin.H{"error": "Either minutes or start and end dates must be provided"}) return } - // Handle query errors if err != nil { + sensorLogger.WithError(err).Error("Failed to query sensor data") c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } - // Cache the new data sdCacheMutex.Lock() sensorDataCache[cacheKey] = cachedEntry{ data: sensorData, @@ -152,60 +84,73 @@ func ChartHandler(c *gin.Context) { } sdCacheMutex.Unlock() - // Return data + sensorLogger.Info("Returning queried sensor data") c.JSON(http.StatusOK, sensorData) } -// Query sensor data by time range func querySensorHistoryByTime(sensor string, timeMinutes string) ([]types.SensorData, error) { + sensorLogger := logger.Log.WithFields(logrus.Fields{ + "function": "querySensorHistoryByTime", + "sensor": sensor, + "timeMinutes": timeMinutes, + }) var sensorData []types.SensorData - // Open the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + sensorLogger.WithError(err).Error("Failed to open database") return sensorData, err } defer db.Close() - // Convert sensor and timeMinutes to integers sensorInt, err := strconv.Atoi(sensor) if err != nil { + sensorLogger.WithError(err).Error("Failed to convert sensor to integer") return sensorData, err } timeMinutesInt, err := strconv.Atoi(timeMinutes) if err != nil { + sensorLogger.WithError(err).Error("Failed to convert timeMinutes to integer") return sensorData, err } - // Query sensor_data table for the given time range timeThreshold := time.Now().Add(-time.Duration(timeMinutesInt) * time.Minute).Format("2006-01-02 15:04:05") query := "SELECT id, sensor_id, value, create_dt FROM sensor_data WHERE sensor_id = $1 AND create_dt > $2 ORDER BY create_dt" rows, err := db.Query(query, sensorInt, timeThreshold) if err != nil { + sensorLogger.WithError(err).Error("Failed to execute query") return sensorData, err } defer rows.Close() - // Parse query results for rows.Next() { var record types.SensorData if err := rows.Scan(&record.ID, &record.SensorID, &record.Value, &record.CreateDT); err != nil { + sensorLogger.WithError(err).Error("Failed to scan row") return sensorData, err } sensorData = append(sensorData, record) } - // Filter data density + sensorLogger.Info("Query completed successfully") return filterSensorData(sensorData, timeMinutesInt), nil } // Query sensor data by custom date range func querySensorHistoryByDateRange(sensor string, startDate string, endDate string) ([]types.SensorData, error) { + sensorLogger := logger.Log.WithFields(logrus.Fields{ + "function": "querySensorHistoryByDateRange", + "sensor": sensor, + "startDate": startDate, + "endDate": endDate, + }) + var sensorData []types.SensorData // Open the database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + sensorLogger.WithError(err).Error(err) return sensorData, err } defer db.Close() @@ -213,6 +158,7 @@ func querySensorHistoryByDateRange(sensor string, startDate string, endDate stri // Convert sensor ID to integer sensorInt, err := strconv.Atoi(sensor) if err != nil { + sensorLogger.WithError(err).Error(err) return sensorData, err } @@ -220,6 +166,7 @@ func querySensorHistoryByDateRange(sensor string, startDate string, endDate stri query := "SELECT id, sensor_id, value, create_dt FROM sensor_data WHERE sensor_id = $1 AND create_dt BETWEEN $2 AND $3 ORDER BY create_dt" rows, err := db.Query(query, sensorInt, startDate, endDate) if err != nil { + sensorLogger.WithError(err).Error(err) return sensorData, err } defer rows.Close() @@ -228,6 +175,7 @@ func querySensorHistoryByDateRange(sensor string, startDate string, endDate stri for rows.Next() { var record types.SensorData if err := rows.Scan(&record.ID, &record.SensorID, &record.Value, &record.CreateDT); err != nil { + sensorLogger.WithError(err).Error(err) return sensorData, err } sensorData = append(sensorData, record) diff --git a/handlers/sensors.go b/handlers/sensors.go index 044c7dc..4cab0cf 100644 --- a/handlers/sensors.go +++ b/handlers/sensors.go @@ -8,27 +8,16 @@ import ( "github.com/gin-gonic/gin" "io" "isley/config" + "isley/logger" "isley/model" "isley/model/types" - "log" + "net" "net/http" + "regexp" "sync" "time" ) -type SensorResponse struct { - ID int `json:"id"` - Name string `json:"name"` - Zone string `json:"zone"` - Source string `json:"source"` - Device string `json:"device"` - Type string `json:"type"` - Show bool `json:"show"` - Unit string `json:"unit"` - CreateDT string `json:"create_dt"` - UpdateDT string `json:"update_dt"` -} - var ( sensorCache map[string]map[string][]map[string]interface{} cacheLastUpdatedTime time.Time @@ -36,9 +25,10 @@ var ( ) func GetSensors() []map[string]interface{} { + fieldLogger := logger.Log.WithField("func", "GetSensors") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Error opening database:", err) + fieldLogger.WithError(err).Error("Error opening database") return nil } defer db.Close() @@ -52,7 +42,7 @@ func GetSensors() []map[string]interface{} { ORDER BY s.source, s.device, s.type, s.name `) if err != nil { - fmt.Println("Error querying sensors:", err) + fieldLogger.WithError(err).Error("Error querying sensors") return nil } defer rows.Close() @@ -68,7 +58,7 @@ func GetSensors() []map[string]interface{} { // Scan the row data err := rows.Scan(&id, &name, &zone, &source, &device, &sensorType, &show, &createDT, &updateDT, &zoneId, &unit) if err != nil { - fmt.Println("Error scanning row:", err) + fieldLogger.WithError(err).Error("Error scanning row") continue } @@ -92,12 +82,16 @@ func GetSensors() []map[string]interface{} { } func ScanACInfinitySensors(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "ScanACInfinitySensors") var input struct { ZoneID *int `json:"zone_id"` // Pointer to allow null values NewZone string `json:"new_zone"` // Optional new zone name } + fieldLogger = fieldLogger.WithField("input", input) + fieldLogger.Info("Scanning AC Infinity sensors") // Bind the JSON payload to the input struct if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Invalid input") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input: " + err.Error()}) return } @@ -105,6 +99,7 @@ func ScanACInfinitySensors(c *gin.Context) { // Insert new zone into the database zoneID, err := CreateNewZone(input.NewZone) if err != nil { + fieldLogger.WithError(err).Error("Failed to create new zone") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create new zone"}) return } @@ -114,20 +109,17 @@ func ScanACInfinitySensors(c *gin.Context) { // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return } // Query settings table and write result to console - - fmt.Println("Scanning AC Infinity sensors...") - url := "http://www.acinfinityserver.com/api/user/devInfoListAll?userId=" + config.ACIToken reqBody := bytes.NewBuffer([]byte("")) req, err := http.NewRequest("POST", url, reqBody) if err != nil { - log.Printf("Error creating request: %v", err) + fieldLogger.WithError(err).Error("Error creating request") return } @@ -139,21 +131,21 @@ func ScanACInfinitySensors(c *gin.Context) { client := &http.Client{} resp, err := client.Do(req) if err != nil { - log.Printf("Error sending request: %v", err) + fieldLogger.WithError(err).Error("Error sending request") return } defer resp.Body.Close() respBody, err := io.ReadAll(resp.Body) if err != nil { - log.Printf("Error reading response body: %v", err) + fieldLogger.WithError(err).Error("Error reading response body") return } var jsonResponse types.ACIResponse err = json.Unmarshal(respBody, &jsonResponse) if err != nil { - log.Printf("Error unmarshalling JSON: %v", err) + fieldLogger.WithError(err).Error("Error unmarshalling JSON response") return } @@ -196,6 +188,10 @@ func ScanACInfinitySensors(c *gin.Context) { name := "ACI (" + device + ") outside humidity" unit := "%" checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) + case 7: //Outside VPD + name := "ACI (" + device + ") outside VPD" + unit := "kPa" + checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) } } @@ -211,13 +207,14 @@ func ScanACInfinitySensors(c *gin.Context) { // Close the db err = db.Close() if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error closing database") return } c.JSON(http.StatusOK, gin.H{"message": "AC Infinity sensors scanned and added"}) } func ScanEcoWittSensors(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "ScanEcoWittSensors") var input struct { ZoneID *int `json:"zone_id"` // Pointer to allow null values NewZone string `json:"new_zone"` // Optional new zone name @@ -225,6 +222,7 @@ func ScanEcoWittSensors(c *gin.Context) { } // Bind the JSON payload to the input struct if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Invalid input") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input: " + err.Error()}) return } @@ -232,6 +230,7 @@ func ScanEcoWittSensors(c *gin.Context) { // Insert new zone into the database zoneID, err := CreateNewZone(input.NewZone) if err != nil { + fieldLogger.WithError(err).Error("Failed to create new zone") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create new zone"}) return } @@ -240,31 +239,43 @@ func ScanEcoWittSensors(c *gin.Context) { // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return } - fmt.Println("Scanning EcoWitt sensors on server: ", input.ServerAddress) - url := "http://" + input.ServerAddress + "/get_livedata_info" + + // Validate the input server address + if !ValidateServerAddress(input.ServerAddress) { + fieldLogger.Error("Invalid server address") + return + } + reqBody := bytes.NewBuffer([]byte("")) req, err := http.NewRequest("GET", url, reqBody) if err != nil { - log.Printf("Error creating request: %v", err) + fieldLogger.WithError(err).Error("Error creating request") return } - client := &http.Client{} + // Create a restricted HTTP client + client := &http.Client{ + Timeout: 5 * time.Second, + CheckRedirect: func(req *http.Request, via []*http.Request) error { + return http.ErrUseLastResponse + }, + } + resp, err := client.Do(req) if err != nil { - log.Printf("Error sending request: %v", err) + fieldLogger.WithError(err).Error("Error sending request") return } defer resp.Body.Close() respBody, err := io.ReadAll(resp.Body) if err != nil { - log.Printf("Error reading response body: %v", err) + fieldLogger.WithError(err).Error("Error reading response body") return } @@ -272,33 +283,24 @@ func ScanEcoWittSensors(c *gin.Context) { var apiResponse types.ECWAPIResponse err = json.Unmarshal(respBody, &apiResponse) if err != nil { - log.Fatalf("Error parsing JSON: %v", err) + fieldLogger.WithError(err).Error("Error unmarshalling JSON response") + return } //Add EcoWitt sensors to db - for _, wh := range apiResponse.WH25 { - fmt.Printf("Temperature: %s %s, Humidity: %s, Absolute Pressure: %s, Relative Pressure: %s\n", - wh.InTemp, wh.Unit, wh.InHumi, wh.Abs, wh.Rel) + sensorType := "WH25.InTemp" + device := input.ServerAddress + source := "ecowitt" + name := "EC (" + input.ServerAddress + ") InTemp" + unit := "Β°F" + checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) + + sensorType = "WH25.InHumi" + name = "EC (" + input.ServerAddress + ") InHumi" + unit = "%" + checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) - sensorType := "WH25.InTemp" - device := input.ServerAddress - source := "ecowitt" - name := "EC (" + input.ServerAddress + ") InTemp" - unit := "Β°F" - checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) - - sensorType = "WH25.InHumi" - name = "EC (" + input.ServerAddress + ") InHumi" - unit = "%" - checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) - - } - - //fmt.Println("\nCH Soil Data:") for _, ch := range apiResponse.CHSoil { - fmt.Printf("Channel: %s, Name: %s, Battery: %s, Humidity: %s\n", - ch.Channel, ch.Name, ch.Battery, ch.Humidity) - sensorType := "Soil." + ch.Channel device := input.ServerAddress source := "ecowitt" @@ -310,7 +312,7 @@ func ScanEcoWittSensors(c *gin.Context) { //Close the db err = db.Close() if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error closing database") return } @@ -319,51 +321,55 @@ func ScanEcoWittSensors(c *gin.Context) { strECDevices, err := LoadEcDevices() if err == nil { config.ECDevices = strECDevices + } else { + fieldLogger.WithError(err).Error("Error loading EC devices") } c.JSON(http.StatusOK, gin.H{"message": "EcoWitt sensors scanned and added"}) } func checkInsertSensor(db *sql.DB, source string, device string, sensorType string, name string, zoneId *int, unit string) { + fieldLogger := logger.Log.WithField("func", "checkInsertSensor") sensorid := 0 err := db.QueryRow("SELECT id FROM sensors WHERE source = ? and device = ? and type = ?", source, device, sensorType).Scan(&sensorid) if err != nil { if err == sql.ErrNoRows { //fmt.Println("No rows found") } else { - fmt.Println("Error querying sensors:", err) + fieldLogger.WithError(err).Error("Error querying for sensor") return } } if sensorid == 0 { _, err := db.Exec("INSERT INTO sensors (name, source, device, type, zone_id, unit) VALUES (?, ?, ?, ?, ?, ?)", name, source, device, sensorType, zoneId, unit) if err != nil { - log.Printf("Error writing to db: %v", err) + fieldLogger.WithError(err).Error("Error inserting sensor") return } } } -func GetZones() []config.ZoneResponse { +func GetZones() []types.Zone { + fieldLogger := logger.Log.WithField("func", "GetZones") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return nil } defer db.Close() - var zones []config.ZoneResponse + var zones []types.Zone rows, err := db.Query("SELECT id, name FROM zones") if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error querying zones") return nil } defer rows.Close() for rows.Next() { - var zone config.ZoneResponse + var zone types.Zone if err := rows.Scan(&zone.ID, &zone.Name); err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error scanning row") continue } zones = append(zones, zone) @@ -373,14 +379,17 @@ func GetZones() []config.ZoneResponse { } func CreateNewZone(name string) (int, error) { + fieldLogger := logger.Log.WithField("func", "CreateNewZone") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + fieldLogger.WithError(err).Error("Error opening database") return 0, err } defer db.Close() result, err := db.Exec("INSERT INTO zones (name) VALUES (?)", name) if err != nil { + fieldLogger.WithError(err).Error("Error inserting new zone") return 0, err } @@ -388,11 +397,13 @@ func CreateNewZone(name string) (int, error) { id, err := result.LastInsertId() if err != nil { + fieldLogger.WithError(err).Error("Error getting last insert ID") return 0, err } return int(id), nil } func GetGroupedSensorsWithLatestReading() map[string]map[string][]map[string]interface{} { + fieldLogger := logger.Log.WithField("func", "GetGroupedSensorsWithLatestReading") cacheMutex.Lock() defer cacheMutex.Unlock() @@ -404,7 +415,7 @@ func GetGroupedSensorsWithLatestReading() map[string]map[string][]map[string]int // Refresh the cache db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return nil } defer db.Close() @@ -417,7 +428,7 @@ func GetGroupedSensorsWithLatestReading() map[string]map[string][]map[string]int AVG(sd.value) OVER ( PARTITION BY sd.sensor_id ORDER BY sd.create_dt ASC - ROWS BETWEEN 31 PRECEDING AND 1 PRECEDING + ROWS BETWEEN 16 PRECEDING AND 1 PRECEDING ) AS rolling_avg, sd.value, sd.create_dt @@ -460,7 +471,7 @@ FROM LatestReadings lr ORDER BY lr.zone_name, lr.device, lr.type; `) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error querying sensors") return nil } defer rows.Close() @@ -475,7 +486,7 @@ ORDER BY lr.zone_name, lr.device, lr.type; var trend string if err := rows.Scan(&id, &zoneName, &device, &sensorType, &sensorName, &value, &unit, &trend); err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error scanning row") continue } @@ -501,10 +512,11 @@ ORDER BY lr.zone_name, lr.device, lr.type; return sensorCache } -func GetGroupedSensors() map[string]map[string]map[string][]SensorResponse { +func GetGroupedSensors() map[string]map[string]map[string][]types.Sensor { + fieldLogger := logger.Log.WithField("func", "GetGroupedSensors") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return nil } defer db.Close() @@ -523,28 +535,28 @@ func GetGroupedSensors() map[string]map[string]map[string][]SensorResponse { ORDER BY z.name, s.device, s.type, s.name `) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error querying sensors") return nil } defer rows.Close() - grouped := make(map[string]map[string]map[string][]SensorResponse) + grouped := make(map[string]map[string]map[string][]types.Sensor) for rows.Next() { - var sensor SensorResponse + var sensor types.Sensor var zoneName, deviceType string if err := rows.Scan(&sensor.Name, &zoneName, &sensor.Device, &deviceType, &sensor.Source, &sensor.Unit); err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error scanning row") continue } // Initialize grouping maps if necessary if _, ok := grouped[zoneName]; !ok { - grouped[zoneName] = make(map[string]map[string][]SensorResponse) + grouped[zoneName] = make(map[string]map[string][]types.Sensor) } if _, ok := grouped[zoneName][sensor.Device]; !ok { - grouped[zoneName][sensor.Device] = make(map[string][]SensorResponse) + grouped[zoneName][sensor.Device] = make(map[string][]types.Sensor) } // Add sensor to the appropriate group @@ -555,6 +567,7 @@ func GetGroupedSensors() map[string]map[string]map[string][]SensorResponse { } func EditSensor(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "EditSensor") var input struct { ID int `json:"id"` Name string `json:"name"` @@ -564,13 +577,14 @@ func EditSensor(c *gin.Context) { } if err := c.ShouldBindJSON(&input); err != nil { + fieldLogger.WithError(err).Error("Invalid input") c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return } defer db.Close() @@ -578,6 +592,7 @@ func EditSensor(c *gin.Context) { _, err = db.Exec("UPDATE sensors SET name = ?, show = ?, zone_id = ?, unit = ? WHERE id = ?", input.Name, input.Visible, input.ZoneID, input.Unit, input.ID) if err != nil { + fieldLogger.WithError(err).Error("Error updating sensor") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update sensor"}) return } @@ -586,10 +601,12 @@ func EditSensor(c *gin.Context) { } func DeleteSensor(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "DeleteSensor") sensorID := c.Param("id") err := DeleteSensorByID(sensorID) if err != nil { + fieldLogger.WithError(err).Error("Error deleting sensor") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete sensor"}) return } @@ -597,10 +614,11 @@ func DeleteSensor(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "Sensor deleted successfully"}) } -func DeleteSensorByID(id string) interface{} { +func DeleteSensorByID(id string) error { + fieldLogger := logger.Log.WithField("func", "DeleteSensorByID") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return err } defer db.Close() @@ -608,22 +626,23 @@ func DeleteSensorByID(id string) interface{} { // Delete sensor_data for this sensor _, err = db.Exec("DELETE FROM sensor_data WHERE sensor_id = ?", id) if err != nil { - fmt.Println("Error deleting sensor data:", err) + fieldLogger.WithError(err).Error("Error deleting sensor data") return err } _, err = db.Exec("DELETE FROM sensors WHERE id = ?", id) if err != nil { - fmt.Println("Error deleting sensor:", err) + fieldLogger.WithError(err).Error("Error deleting sensor") return err } return nil } func GetSensorName(id string) string { + fieldLogger := logger.Log.WithField("func", "GetSensorName") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error opening database") return "" } defer db.Close() @@ -631,9 +650,26 @@ func GetSensorName(id string) string { var name string err = db.QueryRow("SELECT name FROM sensors WHERE id = ?", id).Scan(&name) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Error querying sensor name") return "" } return name } + +// ValidateServerAddress ensures the input is a valid private IP or hostname +func ValidateServerAddress(address string) bool { + // Check if it's a valid IP + ip := net.ParseIP(address) + if ip != nil { + // Ensure the IP is private + if ip.IsLoopback() || ip.IsPrivate() { + return true + } + return false + } + + // Check if it's a valid hostname (local hostnames only) + validHostname := regexp.MustCompile(`^([a-zA-Z0-9_-]+\.)*[a-zA-Z0-9_-]+$`).MatchString + return validHostname(address) +} diff --git a/handlers/settings.go b/handlers/settings.go index 4e4c2e1..2bc37dd 100644 --- a/handlers/settings.go +++ b/handlers/settings.go @@ -6,8 +6,9 @@ import ( "github.com/gin-gonic/gin" "io" "isley/config" + "isley/logger" model "isley/model" - "log" + "isley/model/types" "net/http" "os" "path/filepath" @@ -15,36 +16,11 @@ import ( "time" ) -type Settings struct { - ACI struct { - Enabled bool `json:"enabled"` - } `json:"aci"` - EC struct { - Enabled bool `json:"enabled"` - Server string `json:"server"` - } `json:"ec"` - PollingInterval string `json:"polling_interval"` -} - -type ACInfinitySettings struct { - Enabled bool `json:"enabled"` - TokenSet bool `json:"token_set"` -} - -type EcoWittSettings struct { - Enabled bool `json:"enabled"` -} - -type SettingsData struct { - ACI ACInfinitySettings `json:"aci"` - EC EcoWittSettings `json:"ec"` - PollingInterval int `json:"polling_interval"` -} - func SaveSettings(c *gin.Context) { - var settings Settings + fieldLogger := logger.Log.WithField("func", "SaveSettings") + var settings types.Settings if err := c.ShouldBindJSON(&settings); err != nil { - fmt.Println("Failed to save settings", err) + fieldLogger.WithError(err).Error("Failed to save settings") c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } @@ -54,7 +30,7 @@ func SaveSettings(c *gin.Context) { if settings.ACI.Enabled { err := UpdateSetting("aci.enabled", "1") if err != nil { - fmt.Println("Failed to save settings", err) + fieldLogger.WithError(err).Error("Failed to save settings") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save settings"}) return } else { @@ -63,7 +39,7 @@ func SaveSettings(c *gin.Context) { } else { err := UpdateSetting("aci.enabled", "0") if err != nil { - fmt.Println("Failed to save settings", err) + fieldLogger.WithError(err).Error("Failed to save settings") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save settings"}) return } else { @@ -74,7 +50,7 @@ func SaveSettings(c *gin.Context) { if settings.EC.Enabled { err := UpdateSetting("ec.enabled", "1") if err != nil { - fmt.Println("Failed to save settings", err) + fieldLogger.WithError(err).Error("Failed to save settings") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save settings"}) return } else { @@ -83,7 +59,7 @@ func SaveSettings(c *gin.Context) { } else { err := UpdateSetting("ec.enabled", "0") if err != nil { - fmt.Println("Failed to save settings", err) + fieldLogger.WithError(err).Error("Failed to save settings") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save settings"}) return } else { @@ -92,7 +68,7 @@ func SaveSettings(c *gin.Context) { } err := UpdateSetting("polling_interval", settings.PollingInterval) if err != nil { - fmt.Println("Failed to save settings", err) + fieldLogger.WithError(err).Error("Failed to save settings") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save settings"}) return } else { @@ -103,17 +79,18 @@ func SaveSettings(c *gin.Context) { } func UpdateSetting(name string, value string) error { + fieldLogger := logger.Log.WithField("func", "UpdateSetting") // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to open database", err) + fieldLogger.WithError(err).Error("Failed to open database") return err } existId := 0 // Query settings table and write result to console rows, err := db.Query("SELECT * FROM settings where name = $1", name) if err != nil { - fmt.Println("Failed to read settings", err) + fieldLogger.WithError(err).Error("Failed to read settings") return err } // Iterate over rows @@ -126,7 +103,8 @@ func UpdateSetting(name string, value string) error { var update_dt string err = rows.Scan(&id, &name, &value, &create_dt, &update_dt) if err != nil { - fmt.Println("Failed to read settings", err) + fieldLogger.WithError(err).Error("Failed to read settings") + return err } existId = id } @@ -135,40 +113,41 @@ func UpdateSetting(name string, value string) error { //Insert new setting _, err = db.Exec("INSERT INTO settings (name, value) VALUES ($1, $2)", name, value) if err != nil { - fmt.Println("Failed to insert setting", err) + fieldLogger.WithError(err).Error("Failed to insert setting") } } else { //Update existing setting _, err = db.Exec("UPDATE settings SET value = $1 WHERE id = $2", value, existId) if err != nil { - fmt.Println("Failed to update setting", err) + fieldLogger.WithError(err).Error("Failed to update setting") } } // Close the db err = db.Close() if err != nil { - fmt.Println("Failed to close database", err) + fieldLogger.WithError(err).Error("Failed to close database") return err } return nil } -func GetSettings() SettingsData { +func GetSettings() types.SettingsData { + fieldLogger := logger.Log.WithField("func", "GetSettings") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to read settings", err) - return SettingsData{} + fieldLogger.WithError(err).Error("Failed to open database") + return types.SettingsData{} } defer db.Close() - settingsData := SettingsData{} + settingsData := types.SettingsData{} rows, err := db.Query("SELECT * FROM settings") if err != nil { - fmt.Println("Failed to read settings", err) - return SettingsData{} + fieldLogger.WithError(err).Error("Failed to read settings") + return types.SettingsData{} } defer rows.Close() @@ -177,7 +156,7 @@ func GetSettings() SettingsData { var name, value, createDt, updateDt string err = rows.Scan(&id, &name, &value, &createDt, &updateDt) if err != nil { - fmt.Println("Failed to read settings", err) + fieldLogger.WithError(err).Error("Failed to read settings") continue } @@ -198,11 +177,12 @@ func GetSettings() SettingsData { return settingsData } func AddZoneHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "AddZoneHandler") var zone struct { Name string `json:"zone_name"` } if err := c.ShouldBindJSON(&zone); err != nil { - fmt.Println("Failed to add zone", err) + fieldLogger.WithError(err).Error("Failed to add zone") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid payload"}) return } @@ -210,7 +190,7 @@ func AddZoneHandler(c *gin.Context) { // Add zone to database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to add zone", err) + fieldLogger.WithError(err).Error("Failed to add zone") return } defer db.Close() @@ -219,30 +199,32 @@ func AddZoneHandler(c *gin.Context) { var id int err = db.QueryRow("INSERT INTO zones (name) VALUES ($1) RETURNING id", zone.Name).Scan(&id) if err != nil { - fmt.Println("Failed to add zone", err) + fieldLogger.WithError(err).Error("Failed to add zone") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add zone"}) return } //Add the new zone to the config - config.Zones = append(config.Zones, config.ZoneResponse{ID: uint(id), Name: zone.Name}) + config.Zones = append(config.Zones, types.Zone{ID: uint(id), Name: zone.Name}) c.JSON(http.StatusCreated, gin.H{"id": id}) } func AddMetricHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "AddMetricHandler") var metric struct { Name string `json:"metric_name"` Unit string `json:"metric_unit"` } if err := c.ShouldBindJSON(&metric); err != nil { - fmt.Println("Failed to add metric", err) + fieldLogger.WithError(err).Error("Failed to add metric") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid payload"}) return } // metric name of "Height" is reserved if metric.Name == "Height" { + fieldLogger.Error("Failed to add metric") c.JSON(http.StatusBadRequest, gin.H{"error": "This metric name is reserved and can't be added."}) return } @@ -250,7 +232,7 @@ func AddMetricHandler(c *gin.Context) { // Add metric to database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to add metric", err) + fieldLogger.WithError(err).Error("Failed to add metric") return } defer db.Close() @@ -259,27 +241,29 @@ func AddMetricHandler(c *gin.Context) { var id int err = db.QueryRow("INSERT INTO metric (name, unit) VALUES ($1, $2) RETURNING id", metric.Name, metric.Unit).Scan(&id) if err != nil { - fmt.Println("Failed to add metric", err) + fieldLogger.WithError(err).Error("Failed to add metric") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add metric"}) return } - config.Metrics = append(config.Metrics, config.MetricResponse{ID: id, Name: metric.Name, Unit: metric.Unit}) + config.Metrics = append(config.Metrics, types.Metric{ID: id, Name: metric.Name, Unit: metric.Unit}) c.JSON(http.StatusCreated, gin.H{"id": id}) } func AddActivityHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "AddActivityHandler") var activity struct { Name string `json:"activity_name"` } if err := c.ShouldBindJSON(&activity); err != nil { - fmt.Println("Failed to add activity", err) + fieldLogger.WithError(err).Error("Failed to add activity") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid payload"}) return } //Reserved names can't be added "Water", "Feed", "Note" if activity.Name == "Water" || activity.Name == "Feed" || activity.Name == "Note" { + fieldLogger.Error("Failed to add activity") c.JSON(http.StatusBadRequest, gin.H{"error": "This activity name is reserved and can't be added."}) return } @@ -287,7 +271,7 @@ func AddActivityHandler(c *gin.Context) { // Add activity to database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to add activity", err) + fieldLogger.WithError(err).Error("Failed to add activity") return } defer db.Close() @@ -296,21 +280,22 @@ func AddActivityHandler(c *gin.Context) { var id int err = db.QueryRow("INSERT INTO activity (name) VALUES ($1) RETURNING id", activity.Name).Scan(&id) if err != nil { - fmt.Println("Failed to add activity", err) + fieldLogger.WithError(err).Error("Failed to add activity") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add activity"}) return } - config.Activities = append(config.Activities, config.ActivityResponse{ID: id, Name: activity.Name}) + config.Activities = append(config.Activities, types.Activity{ID: id, Name: activity.Name}) c.JSON(http.StatusCreated, gin.H{"id": id}) } func UpdateZoneHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "UpdateZoneHandler") id := c.Param("id") var zone struct { Name string `json:"zone_name"` } if err := c.ShouldBindJSON(&zone); err != nil { - fmt.Println("Failed to update zone", err) + fieldLogger.WithError(err).Error("Failed to update zone") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid payload"}) return } @@ -318,7 +303,7 @@ func UpdateZoneHandler(c *gin.Context) { // Update zone in database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to update zone", err) + fieldLogger.WithError(err).Error("Failed to update zone") return } defer db.Close() @@ -326,7 +311,7 @@ func UpdateZoneHandler(c *gin.Context) { // Update zone in database _, err = db.Exec("UPDATE zones SET name = $1 WHERE id = $2", zone.Name, id) if err != nil { - fmt.Println("Failed to update zone", err) + fieldLogger.WithError(err).Error("Failed to update zone") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update zone"}) return } @@ -337,13 +322,14 @@ func UpdateZoneHandler(c *gin.Context) { } func UpdateMetricHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "UpdateMetricHandler") id := c.Param("id") var metric struct { Name string `json:"metric_name"` Unit string `json:"metric_unit"` } if err := c.ShouldBindJSON(&metric); err != nil { - fmt.Println("Failed to update metric", err) + fieldLogger.WithError(err).Error("Failed to update metric") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid payload"}) return } @@ -351,7 +337,7 @@ func UpdateMetricHandler(c *gin.Context) { // Update metric in database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to update metric", err) + fieldLogger.WithError(err).Error("Failed to update metric") return } defer db.Close() @@ -360,7 +346,7 @@ func UpdateMetricHandler(c *gin.Context) { var lock bool err = db.QueryRow("SELECT lock FROM metric WHERE id = $1", id).Scan(&lock) if err != nil { - fmt.Println("Failed to update metric", err) + fieldLogger.WithError(err).Error("Failed to update metric") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update metric"}) return } @@ -368,7 +354,7 @@ func UpdateMetricHandler(c *gin.Context) { //Update the unit only _, err = db.Exec("UPDATE metric SET unit = $1 WHERE id = $2", metric.Unit, id) if err != nil { - fmt.Println("Failed to update metric", err) + fieldLogger.WithError(err).Error("Failed to update metric") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update metric"}) return } @@ -380,7 +366,7 @@ func UpdateMetricHandler(c *gin.Context) { // Update metric in database _, err = db.Exec("UPDATE metric SET name = $1, unit = $2 WHERE id = $3", metric.Name, metric.Unit, id) if err != nil { - fmt.Println("Failed to update metric", err) + fieldLogger.WithError(err).Error("Failed to update metric") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update metric"}) return } @@ -392,12 +378,13 @@ func UpdateMetricHandler(c *gin.Context) { } func UpdateActivityHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "UpdateActivityHandler") id := c.Param("id") var activity struct { Name string `json:"activity_name"` } if err := c.ShouldBindJSON(&activity); err != nil { - fmt.Println("Failed to update activity", err) + fieldLogger.WithError(err).Error("Failed to update activity") c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid payload"}) return } @@ -405,7 +392,7 @@ func UpdateActivityHandler(c *gin.Context) { // Update activity in database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to update activity", err) + fieldLogger.WithError(err).Error("Failed to update activity") return } defer db.Close() @@ -414,11 +401,12 @@ func UpdateActivityHandler(c *gin.Context) { var lock bool err = db.QueryRow("SELECT lock FROM activity WHERE id = $1", id).Scan(&lock) if err != nil { - fmt.Println("Failed to update activity", err) + fieldLogger.WithError(err).Error("Failed to update activity") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update activity"}) return } if lock { + fieldLogger.Error("Failed to update activity") c.JSON(http.StatusBadRequest, gin.H{"error": "Editing this activity is not allowed."}) return } @@ -426,7 +414,7 @@ func UpdateActivityHandler(c *gin.Context) { // Update activity in database _, err = db.Exec("UPDATE activity SET name = $1 WHERE id = $2", activity.Name, id) if err != nil { - fmt.Println("Failed to update activity", err) + fieldLogger.WithError(err).Error("Failed to update activity") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update activity"}) return } @@ -437,12 +425,13 @@ func UpdateActivityHandler(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "Activity updated"}) } func DeleteZoneHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "DeleteZoneHandler") id := c.Param("id") // Delete zone from database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println("Failed to delete zone", err) + fieldLogger.WithError(err).Error("Failed to delete zone") return } defer db.Close() @@ -450,7 +439,7 @@ func DeleteZoneHandler(c *gin.Context) { //Build a list of plants associated with this zoen to delete first rows, err := db.Query("SELECT id FROM plant WHERE zone_id = $1", id) if err != nil { - fmt.Println("Failed to delete plants", err) + fieldLogger.WithError(err).Error("Failed to delete plants") return } defer rows.Close() @@ -460,7 +449,7 @@ func DeleteZoneHandler(c *gin.Context) { var plantId int err = rows.Scan(&plantId) if err != nil { - fmt.Println("Failed to delete plant", err) + fieldLogger.WithError(err).Error("Failed to delete plant") continue } plantList = append(plantList, plantId) @@ -473,7 +462,7 @@ func DeleteZoneHandler(c *gin.Context) { //Build a list of sensors associated with this zoen to delete first rows, err = db.Query("SELECT id FROM sensors WHERE zone_id = $1", id) if err != nil { - fmt.Println("Failed to delete sensors", err) + fieldLogger.WithError(err).Error("Failed to delete sensors") return } defer rows.Close() @@ -483,7 +472,7 @@ func DeleteZoneHandler(c *gin.Context) { var sensorId int err = rows.Scan(&sensorId) if err != nil { - fmt.Println("Failed to delete sensor", err) + fieldLogger.WithError(err).Error("Failed to delete sensor") continue } sensorList = append(sensorList, sensorId) @@ -496,7 +485,7 @@ func DeleteZoneHandler(c *gin.Context) { // Delete zone from database _, err = db.Exec("DELETE FROM zones WHERE id = $1", id) if err != nil { - fmt.Println("Failed to delete zone", err) + fieldLogger.WithError(err).Error("Failed to delete zone") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete zone"}) return } @@ -508,12 +497,13 @@ func DeleteZoneHandler(c *gin.Context) { } func DeleteMetricHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "DeleteMetricHandler") id := c.Param("id") // Delete metric from database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to delete metric") return } defer db.Close() @@ -522,11 +512,12 @@ func DeleteMetricHandler(c *gin.Context) { var lock bool err = db.QueryRow("SELECT lock FROM metric WHERE id = $1", id).Scan(&lock) if err != nil { - fmt.Println("Failed to delete metric", err) + fieldLogger.WithError(err).Error("Failed to delete metric") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete metric"}) return } if lock { + fieldLogger.Error("Failed to delete metric") c.JSON(http.StatusBadRequest, gin.H{"error": "Deleting this metric is not allowed."}) return } @@ -534,7 +525,7 @@ func DeleteMetricHandler(c *gin.Context) { // Delete any measurements associated with this metric _, err = db.Exec("DELETE FROM plant_measurements WHERE metric_id = $1", id) if err != nil { - fmt.Println("Failed to delete measurements", err) + fieldLogger.WithError(err).Error("Failed to delete measurements") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete measurements"}) return } @@ -542,7 +533,7 @@ func DeleteMetricHandler(c *gin.Context) { // Delete metric from database _, err = db.Exec("DELETE FROM metric WHERE id = $1", id) if err != nil { - fmt.Println("Failed to delete metric", err) + fieldLogger.WithError(err).Error("Failed to delete metric") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete metric"}) return } @@ -554,12 +545,13 @@ func DeleteMetricHandler(c *gin.Context) { } func DeleteActivityHandler(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "DeleteActivityHandler") id := c.Param("id") // Delete activity from database db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to delete activity") return } defer db.Close() @@ -568,11 +560,12 @@ func DeleteActivityHandler(c *gin.Context) { var lock bool err = db.QueryRow("SELECT lock FROM activity WHERE id = $1", id).Scan(&lock) if err != nil { - fmt.Println("Failed to delete activity", err) + fieldLogger.WithError(err).Error("Failed to delete activity") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete activity"}) return } if lock { + fieldLogger.Error("Failed to delete activity") c.JSON(http.StatusBadRequest, gin.H{"error": "Deleting this activity is not allowed."}) return } @@ -580,7 +573,7 @@ func DeleteActivityHandler(c *gin.Context) { // Delete any plant_activities associated with this activity _, err = db.Exec("DELETE FROM plant_activity WHERE activity_id = $1", id) if err != nil { - fmt.Println("Failed to delete plant_activities", err) + fieldLogger.WithError(err).Error("Failed to delete plant_activities") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete plant_activities"}) return } @@ -588,7 +581,7 @@ func DeleteActivityHandler(c *gin.Context) { // Delete activity from database _, err = db.Exec("DELETE FROM activity WHERE id = $1", id) if err != nil { - fmt.Println("Failed to delete activity", err) + fieldLogger.WithError(err).Error("Failed to delete activity") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete activity"}) return } @@ -600,8 +593,10 @@ func DeleteActivityHandler(c *gin.Context) { } func GetSetting(name string) (string, error) { + fieldLogger := logger.Log.WithField("func", "GetSetting") db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + fieldLogger.WithError(err).Error("Failed to open database") return "", err } defer db.Close() @@ -609,16 +604,18 @@ func GetSetting(name string) (string, error) { var value string err = db.QueryRow("SELECT value FROM settings WHERE name = $1", name).Scan(&value) if err != nil { + fieldLogger.WithError(err).Error("Failed to read setting") return "", err } return value, nil } func UploadLogo(c *gin.Context) { + fieldLogger := logger.Log.WithField("func", "UploadLogo") // Parse the multipart form data err := c.Request.ParseMultipartForm(10 << 20) // Limit to 10 MB if err != nil { - log.Println("Error parsing form data:", err) + fieldLogger.WithError(err).Error("Failed to parse form data") c.JSON(http.StatusBadRequest, gin.H{"error": "Failed to parse form data"}) return } @@ -626,7 +623,7 @@ func UploadLogo(c *gin.Context) { // Retrieve the file from the "logo" field fileHeader, err := c.FormFile("logo") if err != nil { - log.Println("Error retrieving file:", err) + fieldLogger.WithError(err).Error("Failed to retrieve file") c.JSON(http.StatusBadRequest, gin.H{"error": "Failed to retrieve file"}) return } @@ -634,7 +631,7 @@ func UploadLogo(c *gin.Context) { // Open the uploaded file file, err := fileHeader.Open() if err != nil { - log.Println("Error opening file:", err) + fieldLogger.WithError(err).Error("Failed to open file") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to open file"}) return } @@ -648,7 +645,7 @@ func UploadLogo(c *gin.Context) { // Create the uploads/logos directory if it doesn't exist err = os.MkdirAll(filepath.Dir(savePath), os.ModePerm) if err != nil { - log.Println("Error creating directory:", err) + fieldLogger.WithError(err).Error("Failed to create directory") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create directory"}) return } @@ -656,14 +653,14 @@ func UploadLogo(c *gin.Context) { // Save the file to the filesystem out, err := os.Create(savePath) if err != nil { - log.Println("Error creating file:", err) + fieldLogger.WithError(err).Error("Failed to save file") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save file"}) return } defer out.Close() _, err = io.Copy(out, file) if err != nil { - log.Println("Error saving file:", err) + fieldLogger.WithError(err).Error("Failed to save file") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save file"}) return } @@ -671,7 +668,7 @@ func UploadLogo(c *gin.Context) { // Update the database with the new logo path err = UpdateSetting("logo_image", fileName) if err != nil { - log.Println("Error updating logo setting:", err) + fieldLogger.WithError(err).Error("Failed to update logo setting") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update logo setting"}) return } @@ -680,18 +677,19 @@ func UploadLogo(c *gin.Context) { } func LoadEcDevices() ([]string, error) { + fieldLogger := logger.Log.WithField("func", "LoadEcDevices") var ecDevices []string // Init the db db, err := sql.Open("sqlite", model.DbPath()) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to open database") return ecDevices, err } //Iterate over sensors table, looking for distinct device with type ecowitt rows, err := db.Query("SELECT DISTINCT device FROM sensors WHERE source = 'ecowitt'") if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to read sensors") return ecDevices, err } //build a list of devices to scan @@ -700,7 +698,7 @@ func LoadEcDevices() ([]string, error) { var device string err = rows.Scan(&device) if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to read sensors") return ecDevices, err } ecDevices = append(ecDevices, device) @@ -709,7 +707,7 @@ func LoadEcDevices() ([]string, error) { // Close the db err = db.Close() if err != nil { - fmt.Println(err) + fieldLogger.WithError(err).Error("Failed to close database") return ecDevices, err } diff --git a/logger/logger.go b/logger/logger.go new file mode 100644 index 0000000..9487215 --- /dev/null +++ b/logger/logger.go @@ -0,0 +1,45 @@ +package logger + +import ( + "io" + "os" + "time" + + "github.com/sirupsen/logrus" + "gopkg.in/natefinch/lumberjack.v2" +) + +var Log *logrus.Logger + +func InitLogger() { + // Create logs directory if it doesn't exist + if _, err := os.Stat("logs"); os.IsNotExist(err) { + os.Mkdir("logs", 0755) + } + + Log = logrus.New() + + // Configure lumberjack for log rotation + logFile := &lumberjack.Logger{ + Filename: "logs/app.log", + MaxSize: 10, // Max size in MB + MaxBackups: 5, // Number of old log files to keep + MaxAge: 30, // Max age in days + Compress: true, + } + + // Multi-writer for logging to both file and console + multiWriter := io.MultiWriter(logFile, os.Stdout) + + // Set log output to multi-writer + Log.SetOutput(multiWriter) + + // Set log format + Log.SetFormatter(&logrus.TextFormatter{ + TimestampFormat: time.RFC3339, + FullTimestamp: true, + }) + + // Set log level + Log.SetLevel(logrus.InfoLevel) +} diff --git a/main.go b/main.go index cd06367..5238160 100644 --- a/main.go +++ b/main.go @@ -7,14 +7,15 @@ import ( "github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions/cookie" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" "html/template" "isley/config" "isley/handlers" + "isley/logger" "isley/model" "isley/routes" "isley/utils" "isley/watcher" - "log" "net/http" "os" "strconv" @@ -26,9 +27,12 @@ import ( var embeddedFiles embed.FS func main() { + // Initialize logger + logger.InitLogger() + // Set version version := fmt.Sprintf("Isley %s", getVersion()) - fmt.Println("Starting application version:", version) + logger.Log.Info("Starting application version:", version) // Define the port port := os.Getenv("ISLEY_PORT") @@ -39,17 +43,17 @@ func main() { model.MigrateDB() // Start the sensor watcher + watcher.PruneSensorData() go watcher.Watch() // Set up Gin router r := gin.Default() - // Define your FuncMap funcMap := template.FuncMap{ "json": func(v interface{}) string { a, err := json.Marshal(v) if err != nil { - log.Printf("error marshalling JSON: %v", err) + logger.Log.WithError(err).Error("Error marshalling JSON") return "" } return string(a) @@ -63,7 +67,10 @@ func main() { "formatStringDate": func(t string) string { tm, err := time.Parse(time.RFC3339, t) if err != nil { - log.Printf("error parsing date: %v", err) + logger.Log.WithFields(logrus.Fields{ + "input": t, + "error": err, + }).Error("Error parsing date") return t } return tm.Format("01/02/2006") @@ -71,13 +78,21 @@ func main() { "toInt": func(value interface{}) int { switch v := value.(type) { case string: - intVal, _ := strconv.Atoi(v) + intVal, err := strconv.Atoi(v) + if err != nil { + logger.Log.WithFields(logrus.Fields{ + "input": v, + "error": err, + }).Error("Error converting string to int") + return 0 + } return intVal case float64: return int(v) case int: return v default: + logger.Log.WithField("input", value).Warn("Unhandled type in toInt conversion") return 0 } }, @@ -155,10 +170,8 @@ func main() { } // Start the server - if err := r.Run(":" + port); err != nil { - log.Fatalf("Failed to start server on port %s: %v", port, err) - } - log.Printf("Server started on port %s", port) + logger.Log.Fatal(r.Run(":" + port)) + logger.Log.Info("Server started on port %s", port) } // Helper functions diff --git a/model/migrate.go b/model/migrate.go index 85eb7ec..4dfe109 100644 --- a/model/migrate.go +++ b/model/migrate.go @@ -3,11 +3,10 @@ package model import ( "database/sql" "embed" - "fmt" "github.com/golang-migrate/migrate/v4" "github.com/golang-migrate/migrate/v4/database/sqlite" "github.com/golang-migrate/migrate/v4/source/iofs" - "log" + "isley/logger" "os" ) @@ -22,88 +21,103 @@ func MigrateDB() { // Ensure the data directory exists dataDir := "data" if err := os.MkdirAll(dataDir, os.ModePerm); err != nil { - log.Fatalf("Failed to create data directory: %v", err) + logger.Log.Fatalf("Failed to create data directory: %v", err) } // Enforce WAL mode before running migrations enforceWalMode() - fmt.Println("Migrating database") + logger.Log.Info("Starting database migration") // Open the database db, err := sql.Open("sqlite", DbPath()) if err != nil { - log.Fatalf("Error opening database: %v", err) + logger.Log.Fatalf("Error opening database: %v", err) } - defer db.Close() + defer func() { + if closeErr := db.Close(); closeErr != nil { + logger.Log.Errorf("Error closing database: %v", closeErr) + } + }() // Initialize the SQLite driver for golang-migrate driver, err := sqlite.WithInstance(db, &sqlite.Config{}) if err != nil { - log.Fatalf("Failed to create SQLite driver: %v", err) + logger.Log.Fatalf("Failed to create SQLite driver: %v", err) } // Use iofs to load migrations from the embedded filesystem sourceDriver, err := iofs.New(migrationsFS, "migrations") if err != nil { - log.Fatalf("Failed to load migrations from embedded filesystem: %v", err) + logger.Log.Fatalf("Failed to load migrations from embedded filesystem: %v", err) } // Create the migrate instance m, err := migrate.NewWithInstance("iofs", sourceDriver, "sqlite", driver) if err != nil { - log.Fatalf("Failed to initialize migration: %v", err) + logger.Log.Fatalf("Failed to initialize migration: %v", err) } // Run the migrations err = m.Up() if err != nil && err != migrate.ErrNoChange { - log.Fatalf("Error applying migrations: %v", err) + logger.Log.Fatalf("Error applying migrations: %v", err) } - fmt.Println("Database migrated successfully") + if err == migrate.ErrNoChange { + logger.Log.Info("No database migrations needed") + } else { + logger.Log.Info("Database migrated successfully") + } } func enforceWalMode() { // Ensure the data directory exists dataDir := "data" if err := os.MkdirAll(dataDir, os.ModePerm); err != nil { - log.Fatalf("Failed to create data directory: %v", err) + logger.Log.Fatalf("Failed to create data directory: %v", err) } // Open the database db, err := sql.Open("sqlite", DbPath()) if err != nil { - log.Println("Error opening database:", err) + logger.Log.Errorf("Error opening database: %v", err) return } - defer db.Close() + defer func() { + if closeErr := db.Close(); closeErr != nil { + logger.Log.Errorf("Error closing database: %v", closeErr) + } + }() // Check WAL mode rows, err := db.Query("PRAGMA journal_mode") if err != nil { - log.Println("Error checking WAL mode:", err) + logger.Log.Errorf("Error checking WAL mode: %v", err) return } - defer rows.Close() + defer func() { + if closeErr := rows.Close(); closeErr != nil { + logger.Log.Errorf("Error closing rows: %v", closeErr) + } + }() var mode string for rows.Next() { - err = rows.Scan(&mode) - if err != nil { - log.Println("Error scanning WAL mode:", err) + if err := rows.Scan(&mode); err != nil { + logger.Log.Errorf("Error scanning WAL mode: %v", err) return } } - fmt.Println("Current WAL mode:", mode) + logger.Log.Infof("Current WAL mode: %s", mode) if mode != "wal" { - _, err = db.Exec("PRAGMA journal_mode=WAL") + _, err := db.Exec("PRAGMA journal_mode=WAL") if err != nil { - log.Println("Error setting WAL mode:", err) + logger.Log.Errorf("Error setting WAL mode: %v", err) return } - fmt.Println("WAL mode set") + logger.Log.Info("WAL mode set successfully") } } diff --git a/model/types/activity.go b/model/types/activity.go deleted file mode 100644 index b10f11c..0000000 --- a/model/types/activity.go +++ /dev/null @@ -1,7 +0,0 @@ -package types - -// Activity represents the structure of the activity table -type Activity struct { - ID uint `json:"id" gorm:"primaryKey"` - Name string `json:"name" gorm:"not null"` -} diff --git a/model/types/base_models.go b/model/types/base_models.go new file mode 100644 index 0000000..e45e29c --- /dev/null +++ b/model/types/base_models.go @@ -0,0 +1,171 @@ +package types + +import "time" + +type PlantActivity struct { + ID uint `json:"id"` + Name string `json:"name"` + Note string `json:"note"` + Date time.Time `json:"date"` + ActivityId int `json:"activity_id"` +} + +type Activity struct { + ID int `json:"id"` + Name string `json:"name"` +} + +type Breeder struct { + ID int `json:"id"` + Name string `json:"name"` +} + +type Measurement struct { + ID uint `json:"id"` + Name string `json:"name"` + Value float64 `json:"value"` + Date time.Time `json:"date"` +} + +type Metric struct { + ID int `json:"id"` + Name string `json:"name"` + Unit string `json:"unit"` +} + +type Plant struct { + ID uint `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + Status string `json:"status"` + StatusID int `json:"status_id"` + StrainName string `json:"strain_name"` + StrainID int `json:"strain_id"` + BreederName string `json:"breeder_name"` + ZoneName string `json:"zone_name"` + CurrentDay int `json:"current_day"` + CurrentWeek int `json:"current_week"` + CurrentHeight string `json:"current_height"` + HeightDate time.Time `json:"height_date"` + LastWaterDate time.Time `json:"last_water_date"` + LastFeedDate time.Time `json:"last_feed_date"` + Measurements []Measurement `json:"measurements"` + Activities []PlantActivity `json:"activities"` + StatusHistory []Status `json:"status_history"` + Sensors []SensorDataResponse `json:"sensors"` + LatestImage PlantImage `json:"latest_image"` + Images []PlantImage `json:"images"` + IsClone bool `json:"is_clone"` + StartDT time.Time `json:"start_dt"` + HarvestWeight float64 `json:"harvest_weight"` + HarvestDate time.Time `json:"harvest_date"` +} + +// PlantImage represents the structure of the plant_images table +type PlantImage struct { + ID uint `json:"id" gorm:"primaryKey"` + PlantID uint `json:"plant_id" gorm:"not null"` + ImagePath string `json:"image_path" gorm:"not null"` + ImageDescription string `json:"image_description" gorm:"not null"` + ImageOrder int `json:"image_order" gorm:"not null"` + ImageDate time.Time `json:"image_date" gorm:"not null;default:CURRENT_TIMESTAMP"` + CreatedAt time.Time `json:"created_at" gorm:"not null;default:CURRENT_TIMESTAMP"` + UpdatedAt time.Time `json:"updated_at" gorm:"not null;default:CURRENT_TIMESTAMP"` +} + +type PlantListResponse struct { + ID int `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + Clone bool `json:"clone"` + StrainName string `json:"strain_name"` + BreederName string `json:"breeder_name"` + ZoneName string `json:"zone_name"` + StartDT string `json:"start_dt"` + CurrentWeek int `json:"current_week"` + CurrentDay int `json:"current_day"` + DaysSinceLastWatering int `json:"days_since_last_watering"` + DaysSinceLastFeeding int `json:"days_since_last_feeding"` + FloweringDays *int `json:"flowering_days,omitempty"` // nil if not flowering + HarvestWeight float64 `json:"harvest_weight"` + Status string `json:"status"` + StatusDate time.Time `json:"status_date"` +} + +type Sensor struct { + ID int `json:"id"` + Name string `json:"name"` + Zone string `json:"zone"` + Source string `json:"source"` + Device string `json:"device"` + Type string `json:"type"` + Show bool `json:"show"` + Unit string `json:"unit"` + CreateDT string `json:"create_dt"` + UpdateDT string `json:"update_dt"` +} + +// SensorData defines the structure for the sensor_data table +type SensorData struct { + ID uint `json:"id" gorm:"primaryKey"` + SensorID int `json:"sensor_id"` + Value float64 `json:"value"` + CreateDT time.Time `json:"create_dt"` +} + +type SensorDataResponse struct { + ID uint `json:"id"` + Name string `json:"name"` + Unit string `json:"unit"` + Value float64 `json:"value"` + Date time.Time `json:"date"` +} + +type Settings struct { + ACI struct { + Enabled bool `json:"enabled"` + } `json:"aci"` + EC struct { + Enabled bool `json:"enabled"` + Server string `json:"server"` + } `json:"ec"` + PollingInterval string `json:"polling_interval"` +} + +type ACInfinitySettings struct { + Enabled bool `json:"enabled"` + TokenSet bool `json:"token_set"` +} + +type EcoWittSettings struct { + Enabled bool `json:"enabled"` +} + +type SettingsData struct { + ACI ACInfinitySettings `json:"aci"` + EC EcoWittSettings `json:"ec"` + PollingInterval int `json:"polling_interval"` +} + +type Status struct { + ID uint `json:"id"` + Status string `json:"status"` + Date time.Time `json:"date"` +} + +type Strain struct { + ID int `json:"id"` + Name string `json:"name"` + Breeder string `json:"breeder"` + BreederID int `json:"breeder_id"` + Indica int `json:"indica"` + Sativa int `json:"sativa"` + Autoflower string `json:"autoflower"` + Description string `json:"description"` + SeedCount int `json:"seed_count"` +} + +type Zone struct { + ID uint `json:"id"` + Name string `json:"name"` +} diff --git a/model/types/metric.go b/model/types/metric.go deleted file mode 100644 index 7738180..0000000 --- a/model/types/metric.go +++ /dev/null @@ -1,8 +0,0 @@ -package types - -// Metric represents the structure of the metric table -type Metric struct { - ID uint `json:"id" gorm:"primaryKey"` - Name string `json:"name" gorm:"not null"` - Unit string `json:"unit" gorm:"not null"` -} diff --git a/model/types/plant.go b/model/types/plant.go deleted file mode 100644 index 95f20dc..0000000 --- a/model/types/plant.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import "time" - -// Plant represents the structure of the plant table -type Plant struct { - ID uint `json:"id" gorm:"primaryKey"` - Name string `json:"name" gorm:"not null"` - StatusID uint `json:"status_id" gorm:"not null"` - Description string `json:"description" gorm:"not null"` - Clone int `json:"clone" gorm:"not null"` - StrainID uint `json:"strain_id" gorm:"not null"` - ZoneID uint `json:"zone_id" gorm:"not null"` - StartDT time.Time `json:"start_dt" gorm:"not null"` -} diff --git a/model/types/plant_activity.go b/model/types/plant_activity.go deleted file mode 100644 index 07bb763..0000000 --- a/model/types/plant_activity.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -import "time" - -// PlantActivity represents the structure of the plant_activity table -type PlantActivity struct { - ID uint `json:"id" gorm:"primaryKey"` - PlantID uint `json:"plant_id" gorm:"not null"` - ActivityID uint `json:"activity_id" gorm:"not null"` - Date time.Time `json:"date" gorm:"not null;default:CURRENT_TIMESTAMP"` - Note string `json:"note" gorm:"not null"` -} diff --git a/model/types/plant_image.go b/model/types/plant_image.go deleted file mode 100644 index 7ae7a7c..0000000 --- a/model/types/plant_image.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import "time" - -// PlantImage represents the structure of the plant_images table -type PlantImage struct { - ID uint `json:"id" gorm:"primaryKey"` - PlantID uint `json:"plant_id" gorm:"not null"` - ImagePath string `json:"image_path" gorm:"not null"` - ImageDescription string `json:"image_description" gorm:"not null"` - ImageOrder int `json:"image_order" gorm:"not null"` - ImageDate time.Time `json:"image_date" gorm:"not null;default:CURRENT_TIMESTAMP"` - CreatedAt time.Time `json:"created_at" gorm:"not null;default:CURRENT_TIMESTAMP"` - UpdatedAt time.Time `json:"updated_at" gorm:"not null;default:CURRENT_TIMESTAMP"` -} diff --git a/model/types/plant_measurement.go b/model/types/plant_measurement.go deleted file mode 100644 index d7ff36e..0000000 --- a/model/types/plant_measurement.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -import "time" - -// PlantMeasurement represents the structure of the plant_measurements table -type PlantMeasurement struct { - ID uint `json:"id" gorm:"primaryKey"` - PlantID uint `json:"plant_id" gorm:"not null"` - MetricID uint `json:"metric_id" gorm:"not null"` - Value float64 `json:"value" gorm:"not null"` - Date time.Time `json:"date" gorm:"not null;default:CURRENT_TIMESTAMP"` -} diff --git a/model/types/plant_status.go b/model/types/plant_status.go deleted file mode 100644 index a38f479..0000000 --- a/model/types/plant_status.go +++ /dev/null @@ -1,8 +0,0 @@ -package types - -// PlantStatus represents the structure of the plant_status table -type PlantStatus struct { - ID uint `json:"id" gorm:"primaryKey"` - Status string `json:"status" gorm:"not null"` - Active int `json:"active" gorm:"not null"` -} diff --git a/model/types/plant_status_log.go b/model/types/plant_status_log.go deleted file mode 100644 index 933ff6f..0000000 --- a/model/types/plant_status_log.go +++ /dev/null @@ -1,11 +0,0 @@ -package types - -import "time" - -// PlantStatusLog represents the structure of the plant_status_log table -type PlantStatusLog struct { - ID uint `json:"id" gorm:"primaryKey"` - PlantID uint `json:"plant_id" gorm:"not null"` - StatusID uint `json:"status_id" gorm:"not null"` - Date time.Time `json:"date" gorm:"not null;default:CURRENT_TIMESTAMP"` -} diff --git a/model/types/sensor_data.go b/model/types/sensor_data.go deleted file mode 100644 index cb9f07c..0000000 --- a/model/types/sensor_data.go +++ /dev/null @@ -1,11 +0,0 @@ -package types - -import "time" - -// SensorData defines the structure for the sensor_data table -type SensorData struct { - ID uint `json:"id" gorm:"primaryKey"` - SensorID int `json:"sensor_id"` - Value float64 `json:"value"` - CreateDT time.Time `json:"create_dt"` -} diff --git a/model/types/sensors.go b/model/types/sensors.go deleted file mode 100644 index 6c88c08..0000000 --- a/model/types/sensors.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import "time" - -// Sensor represents the structure of the sensors table -type Sensor struct { - ID uint `json:"id" gorm:"primaryKey"` - Name string `json:"name" gorm:"not null"` - ZoneID uint `json:"zone_id" gorm:"not null"` // Foreign key to zones table - Source string `json:"source" gorm:"not null"` // Integration type (e.g., acinfinity, ecowitt) - Device string `json:"device" gorm:"not null"` // Device unique ID from source - Type string `json:"type" gorm:"not null"` // Sensor type (e.g., temperature, humidity) - CreateDT time.Time `json:"create_dt" gorm:"autoCreateTime"` - UpdateDT time.Time `json:"update_dt" gorm:"autoUpdateTime"` -} diff --git a/model/types/settings.go b/model/types/settings.go deleted file mode 100644 index 96b3311..0000000 --- a/model/types/settings.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -import "time" - -// Setting represents the structure of the settings table -type Setting struct { - ID uint `json:"id" gorm:"primaryKey"` - Name string `json:"name" gorm:"not null"` - Value string `json:"value" gorm:"not null"` - CreateDT time.Time `json:"create_dt" gorm:"autoCreateTime"` - UpdateDT time.Time `json:"update_dt" gorm:"autoUpdateTime"` -} diff --git a/model/types/strain.go b/model/types/strain.go deleted file mode 100644 index 92c5d5f..0000000 --- a/model/types/strain.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -// Strain represents the structure of the strain table -type Strain struct { - ID uint `json:"id" gorm:"primaryKey"` - Name string `json:"name" gorm:"not null"` - Breeder string `json:"breeder" gorm:"not null"` - Sativa int `json:"sativa" gorm:"not null"` - Indica int `json:"indica" gorm:"not null"` - Autoflower int `json:"autoflower" gorm:"not null"` - Description string `json:"description" gorm:"not null"` -} diff --git a/model/types/zones.go b/model/types/zones.go deleted file mode 100644 index 9430760..0000000 --- a/model/types/zones.go +++ /dev/null @@ -1,10 +0,0 @@ -package types - -import "time" - -type Zones struct { - ID uint `json:"id" gorm:"primaryKey"` - Name string `json:"name"` - CreateDT time.Time `json:"create_dt"` - UpdateDT time.Time `json:"update_dt"` -} diff --git a/utils/image.go b/utils/image.go index 8e2fe99..e5a0c48 100644 --- a/utils/image.go +++ b/utils/image.go @@ -4,9 +4,11 @@ import ( "embed" "fmt" "github.com/fogleman/gg" + "github.com/sirupsen/logrus" "golang.org/x/image/font" "golang.org/x/image/font/opentype" "image/color" + "isley/logger" ) // Embed the fonts directory @@ -37,9 +39,16 @@ type TextOverlayRequest struct { } func ProcessImageWithTextOverlay(req TextOverlayRequest) error { + fieldLogger := logger.Log.WithFields(logrus.Fields{ + "imagePath": req.ImagePath, + "outputPath": req.OutputPath, + }) + fieldLogger.Info("Starting image processing") + // Load the base image img, err := gg.LoadImage(req.ImagePath) if err != nil { + fieldLogger.WithError(err).Error("Failed to load base image") return fmt.Errorf("failed to load image: %w", err) } @@ -56,8 +65,15 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { // Process Image Objects for _, imgObj := range req.ImageObjects { + fieldLogger.WithFields(logrus.Fields{ + "imagePath": imgObj.ImagePath, + "corner": imgObj.Corner, + "opacity": imgObj.Opacity, + }).Info("Processing image overlay") + overlayImg, err := gg.LoadImage(imgObj.ImagePath) if err != nil { + fieldLogger.WithError(err).Error("Failed to load overlay image") return fmt.Errorf("failed to load overlay image: %w", err) } @@ -76,6 +92,7 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { case "bottom-right": x, y = imgWidth-overlayWidth-padding, imgHeight-overlayHeight-padding default: + fieldLogger.WithField("corner", imgObj.Corner).Error("Invalid corner specified") return fmt.Errorf("invalid corner specified: %s", imgObj.Corner) } @@ -88,17 +105,27 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { // Process Text Objects for _, textObj := range req.TextObjects { + textLogger := logger.Log.WithFields(logrus.Fields{ + "text": textObj.Text, + "corner": textObj.Corner, + "fontPath": textObj.FontPath, + }) + textLogger.Info("Processing text overlay") + // Calculate scaled font size fontSize := (imgHeight / 20) * textObj.FontScale + // Load font from the embedded FS - fontData, err := embeddedFonts.ReadFile(textObj.FontPath) // Embedded font path + fontData, err := embeddedFonts.ReadFile(textObj.FontPath) if err != nil { + textLogger.WithError(err).Error("Failed to read embedded font") return fmt.Errorf("failed to read embedded font: %w", err) } // Parse the font using opentype parsedFont, err := opentype.Parse(fontData) if err != nil { + textLogger.WithError(err).Error("Failed to parse font data") return fmt.Errorf("failed to parse font data: %w", err) } @@ -109,18 +136,18 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { Hinting: font.HintingFull, }) if err != nil { + textLogger.WithError(err).Error("Failed to create font face") return fmt.Errorf("failed to create font face: %w", err) } - // Set the font face in the drawing context dc.SetFontFace(fontFace) // Measure text dimensions _, textHeight := dc.MeasureString(textObj.Text) - // Calculate text position with adjustments to ensure visibility + // Calculate text position var x, y float64 - paddingAdjustment := textHeight / 2 // Dynamically adjust padding based on text height + paddingAdjustment := textHeight / 2 switch textObj.Corner { case "top-left": @@ -132,10 +159,10 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { case "bottom-right": x, y = imgWidth-padding, imgHeight-padding default: + logger.Log.WithField("corner", textObj.Corner).Error("Invalid corner specified") return fmt.Errorf("invalid corner specified: %s", textObj.Corner) } - // Prevent text from bleeding off the edges if textObj.Corner == "bottom-left" || textObj.Corner == "bottom-right" { y -= textHeight + paddingAdjustment } else if textObj.Corner == "top-left" || textObj.Corner == "top-right" { @@ -166,8 +193,13 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { // Save the output image if err := dc.SavePNG(req.OutputPath); err != nil { + fieldLogger.WithError(err).Error("Failed to save output image") return fmt.Errorf("failed to save output image: %w", err) } + fieldLogger.WithFields(logrus.Fields{ + "outputPath": req.OutputPath, + }).Info("Image processing completed successfully") + return nil } diff --git a/watcher/watcher.go b/watcher/watcher.go index 1989d3f..e356517 100644 --- a/watcher/watcher.go +++ b/watcher/watcher.go @@ -1,24 +1,23 @@ package watcher import ( - "bytes" "database/sql" "encoding/json" "fmt" + "github.com/sirupsen/logrus" "io" "isley/config" + "isley/logger" "isley/model" "isley/model/types" - "log" "net/http" "time" ) func Watch() { - fmt.Println("Started Sensor Watcher") + logger.Log.Info("Started Sensor Watcher") for { - if config.ACIEnabled == 1 && config.ACIToken != "" { updateACISensorData(config.ACIToken) } @@ -28,85 +27,74 @@ func Watch() { } } time.Sleep(time.Duration(config.PollingInterval) * time.Second) - } - } func updateEcoWittSensorData(server string) { db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + logger.Log.WithError(err).Error("Failed to open database") return } defer db.Close() + currentDate := time.Now().In(time.Local) - fmt.Printf("Updating EC sensor data %v \n", currentDate) + logger.Log.WithField("timestamp", currentDate).Info("Updating EC sensor data") + url := "http://" + server + "/get_livedata_info" - reqBody := bytes.NewBuffer([]byte("")) - req, err := http.NewRequest("GET", url, reqBody) + req, err := http.NewRequest("GET", url, nil) if err != nil { - log.Printf("Error creating request: %v", err) + logger.Log.WithError(err).Error("Error creating EcoWitt request") return } client := &http.Client{} resp, err := client.Do(req) if err != nil { - log.Printf("Error sending request: %v", err) + logger.Log.WithError(err).Error("Error sending EcoWitt request") return } - defer resp.Body.Close() + respBody, err := io.ReadAll(resp.Body) if err != nil { - log.Printf("Error reading response body: %v", err) + logger.Log.WithError(err).Error("Error reading EcoWitt response body") return } - // Parse the JSON into the struct var apiResponse types.ECWAPIResponse err = json.Unmarshal(respBody, &apiResponse) if err != nil { - log.Fatalf("Error parsing JSON: %v", err) + logger.Log.WithError(err).Error("Error parsing EcoWitt JSON response") + return } device := server source := "ecowitt" - var m = make(map[string]string) - //Read the onboard sensors - for _, wh := range apiResponse.WH25 { - sensorType := "WH25.InTemp" - //convert to wh.InTemp float64 and store in value - value := wh.InTemp - m[sensorType] = value + dataMap := map[string]string{} - sensorType = "WH25.InHumi" - value = wh.InHumi[:len(wh.InHumi)-1] - m[sensorType] = value + for _, wh := range apiResponse.WH25 { + dataMap["WH25.InTemp"] = wh.InTemp + dataMap["WH25.InHumi"] = wh.InHumi[:len(wh.InHumi)-1] } for _, ch := range apiResponse.CHSoil { - sensorType := "Soil." + ch.Channel - value := ch.Humidity[:len(ch.Humidity)-1] - m[sensorType] = value + dataMap["Soil."+ch.Channel] = ch.Humidity[:len(ch.Humidity)-1] } - // Write to db - for key, value := range m { + for key, value := range dataMap { addSensorData(source, device, key, value) } - } func updateACISensorData(token string) { currentDate := time.Now().In(time.Local) - fmt.Printf("Updating ACI sensor data %v \n", currentDate) - url := "http://www.acinfinityserver.com/api/user/devInfoListAll?userId=" + token - reqBody := bytes.NewBuffer([]byte("")) + logger.Log.WithField("timestamp", currentDate).Info("Updating ACI sensor data") - req, err := http.NewRequest("POST", url, reqBody) + url := "http://www.acinfinityserver.com/api/user/devInfoListAll?userId=" + token + req, err := http.NewRequest("POST", url, nil) if err != nil { - log.Printf("Error creating request: %v", err) + logger.Log.WithError(err).Error("Error creating ACI request") return } @@ -118,56 +106,42 @@ func updateACISensorData(token string) { client := &http.Client{} resp, err := client.Do(req) if err != nil { - log.Printf("Error sending request: %v", err) + logger.Log.WithError(err).Error("Error sending ACI request") return } defer resp.Body.Close() respBody, err := io.ReadAll(resp.Body) if err != nil { - log.Printf("Error reading response body: %v", err) + logger.Log.WithError(err).Error("Error reading ACI response body") return } var jsonResponse types.ACIResponse err = json.Unmarshal(respBody, &jsonResponse) if err != nil { - log.Printf("Error unmarshalling JSON: %v", err) + logger.Log.WithError(err).Error("Error unmarshalling ACI JSON response") return } source := "acinfinity" - if len(jsonResponse.Data) > 0 { - for _, deviceData := range jsonResponse.Data { - var m = make(map[string]float64) - - device := deviceData.DevCode - sensorType := "ACI.tempF" - value := float64(deviceData.DeviceInfo.TemperatureF) / 100.0 - m[sensorType] = value - - sensorType = "ACI.humidity" - value = float64(deviceData.DeviceInfo.Humidity) / 100.0 - m[sensorType] = value - - for _, sensor := range deviceData.DeviceInfo.Sensors { - sensorType := fmt.Sprintf("ACI.%d.%d", sensor.AccessPort, sensor.SensorType) - value := float64(sensor.SensorData) / 100.0 - m[sensorType] = value - } + for _, deviceData := range jsonResponse.Data { + dataMap := map[string]float64{} + device := deviceData.DevCode - for _, port := range deviceData.DeviceInfo.Ports { - sensorType := fmt.Sprintf("ACIP.%d", port.Port) - value := float64(port.Speak) * 10 - m[sensorType] = value - } + dataMap["ACI.tempF"] = float64(deviceData.DeviceInfo.TemperatureF) / 100.0 + dataMap["ACI.humidity"] = float64(deviceData.DeviceInfo.Humidity) / 100.0 - // Write to db - for key, value := range m { - strValue := fmt.Sprintf("%f", value) - addSensorData(source, device, key, strValue) - } + for _, sensor := range deviceData.DeviceInfo.Sensors { + dataMap[fmt.Sprintf("ACI.%d.%d", sensor.AccessPort, sensor.SensorType)] = float64(sensor.SensorData) / 100.0 + } + + for _, port := range deviceData.DeviceInfo.Ports { + dataMap[fmt.Sprintf("ACIP.%d", port.Port)] = float64(port.Speak) * 10 + } + for key, value := range dataMap { + addSensorData(source, device, key, fmt.Sprintf("%f", value)) } } } @@ -175,28 +149,46 @@ func updateACISensorData(token string) { func addSensorData(source string, device string, key string, value string) { db, err := sql.Open("sqlite", model.DbPath()) if err != nil { + logger.Log.WithError(err).Error("Failed to open database") return } + defer db.Close() - // select sensor id by querying sensor table using key - var sensorid int - err = db.QueryRow("SELECT id FROM sensors WHERE source = ? and device = ? and type = ?", source, device, key).Scan(&sensorid) + var sensorID int + err = db.QueryRow("SELECT id FROM sensors WHERE source = ? AND device = ? AND type = ?", source, device, key).Scan(&sensorID) if err != nil { - //log.Printf("Error querying sensor id for source: %v, device: %v, type: %v, %v", source, device, key, err) + logger.Log.WithFields(logrus.Fields{ + "source": source, + "device": device, + "type": key, + "error": err, + }).Error("Error querying sensor ID") return - } else { - _, err = db.Exec("INSERT INTO sensor_data (sensor_id, value) VALUES (?, ?)", sensorid, value) - if err != nil { - log.Printf("Error writing to db: %v", err) - return - } } - // Close the db - err = db.Close() + _, err = db.Exec("INSERT INTO sensor_data (sensor_id, value) VALUES (?, ?)", sensorID, value) if err != nil { - fmt.Println(err) - return + logger.Log.WithFields(logrus.Fields{ + "sensorID": sensorID, + "value": value, + "error": err, + }).Error("Error writing sensor data to database") + } +} + +func PruneSensorData() error { + db, err := sql.Open("sqlite", model.DbPath()) + if err != nil { + logger.Log.WithError(err).Error("Failed to open database") + return err + } + defer db.Close() + + _, err = db.Exec("DELETE FROM sensor_data WHERE create_dt < datetime('now', '-90 day')") + if err != nil { + logger.Log.WithError(err).Error("Error pruning sensor data") + return err } + return nil } diff --git a/web/templates/pages/index.html b/web/templates/pages/index.html index 71c4b8f..743da9a 100644 --- a/web/templates/pages/index.html +++ b/web/templates/pages/index.html @@ -30,11 +30,13 @@

Plants Overview

Plant Strain - Days Since Last Watering - Days Since Last Feeding - Days in Flowering - Current Week - Current Day + Status + Start + Last πŸ’§ + Last 🍬 + Days πŸͺ» + Week + Day @@ -42,6 +44,8 @@

Plants Overview

{{ .Name }} {{ .StrainName }} + {{ .Status }} + {{ formatStringDate .StartDT }} {{ .DaysSinceLastWatering }} {{ .DaysSinceLastFeeding }} {{ if .FloweringDays }}{{ .FloweringDays }}{{ else }}N/A{{ end }} diff --git a/web/templates/pages/settings.html b/web/templates/pages/settings.html index 40f95b8..0aa89a8 100644 --- a/web/templates/pages/settings.html +++ b/web/templates/pages/settings.html @@ -201,7 +201,10 @@

Metrics

-

Set Logo Image

+ + This logo image is used by the magic wand feature on plant images. It will overlay the logo, strain name and plant age in days on the image. +

⚠️This feature is half baked and needs some work.⚠️

+
@@ -523,7 +526,6 @@ .then((response) => response.json()) .then((data) => { if (data.success) { - document.getElementById("aciToken").value = data.token; const modal = bootstrap.Modal.getInstance(document.getElementById("aciLoginModal")); modal.hide(); //alert("Token fetched successfully!"); From 2e56d729b220bdde4bd2c76195e6f7ea0404f42b Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Thu, 19 Dec 2024 23:39:30 -0500 Subject: [PATCH 05/53] Update for dependabot alert Update Release automation for better notes Update to magic wand function calculations --- .github/workflows/release.yml | 19 ++++++- VERSION | 2 +- go.mod | 2 +- go.sum | 2 + utils/image.go | 96 ++++++++++++++------------------- web/templates/pages/plants.html | 5 +- 6 files changed, 64 insertions(+), 62 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 82f274a..d6488c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,6 @@ jobs: permissions: contents: write # Required for creating releases - steps: - name: Checkout Code uses: actions/checkout@v4 @@ -56,12 +55,30 @@ jobs: docker push dwot/isley:${{ env.version }} docker push dwot/isley:latest + - name: Generate Release Notes + id: release_notes + run: | + # Get the current date + release_date=$(date -u +"%Y-%m-%d") + echo "Release Date: $release_date" > release_notes.md + + # Add commit messages since the last tag + echo -e "\n### Commits:\n" >> release_notes.md + git log --pretty=format:"- %s (%h)" $(git describe --tags --abbrev=0 @^)..@ >> release_notes.md + + # Output the notes for use in the next step + echo "release_notes=$(cat release_notes.md)" >> $GITHUB_ENV + - name: Release Artifacts (Main Branch Only) if: github.ref == 'refs/heads/main' uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 with: tag_name: v${{ env.version }} name: Release v${{ env.version }} + body: ${{ env.release_notes }} files: | isley-linux isley.exe + + - name: Cleanup Release Notes + run: rm -f release_notes.md diff --git a/VERSION b/VERSION index 8294c18..7693c96 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.2 \ No newline at end of file +0.1.3 \ No newline at end of file diff --git a/go.mod b/go.mod index 84e3e3f..462ea9e 100644 --- a/go.mod +++ b/go.mod @@ -49,7 +49,7 @@ require ( go.uber.org/atomic v1.7.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.29.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.21.0 // indirect diff --git a/go.sum b/go.sum index e927ab3..bad29f0 100644 --- a/go.sum +++ b/go.sum @@ -114,6 +114,8 @@ golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/utils/image.go b/utils/image.go index e5a0c48..b113a63 100644 --- a/utils/image.go +++ b/utils/image.go @@ -9,6 +9,7 @@ import ( "golang.org/x/image/font/opentype" "image/color" "isley/logger" + "math" ) // Embed the fonts directory @@ -60,25 +61,27 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { dc := gg.NewContext(int(imgWidth), int(imgHeight)) dc.DrawImage(img, 0, 0) - padding := imgHeight / 50 + padding := imgHeight / 100 // Reduce padding for tighter placement shadowOffset := imgHeight / 200 + // Helper to calculate scaled dimensions for overlays + scaleDimension := func(targetWidth, targetHeight, maxWidth, maxHeight float64) (float64, float64) { + scale := math.Min(maxWidth/targetWidth, maxHeight/targetHeight) + return targetWidth * scale, targetHeight * scale + } + // Process Image Objects for _, imgObj := range req.ImageObjects { - fieldLogger.WithFields(logrus.Fields{ - "imagePath": imgObj.ImagePath, - "corner": imgObj.Corner, - "opacity": imgObj.Opacity, - }).Info("Processing image overlay") - overlayImg, err := gg.LoadImage(imgObj.ImagePath) if err != nil { fieldLogger.WithError(err).Error("Failed to load overlay image") return fmt.Errorf("failed to load overlay image: %w", err) } + // Scale the overlay image overlayWidth := float64(overlayImg.Bounds().Dx()) overlayHeight := float64(overlayImg.Bounds().Dy()) + scaledWidth, scaledHeight := scaleDimension(overlayWidth, overlayHeight, imgWidth/6, imgHeight/6) // Increased scale factor for logo // Calculate overlay position var x, y float64 @@ -86,107 +89,89 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { case "top-left": x, y = padding, padding case "top-right": - x, y = imgWidth-overlayWidth-padding, padding + x, y = imgWidth-scaledWidth-padding, padding case "bottom-left": - x, y = padding, imgHeight-overlayHeight-padding + x, y = padding, imgHeight-scaledHeight-padding case "bottom-right": - x, y = imgWidth-overlayWidth-padding, imgHeight-overlayHeight-padding + x, y = imgWidth-scaledWidth-padding, imgHeight-scaledHeight-padding default: fieldLogger.WithField("corner", imgObj.Corner).Error("Invalid corner specified") return fmt.Errorf("invalid corner specified: %s", imgObj.Corner) } - // Apply transparency and draw the image + // Draw the scaled overlay image dc.Push() + dc.ScaleAbout(scaledWidth/overlayWidth, scaledHeight/overlayHeight, x, y) dc.DrawImageAnchored(overlayImg, int(x), int(y), 0, 0) dc.Pop() - dc.SetRGBA(1, 1, 1, imgObj.Opacity) } // Process Text Objects for _, textObj := range req.TextObjects { - textLogger := logger.Log.WithFields(logrus.Fields{ - "text": textObj.Text, - "corner": textObj.Corner, - "fontPath": textObj.FontPath, - }) - textLogger.Info("Processing text overlay") - - // Calculate scaled font size - fontSize := (imgHeight / 20) * textObj.FontScale + // Adjust font size dynamically based on aspect ratio + aspectRatio := imgWidth / imgHeight + adjustmentFactor := 1.0 + if aspectRatio < 1.0 { // Portrait + adjustmentFactor = 0.75 + } + fontSize := (imgHeight / 20 * textObj.FontScale) * adjustmentFactor - // Load font from the embedded FS + // Load font from embedded FS fontData, err := embeddedFonts.ReadFile(textObj.FontPath) if err != nil { - textLogger.WithError(err).Error("Failed to read embedded font") + fieldLogger.WithError(err).Error("Failed to read embedded font") return fmt.Errorf("failed to read embedded font: %w", err) } - // Parse the font using opentype parsedFont, err := opentype.Parse(fontData) if err != nil { - textLogger.WithError(err).Error("Failed to parse font data") + fieldLogger.WithError(err).Error("Failed to parse font data") return fmt.Errorf("failed to parse font data: %w", err) } - // Create a font face with the desired size fontFace, err := opentype.NewFace(parsedFont, &opentype.FaceOptions{ Size: fontSize, DPI: 72, Hinting: font.HintingFull, }) if err != nil { - textLogger.WithError(err).Error("Failed to create font face") + fieldLogger.WithError(err).Error("Failed to create font face") return fmt.Errorf("failed to create font face: %w", err) } dc.SetFontFace(fontFace) - // Measure text dimensions _, textHeight := dc.MeasureString(textObj.Text) // Calculate text position var x, y float64 - paddingAdjustment := textHeight / 2 - switch textObj.Corner { case "top-left": - x, y = padding, padding+textHeight + x, y = padding, padding+textHeight/1.6 // Closer to the top case "top-right": - x, y = imgWidth-padding, padding+textHeight + x, y = imgWidth-padding, padding+textHeight/1.6 case "bottom-left": - x, y = padding, imgHeight-padding + x, y = padding, imgHeight-padding-textHeight*1.1 case "bottom-right": - x, y = imgWidth-padding, imgHeight-padding + x, y = imgWidth-padding, imgHeight-padding-textHeight*1.1 default: - logger.Log.WithField("corner", textObj.Corner).Error("Invalid corner specified") + fieldLogger.WithField("corner", textObj.Corner).Error("Invalid corner specified") return fmt.Errorf("invalid corner specified: %s", textObj.Corner) } - if textObj.Corner == "bottom-left" || textObj.Corner == "bottom-right" { - y -= textHeight + paddingAdjustment - } else if textObj.Corner == "top-left" || textObj.Corner == "top-right" { - y = padding + textHeight + ax, ay := 0.0, 0.0 + if textObj.Corner == "top-right" || textObj.Corner == "bottom-right" { + ax = 1.0 } - - // Adjust text alignment for corners - var ax, ay float64 - switch textObj.Corner { - case "top-right": - ax, ay = 1.0, 0.0 - case "top-left": - ax, ay = 0.0, 0.0 - case "bottom-right": - ax, ay = 1.0, 1.0 - case "bottom-left": - ax, ay = 0.0, 1.0 + if textObj.Corner == "bottom-left" || textObj.Corner == "bottom-right" { + ay = 1.0 } - // Draw drop shadow + // Draw shadow dc.SetColor(textObj.ShadowColor) dc.DrawStringAnchored(textObj.Text, x+shadowOffset, y+shadowOffset, ax, ay) - // Draw main text + // Draw text dc.SetColor(textObj.FontColor) dc.DrawStringAnchored(textObj.Text, x, y, ax, ay) } @@ -197,9 +182,6 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { return fmt.Errorf("failed to save output image: %w", err) } - fieldLogger.WithFields(logrus.Fields{ - "outputPath": req.OutputPath, - }).Info("Image processing completed successfully") - + fieldLogger.Info("Image processing completed successfully") return nil } diff --git a/web/templates/pages/plants.html b/web/templates/pages/plants.html index baabd67..6268563 100644 --- a/web/templates/pages/plants.html +++ b/web/templates/pages/plants.html @@ -256,9 +256,10 @@ if (currentView === "harvested") { column1 = plant.harvest_weight ? `${plant.harvest_weight} g` : "-"; - column2 = plant.status_date ? new Date(plant.status_date).toLocaleDateString() : "-"; + //Append total days to harvest date from plant.status_date and plant.start_dt + column2 = plant.status_date ? new Date(plant.status_date).toLocaleDateString() + " (" + Math.floor((new Date(plant.status_date) - new Date(plant.start_dt)) / (1000 * 60 * 60 * 24)) + " days)" : "-"; } else if (currentView === "dead") { - column1 = plant.status_date ? new Date(plant.status_date).toLocaleDateString() : "-"; + column1 = plant.status_date ? new Date(plant.status_date).toLocaleDateString() + " (" + Math.floor((new Date(plant.status_date) - new Date(plant.start_dt)) / (1000 * 60 * 60 * 24)) + " days)" : "-"; column2 = ""; // No second column for dead plants } else { column1 = plant.current_week || "-"; From 19204cf64430221f0274937d536b7bd6bc443615 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Thu, 19 Dec 2024 23:43:12 -0500 Subject: [PATCH 06/53] Update for dependabot alert Update Release automation for better notes Update to magic wand function calculations --- .github/workflows/release.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d6488c6..4f8b65b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,12 +62,22 @@ jobs: release_date=$(date -u +"%Y-%m-%d") echo "Release Date: $release_date" > release_notes.md - # Add commit messages since the last tag + # Determine the commit range + if git describe --tags --abbrev=0 > /dev/null 2>&1; then + # If tags exist, get commits since the last tag + commit_range="$(git describe --tags --abbrev=0 @^)..@" + else + # If no tags exist, get all commits + commit_range="HEAD" + fi + + # Add commit messages echo -e "\n### Commits:\n" >> release_notes.md - git log --pretty=format:"- %s (%h)" $(git describe --tags --abbrev=0 @^)..@ >> release_notes.md + git log --pretty=format:"- %s (%h)" $commit_range >> release_notes.md # Output the notes for use in the next step echo "release_notes=$(cat release_notes.md)" >> $GITHUB_ENV + - name: Release Artifacts (Main Branch Only) if: github.ref == 'refs/heads/main' From acad0490b227cc84cd52e8e3af3da2eb321307e7 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Thu, 19 Dec 2024 23:47:07 -0500 Subject: [PATCH 07/53] Update release.yml --- .github/workflows/release.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4f8b65b..93fe2c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -75,8 +75,9 @@ jobs: echo -e "\n### Commits:\n" >> release_notes.md git log --pretty=format:"- %s (%h)" $commit_range >> release_notes.md - # Output the notes for use in the next step - echo "release_notes=$(cat release_notes.md)" >> $GITHUB_ENV + # Escape multiline release notes for GITHUB_ENV + escaped_notes=$(awk '{printf "%s\\n", $0}' release_notes.md) + echo "release_notes=${escaped_notes}" >> $GITHUB_ENV - name: Release Artifacts (Main Branch Only) From b522daba619f9879f8aab494a3c39a8826ba8000 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Fri, 20 Dec 2024 17:40:03 -0500 Subject: [PATCH 08/53] Magic Wand tool enhancements Handle all dates in Local time --- VERSION | 2 +- handlers/image.go | 97 ---------- handlers/plant.go | 22 +-- handlers/plant_image.go | 4 +- handlers/sensor_data.go | 4 +- handlers/sensors.go | 2 +- handlers/settings.go | 2 +- main.go | 12 +- routes/routes.go | 5 +- utils/fonts/Bangers-Regular.ttf | Bin 0 -> 92468 bytes utils/fonts/Barriecito-Regular.ttf | Bin 0 -> 273036 bytes utils/fonts/ChelaOne-Regular.ttf | Bin 0 -> 34460 bytes utils/fonts/FontdinerSwanky-Regular.ttf | Bin 0 -> 44500 bytes utils/fonts/Galindo-Regular.ttf | Bin 0 -> 56696 bytes utils/fonts/JotiOne-Regular.ttf | Bin 0 -> 57512 bytes utils/fonts/RubikDistressed-Regular.ttf | Bin 0 -> 892316 bytes utils/fonts/RubikGlitch-Regular.ttf | Bin 0 -> 407176 bytes utils/fonts/Slackey-Regular.ttf | Bin 0 -> 36836 bytes utils/fonts/SpicyRice-Regular.ttf | Bin 0 -> 65816 bytes utils/fonts/TradeWinds-Regular.ttf | Bin 0 -> 84588 bytes utils/image.go | 170 ++++++++++++++++++ watcher/watcher.go | 2 +- web/templates/pages/plant.html | 224 ++++++++++++++++++++---- 23 files changed, 394 insertions(+), 152 deletions(-) delete mode 100644 handlers/image.go create mode 100644 utils/fonts/Bangers-Regular.ttf create mode 100644 utils/fonts/Barriecito-Regular.ttf create mode 100644 utils/fonts/ChelaOne-Regular.ttf create mode 100644 utils/fonts/FontdinerSwanky-Regular.ttf create mode 100644 utils/fonts/Galindo-Regular.ttf create mode 100644 utils/fonts/JotiOne-Regular.ttf create mode 100644 utils/fonts/RubikDistressed-Regular.ttf create mode 100644 utils/fonts/RubikGlitch-Regular.ttf create mode 100644 utils/fonts/Slackey-Regular.ttf create mode 100644 utils/fonts/SpicyRice-Regular.ttf create mode 100644 utils/fonts/TradeWinds-Regular.ttf diff --git a/VERSION b/VERSION index 7693c96..446ba66 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.3 \ No newline at end of file +0.1.4 \ No newline at end of file diff --git a/handlers/image.go b/handlers/image.go deleted file mode 100644 index c71d00f..0000000 --- a/handlers/image.go +++ /dev/null @@ -1,97 +0,0 @@ -package handlers - -import ( - "fmt" - "github.com/gin-gonic/gin" - "github.com/sirupsen/logrus" - "image/color" - "isley/logger" - "isley/utils" - "net/http" - "path/filepath" -) - -func DecorateImageHandler(c *gin.Context) { - - var req struct { - ImagePath string `json:"imagePath"` - StrainName string `json:"strainName"` - PlantAge string `json:"plantAge"` - } - - if err := c.BindJSON(&req); err != nil { - logger.Log.WithError(err).Error("Failed to bind JSON request") - c.JSON(http.StatusBadRequest, gin.H{"success": false, "error": "Invalid input"}) - return - } - - logger.Log.WithFields(logrus.Fields{ - "imagePath": req.ImagePath, - "strainName": req.StrainName, - "plantAge": req.PlantAge, - }) - - // Prepare paths - fileExtension := filepath.Ext(req.ImagePath) - fileNameWithoutExt := req.ImagePath[:len(req.ImagePath)-len(fileExtension)] - outputPath := fmt.Sprintf("%s.processed%s", fileNameWithoutExt, fileExtension) - - logoFile, _ := GetSetting("logo_image") - logoPath := fmt.Sprintf("./uploads/logos/%s", logoFile) - if logoPath == "" { - logoPath = "web/static/img/placeholder.png" - } - - logger.Log.WithFields(logrus.Fields{ - "outputPath": outputPath, - "logoPath": logoPath, - }) - - fontPath := "fonts/Anton-Regular.ttf" // Replace with your font path - logger.Log.WithField("fontPath", fontPath) - - // Create overlay request - overlayReq := utils.TextOverlayRequest{ - ImagePath: req.ImagePath, - OutputPath: outputPath, - TextObjects: []utils.TextObject{ - { - Text: req.StrainName, - Corner: "top-left", - FontPath: fontPath, - FontColor: color.White, - ShadowColor: color.Black, - FontScale: 2.2, - }, - { - Text: fmt.Sprintf("Day %s", req.PlantAge), - Corner: "bottom-right", - FontPath: fontPath, - FontColor: color.White, - ShadowColor: color.Black, - FontScale: 2.2, - }, - }, - ImageObjects: []utils.ImageObject{ - { - ImagePath: logoPath, - Corner: "bottom-left", - Opacity: 0.8, - }, - }, - } - - logger.Log.Info("Starting image processing") - - // Process the image - if err := utils.ProcessImageWithTextOverlay(overlayReq); err != nil { - logger.Log.WithError(err).Error("Failed to process image with text overlay") - c.JSON(http.StatusInternalServerError, gin.H{"success": false, "error": err.Error()}) - return - } - - logger.Log.Info("Image processed successfully") - - // Respond with the path to the new image - c.JSON(http.StatusOK, gin.H{"success": true, "outputPath": outputPath}) -} diff --git a/handlers/plant.go b/handlers/plant.go index e33213a..1fe13b3 100644 --- a/handlers/plant.go +++ b/handlers/plant.go @@ -525,7 +525,7 @@ func GetPlant(id string) types.Plant { err = db.QueryRow("SELECT id, image_path, image_description, image_order, image_date FROM plant_images WHERE plant_id = ? ORDER BY image_date DESC LIMIT 1", id).Scan(&latestImage.ID, &latestImage.ImagePath, &latestImage.ImageDescription, &latestImage.ImageOrder, &latestImage.ImageDate) if err != nil { fieldLogger.WithError(err).Error("Failed to query latest image") - latestImage = types.PlantImage{ID: 0, PlantID: plant.ID, ImagePath: "/static/img/winston.hat.jpg", ImageDescription: "Placeholder", ImageOrder: 100, ImageDate: time.Now(), CreatedAt: time.Now(), UpdatedAt: time.Now()} + latestImage = types.PlantImage{ID: 0, PlantID: plant.ID, ImagePath: "/static/img/winston.hat.jpg", ImageDescription: "Placeholder", ImageOrder: 100, ImageDate: time.Now().In(time.Local), CreatedAt: time.Now().In(time.Local), UpdatedAt: time.Now().In(time.Local)} } else { latestImage.ImagePath = "/" + strings.Replace(latestImage.ImagePath, "\\", "/", -1) } @@ -548,15 +548,15 @@ func GetPlant(id string) types.Plant { } //Convert any \ in image_path to / image_path = "/" + strings.Replace(image_path, "\\", "/", -1) - images = append(images, types.PlantImage{ID: id, PlantID: plant.ID, ImagePath: image_path, ImageDescription: image_description, ImageOrder: image_order, ImageDate: image_date, CreatedAt: time.Now(), UpdatedAt: time.Now()}) + images = append(images, types.PlantImage{ID: id, PlantID: plant.ID, ImagePath: image_path, ImageDescription: image_description, ImageOrder: image_order, ImageDate: image_date, CreatedAt: time.Now().In(time.Local), UpdatedAt: time.Now().In(time.Local)}) } iCurrentHeight := 0 //initialize the height date to a time in the past Jan 1, 1970 - heightDate := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC) - lastWaterDate := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC) - lastFeedDate := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC) - harvestDate := time.Now() + heightDate := time.Date(1970, 1, 1, 0, 0, 0, 0, time.Local) + lastWaterDate := time.Date(1970, 1, 1, 0, 0, 0, 0, time.Local) + lastFeedDate := time.Date(1970, 1, 1, 0, 0, 0, 0, time.Local) + harvestDate := time.Now().In(time.Local) //iterate measurements to find the last height for _, measurement := range measurements { @@ -1024,11 +1024,11 @@ func getPlantsByStatus(statuses []int) ([]types.PlantListResponse, error) { query := ` SELECT p.id, p.name, p.description, p.clone, s.name AS strain_name, b.name AS breeder_name, z.name AS zone_name, p.start_dt, - ((strftime('%j', 'now') - strftime('%j', p.start_dt)) / 7) +1 AS current_week, - (strftime('%j', 'now') - strftime('%j', p.start_dt)) +1 AS current_day, - COALESCE((SELECT (strftime('%j', 'now') - strftime('%j', MAX(date))) +1 FROM plant_activity pa JOIN activity a ON pa.activity_id = a.id WHERE pa.plant_id = p.id AND a.id = (SELECT id FROM activity WHERE name = 'Water')),0) AS days_since_last_watering, - COALESCE((SELECT (strftime('%j', 'now') - strftime('%j', MAX(date))) +1 FROM plant_activity pa JOIN activity a ON pa.activity_id = a.id WHERE pa.plant_id = p.id AND a.id = (SELECT id FROM activity WHERE name = 'Feed')),0) AS days_since_last_feeding, - COALESCE((SELECT (strftime('%j', 'now') - strftime('%j', MAX(date))) +1 FROM plant_status_log WHERE plant_id = p.id AND status_id = (SELECT id FROM plant_status WHERE status = 'Flower')),0) AS flowering_days, + ((strftime('%j', datetime('now', 'localtime')) - strftime('%j', p.start_dt)) / 7) +1 AS current_week, + (strftime('%j', datetime('now', 'localtime')) - strftime('%j', p.start_dt)) +1 AS current_day, + COALESCE((SELECT (strftime('%j', datetime('now', 'localtime')) - strftime('%j', MAX(date))) FROM plant_activity pa JOIN activity a ON pa.activity_id = a.id WHERE pa.plant_id = p.id AND a.id = (SELECT id FROM activity WHERE name = 'Water')),0) AS days_since_last_watering, + COALESCE((SELECT (strftime('%j', datetime('now', 'localtime')) - strftime('%j', MAX(date))) FROM plant_activity pa JOIN activity a ON pa.activity_id = a.id WHERE pa.plant_id = p.id AND a.id = (SELECT id FROM activity WHERE name = 'Feed')),0) AS days_since_last_feeding, + COALESCE((SELECT (strftime('%j', datetime('now', 'localtime')) - strftime('%j', MAX(date))) FROM plant_status_log WHERE plant_id = p.id AND status_id = (SELECT id FROM plant_status WHERE status = 'Flower')),0) AS flowering_days, p.harvest_weight, ps.status, psl.date as status_date FROM plant p JOIN strain s ON p.strain_id = s.id diff --git a/handlers/plant_image.go b/handlers/plant_image.go index f7a3af4..9a54eae 100644 --- a/handlers/plant_image.go +++ b/handlers/plant_image.go @@ -64,7 +64,7 @@ func UploadPlantImages(c *gin.Context) { defer file.Close() // Generate a unique file path - timestamp := time.Now().UnixNano() + timestamp := time.Now().In(time.Local).UnixNano() fileName := fmt.Sprintf("plant_%d_image_%d_%d%s", plantID, index, timestamp, filepath.Ext(fileHeader.Filename)) savePath := filepath.Join("uploads", "plants", fileName) fileLogger = fileLogger.WithField("savePath", savePath) @@ -97,7 +97,7 @@ func UploadPlantImages(c *gin.Context) { if index < len(descriptions) { description = descriptions[index] } - imageDate := time.Now() + imageDate := time.Now().In(time.Local) if index < len(dates) { parsedDate, err := time.Parse("2006-01-02", dates[index]) if err == nil { diff --git a/handlers/sensor_data.go b/handlers/sensor_data.go index 3ec6eea..c773571 100644 --- a/handlers/sensor_data.go +++ b/handlers/sensor_data.go @@ -80,7 +80,7 @@ func ChartHandler(c *gin.Context) { sdCacheMutex.Lock() sensorDataCache[cacheKey] = cachedEntry{ data: sensorData, - timestamp: time.Now(), + timestamp: time.Now().In(time.Local), } sdCacheMutex.Unlock() @@ -114,7 +114,7 @@ func querySensorHistoryByTime(sensor string, timeMinutes string) ([]types.Sensor return sensorData, err } - timeThreshold := time.Now().Add(-time.Duration(timeMinutesInt) * time.Minute).Format("2006-01-02 15:04:05") + timeThreshold := time.Now().In(time.Local).Add(-time.Duration(timeMinutesInt) * time.Minute).Format("2006-01-02 15:04:05") query := "SELECT id, sensor_id, value, create_dt FROM sensor_data WHERE sensor_id = $1 AND create_dt > $2 ORDER BY create_dt" rows, err := db.Query(query, sensorInt, timeThreshold) if err != nil { diff --git a/handlers/sensors.go b/handlers/sensors.go index 4cab0cf..3de2a6a 100644 --- a/handlers/sensors.go +++ b/handlers/sensors.go @@ -507,7 +507,7 @@ ORDER BY lr.zone_name, lr.device, lr.type; // Update the global cache and timestamp sensorCache = newCache - cacheLastUpdatedTime = time.Now() + cacheLastUpdatedTime = time.Now().In(time.Local) return sensorCache } diff --git a/handlers/settings.go b/handlers/settings.go index 2bc37dd..d70630d 100644 --- a/handlers/settings.go +++ b/handlers/settings.go @@ -638,7 +638,7 @@ func UploadLogo(c *gin.Context) { defer file.Close() // Generate a unique file path - timestamp := time.Now().UnixNano() + timestamp := time.Now().In(time.Local).UnixNano() fileName := fmt.Sprintf("logo_image_%d%s", timestamp, filepath.Ext(fileHeader.Filename)) savePath := filepath.Join("uploads", "logos", fileName) diff --git a/main.go b/main.go index 5238160..33ae71c 100644 --- a/main.go +++ b/main.go @@ -122,7 +122,17 @@ func main() { c.Status(http.StatusNotFound) return } - http.ServeContent(c.Writer, c.Request, filePath, time.Now(), strings.NewReader(string(data))) + http.ServeContent(c.Writer, c.Request, filePath, time.Now().In(time.Local), strings.NewReader(string(data))) + }) + + r.GET("/fonts/*filepath", func(c *gin.Context) { + filePath := fmt.Sprintf("utils/fonts%s", c.Param("filepath")) + data, err := embeddedFiles.ReadFile(filePath) + if err != nil { + c.Status(http.StatusNotFound) + return + } + http.ServeContent(c.Writer, c.Request, filePath, time.Now().In(time.Local), strings.NewReader(string(data))) }) // Initialize session store diff --git a/routes/routes.go b/routes/routes.go index 0ce6c19..292df05 100644 --- a/routes/routes.go +++ b/routes/routes.go @@ -4,6 +4,7 @@ import ( "github.com/gin-gonic/gin" "isley/config" "isley/handlers" + "isley/utils" "net/http" ) @@ -67,6 +68,8 @@ func AddProtectedRotues(r *gin.RouterGroup, version string) { "activities": config.Activities, }) }) + r.GET("/listFonts", utils.ListFontsHandler) + r.GET("/listLogos", utils.ListLogosHandler) r.GET("/settings", func(c *gin.Context) { c.HTML(http.StatusOK, "views/settings.html", gin.H{ @@ -121,7 +124,7 @@ func AddProtectedRotues(r *gin.RouterGroup, version string) { r.DELETE("/plantActivity/delete/:id", handlers.DeleteActivity) r.POST("/plant/:plantID/images/upload", handlers.UploadPlantImages) r.DELETE("/plant/images/:imageID/delete", handlers.DeletePlantImage) - r.POST("/decorateImage", handlers.DecorateImageHandler) + r.POST("/decorateImage", utils.DecorateImageHandler) r.POST("/sensors/scanACI", handlers.ScanACInfinitySensors) r.POST("/sensors/scanEC", handlers.ScanEcoWittSensors) diff --git a/utils/fonts/Bangers-Regular.ttf b/utils/fonts/Bangers-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..438c449990963bb12eba0a82a9d9f54fb46822b5 GIT binary patch literal 92468 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

E1VpAG@c$j+!(rgwc?Cgdtqk$f!dwBqmx{2 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 literal 0 HcmV?d00001 diff --git a/utils/fonts/Barriecito-Regular.ttf b/utils/fonts/Barriecito-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..86336aea527ba07e8e24dbaabb004a67f4f5a87e GIT binary patch literal 273036 zcmc${2Ygh;`ab^7%-Kz{q|jR+Y!Yf3n@t5mNj4jLFD9UnkOT;XB!q+}RS^*o5fwoZ z5fK#xHef+)h)NMu>>Ue;s93IISMqyi&e^jY2v_gD{=fh1=b7`KnRjO1d8d~%Ax1=v zU})5^Z?-#U!L$@ap6|5pkY+g}WT(R+Cdr!zK<$8)3vD#V+!;`e*EQ$_zk~R_!=I_Wz(42x zYX7Xw=Z9;520f+Uvt0tk%(&i$>tF`$sS7~>^{!Z;q*l*PC zhRr?N7MNSL9q`Ag2TD#mgceEBFgs8en6daVil;1?*)#;^Fe-#uOeHW&@ncj*GhkNH ztuQwbLZq#<4d#Qi1LjUT0`o(lrpKWCiz}(K>hxsA<1m-FB1K^q7lrdA{k~k z0og=3|dfkzQ>?7YR^|2w1rypDucGdewaZA&?xqYK?hO>lf_cT734=Zpmes} zun(qWHp-wwn4OXhIusPq6y$0ZRZw^8ir-A+d?oU|0(LVg0VqNKCr~+TC&PUx<U2dSq7Wi$Pvc)WhfX*yC^0)N%eUp#!x zRT}d8>WaFmr=%RRx)AbACzDm4*vY9ROGm0@xtArTKA(2vL?wJr zRl1ZlA`|JA2k?9iot72a41w=%w2&=gH?g(sE_M&|un*Yh>?`&!_5%;+@jQvA@jPD1_wy&w zUVexcGFXI(#v)v_7oA0dNE9jJR`H;CQXGf~iRcjFju;nF7%@HKx`#mBYZ z{`npK&M{gdq{)ta>Q0-DG;LekcP}`%UdvUU%>FQ`tAssZUN}Osc4d zPY0fkId$;V%2UTrjXi~t@2T=rmC9v=G6$VX|8(J}^N2o8`ZV^_XgqB|qfafLocaV3 zoLmRoauVaylZ$|=lgTHOKK$2*Q6IF7-r3aCbXVYAswAF3Sm#)k3=ye|gVr4)UrbbQ z`C^NBKsk_niU-7Y@vwMOxA8Z{ql$kITptzt#D0{*r^ONYIHEy5jGE_bi?yZxK9ns+ z=Wv@Pd9-;LEg65>ES=D%_*|S7pJ;aR zw)k4SB~FQV#JgH2t-aP!e5j4W*vn3l)CslEg^|_(v|QuS9v0Fxw2QN79j(XMYBR=E zyXh!KQ?Fnw^{)6zoEGP_1o6Fg9XrH6m7^f`9k*Zv6wDj)NZtYCpROp|-T7F4B}P6) z828NNH)7m#3r0P6i7&MA;!7<~vxpD0K&`cA)7oegv@5i0wOp}H{Hn!^Z?rt^dTpE* zBaVxgw1rx#Hb#7;EfL4W{o*(Ax;P=;5GScQhWsJa7Ue0NBB(v}L~Tn#eal6=Hm(-uC79^w_WgO}5GUPebSI(>oP zKsCIY4)c}t9KW6p@fCEOuc6oYI(nVn@ly0PD=H@b^ayg7~KZD=virqz4|-Ng&&ZeBVzrcoxj{1fky6>ul*WF+82DF8VLwqG52q`5 zD_Y9?(K0@OuI9aI0nem`Jc|}_7tQB=XgME5EBFvv$%oP^jJ0pzgK0lsNKf*`^fbSQ z4)CS)EWeHp@@4c4zn0$Q8|V$bp5EejU?#dz6B^g7nkIf0zla~ikK!kBUdz`C#K&5g z)>sSHLbOI&3$3BnN^7Du)mm!3wQgDut*4f$Wodo1?plV{OH0xswYFNa)Vf4iC z$Vd<6dB_!=y$9{CD?cmV!{R*l{7La19v2-M9U1QtarUCUqG>bAa(SA#?D_dwHN2@S ztEPi+dAMuT9J?nt8icE$$fFILvxjqzU_6n5@v%%d^+$+>odUmuI9P&t8P|L}%s2dn|Ewx80+4C_tJ5T*Gob0nu5W!00UG0KDYKd#p;`(1g9H zCSYQgT{_C-hU?->(xBphA#74{W~tHxpJ01XY#%^wzCFd{EEIxjNM?&&i! z7jEHFFNP@bo`5({kSlf%aXp&@@fw{Kjp7oWRp8+hCwW*Q1n~sK#Cw9`>{8lLBuk@- zV1c}S^7AB1ezua<7PluTlw9ttm`JnWG>EHPkb?D4SS& zG>#iMDz`=}%Fb)=2`P@A6YpsfH*k3Fz>&ITcqHtbDEp>yHPqNOI=7~AW0!{&WO*9J z$|{GVl~ofajfOBhtU2;RbQp%kCu9)Rm9+vnjA$FiL`K7#mqvMz?$QftvUJTuO8P?n zzOb#ES(nMe8Z19XL&+`=_1eQ2Q?;;J9MuqakIMBlj?S{XJ)tOmA<-yuD2h#ClMfjl zYuS=fBWglfSy@sOO(6)}YMKVddRE4UN1>cIM`D}B#(P@C)iC*N3B}82tGF5=pRMC+ zH2DmVtFg#uo46XQe723N36Rf-xSBxuY!_D(B%iTyP>Y@s9&0{S9&JzXu&ZRXiTA|$ zIW{*PXXuXcevTbY$4cGN9!H+A*vlnYru7j$tumqh>5D}A?2s!8>66cBq)$HEBYpDO z0qK*^j!2(;c0&5(voq2spIwkX`HVsOnL+E z$xl6(<4KOQrzpu&5Skv2`_lFT%}~A4N_%SlFv-8{UeW0_$*h@7Ybx}C1k~#%AGM|+ zJ>HWRm(U_3-jn`UtSI4yVDE-3qUIg!3HH9SZGdX~uUOGHx-Z(IT=alwe$h3hGuEsr zG~6AHSaVMcuxV&lJ1DlAV9N3|aK#p{NQk!EGgctX9(CF533_-QD{6zmZTIBM#--2j z+`Ss+x#4@Yj+WMWS+dEsq4h@mkRUoI-(y8?*R8jxS}a!Yo-|i}QMAW`-W9E$<|+sW zou7w>;$lAq5DgtcbWTBfcr;?jK|1kJu^_y9B7q>XZMLEkBQq>0aOg@dk^~_Z$Zkst zAz&I!sxK}SmJF{hFyHl9IvTo&&VZVFnob@Y+7P=vC%UhUROVtYubWDYu4xaA%1y9m zpl6rTbKMewnpxqocEDSIIGKYOJrgf2dHK;sZlMc^_w@G0rnGNlSH2wST%2TY7WYB> zks!60<7wf_9Ttwx)t-@;P~%`tQExNrxQ+-PR>w7~j;q(Ne|Q)BaK(AL$NDpPJ$WO{ zj`Q@0U4h~!%h(Fk^vlVH3{CJjAfj6(Sr+4ty5_4*nd-srM_i5mJyvE9_d$JBJ&J6`=SBv9_!UgKfLvbjg)yN^BH)dSkD)hQ!GN z?HLR;4~^SHlmlWI2quZ)aeJ7u8397sjFdcm;WSF}NMf|)k;E9uBZ({G_M$CxfyxDi zP99WV++L>JjRmFKjgx##x?U;y6m^y4Q`C6Lr>F@sPB+-{Wt@^Ika0?4qKs1#g_5Tq zh$6`&iDJnkiAj=25|fo&*`THC6}b8DY+z7s^pT?bS0Oh%9LD^Du<3U z%nYnhZ=ODIn4y!IAS0tCNyp zDR_IE;a#WRRCvpDQnFvKlahToeD>DEyFn)u}>k4LFu=P3=dagtyf@ILYX9<@LGUB6-$HJ9K-y)ftQ;05O4Ce1Uc zmv&GG)Up8EFcpZjv^! z2XxEYZ}|bpx0QNmH&GAyyabzT9~J`)dppHqed_-Py(u2+A@Sb$#C0fBfsi!-y1I*E zuwK*iA~ZAK`yjtBhv5jLEk$EpEfni)p~kbRdcqECcj=d+_FLGc)`NO@>-g^iKarP) zhw>1Ga=Nx2WKeVV9o7>60$6kFcnMOe8P@*(TZH~yzv5*Ik>H(ChLVvNUi9&!dr)s} zx(?oh0)XD$r`C;nV_mG%KZ;ioelzM+FBT%t7g7))pS|b@)cf19TKp45(NEaX_@VYR zoBMq0aqO`#!q?Va>-{pnP^Ar-F-misLAgE(!$XQ$h5{ zb6V|p*h}xlM^hiHS@)68OHq4Vj5F*PQD^>tg`3dkNEq>HjFPds+zWZz3+s-Zv9g?5 z7q!25-?5(A;c~#5a&OeLj#$eKuNT-lP5!PSnwhfEDYE zzk=#}WP2*xOW795`r4Qx{x2Z#55c?R-v3C)zo?+@;+Wm>JFGbsW?CRtD`*!b=4ZAv* z0P)z_S?nhL6;4tF>SP^YcP#4v0%9vgNgyAxpyw_oe(=MKvZE*WbTp$a|RvqvTko_+p`y%9Zf7Oo3HVJjs5{fa?4-_cc zP#tL6xE+e0RP^{%f3KdN-e&0gTVk)o<{YxA4dEG%1 zWnf>rH%=AzM!OM)xMW=jW63Ck(=bNuhcUq->^dJsKAgwi?Rm5t=dpu*9&OEew6W)r z{_`l`=dsUwo|1s3Kr`S!;fn*m46h>~!)pb|FuM8C5p)iF#-q_r%tT!s1HRWWZ+;Up zzDbcl3%~_5lkfBu&SO1>GY{u+YU^`q%%8>k_ZX+Xhq3f3q^}I;AihEwjKsXjO0D?q zkheeTaX;ep4f;obRYImk*mZA=G%@(;hCS(Y?7E+)?h+W6W@D`CLOazR`{6D+2Du-H zzZbBF{WRvLZ%{NHhCEX+uA72Brwsev3vkY%8vW->=vyDe*@qbj8$cL@@QB43>i~Gl zaS`HaC+7@!1_I5|7Np=A%08$qM_(k@58CqvwY7MLpmP^@eBkJC5)L82W|NUV1KF->HgE>0>=4sm@2EJgknQw&Z$cVZ6Y@5|)GX}Sz{A7lr_TQmgccY^2w<}Z~1 zUD$?mSId9|z=8Lvz-s`$Ly%{=YUMl5FVK9x3^K85@6lxgLAyJ|{}L98{ZWge7_KGyc$Wl0T4pB!0trFUYTr02Ts!fHU~c z0ky)?3z!J30}cW|5m{q^@xV0z^kID(_!OT|SOK^N48iv(K!X?Y&B?RCXE=@-4fG{y z_AjF5=ZIP~1aJns)fK?iz}-ZxM**e48hq=5aKquh4QgteFNoSUBeLHHJPv$Fs8#^d z5}5~F2f#k^Yoe$~zzviDIFT21A8-_aTXZ8Jg{adcU zd+{j^k0;Ma+UzXG0XhN$fQ3Y3_Y;jnK3z4NXnYyb1n4>+ zy2ytv@&^MmfE$3F`0nRs;1S?mq9UZT2zn~I4S?Gu)Q-s;a4bKcXe!Fj)Jme#UceXt z;ZBE))8_yifdjy4eBuNhl_6is;HT_X0QxEWgQy(3El&roB&t9h708Q<#{ra`84TzE z^arK`kf{>su7plzh5=s_RYU)?P(Eh$1`2`eiRM7Qxw`<=>AA?id8i-rAm6-+z%pPv z@G{YS$S@yyw4fo73=AS#c!6k96p#bV1CZy7-XmHZ3S@oEJ20N;cF4INa&CbC4UYn!5^YQc#sUk0Ex;k*H=?^b0Jez-`kW;4PwiZUkzGwtPTzFYNAx-Mt8BYXpEewj!);$dm2G0LsU9DjlOXg|u)ldFiHc?$T1=zs-i3uNLG7L>W?(*V?|=TWC# zNCK_^t_Gm%7oh7GP*x5_1F$~?`42q<#35%0(M0Y`C~c@c0sup6hJ zL7xKOsl&imM5n_5r290|cN$@wM*2?wK=c{P(r3MaLICMIb0dKKK7;Vid`1LZX1~zzAR=vC!SX z>%h;%!oq>xz)aw70QL<7fF8gE;9B5*;2Gc)u|{xfgwbuIp~RZtORpvv0%8&H7Xg3m-XLbj_i6Scz&T=3lK`YG8u7K?3%m{dPOL){APs=L z9cL5kg!FaZ4!jI}PpnIGAOV1GVulfmoe0bWHeoW*4Y&$e0^A221^y%!-vxku{LR1% zz!$_4LIB8_fHWlB2w=lJ0cq$89Xp_7M-p%aa5VruJDvkRCzjZNn6rpj(mDV-Ogc#{ zxiPU+#E}Mh(uWZ1b_cQUNPG8t0L0h*Lt;G`&zYTng{dVMKzfiyli~*4Den@vel%sxUi1lv`Al&{aOZ^`O z5Jvy+i4B0x295-v&w)1qdjW(w5c(d}4sZdJi4FdM*bq!|hO{R()JAOBN5qB;pc60< zC?_^DnAj-DIjRo;J&alopzMr#9zb4>hWls-u`&6;Qs4pLIB=R+F7%UI1*`{Pm-`E` zyf^^7dA9=l0LU=5A&>!709%1~fIoVQ@F}tBRsi`meLS!N zfcaf69nNb(3|$Sox;@YjCu|;XX zIAV*Dh9y@6j{)x!yVe09tfj|@EraaKAp0`NzHAw=2|#&SzM0sHX~b6U0-&FjKM`Bi z8gK$*h~0RI*iD0gB49bOHA%n~0ODD5H}D+rGqIba0odORxo&<2I7MtNWM10?Kp9$l zJ+K3Kh1jh~$E_}49Iyzu7eG30{fgLaVF2P-hx&Q@+raO{)`NfjNMd)iC3fc!VjDr< zwT{@P3Ba|${lGH-;@kxOyTN}qo}2O9jCi)R0r~*B0Ls_BsGnPZAhr!*-Ty1G2N3S| z1;A~ z(+Efb@&JVILEErrHgG2Ze|y3E2*P@#5V#(Iejb5-9)pbg<^UUk1HftE4`Pqofoxz3 zu!`9JT4GN?&L<$}6Oi+XYl%JiD)1w*r_k;^)e|THt^*zfUIP9_?CEAeH{dE@32+~= zBgw>$ZzcBHYGQAr%)U37*as+|9~~z48S?%M=*FuR~J|!M7ns@^T@nG16O(xz*5O30%c(dn;x4^gEE#Rls{lvrf6K@N?c0t7L z8N?%RBOdh#@%GOW@3e(@mkQ!B9^!F>iO0W7yeq=#+60IOk^mPl5-0>_0@nh!0QVAi zz<=U9#FK2qlZO*e{hfF>M!Y-xWI*m-VZ?jGPoIa0XTjaIk$4W|@B1h5e)x`j;7a1d z;)sueY*%z7KJE|V6V?K+6USVK=N}?oa2@f9je!fqi|{NSKz!1Tz#GITwj3cS_1#AhMiIgNT;)eo=A4VBC(wq2E=~tf2}F;*YkRQGI7*@u zPB?WzSn>J5CnOS%ljw>s)Vuyj!qFEP2b2TX0=EM@fMo(`GQH<9Spi$wQZNc4cLJ>VxJ3b>y{PsG>r8xp-{ zk?7rnL?7_=d6Y!vK;R+Z0D!b*o(1p)epW*OI?7515N{UJ<8lB$lgLIqZYyw@L=MuM zgZOiPBGDJR>>B|fzJB4rVqhz91UN^cKf>&v4CDgyfz21;G>HL$KpZd(r~=jlPXZs4 z7^nfANeudu#Nbc>`WZY1m=zD#IG`Yt$fftlQ3ZxiUxD*$USPn3MXB&a|_vfth3NEMoA` zL3a9W$e?UHy)|smKs)UjF?6t#Q54quGw^Ns7<{8y zMpx5vx(zp9>?X{bl*|Fx1Bk@FKo9CiqbVO>!-qK(*1z-j{06^i^0#W$XvDTT6dI%hIf(GprschUp+mJ>5YgNyJr zXltC3OQuY$eNVy{?u&6d%^h?pEG9`TN)P@{6l8p^a@L0 z;Xh;+m6lAl@PEpjR9R4{{qawk5UoJ_=^r!83rn@{aCcIv_N6jUEAyl>-%;jk$~>;j zL&`j$%>BxIxV*BcOnc~`GAqier)%5(DRU-DthV_dGiN#ywL511Q)YF=Ozqa0|BzWF z^|tz-GUpXnmTSxZDHBZKb1nOGZz4OXsT z1}QT{nZe4$Y8dRXrUtWtGOfyNsZ6Z-!M+7dfzX9&H5qyxY1;-SS5#!fxR4_u$-#dF zZwg+4U!UL=4SoY21#ZP}OoLvwleTrXD%&L6kf1Yx-v{mryd!W`;3~^7?KkZMekWvratz*ex8Y!$nat;Q`LYuL@Wo#YmFE4z)YW4E*QYy-Q4 z-N`oM#*$6!ZnhcsmTci$_`Q59zmIR@_wxt%gM2&R!5`u~`7XYjdw31s!}s!s`6K*M z{utlKAIFU*PvHKKr}%OH5`US$!cXv5`D^@j{sw=Ozs29?@9=l|d;ER=0soMnOV|CWEp|HZ%OKk)PXNB$H4ng7Cn<-hUY`5&UWXdzmPR-!d-5@{paiU`q8*hQp> z!o4ExMF-q1(g}B_bP+Kk7B^nR9HD&N9`OmyW8dLiz&hL@1Q+v1rzwbzmJ?Czj5- zvF=#l%V0fOFWmLjhh?%X=3?2*&2m^@-1ya>4Zz(bgK$I15H?iY&nnmqR*Bocs#rCf z#b&cPY%ZI}u4ePu0w!;%S^`=Q-OnCi58{@v9qb{t zlkLKtFCJFI_OQL|VfF}nls%?Bu0540=j$6gLiyk6F^c1~B zZ_!6&iY(z0*}^SyL|@Sl_l*q@1H~XQSPT&*xOZ%tC>7I1nJCBYV>3jhm?^46wU{Ml zi#cMhm?y3l^Th(~1?_t;uwhKBU2HA3H=7ao5PVxT!(IS^q`2XQVrB zMi|R0aTCOixS`=`u~4j}*TovKmOc@8iaY7F*d*?z&%{UKBeXhZIl{$iXSGWL5fW3TRUt0#QSepQ?o$LqO_{qD=y@4AfrPS|Ux_wsiZ zF`YG2hk}YZK@6RM?Fm0yj=pa{>@W*~Nzenw{7RM!Qsp8H<)RuRd|57>s$2}D-&i2! zqth5nUOqs+bfdGfyr9WId10+l(~hyOs8e6Dp8QYI zjP*yI7{Vr^oUde8%W}jv$#TT*K{>jQZIO5BvF-JwmXqy&Y3C54u8)04HD*pK?d@PE z^|1wS*cUYHq|Lu=QPJQ23LONoHna|XV;XHo4_Hq7(T{DR_f&g(UbeRkWtH1md)eNy z6xrUg(df6HV&y2UAF-9_WBy=wqaR6O9`puNaO=s%rKKI@3;XxEgIfCna!1zMGL;MS zRW2-7we}uWYxk>K`--ZyAF5jWv8uJ7s1(a_1mk^>YNm96H`J*Jm`psRS`Ed4xubkq zP?sW5Vj5F0>OJS31y<>JL$m~(Tf|+cp%&O-)dgKO{~Lvp|};MCa|J}7H_k-4NpyRwK2HXDz2Mh4iRf$x&&5WPe6Bzr#GS89aO z+0b!I*m`>-RohS_WH?yegL#Ro?C}ta?89^oaI76QLG6E>?PpK0C)rc%Y4!{|fV#d& zEEY?|HR4*aR9q*PiCXAMpci-tS$r#2bc1kX*#*Sy4N2B_Stb~2tQ;liC1ePE#i_Dm z)DsQs@3__JewgJN>M8DfLY>v7z>k+>yW+rJ0XQB|99WwN2TBm`hMI0@ppBt{_OP!o z@~$l;lrc*k=#t4=E^oG#Ewe108h8hx#lY&O!INzI<>1xO4iavUdypM8IlTJS!;<3# zIX9E>^ns72s!hWIJJ9l0-Pwp_uC@RiIuG{9>c}E*-<5vR-XS-19;vs5I1N39590%P zHtsP?=T07no5bw6oMb5 zg)#18jDM>zCz^zL(-@4Bb66jYsgp75>Wp!=9dogkn4dMooGlRJaU8cm>>1EZ6!cbx zwnvt1lvw2Tt2n3nI=w+}(p&U4a$fdJr={E|_1#suN2x|>xQ(ylxAXOU1HXgc$v5&% zsK=_N36H1|d&FMcw)aTA?bkr9*gr&1!qMho zzM}5z<7fl1GlI4dZ3o)K7f`=nM(g-Io-d)Dd=Ag!XfctKxR35J@hqN?iWkKJaIX~e zU@jALU|uI?!(1w6!Ms*f!@NdR!CWG+*MVA433HK{0dt|KK)%fogJ6~j7i?CDOqe%_ z7BKG@&0#JVA!rk$cr^bL&qll@&H;0AJ(sa=I;qvHxzCujX=>o5}s%6@dC@e1Ekr@bBk?b!LPA)A~XE^T_#^%pv6r z^1oPXxM56xU(9STp4a{_s~+{wh_f!44a>Rk zf3reTcm6#0Kbmq0GTJvkY^KEov`n z2X?J?(krlg7r*D|eayO_SL64?xFz!xy~#eqtowVkJa&vBqqu{`qc7>kGBCF-V%dBW zpTwr~DZHGO@frLUHjCfI?_wKpPvkx94mrkWcc~fG4mG3NCCB(|w;V098rkEsJ#x&* z_TsM3h3rMht^V*;fK#XHn%Z%6b+TWTqqw7W)_;QNu>Z;-)(je=bu(5EsgO0p+;I)& z;T*d>NUkR03ks|!(idt)5$y?fnu_Hr5*_hhN1_+8lGK@w`BogUYZXJkc-I|q z=cihE#P={MbX=}J(o1MFU&b7@8@=LNf5P`PSb@S9N14>se-#RAq_}VT;#)B zT*stW{aYfMtgmI#>-Dc@(#`l9V>g?O9mFK8vnJy!8^5(p+-FdR_1NFB!fCWn_}ax> z>%yMi8*;r1xqdZG@vV8$TbHbQnQa#K3cGvPNU{HzL0_@8^n`D%6kp%0r!)1fmtNF{ z{hO7uOGlKx(KN;ohcR|J%3fs07`{NnNahuGg1yRKW3OZF|2bB{>8q>UCrm&j~FHW%zk0N zvftS67&HBe+hS``1R0jO1?IN$_S*oAr-HbRH^4o(AsAhSVNBBqcgZ%vSgRRt&Rd|@ zZiSIoIB&z-@(A7zsd??0!!}$n4l8@q}F$%nb z=i&zKvADZd-pV_kPvH5yfKTLwya;oRNtjDa!Q5ghpT_|<$qU%(ggMSL+|!mq)ae+j>qFXh+qW&C=+oZmpx@V_}$@>Q7OujV&V zDPMz|YH#Li<^8`{3Ahcd&}Q5x>&EW#1q>s~cnSesE}J?vjspat24`)u## zoB2KZnmWyttLj(*^jlZQZukKD)w{Zmdvw+MI!5Df<0e|HvSW7mD9x5D?Nsfz*8VhZ zeO2qMG(@hn;+|b|tra^J!)Um%;%fG8XfH?LK3lBJr>Db> zyPxA`*R$B|ABo+LQTR+lU$a%K__*WuTkMMbp|9oRhSwi(E3CPmkG6WDT+^q;{C8Ty z|M0H!(xS_+^x_=CSnp~tcGIt^qK)D%*%Q@Slir3AH)d+M z>3hfDo^KquboT=@f@AXbYRny8!F|=Qiq~*&^&8?%+`;{}yn|c3hkLp|5Fd(@SfBn_ zd?G%@YQkyp8Tv$dWA_*0OWd=44tI8cBfb^iiGPXjafk1Db&IdO&-Yi{gZ;bs12=tN zz_~oR#+(rr#6}$cK}Ce(YQ0bgVqsuhj+$pz%g1Z zZt#xR611+GLrc`0xG6YUOTkUuX<9nYqnyWG!rkS5p4I~^{9zb-MBrSAT(gM6h~qh& zN(sTtxiRjD$?}^W9MtAuMn6yfmmF;Y#yyL)#o7|>8tq!#TYa6jOuHU; zSKol!t5;q;>cg3q_pzgT5;N!3^Z{1(KEgM^A7i}s?!Vuo(C)?mgt<@KrrobSpgpK< z*LG+RX*;!D+HQ0IN#B=x3_DVfV_)hCbJym8+Rb?m`#3LPH|H>Ru8v}F=a_a}dr5m) zdqq2;y{f&Yy{^5X4H-RXkTr8+W$~=yfa;W?ZRXF%rkg2Kx3vVhF;$>n9m(`=cQC1sNf3ahJ% z12Wy}*}zp;Qdw9%eNt)h9Gk1CysDtEu(+&Bg`Aj^s6SoF*6hLp1cXOrd4Y0GbUTz> zkT=EZR>`!w6_YMqmXTVQA+^hp&Sj+5rKi^ENVd7_M4RZ&G7^~OO<-z(+enC8PlyqP z%i34P*r2a35xT@qr>(CUs@88}L1lw}b$Jrq&Sc(yfVIDwLr6)E^6hjO0=Sd_iEfvA zhek64`Wu4u*9EcmuPP}mDsCV%&XJkyNOB}L7*IDNM`Dsv0fJAn4pK_D4l)%5*DP%i zMAhXsVoG#nT8HSYL;P5iQ}l!wPzbi$~M%W zt<(>9T{fqYnNFvn^CWL}8HLZ~whWz8URkCKkZmZ&?G4S~$~H3H?Fbnory+*Qw={edc6bI`lzu>DI9- zSld{$4(XiToR-W49G|jfDtDb!nv$ff1+tm*(OIc}w8M{f`q9Z=8ihDp(qWlCfxT`B z*W{B;qMyBA9GU5U_DWJ!Gtop!`;bhpX8gF6i!D>B!_V3jP`0DW-e^m8TF(ke2dOqy zQlY-qRleFXRSrqgYUsphbETCfOPMMiHkVJEE>$e0Td=FJxTvJGv_QUu`8Ct>J=E7! zt8kRwR9ew!OBoixP^ zbJv$yS$>7U<(EM&ze36ub1)qb|gAgDnfm|jS8lpGy`S7qkQ`HJzk%( z|52>{rD^RyKt62!eI-Hfn7r)B6(wL;|4Y>kl_^bx^sl3`{$}O%1_C|n)wlmeDs!3j zMs{+F-RS6a+E?6ddWR>iElT7t*=!qKpR^70>;4qiKox}KLPw}<2Kj7UX_B_--J(vK zB}*^DNvfg*$}ZB+o1XK7RPQ0JErXRg#E(T!sosl9Yn$Ga`Z$tRF_*C*|Zhvvi1_C^OwcD*C zYE-AY_l5>xbxxz(H|^1aOWLM)|B?*z8wu!6rmBs^srao!Re+XZk|$`C>|G^g8LrF` z%BMbl(8-GmQ;MG+6a6%lVkR1c0F`LVNELuSy3k28tl*LUEwkUqL-Og;Ci-P+s-G6S znVOR$5y@{ECCxxNCQ;Go;}SEZM4xXtKJnTox>J=tETfgD(Y|7+4_v%_j>POFNr#QT zv=|~hRm4I@Us9AX#PJKEn;)&}fl6aywqN~mtB`D?FDhbgrSBj$3i1YmV&$it9KT%9 z3xy0EJbuN^t(4ZN&gjS+8WN%BsWD1Y_Qps_(m`spBq^IdVv?j~j54oK*7^ual3{+M zDES^@j-+%(GjWz&X<^Az)_JDx!~6zX%75O)ij_kz-IE!Xp4=S2f|=x3UUHPGEMt`? zeNd*8W?>BVjnSlw9$YsSL{Ogm|Hq~H>L=6?(s*s+FQ{SH$S15}BU^SQuo;LhbY16E zZyc&4a6*EWnWzP+*M63-o@` zR^Xdf7Zj`F(4f#)-)x0uM{F%p`KAx19mdQpM-MpBm1-?k>9Q94ab+3Fa~Wc~3~^jW z@?3iIoQ@P*u^EpZL6(uCEN_a^0*VdEi*?BjK3x!JN;m6d6?22hKItV3Mmb5g$!6%< z6gi)sQkMtgnG|b@nJ;K~)I0}WK)0Y0RR-`)nI4}@$%Da&K7VpLvUthVfD%Kr5?wTF ziRu7U^vSis|^Qo*r{>$&m@`@?N)-pf#WHl$kz#v5w8&hp(nwlS>B)P2R{t5L?f{mQfr-kSx zjU3803Y;-*bQ<~YbQ;-`YG+&V4HDLZtd)KVPthm0&O}416hq3yB?*%NQ}rV5Of(Xcnr*H2*PuSJb|xBCRbQ+?5z?pmiP>t3jCUhb+=fQoX_jiA zrrd@Y`l=PW5U=J8jk$9|sxQ@4BGT*ClwR^I)oOxWt;(Nuww~zOzC;Jj_BQL**{Vfs zFxTg(m++hv>s;kzyc#-9GV(B|n{}QF);7hLm60pVGvjaF58HCk3l2dUOoQlY+fR=(N_%psz+pjh{&x4x3LOjKr} z;wn6Vs+Q`6?*A*_UKkaeWz-<(KjL#7U3R<(Kg;GfK3tW`;t?iVi`7^|c`x zOQ^5IkgrB*Q8{cYz9_%4{4-lG5Jq33yc+$9Uobv3pkI;pmPyJ~6D-?gvrOCcE=RhB z`E@(qkYv{*=}=$yqk>Tj8iBGSQa=4UBd<@{At}}pX$GUBl@`yOsa|X)zVe`VSzb@F z+mdux$)y<}yE5q(QsS?~5VLdhh5^MZW!XwD(xJ<&JP1m$SWBiVUq;`j(|Ri;X`9{$ zO46b;%ElbMp|sH_-g=Ly-u-$-glkR`extLRcLA|X45-XX%XhvxvJ3h4%Qb?vN`IN9j&wvKxb>Zqr)|6bh?tZ zm6>(kQm!n@eOak@%04gpY&xv`(yT=1>{n;9&3uuaw%0#sv;KfK8$slqD%&CD{>4CP z23@+>H*(1@27O)AR(^4TP!&2z_4Zzmh{_BEeVD&EW|abuUsK>#5jCna3h;&oVRcSp zG+^4JyO6X^9~DS4%x{38JDI9B5~t#~ma8VrQXzSQs>~Vq4Eb(Rwb7;zD^wu*&_a@W z*-7!!W1^piQp`kSMyC>OnW+NM2OTvfW(XlgAy-|xv~l{baHX!bc_!t zma340)L2C_Syb5$l%p0Ek3MqodUqu1-gPA;nsOpor4UQC@>K0Bhx*XQ=U-pR39G)e z93ri%jD=KRQkD{Z>q2rMf!G5Dkgo{ zrjurA4E2rTe8F{7K?Kb;r@w}fatezXc@uv@4ZB7@VGSE&3ZCK%L{~sv=QOXgF$GWZ ze@DW)dEY~gagg*br{G3Y?R_=vPI^Ek-|M;5HMQgOvnNH z1A{C%6NXM0AqGvzv;g241iL}78z}(Gs0sZhxW%XmL&c;ClPti55@nVKAPlKOJk_!| zo@%i;06fYboW@giU2@RuNb06fACmMLydx>g6(GM-Pbi&a#jdw}RLz!efmKs5M+6Zt zsl2*UJxgXO_n9Sgr29o(#C66;r z-@wFE&9ktlrVHS}IRokLaOkr)hkgzL@4BFltdx+#ax}KnA!b!U50KMvaBjjU7dL9Gi#?& z$ddFE4_I7D3sNmiVfpllL8?`il=7S8Q1fZ-3k+sV806gVSFrPPd;Q3|nOY zA$pf;wDxN3gN#myyOXEC!NaSbLNMFj9Ht2#?O7vdY-$w74{cZHV+22O*p8aj~5r(w! zrp<4V;b+~{9B24hHqysKb!;w4+gv~A#&a)Cn?6R6Oh($EMx#pm`D~VF)&W0TNL3H( z-1=DY4TSvW3ja?Bw|c32&nQB__YCJM@rRqT5^=LK`zsSSo5H>i%xU;`S(-V@?2FhK zPATHXW_;UhgpU)WQHV)?tt)R-u!7UY@ogS%>z|^))EAO>`XpjiI62C2Dl!-+JNMw5 z!)^GkzTfSL)3;u_HE345xHcVTX>BiOMM;@j;V2_Zq6hZ}WH_#L zjByN0KA3z^Q3FgW+oXCaDjj@2JE!RyXHp$a%3crETG`1^e6CGRzEG12G^vYak$!!W z`efl=A6@@2sh_-*?gObC)Ac)Pr>HNzu3b+{s_RMM9g})ZQO99-$fORK)c$&?hoxOI zbkcQ~a(w{Q7L(d&x~@}pYfQcspq47vUR@VI2jDt%MT^FDg4pJ#SJ^o7BE~sQUQ!D87fJY5MSmvdy&HY*Kfaluv?NmECH{ zw_H)zK&tts-7G~_z;&vkio8_v%b>UDx9YQ3-7lnkO_=l+C0xFBN~G9_klq7yo@il%MN4lkbd4ee9(Y>I?Zj zuWS4pl8T2m^q-Q&C&3XfpOiFSml@&3ACwaK*};eI8V?@^^`w{bNf7_2H@tX{m(q0* zzdiY2{8lN0qBeOo6pv7J4aKjQRQy_StWtcET4qv<6*aFO*Qz>pWr}YK>?WGjl_oXj zB5Ih)H^8K_LG@C6>7bm7l6G;5>S(&!O{#T#)A&%l1;$H?d#SiTOzNjgse1XoGx@$W zsnaHPQc`j6_{ZiK$7^0bDNEdOuPkxL;|}RQbUW$8py0!x4tOa)srGxri+k8h`BE9T z%WD@0zmVzygs??wNKqS2YMn`~xrkZ;-lfV;QVUILj!9K2st-dOO12H#V9*TwKu5F$NljT|Kk)j9eaoaycq!cnbmoYCQQ9f$d9Q2i(~^qa2kbGa zha@H2&g3V(RO~jB+FTEHhqQ~m6AHH>vtUZm3*sbtLe`t9kv#TrjC$yp&JonD3=s z*W<|tW6qh>8I$_BE*0}$9lke|D{?tT=ET9Sb*UrLE=EGR#vrF+9+h^=UX^S`ZC9pr z-Kx8R+GN_TH|-RkvR|vrRbChM<_l$+dY9oX_Hx9`GpQ=&`u~`F6F9kw<9_`0yWgAp z-kq5}=Gd9NceS^Ul}0BzRzecukU+;ufDQ|c#cc=(Y-54}a~oky2yy&#Y{wRkuMlh# zd|*4oc5KHXL=bHAv-2m!r)+$H=KrmFGjDeGkdS}*<@3{MdTaVs_v@~%uCA`G?!FXH z_c62^&;@SXIgE!=c5dXjwJx**&|;1wXv~G2xPiK-H9UrfsMbz>0XaRM;<{H?-!bLs zGK#BD(b>&$9~pXZ=z~L#4BayXsI%ZgtuBUgEDEN%%pUasO%NjqMwmbBwVD#4UEq;Q^6iVE~x6{?k><2%*-I-adU4h=fK zI`nkMQ$!bro~Tl&1GzX9>i85v9UlkAhZ&Ec$6V-Ph8~#Z>0Nbkw{gzIYs^C5{Cc_rag`KX=r_l0KpBJ-v%|f?-SJi4Wbo8U#>#nq)J=``T{UM z$8iLG(uF?eLLXx2(K#o4!#?!Q2VVebh8UxPf+_+2pO;aGWL{6IHz8Z(Zn@Rj5{$;;YrPQ%dTV zrTF7&isDNy^t=mw&xO9}LSG}ONZ%)2=ras~CdH4q&<9=U5r!V5a9SLtU`{037jLJh zHK=$C;tq3)w^yGQuK;u@#}R}!L92`b+U-IYxDfG{^K|1Z&{~QcGLg3Sl-rW?TkNJl z?v-3>IS;sT-2@d2btS01x7Ec*>9H?7)`qjcyg(o4_oH7N5Tf`-mP&IjGNi#ZOhSJ=gI+gxZ1pbZ>H&}tWQ;+EAtt>HP) zB0L2R5%%NT=|Xvini1FF#)TR3*5T>y(^^`I;)+Mxe&2Sy?Wb-3!O#y~=$H$Ae-`N5 z6xa3*q^&*uvWxcx7y6tF)pGu%8}~66`Vc{!U#%>)5)*GN6-Nmx{#qAvphYo zE^ag9O(1TS3zb}G0YgI+PK)bxQ?$EK7Eqe;W`p8xEM+iLIlS{0AWLOkh|qg|2X+OI>ImL%Zwn zE^wco<3bxhLb=~?9CE2W&HcQJmwUy9Uams5vgBTL({@&$*2F@*NcJzNjv9zfh( z6i1rA^E7uGpm$OnLpShKyghe~3mtMHq(WMHdhsmKE{e--t9!b|#oORQt6iv;^D;MX z5kn~DloHh5JL2N?yHKYK)ym8~Gz2cpHPcgu8eE8ZgX0*=dF$|W!lThX$1Rin{m|3d z=bg;OX@Y^;V(mRe&yIJc16mkP~-d-P0Q0G>GUt zG)8F&%I@G?&I1kI_Q-DLIFw)t-YSZlmbS!k14FGt-9v?;B-XN8vkP2k$c1`mf!Zmq z?=GaMJl0ba(5yB)tcMdlV4I*g}pC)~_z&=vHApI++X z?Q@~snF})K;Mc|sL2F%Tg$sepDo<-r4R6eSI^aUxE>x&OWH~`Dt#xm!y(3x0NIW$Wv19Hrez^W@gw5QP}}xeLAGLNB|}iv+bk zhwpb>=vf!~stY~E&=YldpK_mm+=V{uLXQzNh@43;aUjyZD$uJ{sP$ojS|6z5wcdqa zw{aXnpff^(Zg8P%7&=skchG%$u?y{Tp=|^ekK+3gf@(7i*0UYGcmh&x6+O+PRU8ck zo-(cEErJktw2D>*zAb>CN0>eV-w?pZIDCOac#a@u8^UyXCp;+r0PhEZ^8$a2@Mn|{ zLgXX;jPe0Y`JB%DxnY&E@1>` z7ZOZm{xcbVH6p@gZlbpUzJNoN4KQw~1tyh0!g)scEfLQ7&*T*xPi1%+zDfdjC6IT> zljUX(;o$)o-X7AEGQ5E#__!ea9zXpad45RmFE2y*Bd*bpxJKWlvPqY4efKiXclqge zD^Kw*oHa@HZBUjVOmaz*T*q^rc&=ju*Rg@?xP|<2fKTnxplsss3<|kk4a&J3^Oqb_ zeH#><3y-Hn!v?Nz1HYw(b8DfN5+;>Rv@p&Hzqf@;ct4l(iBmBlAoWuWea!}|N zj89TqNcSmw5dM=&HzNFlAo|}YzeFWxPW#Ujk1$MiG`Wr@(=g3-OfwDBOv5zOEzPw~ zGsV(Ou{7?`01q>VB$#v3Ot&=GG0l0Vxu$8#8Mj*DT?h&OC6!j3tNZ}rCPDoFU;K7I zm#s`ZBYsA{R0vUW+yYAY8Jwz)kU2TSCCqRMaSIm56PISVY#AIj)Ya^Q95gx9%Uu9N?cV)%`( zE8teLfe$($1ho;OUI58u5tA7vk<;RMk<`=%`%GncoUbWiRshC^(u0iUu7PCm3iz{ zZpT+0`g6{&GXKBIb$pfRk5gyS-w_gzy-JjqUS;aN$~^We*Y{P*Um2u$gai+8X#7{FXm(f7iL3I=7(CPX(v_0?UCfupD@lWBlBXewGG)mIi+2C_i(Q zpKIY~&hazn_?dJ3%sGDM89%?v&oaTUkWBC^#3wfMm7isTpDE_&@;J9O{#q%a*1uNf zaR@J0=~eFUzb0Q-#KRL7A@#~%6F=iNM5=Ei*FCSS2An4xgv8r^$_*iMLx|kO*Kx8a z!6fngjOlkUxp#aWcl8Q!gyWBJyu%4=xwLCJpS4`0wVd;OuFDB!9a633{0F%tYw5-e z#Gr%-Nk3VO+c7AlvaRK}ujTwt$p1hw{Pwrw#8-h+XDoKF+?peAm+R;3H^DclDl z(CdIB{g!YLQor~u<3u?B2<431+(;USIG+&X{D7V!o}cm?6a21C%142@n#;4AO-8WTopw<~+ z8ZPFtUB;!ljNiV3-`>V`Z{`>ul^o8!lJ}hv*Bx01ElomaW>XPDo!VGt_&e_d9w43-Dx2B-(IJ+G9;wOY7y~dP$ zO`*~4HNruNzJrjc`WjR9HL45F3Pvj<=Ib1yeF0N>UQ?c;P=z-)V9Gf{r3L&9hpRXw zn!iTxmB(18jc^Hvm|_D=u>r~r90E+pGOCNkbhenz7E}09N#}UviKm2bF}}q$dQ^HC zF*}*6Oc}tG8`B5(0#JRQ<2pXab$pKN_#9K-8Mh{W<2S=lCs$EYZ?Fu%1hW(#3TC%7ah2va)2m~EU}miu@s=g`XWt(ADRugG#fS*Gxn z${@#(w6r+qEcfv&_wg)qa+Wzc%bXlzT4kA&vs}(B(>%-Xx>6?j5EOeTPk!&&{N7vn zUAJ;u-^g{mmDAqJscvP=cQIy~>-Fbcqd({P9>!nA@F3&7o6^c$JKT6h)O$BSy_#TY zH@E3-ZspzF%DcHuS8`kIrZNBrIUoctAtdVUrW~XT%WoiD$9Z1P)OZJ%^IY602Wck# zBf@v^yRK!N6!8qfL6XUwan3H2n`55!F$@#}PhZxg2#&nJ`o&8Mb z7}Gh%ImbBX7*j09`9FcO3T2pO1>dD5Qk*JG__%eHL&8+9B8Hh9gj$))^OwVI1C5~|qI>xj;#-lP-OWD+_PxQU&NiYkS4gPc1V5}chs(u z|4Uh;?34e18)z@ZoyM2prma?K6#IUjz!&#kskq%rrCZ%_6PEgL<%=5@Rot1V-i9xB z)Zi{XS;fs=aRV;foPQ#SRj61NPZKUr;gcP#0nU%?R-N8CO<2@prEL z^LSRxpUQKp{F^y{S*7w-zm!L{-1IjO-XIP&!Qs!#Yb6aju2*WR+~C$NcLORQqz~QZ z=0J6Kx;b%lvzrUO=t9rU0)5Agd)9@%T7jMtPgI~!iH}#H4~xet(8IV5`!3v+{Z8C# zbxkGikT~c<7rW3d7ux1RTU=;^3$3m|%W%UG*A4gS)JoM~iR%=#6nQ5OecQu2z30UD z7$)f-;6C{}%@fcYKv&`6Ie>>}4j!H%cvyq?@JztN8o!6Nc@L-k5vP5g({AC}g`=;B zdEVH-`K0)13&VU@yYMrtaeSWpKlOJiA&pgzB=WEf^{@o=kW9f-$SJ}1yu*%0vik(5 zI>I>|X1K)T&?b&q!Z8C3cQM?}vn+tfr<>!mfU%PsBn$l)3eKgQuf4tI0-X%64Q;eHM?96re5M>%|o z!?O_59>0rmr=x^DbB{?4yl1Wtu_kU5yi8ey{w{;=kOT5l;^Vln0-9C%r{&}LI-e&{ zI{r6%Z1rgc=eza4E3q$B{{Eu;)9Ul`w_WJv@^OO8;Pol7zbL<2{zc{Up|u`~Wr{&>sO^5X7L=U@3{rxxWG@WH-F{wJhC+|IPXz42)G zl$(wCej@oUzMH6e-{cX#Yw`!U`?z{H`eKYdv)_VVy_e=ny8j$4*MnQAz6P%RmVosJ zH%^hI=-+V1y`b?@(r~lXafE*mCm_#-jGej|J3VyQt-J{EVtFybmGVl2xXB6OCV3OW zv*dFTZk4wpygr&;{Oyk{ywcAjBP?2!9~|0Pl+{amj-gScLI!u>#41Ho&dD zTpAx~0Vv01xJlE%?ekY6B>Ee8AKi~FVFz*^G5~U@Ofydzx90p7m#e;k+h$e7?~oLP zkPU<($=Vf^#{8PT0k_^@Y%U)wzf}H7`G@$t0O%#)yy<`C@07n^ey)sOg&bZg(|GYm z|3eP1mR~{Nex>~L%HN*?I$lOyPW6vdeZL|re#7$N)$(sC<;>LOua=)Lf3f^kqE`8v zaE>8>s|8t+o*O$d#zmOOM)uzmWEalsD2*nW^-@tM!VKW?~MfjRI+xU=*CPG-1Tx(4T8+$6md^WHl!>%B|58?)Yfr3Ww< zraQtuit`@+8n=9Y9dqD+ke-EIv;yKwh4-Ol?Lm<9i(_>lNtmu5Vivy(;Z>+n3Uzur!kh3( zaotj=-5r46i@K#SqrV^FgZQLS%a3F1`Z_)e&+|3Z@4FcN{uv*GYiQsO*B78az9_u} zi``G~u~FNfBm5OC0yggbl%zCl0kAuWF)@Z)=@*Cv2set&h}j~xAUq$Q0%_d!y%XVH z+#{M6`^6;)-zwgU@Q^r!@Ezh-=%{}o{sOZB*a&dm!$-tlOD60CpFjxOApCpW8J)s? z(qBUO72JdFWgW@KI+BldBp>TYKGu;!tRsb3M+&iy6k;7Iz&cWhb)=9?I#P&rq!8;! zA=Z&XtRsb3M+)Ii%L7sbcS!!Z6lYDz&zh2-H6=f5N`BUq!mKHUSyKwLrW9sPDae{q zm^Gy^Yf53(l)|hjg;`Syv!)bgO)0FDFo%mO*DBXaG1iwttS^OdoA+%}1Qv_;NO5q< zeUeSL4??3MJ*tuJ0+gCqn`&fjD#6-RBWqKQthqF>=F)&!+fm%c_eu4W2uaHdvz8TB zzo>o@d?ur(wBi#)|A8ilU;PM|<0FITR^Y^zJ@}~TM;9U7i;s%_bO0gopU(WJGymz# ze>(G@&itpNcRc{!I)YD(`OjqjvzhE=`Lg;5r zm@AHpacIL!#1e!{aT~6NezyYQM$9@R=zo_JENU~9=liz}+ybJW+3ZIkfq|cTj381sw_{eJ8Ew{uhfors0x%}Rnt_sDPRg9l>LT)r9j(?Kbo`)N2h4g#?-o_9^j*t z4t^C=lTmzitAW3&v=g|hbY|+!XS;Q4DRJqgLb~+2OW*#s%NC6d4MZ$lU)*l$@vf1g zUKklxB10pCgClVqJvK5pkch_&UB~}eG$2P4iKw2_b6F!iIx;dk3aD7f74Xd(iFiB_ zPb84R@X+W8zN5uaq%-g!(FWWi(2B)?95?is5lzIA`5+>Ip&NfY7o^=cL)~0E_2zqtkcEG9>u`L$vXI3fS03R^u|Y!o!7GLgdETmlqqiMFuq|o zuVG$#apQ2tYVJwLvH|^!SVKcNsYfQ#=C;wkGeZaB$qkx;9;1628>4|vPo$yAqk#iF zc0?ZvrJ_D1ZkSqi26SPl0_%C)V6etzNm?N8y^v3b zCG&Av96fw=7`8SSXO)X{uXx)WIL|mZQc-0bCqIafP&L2D72I$wQO1;Sd53rjBMQG; z%Bc?v*bb4Vn!hrm3}2a%|DCX!&Y3?kBi1dP{A*=;pXfh%8mxFsPjkO`&neQZanhjt z_duf0PQx0`-E-o6!+kg7RA{J7qoGnq!%DtWXjsjECJnzfBY&ddocS{iLo?D44NsZ| zYf4obR_j4DoFh&7SM;7KeE6XFQ-_A~bUxhZ>sXJqocwx8*KvEVgt^0pYp=cb!D}D5|K6*vIPcsAWBF{RwWTR< zn~5$Jf>1XwTor~PJx4|Xy%~v^J$-4Lps^C8C&cARL@9>9g!oZ#L32~u;|)hVt(y8~ z1*LVGQdo$dT-Z)Wm7{Y=*9DNg+oM{fMfPbeiEwkw8?sI%K2KL7%Oc$xG!s5?-&{f$ z&B}Tj@%#B$>AX&Qzw~z{&y|~G)4EsK8fj2I(x9LvnYN`Jk}%gYb!)%ZBiqCjk}dX2 zrrEY$g+$6r8=yfYfZxIRre+^LWr9+dWLlbKYKM^qudr{JElDMNXi}-`ufP8N*B^QC zfordR+hseppL_P18~S@Qp}vUEOm^i@XXHI8pN)cPE2BFxv7V!`Jy9FurTF0J2vjZ% z?0PJGDyDnsv_|E*nGGX)szX?MOJi?qENEqP`nd2KN`(dCtSDfE5TC8-9zCM3gQKfalR6j4G=A`gMuM&RG1NXi29cs|8PeA-e zA$}b+c$dtLMpAkPT4+XY$ts#YCAaBlPDa|?7+dkrslcFZVZ!1ux5nafG#v7IRgXXF zIbi4-rk&CxP0VRh77%`aa92bGgZUtJW2)5X>`8eN=cE@%kI7taMslj`xD<+dJfTCC zT()rmd|rj$|7J32L?+8&b5m9Q(5dqxQ-Rn$M|p^kWcID9qod)9JJ_Qy^m9+_2(0Ei-Cy$il(T zeEP}1{qzf;Irgc)dF+u7y#LNyZaRG9wU@u`vbP-AxATJYx16h8m{Tvduj;TIl@-#lK%7%(bc~DcEI(=ry&~&BW^81y5 z9`Jf%K0^^vPkX}G-jnXg<->*t4J3qD3n;vSJgKj2XI6&4?8*#yeYWf7-D9 zGUcmV^E!K$8Xj50h^eNp%*R)zt%zTdeMz&cWp6Tc2e=V77ggxGqLM{GYj}&S>8cqI zX{I6Dsu$7GZ~7Ze)wkMD#uxCfq6r128YQCo1D=S{i_YSMIl|QZ_+>PEeTz0{BH4iD z)Aokb4O+_E)Y#AvfZYwQs2Vsdm9yg+UyyRaKf@R9$}O}Kl(!-pqG3f3cywryrVtkr z0{-~|TY@kX07cQg4RK#%sB3A}lrYd^By2fuCUr#&!9Jzhx|Z>0(#@;mF)h_;q%!e# z|3wj9!E;DhmYzI`!y+?HT;*vKVJNA03G2JTMx;XeeL^WXloc6Y0n&$14hwWBya(!4j1^byn23Qe$I<0#4*! zKelf1cww|K+S84SWaCi_eJEZS9wmDq&AUiBWu*g_D$+NMIL*uSoMD7ngDvD>9z+by zpu&ue-+ByoM;H>7!CVtaO%7J7hqS$y@1)vF?<)wx4< zK-HBKA6hbeOMe9HqlHT&em%Lc*Q=2WXIuF=+#R2i2BnME9VJN&j{}&qgnAf077C2I zm8Qw9hu4C(TSxo!XrN@<6f{{?;FIVyVLjf~k{|MRP#VY=a$N<(Oo4thXN7=?Cx}|y z;mPny{h9~``9qS41W>cgN?h*ct5>f)IRA`uBdX!)joN<0uwsc|aa1TrLFI!RwnsIL= zpA9A#gmS3Z;_@5nT_|)GD|*nprGJ%|vc;L>;VGJht&95KJ*v&Bx@*nE95#;%myos> zKIB+xm>-88yK*_!tTq@JI3#5P4K8TiNMH$&x(tSKH4hhPY3(ZXkY1_tKq%2@!h$g{ z%(NITX0fVMEPyu?gS7ZCCuJbtd5wXHV}R=n=r%>DH94ZwUZzt4G8Dqn_7yPjPN&#! z*Y;bM(mk?l307TpS&#-sM<6PyTAb=V!MgXT%{c}wQK=PV$jP@N;>p+sCGm+XojQ| z>bW8o$12<TPd(x1o+9MPNX6sois6Jm8E%ys64!fRgyGl|cu(L}Ks!WkI)+!z@L zLz@eOlGi`PESK6gm1Jn1)7qECOOsFkE^mlhcVzQEljaLP)vpGenNV|L*rWw! zGZGrEOoM#T1U1E@(llrpPlGTEx+))A+3CgX!cUW+i@gU67%FW~(u@TEG+MBFJBOOH z=_Oly7Sv5u5#FE`Pe!7lfXed~tW^5KzV^n2F-*l!0>hr%7PD^v=4;iJ> z5?+0p_rcxiq-l5wuRhKF;>&ZU=_Xk?r7a#5PdhZ6vV`Zf1ufwrU)1q-@wqv0&T?_? zfXfywpVhZ1Xa>3K)Jai4A;B5mrO!$?E$A{!S}G?k^EqVz9p=EHWj+VzhAmH)sw=GjK3}sSBHznmMC;|a_7nA`^ zI0SasRY#8n@MJd>3p16OSzrs+G%^E?K;AO|d%!)h_Rh6waiJ)_G|Zn!2`3;|G+!|GBYC zd<_GE?df)wc~y5+*_XMEMjB{#|LtShEi~X@xJvP=?$pI&e~`4)|JK3H6<{S-s6gP> z3myoS#pr6!W9GA2I$H896}GX~BV+3cY-iM;TFH3;+Mi_D`*k*E@2r@_y`s8a+ylI> z>3GUco+deICTY%?TVG95YU9bD*g8j|3Ldnbw8KY>7cHDWHaf4rucx~cx<)$LnDxOu zVFa3sQ78-z!@`RhKh&Kf8_S^XK-(GRnLQLAo)uNBNg>uly}(jkKsVzXhpA$SqQyz$^-R$cG^@D@IHRP<2wnM6`z{qDZiMS*f?X z*jCWVcVnsnjMP0gc*71xrm!68bH!d6))L1S2D)J;#Z&kZ7|dXhrw{qJ3IB~3@49AW z$Ih5)DsUpu5;=d|AJKhSMv>t)CVNAk=B$=#X%8CF22TV&1Gd)IJ~|c&p$i#j?i=(k zc;wbc{%T}LryVyT-!KGtk=*uau&Ve$4Bz&_zWMzFu_iKcdyUp02!a(6^v;lNTz@wm z6u~rM=dKkz(%&oowVsh(9MZZRoO{H-of7BnS#i3V{+tiC96kbPZqf#vGLRv@~kE?-(2UpT+NC!3B& z$i6Ji=Ak+~S{NCJq@>7Os6x-_@P0jnrsdO#+TgYl{I(TNISMkFcR;#+GMm=~BmLvR1@0vXeX|f@j zM+;Z2vd~fASVun0@Ew-_5>0gwXFlB|{@}Dl;(*ZL$|z}9iGWmSKst3|yD-*bc1yZJ z0TQGvIxlgydKL`4I{VSuVQYh z?ey6?Z0&{hkSk=BLqUmWx~k}s$J4Ri%j(xjl2F~;Bv9LshD7tp-a_>qt-hr$2_#Xi zSbnr=?N_akM32*Y;~)Jp)>2Bz8?V0NvV(8gvuo#$3$~qo)<8a-XkWOm2`0prE(x4W zHa9T*RCn!Db%vqQnu%{9F^IV~&9bL-4r4G=?GcVYxG`v;mq7FySh}fp9CVh)uq+cO zDz4Y|T%ASaeehBtA7F2*sOvaNvsk87`U`x(AxMWW#bF*-KHh|(quQkmd6i+xeWsAF zI=|+!ee#|()+Vs%3DK;}-F>xA)v)v$>PhebN5_o)`DiF0#IV!NPP|)&uw+5V)6lif z^ixiqy2863DRtR;J2fJgw0VD5O(!Gva6e=x9!@TLk zJZHlIqz)~5uFR|FR8!I2^xSh1dg{3fLCO{zUTae@% zW<}dtiuYq`xMWe^S^b+)mY!^5G1O>dsf$K>(tAdT`>6WP>ek3`1n~u|ZbRF_m~JRK zOr*hF>zg2$So)R>G#Se?7*?C+<=Y42v?IXp(~};L76Jze@%a-Un47A5E^j|4(%{qJ zG9J<6*5rX=*P@h&Hs>cBePo>R#7=zE2pO#>o<0@*%jNR#!4KbHQvkFaGJjwf&9o_e z`5%Gv8Y>76&b`<@Gacs{;QWqx(!se0d%LFN`~z^_n1XZnEI8L<(K#@sJP%^5;CyPP ziSkpx(G)UGIPbb0cGhV)QW5X^Gldii2j>o)L04BE@SdlvoP z>+->I7vCyxmaYcj$FLk^4Kz1|ATR_bMKn|ft7MgSLvX=?I#u%VI*4>JJrNtWes*N2 zDVbNGhVvp=&4qeoiE>g=MV*&s$9vuBsHbCg*;R2*o}4<1^d#hyN;Ais7*zTjP~Z)P zCWa0r?-!xz6p%Eq@TXYpUF~q2orWAEktaji;fEvZSdS$!hYdm%F$eo=Rm#yiKFhew zG#NJ&$63R#3byJR{%HudyH72%j5jZs9Kj>gv1CjosaO#_IcWDs96==C3aSOGwnSRX zaqYyQo}6VtvZFEpHqW5&c=>gCx%`B5rF7@Iqi_cM>?)51`7b6?4x|d2BaoL^h_rs0 z{k1SuU}PjkZvYP(9XBpgopbBa01yNQT!e}`c(SGTOxo={BRqXq1%oCB;NL5yE6zQ8 zAyyLR^*1Ks5fkD-#Z-_#MOKJt6wSfM1haxH`Jogs;E->ZI^cSCj5ogH(f&~8!qu|Ui5mJ245RYQA*PHi;b9sy|3g$BH4N2^0!&nIZr(JE} zH%tjMTZ>>vS3t)^2t!g(Yw(uB=Ay=6V4-Szl!%T!e*Hds(n_|CXzl4nd!S_4-BBfU zlWN-fqIrQ}S4Xq2w6YCq1zfhUsH=F5Mm=ng{vwoGQ?Sfz^FqreMHO48nmew9%WNha z(i=Q0qn>4r;lNTO06~Dw6`DNHV_oHIDvlZb*+zTOI^7y>P%%e_pc*fCbHiqNqE1uD z?I1KQ@VzE`vFmYAdXHl(^@P!#IZUPcFzfz3TC85n+Fg(DE0MrWm@tH-E8QJ4-ZGkfI_W^c7zKZDG}6& zWV35g5D%4#A}eb}#tKzaeOiN&E~Xj+UfPz1f(!Y*S7T!unhBmj!>gKFZ$96QZV+b{ zF1#*8JN8V=2v{SVJKmQsToO&^z>0>f#w|>@6!^5Ez@U!u6bqc)Vw>Y?6Mu@7T@pvI7?R;=b4Y(fMbg1vYdvQ0r^*A)1cokj zLmXzKfOG?NLL3ZJmkX(n)z?lh1g1NsbRQJOzTJI0wr|_GVSM4}h^sF8PG4PAPn$dB z51d*Mzwu^S=rkm@c=OzbK02TJA`ACDjxZNiy?_QzwZCSu6Pz^9_lSn_CnXC4|8wO} zR`$#-L0_jn%{Xi>A~zZ4=1N~*EPdSV?OI)L*QWLMw4|BX*Q)9Jr*wOs4b-}QtBd3G zZnyutc%>XzN0Wqhcp54Rkt!D0Br!B3Nw~jde8E^vAXtBtK#&~Okj9BO+pxmw>}Z+j zYdQ@XAr^EL+tXVc$k}H}c~X8%ez{6^IU{>P4^jRZnzaGVF(G};A$qtOqsd^KpS*bB zB7=bxl9nRn`pAmF&C)~+W9(t<7l*sg4J7Q*XJN(I&8`Kc%sBG50BwinYlJBSvnq+F zW0$ad9Yv6p!>~FbXY^>!*}2tf_&!t8>3qnv^thndzp!@l%18Qv%-yt-m*emQtH8L~;7lM`^AIRAoA z_YQ@E*yYtVU9S5*0!tg7L0j>fZHHzP@wC_=$?t}3`wD6uQl$g?H>_RUm)9{|O$3ER zhBmS+xzW(ME74>za-*x*wU`Pb8_XzUKlPxF^|VvGvXhANCGukaEkxZD%6dBfY^Wq# zY4p58y8O^(J>9Xe23=_YE?#I5Qin!i-Cc+Nz!p6_)Ex|u29m1cm5pXg@68K4_@YawJEpm#ie3%+#)Y!&_Q{4f($L$(y&Wjun^tywS$gKlj}d zPYzCMwEAJ%3oj1G4&|)A{A$}1ibgYATk>zqj7JsE8L9ADE0t(pW2Ae4dG5I=V2ZX8>c=b)wozwo*S`z1#3D-GMc{ARhz*Eq&Odx_U*lBV$IOJ z-kx|Q6ePtNUdOzM0(KzvxXKO81r9G1i{!6bERxS^B0d1!ij*y!5&@jpP=eS3?OfOT zMefsZ*0nmL1sQIC23HmL6(AMYcv_e|Cg;X-32DE?`g{F)O;DZ@N zM6sHne4C1GbVcG@qm50}wy=%aRy@{_4i9=gekGi22o1fb`HT<6&Mc~XL&%Zlf&`|9E}a@um?L9V2vR;U|H&Jzt;!f*(x(pc}|Jya1ilb5xJs2 zA=fHrlJE4ioNL@j=n7mMtiu(~^S~HMQ{|}zsqyEqWZH&p8gSgEcVH~4@v`$Chd+^A zr+Pq-?xBg__-yI)$qEKJ*mta-J3UAS25-CM5=pw`{g*s+*PXY&=jOxLUUT(T(-}VS zKg#g=)3b8^U+N$7^QYEr|L^u8?Q~2Sj(lY;_h3cK{rL-(V z!31Qhe*`C1(W0o6mTZ_#+BnuB7lMPQFfSrerA|6>yo2`#lN`@YN8^=J2bUcX2(^@{Vo?+xLTlS! z&6g4w8^HE7sXi>-xc9=zUD(;SyuYinJ(jSc6RT_w!6;95i+FFhF*3@=7o;a}@8M*PmzzYR#EcTG28soh^2EReY1G=F0B?4+~@}Ih}z4 zI;Z#ZFa0IA`)A%dMuvom6ayL$|Ln*nVVN9@ zS*FL=;DaSg;KYRxlvetO#+H*-0Mv-Z)!CE)W9{G+CBS1s3)qe^W4an3K6SH!PjF!JM2z;#uln7hS~)$? z0d`M93%LkJ9LIr1-hc^L02+ND8EA|}kdLp8TxV!c5iOdr?H;>V(ANu&r_A7=?pU*b z=)w!r{THr@BpYLmjlop>7q`9Z(bDA~*t7Akt~jx%vwhLZ_KqRcj7!I&_o|BMy^U)y zbqUnLA#Y*_=U(yIIdI6Y#lg8p{Ou`m?w%8eyor$ytl5kMqsDu25d9nn>7Wif1YNyU zpN0;?*@8Uk4|a0uLf*vn`QIt7KS};*LG~uDPxC%;)ydPaH*tNM`^7(?-X=OLh*`V=_U@Qa`JmzopLahLzlmC)7*h0 zA`e&6$kPsDl6fnL!gT))I6H!aFuSA!jwK`OGA^bm#M``mm2DG~w4b$|){PvU~qD? zc5uKT^*ESXfY9;)PQcE=h59R>21PK5bPg>jVysso>m_-Tv;rOrsvynkc%hV}#JZy$ z7(v>q=*lEJF=9}VCqaD7AnTFI+?#WdF)h^;>~fkNwbWXNg={43i@M0g)}VX9wvf-~ z`|`bo;Y?c*mY+17w6K-}Q$TgYFIH(;FeS)J&x^4m33-Zik_YmhVuRP)L-OgpB&x={ z5~GoDz_g?0iHf{Z=6lcT@rRW`mRKyj5^dQo*lxrde_d@LM}C2v)Mws(68W`*NzOP> z3t29>X{kw_v~x5m(o&N;I5V2m&4)$-2M2w;zS%1{Vv3x-3$Agq_ib7gcG%~L_>0-{ zfvlrdVFw3&x*msF>}(!!iZGa7@R_^Z*L!LAL#BYVnIIHg)RQhLhy7qX;M6DV-rpSbns||5={+!VpYwR zS$MBG)9IicXD?ZRu_^@~XiLI();D$8SlH1Y-{5r9wI8_3C%!@>7;yp&mObTvl^Y?6 zy08+yOuD-iNrhxpDvgizVfvr9U{#`R_O#B@2q_~?LZK)748)NM2dM zIbXSD1{!)6A(c|jbEJh?RfBTw<_7|8Ek)gX>p-6F5m0LT7!J*}vL2kw*pvvM z6P-I6)I1*ShQA_lvn{6!9m5UUqlIZHPRJW@IE&p=7MuOH?GMXUv@k(QjrR&|uMNcnyLwf$YHOHD@`9 zz{{}ssAP(NN*w zH0re9X=h0G`v0b~kzD$3EL&;Sob?3DfM3GFi*Q=YDJU2qZNT|gYQOnrNxJ!tn{U7M z7IfFcR~)=}=hk!2*|K@#ie*a|%)=oFnM`K55Q7`*loKzo-Mq5l6OypH-;;C+wkzi_ z%gh3%4WC$vz%oBC`(rbwv)ePuW@g&&Nr*^;^L1#`1n_`Ux8V~C3B)esD72KRYT{>k zhE&>~f?JE=xJJDIu_j$8B6mz80#8$$o4R2FXp#Syu_AcpNoM;#exBWHg zeN|-Vu0*4lEI{bb}}SV1d9c7eKmC090ph0s3;tUJz7iJ zT$Ug1UwQt5i6$JWl0XGKILE}_oE4$cK>xZfR0*g4^riYlC>#%Ox$1jY=Z(0EV;B^5 z-@X+aThK}uWN!A@IAIv84%c5kt~A~`JfgV%3h`wd5eijkWdtGLQmBuPlB<9mKNZfFSPyj zNor`lK!YbO5g9HMz?J91g@TXM%Fz(8|4DGQ(D%-oCwgEhF^KJqgDVDCjAIKDD%Z0z z+t_DAK?AW#1?OWgM$j|JZH7+iMtjgNZX@)u98U5^$D?ip+aa}3j!uv!q}Um>His=} z!ECc%F+v`+N}{clYMNMZ{>tX%i$MjWH`%IxY+e6AsSRxd((Ml`Kj1SJC7n#|c~{$8&wj_1;{4Ssci#KaWf#4twBmzHR{OAeL;W_W z$LEg>?Fo1_*@uH$vfT&zuYG*UJ0{=%epGwB{B!tXd=-`6AU#r|<6ETl6Dt*68|qEN z)=3&HabptmF=w34f&H)pa1!gL7{NPPg{5VuW~WONm+~U=bgU9+M16i50!=zQp%n8@ zEpS!i__!pEZy4XOVj0Q=-@8H%=Q0MX=RP?qt<&p4SzbjX=}o7?Q{T_#a6AUcUSQ)h z6C9!%+!iL5Bw0Y-T3|*avEG6R!0vc>6j||=9hbeWFPdDn-si{p<8L#uMC^;s8^jqI zD%`Zy;Nni}K5rW1GdXy}Ru;6qi3R)Cw+9-pxOTDW5Bh~{UVg!v6d!fcPOX_g*d^g$=c3+q`-?lT z%VOa~OBjlQSysSkpU9>2rD5$YXWeyU?5)uB6g%9g2GoU3?JGBU%|!R={zbb+)*+E% z$wtn^kwZQ$H_+JK)gPC8Z{D_R7wFG*WEwtNnU1`VY3S}hcX6nV9GrW^SL<<@R=aS$ z=08dY#g@t;RYeG) zX(+$gBt~YL{Cen+R=Y)dJe@ANWO@cPP9r_0=rZ}-yoqdR=TvFdY-Ai-^=9*d2j8@+ za7kul0e>W%aJs)%vr2t<*a0IQl-{yua^r?|YsMG$b|;|edB`pRMPRPuu84)eSuVeU z;aDT6XSgcAx$IWqH;5NvO2|&qAF$+P&35XQV%)P{#%3V18KZ?)i!2-1v9#MxbuH+b z*k8Qm3Y04+AcrC%FY(CC$JtXZZc`w|tdDTE6V?h2_hK&Y* z>LmCQ%t}yYXW4@q&U&%_gXz;U*!#7O#HU+#**>qR4 z<}GBB!RW9z(-vw^#!`(PD+V{aTcMGq?ycWS-EIXViJ?f?Z}#=KrsKs9Gt}s5PuZbJ zq9cFtTJ+Ie`6cm7G~qDrs=2fjz)o^H1RVye%6X8iOM>dECaHVTIC9mlOK0K1{zO8Y znyrEX4G58%a*>OQ%^jua$cQA3tQuLlWD#C8)YUOku|%P53b4&4$U~l5%F)rOSE2!& z#&m{o>S9heTP$PDW=uzO{L;`+V^aQn``RI>)1go(*|=bSHX9BmJf6f`m$siBPZrdK z2~la-p+Gu)#-bvc2)F7kKXZ*`g<6WOiNwUl&n0EGBi+&+jz(iP&L|y71;SP=)f8_S z)d$X)-__7E)Hc%DhC=R+v}C(Fn`IpuS{&Ll*1&MXBm5`lOP!@6{E|@d2?aJiM=j5> zM--oX28@yR&_ip;S~&ogBh{nmoVg121Wfj6(p_la8yz7=gK~^}RY*z3!ZzzMx$n|0 zaH;$cO}9VLF#OnHSF)2@H4H#syc3%}L4U|s{xho+e$ zm?U6noh|A9)ZWmFRqyQY&@6RIHO>=?<7nuaSS3qVgp!aGIoTxKD0m$qimVE56k*kV z0Rd9k$*2W0I4~2YMnc|ef-=@5ym&0jo#{E5=dlQ5$e4;?Q#Wvpxp3*Nr_8eSrgEc! z1M51{dD403Zdjg8Y>J(6ZnoXaJ6vnj$60CQ&tExY&Zsp7$&JxbJ{bTqgqV_j)COr; zn~&0+rCG(VDy?)2rqP~&F%ax_+RF>I#j+Y2TTOS%>U#K+&DPNJ7u*)K;hHA*;`}*z zy~ z34`hl^SUs-T?3D-^D5ejI+0@Mvzd>u4V)i=2PkO=ZcxREHYSu6Fd!~%+fSlH<+B*T z2gDOq<)qZ_;$mGw$W$);IZ2YOI1xZXF)zeMWt?}pczn@d2c355In`;Gr`ZW{Ff5&n zkDz=z^BH4Li$TQm$7uAh{xrxNK2*VQlXR^Z-`(b zO>&LxsI+B3pskZGuJ0M4r>|&xpP|yId;V`=Yy(@7HIfL0wLf z<|{MO+$jc5k%k-sQ2r@pdq5nVGtC&BDu^4MG<4k9gUr27+t8w^Lkqljj<%siQwQgL zqPrf);dXgkS&iN5XG_DS0c`h`Gw_Ung$D|rvkH!(la?jOi2wsU&W+f7=Gv8m^E%sm z-~iL$t~=wTX|f~yv0Y)IjDerj0Bru#hUIZuoVH_Ru6a}a!U!6%l)HL8Us=iP)~c`@ z<7Ja$xJq;d-vYqV|@Jix&+K7Q4yVQ4yF1pQ_A;YEt=X zJD)LOfmU1-mZvRA#gZtDA^Meg}7W$zO? zhq6;z2rUgUSaNY@v^3P!I8=g|{0xkN`BJ8lh&=&CmDc*mu*8Su;u#jN2a-hV5uRPZ z|I}F(fMQ0|Ir>kNfBY{NFc#6F57d3J=cGE@C>nb1%a-C@WcFobj~=uJ#=~9}N9Snq zxX&^~NNtv7e?-~Y04G7sueHU3k&vwDdT{wFzX-(!e$eudx0^B!Zj$9d*tc_D>%lz> z+Xww;gx{J<;*5C#S9*_cN&NHcN;gbuHd#EWcCb1hmcM}O$>85fGcfO^3v%$55EJWZ z%TLLRKf;OP-QYtI{P87xB5xwpi`Sik?DXE7m zkE=P7zDzUlYox0$+B1RcBKvw9aL*y_;-JZ!^B;d58$TxF4xO3Q0P!D`#smk(eo&e> z`cQP`Gl&N`jf9EM^vATvVB<=~+DGpwqCp4)4|31pQYTvts#b$+7Ia&U#9`@b3DLzx zs+@0#1VgHgGc(k*sToOJ5&;I$<#w|r4DVm~>uQ=WAgj?}6#K7a3qSn^ZfEfOwWwkf z6De3IH#0^KQGR#>d6Ne2m&B1V=DgriJASqqxiiw{KVuW_u|UQ+q09V}MGK4FzI145 zGO#7#i7!)a#f!MU^I6Y0K-IrH~&LH-vQVQ%>JYK)U)(xElHhid-5Y7b< zEqIFa=$)q+Kwvx!ot;h~GG}8F!XuNu@8MIU4OXmZ|1Zy#KRTrkfr3qqH%>Kl) zx~_V(c%x~L1~5sr{DDTVzt6Nvdt1G23BT9Sn)-Z;n=Hd`MdPN=@_X`; za4s0YVgBl9U!#R3-f%b+Qnh5TrO}HMbq%Ev#=*{1q|>X0aR`hZ#}RRn@b*UA8;a%p z;SJG9L4~nN*P^Pu2D{P53ZanS_S^H$Zrs%!#ARKeFOK~U#KQAiTNk9_RzTmjKI@G% zX{Of`$VK}Lp<7yQLksHdX4sy{H?NApB!ULbmfsLB%YP&7lIA>#$w`vO5z zH$Ap(VosuK0h|)q9gLCFRf7>840}8Cii%5RJSjcfhBa?ZX??HjJGS?0#o|Zr?dR z@34u}-05IsrYd*aZ&$jlb7!mDm0TR^whqqS;?Wsh+sTKzt%GxW_0Z!f-8NhPJ-1*L z=V9^h(!{w@{sqJ6z{o(SRjr+mt2UH8;6&Fd$X!O>P|HmE50%;#!=NJZ`zx z1>D=Y8)gz5^}(lrkR_|R9>XwTXa?FYGEX^JWM(>9KBvlp#>#{$Z9VVIGv<$ubmz0J z%}puk0`+`av(&I_fh>^s9Ecc9U1pG=k`NVHr5&$0MLeFH;gf;?E^OcI4D(2-H- zM7+>RvG6e=)zN@`J15=}Y5H~C26y^>!PFkFcdg}xSkRT|fv}zNtJdO9+zp2=6;uQ5 z{fPsM7oOucu)Ea0EV+7MXWG}&F+Y?`Pb~Jr5kj@2@r)l9Dqlz`Hbu>-Kb(J8EI#QA z#=D9naL@^`SS5SXwuY{Wf7k#aM4SJy{Kd;|#%@a(^JQ;PS%XeQQy6d}w>s3~azX>X$m> z7mh(e`2@6gP1;|PbTDy}i$o&~R@fFS9U>IR6Qznk0~=NWFzh+W*^{LzC%2YD8_zsz z)0vlS#BGS(*<2T0c7dbEc*LR*iN_-JMcdi9TY#Heac#Q==J&^sZrW1Sx%b_7?>Xn5{cO4V4+m@-RZh$z$Oq{& zaAj+<*P^--@u!f%)$C_^%Sc8;+ z1}lt!Axn*bc_(|K1q@k600Zj-hk-KrG&>H;U%yXw09Z7m81wQ1@w@pND)ZMCF%oO| zeAE0-v0c}gAK1wIWY@3h1#}l|y(WxNKHK!1=h%m@Glr;2?9a38sTTXQ2J=iy7)px~ z>*X-U9=1x05qoINTeF9i`J4Cfi%s*>9=4vJ_R!NbhW7B9V|ZFj{d>?Jwi@Fk&QXJh zFR~AbJ*>Hp1rE@iE%x~dCOBMeS`6P0-sFUyO~w-7R29$Zo)%;A&MnS}?r8yocWePe zMh*e^%=7CsAd}N3kDrHU^`xGyg^{nf0|?C4l!D7f2IZ7Mihx+FzzGLVd;$YC@Yk0 zD>JfYnL>0`rO|dC!5=8daal4+C~{~yXGQV=p_N3f(lo8H&vt>pHM5RVJ=cXN#k31u z1*kCT70FC(ydPX|7;GJe)JK>I|5M!v+-K-w$?6t}H`5i!31VD%pkau_baZ+{IkDO` zGPqOa${1iO+*aq#KJw7nN6$Ta>ei#TENz?LNC=xo-e{$(_p8ED*bE^Skd=jGLUX1n zHE`XlzKi#@(RIeVOC>l?ha-nK-Zj-l8 zx{&{Etu^;jYg|M=Fgmfcqa1aD6_4hJ0wq zeOb~ZtB#8Qb_aroAseCM@HrHjXza^9SU(WC$*5Fu-I0XG!!;vyD;m?2E0tP-BhagP z0*LNBoJI(+6D`L=R7J$7Qn!4_x;7KsvtowwWXr)4x(}fyVEr3F-nXfh(HzO6k3IUq z_doif$3FCyH^2UY^XG0|AtcWh+ntv78|n=Hf0qWHZrum`r~a=|$2D7iKmGqY=~U$w z()oof0U4@Z-hjizvAU}KI%J7YOW$BWDYUNm7v6XR$?^a79giwL$9vynRb0}?KO!qG zb!lc=R;jiXG2~__xeltFs!W4|%a1ajlh4FBj7iKyu_#1FgLV|NLHAFGPj{U2GaqSu zE}wJ`iTj$0I5dRKiDo;>NrZ}vL8f^a z{kf>wPtEhoQMaK(|im!{5O4b$=nu0OLiB4(HyeM8)dVQWq| z=?Lhdc@S8l@3FXj?a<(5*kU5#?U}K~qC5K*p^kAj)i1;+^O8siE&DvWW zD@Y`ZPB1D&DOEeq6AQ2e^61%l|ES|u;n)LHps?fX!{#Y4u?s>X>b+fVF*D-lloK>D zfI%pkxw*cgB+cD2cjVCiZChqGl!l74ePygT7Y$LufrC4{M#yltR=Nb4V*=-?ls+(y z8)t-J$A>S-iU%tX@E4J%LBd}zp=Ta{dGtE(p@7ecY8I_@YAB#8BL%(P=CWjW{CY8+ z>KW_4?Xj&rCr5&hqyxtv>F9A~2@^C&d(83Y-6${kaJw6}add$(54*Dc5r@rM9A4^p z(k9`Gw(V$foca|lb3e;&2q%mwjocEfmiQ4Ib25f109J# z=4hKYS=ekv!69--cCG$UP9mIlTsrYm2-rY6AVrY3!%+)lx{Qd3N}?sO?j+@Dqrpxa zl0OK|nmX`Q01lxpI1-elv98WsHqmZW5+T`}K?&MlV#@^F-b8bTHxc1JltiSha4Cp$Lo?ICYzA>#scd z#dl5)m>ux*Awb)swV_$PqWGQLZ=2iO;f;i0!1S1ufYsy(md^mm`93J*y#5b?q#hEJlwi=oby#Zjb7>1JdJQ_ zw6aQQfFOTJx%dx)|7u>X)nWq}K1Rb4Q-1{x$D12pE;S9UZg0~PY62EX$R%A4sLT@( zjviTFT3nc(%4KgP1QA@oaFDgYc%VOJxU|6fOhX{z%j*Rq%J$6z-QYsA$JVEhcDHV| z+x4)unMQ2E>qREIlKzpt7mn_GE;Y3tDP{bdG6SVHzrT^3+UxspH^e}Ms~J^LjfNg@@VsbyaF(5Y#!=Q=JNRxk5(iZ2ke?NDN?eDM`bGMig0`yLJR)0 zXeOxxyc&O0G)J+*D{0S<^{71yg~?oeB-8&?=jp!~AKkK08r@8_wgF9AvFfm=k}rKJ zI^dlNd2u_N)Ldrx>HR&IPJ|MXbbIWfJMVZTm10K*_FHzP<8O}7VSDiE>Jf^P12?7s zq)*7u-723`tS`ukuI6VI5gt&rxnkSk3Fg~20YlBRLh80IVc{-Do$b)PU_cjWWUy;x{6YcJ

2gEqM)3b=zGV*ddZho?r8*tX-C!%&;X2VgvYIL=-{61 z{@6ge;0<+;*(%}KVwclvCsNZfT(lEf?|^u<7jY(miZqIQH-kVuk|;;n4=cxjh*>(T z+Ll4<9b3>it1FcN?lkV*`Ehx$ay)D27vQacC=R=;Tz8bO{M*_A`iux}R&?VW)pl`W za)_T8PLfWH{c4jo_5Yt(=js0sofv#X#C8nYgFSzjpuN?X)nT&pbDGR3uOphoiC$Fx zpsAU89#_`4<=>FrCVf|sSYZDI;uh|?eD1hv(;s`-?NlWj)#48G&(A>(xaab5#b!0W z;^G03W(TkEfp~hGN$0*ywgMETqTDu{bP{DiD%Q?H0C!2c)ubQdL(mZ1WWC0Sasl%Y zJ7r|uY8X~GIWEK`n9$p##~=EMv!`xd*}Hq!j%Cz`92*`QC}xt0XPt-`&vLm~XnUd| z6ERx+f0VMf@<_0OM9fu0hyZW6QRs7sJQ;p&mDAwzJkc)99aF@H0Wg1Gvu{FVS zfiBNI9Vn7ysBX3pSKVC68`0eEYtq}mNjOfCTE=ukVtt5nlG>OK0R#W00rO5&D&?VJ zm3WQnJamVMd7fn-zb?!(En(n0q-7YQ{g*o81n+VtSK~Vr z>xb`<=Ec4|!9Feaxd{f54+hMW>_GEb(4K*pi1ktA!!L1uB<6>I(HM(;X&y`aLBZGt z4ECV~4E&1*%)8lpTEM`+Xuv$rK2i?@O(?&5fUomsm|gI^NS6~*!IsS%hTwU4^x-21 zRhwl6oQxEr82@eqiehZpJcQ`Xny*cjzCQyJ?D00;dWBayMWqUhEP6xOSDX&nZU+;z zSZpW2tf1>ytpzK&Dv1x4Dg)tPlFf(saA;Su#yd;29u3R9@kE-RtbukEwQHQC@uA?4 z2py4rMtb-2&%OD+J1(BO^)Cl|Qt6Gw*$&rQgT?6sA^gZ9+JuHiQOK z+*ZP4D>LZboJOP=?m=qaoSBEM3HC%Dd828X#~SP}-9G4w+K?w@vbx({aoc%s7!7FU zU|~xn9YuT(`qgQLqazVmDw)+WFI&B4cVh3ka(gHnif0a6qgkY#3u7lLBLBo70yF6q zWwSkHcca%30-PLfbTE?H%9fsJWYR|VrTpr@upi6+RT`DX$|KN3U;{Og?-a#VkaJ8M z1X_VjLs85tAZe=Ejt@qq(x#2MOe{x*f7WU_al?^eG@{K&a|N2Vsx*oXNTYiMlsK|A zQ%#^RTo{?XeZ!`Om}=4WHu&yzT`rY6rxMA9(w3at)ZTLn1-*KIU)Ndm^eM;XPaHe= zlehHdRcOq*9zBuADrufV%t2Qa1z@)CwlsOdDiB3H6`!Gw?(JgMqVfK`I<=!A7Y9TA~Vq zcuK^91G^f*DE<;r@WxDaVC06$@=E(z&X{?w@A{y%4<@1ahGs11>nDSixf9K!ArK4d z!|TWvOV%RFiIv;#y#4&S6G!&$+P*wGGBntkL$YHe9PoSXJm`6J6og0uE7=I}6N~~d z(}3Ji6oMy`XuP{EJRCC$qRfT218q)-{sawDPIoRN*e-?rVXoXrM$=F~3@{|*BHI)= z3=`)xNQV3uh};7SIlBD4HYb(glI3m$cRHL}h-xUHm%6pr5=aK9Cp&6Oz<_JPE7{dx zY#Ob@Wd@(C--U1nS+=Tk1HJA5 zdfh8MBF_mVY2QcgFD7Y^po?OGDV|Q$bAnp2^f2@ARu+UJwLs?efCxEif!3L+?)&CR zV7C*9-Q~qX6y{ORIAJ;m4}cR89d;z`xXVuXo#S1?dEOuJoGKsnR!5+=VCOPMDc2cA z)KTQq(bOJII zk6&-0lEZ;E8b<0rUn~3^6sN!~sPMi#^ri>j@WB1|{=}WPUpRmI)NyoUJ9J?0o?SZ^ z7c!9pL$RC>jK11?nqOi!K|p5Y>aWpjz3r%ub`fJ80u|Q~EZR_yWI&b`avqg0Q1X5N z71ORyUdUV!gqy4;_NPFY6%xi}`CL8Os+m6;KU_oB@^Ofv!yxrdM;+IvIHiu7ePn?O zCQ-U=zd_ZS4sY8UDetDCq!HO~QXCOIXhnZaW+N`e z4}~$0^N8;9Xz`d|yK+oFd8Cx>%JZ)gie@+MI~*;&&gCu)M|`U48?}2K=u#--O@Aow z=WlwRS;~%+3$j_^Z;TuS(F-v_M2yfx#SDA1xLv@CPg)T|R4I-|>>xv6;OzjbN`SbC z8bOH*}LBNg5Wm|q<1_N}~H+rmWa9co?LuQA`>dSbk>JDlo zMsTk=?ZHW}L#CSVZ0g`mp1!u{XmZnhj_kq?zv|RG(OT8J?Xj-8VaK=KsL$%@oVPrE z%n`M^(ziVVf=bKZlKxp)APa}|&zzJbVO2r1+#kt*%@WFHeD_W!`p2w&_np;$XF*Pg z1x|?1vS1@2!kPX})}f#r2dpTmhPj`|_#(Iai19BPS?@LJeyiV;|CIG8&_`fp=n>zJCA^&&j3(6jR_aw@`ku|8gHmMICwm-7^Cz7mw)I z6=9S!F`M1%v-PNUU!X=={UwJf5%R_Zju3Ln!Zpey-s>Ck-{E}9So3piykX7y>JQmI z`M0E!G*s^I^?_N4{ACqMz6uqT1RGEk(@83P)ng)UrzDMR=}x7QZrdi59kP$!9Oc}3 zLloh;W!) z6iI@}-}n_S9Lj7yE1h0MG*qD@lSUmcAO*S@<={O+N;Bt95XbX*NlNClc7*4=%&R07#b#G*L0$Fg%rzAZ?LikcpQaDH0#o7W z2GsP_l0!&I4ce1=n?07?8*J~P94wR$cKztseL;J4ZU zsXVYkalMMj(ogX=xb?Boq+MZ~HE~&B)3K4Gqy6|7`%k+Mfosm{SbRgI$3GDEm_0pq zAM&=L@-W!vWSi6E_8^dovI^*b;bh=9&-K}0nR(?Z>d?XJ&o`ZEPE)XSrq7uVq`n%y zt4ykvW#S3@(>~`^z+^_44(%mL>L%R&z21o~h6*Zp@gFKL@)v&-5c$nzM-M92p58jt zMpe6jwxmUO!h`_>zgfM)!@_`~v>{NV2vcDwto%%_)7-kSeDg#fV`#A84`{FWz`b`| zTseOD(4Jj$Q{DMoN9yy`ge#knUz1%$i)G{bMdHMb-`Xa56a`Li{xH}r;&$Fr;aIwV z-8=l{U%qpq3jxfp^3+(Qa#h~|&-)(m-9mWHc^%5pf{*3dhS{FnG_tQ+kyj}Y8 z>Zj2HSw;)wPg9f-=Am}yL?0Z6)6E@3KQ(l-N7^e*mB+h)Uj1RJABkEtzy%bFJl9M` zi;IhU7I*Jhu22(|8Gg;ENhaekXJ8rAt0Szx7k!Jbe&s($U$+{)jC=S7o>0>AKUX$T zensAh4P>kTgabN{jXf(tLhS@e%}n*g!hQ!Dc%orEI1?-qN=4X40kV@6QcG=7G5V}@ z=Jet1TL${_;7FpXMV0?RafF!Q@2HVxa}sAzdyBJ(rla+B)H|As=<`V&H2ATfeQ<6q?X!k|9_^8~5Bc|t9Y zU-U2jpJ4;2jwTmu&LVQ6TvVeC8;*+$)wEG64GwHG{L4Ce{kojiJx&Ko*2K(-S-&f$ zK{pBnU{}Dsh*7pS81@kp$^xndWz;*V5INcC z8GtAx@e8`rk-LwgfME@zzQ&!)cnKhkNZqH3BLT#D!L|#jso_h)rhxdEK%|wmk>w;1 zgqj{xUELMP-&ygqw1S(SPmbd+ySFdR&TN>P7=_?6=%+fS4DuZJym0qfnjb&@A%6@? z26DLs5l5Pt`d*{-J3mUnRD;|%138|A!4Qnd#A$KXU>v{zUqE)5WW|A6BX)Z)}vJ8f7^NF-#a!2$yliP_*TeRJ63R|*yE49@%5MPxc$PpvnNl~A*u8KAd|>XKY+<+$`kAN=kT5h>d_D+pB=76uqdGEz6J_i9vFhioR8y zpWJ+6Y^4}Rbu2FK^6CQmjsKN&pY;1>@2NwB1>6sp?}~x*n_<+1ZbHNXFCpjos!win=q_3DS$z(#+te4hStgBZj4{7`bH{JG?AD@Hi`fuEg2;C@ z>TaMHep~fu0$?6Sx%y_w57le&4dc@_fowt-2bc<7~w%e01&VV-KcTFHq3_3)ieVh z*aCtuAOZ|HFP+2rFKu0%80+coEaWm?x79E|s`Suu5psqZ0#F=7J0lrvmF)Rk&@-NWV0LMi-&hy z|2F=czV~;Vn(y_VhtuT&U*1Vg^UA9ylwqzYfis{q{fc%G&SL%?qi%U5Knl+*^h?3a~-hg#cafWrjL5EN@4EDjY=Iiif+rpU2lj9A8 z>10YcDx;Tz(F`k>NkdR_!qyfH4n4Cup>BO$d15>?wb-7&^14%J2M$e`x|5DnPfzFJ z1>5f&xNz`&C(N$GTi@I<{h=qvKK|(Lx9@Q}Q==Cb_C9k2@5tBBx$aJb>o)fR7BCc~ zAz|B3z%ow_pS@`OiLIFe#AVmlyVrdBCy|t@LFGdMlmb}1$f&Ia0_Ye z7%CX@Am*qqLoD8ff*)&Psp9G{U1NTnF%N#MAM*nH*=vvC!H@N0p2Nk_`aSTRnzMM3 zT@`y+6WA!$Pr;9v7yI%A`_~pQAFsY6hXL&K?0-NtT)(ujnD-OaF;7xa8)MA6{e=0M zW8Z=MVlOFx@~=7Fh`A_$Qmhes+X5FTfKtFfu0S7|-*WAVgLs;_a0h<|OcPM+K5!w79&heVD4x1|0ET zS1y+uL+(X>Bvs-OR}y!?C{9gPN?#j$ z?b8+WH=XV}^MEqyF`x=V;lKh*-XZt5z;<$t37B`YueF$m!fXW$D4`yPW7|HC&E3+p zwDJ-%<9OXp3VU6Xy$qcfIADlfUCX$Vx$7*oChxI_fg)Tvt^uUB@cKwkE<&w%QEZ1i z99$A3lYDJK<3_Hp0f|UXLpp4Q^Ru1FhMv3@?@w*4xe4O89=-Yl@c;8Qc#?>_8anjq zR{fJT_e1H~C;Y7anIkpW0zI~fR=uY{F97LPt~1*WOoZ11*9gteOVa$_`8`wP*yX-_M>K+r3gK)O;@T+0_X__A zh9JMeFlMglM9jPI@LqtUknJc$*^m%Is$mj?Wd(oGme}bqX%@?P*j>SvP{`Jf-o$3F zE1J)O=Nz35n>8DX{d(>VrjO?Qk?8OiL!c-!%h_Cq?#g->-F=dCtiljx+uPA= z;E^lD+ZA{Fa?{UtgCk94?Yv*{k8&fAk0z4cvqJWGc;A_iKYC{Om@70EyC<+|W)QT_ z5slw|7Yv^CF;1h^6uc@wAc;)SaciD|*2M%Pp>;9w6>*cbY+XFO`XlA^nndeuRhMIr>hz5ZL~vAyF#+2K)_UeBZR%5~pcpKbWQ zg4Nx%Nl0$8MH*(b&SjqmW@($_q!%rd9geJn)Ji9iZm4#MkmbA#@aKNeaz!=tkkZ6JjataIt?m_II?^a*NPYAI(m3_WMZi0=ESIV-$X2Dy?M&h zxT*2d5U|(DvZ_wjasoklIrMRq-t#N(`Q;D3A4mW0Cm(+3%Ij{wc;S{q2lgS)pnIj` zoza}1n&8%wA54(YnkcNQIqxb1w+M{R@Vnkj`Hp@8f8FvOng*Y5rkZy!0+JT}an}eQ zSH*kRRDwvqWJIsF^Z*O$u}5%Dz;Jr-b>Ui!D`<{PuX4FCIsoVIy-(6y0!a zxOU=J%;k04T2$PC09eTlOLW9`HfT4v)2COjq7wIKQEhKrI{gx2b4?T%LCQ9INt)s2 zGRx<1S4%65QS=?MbwxRwa&ql!`l2H8t%1PQ(%FfC`|-~4u@TJQ;foHn>nIHqBqPg6 zX~Y9}7+I=G*M=7(4t)*h<&xp8fa6~C5~n8SOui5xjj|aHil`ccr7)b>duSn`cKBDe z?mQyPVY40Po1e?>&S%pW%hutx4tLHhqxNzv_HLPZ3w?8LO6CtmOvO@S&u!5*cKeg4 zw=c70)$H?(_vbo0i+HiCpQinQkdi|zLN5}b?SCjV zG~Xm*!3oF$6p4L#O*()vj;$bwQp6;elLiD#gjE5e4g|ZDNJvs*CNVu$>gmL@+9#ke zP!9&$CXO=LoFJ(Ps40}o=ZUMB^SIlAE`T8BgK)rLD1-vZyaEx)lfj`MUp{v9p2DuP zeKQL#n`5ipp~c{qaCY@5eos_EZF5;mC2gqDZuhg|d~BxJQHrXQ?|a+h@13~w7Y?7f zv>(;|%}lc;Rp!>C%8Qyep}NVt32uSLl8)5C;_*vED|2%v2C!ALFn+}0N!}nWN#*i} z(cugb4c<(cE>ZDUB?~EHNMzI#G)bZIG%n($hbUqmJ3VjLqfh{0`2=PYLMTX>O>QT$_1u`;Nq_zd9g8M;1=^DT9 z_Nj+<-iq=r=Ec8&RZ7oBotmt4+eY%?S@%5TctsAo7d#Wm-oCEMV5BE)w%MJsJK?vM znB&6TK8wSJAla_*(o~R{Z@c>SP@7dYnKid+9(QdTP4DsVFT}fI-!Hj!ig$r*ANRMr z*b|Ue`1Wv#=59lxS*+JOsxV|X5irlLQ-pLD7H!&Q4#O?lv!rLQ{+PDEX8so|g=lN+ z1+%b?)Q}37gK;|6?I{b?KJJO_7Di7hg$Tb3t1koRc6+;06 zZ$x;{3I&gK@ff^GX(CeqT8S7u-g6SsNWj#J76Zp`1;;BIa2lT>2Z@Y}1}n(C=a3Ix zHJY}L)ExQU9< z8XCcZqsSl_IC0?@giwP}0gatP`lV$Bjy8S;VT0Ss8yZKF{aKZ-KwZTIWbmT!$X4Uw znmq>b2Iqs`uWem9DjbmoXA!O1c$E&(H<&Il;?iI=&^Ly0Iv_mgAfPiMJ`meYpDO#x z>-Ra$)WppJ|G6eRqk+hJrC3yR>5%uP4*%c*OE`pHZr*?$9rTd>W3#9URB=a0kmgA_ z6_ed-_WRhN_a+czouhxI@#r~Bksm!r4^Ep1(B+>WtNZ+;())2VjMw)%h;r+9!NU~W zhI%K(EIhaasP(ZC7Kd|oT*!l{Bxc5iOjV2^Vt|pMlL+Dvd1+M8op}YD2d2m=?<5?e za1`)B4??W2su|+?BTyr$;>lVUm^&bF*PgU7tF^~U2?ywUgQeef`V`VmP_CeOB!#v% zcFHXT!tjfIlu`_UHRPfP3T23SgWkE@fdrp4MK8kbkAQxWV3|WDx)ynx2yG8>JPQCt zq40u@@c4F@@<+Ik9McG}2n08U@)ljY4~-$sHl=I9qWH`6y*()u_s4yV^h@09_>qVM zUVcj84CKIZ~8IQtegv$Qk=bdB+AY8nm zjCcf8%bzHrJ1$9Jq#9B3Ic`njvkbtLh2ktadGmM`xt&JguxukF1TuVSR!>!j zkY^zU9Tuh}4RP>dlqCNBn=K_U-pBAVa`VEeeI5e>bpc~E; zzCwtq#HELRXK*NrjGIBBLnql_VOK03Psk30==y9Hf7k$_H;RB0%P)QTY99yu{ofe!DD-}3C#`=+hHBT6js?y;bBoNBlH z@kctlk-CSvftH>mkV{9*u|HBoWgNfek2<5X2YzobS{#Tl*&VbXxf29z^{5VH)x7kv z!t32Tt$u1CTz#W`%qNU$o^4w};%>lq=VORC;>HHDNHu(+@-N5&)$j$4X#5Po&~?QF z;&3WLEW@qDWQgyQ(NGj-u1XP4dRhia3rs%1VM&Bi*9WENUvI)2nu|S{5&LwoEkcV_Y_zF1g1N*_>D2pH5OoMEfS@s%1;JV$T$85o% zv!Fv!i^TFVWK9F#oo{kk9k?vBm(QEOV~r=aA1+SK`TQzc<PB1_TESFp8S2dIQ_UGPK%OURZ+PLL%w7I^G-BkYDi=<<{^<=z&vaC z-J9oGgL$SU40(^lJTJ0;7tgBEkHnhEpDJLUVE@np<_iJ_7G(|ti}KU#SHVO*A2$-l zKCZA&GRg2si+R7)GzRZ-oiU$p8uJwU&~?U;uNUjDS=;mMo2|z{CnUTRW5{p&4UVT` z&E&Tgdx7V+I2-cY3YZtzPuIg3c>O6Pt8FE{u?u4DsD+vWElHZJJ%UxrD`o^t(S1#J zwUZE6z=lR{A^a|<YUDVFNb5#Dl{?$cw3vr{tO5oYSPw&(v3eWF zyxr2-vTb1kSwT9`gJfTF&m|=@q#m<;1un&EKpiEgaU9`Z)^r5~R~7W+2dj{4K*(6+ ztTK{EGbzF)LLmsSt^KVe7~Tvwm8V$j;I6K8gAdl~`-bPn`0IO5{b~ObkNDb>jUHLM zZvFEcWxLg*L#doKuMANd2)%+PY|a|=*TQ|g%JM_X$>I?GAlu_#vl9;3Jy|sj7H}`|M35q zGe3mv?v81jSewUX@}P#d$}$QS@HRX2n5o_52-)oDAFH+N)}pg3fPykssBmTv^1}R1 z>ynN2w3%(NvY5x%v5zBw3xbra zULkE98^q%;MH^XijiHUK42VYnAwN?64)G|M6nGB#3X-+@AjSEujfMD&*e^Wr^3fwp zTl)Kgejh5WW2f_EXfgib8%=r&sleD?{KX&S`IYz{(`M6Gm2c=%+IoHpfHI11W8Ym0 z@zd(Gc{&Qz3dFye-$7Fgiz#jL%XUi~h19L7Y}jvuPN#U+B|WZ2N!fH$(wYyywk8aIOCBim`t|!b9 z%akScX1~Y6>?U2c`noey2XnXFSG>DD>(*SP(Ez$WvmT8i7K<&?PEho?`zZU@BqEK(c-9-&Vqc^1m_k8$e4tbB_hxhs|gd z;Iz9e4s*<`TB+%UC8ugJvo~lD3^|=PI}Dii1dzr#u*YJvO;OV;#Xi%EHhqfbO#4i3 z7}R9DGpO_~`n-Dr4wtsks-d4iV6)4$1pBK>k?{^^#8%Q&A6m`c)n4T4zQ^T{+|eFt z+v;%md}?6lTTvB5lOra#$$fs=g$4z;jo5XZBzljc64xiB-O`A-!)i)&R7-Y%BY-hb z9Ji?0v0K_PQA#Ix#SSt@h)qUU*nZj?`osU>mI~}GCGXOofhtkMWC8OGZ7~Q}Y$N~C zoY%Cw6qZ%cW>=Ois9)qn8ZIigk2wH|+~tf#l_P-|HGp+l^BS5yyIpcA;)PR|n!h>{ zUBOM%`&H4*lRJ3p*A;i0#bq(OZKg!gPK{svAL#Nr+&CL(1YohIJ#%I1`q~{o=f(y#I~=wI*cLbxc;4y5bF+667GmjQ_Kyzq-G zej)n~1$a=kM7F|n{CMb+35H_S$u_LRGy|FqAhVx?fvJc9r&=g*4F0JBB_D@y26$Di z0W$8Z{nEa@JC~QXl+$y;r^%vN;+g2Ub2vVa!XlH0+zxx8ndB?5ilNaEuofHw8Y!eP z!q}35zT_AW4kct10U)a|3H&ZJdCjz|%-`aNY zlE1KNhLl>xOZg#;R-n+ zT`UK75BB%snrP#1f#fsPqmxnKgJkL`Lim6&3>Ay{QNpUsopqENT8`pFMSi3Lf{CkN z3ZdkLbbRO1)I?Vy9`gz(EpaD0&k`|xN+H03<1b8YLaY$JTe3)Sfe#M;b{WwyICj7Q zH^ldJd2qu%aj_7^%lHw{X4XC!P6flN$!{@5+DrkDy*<%xgE*)avgPe49m9M9ryZ9g zY7$wy!o@s45Qjt7T;`A)=ZE6)G7AJ}kN7mJ?m#TNgg8_pj( zvBPXlz^RMQt5Ms5q(eE?8;K9ax`x6_iEam4%#dkJcUcCy@7lDd>o)V$sH;e&9Qda5 zga4#)@JE{tOu*2=3z%n&4y(1uAz+Aq3799?i(;M{{xyZ_v~<86hO36%Ts0J9iD!wi zPq7^>)<8TZAmt5YY2XlaNaR>#a6i#J}9Y z8U+Jr{sJsF0`f{jSwaO|NjnElsjPs#7MH2Yl)9qxq+6jIP`r6=9Y~5}&vJP43cLtZ zvy(ajFeniupf=6C4m`MVbZktL#x{=4A>an}KKqewol0c9SsOAM5sgHe0r;=c_jmvv z4)}eDhN)3y$4MX?~Z1(an;w;87~!5V7d8LecFUSU7crg}h0Brpl zltWGPpJlgRV}78W@`0u?cR{3Ry(St%mY4eXxD!q8uQ`Sn)E9er5hB$3dq_q114_nVq`vG=i>_=ryw1?LobD(Jq z?cp`Y$ZL3bnSEaDq1=E2^0&pj*q76|VXPQOPm|qC+x)6k zpGFXz6)e$Un9bj!fjxPoiU?$^A4Xr0kV@4niew|vk&I5=icBl802i0-h%aCeOOPhF zY(qJ5O*#pp6)ln}xPJ%^ctpckG;Vjf#$Z&3t{F-%af3s9sIYX+P~zC5*Lo`I31*FT zLu76o-h<)OxU^+RWml@xV4EA(eyv&1RkY;<8m#w+KNU z2aB3rvok{jxEVS-9PlHlVE&{)a(Ql)_&(VGjo%hIGz=UBc&_%gVBc}JcX>KHb!%*V z>&W5_-5puKC*W1SyQf&aJGOc?M>@<{y3f~^=#oR;8@fxzI<1cTBY`~)cgYW`cz*{9 zJ2%rO@smpeM#`%k#^7`N!bFVzgVS36x#?R0Coa+_{ybz(&zU``d56&MGN zLJ_2bZpBQVf8vLf!eC7FTPo?2iG|MS|C@rVt zsemB9#1f3?O9z(@>_Kf_;K8O6`nq(XY90tM?W886TxGg8#f69-Ve$o;nvw8B>K3_k z@s~7bbH>LlX=-T{nzkXZv41S@c>lF1?@T_quk)6pZA=f`@4Zz&k<8>ZD$T6=5QP>v zI@V_Ci^Y|zKRjOu_vOl5m;mv5F`-=Ia2=$=%J|RWUJ-rA_pBazB7G(vhYdpB6 z?lbhZr+7-DpCl!~bWoL76C`Q6Q>>`lC#_KN9#Bb@Fs=>h8>U3=}#@Mwd7rhRuVD;beF)H)35- z(P-31m5|7bPX^afUbZ0=Dh+wb7)usZGNPcJY;Z_pkKYR9+x`Lnv@vS-Yo_ohm&6Rh$81fZe zXdDJt!$@>=Yw^~x=weJanM^J{p!oN0wg1xF4m`TGHvk0%!GJ!*WBbyXGbf%q)H7^D z*j5yU;gYjli=-DI(eB%Zig5>L-_Q`N;=OoD5@Q9-MfTo$7`_p6d?SvrogzrbRbsf{ zVT$TZkiP`7P~9gcj;$mEO+sa~S~M&A!s%#J4jw3hd@h5}V;3)xV^cxUye`SQd&$`Z?klv88-!H~5B(k#s1@{^uN{Ky zYV&{a{%fFU6*t%L?m{EpRbjqa#mzG)PeI~G6@MXTA_brQi~M&|PAW^EDLY+Em5N{o z8Bn@nh#c+UXyBNt$Z$o956^Ig2cCN>Amvk<)HQ%mfgC_2>82WH0vE{h=@f7PMd_g) z!^n2wXhHF;cxn>_;ekJ&hpJxA&yj?mm8SyxMZun=+P03X|rWI+>ZEEGCh%i zgICUtg%h!uH{efZ=54(_dmo=U(wX!5-A>ofMo}$QZgan~7sD(re<(H|>kWr{i-B|@ zA1wqu-dJk7^Yrur_C1D_3>~$emyz#ssq9%8O;Ju+0z6?Cw!gCV$!fSi2p`mT9^4X} zLWyYDCc3T4*9M_mrR+L-WZ$0InIdZI`8*WliuhA<<_6bTC+z54y642anW`oM8^402z!Z)@2S?j>3}4)zKx^eKB{=@!AkY?E9S*M;DSU(EU&Epyn3n-EbUi8@D5TA~qX0_vNU@7+b-m zPeDuu)!gWaJRd=3`rhk2gE5q_x7+0vP|jMa`T*9AAn`+dQDC=b#Cg(MYZli$kOFs$ zd<4CcVn!#f>y9BRe^n17iN9~1RVoryW;UMOxW+OP2-V7K(Pd;-&p}FTJ%W^7{IBf4 zb>-mxrEQxxrqZF^!(APla*nk|VTf<9V;CfJ)bSOHFDA;s-?cbmGMxg-;5dOHd0id@ zJ$OV;QojqNV^lfIP#x!CS|Xw8;YbqRY?7L6ihbE`Np=|wDffX!F4QrRkUt?BpR!jz zT;V-+tmz;a6Pi~9sC_DaG#HibDr;s=U|F0tj`4ee(*`8)k4nG6y$YZi#BmrjgB$z3 z^2|D)XT;}Fk1r};=66ojoCn?)fd&6dPBLfHHPG# z0O^=0kNZl6|8e0_#nmAa9YkIP!YYs}!ANaHr(y^=2D5AcF2jLY4~HHGC>VdL3Xek2 zV4b*UIh1RYT@^zI7_#@)kGYe*t>qX8N8YuwxLolm)Yx*xS$w;?&!^eD#XdK|kZ^`)WADze z;yPzRd$!+L9}(fNaAFhllTBERrF~iV9Jx(cz|cOd3&U-~0_JXZdkYw{2@9A@$UUr^ zhZFQ(zRn4$%sLE$p59PUOqO9dZa6_#e?|Bb2%1vXdXRAdD~U=5@xOR2?KiVMmg~6$ykc$q!z8DBVlrlF4F5fksNDM9dJBsT-c4 zJa+A|SmML$EkNPbo;;J2ljX@7Vj;nfbe9#urdblN@K?l|541>tO?mw`C#cl9GXf;&rS&x90F9Xfh&j6e)5YVhy^SX#m7zn8~D`u8!bMk$l-KBIP=> z1!C~MDPPvY89Z#;Eam?sW0RfltSn-K*OsJ(X3by|OS;ks0_veZEhxm>M!QAy` z-p={{$7pXQCS_J%VSD7imG(&Up@Xk#_Fb?&(PRQk~r$NU}s7l2N3rp{zRTJUq9f1l@-WMB*j5Q4sjYWf)k8xWYu? z&#*1!%>iH~enyQ(Xhl4$57Le~vjc(y^P_r)&CQFZ+no!YodaR?-GoWPq-yP6x07XT zez%S3POq&1K^Olsqus2hXmcuFrE^ayK2?sJEe@;ZjoY$8d)G`NpS7YRmDSZQ2Nak0 z^XLnqJJ4KaZXPgRn$OuCA~jz^F7TZI(VF?0J zvmQcrUjM)b7;9x4n!m<6;_r*Q+L5+pc7xgx%H(lup0nCsyu0U37r1#3@uOtkyZW+o zU*w_3*?qxsIF+)ydL|}2LH}asAz;X6eqr6tezl(dt1u8A448}T*RBh5VLh0uALgfA zndg2sw)%jfnLR+7S@l`CK#gaeVMptqg@Y|&rGG2`BWxRo%JvWvm&ST^Sga_5HUK0D zRqPR*ri#lD7)9tT%HxXoZDEC|e153xk)_d*d^Q&Kx}~x_L&|iC>d}jW6l8vdA%WW* zG(l=)pW^LdL5XCZB@Cz-9zb98)$4NYpm;^K+8x1&)nR4+wxOPx%_*R==_rztL3fHH zpP%W15^Qm@_AhjLBGJ)~zv_;{^Cc^7p4aIP=kQw}`uWgdOySgGeuvYv{5IF7ZQ0!Y zmrIui++J)23jXq~I4b=`*|!y**CN`I?t=y%cFIIA!s!a>89awwh8?j3dBj*11pxC7 zO1fS|s~@pHV*9|4bz)1nP_F|`fyf0)O-C9B5ghLA2b%{~W-sR&KxqkBjIN?w0X@n9 zBu&nF_~2vNj5pM^rFYm$H43h`+n}S$ap4-R)!>Yy3-Nd}$~;Fw6>vlt7prH<{&xLC zNsA*?EY_;Z=9YbQoIcf&eFkBNHkUT&w&WtI%IQAV`m`!X-1|jpILLLjEI5;rK@lUl z7aJjui4#X@kN-)>O5r8wlucsfGb}2-L)iGE$Mv zuL9<({AX2|i_+C5nEz+>$4st)xv&n*TLBZVS^pSCFZtOi8$KhWv#MSTPU4Dza&Bpv^rQd3N7s&&dPbuwHn7gD;HNvcZ z7ck$Gp}iRM+%0{t5eDmAVaMd}0EX6}$SLWId=0ec{~>?2I`)$EAN6A;dG*_?d-(co zxWeC1*2~>lG;~s^-c}ZDq7Cygc(S?mm*2D~AafFeo6rG>lSJ?>9twE~=1^S4H2~${ z+IN(HBcCP^62r?_=%%@@JQ%l4vZAzRsM|}@4T(rVRsJ*2I>2wZp~0)KhsXRnhOg~` zLLm^yBmzHH6AHv%{=Q#P-3ZK{@pqs8$8>2rsW}wtmd;|1?wliI`JC4I)0v?`)EYzm^%dy> zc@d?=`pZ4(WWta0M;Q)i9VFG|mI-H69wGs;4sYHo^>};JK{I52^G&^q=LTNkeK)vn z9OWuV=~?nJ(osrzSTKo|W#lxG6u9y^_AKNY-tv!FNo{c9>R0g2uaHp%&;)xy`d?fI zTJ!KQ_{>*j4Z6i;X`(#3vZcS+?NBsq;ZlT2TWM3cmnDZ3HOi&TDzrD3rMoWOe(1o| zWGWHo{dj_uB5>iFGuwctBo@IVLjRLd{01ppd4~ygd+2xkafbbY zkV9XP2kdFHD*LUzMbmJP%N6rjO5K{hbdTOGPGI_zyrVlK#2X+LGCo3H_zuT9?a zOMdsJ+m0epC^CemRwxpP*qX2>z3-AcZgFV+&IqcSI-Cpg5XOMZge|`9`gotmlk#XY zLuS1kGE)a}UD-I}O{UFlQS-<|$custz&J2!D#t}TpO!nYr;2(%gS{Ge>Ks3jMd=ci zC^^2lx2x0RfU_F+Dq@TIkx+|lN_<8p5Jp^*?!4o|fqfI>$ruToHD^Ib!u2|`Q1io} z6ib{$;I%&p+Hw33Qkbqzn=~BDYjOtpw-$m)zqND5M&z}Hxy1e?b z^ewQ!ZfSej9&|%)Eaa)EiQ(DwVslBF#9OUUfCiAit=#xw9=Au?3CL~~i^*nE?Itei zP$eRAB!UXy5rYkwP#0z9h~o*X4)Pj8(BJMU*r^O4ByHVQ*Gdp7u z75(L=?>+drtUuR{0yq%#oQi+(_J8adZuch>imTJ10hwfa73C<9Ni=qSTKbywyb#u& zuLyd0T{ggPWdZYc=`E|zKy6~^md9i4F%P<)@Gar<5K>B?=E5M2J+wAf`Ihve6c_Wy z*XCbg4^&|It^XZD=+*y)wS5nt?~t~YU2}sy`F6BkV>_U)S9aRNH7#Pq{MMm%L*<6g z&`0c0*}8pc+hRvHtzwTyxq$-VEx__oaD+6>V!(58KO;Y6oxSIV477z4)-~KfHD~cX zY;^%=fk2-w8=@}Y;MHV{Z9~J!lx3u|F&DF-tFgt^TRAAVL!)B~cDi=?ktrny(EOAf z2y*mi8qV!N0^Y_x@Bo~-#T49JIYyx4%<8IAln)@eVY)o&u%k z6bmC7KO;R#gDZ>6H=I52@=Z{A%o^3k0-J{NneSF;Te(s?BZH~)@BJaPGlOW9*tuXr<>tE7wwb(zyj???VMPlDQ7QDquH9`Nk#u1D)Z22;q01*jZ&ZnW9k%if5^AJ4 z?63)s577daAOK1$bk7x+p=S_F-7q=O*OAVRQlC^*8^z`C86F~K#nAIW$su4)#rl<| zEu_s6nGx6=+GOm`UKo&=!;Afi=Qs5AZivP>Pc)GpgGz$vYV8PQQiTICJXUvL-^YG8 z&eBfi$+~>L_H6p{M_>+%ns~KY#0z}*=;m8u(TFV_*fIIG!AlW~1>`DTi==~oe#4(* zkJsPukRSdT-~2%SG{K+|ji%nZ`gf~)4YJ=$v|F8rBn2_gMP%xb^|mT05X@?kZy|@_ z_f?s*2C)WGT*TNjY^8oIj3tYZV*U)^)l7_Z1~vnM{NrDBJZb!XCeitn<40saHto{*1MH*Jf8EzDA7 zQ--GXXfd#H2gWUdH^X8)?fk6mJC=qNJ^@}r90Vg zH{ntNF1D{>H=R;MLTCkr?p7P(6rrzxv*Nl&Fg?|z^5b{>qOeoAZ8%C5DSg`Og6q~5 zafJgu%;V_beR4>9A%%s=*Qkh{Nz-M01cbqd!@lqog_yk)wdQ$bRa&Fc(_EkSCVrf%3p% zxYBTYOAjWx;9z@=XYx{)+S@_8s0_K88Hs*!RjFb2FTH58B&x@rAs( zG#1aHy{v-)3&xsITjLMm%<7fi^Ac(hLZR69F*m3u51xxeZy1XzjA)G~5hDUW7t~Y< zp)kM|%2TZMb<_cu)A$vYCqQ{E;6(^UHk<9u_T)xV9aOX_R#UV|&>=U#2qBuZ8T^E5 zOk^Y%v?(J&F(0buEcL+;I4hkhhdW^D zW;0VGL(o0iZHTB-mioG6hWvYe!;x^x_f1@Je5ZNt0Nrr>&DS9K4L3H{-#<1xR_-6| zFJ;pOy5W$UW?XLRJQ-XxGo|5^0tGwFsB!&;_;1h{f|?2;m;Bt6D1ZTQYO_CgWg;F> z+NNHo*#s5IqkG&~7$W6!qoBR5{T9Tg=}HD}>8pP%Pj@+-se);X)9Y}_%fa#D<&7Y~ zRK)2*poJ`>q6lOm)#9Ap`#gdRGH#a_GBP4v9bbK_-F4??)75|5K9-EV&7Yvgo?^#{ zJkeGUQ0I(rl%@-blaFA8t;pwV%8WpJDX(%E%tz?|R6TQkiZf@N7BSC%fXq>p2Bi(` zq#y(zk_n~39#lv{ry?2c<5iy3NO35&U+I;v>OWP)fJzUSUT8`d6(-LsltE}{BnaBC z{Afd2c;q=+sh^|h$4$=}r%}2^)?1Atvw|^5)ZeI?fbeQYk}WVUfkGACq9BD}{fD=n zrd(>60sei}q#u%0dXj27weE}-PMndUAxRqAFf=tj+TV-4?WQP;Ob4$6UByO2BBLPU z^`hy3$r;AgQu7+Ia)IsWP<(Uh8WDDPluJ9g&mKE*_!6};OJRCU(%NLcX=ZA%tMV5Fc2R zXA!9ar9OkM2tte3V2uq9{k5(>qN}8hfc+oPVK z4OH%n{|xkcGfJJ@vyv?Z9Zc=&uz>9-nqAA>_r&1t$9CGSE3+Eg@X*kB#AQ#-4V8nq zM8r0I54>(#S}t$(z{t`LikTXto$AI;^5M{cgF$U_{;wje|Ot(_ttB^ePQ($_E~uuZ;$XqBPY%4ggaww zFrlEZ4ihH~pHO$&;AM^UV6poUBU)!k2lUvq#MjEiDXBlOojWCo97y-N(9FF7B zI#4LP-Ve2^f409oIgaJ@7P|&R9a$^gha-8=QB~C9Vpb5678U2`u_k1EC+!=C4de%A zVB3d<4fsZshuac2!~KknZ@PFYcJ$!Z5+bdgRs`j&<&UX)68U3yE+ZzPuxHzRZoK_N z+U&&?Pacaf)Gz0$V^?3UOC9@sCaL1$Jo)+Zr{6exunT6KNkl@u6DG28n8+M``Ah`0 z_Sn)mCov~B3T3)D5s5eiIQ4kI&e}(ZUJ5M@C_Ebk?}68(zvRgyHx;2vAVhKi>}2pk z;1AhsaZRGK1y#?&Z~n|z+r!H)hHN*JDIN8rcbQ2}9|_|&Gs%cihFQmwOypx|Neruk z8@i`m?HwCGZ+_{F4JV|@v0#ERmno8Q2N24{?7E8hCRD@NH+Q+{B1^7#MY`sW8rR$o zE|t}qVgwB7XaeRU@?S}EtA{D_t>Q4;lKVNXPgt;pKh32_G4?Vlukx`qI?p6@K-%WY z*n6cvzWWEY^VFs37$2S3kA zv!&ro%I`I`jDP~Wf@uxsM8`vCz$F(LFu28saE~`d%6xd8$fsm)TOpJ0PmQfi9$TT1 z0@Y`Re^FKYCj&umIGE@d9r_zjW7t!qkSw2@V|&V2@lC0>>e>o()C?yBFADhwT#fVs%tUk}4Kt%q;gU94T?0QyhQq6f?fql{^l z72-$)q@cCtk5Rq55-^K-AP8T^S;MeK5$>vdCrWY~i4PWwwt~BuN2HP9C?a}#X%GZx z-2XQ?$_p|>ZJEYV^24nkMfsfuJRDcBedB4gL<-TwFyt;#W=6vTNqTo(ICpUW;sPb~ zb!2r?4oQB^kn~FEKz14sCvbstu4^|M;Vwr)Azp2YZo%uJ6*~g#@ausas1B|;w{*eR zS08tGUF>7W35{6#dga1HS@$3=hMLH{8$i)@Fz-Sm=5d%J$2^Xm#3optlX@B~fXKM= z`A1Rp4k(URX#Xycqv-S9(n{HO>ge)pPZA0knG)!t3gbr}p>5a`P`pU^Dcj1iwXf)| z;yuZQ(HH$_AlhJd)Gpn(XJTw*xFd}U|BJrIDa}HuK5r~ra_h;aju|pa% zn=C`#%xt04;_fRk7hJe{JRS+VoaERfQ@#zwNcGsF4VGLoI`U6hPjN$Pz8JUoVt%iz z#5~2IRkhev2da~8pFCUE(Rds|>>-QU9`Brub;nKijy-b)x7TWo#o;&!`g7%>-BJ6@ zK+WRefg8Hxq}f8d1P7IFs_5jMZ|;9E0BN&qqDkw)7(Juf3x@IadKT(x#-zv ztaECftE;Mq8oH`_o(D;-?&@w0tsXSCHA}6QY)LK2nmoku6gjcukij7%BqYQ!2?TBi zC&V!U91_Stavu+p5a2RhAlwHJlECHW5+HHwerxYj)m1&IC7a*-=Si~MI&EkT&Rg5C1w;Da@--!VREW3?pm6 zsjwbF-T;sKz@sD5a0<=F!qKRShy*~p6zB!Zks<+L%kqG)L6e0^0au3kBoP-==of_- zO2OYwLs0^ac%r2cuqK~ELU%9`%Q7VyjWife$jyfOdOH~WPM^a>VOpkEgoHC)32z9B z*Y^wgW(o}FeFk%3Yf4Ugc8*EU6yx2k5FX1jLoz&6~2G&6P-G@2drE|?UAX3QzG z3s5GhTMU_90a_Hdf%;eZ8O`Jav9mr5Z9jZ2x&I!W> z`;&g6?M*O+=)eYN6q8#*Vpd0Uql+|K6wg)VUE3*XB|gaS~zZ%Q^Cb71{>=F~6s$P#vr%5q6)0y;E-bw1a0QVFO)KnIpzb+YSN zI8p-=Fy%&R%E{Q=&>$>Z{?o@f}Lg2Sm#e$0isLCpX5p_~Y;BUk*w z$*a3i9@NZsekiv1zje!HV%o$skdA*J-@Xg%?rQzLOhZ9EL31yA#~L(b2MC%=>|M8{ zxwr~VEnk+U=edruugeWM@yy>Xf7e;|%d69H$Pk_feo#)s{i=8Kz!ut(P#qIO6jlVb zz!J)w7`NgcdKU_Yt$ok275AKH`)+X$1>LHj?JE1}b?!OI*;U+A8JZzBrqGO-clzEc zqqVetO1eyQjqR1s352j=D@rOQJY;wvn!EGZ zJZW*w6t)1+ZyAOCA*o?yI^dl8nwwkmo5CFQKC&y4b>!24`qBf&*t2ie2~WAcb;pIB!To#YeDX)sYsv9%xJ zIxV2McZ~&<2l)aDniUIJeg=xI37RW*s2y!A$!QF(rng>QPAoGgR^r`S&VfY{Yam zu%Gegp5>&(Zg3lxKU@>|K?&ooxrKbrrl+HE}R=2O9sKZRob$7AfFu(xKJE&^oQ&PoM*5X`eBL^>^VvX zEg`7;F=@i_2&;;I;}4wN`0Jw%#majfedr)yX`+*|vTf0V1!WrM757upu&S|;{)h5OtyM?zuha*5FcBaM%2 z>b~e7(>-u|@wfb6@@4q0AC@k@cx|weuGzflgVlz(BLTzVSZhNnq!5B3SXn$@pz1TU zG=VWl;f>16(BXo(@UZmSd(HsZInmh;d@Oea!pJ8(pWFKUFH9Fi8JX{5wrIj&&yUE$ zEeMOgUgi^szxt^pF1)D}AfYm|zRii78W)jFxA!8hXQCv$pF_X~JE#?pFY8bYM zrdl-!dZ2I^_(F>~OuwbNT`=iTz_7KrUEq7b+j3+gxBh3j%hSSqFh0bc; zA!nZ+cSIM0fGGuyncSwdv(6PV;?CG6pBh3D5Y#labYDst-tQ0X^vZ#tRWm=tOg|DS z^sV7wZ!%C{pP}X#o}VG`m35OAm1OZVwk#GkX)EQRpdn>N&|G9ctd?KpaY)G!G-qXN z#a0sIkn9#T=WT>d`Mbbm4LART{Uwl?4@f&+oNP;>&^$32g*Ux6*YKh_+~};j!fi`R zi+Dh~|Jb3C;jKe;90ITL{9>z=$Dt%Mx?9)G~_Dt;6eh=@?4GsgpL%^hT+<-Zg4af#|1y&U&)iw zZjy7k0K^>SA+SjrEjI%e=Fv;6!ER}$ue%|+pUb&?4zo_4IC6^&&>Si>$rVDcw_fg{ z5Ad7*l!YEvsEf8JUoo*@KTL#zYLgrB6U_rzli2NRamuJ4PfTiso}&up1NeNXV%xRkToFYgEr5*?agz~ij5&?X!8h~i|pNN z(9q@)G-uJzW4RVzntM*e6(Z4KPh6)>CGI`X_OCuZSBM17wNI4DL~wh}q!o##THMJ{i?7q-5pFdbw9@eTdX!W__d7y$R|4V5T7NEu_X7(d z3h0QzmxdqVu{9c;v1_#p*~^r?ic7NTQMPJ4TuhliV!nunK4|mM@#;A((-02{noI00 zYtRt#TF{(hy{piWAAds7a31Q$W|a}S`rqt7P^i0z8gtJS{ZyxHa@)9K=-y($MRtW&~ocX}zDb*IS_UD+@FU8uB0rntR#j_*$-@p=Ja` z1M8d9aEtw?q_v9pQyk|%s2KsjCj+DE2!Dps_?74>{tP@@yn6ie>ohwM_dK`anXa)1 z)_ErI9yKFa_8x@xUi&?WUui#x`6*>6teBq)nu~T8!wMP>i5Bn3Y3w;%3rZ~J(Ee@? zi57EM8h_;+5+u5Me44|x$EW!qNObi*G>7ZoLm~R=duR^Vy@xA)xCifio&Aa6v5L^Y z;6pl>1kG9Yf3HGAJVo$k`ff7RF&||N$ZYWV)JA2! zI~#+6#zM7q0eSI9m6Co5!0Sq@4L%gsXH6Ry{t>V4DnQTh{QOGkPaX%ssh8QMRdy6f z0JIO_JBr!|fX0?eYqbv$JC!suF>WbWro7vLTLq2s2%`9RNoS-7*jw#AkTs#kA7&0| zs0HZT>-%IE2bY9bUUzbI37KLzt4+q1qvgu6=G&Ceco-z zx{e*8X{Ddhl1O~}9Sj6MEe}M!ji#QbdY}^$%5kHE(2eqwAxh`m$b&5(uef8Kp_F-S zcc5m$TUxN!XF!83>EF#ofAW{SgG+6lOsjrumA z?^#%J@5n4U~_-T7uC;z7VKFI_;@EKrj-p+Mt8hi%3aSw5~VS(Cw@BMGT)qKXh07AykRde2RuBV)EXhlNXv=k4!Yn zwS9T#&cV*ve$|LYKCrm=ly1R@R$5ao>uV^ET>9uS1F$(#nCaKi!yQ@XfuPm3 zrs1x!-X0e#DC*gFkKaFmssH+>ra%B_I&Dd%0%Ly-%>SGG2wDJIjnrBs&$B;5F`FJ~ zO!{gu2$(4w83qm+U1m_RIs^xu@GR7V8kG&m>yDLOrD`>ySyHPK!NHXUepjfyqH=XT z;^PpWn!K>=juIIaz~&{I7pf`k&xvuOy}gpuJJvfov>8v|(OgK?2Llf74MRmDDysk> z3*|S{!VmP5ICLgWs#l1zNW@l z&)EyHQJ=@3(*K~bF})@0D!Nopn}dY|Un;cJ3~YXD^CoYN#(f8#Kp@c2&=EF#0e^b@ zjqiA~M~AP2$!9vd7Wxmg1&zgzsTN+d>E{1r|5ZMM>RP8>2qP9=!Uol%CJWFWC}_v{ zF^N3|^XN2Lh2%a2`~sijF>kC+AmA7M5+)&&O2+M!J#sK$ABYJ6my;>TYx05dIWE=S zC_O~N=M2`uckbEw)c)POYgNg&I{u%TV@q6pD{+J7;<#Zn$4Zh7W9fpC{`)2Q! zw_bbxMt75D0TP5V+%f3+s59c>s6K96I39`BY=E0MzM!D(h1159!_!PU(Ta50kRvf`>h1d4dPX&@g1 zdW#*;mmCBGAQ6e0m;?iW@jQ>1LKzf@c>MBPN{BrN_;>9)u{tMD96fwsUn`Hq!;Y(M z$(H8(wxjVIUsLuqu|^JSBPcy%;_QYN{@3l*^hfmdOYw&T;dj0HR=lywdY9UmmDjsW zL)N_DiF4?f&OJho`!g6n|hxw^aBlH0wNAaV2 z>?8;|J7(0%O>mjp>_CAb(>+l{Da^j!W+*68c}k| z!2Lq7oM@0B<7u2uwtWtePrvBg*(VMviV%JHMDm_X+cqK50F_c2DsvG~?bY(2-h2P# zA(V@Z%@k@k<+e{bAAC#i6CX=m8il1^k&CeS6Us$^3)EsY9mTJl4g{OkhD`I}(Z^oG zyp`(d?}p^LQgmhwTD_J&Bpdg2U~;<=-v}9$_lUds zp^mx3kUi{WhvLm8oG7QiDS6*$shocA=3q@NVnEBP>3dUDP2a5Zd3ibgK=cH!r_apa zp0Q#(8uHV=oIh5(sX?9tj@^@Mrh58M9&hU@)zhyDO~E@0sZm)@U(btj`X+j;qMm*@ znx=yKsQvKrZ`^;Xu&F7VOYZFI-WN>-!R1s{{{e7t8o^PrLEpl@#*2{1r6MFYm;X=D z?1R?&OU3jyU^iOOf*3e#&1hy$_4HjH#pSF+wMCaUy@Q!HyNh!9v}6YA>jQNNbfeQ* zDj1BaRi{PFiU$%zrTjIB;jx30k}BmZr=k4;tA3oM6XU}}TY9@XTAT9e z1{7q7MgTjC0GTY1XqcNdSRX+Nepp2b>qaG0^W^Ka5pNVI?Wx*AJy7?MUqOpaCmGKC zKK27bs3j0>B1aQkn&l00SZpFkIDr62cykHxw%yT@@s&4L;p);ZI#7^5FTiT@m7y4N zc`Emh*kRjAD=Wd?lpNn~vfI1(t%|Kx{0d*vlUykAC51cSQ_{2C9e|}){<*Z&n8w$# zAFXmdBd&uLE-9j9aM_(=v% zBZ`{g=x!RW)PcqBL3>5gE&eZCw|KJJ>rtj5kDs8q7hTPldsyfk`4{df6Ev4>3{ly3 zERRDvilDi;77h2NfkvVN1HdA2yY*4#-L%YG#GjKF7^oiqJiE5e z_;@$&O{>1=8oPRnd&rwsea{v4>+9cBu@=|aw^!KpVxGTSp2M^3>ub=^xsUJ0+?``0 z8c@9!G-rgyr{|+B_W9CQ!gcbviF;{YR$Xfz2@*6k53AB}kDH*m&+Zpg{S3r2ABO z5WQ49u!oMk0cb$oQCs67H%Bg)=aWoRpBa`1(m7PIf_fF{`RuKPE}zpn+gl+f)496P zSFrU1D`>3dTx?LJC7Hi`$p4z-{q7CQ>mZ6Fdg}8WNtP!38?BY4XZ{z@; zHw>$h+namSkxXMVPaB{#0mQ{|!Xv7QANsmW1-d9lmn+Nwv=8({okmUt1-rmt z`EuDQFkQwN$5}y|fE7pPs4vYNO`Y*ZC|Zqr`YJVp51S zVgU?Pc+houo?9p!MnVl_!s_#1xo+`Ed{7c`^>2%1amL)D_9JkAo$#nos~w4FGo zG|odTv7%_Z_%1pM#dn=!6V=}ZMi{)g$i9!#QKwKeBajbaCpI_1w|Cc2FSQB80Ykpw z7}gV(ubpGxIs;D*z-nCaPcHii(S5G#qY<+XHQ#$`?!dn7V{I+zcq(OZKP~Bgs0t3* zgN=$}cmuG(xI-?&WmGrqQY1tfQCf3&ZL!*X*(qI`+kB)rLWe{Zct*`;7BAB?hx1}!<1#k#>6$bQB;}$gOfDy)If86CW zVYtf7CnF5y3QjdY?sjxF)=%7(>W*gofF$r=hV1X(>qx{hjpEXX-g&C zQFOmzvA%ojNv>S8vFubPiXetv)g2Yimln@5?BecS6^n@KelODsDQB={{+@5)cd!=e z{UW*O{iV`UgV4BX%WxX5J)*)pgn9Pnze@j)qDd}kT)O7T57C%6C^1T=f+11*;E6*$|;I#3tO10P#GELIv_tJ8~gi4 z6k#PtsQ3WHD^7ZHkY@rK)8MPW3EEG&( zR4PeWE2@SCb9A{DjM6)aX&uSV*?I_D!|bW&$2g1_+<2j_ixH-tBUy znj>CS@wGa=a5XSKU4JcagC#osxvsp7OZH^J<0b(K3&A3qS<)OWUE_|nrGJ71Gh+7l zCZeIB!u|Vq@b>K+eQEP{UligTe1TabEA#uDrxx&jq#agzD^<|6b6km_xtFysr@6TZ znoe$I3Ytr-b2$wP*ZwQ(t)RKMk_M&m|CQ~nc%JK}?2IMc!p-l2W(O}zFTU$6v%8s= zX#RhGzb$^}Y;cl`hqU}X5*O;HviKjaCm}X|z>Q8Z)#s%jtXNhOE#K!xr=YneeSZZ_ z3`-X0MyH^;56vl-vso7U=Kp|*63?K>FT-Y}XCU@#FoF-3zZ|5^(LV620&46Npkg_DktIJdG24wUr_EzdBESLP6hCKqkcW2?AM!H zx`p z%Dz^iKxfbFWV+sKw=h8E9QtK9F^E0fsrPO^b@veOVsJ|OQ=mDwO33N&Y;UWLAnwd6 zTNv%?2&Ke9p=IqgN(vyA_k)D3m%+we)BmHLX^P!FUNN0SIFpyoUJf>EnU zQScqY0P!ILww^t6dT!5DXM1Z?yImv}2xKw**&>p)5P21SMw*%3t8 z$2{y9_Bj(i%{Od$)jD6a8=vVDs7jI2!ybnh)%mhKP~eEU8soCz`o`|l0W17B%R*;0 z1y`it)I5$n!r=(2sm4Y3bkLnsRIeVKvI1(}6D|VshFLPxMy#@vjz#N6 zWoVkzv;sW{`X#R+0)J4!>7De1FD5xX!syDB9AD}PD3nQnh~2VKbo5LLhD?YTDpY7)IkX-GdVJ@W%wG_Ie0q9bAOQMphh& zrngIf3-mJAlHa{#dHsZ)AC#j%5MG`^nTDElfEYw(mmZ-k2($tTnlJ(gVm)a6c^djMOw9G zl*@>)Lc(nyAct8aFHtU2&n2>K#8)lpFLFezA%} zn+BUwc@5$9;OZ=p7W~tjC(kKP26U6%0iOK997M#5TULf>$~@VRB+f(X|Sb_q1wLT^*0{Bbm5*eCyyUHykoStJJsIi#C)rLeN-wI=N}zgQ6qi3(>%bPkYl93eENg@Q zBxWOaq@gL3jK%LtcMm3NkUR&!n!Df)I6ShU_?wT``!`3<22){&*4;2YG-hnwsXEYI z2(B`GdKjPXX|&RfE^{{W^uByw2(eoi8t~10AZ{cM?8u}&9#QYl?Tr|2uO}SI)W2?5 zesjSxhIU{eD6um9BFlxJI zsBslXquZYxDY_5r8>N(*?&EEw``JrYS`CAGRNQhg283U;v<{%B&P_|JkY{(LtBt|)Lsksbq=K@$Zt*Cl}b>l zluy7T7*IgDuoc_0KsBn;!t4QA3And{NF-ICkdE)3-abAya=bOw#7kadyFxpK3Iq|? z(+x-V(*ArU91(_1#5%icDvY5z(q3i#Hu)kjG+bdcq>3%0*krfO9BQa8d+a1C5#9Vc z%mG@fyD{J1j#Pu9%SWcS)*zZf4gfLRl@TRMjUc_ofH`RxVz%uart2jX(F!7z7{}(k zTRL<2;P&yJE@0zeaG9$ZT)=$L5wt?+-EyBTlcls)aD-CT!@7Yg6BG_i?60zvTYKx3 zgd|@eY+^aMd9Y&Yy@Ajkf0#A&?ldc8**cq$i$oHb<<+X$=dGVO*vYk+Q}QC$RDKthno>37JM;DznJ)gbQ@W7*k3!_@3W`5@Afxg++&dH`jhn)|+x#tZZ z-}mIMx$zyxIzDh^_mxfC@85p)U3g6bdinsOQ{Fq#(ilDidePRt7 z5<-IJ68qFGX)dlsL%ij`$ zF76>96z0ABi~#r8&q#Ay1=1+dke}72p}DN0fxQOal>O-Zkwx+P-+Unp1E1V&WCa3} zuQc(zY&K7l11-hiXyg7j0=x<-xek%2BTFWGzG5VV|EWoVUBsJmE9^0e95s;WI}w^? z^PCWxi#(6>teTFjLT_VZV|Qa$A&TB0Io=us3MOq<(&q^xPC4M@tb_F@LPPk7V`P_h zGW+rX-^BOOj!tL%rJ6=2?;4_J%X^#s>m%c|t@#!&bqA4o;Ul)FE#K>yPf|EgD%IXo zRddeQPcP#+u50zNUg^#hQwB$2cTD1r6F)Fk_ks5mcjQA&Q-JW%EV_C3%V0p#&C8j48gC569S(D~D{OFdX7=jZKaH zO*j&gEm`o^a%dNYBssQAFdVEA5E)tMPfO8(mX4NF`H#J;#BcDo6mI?&X7&lRN7w=f<>_Lq0hYr=v9G-~hJwS$ z+lTVl)W{o!(3VEMec9ewWO0}G@~R(j#JXo_XlQb1*I<8rEiz%yC8V^=^0e8=LCFng z!m){6$K7ZVzT*rjihq$>Db7v_(?YlL-vFn7C&zc+ww{QBPTvVrb6Kj_+n##h(V;<~ zj!q$ZSdF9?f4wQ^>B`n*YuX2J&@$~nYur$KHo4Mug+cbm=LcwG*5^%MSavA}it~8& zWUQOc;`XG6T8228;VBF(zPMwo{_xhO(bfWv<;9mjaAkg5yU%g*qJMLL1LtF!N!qtv z_P%{R=i?RU8sAsqTv&5oQ3Da$4-z#H!QQjag|!=q{BPx_u|N6{YTqaQcY#>)?yyiX z2$g{x-3Uu5Nao>J%%v-~<0b1tvL;gFxdnzAz`hka7*c(O80XoHq>(+=y}#dGcWs-1SMw~z)#25r?v2(R zs?gimAD5w%l&L7xxck@t5NuAI*H8A!mXg*|Ie*mohoMy1`w zDKIzN+Fy$rTWSFl*32gi^_r_&f2=YUZEbC%ZN=X1d?R|F1lO1cyZy%ga5 z@G5|7dBGKcr5z5Lw5B$0vQou?V!GruAUbT{RfvuhUD>qRRX_{fyh#YG%AOwSWj#Ph z*i+sKkA$MaIwW{l(TS1BL?X~54#&Pe_6-ebxsI)9?}4yo-}u5AU>7HP6y4|Y*PwPZ zPx0NK+|o2My}Ku~J;Ka*>vT?O){C%sh;;w7L-5`qsu;3xFGjRJFv=RwF9)n-NX2-|3%7q!HLIRI=~ z>lt(a!OEl3OT#XG6OenV&-GigEGc|`nLtY*;&NK3g5+QhlR4hjie}BJmUOp^I( zp>qiMQm#L4;pb4bqvbBSG8L6d+piYA1QL(V8zM6erf{ty%OW`53zd#^K* zS7R4v<+eo|Y`w~RACx}MuhX;5a(z(Tdmo#v{$4CZBWh&62@-HfYA?3nSb|j#@E<&* zq|kE|tvXNYKh7kak3-UyY@uaDM?DBsODFdSXDH|oV4?`AQMQVKf0ea(x+EAaiVQds zWxukmM>91w1e6z|?#>+%ZEH(MXXEDa%d@+7V(Z9J#Nl;$bJNh~?n1nIr0d$W8ACH} z!_k2KcTusC0Xpqm*Md>pldDqv0=qU==D^eQ1X6S5*V)Z4|%EC^kwB2^efT!8e zZosh%y+BeHAVtA!RJEIX{V>O9xHeB!K$=bL{J!!H2umm`GN>sEd#n54;s@PD>B7n5 zhY#+a9v$YHyG{;pzJvZ6ceJW6#WvDiL-QosZ+r38Tej6mHd={0WRRuBzqowyIfJzF z#pet{8x!^q8T5_VbhL5AbpWa!#R7m?yy&T6!5J|pO&51vkM#9s(^>9;RI%HH>dvrG3CE+OY4FV9%u_28WtY9yJpQ&CpQTG2&Ewp~kjkQ(dHX zve?p{jHDBdp^;E@@n;b zy?`#$+~-01ahM;IY>t|De1omWL zcxzW@M_X$%#21o7(++5BNb|@Tt289xS?)c^?S%nFHP3~{mPerv6s+X^45*#SH>-P$ z$fl{g&FP}6&YO$$o->Q~wMR1kCksmEqW-sKfx~WMzC-H{k98e5RkK$TQOpqt3;c;KoKEy~kRYaUD&D)L8DSxlVbbk-n*r!xnE0uuf0 zOQ3*YN2tGEMcEsNWr%hg7>=+3dJ9}>C>B9D0!6JK14^JU!9q}N0$Q!W3HZ&5sl6b* zvxqbuRlDoJeoW{ECb=o>Lq>a>he0)AZs~>-YzeF|l$i_UHbavJ-uH2i>gMsImFqUQ zLCyG^5y1iV;-9y(9$23e+#a43 ztVPw*umPG^3ZN%T>B+H;EzeQZXf!>cf$C*S0f*r?DUjZGxs;{ME;MgsrCRJZ9kF=j zf~U(UZgFlp$v4ELhyR8E}Q0J8)>x#h2agoxI5g zZ@-0aDV6EzMk%MLpvd9NoJGfmq*J{{GUWG zU|5vN1C<_KJ0fHoLX7agNCQDGr;Y9apYYfvm(x_b69*%)M_(Q?=vVi(;1rXsnq76U zsxie7&~?r3MiSK6QVb=FZGZu`83}KP5f8SSF3nIQ-EF>!*WVR75jR7@(QY7~k)-4g z#|Mm9#*+@09uGB+M44{CA1feclx%=K zwhiz|wSHfwp;(@vxtD!x4H{Av1WiQiH|m-0AEG#6K)>E$cD^gP$uH^g^U`0>Rv zf4BTyXW185r%_G_8Yz#M7ihTs`3R3^t=7DQk4p_d=p8EVp?6uU;fJ{A*ou43qg&+q z_fV{@`g^XjUs~s$lbrL#JrrX(&UcEK3yQIbd8hBCctxdsEuJx5rn$z>Rny?$2911N z{ypim^hhxP$DX!pTce^&NuQSlfbDibEJD*YNxuQ#DY|7DXwQsu8qST=WQ*BIo!n|f z*n9YxXw}mQiBL*<(LaCk5Y&UQVtdY?YDR?}v^*3ibVg`9Aztyea@(Zua66LQo?JYL zoyo^38fH?$*RowTu#r6(jW>D&UWXNO$lu@rvv(a?zN>C`bLzF}7B}FUVuxTAi2F~h zvl~zHmEtsznH8LX>%*j#sk{mbe* zkb74IXWq9;VQ|5{6m1hUv;(TRmviPU`w?XRMd=0M{0bcy9m>?gH+X6;ghc&&P}P(? z3@a}q$^b6|`O9h{^h@1EPGjAP6{`xEQlu?aBH|w-8b{bo#Mmkb$uSAgjC9Ycq&(Tp zyKrv*%+%!O!S-AY>fYOhK`YW-P_m650e8yF;Ns;+OF6ZM{ara5#+~gKhsB22n!^T5 zM~&TyWUew9#uGqcK^z&k%iM$$tT=hftx3en|5JJ8FSClEC{NxS>Hq5)YX93tfaZUFp8zaa(sx5&JR9!_wcqY$Me1_F!WH-3ml zkj;P@Hpm6wh3ghSWd2ZQ?mDf@aBC6Wg?=G$Jas50yttan(dyGfE?jV!Mpmy$$f&rF z++nqWQk0dD=^5}Ez0M%@g0*y(n{_`I>Ih6a0e^IA&;g*Ho4vJfYOmj#wKSvNAGjJX zZr6>b1iTISg)HbUZ}=CR!ym1ILlwycaG?A^p1~X6C-oP5b|+*eo!v@l(@0H*j?I)C zxKhd|5RHe?YV_psnO$8Skq}3l(`?Y6@{HiMp|wOX8~BU<#{YYIsNu)}S9$n#emU9? zEG*3w{Q*sRq70+opoxO|%ZJY6AGkn&DP~CoI+y|}6>kLFR77aSH1`?Hx8p{ay zb=gz~Q6ep-7y&a7Rnc?$Vnc6BzV1nPOhJJxS+(4X~Zj%4Eza!r0oMcL#0hLL7{;Hi$e7w=xi@j3FP0s z(!Cci?Akdzgm6e#OM#Go|Vd6bR=9T;-*JT!}14R;2BjLL3YgivX*KoO0Cmq^IC-fIL)}B zI%J3CI6e?HtensCH59zy7*p2ZQE}e4Th#*|huP{5n~D3p5qL;YpCAwncJ$YT6=!!? zbz{G43Y@H4g6^VAN9j?m&+R`Pjts?I5rC&;eSP=YY8vxKe*R0rHGB5mLoNugb~xLWY~_f z2y?>$<8f>{jNzhzld z?a3My&Rys?t|U^LI@@cIo6D2O=ySk92rN%=Qod)g*rzQMbzVi2-v;uwTxF&@dz*UMB9^Z(KL#|(H2K81Nkt?#6`6y{H9GjfI|Sq zElSd!Z(^ffMn0g9y-SvFKIfHja|B}C*B$Z|h6A}spxYPr^|vQHXe9!dC8X-au|sj) z*Wh!j==EiJ8Y6M%W?yGO3Fslm%mZfzNzY@Jp~dQs-}sp@v=Obt6Pt+yhmS>j3Nh&O zvddAEAaj~q8yQFTIU{O4`8^>86|kY0a+2S#wb^iG!%IO! zY$#|}Yi22E2ox`9&at8D<>lXXk}of(;cU1Wb|%?gb0}FcC7qy<$e}%hP;M1Dgoj1K zARU7e%8t;80FbnKRN`f5hRrQl~_JLx|4-Fn`~v1nYLpC zs&-wotI$7^GnCO72Lv1>Rr(`k%rqi`k?VecWErH?3F+K|?DlXfCoB*PtQ6 zB52N*PVGuh#NtbQDx2tK;*wJzGKh#C} zJJNZi3;u)jGE1;gJ;O`vk7lJ_Yz-t;vWPT`*l`d)BYRx3@KXl2%2EJ7e@!}xpHwNp zdRY(4VmpPTFg~4TNRh!$Oqznz89gS;<9S|%@sMF!9?$(MjE5Y<@_4uVe34b&7b%J5 z@m~4!m4|x8k4AZqu-rX3;fh#JENSpY4GSRh8n_;3K_|1&_U}T>=Q2?x4u!f^Y2NE` zQ$9DWbKtEJj5!ra$e~a^M6m?wPBL0G4)VNj+`&LpqHVwA_XItq2U=$!{yZ8zPsM|J z=Dp10S^0?6-Sp6kkzLGG!>SpsdRBU6onE=}3+#()4NryuhIa?ul@GrD@HCyOczk9`Q{X*jkkW`h2?=0xya%l{f3XSIxU(?#hY@%yXzO^VJ4>u23)4xMD9_`E1B zLXI<51B#dVe?OG|7byP$|NXu6XVRZYe=L0mXVW(!^S>;8TKXhVTfZWGQ2K!MB$9z8 zoCOjps-C5EG{g;eqUvNf;Bu`}3;tg(B_)RxYsqqpi8}1@q9;Oeh4qQw;!nMtM~RDp zJdXmC;|Inj0TQTwg@DG9-m5R!U->*tSBmS1PkF=-fZ<$k--y9gW%`T%rY|df$&xt> zbr||ES#tP8b{!ecElL`Wrcx_NU{5lcES|VS21*fLYf`rn^(Td!4h4kCdK}{x4DkM*6jgl*p+GmxL_I}@_NPeE zR?wJJ4(XOU=JTtjuKO&##;6VCWB3eR1QnMNf*68ZpAJL>uhjhEAV zKhfGcIN03UPks;flb=sCQ$JzN5kS>x*&(C60dx46WwGNvLp8hh)~V=7jZG%rGVxdGNde5Q53(>^R{CKiC>p465bp#((cYCcn zI%+l5IU*wwwPwHqkah90s=M65I+u=F!Xvt!6R4|7m_C)%G5JsAKR~asXRs~5BR7eP zCw_~$%mHTT-}>ekUQ*p&4)LwN=Ho7TN|hOwOv`1N=xBtfvRA(zU@kIkbeDWVGW>9j zGWg&YP*oAf1dQCK86Wd{-KRZ4oIqK3DUW8Pauj%7Z`}Sc6d!m+!{qtXkZv%(!KdL$ zie)+G0dmY#zL*$_Z^)d$1S~)l;#6L1#NysH2a~)`pU=B&@>d;G z^7-u9$3t={U+ntTPrdW)v$Mbd)vtWwKR)}+?AxAr-J=g*yK?%} z@goQJ?bwFar^8*H(MSk3DdZJo&H!A?x^TF2M=}H)L^4U`E?YE5Nzg$mk?#OzXxYV> zgRqp-UX9C0@;$;C!S5ys$%SE_LWJC?nucUbl~6u(E6gNmAPqH~n#bg&w? zGekQkps5kmY3zX`8`pI-J60j)%z$Qex66ni_%t{U6(z=gf2+@-dUOWAv$HE0Z_eeK z8+tbN?kO}4#(~37JgTN?efjxp&Wseg8}Hw__^cLg#zpk_ggA2|0s*%HDmG{&&Ym3# zCEx3Vsf|5r`J&+?Dfg56jy4xJYbd|!S^VNJ>1de_Ifxj7(UWwIw>h+apD!HsM%v@n zj>g(eQN`sL2>CZVsO+;N7u98=ZIp89l1vjXYi&ZDFMjOj8gwYd--F$)RHwKMD=MNJDxn~M;U4($HA z5L&7M%|Q}VWso^;*lL?^{s+2@e@S{RRDf?QUlqA_nGCeHVK=J8?m@L1{lg#n;2A}8 zyT1CB7nNX0oBj^HGMFM`s9dfzP3-2JANO)2Sm1;ww;Hhv_4hHi< zlA~mM3`sth+vRiLs2oJv_!wkhjN@b=DDRD1jYTK%+K)p^Fu8oFNI>?xLvDX)*#k;$ zKfU4lBhoS*C_U8rBZ)M^(oErOt$xt(DVP@7nJ6pG9j)oB`>-VZ|5F~ehyVjB^~l#Z zHWR$^Sk)?3zr3yO7YCmI#KRAN^LM}e(kH(C{I?$d_`@Ij#b5Zq&p!Rs6E_~Zdf}eA z6UPr7oCT(8`}ioT6r$u+OLHn&6O7SOKouhBKZ0iD^8%nj(v@qaT+o)F+8K%}W=Kp! zJ%yqgg2Nf{p5CgrMv}*ok zLgg1=Eu&uP>4t}suBAcG!6#_dU9C9NBUbCp6rd`Ctzk3coW?<&4F{T?NpB>bglY_F zW+K?+97tM0kKv3J5Gi7a23rk!psvB=M^SSWeQ~HpU9P@UGa>kNB|JOVK+zdzNNb4h z&Tg*L*bV5F7W%dM)Af+}G%EjfZj%#j6`*Q65#(wPJ=_ym{B$^4)@I+E3=O@OrMWIU zH0>BY^_)BPUm&z~kL!G}Aznx&J14yngrxLRs0Q=n#=0Zv zILFr+h-PrtdIJ!yyL><4y379%PZeT#CdkupI3K1bqe*^Mo{Z-IReZAIb|BwOUAw;Q zWqq>O2S-GN*%Oa&>w0e}^yY!je_oP4|JR@Y?|=E{-}-~!|J^VD`ir0X<&XUQ2Y&9o z?|IkT-ty)rUw`8@58QX{>g5Xyr;Z)okFBt^qXk8~ATn)t2Kh30BsdD$Mxv0zPE+Q+f4TVGl>hiOVS(CG>y_gy^x*JNKX%*P&^+5Hv~4h9{zF2 z1;GPxsk=Q0nNJ1C~i}0GtrV298GfS-K~BNc(k9pm%ek*=g!7yaI3uD<|uI4l1huN8|O-uu=PG=q0dpd!j4@QKMd&5U!0BXL1-=u0NtCF-GtfQNbj6%x=nmbu4obAdT$7N_ zgJOb72lniqnb^5wbSp9sY7?=j$AyVH=Y+^tN%JK38Gw5uznl+qm3+!oXzr@8`Owa? zgW%;^c406*GVj2ENM9h2G5jI;7u+5hcGFMFAH?gm_f@djE(l!CeE7`ft(mUG8Yuj5I(US+F0$5x)1ZwcM4dXjnV@KTykIg;LxuM{Kvz$wub$zToW@qZ* zMq*63cHsd&ML-Vbf%2HzmmD6Bp<1Gj^k8bpMNIS~<%?jV``KR!b_w5gK$grnJi(_1 zGKvc=aV{`pSE3kM?K+zR=MYcixuX%#O<7wY0F60Er@9Ht*yS>KBoXxyvZz2P5OghT zkyGhB0Et~LJFwNv9f71=^)0`J=PzeC6301*Mx7bnE^Fn@q)_!#+ziK_O^ORw1`54fbz9=ssy@m#!_3 zSJ@IgJC(Ii!~+mNFuMHq*TT-0QKr0aM{UFFk2ylS*`DOq%XT8_T7q}2{XsBUpKgTu z_c#4aHg|6*U}ZF>nJ7A80yCok^eSoC8vm>XI5f>l#J zXw^VcFldjz>X39g?78D1k)D#BDUTaQSjm1;vb*klSP!6hOXG%t2DOJJt!v#0z$pdM zCQe)%XGtWNzj(14XXI}cuZ~ofnp8fQ*pZ=wfzT-ph`1zlG z?@zz|jZePeiAP`a-~;#HcX8qTJ@dzo93CrTPY&fWkx;-_LkBv}b28q_mRf%glthX< zBTh@v56Gl6X`muJ%;U}cVm^n1I!hj@6~c}igF^j;pu+%Yd{#R3N!dj3SbPUpcM;lH zQg`t_4fs90tgh+FLe8)(_11sU0 z!(n*zdL%~mCs8+4G{dKOPaL#w8Z~BdBv+jiVOjoH`!wR9hJJ!l|StgVc z2;YFSp;B93(uiGOyMFn}zPTs%kG=I2dr@~6YLgBYcRMvmGRObu%A~qCH>6tO%0~P` zz7O%z{n8WCho!H}LsQRF+pL-vc*Qj4P#$`XtT|r#$S=SZrcQr}xp!f+QCN})5a3;% zfaC@dKn1!2>K?Qqn*$DK0cRGRylhOpx2)d+~o%USshOM%wmTfYS#0jZ0Sz143*qZGHTJ%CGdI$hWKT)Hrq%f^8kD5kU= zP|ZB|+*7ZA?(5I}&WoRU{uf{W;io?I#KYIG&d(h?x_{r`Kx;aX^dX-NB4Cw>DB=9E zyMY`*xp~+M8xF8GP|4+0+~HkOgFC|`2ARca(vl40R&i6Q51AqGxc7HaxU?T09{71k zwvhy*g7{GAAjL9r+Zw@81rZ7!4TX$hvTH+u)y0^D9OIf_^A_SRIL6^I!p3Ij9wjF= zxy8Fr=nw5+#dV^ki{A#+Bel=h&@|F)xKk%0F|Q@SARmDHeCLb5vN8gSEF_acpemYC zI<(vdqNt|6yR`$P+)d734XoB<-iXPLem5$2ODpY%8hAZ%m(aYx@Ap++=9f-;$mo~}M-Rli%=_HW@xo;&x+!o8!Bxu_-#i5tKG;8H5)Sd1({s_QIV#TGncEMS;9gNE~h z5Ps_oPxAcO1}A%s;q7U6%%kAvYHvW^o8!0s3Xi3D9+y1yB_1%I{R#`>71sZb;^~bJ zA9NxPe|>}Bf|$L{?pTVFDmvOH{k8NL(if$dfW$fg5G4U9e}K+BebK#)w<0U>ap@7@Dy~YG0iv8kKb^zSQua{`Xh12` zz|JS77@(A|`muuqqdUazP!!`;JFsLNYZXYa!fD5fd*fl1Mc?FKrjVf$$?l3ag-55IIuZjNR~!WWbQBI-$I?Y;idK~a?0>VR}Bj9ujAW>?ShqICn z2l#ohI}FE-TT)ZH-bScV;ZB^x#b%t*aDv!lGdzikGnkB(}+8|F+PeZu6hU8 zUCEVO@eXuXu@e{J|7FGvyn}8y9_O#2m%mCVy%k@?MNhGo3L^L4(?36VVs`%yU^})B zVX9kF_1UP4x`7Da-C76>S;N*Ud*3*;0}ZdUxT!)7rNAc4PrWY+phq-HAU__Tfo+N{ z3;J!q1iQ7Ek<2GzUKhN_!u9qBRP?l+Z^rQGms=VhK7`7As%ohrEsz~?J3JIvVC?uT z>X`y%>{4B|gR$E4JGhfBclRTHB(zZ~zt=4J+me;;HYDup$~%3-%yIc{H|6iUG>_4I zR{qqCHyTG(PNflf)dX@VYh_=OHUq2vCXL}75vc@<@8O_XZzG3|m2#+N*gG-dcA zGc$hX^Lb8tp;3FXo)Y_RTRD^}IUm36u{?PES3XvrKNmR!cT_%?>c$}@IZF?wI@#kJ zc}p=G=`2&X7)?So7_^sUEWp;EI58yYDRA}GR2zy^4z zu*m`Zy)7i~hP8n_DpbI7=FYBu8wXs`3Wtggz{9msec^4pJkbIem4SmRGd?Q zn*hnYy4#X!$4vjoB*3mjP-P*Q! z@p)1XxR#1k4rnaPK{}qBi`ohKYtmmzer&wchYzx<0IdG5m>`nmVNH~dw8%;id5?_QQCqhctSp!E7%Yty^c#wWja!@yJvXSJF zQd|a=q2wbn#v0JV+5u>ap17l>{;ca#4&WYms@cAlzLU8y!cv+XacA26sLJ`DEfD}aGuRs*pKXqg2MjCj@Bm~3dts=tGkB&ePLVCj+TDq^ zrgRo*$Uu6#RgdbO$hm6*rZ?ATQfN%~APAR_G&fkDq=6#Jka|wl>}qZsGn_Cl3^n;+ zHoU!g@pW%>TA>|2jw6G)XR&wqGM?s1_{jaHukF&#luN;rYjP-SvZDvj`M2$Ova<=z z*d1Z*(dXLZy?xYhwq|ozOf#H72|;M#h20+IHD|VPo2zahk!&f3>rk1AOe=-Cd}bsb z4Eeo4Cx8^#b|)a@55kj+f8ln;rFva`Ch;KeGqT+x{J9dyh0G?Urs7 z&87@M8K`@L`jZsY&sa?7hU$V0JwTa9gI`6-pk(4JXDD` zRQ)a1j*s{DO49i5@tIvad&hc5hc@H8dmf&cY;+;gg62?Eff6~f1Qn^~OdL_1F@X^5 zMFz28Os#uB=f@c_509$`DvmYz?*e$*#pA2-1rV>CE!cf&2D+WbW9d*2Nc_YLkVIL^2E4f9B@P z^84k#linwtF3t@icU3tESl&-Red!GB0A<>ub`2h2Zza^`=Fkhf2tOsn$kcqLX~vIQ zpj?ZAD0rXr-uJxw#-k5hJ#qZlk=gzG_NJOzdb*lg8uI~c|HuHP8Rx0QHqV{wp-Don z2L-0Mj*n2c!Sw)aF?3p?qn#*V|1YPo3Fx*GSX1EFLg$kzLb=Q)o64O z?V-sJc}(W?p}>wDiB9KQhZBITsfc%~ZnG{@6F;;MA2H_g>}<+*Crh6p_u1#oI70%Y z=`0Wlb`vw5fwrg;Kr9&pA8W3mZDxPqZ*_W{fzV# z0e3nPe>QU2?Q(z*o8e&n>*af(d8iC5hSt3B0 zbm(Q5(Lq`XI`CPRH|ZwYwaFkxL5Bwh8P28}{B%Y-ee(F88EOhK2**=>T?oBzB76&j zO~4|hGayY&iHZRDZ(tz57M}=a;zi;G2j>9g6}%haXbdXo3Em~+hM_K0Z9uht?1N##FG`1N)s&BqQj&#XI9+N^Z4XX)BiZYo(Cj9dnQz5TO(= z9hIiAaAcPwmfRgi>Anp6wTui=wYjIQY1Pdr_MF&_ z@Ou+F)IB$y^PMk$|1X=7Mkm7)kDvVI30JST-+S#&+dS3lyV%YZB2SDDmrOxN^=eEx zcI+?OXnIu0i_TDpAcp`zB>dmPF9WIKgF-J*(|w2M^mqNxo#=5h1QCCH>p~0W2+PBx ztwV>M>mR0UuInCF*x6*At{skSxOi}w?9H{q8}Chr*NPbZu zEEDS21s8~39B17{B}f)BQV9wgL;{n9UZ%xPaX8(%u<0bkc&~d7y(va-}mr>(PDjA|=1$zfHHD1a@Uk9#8 zIbBrQu$D;+$=Oc|Tgs*6u%N1H*oaL`MfL84lQPwp{<+;8O+_iGBW^TCOSppY;cYQZ z10R43U$LG*;WB4Dj9>8q-R>m6o_DrLXcsWSm}Tz`^#^Svua z(3xPlJ3TpcXn?yqC<|B;%hy}|B{(y|lBsna{tuS4(_hjo_!h-duAwQ0(K-zw$8cki zDM+b1Oau0mdb!NM0NV!UJa`!9>EQOMjZ2JAuuMX*gx=V6V&`3K3HwCy^8+H;y_EAM zG?y5QQAbH=?wE0bcS9#oRHUPzQ!TfJ`IM2WY*?(l6YKPF zhS38Pz;3KKvSrwl5}A;R#y4&fSUpsZvUKHtihqn%d=K}3^pfWfVgVE2E;}c%ocB{D z?i4IH8CC~zrZQHI12n930kV@*R;k|>fKLST1-#&uag*!Q zQ(l<%U~NM@vkWxACb8U6a@cjp81WFl$^%LWJPOHQ_y#5fLH@@`7bju?EYM6Tqv+P9 zHR{;NLT*Z54<4Tf6p^f^P$^CJAN!Li#J_ZL6uo7@0PH<)Nw#C-iLerGTTxjJ$=>vZ z(NGkl#EN)+Pyo!{-JzL z1GM>GH6lu3J|t#KF<;m^S60p7_jCon>!O<0UDbff!n@xMEF}^_{Q8BEulL;zE!Lo| zIlz$rZQ*Y?6ZI%4ETYt`$ex|Z7MO=y%%#WMJnG#cHVVv z03LwCn#UeJaqJMf5NuywTAZ0~4QJDMIiq61XU~BFkSrjlyHG>ejXW5zZKjq4^{VCF zu=JbADxjcsvSJj359ykq9b~annGMrLP=H)7^QQ}Q)nvX|KTD!RWTJzAaNGJa57vGI z9R)OFf@Fw}iqGuWqKTG>eSt7H{$NG%C;L|6OfxfD94lmp{^3Wh5YoqeUA>rTS^JKZ zU=(j$=XC<$W2u~L37{lKIu4^GmRJd?ufXxObMNv!mR)RmfX{MUrV}PB3L6+W>VLvL z$Uhc{h4^j^KTezYF50>rL32Z&cHK}0D1#-ny zQ9MTMfm{tWP?;#ot7x4z5JV)iUVdzyY3uZ?!$`~os+UN#c%AFRCEUM!a0;^`NXP4q zkr9VTu{&C>^6`m*99dP)4m3D4mOdTy?eV#=*zjKm#T>4g>-7mqC-TbLgTCloz73?Qr; zf^`rBDwGAdJIHYdy#Wk^{3p|dUp@YIX$^)Rm`H)f=vYgy3;! zvI^6}NKa(nNPhw85$*MV2!13QtYAck5HX1c*E&@YA%Ys&tny!;zrVcYLqJi3X<*42 z*+Aa=hIjHb)hzeU zMe*rtz#0KY0+;S>ZQ;cl!6ivY{P-EUt9(cp{cTMhWmbe$PE9 z+V!qC%-?)lpJ!{I!aafLdhX6McN{x>=s<7FnVre%RU*^*{$gl3}0J>x5L z@^HZ}w%euBt`b?aQdH0CnyH7qyHTIQmnvg&d!?M0_CC>@oAnp=WYL+iP&~c3kXA4V zx<3qoT-8WKqiVFNr|f20ZalN==nKa}p<& zz7xk!e)z27G@gH3)oWLpta9X2huKn9w8V(={69ZX zz1W;QuJ{wH`5HA3_6kPaN$$U=d2IV5W7C=g=Quhqs+K)cJe=$_Go8+<*~x>UrWwLu zEsshws-fY~i0@M%(=YYhBO}-k=rp@)2nZC|hrxvB;r*pvFqbJs$)lad)GCjK+I@*w zDs8Zv4vVv41gw42VRW@#c5pxNd60k%QBU`!z&?(%<+%IYZO67Q0bn+-s;S`#7IE*= z*1%7w*b4IQuqp5lJA?RWJcb=rXVM$16^}Urvk4KL$1+kde-LXYM<6xI!UDsJq-9f- zZcTjvy1tM}Bv7nb(Bekex2i3zj=t6D>QFp}NO)KY2{G7a=;s5D1=Z87q8TvR%=lZ% zjUb3ZG%pL5D`uK3IK6OIL|Yvx$ybuPtOJ1t8W#L7qGceo-f<9RM?6kEF!i+8zIVAE zLs$maP~RIag@(0ATP#F#-MKLpU4mBj%`1iM1Ba4^WTGnwG$E18aT2V+-{O+o4(>3w zv$w6nqqK5A2Rt^ct-|ytwtvw15Hrie55&B9J9nnQwss!gd1(LM)Q;5l4p8oJkwn&@ z3@MsoVq9!uyO`L(G75w{40Tl7k{geW!WYOm;zKmyd4Z`^pnKwGU{_?ZeK48Kq)k1N z%(h03zph+{&(nJF#Nu{8Nv;C89~JaDK^)OYlna1H1S}d-jBM9-;-k@Q+Updex@~tR z+N~cs@$^tTj_Ru|TXyX{b9UdMGrd-QXgXGmD~?v%Qs~I-5hnt+6W5c;N;4b1eRX2O zjd)(>uXCAPY-=Qmy)c5k@LLFTY~$V+#0p#=HypRXoo28Fz=6`e%^yiDR!HeNB`8Q_ zbX~@EK(DCHLL{FO+~sp{g#@-tuYJ8ikP(A12f)+h)xr3c9#YrvFpK3}$sb8+aC=SE zF~8*Sn(lfu&-JNk3NnLWSQlqcJW7h5|$@*}N)G%BZ6H)+&{%t6thq(FP4AbYy-MSxd$5gZ- z#7M#M?n1N`spb`lf^&yBw2s=dePMoXs!@voX^MgEG8GbfI$o32b%U}LXi=av`iFOC z9wFMZBp2x)cmWtKSS@RBjcLO0I;KG>7Yw-C-d0I8XA|bOp?W7D9tCGZGzi=lRnmED z>#pR;?s_gGgd$G^Sr+}qv%Yn{;~6~gXWau?{l~`9wTCxV#}<|M1E2fYRH868X4_gt z1Rq8I3RW|jw;H+DuKMuKVbRNdT$8asB>}D9E=7qw;}7Pic;!#{-$iQa>$!gyIAEL( z68xHA^$i=uM|2li`-B81nLvYPkVTFH+HlsOMYJdZwt`jYVG4tO&}{~4MI_pQk_^_$ zp*RBHZZ;l8BUcaQ2pUK`zu^|*AXbfjeD~bBf7gy}y`|adYNb^0Vic?PXiXTWz-kSY zT1tlQH&G)4tW0!CRziPC!2qzD@cj{1@ct8oob+u?~Ec>7X z^d?mIDd~esSVv|$$}l|F-{nNdhb$qS^J-{!UY8-q5OkoZbb2BN;)a?NNx#_)IdXJCL8}X0Mm(IfDj~hxZ5QQE9X;4= zNW3hv41P!WPbgY@od5B_H4{D$;qmxm@Y?U$C5syIp};K@qXUnj=>2gth+)S-7C1&e zjq9F7*$US`Y4EX5*U|^qg0O|EO&*vurPN@PBksj%Fuy?vLoEF$08L}j0zAFO3EE|y zHW6%b4#gVS|AKMNaC*R(xgtGk{noEY^+IdIvH5h|AFD&A1sJbDyjC& zo8!fN=Ap(0z*+F&00x%AqO~$dd&NhB0BseN29iUwK1GmMDr7x48fc$CNv=}UOpTOX zB{5X1qXU2yNm%LXe0A80SPpW|wHU+>K)tdCY3~sEau~@EVE6I3_|pF{jgXdA=Y}Ss zX;40%nD>`64JVobK!ai?#}ZC%0jWWtP~_@aVcYR4k#g(sWG|c!Lya*UtNHq0@z8>j zxI7Phean`ek5mlcee(%AE8LoDPrOBsLZ|IiPuC|RxukCD zR0b562a$OaEQ~aKszPfavj>tAj0$oCwVXPB(S?f~e5D3&+)J@U=`P0S$_&*ik8|1^ z&H>AO>Sa#qb*>sum&1j1Nxis!DsabF@Ce2^cH^TU1vonJ;3yMYtsObis`|BQivkuk z=>E_bh!Ea8Dv%#*YmJqRM8V#@Q%M6G0ebq=@4%bqoHJ??PbuNw% z4|Ck`^zan)*CsbquMX98WI;kKk-%X#0y*_**Vd*+1oG%9H1#;blz#ZD0v&_)?5|wh zcld$f+s=AY$~~dtkD#Rz(Ik4{Mw%1D$EJ^-U#O%jA-|kU7x#bct#AFwJr8yaDQapx zYVQ$qhV#{mW2URSJC8n+`NUk_%QRA%Hg-ej%6Iv{h5fb4y&JO!qYrz4tf>^BX`su4 zdvfO)cC~UBVVNssR!>RUqeYHV&Sl~9hLPkv-!Kp&zdwe~#X&5@MGS}YO4$v#*mVy#*%aoyeBUF~5!b18;iz@&$<6|9XzA6s+Dg2FNV;4xSdr5p*?la`Vs zln>?;Vbov8IkZr;1>XM9UCn7jh%0g{KYMJbczChtCiCgJr3bc;M9h>oKH-n%l4&au z^|uvsnQ%N>&PEUKnpf_={rI6`!oZ43x#jWB&SGZU%)aGJ%*|}Mt#{`H|9RWabn*+m zbURt^mYk^e(wim^R@*zGXq^xWIZG@17O)HASN@3qL*ds@#y`(J*)zrvar6*tCnp8* z4u?P+ziuEqaG=-*f*g~@*nOR-nL;xGbD;?a^A@1mPSyq!+xd5UM-om%(-J0< z%H3wWKCGKUEIytaJ-PqTrPgit4%fZ*o^fHkBb?w7tf{RCaD?aUMys1Iu3!Kgp6~2WG7xev17*u*L-O z)9m+w^&yBq!+sxVpn~`r_WM9!3*u+l?*o=Ei2s`XK44*j__OTy!LAX+pJTrdR!$H< z2kE))neforYLVO417fI1o(afbsF>@5f?$rwl?#=EGT}QNAL$^S#m>TP7mm>JYMDb5 zz@|QMOE4-A1Sg|zMJ2NWayRf-wcT zN2a1->N8=P)k?NB8I2pJEJfTcIWzD&NTXv14xTx)6MuMNXk_SZC-lNZx6f-<}kbr9T{2+Jl{S1CJlar z?oEbUdd+PRI2Ay@XQ6Th)kdhohrrcb45O8yvO@#J{R}jOX@AVppT~)t5J3oy4T<42H zxVe)pO$ji2Oz-fnz>|QL6QuVFeDV-lO^ra;>vkp8NsT_SJZ z2jQh}W~1mrSPsiNnx#ZZ17+Uf0ny%0E`$t37@5&GcOjq;@UbI@_raAsH#`)NuDcM3 zD!N1*f~%HS%|p_6k)Xq z1CAFnnrx5xc|8G-LZw%4#*XGE7V2w01uL?_sZfKSP4%iP+@9XfU6|^F1!(%m;y}41 zRhtxSsM(}r!$tEHhiI_MtD6mcY}XZTG|f1ZG#;F-fsPx4V(0mXy@qA$dMq-osk&-O6II97k@y-5 z$M=^f<_R=iRBYLG^);hikg65e-IEI!B_WjVOz#;exs!S!9tp=H@nWHpO%!F-0*cS} zaWu0iAtDPzuBar(u};iBH`2}d#f5035x4fV#&%6CreS!XvG-r|-+?`T6!!Q%LETRD zp1a@=+p;j10@~aGXjaTKxbai9|0y;wscI>7R|ly>z2%gF?F=`p(pE@WAoCh+?a>!` zMKc677^e13*7adzV&~zirE#ddztJ!z#M(XhAz-Pc{Ofx%K zfk|yAyx}N<`I_ofm63_!)mC-70-qafYBe85KmdP25%K>ihFV*;P*EH%1Q4{XTfLf_ zNa}!bHcSULbtEcB3V~4#)l(O%E!S~J)VW@J-K@52ult&Z?BD!s$VDQa;0UQm+%fl) zT|F&Gu&Na&H1Qm>t5@&HkH+)9?!a~>FJcm%kiP@N`WfzhJ?qjO4D0*Bj=?1NeTFRL zDac;h>QtJ^?CFhmG*wCtY-*AlK{aI?shzN_`{xDb@yg(IvX~*wB`8`O#s}pq&v0*l z?2&uUoIZ8*!2Vr3w>L+tZK^=?XcbBDGVa^=36i-Ge8AW-I0sgb+#UD}_R$}YV+fq} z;lMYV&lK@QXdDDW;L7l#kOl2i8V50P6822hrM1TOes&=}f)xQ8CS<0n$>nsjTduZt z7%DoFIofb494SrPt?G~fOifKOkPJhVfmyu1m8}*ViQ9T)W(#J0J{OIZjAD8@6OzPS zB^vFF#Uob1Dd}it29J$NXzrCr(m+2nbOR5$#j;=0Wi*Hn0bd?$4GOPm<_$TXjo+6a zTijrTZ%GtYnBnj!Mk9x+YDGteAy|qK%55p+{YJV{wBV&7YcYQ1&!8v&XXsW--1EIq z2oGNdsm?=RCjSaCn+7g~*XN-!1aR);&Fja4pgpS_bmi9iP$B~ki`_p310lOt*2b$c z@@>3M2P)c9XUl9C4=_Gljrfhe$_(YApRP&kL8haEwXLaSJ>s8FB*2VvtQVBAf$@z* zPOtOPzFxfZ3}#jhL4CFz-5F|odGt>J40{X=J(Ad7tdBv7-ZR&oY%QAhVN{Hfj<)dw4M;Wt3{C=^0P$*`I}ddXCm^1Izz>`e;PDwudl}8dpbkBX;uD@b zfx-B$pQq5rrlF+q)%ru}3K#&Yey623E(FBrywta z&d_j1Zxm7=A!g*q;JOdf4Zsa#;lhp1V1{Mrj+Jb2;+^5hMQ_1i4zGc%2S=_$bLvh_ zPy0T8!QZJ#i2fQHTM>_?-A-|;>v#ryLQTTb)B1x66T8O3llEEfGiN$hK1Cjas-7_Q z$>H1Kpht<~r!oaT;rh;q7EaV-g-~rSe;pqIGTh)K$lNZe!X6i~SSylGS&4#^2BYr# z3Y5TCFlRL*u_IvrRw?ZAYHLC$r)$_CY~v%LSBw{36i2Ol4P2#0ZiC8`3W7ztp-OeI z3;5!_(J61on)@ILLi#`9J}7cy+*a-jJ$+^@rGhs8(H#hsll!V12$At|jvL=P-fIrw zsSBeDj4S3a!@Ab$h_GP`lOvn04_GUft{kB?2VbX+40g*(gt3PB4a52T5pWFIyw=pt}@{e|H`;anv$I^*y z@l@1L?--lemKO5M<8uqKY)DF!4&8oymH(`Uf6Nbg>& zynnLqHTZ3K4VF-V{g$4!tvf9$avrG91HVBXzA&;TF2jq6@e16`h`_J1@CMl!Yi>&D zH`k1W#tbaA^J`~N5q7-SE(?pJh7>m1|{GQ2VG-6v| zhrKgtmr}+B!zI^3dZH{E6I08(Mtf;;EtHU3h<2Wa=pj_#rekicphPo%($_<3Dnwam zQ{a!sw-2A1%vAT@Ss;JI`QlW1;^^)>506s<+?u~32`||RZnigleDBujDx8-5eqwHY z!9wX9Jn8|MEzkT^C%U&chZ;4OT%ZoD_`bLYO@X`u*{vY;k}($c6=I$Y3(OeHDe%33 z=RmiknZ*3zFZc$r4t$Awo$KcqfCFew9f1Fiu5HRMP{v-jG5tW&5(z$$R%nxl;y27T zc)d}c*!AvKD7||UUCY*!3_cXkT$6{OE9cMX7v3DH6%#HHrxCj2&vSnYl#~VTuL94a zT}?$@$Qsa}$g<%m?`i!*_;ewJ)_uMX7|2c2XlnSzJum!wJN zbEhkot{yAj1yb%0g(D#tNqM)oc2(rq4Q`GkOqh;v>mWIm{PG=g$s->ZkUNv3Bjr*d zUt?LK)U6!Y7f|S?$hC~ViCx+Ypn^b6B)wjx28l!p^dJ9Nt&dt$EkP-Tl|U;(04o+k zdI<2(hnH=15x9jCs?PASV{u82pV`rcRK+5X9btStG*< z>EFQ+T#2-00aJm&Z~Y%_n3}O-VML{* zTGYZotz|N{UZb4=wgJ{loCP0FBmP8lM4JOg@DIs5nA-`I9}@sRTsAUE)lC#_ z1P47URyR_3V}v_3goMnkNv~<5CSMeD)-W=@#Z-OVwy|sV(0p8dLgVjKvfXMp(a1P< z)Ie&Pl!nd&w>=*+^_XOvUOrJtOL8eZgtb7gEkS9iz@vlm!XqDfH@{E#Rqix_SP}t7 zwj<4 z&0w(THY_Cq!(rOI?08Bpd=Q4e}5;wlEwGMci~3e9F=xYTfqHrjt82UUvg z^~8ku&yeBHyQ-tvnL_jqIk&28y&tn97iKKX8G=lD42;%6W6M8~LBTd@UPAQ!kN(!or&6VZvgmwa;bxoOyKCJ{k-iP+JL74?{q0vckzL&>HZY0*{R( zVI2nv^+aGEsw!X%a42%R>L}60tzCyqw&L0ydH$K}+?Dbs8^Cmvp1s~clzHMI6>b&J zsh}=`sKwZlZimm$c2qq}uo6fvhbcyyUBD-(>W&5YAWUI}Gn;)$WSR-tZ(zhwUpf=9 zIKYhRBxw673sX~k7i=R6G#tcan=n5ur4dTC0s0}E=wFAMB4(OJy*-#7G?)7nQJSk( z3Zjn;Lz(|ga1B_XZcT8p{BfjO!fGQV13j9GwJKYaDj*)h=8n4oM4sl~G*;jNRE8M1 z6CJ^da96&?|2kZr!(5@4O%l)9531q#=dd$|paCKt%r(8ZNPh1%o*8Tk_7w%dIxBdLCslltl?Pe2J0~ zHG|VGBALOmj1_z{taA$f5MiT?+kE}v*S_?{FMR&vKlPJ8{*e#A?>)~w{kF?*e&SlL6MKbB z|NG-Oq;1_$*_ygVWsBNeUae}qaEn|>vt9ug`r=qjP*G-RBFHF;F|$^vwF}KaeS;#V z$$|Fvu7UPuWpeRT(BA4+oRqhO*H_+_hyE#e(mR_uL{A8yO0`qA6>}%NY+pSjoG!D? z)I+>aD-7Q-)I%+FRP$9N-9kIG3+ZIT7gPr{>4QQ2B4bdGaQ}h-iGV?QNod<6Fcv=t z-tr!BrWe7PfKJ+@1LEcb$cZJEM2a5T5yLZ%DEw8s4=hQFB18x@!A(3V*5^s^srPvj zag-f5y2^kLT<2Qs3ISK4_TvFpq3yf#1{WJ_xa&UIb*_f}+s`mqd$;TD-|JqE6fa_X z_(J=)|A4f4JC8ov0t)A&|KZVp|Fy6F@>f3l=}-Oizxwz`KJ>#cyz?E;Jl%Sv^~l5b z-+gZN^nv{VF=Sd>{FQFt*F@@b|7bh;#arCTs{Q=;p(OC%xXIpzW%iG=x1W8rYQsw} z-e7YJs3&~|n_J?xVROG{O}qXz?yuJM>(o^`$d}(OSmvWVYPGS=uR17iIM~;;yAVhs z2SZB`pGDGaXdv+c(Q*l}T_N+7!&^3>bhMDAT|`^7&{+>(mqj_GGz69)^CD9)1V7ylUf9WQ0*wZ08HNyj9+M>#FzPz^+7R z$Fl8tW)*9v*}4%bqSb9@ikTQfIPj+P>7o}=Elc>P zka!=~44<4EhKtVjc$OGSw2i1^x~*Cn&PvTSb{vE6pQ;Z{c)?V`iA(^h_Z@gnvzkpV zAm51RhufuyX`4tukq{*Qmhe@!IiBZ!o%>7Sc(6GLw>p!Aui{}|mk;rxeqai2(BJ=A z!8KpxBNp`Y01%JHs5coy(uc+JFU508ei|7x0nHED9 z9|oFfgnv#$I2(m?Xask`;Q=~ox`KHr%Ddr^Em{%Rx`CLuXbtU1c zS9K{u1l$co9Dw#ee4{JEohYM9=)PNdG@7hk@X&D2-sozSVFZi(R^Aj~*_*BeKRg_B zPa!~zc+A@S-tzUBn%yBe{X4(;>%aE3uYBnXKl9Tc`rwbg@4fG7J>UAlr=EPvn;*D% z-@W(TeaFeYJK?Hc3?#MpYFH4-*}xU^+WRK~62$lu1&IEUSk%A2Wft|u*VI}1XaD3} z?4j4lJ^RuxzP4OVW)6ps^+oCZF0>hvclP{oH+mLGiywOVvFnb65KcfbQg9PwDd+=rf_!#^TLmUC zZfNSOHgI{{EP_GS{@Be=A%DeztIs2j^QvwMaL`Q;x;oTt@qfGcj*HK~|GU_ZXeResXC^UO~)F!P$bzXgu-bznjEeE zQ|KShk2exS4y7&%h7ij8m0GD@&D*9L$_O9W z6i)e(D}T#A=v^3-g_3ZDz^M9H|BU+s{-u_l2FAW)(!3Yz1(r8;~%RSjpFja+{GrPqrY^T;D$NQ$KB00M9vH+@j{kVq)f zk_+!=OCIM6+-R?bC#DBQc{b8-*y2O!Hi7C<@ba0I8Asl{!-#>ZIjCT%PYe^+{jpCX zzZOtR|J#6I`gAiOAAuXiB7Q~q21jmeY1cv%DCqLY<|By+!m&b<_s%U28pc{}V_etS*fH=Lxo#{E4cAi@pt7OwC zMWBo)2F*>7(mGPbFEOgdFau( zM}bs?z#Hbox$-^!O-SIMLOR8RJIdkRc}xJwHSsdrP1sk=Wwk~N2uiGv z0Ht6~`%nu3tsv)%HIUpfy?t>Wx0$S<@{Ve2Q1FX17Mc>w3!52epF}D(Y8XWy5rGhw zVDbcC@b4PR`DrVTjbAEewQ#hUv%;~eW*Nf{E^kGv6 z09PsFCT3fea6X-hre(b-TA`@w13D(?m5)gyKxZ~{^v(AuNrCM*9HS{_Q~58~iERJ+JcZCTi}W@&r>SVF z5KSanu=-udGfb+V4?9g=*t3b~KE8RjkUL~5>$BUa#@&eL<#qwS%3tx`o5CosIo;H=lk9wd4RvM=!g+pHiZkXn!cQKCdFqR zjh>JlAcym!qXPcXRb?9@SjiPE6VvKM!~-sJtD+HEaUyLXg&{RjMB^rqqzq^TAuXAz zCK+}Ed{wEaieX#oZBZen%9G>3{*r1?;wo{CucO{N>qnx#GU*sH97aHmK&v?C8KhF>fIE9x_)%zte<3}+?=ximQ0)9lE*IiCi|0=D7mBlN z-rBrOL|CukBNF|+wvX65dHpx`biltLXK8IBz5c?G<`9skga`}0{w2sigjKBjTy!O@ z97u!($EiCk^^wteZ{kGE{Ga~quYUb6e&sK~X1?~-uYCFEKmD

E10lO#s9&qx>GBDHv4FiyY$ZlhY@D-)3B?wlC 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

XWaFzV0lh2%QAcJLlg3pZzGeueW=DGn;_t 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 Ct-2-v literal 0 HcmV?d00001 diff --git a/utils/fonts/ChelaOne-Regular.ttf b/utils/fonts/ChelaOne-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..215a05f4e380a04b8b2c6c3646a473e6f2b7c566 GIT binary patch literal 34460 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 literal 0 HcmV?d00001 diff --git a/utils/fonts/FontdinerSwanky-Regular.ttf b/utils/fonts/FontdinerSwanky-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a1acc0ad310a64b6736b4b0f9d7237a51b4ed753 GIT binary patch literal 44500 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 aN`Gx&Vq~B{>zRLEbM~C(NnctGJpaG?(D7>k literal 0 HcmV?d00001 diff --git a/utils/fonts/Galindo-Regular.ttf b/utils/fonts/Galindo-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..928eac43457d2e5b8d073bddad6a323214b37766 GIT binary patch literal 56696 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%0A-4EZ2GvTgiEIch@$2~d7V_=$> zzvsw^f?=^0QKD!UG9sj3Un_4-=^NF#cJa!LX=_K7u9-C|E6REaxQx_Y5yQddKxmA$ z3^Dt70jh8mOc@4U$V@-r8bGtQ0-7Im3ObQ}4Q$ay438f|-e_srLZi(Bd$SQmGv&3Xwx9V;5|w{c=%Zf`d=S$jIQ# zNH4V$U7lVuA~Vd9w-4(xsOauGxX9F$<2Hycj^QQYQDdV-K_Lwp;+5@f zVc*lH__fL$yEvt9=E(8Y(eY!3^meog4hyr5MqjZ*fW98UdI|RE?IHIeN)s&!3jB4G z;48zz!{uJG3+PES_2})vaoQ}Eh2ksi%1ymTnb2_Gc++qYx>lo6RtUZE7A1_&w zGRS3lcY)v1&BBY1g53$CU2O5QE8guNIc@5sk!hxMi$)Z^dV40!%(Svrt43`tD%@R` z&F{RQZLxM&&xsSqJ`qYc4tc3IKi-*IcqWXPo#&X8Y8!0JaY~cy*K(sL#loY39qslA z?N2FIL47Ni!3uN1nGftX9I++lSv}mnz1e6YFbH;iOFDa6EcH2vKX^*fj`tZZn zG%TER{*%&_@h`l#JT>8&8I?n#CGD#U0nkcz?YBHfW6MQMD$X=2Sy`DKsJY)Ovlnk` z7FHY{IyziZDy7$GR_<$)vkG@o*PS2U_;`H0wN*%N^_!(m{sa8I`gn`HjrH`l>5i^u zymxAT$@p)j!fy*je0mP+89c0K4@lWV_oLt=zKqcm?`Xq!M+!dLENwD9bpJi^<+~9< z!uGQmUBY#5h`HikcshUf+p%8y9(uUzEmH0k|7f=vT=dQe;tA$_m@^6%4MO6qB?Sf~ zXOXXSGBKYvW70G`E4#SK38`~TF|H{C@`HdAm66IQe@MUx&W@|xes9VAQ)@?ZyvC=` z#3vH-V%;o+-~m;0mS&Ip;k99st+AtTqatN$XIuwkEmn><@-Z0V(~S$aS?y$jZr#HtRJZFVV*`w0PO*lq83^ z_?RB90|yW4gU>6C4FIue7q4ik$sZTpVM)dEVM;)MkZ?4WcSp0X`HQeWp5_)GU}qN)@8%lIj_Rn(q)!f;9=5!NZmxO5v{a)|K^J-HoZ>x;wGn{**rl;E34;(qFZ%ChKx3d0Z z>PAU#3+W^uzm}!<^j;BBk@B2D9^|9KnI3I@pb7)fyY&kGwHquH?w${DFHi=D2p`NL z4SB+Bq_=rfr>H05wFR6-efi}_b93)4im!_0!ec9ASRoZgX)$4F zS@A#{C+h$!b8|tUuBpYT&#s^XuU2J@`K1i*PLgup%7sis(NsO^>rrF&jIp%hxF5sw zDke=B8pF@p^-@v1y>;lo>F;YlmqZwoDB4HZIYvA1kkt^~_u@wJ1onMe@~pEM*xN?C_zfMD<7i_YFg(%N%t#ozxe(Kuf-i=N zN`(T`-PENoEsUGqdFK0<2aWtrdvt%~>fIMPTZNHrPrH@WemckTqEcL={q}vHvQ|HzD6inY3M!3^u8PECF)E*k~+oHRBp5w>xlCdIu zN|JYuyOpJpa)xf+i`pv-Osq_myqNH6c6^LdAx&5}yCA_+Bc@co^8Tj-x6#1gXQ>CS z#!sDa(B1dqulQw92dwZO%!_4wxht%!oJCvacBnyt7_Qj@2x`T+6cr_KjMJF3*cJH} zo*GIyK~jh#K1}I*|LT-Gmk+-+V!-oT4xO$T`*uufh*~2mRnnlhZ;rh%?dd;j&DAOm zXEAWW5dn8qSaPh5`SH75;>tQ5H${*-+KNi((_^jAmUV}`hc)NSJ3yO#&iOnSNBuqb>hSRZS&eVhDV^b~}eS$~o z+|=aRsT`O3YTv$#qLP?SDbM>n;eAaT&;|KZ!ubNWp3=8Y|&O@|(oD`8iYsCm=W;OrmuWCom%&SE9&>4ouSDGeX&~hO1TG#$uE4z1BXGy6 z0{np~#0T^bgtv9q6=9Kwt)JHshCA=28K+wtSL-?D#uJO_f&f-aDpiD zg=H3Q7HSE79H%=at`_lT4f@D&7FJfaY@A^@!TcSkaL9V`>s=b_9(=DgQw~NqI63C9 z#MPD>E@nn}LM&F;7Ves|(_=-oQE;Ar?pwpHtgWpQCQO>0t5T;;IA6tyVr)*Iq2gBU zzWZynhti+R;DM)^w`Orxs+zMk9B(9TqcuCW(dwO?U?i>4?t14_Bcu2!@$;#2KF9vw zCA{^(uN9l{Elr@s!^28q$vWKHEiybwWaF(~{DuiuG{1Jv)9h=6C+_{QkrQF2LdYmt zs#%*03%|_D>nog){8wx{_`^pr_wGe3+pv9GT{cz|0e!uk;yv`ZXIOC3{fb~wEB1;B zl{iUaZay+1Dq7!6mkr9=mshh4s611Av<;TnBH^BR@AgNpHoVe@7h?+o0!JhRpp+N= z##c`ahGB?KnSFY@Xlkm*9IQ3fh!VGHx%S4-Q~JE#`o33=H!n(3aEO0dctW`yCo06r z)avC)jb+ULQ7g&F_yg^+n&%joHM)J`ad8J$*F^N@d@Mw0&760$z)x#3Hf#l9?CqJ_ z98+^=x`}&e;zPFz0>(+o6?zyMD^;85=uLa+OW$8T zUHHrHFZ)=aHoRA^m=DbP%45F|=AWXsPcZKzkNj>Ljir~R9BN{x;zhyK!pg|j?u0fk zD#SX#&qFPkm{}NE*=kqE54GVkuLgLVyE*nyaDGmu1>w0UK-gnh5V11jU`&EjSBsL0Aj+ZbUux9G@ z_MvRCZOhgxfRskos$Sc;&%%HPd_9`2Vy6^mSj~u`Idnqr77!MLtW1de}7%SjM zpIDaNcg3Kf%E?orc|pJoB6_gDe}N=vk7!RnrM<1yULUPQyTam(4copeIC6^P6pE7j z_=!{31uwP_mPAo{`qH@zPo=H;U|sI!Z{Tn-dcik|_h1Dcn28gwBm|@&LJmU!a3>pt zVf0Pns1+v(`e9eU+7zrLV~JOrnE40!n+27Ymj+R4XJ?n3mSX3ao|(akl|O6GebRUB zs>S1yd)KabdsS-bHyL)kZ6AU>!(-bsh{|0lpDsh`;_ZdSzej$tx;yg&)74N#}`@?=-SN7+R zi(T`#QV$#TTpr!34b?Wdq`50?P5(yvqLJTUWPdJqepP|{{f2O=m5jx*(@#ID15IFd z^{VgR(;j%o*fi>ez9B`!2O3lWOZ3szi{;=M>p`XgCUt~wu-cOcRy{C)@&^$Ceb__> zih^ZBs9F@u%f7m|tk=>PpDE2ShLe*pbi~&th?1!)bMv=fEzOTDn)A}Kj1}kK8luof zi@X}sfCY;i4v3e!-UnYFdX@9xDT)Xc~>9)? zMH;}?->8lh!tOVT8}W85izvWN$x$RO+6{h~8IayXF^s~5+?;uF6Ln4-xANyXEAMVB zR@*pP(B}m+GnJ^aPzP4T#!d`T!WRfiBZ)rk;HnY1E8~CK`0BX$p}T0*smVt-E)ME3 zZS6P12XFfL^*9znh+Db-i@Xu{m0x<<-;0lv~%dG=m?wOKwmTGl*HH&4`Z=SJNsU{_G#u6#mg?8mrITx-IG_1 zum1CQe*ZX(_18ytN|}R*BD;&}+8xKS^*w6IN5MC)6^wnS94GDrK<{Z~{DPRx{qF;G0@bZ`N;5{TRuoh`Ebk5f+P5O zABtajJ0P|r#^s?O$)H~^1VS*BLGrekL%B&rfir%iMP#o5LAk5@YM*|F8qMpwe9@Eu zF4-(1V^GihwOO>PMBDym%5w|nCxto=ESuh|Wan^`H);IZn#)c5hqyjD^~HWQ=cl}) zT~t4M-;Z0LK)bEFqf#+;r~G88W4^{F%Fw=;BqCzwBeK@nW{p%_{d3N+9E>drBk}&P z0#=d?OvU3W$CU2-S!mp;2N?wR@XFyyelAH!RDd+_TSm=PIs3ZNR!nGKv^f;n&aP(9kk z^ggRU{jOpSO<1qotF5Y^-ZmrSjW?Ig8RHUM5|KP_?$hz_(A4)=(HL>hJKDqA-?hK5 zGBMTuXrkn}iVH1g4t&*z$Dpdxs!{bq#Usn|J~&PrH4n%7LfG;#F) zaegmTr<`-W@xlZgM{LqSfcl6JQ!D=h z7g-Y$6J7H4(qUrSvp>ucB6CLsnbQ~4m_hRQE>Ar_kvB7mE&6`6T2QFmoZ_8ALe-{R z;*77R&)B=PKjqEboSt&fHfftPo|^ttdV^?VGqYv7iP_k3z8UG6jJF)!72%$^9lDH1 z?^xtqo{(V(bc0;I5UU56?Hv`g=9pdAnZ8;`6jMYymje*1X zc!!jI(pf;Bs$S@%+$u% zyrgY>#lhdzT4By*FWTc(wyy;17KCa(A09L`Sd=U@U=%Xli}!GSZMM9*CxrXG58*r>M-RF`gkwcM6l z*(21>Hqe%>s-nsxXIz`cKw<4`sqwT>KDltHZ^}#OKV0zL?D(EVE6QbEUlA@qo~~?f z3aGMh!%`Mzs^>sJBoG#g2|6Dp3o=qKM*V8nnHMe~MEQjjQX7$&SpC)0>Asnx##P5; zz)s_%Z7~|uI3~M`eBYlGWQB~kfJBvhb0u~kfZPh4L>G0YcID5 z9~d`0j!<{69Wl53fk8}glz&Wc5MaT*7W%T?kWnK>Ndi5}c2y;w$A8GE@z6XXwUmWN zUY$5|qDB)_!?fzAyTVVvm=b^s*a0kz?LR9b!5G3Dh0I zT`*#3FF%D++oqHRDZDh?9?LuEF!cU0`VwZc7%y*H6a{x#h(mLPvFG7FZyNrSH^NR(-W#u$nG67DZ!IN3)k+G*XKpCH|p3 zW2(oE%Jl6udvi_CQ2&x(PC+>U%{x1HNEpwXnuHASjxLVocx=1WYqMW`fBe&1W~3;h zil2MJ(LT!2F2bI3nb=U}?4mTHE(!Uyi}Pk3cx@mxQo6a=N7-w=dXDVLu~lU7(4gU; z7x26w4c`Q*=ivXrc>|dBMsKY+gx;~@fvTCVStzf|5un4&5eUK?j_%s`)Mi}Ju%Lnh zW0l_G6~L&imT0*U@p@ZrJxc?Y(({J%Lr< z-i1{&Aa5u9dd~q-iyZ|waDX5KVi9io7=vLpD8GHd0{--XjTxui$5~p@S?&n~f`W46 z+}-1HgMtPmxC>UNw7JK<`}x4L@1f6qPt!dTgB%=!5 z;bZd(ww{-@%RGb+^Kh(_=sxH3mzL{A3?sZ!Aq;-utFpW`bBCMLr%Y{=o=I1#jE(4f zFx99i=&tK1_Cc^6>xPuRIX*h7e0gC|LUod4VY-oy`utNm>=XLDUsjZ>YgCq> ze^!)>OH>v#f$v8M=FkKi-%NQ0!@qvO!4%h8ghOVVr?Nv9%oS0C%45rxMQPWW=45zg zIEmU*Hg>eu%!&`oP4G8!R|#VVE}b<#XrA`M%Ki&=Q>`qXn$hfQar0&c;8mLWD6bl)lNENC$f=&x(m{F z!9_o3e*`s>9OuSx<`%)`@hqhD{}uNo;89j*+jGvl%p{piGTDYKlVmbUCYkJ+B$JSh ztRx{j*$7Dpi|oi6wy+oxk;*D6AdA#0wSJc3)>5jp>TfBfmMS0mwU**iYpK-I*58j0 z;mvoS^Uh2b0@z;vb^R?G=JDjrd7raA%l+Ih7LKZ0wt#|1E;88~5+Zg+Mqy1ED318B z>u{Z9_QoeC)U8e#Kj55DRI|LJFy3g6R)3)*Ei5xEDvVs+s9b+w zI|T*v-St$sSE7)gxMeT6EUgg_h23z3?FL_ryd$L*dur6c^Hyh$cVbTzU{83D+!M{) zDn^WOM?$iX-nA*PD;$Go#plE-piu2YQEK)4Pw$XVsqn z+EG#e=mmU#&CRRgbuj=Lebq9cF3TVQRtn;<2mrY(10?@kCmhdYbMsFQ7O%5YtaL(n zetwQg@YX4tef)hS(kKfi=lJ~a;!@|b1>KbiH-1<>Fwx$XBjI$LR%M+~QWh^$@Aap@ zRYP%qMcE_%LwVuAxEIKSWIK82<)XsSxQHOxkMh$^d6vb`pm!W*fDFju`>E1mqIf_+gii`ztfwP!TUqws^b1k ze*UQ?!Wm&_>q|}#DxTWk6j2z1?{*BH5C?G6A!+TxBw@drEbt^aXa;-LBxPHSk&-yj z`N+xM>@{nb_mtt@@+VGH(UE7L+ECxK|BYGM{cD#_$rF`T%CV9oPwih-b-AN&qS@Et zY*|(-9y?G2vRLhBHv5);QzsRn{Q;H|T$&QsNp8c;#XwwzW0=A=l(?AzRXT0@O8+?#S~y6;UrrG{ILWE;*Wg%l%g9rqh$Py z9N2M@%sRSJO!@jv`svM5k=_*PXE#0&So#PYvsWb@e%}Wl5D{X3;s~+OS4j>DQ5wlH zWs&lKm9xs5RBO@fhB8SBwuX%SesZV3`g@ zYutNI@V7x5!&J;Ox#BU&A4yBOZrd;JZ@+(fMV2jqET($f_=xz%TyKM9uQSI)?S6H6 zc91~!>%6^naTB7mXJ)`f67|Y;<$;Zl-m~TxyBdNM3mRtR=?tOzNtKf9?KSV*Tttl} zQoZ>n9}{6)M9<0Y-q(8IKuXbN(cdLC&#>`(Yjk2L-h_rXtH-gJy%vruKgYO@2Sby^ zA!(>%*{ZeU+K`gRk>}Z97VzcoHFR z*i!T|cNf`rD941S@kY63d?5=cs~`^^m&sP+Gb*wr#Kb*T0}P%>j!mog;m8#gd`PL z6|#@<#m&hv_36r+KHj03Re*Ro+UqJTsYSSljuWG;I6bdV7J?UqoZPG=0Y*vEyH*SFe}%2LPa4S2Fy$}t)x&t=#TW+yP?kVSH{Y&0q{ zN|2PzL7`NhtL(j*q3qwPeEA^RAw-g$Q(u{i-|ZxOUSSJJTY27B1{?zNORY4a%<2xWf9xX=}yWdp9neNTjd~Q*J(6 zD8l8oiCy1bRiO<_Z|QFjuvS@9r>4wmZdlt{6rAoQ1SHffZ!tvr3zFX6Vh8Gp`9PJz zIl5lj12hWDE3pGu&40PpEygh#t@*kv`}pfpCMU27&q~kydve{J{QNm}DJkmDWU(#F znVCs-Ium@y^ia7st+~)@Eo@Fpn_L(hTR0ioC?8a$TImwF&Da_VW~mhpm9xggz}-RS z%>{mfu_UWt7i}+$P4(7XT9RtRytXNqx9wNn+nbdvJFL~#o?cn+Z?9hd z)V-@-+SHa69O9?!@zNtZ*Oi_!HO)`Ry*CfBO{CqrXS8*(&<8m@|Lu7)ti3l$Oc%Z3 zCFHCw%3FL-TXC$dyz`#`h;%4E@F832c@<);oPYrEXq9!Tg5Q)Q0&51@r1s$mP@~rkbYIR8>W6Mv4btmk&#i z<5rr0c!_F@TA5pb<%VbX`16RT!pMa75N0JfPKW!_SU^&^k5=pRlHS`}ucQZ94A#nm zRPQNIt*rt~^W-mPPB{AddrKu67IvfBKR`-oNJy-Y3o?mv_8f=qAaNdejMyGMpuBqk zp35`$U*Bjj>S%udYXeJTBF$3qq_TaOBw_LH+_oupqczcB0F-;w&l#fPR(X|h&V6o!}z%By3V+GiYI zT$nNIz=Fw5F*Vf{W^+Y#O-$qD1qWwm(5DZ;i7D~ZGJG9VHcum) zCa>!(hzryzq2ZPQ8Rk_)egpu>#-x@c$4pwj_S7Tut5ZUCeo1xx$Ja~;+%6@Mdg&s@ zWj*}(;}dp{-?snIqYuoUpjfjuKfE~$5L}wtnLhPIFODmw^^Cz6wHILHHQ?=#^Dz3c zA}uzpB`XUT=kN`KbHKgp`6*c>u^0$&LRk30uohV+o<|eevl35yMtfmYd}ehx3v3-( zFDt*Gjjwjr??WNMs+ZS{D{tyd5xu?QrpDV_Q_O@a%S_W(Kd`zdWak^jb*JXDK+gZ1 zS@@gzbls(8k`N>~$s;_dqa8D-<8=B(7?R>b%lf(|uI+S)zNWy||L8#AOjkY0&+IpQ zSFbZdo12=I$)Y~WCTj2jLa{)M3JtOt(NUWh?;9ynf8X)h zfpI~`Xk&10TXC|%B2n+)grXFfFL9IN_=qpjQ;0IN^TLvCp{H(^(o^E4^Xk)Vr(XfF z6par!8TbGJlyigm4K< zf*-@&Eejhb$3bb4EQf``4>+>4c6jYdt@2{)ebY*VGj!S< zQ{|k8r^@?Ezy19eo8LHl_SMGco_fUjcIm?pZOY%eY16L4?RyV1dm1bNd1AhbgAK&` z)WkXQ?%6=B(#F%I?LteC9^0dQv`u+!?ms#HAPJ*P zRI?c-)$l}wN7b+^qoLYZswk;oZBhQp0{_sAUI&6|;oYxv_xuzGj8512!W8@s&=tVu z>*&wH&4Vj#w;pO!$_O$Yp5MMvC(#JbItEOk^1V=}G zMRa6LC|}-Fl^N>ogXaRWL_7|}wH8x@${2*V1@huyGH^-R{2gV( zC(?5;N^_L`4zikFBD2{1IdR6EQqLGRe>i5G?0mrlI$t5pPd=nvcxER~mmde6R(8HX z#H1AsbB@*R?)z|&a;E6<$*hN^sAjSVNBMWcdNZOI(ehV-=&q3W|4KInhY+jehw>q+ z=~F(SW??fbad0@X%U0Ifu%J2Cm6wwVqwafZzNNY-scyW*f;yo%TLr5Vs<6eeI-xPk zjp$x8gI(IVrNDl&F)T*?(MK2qw{u5VAQ?w}KlzA%ldB?$ebeaAqbro?fib>wIoT*$ z#XM*TCpn3SjzUDIF;-$fM5|j>N}^(8Dicgzf-iI?7;e@EjN^ZSmiwUPxKUb;yQ0{k z<^Q@eOv^;GSlJ^+fwh^f0oQklQJyb(!reLgoT1r@m_rrI-r}5b8`RoNHa2{=IkiTK z`LHaJh`!!kl8XXyi_@b8sB zAO^TeuUzy(Iax{K1s$=<0~B!?s~}9=27m*rk9Zl8y%t2f?c5uJx1;()@iu(5dr`RJ zr3C3To^;{CAz+g-bHw`2$un6{FQX^Pa-lq>GChoi_KH{K>b!y8RMPb%#mXXp zDj$|_6HB+%ytj=7`TPypjs>*djv!7hjrO<}khN|$~#-`*O{kV?|2 z=#rS!HT!?Om;;YO!vbwVjveV6zWwvnD*PzSY*P#mDu3Df4teHRfD@{ir5o2cd&W4>%@W*8vpjeDJ+sce*S`{uuDdZii1dA=h&^ur2I2c9b&P%>~*W8_%w5 zWAPp&Nt_-aYI6C!>bkW1QI;Jj&h8Ji}FE;z55`9Cf^Fqw55+&o9G>5gJWb>f}jBXuom zVad9JC44=>2maUfE3p6zuJ|zlak{5nYHsFO=ep;o4+m-Wyx2s^+>v@64SOD~*RQ{O zM@ZL@iv9cxV&jM7xhyeW0lHgMIszd*T&23Z0l)aUaz=Xwk;Zh?Ewk9uSY8I(wL>1p za9@I{jV)K#@<+WM@(UIw*J4ly0GN}>48~hQ3 zTLL(^Lx%bHfkaEbAoL++pKMY#S@GH%{P%oVT292ujQ9Y(B3{e#*be+;kv(Vr@_Z9s z!t+IbUx7%n<-Fy2qK(q)o1}jEZG^SgDG#8M5b;*@Qi)zH*ez-=I8S&#!+Hy5|AqBh zS-ieT9@L1%{Y6D<3w3`5{*8COA}@bMzM*Jc5z_U_dNLqVdxG*EroZ1wuo0YyUVO$N76IoY3K{{9H=5r zY}uF#HT-bG+ef6k5Gg|alovfS=iHpk>6zkEAFq-PCF}mVj;)hk`W8JaodEl#hIp!# z5r$Ott%YZAvhr*UN8vE@8zs#2?9JzC(Sq#_$gRskNx}IOWchSN>iDRMUA2oQS`sES zwKSMzvXZ{#Wz+&{Wtq0hY3UuNeT{(4bvCyCcpn?^7ubMLo&qJoh`k~J-*8c6XNx~jqZ3E%7iJ`R z)H-}4xNfB}_rV!2?5~|D1($ui=vL3xCks5=LqB?VRPxM(js=Zp4VM z*WiwxvVIERJ-In|+B|}$5v$CAXVb!}XBqQvzCv6Fr+REKHHekpbk4tibC?1~>HE&p zMe53bXV{UCLk57;3du1+=n+pjd}jx;R5((H^4W#E@;xoYa%q$l-O|l zdm@mvwyKxPzi?5U{N~rot(S@*-0fDu5&17(E7#xpruPvh2euyYQ(_R$%8f)%dC*d$ zu~GP~RX8!86V~(Jiiwf&f2%PwCo{((JXim%`_>O^Z(RBI8*eP6ov@j$1juam8&Wxb zgJrTkzrlVb(;<~N{QUQSx_G9s;p|6Oe*Z?5=eHR8^)0Q4I7BceLZ>Uy88-tJjVaaPEYhVI6J=xS%#~w z0B~5YGczGVQr;gWXMy2Sqlsg9Wi{@DhztN%WGE1%3WNc#y5-w;J(TSV2Q{6P_iis3 z=wFh2BV$CANPc{K!F}tNB!3}ABxE{s!(6eVtH^*9RRj?Sb>hB;lO7*0ZHbDAh#FNC(YJEN zYDw~Sl|--xYFWfR-`hH`Izdu$Sz$zZO!<}yPi2HMA!WhJ{sO_rC-dGFeR)(*J1bVC z$G2q-6-?+N#z(ew>sfJSE-ROaFIjkSv2(gTWnM|$hFK_@NUEK^^1cZuo3OQYN`k); zbrTh8-9*F1(mDo^@S6Txc^gILWJ!}l{(A_LR0sB9cVi!+D-GsIw|F~<$7 zK+0S4w({W*f|Yo!k2i)N>O=N>N0&sqtEQ-|_X^{cI}*@X?y9NKeIM>^^?ljW`pAR# zZQ0ZMebW5>&>vIEs-}*Au=t1Hdw$mNsws(8P2rvKZ%SYCj6@N%uEvRZT$t5LJFVFc zEX14~0%#x7RYL|NA83p=f`*tJ>#p{&>gwQOW!L`oOCLtm9#~Uk5oaTd zn8`EmNMZz!&Lkq^fhZjQ9jA`{HYvr~kENspl2Lg@lHR&P%`5h1_*f%uWS@-h&Lf+O zW+kN0%uy0usl{-l7NsC#@?@kI#pjY{|NP0hy4xlg?Q`p=EC04u*3y?= zp{M}*32aD#ekhn`uDRG@RDRCNH@A|&t@Y>XPm#4J8@n3LE$hV%;IHu)%8^xL$s&}h z1_LOH?lHk^Z8B_XoKUWOE)nGnf}npXUY?5>rVK`U zSo!6_73fM+tXvkO{M1HSLtY6h89(vg~Ak1EMZ*#-anglJm#72~l5oKURtcH$_$l~&NMuZmJeh`rI zT0TzhrwMdVM(f@+Z9&Qt%(1DP+}bKhrl5pL3ARZI%vvWc{EIFn_Ct>wPb=f zxrQJFe6}wHgLD)%XL(?wo{jO2bjw{-6RCm<%;Z^dR>uJn3S2lQtqlPotaKbK%;!{d z%QhgeJr@r@SpSLq}Bs0-z-0Hg#USn>w7l_+p(oodzW6rSJCnd-RYd~nK z5rzxAzgjX^(2Evu@ig$08}8?wQ#9UCP?KorT@X{88AA#SRgJ-P zGA7epy*)X>Cnz^R_vCGqOs|N7ui4)#00je-MooyeRw6k~4RL{HR&VVriqyvBlty^U2ooZdS1Gg$KY=p|Jtj;W(N1>oF@i1;Mo#^G=@mxrtF2HC&p@Xaybh@3PR^8DgX-*1L6X7 zemX~0dW1ntn9!hnsFMNEjig`$@z({Rgbp=W!eY7wBOi)k4j(CQ%3EWY=h#CVV~p1F zXt0mz(y9kj8y6N9-cy~JSba}n;ljpL;U9KDn(FKbkmwL6$(f(`T){jPO4QFQs9reH zYO7g*Q_iWWLalBdn2R)QTGiF<3huZz0xC^mUr0_9j8AMGC!!ljqch+YEAwMJ$)i=| z&$KW^f`bu>OhjnU%P(?LQ>!gI&Bq`LC4B|)ZRtVXYaZG-&%F2iw`%>B>!mMK8aFYn zBqA>&V$R;P1B-w0KIqrXme%+8XZr_@%% zaz2Pe5S?&MWE{2O{MLz4^S9i7!~?T~oUM-0c~Rk-C!cs}bS`%EXHRbO=G9TDQToI% zB$t|>{eR6jiL93Lf$$OMuS8^Vtei8;bjn(s_@0y_cEi}LmgJLL($TjkyNnq#CymwC zOXrgFJOi!T>BIC)&flWFuSO}2?UZumGnyn`M-Dq2(IeL!xjZJ&y`kC~|Linpl*QZ1 zG9w}~%Rr`?VV;ziCleD*Oc57FIv9e^0VEyVBwNP1-xn$_C=TW%hexDhQ@R<++&>iuV9nZr;lfOvCuW>jV_-aQMJnEcOT=(ArNS|CnMay<2L6_Hc$qD@sNw9Y zNnlr%{3|vvdR2R?RWjSNBV+PeVOKu-t4Dudsr?1wq{=~jL1xyy3)fH|YYK~bKgQ-2 zTbvs1=4ut2OE);iXIqk5t#U--P;Xdg!g1l8^h3nKSX7?P^r(F@=H9t-%O+u%joa)U zDPYv2s7$djV@lb|Y{Zy8@QjH&RU@Afq;t1CHx@UZ+%o#f74w+-Xeozwv!atn>LZ40 zX|xn0nx%2dHBv3G0ZXAJPvj!oWm8#(r3A21R8TjD$n8wj47uh;ykmP;bJ-bKzWV7Q z5ICyDcj|o^3cPo%kTS7jYDak@$AL$TH!~nOnc?mA&3-`zj!Wj&Y5>Q}wV@f4IdD8C zZEA{RYNCo9*Abn6bb4iPu_4kABuZKa9&fPU>`!X24o90;#{g~an3^#3OHt_)r{R}| z0nUMEQ4&#M#@>y|PC-z2A|(p|JV#;Op(f>sT9Z<=D4l^!e(B}yHL5hF%Ic%n`;Z00 zN>dDmMZa6r_m?mJx#9K&D%d-g!4vWasJdmKCX9&L!>aSevhhQ%m*_554g%nMRAFu; z6*oqwJJX{R($x~6+ms7gGRJ3HTy?n#3CcDf1H8}SWxJF1_1BAA%coa6vz)Q1cD-6A zG;OScqTIToysB9>uG(FIa3s{Xi78dE{_4|Z7&@UgUA+7XCDn(IJUJ;SXUCJ@ZJf6-b$ZG{t;Z^{U2xTRhCEj0@{NK z1@d$ADJ)5NSeObH$3hTvI29yhZfk68@Jt}HK}XbV zuq#=NvY6*RzqS+{kTG{4i}Z~vne)g@vqeq)*Ci`s0A)T@>phwiSSc)G7h#!lO=6YV zyyi7!@EOJvx#6~il5^kv#mkT1YX+yAtMudROJhP~gnbTYRyxSZ8R8&g8~~hH1^G$@ zXIbR2;oGBep*9v9b}=h@%<|zr#29>xl9uT?L@dspbSr|FV}|WvTYvRPPfoChcQN=I za5kD|Zrc0UgBd{`y&<=U{RY&e_|z=fap*hs9$v=1-+b&!0u zK8H7#4ywEz(kaNn{RVj()eL^uBmbdC-ly3<_@qbveUH3Lb8YaK9y!}>YCrA7GWdW; ze#9g1#@ir&?2%vf$X8(WA7ee_DG}mRs3Pd(=k%S>*=`IWyfk;gX;$W1o?in-^}}G?PX2Z{=f6{@&(A3N#kAZ zWlj4F+xU1;GcO*IUV*%n_us8~bMV*rUS8`hv+OEiyt(o>9{FjHoUQPo zeo8&^cD&i~QM6aj`-70H_dp*>BAY$(E|0t$Z@=qruf^6U*++JJU1THPn(CG>^2qzhBGLvApi{F?4uw^f$!p12kb#+1z${q;;RI+o z_l*;Vlv8ptY9ou37UILjF5b4wSRP&AJ0Z2jX=VdR1Nv#zzf|qnb9N3Ka!#VHG zJ&)ks8-zaN{j#>}mF~{t9pIsz{`&Op6Fqq8hq4Brkdw4G;#qot$~K4tSgDx1+rCr8 zX>>)3M8l8yt3`gM(+f4btEzTaf#iTpz^g@0o?z(ozmoTXPM61g!-!YFjXY0vfWY1i zB3nBE`WYVmKazjTsLM+ymw>Fdib*_97$X za1*7lC+9hmyK)jGELpp5ZmofWR^<#Mn6YHh1N$LFfMlZlp?_L6(B`6{Rp^#b&C)`~${4W{QwQ zlP!Vc62XO&onR6#q)xFW#+jn>$B99avBBdKqXPn>6Y>2T^p=R;z(_k3nHlCIBog#z zdfXJQ%PwcVMdl=!q|Wpy)`VD-Ie(n4*gno46%Y_*M_*Nn0~X_9&TfmdN#;?WVSOzf z)|ZKm41HZtyTZV9g?9I_usfPbrLbA-MHHWrih|hE{M8v$o*v*cc95 zO*Lm{@pQ9^<=#R}PCAPR_br~_eg#?Zura`BE{yt{5FQyWf@e9oCVKtuqo%<4W;?Mp z`ULyhCq?&DhrKZ&p&lWBtuCC0{K?5p=Bk8@Bw!~`h%xaNl-!wu)=b}@Q(WapYE7QI zg3J6=D$Pbe%#KQKoVgm>JZ#6SV&Lco4-;hz>q^@!nHUbh1B^x7{>2bF+qd+{Jvzpg# zMx^COzozVb4N)u*B-6VR%@0*vjHau%rWW`#?5}svv8}ecJPK@x-<*MdczuPZ7N-2M zdQ87tUwj@^{T?DBpHJ9Sax<4l@%iZ@uMd-VLcgkf8hMr5y1c#oxkrAOp2r*SVY4YF z#xd`aU!hKJOLJa!-hZ^Kf6PC2oCbXD*KzJu0L9EtK4=xE2*B2NVs2-7O%#)2j%xd5^Zzu7wT9wZ|OFE1^U`(#bI2UtrTR!*rvIv8@JVEyJ=DhAYA9_FWS_2D< z5xXm&_ACE=KVy2APEP+B%27q-qHYH$DQ?H~-h(@hSiy+bduk?Qe4qEueAPIk;?0eS zvF-KpiY{X-J%wAt%-UA1>TXR6*EqMfWyK@!(QGEQXs=q~?95WzPt(kW29fPlY@9#7 zVB|`_4Sl?E1jW3%is}1o70<3qMXh&~^2@PlJUb*gJ zqAz`9lDhuXr~A_L6o*M0Karh-=XEcGkKX-sF~ZCIJYYQaK78H8sOyGCaV;%Z9E=$r z{aCsD3Poujw8WX+`8kFpH1}1SdHa6F!5H7sUX@=Vi{0&|#XuOj<@*KI$L9UWEQ+DF z|D0~roJap^6o#FXY80l8UgZ5RRUC|U-6Ow3dwBn9dv@-r?GKT+_^d6xv7NKDv*BFAo2>4CP)_}3 z*5qA3Tj=8OPr0w4vIb1H(h}mm?O&jKhaR~PC;t_CQGLE1a+2h`<=lr;<IN65dXG~53@E8B9q~F}0;8X;{TVqiXus|k{ zUlk9mS=g56^{?}ScR%yV7VBMT40u3G8(Yx2bVvKY#~t3$|NSLSvBkxN04)b#7lKI~ z+Duk=Ep*9tEoT_#yIhqYLQI-R<){?We(_ndOnQXo=c>1uPP_!qoovdE^Ia92vkf_QK|54CoB! z>plRm<&kXXxVzgCp$CIFTs^+UJeP496q6SA;BODK+?^JkgynZ_{=pJ!s#n8)57|WY zgyQ@N{j4{M?c80N((~?l?YUixD!mKtD^<^R&TGzR5V>XS!!G)fYyW`nobM}D-bc?3 zle3tQDsL0bJm$mu;dZ4eZx=$DUFpj0%tm`PCe}qRl1(0Yu1DTSK4P=u%Iz?1tGS&v zI*SarvPfHqY8SF=xAGm<5z@yl{7%u~tZht{KPM*UUM0 zBGc})=dvlj(La(?+ihLORFoB)#k&z~%ca|EFw1}_k09FSPYb?k9^nO|l%Kw^;@on6 z`l|9S&6Qzt7Ku~khsnjky<@aLWN|K}2$eOB*qMd|~itcvZ^ngkmQ zTQECN9?3~|G4?F^3U6FR6pZI zLcCFOJ2p?X>#2`RmC%M7_wOOzJie^P_rL3rPt#l-eAm;SX-{o`n0zp}S6y42?>djg z*@vGYV4EC-^exwr5^RYWyeZE7QFZrtB%+-7~ zA#%me7NXjEs{AFiSLM?XpZ^2;QRUShIn&btkDO)1)b@WNM|uA)rfA4vLnEi$MXqWN zJN=x9%is;)DvLD8MhLhQkU7U*}ql8s8W{#35ZUl2}(IoA#rD#8>~7Kn6k{mb^urXx+%l{8IW6MnAx{ z(>>VDvKoUgLB3QfaLHv&&r96H=GmQ{()T>_Y5V_^?HHo z=9IZS-&?3%Os;if$tklob0%v*HfkJYY<=7k+H|iI`{eqnXcw`yi{`rO$rdaNxpQ>* z5>IsL=5{d-EZ6ZY7KL?CL}B|64s!PE?RMr3lD$q}yuPqj-fYpyWEL2WM#pf17Pem^q^bTwb8i2H_%Tr^Z@o}kNgTzeH^tt`(CyEAyjv=@6`-`Ce7og?&o}*rJ6JN ziHbbvpRq`@NFc-b7!V)^ik1IdFD|6Xtw^Y*H|O9S90bnZZQoN*bqaGlfJ`58Er5PTh0PlDPd z7s)Z43DK%L6D?yn6F_D-!gOg-RlEAz{qD+voH%j%()GpRckvv8Ix@X8+U}cr7nmYVsBROO$GsJeu9+$_uS_+Y_R2K*C< zoh{j85iK)vQLRH*uY3hoTjlqZ4#M-km2#P}G2bAT`h9ig$=_`u)>$K1mzDF#$^9Jj zrRJC!DniXAcWa&-9FjA;P?h%(4Yv!`_Io|@X_`;@-sE!G;E}H&<@|}6{FpT8ksl<> z2mg#GZb4j=aX#ZD8-CNr!&$gJ%#JMq*G(@BxMDqlmgLZ1|9TYKZioolKe1xLV>6?Y zbi-mj{8o=4exKhKcUM38+mCFVS*p)lU5rDVt!vKjEU{enBtD~Ew3o*NRr&vTo&d%K5a4t$Hp2i==;37oC|K(aiP9=G(62HfQBtna=xAm4U&t^21Y+CQlx?qR zKlpDY?Aq7lPhYat-A3|&5n06X$Uv6zw$+_x}&Cna_Nld1mIB zXP$ZHnP=v+5mE>dhsYpeXH0KuPWn^)IYKDA0DX8y``iVqetpm7Le#t^geiOOg3^kMYS-opA@>8nt7l#J#)~d@R0`I~v^*um^&hS3>+W?X7J(MI z3i;Km05Hd?LA+1Ld-kezo3}qaV`Utwcpdb_uHDenee>&EW>9B@PS{T8@-AV`ETlJ?rLsZBB z-Xs6^3-Pyh;cFcOES%LoSG*v6|2F8fsUON#pAgqkzWj%>8xNmQ>Fpc*OA`F2TuWs~ zkB)lBQ(`mz7K_Eo!O>5Ymlf~mC!>W(A5}g=`siq(%*WrI@=o!S(OU8H_`C9q3@9(i zbhIwf+e`4QMR4$&5Lrma0ItfbIz^eF9KASX_|}jjrax-z)x>m~Mj}rv65V1Q zWcy-qjkr}jBA$^GDrXgld%#xUu zF@rJZ#q5sR8}nGq>oM=ed>r$Y-E7ab&#*7BFSoC;Z?g~CpR@ne{u{@1N4w*6$12BW z$4CQMGaAmI-Qe@`q+oR&B{u`{tR@yx_?6E9D^KJkvkM-rcL zr@I%sd)$}1uXjJ=e%bwd_ebt8Ju#j_&$m3k@*GZ@m$WQtAZbg|d&z<1+T`iU?a8Mn zuS(vWyfgWol-88RDSz>{d!IeO3O|DHOU=1jXk?cMac^f~EE z(pRS6m;PA#3+XSXzn=bH`p4;CWtcM(GJF}e8A~(zGd5+MpK(RTeHrg&e3bE}PxHn5 zT78RsJ-!XT8#6tbzslO_m;Pn`?`O}>z9akfoT8isInU%K`&pnctlXq_3TX|pR zUzY!;{4WaP3rY%F3icO#w@?+6UdbH}Ls>2hE6EY@jtF50XCbmyJF!9q#+b3(2=S{w2 z@=xoGb(8AW*4->|0PipHgl-=4Z1^vyx_2%xa#sWY+FkzizR#q_^a@l(ba0 z)VDOZ%xURw+0e4B<@}aQTdr!kq2>0Lds`l9d9vkuEk9}bWy^0{j#Y(^Q1^ zdl<7^8Z1b^t|o-jQpBo;a9R-#<+E^F6;;ZM;j}^clsm&|qu8vJgwvWxS7O6ylQ=^j z45!VaMD7ZwEm3Kk2*{2wJSHk_msz4Z40j+U#46VO8^tCuNtEJmljsqHVnA#Je3K|a z7!Ygm+yH1l^5;TVw~2))H-J1J-ZqH!!1aj*NUcO_8}!hi=mSK@Sc_*5-q!=aPxJ!5 z1?gU-2a(>4nh1A+n1yw>w5nx7Z5$ zs88Ku1!8J@8{UZyA7Iq(G%=6Uo52&`|B*vueAT(S4Q*@#eVftJM$lXWs{8O(!n|q% zH@0x97kNH0A8{{_LOy zqdImYDA|aWl;%M{kG~JJl%Wq5Xq{xAs5r5d4=oR(QgHq}@sK=EUMoixFN~d^C_hyWs|MAq z#;EaXzPd-fUwu}6A^qa?zxxt=DZX@HmM_;==9}c3?%U`)%Xhi&Zr?+huFR~=+{}_J zB}>b4X2oYEW~F4MXBB15%<9VO%lX+CqyIL*Di@%z46|&%co^+{sU)GjAEUk3RiSFC z7479l+S{4_sn6w0@}>HG+}=cPZ?kWw@2->Di#x8pUT#ltdw)Qi_&549ibpO)U<;n# zc8_d3cJ{IUV~dW>r}uYg|3J^gcg}bxdV9)|-A67s za+VNBmLJ)8WaW`1M{19x2=Tigna@Bm37!hETgJ;mu>B?F*N6{MP~KLKDu1Dx$Nnkr zDIX!{Bjr=93jgJw@@6!G@(R5v*!{rTtCLG)qg*e)C6~*kvPHJa2DwGn%4S(3r^|_Q zk~~MACC`@i*mp>*QcjU5l7(MnvuxF1p^GrzCHnCltE9b~2 zIagjJXUXq~3&gj@Rj{*f6nBZc#r@(T@sxN*JTHDIek5KNuZuUu@5B-DzW7jlCO#Km ziDOccZE~fYEiaJOa*A9l2jx1sN%qTb`Jh}O?ea8vq3n@Q$Ub?#ES4qmVR?n@l0o^T z3`mDuEHh-f^vS8btAb?>X|-S%5f2GU5osb_RI(l@7j9_q+0X;6&=YNP8)oGi%;Eve zqqATm{}FqX3$gRN0(SD{;!1HXWbY=}%eRR~v1*6Jkk~7JCVnM;A$}(1=e!$9xC+@iA!2r!h00 z70-z}@jX#5zAvU=CpcBSh?)8W(I|cl-TqTCUA!cIB4%KpJ6F7lxjroBh+kth{jKN_ zzZXlyTcT4O7N?81#d7fnafWyo8ucCM-akXz9EH~T6SUDkp({Rx7WykR%|D=nKY`@_ z9XjVl z@^#o{-6U_8`{Xs)b=@fU$Qz)g{tbQg1vJ~2;v6aELb*t`%lUGFoF@n5YV1`mms_EC z&c*J}CS#;oT9h}$GUa^OKHo5?8$~(=<$19}ekPhv6_js_6$lBD=Q6bMO+r2Jf};7v zph~dS;0OepkFXq}Ngf#ef`W2C=s}SG63b2z;?)O5yYkrA zgxR7_`G!Gl2QJnb4pas_iVmQu{8T|n6V8*uQ}AGX)36v`lAA@^i9y+haVmjlh zv55}TgYZYmvS%!e z{&GAWhNYk{-!P~hz&!xDIw0m#pU}p%xP_nfqF#0D)Ql5Y)43kXKMliJ$w0yHlp>FY(`%YU@vfhKd+g?53wq}g?b(teIN6*SN)S{ zQu=|j9rCeOOjPFsM&V|WBQF6Ry<#l~$hvYd+Mv*ZeJ19cat}g1cnwPi&pOmWp`GSA z@mA@LgwvwZ1gH0b@G}~Z((Ro0bF}@)=zBb_G`=>B`}t^ZG3Gpt^DL2saZ5Mcit%0p zJ3wI76<90DzJ>1^fjp}|1o)FV5IhTEF~aOHjPl?==MY`~O2DZ6Da*?`;238wf+_D#XLYdy&wouls z?cTgzIAnq_Pg~OD6JIn=Tj&$NZ=8?#h1O|HeB$oebK894viWmo`^4IXl-s^=K3vGK zZD9}FP#^hi4X~y(wg_Wk$Hbo^&kk$x>+)j$L!RwF9{;A_fHM? zZ>$G&ut2@nbH{o=mh0;7Ub|U*(9^xCPrTRDvu>k!ljGsuwFCX)rImx-J>o?qyT!9O zt5_?Z;5fwb103JY@ogOM*RuiP-$yIx$fX<+?Iv2)Xw6`RD4O}_S<8PHxfPa~gI1-aqZZUHah`(Rl80N> zpn>TvQD%gpbZU_x-M|c&g$+e*jlG44*0DEGqt|Z`Q&BF6H;Fygsq$Zp$@}F4^1JeB`HXy4J|~}- z-;*!M@5>kE47gi#Q=ngH9Fgv4|4=Pd`U9@ac`jzT#$_=R7Dwhz~-~ z(kLsS;sLyW7j00PvA$QM58n~r{hw&0^P`9GCm@B8LvB^!R!!Whom+KrUkunEodN%a zgJg_Hi980>KFv9tV~L%3b;?*g$1uj^lV+mcCps0o8K+{@CmYuu2W+aR9ykfu)#^3U zSllLW59eh8s*f|(q@Qht&)1NHIS1b(gS{gAAbRqz5;OY-DQg5QTcK9iw0>coe# z4(EYWV5!!N_u)gCE(S1r*I=(t`|bu`>X_xchzyGb+EazjVzfCR>TX=_mnp_N9r$cs% zIq*&`6?5h3a+y3sk~g9qR$>?YKPzO9*baMgzBo(viL+sM?T{;FzqmuL66eArvjEho^1_SrEc_$?6raIUu^Zm0E8%JTw!A7zImll@ZM2knyuOasF@C<`T?x~YCJp6&b7me@?9TBg~ z7vW?29sEvjzz_JAcw7DeH!pr9e=L6@Uy?tSKa)R~FUwzO(^d@jZS6BnTi4w)xM96% z+J^oO>-*MNrwtCQ@9*x}vKd)T{IoUp3=H;cS+{a+-*#(b?}p9YJw1KvH*3>-x=|31 z!42J;wI;4kYhs|aDS~Ed3OCTCH(;AFUYlvl`hl|YiVEwD2)beBita(%%yArLR*N=E zCv{f1rdfJT+N{k3YkT`_E#t^~g_YG>8&j^eF*RXmgP{%0Xmj+eIZ;_v6V#^l{n}h^ z#y)q|7I0v2%euAQTQ-~K>W$jwZd%*DX_a1fe)thp#e`~Y0YhyIP9UeEyw~O`$}tn1l_QT#(vc}jyAv*TLwzVg2&ED8CY!^2-i6fmVyCh ziq6i;8r$me;^A?xiCNP>*w?pyZTI@#fgWuw_efhCH5!$ThP9wVTd#L^eK%ce8r-mP zRiCy#3azSI?ZYT+&b=N=&dnP(73C8Rn@LPI zN1<0&hQ*{o+oHF+<+xV2gn6+gEGAo6Ot$D^vQ2Mj+jv8kZ4oiqri;m0nyL(>#Qi_Cum`KS!Eg5 zjc1L8x!AK|-3kjcl2TL$@)~UVvyu22hUtB%EMuMlN3XZCY?_4!F{*T!%jMw`IwfV5 z72G>KYh(1{rBz4fsiG%&dT`Q0lRyVDVVtz-GlkPIK|>OFBYT-cWvL*Gk{+MI9j}r(3_6*5hB{&CCpm&X8#IPd^9? zxv{IEI3xohU)RdwkP`4``ZJ3|YQWd~sG5){8X7~cMqgJ~!;q5D*f5l%HineOh1-3h z7(Wt?-Mt}0`}Tv1qM({kW?yP1K@U0-WkaeDNq@sZmvkY|9}?{yeVqs0k}!)yhCoOy z3MDpnP>+AJ}UT6;)a+e&;m-fb{o~Dr2)R7rdb2{fQ?EtcOcZV<3-VRW( z)9VY>QmVGI(>J7JgQ9$Z!f(D%8ReG|<_ql|K5%1qw=ZOE@8|-=M|oCCRa2_E%iD!J za$ayN6w}xf67xGkqLq*{@$PL6rBf=swfm`9(L)$d8O4gu&facZ`zz|~4ELbZ*Ngu6 z8#;?a#(=NM7c%5@qfe&B_KuLr-w-nU8!!SW(p4PNnBCxnuXo6_qQOU*)LpMmKE)wJ zS5r^OSeS{-M&EAVZnQO2X3PPH=5=(nd%Nd%cKACpJAI+xf)3<)i7#PNibJMA$kJGJ z5L+4Mx*4zj20z5b-_RXWR;&!k9uN{T6&8mq0UuH8K(`EH1yDe5u&a|$x~4O=*1$oF zLo_xu6lO*Q#}+tVkYe;&WD!UJ?Kxe(rrrK-8dPSs@X~;Ud|nVaMkR*U-#uM#!u~bI zL)j>W!jY~;7jlsN`x_p$#|X6vL*(^mb{0a2oq-`mX$tjrPcII|2G9kcFXU`&p`Iau z5emi9+kCvm@_5CeqF82%4?O4r;i0(3F5m7hUnmZ2D-Oj6S{HT<8G5I8W{2#3{_Vvf zSDR3+HrXl z0|a(8?8XSA+1SENKZ=c|ArF*KMKF^ow-Y^?0s3bEdi-F0%@7U=;qrsYjUiEg5QnBL z4~YS6ij<~>9ie!CgRd#%fcV+{5V;0l*ON&}5?cf#38@4h*UEObHAb=;;j%8R?lC7}DsO78o+oGd(b5re{WA$U@Je z0Jx#^Kcsbm(|%t`NG_w6{?RiR{iA0d`bW=v^pBne=pQ``(LZ{Y1blTokxB!; zu252!4@ysVkxX>s87d)}EenK7i$bNCkL8#OGa#|2oRI$RT0bfF|A+x`EDlwS4e^je zYa)pYl@|^fWnxnYlp>8{WfXh94yP*Mo4}M$Ky7+GO(&}fXrEJ3OK{E^|c!OKnG4)rVEp$yS6w~6DaZ26^Cm78!8052j~+qM8cipEAh=Bl>pYx+P!;* ze+E=g2NphPU93p8QYI#V!;_%9+#wIp3{a;zj5ZV_8bY?lqQ2cFexI*yH|m^xJesdW zuP>ze8^*AGp)S%X!Fe5z8hl2d_fbQxF{QJCG_4g%8|{Mve{)wz!)PBrT`{v{k-jP! z8oPS^AtM%5C_6)Aw-@QIPUwdd%XEV@=zo86cdgft7MjsdJh&CqcZx@LBMusA!<=|}=vLd#NK8PnvUY9>STG0H(p{Zl7G55p6 z)kOx*iCrEW;vn=#330JGE4mAgctXOME`dRY-H<6xkDgpbyNHOu7^jMw0)|(k6FPWWTI%hxuPbwPY%1pdX zF3O}aBff-t6JfzDupm*N_OMPc!(AnzYRvMMuYtFsI+@@K)c~h05Soa`Y~o@Q*zIe^ zB0R>eIRO&r&}^`IZs4F0%}BH(At^C0a8NR2J`xOBKsYmywUBTqv50UeaT?)JVsYS6 z=)y*%I*`KJj#OvhQFu!!wFD_0wv_NB!A>VUPAwxmPMtw`oLWw8HUX`R+N4A`wMmH; z)Fvf*2xle|y@W%FKEk2IO2VN;KhrfGsZ~rDr3RQTO08zPD7A*^qSRWZi&E>DE=sLu zx+t{)Jg$oj;6{E61(9*4o}7l{ATgcLLJfG^gtZn)!r81R31_Md2xtTDS2V zm)Nc+sl-`&lF)aco+)~jXX{BqI7d$s!nwe$kJNV_zj1x%>q$c2sV52j0+g)R>$^}- z62e7#k`Q(QcWR`*i}{V~yF^bC`lWi3&@V&Dsd{~v>q$b`ttScLioih|Tecz1d(fb$ zP1rPHE$eJ33Yq&tYIghfu?4*tvV?PeoF{bY=la5-pXW>PeYmZ7i`Xl!hJSgNI1i`1gE%Ev3Cd19Ka%2AbrH&bpq_*HCiObh zW>B{yeN;W0ZO4Ek>gv`O-TQaac;*gAk?FL5Ag@e`-pE+j!`|zyGS3! zT_cMBM)fHFK>Aq<;q-oRd55L%0(GcbOe~5w1qq9S*zjJP%BLKU^4Du)JS6_+<4@w;o6bpNz+EXuM#~W2j;{$7 zA?!ax_#xi)@7-vG^wZtjaPp(z1c$zbqZ7kaoHoSLxZn;HaFlB0LF7Eg_|I`#;w%d1 z_V%X{V42w;MnKQ)=(!y|=YZbZ(R(|3Z%5DV=Lu=YsMyhS`$~i^ge3^zfE^sLg99AE z1v|K4N85Is_(k>lHk?k<32W5Jw!JPUAk>%!obwxE4#hzFViIB;G3FSBV%t|7f5!30 zQSc8q&6u|LqS9|M=Igd!3t@Yi;~(2zK>BGLdTD!@;K6vkB{$7%jxse^A=`5ywY4ewX9lbFAkcqO^@mSzn=a%zi6m#ri{zpSM1R^z+t( z;4O35`VjM3=k_7%J!9~2?tbe{z~5v2HsZ@TzL4WR)^h;a%IS?9ueSDD&#-oIJfGt> zj+>+4K~7KNI2yl-Atly))R|>Xjl{q~+HJ*66swhE1IKR52)LwKz5x6m9KTC3AfEzq zG@Sm65SI5XZ%5)c!|B%;GK}~o%Zrw0El+S9;`jlM?~a1s#_4?=>-g7l`bv&3vFt=W zJ1m4$)fr78D$6XuTTpb7UlO!siCr}u}`m?@?`;WXxp=`z!WrgKbNIo`>HjFX8k~j(3n$ zYdCa5yozId(~I=!QIOL#!fDZ_Bd+JTmg9;j2+O~gOS3@pahyUiR_z>GqY+~rM~t-_ z_ZzT|%Laxt@XFr6aK5#M`(>2t;Ia-*Kg*cUGUl_4c^l_G%efwoJIQj8ooqRDk}V<6 zCTjr@YPXZic9KPbG-yyR5dlhbJ)Km8_#swm#Jp-lmXLm(Yu>~-n|SU00pt8ynS|W; zsZQ~Gsvj}gB$%y~=GyLK%ztw3KRNe4&iyCXxr*yt#pwl{UchO(b0l%2g($akkL=u+ zQtpeL`(o$5*tsuu=Ei$uFW^oJm9=x(7EZTt4K+lGY~ivkj9;VYGUl&1{VPg~?=a2x zsgF>a;Nm{qsFkvaF^jmKBE~ObZrsYe8lqOj5ZiAy3buZNgFLu|zjal6&Ta{+fI z#oXfeRJu#{J!J^3tYA4=LDnGBWbduuKCYrxa6g17e4W~rrD2|sT$M6rDfh0F@k^;K ze62v^%l9L3ONRKloN4}&Dg2UYd!On5lBxZYO5s~2qU}q@pUpj;&FQC@{)ZXz6hi{c z+W^a3fawV^4FRSnz?1}-lIctdGyrG_a9KZDzp#p756dKmPa;cLPEs%CnBaWxQ%=IK zJ4oEyL0QE>IEaCRm~e)5IO7EL`Z>LWtZ})6t??aXpUZu0f$!i}c5o{@$Vvwe>QQ`5 zAyz$ta1D~jS~BPTT#9!Qu)sl&_&LkT&zXBa=Td`=zlkw7F>Qkk-^8^|=JaGv^DL0} zaXOFb%wr0hn8G}+A&)7{V+!+_!g!W&{N4vB%;U04IKGH$Si-Ge#APqy*0FK{^CHGM z#OXtvu4l@B$2beQ)I!c(M7h|@fVcR93T5%lHtlF$=iSZgyjyvl>IZ~yUgtf|>s(I{ z-_CnoFU74~!1Q0hHDACGACGtnx9H!%B5B_&J2dEW=I{^P{%a?n@6*baq6fB@o&bgW6b58Ue4*m+^?q?a+o2F z%;!dys79u(k?Uz>+8UXvMyBdsrYgu~8@X&f()wQXdZg$VIrj1|a=gR)Rjlv0*(LBD zn!uenf%`)O-`wc|tGIwIjJr?*_n+uCro>Gt{g&!Ic;An36T%*ZZzEiWaA7!{gXdO+ zjR>nz=2fBv`%8*%V!8~RKFVn$$0|eq$nh;4|Bm51S#QCHMcLc+nC3BV>QVdw$2alJ zHgNhVrzNNV#ql3GzJ=r8A;#`JvY&ha`*nqGIOCo%-MQ`Jo&Klj5#87pqd!G}bd7$Z z2eglWV-TeNtV71)(Wmv)=%2jT zQNhj4R{{SG?gUEQ1A7Ays#n4Hp#MfMkHJ?)dtM`QZ3sk>%2XJb3PTthznZ{2QDqj! zI0cxh@Z&b%xuEu{(Ranw2-hH7i*Oyn9)ueaZbG;j;TD8j5pF}c9brGh9SC=plleF z4TG{_P&N$8hC$gdC>sW4!=P*!lnsNjVNf;<%7#JNFen=aWy7Fs7?cfzvSCm*49bQ< z*)S*@24%ybY#5XcW2|V_(EVd8#+hy~l4nYaodD~%q7|`hbPs-+<}gOpBz(a%lV&s+ z;FoHnk{2s*l+r}T*Whug<|*>1Ij)=8D{m2*cPg%6JFRxec`2_Q+6cLni?z_&->_fCz5UmSrSSQ-sK zI|ARoDjGgs|D9(b z8C>nAK@#&yOQk5SD6J?gu$l3>T7qVF7s;&LyxiOgRn?UhZcmNJPqc|`7TveV}>y$~B0-TSZZZy=@dE@YdM9F4)7?a+N9vS5ki^WsoEp1e^ zuC}SpjJVRqGJC-7@R$t-d%$D&SX9HY_~VCfoEPUr_;^2U0CbsA3n4SH!X^5H3Gtdy zg}_=ARXSsA@I$%lrKpEW=jubxk` zXpd>kdr@8D`a@Q~Wj|!{^pSh?@l^|1CS%YS6K?#ziKi-7jJ~gIRqldkG!vt{G#Fz5 z&1Hc&m4>%9l!@Np0~bYhgT$QKG`2jVSnJT2M069qR|bxQcLrVAS&GQ2$gappx0r-S z@z7`+G1_XqLSxMXtq-@R>f@cInOqgs)iwH?rkRi}XZgE|CT1*OTRvf+&|)qxm^^jz zuIroIyeam~_11_$U;3|+|bW@6i zIDDL&tcLqQ5?im-cpOTi+g({vUE|R-*)sRSEQ>jNN=wf7Prr1Qr!2X=w<@csBPk~} zupqDV)(e&;@0fhoQ>Po$IM-Tx490`o=JB9!w4fs<;t_$QR4k~dGRy>V{MKyhZ{Io~k^ z+j9#GtR9;~*%hA_@1EDuasTdx^HNstYM8Mp$w1$vB!p>-6ZpNJ$017?2%V-BC=XQu z4nB)fBQhACNlD|GwAM=%V#ryYM0a{xN;0mu#Q9yCISGWCYAR1ntf|sux;b@?b*bkR zL?^AW_B&*axm_AhMf?X7%orQysY+u;U*?%`KOXia;NgBL8muOo^~**-S3Jr-tT=On zc61WD!)!7rk|r9djW|{ftP3!ybajD}P$k%YjcEzeDWoRIII{_xE6%{(%W*;^^GrFk z;(b?rHRU(PcfB&fU{S7fG$#L2SrT`|*H1Jt4J>z1QY3e@C5*snZPMZQVp$l6Q{Qy> zJ+yI%;FH|x@B_!e$MN@v2O-hurHvsOpdK(VLrRTXNxEf780M$Ca_OwLl(pxvIL=C9_BF87GXJ_i>l7Uw5N?P z`E&;URap`{@=qFy=Fwp#3pyi76a;e<<4`T?N8R=qMQOoY!3WNyJ5X(|m=j-;r9y`r z^E5v#by(@3El6+RCTw1fDt8&YUMP;Z!lkXGHfknR7bQGjSCOaYq_&^7^zmD(S!vj; zzl#~!kG^x;DveP#>euAGsdz--G!{DiKy4U4@;K2Nf!}&|G(L?5;nP^`!c#(yKUN;X z`eqYJ!9-dIW?}BL^vSJpaf#d&)v2g8ss}-lo>!B4C%%{aqqO&C#7Zsh&sJrhbL2)v zb~umqkgiEYeIKGe7gm?sACGrBRMV{1Py!^~Pop9)7ADPfi2-Uy7&T#B#VM`JY{87t z+HoJ#eF{{wjK;M{Mh)giRVa*RVeH__%n*&SYIRinL?Y}z4=fFk<-$^ne^zs9k*lUM zug1i|WKvDkO%LW%qHBizy|~+B-ivE@HJ0^Kk8>aVk?lM3?)JUT1AClzO;AVbt=xI} z#8%~EjmCrd$U3=z`Fj96ADzFS%69NW71k#K*cvBUh1RGyPyA?x1I#`-|2k;vJU&m6R!|#1fhX(=Qz*Ok)10U;fKj7bDZKcEa zhgTA4G1N~|p~LT})A3Ji_s+lT@cF<$L!}w2<3B*hm7r(&Xoc)yYZGv($=m;ceJjmR z1-2&gn^11GO4gNL?ta?XW6$&jR^uh;ccLf?<{Pjw!MLJHJ2t0Q;2lM<9>>LEToYxY z0V}cx6RU>T;R#hGDkhaf*_JUaBi@x2TabYt){C`&RBI}ql@uRat(mK{6-U|H=dO1i z`^U7IsiULZ=4$27r*!k6zrMec$0#8NlU;-GqGoe>T(`? zB%>cZ=lWT8$jb)VAxBggo~JwrdH{zuypAbN^s(K>d)tVakK%G-0zq{q)r5 zEQ|jrVN&w4Lh7$<^0yZM%XwdF<%E&DGWyYe`{*a?Qt;Iw>VlRSt4SKbKdiQe#9HDi zzKUZ_?G470A{TP;7*vY6osY-Ixpb}PS52-O7wrJC{gZdSp~d!=e%iO?)AS`*nb$ex zUq`Zx%2n2pZ21mt1(k$j|JGYqE@Ua1^rX!sVWRvmZDS9>ZA-t4+OBkA!8kVZtXb{# ze)@>n+FRsQl8$|jW}PE;`Df#?wHOohSGkbKxdHtmD}N`Cl@6y>S%=?)uNG+x+cCDF zFap07ei?>yJv2vk{QJWitbMeMd*l_T2c0na6if_#qSDrfxaz^KM^%>7Zf7>Hghp_+ zkT(m+!DLqPb0Oe#cNpFojFV8uu6Ul*Ug;g%DvV8PY#PQH;85hf;n`hLn&Ush%m`_= z-hi>H?G>KmWd*stljO!@|6lXjs!OW58|SFkzN@?h`lTNF0`Wnk|5u-)H!_N?6gTM8HYY^Idt zX{VRR7le)fo6cR5oU!`{+uHi8x?^l5&G~b8O{lx(mR6X)7y+hN@@dWWQm> zsvEr!yn742v@B6X8k&@pY|G8@rDEuub_;$*PU1^nKrcoC=;@4fZ<0b9I!%GV1@&&)N6pHeSf0^PR9TnXzryKU=gf@TxNsTHJ65Dl zaNA7hIlC-r@wBrd<|Y-N>AbDs@ikzu?8i1i-rn*0^!|k-dsM5rq?!8)+L_1gAnimR zla%Xyy?+YzmE}aWLQYa(9}NaQ8BSP_{&aVO%Vw)mvy(jWaSppkktwF*h0g7X*!4zT z_^`eux}(I-@0U-GoBJboCe?TOo6^%JF9_sD$)7WMd>3FgS-PMJ_f5WH&kXt!pLQ>6 z-~n*L(w=}Fp{|^1;}37EZp!A+UNDx|o=$LxHey1~>wMhf&Q@3}hqv`KLrf-DWJiB9 zHt&OzYS$FTFS}`3QpWU|89sd@XiapuQ>x47oi#7N^mrqpB_+m>Q=elNyb;jZc| zjj!!Ff2K9AVtRIlFC_yTQ~#h*OZ8TlPwj1+;Ox66sd-*5D575^sT*C&IwJwH0E-{` z0aBlp9s|vh0D0%tf~6x+czEo2k1DpgPKCY#ezj zT6rA!mds|~!I=6uZC&D3@0_4Nm|t%yS7P)MaI35?Xg4vx5?qip30wP{jN)S%g=EJV zrKZ8?9Un=POGXA#X&(8+X5#~~udHyu@VFK? zuF4ttzO3=BuJlcE8I7cGR*Zs9o`Z|QEzH5NZ&HVo-Xb{dov&d1v;r#=`W1oS8a{C= zAAMDx$NMksQM-^8P%lJfiHgk?d14Y1SW(|zR+*h1C{ABA?aAuqjJ%9>#naL%ylE4v zr_2g0IJas?*8K9!Nj0^;x$8h1*U7Xk)oBY`);gSM)8Y4oE$H&mGNK^@zwH+&7O97H zvyMMzahH!gejNU-WcWgGotSwJ*as#N8?+m-4T9%cY<20o0#jZNHX^T9T&c-X^~!pO z5_I%C8XduWMa|+#ct`M#pIO>RymM)a+E?^iW^* zUKMk0oZf)vikOQt9kSNa{(Wxew-d}GFQHFNBkvYS$~Ae=hZtsC`;39$~%NIKA{>p(30H4Xz@!0@qE*TDL5 zsPeSxW%bswk78oY206JRwI)YedeaRh&Fx8nm5byv&TF0;D0L|HRqnbP`HFF*uyIjw z98txs^9Zj5HITk-I<-2SR#_c>FP$Mo@M$CoZo)4gTpI-^iO}Ku>7*}$PphmBzZ1Wo zFb3bitE^uC-CLsTr@fPo{{VhzLB}s6E=AzClh-a%|8)`ged6sXIIUoMJ@?}_t}Y*+ zC=*$-;)71jsKD+ezlttfMwP5dk1Dm#|2WTb&5}2q%D22DR{2@dvGXxfX|S0$p)79y zJ_>gUW|)r8WlXC2w_pFU$$UfmD)Xi#LrZQPrBNjolHvo{B!Tf&qscohFilp`}$PLKv|0be@vRHg!z-e za}R>2clOU2KYpj(a`n82avewHcf2EeWxso5&EJSBu7P{E9n?UgXagC6Q}1;6f%(yJ z>YWbXPaBU2KJ`wA-?<2IP?&(7lUdmV3a16FW)pTzFqmok@IUMd;n+&xT~m$B%QJdp zjweBtaUZGj2ab^)a*JkZl%q+F)>R`}e)bJ=o7|^!K?C~a!vi$xaH3s@kLds%P96h- zlOO3)JQd*|{j*|H;7Aq|M162_B6bJ~nDKV3Nm-e=dTwYVa|k!ah3n-$r zFxe9y8)FeU_)jdzc+AS;byQ!`k@Um842=(`GaVLT)18NNqCEKHvp9>-j4sveT2?`B z&k}bGx^}J~Kc>ULgJ*#^C-;3biOr{vqQ>IMEaj8xZc|?C0hSMkm+V4YSHE%}RwdnkH3gs)oT6n$|W8KZo3!D-A6eYUnj}0231aZ}Wf^zpZD~ zOvV9ViEjL4GEcdw^-?TquWy~&QahonB+KVbPK?KpOp#M;k*!FchRxd7&O=XiO}a{! zKl!+|@iQ^rD${`w_5|(<!IQ1*8Yb`FF>eGy+m8$BD z@3ve2YSt3svnRT9=9kKIPMYP!b()1&ViZjBI{dN{={B6(Db32ua2{uio}e=wdd)9k zezjq5s9=whfw@APJ}7K;C$@$8`kCpNo#Um`R6Zn7<;8qzI+g>!bRu>X3E7F+Hj7CU z_*sQ9R|uSXm89}KC-@+8^Waf;%l4AN$)$&~EqQCF#K$M)BowT!_B zhd0TSrd*Xdvf+$DEp5g2sn{n6jV5o~l&rR(!{l$fYz=HTDJtN9eFAdkrqfVRf_;w5 zVY8le8XD)skNLTyPeWmzk>yQ>8XtzH&fJo2Hr1Y1{GD^IEi4W!ElJOtla!U5KP|2E z`ZdXCHa@*dWB!x&(px1yUj_a`n?kLO!$~{p@EhXC;AKQ*1b*AmF*s3AT2{y38^I^| z;RyU1x+{TkT!1xd8^$qF6o`^wksUkCcsk8d+MEt-HVJ3!+%q8O2$AIjYGMH&dWM}s z;WepdYz@K|gf@NtEEBIn?q6uBT2689(z$sv)18NcJ$7@!c_vqFZH|=g$*DOhMvG?g z7}eZ8XUtw%6&v&0%wr{%hq@NdGx!=e%(ErM#K$|l9aA!APbGT6C&<(*kh%$CaE_(upU}3_Pmj zLXTX)0QEF=OO!mg8u$W+bS~=7E6#RiIBJ(?#5f!C7w60=%-mOA+M9fOZl&3hwXGr{ z-{UN+O4RUQF&ORMq{4;uvzPjf#?}^7^?4I3T63$@`+Uu1l~psJ?8{paNX==o+Lo>; zG+9e(l8UMmRQewtFe2(qwGtx*+nIdPxK-B0;$=w?M* zaiLXJThIs6C=#k%iQK;MXGxJ&>Mu!6PKXzoGILB>@P(Rhq>^RXobCA*Q_X25|4q+A zvC`z-vnJ)gXwk8mdxSM7oqAzLSK|?$=|>c@k97FH@Ch?%fFlacbRB*}*xu3MG^2I+ z-YEEcQTSJfPndOln(2gZlGlV!m~}X57`>irX>v#CA$v-P-yA++u7Hm_jWvv3&+Xz? z6d;TI6M2pD5pMs~w}#@O=5cxtO#vsknC0acslRk`_G7f&*-9>|usCk*d@RYOpBQ1v z(G3zTj5UzC8}b)vOSH!B@|^Oi@dwnNa;MyB?>BVssMj8htIf7FI!D&A#>&S31*kv+ z)QYu1Hx9Q{2kv-}Ip7U#nNr09L{9i*m<_m&1Y=D($qk<>6kKvsByLoMaX{#C-uUv; zG;e&I$w(?=OsZ-~xx>w(khx6@y)I^aajQnfw68yL%E;?#R!m6kte-eRsur_3e^>jM zIxLu#;eMgXy7ZSP=)&Lo{S|q^3e{e)c=qaLMm77YB`qr|5)#tVj{RzGmn>8>f&;T{ zi7|2Uj^u@tGG^7$C@vT!u8>sSjZxC%zVKZ*9Zu4t!}spcN1fqnT^MeXx8Mfqcs(RN zgiq4*V;=Qp>@w#=<0OmPV646>VwI3Bu}%!TzTDeLIxfL_nNM!g=<&`9k9TDKHYA#= zpmMQnpH+D%$CAIHK0e;#ORyRqGnh12c|`yhxSq}&>FwFBrFL&Udqcjn``g>5m~v0M zneLh6b}!SCDLR9(sW8>)#v(*8$)l)YTJWFs7}QHh^suGHNsGadZvav0G}JH#G3e?p zJCbB()*bY&PeI--a!nq#ep?ptN;NjWv~b2Zj@rjd6~)dh@K z9`!+e2z ze8UhqxM7GZF;YNkZPG@@i7P97vk<1K3JdDq+#0NQH8l$>4+WJfPU7|0bMkMQ$Nohl zsJBcviN^gNDuyZOWE9Xo3AE+2W~1+3pxK_%WeWcXrfg;z)ZzQ+0sLgZXR=MA!}tD_ z;iF#xzLGVV4!`=4j;~WdGN{9^Nz~ydwtMZ%WB6w&=Ydzb{42yJ@swP_?G~Z_8ih2Q zUeC>M>G;rWvYKrng6B%AALsK=5Uud0$VP>BA9|UaegYKS6@Gd2tnhgF#Ij&aT52qA z06NLOg)f4}1rmpASE|xSp1kq#fej1*%n)oCaX8Wm!Be1RfQW%|*<+wj<70ewpFUuu zW{w*$Xqd4BKt9#iw6XEKJZ(yPx--w7n<)*}ILD!&Wnt8CHYFxiT5Y8Tsw1%co(p}) z{yl3Vs0#Oj{x2(>T!AQ9PI0jY`0!7XB3u^I=zc1R&`Ea-G;R9HtzUX_lek$xeACDN zyWpcHdF*v5Q`(?UY{C;vfajLZ!%b{&;=Yh)>_Q06x8cMxk(S8)P29BYR5 zud41GdDi|x*7q=G&G5CNE{xeTXoGGO&|ZZl8Ste4+yIv!qw{CUd5ia`=aBHk=jWnNl$6)kh)W3>3sy(Xd{z|N`s(wk}tmM|5 z)d`0ZW+eCLIOT$()=HU>`A$~lq!E1XAjLGkA7B&3I6HCXrNv+{G`bP#mr7Wn#*muK zpG^xXc{uo0Ki*d6-~cQym(J+nAvNjB5(k1%5MMXI_i&K7_c}rWT<~_Y;LARE=V*9xp^DU9JAe?GFXBkcmxEHv~ zZlm+NpgjQ_Pm=HdZGj4tpFXbZL9E-7x3YGO#>fH%%0i2JPgi zbgqtnQy1}z#DTqxCH85>qt45^&^lQCVYH-zuunsIrmLb3D5; z%4;iL4QoMX`|3?Av)E#>jB)Dp4VzczPhC{$wLltp$B%m$@StRhQ{Td1KS*X`Ciy^4 zyoJG@rmx`ZZv#DT8&|TayE0EjuZFq=aaMqqy?n}x{&TsWMZ(laW=4t3y zKfUSn(#1BbFPO1>Zd(7@Q~0(X?GKK!)Y7twRXqU@jG7K7%TkB$1NGx@vMhD@-kfMS zjlK@Qx*{4*vqFbo8}eZTgSh765yBt6{B^ab05CC%Ek?h@?Z%a z2*|el9A5?m-4%-)7+6fgS1`y}!jZHh@^VG0lB#=a{Iu2AO?PZRpsL2cxzK9p1_pcr zCfvus9UH67R@zXUU6Y`*)s^ciX{f1a%drT>@V;r`6 z><>C$F1>IexcuSlhLN|m7+-LMQOcC8rG4ai)_d>?`r^a!eJRfO%jqhZYzq`*`%{vW za6F;lzjJGWyYl#MXojLfgHQ9ZU6+Rwo~&=$m8Y@}*6lc{H?D@%lY667PTz6vvCSv- zX@+yv*YznPB{YZi(Ynb$Hd;s3Oh|b#Zr0&{8V$})lhQaTCj&h!%7x9Xw#}Gc9p|uV z#unUY#rEDP2XGf0hIzM&C5Q%ZN?mD*6m_$v%q*E)I=L|459ciYkAPzGl}BAn!Zk|_hmOd3vhXd0h*LId>Qt=A@y^USl_MbkqS?u_){f69IT+=EjhbL7ZB;dM z6HehE$dB_JH|h39xm}?T+DG%StFghomWzAw@!7;8>}u%5h^}nYH3m|6xcZ277@k%I zR<6W1(!2>k`HQ1r*aUdo?p#l9K9&T!_8-yye0>XRL!POo0+J3M=7U zOhi908}(j56T`&&|Jaqd$S(40yE6Y!p*eqJy^FlS=t;?ZpZmm~sJk*px_ftwbtTdH z`;)qYzAQjr$k#yL(ZXO}Ja)WTVK5%(582Fg&kJ@E4)9n~vwQ_Gm~n?hJ(YJrp6nZV zHO^FU&aC4c0!v2TIl&+BhFrI_eat_~Zh#VLJ=r1^)AGl|ZS_o1gD(n|ycKRBw)V z#oEa!#Yrh;dj!0|gDS};y^!G^!yawsplgQ;0* zrKzrz*q8|u6Jw)$k(!$9%P1{>#b)iY+ci^Cg*P_aom^ZxVM^|dwSj@O8AYiTrDfit zI*+S7Ej`y`8SBNl_;rL_xpySe3+f#>+^;MJ{MKxtQtz7eJw&taH%P#0`ke9`tc_E| zSwT-Vv_}%oWhR%F6q&HeGGZ>`+*#kUW|B9R&u3KflAQ;^&eJdMtq31Plg+7{PdKI_ zm&(O_b#E*iSNC$rvpywfN}3mUAI;<{8@sv(6UsE92A_!088v-q0HK41=Fg<)joHbk zVmP)YRqRkqDn535xpZZ%u_y2Jg;k5!P0C#`C)JWvU7|QV);NzfJ8)*3%@Siv3i=WQ zmF}FpyplviR{i-&saXLFdkbgwO-Z#R#(R@9PhXZz7aA0Q$LwXx+mafy^JXP!sR=0= z^Oxk8%&=?aGYdwp$@4)ntdR1Xm8-E&ghw+LI@ZeWBnu`!c{J(XNDIHfqlxTOc{E+) z9!I*3Z#esU@|B=uVt z*&?*Yon_sc>O5jnZAl%yN9wD1GPCwzQ&7VA}s0sj#L ze+tWb6pj)7l;TCGPxc+YWVV{jfyp_s_%a5^ObMp^tvFUnUA}4ix_oE*j@sg-HP(sq zmK2#iH8t>cS)N~gx~|KJ2C_@(qX+1?EiBy)qTyus65NFU>FSbjyJgBH82>T&?WFM{^c;)8Z=@622%Ic3 zz5bgvpgQoJ?hD0&=cXwC9$)kM>a9Z!<_qTifSeyA7szwmBmB`F@YQtuAB(5H2bE{~ z-E+hB=1XUuZeBI-_IcNyfzlZxXUiV<^x5?BU!wYw3+w9coyz^u{|6 zEpWS!ev$t8?N02rZ3QF`6cu54Nv)`*RUImsi={kXO8TY=em!*HMucW=LWS&y*LKyA#=0vU@j4y zxS_-M!aFk#CvNEQtNWwjN_v0a<6@4NLFi> zDROcTCOu4?QC;lHSg`~hK z7S*O@;08{tu)q8W=bqQ-+BV+nfz>A4;^Qp1K-rQ4Lk=IlL<3a@hV?GCV`Ll1#q{J) zW$;l9KFdqPQsIGz1|Lq5#yaks882=>M0p=5myC?%G&*xTJD*5Oio+MHDRdQe{17ba zFbs>QdPCl6+7e^qit?O_Y4Jx*ja}tArBmbYQdd;;6y96vlxJ!E%8Ik;bZm02cE+|T z#s_1o{l-S~$V!X6-ac{xc^S}mLoE89fxYsP)=&T>C&c4ZeVm!ZnH57zT558VVx;~j zGuWL-7t)T;3$uY-E$EZjNuAwA2g-(S7!$>CP3iVTM#LAx9&gfrC!$gN*{49mohsGP ziP}^+$6;s8^9Ix4F}eM{pRWjTeDUGm9bPst;dJw^AFDtCmBNu2U*bHB0sEaGxaPRx?Q$;JmA zrD;i6KjgEqBg-uEX6MMc%A~P_6dGURxd}Ya5pU`8mYkS?Lnr*UhQXf!!BgAJIHJsg z3=-SJdB&6S#-tB7qDi_$53>h;u3{Wz=^Xb8BMvc*a_9f+?MvX}tn0j=|MSfAJTuSS z_nA2}M<$ucHOb`8Bx#a1P12;LN7_Q07AS>M3Ic7RE+C4lAR?@Cyr_r*vL09td6gB^ zT}51UJ$8L{-*rE%EPQl#m6dgmkFO-}_xFEhl1Uq(uKTf{W@et5=lCDL`_uvO%u@(J z5wND80&{}_34DjwgViif5)HBl%Od$i|EP8@o_Yr0E>ujeYzn}uAX)T`1?OH+tTrha zTn0J|h<~PZUp(Ekzx?jX!IogCXJ5m|r9}YqC(i`tsT*cP4PL~7h})Fjay>{BM4uEt zgVjyJa&l=U7=a8Mk3qh4I}C`fBLXf>hq((_cgv9fg$Wl?PQ0{8t4H>0ASb@4hF;d} zsQg57%cL8b(A?D6nr?-OFvU`<-ruVGSITmjTEW~jT)*{x8}>JK{t=_y@_73}?%du0 z6fO?A*|YH0aXz7@V-C#MS?ms!Ge9BQurpR|AKC=p69H;pTxRC2G z4etrJ9T}mKBLBz&+n4&g_zFGlP{1AaL^)ThLm(Y-)*#IpQ#e?7yqyiL;7R?U8woug z4=x?6Lkyh`e;hj(5RO%>7BdmkX`c;51*Q!OByeK$L`XaMVG+cVHcAI`5Lq%6RY^hJ z&twv>`-O}mRBT0DB&}s0WEQXr)9DJCJqtp4%z@l}@yrTP_U(&4vJ!hRee>K391is8 z5eO1GQCit{@oPd7T`5b@vb?YhNCAqPLTz7`jYWZJq+{7Jr#O0+!Uug7rKZB5uT;ZA ztFSmsu$Z7zpsU~bTh9SVib7{cKIcPn0HP9;Vp7$}Q<&7_4`^B?U|lsLn2J!SJc5V9 zD>yci+^m)p>JRcCDW(Tk?i&87{3S+>|j!J7o zNF(1OcIXyeD_P)5%OWAEFi%N_$%H%RiBg)O%qLU}s3@1~V*FsUqu5D4f$z4Bd1N`= z8xMhg%rm{JB=BbVLlM!k>p95*tDK7QW=QDZsLc`Uc=@|9tfW{0GQw6AX$$ z!7U_%>T5petxv~rjy0+)Rl>Ymo^u6 z_V(^9G+%l!aV17MvK;1`82SoV^NH~EvXdJKxu%63@O~m%2s|@)o-9MX^2X2af92$V zy?)fb)aQEeRKrl5bgFOdJ!t<5%{mG@#5Yj8Eht=5G5cW1^uw4fle3(Rm?^+J!f&n; zMDU$s#MkzLG6!b_Sr!(7BS?<{Vl>vDCI8X-rvW$62^^kuNbE-0Kox3GGe@to!-+JY zUX?tA0H`*BSR-+?JfXzj2DY=sA>QhkO0q;S5DSMk2FhhtGA^Akv3JVv+=Zxj7@!jk z)=|3+Ff$KLwFH<6LXLv(95V!~IiuiD2!dp&Inecao9+uaks zCb!!Cz7O$tj88y)fg8mC1sJd8g@C%J{nCr+x0TqQ#&H{aY3q^4oNru(a}(IIf5Yq| z!f3^eP)e*Nc7f6?D07Y+GG`^>Z%heU-A`hjk2`%fd!NUJn)) za?x*DSgD*w&_*4&uU*aJM0{?@&OYJ#tM2S#o4vud-ZEleXzZSh252#{dG z+C|_^>a4UiXWexnV@;VMK62n&s{NNuRK1q1-p8zWZ}+PNJPX2{lw z6Ub=Kj?AQ=zVLksOKe|{EoN^lWcOcY3t2f-c)Hr`{#thX-6wYjud6(8P@UQ=({2x) zmmfDsRj^R=2lkjXY$&n_*^96=DuS~D|0382DgM<|M;Iz(zw}h*i!SzA`=d6o$8oL0 z_r{&XS<9Gt2XG*bKI9vPu?mWDK%qdYW0ee1Q3WpC!-rO-ps=4&pcfO$8_OFj!P-FBE zc9#Crsq1rUY)i%-bpi+$w@)4ibTm)Q%~=a=3CW-HSi^t{Nf~-u>z$hn;kaT*?VSb? z=!MTd@{SAGwW2+}aUc*uDuLwgZV8kNgoC@6A7dX9UnW_knq`P8f46nKw0GVrWxZtk zX%*26!QSm$5w`V5y`!%(v<9#ERfLZFiZ6xG@)P^D(%dO0a zj`K#WxT42NactHA`HYn2Vs&FiKGF$$39?KdQQn*5s8*XC=Cj+7E35m{>9RLsxk zztQICo7@z0H>kFxZOZAlJI#Je;ezc55j072G@eeZ_I`|~4RKB#xkxzRbXaS;FS&{# zZ~SR%bXchppyiDoy3yF!xa>uv4r z$4thTi|imO-Ugw^T70ld19eF;MEtf5f`<n=*dW-TXUJ#u5ODaIn3%0o!VCObzy`>@%1EHm}k3TDGve< zyDOdPq@EpP*1#dDkQu=ShRP6Jp#w&kMAl3=B**_roxT>eP!9;;Q7MT0YM4gA3GYUuDy9^c`eOwQ#cmsjC~EJ@~= z&y&}TJtHXC1j!TF*d;s8AUBaxJnNa6Q=ZWw19kDW_<)ZJhS>smCwR9`- z#K9`fNdONy*I!{k8FYj1ShUG|pIc%lysFXXiP?8Wg0z)ct=Z#6(FhjF+G7^!Sx3(2 z$XG>3ThQ+XOwnGuvDXxl-z?-R>5zfYUT1u@jm82WAlfU;rjj|I#EBA6BD>1Ma8R!Id$CIsa}Pf<@n& zMS$b_!CQ^uS0oj@R)7v`IxT?5{)z|b5=Sm0>Sl-dW&DmHr*(es#9a6D-y6^V9WX!6 zlI)=P!v84M(}IZm{2i$tOa2zJM|6+R;hEoo?hV%VZw=k6?%i5;^E=W#7F}g4>k>Y~ z28?$%;vUY8@&U@upnUZ(_Ipx3K-pW9K2SbDS(o_C8I*63D4*tUcCV#;IJZXnK>09N z!liShd@G1`7Uip-bomcQ`B?P#B7JiwPhd?)_2Qe$I@{y;`>mrc0K zr;wM7SP7CqtHhq}2e}isYs~Vrx>e1l7XM93-JfiZ$5n&sumq!xrG|E^LCQTn5Gpr{ zveMC9Y<1b(dH={wpl&qU*Fe>>;2RQ~MT}7yx7TUlEYU!I&L%ns-rF7wP1VoT>m@RN z4)`waBjxz4{je~!RSJkbqOls`8&hBz#ejnWN`Q$q1X972+i5{1a(z9j3hK&wBz0{&>kpA00^UKs(3Wimd3(bp*^P~gFCjSaEQ7?(iKPmB$N z0c40M#z1JmO^6sOYN)Lpo|}pTLt=*jTGP*mM0W>)F^&Ni|F^fh+fBnuPR1*jgw_m? znI{@&rW;+3&uFHV@i9Yfd<4DFoBxHK0RJY){vP7z1opY_5om+&314Sn_8@jI2Itb7 z?HVertN`dEl~SpKzpsxJ3M2G~D<^;#|1N$372K33kPO*@(z>uYA|{1Gul%ZC&H7*U z9NX~zTT3THC%ji~xZ}3cbz!F7yYFCM$L0I))b87Vu)qEC3sA_2as?g|e+qp*4E6H) ziq%f_2&AbXBKyd9M)lyDc{P%qFsDmqhCn*;5JHCpb*F}Ph6@*O@MKV;t{%ETuF*C@ zF-yu$!Hi4zg~D51S1J9rOEf%6&=A;$Ck^yLSQys5WjQBC{gv?rAz76p2A z&)o9Oq92`cBw^&Va^Z%}pUchdS{*A6&T*`#6=8!Pg zN=&z^=ms6aWGGCpj?ed39w~0`Ztpp8;3p^cfBitLbn}PzZaIAr*G6$|rFt#L6up)m zlr4yj!1+h}d)m9tYkg#-Z~lPm;OQ-UKYVj3cHry#PyB?Q+_n5LyG{Hyw4mJ;doH9Z z1_^PWO;9CkshMs#=}5D@sODMDlG`#OPpH0+!~i1X*YKGk)+Luo zyAbJt5krZu2JpIhaw&ovFfj@6Csii~@cS*H4VV~}%0O7d>cnW3t6A+JXe0+_@t5l2 zen%d)YZn#e`Os|H6wNtX!Zj%=J&&L#21I+~Lj+ zkGS_hOHF!#B!$>;NH5?A6U&>}uOV4Mn(WkrpdnOO|4ojQIzmNqm+9pJlQV zBR4&lD^VPRCP-&2;v`Iu3zzP5p2d12rnScC1SvtIqS5JcWo70JypL`E^TO%J3-tE*>9g)(Mwd{258}PJ z2Y+L);==7;RF^t%BfNWYCBFf`53LFctMBFGP@aGdX=Mydt$Qe*w)RW|orwp~lfI}w zp?YV6ryStve$csU=O&6PN3a1|%E1nJNC6-Lze<$s$B?U!3WX9YWp0lweH$;h+H8SW zn!nP{;eNvB`Tc4*ge~KJ+;9&Hn?};7G`o5wu33I{d5ql&Z%G1`$Vai;ReD0+zbW|V zB^hz$I{Bcw;kC#pat4#kN?hDww^>0y5-dTH{`I-x84511HHG12WEACsl|ZP7afddU zADe9)>#fAK&uSMHOy_;6nk_l^z`Qc&A3r#nGJML^*b(hgm+qj9bpzSTvemBA|5t%vcGO<1%fMKHd3L@Q}{?v;XO^cvs%xq?xDveA9m1d;9c zeefTCt_uqzTUdd$a3C3Dqilp#*f1MngKU6xu}+xC`tf@|%cC4fhNXpH3a<%2hXVW0 z!q0@C3a<+PD7=gohA#uSn0|yZ7>@`aLmANz3-_Za`+Z0a{tyZv-GxG)?}hNR zL)eOBgIQq)#oso;1v(*&3uD5FFpM;p0dnO4RDeY&VMFcp8fkke1SFG6>KcSXT#f#B z>(m%#Z1B4JR~Q!8{O=&1NVZ12;kEYWhu@_7U(xH3f%`*7p;s;m;Il%qLEV4oEU6?_ z!{Q&v)vVvPyz;*0(fX*$Ye%S$oKJy*zVvyW@mlvxIOzG1^numA`h7}m{N4DVPY$XK zEe8#U=AvXfyE?m4-cI&_=5SgRtL*k^PN&7HYMR$*WJV<-1ud2!i>NYkEkZ`4$*470 ztWH>kRjb2p)&iP2pjjObi(*%8aG2ppGnmYABb)<@)5-#7GqajSt3y@{M%809nKd}v ztQL=AR*(#A^;yv-9`z_qE|bw|G&$f{Mc|sA^Jn{ zQ*}SpY0^w~IHPS=8?IEHMvKE{Fv>OyaFS#;#f2+nFLN4=PSK0pFWgKu8Z@KDYP8$% z5SydeI#VppwDQ-5?WO0suR>Fs7@TjaF={j#EH;nTroe>NjZ?n;OP!?KWKQ4mvfrhC65$tJUZ*+H5A1 zhJpx+(G*rylqf_IEQ4FK95ktj6<|(-Y>;J?i8mmw$Y{ny%m$j4!>HnJ9;?A*aA=z1 zR**uY;DNI26$9FlFNuj!?u}#Bpb&!h^k0|j}*+=2#iEL zmJuZ|!QoU{JS?cNQm7DC(I;#X(nVT<6yA(LToIO`8&^+<8oK`3sG12bv}Lr?)7@5V zOg4ml9u#z&WRn^gk({g#m$OO0wJe-7c&n=ElnbJG^ty~x!3j}XkldpPQR1RIIsG|a z>6qhVKR$Z@Vxi;6r%zsS|A9iHYoP2L+hSD13*FITcye#^#^7Ysf#kY$aU`+%)b5Mk zyR|Vfb^Y#{V@*x%fBYU>HWP9dJ@yd#;i=mFBggKT-Syy&Q^S|PZ+3K{D`c7-+fW(3 zbYRPz-_hZJMX@OH_JxC^*X-&XzWmnd(Gz>SdJ;paewLO(y$5G3W|YGyHiV}}xm3EG z5#NQ%-ytC>ps!OR+Tey@%Jd?o&<)tTu->9@0MrmBwn#Xfj3gr?lm#rKCmAgZ$93-A zLuqZmyo4@HD(V)po4iJsvDS!b(=}OkmvpHWQ5Fu%r*n<&TSMi){T5qk$<%uNgk#LI zIwMchE5bu*YE_%u^R+Y1>7NJ!~5U^td57KGa-DQp1atJHZ<1?}&)8Dvv?jKGW zher%@_>v8?mvj|V*c0Q| z?Je0Z`}EkZ;~Qh8z1NKoUN&Fsxc1_q2M(~-`AfI9ZSl%-wm*8ZytRd)yl}%{+!rYw z>AB^V&$v^u!t9~mt?xfFm@6;dv}yF{SR{V`cdqL^LV>%1$rC#~)2YQH-RO>E8AmQ4 zB*410=oLnVoqRQ>V_+px6O#?S-MKX8k3c{y2!z+exCXz;>#YZ^#z>{uQok0)b6bn- zYEuB>k${G(l_Hx|-)cd=^q|c?ns5(nOeIHxid@VEy8J)PHoM$r=bJCefybl|DePv& zYO>m$acgeaU)*1O)-w=sCM+@_IL%~fM*OH?fsTr}8xIWGPBTI`p-Ph>SQ4nK7zIl1 zq<1DQ!lEzDyL~RFOIE_rF;?68K-qxE!i(*Tqc>^yk3>_S}V<-1j+y}>}J zGady!Ya;TZ$&7f!g~Nnz$Q=+vdf=$RU(l} z7k?d%cRI`#ceLASRvhfn%uqT#l+j-YlWAYxDkajsCL2^6jO57jeZqfn`(T%DJVi}4 zXikXFgwhNebhgEAt*y>4bxQAz-WI!9+Vq>JF@@Fpslu#&M-L*KVS2%MLLC;Go-)7sYq;V)>9hhMLKd?NDA=Og!c9{8;Lp77%yd~|>GF%Lds zZ(5dL6Wc{U@S{Q4P#I|mf-<;WHY`4;posTJA!rx~kO6;)G>EDp5DG60fiRYZ0)8j5 zY5_1aDyo8>f`$0${4Fxbb>txkHj{SV+SL?2sTLWjYPewbYrolv6L<)Vg(tH44VkYXR?jxtQ+zeS2xHNqOxJVPoA*h z--*c!g4N^WR-4V5_l=E&3J#lpbhN$EPH3@whp2J>k67#knr}G(4n`mhNGD*r-eiyU zP6|mEO!Y8%l!;K%NJ-*^Owy?mhtwqkVh#RRO_2>v-l-9P)Zg1|yU^sxc}`9*2KQCkN84MLx znrfygO8qKis3C|UU65wMrY<~MlqR)7)KneRCIS;%QeT-kk~^;56R z$#ZVlrRO#t-|4?Dy{EIw+*IhY1xvwdhhNNP0395t3#k*e<$4jQETU-?aVK#lY#(KR z(5I592+-~l6%BYY3WZXlYpw1tGE%M~8J8sL*aAHcbqj7YZq#~{)Z^8E`~8+rX^&b> zhvYdpB*ubYI6rVvm*ogO8=yP@YgbV?QSngjfG9PB{uWvY@6qo9x(c~yqF7JqT^xo5 zEGL9kK|y-_B}S&I85JBM!%x7WfebT}McB#D-Vcj|f^M`947(^4ot|*k=|%^y z2ITSRD-IOJ1PBGVyan-rpx*28@b%X>K~4LQBAL-}Lc2`Tlv%A6T50~Wp1y4(vC=(J zKl>ByHc`D*d%qnt><5$?GE_4)#D5|iH~q@{ z>F{5f0rRE0FIgdr*`l{~h)LvN(ZT)Co2?c~`ZwGJjh$aOO^NlH(rnkP98~&JImorZ+y~emjG!$bAQ@$x0Jik(tV0|LAm;T%cXJk zJ(gR%ws&cBo*l{@vsQbe{IW}#E_4~+Np|>ZWH-DFV4>K9-NFG-8y7euqV?djK%+SD zC+eI9R>P!2H5r6Pg&~nE0d{X1k>3jxWrw$!Pir63j($wL`+)YKnclZiPQh+qlg6&Z zP2hcOs`u#OU>#ZJEbpTNF$3Pb-5PsXV-nnXXiOnoAlgJ9##)V$2Gs`LCL_F>{lw($ zAKd=#+eWavWs$y-rr{(d$74!BQXBvcWl}-xU=olHAtl)$FCZh#um}Z5HXtQDi3Nk$E8nQpKmG=*p$a>6A8UnLQz3;N zoTWP7HxUF;afT#!-W35(;&r7$3|mI*FyFEzed7)t-S+af@KGJ|9>OlXjOd(`fINk5 z=))V|)mirc#12>5LAg+RH!;r&i z>Gf*t&~BV-hV}MNkcjiX%Xqi9?&u%Y(4oe#^h^s*cgldv4 zbA}1c*{?$KLy&pxJIW@je)lA@Q&mqfn4g@?5435SV&g!0ARH-qR9BO?aiFKavD~aR zb;Zl29yV!rUg@wmM3Ni*;bizP-QG#76(z7@SH|5Tw@yD^#{6!_{D!$sRa%`P35wXH zh1JUg6(# zPmI$Bg|*z?oHiI#G!g*6ht0`MRB`nO89$(90<^x>@2V#+U`FK7$pc833}-K7FauK$ z13=(!SU|gLU>CiikBo%S8il)n=>AEZi%UqkK>0lISvs9Q81yp@IP-V8EkbBwt;JLl z(GHzO#QHa7lZ8|P<>?(3O-QhW89-U)22f7hki}TD=@6A8o1dak$wNvKC)0(D&$_YG z5+K1tH{73j5f5iQc$l~;aWd#tyw3@;R zy9CEd0J^TXLe${Ui)2H$?roGY$2xB#%0cNK3*Z``70efVSDcMj2O75Y?=QEUuNQ5N z$b-i1HE-k1j~;Au$-DMte1T50*4p&OcX)MdIF)Ld+K8yD%haa)Y>}F6!f3&ju|*)7 zI1idyP1jcb!0Fm}e0>f(LcoA{XXmgJHoCdshSD`$<^hAH_^&7NP60@3^VqSzZ(Tt-{ixt84<*;UV6G-^?C(grKUy1)heNN=o}X?0@$yyXdno?PiWIu!{ZBtw7NW zPT98>mVUGJQ1%qvJGHz=vWfo=F%kKhWU$f+kcZK|Q0d8yL9(BI?TM+MGDUlA>E{oz zyTVI9k+d$?Z~ly~uVvAb4MXqBN%qycEP8k()~3;W)YzV$v-9Ym-M-iM6-ZT$Fd-p|G!wrtp(QW|EbdrgXgq=P833V#FZ5oIGH@fh!k zfP99(DEdG>X5JzaAOe{Yq zrU5asU?P~I?(5(SXTl5$bhtRoNMJGu!Ol*| z($Y6+XENd-yF+{hu;v#!InP2xec%;a;JCI(_Gy5`JcT&d2RGO3oAsqtK%ucc*cQ_aYQ403(iXAUZ0XHuS@jK|SiThB5HU&lemE%!o{x&1Y_CWWgVpR*1}%W~y*Ti= z*g5j{>u|<9aK^FvGu$}i6R0-K%LvmtZANV5uf<>C9xA*n(96inLia%^j-PFAyk%zT z8oY?b&bton!yi32j>wj0vGX1QvF-qMpyBGo=!E&kq^M9xKQT9b>3E4rvdbJ>Q_&nH z&QV0Xu5x)ArOfFTb7D8@BfJKvsLqW>u4b=FUj5AGX|cQQJ$rZaNVPe!1?Ro8_PnzH zFRo5rJH1(Kc~9HO5URA%TD7oyc@$%j??}pGhH|p5G4`x2smWtxfB98oN7B~iPDT?+ z%XztZv881!o=D_N4do5!IV%cDG02?a8?cU~ge-s3dU47?eJA7Qs@kq|>l>jz$9$|4 zx3sM$ci&g-4Cv|fJG6m;u#=Jyjr1l5R@(fTOup7|>sXt$#b@&y4F+oqg7!(kfw>Ip zc}jd0b@Zy(fUH9Sr5r`<9Y`rLPLjqC12{!6P}Jv1q!TGpb9K><8wIO2C~PVOmAeLv z`Bbnwgz^R}pTurQWhUea(ksFrg&A=pTM(ZEbou#OSnwSe8hM~DzcV%sE_XFltN)kl?gb8u$DDfBeC5j?^tl=!Tgbb4SzecSb65JFY8 zeH~45Rj?vkGB3Vk6Ms=x)V8BF5*sblm9Y)B2RfWBJtR@>*% z^L6h%EM-_*$fq?^q|M#l8Y_&(BE?RNGw6=AHY6j%-!b_!(Ns^1vm?+RR28drzeXL( zGvfEz9n$rj9`o)d=SYjsoeqD$Mt^JX*x@l?{I8_9fes_r;~Z!(sg899h_&?hCuh^& z7ua5jEGuWx-xqZHdz<(IyRQBWqGF#V`uhUPxa;)yFAxv<-nXQ`e^Ez&=foG;4JfFx zK5cxljy8T3=Uu<{ycOE`)jHbvRd%m*0;`m%oD*Fn=U-JvU5_Sy^(>nB7>M0noF=ZH zx3NkOX$O8UTKHJC<>{N!!WY>o=@e)oAn}~(AT{m)fqrWm_~Mx~@b4jXY{w4UD{JW= z+4XeV_xH#5LK3UVEDA$f365)0go65;bX?>23cHgZ*SI?>l=9;mFIU)~@Z%Z}MPDC~ zcjQ%r8jrsvHHH^Jr^a|^j|@pT$(|R z4x;w(8OI;x$2BUUum|{Y4SyB(F@Ag$_(T||AP0!`{I^BkFspus_9$3jZHzH}CK*g5BuW1TuxH+FS(_2~xM3rLWlG$MjTTO^2t78?N-M+5}HfQpRv zrw%IWsHhkRMuizs42XlsXO5UrX8=)Qq^rN*yDu`|AJctr)j4~wyw=|9d7k%u*Bz+A zV2};IdSC{3KJ-Bke#ldkr@ng-|I42Z2I>P3z5P*-xzEe}_YUHZ{nB7?_eUQ3n8!Zw zi=O&VZyF@u`qsf9_`stcbM?m8{Nm#tGl<{!NJ{zqr#<(MJ0JNUUj1i$fAe7Az2=#B zeCeHB&nfTs`0YRQIWKue`Ix`>3O;{g5Wn>Yp7r!QzOeno8$ULPfBBENcJs5i;Qgxo zA@U#b{oq;8z3av5-JkWwLHw?IFo^5tJpXBTRNwm}Hx1&q(Vlqt+&f-;ryVB0%l9{t ze)+sRp8NDKy!W-gJ&6C{{)2(N<<94S>0S5#?Qe<)@t?eSFc?1h&KErW&S$w_|4Q!P zLVAxr-+u3F^)tH3TGbM%+$H|X!t->-jC{}=ss{cinU z{r?)*1SU4E8JQEaH}^5u%mdA5n9nqiF`sLmXr5}GW}a=HXTHSTWxm~fr+K6KLGvT# z$IaW!FPL|lcbVTX?=^p5{@nbH`JnlT`DgP9X7toE``v!CJLTuT+wXVY?)oP#c%8TN z_{NF%`iPD#jZuiJH^ENDlTBv!CnO}@ZnHnxY_3{*Ce=wzneMy|m3X_e&3>2Z#=EM$g(fSN(Lnytw!QRA zot)6-zR@RS?oOmx-onV>T-AMRygmcXp!hy3xuvO$C8d*Ia`5AfzqFH4q{KcG1$!rw zgo_li-_l{mgF;S8uygkNhGOWP$8gg`O62Bd^Y0~)ni3cusd%?PV?yy)J(Y?*W|zX6ljcNv!dHj8 zQudA+K5?4;iMN&MKiSAd+Q3Lth9e{8NEQ6(|6dsIY}0U;9Q~Ds9-n#4H;t4@m-cVz z&;CsMD3wvq{`&f4*kp)FLMxf*UANsxpB)y(iS(NqDS+NK)XR)=&pVYi$nvF$)a*#R z_Y@+nqN^VHNXv)o^?40tlYr5oDAs;IRWj`I{Zy9AW=rBNnH;i6o4u{9wG*b{bbCs@ zw5cy|yOGD@R=smrF8ke%N#HKEZdo2@BzMmC&e<91_iDA9{e_K{){bK`6`a9!teYbQ>C&-sUlLl z&bEd20;?k9>aL!d%8T9H)wZ-jTp8D^lqr%zPp3Anl2AKoSy)w@O_*MYE*WKP8Z5k- zio-Z;{UBE9CYeOWBx>v^&#Mb%y&zb5DvEWxojRj3(vH%$8~f`vn(1j}KCd<9sJ6*y z9A|!Tb!;YA1HTxLnn##AnszJS1b&`v+KFDZo8jA9vU?&0>9NtyRr3LWAaMJK^;_u*2Yczz_e|p zBmW{}`XJ+|S06dypBJS+G{Z2`)MdQPd68C$`h4a2xjO&pxiNf=l^6LFCus76T>YgA zlycq^H{YD-;6=XqV?XrtQ*!0HHrN)Sx-!elvMG|l_2!wfsae=znEJ!nx>b=ID%S~T zX2}e3FH-R`2+T~S${tlozL?UongL$u*9OL&`;8gJHdHsastHtRE~${g`EuWq`)70i z{I#)9SJjs@EZO;gRO&NT`EfH!t#Qs@>v)A)sj+2PZ0OoHNG~U$?`!R;ak;TJD3xlJ zZZu^*InbFYTtBtp`498mukAv`e;1`*={k&^bsQFN<%eqh6`uv zx?z|shpAgHFHNSGsv%3wi9_%FqgGu}CzZ=uvTj)1$CxrOK^wJp7)PO(I!r@e`QBRn zcvz(B{G(0&LFKA*tm{O1awozkaKH}J18RPzKmZ^_9?)mR{7o1fweVebn z5BOoO)E(hitI}_)gW){W#Z(Wos;H+XwdFx!jN@AOB}$n;XA*vGs$vt5)%V#vJ%5Nw zjJ8n}WuZ~7K7X9D&eF4&miB&55wjAUTU6)<>Pv==ULLA! z7}PAZxQtZphOUnC8BejULKczF+6)ReS~_&lSba#U;LxO|yy}|BFT#UK;+cu-slX_& zm^hmLG)i?tGk5&TuXW>$O{Uc_P`T|?Hwm3bWTA8Th?P;d#-3@)r}%o|9=40=d}y1- zM7ExL%G0iMP_L%tGFTQ#WaFe*UM{E1fy;C4cI}a^RPO5_*Us$8yP<2gYPCV`1+-%-<6 zo7RmR>+9n2f#;{LQgt}fi=mBJC=9Z)LszFKW~mk_k7Ad&j&h=85{}ZD3jA@N&DD&D z@?b@e(b`VccsOxfCyHt>4l0&SJXh(`6jrCK zR9&JEN7C%iB(s zWnm7KN<-IWVf(hzv(R7Wng#Oa)IW$iGdpH07%DZiRaLSX%?!(L==k!0&qhn0?jUx) zmoGff+V_VJZ}?1~6-lW&8QMDKyJJ;(bY%9__Cf!-Zx{gET zx$R_PwbPXeU2KB1Fv_x9tlQA=LNN<7^A>AQO&MsjD19$X$GkuS|3GUtqBxnTscz@Z zRjq?7YF(=;a00irI*a2#FMM_}qr==~GgEr4++e7d?#e`}YTHEXt$ScT!yc`cijUsC z_g=^O=8gJrAe_n5|1kK4!QfNZfAUk;KQ#D{|Cj5o{-4kMKdHa{lc`<(chC91UH$vn z|GD~~Kb7{M?ivhk9r*X|^au6tsu{22BXz5~pL(ErxVl}vP<@5^D!9k1)z_=vQ2#@{ zPyLSi1NA5Buha+CKdOIG|EBKMkxunWZ}qXhtRJKwr=O_r&@a$msb8+YUcU|o@@xA2 z`uFso>%Z0?)AzzZhK%yo9GQ#e)I4Y~0OedWU=o2vfT$jvfW8Ez0%`=L19|ug_5^f- zx%dpg-vDL+VV%G+P>cKlE&*V?9dL__0I}|rk|i$}1)Wj+MyQ5V0y+ZIlK{-h*VD7J z(=(}&GPx&ormu**C(<_1_bDJw_=3PA0ZLK}ZT@640b|X6VH$69)$OEG{+@v+fz@C( zc!&W0jkEv+?EuuIS;B($XV>(Z0?L8mgdD*UXaw~MrXxKSQwIo*3ZV=h&Fa%~R~i6< zguqCBQlPY(3Z?%Pwa{l=71$|bw4>}((CTS_k6+yGP8s(7uAwDVa#ipm#gnwVYNQrH zr*zuuAP45-L*N)*AwnJVauG9#7k!&QV5i(N1 zZ0Rr^VF7SO)-V~iQp=9clWNE1&N*d9`M}2plC$-gs1vy39tzNHw$g1G*3Rtd6w5$L zrwKdne#(s<_SnE=;V2IS*KwRUZq(wY09YJ{ypF;(udX5)YRk6iunV(;X%iJqW9Nw( z&TVb&a8y}d{I1V?$(q1Z+A{&KsH$=!-d00T*G&@!(b|^TL0VLHVItRc7bdYqQQI9G zPRUNG*0QheTvK;zvvUuIo_g9k$g8l--KpwsTIt2ys624w9ZwxqH5!{By1(BpE+xZ* z%Acf{>$)r^Md!r;d{^ZP8O>ccJJRZ-xovXw@R_Py;O@(e$vpE!#}-axL*HwwBpYsg&xw4m zY^|+LIIhN)?dH4vAkyc5Y}xgaU(sb^Gri`eHdn=*%}s~i4AP;;T&-0-Cpj^ zQug6@0_cCqnDei89WVBnAtzRkb)zp1V&7SLAQ9uQRczH|UjglbZy#O)R_y^>3cDVg zv`x#=)}5L+t7yFJG9RoQj*BXBl>L+RK?w*}y`Q;=D{mh9!G?irH-G4Be;jqn)_0H8 zHdiC?b_7094`%gv&dfT>)F~JJY~kF$aU76ipzGs0P!U+k=5|x1zGLd9R(52(#(jIh zK>4)j1x{k_cHOZPfP?S(mkiW(`yl`t>T>|p)!|{M1NCAkM?2N$4;?zLUYp3Q)nDY( zIM+;194^jp+n9@a{FyW^P~YZl)fag7mLfJ`QK*kvXB4ED{GGa(jN>qTX9KivuZ|rL z>XcqF;~>jDTNT0R4ejOl%Cds827w!0iASUL(5A{6Wu6Z0vhjkv@ERTzXS7iY`j$49 zanPlkLTBya20jrRCsKN8J17AUsk*tl;xLclmG% zOuafDJC~w5a4){W#P+eSwQc5xo>GD5R^cP`X!X`{o1Q{b{pvvz>v&JKihXoz5 zCP%2Nb>cufZ_FB)K$oT$YDaK{XGZ{c){MkBzH@pb%p@Aca2`K{GBAaqZr#a7*NlnJW6$Gb zoc3#hU;J0_P{TqN?)*S?Q-JCKV90O?*hvCbEUf z7G64rtMK%y7}X;7;k<$8I48_#5PP03pnk#1)el}#F(lh(K#F+CNGfLocjuA5U=Qnp zj*jW&SWe-Md9K2+jU0dKZg@G?VO^$2X>g(~Wk)J;pJ&x{?bY6B zT5I=aV;MuM++myR=;6V9%u7)JtPjvdH}IoC>qupvLW%#5G4x#vC^+)Oh;J1&1+-}vk=?CbS=$GoRMk~Hsf4BZ&{ZsnqP>X+2zYE;< z9{oQ3JNhs6-|BzVAJ^w*XD*n_D91OMhnR<>8Go61sd<@soq2t)7XNqi`{o1Yug$-j ze}nHh!2Q@(c4Bw-g1yn6*<0;x_L25>`?>bn_PO>>`%3#w_S@}u+8?q%YJb|k&HjS@ z75i@cVf)YayR+=+ z*Yv5!o-dkS4>jfPDcT-aWY3ok8Z{G~#RXss_*8yT0AIOH9#rH$54(O}19vD_3g2wN zZU9-Jo@jTXZgLa6Df>P`ADDwnpa?P|K}ub8i!0y~Fb&!sVjf6IfQ?{{(`#1x2C(S3 zEdWSv?5S8#CxuW#pLRnQbZ)u}WR)5P*wPnK*Fh)pm&*J9B@q%he*v%pWGP{D)%5Z` zC4gmVwp2lhO+1u`K3ld%R5>j-4nRWJwa_W`#Q1`fY;GJxs3?wZB(C+0pY#M zz)={9r3MN|Bc+`UVfI$;^({c@48JvMoa>xjJ(3kz_lWHo&e70Y3rV zG=eFSAtI+F<6~xIuz-M6z$Eq87$Sb7XG`AG6O0De40rnRL{#0&JxcThYtrvetv)(H zks=Cj_sy0W5*k5DAS1aE?&%_uFZED8s|G1uGRR&2@`IM{L5U7`H>6{A@t1@$#N6MV zb!U>9M$-U~&U+_YDPFRJwNC-#e4>Ap(k~hsN>}8nl;B7oSqV}lS1^8{5z{RhAG*Vb z4HgB`oGb(b!$PQ3>gikAiFV$>E%+wjm;(7Dv)qqspHy1HERm_NgZA$j!QDp41*@z> zYnJl=y;Ly2tQPK5PIKyQ`9x0cZ+SN88bb`5VTE(!lf0!bTWFCy7*ZDv5yr4*^!K9f zO95h}Aq#ofh5gP#} zkdrlt4<%%D74)aCCKu|)DOJ&$Ngc5{1!}4;Bx7FXHbVQi9;y}E7K+IvMK{t&oxW~T zH%Dq`D>MZHiwfK%h;l!7htsd`RyMLhksZ0UYwHSue>i$^HbZ|aaHXG!2#9S_r^ z5-NZyr4&+m7G>5Rs`6my`nOlUa@oLDQRGVdCGzGlGOZ3mCk?=nVD!#AsE21&?6(1^ zC78_<-ENZNxGkpM5i|xV3eBhS#tv-5mWhfZw{wd&)#!z38AV6laq7%xA)21QP{*B{ z&z#(k{mJ3%5bauR5xj<%5PEVFItW^R3G!$}a-l?UKNs|>XlS7>~m zsvDDxLZMQ5YqNy342GM6qg2#YHgj)@tf$WwN-eG!M8ktJ|Gp@{=WAoTXb!y*z|UOp z=3W6jS3jjN7`$|Zx(>g(A-zGL=m7LK)Z~ zhh>pFW|GAyqKO04M^AO50D-*(Q5UIxwxd7sFE)B4m{nh>$LIg1QtPvFe7_8lkJa!) zo*zyzNVqvws_%kd0@8r0qbf`TGg$-+C&65ygLD`8m@&fhA{kE-^FFLSuYx#78iR(H zsl&>Dg=^e<2RumXg{eEf%|R&i0LOE?#;Qb-OnF(Es)%BfM}E+Rp8q`0)~M(3s5IG* z59%0AG&T18-KnS37T1Cck*PXU`O~7Dn0y+BL7|>abDqn?69($Pg=KjD%U18kL4E#p zuFj%VU5kM3_Q4qBOy%$d=jvTH`C?ZyQR%5`U&17)w^VNa*LLEHaZRYVW1q?^;$hbJ zza86&0C6~z%=pIxyo-ho_SO9iPvn@ znn#3{=V|>3n>gwD2V0|_bP(tB=V8Mue+zrRjheYcHucpSlIStZX4 zROvbTo@dF+^Y4s@&C+pSjoz$Ym8YwGRwO1CS=^vH7is?RP|@8qj8dDKR32(S;0a0$ z`~tDO6)OrHNNstFn*4CKLPw}Bq1anDsM5%0VTJlrloi$t2bo*J$}1jWrJV#L6yvIb z5=()e$1Xh*zVvL5*M;&6W6jos)dwb4ak#i`pLAMHL(-wKwxs<2#d)>U|}#<*?*pRYqcAx+&>+r+de?ie^X-dOi!(jv<-*rCMSmP$(}gukJ!0F6NUl zx)!hc)ykQBV_${E2s=bFck+m(UzIr-yZPd9x`H;jSlJ>pqKd_~+?k=!R;}OT8P7)& zdk8C*S=T&Qs?+N<2=Bx8;C}fm)o!Jy-U^eNY8UI}0dHe(z3{NXX|bG%(HPTrSo!|U zZDYPh&&YE#)!$>6@MWyB3R`%j8k=2JH42^M%>viG+BO%kjNLYI+qGS=c2XTLroWju zInu|0W^hLav!Ro>j^oXbG)7j$mm7Ka)$N*mbAS#&Fx$F#CsK$<1qndZG8ziNkDP6PEJzw~5fT?Ra%d_!r z>P_c0_o`rOyHv3`EU6s>&DG`r*`FzGl(W#6DqXjp8=+RlcdN-_T3`nZSe&#P6PEU? zwbPjOkinl<-m5aRh^gJ3qp!oK#r|8ib(h7#Samr| z7YlKXO@oImr~8Ny`hhGu%WA#qUcE6=LCDK1aGb1|q-Bz@hefxfw!*x~W8>gckR>`1 z!)AdxWEtlg=NbPXNuhC;84ZeVXSzn!^u`{v{&cGw^;3tsdP3O>+x-5 zP|KldmwS0bbXZz;h2t0;DVC@SY`PfGc{IN<%Xwu~-UT3(#^_#HmdZ3Q!=*qaZ=^0R z!ma-dyrVw&UO@Yb=Kpn#S_47{0JPsVj( z9YhneOST9Uy0S95t_uD=V@ z(0|rHs(%L8wBOW!p#MVujsAONhI@IV`{ovN8?I>&F^@F2BQ!kKe1UnPc}Xufd=qYI zZ!&MTV>|Dqh0FE?ap6JsVZFHUIrj6!DGfL-UOS!=BMgjLm{QN_fca-&ZGN8a&xFef zalwYMmju{r@Q6Y7#})+dgiQ*e5H2KX#2ri03vh=A2)JHYs37{me!p8d`-O$P0K$7_ z*qaYXLitn%7MGGBO8uwZ=2i{u-hsw@S}8IBT!6PTyo4N345?E5(P(z>rUU7KTZ>lF z)5sl(XakL)V6O3yh*KE_2&HMd%wE-*##kYSn#?_+I7z?nGINSQ5+sBHq8l3sDqLi< ztH?%qQe>Z&#=<+G77z@f4}E16(o;VACGDc-Mk*6lOHsXvpRHc&(oN+FxxTTJMX zGy%I(KO8cINEMO*wM6(k^cCvJ015Gh*)@nZyWKTQx*f@=XAgzyDWBNLx>IJk?<<0X z&_iYtH!7Me#0zT7H|m4x37?g^g@g(B5)LQDagD1CAVb}Mkrv{Q#<=cwa6PD>H1!(X zS}Nb4Fmf_nFhn#12E4Ze(l&;OA2gjZ`;ny}>Dmsy+&~{`DKo}b5B|Kvig^MbhCtID znDY)IP5wQ9H{O<_V3w?ISz64*nNVb^r8Jb4e(6w?i~_?Uwc@MD9a_xS6B&A1&HOUH zP)iaprd(r8$R$5ngQV|J&g2)RG8oqjWF+YJMtFNi(f!I`_1(sTQzW%`>NPvJ$qu}z zOwWHvrvd05wVl_YWdFz89|z$Y zJDO{}Hi(zS5Gf76i2%Ef>-k3OB$ax1CLfb%aH*jeT}4{5Ilm*oY4rj)ZDH z8evpqxZP5{z0F4OCnei9yPwXZ>=Y|P$6k8=PeB&Gn*N>tgom_mqZKLveJvEOHo>D0 zMy5RwuRgZu$)hGt>-q1}fLQe}cvFuTxa-7CmjAU0+;OPSmP0jPHg#bj+}e2wxbd%2 zWPhEVKNWocZZ``mYwlNJ+w%R)8&+W)r3Z0X&CJ~z2S;Fj1cG^O3aLr*IDRGE_zCMT z9@@6nxLo1dM(i>uz_V#f& zeH)7;*Y9I`pu5^#+;b<|gjyVb*4j2UuEj2xnmW9%x|rSf7{fQ>5>LRBg3P+(8ktMm zJ9e-v)@P)!g@X0rEO`7xqcvg^gAwr>30j_YRTI2P{B+RGb+%+>ZQQ;ihKTFldSdwQ+jcb`P zxPq=wjntT@V8kOAWh%((##`ITqAusr0SFooSbViASn(xY3mlcjR2L`^oGJ(#~DuoIlxB5UXJ z(rFj_%1OjAEsc1PTs#)k8V^%mX2YSmk{~O5M#^o~Ps6bi`%aZVwnz4Yx2CP;d^|a3bE%7dqA6pjM;SVXffvU`8443BeNG z1GlWw56cuiv^l(v)R`Hzcx(yO! zUew(vM0z7b7xKf|3Je|az;tOmQmmBEdJGrZm&H+Uj;(Pt0t9NaZ{$>61fmk(Ywc+KD& z25%VLJ@`+99~iuO@Rq?(5B}@m?SuCW-aq*G;2z4a)ed*c2dYP^&s9%UPgPG-&r~nK zL+(|OpKnv&q28$fO#c-WWC!*D8t*|`;10l74?TB4kY0+1Fo10ZJqwKKfGPr{1bFpO zhTniFkPVoMpJ##ycPD3{S!fM~0%W=!i3BV26VEG(C)~mTB|AVnERa%M54Q=>*o%MB zC*c~+I+MyN;FA@@9xxT~4ciR(S`Z#)O&S0grBqVUK(B|Y8_+bM?y3f>a{Wvo9kC(* zo=jRyCi0RB%qI2~Frrw&WDNRFNg6Ru@k>5pyJLj7!~X)OcLE({9HhCOM;-~ekcM0b zo5U#y>Jz+r9b41zzKzsOC#hSi1cz=2+o2cI0lC1CK#+t(?Ibfb1CRwtHfLgqy5>Ol zxDUgle@3;VpdX z=nKOm?sf~y7*d^--Y^uBg{rW7iJe+n!9v0_k8$P_WzxSrJ>Dd0v+P4)M_yv+Yv%cW_yX&q2CL_dx|>vbp5$mg>>P!gzMQA{brsOs+W#lyJrb^s zdK&oZ{6}kW5YGLma2`??yH2d4r$w!LS*P;U+>9FkKG!6%btW+|nrCwB;P`Q4akR#p zXTqx|E`o3a3e^|qdKu!WYqo?3pfcYCX8s~b2!qagSf*>dSJoJa zkju^s7{Q}P)!5G))KsGbFH6VO=&&%Iek1Q?2~22w_2X=kL;P>7y64xCGu59>@QQg7 z0O|Y=Bp!8)fYvZ%aX?p3Zc&4sl&F^RFl5ltwf*ui%Cl&96zit4(__tx zF+?$pc2#w-bh5H>rg4NTASNXNh?&|fQPO}{udI0iWk9e8pT>pa&*c@Q{RP!~WO zq5yP}vd?QwRx9=b$49nL7Q?lgw~CZz+~AU49@sEA7^|W>Dz;7?HpL#x}s5t@hH;U(N6rWkQ5O{3Aib3H)Lt0 zo;!E+g>>#oAjpNS+9q=>GiH?z6JsWL?c+=5sNGn7E{=<|(=*db6-zZ6`KCaF$3zf} zJB|rYPeehy#Ns_fnl4A09TL>RjJ< zk2Qjy8JDm;RC-t&*3%HH6C4a*rxbb#kHD4jmYLDG3$ZogGq|lcgllZG<4~jK6#|xx zeoh@C<>N@EJX6nGPY;WufVs9UrX$?1wAI&yr>3}^@pSNf7zm~Bw!qGZ%(Gdc#tX#s z#9xdJOXlY6cJB)QLmd;<=!1=O#luPSejN;W5>zP7I=1Un;uUxT94AjwCO*NX)K#B9 z(W8SUQ>B(Wm82K5L)JgG7c}9uTJ6-_ra)0}s}#cCo#H<~8qH8&*Z4)P{PsdqUr^Y5 zFUVxZMccVvg4o**vrWBAuqYsPU%+nZ(sm zUAF+HaEZs9NuhpTH8!hZP-(wW#}^r}S)5<;qd9{LvseRny!ktMzED?tSkkMj=_lR) zf3kPrx_~zSO2dk4F(SyEbl!4#Qdpxkb0POIAe^dRP`iS~x zJz!BpnqWCXf^X7$eLsCoKT_YWKS$p|Q1G)+Utff?*VpRT=x;&2{SE!Q`VaM=qP+gS z{$Hk&R}RiyXXc><1V7q5);z`BVV-Wj2<7$5%~zRMn%9``GT&!@$h^h;l=)fnbGYs! zcX@lZDg-iq_xsp}?PQO#g@B5-g>MBnPEM|&A_*dqEuZa%t%z)FL84goeoH7zr{V@7 z%A4HVfJBgIHw)(kS@rschdUAbo7`ik6hzT))0vUdWG@%BmJ;O8HA`W%q*ve2Kl#8P z+3?tO*~R(nQA4vZTw|lZYG@m{N49G3q(@k!r2RYjABe&ZO{e&@>&p=c)a?WfA^)*` zqbB2KL?vj1Cl$SvMo1?a46cz|Jbt8f+6>U(cJByhaI(R3PcSEW>7sN5kU+Dz3?QHYDXp&u1=+A@R5kw|} zX>7MyI>ZIR6-H|p;G_jC`r(atJ5gZUQCFCScbp>|;?|scX^tS}-mLD6!;RfEmsQb? z{(F_68R0yXmd>b2(yS;@3tfU87X%(cOKUt6+~H9g*Fz^}OI2)HdBwxr*1RpFOOx4p ze9*318@9x6x~3?Ovn+~Z_u?FoUx>p6@i71Gj};qHN7Fg7ebC&62PJ!MMqnl;YtK;11)*a8#$6t(qFswx`Z;6-lR| z4W@1Ij0vyuG{p7EzMi<=2jWJHPYQ8}07YUou%e+HVZ3J`306yPzu+Gv8;Gd#=D-Pd zn7Q_b=0+k5j)^9PCez>ylXRS6Aii(NR<3?J$63UGS~yQ}rK*qv@Tf1aIWomMM?(7F zUJ$nGajv=NUewi<{&a#Ek$NGAVRX;WB2zpOgZB`(7krU0sHGU>B0O14?4JMWv72A< zZsc5vJD7;`O*>)($Ayas&fvhFW^H6`rI2ye|HQs}xEO0yZi@8rLTmKF{C-~*-Ms_ygLB#9dcV5weAz> zdMvFUw5X;@wkpR-g0cOu24h>NZd!m5u1;4<7JrZ|e5X8akKH0WZZ0&(O_o3y4ht6- zc(1$+xKS@mHTE;l&aCBhb1CTNl_j!%tc$r1@vxNc(!QS3ZS_G$0!fNqF$m=2tx zi2-&5iy&(GnQtIfNqA|Rq`0b}1k14|Ig(scW%Ux?xN=u9Mk0+>^O{N!*cxjFG z0uI2K5Cy}6(>Qx1vjg}uxe>&P#mNaNgK)qeH2yTKZoqXsTS9_gG;zljko;3nSt4Su zL*oDWB#CCd4wQfKlUF_c!NCUr%%3s1a__$aaDQ*0NnH;ngM-2G;C_Q^gHInkWblN+ zlLvPUo-_FJ!K(+~Ie63H2M0fb%J*J%le&+(O+7$81WoT*>N!B{7ZLsXy8gtScc@=f zzpQ>;y;uDihbw$oeU#{b2l2VWUFGTeONgI%xqdAX6hErpLd3-H>pucke?VZh{%9XL zf#VF3bYF%p*m)HoNx%kb5{?QxZoMHls>@Al9-2}pchI;)E=!U!}V1lHA z8jy#;1{m`JvLFLWl|q0iVa__bp0^X92u54FN1@aq%Y&i`M1kaxa>HbtoNmQ`fsCil8Ou-#l?HN! zyOd91G9pqFRmrdGONv!NP4FZs_^hu&)-9|6UmOPY>;$&Rbt#Wwr2x^6DFO^F$wgk> z%g72j#A^eJfw0*xWu}#}peI~noEHQUOV!Ba5Eh{y4F^f<_03t~(ry!e4d<@q0W>?#vH5U0a&seWaObvP*yZp8vu z>D>D`8z}pL|BrGK2!04VeA#e+t!p(p@ip_8NUXX*LtPS%$5|vr>#Rb{R&!ZVu;va4~C&IPF4<4{n{e!`A~3%D+sKAH=%tp8v5pW@H-HIbFuVgTz4}lL$qn z9t*dF;7lM_Dn9=RlfYPfixZsx;F{3k1f34MbF&UoKc9kic|8-S7+0ZF;_JcjJ+a%x zMYbd?!6tr~G|Qv9JIJuG4;f-R*5N^i2`_$|Y};IjI7~(T6j2vmw7zCCIg_wsYkB5pABRDmUWQm3`pyq-;Hl03j0DOBvhJ+X#)7@=?L>HaR9hi zYj;|z^Y2mrTd{f0&VSW=7KnH5ATu8os(2ZG+v+<3p+-H|E;Y8aT74@%w4f~-sNbRW z5Iha?p!5(q*`#=`>Itr$${mmGWV|i?6`ff5c-e@n3}-8WWxkZLD4owisWiJGAZmeV zSQ^G2r_}k(hO?tGMaVrYH$|3>q5?fS=iDFM5w^As{q2S?d5zlx&13C|wI44Etkz67 zVBY0(_|c+9cj({9^!|9++th>hwkn=%0wdEZK#J8B<)>5!(so zFXiFkq$Qp><#29K8Z4(+){`x9yyGgKLYoUbUNLgcAmhFpbla*T=Atu^9)B6b=6qU6 z#BO8VxGZpI$T6?4Qj9S<3U0_rTybLc?#`K$2IT{E^k zzaz{ULqcb#_+OyE9;u`0a?SB6tg4a&VV;E7HVbq)TtRx)Xy2dB`9EmV(@|(9k*YDC zk8zKxTAs?vS!JgzkRi^(jM|h`WX@;!(c~$o|G?d&7Rv8%#u7)ga8A)=gRNSvmp9Xt z$_w015MkBmZUSi$yL9-MW$DI&XVz67aimR@S9LzS;D)2&+MjY@Oh}AM+0NrAT4Ac- zAt^aP0MB9=2?WI~@FEIYzk>B~9*s$&FfY}3ax@kL5VG+QXQHKQcR>~F&%vi9ApE{9 zAkhfFrCysubq3fy^+qs!pM!3e%oUF2F1{(ru|iEDm4?O;%bdq%e4L>A>$z?U2frsj z81Xoa%t#`fIi4qg^-k7As*KFTTy^^~%8iPGZDjN14QS^}#amF9guzBGhe>4*3t)hN zbU$@CUFJwMdA)`^Eb$p&AP=B5vF5}kd?bqCtwHM!VHXJG+4Q*KEH&+gPG~Q-jx5Mj zn+e*E_`Nu^TI1UhIHL-W0K_8$_19H%sa8*gM|Xj~5YIxEg>p}j`E=?yN3E$;*}2v2$VZ&-#Yt&3C!%p2SbD%&Z#+XB$7RY3 zp6Z(W?iR#PRp>fs4RMSWFlUjhBYoJPyo7n`W?kcx1CP;7mO;dQp2>wbqD^E+8xRmTVuU;w=6NbuUJ#a za$(B;F=8>~G(4?4{{ZHTL$^MR*r|t8LWvd}*EYsYN^QMnw!Z8y4=c4w2#ZVebOZIp z<7?EpwVICEVvB0U=@&RfO*!d-j735etqyU9t?cUk-=_JpQawj^ZbkIT@anW#-i|#>O&my z^9ig9Lo5mh#EYHv-rSGjke@Hq&(hD)cj~+Jf54jX?fQ-S2lP+tx9XqQze3pfZ*k<$ zpX_9* zrxrU89^DVLPq$xWpJShI@3LP*u=v;8*V)%&a}Y??gQgR~c!Cl^SywsA20azX)C0mD z2N!Z3m~<*ucVZ%O@CMC-w18XiDUjVBz(!%fD?aw60u5nOJ^K>a1`g~5@?X{cWzqxQ zdbJxKQ`M zxyKb+C=3+1jl04Lq(l5ZfVlW0OFyYm{>Nn0mqtGqdPn;hHdxbEsMQ`T1I03nG@HcS zAgBD6R`c0`{eafF!Vji~o0K3maiy=3-;xIqFR|F%rd?2@>to3mnuCF6FIE(4+?<|n zgq1;l$SCYk>fcLv^1?JQUKvjYrze&&BoGrU3xwMDquaL(>cnLl1hDVxkyHe2!#lU1 z%py2n`U6p9zGcl(Fdqrr#g(LQWWRjKNp<`XM<3!4u9@bVkpcLmyMFUYhx+UFNoI@-RGi(TBiZJaRxoMW$T8go&?DxIXVUu2Ia|$ zVrDq4s_z5srP1W)hjf6{@|))Hm;V1(wmNVlHi0Q;lqS^ez(@F+jJ<4_=ueBBSqZ{$vLR8*)y%2#!$UkEb{CtS z6F1wWOnZ1ywwz8wFqkdSVTZ&|vy*}~i7oPd-r@xRAqmDD;uAYKGprAb#47=Q$Mt>c zLqQ%KSJ)*TV5&m$92V|6o5~@0wccCf-BtO{uBb3mEA^j>)o50=WwLEzx2mhd^ZSg; z>ONazBxqc)<2f#>0Prj`v;s=gAVoAv$?w* zFTc651OP(1aGoGE4~FMtzHNyN_o7WvR1q|jtu+s#j&pb1&`%4(+=^|9IEwqJ;-o6K zG?9#|V>qx1S$vWWuP$e9$Vok$j{Q|miu@i=agvgE{!emdkCTKG3>Fwp*zWMD$Gwq* zqn_$|-t)cmqG^IgVH8N9Ht#{R-LEEgQbKOxdWx5(W=Bt>GX88(`T4g3FsRu1MxT)b z0OMr4-G^+G?{Dn*{PP7XKS|tBr+N$mn5c_{f?u4b=f8@j;DK-l#>kE0`>^fLf}nS% z`J<{nx26uj$G)rYOSsuwbrF_|AE-UQ+J^3Id3Bh5q{SsY@h-+VXL{II9XyiKaTHCazMTWQ#=@S|`L{Xd=b@ogiP#-yxClWnzk%Z_3Au(9V&V7+ zIVBe&4!px%!f806$^rbkb5UIh4khf<4Lbld2c|{@3tK%P`pcP&)%Yb#(3%r=&M?iR zN(J}4^P--i@5{+y$z9YLi8A~$WNB~u$a#(zF!;-)pnEgc=RX6F1^r^iGVUb;uyyc` zwOaouL67Bp4#vV?p|Iz-DDw)=kgZHWL^~&Wx_%{&{`rx+sf#$f5#Xe520QkO|CcQz zeHpodcz_BwGrybTPou;6X!ap@GchxKQD_Z45)bN>CxZV%Ni-#8Oq3n}3i5Ng}X zF~vkZM*+r9^+#28{%HcZo(2E2$8)F4x1mj@=`bi>4fn(<7S;B%fR}GZ6Zoo;m%(L- zvzvIM%pz>OUQFy2W_HEFu$N<;ADib!T`VZS|uS{v^a0!b5mY z;Fl?p`EgVqw^{BKvk5*x$F(!|IO0H*fw=L*c~gX8iTKW&i7`Q~PWT>B$XZ98p z9!%J438Y4<;!VV{(sM#wjrT)s|W+`DmWaMAqUoaYc?y~&ut>++Z%ZWmZ*JW zUdaj@Tvu~EH9Sv4Uh~*(m#R5-dG8rKuNU`MJ{I?bI?0a@#@^DII%rKR9TKxdvuG$3 zmWM45N8Ni-}vu(JV9>X0{5e@e)bF#JK;Q6Xu7;W`4jVkXaYR_ z$V(@%Jn`{3@YT-F0NQQ=X!LXVyHH=PE4qUy;;av~X57&>@&xDD68HcTYCp_%U9O3n| z`fd6bIKu1K`y;&mP!8}i1LP)`DD0V8nFDy)iMbWn_37qeczZpe_x1Wh^BjD=UJf^V zjd_E)8*i`g$J^^i%}^Ixj+wZpD3tvM<2Zagi0!s==71|*r=DOtG!#K_%6)*=Rl%Jb3 z3<7739O;CC02oRh@)NZvwjGLt*5PmM0gUAXrE-Hm;7Eb1Qj7q4;O$-xtLh;p)-o8% zet%z*kXZbkJEBM>8O%m5@R#3MImBHGY)MPFCg+q2SG$fEamPLpuW;Zl2SwqEf9iop zrAq8?U`akv+I53kf1__1j%i%PFtL$h`YHumizTGt0NTEC5%{IH)1JhMuaGo>FAScj z{unr}W8NK>G^vk<%8*?pyZq)4S|suMvPLhrM_nJZ>7B?kjna$ ze3w>II&EPE&@6F$BNcfVGa5=wB<~x+&lO*{XPfI)Q974kiKLTm(lKm+&?iYwZaKl0 zrqd}>$*5zSqC5<2bd*A&iPUw1eX)-PRC|M)|VfPZ2O*t?< z4i=_^&~-T&ji&a&4{|h@)6a?=W4t?~5a|bPCh6``I3l4cW1`{QN`f0hiTfiKudFM7 zSZ26-#O;;LPOs!6wiGBuE{A#h`~wXWj?iH{2=QXU-U1}y7*~$obddq7ZOu`Q8+X&B zi=rcbkV75y0r9kU~H|* zWXci&6;O!jwf;E`x{@oO+%MM8r)V9LAQ3 zQ~$wa1~L&oGA<7AXJ?P(C9up@?W4829b#sH!yFFs_0ebQhvD8n<*=0`;E>xeo!o%^ z$@-Mbi~%F8mvItr%o$y{!Kfxor&TzdGC3UY39<{-GcaM~!TC?vNtNN~|Flm0-b_jK z-Me&qP;G{-yQ;iH?1qtgQ>eZJl8%)H3NqHw9qj}%ieX^x<3fqfZ8?A@erqtqCDPoE z6;A~djt5I3u=Nzd7Y-aR>m2v3AL=|X!a~k0c?FF)=3lIEX`f$u-`622H|4YV2Q3~+ zT0N{}s25H#IB@o-Ij@eKjT<8t!wA%Euw(rof(6oG zlESgO1z7pFz*roS^+4PsQP;C1#f6Dhc;QoKW~0?t>9K$QjY_>W;_zMUr^v&ucYYKk z7GE*_x_3>C+D{W#PaCBHhHa9r77zvA;xi#eRB{*o^w-k%7S;j#yPL$@R8rg zED>W4m?Bq%TaNJh7J?_YIR~M_8e2CfUUaC=SCQt3(qngn-_$$&)IWa}7Q8hvJz1DX zO9*Y7a%{@~$KIRA+j5n4-e;{<^RBseRqc7+XP@cLxjD(bAqfddAb}7F5_kb2mq7*@ z49X-5g3JP@1EMG|5TQX3p=l5hL_pp&L$|ch2(2iBqC}BFP$H0>{yudspr3yKXg{C# zkN5M@oSQS$u3EKfRn=O*=Xrk5?}@>c>$@X}qHiGo7`9j+J44;U)BLzB>x52Bx-xP# ziC%v)_eP3J4)(O0*$D=EZ3$_q)$WqsKyn6Vau*S7KkHT|n7E#mZe{-j{V@;lT<}b! zBg|w-^@F1V;;=6#lO&(C0`n z-!W0==Bi&D)1`65stnVh2L!=_x>Ipb&hy`LoZQ`?n0O@qoeA!0+D~hVHO6J?8OYW21YPa2fp^jtTrpYP{ zTCF9WQZ>3(qUXo&yk%xS@F%@^>bVHvP2(Q#hM9*mmvo_uJ5KCGa^|ra3ED`~D9w_M z;~}O@T#z7Dqwf$w!Q4Y+?#J*LWbX0Y>Zd8vM;Q~5aVg1j9+YU9&)(Qf+x!`LdxR=8c$;gyj>W5D@(>SEMbo>+kA%lTOQT*E?!0~uL})hJHR%=Z-oui zK`x+FB<6VW$$l{F4-jA|de}_4bs^-^sM<#E#uwNMF`E zi3>bYr)cUdp$KKP!@KAd!%Dwe&#K^JSAQ;rkLF>Z)loydg)YSRKV!; z6VwPXkG&wTx6mqPT^KWXbyatDf2!b>J8o;r%E72Zvy|YLhZnrk)PXV6bTOGMQuxZ) zfThjT!X(Yeiv&7aS>a?d%=4bB@|_hPzi7MP?X?pE=&0vGc7zckLRaK3g@3Ry3Nwp}&J{cpE`6sou0Ao#(i@z+7VP zij2~A=EuxqsOpFVTmTv%5tJ&9bLdeu(2XFGL{30l zd?o@!pfV~K%#R&0{4PcSKLCmZUG@dY%5UH|{udiYz#~Ud=ud(q{1EE|q)6)$nxFx2 zZrPX|{Duu7@jZzt@g2M&F$V37`o?KKPQO0nAb)V%3;k z)Q3Z+NX!vJY0}Bn36Lj*MX_t>6Wi$waF@ooUVcjW$HkaoJJuKR2k8!1#MP0V!)dU7 z=$d31y9cSi(}ii4#_9(^w4N@-BQEx9gY{%{q1j@eMksrZrs=M3y2e*u2w3IvC< zV{>l#j9zd)1_k>UvZk0J{Dqi~E1xw%H+E=D4B1io$Ce4g$=inpj?aQl0~PMd1D1ZW=%NhpE=QPi&U`xzBFXQQ5I( zlYBq8a^5Ez<`5Y+X%t(W_G&h<58H_v+Q*Jv66Pyvbx^t>gAN`DHjY_*BhfAjyD@?d z03@dqpv7O?)LvpquZ3*^&@r~KfvA*)@Plb}U|EwfQ{X}*)v-3$hTaio>cR`(4`yuT z&Q1nDjVVoS;gD|!>YlJ0{Op=|(5?2+delh8CT`lH<()G05%tHFOq_vv5pRD= z7D+Xl1>U2*81W;6e(Ba2?v9gRqx>Fvg4gs{ezs~gWN20h$N2y?xu#|`l$001P_Y^G z(7q{?p2XZxFlq&0s^FB!t)$Ml*-KI1VP@{Fi}U+?;ka1#F133iK$A8k2#1tqkF=!T z0Kb|W^jeaZtoYI4s2r16q zd4G~H$Y{J%cF<{y=QbqHI^QFkVM_{Sto+z`6q6X2z|U%~VY)uX9Bw!Rjj zAUuYz)JRo*v&e{ZQPcs#qd_gPpfmsp2vmTuVXu&2#eIWwg@YbLlpGT-BM$Pz$nsKy z;mHxD+SJRC_{dzcxy<@)*t@9qn5P${P;2K;EwjEFSz&d{me=+(h<=_oaazBNmparp z5Ikae`eQue>px#4Od-dX zT7TUUo#rCOdh1kvHl8w&k1E>k`pN>S(eRVSw~iKAlSUm+eO%N>@K1a9MKQSV!N2m} zjTUKgop_1;-|e}BM@Gm4f?v_1x*R%YD7iYsySDx)4)vbd!g8@FnfJvj#+zR80@zQkPqaqD z3U&rG0t~{7A{?Vt+a9TY|1>gG@cZhzqnGv&^zH?7azrr3u^VgHc@t8WlOuZQ9$KN0 z!v~an;~j=GiOTVdZQe6%5YUoc5GcgN2W$aWM}$`OY+>`db;;vtkr-h|+xXcDg7B_M zfCosOjmhLAl<7E=ELb8OGtzx@O(mlSHkN9WV!ue$qSHmc1*V1V^H_hm7%X zn@HC7FeoypwZSxdapA>7F3_zJ0Em%yK&Olhhb}qHwi$SJo9;yfBgp|nd)FEy3MLsP zTpo**qzX=8gB3*CpoUtbiH~-~i!qpblPyppd`lR7bJ4Hqbcm3(g6<$gkrTJMg^_~K z-Cpz%rnOL}#v~$`YdWt5OY@utK}c6(B04b+??`BaZ31_M9e7)jOs4!MLrq97srRcX_bdcGtEeJnM{`17pX^ z$!uZPf-+T6s07AeuJ$+e)&iGCo}=}kbkg@JL5O)oyi^Sbs=vaP(ers!x5I9(nR8U9 z=6&`80v+i4@)DlcN>%J*wjlyrjR}dM^VCPR4ik(BSlXF`V@)`b#FWfC?RqM|7wPo* zqFXOcsTjM0sR`Qej!3FAX%LHv2P7z}y4YM`I)pn6Ct>>neRaZ*Z~?HAJnp&gP0T}h z5EE;=CcM;7Bebs(f2WM9iY9{b1EOr?k$Fc+#2e_C2u1^ao80ye5e%2ob~iS;?FZW> zkw>;W`sl$>{dwy`rto1-w*fx z+i(1EZz-K}(8f3KxW_U?=7D{$hz zrEXKVqi+hQld#lWUq%c@N^d_1M%)ehS>)IM0x_6(H6Z=N`Y%ZW`g{G4luxno*$F%! z@o-8hm7^5kzR=v$+y`(j5tuV%+dt0SKn&)m$+v&Dd4YMc`Be&>h&x`82A~QcEx_jh z!GRG#3Bnv38whZ+3%@sk5mJNfx+#xDT4z=O1og$Yu>xW>Dn(V7?Qa8B8r7 zC3w@zF{dJa1PJGhjaJWGB$VhAEiib3L~*k-8Vn0pxN3eBa(Of^yWoE3B>Y11P>tmv z+hliIVW2>NxY6ZrMuE>jx%GpYD30+(Q zfA9f&a>L|!87$d;K=8xJ;5sBY$8Z9_rRSWFHkY)(M$Rj{!2AQ2Ge)va1Y)s{_^?6b z5-uTIidX=jaV7~`NJbjZ4ZJzViTg$`g%HXPVsFxG9tXbBE!idq5X9hkIe=%2s6q1q zr;)v+aXB#?`D&hDge4f5)&A$H2Ab5Q*6;M%#05xfrI2*Wf@GJ_!omxfLPuT}k#-4j z0su!y{-N#h$}0ynMjg^|^@PghW++N0vaq@Q?2*&|PXQ(r^2y+1db zl%{ahC^*)miUh^Dw3!0~wh=#3<9wTSu?I1o6cbhx=szxDa1l+R{1!PjU3_@N>3dY9 z09II4iE2*1BG`>S5R?bVOSZ{SaD&va>bFD$J@C+gZzq&#K&;;_Ger83y-Dl{yV?ti zF*>Be4GHlp0SZH0SuK1xP`*tnn)rkhw0{?+?tOFH^v_Vkj+LqGi=aO>HriuL`#)u; zaU8zBgqSXw;@4^u*Kh^!zkzx!w>PeZwF0RNKj^rQFSgx_p71BJm%K0JH|_d#p60pSgut(1nV#2cNQ}EV&uOAcN!&`=-d}U21)Vz9H1V?$j213s%Jn3PQbpG8}p2623kj`;&3P zKztZ3)I%XCQXK(&22KN>?Xa|&eb0HO(PSJI3v#H|_bp1bkAdS;f6-oK`Yuq&{F)+n z$6AXAmeAL?Fs4j+8UT1j&nw~%`V-WEoW^*@{Te+cJh@~Y+4ek{^~{nCjkuqH$%|8S7~cz^2?XP@5tX73ptdzY3ka+esmBd2s@C99HXq#F;)p`k6x>_Gq5@?rGM2X2|aA9y_RFp#w0(%%stEN zgW_it9_0Em9+w3)4!pjU6c`eOB!|r)9SZReIVGHz1K2k9+=|d|u&aSJ16NU866QYH z(_~_dM(LhGte5g6-B!^*S?AmLE3kaQ-)TYh7m?T%3xy&V+-WqusGNxog_QGaDR(Qi z4zJ3tq%yFSAkEKf#|?#%A|$R`Qu{b19e}dQX^pt2rb^zfrhNM`O7}RV;NbX2g7vsH z0=V*6l%%&K%v$mqCv)B>xHF?I2c;^QH`WenT}1Y{z-5`#wQNMBfHDyluThA{fCudE zKwCFPe3MIyp&6Zz4k|)nzUn*ORx3EpxPt_+WG_E-nn^MibO4Mk6!y(vj|r%%xNj3Zmi6ED6`{;Lg3j+U=5Q=;J4c zm06ME=ons=RyC#kXIxOPfZ!018?lVlYE)vTU)(Q~D_|i?U6X;C5Oe}Whp-7t$b;l2 zT~L#vq&6c0XoJzn>*{)dE+#T1M2fJtc`uP6^JdnfODVxSVILYNT-w`Hd1c2KTaszE zM+(}gjH)u?ks0Dy=u?9dgBs7X#F+`Fz(rlumDF`*%rJ+rF=B|OdKzMD5$*{0I#%8Z z(w-aj$p<>0vN$9Mx&gGnY$;xPYL73hjq?z-+`v`*Y4rGiR9%n5`O&EIKNVq0(c}Lw z>f`DY>VK#|QGZEh$5&B{`nLLx*n8x49M;G6xlLxrW#HKR=?ChE>KDT%x(O`&TKzg) z&c6kk{U~}-pJ<%S|DbP&P2@Ca77n3sd`Pc2aEp~vxR)grYy+$UGXiQ(f=K}Y_~KY; zK_!BJ#Bq00*d+(~!0gBJ3{nu7BIE-31BfIZV}1p_vMARAU)Um_v5iB)l>kbBD2sQ3 zs}%q{*3uF16#LQLy z>4^6=F?0chCKo5@t{Dij#h0=(K2`cjioIA5awMK=!C~?ltPwgPLh>97!J=dn`QJ1w zV9L0q&&Wv93VC)ONqba$eO~YbPH1eRUa#~9}9LL~FgS0_3fF6VV z`3ul{3_1(vkx%%dmF8aY_gqfNc-4HTh2|;X9&ogv-KIG<%RdMyc%P5GT@*9%?yyt> zp`c9IKZ`U9Zd;$|USSU_B2TDy;8vlc2p0d!8aYTBk!D7SSl1OyP2#bHfFxWS`Ni|x z4kbC_fXNLN7NUPp2|La?C>!UN)31Cqj+nd)YC}E006OGex#$ju0j@cG4l$-a$&Yps z-ar*nJG}e63c{`-tMX*%%{#sG!8}Cgx-3C(B(z6a-Z5os@ii4rPvjT9;yHNWdfP<0 z?9n!2z0~cUULX@HnS;I?Z{iUEK1ShNh}@H8bGfs@*)AtMI@D0MXer2dFQ>M zWB>m0%S+gucT0k7u0!g)nDyraNI%fz1NAgNiRR4P5B1X4`nL&+s{gotW+q?;+QfOJ zJ(m$hSdrZl&oDYmOwAw%a?0_=T|ubP?$8bIQQpOU)xF+vUJnKQJc7XvWm+E623*G` z9G&6*ErcGiL`yxu!TkVR~-56{#EHFj_^Wg~~!@D=JVw}8gl85*f+ zw&jw-f-}w_MFs0O$%;nc=J6&1^JqSvH&jR4>_*inXW8n5 z3MUEjj2H;eAMjOEg9pf1sd1q;Qy{hk%4@PR33EU|pjZIKk`l8Cai|sI6VB03I&7*< zv3|sM=`-#;d8`Wh#|v^bc~4q{HV#>H1@VtVa{|n#ka60{2Se}y;TGp7sn-MGnmA_5 zI7!zXMqFJI!_62KRcDVhp~8)NTUNh6({+b*3*!C{N}+R$Ocdf})Qy0p)gLpEJhN77 z(;F3cT8&Pt9Yi!6Qjajbor(y3%*2op^T%hU+=Yh4&Q&)=GsNR~1}*Ae@d)r1F;ii4 za4!zUM?jO3KTQQ=1)L+?Poi`wzGk6pk4Nqt*#W9jp)Z6~l6LJ1JtZ`g3abO!!X57E zF{lPLw=0n$OU>aJ)i6}*;J@LG?#&2Sz~+e6JUK>@qBt||VGf~YGmH%iyb+af!{r`& z2z039z|ldTVCncvJ)sTQf;_#2frdi&O7*w0K zp|LB8>s zw9RR04!0szTg3y!#%9w#Ycc;QR-}PKviOQuPKe5M3zQ}ibh^zYH&-Ofu*hW6S^mi< zE5HkF0}9E=l+JUK##;okX#8E$K37X`WIu4Iv@FNU)$yHFNCpbeknATXk{_%j(mr2Y zfLtp*I{+a-8a9BT#1ki8IT=b$g#Yd&zle+{az%umC9n<#!$Kbq z7FWj^XiLt?^#LDC;^)%a=CY*Wea7hoo9Q)hPp}|2my42rr9e1oiG%SXf;pvq@_Xbl z5Wgp%%BeZsoSj6rsd?r&CFkUPa?6_m;)Vz(9b^ZiSNOlpIMZxHerBjOPnGnOQKX?M zxRD=R7)Nse9TIR$7Y=-X3`R2&G$p(3H}IVOq$`}1lQax;+GI;JlKjH1d`k?U*Xk}c za=lx)>)du;%+f*VZ`wmNgppLh7P5({V>CmtBh*@$3Uxy&-PZVTMq!+!*|KOufZbAK z6a!<&r$*@3n3A^bqF5RhKJq)rG|9$sO@SO;t!!&DpaxscN;|SQsgnW(+#XH(#Z;(8 z_HeYljg*Z$7|gt#QF@3%K$&|e9bxSU&~8<~TES*2iEW}ur^>kH<`LmusIKJxdqwRG zUYHzBwxSxLm645w>gup2( ziOTfVBNmRX>37H75Ebn8M_KtLAIlE2f{T|ie!cp0D!a2u7aZIiGHoEPfW z{xY-ErDJ8kV%Z;LHB&DkNAJ&5guX3n?pK4uhl~ED#=64N|FqR#-xvRm7e8#Gku7~* zDBe5%>m=U2z~rnyC`h_yNw6ObK_J*58_K_gVB8w_0(~ih6uEil_M0JSuEY4HEE`3S z0<)mu4An)P0kkhc)RurpbI#JfOsyYI*_@&rquWmW)V(JIsvhM8>ks2?!;f}Rg$~4X zSg}4=4DYYL)u?w8@cSyezCs26 z3C-7&Q#Jf9r59%&M2ISAQNM{29whhPEwKATJ^Yg8oFQec^=`6Oc`%aX!AOJRx+1An zyB{S-+WmdpBIJU#9-S6-ynOc9Ozu|YIouGuhsb}rp~wMd!(i$T=e|#B^Pao80PoJB z0pOn8Qo~KPH>GSS6+x&^7(kGYLJWYi&ZsMD;}Bt_Z3Y6ieirr?$a4sMf-c%aWwJn= zyEV!;I{_Y+6w%qhnR*kdoC?;nyfN(i*2pJz+409u`*KSa+0{MNhkF7 zQl0OOdL)&Bf9$2mhg4CFp+RmkF=DI%Jq1D*Id4Q4tto+XA%Gm6S@EDlFZmw6TWUkv z-R-s>cnhA`_I9dg=(x-*Nbbnd)_ON~o=kxpt$TYI2HpbM5QaH|@XkX!rb57uT?2Hn zU=Z$yB}9E_WwzDC8RD96@ql=JY7L{d(?J?jsW*&4?wwgBbqCxSZVlxc2Glp6LSrS# zf>G>;v-YD8t3y%3eVV=J3};CH8ue!A$4<94B~^^~P{U$qRo|P1qfw_5mV2YaW1<+bJ=i{?x`T21aMvo$ zZ^N_D=fh}+$;q@hYy;>^LMw2eV{j=?DYGSc8k%Pb=W)ye!sK8O)CsVD!%9!4ib~+T zr{##MTaF~XZwczf0@m=Mpq@|G{~di8iHU!g zX@Im@LlG$$2NMXyLRYx6Z_b*Xh%G7=wSJ;8dC^>pi**3Vlnv|eHTs^lSBAGbbfea8AT>sIUUtiQKz zBc4V1cxo?{HvUWHu1+XCm?&-t8fgNX_%1;e0621v_$D9&-;zYc1@(X~*ilHXf<5G$ zc+kKg54Y9;TE~lS8=TOh8rk6|^cNg+yrMnw4Rf zG)v;f&7ioPge^2Iz>;9OAu|t~;3V)>3K=z2S(<42axjWqu2>ngOozF8#+lyG9mUzX zLiq;frPB-nLY{Vws8R4E4kk0S;l1H3nUxZho(Xvqb6E%$@(g0jVZh0S!FZPQbD)$)<%Dt;{$v9whH?|xO2cgAPj+ao zR(6m#g`2m(Pd^w~*^{$k*YIQu`TT(B%y_xYJV5W*V~JCp*Qa@P8Gz=(Pg3}an@p3K zN40Ef#+P>%t(@jfl$VCB@{LDWo(68eJUn7kiuYTJG0;mX&A^-@4+mF4E9^<~DX9&Z zyzX4zt%!=-*OG}y23YFWtRK)2@em=3NX#B|08bMCOHivC7Z#sU!G_#E43#FSM|A61 zqC>*BMD8qv;t`3o$U(D!Ymf zgaA7PYC8**A|@p?i_F;d0(YKvvR zJquXo@skC!MSGsqaWZy_SH(jQMjupGGLLYJS?X0Jw!9z9t`)>D)M^tsn&1NB`V?^u zDg!GPEjdS>!7Es(Ya(a5ek2~=Wk2zgAz7=1syfKAP%jG)B=|SBMr+8fTg0i66(>B2 zy#tB{RmRkCYNY;rl5G*j`w{{jzt%;FQ}u|RBJd!wbG<}NgbT3MvV&ZD%JY$c${vq} zgedDTda3mVs|wdoaHujG<304$J^<%wM01f+^#igYd%A=JUd1{(3YooU-o%`0^uD~o)WqCUbVgvYhT?QQB^a3Fu&gZ zb0VP=*cT(D?x=s#@jD0$z%DHCj?g+w7JUOytN>V0UmRxSz~Ae|Z!gum9& z?rRGD4$C4B?Px3V%GTX@_VqEcs}SCe)~_Z{Qr#2K-B$|=9rYzpA}M~_Ti+BTM)Me` zJ5QhK3B+3zCGjzUOYw#94p0b->b*F^uM#svy~3zg5v~tIA&K|INLIJ;BoRFM3}PH4 zCJI>?lVRbjU(yeDoJS;9hYUnsnjQg@y`V&=7QO=FH3VyTl)=V(xQF3GWBA+N`ym&> zHNBsJa?BMt#<$;EQilEmgb>eFN)QvgrcH;mkurp2D8?uzY$`Dv-K(x1%;O11lu+Z8$tV zK!4>Z7Y`MH$pZx@iH*-DTwE47l3Pu|0SYwJN2I(UQj>P+M|bxk@034=wnM#-gd4)F z#WP0vQ4HXmssB)H zDK<4}%tR3V2tAfQL?*}!t`r?FW{e0n5 z*D4)bsn+AN>x{|JN7Q)kb;r(}Eb^<;h=O5sltDR+ z7VB(ojauOl?wi{|4~GKLSea>_V(VdC;VdDFVyFviV}U<~V%yM*L^4GYMU5HU9XMrF zt{{gRb{kWhilW{**mNmUF)&k@R7uf8 z9hfqGI(IsqE+#6vvCgd2!^a=84x^>4<6f^;oi6KC65*eUs#dF;{|Xh}cBp+qXrrD` zy*ZCOM11ojNG6R@?eF1`N-dwfdds0GELuks3AU6>%Wzw$Fg76zvW2-vHEs&u6%e*{ zfw?%SD2vAIH>@yLd5<83n=O6R9YN(!SX)rSLC0W%h&L-)j>CjPv(T>?79wrIC_vw4 zkF*2#iM-ubMv>OxWX~ZT+r@d6X3pOA6Ct)pD2N3vv`8-|Rh-p_!HJH0W}7@@q_y#u zVTDBx*Xh6;Rbkj-LPf8L!*NFDlSLOdzW5&wqH#Hupv##`EP`?$3zJ%OGoA#A8@$k`!| zCpFQ{3G$M{F7JQGq52zwtKn+Y?L7*0^I*$nmc&Yz91pJ?7ddrqF}r!NCUE($iv!Bf z8U)Hn^-S@iIFr!jO=oSUB0FkOf)GRsp|u>_RWzOP0%YA3H_nXl<}Hn5JO|X56(jju zVkE1#tKU}dgOc-K)PE%d^pBvG|AqQ%^|gjn{$0R{RDq9)KK1m3+|Q>{uI+iy$zMvu z=~en>{YGL=?lxOwt>+=>^GXcq*IKW){=oXQ^~WsUU$MS!{e$&g@+6SI7DL+Z|9@jjpEy}!Ok-8t z$^37oGp0~u*J4a#RPTdrLH9qjcg3^?=CU2z0Ob7drtbfXsVhbqmH_&sVjq0p=!Ll@ zV<%SO3Ohm!ENo9Uic!N@x|qHEA{)eBA~g~23s%Q|xfHwNB;h2nk{EQp@vB%tP?*>O z!-U_(NAZ8+*dXgbX#dzOm{Uz_uGo|`f^jL%68U4v$>=2Z7(^?qKYGXS{G8)&U^iGx z^m89GM}&2_j9O?&SXKKNrSy(SQ&UZa=+jaXo9X3B&Ly2cYkf}N`SBpBmk z--c_k=bXj__@VvFLhg4kul~*3z8}D+yS^VL7C`%H|I!X7To{}y5-AWxNC5zUfs?GC zNOXL!$ST601|;eeNIc&D0#N_`5N~%L&|2>XM)Xg$dIC{R;CRhFj$2Kt+Y@zgd5SIw>Hbgw$CyU)$a-%6t~4 zjn)_Cs22Va)vkk6KsNOV%iqMn1?ci@tZNABNhtnl@Z zh_#KX$gg9Vxa)TT0*RA|ksU>t+mFM{zDPwkowccd-KfuDR)1ctU-qvstn(S)B94nnI3hR~B&0^+?GsDq~MgvR+76&H?TZ1lo1&FTc zXZ~v(7M6457^!5KSmKPu{w8kQi!pG;1&cPY&@3>8aR=d;5_5L{`^LBE=MX;c=64m-nhK0qi?~79B@%0T zIK-~Dv8UORpEaJD4~M7|lYjGnY(gJzEN3#F4-9F<&i>tm{{O8BO|-g+GdEG}ttM~$ ztB>E<*xJ~>;~&&z`u!VEC%gRR8?W4WbyLpqt%xl>R{f-U3Svt?*A#Gki+Z>EJo(#S zZmOExroOB0AQT@`##3mX6SBBBoBAfF^o3A8@3yf~hz*IU0j|e_AqI%h4D3Y7S|NBz zG-@TxN1{Ih{0T_OZrBin|HMKf=a|$0zEllVpd}B z5JSU0!CH|ps!;SuRuO}P0Gl*U97)=4Xnxo$wVeFKK8Ip^U=GnW0-2H&L&}RpQ%_<> zA*?IsM-0e9Di-UGZZ#$u;Wjad&c+Ps3)eyNw2&*=iCz=6Z6cO%@T5buzt7$hD3*|& z#NhZw|Ja)o&_B#IF@fY8d`LK~>_HTdPI2WjQevO+%e*e6!R81Ur;_!-z|h~Okz)iI zo2xn7Im|82!On8w>?-3SLnep2V*Fu&$%h5E8Q!DpYIAlsVoJit|v0FM|RW$46=}Bz14u z#;=AVcSHdxtCn<)d>-izyl-k1QA|(hDrAJ>(5B?7nbgdwS>nK>39Kt=nMwB?jR1EC zKQGR-Vp-YA+)?&((2BwDi%3zhMv$KC*a;yE2wQg8#-B&HiF9ax0Ck(#+Z+vv5FON3 zj#D)8V^K|1b`B^I9Tr z7&>kSS=@Hv=@jT)&K=u-B^Qad5taD1{N2#~v7H`1`d|T+{UsQ7mF*y@vkLr?&m|5t z%0w^_$!8w8?nFEHXE=QQ#s~!b-|X}!+%y%%Kyd#VxMdF_d-JJ9ZEbPG-dm~mCkS;Y zyJyB`n+(*Hl1J*zDjIfD6lIipGagog5=Or#3Z08mbZbl)-D%*fFZV-_D>Vc|$N;43 zQ&C}as5V)MJZZ!t?L+uqr>w54`65HuG??nyW3}xZH00PnYqHm zWFaP^(S>0IIjA)%iv$7j*CCEa4PCP-F-MoAWB&+2(sn`C#JNuFg{T}7P=z(9>#((k zFh)cQ0luq;5iZRiS=9M8@HOv@{~8JyKF&7oQiED4qUJbOx%ko0%LWqnjVQz5^US$Z z0#%T@s$zr_8?U)H8XYd$RHN7>%2a6wJxt2i=^e;H(D*3LMa+_-UnIB_EJ+eKiqo*< zaV`l;nmDl+b`8I2K>-A3P*JwdkpKOW(hrYUrb`WmcAlfnE3_^>zfg~@E;X(YSwxP- z<#K!Us2@^PencSwyz5y?4vd~M@Gg-h*G(2vsyd@YMEVYi!lDB_!&%FP;4@wcfimzf zG;tq$E6;IfZ<(ChFP@DC5By$_LSJgt?(wAAK0{(}_Q-H2`b@^H95IQNc!Bx3f#jek@hQXe5L^Rp~We?g%wsVM9d`N&z4 zPU;Kv#f`9t6x(_*c?VC#6Z}m5LTFSsk(Bv*Ji+h93w(?Ixc)=^SrRgZ0p>N*B3ovU zl3Q0HEOM=R08;KR#^?KLbF+D)d7Jsqcz$m&A8Ul%zi7T>{>FTZvRmK73yd_FMP=nB z%SJOfOG+Lq6pI~f*56KJILNb5y5i6hUz!WYm&;9!NNsL&C-FG zIZGXDm*fmI3n)`Gt+Kc=BU6Tp*6=8fz}GGaBei8~D80 zAS+QLy&;_ePq2P9`>+w#6;PoT#=Ugzh;UPA1|rBl1IHEdzii<1)qWw%tz?NpMUqpo z9Fra@A|BFHammUzhK!v_Ih8KgLJW~R#x@*}94q;rC0gxeLmpvalfJPq(gfca7tTcm zWl80bB+z|nTWSE~TW!8e*I0)6P|^w5BzKTQKGI4*KNq&=E*(k9uaY-M+Lr7pD4 zSj3ymh0@bzU6t-ii>?ThNXOZMX6eFQytfRH+(i7pG$DiM!e;?-K(be+=;UagY3uo1>VpgphwCVpMd!zJ4yd&p3!Vh#h@@6j1ybMnM~I> zS2MbjlhL$F8(ff_S^6vwurzxN=)gfd#Wbp zj?D|Yb5i{WzgSYnA{us!VGN5Ip|PG9NvU~Kr%;L}bDdZ}F|Y!)qbbAypaYSndWB>| zL2?0{UvC+?rKc;>*+zt=BXb_)YXA)lR}Too%tEx!1#0Vli<~X6fNj-|o)GMHaIldR z7MXSx6!1dY@I@$?VfiG_Cy7I47l~Y2qrN#r?G%LX07K|sK{;UFj!Sl3BJ>U4261gN z?@H<{YFG02;bX7^%j$gs#brnITTe+9Ojd8I>srB|BRTM=Z+GJ_u}#5Qd?j+ ze-Is-P{PYsk46TDYzI~O2&$oBA;lmuq8;7#B(f^1UU)_*%>(L*k_ZZbQhUCC`(Ke^ z5!Z`!zD(7hBgadXv5P9Rei8SCbw+C97H)rT)J>qUv^%=q@duQ|T_aTP>bXhRe}Y!z zc~*!{p}MA@gpjiO-cE;f)VPbQkf=4%)1965O;IH}FzOQcA3xf{PRCJWtA_#iD#P~k zRJQ&FC%ELT&_=XC{XS7sF4Sfv4~MMJBsyz*eJY$X zC3E9Mjpk{luzteW*O3C9+WwAvKEx+(lTzQHPSo|twI%r)#z6pm8`8Y1eh0y3%esFz z>6!?M`}VlMpgLG@v?v2k+v<-@yX+GcUL$sIU8bC;QO%{}r&Td=1C!}-0fr$FG(s2| z#IU}OV12wIJ{`fhpDMB}w(yl4BiA!9Qv~T$bS$JK@LP5KtbtdqUyhJD((lg0iRx3~ z7($B~Cy;_voZ!99$=$5H7IOSu5xysBh%`y}1nD!MN<8;e=6Y3~J2@FS)iH#)7ia~! zYw#$V30gfGq>LX21QM=aVpYVRJ@uZhUdWnzR z*vmk&+NK_{In@(a2nyl0n?c4?m+OA_V*fm;rHT}yg^}SdNJ`)-b@Rp8>sr=$k-KW^ z|AFzaY~FqlfKw z?x9Q4tERlwr~z`1qk_4N5_C||FwSAoppHQyQ*u(7e|pLtQt6b^-m3xuXtP|!{nNlq zr+&c{Rl&*W>DAB|S4qzsxRt9m$!ee^s?rtA02f_v|9py-t5f~KpigoMc`=wNlzi(W zs-iqNQbv(A+Ni#eaphBQjZ(P6A49%n#k`hEB{vjozuJeW| zb$Sau1b0~8+&g1ZXGIm(v{P>apf`29u0?8Gt%{}EEYuRx5(wP4%hKolsqzlJfrEiT zW|3(O=>_T($}5$2R_-Pv?v-uY zR71=$>LrsWt`f=;3+f+Gs7qg-8Y#+5J%|dDgQG5@Zzz!`6gbp43hebNgKP zC5jSd9^$RVyv_ zh-=d^P6wAEvzNZkn@i?T2WE#&n2uujiy#x zCt~iB$TbW4At}?yDlm6nVbBqvM7j#XNobQ{;h=J;D8c3w14t?5ao&)X5WmQp8;mH6 z2#>{|qhkugX^3<{)Paqo?G(*PLONum_4|E_M+H5&g-mWJm$ykoqGQ#H#NEb|^_A~R-i6E7M>hVggRNixG+XcZQ?}mp&$fQ`^|JMIZ2e6mnuZ7a-ufnK zq49+o$?;o)5Wk1;0)qi`(10E zBqCfHL4^KqP<(6962BBRM0NC{1uW=}TiRafnpl{Nk3kZSxA8yO$&j2c ztZ!J`CFyl3A0oj3L_`$W@3?)Ey}A@_r)VE=5Qq_yR_jE$2M(cROx%9OGPw-t;Av9L zvmW)|`UCX~d4;cx;6*(qqt5PB9UNBG2j5 zerAq*o!k;@VWBc(jkGGI$i0_7pS`uMc?6!27zu!&}eR1<8j-ncP8WR4A@8MjcT$32!x*8eo`Odz*Z`^vTR39wG^i(jX3}qJLnf`7|!@P z$+s58YZUiDI;m3>T_hMVPwI##f+0doH|EKbxVVU?_hbYQ7h`L=K)fBP$QVJ6zV&dw3$|I}t~);M z%%_$Y+sx`;VOD>(dD9PO^}qj}4O~vi9bZGR;uDHgT6I*NqfRxo-mhc+eh39Aen$PA zdJcNGFIB&S;_d6ypQwI`9*{O>v4Vki$4AQ1L|lWXe;# zRKKi|#CVN<9R$VqKu-Ka{b~JKbiznGH>gvanc0MtcrKc^7nv)`@DpO<1I17lTxP7u zc-M{?JR&%5=q3GQXM94WX6Km4e?-LTck$P-0~}e>ZC+CzPYkdSYa06J1(5 z!wB=$+$+|1u9d-OM{c)fBdZy|%cCH7u}RKj2pLdLPJ`@51I;=3hLedq#YomQ0>E-U zPSTuKI)dM1&ehAkMpr``Sn-b|>SjkSgB>9B(Vn=c*uKxeHrD`ekaI2RC3Ww?DM{aNJpkpuTIQ+{tDT^w}eU7zrQ3qiQFbqBLPsPKbo#!n~-D#!)&UTtvwy92IW1Rj4{^ zN5wrU3Pqu9GNec-_f}V{Y0$#Se%nM1?rT#R7Wo03(A#FmPtIKGx6u8?5#xFrxDK-hK7D!ElSr_rU*qd`7GF zvD$BaG^4;Y#PYmD&1Nz)%6h6QVmxL(%~3K^87WgLOS&_kEDM$olf4Uz^Ls>8o}a>j z$NP?fuiUF5lsbZ^_tpBn_T=K3tsWui90*Sk3;S`@n;xw7Q?W%ar9Q<8)|6+Eo}%YY zt)4_31gQ5~vSjdNU@_-#zHsae9PbdscXD7TagBeDiXfmgqJPMDTqHgVXA5ErbAmpU5BlOR*RSxfvRMO%6zN)j%lG~oCE89w*ojrKPZ=m=0=lK{RW+)Z zRWwK21V6*iIFwaa2&GoI`OwC_87G!klB01Ev_0}btZy5h02c7?uwa4~Eh8=$b`TaCDa6tM73kp z7V+D@C?HsUui!pmwRZ9gJJYRMzN?UrAjgFyHh+?}wx*rCIdf~%-Rf|kGpbwQ*l|D$ zrqF|_+C*-3>J^t@hF%rhAu6PZHh0`X+40I=O@MWR7F&TPLH*!W8r~II1(tKPASlj` z@D=4$;3Ia0yyq;sRhE?5$=o1zFt?v@-ujkJ_XRn2*hJX>`fn*mVey~HP zc^{Sx`6^T)BrlRQt`>S*HSx}e7KUMSvpS*#oA~tlZDL%`WU6MJZO3488)uuC7D$95 z2jmv4%yc0d#S}**3p3K)I&C>)e5|C7k`R$B@Vel*MSLb9?#UyFNzW;Qz^05Ff)231 zuBR`Cu-Rx-A!34-0go^`3r3H`4TzJI((|x1Q?fzvm#Hh*ggnCtaSW@otrt{QKGmI4 zJO($37f@^?ID~N8Oi!bDlEsq=nl)6@>+3F6#?`Pz`Wp(jfaU#Ibu6EUtOFqmc^lFw zr3iv=Uoh;U<`AkK+(cHdoc0V9C;YT});ggoy}Q#|QQna#XMb>#=?jJsvkpn2To2{S zl)VY}yMqYBz%Em#tmam6A>EEqu^Hp+LBTfnXF5LRn_+>hHo069-k!ohog%`Gk8Nn2 z=P)~Kzp{vG4xFAtmXE~0YiHOd?a@j|KMMV4p~TTIQ(q4wxP)ZnQMiuNlbJ+JImgKZ zy9-@H@vZp&3v1`_P}U@ZTirdGnwtLK9re^LFqdMi?D zlHT$mbxVUE|M4thoTDy#vA$H8HTr6Ot$qL@&ByDf=%qJMh*pvrtBGPB`B$b6^yfcdcbi21nrLvt&75Z`E$Sa>G6Hbm9I zlPr)2$WE44%wN9C-%TV;B4)CRvjPjSU}+a00*HVDyT`EpFGA=C=Y$sCjO-=$I{O0+ zsbV1Dhc#KueOZVxj4|s;lb{_JBrxYgQF)Lbb2>qcticldtl1^dkM&!+!vC!7f<#!( z+0v920~ivI6UhLu1M5BeaWeJ=cQp`-mO+_d7&ZcH1Ohjg2PSQH20N7d`?OnfG{6X$ zBe()ECcsZN;>w^8f_kM701BZAodlsuL*NpwfCGUw(#nC@1)mWr0+Ew=&Q7HM%|XHJ zCx-x(0VHzv<^YC;Gx8Bs8Uj?bBCWCo_y`&Th%=^uEOzH8L0tST-U`_XEXJOqt||@C zJ8_ec+d~y_X_FwX;V$q2u#z(a@a6u{&t{DF;ahPl$meHB4*;oXs<|$^5b`XgK>#Ct z7C_FZfa2*E$`car1Nq5)1R>&sq3aw4#^a)DaYyk7hcFN&C+57gCAS9T$Adtd&7S*g zmS;fv2TGND%e6FHq}yB{J98k{fp?}EDbB-vAkZu4qvHq93fD%YlqZLM1xRDoU|Mhy zCzhNV6w5Xlt(sES@?`TXJr)Cijy8EXC_GRjSvCmt=iKrkHG61bnQ639U}r@OG&Z)g+~knFVFDq?CYW*(BI{F*p>DkLNzZSDn4q z`UX^*pvHihK~zv|w#+WyNXgjhl(7#}3hIv4lGI~IyI<7mZ2-_>*4xcMMo!pwCn&W# zq}TFaQo$tl-ZU5-1ua}tPuG7K*?EL8Iuz%i)1xMyDewtS&>*lr;H%eo-ugYpzgOBe z>iW9(Ao40*QbgBpFIpXBjkkK$sJ8P_)kEx+zy$6^eJlB&>VaNzacUFHSid`P(ie}D zjC@kO`T!`*u;?29BtZ8fgA=f8Zt%JUQC{89se$|VR_RGxr z1?We;(oTFUyE%3wKuig7?TGfR+}_o2}J zMr5Uz4dL{)i%#iPxBn5*{71zW}4HefzNSGAkiKJtZ?Zee^6LcwV(GFy`S3 z{+HFWw_7U{FVKnT_JG=8H17cvkTdP$c&fFTdesO#?_n<6J6+U`4eDhu{TzZ(2n%Z| zi|#n2cF9BSgLl6!vON3>)*%3Nnn#o@Wx&1zHqS zMD?&%OCF#6GOEk>DZALQY^;I_)rehg&{(yng#3p0p)RHEwT|cN$K_QSKw_L|%8m~t z`nyz*CCdSNDu#WTN$GR^3JyvwaCD#OnanY(u23XJ4tZjFteA)wwk=}HB11jP+gBgL1dJdE;1}TKNW#L; zA?MC!JiIBUP_1_TGU7ps#Y84$is_d6D2cg*hpr7{qNfJ|uUJyM?Yi3^QTh(eW&A72 z(m>ZKgEl@Jo>=NTV-GF#%^OFEqa)BN5gd3*XYM#+XBGdyMA1xW>_P z^e`RR8x=nxFCuCo)xk4mpC|(_HsxD*|$}tl#K$5+-sG&}k^o6rMohIF# z`NGCFvArorhd8cPyZHN{tqD6{1Fo9 z{|5>5pHp9g*Z&ntDSxZs^)vZE1j@t`0A8FF2qF-M9}N-&5rHlML*O3S3d#UXfbFmv zP+k`J0kXngXk3i^4pu&kqQ37N28o}5VU7U-n%O@ALUU1o0KGui5`Uir;>3Fg*aoMr zYKb+vbC7hyA0rtV0EeS{1&fSb0aSEEoX;m*+|UB61pEj(WFMdwga_J^>b6{i@b(T2 z4=`}q(ANY!Hl@k<5O6D4859cK62J|_WbzSxEM%4ii_tyU`JAKS^a0*D7n|6}6(onZ zlwCN8gE2SQ7r0DpQ{b>bN689j55bd1K)Uh;GG)-D9X^u&%jdG8IW-?QyimDzeg|7~ z$ckN2ALb5W%D_DY0J9Clh<_vhW^k%}#`Q~|xM@NgJc(DB@g*mlZ_Od>&Dft5 zFitnvy=je&cR?F<*^LmeFfP71m)hkxC-N4I196P-)c42LPRB*k79I^td@gKZWGi{| ziMTOmWQAR2tA|bX@R~yGXx{O<)oRx)-p~NrZIm7HBN3;o0Gzt>m(264E|7(MrdNRO z{x9CgNAyicJ<${sJ=j^8x$dKt&wi~gHJZ}yLy&c$m=)C~)XZFuC0P5IGwc}?Cfhlz7uXo5L+0MTl`e67K~llT!7vjKh5^n5KXEBh zxlF6%YLl(nSK70rLR4`(Q5+4smf|nt=Fm(6$znk^&;bU7l7}4ApDpk<)G+N1dbNcWtC&te@0=Kdt>S z2-cc;X4AHIl0(o~s0+Qb>$ z4+28qhI-1b;6&01`<3IJz%D5S+FUr4It-NVVisjF4smBi0WwprGf68Hg-3;z3@B+~ zbwUcTmVGi;8vfFPvcy(}tD4Ac6;7qvDk~yM167M4tz|}bjMx+YYjB`Q{4?>x@4_v` zO+JMA5+VqzdZ0=8Ic6Ycs6U2}Pl-=h0#a}p zmj}5Ehnf;erx7E+MBhVSqwj+Q>r4{>6>-z&;=+2dz7bCTZ|S$|cO!E8F&tW-)t}Q} z&|lKG;?(-4EJjRUXJ}w8&(&#iW7*>WO9_OF}y-z2{VbxY>(@t#_=N4DYG|w z;lRPmLEuhSHWmk}e;&;E)E{8sVvTCZ$@`77iRh+yRcH-o3lr-Jyj6|&NkXJ7aLlIC zu>8eRwW{%7NsyDTvEh77_tH1^AO=g1WL9TxmClK8i!VAYp;4Ky*$@gvctCK}6{D%)_7iNA>5=@^Id zllCFbG|L)`Dt$#ul(R$7W`TgbA`6Wy#bn+Q>SMeaSbnk)GgRUTbEWDhgDIWEGldUt z)if`c!?EHVk*ndN87I~iai>VN0$OOcNp6DpYNQYQXpl-q07r_aX)b(t;ga*k0I{Ys z{v0HOg;TCMo(mD*$bK#BnQW0>$*CFZW`OXW$!R4@DPzY!8EQU0@ar^7KZ8kc#;}&; zCP5}*Xb?bQIK}P4Mah-oKN4pe=QxS;NO~xzm0_iQ*?HAalh_57P`V`}&MlN$K@ zQ#BKFy#vW(?4;NRDo;s~%O-Am*jRc=q*!z6oIk-mE|^hd8QZY=g#!0`L?}1FANNQd@G#kVQq7lJbkPmriW#8s0KA_ zo3b9jvPXNdCLAYqxp$#iJNDvyrM^(A+1)Vqsd-qNbJGm00}tA|i4~1m-gTkW*j6%g ze_pA_!Il10nn|tBR=ZUUT9mug-dzX)UMpF1f%7V5K1K-u=UUk6n|PDdjoq>JWpipN z48ge$o&T)Vue*ubqM8&5U1)NfbG7-sLc@I(iYY8f$oxNAwJ7wYaDsKn$V1z(`@Zh4 zA&ud>-sNWEm$};C zY%y67c}qfWDe*OW-GkLyl5>XbI;A$^`RCF>WBwOaZvtq`Rn>Xly?4#?ciJvAQL1I2nnOiGyxnyL}md+khzgCMurB2mX;cHlhs(-AV(>JTwRj zn#1>7b;H+wc`x^!Tc>K*u3fuo|JPdo^y%$rWD_zmQ z0p}(>iJM@7#CjLLkF0r)-KVZLDry+3(D0o>AK)-i4^?>(Ipd0O*lO5g87JE0)Rc~d z+8dlw*42csKoe1nsgAI@6u64Wj=acmHueBV0DPccjS@OhLvrU5vtTetVpu_#-VCd; z)l@@guviT0-3r%8s~FDpp|!S4^}^j`!6ni=tGgKzG@K2F8}@ifU=|a2tRx|MeMn5#XFLVFn%E3DoUeHL9}* z$z8b%Yzq_^`Ev)-&IlVjsXGd$YCKx$x<^I`w^Dn(UWe=z`U$0K4#9utPCG|G{-L>x z{?ty65xeDZ$pp-G)2hI2z#pe6(0GZylfH|-yS_iz<6$73C+nvXK6{paKG@@B`Zx4z z^y^!B^)I6d_pfj(LNkMMb%xNHD8XH0t|x%@0P_&@Nb_i<)t}NTq8)-!MNy&yDq<4MMd%RiKHh00{1a)m;Dv>kt;KpqNWpqFGd7 zO|ew4nv?s-vdR)poB}yF0R=2J(is1?E_>RNl})TuS&Uk^(1L>&?a2Df;?D+-l@9`7 zSp6r4-`mI=tDZE*AK8U8MM6llNT;yu!4hCB2_Ud^@soc^K?DeJJ#tnKpz~P8QuAC) zT{^;oizVMOirB`l7^ZYmJ`3pJFH7&HT`)PG#Z-=9ENGCp3KuUY68pKej5qX-?#mEx zK7Ioc$X@LdE+fW*EvqT8fF8I1fav(Xg$e>D8AYK($uJ80iAxeZ zBM^XVI%*hq>|()J947HBPQ<0lSo4Wy(4TLN9N+$BjQAk!F?uZQ800_=qSJh^*_*zR zbVfIEKDg)P{BjL|7Q#*PS&rsp>`y@?zUAuqj-zFi<#%G_G()V9LPKDo_ISSGJ6b(E z<7!3j40agDa5@2^(wOu|)Vb+Y`C3(P}#(=%Wa<%S7U) z${>nNIUSR8bBs(H@#DyG@>t<;+O)MiL1*-auE|mC%nmZ_QYh*y8sKf;WgG4CSDZ9l z8lM_N`3~4Ws9p|vZ>h4kg;P=9pGw#!ikxL06=v+i+J^T+l_1itVUkf=8XZoEW~KiN z)*ON6U|>kj$bG7$;C8ME@KpYA*d_O=ZYc0f0m6!Reu29`&_nXz8fp;XO-Iy|^s|5x zd*oTy-h{HyJu?Ylvj!8>Yi3Kgv#1=Z4?C2>kmR4P)EM$z(lKzVlGaT<6(l)fp;7*> zi?G%L1hbq4cPoiZk#K=N0QqhESucdDy@8${$J3lT$9O6ZoUF!~4F#RG5qEsnqp0B*|_89@Q5IzgE3Ry-x$$0wV437Qt3j}o!4@@#%VLEqyBLiq|43g`;*D_Z5ECcTn}Z6}QuL(rvlKBWAqFm$ zH~#4c+K<^nqQZOryN>hUDT7Vc)7=P648829?zl@{O#dvksr>MkZ{a1n6NO5H0`c)d zOjToIZNdBSi>J?{z8(-%oMC^Wnwred4N9c~u@zxMe+ujFH@D&9` zZqRZ7WKjHwOaYSjbJ*5ifUJX6>feE0^Z?Q(!+A-yO3*k&BaxBaem;gE*mF?0-ToQD zT527YOdav&*IlP;`**XvCG@OL7f|P%Mxl2P?F=Wq!Os2v)la+1|6TZH+t&c~2?1QP zcFXPkcq(8`;uU;iL?KTEinlLQx>x{zHl+7#;n=4kML3^~FO0Qa|Gpb6MSs3TbbC>c zMAJ>=Xn#WQClb8Ze#D}E9Z>T3; zqfWuSMZ+0; zc!fqarn{B79vP^VMRJ^Ui5-1+%DzGw<PY#iXmsE~!nOviw*yedICc z(Bl@mUJ{OYFTfmR@SNMQYBk}2JIp)fw1=p-m>jtsO)=m}jHW;-@9N5nj}ER&&+yK_ z1~R3gn%8L38Q8tk@O62_m<-|y=QTjQcR#~`7vYgrzx~rsMlaV}8IgAE6{p@hfX& zEvyZy(5I|(*6pzdnvDX3fCj-9cpKpW0eS@?3l0K%06PKQ;8+kpKLwNsyasd%jN$)d z`~hA8hDbw#N%<`0Y9QE&{KgT@$d_${;4Lumk+d&{GmC%X>BGpva19L+y4Rc zd_fBeC(iNEh#5lz1j{y@MqHQ;Fir+nY#P3Er7dV*eBTK6#KR})46-}DY0tc|;r1mYjosZ0U`(BLnl3lA#R0+yMrN zXs0+TX^h0qjT~^6)DiJP(<|vd_*HtfL3agc%w^FV?g{O4jeLX5vh2m)%pKWAzJ-`m z{EqoRdJ7UA(n}IbIER2^*-1Jmf25au1v|`@c|=nj$xf}kBKxsfn&g7n3-hk+xXanG z9=Ny#w*;fmlJB`bxmF?7$yXe?ph-YFdK^si_Dl>S4IckkaXMON+&Dtc&%vCzhE{si zI&bB0Ig=cUZ6Tk<0FZ#D%Z}~kx8Yg_QzD~WC7t3$z7gX@j0t)qSIe>Dz~wWItyz4y95%${Q{>{F-hS;z;YP!Hc5nl zql0i5km-SHl^UD)DrN4a>il}pe%|=q6lxPB0UDqg!GItb($q^2{t4m~wE>Qq32NW{WWkOU*dH#-V900`)B%GuP2 zMo@r)0HBlaJCSc=_E<2uy(BcvY422nGuuaGnA8iLLr}v|;AdG6$RI*!)NxpO`ng_p%gwrzC7r>z{8h@$3WdX@RszPrrv=KW z3}sn;x2#L*Sp?fZbJf0n4s`JJGbk2|Zx22S+&nAnb3u^USmKcMOonQf^ldX4B7p%S zan$WadkZO$lsXz*IL=k;4>9D}hL>JNbCkaB2yI10+qY1!8$UCsl+=K*@JQ@8Mg796 z^R3WB7z{N!fJm58vNAX*gycbuha~*C<=l>Bi~Uf4Eh)F^Qe320z=RB6Rygko7`Ebt zj()4^RB1G>y5BT57J^hwx#e$yOqIF*54aBB%oszJdziS~JB5{QzaCQ%N?>1`onVuF z4`#9=bqAnTif?#Lq5CSbwpVa4zA^Vho>TfxFa|niWkKZrDiHilOGSlv0LT5fE89$D8IH=3Kz|}|~;zG(n^b&VV6$+Ug(9c};`Ou!(?p~TwG*j>%@Z8_C7u#1s zoMaBpAv&pj$W(8jh%gGK=>*_35O?m?iPgOs9@L9;hMVz=>UCNQN|Ck&J5c=?gY=t0 z>TchN*Zh5sc0ZpxFGA*8{S}}P=@@KWil2nr?+|qT{eajCMSHMq{YPk|Q~-0_yw|g* zvYyg$)d=l2h z!1o7RYOpBx2ZcZU544MSo;^qg1x8 z`&GYQtNaz}p6a|iT~Hu(U^7)=P?76mb=3B zry81UN6$w4v5&8{VX($93*pmJLd%eI0mw^HLvh&&e=?6%x{jwP)R``Gr;E5uRae{z z=(Mb>Ccq~^+7fRmLeDl?>1#N0Q8h!yZIJe@0|M`*(;dM95pvu4bTsact%JzUH>c)= zdh$#M!AIYeRFoHxwQ%QV3slBg)dswmPd6-)+JLY38l7|a&( zjLt3sL@@k@XpU2{MH1P`c!o`Y5Mw`}>`~v|U0Sok?AvM&wjfEjBttje#49h+k1nlq zqDH|$j3{l1VL$0 zGig4%KkqOr^LqVdUM>5i1OoZfYk2jYuTv{W*pl0qtAkNdWYfTuZug9M8tgDn*25*- z2<}f5u1y~j2PIRd4CzcD`$>WqXRPKNUZXgGZ=&l(&I?%b(`y`4Bzoh<=T%_N4*M#U zTEHl97G)BkS>i`(2D_E#6M{GlW|EK;uUCq=T}aN%n9u@4L86Hp?TS~bp9wFV+dxb=312(uh! zY6mtTON1~C34n0DPAB%GxQ4W7-~?7`f5s938HUQjyw#w?5~9JTBbe#q2VtoCSrQpY zNRz=JnoLp%r@Zr0ir96#GZYg7HH(q7xd&KCOx{66@+6ge3@@4pYk;m55H|>X`I$-J zix5J&CvlWs>ie)ST05uZYFyE>GQNR;h_E$|w|@{;hHQ8Aw;$4Og&v4ibn8}E|KrXd z{+qoeef@av?>=E?=fOLtemp{H^K(0$or~doT)K1R&ec12Vfzg`kKB3O&Xab2W#^eY z&)@m=omcFydmi+b3XLmjix$w(7-`n|T-p-_hsWa*v!X=lfdqJprEJ^QAC2{H3 z)N|Eq)f?5#>K*Dm*kpgGKBE2txsuP40{pqG%42tCU|_AGY)nyeg^dT;sW8RNJ(OQ@)WlX@N1NlY;8SbH3oB1>cJm zBFRg~Se2G#hxUTn>z7`*8%ZVMVA^MBr4|{ zz=+X|*~2yt1hx~0XiKFE%?3UsjULIDa*fCvF6_k-#O&6(_$kB2CyjG@CSDl1ClF-9)bxWvxa+f>!`vI)#uPk zXf|g=Z<*FG<(PfQ18`P0v!#}dGe!rKQaaFHA}3&QH_{k?7E<4o``@|@FwQxPI2stF zwgq-OC;g@o2A84OptdNHFBvB;gL}jYXyI&XWIQf4+yabz7se`A)dr2k^lIpYv@It+ zLt>h2aN99wq}a-kO4V6rH7)Y3{1IVqW*#TuK>5re;!HRa^=`&EWn$Ce^j5oD0yE4{ zDNiJBg#}|N=bh*cJ;kFT)12*$5kJ|<<+))3$nz^fJ?VY>z;KarWzq?nXPZ1C3|)JF zq_14>5wXaIxxgbuhv@dLH{9EUY-BGWnmcEcbb^#jT!FAt~DYj2n(zeehP2kXDSxW`2uGh z73EOUs)8VGka4WH?~UAyy0E0$kUiqrcrgnK=KWFzh|>B>YykT|!5zKXwqNLgJMgt) z9qJ2_GPnsa%u1{KFf8&HOTGI`3(g1ibxP$wW2fl6#_l~|mOq0s zI7=)NZ_(G1E|uUR`YXg+)WuK+%4}UAQkLiL_Rj#vZ`b<07EFFlwyH%~BBoBL?2_+&Q@{OEUNP1eYq$?JDYpu0=!46pyTPbb$BKOsH`NX{`GDq3(M?BW&GkuONxPMsrp#Rv#6t|@ncL6ssAqjQ@9P+m9_Us?YhccLCmbNV z?ZxnMqbWk*ly6LXi~&-rDA}c{KZ#HD%14JvnQp;`wvUi#XduW(wpd5_3oj1A?R&ItK)o;L!9 zF8fSH3)Qc{tz(`PVi=6g0#l3787y_XLM6$>3Be)CD58bo8w4H~kX&%%cqsRwXqW$L zj)gw%5;b5DOlG-P8WE1|7&n2YWFzffyL(#wg(C{x#HVaXZ!4TT6dbhu!7#^a+c>ji zz`O)*lO@IE#e#sllFYCKbg(~koZ);v2x3VxLq%SRf-9i76ZQ2a7(G-(;VF(On~WF} z&m*xIk=V>hoVv>DkPfe`1?sDitZNGLcH?G=BFLS&>Fi7N5jR0S;42dRgyn`u3ErR? zhNui6*9f@{Qyv1Fste*ZI)pZt{`9HHfgc?t-RXw!`_&T6K0+OT>?Ic+O z=+7ptjbuh4^fY}IM@c~8VH|S8$s;R~0t9L=niBdVh`(DnBT4~;Q@6zIM}9HJ)*?GE z!Y(7AE8O}lUWm2?F%;4#`vYsdkJvp%21F{D1L#E<>n#2s3}j}EvSv)hh=dE&vE=r{ z+>#RBJ-(i7*2Ff6s#*!h_=Bs~r6!*B!(J}U?Fim>^aGgVCTnMqH1*O&RI7@dw! zRO0G$W((qGc~4Dtg$0J2kem;z+|a9rRcf<4KaaSwohK8#Cc2y?q!4%!Upv%MCARIX z4||^O9j;mX`sv!?T@S6k2Pv~pYAHrS-|t#u(@81@pZ*!*Vo%mT5ghwX822JL_W$TV)PJl$sXwJZr~i(1 z86j!nV0Sh5H4isGYaUAl)L%2tG0!(IGp{5D_8-lg&D+d-%paH!nva-|nZImhBLGyO zeqbMv>6DRQgx3b}0>B-^GQQZ{4h9<3YLp_55T!)y02wkUK7z)ulfY( zalzLUTWmgok^o1x0rmL|Y7@)`q5KT|caUTo8DclkoHQdkXlKx^7ewBqmY8LjS1`Ia zE$-U@?XZHtw*n!7zXHhtfSV0(M!6cX!vre}z@-Vgi3#eqO#>MLho%)LmoxE;^a`X- z8ytekLTek^knAlC5lar-04Fi+*eq5ZgG9odz;$+@eY(IgjDSRc_`}xrcrFIq4bGQ% z2Ue@6N_Pj=CGJI#1(+b{KW>KSAvB(H9H-nctP3cI9ztc zY~kE6-lfrYZ22L*;5#{=gr+tan-T|UFHo+T6EaZP)^hJSu^6%RLIzAi8jJ-^Fb(g+4`38C6tZ20l}5!xkX_i+h$)IO&LqJwpr>cVcwtH~an7B^7;5hVrUv9WE{VVG zb;(#UPOexSt$C3exj?!qL&;7@Tr(YJhA}h?x+WKh;VgT}yytkfi24Zkhbv&LXv%H- zeY6l#Aoo=WYK$NI%IOGpxjZ*6?P3zKg)8A2`JZdRSJ8fiP$;(@JCjqgw{)6|mVu%9 z=B^~%`UJ;$!8nwI26PKaxKnzGM~!eOzN7?19>iR>vXbL>toudi#P~l)c3mwCMV%VY z?yEt<>(g;g?{3O<3A~#o{SiJbioC0AFCf?=KkI&5n(3_Q>cP1jeY(Xj$2cOOYmM1>qNraH% zyZCumXp^R$oI^o9`00uYq5erkAPRNuYz(aQ#tDUpteW?cQMgtj0H0LOM)XzGdf|!=DrpN2>@I*Kns6Oc)JwaHggQ2b;Br%W@y;ikL&M&@7 z60W*sP?4)%u7SR4`_CO`{TA?tx~rxCB!azRvp_uu?ijh6)yTZc(w7XPcT#nzqizdr z95Dm8Hw0`99w*EXlLO+mA0n69R$qlSuNM>(D(Dkpbd=a6#HE5Q!2sOCe}~&0gu1Pb z^(IQ!SrLk%9$wC<1p7Y9b?;%+o!ruSFcveCqpZibQN0A!JYl@}bU`(HqC1G3ss zHbc#9G4Lb5%2EVj(d+cnq^JiJ5^&XXV=C{x7T!2s16{fxY*;^uYL*)2A1GuKqUqtS z1F8|keLvBt+@i%WELGO1eic~O{2e6e+1q<8c{Ct0Dm@t8D+oIndYDGRheNnddi!?qg})IJB4d7b?AKH88oy!k zsqZ(=b`ciu=#+P3VJB#d;&}R0W++9BoN{*vaw~WD>iMME+bh$9&V;aMlMZ!U?(H>` zd2`t59CQv(=u3+Ec#23KxDnh6FA6tAZ`9+7c9+U`84X}vw@r!!#(I0;b^W;!DXu(B+vActig(U3L3R{jq@vB#ad60IFlLWcp(8~ z;5F3;x#5d?ik&hY&R2C!oEZ{7BcR2RBM2Z#(+}mBfx%+=iD*h>eYRxCU@GhL|2;7M&Y7s zrw&ji2s({tld)Y8daP1c3Ix0|S9I9$Uz?xR8M=O{;*l?~gnVeyexS|hrcGjso!`aFIz z1doV1?zK^tkLiyiH2iJ-ef>j3<818CGgQC2Ejce&gZv+9oqf~J7;gL4Y3nNM&epZoFIrEqo@zbadZzVk>v`6Tte0AEw%%?1 zzV&|Vqt+i;pRhh-ea`wj>r2*mt$(t9gbI-jLouRg*)Q6Ux1VG`#r|dc8TPa7=i9$- zzu11c{VMx6?YG$GmRllB+wFWcX@{}qEzT#pHQr)d2-Q)l6vcFsB%JGXT% zckbX^=iC#n-I0r-fgNy4-%f8@(0Qo^ev(gu1{<)Pkf{Wb@evdyG^^w9*dmA=Almw! zkAIbj2;0vA!1E^&6{5OxzqT(tJ2IXw5c`AH_l-w#r35g;u|bMy*tHXu-} zjut@kla9cT0!*?^kTTye0-TErr+N7RYNUB~A~Gha9{@~hkDdv@T%r)MTKB%h#hTSw0#@<`ALT*;?ot}z_!h{{%@M^0 zWjr{3(_SzMB@6^%K)Oqyj%b2Z{bW!?q`Dm-IhmM7giUB#xPlvo7-RLUh#qQC>dMwN!pPiLc{1T>!$LuS9r^%!u|Ej$;p|$PvLT=_7}4;MAdOVq|7vUmbBq z83Qh-%{i(OCd722&xClGT?D4u4z#DI7iZ*D5(AVAp$I2w(0LqIpNM{IP(L?s4FWf;nj{C|klGY^gBZ`7aQ`j?d zEKTzzyR%UuHZr-6PelvN0?aJ7VjHms`ezH%*jW#W7p9UTgu>Zp~tPZk zDVf^r$FMPCa?D14@>lxW&JA+Am<$+W5-^pUM8_qmn<11vm}W9;yfEAamrXCF9qI|*jjYMHvzMw6cYP3i{Ijwv*TOj%^`?NQh*~9H_=O;RTu@b z)LN^$?X%3AhBuL1cYE#dRvD^x1ehId>l{PF1Opjd1a~YMOq?-1p>&II`C0KBY-mP$ zBlls&zf4(a8IGqscU+d-ahj$PSeML&GjjEE55$|o+l+S(iEuJ{@>kp{40G#*5T5~u z@$Qf@;#^!h9g?Qlm$ymX&MxUB*6(rTwv8FfU@(svQy9r_d`_nw5D^boEIa)W*!Rt`BX+S={LE_%I) z<>Hk?aM5g#p#oJSyoNjr@Q%n|Ikr2y(*ZFr7@Br(@-Q#!+QA&OQL-jcz(q5Rs%WKGQPMT?T@$Qai7tt9!)6Q%3(XJ(>RTDRb}-+qAf zH?-Q|JleO#I?!q^N)HQgGNCN7aic*r^C!gEu$_p{IFI$Q%OFpMpmx&eaibtGx&1<6 z22m%KdNBy{jAjnJ*OIYIix2R|drK)%Gu`L5H>i8cHR86Lp=7^MqK=3HEo4MP6JGVM9n5 zN>j{+6mm+^p#DIp2Bu@^ZNF;;ZwS0_#moY$mR;)j_6n!$5#Mlom;=|ut>Y*e7IS0E8eK+jFg zqX^t|vIui{2$D(rOZr>8y>cKRP7{`NAdfGl-$~7j&Z2u^6;vN>D1j!_HRyh4$tnTCX zgz`p!v(ZVu?oV9Q7(0^z+)53lyW*j>-PrLbDEvn-+z6^tp%2!Y5vf&c9Ocoj`s>X7 zkb1>B-=b9V9|=xwkYCboiSlIoF-GRm*5qHQK5)y+FpZx^`X6U|HY{@-T09B%Ly00n zMdj^}^~P&VKe&WuaHlY6?o7_;(?=u3lFWyQ^C(g$Gb*9+EN#EV8npeEg_Fl7BxXxW z()A3BJyEaaP2#+jHz5Ih1RQuj+U_q{*4tZ3^N&Q{AiYnh@Bhs_%GbCg`;P8N0+{*= zm7~>7#5*5?sqU%APZF<}LFPbBQ@9Ra#tU@Mssbq8URp24CC?QP-I2G0$oV0@h6LL7P2!f6J z)S;lNc^DxS#eEd#P6#z&sH(N=lo`*yogs9=o51aK+#boC)XU7%j2RTGMXuLsH0sXv zysPmBYwDH5W#kT!QrPkK&M2G}Y<4u+~xC3edRXAtJ9B zTQzV}%Iuj@CXYBy-y-yKoCv)C^A1U+l&kWors=|NaUg$Cf*V0t62K6PS(=&J?C$ob zi*>nMMa7bsBEIJjD6U%LvU8rIN32#+PM~f%b4QZ1q zTOjyRRE&BFy5gBSj4dBeglcAym(Lo#%aqZ?W=gn8`|2BV}*_owE^t=Sz*ub^_HT;vGND5OI`P7KtlG|;M=Ey2d@+H{6QoSaZ2UYl_Z+fa(oF-mLrsQ?RKYxF;`*?)S%-1#67zovO*B-MmklC0 zy>ZggBvsdv=bTwUQFlx2@z6rnX5g44I`tav6=W7NZS4u^rLbmjnLQ*V!r;%GE)Hzg zKC~SZ5D_jV7F_<`Cm^-5u`3wWWkw;_EVw)zEqQhhDg^6B?sAuPbm4TZ${qCTM3d_Q z6P^>g8YT}R2u<05U#1*~yBH8rA1vI_LlTRkzL2%?Ai{D-?nDw-)RlP2+>uD!9{)$Y zK#lH4X1q%YtZdoqr}!m3w?n1fGG*fTN*E^;aAD0&^|+t=Va#BN`0bFyb!v}z&bT{F z$8P%Uk;vBi^qq%>I$LHsTi3VIGs<0-2qNPRgZmM4P;(?WN!BosyY6(6KThuMi7URHyorMtEzA3s$;OFs`WyWhnn_E!=BCo%N9`d@H}0j^EXTcc}MW{)8E zh9IDXaIv1mTOd@#Q5u|olC2P+B71hYtNGsM?$%i!0+9v3_8ES?H% zld}^ep}r&8B<>VBg1z}wtQKq=`At~J;-e5_4O@#dV;8fcim{xEp@b&@YfOwH2`GyH zL0WMalKv*A60)T@kH|qQ#crd&;(EZEXMa2yZHYueqkJV-l4{{nibYq;b-8RiYGe4V zF-MEUEHUEnejMSV5preQW%kANytV)Q(w>PH#oxj1XNiqtHHttDCK_91_^kG<*wHm3 z#YTEfb4SS8alO(RydQEtoCK~tVoZgh%@A-F#zss@+TnUQnJ{4S(C`~d{fwi~YB^pa z#@POhRqG$Zxa1sda9B>pR$Ohuw{FdL8D2IXwH*=r6o&;Djmb~%S}y}Vk)C3MwnN3v z?fIou4yHxia_xC#jBqua#bA~O;T;RjfIoDOCdHI()oo}`WL(&TYvN+W#UZx@b3_NQgg{a`@!}Rk$jIuM0xjG=*2qM#q+gEz271b`x0LB z|AklHB0w@P+wa37_58Y@Pi9#6$Vp7{{a~CBQYRTFcFTdWo8k8E3=g!yLy1yvzXnBC z-H$c5rh9<}t#%Cr=<_L5w-6 zM(U%O2wiDlc0xK~g}MSXB2!e~pq*p}mK-iVYv? zN2A1#xzN}5XWhYAw9I+3ksc1Y7{gmNXt{r?>s8NX;$`k0V&-}A1PVhFt+UUl>g7U> zhMsnUYPY8U@7(JS@)Sh1Ur~HHS(}UX3u=V&Sj&cJ{en!%y_MWiF<~e$KO|&G?X5i; zAcu*dGPt1iIG}fuskq@J)P&j$ou=x|(MZF(F0-&dQT2-Lz$;m$>bhgq2!@D-JBRHU-sqF435w7!!@#qI zXoy=<-$QE2n?oJe$t3F&QN{tLM;X~~X*jvhjOaN<_(IcRazh@6dCz;$E+KP{L-9aH zm(>oo%s{UqVCF7Op%noKS?nR3_bSe&YcNw6TKDD@pDlPDqQAkk?pTYG5eZ}batA?o z%{Pb8`iDglmku0uh^BTQ+(u1pNdFL2H8Fj>PsFSBWQ5UWjVR--i!QYR!Bl%YHpIXG zs_v^Eq#g#t;ZY=ZJpq}Gr>o~ukLso1r&l3H^po_i|E%8EN^SJOO-p^CPwCt1EA`b# z>iraHTq3#g3;HJgYD6~Ppx>a9JoPOQ)eoplwdE0Tz*H0sq&n3E zOvUoTnuvRu^&5HTw3YF9Uwre^b#pbKjkzYaTlSX%4$Sk_jM7z;Jw23A(iE^C{BHd$x^7vj_w&_?$J?`Xl`-#6>mTuN!oZqqqAR>UN?H;FR-K3watSrBrTozkbD2s6a*p;3GD%dLd zJ<^o;$pw|M{?Z-tf!HKygZ4I({KU7Q0l{)$0(PP!f{ggy&|MDaNV$BDkZ?i!u|4Ak zlmms1E^rua0(bb9{SZ^2iy#ZZU}&__K|YBhTSFuC`_^a(j$Sa$F)ntd=|=EM(}qu|+1iFihz)=b zQzM5R;R=zTEe8?gXrwX57R@;NEEG9#k!)iR8lxmSXX1m*5P&m>GkC;Jxg^dkN3f&( zLRY{?t?(QpvyyKKu=16tZ%BJ`@{Np=1V04Jb8e26;aI3}4Bg5tt-ePI7UX!5M40c94o!Vi%PVkqu^925LcypmY~E++Pld~J1R*WP z7h#9Hyd<&nSX34S7)st^kjS+Yr)rX9#iXhBr-;b&+J8wv=)sX@Pd z?VrOKv95xC_%-eSjYFn@T9XpR%>a&~4~#exRyPJX>_1#7G1|j z(FFD%&b0{+a7{UCJT!3!$tddYp^g{f<0oYo1$?9SRP-0(TOsLXd>Y*;3Ca%k5hk z1wA3^G119^<6YDZ{8Ifnx8Bi9^=R_0EV7JJ;Lc}b^E?*%?RomA)SuL4#~*|p*1Wwn z^}(-)fajsaC>_l1Vp%8QoUoJGWIp}f7WN*G2n<0>4rTqTX@#GET?>9 zhtL|CyC@I_aLy>@bK`=5Q-FBq2^xmz|sqv)QeG4 zu`}gF=|=yOg=E)x3(qMDCElXStG$#;04TA=(7{hs(7Z0vnJbf?kf>+8D!Tw&6?UIF9m{5w@SK3{Tam67pfH|V)!W8=6nm*Yj98ZdralG9kVH}a`J8Co zdA)PDo#Bt)OAUjMsT*4u^=kDx^;Y#x^*dN_pH!b}^W()G^>x&We@K4310QP_1+xqF z#ek`w(T~xO*H5J?!oSzA1Wx^y{%!p(fZ7MpE&B+qep!EAe@B0hv8oKQTeE8}H`kcE znR~+3dLbn~-(cQk-i$)odnon!KG<4+Pnpl}np>z;7XWyuwX zlPtjyV#H%2y9;0w?}DtRv?E}Mm6CN*l)Pw}RgnYOLG}cdwHw(6%8+&Y9Jr7!usYL# zkl^{jc}@YH#L2-&KnW;;!&3u{!E@pY-HT>HIhzsRfb-Z*d?O+tCat)%2yi@-Mp@4J zia+gd_@4lRIMt3E$=+z)(pSb=P%b@caacpYzQt2vgC>rOYgo?uz$j&Xjiwofv@~b$!7$xbO zAmVo5*iHCMGtngD6CL6(xl0>HicT^TjI7*X5GI%kY7V>8DaK0*lgc^U-Qmg{Uju`~ z0Li7%Lx7l2NZQjgug`$?={18P#b$68x}Zx=Cx}nFOdptHXTZSH=%t3Skt`d!%vg}V z0+5ueS{?C&Cjx6iE`qM{Eo2<&txOwGC?6T`)^Ev9G)BX6N0<KT(!4?cJ&Pr|_x1?>B*}(oXb!9yGc(kbncuI?e3V3Ii zrt*&RagQ_&!d_{f^18xCCq>ppn6;ncceCe3F^4^ZG$^!y@%f6R$HQHD|0C(&RkN<{ zQBks7=LPw}aYZ#m;3%<8ymSzm$vS1xlF%`3ETo9BVew@-Svl;T?j1&Gcu<&^+q|D7e+|&6P(4KC7=bxWQmE~=M+DMC|FPJQ7mC#f2e z6AOx>zEj_dvrQc5LD!Dc@Z!8u2=7ew`EJh{<9I^^#i8Ccp|yQn0W~!~Yp5_1#LY%ap$iho{QHaR#03gnP zz=h~dz>E(QvrC-coXxiX&h9%;DOu<3zE5ep@I3kCN+ICXnVh=iV=>Ce?|&fTV2^N;Zd%#*r>wVeDXT5X z8-bOAR}{tM7o&-Kc;MKx3}iB}w^Vy2atafNtMJr6cB?|7)iEwqAE`FWY%c?RQX+!b zoAXY>qf~Mq-hm)`<7>DcoiRQk(YGU$JZt*I=}1lDyh_q4kB9x~ zR1#Y#-36NLP|+SL4;B~C4&`Z?L|VO^>=dRPYb7ckK~Q}=_j@Q zeNyy)9!Jk3VgBPvO&>EF;yvR5WA(+A*l{Pw1WfQUl66%~^Zf34j(l+Am+$~8B(Mm( zDfO;wy?vje5FzQI;^0Q?D7=P>8)pHzd&_x%y>HX`7l}KB2$K`#pVbo&In{{(f5NZR)D(lvS_=QD18DV-Dt-1cczF2!W_>f|wMZ}<^)sF>s>G2g!^kqtiHeer%Lri!f#>>SBFPi4^eHvM zUr6r5@C4~I8U;m7L<3JASmCX^`egxmT-u3u%x({ z?k<4m2`s8C=w-Y0(4JPL#ZyPqIH}d-?g?IZQVo?7w1WWusB;mON;k1{pS&!)NpHL+ z*$_RoULMz)l<3XwRY_@w5K&Y&AyJKqjP!sQWfqtffKSM|OveZ5A*&EIPi*(HZgqPy z@O5uC>#ZoQ<6$qrjD!9)Tj~jtd`UirSHKIIq%k+^d$-ppkoEQ6j6kr)mrdnYCSEi* z^U-ucwv@aRx=A9cfEbNfl8j=#h#FEO)sP1+*Ij>q1bGH_2&xjs#T*hTFG&~V>A=Ih zqQ-0+Vp^zWl4oNwf&x@a$9^Mm4W9;cDy=&nrCJ!~ z8jTor1=FMNP4k^=cMgC2EinD3cdQ*(y$DO;HR^Y<5I&$jf?eLYT)8=k}8Yk?D6GV7+D z9f<4j_M1`)#sf5C{4C9`UK%8So zBDFBsQ5>rv<;^jAqXkh01_?=RO4(0v49H864H0UAv=h?u0Zh2{_zu8EF0K)@1adlJ zH#tB)NQ3gvh69Ksx3G#`Ktm)Ov?aa-xp4{sPtq{xT3mAi$v|=-V8ZHrkS1uP{RgjR zo5lbb6LDi8B*Vh~auOpa7hugPq!D^XV}j#_dN1dtM*UabsWgWDL!3E^U*G*Gx zTowf=IUU6`fze#2^iO_23lOJUv@T#!u1}hj)6*!&;AA}`xhGr@r)xpsrIJh`9l}z= zRZOSEERrf3?a_Q>Ur8bnFnq+r&F_+lE`uOvAW20qI@|_8vRp9WUHT>tZlF3aRxX@- zuz{~HPEF}vgE1msZsb?#I8I^)v)za0q-BohP?xd4b>z4}nh~3YsUyeo9p=$-3$X3E zOc_*hqEZfy&hiUzcfnOL$_ymCw#b(|1x#m1*dOdmAGk?$5Zi&BBn^nIBH6|<;=FE$ zP_CB?lF>GpLUO1~3)w?j62vV#$oR>i9RHOo;ycbK-yHA2+}((hl|Xt+tbh+nr93eu}d-bn1!@2|6@UL0H@*mmKT36woWkUhPoY|P z`ng#q2EySogL%$MjURMf>S2tKLF)ho96e1S29lQFV7>Us#g{c8!TKafsgFlO96t|oTv_yiUm76e7* zh-_1`%?cimCmny;pHm6ja<`u+SW40IC_r(*THuf^3a`hidc9Kj4*iw5!m&*<=T8x= zwmuS8pGDzwKoTfix#u#V4+3Eh3xFBC59^J#icr)7LQpg#)FZFjJ|GKY!oU=HLm3HF z<*REv5ncXpMv22~t<>H=hT?Mf%BD#n+y%-LOo~pb&^b<)C7Xg5yUZc$oxq96`?MRx zS=r$5rT|MkNbK2utQ#2K2*3DPI~XHGGjNNWw8JcW4gA<>5^X^PDb@8drw+O9_5X;1 z69jDzp{-Ef&qG#=gp(K|LPj3r3-!j*m|624S<9&=wKH@^dHNc4{gRG%QBA0t(l!+!d+sIP6W z!RSyoX5dml7!q#52C0L}dbSVQ!O6RRA1!IL2~amc3xbN#S6P%P#C9dI`90!+KE*fN zpKE$J0M=;W3G3dThoS3L@uW(oxLzr*JHXv)8R|?F6{Xf)Yj8K%z?e2v}H$R4G5vwqy4kdNt0l^yif}qo}E8SG} zVZDL-Fq;Ppj3ulT_$9hoj!_MQ)L240)y|>Qq4ZyeP?_n|a_QmYp#02y#sKA}@j<58 z9AU`a@en|t1a$#Ds(aa}W8;E=wM|)&!2*s*9Z@HRDF%fZf3&+o(}w55jGfdzzyLUK zQjb7CZD?mql8R99{e#5B%fhvC=($+FdX(URNTo0cR%+KRSCd$K*UIZd_4-CL&@j6SZh1%akT>TW)s-fXVYIq9O-VkA`=1P${3W;|p9+A{SPI_1A z4H6zqAJoo}=88{Khe=eBC4ryF<$VS?DJXmc{Ub)`CpCjE>fe#NBZVVpaEmPD)#xCC z)#zEc`v~>bG539CnPo^Wd>}IPRzS|qJcbCr#;uO5f)&lZXw(c>tCOb2CB>V)ArT4o z3H7>sL>*yyp;;U~oV2mRpJKBzlhktR^1dg-gh9BS$U&n~%$-Wq391M&oA72}9=c*<(b<3ZgdDBvuQX zj4P_WqP$(+1KE4~axq?c8eLYEadKIgOnh7~%=H1@5}XEJl~A{*7s7l; z@iK8IW))LW9;-Rfk2D(j48N-D+kqB_Hp%p@>D4CF|J1D#0IzBj@{hNR+_G#(ZutsH z$Uj7G8AI*Xts=Mle!jhYr}*)|>Oa<>*s*uKooFZBsdmOYOGK8h+_`G!`knjkJOGL1 zpV@iV&I@*K+z1EcwY>Y?i26HIy;jGQ;9H>tO^!KB|)f1p07KCJ$mc{+v~C`>>W z=na>;`1OUvd#P^GB-jfqh+Wd+NOo-DFSr@l3V3dzsVfJ9tp)FaQw9AAngqEX0h!O@ z^_O;Oj@l!FG&z$vuz`|C?2j!7P6dNw!yO}B{sE?gC8br4l_teAk58QsEz1N;La_9P zuQ(S9=d=d0<_PJ%9L-TUyM^T{aSMUw5JXxcFVz*K8$7Y-S&p=4$+m>9K0@WV3+47)iP9iRR0W!u|<65xDFtO+r zROt=7()t;RNJwCWUb1%^Es#qWwhl)K+XO>UY!f*EV2n9NTbzM$!9Zd-rB{G#er`z2 zWiy5`_?cFl*3=-f#ei@bGHA4OeCr4lFbbzI$eL3Q{l@sX)S(WGTr!QeHXi@VK@&p+ zMs5bXVTbbXIV@`noz{)7DFU9DuyqO0OEz7)&4Gb!^Prc%&=v+d8f2YfQEsg zKa7ohMQ0fy{>Z7Ac~~#9k60V>S*}KyQA|%^CEfZBZ4mCD9sV#&i-#qGb;lG5#579&lk+);ITt zHpU*J6~t22GgPP6f?E`S5pWvI5V9J!r@{61W>a6x>?kz`6DnZK`Q>z zUivq`UKic(h}mCs$^S3IA@u>Z_AB@YOo>xPwb3|{SL^9$tB=fX$%G@TQ1jVq!$|@^hZs!kbfv zW{6dYmeMYURqWg85LQw~4fDNXL=6Lvr7XqvT&1z`Ycofwtn6b0^-Gj^lJfe2=?+LP zr&Hvgs%hPgMuf98>Q-1sFc!e1fB*zpL27mk--AG$iK{_6)l{oX2UR-K6Ti$Hh~#_8 zlnO8lr=onolA?A-@0LYU3GXY5@HgtD8&mLY6tAGQuA&onrv3r-Z=g>H%d}GuSB6}n zRBe1pxx{r5BAZ*5%M#aaYy!Un>sI$mq8(640YO+@;gaREtI9qOTt<-M2qqsngcfUU zC+lkOBra7dQ&OaqlF;yCQ3C~UuHhJvD_i7KDE_$i$%WFuG>Bkb$WaAB!=;;j3LN$)y0#1%B?_rwfO zyPk@g=nS-iolrS_^oNwXj53ibB5;TRu7O=v%>@SHtEL<(UsKG{gJ?gZzW1qk6#COq zBJqeW8JmxSu9c8VXcHjIXpzm}WJ-Ft1vR`eRBs4K>6Ao73KU-6go{o*v1`Tv(K7T2 zz;PLw*ddiaA&)gPm&^-tv92H782EX|pG_xH#3I7;4HuAnwXzCba&CR-IJ`YZiv@|M zWZ%pCgb_qD0BKjaZ)Q3m<=o}Ig;24h+?kH2s-i~BA#^IIDpxb*Q^&=J!SDC2VN7~^ z3E_>$nYl(ohCF9tTJU&6JI%(GTSVh-+Vpg_$5dFj=%LNm`wsP4c@(+%zUn!(afx8^ z++ZK}$wUQnLui2~*c+m7yCL*Pdcq--&^}b@29;JgV`PO=ObV|6lZ2RM1$B@l3qKkz zJCNG@3I3(&v`Z9iib-HO8(x|~Ue!gnSK`DKwoq4$x-fDQG9r5hUN~l|&E!p1OL*`e zJh9~}S(VjZw<2l=dJgkhYAsQI)nqHp;8uxh94}uuTsT0=qR%WBbd9r!;w5V3Mgi4n zJG_y?{{PF?o50(0Rpq{W&RKocs=ijOzHfGOPIh)qPIelSlaSD)A&>}28qg330wJ_= z5u_0=AcAlWjXXs_1oVMkQ7_nWK}A7D@gk^z*vnN=LD1`!=B&K`sC7i&?`QVO-fPvW znl@yiPWo@7HgFo&8P%2S3}0Km96<#NULY{c-*G`Wub> z6Jc$b*>hx|4$UcZ3ACb{%_Av?_ymYWKVg2-ya&nG51ZdMA2S~}e`r2y{v3LdNJ0IJ z`MS9eLy?dbI$)GLf!EDid>G*=v!rQ?J7A)-FC%2Bw3UHS~@6NmwzgHR-G z2ySBxKpGm@x|}1zStAABjAeG=okkVa+wzWB6LM^85s;ilzAXvMYjZ!b5g<+fMzal(>4USS{PQGMc7Q7 zUs&9{W!mIQC(I2%n;?{2em>wAWFZ?ayQui^9_vKFw7g_;_`{(1N8gDtaHnzr4RHpE zjiH816iU)aWrk%2_$Nm)sm&#ko^iCy?(y-m0nf+Ml$=WbcVWi66pm?TQ{KZEV%If$ zi^rXRTqEAgU%c}&4nF2&{Lj5AW(DJdM8>S4CoF?yPB=B)kp3LIZ?^@~eVj;mFDeiUwX*zniItC_VL9toGjfFn)Kx16 zefZP6Re4pJ%#q2+G_?l@VRV2btnvxxyJZ*2aO5ZP#!%q^Cbg(%#VV=m13V^pDnh@G z5m)J&4Dl0OHK;fsV=HC0%M2L7`qVu!?o-)Ka>7|>!rdZUK(ZNxMa2qEc-XnO9V1c; z!VHGklM`<}@*uZDK_x>dnZS6cmWaQ5g@!hSG(v9AaHO^UqVB04aedfE;wB@m;P++@ zUOrhvS)vzZGIrwPL>GrT_Ak@hkPSv`sfo2dI z#<;4?FH_>wJ!z>vnlnh} zcB?-f%uTzC-%rP8+^e6cCVk2xLMZUmw_{sO(U>7a?W=p6XCWP`E+ zC#%Blw^vRv;0_oR&KO)*!nUF01>uWlfOx}2w^REtyCnAtdrbVsu-Lq?8l;_eXks*X z+a0TuAY`0(DY{)ROI-Dy`mH+RE>ux{uqh+N<=+b$eAH4{ct9(PlFCeCv=fwu@^h)fd`tK(6PHbCglxyt&1B_>OMJf*`X2pXv30OoTes`Dm>S5F(+r zxsz83Oc2+^9d0NzUZPoE?n&wZu4D9a;PU5ab>yVtMFco{_}&De@Grr~CierPxRZec z&4K@F!e~^NWZgL6J4%cT4mcU3ppg3bY&UFzSJV$FY=S+sr%8WQ_*J z#6qxl??l;AlYC0BZVk8`Gj_}?AU$19a6uD7s3Bo-6DM#(1iW!>jjx{i=22^uE<9!l z4nGw(#_;kxZjb7H$r`HKXlQyPPR1A`>Zd!38jlPPV4DzFKwm|QymjqE3#UDy zqy#7Fco&`*ccoPS!v;v5IgVmPlT|xCKyJ%2@c~|F)So@#aMXPxr3S534BH~&T1T-x zz$hYspmw`ROkjbyc&xo-7?*@Ktw9f)D9uZ91A)p+Yt-QjfCvvJHcka>(RvrBcB{Wz zyZgB3DPKn^y1jOLwHS#T*K%ENlu63I-3gTMv?GgLCR^_U1)dQjzTS(kJM<+BON|}d`LMCZfn?(Rz0yZJS3BP*7dRp zUXmg*esWBHf>kj#$f6hu1+fsXTXSo8^PFj25$7<(I`hCe!3x9^dVJva(`!cY+*+x4 zWZA?6ZGBW5b3BJzYN&t8($ilhn)g4T;9AJ5YQkt~l?)nY!A__I2oBW^O29im$I zdi@E{bf!l?$q!K}tM5C`%V>T2~Mb-jA1x>-G6y_R&&x2qp-s`dSXdOtj)k2LlA{s2{2 zm|J9>XIqJ2bu+xIB8#N6YJj7RrU_k>! z8Ye8U57;7pS@0?61b%~Q1RCPWlqNYhPbHe4;}?dU0EpPE&s?z&R*6^$_`*3a5Os||lu3|%x5y7mK>)dscp6{nX{ilIG68)9>((3~ zh?esJm+5syyYd+)kZZyRYr4=lx_Qy;%`}rk2?oT6&VJGh>AOH_+G56;Th1?2=x*J> zf)&LEV^8oV=jIx6pzKIzK+p7rLDEh|Q)0GpCgzjv?9&_tR+j6_du&P>9v4fjHjb1} zqzg?Igywk8Ck@jEeUMMYGL&Pu8R(mwsNQDYVjsw-ycZ*bmc%+cjRMcQz4=OPt=qeW z$0D}sEYh^o_11A%dcHRbPo`}@8JoVB^xgDiNTsMjy!N`CG+lI7HGx1Vhqwg^__J;y zWVQFyrH7h$m=bCutzaOZgITY0AXc+AvS%e1^?olcX&Sr$R; z@`$8*fZd`Fc2SVTMxh!O8mRU*&t6t*2f_!+`68#lYGMUGcD%j$eu*a`iNF&{dl$?G zzVn@6ykj(X+D|3Z{L?+F{-2Ok8oFwGG-#tdE-E}$Sa(>X zOt+-627n)c;p$IjXCDaZW#JVME6P_Q&(-y&b}+Ff*3_8C3vF{ z{KEDkHPO@=uWGZr#i3G0I&v;T5zRy=50g%Nr7tiKO{q!%jfAq~-HECPJQ`-jtB^t} zT~|u8E7JA>d(WN19~lnX%aNWfSMFd!`e%MPriucRpb-R#UWNM_aM$nazLnsXhHhS` zwT;{e=!ry)WiQK7@K%gJN~>P@JMj%MvtY$EG`Aaz!?R8ixS8^{4}HDIo5TW7JmN>9`Bc0h2Qb zs7P+6c%R)?hh-eQavla(;w@YW&B04vgBLK-vo6-a1h#|n+puL6rB1-IddpjvZ>JK z!%TPju!y+P6xt2>eP{9FeQxKjou}+Po#=7MHyx0IzT0`~Vs$x@3jcIc4WDaXB=lfX+K+h#yW&>iX^oQ)Uz;5d+ak$f?AR(wZ z4&?*3%5R!lFJ)bC)^ScjgAD>|R(jl1IEWY_E*cpEvf7M==s8_vBYU%hbQ~|zn)cWa z1}LsgT4e})irFo-cepI2T!{WlHc>HNGc);bvNkygB`5AKKuD@yqE!DKga!3}dS1HGV}|>FF>N zM~ApTc#x#%l5AmV2X{#)85>uF*<^rpfzirPz-)-u%gSEJe8_o#6%4Va{E`fbDFZ|_ zGcHZ=KfeG2?BVk3nBAFA&Opq3iw_WC>GzW!<2hZ5Lrf<7Sb!leHBPX`u_*9PZbr@y?hq$7ZF3U(%V)TjPYeC_XiK?} z8(!Mrwq0{XGZ2`(u5?g*gWIb{)!dqUK+eTk0MU$!J3@NS;nI1~VB?PEssZlkFDGR@ z;M)J`e2=JrR+U2{9okkU+3czV6$-{(ZPKb7Uf|rV?-(Hwne{uu1?u;A$p-2WzRhhE zl6Xv!j-uR{#CnR+5u+kMoeUd~C$v}D>MI0lgVyHK^iJ!FuCrWYq#>jLB(~wsynX`CA_Xe zG@5Lqn1V}d%Q_kOC^rEWJcKMgO;nh0r0$Z7Mrli8n0DY}Reu*xz7dc0i*QeDUQ9+7 zMpT;tB(0Wv_7h=l{Z`z-HUi@R098x9kI1$98K|bFXkYn9Xhr=rRq2)bHs5~=w)^Hf zBJY{ke=X?AdlOb6Feq$WtxKspIr6+OB&LO}`%46I>;dT}*pRs{pBSk43B=U!B~a@s z9(3(0IMKSHWUg_!q5j44K>Vqu94@#DxR#$^rghmWE~&>Ud|BCVW8d6rFK`bi;Or?e@haoY_A{m@0aF8 zSi_gw=AB@tYbBTKIiyt*FO(1z%S<=3iJGPq?}TJ5{86OC(6}Aj-LUrue&;Pj{32^W zK_`$?NWx`iF^rhVgizvokg7mrDX(p$cX z``w~ds_#at8Wv;qKCC?=wr>%Plw?RIf0sQpyNs@%uOwbf9<2^E+ zAQxg%V}KKbPWC(}a$l0|wKwlW`siLNX%YD5<^_Qe^-S?FMeUY)yZ)&aMJZ$TL;BNB zdQqh-n~H#h|J;z=GhEBYy%@Nhs(&r|55|#Umk%0Jy3B_SioPZEN;1LFO^1REkfPok zG2+SIY+{B^V#?8Ao~C)=O{~<9I=EA(_QZH~I0h$CgNj)aT`wp4c#(IPeH_Tvk7;KN zlOaJf1)u~C2a1K|giap{vYG8o2xC$L4dE~xTGSxLy|6-f9q%t7$>}eJZ-_fBwZjvs zJF-uqWP*SQ6x=wN;`VLN_)>D8r7Lebm;?}67Lc#y_4c#YY~zNBOloZ*Chm5 z0r2KhfLI)qKC~(SQ>SeN7*JMuK<;&%SQSHq^0`iM z#1^Y~ZWF6bBVP~VdAC{_+(&)fsy+0^@eR6@8sV+63$c?*Vvuf~rDOI$oO_mD4*^NQ zz|IhbQ5ZUW1(JbX<9`WH4%axlTfwuY>p8xm0$d8rQibOYM4PmqyL?f-dbsMSpLLvl zeDP?XmA4ae!25&j3A|Yx%RU}-r$ibMJ#&=K3q2;HOUBnTX2bWm#E#KhMYAMNd7zM* zSHfQy;ngZaE140XCcSxPPn=xJE$LTzNUM0g`LfgR)?S(LD73nEq5J)M;;txR<(q*m zF%QX73kW@cDbX_LKuZ7w5D z&R2W5hE9xImoi9}e{#`L)%pNd4d2_oE(&Y0K0jZt(>)Q{ckCqed%3Ioo>WF^yhug@ z%y(=9%vXrd$;Ib{Z|U4t@j3kvpI*7Myzfi;clDp{81-lBuhieDFRHJof8qH6mjO@G zlH9fPsJ-(bs*c{F@6t~~AnaL$qF+oP`c?YB={M^Cw+TbPpCI(_=-;CX(O;o$@ecsd ze{F#0$gF^#mzgWf1I)E#v^|_!q_>+Vn|sJ>d!Bijc?EfGuQi`Be~MR%RTI>M(?C|w z<3mXlV$Bs$%DT!w$w&hY$l5K)puw6F;*_fK;JXI3;9PQD0AEcd4xA3M=(7h9Le}%` zdM!Ay0=vitR(IBJVXrlCOJcZNUlqHsv_m>;7I+qSAO;JKa znG)t)3(n$D&bH)uTO_$;HsxflJ2rBvwN3d~_7Nz|u^>@8FH<6WjqxZ-Pec--nQ(Zf z&3?ypjPc=JllQ!-X#&V5P>(Zl2;BfN^VO2@vkl~}_#@0n?lgX#7LOU`4f{$06(^-% z(hIuDYu6TO-8FOGSOT z3Ywy2@{2wHEkj3?w$aum1PJ5IkmW$tdnAmsu6q5##i!6h=@Wa`m^W}gWk`NMTDH;I@F}l$9R_+w{5!_6|22@%hu>Zl7b{XXe5>zu;Rl#vs<84wju-T_Lz$o_74_8*(H`Mb(Q9u??no4 z2OmT&vX^VtiyA3>#(?MTEdagE)pP*|0@?qFguMh9FpQPAd2G81CaCjTB|ffFeIQe_ z&3j;%;wH=MFtOWy*kcH3YF-Ex{bh; zfpEp8{1iFcQqcp=&D^R-73C2ix}InIWE|im*+ZH=vbiPH51QWQUi@Y=x_lbli~s7z zaW65?D@wnJVy-kf>n-0v&O=h1PcuR(8fPu=a@81DDG_RK@m-cWe4pdKoaE3aERdj#pS zy;iyZN&9v*3%e)$8FlZy_5d{(iGc!I#I^*?V=;=l>It9HwwgY-@(vQT)Im^#8HFjJ zJ5qUr5FfE+#X1eR<{3cBXh1F0p4X~+sadQ^Ue8N0J?W*&#le{ zXiYb{5LHmg7oW1uH$d0mdB?+w%NPxZ!I0PncP_*Tt^k8? zBe&+^MeR#{mBo4)LeYyxlj)QqBkFzRFg=?7P-1m(6%%00OwS2O;Q8iBNrEI6Dq_Is z^zb~~pEWlmodS}g(**M0o zFa_FsCn251GYN1&X0lgcD-7rBP59D_B z-|zfF!vx)Km*DVr`#+LjBvAeTznxO0kNx+pQj}EocJ$|;@Skn{yUxFFl|rK1mj7Yr zW&fdNDOI{{zUSbtmj!T zvR-Qau=RH9r>yr_KW9E48d7op2p1$ zazBz+K<71}h95yu{Nt}Heol}ypbcP$vk|l?2nurm4<7KES9oc`@RFA!EJywT#E#`O zb<>&9Uf?N#`GT_~V9vkB(hxkzIM_k#9=ZjL z6DF-Vc4d&9l0niB_80Um2LUiSjSPxjBLFPFIjLZGj*=f&9Fi5WcMeW~yg*SlGg{8h zl+dgoNAc~-3v3KdDFy=Q7GX5Z6akyHG}W|5r)Yw4Cx*$}y4Z!&DsUGd-e|!wnE+zJ zybUy`-xfz&)64UMm&_l(zn>BTJo}^6i%Ktv ztqJgkirW?SCP1edesn88#5LX)4CEXlHk7#gP+uWMmhRf%hwD{~6yI%%X=JDnh;o~~ zTR%2coj%YW50;Hm8Hl+ot)hc8f$0maix~aV3(1la&HWaY!%Af4OoC?)F*%essAWM` z79K_dm1ONMdjLEH1&CY5P|<>@g`;VYybceN1zyE$51lY%9`<%{eHcw(9V^RE%qV`Q@j8yiQi6Tg)WEX3{1}Qi}eT77@1ZtNSGevsq&g! zC*2w?!Q@E_)h>cZ8j+&yVo*?3N|C#X1VNh@`;6L4@(^dW*kAfRa8h;o#ss8P>V?^EV&DW!b~BwY?{WAhoB)@!8)$ zLCk@&eqHs0B$LBsX-R>XTRr>kj_SUET64C2g_pZCb!3H12PWI*kC-VqUqkf?s=GZ1 z?t&fQWx=ool9PE)Q2r_e)auP6NMU?E_;JyR{LLw)E?tOwpMrUt7ZSH38PIO^%uhnJ z`zi^H3rF1|`pZ_uPAY}kXd>#2q7g~Swmys+eD>7SjGzQd9v4~tmKf`RcKo85iV2C} z3?Lllca6H;#(1bP&tt5@?*#|r^|dMgc+*Tx{xL6mXcntGz4itQ0YQsWeOPu1oHVSJAhJu^_@Rg{n`ud@f6d##YtGS}zz zEATE`l$2F>;!df&H`Z_3F&Dp1Fk!y$Y@ZdC!#@k2Np*(tOA4<`gVuJ*lHmq$awhZ%VJ15 zBF2Zy+fr+{SEPu#!2Cz7&53(^Dmkw}A*1Y|2?E*4EJh?+1$7koV*(nB6_16r=dPVr zgh}T0c+9L`fgy<*Sv%9x@hi#BYr*F#+@$KP%|7P;0;On59y)%!h`QJo0U-sHhYs>! z(h;@2I4>4FOCje>^aTFUJoWny37}A+cw%+LH3{pzWz|@89m>Zhlm~6$f@)(d5OAqc zuF*J(kjNhlNFv3Lk;a$;=wLYG2`rl~Bw}xoc?(vAiBm}iBPxRde3;CFlml}eUmTJK zlma9T7q<;LkZs60qbPAF5VR2k6t52Vg%nGLEGG0*CkP{Ijl@zU_Ak5@qUVb~YKJ^b zmEEaoyVoILQaPxXt3s*@JjQPYhiG!56_f>BI4ak~GvoC7hc%I7r>YnO(JOQ)p+xEB z&`bPQmYz`FI8bd-Nb0p=ZxLC!pS^4;Z|IHrrq0cL)EmH|F-sp>_>`0LAfJ0!a2H`3 zBjrtbWgc535P%5z(i8gQ)) zMBYNw6K$Rh{cfoH#5h}}MTD)V`oEJP>c=I4Zk0vUldSoQJ83;oq$*ZCjHt!fj|V&{ z7@;kq>cWA;vK_NTP*1i?qG383InMihtW^wlw2R!LLWeLjF>~GKv3DeVB%(TTQryqe z`(x;6^P&amxi50>W-oL41e~C@Q<|a6^Mz*$%VkJCYQj)u9}Zm{rjoCX7JU~Xbyizy zQ<Ot9#A+e!4iT`FlI{GXBWoPG_9UG;L59^OnneQDCkAFq|y85X4y>nvde@gJ^ z@70&oKdY~@R!R6M(sdI;k^qv3qF;`Ec_SH(w@{?(+w`6KyYx%2HD8B3`r8R1y_ew8 zC*UuAPX8@-B|~Ch)sYR;H`mj0J`R{AY`m1_Bjo7gwnw=(n!-5Xih993?E?RDKVECCq7`Cod}RL zcvx^V|M36AU>`--YsNC>yFUPL2{I7Y3- zSxM#xa!%@jeJ^!bZFwY;t__uf60HhgHqP<0;Wcg%ur4)DE2OXqT6ppE??6~NJ zcS=MD(3s6IZ!AiYQSu!kwx^s`Y#s&`$f5J-W>q0omAn3&M;s=IgGwKdd0JKzVqREZ z(tQpZN1)uAB6QH6MsAVZP*OF%O|3VE-}3XAEI!=WtmujHA#RZmMv>fhYgIaz46^KL z=v0SzPkD@k2aXeH?=~R<5HtDh>RIA4ACg=K83Y9kobDD*SnqGGQQvjkjZ|s2;qU%9 zx%r#7Vog1Yb?hmsm%ke}^yaq-jJfKydWe&?4(4b7#PL2x=3#Up4o{;_G9cs6kwGw< zx5A^o5#goHo7>21YebJ*d}Yx$Gf&}Sy|N^ADJJaqY+=sgA8CTmocIW3%^;zzmEJs;V48Xk*L*jM1IpY8*M*`iq1n>~YkmM>>aeY_ zU0>O5k$+mji*SC!vj2&g20R^5a_EHDQG2XBq=2*CC0~8>Wfe{6r%s1bMq~hGtQ#)T zAQw44=Oq%X!Jhe>hnC(1>)Ve#<0y?yJJN1t2g&R zG93ivFlueRLJk>CFGz!jNDN^t87f{k&5>x zDz7IN+@xAfP8Pii0WyX53wkp{CJCtwIO?Fs;c{e;o{a_tc1*i`+Nh&Y&av(xK0$cI zx|lc#nSI!rfKA1d0U-$LV7pWsCU=br*X=&pzr-XgYXL6}IgQNQ?M2pvl7{zFU!G^q zQX@0328k=RCJ}DK?U5n9@5L*o3VnTaMF8{SxmZ!j{o%Al<#aSW+z>rz?kob;2#N_NJ#0(O$#9(s~6bdsk~`N^Jy69wbt>NR!N&I+r4+$@g>yTQS8q zWXM`+1q48l&bGWls|`-uK1Nc0c&XUy2_nG@!GBgCZ} zh-p01+}d#G?=nv@&o(bMA27dae%<`0`Can|=F{d+%;(JK(a`t`DjFin9Z~MBB)YM* z4y-fQHP(ZyhgdgR54Uc!zRh}^^+fA#>#5dv6V-Ty^(v@Ozz0E{r<6F%S>X8voUHhB zjz!HI)V10OS(Cek5O<_aKfdUOn$ZDtZDI<0elX-sx!3LCI4?;B`^i(51t8oVZZ zA*8Kw-MhjoZ$Pg6l~h4F6r#B7B2AvlgWy9UnMuF+$8pSu%&Rmn4e>D>q+#hF@Ax4@ zp&6ZAH<`?*XHDE zS6z2~R<6$e2>dF6#4OT{QdSFT*aZGambuW5*$P42v@cHL){DDgj_wDVz$pS8@Lr&} z!dO?<7~YR6$wDKCjZ}brlzI2-F1`+=y;L_OG~uwG<9n*Ca#kP}#$!AWQ?D0!d3)w2 z9o!wEU4yl9QXg=GEc{j!jUrgUiHjHm4xu&D%96>Kr4y81<6KopF~DBG)ZJ@ms&Y^jdUHmizZ==s(HSL&MO*F)Iw?>kn?EolKObiwkW&| zrcursw%P*j5XjPyzTw1r0nWqPoUOxLV3@DTVTBf){5a~k_3twW} zKl?X=Qn>DDsJ#Upx1uFti~3Ds@{xY$RUaaAf$GL^=r->VMU7i=>P4>E+ygXKZ^YNV z`Ed|GR@J9Klz8e962yZiWOA%W!c8G1B735XCyB2}v!KebM`DHcT-%Avj?HZ5;?#VK*#5fUt0uOA2V4&7V?k=##!%ME^Wc!_Av4 zNaj}o{r$~f@v4g(n>&e^TpO7jr#I1KbVZP-`w~(JF&7DXpr1w=vsC&NN8($MQfQR= z>e!?m!V1GVI>Wxkjck)GY2EA&V3Uzx8$FXgq#uBNMWErL((NJ;qJK$cI&$_Pksz*yIOA_Q(K#(&+*dI7FQa3Q9jr=Ep@RXo3I zr)54S)`x~3A}_gezX81ZbKAYVI||)--c?7&`vw_D&{>|MC6U+Ri`et06o2N3)4|3fovwHTHa4q>O2+^Pbvd=~B4G~ND-Wd63_sL*yh^1Jt~!&y~wVr(NvDJw@@N4)w;!H_4rq z66pmy;;TGq9n_=(42WFS&dXK%6#8~^NkrwFrQGu<#EG>m>D0b6=UQrOk?jpTF2tu+ z*f0H5^bD=lDD}&%zo?6a6vW{hD7ny6vK{!k4I{fIggGYbh&uyQ;?k+TX8Dc@>;-C7 zA5krfS_v?0$KR!P-3@}C3mN)qVR z33Z-5QWp=PU^)R2QkTRGzN&iEM}S1i4a=odQ)`5QU?$mU=;ed?L1f`fz7e^X0nCEV% zR{gY1_Bu+D1ft@)w1^O^>GXbyTOl$YdFOGPB_x}mpQK!e2y%g^PHc7}<2_apF5Ux- zzqE$j8YJT#P`1&xPfD26EXI5Kcy$iCuMTv^k=S|!LehRSK> zy@F-JILq29DSV}_RRkCsQ>>xBJ^dW@?MqF7VY^+ZZ`w(KAV8Vi_Q0u%W|)Iz4=k|b_q>jRRAaji~-67 z)(TP++&PE01jYvw3+w~ju_6glI}{WLCrVqmPm%6OCcRq311m@sf42?B&3GogG{t=#l(=}+)YQDKGkro#PV!d zU$PkwIo+Wr4XzXvDqZI-y^~JS0R3rxK%h{F*dd{)5{`E)DRH<90A)BFCwn(TbdM0N z!_c4^4sc~Sr=>Dea}Kd2_&KcrwSwxUZ4LzY%E>W&cq7BZI&hDcykKv-f>}bh1aNao zvDliur0an9hHpkoQY4Arl(d$|;_!ekg62fi1m&bgWmbf&o<`52RQ&h%oRW597+@iEga2f@qYbo}B3(kiFsg6r7KtGHH?#k=kx@GCp_!=VX_%d7m^-C9a`26b=l z&mGS_%sYvhlHxm0A+F$$!h`nqc9*5ilnL^yxJ!dz&t7)Xi9L-IoVs+@enK5=kWL@D z@{D%zRfdU0&5X5ukn9I=q``Hp4iuGSamZX}42ycvO2(4}ed!z*yq)MC+Jjv}2zar( zqy3zE-)|r{*{<-A4}5fShvZwj9nOG(=Q@BuhwNi)q{$w{{H$}Q)o#y|JBteoa&gJe zaMM0zG(5kbvYgyo<~O_c<}q+J2F{FeeI`f9tu@B)4uJ_Zz?=y?d$#JqH3}bHd0q7k zva9{gzoY}S(8lSMw48z0wt8Mod22uxWGVf9fb7jLQb;Fav1mmZ+Ue?lEBEXd%fU^g zP2S|${v|P*Usr|U=CS#1-EA+r;=UEfErcCv(kO`l6=XSMPF#abIq{k#Q!fmHhdNcT zc}9U4T;P)jNzlj5S*eST{Wg-;p@aMG9jI$etoygzR%ks%q!IHgSyF5B?4a#lXGPzE zf}{6%7-trxZS6hMnGv7%osxQ0L>Qv>UyfMumg)g&;{Fe<_vn_yJ=AmlfI=qp5R8e% z$p6_g8BNjfgDC@(-iso8MmoJBF(>wtP9S#a(mYFn<5c?Siky>Yql(EITUW5g401aN zMn1eSgN_YqC|W}@NZqHZx8Q6(fb&NARE%w%wkCrD8VWS(e9A%&_~OCtds(e3p#~Z2 zPVDgyipBBWlD=HyU!T}tCOs+z2;2@d{|vrD^AA&f;w#M6&D=xkxgE1PPPq6a5mToG zC1r~s!wGa=)Ez>La^1HPuu?C^2@97bdMxCW^9i4Ut_>`s=eS)b5G%q0SXclS=Asr{nFJ)}EUrlR-&rBvrc!WyEYLDLF~6g1<43 zf_ZYpg_{C9dUG&~KfRm;mzKT(i2~Q!M=mEPx)P40MkCUm&>n*DCTDNa8$qYJ%DQY_ zhxyHU)l+zxhv3=pzzpqdZ9988QRvVe5;Q>X|Dcs&U=tpslqC5yF!QiDdtT?rPBW)R zN>jIYDEB-TUq@G@PfRKBWKXem`y~^B%Ynol=$8Z;i8%6YgO!QxWC0LSr^}-J!mBGv zN5U;!IL`E@NmMGl;`u&)c4!^@*i8Bo8!c03om%^LhIZgZ^Yzs3BUrBHSWZEIrY_qj z*x4bBiZCZPe(!-(oFl2T3lXs!?j?1xN5vEvMaT&{*YE4eN^A=fUuGSR%REw(NxvYY z1kDaKT>G7>dNaxo83VP^AtgeK{7o`~b_wsKJTLZo4(Zdc#wEesWiQ?Jq=E)8$dmJ&YYMK!s=9!>Hk6Ch22=Qrb%sG?|gN-Ci4W#623?xmoZn z2#4;3I=|KgUkpBwJ3SaTgcKsnrQ%hv&~u*t?1{Bn_`2^_aX^d%lIIj#`@)$hlxwsj z1`%b7V5<@?LWP_TAh2kg3@;8A5t6vjNE7cGq)Z9nkyYk;=RvlKx)X#OiQwWDAV@JK z>P0lLAY&1ED@#vDXU0_EDlzOxih>)ASzg!rG(jNzVm%%;$b9NOwL+N)8Cut-R4%bE zr*oy_?3~^)_x%g8h~M4$+nvAP`Ny4q<~c*uoX7E8tq^qJd=~ zP>3~~00f`{ZuqevD-aouTwz;-7LKHL`rU^ z0!K>wuIwPx1v0Df8jBa7o`{^w@exeB2H!~nGOY-Fpa&ocoY@fh#lsF%;WL^Mn8E0P zB_J%}W4O4t1!)}Hrz^G`Gd#T8KqG-e(lhz%O7DUBWDE=HYN8~dBR&@OYC1OO9pI2N zaI`eyO3hDBgX>ywA}~iF6H|;^T8Jq02UtYRhm*+BavFxg@i>n8Er3tvpO=zjPRrN^ zxQEf`6G+ECIG`n1BNIjrHAgUR&dU!Ub6JG0PdtIsNRM1Tkm2Epm)BfLX+ydy09L5` z(g#k;Rc99ri!JGd6U+XU%z?}tqmkwW%{4o&4f}pIA0e(>c*vAdME5fL%1%9S+BJ2s z#Hw_wlG@hfm?2&tkDRd$qA77WV@pmwU=G|l96N0)N@eAeY`%4C<|QX}`!R)gHB9yg zPc$lE)QwB~EG%I?BoDENT>u9#qj=SAX!(2O%*H{~&jv*D)x~YSXj23bs-|t? zY2M8d*R><7w(3sixASQ$M_$zL_q?=(jaH@?`F@+SV#T`k#sVH>zIZfIVD&i54mVF& zs`=^GDA$7wpR2FlU53@>J$O!_*{ctv|#_I4kaEhWij4d2J@0sva#B{ zXTFvq&9F*BZ|MRE@g-<0W?8cA6D?a0bc=jH$u9sMA|&RaCOm}y_imm?Z+ER5<``11bJajrsk!y4|}%i&_&2eozd zV#uQyKk2kTURY@GSYFTS_SFE->O&Xi6nydWw0{+Ke7rsqIde3Wx^Ab;7GdEp;#>SS zg*)fw2T(6&IUndbmBgviIj(`56#JnPxb<+D?8wp~KqPE=8^qZjcrmQ}vEB9`NIACm~IoD@8R94~?av--fGCu_M+bt_}Y`0WnAJbHs{f zw!hcK^^LC)&#}P+hq5nNHAvGG**`csGldsP4ep8wdc^i{N&z=ti%A44;Bu(V%AQVj zxKI#v)(Tm?k(v%hlqw$~qF$zB3(X%0J5{BQAyA-&2-lczGdh6%0Bi$)pJd>`?+(v9 z9D)us1zu@cJ@4xOg^qhm`Sy1)|_z<3n>VZ1>26 zh7sL|jgySkw^Z#tZvgS6rT}}}T6hCh_hxe{KE?ZLAvOnD^R*^TU?i)$wer!Nkv{1i za4GJlW_@kkQxII6%*=N-?xyW_aZky1GB6(|&Z+HIaZYWwe*O{v+19^vcBmXTr7ZYQ z=s(`^(DA#L>Tma`?`+&tucJWtn^~jZ)d={?8vVQKZ~Bdb3Q+c6pufQd|rYP8Abg_LC#{To!h8(@v4p zDB=5B&dVA9O&Pd}`?42{N%KG61y-|0)P((nA;A*MI&^fJbT*Ec1(*Iby`(kyyy=~6 zSvM=8Ko42zKoBx2decA=kb$gKq5}hNXgYf=Ep1zc4lA92g|8f)RTTXEr)jMuHt?aXHQ6d_v(OZW0lG+%6-|{)Ls$kM|-w2S`$(>L9a7q zopC8KO+jF%6FOAm&;{xvYvc@ek>O&EG+6?@(pyi~`f87$%iRMlaeqId+*uvQ`*^XC zcOmj&l4LJlQ#bm8VB#YTOIX-z^{f#YauRT+NK$0=kehX<-Z;zJ6*+TbZ|dx-U6_8m z=(a_afzaa~){h%UU6d0pcELi#uYzSM6+IkW8vRd&*kkKGcR+p;`E7VuT6MBZ*5A4` z)yt&%coKsEAIlo#46P}-Z)kD__U7xT%g?5og3OZK7k~4; z)J?@Y4dLSPAG`wGFjP8GmqfmWD1m(>C7`;OIL1BQvcqqKnM_SrWK>>FUDwM9h!Kcp zb=6Zj2Wxi#JJ6PCJ#>QT9#%Z+c#~#HY84@1+e&v^gk<7^IxSTo)P!pr)B<1Y7 z(w{z870)J4`(Wi+cT$V}Zxh@$fXfAUvM`SeC& zMp7+qp2N-+4n?kmsgJ(#`VuZV5L9>+ZjuhHjN*B??NFKJmLx5&)kU#KB0>(rzuAXD zDtC=L6iRwHY$ZJ%F zdO-*5hqzGtfCxYNs!C1Ev4dt#Yu1tPL6YoJgIE%4hQr;iAHb8~7VifM?_p7pD>}?O z!&?0+J$ro*3WM|4rsEJt4Y`N7+7GriZ&%Opyb{L%A=1rjoYzw`V&TTlhip;{DL77{ z);`*t)!F-|SkamYzi<7jMsyGdiP?N%N@d>h|H75>iGnW(Wk1jUQAI`*rVbgv+=g}- zj>DOyX}17nPcq)T{4u%_|;N z@Q;C`@U2OX2Cv##&$qAObQI?X1Yg(^*+TS3Qj#svmaNF3i!}8c;d?w?9?652zw7UM zqt~cuG+I@IzSJ#3Dv`Sj!(=>-u9y?>w(ymvv=1S5p$`ri_1R#ELSqF9qgbI3c(DL zH!7VXYAr&GfnMr>8)QjZ09mY*vq|^o^RZvW>5uWO0{7&N1#-dmkc0AE!0R$LfHRAQYj;+~m^sq~>#js~g1r z-RBVd>l(zq-7cbsvYo1Wjp*Ta>#v>L>gq4-{5qdrxRc>md!XK>?8duxetPGZcRslD z(VgGJ$M%(-f7$s4wZ6G0xb+rl5A6O>^(`oH-=&_Uo~B-akL_Od2KE1_A8mrnztq%j z{xBH+lX%+xT78WhQnKEbL)omtGrUox!u7x4kvo&0!c&sLBjbF$OWnmyp;< z&~e8>5w;VjYEvzv)xRS?g*O|WD@0;h+{eXkiQRt^F8|`w6E!&>r&aXa*g;F7Rm>yz z{xJQ{;3()4CIJncLMiuJo;akO!lbd>9KqCZrddm!+^+A}L!KhK49T^bwTRt6G;PR_ zoG5Rb$jo>E{$%I`*MXek>+FhbTsm+=oANtyw31Yg) z3%GiJnMPlz$yc5X?HZCMr6ZgWy}9<}H;MvxO8btuEZ4Ic8nwElR@5<#(ucW1OiPaN_rXr7tMcfNJT!jwu)p@z!E~%W6;%Y*DI(F=l zrlbbGpDtuGn^f_x7YUqBdI$(W(QrwyT4<+g@_f;Q1|ZC{qp?Bn4vB&RXp{F&?L5_arwb5c7bp_T9l_$d5#| z&@)_kr!xrq;enkeXNF>U;PAZNtj$B_65mR{hPb-#G8zw_4xa`hSoA zv#nqCzqyravfJ~4tFGPIIilT_ew@x(Bfq|LA1g9Ipjjgi)oJQgT&5nxTKRY?RJ=fa z55BHf;M@8b+2Nl>Sop8i--)a+J}#z;SX4}$TKJMn(%B_9{4wZ`Jzak%l`P(Zf9oAW zpJILD;mXsV&<;@~9;*D4XDSbSUh!b&(JW8mW?|uR%|lw2PM*bUcEFcK5K8{>yyu54 z@T5$AbjFM=StmGL{*gt%W1dxt$2%*i#G-246l~^U&7wqW{K($N5(wfiZyJh{M5M-i zHSh-Xp+ty~!sAv279ml6dvN6994 zP3Ps5EF{f}C>v$fWZmFbv(VxoV%V~i>@Ec=#M5*Lt3awiaVp_R$;X_O-cX;m@%pfB zjh9M#Crg?1h|aR|LcrJ3o}7kH8ixvV%c9FE0Ttq2IzG+0B`ZW4mL{b6C9OBrvRqmA zIG0qhrIvyW5?L*_QN@?sWIn@d#+vKWy=FkT*aS6@5YE8q5018De$!d}RJ`ZBvL97fi1wwM$X;}e#0im{T=A(y3@16pl*Deau5lMM4TA2D(c2Z3f#o|LmgU~bGU{6?>pzW-wCI?!XoJB~ zNMS3F1`;b&hCm{Cyp8EHih#~MSSZT`tC_M<)IE2LB~=`Gz}jQbrymzvsF)z^C~yj=C$Sb{~TNc;Km3 zU{ME44JftPL$#{<5{GJagnF;YNm*#hZ!Yz+_u9@2g0LU72`KQ?%{$1I!cGYZS$U9u z_j&<38QAf@+q0kI`}GK|Oq6b^fJh0yiCH`>Pi`6wu7{8Hiiq^#N5wo^C)kqlkVq7H z)SWbo6VJH>FA&fJc>umpBd7y83n0p-{T9Kg*bLN#$kQ&M>2%0uxfm(@Ac!66OZ=u! z9dq@z7J?_6clAlcOVlq})@Ij|obne3OnG=CJeM%*)@r%5%O`kMR<_>3I+tO4<-$GC8uAa^`dy}Kc;3=XNujpwuc;uSueE5mu=-rc z`t-}IH-_ONDyY*)aY$>gu*bXPDPXuwPnIPjPHsj4c%5PNKhmDxzlfJ4DW^gkni02g zKmZfcP>j7so;SjsM7h}6yhN7-egBclXW67mPr&zf(z{Dq6ZsgK!yYA zq}Yx;fHgT0RF|BY5vUM(X5|42N;6Z#UH>HIomQmUV(GRAOJ_WS7ALD)j5)-u#VZ}` zDk_Yi_lmE{oF{IUA*m}+>k@=}hD(L2=@`|cyb~dFW8CByVNUf6J^~?R!9KE-Bj%@qV-;*(}FXI8=+54wIriNLeLu(RYEq+ zZF91{0}61?DZ)!B1{74!cTI0MgWT7m{*y1Lm0&LzEJy6DE}TIgIuFAcB=mQ<^16Mw z&PROvFps%2avTRS_X}tlR6tqTDwz|zjZe+=WD?5bk$Mg()<3n;l{JU^Zz zk2-bGIYH)f1Pf=*SAAG)(adPVrcx?}oPr!(2yrL6F+f7pY;O z^G9H{+lV%kr{$Chv0ffPwioPWohXPps09S*XE~LGz_wt4qFU#m#eF+({SVN>|0V?3 zxp-&i1|(oUXMT>T+9T9=sJp4=^4;piEcM@~UQImse<-O(`9bv|^_vh+zNo&ezOL>Q z2Nr7BQcK|e`oa2o7}s||Ho3b=!+j|=1m1wu=$rMAl7jnFB;meS|2FLFk3$+N4 zbqi(dAJ+u9gk${zSk^ByuQ9JPZ={s{Tg`trKV#lYcYgZWz}OTW>s>D z!_bPHP0UNS(E#XyZJeKXhZwQVA*_M)njdZ=)pAiuiu!o|@ zD(poBu|u%~Q4|CeN(BoA!DOd?W1WlW|KIaHkI!T7&ADflOt9o!K95hqK4P~F|q01un6s>;mr`SK}BJ#aT7 zhC~C0;;L~CGbwGz2f?Q;FJw?cYP4Z&Otk#uSIPUyF=kIbRotO&oJ^45)fqUE369GU z`IO}Y7J^j3?(#4)0n&*Ko{2x=e>i+()+ij{Cx_)iK1V)pX^$S6G~ol4T5u!@p1>|s zvB-SEnv0+@MQ|PzXVeq1?U|QOc$l1WiAX>VXlDWtq8`Yyd*$F9yDO}bOIagg zB&0uB773B;_sr-3UMrsfsYlWZba#$~dPshZf%G zu-dqn!>p}mET96;!6_o73Bnm27@btbMNqKAp-}`G!O+&0013R<<#JLWWi&q2>?eiy z|6r64RcJ#SkK3j}Ct~pCKpFLxKn~KfSc@Yt(>WP zv{2K4sGxu+ba#Jd{G)|Dc&xZC_FnnKUAS=3i7G#`c+Mv`|_risNnM2?C0ZESi%B+<-!6vSU zNd-kIfnYq7c~tT#2jS0WKKzHfPx8P#Yz6V35quGc$_ebYa#2_a{weaR-H+qS+C5Ku zaI|>4zu^@fz*WbL0~iNwMCv81ZlN@ohc8U($C@!Lt9V7vzw_Iv(^AMwyw?-o;81?w0{%Gv9_aV2yW;P^B43vO zwg4tO`h-Ag4Xe>_RsqQL&qa>CdlcDD^&;FB!PKLP4nGMD=&vi1t9$lv_m^O`Z-K{V?kVTbn{|{9}Pb+s341A+C&OWd$q;2z4yS zNj{F8)Gv`p=VK)cPHvk`4rR0!d!@*L+F$lu8O6%)QhAbDDL%TX7i~SuP2b)+ew&~q zuSwU%e%ZH2TSgR>SNGS8(RtHz9!+-4sw<6HSu_~;P^*7HYOKc%AjQR!=N0%Ot7#nc zEXv4XD5{}ct=@q)tAS3b5g+zbtC<)1W=lS{WSx@8-J43ZrTRWeK+74UY9-q3wy~fx zl<=egq{#NMZ?Zfv;;04$_h(h@3PvE)S?VRYxhcsowCppfQL*|Xe@59d+cSb>aM$2= z3U_bJ?!wIal$*00`~I?NGU1M;lF*@!l#c=!x&<}U27ehM0_g0@!q5Vp*Io}^f+#|Om#op6%2D=J z5Ie$CRPnsQ<;4b?FTs%a(U<32oT@5zr{F~^g5%`v$n;aFKn9!dt;l$Fu67sm`>x}d zpSlPCUb%O0*Jlyn`rW;c?tN_UD|>gUJsw1=YKbo{h{2s#SCR0)PCX7>_;Yd2U&Mnb zF8TYrV#q&Jf63!Wt`Y@_ncfh6yINlly6h493HllOTlBZ-Ago&+2#UU(~;f zqUzt>W{$*# zm8sxuIadZF*|p<%n)F2D5~m{S$K6ZE{4YP5%gzBM62|B_Bu*)JObhs?{2)>&ZFW=2 zrINy;Bv7uUpCkTK%Lw{Q{4xQH$+;_OTSmp`x=y%FuIw7-vshfntBJoz`$zo6ZIoKT zZu=tRlc*b`xbOr>=XA$_7!MwF*DAa)$gpuhCh{Dkr*nQI?#E`KdvU}u;mP5w?wamY zeh56QyR+jlO8*-slqY~DWF#_Dx~C^;Rq9b`h+&I+${TVuBa%H)_eUNuCQRmn%Xv#O zl=!_oXYvU$Pq_VZvju0c$vGv|9>6q6K}om*g`iFxh_w;`PqKiUPzs`;AYb+4b`_LP z?n13=RM-Q2K<(9NHWna?Z(3v6O2{bC7Ka#kTl!%gkI@hr*>RE$s$zLk4PiHC*#eBq zzm+L9XP|Uhn(2+DxQe+cwI)ZfMyaRuH9Vw1Qs~^88as#r z*~Z)N}Kop|lDjM0<0H?HCR`w{$o?JVpa{WvrwjUHl&7J=UQVVDAt+?qn%4EA= zFb2~b{3vF+4viM{PlAGPkS0}##PG|~0Tv9@n{Aa;^qW6oe0?nppA4c^gUgK*R++BX zdbuQvnj<0WJB?2)m}pno%=&g~uF>TlqVTbl?Q%n^CjBg_o>W|+XKhYtnGO*o3f%mx>P+PZ?N(+#NAz^gIg zTF4@o2>Jsp|A(Bw^!kwEMPr0z_$ICz<5V*@?q;^(d2Pu*CF%y(9jY zAP&_y_#1`}U7ioBz90u3S|fDn`vssz?bqINK~1Rd^HY;ZLo+G99og|G(tjYW2I05TFEF%KMBuXY`I_tdu=_hL%TR(tyIDH%COdyntJg8kU~fj z$pJsZ$78O|@k}zkxGBShv1E@7H!2=QG;9sCb{p%y1D^!!ptr#FV!Ht(zOJlv+r!uF zDT?_5eO2TGULqafgeM7|*O@^$9AT{?^2Zha7KLskr~#VW=EHDZnx!*nDOq;MbvYfE z?HJKvzIe6pQX^Ji6L~V*Y}y+ts4-8HbZ7So+nz=3MW1&(N(=8vc;9iB<7sYtLlHn@ z^E;C#8lFmXP}t!~wBXjvx~CFj6V78cK?(A+$m2pa6Hx6zc7q&AZ%Pi?NA1j>_Img< z?6_UOG5c9ME2uejbq{PCWGognwd%KcvWDi~dT#`h=b?IlH}qF~f4%p=_dd7x1^Tw} zv0y*v76$4D^^(7oHxLmp* zA|^+S1}5RWw-Nh`(GXjT)i@3Z5#g7>npmz4(Kjr)m>7&q_XcJMXNRNY8nMh=cZ7)& zqzJ~V;fGKgI})zL;PVszf>XE@+zss#vNZ68663H7swD*67IZGxfoKX|em2 zmogI)j}zbwKV)pQM0|;B$lY=g)o%<(+y(LD7#%mhBID>ti$_O-t3mXh*e%27FMdZ? zr6x{@fV?+cBgF|a&%ELs>H#*3Yn;|NaKtLJ_=`IZZDk$BHL-&{hv&5qYglW=HRU;R z1j#CBzZxD-*MaING1uj`>g`v^5_%_xg+uXvjmU+Hc0XHN>4IzzaSvdJu6q-CLr7`Rl7_a; z_!GqWQg-?3tybSK&ZRb6s=$9UyRs>y0<2el6;kZFwn}Q8)=;amT(S}bz$GI)nIYv( z7KRGlS>QYw@~a<$bn9J!7n9%cJTMRn4NkHa*mI&<-%H?S?#y85((h-F1F!?F0i-_^ zFh^}SP%(l0VW+O^`s8Fn0o`P>`-JWz&Z5;D2rN-FGgeO*!UcRG{XV{(BavJm&#v#c zDzAX~_(q>0aTvClJSZ9-$#*LYgd{+x_%g5;u&J zVmnvc((G@Wvhczgz;PBBAT-d!!FU{o4JKtWVLe2b1va1SMO`Dur zDsN6jTj}l>t28CfvnIYkpn9H|FkbPiGr#DhD7gwG+E+~~UzivK zxj9!if(>Vfo}V$+I0$+J5C~PgOdSr4?LI{S7vZoO_C=@XbRC4o1c%Fxw^W|N1mI&fhOOPsslQ|g z-Pwk22mSKn9rT6N*75NfsVzBf>pKtk_D=4N@0#jcb+-5J4h#ARdmq{R%e_xtsJ#9P zL$RExJa$QJfrNdBLLXK(mUgyhEc+~OEX15J zVWY!ZhYbYEyOn@K zSd95|o(vfq#xsI_!RW|Y{0|~hz$oMyNP@^Bdk$m3K2*lU>MyH1D>nVI^gHZi8HbSY zEAC9J0al8;JTCWM2n+{90C0mou~e8eu9Y*{BFg$qkGvt*F+$GdUl}(k5nfVOEs}q% z`HRkwU_UW$1Rxjzs(eQn4526G6>UR!%Ws%uZjy$iS(&Ee-46*FGfRqonfq!6?|gbF)Ml=mncehqMQ45N7X)OBn*N z7!={8O@<)>0glQ2@(9oXY(D$|ugXpve}Lo+_eFq$@o_c-;4%*Ihfj(2WB`i?qod2d z1vM#xmtJfJkste%Y{)|kNFjsL7TS|pPF50W;#`LY zR^xOC(KM=18>)ePk8o}QuUi1MoB^9=F9v+;jy791JsRK zc*=keC&9<+hbkQFF=%s4Y0~!e-9g2~$-SwVem4|uyF1`QFSI)vKOm)o_nVY6v&XLq z^942tb2VyV`gCUj!m1?&WCRUs{C@S*%pWRF-xgV^iNo20@Fxz*3)~nNmuTz#821#G zK~+;@JPMq_=;XoH+}{Gr0R6X2sbYzNof`8v=o58U3u8*e-$>b%=Q#;6HghCb^jsM; zV+KYf2Aw%Vm28xmi(*UY*F%@vuonirvLQt-!l<5|8qM$tpq?eLO{ji)F!d*}R64|8 zmp!;?CWz2B)7%_|6}==MoEj5wMPv@!D9^*`+#Q2hx~weci?$IaJ&N~%(emu0{tD3% zAr*)?TLZR~G~K;-Tq0h}V-xiT%N}Y*!N8q_#bml4Gs_i(G#ebYYBY5#@JrZuHs?;A zSam|$BE#LF9wzNgO7wW01Q{(aAOcT{E|^VBdk952B>jXvhPJ(hGf@GmP3QGL3VhZy zo1Q9$9XG1k4B*JL)s@==#E_(vX%c!EyAhrrWmx1p7g;%(>kQ+Ldd~#bd9p2huI%Rk zQ>XqFY@pd*=XM0x45kFLrR=;HtZjQuaSI*{NR<(>`QES`~=U zqN;?QGX?aEbz}R`I>M^TgY#%4?Q-v>AYd7<2*OQ-9atG2 z1qUV&o|aD&L)~wBr-wbq{8vLPfYf7yd&i-GOpnd5AWV+U^FQys33GhyUVYc!Aq@1X zJqmab!=3^pyANd;H>ht=k6;`3+zwp&67}8c2h{5@#6NXmD<_zf-&3E!7=H%j$v+_i zrwMRhis^lseg)y|ck2JCe_sEx{{4>G?~??y|4x|w$X_BhVbsROhzvat#L2@Td4HVo zB;yw2R^u7QvyA5$&!epRrN-NhcTqr1M&7_wv1-fG4nMfX@-GA@gj+8)Sh5A*FYCUn z(O5^eb`lDe*BA-*E9VUi0hkhSmn`ZXl%!kGu^z1DQpX`byJ#miL7EWLfK8I?&tc)a zjTrB9o-~T-1h~L1tHK1yzhYMTSN1&%*}^g=`9o}3jEGg4q^17X8M4$BFh?7Kjf`Q;N8AazL(7wFOrMM8{(r~v_oyf#==SxqFMf&DnnLBy_ zsmrvT>te-%Iqhy3KMlq^rk^dV+z;1tsobf2;(P{O8!}^TVg+2phkyLyxGP$x9kK!3 zl=RAZz+WVmEf?^LfnI2o41u)P&2V=nl-|uTGMHEZeu)hA_&H((G7%(Tx*O>nnMURx z_zRDXG=je<{eV`X4d=qO92S5OXK(^FiE-BPfrqOa<-nq|m2a#)bSn zBY0>KAVfl?Gq&6kVwd6XQf837oSK+k9bGL{vAr;Y7>oHWI@t=TpA&q z>gBi{BOCwPqAqV}^ZK!d{(uhDOOezm`$MDbhp$c8eEL|PZve~lVv1Sduel>vuyOq2 z%uXK{MZ^9$3{7auO=M*sNJQaH;1iv`hbK@3Q#?wWRHVE6yo1rAdZ}v6;?vgRr^pyL zzZ;hj@w~<($?G(gbj zdP~YY>^bsHBEY9ye?rn&O@tn=3co=z+*jqhJtU&AF#vJy3sh)C9Tb7l9JR@(1$p0m zCTI&R^wXI!N#E7xo8OVf_0#}$OrQd>ValM?=_Ye`AL2G2VUvJxc0T|YvIc;e zUV}-ev^jbrQEcmeK_~%m^Ls~m{`E0@F%OSmlyrBALAgo+2_-bf0DuQA{#`p*$KE&| z3}S>odE9$NG=?Nxf2tSVd6-jG>+(p3Ne~6$I4d^RJf>(R-DqP8RAm4tW{@_6Y7&<@ z04Z&qgJJJ(<$9g-2HeQh!Xuz*dluy6aI8%L1S8Jr6(wMSXU&n>EDSx%aYQE?3K*-( zr&J;tSD=Ukt2tm6+&5ej9Qq|yT_FLd)ViNPejF9Te8;HZ#vSTAJqNGcu}84|rHx=S zgbo={E?N1jsPUbu@d3okt^qGWQ^$j#M;fBngKrLBDh>vyZUH&aQ5z{3dK5L+`X`%Z zWI^sjhJxq@U+)J=_;4Pu-9pROtN`4OATMZidJ(*CK&3?J2`b1TjATe7|KvXIr#1mj z4a}%%2}vcr!GP+sUIOc$V>||s z=jsF=B&A}`exGNZ)sWRIFCu$NC4BcE!MG}d76SP$U|)Q5k~=`~$G$UwQ2;QDA54c7 z+mGxs%hZ9ln#VS(*M5C62!_Kk&LFbN)R}=$qjU_|&L3FNEm-D2!TFyVPw9gXWIsj* zqvCDEj)0ZvinI}YQe$=wKGlvC2FJSfeg9M%!&)DRWGTqVL>2uQjcq;Guy9k z00AOO*4+$w&8=QA8`&BMiILh)J;8P zykqrNv_I7=4aXV7W8|O;O2Gp77q{j<+od`8JgOvTs)3+#9NgrC@Tl(kg8okZ{yj|% z)yvh7svmi%ei;-82o6Y7|5kk-|2@=e@HfX5R98T0eH8%f#}aXRGBKxT6Lorl zehJR+_kij60W^+&6h5Li>z_m8=+}s(iptR+;R=6De;kr)ScLQ!^q0VPh#WOpR^bW~ zRIr$JOfXL9v3G|{frEuj=9stz944G2K_y-t;i^c&fN%wGF=NzCQgq4Vr z;4?_M%$y>uyj6*Xy19-b3!GEgFI~KbOFr*ocHJvwtV$%v{{lt zlE-Zhk)E+l7c7Fq3_22+^<|H|oS0LJJB9??^Ho$oUM=<7=$W<;ByJv!Eeu*Xhm0;5 z``(gjDX4kE91g-54RROSU(l-*3E{31SAl5XcY3Jz8m!+Hs0Jhek)GC7$oAj$sdkQw zeu$Er@0xwI?X!GCTBx$>EXe?>5u0~Vx~Q7mJdMhYB+x-R7gA4*tU&@R#tDr&=T>3x z`>0i7_l)GC)FW)jD()f!V|tXyrd*!Ym@1fW?AbxS$`U@MG&xKz_>&%S7??PZ+}#~&nw6ql$v1DNcuT3;$RYIx}mX08df~(Uk*jW@VBQ=A3ih74{4w1)3MDI3Ia|k5Y~~QU`%iRPlg(Dd0v|7mX36fz(^UCsiB40u2`U6pd;K zLyCJDa8F285K<{O$eE&fI+z@wKmreucczY=)B(nCCT{H6GbPYt)V#Os$tKC{M1m)@ zuv^ENB@r6iq@hS7@+^w>&j^d(Am1{|jKi5VPl5bWR5`L{18WAE6tT`stze&;1JlgI zVPjJ(=s7lIL$0UCaXTXW)o*dq`t@lX$)P!(QjuU7Q{48`wK+IlglWUzz|BI|IT<(B zG-N}EYoc&Bh!tO4AgrPOfep#sfTpw}bHxq_wG!>bJkqwlY;g(`Po69f!@(++;QR;; zDYBR81H7;hw#T7;0OAGW=mV=cG4$Je$8OKOL`Uo*z(ph$h?vyY*%qA>LxMA)zrrFj zmIMLW;}ASC2*;2zWN!&_LuSTk;YOsq4#b9<6FzT{V8M;WJzv_b`exRh8iF24UT@i8 zxhJ8OSeo0LfSbX@h2%LC_*1Mb9FTf7PHcaxwQ|a0KTB9PZt1mEs}~{z<);Q2V*$H`YQk!zPWS| z&v6^NbE$PRtyMwd7`{y(vdNxm3!;Za35{11C0y^ls!Q(umA+a3^WM>3@2-EMn(Pmd zzkN%WqWdNFtLit234VbT9UBRpUn1IMR8QhKorR!9;I9wYH|eKzHEGY*uLk(~tNOiA zEPfd0=o7$RKd1i@*XUma!460(Gb*GZw}wbVUV<$7RiXw$at|K`>q`U(>(gN9@NYW9 zh25H1*g~0cXm_Fegjj}YqrD*B!o-V4c5L<`f`c&x zh7TzJ*jX2+WmP#18_UqzXGctYrjIHEg|tf}XEg`bK(dGxEaBng_7+&^q&Rl#@d&XTGs z1Gl&hZtP{B+?7wBEIvhza6kc@n)+*UvdD>xh6J$9u-xR6dKqLR3R6y-pe{>IfD>pM(m1u zdMNGgZc|EP8mBzxh&$Q6J25^8LrNO4?T1CjWE8tk_IygMp(8e4LL5rA{bR;Yx!msI z8Ds%y921Y&)M35x(DZ%Fi|2Y+80XaP4RF4JFCwd@oIj8Ao09l3W}R#Zy_|_jLczmE z%uSFmNYN8~MG+$buLGao^#Rn21tB3i^RfjlBopns{(3}g4;pciO$+~(bsTUqL=$^Pzx)W;xd ze-WcV)O$hMT4_9u7cEK@$t`?zuWx764UKnSLEwP+iWxL%`s1KxwDOl8qOxy^GjqqfK5IM{NOJa+Zj7V(I!N;6Xv6B#{>>(7FpUD-fgA0G` z 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%0A`H8wL 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%0AfpCP+ChSm_t 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≺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ι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

;|in8C_7b{1MLNp}wZ8EM{rC0D2 z;Fg(>F;CPL_`Ki;p?1fPa)5tW5bx`|FXv~9-UA@a1;9{Y2FRRox9l;CkLSiEFBYmZ zS&m4K7N626jT=k4|1t<Tb9Z+I>$6u7neHW_i^L4l60Hiy zZIAkhb$6>GqF-&TD7Ncagom$SIUtS=+bVR~COQe&AfU$a*9WOPh_FWNJ-xL3DCuoc z{(|WQ1Rh>Crh(7U*M2w$E}tXg-F&x#f&%?1`wASdc)$S)A+{)Ur1SwU(|WC$a_ZEu z`ePv%Q(o5KKrtRXzUL

KiC^Z*#&oyNhea(|bbDBPB&}xP#>0)_cR41QMvdA!KYY zbaMFOM%f5Sid~QrvvcvHuv$Sr7bU3QMVK!p3m&!=|utVsVf z08$+tdQ=!%Rb=6VpTU?s#=qj+MFa| zmT=+YS+O6Q!Yd2a9m|U8NEk1Y z3F6bZ15Cy!bgR|OPNpSn&;-sn+{UkuBI$ z3tXv&uNvqK{Lcgx+z|$J!}FWv0-TwRCbUN46?oo)5~2k)H8VHbi?b@;!T9KsrO_au z32zQ{w5%Qus{ERQ_+b|sYqF&5cmNeQMR7#(#{m?R1QPpX6SxGQySf>AVJh5;5;1n? zAbq-2mSKF2+)mlKpz|Np9qQv93zp#5lhF3g&aZbqiW}&+I$tFB>1zZQ1$glHV9kkE z;p#yuiCY9|jL=6SA^uRb5n)Jd6j2t3Gk4h%9LOFP1vK^ce*~EbF%gm?L;2&1*IW2B z2>FRhP6&YYMI;(3Hn8kdDSG$0BZ<#(a-vAP4e2=|gek5pQWZytG|Uo#I?WNZBis=p zg>AY-(Qf=kh)uDMP65E<3;oBg;4C2Gv=5HUrNO4X6$CTbH=2+JTnr%k%o3%3FdJ3X z;r)9Meox2}4B;u{~x!&m^7B}PQ6nx(^=P#cdIJL|K?f`?&L#RjN4ixfW<`_0sZPC%hB_BY*Z_t znidL~rAI!Hc|Y+1cZJQPvB~j)*T>aP?GW;+$sC07-M&vfu6xtbM3^eC3YX#3ji~JE zkmNZq(GoxDz+8+{vszQ)VA*TH-U-hE1=vPpdLp@b1$}-aw70KTlk>l7Co;xmBr-i@bYn0xV8w21IG?LA92w!X zM++zfG{T6LW6^F_MFhFMvK}3)u;Ix{3QFs0s)O*?nj~ z6g;_5i^85NHFNP}Gj_5h2=N=C4*X6y-X=QPb1A7ZqZlkvVlY2&%S2r|-GPrhYvs zr}6U{S@V(-Y$y$|(?N@XSws;%>J1aRRdvwEJc7v|PTyk;=rl>lLZGN#Y3FK8#<`}5 zSqk`t@KQu(tvf;^*dgITy;Aqh1^K97*obS264Vk^27F>0iqR$HK0`YQ{nve?U=^D^ z6#@b|Lg$PDsi5DB~mf?sF^B)AiH=M<962$5)gub}V1=S(Kq z_J#}*Y8NNe^$37mF?Fe%ZEc6{no(xJh(o{7Pa|PX(U_in@Zug>XP9EfTKm;SO;)q^ zrc~c+ARSDxZ0F99M3cqkaIqjQ2lyg!hM*;!pZK%;;i?uyEx18XKRd9}HT7fQO&f(Q z@peoiI&bd=3L*O84i@)8o(y`R%WTQfOrDo{bWdKpQ+!We_6j* zzh8fzV$OfA|CjzN{kQt>$!VFJQ}BhIH+OHVUHvN|?UT$;QS0gr=FR49)Vlgj^9l25 z^A+>Q<{Rca6mLAkPeUAj-%Nq0Kubkuzl#^kr+KdT+1hZU1o_-R7k^^LhX@q5wWaJ z7(}d0fhn(CW`_vcBZyL#H^M(COWneC@BZE4^8}%$OtYjkA$sU zyIuaIqPE=ckwykuU-rmRnDuKOIA-WZOkmb2{t00#( z(i6V&ZWz?EL^o`m^OWQ-2eo=Nhf2{iUL13Tb40-Mhv$VjUJKE(yvO#|Iq3|I@=bPf z?F0VFH~b|OOy)EmDs!-w+dlFK;1iH1%uAzM@zHts1sE!+Udxr(#8q#CCnU3)00?G* zY{S}vvL3Y!FPbjruqLq%!j=iC%A889rQSz&?y$=zmX!l;Cp~J7INr<1{6#_u=Txt)7jD?J0FtS{+oNt^ zHdce8mr@QEg@iIXcpw3Wlc?)c$QO201SNjKNkD|gfjEjPh~QLnmi#P7&~IUhRmUob zd}wuSU`KL*qrsx)+mKO!f48i`IH+-OBA>%@l8mEjoF?#$H6}AnW-#o5r<2x>?vIs) z_an24!Ugk9DFn;UF#%zJB<@&K3@eWZu_P@fKxQ2e4S!;j_dz=MKKYKYl#p`{kqRm7 z6(p|CVy9=Qc-0i;DBi9u@E@c#iCybPpQT#vECwyQ#8y_{AS{PEgfYrN`ig(wkWf^IE-0Q$iA54u5ci&9cBy3e1Mx2v>XJMP(nHSW8^Zw9g3`1 z*xBKqQZ^J@UhkGZX=C4}Su~wN{4Gq7_hxFy%kojQ=opwdA3{8fnyYyGK|HVu+xqY~ zwfaDXDSHtdIO_0n04nOeK@phmv%IP=+VSBVL$LJusfv=cxFiM?m*PKGI)}t9kciZA zK-Ki-H5L-pjxRHArGD3oys!1GF$OKHW3Z6{03jP>HikQD4X#KC!0xz-q=f**$-~94 zR?*V)p~sR`)whC0xrcGTk(0MU4*A^Lo*H=caw}@-*1Gw^8(_A$Zc$`_cdy0!armRL zjVP|CB@eWOe2$9ILBOYtu?4^g9{_!f@Ic!g-!#EZ9odUfEG)6fE$M!d17eLbLx89GuL|thb-s_KIqt?*ilBcv9ux+g$_Xn zb`Neg`Yc7S{~jhDVf~ANlUQjT=pVx&b;sXx_H!p-p79qSJ`lzGh0q);qJhvuFA+C&!Jf8h+JQU2PiJ5Pol%Q%sX>a~B*)Z~FVV-d> zy8uDF#RMM+#e3<3us0Zg(gM%%(gbDU6pL*O!nEARRUeWmYqohL-p&a5F*Rf#<7jIJ zM342{!-S49urWMCA?8Xa0G#lNS;>TV%azIB^OE5n?@uuIAcx3c4pDRn{C6E9@fg33 z0w_Pke^!I{#x;o#hBw6kmCix-npGx2Iae?@Ve%EgZJHWgvcip7?{B+jGZ%(enq}7e zK+spgkXmm5!Xe@EU{^!;vihzKPuWQKn(?HtrwmUIKNi=~IuDSCBY?jkc6#Zw#4^Ee zL*Y|bJ3=OmLV~~!!B8qS!1poa3Oi@ z{V_}tY@|-KS#CkSv>6krFDdW#^iU@RTx2LgK*%_;ld)^ze!<-jn-NMfS;ouf;_zHe zd$nF~5#kwj)4m0GJc?!%UIX`qNK$$;QA9tAga=1w0mYF*1(GcmOA6#3a=%g2ETl*v zraoaMo-J56;`jBi#>$JL>yom91}h8vOkAQ;mR*hcO(==PGVUt1v*WlJ1-r)iJ6L=O zD+GLN8B){?xakZ@GVFth80Htd^9*M#4n!h^@M)P@bS#4{VuMz!SNOh&b;Z>F!!qp; zm%!0r8Np@glb0kJ?qI}*;T&u(8ETso5Y9~()cs%uaO)Geg{kRGa0$B+Wu7`1Q4m7~ z2*QpD40xBB+pQ?1#hb;9L@bK%m^%aUsgYyG@D;)nDlx)l0scxTGLcQxo}Pz1DL6<7 z>VQ2&JP{=wLJN**=v&ZTK-dXiJM~(~hMK@WObjfgZUv?+d|=)hioT^%3pZvd)KNvv zZcJ?IzJUVYr7X|f8=>%*cMjBl(4U4hPI#wY**fapPARVsK_2(<&hK=7pS1DsKq2=7 zNaQ-aN?djLdf->YhM0juI1VwyRV2aQPdz|AOg&27CiD;}4Fs)Q1Fcmr$fHEHKnp!{ zaOyITGEk>ccNtc=G9*Xx@^#a+SAaH4q(#5-2i(&=Zfas&^RCY-D)le zV0l~BqCx9L>tQo05Bik!0rg012b^x=z@ty1y2*agoG@WI<^aRqrTc5Ib6!C`bTxQR+Ahoxk0H-iZPw3L5&)Wk#+h%vt;u z2e`Lc|5a&t-9JhT~Q%A1z`pDbU<=J7bbR( zxnSu(8|&<+$>F|%Vf{0L5)93mu^Qd#fy^}H#-hS9WBQ(f2@X6%+DK|^?m&c zb+FKvl74=8r-${41W+eqyE@Y!L&M8&A{>7$Tl5QBwTu zJ9@`n>FYsAGPhe1w-u%C`RTyf_snrf>Zhdz>nJSmslH)GrdL0JurlfOE=9H2qWt>s zo?djEDNHib`bN+Yy3Y3IHH6sVjEGO%M@-i1VF5oL}N#_Hvj|N2~pbmWC#Si8p zzMpPW`vw_y7Fzu+1+i$dSn(WT!c9PRMrPG>hEgxHN=AjSU%=**bQy^NttLEIDv=Y` zpm-M~GS(@*M|K!%qvdoiAy4QIeW+irzODX3{iXUxbtf?jsasP~wPwWdTT!{@IOw9w z^pzApy&lT5XXsbx*FY}*HvKF5eH8rrbqfA{O8=Jrvi=%0Jg!C>e!q% zSD35JeawyK7IQ1LY#wW#U~V_hGCyZtU|wN<(Y#qC%|<34b4EC5u-&lJFru&tH_RpW zFxQ#0Os@?GF;_8tPr1T0Ar1kY2r|FVwAEt7_>)7~CXvwgg9r)^CFdG9g6x%6nD0`Q zM!c+i!WAWFVb3Q&N)p9Q) zca}_lKt|#az>cL8M>oS^2bfcc36Y%AGmKAhMo72V%3rxQKVqZZB~3UCBdxszJv>um zpSJrrgP5+!HCn>@Z7+7zATM9;R)W4rMC>_^aZiafZ1=bRUfk8R&|c1M9~#e{A8xog zEmdgfgWNa!PTbY$RprijPe4sj4sH_mPCMNL`~J0nL$f-j|4XP1kS~9O7INQr02zOBEz4ENtq3{JN6}$kXF}1jQFN6Ci z%yNw4(59qIY^VxRRp8fPNGk~g1XBkVF>GVWu)v`lmq9Ofro&t9msBAfc&w7K9)whe zNvuA-Fyz4vjkQ2Ewb1q|Yu_vS7j~gugGxLY=%R^Xm4#Z=cBsUQ5}ViwrF6-Mh}iAS~)cla;kxNEVTk{8CSH1=!IFGXA53*1{+wc?msa}YfI1k|%$)Kk9zs@pja zp^Vurg$R&E#U=%r(6PeJ5mNMAl9fZk!(p#-=ZBv}_vhe!p_>aqaad_F2%Um}3@c6- zvHuY!*FgbF{-0!(l{cK%P_uD-&fitnbJCT8$i)U?z6!!L`i ze056Y$iok3`M9>{R9eAEfUhD8g2(eTP^20Nnhim2x0iJ(hYYu9rVszgCwijaXr)b^ z!`Mb8#FHsFeCX#S^`K=ml@hR>T`Aa104JMv>@VyE;Fu4Dq02O7CIA zF!@ODn**T(n}$Y24bGHE1eYeS5Sxx->4YF~7onN)w#Ir47jmlm)$oJ6(FJ z@Q%BbEUMgcLhQ5ccW!C$EU@RUl)NsP5>N8yyfp`qGA&(%qS2}?n@4_26lA4 z~g8?X~mJe+lm5<-1s8i_8CGr-FC z8-KQ?=2Nxj>puBzRR7lJYAs zcLk!dhKMQOn%GOKa8aeIE0s{oGV0=lbioH0vh9%^pweq-5_K16ibXCDMS;iy0&3I0 zTAQi%yGUQ92hHM=fgaBBUe^7bSR?KtO3RvY(9`OvxESERCn#zLTT;OXR+GTmF2PfR zjbBmohuC^InQU~OSc6^c)|9aZslAkx9w^GsJ`(%8zopBqes-*>%s7rmbez1O& zzD++(|2(A@U!h;EU#H)s-%5n*T_~)dL0SDgb#cC~zpcNkzpsBtZR)_>+gxw%XMW5) z4h8jTD5x(mzd&5;*UX2_Z@@+TY4bVrdGn1<2c1OXGOV~_z>+C1VRs_*ETkasSkGCS zWl?8EMuB6gW+(BJS`KElWfy-$bJ?J3uuV3RWW;%#i*AD2D`!ef0?jOC*=85bU8bkF za7YGi0R$W@U)n}wfp3|cB&5m(A*@ANL~*4*=$Pm#oQ_J=D%L0+Tv+L>}~aC_M$ULUqvV7pZwv+<+wK4f5}OF#U+3?B^nN2_{K)q6zNFKHEPs!?xKBI zqHUZiQ46K4^1%s<<56@_PPu=sBJmm&XVBKfmgy79Gr>SqOHLEBTS6WvK*Xn{OFSR} zhte`My0V!DM2$P@qTCp&6=7n+f!)~b?>0+8X`kVT#UT+qzVd7Vd`gN0&tYBDo&>76V5_F`d^uZg`(P>V4vS!wJOX)Tj3Ex> z5`qPl4pNkx;Xn)gY^Ksp>?pZOPT({?aBaCC8RaOp3|F2Wj{%jMNrMH!b?K)BtWI$+ zoW*U>n1teF?4CMc0MThF3`u)z`2 zmg)4_a%jNLndu1L41}eJgFsM&MHvn(|L;!Wd%nQLK&Qo~i zHggD`9@$<}8RRN$9Mg`AZ}h$|0SgziQ(3q&p~Z^V-9~Xilam5GCS4tS77$U1(iL zK7_V7-B$RkAz+H;` zQr;Zhs|vcf3^R&alLRd#_x!47xnmo*KWSCHD1~z%8TeikbzQW&;L}x67O7W9 zBZ5-2HRVy+1H5Bnf0&s`N{Mb8C}{&Q%t0|!q|HJrdmYZ)f~jgr*PP)Xt5I?g7?qy{VrJQ1N9RCO%MMXG;m}je)%g(-SN+i zBXt{#{JWH1sl#hU-@1@U8x~3Fo5O$6iB85mb@Yo;EeQwxw$?wSHukk>*5>U*AmU}K}s&n7ExcQS(> zd85vwn4+3$(5$&NCeK5u<4#W~xmFUfY>Pi`yFG^>uc)l$^_DfCL!Ck~i28cH1#)dc z&~jnml_5t^1&>wRX=-M*8vCkelfy|;HA*0m9Q454O1yrw_Q|aA*HQnZwYP#lprx9n z&ZOy5c<5=~T3#;k%RXTNBH6ehDK*sXgBEti+k;!-e(J{kVCnB~0JWL3knk}qy5%<3 zfL^>E&+u3EMb45k<=s9&(m=}}HQ&Znn3<`tcq)I5h(Qr#DC~%v7=ol)XRDV|cAfy~ zfagSf3(y_;FVr$146^S96LR<&5MGyXVfid19<#4>sdW>P;Tw^Cxshzx6;W4E*06tv z9>6olLW-vL%^2jStDCtsz{VDyg4~-%E9eBYN0l9GR{;H3m$0yezd7!X@s|#UkO08{ zOF!+=e3%FGdbBe0IYylx4bbK1VLGA!g-tM$;_TMvfNzb*=Ot_;uJc4iy%6j-#iA@2 z{=mXwW=|DL_PzxGeMhN%Jzqhmo#B~|Odd^1Aiy%M-7%h3wV*gkjERKX7>iwdTTrmi z@Md5@E-|jS#0V-GGJSQu)i;FglyhRbMroZ8yf4xfl`RQy4i{pO@JOYVY_`#>8AaCh zEvyf~+F4a_lzW5f5#$k*^JbP1RgE$B$AqGNEGv7_x2DcuOpraGD-OV}*%DVPuepze zh0s-1uj!NPrmPDv`&bzuJ1@_k2p08fiotA7`N2r=qyWW4>PdOBIDzpQ?hl9V4N4e0agzo3YJTm1+zLPnV0(tCJ`@2;=X z*XsM~Tl9@o*#OKcN3!@!a0jIU)s%07vqBR%y=*<8C?cXoYP2U8C0mp@4#cCz zk*MIUQi4Ws26cn8(NiR~pQC71baq!hh$@QSA^#un56y$iqZ^}?pi83juo*p7LP4!I za+g-kFX3 zJOdPz6!codW(s@B4;n2NHk(bI9Tn~Lz z`odwNQ}M|?QcCLvG?T%<&U0=z@`uaTJR5XQbaGL@d1m+x`Qb&NX3MoXN-j%Jd7f*oz&1ke<%qHi9( z13~1;v9!)jN>@3_Myqa-dZGx5RUz+#_bmJA9N!N_>E%qCYWSbW%H!o+9NkB6O*-$g zgNFq85L*T_z9WBZAQFTSr7dl#+WN^yk zK4|215+Yz|aWsng+C6HkeQxCb>FS=O)IrqB9G5{MfMKPwAMi*$ejkZKaRwg~(| zFZZx0O4B(W)C4E0&iAb7vb4Y0&5xJhNx*oQ$8&iWI5P6VV$q+Bw*f0TSz3TiCHSn9U2j4ryN|Xw?x|+t0P&#s zG=$ggwtJFnAxK&bazgc}%r#xZ%4tuMyTO4gtkP)1HI5`_K(wJ`4TErh7`>E0yrZY^ zmi1Bq|Gh=FdwvE`0ixT9UoW=(tH}L_3)E0ycySYGbkdA73Yq+r&yv1{+Atd?=s+kaDjAZXBfO>hIb=xuv*(gK zd$=T{_B(w&baP0mA=EzOfqbzxX7@k#-2M%dnL&+po@1i<++NbzS>oJGl8za{A4V<4 zxn8Ju8vN!1e?qmw!7E8f!fW)s#OpAUJb_ zsJqJp5ZCs5fK!9P%GLj-w zF|ZCFT44t8q#SeQG=jr*#Dlqj7^KJivSi^Ai{zFq9W8 z*9`|c`}h|x9FZQ%Yod+?l_!ckvZr0=l8RY2SK~g)AiRhGknj`BdjNuulD~zUbOG-a z#cZ5z0e7Fi-ga{rNZE+$WFuYxKIQx@+4d82A@XGeAJ-COSQrSIXv$onSSn~OX9nLF z@fJu(E`sI&3+a}P87%1y@vSqR0lM^f4oP;R3@0g;MpyMPK))RLmif zob)l0?aNf3OBUlCt(>YA6WWIv62@*tu|KlF4>~c(Aj>?Ix{{};Uv^Gise~8*X^^Y@ zG@STCNb+*^s+Rfh9T>gugW~Cv>Pw(I{|RVtYi?aRouio<60| zkUanYYm{HFA4bl>Qz_H?EW-b+?X1k?*vYcE5$_tmSQgPjPPNQN=w~c?8`;U4+NueF zcOd?hvSVlrXm|LNWXa`At6j;8jV8lF$u?OoMGupuxK+D^xn48^yrZa&tnjEN=#DJ2 z(ie_v&^X#FvWx3Zjp$))Igl0IMGKK*P;c@+bC&d34iaq$ z|DN0gofOTmy=%Uq9k%VFXt9HqxeUj*tRRw3N&B=Q8WJ}tO^J3UapksAl!A6YM@^0N zTRN=K_qY{y5P26+`cceWp2Sh(T*Ezm<_ub?_yswPKcL5@X-G*#AEq002IrmJK*Ocz zFd9i4jh9D3J8~Whn5c)`JPt(uaD3~|<)*or4c9xh6h9@WpsY$mr`I%z$B)aR=5RxM z+`qIyE&*=B_Md!fHga|8AE&aJ4;;p=uoEXNPrUtc=|h`$A@{*`*xzmucnCLJAACsp zgJwlBEmjEMz{?c&%z*4(YQg?o6&E&jb(Pbfc{L#sTocT_*qfPcSp_Ml6dP6(TxVueILDx73kd>Sb~(_{fNs`s0$JhIdao26uE2m(F!W4wEb7911wJsA zf+19{qDog7jWR;LI1Z8LNK)-YSkbOsvLt$ib18Lu$~-UOPGUVJGzS{dnNlvaBCLan z2qrTFj;?3;`BthNr(mAJE;d%yfDSDebM41a(pSoc!viF!KX>4s*A*Jm_8j5DNBTo- z{Wk!?w~^T_X8KDgRnQ1{6*`O4wOG;zbr41G44;oW@@;MZm06C%01a}QlY&i!)aQie z_3H4;jV|1epwg!Hi|l%I_?Z;S6}$03G{1L`oJ8Qj_7!flCjINX2w>9CSwWJ|WMOh2 zvI-Z$=PDnstkEA^^yUvHetLa;7J<(yfTsk&97*+)BzJng6iq{qgc{I&6;R-Q?2x|O-Yi?{afO`!(rMxUkRQ`fmV9udCfi2-3yBRC94V?_m^n&fnctXHF; za)D}4Jym>1lsYFln1V!aBosb^fk#v+$DAXaXtJJZ&>pQ4jPPv~t;~_!6+XbirL3J} zdO5^b#ny06w}HM@jau9Dl@z0)DBouSySZC$mEBH^d&{F%1dKIJ56y|3SpG9*#?V2l zDTux6MXy(<0eG_z$Qk;frH5m1&M8Q2J0dmH(Ju5}eoxXIQ0Z7bOKOkQIDjr71y3L$ zmkj&s-kP#-Ybqi5LnYda>pI`}c~)QVyLx@!_4c~k>Dk%jq@48R1X6&I z5C|bLK)}$X377zpVu*s+u;5kHI~Evm#Da>03eJe5pngP0y))x5;%6+3sMi}5%|7@0 zU;E(Pd&=H#S@l`Z^RK`E?>{5}XTfg(EPB0OHz;SWnBsqOl0pII_o@KSGc1*?t}i>j zBkanpvjJW%L_Cfw2@r3Iprs?U~~H_TIJbgqRM6vWP`v3L~rxF26KjZ zhdK^==CO>+2}F4m5!V-3`J!jE!UCC4hJ)UfD+(6F5Pq;?|>Qkn6}^q${#l zl+`%{iHsT$PggVv(v=tj(p;+H<#YB%30?eNlomoAeR(FE7#5E7m0&;&G!pYOzq_o8EKW1>?eoX zw3}AEgS4Db)Pl^Jq|z8Ew7i6BIMRy7GhCk>3B?LjUxq_=X-_Yjjx&fhmtABCCGvp| zCtZnR#o{1#!1bPyw4dCA?2IWSh6R_!4?f|ajDZBYxX=wsmIF8ixi#4dqk*KGP$sj# zgc`VX^fh;kk-)xkJNsh!w74?TxDs(V;ChK*8JvT^vOVMtoP~FEFXi}hA+2I&G`TP- z9phd&qU7Xc7uf)<&#nZc zFruq_jN3vYMMGEY3dNj|}q>1A;U ziMTf@zs_9m+KJI8=&K?98`H|q41kxIu}Kf>Nl?cQh018D&~4)Fs3BgXNhg?4VO716 z1Kk59LejuKOJSM>W(D%9F3FiebDMR;t-RQV@|%o_(@RV1Se|=Xyp?5SECz5S`Vlo0 z$0LvTFG3#Q4GZp{)1rJ!qj+YHGfk;zgOCbvHA9vVJO<;Y?nn5()1=`uz?daKH=uY( zI|@|3pCrq>ocKGf%>F?g{}Mjj{FVa5_RIr(X8sv`YqT`8qJqjWbs3`P@RMXK)HC96 zYcR+G#C=}f3dabPnIxtTpS0G*dxj(#znH45uc%9o)G9I6or$VA;#Wp()1I-o(`k3jYEk-&i}s4|)yT1W6oP@EBRrwV0DH-f0f>}ZH@PnGxmISic? zA%Q|N?S&BGfRwTcbq3&{KzB>S(vR7;biyECIJx~J|KhDe2xofAifpdbTIfK+U zSAmz=c4q%nLbJ#?FSO(x0Hsl*9+ih5CDZnuML_rL;wp!Nx~uHuNf<*vpsZKbaE?5J zkE`E}IR#g!6=XA=?=5rsTM!kQnnR)nG-1mn6Ig=pOF(N91GBt^nvz|#VI7G3V6+G! zkuG%L2g3CoW1Q7_*oEZYo)T^#;?wmOWL1d-!Hgf16^99PzMZb=fwG*grZA#e^+H3r zmg?z>n_eotBHvEmiq)DlYraLfRUShJb*$JT9Abe2Bl(U?4M7p94@v^o8=yzdurW4k zd}f_@pP(kH+~<2nU|w4#=a$^dK40Y=~jPug?G=vD8h><{_+37^o0? zlQ;q!MXzJJdPCby?^^(Hr1$%`3{^T^(zE~&90WoKLJ}^7n-o|P6>#$b7*q%oEzg{n zRZONT?++&~)^WZVV?x;tMMZ-F0ZWIry8!yA?Ucy~Gc|0?_z+A~GRUwQfDIhx)kv-k zyIR$wstkKV-%J~@;zt=oE4I@Uwe}r}V+ciIuN=F;-3IHR^cqO2f(p93hbUi4OBjQ2 z@;MeXEID~`0uqQZyH`@}V8ReYY_|*G(Ck7o9f8xm1qeW|w2ru!fwEFbEd@ zm}Q!I<}4P}8e?4#b^(dTUJwnDf3^W7D?mzi^t*L2X*~*_6qwrB3q!hL;aW(qWX4_- zwyht=YUGJK$+#L&=C;Q1z`@z_)BY&+*MpSWs2My+QF5UshisW&tvT6xM>|)h+s2B(GkmU#7nfv*}Ix zQT>>Hr+%D7)(7>Ex5W-Wr+<-hhfnI?1VQ#BPu3JToKZ*_11hXVx?q>!xr!DPRVJAb zVBo-U$T(3qu#av>i(}QGrit*&uU3s=Okp^P_7}a#uGl7`NjcO8eaCNfH9Z0(yG0%a zP0!g{y@%o@5k&TbY{*d#ivw~Tj0+CK?gu#OVny*8HU%c$(FeSh3N8XEY{n_jx*NF` zYzSQRjc8hwFJ3y|QQpOe><@5fzqRxvI>3=7#6ce@t^nwlSR5Pfj?Lr_Tr0o0iGu^_;;><8 zC$it3lQYQ`@WbM;SQ;&WiYG6ZDJG2=ZtO2lr8Sf>8o4wsXMg{MaUdteps6sp!B;Ul^~li5Q1+1W-*R9%IS1j!j_k&xWFPM(7)FFh zY)kfO|1zZ(&nyO1L)z|4%>m+)E}^LbJq+C4#pO7*Kp#SC98s%OsoPc(JB{x^(M$!c zQGn!y2(}p3Dz!5bF*=Us{=76i#JRVe*zwXWCcCsRFdZoPX-H3%u#T(s+D($d44+ep zZ<^TN4A`hKrm#9DAPo;!NT9?gnLtUo3-pxUI|Ta417sWPWU0?)RyHaMN}WJG=wM_R zuouzu-LRk>@SOf}U^~a-aWL`vshb_BmARlnat5Z~0Ukgr38({%a+o?O#vI0R&&KxX z)6r^>n3rR$SYK%t>)ic+RFBR--XWE`>hJo-@P*iUhhK1AE2F1dyc^c~knU`ok*S9+K8d)eCGFj)WP=F)GC1(Xzv1Pzb&z3J))sc4*9^7h?x~ z+0G6hnW%3C$o&G~_P+y_^(3N^a};9J^;GwLw7{6rX~#(>cSi7yMh&drG(V;RSApK5 zCJ@4hnmRBSLNL5)+cxG#w|Dr0fWDRP?XgLv!{?xd!W^z+`{g5&4d9a{rh3nQlt+fa`g<>7rGq)njibJg8SC!=vh)WRtpz-CFb)73jvV32oA)hRzkWg27G z+L)W<>FA+8u^ZnzIrE}x)UD+xI16IV_|%SR?Nm_bfmI$4nw_^~+O8_nAX1PpvG;xb5Osr*xv&0|RpC8`hJnt?IKF#6d}Wv;Vv7CH4@suaw6yzV8zWjT}%g&&ev z?as#)!JH^y>Vd!(tP2wpwn}W3jZtotI~rM2qKBEgbcfS9h;bu2SsyD#pyiwz6PuJ| z+#S0%ILC?O_uR({09* z^Hp@Mpcq9EGYjbyfg(neWAQh0`*ByDQJ-!wYa>a2nvfBNikf)L*fjFA{cK=_qk+_e zU_j+i@j9M;E5rmo$&|WYVgZFV>c1${0d@Ah8`F)wHmsSwG55&6)%IQ&BtP&=B1ajK zo32m449ZF{1*j0f8)F6H3xvBT!-RY%HP!Ci%EohIE|R1@fdOVY3tApK3zEMlX=k-9 zrr?!^)9rV$UvZVFa)oPaorDwmyZAY#ry7 z3er;IRggE)J8Mx=TvY5BL&|qeuPhNZ)}*S0)497h-@r`@EkEpvNX8oY7npZg`u&;F zm53^>r1Yg6oa&VT9u6BOeJU{;taJL|kkLIw&~{LJ5K{Kc%cAHEEn{37TG9_s^(N_p zh;uKiOl)4;!&THVU>*r5s&jM_g<=wK)16!n;X1ut6&2(FRjqfE0J{Y&K}y$3dWJZO)m`L4Vb&N-C!M;1)1N>In7<0J zN?PM1R-hvBs=+pzkvp&MBuGL^r#5;5@rE*ZK)Sn$U=R9+t~u)!;nxyU!P`XrsyAL!ZDZy`g%aFL3KNp8lih2nPi}IPj~$a zOio0i1*Jlpt%#Tm2_bwd$PxS;W@V4wDtiEYniQ7DS`orW|I#ZMw!Oex)7u$XLb2D? zSEzoPERCM~)E{(v8y_m=g=PE^iG#zxA{1}_qG1iF|Lc-zFg_gG(N~;08<|Z;10(%K z(EyWnh;Yq1eWIK2TF`NsnozGv2=(LzrJHb1Qh&M_c&Ic`ECY{* zsDGHbhtHzN$~;%UMJnyfPPPr8m_Nqvi#DNRLFzA_CnNLU^x?ylQp6Q?5s*N2^@B|q z|0vXZbdy7! z(G1f&{9QEqr^ro_B0N_a{liTLIK`ZOaz?t~#Eh1YBy6 zkqdLx`;u*|yNnKh$hL-@nh6fWGAh_%Pvs8AbjF-+ipDrqW4m>sUc&9^EHJ9{K7@cTTP5&ei$dm#KsT45#kTuPe zEbF~qpY*5$Rd#O7K==)Jqk4jAgs+-p#rs)?#b0MuBXO)#TZZBe1e%b??-kF3xyxmw@(-h>{85Qu;T@c>tmX< ztqk=5g~^1bs6Pp#387Iq;2;2^ah!DgWS%!;Ybp(Rmy!Rz6IPU!7JPItvrE>IG^FNi zJPiI)J!uAATCmbHT|;Qj$M9l-lVLd;IjOrLViHkFeF@cyYBEsk!dMP_xDQZ>(7xMZ z=1i@6XIhNb6;IaaR}L{OKhwz$nSjh}8grOUsrzB1xfx~ zk<`cY8X8i)nfDi?DsgA{O{9qt_d&QmzC*|vDiCHC1rYx91~V8apkaod6m|n1s2&VT zBkEk!8C>|H`ET{_!TtTd&aZWTz4M$|sx7~w4@o(u20kSQ;+C;@(Kx&r@b}k1 z5c06`YAP__ZhVvR%}|7Vm+`&E_hT%g_csc~4Ca}z#=a=tQ|Al`c!|+MKnepuG(L6# zR#vNrMXidR1;$tq&|=Y{p4*1!&N)fOwPwPRIY1PSu#_lWR4}`P!jPh>F=Hxrb-ezd*VMq+Zb#s)9h zi`SX#B=!i|J1jW)DP|@{7&Zy!8R%k|&^aXA@|W-1Tdv6ani6n4XKWa1%+TKC?g38xG6QHV`RSkA-c>s7RoaTj1HZ`(gVDx|@ebpc1}#liO~M@y!7*2$bO` zuowR&;I|J4?5U&L%GL(MykZ>48w0rJX1LDw07qkZG~tnQc$&Y3E0W9B+St!e$pjfGtRre>N$om2rordBTGIdpw=Hz86lyO|e(x-GNl-b>RxsQnG^iH~??)sAb;Y zb(X+!9ov{LS6O6HOt$u;r1955JhWDs_iYq3`LwT&);F4O4gI@FQ5c60>+Yc2Je}+r zB%aTVbQsmTnj=se^~G)v_xGv)+q%~CfQjZGH6VeG^BabHvnU1PTn%rw?gjHiFT7F` z3UTdV5LN@2xg?^o^fF^kO+qk+$2!WjhdkAA=xt5t2!Pv!kR=F|cCHbD|rxptgfvR6sG{V*!TNSh{HGk>Lc? z-dog#<&itoaF_^%=OK2s1S$B6UQ#2-prqem6pZN}P!;6CppkPHIVmu3J!OL7Y-ULs zQQ22ny_6g{cB)~uu`7VQ@r-B~U8JMELBbu5LVJXUBpc-Sa_y0nIZnP45=kf9-J^LC zjjhUZhkk&jnXluB-0fdMo_P58MlpCjIH$wU!(4DR$-k#4=~G{>U5BQwWQ@ruKJ_08 zyQ}_VqQk>iFjjx4Xo5fwMN)ZSOM~uGt%JbtMV?a()eSK?X{a3j#45a}?lYHpM0uH7 znEJU(bBhR&`M)A2HYg<+AD17h&Gf0)_Gr}jnx#GeO(N9LQn<4z&@9vXOQ>bwt`}qA zm(Z(4ZJi>*8M-97V@0E}-07R$2Vk3@s-J-kmD1RdwA6dLE>5Wt6joy<$>G-%Vz{e( z>d%aktDl{&^YZvzkdOZLK>r?{!@Gy?$HXQnon+9xpE{Z6OS}=InT{z?Bm%ACT~e-& zC7m>T@v_KInS0PP`sRAIXV$f4&Yj-S-r0u10`@XIK&t8pjuRBLhY)T+I|Gpo!O2W* zD3v3ct%td}+sBZEp0YnAVA`iwo2?G4?pw^k3FG(#6EpWu8gmFAM~#=b^xX7-dtv4| zpMY)_ew945x^6B#s*LgF8so$~E_5A1z8#P)U(V^o)Uz)QDIgd&>Y*)Y=&Hk4&3nU$ z7WT#v1Vy&{Li0_66POUtfUnY}?^J-HHdgMA-lK=1dlITc%9)8O#^&Czsh<-Yy=7hW zJ!lU-d!}h19C`DeO0Dq*{3I>blKaQHyOQ$+@1m0Z*8a0 zMS9=}YWln7;Y_?KI;0@PRq+esV`Q^;qiP?q(L z*^OgJ3ycb4Kb&DdsJ%3!V_mJsQDTjG0(!DNv`aW`aQvE`f=Ih>Q$S1{I)fdOP_Iwd zfO32g&=!@2jY&_VUpm{Ev=_r;7XA-9anfK0*M(l$LA2QZk2oQeT>t_xhWo4Kcuuv+ z5`qw)-UU8YpQU>i{HKZwwFr{r(I__Tr7vjNz~(o9($>gaZRVg4mvi(zpf8!D>BPNmkkqW^^T@Oo8Sf;?L}?)E3Q}31v^= zwNDZan!xbs$^icel@+*zgh$mSHI<39jk2@pgvLd?*wbKREZ!eC87)|yrG}|fb(+q3 zu;s6!8_n<0t^QBxNAso5Kaiy;32bhw6NIM^)D>+$_ilBs#^2LrwD)7MLK?cn27+)xPZC z9!R>Vi(Nuo3!O~L4h=6>i^Swm#)52@*boQ6Hp4E&w&BwQKIFiKgy%5t+N`9=qzjtcIGbS4qLMYvnmosI0?eZSYn(pl>Fu>avYAy zq2;dS&F`ah0Myu2?k@DL8`mGC)Sm2u=A1aRcP|oW(#v;|yeSpIkJAyPHc%yQ2EYcF zj>7d77;ZbPlAH|Ki28oVfD9Uj1skqk&;h0wl2FQeRIQ*Glc{h%q_Y{T5={o*?%E|v zA*EQ&{g5q2LhNXhQf$_)Z4G*f5l`$jEh$~X1=q%)w1EuLGOWuItYPuH6` z6Sh{u3QT1{o6Ph7LjM^}1(7vbnZ$=Qv^Md=-h6fdbtk&pv96&+%$D}X6hv9hoj^)y z#SW1-zCQ`Dd%5)6fR1f|r>ufxFEYbnhMPZCNYT6=V(Y+U`@__k-IC>x=$`W}V;t?A zSlwWZuC}&l7v#=8>!FEp4;-STKSyLqX&qGd$dptS2NJaF&U;+yHDtrWk9l3dw~30~&p|yI4{Pq|Wzd z8)_hZKkB(K94wvFH>OrV+qq8Kxr7IMhx*0NC3M=jt@F&z-JKV7UflUwdMADz-4h?} zyp4V<@9lhB=lyhCq4Bw_)Ji-{!Au}2B$2@aWR0;T+v=9q!C~FeV}aE!YwF@^XYIhp zf`X7i zHrd9A;O2`DzcsXm@bck15EKMAcKGw%)EP|u4@%teW0apUAB3d*Df-z26o!I`G$1~G zJ;s-9jokRgZ2Rf7tg_-w3Gxwe9c))lkPmh5b^wh+DwRTF{flk zh$QB(Tm!pQG=37nF8hmXNFYLHl(geO>dQo8KMv2_0UyK8c>1KjC@Er6w;rZA=Iv%2 zM*fLQ8|f3IQ!-AC29lHVQ*;5_Ne+YK%6ri+qF)YhQXT1WFCQ07R{%m>TAOC!LvFa@ z82CN<%n`& ztS15x@}3?YXf)mkV$_-uXI2MPHZTX&8@{eogKQCZ15@6E7oOK9DCccz{1WtPiastYVBszaPG`5b?b%YZ^Ll`vY0@78W0k;%?5Rc{YqUm z-VCV30Pg4+#S`Np5W$nUK~8?DS&q6yAv`&GlVx{A4vTST-)n%CCUIW{+4Mfr zEDvJLCee82rP3tPq?=({W$7AT{59&sGRJ5{pK79?AQw*79CKV1y_xS!Qa>K6%kdE( zgrbg2PU+g;!F}!!61MGs58(1wD!ZTs1m(+U>OfocbVkQg~!;i;0{SrbR7fb&J>KI1*pK`4v#c02j)XkG+ehc|^IQU>Sg(YUvz=&_XCwbt5)#7`70IR?ZvKP?XQC(?J>6`vbsD3xaDgxxW zPb0e?fC#G5NXs;H4EVXdGROupoY__{h@#ZmbBe%D>`Q|ROb}Thx(J|7Q^mLNFyZE6 zu;ZlgSi?kG2CT4xay%Z;5q5YISi*F_u;_2dZeY~uc$%4WtbQT}%4S=NgOeRJHHi4I zYfORi4*i0%baPdiOKaxdv9YWavO&xTv+*YA62d61dk4lKbdZ-)EkDM!Ae`YAFIeJ; z{vh>uy?r&@rS__6jAB~uGT}89wJO`g$Iv$mK*ecGnQ5rS1PO=zoC+wFU1HIk&U0YP z-Zet(A$X=>?KZA4gLxNp{iti82Toxz%4{|VL;*&0aO^`ULzjuu3xK~6c!JMhvcO{q z>o{nRWj)KR(Tv5myjCf8q0)}4Sm2KMgfW7g3@g_rQ;qs+*9eEbZ5q3clU^8{HKT0f zh9`Ajirzr9CRUu5D~jzs0#WXYRt`>ZT5SW9Q42AN)W~kgmib&F72lNMNpQkeXK2(i zr;o1I4H&0c=->oRIyb5>=qKm}u-iFKL+8snS9H#G?(95|25_(Hya~hPG0c+hz%2Oz zT6q3w=R=*JR9}yQf+!Z*bL2|2MhZd=afcW^GcoWq3P-%04fX?|1cVbWMfkA|QPKl` z;&_Nin!LWHQ9Yd%#alU7n2GO7vo&}%k4lhD{YW?b> zcla&{kqsXvU7E`E1_LwhK^`WBl8+apQdq5E<^7jpf7?3x1n4>O_bq(^Qr+jc^ZH&w z6|71ZT1^OUVe+!>ou$WUDf$ZX=R+z3UY1+ly{7$&8l@7fRXU6Gh}MEQR&~RwtKrWj zkzbdf45^aImwvf)1|cEPaNvNOtc-gp=Eoq6y|d9G@r;VBw@n^fpXhHx3M+kV%%*<= za#2O+!wI;1>Rgjs$rdvTsZ*G4b_NV(q?a|t2_>$~U@-{mEs#)QD9u3?<{uK5mOa2q zg9!;aumDho8A-jZ76}Ble_%T6I$Aj9+Sr#McIY+Tl7d6Hf^)sTtUnqhKkSy>8GY+D z{2!Aj=3$+(q4_MY*efP27Hc-C$&J=3-z#1R?UOwP%VpYt<|#+)h1D9=KtV|jnNuQP zSd!hl&xiplI8+(omRXEM-Al^ms(kzq2He+HUcjzKW6iTQ{ z0Dsz%4_|hUqy~YDVW7_98`Z(cp$mj!dYF4;<)w!z994KplZk{IiMXM*r-`u*tMqWe zBr#u@2R{dI~@#AM_axJ;1=Y|fR6jVV_x4w#&*HAF>DA&uJeV28>Z`WSHNR$hp>X#-M{ z)L|P=zyGh6rWm+b<>0)l{VTT84}s-VW{#9hYr*+|7}Hwebi)1|9w5h`@g8hJfE zMUz%oiVzPm=F3(_%M1Rv*)i`dHPyABqb|SXmX8qjw>Q>qqx?sK6z0lz9iK|puQRE- zfzy%Y=-os!Qkw7>(cu@ZW9EDt^n$X|hj7}|$tWAIw%@1KC;Nln3_W@qy)&3jgKts? z9yMgnRqo_NCjBQo2lQIE8c|8UaqFh;a=ujqp1qBebg? z@J9rTiDnyrVVZA4Ilr5FKGk)980A=O(}OBy1-U8J=SBJw08odAfG5dqJ)qUUqYV)Y z>F}w-`1?(YvG*A-)2Hp_d%9p0;;!#^3n1oBoVeN9p4xQ#(#A8jAEWUhccT=D+sbg7DWyq^;whffX5??yP{$FN2HQyk zX^QQ8>6{1eX1CfisQ-}1nHQ{M0xg~m8lIXrSG~n$ma25n%LHBL8>RgbkwKC z@)AD3(Y1Xy&fuEIzNgO4AI&`j`@5Go=@q2V*R-m|t~l9w7Q*0r)Rx*Ku)43#wu@Y7 zLhe$}r*qKPv~|i-X!CBULcUXduyu-sG4AIe3;7lGN%d*<7a&Q$q@Dz|w!$?&eUTdE zoW7avBG1y#5f_;S*EV5b1<3M4YzX#{H?r^uLo)G2>GF$zEf*~+owb6d7Xt(ZE_)uW zB9^1b0ucnFw)u(B;D>zb;NlT;5yJy>2SLNp=!3~x-w>0%OhgqsO6r|sVg<>e`6)7t zy*W1m!NKMzT5E-a%NaN+t$?F1h!C$ilOqe9f)$Vucvu@NLE)qGB$G?fC9M zM68SmQi{zaP9O+fhC@7Q++xnccvKv?;(Tnxago1VGH2u~FbQ%PhLqFrmlwprIW`6q zKV_WRM|gmbu9oA_D3e=ioqkT#o?b47gSWv0r;^?7g`6xULx}0$HI`0}_ZXQ?uG8l3 z5=m1Ui`&!5An&^iXv-&IxNyw~2K02DVYLvZo>93fXfG5skn0GL77hy$T)f>7R}!}t z;2n8d;zl%(l)hTv@x?`kcQt}<3VJa+q^%?w)@MYZ6{D1_tx+#CV0z{-=nQ{L0N%k=s3>jL!`E>Ex9Jt)W%OHlWXpjg%@N z_I#TbV-UTn=s0p`5}%+n#K&N`9=O%#GHD;6j9Y;2TTc=UCz+$(N^i=;Z&T`Hrujxf zV+DZpPkCnW3?jYQxUZ#fhKkCF+rOLwJpfBCO)>8mkeFBeJL*QQN1-^-s}nArFKK>} zcon9OdH646r5}Q(9<-c3R=>Rm=>}t@y8pp5eoXi25$D=>Hinx=l{bHwY{3m=Tktb!9+i;A*Dleclt@d zo=OHbshzgEEFfK(jiJwiY)!9WneCl6fOSH!LdMbr=5czCW=`?V{Ta<7SRvVvu7MV1 z=;n6QbOxRM&ey6#eShceo$tg&{t24r{VdJ%KGFGYP;bBA`L8IuDyZp zA%ab0o5(&9{OsI*wJF*ds~CKIjy^yT5|9N6*9uaRhV5=B0TGb`x|h%R62LwT?-E&M zUy1P&ndOSmB%(&h6GBT#r!Ka2cnt!*jq_IA0Zfzo;M>Fp<{L4O#cgs`?67-W`PZalZ8pE7j%e~ zc;Q(p6d|hddbQu1t6kkp^)U_xaqk;SH-B?Q3C|hzrvN!1Xt5ek4=dx9wb}bT#YGgD zk@LEHC*l9j1vJahjGMXWl5_HxHiR) z+oN=gR;h-^80-Skp4&0`D>}$z9+cq}CxU2JaWfZyj7q55Cp(!E6CYR^;xMx5bVJ7` zm^r{{OH$N#Eeh8tUbq7Yu18~&F`StTXSk$=ZjBXg!Cs-66cAp}8JVI3)H&^~z>m=O z$?RTdO(uQX%?3GS4GCiFvL$7jvxZ=eX??tjc1!MpxPIF(3Ai>j{IuhOj}kyKk`g2c z;E#wKrl5YcET#rMw9&#&ALT;Y8|%Xg+!D@7YVf_4H>}>|^d4SfU#ESdh}ohZP3EI| z2D&CUUhT@mEzzLrG*ufj=goRAwI)wFzp$<2TrHkIgRlAviir)6P@>v82!o4 zPj^1n`FQ77I-dei{8>b&EL&OFEKXU_vQ9Vr15-`p@9O+EDID>61h*ON!6QpY#kv^Q4Qhjj;L~KZjy40U> zWNb-JfDCP&iX)SD!WXi)TpZGeOx3$cG^RDSSJfLr^+b>4%$ZdXs6=VLTjfq%kxwP# z2#kk6HLWda9!Zy~Ag3K_zQZytd(jA=vkUoa67|e2Zzw9UX7y1l9Tw)G!nWdYJGttI z?l#RkVVBHzw~8)Zi@Wc&qIc4GEC+Q1B)%kk#N!zvfAqka1{sADkkI~#n~ny*1A99a zEXJio0iQuTsnCqS01ZnH?AytV-RD{Et~I9TEuEd9(WS+B+?A?G99WX#LzH|V18Z;ebzU&`P%p5 zn!cY-LO+Ba{~7hmSaH(oa$E1gQ+c4z>Z>5oy1mm`F*BHN^0;~C%msP+8yq`v=9q5c z1~L)wZ8m5>JRi|lIEcJs7fB>CnV7*ugpPby_G5N2$JmCW$;?D?Nx(>wsC>m)M8SzW z$2?;S^Bz@Kv=xu7Ya`Q}BM{H#YEFs1#g-72TyaLe5naspT!pwxhGhg+RgFYc6ivq@5!ARWML4uZ4CO>h`K6wME)zS=-% z&O5A!qub(G+yfvgE`*_!dyylGC4zm_+Frab_S;%fZV{JLyjj^uKIbah6UikD3?K2p z^T5__)hRvlqyQm=!7T~=w)(=dAe2i0IE&Q znZKZ=V0L~*6NCvwHY0yHPHJkw=ub$kw3k_3YLG1|?O=oLug)cY7_9DEQBn2U6d$ty zZ45wy1Qfst4KODq`b?*au-~Lkcc;!g_;^}YN9w4%!iz*kDI*7mMoj8(K?0I2@RW*= zA`VlCqG&=A(tFz=wTVmDD`;zmV7Es=U1=gm5EokjZkHb149NTmREr)&!;sj~YCW0l zD5-0PizaLg0!l>ADkH};M)T8nW}+$R0b}eM&*1!_x(&={4a<^oZP)w-iVCTN5ynf} z{8=f)My~l%ZPGm0^M|UNdV3CL$_KUnpq2Q@2}bTWv~@LDEb;=hV!Rd?fugoI0SThd z4!3On`yxI3EM3fR4@oZkeAj;huvd79>-SD_wZMZPv|TTzh=~X|ZVWE61qY+5b(lU* z&r14tG+YT6ss{-*Rk(SKLAnT<+GpTxO>1@v&EW?qBZ->Q0)$2y-cFFL(g77LRWt2g zlH}4vq-L=04Z^E>=Eep^3)8=ZqF)!kH-$ug$b`6O$vr zjjU-5M_(0rHYEfTXQj#jaNgJhYaS93W=sNbu`B$$3=A(Ept#*cMwL2P`73lPq0gWY zuX+X+4qJ~FLQhNb&A?>#T58$!XN}%a%I;$k_q=N=JD+o|)bx*a6Rw6pv81g)D$D>Z z#V%iVGg=At;jkQ=V^k-A15mfnN)S=cP8*HkTt^~@E7Q`n`p$v5O${85rca9$Zc6P_ zN+=;0<~p7$aQkVaYCqNeItHQO)_TV%AfyiB8SLU6xAS6si~4J0(7C7vclLQ<>96P@KCdl85y4Dp+=nM9Hz_(g% zA;(Uj%npuRBvhG-dbVFtLh8WfM)Dc9C6e2-8Qk5b(Ds8gZvb;!dA^s2Wt3&htr3Lf zUJ7^sZamxSjvb&FR7867C{t5lW?43m+_w?LpB7HM8l-NcqyG*7Z_5STsehG~WK0~I zK@lTJRoSg*l4KBy&+s#>D5QQ_nl_1{KQgF6%8pI<;&ih`_bK>3XCMJ-vlDjCf|lWu7y&i3)O5+EJ2diJKys7~OaC0UqJhj@7fM zf%T}oHXc_~btyfwh?~GiC|8lvhajg{C*>~qnV_|;1)ea)E2Lo8FmA2DgaFp-);OIe z`HZ=A1+&T&MBR3tFNk;2cHEla8begU39AWSB2#HZV}Y0ATJb$4lDbCBcA>%-I1Rnc zY5J%xJgmNW;ScrQV%mW~U`k8WpAyRQTv?vb*MPGxdD+ny{>$NKJ9l3AL<@GHGou(6 zo1<}Od}VTD`SY7+#ix=m#CVZ|@puT+@XW-*;JGf2yB-v6uP~bE1ewS)PyW2o_zsTHZS?eS<=oND2t%U1xjI8xi!S0Xy0gY>JA@3E-l0 zp-`f&Pn46=q(y3^^{8b^pv-^v|5`v3X#ciKu%_WC(_}A{h%8$LoYO z+copjDOY}Jv+(Qu^p3Mc!kd3z2CpvbX;ON@`4T7l{mzqR7<_+Fd|+Cizd8U$U_2aiwII zmgPiE${6Cq<}QmquLpKWz{m07@hQv|MRO$PDwM?@gu>ftx&>!lWpIygy>On#|8d-! zJ-p^iDZ#zr;=?7|%WXmz!ENwdB!I@P@Bk%_CU?tpmggj4Fs3wiF2cOsTsAw{Jj#W+ z&>y<%gkV0&{}J>#IpJr*(XokDMke8xU(*=R&AvH0&xg5LHtC+V5a`D-tXL|KPWRb`_~11 z8#DD_t30otn0VXmf>syatkVl$(vKdk{Pt0CTZ!kjQ(8Y1yPI-#vSgsnAO3dd*Didz zlXc3@F$U>;=hjXKpGGFK%-y32A$j zA(UmruB9spU@kS9v78PdHB6rf$^w%djh@qgm~yuBI=9U#df4e*RhC7G%~X;vFv3Qq z->RGMn(5JPlVzCE7%dA^rbRDEUs{zZOqui)HphBt7N$2VK|($aOKv(DO-hSN6HoNI zn?ZzT9boHqRHsy4=P~s<6jvvc%SCiOECW`m*Oe#MA_`UK9`!#vzpkJ4{~zLCKa!c} z^c7P*Ylqmm@Q%X^B1_;)l*#pUtc$w=iFFu`eNj;@M4^?9s4R)ONG)(d5SlR&H74K< zxdf4)3?$#TstqB*2r_swEoB?_Nh_2I?$caWs?d4J*J``grS$oUO~ zeS1B(sGsFnV!;sd=v>gxQlB$Mofu)*QN+>FW>_Z@8K`(FL;?ss5P2!-HGO~Aj>~Q5 zWu+RD&O7yrLsfV63S4KYPJcCoX&uJM<*_^~z4i zV(sumQ3J9-5VN8+h+2rs;OV1fdGbsVrUB0%vy!M=8zO<*mS`|Ro9@U(KouwSK~1}$7ZqBW4e$eRz1%d+ySa#!C#UJ*oD zzVN&Gji4lmB4M$(Mv?^|U{@Zhx_hKXjM^m^)^HUxjGAsoaq9xCUD$gfmpUw#GoAmT zKBivJc-}%S$Gx5VspWVnb|F?akTfD4C<(L)YLL5Tb%?AL1<4@D;vl5Jds!UL;sjOf z3`r|WSSx(Z%8~c%%gC@dl6u4PX!n+3l9<88CBu1Mu_>+rQIT}|4xPXTvCRMF|uM}EtGcA|cYhV^mub#x6RqgM>=`^}#7 zK7_J*t2p(TlAu`C>-}$7#)eO>kC7@!l5LOOWC>7=oh0n5)!y751pr5Y0qM#D@mAy{ zpy97gt$W9w8L4Ikau;V24xVt}TLSpwkQD}0{rvmD2jPg=dC2w-X+Km z?o(z8KZQZTIcVQ9t_-VuidJh)YR2n~%w~B4sBM{cBA8_G*pY!F4@Lru;bS{=JEJYC zUqmBMWWlZnNb(jW!RRySr?C7EoU^Gv&!_Zpf;Y~c#QU^hgdYu{qSKvtS6J$06^&vc zWmy>O+hG!R)?|T#_=Rq4K=Golri%yFPo+q%Wby{1N8u5Y$65!|p1!v?C73V|*7+8E z&)D2f1RmH`-%1GoUUx81{cH7SgUFxH=n@|_5JK`$cFqcGn?SaQ-8!+a@4j}5e^rdV zu77v5<@R&Cj;xnv=`0PCn>Ij(T%$7knBZ@>2%?aV3gfwBy~JJ2h*nS+DjnNs{y?jr zNc|Xr{pSfHS)U*MQP_0+3!lI66Z(E6Sjr>$1|G?K0Rw*@D83)+{2L^Q6pb*JjI|h4 za9;4JWL2}E(Vy)L<}dH%@$o6~PeZ8UE1BK|&KQ0k7n7TJWEkZ)-J5wZs8?pWBd|QF z581E@YeYCTWcvg8w_$U!!T2eUdI8NBpNKk_2hWG<9oin3$=UfaDz%jT;$q!9e2=s? z8q6topOMd}Pga61p-KqmQ1UUCQDh8V&A__O%+|$AY=^o#V6eV9RXv=ZF1?(9fYa_o zUF$b_W2x!f&8~;$$jf&!TYdM)#AVtd_=DT;k>LSjKwp@C@A|+|aX{&VriRtp)8^}h zY3CF)eN*RIldw89^Wtx}{rIWR_j*AYoLcuI!nz)) zD7ZWr(F@L%$kUxH;b&3!NRzu?E&OgLM3q4xWqc3j|B=!^kJ5h*Wor*0=w5^S`)1JL zSQe}_p3J_O7h+A43o86+%>Hx}&k0mHP0H@fkmWh42<1=m2R7TD!Q1KZsSuvjqy9she|9ZXn(q z@0H-?Lj7AoVEnrE+pw+D2!}t_!c;d`g&u-92}1N5D9CQA{q3X=@F%TmVo%kmG%ApA z(VJq_j&u%y^lPtM(jbl0AaFU2moi)o-c1@ay`%&419Tzx9|sui z7D(VLmHV}YF(>2Wr&mD@Nk{2cdk)O%@iZ)|2a3RjI!|3zxR=`tsFA#WMKIY%|GifK zPxYHjjsNX%+|=5HcOns5S4xB}D*prmRm80$88Nh-)ab)RWKw&OpP`d@510(XOA6b+oh}3oJij_T zjmh^Dm_^i~fUkjc%G>gcE4#3+ll6tyfapdyr&*+e4gV&U!A$S68c4dG(*yuX%0h^- zm&aGr|F@+v?PYU#S`F;NK16SntKy`D{V5LVlof&pMri17)Gr$!yNkI z5EJ~!>rIgYu<`c%YmhO{>xsHz9X&=4^#OuByGSFzIxhTev3(i2wI0FVy(^4@E`HtE zB7{0dFxhDcxrpwric3}Z9Q~Gtw3<=ghLSJ3>H&F2?URZS9J=oGI%o7>>ZchWqC(`s z&O@D7A_ZQL6nL!7(0)hfyXB6Vl?zyZj#Pj=z5{xHad+gj=$|H&fvGCD4dlb%`_`|P zTeaFCODp7Mr1(lO-HZ^`AT8aI3}HKG*y$)E!@x11D>(}XXlFd`7`&I9@!8LwX%0?$XXd6|`}Hd~oRYa=4A5ETYju zx5PT?n$y*-`sr0nVkC7pX+UiE&+*6LJ^(Id{sI%{WY4@%>2rdssG!i*A9RCa7No}E zpG4-fouaJ~gAzt)4v82cb5Zf9yB{?lWs@rZG)jx~A;#=@EU z)?B+2BU-ri%k(*h)Kxk#{5?VZAuy!TeCo&iN2Z=1Qn?V)BRi2>K z^ov|(6M3ZAuq4xEEwk3KnxsJUXzDxaFRe3#_6wv8Fg-fHCp|iVE~q0ZtgC1@O`it) z9xpG3bcRw57-SS}*M$S{$0^8GVTHwg1*9Z9U+*1D^P6Jpv;{>5+$~sK6vF@{Nf;(& z1vBd1tLrn^&is6kTEn~MVSf`l^A#OQ$8)CvNn($Xu+ncdy?*MWLD=G>)vC2_(vQqiS6c>j^j3613iN=i) zlb$UkRKy@wSpIAy!-d}Z13QgxFUWB~D!$lcS4MkpCnEX?{oJX$TV>OLIEmJKQ4EoQ z2?6uS?B|oMo8t5qho&ra(z2ZX>Qa46v3yS>ZK8%f>xR5hRc__!%a!rWWggx|!`>L$ zLwndYW|vUT@@w=BGl3gUorSTi09lp>mN#~LL}-e{L+HfKGo#@uC}?pPH55u~eJ{oj zU8?NL+~7>C)kxR|J3h+jFV%N2bFOPcX}6JOxCf))L2?YQWZ<}8TpGzDumG7j5>i4# zF$glF7%={d^DhcPzHX;e1Us(LE_x&d1IR(xn<10m%qaF|%_9zpyYS_~!Iy*Xa1R^FjIA3WD4}BRmB;+?+XCHN8sD^C6twfBvo76R=Fk9=kC}sWRuz3S&8QADoDmtAs;d?>-J>LvNH#?k z6kU?@^C8j5SdK(fx;w`4b68ou?vSzw8Oq<~DsqrqXNLlVfKF%20VnYHZ3;+JW7^qMc3-f}PoALAAa>`NGTBRzp-C^oe7SK!w`kZl$`4+^95Tj?yfT^-e~7_u9Gcg*3+= z6I~%ukKFgYK|eKL3`8ZDo|06wS>dBKsT!{aHBJpT*>1H$ul0%LGQwUdw6BB?Nj7LY^Q5RYm=UlFQ*)Y-We42}yD1UN0AC$0 zi*2Jc`=xai+))v!OQM^6u}d-+#2T43bCnv_YI~%{2~Xyj{=d|}FoOf0%p-X3PjtSW zqOVSdDaeR1kI4vN9pda^!SBm*Zqow@3aa^;+(e0x5V8qkqiyxYv*KxCAo7KX4W>4e zdx1n~9}czzj{%(40sVjrDZVG~rulKeuQS4UArDa=qnMtp6z99@VHnStpiG=!~7VMBeEs~j6>TFok3*pq&+~?x%V>~)3b6y91Bp4 z%Lm;#PvpBRgOW#@G$kvZgdIKD9R5sAgkd)-1}ssZ(}!pJ#Ub0xVe)a?xWL0S~IAuDppau8e|QyP8i+RuooHae2h3?Lh*qUc878E zx=gzy9wD|z1F%C{sg}GgE0ID!r8#V&jPBX$$g*QnL|=XMq5nBlZB!hk*9;!Hwe~l6XWt zO8o$MnSNR(W&nOO8dnNaTX(T#GTLxQJ8=Zr-%`S2UC+w80l;R+3jZLB=;=y4+_DVMOqtaxxxE+U`&z`dz)9Vp)>@yYq#>0I1r_CUh&2mLI5( zzUiN$$YvBCPflSZoJx+<(>h3{I43(ppK~H$ITdnP^?+v}GB+!~x5?d+k3#eGt2yZ< z=rU}j?g7<>h)08{khWgcg}<7DAN-@QCIe#D&y`Hb8(PC!OeC3*FA!bc=3!(uva%Q- zCKtnrCxl)S7oJb$bNL4~mcaO!wT`vVd}U~PGGYg`gUoA08uk!Q)#sb)kqX-2L3vYU zs-MKP>s6(jjsc$cRh8aTRX5pZDhg82BQx`41PmJ};ErZY%Qknc`t-J)a!M1Pygs>GfW2D1d9H`_4I{|A z7-B3zX5j1&ZNyyItpnPL&_M?#hK_;mK1z`^ody1Ko7zM1opT%*?K&>#EtTT}0063hNtM0Y7H=5hS(JpBr{Z}i!m6~E}m?KD^t+0A~MF`-g zV1>Y3JztB7wXdJ8-bp<39FOO=&a=s55yX-Sypc!2U))#f-DIA(%8Exqj74e_CI+)w zhP`r_<2)`lmW_CgXT*;3yLIS!@$EZ=6c)_Z((ypZuffXMgNdzhofyx%J%ffSO{6-8LFFc65G zLw`?^y;{}zSO{ITF}gBMIk6kWxEMp&<3X5VIjoGq5V}fCPMA&TudB({d^H>Od<;!- z=ds@x7w=3&J&T{JXBKn|RzXBap``Ra;Qr9Y?M!44B(6u{g$!alfC3I+ln^9G<0Qgm z!HBXO!CXG$Yxd^*YVq^EK`(ALi#%CJ1K@~+>AK(`Q^-WX_6~-{3kFp0(<^8`aw||( zl{*@&nhNFoG{C*@K-0K@*p0}7#ZVZ!Aqk-klv`qB5!H@*H-pwIN|Pp);VbgRMn6P9 z7}i8}(q@(S}rE@=%Eau1H} zAht|;QpY5(2|t;3vZU<`#RrCW#&gg~U(M^C#=CymzlKT(kZc%M8BvkJ1WP1O!CPsN zE2)d4IVBkMb|cyPNI{8_#OTWC^ATUmVVH5}z^Jq78MGKK(m+B6X zXaxD(ZWP&<1i721P_NR<2h;wR+y)ROO zGyAvTy*m^QlJ|hpk`4~TQIAANF0=x!{(;ifUrX!f+m-zs!rxl|gf*D2wn-V%c4w%^ zVUg`(CD~OLJQCJpf4n=cVUrIE5a!ne2Wx8tg{$EPS-7LZ7lREv2;=GX3!n$KyPSIt zGoD(Jop2X6S7n^1wVy?B^*Yl-$~lB2znVA|Vzmc|PCblA@ObB&Nmq2#8E_g5pm^?h zKCE;i7K|%@8AoQNOxD&4IA>s(GRS;HOmZXBlsU^Ud4ZkDxQj3%QNb9KFmhmiVsBX( zJeP}P;=G2On@xE#!f_%qo_*A-uq|^^1DNnJ_NLXl5{f*hafcY7)Efd2pgF3yipzC9 zb|a^oXE+uxu@5NSh-e_2-DHW~M6;WmUN{EHRi7;epxk)_^V083lVpI0+0AAf+?_8lz;3 z{-{Y960}aOMp%x?3OU2kUO{ZZ6Xwo2N#OU}IqdW#JH)9hzM9PKqwN5bPyFA7b}X`8}^Ed6%`aw0hQhi5J~`P zp#=gWp!@x1o@bK{;MIG-H=F-FZR(jbXU=pQar6q90%D2?BG#xMPUo`8I-|Iy+7;5s zVl&elf|G3xoxDOUlTBnLg{5V~cdJy)_9WLCT(LUG1k|l+)D8}wuMk(Ra@*={D|1Xm zy$Vs+HSv|1Sfz0de^j8nzg<*$2ARE8Ya*8IQ3q{2^;FxS*Z;7`cOxq(s>6mCGohfq zN;CU>pbx;$^{6YWlGG-hHr{#RLE3mT@{Z9QFSMWqNuFbwC^CD%b)a3iXQrIT=p;1AsWz7|8`#BPX?(_a(oM2Z|wO@=VlpixeA=mQnfn!K6o1Im|&2p?!gbDD>W%wtybB_9R1~K&QTn7 z)W6C^e_G8`Gsx)=wac_;gBJa81DebADpzhA-=Kv`ZV=Dvtmf>g0-4z6)rfnFk#1U% zy-v*Z-Tfdb(=G$}Q=dsLM=} zKvnktvQ&0vRwUb5v{`fuj$p4wHb1Iln8|ec8RkP8z;34Wv(ph$1G#PJ$TmN4DH4G- z^;OW~5HnC5MS^M)(ZRcFa4nY5s?8_-L!h*z{|3_IrX@^V*FzcTtj)d|vE^$sm4&Ux zIfJKa*{Wka#RI|c3hBbnkL`65GW1r>I6)JG#Ss7iiLfvLnYI-@C%o~hp zTDxJzc=l7gpYwL=c^*O6MJgac%HL5gs$WeSlYadaLsQJdr-=jgym8h1=ExirivSa3 z;P0wUD^d@mNP8-ltB1u2xIwYc~cPmz@uXSH0Vz3CHJ{p^m zDoo0aiRlqlkE7$F5CZZZ$Js%k=k{Iaze%FoJA%ZgIsz6_)-p#NVub-5{s>Fo4IZ zZ%zGQ_X0KzsYv~9n$H!>G^Dv&p(p2aR|=MI(3s;%sy3vy_tmJRPzh2imodFO0biMV zm6$6WQx*kdGCOkDW&i7PZR;w!Z_3wT)0}H6A~&kl{BwO$bUl4_kQG)Do=k+C3+&^O3s8os(pufl z!IGS)QZ_oe4bune`)hK>FFiskDvi+%#A*t2z|E|m1UqljX^1d0g+WxKBOnb;PY8M& zbF`plL!+JXGwnG9C%2|0!Y#C}mQFL-$WFuN{GjxlN-gTec`6V`cBl>3jjzn7Y7NVl ziJiujlVJJS`YN8oEMxVUYVoxa)!<4Tx!grZm1SU=T@b3=q&(Nh*49T9>not4*$sxJ zaPgfvhAOIl6g4LcIx4lOQ?Ghd{c1zX`gJAL*I0CoKsk1mMtVRzpRZd~l<6#WXX#Y6 zL!vEca0w~0N+`{KxW`WOu-)$@3kEVAWdvhGs%+Y)rdsCE2MAzVUnIEYi;U*d7o&CM zI&lGAKgA!-Bo2L1&d=G;;Wj9k8ifi<*?OFXnmY=X!@M2`W$F6kU*a(mo-K|{X+jaQU8H8RMGL#IoF+d7%;Y<57bF?BOs|O9MhO15DKS zwy)-4O$-y9YN>{GgY*G&t~IkBICzsWUZzV&vsFhmUmYf{F@zVz06=0O7>GkjHQlTU z71%;DCP)`aAf^sl6mrrV)zDvq`5e`2cY;XhYZdfXT??LGO96q zNe3^X^Ba|uB_+%Yi_urhAD-3{t#^i2c$hoN6iVTw$cgfZ??!UV%&{x^Gm|i#KXz~p zHUs8*1E8f9WaU8cMevD8)my;b;AxS><=|J5)L9~J80c@)0nnRuSuclekuPWm ze=%HSVVuaadY~mBh07R%SccnW__gd!us~!DJxOaG7s=x}4}bF3i|mU67l<5YdiCL( z!9?&VcuVADny`PRsPZR7Rp4470ki= zRYYAjR8;rxMcuGp)GgWIcJMfOSJXJDKCTu>7Ijw)r~`0&e*;mEPXUDS_&cIrDg$`; zQd@8hz|WWN1W$oEqUO8_z5(k+&BOo2__a6=v;y71AW^F?6P1g-TrT{m`h|94>AeR}>9l-UXV}^<@dmnfKd@Q=Qb6_r50=9r-qT9rRdZ4A~j+;eyIWGFT%fO9b47eY>Ec)j6 zL=W8rj*1?E|F`}O^1*MSN0$Nh!NuSjK)fdSL0!>zY!!X)e$n?atMoorRm^AzE)o6Y zY|+ot7yEo)Fd9q;ynAJe=nu0+e?|JfBK#$|S<(!21lV0oyf=LX)`EQ?Bzkid&=j-> z*MZ^SK|s9sy({`?s^~MD#pC-{Ji!5A5|{yA7f;1^!FOPzcxt`^=7AOBX>dwBO?Xc3 zE1p&tfga!%@nr4-XT;N?B4`BKfu4YG9j1z>%XBasd?ubAmx`zF1VC7Q-vr-)U&PbD zn|Ox&CZ3_?Km%|wxLQ2760chy1K7P4yLWoU^VpN(d9|x}KBPJX1V7iNn5w;yDp3UY!f}fNIIvHyU0Pd^4;mZ+%O!d9dp9$W;jl&D&7Nz{dxNz_I3wRO&rsH?A*r~&_y zsF5usYI2T5J^YMBJv~vPUK=D)bK6POH`OI-x%plEmPBQX|k#d>8)!wt(Z}Yf}a^0Byy0`NQCKumG$F z2gP?q6kz`K71+5VU3@*}i|=~e_S*yg5MTDy;=5%8xL16)68>$s0%rc+_7s>SzWe%# z?}1(7oB1_Z2Z+ye#O*oa_8Q^5mnpuFKLOv1?@Rptav8`I-@*j(E$I#Ld+jXnn)q@@ zif?C4@g00nd?&|9wE9eG;L9WG2tSK>5+e^&!z7jK|iNrjaBQeiE2j)u5o7}&7uf)9j zBKSmNKEv zzOndgoD_fkQQ}X^5PzE);_t9g{9XChyTADR-zWYNe~N$N7V+QtxcDDT5dW+P#sBgg z@C{fEc7o&Le}xXOS89N!pe^VIvcMRCKd(Fm-UeTR!_~*PJ{tqUJf9??Rf80|1pYrZ=!u-l7{ss86;AQYJ z_yPO^_JPyl|GEsQ3z9*H5-b$)e>YV8-_HWCflt6y6ls{ zH6Kc#@0}9JdRzjx#7W@R@e-JLN&MwzZmq_68R0%xY zM*`2zkiZMXYxYeNczK5e-l`#iIZGw*!BGj!{ZRs6te3zKmrGz(cL{7BD1qJhdx)@3 z68F=%|Ff&adJao$Oa+MzPLtTm`4U@avc#r6EU}kNm)Ohv65I7siM^iZ>{lgrR8NV$ zt+T}5^RdLvyhUPPm?g1qte4oijU@J~nxKiqe!WLx7jBT)CH*D#=Qa|%;z@~J-(F%j zj+59evn6)trxLrboWve}MPiSCEwLvTOYG^f68py}3Hk>}u*?e*tlma~_2){k`CAf9 zuO`8ELnL_F6B4}oOVrz&C3y1+3HJX?f*VQ zUVi{??tCG~QgduKaLI zDB;g#-cwBbrM6>i+qNb2=h9st6ZIbu6aMBoC{YG_t2ESGq(KDYitl&Hg=i6FwYi?* z`W$@+e~+em8ukh$;cPIj)+`J)N*a3_N`|?DXf-Od1>`x;p%vV3^|h2Bk^{vka3rJnwlDOcZ0W8Bo%You8zd?6L}`S1$u zzjyd%t_J&w*FVJu@}##^JR7tpPwBDgMsG$x>8Ki5Sb1;W+=FlAAsydLb9i)zf&rZ{P(fU_k6>)u3sxkGeCbW-p5PGHL-oC4+@5YaR z2+wy?4LUW22DP|W&_4Je5?!UbE3`oTmbLd4VLUeo{rTh>Px4mBFItPbD@bebKF;#7`EGdBl;sZ40L{g~Glnn? zuRMg^xf16YAk95faQhTAx>;Iyo`D8GheGUHQOWb3%f}O;18~X~Ws>rTEUoN$Tk7i> z#PfUPz}?c6_?6>Y1^;V!PP=jaoNE!`)DDGgco!g_<`Op(uYvHs!BfO#sZ+} zKUZ#9x#Y;1YUj|vDYI3=>9bed+H_DhO*w(r8kNFz$ZrEpTnt*kO9s!wTR>eVP1S6v zV6StfmYNH1z6>p&zzu*74b{icDNZU`)PPO~^`NW4bo^NbJ%MVAf9v5>pdTe~3|^J; zl*tQpZ)kNb&({)%uHx6@kgEpscxRA8yaDTEo172&F!^RMjrw{8acd6!7s8`Ikd|%u z^AYj;1fIVYzn1d;UA`N8^Ld_6dgdb=<`akc#CbmPpAXIFGcZ1%_|1n;u&3^jnyQn; zs#~R;8V)UHNJXv{)h)=3E5InJ#(jlp4*UDEv39_ zMjkYjc*<#Q&|LMB+Mv0P#-AACdOPL+c66)jN$>UOLjkK-Fku=uhF_*gbx(Dv3F7rE z?7UB05=eU^_}oVt8zBSUkrv)R;KknX)mZ2;nKUk;tfj$2>$pEd{V`B7y_wiO0ce2( zAB)kdS~~S0Zg-S}>0*0sm-C!wK17 zAS<FleTPj6Z3L6S6+Bc0eYnT2ne@u?EeFY5Q^BR~bNGGu8shy$ zAPqDE#xBpHe6C?TW4I??_FF5i2IiY_W3J7?h3<20^@p@pRU}0%l5~)ayiC>QDZk}; zw*auY2fUMlE|j8bN*cV~NOmw%P0PUZX2>Vv{Uem{$87H@r>%g$?w==$zQWtko9Lt0 z55UhNS29 z55Qb2V-h2--e}X7nI}_ezqFDTQ1=d%#ftKoD#Vu7E%ki8L~mhEKQo#=6+MkS>7G`c zu~OfAk+*}lpLc+Fn0K7_1@G(LcfE7HUwIdKmw7jOw|Vz@e~-E#szKEJsIQ|IMJ z^)9T}v))bd?C%<1F1})XmH3+Rb>f@GUmkyRe0GDMPV3Vdr`w!vce?%Qj;F6;%*UiJ ziJYCS1`_i#?D}Y8zF6ma=y*0uh&`Mg<7w#?Z!K?v_hN5HZ-4JC-qGGiy|caVc;EMa z=3VIh*}Kx4=iT8w6jd`SA?ib7{w*p^A}nb zS`eBW`cUK#FSx{c`=87|s-I!Z>W^|^J3AO@GJiW7?|5)Wr~K{tOZgqne?R}1{A2kC z^N;557Rle5e@FhX{Os*(x3Ap(+4lFhzag^y;q5PMpS6AZ_Ceb(7s)&2gL7%(zHChX z6dXfCSlxi$O7}ey%>H?*Gm^@>6X%I9O#owQo@t)>p07O%J&QftJ^MWeJV!le$O|R| zGefwE_fl_Xp1e1B$6`*#*E=Wx znYz24s;|>e>o4_meU~1j2kTz?RozA3ps&)s^}lpi{f>T9zpZ;{MuzCEDoZIrLNgJz z5sP{=C?RI4btd`LQ+m1cPO{lm;#L{Y%#$hl7Tre=V*}Ki_3xCbhvZ?7=6XtAX5aBQ zIhyNJ`9kK)A~74}Zjf9~HQpk>%06=cxSW#HO7svtLl4y-=nnd7{iJ?TKc!#Rk0J?v z(+?`Yo}xe0H|mGjJK_;NhaF8X)~ECr`hMM$C1S1Fmi>0!h{HD;>uV^_X7(s`4$?PP zDzHS{Y_4ZU$RXL!3C#!PjQk>hO0-Nv%G{0Y z`?r*nM_9b~7<>B6q~4x^Jbyx}u}49iyu|M8&#++n1*s>qSsU=IG?3RML0*-H@`fa` ze?b%WYi}%XF`E?X(hMQY8X!X8AeB$2y>WIVGCu9{Kg!BKj_cAT`6H74y31+T}(57 zkUdA%%FW3BfwEWssZZ(R?W$2YO0#63ss6rR!R0e z?6&NRJ6H`-Lz&JvN{vxt)i^a?O;q=?NAADXG&S9xZ2FLT5Lx+@dRpD8MyqEy-sLg% zD7)a#QctKy)C~5~ounqHd)Suy67{UQlwEb(tLIgwdV%G0!xS1Rvv5YJ4(dhKk(2y7 zsoAQtdRbkjUQw5;SJ}egHFcGGgPnTcRR2QoT-XwO)Ozeo#x)kLqW&T&+@T)LOM({lcK{X0=6aRohj* z+Q~VtyE(3Azba4%IkKjZO{{;{9d#!bOaIOs>k}+iJIPKOAw5~&rpN1vdXk=?AJa4S zwfZIfy#7qTrr*==s-xT1kbgLic^>eb@-7GDrq$W3SPX(3ahMMcMe$z1PT~P42x1$+OqJ_tH*o z;@(HmW?;0``s0%e)mZmFhWoJp{)qcn^wL$XoggcXeeQi36_1YV_)}IgJU3HhYU%wh(iVrL9>fPhK!@645ehmAyDr7=9*RJun9oLJq!;COu|bfFynwyWw0M;e(kWezyDOXZa9GgY(%pREi9- z7f&YrX64Tas8AAv5}(fJ&)MN#ZmDGaGPKRYFGF*a3uB<1$)C|k$~ZSwCI=0r9Xd~- z&YD2V2NQ>pm^s)kq4yvgv$6PdepgQZI3b%AOeNuk{V@Dt-kbQCRGJuG!`&e6CRn-~ z?s077a2-JSBe3uA%{ZGD<9{6X9ZtK3I;#uM-AIG68|ibGQa+e8pH1UrQfJ_B?)kzE z$0m#VJPZE}cl5V(i6h1iR~jmtaN8s0&HY%Y8COiBFb^AQm{K!}?_&tlK!}WvV z-fsBN<$rW#GJ#wZRZcrCQ{KD(r8UJ zGPM~}sVVj6X==6R(vn)Og-W7^U#F6(sfWl0YB^IcrZY0#S}vltvvnmUwv801i{&fT zM%vQEJj&thmrGT9IAu8P12fOEv;3(*kW7nvj@-J$zUg|pOO6}E0x>0vs zPrY>`I#hSLnwqO0wN{o)RQ)Oclhgp}l_@frS}R*#R)gerbeL<50_VlbN7@gB(z|$(L%1+^BAs zJ?akHa#Ph^XhYwkW4*{e`S(~oU>cf$(E}bp3wVfg&P|Q~C>p>_R|9y`Y6j0x^FK$e z{{prAOVsc$Q@g)P&Hg$y`G3yf(6*Jek}I-GSDr|W4}Lu%$8 zvR`XMH0{Q^iEhg20?j$@u7yrwv#1oEs?#|5E`t_mE8W^^=xuacP9C^KU#i>F{^(%z z4CahqrZ3l5=qqV;bg`|DZnR9Urqywc?unMsi#AGcS`vNr^|VZG)HmsVv?#K4e?34C z)Y-P(GK6-*EwnXq^l&{wkJO{kuPdY1S4Fq3j<#PDeY&>3RgczV^jJL(J!XQ{WQ$JJ^EgKpPr`wO`GU`+8Ph)hxEg=FlNwqI$w&6=0p4BgnnGl(ofJT zd5ZSaGx}Nm9J|OMvIr@FtGau3>`iOQ& zIocp~(A~Z0`0?mI-_br`J`nALOZ3O|otD?1qUC=qnP^#`>v^v;yeW(?8G$u!MftH)y^2WjZaA z2U+a?5bc_NXi;~|BK@QOiLsP>X*opeWqP?@p;yv}e4k#;DC3iQEt=P1^nQAVX|>d& z4fO==p2um)WzkA$Piy9Rdf}d>1@pQ*O}}G|EY=&)>2s}?zZpG$i+q8ezs>6VJM>Py zOaH2O>pgle+w|<$1^R$K$QE9Q^$}gDkLqK(NFUcHXzQKSztgfitXYEV;B_Hq)xyh|aiGwtLF^+V>xwJw7|S z{qU>-qeqU2Za;GH$PwAYqT6@M8Zd5bc5H_MLq`u7H+)b|_QXJkfg{Ie4H%F;Vyv&@ zfGlit89g#}4gsMUNXXG$}bHC2(1>b?@c;KT4H-9LaMtK?!*jC6jg9W+L?E`?n4GLJLmam~ z+)IQP=^4Ij?AzFD&WcV-aw~6766ot$Vm&3fz3*Blv};R+cCDM-Yn|jqT|0Ux5xdqV z+IO83z;z`7_^%r{G<$URn4x2Q*9{(>H9kAGPsvALAN$JJ*E$RIEvC0G%b{(S8(5Z` z_gUFa00T<=2n;B3HPFW2mu(&Uvh7nKyZC!_w(DKCo9Tl~ym2!&E}TDVS`6!XOGCq8ZmI_0AG$x zlP{-)_{pgqyg9_fH^NEoh^$c~$BZ34a@3G)--rlnX&Ihuh(FTFr;(-dX`~aw*pU%j zG1>`fbc7e_Eq!C0K*pRE&y?iWQ8^<=3?AbhYj|U9iKCR{Oy4*s%yFf{9OqJHoXZ>I zEN_f+cw>SS%!HC){1b|KV}ipQlS)4NCONz@**XhMF3uLupnij*K)<2Z%&|mGOHOjH z$?i49y{0I(@jc1A*pA({!to0G z?}ne^#wR5l&#=Alb2$CsaNPJNx&9});U&4@B!&G8$IlHf$&G(T`0D!K(tU2}`rkU7 zAFh9`U3;zF__lZH(%yB~-f@>6rbGMo{%a{BSwqJTm{iWaGeu@t_JBzaWi#CnGTjg| z-4HssK6h{_-oZ^tNB4b4H^h!^Ogp;%baegc=*F<4oAOSs{Z6j^POkku-A4UpKz2r?=lz-FTNSd-1w!r@k$HFE9}1;ewrJfv~WDb_QKEM^oPT74-L-ezrH4y+`%M41 zVh(rj&f;)4giJStOgDrMZcID4G40?|sG}QVM>oWdZcID6{&aNx>FCC=qw7y6*M2A0 zeka#{C)a)_*IsAW|IV)c&aVB=j=l6`Cw}S4j{oUSiR+x1Vkykk`qMen<@|IfzC1hr zraL8*XD40hPC9sY!b^8bEYD63r#tE6*~X)DrpqDePKoBdlk@3r`qP~f&U?2+I`rV# zjekeWNjy6omEO^&hi5lkj%483p?A7V$8<+h@ZRC1beFE_oovYL7NKaeoX8je0J}H)=T%nx=(6l*(D{Zm1PsIwm5LL?7`Kt z1y{@VTrE3rwQRuEWmj)YA2@ zrNbskZq=Rcih*>uqD#;0RCZL>Xw=~BL1S%}l(UbcZO)r4i1=)%75UjbR~?l-dg#c3 zrqxFaW8j53BM0PkXy3Ee`Cnf+AZtvvmBdNyJH`%~gf2b8zKhKsF_3nXdq2GR-X*T( zd5B}nDv5KSTSi9ScpVu#^IWz++IF^0oBeDbowS+f^5%J1_Sj+z72FpkR)Qte89S&< z1Z~C+syKMu(43s?;Ui1jS1Nv0;)As|hV~hDp|J_qTC=Z8togIYjHN*{HhZ8=b8>P< zbe3b=+i4s{+2(4d%SD+k0UYi~NosF}KuVIMR`Ki*3U;>cQe1^GDKp(aDrejn8;QX1 zp(EVeGQ-E^j2${EXOctzfkVd+9hmJ{%D#16R*t4ez)pP@8Gygb=Bt7q?Uf$%rO!4+m?>GvvEvyRq9k% zg-%U!{7Q8xnwr$!Z(CLoE}RM=HQ6b#scvH+)omQ4x{ZQVSM^JERlL;HRzX7*Vr5C> zKD4wCWsBqIJQhbX(rRYpLrUaBhscMF$cOg!p=@yyBEO|YJfuXrN^v6P#4yE)uBBE= zW(PB#zzSJrr#>7)F(^WcVOLY-u8^#9| zW7(ZBFQ>0xF>ZVnW>?h}vpYTVijnhMFmvd8SB#)f!koe^a>e*LF{i)$AIV#gbj`_A?6)`>JCoz9lzl)~7^m%6NEn%*n2f9WUPS)5Fj93I1x6Nb( z>q@zUr@o9PO{d>8YFPH@5%Qun-?8Sj;aQ`H$s@yu4IjqLjwkVxmGktx5)e@IMcOMf z3GG$AM=H(xC!vD5KFfQPt4W#|nmf;iV5V~?i+yiF0mE@qvFqI3%~RNKbM?WO<{D#X z8#;b#sLbRaU}#D>@HCS!0PpO*inupp?@&H|Ve%&NH61t}UW#8A|2}JV>%_AHyncNA ze9X_{;nMhJ@p+;Wn$%~ddHue|Hz^apJ^pC??)prQi$B2KpYbR8{Tcsf{fVL)t+A<0 zY&^F9s`{%EauRZyy_V2Bp?Cd-{N~l4XWk@CO_*w)o4?m+dW(#t^7WUN{2J!f-&+5G z`8BJUFe_z+xf9hS!-m|v!PgC5OPJg+KA}g$o{g3@*q(SYVZZ%NXPDw-!jty*S^~es zgoKY0J0~nm9Fq86!ivN-33-VR7@G|qY4AwGNq#pZ3~JzOP`N>T!l(vG38R?2%Nk%( zm(rkS!YO{65;is9_%zPpMpyvU@e$ve&B$jt!ZO6WK6LFl89;iR+vLWSWMp=Uz}L))Dv?skV3;Oe#T z*OII8CBoJ5(Dx{sdQl`Xm#|9Z6u|2}MCem6w?`nMQj-#K4O%xS!zf8L*CX9(ZT zZ$!jzK5=}f#pL4O)E432v=$HXd$Gk#eownUlgiilIsVP(`VPMjTYTpJ2)$2jQJrE8 z1=Y}Y&CdNLuSs6h{=JNxl3&Yq&d+=~`*+QkEpx)Z^y$v8Rf4@%O>bkb{f(KzfE*K= zi_(fNo_6uHOHLT`;%Scku-U5D`F_c3uDYQ^n^wJ2W;?%@&zAh!ec!!myYJh5@A!VU zIcP;nyYTO(%uDKoe_T^GF%>@RIf+uCjWrcL4fLi089 zml2nGQ~1|%srg+r#r#?wXkDjuckZgUzPt4&t#@Bk-M+sv1$bPA^9ro?QM zR`R>}RPjAAy0~WQP3fo7-%nqceyYumHg5s@yL93ef2MRv>2mY3lrG_z*lQEaj^?h* z?u;kHziYp5c_REv`7>oN_%kE!qA4j=4U%({bJLzpiR0HdrEf-O=a=>@@4ip@K6Rq` zrHnVfh|Pa84JPwmX%XawcUN` zpD9h!E>GT{yr1j5tG`dH+;!r`-LGGjcA@#D+-rWrrjJYM zaUx|yvcZ|;Gbw2)X=xiSnbK~2yYU?ZY5hgt{D6^@gWC*d<~=plKl}@wWDUbvf1xd* zEoZ&@M~|UB{C?-RJuC@JI}07)%s2kbHB?w41xwrd-=9Le_>rD)_@Up7>?XWZ{Fa24 z*!%OP*L@fIo?jlngQ0`xi$$1L;p^FUZ1~4ZWO&$~4S#)z{cniNe+vJn&`&1r=L`Rz z(2G;J@6~bpi}5j=ur55Xn$yb_}+epe&OfPiO>oA&dp1E ze^#2p^bfoFr&k;Qf>6OfwSTrfOaI7pKnr6hbS!l2Y`c-qhGy1YZYVdjBZOx9-~ENo zgw9y^;p?{0wn!gL{)e9<^P>12WhQ)Yu7(b!o+IcR=IK)3T|N)L3)A0}Me{CnnxD&m zVLOr6aQsZ#&zJu2_eeL9_u+8D@6L{Y`2F8q&*nR0-vdp`wso zzhK>LG;4QC{vzXlHvP@>IqxF!&z48ziuD)S5Wa>8Bg|LlqnYU2*&9b>YSA5=m=Dfo zH2lR_)0r=4+79Ngj&nK7tm!=e-^)lS`i&zMO$ec1&kFaydOTN3miYYNctpN$KcD@G zQbYMdr?wI*^gJ@mmN(wLS=yc9f%D0a&>qKL=yYlOkxzg1?cDk?($)Xv{a?l4ufhl& zKHrzn*0408)R&Sg=d*3zQ5&CE=9RcM^rmjN;f3A^(;xreFYTwP8_wkl-u(@qS^o>1 znltpi3CESFpPuEvX^R!tQ>DNCrzh+Gen&!t-i`48lhUqiTkpJezp;nhaVc(cDl(m+ zy`kfwHHM1FlDF)2qv2kT+ZMQ+8rQ8gmxoq6Ek5e_;i|`PdMHYwlgB`|MIp(rv9asfBYd-;MTG)L}*Cwly?4?@!wn8p7T^XcHz=P?Nd_Q z{xkkB4CiGD$A@#w4QUh4ABNVNr_jr$HVA!d?_c6>eTjq!Jsx^8^r-!^r?d`c-ktqd zLWjsN=aXNN-_N}_8lQO^*4m1t-5TDNDlMT6@ExhJ<@7)?#SDM`XANnQ^*_x0R*T1t z;rCKpOifrAGNBqiG``yY3@eq3^W@z4V{h5HZzJmxld{k{M@q3GkrL|OFD`KxTI-at zk~e4HA-T5V@*8T9@65N*TVS@m+l+KuK?z9ah-4|Nct5>_})6wcE;b-IgvhVa{<{T#>dp zn_fb>;WucFwtZ-xOXpMAM)(?9>fD`8lj83t-z|rSZInn7s9TB$T%YzkoD}xKT&ekt zKfh8#?KkBr^c7mIrMBgl->732hrX~j3#g0Sx)Hkkh+W$%EAb6!yE*(6`qFU~e*WLC zq~kboD+v7(>E7W5S2O!Pocc%`rSFON4u>|jespMNq{UhBFYW65Po-sB*bel7islc! z-90-FwEeHYp8X~CQ^}ii+tMZ9{;%(lP=%HciuIFlI!US3uizR>Me@n$YgX4S zDXUI==o|RarN5D)RtA|~nRDrXe(CbRrwaZ3sI3W#+xI0hFI;1l_B~vmo%QyYaIV6U zd8NOd`vk}C{i~X|bnYRWZ3~imz}8yOfVO7oNEOXOc@6Hh_(RV&kRVYLaauC{Bm6cdZ^d*il**COA#zS932 z`RCT^`Jsi*+hQ%(ErF&bVq;b;QFyjIYV4Qh!*H2%d~*G>wLkH<+F|6E()Xo(D*eqo zm82>1+u5Zp@|$yCy4DYWFRAsB>&3Dr{PpZBx>Z4#-sgNPrbXlzqxU&~h7-c~=ers% zLFye2)BSvQ&V5%R9nSsszr88p|I(w4f9G2X2fO;Rs~=ik=uX;l&-TI6qjJPsU&MX* z_B`**{yYD_f5=y>XO)!Oi2BjU&o;&7U@=cu+wgk9Exov_0cuJO_B)~VV*hFzt>5_z ztq$L@hSbjt1P)su^`_0`rZub|7Tf!WH)q$*|Ipcgw00i3@E`4${uo+U`q?~%=7isc zDHwjXU-RiTM-ss0wZrd`r1|J!uUYA`mTzbE(}nH*ldEm*nfhe|{Y~5Pce`=r=tBR* zJ$7yD=CAA$&wSf1wD}z_tF-#g(JdHXureJTmR7Z^?>jofHnfZtraXju{&63c;`q;d zYmcidYtQGuO;?004#zn3a`D~!;k%M65^TB4=~bP#R%`UH6cSNHe#0YBhS3(?;HC{m4hlv3KSv{AYT%aIrb`5f_zn2XkDQ zWyI_jXMPd$UUGWp49vMHXP}w=QfmIsQca$)4)Hi^G0&b4VH5XX(duuWux+_RA{?89onzXgm$PuL*FoAZI6bcT8Hwr zhy7~zGHaup$S}0>Vbtxzke|b-Q|z<355s&n;5kQwvLMD@mF{Ck8c1Is^3G79PiQAP zhgQE*8cwVIcI-l{C8n-ZOKpv(dCQ1}vSTHz#Fb&Qz_VaBcmuo#$TN$1T)zhB0>fz8 zN!rjRGjTj1^(-^|l);xRaML=WX@7-5*FojmR2 z$$T40h_@2UF~}|Rw3(;PJZ-gpev1z#U-NkSGqi&k9n{k)&n7M=JQMl``(!xc08gv! z(?Jsho^p9Q6FN*>%(v~9XPvy=Yw2eB+~xG$#K%0FktlODBeLddM&`}cj8L1a8EH3H zGvXVi{|%j{g9l09L*NNob)3;k`m&%_e=q>NMr;c(X^whp*{9k#Xt`YO`U1#|f{Q#{?7+pZxY&)00$d!##X_-NZZJrD-mq`1GXEPx>}66&l?|-4Z0OMp7-d<`PCjRuflD zJ?O?R2WF20_9c+Yq{Ecy{lsAfF<3$PD|AnIt#@diz5#mQ1p0w2 zc&9%Y0LEiy0(g>my$WStBS+uhx`1|6dG(_ic~(DJbCoq$TXU_MF`(92^B4Oj*P0ux zOy6Y9o%ZW4Ywoq?K5OnbUx||``OQUTKMNiKv%xI)+1!W0tkyvpppE_J8N`g%LCiVk zyJRE#vyuJT$o_0(e>QSI8@X?R+|NetXCwEsk@%Vc9`b747>x}3myQEf+xZAE?(jK7I+_g0#4v2 z2XLlMb~F58-^=VcP?K+8f`tIhVBlh~4A2U($mO~f>;jylG?25BTt75*Yj4e2F{JVa z>HzlVz?`TjQgcnxlc+x@>&e{Trf=i^cJ_gdBJFo#qP;LPp*kfIO@fkW%q3`lxs*g> z{%qyQGHb4}=2|nm0)92-M*C)yHMdxEt2MV-)6PFqJM8^VYk!wDP2b;9g$9QY`>c7` zzWL3XCymJ-yWiSU@B{sq$BCCQm)O`XwdRjTc2Sy)xyqWWt@(>JbFIl3BjFq{Cgqr! z9h78acC%(LwDi4{9kdiAijk1x?fVJVoM=KpVlm4@Pqz2B+54$Rn?ib-Ss6el;LY;JgMZbaGK@Ur*G6zbMH*jGQs=7x_QQ0`{` zk9#%e;z&GlgPAU*)R?QRx!Rg*O+3j5WBy{_#>^LCTN z`c7lA%lVIniloMvtE{=&nrp3=y3U&GO^u{BSd*3)Hgm1H(dveqthw39Je6n7oz@jO zLS61?k*2+~3*IuOqfr)^`8n`{F`1i<+e6kYwB}K39F zH0BaU1;3??81rYtNotuj*I09{<-c{-+(>I`5BXutE%xhHYnoQ#UX^dn9oF1w?eDVY zZu`dSa-_p>`CeM3lub<&t_JL0O)JZjr6*6e1@Ui7&5NttP7^a;%m%_n8V zfs`4upEbu@n-h#lsWbik#$091UDkB8xqrPg-!(j|8F(zSN=Qg6F@$*h5y!9HGQ_0m0d_0lxEdg?dTEVay_9FyEgiD!mJZu>OGoXxrDG~i#mgUx{l67UJJ{7T%B)^e z(Ps6M@|)F5?9ayPB~{j}USdx+Rxjc5Dt=YX>Lqp%y_%grtDDtJ?3~8xCH4bl^%8#E z&aaK#39PN%0qhd9k_lf}$;2*btYl&jPgXMFtJx3q3bT^Q?%w$Z>!Db~gukp|Qa#M- zB{f@8sVQg~!NXsKzJP~~xrA|*cPO34{Lz-YpRD<_k@oPjF_#YZ_9dtm12y_Bg-Ns*I{e_pUAJ@tj&|w{N1Di-mA|pSM&z3=T$?b zMKgXC;Kx?*-sP;Ts>1$ny(Equ+{R&Z0=(6ZovLQCr_(I>tBc)1xGVcwea(JvKd}p4 zU)jk1azo&&J?tx3#IB`diie}_Rt;4nxd&cIlKbF=G?@l3 zwUqneh&J+oUF-HBd@@=dHhjVkfp@Aq<>3Xo`geY$}@1tQ}V2B zi9APX`jiwX`V~w+Q6GA9m5gHKz?g-YvuIzMdwPzzH}&^;`pQnxBhD_l+)=+#TlWn8 z!kHFVaW@$KXefOY8aFHWnrrX&;%Y5xvt~iZQ=#8!W1H1;qmaaXLL2nMj52t14_XGj z&?x$t{sEqL@U)AkFL~+{T16|ah*lhDI7xp-Ye&)28&AIuzOZg=7OnnM`03^SKAw)@ zVh8>f**80Rvxhh9d9$B>v_7G&__hw;*3%~3fSvyIHHLjWg{vr@HsR_tDfk`xyK%Yu zoVUxJx4H*f2(iY`jrh3oamn6QJRGs_9xH;@GbB` z*IeA?lT+I`!{Rrnd4zo8d`QWnKIjhyfPo;)Ehe0!gmZ*&ju6ff!Z|`XoN1^6)X+Uh zS1+jnpOt~n%4kl-;FJkYZ6qzGA7&3}*-KjX(bC^ROMfRV{oT|Qqu`kd#Aza!1SW&q zz^AOZG+zt&x}C4v`MRC2+xcqp&qu%9EPU8S3X13*IfYJr8s9zS+k=Gm5PfNW>^0JT zI3Hp#XC(~fJb_`HD=<7=@6I+}P==zm}Uybmq34S%iue$hE2fr@B zuX4q<{!@r)*fO*nANqzAoHYH1#IYj&R>a>5_*)KsJa#@?Xr_a~Q2LjK!C8N0%ao$^ z*fOQ)m#{5MucPEufDjLnS21p01>L+Vi#F1OlHH3EQ^L);__38d+wJxM9cJwyCzcWW zo!Ht(NT&bH#3!=<>>#23W^EqA=6YMsGc8|l#zh`3wpf3WH`qLm%`9|`{$KzY2sj;$ zoZn2&ZzktAlk=O&`OVg59yar^nTO3hY;MP9E;e(qnTyR_Z02H9F{4TY5AcF0-~-Vh z2KYe$#NvmMgufVBMXF4%;IG8-SK_#vv~MHr+u_%p#PvY2?akOeiS0eu4)-#ezA{6p zJ=or7Q)c|$gWpCD9>@01vuqb&`vA6&VEc&m`$u^C3_N{E`9T1GdSIiM)e?7?Wcp$JE@C~hA_NUQzzd>)4@83);0FOfO@dy!6BkBm zkB91pF17IETyERyJS zOk5;b7bc7bgpooRjc`$uFq#lXD_pd~MN3>{;Nl`&)GBsS2^Vp=sEUgiT-3(J1-MAW zMFU(U;Gz*O{MJPhVVo}=^bJWiE(YRa04`FC(_vy|ByL&4sO6@^@5ZVnE;4YDj*Aw! z;0#7mUh%&U!|Yl7-^c2oyC_4RuZFMoz~zVGEyE=T;F8@DoNoG)O>OGPpNA>W|HRez z=XLcnVeKZYgM?M!hGjU?lq$oKrheW;SVlwG1|OTSQmKE^+0FSrT3fT28TTT1ADQw2 zTG@x}j{Onid!Mk+z^6#^B3nXoc^bvs+FfWUMWIg!X9j6{gj(ridXG)bw2d-aK)8$1 z%VrYxqlEn-;XPtqE+v+~y5(j+G2Mp``|x2WF2Xv7=`%0ZF>txQ*yRq_WdSbt;jp`4N$=!3jR>I%>Sn@OKT#y{H56C-^I3+MpP=c$0A}|NNkOqLwXf!Osh%f4(*Iz z?ZxG$;xPZtrIC=OU6vy^PC}If!pNGO0e^r$L5PzX1GLb40puOIVPtuDJjh7oW3(hb zWxwm?>}arymTVF2h*O*;<(G>ogPn9&w4UzLjdIwWvVIli@Cr)q&Ct0YbiRplIGl2r zi7$%qH1Gf~hyp$k4Pt;F1i&at#CXD;faWt1Oaha^ZNT`l4PUn5%Qk%3hA(K1AR5E~ zKL`NRE*Nk1wd4459AA#(%W-@;E*1Iu9Xx%Cl=UPZ_ClX^&Y$4=BzTKlf0r^b2TkyOb|U|P5tVoPcf@B2qdf_3hGWZFo$6glH#2R>j z7eoOchz2phoDzeMY@dR>$wK<|rvwh*IuMLP-x-grX1oQetbi&jpvnrUVp?j);J7Gw zw-DYfgm(+!-9mV`5MIo}><YNWhZO6glmZ%ffR{eDDBuIpAcj*5dy^A=kkW%`Zw&>*kfsmAT}|P` zz3?HYcK|Pl0zME8Vt^kYVc^4k@Zmn_Rsh`!pj!cSGkm!h8vP25euYNALZe@y(XXVg zkdz%FWrs-FAyRgTltH$k^Xx1y~7I zfz^P1T3HL$f%RYurDQAMRB71`^1%-9|0A2(RS6nt-~nC`1$-bH!~j1)J0Ty6$cG~G zp@@7aA|HMwA2`(pi~(c8IAB_K6VMwbf=OU9xD8Cf4I>D02Ve}r$Sb(!G+c8Ut~m|Y z(9gu&mjLYwM!4xMwxiqR$42tQw4A~k(Pr8itH_U)FMW0N@;2iaq!0H( zdWq?`!v_6!*rMN#Q#k0i+tK?wjy}5@rpJ!n<7u4a(9rbN(R*xqb5j`Y zJ%#Ht+N08Srp{Dt8AI!)+Hu;z)vALzZ$NcqB)*sG%y?QKb(tAYQ&*VrGKe`$7_E9T=6095mXieTQCXZNaG&aLP7_cA z%vk~|o09})sKJ~a@Prxy9m}AzmPHPf1LZ*lP!UuDmHAc$R0Y*Qbx;G;1hqhIZ~>?T z>Vh~>55$A|xK98LKq6=eI7JgqNrdK!a7rSak_e|H!YPSxN+O(+2&W{%DT#1O9XKTs zPN@o~B*H0)a7rSak_e|H!YPSxN+O(+2&W{%DT#1OBAk*4rzFBDiR5{rTu!)GfGfdO zpbPjH=nA@l?%--bKc!p)dgA6<(2M))xb_BpKwoe@b;k|hMsO482X1B_Q#|u&NT?T>Vh~>55$A|xK98LKq6=e zIG+@XazZX>3YvlD;6l&>B!Og*0#flgjcYnFXwCH^a4~2D+JbiA5^yPK4>Caq&=GV3 zoxx?`a>Bg=TnVlMUBJIUSI`Y~2Umk0;2O{qH`jt*++WAFH|PWUg6pZRZU8ren?OHs zbLa>Z-3di^LQ&(s3_4s{WK}s(9#jAoK_yU`Z&g55Pz_WEH9$>J3)BV|fI6Tqhy(RN zJgATR1keB^f`*_G?;C?Apebkunu7~L3y=hoK?+F4_cX5Q#G*CVi@?R84QLD6flI)p zpgqV09Y9CW33LXRfy)W^3UDR33UmSg0$o8j&>dV2dVp&{PuyG!dU1ap*WREH=nJk# zqq_mz2yO!Xz|Hh^#xpC7bV5<%W-2te3)~Iv0rx_?`)H|7?B)x+}6;A*(M%R^N}T{uEjLF0y(#vbrm>`Wa+(S7fz0 ztFb+&3N~XjuNkM5G~<+!W}Gw9jFSYLajH@?b|`Gdd4kOtj|p%NVt_LR1Nc&flaT_l zlJ~0!Z#DO8z*?{ltOpzTwh?Rsn;8SjC|RkC-8zO-~-Vh2KYe$#L{L7f(+{RmY@}I zdKOor51iXWKLwrbc5nx{6HG1!SzY-6z`q}&wyvabKrUK0(cR;1ZIPGq&)dmo*XPs4wfee%aeoU$w5wp z1|NZs0Vm0zxt&6DJB8+U3eD{lnj2?U0cL}txt&6DJB8+U3eD{ln%gPKWrjs2dS&Ds zwBGbBnE8bzGgptG*F?@WbmpLuZgiWIoV}))#jk+}ctI5KfoKo|{2%}_piWEB3WWPe zC(z!T2quBa;5IM?>f8?Q0C$3^=YQwu5}I!?vI%&iww#|2IZm&BN`N63dNT~@ug6FDHLA{#g`WMEbXJs zZdR=q0Csm1v%kq9a2Ol`W|r|$a18uaFVqc`o0~vCkVP*BBjtJkm_ons9l-Qb-HuL_ zhfb7-PLzjEl!s1~hfb7-UXzDjlZRfDhhCG1UXzD}JAi~cfP_1MzLAH%k%zvKhrW@A zzLAH%k%zvKhrW@AzLAH%k%zvKhrW@Ao{@)MaS*-YAbQ0?^ooP%6$jBP4${V5KpS@f zZQKR4aTiE76dMEvgCSrjxCIOYIbb*#0a#Ojq@725cpL5EZM28C(H`DLd)SQQ%|Y_c zLGsQ)^3Fl>&Vkbk;j}_Htq@KtgwqP)v_d%T1e|sZPCEgooq*E{;j}_Htq@KtgwqP) zv_d$o5Kb$E(+c6VLV9ZUpjEVnD+=L?Lb#$3t|){n3gL=ExS|lQD1<8t;fg}Iq7beq zgd%XI2{~hi6?`YS5N4x$z<)wT^0UwA4F~s?9BxoKIl(`ka z3!;GU|CM$o@KIFR8n1ghgb+g5x1`hESqO^=BxpcT6xU^+sRbe2xj5Kux|7?Oeazo$FtLSfYRlHYgh)Tvwh zcb2+!>o#Z(5+JbhVJ;(%Epc}{r-NA5h2^aw`1tY;IFdAG2 zE(c@4Sa1ax5AFgBXqosESP1R|i@=}3{on!cAb1EY1`h)hotJ_~!DHZY@C0}gEaM74 z#dJA%8ms`%fM>y9z;obv@B&x~UIh8HqPz@Nfxm)Rz-qkf8n70;0p0{};pN`ObH0Q8 zF7MypW4exKf(@KQ0r&)b3O)m$gMWZR@J~?0e*Oivf-k_A;482Vd=0(<^h<>)M_|ek z{6{@(IfDPF$A8r0KkD%x_4tp&_>aT*kHh$n!}yQG_z%+>eUw(sBgESy#M>jpTl22p z^xl>405o3#(6Y0Qm?}O0$=8#)QmsK7&=#}%jG30=NN81bhR4{nujuwb*|x_Fs?v*JJKoe?9hJkNwwU|E68?+lcj z@DJ+lcj@DJohbO$}q_XPa9ES8tY(^ei&*Lgf$=kau%$J2El zPuF=oUFY%i*oUXh(!dkh#(db z#3F()bu+$jGrn*$zHl?Xa5KJe8@_NezHl?Xa5KJeGrn*$zHsw@$)U_!w<4JO2~7Ru z7jmegrX1=e`nTkhIll~6fxm)Rz-sQ?8n70;0qk$5-(lXop?;5P<6G(v=>7H~SPwRE z`~~0>@G1BVd=CBr3c)|YZ_lr`VG*C;AGhHjx8WbR;UBkQA)jF(pJ5@NVIiMkA)jF( zpAmHfMBM;UH$c=4U@_aVnC)21b}VK)7PB3T*^b3*$6~f)G25}2?O4oqqV6uD?k=M4 zE~4%(qV6uDuIZ;zLgXzW@|F;JONhKBMBWno@Ynd^ukpiQ4-NbDyP z`^m0%sSLjUg5Rn?avsxZ^enp>+yZVtUZCy(v%nnY?*g>)D_Z##t^8!-8x*blYCiZQ zb?#w$FIa%QkZ%C)0}n9&Ab1EY1`mTJU@7Z9%9MOtJ!5S}b`h=m1+1p#6~fLIV9 z76ga|0b)UbSP;O%0>lFImal}|@e&vx!2bvE{{j4e0RJDr{|E5@0sMae{~y5r2k`#^ z{C@zp2VwX3u={)1{XOjd9(I2ZyT6CsMX3a>}i+dn@eT3cI($?yWGp2xb?->>`+51hb1^atTZ>fypH>xdbMc zz~ZL%YgikAwESP1R|i@=}3{on!cAb1EY1`h+%=Vd8) z6g&nV2Ty<}x#E!wq8ipz!k46AA*?Heb%n655Z3L6b-Q8RZdkV) z*6pSrMIC(zs-@2anI;)cDH%;E8BHnAyd^yImgvcVUM+luwvR05JF=Yb^g{X;ECLVn zJiG*}dWAb%!JVz(&Q@?|D`?F=ojY5>ovq-`R&Zx4xU&`9*$VD#1#Ln%b9Z-fcXvfv zw3$8*o&Zn6s;9tm@HF!)z%xKvx0yZ%o(C_0mEcA261mLD^21lz&uidyu$mUEHDE0{ z%NtDJ1aE=2!8_nx@E%wP-Y3`ih;=>&8+c>7k?G&SCa@W70e=StEc*m}3O)m$gMWZR z@J~?0vHc5d1z&(K!B=1#_!@izwu2quTTsk8Ubb7pxqpXjdQtKGNUL}<0(H_uvO`5Y&Q0ppG0b%su-N z90o_gzrj)R#d>nW2Jjzn3>>%mDa&fB__|eT-~e$JU+92%&>SRy7S?E$XkDp?Ssi$S zs?sCDD0*Ozwz}{nRi!VtCeaJ)JU!mJKJvcYy5SMf#t9u=}& zYM(kFUy&c7Z>RZ!vbTIe*@rj2SJMlVH@;Rs`GPWs_qg-v$!Wfh93)>y4(2Ym;@T$D zBc(NH1KNUipgriovW~#KZ|@AcfUY0~qyi^M11{hO9*_<)Kql*Ffo>ohbO$}q_XNGb zX`nYa9rOWxK|h(xAzRNOTkl4;p2MB=(5jL{hMq%)o&(!+$k21h&~wPpbI8zh$k21h z&~wPpbI8zh$k21h&~wPpbI3r3?DwjhtKdy`_rpz_cic3Sj}Bq1J;5!z?)pDw|L5U zo7V4ln17ddd+#w_#}$5`tMw7p^B(bMO3IFDpU~_ zs)!0zM1?A%!goZ4QldgBQK6KmP)bxNB`TB=70QSTWkiKCqCy!_;b-kzJZs< zh+M=+F5)8>@sW%8$VGhQB4KioFu912cI!mit<76K#dCxP4iE>Lfq2jyB!Cux-ikc) zZsD1C%PB4BWL9uu%js`pr(xx_^#8gJTn{FI8^AQcWaw*|zCr()H?jY>u=Tg`4ey|P7yt1d z({=cX53sHe!Fuo!>wXM2urA{&@$Bg5+0oClqn~F-KhKVSo*n%>JNjX9AuKM0#f7lA z5Ed80;zC$l2#X70aUm=&gvEuhxRACrzh%aiD&bteL*5Da3X$hWKg|9LW`6~7RFqoaYcZ&mnT2L*zV_u)7j=SHkW}*j)*`D`9sf?5>2}m9V=K zc2~mg{jmE0>^=ay55VpNu=@bdkpURK7l!YJ;d^2DUKqZY=SV-#k$#>d{mKDO(!Y;9 z=m+wkL#l!4F`oI3)1#O%6X{QC#%(eENzFUA$VeQc=(ROkdU<`RO&`;%kH1gUDkpC$ zCvPezZ>lD5swQu$CTd0AhR){==^v?k57T>@^5%^EX|H~O9?TE2AKsFYNA1;5aUR-A zBVv8d7$A%%LcisIsv;}Sj3{EoE5;OI+#W_1;d=tFDnb7pW23ZHj4xufQKhQPYOTsu z1!JNx+6XmGv};AQ;~hF%{DbZ26XfWd z$XJr?s3< zyqr(GoKIZzOw0%ri82C3l8iu+M7Gq5=$Xv(RBO-%v<2-zd(eSp9f9dP*BNvHT|o*+ z1x}C#T)+)HART0YOxDi=-9R?z4tk*P33`FkKyPq5=mYwKeiGSpk#dRW+1Pk)G@j=Y z&vS|Axy18a;(0FdJePQ$OO(nbp63$JbBX7<#PeL@c`gwumw28_JP#7jgT(V7@jOU8 z4-(IV#PcBWJV-nb63>Ig^C0m&NIcIap63$JgT(V(;(0FdJePQ$d&+i)-})AQ30~|G zz875z9tDqq$H5ceNuD;B@nrNA)8*i4bSuC!;92k&@Emv^yZ}~$7r{$BX}!vJUjwg$ z)!eN$U@dq9yvY@cd+qI!c*{Dx zWgXtK4sTh9x2(fk7UM08@s`DS%VNA`G2XHmZ&{4DEXG?F<1LHvmc@9>V!UM?alZxL zawp!h4sTh9x2(fk*5NHH@s^c%%SyauCEl_UZ&^tm&;n0cg{Q2-Q&!BCEw;w4M*lBIab zQoLj-Ua^{|!)l%mt9d%C=IOASJRnFO5F`%>(yA7wRV_@bT9}-mn4F-PoS>LiwJ@z} zVOrI~w5o+^RSPS=SfE8MOukS|i&~f#wJ>=@aZ}zv`w%T^VOrF}w5Ww?Q474c3zJv066>VLDsiJVXam}UcA!1zfQ@tnoj_;M1#|@|AQd=48gKzO@PKrX z0Ww)X3v>h7pgZV+z9;AfP6NGx`3=`TpfBjhzsa+WZT6?O=}mhkTRV&CATSu54bA~W zz`5W&Fcb^}=YtEth2SD^F&NH%F99RKrC=l&1xAC*z~x{J7z?fd<5=fP!1ys(XMe1- zKi1hF>+Fwp9wg5>NSBTy|Sf>~3^kSV}tka8ida+I~*6GDM zy(h8G&RAz>tg|!L*%|8`iggZ%K8<(AI=f+=ow3e5tn*@T6J80!pU zonfpqjCF>wPA}H!#X7xMrx)w=Vx3;B(~EU_u}&}6>BTy|Sf>~34BMw&M?*) z#yYF8&MK_43hS)GI;*hGs#92}AM5mEoqnv-k9GR7PCwS^$2$F3ryuL|W1aqJmcAS7 z+>Lea#yWRnox4wwrJu|?_h6lSu+BX{u}&}6>BTy|zhIqSn{|4BrFD9-&ZMYyCaIU) zV=c=)fxg?8drHb&o6LArP5M*Gi)?imx2mZ=<5xAwjAPX(yKh0h-Rz6uaT(jHQFfof z4_Cbq(c9&e{Fpw4@vj=|oFFqMR+FBwv78sN?JahnO zFNoG3pL$*Djm%F2BW$u=Z{*9Pb!>X~QHuZ&`EymX{Ql@RXV~OBW3tql7p=1(rgtB3 zzv8ardcNykpZbDLUh*sCCv0`>>#m6DPr3b7u{x=%Ii9zp=kg^S-tlu;u5(@V_zS6D z5S2f$$s295sl&F+UrHX^JQ9&p*>;n>^W?IrpX!g)cTp!Jk$TKKvDZe~=u^4wMxR>a z?BwLWQX?bvm`$$z74i{V9oxFjxR~CVXp`I6WccswWA+Qbj>h=lJi{grI)!{*OmDbh z{Db*(js#PT?J&h3Hpy3?LY@%Qn``2n4;BLaTa(OnYm)DZ$r+z=3~!n}dDb}}w8=|< zg}lsG=UJQlqD_7!CVM_c-eUH}{yDoQc@zE$`!au?&l~Gg=iQj>>2h+}xjv?MZgPHV zw&N@UHrZ1`ovpIGPM=M#h{LxuI%!mGtnXQb{22RK3~X{*QcR!Lj%(!*#2={=8mmYe;0otax zX2PXRIAs3PN^Nr0$z@YNZEv*x56C}8xVASF-Uft`zVS+0`MUPdVE)!uWIM zE_Zosa`vx~d)w;d+T?*Yd5BHEASQdb@2+W)<4hmV^}H^6%yt=Flin`h7}MLg1f|%Z&5tChoG1(p;P2R{>BRQlk|8afEaqoz%W6rDb z&%`zJXJWm(jfhg%WfMai|4jbS_~)u&9iO{`a*wOFQF~%eV&9j05H+K@tLs=yw&$5{ z;cR4E_G7T;TJBDx_TeUq)ur#89BCU3LJ#q2A3kL-D-oiphv z`1?1_I-YeN{7>VbC%#c)iCu4(@q3N2-h-cOlCifYIp4OOd(iKV%zIomydujPqRMnTU3(XS!!rOmD7p5isUf1_B25#eCy^{K2OG(I(sCxc%JIJ+V6J**3YiP0qE+ z17r8aey{EECH+R~OiQ1UekapkBhRDWg3SE%`crZzcZo1A+Wu7L|=A>$iPkoz&8hn{PhX_tpFKRk1E<~XKy`I^j$nNu^TXU;gi{ypq>5mURonEA(|oYu5RD=Ue)WLmkC7&)~&4IZXPHeZZeSI~An-kM4K^c{?< zI-XHgpJaU1r|8Wzm!3=&d>c&PUV69ep+C?+=nM33zS6B%308@Wo?6Y=x}B{(Dowep zeP(n9Yrh$t!8%|@XRv-Sqcd0sWmMH#8CCU=jH>#hjH-HAMpZo`qpBV?qcbqBuNj>o zK}Kh2DWfxVl+hVF@h0yw)y2HSQ)x2tg3G+aQ*Ie~AzemQ$kJw1g?=)sLJsd9|A%vC zghWQ_Nur&;75|F!Z_mg+9cYTwxc!Qx|g>L3-}^Co>uZD?DY}8!q!~NCwcSml(n4l zX}-7C^hkS&uUqoz8`puiQm<2UHEr1m)(6&l-b;MMo2HiZEZe|1K^wXLt>{U{SIT@n z{VnVAz6jaNe@m-`|E}}}<0~V^QZXZ^m^VW$xm$a9-x1<&HJ7{9PDZ?K%V^0Ct25)? zCh#uUt=#;+fw^05)lD&;f!wp+s=wmBhRRcXF`%ZYTX>IbM!Zet-rS8mPtCJ>sXwUs z$Yu=OWOWbsEKV&@3y>EozE)Qcs3mBYs-@I?R6UCPxO$wWPpW177RGW~i8Ewu+&J|N z?{PBZ4Q+cpioRc`$$Q%N@}4%**Gld&k0EBX`ZRf4+g{#2XURL;OnLj9C2yZI{RIxxR;tT;GGMIF-BE$c#AQL>ul!XUoNPOJ~$4V;|himhjht!Im^=LnxN;M4D|W@;|1IvrNcM>c%&z^8kV&B)6Ag-<>3 z28)pISNEfTKs{jfR1c~LksneIAum>ok`muz}A zM0l2GKd?9gF;_Ac&iT5WiNqmB($2DICSr0qnDE&rO38E>La=C+% zKCNR8O}Sq)V!TRrtU!Lmu?o4fk(EQrGo@@VODm;Z?#P#QpQlc|V-e***=95103BIO z$-gPJl;+phl=Y#Mk4Sl3C!l%Ql&Y7=Pm3HcWrAo*rCcuMF)8<(QYGt+tow+Rf0Oci zQ>ykNS4z2D%44FBm-2ck$H;c_)Jk(~QVt@zsN)}t99CIuCr$B7B8tD(;k{rghRjFzidI$icYT{N@Q1T@P;9vv-BorI`twmDkr zpC2jB6;pT1(z``-tGVxJ%vyKL(uJ~gpROX^s&qB2`XZ|>UF!kk00)@dTY zAzQB253%$t+2&btoU$DyTi~6a+3zgb0$CRFY}vx;QqC48d=!<7aipef`CCS0SL#;L z+$x${S!=D7Q>7$3qRwQg^SWpzOPLmtW$Du*kBOG%YF{h*Yvsz^D>juU%&&>c#*Xrg zWl>^TI!*Koq#R%@QC+I}tprCa{W?q=Pq9M4ea69NkSvt;aUtJ|@9hRlDr5q~$WN}26Iu)}03fbBO(RVZ@ zBg2@x(9tZV-;LSh?XtAHlwC!0rL23U?4>|z7RXwOM%I>tvAk4IQ7H%M7D@NxsXZN0zH%mEK_Hw@LeTit!H>LG&k$Z}MR#Z0Y z_LTcFQ`TA~oS7i(a*BMT;~na(6wUvL<~=DViDr_lHAdty!me3H)=8pSCgt^}4)$xd zbAyrfX`;VF%G;%!D&=ibE{v42wV6h?)<;U&*XhQm>48#bUZj*Q&yy{06pwdU^oOPX zjYih9B5O&_sgY8at`wiJQZ%zoslPGx>4i_JW}9Qs&&hSZLu%e3HD8wUda0jeO2OJf7n-|6^M~mLHEg>6?^&eSUFE!5; z%_`C4i>AcL^!7IEHW&R@qE8puCHgV4wJ{=(GI}*iG{Z&HPBblKtwpld^`cJ}`9Au2 zDQkx!Q&Fu%^KYs7hSZU>=BpKsmT}U}S*#HKg+^8v%3dxM%{0*nXVgOSUuCV7`YUB? zD@`4%N;KxTxRrIAtd%Eg<;ix&iab0b%TlLkoTAC#dl|*^so5{B1Z=@2@>zT*qf~d1 zyGzaPvTlxOa-`-T_zp*@>qNt^5F1(QWQgWTsgrGF>wVF0FtRR}rRE7=G3J2T?|)?J zT#;Xt?L2QZ*3-rw=`m%FD&H(+>@FjBFf!wHn|l|KwP+hbzDneN=uIsP4o>CC$Z^3% zBga|WrrmVoENk2JNq5fRNh6bI&ni{OH$;4KW;Iw1JY6O++F}RgR9QR|oI&P)0skY_ zIL>JbzqPYY-O2wZHJ`kGiCV@l=&Vv}t@e{9O}|rBOrA9RCbe|(h)&!6L_aK|cO*xr zS<&gB=+ykWFZ)sc=(IFC^+l#SJF@@A<&Gf{y<=Q-%E(%@EGX_#WIL;6|C)#uIYOGOE<8LOw5{aGFokIn1wXDMuV%11pCa zpMj-}=Aj&>Z9-{0ipheSeSrLfrQ$m=KOA(T5B^bo%+f5?^o#ru-9XFXNOZJenQFGm zibLw)=;Clvrw=VKEf^~mFgL@|+cDnJoAoS53irSqkJ2B=RW`pbZ!~0T#7%QQd9`LV zIh zy07l1b9Aomug}nD>O4I_Pti9~^B7A9>a+A9Jy@Tu&(TBlx$t(Vp000WDWeGM6rHM_ zWb`iW)*hX%GjyiDM2}!;0ZZHHwz{2euRG|Dx|8m#yXda^Vm+Lt%V^^`s_K9Ci=XD# z8??Tkb(`sUO^nkmbfRvF1+~)2`c6GZ&OBN31tRTBkMY}IujzGqi{7dki4A+IQ>%%|01}D2} zSxv{$cnn;r|Ko8G-SyQlKxzDz-h`yB35*GCp8k(&e1gN{=*N;hpw`$AcR3TjAhBF{ zglu{PYiqE+mhvUqR82|bGd@}00~UaVv;=L^pL3s<8&<=?a~V@Of$LwYYnV6ja=5jC zb~Lk>5O;>7LNb0C4NJ^)cyxIi-Bpf4Yp*V+R;3P@+SD+kVrsT(^p@z&sPc;WipX)p zmpzensei9!sg~*{rsjNGv)(mw78=gs0fl8)uPilmGMr50OyXg4Dz}N1?3%KsWlFmj>g!OK0>Kx>j@ZW=V4M9%A64J4=bCFwN6B$_CdC19FM<%v6 zlwU@O<5=2o-TRn$fz4ckMNWralE^=6-cq{s`a8W-@6tZK8{U*@KiOC%cQk+(aacwAQjSDf!}yJAt#_zmDT7k- z3wL@4%i`1*e63Z@H%un_y`-8`t~NY0jOEJ$;|&ekP_B*5sb*{+ZqqJnrlzi9s-lva dx8yy?U|C{H^UlX?EAnrdxFi3O?Kiiq{{_lFreOd8 literal 0 HcmV?d00001 diff --git a/utils/fonts/RubikGlitch-Regular.ttf b/utils/fonts/RubikGlitch-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..70c056fd6a0386bff1ecaf675f446246e2b8c6c4 GIT binary patch literal 407176 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

lU9l|J3!Q2M$h9(uj)|F+j#6M+yy4jBb_*n|Q{ z&|w5dDnSYakxvl7&_5$ebbENB=9g<(5bfh|2e=^k(B>y(oR2OLT`!M zPRuP-tFyI6w^m)6JwXTBQvOKNN`4=1nr7*5bJ=z(i{c0oI&Q`-T_P#cQxIMi5Kwxb zIi*xXy?WwRwu% zgft8}7N<;#N#dx!)$CUrA3I)cHlL>9!{)^h+g}5IzpJOY?=QUMl@N$$_Q_SKBA%|+ zhKH*&Q4oxx@1%hziq4-4^_5V*Q0!02o5z74ATiW%>daLdkMP$jg&s z{_Nu-W^jUBK=p_WHbV&#VIFZf!ef9CP0obmse+?I5D=a(#i&X|7KDSG^aVgrYNTqZ z(jt%?NiFs*W2M3zWgA7BYY-Sob*a?o{*r_Y?ww2qyFE-yaw!{%e6hk~a4NQ)I7Wi< z0X08B%&<6P#f)-pLivPMOg5(n`tLA>dgp%m+?;+ERQh%G$LN03h##O3pwh<-%US`A z999aEq}U6?b=HWS1+Rt}4uwP=eOg8?l++DCjqWUE7ZyPf3p8+9z`^Md>q75BXnO>L zEIJLqQ2|ZBl>nASE`gyU-69i}VLr9e$^xh(N9-*;?aAQ?3yT~{8QEiMkvm#!arbw) zV^fNpLiKUFmDohx!{z%NDFCA!GWvS~kWSYEPmc1m*FCy>h}rJ!EKJaWvb8Wp| z!HfGVr-g!(Mv7ign>jv*DMR}1MSjpS6Rj2`(J`nqFBA_p6WY!x)ob3Q0I76LEjqIz61WlN|@MR~E;fV}78 zdZNb0TN6iSXAe&`D-$J^)Z;m{!cy%)q+C27ct9-)MK>Mxdf_!_8`IXo+Pn0RX!)B zQTVVbW4;p5mG348fFbXoDuNt$z~CdeNE4}n7mL8`>XsYvhb)EOCK4c-_NI~w0&|g= zf-J_OC#GIfks_qQz64_VE6wzxEq${pA6sv$_4MK$^2wXh_Y z(0*YKx#8MExNC{gP4v%zUrcI-NNRBw=p{{SKHbJ|Td|QktF1sbT`X+=mi zj;ckx;b-+4D=tFkB2-#X5MTgbEVPp(q;C;iWJwVh0dFTE=CVQ=sw)ih8uC#+)cgSzm<|1%n9@2Y%aE$>E z$5czrt2@}vmA#Ai1_)7{V+Cj{^?=14=2%X$)Fz%!M!2Bl!)1rD&50GM%0MIa1- z)7;)^RcGrPe;oU*M8uQ`kx$jDYI5g9S&cs7m9~sls-5=H_V&kb+NGmy@0$MdOsh;*R-b( zY>V`+n;zdzrJZVJbW6#5VpNq6Pc*COiVtw{i=o{PKb~WrOA+(-UhI|U+dQ(IxA=_- z;ZF-qLT#d62?;?KLi6$`njEQ3gchM%D=CQ##EFoIl(7YXZJTXT#|H;R0xCPBES6ma zE`J2{a3;|3PlDDO;%-hy^z7` zg$Q*sNh4!WZbsa}IRv@=0Cm~~2-1o?J-U@tmm}cRC&77=X*pJzLghs4=q}7!Le2?x zrPHyG=iVd7`Q;+M@H#e`aV%}GI7zY~ZJO*PJCQKgz)R$+f@sruyX;)!avzVYX=es z(#+6T(}%0sRDe?_#E^veq)gp6QtM7AynL)vRWHPvY3-s^#~<}08HkaVBOy4UV8}^G z+>wnV56j-MktCc7k&4HL(y(K(-g=jWu)qG2geXk zP45B3mPBjevM}34>lDwmz?{k*H@AAFLlIj`2g{PwVebPf3_wE8>_u@A#SSEJSO8}i ziEg_KP??@Q^xl2dqDDNV8H8{N3zlvqdZ_ftfXj zAge2a67s8`Dg500tBt0ryJP35x_#pf`*v=hO-Dtw5S0z{aG+Cc%gvF)%{o%)-nw{a zlBKe`rL1UhX0|DPcAHD?V=|x2ZygLhsgE>O3pZ zzWXCx#Bh;rg!}R*&K-8nB!jFEl{TAQK>|o0R8S3wkv-?g*Hxta+}~<(Lhu5w3&xzxzxld35yllkF-- z^enA<^;*T#m9`nLL|aczo=v3>;I(WcPojyVEvoeFt%+W39buBdh@L0zU& zt9#Wn1Fv;d-gvg!K6(4-qiPM`Vd8hZk6A{+S0%sz&_-0_YqOWIfFg@dV^4(Z2=|h7 zw!*0B7tN8_(^w+BctjE@Ne0~*|0HHUfqn@KXwtDn`XetUl0!^v_VZhIK)9fdQhKK~ zv29Kd^tWChn%()Se|PbPQonh@)Mqd4mlfU6-S4YIzkb2{eeGNQ(yz@+6VY@6-gNGZ z82Y{gv-%0TY)^o~_+)vGZ1cz_l*$6@CE~~8c~5Y&ea7}Bu@zY>T_M1UQ$Rceg;5S1 zU%*))omo_>+yfxWRZbCLeINewqdrx*Uf-vL;^_SS01L?}r=XEO9Tl{~wW8sPQ0M{@ zkU{gFUJ!#j7eWy8ST7u*PY6VLIojycNI@$YO)bg03;X#61zA?uE8MFlZ-RcGy3)jF zaVCLHTf*p4&&;Fy5cH$gG&c6YY|Cm%8jT^Ddg{d9gR>QUgG+uQAx&E*hf{(RE7+4} z19OSDM<2)EB@Vf*O06ojhK~^hpI4WvEgSzX_RmJ%mCBshKbN$g_x$h!FX~=2I{xq{ zUjLELjlAorpMG%Vs#D(9nYLe5L5h!V`*KBR%|<6!yKQT2X7$>4sx2n$Mln8wplf`! z<(=2A&eXQvwia|S&FL(zZ2Z2iEN>5mju9s%I+8f8_RLoA)Kx1F>Yp~=i%jq?<8M4W z^0|+^{u62~4Ib8d%o|k~bzk&>@cGYcC3E{vm@(hkPOP~I>mX2{#&DAmaKKiFbO$+? z#m+=zQjGT=dka2&YeW*R1l$W}U@P`0gfwPLi?PN zB9f`7uHqgE0x|3KQ)!4_76)GwsR1<=pT7VF5Cj84x8=5FK@kth+FFdHelkT6P9Vzf zz(;-?KJr~C^nCE`3iMjJ3zMzIbm@hCY?r8EOSZO`79DwT-@i(1%C@wKNVDi!mR2{h zn)3;(AR0%K1*0iS6{&LGC))mzqzhBZ)kb*^iH|H=xn zH(*U}DBzqUdv1>er6r;3Iti!lz$F(RU<=|_wU8rzxqro-f#m~;?vUPD!JPM(V?lS! zV|;JtY03M8>lb-{K;Gs^B=y_@Y^`p2?-1$SIa;j$g&rfhb|)po+v509u6h*eMxkgp z^MW-qh-XBU5wU`{9d-2jyL~!qV(9jHUjB}FpE-RM(vW-EY^6%cE2_4QaJ^YPDxzED zngtPbqIAiNdoEuSQsBAR3gfXvJwOlk4*HX?S=@^>6sy~$FP#9dQxuMpCno2mAVS;T zN7`YJkfYG+R?}cI&H^Gk8|i4HJ~B4hz`8$%NdoWjXk3jNlVc(;QEJUX{_j z=(iDh4cxr2D+$?6=GWCBxQqB`@K;zhC$};PTd~m~qTG-P@r%6x4wNf6a0)|^E4D|N zj^xXQmLVlg$Co&FNu0W4(82N|iAWVahg9KCyW)EdgyvfHC{vjrcvRkrN?R z{;VyPYh8J^q9i#hCh{?6OPPDskG0`4K6adA=MToHqA zs6zNJb`fD@eiKg!A_{#3E{|>$*c!xOBFJSWH~li;e<(A={7Io;H=ng0=Ir80)qBeFv}eN^0XOpC1vx~az0qEGtm?xs3iTg`i;$>+MyTn0y%OlW!=wRwfW3O#@V(M?c2O}Z4^V%?maUCy?v`~QGNdw-IlTs z(7VNYXrE}HWv&e~u9&;8{)f}v@6J84&m6hiOMd;C%i>O@YnJJY9Y6kj>~})5Y`T?B zeAy?j-B(`QO9;9@Oiseq>zKW3<$c%gdhfoa@#SQ?a^h2e^#>0e$ozX|kRMcOvD92i zuXt*FdN(xTv?qy{m>nY8NjGtg*dtK zUEf@)O?jlgaHu=c*u7)VrHNWNz4W06{@|}ZaPX12H=U?VC(GkY`&2XW?mlAnJqw9h zF+hY$kq!6YK2n74_8#c1u+(I;Xs-~9YoXO5jn3O0_12NaWCgpvhj5^i>^4Dj*dBW9-X;9z8E*8{^u!m z$TOt-26_!k6Kreh4T);RIb+lD;6Fen34C?!r$Pz|t8K-5-OE6N{@1tlI5^$hCi57~N!+I_q?~tA<-P3hcmo^CeJ;=|? z^~>5wgYy_^E*2LIa5Kwu9oMnXf~GFaEZz04+pZxIQ8_s4U zdSsc=2s2ktRCR>BhW4jwWiP9Z#1ZUcMET>M-si{9#Qr`{kNZS%dQm)5%e*p1^f*GU zi*$A3>KTSiE>l@{_J+eBzE9N;?)1h{CUG~1^=ELX;m|Wwwew(I-KT4Uiy*9kEJ7AA zIRch9lLHKh1ULa;J48yxIEZl^n?i``K@`Pi^MD|0GGec?*e}&k1K=+JP8pwJSyhbJ zSgCCSIfRY;0|MB(Sg3VaK<{}5fE-EsUu5vD7Vox)b_1o)zoLI#an%2IR`C%Jv(TQqRaHtiw@>e2J`dpXuD(%qPA-eUeWWr7Zu8WuooA{;-#}rcn^8(f0uPWDxqn?%3GK;@o6)u`*lIgzP;0 zk_YA(w-G^1m^CwOu6j8teX$(v^wtR2OBp0ujwmqqz-}Q|h22r2QbhI)#g@@B6}I22#KE2a+nIAO=&v`4LI|t@Bc!{V1t< zy`l`ddcV3&%6?{3Sw;k(yVa_We__+b3F1os4}zf8xqm!2t7NFv!<-a=(ubM?9o$~F z{W1aoXoa)F)~uCZb`o4?EkhV{M9#A`D2AQ>l~RM7-yyHS>6LCP#v(DsqKk4Q);G83 zTr6u6uOsowZe%5%3o$TB#B}e!Lk_`*0vTjq{9L(yUV%++@2=RKHh8V8WstGDXDI-; zf9Bqxq&ws(j*60`svp0+wH)t1t!_!jX4T_2CC7)COQtb<#jtr@%rF9c*&$4jaR(ve zoAAfqsqtpS!8K7OsfF-r<<~~NiT!(at1(lZ!Rj8Q!OYUsXdLbigWdG<{hl`=R)~?H z2F>F!WE`eZ*APpr?!w0pujX{NQ;A<^hOd}yn9}m_@#Ln*)$CY$i#okOUT$4}^~}$` zePjhM3C5A6p;~*94xofuL|88dxYV-t%tVZKHbn4Z3yGt>E!9Yn$GB=`jLhO#KJ~{O5*b%PF#g=yXn3v=RbUi&w(tiHe3vJ2KU(khti27OA9_ zTqRx!sX){@Nb8R*3CT!iM?!!9X(6FsKlfcNBy=z*p@KvlxfGqk5kRr+cLW*YB#hTa zqslM?=*kAl^f+&i_YN{#;m3~eI=`bcMGNBs9t}T zQHsvh$ri>8S1uT{#Da>WFejygC>%i)#N|lOdNZXF1^;){mKTznS-xKweJz1Fa_Q>F z_FnsnTW7nI%A~cCQ}si8v$}WtmfPOn*|tOQ8p(7Q*4mevE`fzw&j!b$x5bas0b+li zfYB0$%PDxEmvl0P>9;giR*W60Ofvd!gcOGVwHfj^h5I7Q(gmMUiP$S1Pu|A%7!)!i z?7bJk;HTdx`&1?k)?;>VL$*Mhsp zUOv11Xg6#fUH+A?{QS=zzJ!T;T6E1vf-U7!4dq`RdoN(wK& z$@qp0<`>tqdWJBb1@TIJ+Wg?zR>zcKW3fM7!dp`}=JEJUkeHh&pgtVc0SacBb8bB5uQAM69{LbFZRw~Cb6j<&| z5$;VpV6pag>c3fbp7_V&Z-qn=_#Z49nU?_>egi)Sv<}DIXOZDMLmy|a&%KPzXHdo; z9s1_bP{Xo>K1DeL;Y#zOg50ef<;cttSiwFER!gcS<3UpHA3M_R6StB%HHwN{|7Lq$ zcp9v+;9LdiOO0Z+-wX=wtXI3OxX<+EHp1(KNDIF~7ZQ2|rt@SJe<2N?q;EW|_o_GS z4d$-Fv+ma#-tqbOu5O(RUw`|??XM5#wywT+{=({$)*?jx@ura*=O-o)pE<2s zD01f2x~snS(4+c8K)OYBv5qsg2izA4t%;RI`jTjIy$!v|X2^~Y{(~<|9~23zB3hS= zIYVuQommNs&O`wYrQ1@Ch=S7HY!sP zV?=F{elC#S(@X!((5o%KDSA~={#N}s*LmmujNbMddfWGT@qx-P{}dg^?Tal~ELITF zOY)Gc#oTr6K6S-E7anbZ)enK6r~hQ#s)i zJ>oG<(HF{S2Xyg8|3u}CzU9HRIcjPvS5(XC!9AG_vo86Kk(m+i<}?YbjZS5>(Tr3J zQ6xANsl#FWX$AzE=*ANZqtOpO5qqOLd{r(3fr=SaWXGO}YlxXsL~^n6k+m)0e#f#v z{}Z4bsW62clOvEInGQ|qmULpC!3$Et;$^ZENubYH0A~(uQNpMsRKM%B=)zWc5XB{c zO4K`eLyd~R@fr3*;W_jH^F>6PA7Ms=H>tO&_p9Gmf0=hT$4U#h5dbRw+Z;L_T@R@T z(HWV>f{*J>(pg-GadQF57cF|Mi(x7RA$wubrwa5s{~Q)SfM7*Wym09Y=N5=3!Aymb znab?;bQ)Yb@Uzl>9$ta!A#*r6s7+Cq7C=8J#) zA5NcMZ9n+_tB-B1lvOJo*>9M1Y~GJQ8T$*qH)-~dq%BphY&~}M#?$X;c@0LbUNUF) z5I^fDlo6-MUNe8mNfS1_);qrR8~*bqE`96W<`Xj`s^gE{a@uSke){E)Jy~98JW;#T zUw&XN>D;pOs^Ode_dmP)O00x_kUm|;1rq72Jbh36XYudFH)X@-s%%GmbKF4?nF}7s zmWkXyX~yCirX{$>+=~=*01M_$^B_{pd*h#o2|8pD3%xxqKWznlr62i;_XZE{GzX%4 zuc=RuF5iE$?v?B!1nZ#SoJ8SB)V@wOLlY##|qkC{br(bnQa@hit0KNy+0%v8M? zQHk)G&%StDTrDN0YM%G-TQ8k>p0CE**WrgHQ07<`qjs44O*m(cm7WTI?={)wW-c@{ zr@v|C9+5VLX^0F%lbjQnV@OoQo@O%Q@_d<4O>`J5$dEfCBrduPBx?y;#1|{SAgVb1 zU*sA1loVqc1QX!YMLFcmrjaXrO*mJtm_P+n#st6(X@liBmFl^K>P2&s7XMu`iRFa5 zeXz1a+Qp-EWoIA8>Uq}qU~h~Wgjo&9N(qp`Vf;C;qzab2O}$gS2PFA;czV{;OMd(`iqaO(oAm>IxHL-dd7@k? zb-kTTX0oMp$jk&&rJC89tgT#@sEOr0N!E_Hbhmp9AJtP}Na9axZ$^9Dx?AFQmh4%c zP|0O0yVjdk;=~q4FTUr{Tu_fklcX_r==5k>A01f#DnFf8{krEJ zRq4^75#JmP$MdC$VA*uCz^nu#$!OMK62ehanPlqK;awN2L+y!!rzUy6!HM=Eb@8s@W;ii=!pqtA% zViIvuuCj8aw$jF!O%$Ro@MATlT4nWK&5*0q$ap;g__f?1|LR zeMCjFG;G1eHB$YU00M5w&)FQF1Uc1`u$5|$So!tqL!Y#A>gIF?&)q4~?&r{zAb6x& zSNc0cpB*SIR!2z>^xrcdt9S0N&rO*o@bDq^74^63+dUyeI%>aLyUuLWWGW>~?8q6` zqzJDQubtZlVt9~K`Ro0F7(o~rg_esTgR~F5<@76rXU&Cnj>YbJ4~U#C!2wb~(NfTJ z8(PrYCL@porT*C7=aPP3NRgxd*=9KEr#k@a1BX0P{u~yEtmpzg=U9_xi4&us{QLzM z?S1YGA4C&}9CkZT)q^jv--dqc$QNBvO4_X)6=$;NBy`Z;>YC<7rLz;|QsxiOUvztW zswA zL3CKuE-iX^L>byP8kRm;4n~PbWoE?1Qad6ZZ6a&nD!l6KB!=9^#g|Mop3cWHvE04! z=KBtBU9Mhs|NC}%>pBkWPgiQ5%*C`8dfBe<-P`nb{Uc%RllAbW9Bq4W?bwO6gZkvl z9#Qo%zdVYnF@4F!4aM;MnPVGo$$X}o94-4}b@j;0PU?eeCyuS%XYLP<234~hZ_N&y z`+}Q;8?$b(j5oz3Q8pa}pSdlZVP2BSzW`1~Bq9O!FA{`vBZ^`nKhA`~XAz}j^c|ub zrd2culmaDz4I;2G-!86~auCD_6cY1_Sr$n`FbQY?Kt#*PPuy+94n*uQPs|K(+;mgn zWC?T=Z3LOdBAVPnY7iNPA-zGBS+l)}B#70%X9NfK~BZ)xWqB$E^r%FXmuk2qc)CsQC)hEn*2q z=Ep9eWk`~q3g^?bETbHWMPOzjOk8N;n%RS7dZDlsshLFqqWWxYp{tl%jmwQ8JYHAC z$M22Dyb>rGziw`*UNKLuN+`O|y&bI0)yrsj6Hmo*Y|b zTunl!65&sLskj>r`Un>33@3jYB=}~GW+o5@XE9$|bJ(A_boTh3AZ;^QP9yOuBV@~5 zNEBo$AX?63lE6)kYN!euGs9Ky;fXq%H;;FkXuJxEXZCtK$VR*Jd@V zaljC327xgiM`m$i)HBl_>>7_+v3jLI3_^*379RxI65x>+;(STs>#^bSc5)!H-JdIi zGD;8y{}>{MU&&5WBq9DX=!*;OBtrITaVha)YymE1C^u#!F_OrS7BGi35Je&PM?o9I zkAI4geG$H7PbzhDB;orE=8(XBad}BgZ3sUuFzzM_l1=Yb*92r`Tr79&T0oVC$d9@x z6fug43B!4HsE#ruLFz?xlZJ^S*}WTPHITcD!CbluRa&zbvrUzl6&IrrvmW#w2|0~G zGW``R)iI28z}t0x`nQID%*t<@)2$cmIkg1(*?UC>JiqMM+Rsf5^*4rC6r@*LLOP@+ zjB9<^rG6Hy{y{JGZ*QO|HIv$F^@1k#Ic*mi)7A9%Pl=4l6b{}FWXz-L3H9?z;za-` z3pZjRwNj8sIz3-*jxv@da4dVv2OLKA#*W(Z78rq}0-5siJ*48?+BLC>%~(CxVV~%` zB9aQ)JBCmk*)zdQ^4!cs7WxawWN(?o8eG8vYmR0;OtU~Iqp}?Ki*hPPsU9=1N6zMD zM`IPmEL`RnIkr$t?k$g3;BZeS_kmGRJI8Iu0Ren@Q`Yg{Dg;ky82@GXK(7|z4KkXG z;+AQE+77@iI2Vs1ERN%l@SAn>l3%=7`}3Y=B*DhtG^(ScGN=4{WM;kD_f0MP2TWtH z>UftBR-yfkjf>M+rg&!_dtVJRq^Y{IVz38mOjm2DoI0Iki2LVc6j5he6WPX0RH~~H zX00|`e{(|UR8h5`(|g?M@Or-FRLeNN0_r4WTHirGCji$ zEOp|i7kig<_BPA`|C(B7i=GF2kmQ(JrI{HZ$_jK=f-B3At$>NEm}t`mi`g+;0&W6H zh+i_Vf*qA>7|bcN{kw@F1ax>RpoJ|Vc)$)x(s=9KCmr+*m=OywLsApClHtsD(2-;q3y!gMFie^akg>y|_!`&+QF|%d9HBKBo{pu=iWx^41?5Ikqi_OrV%qzJSi+hz zz@I+>SD92ej9Gs`L`!MK2jdud@ZaN6`4Y&$(6J)w1^EMTU|gN;+n_`tkXR|NFX=fU zk9kQPKsc~)WM2?JRphi!9bKn`60Ras?Or&nWK-`KF~#=(O{xD5ruyaoN!?k#Vq2 z@cr>s+lg0EG}4fH5k(_l%KA<^oT;T9$HHtl9+`^0%%2%=P+q1_#0lcZ|3&5?p$oy- zRAYR`&%AhQBpxO{6^SWiY&!B5Tv3fbx_awEr_wr=bf!;qWq}{AKS*HL^7i=yStmiU z30VvTkzsE1iYN=FD;*}2Wb(yRB(_-eVmMeZw?e0{6nR4}e!s&5EDEdE(JQmsvDHV% z>B^}w#{%YzWVSzS%Ub<9wi3&y84@ncRDQ)D*Rp~J&npuiQf|cdMd+M{Jh@}TEjA_Pvd|_NMovvaMRTa7Ez$63%2xkIL9^LBkuouFp`>Q}O;6dOT z)Ri7Bs=rg?oehCZp#(77mcZvA?g+dSEWbniBz{bQ9D>J7DepE3+`P%c8*Ha%D_p{o z1q~@iw+dY)?^NnRW~JxSNah|8I!)t@0j@%wNQFOp?z45ax!nZEtC*3!- zTN#NjOn^jd7oc;{HTVrE{Kc_Vh6@9i?3;G5dbibv#6W&0=!wW@f7k`A)R!yx?%3h& zbJE>4Ru;rNA_}xDEhThg#VR>;L{yNHos`Ae0TB5Lp{`K=MH#kc0GDTDx-7d8jv?y5 zWeZOGFO+@DB65;)*^rZvm+%W76bfR;TjJQhLXqs|0g+s@_hnix8>E?2zDy`!rG^%-Mz<* zG+K9g_-)4+Dq10YofUYS~U8a;3%o0IN^mGDf{K+axEmp$}2$`bhCJy z7kwTd$kvGXNQy)yc*NM$`f{8wA!lhc+Zop)pK$;hQ9tGzym-b=1NK{=-T6N6W;@Av-4^spY-G^72EglY=J+ z4>%S0j#9PE8V}J6OO;8!thgz>n@kaEnb?p?i-n=uF%{T48NtX6czEoWR4#zUwG@!* z+zx&&aV3Ivpo#yJLAip1^w*>Sr^2?$vXjJe)^B_0P-4SEgi=4YlS0~01W-#;NFw!W_4EGtKJ|ID_A64T>b=$97lIY7LzOu zJ8sCiJ0pC6AXOnJuCd@GIMiJfXc97$+DNwS9k{VLQ}E-Qf^)&NpIW3Be7uKGxpd&p z3r=2K*DEC|YOZYx1X+}EBktZy2OxAf~zQu7i7M}GlUc|>5H^W9GGqfo0 zq0-HWwlW9xj290hMKVq_I29cW+R;7fk!Y$KVl-REVd0xrJmyDVM4K7|Q<^%QHg~RG zLyr%m&$FULs;^e7KlFk_t?s^4+f^_&i*aXowsg}&y3!fH=)^rfj8RaAP83JWX)u=5 zQO@Gsm@b#L&95)b=~|UBi^Sa3VU>gjcw-__MnqEhW;u}g(ODcx=6T>>2~1>!1Q4*y z@lL(**gYqhfoEqLm;Gf5G8)OJhz#REGYz2vlcZOmSresUaFzH)Vxc+a+#*>CY{_vmzEFCS)e4 z+$%w@4Oeht0}z3PEI1*t3Xq(WBcMqVMR4#d5<42O`jh}XcXodWHu=n=c6gPLAP^!g z%8hj-2UX0FsK;Vn6MPVHhpB`>8Y{4HyRRmV291#r2wEX`%iD&L%95%zQr(!F*4}Lm zU7OQ!m>v;B*IyC_2w`Kia;3jBMEn)X>AM)|xeWp3bLzLnE!r16axyPcBtt}uf8LyA zjZB4n;rhNvB9bh&cp-9;ZEX;gke?NoA+O#{I51hE8GC7Wk?ZW;ENoapayi2ArHBlz z&m|ohngJzASfMQ3z&+vpD3`*sd!wI3Cb5xJBCSBJY^_YvH%9g3n0y5aA^qMjm+Bp8 zSO-OpAL4?LU_nt89MHLE7OZ6EQY-BAYB|3~2R}AjZjhha!`_`FksNGU{1+in(1)*M z#X`X$K&W?){dSdUkY{K02e-uU0WZFWhHypcjnTzen2wGwvdq-n?2<3b#LU;cZL@Qg z(b6J*gv%)4={G{PCz*feYcSFGc%E36UKU?s-bU8ZU^t)X2lJF7%BuQn)oRj_kwmK0 zh)Zo;mZpPBo-kW|+%fTRHP{lC!YvE+awbz?-iW;NX~vQK7Ba(H994q5l>Rb$@W+F< z>8+?29t5wau_`@|;IK`pW9qnO1x>MEr8o>2l9kCk;p3bmgoJf|qUvl#{o%8_2jw8&5f)~pZ_ zm4AFduAnXaxvSaYaj+r_7ui*>L_o5@DNVwdiocr_Nu{vti~eYf!la=`1M;ITb%kWC0|Hy~-^u zQ=pK*P|tYfR4t;FPfM|IP0D*;4V)S#N%)P19P9Og&zk(Z0$imNi;B< zDgqv|5LzofXc6J$P1t4$?%20!7maYxSBO^U@1?39@r{~` zqHQ(orFIDmL`)IPq#%lP@5|X{xVGeKu)Hol2d{e%Z%3fteuYAHlTQK9aD_xlmG8)z z)p6|$J#S?qmX2@>5(SGLmbLllMc$8i;VZ*v7yinX;A5py25Pc$r(TGg=@OunROg!O zJ60y5L*axPZtZT(*JR`>(F*Z=w1vW1mVJzVzCs6=sl=A~y)y7#3UROKi+rL}ZeaAi zIuewAtyBq*Ff2yRRclvw0<^Fa{s?@lA>kFnmGah!PCaSFVcJYC3oBu@S_&BSgD%jf z$~Qxa>)hfRyO`VU!xDC*xo)jib*0|I z=2=PGS!-c&%WNy{BvlgHvl^XrYiUoGPNV;{i4eU30}x~CnGAo#XJ+gcQXP&*UO<=>vEw8koSnGFm}SKuQF7G#n|840XeHkHuTQjnAy zQK`|Wgh?Yz7?wq59o47~lFQnkV-eB#e%bFq#YecY(MP{UZKSiiCKyK&-~r{!;H}|dmEUA7ZFm15?oydzp}pra4gAX|ML2#J z(S!)W2*-|YexNy8K@nx?^K!&kkkRG?`mCrhO%^yO{7dW;qD#qM z%o|R{;uv*@crZFRpIt_&NP>7Wq&!9sTh3nEY$_(wXAGFFm2?@Wm!>%2(AoHS8^nZ{ z`FQ`3e?0jL^48JB2i0tjR~$3S)q8nC@|yBb+%H{xRF~hcgL4rW5FdmaIxZt0V9*>< zd`L+fIF{nQlI{wzQoxMxMi(XB5mgU5^z3)Zc(}t!tLk@qo(n|buT`!bG8Pa;fQYQ zlPxfg!`kf519~eTQ#t~{!+cvH2)Px~l~_Ii6Pg$6x{V>04=+WqZ;9KNyYPLnmeC_9 zWQzd|Q6~N@;tyj2CxH?v(xiH3wE{@Nu;vmbuT~42*pisfpn6N)R)9PUwIe8AB3STF z6lG{0ERfVte`n~u?9I6sp(r23GImEY9fW*2 zDRj5IoQRrE%(M!2Ux*Z0usE|ap9m!U>{i4R5xS(mInhxhLeYHtJtOZpw!=y1lJmhd zch*mJc|G@+wRfH0>FMmYCRf(gDR;ESH7iF789Cx8NT-j9E@d#+)!&^V&9<#*U%zH) zB@-p&wdUo8K>5#A5+vL|6YD*$5i4I?yS#WJdZKO*Wc8~)vwBS!?_tW<7QwaHo8b_` zu3#S6N+ZI?V5u3iC19L|rI!vys|4XSk=GUx2wof3;(M7g;Uz8?nvd#u69ee$*qSS(`xTJ zQ#o?o>E-x=2Um|>u{7*4jYDRxo}1nH{KWk1+|{gF$MWyPOII9Q-T2fkr_u@&R{QDJ zt=->Q{jvM6o1WjUSSpNQV#YAnrY37L$xz_q0OTF1J#l!Ax)!3sI3}_KGMGpeR>+Wm zF|1*vafL`7{P8M)w2E~kL|A{BCsMppgxkSV<*hp@T%aoQeUu~&mg%^}gJg8)V z4Hg3|V%%%7;p;>Hn^if_Pyg1?zq&v=(#G9_Fq=yU`q}$0l=`*d=cY5ph6UjG{`k{aO;{`c}z``l7guknWptCW{ca9h#b~ z4L_k4##fIV9gj!rjT>HZS(4T3lV?tQsg0cO#jx5xc zcExj7Ue6%xnVa@pwsWCXZr0;ub@=cd%#vj9#H4X|93Eax;(D{(TG)Bno||TH;$Hu^ zm1xvkKk6+X*6EHglEpN(PmCT3%fT`;LdHjfbzbI(*@3rJMK32rhGrazD%(+d)jLFn zvG`;o3PkrQV%Y>-vH1%+It!hkD&|3lsWcp4Ez{7*Fj#rNDBLhF#5$gnkPz{FaAxsl*gHVuuhJ{r|=tBvS4|ci0$W9yyfb!PPlvnY;}9LS(}|kr+jxb71lPs0Z(ca7m)(eY>#D5Ws z#B|rO;TU2dv_H2MKZ!_5`81G#N$UddB7ZB4%#uqx9jcHDZMCF`iPWA-lKa_P$gQ}I z{-qgpXK*!M#H)gx=1F{jWv`BNZ;YAq$8_6En6`UHpADA0t-)@30G*Wq3K*QRMSu-5 zNJ&Kj6Qd#lB$^eV*8Sv_#(xB@@5|7}qn`JQ#Ah^tZsS3WW$ZJKN1#D2My6xkF@^_V z>A;7$JJ{+i1!vW?nKIivS&pshwakK9V6DI|J$PF%#=!0a!R`9@%wzs>W{&Kdvl6w6 zg#t5?cZJ@EWh>ks#GkIj+ZhvKSQX$3!mSvGfZGyKJFAzl72#kfjCX_unooIMAb{0e z{nC6|{&b8v>W7s+g5~2BMyFv)VNL-HL;pvE%l%;Em&{GxG5=USg_os?P>h2I)3TAd!X6~tKV9SyP-%RQvn zqxtpR_TQuU!tUO(_%MhJ?i$$&4e#l>Z(H{5*pE`Y>CLZ-GZ*FF7dP~~rpa7`o zP@n#|`G|fu>yx)+>34cCG{9KQv^mWv%NetvCka-G6oZ@ejG8rVCMm^g#RRX6p7O<9 z8AaJU7&Rz9J!Ap=Y=FsxcPeN_?P%7U4sfZlSZYO21`E*)2FU1=;3DD_>fTB)7R-3n zNJU422fa3TCiD;%Yy2_b<82l(KFm>7P3uvN@pZg=7wJpDu5_Bk zi&LgQ5%NWXfiq{iWe&ZYu*XB{Rx`}(7J62l);F3q&tcRQ=Nbp(Zd{xrYKl-{sIQ`% zpPurVY7(DeqNnvRnY*^JcdAq2HO$P#D$VF?90d2_ zLz5UYtgv-tonR6B=dwbn<8HV~)j@3Jv!dfR8LZIorasL|j+o}re`)kAhnFZKk|-Rh z?RuvU%$(V-Ry7eB4E@sIW~4)hJBJUM*D;VwB*ZTm^-n(YE7fAo+(0eYJ{_GHoK0l{?pucto7(DkqHW66(qw1CFHDY&y z@CGSO&idzlaV2NWf&~RX9*_nkNwNmFt{Ab(qDzRK)JBwwx|YL^MKF6TD3;&X-MfHC z3$6A>eV6tSANgvLz=tfq; zHf}PBbB1h*CyxFS!G^(`1QCQ$sl?o|L5UFp$(dw4oJw#Oh4BOi)GY1>=wBf#5S6$L z-3`lC68v9K5>|UE(P6O$eLK2R);LbBWAat4wZDaVCwvi9(KYT7(4qC{P?1V$)!b5UG`Q>=lkk z2h(t{L!}a{AmrB09r^{CI$&}D<Fzd90OJWFlWc1$x&XGhJ=w zlgO`{=}=ZuKAK#tOVN13td)icL}GCh)Ar~6+x$Z;FE#@63^X2s5U$F2fDymSy6sHp zVxp#**ZwvBeaRkw+#h}Xsim|WjW$kHk7c+{h@eapeY|?2F&dTArKcVrrO=+_KL2W8 z&zmMA@yg+>e;}&*BX~twFO0j+le~aB_nwMIC0k$6J?-Cdfv*1xl3l z#mQxU2^;dXsrpeeALuTfb(K}oK2r)d-iKQT*SxR)1LNM9pWYIa<;%k3gw;X~SPvvN zS-7oGgz#U|t>aEo;hlhl7nbCR1QG6S0q8|Yh|46EO330uAy!ML#mz9Jh(3>I1-mC^ z!IGOLK#?e{cwm#Po0{;W|3j*PUs}?!d>7r`1_0r;eNH-7*Q+m-`t0==O8r^@6%N%Q z%6|`0Dnf*0NUim-(Ay=3(Gf?nl|7x<^*+0^eY5DJ1#gpmkI`*rdimsu12s#X&Q55j ze6pO(4I7pioB?yL91B(FjwXCvgMi>zvH(Di0tJum%L~O|ATGsbVpLW3GWL}Pm01O4E)Cj5ij#U!ug7V<+^9Fm8exU6ERM>fu_PujlOr;JY)#xQOl80z3c^`J3AvZ~ z14QhTAQEhrbWeKh2+=3ph!o(Qu}Ab_IxRgSX9Y9oSNc6c^Hg0Gdo7DNzm;JL?+vZqp3Pvq*vMceY3WXx^h)Z}~at zxu-HO{nMDZTQYTD=N*a6fBn{>rjL_I3bpRts)*xCIYcxXmASRzk~{GgsfQ02QB6W({o+hb!;^o zt`h73f0SU_CJTgeGkZHb_zu#Ou|#6Iux}`^Hvbj9??%PqKa5BII1%%S-nB$zZCbBS z;|q+ER+@Fvh@h*fc0DE1btR@RPohu7|BJmh58EuQ>pSc0=REtqy!*b__SW)NRd;oD zS9SGLZFlub(+k+ph|oeKO-mG{5fvlMU{Jw~21QT@K>`XYLo}!tCg$=oqmqm<4jHeE zB%?87W{a|<-gf?#XTap7=M1L{2(Uvy=(>mthBo4YqO1E>LOmQubs=JSqtBT}FamJM=+gDhJzR z|JqB%KCW+l@yLx@zr1&&)~{yc)<4V7hqr~W)QGgf75@hz;b*)z5D)!955^YRATP)` zr&6fO1UC`ah;k9L%nl6UX&^(VC-;n`Z8)1^W_w#qfswf#uC5?A0k}Xh|uz4tMnF-YQ`Yh~#o-&)L#)hnfKd;hl*#pV-~i{p!XYJm`6z za?n6;>d?ac+tQY?9-qAM%};yZ5~g<#J5*sOlr4Qa`sOsb0MkSQ3ziveR|Ca(uFjnC zj(E2aK1UfI>?FbV#*tGy+YI0z$dV~S9ls6U(ny$@i%RUvaKJ_Ua~3AAsYzDQnC5~@ z!Ep@RPqBWbTzOOd2hv5+UwNu}Y<7OV@yr|`+Gv$;0fop~_Ra(|NYN-l%-Y?oQd9kE ziO12{|I2E&9ZzN1BY=*eCFnO%+M+mG@s6M_?eKh78fg<4g-|2!{W#g~j| zInpqst$2-PvM5={s8`gGo1a}a3Y=6l=J@f)UFq(j~EKmnTv^06E%gkCziixDGq>GFV9bU5<3cp+cwvu3Uc( zo%#n>MzQOl)(EB?fE6~iJcF36JR{2y0&-4xfDZD<@>0Y*adTP_N6}TnlHHp_bb~DE z0Vcc`4-(TH9l2jYsAN|f{Af9Cc~Lu#_y1ssK_y5}lEPb>gH+p6xMp zVc2eM^iR#q?+rG4^_8@e47m=x_KF`3YpIpzz&qw0$)*FO_lP=U9{yiK4f->^`u^s;ONc~S0#YmPBLIw!{L_8~I+Cc@M(6vN;`jM!lF9l8m7nLAJ^Z{wE+sOQ; zql4K^Kcebu$;QnxEumN8v5`q50gI!p3v!Xs(n-ugh_Z<*fJZ|sK22;=jYUoVO?fbNA=^Y^flWZZHS>w~1N#YHujFM!Tka4YiigcvOJp?H;vd6&i33zAPyEzK zmNX)~g&4_mkda*VZYNi13MeF*22fVM@~E>_ls=17^IP^u@Ei|y`PJYZjoLxT}rE^G|fKC z)G(!LTAE%cSGKw{!z5i8_~A^I!UbzY43r1cWEql_P{t|`9#COnW~jMk)(~orC`Ui` zXX2pG#YHjUlOPqgYTRK1lx7@xaVOaR2B2X7nFnUP<47T0MJ_356E~zkNE=hYyGcsU~8ee{J>kt8r8iS zX&}LIxizUj{OJsQNNBP243L17K51KgD-MYzgCI_+S_1eU-Bs&ik$Ny)upWmE^QZA8 z;Rj98ssM(`<%GG9TJ)dcT_rgYWfxPtMnq{?LKlk()c?(4w@scg8O0HnQJE82VB@1*Sb`iaD|r%Iq)31~iq|1eZ!C2<70W@y z4FnkpGxoktYbt;vw~>tK_CUL68FQci1c_7qwD$R0+7B+{nQg|1osr zFI<1yuY136XZti(q&+++ad|P#%1JFtrx~>V9a;JFrRz=8dYOVE?F6X+esewAYFoohBB#3{Kvu%{A&XwJu^shRD%mmJ~>;n|3;sGx14Y zEo}zgZs6VF1uc}2d$89>{@KdGTT$%ekASEcTiKDGw^>1Q;I{_U)@^&`a%URK0%8aU8bfD=b&?-WJG#Xx} zTewBc?(WpO_VFSrjVVf_&$=w`j#9-$Jt{AKU6 z-shli#v)upWaXGNULc9|Ym$Y<;FaIbg0Z69;349MqZuy}KXT;lm?(t6D_7o6^i)qz zG%NDXY1a|BnhIjJU9^KObjj*1xZ=9Vc|zeZ`h|AI@J2LmyGRE)Wu_7*EaZf&Y+e~% z%yeR0KDYIY-}9gAB{}(8n+Q3-i(CqDUU}#=Pr-Ez7(1sE4f0i~0XZm1?j3 zR!%G1#AZNE?};R=Fx)cWYzk(RDuvQ@GfZfKzJdtOw$LNWoGO1 z-(64M(W+mpdM`5{gs7WvC)5qJpOTd_GYg1(cNRA*zKnL3;pIniQRbYvGH{Ql00mDp zf004pz>5R0k`kKjpcJ+scogQagA@$DoV|r6Nep^(G98ZmXRB@=O}2wS9I0ejcA_T} zb5sY32tqc4K_+*c5>9CJaIk| z8Wd*8RD4_V7Zf5uTZV#88TuIc0X|Yn3Za3GhA&2U`WVXyR?Wn6AV3xs48W}@8;1&+ zxc{P@iNhBI4TpgyYbJd+?)V&y!7(Mn zE1eQ;be#(Z&S)p{hN~J~Q=!9E@yrJ~LtavXB3>X?>E~koke}!RB9t5;i(bAmVInX~ z!R`qOCb&}VtWHQVjfHDZKpEF853K?c=sfR99DjMwU21;84v?I71^tWssW9XO4qXH- z4i7}p<~8O-5->z_h#&52ESAuSScX7i8zigQ&R8u>Tw}8}Df39sY2}izjna9--GFmE zDDKU@kOO(@B7BqOv{wNOV7XOC9Pk%`l6s|# zL=Y|~7nATL46BPRvqA-8#q|zUU!d;w_(yS?(-;*3Fp!}~jm?{bdP+_-+A@WUFume6 zu2KXj2#%fRJV_0`q~kBrYqhe#r48c~;nWhdz~M=dk>6j27MUf1=v~S?M(O-QwJ{&e zvSEtiA4DqC>p5(=RW8}DcEl~v$X2hXBlD|f8OhG~I4v4$NY^-KU&@%&0$a@kT zIUz&XBrs4}q)FUDCo+-5vPap611WdGzI1>Tz#$#Asr$T^5$@<5xNNop&`Yb*if}Js zOXbO9=j06xDlCw*#dHED;f$8hQi&??0P`CQ{&+FtIX{x3m-scYj}soFi)F$tVow6f z@WL?y?ANNJ0T9!-@=;i4gYD?95V*EW(Fbp0LU9O@#iE=lo0TE4pcTSF1)vCd$TtL6 zS`dpQ9eylXv^WL*A<-bY1b^NC`-j#J{jjNOU-bUFLnVOmM}Wq!A<>-oE}~W6>phIS z=iT1>m^JT%-bZAB8I#+@l3E>)cb{Wke{f5&bwsi`f-IX_HWG#ep_7o50~1II3b3LY zZhQfkCIID@Oko?SCXq-8Cl58)3B`kTh!lpa!d4kl#-OULHW!T$aZfrG2+4cNoyh=G zO~58QPzKl(d&#G7-sl!nj6!*A?7 zd$zp#D3K6&3eUVYS$OyRZ#o=@t!jAm6;D@#o0A45%aYmluresmHfC$Dtd_3EXBa9k zD<1`#LewRnGCc~yjpHN!&B6WXEJLsQnk5W$5#mSBd!zTQ!6$7xg0A}(C^@SEa%uJ(y&32sSibJHi@x&MjT!Rw~HZ>Xlx{>Q<$Kb%-SQCdspT? zLh|?jU;{ORu@jZ2VS&+693spq+4{ScxD^pl79J1$@5IA7C;m>1MAT#)qyOV-^UIBP zwK83Aln1pfe6x*(`c`#NK`5!Vs+xdFGh8fifbZ=|ASU39VSp-gJey`K{<+{Z+cq$* z%rD>jc4npdAfSKcJ+!SMY7D%gKY&_P-i67W{C<2~R#q&x@U!*OP1WjN+Dgmo)3axK z$EK!^boc7h)pdB1kYcY|y}7iG^G^rh7i9*`U`oOE9$^O=k(_C;7QE+*cZqZEFD=}k zQ0laT(IqN%JEay0H=fSV1e5&5F&+Zd0fWs_gO!*vWpkxeG{!CAC>9=w-o={`dhF1s zE85xqaG+M@Q!v{EUji{lfExH556N69KR-^3rfs|5%51OG>K26xTEz$&iKnFaVc>`sz|KM`XLL) zIM@!`eq6SQ>s$Aa-Kh1&8@7J=>}X%JX1Mcx?AMt(%$$>CvBXT3_oZuaa7dq1tOwiGMt}+Q!a#3Ahxs6t4h6#}&hmGas+)5(B zKyV-g01;rD(x#+V$tr?&gFFBrK=Q0Y)2F^3NwlvWu1{OC<43SUqp4_;EYzE`Mp$Q( zA_OYpza};aZV)I;QyreSly7HXcGRc#7Ju6kG#Cl3K4+PWu=h z{HJeSojSTD`tkvYTD4bN7lCzZTlMl0l#ppOkPH6P@hLOOigWk9r^?<=jQO?oN|@TC z^+peS>JsluoN~zN;^af<3Nn$r3^Ofpk^W^Aj+`qcCcc%1y;l1$ z;Bt!VKG(%#OS;YysS!!oOJ?Y?PV~4SB=njgcA>+RPedd0;tI8GC_)H~B(42FNP0)T zbIc?ooPXZ)S3D|g@4vt5-CsY<^;7H~ZcHjwMq+fAE2BtIJL?lY;=RKVi_0_a4&oT% z;W<_65Ny40ui6|H7*hdHQa-Vu@VsFeT$$?cO4%S<*hRw0Qi9~5tS3N^{n^V|R}evf zK%L9ZCR8;2h`U3B$r}ZTGOEhjaA!Q`U2w&_isRfKPh{@5%C|wa{c1OjPx~q07 zh?77Jr@OiVbP+2LbE510{`TQ^(4IzZMexj?BWBxgUA*V&tG|E#c)PT@<8OtHWu$o* z+YY0gT5g0}{?2BpeSH4=Uw!qSi!GlNpUZ4#z+nlXv%}j>c>M9CdAafW;~o=Q!k7gL z_K7h7CqEm8{ypR;6HB6Zjo6UZRInkADM{t)tk+EsNrf}Y68{hwfs?}Igd%=@zUHH(zg zaAA-k8tbP(2GrZR0Zu4VIA1LoYk~{F zHN_9FNm(dDlKh1W0w!P84slL!?F4k{4yml5B zW{FscWtiV|8fs^F8ABDc1I<~*WJJw?P%I4U(?mrWmg4C1(3LbokQp_-+^&}!S$GZx z34IL~NQo+Go)jW2hn#`vg8@Mo0W!P-BKn-{f#^ue6~X$0yS>{9+S07ERRx)6UajSs z!VTYn%>v`P8+a=BgE|2Mv#u}%7BQ@fbSM@|2nk&$wa((o=F0pcGBD&e;66Zj8A(GN zm*ja=;KQG!a#1B}`p3&nor2jDxG!q0CnzRi56i{nyE)I12UfU^{ZA%kQi)aOh};^= z%!d>y_JI(t3?{-VQ|~cPf|M-saCugANumt1b5kKS3(~h_WQ>XO9rt2MYK0QP)F=}n z-@LewQPh=$8EeE2XDU2v1|Qm8nt*oZ;Y%@5UK*A`G?prR8^(Yh9fd@49ePrpW;4X) zDK^WWaZJ-p^g(CpP$1;N-}%yY0#htWGht2UOMUYt9?F+FLGg^kOT{$BmU$KoFU$!P z(?AU~8>*7b08HlR)}JgOk`yda4ZQqp;Y>*@R0d7hLr&Bb2eFFk+HEnvENsw#EFlwd3PqFWx{N=bc%v%%xD~EoSo`P#%fQkP- z?32%XZ}I*~?sGMMoYT0GzjF{kG0W!o5LlrgI37F3x{381CLC*bp9TnY>f*pA*}Vbb zh{>zJ@xNOee~tx#qOJILB0(WAxNFg8vAx)$buByDz%lJfCa+~(tHZoP?HHq{R0V-& z{x-Wsv5dGN)xah6K-HO<0UgR|J`fjPW% z98MuTFv5w;E-v4llu!TfJ$YMYNQt&Px2noz03473v)|P8Clc2gztycfDFQdF-1g+f z`HgSm95+E9h|O-$YrbVCF$ogQkX^cOcrx`aPMtfD>!CWO3nUTYyD2kYu4(+ z>HZ9vrObWNt!8O^etw}#d_X$8+CTT&Z1eVw5|diDKHp-B>e9yTo7rp6^;c)ppgf4u zXqLGShBN)C>8U|~iriB2x|2}zviA92%;qzu*!J37N=hJF1@CLA;ms_H;QjTjFl#sJ z?NYLJdj8`6YZ8d|jx9=!*Bk9D+*$_?wcnyY17TCau1qQ+ejegvpb2LALHe!F^rwgQ zTGMNF`nA`;7t$tVQg#Oe8M!NDY6MZ_ZiUPx>FDJaw4)qH>}5L|{AkZ&4~|q03TOZl zNc2~rNG?ku0a0CGbKD{(l-fyjP}PvpF3N{%V&GBW_AwU07ccz~A*lMk{wQw1c|k5-xS z__toZv^LAUle>#?lblGv8}Af{QU8dUps1V@l|GHLOHm1>8eVH`5azUoi8bTJU7{mr z*Op%X&>VU6G08(|?b9{#nOI(E%{}Bli5iY>ub?hvgcHrciWGji&PcoWzhJyU(yhIX zYr*0;s)OkO*&6xYM!LloVL*Tb7CRf~gQ0SXO3t*Jr!Y+#Fed%a_G71qeq}-iEq)O9 znB1CvEJYTf$ny)El_~#uuvnWBNIy~W*xip&{1gXU$3I=M*W`ZsnWQlnDswTyimPyg z$0WR*0oql14_|HtX?LN~nQ38!iK#^8W3vp-gcvxpPnV)oflrq3VTwK_u~)0LW;%_9 zZW^>MFRa(6y0ucfbL8F&JF45ZwoM(&U^>k{%>;mf--@=^klWIo3-=!Bv`e+_RDFHn z--uUB#gLG}BPRq66_{V0QK7gA+>rc4Qi5cv(XJ8!BpKKmt87*QT0dYG66~k=S=fx! zqF%LIT@DrfI3M?=evmGP`tdb$Wc+Jdzhk2H+HXqH(A*twnP`3S$JF{uwEoaU>z98@ ztv^8P!=u*3|LV1Glj8)Lzom%Y2G&T?$;}z|_VHl*`)Lvl&Rf(qp zeu^=D<56CKQSo$&=f&Rg@J@_;^T^5wQ{WUs{%~4Dltx^{ImgsPp`le6QPvUlnRe_8 z#CnDiRb@X)@z*4{Dfp*%Jh76_l+(DJE%q@_wCmFY*hWvO@bV85k{xBGh4N;wL5~!j zj2@5sl>sSB+okv$jxaqEDQXlCi)y$J{Kcsn!I)(nuF_;MXC994A^mDwnu7N@6|KV_ zRrHxYj?(g=BROQq&b_ea4W{dDZ0P+(qMFn4OuF*K9k-mELrs|Th%~DE(Wfz*GsP!e zph(P}yv2VUMPE`m1O(~G0H7EJTeWsfL7*(~8~-CwnNq<7pk^f1s_>8bRZPkbsR&gD zkb!Li4zK~3j823TkDwx}0xx10=tdq?7nv0))FD7)F}o<&XaFi|w$3?~P6_pM9?>)% zxc+1(2@r1-`w8j%E~N8qbYGB;_tPSspSpI@`x}tX?cPfcl1>4YZiG3q8Sz<%dgB2x z$!nuxP&*PUb}iPl?%p^0EV{H>`B0CUYat81oqd;27yaNAU$-f@>N+ZLriq*kuH)9Z zc@r40sD`n}pdcFE_2hD~UNDq`T#BbN{?^hYXCL49iDz~xLsxlw)ZDJ}I`ibIZMp!|xlAfOJm7l-6R?C{@!ESx&ozL%dDl?b;S7wc0Z6&Yt zFV9puJJ0)1iZH}5q@NN%qfi^kiINM@LkaC6nbQAn<56%P7k_L_1`^4Gf-I4W zo1i0+muO5m3s&d`A~(faMmXvz!otMuI>aULEOkm_YhqgFM{s8_wkKtleWjcueHS9D zBoH~U82x{R^P>iBxM4XSoEnPmUqjao%<)!Ra^cOGUNBU{HlTuHsOD?ti!kSdja~qL zVoYn_oXg1Xeqh9o$CbhN0mp-rODueCG+M{wTt^=G7dsgVMs94oeNZxu5Q-_9omTH| z^n~|UcXXRG>r2c|BC82MZ5-7WJ8AvQ`OsUJ{iO+JGf+U>YFs7)r4rO-qpmT|dKJK& zxxqWxHb0;_qNZk}%CP!QMZT*b$~M!A^lDzcS}K#SDoY9JhlrftG%T+Jbl&+h^|Z5C zBiP)Tnvg@^Q_Ggab#JEGy<=|JJu^?OE%FL$-m7bhP-%GcXS%~V@23Qh26<6w&c=df zAC@&%!^+ZLxIlCn%)cB@69?1Ia3uzXWnOYux%!mRoW{0rpY8I0!fx6&hi1JrWW$^W zA?INh_dJtHwGnIxz-o|Om*|$ z1vvj6R@rSTC!AKIuEm3BxD;9qHrRsMU;pbDzi%-X^j$2EN5B}*@)~+ta9b1;X8&?pX{q?s zw|l!5Bo)!JPTBA7wdF`tWQ%XVh)3xC=BL&BAxgBK9Z>;Q6a+RsTsLe&$GUbTSk6bx;63rR_TV4On; zq6OuTNbKMr3efmAnMXjYCP)q;hb$DU%*rmTBSlFp5^cyEQZJ#~*o?i(lTqA4qAluA z1ZVv-#h9IrhMcYtaL`pF@2_$Cxl(EW!_rcUi<{U9o&dqUi@&qA!Z;W zPnPg1U$DPGJnK3nc0oSnT!wL?cRpGy7;4M~q#76rveN`X8AOkC&Vqbg>xg)Aja0`K z$GUHQN`^P0kn;d;;|ORxM#qHYNC}C5L{b{*Ia%d&MaGBdYI#gn%XNP&KTQyqk&Yu9 zM^cl-R4j|UdR})=iV&~${+OKXQgw0uU;D1ovtjlHLU^cF;)mZ=xe%WrQG*%3IwWx{ zSLThD7E1n7sa)wSpL{rOEZ)1kQ|~pIaavQ=r}0wMVzN+io9RxAB7SM@lV}l{-|9@u zbdRZ`72Q#$7KO6Hn9<&YUP@^rSPK>@Z*w<{XoketU$4b8{@pkyW`lH*Z4FIjof1#Q zG1aVGIhhTZDjC0S0B1F@9nXX<9^1F#8I0LU9Yy>PGw3=ady1G{vFl8v4=k5Gb=`$KJ_O z>2J|=kGlqKq0*{{sPmmL7JU~3tPpbwAavi_dgHfi6*VBkj1*-jO&5cDlFt;&*AM(L zaTI%~rQkyPE{|&#Gd=HbN+vFXy?0x5h@zkXT3L(WiqHvlimzpPz zq75$Je$#XnU$8eFGLJ!qL2Z$sIuC0xAkfK<5~oxC1#M1GqY7o8d0q}v$1*NQSY77;P`F% zDGfsTX$6!r*=R(#z#PJCu&!y{Hpn~V08;|74GfS|);O(nO3T`)JzQHM|FT&|p?ur2 z&S1!0$Mm9s@o_7OD*tfef9+8D(BE?H%*3Gl7T5ko>NO(OAVtR-P=Ku3WB*J4s|+~w z!o&>Yy&v~3vDGsJ&ifgDy#vEfKZ}Nwg1|6?!171Gp&NtakvLu-!=#ljIxrUHn=VFT zF@}n9m5;DIhp!m5#aLr6X8=J*G-RC^kHz?N->#pc*Zf;D(xmZ3&foC>9N&go9jbE@ z7nYM77`^Ays=vK**AWaDl)&2~y5RIwJFAdF?lZpw<#g^U-&#YA4fI7fIuYTEL}3IJ>_&qA1i=kIf|mR{-aq#Knco~)mB+t<`vu0I zFviJ2WKoFYVNv|h`S2NmqZ@`rueN5!>96am7>^F)#%tG)CZeKTj)VF5>4wW9#CSYn z#!K$n3qmNaLF%Z;Xe_K~E;<{><8$f!Zf){=a{Kj1IJ8!)P>X96fm0mB)?Py+&=Q2s+1}@vw;c<**Vx-aVJ5J`uikSw9s1PlQy?+(pD@B} zimoI8yq00@49?Ws)ZakAO;=VG>l4vKa#xi7Viw&Mg_Os_rWmfSKsY}8wd-e?AKcGy z=@5#P5%vk+i8rr28lCZjow)onrG%MFNoRTV%BID!t;d9+-Iml*N}}L!eW`tJ&v_*4WGUpIvjV(#IclZ%cFo_FhhqbY|zFA>j_*a&8c%u>XV<0=U}Ik zzV3E%{lIp$D$Fvr$?qr_%Z z2j#4?moqtFX%K%M{!12kQAiL?EBbSA(%k{2hg5BhI~m`>q3{qf)j^pvUG%O{&*wpD zC^^G808&Q9W2&7bf&yn8-9oj>=8$^h$il_Mis>4(jCvmd+XSIZv>iNqalYal<8@t= z)*QM_wil>#plyUFh7Csg1_6c~S~Vr#KmVw=(|{Qc*&Y)!K9~8 zCzuD4?&&@M&F_Dtb_;VtF`eeG5!S?1P`A_`dH?F7*Qjomjt~zByA8I=R-vL5mlqT= zG=R3L?HPH=qJ+CL@kuktk6y6XzXg|F*(U)b`&C{6f(R-zr`e) z8}=~9Mjr0mjoH(_zhJ6Pv$s3FyFoF?u*Pt>FAn#hIHt;jsa2623F)!uPb>qP#<=Tw zWPG>Ue)iAP6U8F z!c*UbEhXKmvN$0u3&Xh#Q|0lTX3GU-WJLAKckB_GJ5F&jpoT60FR`?K%rG_3w^6+a@rk!L4T%SaxZRSTC zdgqV?@1gefJVpQpMi6$&t^cwbd;i1#$7$F96No1aDzchEUpP}r2r4qg<97`!5Gh2* zMglWLaxZ@K^>q55JFQdI?i-{^R<9w_lPzB$z?Tl$tTPT7%%Le{K<2@N>0SHrYxDk} z!#9aoSXBW4@`uIa|O9g+Jzptg(ig9>tlQi23_zs$MME|uUNNyEbc6~ z)aW(}@VfqbuD>p=k3p?CYWzLA{`?6brW-4Ef_|<8xCk0!;sxWzq=kIwTPS7ReABqA1+& zU(nP5-fPd5N~ei}n3@Y7yYlQ~>)m+e!eVWw=^ggY`e!g)R{GuAR1$3mC%pJb88V8D41!LK z4ETv-(#ciCn-X;tifNFL=fYQ{5h)nWNhD5MVO27ao$l)|0NaA9)O`k!p|T;h4&Msy z9Mn!h7)G&b6PQ=n#U~iRsF;Iu2s>=CMnf6bobSpm%VcOTE8xducE07qlKAf4#hNO& zscY>pmBB%|lBlAN-~=#ZhX5sb>) z>FR);Q~ob|cW$m99-fgI9+MfG7=xQER?0OXd{X^YBD2bN5U3Q*bydtGVML#%9DXxt zU>TdL%{P`>?ZxIob-EIu9XH54IF0iHquCsKuKdCkWNwAzP*9WZlzSOd8<#p)6qPvR zof%ZR=e_FF5LPKzWMcxsH~?Z~b>dYoxSQ;yKEAypS*1;G)lFG-x<8ydzPERLe%PC- zW;X#c?d}oM#QKz$xDu?usz^nGYKRQx$bqYdDMWC6P`NPTvA#pH5v%-vA+nd z-E`+WyobE%`Cet*YCH`r_p@a-(*vgf3nQqKE2*74(ZZ&w(7zx~zX_IW)WK`05pHgDqBg32mBt zvN92Qk|?PtSX~H;!S6|+0R88LDP4tbr7<{4Rix<#9f5NEQBa55*R&yVES;ki-^_ie zjFepmaJ8WbFjZ1JO)hdh$?_gv z``47G`cok5rQRF7-}nBx%%M32=HCV06llU$ZOPx-T0oEc79a_g3QRJfGI51HCAjd# zKZt`d&TwcXTnLR6S7z0Fg*=iT9Q@??TH`!Ud<=g7C0Vy}1c-Zyr85GI$40|cxSoOEgz;}UGNa|uwa5Ic?)-T zRui&+c@isu$LyBv;G%#3ytl*+Iw%E23mg@%$^mxVswhz=S_1DRekl{x%IIO20;?(D zY(*pF`D2S1jwef^$!UD@q}Yvmp)jquZWs+pcDpeeW0&GOB(B=7Olw5)n87_R99b=` z#d68u3livl#^*8a3wkAvPB56B(mdW-Hd1~r?p(uupQl= zj&jGJQi~?2d8A}bwrjgvpWJh-WaW}i-p@#@GIVrum@v*+Lk-vps1ptv5(0U$mFj7% zD{31bi4w&2l3eD}9ro81vuIWFtm-i~U`c9ri-=zoz>!r|=Mj+R#SH*J#6*-*30-93 z|Kc0GQ)iC!ZaYj-NpE}6TSf3;;_JB0r}EbM<%m!sz>Z&&pVebpvobT1oZ4NbXf368 z!+5$r(|%-dbvwh->X+M5_E~uY8C&IS`|9A4_Dp@60H~&?@^;mQ<1@9vk;6xJPQT-Q zcP@u%uW|0l=cbM&i|=?WIGVIR)=aj`!&+-FJ2%~$8J<&6#fkW}we{o}!xS~_IWFM| zVB=h@`Y}Cb3~H0{{9%7St33G(P1rfEsYn1*g|Ou2F2WDxV3Q(W%u3W!Xk=7JeE0}7 z_uKgGzX5&c7d#>ro%kTe34w{kjJWKx;D=74uuwbaqAVD$)=-WnNXgkG#)H2g6Sat3 z+-E^DBA3awVxRH$$(Hf*c)MFF$W?12Qk%e#v2mdg7VHkp#$%HRIU#`xAo;?`Nny0( zT1AUatbo3ZU%SU3+mx(PJUo~Gtr-u4v5+8%2nmVnQkIAA_%w2rj6xJ5DRe0jv)(9F z24PMj=|J(=ySNhrG2tRYO<%kEzxif<`rG}JaGTj|0Ow4i^YzCWE#35u$O7r=PItYT z)yqG5#(!YzzTOe!Yb8(M(flmFPfOMaf+M~AwjS`$>~5@|-x$mWCvX3@v+IYK>Xi<8 z8w?@8F?;gnC^PXx1!WVkeD9$cx29Hcv-;xvQx z;OzcK=WZpfqWk!Fhv80Tdb-4fg(}y_Es)>AowG!YG7EA{&;j#?7-ZOQRgJA8w>-ug6JfqE1H!70&4|i z2?fa#A%Zv8364pbZe^kXGXxJrLKsQ23rN`QTGWJ&gw$;Zcj1T%G;s+8Mgj(+S}8?F z<$Q|)6A_^Oy+KByzU0%jX%e|$Y9HB87^z`^VnP|QXa#B zTQ-A=#(e=dMi7oLOpeYg>d@?T66$bUcmVMoDo5w~GeAHOak>cKEV-yknMO=KakgFY zKxf^Q!omu4YK&QwYaE$Rs8wCDZCp%e{9vM7DR5T~0LV6Nvx$jbbCKTcp#m1ifXx=8 z4qeWdvnX>Olq>rnElhVu2?_t*^DDb+b8(a|HZ#B3t~P^V8`YgsPyS$Ycli3{${K8= zXqge>v0xcDV<(AdRS5c)geMg6`))hr;DWPWvumdlsP;$A+ z2aaVMU0QWFSa1}pTs49bkAO)VsXGU55r$B0i~D~gyn}Lgm^H{2WC{(-tC1@Bc25px6EpA$lD@Jw!Bg?&=hw>fhp*AirE1kgc0s{o%F|N8l5?uI7PTFu_yepuk2^AYgxVm>Jg?H-hxZq2 z{&JSKC|}%kd0x^nqOr{!!xHisgOBkfJ2fy3cr*H(K&Y@bYf^lSjY8ukk_;KH>X8Gf z^`=@O8SZxaWwOxJ);bul^aIaZzR5q8Ny-1(3o;(LpIycy*ScS|Rzl?&45QXB{qKy5 zYk!5E`^_Leo;Bn>Hwg5jj^DC;<74kc?g&zuFa)vn z0;tu)M31hAksaJbAr(loovc844%BAZ7B0IoXl|9Y5r(>)+2)!Z3Py*Tb-%THC8(9MJ9=zs_ZtOgNOr6B!r@1;z&cKySA}UZ!u)s z{yeol(f^er`zg@QC$5XGE2K!_FU~5Z#o4TZj1@M0re_HU%os`~Ou?ZyQ{J}1W>iOh zspO+es;@?dI$JdcDN()d<}_B`VHMl&XQ7QBGyO*Gm_THM8oD- zc0!lgcpX(1R3}o_Mhru^mWgt6WUPvZPF;i0wVgF7>>&DEG zEVFpFULMd*A0WXn7!2|AMpRNH+>MT6?@o|}`olrnpOIbDkJBUBagLrMMy#6n@Kr9y z+c|Oah-P~9DLLxvjE%|^w&vp;aTHO-j`XGp|LA+esQI%D0bp1o z5Hliyj@pg@Yu4mJu?6%a;*L%!V-}XOS{j!yhH@$7O*1=Z>Jg8NRW#I$2?%EE(0_vn z-G%7ZXaOA;MVGv2h4aMW8<|#KzY0_hD2VNg&^b2~vY1YaUk_W6m+d(Rq#&d7B6x8>zE0OAr>_OEeZw zHw+-mu;@pm>LLzDCm7+bi$XM#Hzyk8FD(?IRq}zOb0Gmzhrj?x1RV06M(S!IFc;#n zbuqEE5TlE4S#71?I%pM&7_j8Bk^sh##gNsZYk{&8NDERLa^+8i2V#%N?9n5!$Ab6m zQ6VVl(Zo!W&HXrt>zfp2ah9qqFPL-u$HMa`lm|TyyC2<|>~pzzZ(Ku!vih7@XD6 zj1W0AA~7IE-s#imn!tmCv{A!MN+L1{|58w?Y-GFT3R-kpEA=Z)#=a(bj+ibgAk<)) zp!k3^1H$E-Uah>&)KKWc%hclYDdzsEG+85%JXiu1s{Z|t21gc1Ht04ROXtrHnX=`B zr~m8Kw%_ioua>0j?s?u$umu_I`BPLlkrKegFf$z0Tai6VN1-d_S016@?Rn}nUn!BD zzr3-%5~9&u88pumd3l7oPN8?SOpPz5w~Kx1O$mQwsSBp)SSs~}mwU_L%l`A*OzY>T z$J?{B&(Ai?LvAft_L!3#d$PAj1V(9f9qp&Rx^Yv(OEei(r5dEo%5Z@xo0vF~iD`ys z&o4Ea%jvwD0mC~g7YLM9Vs8e8RfBM0I?}?`U$0Wg|S=$+@C3jCGymDYW}%H z&MET>h>8d&CSw{th73Aq?&9xTW)XR-+e`e1! z^)W}ZTpx6{w*t5dYk&i`@tT$#1Q;CZpkkx@7O=S*@6J%Ja7$M_(Sivu;~CZocZ~SW zdgpMUFc^SmlgU9RnAIKxs9`p%B+UnyA3I6ma!+`Nw;nw*-(Sm^D5eg}-`VPItY*v8 z{_yCjHN=WI*$S3OUq&XfbmzWL&M33Hkwd_*l0<8#jt>3llAQLJ@Gg!NrHN28irseG1%Md+6 zY;5VwVCQ(~f3K{?7SxYfT)F!s9?3}HjLjN1yxcg_o~$u$h-(CmY}7MwWR5c%1S8#S z46;kuaX7Cjy@Kh1{$zA;Q9O()2-0SQ@i+v-2`w7(_JKl+m>J5H7BTRY6#6I&Q^|X-FmorY;C%s`xklmQ$a#OJ#jrCVM z_~~F}v483HXq2e?{!)~^krL)hNStZ4&)gu`^U&x?ybmu`2R!w~cm;qN#+|^w>UqzB z0E9$jX$2J3K3AB4BWb3=Uf3CysT)oG^Kcm}`%j>-Q-Fc<-`{zT;l_wz zWPx(VRk$W@1^E=qtp*Qp4RVs%Dk!C$PhJ|GK-zMhO63Xp&SnW?9D#Tsry;Ic#l#Qt zqCRRgE1G@R2|ZKP8avx~W-_!GBQZT1s7u|)FruhHSX8D0gnz*3{B}m?Y3a%Oo!$Q= zs+mLwh+Q`{Cx$8m)P^TRbnK+dW1!e#(B%-1F^703v%SWr{`2~DIlS56Wwhsq>=?Zb?N8j+AycvTtkg9Icvec(Og z;dKAv6W%vPcf94D8?~$5Xb85!AW3jaYgf~DGrWom-4DAvVKcdeH?ns1=_fn)4VKbo z*vuBUFrZl`75VsEiy3X{(%`<%lTW{ZdKg_wn&A!=>X^p-g|OL9X(YP~6{F$}qRtDo zjd#AqyR7WTZ;In5(kg@ai>2s&(FY{~ImPg3q#lfa$X^aU19VeH-AtOD* z4$Ne?CPrKwaTx;<>lF$lXlR}}$q;fO$ne{7F)+X@o(R1`@=!rB>`cTmf)zVuYM=%C z8}ua6hCn8g%21>5N9JkwZwaGydOb} zy+x`}{_~DUOfmFbi~I45WepVu%7mWcMxh!^lN#BJ9l1!8`8rHD!YLqKNY1iEa{Df* z!qLWoVQ$1QK^T^?Z}@5VFuv09QZck`a9hZn;cl-l6~PpOiT)-@s$eHMjiOl;UcDl5 z(y+q+_9k_&g0QiGWdhl9{#Z91CIeM}&`4>zZ;{ge_-C|R##4Jp3{ob!J z2eudYN-gG$Y%zDW$H+qhWMt#3t45e7j^RjSAN1-_}78V48Hh=Bi`doBu68@doux5b^OQVu98~OLckAuRByeb0rPxSVp@W z)v}UOOUoi-|Bh7^J=jh}@0&0dT(>tSgu8Fl`sD|2)cVzx8@2wsd&aGb=+#y5bG-@% zbM5D`$^J1E_crg>bDAqC%2AsQCQ;Ubx7O6=aCj+Ro+L79&N5E$Duf73p0@w!xST9= z-sOnV2+zq?6Xmh+i8Iu5SGZWxv6Hd@!_AC9%)IF+yfA2BHz`=+NMdu+nu%&AwmIQV z84PMOwr2Ce6|z~u%=A4;aicYno#@m_NfMfjR~3(m$HS41Zmkcq7mW7j(d5t5Jzqnw z$aWk(>Eg+|XFqcBa6-BPBwVy|j!OA;`hWa=GZ&YSHF_&k58Xcq`rE6G=xBd&uCzo5 zX@{bV2=&PVa@x(J-rK?zOs!EZD^+oRc;Dl{;@q95??Q?1hv_jljoYzdr(Z3T2zxhL z?CIc6MEG;zD}(O|b})smdbbTd?>lpq-3NMOcGFIdX@5bIG)k%Z<3tARX7J#Ui)0b<lJF_rAs_^->H2WMA>O=vC&S-YWPh02T zzW?Ew@B8q4_^#~rL<-;Z!d)IGVAh!0%;qeLwp>;BKQy({YaCm?=zX*Jo#g9ns1$>tb9628dT6hXe1er~PHgRosnW2US=67qvzpAiW(~(Q*s~b^0YLOhSRG z11ez{VQ(1#xE&BTql8M#amcOWsZKFhNBr}W-s6B!jG7Zm1tP;hU72PNo*CahxW!Ts z+=dc$1dXw~o0N{kMRcec$darJYR6^ku!!;tIdTPuR1SO8?vJpU<$=%1wiBl&zyZFD-O=v9xL@}@`DxE+Z_%9$ z@5-L8WY3TPc6iEvHr7nbsXrav&kuZO`hoOk(+&SM7_c7k?}~dNLTEnGM*>x2Z$kx6 zv5EgAN*Y3CP2-9w6%{y!U5$TcCJ%e@UH-$&c=#HBgQCbkp5Dpexj&p@uh2gkPx&6Vx2Evtm zptu@J0U_ezZB^bfbjEqO0nw+73fjZ=<;#wRt3$uY29N`i2K3FXW0WMq$3j>z#6c#a zZJ9Z$OhS8bcfb&PR}4@=*^;pj?9Y4&B3!v&4<*alPZWz z!n*P+4$zLHBS%xkcv?=_Ws=Mag3=Dfva&YBDVmzC?C?=;6xeO)_FV1zt zZbtoF*GEo+uE!JOQ#pbhe>#%X!NzWLnlxL4a%6HU98)JW3i0KZG$ThGnMQ%9j5oq1 zkv~MwI+l+~BG$of=e&o4bWafBD!!gG^=`zD5vS4dEcZExUHcJl+V-O41d;1W@K!1V z$PD2R2%2ayr*bPMGMo5-J}Iv4_&gOeGNwoNFHsJ;6u%?>#^4Fn$prif_Y9Wfb<+Ei zaOhVt18*{(5uwxU`>>*PY-KY*A)Qh&WAvjN7jf}2H+;PRl_36p%y`~k zKz&Tt3;{YL4n)fW#3%E)OxPyhQ|+DSp?S~bwxl;0qAW$WRYuE$yP@pxP-Lt>upjaQ zu~6z=XX6Y&0%um*A<~F!N{W3eu4KFeh{-9L2^+(J4#+R{zz(2VT$14M!{CVB1dt=- z;iL~@S5=6WgAr*O|JG?5-i*a#T;Kkp<}0|t{$D=yi#Kfls_Ez9HMqb3H*i#5+Qi7MBV zjnE-(c(+L0NEOmlU;3nusg?@Ex^xoo6zkFm+6r{k_vCWkRo-FIv3(b(S?+tw{q~9V zglpBY{#)?-Fpz#dN~w*GC{_zf?PQ@mEVq(QdA$a)M#D7wl{A`CRMa||WUbP4m^@lL z9nRq-N^2{atl_YTuzl8h*hcZZks0Mzhv94~uFfXRvr)Y@7?jQ>!*~$ihnEW84${P> z&mcth(P-(pdNq-*f3Eb6rAL74i^-8HCeN@IFC$xivJ@|KNIjs53ceSUPVz|UN5dDY zO!g7a*5cA^I7J>C$b@Si+h-4pXb)`|698VH)f$Og<+)(5wv^l-td$m%c4_}#_AA@n z(kt#yt`M(Y-yv1Ql_4cXPF7Qyt5_6`)({{P)^kG>LZ~rVMTo)+p)ztXMIUl!;yv7CJ9BYE|$?TKQZZe%vMuHKRM#o{dSAv&@kNbP!9kGh5p*x2Q zX)j$*9`+x=EVdZcs~^c~i{Ac!?_KtXBsda;gJTu87kGaxnbKrE#7e1wHcD;OYPd7t zHM9{<^+z+3q&yA;^aKQG3*6O?trhmbf(>+0f^jExCm9!d(vGlRE~i^141gcSPOPrk zIJu8%^;K16@E0K#%~Hy7@B&8|;vHYhtyCX3UU0A-dz9seU*G!W+r>|=Z~bZy8oNfd zYvxN%4>7M+UNz3yG>Xq$E?r(+GJ!OAK*-dRn>C!4CO9|L&#B1Kkj8N_cG+QR-3+^Y z=7(QzJ2laAaaRT#Gqn_Ema#!r?mrcPFeWjkaZ!1(#?r2M4sv17f8y+^mOo!f-yVN= zg0FQh%J#QP5h=k_$#=(ZPb>3&>lAar&jwe#;1cB(?`eI$d?{))A7}O%(vDkkKj|}X zdBt!35|hASOUE$jwQ2-JR0MYG{>h}}{hda3B3Ks~R{GVj){2>SGNt?@?%F;fZ~eGQ z33cM_9&a|HOXbfu@2UO$G`tjqS4dBKKO+NdW%!NK2C@uHWher_OsFnP1C+x^;pGIQ zn!K>QIg;T+U1t~B&BO=nK&f++KqPC@LTLqwJyNomTZX16WGuK}o$-X5)mc4%$i~yb zc49*pHFB(#(Oc~Ol|w(lQQo!pqZs{<{+Ij(R&wrL7!lns=YBW+T(bTvU?8`k6+dWU zk}D2#-_CxiPjiDhok+va`Dfk0D{SnOLvcJLi;;Ek1e4=wysRaiOyB0)%1?;ilp8X~ zgI#AR?2N_o`=xX{7~s=bRN^8K8((VTOxCrjE>T?2DXNG5`m6m}%p$ks$z?rmh| zOpH>5@^Dpm?e1RPBer|egGanu;(qd)0M=aGfWo{cW(HTUqTbP&w8TqIQoQumIYn1v z@>Gw-LuOeju{)>KS>-C(DR=w9Zv_6+(S2`@E)A-^?P$H~y;?d4aZb-gub3GizIbcv zM;|G@;UP+2SF@h1d4$KHrhn3M2`l)=dK4AN8V|jp^vKb5Y8IE%!OSb7&+Inao74zM zlP6wQerEBBrTKa4AFJ95W)?ih98MA(QQQ=7nV(;JV)2>s%brLG2P$p0o4c3EpFv*s z{8xL`^=P|S9bAgud|&i5Txc=PE(fcd*lxY=VSKQB}0v z+AgP$PMuMt#iPM?K>g+6<Gj6VFUsBRKZodnh&= ztTc*%lKJxM4^?m$LZOeaDHM|W<%%+Ml=2E?cV!Q9nMhzFI$kDK*V}PGz$KV#haZ5S;3Z;1L# z!Lq{=JaaIZ9NWbxFUI=y``9qgX~8l!#;7&H?h5F-4iXBAbUfAQX_BPJ%kGMD5?8<^ zgl!s}7^{K^tcL<}#sD>jtQ>@Lnw`9xgUjRl8?#&ixDx|#yyoXB&gkwe2ekZtiu2RT zVRFNc&gxP& z)o}r->MZYB_$J}Q1=P5Qp8u@IycU<}6P1HgnT+CaF#PmgCvSabv3~TaGyOLneeeCf zR|ehAbp7aV?fguy&79Fw_knZiPZ<(@ST>rgQ&n@A`g5xf zZOk*@OVnD~z4J20;3S**cJHG>dWRi(XA=Ib_w6&1&cn-h?yj`(^>*er9$NiO>Dlu1 zI`hd4R%>x}k3uR*JWS4kDJwxrd0Fu9Ftwq*Kw2pt=EHl{xVAcg+}5Yd&z3INvo{hi zf99#9^~GmyJ$ct7(FY)$rMP_g)0de+3I785j{(tX)Y%NZ-8enW>;gn?wR*|?mCcuR zF#v_h&hc7*NSTxpNjMM8mDYnhyib4TWQx^U!Y=UPb+G&Zw4r}2PA@CJu)R(Vx_JJc z4euq`guHeC^6_39!G{ zgeq&K3>*-2Vfv-Sam4I8rQ#)}$D~H`$CMg6XwDro!VvD+9mPaYI*5AE<6}7Qfm87m zi<9wv@MIF~btDB>FzLxKtxK$<+Y66~lM+~2{t%#x_HHSkm9&z{DQ$p^K0r=iLn)$} z+uuPO_XR}i5I*Wa8^>@RI%qjRMw+=YIT8ENrvDG}dVUT_`;7mWIj9LZ9AS?~_juin zb$GT7^AWA*QkNrmk^2N$+nQTkzFSG(FKhk%jBtxi*yg>;1({` zR3iE)c2g(C^OT_IP>~j7Ln;oB^2{A*A+WKFG0AK$^mQ^zD;h=x`s z$}T`BQDCeE{tF}x8U>Fz^iH6rw(1-%Vah<{kGzA8jac60O2YfMBQ?=RJrmLm53g{tBzo(JQIUj zym+>L*W;8adg@B0R4sR-0g9s^%+59%is@Eo2}W_trF>V*BNGxG?qq+tcK&0*B7 zGzs;j0A5lx*|m+&!28U(lVmc`C+-9){*gV8?%ORjvRV35DIZzEquy|gw+5 z>Otz3)ZLo8HML|()?~?+ZCN%pNFY6oK^B7%!2yg}w&U2bn6dze!C;<=aWDuo#|c9c zR^o&NCn02jmkHwF*8BaxefGV#TEfX%0g}9zs(a74&p!K{yT5sYuP#iFhm}TgBxtN6 z2#+jXe(m8fJpPko1heDcj>5lM=wwrk&Y=Tvk#LNK>M7W1B8{rZwbb{L8U;iPnuZO9 z0?L7u59tO&F}aWj5HW42!Uwr9BElBF49LoojJ4nZa`@hUyt^~D1b*4!o*+BED~7bE zFFWXd-jY+-k3i$Ey=i ztggr4?BV?F75h7z7h(io4H1ftho29yX#~zC2{y{uRz*dLk&>!LpMe*WM+C!2VsLDL z9z4{0g5d~^U)mMJ!~;z2(W}EGez_O+CP(TOKBzo0E(8subAf{9FA9(L*9L4?g@ray7=9`yOSTh z9x41qJYBn&KVFQ_v{YYwAqbvQUWl|#b~Ukdab;@LU7V+7(<*SnYr7dSQb&?HW0KBk{slQ!BB3G zxlgeJapTl1Q?fy24tK_zIX=xXXnl?<_fvGbH48Xb(g?9_{^8uiyFERg-|w##Au}|z zJWaDyvVv~UWQ`tK=n}s;cvxKzyDvr%)>hp{#m!68i-k&a5p~+7pLpW@BoWpzm1>i; zUF(%^2p4cB4@+wXj_ZVqv=_n~NEk|%l#Z+-jfV&>W8XLzQ!Vif)p^c8u^WHN)nEWqZy6y*!MpNYlRRE83fg^E_&(@K*2I-Oh1x`2a3 zk*rK48pF@;; zDw{0uQM_~fddRyKm9v8KvGMNZu}TyarSnwWhu=?rsKi=@Bq5@_7qpL~MD)SpXE6QB z5@HdmA}#ToNe_a_2qg}&?O)(0`UZZY@4o7D%z1{cKjO zsWY0VYQ?ay!jD%d5Kq*lZv<6()l89EafKN~26^E#B~(+SoZ(Ph-St6gHlg;&_R)e; zlm=(6SK8eLz9&%SBt3p7DdJaoZ7Wnk+dw4QncBa9YKIxW(XK3;1ctgE=V^Y?Xopav zO3=N9R4Ggij0g4TC|&g6qe9m0yDHqQ5y~O(Z#q{4QEa6((f#9C{qTBe`g{x5tJ1| zKfda*nZg{Epx7LspAnKgof40n0t3JZh#_DHyrdj7HdVwMIORD_V03UkE1i$y9p%-P z_ZYb_BJLv>G}=?s++}Lz4*csj^cOY>EW!o(Dne2}8KPFlOc=iOSr-2${A92dJR>7B z6ggL_GH!(=K-zqTQ;4HC2(7V<=!h^x!qp=+P4vp>{($=9ZxX(YfUT= zmuy=imvc7L@`GKO#PVq?G$VWi)zw$nN8xYz{I<2tO@Apf)mg}#c}_3FUdP}av8w>X zJgu&fo6Thxa)BxgMLYn&zgb5GkwZ3ChkHE+4&VH>rSf-n7NL=pLN0!kOx{0>6Ys0* zvv}YX6Y|}DI*dPBT6*u-W>qZajhRv}H~||R#%)qr*Xm>Ys_pE;&A1=K{x6k}ec9Wt zx%M?>vRIOhPt0akBj!`36sT{k%82FiYp%WKZNZmC#bc;+f4jWI+z#)Xni$WTS=ySf z2jw>YBDYY(gP^reMpVMSaGaTni!fjD?tofhq(XdhWt*(ns4>EDTJHIjAuUuRK|>9y zclozU=LjhcOV-ss;IQE74nadBh57#*D**=p?G zv3<|iPGU~Pb0}((A?@!~GgN5oCgJ4Q-t({SI8z?EF!I>yiDt38e&)`ZXIGa_jMSrI zv>JzxC&d@D!sB7QPq`@TBPW(tpPjk$%zC%jJhA#1mzB@l@$Fv-Z(wE-bwiLy5yYxV z$OJ+PbNt!p233dXON8#Hxnjw$94aby#Tp5kDt_dqz|j zbUKbls!KN%j!}+@R7*3{_$kB<;xW6A?Si&i*sYV&i|9m3VH@6m_pxrW$$6?bPtTA_ zq?5Le6>eCnj?fQ@)<-*NQSiw_4N_ESDJoTNzdRe946ZJePe#cf9as&TtK35<21=e4 zU$oF=B2r)zvejm=df-I(Lr$~El6ga(P=<+5sv$?4nP5gKK1^s}llcdt)O3@A6%?B1 zs?2wFLU`14hD>o?XqVGF^Ihr@I?xo=2FFT@`($wN-^z^6EvMkD#F^(340)>6jOi`B z_tKN0;k{t1KW#O`{#U_!@D0P(nE`lsFksqy?CfBozXS~$=JvWlKh53bbxW9ny;xFA zxiRMXY&8?UxwP7G^)Uc|KPODN)hx8b14%qlTb^FKG&XYK80L{;+9WiXq;lrDfiMHs zB>5akz(`Ps-Vh2{ZjJ=YeKfjDFk|qD5GhwRr!Y7yr@?i9F6fl3PKk`LIZjrgU}!pX z57f$}bdEE4;%Uz5up+o#j%AtX13b&r{7&%c>mbRW3c`G9dIV@|BXeRhJ>t_*x6M-Q zrZeiXBeIy!64!*LL-&;wGj_Z(&2jz?wH@R8@}!v&s}}zLf8cVmGK$A{L)zWj_lOxZ>Gyxa$l|Z zGw~A}Z>``$P|m9NWzWTjKlq0qJRColZB%g}9*rt*-FPDTnL>RdAuIfEuAa*7=#pzH zYK9AUUVZKx5BAn0bRe*$Suyx~Wo$19DxGk>ckuF0?cOj}K2vD+t_@adD5X#{|CI1* zI9FQmmMh8zVh6K0}-izbF)E-nL05pAQ+S$NYqJ{SSV9--~+6IYkLLevSoZ>8kG05KXYB~(+RRp2U_iwmQ1n+}Eh?q}c@mSCzu^AMwS?{Jw00^oaz+(GB6H zXe~-I4^a^zSgcL9jt0*Km!q}LNTu@pw>Hz~qNB}tBC5uv#U!1rcdMPOn__9fI}vQ( zm^@V)pH1V(d8X*x?He=W_!PwtI&}wf5-*8Fk`jRcBQ5z7;)S=1m*LEHT7cRn1C_;f z3NDR#KzGWf*C_LhJr2m7rIjt|A0yJwV}LFRLt^>Y0{`5 zf)O`|lEv*XP*^$Xe39*7Q()2M@)N8OYM5UBy|l)tA#hMW>8j;Hs=OG~u4gE6juL|; zwnxHYl%Q38=SxpUzX8lY8T?W}Qf|wL<>r?s3}U+tB1}3O_Ox?g>&b}+r7z)I?I7Dj zuix{~+lOCqy2b<_(xlG6#{Ej&=WHTq-0Y0XBbXMDUQBmKFMxcGDh9W5V|B;fjeQ$+ zNng1z2>?41!_segc+(s4+x}^_zqh43lOJ~)95L(8@RFmGK0dHpESc@Zy#_a8ZEJjf zjO^uiw)+byIFD%Xj=5EF#HtD_Ojl=BfLusf{Y1A_&YwL!bJsK9^YQ4(sBqMnprc9r zRP^!hdFHN}(`PUL-oZ=BeC<6?KNb@0k~C>hVj1s5k3IdK+I({9;Q7jP*}JmQMKmLj zIGi!&!{|s_t~YBZ;gPnOXppSifz5fUl9f0BgJqQ>$8p~e#- z+Yg=?$>MI%u61E)Frt!wDI6~qltC!&*4jZAgmdD--#+zYOMm#@qjMK-y!V#%LaEyh zCq|Avn;t$IZ#?d5Fh|gL0i5whD{m0MX-T;2_uFuAjYbLBweUVDu~b< zYe?rtxVb=bjBbcip53-Ku&$U?Lr;MDOJ-78&^GOLBRME?F{7bRRQGskxB-FXI2iGx zQ;$;7Kz|MP@v>=ndKR@|`x4u)VxQ#w|0Yq?hCBMB`O!l7$5%Z{1Zn!x2k>;>0hfF_ z`1#;-!M_dupYTYomKD{{Y1{J3Q0$r_*W6c{#(b*}V;f1)3{qb;YOK(r;<)w};PclULZr zCwqwBa--GKZ}}&%{VsvN5$`|IB{@RUgZK`14EfQ(9%@@v-gXLxx%z{;a)@qt;HKPb zW`K=7#$z4d`g>9GlS%e@3F2ZL@i@Nx`@q@XNgpltvSvD>jM$Z4+OD)P zCo3{5QDW@0Tr5`VQMH1aH$g32DMrZ}p%=@Q_owen7t=@5Per?25>&?0LuoTzPI^9FAXvCk*{+l-yV0i@^CDw^e`ST|*hksT3T7wrUq|Iy)Tr>d_`-#_ ztHc#@Tvf{Dsg#$T)<|nmD~=TF>FMYnKmO3=gOyg)n4~IJZH&i0l#Z4EBc~O0%T6{G5yQqr(E2GE7r#(H|ZoqfdK&?hX z2y8PM2z({ps?#YJ#T|)@lB5ihbtsyQA|zS>Q;QM8zgi5JzeEfes1KwmUPx$G%#W>2 zjKZH=k4;dWlsjVmlAtDG%eB$EUXq`SlcF$)f<*1KPLOn&pNQE=sE!yc9&B)}`bVY` zVuu5>F^DnL#Y4{kQV$WSN@KPLWfN;>{0;b(&P ziE9(IIg!j{F}IT+5{86SDW08}p!gR`Q5*@T{d_LC@1UQ@S%T={iX}8a#{qS}}59JI9v|ZRD6U$A|ELjwy7U zppIJp53`UtE17Nf#WfS#9Ola{W=>ucGo_^JuvD^7Ga6o}dtv!|9rR;*SMWWZcI~L? zVP%X1CwD};oEA`h5SRR)-ksf;<^@hFczW(jo}k#-Gu5{hn#EO8Wi?27habsibFtl7 zY;Iz}YRrz;$J?vLdiLe;9M91D38v`2Dym5=O5OA(7_N6CsyrSofd&X&L%JcaR^i2J zmQ-=>pXzNjCJHcNup#L_CNZ8WcpThZE5`9?{nXUjzOmzLQRz@pym`8|pSgc1nhclG zpjLZW;i^TV0}dBkpQ#iMTS*tAy9@VM4hIo+&Vxtj_qOyoB2blN z{9%I1+B3HtSUx|~E>sJzp}ak%X}=!KcUz_M2+fbt(_x%p`_n^U?De#KqJ<*^%Hh-wVIkuJ zOxaIhGk+IM+55>Z^u56k1wRt}_>j`txDCzx{#RSt_X3A+;oIab1+orWP4n9aaszt@ z_>T4Q0*$S6ra)YY!C1bpZU1%LOpdLb66qB=g#L}(S$DHxoHINKx9yMYy~16YF9$4L z{{;+QjeiyPYQROqtfcma_lMZKzDm{JvU|J!ZFj6HFw23$l< zPH;92cYeHZyihDO$m~o^1oIs{Kot5^p+RUVUR96W0hA)t&$L=Q~PDUvH=th#3$#r0aG^?2GW(U>W zx1ld0F64(It5T)Oc49nH|-j+3cv}CXjvRDez}Ay%6KA|wS(4iUwk-vRk}bK0Unsr zRWn(&GM-MCrACob2)v-^qRU^ElvWnWoH16OpDFabsDRVCfi_&f01Mt(fGiFgNEYWk zO{|XB*pQt=I+T7(1O#bHxeKV zQfSafqJ|+8vb?){(Bs~bp;ZE9VLiW0aiI>WlshlgaBVYiHPD^{wB;i4Bdmj~N)Yg8 z0AsRn4f)t;%J+#z4vd~;yK{rRVeqi+919rFZXo8s&w-@}J%7v}bznLSs=g&an}ea5 zD+c3|R#JOl2v}p&OG-Cs(g+S}(o_=kOvN%gnIB*do5ERaxF)m-G(s{ukc%-|!y8Cc z*)x7WW*e*O!BNc7bjd;nCNHo;tdMvibbv?$J|QU4f)lCHA^hVWbf@33yM@O;{k2`F zvL4Q^WYOLJO~1lAdgkcVn}e%6n@Bsz!_CD*>(4~z7nno=klcWzuZ6`q5+)cpLv-hg z;o5i+Gcnohg1EeJK6+;T&>~cnWR&xpovVX4PksGuQFuP6Yy@JXqo5VE$->%|>J^6g zMD#{jZk*o9ri7A!8o02Bn0jD&u?D5lEYkCOwR%6?DxtkfBhy|RA8)R7v%*+~RNB$~ zYje!g2rtcIR8a68ZstLj>?ChYk`u*ouv8~Fh(mG<*ADK^q=pF(Ht^*y*KRxdW6y7` ze%bK}lIG&RFK%5fPT{c{E>4UU&wpx}OdS8R)vf1$Ecg%jyBU2gl{Td11cU%s0iz&C zPHz^uEKnPLzLcN9OabbCSy?xvt6J*pXB8Jol+G1@X6(FIF44k|_n4;hLP>rj`SSP}r) zNa!6*XKC?Rv)4t`D()yX~*q{(nK#{}4P#hQEBvC%%26a-dPUGc5U9b$gCk_2=B4mhP-4qB-^KuN+_sIP*hZ|E8Jy@|g{p6yI&yw_I?L z$RI(%t%n5%e^lqKk!$FixIIfNBc9x`+9>p^u4M*a_I#l9~Y4*Bmp=XQH79133i+s3eL5<1irT zw|I{P9|3|~0z4ZvR2%Lf(yxDRgboe&hO%^Q7)%q*nm3H2e%yGk)pwFZ~X$^ACb&g5M1HSvDra{tI1aGZ$nTb?XBIM|8}sau_nm z6vVi%*igZ1PDji%xmO@wmbGv|i=5UPMcNGJ3#Un*IL?GDuO7J>nA5sP#MNJ>R6 z&jlZloo9JdZX;M;!Af7=b)0X`@#@?_UoIY4;AbQB+WlOpK9svN*~-VCI7_G7>w7yn zEjrK#5IRqXTptcD%Uz(5)D^EHB|9Q_qHYG#!|;|zJp=SJFZ=`|vtIz2&izjPcW(4q z2*3?(DSz1_!HVLtw>$Kj3DnDfEJw%(Kb||DpVeE@d*f{#IeMgUXlEh%i6aZ-poYV( z5ge+5$IHxdISt`7Er}3S4s{!%S>|^OKc=8w3rp>CQ0i3*lc(lM#!;SwO)j8>LYw>| zNtR$|$y^l75s6orKQ)>5MoQfxS$ELA#q^NORHQbxB9z>T`>>~AvhnC}FoD26L#m9C z`Qx)=wO~JzGJlM!Mb7MA6jOv*y5@RRh7G6O)oD-hE`gF@+0QG#QCL*H{KX2ZLf~5^x}JW zckk|iGN*c*XeiJ;#ys6xa9^u39XtS)SJ_`-E4@Wizq5nS6eZl)Wt$~&>u6BOQcOex zbR1g2VLgDNUqPcX=}CJjLxP3JsXyKf8h)0ND(D0|0u?zjJiFM(cFCLJDCgZ$A_$%# z#^504VYj9xkp;_{aH5=YXcMAly-qbP3WU|`P2Ol!s4{Lo5*+ADx5F!}|0z+Ai!)B~ z@9xE~A*%$m;x@(wVitn5A%SVd_D~!iy8=oU<{;LDnAk^7Gh`BLh2a@%s;H4VWk8uK zvUp}Hw#?OL;Z#$F0;dG$lHfhOq|Bdx3^$V*WAl~9*l7QH7@OAwuMJ)=8)c4e4Pc!V zk&6(5e}{tnaZ!(678HOtb(O^W6H}h@n^VJ@aYXW#HtgDJauG76d`2Zt>CZrB< zJcXDqH$I0QBo^fu0sLiK3INTGi>faV!ZnOD7_rA-Ztd`xVe9-JpelOJ-$H+DaMxjs z`?8%{esvBb4;5HI(GGIa+RRbkMM? zv?-TX2sG_%G|Qt+lH3N^0gCWrLJ7sJ*_gr*S#MB1Z|)l(xb5@r3z9#s%0Wl^lfIu=us|Gpjf&f#KU(m`XA31mCJPUhLH%Ow8w9cRTU^NJL(M-34z$+mx z7L#f!1`LBZRhw(o-ph!hX$aK%msumRDD*GT(P+4_sTpB4~{0Eds$W!*itk*q1^+H zpXDC7+&uSC;LrNj{;c13>%DvaT6r?(Dte6+@V(*)(z~vt&;GOMDcyIlHGJfiw%vQ+ z#pUp;2hRJowcm4N_j_*b+ii#caAx}2Q?s{z!&lsni~zbPy=q1#hhS>4I$c|$n)QZC zK*YtU6dv82j^@+)kwYU%kaps;VFx-Hye-a_4NRA__{$-ko$zejxx7=!Q2Qk#hmO?K z`Dl9cXsOsh<-fAsUYZ^suTIno$inqPin^|Q^T>5KebuGOZ1PQi3Y?czQAqD*DNYYtF#V_b^pae+5 zt!w@Rr+bsZ0s|egx#Lt#6Snmy#hETtPkE=N6%csp2n$g%EFEb>u`{^XWD$^x^@NM) zL$~`9gOfAS>X+*Ms^UvzpN`)RC_YIco*xfBAN)yp6=sqB;pWR!Y!0sc92&rs14MT= z7YFkAbFcPtv%WurG>?bo-IZtEzK4y$RfBn`E#Jyt&Dz0`i#Z<*$^(h5?bfdAy`2mL zTz*A<3oj!`iRRAuSK#lVqyBaHV-EcMQtQ0ee2XKD#lMKb<80@N<6nM0Z)4ZH-WC$= zSU1*@o$43YyKf`CzS53b8+ZUIL-RdY=+)?jQocmA6Q$r%aYLK=@tKH(#;OTk zrwCMPT)6m-iQbb3$8X5S4+LlK9$SdYC;tA2CmZ55m!Ep3eR}JTWaP!s=#F6Pbo-g7 zmVuD4G5MCUW2A;p)7BFY?Y}N%z8qFWeFw5qFBlP79Wu(!!W= zu4IOlhClWi*XJ64DVEt{6Uz0H@lW zI#1)Fy+Lcchr@G@p8J6g4d4gBW%~0sc30nKgAxnCQ2BHC({!AEz&l(cB*)28a;Scn z+wqTOcVbj=d{su6)|2tmpr{`VewQKv4}@he=ssQ>pdf#p2T*^7>p>x4rYdoFaTw9PBM098a*reY`_tONw9X7)F*xH|%13|7x}?y?Ov=~+rHgxFfLthBS47Sdv8A~_at`Cej3-S`UuMO*bTrw**MBMb4_JM=x1T;=3n=;rlNG=WH4$m?79Q&awawPP-BUR7A=5<08rfEo zoZ8*jI(58o=F!G{t5~(<(us*BDUqGkVr#zf=$YM>vC;kQ&510o1{aQPH@0s$dHgyC zGg+&D@C}$?$>Uc>)<+m-kXGm(twH7Cw?B9H!+-K!8z*;e%8ni%TSWmmcE|DMr`r?| zKX`WT!2Eg`d}MYEtMBUA@uS&IJDa1Yk41;*{@8_}8fO!m?fs);E0-TTFxAFQs$(#)GC{OYf8hFhZ88Zje_8cHHLTq90Wf7P_}1WJ zSiPmPXy^r012$EBv9b+PoXX=K3ns%K%>Iqv5=+Gw#02u1hW`RPf}`YXp`)AZ^GG@&9;iWW`H;ObwT$W$pE~_U)=S@Cx$GNRUHZ|7$gi=d&WdqewB}_y& zgJE0T99Ov!ixmz2Aiu329AoJBb>CpqcYDRtd_l=}T`IZ_iP} zF|3`wG~b?V7UTU}0U0}|78YSrf|)}5WAo#O+TF0UI&pC!OvXsDZ}t)?KnSKX^-NqxQmNd;ZdCavddwx%PPQY2-9X zY%o)TB{t2_%ATN6=z!#l90weLcxgUifhd*5j-Z`0G!y$P9p=8xLRd{^d~$rd>q}UKb~K|llN*j(4g@kbN3t5?Xa8@o*w=dP}W25 zjl(190&w4#cM)>}HzUkCeS?n0NXlk|s|`vrZ|;=ZW7w2~od#An!fWbu4 zl+~V}^7*tHns7Sf+W2MO#&IPBeg+eXpWJ>L52igJKr%aLadE4Bhl73}rH}o~>f+j( zVYIu{#pp3A<_Ts?&n8|l2dMmxGV1aP-!c~*!XFK%9!%jxZ-ZpJ;e2sQIjSpY>(WX~ z*}WTN_o{TMds;y$-pIxq3$4q)QzYdjDz`MMG^iL8PR)Zt?V#6xMAsM5tZ_3A#~NqLi+TVzQh-ld#Cq9`=IkqKBi_@i(rfM;00>OrH<;0y(;}I)PYa9|wfVe&I=HbP`2_0aT^@dmn+z>r8%bFEd z;4Y(}L9)3T3B09rc}0RafX5sT4St7T&tTiP@UP9kWH&;!^DWpOqHud(%ifojztlrm zKnKRuzWLG}1ftE7>S0`%ZFGCCt57Q*N{c+XniLa#>d2M>vOFF2Ylc5^kXRS;cuw6m zhtJ``v2d*Nn!C?@_hUip)PZ=Cx<%;U3awvl;WvOTEt!lDoN5J+efOEWUsIv&K|BrT zZkuX^8Gt}ahoD)DE6uT@(&td17xsHMDgJ6P*^R@=1dl_!{l}V>xQ6YZIC?(Pr*^4j?|JP*Tm zr4YZVu>O4~7I1Cnl}Nq9?HE~vgm@=dldUV^AF`bkrO_cw_j zc+;tz4z(}J?Koq0xVLDrD1Gjd2qvKkRFtbBs+kCLW_*Di5DH6F(vL1JwIJnTv|T2} zAP#9DPiKGR1u~S3U@vOB*TH~XSjw;|st9O`%f-)Q0z3nf+94a*n}e?snsRhUadvXH za8%j|vmh9#mLb9~1ne^V50U60&=zzX-taK^O6y^W_2;jk!+YR=2==8j$?=l!#a(HT zE^;|=D0H~bL!twC?dfs*S!f0CeaMy#(flQ}MwMZt9qj?06G|097cPGc*8}=Xg7;Bu zjbw>YURwJY8Miy+7(n+m2N1a~peY$;tw9{xi5gq;%Z=drp#3d@ifV_qM`Nf7UmLz9 zjIN`)X;v;Wvyhk*Kr$fhc0dg!oPJ68JKq**#|SQ81w0P2a_PFayfz)XJ?lQa@8C?* z9B)rd94%JUw0!K`TF|WCdP6pI^ukwc-1oL_f{t-{qA@#neRTJ^QgRSV_f2UzxUE$9 zrYJm^l+N89T|YP5m{_jdxA7HcCJv2UfYk34TZNfg)~cPa)i0*ia&O-W)6YcS4GIMa>o5Hi)v>D*5 zkrlo(g8{e<{0V@N-9_pJEqGiocMTjM;)Dxgh$le86Mi7E0;~$M1l|HDpxCV>@(JXP z7f@%ary=JA=)6EK!KBUrP?lnB7yS9-_-1JgvQf&4o)pW39pHrwWZU3ylGX_2K!6=| zI*Lw4R0-9vXrX~{SKZs%3%QcxC5m7S{t1l1j{xqj7Z9 zL6d-xr`MLzxk!~$}|T0p^wr_p}f0j|+# z&rAcmZhw@F-{P$I5O8ta81^|XoYqZpR5A3ddU@{I{R{Pb2Bd;r8wMTdrxMdcSNvuj z_qAUT(FKuLLJn_Nr|svQv$qH6a|dBXK7ExzztclI@tcB;Xe-(dwxP#F*N_=HiB|A2 z$x_(Nlj(j^l2@5<+oh56fqfgb9QJGF@W7$!`blc3&6c*eXP}dB3wP5ySa*ulqlM*f zRc>H!oq#?%+6V4P+G}IQ)-v=N@5E$ZW&MU$*6Q4``?laM1RE;AmdZSs7IDyw!xhZ^ z$QxO-C4PJDgaEu8bX(VcP4HN7ESV>O3FoTP_}DGQ{aYJXQ`hHqIG1DP^mcI4XmIt$ z*8buxW8=geLZ>?OQ2dEfi_8Iwjm2`Ocyo8FvJBwNQLqu;29i3!&ck&FhgiRk^^H-y z7OrdtUpz(p17z-o*KH;EHshJKym|9tHu3ezvDbgiwXJTMVHHl`s2c^F1Xa|-;z~4u zhmcfJ3gLY;`2IT1rQyEl;A)Vpk^Z|ndInT5KEAdF;`xW58=zcZZGi$TK{|qOwiq8C zJ2?@Td$bUWRywcn-;Rodm)pDP};ZRGpj1!jN@0 zN%w5RiqM1WnSDrym=L>dAGPVhG(NRbSC%ZNP)%VfI%QljS}nT>sRwT2Prz)y1ZMkC z@YBIR4X8Y4+ywL6r9jFV1>+tDe8ZLa2<$Y3r>-!~8jb;E4M1~%6#V300bQL-d32i} zl_f>&i_8|{JqBI5?)G+=r>OBN1(RC(xX*B)n3^0nI(JV_Lv_G`GC6^f?2}6@ZoFW0 zXPfQ6Hg{9^ba|U2+e@Id{0UvQ3Hh$ZPhI->qmc9n$2f91h2a!PExoSz6HNRw9Lj`6 z;1fVaO&l_N)lQ47;g!PLzKvNl{Fi^Hl+2dHeaQQxh$`8ck8a>9Sv@#{i*$J$&0Z-P ztB^h~964C!#71=UTw$eFyQ%%2i34M62dcH!49Qcf6Rq*3wY8f&l@d8iy3mt!_H;NO zjhT+F7tM#k>Djc)dnn-pTIt-pwzl*FDDs*VFVWRxxmhI%Q& zvWk~_dd+%p=KPUxY-C)>6`#=w%pX;yB~hl76tGEynXHvWHS$G=NF?O)ry$Y7#kU-=Hz+R|>dBE5WhdZ>1mS{dVTz6gSfkXy^~;|U5-^nqO<{+` zDT!A?JYm6~dO$Fd&e1|H#SaO6fa-LGq$X9WudDd@pd~62C8r*=oTedYLtf_$m8Bt8 z_b51{m%vZLQub)5WpKVFBVOi2o-n=WhN#*jj8%ft&2YO|qR_Q)4Ze-=t=a?EFwhy(C5kN{X@e#uS3xBw zx-Kx?9>KX^?3HnH#%6(xgv$)S!HPMS%(wv|IF5VINr?&ih%4ahmK?AR=SL~e^A%3o zc@E|H$Kj>nrBF+b+f17%od+N)md!D4Y`G1MUMyVhZ=N^dXwItSsagz?h?#P#O+CD+ zJ_dM2LX$C9$U&X(qjx2Z&r~bvT|uEv;ecN2SiN|pkX(vJC*PkX2l03nWhZEA_t4oV zXXoEBaxNLbJWHFgMb!bP!Eq%B0}&RH@;SG!e&Sc~>7yFG2f`@FuA~SYYMI>}IRVs)+~NV8UIee?gqZ0%@Hqy25-1rA6D}ob6>Sm_ZiAe~ zO>4*LB65kw#H9fT;ba>@*5DYRCkV5zL7v-ozREeE0Zay60;+slpxED$8?&8Yi98Qn zEdwtO+HJ-Q5DX0%$QT4E%EJNYJXe{yFRx`}8RMOLP(IL{U9cpw1mp`H^qoLZnMk;@ zkY@*t2Bzi#EeXj%at^1uvHQB15eM3U?jCS8kj>?xVK6qZ<{9vp77&O3fqD3Pz8K^& zFHA*u2KTNYg>;~TL5Yb;m=cmQnawKXGsBhzSWW|zNpTT~=;FOxBB&AbLX}!M%z-2o zpV%xGtCRJtx!7vW6JR`9D-~NALA#jzX~J3)ghG{Jmq}e20WPo;;6XpFN~XaS&R6`Q z1uaxwY+%4gZ-ss`4Vn|ZhHM!rS)FmpXDrmgdw;1|WvX|mxUf>Jz5hOeF3An*g;HT; zra7L?;Z!g2o%piGX9|T;0>YvIy~OLufeVO(5007A0e@*E_M}j8X?c;6h=|Ily4)!# zM^t@mGA+~!*}nbzSBe>mmD+d(921pG9dgozZM3J-p~iBlgsm=-GYA3c~|fe^zsA5a4wagay? zi84}HSW-2mSOPET3`$f^eT6o`Ea+TGPK&;g1QfhUR3KcBqLbf1T?&+?(#VGf6T)>I zV~I`%R6w6nrZ6icqX_4~1E`JBcQzQ0X+-KIR3P3m_z4S0ShvW_U(tS~w3Y0WVBwEn z`ovW~4sri9(bcZ3$x#bj_;+Y6*O4>s3my(0N6PRNTX@2e)&;Yu17mx*Y)={;gbrmz zbC9S@b6$3+$NY#4mufHsr=SGaqwCL+-o5u292;(Z$fM^gk5aMhr%7Sa!Q?H&XQ)~y>3pWjl=!5WthVKAy!2Iwm#B{=G(Oz z2}c^yjgiuz$fGEUZ$uS`5x&-*k2)iDGD7cPs&+Qk*TzxH!P)lem8-k$2T0@iR4tv1 zRT@~QAm;jasR6kuuAc(JV7&IzX@pE{_i?yl*qr&U=>Kr9Bc7kO4v< zHUK{lc#cbU$2}0f958)rzaF$02JPYN4R!@BIit|`IDDlC7&>NpQmIiL4VNdS)Bt;! zck$}(v@I1W+GhkD<8C(|GF>|MeGk{31HMNHhA1qkd!R1W%apUHjGAWa@Zi;0_HTHiD{qnx=9IM%Vq^>X&<%YxH zHCn@KhTcs1pqJsqnfS-vBNHfoC!5KBlYA zeT1Qr=LDpRC~JusS)*O+?C&+vNWi(Ydiy)Ic0;N?CH5ovh(r%q4>1(cMf7@6ASU8k z7>85Q2x`VSye7RPy+*o@;8OCYK#m*H>+m~Dr>l*2v39idP;X5>L4=BMQL+AFLjj}& zd_XN{*Ln|?j@F9pMs+&H)oG=8&)mWze{(H);>>LiKJ;t5hr&bQ2X7F|GiQ5rz(* zQjDvZ7As3xJv&fnQ2lMTSu0cu>GIn8Qi@bkZO+!CnS)uquv976c)AMtBzRbbBjW#o z`nDLKf{%h>fZ=JYzCmyuduNbILaG~nTkz~8BR>CaJMAo3O+FNS@oxqHX@~a+%M_l5 zA-f(=dm%RXtWJHlkf8fErIt?;pT~@PYNR43ykS%o20-Eea`nGz~4$_3Eq+ zF@wkB$IM5<&)|l~fM@^_k?^Jx1bCS8qZ!*~9Ghx8LOjfrOf5-c+N@)3Ld$5)N6(Y% zplo%(?~&jeVH6!I5@H(ux;;k`{I*lNUU>|xB}#`L&hd&+8ZltQh~8tR zp<@y&?dy_$_&vY&gwv^atYgR-j3TIfN4R_Ft3CY>j#>tQ9cY%MLt7c0^c2)cqnA%5 zWMW)1Inm5<5)35^ieGe_A{D;(At@1wQFd{ew1vTkUf}Sn#r6|ScIsxbi4m>K;L zMUg}sEnXNo-afigtu}f`7w?KH6-wkut}B$+kIkK$I&oaTKAe%bJrZ@J&Bf^RO2XY)YPwxKn&>a$n(6@=S4wC~$xoc>>>Zl&hum*D#!rZ34L? zAeL>p^mKYDyDxohxs!B@RWj=Zsp^^n@5K34Dbf>#mx}QMC>ja&2w1&W%o~gk^WU*hAE<*un0@n{!d~9N!KOQBGqulI zxIJUXyhcWx3ERH)@S4`rmFAEkxEO{EzYT;4w9Qgt(Bt?mDS}MMlJZKt$w1)BtqxQ+9++CxVpM!>V!puB122<|1~qjS}f4bgzsg})tf0Bi$u z4_Tmf8kJtfyx3OS#%KXVJJ>E zA`5EeiLuT2p6Tgcbhf#)yY;GYX7L}QHHx0qhEsAiE;MEI7#@ndWUDipU`>CsNEx)bj^u44JOcv`DrOUWp(M2@>H^r%X^|A&^W2 zIvuVS9IBOpUl81k%h~16z*P`Q%fJ*~7gj(xD9&Vs*-;pcm;@Ggp(;kW`vQPB58!PE zM}qsHlkn&wbwC+2jp@sT^NuELnk@G}$?4kBT@T_87y(XZyqmmGGD$%uNSVu(qgV@F zsFySrN-gVVe4geu2TTLrzX)gSzxfyEj7EQ`DA6*;~FxFndD?8{mIRlX$K?y2O zKFR*||DGP&fzSsU8>2AF*>Z)WHg*{7HVrvvmQf{==Vu^YBM$M;gMAN%7zSLHlNFnTZXOytxnQKrkhEte9l^YLAwB|kOJ(D8~iVf*gk*2Ss`2l+SoW3^08{|w(|r2 zF;p>!PECByNubD?%fP&_sd1VP$kqe?S3I!)r-j!t>|L9uv?Gp2BmLQ~=_9vC=S&eH z-K5h{x+PRH81)>o@yXUeCr5V{_!PvG&dH4mzyIwc2`{e8F}Mj_yYi=IeFR?G{W^vf zqK`nJZcfu*Ze}+_1f%PscSN_uS#UDCbEbx-U@Xphu&N|j&Em0Oe^Q&d^JKMpKxVpD zat-#3Day}Ar=od;o6)#@IBWiLnjTgTrf5Ds72&Kr1(Lodp++rHuwT2!o(^*w3ti?>_VWFEJs)6uCQ8i61FAlX8U}R$9`)66{IG~nAzr4#HEu1F z=SUDA3BNz87A}7wd0#q5#;X%N;u`r6Pm*u;mgpVvb(b&3M`I#Ou#%J-qt#DUCmYCZ z*=YHLX?ZIue6&WC$pAxVEY%bq0A7Gw zcnV%cw+jO64>Ta+Q+I1Lq(-h3dhtK4@h8?kD=-K#XJ_s-?ZrV_T|D{y0NNRO3Ct}?xtZ;@SN>Rj8!A9N3gu07~IbY3edJl$6UtEj(W zC2`p~&huDM=W{HVOS`tpEuWH6K_SL+JLcS(IL)bB+qPmJ+Yo!#$5Nl^mdJlm$uU}=%d~3&BI6ffgszG9+ZPZkIYXq zswKKs-4lhYOUNfIX+nh)Ec#YvdlS-fN>hyd&rlq{6#n?3VzHY|ZjxdS9smm{@gT6u zb<=)AOo1)@^|0QORC1|YuHi$0HAEUa<-2447F+lyr(`qBg1METvCu^8xx5fy=oDWc z;jk%te@Yn&RYF0V6O}7V=`1izr6sx!D_CY#2~;WY(2~gyynr8gA?hrEg3`j$deE>U zD%{zcOa{~N?l@dBTDWpPXd)YQRH&kfEm47n08S7Tp;@J<(@UmK&!68(%OiLTwLxuT zoR)-6L*SK>Qy&cDQqwYIMMb%6DJj+(VgxDgaIZik5KQ!VA=8&{OnV<=qc=g-QpOmD zIAk17%4BzME*^Rs{{qypeJe1xU=nrs3-(7jDr zDU4-pqzpj)NJ}}Pa1DorY~+QZi%rKS;lY%Dc>}efxw-)JNK^nJA@Z21nYMhm+zib4 zxq~8wRkhZbxHA<7QsN8{UxeH8k-88#aGwr>rA*6bebHUV^mw`jf(kkxr!y7$@3a&f9(J$Ud(_ z_SuAkduQ++!F$1u23QUV&5^{w&i2KtEda9yt%eST^duP>r{j1WaXs2HMCn){cR&aI zNq5BU)09&=hNXLl5)B_JD#X|lF(+ak4Qtxcvy$$J+k06fe}TW)H+J0(cOf+vD^sFUqvuh$$pM6^N2VOS z5KiHSGJykpoVJmz!4}LoiZjfnqrsE$W75wB2h;8JcjBe=Bf(ajkEWd&y$_3G&4Me6$} z8*x1SsaiLAWAvTj$AV~=6MsAUM7$XHP=k^JGzR-bGszT=SqGx!uo|9D4uq3r1uBPI zAWXbbP}wZKRBUXexZ0AGfW!YRxTeCRNQ*-)Pa%c zwqW=2UklFQl_Bdd?j2;^>w!1kZBb>i8iNc7oNXX)flL9mlK35T96+8z(ky~S>=Agw z?ZVt(K?sr0q|jhE@a0YR`UV+QA8*R0@HL_ra_HT?6d z!vhkxq${{Nm)nl&Uz^b(FvONS#gt?y;Ksa%ZnqF!{wx>R-^rqioxb#>ik%W~)C)JU zEL|VsY_`N?w<0l2OGlqI^+5?@ia21K?nJ&E(k;xx<^ar2t{YY)=G!Yd*gWe8^P0Grf5x>*CHbm;GFn{2)0hVWE;@6Ma5qO>wS!5y}ja z1n)HgmU2MqOL80s!AT&Nbm>7h5-mzt*a=Uk)LbRd<^NP&{j;vRnmty6yF?HMi6;}~ zr|y32@<;!?YOTH*Tx#eP99%D`c&YdyAygz_C*mRji(%41X`K~{th%g1mkzZ`QhiyG zQnDj^7bZ+au>9~||Ld1#wHn&Y^aST89xM3OKZClgPg-48vd}LX+AtB=No~doiidMj zoOrn$A3JQ}mJ+Fjkozp2CkY}1CeN}4XlZ?H*$lB03bi@dS_b<-(=|{>v$302@ zbCw?yIERGId3R&ob@+~KOETnYW7QCT3-}uAq56Y%NtG3mXp;0`BWLD}vvX=j z&+Qqn_rGHa*G8vsB0bu?WBJ^rI*c1d9E4PZVz?62FP&Syqj@wvkrl3PSBn3qs_UO| zRaZ&6pd`t>l8%MG%!VZ)RHzD%a_77PAF0p(r)#}Z@sYe^#}H6|)Kqvs6TB!Cl*b(n zBN(xv`IpLsjwu~JZ`%@HhjGvV6%5dVw0B}!jUn~2<6tdz)Jc$HNKHj<_wC=^j(LXE zn9v;Oc{bSLJ9lf3`*i!^!RYv)o!|0poOxu>#&0R~Ts96NL%8-=jLu@rl1uG7-xfc2PfxyrLQVjtWIa$J*h6B%Y`( zPp@4X!}kL*su46LzY@2ki5;U2mk&%u$yubZfwfD^%}G~U@>b-*|KF9C44-LUKDwuN z+n#cXp83mpR0AQ5V*t4xLT zzf_^gIM^H%l_a6{$5B~bFpTgCqNaZ>_^se`#7_V7;9sG>!ZIj*Qh!dmx#^A!AC>Y+ z|42S=u6iBM@XYmEp5e7WZ$ZH-wkjQ%xEe5q@CJgc!w?=zNO1M|B3~Q6xI$Q!h@4{+ zFVK3?TKix$u~)(*eSzBJ3}J)47{cxOr8_^s5x(`{n!Q^?{TWIyY$8?rU|=4xa>OB< z{yDmG$i=i@IhOHCF^6{y)fm49f=cK@xKA1djFI_EV24M7k+gG(L$q2R!7^}Ul&uI4 zWeis>f*Z;xX$};r-B5`u1+uq=l`^iBcasU~7Sn7`RH%ef8OP<8TCR$lx+5)D=EJS@ z@1O~qj20>@ls{RFmM9RZLeKk(8CJ_`bRj)R@z+Vz&{UL=j)w|YDr=j`9|b#Cy*ybg zr3carQ58*5maXBHLQ2H)a%F1ch+nzbTS?*5bh&y$5YNONm)_A^rJ7L-3cv2~aBk#Mgzi{NP0_7*#>uGB< zUOh+wi%}Pvog7?^H(Tj?J4EYNXjYnqW2^0v*3DzQh*D)ToUd>LcXQIE{DRz4fGb5z+bu1ZX0R z!7Nf#30Fv{GQCwTl^>q4hxAyi4cnMtR#$OYaw}jxMnK21ND;DBr`3~cApGaPGODyaUj(WYtO8aHl# zgO&()s(@RFe~vTMskSCqA$|b&zbQKE|B7IcDR0rgAUwH z0N6bHlTU;1;GHE9?HC3Jz?+AivV2r%$>Up(T|KVV{^0Ajv>eS5t{4R&Q%c-U-E{)?^ zCxtJX_O!gOF#7t}U--VPaH)~Qk-Itv>Klyja(5>Pm`1kZ^fnTMESvJv$!6uR{j#HXCA7YEWWDp`sfWj zMc)o+%><*l`fYJnV--lWnP7q`^j#aVhBq_wqt;M~gvL zC6hfrj61CMPIc~Bm|9@qNMbONbB`kb{~a-a)(de&yvJ z4u`%kXPIc-#ni zW&QWi-}2{u9|o~@M?Z$WYc~=%iaCFK->qBcui9?c2H4#tZg`_}<{M#8#R*=op3r`q z!RQvk|8fyK_&~-ufrwEa0e&e`L5_p}rkH`kIG(PLQtNdrc=FEO+TmjnZiI4mDzS`5 zqhp6_yLWDWV0U%$U}?5~!zcdPZ@uAUC3$oXA{JCvs+~jS8=soI{O>=!``F~urPDhb zN83{i*DSZjYEg6=7*n|$iV z@}Ul0F_PlkqewRWvQwN)H|jS%Rvb-9Loz*AB`f%BTz_c0 zxOnGR7tfOai%PW#+swo*F3-;c8*<(`tBKr_;o(gfz>lwdQ~X zK2+09Y%0f?cOsh1ay;-IyGx#D?e|Yn-OzRbDc8`V1!>!FCMyBk(+qHPVbAhP^5&-D-sOTc z{q`}oO_L{QYDDGktKI!Ho202Q$-ez0%sZ9`x+;IeL0& zK4!yi^qxrim#`OrJqQnuh#8ddCUXhpp8AM2w@Jk{v~LA0)s?mnzpqf!VE^d*R*yz}G)ESe@Vr>1`{_1x(kz!sA$6d*=gc*PKbunZKgleGWi z|8UWFaKU$j3n=m){1BY;XM*4F7h|&NJFJYd3FTnPPcE%dh~Zad%Og8ZHRi)K#SjbN zbvAePG8Zh87qE-{?J%{W^XV%W*#4w-cX1P(BF1?zrz~<#-Q>Kh+!A?Fb~^v_`=Sqw5W zaJMDf3eWcx^^mTUv@8{XJY93=W83FdOO!S}Bf3VAp)`*As7rsCn%({G)NLgH+EIJK zdd+5?wNB^?%Yb_<1Z>-q^;4=klM2{48hkOWuO6JBh|dN@G%M_<#?QpT)q0xMX7L{D zv}WE~>Xtq*c1>3JWi(^^QS4->%_x4@DRyxgMOj8EXT{B{=<05CAqd*RJExwV3@%Kp zy?*s-Gd;DwqvE8w4Lu_C?o)Bl3#Ei46X^D9F^=lIsg2`v6-ua8|=sT$-Pd@mR z>I*ZLjj@84R1)DaP{QL4Sw9TdlV2j)Y`IkXjdC@34+C4Jw;M>9gr07;mVNd4MyK;3 z+V!HR;s1XZH@wf1tu_ok_RQA-Xfb{gj4RR8HJZI%gRlm;7zA;gjl=L-pgXC%%CI8% z;26<<#AanHOBw|6(iI;t0<>JJEWSLeB3s#t;EZ_(Y#HVNX@E1V8NM>oiol?-lsByT z)1sVoE~p&jm>kB`3v2yIO1H+%tOMN?mt^5R+)`=eJ}!uzs9G`ZRb`LShHfFI1?;6> z(S@`@lyFbfALlm_N5ny}nECGNiUO|zb%fnSC+V;r9#4--NulAe;I_X;wv?FwscBD^MrHf4PEB#g*;_0Fom5fp#mIBjkeb{)hW?( z-JNOA0Bx=H{eRhe6KKiqyS}sUzSO?Gs<-b;Z?9W#Yjvwz-L2J@EU6{gk|kNPC2O-C zV1V=#tcaVEf=OcKa}a579XFyRml;HUX~ zfB$={>a}DCXH14n=zdjo@BjYqz5lBF+gC>!3p*a3LTMKIw$Z6&|LGf|ji{4PC0n6lAgqMXS;II^_Yq>Y!Swb{2NxUem9v zm>9lN@teJPXQ9K90RiNo=y~R25yNJ_l(RQN^L|Q*gsEB=}Cf6^G&~! zu0|L0bCnfD-|M53c}Ag7e}azcwNF(V(LCuy6hm*PX?_KV^L!;gmtTxlQ>r|p==%*C zjSTWQ>*Z~}*$os5+DHZ6A;y4a{;66_zZE~)NYnj)nRopsBzH@!MvjK-i>nqmBfc)h z749od)liT;Try+gxo_njHVT`2=P zoWoBK#>glQ1q<`W$GT$>z2}{lfNqbj@G~2e`F{tVE(E*uRhwJ_n^6tN+#YIA7GOFyChij_ss4AWqP=jo}HZC}!##alxhd6LK=F#tnHj0fu z=#sJUEOO~}5cI!GKjRM%HB_O&3%@ivjuOT8WlE(9nWfTKl5Z%j z0-GpuT&lAYwII{>a@!*jO#8(iBCh0KgkD5mB-~Q2bvGXI3db)fX<%txW{Hs@rj+!? zznZp@L3K>xsLZN>`}UUPT9`$#=JJB$g1Wn%ZZWj>xcF|#k#@Jy{mOg0&(V1K6KhWD6+XJ*QYEhL*Z_`VumYHyFHsvY*v) z%_jIQYV>GqMygatR0wjxY%IC6h17sxhBS#ILU~OH2l_X_1G2b^!+7$Bfj6~5l9NZP zu6E+rHm1D64U>6gc6E_bSjimCx8M_z-&$xbl0h&*HRgKLYuCe8ztTF6_=Q8px@uDU zC+{9_Rr;;4-u9aG8i^-jr5j~wtBKpU)@at#2V48^ug>REERo;L1PbsgeVU1#|*9j_YsRB%2kOQbQzb8ihm5k z*Oa^|F-!al!x8D8TB9klW2X^o-855Dd74c^;?zX5A~8U@%U+T+)VbrAu&%a2)?e~| z)uR|u*(>KVsCs@ZghPk|5yk|ok}nnTb(w02XR5q1M+EEflJPUJxJ14peAG~M6iRBP zj5JHZpK8DXs`9~0*U^>6-w*DAIc2V;3x*Kl6}b|{I$6~SGs-bOyUYVyO_5}?paVlR z90hPGF10v1LgCS}#(yr&v!GVfXf2vc>k(BLTZTi?(V|BC<<|HyH>QP;wzdhw>z`Wg z?FIF)e*N)VS}XO0BFv}@iomy!hnT2?q`uPH@RDO$Ud^&&2}L&6ylcF*>yKYw4@+;)pML1bDG%~de&qV@US$rLY8a*~2*AqsA{ zGKX`vi3objZP#47RFZF9A>rkD}Z?vn82lkt5waHh_bv`JuQK&)z$}tnL z;Sh+&Ke#MN#4HJvh=tO-z%NmZ06kc$jUl!1YL~w#CC;Hch!1TrtxJwlkd<02V%eld zgZEUFqc#(Bs6)*pF1xIyXr@WE{J^MD^e#b)B?BzUC=6l;zQK zNp3MCBt3ZC?Hzo-oCK81(em83wn~$g5uD2mQZD3P>{cIc9|$v6aw z_xw-3es6R3j&!L)s-Uq<+87f!Xt+#-623x87iREVud8F`8gsjHo#SSyX4vCZCl-JW)2;uMzurA4`STF7YA{mUQr9SN=_ctto^x}th;sF zCOr+h>*qEqS1kALdHtE$*REzkXKCT$_r0k(zqbe7>sJ62#Rs04RVhqlQ z*O|V&OMILs2NMf7ekqY6cA z!8=SXW^KWg6q7NHEQ0+6)sYXd-z+V1lt#%5RE_>1#@tiE2mCc}U{#}k&TCke=u))) zC*G$$rFx)S$u23FQGc#aUI|4P(8@FesU^!wX0N!CsD_J0_53}23~2v5^(pdH>EWiPw-BUk3D zvstabv$wQ_!3N_(FZA~eGf!FdY05*VOG|q@{aQA=nqT>mYnyP5o0pnb-%2C)fX0+t z-Uoi?()|l76GuA#{R!g!;32SWPVg-9_^S=OOnya9kdQ5|%LYYB5U*8yU1mwl zMe4z#Vew`Di3J*NHoC+Zs_;mT%%Y6pzpQdOGP=>7M)IHpbPB~kCjnigfDRLf4#ob@ z-F|2|se+pQKa8m3WTc>irNV zSMeI09j2CAd1U7zagbURE|$Xsx&h(9_o27K$6@rQsH`F_z-&I|^Ux6nG$>z)5eCQS zouEJNTPh_0cSN&{bnsc2U{S!GYEF?7tE4TJTrbK0rk+EmWHH?)#LD*Vpsp(#qzkPr z7wKZo(_#yA#^7C7Zp3-0#Mkv_PAGG?$Qf0-UNl}Fm1(x9$ToD>z~Y_D#zqP^&d{6V zoKr=!&Fy|<#b9J`MfqQ6_;!?7Zz`YoOgo&SAI-Yw-5Xq_#z}b0 zr+Wn*C%ES(ocraClQ}( znt)H|<<%2%DkV`L34lud$o&`bZN&aGg2n!0E8gSZ`^xj)w;%zv{VqL7I}0ts#1m4D z2@GLn-oJ3XSzR9jj7D9kS- zJ)g3fBu#_)a5vZd|0$#vz4IzTo(u9eSOOKMP5{ z&PZ+1Sm@9LHvTyz!250d3P(DlFL>^^*nbz{7k}6Lu=gis{E;Xq`dSKqmZ~cuuMqT{OjrthrR?VvLPsnL!r{a+ zsfYF&jv75FsSC0lo6sF5N%|`#zg=_6I91h5zDR7&@am$CkpGav+mC3 zLcxt9nab64k~HUD2zG9~Bv<+@w~Ng^k=JX6pMJzhat@?`PDBL1=< zmZ?t8GMO2>G#MYCt0=H8ZX7}t8uZoe+w;5mcka-cv`M`;#D*YR2ou7LYFQ=E;(F3Z zYseG>p9*n^M%PZw25BpOQER2!S!vxUThGkIwG}m97=TK(T21B;6?_JxYD9>r`PV`e z%pk%cd=Z$$O(d(-iswB-_z`Ac3ghRPf+!5rR&Bcz@)61V`6%e$RdxZrs_mata3VN z&DWM1l{QWr#IzHc!lY>afJkiFK}doKTJ|l7r08PjZm)XB_Mc)f`1rK9dwjJ`(+jz$ z$jVFVtXD!CvYxl_$jZbys)gsWx8o$5!Cr@9EpJ*IkB0a2axAfSiIhAd`zN`LA@`SI zIbh3vJ7iTiT((doaZ>s-vaS0xn>AC|D`Zr@kAy>PVTi#}z+Lna#7@CM>^WLl-c8;= z%TX{1)`VEiVS_(SV#j1(gnpvE62)l9%*`vIBsjvYS<#5WV9gRx)2ifbcDmJ+^X(s+ z58*8-mUDua^xY)m@@FATZoRn0xdUVR8h@Z)VEA`sGo7ndY6 ziKZ3aqQa6kW><6MtU%$hSieMK{i#qx$ z&ly(Nk`@hUXuz{@IBBl+_J1GciE6vx_8MwVe{Qn2xihzU<@8!y?|^c(d}X>eMKg}| zvwNHCG)m41@b{L_PUf>+1<=*9^=54|-%FFTaj=d8ij#S&N3^0ZgjVTLiel1ggIfa) zl{Bv8ZM;^QD9IYHY5$ep?6kN4J<~U!GPPtV>P1uW;D&Un_7;lud6d+grhjVq%CvvO zm78-rn>9`RUQmWB3ocm_${$&#^PI^DEPK42%3|CC%A08NB4`UBn9pM?yrX0C0 zh1OD7*qc_ZagD0#yAuI${-lV?s+^>>SuI@3@)mLEr-Tw=T%{{UmNmMcgL;ORF+}L6 zZbhdjkDQwS8{O%D1%T1Zih`2nzmetGxi9otZkG-X_e9G*H-mRUl>U~>z$6&7d3_ul z3r5R*H!}Y2%*&%0<-X1m4;K?s7MwxyDD8FG`{k?>^u2D)Au3V!41tFj>-}&(x#<rz zW0cod;>84q#B>riE8ZtbcBWDlC0`*bSpW6dpi#IQc$d!%!vMcDf4C#eiv}IDnas0b zF`ei<44e!2k*Y~+3Vb#^w?>3q$Rpudei8ZaHOODF|EJ1#GDaG?It>HVBpx&xLAA%;f;HPmBQJHSC zNdx1q7u3@1nVd>?UN4x#vpkvcaJf2}7p*$g42Z8z=++u|_lsL7^h4g(IV>i6^z1qw z<}&ZxHaIUZ!5%%w1elOqOG0YR<^ZS4`KyAl%#qs(QiA9}Ix?&;@ax=1rfhTT%73df zu`mgjpL@UI^1nIYp&h}4LuB^HU_enC8*vB`jbzbhXwi!wR7|~H z8+f%SiG!@bbEGR^p7JnRW>z_Qv8K-G>9mO z1R&=iK=9Q5Tx6i}f@B7Yh7>|b68&YL`z=Sghh*aSe&&~efnRv;8vm~oN(JeNkUpe` z=ruII54Q@P4M7BI?es0FQsq+}JwJ!B(gLtSgWf}^Fy=op`V60^o~XNLd1-Vv&ML`? z0}+A8=;gM`8Re&2OnIzan)W5;Xkji_QD9L5_mFOA5&R7q**KALt?jqAw-jgEm%!s* zCMXpO9U~k>9pb2&rC@M~PY(Xvr-@J~QvSVE<&|amBv$ICBvoMTMN|?G{cDqE+GuuG zXO_bHY-1h?Hx1XQQ*v$PMPcLQf=3l^M3-JI?bf2bV9#q*S5^s=r|d>;Zn=eKEIOgJ7k zLFI8bG}~+pf+;UJoYbE2Z@KDJ)TS|QwRvQhdLi`9qjA_`wW_wV$kFtYygu;egDV62 zOG6st8CpX?YjtfeTwSR)_Q(wB(sh2tsGSKl5}PFkvE#b4JGqC*Zjrz_cpg4+#bNVX zfE6NORDGc{lJJBAErbP9N5s5%Do-pFatOvY0+IspbSY6j;ntjN(TPYTvOP4O0kBaL z4&D&mQu8Ut44L+V7A|>n#w#o@YT%78#3&>wyC!pWY1j*$U) zCT_%>3K$!)RI`FQU>^eS0njwFv>^ zN@fqe3e0kNR_=|iY1cBuam3UFgJO~6Ja>HDfxUh4QE0XXZPIGuu0Fa)aqj|Iz)Abw z&TOPEO(i`_*xdEM|5Yd7wYd2(NQ;=6vK`*+^E+gm_& zh!Ex`lav{ge%Ox~S?KM)_wRI1zUt;jX8N726Hzm**Yo7HLHG)?OsHO6L!wWKMKKhyQkKZV>(}35_w_65?C?Z?`fh7lA z1q^8qV7cs6=ZF}wBmuwJ-hr3)1af2dl<5#Af=G%``XydEGCHOu*~`6~JXDO>ayh05 zHh0}JJR9}7=bS4}+%4Xf?jtTUjy2jYan*^+Mcu6u4Tp@aSd^_=>)SphJ7!V(%Q0Uv zoO%a-0{tZV?>^lRG+d1H02OS{EzFLUBd)BE{Zw3acRBcNl*u`N25~w{zmQ=J3+Y=v zUwuXOu_}dYV%n=p`;zOq)!m@W__?EJyp|8&Ky?0ulE1!0C{C+ZK>?oF6f!v{$(Fs$&*g?2}mfc7a z{G_D+VF93?7$pHRY<$&jJRtS2UOAkt;$S8CJSKpglt63{-b&Q|bhQ?&kY0pVm$s=V z)*w}JH9cG*vNcmu)kHJAZU+gI9IH+51U#noi8hYQ6PpZRVLF0}-9;B5MJP&VaIF)1 z7u0H>ZlNZ~;4tG8q3u!ghhT1&a!7ra3|Lpsn<&f8TDcqxZwaq+GzLAsiwaptML!j+4CGg_RbC zfaJcfYQh$zz!VS;cV%_sWUL@q8wm#Uq`S$vI>#F1atRBo zg*ck+MpN|@lAyW>z#NXSy+!M=pF0{Wwbm?Q-_r=UM+m;?HJ96+rADtlRXIW+z%;So zGmY8`_Pjg6)Q!d(5B9Ki{-*n_;xp08FgWq9o|ltB{S&o3n&SBbdo4Pp$jAo4AVMN% z2Ii2#X^PCG;Zc%gW3sorBtAV!jv(+#XELHXBgzMMD;W(l^4dr1a9pyMeecm=kDfij z8-lBXHN{q^xkt}lZnK>AXhyZPw|sPWbl_C8=4!h_r4h_E#F=?V5q&}12K5G;$dt$c>`Nh(etsKA#GN^t1~9<5 zum$6~{>hB5x@3fn^IfS1%uBX9fxXVraegdSQRRqTS{FyMs4^U*6ktG9-Y~eUn39~B zd+ek(5urS!?Jq0gLNYH{Pzlse#&NVy=rNNC{4g^*CUJxg#k0t2$lYxjid~^kYKmP7 z>k8dRE$%}{ol&1pyDCNX{tzS8r(o=>g!dow&UzQnMoUgL`Yc(vcvs24bo6=3nnnby z%V3g}(SjA0pH5YD?8`APy=&j?jh$LdEwoLyS6=3zUg>019UHwyTZYF43LC;4SoYW# z8

7#NcEGHs(npna`sunrNKm{#<@?v65zkO4wKmdch1h)UEZf1VuSE%w$m8$ZKTm z=1KN6E}RMpQ+-S%ey^L(PRvfiSSI?LgVmeUEb5!Mgv3OzFqQv9T zuld017A7cXm#kuDnXj$ob6G#QzP6oZbiN{#s0K*JURrrN$KeII6N|pHf85J2WZ4rb z=nPf|$)I~{zvjIc8wrA{)w~d0mk~t&;R!H=Zka7F^Os{JBK_q-gjN|<%s6I8jW56? zbR~CD_@1n)NVe+G49jN|q1bMU6g)hNcZYS=?C`^l#%%pzSQYEY8ym8zIH;EC^-U() ze)g0^+sjA)WEGh-Mm2h z12S{bF3Dt5@va_y%nkZ`NpIU~!lz}p#~4N1M8H2Xv)UWNSk<`!>XnBmy1EPSqaQ|0RHspxN{ z7v=i79$oI!S$uusUEKfn>FPvfal3UKLA4#6y%@Kv_3BzR$-LhQ)Fx4?o8TD&-KY`C z%$CMD0$58n!rEa<8o3%sStg+gxkUCc8L4umnnjie@(p*k=sj1o>soq*EYS2^hb@cl z<8%cl5fXKo2zf21A{UZnh<_vTSWnM(`VFeW6Nad;q{c`G=R_S($Carkj8t#Gzw0uy@kBS&q0Z(>0vkK+NWV z&OhQ&WBjQg?xmRHj1T3zJ}sgXY|=$#OLqpw(GTbF!G2Jxm%s>5CEM$mL3m&G|JBtE z|MV(`gXx94j`?Ti=qeDV+58nxt%S=!14iCY5r-c5OTo%hSIlShFwW}LCFox}t?g7R zB&?-N)kfC!>T~gh`IYHli?epZl(Tl&x+0ujnZFRv)xD`Df9{Nb?5>4r{J-(cWWP;} z1|H+M(wvX?zTTVkSEA~VG$=IAX885hJxJqx(5zM@L96O61sD*m;x=V`CxdNht%}tJ((QH4jsS=IJfb zL@uFgNX`t$%b!$6TEfdCY1{GgJRzjt0Y@-Sks<26E%wf9iote19LGrB+18! z>snOhho1nKehOS_c|8Sy8|fbdgMvbr(mvGLxrj>m)hBQ}Mq5h>8tfTE9WxWUxdm*O z5MErtFs8%+H&)JYIACLD5f{i>U<`L1E!EI{cs@;~Qz^!YghHFuD!B+q1z< zueeZ2H;!-lwYQyp!y;X9XD6Qep@qBs+b=BKa$>SkU%XWF-^@$SQBZtBx1GZf%;Nft-Pa4XpCgECdXsZ=f)Yu~n-K zAG?SevK);ak;S__BzXl45EckryPMp)+eP&FW9&dbVU}s^%-DtYfx3SR)E#rK8VLe` z%Mi*;8Xf^d2_hv~907*r=x7OqdT!&uINBb2qQx9W?7m}RFxZBiUFh;VmG?L}Zg(Bt zzdXiVz!b4$-0vxfb&EN;#By(lHDeH6f@%q{eEJ{hpMbt%r7`VN(rV2)%h4; z^lJ1j^(!Y2BU&c4>4$?D&*K%rZio8momzcncWLuPG;!;F7yRgS>AfN0=1k;Y^zOTL zB090Tv^#@n9wlC9H@ITJ>6G}`yfAa=73Z%$2sL&*+aO&#wuedaG zVbcqyYb?M&d{U16D*nu5E}pM?wNvYW1%?;?465V;0j%sp)JuTY$g!V_;IStv7fsp( z-ZfC3j4;9^s-bgGHPPM4Mt=<;A)o3a!4i?npuN_r&7f8~=J49XyPJ3ZSMbCCn1SZ6 zo73c%0oA8%|2+a#3+K5X>G;=%LdL=8SU$lK;FVi?Zu(z1p9SM%u;z@KBQvA}Y5`HX zRRUf4>Bb$vJL}6B@H-SJ&NXX@gwhgzprQxH0bZ{Fw6t!>((oS6UVWyQrT#jNTs>@CUMpERb>GI?xo^#)dc|+e z^Lz&i9}$(tI?j@!iZo3XgOQ=G7@9_aDpz!L%W2tQy>qHnY>ErZ)6t0qD*}{_szzQAERw& zwL933VwJ1XZ~_?;r(56uz_(EqvXi_qzA9;8{5c#Q$Cs1SU_~_=$wcG@Cn932lda}w zp(RQFnz$1GL(Ivi)6Zu$g(j~poxG}+uAvTn{>p#&+7oA2J1q*!rL`k1+$mIg6eQ$S zsy>eO0Pu*fir*M_gYEcT*^}WF@od;bB|1X2Ow7meRC=fX(%=gJV*KsYzE1rqmJ(+5 zY>;)BOY7z2c$|H-mTaP$zdSh^c9Kb~og$&@Y_4W!iYgoK=%Sx!G%oV9b7#1> zLm3$k-T_IB{m;%~KA>jUHNo4+NPdU+H@#1Jzv2BcougYIRBWjVgbt9==Ws{bzWo`O zcQ{jM{!T_5V~r)5a-T)mh6IC=+eV00P{9JpglJ3V6f&QY=9;JIK-P-+k>vIj;y6LJ zq^w*`X&9D~E{73OcGw-sM=#2-qE>{_Hd zuTPm=QbcqY&LfEr2Szkm`F8|7brDZ3DX;wPR^6}dR<;!B$8bEWyq`_9-wyW~zsOGc zi>Y%|Z^UQxkj(C(G;;1}rxah9xOBv6i&NLi7A5YS;?&`@+>)^-TAtVrZuC3~*AkFK z5T{Reh^RUif#oD^K?e5XYWn^7iPjqJ$0lbho2T!&dyBcaEpc=bG^#$Cgpg1^g>WU* zKUqFzw(h>?%<)QNs`hBRv6dy@-^ll{8Maa`YE@L_=HZ?SA@;nZ;NOX4Yogg!i6i1Z z8bJ?!qTr7?=1o!FRMB2xBgPtoLj|3Xt7M&tX16}ro9$23RV&0or-+ZupdOJL_yBzE0I)@S)5SAQYmf2`v zvea7OKWtT`LqrMpv@Al3eMSTm%jF2~DA~Bc2>`5177=xq18)?n>@#g2l)~ zQ1VK#Uv7}Y#GsMJcTlqfms{ME5!K{QkvwQCAW1JTmEt`s_1xAg_Z!x$S96BZNORv2 zM~nxQl}d>1q6=Zpu0tY!8inS)*s$Y6B;L7j8vp-7YWySbO79$!qcCn92S@wmmf@t$ zaZ*}2UY_ShMN!>fp)85ul`45jgup^WT%($W1Dy|}iO!o|_|Zq6bw?IO2$*Fx8cJj@ zX>CarWKbUDP3nvd?4@ z1qEIfG4kQpZT;}0!O}c(=;Hjb!;6dHc|Wd33$5zC@e^R)c?M=^8b!82EP}D4q6uDg zor;DYh_wMS^)_~!)Fd2CoXA(aU-Z8@xC5YGO0$1liI)QZj^GLZC^}1c0Z|U~o#rxlofTRD(6maQ1jcB=n z@*|GUKLHt-ASSI`hEez#c$nCzWj>Lr1{tvG%q#@FleJVY$rCcvYSWUcmbrnHdl1PA z7Q*74uEh5*wnBpIRTtD|*@C2iAuGfLY5SuK?Ef^%0EJ0@lE}-?0O`NyoiEHsCB*7e zFmEtx$~~}JJlYbvEVs&;OH1f2r<9+XI)aN4gB@*^7X#YFl8xayQx7NFU}@-dNH#*X z5+&WIfU`VS9x>rs22u@_2e*|zR<5eNdxl%J1JH7ltbQ$;4ly`Ld%RT=yJIl4s z0>vWJ76Atp<9roAYo&w@FLd_5tAWG}&u)0RvI`fxvk;&uAR6uxwg|JxqjYNe<4aV~ zc+%`ePx{TJZ~j_u(Vt6N&$N>{fAMRBZ#>ngoLL`)O8|oxwbququX>wzdOh+NDKAP$&O1Ija}F*LZL8zQOwrXNW2ulY7qP!zuUNBP%Gd zvI0xm>z=rSSNFsZ!a{kZ{1hp5+a*yQ!ih_Cc4m19B;wTw=!RPk6a|4}=K<=YYZB80 znI0#|CHUH>o#)_ILh5Bw>IgjDH+H}|`Zcs=elk@tOIQWI;$5vKVt?2DAO9KLRqQOz zp_STBw0eGiT_RZhw(!x#n=ZVI46go>xBmR+!o^eb$TUcT`4@K(1!3*p z{Hew8b3gyqBmE?weAk6^vfj9~7li#s-n3mgdEfGMZ@N#MJzX*tESP^ZPlyC;Le}D_ z&#~qEPFA*$&dqgiIkrCkc)gMkfKCW{KziW^2?k=95;~RoNg@K(hJYh<_~arAk@8Zx zZln1ZPewO48e0#(Jexl9zi-d&?Oh1>KX&b}zH|TYr)T;{9(wcHwdvMGtse$^mm2j+ z@8#KEYkG6~>%tGcdF}eer6c__zbj%a^8_N6>4XSjQQ#cHCTKx|g#gkPHIXge!4Wov z3{L+;EKyb(vS}u}2nU5&l48bY8L@X0IaNw16Y;!{a@r1_Y|_p5u`K^W*_4+RaISq}D#4cL2s1RkyIiPe zZlwq2+F7=sM01B%>22#AcQ)G&$26u@+B)spc6IIBJ>3t@3fM1JSv(MT)^IlR*@^o6 z)mKm5(444MI(ao;UyFjZJi0A<=*26GvosH`FW}?~D^hsOA@WHq97?EfD5CF+pKd6T zccIS2*~OI?KXlvr@n+hsR@awrxuu&`cPA!iH{SWcMpWHsR=qn8Bi*+@N_L>PaYv8P zyd-ITu#JB%^^%31Y{SD2)&6KJ>7XHPWcem}_8Z?4B@foV_$S`N#$v5fnOfffsj$pG-cZYJ*Ew>tsO_ib3;)Ggg|jjoMO{)_`8As~0QN-| zEOeJ`VJQ|P1@cm!igC>rqJJGubhf4DaYYT=&Ly#5P2i<}~F#UX^i-$e){yWYFid!P^k$Kgg+oMCoX0bISIJ+)9|oD1GLU>smNFf%1) z+%;cfLjlzews|l29j>@bXzpm=ZG)L5V!FU6E!82W1NYJPXum*4yIFZ@x4!b-jUGU% z!tm>SKf~`0in(of_0jwIjB*W(tsX#Dd_W(3ahrUbo9{SIXjSdIZbhZ-RJZR4-WYsM z=wnm=q&4$s2QkxB8ONbdF+m>`{Q>*piUS?1xkR*_j1FU2a5!_`dh9IQ`GrcBM+}xPL8V=*F}%J-<3hocaE56OKn`0q@3Z z@7(_5AHREPyRzcPt@=d&Y-4MxNBieBBKazlhj&g;@Vk-Lf2^K1RO$P~&f&=lht{G; zPaO?gtzMc<5ih-kIj@ct=`1d&K`;^5A$cwT0q+57IkdfnfO_Tr5>Zrl2m3#|Qn@&n z&XD!(1rLPr16k{0?El$Bwf6u|yrMdbqLjFQFc?|?WQ01?CK}6;T;+fWuqRlt9o}TV zGP6@4xDqsRl$dPATI+g zl3U(M$I5#@-@NW_;(p8W7afhcr6BvLKZxaz7+^bU?7*HJO|FlF%dn6NOY5Xt1RuV> z9i+X5W_PAdZww-}vF052f-6IR7yUesb_4%PkLWyXG_hB&w`aP|h2BG6{h~(>YdoJG z2U#A$0EK29F9SY=hzIklet|U91E)sk@*|t`S=-xM%5KZgFMGWj4*Pt4K_$XH3W~_| zjrlpQ{1`fjtk3~%$~^+P{gdam*DETG8L;KF)is#niD z-OXFhAEP+2zjl;h!C=}#$fpCp9UWcc`suOrw`_JhdA&E)SYP!8u2HXWP{c$6`H~0APFiCBKgaYcNBaWJojGYHT=ns$&Dr+f^6}4n~$7gl9pz8ySChu#Wfx6DhXG#SfEWoR8l@ zb_wzNEcGZbjo7`?9n6;bkSs~w3}n7TV2sC#3`#oTaqGFgl=T1t=d+!mEk*SUFjbr+0hasSo+yrCN{lIf{9-=jXmAi{>kS zV|#V#s@q@vj$>(bfl@%{8u9rkJ@$@Q-+tB9>h{I+SIjpWb7?J}&)eh<>Qs{S0t~do zrzziOS%0$gxJ`r!*@tvsrdWO@G^LmsX#Y~eo8&i|>tpWvFDHW3QqqV8*j`(QhJU*{ll-6JXd9!)f z+~Exi?cT_OyYcbWu0Hz8xmUCn8_*koDx(5?wi$<;R5PN8qjwuY0|Xxo@{>X5*lu#X z*KU(8yYXu8PM@60phC*r=kr8C*LQ_4ef0);aP4;Qc(VJpE01=oz1*B$2@(ovwsEka z3{>JUL_4QF@0}i%pclMY#rtrFe({e;AYfX!G>wUCA&Ps|Gr<*JKER=tdACh0P%@fW zz7!9nLQk7GajDU;eGBr7z64^sK>u( z!95|7?Ql8aqRCA+;EoVNdcPm*jsT0m2YeNg9HpsoZ!(3FKnI z-%0EUU*KU6i#S~+Oz}`pDa)UIjhILL+&_mbd=#>9!n?(Li}&^3Hz}fmmJk*iW=L&R zp&$U`*guY?2Ka(=_ZoZGC5HO+?%4T4pz`IIO^M}hZ~Ul3HupY4IW;UC*}B9+ikNX* z8OMg&ZgI$wgYsR;xkd=YkF;TYiH%ZQVYKX{!a-<)eXVYyG6W#4Q&Wrp;!NegQ3&^y zcrVbHpF~Dz@vT!gZOMtGs;b&)tv>!r%&d2oK0MeqIQM*{^rHj1&Ux!TwKUs3fJU*lnHg(65ZRK@cdW!>iy^5&Hh6qsV{jO7^o*oPvsirS55U&1x7fOf^^1kPW2mv zY(O4BG_>@J$RqD!li)}4$ZNmQP!#f~U8k|Q9lbk0 z{SIMF1zk}5l0yc^)P;^FyP0#{y;-;tEKXdUmvF@S?5!z+W6FF-W85WH8m5A)hPpbq zz13Ar&(@y*Dso&2q^qXQ`a~5LHvu31Bg&Lvu>nwsOJ6s)WbYw1j8AI&kTf z4S1@w7eW58`v3|Q{IGBv5Y!gb@cw0@o`U}iIPhw4U=Np#<;M!FO(xT)lc##h<`XWUH7J14V7Y*G zAxbI4n%<+Mf^J#B3V;TxOE|YE6Iy((t((UlI4lfX02s(5N!4IhEKCCKy7B@?z+Nym zz?kZViYX8Vt?Rx^-7C1S$;4Q&B(myK#e2EMScwG=0kkXpw!#a>o>)i8n~YHn5x@|_ z?a7qZ@9RghO3YoEYOQXB&}Dnezk@=lIp9b~OG4jZ5~?VS=aN?#OvURw6&iL-PzSi0 zG?MJ*iOKo-wHhUksn<|no13dme zvOPlZ8U9&`mW=Yfz5Ul8Mqo~A=dO)9by615>jkC42nr&Sn$9X9`Ua6^B2Xb=ag_n5nqCL`*Uj?u)bF7N;pX~4y~ z3fE`L;e%E}85|7NShfjh(@ivhy}J|(r2_J@I2x-4qe&0*8~)pX;!BhmKIFaB|Bpm~ zea!L*RHya*Dh_(+M=WUe*$*p2{lm{)S2n(bl-~XEKsuPKk%h)=&rBP&HH>=n4Y#ShZY02wfuXW$NH1=uKO+Wm-HH;7_@Cp2YBE|pp3#NN2ZsGl zeFRVWAKQqtW{}L@9L}{U`ho89vsNwHYt4l>&k~T3#T!c}qu8&{r_n5UKw=oRB-#`Z zA&C;#N|s_ZL{%i+kPOS#@n$bs3TkuN)(zcNN}4Djf?zk|AzI#Q_lB)(t`;mMz2@;2 zNtYB)p!gusu2b{y&K`A|X856!c4rFfVHmFjekY_3+S5l@cVUlNW9rH2fp?o9+?m!t zQ%_$S;>;UNKlwl-n+bMTk3LOlHsvm_K!5z`flfQ=^(L@zgP61%ti_YdD=UjsRF5gd ziU)=ULI}M*ER88u7cGPz+=C!M7-%r0ZPdgnJ@;m#biR&Qcyej~z3{R2+f7`PMP6*H zNJK_FfT7A7BdQ>qOs;z7#y^S2B#w!HM6SvABXJcm)#f>g)UE_^aRIE)yOL7g%(o2+_{iKHR$kS{By{y3w8}>M$QzjoBYXcxu*iNI%+e( z;(|=*vm{;x;UMvLL^29|E-}~<2S*-8#9*9UjBl5Oqxf{ff?}iG-A$ZzQti-0B}(A1 zcqGz-vts5NSJRv^RxS>%mniUF(j(cK%ZcV7J((p5eN%*#mq|1F{-z$dA9q!vwCqJ3 zHj5JrVa~mFfvfsWA*gAc~Ya$~&O? zDHB<(7C;6F#2oDffkeQF&Yf|K@}(i7^StDT#nwV?x{5oBN{F=h%rJCUvpFJNWn#fV zgRw?NdU{!6i;&tyGRjVHG~DqUm4$x0t`tLLT9jMmpiu3x-CrPtV<$Ws?1VShmK*tN z&YhiXuHLnM+m#dj>T2))^VfzG&-8=qyz}?>`jjT!%y2ws;Z<2}x<5I0#i>(Q%ui0t z)UvA}7oFZFHA^Wn=id~ppf6#zMQY#=%Nle6inZ=__m8bCcnf40VgiOx(3Dt3+&Mx^ z29{6dqh>P$BmG6NZvV4{z#sA6eB;}_JH6Vui7JHb`1;}I>rETLM23$g$tEWusl?v% zg7#$IqT~QDSAw^SqjjCaDdB+R8-7cXE9GK3+_Q~WbeqVYiV|`IEY{hsaRclpr z#5o|{4cRFM2ocWT7g0hz+(0u9yt6C}*^GZ^CHz*TWnrd?5FRHzluDTk6qv8=gxS!PuT3~HGYV4U8r3W;!TD3ssQ@piXY9%pY=#Khzh_f<=q0ZCAO{~d=XNP+a)9gMK_F6czrPi0Yu z&H_|S>(B`HzvJg_W0o5m}iahs+~*p}n9|OOtpa zJDhGSEhCGLataj?{3Z;B#=(g5Kr99!gkJt5fk(9Y?l3Ircsba@&@>hEFcTPdl%;hr zwz_rETj^uIr5Lw2eROLj>I}HDd@qw2j3$pp+xzcCZpbDtQV=k^*eC9UYkS^55ZjcU z2oQ2sA#h42qAsd02q0xu$0+@dqKeBBKFI_r$l~LT22oIEj|Jnz-5oeGq-aaWB;}E_ zCV4sxyyC3UFQjI^BxlHl1OJvEhr5b}%R-fZS3+@FmPNf{eqM--Jn$s@eg<*-7rcM& z{TuIhWP5d_+RQd3K#DOMj|5i7IH!q|;+};RT*fMmxRVr4*Je%CLBu~vBjBq!1qAY7GoZ2)Q%aJ?6_dj zC9BrgETbyzE0;3H_zz+~iPb)pSbvI;_KAmmxbncm@yotRVtJ#D$Qn}cF!Y{?dlk8Lu4lUvoFiD~k?^I^gq`SHf>(H1 zk2VSN?*=E;D)>2#&l-h*?1r4n4teZ%kKW8cyk z+){WfnFSw@AJL_I84*U}F&-S!wE3;Y?Id-}EGyZb>~E%uK0pq+HP=Ygr%L>Aizyr2 z2!4tTqzV+p*&7_-po>2S=WQ_}2htTXeqBg~NKjsfJ(I^~CFitY?8c%#@(78jHo9W2 zj?YJF)yh7yIQxDy`_z|Fw+JaETCWs_$fJi0Yh_QgiH-LqDD=MtpZq>3%n9!jQaYG0 zgmc7AwhMESoShch!@eX;kr_EC;e;TId$-+EeAgJ1$7LOWlZcv5v;-R+DvuDk+$xc} z{B*>iob8B%Srvw4!qq|@VYxfAxSkw5Lxe9dTxeLnKuuw`iPt5vtGzjd$#xy;YL=!9 zf0#nw7RHmR3cil$n&#@J>ZXgyduQE$0xm+`P%K^i;Gh?dkC?~+#N|0ahPW3Wmn8+n zWr)?gSM@8_kTqx`?IyG%>Q$O@?)-Kt4V82iFb*e5QuESU1$*$+MwBh2>lYW6{cqfR zQCev&#r|po#WKw&XQ(C=L^CPXi7(vy-6!X|3)|jRUijS>%=SHjf7SLvckbkO-+Li= zyb{lVD3PDcOyV}A{ORLusV_|1-MA@u_UT6pUG=`}$isXYrR*{QOun+e$yq16^v0G!2Vz>nq z1H*7faZIoQphkY>KEh9&rOG(K*+T573#T+$wTn{-fj|*4%m$_SN0^%**O4h%3#?fy zdYPn5-A8z+6Sxfd;=e(yxnoF>XV7FH@*eeG=RM&)Z5&uE!kE|E+6f~9Dgxxg^XD!y6%EFEd@M!9S|xD(GosU@(TO3y`fyVwXG$%1-ZqPODo5; zNd0GZ1vhk}BrC)!AbFzvFQ?E*+PMS4i{YAuhc6^V`P zBM7*^D-qe@ZBt^9*O6IyQ?==qj);lz4q#*iyM66Pfynf_-dafs>WlG`Dd$jM1ff9oom0uFWlFJdh)OI! z`pWHKmV_Lzv>&CDwbRh@m%;)c$=>D19}iy}-X2Y-v&2bb8^*lc_FFNr2$%qHpvb4x zpunlwg3|17r74zKFKA<^$FM#76w#mdk4PF1UK%1__55HZ*of05 z>^anzit=MK+h;rRF~7RBzS`@&ZvPi=2E6WE@OS*z`m~e^ABh%{*)TYfZb!2|QRth= za(Z2ICsvRD33Q>?Dbl)6gCAjDM7VAfjs->tX8=BU6OmPNj-oxQPi4l4Buc@fMV|6z z_83qMrUtTM*@2&O9mIGsQX2)r*}y)GEJEH5(MIk7tXPTwgWOdKG)UhRWyMigQ)z(b z-fx{Y{txe2@6X_WblMm_bSF)@_se`P>Obiuv9b3hsc6gV2A|^)TClC%5|lr~HOB}o$52!(eeAIovP=I38gvAM?Zd~@ zbjn}aYI_YT$6HJ}Wn`(8-`-jRf70V?qt+d5>iQi2tL7alR`%6t-Vxl=!hDMh4SH9} zUUYfq4&zr~x!5GK?6^Nl$S$b@HB&6o!lM5F)YBuhs*lm6B!TW_Z9U#^Z9Tq~^6CX> z53AgjPGXUz(n2;QD~0z2HE);W`jf`zrs`e$#z=?b|D*T!7&8e-ToLIm#T`e}jdytO z=$&oR)2i-w1NH8~bEB>;U0fKo*4ZA(u1V1Vq@5>!)&Il#f582}RO1xs+u6=aK1rg# z<;bf;j&%Qo95=}X?7{S@F#O+pgAiE~__hc)!yYJnJv=_NO(2th8-4v|BGK>k?)F|k zhU_ZpauXyNE&exN%`q6T#mbWQc?@~K7dfA)VUNNzEtz6GTI!QhuYZ}HUf zEmKdvCrkg*v`Ps6E4o1h?^6N;jMtAlt@*Ck|E|R+_pkU;Ef<;xL2~ zQaB@UVf-B;SBX~obg$97JIjshea!1)cP;U_xHItV&d|&;ofpmn8e0SVG~^Q z;`_IT(URG|mZR|2;3coDPp@OniT1Ah)_$wAvz%|d={-k|Y)@DG-c)s}-NVB&N}tfc8Ni=B=rSKC$~Ro}8b&@Mm>mZD|?`xU}VRmUf7BF!Vs>Hv5tyCscz^{#3k@TDRaT%Vt1TV`A11| zash%m7-^)*j zk>wmi_njKm zV3bydS%@H)PY_Kb$BBmGTBi|a8661I=5nR77*>vMRJOZE+VQvch^GnWC#L&Ba~9{t zgm+ty4$8C5pg%n^AA}R+hNC4i1mxlVDJnn&6zu&qFDdf6!*8#gkup3AU%7piaxL0^}FG>%3b5^b%}K zz%8N2!4G=}d595q2cSc~GHM8c)K&nm&;^=WGKBIj>^uFX;7Xv;0cKM|^$_UCj+Qe= zpT)ftaWUjF1>D0PN8hNtsy@fgDaAomu`L&<)5cCL_R8b-DVa|2?}86iya^voA>8^u z6-}z!{Z8%6bh}?9ho$Tqkz(P`E?8jE2j4vVV@&Cp5MEScPU#w2ndXv2@U!=(`sU2z3Y1bETB6Sh35U}H0D4VG) zevn435aFF*F+eXpRzACwo45m%l8iWSEhP~z`9*Db&r2#G7+J(T5e zI)?A9-&8-|+VS_VyyDdI!#i*C?k6A(^#PD|l05JZFhNqC1Ot5Qi^xx)P&z~n?TfDS zCW)hKz&AFZh!ZFDun@(-j7@d8RNhQjA}WsvL`Va-pdf|nSKuv>bcB~h1*A0wl!Jr} zQYLe+(bzx=BF<#rQSw87P`0~w0)P30_4vLt?G}Bu`9ouV5$NTh>mW3hQ0b`W`1=dZ zCMFCq!}MoYCP3nXD}U$kVD#?r&*5T;BSU;VNN0<$RnAgry77gK0JH4onT z;L(DF4-wGzhuv1PS{rK*VZ?ni&QGYr2|T}D8xSo?h{IoWFO`iEg&q_fX0ZQ-KX12} z(*SJ^PckiHrf{#ut{=+_l5_}oA*T?@@zrUz(kUo4Fl`tReT^ZGc#Giw%XEIx1mRd7 zA)fy-@J?G6@0&|2)MffFB)OoU`Ya60j#iFYmCak`OwMS4g|XRmK^dG)93g_Z1g!#? zTz^4H87lTz0JnU%qON)Y@g>YV*RFxTn}KLziG?DrdRdIeDAyLL+Qo$(9M>3fiN%N& zI10{UW7FF4csuM>Jqt@uuxc%UcTxTVfF~!BtWC)(5?9DZbj!5mI#07RBa0E0NdR)3lBC!u4df-VYqwb;_|>+ECQ%J(9k&!mE~C@RcNii^q$I;!(OYolgUP1nFh_qR zOc0MsOkGkZ1So0{IqEA58n3$@)g*U)UC5&|vm zi2S8BN&KSRF0BLlbYtTqB2+|&nEGMZ38oKKYLMQvb*HJbX(R@OjUX|mcI#c!ZJH_e zeUA7aS|XDk4U^pVc6cgY2;Y*vmVl*pww5mYR0Ji`@tfn<(USd%@bms0nLHG#A^$Im z+y1iu;%J-RhEdpUZu$cf4H~s-o%}&+UUr7Q4Zm|M}>N@P_a<1i?ul)k|CS)@jE_ zvu_L!$49~kXxvVS3BAK6)9OdFS~v-aAZ^hYHF;%lgc&~>&PRJeJ6Xe=M4YD=FGbbt zqxJoN8c>3`9p{9GAuf6}*9L$6h2LwZjF$4{6+nh6sZ?BwQe`Ma(g0LL^yHoz zbqDzVNff_F@|+gKO1j;bS(BXt9sD)#Bg8)?{_h<+zyC`vTtuBD$bNd2_lRs$Lr^Y( zdt8G0vO=Hn4;Sqr{d~6oTF38<>Z8?{`F>(G>m&bc!7Lri)Vo}{mb9Q*+8AS-`FLLq4TSGWJff!-72%`kLplp(^E-}05TsED8Y57-4dpwLx#F_lOAg!e{S2Mm!M zWI1Rmx64n>C}%nTF#;y@fL^9yIWA$GLfk@ORZfH?aKEr5mq-Oi7@-n_7yt@%vu;cl z-tW#W-^+_Th6I=&48||l>DKJ_SS?5ic324X!Actr7j)QO<<h3TXAX96yQ{!3m1ZkXpymgMsXvpZhmneEv`$JUTlCX}xk&XlArZM0(NWB*+L}yu_CGGKW4qa< z4^w68*5G82BB^;lgcm2BY$6)gkoD5p!PSF-_mHqf90$B{#9w?wh$b11=pstfn2nfP z$Lwm9FQ=e-BsWae%EgqCS+X9NppFbVt4LtlM>rHWF@A7rQT>gfmiyI4(I- zk&j#fyfq7jc`CbPudCoKN^X64!f}`~NvN95>2?O5)gbtxF7X1$r~ZT%pA)(J1!8qS z>;D|JFW_C&!tg*ZTEnsbDXWD+(^ow!_}*y(fn#IRxGU`5Z`> z2OUg1JA~CleH#ZVL38=&v)2e^6Dm#opcO^?PD9z>=iJ}4b7`8RbL-&vp%$a} zVTC#GJ&q_U%Rm{Q2CfO&jM15u0;Xmh4yB3DV!PPTfSJ58qw9z!4ttNu6wXnHc;YS2 zqPV>%Oav*py1Sz6Aa+aV9CZ_Al`+o9hnZ(eGmSf-gCnzzQc(+&jLX0&tTfITQ@(48 zc|YN9X1OWr6pFE_4hJuzJ!q5|UEI6Ot1|QJ_hH16{4CGUQ6vaw!*bE?BqVEf zJNlYjW}+v#R!tWB-hav}XR5oz^EaBUX5-fOTK8yuuF;&WA6;L*HEAX-OeBrkPW23? z;(N6nkj5#+e!z>i^Hhm|v}04SRB%jzl(A-?L=N~M**jDyJ)+VJNLX-y*{ofu%;r&2 zt^5s5G%4xVrx{myx$|es7OWE@J;gxiLI-pLJ z>=I~-Oi3t(evE=@)EyM-NTz~`gb4j=JSS!iTjI`cd0HEmd^E*6IVZ}*A%&K2qqWIy zL+7b5=>&}=-Tzz^PbL)RMBh}NnJxpFy2J&<7AwJRbi`r!%jGI@$N?>m4`tTsEAhqI6AQ1V7mKh8Oj;Bs z<}95`q6SY-=zSTlefAJZ28{nEsC$?3V1!=~`q>?g{vlZXDgWQYnct+*!2i0@sQ9&w z`p-V7QP;#>3`7+CcHjTm{qTP;SBds(oV5_4z1NMwV>!Ce!TAkzQjEKB9pYQJ zGw;0-@sB;?w|sxg|MxdZpbq`2qlbX#BjE(*+23S|RfzGP+gvzEC`c}BZ3K^wccvDn zV>jXU9db*sf(pHd6m2W@A(63Q42MTTwRqyWbny{I#x;h8qpV!ZDk?VHOS99Iqo`4d zitGX6W~48`w@8683dbQYO5p@yxSbp}a(fXG3i#5yY&gWW--C%jwp2eWM)O1ua)hYqc8kIa_s!-r~qUPI?@?u%LCVfO1(Uk0rv9WYIrs{IU`X&YCn(hVjhxWP`aD96@-?Y+yCaV4M zYG0hM+BQ6vHN)5N5BG0;u4$?ojBpIbEsK2MPZd>x%fy_FH;n|rgK6ayjT6Owh!4Sa z>lw?`<95Fhcck??nsG8CO>hnBVTY)RDXBxdddl&!bF;N@0zOxDlJ&>nG5FVnsKHiH z)$zKD7qga%9}*ev#mY5iB_Bx}L`q(nMN2TBADdYWOeJA4@Lgin?;NrDZ?64bt$%k$ ztuQkVCNcZlJzKA-)sI!7)_2pI1b?&R-%5;t0L}&PGn_!Qo$dYt8Ss=1eEQdH7wzb9 zv`+`e-9zqmR5yOhP$1;~*I__?#QdsJWookcMJ&t&#$uk)jN$w;Or~x%LhuVRsRabQ z46tACZ}o0k|BJg;LdKW<_VJO0xagVV4FXf$k~tia1CFw^%&s+AA|9n4l!+3}s@kfg zhnUiYh{=`hBE$rYWRfngxF9WhS1_`{k|VtvcqnP?eusC?skeims|<6w$_;er9@MGV z5Q=4FNt)QM__-viHn)OXPQSJv#QXQS-65l7F%okS9EcZTm>$Z0l01%HIu2omH6#Pl zAYd$9wBZ+~WlC$1YlPjG{ zDhZ%tP{xb;7Pe1@1x5c|V^OtE|l)8SRX#8*Z#mrvy; zC0tOhM9~-?fXsibqoybDg$qmY@LT&jUI_UeC|y-5ovo%_ip9g>ohz5b!EpZPjPrk6 z(HXU0{?=9Pe^9i0jvsFS`#b*p^4}7%{bSmHGB~~i?;F+XMB^5b9OYXX<9X!liFw@^ z;p%!XUT&Z_&Ab@ZzsPAkH_zqvm6OZIW2wjFIlxSJ;c5Gqk6Ny3Z$qfx^28d7R z88N&+fDS6vi#IGs{skx)a;*5SzzK#7KnTGL9JLea>HZvs9uLOn-2QHhfW;i0%E7Qz zH%G#*tE30Qdl2mplq#2dY3cqXd_ikj@BQ(k z@#ApjYhkec@tZ=`sc}z1RN{Q-6;+89EBf_y9-vXhI;f6FNd?Yjsl1RJ#lX8=6?1`b zXr^3*cCio$2a}?wdK&#<@r;FJn96cCKbO%Nr^L?{+kiD-V}&41xw0pHY^%~}Io&`{ zpErH<`;UKve3#DwUt7UN@)j?7%d-&IyiMMgiCX=x<&+}(OOl@-PdZkO(B^X)Ul50X z*PdWBuQ`eLq4l`1xlUTT3495CYbSQ1vw4ZGIl(=TOSM82m6MmIMdI%0lu{frfeh>M+1Fdp{K^gJTjS5E;Ul) ztJi&`nLeJTD}%M}q+xLU(T)Z-z@I(C=eSu0Hjlx!ogs(o;s zB5Do2@hrGlxp@2s=d8}i`FSKV?qC7oJ+g1DgE-qk`m#~2+8M4}G?TU~QG-Teog@WP z0PvqtiYBDL`hsGOR=PMs$0->?>>?$>6oD;n;bZ!UOW=B2x-jLIo+7q`y7JpKU~5hqEm(5HTzgaPEi2wby|6W^5095*mrVXu z$mK5}m#?~O^IUTOzKi$HbUUs#$-3>e=F7gNcyEOSruC3Sr%6(ir}>~LqYboU@uDTL z?L8wk%}DnSJCm$}#)dx-shHPZhfCC|+XAxD+;_#5d*Zl?JTx?xD8_G6O#MyTm`*|w z@=9KHg9U{b*H~PspW5}B_i>n%n=?}I7whhMwX-*mr=149dkA=bj9QOafsIZ&e)HMd z^W6IF`zOi?>HopWvG?q!KIB=*s98$u@OxwY%8n}I;kvnr?rk^jJi9wuq;Lm5fzrhO zUVC|tqB`~QMRK5aSJSgdlXxn=F}Mvf=mZnI`8mEKO3eK_V)I;O|9i$xB1GvXF|q&l z%lD?UjdEqO+uS#fWlU`?E)LfpQWN`nd|$IWSt&PW(+fSEht)&<@qJ{*Rzr-fC)zWBaC$&`h|c$bEv2Cd z?!$KS6sRtiJr$2g*I!-%yBEIpWN>VCb6u$BOZ*%on@ZE$fM zG14tJdutQDRs}a}qdSIaLo4pmIQlfzNO5awwDe%COU)mK9OzA~^%%vO7Zhg8)2#>I zr5GeHL4B!FS9m$;NUhWv2`(H)A^wBX;hr-30w zAT=;^c>gxz%^mY%ddG!9P4hvHD9In8IIhHw*N6~~#Gze&PBCtL=5r?wPQM4~aZo+v z$^V+-QNUlg%$sOM5YarL17I63eP#+}(}WwbGJL5q;dROc7s@JtrLuZu$AGAl zi#IaH5I7RY7B)dRHA7IqH5SmQQ~-1%4)^U$EB;Gj$1Gkx&H=Vk^UoSp2o z0(h|py1Fik$7*3UX!Ry%KRCcB2aJ`PC|Z;v_)iIGey|{ER=noQIbcFQbrmh1vbQf4+t_s$R4s))il&b)bVSG7CExeD zaKC>0p8iILEhhVf=*$7{m3g7my+G6|Pu|5^^BT(NLEl?wO#%-+k+Bht40$ zXVv&xIHI6H0!K}{$1v1fOs;g;ILz2D&4HGoQI_SW6? zLl1sgG!BK6iXvvf2(g&AB3cY3eoxQKD> z@V$;L*CE{_|K5Y!F|;qhR*bBp8f3+(fZbFuzA9G|QS$@*!M`#P`3L#h0_(`L9$pJb z_OI|Ryf--IPPtFQn&vH*&EoX{zv4t`h0%2T{4iW4p2qSuDlP&lFxSDfC z|DCK+u)>g+3!sn-ajP#O$H0(ua}v%$Mt)ogeD<)3eyl@+bqw$h1|7lJMP7m&9n)k^ z0-SYX6M7R2IYi5zTja~Pk)|aAXf?Aip(MK4&I-5M>HO&xek){Baea!9@zGP^cVT|s zo^otL#Q2>v6*u=CQ;oSKOfOas9@zyMLpSnyj=6B0mn^mNTy)cesI8;C?-aV4l83Xs z+CSQyZMEi_NBX-urE0gb6O|)~$*2qNK|<9U-m6(o7<60?Tn-E6Oa!}dE>ICUsE@aH zR#uNLl!^TG`V;koo$+=wvCl0A^iL)X{eGVly_x&%*?M)duS}AObQk4R(+&g|9gZv1Zx7rWNc>X1r`jZJO8~&&q_f4?vBBWLz>j|32&37!x*+Oj_`!OqS;Ysl zE7_<|^m|d3mKTn$@)Vkm^VXB}Be0S9RawkThfKv&l|*9z8`+UKN)QOeXk`*77XH?F zODZEP2FFtogU?FY1iS`M%S)}V*qhQiioEe=D5#_K8vd-ED4INogy-N`v9VnZjuN!8 z4$P=EMeKJ5>%51kp-xw zZf*6Jgl#(WyD2?N(NI^OZIX&4@!Bdww&q6hJgzi=Nni2jvV7(~wmi2m@(TZ1>y zN{ryD#CHD_^Jlpo2IZpTYEfA{$nO%Ag`hDwbSQVxN<#A%a-)5O!adHg$Gy!rD?b6B zp(|0vNOr2z2EOXWjuCP=2! z^b?aCW7Ey)#w_@@(k>q&DM!73EanZtTQr_S@Q#=lr{SW+nS~Q89nj6uh11oQJ-b?O zyojA8wh(8~^&8%5NZtAdHJaHjD$pqGrD>c2ItKypQp=o}K#_eIYwFsB)ecFBZ{bC> zuLT`)(ZW6|YF|aS^TSe?f(RPuogcH=Gng23L%sIMTNGk|@iF%loH9SLotx1h=7bHc*|ZXCpgvU-4s8ueH(3 zh#u5t!*th3uC@4mZMwj? zy=CQlO)$tU&TfP_c=H3bapJ|Da=FSlTb)iy=0gL=zPztv3|BND4MpYFmAOXESlNsk z1inir3qe&h+>Bcf-1UFR2nv!l-qwS#O#N_od3F^j&=d`*l`)x7HBv}Qk0w2nYQ*Hh zki>z99-Yxevhe{V%eBu)1`3VhBo(w3XoVeAEfy`Pdqqj29wAqVmLV@(Z5m=TXP70wf z{7a&8GOK`I%otsJnl=XTiH8EMh3`J!M!1z4=>*0+@EQtK2~q#AIXMc9)X9(p|XO56Vf}l)Ns7b5rfp$T085_bULZV%6^&${}^;7D3vj|?fvpo zK&d+&5gqq7qd@sG1a+Zv^frtDPq3oOIA5m0!C>s875W-@6o|q&#ITjYrbw?mabgpk zJxb?PPLjrvvgApGy$nEl6TpvBOL#=M2zHa|(Ejq87+l~2=+jHpWF|7jbka-_!;hs7krK(46H2+vzm1xXf-KKdYYOYCg!2v4EiBAcf`bwg`w$OZ+9Fql;E zQ*jfXpWq*|igIhp(5Cn?KSD9pk&9z(1Q-8F^bQhc$U#UL@TSDVhkp0N&%C_!A_o8j}9q^X}Z9t)+YJ8Y}lI>s#$pmtNR^`7 z_8-@e{pfn7S020To~5ll=OBi2uEeO#cfnk7d-}%bP3(`Zd-7O;1m+p_c$%N)Xt1uX+cK(~2#LPx5Q z{ZPsNQ7MIGiqpUZGA@Wz5XW}48mBZ*w(UkG`%i&UuE2v4g*0#D{vUO(gf@pSf!E>x z^=b;QpC9MNylGGz61yN|A8OiI-pV@w6AaDgMpKenhi#fGw(+g3l`V33DDMj@Dy9Gv zK@)ijeB^Y5Nc@~pux4{?B8(zJHjyi=V%`HX;nh3S{=b`^jS81gQ*>o1$hWuv@tEfM zmy$BwvLIk5XjlB|p^WA?`pVEq`aCN#YPH7J>JXg3whgYl^5Bu%o7XH&TytqRxQ9^= z(#zjqKsB_w3wKj#ixKIg(n2Zya5-5dy+El0;nRdle=t78Sb8@F&x`8efznFpV7%ly zCAvR^osz7~THK_n*s*Y*5Kz2^%v*`BCyZ1k1p*k<>&+i(r6lK0#>py>#=QaozKgNV zC!v}#;5kJE!8)zx;nIQ&8R)6UAV{DSdS}BokQ5$25Py>zI!iO9ZVN~er?qHe>F!rw zKG$|j;gP$SCK%vR-NRbl(oDD{jK#3*6UUTZgT2Zu||rE9);&6{z1UwYOoVHtN7@_#&^@zkhYHe94xkV=9Zogj;V zMZ`R^98sUqk**5N(mHwUKuE+2xE1~cqC9}&YH;9TefUILNq>V>c?=MJ!O^61VC@pj z$G8$#orV!e;(A?YA8oir4IXSyStVw$EMT1ixN<&3WBku(3~UJZoGbqZ$n^_X-s)b8 z&iKvTYPe>jZ4Yw_D);nW{1!A{tSy#v`p@}b$Pcz$ zY*QRVmPD?H#FPpN`U@{Ev$(X;<^IuYS1MzTGqXE4x~+C)Fh#!RPR2dS+~L{gTypq< zQxub~&&J8e;&`?e)K5KdIGJnC9_Do>$os@i4Jy>&*w{IHrZHAodF{-R>CIYq+@(Lf zcm6_Up|=)XKx8u%%Eu}y1b87>>n&6+%zB1^J4#9;kxA^4U{|=Kr-IAQq0Z< z7k2=`C5O$qsfwy#WFi^JUQ0MA{4~YmE~Z5gP03%|ytjVdyt#T^@@<-b(~c!6wqSCX z86%3~XnKkH5l29xKn~vW6RI#DLk?>_y08|>T3tTI0ik#80;_-tC5je;)db};ejo2vI+tekX=9a1Yd-bd<6-L0l$wKAiyHc*;^ zb?anGAwmwJK$F(|F+yo1DhA>5*qN36%lq7`!o~pv-RZ{8`Wm^2Pu6;seTdg(?7IV% z@@nYL@Me0*xMc}lIu~(J1Vh5mKOI+DSI)3vj1A6Mu8pOuTtUy(ZarDO=%}jamPH70UC05gtW4pqD&M$ z&=cS}(6AA2>kTKrh~<1)$``!kd&QA}FGmU(7giHP*%KNf+?@P#(Fgc2KZ$rJ7<_^t zT(wetU)FeOqkR|sJZfpDdWj*EXPXP1)?7A|WaaB{MgRiCJKK$yviN=y+8KN|`UIqk z9uHR0pfdZ$B7DGZ^|0C_t;)4)SxWs!q~0D3%Q{YE#w(nt1v}Te z3cpp`=^h|48V_p`X9Yg9knt7|q-55Z+f+JzRF0E1PI_(xekd3kYZ0?x(Yo>np|(IGBa^| z#068k$Hu_JNTau0d=~^>D_5x)%nfrnh+tOO1d|b#l%Y8Mh^qj#T4o*ET|8q^02O+X zJciH2EwGF{d2Gi}Jg5-eUPaH;Go8-Cp$PK}jx*)A2;BqIY_`mUl#1XO;+kN7Sl9YMu~DkL_nci}V$_4d zg9?8B(v{C&`9km&*mw{1BhI?#xjXR8coH`yD+*ShPs{iz{4hh#9_Ak#<&T=tG(+?{ zKMySnkr!ItPsO2Lv%?Lj8sB%s=Ny0cuhzmAUL{Et*;k?>?`e{IR+I`SxSneXKQ#a^ zhVDyDj6{VO7TckTX{y3WBU`tC8r!)~^TiW_wdtH96{K!%1OXEP^}fM%e@3%3wyZh0 z@tso(uYJxGgMEnu5c2*%WxRfd0UcN87ds~&n3}!+ zO>|+2@uG+KyQveaX9ktYdQd$KF$4a-B=HmCnce-gv z=q~t$@v!hW_RvrLcruuY7=ls%Tn0Tp(_g6);eai|sE1Eyl8$$53GIc!ophO*c6XLu zcFy%y87h)EcG5Ysgl83fmQ+7hWvmETC~`|@I;;x9WNNkN&dtAS>V>7-sLb?S0)2O} z#iP+JTt%CVtf?@?-NX~<6W7b!X`jEA_cir=A%?IIm!}!)RRYIwgH*y)eM&ib1dz~~ zU6>n|rDUNnmhdr06ewa(*~Tj5v?dxuIXeo8+IWHl&l7&S3Z~!@#@=%mo zz;(f9c|e`LQGhiU=QSdN5;@Rd;e9BY;i)PNvNLJG-~1rGunTW*H~9Gb4t z$&zJyN+nb`IgTK9S*wbDx=a0~qOI^!c`Dr%KZj$|Ve=fI?9B9wZ>b*|gixEU1PekpofUE{ZC~NdWCGJI10N#A@3}kIehU+spe$CR&ceTd>~DeW=iIV;rF%-f zB;7lTs+NY8AjSpgT1vsw!FKBP1XuieDiJlab&+;jREjjR83HAU*(eEG5*_<`3yO&z z$`#M|I*UaDnv1Y=+Sk;+^1?&z<_^M88Pa@C`{DroGdM%e z48u*XT4o4`WsQhxtigpTE>T1a^gIk7ieYjV_D@7vBG^ZLF3he?i<}7_+dAy8gwjOP zQG63xf?G~?EA89D+M~uWkJjDou3hPzJioU(XVKEEp1D@)){N;dgGhxA*DM-Ij#By zD5g=nD~Q9J8WS9+2A|HPQ^B3-X{dG|3SttrKEQOzJs4tLU?as%`d_acLtmzFX4U`~ zSv+p8y7&C$i_fdIw-})pe-=2fUZdkl8q1iQrRQ}VyeM3*wg+6?PV&h*O{jT_PTAyc zHr*W!dWN6ayZ6xk{k7_TsRxCD83MFv;vS~iC&q%^7$a<&2pe|*;&o-#2)zo;k#wP@ ze3AG7OWFk!N>ly_qYxlzWnB4}8(xD8yCWmykEHh?g*O_%QLVPS1Ol>Ub{jUWv+Z2E#a3rGU z*ZW|xgJ{J9vhAT<_#{ucG=*ilDQ9%e7xv~qMJG+N#b>*R>-+(OD&$lUj z(g-PbN(fgYf**;edyL#m#4j7)Bl>|(7^^t$;`E({Sk)B`t_mj29OH+cSoP_#iKDN4 z?wazhk~c^6pp3p!>tnZd(l^ca=i3>fjss}7=R!`eOyi@tTE|mT#dczEg^mn)+Htr_ zMb5c{E<5r+5pJZ@8)FAHqw$&J2#1u69E_7_fJKL8LN>8%6!SI6n$ok07~J!^8ca-hgjb#TQ*_>ua8 zZNx&9>ojyNq{}nnIkPGA7K&rN7Ht=QT^xk)dDvahov927=Ymx$irA;5h*eN^Wcmaj zfQL>I^0~vkh>`$rRFMH^MRF9v7W>HU21Vxv(t@UZJufMu?O8~Ef_!esVxFHwaU*8( zN^C^yqIRLPoULpI){;g;*i&LzlWoBj!9ZgoC|Qcc>k=sy<1Qc8hTo(%b!>ko&r_pw zYc4S$Z7fqMv~@XObDNqTgQ1WN|;=KP+;j9*IvsAGMGL+aW6 zZXWJ$Z2C)uB@c7;u%Cg;6*iEjlfDaHwinU>f4Ja<;VsVXi+37h_Ner;7~dMcIJ^x~ zdWj2Po>Z36Y@6*Ko|6{wa5BwK*2Wvlo*$PX%~RoAySKUg@<(oc@vV#F-Ox>y8vBCM z=O@Q*X{IkE_4!S3_rAr<9f{mL`Oi_g9tW+#o>q&bk7Q4p?r-$UF(WA%C-ZXj5v71~pk=DL)a^E1Etlvb|$T6&mi?!-x=_WY(EPEac z-J|h~K%Iw);aHbY;{k?8f-xTr+wL9V8z~{ehy-HN3zw^{`;zLTNu$)BIKJ$n{Q;6A z4xg8Xdq_JG&=oV&t$`#{H!=T`+U&v{E+G0Fn7acevOxe%#hCh$s=?ObUh*6iV_v)+ za7vu03J6M8h7s(G!%~STMAy?;8VKYV<0ZlZ&A4b;ab$~HjUsGJ4r~q-NeUgs{M|ZO z#sCa8)m>%fFb9 zRaHrzAW01V_JNG4`J-&CN8#%UcelF_ewIcO*B07PQ`3cNW9B>8Z0B#Fq5i!~qL_}B zv`)mUV~F2PuN?@sJ3zdvL%(u+_~~fQxA<**>u6rf+xOD8{$FbZl8clSk7RY7>VQ+& zdWF3LKuDx6M8~2hW=Yr_99{ z;nO|5T{ffafp1x!enWto#n;XnbE#esz?5tXzIId4k_Zzw97-d-811OKys*;T^%t*r!?E z86Alx%9o;599okYjrWANQ~rB38le96#s`C&Flp3FxkjGXp6DVYc?11|Mf(37D$gfb zFpIyg#T71=Q}Ut zJAXSHYFwn%uuG>znu8l(clHB}W4?e}u*H#QU6#z34`FpJsjpI0!@Z)E#j1Om5`jIv zi{fq=rVC2r4Biyr zl-vQgp~S$UOo)vug(8=lrZHx%>R>ECn3)x6=k!+1gJ#uRCu>{2)p zN4&cspPo^zDOZ)t5smW|l=a>buY^E?o?|RTAWbg?42OG}!GehsFHj1hVyjtW%rTM^ zVoae+9WZA{$0o*i!LvX2*fkJt={O;-8`9FT5?pZ2V?Vcd|75dv^HyoB-1yz(O!<6y zrW{AaedtC*g;<85V|YC+m6ytUqidsPZ9q;(njFr6IZX#1ax6E=u$TIz=u|2DR4t1b z=AOaELROS0Aw%q+g7^f$)mukSO9~p)-OTBIWMVF-jc01b zEuMt_o58ig-gt?jI*43R)f_K3!kX@ojBBqVc;qG^tts1ZE;&O@%CS; z4aQ!HbRO&6=20MBGb1@i{94taH9HMTmS2RVFOJHL=6O6Cj19%3Mn?LoF$--N>a{Dev-@ijqe}g z)d)|Nk3(@6ps!nG7per?i8`DW94Rp{U#ZsF2}kT<k)vxbN#gvFc+VxaEdx zr=#0z_wENc!O+K|a_c0$@9}s9y>v58PlB1?9rw{Ve4X2kXc$MYRd8hD5V z9<1_k-o|@Is?K5wO;ICV-T;-83fxKOuEXVb(9Ny%Ta~cg+P6dy%9YENLG|%F9&)FG zW|(YR2iMI~)TArqLw7u09aK^zvla29@X60Er$5pb) zx$4_yKMJC1e`5D@X2QmJ^`lU+0^@q~WCv5RL>av7?49X?UvL=nvE#JD8Ul~tiLQ82l5FnR@>MdeBJmk&`;t5C}2 zsc-D4T=_xj9lr$SGU=Y<9&sQ zJFR)DLvVXNAQ*-Y86h&+AGwOi*MY6fTi~gBc>nf9SRw&=`&D?_l`nqF@8}pN+b9+5ZEHPTOBWeFTYIEEe$`@l;HrllCv&p4 zr1IqXDf~3XJ4@DX!RC_8GKvTpni#$yd2Nd)rTJrf1vr$;Qj+ zr`4LDZgyJgq$gMCAi*JmT8Jy^^fd*U~@2N z#B291JfDQm>0|FISK^cSF~hy3@(QI5sqTg4pUlS*JyNNt)knEr%gDPJj+8y5jOexD zPR7*@vs!XpOM^x$Bbk*CQ*3C^R9Cr@%6?>gr0?qY6Mmj?%5lhm@X zS)RJ&K0Y&pKp}>4D0J^WecSPa@$4KnXAO>0pyGBo{dP3>vQ(FPW-}l{xJknU+~i)g z{ZG?|*um#Y;b88qkB@VG_vMf8!Xdi88tgXYgS9mA8yVxp6*S$r@Z}zjzZ|*w%`=<$gsd11rE_uTHr%+D!)3I>DHnSES9ml z#`E#JF`RCJXlbB>ngW1c+etym$!eCLL=u7r7mAfwi~;Th#__7)2-XacS6Y>iEXC56 z0J!a9$t;M$s$YG79MiR4Yy9eJ{8D*+rlplF>T!L3M#}7>X-$3VN)>A1gZi~8m&s}n zftk6qNj-D_EH5S!FdL6?3Z`0|cN zzpFhCzH;chTUW@f{dF|&-?vw>{_4F|a?+p6?;TuujNTkKBBT$vUs490aAf}P=L^L< z5>f(~UdT#!=JHiq*toyYqKY%hSIT$W4uuVE@zGpPc}e7@mVT`g8GW7f!&$q6`0}~J|hA)RD1K86%wlmR;fDFn`Q7Bq}LP6MZ4zg8ERP|U(b`@ z9Pjv3X=x)|UU_)DS&x@i-}r&2-!|SQp`9XmWS8O)wQ3jg*aYe`r$oE%_*>nv1uSeF zt{CLhMr+YMckgyL z2PeYQZUfS;l3{R~0cV53pwS>F|WR>D})A%gSp-*d@L8jjsQ&+nRHGCXc(Xz8M=~^XU(~ zadj!KH^={#N43Jh5<0Lx%!)t+L?b^9J<}%F5P*C8I*SVd##kjxuF$ILMQc$|8JU7J zDRAnSQuJ*EHR(Vchc5HH5`|%PHg%at8d&9O%y7Fn#Y`-4-Yj-_CrdO$EsLT1n$0j{D7?CQ^RCcHlv@%mg<$?}I?FJ@tAR)-1 zbz%Ym`r%i=P1wvMbf1FiUC4Qx+0iC=a_$nITUb%Pg~gEc>r-`oTvnpMcO<65Axr~~ zk~lEn0(kKd1ayQ&FYDc!OsZ&=8n=pVBx*+UmW-6!IEW2lGyPf!Hy0!MQn5ykwR}sN zLVSteF3l$!%YBVaombh!~x(*PE63lqePMutV%W30?Mx#KbE3 zh)Ex;P;ldf+l@(0|4@FZ=@IU7$II^elgdp5_n_F-^Zq16p2d%+o56u7nGBb>5IVvG z!{~6|4thw1QYink5*CFxFj`7M|KQ}t0ok(hL({)Bu2gj=Yz&ye+`$XUA<~_!T?(hT zz60TA`Z78hNpc<_otFeHclk$}^<&ld>1nV;V{`z&T`82iLGB5zaqK1THH><;i(Drv zlOWS}yAxp}T%mkVeXL(!OiD*Vg_G2U=<@W#%I6pCG}vwhygnR!W*czMMek$Id;(XK=DhXEpV zA;hv-*n$uFfSz*PhFq%Wq(G$;AzA1Rs7RUEUZ3lsa9R%x+qG^W86g z&2wFvHEL7j$P?+67b=}BrN5Du2CAu(Q5&8jBU80Tmb&M@=EZlvdFiHXa;2%UeJl0u zAn2rnv09~DcD-g=3z}WV3tcK7%J7J%!6VeU3QJ!O`+Ga}m2N-oc8Lwu$*Y|>H}PP6 z`AYIlM&-Uft^R5?zEt_9b1ymvafaRgs@waehWjIn)S&Npg%;Eih?h!&*yIVLDjf6- zrDCPj)L?4UUb*~RiVv|bdGtC&N|h7FhQigQYvmH;+a{OD{29n2_OEmtkRHFDmJHc* z!V2j{UxaYJ6@1bCi2JZ5zskFSqLBwS*DC&vZhx;fj!CW&@bRu6+At6AcEP`01q|oC z){wTa@3!q_+p?Jit~x8NNZm>4DI>$ncTbJ-V%abyLaSz{>tIq;S1BD1<(ouWb~dda zU59PGO*5HJ@_H%PK1GXkQK7V?uFO3rfaw7*0cSbfhdM~=I#<%%f@y8thTJlCJH<5L zMyu9!26;LPI`*unrH!7G8)jJpOyzrQ917m^2>q86MnC)Zucf8^2%(n;!6T2~cJ#H6 zFHKV!itvp)r`U<45;}u;3HVW^oiXO4uva0UX@&19ttySQMg~MFUSjEag9qYE?Y*@v z$_PG$Jfj*<@X~U0zB*r;op1}m@sNz(U=1aBwkGMz^+uq4*`( z_{h~ryJ;L2wJrSa55O|w0qsWOh1Ynrn@(gioSLlnu`|R2o^#HH#^E2)g1kUBA#rfy z{~?_Y(5=$4N}YcQ@8!pW&$xTsgEEZaR>QJ6nR}uySOQ|76Bp!PtsMC#y(7|`ksj6# z@#`FOUKB}z807Uu?=3B2ZrvC?hm#v~zH63Ht9cPwsbmMkzSx!Xb||T{A|uG7ZbHJg_01O%YuRvhtdp-xes_>J)wZfRB6_;I-J1>wiTrvO`z2gl&VYr<~$3vlv@D0(_`6I9Q60R?ZK zg_zEeH2?as!EN=a#!Pd*)mdmxldN>xME@!JNuCA*K1xeJ5VvrxhXnE9{MLGSXfxWE2n_R662n@RY=;0B_~i7TCJF1(>0 z-yC8}*Jd{>C&R^HKAZssrj130_HIW@ly$iL&9pS1gv&wDE_KP5EH{=`_mqN#v>EJZ zCyQZe&*~D%m8E(orYw21f){TdcUdW!joa0!*kI~P)&7MVU_Q?| zo+S#l(3V~S0|kb<-LsWg%jS&9@+A-Pe7oOXEmGLt@elpy?xfci%$ zHBV+AY96d!$kv;0iJp#*W)DT@%3Ii2-Rgnt9m%g%zt()Xb})J@`k~rv?R>ex8|_yI zjKf2>-)jALDwZxw*3@{MU6}i!$JQSH+ONI+KquKc|L{xhba$S7;)!#?9Sk27O-7v) zOwf3CS%@kbY?yeygIdhEJ)hr zlz}KtZJbIP@p)>iozwngE|G9fZB0_V;gnjq7d;^xhkT-4xH1l(3@A+!B-JlgEs+2@ zy9!IiWGtKjQ1VF|>4tJa>B}Tg1u?5*Jpwo@S5?EwC28`78lX`r3hLD*C$BQ1lsF6G z4UR&BJK|A&y| zSMZ*G2{G_o_Y)EVAV~v=dB9aPZfxdfv;^OK&MyQ5O(U`k?g^60%83cE`xc-Ajcl?*9L5=bD}g2@JNetPv+FteuG$WIHFN6|^1 z#F!qmJy}5q2?X`=L{e~0L#);(DEQKk+Sp=r4Gtk`MlxC=B{5tiO$JJ9WPQAJo836; ztfY0YQPf!-t2CyYt=VR!zqbn<3hU`gt1Xh=Y>j333SC-b*n9k`3P3NhtnoDH)r(AE zq2t!;=XWuPjhu{%6w*-?J5<_CSe0-`5FSSmWz-`=bD@J(u?2{RQB&TPBsJP4TJBL5X}pmSC+dJzs0!o8% z>pGQPh&dD(=}!P}9Gws}Ib!vUlSbij1{5v1qiF?~D|Zm?pWwO)aJcs6pSuY@`B5&v zn^*mv2=@awV=7W2Lb>Y6B#YbSa?BD8JGT4061z6oiGsSQckSm>tFgdXl1$iYBy7(U?6bw=8)Oxhut!X}1e7Yp{qS@|9`q3Ur=2=f* zdjFRz^hXQQ(pI{OV>u-ZAPSlfnh6m(`KK!k8y<8Ld9srxb;ov7ZIwFZN^ANYokdD+ z%0+vEda0GDxOvi{c#npjWrP)y=9(M{0_3PEzU!^Z7MoO}-9$SGaH?1Vd+cTOs@qYs zM=1c*4aYD4S(cs;?|$UKYP;d;jjH&I6ku1Tib$hO4>K4X1ktF|Uwid{O8n_6ae$CK zfcCRw2%xA!i@;BiDs6^K&HADhEr~A2|HJLUmP8ZG0Q10Bl+B#q+k0DuiP?$dE_hrR zRy%-yRr^u{Ycf$`p(hjz!&gO>gX& zKOxiZYhxQjo#Qo+SASj;Ng?GKk{rsrTXZ1tKSRb5UN9|hBVNY_>5HpH`$`F7w4(P{ zyu$M%5u)eFDCRc$>suh-gk{s!>>)jFk69)~{=|k}S+B4a?B(wC;TVRSKlI`-dH~&k ze8+YA*A@MUDy*+{_6^3Hi`~v*YkXo~cdb5F#jOEiPI065V6Pf7S4suA z7`!kFAEG-opJ|sKsO<@lxZC4ZhT#k^#pMg3dk*oed%`%pSM29pT0WlkaOsdWj2>k8 z8u5s$q8%Ah?lFeoMR_{+5CZoEUv$Kw@I8256*K>QZ948`J;o_`!NTt5@__?O+1PUP z1-))B>%=o$&ga>P0{qc?!b249;lMh?LrgFKb$G^A_C4RuCC6+qj&3G)Na8+zk7HnA z+BnU<<gpU|=L5(sAm`5mM1IT@?tI%Es)ol~@v0G$oa6rX9i1Ug#EhQSC z4;|`5s-C=GoEfhd))v8O-LIJtIKVEq7~PVaOv;w}Rk86HS`yANy*zYxWWI!50e!~6 z3jQO)@uaGeIaAlU%J#BA4lAi}kN5Lg!~R}8+A20sx@NA#y;AqUS!!Rq4tu%ha_!I- zqRjyLNa^N_^Hz^yXcd?_kc&mcBXd3jRx@Th_ztZ|5JZATz%t3=B}E}@y_DR(R7m2{ z=90+UVo*bwSpaR5q=oP_L*2~vJmX3VzvSf;xWH05ydal&8j2=+q)MCu7Hm5%7=B|j z_#>*C1Q&QmV?tSyQkbI<0C|q&;|sRcs`8tr*$e_?f^U?y*x=@%K9#s^vv!(*_G`Zm6O8OEULWl7vjenDIsKE%B+w|gO-I?sUwUsE&PF1(E@>F(n(!yifTB0LDol#vY zrJ0t-?GEE+9U2X51U5*=7DZRYY!xaPJt%HSB~9-QI(3cjyLR?PB!1=siq5=-NV zOewl+qztlMyNGswl+w|i$|H!xBaQaX3(L2jZbOM%oa&Kkht8=<^axwgXLnbnd_=d% z8kMmAMEuHVHhe?)1QFi4t4^(5{-p~kVk}q#?I_ewXTiA98tb=ClT4uz$@Lc>bO$S0J-5n7S^i~(3=`^zrp*~4W>Bl-KnJ{2Z5xG#ks(FRZ7jt4+LzN2+=yu9hG)euS$n{jQ90V-OsvD zx=*`baoZ%X1RFc;JU#=OAB&f;!)0*JD-9#qTwqKur?J)`WZXArG8 z|EONFQVrJjgDkF2u-b*3tHt}U|I)g=CaC-R^^+BNOb#%Bdk0xij?53$45_|p1*Rt1Ld-+u8`Tk zdF@%Dpd15v9LQrdndV=E2{(V#z8yn_O*908oeqOlPv+2}zFeg;GW{hNp3mV;Zc@|Z zEv|DTX)lMbn-5Q_M`W-S_8G4`3hsuVq*CcJ2q-xMs6U>~$Kxpfv1YTz_y!tOCS2Z| zO_LLv?On$49}Z})rCE6lqfcYc%xA~hPgn&cMk(N4bT?ylaDo?vi{T;s7EiccHw3e8 z>u29q?UNba5;9tMXR+{@(LddO2)8KRT*iE5+WU?@291Sr-;f(%qH=9zN%G$V}1dKhew6DRMaPNhhzwl4S`q)?id`@nJiZXrtVt+reBEehJPNdF^u7| z7A#6hAtpuEEft(~3dR7RSj#@l7m1|WTj`=WJS7A;o;*GHg7UBha0z^>$I3dtw+_Jh zbz-L4N2Z=_NL-2(RF(j6c!BAAW0^fNyx2@TsvI;s3J3ZYfh@LV6n3^EiGcg6bk*mE zIll!*wxUvY2|gRtjsyW|pc3Xa$lbajL-WGv;+T;G8A-++Q_6+$02un1M2kuZ2Wkm> z?20l6EMvgCP?1qS0npnOCO8U_VGJVCA<4kUdY}}(%IzCz!(wAY1}6N#2eCO&a?{Gp zE0a{3vtW#*%?OovP-DMzCReIq(Ld072j&98#6yl*yr7VCroGYAo)xhZ3^N-2&d5~czAFQ(MV*kB=U4J@cJ zAX6-!=ne)HZNOJq`BnOnmTIU`!Ah6I8|DtH02La zjsY8=K5na7c!|qgQDPWWOSe}DKt4<5af!f*$-uEj+e#2M(}TQXbd5M4Dbmjd!tATWIj0mU z`=Wa*k&q85+IQ8P;(d7^KtY6(<_gjescASb<6HXabojlD@IrZ+0@G%>;@ZA#-spV- zSM6YWZP+4O7jJltt#pHhdG8HSGyq*8b})B9aW)}sJBEISr;!R}acK9WA7z-ECfufL zay>~P55<&|wY;V31m$6Y=O``sx%|Qu49y#IaAB}~!FDQ~Ee6!3rG4@m$9MVeMRzP5 z2npa|g`)?bI&l3Pk6kynZyH4eS>W_n;;BR`%jxvKx$BO-@%jVz4(LP~O-Kf&;RWQ> zZIH*^sEP@CHmULmBcCFI6oIEVQ(ZE$#$25tYY3q6Rm7e~#nLLZR(r8VH6eTmjKaqE zeSD8J@ckjVi7%>7-y_tLB^3;RWfFcy6)vM-E;;7@iE}S&!!oV$8d;Uh3TlH z9#`qsN@t{LocPJH3pbsj%XUJsOY#OtgRNFmd|q58{5H#=0C5YwhIebsRkk+X1-Ca~ zKsai5d?b87RnG~uug8nk7Ct+jkedF4Gzk2wn`sRXuLID>vC_%Hph@6RgTvmP-CFv+ zdU`RMI5oKU@;l-ZxfS%xs)W&4xznx&?h(8bQYbJM?8j5ilTKL@J1RE}#e}5i)kyZE zV$Ai(@9<-ypH{83_1X}FpPmc0=r@#3VVPrcS9NW`ACimO6jF}bn=QI&RRKU9l8HWC zhLurP=#HRIRVtX7q-?#j{4o&-T#i2i+bc7HqRY~55=q=2zZ_ADlR3_&Rz{yRA>rN? zNoR6Fbm=HBge2isDs*!ADRKmU7ghCAWQJg|Cu;lk1U@2jk$N6*VYbK%@Ie7UvazlY z66C)__n+3v(Wiij4I*wrrqDW46giIFP+x2@vq#NJ77)uQz~WO)HG^=-1((l~Gf|Km z;a=zzxu(O-Mmp5b{im}{3+FBYQg`;=f-WWSt>Jv%a(J1#zN5>ks-*t3h<=D|nw}wwcZ(CU2Pe<+B%SW?Y`oYdJ z;14Y9h{j~N3u|ODFp_PhtRbA~7?Lh?^~>n2U zCcoO8tF^%;;}RPEooMu(bU*r=9p7>@9!MJY+OFA6S1HxBP-wZ<&)bDLO{c;&=3zI6 z7y(Q8L@RQRDp+F#3KaMB&iJ8^E7$6V9k;1dO>|Yx_6P?QTB+U$U)rdRQ-)SdUgUvlBpLy-6PGzaQCim^^ z(&Wx`&w4qyqm}LscHMXRbfxlSGFN>xD6j8HcTO%Hst(XTS#^JdT#e|mfS<>H$_~S> zgSb?|pOiAWy(Rs*CpOgzXo|d!e0xDs6&K>h5{g)}9?Xc}g?79(!jkM$>2}ac%I;&9 zWdY4>nj!EM-d8GGC2A63{cjtOvg_~|eig>epOazwJE)DkKZ9u(P$e5HR;}Y|vY>?1BD}RluwRs1{1;RW&NSDqEh{0w{{5B~ z2FnNBu@m`R(;@A9IxpB%RBrP+>%yEKlk!e`n}oOved4G71~kuyuMbz@%wa){VY)B) zsCq6uhC^Vn;*Nkj5S;{BC~%5UL8?jagBzGdmXZrZzk%Ad@o792S^5Y*lHJp@AEHw0 zyDQ_hL7DP8?ed^LUVAq}`X}b6cd@}EX>>k!8g z$yAR7pGEJqf`1!abgPS$+FHf!vj;B=|24+MStT`YHyvOZrH@f{qHwHQb)T)qW87t_ zvsBwvUY)3Q!GC+YL3NeVfd3ASxVS60NZfs5ZR~C`%79mh@M`I^K%hs^q76(rd@(M) zj%4){y zHM$4^>evg5QHe0-px~%7FCsR2f30#MD1b8%SzA(Iu4h+#?^ejLTc#lzZv2qOF! zu=YjwW3nT~jrPB=4H|m>&0VTPFqkuxXIAkR4F%(hi~V|!1!*@wBaP;1^pMU>zQV9G zOAl7em(B81o0hFr>$Ws+?7Dqw{a(ezY_3g5?hU1S!*BW*mh->G4blW(`Gk{#^ECAi z*TQjWEyjzsvF4QT?U_42sF{`Kn#S80_f zNF2Tjm2<5?Hd<8Q3$Pp>-#sJgMBb?l~BP+C)7nSdzzD~-p zMU0?zwa$bHGv*LggBgU{KpQef1U9NXrb3zkP~~l6+JgW<(J}QtIE>a(8BH$@s0+3< zRI5X9HTw8#v?w|A7Iy{#SQ%>>zAjqep4H!r93bS7iWFM+N;X!Nd2SxEVL{K84KW=7 z#B7WGsJ_mB080H2N<8uTXStjha+i3_v&Gfiw!PKcRc2-tY^kuPhYAZG!iOd-6!r)X z>v7wgz{#;;>6gU~acg#gKy0vcM#=WRZppfL@Elh1YKnG#+mP(2;Em3`G-R-W;9rK( z#o!%5I2XP%d<$Y_e_E?l2U%kcm2sew?Mm9|Tzx9r^hunX*;IWlZIxHE%7G+H*3b<; zu(!V)za{)ZjuN~xxLE#|rKiF>U2pA4_mAH}g=A9Wf-}^EQm6XYfqkz>Wvt66;(YS? zBV391%M*wjM1BD>l@5l_!qjhY{YT%cJWkfmP~2Re)B#cvCZiKKohr(enQW%LTpMId zljoLK&P^_5gX*$xl@el5xh}!Hv;-J% z{oAs{g0AIYwQ@a-@e~()Bi|)%C2~K(4prBA??&U>-+nCE6W;5hT_kY@jAe(**CnkA z0~X0BWKWp%z0uRvCh1pb3Q|?8sKuaD4*w*i{(Bt$bk^%-|9$X=;D_Smr6o7(8XJt| z{;D;Nec}aLX2Mcablk!;8{%la%Q%_ds$t@v(!61n!c@)cl9ZwX7FdET|Du~yE?Ch2Tm zn~S-Jy0FlPBe1IDXsZS3MYvaeg{9jH&FJ-Gt{64!kO!A0xe#NvTVC&>XYt0U#d#c4Z2vI%u(xKPPOzl-0k z*q!N6=xPfSkS4M`-uA+*$Zar4?k@$YI24i_;fF4V&vEXCV1YOH8i?x$;jur3;M4Gf z;UT*0g6@td=T&G57Q`^+wE<-qM#^nw%h}7bL3SXU2~S1i)i66&9wX2amRCZ?&9W5C zouw7!lj$?A7`44d& z)Ry^ET7Qu5YuIJ44EDp$J^Ki9B7DR>%U*{=YR>O%O%7V~Fyswz|8=F{GG4^+4J8I? zh{Kg?c0X_F!8}*+;j!pK||{UMK(Dec64@{SC->2g9}&tTJRAqx{_LHKwvah+?dY`}t_Z z|Ic%U@{*DNFQs2~$c`LIuUvxVa?O?$O!bm(C|V>9zjrdy7Ea^7K{LtDgab%?$>KKo z3brXylM-bt*?Hu{v_z$1lVs#PG@*1@$I(AxaAE9|Y2&}BBj5y?}nP9p{(3 zp4ln~kh3AvXf{6CiL@y2SXibKdvN7j?)%+?K@#kzcIVGf)${K_KOJ`;EeCwd4iciU z^t8=d-cn<)SJ^fP^OlHhe%xBt^OiE(+;1%#zU9iF(ek9V9Lig$1n*vAEr;`#-(Z_p z+qpK2z1ZfH*0M#*&+3}pUGDpX&-rT(xQi=)=k9Zz;4}W3)v}{W%X@7buGv~@?DZ;aLtlcU9Y$n(_Zd-J8c-mR#DA?=W4ZDt?ufU)ZNwd zAW%y!XrY#b1hj-ikU&BoTLytGHIRH{V$ljy1i~an!5D085XN#614#`21WNsAH}Fhy%Rj!&f{nJ5g=(x_!(sU zuDjd746xJvrN`iFe-*y<>$W)NTTHcR@yXy9xz@15`uHa6<5;j+Qi1RjU$>9rMISY^ zrC+cXhELW9niJzV9;}VV@wTtq$6nb7W+PgC>27HMbpQ*26CTPyV< zZ>93mqgUS)7^C$hW$3j8Mj4XKqJ-vEDolm9LzQ@A7KZ>kpjPw zZc-JEG%1uEq5R5SDn-pSGzP4Y0m3yERvvAl{4$(q6%Bxv+>+MtBkU$DmZb(a){z0`6D9Cf zP+W?s0HsbP2&g5%3e+G`K#TU`X;ShhbJzhWpiW{9X)eeO_{xzfaFtxrCR6eTuP3Y66|#oKfP4VPJ<&AOOfQH; z!V2Jlvf+PF$O*%xrEPIoXDn_R?_^9KMN}er_Jr}!|G&QWpzBWk^wf*!Al^Pb>0I{P zn#_`9%gkv)uLmo(q3KX{CjaP(;TC#|G=FHhMF^KvS@{2L`>C;UIL@wqMM+EDc~Yg39~37V5nbfl1!Qqx)pEiy1O7syF_rwYi;hp- zCmFZ2*5H=3`amPxAf_}ySo1Z`mHoO!uq7)pQ@6Q$(*}{8F@C!ivDWzJu~JY*-R-E7 z2*{o%6mX0Nf^QPOaI35$w}K9#61g&uQ&YWT@Pj}6c+%gy4* zzI`lQ663J&)FS%bf4~wkO=}2=vfS|G1n}3O^Dly9|1E$d?b0Z^+_|Fc{4syp@G+2H z;Wv|4xe4hu0_`W(%w#96g0_&-dkP9E3Q}&I!Gx;@xapMeX*KWqO8u`oGnx`k_xdPcV2j? za#Ad_bq`aXC9QO3QVe4Ap{;m&{C>*h4^W;j#-ja)*A8xA;tGez)F6_RH}wjWDi;%IU63`uqj`Y6c`{kBYwefhvt+}Cyn4Od>Sb6X0}~-{*HdOs49t&s z+*V)dfS=nf6WE30`b&psK)j^d@NDN1!cFoA@gnArbk2T%4KB(mXIE|Y#B0ezkL9dJ zAX>j!t<9x(SNmB#bG0Y4&Dxt)b)8I}^%ok+YM8uv<4M=(zh-Xvb#tA;u&a01VyVzq zYH2qIA~mjUzT4%7jB@&rlR6qZNihz>eB-Alsc zZ56mM*Yfr=5b81B{?AVRylAswk!avZKq{ib%BW(qq`{#~Nb!OSe7?O*q^k{l)B1B>Z2x5s|prUK}d^mq#gmWEV!Zz@vO&laTl6Lt!Ly6h%!ZSU!%-xPCo`YNTM)d+v>~k)Ey__AuKjW+7l4e?kVf=6y3=`8VGiERxq7yAU>=rtv0^hoH-EkRW~TZlr+$;EW~P-_ z!U(9J?(wuw&`?RD-T~poV@-W=zzD0hnNenQlH)>S_idI-om6w~d9j~mO|Hl_ACStZ zr>B-iGz(FgA4$pz&{pd$#o5TULF_r)-sA_t7AJX_{;qqH7f$jNO%SqNmcZ`-h*^Zb zWt@yLQg400Z#7;bf{xhkpo(=}A;e508I_nR0#vZ7vy`w!va=h)c$T2!(_zArM+Dq3 zp0Dmkb1YnJra|pY_AN5uyS(y11}Swo45)vT1sVDEYjfdl+-c7f)V5l!o~dT)V=kif zCTb?4wF`b6$79y-XIO0TQq@&%Hc4)%M>9bS7!iz_cMMUNZUNLWr0_&yttR;@5`~6* zfF4jCisYFyQ6mY8GWunOb<_c1LR~@CcD=m?5;)Hx)VbBTQ*N7M0>|&Q2L}BNz+W#ddp^!beFsNDt zUhsyE-~u!v@vJi=Lc?gP&iFVB)}BJZxs*Z>ih_~NDJ;w&xf8gl?DuC0)h zdD);WjeTn`7acF97SmXzw0c~GD}scDyk&y}8yUMOy`pwSCUie2y%82P)`1-x?OIwz zV+_LI6I-k}LJ|lM=5Y_D0tFDX=qtDlVi{Zxp2Md_@Ej$~!#%Qu^cM($ZPe$gGYdVI z-0pFBm2$~h_*`%qe63Qg>=2!3oi8-)AZs;HLZr5`o;HUUQzv8Itw8JpmZ@{QI6Mqq zECS%&_8^{HS)GXotuDlLF{fG^cI$ew2H}p;L&Gkh(g~9j$iLs^rj!0OC2)X>dZIGp zf-zP;uY{NJr$+?hvfA)acqFS<8d~2RkT9hyp&DfqfTSlOHo`7D!a0zRo55QsLm*bb zfaER*|H|+)HN;&9=ay$*reZ#_kedi6)<6qZ8`&0#V!?IBgPaBN$HZ0OHtm&^h?G-g zHMR978ILE|d6IRGdXhF@b)ev-->@4`wpNCAo4J=FEQNoRn`!VOX*)dF{)3S6yC>NO~NI&8p29e(P ztcV$4R6(95xAhXLlNfjzw9ABoFG)?2@JN>u!5CSs=n>H8~0oIlzhx+&Wa2YOsbgeTGof7KxC< z7E$t%JHiqvC0u?MtGWowbsr9(G-J`Hu*Qd6^#~OPORsUu2t6dK0eUgm^ahevr2!_X}FoB$F-~^W)TNC}6MrX57n!ca_=-T7g@3Fkl3p~D; zchRrJOYtb7ze$fm^`u`27$PDoNC9n_fsgpMsQFsx5POiuD~@ON%BoN#Ex~g9YvdQ@G#5g(s0fl3D*ecrY<&w1bPv&ih`vf zcM<(k3wKEjOo;_j$VJK1)!Hk0`c&llSYXp^J=rDO&8gr+a3+L8Zj8PY-GEuHrgj)v zZg2#(KvIU%6rd5($>nPxbu}UoQX}-rbaf7itQ1YYwk2R?>WLad<+KiVqP3_BE9aq6 zkQCfEtf|cuI?6vgZZRGlcL9+2S#sTfm=c0_0Ewkp)Em-FZZDzC6l^c^>09cyRLbio z6Iw6(w|jQIzSB3WEMjhUEoc3e$YR*vsjuI-=qSm1APT=PiLOP-$HM3UwwA>kp?Sg^ z&Fb&glDSvJ^EtfXFuB6YO?GE!#ONP6DoZY2qC>C|DZ9p!~4-}H+hIZzxFfkED!M> zc)uaJN9!??mn2c>?@55xM1br(Zt=XrNsrC?_1hj>%cD$o(W01e6G%P&^1MAf5sS>> ze6$#m0S~2%e|Wi(QIKzXNywTU);&b67^=&mB`j*sWbsm!CN0(vYNa}BCrHTH0DIXq zoe51bBmh*fg1K}ti1uLL9rBdE(nve*aeiSAUw&IJpv=^%bjnA2P!=<$}QcnGP4@qleS-NrLPND zXI5^&LlgFUl>=c*2Y07s)Iej3@V>m7v4% zIynSVD$9XtdS|LVo-{}?Ol*%{qG?M+zcsEdXlWEOD6CZ66d6{c4{um*1?aV)ROOqr zD}%-_0iN&R?Y?p9*QTbrqi46L*W*rd3`_?+^z~-H0=r<3yu|T)9K!WRb1*#Fodoxi z*ZJSwRNyWnr9RTqOz741a3c@j`t?w+ef=NrX=@DZUed6h&-HS=0l1{h`(!T~U5Pi( z+QG0(DIM}6vN*O0Fh?~`+v?efeZ>4c`0U5PkoQI>vR<|ud~0+lS<5y6`jem$;CoN- zAgV{4tzcjRPnJzTe$c%(tbq-z?{=HvT5yPU@W;a*$(P=Tk>mSMz4v*p~ygBaF zU+GeRtadcqO77y!Z@^)YM-VTu)r)1Ky&$iOwMZI~Yse;)4Lfl4C%_wyGrJtBw7I21 zg%Ef_WTaon5F|)=rS`N1*XS>+b~(QU#xeD1BjK}CzcKZ5ZUAkXm^@QC00j@?e*;52 za(VXh_0VjR_=)=+V%eC8|4rhp>&m}L@Y68{XXUkJ-QrWg&gcOQp38gq z5trYSqx8L(-})`@xa!U9=-#r70)C(Z;}W3!kp15Ej6%2bLmPhsV!J_HCj-jX8fyV4*4m*WO>g$* zGxKw&rX$K9W{p>yxTbca=~Hv_XKtSDWzDpM)dVbG+p0zsL<@rTWR@%{j`WVzSMzK( zMFP&!*n-?17v(qS#HR+XxrT{saK*6BuMlFP!KDZ@eb1+5dbV0fntem3#P=sy|^qfSpWF;h7?g;9lH8^ zs(B$XvE)w3n;cQp9i2h|)x`)n*@6DqO#q=kyLQPvPH6ILr~bE+PmN&&&OGK*nAAq- zI|czirGDZ?C5ma&^cB;69s80;-A}Hc-~uuxrrQI+~Oc-{bLl zTI(T&)`znW=&M){mgF>FZ6~tA5rhB(>nL6V(aXjCSNnKYP!WFPk-2lE09{DpSEFQJ zi$>4QJ#w_k;zqfnqrAe^H`cDqqaNcy4=DpF>4N31sL*)QTk}_HHzE~Mq=D(-KDFji z_dzdI@cuEH)V0i;IbxHF}Lq7y1yl<&jOIfVzJ}|6Q+w_v!a2jI>xpz zmcQPbYH)aw0?R7mn^ilQlqx192@`ev(l$*q5P;2BebTG?QP&fcKqSLtMW05*a(dB) zb#7e=B26$sKruPWi!H@%%2T6X)5_7!5VGX$mQAj7f*0#TycOA8;W+JdwlI8)yr?|9 zUXqukdK+t)?KV?ct?eP)aoYO;j0sE_Q6;lX>s3uKP=WRs#kA#7LGKYOLhxJrxO!UQ zW|%-Yf=7@(?yK$Q$AQ|H^49|{hXB@Eb6$n3kakh!SuTe0;Bn%UzD$(O<1Scrog_=< zE4AvO{NDVf=JCpj=IeV`nge{Vn`FSk>Aru(UBGkXj*;*ma}UxJtJNxb{Rb@IBhX|6HO$MR0)8#r`+ z{f5Kq=a9X>q2G9nbHnOfHS1EJWLbC?Ux0vt8glrszkpd+=4{MHYc6L2D(S^9xGPtm zqf|uFZGj zrQUq_c;0mXi!^A z!Gq{xr&RiHEpNk5AjwxJkasaT=mxfc%_66DFWEb7r5XV!8im%d@r@4v)RrNYZn#R# zG)6x{Ot!YHgyZrW>pI;aTEaAk6+cX`{*DTvKsP{cbQSIZf%md3iiqetN1-XW)=^)u zm;cGN3&BqW$<)2>N%vt;-|J&zVDvy)(prAKm1=_Id-Cc@u4lZ47zK2jebdN>rx%5z z$P*5)fzWboNQM^g83Kj8`$s+?;ggU`j+(-OuV6znx?4gaIKO_q0o0>?8Ifg{7;lR) zlZ<(Dp%)?na_sUkBY#OYtWjx%lW)sAnh9YPNkYuiXmyP7`e(7c4P3R7P}R7}Z| zo&}Nc&R~1=$pj8Yr@VS)gCRPMzGXsz9u3^>;m>~Vbn^VSFRb7fYR}wwvKr2OekQD* zym3Z#G*%YA{rTkd=iJW)!Kd=(=UZto^=NosejD(3OO)Lb-)@-rT(j|HzK7Ga*6vTw z>@D{)EBx16*&9rE+bTM}mpxglJqsG$?!sI1TL7usqTs&ZG5FsdZjK6kB!->A4OMr< zinujES_?=I=Vy{^ABQv9RsuH{MQzm>#LL5F039vm@&QhPQPOZ>sS2J?lC7lnM3WHF}K`Dl` z)r0H)ATGv8z9n99fFsaScG)s#I0OT!QO$7%vYZ7W)SO$8A-j3bWDdbcrEpq?hw8 zcnj}VF((8nEarQl63adhur3twKm-9VbN=Ohd)Hs|B@nXZgSaDrhSO^+4hA0FAbHzg|37Q&0J{A1WQ(v0;Elmc|hI%LbNm|1z3zg@;eOXvD zZ<&w(5*x7pn2RB0HU)+QoEIAG?;bq?^U+lBw}s+bc#Ou@Go3K=+2Htq+uFVTRMLm0 zl)wmBtdORNEwel*D!8jVbM@Zt9uw!UG$gXo+cWg1)7>rik#5jPFEv>iN7kyi9p<=y zC|j7|n&~YzGHN<5h!n_!08M7m3e~(8*kf&A+US^H#^@eMsJf&{w2YdIT+7^9)sgZek3SO%?)9l2c9 zi5|_cB>0iH9A3NW!k!B|N$WBp;CROIIp<;9z1=k`?;sKJM}tQGj=bS+eS1jto~B}- z+!0JOq1(G~)7s&;+;%qpcvibJxF0u5n-=>({!Q+tEM8T(NIVEDu021E?h^JdFOr&A zRvF5BLS9zV`a9~$O4tiKFyEY-9*Y;Y5#zy%0A@rBG8NIH#@f;qbSWabw~r8hJ{L~U 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 literal 0 HcmV?d00001 diff --git a/utils/fonts/SpicyRice-Regular.ttf b/utils/fonts/SpicyRice-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..de04fb7ed3e9b08cd287cb3e1c66a448c535accd GIT binary patch literal 65816 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 literal 0 HcmV?d00001 diff --git a/utils/fonts/TradeWinds-Regular.ttf b/utils/fonts/TradeWinds-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a5df1b0e038bb95b08a0459d1ff5177a4ba86b3b GIT binary patch literal 84588 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 literal 0 HcmV?d00001 diff --git a/utils/image.go b/utils/image.go index b113a63..21024c7 100644 --- a/utils/image.go +++ b/utils/image.go @@ -4,12 +4,19 @@ import ( "embed" "fmt" "github.com/fogleman/gg" + "github.com/gin-gonic/gin" "github.com/sirupsen/logrus" "golang.org/x/image/font" "golang.org/x/image/font/opentype" "image/color" + "io/fs" "isley/logger" "math" + "net/http" + "os" + "path/filepath" + "strconv" + "strings" ) // Embed the fonts directory @@ -185,3 +192,166 @@ func ProcessImageWithTextOverlay(req TextOverlayRequest) error { fieldLogger.Info("Image processing completed successfully") return nil } + +func DecorateImageHandler(c *gin.Context) { + var req struct { + ImagePath string `json:"imagePath"` + Text1 string `json:"text1"` + Text2 string `json:"text2"` + Text1Corner string `json:"text1Corner"` + Text2Corner string `json:"text2Corner"` + Logo string `json:"logo"` + Font string `json:"font"` + TextColor string `json:"textColor"` + } + + if err := c.BindJSON(&req); err != nil { + logger.Log.WithError(err).Error("Failed to bind JSON request") + c.JSON(http.StatusBadRequest, gin.H{"success": false, "error": "Invalid input"}) + return + } + + logger.Log.WithFields(logrus.Fields{ + "imagePath": req.ImagePath, + "text1": req.Text1, + "text2": req.Text2, + "text1Corner": req.Text1Corner, + "text2Corner": req.Text2Corner, + "logo": req.Logo, + "font": req.Font, + "textColor": req.TextColor, + }) + + // Prepare paths + if req.ImagePath == "" { + c.JSON(http.StatusBadRequest, gin.H{"success": false, "error": "Image path is required"}) + return + } + + fileExtension := filepath.Ext(req.ImagePath) + fileNameWithoutExt := req.ImagePath[:len(req.ImagePath)-len(fileExtension)] + outputPath := fmt.Sprintf("%s.processed%s", fileNameWithoutExt, fileExtension) + + logger.Log.WithFields(logrus.Fields{ + "outputPath": outputPath, + }) + + // Parse text color + parsedTextColor, err := parseHexColor(req.TextColor) + if err != nil { + logger.Log.WithError(err).Error("Invalid text color") + c.JSON(http.StatusBadRequest, gin.H{"success": false, "error": "Invalid text color"}) + return + } + + // Create overlay request + textObjects := []TextObject{ + { + Text: req.Text1, + Corner: req.Text1Corner, + FontPath: req.Font, + FontColor: parsedTextColor, + ShadowColor: color.Black, + FontScale: 2.2, + }, + { + Text: req.Text2, + Corner: req.Text2Corner, + FontPath: req.Font, + FontColor: parsedTextColor, + ShadowColor: color.Black, + FontScale: 2.2, + }, + } + + imageObjects := []ImageObject{} + if req.Logo != "" { + imageObjects = append(imageObjects, ImageObject{ + ImagePath: req.Logo, + Corner: "bottom-left", + Opacity: 0.8, + }) + } + + overlayReq := TextOverlayRequest{ + ImagePath: req.ImagePath, + OutputPath: outputPath, + TextObjects: textObjects, + ImageObjects: imageObjects, + } + + logger.Log.Info("Starting image processing") + + // Process the image + if err := ProcessImageWithTextOverlay(overlayReq); err != nil { + logger.Log.WithError(err).Error("Failed to process image with text overlay") + c.JSON(http.StatusInternalServerError, gin.H{"success": false, "error": err.Error()}) + return + } + + logger.Log.Info("Image processed successfully") + + // Respond with the path to the new image + c.JSON(http.StatusOK, gin.H{"success": true, "outputPath": outputPath}) +} + +func parseHexColor(s string) (color.Color, error) { + s = strings.TrimPrefix(s, "#") + if len(s) != 6 { + return nil, fmt.Errorf("invalid color format") + } + + r, err := strconv.ParseUint(s[0:2], 16, 8) + if err != nil { + return nil, err + } + g, err := strconv.ParseUint(s[2:4], 16, 8) + if err != nil { + return nil, err + } + b, err := strconv.ParseUint(s[4:6], 16, 8) + if err != nil { + return nil, err + } + + return color.RGBA{R: uint8(r), G: uint8(g), B: uint8(b), A: 255}, nil +} + +func ListFontsHandler(c *gin.Context) { + fonts := []string{} + err := fs.WalkDir(embeddedFonts, ".", func(path string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + if !d.IsDir() && filepath.Ext(path) == ".ttf" { + fonts = append(fonts, path) + } + return nil + }) + if err != nil { + logger.Log.WithError(err).Error("Failed to list fonts") + c.JSON(http.StatusInternalServerError, gin.H{"success": false, "error": "Unable to list fonts"}) + return + } + c.JSON(http.StatusOK, gin.H{"success": true, "fonts": fonts}) +} + +func ListLogosHandler(c *gin.Context) { + logos := []string{} + //Load all file names in the local filesystem on path ./uploads/logos/ to the slice NOT EMBEDDED + err := filepath.Walk("./uploads/logos/", func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if !info.IsDir() { + logos = append(logos, path) + } + return nil + }) + + if err != nil { + logger.Log.WithError(err).Error("Failed to list logos") + c.JSON(http.StatusInternalServerError, gin.H{"success": false, "error": "Unable to list logos"}) + } + c.JSON(http.StatusOK, gin.H{"success": true, "logos": logos}) +} diff --git a/watcher/watcher.go b/watcher/watcher.go index e356517..79f386a 100644 --- a/watcher/watcher.go +++ b/watcher/watcher.go @@ -184,7 +184,7 @@ func PruneSensorData() error { } defer db.Close() - _, err = db.Exec("DELETE FROM sensor_data WHERE create_dt < datetime('now', '-90 day')") + _, err = db.Exec("DELETE FROM sensor_data WHERE create_dt < datetime(datetime('now', 'localtime'), '-90 day')") if err != nil { logger.Log.WithError(err).Error("Error pruning sensor data") return err diff --git a/web/templates/pages/plant.html b/web/templates/pages/plant.html index 46cb900..1064fb9 100644 --- a/web/templates/pages/plant.html +++ b/web/templates/pages/plant.html @@ -77,7 +77,6 @@

{{ .plant.Name }}

-
@@ -94,7 +93,9 @@
Plant Details
+ +
  • Status: {{ .plant.Status }}
  • @@ -336,7 +337,7 @@ - +
    @@ -494,7 +564,147 @@ + + + + + + From 1741d9204d3ea7357107c2bde5b62e5169d5148b Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Tue, 7 Jan 2025 20:24:59 -0500 Subject: [PATCH 31/53] Update dependabot alert --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 2fa4c9c..2597a7e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,9 @@ WORKDIR /app # Install tzdata for runtime configuration RUN apk add --no-cache tzdata +# Install ffmpeg for video processing +RUN apk add --no-cache ffmpeg + # Copy the built application COPY --from=builder /app/isley /app/isley From c66fe05d0af04b73e2d95bdfbdebca806cd98d3d Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Tue, 7 Jan 2025 20:38:16 -0500 Subject: [PATCH 32/53] Fix scan link --- web/templates/pages/index.html | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/web/templates/pages/index.html b/web/templates/pages/index.html index f00a1d6..466e888 100644 --- a/web/templates/pages/index.html +++ b/web/templates/pages/index.html @@ -32,12 +32,7 @@ - -
    - -
    - - +

    {{ .lcl.plants_overview }}

    @@ -95,12 +90,14 @@

    {{ .lcl.plants_overview }}

    document.addEventListener("DOMContentLoaded", async () => { const sensorsOverview = document.getElementById("sensorsOverview"); + // Define titles for each group const groupTitles = { Other: {{ .lcl.title_group_other }}, ACIP: {{ .lcl.title_group_acip }}, Soil: {{ .lcl.title_group_soil }} }; + // Create spinner element const spinner = document.createElement("div"); spinner.classList.add("spinner-border", "text-primary"); spinner.setAttribute("role", "status"); @@ -257,6 +254,18 @@

    ${zone}

    zoneContainer.appendChild(cardRow); sensorsOverview.appendChild(zoneContainer); }); + + // Add click event to sensor rows + console.time("Add Click Events"); + document.querySelectorAll(".sensor-row").forEach((row) => { + row.addEventListener("click", () => { + const sensorId = row.getAttribute("data-id"); + if (sensorId) { + window.location.href = `/graph/${sensorId}`; + } + }); + }); + } catch (error) { console.error("Error fetching data:", error); } From 516a56d0817426b3b128bbafaae9c957c909947a Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Wed, 8 Jan 2025 13:08:00 -0500 Subject: [PATCH 33/53] Add Sensor entry on scan for AC Infinity temperature in Celsius. --- VERSION | 2 +- handlers/sensors.go | 5 +++++ model/types/acinfinity_models.go | 1 + watcher/watcher.go | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 106528b..99a25fc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.15 \ No newline at end of file +0.1.16 \ No newline at end of file diff --git a/handlers/sensors.go b/handlers/sensors.go index a66c83d..33d054f 100644 --- a/handlers/sensors.go +++ b/handlers/sensors.go @@ -164,6 +164,11 @@ func ScanACInfinitySensors(c *gin.Context) { unit = "%" checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) + sensorType = "ACI.tempC" + name = "AC Infinity (" + device + ") Temp" + unit = "Β°C" + checkInsertSensor(db, source, device, sensorType, name, input.ZoneID, unit) + for _, sensor := range deviceData.DeviceInfo.Sensors { sensorType := fmt.Sprintf("ACI.%d.%d", sensor.AccessPort, sensor.SensorType) switch sensor.SensorType { diff --git a/model/types/acinfinity_models.go b/model/types/acinfinity_models.go index 9a2e6c2..83a9865 100644 --- a/model/types/acinfinity_models.go +++ b/model/types/acinfinity_models.go @@ -11,6 +11,7 @@ type ACIDeviceData struct { type ACIDeviceInfo struct { TemperatureF int `json:"temperatureF"` + Temperature int `json:"temperature"` Humidity int `json:"humidity"` Ports []ACIPort `json:"ports"` Sensors []ACISensor `json:"sensors"` diff --git a/watcher/watcher.go b/watcher/watcher.go index 19f5563..1bf4b7a 100644 --- a/watcher/watcher.go +++ b/watcher/watcher.go @@ -123,6 +123,7 @@ func updateACISensorData(token string) { device := deviceData.DevCode dataMap["ACI.tempF"] = float64(deviceData.DeviceInfo.TemperatureF) / 100.0 + dataMap["ACI.tempC"] = float64(deviceData.DeviceInfo.Temperature) / 100.0 dataMap["ACI.humidity"] = float64(deviceData.DeviceInfo.Humidity) / 100.0 for _, sensor := range deviceData.DeviceInfo.Sensors { From 4a0ab1ffc7d6fce6bbea304b9ed69d93f1f35eba Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Fri, 10 Jan 2025 13:57:27 -0500 Subject: [PATCH 34/53] Fix to overwrite image file for latest image grab --- utils/image.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/image.go b/utils/image.go index 81cb971..afa45bf 100644 --- a/utils/image.go +++ b/utils/image.go @@ -366,7 +366,7 @@ func GrabWebcamImage(url string, outputPath string) error { // Use ffmpeg to capture an image cmd := exec.Command( - "ffmpeg", "-i", url, "-vframes", "1", "-q:v", "2", outputPath, + "ffmpeg", "-y", "-i", url, "-vframes", "1", "-q:v", "2", outputPath, ) output, err := cmd.CombinedOutput() if err != nil { From adf3a4142c84bdfde6305e586a6a7d6362ac53da Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Sat, 1 Feb 2025 18:51:42 -0500 Subject: [PATCH 35/53] Fixes for creating new strain / plants (#22) Fix for #20 Merge dependabot updates --- VERSION | 2 +- go.mod | 4 ++-- go.sum | 8 ++++---- web/templates/pages/plants.html | 1 - web/templates/pages/strains.html | 32 ++++++++++++++++++++++++++++++-- 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/VERSION b/VERSION index 99a25fc..44a7df2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.16 \ No newline at end of file +0.1.17 \ No newline at end of file diff --git a/go.mod b/go.mod index e9a16aa..c2687c0 100644 --- a/go.mod +++ b/go.mod @@ -8,8 +8,8 @@ require ( github.com/fogleman/gg v1.3.0 github.com/gin-contrib/sessions v1.0.2 github.com/gin-gonic/gin v1.10.0 - github.com/golang-migrate/migrate/v4 v4.18.1 - github.com/nicksnyder/go-i18n/v2 v2.4.1 + github.com/golang-migrate/migrate/v4 v4.18.2 + github.com/nicksnyder/go-i18n/v2 v2.5.0 github.com/sirupsen/logrus v1.9.3 golang.org/x/crypto v0.32.0 golang.org/x/image v0.23.0 diff --git a/go.sum b/go.sum index 653f94a..a6ae075 100644 --- a/go.sum +++ b/go.sum @@ -33,8 +33,8 @@ github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBEx github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/golang-migrate/migrate/v4 v4.18.1 h1:JML/k+t4tpHCpQTCAD62Nu43NUFzHY4CV3uAuvHGC+Y= -github.com/golang-migrate/migrate/v4 v4.18.1/go.mod h1:HAX6m3sQgcdO81tdjn5exv20+3Kb13cmGli1hrD6hks= +github.com/golang-migrate/migrate/v4 v4.18.2 h1:2VSCMz7x7mjyTXx3m2zPokOY82LTRgxK1yQYKo6wWQ8= +github.com/golang-migrate/migrate/v4 v4.18.2/go.mod h1:2CM6tJvn2kqPXwnXO/d3rAQYiyoIm180VsO8PRX6Rpk= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -78,8 +78,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/nicksnyder/go-i18n/v2 v2.4.1 h1:zwzjtX4uYyiaU02K5Ia3zSkpJZrByARkRB4V3YPrr0g= -github.com/nicksnyder/go-i18n/v2 v2.4.1/go.mod h1:++Pl70FR6Cki7hdzZRnEEqdc2dJt+SAGotyFg/SvZMk= +github.com/nicksnyder/go-i18n/v2 v2.5.0 h1:3wH1gpaekcgGuwzWdSu7JwJhH9Tk87k1ezt0i1p2/Is= +github.com/nicksnyder/go-i18n/v2 v2.5.0/go.mod h1:DrhgsSDZxoAfvVrBVLXoxZn/pN5TXqaDbq7ju94viiQ= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/web/templates/pages/plants.html b/web/templates/pages/plants.html index 52248e0..dee7af4 100644 --- a/web/templates/pages/plants.html +++ b/web/templates/pages/plants.html @@ -471,7 +471,6 @@ }); addPlantModal.addEventListener("show.bs.modal", () => { - setDefaultDate(); resetZoneSelection(); resetStrainSelection(); }); diff --git a/web/templates/pages/strains.html b/web/templates/pages/strains.html index 92b31f7..523d9f1 100644 --- a/web/templates/pages/strains.html +++ b/web/templates/pages/strains.html @@ -261,6 +261,11 @@ sativaLabel.textContent = `Sativa: ${sativa}%`; }); + // If no breeders exist, show the new breeder input by default + if (document.getElementById("breederSelect").length === 1) { + newBreederInput.classList.remove("d-none"); + } + addStrainForm.addEventListener("submit", (e) => { e.preventDefault(); @@ -422,9 +427,28 @@ function renderStrainsTable(data) { const editStrainModal = new bootstrap.Modal(document.getElementById("editStrainModal")); - const filteredData = filterStrains(data, searchInput.value); + let filteredData = filterStrains(data, searchInput.value); - strainsContainer.innerHTML = ` + //If filteredData is null, reset with empty map object + if (filteredData == null) { + strainsContainer.innerHTML = ` + + + + + + + + + + + + + +
    {{ .lcl.title_strain }} {{ .lcl.breeder }} {{ .lcl.title_is }} {{ .lcl.title_auto }} {{ .lcl.seed_count }} Edit
    + `; + } else { + strainsContainer.innerHTML = ` @@ -454,6 +478,10 @@
    `; + } + + + // Add click listeners for sorting document.querySelectorAll(".sortable").forEach(header => { From 706561d83ccd11538f5af30bcc5c21d9fc0f7b09 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Sat, 29 Mar 2025 19:15:11 -0400 Subject: [PATCH 36/53] v0.1.18 - Postgres Update (#35) * Bump github.com/nicksnyder/go-i18n/v2 from 2.5.0 to 2.5.1 Bumps [github.com/nicksnyder/go-i18n/v2](https://github.com/nicksnyder/go-i18n) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/nicksnyder/go-i18n/releases) - [Changelog](https://github.com/nicksnyder/go-i18n/blob/main/CHANGELOG.md) - [Commits](https://github.com/nicksnyder/go-i18n/compare/v2.5.0...v2.5.1) --- updated-dependencies: - dependency-name: github.com/nicksnyder/go-i18n/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump golang.org/x/text from 0.21.0 to 0.23.0 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.21.0 to 0.23.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.21.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang.org/x/image from 0.23.0 to 0.25.0 Bumps [golang.org/x/image](https://github.com/golang/image) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/image/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/image dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang.org/x/crypto from 0.32.0 to 0.36.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.32.0 to 0.36.0. - [Commits](https://github.com/golang/crypto/compare/v0.32.0...v0.36.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang.org/x/net from 0.33.0 to 0.36.0 in the go_modules group Bumps the go_modules group with 1 update: [golang.org/x/net](https://github.com/golang/net). Updates `golang.org/x/net` from 0.33.0 to 0.36.0 - [Commits](https://github.com/golang/net/compare/v0.33.0...v0.36.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect dependency-group: go_modules ... Signed-off-by: dependabot[bot] * PSQL Testing * PSQL Testing * Updates for PSQL migrations and data migrations and sql cleanup * Updates for PSQL migrations and data migrations and sql cleanup * Updates for PSQL migrations and data migrations and sql cleanup * Fixes for dependabot merges * Fixes for dependabot merges * cleanup readme --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- README.md | 265 ++++++++++----- VERSION | 2 +- docker-compose.migration.yml | 36 ++ docker-compose.postgres.yml | 34 ++ ...r-compose.yml => docker-compose.sqlite.yml | 1 + go.mod | 21 +- go.sum | 70 +++- handlers/plant.go | 308 +++++++++++------- handlers/plant_activity.go | 8 +- handlers/plant_image.go | 6 +- handlers/plant_measurement.go | 6 +- handlers/plant_status_log.go | 4 +- handlers/sensors.go | 28 +- main.go | 4 +- model/migrate.go | 164 ++++++++-- .../001_consolidated.postgres.down.sql} | 0 .../postgres/001_consolidated.postgres.up.sql | 225 +++++++++++++ .../002_rolling_averages.postgres.down.sql} | 0 .../002_rolling_averages.postgres.up.sql | 36 ++ .../003_metadata_updates.postgres.down.sql} | 0 .../003_metadata_updates.postgres.up.sql} | 0 .../004_germination.postgres.down.sql} | 0 .../004_germination.postgres.up.sql} | 0 .../005_streams.postgres.down.sql} | 0 .../postgres/005_streams.postgres.up.sql | 7 + .../sqlite/001_consolidated.sqlite.down.sql | 0 .../001_consolidated.sqlite.up.sql} | 0 .../002_rolling_averages.sqlite.down.sql | 2 + .../002_rolling_averages.sqlite.up.sql} | 0 .../003_metadata_updates.sqlite.down.sql | 4 + .../sqlite/003_metadata_updates.sqlite.up.sql | 4 + .../sqlite/004_germination.sqlite.down.sql | 2 + .../sqlite/004_germination.sqlite.up.sql | 13 + .../sqlite/005_streams.sqlite.down.sql | 1 + .../005_streams.sqlite.up.sql} | 0 model/sqlite_to_postgres.go | 248 ++++++++++++++ watcher/watcher.go | 4 +- 37 files changed, 1211 insertions(+), 292 deletions(-) create mode 100644 docker-compose.migration.yml create mode 100644 docker-compose.postgres.yml rename docker-compose.yml => docker-compose.sqlite.yml (91%) rename model/migrations/{001_consolidated.down.sql => postgres/001_consolidated.postgres.down.sql} (100%) create mode 100644 model/migrations/postgres/001_consolidated.postgres.up.sql rename model/migrations/{002_rolling_averages.down.sql => postgres/002_rolling_averages.postgres.down.sql} (100%) create mode 100644 model/migrations/postgres/002_rolling_averages.postgres.up.sql rename model/migrations/{003_metadata_updates.down.sql => postgres/003_metadata_updates.postgres.down.sql} (100%) rename model/migrations/{003_metadata_updates.up.sql => postgres/003_metadata_updates.postgres.up.sql} (100%) rename model/migrations/{004_germination.down.sql => postgres/004_germination.postgres.down.sql} (100%) rename model/migrations/{004_germination.up.sql => postgres/004_germination.postgres.up.sql} (100%) rename model/migrations/{005_streams.down.sql => postgres/005_streams.postgres.down.sql} (100%) create mode 100644 model/migrations/postgres/005_streams.postgres.up.sql create mode 100644 model/migrations/sqlite/001_consolidated.sqlite.down.sql rename model/migrations/{001_consolidated.up.sql => sqlite/001_consolidated.sqlite.up.sql} (100%) create mode 100644 model/migrations/sqlite/002_rolling_averages.sqlite.down.sql rename model/migrations/{002_rolling_averages.up.sql => sqlite/002_rolling_averages.sqlite.up.sql} (100%) create mode 100644 model/migrations/sqlite/003_metadata_updates.sqlite.down.sql create mode 100644 model/migrations/sqlite/003_metadata_updates.sqlite.up.sql create mode 100644 model/migrations/sqlite/004_germination.sqlite.down.sql create mode 100644 model/migrations/sqlite/004_germination.sqlite.up.sql create mode 100644 model/migrations/sqlite/005_streams.sqlite.down.sql rename model/migrations/{005_streams.up.sql => sqlite/005_streams.sqlite.up.sql} (100%) create mode 100644 model/sqlite_to_postgres.go diff --git a/README.md b/README.md index e7dacea..9aed4fa 100644 --- a/README.md +++ b/README.md @@ -37,132 +37,237 @@ For full details, screenshots, and feature highlights, visit our official site - **πŸ—’οΈ Logging and Debugging**: Improved logging and debugging tools for troubleshooting. --- - ## πŸš€ Quick Start -Isley runs either on **Docker** 🐳 or as a **Windows Executable** πŸ’». For Docker deployments, it is recommended to use a reverse proxy for production setups to manage external access. +Isley runs in **Docker** 🐳. Support for the **Windows Executable** πŸ’» has been deprecated and is no longer recommended for production use due to its reliance on SQLite and inability to scale. + +SQLite was ideal for early development and lightweight single-container deployments. However, it introduces write contention issues under production loads. **PostgreSQL is now the recommended database backend** for all production deployments. If you don’t already have Docker, follow the [Docker installation instructions](https://docs.docker.com/get-docker/). For `docker-compose`, you can install it [here](https://docs.docker.com/compose/install/). -For Windows, running the executable from the command line allows you to see useful output logs. You can also configure it to run as a service. +--- + +### 🐳 Option 1: Docker with PostgreSQL (Recommended) + +Use the `docker-compose.postgres.yml` file to deploy Isley with a PostgreSQL backend: + +1. **Create `docker-compose.postgres.yml`** (or use the provided one): + +```yaml +version: '3.8' + +services: + postgres: + image: postgres:15 + environment: + POSTGRES_USER: isley + POSTGRES_PASSWORD: isley + POSTGRES_DB: isley + volumes: + - postgres-data:/var/lib/postgresql/data + + isley: + image: dwot/isley:latest + ports: + - "8080:8080" + environment: + - ISLEY_PORT=8080 + - ISLEY_DB_DRIVER=postgres + - ISLEY_DB_DSN=postgres://isley:isley@postgres:5432/isley?sslmode=disable + volumes: + - isley-uploads:/app/uploads + depends_on: + - postgres + restart: unless-stopped + +volumes: + postgres-data: + isley-uploads: +``` + +2. **Start the container**: +```bash +docker-compose -f docker-compose.postgres.yml up -d +``` + +3. **Access Isley**: +- Open your browser: + - `http://localhost:8080` if running locally. + - `http://:8080` if running remotely. +- **Default Username**: `admin` + **Default Password**: `isley` + +You will be prompted to change your password on first login. --- -### 🐳 Option 1: Using Docker Hub (Recommended) +### πŸ”„ Optional: Migrate from SQLite to PostgreSQL + +If you're upgrading from an existing SQLite-based deployment to PostgreSQL, use the provided `docker-compose.migration.yml` file. This configuration mounts both the existing SQLite volume and the new PostgreSQL data volume into the container. + +On startup, **Isley will automatically check**: + +- If an existing SQLite database is present in `/app/data/`. +- If the target PostgreSQL instance has no user data. + +If both conditions are met, **Isley will import your data from SQLite into PostgreSQL automatically**. + +#### πŸ“„ `docker-compose.migration.yml` + +```yaml +version: '3.8' + +services: + isley: + image: dwot/isley:latest + ports: + - "8080:8080" + environment: + - ISLEY_PORT=8080 + - DB_DRIVER=postgres + - DB_HOST=postgres + - DB_PORT=5432 + - DB_USER=isley + - DB_PASSWORD=supersecret + - DB_NAME=isleydb + depends_on: + - postgres + volumes: + - isley-db:/app/data # existing SQLite volume + - isley-uploads:/app/uploads # image uploads + restart: unless-stopped + + postgres: + image: postgres:16 + environment: + - POSTGRES_DB=isleydb + - POSTGRES_USER=isley + - POSTGRES_PASSWORD=supersecret + volumes: + - postgres-data:/var/lib/postgresql/data + restart: unless-stopped + +volumes: + isley-db: + postgres-data: + isley-uploads: +``` -Run Isley directly from the prebuilt Docker image hosted on Docker Hub. +After migration, you can switch to `docker-compose.postgres.yml` for your regular production deployment. Be sure to back up your SQLite volume (`isley-db`) before running the migration just in case. -1. **Run Isley Using Docker Compose**: - Create a `docker-compose.yml` file: +--- - ```yaml - version: '3.8' +### βšͺ Option 2: Docker with SQLite (Legacy) - services: - isley: - image: dwot/isley:latest - ports: - - "8080:8080" - environment: - - ISLEY_PORT=8080 - volumes: - - isley-db:/app/data - - isley-uploads:/app/uploads - restart: unless-stopped +This method is still available for testing or lightweight local deployments. - volumes: - isley-db: - isley-uploads: - ``` +1. **Use `docker-compose.sqlite.yml`**: -2. **Start the Container**: - ```bash - docker-compose up -d - ``` +```yaml +version: '3.8' -3. **Access Isley**: - - Open your browser and go to: - - `http://localhost:8080` if running locally. - - `http://:8080` if running remotely. - - **Default Username**: `admin` - **Default Password**: `isley` - You will be prompted to change your password on the first login. +services: + isley: + image: dwot/isley:latest + ports: + - "8080:8080" + environment: + - ISLEY_PORT=8080 + - ISLEY_DB_DRIVER=sqlite + volumes: + - isley-db:/app/data + - isley-uploads:/app/uploads + restart: unless-stopped -4. **Data Persistence**: - Isley stores all data in the following directories: - - `/data`: For database storage. - - `/uploads`: For storing image uploads. +volumes: + isley-db: + isley-uploads: +``` - These directories are mapped to Docker volumes (or bind mounts). Ensure you **do not delete or recreate** these directories during updates. Add them to your **backup process** to prevent data loss. +2. **Start the container**: +```bash +docker-compose -f docker-compose.sqlite.yml up -d +``` ---- +3. **Access Isley**: +- Open your browser: + - `http://localhost:8080` if running locally. + - `http://:8080` if running remotely. +- **Default Username**: `admin` + **Default Password**: `isley` -### πŸ’» Option 2: Using Windows Executable +4. **Data Storage**: +- `/data`: SQLite database storage. +- `/uploads`: Image uploads. -1. **Download the Executable**: - - Visit the [Releases Page](https://github.com/dwot/isley/releases) and download the latest `isley.exe` file. +These are mapped via Docker volumes. Add them to your **backup process** to prevent data loss. -2. **Run Isley**: - - Open a command prompt and navigate to the folder containing `isley.exe`. - - Set a custom port (if needed) using the `ISLEY_PORT` environment variable: - ```bash - set ISLEY_PORT=8080 - isley.exe - ``` - - Open your browser and navigate to: - - `http://localhost:8080` if running locally. - - `http://:8080` if accessing remotely. +> **Note:** This setup is not recommended for production use due to SQLite's limitations with concurrent writes. - - **Default Username**: `admin` - **Default Password**: `isley` - You will be prompted to change your password on the first login. +--- + +### πŸ’» Deprecated: Windows Executable -3. **Data Storage**: - Isley persists all data in the following directories created alongside the executable: - - `data/`: For database storage. - - `uploads/`: For storing image uploads. +Running Isley on Windows via `isley.exe` is now **deprecated** and only supports SQLite. It is no longer recommended for active or production deployments. - Add these directories to your **backup process** to avoid data loss. +If you still wish to run the executable for testing: -4. **Run as a Service (Optional)**: - - Use tools like **NSSM** (Non-Sucking Service Manager) to set up Isley as a Windows service: - ```bash - nssm install Isley "C:\path\to\isley.exe" - nssm start Isley - ``` +1. **Download** from the [Releases Page](https://github.com/dwot/isley/releases). +2. **Run** via command prompt: +```cmd +set ISLEY_PORT=8080 +isley.exe +``` +3. **Data** will be stored in `data/` and `uploads/` directories next to the executable. --- ## βš™οΈ Configuration -All settings are configurable via the **Settings icon** in the app. You can: +All settings can be configured via the **Settings icon** in the app. You can: - πŸ”§ Enable/disable integrations (e.g., AC Infinity, Ecowitt). -- πŸ”‘ Set API keys or server IPs for integrations. +- πŸ”‘ Set API keys or device IPs. - πŸ” Scan for devices and start data collection. -To override the default port, set the `ISLEY_PORT` environment variable: +To override the default port: ```bash ISLEY_PORT=8080 ``` +Environment variables for Postgres: +```bash +DB_DRIVER=postgres +DB_HOST=postgres +DB_PORT=5432 +DB_USER=isley +DB_PASSWORD=supersecret +DB_NAME=isleydb +``` + +For SQLite: +```bash +ISLEY_DB_DRIVER=sqlite +``` + --- ## πŸ“ Notes -- Isley is still in **active development** 🚧. While we strive to avoid breaking changes, improvements are ongoing. -- Found a bug or have suggestions? Report them on the [GitHub repository](https://github.com/dwot/isley/issues). +- Isley is in **active development** 🚧. Breaking changes may occasionally occur. +- Found a bug or have a suggestion? Open an issue on the [GitHub repository](https://github.com/dwot/isley/issues). --- ## πŸ›‘οΈ Recommendations -For production deployments: -- 🐳 Use **Docker** with a reverse proxy (e.g., Nginx, Traefik) to handle external access and TLS. -- πŸ’Ύ **Backup Directories**: - - `/data` for database storage. - - `/uploads` for image uploads. -- 🚫 Avoid deleting or recreating these directories during updates. -- πŸ”§ Use a Windows service manager to run Isley executable for long-term uptime. +For production: + +- 🐳 Use **Docker with PostgreSQL** and a reverse proxy (e.g., Nginx, Traefik) to handle TLS and external access. +- πŸ’Ύ **Backup Directories/Volumes**: + - `postgres-data` for PostgreSQL + - `/uploads` for user content +- ❌ Avoid using SQLite or the Windows executable in production. +- πŸ› οΈ Use volume mounts for persistence and scheduled backups. 🌐 For more details, screenshots, and the latest updates, visit: [https://isley.dwot.io](https://isley.dwot.io). diff --git a/VERSION b/VERSION index 44a7df2..44905e7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.17 \ No newline at end of file +0.1.18 \ No newline at end of file diff --git a/docker-compose.migration.yml b/docker-compose.migration.yml new file mode 100644 index 0000000..8bed3f6 --- /dev/null +++ b/docker-compose.migration.yml @@ -0,0 +1,36 @@ +version: '3.8' + +services: + isley: + image: dwot/isley:latest + ports: + - "8080:8080" + environment: + - ISLEY_PORT=8080 + - DB_DRIVER=postgres + - DB_HOST=postgres + - DB_PORT=5432 + - DB_USER=isley + - DB_PASSWORD=supersecret + - DB_NAME=isleydb + depends_on: + - postgres + volumes: + - isley-db:/app/data + - isley-uploads:/app/uploads + restart: unless-stopped + + postgres: + image: postgres:16 + environment: + - POSTGRES_DB=isleydb + - POSTGRES_USER=isley + - POSTGRES_PASSWORD=supersecret + volumes: + - postgres-data:/var/lib/postgresql/data + restart: unless-stopped + +volumes: + isley-db: + postgres-data: + isley-uploads: diff --git a/docker-compose.postgres.yml b/docker-compose.postgres.yml new file mode 100644 index 0000000..bd725b8 --- /dev/null +++ b/docker-compose.postgres.yml @@ -0,0 +1,34 @@ +version: '3.8' + +services: + isley: + image: dwot/isley:latest + ports: + - "8080:8080" + environment: + - ISLEY_PORT=8080 + - DB_DRIVER=postgres + - DB_HOST=postgres + - DB_PORT=5432 + - DB_USER=isley + - DB_PASSWORD=supersecret + - DB_NAME=isleydb + depends_on: + - postgres + volumes: + - isley-uploads:/app/uploads + restart: unless-stopped + + postgres: + image: postgres:16 + environment: + - POSTGRES_DB=isleydb + - POSTGRES_USER=isley + - POSTGRES_PASSWORD=supersecret + volumes: + - postgres-data:/var/lib/postgresql/data + restart: unless-stopped + +volumes: + postgres-data: + isley-uploads: diff --git a/docker-compose.yml b/docker-compose.sqlite.yml similarity index 91% rename from docker-compose.yml rename to docker-compose.sqlite.yml index 8e270c3..10a3a1c 100644 --- a/docker-compose.yml +++ b/docker-compose.sqlite.yml @@ -7,6 +7,7 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 + - DB_DRIVER=sqlite volumes: - isley-db:/app/data - isley-uploads:/app/uploads diff --git a/go.mod b/go.mod index c2687c0..86c3727 100644 --- a/go.mod +++ b/go.mod @@ -1,21 +1,23 @@ module isley -go 1.22.0 +go 1.23.0 -toolchain go1.22.5 +toolchain go1.23.7 require ( github.com/fogleman/gg v1.3.0 github.com/gin-contrib/sessions v1.0.2 github.com/gin-gonic/gin v1.10.0 github.com/golang-migrate/migrate/v4 v4.18.2 - github.com/nicksnyder/go-i18n/v2 v2.5.0 + github.com/lib/pq v1.10.9 + github.com/nicksnyder/go-i18n/v2 v2.5.1 github.com/sirupsen/logrus v1.9.3 - golang.org/x/crypto v0.32.0 - golang.org/x/image v0.23.0 - golang.org/x/text v0.21.0 + golang.org/x/crypto v0.36.0 + golang.org/x/image v0.25.0 + golang.org/x/text v0.23.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 + modernc.org/sqlite v1.23.1 ) require ( @@ -52,9 +54,9 @@ require ( go.uber.org/atomic v1.7.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.33.0 // indirect - golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.29.0 // indirect + golang.org/x/net v0.36.0 // indirect + golang.org/x/sync v0.12.0 // indirect + golang.org/x/sys v0.31.0 // indirect golang.org/x/tools v0.24.0 // indirect google.golang.org/protobuf v1.34.2 // indirect lukechampine.com/uint128 v1.2.0 // indirect @@ -64,7 +66,6 @@ require ( modernc.org/mathutil v1.5.0 // indirect modernc.org/memory v1.5.0 // indirect modernc.org/opt v0.1.3 // indirect - modernc.org/sqlite v1.23.1 // indirect modernc.org/strutil v1.1.3 // indirect modernc.org/token v1.0.1 // indirect ) diff --git a/go.sum b/go.sum index a6ae075..b1a7325 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,9 @@ +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= @@ -11,8 +15,20 @@ github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dhui/dktest v0.4.4 h1:+I4s6JRE1yGuqflzwqG+aIaMdgXIorCf5P98JnaAWa8= +github.com/dhui/dktest v0.4.4/go.mod h1:4+22R4lgsdAXrDyaH4Nqx2JEz2hLp49MqQmm9HLCQhM= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v27.2.0+incompatible h1:Rk9nIVdfH3+Vz4cyI/uhbINhEZ/oLmc+CBXmH6fbNk4= +github.com/docker/docker v27.2.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= @@ -23,6 +39,10 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -33,6 +53,8 @@ github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBEx github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-migrate/migrate/v4 v4.18.2 h1:2VSCMz7x7mjyTXx3m2zPokOY82LTRgxK1yQYKo6wWQ8= github.com/golang-migrate/migrate/v4 v4.18.2/go.mod h1:2CM6tJvn2kqPXwnXO/d3rAQYiyoIm180VsO8PRX6Rpk= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= @@ -73,15 +95,27 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM= github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/nicksnyder/go-i18n/v2 v2.5.0 h1:3wH1gpaekcgGuwzWdSu7JwJhH9Tk87k1ezt0i1p2/Is= -github.com/nicksnyder/go-i18n/v2 v2.5.0/go.mod h1:DrhgsSDZxoAfvVrBVLXoxZn/pN5TXqaDbq7ju94viiQ= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/nicksnyder/go-i18n/v2 v2.5.1 h1:IxtPxYsR9Gp60cGXjfuR/llTqV8aYMsC472zD0D1vHk= +github.com/nicksnyder/go-i18n/v2 v2.5.1/go.mod h1:DrhgsSDZxoAfvVrBVLXoxZn/pN5TXqaDbq7ju94viiQ= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= @@ -105,28 +139,36 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= +go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= +go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= +go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= +go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68= -golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ= +golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= +golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= +golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= diff --git a/handlers/plant.go b/handlers/plant.go index 9111d9c..460fb3f 100644 --- a/handlers/plant.go +++ b/handlers/plant.go @@ -103,28 +103,26 @@ func AddPlant(c *gin.Context) { } //Insert into the plants table returning id - result, err := db.Exec("INSERT INTO plant (name, zone_id, strain_id, description, clone, parent_plant_id, start_dt, sensors) VALUES (?, ?, ?, '', ?, ?, ?, '[]')", input.Name, *input.ZoneID, *input.StrainID, input.Clone, input.ParentID, input.Date) + plantID := 0 + err = db.QueryRow("INSERT INTO plant (name, zone_id, strain_id, description, clone, parent_plant_id, start_dt, sensors) VALUES ($1, $2, $3, '', $4, $5, $6, '[]') RETURNING id", input.Name, *input.ZoneID, *input.StrainID, input.Clone, input.ParentID, input.Date).Scan(&plantID) if err != nil { fieldLogger.WithError(err).Error("Failed to insert plant") return + } else if plantID == 0 { + fieldLogger.Error("Failed to retrieve plant ID") + return } //If decrement seed count, lower seed count on strain by 1, min 0 if input.DecrementSeedCount { - _, err = db.Exec("UPDATE strain SET seed_count = MAX(0, seed_count - 1) WHERE id = ?", *input.StrainID) + _, err = db.Exec("UPDATE strain SET seed_count = MAX(0, seed_count - 1) WHERE id = $1", *input.StrainID) if err != nil { fieldLogger.WithError(err).Error("Failed to decrement seed count") return } } - //Update plant_status_log with the new plant id and status id - plantID, err := result.LastInsertId() - if err != nil { - fieldLogger.WithError(err).Error("Failed to get last insert ID") - return - } - _, err = db.Exec("INSERT INTO plant_status_log (plant_id, status_id, date) VALUES (?, ?, ?)", plantID, input.StatusID, input.Date) + _, err = db.Exec("INSERT INTO plant_status_log (plant_id, status_id, date) VALUES ($1, $2, $3)", plantID, input.StatusID, input.Date) if err != nil { fieldLogger.WithError(err).Error("Failed to insert plant status log") return @@ -267,31 +265,25 @@ func CreateNewStrain(newStrain *struct { // Check if a new breeder needs to be added if newStrain.BreederId == 0 && newStrain.NewBreeder != "" { // Insert the new breeder into the `breeder` table - result, err := db.Exec("INSERT INTO breeder (name) VALUES (?)", newStrain.NewBreeder) + var breederId int + err := db.QueryRow("INSERT INTO breeder (name) VALUES ($1) RETURNING id", newStrain.NewBreeder).Scan(&breederId) if err != nil { fieldLogger.WithError(err).Error("Failed to insert new breeder") return 0, fmt.Errorf("failed to insert new breeder: %w", err) } config.Breeders = GetBreeders() - - // Get the ID of the newly inserted breeder - lastInsertId, err := result.LastInsertId() - if err != nil { - fieldLogger.WithError(err).Error("Failed to retrieve new breeder ID") - return 0, fmt.Errorf("failed to retrieve new breeder ID: %w", err) - } - breederId = int(lastInsertId) } else { // Use the existing breeder ID breederId = newStrain.BreederId } // Insert the new strain into the `strain` table - result, err := db.Exec( + var id int + err = db.QueryRow( `INSERT INTO strain (name, breeder_id, sativa, indica, autoflower, description, seed_count) - VALUES (?, ?, 50, 50, 'true', '', 0)`, - newStrain.Name, breederId) + VALUES ($1, $2, 50, 50, 'true', '', 0) RETURNING id`, + newStrain.Name, breederId).Scan(&id) if err != nil { fieldLogger.WithError(err).Error("Failed to insert new strain") return 0, fmt.Errorf("failed to insert new strain: %w", err) @@ -299,14 +291,7 @@ func CreateNewStrain(newStrain *struct { config.Strains = GetStrains() - // Get the ID of the newly inserted strain - id, err := result.LastInsertId() - if err != nil { - fieldLogger.WithError(err).Error("Failed to retrieve new strain ID") - return 0, fmt.Errorf("failed to retrieve new strain ID: %w", err) - } - - return int(id), nil + return id, nil } func DeletePlant(c *gin.Context) { @@ -333,35 +318,35 @@ func DeletePlantById(id string) error { } // Delete the plant's images - _, err = db.Exec("DELETE FROM plant_images WHERE plant_id = ?", id) + _, err = db.Exec("DELETE FROM plant_images WHERE plant_id = $1", id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete plant images") return err } // Delete the plant's measurements - _, err = db.Exec("DELETE FROM plant_measurements WHERE plant_id = ?", id) + _, err = db.Exec("DELETE FROM plant_measurements WHERE plant_id = $1", id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete plant measurements") return err } // Delete the plant's activities - _, err = db.Exec("DELETE FROM plant_activity WHERE plant_id = ?", id) + _, err = db.Exec("DELETE FROM plant_activity WHERE plant_id = $1", id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete plant activities") return err } // Delete the plant's status log - _, err = db.Exec("DELETE FROM plant_status_log WHERE plant_id = ?", id) + _, err = db.Exec("DELETE FROM plant_status_log WHERE plant_id = $1", id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete plant status log") return err } // Delete the plant - _, err = db.Exec("DELETE FROM plant WHERE id = ?", id) + _, err = db.Exec("DELETE FROM plant WHERE id = $1", id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete plant") return err @@ -378,7 +363,42 @@ func GetPlant(id string) types.Plant { fieldLogger.WithError(err).Error("Failed to open database") return plant } - rows, err := db.Query("SELECT p.id, p.name, p.description, p.clone, p.start_dt, s.name as strain_name, b.name as breeder_name, z.name as zone_name, z.id as zone_id, (select ps.status from plant_status_log psl left outer join plant_status ps on psl.status_id = ps.id where psl.plant_id = p.id order by strftime('%s', psl.date) desc limit 1) as current_status, (select ps.id from plant_status_log psl left outer join plant_status ps on psl.status_id = ps.id where psl.plant_id = p.id order by strftime('%s', psl.date) desc limit 1) as status_id, p.sensors, s.id, p.harvest_weight, coalesce(s.cycle_time, 0), coalesce(s.url, ''), s.autoflower, coalesce(p.parent_plant_id, 0), coalesce(p2.name, '') as parent_name FROM plant p LEFT OUTER JOIN plant p2 on coalesce(p.parent_plant_id, 0) = p2.id LEFT OUTER JOIN strain s on p.strain_id = s.id left outer join breeder b on b.id = s.breeder_id LEFT OUTER JOIN zones z on p.zone_id = z.id WHERE p.id = $1", id) + var orderByExpr string + if model.IsPostgres() { + orderByExpr = "EXTRACT(EPOCH FROM psl.date)" + } else { + orderByExpr = "strftime('%s', psl.date)" + } + + query := fmt.Sprintf(` + SELECT p.id, p.name, p.description, p.clone, p.start_dt, + s.name AS strain_name, b.name AS breeder_name, z.name AS zone_name, z.id AS zone_id, + (SELECT ps.status + FROM plant_status_log psl + LEFT OUTER JOIN plant_status ps ON psl.status_id = ps.id + WHERE psl.plant_id = p.id + ORDER BY %s DESC + LIMIT 1) AS current_status, + (SELECT ps.id + FROM plant_status_log psl + LEFT OUTER JOIN plant_status ps ON psl.status_id = ps.id + WHERE psl.plant_id = p.id + ORDER BY %s DESC + LIMIT 1) AS status_id, + p.sensors, s.id, p.harvest_weight, + COALESCE(s.cycle_time, 0), + COALESCE(s.url, ''), + s.autoflower, + COALESCE(p.parent_plant_id, 0), + COALESCE(p2.name, '') AS parent_name + FROM plant p + LEFT OUTER JOIN plant p2 ON COALESCE(p.parent_plant_id, 0) = p2.id + LEFT OUTER JOIN strain s ON p.strain_id = s.id + LEFT OUTER JOIN breeder b ON b.id = s.breeder_id + LEFT OUTER JOIN zones z ON p.zone_id = z.id + WHERE p.id = $1`, orderByExpr, orderByExpr) + + rows, err := db.Query(query, id) if err != nil { fieldLogger.WithError(err).Error("Failed to query plant") return plant @@ -441,7 +461,7 @@ func GetPlant(id string) types.Plant { var sensor types.SensorDataResponse // Query sensor details from the sensors table - err := db.QueryRow("SELECT id, name, unit FROM sensors WHERE id = ?", sensorID).Scan(&sensor.ID, &sensor.Name, &sensor.Unit) + err := db.QueryRow("SELECT id, name, unit FROM sensors WHERE id = $1", sensorID).Scan(&sensor.ID, &sensor.Name, &sensor.Unit) if err != nil { fieldLogger.WithError(err).Error("Failed to query sensor details") continue @@ -449,7 +469,7 @@ func GetPlant(id string) types.Plant { // Query the latest sensor data from the sensor_data table var sensorData types.SensorData - err = db.QueryRow("SELECT id, value, create_dt FROM sensor_data WHERE sensor_id = ? ORDER BY create_dt DESC LIMIT 1", sensorID).Scan(&sensorData.ID, &sensorData.Value, &sensorData.CreateDT) + err = db.QueryRow("SELECT id, value, create_dt FROM sensor_data WHERE sensor_id = $1 ORDER BY create_dt DESC LIMIT 1", sensorID).Scan(&sensorData.ID, &sensorData.Value, &sensorData.CreateDT) if err != nil { fieldLogger.WithError(err).Error("Failed to query sensor data") continue @@ -519,7 +539,7 @@ func GetPlant(id string) types.Plant { //Load latest image var latestImage types.PlantImage - err = db.QueryRow("SELECT id, image_path, image_description, image_order, image_date FROM plant_images WHERE plant_id = ? ORDER BY image_date DESC LIMIT 1", id).Scan(&latestImage.ID, &latestImage.ImagePath, &latestImage.ImageDescription, &latestImage.ImageOrder, &latestImage.ImageDate) + err = db.QueryRow("SELECT id, image_path, image_description, image_order, image_date FROM plant_images WHERE plant_id = $1 ORDER BY image_date DESC LIMIT 1", id).Scan(&latestImage.ID, &latestImage.ImagePath, &latestImage.ImageDescription, &latestImage.ImageOrder, &latestImage.ImageDate) if err != nil { fieldLogger.WithError(err).Error("Failed to query latest image") latestImage = types.PlantImage{ID: 0, PlantID: plant.ID, ImagePath: "/static/img/winston.hat.jpg", ImageDescription: "Placeholder", ImageOrder: 100, ImageDate: time.Now().In(time.Local), CreatedAt: time.Now().In(time.Local), UpdatedAt: time.Now().In(time.Local)} @@ -646,7 +666,7 @@ func LinkSensorsToPlant(c *gin.Context) { } // Update the plant with the serialized sensor IDs - _, err = db.Exec("UPDATE plant SET sensors = ? WHERE id = ?", sensorIDsJSON, input.PlantID) + _, err = db.Exec("UPDATE plant SET sensors = $1 WHERE id = $2", sensorIDsJSON, input.PlantID) if err != nil { fieldLogger.WithError(err).Error("Failed to update sensors") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update sensors for the plant"}) @@ -704,9 +724,9 @@ func AddStrainHandler(c *gin.Context) { // Insert new breeder insertBreederStmt := ` INSERT INTO breeder (name) - VALUES (?) - ` - result, err := db.Exec(insertBreederStmt, req.NewBreeder) + VALUES ($1) + RETURNING id` + err := db.QueryRow(insertBreederStmt, req.NewBreeder).Scan(&breederID) if err != nil { fieldLogger.WithError(err).Error("Failed to insert new breeder") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add new breeder"}) @@ -714,15 +734,6 @@ func AddStrainHandler(c *gin.Context) { } config.Breeders = GetBreeders() - - // Get the new breeder's ID - newBreederID, err := result.LastInsertId() - if err != nil { - fieldLogger.WithError(err).Error("Failed to retrieve new breeder ID") - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve new breeder ID"}) - return - } - breederID = int(newBreederID) } else { // Use existing breeder ID breederID = *req.BreederID @@ -731,7 +742,7 @@ func AddStrainHandler(c *gin.Context) { // Insert the new strain into the database stmt := ` INSERT INTO strain (name, breeder_id, indica, sativa, autoflower, seed_count, description, cycle_time, url) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) ` _, err = db.Exec(stmt, req.Name, breederID, req.Indica, req.Sativa, req.Autoflower, req.SeedCount, req.Description, req.CycleTime, req.Url) if err != nil { @@ -767,7 +778,7 @@ func GetStrainHandler(c *gin.Context) { err = db.QueryRow(` SELECT s.id, s.name, b.name as breeder, s.indica, s.sativa, s.autoflower, s.description, s.seed_count FROM strain s LEFT OUTER JOIN breeder b on s.breeder_id = b.id - WHERE id = ?`, id).Scan( + WHERE id = $1`, id).Scan( &strain.ID, &strain.Name, &strain.Breeder, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.Description, &strain.SeedCount) if err != nil { @@ -838,9 +849,10 @@ func UpdateStrainHandler(c *gin.Context) { // Insert the new breeder into the database insertBreederStmt := ` INSERT INTO breeder (name) - VALUES (?) + VALUES ($1) + RETURNING id ` - result, err := db.Exec(insertBreederStmt, req.NewBreeder) + err := db.QueryRow(insertBreederStmt, req.NewBreeder).Scan(&breederID) if err != nil { fieldLogger.WithError(err).Error("Failed to insert new breeder") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add new breeder"}) @@ -848,15 +860,6 @@ func UpdateStrainHandler(c *gin.Context) { } config.Breeders = GetBreeders() - - // Get the new breeder's ID - newBreederID, err := result.LastInsertId() - if err != nil { - fieldLogger.WithError(err).Error("Failed to retrieve new breeder ID") - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve new breeder ID"}) - return - } - breederID = int(newBreederID) } else { breederID = *req.BreederID } @@ -864,8 +867,8 @@ func UpdateStrainHandler(c *gin.Context) { // Update the strain in the database updateStmt := ` UPDATE strain - SET name = ?, breeder_id = ?, indica = ?, sativa = ?, autoflower = ?, description = ?, seed_count = ?, cycle_time = ?, url = ? - WHERE id = ? + SET name = $1, breeder_id = $2, indica = $3, sativa = $4, autoflower = $5, description = $6, seed_count = $7, cycle_time = $8, url = $9 + WHERE id = $10 ` _, err = db.Exec(updateStmt, req.Name, breederID, req.Indica, req.Sativa, req.Autoflower, req.Description, req.SeedCount, req.CycleTime, req.Url, id) @@ -895,7 +898,7 @@ func DeleteStrainHandler(c *gin.Context) { return } - result, err := db.Exec(`DELETE FROM strain WHERE id = ?`, id) + result, err := db.Exec(`DELETE FROM strain WHERE id = $1`, id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete strain"}) @@ -972,7 +975,7 @@ func UpdatePlant(c *gin.Context) { } //Update the plant - _, err = db.Exec("UPDATE plant SET name = ?, description = ?, zone_id = ?, strain_id = ?, clone = ?, start_dt = ?, harvest_weight = ? WHERE id = ?", input.PlantName, input.PlantDescription, input.ZoneID, input.StrainID, input.IsClone, input.StartDT, input.HarvestWeight, input.PlantID) + _, err = db.Exec("UPDATE plant SET name = $1, description = $2, zone_id = $3, strain_id = $4, clone = $5, start_dt = $6, harvest_weight = $7 WHERE id = $8", input.PlantName, input.PlantDescription, input.ZoneID, input.StrainID, input.IsClone, input.StartDT, input.HarvestWeight, input.PlantID) if err != nil { fieldLogger.WithError(err).Error("Failed to update plant") return @@ -981,13 +984,13 @@ func UpdatePlant(c *gin.Context) { //Update the Plant Status Log //Check the current status and do not update if it's unchanged var currentStatus int - err = db.QueryRow("SELECT status_id FROM plant_status_log WHERE plant_id = ? ORDER BY date DESC LIMIT 1", input.PlantID).Scan(¤tStatus) + err = db.QueryRow("SELECT status_id FROM plant_status_log WHERE plant_id = $1 ORDER BY date DESC LIMIT 1", input.PlantID).Scan(¤tStatus) if err != nil { fieldLogger.WithError(err).Error("Failed to get current status") return } if currentStatus != input.StatusID { - _, err = db.Exec("INSERT INTO plant_status_log (plant_id, status_id, date) VALUES (?, ?, ?)", input.PlantID, input.StatusID, input.Date) + _, err = db.Exec("INSERT INTO plant_status_log (plant_id, status_id, date) VALUES ($1, $2, $3)", input.PlantID, input.StatusID, input.Date) if err != nil { fieldLogger.WithError(err).Error("Failed to update plant status") return @@ -1008,62 +1011,117 @@ func getPlantsByStatus(statuses []int) ([]types.PlantListResponse, error) { args[i] = status } - // Join the placeholders with commas - inClause := "(" + strings.Join(placeholders, ",") + ")" + driver := model.GetDriver() + statusVals := make([]interface{}, len(statuses)) + for i, s := range statuses { + statusVals[i] = s + } + inClause, args := model.BuildInClause(driver, statusVals) // Use the dynamic IN clause in the query - query := ` - SELECT p.id, p.name, p.description, p.clone, s.name AS strain_name, b.name AS breeder_name, z.name AS zone_name, - p.start_dt, - CAST((julianday('now', 'localtime') - julianday(p.start_dt)) / 7 + 1 AS INT) AS current_week, - CAST((julianday('now', 'localtime') - julianday(p.start_dt)) + 1 AS INT) AS current_day, - COALESCE( - (SELECT CAST(julianday('now', 'localtime') - julianday(MAX(date)) AS INT) - FROM plant_activity pa - JOIN activity a ON pa.activity_id = a.id - WHERE pa.plant_id = p.id AND a.id = (SELECT id FROM activity WHERE name = 'Water')), - 0 - ) AS days_since_last_watering, - COALESCE( - (SELECT CAST(julianday('now', 'localtime') - julianday(MAX(date)) AS INT) - FROM plant_activity pa - JOIN activity a ON pa.activity_id = a.id - WHERE pa.plant_id = p.id AND a.id = (SELECT id FROM activity WHERE name = 'Feed')), - 0 - ) AS days_since_last_feeding, - COALESCE( - (SELECT CAST(julianday('now', 'localtime') - julianday(MAX(date)) AS INT) - FROM plant_status_log - WHERE plant_id = p.id - AND status_id = (SELECT id FROM plant_status WHERE status = 'Flower')), - 0 - ) AS flowering_days, - p.harvest_weight, ps.status, psl.date as status_date, - COALESCE(s.cycle_time, 0), - COALESCE(s.url, '') AS strain_url, - s.autoflower, - COALESCE( - (SELECT MIN(h.date) - FROM plant_status_log h - WHERE h.plant_id = p.id - AND h.status_id IN ( - SELECT id - FROM plant_status - WHERE status IN ('Drying','Curing','Success','Dead') - ) - ), - DATE('now', 'localtime') -- Use today's date if no harvest date is found - ) AS harvest_date + var query string + + if model.IsPostgres() { + query = ` +SELECT + p.id, p.name, p.description, p.clone, + s.name AS strain_name, b.name AS breeder_name, z.name AS zone_name, + p.start_dt, + ((EXTRACT(DAY FROM CURRENT_DATE - p.start_dt)::int) / 7 + 1) AS current_week, + (EXTRACT(DAY FROM CURRENT_DATE - p.start_dt)::int + 1) AS current_day, + COALESCE(( + SELECT EXTRACT(DAY FROM CURRENT_DATE - MAX(pa.date))::int + FROM plant_activity pa + JOIN activity a ON pa.activity_id = a.id + WHERE pa.plant_id = p.id AND a.name = 'Water' + ), 0) AS days_since_last_watering, + COALESCE(( + SELECT EXTRACT(DAY FROM CURRENT_DATE - MAX(pa.date))::int + FROM plant_activity pa + JOIN activity a ON pa.activity_id = a.id + WHERE pa.plant_id = p.id AND a.name = 'Feed' + ), 0) AS days_since_last_feeding, + COALESCE(( + SELECT EXTRACT(DAY FROM CURRENT_DATE - MAX(date))::int + FROM plant_status_log + WHERE plant_id = p.id AND status_id = ( + SELECT id FROM plant_status WHERE status = 'Flower' + ) + ), 0) AS flowering_days, + p.harvest_weight, ps.status, psl.date as status_date, + COALESCE(s.cycle_time, 0), + COALESCE(s.url, '') AS strain_url, + s.autoflower, + COALESCE(( + SELECT MIN(h.date) + FROM plant_status_log h + WHERE h.plant_id = p.id + AND h.status_id IN ( + SELECT id FROM plant_status + WHERE status IN ('Drying','Curing','Success','Dead') + ) + ), CURRENT_DATE) AS harvest_date FROM plant p - JOIN strain s ON p.strain_id = s.id - JOIN breeder b ON s.breeder_id = b.id - LEFT JOIN zones z ON p.zone_id = z.id - JOIN plant_status_log psl ON p.id = psl.plant_id - JOIN plant_status ps ON psl.status_id = ps.id -WHERE ps.id IN ` + inClause + ` AND psl.date = ( - SELECT MAX(date) FROM plant_status_log WHERE plant_id = p.id -) -ORDER BY p.start_dt, p.name;` +JOIN strain s ON p.strain_id = s.id +JOIN breeder b ON s.breeder_id = b.id +LEFT JOIN zones z ON p.zone_id = z.id +JOIN plant_status_log psl ON p.id = psl.plant_id +JOIN plant_status ps ON psl.status_id = ps.id +WHERE ps.id IN ` + inClause + ` + AND psl.date = (SELECT MAX(date) FROM plant_status_log WHERE plant_id = p.id) +ORDER BY p.start_dt, p.name; +` + } else { + query = ` +SELECT + p.id, p.name, p.description, p.clone, + s.name AS strain_name, b.name AS breeder_name, z.name AS zone_name, + p.start_dt, + CAST((julianday('now', 'localtime') - julianday(p.start_dt)) / 7 + 1 AS INT) AS current_week, + CAST((julianday('now', 'localtime') - julianday(p.start_dt)) + 1 AS INT) AS current_day, + COALESCE(( + SELECT CAST(julianday('now', 'localtime') - julianday(MAX(pa.date)) AS INT) + FROM plant_activity pa + JOIN activity a ON pa.activity_id = a.id + WHERE pa.plant_id = p.id AND a.name = 'Water' + ), 0) AS days_since_last_watering, + COALESCE(( + SELECT CAST(julianday('now', 'localtime') - julianday(MAX(pa.date)) AS INT) + FROM plant_activity pa + JOIN activity a ON pa.activity_id = a.id + WHERE pa.plant_id = p.id AND a.name = 'Feed' + ), 0) AS days_since_last_feeding, + COALESCE(( + SELECT CAST(julianday('now', 'localtime') - julianday(MAX(date)) AS INT) + FROM plant_status_log + WHERE plant_id = p.id AND status_id = ( + SELECT id FROM plant_status WHERE status = 'Flower' + ) + ), 0) AS flowering_days, + p.harvest_weight, ps.status, psl.date as status_date, + COALESCE(s.cycle_time, 0), + COALESCE(s.url, '') AS strain_url, + s.autoflower, + COALESCE(( + SELECT MIN(h.date) + FROM plant_status_log h + WHERE h.plant_id = p.id + AND h.status_id IN ( + SELECT id FROM plant_status + WHERE status IN ('Drying','Curing','Success','Dead') + ) + ), DATE('now', 'localtime')) AS harvest_date +FROM plant p +JOIN strain s ON p.strain_id = s.id +JOIN breeder b ON s.breeder_id = b.id +LEFT JOIN zones z ON p.zone_id = z.id +JOIN plant_status_log psl ON p.id = psl.plant_id +JOIN plant_status ps ON psl.status_id = ps.id +WHERE ps.id IN ` + inClause + ` + AND psl.date = (SELECT MAX(date) FROM plant_status_log WHERE plant_id = p.id) +ORDER BY p.start_dt, p.name; +` + } // Open the database connection db, err := model.GetDB() @@ -1092,7 +1150,7 @@ ORDER BY p.start_dt, p.name;` // Parse the date string into time.Time //If harvestDateStr contains T it has a time component, otherwise it's just a date, parse it accordingly if strings.Contains(harvestDateStr, "T") { - plant.HarvestDate, err = time.Parse("2006-01-02T15:04", harvestDateStr) + plant.HarvestDate, err = time.Parse(time.RFC3339, harvestDateStr) } else { plant.HarvestDate, err = time.Parse("2006-01-02", harvestDateStr) } @@ -1297,7 +1355,7 @@ func PlantsByStrainHandler(context *gin.Context) { } // Query plants with the given strain ID - rows, err := db.Query(`SELECT id, name FROM plant WHERE strain_id = ? ORDER BY name ASC`, strainID) + rows, err := db.Query(`SELECT id, name FROM plant WHERE strain_id = $1 ORDER BY name ASC`, strainID) if err != nil { fieldLogger.WithError(err).Error("Failed to query database") context.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch plants"}) diff --git a/handlers/plant_activity.go b/handlers/plant_activity.go index bbddaf4..34c938f 100644 --- a/handlers/plant_activity.go +++ b/handlers/plant_activity.go @@ -40,7 +40,7 @@ func CreatePlantActivity(c *gin.Context) { return } - _, err = db.Exec("INSERT INTO plant_activity (plant_id, activity_id, note, date) VALUES (?, ?, ?, ?)", input.PlantID, input.ActivityID, input.Note, input.Date) + _, err = db.Exec("INSERT INTO plant_activity (plant_id, activity_id, note, date) VALUES ($1, $2, $3, $4)", input.PlantID, input.ActivityID, input.Note, input.Date) if err != nil { fieldLogger.WithError(err).Error("Failed to insert activity into database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create activity"}) @@ -83,7 +83,7 @@ func EditActivity(c *gin.Context) { return } - query := `UPDATE plant_activity SET date = ?, activity_id = ?, note = ? WHERE id = ?` + query := `UPDATE plant_activity SET date = $1, activity_id = $2, note = $3 WHERE id = $4` _, err = db.Exec(query, input.Date, input.ActivityID, input.Note, input.ID) if err != nil { fieldLogger.WithError(err).Error("Failed to update activity") @@ -110,7 +110,7 @@ func DeleteActivity(c *gin.Context) { return } - query := `DELETE FROM plant_activity WHERE id = ?` + query := `DELETE FROM plant_activity WHERE id = $1` _, err = db.Exec(query, id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete activity") @@ -161,7 +161,7 @@ func RecordMultiPlantActivity(c *gin.Context) { } for _, plantID := range request.PlantIDs { - _, err = db.Exec(`INSERT INTO plant_activity (plant_id, activity_id, note, date) VALUES (?, ?, ?, ?)`, + _, err = db.Exec(`INSERT INTO plant_activity (plant_id, activity_id, note, date) VALUES ($1, $2, $3, $4)`, plantID, request.ActivityID, request.Note, request.Date) if err != nil { fieldLogger.WithError(err).WithField("plant_id", plantID).Error("Failed to insert activity for plant") diff --git a/handlers/plant_image.go b/handlers/plant_image.go index 380192c..11f575c 100644 --- a/handlers/plant_image.go +++ b/handlers/plant_image.go @@ -109,7 +109,7 @@ func UploadPlantImages(c *gin.Context) { // Save image metadata to the database _, err = db.Exec(` INSERT INTO plant_images (plant_id, image_path, image_description, image_order, image_date) - VALUES (?, ?, ?, 100, ?)`, + VALUES ($1, $2, $3, 100, $4)`, plantID, savePath, description, imageDate) if err != nil { fileLogger.WithError(err).Error("Failed to save image metadata to database") @@ -144,7 +144,7 @@ func DeletePlantImage(c *gin.Context) { // Retrieve the image path var imagePath string - err = db.QueryRow("SELECT image_path FROM plant_images WHERE id = ?", imageID).Scan(&imagePath) + err = db.QueryRow("SELECT image_path FROM plant_images WHERE id = $1", imageID).Scan(&imagePath) if err != nil { if err == sql.ErrNoRows { fileLogger.WithError(err).Error("Image not found in database") @@ -166,7 +166,7 @@ func DeletePlantImage(c *gin.Context) { } // Delete the image record from the database - _, err = db.Exec("DELETE FROM plant_images WHERE id = ?", imageID) + _, err = db.Exec("DELETE FROM plant_images WHERE id = $1", imageID) if err != nil { fileLogger.WithError(err).Error("Failed to delete image record from database") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete image record"}) diff --git a/handlers/plant_measurement.go b/handlers/plant_measurement.go index b7270e5..fcc3071 100644 --- a/handlers/plant_measurement.go +++ b/handlers/plant_measurement.go @@ -43,7 +43,7 @@ func CreatePlantMeasurement(c *gin.Context) { return } - _, err = db.Exec("INSERT INTO plant_measurements (plant_id, metric_id, value, date) VALUES (?, ?, ?, ?)", + _, err = db.Exec("INSERT INTO plant_measurements (plant_id, metric_id, value, date) VALUES ($1, $2, $3, $4)", input.PlantID, input.MetricID, input.Value, input.Date) if err != nil { fieldLogger.WithError(err).Error("Failed to insert measurement into database") @@ -85,7 +85,7 @@ func EditMeasurement(c *gin.Context) { return } - query := `UPDATE plant_measurements SET date = ?, value = ? WHERE id = ?` + query := `UPDATE plant_measurements SET date = $1, value = $2 WHERE id = $3` _, err = db.Exec(query, input.Date, input.Value, input.ID) if err != nil { fieldLogger.WithError(err).Error("Failed to update measurement in database") @@ -112,7 +112,7 @@ func DeleteMeasurement(c *gin.Context) { return } - query := `DELETE FROM plant_measurements WHERE id = ?` + query := `DELETE FROM plant_measurements WHERE id = $1` _, err = db.Exec(query, id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete measurement from database") diff --git a/handlers/plant_status_log.go b/handlers/plant_status_log.go index 00dbac7..8aa02ef 100644 --- a/handlers/plant_status_log.go +++ b/handlers/plant_status_log.go @@ -36,7 +36,7 @@ func EditStatus(c *gin.Context) { return } - query := `UPDATE plant_status_log SET date = ? WHERE id = ?` + query := `UPDATE plant_status_log SET date = $1 WHERE id = $2` _, err = db.Exec(query, input.Date, input.ID) if err != nil { fieldLogger.WithError(err).Error("Failed to update status in database") @@ -63,7 +63,7 @@ func DeleteStatus(c *gin.Context) { return } - query := `DELETE FROM plant_status_log WHERE id = ?` + query := `DELETE FROM plant_status_log WHERE id = $1` _, err = db.Exec(query, id) if err != nil { fieldLogger.WithError(err).Error("Failed to delete status from database") diff --git a/handlers/sensors.go b/handlers/sensors.go index 33d054f..749ffbc 100644 --- a/handlers/sensors.go +++ b/handlers/sensors.go @@ -52,7 +52,7 @@ func GetSensors() []map[string]interface{} { for rows.Next() { var id, zoneId int var name, zone, source, device, sensorType, createDT, updateDT, unit string - var show int // SQLite represents booleans as integers + var show bool // SQLite represents booleans as integers // Scan the row data err := rows.Scan(&id, &name, &zone, &source, &device, &sensorType, &show, &createDT, &updateDT, &zoneId, &unit) @@ -69,7 +69,7 @@ func GetSensors() []map[string]interface{} { "source": source, "device": device, "type": sensorType, - "visible": show == 1, // Convert to boolean + "visible": show, // Convert to boolean "create_dt": createDT, "update_dt": updateDT, "zone_id": zoneId, @@ -321,7 +321,7 @@ func ScanEcoWittSensors(c *gin.Context) { func checkInsertSensor(db *sql.DB, source string, device string, sensorType string, name string, zoneId *int, unit string) { fieldLogger := logger.Log.WithField("func", "checkInsertSensor") sensorid := 0 - err := db.QueryRow("SELECT id FROM sensors WHERE source = ? and device = ? and type = ?", source, device, sensorType).Scan(&sensorid) + err := db.QueryRow("SELECT id FROM sensors WHERE source = $1 and device = $2 and type = $3", source, device, sensorType).Scan(&sensorid) if err != nil { if err == sql.ErrNoRows { //fmt.Println("No rows found") @@ -331,7 +331,7 @@ func checkInsertSensor(db *sql.DB, source string, device string, sensorType stri } } if sensorid == 0 { - _, err := db.Exec("INSERT INTO sensors (name, source, device, type, zone_id, unit) VALUES (?, ?, ?, ?, ?, ?)", name, source, device, sensorType, zoneId, unit) + _, err := db.Exec("INSERT INTO sensors (name, source, device, type, zone_id, unit) VALUES ($1, $2, $3, $4, $5, $6)", name, source, device, sensorType, zoneId, unit) if err != nil { fieldLogger.WithError(err).Error("Error inserting sensor") return @@ -375,7 +375,8 @@ func CreateNewZone(name string) (int, error) { return 0, err } - result, err := db.Exec("INSERT INTO zones (name) VALUES (?)", name) + var id int + err = db.QueryRow("INSERT INTO zones (name) VALUES ($1) RETURNING id", name).Scan(&id) if err != nil { fieldLogger.WithError(err).Error("Error inserting new zone") return 0, err @@ -383,12 +384,7 @@ func CreateNewZone(name string) (int, error) { config.Zones = GetZones() - id, err := result.LastInsertId() - if err != nil { - fieldLogger.WithError(err).Error("Error getting last insert ID") - return 0, err - } - return int(id), nil + return id, nil } func GetGroupedSensorsWithLatestReading() map[string]map[string][]map[string]interface{} { fieldLogger := logger.Log.WithField("func", "GetGroupedSensorsWithLatestReading") @@ -428,7 +424,7 @@ LEFT JOIN rolling_averages ra ON ra.sensor_id = s.id AND ra.create_dt = sd.creat WHERE sd.id = ( SELECT MAX(id) FROM sensor_data WHERE sensor_id = s.id ) -AND s.show = 1 +AND s.show ORDER BY z.name, s.device, s.type; `) @@ -550,7 +546,7 @@ func EditSensor(c *gin.Context) { return } - _, err = db.Exec("UPDATE sensors SET name = ?, show = ?, zone_id = ?, unit = ?, device = ? WHERE id = ?", + _, err = db.Exec("UPDATE sensors SET name = $1, show = $2, zone_id = $3, unit = $4, device = $5 WHERE id = $6", input.Name, input.Visible, input.ZoneID, input.Unit, input.Device, input.ID) if err != nil { fieldLogger.WithError(err).Error("Error updating sensor") @@ -584,13 +580,13 @@ func DeleteSensorByID(id string) error { } // Delete sensor_data for this sensor - _, err = db.Exec("DELETE FROM sensor_data WHERE sensor_id = ?", id) + _, err = db.Exec("DELETE FROM sensor_data WHERE sensor_id = $1", id) if err != nil { fieldLogger.WithError(err).Error("Error deleting sensor data") return err } - _, err = db.Exec("DELETE FROM sensors WHERE id = ?", id) + _, err = db.Exec("DELETE FROM sensors WHERE id = $1", id) if err != nil { fieldLogger.WithError(err).Error("Error deleting sensor") return err @@ -607,7 +603,7 @@ func GetSensorName(id string) string { } var name string - err = db.QueryRow("SELECT name FROM sensors WHERE id = ?", id).Scan(&name) + err = db.QueryRow("SELECT name FROM sensors WHERE id = $1", id).Scan(&name) if err != nil { fieldLogger.WithError(err).Error("Error querying sensor name") return "" diff --git a/main.go b/main.go index 326ea88..1747d2e 100644 --- a/main.go +++ b/main.go @@ -23,7 +23,7 @@ import ( "time" ) -//go:embed model/migrations/*.sql web/templates/* web/static/**/* utils/fonts/* VERSION +//go:embed model/migrations/sqlite/*.sql model/migrations/postgres/*.sql web/templates/* web/static/**/* utils/fonts/* VERSION var embeddedFiles embed.FS func main() { @@ -42,6 +42,8 @@ func main() { model.MigrateDB() model.InitDB() + dbDriver := model.GetDriver() + version = fmt.Sprintf("%s-%s", version, dbDriver) // Initialize translation service utils.Init("en") diff --git a/model/migrate.go b/model/migrate.go index 65c2971..fd04864 100644 --- a/model/migrate.go +++ b/model/migrate.go @@ -3,82 +3,168 @@ package model import ( "database/sql" "embed" + "fmt" "github.com/golang-migrate/migrate/v4" + "github.com/golang-migrate/migrate/v4/database/postgres" "github.com/golang-migrate/migrate/v4/database/sqlite" "github.com/golang-migrate/migrate/v4/source/iofs" + _ "github.com/lib/pq" "isley/logger" + _ "modernc.org/sqlite" "os" + "strings" "time" ) -//go:embed migrations/*.sql +//go:embed migrations/sqlite/*.sql migrations/postgres/*.sql var migrationsFS embed.FS var db *sql.DB +var dbDriver string func InitDB() { var err error - db, err = sql.Open("sqlite", DbPath()) + driver := os.Getenv("DB_DRIVER") + + var dsn string + switch driver { + case "postgres": + logger.Log.Info("Using Postgres driver") + dsn = fmt.Sprintf( + "host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", + os.Getenv("DB_HOST"), + os.Getenv("DB_PORT"), + os.Getenv("DB_USER"), + os.Getenv("DB_PASSWORD"), + os.Getenv("DB_NAME"), + ) + case "sqlite", "": + logger.Log.Info("Using Sqlite driver") + dsn = DbPath() + driver = "sqlite" + default: + logger.Log.Fatalf("Unsupported DB_DRIVER: %s", driver) + } + dbDriver = driver + + logger.Log.Infof("Driver is: %s", driver) + db, err = sql.Open(driver, dsn) if err != nil { logger.Log.WithError(err).Fatal("Failed to initialize database") } - // Set connection pool limits - db.SetMaxOpenConns(5) - db.SetMaxIdleConns(2) - db.SetConnMaxLifetime(5 * time.Minute) + db.SetMaxOpenConns(10) + db.SetMaxIdleConns(5) + db.SetConnMaxLifetime(10 * time.Minute) + + if driver == "postgres" { + isEmpty, err := IsPostgresEmpty(db) + if err != nil { + logger.Log.WithError(err).Error("Failed to check if Postgres is empty") + } else if isEmpty { + logger.Log.Info("Postgres database is empty, checking for SQLite migration source") + if _, err := os.Stat("data/isley.db"); err == nil { + err := MigrateSqliteToPostgres("data/isley.db", db) + if err != nil { + logger.Log.WithError(err).Error("Failed to migrate from SQLite") + } else { + logger.Log.Info("Migration from SQLite to Postgres completed successfully") + } + } + } else { + logger.Log.Info("Postgres database is not empty, skipping migration") + } + } + } func GetDB() (*sql.DB, error) { + //stats := db.Stats() + //logger.Log.Infof("Open connections: %d", stats.OpenConnections) + //logger.Log.Infof("In-use connections: %d", stats.InUse) + //logger.Log.Infof("Idle connections: %d", stats.Idle) return db, nil } +func GetDriver() string { + return dbDriver +} + +func IsPostgres() bool { + return dbDriver == "postgres" +} + +func IsSQLite() bool { + return dbDriver == "sqlite" +} + func DbPath() string { return "data/isley.db?_journal_mode=WAL" } func MigrateDB() { - // Ensure the data directory exists - dataDir := "data" - if err := os.MkdirAll(dataDir, os.ModePerm); err != nil { - logger.Log.Fatalf("Failed to create data directory: %v", err) + driver := os.Getenv("DB_DRIVER") + if driver == "" { + logger.Log.Info("DB_DRIVER not set, defaulting to sqlite") + driver = "sqlite" } - // Enforce WAL mode before running migrations - enforceWalMode() + if driver == "sqlite" { + _ = os.MkdirAll("data", os.ModePerm) + enforceWalMode() + } - logger.Log.Info("Starting database migration") + dsn := "" + switch driver { + case "postgres": + dsn = fmt.Sprintf( + "host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", + os.Getenv("DB_HOST"), + os.Getenv("DB_PORT"), + os.Getenv("DB_USER"), + os.Getenv("DB_PASSWORD"), + os.Getenv("DB_NAME"), + ) + case "sqlite": + dsn = DbPath() + default: + logger.Log.Fatalf("Unsupported DB_DRIVER: %s", driver) + } - // Open the database - db, err := sql.Open("sqlite", DbPath()) + logger.Log.Infof("Running migrations for %s", driver) + + db, err := sql.Open(driver, dsn) if err != nil { logger.Log.Fatalf("Error opening database: %v", err) } - defer func() { - if closeErr := db.Close(); closeErr != nil { - logger.Log.Errorf("Error closing database: %v", closeErr) - } - }() + defer db.Close() - // Initialize the SQLite driver for golang-migrate - driver, err := sqlite.WithInstance(db, &sqlite.Config{}) - if err != nil { - logger.Log.Fatalf("Failed to create SQLite driver: %v", err) - } + // Use concrete types and interfaces specific to driver packages + var m *migrate.Migrate - // Use iofs to load migrations from the embedded filesystem - sourceDriver, err := iofs.New(migrationsFS, "migrations") + sourceDriver, err := iofs.New(migrationsFS, fmt.Sprintf("migrations/%s", driver)) if err != nil { - logger.Log.Fatalf("Failed to load migrations from embedded filesystem: %v", err) + logger.Log.Fatalf("Failed to load migrations: %v", err) } - // Create the migrate instance - m, err := migrate.NewWithInstance("iofs", sourceDriver, "sqlite", driver) + switch driver { + case "sqlite": + sqliteDriver, err := sqlite.WithInstance(db, &sqlite.Config{}) + if err != nil { + logger.Log.Fatalf("Failed to create SQLite driver: %v", err) + } + m, err = migrate.NewWithInstance("iofs", sourceDriver, "sqlite", sqliteDriver) + case "postgres": + postgresDriver, err := postgres.WithInstance(db, &postgres.Config{}) + if err != nil { + logger.Log.Fatalf("Failed to create Postgres driver: %v", err) + } + m, err = migrate.NewWithInstance("iofs", sourceDriver, "postgres", postgresDriver) + } if err != nil { logger.Log.Fatalf("Failed to initialize migration: %v", err) } - // Run the migrations err = m.Up() if err != nil && err != migrate.ErrNoChange { logger.Log.Fatalf("Error applying migrations: %v", err) @@ -141,3 +227,19 @@ func enforceWalMode() { logger.Log.Info("WAL mode set successfully") } } + +func BuildInClause(driver string, items []interface{}) (string, []interface{}) { + placeholders := make([]string, len(items)) + args := make([]interface{}, len(items)) + + for i, val := range items { + args[i] = val + if driver == "postgres" { + placeholders[i] = fmt.Sprintf("$%d", i+1) + } else { + placeholders[i] = "?" + } + } + + return "(" + strings.Join(placeholders, ", ") + ")", args +} diff --git a/model/migrations/001_consolidated.down.sql b/model/migrations/postgres/001_consolidated.postgres.down.sql similarity index 100% rename from model/migrations/001_consolidated.down.sql rename to model/migrations/postgres/001_consolidated.postgres.down.sql diff --git a/model/migrations/postgres/001_consolidated.postgres.up.sql b/model/migrations/postgres/001_consolidated.postgres.up.sql new file mode 100644 index 0000000..815f906 --- /dev/null +++ b/model/migrations/postgres/001_consolidated.postgres.up.sql @@ -0,0 +1,225 @@ +-- Create the settings table +CREATE TABLE settings ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + value TEXT NOT NULL, + create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +-- Trigger to set timestamps on insert +CREATE OR REPLACE FUNCTION trg_settings_create_dt() RETURNS TRIGGER AS $$ +BEGIN + NEW.create_dt := CURRENT_TIMESTAMP; +NEW.update_dt := CURRENT_TIMESTAMP; +RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER trg_settings_create_dt + BEFORE INSERT ON settings + FOR EACH ROW + EXECUTE FUNCTION trg_settings_create_dt(); + +-- Trigger to update timestamp on update +CREATE OR REPLACE FUNCTION trg_settings_update_dt() RETURNS TRIGGER AS $$ +BEGIN + NEW.update_dt := CURRENT_TIMESTAMP; +RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER trg_settings_update_dt + BEFORE UPDATE ON settings + FOR EACH ROW + EXECUTE FUNCTION trg_settings_update_dt(); + +-- Create the zones table +CREATE TABLE zones ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE OR REPLACE FUNCTION trg_zones_create_dt() RETURNS TRIGGER AS $$ +BEGIN + NEW.create_dt := CURRENT_TIMESTAMP; +NEW.update_dt := CURRENT_TIMESTAMP; +RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER trg_zones_create_dt + BEFORE INSERT ON zones + FOR EACH ROW + EXECUTE FUNCTION trg_zones_create_dt(); + +CREATE OR REPLACE FUNCTION trg_zones_update_dt() RETURNS TRIGGER AS $$ +BEGIN + NEW.update_dt := CURRENT_TIMESTAMP; +RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER trg_zones_update_dt + BEFORE UPDATE ON zones + FOR EACH ROW + EXECUTE FUNCTION trg_zones_update_dt(); + +-- Create the breeder table +CREATE TABLE breeder ( + id SERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL +); + +-- Create the sensor table +CREATE TABLE sensors ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + zone_id INTEGER REFERENCES zones(id) ON DELETE SET NULL, + source TEXT NOT NULL, + device TEXT NOT NULL, + type TEXT NOT NULL, + create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + show BOOLEAN NOT NULL DEFAULT TRUE, + unit VARCHAR(255) NOT NULL DEFAULT 'units' +); + +CREATE OR REPLACE FUNCTION trg_sensors_create_dt() RETURNS TRIGGER AS $$ +BEGIN + NEW.create_dt := CURRENT_TIMESTAMP; +NEW.update_dt := CURRENT_TIMESTAMP; +RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER trg_sensors_create_dt + BEFORE INSERT ON sensors + FOR EACH ROW + EXECUTE FUNCTION trg_sensors_create_dt(); + +CREATE OR REPLACE FUNCTION trg_sensors_update_dt() RETURNS TRIGGER AS $$ +BEGIN + NEW.update_dt := CURRENT_TIMESTAMP; +RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER trg_sensors_update_dt + BEFORE UPDATE ON sensors + FOR EACH ROW + EXECUTE FUNCTION trg_sensors_update_dt(); + +-- Create the sensor_data table +CREATE TABLE sensor_data ( + id SERIAL PRIMARY KEY, + sensor_id INTEGER NOT NULL REFERENCES sensors(id), + value REAL NOT NULL, + create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +-- Create the strain table +CREATE TABLE strain ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + sativa INTEGER NOT NULL, + indica INTEGER NOT NULL, + autoflower INTEGER NOT NULL, + description TEXT NOT NULL, + seed_count INTEGER NOT NULL DEFAULT 0, + breeder_id INTEGER NOT NULL REFERENCES breeder(id) +); + +-- Create the plant_status table +CREATE TABLE plant_status ( + id SERIAL PRIMARY KEY, + status TEXT NOT NULL, + active INTEGER NOT NULL +); + +INSERT INTO plant_status (status, active) VALUES + ('Seedling', 1), + ('Veg', 1), + ('Flower', 1), + ('Drying', 1), + ('Curing', 1), + ('Success', 0), + ('Dead', 0); + +-- Create the plant table +CREATE TABLE plant ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + description TEXT NOT NULL, + clone INTEGER NOT NULL, + strain_id INTEGER NOT NULL REFERENCES strain(id), + zone_id INTEGER REFERENCES zones(id) ON DELETE SET NULL, + start_dt TIMESTAMP, + sensors TEXT NOT NULL DEFAULT '[]', + harvest_weight NUMERIC(10,2) DEFAULT 0 +); + +-- Create the plant_status_log table +CREATE TABLE plant_status_log ( + id SERIAL PRIMARY KEY, + plant_id INTEGER NOT NULL REFERENCES plant(id), + status_id INTEGER NOT NULL REFERENCES plant_status(id), + date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +-- Create the metric table +CREATE TABLE metric ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + unit TEXT NOT NULL, + lock BOOLEAN DEFAULT FALSE +); + +INSERT INTO metric (name, unit, lock) VALUES ('Height', 'in', TRUE); + +-- Create the plant_measurements table +CREATE TABLE plant_measurements ( + id SERIAL PRIMARY KEY, + plant_id INTEGER NOT NULL REFERENCES plant(id), + metric_id INTEGER NOT NULL REFERENCES metric(id), + value REAL NOT NULL, + date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +-- Create the activity table +CREATE TABLE activity ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + lock BOOLEAN DEFAULT FALSE +); + +INSERT INTO activity (name, lock) VALUES + ('Water', TRUE), + ('Feed', TRUE), + ('Note', TRUE); + +-- Create the plant_activity table +CREATE TABLE plant_activity ( + id SERIAL PRIMARY KEY, + plant_id INTEGER NOT NULL REFERENCES plant(id), + activity_id INTEGER NOT NULL REFERENCES activity(id), + date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + note TEXT NOT NULL +); + +-- Create the plant_images table +CREATE TABLE plant_images ( + id SERIAL PRIMARY KEY, + plant_id INTEGER NOT NULL REFERENCES plant(id), + image_path VARCHAR(255) NOT NULL, + image_description TEXT, + image_order INTEGER NOT NULL DEFAULT 0, + image_date DATE, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +-- Seed settings +INSERT INTO settings (name, value) VALUES ('polling_interval', '60'); diff --git a/model/migrations/002_rolling_averages.down.sql b/model/migrations/postgres/002_rolling_averages.postgres.down.sql similarity index 100% rename from model/migrations/002_rolling_averages.down.sql rename to model/migrations/postgres/002_rolling_averages.postgres.down.sql diff --git a/model/migrations/postgres/002_rolling_averages.postgres.up.sql b/model/migrations/postgres/002_rolling_averages.postgres.up.sql new file mode 100644 index 0000000..c471aa2 --- /dev/null +++ b/model/migrations/postgres/002_rolling_averages.postgres.up.sql @@ -0,0 +1,36 @@ +-- Create rolling_averages table +CREATE TABLE rolling_averages ( + sensor_id INTEGER, + avg_value REAL, + create_dt TIMESTAMP, + PRIMARY KEY (sensor_id, create_dt) +); + +CREATE OR REPLACE FUNCTION fn_update_rolling_avg() + RETURNS TRIGGER AS $$ +BEGIN + INSERT INTO rolling_averages (sensor_id, avg_value, create_dt) + SELECT + NEW.sensor_id, + ( + SELECT AVG(value) + FROM ( + SELECT value + FROM sensor_data + WHERE sensor_id = NEW.sensor_id + ORDER BY create_dt DESC + LIMIT 16 OFFSET 1 + ) sub + ), + NEW.create_dt + ON CONFLICT (sensor_id, create_dt) DO UPDATE + SET avg_value = EXCLUDED.avg_value; + + RETURN NULL; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER update_rolling_avg + AFTER INSERT ON sensor_data + FOR EACH ROW +EXECUTE FUNCTION fn_update_rolling_avg(); \ No newline at end of file diff --git a/model/migrations/003_metadata_updates.down.sql b/model/migrations/postgres/003_metadata_updates.postgres.down.sql similarity index 100% rename from model/migrations/003_metadata_updates.down.sql rename to model/migrations/postgres/003_metadata_updates.postgres.down.sql diff --git a/model/migrations/003_metadata_updates.up.sql b/model/migrations/postgres/003_metadata_updates.postgres.up.sql similarity index 100% rename from model/migrations/003_metadata_updates.up.sql rename to model/migrations/postgres/003_metadata_updates.postgres.up.sql diff --git a/model/migrations/004_germination.down.sql b/model/migrations/postgres/004_germination.postgres.down.sql similarity index 100% rename from model/migrations/004_germination.down.sql rename to model/migrations/postgres/004_germination.postgres.down.sql diff --git a/model/migrations/004_germination.up.sql b/model/migrations/postgres/004_germination.postgres.up.sql similarity index 100% rename from model/migrations/004_germination.up.sql rename to model/migrations/postgres/004_germination.postgres.up.sql diff --git a/model/migrations/005_streams.down.sql b/model/migrations/postgres/005_streams.postgres.down.sql similarity index 100% rename from model/migrations/005_streams.down.sql rename to model/migrations/postgres/005_streams.postgres.down.sql diff --git a/model/migrations/postgres/005_streams.postgres.up.sql b/model/migrations/postgres/005_streams.postgres.up.sql new file mode 100644 index 0000000..9e5088e --- /dev/null +++ b/model/migrations/postgres/005_streams.postgres.up.sql @@ -0,0 +1,7 @@ +CREATE TABLE streams ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + url TEXT NOT NULL, + zone_id INTEGER NOT NULL REFERENCES zones(id), + visible BOOLEAN NOT NULL DEFAULT TRUE +); diff --git a/model/migrations/sqlite/001_consolidated.sqlite.down.sql b/model/migrations/sqlite/001_consolidated.sqlite.down.sql new file mode 100644 index 0000000..e69de29 diff --git a/model/migrations/001_consolidated.up.sql b/model/migrations/sqlite/001_consolidated.sqlite.up.sql similarity index 100% rename from model/migrations/001_consolidated.up.sql rename to model/migrations/sqlite/001_consolidated.sqlite.up.sql diff --git a/model/migrations/sqlite/002_rolling_averages.sqlite.down.sql b/model/migrations/sqlite/002_rolling_averages.sqlite.down.sql new file mode 100644 index 0000000..46a389e --- /dev/null +++ b/model/migrations/sqlite/002_rolling_averages.sqlite.down.sql @@ -0,0 +1,2 @@ +DROP TRIGGER update_rolling_avg; +DROP TABLE rolling_averages; diff --git a/model/migrations/002_rolling_averages.up.sql b/model/migrations/sqlite/002_rolling_averages.sqlite.up.sql similarity index 100% rename from model/migrations/002_rolling_averages.up.sql rename to model/migrations/sqlite/002_rolling_averages.sqlite.up.sql diff --git a/model/migrations/sqlite/003_metadata_updates.sqlite.down.sql b/model/migrations/sqlite/003_metadata_updates.sqlite.down.sql new file mode 100644 index 0000000..3870714 --- /dev/null +++ b/model/migrations/sqlite/003_metadata_updates.sqlite.down.sql @@ -0,0 +1,4 @@ +ALTER TABLE strain DROP COLUMN cycle_time; +ALTER TABLE strain DROP COLUMN url; +ALTER TABLE plant DROP COLUMN parent_plant_id; + diff --git a/model/migrations/sqlite/003_metadata_updates.sqlite.up.sql b/model/migrations/sqlite/003_metadata_updates.sqlite.up.sql new file mode 100644 index 0000000..a8cfd7e --- /dev/null +++ b/model/migrations/sqlite/003_metadata_updates.sqlite.up.sql @@ -0,0 +1,4 @@ +ALTER TABLE strain ADD COLUMN cycle_time INT; +ALTER TABLE strain ADD COLUMN url TEXT; +ALTER TABLE plant ADD COLUMN parent_plant_id INT; + diff --git a/model/migrations/sqlite/004_germination.sqlite.down.sql b/model/migrations/sqlite/004_germination.sqlite.down.sql new file mode 100644 index 0000000..2785f2a --- /dev/null +++ b/model/migrations/sqlite/004_germination.sqlite.down.sql @@ -0,0 +1,2 @@ +DELETE FROM plant_status WHERE status, = 'Germinating'; +DELETE FROM plant_status WHERE status, = 'Planted'; diff --git a/model/migrations/sqlite/004_germination.sqlite.up.sql b/model/migrations/sqlite/004_germination.sqlite.up.sql new file mode 100644 index 0000000..6ea03dc --- /dev/null +++ b/model/migrations/sqlite/004_germination.sqlite.up.sql @@ -0,0 +1,13 @@ +alter table plant_status add column status_order INTEGER NOT NULL DEFAULT 0; +INSERT INTO plant_status (status, active, status_order) VALUES ('Germinating', 1, 1); +INSERT INTO plant_status (status, active, status_order) VALUES ('Planted', 1, 2); +UPDATE plant_status SET status_order = 3 WHERE status = 'Seedling'; +UPDATE plant_status SET status_order = 4 WHERE status = 'Veg'; +UPDATE plant_status SET status_order = 5 WHERE status = 'Flower'; +UPDATE plant_status SET status_order = 6 WHERE status = 'Drying'; +UPDATE plant_status SET status_order = 7 WHERE status = 'Curing'; +UPDATE plant_status SET status_order = 8 WHERE status = 'Success'; +UPDATE plant_status SET status_order = 9 WHERE status = 'Dead'; + +UPDATE plant_status SET active = 0 WHERE status = 'Drying'; +UPDATE plant_status SET active = 0 WHERE status = 'Curing'; diff --git a/model/migrations/sqlite/005_streams.sqlite.down.sql b/model/migrations/sqlite/005_streams.sqlite.down.sql new file mode 100644 index 0000000..91637aa --- /dev/null +++ b/model/migrations/sqlite/005_streams.sqlite.down.sql @@ -0,0 +1 @@ +DROP TABLE streams; \ No newline at end of file diff --git a/model/migrations/005_streams.up.sql b/model/migrations/sqlite/005_streams.sqlite.up.sql similarity index 100% rename from model/migrations/005_streams.up.sql rename to model/migrations/sqlite/005_streams.sqlite.up.sql diff --git a/model/sqlite_to_postgres.go b/model/sqlite_to_postgres.go new file mode 100644 index 0000000..4b273df --- /dev/null +++ b/model/sqlite_to_postgres.go @@ -0,0 +1,248 @@ +package model + +import ( + "database/sql" + "fmt" + "strings" + + _ "github.com/lib/pq" + "isley/logger" + _ "modernc.org/sqlite" +) + +var conflictKeys = map[string]string{ + "settings": "id", + "zones": "id", + "sensors": "id", + "strain": "id", + "plant_status": "id", + "plant": "id", + "plant_status_log": "id", + "metric": "id", + "plant_measurements": "id", + "activity": "id", + "plant_activity": "id", + "plant_images": "id", + "breeder": "id", + "sensor_data": "id", + "streams": "id", +} + +var boolToIntFields = map[string][]string{ + "strain": {"autoflower"}, +} + +var orderedTables = []string{ + "settings", + "zones", + "breeder", // Must come before strain + "strain", + "sensors", + "sensor_data", + "plant_status", + "plant", + "plant_status_log", + "metric", + "plant_measurements", + "activity", + "plant_activity", + "plant_images", + "streams", +} + +func MigrateSqliteToPostgres(sqlitePath string, pg *sql.DB) error { + sqliteDB, err := sql.Open("sqlite", sqlitePath) + if err != nil { + return fmt.Errorf("open sqlite: %w", err) + } + defer sqliteDB.Close() + + tables := orderedTables + + for _, table := range tables { + logger.Log.Infof("Migrating table: %s", table) + if err := copyTableData(sqliteDB, pg, table); err != nil { + return fmt.Errorf("copy table %s: %w", table, err) + } + } + + return nil +} + +func listSQLiteTables(db *sql.DB) ([]string, error) { + tables := []string{} + rows, err := db.Query(`SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' AND name <> 'schema_migrations'`) + if err != nil { + return nil, err + } + defer rows.Close() + + for rows.Next() { + var name string + if err := rows.Scan(&name); err != nil { + return nil, err + } + tables = append(tables, name) + } + return tables, nil +} + +func copyTableData(src *sql.DB, dest *sql.DB, table string) error { + const batchSize = 5000 + + // πŸ”» Disable triggers (only works in Postgres) + if IsPostgres() { + _, err := dest.Exec(fmt.Sprintf("ALTER TABLE %s DISABLE TRIGGER ALL", table)) + if err != nil { + return fmt.Errorf("disabling triggers on %s: %w", table, err) + } + } + + // Count total rows (for logging) + var totalRows int + err := src.QueryRow(fmt.Sprintf("SELECT COUNT(*) FROM %s", table)).Scan(&totalRows) + if err != nil { + return fmt.Errorf("counting rows in %s: %w", table, err) + } + + offset := 0 + for offset < totalRows { + query := fmt.Sprintf("SELECT * FROM %s LIMIT %d OFFSET %d", table, batchSize, offset) + rows, err := src.Query(query) + if err != nil { + return err + } + + cols, err := rows.Columns() + if err != nil { + rows.Close() + return err + } + + colCount := len(cols) + valuesList := [][]interface{}{} + + for rows.Next() { + values := make([]interface{}, colCount) + ptrs := make([]interface{}, colCount) + for i := range values { + ptrs[i] = &values[i] + } + if err := rows.Scan(ptrs...); err != nil { + rows.Close() + return err + } + + // Normalize booleans that are strings ("true"/"false") to 1/0 + for i, col := range cols { + for _, bfield := range boolToIntFields[table] { + if col == bfield { + if s, ok := values[i].(string); ok { + if strings.EqualFold(s, "true") { + values[i] = 1 + } else if strings.EqualFold(s, "false") { + values[i] = 0 + } + } + } + } + } + + valuesList = append(valuesList, values) + } + rows.Close() + + if len(valuesList) == 0 { + break + } + + // Build batch insert + insertSQL := fmt.Sprintf("INSERT INTO %s (%s) VALUES ", table, strings.Join(cols, ",")) + args := []interface{}{} + placeholders := []string{} + + argCounter := 1 + for _, vals := range valuesList { + ph := []string{} + for range vals { + ph = append(ph, fmt.Sprintf("$%d", argCounter)) + argCounter++ + } + placeholders = append(placeholders, fmt.Sprintf("(%s)", strings.Join(ph, ","))) + args = append(args, vals...) + } + + insertSQL += strings.Join(placeholders, ",") + + if conflictKey, ok := conflictKeys[table]; ok { + insertSQL += fmt.Sprintf(" ON CONFLICT (%s) DO NOTHING", conflictKey) + } + + _, err = dest.Exec(insertSQL, args...) + if err != nil { + return fmt.Errorf("executing batch insert into %s: %w", table, err) + } + + offset += len(valuesList) + logger.Log.Infof("Migrated %d rows from %s (%d/%d)", len(valuesList), table, offset, totalRows) + } + + if IsPostgres() && hasSerialID(table) { + _, err := dest.Exec(fmt.Sprintf(` + SELECT setval(pg_get_serial_sequence('%s', 'id'), COALESCE(MAX(id), 1), true) FROM %s + `, table, table)) + if err != nil { + return fmt.Errorf("reset sequence for table %s: %w", table, err) + } + } + + // πŸ”Ί Re-enable triggers + if IsPostgres() { + _, err := dest.Exec(fmt.Sprintf("ALTER TABLE %s ENABLE TRIGGER ALL", table)) + if err != nil { + return fmt.Errorf("re-enabling triggers on %s: %w", table, err) + } + } + + return nil +} + +func hasSerialID(table string) bool { + // List of tables where 'id' is a SERIAL/identity column and needs sequence reset + serialTables := map[string]bool{ + "settings": true, + "zones": true, + "sensors": true, + "sensor_data": true, + "strain": true, + "plant_status": true, + "plant": true, + "plant_status_log": true, + "metric": true, + "plant_measurements": true, + "activity": true, + "plant_activity": true, + "plant_images": true, + "breeder": true, + "streams": true, + } + + return serialTables[table] +} + +func IsPostgresEmpty(db *sql.DB) (bool, error) { + var tablesToCheck = []string{"sensors", "sensor_data", "plant"} + + for _, table := range tablesToCheck { + var count int + query := fmt.Sprintf("SELECT COUNT(*) FROM %s", table) + err := db.QueryRow(query).Scan(&count) + if err != nil { + return false, fmt.Errorf("error checking table %s: %w", table, err) + } + if count > 0 { + return false, nil // Data exists + } + } + return true, nil // No rows found in any key table +} diff --git a/watcher/watcher.go b/watcher/watcher.go index 1bf4b7a..28d4512 100644 --- a/watcher/watcher.go +++ b/watcher/watcher.go @@ -161,7 +161,7 @@ func addSensorData(source string, device string, key string, value string) { } var sensorID int - err = db.QueryRow("SELECT id FROM sensors WHERE source = ? AND device = ? AND type = ?", source, device, key).Scan(&sensorID) + err = db.QueryRow("SELECT id FROM sensors WHERE source = $1 AND device = $2 AND type = $3", source, device, key).Scan(&sensorID) if err != nil { logger.Log.WithFields(logrus.Fields{ "source": source, @@ -172,7 +172,7 @@ func addSensorData(source string, device string, key string, value string) { return } - _, err = db.Exec("INSERT INTO sensor_data (sensor_id, value) VALUES (?, ?)", sensorID, value) + _, err = db.Exec("INSERT INTO sensor_data (sensor_id, value) VALUES ($1, $2)", sensorID, value) if err != nil { logger.Log.WithFields(logrus.Fields{ "sensorID": sensorID, From 821b18209c411e254ed152b58aec817335797450 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Sat, 29 Mar 2025 20:13:06 -0400 Subject: [PATCH 37/53] Fix for #29 + character in email for AC Infinity (#36) * Bump github.com/nicksnyder/go-i18n/v2 from 2.5.0 to 2.5.1 Bumps [github.com/nicksnyder/go-i18n/v2](https://github.com/nicksnyder/go-i18n) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/nicksnyder/go-i18n/releases) - [Changelog](https://github.com/nicksnyder/go-i18n/blob/main/CHANGELOG.md) - [Commits](https://github.com/nicksnyder/go-i18n/compare/v2.5.0...v2.5.1) --- updated-dependencies: - dependency-name: github.com/nicksnyder/go-i18n/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump golang.org/x/text from 0.21.0 to 0.23.0 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.21.0 to 0.23.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.21.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang.org/x/image from 0.23.0 to 0.25.0 Bumps [golang.org/x/image](https://github.com/golang/image) from 0.23.0 to 0.25.0. - [Commits](https://github.com/golang/image/compare/v0.23.0...v0.25.0) --- updated-dependencies: - dependency-name: golang.org/x/image dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang.org/x/crypto from 0.32.0 to 0.36.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.32.0 to 0.36.0. - [Commits](https://github.com/golang/crypto/compare/v0.32.0...v0.36.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang.org/x/net from 0.33.0 to 0.36.0 in the go_modules group Bumps the go_modules group with 1 update: [golang.org/x/net](https://github.com/golang/net). Updates `golang.org/x/net` from 0.33.0 to 0.36.0 - [Commits](https://github.com/golang/net/compare/v0.33.0...v0.36.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect dependency-group: go_modules ... Signed-off-by: dependabot[bot] * PSQL Testing * PSQL Testing * Updates for PSQL migrations and data migrations and sql cleanup * Updates for PSQL migrations and data migrations and sql cleanup * Updates for PSQL migrations and data migrations and sql cleanup * Fixes for dependabot merges * Fixes for dependabot merges * cleanup readme * Update for #29 properly encode + in email address for login to AC Infinity * Update for #29 properly encode + in email address for login to AC Infinity --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- VERSION | 2 +- handlers/ac_infinity.go | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index 44905e7..d7d9957 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.18 \ No newline at end of file +0.1.19 \ No newline at end of file diff --git a/handlers/ac_infinity.go b/handlers/ac_infinity.go index d97a884..a50bd1b 100644 --- a/handlers/ac_infinity.go +++ b/handlers/ac_infinity.go @@ -1,10 +1,11 @@ package handlers import ( - "bytes" "encoding/json" "github.com/sirupsen/logrus" "net/http" + "net/url" + "strings" "github.com/gin-gonic/gin" "isley/logger" @@ -27,11 +28,14 @@ func ACILoginHandler(c *gin.Context) { req.Password = req.Password[:25] } - formData := "appEmail=" + req.Email + "&appPasswordl=" + req.Password + // Properly encode form data + values := url.Values{} + values.Set("appEmail", req.Email) + values.Set("appPasswordl", req.Password) + formData := values.Encode() apiURL := "http://www.acinfinityserver.com/api/user/appUserLogin" - // Create a new HTTP request - httpRequest, err := http.NewRequest("POST", apiURL, bytes.NewBufferString(formData)) + httpRequest, err := http.NewRequest("POST", apiURL, strings.NewReader(formData)) if err != nil { logger.Log.WithError(err).Error("Failed to create HTTP request") c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": "Failed to create request"}) From e12b7da743835d3bce4abd6ca41973a6fd44b947 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Mon, 31 Mar 2025 13:10:35 -0400 Subject: [PATCH 38/53] Update README and fix for Postgres (#37) * README.md fixes * Fix for update plant w/ postgres, reduce cache times --- README.md | 6 +++--- VERSION | 2 +- handlers/plant.go | 7 ++++++- handlers/sensor_data.go | 2 +- handlers/sensors.go | 2 +- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9aed4fa..74c72bc 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 - - ISLEY_DB_DRIVER=postgres + - DB_DRIVER=postgres - ISLEY_DB_DSN=postgres://isley:isley@postgres:5432/isley?sslmode=disable volumes: - isley-uploads:/app/uploads @@ -173,7 +173,7 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 - - ISLEY_DB_DRIVER=sqlite + - DB_DRIVER=sqlite volumes: - isley-db:/app/data - isley-uploads:/app/uploads @@ -247,7 +247,7 @@ DB_NAME=isleydb For SQLite: ```bash -ISLEY_DB_DRIVER=sqlite +DB_DRIVER=sqlite ``` --- diff --git a/VERSION b/VERSION index d7d9957..964f548 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.19 \ No newline at end of file +0.1.20 \ No newline at end of file diff --git a/handlers/plant.go b/handlers/plant.go index 460fb3f..34457d5 100644 --- a/handlers/plant.go +++ b/handlers/plant.go @@ -974,8 +974,13 @@ func UpdatePlant(c *gin.Context) { input.StrainID = &strainID // Set the created strain ID } + isClone := 0 + if input.IsClone { + isClone = 1 + } + //Update the plant - _, err = db.Exec("UPDATE plant SET name = $1, description = $2, zone_id = $3, strain_id = $4, clone = $5, start_dt = $6, harvest_weight = $7 WHERE id = $8", input.PlantName, input.PlantDescription, input.ZoneID, input.StrainID, input.IsClone, input.StartDT, input.HarvestWeight, input.PlantID) + _, err = db.Exec("UPDATE plant SET name = $1, description = $2, zone_id = $3, strain_id = $4, clone = $5, start_dt = $6, harvest_weight = $7 WHERE id = $8", input.PlantName, input.PlantDescription, input.ZoneID, input.StrainID, isClone, input.StartDT, input.HarvestWeight, input.PlantID) if err != nil { fieldLogger.WithError(err).Error("Failed to update plant") return diff --git a/handlers/sensor_data.go b/handlers/sensor_data.go index 602a293..513bb08 100644 --- a/handlers/sensor_data.go +++ b/handlers/sensor_data.go @@ -51,7 +51,7 @@ func ChartHandler(c *gin.Context) { cached, found := sensorDataCache[cacheKey] sdCacheMutex.Unlock() - if found && time.Since(cached.timestamp) < time.Duration(config.PollingInterval)*time.Second { + if found && time.Since(cached.timestamp) < time.Duration(config.PollingInterval/10)*time.Second { sensorLogger.Info("Serving data from cache") c.JSON(http.StatusOK, cached.data) return diff --git a/handlers/sensors.go b/handlers/sensors.go index 749ffbc..f099a68 100644 --- a/handlers/sensors.go +++ b/handlers/sensors.go @@ -392,7 +392,7 @@ func GetGroupedSensorsWithLatestReading() map[string]map[string][]map[string]int defer cacheMutex.Unlock() // Check if the cache is still valid - if time.Since(cacheLastUpdatedTime) < time.Duration(config.PollingInterval)*time.Second { + if time.Since(cacheLastUpdatedTime) < time.Duration(config.PollingInterval/10)*time.Second { return sensorCache } From e709fee586fc79b210d7cebebb1299a71de5ecc5 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Fri, 4 Apr 2025 19:29:14 -0400 Subject: [PATCH 39/53] Updates for Version 0.1.21 (#39) * Bump modernc.org/sqlite from 1.23.1 to 1.37.0 Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.23.1 to 1.37.0. - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.23.1...v1.37.0) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-version: 1.37.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Fixes for Postgres conversion Implementing testing Update environment variables --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- README.md | 65 +++++++------- VERSION | 2 +- docker-compose.migration.yml | 12 +-- docker-compose.postgres.yml | 12 +-- docker-compose.sqlite.yml | 2 +- go.mod | 25 ++---- go.sum | 81 ++++++++--------- handlers/plant.go | 32 +++++-- handlers/settings.go | 4 +- main.go | 13 ++- model/migrate.go | 43 +++++---- model/types/base_models.go | 2 +- tests/integration/common_auth_test.go | 25 ++++++ tests/integration/common_test.go | 118 +++++++++++++++++++++++++ tests/integration/main_flow_test.go | 99 +++++++++++++++++++++ tests/integration/settings_test.go | 120 ++++++++++++++++++++++++++ web/templates/pages/strains.html | 12 ++- 17 files changed, 537 insertions(+), 130 deletions(-) create mode 100644 tests/integration/common_auth_test.go create mode 100644 tests/integration/common_test.go create mode 100644 tests/integration/main_flow_test.go create mode 100644 tests/integration/settings_test.go diff --git a/README.md b/README.md index 74c72bc..2f30c95 100644 --- a/README.md +++ b/README.md @@ -57,32 +57,38 @@ Use the `docker-compose.postgres.yml` file to deploy Isley with a PostgreSQL bac version: '3.8' services: - postgres: - image: postgres:15 - environment: - POSTGRES_USER: isley - POSTGRES_PASSWORD: isley - POSTGRES_DB: isley - volumes: - - postgres-data:/var/lib/postgresql/data - isley: image: dwot/isley:latest ports: - "8080:8080" environment: - ISLEY_PORT=8080 - - DB_DRIVER=postgres - - ISLEY_DB_DSN=postgres://isley:isley@postgres:5432/isley?sslmode=disable - volumes: - - isley-uploads:/app/uploads + - ISLEY_DB_DRIVER=postgres + - ISLEY_DB_HOST=postgres + - ISLEY_DB_PORT=5432 + - ISLEY_DB_USER=isley + - ISLEY_DB_PASSWORD=supersecret + - ISLEY_DB_NAME=isleydb depends_on: - postgres + volumes: + - isley-uploads:/app/uploads + restart: unless-stopped + + postgres: + image: postgres:16 + environment: + - POSTGRES_DB=isleydb + - POSTGRES_USER=isley + - POSTGRES_PASSWORD=supersecret + volumes: + - postgres-data:/var/lib/postgresql/data restart: unless-stopped volumes: postgres-data: isley-uploads: + ``` 2. **Start the container**: @@ -124,17 +130,17 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 - - DB_DRIVER=postgres - - DB_HOST=postgres - - DB_PORT=5432 - - DB_USER=isley - - DB_PASSWORD=supersecret - - DB_NAME=isleydb + - ISLEY_DB_DRIVER=postgres + - ISLEY_DB_HOST=postgres + - ISLEY_DB_PORT=5432 + - ISLEY_DB_USER=isley + - ISLEY_DB_PASSWORD=supersecret + - ISLEY_DB_NAME=isleydb depends_on: - postgres volumes: - - isley-db:/app/data # existing SQLite volume - - isley-uploads:/app/uploads # image uploads + - isley-db:/app/data + - isley-uploads:/app/uploads restart: unless-stopped postgres: @@ -151,6 +157,7 @@ volumes: isley-db: postgres-data: isley-uploads: + ``` After migration, you can switch to `docker-compose.postgres.yml` for your regular production deployment. Be sure to back up your SQLite volume (`isley-db`) before running the migration just in case. @@ -173,7 +180,7 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 - - DB_DRIVER=sqlite + - ISLEY_DB_DRIVER=sqlite volumes: - isley-db:/app/data - isley-uploads:/app/uploads @@ -237,17 +244,17 @@ ISLEY_PORT=8080 Environment variables for Postgres: ```bash -DB_DRIVER=postgres -DB_HOST=postgres -DB_PORT=5432 -DB_USER=isley -DB_PASSWORD=supersecret -DB_NAME=isleydb +ISLEY_DB_DRIVER=postgres +ISLEY_DB_HOST=postgres +ISLEY_DB_PORT=5432 +ISLEY_DB_USER=isley +ISLEY_DB_PASSWORD=supersecret +ISLEY_DB_NAME=isleydb ``` For SQLite: ```bash -DB_DRIVER=sqlite +ISLEY_DB_DRIVER=sqlite ``` --- diff --git a/VERSION b/VERSION index 964f548..6cd3286 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.20 \ No newline at end of file +0.1.21 \ No newline at end of file diff --git a/docker-compose.migration.yml b/docker-compose.migration.yml index 8bed3f6..182fb8c 100644 --- a/docker-compose.migration.yml +++ b/docker-compose.migration.yml @@ -7,12 +7,12 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 - - DB_DRIVER=postgres - - DB_HOST=postgres - - DB_PORT=5432 - - DB_USER=isley - - DB_PASSWORD=supersecret - - DB_NAME=isleydb + - ISLEY_DB_DRIVER=postgres + - ISLEY_DB_HOST=postgres + - ISLEY_DB_PORT=5432 + - ISLEY_DB_USER=isley + - ISLEY_DB_PASSWORD=supersecret + - ISLEY_DB_NAME=isleydb depends_on: - postgres volumes: diff --git a/docker-compose.postgres.yml b/docker-compose.postgres.yml index bd725b8..9761202 100644 --- a/docker-compose.postgres.yml +++ b/docker-compose.postgres.yml @@ -7,12 +7,12 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 - - DB_DRIVER=postgres - - DB_HOST=postgres - - DB_PORT=5432 - - DB_USER=isley - - DB_PASSWORD=supersecret - - DB_NAME=isleydb + - ISLEY_DB_DRIVER=postgres + - ISLEY_DB_HOST=postgres + - ISLEY_DB_PORT=5432 + - ISLEY_DB_USER=isley + - ISLEY_DB_PASSWORD=supersecret + - ISLEY_DB_NAME=isleydb depends_on: - postgres volumes: diff --git a/docker-compose.sqlite.yml b/docker-compose.sqlite.yml index 10a3a1c..14fd4ae 100644 --- a/docker-compose.sqlite.yml +++ b/docker-compose.sqlite.yml @@ -7,7 +7,7 @@ services: - "8080:8080" environment: - ISLEY_PORT=8080 - - DB_DRIVER=sqlite + - ISLEY_DB_DRIVER=sqlite volumes: - isley-db:/app/data - isley-uploads:/app/uploads diff --git a/go.mod b/go.mod index 86c3727..5c1ff59 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module isley go 1.23.0 -toolchain go1.23.7 +toolchain go1.24.1 require ( github.com/fogleman/gg v1.3.0 @@ -17,7 +17,7 @@ require ( golang.org/x/text v0.23.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 - modernc.org/sqlite v1.23.1 + modernc.org/sqlite v1.37.0 ) require ( @@ -40,32 +40,23 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-sqlite3 v1.14.24 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/ncruces/go-strftime v0.1.9 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect go.uber.org/atomic v1.7.0 // indirect golang.org/x/arch v0.8.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.36.0 // indirect - golang.org/x/sync v0.12.0 // indirect + golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect + golang.org/x/net v0.37.0 // indirect golang.org/x/sys v0.31.0 // indirect - golang.org/x/tools v0.24.0 // indirect google.golang.org/protobuf v1.34.2 // indirect - lukechampine.com/uint128 v1.2.0 // indirect - modernc.org/cc/v3 v3.40.0 // indirect - modernc.org/ccgo/v3 v3.16.13 // indirect - modernc.org/libc v1.22.5 // indirect - modernc.org/mathutil v1.5.0 // indirect - modernc.org/memory v1.5.0 // indirect - modernc.org/opt v0.1.3 // indirect - modernc.org/strutil v1.1.3 // indirect - modernc.org/token v1.0.1 // indirect + modernc.org/libc v1.62.1 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.9.1 // indirect ) diff --git a/go.sum b/go.sum index b1a7325..f04655f 100644 --- a/go.sum +++ b/go.sum @@ -64,8 +64,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o= @@ -81,8 +81,6 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= @@ -93,8 +91,6 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM= -github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -106,19 +102,20 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= +github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= +github.com/nicksnyder/go-i18n/v2 v2.5.1 h1:IxtPxYsR9Gp60cGXjfuR/llTqV8aYMsC472zD0D1vHk= +github.com/nicksnyder/go-i18n/v2 v2.5.1/go.mod h1:DrhgsSDZxoAfvVrBVLXoxZn/pN5TXqaDbq7ju94viiQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/nicksnyder/go-i18n/v2 v2.5.1 h1:IxtPxYsR9Gp60cGXjfuR/llTqV8aYMsC472zD0D1vHk= -github.com/nicksnyder/go-i18n/v2 v2.5.1/go.mod h1:DrhgsSDZxoAfvVrBVLXoxZn/pN5TXqaDbq7ju94viiQ= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -154,12 +151,14 @@ golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ= golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= +golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -169,8 +168,8 @@ golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= +golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= +golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= @@ -180,33 +179,29 @@ gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYs gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= -lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw= -modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= -modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw= -modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= -modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE= -modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= -modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= -modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM= -modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= -modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= -modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= -modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY= -modernc.org/tcl v1.15.2/go.mod h1:3+k/ZaEbKrC8ePv8zJWPtBSW0V7Gg9g8rkmhI1Kfs3c= -modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg= -modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY= -modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE= +modernc.org/cc/v4 v4.25.2 h1:T2oH7sZdGvTaie0BRNFbIYsabzCxUQg8nLqCdQ2i0ic= +modernc.org/cc/v4 v4.25.2/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= +modernc.org/ccgo/v4 v4.25.1 h1:TFSzPrAGmDsdnhT9X2UrcPMI3N/mJ9/X9ykKXwLhDsU= +modernc.org/ccgo/v4 v4.25.1/go.mod h1:njjuAYiPflywOOrm3B7kCB444ONP5pAVr8PIEoE0uDw= +modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= +modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/libc v1.62.1 h1:s0+fv5E3FymN8eJVmnk0llBe6rOxCu/DEU+XygRbS8s= +modernc.org/libc v1.62.1/go.mod h1:iXhATfJQLjG3NWy56a6WVU73lWOcdYVxsvwCgoPljuo= +modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= +modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= +modernc.org/memory v1.9.1 h1:V/Z1solwAVmMW1yttq3nDdZPJqV1rM05Ccq6KMSZ34g= +modernc.org/memory v1.9.1/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= +modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= +modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= +modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= +modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= +modernc.org/sqlite v1.37.0 h1:s1TMe7T3Q3ovQiK2Ouz4Jwh7dw4ZDqbebSDTlSJdfjI= +modernc.org/sqlite v1.37.0/go.mod h1:5YiWv+YviqGMuGw4V+PNplcyaJ5v+vQd7TQOgkACoJM= +modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= +modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/handlers/plant.go b/handlers/plant.go index 34457d5..aa7b133 100644 --- a/handlers/plant.go +++ b/handlers/plant.go @@ -115,7 +115,15 @@ func AddPlant(c *gin.Context) { //If decrement seed count, lower seed count on strain by 1, min 0 if input.DecrementSeedCount { - _, err = db.Exec("UPDATE strain SET seed_count = MAX(0, seed_count - 1) WHERE id = $1", *input.StrainID) + var query string + if model.IsPostgres() { + query = "UPDATE strain SET seed_count = GREATEST(0, seed_count - 1) WHERE id = $1" + } else { + query = "UPDATE strain SET seed_count = MAX(0, seed_count - 1) WHERE id = $1" + } + + _, err := db.Exec(query, *input.StrainID) + if err != nil { fieldLogger.WithError(err).Error("Failed to decrement seed count") return @@ -685,7 +693,7 @@ func AddStrainHandler(c *gin.Context) { NewBreeder string `json:"new_breeder"` Indica int `json:"indica"` Sativa int `json:"sativa"` - Autoflower string `json:"autoflower"` + Autoflower bool `json:"autoflower"` SeedCount int `json:"seed_count"` Description string `json:"description"` CycleTime int `json:"cycle_time"` @@ -744,7 +752,14 @@ func AddStrainHandler(c *gin.Context) { INSERT INTO strain (name, breeder_id, indica, sativa, autoflower, seed_count, description, cycle_time, url) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) ` - _, err = db.Exec(stmt, req.Name, breederID, req.Indica, req.Sativa, req.Autoflower, req.SeedCount, req.Description, req.CycleTime, req.Url) + //convert autoflower to int + var autoflowerInt int + if req.Autoflower { + autoflowerInt = 1 + } else { + autoflowerInt = 0 + } + _, err = db.Exec(stmt, req.Name, breederID, req.Indica, req.Sativa, autoflowerInt, req.SeedCount, req.Description, req.CycleTime, req.Url) if err != nil { fieldLogger.WithError(err).Error("Failed to insert strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add strain"}) @@ -809,7 +824,7 @@ func UpdateStrainHandler(c *gin.Context) { NewBreeder string `json:"new_breeder"` Indica int `json:"indica"` Sativa int `json:"sativa"` - Autoflower string `json:"autoflower"` + Autoflower bool `json:"autoflower"` Description string `json:"description"` SeedCount int `json:"seed_count"` CycleTime int `json:"cycle_time"` @@ -870,8 +885,15 @@ func UpdateStrainHandler(c *gin.Context) { SET name = $1, breeder_id = $2, indica = $3, sativa = $4, autoflower = $5, description = $6, seed_count = $7, cycle_time = $8, url = $9 WHERE id = $10 ` + //Convert autoflower to int + var autoflowerInt int + if req.Autoflower { + autoflowerInt = 1 + } else { + autoflowerInt = 0 + } _, err = db.Exec(updateStmt, req.Name, breederID, req.Indica, req.Sativa, - req.Autoflower, req.Description, req.SeedCount, req.CycleTime, req.Url, id) + autoflowerInt, req.Description, req.SeedCount, req.CycleTime, req.Url, id) if err != nil { fieldLogger.WithError(err).Error("Failed to update strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update strain"}) diff --git a/handlers/settings.go b/handlers/settings.go index f0d3729..d4ef483 100644 --- a/handlers/settings.go +++ b/handlers/settings.go @@ -995,7 +995,7 @@ func AddStreamHandler(c *gin.Context) { Name string `json:"stream_name"` URL string `json:"url"` ZoneID string `json:"zone_id"` - Visible string `json:"visible"` + Visible bool `json:"visible"` } if err := c.ShouldBindJSON(&stream); err != nil { fieldLogger.WithError(err).Error("Failed to add stream") @@ -1036,7 +1036,7 @@ func UpdateStreamHandler(c *gin.Context) { Name string `json:"stream_name"` URL string `json:"url"` ZoneID string `json:"zone_id"` - Visible string `json:"visible"` + Visible bool `json:"visible"` } if err := c.ShouldBindJSON(&stream); err != nil { fieldLogger.WithError(err).Error("Failed to update stream") diff --git a/main.go b/main.go index 1747d2e..b309538 100644 --- a/main.go +++ b/main.go @@ -219,6 +219,9 @@ func main() { // Write the favicon data to the response c.Data(200, "image/x-icon", faviconData) }) + r.GET("/health", func(c *gin.Context) { + handleHealth(c) + }) guestMode := false if config.GuestMode == 1 { @@ -263,7 +266,15 @@ func main() { // Start the server logger.Log.Fatal(r.Run(":" + port)) - logger.Log.Info("Server started on port %s", port) + logger.Log.Info("Server started on port", port) +} + +func handleHealth(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "status": "ok", + }) + c.String(http.StatusOK, "Isley is running") + logger.Log.Info("Health check passed") } func handleLogin(c *gin.Context) { diff --git a/model/migrate.go b/model/migrate.go index fd04864..036cdf9 100644 --- a/model/migrate.go +++ b/model/migrate.go @@ -24,7 +24,14 @@ var dbDriver string func InitDB() { var err error - driver := os.Getenv("DB_DRIVER") + driver := os.Getenv("ISLEY_DB_DRIVER") + logger.Log.Info("DB_DRIVER is: ", driver) + + dbFile := os.Getenv("ISLEY_DB_FILE") + logger.Log.Info("DB_FILE is: ", dbFile) + if dbFile == "" { + dbFile = "data/isley.db" + } var dsn string switch driver { @@ -32,11 +39,11 @@ func InitDB() { logger.Log.Info("Using Postgres driver") dsn = fmt.Sprintf( "host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", - os.Getenv("DB_HOST"), - os.Getenv("DB_PORT"), - os.Getenv("DB_USER"), - os.Getenv("DB_PASSWORD"), - os.Getenv("DB_NAME"), + os.Getenv("ISLEY_DB_HOST"), + os.Getenv("ISLEY_DB_PORT"), + os.Getenv("ISLEY_DB_USER"), + os.Getenv("ISLEY_DB_PASSWORD"), + os.Getenv("ISLEY_DB_NAME"), ) case "sqlite", "": logger.Log.Info("Using Sqlite driver") @@ -63,8 +70,8 @@ func InitDB() { logger.Log.WithError(err).Error("Failed to check if Postgres is empty") } else if isEmpty { logger.Log.Info("Postgres database is empty, checking for SQLite migration source") - if _, err := os.Stat("data/isley.db"); err == nil { - err := MigrateSqliteToPostgres("data/isley.db", db) + if _, err := os.Stat(dbFile); err == nil { + err := MigrateSqliteToPostgres(dbFile, db) if err != nil { logger.Log.WithError(err).Error("Failed to migrate from SQLite") } else { @@ -99,11 +106,17 @@ func IsSQLite() bool { } func DbPath() string { - return "data/isley.db?_journal_mode=WAL" + dbPath := os.Getenv("ISLEY_DB_FILE") + logger.Log.Info("DB_FILE is: ", dbPath) + if dbPath == "" { + dbPath = "data/isley.db" + } + //return "data/isley.db?_journal_mode=WAL" + return dbPath + "?_journal_mode=WAL" } func MigrateDB() { - driver := os.Getenv("DB_DRIVER") + driver := os.Getenv("ISLEY_DB_DRIVER") if driver == "" { logger.Log.Info("DB_DRIVER not set, defaulting to sqlite") driver = "sqlite" @@ -119,11 +132,11 @@ func MigrateDB() { case "postgres": dsn = fmt.Sprintf( "host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", - os.Getenv("DB_HOST"), - os.Getenv("DB_PORT"), - os.Getenv("DB_USER"), - os.Getenv("DB_PASSWORD"), - os.Getenv("DB_NAME"), + os.Getenv("ISLEY_DB_HOST"), + os.Getenv("ISLEY_DB_PORT"), + os.Getenv("ISLEY_DB_USER"), + os.Getenv("ISLEY_DB_PASSWORD"), + os.Getenv("ISLEY_DB_NAME"), ) case "sqlite": dsn = DbPath() diff --git a/model/types/base_models.go b/model/types/base_models.go index cfff075..6f22dd5 100644 --- a/model/types/base_models.go +++ b/model/types/base_models.go @@ -181,7 +181,7 @@ type Strain struct { BreederID int `json:"breeder_id"` Indica int `json:"indica"` Sativa int `json:"sativa"` - Autoflower string `json:"autoflower"` + Autoflower bool `json:"autoflower"` Description string `json:"description"` SeedCount int `json:"seed_count"` CycleTime int `json:"cycle_time"` diff --git a/tests/integration/common_auth_test.go b/tests/integration/common_auth_test.go new file mode 100644 index 0000000..d927cc4 --- /dev/null +++ b/tests/integration/common_auth_test.go @@ -0,0 +1,25 @@ +package integration + +import ( + "net/http" + "net/url" + "testing" +) + +func LoginAsAdmin(t *testing.T, password string) { + t.Helper() + + form := url.Values{} + form.Set("username", "admin") + form.Set("password", password) + + resp, err := Client.PostForm(BaseURL+"/login", form) + if err != nil { + t.Fatalf("LoginAsAdmin failed: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusFound { + t.Fatalf("Expected login redirect, got %d", resp.StatusCode) + } +} diff --git a/tests/integration/common_test.go b/tests/integration/common_test.go new file mode 100644 index 0000000..93ad9ca --- /dev/null +++ b/tests/integration/common_test.go @@ -0,0 +1,118 @@ +package integration + +import ( + "net/http" + "net/http/cookiejar" + "net/url" + "os" + "os/exec" + "path/filepath" + "runtime" + "strings" + "testing" + "time" +) + +var ( + appCmd *exec.Cmd + Client *http.Client + BaseURL = "http://localhost:8080" + DBFile string +) + +func TestMain(m *testing.M) { + println(">>> TestMain running") + setupApp() + code := m.Run() + teardownApp() + os.Exit(code) +} + +func setupApp() { + println(">>> setupApp start") + projectRoot, err := filepath.Abs(filepath.Join("..", "..")) + if err != nil { + panic("failed to determine project root: " + err.Error()) + } + + dbDir := filepath.Join(projectRoot, "tmp") + DBFile = filepath.Join(dbDir, "test.db") + + os.MkdirAll(dbDir, 0755) + _ = os.Remove(DBFile) + _ = os.Remove(DBFile + "-shm") + _ = os.Remove(DBFile + "-wal") + + binary := "isley" + if runtime.GOOS == "windows" { + binary += ".exe" + } + binaryPath, _ := filepath.Abs(filepath.Join("..", "..", binary)) + + appCmd = exec.Command(binaryPath) + appCmd.Env = append(os.Environ(), + "ISLEY_DB_DRIVER=sqlite", + "ISLEY_DB_FILE="+DBFile, + "ISLEY_PORT=8080", + ) + appCmd.Dir = filepath.Join("..", "..") + appCmd.Stdout = os.Stdout + appCmd.Stderr = os.Stderr + _ = appCmd.Start() + + waitForAppReady() + + jar, _ := cookiejar.New(nil) + Client = &http.Client{ + Jar: jar, + CheckRedirect: func(req *http.Request, via []*http.Request) error { + return http.ErrUseLastResponse + }, + } + println(">>> setupApp end") +} + +func teardownApp() { + if appCmd != nil && appCmd.Process != nil { + _ = appCmd.Process.Kill() + _, _ = appCmd.Process.Wait() + } + _ = os.Remove(DBFile) + _ = os.Remove(DBFile + "-shm") + _ = os.Remove(DBFile + "-wal") + _ = os.RemoveAll(filepath.Join("..", "..", "tmp")) +} + +func waitForAppReady() { + deadline := time.Now().Add(10 * time.Second) + for time.Now().Before(deadline) { + resp, err := http.Get(BaseURL + "/health") + if err == nil && resp.StatusCode == http.StatusOK { + resp.Body.Close() + return + } + time.Sleep(300 * time.Millisecond) + } + panic("app not ready after timeout") +} + +func PostFormExpectRedirect(t *testing.T, path, expectedLocation string, form url.Values) { + t.Helper() + + req, err := http.NewRequest("POST", BaseURL+path, strings.NewReader(form.Encode())) + if err != nil { + t.Fatalf("Failed to build POST request: %v", err) + } + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("POST %s failed: %v", path, err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusFound || resp.Header.Get("Location") != expectedLocation { + t.Fatalf("Expected redirect to %s from %s, got %d and Location %s", + expectedLocation, path, resp.StatusCode, resp.Header.Get("Location")) + } +} diff --git a/tests/integration/main_flow_test.go b/tests/integration/main_flow_test.go new file mode 100644 index 0000000..b10ea05 --- /dev/null +++ b/tests/integration/main_flow_test.go @@ -0,0 +1,99 @@ +package integration + +import ( + "net/http" + "net/url" + "testing" +) + +func TestMainFlow(t *testing.T) { + + t.Run("test denied protected route", testDeniedProtectedRoute) + t.Run("login and redirect to change-password", testInitLoginFlow) + t.Run("access protected route after password change", testAccessProtectedRoute) + t.Run("logout", testLogout) + t.Run("access denied route after logout", testDeniedProtectedRoute) + t.Run("re-login with new password", testLoginWithNewPassword) + t.Run("access protected route after re-login", testAccessProtectedRoute) + t.Run("logout2", testLogout) + /* + Additional Tests to be Designed and Implemented: + Login & Perms + 1. Test invalid login credentials + + Settings Page + 1. Test Guest Mode + 2. Test AC Infinity Sensor Setup + 3. Test EcoWitt Sensor Setup + 4. Zones CRUD + 5. Activities CRUD + 6. Metrics CRUD + 7. Breeders CRUD + + Strains Page + Add Strain + Edit Strain + Delete Strain + + Sensors Page + Plants Page + Plant Page + */ +} + +func testInitLoginFlow(t *testing.T) { + t.Run("login", func(t *testing.T) { + LoginAsAdmin(t, "isley") + }) + + t.Run("change password", func(t *testing.T) { + form := url.Values{} + form.Set("new_password", "newpass123") + form.Set("confirm_password", "newpass123") + + PostFormExpectRedirect(t, "/change-password", "/", form) + }) +} + +func testAccessProtectedRoute(t *testing.T) { + resp, err := Client.Get(BaseURL + "/settings") + if err != nil { + t.Fatalf("Failed to GET /: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK on protected / route, got %d", resp.StatusCode) + } +} + +func testDeniedProtectedRoute(t *testing.T) { + resp, err := Client.Get(BaseURL + "/settings") + if err != nil { + t.Fatalf("Failed to GET /: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusFound { + t.Fatalf("Expected 302 Found on protected / route, got %d", resp.StatusCode) + } +} + +func testLogout(t *testing.T) { + resp, err := Client.Get(BaseURL + "/logout") + if err != nil { + t.Fatalf("Logout request failed: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusFound || resp.Header.Get("Location") != "/login" { + t.Fatalf("Expected redirect to /login after logout, got status %d and Location %s", + resp.StatusCode, resp.Header.Get("Location")) + } +} + +func testLoginWithNewPassword(t *testing.T) { + t.Run("login", func(t *testing.T) { + LoginAsAdmin(t, "newpass123") + }) +} diff --git a/tests/integration/settings_test.go b/tests/integration/settings_test.go new file mode 100644 index 0000000..a7f05cf --- /dev/null +++ b/tests/integration/settings_test.go @@ -0,0 +1,120 @@ +package integration + +import ( + "bytes" + "encoding/json" + "io" + "net/http" + "strings" + "testing" +) + +func TestSettingsFlow(t *testing.T) { + + t.Run("test add stream", testAddStream) + t.Run("test stream appears in settings", testStreamAppearsInSettings) +} + +func createTestZone(t *testing.T, zoneName string) string { + payload := map[string]any{ + "zone_name": zoneName, + } + data, _ := json.Marshal(payload) + + req, err := http.NewRequest("POST", BaseURL+"/zones", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build zone POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send zone POST request: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /zones, got %d", resp.StatusCode) + } + + var result struct { + ID string `json:"id"` // or whatever your handler returns + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /zones: %v", err) + } + + if result.ID == "" { + t.Fatalf("Zone ID missing from response") + } + + t.Logf("Created test zone: %s", result.ID) + return result.ID +} + +func testAddStream(t *testing.T) { + // Ensure we're logged in with an admin session + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + + payload := map[string]any{ + "stream_name": "Test Stream 1", + "zone_id": "zone-abc", + "url": "http://example.com/stream.m3u8", + "visible": true, + } + + data, err := json.Marshal(payload) + if err != nil { + t.Fatalf("Failed to marshal JSON: %v", err) + } + + req, err := http.NewRequest("POST", BaseURL+"/streams", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send request: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201, got %d", resp.StatusCode) + } + + // Optionally decode response JSON: + var result map[string]any + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to decode response JSON: %v", err) + } + + t.Logf("Stream added successfully: %+v", result) +} + +func testStreamAppearsInSettings(t *testing.T) { + resp, err := Client.Get(BaseURL + "/settings") + if err != nil { + t.Fatalf("Failed to GET /settings: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /settings, got %d", resp.StatusCode) + } + + body, err := io.ReadAll(resp.Body) + if err != nil { + t.Fatalf("Failed to read response body: %v", err) + } + html := string(body) + + // Look for a known unique piece of the stream we added + if !strings.Contains(html, "Test Stream 1") { + t.Errorf("Expected stream name 'Test Stream 1' to appear in /settings page HTML") + } + if !strings.Contains(html, "http://example.com/stream.m3u8") { + t.Errorf("Expected stream URL to appear in /settings page HTML") + } +} diff --git a/web/templates/pages/strains.html b/web/templates/pages/strains.html index 523d9f1..3d110ac 100644 --- a/web/templates/pages/strains.html +++ b/web/templates/pages/strains.html @@ -276,7 +276,7 @@ new_breeder: breederSelect.value === "new" ? document.getElementById("newBreederName").value : null, indica: parseInt(indicaSativaSlider.value, 10), sativa: 100 - parseInt(indicaSativaSlider.value, 10), - autoflower: document.getElementById("autoflower").value, + autoflower: document.getElementById("autoflower").value === "true", seed_count: parseInt(document.getElementById("seedCount").value, 10), description: document.getElementById("strainDescription").value, cycle_time: parseInt(cycleTime.value, 10), @@ -346,7 +346,7 @@ new_breeder: editBreederSelect.value === "new" ? document.getElementById("editNewBreederName").value : null, indica: parseInt(editIndicaSativaSlider.value, 10), sativa: 100 - parseInt(editIndicaSativaSlider.value, 10), - autoflower: document.getElementById("editAutoflower").value, + autoflower: document.getElementById("editAutoflower").value === "true", seed_count: parseInt(document.getElementById("editSeedCount").value, 10), description: document.getElementById("editStrainDescription").value, cycle_time: parseInt(editCycleTime.value, 10), @@ -468,7 +468,8 @@ ${strain.breeder || "N/A"} ${strain.indica || 0} / ${strain.sativa || 0} - ${strain.autoflower === "true" ? "{{ .lcl.yes }}" : "{{ .lcl.no }}"} + + ${strain.autoflower === "true" || strain.autoflower === true || strain.autoflower === 1 ? "{{ .lcl.yes }}" : "{{ .lcl.no }}"} ${strain.seed_count || 0} {{ .lcl.edit_strain }} document.getElementById("editIndicaSativaSlider").value = strainData.indica; editIndicaLabel.textContent = `Indica: ${strainData.indica}%`; editSativaLabel.textContent = `Sativa: ${100 - strainData.indica}%`; + if (strainData.autoflower === "true" || strainData.autoflower === true || strainData.autoflower === 1) { + document.getElementById("editAutoflower").value = "true"; + } else { + document.getElementById("editAutoflower").value = "false"; + } document.getElementById("editAutoflower").value = strainData.autoflower; document.getElementById("editSeedCount").value = strainData.seed_count; document.getElementById("editStrainDescription").value = strainData.description; From 05e038285ec1e48a9ff1839bdc0e9e8619a171a9 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Mon, 7 Apr 2025 17:27:06 -0400 Subject: [PATCH 40/53] More tests (#40) Updated Strain library --- VERSION | 2 +- go.mod | 4 + go.sum | 8 + handlers/plant.go | 104 +- handlers/plant_image.go | 13 +- handlers/settings.go | 59 +- main.go | 20 + .../006_strain_desc.postgres.down.sql | 1 + .../postgres/006_strain_desc.postgres.up.sql | 1 + .../sqlite/006_strain_desc.sqlite.down.sql | 1 + .../sqlite/006_strain_desc.sqlite.up.sql | 1 + model/types/base_models.go | 23 +- routes/routes.go | 16 + tests/integration/common_test.go | 146 +- tests/integration/main_flow_test.go | 1179 ++++++++++++++++- tests/integration/settings_test.go | 120 -- utils/i18n.go | 3 + utils/locales/de.yaml | 6 +- utils/locales/en.yaml | 3 + utils/locales/es.yaml | 6 +- utils/locales/fr.yaml | 3 + web/templates/pages/strain.html | 300 +++++ web/templates/pages/strains.html | 38 +- 23 files changed, 1831 insertions(+), 226 deletions(-) create mode 100644 model/migrations/postgres/006_strain_desc.postgres.down.sql create mode 100644 model/migrations/postgres/006_strain_desc.postgres.up.sql create mode 100644 model/migrations/sqlite/006_strain_desc.sqlite.down.sql create mode 100644 model/migrations/sqlite/006_strain_desc.sqlite.up.sql delete mode 100644 tests/integration/settings_test.go create mode 100644 web/templates/pages/strain.html diff --git a/VERSION b/VERSION index 6cd3286..915812e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.21 \ No newline at end of file +0.1.22 \ No newline at end of file diff --git a/go.mod b/go.mod index 5c1ff59..b83d342 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,9 @@ require ( github.com/gin-gonic/gin v1.10.0 github.com/golang-migrate/migrate/v4 v4.18.2 github.com/lib/pq v1.10.9 + github.com/microcosm-cc/bluemonday v1.0.27 github.com/nicksnyder/go-i18n/v2 v2.5.1 + github.com/russross/blackfriday/v2 v2.1.0 github.com/sirupsen/logrus v1.9.3 golang.org/x/crypto v0.36.0 golang.org/x/image v0.25.0 @@ -21,6 +23,7 @@ require ( ) require ( + github.com/aymerick/douceur v0.2.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect github.com/bytedance/sonic/loader v0.1.1 // indirect github.com/cloudwego/base64x v0.1.4 // indirect @@ -35,6 +38,7 @@ require ( github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/context v1.1.2 // indirect + github.com/gorilla/css v1.0.1 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/gorilla/sessions v1.2.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect diff --git a/go.sum b/go.sum index f04655f..3d09e17 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0 github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= +github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= @@ -70,6 +72,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o= github.com/gorilla/context v1.1.2/go.mod h1:KDPwT9i/MeWHiLl90fuTgrt4/wPcv75vFAZLaOOcbxM= +github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8= +github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= @@ -91,6 +95,8 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk= +github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -118,6 +124,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/handlers/plant.go b/handlers/plant.go index aa7b133..9881adf 100644 --- a/handlers/plant.go +++ b/handlers/plant.go @@ -136,7 +136,7 @@ func AddPlant(c *gin.Context) { return } - c.JSON(http.StatusOK, gin.H{"message": "Plant added successfully"}) + c.JSON(http.StatusOK, gin.H{"id": plantID, "message": "Plant added successfully"}) } func GetStrains() []types.Strain { @@ -148,7 +148,7 @@ func GetStrains() []types.Strain { return nil } - rows, err := db.Query("SELECT s.id, s.name, b.id as breeder_id, b.name as breeder, s.indica, s.sativa, s.autoflower, s.description, s.seed_count FROM strain s left outer join breeder b on s.breeder_id = b.id") + rows, err := db.Query("SELECT s.id, s.name, b.id as breeder_id, b.name as breeder, s.indica, s.sativa, s.autoflower, s.description, coalesce(s.short_desc, ''), s.seed_count FROM strain s left outer join breeder b on s.breeder_id = b.id ORDER BY s.name ASC") if err != nil { fieldLogger.WithError(err).Error("Failed to query strains") return nil @@ -157,7 +157,7 @@ func GetStrains() []types.Strain { var strains []types.Strain for rows.Next() { var strain types.Strain - err = rows.Scan(&strain.ID, &strain.Name, &strain.BreederID, &strain.Breeder, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.Description, &strain.SeedCount) + err = rows.Scan(&strain.ID, &strain.Name, &strain.BreederID, &strain.Breeder, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.Description, &strain.ShortDescription, &strain.SeedCount) if err != nil { fieldLogger.WithError(err).Error("Failed to scan strain") return nil @@ -688,16 +688,17 @@ func AddStrainHandler(c *gin.Context) { fieldLogger := logger.Log.WithField("func", "AddStrainHandler") // Parse the incoming JSON request var req struct { - Name string `json:"name"` - BreederID *int `json:"breeder_id"` // Nullable for new breeders - NewBreeder string `json:"new_breeder"` - Indica int `json:"indica"` - Sativa int `json:"sativa"` - Autoflower bool `json:"autoflower"` - SeedCount int `json:"seed_count"` - Description string `json:"description"` - CycleTime int `json:"cycle_time"` - Url string `json:"url"` + Name string `json:"name"` + BreederID *int `json:"breeder_id"` // Nullable for new breeders + NewBreeder string `json:"new_breeder"` + Indica int `json:"indica"` + Sativa int `json:"sativa"` + Autoflower bool `json:"autoflower"` + SeedCount int `json:"seed_count"` + Description string `json:"description"` + ShortDescription string `json:"short_desc"` + CycleTime int `json:"cycle_time"` + Url string `json:"url"` } if err := c.ShouldBindJSON(&req); err != nil { @@ -749,8 +750,8 @@ func AddStrainHandler(c *gin.Context) { // Insert the new strain into the database stmt := ` - INSERT INTO strain (name, breeder_id, indica, sativa, autoflower, seed_count, description, cycle_time, url) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + INSERT INTO strain (name, breeder_id, indica, sativa, autoflower, seed_count, description, cycle_time, url, short_desc) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING id ` //convert autoflower to int var autoflowerInt int @@ -759,7 +760,8 @@ func AddStrainHandler(c *gin.Context) { } else { autoflowerInt = 0 } - _, err = db.Exec(stmt, req.Name, breederID, req.Indica, req.Sativa, autoflowerInt, req.SeedCount, req.Description, req.CycleTime, req.Url) + var id int + err = db.QueryRow(stmt, req.Name, breederID, req.Indica, req.Sativa, autoflowerInt, req.SeedCount, req.Description, req.CycleTime, req.Url, req.ShortDescription).Scan(&id) if err != nil { fieldLogger.WithError(err).Error("Failed to insert strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to add strain"}) @@ -769,7 +771,7 @@ func AddStrainHandler(c *gin.Context) { config.Strains = GetStrains() // Respond with success - c.JSON(http.StatusCreated, gin.H{"message": "Strain added successfully"}) + c.JSON(http.StatusCreated, gin.H{"id": id, "message": "Strain added successfully"}) } func GetStrainHandler(c *gin.Context) { @@ -791,11 +793,11 @@ func GetStrainHandler(c *gin.Context) { var strain types.Strain err = db.QueryRow(` - SELECT s.id, s.name, b.name as breeder, s.indica, s.sativa, s.autoflower, s.description, s.seed_count + SELECT s.id, s.name, b.name as breeder, s.indica, s.sativa, s.autoflower, s.description, coalesce(s.short_desc, ''), s.seed_count FROM strain s LEFT OUTER JOIN breeder b on s.breeder_id = b.id WHERE id = $1`, id).Scan( &strain.ID, &strain.Name, &strain.Breeder, &strain.Indica, &strain.Sativa, - &strain.Autoflower, &strain.Description, &strain.SeedCount) + &strain.Autoflower, &strain.Description, &strain.ShortDescription, &strain.SeedCount) if err != nil { if err == sql.ErrNoRows { c.JSON(http.StatusNotFound, gin.H{"error": "Strain not found"}) @@ -819,16 +821,17 @@ func UpdateStrainHandler(c *gin.Context) { } var req struct { - Name string `json:"name"` - BreederID *int `json:"breeder_id"` // Nullable for new breeders - NewBreeder string `json:"new_breeder"` - Indica int `json:"indica"` - Sativa int `json:"sativa"` - Autoflower bool `json:"autoflower"` - Description string `json:"description"` - SeedCount int `json:"seed_count"` - CycleTime int `json:"cycle_time"` - Url string `json:"url"` + Name string `json:"name"` + BreederID *int `json:"breeder_id"` // Nullable for new breeders + NewBreeder string `json:"new_breeder"` + Indica int `json:"indica"` + Sativa int `json:"sativa"` + Autoflower bool `json:"autoflower"` + Description string `json:"description"` + ShortDescription string `json:"short_desc"` + SeedCount int `json:"seed_count"` + CycleTime int `json:"cycle_time"` + Url string `json:"url"` } if err := c.ShouldBindJSON(&req); err != nil { @@ -882,8 +885,8 @@ func UpdateStrainHandler(c *gin.Context) { // Update the strain in the database updateStmt := ` UPDATE strain - SET name = $1, breeder_id = $2, indica = $3, sativa = $4, autoflower = $5, description = $6, seed_count = $7, cycle_time = $8, url = $9 - WHERE id = $10 + SET name = $1, breeder_id = $2, indica = $3, sativa = $4, autoflower = $5, description = $6, seed_count = $7, cycle_time = $8, url = $9, short_desc = $10 + WHERE id = $11 ` //Convert autoflower to int var autoflowerInt int @@ -893,7 +896,7 @@ func UpdateStrainHandler(c *gin.Context) { autoflowerInt = 0 } _, err = db.Exec(updateStmt, req.Name, breederID, req.Indica, req.Sativa, - autoflowerInt, req.Description, req.SeedCount, req.CycleTime, req.Url, id) + autoflowerInt, req.Description, req.SeedCount, req.CycleTime, req.Url, req.ShortDescription, id) if err != nil { fieldLogger.WithError(err).Error("Failed to update strain") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update strain"}) @@ -1320,17 +1323,19 @@ func OutOfStockStrainsHandler(c *gin.Context) { func getStrainsBySeedCount(inStock bool) ([]types.Strain, error) { fieldLogger := logger.Log.WithField("func", "getStrainsBySeedCount") query := ` - SELECT s.id, s.name, b.name AS breeder, b.id as breeder_id, s.indica, s.sativa, s.autoflower, s.seed_count, s.description, coalesce(s.cycle_time, 0), coalesce(s.url, '') + SELECT s.id, s.name, b.name AS breeder, b.id as breeder_id, s.indica, s.sativa, s.autoflower, s.seed_count, s.description, coalesce(s.short_desc, ''), coalesce(s.cycle_time, 0), coalesce(s.url, '') FROM strain s JOIN breeder b ON s.breeder_id = b.id WHERE s.seed_count > 0 + ORDER BY s.name ASC ` if !inStock { query = ` - SELECT s.id, s.name, b.name AS breeder, b.id as breeder_id, s.indica, s.sativa, s.autoflower, s.seed_count, s.description, coalesce(s.cycle_time, 0), coalesce(s.url, '') + SELECT s.id, s.name, b.name AS breeder, b.id as breeder_id, s.indica, s.sativa, s.autoflower, s.seed_count, s.description, coalesce(s.short_desc, ''), coalesce(s.cycle_time, 0), coalesce(s.url, '') FROM strain s JOIN breeder b ON s.breeder_id = b.id WHERE s.seed_count = 0 + ORDER BY s.name ASC ` } @@ -1350,7 +1355,7 @@ func getStrainsBySeedCount(inStock bool) ([]types.Strain, error) { var strains []types.Strain for rows.Next() { var strain types.Strain - if err := rows.Scan(&strain.ID, &strain.Name, &strain.Breeder, &strain.BreederID, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.SeedCount, &strain.Description, &strain.CycleTime, &strain.Url); err != nil { + if err := rows.Scan(&strain.ID, &strain.Name, &strain.Breeder, &strain.BreederID, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.SeedCount, &strain.Description, &strain.ShortDescription, &strain.CycleTime, &strain.Url); err != nil { fieldLogger.WithError(err).Error("Failed to scan strain") return nil, err } @@ -1412,3 +1417,32 @@ func PlantsByStrainHandler(context *gin.Context) { fieldLogger.WithField("plantCount", len(plants)).Info("Plants fetched successfully") context.JSON(http.StatusOK, plants) } + +func GetStrain(id string) types.Strain { + fieldLogger := logger.Log.WithField("func", "GetStrain") + db, err := model.GetDB() + if err != nil { + fieldLogger.WithError(err).Error("Failed to open database") + return types.Strain{} + } + + var strain types.Strain + //join in breeder name + err = db.QueryRow(` + SELECT s.id, s.name, coalesce(s.short_desc, ''), b.name AS breeder, b.id as breeder_id, s.indica, s.sativa, s.autoflower, s.seed_count, s.description, coalesce(s.cycle_time, 0), coalesce(s.url, '') + FROM strain s + JOIN breeder b ON s.breeder_id = b.id + WHERE s.id = $1`, id).Scan( + &strain.ID, &strain.Name, &strain.ShortDescription, &strain.Breeder, &strain.BreederID, &strain.Indica, &strain.Sativa, &strain.Autoflower, &strain.SeedCount, &strain.Description, &strain.CycleTime, &strain.Url) + if err != nil { + if err == sql.ErrNoRows { + fieldLogger.Error("Strain not found") + } else { + fieldLogger.WithError(err).Error("Failed to fetch strain") + } + return types.Strain{} + } + //strain.Description = html.EscapeString(strain.Description) + + return strain +} diff --git a/handlers/plant_image.go b/handlers/plant_image.go index 11f575c..2eaedf1 100644 --- a/handlers/plant_image.go +++ b/handlers/plant_image.go @@ -49,7 +49,7 @@ func UploadPlantImages(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"error": "Database error"}) return } - + imageIDs := make([]int, 0) // Process each uploaded file for index, fileHeader := range files { fileLogger := logger.Log.WithField("fileIndex", index) @@ -107,19 +107,22 @@ func UploadPlantImages(c *gin.Context) { } // Save image metadata to the database - _, err = db.Exec(` + + var imageID int + err = db.QueryRow(` INSERT INTO plant_images (plant_id, image_path, image_description, image_order, image_date) - VALUES ($1, $2, $3, 100, $4)`, - plantID, savePath, description, imageDate) + VALUES ($1, $2, $3, 100, $4) returning id`, + plantID, savePath, description, imageDate).Scan(&imageID) if err != nil { fileLogger.WithError(err).Error("Failed to save image metadata to database") continue } + imageIDs = append(imageIDs, imageID) fileLogger.Info("Successfully processed and saved image") } - c.JSON(http.StatusOK, gin.H{"message": "Images uploaded successfully"}) + c.JSON(http.StatusOK, gin.H{"ids": imageIDs, "message": "Images uploaded successfully"}) } func DeletePlantImage(c *gin.Context) { diff --git a/handlers/settings.go b/handlers/settings.go index d4ef483..92e189b 100644 --- a/handlers/settings.go +++ b/handlers/settings.go @@ -528,6 +528,28 @@ func DeleteZoneHandler(c *gin.Context) { DeleteSensorByID(fmt.Sprintf("%d", sensorId)) } + // Build a list of streams associated with this zone to delete first + rows, err = db.Query("SELECT id FROM streams WHERE zone_id = $1", id) + if err != nil { + fieldLogger.WithError(err).Error("Failed to delete streams") + return + } + defer rows.Close() + + streamList := []int{} + for rows.Next() { + var streamId int + err = rows.Scan(&streamId) + if err != nil { + fieldLogger.WithError(err).Error("Failed to delete stream") + continue + } + streamList = append(streamList, streamId) + } + for _, streamId := range streamList { + DeleteStreamByID(fmt.Sprintf("%d", streamId)) + } + // Delete zone from database _, err = db.Exec("DELETE FROM zones WHERE id = $1", id) if err != nil { @@ -647,8 +669,13 @@ func GetSetting(name string) (string, error) { var value string err = db.QueryRow("SELECT value FROM settings WHERE name = $1", name).Scan(&value) if err != nil { - fieldLogger.WithError(err).Error("Failed to read setting") - return "", err + if err.Error() == "sql: no rows in result set" { + fieldLogger.WithField("name", name).Warn("Setting not found") + return "", nil + } else { + fieldLogger.WithError(err).Error("Failed to read setting") + return "", err + } } return value, nil @@ -1035,7 +1062,7 @@ func UpdateStreamHandler(c *gin.Context) { var stream struct { Name string `json:"stream_name"` URL string `json:"url"` - ZoneID string `json:"zone_id"` + ZoneID int `json:"zone_id"` Visible bool `json:"visible"` } if err := c.ShouldBindJSON(&stream); err != nil { @@ -1051,8 +1078,16 @@ func UpdateStreamHandler(c *gin.Context) { return } + //convert visible to int + var visibleInt int + if stream.Visible { + visibleInt = 1 + } else { + visibleInt = 0 + } + // Update stream in database - _, err = db.Exec("UPDATE streams SET name = $1, url = $2, zone_id = $3, visible = $4 WHERE id = $5", stream.Name, stream.URL, stream.ZoneID, stream.Visible, id) + _, err = db.Exec("UPDATE streams SET name = $1, url = $2, zone_id = $3, visible = $4 WHERE id = $5", stream.Name, stream.URL, stream.ZoneID, visibleInt, id) if err != nil { fieldLogger.WithError(err).Error("Failed to update stream") c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update stream"}) @@ -1123,3 +1158,19 @@ func GetStreamsByZoneHandler(c *gin.Context) { c.JSON(http.StatusOK, streamsByZone) } + +func DeleteStreamByID(id string) error { + fieldLogger := logger.Log.WithField("func", "DeleteStreamByID") + db, err := model.GetDB() + if err != nil { + fieldLogger.WithError(err).Error("Error opening database") + return err + } + + _, err = db.Exec("DELETE FROM streams WHERE id = $1", id) + if err != nil { + fieldLogger.WithError(err).Error("Error deleting sensor") + return err + } + return nil +} diff --git a/main.go b/main.go index b309538..af7f140 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,8 @@ import ( "github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions/cookie" "github.com/gin-gonic/gin" + "github.com/microcosm-cc/bluemonday" + "github.com/russross/blackfriday/v2" "github.com/sirupsen/logrus" "html/template" "isley/config" @@ -151,6 +153,24 @@ func main() { "now": func() time.Time { return time.Now() }, + "markdownify": func(t string) template.HTML { + // Render Markdown to HTML + unsafe := blackfriday.Run([]byte(t)) + + // Sanitize the HTML + safe := bluemonday.UGCPolicy().SanitizeBytes(unsafe) + + // Return as template.HTML so it's not escaped again + return template.HTML(safe) + }, + "jsonify": func(v interface{}) template.HTML { + a, err := json.Marshal(v) + if err != nil { + logger.Log.WithError(err).Error("Error marshalling JSON") + return "" + } + return template.HTML(a) + }, } // Attach FuncMap and ParseFS diff --git a/model/migrations/postgres/006_strain_desc.postgres.down.sql b/model/migrations/postgres/006_strain_desc.postgres.down.sql new file mode 100644 index 0000000..6741542 --- /dev/null +++ b/model/migrations/postgres/006_strain_desc.postgres.down.sql @@ -0,0 +1 @@ +ALTER TABLE strain DROP COLUMN short_desc; \ No newline at end of file diff --git a/model/migrations/postgres/006_strain_desc.postgres.up.sql b/model/migrations/postgres/006_strain_desc.postgres.up.sql new file mode 100644 index 0000000..049d336 --- /dev/null +++ b/model/migrations/postgres/006_strain_desc.postgres.up.sql @@ -0,0 +1 @@ +ALTER TABLE strain ADD COLUMN short_desc TEXT; diff --git a/model/migrations/sqlite/006_strain_desc.sqlite.down.sql b/model/migrations/sqlite/006_strain_desc.sqlite.down.sql new file mode 100644 index 0000000..6741542 --- /dev/null +++ b/model/migrations/sqlite/006_strain_desc.sqlite.down.sql @@ -0,0 +1 @@ +ALTER TABLE strain DROP COLUMN short_desc; \ No newline at end of file diff --git a/model/migrations/sqlite/006_strain_desc.sqlite.up.sql b/model/migrations/sqlite/006_strain_desc.sqlite.up.sql new file mode 100644 index 0000000..049d336 --- /dev/null +++ b/model/migrations/sqlite/006_strain_desc.sqlite.up.sql @@ -0,0 +1 @@ +ALTER TABLE strain ADD COLUMN short_desc TEXT; diff --git a/model/types/base_models.go b/model/types/base_models.go index 6f22dd5..d41c1ce 100644 --- a/model/types/base_models.go +++ b/model/types/base_models.go @@ -175,17 +175,18 @@ type Status struct { } type Strain struct { - ID int `json:"id"` - Name string `json:"name"` - Breeder string `json:"breeder"` - BreederID int `json:"breeder_id"` - Indica int `json:"indica"` - Sativa int `json:"sativa"` - Autoflower bool `json:"autoflower"` - Description string `json:"description"` - SeedCount int `json:"seed_count"` - CycleTime int `json:"cycle_time"` - Url string `json:"url"` + ID int `json:"id"` + Name string `json:"name"` + Breeder string `json:"breeder"` + BreederID int `json:"breeder_id"` + Indica int `json:"indica"` + Sativa int `json:"sativa"` + Autoflower bool `json:"autoflower"` + Description string `json:"description"` + SeedCount int `json:"seed_count"` + CycleTime int `json:"cycle_time"` + Url string `json:"url"` + ShortDescription string `json:"short_desc"` } type Zone struct { diff --git a/routes/routes.go b/routes/routes.go index ef0e282..18aad3a 100644 --- a/routes/routes.go +++ b/routes/routes.go @@ -98,6 +98,22 @@ func AddBasicRoutes(r *gin.RouterGroup, version string) { "currentLanguage": lang, }) }) + + r.GET("/strain/:id", func(c *gin.Context) { + lang := utils.GetLanguage(c) + translations := utils.TranslationService.GetTranslations(lang) + c.HTML(http.StatusOK, "views/strain.html", gin.H{ + "title": "Strain Details", + "version": version, + "strain": handlers.GetStrain(c.Param("id")), + "breeders": config.Breeders, + "loggedIn": sessions.Default(c).Get("logged_in"), + "lcl": translations, + "languages": utils.AvailableLanguages, + "currentLanguage": lang, + }) + }) + r.GET("/listFonts", utils.ListFontsHandler) r.GET("/listLogos", utils.ListLogosHandler) diff --git a/tests/integration/common_test.go b/tests/integration/common_test.go index 93ad9ca..fc2ce27 100644 --- a/tests/integration/common_test.go +++ b/tests/integration/common_test.go @@ -1,6 +1,9 @@ package integration import ( + "database/sql" + "fmt" + _ "github.com/lib/pq" // Make sure this is in your imports "net/http" "net/http/cookiejar" "net/url" @@ -14,14 +17,18 @@ import ( ) var ( - appCmd *exec.Cmd - Client *http.Client - BaseURL = "http://localhost:8080" - DBFile string + appCmd *exec.Cmd + Client *http.Client + BaseURL = "http://localhost:8080" + DBFile string + testDBType string ) func TestMain(m *testing.M) { - println(">>> TestMain running") + testDBType = os.Getenv("ISLEY_TEST_DB") + if testDBType == "" { + testDBType = "sqlite" + } setupApp() code := m.Run() teardownApp() @@ -29,36 +36,31 @@ func TestMain(m *testing.M) { } func setupApp() { - println(">>> setupApp start") - projectRoot, err := filepath.Abs(filepath.Join("..", "..")) - if err != nil { - panic("failed to determine project root: " + err.Error()) - } - - dbDir := filepath.Join(projectRoot, "tmp") - DBFile = filepath.Join(dbDir, "test.db") - - os.MkdirAll(dbDir, 0755) - _ = os.Remove(DBFile) - _ = os.Remove(DBFile + "-shm") - _ = os.Remove(DBFile + "-wal") - + projectRoot, _ := filepath.Abs(filepath.Join("..", "..")) binary := "isley" if runtime.GOOS == "windows" { binary += ".exe" } binaryPath, _ := filepath.Abs(filepath.Join("..", "..", binary)) + envVars := os.Environ() + envVars = append(envVars, "ISLEY_PORT=8080") + if testDBType == "sqlite" { + setupSQLite(projectRoot, &envVars) + } else if testDBType == "postgres" { + setupPostgres(&envVars) + } else { + panic("unsupported ISLEY_TEST_DB value: " + testDBType) + } + appCmd = exec.Command(binaryPath) - appCmd.Env = append(os.Environ(), - "ISLEY_DB_DRIVER=sqlite", - "ISLEY_DB_FILE="+DBFile, - "ISLEY_PORT=8080", - ) - appCmd.Dir = filepath.Join("..", "..") + appCmd.Env = envVars + appCmd.Dir = projectRoot appCmd.Stdout = os.Stdout appCmd.Stderr = os.Stderr - _ = appCmd.Start() + if err := appCmd.Start(); err != nil { + panic("failed to start app: " + err.Error()) + } waitForAppReady() @@ -69,7 +71,87 @@ func setupApp() { return http.ErrUseLastResponse }, } - println(">>> setupApp end") +} + +func setupSQLite(projectRoot string, envVars *[]string) { + dbDir := filepath.Join(projectRoot, "tmp") + DBFile = filepath.Join(dbDir, "test.db") + + os.MkdirAll(dbDir, 0755) + _ = os.Remove(DBFile) + _ = os.Remove(DBFile + "-shm") + _ = os.Remove(DBFile + "-wal") + + *envVars = append(*envVars, + "ISLEY_DB_DRIVER=sqlite", + "ISLEY_DB_FILE="+DBFile, + ) +} + +func setupPostgres(envVars *[]string) { + // Read values from env or defaults + host := os.Getenv("ISLEY_TEST_DB_HOST") + port := os.Getenv("ISLEY_TEST_DB_PORT") + user := os.Getenv("ISLEY_TEST_DB_USER") + pass := os.Getenv("ISLEY_TEST_DB_PASSWORD") + name := os.Getenv("ISLEY_TEST_DB_NAME") + + if host == "" || port == "" || user == "" || name == "" { + panic("missing one or more Postgres env vars") + } + + *envVars = append(*envVars, + "ISLEY_DB_DRIVER=postgres", + "ISLEY_DB_HOST="+host, + "ISLEY_DB_PORT="+port, + "ISLEY_DB_USER="+user, + "ISLEY_DB_PASSWORD="+pass, + "ISLEY_DB_NAME="+name, + ) + + // Clear tables before tests (basic version) + clearPostgresDB(host, port, user, pass, name) +} + +func clearPostgresDB(host, port, user, pass, dbname string) { + dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", + host, port, user, pass, dbname) + + db, err := sql.Open("postgres", dsn) + if err != nil { + panic("failed to connect to Postgres: " + err.Error()) + } + defer db.Close() + + // Drop all user-defined tables and sequences in current schema + _, err = db.Exec(` + DO $$ DECLARE + r RECORD; + BEGIN + -- Drop tables + FOR r IN ( + SELECT tablename + FROM pg_tables + WHERE schemaname = current_schema() + AND tablename NOT LIKE 'pg_%' + AND tablename NOT LIKE 'sql_%' + ) LOOP + EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; + END LOOP; + + -- Drop sequences + FOR r IN ( + SELECT sequence_name + FROM information_schema.sequences + WHERE sequence_schema = current_schema() + ) LOOP + EXECUTE 'DROP SEQUENCE IF EXISTS ' || quote_ident(r.sequence_name) || ' CASCADE'; + END LOOP; + END $$; + `) + if err != nil { + panic("failed to drop tables/sequences in Postgres: " + err.Error()) + } } func teardownApp() { @@ -77,10 +159,12 @@ func teardownApp() { _ = appCmd.Process.Kill() _, _ = appCmd.Process.Wait() } - _ = os.Remove(DBFile) - _ = os.Remove(DBFile + "-shm") - _ = os.Remove(DBFile + "-wal") - _ = os.RemoveAll(filepath.Join("..", "..", "tmp")) + if testDBType == "sqlite" { + _ = os.Remove(DBFile) + _ = os.Remove(DBFile + "-shm") + _ = os.Remove(DBFile + "-wal") + _ = os.RemoveAll(filepath.Join("..", "..", "tmp")) + } } func waitForAppReady() { diff --git a/tests/integration/main_flow_test.go b/tests/integration/main_flow_test.go index b10ea05..9b138bf 100644 --- a/tests/integration/main_flow_test.go +++ b/tests/integration/main_flow_test.go @@ -1,8 +1,17 @@ package integration import ( + "bytes" + "encoding/json" + "fmt" + "io" + "mime/multipart" "net/http" "net/url" + "os" + "path/filepath" + "strconv" + "strings" "testing" ) @@ -15,7 +24,7 @@ func TestMainFlow(t *testing.T) { t.Run("access denied route after logout", testDeniedProtectedRoute) t.Run("re-login with new password", testLoginWithNewPassword) t.Run("access protected route after re-login", testAccessProtectedRoute) - t.Run("logout2", testLogout) + /* Additional Tests to be Designed and Implemented: Login & Perms @@ -25,10 +34,6 @@ func TestMainFlow(t *testing.T) { 1. Test Guest Mode 2. Test AC Infinity Sensor Setup 3. Test EcoWitt Sensor Setup - 4. Zones CRUD - 5. Activities CRUD - 6. Metrics CRUD - 7. Breeders CRUD Strains Page Add Strain @@ -39,6 +44,962 @@ func TestMainFlow(t *testing.T) { Plants Page Plant Page */ + zoneID := 0 + activityID := 0 + metricID := 0 + breederID := 0 + strainID := 0 + plantID := 0 + measurementID := 0 + plantActivityID := 0 + streamID := 0 + plantImageID := 0 + imagePath := "" + t.Run("test create zone", func(t *testing.T) { + zoneID = createTestZone(t, "Test Zone 1") + if zoneID == 0 { + t.Fatal("Failed to create test zone") + } + }) + t.Run("test add stream", func(t *testing.T) { + streamID = testAddStream(t, zoneID) + if streamID == 0 { + t.Fatal("Failed to create test stream") + } + }) + t.Run("test stream appears in settings", testStreamAppearsInSettings) + t.Run("test edit zone", func(t *testing.T) { + editTestZone(t, zoneID, "Updated Zone Name") + }) + t.Run("test delete zone", func(t *testing.T) { + deleteTestZone(t, zoneID) + }) + zoneID = 0 + t.Run("test add zone 2", func(t *testing.T) { + zoneID = createTestZone(t, "Test Zone 2") + if zoneID == 0 { + t.Fatal("Failed to create test zone") + } + }) + t.Run("test edit stream", func(t *testing.T) { + editTestStream(t, streamID, "Updated Stream Name", zoneID) + }) + t.Run("test delete stream", func(t *testing.T) { + deleteTestStream(t, streamID) + }) + + t.Run("test add activity", func(t *testing.T) { + activityID = testAddActivity(t, "Test Activity") + if activityID == 0 { + t.Fatal("Failed to create test activity") + } + }) + t.Run("test activity appears in settings", func(t *testing.T) { + testActivityAppearsInSettings(t, activityID) + }) + t.Run("test edit activity", func(t *testing.T) { + editTestActivity(t, activityID, "Updated Activity Name") + }) + t.Run("test delete activity", func(t *testing.T) { + deleteTestActivity(t, activityID) + }) + t.Run("test add metric", func(t *testing.T) { + metricID = testAddMetric(t, "Test Metric") + if metricID == 0 { + t.Fatal("Failed to create test metric") + } + }) + t.Run("test metric appears in settings", func(t *testing.T) { + testMetricAppearsInSettings(t, metricID) + }) + t.Run("test edit metric", func(t *testing.T) { + editTestMetric(t, metricID, "Updated Metric Name") + }) + t.Run("test delete metric", func(t *testing.T) { + deleteTestMetric(t, metricID) + }) + t.Run("test add breeder", func(t *testing.T) { + breederID = testAddBreeder(t, "Test Breeder") + if breederID == 0 { + t.Fatal("Failed to create test breeder") + } + }) + t.Run("test breeder appears in settings", func(t *testing.T) { + testBreederAppearsInSettings(t, breederID) + }) + t.Run("test edit breeder", func(t *testing.T) { + editTestBreeder(t, breederID, "Updated Breeder Name") + }) + t.Run("test delete breeder", func(t *testing.T) { + deleteTestBreeder(t, breederID) + }) + breederID = 0 + t.Run("test add breeder", func(t *testing.T) { + breederID = testAddBreeder(t, "Test Breeder") + if breederID == 0 { + t.Fatal("Failed to create test breeder") + } + }) + t.Run("test add strain", func(t *testing.T) { + strainID = testAddStrain(t, "Test Strain", breederID) + if strainID == 0 { + t.Fatal("Failed to create test strain") + } + }) + t.Run("test edit strain", func(t *testing.T) { + editTestStrain(t, strainID, breederID, "Updated Strain Name") + }) + t.Run("test delete strain", func(t *testing.T) { + deleteTestStrain(t, strainID) + }) + strainID = 0 + t.Run("test add strain", func(t *testing.T) { + strainID = testAddStrain(t, "Test Strain", breederID) + if strainID == 0 { + t.Fatal("Failed to create test strain") + } + }) + t.Run("test add plant", func(t *testing.T) { + plantID = testAddPlant(t, "Test Plant", strainID, zoneID) + if plantID == 0 { + t.Fatal("Failed to create test plant") + } + }) + t.Run("test edit plant", func(t *testing.T) { + editTestPlant(t, plantID, "Updated Plant Name", strainID, zoneID) + }) + t.Run("test delete plant", func(t *testing.T) { + deleteTestPlant(t, plantID) + }) + plantID = 0 + t.Run("test add plant", func(t *testing.T) { + plantID = testAddPlant(t, "Test Plant", strainID, zoneID) + if plantID == 0 { + t.Fatal("Failed to create test plant") + } + }) + t.Run("test add plant activity", func(t *testing.T) { + plantActivityID = addPlantActivity(t, plantID) + if plantActivityID == 0 { + t.Fatal("Failed to create test plant activity") + } + }) + t.Run("test edit plant activity", func(t *testing.T) { + editTestPlantActivity(t, plantActivityID) + }) + t.Run("test delete plant activity", func(t *testing.T) { + deleteTestPlantActivity(t, plantActivityID) + }) + t.Run("test add measurement", func(t *testing.T) { + measurementID = testAddMeasurement(t, plantID) + if measurementID == 0 { + t.Fatal("Failed to create test measurement") + } + }) + t.Run("test edit measurement", func(t *testing.T) { + editTestMeasurement(t, measurementID) + }) + t.Run("test delete measurement", func(t *testing.T) { + deleteTestMeasurement(t, measurementID) + }) + + t.Run("test add plant image", func(t *testing.T) { + plantImageID = testUploadPlantImage(t, plantID) + if plantImageID == 0 { + t.Fatal("Failed to create test plant image") + } + }) + + t.Run("validate image and get path", func(t *testing.T) { + resp, err := Client.Get(BaseURL + "/plant/" + strconv.Itoa(plantID)) + if err != nil { + t.Fatalf("Failed to GET /plant/%d: %v", plantID, err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /plant/%d, got %d", plantID, resp.StatusCode) + } + + // Read the response body + body := new(bytes.Buffer) + if _, err := io.Copy(body, resp.Body); err != nil { + t.Fatalf("Failed to read response body: %v", err) + } + bodyString := body.String() + //Look for src="/uploads/plants/" to identify correct image on page + //Parse src to imagePath + startIndex := strings.Index(bodyString, "src=\"/uploads/plants/") + if startIndex == -1 { + t.Fatal("Image path not found in response body") + } + startIndex += len("src=\"") + endIndex := strings.Index(bodyString[startIndex:], "\"") + if endIndex == -1 { + t.Fatal("End of image path not found in response body") + } + imagePath = bodyString[startIndex : startIndex+endIndex] + if imagePath == "" { + t.Fatal("Image path is empty") + } + t.Logf("Image path: %s", imagePath) + }) + + t.Run("test decorate plant image", func(t *testing.T) { + decorateTestPlantImage(t, imagePath) + }) + /* + t.Run("test delete plant image", func(t *testing.T) { + deleteTestPlantImage(t, plantImageID) + }) + t.Run("update plant status", func(t *testing.T) { + updateTestPlantStatus(t, plantID, "Updated Plant Status") + }) + */ + //Main Page + //Plants List Page + //Strains List Page + //Graphs + //Living / Harvested / Dead + //Sensors / Add / Link / Edit / Delete + //Plant Status CRUD + //Scanning + //Logo Upload + //Multi Activity + //Guest Mode + +} + +func decorateTestPlantImage(t *testing.T, imagePath string) { + LoginAsAdmin(t, "newpass123") + + // Step 1: Parse Path + //const imagePath = new URL(fullImagePath).pathname.replace(/^\//, ""); + imagePathCleaned := strings.TrimPrefix(imagePath, "/") + + // Step 2: Build the decoration request + payload := map[string]string{ + "imagePath": imagePathCleaned, + //"imagePath": "uploads/plants/plant_1_image_0_1743873182788088000.jpg", + "text1": "Strain: Tester", + "text2": "Age: 14d", + "text1Corner": "top-left", + "text2Corner": "bottom-right", + "logo": "", // assuming "none" is valid + "font": "fonts/Anton-Regular.ttf", + "textColor": "#ffffff", + } + body, _ := json.Marshal(payload) + + req, err := http.NewRequest("POST", BaseURL+"/decorateImage", bytes.NewReader(body)) + if err != nil { + t.Fatalf("Failed to build decorateImage request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("decorateImage request failed: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from decorateImage, got %d", resp.StatusCode) + } + + var result struct { + Success bool `json:"success"` + OutputPath string `json:"outputPath"` + Error string `json:"error"` + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse decorateImage response: %v", err) + } + + if !result.Success { + t.Fatalf("Decoration failed: %s", result.Error) + } + if result.OutputPath == "" { + t.Fatalf("No output path returned in decoration response") + } + + t.Logf("Decorated image written to: %s", result.OutputPath) +} + +func deleteTestMeasurement(t *testing.T, measurementID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/plantMeasurement/delete/"+strconv.Itoa(measurementID), nil) + if err != nil { + t.Fatalf("Failed to build measurement DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send measurement DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /plantMeasurement/%d, got %d", measurementID, resp.StatusCode) + } +} + +func editTestMeasurement(t *testing.T, measurementID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "id": measurementID, + "date": "2023-10-02", + "value": 20, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/plantMeasurement/edit", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build measurement PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send measurement PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /plantMeasurement/edit, got %d", resp.StatusCode) + } +} + +func testAddMeasurement(t *testing.T, plantID int) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "plant_id": plantID, + "metric_id": 1, + "value": 15, + "date": "2023-10-01", + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/plantMeasurement", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build measurement POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send measurement POST request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /plantMeasurement, got %d", resp.StatusCode) + } + var result struct { + ID int `json:"plant_id"` // Now using int + metricID int `json:"metric_id"` + value float64 `json:"value"` + date string `json:"date"` + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /plantMeasurement: %v", err) + } + if result.ID == 0 { + t.Fatalf("Measurement ID missing or zero in response") + } + t.Logf("Created test measurement: %d", result.ID) + return result.ID +} + +func deleteTestPlantActivity(t *testing.T, plantActivityID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/plantActivity/delete/"+strconv.Itoa(plantActivityID), nil) + if err != nil { + t.Fatalf("Failed to build plant activity DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send plant activity DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /plantActivity/%d, got %d", plantActivityID, resp.StatusCode) + } +} + +func editTestPlantActivity(t *testing.T, plantActivityID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "id": plantActivityID, + "activity_id": 1, + "date": "2023-10-02", + "note": "Updated test notes", + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/plantActivity/edit", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build plant activity PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send plant activity PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /plantActivity/edit, got %d", resp.StatusCode) + } +} + +func addPlantActivity(t *testing.T, plantID int) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "plant_id": plantID, + "activity_id": 1, + "date": "2023-10-01", + "note": "Test notes", + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/plantActivity", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build plant activity POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send plant activity POST request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /plant-activities, got %d", resp.StatusCode) + } + var result struct { + ID int `json:"plant_id"` + activityID int `json:"activity_id"` + date string `json:"date"` + note string `json:"note"` + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /plant-activities: %v", err) + } + if result.ID == 0 { + t.Fatalf("Plant activity ID missing or zero in response") + } + t.Logf("Created test plant activity: %d", result.ID) + return result.ID +} + +func deleteTestPlant(t *testing.T, plantID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/plant/delete/"+strconv.Itoa(plantID), nil) + if err != nil { + t.Fatalf("Failed to build plant DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send plant DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /plants/%d, got %d", plantID, resp.StatusCode) + } +} + +func editTestPlant(t *testing.T, plantID int, plantName string, strainID int, zoneID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "plant_id": plantID, + "plant_name": plantName, + "plant_description": "Test description", + "status_id": 2, + "date": "2023-10-01", + "strain_id": strainID, + "zone_id": zoneID, + "clone": false, + "start_date": "2023-10-01", + "harvest_weight": 0, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/plant", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build plant PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send plant PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 201 OK from /plant, got %d", resp.StatusCode) + } +} + +func testAddPlant(t *testing.T, plantName string, strainID int, zoneID int) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "name": plantName, + "strain_id": strainID, + "zone_id": zoneID, + "status_id": 1, + "date": "2023-10-01", + "clone": 0, + "parent_id": 0, + "decrement_seed_count": false, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/plants", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build plant POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send plant POST request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /plants, got %d", resp.StatusCode) + } + var result struct { + ID int `json:"id"` + message string `json:"message"` + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /plants: %v", err) + } + if result.ID == 0 { + t.Fatalf("Plant ID missing or zero in response") + } + t.Logf("Created test plant: %d", result.ID) + return result.ID + +} + +func deleteTestStrain(t *testing.T, strainID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/strains/"+strconv.Itoa(strainID), nil) + if err != nil { + t.Fatalf("Failed to build strain DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send strain DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /strains/%d, got %d", strainID, resp.StatusCode) + } +} + +func editTestStrain(t *testing.T, strainID int, breederID int, strainName string) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "name": strainName, + "breeder_id": breederID, + "indica": 50, + "sativa": 50, + "autoflower": false, + "seed_count": 5, + "description": "Test description", + "cycle_time": 84, + "url": "http://leafly.com/strains/test-strain", + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("PUT", BaseURL+"/strains/"+strconv.Itoa(strainID), bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build strain PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send strain PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /strains/%d, got %d", strainID, resp.StatusCode) + } +} + +func testAddStrain(t *testing.T, strainName string, breederID int) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "name": strainName, + "breeder_id": breederID, + "indica": 50, + "sativa": 50, + "autoflower": false, + "seed_count": 5, + "description": "Test description", + "cycle_time": 84, + "url": "http://leafly.com/strains/test-strain", + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/strains", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build strain POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send strain POST request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /strains, got %d", resp.StatusCode) + } + var result struct { + ID int `json:"id"` + message string `json:"message"` + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /strains: %v", err) + } + if result.ID == 0 { + t.Fatalf("Strain ID missing or zero in response") + } + t.Logf("Created test strain: %d", result.ID) + return result.ID +} + +func deleteTestBreeder(t *testing.T, breederID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/breeders/"+strconv.Itoa(breederID), nil) + if err != nil { + t.Fatalf("Failed to build breeder DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send breeder DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /breeders/%d, got %d", breederID, resp.StatusCode) + } +} + +func editTestBreeder(t *testing.T, breederID int, breederName string) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "breeder_name": breederName, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("PUT", BaseURL+"/breeders/"+strconv.Itoa(breederID), bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build breeder PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send breeder PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /breeders/%d, got %d", breederID, resp.StatusCode) + } +} + +func testBreederAppearsInSettings(t *testing.T, breederID int) { + resp, err := Client.Get(BaseURL + "/settings") + if err != nil { + t.Fatalf("Failed to GET /settings: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /settings, got %d", resp.StatusCode) + } + + body, err := io.ReadAll(resp.Body) + if err != nil { + t.Fatalf("Failed to read response body: %v", err) + } + html := string(body) + + // Look for a known unique piece of the breeder we added + if !strings.Contains(html, "Test Breeder") { + t.Errorf("Expected breeder name 'Test Breeder' to appear in /settings page HTML") + } + if !strings.Contains(html, strconv.Itoa(breederID)) { + t.Errorf("Expected breeder ID %d to appear in /settings page HTML", breederID) + } + +} + +func testAddBreeder(t *testing.T, breederName string) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "breeder_name": breederName, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/breeders", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build breeder POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send breeder POST request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /breeders, got %d", resp.StatusCode) + } + var result struct { + ID int `json:"id"` // Now using int + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /breeders: %v", err) + } + if result.ID == 0 { + t.Fatalf("Breeder ID missing or zero in response") + } + t.Logf("Created test breeder: %d", result.ID) + return result.ID +} + +func deleteTestMetric(t *testing.T, metricID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/metrics/"+strconv.Itoa(metricID), nil) + if err != nil { + t.Fatalf("Failed to build metric DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send metric DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /metrics/%d, got %d", metricID, resp.StatusCode) + } +} + +func editTestMetric(t *testing.T, metricID int, metricName string) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "metric_name": metricName, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("PUT", BaseURL+"/metrics/"+strconv.Itoa(metricID), bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build metric PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send metric PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /metrics/%d, got %d", metricID, resp.StatusCode) + } +} + +func testMetricAppearsInSettings(t *testing.T, metricID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + resp, err := Client.Get(BaseURL + "/settings") + if err != nil { + t.Fatalf("Failed to GET /settings: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /settings, got %d", resp.StatusCode) + } + body, err := io.ReadAll(resp.Body) + if err != nil { + t.Fatalf("Failed to read response body: %v", err) + } + html := string(body) + // Look for a known unique piece of the metric we added + if !strings.Contains(html, "Test Metric") { + t.Errorf("Expected metric name 'Test Metric' to appear in /settings page HTML") + } +} + +func testAddMetric(t *testing.T, metricName string) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "metric_name": metricName, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/metrics", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build metric POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send metric POST request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /metrics, got %d", resp.StatusCode) + } + var result struct { + ID int `json:"id"` // Now using int + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /metrics: %v", err) + } + if result.ID == 0 { + t.Fatalf("Metric ID missing or zero in response") + } + t.Logf("Created test metric: %d", result.ID) + return result.ID +} + +func deleteTestActivity(t *testing.T, activityID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/activities/"+strconv.Itoa(activityID), nil) + if err != nil { + t.Fatalf("Failed to build activity DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send activity DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /activities/%d, got %d", activityID, resp.StatusCode) + } + // Check if the activity is actually deleted + resp, err = Client.Get(BaseURL + "/activities/" + strconv.Itoa(activityID)) + if err != nil { + t.Fatalf("Failed to GET /activities/%d: %v", activityID, err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusNotFound { + t.Fatalf("Expected 404 Not Found from /activities/%d after deletion, got %d", activityID, resp.StatusCode) + } +} + +func editTestActivity(t *testing.T, activityID int, activityName string) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "activity_name": activityName, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("PUT", BaseURL+"/activities/"+strconv.Itoa(activityID), bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build activity PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send activity PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /activities/%d, got %d", activityID, resp.StatusCode) + } +} + +func testActivityAppearsInSettings(t *testing.T, activityID int) { + resp, err := Client.Get(BaseURL + "/settings") + if err != nil { + t.Fatalf("Failed to GET /settings: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /settings, got %d", resp.StatusCode) + } + + body, err := io.ReadAll(resp.Body) + if err != nil { + t.Fatalf("Failed to read response body: %v", err) + } + html := string(body) + + // Look for a known unique piece of the activity we added + if !strings.Contains(html, "Test Activity") { + t.Errorf("Expected activity name 'Test Activity' to appear in /settings page HTML") + } + if !strings.Contains(html, strconv.Itoa(activityID)) { + t.Errorf("Expected activity ID %d to appear in /settings page HTML", activityID) + } +} + +func testAddActivity(t *testing.T, activityName string) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "activity_name": activityName, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("POST", BaseURL+"/activities", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build activity POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send activity POST request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /activities, got %d", resp.StatusCode) + } + var result struct { + ID int `json:"id"` // Now using int + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /activities: %v", err) + } + if result.ID == 0 { + t.Fatalf("Activity ID missing or zero in response") + } + t.Logf("Created test activity: %d", result.ID) + return result.ID +} + +func deleteTestStream(t *testing.T, streamID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/streams/"+strconv.Itoa(streamID), nil) + if err != nil { + t.Fatalf("Failed to build stream DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send stream DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /streams/%d, got %d", streamID, resp.StatusCode) + } +} + +func editTestStream(t *testing.T, streamID int, streamName string, zoneID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "stream_name": streamName, + "id": streamID, + "url": "http://example.com/stream.m3u8", + "visible": true, + "zone_id": zoneID, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("PUT", BaseURL+"/streams/"+strconv.Itoa(streamID), bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build stream PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send stream PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /streams/%d, got %d", streamID, resp.StatusCode) + } +} + +func deleteTestZone(t *testing.T, zoneID int) { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + req, err := http.NewRequest("DELETE", BaseURL+"/zones/"+strconv.Itoa(zoneID), nil) + if err != nil { + t.Fatalf("Failed to build zone DELETE request: %v", err) + } + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send zone DELETE request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /zones/%d, got %d", zoneID, resp.StatusCode) + } + } func testInitLoginFlow(t *testing.T) { @@ -97,3 +1058,211 @@ func testLoginWithNewPassword(t *testing.T) { LoginAsAdmin(t, "newpass123") }) } + +func editTestZone(t *testing.T, zoneID int, zoneName string) { + LoginAsAdmin(t, "newpass123") + payload := map[string]any{ + "zone_name": zoneName, + } + data, _ := json.Marshal(payload) + req, err := http.NewRequest("PUT", BaseURL+"/zones/"+strconv.Itoa(zoneID), bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build zone PUT request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send zone PUT request: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /zones/%d, got %d", zoneID, resp.StatusCode) + } +} + +func createTestZone(t *testing.T, zoneName string) int { + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + payload := map[string]any{ + "zone_name": zoneName, + } + data, _ := json.Marshal(payload) + + req, err := http.NewRequest("POST", BaseURL+"/zones", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build zone POST request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send zone POST request: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from /zones, got %d", resp.StatusCode) + } + + var result struct { + ID int `json:"id"` // Now using int + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response from /zones: %v", err) + } + + if result.ID == 0 { + t.Fatalf("Zone ID missing or zero in response") + } + + t.Logf("Created test zone: %d", result.ID) + return result.ID +} + +func testAddStream(t *testing.T, zoneID int) int { + // Ensure we're logged in with an admin session + LoginAsAdmin(t, "newpass123") // assumes this was set in prior test + + // Convert zoneID to string + strZoneID := strconv.Itoa(zoneID) + payload := map[string]any{ + "stream_name": "Test Stream 1", + "zone_id": strZoneID, + "url": "http://example.com/stream.m3u8", + "visible": true, + } + + data, err := json.Marshal(payload) + if err != nil { + t.Fatalf("Failed to marshal JSON: %v", err) + } + + req, err := http.NewRequest("POST", BaseURL+"/streams", bytes.NewReader(data)) + if err != nil { + t.Fatalf("Failed to build request: %v", err) + } + req.Header.Set("Content-Type", "application/json") + + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Failed to send request: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201, got %d", resp.StatusCode) + } + + var result struct { + ID int `json:"id"` // Now using int + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response: %v", err) + } + if result.ID == 0 { + t.Fatalf("Stream ID missing or zero in response") + } + t.Logf("Created test stream: %d", result.ID) + return result.ID +} + +func testStreamAppearsInSettings(t *testing.T) { + resp, err := Client.Get(BaseURL + "/settings") + if err != nil { + t.Fatalf("Failed to GET /settings: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("Expected 200 OK from /settings, got %d", resp.StatusCode) + } + + body, err := io.ReadAll(resp.Body) + if err != nil { + t.Fatalf("Failed to read response body: %v", err) + } + html := string(body) + + // Look for a known unique piece of the stream we added + if !strings.Contains(html, "Test Stream 1") { + t.Errorf("Expected stream name 'Test Stream 1' to appear in /settings page HTML") + } + if !strings.Contains(html, "http://example.com/stream.m3u8") { + t.Errorf("Expected stream URL to appear in /settings page HTML") + } +} + +func testUploadPlantImage(t *testing.T, plantID int) int { + LoginAsAdmin(t, "newpass123") + + // Step 2: Create multipart form body + var buf bytes.Buffer + writer := multipart.NewWriter(&buf) + + // Add image + imageWriter, err := writer.CreateFormFile("images[]", "test.png") + if err != nil { + t.Fatalf("Failed to create form file: %v", err) + } + imageBytes := testPNG() + if imageBytes == nil { + t.Fatalf("Failed to load test image") + } + _, err = imageWriter.Write(imageBytes) + if err != nil { + t.Fatalf("Failed to write image: %v", err) + } + + // Add description + _ = writer.WriteField("descriptions[]", "Test image description") + + // Add date + _ = writer.WriteField("dates[]", "2025-04-04") + + writer.Close() + + // Step 3: Send request + url := fmt.Sprintf("%s/plant/%d/images/upload", BaseURL, plantID) + req, err := http.NewRequest("POST", url, &buf) + if err != nil { + t.Fatalf("Failed to create request: %v", err) + } + req.Header.Set("Content-Type", writer.FormDataContentType()) + + resp, err := Client.Do(req) + if err != nil { + t.Fatalf("Image upload request failed: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + t.Fatalf("Expected 200 or 201 from image upload, got %d", resp.StatusCode) + } + //Returns an array of ids, parse for the response + var result struct { + IDs []int `json:"ids"` // Now using int + } + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + t.Fatalf("Failed to parse response: %v", err) + } + if len(result.IDs) == 0 { + t.Fatalf("Image ID missing or zero in response") + } + t.Logf("Uploaded test image: %d", result.IDs[0]) + return result.IDs[0] +} + +func testPNG() []byte { + projectRoot, _ := filepath.Abs(filepath.Join("..", "..")) + // Open the image file + // /web/static/img/placeholder.png + filePath := filepath.Join(projectRoot, "web", "static", "img", "placeholder.png") + file, err := os.Open(filePath) + if err != nil { + panic("failed to open image: " + err.Error()) + } + defer file.Close() + imgBytes, err := io.ReadAll(file) + if err != nil { + panic("failed to read image: " + err.Error()) + } + return imgBytes +} diff --git a/tests/integration/settings_test.go b/tests/integration/settings_test.go deleted file mode 100644 index a7f05cf..0000000 --- a/tests/integration/settings_test.go +++ /dev/null @@ -1,120 +0,0 @@ -package integration - -import ( - "bytes" - "encoding/json" - "io" - "net/http" - "strings" - "testing" -) - -func TestSettingsFlow(t *testing.T) { - - t.Run("test add stream", testAddStream) - t.Run("test stream appears in settings", testStreamAppearsInSettings) -} - -func createTestZone(t *testing.T, zoneName string) string { - payload := map[string]any{ - "zone_name": zoneName, - } - data, _ := json.Marshal(payload) - - req, err := http.NewRequest("POST", BaseURL+"/zones", bytes.NewReader(data)) - if err != nil { - t.Fatalf("Failed to build zone POST request: %v", err) - } - req.Header.Set("Content-Type", "application/json") - - resp, err := Client.Do(req) - if err != nil { - t.Fatalf("Failed to send zone POST request: %v", err) - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { - t.Fatalf("Expected 200 or 201 from /zones, got %d", resp.StatusCode) - } - - var result struct { - ID string `json:"id"` // or whatever your handler returns - } - if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { - t.Fatalf("Failed to parse response from /zones: %v", err) - } - - if result.ID == "" { - t.Fatalf("Zone ID missing from response") - } - - t.Logf("Created test zone: %s", result.ID) - return result.ID -} - -func testAddStream(t *testing.T) { - // Ensure we're logged in with an admin session - LoginAsAdmin(t, "newpass123") // assumes this was set in prior test - - payload := map[string]any{ - "stream_name": "Test Stream 1", - "zone_id": "zone-abc", - "url": "http://example.com/stream.m3u8", - "visible": true, - } - - data, err := json.Marshal(payload) - if err != nil { - t.Fatalf("Failed to marshal JSON: %v", err) - } - - req, err := http.NewRequest("POST", BaseURL+"/streams", bytes.NewReader(data)) - if err != nil { - t.Fatalf("Failed to build request: %v", err) - } - req.Header.Set("Content-Type", "application/json") - - resp, err := Client.Do(req) - if err != nil { - t.Fatalf("Failed to send request: %v", err) - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { - t.Fatalf("Expected 200 or 201, got %d", resp.StatusCode) - } - - // Optionally decode response JSON: - var result map[string]any - if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { - t.Fatalf("Failed to decode response JSON: %v", err) - } - - t.Logf("Stream added successfully: %+v", result) -} - -func testStreamAppearsInSettings(t *testing.T) { - resp, err := Client.Get(BaseURL + "/settings") - if err != nil { - t.Fatalf("Failed to GET /settings: %v", err) - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - t.Fatalf("Expected 200 OK from /settings, got %d", resp.StatusCode) - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - t.Fatalf("Failed to read response body: %v", err) - } - html := string(body) - - // Look for a known unique piece of the stream we added - if !strings.Contains(html, "Test Stream 1") { - t.Errorf("Expected stream name 'Test Stream 1' to appear in /settings page HTML") - } - if !strings.Contains(html, "http://example.com/stream.m3u8") { - t.Errorf("Expected stream URL to appear in /settings page HTML") - } -} diff --git a/utils/i18n.go b/utils/i18n.go index c88a349..7f56661 100644 --- a/utils/i18n.go +++ b/utils/i18n.go @@ -354,6 +354,9 @@ func (i *I18nManager) GetTranslations(lang string) map[string]string { "stream_grab_interval", "stream_grab_interval_desc", "time_minutes", + "short_description_txt", + "short_description_placeholder", + "description_txt_desc", } translations := make(map[string]string) diff --git a/utils/locales/de.yaml b/utils/locales/de.yaml index ce894b6..99708c9 100644 --- a/utils/locales/de.yaml +++ b/utils/locales/de.yaml @@ -279,4 +279,8 @@ stream_grab_enabled: "Stream-Aufnahme aktivieren" stream_grab_enabled_desc: "Aktivieren Sie diese Option, um Bilder aus dem Stream zu erfassen und zu speichern." stream_grab_interval: "Stream-Aufnahmeintervall" stream_grab_interval_desc: "Verwenden Sie den Schieberegler, um das Stream-Aufnahmeintervall anzupassen (5 - 60 Minuten). Minimum sind 5 Minuten." -time_minutes: "Minuten" \ No newline at end of file +time_minutes: "Minuten" + +short_description_txt: "Short Description" +short_description_placeholder: "Enter short description" +description_txt_desc: "Description should be in Markdown format." \ No newline at end of file diff --git a/utils/locales/en.yaml b/utils/locales/en.yaml index fa1c941..2ac8872 100644 --- a/utils/locales/en.yaml +++ b/utils/locales/en.yaml @@ -282,3 +282,6 @@ stream_grab_interval_desc: "Use the slider to adjust the stream grab interval (5 time_minutes: "minutes" +short_description_txt: "Short Description" +short_description_placeholder: "Enter short description" +description_txt_desc: "Description should be in Markdown format." \ No newline at end of file diff --git a/utils/locales/es.yaml b/utils/locales/es.yaml index a74d889..3265936 100644 --- a/utils/locales/es.yaml +++ b/utils/locales/es.yaml @@ -279,4 +279,8 @@ stream_grab_enabled: "Habilitar captura de transmisiΓ³n" stream_grab_enabled_desc: "Habilite esta opciΓ³n para capturar y almacenar imΓ‘genes de la transmisiΓ³n." stream_grab_interval: "Intervalo de captura de transmisiΓ³n" stream_grab_interval_desc: "Use el control deslizante para ajustar el intervalo de captura de transmisiΓ³n (5 - 60 minutos). El mΓ­nimo es 5 minutos." -time_minutes: "minutos" \ No newline at end of file +time_minutes: "minutos" + +short_description_txt: "Short Description" +short_description_placeholder: "Enter short description" +description_txt_desc: "Description should be in Markdown format." \ No newline at end of file diff --git a/utils/locales/fr.yaml b/utils/locales/fr.yaml index 7fa0938..72e2055 100644 --- a/utils/locales/fr.yaml +++ b/utils/locales/fr.yaml @@ -281,3 +281,6 @@ stream_grab_interval: "Intervalle de capture du flux" stream_grab_interval_desc: "Utilisez le curseur pour ajuster l'intervalle de capture du flux (5 - 60 minutes). Minimum de 5 minutes." time_minutes: "minutes" +short_description_txt: "Short Description" +short_description_placeholder: "Enter short description" +description_txt_desc: "Description should be in Markdown format." \ No newline at end of file diff --git a/web/templates/pages/strain.html b/web/templates/pages/strain.html new file mode 100644 index 0000000..9e18722 --- /dev/null +++ b/web/templates/pages/strain.html @@ -0,0 +1,300 @@ +{{ define "views/strain.html"}} + + + +{{ template "layouts/header.html" .}} + +{{ template "layouts/header2.html" .}} +
    + +
    +

    {{ .strain.Name }}

    +

    by {{ .strain.Breeder }}

    +

    {{ .strain.ShortDescription }}

    + {{ if .strain.Autoflower }} + + {{ else }} + + {{ end }} + {{ if .strain.Url }} + + + + {{ end }} + {{ if .loggedIn }} + + {{ end }} + +
    + + +
    +
    + +
    + {{ .strain.Description | markdownify }} +
    +
    +
    +
    + + + + + + + + +{{ template "layouts/footer.html" .}} + +{{ end }} \ No newline at end of file diff --git a/web/templates/pages/strains.html b/web/templates/pages/strains.html index 3d110ac..6172994 100644 --- a/web/templates/pages/strains.html +++ b/web/templates/pages/strains.html @@ -125,10 +125,17 @@
    + +
    + + +
    +
    +

    {{ .lcl.description_txt_desc }}

    @@ -214,10 +221,17 @@
    + +
    + + +
    +
    +

    {{ .lcl.description_txt_desc }}

    {{ if .loggedIn }} @@ -279,6 +293,7 @@ autoflower: document.getElementById("autoflower").value === "true", seed_count: parseInt(document.getElementById("seedCount").value, 10), description: document.getElementById("strainDescription").value, + short_desc: document.getElementById("strainShortDescription").value, cycle_time: parseInt(cycleTime.value, 10), url: url.value }; @@ -349,6 +364,7 @@ autoflower: document.getElementById("editAutoflower").value === "true", seed_count: parseInt(document.getElementById("editSeedCount").value, 10), description: document.getElementById("editStrainDescription").value, + short_desc: document.getElementById("editStrainShortDescription").value, cycle_time: parseInt(editCycleTime.value, 10), url: editUrl.value }; @@ -437,10 +453,9 @@ {{ .lcl.title_strain }} {{ .lcl.breeder }} - {{ .lcl.title_is }} - {{ .lcl.title_auto }} + {{ .lcl.description_txt }} {{ .lcl.seed_count }} - Edit + @@ -454,23 +469,21 @@ {{ .lcl.title_strain }} {{ .lcl.breeder }} - {{ .lcl.title_is }} - {{ .lcl.title_auto }} + {{ .lcl.description_txt }} {{ .lcl.seed_count }} - Edit + ${filteredData.map(strain => ` - - ${strain.url ? `${strain.name || "{{ .lcl.na }}"}` : strain.name || "{{ .lcl.na }}"} - + ${strain.name || "N/A"} ${strain.breeder || "N/A"} - ${strain.indica || 0} / ${strain.sativa || 0} - - ${strain.autoflower === "true" || strain.autoflower === true || strain.autoflower === 1 ? "{{ .lcl.yes }}" : "{{ .lcl.no }}"} + ${strain.short_desc || " "} ${strain.seed_count || 0} + + ${strain.url ? `` : " "} + @@ -542,6 +555,7 @@ document.getElementById("editStrainDescription").value = strainData.description; document.getElementById("editCycleTime").value = strainData.cycle_time; document.getElementById("editUrl").value = strainData.url; + document.getElementById("editStrainShortDescription").value = strainData.short_desc; // Show the modal editStrainModal.show(); From ebe0c4accd36b4c7445974377ed5c4491fe057d3 Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Mon, 7 Apr 2025 19:00:26 -0400 Subject: [PATCH 41/53] Fix for edit strain (#46) * More tests Updated Strain library * Fix for edit strain page --- web/templates/pages/strain.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/templates/pages/strain.html b/web/templates/pages/strain.html index 9e18722..d6e5c87 100644 --- a/web/templates/pages/strain.html +++ b/web/templates/pages/strain.html @@ -259,7 +259,12 @@ if (!encodedStrain) return; - const strainData = JSON.parse(decodeURIComponent(encodedStrain)); + // Decode HTML entities like " + const parser = new DOMParser(); + const decodedHtml = parser.parseFromString(encodedStrain, 'text/html').documentElement.textContent; + + // Now parse the JSON + const strainData = JSON.parse(decodedHtml); // Populate form fields document.getElementById("editStrainId").value = strainData.id; From 9ef1baa536f55df373ea73556ccd126d11c93d2c Mon Sep 17 00:00:00 2001 From: dwot <68145+dwot@users.noreply.github.com> Date: Wed, 9 Apr 2025 12:28:04 -0400 Subject: [PATCH 42/53] Updates to refactor UI and update dependencies (#47) * Refactor to split out modals / js files * Cleanup UI refactor * Dependency updates * Version update --- .gitignore | 1 + VERSION | 2 +- go.mod | 39 +- go.sum | 91 +- main.go | 4 +- web/static/css/isley.css | 217 +++ web/static/js/activity-edit-modal.js | 61 + web/static/js/add-activity-modal.js | 57 + web/static/js/add-measurement-modal.js | 57 + web/static/js/add-plant-modal.js | 140 ++ web/static/js/add-strain-modal.js | 73 + web/static/js/decorate-image-modal.js | 273 +++ web/static/js/edit-plant-modal.js | 129 ++ web/static/js/edit-strain-modal.js | 131 ++ web/static/js/graph.js | 139 ++ web/static/js/header.js | 19 + web/static/js/link-sensor-modal.js | 31 + web/static/js/main.js | 201 ++ web/static/js/measurement-edit-modal.js | 48 + web/static/js/multi-plant-activity-modal.js | 51 + web/static/js/status-history-edit-modal.js | 51 + web/static/js/upload-images-modal.js | 149 ++ .../{components => common}/footer.html | 2 +- web/templates/common/header.html | 19 + web/templates/common/header2.html | 79 + web/templates/components/header.html | 139 -- web/templates/components/header2.html | 208 -- web/templates/modals/activity-edit-modal.html | 39 + web/templates/modals/add-activity-modal.html | 42 + .../modals/add-measurement-modal.html | 42 + web/templates/modals/add-plant-modal.html | 114 ++ web/templates/modals/add-strain-modal.html | 94 + .../modals/decorate-image-modal.html | 96 + web/templates/modals/edit-plant-modal.html | 132 ++ web/templates/modals/edit-strain-modal.html | 101 + web/templates/modals/link-sensor-modal.html | 52 + .../modals/measurement-edit-modal.html | 32 + .../modals/multi-plant-activity-modal.html | 58 + .../modals/status-history-edit-modal.html | 28 + web/templates/modals/upload-images-modal.html | 28 + web/templates/pages/graph.html | 202 -- web/templates/pages/index.html | 280 --- web/templates/pages/plant.html | 1686 ----------------- web/templates/pages/plants.html | 517 ----- web/templates/pages/strain.html | 305 --- web/templates/pages/strains.html | 606 ------ .../{pages => views}/change-password.html | 14 +- web/templates/views/graph.html | 60 + web/templates/views/index.html | 60 + web/templates/{pages => views}/login.html | 14 +- web/templates/views/plant.html | 303 +++ web/templates/views/plants.html | 227 +++ web/templates/{pages => views}/sensors.html | 16 +- web/templates/{pages => views}/settings.html | 6 +- web/templates/views/strain.html | 67 + web/templates/views/strains.html | 247 +++ 56 files changed, 3825 insertions(+), 4054 deletions(-) create mode 100644 web/static/css/isley.css create mode 100644 web/static/js/activity-edit-modal.js create mode 100644 web/static/js/add-activity-modal.js create mode 100644 web/static/js/add-measurement-modal.js create mode 100644 web/static/js/add-plant-modal.js create mode 100644 web/static/js/add-strain-modal.js create mode 100644 web/static/js/decorate-image-modal.js create mode 100644 web/static/js/edit-plant-modal.js create mode 100644 web/static/js/edit-strain-modal.js create mode 100644 web/static/js/graph.js create mode 100644 web/static/js/header.js create mode 100644 web/static/js/link-sensor-modal.js create mode 100644 web/static/js/main.js create mode 100644 web/static/js/measurement-edit-modal.js create mode 100644 web/static/js/multi-plant-activity-modal.js create mode 100644 web/static/js/status-history-edit-modal.js create mode 100644 web/static/js/upload-images-modal.js rename web/templates/{components => common}/footer.html (97%) create mode 100644 web/templates/common/header.html create mode 100644 web/templates/common/header2.html delete mode 100644 web/templates/components/header.html delete mode 100644 web/templates/components/header2.html create mode 100644 web/templates/modals/activity-edit-modal.html create mode 100644 web/templates/modals/add-activity-modal.html create mode 100644 web/templates/modals/add-measurement-modal.html create mode 100644 web/templates/modals/add-plant-modal.html create mode 100644 web/templates/modals/add-strain-modal.html create mode 100644 web/templates/modals/decorate-image-modal.html create mode 100644 web/templates/modals/edit-plant-modal.html create mode 100644 web/templates/modals/edit-strain-modal.html create mode 100644 web/templates/modals/link-sensor-modal.html create mode 100644 web/templates/modals/measurement-edit-modal.html create mode 100644 web/templates/modals/multi-plant-activity-modal.html create mode 100644 web/templates/modals/status-history-edit-modal.html create mode 100644 web/templates/modals/upload-images-modal.html delete mode 100644 web/templates/pages/graph.html delete mode 100644 web/templates/pages/index.html delete mode 100644 web/templates/pages/plant.html delete mode 100644 web/templates/pages/plants.html delete mode 100644 web/templates/pages/strain.html delete mode 100644 web/templates/pages/strains.html rename web/templates/{pages => views}/change-password.html (83%) create mode 100644 web/templates/views/graph.html create mode 100644 web/templates/views/index.html rename web/templates/{pages => views}/login.html (83%) create mode 100644 web/templates/views/plant.html create mode 100644 web/templates/views/plants.html rename web/templates/{pages => views}/sensors.html (98%) rename web/templates/{pages => views}/settings.html (99%) create mode 100644 web/templates/views/strain.html create mode 100644 web/templates/views/strains.html diff --git a/.gitignore b/.gitignore index 24e8d39..a95cfd2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /uploads/ /isley.exe /logs/ +/node_modules/ diff --git a/VERSION b/VERSION index 915812e..85cdcf9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.22 \ No newline at end of file +0.1.23 \ No newline at end of file diff --git a/go.mod b/go.mod index b83d342..0e04cec 100644 --- a/go.mod +++ b/go.mod @@ -6,17 +6,17 @@ toolchain go1.24.1 require ( github.com/fogleman/gg v1.3.0 - github.com/gin-contrib/sessions v1.0.2 + github.com/gin-contrib/sessions v1.0.3 github.com/gin-gonic/gin v1.10.0 github.com/golang-migrate/migrate/v4 v4.18.2 github.com/lib/pq v1.10.9 github.com/microcosm-cc/bluemonday v1.0.27 - github.com/nicksnyder/go-i18n/v2 v2.5.1 + github.com/nicksnyder/go-i18n/v2 v2.6.0 github.com/russross/blackfriday/v2 v2.1.0 github.com/sirupsen/logrus v1.9.3 - golang.org/x/crypto v0.36.0 - golang.org/x/image v0.25.0 - golang.org/x/text v0.23.0 + golang.org/x/crypto v0.37.0 + golang.org/x/image v0.26.0 + golang.org/x/text v0.24.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 modernc.org/sqlite v1.37.0 @@ -24,42 +24,41 @@ require ( require ( github.com/aymerick/douceur v0.2.0 // indirect - github.com/bytedance/sonic v1.11.6 // indirect - github.com/bytedance/sonic/loader v0.1.1 // indirect - github.com/cloudwego/base64x v0.1.4 // indirect - github.com/cloudwego/iasm v0.2.0 // indirect + github.com/bytedance/sonic v1.13.2 // indirect + github.com/bytedance/sonic/loader v0.2.4 // indirect + github.com/cloudwego/base64x v0.1.5 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/gin-contrib/sse v1.0.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.20.0 // indirect - github.com/goccy/go-json v0.10.2 // indirect + github.com/go-playground/validator/v10 v10.26.0 // indirect + github.com/goccy/go-json v0.10.5 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/context v1.1.2 // indirect github.com/gorilla/css v1.0.1 // indirect github.com/gorilla/securecookie v1.1.2 // indirect - github.com/gorilla/sessions v1.2.2 // indirect + github.com/gorilla/sessions v1.4.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/ncruces/go-strftime v0.1.9 // indirect - github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect go.uber.org/atomic v1.7.0 // indirect - golang.org/x/arch v0.8.0 // indirect + golang.org/x/arch v0.16.0 // indirect golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect - golang.org/x/net v0.37.0 // indirect - golang.org/x/sys v0.31.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + golang.org/x/net v0.38.0 // indirect + golang.org/x/sys v0.32.0 // indirect + google.golang.org/protobuf v1.36.6 // indirect modernc.org/libc v1.62.1 // indirect modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.9.1 // indirect diff --git a/go.sum b/go.sum index 3d09e17..b6f1ae0 100644 --- a/go.sum +++ b/go.sum @@ -1,18 +1,18 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= -github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= -github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= -github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= +github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= +github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= -github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= -github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= +github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= +github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -33,12 +33,12 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= -github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gin-contrib/sessions v1.0.2 h1:UaIjUvTH1cMeOdj3in6dl+Xb6It8RiKRF9Z1anbUyCA= -github.com/gin-contrib/sessions v1.0.2/go.mod h1:KxKxWqWP5LJVDCInulOl4WbLzK2KSPlLesfZ66wRvMs= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/gin-contrib/sessions v1.0.3 h1:AZ4j0AalLsGqdrKNbbrKcXx9OJZqViirvNGsJTxcQps= +github.com/gin-contrib/sessions v1.0.3/go.mod h1:5i4XMx4KPtQihnzxEqG9u1K446lO3G19jAi2GtbfsAI= +github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E= +github.com/gin-contrib/sse v1.0.0/go.mod h1:zNuFdwarAygJBht0NTKiSi3jRf6RbqeILZ9Sp6Slhe0= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -51,10 +51,10 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= -github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/go-playground/validator/v10 v10.26.0 h1:SP05Nqhjcvz81uJaRfEV0YBSSSGMc/iMaVtFbr3Sw2k= +github.com/go-playground/validator/v10 v10.26.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-migrate/migrate/v4 v4.18.2 h1:2VSCMz7x7mjyTXx3m2zPokOY82LTRgxK1yQYKo6wWQ8= @@ -76,8 +76,8 @@ github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8= github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= -github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= -github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= +github.com/gorilla/sessions v1.4.0 h1:kpIYOp/oi6MG/p5PgxApU8srsSw9tuFbt46Lt7auzqQ= +github.com/gorilla/sessions v1.4.0/go.mod h1:FLWm50oby91+hl7p/wRxDth9bWSuk0qVL2emc7lT5ik= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -86,8 +86,8 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= -github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= @@ -110,14 +110,14 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= -github.com/nicksnyder/go-i18n/v2 v2.5.1 h1:IxtPxYsR9Gp60cGXjfuR/llTqV8aYMsC472zD0D1vHk= -github.com/nicksnyder/go-i18n/v2 v2.5.1/go.mod h1:DrhgsSDZxoAfvVrBVLXoxZn/pN5TXqaDbq7ju94viiQ= +github.com/nicksnyder/go-i18n/v2 v2.6.0 h1:C/m2NNWNiTB6SK4Ao8df5EWm3JETSTIGNXBpMJTxzxQ= +github.com/nicksnyder/go-i18n/v2 v2.6.0/go.mod h1:88sRqr0C6OPyJn0/KRNaEz1uWorjxIKP7rUUcvycecE= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= -github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -138,8 +138,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= @@ -154,32 +154,30 @@ go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt3 go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= -golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/arch v0.16.0 h1:foMtLTdyOmIniqWCHjY6+JxuC54XP1fDwx4N0ASyW+U= +golang.org/x/arch v0.16.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= -golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ= -golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs= +golang.org/x/image v0.26.0 h1:4XjIFEZWQmCZi6Wv8BoxsDhRU3RVnLX04dToTDAEPlY= +golang.org/x/image v0.26.0/go.mod h1:lcxbMFAovzpnJxzXS3nyL83K27tmqtKzIJpctK8YO5c= golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= -golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= @@ -212,4 +210,3 @@ modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/main.go b/main.go index af7f140..2f50d1d 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,7 @@ import ( "time" ) -//go:embed model/migrations/sqlite/*.sql model/migrations/postgres/*.sql web/templates/* web/static/**/* utils/fonts/* VERSION +//go:embed model/migrations/sqlite/*.sql model/migrations/postgres/*.sql web/templates/**/*.html web/static/**/* utils/fonts/* VERSION var embeddedFiles embed.FS func main() { @@ -174,7 +174,7 @@ func main() { } // Attach FuncMap and ParseFS - templ := template.Must(template.New("").Funcs(funcMap).ParseFS(embeddedFiles, "web/templates/**/*")) + templ := template.Must(template.New("").Funcs(funcMap).ParseFS(embeddedFiles, "web/templates/**/*.html")) // Set HTML templates in Gin r.SetHTMLTemplate(templ) diff --git a/web/static/css/isley.css b/web/static/css/isley.css new file mode 100644 index 0000000..08a4e97 --- /dev/null +++ b/web/static/css/isley.css @@ -0,0 +1,217 @@ +/* Dark Mode Styling */ +body { + background-color: #121212; + color: #ffffff; +} +/* +.container { + max-width: 400px; + margin-top: 50px; +} + */ +.card { + padding: 20px; +} + + +.clickable-row { + cursor: pointer; +} +@media (max-width: 768px) { + .mb-3 img { + margin-bottom: 1rem; + } +} +.video-js { + border-radius: 0.375rem; /* Match rounded corners */ + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Subtle shadow */ +} +.centered-video { + display: flex; + justify-content: center; +} + +.graph-container { + height: 500px; + background-color: #1e1e1e; + border: 1px solid #333; + border-radius: 8px; + padding: 15px; +} +.controls { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; +} +.dropdown { + position: relative; +} +.dropdown-menu { + display: none; + position: absolute; + background: #1e1e1e; + border: 1px solid #333; + box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.3); + padding: 10px; + z-index: 10; + color: #fff; +} + +.dropdown.open .dropdown-menu { + display: block; +} + +.dropdown-button { + cursor: pointer; + background: #007bff; + color: white; + padding: 10px 15px; + border: none; + border-radius: 5px; + display: inline-flex; + align-items: center; +} + +.dropdown-button i { + margin-left: 5px; +} + +.btn-outline-primary { + color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:hover { + background-color: #007bff; + color: white; +} + +.date-picker-container { + display: flex; + flex-direction: column; + gap: 10px; +} + +.date-picker-container input { + width: 100%; + background: #2e2e2e; + border: 1px solid #555; + color: #fff; +} + +.date-picker-container input:focus { + outline: none; + border-color: #007bff; +} + +.btn-secondary { + background-color: #333; + color: #fff; + border: 1px solid #555; +} + +.btn-secondary:hover { + background-color: #444; + color: #fff; +} + +.btn-primary { + background-color: #007bff; + border-color: #007bff; + color: white; +} + +.btn-primary:hover { + background-color: #0056b3; + border-color: #0056b3; +} + +table, th, td { + color: #fff; +} + +.table { + background-color: #1e1e1e; + border-color: #333; +} + +.table thead { + background-color: #2e2e2e; +} +.clickable-row:hover { + background-color: #f8f9fa; /* Optional: Light background on hover */ +} +.thumbnail-img { + cursor: pointer; + object-fit: contain; + height: 220px; + width: 100%; + transition: transform 0.2s; +} + +.thumbnail-img:hover { + transform: scale(1.05); +} +#dropArea { + cursor: pointer; + background-color: #f8f9fa; + transition: background-color 0.3s; +} + +#dropArea.border-success { + background-color: #d4edda; +} +.spinner-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1056; /* Higher than Bootstrap's modal (1055 for modal content) */ +} +#shareOptions a { + display: inline-block; + margin: 0.5em 0; +} +#shareOptions { + text-align: center; +} +/* Default button styles */ +.view-button { + background-color: transparent; + color: #6c757d; /* Bootstrap secondary color */ + border: 1px solid #ced4da; + transition: background-color 0.3s, color 0.3s; +} + +/* Hover effect */ +.view-button:hover { + background-color: #e9ecef; /* Light gray */ + color: #495057; /* Dark gray */ +} + +/* Selected button styles */ +.view-button.active { + background-color: #0d6efd; /* Bootstrap primary color */ + color: #ffffff; /* White text */ + border-color: #0d6efd; +} +.sortable { + cursor: pointer; +} + +.sortable.asc::after { + content: " β–²"; +} + +.sortable.desc::after { + content: " β–Ό"; +} +.clickable-row:hover { + background-color: #f8f9fa; /* Optional: Light background on hover */ +} \ No newline at end of file diff --git a/web/static/js/activity-edit-modal.js b/web/static/js/activity-edit-modal.js new file mode 100644 index 0000000..834624d --- /dev/null +++ b/web/static/js/activity-edit-modal.js @@ -0,0 +1,61 @@ +document.addEventListener("DOMContentLoaded", () => { + const editActivityModal = new bootstrap.Modal(document.getElementById("editActivityModal")); + const activityForm = document.getElementById("editActivityForm"); + const deleteActivityButton = document.getElementById("deleteActivity"); + + document.querySelectorAll(".activity-row").forEach(row => { + row.addEventListener("click", () => { + const activityData = JSON.parse(row.getAttribute("data-activity")); + + document.getElementById("activityId").value = activityData.id; + const formattedDate = activityData.date.split("T")[0]; + document.getElementById("editActivityDate").value = formattedDate; + document.getElementById("editActivityType").value = activityData.activity_id; + document.getElementById("editActivityNote").value = activityData.note; + + editActivityModal.show(); + }); + }); + + activityForm.addEventListener("submit", (e) => { + e.preventDefault(); + + const payload = { + id: parseInt(document.getElementById("activityId").value, 10), + date: document.getElementById("editActivityDate").value, + activity_id: parseInt(document.getElementById("editActivityType").value, 10), + note: document.getElementById("editActivityNote").value, + }; + + fetch("/plantActivity/edit", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload), + }) + .then(response => response.json()) + .then(() => location.reload()) + .catch(err => alert("{{ .lcl.failed_to_update_activity }}")); + }); + + deleteActivityButton.addEventListener("click", () => { + const activityId = document.getElementById("activityId").value; + + if (confirm("{{ .lcl.confirm_delete_activity }}")) { + fetch(`/plantActivity/delete/${activityId}`, { method: "DELETE" }) + .then(response => response.json()) + .then(() => location.reload()) + .catch(err => alert("{{ .lcl.failed_to_delete_activity }}")); + } + }); + + deletePlantButton.addEventListener("click", () => { + const plantId = document.getElementById("plantId").value; + + if (confirm("Are you sure you want to delete this plant?")) { + fetch(`/plant/delete/${plantId}`, { method: "DELETE" }) + .then(response => response.json()) + .then(() => location.href = "/plants") + .catch(err => alert("Failed to delete plant")); + } + }) +}); \ No newline at end of file diff --git a/web/static/js/add-activity-modal.js b/web/static/js/add-activity-modal.js new file mode 100644 index 0000000..e971455 --- /dev/null +++ b/web/static/js/add-activity-modal.js @@ -0,0 +1,57 @@ +document.addEventListener("DOMContentLoaded", () => { + const form = document.getElementById("addActivityForm"); + const addActivityModal = document.getElementById("addActivityModal"); + const activityDateInput = document.getElementById("activityDate"); + + // Set default date to today + //const setDefaultDate = () => { + // const today = new Date().toISOString().split("T")[0]; + // activityDateInput.value = today; + //}; + + // Set default date when the modal is shown + //addActivityModal.addEventListener("show.bs.modal", setDefaultDate); + + form.addEventListener("submit", (e) => { + e.preventDefault(); + + // Gather form data + const plantId = document.getElementById("plantId").value; + const activityId = document.getElementById("activityName").value; + const activityNote = document.getElementById("activityNote").value; + const date = activityDateInput.value; + + // Construct the payload + const payload = { + plant_id: parseInt(plantId, 10), + activity_id: parseInt(activityId, 10), + note: activityNote, + date: date, + }; + + // Send POST request to /plantActivity + fetch("/plantActivity", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }) + .then((response) => { + if (!response.ok) { + throw new Error("{{ .lcl.failed_to_add_activity }}"); + } + return response.json(); + }) + .then((data) => { + // Success: Close modal and reload page + const modal = bootstrap.Modal.getInstance(document.getElementById("addActivityModal")); + modal.hide(); + window.location.reload(); // Refresh page to show updated data + }) + .catch((error) => { + console.error("Error:", error); + alert("{{ .lcl.failed_to_add_activity }}"); + }); + }); +}); \ No newline at end of file diff --git a/web/static/js/add-measurement-modal.js b/web/static/js/add-measurement-modal.js new file mode 100644 index 0000000..9e6d48f --- /dev/null +++ b/web/static/js/add-measurement-modal.js @@ -0,0 +1,57 @@ +document.addEventListener("DOMContentLoaded", () => { + const form = document.getElementById("addMeasurementForm"); + const addMeasurementModal = document.getElementById("addMeasurementModal"); + const measurementDateInput = document.getElementById("measureDate"); + + // Set default date to today + //const setDefaultDate = () => { + // const today = new Date().toISOString().split("T")[0]; + // measurementDateInput.value = today; + //}; + + // Set default date when the modal is shown + //addMeasurementModal.addEventListener("show.bs.modal", setDefaultDate); + + form.addEventListener("submit", (e) => { + e.preventDefault(); + + // Gather form data + const plantId = document.getElementById("plantId").value; + const metricId = document.getElementById("measurementName").value; + const value = document.getElementById("measurementValue").value; + const date = measurementDateInput.value; + + // Construct the payload + const payload = { + plant_id: parseInt(plantId, 10), + metric_id: parseInt(metricId, 10), + value: parseFloat(value), + date: date, + }; + + // Send POST request to /plantMeasurement + fetch("/plantMeasurement", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }) + .then((response) => { + if (!response.ok) { + throw new Error("{{ .lcl.failed_to_add_measurement }}"); + } + return response.json(); + }) + .then((data) => { + // Success: Close modal and reload page + const modal = bootstrap.Modal.getInstance(document.getElementById("addMeasurementModal")); + modal.hide(); + window.location.reload(); // Refresh page to show updated data + }) + .catch((error) => { + console.error("Error:", error); + alert("{{ .lcl.failed_to_add_measurement }}"); + }); + }); +}); \ No newline at end of file diff --git a/web/static/js/add-plant-modal.js b/web/static/js/add-plant-modal.js new file mode 100644 index 0000000..38648ce --- /dev/null +++ b/web/static/js/add-plant-modal.js @@ -0,0 +1,140 @@ +document.addEventListener("DOMContentLoaded", () => { + const addPlantForm = document.getElementById("addPlantForm"); + const zoneSelect = document.getElementById("zoneSelect"); + const newZoneInput = document.getElementById("newZoneInput"); + const strainSelect = document.getElementById("strainSelect"); + const parentPlantDropdown = document.getElementById("parentPlantDropdown"); + const parentPlantSelect = document.getElementById("parentPlantSelect"); + const newStrainInputs = document.getElementById("newStrainInputs"); + const breederSelect = document.getElementById("breederSelect"); + const newBreederInput = document.getElementById("newBreederInput"); + const plantName = document.getElementById("plantName"); + const statusSelect = document.getElementById("statusSelect"); + const newZoneName = document.getElementById("newZoneName"); + const newStrainName = document.getElementById("newStrainName"); + const newBreederName = document.getElementById("newBreederName"); + const startDt = document.getElementById("startDate"); + const addPlantModal = document.getElementById("addPlantModal"); + const isClone = document.getElementById("isClone"); + const decrementSeedCount = document.getElementById("decrementSeedCount"); + + // Set default date to today + //const setDefaultDate = () => { + // const today = new Date().toISOString().split("T")[0]; + // startDt.value = today; + //}; + + // Reset Zone Selection + const resetZoneSelection = () => { + zoneSelect.disabled = false; + zoneSelect.value = ""; + newZoneInput.classList.add("d-none"); + }; + + // Reset Strain Selection + const resetStrainSelection = () => { + strainSelect.value = ""; + newStrainInputs.classList.add("d-none"); + resetBreederSelection(); + }; + + // Reset Breeder Selection + const resetBreederSelection = () => { + breederSelect.value = ""; + newBreederInput.classList.add("d-none"); + }; + + // Reset Parent Plant Selection + const resetParentPlantSelection = () => { + parentPlantSelect.value = "0"; + parentPlantDropdown.classList.add("d-none"); + }; + + isClone.addEventListener("change", () => { + if (isClone.checked) { + parentPlantDropdown.classList.remove("d-none"); + } else { + parentPlantDropdown.classList.add("d-none"); + parentPlantSelect.innerHTML = ''; + } + }); + + strainSelect.addEventListener("change", () => { + if (strainSelect.value === "new") { + parentPlantDropdown.classList.add("d-none"); + parentPlantSelect.innerHTML = ''; + } else { + fetch(`/plants/by-strain/${strainSelect.value}`) + .then(response => response.json()) + .then(plants => { + parentPlantSelect.innerHTML = ''; + plants.forEach(plant => { + parentPlantSelect.innerHTML += ``; + }); + //parentPlantDropdown.classList.remove("d-none"); + }); + } + }); + + // Show/Hide New Zone Input + zoneSelect.addEventListener("change", () => { + if (zoneSelect.value === "new") { + newZoneInput.classList.remove("d-none"); + } else { + newZoneInput.classList.add("d-none"); + } + }); + + // Show/Hide New Strain Inputs + strainSelect.addEventListener("change", () => { + if (strainSelect.value === "new") { + newStrainInputs.classList.remove("d-none"); + } else { + newStrainInputs.classList.add("d-none"); + } + }); + + // Show/Hide New Breeder Input + breederSelect.addEventListener("change", () => { + if (breederSelect.value === "new") { + newBreederInput.classList.remove("d-none"); + } else { + newBreederInput.classList.add("d-none"); + } + }); + + addPlantModal.addEventListener("show.bs.modal", () => { + resetZoneSelection(); + resetStrainSelection(); + }); + + addPlantForm.addEventListener("submit", (e) => { + e.preventDefault(); + const payload = { + name: plantName.value, + zone_id: zoneSelect.value === "new" ? null : parseInt(zoneSelect.value, 10), + new_zone: zoneSelect.value === "new" ? newZoneName.value : null, + strain_id: strainSelect.value === "new" ? null : parseInt(strainSelect.value, 10), + new_strain: strainSelect.value === "new" ? { + name: newStrainName.value, + breeder_id: breederSelect.value === "new" ? null : parseInt(breederSelect.value, 10), + new_breeder: breederSelect.value === "new" ? newBreederName.value : null + } : null, + status_id: parseInt(statusSelect.value, 10), + date: startDt.value, + clone: isClone.checked ? 1 : 0, + parent_id: parseInt(parentPlantSelect.value, 10), + decrement_seed_count: decrementSeedCount.checked, + }; + fetch("/plants", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload), + }) + .then(response => { + if (!response.ok) throw new Error("Failed to add plant"); + location.reload(); + }) + .catch(error => alert("Failed to add plant. Try again.")); + }); +}); diff --git a/web/static/js/add-strain-modal.js b/web/static/js/add-strain-modal.js new file mode 100644 index 0000000..873be62 --- /dev/null +++ b/web/static/js/add-strain-modal.js @@ -0,0 +1,73 @@ +document.addEventListener("DOMContentLoaded", () => { + const addStrainForm = document.getElementById("addStrainForm"); + const breederSelect = document.getElementById("breederSelect"); + const newBreederInput = document.getElementById("newBreederInput"); + const indicaSativaSlider = document.getElementById("indicaSativaSlider"); + const indicaLabel = document.getElementById("indicaLabel"); + const sativaLabel = document.getElementById("sativaLabel"); + const cycleTime = document.getElementById("cycleTime"); + const url = document.getElementById("url"); + + // Show/Hide New Breeder Input + breederSelect.addEventListener("change", () => { + if (breederSelect.value === "new") { + newBreederInput.classList.remove("d-none"); + } else { + newBreederInput.classList.add("d-none"); + } + }); + + // Update labels dynamically as the slider changes + indicaSativaSlider.addEventListener("input", (e) => { + const indica = e.target.value; + const sativa = 100 - indica; + indicaLabel.textContent = `Indica: ${indica}%`; + sativaLabel.textContent = `Sativa: ${sativa}%`; + }); + + // If no breeders exist, show the new breeder input by default + if (document.getElementById("breederSelect").length === 1) { + newBreederInput.classList.remove("d-none"); + } + + addStrainForm.addEventListener("submit", (e) => { + e.preventDefault(); + + // Gather form data + const payload = { + name: document.getElementById("strainName").value, + breeder_id: breederSelect.value === "new" ? null : parseInt(breederSelect.value, 10), + new_breeder: breederSelect.value === "new" ? document.getElementById("newBreederName").value : null, + indica: parseInt(indicaSativaSlider.value, 10), + sativa: 100 - parseInt(indicaSativaSlider.value, 10), + autoflower: document.getElementById("autoflower").value === "true", + seed_count: parseInt(document.getElementById("seedCount").value, 10), + description: document.getElementById("strainDescription").value, + short_desc: document.getElementById("strainShortDescription").value, + cycle_time: parseInt(cycleTime.value, 10), + url: url.value + }; + + // Send POST request to add the strain + fetch("/strains", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }) + .then((response) => { + if (!response.ok) { + throw new Error("{{ .lcl.strain_add_fail }}"); + } + return response.json(); + }) + .then((data) => { + location.reload(); // Reload the page to show the new strain + }) + .catch((error) => { + console.error("Error:", error); + alert("{{ .lcl.strain_add_error }}"); + }); + }); +}); \ No newline at end of file diff --git a/web/static/js/decorate-image-modal.js b/web/static/js/decorate-image-modal.js new file mode 100644 index 0000000..188d81e --- /dev/null +++ b/web/static/js/decorate-image-modal.js @@ -0,0 +1,273 @@ +document.addEventListener("DOMContentLoaded", () => { + const imageModal = document.getElementById("imageModal"); + const modalImage = document.getElementById("modalImage"); + const originalImageSrc = document.getElementById("originalImageSrc"); + const modalDescription = document.getElementById("modalDescription"); + const modalDateInput = document.getElementById("modalDate"); + const imageIdInput = document.getElementById("imageId"); + const modalStartDate = document.getElementById("modalStartDate"); + const text1dropdown = document.getElementById("text1Dropdown"); + const text2dropdown = document.getElementById("text2Dropdown"); + const prevButton = document.getElementById("prevImage"); + const nextButton = document.getElementById("nextImage"); + + let currentImageIndex = 0; + const images = Array.from(document.querySelectorAll(".thumbnail-img")); + + function loadImage(index) { + const img = images[index]; + modalImage.src = img.dataset.image; + originalImageSrc.src = img.dataset.image; + modalDateInput.value = img.dataset.date; + imageIdInput.value = img.dataset.id; + + const plantStartDate = new Date(modalStartDate.value); + const modalDate = new Date(img.dataset.date); + const diffTime = Math.abs(modalDate - plantStartDate); + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + const diffWeeks = Math.floor(diffDays / 7); + const strainName = document.getElementById("strainName").value; + const breederName = document.getElementById("breederName").value; + const plantName = document.getElementById("modalPlantName").value; + + // Populate dropdowns + text1dropdown.innerHTML = ""; + text2dropdown.innerHTML = ""; + const options = [ + new Option(strainName, strainName), + new Option(breederName, breederName), + new Option(plantName, plantName), + new Option("Day " + diffDays, "Day " + diffDays), + new Option("Week " + diffWeeks, "Week " + diffWeeks), + new Option("Custom", "Custom") + ]; + options.forEach(opt => text1dropdown.add(opt.cloneNode(true))); + options.forEach(opt => text2dropdown.add(opt.cloneNode(true))); + + text1dropdown.value = strainName; + text2dropdown.value = "Day " + diffDays; + + // Update button state + prevButton.disabled = index === 0; + nextButton.disabled = index === images.length - 1; + } + + images.forEach((img, index) => { + img.addEventListener("click", () => { + currentImageIndex = index; + loadImage(currentImageIndex); + }); + }); + // Navigate to the previous image + function showPrevImage() { + if (currentImageIndex > 0) { + currentImageIndex--; + loadImage(currentImageIndex); + } + } + + // Navigate to the next image + function showNextImage() { + if (currentImageIndex < images.length - 1) { + currentImageIndex++; + loadImage(currentImageIndex); + } + } + // Add click listeners for buttons + prevButton.addEventListener("click", showPrevImage); + nextButton.addEventListener("click", showNextImage); + + // Add arrow key navigation + document.addEventListener("keydown", (e) => { + if (imageModal.classList.contains("show")) { // Only respond if modal is open + if (e.key === "ArrowLeft") { + showPrevImage(); // Left arrow key + } else if (e.key === "ArrowRight") { + showNextImage(); // Right arrow key + } + } + }); + +}); + + +document.addEventListener("DOMContentLoaded", () => { + const fontDropdown = document.getElementById("fontDropdown"); + const fontPreview = document.getElementById("fontPreview"); + const logoDropdown = document.getElementById("logoDropdown"); + const logoPreview = document.getElementById("logoPreview"); + const decorateImageButton = document.getElementById("decorateImage"); + const modalImage = document.getElementById("modalImage"); + const originalImageSrc = document.getElementById("originalImageSrc"); + const text1Input = document.getElementById("text1"); + const text2Input = document.getElementById("text2"); + const text1Dropdown = document.getElementById("text1Dropdown"); + const text2Dropdown = document.getElementById("text2Dropdown"); + + // Load fonts + fetch("/listFonts") + .then((response) => response.json()) + .then((data) => { + if (data.success) { + data.fonts.forEach((font) => { + const fontName = font.split("/").pop().replace(".ttf", ""); + const option = document.createElement("option"); + option.value = font; + option.textContent = fontName; + fontDropdown.appendChild(option); + }); + + const selectedFont = fontDropdown.value; + if (selectedFont) { + const fontName = selectedFont.split("/").pop().replace(".ttf", ""); + const fontUrl = `/${selectedFont}`; + + // Add @font-face rule dynamically + const style = document.createElement("style"); + style.innerHTML = ` + @font-face { + font-family: '${fontName}'; + src: url('${fontUrl}'); + } + `; + document.head.appendChild(style); + + // Apply the new font to the preview + fontPreview.style.fontFamily = fontName; + } + + } + }); + + // Load logos + fetch("/listLogos") + .then((response) => response.json()) + .then((data) => { + if (data.success) { + data.logos.forEach((logo) => { + const option = document.createElement("option"); + option.value = logo; + option.textContent = logo.split("/").pop(); + logoDropdown.appendChild(option); + }); + } + }); + + // Font preview + fontDropdown.addEventListener("change", () => { + const selectedFont = fontDropdown.value; + if (selectedFont) { + const fontName = selectedFont.split("/").pop().replace(".ttf", ""); + const fontUrl = `/${selectedFont}`; + + // Add @font-face rule dynamically + const style = document.createElement("style"); + style.innerHTML = ` + @font-face { + font-family: '${fontName}'; + src: url('${fontUrl}'); + } + `; + document.head.appendChild(style); + + // Apply the new font to the preview + fontPreview.style.fontFamily = fontName; + } + }); + + // Logo preview + logoDropdown.addEventListener("change", () => { + if (logoDropdown.value) { + logoPreview.src = `/${logoDropdown.value}`; + logoPreview.style.display = "block"; + } else { + logoPreview.style.display = "none"; + } + }); + + // Enable custom input fields based on dropdown selection + [text1Dropdown, text2Dropdown].forEach((dropdown, index) => { + dropdown.addEventListener("change", () => { + const input = index === 0 ? text1Input : text2Input; + input.disabled = dropdown.value !== "Custom"; + }); + }); + + decorateImageButton.addEventListener("click", () => { + const fullImagePath = originalImageSrc.src; + const imagePath = new URL(fullImagePath).pathname.replace(/^\//, ""); + const text1Dropdown = document.getElementById("text1Dropdown"); + const text2Dropdown = document.getElementById("text2Dropdown"); + const text1Input = document.getElementById("text1"); + const text2Input = document.getElementById("text2"); + const text1 = text1Dropdown.value === "Custom" ? text1Input.value : text1Dropdown.value; + const text2 = text2Dropdown.value === "Custom" ? text2Input.value : text2Dropdown.value; + const logo = logoDropdown.value; + const font = fontDropdown.value; + const textColor = document.getElementById("textColor").value; + const text1Corner = document.getElementById("text1Corner").value; + const text2Corner = document.getElementById("text2Corner").value; + + // Add a spinner overlay + const modal = document.getElementById("imageModal"); + const spinnerOverlay = document.createElement("div"); + spinnerOverlay.id = "spinnerOverlay"; + spinnerOverlay.innerHTML = `
    `; + modal.appendChild(spinnerOverlay); + + // Send POST request + fetch("/decorateImage", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + imagePath, + text1, + text2, + text1Corner, + text2Corner, + logo, + font, + textColor, + }), + }) + .then((response) => response.json()) + .then((data) => { + if (data.success) { + modalImage.src = "../" + data.outputPath + "?" + new Date().getTime(); + } else { + alert("Failed to decorate image: " + data.error); + } + }) + .catch((error) => console.error("Error decorating image:", error)) + .finally(() => { + document.getElementById("spinnerOverlay").remove(); + }); + }); +}); + +function confirmDeleteImage() { + const imageId = document.getElementById("imageId").value; + if (confirm("Are you sure you want to delete this image?")) { + fetch(`/plant/images/${imageId}/delete`, { + method: "DELETE", + headers: { + "Content-Type": "application/json", + }, + }) + .then((response) => { + if (!response.ok) { + throw new Error("Failed to delete image"); + } + return response.json(); + }) + .then((data) => { + alert("Image deleted successfully!"); + // Reload the page to reflect changes + location.reload(); + }) + .catch((error) => { + console.error("Error deleting image:", error); + alert("An error occurred while deleting the image."); + }); + } +} diff --git a/web/static/js/edit-plant-modal.js b/web/static/js/edit-plant-modal.js new file mode 100644 index 0000000..5951249 --- /dev/null +++ b/web/static/js/edit-plant-modal.js @@ -0,0 +1,129 @@ +document.addEventListener("DOMContentLoaded", () => { + const changeStatusModal = document.getElementById("changeStatusModal"); + const statusDateInput = document.getElementById("statusDate"); + const zoneSelect = document.getElementById("zoneSelect"); + const newZoneInput = document.getElementById("newZoneInput"); + const strainSelect = document.getElementById("strainSelect"); + const newStrainInputs = document.getElementById("newStrainInputs"); + const breederSelect = document.getElementById("breederSelect"); + const newBreederInput = document.getElementById("newBreederInput"); + const newZoneName = document.getElementById("newZoneName"); + const newStrainName = document.getElementById("newStrainName"); + const newBreederName = document.getElementById("newBreederName"); + const harvestWeight = document.getElementById("harvestWeight"); + + // Set default date to today + //const setDefaultDate = () => { + // const today = new Date().toISOString().split("T")[0]; + // statusDateInput.value = today; + //}; + + // Reset Zone Selection + const resetZoneSelection = () => { + zoneSelect.disabled = false; + zoneSelect.value = ""; + newZoneInput.classList.add("d-none"); + }; + + // Reset Strain Selection + const resetStrainSelection = () => { + strainSelect.value = ""; + newStrainInputs.classList.add("d-none"); + resetBreederSelection(); + }; + + // Reset Breeder Selection + const resetBreederSelection = () => { + breederSelect.value = ""; + newBreederInput.classList.add("d-none"); + }; + + + // Set default date when the modal is shown + //changeStatusModal.addEventListener("show.bs.modal", () => { + // setDefaultDate(); + //}); + + // Show/Hide New Zone Input + zoneSelect.addEventListener("change", () => { + if (zoneSelect.value === "new") { + newZoneInput.classList.remove("d-none"); + } else { + newZoneInput.classList.add("d-none"); + } + }); + + // Show/Hide New Strain Inputs + strainSelect.addEventListener("change", () => { + if (strainSelect.value === "new") { + newStrainInputs.classList.remove("d-none"); + } else { + newStrainInputs.classList.add("d-none"); + } + }); + + // Show/Hide New Breeder Input + breederSelect.addEventListener("change", () => { + if (breederSelect.value === "new") { + newBreederInput.classList.remove("d-none"); + } else { + newBreederInput.classList.add("d-none"); + } + }); + + // Handle form submission + const changeStatusForm = document.getElementById("changeStatusForm"); + changeStatusForm.addEventListener("submit", (e) => { + e.preventDefault(); + + // Gather form data + const plantId = document.getElementById("plantId").value; + const status = document.getElementById("status").value; + const date = statusDateInput.value; + const startDate = document.getElementById("startDate").value; + + const payload = { + plant_id: parseInt(plantId, 10), + plant_name: document.getElementById("plantName").value, + plant_description: document.getElementById("plantDescription").value, + status_id: parseInt(status, 10), + date: date, + zone_id: parseInt(zoneSelect.value, 10), + new_zone: newZoneName.value, + strain_id: parseInt(strainSelect.value, 10), + new_strain: strainSelect.value === "new" ? { + name: newStrainName.value, + breeder_id: breederSelect.value === "new" ? null : parseInt(breederSelect.value, 10), + new_breeder: breederSelect.value === "new" ? newBreederName.value : null + } : null, + clone: document.getElementById("cloneCheckbox").checked, + start_date: startDate, + harvest_weight: parseFloat(harvestWeight.value), + }; + + //alert(JSON.stringify(payload)); + + // Send POST request to change status + fetch("/plant", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }) + .then(response => { + if (!response.ok) { + throw new Error("{{ .lcl.failed_to_change_status }}"); + } + return response.json(); + }) + .then(data => { + //alert("Status changed successfully!"); + location.reload(); // Reload the page to reflect changes + }) + .catch(error => { + console.error("Error:", error); + alert("{{ .lcl.failed_to_change_status }}"); + }); + }); +}); \ No newline at end of file diff --git a/web/static/js/edit-strain-modal.js b/web/static/js/edit-strain-modal.js new file mode 100644 index 0000000..d9dc8c5 --- /dev/null +++ b/web/static/js/edit-strain-modal.js @@ -0,0 +1,131 @@ +document.addEventListener("DOMContentLoaded", () => { + const editStrainModal = new bootstrap.Modal(document.getElementById("editStrainModal")); + const editStrainForm = document.getElementById("editStrainForm"); + const deleteStrainButton = document.getElementById("deleteStrainButton"); + const editBreederSelect = document.getElementById("editBreederSelect"); + const editNewBreederInput = document.getElementById("editNewBreederInput"); + const editIndicaSativaSlider = document.getElementById("editIndicaSativaSlider"); + const editIndicaLabel = document.getElementById("editIndicaLabel"); + const editSativaLabel = document.getElementById("editSativaLabel"); + const editCycleTime = document.getElementById("editCycleTime"); + const editUrl = document.getElementById("editUrl"); + + // Show/Hide New Breeder Input + editBreederSelect.addEventListener("change", () => { + if (editBreederSelect.value === "new") { + editNewBreederInput.classList.remove("d-none"); + } else { + editNewBreederInput.classList.add("d-none"); + } + }); + + // Update Indica/Sativa labels dynamically + editIndicaSativaSlider.addEventListener("input", () => { + const indica = editIndicaSativaSlider.value; + const sativa = 100 - indica; + editIndicaLabel.textContent = `Indica: ${indica}%`; + editSativaLabel.textContent = `Sativa: ${sativa}%`; + }); + + // Handle form submission + editStrainForm.addEventListener("submit", (e) => { + e.preventDefault(); + + const strainId = document.getElementById("editStrainId").value; + const payload = { + name: document.getElementById("editStrainName").value, + breeder_id: editBreederSelect.value === "new" ? null : parseInt(editBreederSelect.value, 10), + new_breeder: editBreederSelect.value === "new" ? document.getElementById("editNewBreederName").value : null, + indica: parseInt(editIndicaSativaSlider.value, 10), + sativa: 100 - parseInt(editIndicaSativaSlider.value, 10), + autoflower: document.getElementById("editAutoflower").value === "true", + seed_count: parseInt(document.getElementById("editSeedCount").value, 10), + description: document.getElementById("editStrainDescription").value, + short_desc: document.getElementById("editStrainShortDescription").value, + cycle_time: parseInt(editCycleTime.value, 10), + url: editUrl.value + }; + fetch(`/strains/${strainId}`, { + method: "PUT", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }) + .then(response => { + if (!response.ok) throw new Error("{{ .lcl.strain_update_fail }}"); + location.reload(); + }) + .catch(error => { + console.error("{{ .lcl.strain_update_error }}", error); + alert("{{ .lcl.update_error }}"); + }); + }); + + deleteStrainButton.addEventListener("click", () => { + const strainId = document.getElementById("editStrainId").value; + + if (confirm("Are you sure you want to delete this strain?")) { + fetch(`/strains/${strainId}`, { method: "DELETE" }) + .then(response => { + if (!response.ok) throw new Error("{{ .lcl.delete_fail }}"); + + // βœ… Redirect only after successful deletion + window.location.href = "/strains"; + }) + .catch(error => { + console.error("Error deleting strain:", error); + alert("{{ .lcl.delete_error }}"); + }); + } + }); + +}); + +// Populate modal fields when editing +const editModal = document.getElementById('editStrainModal'); + +editModal.addEventListener('show.bs.modal', function (event) { + const button = event.relatedTarget; + const encodedStrain = button.getAttribute('data-strain'); + + if (!encodedStrain) return; + + // Decode HTML entities like " + const parser = new DOMParser(); + const decodedHtml = parser.parseFromString(encodedStrain, 'text/html').documentElement.textContent; + + // Now parse the JSON + const strainData = JSON.parse(decodedHtml); + + // Populate form fields + document.getElementById("editStrainId").value = strainData.id; + document.getElementById("editStrainName").value = strainData.name; + editBreederSelect.value = strainData.breeder_id || "new"; + + if (strainData.breeder_id) { + editNewBreederInput.classList.add("d-none"); + document.getElementById("editNewBreederName").value = ""; + } else { + editNewBreederInput.classList.remove("d-none"); + document.getElementById("editNewBreederName").value = strainData.new_breeder || ""; + } + + document.getElementById("editIndicaSativaSlider").value = strainData.indica; + editIndicaLabel.textContent = `Indica: ${strainData.indica}%`; + editSativaLabel.textContent = `Sativa: ${100 - strainData.indica}%`; + if (strainData.autoflower === "true" || strainData.autoflower === true || strainData.autoflower === 1) { + document.getElementById("editAutoflower").value = "true"; + } else { + document.getElementById("editAutoflower").value = "false"; + } + document.getElementById("editAutoflower").value = strainData.autoflower; + document.getElementById("editSeedCount").value = strainData.seed_count; + document.getElementById("editStrainDescription").value = strainData.description; + document.getElementById("editCycleTime").value = strainData.cycle_time; + document.getElementById("editUrl").value = strainData.url; + document.getElementById("editStrainShortDescription").value = strainData.short_desc; + + // Show the modal + editModal.show(); +}); \ No newline at end of file diff --git a/web/static/js/graph.js b/web/static/js/graph.js new file mode 100644 index 0000000..b00d505 --- /dev/null +++ b/web/static/js/graph.js @@ -0,0 +1,139 @@ + document.addEventListener("DOMContentLoaded", () => { + const ctx = document.getElementById('chart').getContext('2d'); + const sensorIds = document.getElementById('sensorID').value.split(','); + const timePickerButton = document.getElementById('timePickerButton'); + const dropdownMenu = document.getElementById('timeRangeMenu'); + //const dropdownMenu = document.querySelector('.dropdown-menu'); + const timeRangeButtons = document.querySelectorAll('.time-range-btn'); + const startDateInput = document.getElementById('startDate'); + const endDateInput = document.getElementById('endDate'); + const applyDateRangeButton = document.getElementById('applyDateRange'); + const resetZoomButton = document.getElementById('resetZoom'); + let chart; + let sensorNamesCache = {}; + + // Retry fetch with exponential backoff + const retryFetch = (url, retries = 3, delay = 500) => { + return new Promise((resolve, reject) => { + const attemptFetch = (attempt) => { + fetch(url) + .then((response) => { + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); +} + resolve(response.json()); +}) + .catch((err) => { + if (attempt <= retries) { + console.warn(`Retrying ${url} (Attempt ${attempt} of ${retries})...`); + setTimeout(() => attemptFetch(attempt + 1), delay * attempt); +} else { + reject(err); +} +}); +}; + attemptFetch(1); +}); +}; + + timePickerButton.addEventListener('click', () => { + dropdownMenu.parentElement.classList.toggle('open'); +}); + + document.addEventListener('click', (e) => { + if (!dropdownMenu.contains(e.target) && !timePickerButton.contains(e.target)) { + dropdownMenu.parentElement.classList.remove('open'); +} +}); + + const fetchAndRenderData = (queryParams) => { + Promise.all(sensorIds.map(id => + retryFetch(`/sensorData?sensor=${id}&${queryParams}`) + .then(data => { + // Cache sensor names from data + if (data.length > 0 && data[0].sensor_name) { + sensorNamesCache[id] = data[0].sensor_name; +} + return { id, data }; +}) + )) + .then(results => { + const datasets = results.map((result, index) => { + const formattedData = result.data.map(item => ({ + x: new Date(item.create_dt), + y: item.value +})); + + return { + label: `Sensor: ${sensorNamesCache[result.id] || 'Unknown'}`, + data: formattedData, + borderColor: `hsl(${index * 60}, 70%, 50%)`, + backgroundColor: `hsl(${index * 60}, 70%, 80%)`, + borderWidth: 1, + tension: 0.4, +}; +}); + + if (chart) { + chart.destroy(); +} + + chart = new Chart(ctx, { + type: 'line', + data: { datasets }, + options: { + responsive: true, + maintainAspectRatio: false, + scales: { + x: { + type: 'time', + time: { + tooltipFormat: 'MMM d, h:mm a', + unit: 'hour', +}, + title: { display: true, text: 'Time' } +}, + y: { title: { display: true, text: 'Sensor Value' } } +}, + plugins: { + zoom: { + pan: { enabled: true, mode: 'x' }, + zoom: { + pinch: { enabled: true }, + wheel: { enabled: true }, + mode: 'x', +} +} +} +} +}); +}) + .catch(error => console.error('Error fetching data:', error)); +}; + + timeRangeButtons.forEach(button => { + button.addEventListener('click', (e) => { + const minutes = e.target.dataset.value; + fetchAndRenderData(`minutes=${minutes}`); + dropdownMenu.parentElement.classList.remove('open'); +}); +}); + + applyDateRangeButton.addEventListener('click', () => { + const startDate = startDateInput.value; + const endDate = endDateInput.value; + + if (startDate && endDate) { + fetchAndRenderData(`start=${startDate}&end=${endDate}`); + dropdownMenu.parentElement.classList.remove('open'); +} +}); + + resetZoomButton.addEventListener('click', () => { + if (chart) { + chart.resetZoom(); +} +}); + + fetchAndRenderData('minutes=1440'); +}); \ No newline at end of file diff --git a/web/static/js/header.js b/web/static/js/header.js new file mode 100644 index 0000000..efedfb3 --- /dev/null +++ b/web/static/js/header.js @@ -0,0 +1,19 @@ +document.addEventListener("DOMContentLoaded", () => { + const langMenu = document.getElementById("languageMenu"); + const currentLangLabel = document.getElementById("currentLanguage"); + + // Get saved language or use current one from server + const savedLang = localStorage.getItem("language") || currentLangLabel.innerText.toLowerCase(); + + // Update the displayed language + currentLangLabel.innerText = savedLang.toUpperCase(); + + // Handle language selection + langMenu.addEventListener("click", (e) => { + const selectedLang = e.target.closest(".lang-select")?.getAttribute("data-lang"); + if (selectedLang) { + localStorage.setItem("language", selectedLang); // Save preference + window.location.href = `/?lang=${selectedLang}`; // Reload page with new language + } + }); +}); diff --git a/web/static/js/link-sensor-modal.js b/web/static/js/link-sensor-modal.js new file mode 100644 index 0000000..3ce869f --- /dev/null +++ b/web/static/js/link-sensor-modal.js @@ -0,0 +1,31 @@ +document.addEventListener("DOMContentLoaded", () => { + // Handle Linking Sensors + const linkSensorForm = document.getElementById("linkSensorForm"); + linkSensorForm.addEventListener("submit", (e) => { + e.preventDefault(); + const plantId = document.getElementById("plantId").value; + const formData = new FormData(linkSensorForm); + const sensorIds = formData.getAll("sensorIds").map(id => parseInt(id, 10)); + const payload = { + plant_id: plantId, + sensor_ids: sensorIds + }; + + fetch("/plant/link-sensors", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }) + .then(response => { + if (!response.ok) throw new Error("{{ .lcl.failed_to_link_sensors }}"); + //alert("Sensors linked successfully!"); + location.reload(); + }) + .catch(error => { + console.error("Error:", error); + alert("{{ .lcl.failed_to_link_sensors }}"); + }); + }); +}); \ No newline at end of file diff --git a/web/static/js/main.js b/web/static/js/main.js new file mode 100644 index 0000000..523cf98 --- /dev/null +++ b/web/static/js/main.js @@ -0,0 +1,201 @@ +/* +Clickable rows for plant cards + */ +document.addEventListener("DOMContentLoaded", () => { + // Add click event to rows + document.querySelectorAll(".clickable-row").forEach(row => { + row.addEventListener("click", () => { + const plantId = row.getAttribute("data-id"); + if (plantId) { + window.location.href = `/plant/${plantId}`; + } + }); + }); +}); + +/* +Dynamic loading of sensor data and video streams + */ +document.addEventListener("DOMContentLoaded", async () => { + const sensorsOverview = document.getElementById("sensorsOverview"); + + // Define titles for each group + const groupTitles = { + Other:"Environment Sensors", + ACIP: "AC Infinity Devices" , + Soil: "EcoWitt Soil Sensors", +}; + + // Create spinner element + const spinner = document.createElement("div"); + spinner.classList.add("spinner-border", "text-primary"); + spinner.setAttribute("role", "status"); + spinner.innerHTML = `Loading ...`; + sensorsOverview.appendChild(spinner); + + + try { + // Fetch sensor and stream data concurrently + const [sensorResponse, streamResponse] = await Promise.all([ + fetch("/sensors/grouped"), + fetch("/streams") + ]); + + const sensorData = await sensorResponse.json(); + const streamData = await streamResponse.json(); + sensorsOverview.innerHTML = ""; + sensorsOverview.classList.add("p-3"); + + Object.keys(sensorData).forEach((zone) => { + const zoneContainer = document.createElement("div"); + zoneContainer.classList.add("mb-5"); + + const showZoneHeader = Object.keys(sensorData).length > 0; + if (showZoneHeader) { + zoneContainer.innerHTML = ` +

    ${zone}

    + `; + } + + // --- Add Video Feeds --- + if (streamData[zone] && streamData[zone].length > 0) { + const videoContainer = document.createElement("div"); + videoContainer.classList.add("row", "g-3"); + + let streamCount = 0; + streamData[zone].forEach((stream, index) => { + if (stream.visible === false) { + return; + } else { + streamCount++; + } + }); + let classItem = "col-12 col-md-6 mb-3"; + if (streamCount === 1) { + classItem = "col-12 mb-3"; + } + + streamData[zone].forEach((stream, index) => { + if (stream.visible === false) { + return; + } + const videoId = `${zone.replace(/\s+/g, '-')}-video-${index}`; + const imageUrl = `/uploads/streams/stream_${stream.id}_latest.jpg`; + + const streamHTML = ` +
    +
    + Screengrab of ${stream.name} +
    +
    +`; + + videoContainer.insertAdjacentHTML("beforeend", streamHTML); + + // Attach event listener AFTER ensuring the element is rendered + setTimeout(() => { + if (stream.url.endsWith('.m3u8')) { + const imageElement = document.getElementById(`${videoId}-img`); + if (imageElement) { // Check if the element exists + imageElement.addEventListener("click", () => { + const container = document.getElementById(`${videoId}-container`); + container.innerHTML = ` + + `; + videojs(`${videoId}-player`, { fluid: true, liveui: true }).ready(function() { + this.play(); + }); + }); + } else { + console.error(`Element ${videoId}-img not found.`); + } + } + }, 0); // Delay execution until next render cycle + }); + + zoneContainer.appendChild(videoContainer); + } + + + // --- Process Sensors --- + const sensorGroups = { Other: [], ACIP: [], Soil: [] }; + Object.keys(sensorData[zone]).forEach((device) => { + sensorData[zone][device].forEach((sensor) => { + if (sensor.type.startsWith("Soil")) { + sensorGroups.Soil.push(sensor); + } else if (sensor.type.startsWith("ACIP")) { + sensorGroups.ACIP.push(sensor); + } else { + sensorGroups.Other.push(sensor); + } + }); + }); + + const cardRow = document.createElement("div"); + cardRow.classList.add("row", "g-4"); + + Object.keys(sensorGroups).forEach((group) => { + if (sensorGroups[group].length > 0) { + const groupSensorIds = sensorGroups[group].map(sensor => sensor.id).join(","); + const groupHeaderLink = `${groupTitles[group] || group}`; + + const card = ` +
    +
    +
    + ${groupHeaderLink} +
    +
    + ${sensorGroups[group] + .map( + (sensor) => ` +
    + ${sensor.name} +
    + ${sensor.value} ${sensor.unit} + +
    +
    + ` + ) + .join("")} +
    +
    +
    + `; + cardRow.innerHTML += card; + } + }); + + zoneContainer.appendChild(cardRow); + sensorsOverview.appendChild(zoneContainer); + }); + + // Add click event to sensor rows + console.time("Add Click Events"); + document.querySelectorAll(".sensor-row").forEach((row) => { + row.addEventListener("click", () => { + const sensorId = row.getAttribute("data-id"); + if (sensorId) { + window.location.href = `/graph/${sensorId}`; + } + }); + }); + + } catch (error) { + console.error("Error fetching data:", error); + } +}); \ No newline at end of file diff --git a/web/static/js/measurement-edit-modal.js b/web/static/js/measurement-edit-modal.js new file mode 100644 index 0000000..d2ea433 --- /dev/null +++ b/web/static/js/measurement-edit-modal.js @@ -0,0 +1,48 @@ +document.addEventListener("DOMContentLoaded", () => { + const editMeasurementModal = new bootstrap.Modal(document.getElementById("editMeasurementModal")); + const measurementForm = document.getElementById("editMeasurementForm"); + const deleteMeasurementButton = document.getElementById("deleteMeasurement"); + + document.querySelectorAll(".measurement-row").forEach(row => { + row.addEventListener("click", () => { + const measurementData = JSON.parse(row.getAttribute("data-measurement")); + + document.getElementById("measurementId").value = measurementData.id; + const formattedDate = measurementData.date.split("T")[0]; + document.getElementById("editMeasurementDate").value = formattedDate; + document.getElementById("editMeasurementValue").value = measurementData.value; + + editMeasurementModal.show(); + }); + }); + + measurementForm.addEventListener("submit", (e) => { + e.preventDefault(); + + const payload = { + id: parseInt(document.getElementById("measurementId").value, 10), + date: document.getElementById("editMeasurementDate").value, + value: parseFloat(document.getElementById("editMeasurementValue").value), + }; + + fetch("/plantMeasurement/edit", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload), + }) + .then(response => response.json()) + .then(() => location.reload()) + .catch(err => alert("{{ .lcl.failed_to_update_measurement }}")); + }); + + deleteMeasurementButton.addEventListener("click", () => { + const measurementId = document.getElementById("measurementId").value; + + if (confirm("{{ .lcl.confirm_delete_measurement }}")) { + fetch(`/plantMeasurement/delete/${measurementId}`, { method: "DELETE" }) + .then(response => response.json()) + .then(() => location.reload()) + .catch(err => alert("{{ .lcl.failed_to_delete_measurement }}")); + } + }); +}); \ No newline at end of file diff --git a/web/static/js/multi-plant-activity-modal.js b/web/static/js/multi-plant-activity-modal.js new file mode 100644 index 0000000..eb4afcb --- /dev/null +++ b/web/static/js/multi-plant-activity-modal.js @@ -0,0 +1,51 @@ +document.addEventListener("DOMContentLoaded", () => { + const form = document.getElementById("addMultiPlantActivityForm"); + const addMultiPlantActivityModal = document.getElementById("addMultiPlantActivityModal"); + const activityMultiDateInput = document.getElementById("activityMultiDate"); + + // Set default date to today + //const setMultiDefaultDate = () => { + // const today = new Date().toISOString().split("T")[0]; + // activityMultiDateInput.value = today; + //}; + + // Set default date when the modal is shown + //addMultiPlantActivityModal.addEventListener("show.bs.modal", setMultiDefaultDate); + + form.addEventListener("submit", (e) => { + e.preventDefault(); + + // Gather selected plant IDs + const selectedPlants = Array.from(document.getElementById("plantSelection").selectedOptions).map(opt => parseInt(opt.value)); + + // Gather other form data + const payload = { + plant_ids: selectedPlants, + activity_id: parseInt(document.getElementById("activityMultiName").value), + note: document.getElementById("activityMultiNote").value, + date: document.getElementById("activityMultiDate").value + }; + + // Send POST request to backend + fetch("/record-multi-activity", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(payload) + }) + .then(response => { + if (!response.ok) throw new Error("Failed to record activity"); + return response.json(); + }) + .then(() => { + const modal = bootstrap.Modal.getInstance(document.getElementById("addMultiPlantActivityModal")); + modal.hide(); + location.reload(); // Reload page to reflect changes + }) + .catch(error => { + console.error("Error:", error); + alert("Error recording activity. Please try again."); + }); + }); +}); \ No newline at end of file diff --git a/web/static/js/status-history-edit-modal.js b/web/static/js/status-history-edit-modal.js new file mode 100644 index 0000000..34e1242 --- /dev/null +++ b/web/static/js/status-history-edit-modal.js @@ -0,0 +1,51 @@ + +document.addEventListener("DOMContentLoaded", () => { + const editStatusModal = new bootstrap.Modal(document.getElementById("editStatusModal")); + const statusForm = document.getElementById("editStatusForm"); + const deleteStatusButton = document.getElementById("deleteStatus"); + + document.querySelectorAll(".status-row").forEach(row => { + row.addEventListener("click", () => { + const statusData = JSON.parse(row.getAttribute("data-status")); + + document.getElementById("statusId").value = statusData.id; + console.log(statusData.date); + + const date = new Date(statusData.date); + const formattedDate = date.toISOString().slice(0, 16); // Removes seconds and 'Z' + document.getElementById("editStatusDate").value = formattedDate; + + + editStatusModal.show(); + }); + }); + + statusForm.addEventListener("submit", (e) => { + e.preventDefault(); + + const payload = { + id: parseInt(document.getElementById("statusId").value, 10), + date: document.getElementById("editStatusDate").value, + }; + + fetch("/plantStatus/edit", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload), + }) + .then(response => response.json()) + .then(() => location.reload()) + .catch(err => alert("{{ .lcl.failed_to_update_status }}")); + }); + + deleteStatusButton.addEventListener("click", () => { + const statusId = document.getElementById("statusId").value; + + if (confirm("{{ .lcl.confirm_delete_status }}")) { + fetch(`/plantStatus/delete/${statusId}`, { method: "DELETE" }) + .then(response => response.json()) + .then(() => location.reload()) + .catch(err => alert("{{ .lcl.failed_to_delete_status }}")); + } + }); +}); \ No newline at end of file diff --git a/web/static/js/upload-images-modal.js b/web/static/js/upload-images-modal.js new file mode 100644 index 0000000..e70c6e2 --- /dev/null +++ b/web/static/js/upload-images-modal.js @@ -0,0 +1,149 @@ +document.addEventListener("DOMContentLoaded", () => { + const dropArea = document.getElementById("dropArea"); + const imageInput = document.getElementById("imageInput"); + const imagePreviewContainer = document.getElementById("imagePreviewContainer"); + const uploadImagesButton = document.getElementById("uploadImagesButton"); + + let imagesToUpload = []; + + // Handle drag-and-drop events + ["dragenter", "dragover"].forEach(eventType => { + dropArea.addEventListener(eventType, (e) => { + e.preventDefault(); + e.stopPropagation(); + dropArea.classList.add("border-success"); + }); + }); + + ["dragleave", "drop"].forEach(eventType => { + dropArea.addEventListener(eventType, (e) => { + e.preventDefault(); + e.stopPropagation(); + dropArea.classList.remove("border-success"); + }); + }); + + // Handle drop event + dropArea.addEventListener("drop", (e) => { + const files = Array.from(e.dataTransfer.files); + handleFiles(files); + }); + + // Handle click to browse + dropArea.addEventListener("click", () => { + imageInput.click(); + }); + + imageInput.addEventListener("change", () => { + const files = Array.from(imageInput.files); + handleFiles(files); + }); + + // Process selected files + function handleFiles(files) { + files.forEach((file) => { + if (!file.type.startsWith("image/")) { + alert("{{ .lcl.only_image_files }}"); + return; + } + + const reader = new FileReader(); + reader.onload = (e) => { + const fileData = e.target.result; + + // Read EXIF metadata + EXIF.getData(file, function () { + let imageDate = new Date().toISOString().split("T")[0]; // Default to current date + + // Try to get the DateTimeOriginal tag from EXIF + const exifDate = EXIF.getTag(this, "DateTimeOriginal"); + if (exifDate) { + const parsedDate = parseExifDate(exifDate); + if (parsedDate) imageDate = parsedDate; + } + + addImagePreview(fileData, file, imageDate); + }); + }; + + reader.readAsDataURL(file); + imagesToUpload.push(file); + }); + } + +// Parse EXIF DateTimeOriginal format "YYYY:MM:DD HH:MM:SS" into "YYYY-MM-DD" + function parseExifDate(exifDate) { + try { + const parts = exifDate.split(" ")[0].split(":"); // Split on space, then ":" + if (parts.length === 3) { + return `${parts[0]}-${parts[1]}-${parts[2]}`; + } + } catch (error) { + console.error("Error parsing EXIF date:", error); + } + return null; + } + +// Add image preview with default or EXIF date + function addImagePreview(src, file, imageDate) { + const col = document.createElement("div"); + col.className = "col-12 col-md-6 col-lg-4"; + + const card = ` +
    + Preview +
    +
    + + +
    +
    + + +
    +
    +
    + `; + + col.innerHTML = card; + imagePreviewContainer.appendChild(col); + } + + + // Handle upload + uploadImagesButton.addEventListener("click", () => { + const formData = new FormData(); + + // Collect data for each image + document.querySelectorAll("#imagePreviewContainer .card").forEach((card, index) => { + const description = card.querySelector(".description").value; + const date = card.querySelector(".image-date").value; + + // Append the file with a simple key + formData.append("images[]", imagesToUpload[index]); + formData.append(`descriptions[]`, description); + formData.append(`dates[]`, date); + }); + + const plantId = document.getElementById("plantId").value; + fetch(`/plant/${plantId}/images/upload`, { + method: "POST", + body: formData, + }) + .then((response) => { + if (!response.ok) { + throw new Error("Failed to upload images"); + } + return response.json(); + }) + .then((data) => { + //alert("Images uploaded successfully!"); + location.reload(); + }) + .catch((error) => { + console.error("Error uploading images:", error); + alert("An error occurred while uploading images."); + }); + }); + +}); \ No newline at end of file diff --git a/web/templates/components/footer.html b/web/templates/common/footer.html similarity index 97% rename from web/templates/components/footer.html rename to web/templates/common/footer.html index c3d9821..43661d9 100644 --- a/web/templates/components/footer.html +++ b/web/templates/common/footer.html @@ -1,4 +1,4 @@ -{{ define "layouts/footer.html"}} +{{ define "common/footer.html"}}