From a4cc4653bb34fb6da9c35325abf065675a9c7aa2 Mon Sep 17 00:00:00 2001 From: Aditya Agrawal Date: Sun, 26 Oct 2025 19:39:59 +0530 Subject: [PATCH] feat: added food delivey system --- Src/Food_Delivery_System/Makefile | 31 +++++ Src/Food_Delivery_System/TomatoApp.h | 116 ++++++++++++++++++ Src/Food_Delivery_System/compile.bat | 17 +++ Src/Food_Delivery_System/compile.sh | 15 +++ .../factories/NowOrderFactory.h | 35 ++++++ .../factories/OrderFactory.h | 19 +++ .../factories/ScheduledOrderFactory.h | 41 +++++++ Src/Food_Delivery_System/folderStructure.txt | 33 +++++ Src/Food_Delivery_System/main.cpp | 47 +++++++ .../managers/OrderManager.h | 42 +++++++ .../managers/RestaurantManager.h | 47 +++++++ Src/Food_Delivery_System/models/Cart.h | 61 +++++++++ .../models/DeliveryOrder.h | 30 +++++ Src/Food_Delivery_System/models/MenuItem.h | 46 +++++++ Src/Food_Delivery_System/models/Order.h | 107 ++++++++++++++++ Src/Food_Delivery_System/models/PickupOrder.h | 30 +++++ Src/Food_Delivery_System/models/Restaurant.h | 59 +++++++++ Src/Food_Delivery_System/models/User.h | 49 ++++++++ Src/Food_Delivery_System/music_player.exe | Bin 0 -> 184741 bytes .../services/NotificationService.h | 30 +++++ .../strategies/CreditCartPaymentStrategy.h | 23 ++++ .../strategies/PaymentStrategy.h | 14 +++ .../strategies/UpiPaymentStrategy.h | 23 ++++ Src/Food_Delivery_System/tomato_app.exe | Bin 0 -> 184741 bytes Src/Food_Delivery_System/utils/TimeUtils.h | 20 +++ 25 files changed, 935 insertions(+) create mode 100644 Src/Food_Delivery_System/Makefile create mode 100644 Src/Food_Delivery_System/TomatoApp.h create mode 100644 Src/Food_Delivery_System/compile.bat create mode 100644 Src/Food_Delivery_System/compile.sh create mode 100644 Src/Food_Delivery_System/factories/NowOrderFactory.h create mode 100644 Src/Food_Delivery_System/factories/OrderFactory.h create mode 100644 Src/Food_Delivery_System/factories/ScheduledOrderFactory.h create mode 100644 Src/Food_Delivery_System/folderStructure.txt create mode 100644 Src/Food_Delivery_System/main.cpp create mode 100644 Src/Food_Delivery_System/managers/OrderManager.h create mode 100644 Src/Food_Delivery_System/managers/RestaurantManager.h create mode 100644 Src/Food_Delivery_System/models/Cart.h create mode 100644 Src/Food_Delivery_System/models/DeliveryOrder.h create mode 100644 Src/Food_Delivery_System/models/MenuItem.h create mode 100644 Src/Food_Delivery_System/models/Order.h create mode 100644 Src/Food_Delivery_System/models/PickupOrder.h create mode 100644 Src/Food_Delivery_System/models/Restaurant.h create mode 100644 Src/Food_Delivery_System/models/User.h create mode 100644 Src/Food_Delivery_System/music_player.exe create mode 100644 Src/Food_Delivery_System/services/NotificationService.h create mode 100644 Src/Food_Delivery_System/strategies/CreditCartPaymentStrategy.h create mode 100644 Src/Food_Delivery_System/strategies/PaymentStrategy.h create mode 100644 Src/Food_Delivery_System/strategies/UpiPaymentStrategy.h create mode 100644 Src/Food_Delivery_System/tomato_app.exe create mode 100644 Src/Food_Delivery_System/utils/TimeUtils.h diff --git a/Src/Food_Delivery_System/Makefile b/Src/Food_Delivery_System/Makefile new file mode 100644 index 0000000..d5eeb90 --- /dev/null +++ b/Src/Food_Delivery_System/Makefile @@ -0,0 +1,31 @@ +# Makefile for Lecture 11 C++ Tomato App + +CXX = g++ +CXXFLAGS = -std=c++11 -Wall -Wextra +TARGET = tomato_app +SOURCE = main.cpp + +# Default target +all: $(TARGET) + +# Build the executable +$(TARGET): $(SOURCE) + $(CXX) $(CXXFLAGS) -I. -o $(TARGET) $(SOURCE) + +# Run the application +run: $(TARGET) + ./$(TARGET) + +# Clean up compiled files +clean: + rm -f $(TARGET) $(TARGET).exe + +# Help target +help: + @echo "Available targets:" + @echo " all - Build the application (default)" + @echo " run - Build and run the application" + @echo " clean - Remove compiled files" + @echo " help - Show this help message" + +.PHONY: all run clean help diff --git a/Src/Food_Delivery_System/TomatoApp.h b/Src/Food_Delivery_System/TomatoApp.h new file mode 100644 index 0000000..e044e2a --- /dev/null +++ b/Src/Food_Delivery_System/TomatoApp.h @@ -0,0 +1,116 @@ +#ifndef TOMATO_APP_H +#define TOMATO_APP_H + +#include +#include +#include "models/User.h" +#include "models/Restaurant.h" +#include "models/Cart.h" +#include "managers/RestaurantManager.h" +#include "managers/OrderManager.h" +#include "strategies/PaymentStrategy.h" +#include "strategies/UpiPaymentStrategy.h" +#include "factories/NowOrderFactory.h" +#include "factories/ScheduledOrderFactory.h" +#include "services/NotificationService.h" +#include "utils/TimeUtils.h" +using namespace std; + +class TomatoApp { +public: + TomatoApp() { + initializeRestaurants(); + } + + void initializeRestaurants() { + Restaurant* restaurant1 = new Restaurant("Bikaner", "Delhi"); + restaurant1->addMenuItem(MenuItem("P1", "Chole Bhature", 120)); + restaurant1->addMenuItem(MenuItem("P2", "Samosa", 15)); + + Restaurant* restaurant2 = new Restaurant("Haldiram", "Kolkata"); + restaurant2->addMenuItem(MenuItem("P1", "Raj Kachori", 80)); + restaurant2->addMenuItem(MenuItem("P2", "Pav Bhaji", 100)); + restaurant2->addMenuItem(MenuItem("P3", "Dhokla", 50)); + + Restaurant* restaurant3 = new Restaurant("Saravana Bhavan", "Chennai"); + restaurant3->addMenuItem(MenuItem("P1", "Masala Dosa", 90)); + restaurant3->addMenuItem(MenuItem("P2", "Idli Vada", 60)); + restaurant3->addMenuItem(MenuItem("P3", "Filter Coffee", 30)); + + RestaurantManager* restaurantManager = RestaurantManager::getInstance(); + restaurantManager->addRestaurant(restaurant1); + restaurantManager->addRestaurant(restaurant2); + restaurantManager->addRestaurant(restaurant3); + + // Add other sample restaurants... + } + + vector searchRestaurants(const string& location) { + return RestaurantManager::getInstance()->searchByLocation(location); + } + + void selectRestaurant(User* user, Restaurant* restaurant) { + Cart* cart = user->getCart(); + cart->setRestaurant(restaurant); + } + + void addToCart(User* user, const string& itemCode) { + Restaurant* restaurant = user->getCart()->getRestaurant(); + if (!restaurant) { + cout << "Please select a restaurant first." << endl; + return; + } + for (const auto& item : restaurant->getMenu()) { + if (item.getCode() == itemCode) { + user->getCart()->addItem(item); + break; + } + } + } + + Order* checkoutNow(User* user, const string& orderType, PaymentStrategy* paymentStrategy) { + return checkout(user, orderType, paymentStrategy, new NowOrderFactory()); + } + + Order* checkoutScheduled(User* user, const string& orderType, PaymentStrategy* paymentStrategy, const string& scheduleTime) { + return checkout(user, orderType, paymentStrategy, new ScheduledOrderFactory(scheduleTime)); + } + + Order* checkout(User* user, const string& orderType, + PaymentStrategy* paymentStrategy, OrderFactory* orderFactory) { + if (user->getCart()->isEmpty()) + return nullptr; + + Cart* userCart = user->getCart(); + Restaurant* orderedRestaurant = userCart->getRestaurant(); + vector itemsOrdered = userCart->getItems(); + double totalCost = userCart->getTotalCost(); + + Order* order = orderFactory->createOrder(user, userCart, orderedRestaurant, itemsOrdered, paymentStrategy, totalCost, orderType); + OrderManager::getInstance()->addOrder(order); + return order; + } + + void payForOrder(User* user, Order* order) { + bool isPaymentSuccess = order->processPayment(); + + // clear user cart if payment is successful. + if(isPaymentSuccess) { + NotificationService* notification = new NotificationService(); + notification->notify(order); + user->getCart()->clear(); + } + } + + void printUserCart(User* user) { + cout << "Items in cart:" << endl; + cout << "------------------------------------" << endl; + for (const auto& item : user->getCart()->getItems()) { + cout << item.getCode() << " : " << item.getName() << " : ₹" << item.getPrice() << endl; + } + cout << "------------------------------------" << endl; + cout << "Grand total : ₹" << user->getCart()->getTotalCost() << endl; + } +}; + +#endif // TOMATO_APP_H diff --git a/Src/Food_Delivery_System/compile.bat b/Src/Food_Delivery_System/compile.bat new file mode 100644 index 0000000..4b41223 --- /dev/null +++ b/Src/Food_Delivery_System/compile.bat @@ -0,0 +1,17 @@ +@echo off +echo Compiling C++ Food Delivery App... + +REM Compile the main program +g++ -std=c++11 -I. -o tomato_app main.cpp + +if %errorlevel% equ 0 ( + echo Compilation successful! + echo Running the application... + echo. + tomato_app.exe +) else ( + echo Compilation failed! + echo Please check for any syntax errors. +) + +pause diff --git a/Src/Food_Delivery_System/compile.sh b/Src/Food_Delivery_System/compile.sh new file mode 100644 index 0000000..de66ab0 --- /dev/null +++ b/Src/Food_Delivery_System/compile.sh @@ -0,0 +1,15 @@ +#!/bin/bash +echo "Compiling Lecture 11 C++ Tomato App..." + +# Compile the main program +g++ -std=c++11 -I. -o tomato_app main.cpp + +if [ $? -eq 0 ]; then + echo "Compilation successful!" + echo "Running the application..." + echo + ./tomato_app +else + echo "Compilation failed!" + echo "Please check for any syntax errors." +fi diff --git a/Src/Food_Delivery_System/factories/NowOrderFactory.h b/Src/Food_Delivery_System/factories/NowOrderFactory.h new file mode 100644 index 0000000..9453734 --- /dev/null +++ b/Src/Food_Delivery_System/factories/NowOrderFactory.h @@ -0,0 +1,35 @@ +#ifndef NOW_ORDER_FACTORY_H +#define NOW_ORDER_FACTORY_H + +#include "OrderFactory.h" +#include "../models/DeliveryOrder.h" +#include "../models/PickupOrder.h" +#include "../utils/TimeUtils.h" +using namespace std; + +class NowOrderFactory : public OrderFactory { +public: + Order* createOrder(User* user, Cart* cart, Restaurant* restaurant, const vector& menuItems, + PaymentStrategy* paymentStrategy, double totalCost, const string& orderType) override { + Order* order = nullptr; + if (orderType == "Delivery") { + auto deliveryOrder = new DeliveryOrder(); + deliveryOrder->setUserAddress(user->getAddress()); + order = deliveryOrder; + } + else { + auto pickupOrder = new PickupOrder(); + pickupOrder->setRestaurantAddress(restaurant->getLocation()); + order = pickupOrder; + } + order->setUser(user); + order->setRestaurant(restaurant); + order->setItems(menuItems); + order->setPaymentStrategy(paymentStrategy); + order->setScheduled(TimeUtils::getCurrentTime()); + order->setTotal(totalCost); + return order; + } +}; + +#endif // NOW_ORDER_FACTORY_H diff --git a/Src/Food_Delivery_System/factories/OrderFactory.h b/Src/Food_Delivery_System/factories/OrderFactory.h new file mode 100644 index 0000000..6a6130e --- /dev/null +++ b/Src/Food_Delivery_System/factories/OrderFactory.h @@ -0,0 +1,19 @@ +#ifndef ORDER_FACTORY_H +#define ORDER_FACTORY_H + +#include "../models/Order.h" +#include "../models/Cart.h" +#include "../models/Restaurant.h" +#include "../strategies/PaymentStrategy.h" +#include +#include +using namespace std; + +class OrderFactory { +public: + virtual Order* createOrder(User* user, Cart* cart, Restaurant* restaurant, const vector& menuItems, + PaymentStrategy* paymentStrategy, double totalCost, const string& orderType) = 0; + virtual ~OrderFactory() {} +}; + +#endif // ORDER_FACTORY_H diff --git a/Src/Food_Delivery_System/factories/ScheduledOrderFactory.h b/Src/Food_Delivery_System/factories/ScheduledOrderFactory.h new file mode 100644 index 0000000..e44f38f --- /dev/null +++ b/Src/Food_Delivery_System/factories/ScheduledOrderFactory.h @@ -0,0 +1,41 @@ +#ifndef SCHEDULED_ORDER_FACTORY_H +#define SCHEDULED_ORDER_FACTORY_H + +#include "OrderFactory.h" +#include "../models/DeliveryOrder.h" +#include "../models/PickupOrder.h" +#include "../utils/TimeUtils.h" +using namespace std; + +class ScheduledOrderFactory : public OrderFactory { +private: + string scheduleTime; +public: + ScheduledOrderFactory(string scheduleTime) { + this->scheduleTime = scheduleTime; + } + + Order* createOrder(User* user, Cart* cart, Restaurant* restaurant, const vector& menuItems, + PaymentStrategy* paymentStrategy, double totalCost, const string& orderType) override { + Order* order = nullptr; + + if(orderType == "Delivery") { + auto deliveryOrder = new DeliveryOrder(); + deliveryOrder->setUserAddress(user->getAddress()); + order = deliveryOrder; + } + else { + auto pickupOrder = new PickupOrder(); + pickupOrder->setRestaurantAddress(restaurant->getLocation()); + } + order->setUser(user); + order->setRestaurant(restaurant); + order->setItems(menuItems); + order->setPaymentStrategy(paymentStrategy); + order->setScheduled(scheduleTime); + order->setTotal(totalCost); + return order; + } +}; + +#endif // SCHEDULED_ORDER_FACTORY_H diff --git a/Src/Food_Delivery_System/folderStructure.txt b/Src/Food_Delivery_System/folderStructure.txt new file mode 100644 index 0000000..0f02559 --- /dev/null +++ b/Src/Food_Delivery_System/folderStructure.txt @@ -0,0 +1,33 @@ +OnlineFoodOrderingSystem/ +│ +├── main.cpp # Composition root and entry point +├── TomatoApp.h # Facade class (main orchestrator) +│ +├── models/ +│ ├── MenuItem.h +│ ├── Restaurant.h +│ ├── User.h +│ ├── Cart.h +│ ├── Order.h # Abstract Order +│ ├── DeliveryOrder.h +│ ├── PickupOrder.h +│ +├── managers/ +│ ├── RestaurantManager.h +│ ├── OrderManager.h +│ +├── strategies/ +│ ├── PaymentStrategy.h # Base class +│ ├── CreditCardPaymentStrategy.h +│ ├── UpiPaymentStrategy.h +│ +├── factories/ +│ ├── OrderFactory.h # Abstract factory +│ ├── NowOrderFactory.h +│ ├── ScheduledOrderFactory.h +│ +├── services/ +│ └── NotificationService.h +│ +├── utils/ +│ └── TimeUtils.h diff --git a/Src/Food_Delivery_System/main.cpp b/Src/Food_Delivery_System/main.cpp new file mode 100644 index 0000000..0ad6626 --- /dev/null +++ b/Src/Food_Delivery_System/main.cpp @@ -0,0 +1,47 @@ +#include +#include "TomatoApp.h" +using namespace std; + +int main() { + // Create TomatoApp Object + TomatoApp* tomato = new TomatoApp(); + + // Simulate a user coming in (Happy Flow) + User* user = new User(101, "Aditya", "Delhi"); + cout << "User: " << user->getName() << " is active." << endl; + + // User searches for restaurants by location + vector restaurantList = tomato->searchRestaurants("Delhi"); + + if (restaurantList.empty()) { + cout << "No restaurants found!" << endl; + return 0; + } + cout << "Found Restaurants:" << endl; + for (auto restaurant : restaurantList) { + cout << " - " << restaurant->getName() << endl; + } + + // User selects a restaurant + tomato->selectRestaurant(user, restaurantList[0]); + + cout << "Selected restaurant: " << restaurantList[0]->getName() << endl; + + // User adds items to the cart + tomato->addToCart(user, "P1"); + tomato->addToCart(user, "P2"); + + tomato->printUserCart(user); + + // User checkout the cart + Order* order = tomato->checkoutNow(user, "Delivery", new UpiPaymentStrategy("1234567890")); + + // User pay for the cart. If payment is success, notification is sent. + tomato->payForOrder(user, order); + + // Cleanup Code. + delete tomato; + delete user; + + return 0; +} diff --git a/Src/Food_Delivery_System/managers/OrderManager.h b/Src/Food_Delivery_System/managers/OrderManager.h new file mode 100644 index 0000000..6872c4d --- /dev/null +++ b/Src/Food_Delivery_System/managers/OrderManager.h @@ -0,0 +1,42 @@ +#ifndef ORDER_MANAGER_H +#define ORDER_MANAGER_H + +#include +#include +#include "../models/Order.h" +using namespace std; + +class OrderManager { +private: + vector orders; + static OrderManager* instance; + + OrderManager() { + // Private Constructor + } + +public: + static OrderManager* getInstance() { + if (!instance) { + instance = new OrderManager(); + } + return instance; + } + + void addOrder(Order* order) { + orders.push_back(order); + } + + void listOrders() { + cout << "\n--- All Orders ---" << endl; + for (auto order : orders) { + cout << order->getType() << " order for " << order->getUser()->getName() + << " | Total: ₹" << order->getTotal() + << " | At: " << order->getScheduled() << endl; + } + } +}; + +OrderManager* OrderManager::instance = nullptr; + +#endif // ORDER_MANAGER_H diff --git a/Src/Food_Delivery_System/managers/RestaurantManager.h b/Src/Food_Delivery_System/managers/RestaurantManager.h new file mode 100644 index 0000000..31a6888 --- /dev/null +++ b/Src/Food_Delivery_System/managers/RestaurantManager.h @@ -0,0 +1,47 @@ +#ifndef RESTAURANT_MANAGER_H +#define RESTAURANT_MANAGER_H + +#include +#include +#include +#include "../models/Restaurant.h" +using namespace std; + +class RestaurantManager { +private: + vector restaurants; + static RestaurantManager* instance; + + RestaurantManager() { + // private constructor + } + +public: + static RestaurantManager* getInstance() { + if (!instance) { + instance = new RestaurantManager(); + } + return instance; + } + + void addRestaurant(Restaurant* r) { + restaurants.push_back(r); + } + + vector searchByLocation(string loc) { + vector result; + transform(loc.begin(), loc.end(), loc.begin(), ::tolower); + for (auto r : restaurants) { + string rl = r->getLocation(); + transform(rl.begin(), rl.end(), rl.begin(), ::tolower); + if (rl == loc) { + result.push_back(r); + } + } + return result; + } +}; + +RestaurantManager* RestaurantManager::instance = nullptr; + +#endif // RESTAURANT_MANAGER_H diff --git a/Src/Food_Delivery_System/models/Cart.h b/Src/Food_Delivery_System/models/Cart.h new file mode 100644 index 0000000..b1df7cf --- /dev/null +++ b/Src/Food_Delivery_System/models/Cart.h @@ -0,0 +1,61 @@ +#ifndef CART_H +#define CART_H + +#include +#include +#include +#include "../models/MenuItem.h" +#include "../models/Restaurant.h" + +using namespace std; + +class Cart { +private: + Restaurant* restaurant; + vector items; + +public: + Cart() { + restaurant = nullptr; + } + + void addItem(const MenuItem& item) { + if (!restaurant) { + cerr << "Cart: Set a restaurant before adding items." << endl; + return; + } + items.push_back(item); + } + + double getTotalCost() const { + double sum = 0; + for (const auto& it : items) { + sum += it.getPrice(); + } + return sum; + } + + bool isEmpty() { + return (!restaurant || items.empty()); + } + + void clear() { + items.clear(); + restaurant = nullptr; + } + + // Getters and Setters + void setRestaurant(Restaurant* r) { + restaurant = r; + } + + Restaurant* getRestaurant() const { + return restaurant; + } + + const vector& getItems() const { + return items; + } +}; + +#endif // CART_H diff --git a/Src/Food_Delivery_System/models/DeliveryOrder.h b/Src/Food_Delivery_System/models/DeliveryOrder.h new file mode 100644 index 0000000..ecbc1a7 --- /dev/null +++ b/Src/Food_Delivery_System/models/DeliveryOrder.h @@ -0,0 +1,30 @@ +#ifndef DELIVERY_ORDER_H +#define DELIVERY_ORDER_H + +#include "Order.h" +using namespace std; + +class DeliveryOrder : public Order { +private: + string userAddress; + +public: + DeliveryOrder() { + userAddress = ""; + } + + string getType() const override { + return "Delivery"; + } + + //Getter and Setters + void setUserAddress(const string& addr) { + userAddress = addr; + } + + string getUserAddress() const { + return userAddress; + } +}; + +#endif // DELIVERY_ORDER_H diff --git a/Src/Food_Delivery_System/models/MenuItem.h b/Src/Food_Delivery_System/models/MenuItem.h new file mode 100644 index 0000000..5e173b8 --- /dev/null +++ b/Src/Food_Delivery_System/models/MenuItem.h @@ -0,0 +1,46 @@ +#ifndef MENUITEM_H +#define MENUITEM_H + +#include +using namespace std; + +class MenuItem { +private: + string code; + string name; + int price; + +public: + MenuItem(const string& code, const string& name, int price) { + this->code = code; + this->name = name; + this->price = price; + } + + //Getters and setters + string getCode() const { + return code; + } + + void setCode(const string &c) { + code = c; + } + + string getName() const { + return name; + } + + void setName(const string &n) { + name = n; + } + + int getPrice() const { + return price; + } + + void setPrice(int p) { + price = p; + } +}; + +#endif // MENUITEM_H diff --git a/Src/Food_Delivery_System/models/Order.h b/Src/Food_Delivery_System/models/Order.h new file mode 100644 index 0000000..2a99a9c --- /dev/null +++ b/Src/Food_Delivery_System/models/Order.h @@ -0,0 +1,107 @@ +#ifndef ORDER_H +#define ORDER_H + +#include +#include +#include +#include "User.h" +#include "Restaurant.h" +#include "MenuItem.h" +#include "../strategies/PaymentStrategy.h" +#include "../utils/TimeUtils.h" +using namespace std; + +class Order { +protected: + static int nextOrderId; + int orderId; + User* user; + Restaurant* restaurant; + vector items; + PaymentStrategy* paymentStrategy; + double total; + string scheduled; + +public: + Order() { + user = nullptr; + restaurant = nullptr; + paymentStrategy = nullptr; + total = 0.0; + scheduled = ""; + orderId = ++nextOrderId; + } + + virtual ~Order() { + delete paymentStrategy; + } + + bool processPayment() { + if (paymentStrategy) { + paymentStrategy->pay(total); + return true; + } else { + cout << "Please choose a payment mode first" << endl; + return false; + } + } + + virtual string getType() const = 0; + + //Getter and Setters + int getOrderId() const { + return orderId; + } + + void setUser(User* u) { + user = u; + } + + User* getUser() const { + return user; + } + + void setRestaurant(Restaurant* r) { + restaurant = r; + } + + Restaurant* getRestaurant() const { + return restaurant; + } + + void setItems(const vector& its) { + items = its; + total = 0; + for (auto &i : items) { + total += i.getPrice(); + } + } + + const vector& getItems() const { + return items; + } + + void setPaymentStrategy(PaymentStrategy* p) { + paymentStrategy = p; + } + + void setScheduled(const string& s) { + scheduled = s; + } + + string getScheduled() const { + return scheduled; + } + + double getTotal() const { + return total; + } + + void setTotal(int total) { + this->total = total; + } +}; + +int Order::nextOrderId = 0; + +#endif // ORDER_H diff --git a/Src/Food_Delivery_System/models/PickupOrder.h b/Src/Food_Delivery_System/models/PickupOrder.h new file mode 100644 index 0000000..b02a018 --- /dev/null +++ b/Src/Food_Delivery_System/models/PickupOrder.h @@ -0,0 +1,30 @@ +#ifndef PICKUP_ORDER_H +#define PICKUP_ORDER_H + +#include "Order.h" +using namespace std; + +class PickupOrder : public Order { +private: + string restaurantAddress; + +public: + PickupOrder() { + restaurantAddress = ""; + } + + string getType() const override { + return "Pickup"; + } + + //Getter and Setters + void setRestaurantAddress(const string& addr) { + restaurantAddress = addr; + } + + string getRestaurantAddress() const { + return restaurantAddress; + } +}; + +#endif // PICKUP_ORDER_H diff --git a/Src/Food_Delivery_System/models/Restaurant.h b/Src/Food_Delivery_System/models/Restaurant.h new file mode 100644 index 0000000..eb53cba --- /dev/null +++ b/Src/Food_Delivery_System/models/Restaurant.h @@ -0,0 +1,59 @@ +#ifndef RESTAURANT_H +#define RESTAURANT_H + +#include +#include +#include +#include "MenuItem.h" +using namespace std; + +class Restaurant { +private: + static int nextRestaurantId; + int restaurantId; + string name; + string location; + vector menu; + +public: + Restaurant(const string& name, const string& location) { + this->name = name; + this->location = location; + this->restaurantId = ++nextRestaurantId; + } + + ~Restaurant() { + // Optional: just for clarity or debug + cout << "Destroying Restaurant: " << name << ", and clearing its menu." << endl; + menu.clear(); + } + + //Getters and setters + string getName() const { + return name; + } + + void setName(const string &n) { + name = n; + } + + string getLocation() const { + return location; + } + + void setLocation(const string &loc) { + location = loc; + } + + void addMenuItem(const MenuItem &item) { + menu.push_back(item); + } + + const vector& getMenu() const { + return menu; + } +}; + +int Restaurant::nextRestaurantId = 0; + +#endif // RESTAURANT_H diff --git a/Src/Food_Delivery_System/models/User.h b/Src/Food_Delivery_System/models/User.h new file mode 100644 index 0000000..1d57d5d --- /dev/null +++ b/Src/Food_Delivery_System/models/User.h @@ -0,0 +1,49 @@ +#ifndef USER_H +#define USER_H + +#include +#include "Cart.h" +using namespace std; + +class User { +private: + int userId; + string name; + string address; + Cart* cart; + +public: + User(int userId, const string& name, const string& address) { + this->userId = userId; + this->name = name; + this->address = address; + cart = new Cart(); + } + + ~User() { + delete cart; + } + + // Getters and Setters + string getName() const { + return name; + } + + void setName(const string &n) { + name = n; + } + + string getAddress() const { + return address; + } + + void setAddress(const string &a) { + address = a; + } + + Cart* getCart() const { + return cart; + } +}; + +#endif // USER_H diff --git a/Src/Food_Delivery_System/music_player.exe b/Src/Food_Delivery_System/music_player.exe new file mode 100644 index 0000000000000000000000000000000000000000..d57c59253e87f9f68daa384edbbd7979c775394e GIT binary patch literal 184741 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 +#include "../models/Order.h" +using namespace std; + +class NotificationService { +public: + static void notify(Order* order) { + cout << "\nNotification: New " << order->getType() << " order placed!" << endl; + cout << "---------------------------------------------" << endl; + cout << "Order ID: " << order->getOrderId() << endl; + cout << "Customer: " << order->getUser()->getName() << endl; + cout << "Restaurant: " << order->getRestaurant()->getName() << endl; + cout << "Items Ordered:\n"; + + const vector& items = order->getItems(); + for (const auto& item : items) { + cout << " - " << item.getName() << " (₹" << item.getPrice() << ")\n"; + } + + cout << "Total: ₹" << order->getTotal() << endl; + cout << "Scheduled For: " << order->getScheduled() << endl; + cout << "Payment: Done" << endl; + cout << "---------------------------------------------" << endl; + } +}; + +#endif // NOTIFICATION_SERVICE_H diff --git a/Src/Food_Delivery_System/strategies/CreditCartPaymentStrategy.h b/Src/Food_Delivery_System/strategies/CreditCartPaymentStrategy.h new file mode 100644 index 0000000..bbddad5 --- /dev/null +++ b/Src/Food_Delivery_System/strategies/CreditCartPaymentStrategy.h @@ -0,0 +1,23 @@ +#ifndef CREDIT_CARD_PAYMENT_STRATEGY_H +#define CREDIT_CARD_PAYMENT_STRATEGY_H + +#include "PaymentStrategy.h" +#include +#include +#include +using namespace std; + +class CreditCardPaymentStrategy : public PaymentStrategy { +private: + string cardNumber; +public: + CreditCardPaymentStrategy(const string& card) { + cardNumber = card; + } + + void pay(double amount) override { + cout << "Paid ₹" << amount << " using Credit Card (" << cardNumber << ")" << endl; + } +}; + +#endif // CREDIT_CARD_PAYMENT_STRATEGY_H diff --git a/Src/Food_Delivery_System/strategies/PaymentStrategy.h b/Src/Food_Delivery_System/strategies/PaymentStrategy.h new file mode 100644 index 0000000..16e38a8 --- /dev/null +++ b/Src/Food_Delivery_System/strategies/PaymentStrategy.h @@ -0,0 +1,14 @@ +#ifndef PAYMENT_STRATEGY_H +#define PAYMENT_STRATEGY_H + +#include +#include +using namespace std; + +class PaymentStrategy { +public: + virtual void pay(double amount) = 0; + virtual ~PaymentStrategy() {} +}; + +#endif // PAYMENT_STRATEGY_H diff --git a/Src/Food_Delivery_System/strategies/UpiPaymentStrategy.h b/Src/Food_Delivery_System/strategies/UpiPaymentStrategy.h new file mode 100644 index 0000000..2dfc3f6 --- /dev/null +++ b/Src/Food_Delivery_System/strategies/UpiPaymentStrategy.h @@ -0,0 +1,23 @@ +#ifndef UPI_PAYMENT_STRATEGY_H +#define UPI_PAYMENT_STRATEGY_H + +#include "PaymentStrategy.h" +#include +#include +#include +using namespace std; + +class UpiPaymentStrategy : public PaymentStrategy { +private: + string mobile; +public: + UpiPaymentStrategy(const string& mob) { + mobile = mob; + } + + void pay(double amount) override { + cout << "Paid ₹" << amount << " using UPI (" << mobile << ")" << endl; + } +}; + +#endif // UPI_PAYMENT_STRATEGY_H diff --git a/Src/Food_Delivery_System/tomato_app.exe b/Src/Food_Delivery_System/tomato_app.exe new file mode 100644 index 0000000000000000000000000000000000000000..a81cb3aea7223ed5019ebc0e5c08b2182c0ff6c6 GIT binary patch literal 184741 zcmeFa4R{k(_6Iyk69}|4MT^w6u0gAU%U2Z@v}m9NPywq@MWsTesZXn5uY2z23=?myloBLKGT{n^B&iyA`q|mvlmDqeaq>B@B}*H7ywk7RFyWnk zQ)U&F+e*ty?kvlnZJU`tXHJRBc8Ake=AL6KnqwPt{bbwhk^<-8UcGu|2+}zYNt$5j zB|Y+o-)2eu4btWwlC)pyZb&p3)1{>V`VE&6d8gr?f@>8n;*Oq?PkbA2(VhKjkV2xU zG=a$_Nj45k2!w;5xbehLgLEL7KgRRdlw*+6IzY5sY>+C6u}*%2UC#L~lvVighZrJR zH6ief-wY{d#^8c{S3aK8DPt8b$ShUj(*5kx(3-(z9B_dJ1sibn#Pz5S2#5r{rK`N-;B3>`kA#}-P`JRx%KgM77jZ-Lx>ByBZsjvZnsKxGc7V6WF&WG=8%-IBNGh`~mLyNR!Rj3kd3*r+ z2DyQa7myg4HJf!ffEh{SMJ1^$Ikl4h0Oea(QGqG}!r{jRc zQy$@@T(>|Z?=S)|F}Vc?E$1PtQs_X>U;V~w6p*aObEw8` zp_c8DWlYHlqU?E;1zZ4jWYR2*vZv?kGWid|CX z6RB2{Qi?dY+Oo`Ymx{6%JgTa5ZsqT1qja@ zN_p=^=H*b{>&R2~;g7!$qmZKXPDQl`+7#J}k{wh+bSNDAqC19Ux%DsDBA z3%v-UA{){j8^Q|KRB-l9rvsX#<@px5fkYf2GQVcPmNgPY^Br>arZNi`zq-aQg+5%J zMkO__D^S5Gs&_Ld@2hzYwMwo&gmFDlgML?VYVua!E>{mA5N>D}9)_j@^LKFJfV2I! z+wGU1eop zLWT)W5W43$FmJwT@(qhyr@|VFs~1xa8Aci39hR(as|Q9eWQimN$@cI6cs+;n?S5EKY9!Tf(U8y7ah;(f@cPZGV&uDPlkDZ6e*@% z22!hBgml2ShzQpzK9(pTrkArU?l*6|$Xu>3L$!eIz;c3#VE(Qg!8|LeRd&J78r}1W zuHz}xa2|WA2;@FR*kG%X(|#S`XvIW3w<3aYZ$a2m0rUk#l@TKPfYut;*sHl*j!gi2 zgMqCKqrvyIabr7i}OA8oSDEL}Ctle4f`z zr9TIaa$P`;Wdi`lGeqc|j|?rIC2FN2rrk) z%qtMlsjo)j0|6=8&oh8*d6HTQu!VpAiSiy4dBV5mY8081)+%pOMgg#xliaKpGe>!j zQscS!-w~akgTE(8GS46ll1#KnORYqzx0WJP%~VsYF(c#t5>?z32oZ3$-E!OQ)AIuP z$Lm<%XnA!gdO~GAD%{R<(mV?-2KPCO7bejJ+kFNHcnkpW#R&-N%HxMIvQ(j|WfLF@ zQMII0qrq*j3!Pty?xM01;}3CPBJN&suMqbI;yz#8i^YAGxEF}~RB@jo?m6NmdhnZ|)etM^+tnexU3Fp{$#-YPdJ>&}Or#z?(u6;thglai0|^?>?D#{p

^BGTr!MbHq$hTd7+f`n1>}snw z04rJlyb+ic$1b#bHy~MY>>{hz%^uFR`g-6&uHAXW>irn38FqTM8X882rj2;Z{flQ| zGf=hzV4cD0tHmAk<+nWU=5wi*%o^~7Oo^&en0Ss!p7B!{iz_!Y;dL1m2jMOJSud$`Sg3)iO2 z>iaj0$`xn2X*;nJfbaep?>=};f<(sIHT7w;TIVnS)Sfk`+ z5Ia^MML_?=8qbj)Rxhy_xY@Ae9MqeKdKtS`?<6LEv**Yn>#|zlEU)QN+cFZ3i7TC~ z59V9`01Pf|iq(5Nb#Ba5S->{zEUZ-dRkamGFBzwyPGeR-_oqq^4YKGKW{KJ z7|spny^Xxpl@Q4<9Wsr#W73Q|Ml9S>=Jq?9AnzRcC<6vLspS~}H$WQ4Zph8%br^pn z`5oJ67~*&Apy>O@GyrC(`c?M)ggRA|Qr#DZ>%N}I8K*&pmNCQ{O(Pw<8@iKL!_@P( zp+htI7w(X=GL&>sM=(Ds8iQw>fq8$63HZ!F&?8rAk6O8@#R5L$k6K32ZD-3M03oxS zZaZ6c5RWTYPL;P}$;2k*JiT)2)0s`r(X-Xt0&yp2)>!{W4!sA7YA9T?{w=fSP=mph zfO-$TX>*x-RUr3JLj~m+4{t@&lIYPykCMSP+q2Dr2(Y-7x;#uXtS^`{{3|oIp>Xj= zcH38Tx@3I;&ckyF;34%fDdQ6UxP9?4f^+|#ku_2cDeTcikG4a#j3fJ+;b=kCpj~18 z+eo_2J)gKnDznD7>t1uUgcQTGgL7i3hnY}r`xz4<@mrm;$_`h+Oz9j97YZvwO)Mvn zWAfWgavv&%Q?z*MlYXuvdtq*w=07{-al7O>7IO8&U?3@!`ZP-i4eo>JBue|C2g&^r zeqEn-TV3WJ*5hUy{HZ>I^6hfB1-FOW>*_2pgxb47Yljhcu1;);|*P`SJ31*)iZKFDlq~l!_~9V%o3>4 z({6N~hQ%A#)t>rPM&P#FQO}lC`zUGg_w?8ETf+TcX72HOC;@hiSl6gCjo9b@E&>CD z`%|DGG0;*hNZVvE_HSea*F^A>SrfJe$;$iWs?n2u#Eyd5G3)rhq8$QjjaR zAzxh|Bes*IaBp954$+tET%$+`K~hdYB16tLDSbeDwO~+YoT?z%7G)K1iOV)#^%ex0 zQ1D^VaS3~nKQU(f(=u#e$O^B?thp`Bk5I*W(DL_DRk6#}*KZtA=k6JtK|kBt@_fU1`RDG;Y&AEd;(DL5_LAlXPil(3Plc;06fOe(wLUIy~60PSk(-#ZqJ<7L; zUT6zKZOR@>K2EN}e#~E1(?S_6XTj!FBdz?G2!YQr(%2u!sjq$Vkgu-Hgu#Ik|~ z19J-EN&@nf2l0oyW$w-LdpAwSMC3z^VK55GAhI+;QQ_AB6p@0${|Q*0`U$*m*Vd~5KQvGbPXbvxkuA)|?LXxZt? zY7j(zy633f^{nTp$+eov!U<3t8>%Nna$y}z<$&f$sMAEEKr1=Wic*6PVRb2M2(Ip8 z{87E2+KwPZxunEFZB=%}h3@z7$6Ar6)#hnWv_7n$z<()~_zqcpf2P#g2Pw73>RU{y zUhPP|ew?zlTfJM5^*TZOvn}uqt1larJ#|Tok5OG#4=qCbPxs$v3cMsqfcg{twN_2G z1RkO%&ru8nmIKCf)MoXzvImRR`!XJAvIb$QAq-?A(Ih1Z|6sLo^5uj5*O~mMd+IC+ zj}Wy07_>{TnmBfPfD}ueCWkKD<*B#9Vs+YjCujV0gzbMLypYu|qgMPk)gP^!9w&l@ z=x@3$ehaIXp#eV`b`n{6LPq+lMq+6lSZYZG8k(WCYPfvVOTh2ZbZx+40yP|Az@%{H zJ_6ncj<`P#_%XqvQ6sLETM6I|0FbpIy_Zb+%W?GW^b4JT5N(0(ZQ|a_?lU;o*vR5y0e0L!2z|%n0gDsu{xHgJMVwUU6U#(q_qF)%Jj4!cU^(#Ki<^;rPs zf;(1IaqvarpEUdc#6%l>zcy&j-0u0=;Q7*^*~7Xe1*@h5ynE2%jxKW9F=X^@cmLjV z^di?7&(W)0R|DhdZGfUd<}UX~aub5P=ZN8cfakgTd5-q8F5hac+GW@o+(`Xx#e9Pl zC^fpyklTV)u+M8`1csEkOKz&m+!cHyqQ8RJ)4*E;`VhZ8DKOO#Fg*qzR%jn%?1WVEgl@B*Dr-^w!l2&;?IeR5uaKERv;mUXUK~D zZm>7%>mSJK?+dvGj0nn#tJrraFw5Xph&9^pksATQ7(Is=ZS;lQA0dv~{Gj0Z!e*`N zmX+tq&syZl#$?Z1O3aWvz21b@@2RT$;X|3vx+6SZdKBOwt-m(x4 zL-Th|ZyeLlKB5Oby-lRXaZ<$98dPt6cqINZrMw$FC+trUePCeVaNl>XK_iaIzgoT5 zfjShlFyuY}Ybr@+K$tgG1^w0s3VPG`o%{W01zEjWKm?n~TuI-ye8}Y2%lj3VH~20Y zUfmzNS$>oJcVNX8gWM(Ii^xZg zU^Y(+MHNSGVej8^$sRScoWtMdEvwlB6S#K$xW=jtz;%F(W22P z7eFrRz#EiwJVCbf0S)N8ydHvS8nD|_KTz1)T9s>%>ne_39ckAunKj;B zt`GbRGExz{(N2O%T;7WNLz3$a`H1|Jyj#JV5+=NEMWtxna&w3TI!1CVH1u=LfH$Wq z=ObRrP_)(ChyrWXL^5p45va6cQAo0S8S`%jzpj)&9I&tD1`rkgRdHmn)k__>bxW;B z8O+25FIL}r8|ebPs;l!pkdogRL6rdvp-61K}qmKp?|)Pdy=XdV02&F z19wNW+(2s#d_0}yPN-W0OJHU9{KrMt2YrFCRjco4t@tt47*3v zSv`f=B}4nHI5K3(#5Gp$^+;A6ndZ)Dao|bFZ><`SB?W+3y?1wGc{u{;K;8y&Q25A|&JON+meD)6`vOHx*EZ*WhnzlQ~1D5}xwt%gqgj{uU;kF>@z-pa@{fG{J2I$Yg6_ghljp9gMF@=t7{1)oop zOxB#-?^rk8)Xnc$FFQ8`#u%-_$}10%m03L-sUFNeXpZ1pz$k8n$jtKO0bd%}UcfF4 zy)a!>o}{6e<}Fhg9l4DLYUtd0A=+Yy9T83brl%f0; z(n22%@?NWV995jR!*k4NT~=eQs_`g>esx&llJj<~vs-;Gc&tCKn)?110C~P-C+%*O z8-uAz3OMrBU`T$Q>Hc#ujLDGSrX~{tx704(`;@_~A_lQ&pS%+zu)TgDJ2qlGO0#FB z7b9WyrcpJy8|6|??m>UB3SxbDH?^5;Q_C-~F)WSPP22i@=Q^ybsS9X@m9n#j z?C6Gx!b%$Q3n^RP#~M{57Q`q#EpqkGy3cjBw+3sEfk}oX-L2lus50w5tCuzlsZ*9e zlHWxL+fC06-4|hB(ntFO2)$5c@J)&rGM3#A`*U}&W@}Ym zvv*IR%m5Tu7$m%->85P(>a-Y`XLlL7#<6YMuNp*z>}y}|tk(9w(y!S2MbwTi^^)S?$yGCJgL^E)Ug``t|lJJc+G^1N$M zzB!83u6Bd$ZbD=MPZd`Ww0buo*dvAo`=V?1Ig!iiZ_rfYch{EO zHgVAEeH;^~K<;iuMtB8dEluEB-q!LPcsS%}O0oJrfxhItZ4Hh!(;6LXp)skY9BrPc zxUom!&#lJPBhjCW4Z&(<4XF4RZVpVx!JOm7@egZhgQx@UDYekh5fKjMEd!7ZMWExk61@`Z{Tm%5l+;p5YE9s= zh3`B%s#{VR>VB}nBh?Gdf2E@VJO&Dtj=^6dQ z#5FBzp?5XP`~y}Y(3hwHS%^E2GWcBTa=~@Qj4}yh-n#pQVk#l#* z@3q_kpvd_lJH>ZQd|dQNZ>p`qnqzATnTIHA3s34iThc* zG|5MUR<=K*sq3srb?G$e{z{&>pW4-TJxO_f=K+whdgnud7)4J!pnQc0@1J;}r4Tt0 z^0H;96u&FOCS*&-h>s2SHeNtn`^TF6H=*an4p|_b=8)3;XZpulJU z$o&lp&>C!uF-lqI}1?QN#p5ve259 z!63&0GIKl5=OCyT%1Ps_o4U&j4;0FdFXo<8=xN8;FC99;6V?e%V^52WS75-1N9!iX z7lqU&KS#B&Aa-xx4gNkHuM0g#r^(w~r&%}U7z5*tST}QBhP)x}udSPU%iGvv5(a73 zO)2#3I!Fkv?+GrMa4=A2Snjt*xDQw#2%r{LCFAOI#9hwSM|kqP54<{IRFeq)rq|N;`(97_uWc3R~d(6|~+Dqh1`v;udKj1msc#RT_cNvK6R)=iZjz zp5AP#cjzCAyML)n1g+lp;-&}VTdWKJ<;#oq4EG z&SZSU33fuW$kaKz2PNMrcDTTY`&#+hWO zbJI8zc^})4#c3Q=+AYA1qR?|>h^r_5LYt4Pc_YSyn#@u;CeoJGdmmCv z=iYnpB)7HPg&VCqsy|wHT--W^3^FAng&W+YoIzS^#p-oPZgAa-!w1(T70TJ&GHZfx z?)2LENy{A}6>qm7aKBJUkI7uD;5z7|D8u8(ps}KjW!U!s?9_d_nn|B~mG| zTKSkI&=zS6v156zBKobE1w)+a@rg69PbBNYe@~QAp~ZGj`)RIS%GDZYI++EcwqA78 z)Deq z;8?(uPAnnfd<3JBO{`uoCwA zg0CoxL>cqCXEBb*JfvKLyx^1C_!dij7XP%26s+6+0o%l=8j%$;Jw}iB_x5{;PfVr@ zz&@tgMj2~wmfPwS>SP-w^s#tjA=ny@r=XVxdN$C@5Xex}!+^$qB?wq4fY81&Eu~|> zUD<nfg}K7u&zYa3+HZd1(IiB+t!Y9D|6e@9Y2u?uv6(1caD|!;Zan z(|iJnbR;A-F${^%>|!X%v z2rXmEeilTbV5%JW0Q#eMEG|b%KAVae3^md`R1~2{Oti6)QLDT>HtZZKFKOI8Q2Gl> z!@Ov|6}CY&>g>?BfV>WxdF|i{Hh3B++#q2a+{?*C*kCq?1EJIDFfu!Ry!dnO7$>p8 z*UgbOIFW%=jqq#WP_qFI5-Le^6PNiN>9PZpeVgo9+UPilOg7n~Q{sL{26e0U>)Fc@ zIS^qgN|jltmFfO4jREu80$6ZXRXn~wQ?cLC7RX)8wN7t*L2ZD7cwXS5P<9*)PEzTm zsr1gH0d8Jv0E;oXDI9tD1%h5{Aa^s*`WTU$(c27q!x+6*(1V&aE+)}}1Z%k(p*5Is zs#&R=kX;9r#o5tB_A(*6od6gH)25RsQh?# z<(@q6$Fm>x=X$A0F|VVwFJ5!-E`EA@2vGTf_NPB1RdUr7Q7*ImLzK&ozMD13asf#~ zU#&sriQH!74$yMPA(y`bwbh28!rDUE&+mo)UbDO+!UbGH-&R0J*Tx^*73p6Z7716Y zi~}VVpS9g|M)kxteL_BK(-~21It8^czj~ZT3};jEYWj21Ha*VHw95h`Z__j+$icRf z-%$@9A3{0B?pkF8k#FG7BUx4axgVY}txc*JZKqvvZHwua>j=}rT?_cHqHB>Itz7ga zETIG(3XP!yj#g?YSDwdT*4c(uLRq!SnHPcvu-g2&XeLeEAqoJ-9JmP(YjzS>R936} zgP!3H^z6rTM_koi%jIFUHc_o3z$f+?PlvpL+%{fCChrD0sT7dn>}>6ai8qa1)mnaO z!t?GR=1g?Vl51=>iN@c5*bDm-S@t>|>!6~1X#il=n5p%(P?ZnYO^-dVUNrEdI2B&jpjI!7cPYe1}x>l}@GKy$km6 ziWdR0NgZC7+KD`ZJ0euKozj}>CUbEGO05zU(3Tg&hI%{#qaVk>3cS*AE?lIJh+n1y zp9OFXzoECU@kCr|wSC1i2=^1h-5PK#<(@hjNg>cE9j$bt#h_3LAe97Ugy}8k^oUBW zG874-Tr4PyerJSDqdY-JdFwlz@>*3-&mkjB`AU`YTCzVCfq`3e_zxhDYP*1HW8Drl zZ**z!W$@ zIUB(un}mV16HxJ|PtQP#$j;Z*T?U*_eN@65^iN1rgVt={!ZHven^hN9o(!ADqa$@8 zAj#;>su;=02oqYR5dy1MQW02rOo#u?+j{VOI5+|6oqB5o&;$+?ya#&bt*2Jm4+!4Y zf1^=43_xD?mX@oCT=I~OTJA29OL}}p%iSz;se@jkGM}?>J8C!DyHT z7JZ!MA?y2#DJC4`8^CJJ)#gBSJi~n<$vTUNg=rLNKYUBCkQt~SrVpMG75S<`8TqVY zeZB0+M{fXg271FA(a&^e=R<;cI{?4%m|l!8IOwC7bjWK2%!7boVvr8PF`E-`f^k-H zI`lS`CzyIv*2QG(d=!ComWwGGTX5W|Sa~iy2ixd)<7_)w5p#vfCK;Z8a1a ztc2-Sn^*ML=5{jx0wL779UjB}kdwq6LXYdWr(@;fLa>Y{eCdLwe4pBFJk1(mXct-_ zx6?)B6Dzn+u-1kL`dpWF23v{^$U8&+!JWDfGwAU{u|Tfop_IfS}xJI>ggwgzSizU z{Gcs)FHw759tBq3^KXigzq>_vlq_U0ZG6YGk_U|xmuB4GEbzWh;gH;o;I;kFjb&c3ffDeDHcz)z6 z!n-46R@x}drBi$+%^P|kK-1YpHOz7y@_3R20nJ!6Ug9`hvGB0u8h~0bF_aXgj#SXb zokw}=AeZn^U(|^)SUVX*ovWao7swMgQVhKHrSQOZ3n+k^_yWava19d?P_Yi^i3p(c zI1p)PDX-}ox~UOu+wUlWLnP!7cd|q^y_yZ0G_=AH>=3q>Xt-Ao5%_3p2SSw=)vlui z^o=tmVh-0EIbaJ%6}7BSP$kbI!jOPPbY&}~LHZFePc`jFnubv|>M*KN04x^({~-W2 z8XO53NpwvYSv-TzMyz1@31Et+FWuvMuq2!aiCsZcL5|!=O9ubOzO%z1CrG$ zf5OS(PxIChqbqe^FjUAuoWP%x_8e(Y-GT0k|jIGO%;*L3m<^beH zXsxUrG9N+V7~_OeJz7fZu|lC(Y-VW@Yxgi zEzYZehZV?0{|W>oUIr*{DU|v(Qg&)J zFVz6Ej_rlvAk)XnK7~oazE4ANp!y9!0%{dkXl$Y69abV3wy~0%IVWeaL>3Z(N^A{E*K062MzW2RtU-XB^tfpz9el%i_@D%OI;&XcquTIxLDqIwH=cBSbF8KM}-K=?I$V zT2$#+R;@A%Itcg}R;}^}CWBz)ewJXA@%;yu5CRpj#4(~-t4wE!{YV6svnk}=M6`u-t!8+W`x;yhzJf;X9FalR#C$e zR4Ym*vxH#yS(dnybF!KxCLj@5&ayZsdpIYTpp@Ch!=cL=^ehI=vN*KxJhKX&1^}{6 z4zmpr=e8k4ZiVE-!Z!N@%L$t27Jo&#@I01<@1+1L;A2>|%Aen$gkasX>1iNJD}#rge)OP7mMCfyGldO3q`X3#8)LkrKlP=)pafTSy6(h+ek z9U*c#hO*d*b_MAOn&&=zKuE{3YL)K+74R{vTII#fln{)V-k=1djQu25A_V%DC9eLB zN%s{?&|Ck34VHcJSBN?GFi5Yx!rEHMm;z;c$w`8|hA_v@=dy1O~_NCut5pjj4&7VYXi z6BjQ{-LgaGn{wXXSLG#?pJ{QultXkzS&_Te*uxgcCKt13SjI3t~Mj87* zEFlDXloF2DVeCrwv?`GMI@Jy@8Nh|=k9;zj<0Amw&44xsaz7G4q7@|wAhu9RvS4*m z3goV0f~Z?>r|G09)}$!iFQi~uwMrA9_z3qe)$~Nwwz8*HczS?65x=|fr2K%uiIb8z zZl`^=EtT~Tn9(3hd{NAx%i7Cz_dSoeEn6_#;G1Q;H-VJ+CX^V_^g$JDxTub53aEBA z*a8EGfxt_}$Yv}``S8ueW-{79;#bUMIHVX%Y}Qc4fFh9*76XcBv{Ess_>Nd(t4jaE z02_l@pXkHaYJ^2UK2t*#efdks2>3)_?$Am_f4)p3d?OKNn}$tQcoKRL{cA4`kM-HL z$}~n*^szqxflDX)*{d|F$7zHOc15@LOPdNQy0(oPs_5Pl7-7-9{Y5JkUEEj18q>oX zL0I%CD>cHRSGi3?6+O#8k)ic0Behb|yDZfRUn>ZUV4kfJ76IL;p^Bh>10&433(Wst zQ3Vu%{SuAvj~MB41(yIwRj>%O>oq(PY>y!$;1j|2VXagI+)s%D)5B9l6$%#dZ5iek z+!QP_V*I0_ia7T-Mp(qTOSMuF>%1D_(SooDEmvxUMR+;7QLRaYm}?ke5n}dgr6SDy zK_lE!!#NhM{fqAf9kzq8R>fnj{t!|D2eta8T0XV>eMoWfSAv-Owi2I1ZCx=H=Z{ z_GzBtci?SCKNg=-`Eo=$ZAMPZK#JBVQt*xoZdkEs!woAI2Pp)qD;Bi-X2X$MW#*?4 zVJqeze7$oil2i}A_Q~d{>rgK?R@o8?&0ANnG|kTc`5!S;O%eNtSfhZ<^(5BC#5~R- zbt8cedKMm(+-&`JI08B1Ih*YpUuGi!v39W(Db(BY4^j*haxl)OYO4yFII$o*uo6hy zQ%yJ?h&ML^`0f&0mSDTb(=j21e(&O2#Uq$rvDSpW8nNY62%eY**>^U?$%r=xf)u9Y z%^>^YOR&%$S2_uB4{;8y&{7pvfp6tA7QE@p_OuThu{K+wPKo(EU972r&c|q}(fbTrpb*2M(h7Y1kz3v z-hKl-36JJ=KzUe$*7M2Jd_O?{%=ZSE%t_!eLgr{1;XUU|p>v(AM>jB8Yxf(8oy|xI zS;d;SST>tC01ksTz}{zqq;LaC`R5<#04+|HrtvKcwv5JguIE$#tmAnq>WY!)N8qG7 zp2tS;Z0U^WxBGX%^C6h5OP<+Yh;}ZF#1<=&q@$$X)OIZDURE_UA!)EAD}kqA2SM!4 z!Ed-tY0nPlbBD1a{886{|L1W|T0f#2SUaJ9#+xCs3_iftr*%BK zTI^osVJW?t_FZX5j?Nt%gJsai@x+rXv7c5uS+Bv~?HPax8X{|E0R3OBl7P6*&ip7y zJb*QNbUAw*O`kg2_SJ$q2ReEjLcfZpC{ATyRPF8PHm}gZkyB1S4{;#oU z_;gkzSU6^*{rl}h!}N)_>iS98?hp4rn7V|nK1rH~mPndWHlqq6fVSp{T@3R1R%IKH9JE2H%mY4ZiR8s{a$dN<)9C&PE!u&~D;UbEyhhlF zUU^bgei9qK^N*NqbkR8{x6!+iHu}%0+UU2#G22MhTW7X;If7KQZQNbjCZRoSo3PH8 zBXE<>KgZmlL!C1{3pe*d{7%}%EzhbtpH4smVKO~Ow~Hzq@rY;_g8-##7gzD5+AfA5 z*-^XD;&7C&t9lH}SbL1i__R(&wf{e;&i#}j2brnFP@d~o(9mEKJAet#ael=DUnMD# z`F}Y7$4>G;?j*kmwRA)$uao@mBJ%rV@Qc6|(elN7^ZtG~MWqRI(PvCxkHa#|<476i znSIa@{1^Ztw#Q88i+!g+M{t4(rQ;yYVz3qoW+{a5171oKKMxj2^}+5Kxu+PKRKJAH zB4q25miJ_|@TKz<2`40|n&6pKJL82-go!0IiYdSk+cSUxH5(+cvb|6`21(}zFjcKV z(<1nFv>lB*eG`-NH^9KbZOoLyCqVd0N0JNGF(UH>!bfLe8V)-IKU3{qDds5Zo%<_3 z&Mvu9p*k`mhM-j0OpM&s1AEvYXTBHhw?hzFX>y>RFr)`N@JPXULc5@2LnoX~L`*&t zm|dWWcpvunKEP4s(D4nS!8iNRlaBrI7=cF2E2DX*l`$G&p+n;@K(QlnIAulTFfpQu zzkwCzh+}J9*CIX$`=KAn;4cFa3v9H%ixXyCiFb(ZLli|_G<>Jp@c$uDSY=CjO&Dye ziyKkxoBl_nNO_5-o%MSMqxxVvaKP9;h!4Ke*=JNj-yg>kKCh9!5Jto_J9cDqE0h*( z^RWJ(N4x{EMzSh5@Cl|q!Df#DCsGDhZ^t&v!IU7vW|6waTdCT6SNTw2B;Ag5(~(xn znJt7?CaGjju9wGY4N4qdRogWjt?5Xxy(Px3x{La@K zPCP%X;zZNJw1Gkyng=a<(Yl?Cl{EMlGlLd~)WSBzE*2Uvo#B2RMl5ECIJ>I#Y1lgw zzNF&M;KT`p)3#8Ra}fE$^yuWSvWHFzMeub?M|?%`UfU6jT6awh{H^bhzkS%nisCQ( z1pfZsQQcAeeb5n%%3pH~{Bap{b4jMZNhk96FX}5I^!I91-4x@<_%x>1cU8Aw5g%RE z5bBaH1z{fCV3Kxv9Z|fC(~3942w>=U@CV1iVZqnYP=iCsauZjwcEc-Ywk!uP%I}el z&oNv`Hx?qFUk6ln7+SpRqVXfTy$dMBfnWvIOS3B?i5SSfRmaC6sCbuFar0Br6(7Yp zJLT`lM#V4Cja58MS229JGd(PZg;hPggRMDD4{eZL)x%n$hXM?Yqx9f7ft|aFoijK) z=VDltHP;)PQ_Uz|l_By@fU{M2(FzRlGC46ZW*sdkMh{>zY zsO+H|bLsrQ!}Z0HM~bUq`)T9%uYVz2S{2|GcjFaf@PClkuM1U5K7ZRaIGmVSfNB^s zOqZksHV&C6m~n7sCTYwxuNBPTWeL_t3|HR?zyVf)yq=vngenh;xXNI1v2rQ^{5k-& zuTaN&Fol4ku_J`i^;IeiAMn|+BI6oF?#b!bl`hKj?Yyo?PFNFXV?LG3n0V&b~tW)j%f=YZE^ikGt^pCwUtExw7#w{teHxeV z8#dc$7EQXjgC^ZfL;mJ)lYRmN4K{XeR)@RI+RO$|Y-YnbdMX&^Xb-Sdj&8;-D%s|B z;utNIDf$Zd!Ik*75^XW!BcKqGKxjM!q3~2iPt0g!N!Fqd@J5uwJPhy0?&p+BsVc;x zX6CRENw4s6tW}pFsYZHw4^Q~SD`S~|;!8;-ch$W}Jpuh?u$=fnCui{w<&@_D z5j+J_@iADuw!-`!TB6`%1py9}ORUiTb+f+|fy3gT%Ki@LrGMZg4DIxZUurYDN;hGJ zkkBGU2X=FGn+V6v6Z^fVQNxM-o`-2z-7lfw%6e7$G6m_1);@>9`q~1;iGAPS(Rd>I zJ~|)PRo|D!HuI_PgBVoFnhub(mP%hCqzE3}_wiatE#W3|5fiAxUN2e*cn>YRkeQ}F z3guAGhgZ>v9Xpg24K6I|MEh2Izwan+ozVL|p2*o{r!K<1UnPKH0Hyg6Ak`_K(v3y8 zna{xQc<u;XY0YvvVvGgUMq2a212~~4KUqb)?RYYH+pZC&Ps*d9C zJIL=e{+3cGLQS>GyDB>GZ`HY;gwDVA3nP}q)U}$E`FG~GOubR#y4OJ(Y)6mlCeZm2 z;omEP7;S42=g2jj&`gAXw+o?8Hnv-ULmPZ-C;Ypv10>DApJ5F=Hvhhs33RIdJ^#;8 zgU-L#;V4qH%)-CVM*~v*yBBeNf`9*jeukQ3lz(r)u`KfMgAX(R{*`XbzdbaQ(E0bN zjB&m}qdBQxetj~(%mYiRU$TB33$Zj^RkFxF(T8K^F{cP0jw#v3d`EvchWSl9QF!4= zkXDa-Y2yZ!elr~&il*N;ioW$k`mIncKYTMOnm&9#Rd7FtsKa~J1261o&#OSi;gMea zZKz-a`s+`t0i{9l6~&e=jo$reEU!^yYDz=%Wi`^y<8vRw2Q0cRy zm^%7(C}bb2Wj58*ctTHOsh-9nO6X|3*C`G9zZx|@a`ZH^qiDPwK?Am2a)J?Q35^;d z`ZnGAK5X8xjrw8M5NY#{;p7v*l>Ojtimt7Dk6V}R)w1I+m` zzzm3h>5o~eHm|;sb(?%-A=+$2d0`jjw?~)j;uLy-um>-u1SS!wXy%x;v)0aLC0G%o z|LsKmG!prVj>cVj8hIz7@p0!g#_DN|I0=ncqi7&T(WpBKXS=qRoAE$fvk0S6JU)vB z5v`>@K?%qiA>hViVF4rME7RjTJHp-FDehHz+{}(}_jihWt{%5fN4QEPt{Shqy3>3O zG5;?(v(36*(iL0p(+Bny=uJdSIH7C@4AfcK+Boszt#4Lr^^w0uu0o%;o2^0*55N!b zt-?LzAk-E9j3>OUZrxIY{sfI7)U+gl@~t0XK*nIrcnZD*|4|zR_ZN27@fSvi`p8

%7ZqDCmLT$aAL*mMsplx#d9E7po^~d{p}c5TyTQEBp_1@>(um z0B7JopoNy=|Kye)$AurI`Q2a{cvh}dj)Ss2jM9F?AO2yKb{IKW&#TO`L3&ca^_*$O{~z@ak+O_1XG{4UF3F1f73MM09XxHh z(0rvdq3g2YL$HM~-h9j`-3H(}=07J$e5##E@N{Xd(fr}*(tAep zo2N@(8O<9{mzopI@1#l(n9To9m7X`5pGlSKOy)qU^pe@UrjPWs+3f2h9W$E`rb_;9 z=C4zwwr=L*eWYi)oA>pRws$wb(?|NOyLodT>0OKYgEOS#7W1Yvq<{1?`>a&7m`-rxMNIpCSDz$?Q#&wj`Oq?kl~YWd5M9^ktH{v9GkP zm-*8)=}<58f6}DY$>tZ*q)o}@r_-cot>&sTrDm&n#hFsbYJTWUX?cqIP?~fs#r)v! zq*cAm-=8VH+1tGTOlePV^LuAXD^8;i?L#3+eW1Iu&l)F9#T{wuWZc&p(why^SHk9f z&-^Epx6@$$BtiPda0C9&i|>r|abpUN@K@ zNW}jH1AxC8FW;RgEln^#kR+{7F#nh+eV_2Mp|O|rviZWNlBA|?W;}n>?ZSU2N%h^$ z%}LVd-OY7L(khGj=OpPhi}@?$SP1699_CkjNh^Ao|J6%c+rzxLm$bcy`Dx(xF#ow1 zDHAZi_WTk)0_HlpQqKiDcJpHf$!jn_XMm(Qexboi{S0UR9vNjA+ zCP*(O01Fbcb_TlA`G(&S9DKFfX!zKGZ{mDy9J@Y2styAZtaPR!h4eexJi$=dt6W;7 zk%^r~$YAMjzF5izD)?mP8jLoV%hQ(2&7-6#^epu;Bn>p%4Y@t1OLyz*>0{`1wfSa4 zanHHZ17uN64$Cm}RniTDj`j>Xy?%EhJQMzZ`47#;Fu@H;c1g-W+*4!T|1w+uSN;DB z8YnKh4jzavz^n6<`kA7x4_v^J|l3~ zpv=oS?zMBL-zc!Ni}TCNo#kAJ?EEs<6}HJvmo48`<}7#RyUX(DxNLVg3rotJw)}#E zqB(ckid@dw<%1bQPO&q;+-aLRtE2?Cd|PS$y|bM_m|arfv=tVWmAe3zlV4O|`{IFD zC7ZjP@N;vnvGtb*NMoGEMRT2H_ewcMGw*hnNyWCYW+gXOk8#TF*xQ1l0F+gX*6+I=J%{Ba(6KhE&*y;{@naI`BZ>AXglZ3$uE*7=9lLe=c9Jey{4eJ$aYhHLB2G$ zs2Cn$%PuJ_bULAWZl7{zv2$jWO__BD3k4L-vCSmYlTl+)v1Ee=aFLqE!9@yeF4C09 z8C6i^x;J0SEob_+6_wlaXS!hO!P2A>om-XL3QOE`VAZj7vxV(aeuYFi*Inl0a*d+fs@K^8!4li1JENz83eP zB5yP9nVG!3F{eijnHRICv9M7I8l#kXiP|tZMCPTFO6Em^NST)k_n+)4%Xc~N1e%mN zJh!yy#BAwOwIaZnP=BezF6H1VonuFi#Q3eIvAph=2DpP`?NT$Y9Re-`c^TvE(v)lL z(lA`~Be|k+ha+$Pb#|$80_wm;Khl}{BlvOI*;m;5kDHV`z;@Z-O9l_6vd;71MdNNB zTvB$Y4KRZk!k|nIvva&y>Hi;Gv@KLy(P(YjB?hU-4QNYvo`L84Fn>~?uRSCDe6Q}= ziZ6<(Fm<};vnPl1|9V~c`KJlt=kXK6&+~N8b-L%XCxv11bk9HPo@ZYlhN;#)x9gtI z&I!YOIxGC#Z)*5?tnT>--Lw0aFwA=K?1FwWHu8LWHtC+zbkD=Zb17g_bkAdS&qKvC z)c$|J|78uNiuw(IyiqbNuo%utGMSd3aik$1NA9Kl*M~xXM_S5Gwi$2inQXc)k(CWc zmg|O4=o{RnQOOpcada>97*7Jxn}Tcnjd(?l%CeK~_a&PooKcaAag`z;&5Y5byb4?k zqVkp@Zwd0S0mXgjbXs{mkE&`CG&gvlgbR}(y4{!blp^!yi-O{oWp%o=Q<) zM|$eYp7R5t(7AEcSG_b8LU$MD)5s0eRehVm=fViQdzpY;;jKh{nR>k0vFWANAD?_H zfrls8?Un~e;5cHiXQ`kPychFX_C$#SpS!BgF)^80M}K!D@FW_Xa_>}uJ|Ax=$eJC zS?aelgVLop-xv#M{2=L8u)>pqIzWRp8S)U2=t<=kB{7X#wY{S9*c-n43oboMs zD87EU9cTLEiD?;e%9j(Te8d0Pal7u!uWhgy`P$lh#R=Ix0|sw``^SM z+oDitHh4FAqhiO*lgAEK=Bf8%mm2t5?4bB{-^p=R-lxs~?|9z}W|MKAgoFbL%%EMh zsp=;>uD>h1fjGetG5?z$+qh&Xe1wfl{sjH^0^ehFd|&fW!hdBKTK_C zeq{X#-x(MKUC|kXy2+Q;jS7WYyMfMQpfe`PAdO2g8{N`aYl6G9TS|AMdqGM!qkDb| z7B^f8?{}*O#3zN`;r+s}eJ6!|Jqy_vpuD3sBjSG=F2ZNBsOv0K!}uuf zG-ldRM)G-IXbTnf0rQI)|normuD%m#a zKT&uT?{c}3y7DJG>Wmm~#^}EXUWytcbg@>c^6L6a{QfipF*zQ8YC}JMD(g)YS4gi} zTS6gh;fMW+uZ`cTE)8_0+oWZo5bZ&0ZD(w3{=W|E&!>V%{W9^}v_2Gil@2MXv2?5$ zGyKySF=ptBZ(4th$0ue0k94QiAEQsCKu__;m>rMC=Mzg2n>z9d(j)yk8>`z;Mlxog z-O$+7WY@LxF4nw=HeE~5cH)WsshdNg-veLM@2#=LH+5XT^f|l;0d&(C9nZo?jIV`V zq$~fBp6oczc7?YAectc%{7;FkJ*1=W>S!L&RejB!;Kgd=^}xp#wPc#6(-#Jkv5bq_ z(HAA_WxX~wSvOX9?9Z|CJOyhjS;X@U9nW)PtGjwreEV(7FmLW?Owtw4tQ~>Zy=y|D zEi~3G(D95uEMX%b>vm=516V&z)9X6McDMp@_EcPjuO;I`-wR>^c0E`23LC>wn{i6V`=7_2h?3 zbvhzHeC_0ZXcO|*V4pDFery%?h~gRB411*Geyl4UAIDmMJZ)xKWqiJ{GEO`@eBo5a zLaOgcn70gqU9`UP&e&q$HteOJqsJ3_N?qy`@|~~8%a5(T9N4cTysp}{8arno_WDt; zX=9|%8W*2@ox%njs-u2GD0Btxnx5eA_ry5AYr?$wRD9NkYN*bo|3#fyuunW=)1^z| z^YZ7p224@%Did=5m*iGS&HONo+PPc)nxbkJUD5b3&nf zvW@8}yH+=?q1?=E(-j?cer3UVf&!wGs-vUMudp7YF57pedmC`6uKieRr*kS1ygVM; zdQJ}fG@f<(X3PyoMb$Y!#(rQ7=I;^nx|?FNTRr-|xa0sATX0P#xKUetLiV;_~*z4+*4yuPyzZ9X2~p*^;E z`pK#Afq2FbO_*0>8ztN(#hKF1+On$C^uL{2|4RJ@;ih6voTsmkuRY!v>)K-)<}#<^ zvns!?)$#FL4>`x2!0){(yIt<1tb)89jf1<=?+Wy9@x+j2z>6mq%!030$-1}KbU}6c`E&Z>IZ2!+Y?VLNJTq|Hx^`JT_v7aunsa3-&%hu_7J=D9q2V8 z7Q{H$%Zd|k7S0nT>G>QVTR*uDbC;|1c=Kb!8;E#5R*z@2GsLd+(u(sV@wCOt`{J8p z4Mjg0Pb@#~jc**#2K$}L*j8;5J8;f3o;k-D#MD!X8ESnNtkFdHXN-Gu>tMf*_6fSO zy9s#l)K?#UPAA55;9gIB_G`wuka*fr8qU?kBVQ~0ES|nUB~E|YfOZ=XpG{aJj>qmp zffrAGHSVZ(8)H11?}|D{KRLE|mW4Hkj?S8N<=1UkQ;7#J4fVwn2kA`vD1F>r7@K@{ z@EOlq%y{5+#3$<$!ADnX6HVw}<^s-S)6H9H{wogRcctIfMe()c{upD#<97vUSMjvR zg8So(-!;+weT;E<2KGtgX^-{ryLj|+pe(-jxbdEj@nZEK3Hk|;{|t}vA8%}H7GqF< zJn_65>kjd>7X@~S=bZdX^j9678R)8gY%U3fhUw$MoY>+4z26eC&Jkn3x&UWvI*JEf z@mX3LpB+|0zBBdm#Td_9AzwWDoPqI1JmW=MoOU>f@o7AENXL1lc5_$DF(3 zzZmPc@x+f6v*YvIX81!qep_80pWmi~&tZChh%tUlL4OyI-!8?PTt|Kzt6gnaTVZyc z_TSlc9r}fi^xPF6;pZXN*wWGg?r=9hW6VHxyhj{#VMx1y{fY(v{?y9{^ML!ddUTCi>9{HBU ziPr?Yc;stEJikWouh@K#^jEw;sKqz+JpCX8`#cUGosLUP z*sf2HO6;tiX>l_x6zXmO-MnOr$7md%WKQxWu(OyJ;PkbE!K8>NJNy#bG z@Xa6_9*5yNj(l~!-($pwi083c@h9w&@(w{Y#l0YNH%3B&WcFk>@2|N<5~q= zQZ4;Dwx<}B(5XbHUV5^ z3(#v4%ahZ`LqbNwffAJn)W+mo1^hP9c}mb>y3K)ZLBe!RB4^}I&VtCjF7Z~Dmihx{ zKdzkLg+h-LKDfJ=TN9wL~LA-;z{-EV9R5l(&g;AKBv} z*dygZ)2QTBk9l13jH$^}vXf^N^-NBMgekC3(x^tL>rMJtRY7tN%8X;#ExQ8{D1&@# zEv|yILZP?GfA31RJVf<8m@q0i#be4&9%?+$6O`*fxdD_LlTFt`hn>ll1`;IOu(SDl z&+OY-qnL6!#UUODrxZAk;VxaH`JVBbp2DP~63fNYSaQk-@lFicVG6F@z?(^U4h;|f zU>qN|I{*Gw1whh&9}2w!T;Bep^qHNUlQ72sMZpOobeWxKoQUi(QQ4ysjilBSvpHX6 zw_+RiKRd6_Zd}!YT~OV19b}X5QX3c#I}JNG6q<%-l0(=Fe&I2Z;C9#x5@_}sm53rV zUo8V@q`OMcnE*O!KPcM!xMW+2uEmT^q`0&hu%&?Y(4as)%atwOMJhi}bQ;1J3VkaXy%@(+BDsgp_gpzZo77aX5BFVZJF^G9k! zc1OYDt9qh0bMgm@A1=UWTpS8rNbqo75Tx#o#VYdI;V8R@%ECHFq@^$PX<>d`;-qkb zKs&P|`37AFvEJQ-09F4`U&g1r|NH&_QUmjc!kNUcV5C8^Tx^i)b$JVrHwAf3y1bOD z4AKnbP0I}9_D5bT@``nN&B!~BypDb=@O{t?xVGW?5Z4#D4&pKmGf1c5%D^=Y*LYmF z;+l)=VO-DP+KlThTzhfRuNC)0;@Nm9@Nu1s>tbAXTsPvHhN}=)8Lsi4^)9XtaqYvU;Q9&IZ@4U%fi|vmTo>TF7*`gqvAA+@O~rKwt~t2qw*dD_ zTHIm*gP$|R|`5$TB~^v(M50OB+$kE$QVKW#2a`;6Dj0q^<6_!4S8kS%2N4Sf49J}`i`7!#m_O55N?PFGqL-GNrWBW>+MDu=-A?HZ zllbyFxNt#RlJp-nhkc73a}{ZNxvQ)I{~^GQ?5POfRWHVDYWnm$ovzvWMRW4Y?ktz) zAwBz!=`-DB(`V<;mn09;rPHT7=gciCg8?KTPZ!evL?B5|AXV;kP0ueao$k7~6ghjO z=`)?M1^)XN!*pj^*_;yU{ihd};*0N2R0xYo z(p*#FJU9@Z)|h4sn17mP-+}+KVBXAfNqWIF+c|sY>{3bkH+w3*SCU?&r`aWQol?E2 z%*m17Hlcd@CVjC}ddE~=bmyG>VoCbM1a&eUe*XWk_crixRb~G8&07;_fffoBC>Wq% zg|=kUq)nw@(`4F)rb)=8P-^vdGMTgklNTnFzF@_oAnb}Rx~TBCYFE2jmDTF9`$Mg4 zT`RJPiY{tbs@4?|S5~W{vWoiuKKI<`x%bRDGk21P{rLI)ydN57p8I`X&U2pgoR@p& z9Qu?^!#gijdj>dvsLqdMN4DeOg6f)WD0^l&KZp|mYM>U!CGxZ`^P;q3$ z*f`9_bqV}wKWGBeGTgHrL2;zg-PpA@kzeY%sU16Fu~=h&ax8;GE%H#ir6ZNd$6~3i z$()NVe3*>h~0IvU@q>QDhk)hFK zE*(%ccKXo z3mYcQj|%Nwn^+7Pizh7u0${|lN%L=WIw!~L1zY#zc#{b~n0qG8ugZP%XX1~kaK>!+R1K4b@aJ?4Q@QKgdRCN&w2dW zu?{nt*?3cZ;B0nPQurx#iS$ivD0 z%(fUgF-7M9d7Yzol2F{a+{BSX$1*0=Icv7NaUk0R&tpGxd>-C@qjT|WQjm1LcJ8K< z`P5ctzE6XLeG1ME@oA$tn#D!$O~sWpub@}BuQH2h)`pZ??1Dh{e;mpLpzg+)sdZ41G)tQTbo%OBQ_X*Rkzg+*%c!1V@ zE4|WIdw(~~U*UMaA@V&yYsQt%hw)e4_sM_x-~S~Z_#n#R*FOe3c(#oCe zoX6Wgp2-dbQuq|Qg{j=g*x15h9Lu;Zt>B9reH9LlE~{@%)Hg0_Y;h`f_aRQz0X5YX zbf+yAQ|GJIFC5B`52vr%lExv4nH0VzbE&OYWtv--)Gyq^|8+OkFXVrNo;6q)Sf~n9 zzi@DPWFbzZOx?7QPTTX2{&QxOc7S4ST$GyPQqv=y%IX@dmN-??hiSb9hX@j} zva)sz2Ri2Kb!uHrb_C~NdVf6FjB4-mz{q$%mTW33rqTL`Q-uY25-+%FT7DWIbm}X< z@jcwCaYyqxr{YQaj4vrDtoSCGQC;Irpqz?t(XF}~cQBjW;#7Q_?#;kAtSdSdN9fy3 zut60Gt@sZj%m(ZDAXZA8ito_(IW=y6XmoHG2a7rtPm#E}&a~>Q@&DRY9i4Hf;^_6H z;%WT(J^r2Koa`-;Rs8%ozExJ%sN#EttgiJ6qPgN^7mIi)r!qylyf53F%7He7__S(L zcCxm(SNS#t8{0YNB7SmCQw%47}S&9kue;{=v4mh1y2dW z-~0M|`8t%m5euc2F9w9nFcJPhgz2tYJFJXXkh03^T3Sc)7XMBj!TRR#fK#>HvkTww zpHp=eeep1P1;#5>q6!uE z6v|Kmp8PFdEmXg@q7CHffr!^D5rKqTJqgp9;SC-`?bhVj)@{kGn|Eq1qk`3L%_sX^ zqB=EK{4+#Ot3HUor`(G_U&g;v=?{os$Nx@K;PlN-&5|GB`?TsGQ$(}sz2c4 zbQEng%}bkO&a{;k1oX+<{NjLqr$?t{S!6m`gb(UC%^9^{xCP>CXl=Xp@UP$ur-pRb zevw>KT{Ap_3GkL-r}h!5i#n%jDbRr&K*yY>+CvYKjB#~rDQ51sq@CJ-B>_&2`tqem ziOs1aUG&ilx+j zwq>wvU;8B8pI?Jz?lHLGTU6BL^z9aW^Rn8Cnk)l+W(<1Pt**eGM(Dr(U&Iy!!w22-_w^PHG`?G`0^rsIa)I~b~B!q)c%3K9Xo@b zci<^UtyA$6l=o@+PETe0@6Vnwh7^D&1!MW4yl+QE1#v#dcgTPKoht9nalYd@(!W*h z-Fp5EH1x2n8jt*fM}~`iWvaY&-n|!R`$XI(W_9l*@19dJn@C>!^uoozd$M=8THPI| z1*|Q@;rr9Q`*rGm*vc8+jTsfQ(T)b(eDbFBu&dR^4;UWF+d!vzpxG5p)mPBC z>&RQwy1W)&?NogfpFJW4m`AL1s{VzE6sdlPRP`i2Ppf_dgiO!uXj$Ty?u?3xlZj3V zLeVM1_%~-)5cy0GPUApC?LY>(MWy-Ln<_S90yAp^g!QfOio1!nHSzZK7-fWLJ*~Zc z9j%>iZ+x}e9`A{Fwa2^KZa^;(a3$hy5mcp)O7wJM*%p!#PE~M+c~^C|uJ+U<`dT|X zo$3IwuKT(TPEF{0d|h|%4eq**#JbkLwl%I|m=*w5t%pr*>w4VQu6B22Z)+DoIM%tg zG-64UQ&$?1=q4i*&PfHZ*3R`IRnE!5?cR86BGKLEc64FAx|{rjvc)@{=_X`VkA|2L zAX?kn)~{RN+1eL(yVv)v?(XPX?Y8#9j#C0mPj7c;_v-a=cYT6x!)0;j)Zli!r^C2? zT5y~E)fsOE&&+_>vp%uLUFZ4QnH7*pekZCNcb(G%a(nmsl}tV(ATzqV$C({a84T)~ z0kx;K-A%0N?(K6|t?z2<>*(%s&eHGp#{1Uyb|sv%1M;fw^}X&j>rvUA9qT&!oH@ZQ zR9D~it-Y|dH@+&4NFmRxjCaLXb+jR-opScw1k0 zZ^y>Ct3uCN5Zqghh(NRS5|f*t(x9<)Itv2?5!ZLIS30{97O2jSb%>!w#ZU?8LwogM zSLm>w*0#0quU`utU5PG1Ht5K{8+ziM@k9dE0C@=~rr#!88r+pPxIG)Xd!5GMCWT`! zj7GwxT1-%GffJm?B_OMMyVrT3CMyVzy$(;)&@2;9bAV7;T?;p)G6hB@ED4YlDXJpe zFk-0{Ap%;0+g_9CNvv7FYNfL*Ap0^oxw`QU@wW9|`gmmkQmvwCqUQ(=@mzMzQHGP$aj5W4M&0Zbc@$=vH9er!4-8-)eZnbt^-+DvBU4>2yU0f>w z2x@0V09fCJRNqO>vNPW0v<5d4YdTi-#hjG^Wn-Kg?S?+|+OE>o)$X(f_tB=;b;BQi zBcx>GvDs^}QW^ac5O<(@PoaV(xVvtu7*Rb#SMvyAR&&Y3=B3 zMMvSR3GVO+fW{cAFYgH5^liM>%LdLh=AAViYD}>C%ZPQG?SR(5M_L;wW=DJ;5CnVtzEDd!XCb7T#Xf+6he0*La17a2}pK<28v)_2DG;8ttWuX7J>+mXrTbua#&i5IWb<9UB*ePzvSa8~K8u5J~Y&MXW=sD$nGzsgx{^uMZE zE9rmLvl1Qj|C(9t-v6h~LiYkf0^`-T&hC{f&$R=9J+c+neV_Rvj?4)G;{C`EFh@2AaLh2F#;pU<2{ecq~$UIY%^ zoTZAg!RsGA(WiR|@8cP>;@3exad_Wn&swQuCNR3gcsICn)~t2wd_&J>TZC;+$RHt} z<69+!bA1Ahs6B1xq4<4)in*ct!gT(ub*+iDu4kslbb%sxpI_$L=zXl8g+U~Vb=we3 z3G@&bI#su!g1sqP4pr*KRF6~DkI&Nw`ga7c+zlnMc9p6l5ZzePRB&rR-5T4LYjRD- zw0GB2^B=5cx>NOUB#nX;;)cd(wRM||H&b&-MB7MzKcaF#)SxA9sUzkygB2ui-PBvu ztNm@=&Ddsf77|4p#uFG6dZE$LrqMd^%mQH=fI6B$s01?=lszYftGfI3^(Vw%v^ zhgc4XJ`eP8s0BH#m38-_cLn2-gOuK1ePP7H!i3eggn;oY#Zx1)V^ z9Mi4D&(&@|y(Gne<7}I#RpAsUk?dnAP2*f4U-aut^Td&*D z9BV{V32xCqs}s|vfU-JHiGNmzvUUk(N&x`968a$Lj1XyU3#LaQ#JcuXt?Ob9Xg>jQ zWjjobVMkKuOlAJvT)0l538_)O&{H_K%DY573L$wHKb`E%$qTnPI%BiKSQrbdd+D zqhxv<(aWvx7(P!&&Q&i@c`fgflL&xkIsWq?Z*jYJ{k0ul6F6y{vU=4y*ubK)PCXbg zpN>>kR}W$V3lB2ts_4bhYKZ%%JiG4a_&f`r=(&tb^Bqiyk-uH%z!R+YETN-+si^2UgU}~k2o)zc z$*otNv-})XiBG8MI71O;TnJTHK-?*3R=oTi#d>Our~WkB5M*YxXG6ysY{jhk5IGkN zr+e1bF#QbQI!Gq#W{19_uxEzE)R1{+oeeQ$(b;D@FUSApG&!qDM@=Pi!2f;M5QtO<_?or=;=z(cP9IF7snK)g;(CA~#Z^?{0ti!QohZNrwUZn&Z0 zimNZWsImg$6M$4Y>qtSN!te_O-pd1v8y5zz9w38e$MNi@v{|@Y0HpU0qL}~+ztvEh z!Ex|@VP<5}R`L@*;>n@z8~I&2zp7fMv` zOXGKe@N>}H=;!des|HW4JJfn=_2(z8?k|jgh92mFO?$m}0_rJ3ac#xFV;W@#krAr+ z1tKu6|I?%Tfa3pXsX-`<@arV}+{wETR8CdJ65PAYr>Ore>c@}O{EMQvs)Bx6uV0J2 zw@Vy{b{zfVpU?~{kZmYE;Ps)r_X_x;lsnRYBXJS8Cx^Z`Z}I+8y75fM-@W)pX*{5O z9N$*3&19zKIt*F^TB9mEmrHSx%@=?Vql(bAh<;h*fA@4%fW6@2vWv|X_73JK_#VPP zl2BDKfWIU$xEAFCWhe+Rso-Yl(=+%y0Ou%-w@+y3E`I59V+z0R3;TyXzpIu#Pd}1d zlp4j`65;C?_(FDhlD!+Jz$0rAMC8z_ibeQKpVYJw1f>DkAb#ErNFlzK~UfZox3uy`Vh0g1PMF`j}vt>vNzS5U#U) zExN9s2!^?4qVW5rTr{Q#F19cx80K0B%0t3sudl6wVXj+2c~HFZ0Vu*70RF|g9uo|6 z%|g??Pq;9yxA<_LV3?~BlnpD{hwb1(wfh(AiVKFh5}?#=X0A(tH|r}e80NYMl*h#z zcCLRC40C-Gl;?%Z?!%u8hPkSdN;hB07E&#n7G5G4=4u6H-!kS}0xkrCf3Y`)1jAhS zf^t;2E(G4x^;N+zR~1$2D_PfT!Gf8nf3dDDf?=*lK)G9V*~|4K!7vwXdNLbDL8?Nl z#G?Sof{I3J=br31hgY#Z`#}N0zu2A*!La0;L79iJp%PbBd=h^#1NATFxIF0cCfDu6GKCxjqKUAt{$#*Ac-m7j=8t2wfKmhPhq^%BYlU4@!gP zJ>rddu+407_X~!(egaCn zSZL2bvrc6Ub2WjoU%2e$>JbccZ2@J5M6bPEZxjr3-3Q77q#f0o?5+Dj!7$gCL3yH? zx$If%mx5ug*{30gi>?c;KDTI zcL;_hKLkp<*fS3tW^0;*V^|c1xyC?wTE^J+QoKzt%(V}c!x5$U95AC1rFcd#EcxU! zkRin$dntwm!(3khW!_Sbx}Txo7Z@HJM~A5}%r)ms$JrYZ8%=^?uC<^Xk_i7fLIlGa z|Kd2@DH!JZ04NXKz!uu$@H2v8uCIWyL3;Cxp@lUBpPm*BbNvRC`>tVK^N=sU!3GNd z#V|o(m}@O44Z^hr9A?ygL@>-%iKJL9TnnrgE*A`Q-3-cs4Q%1>z=c5YFD~KZf?=+U zu<$TjGEzP8j14}u3Wm8}4GIk(g0^h7xE;V`SF=6Wf`QQLVja&4h9xJ?LC(CMxqbmS zxnvlNF~Km`dqJ78hIRcG5#GS6#0y^%3~^yspv*8Zn^9b~ zB18<&0W)`;<=Er!%<~w-+LwXSBwSZPj_IF%!7$gGL3wu^1 z5{Q&9_%w4aW0-3NDD5fM^$M%5VZkuhyGc$zb6sZT`hsAX>%Ty`_chEl-)iA%Z0xTv z%=Lay?%Tv%C}im3Xn9UB%+-WMwkye8=$1kkbG=b8%=KkZM#URT!DH6f{|JV;E_xZp zW4Ev_du((IhPk$b@}O{CW!1G$FwFHhD9eTGwcz5?1fOc^8N*!5K-rJ3pW>*hg1FGI z{fqez*E5E>u0iO{5ncFViNn_khPgfr%JVx}m%S(YmSC96xd=JoHOys?jm?5#uFrz< zbVO`SznC%1bsZ=VBw3d|Ha;vE=K2*V4R2!93qV`;7m z43rdxxfX!3SGd-~GPW!Dv`H|`btfqEg$t9z(8c_Z35L1q7NUQ@gDs>utPnotS|%9g zN`vy^D03|b2V;Xzdj-Q>-vVXN?aWmtdguf5pSy@L%yk1O2Zopn;U(DM)5iqETrYsq zax-&1j6z|^?_aEIf?j>(`*{i{N@iBV(9r11JZDD;_G1BjvhVFwFH?Q0^5j zyEiHqGlsd^LFtQ#!<~X*u8)ASFCwCTAsFUr!kn^an0;uEsJ|8rb3Fx0!w%*;Y>lW_ zG&6>|a-cjNQOiFP409!xz}doO?;ZYGFw8X@De!TL!ro_80PvRC5$iUcoTe7eJYtVy;V=!TUdR9TyC9&AAezlnAa4!7$f2C@F2OL@H$b^NA|F2ju~&uOKcQTpSxif?=+Yf^vMA%Vp1pzY`2|#aH5m z#@8{IJs-YRFwFG?DD_fb=fkcFGS0i$!ntjXVXhP?hXz@f-Sf8!hPmzqWq$ zUj(H^#!=m{tlGEF5g-0eFwAvXJH~9cv4t0c!z|ZF1;bpIpi@0Iz+B{clk0lHFxTy% z+$&s{S-Bn*40C-Sl=j!KE=&@nG{L78s~E#vdq5eGEQ+qwV&QiL!(3;q2JjBnWzQSS z1jAe#L3tilk`JmXlK5MVf9m4c$P0$K{tA=@8<`7kv8)3e5e#!(v<4ZVpSeB&u9JLC zj`-!(f?=+|0p*3Q%!R?U#T$`$GIaF`hPgfn%4Qk&o@>?hj9{2+ z-Zfa?kkOaDz6J%uTptAGctlJ2SHUpXQBVd%m%WF*a4ln)D+x+VL~Oi8FwAuTlsT_v zAEIlQS_(c@buxyzt_9_Iin;8y{5HWb*CU`jcO!ExuzJ2`9b=g5RiGS_R{1iiVfs+% ze;XAHbL|1;g^1XAUNFqHx(fm&W7}inZGvI0CqOxfW~JKKslH9>e{A7WBs_&-uKPi$ zA7ZWx0VjTSG1pPSFxR;~c!If`xu!9L_kZRZ5)5;F7L>kQnXAsqHTPP^FxL)HZhr%F zA;noT!1ID(uA6%CuF>txWzSJx5)5-)kiZH|goSGa!(2n4JS`Ts!@_DQ8++r!f?=+s zpg6a&g_q!q>G?DJ7{grHZNX{CGS^}&*Bydku7jWq2-iX@*Y5?xT+QpTwj9xxZx9S~ z?EvNRh_?Ji!7$e;*TKRxm+J$t@Fe_G7yGbXFwC_LlxiuLy)A!2FwFHsQ0gQf+S~G} z*E5E>nm}3pCbqB@rkQ#E&4OXBe+Ol6L|dM{ficY014_HJ%DK>G#>Phl!(4QfQ&!4# zp_S``8yLe}EugH4;JRKg%yly;4@kc}LsgXjm+R|;f?=*FK$(|eA7XHCDc9+csxZve z4aza$T4m+BM=;FwI4DPUvo3r4x(acsFwFH4P#%;K>>R&D>VI6WKMIDqy1;RFl6Bd0 z?*|3LT)zV49`XEH)^eSSgr_jfH4l`7GD^7&Tx?hHDJdA{x*wD$q^~^R%JrCFnCmy7 z?3S26Pr1SW%UVx=En}GL6`<^r=(WdTS}@GD2b8`yvJWqS7Bl95AsFUrb@5*AZOmoY zwMQ__^-EBWAr?tPRfXO2jhh+6TtlE7iKwr;1;bn)0%bEIM(MJ*l%s-Su2Yg&ONsDd zpJ15lU7$QGu`$gFUtC|`77TNp(T{8+xz`>WYXrkwJ3yH$ne9TTst|Ro>mk7~*RMdy zzmdIRujNj}slqVVUQlKTmtEJN1jAf6V7&GuvH;mtRbg+H?-dMl9R=mE#Kt++a?ORe z6o$F32j$SMtm||u*JlO8T<0R19*E$2yP&Ij z+t)V)!(1p)q7S}f(mw+e>29tGvOBy*h_xB{Qp8#Bik!(0ha zo)!!3p8s3HFxOW>IUeEpKM97pF3;mhR)ptYCm7~>1e9H?xLj*OrE#QO#{|P%zXoNi zWKrTGZ>o#Ev1yz!%=IuR^$}bbBatf%bG-?ad!?n=+t(w4VXo@!$o#M8a$x{x>A#i; zhPhIp)X8|>9*2J`80LByl&nOrJq}+K40AQ_z=$y-4o3vTT>C(IF(MA15e#!(yc2IM zh=on?hM56gBN*m-2Pk!tZR{D~bAn;6AA+(YA`Tbc!WibtfzlaKUw|bj1b3T(^Sqpy;{~8cD0VxTXA9 zFwC_Uo>(5C>rH}Tu73vQNQAC)&{HW4b8QFZ@SE8i=fgD9!jB1txxNF+laiy(<05(g z=W^9x)TuDcbvY<=`&pO0zOEMxbKMHc-4Pk!kYJeW51=fFvo54K$!Ec*vvxCvxh?}` z2FgZ0sH(V{{^FmyxLmK^%^2po6O`Fv;VS_*xgHe^b5-Alj2*%CD#0+mbG;pu`LMeJ_^OI_{H?}6b+Oj335L1q-h?&S2wh3R zFxNkUlHFZe*MAF!x$5D+8U4&uxST$zi#`8E!7$e!Kv^D9uFDWR3d3BzpzMjT@D{-^*Ly)Z z8o~8N!7$geplpgL*URo?40Bxz$^jWUbifU!H$E*G=9+sK`pO8dTLr^hPk}P8TD9P+ z3K|1c`F;;Ry#P$#GOnF^+~+z8KArtnjA6+!P?{pRdIZBcV9vB+jskN~Ftt|9 z&w#l{FlM=29ABCmbQ?OSQ+?I@`lsKG)2TJea!~FT3h#Wf8Io0AT?6&EX%_I#CxCcu zx++LCg5#Y}>OrZ&zbb4(R(SEQCIfWe!+ez+q6Qs-h4YcQlsy|rt#&Q)c1*(PLNEj| zjd}*u9WX}ex>%FJUv7i0xnLy;RTVAx8^~efJ_$@;1m+9m)d=RYd;l0) z%q~^-F9Fjc7`x5C1%~$NC?%))?N}!fOpmplz89Dm1!FJ!Az+%&kttpFy7&b!yCN_r zy#skeFm_!R0`p=7W;HNPC$T+tIX426jljGWn0*nL2Y@*mf%z^lvrjHgAtgY0#kh| z+hf<&{Vv!e7`v`vU~Z4Vya$-a1!LD$^={a58rx&fEuR3UPcU{lUjycD!PsrCxDW9o z7`vSFftfLr?XhE8fN2*@pEVz5fVodFc6+`I%rU{(b)9rSW>T}*9(z1*1*T6hb~$eW z=5E2*<@^blM+IZI`PTmrGpWJB`3x3Cuyk*!`RZ#yN}av18r~OuJz0KKu?ay98q|d**$}tAer1 zc^@#xBQReFX8zf1vt3v7`_VTE#;)tHfY}p)`5rJ&3T6eIWzL&M_o7bcuswENj{wsd zftmSts8hjE`!aR40`s_F?7DKmRG(AYp1%Wzc8XU0yWNKsAHcj)Fm_$n0&^e&^8sL< z6^uQ`z5>jGbJ-rduIdk>P9rd{24;_7df-Ddx7-a3?RlZfZrAm%z|1?ZH0D>pY>L1% z@52+!2uuc;#|2~e&wGKP9WJV=L`CNBPXn_i0&~vaWBel+yRHqu92Sh-KYM|BF#_`& zV4BWno9+EY`-hM>1Y_5AKQIqQV15P+?UbSXv)tNtx<8D(aRFoOy50%Q<_OGJfVodF zb|2R4$Gku=c3nNd%zjyEd;SWT&Irsmfw?^bbHzu{7YJsJwO!l>Om#imWB1_;z^o9A zy)EO-Fps0hpeFtp!? zibK0S?*yhL0`nL!qk^&5*Q@>k{i$H=_4Ns0o)?VWo^wBr++5k~ zMg?Op*W6Fyw~7&%D}gx{f!PSmoJ&jF^S8ik7L47VvpFABy!PWS>ao%2iE>^z7!8wF#x`BlIi5{$j< z?*`^Y!Pw<|516J`uswFnynn*FRs?1>F#94f_W*M=0`o91voB+N?BzQ1pYfbA0&^WO zcMHZ|uKR&G9D(^NFfR(mZqH@^2f6ohw%M+09GKAv%rRj0M_^w55ZY-3=2l?lEGTWy z4}s|s%nEcc75JyFO8@_W;_gTUM;7<;*n0rNxz=Cp&zbyt+OCk;%y zVC=d+3e2tuOx@>@>mo3h1M^%2rVAL_zor^BUTl7GJ20CfFpmLqZv^JFhcVxYz}yZ@ zb*!{K-vwrQ1ZK&Tfk^}NykP8p{uMCGmzB2p75|2O7=gJSmiOr+pp$MFeIoFuNi!p91E=2+V&0 z^IQbxoNu5`TT9#A0nDZd%-;ZWZv^H6U>+9?g5MIWKLDm~CEH`iT>9_uVFV@(%+g{q9 z?ZEU!U_JuO-4U4o0_Jc8=DcsAzlgxB2Bs-q+U7A}vJse%1G6szbMCj%UqoPb12cP7 zX?s2hOlJh<5nyhQ!2Af9gAthOBZ$KY%q74qSY6uYRlp2HV6wpMDS_d4fcH;Vt)a?U zl%ewn=PiBWRP~;MP@3U`9WrzsHgw%?=z8AJ^=KKo z9yN3wGIZ@WbR9QzJy?dWCk$N&4PCnoUC$Z19wo$3U}AflE&Wa!#q=z7-BwYLmi z#|&L`+K?7w&3QxD(}u3R=;GF7N^F36HFO;@bWv`J(skU>wa?HsVCZ_%(6zM;T`w5A_8Pi28@iq_bZrt{T<@mj zJ%;2>hUCW$$vtIArqi>uT5jH8NPg6i+#r&R*E=200>)4qyw}jxXXv6|H)!@OnO%mi zIz!hzhOQn%*C9jK3n#Po;^mrY=(^j`)oJKDXy`gxhORk=uDc9fYYbfv8M^kAp{w4| zMQ^KWbI&MXXx5ohAw*d8;qg0JZk8oGro0QdktOn zW$5ZLbY%@)3k+R*3|&X-*q-9`wZYJ})zCHH&~=}oYfl-vHXFJI3|;dKUH2NgHkF}k ztD$SNp{w4|b&sKIZW+2p4PBcIU2_dxcN@B9mZ58hp=*PoYmTAoE<+ccbQ{&ab{o3- z3|+GgUAG&$j@L%(y35ejW9XV`=-O@QI#!0RdkkHjhOQZgu3d(%C(6)upP_4wp{vf& zwZqVLR~fqY8oJsIUDbxJyrHYT3|;#TT`LS-NR|cpaMaLMU52g$hOXs?F8Y0?o_n)~ zuEPKni+QAW=N*{iAM$kJ_tfAnym)k~Fz5>^-j5QVRtR(UK+fiw)L)dAqc9|=7TQpN z(8a$6ZULQgTSw9&lk`5xV&I z%P5v-sj^3R65C8Gl%;I`Hu>jt-)2w8e}QsbC~Ob?W`s0URs0Zt5h$UHb*%tR=_1SY zYf)Qo-@Fa&8)t(|+%_Njm{#I0jp=M9=|wU5?AW}G8#m4c2B{Ugbl(u~BEqz`dUA?k z2=`m^&lzF=ocSN{k49Mn$~`EU7h{l|-jOF(4@25tj&Qn|C~~pKdO%SgtCxG>4{ITL z^sGY34QFy)Oh?RL7-n!-@+hdq>YabLPGdj(2Ma%{$)GP>iWPHwU9yHY&uH(@8|{4n z4%afkk_Sq(chInJ#MORTUq`Uo*etd<>?az)&kPuiZWdX%m>6@fYTXE-w29 zE_=mgp}XoM=N8g{;zN!Bkr>;BTPns(3{md(?ZGe`a_aGyBRYfoZ{C9ka;y z;U#FK%7@uZ|CUs$aZySHak=O>HDs>UW?BHoy{RY{)fd&0s;>=5Gxqu-U8=s$vv^VY zrydyP9~fUyUm!SCr&N=wPOrDhc?S1)AP!YqMpt6F_CwA+o`32~_NNL%KFmT2)oyT^ zv0;{*(4T^?hWS()=ob0KEQt%a24-3C|A!0a$En+#0e!1NlJtbu7X zFk21GMTM9prx#M1Hyd1)g_x!%5bv4~O|IrnL(WlT9i3~9fqBfpv>O=Ob4Hi5!oa-G zz$`Z~Z!<7024slGvC0>GcfZE%;^TE-oR8Fn7IaqdOzLI za}3OX8kpGz=3544rh$3Xz|1f(2MkP|fw`{`)3n2gRfDT}gCXZPhJX4D%yWg9ro)D= z5SKqX&C2LBwR6i*W_ZiOR4$($9^gT0C;IMZyZtvGAkT4L4GN9;V1PHi!LRN>aqd*3 z0_zCYpI1J+n0tKS3oag^iDcV|sDEsX*mmO|l7Mxz46<_+|HS5s<@lxxTXbV8N4P*2 zTxYpnFXbX#G}hJS5X)Q08(!H7Lvl>aGoT(t=pq<^nT5al#iN~FMx728=DOxl1G6H) zS_xyvkgkUL0Mo>XqP8l7p?p0lpce!$)IdCD6}_}E@!tv zx!a)JXHfPTlmiCkph0=mpgd_%jv18a49W`zh1SgVa?y&tPNC-oI%U2=q5Z6M%nF0j zX;3y8lmUY>Dil958>tQHx%aukIBYUj7#e#Ft``k1V|}%0D;kil>xDwDrSl6{JesNt zG0peFIhvfMPYM?`g9oYQ`dpP*&rGFvWb)2@FGun0?{Q#yG|KluQSTKn=8vH8`!*1V zYx+|`i&K=#K-n$22y-PU2QUcX`YuZ0=R-wl z14TVgVQ<_C3S9_$U;Dd2nTK!G%P6jgK-r|pc^niT4JynJK$+>sn4toD9gTw z^#XiUK6Kr5E;l^l)NB6P1WY|YL4XC0b3Z6gXqZod!dYEOegqVL_sQ1|%6+1Xo(P23#+ILb?LV>|=xpYrpgu-c9w}veN!`P};S+crPe)A=&!6K5-28;9F3GkAgy1 zfH`suF)wAOduROs`!GNW*A98(7HrOLv!pwOO{fuCOs$~{^Q z4ui5)lk-NxXq2~uvPR?j04RN$H~y6{up%hwQ=n|pFwcQINIj;sqt-Yh(E3i=JwQBNHaOHs6<-eO+>5=aOWj8(rrFbVO zbOo{T2q?z^5Ax5CK;bbhZs7VAD7@dYqSXG-akgs~o&yTM%cn4LQ0~IVK=OJ}=nCvf zfwBuJq6$>%FE$Qjd$u|14M~phH~U3y*{H znybV0Rrxg5PBoing3_YZ&IO<}XqY9S?A9=AK!JgwcCitZr!}q{LE*RHQ1-EWE;W+P z-lz2`w*Yeu3RU6x2Y;NmfO4Ov>wTc8=jQCO2S~D3_Ai679Bv2EZ_D2XMYr(Bpgb-X zy6!+W>$;>e6fM67CZM>3+jE(G+Bv4#eDaU*KDNjq^c+wg)F|^o*{oT(3>3;OK@E0- z@^du8pzN;&1??bY&k!gxHE(Puj20Vj1x3BL%>H>FC|fnIj}u0-@N=N>{^7WR>)W7= zY9;*vC^X9sy!t#SztAFT+B3+`n&k69(fiW|Q20$AM8Z&dC^fp%Ii%?t2Zm?9%AVUm zp=S!y@J~_R1GtKSAi@6mn@%6?6<^JDY{Vxj9Mb6ZlX2dNRsrvpP5nyRns0#FWV zK3oXOF3lV5pgbXxi9Z3#TwjK=c{3<0G&v)nJfu-}5k||I4}&rr<|)ss9yUn|{1)ft zN3tW^)4APJQiU1tN>J-t;5greoSAoqW9)~ZJRw{p@xMW#OXVNe#iMI?T_3GE1pfI0 zF#KMMD%Y%Mk@+>u`Jm8KjezSFplsFZYbz*p)#9I$vjdceUKO_RuR%GfHB5OAD4pO4 zB!8GFn&d}7QEwn~E2#VlX<}WJe+I@!onxBkX9F|d5!Q7nDDS^AOj!y_599=K*ab>G zD1kjWP)aQ=pu`BCKm1l%W4| zQ^{<0B;~vywe03ILuqi{6;Ry4p%EN63{_q|sJi$do_c?&T6wHn+5%6B(} zz438Ss8B&EJ`c(c&BCvNazxYq6e!gi=ECP-p;q>Vps3#ka4FsaN{h&Gb7{}@2Q-@x z0CPYvREmc|S&sh)Wj{i4H0|gAH`)a-Fu-pqF`{U4UIoeujcYe3#1WMJokY<}@dzmU zG&%nc%3+Q2pP15`$1{fyzwPac8M;M^KDRm ziRua3^0T1O6?pZ$pQEIjt_7exs(GUwl!vC19FCR^paiYS>j#HMokz7&ycw7#P4ZVk znWIVm4^Y%EJ6Q7R$H~5#Aqy`D1#S*y+N(UwiV)@+P@pPA*#OFunl}bLt}y1Epm6O0 zifb<@dxgtQ_K)Q9AZs>%9GF#FEgu5qh*lR*g7P{fjllCi0;OK_#{6F(1KbhDJP8UV zvcS(j1LX@^HvSV~ybB(yI1islhknieB_dq2Cl1PHDHowPf>MwFbNTU>3n()+%q~zy zHJd*I$_j7=`SA0g?9lx4Jy2RS%+EmCuSxzLD7uBSeg(-IW(g?j%_1u4xsYgTWK z&BC{Xa*tN_{h$zM5c7vXp(~(#9h9S*_G6$xj02+g&vAYV3jKO0sGW-E;lIUU%5+e8 zosBrL)gUMfGz)J8h2P{+nC+mvpp6{<3Y7D;(dm0Y$!g^~0190}?)@St!5oe5eH)a# zR<0j`vRR9G!Gz-^&azHET^`Oudcx()m*_z}x8<_Wj@~9@~lc0=h+7E(qOytnm zCYv61?r98r^>JWkY8D;?WveFV{NF&b$RS%7gEB`jn6VCTzY!xw&7K@E4FLw@`Js_* z>4!A!{{YO8Ry+R!%3k5}`~pflJ_POJ?B8OPqS+h+MZLX-cqS&Nl`xu|ZcsL85%pS7 z^#03im9GaTuj%>+P)0R5Uj${I=AZ9@vRtD)56W)M9#itP7x0^FjcY9^>Y{cUM>v}8 z^f6!_)ws-gY>Fwuh z+Irp2jzk~EK=_9D`Y>V)!`LTgvDDUN&dukNnfzEsD!w!|GBldZrQKsWW^O=$10)K~97Qu;79h)2&;9y0lN^lsyiN%T`MX*sS63kT^)=EzC?+J5L8&V8v zQ$=C$O$RK65!9{>Q#}UjT@kR>!^9e)yl*6*%(jh;<=Hy>En!vCGh^|g(frP^iAw{T z4sK3m)5%;IDij?UTRfJ|2k{*52|LQG1!Y@Fn27YtxEN&&$@E*cFR1Wd0W&o@a`Bkv zn=n-vn%0k{bEvb-q;s4q;E9U~OrkJq*TTsA763?D0FZA2SnHLlNV_d^uYft$03Wsv z4CK;dV+9S>6JWnzAjC`0D2!ACnHnMrJhn8b>UGKC}manLb$MK-0UiDH0zPp}8lyb0|HW zPhjMdPjA`T-ssnQ%z8(?vX1dd-*pBc7=$eA!&2z_d?q^jpuSuK}0(ASVriW*p=zDuD(Ukl{MnnrUYDYP2jAHEk9gXN~Muk|6+@H`7U2Dsf= z?+By1yA(N?npeEXYoA`l+wTaYuaO$0$LZ%-pDUmWgKtO4JWgYSa&RJ)%WY5iEDF|y z8ecG=^>wwN^eW@`u1(~ZY)jLrr5!R9z=$*vbK~)lSIXrmv@_g`c;g^tVVEo|zVW20 zpmiX96gG>HZLu;r3Kca%Q6jZ9Juse44@`2@9yVi2R>|H2YbfJZaB7$1b^LVzzdz8Ii9qFR1 z7@BV`_7>lh`H>twN+nKEmtc*4B!?L^y|zp9P9qv6J=*UCj4kU&GX=pt=?RT0*OW>O zrSzCZaL5CeyNgGYJL3aIt@3XNzEGjDDoM#F)B&30uvOaKkUfjr)7i|nbZ)2Wu6R5c zv(Urh^xJ{FwFQin_4{^?7IdW1sGzjErdSi27Ih>3pz%b~Pl2gZB|0!Y){{xyG(KA3 zS%Vt(Yxri^t6_REpO(hh&1!6bKZ7oBD!dvtV`{|*MQH9C+3va3Zv|M+!eiEa+RtC! z*rdms#c8v|qP_M~^x9@$IWW1|nrg{^-X;dF)DlCGk46Ad7#u5Xu@Z*%JK?ll$Qq>XkOQ&go=)8~GM-2BIw4P(nX0g^UP@Ksu%KuyT(T)H zR*ygW^s{_HDgU>$S_&MCVa&E_B&YQ^p;2?-no>xc;KieO-rkig>)A zvauV(b2rS@@D7!m!2?Q~$aVC&eN?(cn{wMrA=hHG&63DcjE?$_3XGh*95HI`2}&D~ z$8=L6C@?FiNg4J~eR`po4n24&8M6!&v4K==7{HNY$sEOTRI_~A3KMzCLEn$B&;U@_6(loyZ z1k0sIiN_n4x(OGLnMRXau(aZi4C7Uz(VcE`jNZLA``Z%}HgWS}%`h*S-JaYz=B95R zPi7}-l1+e^5u_LK2-Pd~vB?AtCL0U;mEyQ^gi0!m8vYtX$P$)X)1_f&=~NlOgETp@ z@#9L{_;E_aien>EWQ4ME(_=Ye#H6Uy7$L0ev{;TDF)D}^{}~U(G(EDkjqcQZRzpM! ziW+?BLJc%4P&uN8y-h zkEMeygyd4f4DM%!Mzf(Ye{iF0#tEpE#cWi3goPe-0;1&&jcCyxbONGd%iMJ?o|?IR zqpEYJxwzl8MQba@%?2d$Ep9vB3C)e{?C1#s7qzqvQ;tTr7j;Inep+!V8_U8=wFz{# z>##=!;=@hm=_gBig2+)ye^D++4f{^pd<7~X1u%4?S(C|CAl>H1_AF=58~Bp zyrbof%bL7#ohsnu+1Uh7Pw?>Df1w&)6z9g{%j6YoY7f_VD^VC8ZtF$r?dfydN4w#2 zZ;g+Po)Tdp^SCLCLDDQK(vVQH$yC}~BXg7EJ30dM$SyYP1cit>5gm2ZYL&{Eiwg%7 zlUnN$Sz=sNmmOtY6J;^KsZNzFF)r{NrZtfZVv||cn>x8-w2`o^{Yj9WOZN}uGEY!_ z@qWUpFru%p@)Ykcio+*Ziei~x%_jmEdp)gHYcUCIh}IwI5-{4L{$p|R{v!$>C<*0c zjj2>xZ*t>B()uJsuqj1TyDn2p?=dgE)8LcRdt;gDeNqBLW^#7c$i zEzO^RATcXQSo9oXl1rn}Pbb<7JA;>6o27u({%3L}E_W_^0@9@bQGL|pbd)`FJpu7j zgdoVQb)d&_uz(R-=apdqCCVujCniRDxeOa8GO(C{xWGiCpSBMci%d%}5iRIn%4TO1 z5_vRR;iAzCO+>Jk+T=CwQny(IrR#`kUTiT&yaQ@K4lHSUQxKlf*vB@=fJg9JtDwfAE8w znA_2VLgAOJ7&fSfe{F6;Et~#ts0oS`EDl7a!l+VFCDD+urRb3GCD0HQMAc1bg#%+9 zWK5UOZ(li@WKEQ({{B&5V!OMzas)No=V*p$gQEwoxM zD~@G!cD5R}i4xPII=Tpf6Y1p26eXq^T|?pWH~&nlEMVDUi_NI)b25EtycjPl*Joos zFQP4K9##|?2oBG{6nv6%uZb|T`r@-LU)og6w#Us2FTCfk~Be;_64VlVW7GS_dK;{pUc% zpZ_p`#T0DeqBeUmi2@I0oW;ZG?K}qv|Bkk3hSwjKOpPQlEEIC$4W3>hjjY34LU?`O z#hzO68?j4{_q=AJJff_Onu~=dNb+1ZDxbv)xL9E#zZl(wK7{q2jb#S$-fwzGDm|Jv zhO>U~schBcE$_XZ5^HaGZ+0>#rN)r^$Q)D1N z2`ZVV%99|5L`}9Qx41r$Irxcbkb)qjqh5K4HH6k|y_Y6v>93?WLw!aOZZ-h=u`k`g zh#H9S6sg$aEznEx`>gbq9DXU|z1D%P)jIk+`y14@A5$nTWFS_bhUjNG>iw#4ZnXSt z$Np|Wcp4JNy4*5Pc#J!|_lCXUMzXPke09P_C|op+(QlRTdkI-Jjs35y z4T?N7A#pbE2SVw&G%__+S!g-dT4g1eLh4%d zk*&8dU%=`8rY5XyVmz$Oe9Ba?lo*WABZh|s%Re##6SneIT1RH~UcW%Am6H|gV>-oI zbTp^mW)b0rUO0~PIZk*4SGF86DmzL=>Qkwpq)^NNqfl!(cV!XkJhm4^l%i?KTdZL^@p6vKIJ z2aGP<>kH+DP;5|2tFgg)Wz<+`VnPFR!%MAL^n^}+<`Gcv&~ z8!Y0DmL-m-rcA2?LCf$vyUs@J_3)PR9{EC1I4-n-!5v<7XHSKWdk6(+S982T>u+TsNHL}{qk z5^K2$w+tnB;G~zb-fRhDSvYzyNa(l`>CPL*%1G8EGfUB4MU0EbTll?|I88>&o`@E* zu}WA;ld$AXY1deimCYDLJ)FH*!FZnrdJ)E31;Lt^YO_-)FEFy`V=;?GVr?8Q_eT5P z@LR3Xpmyo!S<2KYm&yi*8-BsaGq5gL5%$(;ds%HkE}q0FOc zq3lE95Y8xtBWK&iX+3)ts(d$mn9S*Wj<85B(Ab0v*9Ijg)S>dH8e({=M&xnX1Oii!d`|6L8jB%a?p;8 zt1rpQs^LL&UD#NU*Cy?Yk67pN2jy5!3VX~lPE9OP+Yb4o&zDSm@ghjcL!-+Hm7uv) z38qYXr~r$#C01{RHB=Ga_`qLo^Lk+4wG-uHg|^I#A+#4U6tDzI)VP&WsyzX4^q~BW)^#=2J z1Kz)<-nR}_1#MXpdX(m6rzsN_n1`W}zs3@tl4!I5Tx^`et2A0x^L}p?Jwl1#4J(ft zo3N;fjY2jX27Z78p38 zv4&sXDIH}*%VcB2$*o`-!)?YgG@uGB-nExtEJLm2Et=I}P0im3r?@%`gQ%HUf(e(& zGIR*_c||&wo&sbLq-Net3w!# z(o%*$Fo*yJ;({lVK^^nRHvI6Y;4TX&Ypq3=fVAaXYibJAgywFFO;ncSv>+YgMZfZW zUBD(P;r7B6o4``6Rr-!6Z$#o)D6qCQ;F2QHQVToysSv{^h1*48rV3A&gT;{Ib)iq4 zyn(`m)o5b_TH96&b>%9xu!{+Bn>7G+v-Kd9{lX^2DylI^2p(*dcv-K+E;1)5LQE;w zlLhS}qHoedrGQmbTjE^zJvFPq_L(eFB6N)1z35OGpy1mLX|O;It5%jZIbH!Bi!sUKD$UE4Rcm>_pxK&-)SsOfZWtmH++muFUvKq>eCj0-`PHIwH~diY$zx7EZ9|d7pP;8NL{k zsIw$y#l!Q!V!sKbl1`dg)JIoJK{_ta!39jB4$d|5vhSjZ?5(3%Amo*sY<&SIma&Tn z37J!*0nw`$Y6Uph`Kx$yGtjJ{EBp|;V89h*i10%RFHDNpvYkoPO>C-Wsog++CQQa z#YDVkVG&g)?l*3wFOA2FN#_E1`<4W2tlqvRM%troPE;G12%J@vo;J#MLY9~c+M|aO zfz*=}X667JZ0{2dW09euPavqoE{%BTXdU@XkeSs7!)A0W-IiY{5{D zMztjrJV=$mDFdjB4L{!0%_tBX1q_Kbo@+{Eyd!U{aAJ@du>Sz(>NYMc>A?u z$EaXN@RF*S!lL-q_0klgi16V2!H!t*^9PMvvi-XKjyT1<-Qe#!VZReLCwv5~46M3h zVRB%GK@CjMZi#w>8dj|z7aUTq-w4!O=z#$RH^l@CJ#2(_c&Zb=V>$jgWTWM7U}&+M zfweY-m|W~;$T}5hn!U#H@c}$x#6gHNp;fkaL-(C_tC-&s_CvLE1Ic_6=Zg0w49j6$ z!Exa)QQ{MN644vG*y0d#_YbSWd``r%ep2I0C zwqzK`ng?g7b_~RwMO#uS*WXPePX`S-i_%-&!CZ1EP3NCe&ZM)3_`ID|d}(TAXf&C_ zR+MW~$j&!v_~Gq0_F(s;kc5G3&o-K?gh<-tW^yO1Vlh9X%M5lhqQj=!Mg~F$cx%da zU>C}{vKc22#=LEt!d3>r7D(*L;mBax*(nSOI~NnRNtZ>Jx;8A9N>j?nFg6wgxN}6E za$KZTIv!8f*QJNYJM!rvSTFOQ2z!X7&=ua%)$l=qhdlC9sEJVF;bM)jzi%X;%(jh; zV`emRiSycJulof?j#vm1hTP*7ZD%VO9PKnjgn>wzdRs9ejV%qFv@SV}-;7bY zqd{J*b_^r8;gpMV@QV>dfvQp!XfY{7>y&pzK*XJ|Yu~-uv-8P=XsUCSE7IC)f7S!tlVL^&+Dp2%T6AnG2r=orj zQs~dMK8z~cI{+A&zo3c~0>A(CPV)6nMb^vfOQE=;@U}~sNJI0jD&5i)s0D_pmPRWw zyr-cgEPmW%HMnRi_4SkNg02_gRam*YXrHwatO@M0H87q{4@@%u>w>weC>4t2BEjNg zseE46wATm~Pu(u)GX0~fi?>=exbg3oZm=4(1x?jIXIlA5FQVaEGu&;Xr%89P1==mc z%EdSvJ3df=(}s3t%ZurwLNn>DEkIDa>B9kyMJlrZ9cx0hQ8V+C^OOXaHpI1A9G<8| z*&D_-Ho)2-J5Q<2g)>DANWI@EYbTj|9i-N&7tIs2XSLb92PW53mx>unSTE}u$!7*L zYJ`?Z=eA)`xn!7VJLCTHjxI4cmffr_$$sVtAYf~Z$-E&QRFE-X2^eDN1E{MEgQvnb zAr0t^X_tXOgWug~^;gUf%aC09MnXr;Pla*D#L)D1$bQU-u&?6Cc)n|7yKnmBj4;En zSgBiB=D8Ge&vG!i8NMeyh(Gd}Sz| zctn>W)ClT7lT)_CVGzm$c#i398o?`ns1X@(M4z->tU^jlwVrPswl9b{v4tXqa;=Sb|s%rL{6*8AqsS_J=CO7RwO|CmzQU0*x5PDhf}={qbvA304gq z7#fi&@s35&B^hr^^kNG+h36`3o(&8S%It>{`UcD%@G`!}5bA>T)($S(b3jfy*0=&S zRwi{Yu^!?Dzm_n}3+~f4QMP_5KzP5mFeI2W6Yptl$s>`?8E`aDvA2K29t!{JDtIe_ znl$}JHFUmjm?;!?M&XK`z#DRM=|9)428TQw$#i(+R(k+n6ZA#>D zmh(JnJsOd6V0@c88c~xLkwT(Icd9Yqg$zyTiH`8(-GorBggS2T*n*(&l4DMApld{| zwM_=Cr_Adt!7o=Q(r9$KMUPbI zMN+`47yg^*VJkyfL6gP(O!3A;`8%TVyyS;;+FOEkMmD*PtS3Gin4BJSkPwlA^vVhv zduSRkxhzzMU~3{mS05w+dly<>b1QyCWI^0Usx!8|rTxUiLSS;)=Q)P?!l&W{8P^{P z$p)+8;0z6f3X19*g7IZ*t``I zYHh?u8!nun&PtMq4ppDBolsXwuY;FZTPS}1 zn_gSt1qsWjNxN;ll3>(z5Mn$Fl!MvAYVoot-bpq$v&B(FQ7t1f&6GN9Eo?(LW$RrW zPeu9Evk7sPUf=MBHZC60o$VMC8IuNKptp4+x za6sD}6WPJ}$M_T|K~TtsAMXFgaXY&HpzDY#pQN{7GJ|0{wHNiM${(<6NxO@ng@5|5`mc^4Mq9-boP4FO) z&_IUz_@LQfWfhNS3g5%fA#%7!SV}0b7lch9+%l0UY!?EimQSObpxyW_1Lj$VOwxXe ztSH%!&u=dQT#@aZ0K@%ML4519k_FlCh zT5QvNeH(UtGvFX$Vu*l6al`PSltwIs_mK#f7K0z-V2AL1N}o{;DA<=qo#GJYFKZ9e zz*^%sKKKv_;BzRZIr=&pG(;^{)P{X!s?j;E z?cZ84I$yD)2Q(w#u&51s!@o;W(TBqWG$El0rDg(UBXUo%2rL?5niT!4kiy@0l@(>0 zJWGstR$?$;SdAr?RxDC9Ev0tU*PIthW(Cov%L^iohIZZ#p=HVmT7WikR~y)eWq85x z6757^T923*nmtmP$bi~kayiPk#O%SQ zC_DL~$=wQwt2sM*Dq*_}~z!U0hEo1)Tl^RG0BH7!yS#t&S7aw0?OpQ?0aslwR z`9VoBL3FBvHZ%i@7eMbV&BRkKrreA$LK)JQ1p7i^c(fbCMIYAfEtT0TKl(xAM~ zzF3LFuQ3TnsYk6y-Ih0);2HadYsR*;S}9Ak2|veAs2%w{lWsvi|AgC);+v{g<6AM& z_TsahSWEGRlxicztJ>VIl~@Jx6$I;Omdx-=mx!? z;Y^~+V6*;stl)|8B)2Ej-D7zi6uJ3afrLUMeV4qH<|!54&@#LiWY{ozf?Oivt?Rlr z7ClUCY*F=uDQm&o?TSO&x=ve`vvL><0~4wzt2;QSm02pkVy)I82(=kw@R=`&~BUD`bHBL{sMq0!LsFr zMT`xlHe12L9m&O?!h$$itjJR8}BmK#&JCGmAjp-!%VYwph z9Cq_r#kC^VNT_@^m)=4=^u^u2qzO;Thqr9cZ_Ux6Pwq|Wot{MVZZ7S;$P@;6oNixd zB87Jg`;)1gz%`oAEN)ri=EjHf*mK9trL(j<7St^oNcWF#K>-Fw_;a$qKbJ<$sXN)s zFt$QdpOZLwWJ`LCzj~XaIq(A9k{FQF7C#=+FjbS-o2)+m%qUCnK3#B z)hmxn)ucA|TZB!Sa{2L5XOUNRi;~3>AI}&|faXhW=;CMDWn#^x?ECwjUT-4MMwuFO3 z+JKLC)XU{b!Yb5HXQn@w%eaP~Hdi#6imEjHsD%VTqcEyaJA zsAkl7aOk_n+e&W|LP9>V`BFJx{V;`ui~Tglz35WZ5p4FSnkTAe&@aAsYc+O>OJajH za{7t}$4y|Tnc=P2P>?n;+L20+(uRVlLj;HC6_3eRf9-f0zVce{;5d2;s!j~Q#wiad zy@&}du)H>g?q|pXrikgno`e!GsLV#V2|FZShph`erziU}+hPx?X&uPPnPfI|OS&zGPe_IdG(A+Pr+P99 z5X)W|wqw_pyj3bnGCJm^0^eishN|zftI;cevVSB;frQ#Ox>X`iq9J(V}! z*ybdiL)y!v#=HzN20ytYgH+F{oA4Ui5cWRyZjcF<4$-p$U#iI?FYeeZh3|)aH zohxFsfUK%$R`O8v5)CwuwXA_^fPEZnWufOCr(^Y2I=|p=BZh1}L;n7%|2#cqcTqWx zjYY>pk>k{*8PgX9H(|GI>l#9ea76Jwvd4lokA ze7kEOhU;`Cfo4cz9`X&o=i@}0$Zm_ZKGT3X*8ER$RPXyWa-Z3>yAoHjHxtN2$`b?s z3Yv1^tIYvI;S^T4!Y#N2-f!F9@Ha%iajnBcxFv@5rDYeo&jRBYve-8V@^SxCGuTW( zYU?$jXoRHiNErtIL4(+nH&0b@{|47eU^~BFel|)pJ}&=QeU;g^^RuoJr#MewI@jPC z5@8eQg!KS@-})q^a0(J>L2tk9?Hrn0B*u->$Q}6no2K~E%0I{X|kQi%eH_sgfZ$OQ>&_m^$6W_vr6X;&+R-W zL?zfsrN(BzlnAOG2Ff)T62Tb@!cd?;zl*(hJu{1;bX*aKo zddFG^CU#<$;Is^VG&@y71JV_D2z1u~yx3$RtltHmxkEKjVD;_p5Jse+3sza#{0QR% zKf?a6zO{nfC2A)MgBE^a;RP{E6H|1ZkXmPWw8)5E&iKXE&ES?{0e}Kf4+$G}FB8eX zbku) zOP$rQpy3e&8$&QidH3a<;fkm8bZbK$_5>P`x@oDPHVAEHI zQWtkBGRhG5ZQVXq)O@&<+*Z-u^D{Q7c72N~c)R~$9$8|eBv82?qJht5{{^u)&1Z<3jx@ANTg>MG>yYkTjz7MW zBspMIW>jGqA<>^Qu`R3w_3-KJPNf}U00l?Be@QO%h@^+s*Bkel2T(I{qDTfcv7qPJ zOLHc+w z+u$c4rMGD|he*ue=?844!>-JDcQpu44@G#pvK<|>Db~XQu%wj4Fw0+aEcDbo37*Xp MHUP(}( +#include +using namespace std; + +class TimeUtils { +public: + static string getCurrentTime() { + time_t now = time(0); + char* dt = ctime(&now); + string s(dt); + if (!s.empty() && s.back() == '\n') + s.pop_back(); + return s; + } +}; + +#endif // TIME_UTILS_H