From 8101177cb524bf2d0a2860a9b7c6976c7dd81628 Mon Sep 17 00:00:00 2001 From: lucanlee Date: Sat, 8 Aug 2026 15:53:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=BF=98=E5=9C=A8=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 29 +- .htaccess | 1 + .user.ini | 3 + 404.html | 7 + PATCH-README-security.txt | 48 + PATCH-README.txt | 41 + README.md | 201 ++++- app/Controllers/Admin/AdminController.php | 123 +++ app/Controllers/Admin/AuthController.php | 112 +++ app/Controllers/Admin/BannerController.php | 68 ++ app/Controllers/Admin/CaseController.php | 129 +++ app/Controllers/Admin/CategoryController.php | 111 +++ app/Controllers/Admin/DashboardController.php | 27 + app/Controllers/Admin/DatabaseController.php | 322 +++++++ app/Controllers/Admin/MediaController.php | 66 ++ app/Controllers/Admin/NewsController.php | 121 +++ app/Controllers/Admin/OrderController.php | 46 + app/Controllers/Admin/PageController.php | 68 ++ app/Controllers/Admin/ProductController.php | 170 ++++ app/Controllers/Admin/SettingController.php | 171 ++++ app/Controllers/Admin/SystemController.php | 24 + app/Controllers/Admin/UpgradeController.php | 166 ++++ app/Controllers/Admin/UserController.php | 193 ++++ app/Controllers/CRM/ContactsController.php | 123 +++ app/Controllers/CRM/CustomersController.php | 103 +++ app/Controllers/CRM/DashboardController.php | 130 +++ app/Controllers/CRM/FollowUpsController.php | 84 ++ app/Controllers/CRM/LeadsController.php | 86 ++ app/Controllers/CRM/UsersController.php | 12 + app/Controllers/CaseController.php | 86 ++ app/Controllers/ContactController.php | 79 ++ app/Controllers/Controller.php | 66 ++ app/Controllers/HomeController.php | 83 ++ app/Controllers/NewsController.php | 84 ++ app/Controllers/OrderController.php | 152 ++++ app/Controllers/PSI/DashboardController.php | 267 ++++++ app/Controllers/PSI/MaterialsController.php | 101 +++ .../PSI/NotificationsController.php | 73 ++ app/Controllers/PSI/OrdersController.php | 61 ++ app/Controllers/PSI/OutboundsController.php | 195 ++++ app/Controllers/PSI/ProductsController.php | 94 ++ .../PSI/PurchaseOrdersController.php | 176 ++++ app/Controllers/PSI/PurchasesController.php | 71 ++ app/Controllers/PSI/RemindersController.php | 111 +++ app/Controllers/PSI/ReportsController.php | 93 ++ app/Controllers/PSI/SalesController.php | 110 +++ app/Controllers/PSI/SalesOrdersController.php | 156 ++++ app/Controllers/PSI/StockController.php | 23 + app/Controllers/PSI/StockHelper.php | 42 + app/Controllers/PSI/SuppliersController.php | 72 ++ app/Controllers/PSI/UsersController.php | 12 + app/Controllers/PageController.php | 40 + app/Controllers/PayController.php | 43 + app/Controllers/ProductController.php | 132 +++ app/Controllers/Subsys/UsersController.php | 256 ++++++ app/Core/App.php | 407 +++++++++ app/Core/Db.php | 43 + app/Core/Helper.php | 849 ++++++++++++++++++ app/Core/Installer.php | 365 ++++++++ app/Core/Model.php | 162 ++++ app/Core/Notify.php | 326 +++++++ app/Core/Payment/AlipayGateway.php | 82 ++ app/Core/Payment/Gateway.php | 40 + app/Core/Payment/GatewayFactory.php | 35 + app/Core/Payment/OrderService.php | 32 + app/Core/Payment/WechatGateway.php | 89 ++ app/Core/Theme.php | 118 +++ app/Core/View.php | 26 + app/Models/AdminUser.php | 15 + app/Models/Banner.php | 10 + app/Models/CRM/Contact.php | 10 + app/Models/CRM/Customer.php | 10 + app/Models/CRM/FollowUp.php | 10 + app/Models/CRM/Lead.php | 10 + app/Models/Category.php | 10 + app/Models/CustomerCase.php | 20 + app/Models/News.php | 16 + app/Models/Order.php | 26 + app/Models/PSI/Event.php | 13 + app/Models/PSI/Material.php | 10 + app/Models/PSI/Outbound.php | 9 + app/Models/PSI/OutboundItem.php | 9 + app/Models/PSI/Product.php | 10 + app/Models/PSI/Purchase.php | 10 + app/Models/PSI/PurchaseOrder.php | 9 + app/Models/PSI/PurchaseOrderItem.php | 9 + app/Models/PSI/Sales.php | 10 + app/Models/PSI/SalesOrder.php | 9 + app/Models/PSI/SalesOrderItem.php | 9 + app/Models/PSI/StockMove.php | 10 + app/Models/PSI/Supplier.php | 10 + app/Models/Page.php | 15 + app/Models/PageSeo.php | 57 ++ app/Models/Payment.php | 10 + app/Models/Product.php | 33 + app/Models/Setting.php | 42 + app/Views/admin/banner_form.php | 30 + app/Views/admin/banners.php | 23 + app/Views/admin/cases.php | 32 + app/Views/admin/cases_builder.php | 92 ++ app/Views/admin/cases_form.php | 167 ++++ app/Views/admin/categories.php | 30 + app/Views/admin/category_builder.php | 83 ++ app/Views/admin/category_form.php | 101 +++ app/Views/admin/dashboard.php | 42 + app/Views/admin/db_browse.php | 59 ++ app/Views/admin/db_form.php | 52 ++ app/Views/admin/db_tables.php | 49 + app/Views/admin/login.php | 25 + app/Views/admin/news.php | 31 + app/Views/admin/news_builder.php | 88 ++ app/Views/admin/news_form.php | 163 ++++ app/Views/admin/order_show.php | 33 + app/Views/admin/orders.php | 37 + app/Views/admin/page_builder.php | 120 +++ app/Views/admin/page_form.php | 103 +++ app/Views/admin/pages.php | 23 + app/Views/admin/parts/builder.php | 60 ++ app/Views/admin/password.php | 17 + app/Views/admin/payment.php | 34 + app/Views/admin/product_builder.php | 93 ++ app/Views/admin/product_form.php | 199 ++++ app/Views/admin/products.php | 36 + app/Views/admin/seo.php | 76 ++ app/Views/admin/seo_edit.php | 128 +++ app/Views/admin/settings.php | 30 + app/Views/admin/system.php | 48 + app/Views/admin/theme.php | 90 ++ app/Views/admin/upgrade.php | 105 +++ app/Views/admin/user_form.php | 88 ++ app/Views/admin/users.php | 31 + app/Views/cases/index.php | 23 + app/Views/cases/show.php | 36 + app/Views/contact/index.php | 60 ++ app/Views/crm/contact_form.php | 37 + app/Views/crm/contacts.php | 42 + app/Views/crm/customer_form.php | 81 ++ app/Views/crm/customers.php | 72 ++ app/Views/crm/dashboard.php | 112 +++ app/Views/crm/followup_form.php | 36 + app/Views/crm/followups.php | 32 + app/Views/crm/lead_form.php | 46 + app/Views/crm/leads.php | 34 + app/Views/home/index.php | 180 ++++ app/Views/layouts/admin.php | 59 ++ app/Views/layouts/site.php | 202 +++++ app/Views/layouts/subsys.php | 95 ++ app/Views/news/index.php | 23 + app/Views/news/show.php | 36 + app/Views/order/checkout.php | 34 + app/Views/order/pay.php | 50 ++ app/Views/order/query.php | 49 + app/Views/order/result.php | 35 + app/Views/page/show.php | 24 + app/Views/parts/canvas.php | 78 ++ app/Views/product/index.php | 48 + app/Views/product/show.php | 132 +++ app/Views/psi/adjust_form.php | 23 + app/Views/psi/dashboard.php | 144 +++ app/Views/psi/material_form.php | 45 + app/Views/psi/materials.php | 38 + app/Views/psi/notifications.php | 46 + app/Views/psi/order_show.php | 56 ++ app/Views/psi/orders.php | 63 ++ app/Views/psi/outbound_form.php | 131 +++ app/Views/psi/outbound_print.php | 32 + app/Views/psi/outbound_show.php | 50 ++ app/Views/psi/outbounds.php | 46 + app/Views/psi/product_form.php | 47 + app/Views/psi/products.php | 38 + app/Views/psi/purchase_form.php | 56 ++ app/Views/psi/purchase_order_form.php | 132 +++ app/Views/psi/purchase_order_print.php | 32 + app/Views/psi/purchase_order_show.php | 60 ++ app/Views/psi/purchase_orders.php | 55 ++ app/Views/psi/purchases.php | 32 + app/Views/psi/reminder_form.php | 26 + app/Views/psi/reminders.php | 73 ++ app/Views/psi/report_delivery.php | 59 ++ app/Views/psi/report_po_detail.php | 42 + app/Views/psi/report_so_po.php | 66 ++ app/Views/psi/reports.php | 25 + app/Views/psi/sale_form.php | 56 ++ app/Views/psi/sales.php | 34 + app/Views/psi/sales_order_form.php | 125 +++ app/Views/psi/sales_order_print.php | 33 + app/Views/psi/sales_order_show.php | 57 ++ app/Views/psi/sales_orders.php | 52 ++ app/Views/psi/sales_print.php | 30 + app/Views/psi/sales_show.php | 43 + app/Views/psi/stock.php | 29 + app/Views/psi/supplier_form.php | 42 + app/Views/psi/suppliers.php | 33 + app/Views/subsys/user_form.php | 65 ++ app/Views/subsys/user_reset.php | 25 + app/Views/subsys/users.php | 72 ++ cleanup_badzip_residue.sh | 57 ++ config/config.php | 35 + deploy.sh | 54 ++ deploy/nginx-security-headers.conf | 29 + index.html | 39 + index.php | 6 + install/install.php | 182 ++++ install/psi_orders.sql | 108 +++ install/schema.sql | 308 +++++++ install/seed.php | 157 ++++ install/upgrade_crm_psi.sql | 139 +++ .../upgrades/002_create_psi_order_tables.sql | 200 +++++ .../upgrades/003_psi_events_and_notify.sql | 46 + install/upgrades/004_psi_sales_item_type.sql | 20 + install/upgrades/005_page_seo.sql | 31 + install/upgrades/006_pages_add_mode.sql | 12 + install/upgrades/007_products_add_mode.sql | 12 + .../upgrades/008_add_mode_news_cases_cats.sql | 22 + install/upgrades/README.txt | 37 + .../examples/001_example_add_field.sql | 13 + public/.htaccess | 59 ++ public/.htaccess_D4zD6.tar.gz | Bin 0 -> 1003 bytes public/.user.ini | 2 + public/assets/css/admin.css | 306 +++++++ public/assets/css/site.css | 227 +++++ public/assets/css/subsys.css | 305 +++++++ public/assets/css/theme.css | 19 + public/assets/img/apple-touch-icon.png | Bin 0 -> 17976 bytes public/assets/img/favicon-16.png | Bin 0 -> 628 bytes public/assets/img/favicon-32.png | Bin 0 -> 1484 bytes public/assets/img/logo.png | Bin 0 -> 14274 bytes public/assets/img/og-default.png | Bin 0 -> 1174385 bytes public/assets/js/admin.js | 65 ++ public/assets/js/fixed-editor.js | 88 ++ public/assets/js/main.js | 55 ++ public/assets/js/page-builder.js | 495 ++++++++++ public/assets/uploads/.gitkeep | 2 + public/index.php | 65 ++ public/llms.txt | 21 + public/robots.txt | 32 + public/user.ini | 2 + robots.txt | 32 + user.ini | 2 + 网站审计与后台美化报告.md | 92 ++ 酷冰甲CMS-过程总结与维护手册.md | 75 ++ 241 files changed, 18074 insertions(+), 22 deletions(-) create mode 100644 .htaccess create mode 100644 .user.ini create mode 100644 404.html create mode 100644 PATCH-README-security.txt create mode 100644 PATCH-README.txt create mode 100644 app/Controllers/Admin/AdminController.php create mode 100644 app/Controllers/Admin/AuthController.php create mode 100644 app/Controllers/Admin/BannerController.php create mode 100644 app/Controllers/Admin/CaseController.php create mode 100644 app/Controllers/Admin/CategoryController.php create mode 100644 app/Controllers/Admin/DashboardController.php create mode 100644 app/Controllers/Admin/DatabaseController.php create mode 100644 app/Controllers/Admin/MediaController.php create mode 100644 app/Controllers/Admin/NewsController.php create mode 100644 app/Controllers/Admin/OrderController.php create mode 100644 app/Controllers/Admin/PageController.php create mode 100644 app/Controllers/Admin/ProductController.php create mode 100644 app/Controllers/Admin/SettingController.php create mode 100644 app/Controllers/Admin/SystemController.php create mode 100644 app/Controllers/Admin/UpgradeController.php create mode 100644 app/Controllers/Admin/UserController.php create mode 100644 app/Controllers/CRM/ContactsController.php create mode 100644 app/Controllers/CRM/CustomersController.php create mode 100644 app/Controllers/CRM/DashboardController.php create mode 100644 app/Controllers/CRM/FollowUpsController.php create mode 100644 app/Controllers/CRM/LeadsController.php create mode 100644 app/Controllers/CRM/UsersController.php create mode 100644 app/Controllers/CaseController.php create mode 100644 app/Controllers/ContactController.php create mode 100644 app/Controllers/Controller.php create mode 100644 app/Controllers/HomeController.php create mode 100644 app/Controllers/NewsController.php create mode 100644 app/Controllers/OrderController.php create mode 100644 app/Controllers/PSI/DashboardController.php create mode 100644 app/Controllers/PSI/MaterialsController.php create mode 100644 app/Controllers/PSI/NotificationsController.php create mode 100644 app/Controllers/PSI/OrdersController.php create mode 100644 app/Controllers/PSI/OutboundsController.php create mode 100644 app/Controllers/PSI/ProductsController.php create mode 100644 app/Controllers/PSI/PurchaseOrdersController.php create mode 100644 app/Controllers/PSI/PurchasesController.php create mode 100644 app/Controllers/PSI/RemindersController.php create mode 100644 app/Controllers/PSI/ReportsController.php create mode 100644 app/Controllers/PSI/SalesController.php create mode 100644 app/Controllers/PSI/SalesOrdersController.php create mode 100644 app/Controllers/PSI/StockController.php create mode 100644 app/Controllers/PSI/StockHelper.php create mode 100644 app/Controllers/PSI/SuppliersController.php create mode 100644 app/Controllers/PSI/UsersController.php create mode 100644 app/Controllers/PageController.php create mode 100644 app/Controllers/PayController.php create mode 100644 app/Controllers/ProductController.php create mode 100644 app/Controllers/Subsys/UsersController.php create mode 100644 app/Core/App.php create mode 100644 app/Core/Db.php create mode 100644 app/Core/Helper.php create mode 100644 app/Core/Installer.php create mode 100644 app/Core/Model.php create mode 100644 app/Core/Notify.php create mode 100644 app/Core/Payment/AlipayGateway.php create mode 100644 app/Core/Payment/Gateway.php create mode 100644 app/Core/Payment/GatewayFactory.php create mode 100644 app/Core/Payment/OrderService.php create mode 100644 app/Core/Payment/WechatGateway.php create mode 100644 app/Core/Theme.php create mode 100644 app/Core/View.php create mode 100644 app/Models/AdminUser.php create mode 100644 app/Models/Banner.php create mode 100644 app/Models/CRM/Contact.php create mode 100644 app/Models/CRM/Customer.php create mode 100644 app/Models/CRM/FollowUp.php create mode 100644 app/Models/CRM/Lead.php create mode 100644 app/Models/Category.php create mode 100644 app/Models/CustomerCase.php create mode 100644 app/Models/News.php create mode 100644 app/Models/Order.php create mode 100644 app/Models/PSI/Event.php create mode 100644 app/Models/PSI/Material.php create mode 100644 app/Models/PSI/Outbound.php create mode 100644 app/Models/PSI/OutboundItem.php create mode 100644 app/Models/PSI/Product.php create mode 100644 app/Models/PSI/Purchase.php create mode 100644 app/Models/PSI/PurchaseOrder.php create mode 100644 app/Models/PSI/PurchaseOrderItem.php create mode 100644 app/Models/PSI/Sales.php create mode 100644 app/Models/PSI/SalesOrder.php create mode 100644 app/Models/PSI/SalesOrderItem.php create mode 100644 app/Models/PSI/StockMove.php create mode 100644 app/Models/PSI/Supplier.php create mode 100644 app/Models/Page.php create mode 100644 app/Models/PageSeo.php create mode 100644 app/Models/Payment.php create mode 100644 app/Models/Product.php create mode 100644 app/Models/Setting.php create mode 100644 app/Views/admin/banner_form.php create mode 100644 app/Views/admin/banners.php create mode 100644 app/Views/admin/cases.php create mode 100644 app/Views/admin/cases_builder.php create mode 100644 app/Views/admin/cases_form.php create mode 100644 app/Views/admin/categories.php create mode 100644 app/Views/admin/category_builder.php create mode 100644 app/Views/admin/category_form.php create mode 100644 app/Views/admin/dashboard.php create mode 100644 app/Views/admin/db_browse.php create mode 100644 app/Views/admin/db_form.php create mode 100644 app/Views/admin/db_tables.php create mode 100644 app/Views/admin/login.php create mode 100644 app/Views/admin/news.php create mode 100644 app/Views/admin/news_builder.php create mode 100644 app/Views/admin/news_form.php create mode 100644 app/Views/admin/order_show.php create mode 100644 app/Views/admin/orders.php create mode 100644 app/Views/admin/page_builder.php create mode 100644 app/Views/admin/page_form.php create mode 100644 app/Views/admin/pages.php create mode 100644 app/Views/admin/parts/builder.php create mode 100644 app/Views/admin/password.php create mode 100644 app/Views/admin/payment.php create mode 100644 app/Views/admin/product_builder.php create mode 100644 app/Views/admin/product_form.php create mode 100644 app/Views/admin/products.php create mode 100644 app/Views/admin/seo.php create mode 100644 app/Views/admin/seo_edit.php create mode 100644 app/Views/admin/settings.php create mode 100644 app/Views/admin/system.php create mode 100644 app/Views/admin/theme.php create mode 100644 app/Views/admin/upgrade.php create mode 100644 app/Views/admin/user_form.php create mode 100644 app/Views/admin/users.php create mode 100644 app/Views/cases/index.php create mode 100644 app/Views/cases/show.php create mode 100644 app/Views/contact/index.php create mode 100644 app/Views/crm/contact_form.php create mode 100644 app/Views/crm/contacts.php create mode 100644 app/Views/crm/customer_form.php create mode 100644 app/Views/crm/customers.php create mode 100644 app/Views/crm/dashboard.php create mode 100644 app/Views/crm/followup_form.php create mode 100644 app/Views/crm/followups.php create mode 100644 app/Views/crm/lead_form.php create mode 100644 app/Views/crm/leads.php create mode 100644 app/Views/home/index.php create mode 100644 app/Views/layouts/admin.php create mode 100644 app/Views/layouts/site.php create mode 100644 app/Views/layouts/subsys.php create mode 100644 app/Views/news/index.php create mode 100644 app/Views/news/show.php create mode 100644 app/Views/order/checkout.php create mode 100644 app/Views/order/pay.php create mode 100644 app/Views/order/query.php create mode 100644 app/Views/order/result.php create mode 100644 app/Views/page/show.php create mode 100644 app/Views/parts/canvas.php create mode 100644 app/Views/product/index.php create mode 100644 app/Views/product/show.php create mode 100644 app/Views/psi/adjust_form.php create mode 100644 app/Views/psi/dashboard.php create mode 100644 app/Views/psi/material_form.php create mode 100644 app/Views/psi/materials.php create mode 100644 app/Views/psi/notifications.php create mode 100644 app/Views/psi/order_show.php create mode 100644 app/Views/psi/orders.php create mode 100644 app/Views/psi/outbound_form.php create mode 100644 app/Views/psi/outbound_print.php create mode 100644 app/Views/psi/outbound_show.php create mode 100644 app/Views/psi/outbounds.php create mode 100644 app/Views/psi/product_form.php create mode 100644 app/Views/psi/products.php create mode 100644 app/Views/psi/purchase_form.php create mode 100644 app/Views/psi/purchase_order_form.php create mode 100644 app/Views/psi/purchase_order_print.php create mode 100644 app/Views/psi/purchase_order_show.php create mode 100644 app/Views/psi/purchase_orders.php create mode 100644 app/Views/psi/purchases.php create mode 100644 app/Views/psi/reminder_form.php create mode 100644 app/Views/psi/reminders.php create mode 100644 app/Views/psi/report_delivery.php create mode 100644 app/Views/psi/report_po_detail.php create mode 100644 app/Views/psi/report_so_po.php create mode 100644 app/Views/psi/reports.php create mode 100644 app/Views/psi/sale_form.php create mode 100644 app/Views/psi/sales.php create mode 100644 app/Views/psi/sales_order_form.php create mode 100644 app/Views/psi/sales_order_print.php create mode 100644 app/Views/psi/sales_order_show.php create mode 100644 app/Views/psi/sales_orders.php create mode 100644 app/Views/psi/sales_print.php create mode 100644 app/Views/psi/sales_show.php create mode 100644 app/Views/psi/stock.php create mode 100644 app/Views/psi/supplier_form.php create mode 100644 app/Views/psi/suppliers.php create mode 100644 app/Views/subsys/user_form.php create mode 100644 app/Views/subsys/user_reset.php create mode 100644 app/Views/subsys/users.php create mode 100644 cleanup_badzip_residue.sh create mode 100644 config/config.php create mode 100644 deploy.sh create mode 100644 deploy/nginx-security-headers.conf create mode 100644 index.html create mode 100644 index.php create mode 100644 install/install.php create mode 100644 install/psi_orders.sql create mode 100644 install/schema.sql create mode 100644 install/seed.php create mode 100644 install/upgrade_crm_psi.sql create mode 100644 install/upgrades/002_create_psi_order_tables.sql create mode 100644 install/upgrades/003_psi_events_and_notify.sql create mode 100644 install/upgrades/004_psi_sales_item_type.sql create mode 100644 install/upgrades/005_page_seo.sql create mode 100644 install/upgrades/006_pages_add_mode.sql create mode 100644 install/upgrades/007_products_add_mode.sql create mode 100644 install/upgrades/008_add_mode_news_cases_cats.sql create mode 100644 install/upgrades/README.txt create mode 100644 install/upgrades/examples/001_example_add_field.sql create mode 100644 public/.htaccess create mode 100644 public/.htaccess_D4zD6.tar.gz create mode 100644 public/.user.ini create mode 100644 public/assets/css/admin.css create mode 100644 public/assets/css/site.css create mode 100644 public/assets/css/subsys.css create mode 100644 public/assets/css/theme.css create mode 100644 public/assets/img/apple-touch-icon.png create mode 100644 public/assets/img/favicon-16.png create mode 100644 public/assets/img/favicon-32.png create mode 100644 public/assets/img/logo.png create mode 100644 public/assets/img/og-default.png create mode 100644 public/assets/js/admin.js create mode 100644 public/assets/js/fixed-editor.js create mode 100644 public/assets/js/main.js create mode 100644 public/assets/js/page-builder.js create mode 100644 public/assets/uploads/.gitkeep create mode 100644 public/index.php create mode 100644 public/llms.txt create mode 100644 public/robots.txt create mode 100644 public/user.ini create mode 100644 robots.txt create mode 100644 user.ini create mode 100644 网站审计与后台美化报告.md create mode 100644 酷冰甲CMS-过程总结与维护手册.md diff --git a/.gitignore b/.gitignore index 26a62dc..e04554c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,9 @@ -# ---> Actionscript -# Build and Release Folders -bin-debug/ -bin-release/ -[Oo]bj/ -[Bb]in/ - -# Other files and folders -.settings/ - -# Executables -*.swf -*.air -*.ipa -*.apk - -# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties` -# should NOT be excluded as they contain compiler settings and other important -# information for Eclipse / Flash Builder. - +.workbuddy/ +storage/cache/ +storage/data/ +storage/logs/ +storage/uploads/ +*.zip +_dbg_login.html +start_local.sh +CRM_PSI_交付说明.md diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/.htaccess @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.user.ini b/.user.ini new file mode 100644 index 0000000..58a8305 --- /dev/null +++ b/.user.ini @@ -0,0 +1,3 @@ +open_basedir=/www/wwwroot/coolcoth.com/:/tmp/:/www/php_session/coolcoth.com/ +session.save_path=/www/php_session/coolcoth.com/ +session.save_handler = files \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 0000000..6f17eaf --- /dev/null +++ b/404.html @@ -0,0 +1,7 @@ + +404 Not Found + +

404 Not Found

+
nginx
+ + \ No newline at end of file diff --git a/PATCH-README-security.txt b/PATCH-README-security.txt new file mode 100644 index 0000000..5ba0d34 --- /dev/null +++ b/PATCH-README-security.txt @@ -0,0 +1,48 @@ +圣巧依官网 · 安全加固补丁部署说明 +==================================== + +本补丁依据安全扫描报告,修复以下全部问题(部署后无需额外配置): + +【高危 / High】 +1. 缺失 HSTS(复查补充:增加 preload) + -> 新增 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload + (preload 已随本补丁追加,可直接提交至浏览器 HSTS 预加载列表) +2. CSP 过于宽松(script-src 含 'unsafe-inline') + -> 改为基于 nonce 的严格 CSP:script-src 'self' 'nonce-xxx'(移除 'unsafe-inline'/'unsafe-eval'); + 前端入口通过输出缓冲自动为所有内联 + $svg = preg_replace('#]*>.*?#is', '', $svg); + // 去除 (可嵌 HTML/脚本) + $svg = preg_replace('#]*>.*?#is', '', $svg); + // 去除内联事件处理器 on*="..." + $svg = preg_replace('#\son\w+\s*=\s*("[^"]*"|\'[^\']*\'|[^\s>]+)#i', '', $svg); + // 去除 javascript: / data:text 等危险协议引用 + $svg = preg_replace('#(href|xlink:href)\s*=\s*("|\')?\s*javascript:[^"\'>]*#i', '', $svg); + // 去除 外部引用与 标签,避免脚本跳转 + $svg = preg_replace('#]*>|#i', '', $svg); + return trim((string)$svg); + } +} diff --git a/app/Controllers/Admin/AuthController.php b/app/Controllers/Admin/AuthController.php new file mode 100644 index 0000000..ff2737c --- /dev/null +++ b/app/Controllers/Admin/AuthController.php @@ -0,0 +1,112 @@ +redirect(login_landing()); } + $error = ''; + $blocked = false; + $ip = $_SERVER['REMOTE_ADDR'] ?? ''; + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + // 质量红线:登录必须校验 CSRF + 验证码 + IP 级双窗口限速(失败 10 分钟/5 次、成功 30 分钟/5 次),杜绝机器人暴力破解 + if (!csrf_check()) { + $error = '表单已过期,请刷新页面后重试'; + } elseif (ip_login_blocked($ip)) { + $error = '尝试次数过多,请 30 分钟后再试'; + $blocked = true; + } elseif (!captcha_check($this->post('captcha'))) { + $error = '验证码错误,请重新计算'; + } else { + $u = trim($this->post('username')); + $p = $this->post('password'); + $ok = false; + $user = null; + $found = (new AdminUser())->byUsername($u); + if ($found && (int)($found['status'] ?? 1) === 1 && password_verify($p, $found['password'])) { + $ok = true; $user = $found; + } elseif ($this->fallbackEnabled() && $u === \Core\App::config('admin.username') && $p === \Core\App::config('admin.password')) { + // 配置文件兜底账号:仅本地/演示模式开启(本地规则要求生产禁用默认密码后门) + $ok = true; + $user = ['id' => 0, 'username' => $u, 'name' => '管理员', 'role' => 'super_admin']; + } + if ($ok) { + ip_login_register_success($ip); // 记录成功登录(纳入 30 分钟 5 次上限),并重置失败计数 + session_regenerate_id(true); // 防会话固定 + $_SESSION['admin_logged'] = true; + $_SESSION['admin_id'] = $user['id'] ?? 0; + $_SESSION['admin_name'] = $user['name'] ?? $u; + $_SESSION['admin_role'] = $user['role'] ?? 'super_admin'; + $_SESSION['crm_role'] = $user['crm_role'] ?? 'none'; + $_SESSION['psi_role'] = $user['psi_role'] ?? 'none'; + $dec = function ($v) { $a = @json_decode((string)$v, true); return is_array($a) ? $a : null; }; + $_SESSION['crm_perms'] = $dec($user['crm_perms'] ?? null); + $_SESSION['psi_perms'] = $dec($user['psi_perms'] ?? null); + $this->redirect(login_landing()); + } + ip_login_register_fail($ip); // 记录一次失败(纳入 10 分钟 5 次上限) + $error = '用户名或密码错误'; + } + } + // 被限速(IP 失败/成功过多)时返回 429 + Retry-After,明确告知客户端稍后再试 + if ($blocked && !headers_sent()) { + http_response_code(429); + header('Retry-After: ' . ip_login_remaining($ip)); + } + $captcha = captcha_make(); // 每次渲染都发放新的算术验证码 + return $this->view('admin/login', ['error' => $error, 'captcha' => $captcha]); + } + + /** 配置文件兜底账号是否启用:生产(mysql 模式)默认关闭,本地演示可开 */ + private function fallbackEnabled(): bool + { + return (bool) \Core\App::config('admin.allow_config_fallback', false) + && \Core\App::config('app.driver', 'file') !== 'mysql'; + } + + /** 修改当前登录账号的密码 */ + public function password() + { + admin_required(); + $error = ''; + $ok = ''; + $uid = admin_uid(); + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (!csrf_check()) { + $error = '表单已过期,请重试'; + } else { + $cur = $this->post('current_password'); + $new = $this->post('new_password'); + $confirm = $this->post('confirm_password'); + $m = new AdminUser(); + $me = $uid ? $m->find($uid) : null; + if (!$me) { + $error = '账号异常,请重新登录'; + } elseif (!password_verify($cur, $me['password'])) { + $error = '当前密码不正确'; + } elseif (strlen($new) < 6) { + $error = '新密码至少 6 位'; + } elseif ($new !== $confirm) { + $error = '两次输入的密码不一致'; + } else { + $m->update($uid, ['password' => password_hash($new, PASSWORD_DEFAULT)]); + $ok = '密码修改成功'; + } + } + } + return $this->view('admin/password', ['error' => $error, 'ok' => $ok]); + } + + public function logout() + { + unset($_SESSION['admin_logged'], $_SESSION['admin_name'], $_SESSION['admin_id'], $_SESSION['admin_role'], $_SESSION['crm_role'], $_SESSION['psi_role'], $_SESSION['crm_perms'], $_SESSION['psi_perms']); + $this->redirect('admin/login'); + } +} diff --git a/app/Controllers/Admin/BannerController.php b/app/Controllers/Admin/BannerController.php new file mode 100644 index 0000000..c186918 --- /dev/null +++ b/app/Controllers/Admin/BannerController.php @@ -0,0 +1,68 @@ +view('admin/banners', [ + 'banners' => (new Banner())->all(), + 'seg' => $this->seg(), + ]); + } + + public function create() + { + return $this->view('admin/banner_form', ['b' => null]); + } + + public function store() + { + if (!csrf_check()) { $this->redirect('admin/banners'); } + $image = $this->uploadFile('image') ?? $this->post('image', 'linear-gradient(135deg,#0ea5e9,#14b8a6)'); + (new Banner())->insert([ + 'title' => $this->post('title'), + 'subtitle' => $this->post('subtitle'), + 'image' => $image, + 'link' => $this->post('link', ''), + 'sort_order' => (int)$this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + ]); + $this->redirect('admin/banners'); + } + + public function edit($id) + { + $b = (new Banner())->find($id); + if (!$b) { $this->redirect('admin/banners'); } + return $this->view('admin/banner_form', ['b' => $b]); + } + + public function update($id) + { + if (!csrf_check()) { $this->redirect('admin/banners'); } + $banner = new Banner(); + $b = $banner->find($id); + if (!$b) { $this->redirect('admin/banners'); } + $image = $this->uploadFile('image'); + if (!$image && $this->post('image')) $image = $this->post('image'); + if (!$image) $image = $b['image'] ?? ''; + $banner->update($id, [ + 'title' => $this->post('title'), + 'subtitle' => $this->post('subtitle'), + 'image' => $image, + 'link' => $this->post('link', ''), + 'sort_order' => (int)$this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + ]); + $this->redirect('admin/banners'); + } + + public function delete($id) + { + if (csrf_check()) { (new Banner())->delete($id); } + $this->redirect('admin/banners'); + } +} diff --git a/app/Controllers/Admin/CaseController.php b/app/Controllers/Admin/CaseController.php new file mode 100644 index 0000000..4d12ab3 --- /dev/null +++ b/app/Controllers/Admin/CaseController.php @@ -0,0 +1,129 @@ +view('admin/cases', [ + 'cases' => (new CustomerCase())->all(), + 'seg' => $this->seg(), + ]); + } + + public function create() + { + return $this->view('admin/cases_form', [ + 'c' => null, + 'mode' => 'fixed', + ]); + } + + public function store() + { + if (!csrf_check()) { $this->redirect('admin/cases'); } + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + $cover = $this->uploadFile('cover') ?? $this->post('cover_url', ''); + $content = ($mode === 'fixed') ? $this->post('content', '') : ''; + $model = new CustomerCase(); + $id = $model->insert([ + 'title' => $this->post('title'), + 'slug' => '', + 'customer' => $this->post('customer', ''), + 'industry' => $this->post('industry', ''), + 'cover' => $cover, + 'summary' => $this->post('summary'), + 'content' => $content, + 'published_at' => $this->post('published_at', date('Y-m-d')), + 'sort_order' => (int) $this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + 'views' => 0, + 'layout' => $this->post('layout', ''), + 'mode' => $mode, + ]); + // URL 标识留空时按记录序号顺序生成(短、稳定),避免中文标题导致过长 + $slug = $this->post('slug') ? slugify($this->post('slug')) : (string)$id; + $model->update($id, ['slug' => $slug]); + // 新建时若选择「可视化编辑」,保存后直接进入可视化编辑器排版 + if ($mode === 'builder') { + $this->redirect('admin/cases/edit/' . $id); + } + $this->redirect('admin/cases'); + } + + public function edit($id) + { + $model = new CustomerCase(); + $c = $model->find($id); + if (!$c) { $this->redirect('admin/cases'); } + $mode = empty($c['mode']) ? 'fixed' : $c['mode']; + if ($mode === 'builder') { + $layout = []; + if (!empty($c['layout'])) { + $dec = json_decode($c['layout'], true); + if (is_array($dec)) $layout = $dec; + } + return $this->view('admin/cases_builder', ['c' => $c, 'layout' => $layout, 'mode' => $mode]); + } + return $this->view('admin/cases_form', ['c' => $c, 'mode' => $mode]); + } + + /** 切换编辑模式(固定版面 <-> 可视化编辑),仅更新 mode 字段 */ + public function switchMode($id) + { + $c = (new CustomerCase())->find($id); + if (!$c) { $this->redirect('admin/cases'); } + $target = ($this->get('mode') === 'builder') ? 'builder' : 'fixed'; + (new CustomerCase())->update($id, ['mode' => $target]); + $this->redirect('admin/cases/edit/' . $id); + } + + public function update($id) + { + if (!csrf_check()) { $this->redirect('admin/cases'); } + $model = new CustomerCase(); + $c = $model->find($id); + if (!$c) { $this->redirect('admin/cases'); } + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + + $cover = $this->uploadFile('cover'); + if (!$cover && $this->post('cover_url')) $cover = $this->post('cover_url'); + if (!$cover) $cover = $c['cover'] ?? ''; + + $data = [ + 'title' => $this->post('title'), + 'slug' => $this->post('slug') ? slugify($this->post('slug')) : (string)$id, + 'customer' => $this->post('customer', ''), + 'industry' => $this->post('industry', ''), + 'cover' => $cover, + 'summary' => $this->post('summary'), + 'published_at' => $this->post('published_at', date('Y-m-d')), + 'sort_order' => (int) $this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + 'mode' => $mode, + ]; + + if ($mode === 'fixed') { + $data['content'] = $this->post('content', ''); + } else { + $layout = $this->post('layout', ''); + if ($layout !== '' && !is_array(json_decode($layout, true))) { $layout = ''; } + $data['layout'] = $layout; + } + + $model->update($id, $data); + $this->redirect('admin/cases'); + } + + public function delete($id) + { + if (csrf_check()) { (new CustomerCase())->delete($id); } + $this->redirect('admin/cases'); + } +} diff --git a/app/Controllers/Admin/CategoryController.php b/app/Controllers/Admin/CategoryController.php new file mode 100644 index 0000000..3450c10 --- /dev/null +++ b/app/Controllers/Admin/CategoryController.php @@ -0,0 +1,111 @@ +view('admin/categories', [ + 'cats' => (new Category())->all(), + 'seg' => $this->seg(), + ]); + } + + public function create() + { + return $this->view('admin/category_form', [ + 'c' => null, + 'mode' => 'fixed', + ]); + } + + public function store() + { + if (!csrf_check()) { $this->redirect('admin/categories'); } + $cat = new Category(); + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + $description = ($mode === 'fixed') ? $this->post('description', '') : ''; + $id = $cat->insert([ + 'name' => $this->post('name'), + 'slug' => '', + 'icon' => $this->post('icon', '❄'), + 'description' => $description, + 'sort_order' => (int)$this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + 'layout' => $this->post('layout', ''), + 'mode' => $mode, + ]); + // URL 标识留空时按记录序号顺序生成(短、稳定) + $slug = $this->post('slug') ? slugify($this->post('slug')) : (string)$id; + $cat->update($id, ['slug' => $slug]); + // 新建时若选择「可视化编辑」,保存后直接进入可视化编辑器排版 + if ($mode === 'builder') { + $this->redirect('admin/categories/edit/' . $id); + } + $this->redirect('admin/categories'); + } + + public function edit($id) + { + $cat = new Category(); + $c = $cat->find($id); + if (!$c) { $this->redirect('admin/categories'); } + $mode = empty($c['mode']) ? 'fixed' : $c['mode']; + if ($mode === 'builder') { + $layout = []; + if (!empty($c['layout'])) { + $dec = json_decode($c['layout'], true); + if (is_array($dec)) $layout = $dec; + } + return $this->view('admin/category_builder', ['c' => $c, 'layout' => $layout, 'mode' => $mode]); + } + return $this->view('admin/category_form', ['c' => $c, 'mode' => $mode]); + } + + /** 切换编辑模式(固定版面 <-> 可视化编辑),仅更新 mode 字段 */ + public function switchMode($id) + { + $c = (new Category())->find($id); + if (!$c) { $this->redirect('admin/categories'); } + $target = ($this->get('mode') === 'builder') ? 'builder' : 'fixed'; + (new Category())->update($id, ['mode' => $target]); + $this->redirect('admin/categories/edit/' . $id); + } + + public function update($id) + { + if (!csrf_check()) { $this->redirect('admin/categories'); } + $cat = new Category(); + $c = $cat->find($id); + if (!$c) { $this->redirect('admin/categories'); } + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + + $data = [ + 'name' => $this->post('name'), + 'slug' => $this->post('slug') ? slugify($this->post('slug')) : (string)$id, + 'icon' => $this->post('icon', '❄'), + 'sort_order' => (int)$this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + 'mode' => $mode, + ]; + + if ($mode === 'fixed') { + $data['description'] = $this->post('description', ''); + } else { + $layout = $this->post('layout', ''); + if ($layout !== '' && !is_array(json_decode($layout, true))) { $layout = ''; } + $data['layout'] = $layout; + } + + $cat->update($id, $data); + $this->redirect('admin/categories'); + } + + public function delete($id) + { + if (csrf_check()) { (new Category())->delete($id); } + $this->redirect('admin/categories'); + } +} diff --git a/app/Controllers/Admin/DashboardController.php b/app/Controllers/Admin/DashboardController.php new file mode 100644 index 0000000..3557614 --- /dev/null +++ b/app/Controllers/Admin/DashboardController.php @@ -0,0 +1,27 @@ + $setting->get('site_name', '酷冰甲 · 降温服'), + 'counts' => [ + 'products' => (new Product())->count(), + 'categories' => (new Category())->count(), + 'news' => (new News())->count(), + 'banners' => (new Banner())->count(), + ], + 'news' => (new News())->published(5), + ]; + return $this->view('admin/dashboard', $data); + } +} diff --git a/app/Controllers/Admin/DatabaseController.php b/app/Controllers/Admin/DatabaseController.php new file mode 100644 index 0000000..99443d4 --- /dev/null +++ b/app/Controllers/Admin/DatabaseController.php @@ -0,0 +1,322 @@ + index() 表列表 + * /admin/db/browse/ -> browse(table) 浏览(?q= 搜索、?page= 分页) + * /admin/db/edit/
/ -> edit(table,id) 编辑表单 + * /admin/db/update/
/ -> update(...) 保存(POST) + * /admin/db/create/
-> create(table) 新增表单 + * /admin/db/store/
-> store(...) 新增保存(POST) + * /admin/db/delete/
/ -> delete(...) 删除(GET + 确认) + * + * 安全:表名与列名均来自 DESCRIBE / SHOW TABLES 白名单,杜绝 SQL 注入。 + */ +class DatabaseController extends Controller +{ + protected $layout = 'layouts/admin'; + + /** 解析完整路径:['admin','db', action, table, id] */ + private function route(): array + { + return \Core\App::parseRoute(); + } + + /** 路由中的表名段(full[3]) */ + private function segTable(): ?string + { + $r = $this->route(); + return $r[3] ?? null; + } + + /** 路由中的记录主键段(full[4]) */ + private function segId(): ?string + { + $r = $this->route(); + return $r[4] ?? null; + } + + /** 表列表 */ + public function index($ignored = null) + { + admin_required(); + if (Db::driver() !== 'mysql') { + return $this->view('admin/db_tables', [ + 'fileMode' => true, + 'dataFiles' => $this->fileDataFiles(), + ]); + } + return $this->tablesList(); + } + + /** 浏览记录 */ + public function browse($table = null) + { + admin_required(); + if (Db::driver() !== 'mysql') { return $this->tablesList(); } + $table = $table ?? $this->segTable(); + return $this->doBrowse($table); + } + + /** 编辑 / 新增表单 */ + public function edit($table = null) + { + admin_required(); + if (Db::driver() !== 'mysql') { return $this->tablesList(); } + $table = $table ?? $this->segTable(); + $id = $this->segId(); + return $this->doEditForm($table, $id); + } + + /** 保存编辑 */ + public function update($table = null) + { + admin_required(); + $table = $table ?? $this->segTable(); + $id = $this->segId(); + return $this->doUpdate($table, $id); + } + + /** 新增表单 */ + public function create($table = null) + { + admin_required(); + if (Db::driver() !== 'mysql') { return $this->tablesList(); } + $table = $table ?? $this->segTable(); + return $this->doEditForm($table, null); + } + + /** 保存新增 */ + public function store($table = null) + { + admin_required(); + $table = $table ?? $this->segTable(); + return $this->doStore($table); + } + + /** 删除 */ + public function delete($table = null) + { + admin_required(); + $table = $table ?? $this->segTable(); + $id = $this->segId(); + return $this->doDelete($table, $id); + } + + /* ---------------- 实现 ---------------- */ + + private function tablesList(): string + { + $pdo = Db::pdo(); + $status = $pdo->query("SHOW TABLE STATUS")->fetchAll(); + $tables = []; + foreach ($status as $t) { + $tables[] = [ + 'name' => $t['Name'], + 'engine' => $t['Engine'] ?? '', + 'rows' => (int)($t['Rows'] ?? 0), + 'size' => (int)($t['Data_length'] ?? 0) + (int)($t['Index_length'] ?? 0), + 'collation' => $t['Collation'] ?? '', + ]; + } + usort($tables, fn($a, $b) => strcmp($a['name'], $b['name'])); + return $this->view('admin/db_tables', ['tables' => $tables, 'total' => count($tables)]); + } + + private function doBrowse(?string $table): string + { + if (!$table || !$this->validTable($table)) { + $this->flash('表不存在或无权访问', 'err'); + return $this->tablesList(); + } + $pdo = Db::pdo(); + $cols = $this->columnsOf($table); + $names = array_column($cols, 'Field'); + $pk = $this->pkOf($table) ?: $names[0]; + + $limit = 50; + $page = max(1, (int)($_GET['page'] ?? 1)); + $offset = ($page - 1) * $limit; + $q = trim((string)($_GET['q'] ?? '')); + + $where = ''; + $params = []; + if ($q !== '') { + $likes = []; + foreach ($names as $c) { + $likes[] = "`{$c}` LIKE ?"; + $params[] = '%' . $q . '%'; + } + $where = ' WHERE ' . implode(' OR ', $likes); + } + + $stmt = $pdo->prepare("SELECT COUNT(*) FROM `{$table}`" . $where); + $stmt->execute($params); + $total = (int)$stmt->fetchColumn(); + + $orderCol = in_array($pk, $names, true) ? $pk : $names[0]; + $rows = $pdo->query("SELECT * FROM `{$table}`" . $where . " ORDER BY `{$orderCol}` DESC LIMIT {$limit} OFFSET {$offset}")->fetchAll(\PDO::FETCH_ASSOC); + + $totalPages = max(1, (int)ceil($total / $limit)); + return $this->view('admin/db_browse', [ + 'table' => $table, + 'cols' => $cols, + 'names' => $names, + 'pk' => $pk, + 'rows' => $rows, + 'page' => $page, + 'totalPages' => $totalPages, + 'total' => $total, + 'q' => $q, + ]); + } + + private function doEditForm(?string $table, $id): string + { + if (!$table || !$this->validTable($table)) { + $this->flash('表不存在或无权访问', 'err'); + return $this->tablesList(); + } + $pdo = Db::pdo(); + $cols = $this->columnsOf($table); + $pk = $this->pkOf($table); + $row = null; + if ($id !== null && $id !== '') { + $stmt = $pdo->prepare("SELECT * FROM `{$table}` WHERE `{$pk}` = ? LIMIT 1"); + $stmt->execute([$id]); + $row = $stmt->fetch(\PDO::FETCH_ASSOC); + if (!$row) { + $this->flash('记录不存在', 'err'); + return $this->doBrowse($table); + } + } + return $this->view('admin/db_form', [ + 'table' => $table, + 'cols' => $cols, + 'pk' => $pk, + 'row' => $row, + 'mode' => $row ? 'edit' : 'create', + ]); + } + + private function doUpdate(?string $table, $id): string + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { $this->redirect("admin/db/browse/$table"); return ''; } + if (!$table || !$this->validTable($table)) { $this->flash('表不存在', 'err'); return $this->tablesList(); } + $pdo = Db::pdo(); + $cols = $this->columnsOf($table); + $pk = $this->pkOf($table); + $sets = []; + $params = []; + foreach ($cols as $c) { + $f = $c['Field']; + if ($f === $pk) continue; + if (!array_key_exists($f, $_POST)) continue; + $v = $_POST[$f]; + if ($v === '' && $c['Null'] === 'YES') $v = null; + $sets[] = "`{$f}` = ?"; + $params[] = $v; + } + if (empty($sets)) { + $this->flash('没有需要更新的字段', 'ok'); + $this->redirect("admin/db/browse/$table"); + return ''; + } + $params[] = $id; + $pdo->prepare("UPDATE `{$table}` SET " . implode(', ', $sets) . " WHERE `{$pk}` = ?")->execute($params); + $this->flash('记录已更新', 'ok'); + $this->redirect("admin/db/browse/$table"); + return ''; + } + + private function doStore(?string $table): string + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { $this->redirect("admin/db/browse/$table"); return ''; } + if (!$table || !$this->validTable($table)) { $this->flash('表不存在', 'err'); return $this->tablesList(); } + $pdo = Db::pdo(); + $cols = $this->columnsOf($table); + $fields = []; + $ph = []; + $params = []; + foreach ($cols as $c) { + $f = $c['Field']; + if (($c['Extra'] ?? '') === 'auto_increment') continue; + if (!array_key_exists($f, $_POST)) { + if ($c['Null'] === 'YES') { $fields[] = "`{$f}`"; $ph[] = '?'; $params[] = null; } + continue; + } + $v = $_POST[$f]; + if ($v === '' && $c['Null'] === 'YES') $v = null; + $fields[] = "`{$f}`"; $ph[] = '?'; $params[] = $v; + } + if (empty($fields)) { + $this->flash('没有可写入的字段', 'err'); + $this->redirect("admin/db/browse/$table"); + return ''; + } + $pdo->prepare("INSERT INTO `{$table}` (" . implode(', ', $fields) . ") VALUES (" . implode(', ', $ph) . ")") + ->execute($params); + $this->flash('记录已新增', 'ok'); + $this->redirect("admin/db/browse/$table"); + return ''; + } + + private function doDelete(?string $table, $id): string + { + if (!$table || !$this->validTable($table)) { $this->flash('表不存在', 'err'); return $this->tablesList(); } + $pk = $this->pkOf($table); + Db::pdo()->prepare("DELETE FROM `{$table}` WHERE `{$pk}` = ?")->execute([$id]); + $this->flash('记录已删除', 'ok'); + $this->redirect("admin/db/browse/$table"); + return ''; + } + + /* ---------------- 工具方法 ---------------- */ + + /** 全部表名白名单(校验来自 URL 的表名) */ + private function tableList(): array + { + return Db::pdo()->query("SHOW TABLES")->fetchAll(\PDO::FETCH_COLUMN); + } + + private function validTable(string $t): bool + { + return in_array($t, $this->tableList(), true); + } + + private function pkOf(string $t): ?string + { + $keys = Db::pdo()->query("SHOW KEYS FROM `{$t}` WHERE Key_name='PRIMARY'")->fetchAll(); + if ($keys) return $keys[0]['Column_name']; + $cols = $this->columnsOf($t); + return $cols[0]['Field'] ?? null; + } + + private function columnsOf(string $t): array + { + return Db::pdo()->query("DESCRIBE `{$t}`")->fetchAll(); + } + + /** file 模式下可用的数据文件(只读提示) */ + private function fileDataFiles(): array + { + $dir = Db::fileDir(); + $out = []; + foreach (glob($dir . '/*.json') as $f) { + $out[] = ['name' => basename($f), 'size' => filesize($f)]; + } + return $out; + } +} diff --git a/app/Controllers/Admin/MediaController.php b/app/Controllers/Admin/MediaController.php new file mode 100644 index 0000000..527fcf0 --- /dev/null +++ b/app/Controllers/Admin/MediaController.php @@ -0,0 +1,66 @@ +dir(); + $items = []; + foreach (glob($d . '/*.{jpg,jpeg,png,gif,webp,svg}', GLOB_BRACE) as $f) { + $name = basename($f); + $items[] = ['name' => $name, 'url' => site_url('assets/uploads/' . $name)]; + } + echo json_encode(['items' => $items]); + } + + /** 上传素材(JSON) POST admin/media/upload */ + public function upload() + { + header('Content-Type: application/json; charset=utf-8'); + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) { + echo json_encode(['ok' => false, 'msg' => '请求无效']); + return; + } + $path = $this->uploadFile('file'); + if (!$path) { + echo json_encode(['ok' => false, 'msg' => '上传失败(仅支持 jpg/png/gif/webp/svg)']); + return; + } + echo json_encode(['ok' => true, 'name' => basename($path), 'url' => site_url($path)]); + } + + /** 删除素材 POST admin/media/delete/{name} 或 POST admin/media/delete + name 字段 */ + public function delete($name = null) + { + header('Content-Type: application/json; charset=utf-8'); + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) { + echo json_encode(['ok' => false, 'msg' => '请求无效']); + return; + } + $name = basename($name ?? ($_POST['name'] ?? '')); + if ($name === '' || $name === '.' || $name === '..') { + echo json_encode(['ok' => false, 'msg' => '参数缺失']); + return; + } + $file = $this->dir() . '/' . $name; + if (is_file($file) && @unlink($file)) { + echo json_encode(['ok' => true]); + } else { + echo json_encode(['ok' => false, 'msg' => '删除失败']); + } + } +} diff --git a/app/Controllers/Admin/NewsController.php b/app/Controllers/Admin/NewsController.php new file mode 100644 index 0000000..ff6b3ac --- /dev/null +++ b/app/Controllers/Admin/NewsController.php @@ -0,0 +1,121 @@ +view('admin/news', [ + 'news' => (new News())->all(), + 'seg' => $this->seg(), + ]); + } + + public function create() + { + return $this->view('admin/news_form', [ + 'n' => null, + 'mode' => 'fixed', + ]); + } + + public function store() + { + if (!csrf_check()) { $this->redirect('admin/news'); } + $news = new News(); + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + $cover = $this->uploadFile('cover') ?? $this->post('cover_url', ''); + $content = ($mode === 'fixed') ? $this->post('content', '') : ''; + $id = $news->insert([ + 'title' => $this->post('title'), + 'slug' => '', + 'cover' => $cover, + 'summary' => $this->post('summary'), + 'content' => $content, + 'author' => $this->post('author', '酷冰甲'), + 'published_at' => $this->post('published_at', date('Y-m-d')), + 'status' => $this->post('status', 1) ? 1 : 0, + 'views' => 0, + 'layout' => $this->post('layout', ''), + 'mode' => $mode, + ]); + // URL 标识留空时按记录序号顺序生成(短、稳定) + $slug = $this->post('slug') ? slugify($this->post('slug')) : (string)$id; + $news->update($id, ['slug' => $slug]); + // 新建时若选择「可视化编辑」,保存后直接进入可视化编辑器排版 + if ($mode === 'builder') { + $this->redirect('admin/news/edit/' . $id); + } + $this->redirect('admin/news'); + } + + public function edit($id) + { + $news = new News(); + $n = $news->find($id); + if (!$n) { $this->redirect('admin/news'); } + $mode = empty($n['mode']) ? 'fixed' : $n['mode']; + if ($mode === 'builder') { + $layout = []; + if (!empty($n['layout'])) { + $dec = json_decode($n['layout'], true); + if (is_array($dec)) $layout = $dec; + } + return $this->view('admin/news_builder', ['n' => $n, 'layout' => $layout, 'mode' => $mode]); + } + return $this->view('admin/news_form', ['n' => $n, 'mode' => $mode]); + } + + /** 切换编辑模式(固定版面 <-> 可视化编辑),仅更新 mode 字段 */ + public function switchMode($id) + { + $n = (new News())->find($id); + if (!$n) { $this->redirect('admin/news'); } + $target = ($this->get('mode') === 'builder') ? 'builder' : 'fixed'; + (new News())->update($id, ['mode' => $target]); + $this->redirect('admin/news/edit/' . $id); + } + + public function update($id) + { + if (!csrf_check()) { $this->redirect('admin/news'); } + $news = new News(); + $n = $news->find($id); + if (!$n) { $this->redirect('admin/news'); } + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + + $cover = $this->uploadFile('cover'); + if (!$cover && $this->post('cover_url')) $cover = $this->post('cover_url'); + if (!$cover) $cover = $n['cover'] ?? ''; + + $data = [ + 'title' => $this->post('title'), + 'slug' => $this->post('slug') ? slugify($this->post('slug')) : (string)$id, + 'cover' => $cover, + 'summary' => $this->post('summary'), + 'author' => $this->post('author', '酷冰甲'), + 'published_at' => $this->post('published_at', date('Y-m-d')), + 'status' => $this->post('status', 1) ? 1 : 0, + 'mode' => $mode, + ]; + + if ($mode === 'fixed') { + $data['content'] = $this->post('content', ''); + } else { + $layout = $this->post('layout', ''); + if ($layout !== '' && !is_array(json_decode($layout, true))) { $layout = ''; } + $data['layout'] = $layout; + } + + $news->update($id, $data); + $this->redirect('admin/news'); + } + + public function delete($id) + { + if (csrf_check()) { (new News())->delete($id); } + $this->redirect('admin/news'); + } +} diff --git a/app/Controllers/Admin/OrderController.php b/app/Controllers/Admin/OrderController.php new file mode 100644 index 0000000..8f35d35 --- /dev/null +++ b/app/Controllers/Admin/OrderController.php @@ -0,0 +1,46 @@ +all()); // 最新在前 + return $this->view('admin/orders', ['orders' => $all, 'seg' => 'orders']); + } + + public function show($id) + { + $order = new Order(); + $o = $order->find($id); + if (!$o) { \Core\App::notFound(); return; } + $payments = (new Payment())->whereAll('order_no', $o['order_no']); + return $this->view('admin/order_show', ['o' => $o, 'payments' => $payments, 'seg' => 'orders']); + } + + public function markPaid($id) + { + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + $order = new Order(); + $o = $order->find($id); + if ($o && $o['status'] !== 'paid') { + OrderService::markPaid($o['order_no'], 'MANUAL' . time(), $o['channel'] ?: 'manual'); + } + } + $this->redirect('admin/orders/show/' . $id); + } + + public function delete($id) + { + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + (new Order())->delete($id); + } + $this->redirect('admin/orders'); + } +} diff --git a/app/Controllers/Admin/PageController.php b/app/Controllers/Admin/PageController.php new file mode 100644 index 0000000..d791015 --- /dev/null +++ b/app/Controllers/Admin/PageController.php @@ -0,0 +1,68 @@ +view('admin/pages', [ + 'pages' => (new Page())->all(), + 'seg' => $this->seg(), + ]); + } + + /** 编辑:按页面 mode 渲染对应编辑器(固定版面 / 可视化编辑) */ + public function edit($id) + { + $p = (new Page())->find($id); + if (!$p) { $this->redirect('admin/pages'); } + $mode = empty($p['mode']) ? 'fixed' : $p['mode']; + if ($mode === 'builder') { + $layout = []; + if (!empty($p['layout'])) { + $dec = json_decode($p['layout'], true); + if (is_array($dec)) $layout = $dec; + } + return $this->view('admin/page_builder', ['p' => $p, 'layout' => $layout, 'mode' => $mode]); + } + return $this->view('admin/page_form', ['p' => $p, 'mode' => $mode]); + } + + /** 切换编辑模式(固定版面 <-> 可视化编辑),仅更新 mode 字段 */ + public function switchMode($id) + { + $p = (new Page())->find($id); + if (!$p) { $this->redirect('admin/pages'); } + $target = ($this->get('mode') === 'builder') ? 'builder' : 'fixed'; + (new Page())->update($id, ['mode' => $target, 'updated_at' => date('Y-m-d')]); + $this->redirect('admin/pages/edit/' . $id); + } + + /** 保存:兼容两种编辑器,按实际提交的字段写入(content / layout / mode) */ + public function update($id) + { + if (!csrf_check()) { $this->redirect('admin/pages'); } + $data = [ + 'title' => $this->post('title'), + 'updated_at' => date('Y-m-d'), + ]; + if ($this->post('content') !== null) { + $data['content'] = $this->post('content'); + } + if ($this->post('layout') !== null) { + $layout = $this->post('layout', ''); + if ($layout !== '' && !is_array(json_decode($layout, true))) { + $layout = ''; + } + $data['layout'] = $layout; + } + $mode = $this->post('mode'); + if ($mode === 'builder' || $mode === 'fixed') { + $data['mode'] = $mode; + } + (new Page())->update($id, $data); + $this->redirect('admin/pages'); + } +} diff --git a/app/Controllers/Admin/ProductController.php b/app/Controllers/Admin/ProductController.php new file mode 100644 index 0000000..70068b9 --- /dev/null +++ b/app/Controllers/Admin/ProductController.php @@ -0,0 +1,170 @@ + $line, 'v' => '']; } + else { $out[] = ['k' => trim(substr($line, 0, $p)), 'v' => trim(substr($line, $p + 1))]; } + } + return json_encode($out, JSON_UNESCAPED_UNICODE); + } + + public function index() + { + $product = new Product(); + return $this->view('admin/products', [ + 'products' => $product->all(), + 'seg' => $this->seg(), + ]); + } + + public function create() + { + return $this->view('admin/product_form', [ + 'p' => null, + 'cats' => (new Category())->all(), + 'mode' => 'fixed', + ]); + } + + public function store() + { + if (!csrf_check()) { $this->redirect('admin/products'); } + $product = new Product(); + $cover = $this->uploadFile('cover') ?? $this->post('cover_url', ''); + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + $gallery = ($mode === 'fixed') ? $this->uploadFiles('gallery') : []; + $description = ($mode === 'fixed') ? $this->post('description', '') : ''; + $id = $product->insert([ + 'category_id' => (int)$this->post('category_id'), + 'name' => $this->post('name'), + 'slug' => '', + 'cover' => $cover, + 'summary' => $this->post('summary'), + 'description' => $description, + 'price' => (float)$this->post('price', 0), + 'specs' => $this->specsToJson($this->post('specs', '')), + 'gallery' => json_encode($gallery, JSON_UNESCAPED_UNICODE), + 'tags' => $this->post('tags', ''), + 'sort_order' => (int)$this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + 'created_at' => date('Y-m-d'), + 'layout' => $this->post('layout', ''), + 'mode' => $mode, + ]); + // URL 标识留空时按记录序号顺序生成(短、稳定) + $slug = $this->post('slug') ? slugify($this->post('slug')) : (string)$id; + $product->update($id, ['slug' => $slug]); + // 新建时若选择「可视化编辑」,保存后直接进入可视化编辑器排版,无需再手动点编辑 + if ($mode === 'builder') { + $this->redirect('admin/products/edit/' . $id); + } + $this->redirect('admin/products'); + } + + public function edit($id) + { + $product = new Product(); + $p = $product->find($id); + if (!$p) { $this->redirect('admin/products'); } + $mode = empty($p['mode']) ? 'fixed' : $p['mode']; + $specs = $product->specsArray($p); + $specText = ''; + foreach ($specs as $s) $specText .= ($s['k'] ?? '') . '|' . ($s['v'] ?? '') . "\n"; + $cats = (new Category())->all(); + if ($mode === 'builder') { + $layout = []; + if (!empty($p['layout'])) { + $dec = json_decode($p['layout'], true); + if (is_array($dec)) $layout = $dec; + } + return $this->view('admin/product_builder', [ + 'p' => $p, + 'cats' => $cats, + 'specText' => $specText, + 'layout' => $layout, + 'mode' => $mode, + ]); + } + return $this->view('admin/product_form', [ + 'p' => $p, + 'cats' => $cats, + 'specText' => $specText, + 'mode' => $mode, + ]); + } + + /** 切换编辑模式(固定版面 <-> 可视化编辑),仅更新 mode 字段,其余数据保留 */ + public function switchMode($id) + { + $p = (new Product())->find($id); + if (!$p) { $this->redirect('admin/products'); } + $target = ($this->get('mode') === 'builder') ? 'builder' : 'fixed'; + (new Product())->update($id, ['mode' => $target]); + $this->redirect('admin/products/edit/' . $id); + } + + public function update($id) + { + if (!csrf_check()) { $this->redirect('admin/products'); } + $product = new Product(); + $p = $product->find($id); + if (!$p) { $this->redirect('admin/products'); } + $mode = $this->post('mode') === 'builder' ? 'builder' : 'fixed'; + + $cover = $this->uploadFile('cover'); + if (!$cover && $this->post('cover_url')) $cover = $this->post('cover_url'); + if (!$cover) $cover = $p['cover'] ?? ''; + + $data = [ + 'category_id' => (int)$this->post('category_id'), + 'name' => $this->post('name'), + 'slug' => $this->post('slug') ? slugify($this->post('slug')) : (string)$id, + 'cover' => $cover, + 'summary' => $this->post('summary'), + 'price' => (float)$this->post('price', 0), + 'specs' => $this->specsToJson($this->post('specs', '')), + 'tags' => $this->post('tags', ''), + 'sort_order' => (int)$this->post('sort_order', 0), + 'status' => $this->post('status', 1) ? 1 : 0, + 'mode' => $mode, + ]; + + if ($mode === 'fixed') { + // 固定版面:保存图集与详细描述,保留原有 layout 不被覆盖 + $newGal = $this->uploadFiles('gallery'); + if (!empty($newGal)) { + $data['gallery'] = json_encode($newGal, JSON_UNESCAPED_UNICODE); + } elseif ($this->post('clear_gallery')) { + $data['gallery'] = '[]'; + } else { + $data['gallery'] = $p['gallery'] ?? '[]'; + } + $data['description'] = $this->post('description', ''); + } else { + // 可视化编辑:更新 layout,保留图集/描述原值 + $layout = $this->post('layout', ''); + if ($layout !== '' && !is_array(json_decode($layout, true))) { $layout = ''; } + $data['layout'] = $layout; + } + + $product->update($id, $data); + $this->redirect('admin/products'); + } + + public function delete($id) + { + if (csrf_check()) { (new Product())->delete($id); } + $this->redirect('admin/products'); + } +} diff --git a/app/Controllers/Admin/SettingController.php b/app/Controllers/Admin/SettingController.php new file mode 100644 index 0000000..e757987 --- /dev/null +++ b/app/Controllers/Admin/SettingController.php @@ -0,0 +1,171 @@ +siteFields as $k) $pairs[$k] = $this->post($k, ''); + // 网站 Logo:优先用上传文件,其次用填写的图片路径/网址;两者皆空则保留现值 + $logoUp = $this->uploadFile('logo'); + if ($logoUp !== null) { + $pairs['site_logo'] = $logoUp; + } else { + $url = trim((string) $this->post('logo_url', '')); + if ($url !== '') { + $pairs['site_logo'] = $url; + } else { + unset($pairs['site_logo']); // 不覆盖,保留数据库现有值(含默认商标) + } + } + $setting->saveMany($pairs, 'site'); + } + $this->redirect('admin/settings'); + } + $vals = []; + foreach ($this->siteFields as $k) $vals[$k] = $setting->get($k, Theme::get($k)); + return $this->view('admin/settings', ['v' => $vals, 'seg' => 'settings']); + } + + /** 风格 / 主题设置(任意网页风格) */ + public function theme() + { + $setting = new Setting(); + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (csrf_check()) { + $pairs = []; + foreach ($this->themeFields as $k) $pairs[$k] = $this->post($k, ''); + $setting->saveMany($pairs, 'theme'); + Theme::clearCache(); + Theme::regenerate(); + } + $this->redirect('admin/theme'); + } + $vals = []; + foreach ($this->themeFields as $k) $vals[$k] = $setting->get($k, Theme::get($k, '')); + return $this->view('admin/theme', [ + 'v' => $vals, + 'presets' => Theme::presets(), + 'seg' => 'theme', + ]); + } + + /** 支付设置(支付宝 / 微信) */ + public function payment() + { + $setting = new Setting(); + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (csrf_check()) { + $pairs = []; + foreach ($this->payFields as $k) $pairs[$k] = $this->post($k, ''); + $setting->saveMany($pairs, 'pay'); + } + $this->redirect('admin/payments'); + } + $vals = []; + foreach ($this->payFields as $k) $vals[$k] = $setting->get($k, Theme::get($k, '')); + return $this->view('admin/payment', ['v' => $vals, 'seg' => 'payments']); + } + + /** 逐页 SEO 页面清单(首页 / 产品中心 / 产品分类 / 新闻 / 案例 / 关于我们 / 联系我们) */ + private $seoPages = [ + 'home' => ['label' => '首页', 'title_min' => 35, 'desc_min' => 120, 'kw_min' => 10], + 'products' => ['label' => '产品中心', 'title_min' => 0, 'desc_min' => 120, 'kw_min' => 10], + 'product_category' => ['label' => '产品分类页', 'title_min' => 0, 'desc_min' => 80, 'kw_min' => 6, 'note' => '支持 {cat} 占位符,前端会自动替换为当前分类名。'], + 'news' => ['label' => '新闻列表', 'title_min' => 0, 'desc_min' => 120, 'kw_min' => 8], + 'cases' => ['label' => '客户案例', 'title_min' => 0, 'desc_min' => 120, 'kw_min' => 7], + 'about' => ['label' => '关于我们', 'title_min' => 0, 'desc_min' => 120, 'kw_min' => 7], + 'contact' => ['label' => '联系我们', 'title_min' => 0, 'desc_min' => 120, 'kw_min' => 7], + ]; + + /** SEO 设置:页面清单(每个页面进入独立编辑页) */ + public function seo() + { + admin_required(); + $pageSeo = new PageSeo(); + $rows = []; + try { + $rows = $pageSeo->allIndexed(); + } catch (\Throwable $e) { + // 表尚未创建(未执行升级 SQL)时给出提示,不致命报错 + $this->flash('未检测到 page_seo 表,请先到「数据库升级」执行 005_page_seo.sql', 'err'); + } + return $this->view('admin/seo', [ + 'pages' => $this->seoPages, + 'rows' => $rows, + 'seg' => 'seo', + ]); + } + + /** SEO 单页编辑:admin/seo/edit/{key} */ + public function edit($key = null) + { + admin_required(); + if (!$key || !isset($this->seoPages[$key])) { + $this->flash('未找到该 SEO 页面', 'err'); + $this->redirect('admin/seo'); + return ''; + } + $meta = $this->seoPages[$key]; + $pageSeo = new PageSeo(); + + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (!csrf_check()) { + $this->flash('表单已过期,请刷新后重试', 'err'); + $this->redirect('admin/seo/edit/' . $key); + return ''; + } + $pageSeo->saveRow($key, [ + 'title' => trim((string)($_POST['title'] ?? '')), + 'description' => trim((string)($_POST['description'] ?? '')), + 'keywords' => trim((string)($_POST['keywords'] ?? '')), + 'og_title' => trim((string)($_POST['og_title'] ?? '')), + 'og_description' => trim((string)($_POST['og_description'] ?? '')), + 'og_image' => trim((string)($_POST['og_image'] ?? '')), + 'og_type' => trim((string)($_POST['og_type'] ?? 'website')), + 'canonical' => trim((string)($_POST['canonical'] ?? '')), + 'noindex' => isset($_POST['noindex']) ? 1 : 0, + ]); + $this->flash('「' . $meta['label'] . '」SEO 设置已保存', 'ok'); + $this->redirect('admin/seo/edit/' . $key); + return ''; + } + + $row = []; + try { + $row = $pageSeo->getByKey($key) ?: []; + } catch (\Throwable $e) { + $this->flash('未检测到 page_seo 表,请先到「数据库升级」执行 005_page_seo.sql', 'err'); + } + return $this->view('admin/seo_edit', [ + 'key' => $key, + 'meta' => $meta, + 'v' => $row, + 'seg' => 'seo', + ]); + } +} diff --git a/app/Controllers/Admin/SystemController.php b/app/Controllers/Admin/SystemController.php new file mode 100644 index 0000000..f1281e4 --- /dev/null +++ b/app/Controllers/Admin/SystemController.php @@ -0,0 +1,24 @@ +view('admin/system', ['seg' => 'system']); + } + + public function upgrade() + { + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + $msgs = Installer::upgrade(); + $_SESSION['flash'] = ['type' => 'ok', 'msg' => '数据升级完成 ✓ ' . implode(';', $msgs)]; + } else { + $_SESSION['flash'] = ['type' => 'err', 'msg' => '安全校验失败,请重试']; + } + $this->redirect('admin/system'); + } +} diff --git a/app/Controllers/Admin/UpgradeController.php b/app/Controllers/Admin/UpgradeController.php new file mode 100644 index 0000000..aaac365 --- /dev/null +++ b/app/Controllers/Admin/UpgradeController.php @@ -0,0 +1,166 @@ + 升级面板 + * /admin/upgrade/apply/ -> 升级单个 + * /admin/upgrade/applyall -> 一键全部升级 + * /admin/upgrade/init -> 基础数据/表结构初始化(POST,仅超管) + */ +class UpgradeController extends Controller +{ + protected $layout = 'layouts/admin'; + + private function dir(): string + { + return BASE_PATH . '/install/upgrades'; + } + + public function index() + { + admin_required(); + if (Db::driver() !== 'mysql') { + return $this->view('admin/upgrade', ['driver' => 'file']); + } + $this->requireSuper(); + + Installer::ensureUpgradeLog(); + $files = $this->scan(); + $applied = $this->appliedMap(); + + $list = []; + foreach ($files as $f) { + $name = basename($f); + $hash = md5_file($f); + $state = !isset($applied[$name]) ? 'pending' + : ($applied[$name] !== $hash ? 'changed' : 'done'); + $list[] = [ + 'name' => $name, + 'size' => filesize($f), + 'mtime' => filemtime($f), + 'state' => $state, + ]; + } + // 排序:待升级 / 已变更 在前,已应用在后 + $rank = ['pending' => 0, 'changed' => 1, 'done' => 2]; + usort($list, fn($a, $b) => ($rank[$a['state']] ?? 9) - ($rank[$b['state']] ?? 9)); + + $pending = count(array_filter($list, fn($x) => $x['state'] !== 'done')); + $history = Db::query("SELECT * FROM db_upgrades ORDER BY applied_at DESC, id DESC LIMIT 50")->fetchAll(); + + return $this->view('admin/upgrade', [ + 'driver' => 'mysql', + 'list' => $list, + 'pending' => $pending, + 'history' => $history, + ]); + } + + /** 升级单个升级包 */ + public function apply($file = null) + { + admin_required(); + $this->requireSuper(); + $file = basename((string)$file); + $path = $this->dir() . '/' . $file; + if (!is_file($path) || !preg_match('/\.sql$/i', $file)) { + $this->flash('升级包不存在', 'err'); + $this->redirect('admin/upgrade'); + return ''; + } + try { + Installer::applySqlFile($path); + Installer::ensureUpgradeLog(); + Db::query( + "INSERT INTO db_upgrades (file, hash, applied_at, applied_by, note) VALUES (?, ?, ?, ?, ?)", + [$file, md5_file($path), date('Y-m-d H:i:s'), ($_SESSION['admin']['username'] ?? 'admin'), ''] + ); + $this->flash("已升级:{$file}", 'ok'); + } catch (\Throwable $e) { + $this->flash('升级失败:' . $e->getMessage(), 'err'); + } + $this->redirect('admin/upgrade'); + return ''; + } + + /** 一键升级全部待处理 */ + public function applyAll() + { + admin_required(); + $this->requireSuper(); + $files = $this->scan(); + $applied = $this->appliedMap(); + $done = 0; + foreach ($files as $f) { + $name = basename($f); + $hash = md5_file($f); + if (isset($applied[$name]) && $applied[$name] === $hash) continue; + try { + Installer::applySqlFile($f); + Installer::ensureUpgradeLog(); + Db::query( + "INSERT INTO db_upgrades (file, hash, applied_at, applied_by, note) VALUES (?, ?, ?, ?, ?)", + [$name, $hash, date('Y-m-d H:i:s'), ($_SESSION['admin']['username'] ?? 'admin'), ''] + ); + $done++; + } catch (\Throwable $e) { + $this->flash('升级失败:' . e($e->getMessage()), 'err'); + $this->redirect('admin/upgrade'); + return ''; + } + } + $this->flash($done > 0 ? "已批量升级 {$done} 个升级包" : '没有需要升级的包', $done > 0 ? 'ok' : 'err'); + $this->redirect('admin/upgrade'); + return ''; + } + + /** 基础数据/表结构初始化(保留旧版能力:补齐新模块表与种子) */ + public function init() + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { $this->redirect('admin/upgrade'); return ''; } + admin_required(); + $this->requireSuper(); + if (!csrf_check()) { + $this->flash('表单已过期,请刷新后重试', 'err'); + $this->redirect('admin/upgrade'); + return ''; + } + $msgs = Installer::upgrade(); + $this->flash('基础数据升级完成 ✓ ' . implode(';', $msgs), 'ok'); + $this->redirect('admin/upgrade'); + return ''; + } + + /* ---------------- 工具 ---------------- */ + + private function requireSuper(): void + { + if (!is_admin() || admin_role() !== 'super_admin') { + App::forbidden('仅超级管理员可执行数据库升级'); + } + } + + private function scan(): array + { + $d = $this->dir(); + return is_dir($d) ? (glob($d . '/*.sql') ?: []) : []; + } + + private function appliedMap(): array + { + try { + return Db::query("SELECT file, hash FROM db_upgrades")->fetchAll(\PDO::FETCH_KEY_PAIR); + } catch (\Throwable $e) { + return []; + } + } +} diff --git a/app/Controllers/Admin/UserController.php b/app/Controllers/Admin/UserController.php new file mode 100644 index 0000000..3b5cbd8 --- /dev/null +++ b/app/Controllers/Admin/UserController.php @@ -0,0 +1,193 @@ +model()->all(); + return $this->view('admin/users', ['users' => $users, 'error' => '', 'ok' => '']); + } + + public function create() + { + $p = $this->defaultPermsPair(); + return $this->view('admin/user_form', [ + 'user' => null, + 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], + 'error' => '', 'ok' => '', + ]); + } + + public function store() + { + if (!csrf_check()) { + $p = $this->defaultPermsPair(); + return $this->view('admin/user_form', ['user' => null, 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], 'error' => '表单已过期,请重试', 'ok' => '']); + } + $username = trim($this->post('username')); + $name = trim($this->post('name')); + $role = $this->post('role'); + $password = $this->post('password'); + $status = $this->post('status') ? 1 : 0; + + $err = $this->validate($username, $role, $password); + if ($err) { $p = $this->defaultPermsPair(); return $this->view('admin/user_form', ['user' => null, 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], 'error' => $err, 'ok' => '']); } + if ($this->model()->byUsername($username)) { + $p = $this->defaultPermsPair(); + return $this->view('admin/user_form', ['user' => null, 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], 'error' => '该账号已存在', 'ok' => '']); + } + $this->model()->insert([ + 'username' => $username, + 'name' => $name ?: $username, + 'password' => password_hash($password, PASSWORD_DEFAULT), + 'role' => $role, + 'crm_role' => $this->post('crm_role') ?: 'none', + 'psi_role' => $this->post('psi_role') ?: 'none', + 'crm_perms' => json_encode($this->collectPerms('crm', (array)($this->post('crm_pages') ?: [])), JSON_UNESCAPED_UNICODE), + 'psi_perms' => json_encode($this->collectPerms('psi', (array)($this->post('psi_pages') ?: [])), JSON_UNESCAPED_UNICODE), + 'status' => $status, + 'created_at' => date('Y-m-d'), + ]); + $this->redirect('admin/users'); + } + + public function edit($id) + { + $user = $this->model()->find($id); + if (!$user) return $this->redirect('admin/users'); + $p = $this->userPerms($user); + return $this->view('admin/user_form', ['user' => $user, 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], 'error' => '', 'ok' => '']); + } + + public function update($id) + { + $user = $this->model()->find($id); + if (!$user) return $this->redirect('admin/users'); + if (!csrf_check()) { + $p = $this->userPerms($user); + return $this->view('admin/user_form', ['user' => $user, 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], 'error' => '表单已过期,请重试', 'ok' => '']); + } + $username = trim($this->post('username')); + $name = trim($this->post('name')); + $role = $this->post('role'); + $password = $this->post('password'); + $status = $this->post('status') ? 1 : 0; + + $err = $this->validate($username, $role, $password, true); + if ($err) { $p = $this->userPerms($user); return $this->view('admin/user_form', ['user' => $user, 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], 'error' => $err, 'ok' => '']); } + if ($username !== $user['username'] && $this->model()->byUsername($username)) { + $p = $this->userPerms($user); + return $this->view('admin/user_form', ['user' => $user, 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], 'error' => '该账号已存在', 'ok' => '']); + } + $data = [ + 'username' => $username, + 'name' => $name ?: $username, + 'role' => $role, + 'crm_role' => $this->post('crm_role') ?: 'none', + 'psi_role' => $this->post('psi_role') ?: 'none', + 'crm_perms' => json_encode($this->collectPerms('crm', (array)($this->post('crm_pages') ?: [])), JSON_UNESCAPED_UNICODE), + 'psi_perms' => json_encode($this->collectPerms('psi', (array)($this->post('psi_pages') ?: [])), JSON_UNESCAPED_UNICODE), + 'status' => $status, + ]; + if ($password !== '') { + $data['password'] = password_hash($password, PASSWORD_DEFAULT); + } + $this->model()->update($id, $data); + $this->redirect('admin/users'); + } + + public function destroy($id) + { + if (admin_uid() == $id) return $this->redirect('admin/users'); // 不能删除自己 + $this->model()->delete($id); + $this->redirect('admin/users'); + } + + /** 超级管理员重置他人密码(自己重置走修改密码页) */ + public function reset($id) + { + $user = $this->model()->find($id); + if (!$user) return $this->redirect('admin/users'); + if (admin_uid() == $id) return $this->redirect('admin/password'); + $new = $this->genPassword(); + $this->model()->update($id, ['password' => password_hash($new, PASSWORD_DEFAULT)]); + $p = $this->userPerms($user); + return $this->view('admin/user_form', [ + 'user' => $user, + 'crmPerms' => $p['crm'], 'psiPerms' => $p['psi'], + 'error' => '', + 'ok' => '已重置密码为:' . e($new) . '(请尽快通知对方修改)', + ]); + } + + private function defaultPermsPair(): array + { + return ['crm' => $this->defaultPerms('crm'), 'psi' => $this->defaultPerms('psi')]; + } + + /** 从用户记录解码已保存的页面权限(无记录则默认全部可见) */ + private function userPerms($user): array + { + $crm = $this->defaultPerms('crm'); + $psi = $this->defaultPerms('psi'); + if (!empty($user['crm_perms'])) { $d = @json_decode($user['crm_perms'], true); if (is_array($d)) $crm = $d; } + if (!empty($user['psi_perms'])) { $d = @json_decode($user['psi_perms'], true); if (is_array($d)) $psi = $d; } + return ['crm' => $crm, 'psi' => $psi]; + } + + private function defaultPerms(string $sys): array + { + $out = []; + foreach (\subsys_pages($sys) as $p) { if ($p !== 'dashboard') $out[$p] = true; } + return $out; + } + + private function collectPerms(string $sys, array $checked): array + { + $out = []; + foreach (\subsys_pages($sys) as $p) { if ($p === 'dashboard') continue; $out[$p] = in_array($p, $checked, true); } + return $out; + } + + private function validate($username, $role, $password, $isEdit = false): string + { + if ($username === '' || !preg_match('/^[a-zA-Z0-9_]{3,30}$/', $username)) { + return '账号须为 3-30 位字母/数字/下划线'; + } + if (!in_array($role, ['super_admin', 'admin', 'user', 'none'], true)) { + return '角色不合法'; + } + if (!$isEdit && strlen($password) < 6) { + return '密码至少 6 位'; + } + return ''; + } + + private function genPassword(): string + { + $chars = 'abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'; + $s = ''; + for ($i = 0; $i < 10; $i++) { + $s .= $chars[random_int(0, strlen($chars) - 1)]; + } + return $s; + } +} diff --git a/app/Controllers/CRM/ContactsController.php b/app/Controllers/CRM/ContactsController.php new file mode 100644 index 0000000..1c0ac60 --- /dev/null +++ b/app/Controllers/CRM/ContactsController.php @@ -0,0 +1,123 @@ + 'dashboard', 'label' => '仪表盘', 'icon' => '📊', 'url' => 'CRM'], + ['k' => 'customers', 'label' => '客户管理', 'icon' => '🤝', 'url' => 'CRM/customers'], + ['k' => 'leads', 'label' => '商机线索', 'icon' => '💡', 'url' => 'CRM/leads'], + ['k' => 'followups', 'label' => '跟进记录', 'icon' => '📞', 'url' => 'CRM/followups'], + ['k' => 'contacts', 'label' => '客户联系人', 'icon' => '👥', 'url' => 'CRM/contacts'], + ]; + } + + /** 列表:/CRM/contacts(全部)或 /CRM/contacts?customer_id=ID(某客户) */ + public function index($customerId = null) + { + $customerId = $customerId ? (int)$customerId : (int)($_GET['customer_id'] ?? 0); + $customer = null; + if ($customerId) { + $customer = (new Customer())->find($customerId); + $contacts = (new Contact())->where('customer_id', $customerId); + } else { + $contacts = $this->allWithCustomer(); + } + return $this->renderSubsys('crm', 'crm/contacts', [ + 'contacts' => $contacts, + 'customer' => $customer, + ], $this->nav(), 'contacts'); + } + + public function create() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $preId = (int)($_GET['customer_id'] ?? 0); + $customers = (new Customer())->all(); + return $this->renderSubsys('crm', 'crm/contact_form', [ + 'contact' => null, + 'customers' => $customers, + 'preId' => $preId, + ], $this->nav(), 'contacts'); + } + + public function store() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) return $this->redirect('CRM/contacts'); + $cid = (int)$this->post('customer_id'); + $data = $this->collect(); + (new Contact())->insert($data); + return $this->redirect($cid ? "CRM/contacts?customer_id={$cid}" : 'CRM/contacts'); + } + + public function edit($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $contact = (new Contact())->find($id); + if (!$contact) return $this->redirect('CRM/contacts'); + $customers = (new Customer())->all(); + return $this->renderSubsys('crm', 'crm/contact_form', [ + 'contact' => $contact, + 'customers' => $customers, + 'preId' => (int)($contact['customer_id'] ?? 0), + ], $this->nav(), 'contacts'); + } + + public function update($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) return $this->redirect('CRM/contacts'); + $contact = (new Contact())->find($id); + if (!$contact) return $this->redirect('CRM/contacts'); + $cid = (int)$this->post('customer_id'); + (new Contact())->update($id, $this->collect()); + return $this->redirect($cid ? "CRM/contacts?customer_id={$cid}" : 'CRM/contacts'); + } + + public function destroy($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $contact = (new Contact())->find($id); + $cid = $contact ? (int)($contact['customer_id'] ?? 0) : 0; + (new Contact())->delete($id); + return $this->redirect($cid ? "CRM/contacts?customer_id={$cid}" : 'CRM/contacts'); + } + + private function collect(): array + { + return [ + 'customer_id' => (int)$this->post('customer_id'), + 'name' => trim($this->post('name')), + 'title' => trim($this->post('title')), + 'phone' => trim($this->post('phone')), + 'email' => trim($this->post('email')), + 'wechat' => trim($this->post('wechat')), + 'is_primary' => $this->post('is_primary') ? 1 : 0, + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d'), + ]; + } + + /** 全部联系人 + 客户名称(用于「全部联系人」视图) */ + private function allWithCustomer(): array + { + try { + $rows = \Core\Db::query( + "SELECT c.*, cu.name AS customer_name FROM crm_contacts c + LEFT JOIN crm_customers cu ON cu.id=c.customer_id + ORDER BY c.customer_id, c.id" + )->fetchAll(); + return $rows; + } catch (\Throwable $e) { + return (new Contact())->all(); + } + } +} diff --git a/app/Controllers/CRM/CustomersController.php b/app/Controllers/CRM/CustomersController.php new file mode 100644 index 0000000..c01b9cb --- /dev/null +++ b/app/Controllers/CRM/CustomersController.php @@ -0,0 +1,103 @@ + 'dashboard', 'label' => '仪表盘', 'icon' => '📊', 'url' => 'CRM'], + ['k' => 'customers', 'label' => '客户管理', 'icon' => '🤝', 'url' => 'CRM/customers'], + ['k' => 'leads', 'label' => '商机线索', 'icon' => '💡', 'url' => 'CRM/leads'], + ['k' => 'followups', 'label' => '跟进记录', 'icon' => '📞', 'url' => 'CRM/followups'], + ]; + } + + public function index() + { + $customers = (new Customer())->all(); + $contactCounts = $this->contactCounts(); + return $this->renderSubsys('crm', 'crm/customers', [ + 'customers' => $customers, + 'contactCounts' => $contactCounts, + ], $this->nav(), 'customers'); + } + + /** 每个客户的联系人数量(键=customer_id) */ + private function contactCounts(): array + { + $out = []; + try { + $rows = \Core\Db::query("SELECT customer_id, COUNT(*) AS n FROM crm_contacts GROUP BY customer_id"); + foreach ($rows->fetchAll() as $r) { $out[(int)$r['customer_id']] = (int)$r['n']; } + } catch (\Throwable $e) {} + return $out; + } + + public function create() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + return $this->renderSubsys('crm', 'crm/customer_form', ['customer' => null], $this->nav(), 'customers'); + } + + public function store() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) { return $this->renderSubsys('crm', 'crm/customer_form', ['customer' => null], $this->nav(), 'customers'); } + $data = $this->collect(); + (new Customer())->insert($data); + return $this->redirect('CRM/customers'); + } + + public function edit($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $customer = (new Customer())->find($id); + if (!$customer) return $this->redirect('CRM/customers'); + return $this->renderSubsys('crm', 'crm/customer_form', ['customer' => $customer], $this->nav(), 'customers'); + } + + public function update($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) return $this->redirect('CRM/customers'); + $customer = (new Customer())->find($id); + if (!$customer) return $this->redirect('CRM/customers'); + (new Customer())->update($id, $this->collect()); + return $this->redirect('CRM/customers'); + } + + public function destroy($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + (new Customer())->delete($id); + return $this->redirect('CRM/customers'); + } + + private function collect(): array + { + return [ + 'name' => trim($this->post('name')), + 'company' => trim($this->post('company')), + 'contact' => trim($this->post('contact')), + 'phone' => trim($this->post('phone')), + 'email' => trim($this->post('email')), + 'country' => trim($this->post('country')), + 'type' => $this->post('type') ?: 'brand', + 'source' => trim($this->post('source')), + 'level' => $this->post('level') ?: 'C', + 'customer_no' => trim($this->post('customer_no')), + 'industry' => trim($this->post('industry')), + 'region' => trim($this->post('region')), + 'credit_limit'=> (float)$this->post('credit_limit'), + 'status' => $this->post('status') ?: 'lead', + 'remark' => trim($this->post('remark')), + 'owner' => trim($this->post('owner')) ?: ($_SESSION['admin_name'] ?? ''), + 'created_at' => date('Y-m-d'), + ]; + } +} diff --git a/app/Controllers/CRM/DashboardController.php b/app/Controllers/CRM/DashboardController.php new file mode 100644 index 0000000..34d8a9b --- /dev/null +++ b/app/Controllers/CRM/DashboardController.php @@ -0,0 +1,130 @@ + 'dashboard', 'label' => '仪表盘', 'icon' => '📊', 'url' => 'CRM'], + ['k' => 'customers', 'label' => '客户管理', 'icon' => '🤝', 'url' => 'CRM/customers'], + ['k' => 'leads', 'label' => '商机线索', 'icon' => '💡', 'url' => 'CRM/leads'], + ['k' => 'followups', 'label' => '跟进记录', 'icon' => '📞', 'url' => 'CRM/followups'], + ['k' => 'contacts', 'label' => '客户联系人', 'icon' => '👥', 'url' => 'CRM/contacts'], + ]; + } + + /** 统一子路由入口 */ + public function dispatch(array $s) + { + $res = $s[0] ?? 'dashboard'; + $action = $s[1] ?? ''; + $id = $s[2] ?? null; + + // 仪表盘始终可进 + if ($res === 'dashboard') { + return $this->dashboard(); + } + + // 用户管理(仅该系统管理员):统一管理本系统用户及其页面权限 + if ($res === 'users') { + if (!\subsys_admin('crm')) { + \Core\App::forbidden('需要 CRM 管理员权限'); + return; + } + $uc = new \App\Controllers\CRM\UsersController(); + if ($action === '' || $action === 'index') return $uc->index(); + if ($action === 'create') return $uc->create(); + if ($action === 'store') return $uc->store(); + if ($action === 'edit') return $uc->edit($id); + if ($action === 'update') return $uc->update($id); + if ($action === 'destroy') return $uc->destroy($id); + if ($action === 'reset') return $uc->reset($id); + \Core\App::notFound('未知操作: ' . $action); + return; + } + + $map = [ + 'customers' => 'CustomersController', + 'leads' => 'LeadsController', + 'followups' => 'FollowUpsController', + 'contacts' => 'ContactsController', + ]; + if (!isset($map[$res])) { + \Core\App::notFound('未知页面: ' . $res); + return; + } + // 页面级权限:仪表盘始终可进,其余页面按分系统「页面可见权限」拦截 + if (!\subsys_page_can('crm', $res)) { + \Core\App::forbidden('您没有访问该页面的权限'); + return; + } + // 资源子操作路由:/CRM/{resource}[/{action}[/{id}]] + $method = $this->resolveSubsysAction($action); + if ($method === null) { + \Core\App::notFound('未知操作: ' . $action); + return; + } + $class = 'App\\Controllers\\CRM\\' . $map[$res]; + $instance = new $class(); + if (!method_exists($instance, $method)) { + \Core\App::notFound('操作不存在: ' . $method); + return; + } + return $instance->$method($id); + } + + /** 将 URL 动作段解析为控制器方法名;不支持的动作返回 null */ + private function resolveSubsysAction(string $action): ?string + { + $verbs = [ + '' => 'index', + 'index' => 'index', + 'create' => 'create', + 'store' => 'store', + 'edit' => 'edit', + 'update' => 'update', + 'destroy' => 'destroy', + ]; + return $verbs[$action] ?? null; + } + + public function dashboard() + { + $customers = (new Customer())->all(); + $leads = (new Lead())->all(); + $follows = (new FollowUp())->all(); + + $stageCount = []; + foreach ($leads as $l) { + $stageCount[$l['stage'] ?? 'new'] = ($stageCount[$l['stage'] ?? 'new'] ?? 0) + 1; + } + $amountTotal = array_sum(array_map(fn($l) => (float)($l['amount'] ?? 0), $leads)); + $typeCount = []; + foreach ($customers as $c) { + $typeCount[$c['type'] ?? 'trade'] = ($typeCount[$c['type'] ?? 'trade'] ?? 0) + 1; + } + $recent = array_slice(array_reverse($follows), 0, 8); + $recentCustomers = array_slice(array_reverse($customers), 0, 8); + + return $this->renderSubsys('crm', 'crm/dashboard', [ + 'customerTotal' => count($customers), + 'leadTotal' => count($leads), + 'followTotal' => count($follows), + 'amountTotal' => $amountTotal, + 'stageCount' => $stageCount, + 'typeCount' => $typeCount, + 'recent' => $recent, + 'recentCustomers'=> $recentCustomers, + ], $this->nav('dashboard'), 'dashboard'); + } +} diff --git a/app/Controllers/CRM/FollowUpsController.php b/app/Controllers/CRM/FollowUpsController.php new file mode 100644 index 0000000..4f3cbb2 --- /dev/null +++ b/app/Controllers/CRM/FollowUpsController.php @@ -0,0 +1,84 @@ + 'dashboard', 'label' => '仪表盘', 'icon' => '📊', 'url' => 'CRM'], + ['k' => 'customers', 'label' => '客户管理', 'icon' => '🤝', 'url' => 'CRM/customers'], + ['k' => 'leads', 'label' => '商机线索', 'icon' => '💡', 'url' => 'CRM/leads'], + ['k' => 'followups', 'label' => '跟进记录', 'icon' => '📞', 'url' => 'CRM/followups'], + ]; + } + + public function index() + { + $follows = (new FollowUp())->all(); + $customers = (new Customer())->all(); + $cmap = []; + foreach ($customers as $c) { $cmap[$c['id']] = $c['name']; } + return $this->renderSubsys('crm', 'crm/followups', ['follows' => $follows, 'cmap' => $cmap], $this->nav(), 'followups'); + } + + public function create() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $customers = (new Customer())->all(); + return $this->renderSubsys('crm', 'crm/followup_form', ['follow' => null, 'customers' => $customers], $this->nav(), 'followups'); + } + + public function store() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) return $this->redirect('CRM/followups'); + (new FollowUp())->insert($this->collect()); + return $this->redirect('CRM/followups'); + } + + public function edit($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $follow = (new FollowUp())->find($id); + if (!$follow) return $this->redirect('CRM/followups'); + $customers = (new Customer())->all(); + return $this->renderSubsys('crm', 'crm/followup_form', ['follow' => $follow, 'customers' => $customers], $this->nav(), 'followups'); + } + + public function update($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) return $this->redirect('CRM/followups'); + $follow = (new FollowUp())->find($id); + if (!$follow) return $this->redirect('CRM/followups'); + (new FollowUp())->update($id, $this->collect()); + return $this->redirect('CRM/followups'); + } + + public function destroy($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + (new FollowUp())->delete($id); + return $this->redirect('CRM/followups'); + } + + private function collect(): array + { + return [ + 'customer_id' => (int)$this->post('customer_id'), + 'lead_id' => (int)$this->post('lead_id'), + 'content' => trim($this->post('content')), + 'next_at' => trim($this->post('next_at')), + 'way' => trim($this->post('way')), + 'result' => trim($this->post('result')), + 'owner' => trim($this->post('owner')) ?: ($_SESSION['admin_name'] ?? ''), + 'created_at' => date('Y-m-d'), + ]; + } +} diff --git a/app/Controllers/CRM/LeadsController.php b/app/Controllers/CRM/LeadsController.php new file mode 100644 index 0000000..75178fb --- /dev/null +++ b/app/Controllers/CRM/LeadsController.php @@ -0,0 +1,86 @@ + 'dashboard', 'label' => '仪表盘', 'icon' => '📊', 'url' => 'CRM'], + ['k' => 'customers', 'label' => '客户管理', 'icon' => '🤝', 'url' => 'CRM/customers'], + ['k' => 'leads', 'label' => '商机线索', 'icon' => '💡', 'url' => 'CRM/leads'], + ['k' => 'followups', 'label' => '跟进记录', 'icon' => '📞', 'url' => 'CRM/followups'], + ]; + } + + public function index() + { + $leads = (new Lead())->all(); + $customers = (new Customer())->all(); + $cmap = []; + foreach ($customers as $c) { $cmap[$c['id']] = $c['name']; } + return $this->renderSubsys('crm', 'crm/leads', ['leads' => $leads, 'cmap' => $cmap], $this->nav(), 'leads'); + } + + public function create() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $customers = (new Customer())->all(); + return $this->renderSubsys('crm', 'crm/lead_form', ['lead' => null, 'customers' => $customers], $this->nav(), 'leads'); + } + + public function store() + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) return $this->redirect('CRM/leads'); + (new Lead())->insert($this->collect()); + return $this->redirect('CRM/leads'); + } + + public function edit($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + $lead = (new Lead())->find($id); + if (!$lead) return $this->redirect('CRM/leads'); + $customers = (new Customer())->all(); + return $this->renderSubsys('crm', 'crm/lead_form', ['lead' => $lead, 'customers' => $customers], $this->nav(), 'leads'); + } + + public function update($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + if (!csrf_check()) return $this->redirect('CRM/leads'); + $lead = (new Lead())->find($id); + if (!$lead) return $this->redirect('CRM/leads'); + (new Lead())->update($id, $this->collect()); + return $this->redirect('CRM/leads'); + } + + public function destroy($id) + { + subsys_admin('crm') or \Core\App::forbidden('需要 CRM 管理员权限'); + (new Lead())->delete($id); + return $this->redirect('CRM/leads'); + } + + private function collect(): array + { + return [ + 'customer_id' => (int)$this->post('customer_id'), + 'title' => trim($this->post('title')), + 'amount' => (float)$this->post('amount'), + 'stage' => $this->post('stage') ?: 'new', + 'expected_close' => trim($this->post('expected_close')), + 'source' => trim($this->post('source')), + 'probability' => (int)$this->post('probability'), + 'owner' => trim($this->post('owner')) ?: ($_SESSION['admin_name'] ?? ''), + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d'), + ]; + } +} diff --git a/app/Controllers/CRM/UsersController.php b/app/Controllers/CRM/UsersController.php new file mode 100644 index 0000000..010ed5c --- /dev/null +++ b/app/Controllers/CRM/UsersController.php @@ -0,0 +1,12 @@ + '客户案例', + 'description' => '酷冰甲降温服客户案例展示,覆盖消防、电力、钢铁、环卫、户外施工、车间制造等高温作业场景的真实合作项目,逐一呈现降温方案设计思路、现场使用效果与客户真实反馈,并附上适用行业与选型建议,为同类企业的高温防护升级提供可参考、可复用的实战样本,切实降低高温作业风险。', + 'keywords' => '降温服案例,客户案例,高温作业,降温方案,消防降温,工业应用,酷冰甲案例', + 'og_type' => 'website', + ]); + return $this->view('cases/index', [ + 'pageSeo' => [ + 'title' => $seo['title'], + 'description' => $seo['description'], + 'keywords' => $seo['keywords'], + 'og_type' => $seo['og_type'] ?: 'website', + 'og_image' => $seo['og_image'], + 'canonical' => $seo['canonical'], + 'noindex' => $seo['noindex'], + 'breadcrumb' => [ + ['name' => '首页', 'url' => site_url()], + ['name' => '客户案例', 'url' => absolute_url()], + ], + ], + 'cases' => $case->published(20), + ]); + } + + public function show($slug) + { + $case = new CustomerCase(); + $c = $case->where('slug', $slug); + if (!$c && is_numeric($slug)) { $c = $case->find((int)$slug); } + if (!$c) { \Core\App::notFound(); return ''; } + // 浏览量 +1 + $case->update($c['id'], ['views' => ($c['views'] ?? 0) + 1]); + $all = $case->published(20); + $idx = array_search($c, $all); + $prev = $idx !== false && $idx > 0 ? $all[$idx - 1] : null; + $next = $idx !== false && $idx < count($all) - 1 ? $all[$idx + 1] : null; + + $cTitle = e($c['title'] ?? '案例详情'); + $cSummary = mb_substr(strip_tags($c['summary'] ?? $c['body'] ?? ''), 0, 160); + $cImage = $c['image'] ?? ''; + $publishedAt = $c['created_at'] ?? $c['published_at'] ?? date('Y-m-d'); + + // ── Article JSON-LD Schema(客户案例)──── + $articleSchema = ''; + + return $this->view('cases/show', [ + 'pageSeo' => [ + 'title' => $cTitle, + 'description' => $cSummary, + 'og_type' => 'article', + 'og_image' => $cImage, + 'breadcrumb' => [ + ['name' => '首页', 'url' => site_url()], + ['name' => '客户案例', 'url' => site_url('cases')], + ['name' => $c['title'] ?? '案例', 'url' => absolute_url()], + ], + 'jsonld' => $articleSchema, + ], + 'c' => $c, + 'prev' => $prev, + 'next' => $next, + ]); + } +} diff --git a/app/Controllers/ContactController.php b/app/Controllers/ContactController.php new file mode 100644 index 0000000..cd3e157 --- /dev/null +++ b/app/Controllers/ContactController.php @@ -0,0 +1,79 @@ +post('website')) !== '') { + ip_rate_register($ip, 'contact', 900); // 仍计入限速窗口,避免探测 + $sent = true; // 静默当作成功,避免机器人得知被拦截 + } elseif (ip_rate_blocked($ip, 'contact', 5, 900)) { + $error = '提交过于频繁,请 15 分钟后再试。'; + } else { + ip_rate_register($ip, 'contact', 900); // 真实提交尝试计入限速窗口(含后续校验失败) + if (!csrf_check()) { + $error = '表单已过期,请重试。'; + } elseif (!captcha_check($this->post('captcha'))) { + $error = '验证码错误,请重新计算。'; + } else { + $name = trim($this->post('name')); + $phone = trim($this->post('phone')); + $msg = trim($this->post('message')); + // 服务端校验:长度与联系电话格式(防垃圾/注入) + if (mb_strlen($name) < 2 || mb_strlen($name) > 40) { + $error = '请填写有效的姓名(2-40 字)。'; + } elseif (!preg_match('/^[0-9+\-\s]{5,20}$/', $phone)) { + $error = '请填写有效的联系电话(5-20 位)。'; + } elseif (mb_strlen($msg) < 5 || mb_strlen($msg) > 1000) { + $error = '请填写需求描述(5-1000 字)。'; + } else { + $this->saveLead(compact('name', 'phone', 'msg') + ['at' => date('Y-m-d H:i:s')]); + $sent = true; + } + } + } + } + $seo = page_seo('contact', [ + 'title' => '联系我们', + 'description' => '联系酷冰甲,获取降温服定制方案与专属报价。我们支持企业批量采购、LOGO刺绣、尺寸与面料定制,提供在线咨询、电话与邮件多种沟通方式。7天打样、全国发货,专业团队一对一对接您的高温防护需求,从选型到交付全程跟进,确保交付准时可靠,让合作更省心、更可靠。', + 'keywords' => '联系酷冰甲,降温服定制,降温服报价,降温服采购,企业定制,降温服厂家,酷冰甲联系', + 'og_type' => 'website', + ]); + $captcha = captcha_make(); + return $this->view('contact/index', [ + 'pageSeo' => [ + 'title' => $seo['title'], + 'description' => $seo['description'], + 'keywords' => $seo['keywords'], + 'og_type' => $seo['og_type'] ?: 'website', + 'og_image' => $seo['og_image'], + 'canonical' => $seo['canonical'], + 'noindex' => $seo['noindex'], + 'breadcrumb' => [ + ['name' => '首页', 'url' => site_url()], + ['name' => '联系我们', 'url' => absolute_url()], + ], + ], + 'sent' => $sent, + 'error' => $error, + 'captcha' => $captcha, + ]); + } + + private function saveLead(array $data): void + { + if (Db::driver() !== 'file') return; // MySQL 模式可由后台扩展 + $file = Db::fileDir() . '/leads.json'; + $rows = is_file($file) ? json_decode(file_get_contents($file), true) ?: [] : []; + $rows[] = $data; + file_put_contents($file, json_encode($rows, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)); + } +} diff --git a/app/Controllers/Controller.php b/app/Controllers/Controller.php new file mode 100644 index 0000000..a7e75a9 --- /dev/null +++ b/app/Controllers/Controller.php @@ -0,0 +1,66 @@ +layout); + } + + protected function redirect(string $url) + { + header('Location: ' . site_url($url)); + exit; + } + + protected function back() + { + $this->redirect($_SERVER['HTTP_REFERER'] ?? ''); + } + + protected function json($data, int $code = 200) + { + http_response_code($code); + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($data, JSON_UNESCAPED_UNICODE); + exit; + } + + /** 一次性会话消息(成功 ok / 错误 err),布局模板自动渲染 */ + protected function flash(string $msg, string $type = 'err'): void + { + $_SESSION['flash'] = ['msg' => $msg, 'type' => $type]; + } + + protected function get(string $key, $default = '') + { + return $_GET[$key] ?? $default; + } + + protected function post(string $key, $default = '') + { + return $_POST[$key] ?? $default; + } + + /** + * 分系统(CRM / PSI)统一后台渲染:左侧导航 + 顶栏 + 内容区。 + * 与 layouts/admin.php 同源规范,保证团队多系统体验一致、可维护。 + * @param string $sys crm | psi + * @param string $view 视图名(如 crm/dashboard) + * @param array $nav 子系统导航项 [['k'=>, 'label'=>, 'icon'=>, 'url'=>]] + * @param string $seg 当前激活导航 key + */ + protected function renderSubsys(string $sys, string $view, array $data, array $nav, string $seg): string + { + $data['_sys'] = $sys; + $data['_nav'] = $nav; + $data['_seg'] = $seg; + $data['_home'] = $sys; // 子系统首页路由段 + return View::make($view, $data, 'layouts/subsys'); + } +} diff --git a/app/Controllers/HomeController.php b/app/Controllers/HomeController.php new file mode 100644 index 0000000..4aad315 --- /dev/null +++ b/app/Controllers/HomeController.php @@ -0,0 +1,83 @@ + '酷冰甲降温服官网 | 科技降温服定制·水冷循环·相变蓄冷·风冷背心·10套起订', + 'description' => '酷冰甲专注降温服的研发、生产与定制,提供水冷循环、相变蓄冷、风冷制冷、冰袋背心等多系列降温装备,广泛适用于消防、工业、电力、钢铁、环卫及户外高温作业场景。支持企业LOGO刺绣、尺寸与面料定制,10套起订,7天打样,全国发货,为您提供一站式高温防护解决方案。', + 'keywords' => '降温服,降温背心,水冷降温服,相变降温服,制冷背心,工业降温服,消防降温服,高温作业防护,降温服定制,酷冰甲', + 'og_type' => 'website', + ]); + // ── 首页 FAQ(可见文本 + FAQPage JSON-LD,GEO 高杠杆信号)──── + $faqs = [ + ['q' => '降温服是什么?它是怎么实现降温的?', 'a' => '降温服是一类为高温作业人群设计的主动或被动降温装备,主要通过三种原理散热:水冷循环(微型水泵驱动冷水在服装内管路循环带走体热)、相变蓄冷(冰袋或凝胶相变材料在融化过程中持续吸热)、涡扇风冷(小型风扇强制对流散热)。酷冰甲提供这三大系列,覆盖不同场景与续航需求。'], + ['q' => '穿降温服体感能降多少度?多久能起效?', 'a' => '在常规高温环境下,合格降温服可让核心体表感温度下降约 8–12℃。水冷与风冷方案接通或开机后数分钟内即可感受到明显凉意;相变冰袋方案放入预冷冰袋后即刻生效,单组冰袋可持续 2–4 小时。'], + ['q' => '降温服可以重复使用吗?一套能用多久?', 'a' => '可以。酷冰甲降温服主体为可水洗服装,水冷、风冷模块与相变冰袋均可反复使用。服装本体在正常保养下可用 2–3 个高温季,冰袋与电池模块按使用频率约 1–2 年更换即可。'], + ['q' => '支持企业定制和 LOGO 刺绣吗?起订量多少?', 'a' => '支持。我们提供企业 LOGO 绣字、颜色与面料定制、一人一码量体服务。柔性化生产,10 套起订,确认图纸后 7 天打样、约 28 天批量交付,适合班组、车间等小批量统一配发。'], + ['q' => '降温服适合哪些行业和场景?', 'a' => '广泛用于消防、钢铁、电力、化工、环卫、建筑、物流及户外军训等高温或暴晒场景,也适用于骑行、垂钓、观赛等个人户外降温。可按行业工况推荐对应系列与续航配置。'], + ['q' => '降温服怎么清洗和保养?', 'a' => '服装本体可轻柔机洗或手洗,避免浸泡电子模块;水冷、风冷主机与电池需拆下后擦干存放,冰袋用后擦干冷藏。长期不用请置于阴凉干燥处,电池保持半电存放。'], + ]; + $faqJsonLd = ''; + + $data = [ + 'pageSeo' => [ + 'title' => $seo['title'], + 'description' => $seo['description'], + 'keywords' => $seo['keywords'], + 'og_type' => $seo['og_type'] ?: 'website', + 'og_image' => $seo['og_image'], + 'canonical' => $seo['canonical'], + 'noindex' => $seo['noindex'], + 'jsonld' => $faqJsonLd, + ], + 'banners' => array_filter($banner->all(), fn($b) => ($b['status'] ?? 1) == 1), + 'categories'=> $category->all(), + 'products' => $product->featured(8), + 'news' => $news->published(3), + 'cases' => (new CustomerCase())->published(3), + 'stats' => [ + ['n' => '20', 'u' => '年', 'l' => '服装定制经验'], + ['n' => '6', 'u' => '大', 'l' => '降温产品系列'], + ['n' => '10', 'u' => '套', 'l' => '起订柔性生产'], + ['n' => '8', 'u' => '℃', 'l' => '体感直降'], + ], + 'advantages'=> [ + ['n' => '01', 't' => '柔性化生产', 'd' => '小单亦可定制,10 套起订,留足面辅料灵活补单。'], + ['n' => '02', 't' => '量身打造', 'd' => '设计师结合企业文化与功能需求定向设计,5 天出方案。'], + ['n' => '03', 't' => '一人一码', 'd' => '资深打版师打板、上门量体,高度还原设计稿,合身合体。'], + ['n' => '04', 't' => '外贸级品质', 'd' => '156 道工序层层把控,欧美出口级标准出货。'], + ], + 'process' => [ + ['t' => '需求沟通', 'd' => '了解行业、人群与场景,明确颜色款式与预算。'], + ['t' => '上门量体', 'd' => '试样衣、量体,采集精准尺寸数据。'], + ['t' => '设计款式', 'd' => '结合沟通结果量身设计降温服方案。'], + ['t' => '批量生产', 'd' => '确认图纸后快速打版、批量生产。'], + ['t' => '成衣交付', 'd' => '精心包装交付上门,启动售后服务。'], + ], + 'faqs' => $faqs, + ]; + return $this->view('home/index', $data); + } +} diff --git a/app/Controllers/NewsController.php b/app/Controllers/NewsController.php new file mode 100644 index 0000000..11322b4 --- /dev/null +++ b/app/Controllers/NewsController.php @@ -0,0 +1,84 @@ + '新闻动态', + 'description' => '酷冰甲降温服行业新闻中心,汇集高温防护政策解读、降温技术深度解析、产品应用案例、客户现场实录与行业前沿动态,持续分享降温服选型、使用、保养与清洗知识,帮助企业做好高温作业人员的健康与安全防护。我们关注每一次技术迭代,也记录每一处真实应用,让高温防护更有依据、更可落地。', + 'keywords' => '降温服新闻,降温技术,高温防护,工业降温,降温服应用,行业动态,酷冰甲资讯,降温服知识', + 'og_type' => 'website', + ]); + return $this->view('news/index', [ + 'pageSeo' => [ + 'title' => $seo['title'], + 'description' => $seo['description'], + 'keywords' => $seo['keywords'], + 'og_type' => $seo['og_type'] ?: 'website', + 'og_image' => $seo['og_image'], + 'canonical' => $seo['canonical'], + 'noindex' => $seo['noindex'], + 'breadcrumb' => [ + ['name' => '首页', 'url' => site_url()], + ['name' => '新闻动态', 'url' => absolute_url()], + ], + ], + 'news' => $news->published(20), + ]); + } + + public function show($slug) + { + $news = new News(); + $n = $news->where('slug', $slug); + if (!$n && is_numeric($slug)) { $n = $news->find((int)$slug); } + if (!$n) { \Core\App::notFound(); return ''; } + // 阅读量 +1 + $news->update($n['id'], ['views' => ($n['views'] ?? 0) + 1]); + $all = $news->published(20); + $idx = array_search($n, $all); + $prev = $idx !== false && $idx > 0 ? $all[$idx - 1] : null; + $next = $idx !== false && $idx < count($all) - 1 ? $all[$idx + 1] : null; + + $nTitle = e($n['title'] ?? '文章详情'); + $nSummary = mb_substr(strip_tags($n['summary'] ?? $n['body'] ?? ''), 0, 160); + $nImage = $n['image'] ?? ''; + $publishedAt = $n['created_at'] ?? $n['published_at'] ?? date('Y-m-d'); + + // ── Article JSON-LD Schema ── + $articleSchema = ''; + + return $this->view('news/show', [ + 'pageSeo' => [ + 'title' => $nTitle, + 'description' => $nSummary, + 'og_type' => 'article', + 'og_image' => $nImage, + 'breadcrumb' => [ + ['name' => '首页', 'url' => site_url()], + ['name' => '新闻动态', 'url' => site_url('news')], + ['name' => $n['title'] ?? '文章', 'url' => absolute_url()], + ], + 'jsonld' => $articleSchema, + ], + 'n' => $n, + 'prev' => $prev, + 'next' => $next, + ]); + } +} diff --git a/app/Controllers/OrderController.php b/app/Controllers/OrderController.php new file mode 100644 index 0000000..ec8c061 --- /dev/null +++ b/app/Controllers/OrderController.php @@ -0,0 +1,152 @@ +where('slug', $slug); + if (!$product) { \Core\App::notFound(); return ''; } + $err = isset($_GET['err']) ? '请填写姓名与手机号' : ''; + return $this->view('order/checkout', ['p' => $product, 'slug' => $slug, 'err' => $err]); + } + + public function store() + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { $this->redirect('products'); } + if (!csrf_check()) { $this->redirect('products'); } + $slug = $this->post('slug', ''); + $product = (new Product())->where('slug', $slug); + if (!$product) { $this->redirect('products'); } + $name = trim($this->post('name', '')); + $phone = trim($this->post('phone', '')); + $email = trim($this->post('email', '')); + $qty = max(1, (int) $this->post('qty', 1)); + if ($name === '' || $phone === '') { + $this->redirect('order/checkout/' . $slug . '?err=1'); + } + $amount = round((float) $product['price'] * $qty, 2); + $orderNo = $this->genNo(); + $oid = (new Order())->insert([ + 'order_no' => $orderNo, + 'product_id' => $product['id'], + 'product_name' => $product['name'], + 'customer_name' => $name, + 'phone' => $phone, + 'email' => $email, + 'qty' => $qty, + 'amount' => $amount, + 'channel' => '', + 'status' => 'pending', + 'created_at' => date('Y-m-d H:i:s'), + ]); + Notify::newCustomerOrder($orderNo, $name, $phone, $oid); + $this->redirect('order/pay/' . $orderNo); + } + + public function pay($orderNo) + { + $order = (new Order())->where('order_no', $orderNo); + if (!$order) { \Core\App::notFound(); return ''; } + + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $channel = $this->post('channel', ''); + if ($channel === 'alipay' || $channel === 'wechat') { + if ($order['channel'] !== $channel) { + (new Order())->update($order['id'], ['channel' => $channel]); + $order['channel'] = $channel; + } + } + } + + if ($order['status'] === 'paid') { + return $this->view('order/pay', ['order' => $order, 'paid' => true]); + } + if (empty($order['channel'])) { + return $this->view('order/pay', ['order' => $order, 'choose' => true]); + } + $gw = GatewayFactory::make($order['channel']); + $res = $gw->pay($order); + return $this->view('order/pay', ['order' => $order, 'gw' => $res]); + } + + /** 演示支付:模拟支付成功(默认模式可用,便于走通全流程) */ + public function demo($orderNo) + { + $o = (new Order())->where('order_no', $orderNo); + $channel = ($o && $o['channel'] === 'wechat') ? 'wechat' : 'alipay'; + OrderService::markPaid($orderNo, 'DEMO' . time(), $channel); + $this->redirect('order/success/' . $orderNo); + } + + public function success($orderNo) + { + $order = (new Order())->where('order_no', $orderNo); + if (!$order) { \Core\App::notFound(); return ''; } + $payments = (new Payment())->whereAll('order_no', $orderNo); + return $this->view('order/result', ['order' => $order, 'payments' => $payments]); + } + + /** + * 客户查询订单:客户名 + 手机号 双重校验 + * - 必填:客户名(下单时填写的姓名/单位)+ 手机号 + * - 选填:订单号(精确查单笔) + */ + public function query() + { + $orders = []; $no = ''; $name = ''; $phone = ''; $err = ''; + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + $no = trim($this->post('order_no', '')); + $name = trim($this->post('name', '')); + $phone = trim($this->post('phone', '')); + + if ($name === '' || $phone === '') { + $err = '请输入客户名与手机号以核验身份'; + } else { + $om = new Order(); + $pm = new Payment(); + $nameKey = mb_strtolower($name, 'UTF-8'); + // 客户名 + 手机号 同时匹配 + $matched = array_filter($om->all(), function ($o) use ($nameKey, $phone) { + $oName = mb_strtolower(trim($o['customer_name'] ?? ''), 'UTF-8'); + $oPhone = trim($o['phone'] ?? ''); + return $oName === $nameKey && $oPhone === $phone; + }); + + if ($no !== '') { + $matched = array_values(array_filter($matched, fn($o) => ($o['order_no'] ?? '') === $no)); + } + + if (empty($matched)) { + $err = $no !== '' + ? '未找到该订单号对应的订单,请核对客户名与手机号' + : '未找到匹配的客户名与手机号对应的订单'; + } else { + $orders = array_map(function ($o) use ($pm) { + return ['order' => $o, 'payments' => $pm->whereAll('order_no', $o['order_no'])]; + }, $matched); + } + } + } + return $this->view('order/query', [ + 'orders' => $orders, + 'no' => $no, + 'name' => $name, + 'phone' => $phone, + 'err' => $err, + ]); + } + + private function genNo(): string + { + return 'SQY' . date('YmdHis') . str_pad((int) ((microtime(true) * 1000) % 1000), 3, '0', STR_PAD_LEFT); + } +} diff --git a/app/Controllers/PSI/DashboardController.php b/app/Controllers/PSI/DashboardController.php new file mode 100644 index 0000000..d8f90c8 --- /dev/null +++ b/app/Controllers/PSI/DashboardController.php @@ -0,0 +1,267 @@ +dashboard(); + } + + // 用户管理(仅该系统管理员):统一管理本系统用户及其页面权限 + if ($res === 'users') { + if (!\subsys_admin('psi')) { + \Core\App::forbidden('需要 PSI 管理员权限'); + return; + } + $uc = new \App\Controllers\PSI\UsersController(); + if ($action === '' || $action === 'index') return $uc->index(); + if ($action === 'create') return $uc->create(); + if ($action === 'store') return $uc->store(); + if ($action === 'edit') return $uc->edit($id); + if ($action === 'update') return $uc->update($id); + if ($action === 'destroy') return $uc->destroy($id); + if ($action === 'reset') return $uc->reset($id); + \Core\App::notFound('未知操作: ' . $action); + return; + } + + // 订单管理:合并原「后台订单」到 PSI,方便管理人员在同一系统内快速处理 + if ($res === 'orders') { + if (!\subsys_page_can('psi', 'orders')) { + \Core\App::forbidden('您没有访问订单管理的权限'); + return; + } + $oc = new \App\Controllers\PSI\OrdersController(); + if ($action === '' || $action === 'index') return $oc->index(); + if ($action === 'show') return $oc->show($id); + if ($action === 'markPaid') return $oc->markPaid($id); + if ($action === 'destroy') return $oc->destroy($id); + \Core\App::notFound('未知操作: ' . $action); + return; + } + + // 销售订单:录入 / 打印 / 关联出库 + if ($res === 'sales_orders') { + if (!\subsys_page_can('psi', 'sales_orders')) { \Core\App::forbidden('您没有访问销售订单的权限'); return; } + $c = new \App\Controllers\PSI\SalesOrdersController(); + if ($action === '' || $action === 'index') return $c->index(); + if ($action === 'create') return $c->create(); + if ($action === 'store') return $c->store(); + if ($action === 'show') return $c->show($id); + if ($action === 'edit') return $c->edit($id); + if ($action === 'update') return $c->update($id); + if ($action === 'destroy') return $c->destroy($id); + if ($action === 'print') return $c->printDoc($id); + \Core\App::notFound('未知操作: ' . $action); return; + } + + // 采购订单:录入 / 打印 / 收货入库 + if ($res === 'purchase_orders') { + if (!\subsys_page_can('psi', 'purchase_orders')) { \Core\App::forbidden('您没有访问采购订单的权限'); return; } + $c = new \App\Controllers\PSI\PurchaseOrdersController(); + if ($action === '' || $action === 'index') return $c->index(); + if ($action === 'create') return $c->create(); + if ($action === 'store') return $c->store(); + if ($action === 'show') return $c->show($id); + if ($action === 'edit') return $c->edit($id); + if ($action === 'update') return $c->update($id); + if ($action === 'destroy') return $c->destroy($id); + if ($action === 'receive') return $c->receive($id); + if ($action === 'print') return $c->printDoc($id); + \Core\App::notFound('未知操作: ' . $action); return; + } + + // 出库单:录入 / 打印(关联销售订单、扣减库存) + if ($res === 'outbounds') { + if (!\subsys_page_can('psi', 'outbounds')) { \Core\App::forbidden('您没有访问出库单的权限'); return; } + $c = new \App\Controllers\PSI\OutboundsController(); + if ($action === '' || $action === 'index') return $c->index(); + if ($action === 'create') return $c->create(); + if ($action === 'store') return $c->store(); + if ($action === 'show') return $c->show($id); + if ($action === 'edit') return $c->edit($id); + if ($action === 'update') return $c->update($id); + if ($action === 'destroy') return $c->destroy($id); + if ($action === 'print') return $c->printDoc($id); + \Core\App::notFound('未知操作: ' . $action); return; + } + + // 报表中心:采购订单明细 / 销售·采购订单明细 / 交付明细 + if ($res === 'reports') { + if (!\subsys_page_can('psi', 'reports')) { \Core\App::forbidden('您没有访问报表中心的权限'); return; } + $c = new \App\Controllers\PSI\ReportsController(); + if ($action === '' || $action === 'index') return $c->index(); + if ($action === 'poDetail') return $c->poDetail(); + if ($action === 'soPo') return $c->soPo(); + if ($action === 'delivery') return $c->delivery(); + \Core\App::notFound('未知操作: ' . $action); return; + } + + // 紧急提醒中心(所有 PSI 用户可见) + if ($res === 'reminders') { + $c = new \App\Controllers\PSI\RemindersController(); + return $c->handle(array_slice($s, 1)); + } + + // 通知设置(仅 PSI 管理员,控制器内二次鉴权) + if ($res === 'notifications') { + $c = new \App\Controllers\PSI\NotificationsController(); + return $c->handle(array_slice($s, 1)); + } + + // 销售出库(支持 show/print 查看与打印预览) + if ($res === 'sales') { + if (!\subsys_page_can('psi', 'sales')) { \Core\App::forbidden('您没有访问销售出库的权限'); return; } + $c = new \App\Controllers\PSI\SalesController(); + if ($action === '' || $action === 'index') return $c->index(); + if ($action === 'create') return $c->create(); + if ($action === 'store') return $c->store(); + if ($action === 'show') return $c->show($id); + if ($action === 'destroy') return $c->destroy($id); + if ($action === 'print') return $c->printDoc($id); + \Core\App::notFound('未知操作: ' . $action); return; + } + + $map = [ + 'materials' => 'MaterialsController', + 'products' => 'ProductsController', + 'suppliers' => 'SuppliersController', + 'purchases' => 'PurchasesController', + 'stock' => 'StockController', + ]; + if (!isset($map[$res])) { + \Core\App::notFound('未知页面: ' . $res); + return; + } + // 页面级权限:按分系统「页面可见权限」拦截 + if (!\subsys_page_can('psi', $res)) { + \Core\App::forbidden('您没有访问该页面的权限'); + return; + } + // 资源子操作路由:/PSI/{resource}[/{action}[/{id}]] + // 支持 index/create/store/edit/update/destroy/adjust + $method = $this->resolveSubsysAction($action); + if ($method === null) { + \Core\App::notFound('未知操作: ' . $action); + return; + } + $class = 'App\\Controllers\\PSI\\' . $map[$res]; + $instance = new $class(); + if (!method_exists($instance, $method)) { + \Core\App::notFound('操作不存在: ' . $method); + return; + } + return $instance->$method($id); + } + + /** 将 URL 动作段解析为控制器方法名;不支持的动作返回 null */ + private function resolveSubsysAction(string $action): ?string + { + $verbs = [ + '' => 'index', + 'index' => 'index', + 'create' => 'create', + 'store' => 'store', + 'edit' => 'edit', + 'update' => 'update', + 'destroy' => 'destroy', + 'adjust' => 'adjust', + ]; + return $verbs[$action] ?? null; + } + + public function dashboard() + { + $materials = (new Material())->all(); + $products = (new Product())->all(); + $purchases = (new Purchase())->all(); + $sales = (new Sales())->all(); + + $matStock = array_sum(array_map(fn($m) => (float)($m['stock'] ?? 0), $materials)); + $prodStock = array_sum(array_map(fn($p) => (float)($p['stock'] ?? 0), $products)); + $purchaseAmt = array_sum(array_map(fn($p) => (float)($p['amount'] ?? 0), $purchases)); + $salesAmt = array_sum(array_map(fn($s) => (float)($s['amount'] ?? 0), $sales)); + $lowStock = []; + foreach ($materials as $m) { if ((float)($m['stock'] ?? 0) < 20) $lowStock[] = ['type' => '物料', 'item' => $m]; } + foreach ($products as $p) { if ((float)($p['stock'] ?? 0) < 20) $lowStock[] = ['type' => '成品', 'item' => $p]; } + + $recentPurchases = array_slice(array_reverse($purchases), 0, 5); + $recentSales = array_slice(array_reverse($sales), 0, 5); + + // 订单/出库业务指标(表未创建时静默降级) + $bySalesman = []; + $salesAmount = 0; $salesAmountMonth = 0; + $undelivered = ['count' => 0, 'amount' => 0]; + $monthDeliveries = ['count' => 0, 'amount' => 0]; + try { + $bySalesman = \Core\Db::query( + "SELECT o.salesman AS salesman, COUNT(DISTINCT o.id) AS orders, + COALESCE(SUM(i.amount),0) AS amount + FROM psi_sales_orders o + LEFT JOIN psi_sales_order_items i ON i.so_id=o.id + WHERE o.salesman <> '' AND o.status <> 'closed' + GROUP BY o.salesman ORDER BY amount DESC" + )->fetchAll(); + + $r = \Core\Db::query( + "SELECT COALESCE(SUM(i.amount),0) AS amt, + COALESCE(SUM(CASE WHEN MONTH(o.created_at)=MONTH(CURDATE()) AND YEAR(o.created_at)=YEAR(CURDATE()) THEN i.amount ELSE 0 END),0) AS amt_m + FROM psi_sales_orders o LEFT JOIN psi_sales_order_items i ON i.so_id=o.id + WHERE o.status <> 'closed'" + )->fetch(); + $salesAmount = (float)($r['amt'] ?? 0); + $salesAmountMonth = (float)($r['amt_m'] ?? 0); + + $u = \Core\Db::query( + "SELECT COUNT(*) AS c, COALESCE(SUM(i.amount),0) AS amt + FROM psi_sales_orders o LEFT JOIN psi_sales_order_items i ON i.so_id=o.id + WHERE o.status IN ('pending','partial')" + )->fetch(); + $undelivered = ['count' => (int)($u['c'] ?? 0), 'amount' => (float)($u['amt'] ?? 0)]; + + $d = \Core\Db::query( + "SELECT COUNT(*) AS c, COALESCE(SUM(i.amount),0) AS amt + FROM psi_outbounds ob LEFT JOIN psi_outbound_items i ON i.ob_id=ob.id + WHERE MONTH(ob.created_at)=MONTH(CURDATE()) AND YEAR(ob.created_at)=YEAR(CURDATE())" + )->fetch(); + $monthDeliveries = ['count' => (int)($d['c'] ?? 0), 'amount' => (float)($d['amt'] ?? 0)]; + } catch (\Throwable $e) { /* 表未创建时不报错 */ } + + return $this->renderSubsys('psi', 'psi/dashboard', [ + 'materialTotal' => count($materials), + 'productTotal' => count($products), + 'matStock' => $matStock, + 'prodStock' => $prodStock, + 'purchaseAmt' => $purchaseAmt, + 'salesAmt' => $salesAmt, + 'lowStock' => $lowStock, + 'recentPurchases' => $recentPurchases, + 'recentSales' => $recentSales, + 'bySalesman' => $bySalesman, + 'salesAmount' => $salesAmount, + 'salesAmountMonth' => $salesAmountMonth, + 'undelivered' => $undelivered, + 'monthDeliveries' => $monthDeliveries, + ], $this->nav('dashboard'), 'dashboard'); + } +} diff --git a/app/Controllers/PSI/MaterialsController.php b/app/Controllers/PSI/MaterialsController.php new file mode 100644 index 0000000..8a88a3b --- /dev/null +++ b/app/Controllers/PSI/MaterialsController.php @@ -0,0 +1,101 @@ +all(); + $suppliers = (new Supplier())->all(); + $smap = []; + foreach ($suppliers as $s) { $smap[$s['id']] = $s['name']; } + return $this->renderSubsys('psi', 'psi/materials', ['materials' => $materials, 'smap' => $smap], \psi_nav(), 'materials'); + } + + public function create() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + $suppliers = (new Supplier())->all(); + return $this->renderSubsys('psi', 'psi/material_form', ['material' => null, 'suppliers' => $suppliers], \psi_nav(), 'materials'); + } + + public function store() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/materials'); + (new Material())->insert($this->collect()); + return $this->redirect('PSI/materials'); + } + + public function edit($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + $material = (new Material())->find($id); + if (!$material) return $this->redirect('PSI/materials'); + $suppliers = (new Supplier())->all(); + return $this->renderSubsys('psi', 'psi/material_form', ['material' => $material, 'suppliers' => $suppliers], \psi_nav(), 'materials'); + } + + public function update($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/materials'); + $material = (new Material())->find($id); + if (!$material) return $this->redirect('PSI/materials'); + (new Material())->update($id, $this->collect()); + return $this->redirect('PSI/materials'); + } + + public function destroy($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + (new Material())->delete($id); + return $this->redirect('PSI/materials'); + } + + /** 手动调整库存(盘盈/盘亏/报损) */ + public function adjust($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (!csrf_check()) return $this->redirect('PSI/materials'); + $qty = (float)$this->post('qty'); + $direction = $this->post('direction') === 'out' ? 'out' : 'in'; + $this->adjustStock('material', (int)$id, abs($qty), $direction, 'ADJ-' . date('Ymd')); + return $this->redirect('PSI/materials'); + } + $material = (new Material())->find($id); + if (!$material) return $this->redirect('PSI/materials'); + return $this->renderSubsys('psi', 'psi/adjust_form', ['item' => $material, 'type' => 'material'], \psi_nav(), 'materials'); + } + + private function collect(): array + { + return [ + 'code' => trim($this->post('code')), + 'name' => trim($this->post('name')), + 'spec' => trim($this->post('spec')), + 'unit' => trim($this->post('unit')) ?: '个', + 'category' => trim($this->post('category')), + 'composition' => trim($this->post('composition')), + 'weight_gsm' => (float)$this->post('weight_gsm'), + 'width_cm' => (float)$this->post('width_cm'), + 'color' => trim($this->post('color')), + 'batch_no' => trim($this->post('batch_no')), + 'stock' => (float)$this->post('stock'), + 'price' => (float)$this->post('price'), + 'supplier_id' => (int)$this->post('supplier_id'), + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d'), + ]; + } +} diff --git a/app/Controllers/PSI/NotificationsController.php b/app/Controllers/PSI/NotificationsController.php new file mode 100644 index 0000000..2b4eb60 --- /dev/null +++ b/app/Controllers/PSI/NotificationsController.php @@ -0,0 +1,73 @@ +save(); + return; + } + $this->index(); + } + + public function index(): void + { + $s = new Setting(); + $v = []; + foreach (self::KEYS as $k) { + $v[$k] = $s->get($k, ''); + } + // 布尔项默认值 + if ($v['notify_lowstock_enabled'] === '') $v['notify_lowstock_enabled'] = 1; + if ($v['notify_lowstock_threshold'] === '') $v['notify_lowstock_threshold'] = 20; + + $this->renderSubsys('psi', 'psi/notifications', ['v' => $v], \psi_nav(), 'notifications'); + } + + public function save(): void + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) { + $this->redirect('PSI/notifications'); + } + $s = new Setting(); + $post = $_POST; + $s->set('notify_enabled', isset($post['notify_enabled']) ? 1 : 0); + $s->set('notify_email_enabled', isset($post['notify_email_enabled']) ? 1 : 0); + $s->set('notify_email_smtp_host', trim((string) ($post['notify_email_smtp_host'] ?? ''))); + $s->set('notify_email_smtp_port', (int) ($post['notify_email_smtp_port'] ?? 465)); + $s->set('notify_email_smtp_user', trim((string) ($post['notify_email_smtp_user'] ?? ''))); + $s->set('notify_email_smtp_pass', trim((string) ($post['notify_email_smtp_pass'] ?? ''))); + $s->set('notify_email_from', trim((string) ($post['notify_email_from'] ?? ''))); + $s->set('notify_email_to', trim((string) ($post['notify_email_to'] ?? ''))); + $s->set('notify_wechat_enabled', isset($post['notify_wechat_enabled']) ? 1 : 0); + $s->set('notify_wechat_webhook', trim((string) ($post['notify_wechat_webhook'] ?? ''))); + $s->set('notify_wechat_mention', trim((string) ($post['notify_wechat_mention'] ?? ''))); + $s->set('notify_lowstock_enabled', isset($post['notify_lowstock_enabled']) ? 1 : 0); + $s->set('notify_lowstock_threshold', max(0, (float) ($post['notify_lowstock_threshold'] ?? 20))); + + $this->flash('通知设置已保存', 'ok'); + $this->redirect('PSI/notifications'); + } +} diff --git a/app/Controllers/PSI/OrdersController.php b/app/Controllers/PSI/OrdersController.php new file mode 100644 index 0000000..bd37c76 --- /dev/null +++ b/app/Controllers/PSI/OrdersController.php @@ -0,0 +1,61 @@ +all()); + return $this->renderSubsys('psi', 'psi/orders', ['orders' => $all], \subsys_nav('psi'), 'orders'); + } + + /** 详情:订单信息 + 付款记录 */ + public function show($id) + { + $order = new Order(); + $o = $order->find($id); + if (!$o) { \Core\App::notFound(); return; } + $payments = (new Payment())->whereAll('order_no', $o['order_no']); + return $this->renderSubsys('psi', 'psi/order_show', [ + 'o' => $o, 'payments' => $payments, + ], \subsys_nav('psi'), 'orders'); + } + + /** 标记为已支付(仅 PSI 管理员) */ + public function markPaid($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + $order = new Order(); + $o = $order->find($id); + if ($o && $o['status'] !== 'paid') { + OrderService::markPaid($o['order_no'], 'MANUAL' . time(), $o['channel'] ?: 'manual'); + $this->flash('订单已标记为已支付', 'ok'); + } + } + return $this->redirect('PSI/orders/show/' . $id); + } + + /** 删除订单(仅 PSI 管理员) */ + public function destroy($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + (new Order())->delete($id); + $this->flash('订单已删除', 'ok'); + } + return $this->redirect('PSI/orders'); + } +} diff --git a/app/Controllers/PSI/OutboundsController.php b/app/Controllers/PSI/OutboundsController.php new file mode 100644 index 0000000..f525337 --- /dev/null +++ b/app/Controllers/PSI/OutboundsController.php @@ -0,0 +1,195 @@ +all()); + $itemM = new OutboundItem(); + foreach ($list as &$o) { $o['_items'] = $itemM->whereAll('ob_id', $o['id']); } + return $this->renderSubsys('psi', 'psi/outbounds', ['list' => $list], \psi_nav(), 'outbounds'); + } + + public function create() + { + $soNo = $this->get('so'); + $so = $soNo ? (new SalesOrder())->where('order_no', $soNo) : null; + $soItems = $so ? (new SalesOrderItem())->whereAll('so_id', $so['id']) : []; + return $this->renderSubsys('psi', 'psi/outbound_form', [ + 'o' => null, 'items' => [], 'so' => $so, 'soItems' => $soItems, 'products' => (new Product())->all(), + ], \psi_nav(), 'outbounds'); + } + + public function store() + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) return $this->redirect('PSI/outbounds/create'); + $items = $this->parseItems(); + if (empty($items)) { $this->flash('请至少添加一条出库明细', 'err'); return $this->redirect('PSI/outbounds/create'); } + + $soNo = trim($this->post('so_no')); + $so = $soNo ? (new SalesOrder())->where('order_no', $soNo) : null; + $orderNo = \psi_gen_no('OUT'); + $id = (new Outbound())->insert([ + 'order_no' => $orderNo, + 'so_no' => $soNo, + 'customer' => trim($this->post('customer')) ?: ($so['customer'] ?? ''), + 'salesman' => trim($this->post('salesman')) ?: ($so['salesman'] ?? ($_SESSION['admin_name'] ?? '')), + 'warehouse' => trim($this->post('warehouse')), + 'status' => 'delivered', + 'delivery_date' => $this->post('delivery_date') ?: null, + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d H:i:s'), + ]); + $this->applyItems($id, $items, $soNo, $orderNo); + if ($so) { + \psi_recompute_so($so['id']); + $st = (new SalesOrder())->find($so['id'])['status']; + (new Outbound())->update($id, ['status' => $st === 'delivered' ? 'delivered' : 'partial']); + } + $this->flash('出库单已保存', 'ok'); + if ($this->post('auto_print', '1') !== '0') { + return $this->redirect('PSI/outbounds/print/' . $id); + } + return $this->redirect('PSI/outbounds/show/' . $id); + } + + public function show($id) + { + $o = (new Outbound())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new OutboundItem())->whereAll('ob_id', $id); + return $this->renderSubsys('psi', 'psi/outbound_show', ['o' => $o, 'items' => $items], \psi_nav(), 'outbounds'); + } + + public function edit($id) + { + $o = (new Outbound())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new OutboundItem())->whereAll('ob_id', $id); + $so = $o['so_no'] ? (new SalesOrder())->where('order_no', $o['so_no']) : null; + $soItems = $so ? (new SalesOrderItem())->whereAll('so_id', $so['id']) : []; + return $this->renderSubsys('psi', 'psi/outbound_form', [ + 'o' => $o, 'items' => $items, 'so' => $so, 'soItems' => $soItems, 'products' => (new Product())->all(), + ], \psi_nav(), 'outbounds'); + } + + public function update($id) + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) return $this->redirect('PSI/outbounds/edit/' . $id); + $o = (new Outbound())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = $this->parseItems(); + if (empty($items)) { $this->flash('请至少添加一条出库明细', 'err'); return $this->redirect('PSI/outbounds/edit/' . $id); } + + $this->reverseItems($id); // 回冲库存与已交付 + (new Outbound())->update($id, [ + 'customer' => trim($this->post('customer')), + 'salesman' => trim($this->post('salesman')) ?: ($_SESSION['admin_name'] ?? ''), + 'warehouse' => trim($this->post('warehouse')), + 'delivery_date' => $this->post('delivery_date') ?: null, + 'remark' => trim($this->post('remark')), + ]); + $this->applyItems($id, $items, $o['so_no'], $o['order_no']); + if ($o['so_no']) { + $so = (new SalesOrder())->where('order_no', $o['so_no']); + if ($so) \psi_recompute_so((int)$so['id']); + } + $this->flash('出库单已更新', 'ok'); + return $this->redirect('PSI/outbounds/show/' . $id); + } + + public function destroy($id) + { + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + $this->reverseItems($id); + (new OutboundItem())->deleteRaw('ob_id', $id); + (new Outbound())->delete($id); + $this->flash('出库单已删除', 'ok'); + } + return $this->redirect('PSI/outbounds'); + } + + public function printDoc($id) + { + $o = (new Outbound())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new OutboundItem())->whereAll('ob_id', $id); + $body = \App\Core\View::render('psi/outbound_print', ['o' => $o, 'items' => $items]); + echo \psi_print_shell('出库单 ' . $o['order_no'], $body); + } + + /** 应用出库明细:写明细 + 扣库存 + 回写销售订单已交付量 */ + private function applyItems(int $obId, array $items, string $soNo, string $orderNo): void + { + $itemM = new OutboundItem(); + $so = $soNo ? (new SalesOrder())->where('order_no', $soNo) : null; + foreach ($items as $it) { + $it['ob_id'] = $obId; + $itemM->insert($it); + if ((int)($it['product_id'] ?? 0) > 0) { + StockHelper::adjustStock((int)$it['product_id'], (int)$it['qty'], 'out', '销售出库', $orderNo); + } + if ((int)($it['so_item_id'] ?? 0) > 0) { + $si = (new SalesOrderItem())->find($it['so_item_id']); + if ($si) { + (new SalesOrderItem())->update($si['id'], ['delivered_qty' => (int)$si['delivered_qty'] + (int)$it['qty']]); + } + } + } + } + + /** 回冲:把出库明细的库存与销售订单已交付量还原 */ + private function reverseItems(int $obId): void + { + $old = (new OutboundItem())->whereAll('ob_id', $obId); + foreach ($old as $oi) { + if ((int)($oi['product_id'] ?? 0) > 0) { + StockHelper::adjustStock((int)$oi['product_id'], (int)$oi['qty'], 'in', '出库冲正', $oi['ob_id'] ?? ''); + } + if ((int)($oi['so_item_id'] ?? 0) > 0) { + $si = (new SalesOrderItem())->find($oi['so_item_id']); + if ($si) { + $back = max(0, (int)$si['delivered_qty'] - (int)$oi['qty']); + (new SalesOrderItem())->update($si['id'], ['delivered_qty' => $back]); + } + } + } + (new OutboundItem())->deleteRaw('ob_id', $obId); + } + + private function parseItems(): array + { + $raw = $_POST['items'] ?? []; + $out = []; + foreach ($raw as $row) { + $name = trim((string)($row['name'] ?? '')); + $qty = (int)($row['qty'] ?? 0); + $price = (float)($row['price'] ?? 0); + if ($name === '' || $qty <= 0) continue; + $out[] = [ + 'so_item_id' => (int)($row['so_item_id'] ?? 0), + 'product_id' => (int)($row['product_id'] ?? 0), + 'name' => $name, + 'spec' => trim((string)($row['spec'] ?? '')), + 'unit' => trim((string)($row['unit'] ?? '')), + 'qty' => $qty, + 'price' => $price, + 'amount' => round($qty * $price, 2), + ]; + } + return $out; + } +} diff --git a/app/Controllers/PSI/ProductsController.php b/app/Controllers/PSI/ProductsController.php new file mode 100644 index 0000000..c7f6c2d --- /dev/null +++ b/app/Controllers/PSI/ProductsController.php @@ -0,0 +1,94 @@ +all(); + return $this->renderSubsys('psi', 'psi/products', ['products' => $products], \psi_nav(), 'products'); + } + + public function create() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + return $this->renderSubsys('psi', 'psi/product_form', ['product' => null], \psi_nav(), 'products'); + } + + public function store() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/products'); + (new Product())->insert($this->collect()); + return $this->redirect('PSI/products'); + } + + public function edit($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + $product = (new Product())->find($id); + if (!$product) return $this->redirect('PSI/products'); + return $this->renderSubsys('psi', 'psi/product_form', ['product' => $product], \psi_nav(), 'products'); + } + + public function update($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/products'); + $product = (new Product())->find($id); + if (!$product) return $this->redirect('PSI/products'); + (new Product())->update($id, $this->collect()); + return $this->redirect('PSI/products'); + } + + public function destroy($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + (new Product())->delete($id); + return $this->redirect('PSI/products'); + } + + public function adjust($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (!csrf_check()) return $this->redirect('PSI/products'); + $qty = (float)$this->post('qty'); + $direction = $this->post('direction') === 'out' ? 'out' : 'in'; + $this->adjustStock('product', (int)$id, abs($qty), $direction, 'ADJ-' . date('Ymd')); + return $this->redirect('PSI/products'); + } + $product = (new Product())->find($id); + if (!$product) return $this->redirect('PSI/products'); + return $this->renderSubsys('psi', 'psi/adjust_form', ['item' => $product, 'type' => 'product'], \psi_nav(), 'products'); + } + + private function collect(): array + { + return [ + 'code' => trim($this->post('code')), + 'name' => trim($this->post('name')), + 'spec' => trim($this->post('spec')), + 'unit' => trim($this->post('unit')) ?: '件', + 'category' => trim($this->post('category')), + 'style_no' => trim($this->post('style_no')), + 'color' => trim($this->post('color')), + 'size_run' => trim($this->post('size_run')), + 'season' => trim($this->post('season')), + 'year' => trim($this->post('year')), + 'stock' => (float)$this->post('stock'), + 'cost' => (float)$this->post('cost'), + 'price' => (float)$this->post('price'), + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d'), + ]; + } +} diff --git a/app/Controllers/PSI/PurchaseOrdersController.php b/app/Controllers/PSI/PurchaseOrdersController.php new file mode 100644 index 0000000..905a60f --- /dev/null +++ b/app/Controllers/PSI/PurchaseOrdersController.php @@ -0,0 +1,176 @@ +all()); + $itemM = new PurchaseOrderItem(); + foreach ($orders as &$o) { $o['_items'] = $itemM->whereAll('po_id', $o['id']); } + return $this->renderSubsys('psi', 'psi/purchase_orders', ['orders' => $orders], \psi_nav(), 'purchase_orders'); + } + + public function create() + { + return $this->renderSubsys('psi', 'psi/purchase_order_form', [ + 'o' => null, 'items' => [], 'materials' => (new Material())->all(), 'products' => (new Product())->all(), + ], \psi_nav(), 'purchase_orders'); + } + + public function store() + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) return $this->redirect('PSI/purchase_orders/create'); + $items = $this->parseItems(); + if (empty($items)) { $this->flash('请至少添加一条采购明细', 'err'); return $this->redirect('PSI/purchase_orders/create'); } + $id = (new PurchaseOrder())->insert([ + 'order_no' => $oNo = \psi_gen_no('PO'), + 'supplier_id' => (int)$this->post('supplier_id'), + 'supplier_name' => $supp = trim($this->post('supplier_name')), + 'salesman' => $buyer = trim($this->post('salesman')) ?: ($_SESSION['admin_name'] ?? ''), + 'status' => 'pending', + 'expected_at' => $this->post('expected_at') ?: null, + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d H:i:s'), + ]); + $itemM = new PurchaseOrderItem(); + foreach ($items as $it) { $it['po_id'] = $id; $itemM->insert($it); } + \Core\Notify::newPurchaseOrder($oNo, $supp, $buyer, $id); + $this->flash('采购订单已创建', 'ok'); + if ($this->post('auto_print', '1') !== '0') { + return $this->redirect('PSI/purchase_orders/print/' . $id); + } + return $this->redirect('PSI/purchase_orders/show/' . $id); + } + + public function show($id) + { + $o = (new PurchaseOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new PurchaseOrderItem())->whereAll('po_id', $id); + return $this->renderSubsys('psi', 'psi/purchase_order_show', ['o' => $o, 'items' => $items], \psi_nav(), 'purchase_orders'); + } + + public function edit($id) + { + $o = (new PurchaseOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + if (in_array($o['status'], ['received'], true)) { $this->flash('已收货的采购订单不可编辑', 'err'); return $this->redirect('PSI/purchase_orders/show/' . $id); } + $items = (new PurchaseOrderItem())->whereAll('po_id', $id); + return $this->renderSubsys('psi', 'psi/purchase_order_form', [ + 'o' => $o, 'items' => $items, 'materials' => (new Material())->all(), 'products' => (new Product())->all(), + ], \psi_nav(), 'purchase_orders'); + } + + public function update($id) + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) return $this->redirect('PSI/purchase_orders/edit/' . $id); + $o = (new PurchaseOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = $this->parseItems(); + if (empty($items)) { $this->flash('请至少添加一条采购明细', 'err'); return $this->redirect('PSI/purchase_orders/edit/' . $id); } + + (new PurchaseOrder())->update($id, [ + 'supplier_id' => (int)$this->post('supplier_id'), + 'supplier_name' => trim($this->post('supplier_name')), + 'salesman' => trim($this->post('salesman')) ?: ($_SESSION['admin_name'] ?? ''), + 'expected_at' => $this->post('expected_at') ?: null, + 'remark' => trim($this->post('remark')), + ]); + $old = (new PurchaseOrderItem())->whereAll('po_id', $id); + $recv = []; + foreach ($old as $oi) { $recv[($oi['item_type'] ?? '') . '|' . ($oi['item_id'] ?? 0) . '|' . $oi['name']] = (int)($oi['received_qty'] ?? 0); } + (new PurchaseOrderItem())->deleteRaw('po_id', $id); + foreach ($items as $it) { + $key = ($it['item_type'] ?? '') . '|' . ($it['item_id'] ?? 0) . '|' . $it['name']; + $it['received_qty'] = $recv[$key] ?? 0; + $it['po_id'] = $id; + (new PurchaseOrderItem())->insert($it); + } + $this->flash('采购订单已更新', 'ok'); + return $this->redirect('PSI/purchase_orders/show/' . $id); + } + + /** 收货入库:成品增加库存 + 写入采购入库流水;更新已收数量与状态 */ + public function receive($id) + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) return $this->redirect('PSI/purchase_orders/show/' . $id); + $o = (new PurchaseOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + if ($o['status'] === 'received') { $this->flash('该采购订单已收货,不可重复操作', 'err'); return $this->redirect('PSI/purchase_orders/show/' . $id); } + + $items = (new PurchaseOrderItem())->whereAll('po_id', $id); + $purchaseM = new Purchase(); + foreach ($items as $it) { + if ((int)$it['qty'] <= 0) continue; + if ($it['item_type'] === 'product' && (int)$it['item_id'] > 0) { + StockHelper::adjustStock((int)$it['item_id'], (int)$it['qty'], 'in', '采购入库', $o['order_no']); + $purchaseM->insert([ + 'product_id' => (int)$it['item_id'], 'qty' => (int)$it['qty'], + 'price' => (float)$it['price'], 'amount' => (float)$it['amount'], + 'supplier' => $o['supplier_name'], 'order_no' => $o['order_no'], + 'created_at' => date('Y-m-d H:i:s'), + ]); + } + (new PurchaseOrderItem())->update($it['id'], ['received_qty' => (int)$it['qty']]); + } + (new PurchaseOrder())->update($id, ['status' => 'received']); + $this->flash('采购订单已收货入库', 'ok'); + return $this->redirect('PSI/purchase_orders/show/' . $id); + } + + public function destroy($id) + { + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + (new PurchaseOrderItem())->deleteRaw('po_id', $id); + (new PurchaseOrder())->delete($id); + $this->flash('采购订单已删除', 'ok'); + } + return $this->redirect('PSI/purchase_orders'); + } + + public function printDoc($id) + { + $o = (new PurchaseOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new PurchaseOrderItem())->whereAll('po_id', $id); + $body = \App\Core\View::render('psi/purchase_order_print', ['o' => $o, 'items' => $items]); + echo \psi_print_shell('采购订单 ' . $o['order_no'], $body); + } + + private function parseItems(): array + { + $raw = $_POST['items'] ?? []; + $out = []; + foreach ($raw as $row) { + $name = trim((string)($row['name'] ?? '')); + $qty = (int)($row['qty'] ?? 0); + $price = (float)($row['price'] ?? 0); + if ($name === '' || $qty <= 0) continue; + $out[] = [ + 'item_type' => $row['item_type'] === 'product' ? 'product' : 'material', + 'item_id' => (int)($row['item_id'] ?? 0), + 'name' => $name, + 'spec' => trim((string)($row['spec'] ?? '')), + 'unit' => trim((string)($row['unit'] ?? '')), + 'qty' => $qty, + 'price' => $price, + 'amount' => round($qty * $price, 2), + 'received_qty' => 0, + ]; + } + return $out; + } +} diff --git a/app/Controllers/PSI/PurchasesController.php b/app/Controllers/PSI/PurchasesController.php new file mode 100644 index 0000000..499c933 --- /dev/null +++ b/app/Controllers/PSI/PurchasesController.php @@ -0,0 +1,71 @@ +all(); + $suppliers = (new Supplier())->all(); + $smap = []; + foreach ($suppliers as $s) { $smap[$s['id']] = $s['name']; } + return $this->renderSubsys('psi', 'psi/purchases', ['purchases' => $purchases, 'smap' => $smap], \psi_nav(), 'purchases'); + } + + public function create() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + $suppliers = (new Supplier())->all(); + $materials = (new \App\Models\PSI\Material())->all(); + $products = (new \App\Models\PSI\Product())->all(); + return $this->renderSubsys('psi', 'psi/purchase_form', [ + 'purchase' => null, 'suppliers' => $suppliers, + 'materials' => $materials, 'products' => $products, + ], \psi_nav(), 'purchases'); + } + + public function store() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/purchases'); + $itemType = $this->post('item_type') === 'product' ? 'product' : 'material'; + $itemId = (int)$this->post('item_id'); + $qty = (float)$this->post('qty'); + $price = (float)$this->post('price'); + if ($itemId <= 0 || $qty <= 0) { $this->flash('请选择有效的物料/成品并填写数量'); return $this->redirect('PSI/purchases'); } + $no = 'PI' . date('Ymd') . '-' . substr(uniqid(), -4); + (new Purchase())->insert([ + 'order_no' => $no, + 'supplier_id' => (int)$this->post('supplier_id'), + 'item_type' => $itemType, + 'item_id' => $itemId, + 'qty' => $qty, + 'price' => $price, + 'amount' => $qty * $price, + 'status' => 'stocked', + 'batch_no' => trim($this->post('batch_no')), + 'expected_at' => trim($this->post('expected_at')), + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d'), + ]); + $this->adjustStock($itemType, $itemId, $qty, 'in', $no, trim($this->post('batch_no'))); + $this->flash('采购入库成功,库存已更新', 'ok'); + return $this->redirect('PSI/purchases'); + } + + public function destroy($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + (new Purchase())->delete($id); + return $this->redirect('PSI/purchases'); + } +} diff --git a/app/Controllers/PSI/RemindersController.php b/app/Controllers/PSI/RemindersController.php new file mode 100644 index 0000000..cb72afb --- /dev/null +++ b/app/Controllers/PSI/RemindersController.php @@ -0,0 +1,111 @@ +create(); + return; + } + if ($action === 'mark' && $id > 0) { + $this->markRead($id); + return; + } + if ($action === 'markAll') { + $this->markAll(); + return; + } + $this->index(); + } + + public function index(): void + { + if (!subsys_user('psi')) { http_response_code(403); echo '无权限'; return; } + + $events = (new Event())->all(); + $events = array_reverse($events); // 最新在前 + $uid = (int) ($_SESSION['admin_uid'] ?? 0); + $unread = 0; + foreach ($events as &$ev) { + $read = json_decode($ev['read_by'] ?? '[]', true) ?: []; + $ev['_read'] = in_array($uid, $read, true); + if (!$ev['_read']) $unread++; + } + + $this->renderSubsys('psi', 'psi/reminders', [ + 'events' => $events, + 'unread' => $unread, + ], \psi_nav(), 'reminders'); + } + + public function markRead(int $id): void + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { $this->redirect('PSI/reminders'); } + if (!subsys_user('psi')) { http_response_code(403); return; } + $uid = (int) ($_SESSION['admin_uid'] ?? 0); + $ev = (new Event())->find($id); + if ($ev) { + $read = json_decode($ev['read_by'] ?? '[]', true) ?: []; + if (!in_array($uid, $read, true)) { + $read[] = $uid; + (new Event())->update($id, ['read_by' => json_encode($read, JSON_UNESCAPED_UNICODE)]); + } + } + $this->redirect('PSI/reminders'); + } + + public function markAll(): void + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { $this->redirect('PSI/reminders'); } + if (!subsys_user('psi')) { http_response_code(403); return; } + $uid = (int) ($_SESSION['admin_uid'] ?? 0); + $events = (new Event())->all(); + foreach ($events as $ev) { + $read = json_decode($ev['read_by'] ?? '[]', true) ?: []; + if (!in_array($uid, $read, true)) { + $read[] = $uid; + (new Event())->update($ev['id'], ['read_by' => json_encode($read, JSON_UNESCAPED_UNICODE)]); + } + } + $this->redirect('PSI/reminders'); + } + + /** 手动发起一条紧急提醒(通知负责人) */ + public function create(): void + { + if (!subsys_user('psi')) { http_response_code(403); echo '无权限'; return; } + + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (!csrf_check()) { $this->flash('表单已过期,请重试', 'err'); $this->redirect('PSI/reminders'); } + $title = trim($this->post('title', '')); + $body = trim($this->post('body', '')); + if ($title === '') { $this->flash('请填写提醒标题', 'err'); $this->redirect('PSI/reminders'); } + Notify::fire('manual', $title, $body ?: $title, [ + 'level' => 'urgent', 'url' => 'PSI/reminders', + ]); + $this->flash('已发起紧急提醒,并已通知相关负责人', 'ok'); + $this->redirect('PSI/reminders'); + } + + $this->renderSubsys('psi', 'psi/reminder_form', [ + 'title' => '', 'body' => '', + ], \psi_nav(), 'reminders'); + } +} diff --git a/app/Controllers/PSI/ReportsController.php b/app/Controllers/PSI/ReportsController.php new file mode 100644 index 0000000..247b4ab --- /dev/null +++ b/app/Controllers/PSI/ReportsController.php @@ -0,0 +1,93 @@ +renderSubsys('psi', 'psi/reports', [ + 'poCount' => count((new PurchaseOrder())->all()), + 'soCount' => count((new SalesOrder())->all()), + 'obCount' => count((new Outbound())->all()), + ], \psi_nav(), 'reports'); + } + + /** 采购订单明细 */ + public function poDetail() + { + $orders = array_reverse((new PurchaseOrder())->all()); + $itemM = new PurchaseOrderItem(); + foreach ($orders as &$o) { $o['_items'] = $itemM->whereAll('po_id', $o['id']); } + return $this->renderSubsys('psi', 'psi/report_po_detail', ['orders' => $orders], \psi_nav(), 'reports'); + } + + /** 销售 / 采购订单明细(合并筛选) */ + public function soPo() + { + $type = $this->get('type', 'all'); + $so = $po = []; + if ($type !== 'purchase') { + $so = array_reverse((new SalesOrder())->all()); + $soItemM = new SalesOrderItem(); + foreach ($so as &$o) { + $o['_items'] = $soItemM->whereAll('so_id', $o['id']); + $o['_amt'] = array_sum(array_map(fn($i) => (float)($i['amount'] ?? 0), $o['_items'])); + } + } + if ($type !== 'sales') { + $po = array_reverse((new PurchaseOrder())->all()); + $poItemM = new PurchaseOrderItem(); + foreach ($po as &$o) { + $o['_items'] = $poItemM->whereAll('po_id', $o['id']); + $o['_amt'] = array_sum(array_map(fn($i) => (float)($i['amount'] ?? 0), $o['_items'])); + } + } + return $this->renderSubsys('psi', 'psi/report_so_po', [ + 'type' => $type, 'so' => $so, 'po' => $po, + ], \psi_nav(), 'reports'); + } + + /** 交付明细:出库单 + 销售订单交付进度(应发/已发/未发) */ + public function delivery() + { + $list = array_reverse((new Outbound())->all()); + $obItemM = new OutboundItem(); + foreach ($list as &$o) { $o['_items'] = $obItemM->whereAll('ob_id', $o['id']); } + + $soList = (new SalesOrder())->all(); + $soItemM = new SalesOrderItem(); + $progress = []; + foreach ($soList as $so) { + $items = $soItemM->whereAll('so_id', $so['id']); + $ordered = array_sum(array_map(fn($i) => (int)($i['qty'] ?? 0), $items)); + $delivered = array_sum(array_map(fn($i) => (int)($i['delivered_qty'] ?? 0), $items)); + $amt = array_sum(array_map(fn($i) => (float)($i['amount'] ?? 0), $items)); + if ($ordered <= 0) continue; + $progress[] = [ + 'order_no' => $so['order_no'], + 'customer' => $so['customer'], + 'salesman' => $so['salesman'], + 'status' => $so['status'], + 'ordered' => $ordered, + 'delivered' => $delivered, + 'remain' => max(0, $ordered - $delivered), + 'amount' => $amt, + ]; + } + return $this->renderSubsys('psi', 'psi/report_delivery', [ + 'list' => $list, 'progress' => $progress, + ], \psi_nav(), 'reports'); + } +} diff --git a/app/Controllers/PSI/SalesController.php b/app/Controllers/PSI/SalesController.php new file mode 100644 index 0000000..750bbb8 --- /dev/null +++ b/app/Controllers/PSI/SalesController.php @@ -0,0 +1,110 @@ +all(); + return $this->renderSubsys('psi', 'psi/sales', ['sales' => $sales], \psi_nav(), 'sales'); + } + + public function create() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + $materials = (new \App\Models\PSI\Material())->all(); + $products = (new \App\Models\PSI\Product())->all(); + return $this->renderSubsys('psi', 'psi/sale_form', [ + 'sale' => null, 'materials' => $materials, 'products' => $products, + ], \psi_nav(), 'sales'); + } + + public function store() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/sales'); + $itemType = $this->post('item_type') === 'material' ? 'material' : 'product'; + $itemId = (int)$this->post('item_id'); + $qty = (float)$this->post('qty'); + $price = (float)$this->post('price'); + if ($itemId <= 0 || $qty <= 0) { $this->flash('请选择有效的成品/物料并填写数量'); return $this->redirect('PSI/sales'); } + $model = $itemType === 'product' ? new Product() : new Material(); + $item = $model->find($itemId); + if (!$item || (float)($item['stock'] ?? 0) < $qty) { + $this->flash('库存不足,无法出库(当前库存:' . (isset($item) ? (float)$item['stock'] : 0) . ')'); + return $this->redirect('PSI/sales'); + } + $no = 'SO' . date('Ymd') . '-' . substr(uniqid(), -4); + $saleId = (new Sales())->insert([ + 'order_no' => $no, + 'customer' => trim($this->post('customer')), + 'channel' => $this->post('channel') === 'export' ? 'export' : 'domestic', + 'region' => trim($this->post('region')), + 'item_id' => $itemId, + 'item_type' => $itemType, + 'qty' => $qty, + 'price' => $price, + 'amount' => $qty * $price, + 'status' => 'shipped', + 'batch_no' => trim($this->post('batch_no')), + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d'), + ]); + $this->adjustStock($itemType, $itemId, $qty, 'out', $no, trim($this->post('batch_no'))); + $this->flash('销售出库成功,库存已扣减', 'ok'); + if ($this->post('auto_print', '1') !== '0') { + return $this->redirect('PSI/sales/print/' . $saleId); + } + return $this->redirect('PSI/sales'); + } + + public function show($id) + { + $sale = (new Sales())->find($id); + if (!$sale) { \Core\App::notFound('销售记录不存在'); return; } + $itemInfo = $this->lookupItem($sale['item_id'] ?? 0, $sale['item_type'] ?? ''); + return $this->renderSubsys('psi', 'psi/sales_show', [ + 's' => $sale, + 'item' => $itemInfo, + ], \psi_nav(), 'sales'); + } + + public function printDoc($id) + { + $sale = (new Sales())->find($id); + if (!$sale) { \Core\App::notFound('销售记录不存在'); return; } + $itemInfo = $this->lookupItem($sale['item_id'] ?? 0, $sale['item_type'] ?? ''); + $body = \Core\View::buffer('psi/sales_print', ['s' => $sale, 'item' => $itemInfo]); + echo \psi_print_shell('销售出库单 - ' . e($sale['order_no']), $body); + } + + /** 尝试从成品表或物料表查找物品信息 */ + private function lookupItem(int $itemId, string $itemType = ''): array + { + if ($itemId <= 0) return ['name' => '—', 'spec' => '', 'unit' => '']; + if ($itemType === 'material') { + $row = (new Material())->find($itemId); + } else { + $row = (new Product())->find($itemId) ?: (new Material())->find($itemId); + } + if ($row) return ['name' => $row['name'] ?? '—', 'spec' => $row['spec'] ?? '', 'unit' => $row['unit'] ?? '']; + return ['name' => '—', 'spec' => '', 'unit' => '']; + } + + public function destroy($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + (new Sales())->delete($id); + return $this->redirect('PSI/sales'); + } +} diff --git a/app/Controllers/PSI/SalesOrdersController.php b/app/Controllers/PSI/SalesOrdersController.php new file mode 100644 index 0000000..e464931 --- /dev/null +++ b/app/Controllers/PSI/SalesOrdersController.php @@ -0,0 +1,156 @@ +all(); // id 升序 + $orders = array_reverse($orders); // 最新在前 + $itemM = new SalesOrderItem(); + foreach ($orders as &$o) { + $o['_items'] = $itemM->whereAll('so_id', $o['id']); + } + return $this->renderSubsys('psi', 'psi/sales_orders', ['orders' => $orders], \psi_nav(), 'sales_orders'); + } + + public function create() + { + $products = (new Product())->all(); + return $this->renderSubsys('psi', 'psi/sales_order_form', [ + 'o' => null, 'items' => [], 'products' => $products, + ], \psi_nav(), 'sales_orders'); + } + + public function store() + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) return $this->redirect('PSI/sales_orders/create'); + $items = $this->parseItems(); + if (empty($items)) { $this->flash('请至少添加一条商品明细', 'err'); return $this->redirect('PSI/sales_orders/create'); } + $id = (new SalesOrder())->insert([ + 'order_no' => $oNo = \psi_gen_no('SO'), + 'customer' => $cust = trim($this->post('customer')), + 'salesman' => $sales = trim($this->post('salesman')) ?: ($_SESSION['admin_name'] ?? ''), + 'channel' => $this->post('channel') === 'export' ? 'export' : 'domestic', + 'region' => trim($this->post('region')), + 'delivery_date' => $this->post('delivery_date') ?: null, + 'remark' => trim($this->post('remark')), + 'status' => 'pending', + 'created_at' => date('Y-m-d H:i:s'), + ]); + $itemM = new SalesOrderItem(); + foreach ($items as $it) { $it['so_id'] = $id; $itemM->insert($it); } + \Core\Notify::newSalesOrder($oNo, $cust, $sales, $id); + $this->flash('销售订单已创建', 'ok'); + if ($this->post('auto_print', '1') !== '0') { + return $this->redirect('PSI/sales_orders/print/' . $id); + } + return $this->redirect('PSI/sales_orders/show/' . $id); + } + + public function show($id) + { + $o = (new SalesOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new SalesOrderItem())->whereAll('so_id', $id); + return $this->renderSubsys('psi', 'psi/sales_order_show', [ + 'o' => $o, 'items' => $items, + ], \psi_nav(), 'sales_orders'); + } + + public function edit($id) + { + $o = (new SalesOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new SalesOrderItem())->whereAll('so_id', $id); + $products = (new Product())->all(); + return $this->renderSubsys('psi', 'psi/sales_order_form', [ + 'o' => $o, 'items' => $items, 'products' => $products, + ], \psi_nav(), 'sales_orders'); + } + + public function update($id) + { + if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !csrf_check()) return $this->redirect('PSI/sales_orders/edit/' . $id); + $o = (new SalesOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = $this->parseItems(); + if (empty($items)) { $this->flash('请至少添加一条商品明细', 'err'); return $this->redirect('PSI/sales_orders/edit/' . $id); } + + (new SalesOrder())->update($id, [ + 'customer' => trim($this->post('customer')), + 'salesman' => trim($this->post('salesman')) ?: ($_SESSION['admin_name'] ?? ''), + 'channel' => $this->post('channel') === 'export' ? 'export' : 'domestic', + 'region' => trim($this->post('region')), + 'delivery_date' => $this->post('delivery_date') ?: null, + 'remark' => trim($this->post('remark')), + ]); + + // 保留已交付数量(delivered_qty)避免覆盖出库记录 + $old = (new SalesOrderItem())->whereAll('so_id', $id); + $delivered = []; + foreach ($old as $oi) { $delivered[($oi['product_id'] ?? 0) . '|' . $oi['name']] = (int)($oi['delivered_qty'] ?? 0); } + (new SalesOrderItem())->deleteRaw('so_id', $id); + foreach ($items as $it) { + $key = ($it['product_id'] ?? 0) . '|' . $it['name']; + $it['delivered_qty'] = $delivered[$key] ?? 0; + $it['so_id'] = $id; + (new SalesOrderItem())->insert($it); + } + \psi_recompute_so($id); + $this->flash('销售订单已更新', 'ok'); + return $this->redirect('PSI/sales_orders/show/' . $id); + } + + public function destroy($id) + { + if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { + (new SalesOrderItem())->deleteRaw('so_id', $id); + (new SalesOrder())->delete($id); + $this->flash('销售订单已删除', 'ok'); + } + return $this->redirect('PSI/sales_orders'); + } + + public function printDoc($id) + { + $o = (new SalesOrder())->find($id); + if (!$o) { \Core\App::notFound(); return; } + $items = (new SalesOrderItem())->whereAll('so_id', $id); + $body = \App\Core\View::render('psi/sales_order_print', ['o' => $o, 'items' => $items]); + echo \psi_print_shell('销售订单 ' . $o['order_no'], $body); + } + + /** 解析提交的商品明细行 */ + private function parseItems(): array + { + $raw = $_POST['items'] ?? []; + $out = []; + foreach ($raw as $row) { + $name = trim((string)($row['name'] ?? '')); + $qty = (int)($row['qty'] ?? 0); + $price = (float)($row['price'] ?? 0); + if ($name === '' || $qty <= 0) continue; + $out[] = [ + 'product_id' => (int)($row['product_id'] ?? 0), + 'name' => $name, + 'spec' => trim((string)($row['spec'] ?? '')), + 'unit' => trim((string)($row['unit'] ?? '')), + 'qty' => $qty, + 'price' => $price, + 'amount' => round($qty * $price, 2), + 'delivered_qty' => 0, + ]; + } + return $out; + } +} diff --git a/app/Controllers/PSI/StockController.php b/app/Controllers/PSI/StockController.php new file mode 100644 index 0000000..88d19c6 --- /dev/null +++ b/app/Controllers/PSI/StockController.php @@ -0,0 +1,23 @@ +all(); + $moves = array_reverse($moves); + $nameMap = []; + foreach ((new Material())->all() as $m) { $nameMap['material:' . $m['id']] = $m['name']; } + foreach ((new Product())->all() as $p) { $nameMap['product:' . $p['id']] = $p['name']; } + return $this->renderSubsys('psi', 'psi/stock', ['moves' => $moves, 'nameMap' => $nameMap], \psi_nav(), 'stock'); + } +} diff --git a/app/Controllers/PSI/StockHelper.php b/app/Controllers/PSI/StockHelper.php new file mode 100644 index 0000000..3fc817d --- /dev/null +++ b/app/Controllers/PSI/StockHelper.php @@ -0,0 +1,42 @@ +find($itemId); + if (!$item) return; + $cur = (float)($item['stock'] ?? 0); + $new = $direction === 'in' ? $cur + $qty : max(0, $cur - $qty); + $model->update($itemId, ['stock' => $new]); + (new StockMove())->insert([ + 'item_type' => $itemType, + 'item_id' => $itemId, + 'direction' => $direction, + 'qty' => $qty, + 'ref_no' => $refNo, + 'batch_no' => $batchNo, + 'remark' => '', + 'created_at' => date('Y-m-d'), + ]); + + // 低库存预警:仅当出库且跌破阈值时触发(避免重复骚扰) + $threshold = \Core\Notify::lowStockThreshold(); + if (\Core\Notify::lowStockEnabled() + && $direction === 'out' + && $new <= $threshold + && $cur > $threshold) { + \Core\Notify::lowStockEvent($itemType, $item['name'] ?? '', $new, $threshold, $itemId); + } + } +} diff --git a/app/Controllers/PSI/SuppliersController.php b/app/Controllers/PSI/SuppliersController.php new file mode 100644 index 0000000..0af29f2 --- /dev/null +++ b/app/Controllers/PSI/SuppliersController.php @@ -0,0 +1,72 @@ +all(); + return $this->renderSubsys('psi', 'psi/suppliers', ['suppliers' => $suppliers], \psi_nav(), 'suppliers'); + } + + public function create() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + return $this->renderSubsys('psi', 'psi/supplier_form', ['supplier' => null], \psi_nav(), 'suppliers'); + } + + public function store() + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/suppliers'); + (new Supplier())->insert($this->collect()); + return $this->redirect('PSI/suppliers'); + } + + public function edit($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + $supplier = (new Supplier())->find($id); + if (!$supplier) return $this->redirect('PSI/suppliers'); + return $this->renderSubsys('psi', 'psi/supplier_form', ['supplier' => $supplier], \psi_nav(), 'suppliers'); + } + + public function update($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + if (!csrf_check()) return $this->redirect('PSI/suppliers'); + $supplier = (new Supplier())->find($id); + if (!$supplier) return $this->redirect('PSI/suppliers'); + (new Supplier())->update($id, $this->collect()); + return $this->redirect('PSI/suppliers'); + } + + public function destroy($id) + { + subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); + (new Supplier())->delete($id); + return $this->redirect('PSI/suppliers'); + } + + private function collect(): array + { + return [ + 'name' => trim($this->post('name')), + 'contact' => trim($this->post('contact')), + 'phone' => trim($this->post('phone')), + 'country' => trim($this->post('country')), + 'type' => trim($this->post('type')), + 'grade' => trim($this->post('grade')), + 'ontime_rate'=> (float)$this->post('ontime_rate'), + 'qc_rate' => (float)$this->post('qc_rate'), + 'remark' => trim($this->post('remark')), + 'created_at' => date('Y-m-d'), + ]; + } +} diff --git a/app/Controllers/PSI/UsersController.php b/app/Controllers/PSI/UsersController.php new file mode 100644 index 0000000..c80859d --- /dev/null +++ b/app/Controllers/PSI/UsersController.php @@ -0,0 +1,12 @@ +bySlug($slug); + if (!$p) { \Core\App::notFound(); return ''; } + + $pTitle = e($p['title'] ?? '页面'); + $pSummary = mb_substr(strip_tags($p['summary'] ?? $p['body'] ?? ''), 0, 160); + + $seo = page_seo($slug, [ + 'title' => $pTitle, + 'description' => $pSummary, + 'keywords' => '', + 'og_type' => 'article', + ]); + return $this->view('page/show', [ + 'pageSeo' => [ + 'title' => $seo['title'], + 'description' => $seo['description'], + 'keywords' => $seo['keywords'], + 'og_type' => $seo['og_type'] ?: 'article', + 'og_image' => $seo['og_image'], + 'canonical' => $seo['canonical'], + 'noindex' => $seo['noindex'], + 'breadcrumb' => [ + ['name' => '首页', 'url' => site_url()], + ['name' => $p['title'] ?? '页面', 'url' => absolute_url()], + ], + ], + 'p' => $p, + ]); + } +} diff --git a/app/Controllers/PayController.php b/app/Controllers/PayController.php new file mode 100644 index 0000000..dfee111 --- /dev/null +++ b/app/Controllers/PayController.php @@ -0,0 +1,43 @@ +verifyNotify($_POST); + if ($no) { + OrderService::markPaid($no, $_POST['trade_no'] ?? '', 'alipay'); + echo 'success'; + } else { + echo 'fail'; + } + } elseif ($channel === 'wechat') { + $xml = file_get_contents('php://input'); + $data = $this->xmlToArray($xml); + $gw = GatewayFactory::make('wechat'); + $no = $gw->verifyNotify($data); + if ($no) { + OrderService::markPaid($no, $data['transaction_id'] ?? '', 'wechat'); + echo ''; + } else { + echo ''; + } + } else { + echo 'invalid'; + } + exit; + } + + private function xmlToArray($xml) + { + $r = @simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); + return $r ? json_decode(json_encode($r), true) : []; + } +} diff --git a/app/Controllers/ProductController.php b/app/Controllers/ProductController.php new file mode 100644 index 0000000..8dd5f3a --- /dev/null +++ b/app/Controllers/ProductController.php @@ -0,0 +1,132 @@ +byCategory($catId) + : array_filter($product->all(), fn($p) => ($p['status'] ?? 1) == 1); + $cat = $catId ? $category->find($catId) : null; + + $catName = $cat['name'] ?? ''; + if ($cat) { + $seo = page_seo('product_category', [ + 'title' => $catName . '降温服 - 酷冰甲科技降温·定制批发', + 'description' => "酷冰甲{$catName}系列降温服,采用科技降温方案,专为高温作业与户外暴晒场景设计,具备清凉持久、轻便透气、可循环重复使用等特点。支持企业定制、LOGO刺绣与小批量批发,10套起订,7天打样,全国发货。", + 'keywords' => $catName . '降温服,' . $catName . ',降温服定制,降温背心,工业降温,酷冰甲', + ]); + foreach (['title', 'description', 'keywords'] as $f) { + $seo[$f] = str_replace('{cat}', $catName, $seo[$f]); + } + } else { + $seo = page_seo('products', [ + 'title' => '降温服产品中心 - 水冷/相变/风冷多系列 | 酷冰甲', + 'description' => '酷冰甲降温服产品中心,系统展示水冷循环降温服、相变冰袋降温背心、风冷制冷背心、冰马甲等多系列产品,按使用场景与降温方式分类,参数规格与适用行业一目了然。支持企业批量定制、LOGO刺绣与免费拿样,提供专业选型建议与透明报价,助力高温作业安全防护。', + 'keywords' => '降温服产品,水冷降温服,相变降温服,风冷降温服,制冷背心,冰马甲,工业降温装备,降温服批发,降温服定制,酷冰甲产品', + ]); + } + $pageTitle = $catName ? $catName . ' - 产品中心' : '产品中心'; + $pageDesc = $catName ? str_replace('{cat}', $catName, "酷冰甲{cat}系列降温服,科技降温,清凉定制。") : '酷冰甲全系列降温服产品:水冷循环、相变蓄冷、涡扇风冷、工业降温工装,支持小批量定制。'; + + return $this->view('product/index', [ + 'pageSeo' => [ + 'title' => $seo['title'], + 'description' => $seo['description'], + 'keywords' => $seo['keywords'], + 'og_type' => 'website', + 'og_image' => $seo['og_image'], + 'canonical' => $seo['canonical'], + 'noindex' => $seo['noindex'], + 'breadcrumb' => $catName ? [ + ['name' => '首页', 'url' => site_url()], + ['name' => '产品中心', 'url' => site_url('products')], + ['name' => $catName, 'url' => absolute_url()], + ] : null, + ], + 'products' => $products, + 'categories'=> $category->all(), + 'activeCat' => $catId, + 'cat' => $cat, + ]); + } + + public function show($slug) + { + $product = new Product(); + $p = $product->where('slug', $slug); + if (!$p && is_numeric($slug)) { $p = $product->find((int)$slug); } + if (!$p) { \Core\App::notFound(); return ''; } + + $category = new Category(); + $cat = $category->find($p['category_id'] ?? 0); + $related = array_filter($product->byCategory($p['category_id'] ?? 0), fn($x) => $x['id'] != $p['id']); + + $pName = e($p['name'] ?? '产品详情'); + $pSummary = mb_substr(strip_tags($p['summary'] ?? $p['body'] ?? ''), 0, 160); + $pImage = $p['cover'] ?? ''; + $pPrice = $p['price'] ?? ''; + $pSku = $p['sku'] ?? ($p['model'] ?? ''); + + // ── Product JSON-LD Schema ── + $productSchema = ''; + + // ── 产品页 FAQ(可见文本 + FAQPage JSON-LD,GEO 信号)──── + $faqs = [ + ['q' => '这款降温服采用什么降温原理?', 'a' => '根据系列不同,分别采用水冷循环、相变蓄冷或涡扇风冷原理散热:水冷通过微型水泵驱动冷水循环带走体热,相变依靠冰袋/凝胶融化吸热,风冷由风扇强制对流降温。详情可在商品规格表中查看对应方案。'], + ['q' => '一次可使用多长时间?', 'a' => '相变冰袋方案单组可持续 2–4 小时,可随用随换;水冷与风冷方案续航取决于电池容量,具体以商品规格为准,支持备用电池延长作业时间。'], + ['q' => '是否支持企业定制与 LOGO 刺绣?', 'a' => '支持。提供企业 LOGO 绣字、颜色与面料定制、一人一码量体服务,10 套起订,确认图纸后 7 天打样、约 28 天批量交付。'], + ['q' => '如何选择合适的尺码?', 'a' => '提供标准尺码表并支持上门量体,下单后可按身高体重推荐尺码;特殊体型或工种可单独打版,确保合身与活动便利。'], + ]; + $faqSchema = ''; + + return $this->view('product/show', [ + 'pageSeo' => [ + 'title' => $pName, + 'description' => $pSummary, + 'og_type' => 'product', + 'og_image' => $pImage, + 'breadcrumb' => [ + ['name' => '首页', 'url' => site_url()], + ['name' => '产品中心', 'url' => site_url('products')], + ['name' => $p['name'] ?? '产品', 'url' => absolute_url()], + ], + 'jsonld' => $productSchema . $faqSchema, + ], + 'p' => $p, + 'cat' => $cat, + 'related' => array_slice($related, 0, 3), + 'specs' => $product->specsArray($p), + 'faqs' => $faqs, + ]); + } +} diff --git a/app/Controllers/Subsys/UsersController.php b/app/Controllers/Subsys/UsersController.php new file mode 100644 index 0000000..47d760e --- /dev/null +++ b/app/Controllers/Subsys/UsersController.php @@ -0,0 +1,256 @@ +sys() === 'psi' ? 'PSI 进销存' : 'CRM 客户管理'; + } + + private function nav(): array + { + return \subsys_nav($this->sys()); + } + + public function index() + { + $sys = $this->sys(); + $other = $sys === 'crm' ? 'psi' : 'crm'; + $col = $sys . '_role'; + $rows = Db::query("SELECT * FROM admin_users WHERE `{$col}` != 'none' ORDER BY id ASC")->fetchAll(); + // 子系统管理员仅管理「本系统的用户」,严格执行边界隔离: + // - 不可越权操作后台超管 / 全局管理员; + // - 不可跨界看到 / 管理另一系统(CRM 看不到 PSI,PSI 看不到 CRM)。 + if (admin_role() !== 'super_admin') { + $rows = array_filter($rows, static function ($r) use ($other) { + // 排除后台超管 / 全局管理员 + if (in_array($r['role'] ?? 'none', ['super_admin', 'admin'], true)) return false; + // 排除另一系统的管理员(防跨界) + if (($r[$other . '_role'] ?? 'none') === 'admin') return false; + return true; + }); + } + return $this->renderSubsys($sys, 'subsys/users', [ + 'users' => $rows, + 'sysName' => $this->sysName(), + 'pages' => \subsys_pages($sys), + 'sys' => $sys, + ], $this->nav(), 'users'); + } + + public function create() + { + $sys = $this->sys(); + $user = [ + 'id' => 0, 'username' => '', 'name' => '', 'status' => 1, + $sys . '_role' => 'user', + $sys . '_perms' => '', + ]; + return $this->renderSubsys($sys, 'subsys/user_form', [ + 'user' => $user, + 'sysName'=> $this->sysName(), + 'pages' => \subsys_pages($sys), + 'sys' => $sys, + 'edit' => false, + ], $this->nav(), 'users'); + } + + public function store() + { + $sys = $this->sys(); + $upper = strtoupper($sys); + if (!csrf_check()) { + $this->flash('表单已过期,请重试', 'err'); + return $this->redirect($upper . '/users/create'); + } + $username = trim($this->post('username')); + $name = trim($this->post('name')); + $pwd = $this->post('password'); + $role = $this->post($sys . '_role') === 'admin' ? 'admin' : 'user'; + $perms = $this->collectPerms($sys); + $status = $this->post('status') === '0' ? 0 : 1; + + if ($username === '' || $pwd === '') { + $this->flash('用户名和密码不能为空', 'err'); + return $this->redirect($upper . '/users/create'); + } + if (!preg_match('/^[a-zA-Z0-9_]{3,30}$/', $username)) { + $this->flash('账号须为 3-30 位字母/数字/下划线', 'err'); + return $this->redirect($upper . '/users/create'); + } + if (strlen($pwd) < 6) { + $this->flash('密码至少 6 位', 'err'); + return $this->redirect($upper . '/users/create'); + } + if ((new AdminUser())->byUsername($username)) { + $this->flash('用户名已存在', 'err'); + return $this->redirect($upper . '/users/create'); + } + + (new AdminUser())->insert([ + 'username' => $username, + 'password' => password_hash($pwd, PASSWORD_DEFAULT), + 'name' => $name, + 'role' => 'none', // 子系统账号:全局后台角色为 none + $sys . '_role' => $role, + $sys . '_perms' => json_encode($perms, JSON_UNESCAPED_UNICODE), + 'status' => $status, + 'created_at' => date('Y-m-d H:i:s'), + ]); + $this->flash('用户已创建', 'ok'); + return $this->redirect($upper . '/users'); + } + + public function edit($id) + { + $sys = $this->sys(); + $user = (new AdminUser())->find($id); + if (!$user || !$this->manageable($user)) { + return $this->redirect(strtoupper($sys) . '/users'); + } + return $this->renderSubsys($sys, 'subsys/user_form', [ + 'user' => $user, + 'sysName'=> $this->sysName(), + 'pages' => \subsys_pages($sys), + 'sys' => $sys, + 'edit' => true, + ], $this->nav(), 'users'); + } + + public function update($id) + { + $sys = $this->sys(); + $upper = strtoupper($sys); + if (!csrf_check()) { + $this->flash('表单已过期,请重试', 'err'); + return $this->redirect($upper . '/users'); + } + $user = (new AdminUser())->find($id); + if (!$user || !$this->manageable($user)) { + $this->flash('无权操作该用户', 'err'); + return $this->redirect($upper . '/users'); + } + $username = trim($this->post('username')); + $name = trim($this->post('name')); + $pwd = $this->post('password'); + $role = $this->post($sys . '_role') === 'admin' ? 'admin' : 'user'; + $perms = $this->collectPerms($sys); + $status = $this->post('status') === '0' ? 0 : 1; + + if ($username === '' || !preg_match('/^[a-zA-Z0-9_]{3,30}$/', $username)) { + $this->flash('账号不合法', 'err'); + return $this->redirect($upper . '/users/edit/' . $id); + } + $existing = (new AdminUser())->byUsername($username); + if ($existing && (int)$existing['id'] !== (int)$id) { + $this->flash('用户名已存在', 'err'); + return $this->redirect($upper . '/users/edit/' . $id); + } + if ($pwd !== '' && strlen($pwd) < 6) { + $this->flash('密码至少 6 位', 'err'); + return $this->redirect($upper . '/users/edit/' . $id); + } + + $data = [ + 'username' => $username, + 'name' => $name, + $sys . '_role' => $role, + $sys . '_perms' => json_encode($perms, JSON_UNESCAPED_UNICODE), + 'status' => $status, + ]; + if ($pwd !== '') { + $data['password'] = password_hash($pwd, PASSWORD_DEFAULT); + } + (new AdminUser())->update($id, $data); + $this->flash('用户已更新', 'ok'); + return $this->redirect($upper . '/users'); + } + + public function destroy($id) + { + $sys = $this->sys(); + $upper = strtoupper($sys); + if (!csrf_check()) { + $this->flash('操作已失效,请重试', 'err'); + return $this->redirect($upper . '/users'); + } + $user = (new AdminUser())->find($id); + if (!$user || !$this->manageable($user) || (int)$user['id'] === (int)admin_uid()) { + $this->flash('无法删除该用户', 'err'); + return $this->redirect($upper . '/users'); + } + (new AdminUser())->delete($id); + $this->flash('用户已删除', 'ok'); + return $this->redirect($upper . '/users'); + } + + /** 管理员为该用户重置密码 */ + public function reset($id) + { + $sys = $this->sys(); + $upper = strtoupper($sys); + $user = (new AdminUser())->find($id); + if (!$user || !$this->manageable($user)) { + $this->flash('无权操作该用户', 'err'); + return $this->redirect($upper . '/users'); + } + if ($_SERVER['REQUEST_METHOD'] === 'POST') { + if (!csrf_check()) { + $this->flash('表单已过期,请重试', 'err'); + return $this->redirect($upper . '/users/reset/' . $id); + } + $pwd = $this->post('password'); + if ($pwd === '' || strlen($pwd) < 6) { + $this->flash('密码至少 6 位', 'err'); + return $this->redirect($upper . '/users/reset/' . $id); + } + (new AdminUser())->update($id, ['password' => password_hash($pwd, PASSWORD_DEFAULT)]); + $this->flash('密码已重置', 'ok'); + return $this->redirect($upper . '/users'); + } + return $this->renderSubsys($sys, 'subsys/user_reset', [ + 'user' => $user, + 'sysName'=> $this->sysName(), + 'sys' => $sys, + ], $this->nav(), 'users'); + } + + /** 收集页面权限:返回 {page: bool} 形式(与后台 UserController 一致,登录时按 JSON 解码) */ + private function collectPerms(string $sys): array + { + $out = []; + foreach (\subsys_pages($sys) as $p) { + if ($p === 'dashboard') continue; + $out[$p] = $this->post('perm_' . $p) ? true : false; + } + return $out; + } + + /** 当前登录管理员是否可管理该目标用户(严格边界隔离:只管本系统用户,禁止跨界) */ + private function manageable(array $target): bool + { + if (admin_role() === 'super_admin') return true; + $sys = $this->sys(); + $other = $sys === 'crm' ? 'psi' : 'crm'; + // 不能管理后台超管 / 全局管理员 + if (in_array($target['role'] ?? 'none', ['super_admin', 'admin'], true)) return false; + // 只能管理本系统用户 + if (($target[$sys . '_role'] ?? 'none') === 'none') return false; + // 不能跨界管理另一系统的管理员(CRM 管不了 PSI,PSI 管不了 CRM) + if (($target[$other . '_role'] ?? 'none') === 'admin') return false; + return true; + } +} diff --git a/app/Core/App.php b/app/Core/App.php new file mode 100644 index 0000000..d15f791 --- /dev/null +++ b/app/Core/App.php @@ -0,0 +1,407 @@ + true, + 'cookie_samesite' => 'Lax', + 'cookie_secure' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'), // HTTPS 下仅安全传输 + ]); + } + + // 2. 自动加载(Core / App\Controllers / App\Models) + spl_autoload_register(function ($class) { + $prefixes = [ + 'Core\\' => BASE_PATH . '/app/Core/', + 'App\\Controllers\\' => BASE_PATH . '/app/Controllers/', + 'App\\Models\\' => BASE_PATH . '/app/Models/', + ]; + foreach ($prefixes as $prefix => $base) { + if (strncmp($class, $prefix, strlen($prefix)) === 0) { + $rel = substr($class, strlen($prefix)); + $file = $base . str_replace('\\', '/', $rel) . '.php'; + if (is_file($file)) { require $file; return true; } + } + } + return false; + }); + } + + public static function run() + { + self::init(); + self::dispatch(self::parseRoute()); + } + + /** 解析请求路径为段数组 */ + public static function parseRoute(): array + { + $uri = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/'; + // 仅当 SCRIPT_NAME 真实以 index.php 结尾时(Apache/生产模式)才剥离目录前缀; + // 内置服务器路由模式下 SCRIPT_NAME 等于请求路径,此时不剥离,避免误删 admin 等段。 + $script = $_SERVER['SCRIPT_NAME'] ?? '/index.php'; + if (substr($script, -strlen('/index.php')) === '/index.php') { + $dir = dirname($script); + if ($dir !== '/' && strpos($uri, $dir) === 0) { + $uri = substr($uri, strlen($dir)); + } + } + $uri = preg_replace('#/index\.php$#i', '', $uri); + $uri = trim($uri, '/'); + if ($uri === '') return []; + return explode('/', $uri); + } + + /** 路由分发 */ + public static function dispatch(array $segments) + { + // 静态资源直出 + $asset = BASE_PATH . '/public/' . implode('/', $segments); + if ($segments && is_file($asset) && !is_dir($asset)) { + self::serveFile($asset); + return; + } + + $admin = self::config('app.admin_path', 'admin'); + if (!empty($segments) && $segments[0] === $admin) { + self::dispatchAdmin(array_slice($segments, 1)); + return; + } + // 分系统入口:CRM 客户管理 / PSI 进销存(统一受 super_admin 与分系统权限管辖) + // 大小写不敏感:/crm、/CRM、/psi、/PSI 均可进入,避免因 URL 大小写不同导致 404 + if (!empty($segments)) { + $seg0 = strtoupper($segments[0]); + if ($seg0 === 'CRM' || $seg0 === 'PSI') { + self::dispatchSubsys($seg0, array_slice($segments, 1)); + return; + } + } + self::dispatchFront($segments); + } + + private static function dispatchSubsys(string $raw, array $s) + { + $sys = strtoupper($raw); // CRM / PSI + $sysKey = $sys === 'PSI' ? 'psi' : 'crm'; + // 未登录或无该系统角色:拦截(拥有 crm/psi 任意角色即可进入;写操作由各 Controller 的 subsys_admin 二次把关) + if (!subsys_can_enter($sysKey)) { + self::forbidden('您没有访问「' . $sys . '」系统的权限'); + return; + } + // 统一入口:CRM\DashboardController / PSI\DashboardController 内部再做子路由 + $ctrl = 'App\\Controllers\\' . $sys . '\\DashboardController'; + $action = 'dispatch'; + if (!class_exists($ctrl)) { self::notFound("系统不存在: $sys"); return; } + $instance = new $ctrl(); + if (!method_exists($instance, $action)) { self::notFound("入口不存在: $action"); return; } + try { + $html = call_user_func_array([$instance, $action], [$s]); + } catch (\Throwable $e) { + // 子系统异常兜底:保留左导 + 右框,框内显示错误,绝不白屏 + error_log('Subsys[' . $sys . '] error: ' . $e->getMessage()); + $html = self::subsysErrorFrame($sysKey, $instance, $e); + } + if (is_string($html)) echo $html; + } + + private static function dispatchFront(array $s) + { + $key = $s[0] ?? ''; + $seg2 = $s[1] ?? null; + + // 验证码图片输出(独立端点,直接输出 PNG) + if ($key === 'captcha' && $seg2 === 'image') { + captcha_image(); + return; + } + + // Sitemap 动态生成(XML 格式,搜索引擎自动抓取) + if ($key === 'sitemap.xml') { + self::outputSitemap(); + return; + } + + // 资源详情路由(带第二段 slug) + if (($key === 'product' || $key === 'products') && $seg2) { + self::call('App\\Controllers\\ProductController', 'show', [$seg2]); + return; + } + if ($key === 'news' && $seg2) { + self::call('App\\Controllers\\NewsController', 'show', [$seg2]); + return; + } + if ($key === 'cases' && $seg2) { + self::call('App\\Controllers\\CaseController', 'show', [$seg2]); + return; + } + + // 订单 / 支付(含网关异步通知,无需登录) + if ($key === 'order') { + $action = $s[1] ?? 'checkout'; + $param = $s[2] ?? null; + self::call('App\\Controllers\\OrderController', $action, [$param]); + return; + } + if ($key === 'pay') { + $action = $s[1] ?? 'notify'; + $param = $s[2] ?? null; + self::call('App\\Controllers\\PayController', $action, [$param]); + return; + } + + $map = [ + '' => ['HomeController', 'index'], + 'home' => ['HomeController', 'index'], + 'products' => ['ProductController', 'index'], + 'news' => ['NewsController', 'index'], + 'cases' => ['CaseController', 'index'], + 'page' => ['PageController', 'show'], + 'contact' => ['ContactController', 'index'], + ]; + if (isset($map[$key])) { + [$ctrl, $action] = $map[$key]; + $param = $seg2; + self::call('App\\Controllers\\' . $ctrl, $action, [$param]); + return; + } + // 未知路径:按单页 slug 处理(/about、/service ...) + self::call('App\\Controllers\\PageController', 'show', [$key]); + } + + private static function dispatchAdmin(array $s) + { + $res = $s[0] ?? ''; + $action = $s[1] ?? 'index'; + $id = $s[2] ?? null; + $map = [ + '' => ['Admin\\DashboardController', 'index'], + 'dashboard' => ['Admin\\DashboardController', 'index'], + 'login' => ['Admin\\AuthController', 'login'], + 'logout' => ['Admin\\AuthController', 'logout'], + 'password' => ['Admin\\AuthController', 'password'], + 'products' => ['Admin\\ProductController', 'index'], + 'categories'=> ['Admin\\CategoryController', 'index'], + 'news' => ['Admin\\NewsController', 'index'], + 'pages' => ['Admin\\PageController', 'index'], + 'banners' => ['Admin\\BannerController', 'index'], + 'settings' => ['Admin\\SettingController', 'index'], + 'theme' => ['Admin\\SettingController', 'theme'], + 'seo' => ['Admin\\SettingController', 'seo'], + 'users' => ['Admin\\UserController', 'index'], + 'system' => ['Admin\\SystemController', 'index'], + 'orders' => ['Admin\\OrderController', 'index'], + 'payments' => ['Admin\\SettingController', 'payment'], + 'cases' => ['Admin\\CaseController', 'index'], + 'media' => ['Admin\\MediaController', 'index'], + 'upgrade' => ['Admin\\UpgradeController', 'index'], + 'db' => ['Admin\\DatabaseController', 'index'], + ]; + if (!isset($map[$res])) { + self::notFound(); + return; + } + // 权限能力检查:未登录或权限不足直接拦截(登录态由对应控制器再兜底) + $capMap = [ + 'users' => 'users', + 'system' => 'users', + 'upgrade' => 'users', + 'db' => 'users', + 'settings' => 'settings', + 'theme' => 'settings', + 'seo' => 'settings', + 'payments' => 'settings', + 'products' => 'products', + 'categories'=> 'categories', + 'news' => 'news', + 'pages' => 'pages', + 'banners' => 'banners', + 'orders' => 'orders', + 'cases' => 'cases', + 'media' => 'pages', + ]; + if (isset($capMap[$res]) && !admin_can($capMap[$res])) { + self::forbidden('当前账号无访问「' . $res . '」的权限'); + return; + } + [$ctrl, $default] = $map[$res]; + $method = ($action === 'index') ? $default : $action; + self::call('App\\Controllers\\' . $ctrl, $method, [$id]); + } + + private static function call($class, $method, array $args = []) + { + if (!class_exists($class)) { self::notFound("类不存在: $class"); return; } + $instance = new $class(); + if (!method_exists($instance, $method)) { self::notFound("方法不存在: $method"); return; } + $html = call_user_func_array([$instance, $method], $args); + if (is_string($html)) echo $html; + } + + public static function notFound($msg = '') + { + http_response_code(404); + echo '404 + +

404

页面不存在' . ($msg ? ':' . htmlspecialchars($msg) : '') . '

+

返回首页

'; + } + + public static function forbidden(string $msg = '') + { + http_response_code(403); + echo '403 + +

403

无访问权限' . ($msg ? ':' . htmlspecialchars($msg) : '') . '

+

返回后台

'; + } + + /** + * 子系统异常兜底框:左导 + 右框保持完整,框内显示错误信息,绝不白屏。 + */ + private static function subsysErrorFrame(string $sysKey, $instance, \Throwable $e): string + { + $nav = method_exists($instance, 'nav') ? $instance->nav('') : []; + $content = '

页面加载出错

' + . '

系统遇到问题,错误已记录,请稍后重试或联系管理员

' + . '
' . e('错误信息:' . $e->getMessage()) . '
'; + return \Core\View::make('layouts/subsys', [ + 'content' => $content, + '_sys' => $sysKey, + '_nav' => $nav, + '_seg' => '', + ]); + } + + private static function serveFile($file) + { + $real = realpath($file); + $pub = realpath(BASE_PATH . '/public'); + if ($real === false || $pub === false || strpos($real, $pub . DIRECTORY_SEPARATOR) !== 0 || !is_file($real)) { + self::notFound('非法文件访问'); + return; + } + $mime = mime_content_type($real); + header('Content-Type: ' . $mime); + header('Content-Length: ' . filesize($real)); + readfile($real); + exit; + } + + /** 读取配置 config('app.name') */ + /** + * 生成站内 URL(兼容子目录部署)。 + * 用法:App::url('PSI/reminders') -> https://host/base/PSI/reminders + */ + public static function url(string $path = ''): string + { + return site_url($path); + } + + public static function config(string $key, $default = null) + { + if (empty(self::$config)) { + self::$config = require BASE_PATH . '/config/config.php'; + } + $keys = explode('.', $key); + $v = self::$config; + foreach ($keys as $k) { + if (!is_array($v) || !array_key_exists($k, $v)) return $default; + $v = $v[$k]; + } + return $v; + } + + /** 动态生成 Sitemap XML(Google/Bing/Baidu 自动抓取) */ + private static function outputSitemap(): void + { + header('Content-Type: application/xml; charset=utf-8'); + echo '' . "\n"; + echo '' . "\n"; + + // 首页 + echo '' . e(site_url()) . '1.0daily' . "\n"; + + // 静态页面 + $staticPages = [ + ['url' => site_url('products'), 'prio' => '0.9', 'freq' => 'weekly'], + ['url' => site_url('news'), 'prio' => '0.8', 'freq' => 'daily'], + ['url' => site_url('cases'), 'prio' => '0.8', 'freq' => 'weekly'], + ['url' => site_url('page/about'), 'prio' => '0.7', 'freq' => 'monthly'], + ['url' => site_url('contact'), 'prio' => '0.7', 'freq' => 'monthly'], + ]; + foreach ($staticPages as $p) { + echo '' . e($p['url']) . '' . $p['prio'] . '' . $p['freq'] . '' . "\n"; + } + + // 动态页面列表:产品 / 新闻 / 案例 / 单页 + $models = [ + ['class' => 'App\\Models\\Product', 'method' => 'all', 'urlPrefix' => 'product/', 'prio' => '0.85', 'freq' => 'weekly'], + ['class' => 'App\\Models\\News', 'method' => 'published', 'urlPrefix' => 'news/', 'prio' => '0.75', 'freq' => 'weekly'], + ['class' => 'App\\Models\\CustomerCase', 'method' => 'published', 'urlPrefix' => 'cases/', 'prio' => '0.75', 'freq' => 'weekly'], + ['class' => 'App\\Models\\Page', 'method' => 'all', 'urlPrefix' => 'page/', 'prio' => '0.6', 'freq' => 'monthly'], + ]; + + foreach ($models as $m) { + if (!class_exists($m['class'])) continue; + try { + $instance = new $m['class'](); + $items = []; + if ($m['method'] === 'all') { + $items = $instance->all(); + } elseif ($m['method'] === 'published') { + $items = $instance->published(200); + } + foreach ($items as $item) { + $slug = $item['slug'] ?? ($item['id'] ?? ''); + if (empty($slug)) continue; + $url = site_url($m['urlPrefix'] . $slug); + $lastmod = ''; + if (!empty($item['updated_at'])) { + $lastmod = '' . e($item['updated_at']) . ''; + } elseif (!empty($item['created_at'])) { + $lastmod = '' . e($item['created_at']) . ''; + } + echo '' . e($url) . '' . $lastmod . '' . $m['prio'] . '' . $m['freq'] . '' . "\n"; + } + } catch (\Throwable $e) { + // 静默跳过异常的模型,保证 sitemap 完整性 + continue; + } + } + + // 产品分类页(/products?cat=ID) + if (class_exists('App\\Models\\Category')) { + try { + $catM = new \App\Models\Category(); + foreach ($catM->all() as $c) { + $cid = $c['id'] ?? 0; + if (!$cid) continue; + $url = site_url('products?cat=' . $cid); + echo '' . e($url) . '0.7weekly' . "\n"; + } + } catch (\Throwable $e) { + // 忽略 + } + } + + echo ''; + exit; + } +} diff --git a/app/Core/Db.php b/app/Core/Db.php new file mode 100644 index 0000000..5c89da1 --- /dev/null +++ b/app/Core/Db.php @@ -0,0 +1,43 @@ + \PDO::ERRMODE_EXCEPTION, + \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, + \PDO::ATTR_EMULATE_PREPARES => false, + ]); + } + return self::$pdo; + } + + public static function fileDir(): string + { + $dir = App::config('db.file.dir'); + if (!is_dir($dir)) mkdir($dir, 0755, true); + return $dir; + } + + public static function query(string $sql, array $params = []): \PDOStatement + { + $st = self::pdo()->prepare($sql); + $st->execute($params); + return $st; + } +} diff --git a/app/Core/Helper.php b/app/Core/Helper.php new file mode 100644 index 0000000..23f2945 --- /dev/null +++ b/app/Core/Helper.php @@ -0,0 +1,849 @@ +'; + } + function csrf_check(): bool + { + $token = $_POST['_csrf'] ?? ($_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''); + return isset($_SESSION['_csrf']) && hash_equals($_SESSION['_csrf'], $token); + } + /** 当前管理员是否已登录 */ + function is_admin(): bool + { + return !empty($_SESSION['admin_logged']); + } + function admin_required() + { + if (!is_admin()) { + header('Location: ' . site_url('admin/login')); + exit; + } + } + /** 当前登录管理员的角色:super_admin | admin | user | none */ + function admin_role(): string + { + return $_SESSION['admin_role'] ?? 'user'; + } + /** 当前登录管理员 ID(配置文件兜底登录时为 0) */ + function admin_uid(): ?int + { + return $_SESSION['admin_id'] ?? null; + } + /** 角色 -> 能力映射(可访问的模块/操作) */ + function admin_role_map(): array + { + return [ + 'super_admin' => ['dashboard', 'products', 'categories', 'news', 'cases', 'pages', 'banners', 'settings', 'theme', 'users', 'system', 'orders', 'payments', 'password'], + 'admin' => ['dashboard', 'products', 'categories', 'news', 'cases', 'pages', 'banners', 'orders', 'password'], + // user 为受限角色:默认仅仪表盘权限,不预开 products/news/cases 等后台模块。 + // 进入 CRM/PSI 后左导据此严格收敛——CRM 操作员(后台角色=user)只看到仪表盘 + 当前子系统功能, + // 其余后台模块由其是否拥有对应 admin 能力决定;后台管理员/超管不受影响(见 admin / super_admin 行)。 + 'user' => ['dashboard', 'password'], + // none = 无后台主角色:该账号仅作为 CRM/PSI 子系统账号存在,不拥有任何后台模块权限。 + // 进入子系统后左导仍按 subsys_role 严格收敛,避免与「用户」混淆导致角色分配混乱。 + 'none' => ['password'], + ]; + } + /** 当前登录管理员是否具备某项能力 */ + function admin_can(string $cap): bool + { + $role = admin_role(); + return in_array($cap, admin_role_map()[$role] ?? [], true); + } + /** 角色中文名 */ + function admin_role_label(string $role): string + { + return ['super_admin' => '超级管理员', 'admin' => '管理员', 'user' => '用户', 'none' => '无'][$role] ?? '用户'; + } + /** 必须是指定角色,否则拦截(用于控制器构造函数) */ + function role_required(string $role): void + { + if (!is_admin()) { + header('Location: ' . site_url('admin/login')); + exit; + } + if (admin_role() !== $role) { + \Core\App::forbidden('需要 ' . admin_role_label($role) . ' 权限'); + exit; + } + } + /** 根据种子生成品牌渐变(用于占位图) */ + function gradient($seed = 0): string + { + $angle = 110 + (intval($seed) * 37) % 160; + return "linear-gradient({$angle}deg,var(--c-primary),var(--c-secondary))"; + } + + /* ---------- 分系统权限(CRM / 进销存 PSI) ---------- */ + /** + * 用户在某业务系统中的角色。super_admin 在任意系统都视为最高权限管理员。 + * @param string $sys crm | psi + */ + function subsys_role(string $sys): string + { + if (admin_role() === 'super_admin') return 'super_admin'; + $key = $sys . '_role'; + return $_SESSION[$key] ?? 'none'; + } + /** 是否为某系统的管理员(含超管) */ + function subsys_admin(string $sys): bool + { + return in_array(subsys_role($sys), ['super_admin', 'admin'], true); + } + /** 是否为某系统的用户(含管理员、超管) */ + function subsys_user(string $sys): bool + { + return subsys_role($sys) !== 'none'; + } + /** 是否能进入某业务系统(拥有该系统任意角色即可:超管/管理员/用户) */ + function subsys_can_enter(string $sys): bool + { + return subsys_user($sys); + } + + /** 分系统页面清单(key 与子系统 nav 的 k 对应;dashboard 始终可见) */ + function subsys_pages(string $sys): array + { + return $sys === 'psi' + ? ['dashboard', 'materials', 'products', 'suppliers', 'purchases', 'sales', 'stock', 'orders', + 'sales_orders', 'purchase_orders', 'outbounds', 'reports', 'reminders'] + : ['dashboard', 'customers', 'leads', 'followups', 'contacts']; + } + + /** 当前 PSI 用户未读的紧急事件数量(用于导航铃铛徽标) */ + function psi_unread_events(): int + { + if (!subsys_user('psi')) return 0; + $uid = (int) ($_SESSION['admin_uid'] ?? 0); + if ($uid <= 0) return 0; + try { + $events = (new \App\Models\PSI\Event())->all(); + } catch (\Throwable $e) { + return 0; + } + $n = 0; + foreach ($events as $ev) { + $read = json_decode($ev['read_by'] ?? '[]', true) ?: []; + if (!in_array($uid, $read, true)) $n++; + } + return $n; + } + /** + * 当前登录用户在 $sys 系统各页面的「可见」权限数组。 + * 子系统管理员(含超管,subsys_admin)拥有该系统全部页面; + * 仅“用户”角色读 session 中的 {sys}_perms(登录时写入)做细粒度控制; + * 旧账号无 perms 记录则默认全部可见(向后兼容,不会突然锁死)。 + */ + function subsys_page_perms(string $sys): array + { + // 关键修复:以“分系统角色”判定管理员,而非仅看主角色是否为 super_admin。 + // 否则 CRM/PSI 管理员(crm_role=admin、主角色为“管理员”)会被误判为普通用户, + // 一旦 {sys}_perms 受限就只剩仪表盘,导致左导菜单残缺、子页面 403。 + if (subsys_admin($sys)) { + return array_fill_keys(subsys_pages($sys), true) + ['dashboard' => true]; + } + $perms = $_SESSION[$sys . '_perms'] ?? null; + $out = ['dashboard' => true]; + foreach (subsys_pages($sys) as $p) { + if ($p === 'dashboard') continue; + $out[$p] = ($perms === null) ? true : !empty($perms[$p]); + } + return $out; + } + /** 当前用户能否进入 $sys 系统的某页面 */ + function subsys_page_can(string $sys, string $page): bool + { + return !empty(subsys_page_perms($sys)[$page]); + } + /** 过滤子系统侧边导航:隐藏无权限页面项(dashboard 永留) */ + function subsys_filter_nav(string $sys, array $nav): array + { + return array_values(array_filter($nav, function ($n) use ($sys) { + if (($n['k'] ?? '') === 'dashboard') return true; + return subsys_page_can($sys, $n['k']); + })); + } + /** + * 登录后落地页:依据子系统权限优先进入对应子系统仪表盘。 + * 设计目标:拥有 CRM / PSI 权限的账号登录后直达「CRM / PSI 仪表盘」, + * 而非总后台仪表盘;总后台仪表盘仅留给「无任何子系统权限」的纯后台账号。 + * - 仅拥有 CRM:进入 CRM 仪表盘 + * - 仅拥有 PSI:进入 PSI 仪表盘 + * - 同时拥有 CRM+PSI:默认进入 CRM 仪表盘(左侧导航可切换 PSI) + * - 无任何子系统权限(纯内容管理员 / 编辑):进入总后台仪表盘 + */ + function login_landing(): string + { + $crm = subsys_user('crm'); + $psi = subsys_user('psi'); + if ($crm && !$psi) return 'CRM'; + if ($psi && !$crm) return 'PSI'; + if ($crm && $psi) return 'CRM'; + return 'admin'; + } + + /** + * 后台(admin)左侧导航全量项。admin 主后台与 CRM / PSI 子系统布局共用, + * 保证「后台框架一致」:进入 CRM / PSI 后左侧仍是同一套完整后台菜单(当前子系统主项高亮)。 + * 各页面项按角色能力(admin_can)过滤,子系统入口按 subsys_user 显隐, + * 与 App 路由层的 capMap / 权限拦截保持一致。 + */ + function admin_nav_items(): array + { + $baseItems = [ + ['k' => '', 'label' => '仪表盘', 'ic' => 'dashboard', 'url' => 'admin'], + ['k' => 'products', 'label' => '产品管理', 'ic' => 'snowflake', 'url' => 'admin/products'], + ['k' => 'categories', 'label' => '分类管理', 'ic' => 'folders', 'url' => 'admin/categories'], + ['k' => 'news', 'label' => '新闻管理', 'ic' => 'newspaper', 'url' => 'admin/news'], + ['k' => 'cases', 'label' => '客户案例', 'ic' => 'handshake', 'url' => 'admin/cases'], + ['k' => 'pages', 'label' => '单页管理', 'ic' => 'file-text', 'url' => 'admin/pages'], + ['k' => 'banners', 'label' => '轮播管理', 'ic' => 'images', 'url' => 'admin/banners'], + ['k' => 'settings', 'label' => '站点设置', 'ic' => 'settings', 'url' => 'admin/settings'], + ['k' => 'theme', 'label' => '风格设置', 'ic' => 'palette', 'url' => 'admin/theme'], + ]; + $nav = []; + foreach ($baseItems as $it) { + // 仪表盘始终可见;其余按角色能力 admin_can 过滤(无权限则隐藏且不可直访) + if ($it['k'] === '' || admin_can($it['k'])) $nav[] = $it; + } + // 子系统入口:拥有对应系统角色的管理员可见(点击进入 CRM / PSI) + if (subsys_user('crm')) $nav[] = ['k' => 'crm', 'label' => '客户管理 CRM', 'ic' => 'handshake', 'url' => 'CRM']; + if (subsys_user('psi')) $nav[] = ['k' => 'psi', 'label' => '进销存 PSI', 'ic' => 'package', 'url' => 'PSI']; + // 仅超级管理员可见「用户管理 / 订单管理 / 支付设置 / 系统设置 / 数据库管理 / 数据库升级」 + if (admin_role() === 'super_admin') { + $nav[] = ['k' => 'users', 'label' => '用户管理', 'ic' => 'users', 'url' => 'admin/users']; + $nav[] = ['k' => 'orders', 'label' => '订单管理', 'ic' => 'receipt', 'url' => 'admin/orders']; + $nav[] = ['k' => 'payments', 'label' => '支付设置', 'ic' => 'wallet', 'url' => 'admin/payments']; + $nav[] = ['k' => 'system', 'label' => '系统设置', 'ic' => 'settings', 'url' => 'admin/system']; + $nav[] = ['k' => 'db', 'label' => '数据库管理', 'ic' => 'database', 'url' => 'admin/db']; + $nav[] = ['k' => 'upgrade', 'label' => '数据库升级', 'ic' => 'upload', 'url' => 'admin/upgrade', + 'badge' => (\Core\Db::driver() === 'mysql' ? db_pending_upgrades() : 0) ?: null]; + } elseif (admin_role() === 'admin') { + $nav[] = ['k' => 'orders', 'label' => '订单管理', 'ic' => 'receipt', 'url' => 'admin/orders']; + } + return $nav; + } + + /** + * 分系统(CRM/PSI)侧边导航:统一来源,含「用户管理」(仅该系统管理员可见)。 + * 与 layouts/subsys.php 共用,避免逐个控制器重复维护导航数组。 + */ + function subsys_nav(string $sys): array + { + $pages = $sys === 'psi' + ? [ + ['k' => 'dashboard', 'label' => '仪表盘', 'url' => 'PSI'], + ['k' => 'materials', 'label' => '物料管理', 'url' => 'PSI/materials'], + ['k' => 'products', 'label' => '成品管理', 'url' => 'PSI/products'], + ['k' => 'suppliers', 'label' => '供应商', 'url' => 'PSI/suppliers'], + ['k' => 'purchases', 'label' => '采购入库', 'url' => 'PSI/purchases'], + ['k' => 'sales', 'label' => '销售出库', 'url' => 'PSI/sales'], + ['k' => 'stock', 'label' => '库存流水', 'url' => 'PSI/stock'], + ['k' => 'orders', 'label' => '订单管理', 'url' => 'PSI/orders'], + ['k' => 'sales_orders', 'label' => '销售订单', 'url' => 'PSI/sales_orders'], + ['k' => 'purchase_orders', 'label' => '采购订单', 'url' => 'PSI/purchase_orders'], + ['k' => 'outbounds', 'label' => '出库单', 'url' => 'PSI/outbounds'], + ['k' => 'reports', 'label' => '报表中心', 'url' => 'PSI/reports'], + ['k' => 'reminders', 'label' => '紧急提醒', 'url' => 'PSI/reminders'], + ] + : [ + ['k' => 'dashboard', 'label' => '仪表盘', 'url' => 'CRM'], + ['k' => 'customers', 'label' => '客户管理', 'url' => 'CRM/customers'], + ['k' => 'leads', 'label' => '商机线索', 'url' => 'CRM/leads'], + ['k' => 'followups', 'label' => '跟进记录', 'url' => 'CRM/followups'], + ['k' => 'contacts', 'label' => '客户联系人', 'url' => 'CRM/contacts'], + ]; + // 仅该系统管理员可管理本系统用户 + if (subsys_admin($sys)) { + $pages[] = ['k' => 'users', 'label' => '用户管理', 'url' => strtoupper($sys) . '/users']; + if ($sys === 'psi') { + $pages[] = ['k' => 'notifications', 'label' => '通知设置', 'url' => 'PSI/notifications']; + } + } + // 仅主角色为超管/管理员时显示「管理后台」入口 + if (in_array(admin_role(), ['super_admin', 'admin'], true)) { + $pages[] = ['k' => 'admin', 'label' => '管理后台', 'url' => 'admin']; + } + return $pages; + } + + /** PSI 系统完整导航(含订单/出库/报表,所有控制器统一调用) */ + function psi_nav(): array + { + return [ + ['k' => 'dashboard', 'label' => '仪表盘', 'icon' => admin_icon('home', 16) ?: '📊', 'url' => 'PSI'], + ['k' => 'materials', 'label' => '物料管理', 'icon' => admin_icon('box', 16) ?: '🧵', 'url' => 'PSI/materials'], + ['k' => 'products', 'label' => '成品管理', 'icon' => admin_icon('shirt', 16) ?: '👕', 'url' => 'PSI/products'], + ['k' => 'suppliers', 'label' => '供应商', 'icon' => admin_icon('buildings', 16) ?: '🏭', 'url' => 'PSI/suppliers'], + ['k' => 'purchases', 'label' => '采购入库', 'icon' => admin_icon('download', 16) ?: '📥', 'url' => 'PSI/purchases'], + ['k' => 'sales', 'label' => '销售出库', 'icon' => admin_icon('upload', 16) ?: '📤', 'url' => 'PSI/sales'], + ['k' => 'stock', 'label' => '库存流水', 'icon' => admin_icon('package', 16) ?: '📦', 'url' => 'PSI/stock'], + ['k' => 'orders', 'label' => '订单管理', 'icon' => admin_icon('receipt', 16) ?: '🧾', 'url' => 'PSI/orders'], + ['k' => 'sales_orders', 'label' => '销售订单', 'icon' => admin_icon('file-text', 16) ?: '📝', 'url' => 'PSI/sales_orders'], + ['k' => 'purchase_orders', 'label' => '采购订单', 'icon' => admin_icon('file-text', 16) ?: '📋', 'url' => 'PSI/purchase_orders'], + ['k' => 'outbounds', 'label' => '出库单', 'icon' => admin_icon('truck', 16) ?: '🚚', 'url' => 'PSI/outbounds'], + ['k' => 'reports', 'label' => '报表中心', 'icon' => admin_icon('chart-bar', 16) ?: '📊', 'url' => 'PSI/reports'], + ]; + } + + /** 生成单据号:前缀 + 秒级时间 + 进程内计数器 + 随机,保证唯一 */ + function psi_gen_no(string $prefix): string + { + static $c = 0; + $c++; + return strtoupper($prefix) . date('YmdHis') . str_pad($c, 4, '0', STR_PAD_LEFT) . mt_rand(10, 99); + } + + /** 根据已交付数量重算销售订单状态(pending/partial/delivered) */ + function psi_recompute_so(int $soId): void + { + $items = (new \App\Models\PSI\SalesOrderItem())->whereAll('so_id', $soId); + $total = 0; $delivered = 0; + foreach ($items as $it) { + $total += (int)($it['qty'] ?? 0); + $delivered += (int)($it['delivered_qty'] ?? 0); + } + $status = $total <= 0 ? 'pending' : ($delivered >= $total ? 'delivered' : ($delivered > 0 ? 'partial' : 'pending')); + (new \App\Models\PSI\SalesOrder())->update($soId, ['status' => $status]); + } + + /** 打印页外壳:独立 HTML + A4 样式 + 自动打印 */ + function psi_print_shell(string $title, string $body): string + { + $css = 'body{font-family:-apple-system,"Microsoft YaHei",sans-serif;color:#111;margin:0;padding:24px;background:#fff;}' + . '.doc{width:210mm;max-width:100%;margin:0 auto;}' + . '@media print{body{padding:0;}.no-print{display:none!important;}@page{margin:12mm;}}' + . '.doc h2{text-align:center;margin:0 0 4px;font-size:20px;}' + . '.doc .sub{text-align:center;color:#666;margin-bottom:16px;font-size:13px;}' + . '.doc .meta{display:flex;flex-wrap:wrap;gap:6px 28px;font-size:13px;margin:12px 0;border-bottom:1px dashed #ccc;padding-bottom:10px;}' + . '.doc .meta b{color:#374151;}' + . '.doc table{border-collapse:collapse;width:100%;font-size:13px;margin-top:8px;}' + . '.doc th,.doc td{border:1px solid #bbb;padding:7px 9px;}' + . '.doc th{background:#f3f4f6;}' + . '.doc .total{text-align:right;font-weight:700;margin-top:12px;font-size:14px;}' + . '.doc .sign{display:flex;justify-content:space-between;margin-top:40px;font-size:13px;color:#374151;}' + . '.btn-print{position:fixed;top:16px;right:16px;padding:10px 18px;border-radius:8px;border:1px solid #0ea5e9;background:#0ea5e9;color:#fff;cursor:pointer;font-size:14px;box-shadow:0 2px 8px rgba(0,0,0,.15);}'; + return '' . e($title) . '' + . '' + . '' + . '
' . $body . '
' + . '' + . ''; + } + + /** 一次性提示消息(跨重定向,取值后清空) */ + function flash(string $msg, string $type = 'ok'): void + { + $_SESSION['_flash'] = ['msg' => $msg, 'type' => $type]; + } + function flash_html(): string + { + if (empty($_SESSION['_flash'])) return ''; + $f = $_SESSION['_flash']; + unset($_SESSION['_flash']); + $cls = $f['type'] === 'err' ? 'alert alert-err' : 'alert alert-ok'; + return '
' . e($f['msg']) . '
'; + } + + /* ---------- mbstring 兼容层:远端 PHP 未启用 mbstring 扩展时提供兜底实现 ---------- */ + if (!function_exists('mb_substr')) { + function mb_substr(string $str, int $start, ?int $length = null, string $encoding = 'UTF-8'): string + { + $chars = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY); + if ($chars === false) { $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY) ?: []; } + $len = $length ?? count($chars); + return implode('', array_slice($chars, $start, $len)); + } + } + if (!function_exists('mb_strlen')) { + function mb_strlen(string $str, string $encoding = 'UTF-8'): int + { + $chars = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY); + return $chars === false ? strlen($str) : count($chars); + } + } + if (!function_exists('mb_strtolower')) { + function mb_strtolower(string $str, string $encoding = 'UTF-8'): string + { + return strtolower($str); + } + } + if (!function_exists('mb_strtoupper')) { + function mb_strtoupper(string $str, string $encoding = 'UTF-8'): string + { + return strtoupper($str); + } + } + if (!function_exists('mb_check_encoding')) { + function mb_check_encoding($var, ?string $encoding = null): bool + { + if (is_array($var) || is_object($var)) return false; + $str = (string)$var; + if ($encoding === null || strtoupper((string)$encoding) === 'UTF-8') { + return (bool) preg_match('/\A(?: [\x00-\x7F] | [\xC2-\xDF][\x80-\xBF] | \xE0[\xA0-\xBF][\x80-\xBF] | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} | \xED[\x80-\x9F][\x80-\xBF] | \xF0[\x90-\xBF][\x80-\xBF]{2} | [\xF1-\xF3][\x80-\xBF]{3} | \xF4[\x80-\x8F][\x80-\xBF]{2} )*\z/x', $str); + } + return true; + } + } + if (!function_exists('mb_convert_encoding')) { + function mb_convert_encoding(string $str, string $to, ?string $from = null): string + { + if (function_exists('iconv')) { + $conv = @iconv($from ?? 'UTF-8', $to . '//IGNORE', $str); + if ($conv !== false) return $conv; + } + return $str; + } + } + + /** + * 内联 SVG 图标(Lucide 线性风格,stroke=currentColor)。 + * 取代后台原有 emoji 图标:清晰、随主题变色、跨平台一致。 + */ + function admin_icon(string $name, int $size = 20): string + { + static $paths = null; + if ($paths === null) { + $paths = [ + 'dashboard' => '', + 'snowflake' => '', + 'folders' => '', + 'newspaper' => '', + 'handshake' => '', + 'file-text' => '', + 'images' => '', + 'settings' => '', + 'palette' => '', + 'users' => '', + 'receipt' => '', + 'wallet' => '', + 'upload' => '', + 'database' => '', + 'package' => '', + 'logout' => '', + 'key' => '', + 'globe' => '', + 'menu' => '', + 'plus' => '', + 'user' => '', + 'pencil' => '', + 'shield' => '', + 'lightbulb' => '', + 'phone' => '', + 'shopping-bag' => '', + 'truck' => '', + 'inbox' => '', + 'cart' => '', + 'user-plus' => '', + 'key' => '', + 'lock' => '', + 'bar-chart' => '', + 'printer' => '', + 'check' => '', + 'clipboard' => '', + 'trending-up' => '', + 'alert' => '', + ]; + } + $p = $paths[$name] ?? $paths['file-text']; + return ''; + } + + /* ---------- 数据库升级:升级包目录与待升级计数 ---------- */ + + /** 升级包目录(放置 *.sql 后,后台「数据库升级」即提示可升级) */ + function db_upgrade_dir(): string + { + return BASE_PATH . '/install/upgrades'; + } + + /** 将字节数格式化为人类可读大小 */ + function human_size(int $bytes): string + { + if ($bytes < 1024) return $bytes . ' B'; + $units = ['KB', 'MB', 'GB', 'TB']; + $i = -1; + do { $bytes /= 1024; $i++; } while ($bytes >= 1024 && $i < count($units) - 1); + return round($bytes, 2) . ' ' . $units[$i]; + } + + /** + * 统计待升级的 SQL 文件数量(未记录或内容已变更)。 + * 用于在导航上提示「可升级」。失败安全:任何异常都返回 0。 + */ + function db_pending_upgrades(): int + { + try { + if (\Core\Db::driver() !== 'mysql') return 0; + $dir = db_upgrade_dir(); + if (!is_dir($dir)) return 0; + $files = glob($dir . '/*.sql') ?: []; + if (!$files) return 0; + \Core\Installer::ensureUpgradeLog(); + $applied = \Core\Db::query("SELECT file, hash FROM db_upgrades")->fetchAll(\PDO::FETCH_KEY_PAIR); + $n = 0; + foreach ($files as $f) { + $name = basename($f); + $h = md5_file($f); + if (!isset($applied[$name]) || $applied[$name] !== $h) { + $n++; + } + } + return $n; + } catch (\Throwable $e) { + return 0; + } + } + + /* ---------- 安全响应头(质量红线:所有后台/API 统一应用) ---------- */ + /** 生成每次请求唯一的 CSP nonce(同请求内多次调用返回同一值,并去除 base64 填充符以兼容 CSP) */ + function csp_nonce(): string + { + static $n; + if ($n === null) { + $n = rtrim(base64_encode(random_bytes(16)), '='); + } + return $n; + } + + function apply_security_headers(): void + { + if (headers_sent()) return; + $nonce = csp_nonce(); + // 通用安全响应头从 PHP 兜底补齐:即便 Nginx 层未下发也不会缺失(防配置漂移)。 + // 与审计整改要求一致:补充 X-Content-Type-Options / Referrer-Policy / Permissions-Policy, + // 并将 HSTS 升级为含 includeSubDomains + preload。若 Nginx 也下发 HSTS,重复为无害, + // 浏览器取更严格项(max-age 取最大值并合并指令)。 + header("X-Content-Type-Options: nosniff"); + header("Referrer-Policy: strict-origin-when-cross-origin"); + header("Permissions-Policy: geolocation=(), camera=(), microphone=(), payment=()"); + header("Strict-Transport-Security: max-age=63072000; includeSubDomains; preload"); + // 严格 CSP(nonce 每次请求不同,必须走 PHP) + header("Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-{$nonce}'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'"); + } + + /** 当前请求的完整绝对 URL(用于 canonical 规范链接等) */ + function absolute_url(): string + { + $scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http'; + $host = $_SERVER['HTTP_HOST'] ?? ($_SERVER['SERVER_NAME'] ?? 'localhost'); + $uri = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/'; + return $scheme . '://' . $host . $uri; + } + + /* ---------- 图片验证码(GD 库,无第三方依赖,防机器人暴力/垃圾提交) ---------- */ + + /** 生成验证码字符串并存入 session,返回图片 URL */ + function captcha_make(): array + { + if (session_status() !== PHP_SESSION_ACTIVE) @session_start(); + // 排除易混淆字符:0/O、1/I/L、2/Z + $pool = '3456789ABCDEFGHJKMNPQRSTUVWXY'; + $code = ''; + for ($i = 0; $i < 4; $i++) { + $code .= $pool[random_int(0, strlen($pool) - 1)]; + } + $_SESSION['captcha_code'] = $code; + // 添加随机参数防浏览器缓存同名图片 + return ['url' => site_url('captcha/image') . '?_t=' . dechex(time() . random_int(1000, 9999))]; + } + + function captcha_check($input): bool + { + if (session_status() !== PHP_SESSION_ACTIVE) @session_start(); + $ok = isset($_SESSION['captcha_code']) + && is_string($input) + && strtoupper(trim($input)) === strtoupper($_SESSION['captcha_code']); + unset($_SESSION['captcha_code']); // 一次性,防重放 + return $ok; + } + + /** 输出验证码图片(由 App 路由调用) */ + function captcha_image(): void + { + if (session_status() !== PHP_SESSION_ACTIVE) @session_start(); + $code = $_SESSION['captcha_code'] ?? ''; + if (empty($code)) { + // 无有效 code 时生成一个默认的,避免空白图 + $code = 'XXXX'; + } + + $w = 130; + $h = 44; + $img = imagecreatetruecolor($w, $h); + if (!$img) { + http_response_code(500); + exit('验证码图片生成失败'); + } + + // ── 背景 ── + $bg = imagecolorallocate($img, 248, 250, 252); + imagefilledrectangle($img, 0, 0, $w, $h, $bg); + + // ── 干扰线(5 条随机弧线)──── + $colors = []; + for ($i = 0; $i < 8; $i++) { + $colors[] = imagecolorallocate($img, + random_int(140, 210), + random_int(140, 210), + random_int(160, 220) + ); + } + for ($i = 0; $i < 5; $i++) { + $c = $colors[random_int(0, count($colors) - 1)]; + imageline($img, + random_int(0, $w), random_int(0, $h), + random_int(0, $w), random_int(0, $h), + $c + ); + } + + // ── 干扰像素点 ── + for ($i = 0; $i < 80; $i++) { + $c = $colors[random_int(0, count($colors) - 1)]; + imagesetpixel($img, random_int(0, $w), random_int(0, $h), $c); + } + + // ── 文字(每个字符独立颜色、角度、位置)──── + $len = strlen($code); + $cx = 15; + $cy = 30; + $fontFile = BASE_PATH . '/public/assets/arial.ttf'; // 可选 TTF,若无则 fallback + + $hasTtf = is_file($fontFile); + $dark = imagecolorallocate($img, 25, 55, 100); + + for ($i = 0; $i < $len; $i++) { + $char = $code[$i]; + $textColor = imagecolorallocate($img, + random_int(20, 80), + random_int(40, 100), + random_int(80, 160) + ); + + if ($hasTtf) { + $size = random_int(18, 22); + $angle = random_int(-15, 15); + $x = $cx + ($i * ($w - 20) / $len); + $y = $cy + random_int(-4, 6); + imagettftext($img, $size, $angle, (int)$x, (int)$y, $textColor, $fontFile, $char); + } else { + // 无 TTF 字体时用内置字体(效果较差但仍可工作) + $fontSize = 5; + $x = $cx + ($i * ($w - 20) / $len) + random_int(-2, 2); + $y = 12 + random_int(-3, 3); + imagestring($img, $fontSize, (int)$x, (int)$y, $char, $textColor); + } + } + + // ── 输出 ── + if (ob_get_level() > 0) ob_clean(); + header('Content-Type: image/png'); + header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); + header('Pragma: no-cache'); + header('Expires: 0'); + imagepng($img); + imagedestroy($img); + exit; + } + + /* ---------- IP 级登录限速(fail2ban 式,文件缓存,越会话更抗爆破) ---------- + * 双窗口独立限速(按需求定制): + * · 失败登录:任意 10 分钟内最多 5 次;超出即封锁 30 分钟 + * · 成功登录:任意 30 分钟内最多 5 次;超出即限制(封锁至最早成功滑出 30 分钟窗口) + * 数据文件:storage/login_ip.json —— 每个 IP 记失败/成功时间戳列表 + 封锁截止时间 + * --------------------------------------------------------------------- */ + defined('LOGIN_FAIL_WINDOW') or define('LOGIN_FAIL_WINDOW', 600); // 失败计数窗口:10 分钟 + defined('LOGIN_FAIL_LIMIT') or define('LOGIN_FAIL_LIMIT', 5); // 失败次数上限 + defined('LOGIN_OK_WINDOW') or define('LOGIN_OK_WINDOW', 1800); // 成功计数窗口:30 分钟 + defined('LOGIN_OK_LIMIT') or define('LOGIN_OK_LIMIT', 5); // 成功次数上限 + defined('LOGIN_BLOCK_SECS') or define('LOGIN_BLOCK_SECS', 1800); // 超限后封锁时长:30 分钟 + + function _ip_login_load(): array + { + $file = BASE_PATH . '/storage/login_ip.json'; + return is_file($file) ? (json_decode(@file_get_contents($file), true) ?: []) : []; + } + function _ip_login_save(array $data): void + { + $file = BASE_PATH . '/storage/login_ip.json'; + if (!is_dir(dirname($file))) @mkdir(dirname($file), 0755, true); + @file_put_contents($file, json_encode($data)); + } + /** 裁剪过期时间戳并按规则重算封锁截止时间(就地修改 $st) */ + function _ip_login_prune(array &$st, int $now): void + { + $st['fail'] = array_values(array_filter((array)($st['fail'] ?? []), fn($t) => ($now - (int)$t) < LOGIN_FAIL_WINDOW)); + $st['ok'] = array_values(array_filter((array)($st['ok'] ?? []), fn($t) => ($now - (int)$t) < LOGIN_OK_WINDOW)); + if (!isset($st['block_until']) || !is_numeric($st['block_until'])) $st['block_until'] = 0; + if ($st['block_until'] <= $now) { + if (count($st['fail']) >= LOGIN_FAIL_LIMIT) { + // 失败 5 次 / 10 分钟 → 锁 30 分钟 + $st['block_until'] = $now + LOGIN_BLOCK_SECS; + } elseif (count($st['ok']) >= LOGIN_OK_LIMIT) { + // 成功 5 次 / 30 分钟 → 锁到最早一次成功滑出窗口 + $oldest = min($st['ok']); + $st['block_until'] = max($now + 60, $oldest + LOGIN_OK_WINDOW); + } + } + } + function ip_login_blocked(string $ip): bool + { + $now = time(); + $st = _ip_login_load()[$ip] ?? ['fail' => [], 'ok' => [], 'block_until' => 0]; + _ip_login_prune($st, $now); + return ($st['block_until'] ?? 0) > $now; + } + /** 返回剩余封锁秒数(已解封为 0),供 Retry-After 使用 */ + function ip_login_remaining(string $ip): int + { + $now = time(); + $st = _ip_login_load()[$ip] ?? ['fail' => [], 'ok' => [], 'block_until' => 0]; + _ip_login_prune($st, $now); + return max(0, (int)($st['block_until'] ?? 0) - $now); + } + function ip_login_register_fail(string $ip): void + { + $now = time(); + $data = _ip_login_load(); + $st = $data[$ip] ?? ['fail' => [], 'ok' => [], 'block_until' => 0]; + _ip_login_prune($st, $now); + $st['fail'][] = $now; + _ip_login_prune($st, $now); // 追加后重新评估是否触发封锁 + $data[$ip] = $st; + _ip_login_save($data); + } + function ip_login_register_success(string $ip): void + { + $now = time(); + $data = _ip_login_load(); + $st = $data[$ip] ?? ['fail' => [], 'ok' => [], 'block_until' => 0]; + _ip_login_prune($st, $now); + $st['fail'] = []; // 成功登录重置失败计数(防爆破计数器归零) + $st['ok'][] = $now; // 记录一次成功,纳入「30 分钟 5 次」上限 + _ip_login_prune($st, $now); + $data[$ip] = $st; + _ip_login_save($data); + } + function ip_login_clear(string $ip): void + { + $data = _ip_login_load(); + unset($data[$ip]); + _ip_login_save($data); + } + + /* ---------- 通用 IP 级限速(可用于任意提交场景,如联系表单) ---------- */ + function ip_rate_blocked(string $ip, string $bucket, int $limit, int $window): bool + { + $file = BASE_PATH . '/storage/rate_' . $bucket . '.json'; + if (!is_file($file)) return false; + $data = json_decode(@file_get_contents($file), true) ?: []; + if (!isset($data[$ip])) return false; + return $data[$ip]['count'] >= $limit; + } + function ip_rate_register(string $ip, string $bucket, int $window): void + { + $file = BASE_PATH . '/storage/rate_' . $bucket . '.json'; + if (!is_dir(dirname($file))) @mkdir(dirname($file), 0755, true); + $data = is_file($file) ? (json_decode(@file_get_contents($file), true) ?: []) : []; + $now = time(); + if (!isset($data[$ip]) || ($data[$ip]['time'] + $window) < $now) { + $data[$ip] = ['count' => 0, 'time' => $now]; + } + $data[$ip]['count']++; + @file_put_contents($file, json_encode($data)); + } +} + +if (!function_exists('page_seo')) { + /** + * 取页面 SEO(标题/描述/关键词/OG/规范链接/收录开关)。 + * 优先读 page_seo 表;无记录或字段缺失时退回控制器传入的默认值。 + * @param string $key page_key(home/products/news/cases/about/contact...) + * @param array $default 默认 SEO 数组(title/description/keywords/og_type) + * @return array {title,description,keywords,og_type,og_image,canonical,noindex} + */ + function page_seo(string $key, array $default = []): array + { + $def = array_merge([ + 'title' => '', + 'description' => '', + 'keywords' => '', + 'og_type' => 'website', + 'og_image' => '', + 'canonical' => '', + 'noindex' => 0, + ], $default); + + try { + $row = (new \App\Models\PageSeo())->getByKey($key); + } catch (\Throwable $e) { + $row = null; + } + + if (!$row) { + return $def; + } + + return [ + 'title' => $row['title'] ?? $def['title'], + 'description' => $row['description'] ?? $def['description'], + 'keywords' => $row['keywords'] ?? $def['keywords'], + 'og_type' => $row['og_type'] ?? $def['og_type'], + 'og_image' => $row['og_image'] ?? $def['og_image'], + 'canonical' => $row['canonical'] ?? $def['canonical'], + 'noindex' => $row['noindex'] ?? $def['noindex'], + ]; + } +} diff --git a/app/Core/Installer.php b/app/Core/Installer.php new file mode 100644 index 0000000..db826be --- /dev/null +++ b/app/Core/Installer.php @@ -0,0 +1,365 @@ + 1, + 'username' => $super['username'], + 'password' => password_hash($super['password'], PASSWORD_DEFAULT), + 'name' => $super['name'] ?? '超级管理员', + 'role' => 'super_admin', + 'crm_role' => 'admin', + 'psi_role' => 'admin', + 'status' => 1, + 'created_at' => date('Y-m-d'), + ]]; + } + $driver = Db::driver(); + $msgs = []; + if ($driver === 'file') { + $dir = Db::fileDir(); + foreach ($seed as $table => $rows) { + $i = 1; + foreach ($rows as &$r) { if (!isset($r['id'])) { $r['id'] = $i; } $i++; } + unset($r); + file_put_contents($dir . "/{$table}.json", json_encode($rows, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)); + $msgs[] = "写入 {$table}.json (" . count($rows) . " 条)"; + } + foreach (['crm_contacts'] as $t) { + $f = $dir . "/{$t}.json"; + if (!is_file($f)) { file_put_contents($f, '[]'); $msgs[] = "创建 {$t}.json"; } + } + } else { + $pdo = Db::pdo(); + $pdo->exec(file_get_contents(BASE_PATH . '/install/schema.sql')); + $msgs[] = "数据表已创建/更新(基础 + CRM + PSI)"; + foreach (['categories', 'products', 'news', 'cases'] as $t) { + try { $pdo->exec("ALTER TABLE `{$t}` ADD COLUMN `layout` TEXT"); } catch (\Throwable $e) {} + } + self::ensureColumns($pdo, $msgs); + $map = self::modelMap(); + foreach ($seed as $table => $rows) { + $m = $map[$table] ?? null; + if (!$m) continue; + foreach ($rows as $r) { $m->insert($r); } + $msgs[] = "插入 {$table} (" . count($rows) . " 条)"; + } + } + try { Theme::regenerate(); $msgs[] = "主题样式 theme.css 已生成"; } catch (\Throwable $e) {} + @file_put_contents(BASE_PATH . '/storage/installed.lock', date('Y-m-d H:i:s') . " installed\n"); + return $msgs; + } + + /** 数据升级(后台按钮 / 已安装系统):补齐新模块表/列,按 id 补齐缺失种子,保留客户数据 */ + public static function upgrade(): array + { + $seed = require BASE_PATH . '/install/seed.php'; + $driver = Db::driver(); + $msgs = []; + $content = [ + 'categories', 'products', 'news', 'cases', 'pages', 'banners', 'settings', + 'crm_customers', 'crm_leads', 'crm_followups', 'crm_contacts', + 'psi_materials', 'psi_products', 'psi_suppliers', 'psi_purchases', 'psi_sales', + ]; + if ($driver === 'file') { + $dir = Db::fileDir(); + foreach ($seed as $table => $rows) { + if (!in_array($table, $content, true)) continue; + $ef = $dir . "/{$table}.json"; + $existing = []; + if (is_file($ef)) { + $ed = @json_decode(file_get_contents($ef), true); + if (is_array($ed)) $existing = $ed; + } + if ($table === 'settings') { + $keys = []; + foreach ($existing as $er) { if (isset($er['skey'])) $keys[$er['skey']] = true; } + foreach ($rows as $r) { if (!isset($keys[$r['skey']])) $existing[] = $r; } + } else { + $ids = []; + foreach ($existing as $er) { if (isset($er['id'])) $ids[$er['id']] = true; } + foreach ($rows as $r) { + $rid = $r['id'] ?? null; + if ($rid !== null && !isset($ids[$rid])) $existing[] = $r; + } + } + file_put_contents($ef, json_encode($existing, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)); + $msgs[] = "刷新 {$table}.json (" . count($existing) . " 条,保留客户数据)"; + } + foreach (['orders', 'payments', 'crm_contacts'] as $t) { + $f = $dir . "/{$t}.json"; + if (!is_file($f)) { file_put_contents($f, '[]'); $msgs[] = "创建 {$t}.json"; } + } + } else { + $pdo = Db::pdo(); + $pdo->exec(file_get_contents(BASE_PATH . '/install/schema.sql')); + $msgs[] = "数据表已创建/更新(补齐新增模块表)"; + foreach (['categories', 'products', 'news', 'cases'] as $t) { + try { $pdo->exec("ALTER TABLE `{$t}` ADD COLUMN `layout` TEXT"); } catch (\Throwable $e) {} + } + self::ensureColumns($pdo, $msgs); + $map = self::modelMap(); + foreach ($seed as $table => $rows) { + if (!in_array($table, $content, true)) continue; + $m = $map[$table] ?? null; + if (!$m) continue; + if ($table === 'settings') { + $keys = []; + try { $rs = Db::query("SELECT skey FROM `settings`"); foreach ($rs->fetchAll() as $er) $keys[$er['skey']] = true; } catch (\Throwable $e) {} + $added = 0; + foreach ($rows as $r) { if (!isset($keys[$r['skey']])) { $m->insert($r); $added++; } } + $msgs[] = "补齐 settings (" . $added . " 条)"; + continue; + } + $ids = []; + try { $rs = Db::query("SELECT id FROM `{$table}`"); foreach ($rs->fetchAll() as $er) $ids[$er['id']] = true; } catch (\Throwable $e) {} + $added = 0; + foreach ($rows as $r) { + $rid = $r['id'] ?? null; + if ($rid !== null && !isset($ids[$rid])) { $m->insert($r); $added++; } + } + $msgs[] = "补齐 {$table} 缺失种子 (" . $added . " 条,已有 " . count($ids) . " 条保留)"; + } + } + try { Theme::regenerate(); $msgs[] = "主题样式 theme.css 已生成"; } catch (\Throwable $e) {} + return $msgs; + } + + /** 执行单个 SQL 文件(用于「数据库升级」的升级包)。失败会抛出异常由调用方捕获。 */ + public static function applySqlFile(string $path): void + { + if (!is_file($path)) { + throw new \RuntimeException("升级文件不存在:{$path}"); + } + $sql = file_get_contents($path); + if ($sql === false || trim($sql) === '') return; + self::dbExecute($sql); + } + + /** + * 分段执行 SQL(支持 DELIMITER 命令,兼容 PDO 不支持的客户端语法)。 + * @param string $sql 原始 SQL 文本(含 / 不含 DELIMITER 均可) + * @throws \Throwable + */ + private static function dbExecute(string $sql): void + { + $pdo = Db::pdo(); + // 逐行解析 DELIMITER 与多语句拆分 + $lines = explode("\n", $sql); + $delimiter = ';'; + $buffer = ''; + foreach ($lines as $raw) { + $line = trim($raw); + // 跳过空行与单行注释(兼容 PHP 7,不用 str_starts_with) + if ($line === '' || strpos($line, '--') === 0 || strpos($line, '#') === 0) continue; + // 检测 DELIMITER 命令(客户端命令,不进入 SQL 执行) + if (strtoupper(substr($line, 0, 10)) === 'DELIMITER ') { + // 积压的 SQL 遇到 DELIMITER 修改时先执行 + $stmt = trim($buffer); + if ($stmt !== '') { + if ($pdo->exec($stmt) === false) { + $err = $pdo->errorInfo(); + throw new \RuntimeException("SQL 执行错误:{$err[2]} (SQL: " . substr($stmt, 0, 120) . ')'); + } + } + $buffer = ''; + $delimiter = trim(substr($line, 10)); + continue; + } + $buffer .= $raw . "\n"; + // 检查 buffer 是否以当前分隔符结尾(忽略末尾空白与行末注释) + $trimmed = rtrim($buffer, " \t\r\n"); + if (substr($trimmed, -strlen($delimiter)) === $delimiter) { + $stmt = rtrim(substr($trimmed, 0, -strlen($delimiter))); + $stmt = trim($stmt); + if ($stmt !== '') { + if ($pdo->exec($stmt) === false) { + $err = $pdo->errorInfo(); + throw new \RuntimeException("SQL 执行错误:{$err[2]} (SQL: " . substr($stmt, 0, 120) . ')'); + } + } + $buffer = ''; + } + } + // 最后一段(无结束分隔符的纯 SQL) + $stmt = trim($buffer); + if ($stmt !== '') { + if ($pdo->exec($stmt) === false) { + $err = $pdo->errorInfo(); + throw new \RuntimeException("SQL 执行错误:{$err[2]} (SQL: " . substr($stmt, 0, 120) . ')'); + } + } + } + + /** 确保升级记录表存在(幂等) */ + public static function ensureUpgradeLog(): void + { + if (Db::driver() !== 'mysql') return; + try { + Db::pdo()->exec("CREATE TABLE IF NOT EXISTS db_upgrades ( + id INT AUTO_INCREMENT PRIMARY KEY, + file VARCHAR(255) NOT NULL COMMENT '升级包文件名', + hash CHAR(32) NOT NULL COMMENT '文件 MD5,用于识别内容变更', + applied_at DATETIME NOT NULL COMMENT '执行时间', + applied_by VARCHAR(64) DEFAULT '' COMMENT '操作人', + note TEXT COMMENT '备注' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); + } catch (\Throwable $e) {} + } + public static function isInstalled(): bool + { + if (Db::driver() !== 'mysql') return true; // file 模式无「安装」概念 + try { + $cnt = (new \App\Models\AdminUser())->count(); + return $cnt > 0; + } catch (\Throwable $e) { + return false; + } + } + + /** 返回每张预期表的存在状态(mysql 模式) */ + public static function tableStatus(): array + { + if (Db::driver() !== 'mysql') return []; + $pdo = Db::pdo(); + $exist = $pdo->query("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE()")->fetchAll(\PDO::FETCH_COLUMN); + $all = [ + 'categories', 'products', 'news', 'cases', 'pages', 'banners', 'admin_users', + 'crm_customers', 'crm_leads', 'crm_followups', 'crm_contacts', + 'psi_materials', 'psi_products', 'psi_suppliers', 'psi_purchases', 'psi_sales', 'psi_stock_moves', + 'settings', 'orders', 'payments', + ]; + $out = []; + foreach ($all as $t) { $out[$t] = in_array($t, $exist, true); } + return $out; + } + + /** 补齐各表新增列(防御性,schema.sql 已含,此处兜底供「数据升级」使用,幂等) */ + private static function ensureColumns($pdo, array &$msgs): void + { + $map = [ + 'pages' => [ + 'mode' => "VARCHAR(16) NOT NULL DEFAULT 'fixed'", + ], + 'products' => [ + 'mode' => "VARCHAR(16) NOT NULL DEFAULT 'fixed'", + ], + 'news' => [ + 'mode' => "VARCHAR(16) NOT NULL DEFAULT 'fixed'", + ], + 'cases' => [ + 'mode' => "VARCHAR(16) NOT NULL DEFAULT 'fixed'", + ], + 'categories' => [ + 'mode' => "VARCHAR(16) NOT NULL DEFAULT 'fixed'", + ], + 'admin_users' => [ + 'crm_role' => "VARCHAR(20) DEFAULT 'none'", + 'psi_role' => "VARCHAR(20) DEFAULT 'none'", + 'crm_perms' => "TEXT", + 'psi_perms' => "TEXT", + ], + 'crm_customers' => [ + 'customer_no' => "VARCHAR(40) DEFAULT ''", + 'industry' => "VARCHAR(20) DEFAULT ''", + 'region' => "VARCHAR(40) DEFAULT ''", + 'credit_limit'=> "DECIMAL(12,2) DEFAULT 0", + 'status' => "VARCHAR(20) DEFAULT 'lead'", + ], + 'crm_leads' => [ + 'source' => "VARCHAR(30) DEFAULT ''", + 'probability' => "TINYINT DEFAULT 0", + ], + 'crm_followups' => [ + 'way' => "VARCHAR(20) DEFAULT ''", + 'result' => "VARCHAR(60) DEFAULT ''", + ], + 'psi_materials' => [ + 'composition' => "VARCHAR(60) DEFAULT ''", + 'weight_gsm' => "DECIMAL(8,2) DEFAULT 0", + 'width_cm' => "DECIMAL(8,2) DEFAULT 0", + 'color' => "VARCHAR(40) DEFAULT ''", + 'batch_no' => "VARCHAR(40) DEFAULT ''", + ], + 'psi_products' => [ + 'style_no' => "VARCHAR(40) DEFAULT ''", + 'color' => "VARCHAR(40) DEFAULT ''", + 'size_run' => "VARCHAR(60) DEFAULT ''", + 'season' => "VARCHAR(20) DEFAULT ''", + 'year' => "VARCHAR(10) DEFAULT ''", + ], + 'psi_suppliers' => [ + 'type' => "VARCHAR(20) DEFAULT ''", + 'grade' => "VARCHAR(20) DEFAULT ''", + 'ontime_rate'=> "DECIMAL(5,2) DEFAULT 0", + 'qc_rate' => "DECIMAL(5,2) DEFAULT 0", + ], + 'psi_purchases' => [ + 'batch_no' => "VARCHAR(40) DEFAULT ''", + 'expected_at' => "VARCHAR(20) DEFAULT ''", + ], + 'psi_sales' => [ + 'region' => "VARCHAR(40) DEFAULT ''", + 'batch_no' => "VARCHAR(40) DEFAULT ''", + ], + 'psi_stock_moves' => [ + 'batch_no' => "VARCHAR(40) DEFAULT ''", + ], + ]; + foreach ($map as $table => $cols) { + try { + $have = $pdo->query("SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='{$table}'")->fetchAll(\PDO::FETCH_COLUMN); + } catch (\Throwable $e) { + continue; + } + foreach ($cols as $c => $def) { + if (!in_array($c, $have, true)) { + try { + $pdo->exec("ALTER TABLE `{$table}` ADD COLUMN `{$c}` {$def}"); + $msgs[] = "已添加 {$table}.{$c}"; + } catch (\Throwable $e) {} + } + } + } + } + + private static function modelMap(): array + { + return [ + 'categories' => new \App\Models\Category(), + 'products' => new \App\Models\Product(), + 'news' => new \App\Models\News(), + 'cases' => new \App\Models\CustomerCase(), + 'pages' => new \App\Models\Page(), + 'banners' => new \App\Models\Banner(), + 'admin_users'=> new \App\Models\AdminUser(), + 'settings' => new \App\Models\Setting(), + 'orders' => new \App\Models\Order(), + 'payments' => new \App\Models\Payment(), + 'crm_customers' => new \App\Models\CRM\Customer(), + 'crm_leads' => new \App\Models\CRM\Lead(), + 'crm_followups' => new \App\Models\CRM\FollowUp(), + 'crm_contacts' => new \App\Models\CRM\Contact(), + 'psi_suppliers' => new \App\Models\PSI\Supplier(), + 'psi_materials' => new \App\Models\PSI\Material(), + 'psi_products' => new \App\Models\PSI\Product(), + 'psi_purchases' => new \App\Models\PSI\Purchase(), + 'psi_sales' => new \App\Models\PSI\Sales(), + 'psi_stock_moves'=> new \App\Models\PSI\StockMove(), + ]; + } +} diff --git a/app/Core/Model.php b/app/Core/Model.php new file mode 100644 index 0000000..c263041 --- /dev/null +++ b/app/Core/Model.php @@ -0,0 +1,162 @@ +table . '.json'; + } + private function read(): array + { + $f = $this->file(); + if (!is_file($f)) return []; + $d = json_decode(file_get_contents($f), true); + return is_array($d) ? $d : []; + } + private function write(array $rows): void + { + $rows = $this->sanitizeUtf8($rows); + // JSON_INVALID_UTF8_SUBSTITUTE (PHP 7.2+) 保证即使存在非法 UTF-8 也不会让 json_encode 返回 false, + // 避免 file_put_contents(false) 把整个数据文件清空为 0 字节(灾难性数据丢失)。 + $json = json_encode($rows, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_INVALID_UTF8_SUBSTITUTE); + if ($json === false || $json === '') { + error_log('[Model::write] json_encode failed for ' . $this->table . '; aborting write to avoid data loss'); + return; + } + $f = $this->file(); + $dir = dirname($f); + if (!is_dir($dir)) { + @mkdir($dir, 0755, true); + } + // 写入失败(最常见:服务器目录/文件权限不足,PHP 进程无写权限)必须记录日志, + // 否则会“假成功”——页面跳转回去、用户以为保存了,数据却没变。 + $bytes = @file_put_contents($f, $json); + if ($bytes === false) { + $err = error_get_last(); + error_log('[Model::write] FAILED to write ' . $f . ' — ' . ($err['message'] ?? 'unknown error') . + ' | 请检查目录/文件所有者是否为 PHP 运行用户(宝塔通常是 www)并赋予写权限'); + } + } + + /** 递归将数组中的字符串修复为合法 UTF-8,剔除非法字节序列 */ + private function sanitizeUtf8($v) + { + if (is_array($v)) { + return array_map([$this, 'sanitizeUtf8'], $v); + } + if (is_string($v) && !mb_check_encoding($v, 'UTF-8')) { + return mb_convert_encoding($v, 'UTF-8', 'UTF-8'); + } + return $v; + } + private function sort(array &$rows): void + { + $col = $this->orderBy; + usort($rows, function ($a, $b) use ($col) { + $va = $a[$col] ?? 0; $vb = $b[$col] ?? 0; + return $va <=> $vb; + }); + } + + /* ---------- 通用 CRUD ---------- */ + public function all(): array + { + if (Db::driver() === 'mysql') { + return Db::query("SELECT * FROM `{$this->table}` ORDER BY `{$this->orderBy}` ASC")->fetchAll(); + } + $rows = $this->read(); $this->sort($rows); return $rows; + } + + public function find($id) + { + if (Db::driver() === 'mysql') { + return Db::query("SELECT * FROM `{$this->table}` WHERE `{$this->pk}`=?", [$id])->fetch() ?: null; + } + foreach ($this->read() as $r) if (($r[$this->pk] ?? null) == $id) return $r; + return null; + } + + public function where(string $col, $val) + { + if (Db::driver() === 'mysql') { + return Db::query("SELECT * FROM `{$this->table}` WHERE `{$col}`=?", [$val])->fetch() ?: null; + } + foreach ($this->read() as $r) if (($r[$col] ?? null) == $val) return $r; + return null; + } + + public function whereAll(string $col, $val): array + { + if (Db::driver() === 'mysql') { + return Db::query("SELECT * FROM `{$this->table}` WHERE `{$col}`=? ORDER BY `{$this->orderBy}` ASC", [$val])->fetchAll(); + } + $out = []; foreach ($this->read() as $r) if (($r[$col] ?? null) == $val) $out[] = $r; + $this->sort($out); return $out; + } + + public function insert(array $data) + { + if (Db::driver() === 'mysql') { + $cols = array_keys($data); + $sql = "INSERT INTO `{$this->table}` (`" . implode('`,`', $cols) . "`) VALUES (" . implode(',', array_fill(0, count($cols), '?')) . ")"; + Db::query($sql, array_values($data)); + return Db::pdo()->lastInsertId(); + } + $rows = $this->read(); + $id = $rows ? (max(array_column($rows, $this->pk)) + 1) : 1; + $data[$this->pk] = $id; + $rows[] = $data; $this->write($rows); + return $id; + } + + public function update($id, array $data): void + { + if (Db::driver() === 'mysql') { + $cols = array_keys($data); + $sql = "UPDATE `{$this->table}` SET `" . implode('`=?,`', $cols) . "`=? WHERE `{$this->pk}`=?"; + Db::query($sql, array_merge(array_values($data), [$id])); + return; + } + $rows = $this->read(); + foreach ($rows as &$r) { + if (($r[$this->pk] ?? null) == $id) { $r = array_merge($r, $data); break; } + } + $this->write($rows); + } + + public function delete($id): void + { + if (Db::driver() === 'mysql') { + Db::query("DELETE FROM `{$this->table}` WHERE `{$this->pk}`=?", [$id]); + return; + } + $rows = array_filter($this->read(), fn($r) => ($r[$this->pk] ?? null) != $id); + $this->write(array_values($rows)); + } + + /** 按任意列批量删除(用于主从表级联删除从表) */ + public function deleteRaw(string $col, $val): void + { + if (Db::driver() === 'mysql') { + Db::query("DELETE FROM `{$this->table}` WHERE `{$col}`=?", [$val]); + return; + } + $rows = array_filter($this->read(), fn($r) => ($r[$col] ?? null) != $val); + $this->write(array_values($rows)); + } + + public function count(): int + { + return count($this->all()); + } +} diff --git a/app/Core/Notify.php b/app/Core/Notify.php new file mode 100644 index 0000000..91fef90 --- /dev/null +++ b/app/Core/Notify.php @@ -0,0 +1,326 @@ +insert([ + 'sys' => $sys, + 'type' => $type, + 'level' => $level, + 'title' => $title, + 'body' => $body, + 'url' => $url, + 'ref_no' => $refNo, + 'recipients' => json_encode($recipients, JSON_UNESCAPED_UNICODE), + 'channels' => json_encode(array_values(array_unique($channels)), JSON_UNESCAPED_UNICODE), + 'read_by' => json_encode([], JSON_UNESCAPED_UNICODE), + 'created_at' => date('Y-m-d H:i:s'), + ]); + } catch (\Throwable $e) { + error_log('[Notify] fire failed: ' . $e->getMessage()); + } + } + + /* ============== 业务便捷方法 ============== */ + + /** 新销售订单 */ + public static function newSalesOrder(string $orderNo, string $customer, string $salesman, int $id): void + { + $title = "【紧急】新销售订单待跟进:{$orderNo}"; + $body = "客户:{$customer}\n负责人:{$salesman}\n订单号:{$orderNo}\n请尽快处理并安排发货。"; + self::fire('sales_order', $title, $body, [ + 'level' => 'urgent', 'ref_no' => $orderNo, 'url' => "PSI/sales_orders/show/{$id}", + ]); + } + + /** 新采购订单 */ + public static function newPurchaseOrder(string $orderNo, string $supplier, string $buyer, int $id): void + { + $title = "【紧急】新采购订单待处理:{$orderNo}"; + $body = "供应商:{$supplier}\n采购人:{$buyer}\n订单号:{$orderNo}\n请尽快审核并安排收货。"; + self::fire('purchase_order', $title, $body, [ + 'level' => 'urgent', 'ref_no' => $orderNo, 'url' => "PSI/purchase_orders/show/{$id}", + ]); + } + + /** 新客户订单(来自前台网站下单) */ + public static function newCustomerOrder(string $orderNo, string $customer, string $phone, int $id): void + { + $title = "【紧急】收到新客户订单:{$orderNo}"; + $body = "客户:{$customer}\n电话:{$phone}\n订单号:{$orderNo}\n请尽快联系客户并安排发货。"; + self::fire('customer_order', $title, $body, [ + 'level' => 'urgent', 'ref_no' => $orderNo, 'url' => "PSI/orders/show/{$id}", + ]); + } + + /** 低库存预警(库存跌破阈值时触发) */ + public static function lowStockEvent(string $itemType, string $name, float $stock, float $threshold, int $itemId): void + { + $kind = $itemType === 'product' ? '成品' : '物料'; + $title = "【紧急】{$kind}库存不足:{$name}"; + $body = "{$kind}:{$name}\n当前库存:{$stock}\n预警阈值:{$threshold}\n请及时补货。"; + self::fire('low_stock', $title, $body, [ + 'level' => 'urgent', 'ref_no' => $name, 'url' => "PSI/stock", + ]); + } + + /* ============== 收件人与开关 ============== */ + + private static function recipients(): array + { + $s = new Setting(); + $emailTo = trim((string) $s->get('notify_email_to', ''), " \t\n\r,"); + $wechat = trim((string) $s->get('notify_wechat_mention', ''), " \t\n\r,"); + return [ + 'email' => $emailTo === '' ? [] : array_filter(array_map('trim', explode(',', $emailTo))), + 'wechat' => $wechat === '' ? [] : array_filter(array_map('trim', explode(',', $wechat))), + ]; + } + + private static function masterEnabled(): bool + { + return (int) (new Setting())->get('notify_enabled', 0) === 1; + } + + private static function emailEnabled(): bool + { + if (!self::masterEnabled()) return false; + return (int) (new Setting())->get('notify_email_enabled', 0) === 1; + } + + private static function wechatEnabled(): bool + { + if (!self::masterEnabled()) return false; + return (int) (new Setting())->get('notify_wechat_enabled', 0) === 1 + && trim((string) (new Setting())->get('notify_wechat_webhook', '')) !== ''; + } + + public static function lowStockEnabled(): bool + { + return (int) (new Setting())->get('notify_lowstock_enabled', 1) === 1; + } + + public static function lowStockThreshold(): float + { + return (float) (new Setting())->get('notify_lowstock_threshold', 20); + } + + /* ============== 邮件发送 ============== */ + + private static function sendEmail(array $to, string $subject, string $body, string $url, string $level): bool + { + $s = new Setting(); + $host = trim((string) $s->get('notify_email_smtp_host', '')); + $port = (int) $s->get('notify_email_smtp_port', 465); + $user = trim((string) $s->get('notify_email_smtp_user', '')); + $pass = trim((string) $s->get('notify_email_smtp_pass', '')); + $from = trim((string) $s->get('notify_email_from', '')); + if ($from === '') $from = $user; + $html = self::emailHtml($subject, $body, $url, $level); + + if ($host !== '' && $user !== '') { + $scheme = ($port === 465) ? 'ssl' : 'tls'; + return self::smtpSend($host, $port, $scheme, $user, $pass, $from, $to, $subject, $html); + } + + // 回退:PHP 内置 mail() + $headers = "MIME-Version: 1.0\r\n"; + $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; + $headers .= "From: {$from}\r\n"; + $ok = true; + foreach ($to as $t) { + if (!@mail($t, '=?UTF-8?B?' . base64_encode($subject) . '?=', $html, $headers)) $ok = false; + } + return $ok; + } + + private static function emailHtml(string $subject, string $body, string $url, string $level): string + { + $lines = nl2br(htmlspecialchars($body, ENT_QUOTES, 'UTF-8')); + $link = $url ? App::url($url) : ''; + $urgent = $level === 'urgent' ? '紧急事件' : '通知'; + return << +
+
酷冰甲 · PSI 进销存 {$urgent}
+
+
{$subject}
+
{$lines}
+ {$link} +
+ +
本邮件由系统自动发出,请勿直接回复。
+
+HTML; + } + + private static function smtpSend(string $host, int $port, string $scheme, string $user, string $pass, string $from, array $to, string $subject, string $html): bool + { + $timeout = 15; + $ctx = $scheme === 'ssl' + ? stream_context_create(['ssl' => ['verify_peer' => false, 'verify_peer_name' => false]]) + : null; + $prefix = $scheme === 'ssl' ? 'ssl://' : ''; + $fp = @stream_socket_client($prefix . $host . ':' . $port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $ctx); + if (!$fp) return false; + + $talk = function ($cmd = null) use ($fp) { + if ($cmd !== null) fwrite($fp, $cmd . "\r\n"); + $res = ''; + while (($line = fgets($fp, 600)) !== false) { + $res .= $line; + if (isset($line[3]) && $line[3] === ' ') break; // 单行响应(响应码后的第4个字符是空格) + if ($line === '') break; + } + return $res; + }; + + $talk(null); // 欢迎语 + $talk('EHLO ' . (gethostname() ?: 'localhost')); + if ($scheme === 'tls' || $port === 587 || $port === 25) { + $r = $talk('STARTTLS'); + if (strpos($r, '220') === 0) { + if (!@stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { fclose($fp); return false; } + $talk('EHLO ' . (gethostname() ?: 'localhost')); + } + } + if ($user !== '') { + $talk('AUTH LOGIN'); + $talk(base64_encode($user)); + $talk(base64_encode($pass)); + } + $talk('MAIL FROM:<' . $from . '>'); + foreach ($to as $t) $talk('RCPT TO:<' . $t . '>'); + $talk('DATA'); + $headers = "From: {$from}\r\n"; + $headers .= "To: " . implode(', ', $to) . "\r\n"; + $headers .= "Subject: =?UTF-8?B?" . base64_encode($subject) . "?=\r\n"; + $headers .= "MIME-Version: 1.0\r\n"; + $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; + $talk($headers . "\r\n" . $html . "\r\n."); + $talk('QUIT'); + fclose($fp); + return true; + } + + /* ============== 企业微信(群机器人 webhook) ============== */ + + private static function sendWeChat(string $title, string $body, string $url, array $mention): bool + { + $webhook = trim((string) (new Setting())->get('notify_wechat_webhook', '')); + if ($webhook === '') return false; + $content = "**{$title}**\n> " . str_replace("\n", "\n> ", $body); + if ($url) $content .= "\n\n[查看详情](" . App::url($url) . ")"; + $payload = ['msgtype' => 'markdown', 'markdown' => ['content' => $content]]; + if ($mention) $payload['markdown']['mentioned_mobile_list'] = array_values($mention); + return self::httpPostJson($webhook, $payload); + } + + private static function httpPostJson(string $url, array $payload): bool + { + $json = json_encode($payload, JSON_UNESCAPED_UNICODE); + if (function_exists('curl_init')) { + $ch = curl_init($url); + curl_setopt_array($ch, [ + CURLOPT_POST => true, + CURLOPT_HTTPHEADER => ['Content-Type: application/json; charset=utf-8'], + CURLOPT_POSTFIELDS => $json, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_TIMEOUT => 10, + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_SSL_VERIFYHOST => 0, + ]); + $res = curl_exec($ch); + curl_close($ch); + return $res !== false; + } + $ctx = stream_context_create([ + 'http' => [ + 'method' => 'POST', + 'header' => "Content-Type: application/json; charset=utf-8\r\n", + 'content' => $json, + 'timeout' => 10, + ], + ]); + $res = @file_get_contents($url, false, $ctx); + return $res !== false; + } + + /* ============== 事件表(按需创建,兼容 MySQL / json 两种存储) ============== */ + + private static function ensureTable(): void + { + if (Db::driver() !== 'mysql') return; // json 模式由 Model 自动建文件 + $sql = "CREATE TABLE IF NOT EXISTS `psi_events` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `sys` VARCHAR(20) NOT NULL DEFAULT 'psi', + `type` VARCHAR(40) NOT NULL DEFAULT '', + `level` VARCHAR(20) NOT NULL DEFAULT 'urgent', + `title` VARCHAR(255) NOT NULL DEFAULT '', + `body` TEXT, + `url` VARCHAR(255) NOT NULL DEFAULT '', + `ref_no` VARCHAR(64) NOT NULL DEFAULT '', + `recipients` TEXT, + `channels` VARCHAR(255) NOT NULL DEFAULT '[\"inapp\"]', + `read_by` TEXT, + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"; + Db::query($sql); + } +} diff --git a/app/Core/Payment/AlipayGateway.php b/app/Core/Payment/AlipayGateway.php new file mode 100644 index 0000000..a47e9e5 --- /dev/null +++ b/app/Core/Payment/AlipayGateway.php @@ -0,0 +1,82 @@ +config['appid']) && !empty($this->config['private_key']); + + if ($this->isDemo() || !$hasCred) { + return [ + 'mode' => 'demo', + 'channel' => 'alipay', + 'simulate' => $simulate, + 'config_missing' => !$hasCred, + ]; + } + + $biz = [ + 'out_trade_no' => $order['order_no'], + 'product_code' => 'FAST_INSTANT_TRADE_PAY', + 'total_amount' => $this->money($order['amount']), + 'subject' => $order['product_name'] ?: '商品购买', + ]; + $params = [ + 'app_id' => $this->config['appid'], + 'method' => 'alipay.trade.page.pay', + 'format' => 'JSON', + 'charset' => 'utf-8', + 'sign_type' => 'RSA2', + 'timestamp' => date('Y-m-d H:i:s'), + 'version' => '1.0', + 'notify_url' => site_url('pay/notify/alipay'), + 'return_url' => site_url('order/success/' . $order['order_no']), + 'biz_content' => json_encode($biz, JSON_UNESCAPED_UNICODE), + ]; + $params['sign'] = $this->sign($params); + $gateway = $this->config['gateway'] ?: 'https://openapi.alipay.com/gateway.do'; + return ['mode' => 'redirect', 'channel' => 'alipay', 'url' => $gateway . '?' . http_build_query($params)]; + } + + /** RSA2 签名 */ + private function sign(array $params): string + { + ksort($params); + $str = ''; + foreach ($params as $k => $v) { + if ($v === '' || $v === null) continue; + $str .= $k . '=' . $v . '&'; + } + $str = rtrim($str, '&'); + $key = $this->normalizeKey($this->config['private_key'] ?? '', false); + openssl_sign($str, $sign, $key, OPENSSL_ALGO_SHA256); + return base64_encode($sign); + } + + private function normalizeKey(string $key, bool $isPublic): string + { + $key = trim($key); + if (strpos($key, '-----BEGIN') === 0) return $key; + $head = $isPublic ? "-----BEGIN PUBLIC KEY-----\n" : "-----BEGIN RSA PRIVATE KEY-----\n"; + $foot = $isPublic ? "\n-----END PUBLIC KEY-----" : "\n-----END RSA PRIVATE KEY-----"; + return $head . chunk_split($key, 64, "\n") . $foot; + } + + public function verifyNotify(array $data): ?string + { + if (empty($data['out_trade_no'])) return null; + $status = $data['trade_status'] ?? ''; + if ($status === 'TRADE_SUCCESS' || $status === 'TRADE_FINISHED') { + // 生产环境应使用支付宝公钥对签名做严格验签后再返回 + return $data['out_trade_no']; + } + return null; + } +} diff --git a/app/Core/Payment/Gateway.php b/app/Core/Payment/Gateway.php new file mode 100644 index 0000000..027f3de --- /dev/null +++ b/app/Core/Payment/Gateway.php @@ -0,0 +1,40 @@ +config = $config; + } + + /** 发起支付,返回渲染数据 + * ['mode'=>'demo','channel'=>?,'simulate'=>url,'config_missing'=>bool] + * ['mode'=>'redirect','channel'=>'alipay','url'=>?] + * ['mode'=>'qrcode','channel'=>'wechat','qr'=>?] + */ + abstract public function pay(array $order): array; + + /** 验证异步通知,成功返回订单号,否则返回 null */ + abstract public function verifyNotify(array $data): ?string; + + protected function isDemo(): bool + { + return ($this->config['mode'] ?? 'demo') === 'demo'; + } + + protected function money($v): string + { + return number_format((float) $v, 2, '.', ''); + } +} diff --git a/app/Core/Payment/GatewayFactory.php b/app/Core/Payment/GatewayFactory.php new file mode 100644 index 0000000..17361ed --- /dev/null +++ b/app/Core/Payment/GatewayFactory.php @@ -0,0 +1,35 @@ +get('pay_mode', 'demo'); + $enabled = $s->get('pay_enabled', '1'); + + if ($channel === 'alipay') { + return new AlipayGateway([ + 'mode' => $mode, + 'enabled' => $enabled, + 'appid' => $s->get('pay_alipay_appid', ''), + 'private_key' => $s->get('pay_alipay_private_key', ''), + 'public_key' => $s->get('pay_alipay_public_key', ''), + 'gateway' => $s->get('pay_alipay_gateway', 'https://openapi.alipay.com/gateway.do'), + ]); + } + return new WechatGateway([ + 'mode' => $mode, + 'enabled' => $enabled, + 'mchid' => $s->get('pay_wechat_mchid', ''), + 'appid' => $s->get('pay_wechat_appid', ''), + 'key' => $s->get('pay_wechat_key', ''), + ]); + } +} diff --git a/app/Core/Payment/OrderService.php b/app/Core/Payment/OrderService.php new file mode 100644 index 0000000..730c7b2 --- /dev/null +++ b/app/Core/Payment/OrderService.php @@ -0,0 +1,32 @@ +where('order_no', $orderNo); + if (!$o || $o['status'] === 'paid') return false; + $order->update($o['id'], [ + 'status' => 'paid', + 'paid_at' => date('Y-m-d H:i:s'), + 'gateway_trade_no' => $tradeNo, + ]); + (new Payment())->insert([ + 'order_id' => $o['id'], + 'order_no' => $orderNo, + 'channel' => $channel, + 'amount' => $o['amount'], + 'trade_no' => $tradeNo, + 'status' => 'paid', + 'created_at' => date('Y-m-d H:i:s'), + 'paid_at' => date('Y-m-d H:i:s'), + ]); + return true; + } +} diff --git a/app/Core/Payment/WechatGateway.php b/app/Core/Payment/WechatGateway.php new file mode 100644 index 0000000..134a925 --- /dev/null +++ b/app/Core/Payment/WechatGateway.php @@ -0,0 +1,89 @@ +config['mchid']) && !empty($this->config['appid']) && !empty($this->config['key']); + + if ($this->isDemo() || !$hasCred) { + return [ + 'mode' => 'demo', + 'channel' => 'wechat', + 'simulate' => $simulate, + 'config_missing' => !$hasCred, + ]; + } + + $params = [ + 'appid' => $this->config['appid'], + 'mch_id' => $this->config['mchid'], + 'nonce_str' => bin2hex(random_bytes(16)), + 'body' => $order['product_name'] ?: '商品购买', + 'out_trade_no' => $order['order_no'], + 'total_fee' => (int) round((float) $order['amount'] * 100), // 分 + 'spbill_create_ip' => $_SERVER['SERVER_ADDR'] ?? '127.0.0.1', + 'notify_url' => site_url('pay/notify/wechat'), + 'trade_type' => 'NATIVE', + ]; + $params['sign'] = $this->sign($params); + $xml = $this->toXml($params); + + $resp = @file_get_contents('https://api.mch.weixin.qq.com/pay/unifiedorder', false, stream_context_create([ + 'http' => ['method' => 'POST', 'header' => 'Content-Type: text/xml', 'content' => $xml, 'timeout' => 8], + ])); + $res = $resp ? $this->fromXml($resp) : []; + + if (!empty($res['code_url'])) { + return ['mode' => 'qrcode', 'channel' => 'wechat', 'qr' => $res['code_url']]; + } + // 调用失败则回退演示,避免卡死 + return ['mode' => 'demo', 'channel' => 'wechat', 'simulate' => $simulate, 'config_missing' => false, 'api_error' => true]; + } + + /** HMAC-SHA256 签名 */ + private function sign(array $params): string + { + ksort($params); + $str = ''; + foreach ($params as $k => $v) { + if ($v === '' || $v === null) continue; + $str .= $k . '=' . $v . '&'; + } + $str .= 'key=' . ($this->config['key'] ?? ''); + return strtoupper(hash_hmac('sha256', $str, $this->config['key'] ?? '')); + } + + private function toXml(array $params): string + { + $xml = ''; + foreach ($params as $k => $v) { + $xml .= "<{$k}>" . htmlspecialchars($v, ENT_XML1) . ""; + } + $xml .= ''; + return $xml; + } + + private function fromXml(string $xml): array + { + $r = @simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); + return $r ? json_decode(json_encode($r), true) : []; + } + + public function verifyNotify(array $data): ?string + { + if (empty($data['out_trade_no'])) return null; + if (($data['result_code'] ?? '') === 'SUCCESS' && ($data['return_code'] ?? '') === 'SUCCESS') { + // 生产环境应重新按 key 验签后返回 + return $data['out_trade_no']; + } + return null; + } +} diff --git a/app/Core/Theme.php b/app/Core/Theme.php new file mode 100644 index 0000000..f57dd84 --- /dev/null +++ b/app/Core/Theme.php @@ -0,0 +1,118 @@ + '酷冰甲 · 降温服', + 'site_slogan' => '科技降温 · 清凉一夏', + 'site_logo' => 'assets/img/logo.png', + 'contact_phone' => '400-1783-998', + 'contact_email' => 'service@st-joyapparel.com', + 'contact_address'=> '江苏省苏州市工业园区', + 'icp' => '', + 'gongan' => '', // 公安备案号(网安备),如 京公网安备11010802012345号 + 'seo_title' => '酷冰甲降温服 - 科技降温服装定制', + 'seo_keywords' => '降温服, cooling clothing, 降温工作服, 清凉服定制', + 'seo_description'=> '酷冰甲专注降温服研发与定制,采用相变蓄冷与循环水冷技术,为高温作业人群提供清凉解决方案。', + // 主题风格 + 'preset' => 'ocean', + 'primary' => '#0ea5e9', + 'primary_600' => '#0284c7', + 'secondary' => '#14b8a6', + 'accent' => '#f59e0b', + 'bg' => '#ffffff', + 'surface' => '#f8fafc', + 'text' => '#0f172a', + 'muted' => '#64748b', + 'border' => '#e2e8f0', + 'nav_bg' => 'rgba(255,255,255,0.72)', + 'font' => "'Noto Sans SC', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif", + 'radius' => '16', + 'container' => '1200', + 'header' => 'center', // center | left | transparent + 'default_mode' => 'light', // light | dark + 'custom_css' => '', + ]; + } + + /** 合并默认值与数据库设置 */ + public static function all(): array + { + if (self::$cache !== null) return self::$cache; + $def = self::defaults(); + $setting = new \App\Models\Setting(); + $saved = $setting->allKV(); + self::$cache = array_merge($def, $saved); + return self::$cache; + } + + public static function get(string $key, $default = '') + { + $all = self::all(); + return $all[$key] ?? $default; + } + + public static function clearCache(): void + { + self::$cache = null; + } + + /** 预设主题(后台一键套用) */ + public static function presets(): array + { + return [ + 'ocean' => ['label' => '海洋蓝', 'vars' => ['primary'=>'#0ea5e9','primary_600'=>'#0284c7','secondary'=>'#14b8a6','accent'=>'#f59e0b','bg'=>'#ffffff','surface'=>'#f8fafc','text'=>'#0f172a','muted'=>'#64748b','border'=>'#e2e8f0','nav_bg'=>'rgba(255,255,255,0.72)']], + 'forest' => ['label' => '森野绿', 'vars' => ['primary'=>'#16a34a','primary_600'=>'#15803d','secondary'=>'#0d9488','accent'=>'#f97316','bg'=>'#ffffff','surface'=>'#f6fdf8','text'=>'#0f172a','muted'=>'#5b7065','border'=>'#dcefe2','nav_bg'=>'rgba(255,255,255,0.72)']], + 'aurora' => ['label' => '极光紫', 'vars' => ['primary'=>'#8b5cf6','primary_600'=>'#7c3aed','secondary'=>'#06b6d4','accent'=>'#ec4899','bg'=>'#ffffff','surface'=>'#faf7ff','text'=>'#1e1b2e','muted'=>'#6b6480','border'=>'#ece6f7','nav_bg'=>'rgba(255,255,255,0.72)']], + 'sunset' => ['label' => '日落橙', 'vars' => ['primary'=>'#f97316','primary_600'=>'#ea580c','secondary'=>'#ef4444','accent'=>'#facc15','bg'=>'#ffffff','surface'=>'#fffaf3','text'=>'#1c1917','muted'=>'#78716c','border'=>'#faead7','nav_bg'=>'rgba(255,255,255,0.72)']], + 'mono' => ['label' => '极简黑金', 'vars' => ['primary'=>'#111827','primary_600'=>'#000000','secondary'=>'#ca8a04','accent'=>'#ca8a04','bg'=>'#ffffff','surface'=>'#fafafa','text'=>'#111827','muted'=>'#6b7280','border'=>'#e5e7eb','nav_bg'=>'rgba(255,255,255,0.75)']], + 'ice' => ['label' => '冰晶青', 'vars' => ['primary'=>'#06b6d4','primary_600'=>'#0891b2','secondary'=>'#3b82f6','accent'=>'#22d3ee','bg'=>'#ffffff','surface'=>'#f0fbfd','text'=>'#0c1a24','muted'=>'#5b7686','border'=>'#d3eef5','nav_bg'=>'rgba(255,255,255,0.72)']], + ]; + } + + /** 生成 theme.css 文本 */ + public static function buildCss(): string + { + $t = self::all(); + $v = function ($k) use ($t) { return $t[$k] ?? ''; }; + $css = ":root{\n"; + $css .= " --c-primary:{$v('primary')};\n"; + $css .= " --c-primary-600:{$v('primary_600')};\n"; + $css .= " --c-secondary:{$v('secondary')};\n"; + $css .= " --c-accent:{$v('accent')};\n"; + $css .= " --c-bg:{$v('bg')};\n"; + $css .= " --c-surface:{$v('surface')};\n"; + $css .= " --c-text:{$v('text')};\n"; + $css .= " --c-muted:{$v('muted')};\n"; + $css .= " --c-border:{$v('border')};\n"; + $css .= " --nav-bg:{$v('nav_bg')};\n"; + $css .= " --font-base:{$v('font')};\n"; + $css .= " --radius:{$v('radius')}px;\n"; + $css .= " --container:{$v('container')}px;\n"; + $css .= "}\n"; + $css .= "[data-theme=\"dark\"]{\n"; + $css .= " --c-bg:#0b1120;--c-surface:#111827;--c-text:#e5e7eb;--c-muted:#94a3b8;--c-border:#1f2937;--nav-bg:rgba(11,17,32,0.72);\n"; + $css .= "}\n"; + $css .= $v('custom_css') . "\n"; + return $css; + } + + /** 重新生成主题 CSS 文件 */ + public static function regenerate(): bool + { + $dir = dirname(self::$cssPath); + if (!is_dir($dir)) mkdir($dir, 0755, true); + return (bool) file_put_contents(self::$cssPath, self::buildCss()); + } +} diff --git a/app/Core/View.php b/app/Core/View.php new file mode 100644 index 0000000..e078bae --- /dev/null +++ b/app/Core/View.php @@ -0,0 +1,26 @@ + $content])); + } + return $content; + } +} diff --git a/app/Models/AdminUser.php b/app/Models/AdminUser.php new file mode 100644 index 0000000..6c61722 --- /dev/null +++ b/app/Models/AdminUser.php @@ -0,0 +1,15 @@ +where('username', $u); + } +} diff --git a/app/Models/Banner.php b/app/Models/Banner.php new file mode 100644 index 0000000..9e9e605 --- /dev/null +++ b/app/Models/Banner.php @@ -0,0 +1,10 @@ +all(), fn($c) => ($c['status'] ?? 1) == 1); + return array_slice($all, 0, $limit); + } +} diff --git a/app/Models/News.php b/app/Models/News.php new file mode 100644 index 0000000..0d002e1 --- /dev/null +++ b/app/Models/News.php @@ -0,0 +1,16 @@ +all(), fn($n) => ($n['status'] ?? 1) == 1); + return array_slice($all, 0, $limit); + } +} diff --git a/app/Models/Order.php b/app/Models/Order.php new file mode 100644 index 0000000..1f13067 --- /dev/null +++ b/app/Models/Order.php @@ -0,0 +1,26 @@ +where('order_no', $no); + } + + /** 某客户的订单列表(按手机号或邮箱匹配) */ + public function byCustomer(string $phone): array + { + $out = []; + foreach ($this->all() as $r) { + if (($r['phone'] ?? '') === $phone || ($r['email'] ?? '') === $phone) $out[] = $r; + } + return $out; + } +} diff --git a/app/Models/PSI/Event.php b/app/Models/PSI/Event.php new file mode 100644 index 0000000..5eb6248 --- /dev/null +++ b/app/Models/PSI/Event.php @@ -0,0 +1,13 @@ +where('slug', $slug); + } +} diff --git a/app/Models/PageSeo.php b/app/Models/PageSeo.php new file mode 100644 index 0000000..8f028e5 --- /dev/null +++ b/app/Models/PageSeo.php @@ -0,0 +1,57 @@ +table} WHERE page_key = ?", [$key])->fetch(); + return $row ?: null; + } + + /** 全部以 page_key 为索引返回 */ + public function allIndexed(): array + { + $rows = Db::query("SELECT * FROM {$this->table} ORDER BY sort ASC, id ASC")->fetchAll(); + $out = []; + foreach ($rows as $r) { + $out[$r['page_key']] = $r; + } + return $out; + } + + /** 存在则更新,不存在则插入 */ + public function saveRow(string $key, array $data): void + { + $exists = Db::query("SELECT 1 FROM {$this->table} WHERE page_key = ?", [$key])->fetch(); + if ($exists) { + $sets = []; + $params = []; + foreach ($data as $k => $v) { + $sets[] = "`{$k}` = ?"; + $params[] = $v; + } + $params[] = $key; + Db::query("UPDATE {$this->table} SET " . implode(', ', $sets) . " WHERE page_key = ?", $params); + } else { + $cols = array_keys($data); + $ph = array_fill(0, count($cols), '?'); + Db::query( + "INSERT INTO {$this->table} (`page_key`, `" . implode('`,`', $cols) . "`) VALUES (?, " . implode(',', $ph) . ")", + array_merge([$key], array_values($data)) + ); + } + } +} diff --git a/app/Models/Payment.php b/app/Models/Payment.php new file mode 100644 index 0000000..2e20a12 --- /dev/null +++ b/app/Models/Payment.php @@ -0,0 +1,10 @@ +whereAll('category_id', $catId); + } + public function featured(int $limit = 6): array + { + return array_slice(array_filter($this->all(), fn($p) => ($p['status'] ?? 1) == 1), 0, $limit); + } + public function specsArray($p): array + { + $s = $p['specs'] ?? ''; + if (is_array($s)) return $s; + $dec = json_decode((string)$s, true); + return is_array($dec) ? $dec : []; + } + public function galleryArray($p): array + { + $g = $p['gallery'] ?? ''; + if (is_array($g)) return $g; + $dec = json_decode((string)$g, true); + return is_array($dec) ? $g : []; + } +} diff --git a/app/Models/Setting.php b/app/Models/Setting.php new file mode 100644 index 0000000..df5a37c --- /dev/null +++ b/app/Models/Setting.php @@ -0,0 +1,42 @@ +where('skey', $key); + return $row ? $row['sval'] : $default; + } + + /** 批量读取为 [skey => sval] */ + public function allKV(): array + { + $out = []; + foreach ($this->all() as $r) $out[$r['skey']] = $r['sval']; + return $out; + } + + /** 设置(不存在则新增) */ + public function set(string $key, $val, string $group = 'site'): void + { + $row = $this->where('skey', $key); + if ($row) { + $this->update($row['id'], ['sval' => $val, 'sgroup' => $group]); + } else { + $this->insert(['skey' => $key, 'sval' => $val, 'sgroup' => $group]); + } + } + + /** 批量保存 */ + public function saveMany(array $pairs, string $group = 'site'): void + { + foreach ($pairs as $k => $v) $this->set($k, $v, $group); + } +} diff --git a/app/Views/admin/banner_form.php b/app/Views/admin/banner_form.php new file mode 100644 index 0000000..7faaf53 --- /dev/null +++ b/app/Views/admin/banner_form.php @@ -0,0 +1,30 @@ + +
+

背景可填 CSS 渐变或图片地址
+ ← 返回 +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ id="st"> +
+
+ + 取消 +
+ +
diff --git a/app/Views/admin/banners.php b/app/Views/admin/banners.php new file mode 100644 index 0000000..a242d48 --- /dev/null +++ b/app/Views/admin/banners.php @@ -0,0 +1,23 @@ +
+

轮播管理

首页轮播图(背景支持渐变或图片)
+ + 新增轮播 +
+
+
+ + + + + + + + + + +
背景标题副标题链接操作
🖼
+
+ 编辑 +
+
+
+ diff --git a/app/Views/admin/cases.php b/app/Views/admin/cases.php new file mode 100644 index 0000000..27e4d47 --- /dev/null +++ b/app/Views/admin/cases.php @@ -0,0 +1,32 @@ +
+

客户案例管理

客户案例展示,可像新闻一样持续新增
+ + 新增案例 +
+
+ + + + + + + + + + + + + + + +
封面案例标题模式客户行业日期状态操作
🤝
展示中' : '隐藏'; ?> +
+ 编辑 +
+
+
+
+ diff --git a/app/Views/admin/cases_builder.php b/app/Views/admin/cases_builder.php new file mode 100644 index 0000000..2771a8c --- /dev/null +++ b/app/Views/admin/cases_builder.php @@ -0,0 +1,92 @@ + +
+
+

可视化编辑

+
可视化编辑:拖拽文字 / 图片 / 按钮自由排版,保存后前台按此布局整页展示。
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + 'case', 'layout' => $layout]); ?> +
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + + diff --git a/app/Views/admin/cases_form.php b/app/Views/admin/cases_form.php new file mode 100644 index 0000000..e0b67dd --- /dev/null +++ b/app/Views/admin/cases_form.php @@ -0,0 +1,167 @@ + +
+
+

固定版面

+
固定版面:填写案例信息 / 封面,详情使用富文本编辑器排版
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+ +
+ + + +
+

已上传封面;重新选择文件将替换,留空则保留。

+ + +
+ +
+ +
+ + + + + + + + + +
+
+ +

直接排版正文即可;点击「图片」可从素材库选择或上传新图。保存后前台固定版式展示。

+
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + + + + + + diff --git a/app/Views/admin/categories.php b/app/Views/admin/categories.php new file mode 100644 index 0000000..ed1217e --- /dev/null +++ b/app/Views/admin/categories.php @@ -0,0 +1,30 @@ +
+

分类管理

产品系列分类
+ + 新增分类 +
+
+ + + + + + + + + + + + + +
图标名称标识模式描述操作
+
+ 编辑 +
+
+
+
+ diff --git a/app/Views/admin/category_builder.php b/app/Views/admin/category_builder.php new file mode 100644 index 0000000..884f887 --- /dev/null +++ b/app/Views/admin/category_builder.php @@ -0,0 +1,83 @@ + +
+
+

可视化编辑

+
可视化编辑:拖拽文字 / 图片 / 按钮自由排版分类内容,保存后可用于前台展示或后续扩展。
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + + +
+
+
+
+
+
+
+
+ +
+ + 'category', 'layout' => $layout]); ?> +
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + + diff --git a/app/Views/admin/category_form.php b/app/Views/admin/category_form.php new file mode 100644 index 0000000..22d63b8 --- /dev/null +++ b/app/Views/admin/category_form.php @@ -0,0 +1,101 @@ + +
+
+

固定版面

+
固定版面:填写分类名称 / 图标 / 描述等基本信息
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + +
+
+
+
+
+
+
+
+ +
+ + +

纯文本描述,保存后前台分类列表展示。如需复杂排版可切换为可视化编辑。

+
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + diff --git a/app/Views/admin/dashboard.php b/app/Views/admin/dashboard.php new file mode 100644 index 0000000..8ff162e --- /dev/null +++ b/app/Views/admin/dashboard.php @@ -0,0 +1,42 @@ +
+

仪表盘

网站数据概览与快捷操作
+ 新增产品 +
+ +
+
产品数量
+
分类数量
+
新闻数量
+
轮播数量
+
+ +
+

最近新闻

+

暂无新闻

+ + + + + + + + + + +
标题发布日期操作
编辑
+ +
+ + diff --git a/app/Views/admin/db_browse.php b/app/Views/admin/db_browse.php new file mode 100644 index 0000000..898ed37 --- /dev/null +++ b/app/Views/admin/db_browse.php @@ -0,0 +1,59 @@ + +
+
+

表:

+
条记录,主键:
+
+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + +
操作
+ 编辑 + 删除 +
无记录
+
+ + 1): ?> +
+ 1): ?>← 上一页第 ' . $page . ' / ' . $totalPages . ' 页'; + if ($page < $totalPages): ?>下一页 → +
+ +
diff --git a/app/Views/admin/db_form.php b/app/Views/admin/db_form.php new file mode 100644 index 0000000..21444df --- /dev/null +++ b/app/Views/admin/db_form.php @@ -0,0 +1,52 @@ + +
+
+

+
表: 主键:
+
+ ← 返回列表 +
+ +
+
+ + +
+ +
+ + +
+ + 取消 +
+
+
diff --git a/app/Views/admin/db_tables.php b/app/Views/admin/db_tables.php new file mode 100644 index 0000000..d866d7d --- /dev/null +++ b/app/Views/admin/db_tables.php @@ -0,0 +1,49 @@ + +
+
+

数据库管理

+
查看并维护数据库中所有表的数据,可进行浏览、编辑、新增与删除。
+
+ 数据库升级 +
+ + +
+
当前为 文件存储模式,不支持在线数据库管理。可用数据文件如下(只读):
+ + + + + + + + +
数据文件大小
B
无数据文件
+
+ +
+
张表
+
+ + + + + + + + + + + + + + + + + +
表名引擎记录数大小操作
+ 浏览数据 +
+
+
+ diff --git a/app/Views/admin/login.php b/app/Views/admin/login.php new file mode 100644 index 0000000..1820757 --- /dev/null +++ b/app/Views/admin/login.php @@ -0,0 +1,25 @@ + diff --git a/app/Views/admin/news.php b/app/Views/admin/news.php new file mode 100644 index 0000000..eeebdd4 --- /dev/null +++ b/app/Views/admin/news.php @@ -0,0 +1,31 @@ +
+

新闻管理

新闻动态与案例
+ + 写新闻 +
+
+ + + + + + + + + + + + + + +
封面标题模式作者日期状态操作
📰
已发布' : '草稿'; ?> +
+ 编辑 +
+
+
+
+ diff --git a/app/Views/admin/news_builder.php b/app/Views/admin/news_builder.php new file mode 100644 index 0000000..da4d85a --- /dev/null +++ b/app/Views/admin/news_builder.php @@ -0,0 +1,88 @@ + +
+
+

可视化编辑

+
可视化编辑:拖拽文字 / 图片 / 按钮自由排版,保存后前台按此布局整页展示。
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + + +
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + 'news', 'layout' => $layout]); ?> +
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + + diff --git a/app/Views/admin/news_form.php b/app/Views/admin/news_form.php new file mode 100644 index 0000000..fd55c40 --- /dev/null +++ b/app/Views/admin/news_form.php @@ -0,0 +1,163 @@ + +
+
+

固定版面

+
固定版面:填写标题 / 摘要 / 封面,正文使用富文本编辑器排版
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + +
+
+
+
+
+
+
+ +
+ + + +
+

已上传封面;重新选择文件将替换,留空则保留。

+ + +
+ +
+ +
+ + + + + + + + + +
+
+ +

直接排版正文即可;点击「图片」可从素材库选择或上传新图。保存后前台固定版式展示。

+
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + + + + + + diff --git a/app/Views/admin/order_show.php b/app/Views/admin/order_show.php new file mode 100644 index 0000000..9647209 --- /dev/null +++ b/app/Views/admin/order_show.php @@ -0,0 +1,33 @@ + +
+

订单详情

订单号
+ ← 返回列表 +
+
+ + + + + + + + + +
商品
客户/
数量
金额¥
支付通道
状态
网关交易号
下单时间
+ +
+ +
+ + +

付款记录

+ + + + + + + +
通道交易号金额状态付款时间
¥
+ +
diff --git a/app/Views/admin/orders.php b/app/Views/admin/orders.php new file mode 100644 index 0000000..82a58ed --- /dev/null +++ b/app/Views/admin/orders.php @@ -0,0 +1,37 @@ + +

订单管理

查看客户下单与付款状态(超级管理员 / 管理员可见)
+
+ + + + + + + + + + + + + + + + + +
订单号商品客户数量金额通道状态下单时间操作

¥已支付' + : '待支付'; ?> +
+ 详情 + +
+ +
+ +
+ +
+
+
+

暂无订单

+
diff --git a/app/Views/admin/page_builder.php b/app/Views/admin/page_builder.php new file mode 100644 index 0000000..4a6bc06 --- /dev/null +++ b/app/Views/admin/page_builder.php @@ -0,0 +1,120 @@ + +
+
+
+ ← 返回 + 可视化编辑: + 可视化编辑 + +
+ + +
+ +
+
+ + + + +
+
+ +
+ + + + +
+
+
+ + + +
+
+ + + + + diff --git a/app/Views/admin/page_form.php b/app/Views/admin/page_form.php new file mode 100644 index 0000000..b14f6c0 --- /dev/null +++ b/app/Views/admin/page_form.php @@ -0,0 +1,103 @@ + +
+
+

编辑单页:固定版面

+
固定版面:页面套用统一模板(标题区 + 正文 + 联系按钮),您只需编辑正文内容。
+
+ +
+ + +
+ +
+ +
+
+ + +
+ +
+ +
+ + + + + + + + + +
+
+ +

直接排版正文即可;切换「可视化编辑」可自由拖拽布局。保存后页面以统一版式展示。

+
+ +
+ + 取消 +
+
+
+ + + + + + + + diff --git a/app/Views/admin/pages.php b/app/Views/admin/pages.php new file mode 100644 index 0000000..ed1a629 --- /dev/null +++ b/app/Views/admin/pages.php @@ -0,0 +1,23 @@ +
+

单页管理

关于我们 / 服务优势 / 客户案例 / 荣誉资质
+
+
+ + + + + + + + + + + + +
标识标题模式更新时间操作
编辑
+ +
diff --git a/app/Views/admin/parts/builder.php b/app/Views/admin/parts/builder.php new file mode 100644 index 0000000..75b4b14 --- /dev/null +++ b/app/Views/admin/parts/builder.php @@ -0,0 +1,60 @@ + +
+ + + + +
+
+
+ + + +
+ + diff --git a/app/Views/admin/password.php b/app/Views/admin/password.php new file mode 100644 index 0000000..dcb14e5 --- /dev/null +++ b/app/Views/admin/password.php @@ -0,0 +1,17 @@ + +
+

修改密码

修改当前登录账号()的密码
+
+
+
+
+
+ +
+
+
+
+ +
+
+
diff --git a/app/Views/admin/payment.php b/app/Views/admin/payment.php new file mode 100644 index 0000000..2f1d003 --- /dev/null +++ b/app/Views/admin/payment.php @@ -0,0 +1,34 @@ + +

支付设置

配置支付宝 / 微信支付通道;未配置商户号时默认「演示模式」,整条支付链路可正常走通。
+
+
+ +
+
+ +
+
+ +
+
+ +

支付宝(电脑网站支付)

+
+
+
+
+ +

微信支付(NATIVE 扫码)

+
+
+
+ +
+
+
diff --git a/app/Views/admin/product_builder.php b/app/Views/admin/product_builder.php new file mode 100644 index 0000000..ef9f645 --- /dev/null +++ b/app/Views/admin/product_builder.php @@ -0,0 +1,93 @@ + +
+
+

可视化编辑

+
可视化编辑:拖拽文字 / 图片 / 按钮自由排版,可放置「购买 / 价格 / 规格」专用块(自动读取本产品数据)。
+
+
+ + +
+
+ +
+
+ + + + +
+
+ + +
+
+
+
+
+ +
+ +
+
+
+
+ +
+ + 'product', 'layout' => $layout]); ?> +
+ +
+ + +
+ +
+
+
+
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + + diff --git a/app/Views/admin/product_form.php b/app/Views/admin/product_form.php new file mode 100644 index 0000000..4a27121 --- /dev/null +++ b/app/Views/admin/product_form.php @@ -0,0 +1,199 @@ + +
+
+

固定版面

+
固定版面:填写资料并上传封面 / 图集,图片自适应展示
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + +
+
+ + +
+
+
+
+
+ +
+ +
+ + + +
+

已上传封面;重新选择文件将替换,留空则保留。

+ + +
+ +
+ + + + + + +
+ +
+ +
+ + + + + + + + + +
+
+ +

直接排版正文即可;点击「图片」可从素材库选择或上传新图。保存后前台固定版式展示。

+
+ +
+ + +
+ +
+
+
+
+ +
+ id="st"> +
+ +
+ + 取消 +
+
+
+ + + + + + + + + diff --git a/app/Views/admin/products.php b/app/Views/admin/products.php new file mode 100644 index 0000000..08fa064 --- /dev/null +++ b/app/Views/admin/products.php @@ -0,0 +1,36 @@ +all() as $c) $cmap[$c['id']] = $c['name']; +?> +
+

产品管理

管理降温服产品与上下架
+ + 新增产品 +
+ +
+ + + + + + + + + + + + + + +
封面名称分类价格模式状态操作

¥已上线' : '草稿'; ?> +
+ 编辑 +
+
+
+ +
diff --git a/app/Views/admin/seo.php b/app/Views/admin/seo.php new file mode 100644 index 0000000..391af68 --- /dev/null +++ b/app/Views/admin/seo.php @@ -0,0 +1,76 @@ +' . $emptyTxt . ''; + $cls = $n >= $min ? 'badge-ok' : 'badge-warn'; + return '' . $n . ($min > 0 ? '(≥' . $min . ')' : '') . ''; +} +?> +
+
+

SEO 设置

+

逐页维护搜索结果展示信息。点击任一页面进入独立编辑页,带实时字数提示。

+
+ +
+ + + +
+ $meta): + $v = $rows[$key] ?? []; + $title = $v['title'] ?? ''; + $desc = $v['description'] ?? ''; + $tLen = seo_len($title); + $dLen = seo_len($desc); + $kwN = seo_kwcount($v['keywords'] ?? ''); + $noindex = !empty($v['noindex']); + ?> + +
+ + +
+
+ + + + noindex +
+
+
+
编辑此页 ›
+
+ +
+ + diff --git a/app/Views/admin/seo_edit.php b/app/Views/admin/seo_edit.php new file mode 100644 index 0000000..4da2188 --- /dev/null +++ b/app/Views/admin/seo_edit.php @@ -0,0 +1,128 @@ + 'website(普通页)', 'article' => 'article(文章/资讯)', 'product' => 'product(商品)']; +$idp = preg_replace('/[^a-z0-9]/', '', $key); +?> +
+
+

SEO 设置 ·

+

+ 页面标识 + · +

+
+ +
+ + + +
+ + +
+

搜索结果展示(SERP)

+
+
+ + +
+ 建议 35–60 字符(含品牌名更好);当前 +
+
+ +
+ + +
+ 建议 120–160 字符;当前 +
+
+ +
+ + +
+ 建议 + 个;当前 +
+
+
+
+ +
+

社交分享(Open Graph / Twitter)

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ +
+ + 返回列表 +
+
+ + diff --git a/app/Views/admin/settings.php b/app/Views/admin/settings.php new file mode 100644 index 0000000..0259f90 --- /dev/null +++ b/app/Views/admin/settings.php @@ -0,0 +1,30 @@ +
+

站点设置

网站名称、联系方式与 SEO 信息
+
+
+
+ +
+
+
+
+
+
+
+
+ + + 选择图片上传将替换当前 Logo;也可在下方直接填写图片路径或网址(留空则保留现有)。当前: + +
+
+
+
+
+
+
+
+ +
+
+
diff --git a/app/Views/admin/system.php b/app/Views/admin/system.php new file mode 100644 index 0000000..4983baf --- /dev/null +++ b/app/Views/admin/system.php @@ -0,0 +1,48 @@ +query("SELECT VERSION()")->fetchColumn() : '—'; +$tz = date_default_timezone_get(); +$storageWritable = is_writable(BASE_PATH . '/storage'); +$uploadWritable = is_writable(BASE_PATH . '/public/uploads'); +$installed = \Core\Installer::isInstalled(); +$info = [ + 'PHP 版本' => $phpVer, + '运行模式' => $sapi, + '数据库驱动' => $dbDriver === 'mysql' ? 'MySQL' : $dbDriver, + '数据库版本' => $dbVer, + '系统时区' => $tz, + '站点已安装' => $installed ? '是' : '否', + '根目录' => BASE_PATH, + '存储目录可写' => $storageWritable ? '✓ 可写' : '✗ 不可写', + '上传目录可写' => $uploadWritable ? '✓ 可写' : '✗ 不可写', +]; +?> +
+

系统设置

查看运行环境与数据库维护入口。
+
+ +
+

运行环境

+ + + $v): ?> + + + +
+
+ + diff --git a/app/Views/admin/theme.php b/app/Views/admin/theme.php new file mode 100644 index 0000000..154bbed --- /dev/null +++ b/app/Views/admin/theme.php @@ -0,0 +1,90 @@ +
+

🎨 风格设置

一键设置任意网页风格:配色 / 字体 / 圆角 / 导航 / 明暗 / 自定义 CSS,保存后立即生效
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +

品牌配色

+
+
+
+
+
+
+ +

界面底色(浅色模式)

+
+
+
+
+
+
+
+
+ +

排版与布局

+
+
+ + +
+
+
+
+ + +
+
+ +

自定义 CSS(高级)

+
+ + +
+ +
+
+
+
+ 主按钮 + 次按钮 +
+
+ +
+ + 查看前台效果 +
+
+
+ + diff --git a/app/Views/admin/upgrade.php b/app/Views/admin/upgrade.php new file mode 100644 index 0000000..99011bd --- /dev/null +++ b/app/Views/admin/upgrade.php @@ -0,0 +1,105 @@ + +
+
+

数据库升级

+
将升级包(*.sql)放入 install/upgrades/ 目录后,系统自动提示可升级;每次升级均留痕记录。
+
+ 数据库管理 +
+ + +
+
当前为文件存储模式,不支持 SQL 升级。请切换到 MySQL 后使用本功能。
+
+ + + 0): ?> +
+
+ +
+ 发现 个可升级数据库脚本 +
执行后将在「升级记录」中留痕,可随时追溯。
+
+
+ ⬆️ 立即全部升级 +
+ +
✓ 数据库已是最新,没有待升级的脚本。
+ + +
+

升级包(install/upgrades/)

+ +
暂无升级包。将 *.sql 文件放入 install/upgrades/ 目录即可在此处升级。
+ +
+ + + + + + + + + + + + + + + +
文件名大小修改时间状态操作
B + 已应用 + 内容已变更 + 待升级 + + + 升级 + +
+
+ +
+ +
+

升级记录(db_upgrades)

+ +
暂无升级记录。
+ +
+ + + + + + + + + + + + + + +
文件名操作人执行时间文件指纹(MD5)
+
+ +
+ +
+

基础初始化工具

+

+ 重新执行基础表结构与种子数据补齐(install/schema.sql / install/seed.php)。 + 该操作会补齐缺失的新模块表 / 列,并保留已有订单与管理员账号,但不会覆盖客户已编辑的内容数据。 +

+
+ + +
+
+ + diff --git a/app/Views/admin/user_form.php b/app/Views/admin/user_form.php new file mode 100644 index 0000000..2321f30 --- /dev/null +++ b/app/Views/admin/user_form.php @@ -0,0 +1,88 @@ + +
+

+ ← 返回 +
+
+
+ + '客户管理', 'leads' => '商机线索', 'followups' => '跟进记录']; +$psiPages = ['materials' => '物料管理', 'products' => '成品管理', 'suppliers' => '供应商', 'purchases' => '采购入库', 'sales' => '销售出库', 'stock' => '库存流水']; +?> +
+
+ +
+ + > + 账号创建后不可修改 +
+
+ + +
+
+ + + 「无」用于纯子系统账号:该账号只通过下方 CRM / PSI 角色进入对应系统,不显示任何后台模块,角色分配更清晰。 +
+
+ + +
+
+ + +
+ +
+ +
+ $l): ?> + + +
+ 未勾选的页面将在侧边栏隐藏,且直接访问会被拦截。 +
+ + +
+ +
+ $l): ?> + + +
+ 未勾选的页面将在侧边栏隐藏,且直接访问会被拦截。 +
+ +
+ + > +
+
+ > + +
+
+ + 取消 +
+
+
diff --git a/app/Views/admin/users.php b/app/Views/admin/users.php new file mode 100644 index 0000000..02c1741 --- /dev/null +++ b/app/Views/admin/users.php @@ -0,0 +1,31 @@ + +
+

用户管理

管理后台账号与权限:超级管理员 / 管理员 / 用户 / 无(纯子系统账号),支持多人协同编辑
+ + 新增用户 +
+ +
+
+ +
+ + + + + + + + + + + +
账号姓名角色状态操作
+
+ 编辑 + 重置密码 + + 删除 + +
+
+
diff --git a/app/Views/cases/index.php b/app/Views/cases/index.php new file mode 100644 index 0000000..fdb2a90 --- /dev/null +++ b/app/Views/cases/index.php @@ -0,0 +1,23 @@ +
+
+

客户案例

+

从需求沟通到成衣交付,为各行业提供定制化降温解决方案

+
+
+
+
+ +

暂无案例。

+
+
diff --git a/app/Views/cases/show.php b/app/Views/cases/show.php new file mode 100644 index 0000000..e7a05e8 --- /dev/null +++ b/app/Views/cases/show.php @@ -0,0 +1,36 @@ + +
+
+

+

· ·

+
+
+ + + + $layoutArr, 'item' => $c, 'module' => 'case']); ?> + +
+
+
+
+
+ + +
+ +
diff --git a/app/Views/contact/index.php b/app/Views/contact/index.php new file mode 100644 index 0000000..5f8b6f1 --- /dev/null +++ b/app/Views/contact/index.php @@ -0,0 +1,60 @@ + +
+
+

联系我们

+

提交需求,专属顾问 1 对 1 为您设计降温解决方案

+
+
+
+
+
+
+

联系方式

+ + + +
我们支持企业 LOGO 绣字、一人一码量体、柔性化小单定制,10 套起订。
+
+
+
提交成功!我们会尽快与您联系。
+
+
+ + + +
+ + +
+
+ + +
+
+ + +
+
+ +
+ + 验证码 +
+
+ +
+ +
+
+
+
diff --git a/app/Views/crm/contact_form.php b/app/Views/crm/contact_form.php new file mode 100644 index 0000000..7865b29 --- /dev/null +++ b/app/Views/crm/contact_form.php @@ -0,0 +1,37 @@ + +
+

+
+
+
+ +
+
+ +
+
+
+
+
+
+
+ +
+
+
+ + 取消 +
+
diff --git a/app/Views/crm/contacts.php b/app/Views/crm/contacts.php new file mode 100644 index 0000000..fd4e5dd --- /dev/null +++ b/app/Views/crm/contacts.php @@ -0,0 +1,42 @@ + + + + +

← 返回客户列表

+ + +
+ + + + + + + + + + + + + + + + + + + + + +
ID客户姓名职位电话邮箱微信主联系人操作
+ 编辑 + 删除 +
暂无联系人,点击右上角新增
+
diff --git a/app/Views/crm/customer_form.php b/app/Views/crm/customer_form.php new file mode 100644 index 0000000..a5e4847 --- /dev/null +++ b/app/Views/crm/customer_form.php @@ -0,0 +1,81 @@ + '品牌方', + 'dealer1' => '一级经销商', + 'dealer2' => '二级经销商', + 'retail' => '直营门店', + 'ecom' => '电商', + 'export' => '外贸出口', + 'oem' => '生产代工', +]; +$levelOpts = ['A' => 'A(重点)', 'B' => 'B(普通)', 'C' => 'C(潜在)']; +$industryOpts = ['服装' => '服装', '鞋帽' => '鞋帽', '家纺' => '家纺', '其他' => '其他']; +$statusOpts = [ + 'lead' => '潜在客户', + 'intent' => '意向客户', + 'quote' => '报价中', + 'cooperating' => '合作中', + 'won' => '已成交', + 'lost' => '已流失', + 'dormant' => '休眠', +]; +$curType = $c['type'] ?? 'brand'; +$curLevel = $c['level'] ?? 'C'; +$curIndustry = $c['industry'] ?? '服装'; +$curStatus = $c['status'] ?? 'lead'; +?> +
+

+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+
+ + 取消 +
+
diff --git a/app/Views/crm/customers.php b/app/Views/crm/customers.php new file mode 100644 index 0000000..b4aa2c6 --- /dev/null +++ b/app/Views/crm/customers.php @@ -0,0 +1,72 @@ + '品牌方', + 'dealer1' => '一级经销商', + 'dealer2' => '二级经销商', + 'retail' => '直营门店', + 'ecom' => '电商', + 'export' => '外贸出口', + 'oem' => '生产代工', +]; +$levelLabel = ['A' => 'A(重点)', 'B' => 'B(普通)', 'C' => 'C(潜在)']; +$statusLabel = [ + 'lead' => '潜在客户', + 'intent' => '意向客户', + 'quote' => '报价中', + 'cooperating' => '合作中', + 'won' => '已成交', + 'lost' => '已流失', + 'dormant' => '休眠', +]; +$statusClass = [ + 'lead' => 'st-grey', + 'intent' => 'st-blue', + 'quote' => 'st-purple', + 'cooperating' => 'st-green', + 'won' => 'st-gold', + 'lost' => 'st-red', + 'dormant' => 'st-grey', +]; +?> +
+

客户管理

+ + 新增客户 +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ID客户名称公司联系人电话国家/地区类型等级状态行业区域信用额度负责人操作
+ 编辑 + 联系人 0) echo ' (' . $cc . ')'; + ?> + 删除 +
暂无客户,点击右上角新增
+
diff --git a/app/Views/crm/dashboard.php b/app/Views/crm/dashboard.php new file mode 100644 index 0000000..f1f4720 --- /dev/null +++ b/app/Views/crm/dashboard.php @@ -0,0 +1,112 @@ + '新线索', 'contact' => '已联系', 'quote' => '报价中', 'won' => '已成交', 'lost' => '已流失']; +$typeLabel = ['brand' => '品牌方', 'dealer1' => '一级经销商', 'dealer2' => '二级经销商', 'retail' => '直营门店', 'ecom' => '电商', 'export' => '外贸出口', 'oem' => '生产代工']; +$statusLabel = [ + 'lead' => '潜在客户', 'intent' => '意向客户', 'quote' => '报价中', + 'cooperating' => '合作中', 'won' => '已成交', 'lost' => '已流失', 'dormant' => '休眠', +]; +$statusClass = [ + 'lead' => 'st-grey', 'intent' => 'st-blue', 'quote' => 'st-purple', + 'cooperating' => 'st-green', 'won' => 'st-gold', 'lost' => 'st-red', 'dormant' => 'st-grey', +]; +$recentCustomers = $recentCustomers ?? []; +?> +
+

CRM 仪表盘

+

客户需求与客户关系总览

+
+ +
+
客户总数
+
商机线索
+
跟进记录
+
¥
商机金额合计
+
+ + + +
+
+

商机阶段分布

+

暂无商机数据

+ + + + $v): ?> + + + +
阶段数量
+ +
+
+

客户类型分布

+

暂无客户数据

+ + + + $v): ?> + + + +
类型数量
+ +
+
+ +
+

最近客户

+

暂无客户,点击上方「录入新客户」开始

+ + + + + + + + + + + + + + +
ID客户名称类型状态负责人操作
+ 编辑 + 联系人 +
+ +
+ +
+

最近跟进

+

暂无跟进记录

+ + + + + + + + + + + + +
时间客户ID内容下次跟进
#
+ +
diff --git a/app/Views/crm/followup_form.php b/app/Views/crm/followup_form.php new file mode 100644 index 0000000..2f60e0b --- /dev/null +++ b/app/Views/crm/followup_form.php @@ -0,0 +1,36 @@ + '电话', 'wechat' => '微信', 'visit' => '拜访', 'email' => '邮件', 'other' => '其他']; +$curWay = $f['way'] ?? 'tel'; +?> +

+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ + 取消 +
+
diff --git a/app/Views/crm/followups.php b/app/Views/crm/followups.php new file mode 100644 index 0000000..4da2186 --- /dev/null +++ b/app/Views/crm/followups.php @@ -0,0 +1,32 @@ + '电话', 'wechat' => '微信', 'visit' => '拜访', 'email' => '邮件', 'other' => '其他']; +?> +
+

跟进记录

+ + 新增跟进 +
+
+ + + + + + + + + + + + + + + + + + +
ID时间客户方式内容结果下次跟进负责人操作
+ 编辑 + 删除 +
暂无跟进记录
+
diff --git a/app/Views/crm/lead_form.php b/app/Views/crm/lead_form.php new file mode 100644 index 0000000..b4b021e --- /dev/null +++ b/app/Views/crm/lead_form.php @@ -0,0 +1,46 @@ + '新线索', 'contact' => '已联系', 'quote' => '报价中', 'won' => '已成交', 'lost' => '已流失']; +$srcOpts = ['expo' => '展会', 'referral' => '转介绍', 'online' => '线上', 'web' => '官网', 'tel' => '电话', 'other' => '其他']; +$curSrc = $l['source'] ?? 'expo'; +?> +

+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+ + 取消 +
+
diff --git a/app/Views/crm/leads.php b/app/Views/crm/leads.php new file mode 100644 index 0000000..7d3e397 --- /dev/null +++ b/app/Views/crm/leads.php @@ -0,0 +1,34 @@ + '新线索', 'contact' => '已联系', 'quote' => '报价中', 'won' => '已成交', 'lost' => '已流失']; +$sourceLabel = ['expo' => '展会', 'referral' => '转介绍', 'online' => '线上', 'web' => '官网', 'tel' => '电话', 'other' => '其他']; +?> +
+

商机线索

+ + 新增商机 +
+
+ + + + + + + + + + + + + + + + + + + +
ID标题客户金额阶段来源成交概率预计成交负责人操作
¥% + 编辑 + 删除 +
暂无商机,点击右上角新增
+
diff --git a/app/Views/home/index.php b/app/Views/home/index.php new file mode 100644 index 0000000..08e1a7f --- /dev/null +++ b/app/Views/home/index.php @@ -0,0 +1,180 @@ + '科技降温 · 清凉一夏', 'subtitle' => '为高温作业人群定制', 'link' => '/products']; +?> +
+
+
+
+

❄ SQY COOLING APPAREL

+


体感直降 8-12℃

+

。我们提供水冷循环、相变蓄冷、涡扇风冷三大降温方案,覆盖工业、户外、消防等高温场景。

+ +
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+
+

产品系列

+

六大降温服系列,总有一款适合你

+

从长时间恒温作业到临时户外移动,覆盖不同降温原理与场景。

+
+
+ + +
+

+

+
+ +
+
+
+ +
+
+
+

精品推荐

+

热门降温服

+

外贸级品质,支持企业 LOGO 绣字与一人一码量体。

+
+ + +
+
+ +
+
+
+

为什么选择我们

+

20 年服装经验,外贸级品质

+
+
+ +
+
+

+

+
+ +
+
+
+ +
+
+
+

交付流程

+

28 天快速定制,省心交付

+
+
+ +

+ +
+
+
+ +
+
+
+

新闻动态

+

最新资讯与案例

+
+ + +
+
+ +
+
+
+

客户案例

+

他们都在用酷冰甲降温服

+

覆盖钢铁、消防、化工、环卫等高温行业,提供定制化降温方案。

+
+ + +
+
+ +
+
+
+

常见问题

+

关于降温服,您可能想了解

+

高频疑问一站式解答,定制与选型更省心。

+
+
+ +
+ + +
+
+ +
+
+
+ +
+
+
+

免费拿样 · 5 天出设计方案

+

提交您的需求,专属顾问 1 对 1 为您提供降温服装定制方案,支持企业 LOGO 绣字。

+ 立即咨询 +
+
+
diff --git a/app/Views/layouts/admin.php b/app/Views/layouts/admin.php new file mode 100644 index 0000000..8213b03 --- /dev/null +++ b/app/Views/layouts/admin.php @@ -0,0 +1,59 @@ + + + + + + + 后台管理 · <?php echo e($site); ?> + + + + + +
+
+ + +
+
+ +
+ +
+
+ + + + + + diff --git a/app/Views/layouts/site.php b/app/Views/layouts/site.php new file mode 100644 index 0000000..211006d --- /dev/null +++ b/app/Views/layouts/site.php @@ -0,0 +1,202 @@ +view() 或 $data 传入)──── +$pageSeo = $pageSeo ?? []; +$seoTitle = $pageSeo['title'] ?? $site['seo_title']; +$seoDesc = $pageSeo['description'] ?? $site['seo_description']; +$seoKeywords = $pageSeo['keywords'] ?? $site['seo_keywords']; +$ogImage = $pageSeo['og_image'] ?? (site_url() . 'assets/img/og-default.png'); +$ogType = $pageSeo['og_type'] ?? 'website'; +$jsonLd = $pageSeo['jsonld'] ?? ''; +$breadcrumb = $pageSeo['breadcrumb'] ?? null; +$noindex = $pageSeo['noindex'] ?? false; +$canonical = $pageSeo['canonical'] ?? absolute_url(); + +// 页面级 title 自动追加站点名后缀(如果没包含) +if (!empty($pageSeo['title']) && mb_strpos($seoTitle, $name) === false) { + $seoTitle = $seoTitle . ' - ' . $name; +} + +$current = trim(parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH), '/'); +$nav = [ + ['label' => '首页', 'url' => ''], + ['label' => '产品中心', 'url' => 'products'], + ['label' => '新闻动态', 'url' => 'news'], + ['label' => '客户案例', 'url' => 'cases'], + ['label' => '关于我们', 'url' => 'page/about'], + ['label' => '联系我们', 'url' => 'contact'], +]; +$isActive = function ($url) use ($current) { + if ($url === '') return $current === ''; + return strpos($current, $url) === 0; +}; +?> + + + + + + <?php echo e($seoTitle); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + diff --git a/app/Views/layouts/subsys.php b/app/Views/layouts/subsys.php new file mode 100644 index 0000000..4ec56b9 --- /dev/null +++ b/app/Views/layouts/subsys.php @@ -0,0 +1,95 @@ + 图标(避免逐个控制器改造,统一在此映射) +$icMap = [ + 'dashboard' => 'dashboard', 'customers' => 'handshake', 'leads' => 'lightbulb', + 'followups' => 'phone', 'contacts' => 'users', 'materials' => 'package', + 'products' => 'shopping-bag', 'suppliers' => 'truck', 'purchases' => 'inbox', + 'sales' => 'cart', 'stock' => 'database', 'orders' => 'receipt', 'users' => 'users', 'admin' => 'shield', + 'sales_orders' => 'shopping-bag', 'purchase_orders' => 'file-text', 'outbounds' => 'package', 'reports' => 'bar-chart', + 'reminders' => 'bell', 'notifications' => 'settings', +]; +?> + + + + + + <?php echo e($sysName); ?> · <?php echo e($site); ?> + + + + + + +
+
+
+ + +
+ + + + 0): ?> 99 ? '99+' : $unread; ?> + + +
+ + + + + + + 管理后台 + + 密码 + 退出 +
+
+
+ +
+ + +
+
+ + + + + + diff --git a/app/Views/news/index.php b/app/Views/news/index.php new file mode 100644 index 0000000..8170ff2 --- /dev/null +++ b/app/Views/news/index.php @@ -0,0 +1,23 @@ +
+
+

新闻动态

+

产品发布、技术科普与行业案例

+
+
+
+
+ +

暂无新闻。

+
+
diff --git a/app/Views/news/show.php b/app/Views/news/show.php new file mode 100644 index 0000000..734b272 --- /dev/null +++ b/app/Views/news/show.php @@ -0,0 +1,36 @@ + +
+
+

+

·

+
+
+ + + + $layoutArr, 'item' => $n, 'module' => 'news']); ?> + +
+
+
+
+
+ + +
+ +
diff --git a/app/Views/order/checkout.php b/app/Views/order/checkout.php new file mode 100644 index 0000000..c537277 --- /dev/null +++ b/app/Views/order/checkout.php @@ -0,0 +1,34 @@ + +
+

立即下单

+
+
+ +
+
+
+
+
+
+
单价 ¥ / 套
+
+
+
+ + +
+
+
+
+
+ + 返回 +
+
+
+
diff --git a/app/Views/order/pay.php b/app/Views/order/pay.php new file mode 100644 index 0000000..de8fed9 --- /dev/null +++ b/app/Views/order/pay.php @@ -0,0 +1,50 @@ + +

订单支付

订单号

+
+
+
+
+
数量 套 · 下单人
+
应付 ¥
+
+ + +
✓ 该订单已支付成功
+ 查看支付详情 + +

选择支付方式

+
+ +
+ + +
+
+ +

正在跳转到支付宝支付…

+ + 如未自动跳转,点击此处支付 + +

请使用微信扫码支付:

+
+ +
演示模式:点击下方按钮完成模拟支付(不影响真实下单流程)
+

* 尚未配置商户号,当前为演示支付;在后台「支付设置」填入商户号并切到真实模式即可真实收款。

+
+
+
订单号
+ 模拟支付成功 +
+ + +

查询我的订单

+
+
diff --git a/app/Views/order/query.php b/app/Views/order/query.php new file mode 100644 index 0000000..76ecf16 --- /dev/null +++ b/app/Views/order/query.php @@ -0,0 +1,49 @@ + array, 'payments' => array] */ +/** @var string $no */ +/** @var string $name */ +/** @var string $phone */ +/** @var string $err */ +?> +

订单查询

凭 客户名 + 手机号 核验身份,即可查询您的订单与付款信息(也可加订单号精确查单笔)

+
+
+
+ +
+
+
+ +
+
+ +
✓ 共找到 笔订单
+ + +
+ + + + + + +
订单号
商品
数量
金额¥
状态已支付' : '待支付'; ?>
+ + 去支付 + + +

付款记录

+ + + + + + + +
通道交易流水号金额付款时间
¥
+ +
+ + +
+
diff --git a/app/Views/order/result.php b/app/Views/order/result.php new file mode 100644 index 0000000..5d1c83b --- /dev/null +++ b/app/Views/order/result.php @@ -0,0 +1,35 @@ + +

+
+
+
+ +
+ + + + + + + +
订单号
商品
数量
金额¥
状态
下单人
+ +

付款记录

+ + + + + + +
支付通道
交易流水号
付款时间
+ + +
+
diff --git a/app/Views/page/show.php b/app/Views/page/show.php new file mode 100644 index 0000000..27fd467 --- /dev/null +++ b/app/Views/page/show.php @@ -0,0 +1,24 @@ + + + $layout, 'item' => $p, 'module' => 'page']); ?> + +
+

+
+
+
+
+ +
+
+ diff --git a/app/Views/parts/canvas.php b/app/Views/parts/canvas.php new file mode 100644 index 0000000..cf00992 --- /dev/null +++ b/app/Views/parts/canvas.php @@ -0,0 +1,78 @@ + +
+
+
+
+ +
+ +
+ + + + 立即购买 + +
¥ 起/套
+ +
+ + +
+
+ +
+ + +
+
+
+
+ diff --git a/app/Views/product/index.php b/app/Views/product/index.php new file mode 100644 index 0000000..971a1cb --- /dev/null +++ b/app/Views/product/index.php @@ -0,0 +1,48 @@ + +
+
+

+

+
+
+
+ +
+
+
+
+ 全部 + + + +
+

该分类暂无产品。

+ +
+
diff --git a/app/Views/product/show.php b/app/Views/product/show.php new file mode 100644 index 0000000..3b18274 --- /dev/null +++ b/app/Views/product/show.php @@ -0,0 +1,132 @@ + +
+
+

+

+
+
+
+ +
+ + + $layoutArr, 'item' => $p, 'module' => 'product']); ?> + +
+
+
+
+ +
<?php echo e($p['name']); ?>
+ +
+ + +
+
+

+
¥ 起 / 套
+

+ + + +
+ +
+ +
+
+
+
+ + + +
+
+
+

常见问题

+

关于本品,您可能想了解

+
+
+ +
+ + +
+
+ +
+
+
+ + + +
+
+

相关推荐

+ +
+
+ + + +
+
+
+ + ¥ 起 / 套 +
+ +
+
+ + diff --git a/app/Views/psi/adjust_form.php b/app/Views/psi/adjust_form.php new file mode 100644 index 0000000..9e74791 --- /dev/null +++ b/app/Views/psi/adjust_form.php @@ -0,0 +1,23 @@ + +

调整库存 —

+
+

当前库存:

+
+ +
+
+ +
+
+
+ + 取消 +
+
diff --git a/app/Views/psi/dashboard.php b/app/Views/psi/dashboard.php new file mode 100644 index 0000000..2e2a158 --- /dev/null +++ b/app/Views/psi/dashboard.php @@ -0,0 +1,144 @@ + +
+

进销存仪表盘

+

服装生产 · 进出口贸易 · 终端销售 一体化库存

+
+ +
+
物料种类
+
成品种类
+
物料库存量
+
成品库存量
+
¥
采购总额
+
¥
销售总额
+
+ + + + +
+

按业务员(订单销售额)

+ 查看明细
+

暂无销售订单数据

+
+ + + + + + + + +
业务员订单数销售额
¥
+
+ +
+ + + +
+
+

最近采购入库

+

暂无采购单

+ + + + + + + + + + + + + +
单号物料/成品数量金额日期
¥
+ +
+
+

最近销售出库

+

暂无销售单

+ + + + + + + + + + + + + +
单号物料/成品数量金额日期
¥
+ +
+
+ +
+

库存预警(低于 20)

+ +

当前库存充足 ✅

+ + + + + + + + + + + + +
名称类型当前库存
+ +
diff --git a/app/Views/psi/material_form.php b/app/Views/psi/material_form.php new file mode 100644 index 0000000..dcd4d10 --- /dev/null +++ b/app/Views/psi/material_form.php @@ -0,0 +1,45 @@ + '面料', '辅料' => '辅料', '纱线' => '纱线', '包装' => '包装', '其他' => '其他']; +$curCat = $m['category'] ?? '面料'; +if ($curCat && !isset($catOpts[$curCat])) { $catOpts[$curCat] = $curCat; } +?> +

+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ + 取消 +
+
diff --git a/app/Views/psi/materials.php b/app/Views/psi/materials.php new file mode 100644 index 0000000..0b36afa --- /dev/null +++ b/app/Views/psi/materials.php @@ -0,0 +1,38 @@ + +
+

物料管理

+ + 新增物料 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ID编码名称规格单位分类颜色成分克重(g)幅宽(cm)缸号库存单价供应商操作
¥ + 调整库存 + 编辑 + 删除 +
暂无物料,点击右上角新增
+
diff --git a/app/Views/psi/notifications.php b/app/Views/psi/notifications.php new file mode 100644 index 0000000..803adcb --- /dev/null +++ b/app/Views/psi/notifications.php @@ -0,0 +1,46 @@ + !empty($v[$k]) ? 'checked' : ''; +?> +
+

通知设置

配置“新订单 / 新事件”的负责人通知渠道(邮件 + 企业微信)。

+
+ +
+ + +
+ + 关闭后仅记录站内紧急事件,不发送邮件 / 微信。 +
+ +
+ 邮件通知 + +
+
+
+
+
+
+
+ +
+ 企业微信通知 + +
+
+ 提示:在企业微信群中添加「群机器人」即可获得 webhook 地址。 +
+ +
+ 低库存预警 + +
+
+ +
+ + 查看紧急提醒 +
+
diff --git a/app/Views/psi/order_show.php b/app/Views/psi/order_show.php new file mode 100644 index 0000000..d94b124 --- /dev/null +++ b/app/Views/psi/order_show.php @@ -0,0 +1,56 @@ + +
+

订单详情

订单号
+ ← 返回列表 +
+ + + +
+ + + + + + + + + +
商品
客户/
数量
金额¥
支付通道
状态 + 已支付' + : '待支付'; ?> + +
网关交易号
下单时间
+ + +
+ +
+ + + +

付款记录

+ + + + + + + + + + + + + +
通道交易号金额状态付款时间
¥
+ +
diff --git a/app/Views/psi/orders.php b/app/Views/psi/orders.php new file mode 100644 index 0000000..99ba8e4 --- /dev/null +++ b/app/Views/psi/orders.php @@ -0,0 +1,63 @@ +已支付' + : '待支付'; +}; +$channelLabel = function ($c) { + return $c === 'wechat' ? '微信' : ($c === 'alipay' ? '支付宝' : '—'); +}; +?> +
+

订单管理

客户下单与付款处理(合并自后台订单,便于在 PSI 内快速处理)
+
+ + + +
+
+

订单列表

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
订单号商品客户数量金额通道状态下单时间操作

¥ + 详情 + +
+ +
+ + +
+ +
+ +
暂无订单
+
+
diff --git a/app/Views/psi/outbound_form.php b/app/Views/psi/outbound_form.php new file mode 100644 index 0000000..6f62386 --- /dev/null +++ b/app/Views/psi/outbound_form.php @@ -0,0 +1,131 @@ + $p['name'], 'spec' => $p['spec'] ?? '', 'unit' => $p['unit'] ?? '', 'price' => (float)($p['price'] ?? 0)]; } + +// 行数据来源:编辑=出库明细;新建且带销售订单=销售订单未交明细;否则空行 +$rows = []; +if ($isEdit) { + foreach ($items as $it) $rows[] = ['so_item_id' => $it['so_item_id'], 'product_id' => $it['product_id'], 'name' => $it['name'], 'spec' => $it['spec'], 'unit' => $it['unit'], 'qty' => $it['qty'], 'price' => $it['price']]; +} elseif ($so) { + foreach ($soItems as $si) { $remain = max(0, (int)($si['qty'] ?? 0) - (int)($si['delivered_qty'] ?? 0)); if ($remain <= 0) continue; + $rows[] = ['so_item_id' => $si['id'], 'product_id' => $si['product_id'], 'name' => $si['name'], 'spec' => $si['spec'], 'unit' => $si['unit'], 'qty' => $remain, 'price' => $si['price']]; + } +} +?> +
+

+
' . e($so['order_no']) . ' · 已预填未交明细') : '填写出库明细,保存后自动扣减库存'; ?>
+ ← 返回 +
+ +
+
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ + + + + + +
关联成品名称规格单位数量单价金额
+
+ +
+ +
+ +
+
+ + 取消 +
+
+
+ + diff --git a/app/Views/psi/outbound_print.php b/app/Views/psi/outbound_print.php new file mode 100644 index 0000000..c08b5f6 --- /dev/null +++ b/app/Views/psi/outbound_print.php @@ -0,0 +1,32 @@ + (float)($i['amount'] ?? 0), $items)); +?> +

出库单

+
+
+ 关联销售订单: + 客户: + 业务员: + 仓库: + 出库日期: +
+ + + + + + + + + + + + + + + +
商品规格单位数量单价金额
¥¥
合计¥
+

备注:

+
发货:收货签字:____________
diff --git a/app/Views/psi/outbound_show.php b/app/Views/psi/outbound_show.php new file mode 100644 index 0000000..6c1c805 --- /dev/null +++ b/app/Views/psi/outbound_show.php @@ -0,0 +1,50 @@ + ['label' => '已交付', 'cls' => 'tag-green'], 'partial' => ['label' => '部分交付', 'cls' => 'tag-amber']]; +$s = $obStatus[$o['status']] ?? $obStatus['delivered']; +$amt = array_sum(array_map(fn($i) => (float)($i['amount'] ?? 0), $items)); +?> +
+

出库单详情

出库单号
+
+ 打印 + ← 返回 +
+
+ +
+ + + + + + + + +
关联销售订单—'; ?>
客户
业务员
仓库
状态
出库日期
备注
+
+ +
+

出库明细

合计 ¥
+
+ + + + + + + + + + + + + + +
商品规格单位数量单价金额
¥¥
+
+
+ 编辑 +
+
diff --git a/app/Views/psi/outbounds.php b/app/Views/psi/outbounds.php new file mode 100644 index 0000000..9f41bf4 --- /dev/null +++ b/app/Views/psi/outbounds.php @@ -0,0 +1,46 @@ + ['label' => '已交付', 'cls' => 'tag-green'], 'partial' => ['label' => '部分交付', 'cls' => 'tag-amber']]; +?> +
+

出库单

按销售订单发货出库(自动扣减库存并回写已交付量,可直接打印)
+ 新建出库单 +
+ +
+
+ + + + + + + (float)($i['amount'] ?? 0), $o['_items'] ?? [])); + $s = $obStatus[$o['status']] ?? $obStatus['delivered']; + ?> + + + + + + + + + + + + + + +
出库单号关联销售订单客户业务员仓库金额状态出库日期操作
—'; ?>¥ + 详情 + 打印 + 编辑 +
+ +
+
暂无出库单
+
+
diff --git a/app/Views/psi/product_form.php b/app/Views/psi/product_form.php new file mode 100644 index 0000000..6f47528 --- /dev/null +++ b/app/Views/psi/product_form.php @@ -0,0 +1,47 @@ + '降温服', '成衣' => '成衣', '配饰' => '配饰', '其他' => '其他']; +$curCat = $p['category'] ?? '降温服'; +if ($curCat && !isset($catOpts[$curCat])) { $catOpts[$curCat] = $curCat; } +$seasonOpts = ['春' => '春', '夏' => '夏', '秋' => '秋', '冬' => '冬', '四季' => '四季']; +$curSeason = $p['season'] ?? ''; +?> +

+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + 取消 +
+
diff --git a/app/Views/psi/products.php b/app/Views/psi/products.php new file mode 100644 index 0000000..3de981b --- /dev/null +++ b/app/Views/psi/products.php @@ -0,0 +1,38 @@ + +
+

成品管理

+ + 新增成品 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ID编码款号名称规格单位分类颜色尺码季节年份库存成本售价操作
¥¥ + 调整库存 + 编辑 + 删除 +
暂无成品,点击右上角新增
+
diff --git a/app/Views/psi/purchase_form.php b/app/Views/psi/purchase_form.php new file mode 100644 index 0000000..6a8d06a --- /dev/null +++ b/app/Views/psi/purchase_form.php @@ -0,0 +1,56 @@ + +

新增采购入库

+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+ + 取消 +
+
+ diff --git a/app/Views/psi/purchase_order_form.php b/app/Views/psi/purchase_order_form.php new file mode 100644 index 0000000..843aea0 --- /dev/null +++ b/app/Views/psi/purchase_order_form.php @@ -0,0 +1,132 @@ + [], 'product' => []]; +foreach ($materials as $m) { $cat['material'][(int)$m['id']] = ['name' => $m['name'], 'spec' => $m['spec'] ?? '', 'unit' => $m['unit'] ?? '', 'price' => (float)($m['price'] ?? 0)]; } +foreach ($products as $p) { $cat['product'][(int)$p['id']] = ['name' => $p['name'], 'spec' => $p['spec'] ?? '', 'unit' => $p['unit'] ?? '', 'price' => (float)($p['price'] ?? 0)]; } +?> +
+

选择供应商与采购明细(物料 / 成品),收货后自动入库
+ ← 返回 +
+ +
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ + + + + + +
类型选择名称规格单位数量单价金额
+
+ +
+ +
+ +
+
+ + 取消 +
+
+
+ + diff --git a/app/Views/psi/purchase_order_print.php b/app/Views/psi/purchase_order_print.php new file mode 100644 index 0000000..66f9d5e --- /dev/null +++ b/app/Views/psi/purchase_order_print.php @@ -0,0 +1,32 @@ + (float)($i['amount'] ?? 0), $items)); +?> +

采购订单

+
+
+ 供应商: + 采购员: + 期望到货: + 下单: +
+ + + + + + + + + + + + + + + + +
类型名称规格单位数量单价金额
¥¥
合计¥
+

备注:

+
制单:供应商签字:____________
diff --git a/app/Views/psi/purchase_order_show.php b/app/Views/psi/purchase_order_show.php new file mode 100644 index 0000000..1fbdc2b --- /dev/null +++ b/app/Views/psi/purchase_order_show.php @@ -0,0 +1,60 @@ + ['label' => '待处理', 'cls' => 'tag-gray'], + 'partial' => ['label' => '部分收货', 'cls' => 'tag-amber'], + 'received' => ['label' => '已收货', 'cls' => 'tag-green'], + 'closed' => ['label' => '已关闭', 'cls' => 'tag-gray'], +]; +$s = $poStatus[$o['status']] ?? $poStatus['pending']; +$amt = array_sum(array_map(fn($i) => (float)($i['amount'] ?? 0), $items)); +?> +
+

采购订单详情

订单号
+
+ 打印 + ← 返回 +
+
+ +
+ + + + + + +
供应商
采购员
状态
期望到货
备注
+
+ +
+

采购明细

合计 ¥
+
+ + + + + + + + + + + + + + + + +
类型名称规格单位数量单价金额已收
¥¥
+
+
+ + 编辑 +
+ +
+ +
+
diff --git a/app/Views/psi/purchase_orders.php b/app/Views/psi/purchase_orders.php new file mode 100644 index 0000000..455872f --- /dev/null +++ b/app/Views/psi/purchase_orders.php @@ -0,0 +1,55 @@ + ['label' => '待处理', 'cls' => 'tag-gray'], + 'partial' => ['label' => '部分收货', 'cls' => 'tag-amber'], + 'received' => ['label' => '已收货', 'cls' => 'tag-green'], + 'closed' => ['label' => '已关闭', 'cls' => 'tag-gray'], +]; +?> +
+

采购订单

录入对供应商的采购订单,收货后自动入库并增加库存(可打印)
+ 新建采购订单 +
+ +
+
+ + + + + + + (float)($i['amount'] ?? 0), $o['_items'] ?? [])); + $s = $poStatus[$o['status']] ?? $poStatus['pending']; + ?> + + + + + + + + + + + + + +
订单号供应商采购员明细金额状态期望到货操作
¥ + 详情 + 打印 + + 编辑 +
+ +
+ +
+ +
+
暂无采购订单
+
+
diff --git a/app/Views/psi/purchases.php b/app/Views/psi/purchases.php new file mode 100644 index 0000000..72d32f0 --- /dev/null +++ b/app/Views/psi/purchases.php @@ -0,0 +1,32 @@ + +
+

采购入库

+ + 新增采购 +
+
+

提交采购单后系统自动增加对应物料/成品库存,并写入库存流水。

+ + + + + + + + + + + + + + + + + + + +
单号供应商类型批次/缸号数量单价金额预计到货日期操作
¥¥ + 删除 +
暂无采购记录
+
diff --git a/app/Views/psi/reminder_form.php b/app/Views/psi/reminder_form.php new file mode 100644 index 0000000..bcb1717 --- /dev/null +++ b/app/Views/psi/reminder_form.php @@ -0,0 +1,26 @@ + +
+

发起紧急提醒

提交后将作为紧急事件通知相关负责人(站内 + 邮件 + 微信,依通知设置)。

+ +
+ +
+ +
+ + +
+
+ + +
+
+ + 取消 +
+
diff --git a/app/Views/psi/reminders.php b/app/Views/psi/reminders.php new file mode 100644 index 0000000..ff784e8 --- /dev/null +++ b/app/Views/psi/reminders.php @@ -0,0 +1,73 @@ + '新销售订单', + 'purchase_order' => '新采购订单', + 'customer_order' => '新客户订单', + 'low_stock' => '低库存预警', + 'manual' => '手动提醒', +]; +?> +
+
+

紧急提醒

+

系统将“新订单 / 新事件”作为紧急事件推送;未读 条。

+
+
+ 发起提醒 + 0): ?> +
+ + +
+ +
+
+ + +
暂无紧急事件。
+ +
+ +
+
+ +
+
+
+ + 未读 + +
+
+
+
+ + + + + + + + 查看详情 + + +
+ + +
+ + 已读 + +
+
+
+
+ +
+ diff --git a/app/Views/psi/report_delivery.php b/app/Views/psi/report_delivery.php new file mode 100644 index 0000000..2c6612c --- /dev/null +++ b/app/Views/psi/report_delivery.php @@ -0,0 +1,59 @@ +'待处理','partial'=>'部分交付','delivered'=>'已交付','closed'=>'已关闭']; +?> +
+

交付明细

出库(交付)记录与销售订单交付进度、未交订单
+ ← 报表中心 +
+ +
+

销售订单交付进度

应发 / 已发 / 未发
+
+ + + + + + + + + + + + + + + + + +
销售订单客户业务员状态应发已发未发金额
¥
暂无销售订单交付数据
+
+
+ +
+

出库(交付)记录

+
+ + + + (float)($i['amount'] ?? 0), $o['_items'] ?? [])); + ?> + + + + + + + + + + + + +
出库单号关联销售订单客户业务员金额出库日期操作
—'; ?>¥详情 + 打印
暂无出库记录
+
+
diff --git a/app/Views/psi/report_po_detail.php b/app/Views/psi/report_po_detail.php new file mode 100644 index 0000000..cbc4654 --- /dev/null +++ b/app/Views/psi/report_po_detail.php @@ -0,0 +1,42 @@ +'待处理','partial'=>'部分收货','received'=>'已收货','closed'=>'已关闭']; +?> +
+

采购订单明细

每张采购订单的物料/成品明细(共 张)
+ ← 报表中心 +
+ + (float)($i['amount'] ?? 0), $o['_items'] ?? [])); +?> +
+
+

· +

+ 采购员 · 合计 ¥ +
+
+ + + + + + + + + + + + + + + + + +
类型名称规格单位数量单价金额已收
¥¥
无明细
+
+
+ +
暂无采购订单
diff --git a/app/Views/psi/report_so_po.php b/app/Views/psi/report_so_po.php new file mode 100644 index 0000000..d738885 --- /dev/null +++ b/app/Views/psi/report_so_po.php @@ -0,0 +1,66 @@ +'待处理','partial'=>'部分交付','delivered'=>'已交付','closed'=>'已关闭']; +$poStatus = ['pending'=>'待处理','partial'=>'部分收货','received'=>'已收货','closed'=>'已关闭']; +?> +
+

销售 / 采购订单明细

合并查看销售订单与采购订单(含金额)
+ ← 报表中心 +
+ +
+
+

筛选

+ +
+ + +

销售订单(

+
+ + + + + + + + + + + + + + + + +
订单号客户业务员渠道明细金额状态
¥
无销售订单
+
+ + + +

采购订单(

+
+ + + + + + + + + + + + + + + +
订单号供应商采购员明细金额状态
¥
无采购订单
+
+ +
diff --git a/app/Views/psi/reports.php b/app/Views/psi/reports.php new file mode 100644 index 0000000..3d009f3 --- /dev/null +++ b/app/Views/psi/reports.php @@ -0,0 +1,25 @@ + '采购订单明细', 'desc' => '按采购订单查看物料/成品明细', 'url' => 'PSI/reports/poDetail', 'icon' => 'file-text', 'n' => $poCount], + ['label' => '销售/采购订单明细', 'desc' => '合并查看两类订单与金额', 'url' => 'PSI/reports/soPo', 'icon' => 'clipboard', 'n' => $soCount + $poCount], + ['label' => '交付明细', 'desc' => '出库交付进度与未交订单', 'url' => 'PSI/reports/delivery', 'icon' => 'truck', 'n' => $obCount], +]; +?> +
+

报表中心

集中查看单据与单据之间的关联性
+
+ + diff --git a/app/Views/psi/sale_form.php b/app/Views/psi/sale_form.php new file mode 100644 index 0000000..e27dc4a --- /dev/null +++ b/app/Views/psi/sale_form.php @@ -0,0 +1,56 @@ + +

新增销售出库

+
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+
+ +
+ + 取消 +
+
+ diff --git a/app/Views/psi/sales.php b/app/Views/psi/sales.php new file mode 100644 index 0000000..9d52a86 --- /dev/null +++ b/app/Views/psi/sales.php @@ -0,0 +1,34 @@ + '内销', 'export' => '外贸出口']; +?> +
+

销售出库

+ + 新增销售 +
+
+

支持内销与外贸出口。提交后自动扣减库存,库存不足将被拦截。

+ + + + + + + + + + + + + + + + + + +
单号客户渠道区域数量单价金额日期操作
¥¥ + 查看 + 打印 + 删除 +
暂无销售记录
+
diff --git a/app/Views/psi/sales_order_form.php b/app/Views/psi/sales_order_form.php new file mode 100644 index 0000000..73797ba --- /dev/null +++ b/app/Views/psi/sales_order_form.php @@ -0,0 +1,125 @@ + $p['name'], 'spec' => $p['spec'] ?? '', 'unit' => $p['unit'] ?? '', 'price' => (float)($p['price'] ?? 0)]; } +?> +
+

填写客户与商品明细,保存后即可打印 / 据此出库
+ ← 返回 +
+ +
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ + + + + + +
关联成品名称规格单位数量单价金额
+
+ +
+ +
+ +
+
+ + 取消 +
+
+
+ + diff --git a/app/Views/psi/sales_order_print.php b/app/Views/psi/sales_order_print.php new file mode 100644 index 0000000..c6ce091 --- /dev/null +++ b/app/Views/psi/sales_order_print.php @@ -0,0 +1,33 @@ + (float)($i['amount'] ?? 0), $items)); +$chn = $o['channel'] === 'export' ? '外贸' : '内贸'; +?> +

销售订单

+
+
+ 客户: + 业务员: + 渠道: + 交货日期: + 下单: +
+ + + + + + + + + + + + + + + +
商品规格单位数量单价金额
¥¥
合计¥
+

备注:

+
制单:客户签字:____________
diff --git a/app/Views/psi/sales_order_show.php b/app/Views/psi/sales_order_show.php new file mode 100644 index 0000000..56aad2b --- /dev/null +++ b/app/Views/psi/sales_order_show.php @@ -0,0 +1,57 @@ + ['label' => '待处理', 'cls' => 'tag-gray'], + 'partial' => ['label' => '部分交付', 'cls' => 'tag-amber'], + 'delivered'=> ['label' => '已交付', 'cls' => 'tag-green'], + 'closed' => ['label' => '已关闭', 'cls' => 'tag-gray'], +]; +$s = $soStatus[$o['status']] ?? $soStatus['pending']; +$amt = array_sum(array_map(fn($i) => (float)($i['amount'] ?? 0), $items)); +?> +
+

销售订单详情

订单号
+
+ 打印 + ← 返回 +
+
+ +
+ + + + + + + +
客户
业务员
渠道 ·
状态
交货日期
备注
+
+ +
+

商品明细

合计 ¥
+
+ + + + + + + + + + + + + + + + +
商品规格单位数量单价金额已交付未交付
¥¥
+
+
+ 编辑 + 据此出库 +
+
diff --git a/app/Views/psi/sales_orders.php b/app/Views/psi/sales_orders.php new file mode 100644 index 0000000..40a9c64 --- /dev/null +++ b/app/Views/psi/sales_orders.php @@ -0,0 +1,52 @@ + ['label' => '待处理', 'cls' => 'tag-gray'], + 'partial' => ['label' => '部分交付', 'cls' => 'tag-amber'], + 'delivered'=> ['label' => '已交付', 'cls' => 'tag-green'], + 'closed' => ['label' => '已关闭', 'cls' => 'tag-gray'], +]; +?> +
+

销售订单

录入客户销售订单,可关联出库单进行交付(直接打印)
+ 新建销售订单 +
+ +
+
+ + + + + + + (float)($i['amount'] ?? 0), $o['_items'] ?? [])); + $s = $soStatus[$o['status']] ?? $soStatus['pending']; + ?> + + + + + + + + + + + + + + +
订单号客户业务员渠道明细金额状态交货日期操作
¥ + 详情 + 打印 + 编辑 + 出库 +
+ +
+
暂无销售订单
+
+
diff --git a/app/Views/psi/sales_print.php b/app/Views/psi/sales_print.php new file mode 100644 index 0000000..ac57004 --- /dev/null +++ b/app/Views/psi/sales_print.php @@ -0,0 +1,30 @@ + +

销售出库单

+
+
+ 客户: + 渠道: + 批次/缸号: + 出库日期: +
+ + + + + + + + + + + + + +
物品规格单位数量单价金额
¥¥
合计¥
+

备注:

+
发货:____________收货签字:____________
diff --git a/app/Views/psi/sales_show.php b/app/Views/psi/sales_show.php new file mode 100644 index 0000000..5b9e295 --- /dev/null +++ b/app/Views/psi/sales_show.php @@ -0,0 +1,43 @@ + +
+

销售出库详情

单号
+
+ 打印 + ← 返回 +
+
+ +
+ + + + + + + +
客户
渠道
区域
批次/缸号
出库日期
备注
+
+ +
+

出库明细

合计 ¥
+
+ + + + + + + + + + + + +
物品规格单位数量单价金额
¥¥
+
+
diff --git a/app/Views/psi/stock.php b/app/Views/psi/stock.php new file mode 100644 index 0000000..19ba563 --- /dev/null +++ b/app/Views/psi/stock.php @@ -0,0 +1,29 @@ + +
+

库存流水

+

所有采购入库 / 销售出库 / 手动调整 的变动记录

+
+
+ + + + + + + + + + + + + + + + +
时间类型名称方向数量批次/缸号关联单号
+ 入库 + + 出库 - +
暂无库存流水
+
diff --git a/app/Views/psi/supplier_form.php b/app/Views/psi/supplier_form.php new file mode 100644 index 0000000..4abf5f2 --- /dev/null +++ b/app/Views/psi/supplier_form.php @@ -0,0 +1,42 @@ + '面料商', '辅料商' => '辅料商', '成衣加工厂' => '成衣加工厂', 'OEM' => 'OEM', '物流' => '物流', '其他' => '其他']; +$gradeOpts = ['战略' => '战略', '合格' => '合格', '试用' => '试用', '淘汰' => '淘汰']; +$curType = $s['type'] ?? ''; +$curGrade = $s['grade'] ?? ''; +?> +

+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ + 取消 +
+
diff --git a/app/Views/psi/suppliers.php b/app/Views/psi/suppliers.php new file mode 100644 index 0000000..790fc6c --- /dev/null +++ b/app/Views/psi/suppliers.php @@ -0,0 +1,33 @@ + +
+

供应商管理

+ + 新增供应商 +
+
+ + + + + + + + + + + + + + + + + + + + +
ID名称类型等级联系人电话国家/地区交期达成率质检合格率备注操作
+ 编辑 + 删除 +
暂无供应商
+
diff --git a/app/Views/subsys/user_form.php b/app/Views/subsys/user_form.php new file mode 100644 index 0000000..6fe7226 --- /dev/null +++ b/app/Views/subsys/user_form.php @@ -0,0 +1,65 @@ + +
+

+

+
+ + + +
+
+ +
+ + required> + 用户名不可修改 +
+
+ + +
+
+ +
+ + +
+
+
+ +
+ + + + +
+ 仪表盘对所有用户默认可见;未勾选的页面该用户不可访问(侧栏隐藏且不可直访)。 +
+
+ + > + +
+
+ +
+ + +
+
+
+ + 取消 +
+
+
diff --git a/app/Views/subsys/user_reset.php b/app/Views/subsys/user_reset.php new file mode 100644 index 0000000..548b355 --- /dev/null +++ b/app/Views/subsys/user_reset.php @@ -0,0 +1,25 @@ + +
+

重置密码

+

· 为用户 设置新密码

+
+ + + +
+
+ +
+ + + 至少 6 位 +
+
+ + 取消 +
+
+
diff --git a/app/Views/subsys/users.php b/app/Views/subsys/users.php new file mode 100644 index 0000000..56edcfd --- /dev/null +++ b/app/Views/subsys/users.php @@ -0,0 +1,72 @@ + '超级管理员', 'admin' => '管理员', 'user' => '普通用户', 'none' => '无']; +$upper = strtoupper($sys); +?> +
+

用户管理

+

· 管理系统内的用户账号及其页面访问权限

+
+ + + +
+
+

账号列表

+ 新增用户 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID用户名姓名角色页面权限状态操作
+ + 仅仪表盘 + + + + + 启用停用 + + 编辑 + 重置密码 +
+ + +
+
暂无用户
+
+
diff --git a/cleanup_badzip_residue.sh b/cleanup_badzip_residue.sh new file mode 100644 index 0000000..7d6eebf --- /dev/null +++ b/cleanup_badzip_residue.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +# ============================================================ +# 清理「路径错误的旧 zip」解压到网站根目录产生的扁平散落文件 +# 用法:把本脚本放到网站根目录(与 index.php 同级),然后执行: +# bash cleanup_badzip_residue.sh +# 说明:仅删除明确属于错误包的文件,不会动 index.php / PATCH-README*.txt +# / app/ / install/ / public/ / config/ / storage/ 等正常文件。 +# ============================================================ +set -e + +# 必须在网站根目录(存在 app/ 目录)运行,防止误删 +if [ ! -d app ]; then + echo "✗ 未在当前目录发现 app/ 目录,请在网站根目录运行本脚本" + exit 1 +fi + +ROOT="$(pwd)" +echo "==> 网站根目录: $ROOT" + +# 错误的扁平 PHP 文件(来自 app/Controllers、app/Core、app/Models、app/Views 被压扁) +FILES=( + AdminController.php AuthController.php UpgradeController.php DashboardController.php + ContactController.php OrderController.php MaterialsController.php ProductsController.php + PurchasesController.php SalesController.php StockController.php StockHelper.php + SuppliersController.php App.php Helper.php Installer.php Model.php + DatabaseController.php UsersController.php NotificationsController.php OrdersController.php + OutboundsController.php PurchaseOrdersController.php RemindersController.php ReportsController.php + SalesOrdersController.php Notify.php Event.php Outbound.php OutboundItem.php + PurchaseOrder.php PurchaseOrderItem.php SalesOrder.php SalesOrderItem.php + dashboard.php login.php order_show.php orders.php system.php upgrade.php users.php + contacts.php customers.php followups.php leads.php admin.php site.php subsys.php + materials.php products.php purchases.php sales.php suppliers.php + db_browse.php db_form.php db_tables.php notifications.php outbound_form.php + outbound_print.php outbound_show.php outbounds.php purchase_order_form.php + purchase_order_print.php purchase_order_show.php purchase_orders.php reminder_form.php + reminders.php report_delivery.php report_po_detail.php report_so_po.php reports.php + sales_order_form.php sales_order_print.php sales_order_show.php sales_orders.php + user_form.php user_reset.php +) +# 错误包把 install/*.sql、public/* 也压扁到了根目录 +FILES+=( schema.sql seed.php psi_orders.sql admin.css subsys.css admin.js robots.txt ) + +# 错误包产生的扁平目录 +DIRS=( Subsys subsys upgrades ) + +DELETED=0 +for f in "${FILES[@]}"; do + if [ -f "$f" ]; then rm -f "$f"; echo " 删除文件 $f"; DELETED=$((DELETED+1)); fi +done +for d in "${DIRS[@]}"; do + if [ -d "$d" ]; then rm -rf "$d"; echo " 删除目录 $d/"; DELETED=$((DELETED+1)); fi +done + +echo "" +echo "✓ 清理完成,共删除 $DELETED 项。" +echo " 保留:index.php / PATCH-README*.txt / app/ / install/ / public/ / config/ / storage/ 等。" +echo " 建议随后用修正版 圣巧依_PSI升级包.zip 重新解压(路径已正确),并到后台执行数据库升级。" diff --git a/config/config.php b/config/config.php new file mode 100644 index 0000000..150a346 --- /dev/null +++ b/config/config.php @@ -0,0 +1,35 @@ + [ + 'name' => '酷冰甲 · 降温服', + 'slogan' => '科技降温 · 清凉一夏', + 'driver' => 'mysql', // file | mysql —— 本地已切到 MySQL,与远端(宝塔)保持一致 + 'admin_path' => 'admin', + 'timezone' => 'Asia/Shanghai', + ], + 'db' => [ + 'mysql' => [ + 'host' => '127.0.0.1', + 'port' => 3306, + 'dbname' => 'coolcoth_comf', + 'user' => 'coolcoth_comf', + 'pass' => 'QDBKzY817hDhTiKk', + 'charset' => 'utf8mb4', + ], + 'file' => [ + 'dir' => __DIR__ . '/../storage/data', + ], + ], + // 后台登录账号(文件模式 / 首次安装) + 'admin' => [ + 'username' => 'admin', + 'password' => 'admin888', + // 本地规则红线:生产环境(mysql 模式)必须关闭配置文件兜底账号,禁用默认密码后门。 + // 仅本地演示(file 模式)可临时置 true。远端已实测默认密码可登录,已置 false 封堵。 + 'allow_config_fallback' => false, + ], +]; diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..0c98bf0 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +# ============================================================ +# 酷冰甲官网 - 一键部署脚本(上传文件后运行一次) +# 用法: +# bash deploy.sh # 文件模式(默认,无需数据库) +# DB=1 bash deploy.sh # 先改好 config/config.php 的 mysql 段再跑 +# ============================================================ +set -e + +echo "==> 检测 PHP 环境 ..." +# 优先用 PATH 里的 php;找不到时自动探测宝塔等常见安装路径 +PHP_BIN="$(command -v php || true)" +if [ -z "$PHP_BIN" ]; then + for p in /www/server/php/74/bin/php /www/server/php/80/bin/php \ + /www/server/php/81/bin/php /www/server/php/82/bin/php \ + /www/server/php/83/bin/php /usr/local/php/bin/php \ + /usr/bin/php7.4 /usr/bin/php; do + if [ -x "$p" ]; then PHP_BIN="$p"; break; fi + done +fi +if [ -z "$PHP_BIN" ]; then + echo "✗ 未找到 php 命令,请先安装 PHP 7.4+ 并将其加入 PATH" + exit 1 +fi +"$PHP_BIN" -v | head -1 + +echo "==> 设置目录写权限 ..." +# 关键点:宝塔/虚拟主机上 PHP 进程通常以 www 用户运行, +# 上传后的文件若归 root,则 www 无写权限,后台保存会被静默丢弃。 +# 这里把数据目录与生成 CSS 的目录一并 chown 给 www(仅 root 可执行 chown)。 +if [ "$(id -u)" -eq 0 ]; then + chown -R www:www storage 2>/dev/null || true + chown -R www:www public/assets/css 2>/dev/null || true + echo " 已将 storage / public/assets/css 属主改为 www" +else + echo " 当前非 root,跳过 chown(如保存失败请手动: chown -R www:www storage public/assets/css)" +fi +chmod -R 755 storage 2>/dev/null || true +chmod -R 755 storage/data 2>/dev/null || true +chmod -R 755 public/assets 2>/dev/null || true +chmod -R 755 public/assets/css 2>/dev/null || true + +echo "==> 初始化数据 (install/install.php) ..." +"$PHP_BIN" install/install.php + +echo "" +echo "✓ 部署完成!" +echo " 前台: http://你的域名/" +echo " 后台: http://你的域名/admin (默认账号 admin / admin888)" +echo "" +echo "安全建议(生产环境务必执行):" +echo " 1) 部署成功后删除安装目录: rm -rf install" +echo " 2) 修改后台密码: 后台 -> 设置 -> 管理员" +echo " 3) 若用 MySQL: 确认 config/config.php 的 driver=mysql 且账号安全" diff --git a/deploy/nginx-security-headers.conf b/deploy/nginx-security-headers.conf new file mode 100644 index 0000000..3260e9c --- /dev/null +++ b/deploy/nginx-security-headers.conf @@ -0,0 +1,29 @@ +# ============================================================ +# 酷冰甲 CMS / coolcoth.com — 宝塔 Nginx 安全响应头片段 +# 用法:宝塔 → 网站 → 设置 → 配置文件,在 server { ... } 块内、 +# location / { ... } 之前(或之内)整段粘贴即可。 +# 说明:always 必须加,否则 4xx/5xx 和静态文件不会带这些头。 +# ============================================================ + +# 缺失项补齐(审计 P2) +add_header X-Content-Type-Options "nosniff" always; +add_header Referrer-Policy "strict-origin-when-cross-origin" always; +add_header Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=(), interest-cohort=()" always; +add_header X-Frame-Options "SAMEORIGIN" always; + +# HSTS 升级:含子域 + preload(审计当前线上仅 max-age=31536000) +# ⚠️ 若 宝塔「SSL」面板已自动下发 HSTS,请删掉那一处,避免重复下发两条。 +add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; + +# CSP(含动态 nonce)无法在 Nginx 静态下发,继续由 PHP 层 apply_security_headers() 输出,勿在此重复。 + +# ============================================================ +# 源站隐身(curl --resolve 直连 200 的治理,需配合 CDN) +# 仅当已接入 EdgeOne / Cloudflare 后启用:仅放行 CDN 回源 IP 段。 +# 例(Cloudflare,需替换为你实际接入的 CDN 回源段;EdgeOne 用其官方回源 IP 列表): +# allow 173.245.48.0/20; +# allow 103.21.244.0/22; +# ...(完整段见 CDN 官方文档) +# deny all; +# 注:未接入 CDN 前不要写 deny all,否则正常用户也进不来。 +# ============================================================ diff --git a/index.html b/index.html new file mode 100644 index 0000000..86aeca2 --- /dev/null +++ b/index.html @@ -0,0 +1,39 @@ + + + + + 恭喜,站点创建成功! + + + +
+

恭喜, 站点创建成功!

+

这是默认index.html,本页面由系统自动生成

+
    +
  • 本页面在FTP根目录下的index.html
  • +
  • 您可以修改、删除或覆盖本页面
  • +
  • FTP相关信息,请到“面板系统后台 > FTP” 查看
  • +
+
+ + \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..c145dd5 --- /dev/null +++ b/index.php @@ -0,0 +1,6 @@ +" . htmlspecialchars($msg) . "

\n"; +}; + +/** + * 增量升级模式:仅给已部署的系统补齐新模块的数据表/列,绝不触碰已有业务数据。 + * 与 install/upgrade_crm_psi.sql 逻辑等价,但改用 PDO 直连(避免 DELIMITER/存储过程在 PHP 侧不兼容)。 + * 用法:php install/install.php --upgrade 或 Web: /install/install.php?upgrade=1 + */ +function runUpgrade(): void +{ + global $out; + $driver = Core\Db::driver(); + if ($driver !== 'mysql') { + $out("⚠ 当前为 file 模式,CRM/PSI 在文件模式下自动生成 JSON,无需数据库升级。"); + return; + } + $pdo = Core\Db::pdo(); + $pdo->exec("SET NAMES utf8mb4"); + + $stmts = [ + // ===== CRM 客户管理 ===== + "CREATE TABLE IF NOT EXISTS `crm_customers` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(120) NOT NULL, `company` VARCHAR(160) DEFAULT '', + `contact` VARCHAR(60) DEFAULT '', `phone` VARCHAR(40) DEFAULT '', `email` VARCHAR(120) DEFAULT '', + `country` VARCHAR(60) DEFAULT '', `type` VARCHAR(20) DEFAULT 'trade', `source` VARCHAR(40) DEFAULT '', + `level` VARCHAR(20) DEFAULT 'C', `remark` TEXT, `owner` VARCHAR(60) DEFAULT '', `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + "CREATE TABLE IF NOT EXISTS `crm_leads` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `customer_id` INT DEFAULT 0, `title` VARCHAR(200) NOT NULL, + `amount` DECIMAL(12,2) DEFAULT 0, `stage` VARCHAR(20) DEFAULT 'new', `expected_close` VARCHAR(20) DEFAULT '', + `owner` VARCHAR(60) DEFAULT '', `remark` TEXT, `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + "CREATE TABLE IF NOT EXISTS `crm_followups` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `customer_id` INT DEFAULT 0, `lead_id` INT DEFAULT 0, + `content` TEXT, `next_at` VARCHAR(20) DEFAULT '', `owner` VARCHAR(60) DEFAULT '', `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + // ===== 进销存 PSI ===== + "CREATE TABLE IF NOT EXISTS `psi_materials` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `code` VARCHAR(40) DEFAULT '', `name` VARCHAR(160) NOT NULL, + `spec` VARCHAR(120) DEFAULT '', `unit` VARCHAR(10) DEFAULT '个', `category` VARCHAR(40) DEFAULT '', + `stock` DECIMAL(12,2) DEFAULT 0, `price` DECIMAL(10,2) DEFAULT 0, `supplier_id` INT DEFAULT 0, + `remark` TEXT, `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + "CREATE TABLE IF NOT EXISTS `psi_products` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `code` VARCHAR(40) DEFAULT '', `name` VARCHAR(160) NOT NULL, + `spec` VARCHAR(120) DEFAULT '', `unit` VARCHAR(10) DEFAULT '件', `category` VARCHAR(40) DEFAULT '', + `stock` DECIMAL(12,2) DEFAULT 0, `cost` DECIMAL(10,2) DEFAULT 0, `price` DECIMAL(10,2) DEFAULT 0, + `remark` TEXT, `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + "CREATE TABLE IF NOT EXISTS `psi_suppliers` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(160) NOT NULL, `contact` VARCHAR(60) DEFAULT '', + `phone` VARCHAR(40) DEFAULT '', `country` VARCHAR(60) DEFAULT '', `remark` TEXT, `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + "CREATE TABLE IF NOT EXISTS `psi_purchases` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `order_no` VARCHAR(40) NOT NULL, `supplier_id` INT DEFAULT 0, + `item_type` VARCHAR(10) DEFAULT 'material', `item_id` INT DEFAULT 0, `qty` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, `amount` DECIMAL(12,2) DEFAULT 0, `status` VARCHAR(20) DEFAULT 'pending', + `remark` TEXT, `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + "CREATE TABLE IF NOT EXISTS `psi_sales` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `order_no` VARCHAR(40) NOT NULL, `customer` VARCHAR(160) DEFAULT '', + `channel` VARCHAR(20) DEFAULT 'domestic', `item_id` INT DEFAULT 0, `qty` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, `amount` DECIMAL(12,2) DEFAULT 0, `status` VARCHAR(20) DEFAULT 'pending', + `remark` TEXT, `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + "CREATE TABLE IF NOT EXISTS `psi_stock_moves` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, `item_type` VARCHAR(10) DEFAULT 'product', `item_id` INT DEFAULT 0, + `direction` VARCHAR(10) DEFAULT 'in', `qty` DECIMAL(12,2) DEFAULT 0, `ref_no` VARCHAR(40) DEFAULT '', + `remark` TEXT, `created_at` VARCHAR(20) DEFAULT '' + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", + ]; + foreach ($stmts as $s) { $pdo->exec($s); } + $out("✓ CRM/PSI 数据表已就绪(CREATE TABLE IF NOT EXISTS,幂等可重复执行)"); + + // 为 admin_users 补齐分系统角色列(先查 information_schema,存在则跳过,兼容 5.7/8.0) + $cols = $pdo->query("SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='admin_users'")->fetchAll(PDO::FETCH_COLUMN); + foreach (['crm_role' => "VARCHAR(20) DEFAULT 'none'", 'psi_role' => "VARCHAR(20) DEFAULT 'none'"] as $c => $def) { + if (!in_array($c, $cols, true)) { + $pdo->exec("ALTER TABLE `admin_users` ADD COLUMN `{$c}` {$def}"); + $out("✓ 已添加 admin_users.{$c}"); + } else { + $out("⊘ admin_users.{$c} 已存在,跳过"); + } + } + $out("✓ 数据升级完成。请登录后台 → 用户管理,将相关账号 crm_role / psi_role 设为 admin。"); +} + +// 升级模式:绕过 installed.lock,仅增量建表/补列 +$isUpgrade = ($cli && in_array('--upgrade', $argv ?? [], true)) + || (!$cli && trim((string)($_GET['upgrade'] ?? '')) === '1'); +if ($isUpgrade) { + runUpgrade(); + exit; +} + +// 质量红线:生产环境二次运行保护。已安装后写入 installed.lock,再次访问直接拒绝,避免数据被清空。 +$lock = BASE_PATH . '/storage/installed.lock'; +if (is_file($lock) && !($cli && in_array('--force', $argv ?? [], true))) { + $out("⛔ 检测到 installed.lock,系统已安装。如需重置请删除该文件或执行:php install/install.php --force"); + exit; +} + +$seed = require BASE_PATH . '/install/seed.php'; +$driver = Core\Db::driver(); + +if ($driver === 'file') { + $dir = Core\Db::fileDir(); + foreach ($seed as $table => $rows) { + // 确保每条记录带 id(如 settings 种子未含 id),否则文件模式无法按主键更新 + $i = 1; + foreach ($rows as &$r) { if (!isset($r['id'])) { $r['id'] = $i; } $i++; } + unset($r); + file_put_contents($dir . "/{$table}.json", json_encode($rows, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)); + $out("✓ 写入 {$table}.json (" . count($rows) . " 条)"); + } +} else { + // MySQL:建表 + 插入 + $sql = file_get_contents(BASE_PATH . '/install/schema.sql'); + $pdo = Core\Db::pdo(); + $pdo->exec($sql); + $out("✓ 数据表已创建"); + // 幂等升级:为已存在的 admin_users 补齐分系统角色列(已有则忽略) + foreach (['crm_role VARCHAR(20) DEFAULT \'none\'', 'psi_role VARCHAR(20) DEFAULT \'none\''] as $col) { + try { $pdo->exec("ALTER TABLE `admin_users` ADD COLUMN IF NOT EXISTS `{$col}`"); } + catch (\Throwable $e) { /* 5.7 不支持 IF NOT EXISTS 时忽略已存在错误 */ } + } + $out("✓ admin_users 分系统角色列已补齐"); + $map = [ + 'categories' => new App\Models\Category(), + 'products' => new App\Models\Product(), + 'news' => new App\Models\News(), + 'pages' => new App\Models\Page(), + 'banners' => new App\Models\Banner(), + 'cases' => new App\Models\CustomerCase(), + 'admin_users'=> new App\Models\AdminUser(), + 'settings' => new App\Models\Setting(), + 'crm_customers' => new App\Models\CRM\Customer(), + 'crm_leads' => new App\Models\CRM\Lead(), + 'crm_followups' => new App\Models\CRM\FollowUp(), + 'psi_suppliers' => new App\Models\PSI\Supplier(), + 'psi_materials' => new App\Models\PSI\Material(), + 'psi_products' => new App\Models\PSI\Product(), + 'psi_purchases' => new App\Models\PSI\Purchase(), + 'psi_sales' => new App\Models\PSI\Sales(), + 'psi_stock_moves'=> new App\Models\PSI\StockMove(), + 'orders' => new App\Models\Order(), + 'payments' => new App\Models\Payment(), + ]; + foreach ($seed as $table => $rows) { + if (!isset($map[$table])) { $out("⊘ 跳过未映射表 {$table}(无对应 Model)"); continue; } + $m = $map[$table]; + foreach ($rows as $r) { $m->insert($r); } + $out("✓ 插入 {$table} (" . count($rows) . " 条)"); + } +} + +// 生成主题 CSS +Core\Theme::regenerate(); +$out("✓ 主题样式 theme.css 已生成"); + +// 写安装锁(Web 模式自动写;CLI 不写,便于二次部署时手动控制) +if (!$cli) { + @file_put_contents($lock, date('Y-m-d H:i:s') . " installed by " . ($_SERVER['REMOTE_ADDR'] ?? 'unknown') . "\n"); + $out("✓ 已写入 installed.lock(再次运行 install 将被拒绝)"); +} + +$out(""); +$out($cli ? "安装完成 ✓" : "安装完成 ✓

访问前台 | 进入后台

"); diff --git a/install/psi_orders.sql b/install/psi_orders.sql new file mode 100644 index 0000000..cb37c4a --- /dev/null +++ b/install/psi_orders.sql @@ -0,0 +1,108 @@ +-- ============================================================= +-- 酷冰甲 CMS · PSI 进销存:销售订单 / 采购订单 / 出库单 模块 +-- 在已有库上执行一次即可(已存在则忽略)。 +-- 说明:单据与明细分离,出库单通过 so_no / so_item_id 关联销售订单, +-- 采购订单收货时写入 psi_purchases 并增加库存,出库单扣减库存。 +-- ============================================================= + +CREATE TABLE IF NOT EXISTS `psi_sales_orders` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `order_no` VARCHAR(40) NOT NULL, + `customer` VARCHAR(120) NOT NULL DEFAULT '', + `salesman` VARCHAR(60) NOT NULL DEFAULT '', + `channel` ENUM('domestic','export') NOT NULL DEFAULT 'domestic', + `region` VARCHAR(60) NOT NULL DEFAULT '', + `status` ENUM('pending','partial','delivered','closed') NOT NULL DEFAULT 'pending', + `delivery_date` DATE NULL, + `remark` TEXT, + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_so_no` (`order_no`), + KEY `idx_so_customer` (`customer`), + KEY `idx_so_salesman` (`salesman`), + KEY `idx_so_status` (`status`), + KEY `idx_so_created` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_sales_order_items` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `so_id` INT UNSIGNED NOT NULL, + `product_id` INT UNSIGNED NOT NULL DEFAULT 0, + `name` VARCHAR(160) NOT NULL DEFAULT '', + `spec` VARCHAR(120) NOT NULL DEFAULT '', + `unit` VARCHAR(20) NOT NULL DEFAULT '', + `qty` INT NOT NULL DEFAULT 0, + `price` DECIMAL(12,2) NOT NULL DEFAULT 0, + `amount` DECIMAL(12,2) NOT NULL DEFAULT 0, + `delivered_qty` INT NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `idx_so_item_so` (`so_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_purchase_orders` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `order_no` VARCHAR(40) NOT NULL, + `supplier_id` INT UNSIGNED NOT NULL DEFAULT 0, + `supplier_name` VARCHAR(120) NOT NULL DEFAULT '', + `salesman` VARCHAR(60) NOT NULL DEFAULT '', + `status` ENUM('pending','partial','received','closed') NOT NULL DEFAULT 'pending', + `expected_at` DATE NULL, + `remark` TEXT, + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_po_no` (`order_no`), + KEY `idx_po_supplier` (`supplier_id`), + KEY `idx_po_salesman` (`salesman`), + KEY `idx_po_status` (`status`), + KEY `idx_po_created` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_purchase_order_items` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `po_id` INT UNSIGNED NOT NULL, + `item_type` ENUM('material','product') NOT NULL DEFAULT 'material', + `item_id` INT UNSIGNED NOT NULL DEFAULT 0, + `name` VARCHAR(160) NOT NULL DEFAULT '', + `spec` VARCHAR(120) NOT NULL DEFAULT '', + `unit` VARCHAR(20) NOT NULL DEFAULT '', + `qty` INT NOT NULL DEFAULT 0, + `price` DECIMAL(12,2) NOT NULL DEFAULT 0, + `amount` DECIMAL(12,2) NOT NULL DEFAULT 0, + `received_qty` INT NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `idx_po_item_po` (`po_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_outbounds` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `order_no` VARCHAR(40) NOT NULL, + `so_no` VARCHAR(40) NOT NULL DEFAULT '', + `customer` VARCHAR(120) NOT NULL DEFAULT '', + `salesman` VARCHAR(60) NOT NULL DEFAULT '', + `warehouse` VARCHAR(60) NOT NULL DEFAULT '', + `status` ENUM('delivered','partial') NOT NULL DEFAULT 'delivered', + `delivery_date` DATE NULL, + `remark` TEXT, + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_ob_no` (`order_no`), + KEY `idx_ob_so` (`so_no`), + KEY `idx_ob_customer` (`customer`), + KEY `idx_ob_salesman` (`salesman`), + KEY `idx_ob_created` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_outbound_items` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `ob_id` INT UNSIGNED NOT NULL, + `so_item_id` INT UNSIGNED NOT NULL DEFAULT 0, + `product_id` INT UNSIGNED NOT NULL DEFAULT 0, + `name` VARCHAR(160) NOT NULL DEFAULT '', + `spec` VARCHAR(120) NOT NULL DEFAULT '', + `unit` VARCHAR(20) NOT NULL DEFAULT '', + `qty` INT NOT NULL DEFAULT 0, + `price` DECIMAL(12,2) NOT NULL DEFAULT 0, + `amount` DECIMAL(12,2) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `idx_ob_item_ob` (`ob_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/install/schema.sql b/install/schema.sql new file mode 100644 index 0000000..214599e --- /dev/null +++ b/install/schema.sql @@ -0,0 +1,308 @@ +-- 酷冰甲降温服官网 MySQL 结构 +SET NAMES utf8mb4; + +CREATE TABLE IF NOT EXISTS `categories` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(120) NOT NULL, + `slug` VARCHAR(120) DEFAULT '', + `icon` VARCHAR(20) DEFAULT '', + `description` TEXT, + `sort_order` INT DEFAULT 0, + `status` TINYINT DEFAULT 1, + `layout` TEXT, + `mode` VARCHAR(16) NOT NULL DEFAULT 'fixed' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `products` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `category_id` INT DEFAULT 0, + `name` VARCHAR(200) NOT NULL, + `slug` VARCHAR(200) DEFAULT '', + `cover` VARCHAR(255) DEFAULT '', + `summary` TEXT, + `description` TEXT, + `price` DECIMAL(10,2) DEFAULT 0, + `specs` TEXT, + `gallery` TEXT, + `tags` VARCHAR(255) DEFAULT '', + `sort_order` INT DEFAULT 0, + `status` TINYINT DEFAULT 1, + `created_at` VARCHAR(20) DEFAULT '', + `layout` TEXT, + `mode` VARCHAR(16) NOT NULL DEFAULT 'fixed' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `news` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `title` VARCHAR(200) NOT NULL, + `slug` VARCHAR(200) DEFAULT '', + `cover` VARCHAR(255) DEFAULT '', + `summary` TEXT, + `content` TEXT, + `author` VARCHAR(60) DEFAULT '', + `published_at` VARCHAR(20) DEFAULT '', + `status` TINYINT DEFAULT 1, + `views` INT DEFAULT 0, + `layout` TEXT, + `mode` VARCHAR(16) NOT NULL DEFAULT 'fixed' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `cases` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `title` VARCHAR(200) NOT NULL, + `slug` VARCHAR(200) DEFAULT '', + `customer` VARCHAR(120) DEFAULT '', + `industry` VARCHAR(60) DEFAULT '', + `cover` VARCHAR(255) DEFAULT '', + `summary` TEXT, + `content` TEXT, + `published_at` VARCHAR(20) DEFAULT '', + `sort_order` INT DEFAULT 0, + `status` TINYINT DEFAULT 1, + `views` INT DEFAULT 0, + `layout` TEXT, + `mode` VARCHAR(16) NOT NULL DEFAULT 'fixed' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `pages` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `slug` VARCHAR(120) DEFAULT '', + `title` VARCHAR(200) DEFAULT '', + `content` TEXT, + `layout` TEXT, + `mode` VARCHAR(16) NOT NULL DEFAULT 'fixed', + `updated_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `banners` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `title` VARCHAR(200) DEFAULT '', + `subtitle` VARCHAR(255) DEFAULT '', + `image` VARCHAR(255) DEFAULT '', + `link` VARCHAR(255) DEFAULT '', + `sort_order` INT DEFAULT 0, + `status` TINYINT DEFAULT 1 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `admin_users` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `username` VARCHAR(60) NOT NULL, + `password` VARCHAR(255) NOT NULL, + `name` VARCHAR(60) DEFAULT '', + `role` VARCHAR(20) DEFAULT 'user', + `crm_role` VARCHAR(20) DEFAULT 'none', + `psi_role` VARCHAR(20) DEFAULT 'none', + `crm_perms` TEXT, + `psi_perms` TEXT, + `status` TINYINT DEFAULT 1, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +/* ===================== CRM 客户管理系统 ===================== */ +CREATE TABLE IF NOT EXISTS `crm_customers` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(120) NOT NULL, + `company` VARCHAR(160) DEFAULT '', + `contact` VARCHAR(60) DEFAULT '', + `phone` VARCHAR(40) DEFAULT '', + `email` VARCHAR(120) DEFAULT '', + `country` VARCHAR(60) DEFAULT '', + `type` VARCHAR(20) DEFAULT 'brand', + `source` VARCHAR(40) DEFAULT '', + `level` VARCHAR(20) DEFAULT 'C', + `customer_no` VARCHAR(40) DEFAULT '', + `industry` VARCHAR(20) DEFAULT '', + `region` VARCHAR(40) DEFAULT '', + `credit_limit` DECIMAL(12,2) DEFAULT 0, + `status` VARCHAR(20) DEFAULT 'lead', + `remark` TEXT, + `owner` VARCHAR(60) DEFAULT '', + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `crm_contacts` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `customer_id` INT NOT NULL, + `name` VARCHAR(80) NOT NULL, + `title` VARCHAR(80) DEFAULT '', + `phone` VARCHAR(60) DEFAULT '', + `email` VARCHAR(120) DEFAULT '', + `wechat` VARCHAR(60) DEFAULT '', + `is_primary` TINYINT DEFAULT 0, + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `crm_leads` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `customer_id` INT DEFAULT 0, + `title` VARCHAR(200) NOT NULL, + `amount` DECIMAL(12,2) DEFAULT 0, + `stage` VARCHAR(20) DEFAULT 'new', + `expected_close` VARCHAR(20) DEFAULT '', + `source` VARCHAR(30) DEFAULT '', + `probability` TINYINT DEFAULT 0, + `owner` VARCHAR(60) DEFAULT '', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `crm_followups` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `customer_id` INT DEFAULT 0, + `lead_id` INT DEFAULT 0, + `content` TEXT, + `next_at` VARCHAR(20) DEFAULT '', + `way` VARCHAR(20) DEFAULT '', + `result` VARCHAR(60) DEFAULT '', + `owner` VARCHAR(60) DEFAULT '', + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +/* ===================== 进销存 PSI 系统 ===================== */ +CREATE TABLE IF NOT EXISTS `psi_materials` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `code` VARCHAR(40) DEFAULT '', + `name` VARCHAR(160) NOT NULL, + `spec` VARCHAR(120) DEFAULT '', + `unit` VARCHAR(10) DEFAULT '个', + `category` VARCHAR(40) DEFAULT '', + `composition` VARCHAR(60) DEFAULT '', + `weight_gsm` DECIMAL(8,2) DEFAULT 0, + `width_cm` DECIMAL(8,2) DEFAULT 0, + `color` VARCHAR(40) DEFAULT '', + `batch_no` VARCHAR(40) DEFAULT '', + `stock` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `supplier_id` INT DEFAULT 0, + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_products` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `code` VARCHAR(40) DEFAULT '', + `name` VARCHAR(160) NOT NULL, + `spec` VARCHAR(120) DEFAULT '', + `unit` VARCHAR(10) DEFAULT '件', + `category` VARCHAR(40) DEFAULT '', + `style_no` VARCHAR(40) DEFAULT '', + `color` VARCHAR(40) DEFAULT '', + `size_run` VARCHAR(60) DEFAULT '', + `season` VARCHAR(20) DEFAULT '', + `year` VARCHAR(10) DEFAULT '', + `stock` DECIMAL(12,2) DEFAULT 0, + `cost` DECIMAL(10,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_suppliers` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(160) NOT NULL, + `contact` VARCHAR(60) DEFAULT '', + `phone` VARCHAR(40) DEFAULT '', + `country` VARCHAR(60) DEFAULT '', + `type` VARCHAR(20) DEFAULT '', + `grade` VARCHAR(20) DEFAULT '', + `ontime_rate` DECIMAL(5,2) DEFAULT 0, + `qc_rate` DECIMAL(5,2) DEFAULT 0, + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_purchases` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL, + `supplier_id` INT DEFAULT 0, + `item_type` VARCHAR(10) DEFAULT 'material', + `item_id` INT DEFAULT 0, + `qty` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `amount` DECIMAL(12,2) DEFAULT 0, + `status` VARCHAR(20) DEFAULT 'pending', + `batch_no` VARCHAR(40) DEFAULT '', + `expected_at` VARCHAR(20) DEFAULT '', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_sales` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL, + `customer` VARCHAR(160) DEFAULT '', + `channel` VARCHAR(20) DEFAULT 'domestic', + `item_id` INT DEFAULT 0, + `qty` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `amount` DECIMAL(12,2) DEFAULT 0, + `status` VARCHAR(20) DEFAULT 'pending', + `region` VARCHAR(40) DEFAULT '', + `batch_no` VARCHAR(40) DEFAULT '', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_stock_moves` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `item_type` VARCHAR(10) DEFAULT 'product', + `item_id` INT DEFAULT 0, + `direction` VARCHAR(10) DEFAULT 'in', + `qty` DECIMAL(12,2) DEFAULT 0, + `ref_no` VARCHAR(40) DEFAULT '', + `batch_no` VARCHAR(40) DEFAULT '', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `settings` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `skey` VARCHAR(120) NOT NULL, + `sval` TEXT, + `sgroup` VARCHAR(40) DEFAULT 'site' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `orders` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL, + `product_id` INT DEFAULT 0, + `product_name` VARCHAR(200) DEFAULT '', + `customer_name` VARCHAR(120) DEFAULT '', + `phone` VARCHAR(40) DEFAULT '', + `email` VARCHAR(120) DEFAULT '', + `qty` INT DEFAULT 1, + `amount` DECIMAL(10,2) DEFAULT 0, + `channel` VARCHAR(20) DEFAULT '', + `status` VARCHAR(20) DEFAULT 'pending', + `gateway_trade_no` VARCHAR(120) DEFAULT '', + `paid_at` VARCHAR(20) DEFAULT '', + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `payments` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_id` INT DEFAULT 0, + `order_no` VARCHAR(40) NOT NULL, + `channel` VARCHAR(20) DEFAULT '', + `amount` DECIMAL(10,2) DEFAULT 0, + `trade_no` VARCHAR(120) DEFAULT '', + `status` VARCHAR(20) DEFAULT '', + `created_at` VARCHAR(20) DEFAULT '', + `paid_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_events` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `sys` VARCHAR(20) NOT NULL DEFAULT 'psi', + `type` VARCHAR(40) NOT NULL DEFAULT '', + `level` VARCHAR(20) NOT NULL DEFAULT 'urgent', + `title` VARCHAR(255) NOT NULL DEFAULT '', + `body` TEXT, + `url` VARCHAR(255) NOT NULL DEFAULT '', + `ref_no` VARCHAR(64) NOT NULL DEFAULT '', + `recipients` TEXT, + `channels` VARCHAR(255) NOT NULL DEFAULT '["inapp"]', + `read_by` TEXT, + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/install/seed.php b/install/seed.php new file mode 100644 index 0000000..5390b6b --- /dev/null +++ b/install/seed.php @@ -0,0 +1,157 @@ + [ + ['id'=>1,'name'=>'水冷循环降温服','slug'=>'water-cooling','icon'=>'💧','description'=>'内置微型水泵与循环水管,持续带走体表热量,适合长时间高温作业。','sort_order'=>1,'status'=>1], + ['id'=>2,'name'=>'相变蓄冷凝胶服','slug'=>'pcm-gel','icon'=>'🧊','description'=>'相变材料(PCM)蓄冷凝胶贴片,无需电源,即穿即凉,轻便无束缚。','sort_order'=>2,'status'=>1], + ['id'=>3,'name'=>'涡扇风冷降温服','slug'=>'air-cooling','icon'=>'🌀','description'=>'双涡扇主动送风,加速汗液蒸发,体感直降 8-12℃。','sort_order'=>3,'status'=>1], + ['id'=>4,'name'=>'冰袋降温马甲','slug'=>'ice-vest','icon'=>'❄️','description'=>'可替换冰袋/冰晶盒马甲,低成本高效降温,户外与车间通用。','sort_order'=>4,'status'=>1], + ['id'=>5,'name'=>'工业降温工作服','slug'=>'industrial','icon'=>'🏭','description'=>'面向钢铁、消防、化工等高温行业的模块化降温工装。','sort_order'=>5,'status'=>1], + ['id'=>6,'name'=>'户外清凉服饰','slug'=>'outdoor','icon'=>'🌿','description'=>'骑行、马拉松、巡检等户外场景的轻量降温装备。','sort_order'=>6,'status'=>1], + ], + 'products' => [ + ['id'=>1,'category_id'=>1,'name'=>'SQY- Pro 水冷降温套装','slug'=>'sqy-pro-water','cover'=>'','summary'=>'医用级硅胶水管 + 5000mAh 续航,4 档调速,体感直降 10℃。','description'=>"SQY-Pro 水冷降温套装采用分布式毛细水管贴合躯干大血管区域,微型静音水泵驱动冷却液循环,将体表热量高效导出。\n\n· 4 档风速/水速调节,单次续航 6-8 小时\n· 食品级 TPU 水管,亲肤无异味\n· 外套可拆洗,内胆防水防漏\n· 适用:钢铁、焊接、消防、厨房高温区",'price'=>'1299.00','specs'=>'[{"k":"降温方式","v":"水冷循环"},{"k":"续航","v":"6-8 小时"},{"k":"净重","v":"约 1.2kg"},{"k":"档位","v":"4 档可调"},{"k":"适配温度","v":"≤ 45℃ 环境"}]','gallery'=>'[]','tags'=>'水冷,Pro,长续航','sort_order'=>1,'status'=>1,'created_at'=>'2026-03-12'], + ['id'=>2,'category_id'=>2,'name'=>'冰晶凝胶蓄冷降温背心','slug'=>'gel-vest','cover'=>'','summary'=>'30 秒速冻,单片蓄冷 2 小时,免电源即穿即凉。','description'=>"采用高分子相变蓄冷凝胶贴片,放入冰箱/冰柜 30 分钟即可凝固,穿着后缓慢相变吸热,无需电池。\n\n· 前后 8 片凝胶,覆盖核心降温区\n· 单片蓄冷时长约 2 小时,可快速更换\n· 马甲式设计,不影响作业动作\n· 适用:户外巡检、物流分拣、赛事保障",'price'=>'399.00','specs'=>'[{"k":"降温方式","v":"相变蓄冷"},{"k":"蓄冷时长","v":"约 2 小时/片"},{"k":"凝胶片","v":"前后 8 片"},{"k":"电源","v":"无需电源"},{"k":"清洗","v":"马甲可水洗"}]','gallery'=>'[]','tags'=>'凝胶,免电源,轻便','sort_order'=>2,'status'=>1,'created_at'=>'2026-03-15'], + ['id'=>3,'category_id'=>3,'name'=>'双涡扇风冷降温马甲','slug'=>'fan-vest','cover'=>'','summary'=>'前后双涡扇主动送风,体感直降 8-12℃,USB 供电。','description'=>"前后布置高能效涡扇,将外部空气过滤后送入服装夹层,加速汗液蒸发与对流换热。\n\n· 双涡扇独立开关,3 档风力\n· USB/充电宝供电,移动便捷\n· 网眼透气里料,久穿不闷\n· 适用:建筑、环卫、骑行、军训",'price'=>'299.00','specs'=>'[{"k":"降温方式","v":"涡扇风冷"},{"k":"风力","v":"3 档可调"},{"k":"供电","v":"USB / 充电宝"},{"k":"体感降温","v":"8-12℃"},{"k":"净重","v":"约 0.6kg"}]','gallery'=>'[]','tags'=>'风冷,USB,轻便','sort_order'=>3,'status'=>1,'created_at'=>'2026-03-18'], + ['id'=>4,'category_id'=>4,'name'=>'可换冰袋降温马甲','slug'=>'ice-bag-vest','cover'=>'','summary'=>'6 个独立冰袋仓,低成本高效降温,户外车间通用。','description'=>"经典冰袋式降温马甲,6 个独立密封冰袋仓,放入冰晶盒即可使用,性价比之选。\n\n· 前后 6 仓均匀分布,降温均衡\n· 冰袋可反复冻用,损耗低\n· 反光条设计,夜间作业更安全\n· 适用:仓储、农业、临时户外作业",'price'=>'159.00','specs'=>'[{"k":"降温方式","v":"冰袋蓄冷"},{"k":"冰袋仓","v":"6 个独立仓"},{"k":"电源","v":"无需电源"},{"k":"安全","v":"反光条"},{"k":"价格","v":"高性价比"}]','gallery'=>'[]','tags'=>'冰袋,性价比,通用','sort_order'=>4,'status'=>1,'created_at'=>'2026-03-20'], + ['id'=>5,'category_id'=>5,'name'=>'工业模块化降温工装','slug'=>'industrial-suit','cover'=>'','summary'=>'为钢铁/消防/化工定制的模块化降温防护服,可集成多种降温芯。','description'=>"面向高温高危行业的模块化降温工装,外层阻燃耐磨,内层可插拔水冷/凝胶/冰袋降温芯,按岗位灵活组合。\n\n· 阻燃防静电外层,符合工装标准\n· 降温芯可插拔替换,一衣多用\n· 多处工具挂点,贴合作业习惯\n· 适用:钢铁、消防、化工、冶炼",'price'=>'1899.00','specs'=>'[{"k":"降温方式","v":"模块化可换芯"},{"k":"外层","v":"阻燃防静电"},{"k":"适配芯","v":"水冷/凝胶/冰袋"},{"k":"定制","v":"支持企业 LOGO 绣字"},{"k":"标准","v":"符合工装规范"}]','gallery'=>'[]','tags'=>'工业,阻燃,定制','sort_order'=>5,'status'=>1,'created_at'=>'2026-03-22'], + ['id'=>6,'category_id'=>6,'name'=>'户外轻量降温皮肤衣','slug'=>'skin-coat','cover'=>'','summary'=>'UPF50+ 防晒 + 背部风冷,骑行马拉松巡检必备。','description'=>"超轻防晒皮肤衣集成背部微型风冷模块,UPF50+ 防晒同时主动降温,折叠后仅手掌大小。\n\n· UPF50+ 防晒,透气速干\n· 背部风冷模块,体感更清爽\n· 整衣可收纳,便携出行\n· 适用:骑行、马拉松、户外巡检",'price'=>'259.00','specs'=>'[{"k":"防晒","v":"UPF50+"},{"k":"降温方式","v":"背部风冷"},{"k":"收纳","v":"手掌大小"},{"k":"重量","v":"约 180g"},{"k":"场景","v":"户外轻运动"}]','gallery'=>'[]','tags'=>'户外,防晒,轻量','sort_order'=>6,'status'=>1,'created_at'=>'2026-03-25'], + ['id'=>7,'category_id'=>1,'name'=>'SQY-Lite 水冷降温内胆','slug'=>'sqy-lite','cover'=>'','summary'=>'可嵌入现有工装的水冷内胆,升级不加衣。','description'=>"独立水冷内胆,可穿在任意工装内侧,让既有服装秒变降温服,降低整体采购成本。\n\n· 弹性贴合,适配多数尺码工装\n· 微型水泵静音,续航 5 小时\n· 内胆防水,外衣照常清洗\n· 适用:已有工装升级、分批改造",'price'=>'899.00','specs'=>'[{"k":"类型","v":"水冷内胆"},{"k":"续航","v":"约 5 小时"},{"k":"适配","v":"多数工装"},{"k":"噪声","v":"< 30dB"},{"k":"升级","v":"不加衣即可降温"}]','gallery'=>'[]','tags'=>'内胆,升级,静音','sort_order'=>7,'status'=>1,'created_at'=>'2026-03-28'], + ['id'=>8,'category_id'=>3,'name'=>'头颈一体风冷降温帽','slug'=>'cool-cap','cover'=>'','summary'=>'头部+颈部环绕送风,快速缓解中暑前兆。','description'=>"针对头部高温聚集设计的头颈一体风冷帽,环绕送风快速带走头颈热量,预防中暑。\n\n· 头颈双区送风,降温更均衡\n· 可拆洗内衬,卫生耐用\n· Type-C 充电,续航 4 小时\n· 适用:交警、巡检、户外指挥",'price'=>'199.00','specs'=>'[{"k":"降温方式","v":"头颈风冷"},{"k":"续航","v":"约 4 小时"},{"k":"充电","v":"Type-C"},{"k":"清洗","v":"内衬可拆洗"},{"k":"场景","v":"高温户外值守"}]','gallery'=>'[]','tags'=>'头颈,防暑,便携','sort_order'=>8,'status'=>1,'created_at'=>'2026-04-01'], + ], + 'banners' => [ + ['id'=>1,'title'=>'科技降温 · 清凉一夏','subtitle'=>'相变蓄冷 / 水冷循环 / 涡扇风冷,为高温作业人群定制','image'=>'linear-gradient(135deg,#0ea5e9,#14b8a6)','link'=>'/products','sort_order'=>1,'status'=>1], + ['id'=>2,'title'=>'20 年服装定制经验','subtitle'=>'外贸级品质工厂,支持企业 LOGO 绣字与一人一码量体','image'=>'linear-gradient(135deg,#0284c7,#0ea5e9)','link'=>'/page/about','sort_order'=>2,'status'=>1], + ['id'=>3,'title'=>'免费拿样 · 5 天出方案','subtitle'=>'提交需求,专属顾问 1 对 1 为您设计降温解决方案','image'=>'linear-gradient(135deg,#14b8a6,#f59e0b)','link'=>'/contact','sort_order'=>3,'status'=>1], + ], + 'news' => [ + ['id'=>1,'title'=>'酷冰甲发布新一代水冷降温服 SQY-Pro,体感直降 10℃','slug'=>'sqy-pro-launch','cover'=>'','summary'=>'采用分布式毛细水管与静音水泵,单次续航提升至 8 小时。','content'=>"近日,酷冰甲正式发布新一代水冷降温服 SQY-Pro。该产品采用分布式毛细水管贴合躯干大血管区域,配合微型静音水泵驱动冷却液循环,将体表热量高效导出,体感温度可直降 10℃。\n\n研发团队表示,SQY-Pro 在续航、重量与舒适度上均有显著突破,单次充电可连续工作 8 小时,整机重量控制在 1.2kg 以内,更适合长时间高温作业场景。",'author'=>'酷冰甲','published_at'=>'2026-04-10','status'=>1,'views'=>128], + ['id'=>2,'title'=>'夏季高温作业防护指南:如何科学选择降温服','slug'=>'summer-guide','cover'=>'','summary'=>'从降温原理到场景适配,一文读懂水冷、凝胶、风冷怎么选。','content'=>"随着极端高温天气增多,户外与车间作业人员的防暑降温成为关注焦点。本文从降温原理出发,对比水冷循环、相变蓄冷、涡扇风冷三类方案的适用场景,帮助企业根据自身岗位特点科学选型。\n\n· 长时间恒温作业:优先水冷循环\n· 临时/移动作业:凝胶或冰袋更灵活\n· 户外轻运动:风冷皮肤衣更轻便",'author'=>'酷冰甲','published_at'=>'2026-04-05','status'=>1,'views'=>96], + ['id'=>3,'title'=>'酷冰甲为某钢铁集团交付模块化降温工装','slug'=>'steel-case','cover'=>'','summary'=>'支持阻燃外层 + 可换降温芯,获一线员工好评。','content'=>"日前,酷冰甲完成对某大型钢铁集团的模块化降温工装交付。该批工装采用阻燃防静电外层,内层可插拔水冷/凝胶降温芯,按岗位灵活组合,获得一线员工与安全管理部分的一致好评。",'author'=>'酷冰甲','published_at'=>'2026-03-30','status'=>1,'views'=>74], + ['id'=>4,'title'=>'相变蓄冷技术原理科普:为什么凝胶背心能"自动降温"','slug'=>'pcm-science','cover'=>'','summary'=>'揭秘相变材料(PCM)如何在不耗电的情况下持续吸热。','content'=>"相变材料(PCM)在一定温度区间内会发生固-液相变并吸收大量潜热。凝胶背心正是利用这一特性,在凝固状态下穿着时缓慢相变吸热,从而在不耗电的情况下实现持续降温。本文带你读懂背后的科学。",'author'=>'酷冰甲','published_at'=>'2026-03-22','status'=>1,'views'=>61], + ], + 'cases' => [ + ['id'=>1,'title'=>'某大型钢铁集团模块化降温工装交付','slug'=>'steel-group-cases','customer'=>'某大型钢铁集团','industry'=>'钢铁冶炼','cover'=>'','summary'=>'阻燃外层 + 可换降温芯,覆盖高炉、轧线等高温岗位,获一线员工好评。','content'=>"日前,酷冰甲完成对某大型钢铁集团的模块化降温工装批量交付。该批工装采用阻燃防静电外层,内层可插拔水冷 / 凝胶 / 冰袋降温芯,按岗位灵活组合,覆盖高炉、轧线、铸造等核心高温岗位。\n\n交付后,一线员工体感温度明显下降,安全管理部对降温效果与穿着舒适度给予一致好评,并表示将在更多分厂推广使用。",'published_at'=>'2026-03-30','sort_order'=>1,'status'=>1,'views'=>0], + ['id'=>2,'title'=>'某消防救援支队头颈一体风冷降温装备','slug'=>'fire-rescue-cases','customer'=>'某地消防救援支队','industry'=>'消防救援','cover'=>'','summary'=>'头颈双区环绕送风,快速缓解中暑前兆,保障高温救援。','content'=>"针对夏季高温救援与训练场景,酷冰甲为某消防救援支队定制头颈一体风冷降温装备。该装备头颈双区环绕送风,Type-C 快充、续航 4 小时,可拆洗内衬卫生耐用,显著缓解指战员中暑前兆,保障长时间高温救援作业安全。",'published_at'=>'2026-04-02','sort_order'=>2,'status'=>1,'views'=>0], + ['id'=>3,'title'=>'某化工企业相变蓄冷凝胶背心','slug'=>'chemical-gel-cases','customer'=>'某化工生产企业','industry'=>'化工生产','cover'=>'','summary'=>'免电源即穿即凉,30 秒速冻、单片蓄冷 2 小时,巡检更安心。','content'=>"某化工生产企业为巡检与检修岗位引入酷冰甲相变蓄冷凝胶背心。产品免电源、30 秒速冻、单片蓄冷约 2 小时,可快速更换,马甲式设计不影响作业动作,让一线员工在罐区、管线等高温区域巡检更安心。",'published_at'=>'2026-04-06','sort_order'=>3,'status'=>1,'views'=>0], + ['id'=>4,'title'=>'某环卫集团涡扇风冷马甲批量定制','slug'=>'sanitation-fan-cases','customer'=>'某城市环卫集团','industry'=>'环卫保洁','cover'=>'','summary'=>'USB 供电、3 档风力,覆盖道路保洁与垃圾转运岗位。','content'=>"某城市环卫集团批量定制酷冰甲双涡扇风冷降温马甲,USB / 充电宝即可供电,3 档风力可调,覆盖道路保洁、垃圾转运等户外岗位。轻量透气、反光线条提升夜间作业安全,获得环卫工人的普遍认可。",'published_at'=>'2026-04-12','sort_order'=>4,'status'=>1,'views'=>0], + ], + 'pages' => [ + ['id'=>1,'slug'=>'about','title'=>'关于酷冰甲','content'=>"

苏州酷冰甲服饰有限公司拥有 20 年服装行业经验,从事职业装内销与外贸,专注高温作业人群的降温服装研发与定制。

公司具备完整、科学的质量管理体系,生产工厂具有多年外贸代工经验,引进德国进口设备,按欧美外贸级别标准出货。我们为钢铁、消防、化工、环卫、物流、户外等行业提供整体降温服装解决方案。

我们坚持「柔性化生产、一人一码、量身定制」,10 套起订,交付后提供包换包修与免费保养指导,让客户的权益得到保障。

",'layout'=>'','updated_at'=>'2026-04-01'], + ['id'=>2,'slug'=>'service','title'=>'服务与优势','content'=>"

柔性化生产:小单亦可定制,10 套起订,灵活补单。

量身打造:设计师结合企业文化与功能需求定向设计,5 天出具方案。

一人一码:资深打版师打板、上门量体,高度还原设计稿,合身合体。

外贸级品质:156 道工序层层把控,欧美出口级标准。

售后无忧:交付 3 个月内包换包修改,2 年内免费返修,免费教授日常保养。

",'layout'=>'','updated_at'=>'2026-04-01'], + ['id'=>3,'slug'=>'cases','title'=>'客户案例','content'=>"

众多企事业单位选择了酷冰甲降温服装定制服务,覆盖钢铁冶炼、消防救援、化工生产、环卫保洁、物流仓储、户外赛事等场景。

我们提供从需求沟通、上门量体、方案设计、批量生产到成衣交付的全流程服务,并支持企业 LOGO 绣字与个性化定制。

",'layout'=>'','updated_at'=>'2026-04-01'], + ['id'=>4,'slug'=>'honor','title'=>'荣誉资质','content'=>"

酷冰甲先后获得行业多项荣誉与资质认证,包括质量管理体系认证、外贸级生产资质及多家机构颁发的合作荣誉。

我们持续以品质与客户利益为先,售后及时响应客户反馈,10 秒接通,为客户解决问题。

",'layout'=>'','updated_at'=>'2026-04-01'], + ], + 'admin_users' => [ + ['id'=>1,'username'=>'admin','password'=>password_hash('admin888', PASSWORD_DEFAULT),'name'=>'超级管理员','role'=>'super_admin','crm_role'=>'admin','psi_role'=>'admin','status'=>1,'created_at'=>'2026-01-01'], + ['id'=>2,'username'=>'editor','password'=>password_hash('editor888', PASSWORD_DEFAULT),'name'=>'内容管理员','role'=>'admin','status'=>1,'created_at'=>'2026-01-01'], + ['id'=>3,'username'=>'writer','password'=>password_hash('writer888', PASSWORD_DEFAULT),'name'=>'编辑员','role'=>'user','status'=>1,'created_at'=>'2026-01-01'], + ], + 'settings' => [ + ['skey'=>'site_name','sval'=>'酷冰甲 · 降温服','sgroup'=>'site'], + ['skey'=>'site_slogan','sval'=>'科技降温 · 清凉一夏','sgroup'=>'site'], + ['skey'=>'contact_phone','sval'=>'400-1783-998','sgroup'=>'site'], + ['skey'=>'contact_email','sval'=>'service@st-joyapparel.com','sgroup'=>'site'], + ['skey'=>'contact_address','sval'=>'江苏省苏州市工业园区','sgroup'=>'site'], + ['skey'=>'icp','sval'=>'苏ICP备10206899号','sgroup'=>'site'], + ['skey'=>'seo_title','sval'=>'酷冰甲降温服 - 科技降温服装定制','sgroup'=>'site'], + ['skey'=>'seo_keywords','sval'=>'降温服,降温工作服,水冷降温服,相变蓄冷凝胶服,清凉服定制','sgroup'=>'site'], + ['skey'=>'seo_description','sval'=>'酷冰甲专注降温服研发与定制,采用相变蓄冷与循环水冷技术,为高温作业人群提供清凉解决方案。','sgroup'=>'site'], + ['skey'=>'preset','sval'=>'ocean','sgroup'=>'theme'], + ['skey'=>'primary','sval'=>'#0ea5e9','sgroup'=>'theme'], + ['skey'=>'primary_600','sval'=>'#0284c7','sgroup'=>'theme'], + ['skey'=>'secondary','sval'=>'#14b8a6','sgroup'=>'theme'], + ['skey'=>'accent','sval'=>'#f59e0b','sgroup'=>'theme'], + ['skey'=>'bg','sval'=>'#ffffff','sgroup'=>'theme'], + ['skey'=>'surface','sval'=>'#f8fafc','sgroup'=>'theme'], + ['skey'=>'text','sval'=>'#0f172a','sgroup'=>'theme'], + ['skey'=>'muted','sval'=>'#64748b','sgroup'=>'theme'], + ['skey'=>'border','sval'=>'#e2e8f0','sgroup'=>'theme'], + ['skey'=>'nav_bg','sval'=>'rgba(255,255,255,0.72)','sgroup'=>'theme'], + ['skey'=>'font','sval'=>"'Noto Sans SC', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",'sgroup'=>'theme'], + ['skey'=>'radius','sval'=>'16','sgroup'=>'theme'], + ['skey'=>'container','sval'=>'1200','sgroup'=>'theme'], + ['skey'=>'header','sval'=>'center','sgroup'=>'theme'], + ['skey'=>'default_mode','sval'=>'light','sgroup'=>'theme'], + ['skey'=>'custom_css','sval'=>'','sgroup'=>'theme'], + ['skey'=>'pay_enabled','sval'=>'1','sgroup'=>'pay'], + ['skey'=>'pay_mode','sval'=>'demo','sgroup'=>'pay'], + ['skey'=>'pay_alipay_appid','sval'=>'','sgroup'=>'pay'], + ['skey'=>'pay_alipay_private_key','sval'=>'','sgroup'=>'pay'], + ['skey'=>'pay_alipay_public_key','sval'=>'','sgroup'=>'pay'], + ['skey'=>'pay_alipay_gateway','sval'=>'https://openapi.alipay.com/gateway.do','sgroup'=>'pay'], + ['skey'=>'pay_wechat_mchid','sval'=>'','sgroup'=>'pay'], + ['skey'=>'pay_wechat_appid','sval'=>'','sgroup'=>'pay'], + ['skey'=>'pay_wechat_key','sval'=>'','sgroup'=>'pay'], + + // 事件通知(邮件 + 企业微信) + ['skey'=>'notify_enabled','sval'=>'0','sgroup'=>'notify'], + ['skey'=>'notify_email_enabled','sval'=>'0','sgroup'=>'notify'], + ['skey'=>'notify_email_smtp_host','sval'=>'','sgroup'=>'notify'], + ['skey'=>'notify_email_smtp_port','sval'=>'465','sgroup'=>'notify'], + ['skey'=>'notify_email_smtp_user','sval'=>'','sgroup'=>'notify'], + ['skey'=>'notify_email_smtp_pass','sval'=>'','sgroup'=>'notify'], + ['skey'=>'notify_email_from','sval'=>'','sgroup'=>'notify'], + ['skey'=>'notify_email_to','sval'=>'','sgroup'=>'notify'], + ['skey'=>'notify_wechat_enabled','sval'=>'0','sgroup'=>'notify'], + ['skey'=>'notify_wechat_webhook','sval'=>'','sgroup'=>'notify'], + ['skey'=>'notify_wechat_mention','sval'=>'','sgroup'=>'notify'], + ['skey'=>'notify_lowstock_enabled','sval'=>'1','sgroup'=>'notify'], + ['skey'=>'notify_lowstock_threshold','sval'=>'20','sgroup'=>'notify'], + ], + 'orders' => [], + 'payments' => [], + + /* ===================== CRM 客户管理(示例数据)===================== */ + 'crm_customers' => [ + ['id'=>1,'name'=>'张明','company'=>'苏州恒利纺织有限公司','contact'=>'张经理','phone'=>'13800001111','email'=>'zhang@hengli.com','country'=>'中国','type'=>'trade','source'=>'转介绍','level'=>'A','remark'=>'年采购面料约 50 万米,信用良好','owner'=>'admin','created_at'=>'2026-03-10'], + ['id'=>2,'name'=>'John Smith','company'=>'Global Apparel Importers Ltd','contact'=>'John','phone'=>'+1-415-555-0199','email'=>'john@globalapparel.com','country'=>'美国','type'=>'export','source'=>'展会','level'=>'A','remark'=>'北美户外品牌采购商,首单预计 3000 件','owner'=>'admin','created_at'=>'2026-03-15'], + ['id'=>3,'name'=>'李婷','company'=>'杭州清凉服饰连锁','contact'=>'李店长','phone'=>'13900002222','email'=>'','country'=>'中国','type'=>'retail','source'=>'官网','level'=>'B','remark'=>'长三角 12 家门店,夏季终端零售','owner'=>'admin','created_at'=>'2026-04-02'], + ], + 'crm_leads' => [ + ['id'=>1,'customer_id'=>2,'title'=>'SQY-Pro 水冷套装出口订单','amount'=>389700.00,'stage'=>'negotiation','expected_close'=>'2026-08-30','owner'=>'admin','remark'=>'客户要求 CE 认证,已提供','created_at'=>'2026-05-10'], + ['id'=>2,'customer_id'=>1,'title'=>'冰丝面料年度框架','amount'=>900000.00,'stage'=>'proposal','expected_close'=>'2026-09-15','owner'=>'admin','remark'=>'需寄样确认色牢度','created_at'=>'2026-05-20'], + ['id'=>3,'customer_id'=>3,'title'=>'门店夏季补货','amount'=>60000.00,'stage'=>'new','expected_close'=>'2026-06-30','owner'=>'admin','remark'=>'','created_at'=>'2026-05-25'], + ], + 'crm_followups' => [ + ['id'=>1,'customer_id'=>2,'lead_id'=>1,'content'=>'邮件确认 CE 证书已收到,进入价格谈判','next_at'=>'2026-07-30','owner'=>'admin','created_at'=>'2026-07-01'], + ['id'=>2,'customer_id'=>1,'lead_id'=>2,'content'=>'寄出冰丝面料样品 3 色,跟进回传检测报告','next_at'=>'2026-07-28','owner'=>'admin','created_at'=>'2026-07-05'], + ], + + /* ===================== 进销存 PSI(示例数据)===================== */ + 'psi_suppliers' => [ + ['id'=>1,'name'=>'苏州恒利纺织有限公司','contact'=>'张经理','phone'=>'13800001111','country'=>'中国','remark'=>'主营冰丝、相变面料,交期稳定','created_at'=>'2026-03-10'], + ['id'=>2,'name'=>'Shenzhen CoolTech Electronics','contact'=>'Tony','phone'=>'+86-755-8888-0011','country'=>'中国','remark'=>'双涡扇模组、PCBA 供应商','created_at'=>'2026-03-12'], + ], + 'psi_materials' => [ + ['id'=>1,'code'=>'M001','name'=>'冰丝降温面料','spec'=>'75D 平纹','unit'=>'米','category'=>'面料','stock'=>500.00,'price'=>18.00,'supplier_id'=>1,'remark'=>'主面料','created_at'=>'2026-03-10'], + ['id'=>2,'code'=>'M002','name'=>'PCM 蓄冷凝胶片','spec'=>'5mm 网格','unit'=>'片','category'=>'辅料','stock'=>300.00,'price'=>6.50,'supplier_id'=>0,'remark'=>'相变材料','created_at'=>'2026-03-12'], + ['id'=>3,'code'=>'M003','name'=>'双涡扇模组','spec'=>'DC5V 0.25A','unit'=>'个','category'=>'电子件','stock'=>200.00,'price'=>45.00,'supplier_id'=>2,'remark'=>'风冷核心','created_at'=>'2026-03-12'], + ], + 'psi_products' => [ + ['id'=>1,'code'=>'P001','name'=>'SQY-Pro 水冷降温套装','spec'=>'4 档调速','unit'=>'件','category'=>'水冷','stock'=>70.00,'cost'=>720.00,'price'=>1299.00,'remark'=>'旗舰款','created_at'=>'2026-03-15'], + ['id'=>2,'code'=>'P002','name'=>'冰晶凝胶蓄冷背心','spec'=>'8 片凝胶','unit'=>'件','category'=>'相变','stock'=>200.00,'cost'=>180.00,'price'=>399.00,'remark'=>'免电源','created_at'=>'2026-03-18'], + ['id'=>3,'code'=>'P003','name'=>'双涡扇风冷马甲','spec'=>'双涡扇 3 档','unit'=>'件','category'=>'风冷','stock'=>150.00,'cost'=>140.00,'price'=>299.00,'remark'=>'USB 供电','created_at'=>'2026-03-20'], + ], + 'psi_purchases' => [ + ['id'=>1,'order_no'=>'PO2026-001','supplier_id'=>1,'item_type'=>'material','item_id'=>1,'qty'=>200.00,'price'=>18.00,'amount'=>3600.00,'status'=>'received','remark'=>'期初采购','created_at'=>'2026-03-20'], + ['id'=>2,'order_no'=>'PO2026-002','supplier_id'=>2,'item_type'=>'material','item_id'=>3,'qty'=>100.00,'price'=>45.00,'amount'=>4500.00,'status'=>'pending','remark'=>'待交货','created_at'=>'2026-06-10'], + ], + 'psi_sales' => [ + ['id'=>1,'order_no'=>'SO2026-001','customer'=>'某钢铁集团','channel'=>'domestic','item_id'=>1,'qty'=>30.00,'price'=>1299.00,'amount'=>38970.00,'status'=>'shipped','remark'=>'首批交付','created_at'=>'2026-05-15'], + ['id'=>2,'order_no'=>'SO2026-002','customer'=>'Global Apparel Importers Ltd','channel'=>'export','item_id'=>2,'qty'=>50.00,'price'=>399.00,'amount'=>19950.00,'status'=>'pending','remark'=>'信用证待开','created_at'=>'2026-06-20'], + ], + 'psi_stock_moves' => [ + ['id'=>1,'item_type'=>'material','item_id'=>1,'direction'=>'in','qty'=>300.00,'ref_no'=>'INIT','remark'=>'期初入库','created_at'=>'2026-03-10'], + ['id'=>2,'item_type'=>'material','item_id'=>1,'direction'=>'in','qty'=>200.00,'ref_no'=>'PO2026-001','remark'=>'采购入库','created_at'=>'2026-03-20'], + ['id'=>3,'item_type'=>'material','item_id'=>2,'direction'=>'in','qty'=>300.00,'ref_no'=>'INIT','remark'=>'期初入库','created_at'=>'2026-03-12'], + ['id'=>4,'item_type'=>'material','item_id'=>3,'direction'=>'in','qty'=>200.00,'ref_no'=>'INIT','remark'=>'期初入库','created_at'=>'2026-03-12'], + ['id'=>5,'item_type'=>'product','item_id'=>1,'direction'=>'in','qty'=>100.00,'ref_no'=>'INIT','remark'=>'期初入库','created_at'=>'2026-03-15'], + ['id'=>6,'item_type'=>'product','item_id'=>1,'direction'=>'out','qty'=>30.00,'ref_no'=>'SO2026-001','remark'=>'销售出库','created_at'=>'2026-05-15'], + ['id'=>7,'item_type'=>'product','item_id'=>2,'direction'=>'in','qty'=>200.00,'ref_no'=>'INIT','remark'=>'期初入库','created_at'=>'2026-03-18'], + ['id'=>8,'item_type'=>'product','item_id'=>3,'direction'=>'in','qty'=>150.00,'ref_no'=>'INIT','remark'=>'期初入库','created_at'=>'2026-03-20'], + ], +]; diff --git a/install/upgrade_crm_psi.sql b/install/upgrade_crm_psi.sql new file mode 100644 index 0000000..be40efb --- /dev/null +++ b/install/upgrade_crm_psi.sql @@ -0,0 +1,139 @@ +-- 酷冰甲 CMS 升级脚本:新增 CRM(客户管理)与 PSI(进销存)模块 +-- 用法:在远端 MySQL 执行本文件(phpMyAdmin / 命令行均可)。 +-- 幂等,可重复执行;兼容 MySQL 5.7 与 8.0(5.7 不支持 ADD COLUMN IF NOT EXISTS,故用存储过程判断)。 +SET NAMES utf8mb4; + +/* ===================== CRM 客户管理系统 ===================== */ +CREATE TABLE IF NOT EXISTS `crm_customers` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(120) NOT NULL, + `company` VARCHAR(160) DEFAULT '', + `contact` VARCHAR(60) DEFAULT '', + `phone` VARCHAR(40) DEFAULT '', + `email` VARCHAR(120) DEFAULT '', + `country` VARCHAR(60) DEFAULT '', + `type` VARCHAR(20) DEFAULT 'trade', + `source` VARCHAR(40) DEFAULT '', + `level` VARCHAR(20) DEFAULT 'C', + `remark` TEXT, + `owner` VARCHAR(60) DEFAULT '', + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `crm_leads` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `customer_id` INT DEFAULT 0, + `title` VARCHAR(200) NOT NULL, + `amount` DECIMAL(12,2) DEFAULT 0, + `stage` VARCHAR(20) DEFAULT 'new', + `expected_close` VARCHAR(20) DEFAULT '', + `owner` VARCHAR(60) DEFAULT '', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `crm_followups` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `customer_id` INT DEFAULT 0, + `lead_id` INT DEFAULT 0, + `content` TEXT, + `next_at` VARCHAR(20) DEFAULT '', + `owner` VARCHAR(60) DEFAULT '', + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +/* ===================== 进销存 PSI 系统 ===================== */ +CREATE TABLE IF NOT EXISTS `psi_materials` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `code` VARCHAR(40) DEFAULT '', + `name` VARCHAR(160) NOT NULL, + `spec` VARCHAR(120) DEFAULT '', + `unit` VARCHAR(10) DEFAULT '个', + `category` VARCHAR(40) DEFAULT '', + `stock` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `supplier_id` INT DEFAULT 0, + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_products` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `code` VARCHAR(40) DEFAULT '', + `name` VARCHAR(160) NOT NULL, + `spec` VARCHAR(120) DEFAULT '', + `unit` VARCHAR(10) DEFAULT '件', + `category` VARCHAR(40) DEFAULT '', + `stock` DECIMAL(12,2) DEFAULT 0, + `cost` DECIMAL(10,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_suppliers` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(160) NOT NULL, + `contact` VARCHAR(60) DEFAULT '', + `phone` VARCHAR(40) DEFAULT '', + `country` VARCHAR(60) DEFAULT '', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_purchases` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL, + `supplier_id` INT DEFAULT 0, + `item_type` VARCHAR(10) DEFAULT 'material', + `item_id` INT DEFAULT 0, + `qty` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `amount` DECIMAL(12,2) DEFAULT 0, + `status` VARCHAR(20) DEFAULT 'pending', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_sales` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL, + `customer` VARCHAR(160) DEFAULT '', + `channel` VARCHAR(20) DEFAULT 'domestic', + `item_id` INT DEFAULT 0, + `qty` DECIMAL(12,2) DEFAULT 0, + `price` DECIMAL(10,2) DEFAULT 0, + `amount` DECIMAL(12,2) DEFAULT 0, + `status` VARCHAR(20) DEFAULT 'pending', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `psi_stock_moves` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `item_type` VARCHAR(10) DEFAULT 'product', + `item_id` INT DEFAULT 0, + `direction` VARCHAR(10) DEFAULT 'in', + `qty` DECIMAL(12,2) DEFAULT 0, + `ref_no` VARCHAR(40) DEFAULT '', + `remark` TEXT, + `created_at` VARCHAR(20) DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +/* 为 admin_users 补齐分系统角色列(幂等,兼容 5.7) */ +DROP PROCEDURE IF EXISTS `add_crm_psi_cols`; +DELIMITER $$ +CREATE PROCEDURE `add_crm_psi_cols`() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='admin_users' AND COLUMN_NAME='crm_role') THEN + ALTER TABLE `admin_users` ADD COLUMN `crm_role` VARCHAR(20) DEFAULT 'none'; + END IF; + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='admin_users' AND COLUMN_NAME='psi_role') THEN + ALTER TABLE `admin_users` ADD COLUMN `psi_role` VARCHAR(20) DEFAULT 'none'; + END IF; +END$$ +DELIMITER ; +CALL `add_crm_psi_cols`(); +DROP PROCEDURE IF EXISTS `add_crm_psi_cols`; + +-- 升级完成后,登录后台 → 用户管理,将超级管理员/相关账号的 crm_role、psi_role 设为 admin。 diff --git a/install/upgrades/002_create_psi_order_tables.sql b/install/upgrades/002_create_psi_order_tables.sql new file mode 100644 index 0000000..05e0cdd --- /dev/null +++ b/install/upgrades/002_create_psi_order_tables.sql @@ -0,0 +1,200 @@ +-- ============================================================ +-- PSI 订单/出库与业务表建表 —— 服装厂成衣标准 +-- ============================================================ +-- 包含:销售订单、采购订单、出库单 共 6 张表 +-- + 修复 psi_purchases 缺少列 +-- 各表均已补齐品牌/款号/色号/尺码明细/箱重/体积等成衣行业必备字段 +-- ============================================================ + +-- ------------------------------------------- +-- 1. 销售订单主表 +-- ------------------------------------------- +CREATE TABLE IF NOT EXISTS `psi_sales_orders` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL COMMENT '订单编号 SO+年月日+流水', + `customer` VARCHAR(100) NOT NULL COMMENT '客户名称', + `customer_po` VARCHAR(80) DEFAULT '' COMMENT '客户采购单号(国际成衣贸易必备)', + `brand` VARCHAR(100) DEFAULT '' COMMENT '品牌', + `salesman` VARCHAR(50) DEFAULT '' COMMENT '业务员', + `channel` VARCHAR(20) DEFAULT 'domestic' COMMENT '销售渠道 domestic/export', + `region` VARCHAR(60) DEFAULT '' COMMENT '销售区域', + `currency` VARCHAR(10) DEFAULT 'CNY' COMMENT '币种 CNY/USD/EUR', + `payment_terms` VARCHAR(50) DEFAULT '' COMMENT '付款条件 T/T,L/C,D/P,OA', + `incoterm` VARCHAR(10) DEFAULT '' COMMENT '贸易术语 FOB/CIF/EXW/CFR/DDP', + `shipping_mark` VARCHAR(200) DEFAULT '' COMMENT '唛头', + `style_count` INT DEFAULT 0 COMMENT '款数', + `total_qty` INT DEFAULT 0 COMMENT '总数量', + `total_amount` DECIMAL(12,2) DEFAULT 0 COMMENT '总金额', + `delivery_date` VARCHAR(20) DEFAULT '' COMMENT '预计交付日期', + `remark` TEXT COMMENT '备注', + `status` VARCHAR(20) DEFAULT 'pending' COMMENT '状态 pending/partial/delivered/closed', + `created_at` VARCHAR(20) DEFAULT '' COMMENT '创建时间', + `updated_at` VARCHAR(20) DEFAULT '' COMMENT '最后修改时间', + INDEX `idx_so_customer` (`customer`), + INDEX `idx_so_salesman` (`salesman`), + INDEX `idx_so_status` (`status`), + INDEX `idx_so_created` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='销售订单主表'; + +-- ------------------------------------------- +-- 2. 销售订单明细表 +-- ------------------------------------------- +CREATE TABLE IF NOT EXISTS `psi_sales_order_items` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `so_id` INT NOT NULL COMMENT '关联销售订单ID', + `product_id` INT DEFAULT 0 COMMENT '关联成品ID', + `style_no` VARCHAR(60) DEFAULT '' COMMENT '款号/货号', + `name` VARCHAR(120) NOT NULL COMMENT '商品名称', + `spec` VARCHAR(100) DEFAULT '' COMMENT '规格', + `color_code` VARCHAR(30) DEFAULT '' COMMENT '色号', + `size_detail` TEXT COMMENT '尺码明细 JSON [{size:\"S\",qty:100},...]', + `unit` VARCHAR(20) DEFAULT '件' COMMENT '单位', + `qty` INT DEFAULT 0 COMMENT '数量', + `price` DECIMAL(10,2) DEFAULT 0 COMMENT '单价', + `amount` DECIMAL(12,2) DEFAULT 0 COMMENT '金额', + `unit_price_cny` DECIMAL(10,2) DEFAULT 0 COMMENT '人民币单价(外单换算用)', + `packing` VARCHAR(60) DEFAULT '' COMMENT '包装方式(独色独码/混色混码)', + `delivered_qty` INT DEFAULT 0 COMMENT '已交付数量', + INDEX `idx_soi_so_id` (`so_id`), + INDEX `idx_soi_product_id` (`product_id`), + INDEX `idx_soi_style_no` (`style_no`), + FOREIGN KEY (`so_id`) REFERENCES `psi_sales_orders`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='销售订单明细'; + +-- ------------------------------------------- +-- 3. 采购订单主表 +-- ------------------------------------------- +CREATE TABLE IF NOT EXISTS `psi_purchase_orders` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL COMMENT '订单编号 PO+年月日+流水', + `contract_no` VARCHAR(80) DEFAULT '' COMMENT '合同号', + `supplier_id` INT DEFAULT 0 COMMENT '供应商ID', + `supplier_name` VARCHAR(100) DEFAULT '' COMMENT '供应商名称', + `brand` VARCHAR(100) DEFAULT '' COMMENT '品牌', + `salesman` VARCHAR(50) DEFAULT '' COMMENT '采购员', + `currency` VARCHAR(10) DEFAULT 'CNY' COMMENT '币种', + `payment_terms` VARCHAR(50) DEFAULT '' COMMENT '付款条件', + `total_qty` INT DEFAULT 0 COMMENT '总数量', + `total_amount` DECIMAL(12,2) DEFAULT 0 COMMENT '总金额', + `expected_at` VARCHAR(20) DEFAULT '' COMMENT '预计到货日期', + `remark` TEXT COMMENT '备注', + `status` VARCHAR(20) DEFAULT 'pending' COMMENT '状态 pending/received/closed', + `created_at` VARCHAR(20) DEFAULT '' COMMENT '创建时间', + `updated_at` VARCHAR(20) DEFAULT '' COMMENT '最后修改时间', + INDEX `idx_po_supplier` (`supplier_id`), + INDEX `idx_po_status` (`status`), + INDEX `idx_po_created` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采购订单主表'; + +-- ------------------------------------------- +-- 4. 采购订单明细表 +-- ------------------------------------------- +CREATE TABLE IF NOT EXISTS `psi_purchase_order_items` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `po_id` INT NOT NULL COMMENT '关联采购订单ID', + `item_type` VARCHAR(10) DEFAULT 'product' COMMENT '类型 product/material', + `item_id` INT DEFAULT 0 COMMENT '关联物料/成品ID', + `style_no` VARCHAR(60) DEFAULT '' COMMENT '款号/货号', + `name` VARCHAR(120) NOT NULL COMMENT '商品名称', + `spec` VARCHAR(100) DEFAULT '' COMMENT '规格', + `color_code` VARCHAR(30) DEFAULT '' COMMENT '色号', + `size_detail` TEXT COMMENT '尺码明细 JSON', + `material_code` VARCHAR(60) DEFAULT '' COMMENT '物料编码', + `unit` VARCHAR(20) DEFAULT '件' COMMENT '单位', + `qty` INT DEFAULT 0 COMMENT '数量', + `price` DECIMAL(10,2) DEFAULT 0 COMMENT '单价', + `amount` DECIMAL(12,2) DEFAULT 0 COMMENT '金额', + `delivery_date` VARCHAR(20) DEFAULT '' COMMENT '预计交期', + `received_qty` INT DEFAULT 0 COMMENT '已收货数量', + INDEX `idx_poi_po_id` (`po_id`), + INDEX `idx_poi_item_type` (`item_type`), + INDEX `idx_poi_style_no` (`style_no`), + FOREIGN KEY (`po_id`) REFERENCES `psi_purchase_orders`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采购订单明细'; + +-- ------------------------------------------- +-- 5. 出库单主表 +-- ------------------------------------------- +CREATE TABLE IF NOT EXISTS `psi_outbounds` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `order_no` VARCHAR(40) NOT NULL COMMENT '出库单号 OUT+年月日+流水', + `so_no` VARCHAR(40) DEFAULT '' COMMENT '关联销售订单号', + `customer` VARCHAR(100) DEFAULT '' COMMENT '客户', + `customer_po` VARCHAR(80) DEFAULT '' COMMENT '客户采购单号', + `brand` VARCHAR(100) DEFAULT '' COMMENT '品牌', + `salesman` VARCHAR(50) DEFAULT '' COMMENT '业务员', + `warehouse` VARCHAR(60) DEFAULT '' COMMENT '出库仓库', + `carton_count` INT DEFAULT 0 COMMENT '箱数', + `container_no` VARCHAR(100) DEFAULT '' COMMENT '柜号/箱号范围', + `seal_no` VARCHAR(60) DEFAULT '' COMMENT '封条号', + `packing_list_no` VARCHAR(60) DEFAULT '' COMMENT '装箱单号', + `shipping_line` VARCHAR(80) DEFAULT '' COMMENT '船公司/快递', + `voyage` VARCHAR(60) DEFAULT '' COMMENT '航次/航班', + `port_of_loading` VARCHAR(60) DEFAULT '' COMMENT '装运港', + `port_of_discharge` VARCHAR(60) DEFAULT '' COMMENT '卸货港', + `etd` VARCHAR(20) DEFAULT '' COMMENT '预计离港日', + `eta` VARCHAR(20) DEFAULT '' COMMENT '预计到港日', + `gross_weight` DECIMAL(10,2) DEFAULT 0 COMMENT '毛重 KG', + `net_weight` DECIMAL(10,2) DEFAULT 0 COMMENT '净重 KG', + `volume` DECIMAL(10,3) DEFAULT 0 COMMENT '体积 CBM', + `status` VARCHAR(20) DEFAULT 'delivered' COMMENT '状态 delivered/partial', + `delivery_date` VARCHAR(20) DEFAULT '' COMMENT '实际交付日期', + `remark` TEXT COMMENT '备注', + `created_at` VARCHAR(20) DEFAULT '' COMMENT '创建时间', + `updated_at` VARCHAR(20) DEFAULT '' COMMENT '最后修改时间', + INDEX `idx_ob_so_no` (`so_no`), + INDEX `idx_ob_customer` (`customer`), + INDEX `idx_ob_status` (`status`), + INDEX `idx_ob_created` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='出库单主表'; + +-- ------------------------------------------- +-- 6. 出库单明细表 +-- ------------------------------------------- +CREATE TABLE IF NOT EXISTS `psi_outbound_items` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `ob_id` INT NOT NULL COMMENT '关联出库单ID', + `so_item_id` INT DEFAULT 0 COMMENT '关联销售订单明细ID', + `product_id` INT DEFAULT 0 COMMENT '成品ID', + `style_no` VARCHAR(60) DEFAULT '' COMMENT '款号/货号', + `name` VARCHAR(120) NOT NULL COMMENT '商品名称', + `spec` VARCHAR(100) DEFAULT '' COMMENT '规格', + `color_code` VARCHAR(30) DEFAULT '' COMMENT '色号', + `size_detail` TEXT COMMENT '尺码明细 JSON', + `carton_no` VARCHAR(40) DEFAULT '' COMMENT '箱号', + `unit` VARCHAR(20) DEFAULT '件' COMMENT '单位', + `qty` INT DEFAULT 0 COMMENT '数量', + `price` DECIMAL(10,2) DEFAULT 0 COMMENT '单价', + `amount` DECIMAL(12,2) DEFAULT 0 COMMENT '金额', + `unit_weight` DECIMAL(10,2) DEFAULT 0 COMMENT '单件重量 g/KG', + INDEX `idx_obi_ob_id` (`ob_id`), + INDEX `idx_obi_product_id` (`product_id`), + INDEX `idx_obi_so_item_id` (`so_item_id`), + INDEX `idx_obi_style_no` (`style_no`), + FOREIGN KEY (`ob_id`) REFERENCES `psi_outbounds`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='出库单明细'; + +-- ------------------------------------------- +-- 7. 修复 psi_purchases —— 补齐 PurchaseOrdersController::receive() 所需的列 +-- ------------------------------------------- +-- 使用 INFORMATION_SCHEMA 动态检测是否存在列,兼容 MySQL 5.7+ / MariaDB 10.2+ +DROP PROCEDURE IF EXISTS tmp_psi_purchases_alter; +DELIMITER $$ +CREATE PROCEDURE tmp_psi_purchases_alter() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'psi_purchases' AND COLUMN_NAME = 'product_id') THEN + ALTER TABLE `psi_purchases` ADD COLUMN `product_id` INT DEFAULT 0 COMMENT '成品ID(采购订单收货时使用)' AFTER `item_id`; + END IF; + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'psi_purchases' AND COLUMN_NAME = 'supplier') THEN + ALTER TABLE `psi_purchases` ADD COLUMN `supplier` VARCHAR(100) DEFAULT '' COMMENT '供应商名称' AFTER `supplier_id`; + END IF; + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'psi_purchases' AND COLUMN_NAME = 'brand') THEN + ALTER TABLE `psi_purchases` ADD COLUMN `brand` VARCHAR(100) DEFAULT '' COMMENT '品牌' AFTER `supplier`; + END IF; +END$$ +DELIMITER ; +CALL tmp_psi_purchases_alter(); +DROP PROCEDURE IF EXISTS tmp_psi_purchases_alter; diff --git a/install/upgrades/003_psi_events_and_notify.sql b/install/upgrades/003_psi_events_and_notify.sql new file mode 100644 index 0000000..536475f --- /dev/null +++ b/install/upgrades/003_psi_events_and_notify.sql @@ -0,0 +1,46 @@ +-- ============================================================ +-- 事件通知(邮件 + 企业微信)数据升级包 +-- ============================================================ +-- 作用: +-- 1) 创建 psi_events 紧急事件表(Notify 服务使用,首次触发也会自动建表,这里提前建好) +-- 2) 写入 notify_* 通知设置(INSERT IGNORE,重复执行不会重复插入) +-- 说明: +-- 本文件专供后台「数据库升级」面板(/admin/upgrade)使用; +-- 若已通过「数据升级」按钮执行过,这里仍为幂等安全。 +-- ============================================================ + +-- ------------------------------------------- +-- 1. 紧急事件表(站内提醒 + 邮件/企业微信推送记录) +-- ------------------------------------------- +CREATE TABLE IF NOT EXISTS `psi_events` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `sys` VARCHAR(20) NOT NULL DEFAULT 'psi', + `type` VARCHAR(40) NOT NULL DEFAULT '', + `level` VARCHAR(20) NOT NULL DEFAULT 'urgent', + `title` VARCHAR(255) NOT NULL DEFAULT '', + `body` TEXT, + `url` VARCHAR(255) NOT NULL DEFAULT '', + `ref_no` VARCHAR(64) NOT NULL DEFAULT '', + `recipients` TEXT, + `channels` VARCHAR(255) NOT NULL DEFAULT '["inapp"]', + `read_by` TEXT, + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- ------------------------------------------- +-- 2. 通知设置(缺则插入) +-- ------------------------------------------- +INSERT IGNORE INTO `settings` (`skey`,`sval`,`sgroup`) VALUES + ('notify_enabled','0','notify'), + ('notify_email_enabled','0','notify'), + ('notify_email_smtp_host','','notify'), + ('notify_email_smtp_port','465','notify'), + ('notify_email_smtp_user','','notify'), + ('notify_email_smtp_pass','','notify'), + ('notify_email_from','','notify'), + ('notify_email_to','','notify'), + ('notify_wechat_enabled','0','notify'), + ('notify_wechat_webhook','','notify'), + ('notify_wechat_mention','','notify'), + ('notify_lowstock_enabled','1','notify'), + ('notify_lowstock_threshold','20','notify'); diff --git a/install/upgrades/004_psi_sales_item_type.sql b/install/upgrades/004_psi_sales_item_type.sql new file mode 100644 index 0000000..1c08848 --- /dev/null +++ b/install/upgrades/004_psi_sales_item_type.sql @@ -0,0 +1,20 @@ +-- 给 psi_sales 表增加 item_type 字段,用于精确识别成品/物料类型 +-- 幂等升级:可多次安全执行 + +DROP PROCEDURE IF EXISTS `psi_add_item_type`; +DELIMITER $$ +CREATE PROCEDURE `psi_add_item_type`() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='psi_sales' AND COLUMN_NAME='item_type') THEN + ALTER TABLE psi_sales ADD COLUMN item_type VARCHAR(16) DEFAULT '' AFTER item_id; + END IF; +END$$ +DELIMITER ; +CALL `psi_add_item_type`(); +DROP PROCEDURE IF EXISTS `psi_add_item_type`; + +-- 如果有 stock_moves 记录,尝试补齐现有数据的 item_type +UPDATE psi_sales s +LEFT JOIN psi_stock_moves m ON m.ref_no = s.order_no AND m.item_id = s.item_id AND m.qty = s.qty +SET s.item_type = m.item_type +WHERE s.item_type = '' AND m.item_type IS NOT NULL AND m.item_type != ''; diff --git a/install/upgrades/005_page_seo.sql b/install/upgrades/005_page_seo.sql new file mode 100644 index 0000000..253805f --- /dev/null +++ b/install/upgrades/005_page_seo.sql @@ -0,0 +1,31 @@ +-- 新增 page_seo 表:支持后台逐页设置 SEO(标题/描述/关键词/Open Graph 等) +-- 幂等升级:可多次安全执行(CREATE TABLE IF NOT EXISTS + INSERT IGNORE) + +CREATE TABLE IF NOT EXISTS `page_seo` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `page_key` VARCHAR(64) NOT NULL COMMENT '页面标识(home/products/product_category/news/cases/about/contact)', + `page_label` VARCHAR(64) NOT NULL COMMENT '后台显示名称', + `title` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '页面标题', + `description` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '页面描述', + `keywords` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '关键词,逗号分隔', + `og_title` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '社交分享标题', + `og_description` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '社交分享描述', + `og_image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '社交分享图', + `og_type` VARCHAR(32) NOT NULL DEFAULT 'website', + `canonical` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '规范链接', + `noindex` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁止收录', + `sort` INT NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_page_key` (`page_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='逐页SEO设置'; + +-- 种子数据:默认文案已满足 SEO 建议字数 +-- 首页标题≥35字符 / 描述≥120字符 / 分类页描述≥80字符 / 关键词≥10个(部分页面按语义给 6-10 个) +INSERT IGNORE INTO `page_seo` (`page_key`,`page_label`,`title`,`description`,`keywords`,`og_type`,`sort`) VALUES +('home','首页','酷冰甲降温服官网 | 科技降温服定制·水冷循环·相变蓄冷·风冷背心·10套起订','酷冰甲专注降温服的研发、生产与定制,提供水冷循环、相变蓄冷、风冷制冷、冰袋背心等多系列降温装备,广泛适用于消防、工业、电力、钢铁、环卫及户外高温作业场景。支持企业LOGO刺绣、尺寸与面料定制,10套起订,7天打样,全国发货,为您提供一站式高温防护解决方案。','降温服,降温背心,水冷降温服,相变降温服,制冷背心,工业降温服,消防降温服,高温作业防护,降温服定制,酷冰甲','website',10), +('products','产品中心','降温服产品中心 - 水冷/相变/风冷多系列 | 酷冰甲','酷冰甲降温服产品中心,系统展示水冷循环降温服、相变冰袋降温背心、风冷制冷背心、冰马甲等多系列产品,按使用场景与降温方式分类,参数规格与适用行业一目了然。支持企业批量定制、LOGO刺绣与免费拿样,提供专业选型建议与透明报价,助力高温作业安全防护。','降温服产品,水冷降温服,相变降温服,风冷降温服,制冷背心,冰马甲,工业降温装备,降温服批发,降温服定制,酷冰甲产品','website',20), +('product_category','产品分类页','{cat}降温服 - 酷冰甲科技降温·定制批发','酷冰甲{cat}系列降温服,采用科技降温方案,专为高温作业与户外暴晒场景设计,具备清凉持久、轻便透气、可循环重复使用等特点。支持企业定制、LOGO刺绣与小批量批发,10套起订,7天打样,全国发货。','{cat}降温服,{cat},降温服定制,降温背心,工业降温,酷冰甲','website',25), +('news','新闻列表','降温服行业新闻与动态 - 酷冰甲官网','酷冰甲降温服行业新闻中心,汇集高温防护政策解读、降温技术深度解析、产品应用案例、客户现场实录与行业前沿动态,持续分享降温服选型、使用、保养与清洗知识,帮助企业做好高温作业人员的健康与安全防护。我们关注每一次技术迭代,也记录每一处真实应用,让高温防护更有依据、更可落地。','降温服新闻,降温技术,高温防护,工业降温,降温服应用,行业动态,酷冰甲资讯,降温服知识','website',30), +('cases','客户案例','客户案例 - 酷冰甲降温服应用实录','酷冰甲降温服客户案例展示,覆盖消防、电力、钢铁、环卫、户外施工、车间制造等高温作业场景的真实合作项目,逐一呈现降温方案设计思路、现场使用效果与客户真实反馈,并附上适用行业与选型建议,为同类企业的高温防护升级提供可参考、可复用的实战样本,切实降低高温作业风险。','降温服案例,客户案例,高温作业,降温方案,消防降温,工业应用,酷冰甲案例','website',40), +('about','关于我们','关于酷冰甲 - 科技降温服研发与定制厂家','酷冰甲专注降温服的研发、生产与定制,拥有水冷循环、相变蓄冷、风冷制冷等多条成熟产品线,长期服务消防、工业、电力、钢铁等高温作业领域。工厂直供、支持ODM/OEM与来样定制,提供从需求沟通、方案设计、打样生产到售后维护的全流程服务,做您身边靠谱的高温防护伙伴。','关于酷冰甲,降温服厂家,降温服工厂,降温服研发,ODM定制,降温服生产,酷冰甲品牌','website',50), +('contact','联系我们','联系酷冰甲 - 降温服定制咨询与报价','联系酷冰甲,获取降温服定制方案与专属报价。我们支持企业批量采购、LOGO刺绣、尺寸与面料定制,提供在线咨询、电话与邮件多种沟通方式。7天打样、全国发货,专业团队一对一对接您的高温防护需求,从选型到交付全程跟进,确保交付准时可靠,让合作更省心、更可靠。','联系酷冰甲,降温服定制,降温服报价,降温服采购,企业定制,降温服厂家,酷冰甲联系','website',60); diff --git a/install/upgrades/006_pages_add_mode.sql b/install/upgrades/006_pages_add_mode.sql new file mode 100644 index 0000000..76aea3b --- /dev/null +++ b/install/upgrades/006_pages_add_mode.sql @@ -0,0 +1,12 @@ +-- 006 页面编辑模式:为 pages 表增加 mode 字段 +-- 用途:后台「页面」编辑支持「固定版面 fixed / 可视化编辑 builder」两种模式 +-- 幂等:用 information_schema 判断列是否存在,存在则跳过(兼容 MySQL 5.7 / 8.x 全版本及 MariaDB) +-- 旧数据默认 'fixed',渲染行为不变;已用可视化编辑器存过 layout 的页面可手动置为 'builder' +-- 应用方式:后台「系统 / 数据库升级」→ 找到本文件 → 点「升级」 + +SET @db = DATABASE(); +SET @has = (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'pages' AND COLUMN_NAME = 'mode'); +SET @sql = IF(@has = 0, 'ALTER TABLE `pages` ADD COLUMN `mode` VARCHAR(16) NOT NULL DEFAULT \'fixed\' AFTER `layout`', 'SELECT 1'); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; diff --git a/install/upgrades/007_products_add_mode.sql b/install/upgrades/007_products_add_mode.sql new file mode 100644 index 0000000..348ae5d --- /dev/null +++ b/install/upgrades/007_products_add_mode.sql @@ -0,0 +1,12 @@ +-- 007 产品编辑模式:为 products 表增加 mode 字段 +-- 用途:后台「产品」编辑支持「固定版面 fixed / 可视化编辑 builder」两种模式(选择框切换) +-- 幂等:用 information_schema 判断列是否存在,存在则跳过(兼容 MySQL 5.7 / 8.x 全版本及 MariaDB) +-- 旧数据默认 'fixed',渲染行为不变;已用可视化编辑器存过 layout 的产品可手动置为 'builder' +-- 应用方式:后台「系统 / 数据库升级」→ 找到本文件 → 点「升级」 + +SET @db = DATABASE(); +SET @has = (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'mode'); +SET @sql = IF(@has = 0, 'ALTER TABLE `products` ADD COLUMN `mode` VARCHAR(16) NOT NULL DEFAULT \'fixed\' AFTER `layout`', 'SELECT 1'); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; diff --git a/install/upgrades/008_add_mode_news_cases_cats.sql b/install/upgrades/008_add_mode_news_cases_cats.sql new file mode 100644 index 0000000..2776db4 --- /dev/null +++ b/install/upgrades/008_add_mode_news_cases_cats.sql @@ -0,0 +1,22 @@ +-- 008 编辑模式扩展:为 news / cases / categories 表增加 mode 字段 +-- 用途:后台新闻、客户案例、分类编辑支持「固定版面 fixed / 可视化编辑 builder」两种模式(与产品/单页一致) +-- 幂等:用 information_schema 判断列是否存在,存在则跳过(兼容 MySQL 5.7 / 8.x 全版本及 MariaDB) +-- 旧数据默认 'fixed',渲染行为不变;已用可视化编辑器存过 layout 的记录可手动置为 'builder' +-- 应用方式:后台「系统 / 数据库升级」→ 找到本文件 → 点「升级」 + +SET @db = DATABASE(); + +-- news +SET @has = (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'news' AND COLUMN_NAME = 'mode'); +SET @sql = IF(@has = 0, 'ALTER TABLE `news` ADD COLUMN `mode` VARCHAR(16) NOT NULL DEFAULT \'fixed\' AFTER `layout`', 'SELECT 1'); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- cases +SET @has = (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'cases' AND COLUMN_NAME = 'mode'); +SET @sql = IF(@has = 0, 'ALTER TABLE `cases` ADD COLUMN `mode` VARCHAR(16) NOT NULL DEFAULT \'fixed\' AFTER `layout`', 'SELECT 1'); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- categories +SET @has = (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'categories' AND COLUMN_NAME = 'mode'); +SET @sql = IF(@has = 0, 'ALTER TABLE `categories` ADD COLUMN `mode` VARCHAR(16) NOT NULL DEFAULT \'fixed\' AFTER `layout`', 'SELECT 1'); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; diff --git a/install/upgrades/README.txt b/install/upgrades/README.txt new file mode 100644 index 0000000..e91924f --- /dev/null +++ b/install/upgrades/README.txt @@ -0,0 +1,37 @@ +数据库升级包目录(install/upgrades) +================================================ + +用途 +---- +将「升级脚本」(.sql 文件)放入本目录后,进入后台「数据库升级」页面, +系统会自动扫描并提示「发现 N 个可升级数据库脚本」,管理员可一键或逐个执行。 +每次执行都会在 db_upgrades 表中留下记录(文件名、内容指纹 MD5、执行时间、操作人), +便于追溯与审计。 + +命名建议 +-------- + 序号_功能描述.sql 例如 001_add_member_level.sql +序号便于排序与阅读,文件名(不含路径)作为唯一标识写入 db_upgrades。 +若同一文件内容被修改后再次放入,系统会识别为「内容已变更」并提示重新升级。 + +编写规范 +-------- +1. 仅放 DDL / DML 的标准 MySQL 脚本;多条语句以分号(;)分隔,自动拆分执行。 +2. 优先使用「幂等写法」,避免重复执行报错,例如: + CREATE TABLE IF NOT EXISTS xxx (...); -- 全版本支持 + INSERT INTO ... ON DUPLICATE KEY UPDATE ...; -- 全版本支持 + 注意:ALTER TABLE ... ADD COLUMN IF NOT EXISTS 仅 MySQL 8.0.28+ / MariaDB 10.8+ 支持, + 旧版本(含多数宝塔默认的 MySQL 5.7 与 MariaDB 10.4/10.6)会直接报 1064 语法错误。 + 跨版本安全的「加列」幂等方式(强烈推荐): + SET @db = DATABASE(); + SET @has = (SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA=@db AND TABLE_NAME='yyy' AND COLUMN_NAME='zzz'); + SET @sql = IF(@has=0, 'ALTER TABLE `yyy` ADD COLUMN `zzz` VARCHAR(16) NOT NULL DEFAULT \'x\'', 'SELECT 1'); + PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; +3. 不建议在升级包中执行 DROP TABLE / TRUNCATE 等破坏性语句,除非确有必要。 +4. 升级前请务必备份数据库。 + +说明 +---- +- 本目录下的 examples/ 子目录为示例,不会被自动扫描(仅扫描本目录根下的 *.sql)。 +- 想试用示例时,请将 examples/ 中的文件复制到本目录根下再执行。 diff --git a/install/upgrades/examples/001_example_add_field.sql b/install/upgrades/examples/001_example_add_field.sql new file mode 100644 index 0000000..b1de7cd --- /dev/null +++ b/install/upgrades/examples/001_example_add_field.sql @@ -0,0 +1,13 @@ +-- 示例升级包:演示「幂等」写法,可安全多次执行 +-- 复制本文件到上级目录(install/upgrades/)根下,即可在后台「数据库升级」中看到并升级。 + +-- 1) 为新模块创建一张表(若已存在则跳过) +CREATE TABLE IF NOT EXISTS psi_demo_log ( + id INT AUTO_INCREMENT PRIMARY KEY, + msg VARCHAR(255) NOT NULL, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='示例升级包日志表'; + +-- 2) 写入一条演示记录(依赖唯一键可避免重复) +INSERT INTO psi_demo_log (msg) VALUES ('示例升级包已执行') + ON DUPLICATE KEY UPDATE msg = VALUES(msg); diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..3fc9788 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,59 @@ +# ============================================================ +# 圣巧依官网 - public/.htaccess(唯一配置) +# ============================================================ + +# ── sitemap.xml 白名单(必须放在最前面)── + + Require all granted + + +# ── 禁止直接访问敏感文件 ── + + Require all denied + + + Require all denied + + +# ── 禁止列出目录 ── +Options -Indexes + +# ── 安全响应头 ── + + Header always set X-Frame-Options "SAMEORIGIN" + Header always set X-Content-Type-Options "nosniff" + Header always set Referrer-Policy "strict-origin-when-cross-origin" + Header always set X-XSS-Protection "1; mode=block" + Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" + Header always set Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=()" + + +# ── 静态资源缓存 ── + + ExpiresActive On + ExpiresByType text/css "access plus 1 year" + ExpiresByType application/javascript "access plus 1 year" + ExpiresByType image/jpeg "access plus 1 year" + ExpiresByType image/png "access plus 1 year" + ExpiresByType image/gif "access plus 1 year" + ExpiresByType image/svg+xml "access plus 1 year" + ExpiresByType font/woff2 "access plus 1 year" + ExpiresByType font/woff "access plus 1 year" + + +# ── Gzip 压缩 ── + + AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/json application/xml image/svg+xml + + +# ── URL 重写:非静态文件全部走 index.php ── + + RewriteEngine On + +# 如果请求的是真实存在的文件或目录,直接返回 + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + + # 其余所有请求交给 index.php(应用自己处理路由) + RewriteRule ^ index.php [L,QSA] + diff --git a/public/.htaccess_D4zD6.tar.gz b/public/.htaccess_D4zD6.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..0c682cf8d3701a09551895c7c103e0d7beeb4a8a GIT binary patch literal 1003 zcmVWmrDsV6>oS zI1=qy7?Pub#NipWjU*a(_#=^^SRUEtWseo(V)_g6RN= zzQ>$;IE+IIK%iJG{_DK|djElP1}#L^;$#i1M#9~l z_2zWntNwca=T4*gxPG|b_;$CsS81Hp-kcr;-!Z(<|5e=)Kfo|YCM4mKX@JJVGw*K2 zs~q}~U+p!&dr_~x^p2j^k9NF+O7r-Mh}@P1uPtE%F%asLhvtJou#Rpzm?8iT1LP>Q zIMRaGBCYB3eQ_H<-Ksx((s=Z|e&@&6wO7siwff;#_1(wyZ*HHz_#F&{NkOjWL1;5P zhOB~{!`x*B%k7p)Gzes@sJYm}u3_igEZlZ&LvvY?xEf|+IxHZU-89@UFmcPK;hLJ5 zsBT~VXh_l;vhdrSTe0T{6ZvdRwM}9(L^s1*%(mROUH_{tf$BEQq0Y-rPw`)MhSn4D z#ZXDll*6Oz5V;%?UTl%ns;{C zt!SEXY+DQ{NlQZ|#QH>D?ZDf6>fNh&Cspr<=RFUSddk)u0|C?4KF=elAl>=TPC8)ed`v}|T!T^}V|M>?Vu zQDw~*=cX(+Bd1v9icN72TS_sHEJdX@W1W%F;csLz${MvfQvJvv6r1(eisrJuXQO19 zcC-z##~HCHS29R-DCQy&6P6TV`P@WoN?gp*=q$jNYB(CoIN3$pgxF%UfKX)EP#g96 zHAGF!m|uzB0&~a~89_hExv{IC027P#k-Tl8R#z2ur?Ax|uxyHgw%QKMif2e{madci zTcvsYu)cHa^>4fNle>-6d)~7L!;MEJA~s*o_(Z!K7ZocYkhb~NqB3D* z`=A11I1I!<89^EvG9MBmmf2ceWD6D`Qz<6=qH1i4ibu8x%3V%DtV;@VSihWr6>=Z@ z*XspEx;P7wqOI%WmsSiH4EKFm+=alq^JU}om*IwMNH-uyUBly=mUcLCxVUjRqMgu- ziKUhJMxyO?o{LrXTyHh{d>mo#z_7R+2L}AI4HR);G5_~}0Et8*kw_#Gi9{liNF)-8 ZL?V$$Boc{4B9VOf{0-0*xzzwD004V;_T&Hn literal 0 HcmV?d00001 diff --git a/public/.user.ini b/public/.user.ini new file mode 100644 index 0000000..c6ba7aa --- /dev/null +++ b/public/.user.ini @@ -0,0 +1,2 @@ +session.save_path=/www/php_session/st-joyapparel.com/ +session.save_handler = files \ No newline at end of file diff --git a/public/assets/css/admin.css b/public/assets/css/admin.css new file mode 100644 index 0000000..2af4c2c --- /dev/null +++ b/public/assets/css/admin.css @@ -0,0 +1,306 @@ +/* ===== 后台管理样式 · 现代化设计系统 ===== */ +:root { + --brand-1: #0ea5e9; /* 主色·天蓝 */ + --brand-2: #14b8a6; /* 辅色·青绿 */ + --brand-grad: linear-gradient(135deg, #0ea5e9, #14b8a6); + --side-bg: #0b1220; /* 侧栏深底 */ + --side-bg-2: #111a2e; + --ink: #0f172a; + --ink-soft: #475569; + --muted: #94a3b8; + --line: #e5e9f0; + --surface: #ffffff; + --canvas: #f4f6fb; + --radius: 14px; + --radius-lg: 18px; + --shadow-sm: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.04); + --shadow-md: 0 6px 24px -12px rgba(15,23,42,.24); + --shadow-lg: 0 24px 60px -28px rgba(2,12,27,.55); +} +* { box-sizing: border-box; } +body.admin { margin: 0; font-family: "Noto Sans SC", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--canvas); color: var(--ink); -webkit-font-smoothing: antialiased; } +a { color: inherit; text-decoration: none; } +.li { flex: 0 0 auto; vertical-align: middle; } + +/* sidebar */ +.admin-side { position: fixed; inset: 0 auto 0 0; width: 252px; background: linear-gradient(180deg, var(--side-bg-2), var(--side-bg)); color: #cbd5e1; padding: 18px 14px 14px; display: flex; flex-direction: column; gap: 4px; z-index: 30; border-right: 1px solid rgba(255,255,255,.04); } +.admin-brand { display: flex; align-items: center; gap: 11px; color: #fff; font-weight: 800; font-size: 16px; padding: 8px 10px 16px; letter-spacing: .01em; } +.admin-brand .brand-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.admin-nav { display: flex; flex-direction: column; gap: 3px; overflow-y: auto; flex: 1; margin: 4px -4px; padding: 0 4px; } +.admin-nav::-webkit-scrollbar { width: 6px; } +.admin-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 999px; } +.admin-nav a { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 13px; border-radius: 11px; color: #aab6c8; font-weight: 600; font-size: 14px; transition: background .18s, color .18s, transform .1s; } +.admin-nav a .nav-ic { display: inline-flex; color: #7c8aa3; transition: color .18s; } +.admin-nav a:hover { background: rgba(255,255,255,.06); color: #fff; } +.admin-nav a:hover .nav-ic { color: #cbd5e1; } +.admin-nav a.active { background: var(--brand-grad); color: #fff; box-shadow: 0 10px 22px -12px rgba(14,165,233,.8); } +.admin-nav a.active .nav-ic { color: #fff; } +.admin-nav a.active::before { content: ""; position: absolute; left: -14px; top: 50%; transform: translateY(-50%); width: 4px; height: 22px; border-radius: 0 4px 4px 0; background: #fff; } +.admin-side-foot { border-top: 1px solid rgba(255,255,255,.07); padding-top: 12px; margin-top: 4px; } +.admin-side-foot a { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border-radius: 10px; color: #8fa0b8; font-size: 13px; font-weight: 600; transition: background .18s, color .18s; } +.admin-side-foot a:hover { background: rgba(255,255,255,.06); color: #fff; } +/* 子系统子页面(CRM / PSI 的二级项),作为左导主项下缩进子项,与 admin 框架风格统一 */ +.admin-nav a.child { padding-left: 40px; font-size: 13px; gap: 10px; opacity: .82; } +.admin-nav a.child .nav-ic, .admin-nav a.child span { font-size: 14px; } +.admin-nav a.child.active { opacity: 1; } + +.admin-body { margin-left: 252px; min-height: 100vh; display: flex; flex-direction: column; } +.admin-top { height: 64px; background: rgba(255,255,255,.85); backdrop-filter: saturate(1.6) blur(8px); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 26px; position: sticky; top: 0; z-index: 20; } +.admin-top-left { display: flex; align-items: center; gap: 14px; } +.top-link { display: inline-flex; align-items: center; gap: 6px; color: var(--brand-1); font-weight: 700; font-size: 14px; } +.admin-user { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--ink-soft); } +.admin-user-name { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; } +.admin-avatar { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--brand-grad); color: #fff; } +.admin-content { padding: 30px; flex: 1; max-width: 1400px; width: 100%; } + +/* login */ +.admin-login-wrap { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(60% 55% at 25% 15%, rgba(14,165,233,.28), transparent), radial-gradient(55% 55% at 85% 85%, rgba(20,184,166,.26), transparent), #0b1220; padding: 20px; } +.login-card { width: 400px; max-width: 100%; background: var(--surface); border-radius: 22px; padding: 40px 34px; box-shadow: var(--shadow-lg); border: 1px solid rgba(255,255,255,.6); } +.login-card h1 { font-size: 23px; margin: 4px 0 6px; } +.login-card p.sub { color: #64748b; font-size: 14px; margin-bottom: 22px; } +.login-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 20px; font-weight: 800; font-size: 18px; } +.brand-mark { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; background: var(--brand-grad); color: #fff; box-shadow: 0 10px 20px -8px rgba(14,165,233,.7); } + +/* cards / headings */ +.admin-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow-sm); } +.page-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; flex-wrap: wrap; gap: 12px; } +.page-head h1 { font-size: 24px; margin: 0; letter-spacing: -.01em; } +.page-head .desc { color: #64748b; font-size: 14px; margin-top: 5px; } +.stat-row { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 18px; margin-bottom: 28px; } +.stat-box { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; box-shadow: var(--shadow-sm); overflow: hidden; transition: transform .18s, box-shadow .18s; } +.stat-box:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); } +.stat-box b { display: block; font-size: 32px; font-weight: 900; color: var(--ink); line-height: 1.1; } +.stat-box span { color: #64748b; font-size: 13px; } +.stat-box .stat-ic { position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: var(--brand-grad); box-shadow: 0 8px 18px -8px rgba(14,165,233,.6); } +.stat-box.c1 .stat-ic { background: linear-gradient(135deg,#0ea5e9,#38bdf8); } +.stat-box.c2 .stat-ic { background: linear-gradient(135deg,#14b8a6,#2dd4bf); } +.stat-box.c3 .stat-ic { background: linear-gradient(135deg,#8b5cf6,#a78bfa); } +.stat-box.c4 .stat-ic { background: linear-gradient(135deg,#f59e0b,#fbbf24); } + +/* buttons */ +.btn-primary, .btn-soft, .btn-danger, .btn-ghost { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 18px; border-radius: 11px; font-weight: 700; font-size: 14px; cursor: pointer; border: 1px solid transparent; transition: transform .14s, box-shadow .2s, background .2s, filter .2s; } +.btn-primary { background: var(--brand-grad); color: #fff; box-shadow: 0 12px 26px -14px rgba(14,165,233,.9); } +.btn-primary:hover { transform: translateY(-2px); filter: brightness(1.05); } +.btn-soft { background: #eef2ff; color: #4338ca; } +.btn-soft:hover { background: #e0e7ff; } +.btn-danger { background: #fee2e2; color: #dc2626; } +.btn-danger:hover { background: #fecaca; } +.btn-ghost { background: #f1f5f9; color: #334155; border-color: #e2e8f0; } +.btn-ghost:hover { background: #e9eef5; border-color: #cbd5e1; } +.btn-sm { padding: 6px 12px; font-size: 13px; border-radius: 9px; } + +/* tables */ +.admin-table { width: 100%; border-collapse: collapse; background: var(--surface); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow-sm); } +.admin-table th, .admin-table td { padding: 14px 16px; text-align: left; font-size: 14px; border-bottom: 1px solid #eef2f7; } +.admin-table th { background: #f8fafc; color: var(--ink-soft); font-weight: 700; font-size: 12.5px; letter-spacing: .02em; text-transform: uppercase; } +.admin-table tr:last-child td { border-bottom: none; } +.admin-table tbody tr { transition: background .15s; } +.admin-table tr:hover td { background: #f6f9fe; } +.thum { width: 46px; height: 46px; border-radius: 10px; display: grid; place-items: center; color: #fff; font-size: 18px; } +.tag-mini { font-size: 12px; padding: 2px 9px; border-radius: 999px; background: #e0f2fe; color: #0369a1; } +.muted { color: var(--muted); } + +/* forms */ +.field { margin-bottom: 16px; } +.field label { display: block; font-weight: 700; font-size: 13px; margin-bottom: 7px; color: #334155; } +.field input, .field textarea, .field select { width: 100%; padding: 11px 13px; border: 1px solid #cbd5e1; border-radius: 10px; font-size: 14px; font-family: inherit; background: #fff; color: var(--ink); transition: border-color .2s, box-shadow .2s; } +.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--brand-1); outline: none; box-shadow: 0 0 0 3px rgba(14,165,233,.18); } +.field textarea { min-height: 130px; resize: vertical; line-height: 1.7; } +.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; } +.form-actions { display: flex; gap: 12px; margin-top: 8px; } +.alert { padding: 12px 15px; border-radius: 11px; margin-bottom: 16px; font-size: 14px; border: 1px solid transparent; } +.alert-err { background: #fef2f2; color: #b91c1c; border-color: #fecaca; } +.alert-ok { background: #f0fdf4; color: #15803d; border-color: #bbf7d0; } + +/* role badge */ +.role-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; } +.role-super_admin { background: #fef3c7; color: #b45309; } +.role-admin { background: #dbeafe; color: #1d4ed8; } +.role-user { background: #dcfce7; color: #15803d; } +.role-none { background: #e5e7eb; color: #374151; } +.row-actions { display: flex; gap: 8px; } +/* status badge (CRM 客户状态) */ +.badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1.6; } +.st-grey { background: #e5e7eb; color: #4b5563; } +.st-blue { background: #dbeafe; color: #1d4ed8; } +.st-purple { background: #ede9fe; color: #6d28d9; } +.st-green { background: #dcfce7; color: #15803d; } +.st-gold { background: #fef3c7; color: #b45309; } +.st-red { background: #fee2e2; color: #b91c1c; } +/* 仪表盘快捷操作 */ +.quick-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin: 4px 0; } +.qa-card { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 14px; background: #fff; border: 1px solid var(--line); text-decoration: none; color: #111827; transition: transform .2s, box-shadow .2s, border-color .2s; } +.qa-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--brand-1); } +.qa-ico { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; margin-bottom: 8px; background: linear-gradient(135deg, rgba(14,165,233,.12), rgba(20,184,166,.12)); color: var(--brand-1); } +.qa-t { font-weight: 700; font-size: 15px; } +.qa-d { font-size: 12px; color: #6b7280; } + +.preview-box { border-radius: 12px; padding: 26px; color: #fff; margin-top: 14px; } + +@media (max-width: 860px) { + .admin-side { transform: translateX(-100%); transition: transform .3s; } + .admin-side.open { transform: none; } + .admin-body { margin-left: 0; } + .form-grid { grid-template-columns: 1fr; } +} +.menu-toggle { display: none; background: none; border: none; color: var(--ink-soft); cursor: pointer; padding: 6px; border-radius: 8px; align-items: center; } +.menu-toggle:hover { background: #f1f5f9; } +@media (max-width: 860px) { .menu-toggle { display: inline-flex; } } + +/* ===== 可视化拖拽构建器 ===== */ +.pb-workspace { display: flex; gap: 0; min-height: 74vh; border: 1px solid #e2e8f0; border-radius: 14px; overflow: hidden; background: #fff; } +/* 旧版(admin/page_builder.php)兼容 */ +.pb-left, .pb-right { width: 248px; flex: 0 0 248px; background: #f8fafc; border-left: 1px solid #e2e8f0; border-right: 1px solid #e2e8f0; padding: 14px; overflow: auto; } +.pb-box { margin-bottom: 18px; } +.pb-box h4 { margin: 0 0 10px; font-size: 13px; color: #475569; letter-spacing: .04em; text-transform: uppercase; } +.pb-upload { display: block; text-align: center; background: #0ea5e9; color: #fff; border-radius: 10px; padding: 10px; cursor: pointer; font-size: 14px; font-weight: 600; margin-bottom: 10px; } +.pb-upload:hover { background: #0284c7; } +.pb-add { display: block; width: 100%; margin-bottom: 8px; background: #fff; border: 1px dashed #94a3b8; color: #334155; border-radius: 10px; padding: 10px; cursor: pointer; font-size: 14px; } +.pb-add:hover { border-color: #0ea5e9; color: #0ea5e9; } +/* 新版三栏:图标栏 | 编辑画布 | 右栏标签页 */ +.pb-rail { width: 60px; flex: 0 0 60px; background: #0f172a; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 0; } +.pb-rail-btn { width: 42px; height: 42px; border: none; border-radius: 10px; background: rgba(255,255,255,.08); color: #e2e8f0; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s, transform .15s; } +.pb-rail-btn:hover { background: #0ea5e9; color: #fff; transform: translateY(-1px); } +.pb-rail-btn:active { transform: scale(.95); } +.pb-canvas-wrap { flex: 1; overflow: auto; background: #eef2f7; background-image: radial-gradient(#dbe3ec 1px, transparent 1px); background-size: 18px 18px; padding: 26px; display: flex; justify-content: center; align-items: flex-start; } +.pb-stage { position: relative; width: 720px; min-height: 480px; background: #fff; box-shadow: 0 10px 40px rgba(15,23,42,.12); border-radius: 6px; } +.pb-side { width: 312px; flex: 0 0 312px; background: #f8fafc; border-left: 1px solid #e2e8f0; display: flex; flex-direction: column; } +.pb-tabs { display: flex; border-bottom: 1px solid #e2e8f0; background: #fff; } +.pb-tab { flex: 1; border: none; background: none; padding: 12px 4px; font-size: 13px; color: #64748b; cursor: pointer; border-bottom: 2px solid transparent; } +.pb-tab.active { color: #0ea5e9; border-bottom-color: #0ea5e9; font-weight: 600; } +.pb-panes { flex: 1; overflow: auto; padding: 14px; } +.pb-pane.hidden { display: none; } +.pb-preview { position: relative; width: 720px; transform-origin: top left; } +.pb-preview .pb-el { cursor: default; } +.pb-preview .pb-handle { display: none !important; } +.pb-preview .pb-el.sel { outline: none; } +.pb-hint { font-size: 12px; color: #94a3b8; line-height: 1.8; } +.pb-lib { display: flex; flex-wrap: wrap; gap: 8px; } +.pb-lib-item { position: relative; } +.pb-lib-item img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; border: 2px solid transparent; cursor: pointer; display: block; } +.pb-lib-item img:hover { border-color: #0ea5e9; } +.pb-lib-del { position: absolute; top: -6px; right: -6px; width: 20px; height: 20px; border-radius: 50%; border: none; background: #ef4444; color: #fff; font-size: 13px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0,0,0,.2); } +.pb-lib-del:hover { background: #dc2626; } +.pb-el { position: absolute; box-sizing: border-box; cursor: move; user-select: none; } +.pb-text { width: 100%; min-height: 1.4em; white-space: pre-wrap; word-break: break-word; padding: 2px 4px; } +.pb-img { max-width: 100%; width: auto; display: block; object-fit: cover; border-radius: 4px; } +.pb-text[contenteditable=true] { user-select: text; cursor: text; outline: none; } +.pb-el.sel { outline: 2px dashed #0ea5e9; outline-offset: 2px; } +.pb-handle { position: absolute; right: -7px; bottom: -7px; width: 14px; height: 14px; background: #0ea5e9; border: 2px solid #fff; border-radius: 50%; cursor: nwse-resize; display: none; } +.pb-el.sel .pb-handle { display: block; } +.pb-empty { font-size: 13px; color: #94a3b8; } +#pbPropsBody label { display: block; font-size: 12px; color: #64748b; margin: 10px 0 4px; } +#pbPropsBody input[type=text], #pbPropsBody input[type=number], #pbPropsBody input[type=color], #pbPropsBody textarea, #pbPropsBody select { width: 100%; border: 1px solid #e2e8f0; border-radius: 8px; padding: 7px 9px; font-size: 13px; font-family: inherit; } +#pbPropsBody textarea { min-height: 64px; resize: vertical; } +.pb-del { margin-top: 14px; width: 100%; background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; border-radius: 8px; padding: 8px; cursor: pointer; font-size: 13px; } +.pb-del:hover { background: #fee2e2; } +.pb-align { display: flex; gap: 6px; margin: 2px 0 6px; } +.pb-ab { flex: 1; border: 1px solid #e2e8f0; background: #fff; border-radius: 8px; padding: 8px 0; cursor: pointer; font-size: 13px; color: #334155; } +.pb-ab:hover { border-color: #0ea5e9; } +.pb-ab.active { background: #0ea5e9; border-color: #0ea5e9; color: #fff; font-weight: 600; } +/* 新增元素类型(按钮/价格/规格)在编辑器中为静态预览,避免拦截拖拽 */ +.pb-static { pointer-events: none; user-select: none; } +.pb-btn-prev { display: inline-block; padding: 10px 22px; border-radius: 10px; background: #0ea5e9; color: #fff; font-weight: 600; cursor: move; box-sizing: border-box; } +.pb-btn-prev.pb-buy { background: #ef4444; } +.pb-price-prev { font-size: 28px; font-weight: 700; } +.pb-specs-prev { width: 100%; font-size: 13px; background: #fff; } +.pb-specs-prev .sp-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #e2e8f0; } +@media (max-width: 980px) { .pb-left, .pb-right { width: 180px; flex-basis: 180px; } .pb-rail { width: 52px; flex-basis: 52px; } .pb-side { width: 260px; flex-basis: 260px; } } + +/* ===== 分系统(CRM/PSI)共享后台组件 ===== */ +.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px,1fr)); gap: 16px; margin-bottom: 24px; } +.stat-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 22px; box-shadow: 0 10px 30px -26px rgba(0,0,0,.5); } +.stat-card .stat-num { font-size: 28px; font-weight: 900; color: #0ea5e9; line-height: 1.1; } +.stat-card .stat-label { color: #64748b; font-size: 13px; margin-top: 8px; } + +.panel { background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 22px; margin-bottom: 22px; box-shadow: 0 10px 30px -26px rgba(0,0,0,.5); } +.panel h3 { margin: 0 0 16px; font-size: 17px; } + +.tbl { width: 100%; border-collapse: collapse; } +.tbl th, .tbl td { padding: 12px 14px; text-align: left; font-size: 14px; border-bottom: 1px solid #eef2f7; } +.tbl th { background: #f8fafc; color: #475569; font-weight: 700; } +.tbl tr:last-child td { border-bottom: none; } +.tbl tr:hover td { background: #f8fafc; } + +/* Excel 式冻结表头:列表表格在面板内可滚动,表头吸顶 */ +.panel:has(> .tbl) { max-height: calc(100vh - 220px); overflow: auto; } +.tbl thead th { position: sticky; top: 0; z-index: 3; background: #f8fafc; } + +/* 用户管理:分系统页面权限勾选 */ +.chk-grid { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 6px; } +.chk { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 13px; color: #334155; } + +.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; } +@media (max-width: 880px) { .two-col { grid-template-columns: 1fr; } } + +.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; } +@media (max-width: 760px) { .form-grid { grid-template-columns: 1fr; } } +.form-grid .field { min-width: 0; } + +.row-actions a { margin-right: 12px; color: #0ea5e9; font-weight: 700; font-size: 13px; } +.row-actions a:last-child { color: #dc2626; } + +.tag-in { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #dcfce7; color: #15803d; font-weight: 700; font-size: 13px; } +.tag-out { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #fee2e2; color: #dc2626; font-weight: 700; font-size: 13px; } + +.alert { padding: 12px 16px; border-radius: 10px; margin-bottom: 18px; font-size: 14px; font-weight: 600; } +.alert-ok { background: #dcfce7; color: #15803d; } +.alert-err { background: #fee2e2; color: #dc2626; } +.alert-warn { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; font-weight: 600; } + +/* 导航待升级徽标 */ +.nav-badge { margin-left: auto; background: #ef4444; color: #fff; font-size: 11px; font-weight: 800; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px -2px rgba(239,68,68,.7); } + +/* 通用小工具 */ +.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; } +.num { text-align: right; white-space: nowrap; } +.nowrap { white-space: nowrap; } +.card-title { margin: 0 0 16px; font-size: 17px; } +.head-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } +.btn-link { color: #64748b; font-weight: 600; font-size: 13px; } + +/* 数据库管理:表列表与浏览 */ +.db-stat { color: #64748b; font-size: 13px; margin-bottom: 14px; } +.db-stat b { color: var(--ink); } +.db-search { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; } +.db-search input { flex: 1; min-width: 220px; padding: 9px 12px; border: 1px solid #cbd5e1; border-radius: 10px; font-size: 14px; } +.db-search input:focus { border-color: var(--brand-1); outline: none; box-shadow: 0 0 0 3px rgba(14,165,233,.18); } +.tbl-data .cell { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.link-ok { color: #0ea5e9; font-weight: 700; font-size: 13px; margin-right: 12px; } +.link-del { color: #dc2626; font-weight: 700; font-size: 13px; } +.pager { display: flex; align-items: center; gap: 14px; margin-top: 16px; } +.pager-info { color: #64748b; font-size: 13px; } + +/* 信息表(系统设置) */ +.tbl-info th { width: 180px; text-align: left; color: #64748b; font-weight: 700; background: #f8fafc; } +.tbl-info td { color: var(--ink); } + +/* 快捷入口卡片 */ +.shortcut-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; margin-top: 22px; } +.shortcut-card { display: flex; flex-direction: column; gap: 6px; padding: 22px; border-radius: 16px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-sm); transition: transform .18s, box-shadow .2s, border-color .2s; } +.shortcut-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--brand-1); } +.shortcut-ic { color: var(--brand-1); } +.shortcut-title { font-weight: 800; font-size: 16px; color: var(--ink); } +.shortcut-desc { font-size: 13px; color: #64748b; } + +/* 数据库升级提示条 */ +.alert-upgrade { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 18px 20px; border-radius: 14px; background: linear-gradient(135deg, #fff7ed, #fffbeb); border: 1px solid #fdba74; margin-bottom: 18px; } +.alert-upgrade-main { display: flex; align-items: center; gap: 14px; } +.alert-upgrade-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg,#f59e0b,#fbbf24); color: #fff; } +.alert-upgrade b { font-size: 16px; color: #b45309; } + +/* 状态标签(数据库管理 / 升级) */ +.tag-blue { background: #dbeafe; color: #1d4ed8; } +.tag-amber { background: #fef3c7; color: #b45309; } +.tag-green { background: #dcfce7; color: #15803d; } +.tag-gray { background: #e5e7eb; color: #4b5563; } + +/* 数据库编辑表单 */ +.db-form-card { max-width: 880px; } +.form-row { margin-bottom: 16px; } +.form-row label { display: block; } +.form-label { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 13px; margin-bottom: 7px; color: #334155; } +.form-type { font-style: normal; color: #94a3b8; font-weight: 500; font-size: 12px; } +.form-row .input { width: 100%; padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 10px; font-size: 14px; font-family: inherit; background: #fff; color: var(--ink); } +.form-row .input:focus { border-color: var(--brand-1); outline: none; box-shadow: 0 0 0 3px rgba(14,165,233,.18); } +.form-actions { display: flex; gap: 12px; margin-top: 10px; } diff --git a/public/assets/css/site.css b/public/assets/css/site.css new file mode 100644 index 0000000..b2ad292 --- /dev/null +++ b/public/assets/css/site.css @@ -0,0 +1,227 @@ +/* ===== 酷冰甲降温服 · 前台样式 ===== */ +*,*::before,*::after{box-sizing:border-box;margin:0;padding:0} +html{scroll-behavior:smooth} +body{ + font-family:var(--font-base); + background:var(--c-bg); + color:var(--c-text); + line-height:1.7; + -webkit-font-smoothing:antialiased; + transition:background .4s ease,color .4s ease; + overflow-x:hidden; +} +a{color:inherit;text-decoration:none} +img{max-width:100%;display:block} +.container{max-width:var(--container);margin:0 auto;padding:0 24px} +.section{padding:88px 0} +.eyebrow{color:var(--c-primary);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:13px;margin-bottom:12px} +.section-title{font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.01em;line-height:1.2} +.section-sub{color:var(--c-muted);margin-top:14px;max-width:620px} +.section-head{text-align:center;margin-bottom:54px} +.section-head .section-sub{margin-left:auto;margin-right:auto} + +/* buttons */ +.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;border-radius:var(--radius);font-weight:700;font-size:15px;cursor:pointer;border:1px solid transparent;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,background .25s,color .25s;will-change:transform} +.btn-primary{background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));color:#fff;box-shadow:0 10px 30px -10px var(--c-primary)} +.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px -12px var(--c-primary)} +.btn-ghost{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border)} +.btn-ghost:hover{transform:translateY(-3px);border-color:var(--c-primary);color:var(--c-primary)} +.btn-outline{background:transparent;color:var(--c-primary);border-color:var(--c-primary)} +.btn-outline:hover{background:var(--c-primary);color:#fff} +.magnetic{transition:transform .2s cubic-bezier(.16,1,.3,1)} + +/* header */ +.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:var(--nav-bg);border-bottom:1px solid color-mix(in srgb,var(--c-border) 60%,transparent);transition:box-shadow .3s,background .3s} +.site-header.scrolled{box-shadow:0 10px 30px -18px rgba(0,0,0,.35)} +.nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px} +.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px} +.brand-logo{display:block;height:52px;width:auto} +.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));color:#fff;font-size:18px} +.brand-name{letter-spacing:-.01em} +.nav-links{display:flex;gap:6px} +.nav-links a{padding:9px 15px;border-radius:10px;font-weight:600;color:var(--c-muted);transition:color .2s,background .2s} +.nav-links a:hover,.nav-links a.active{color:var(--c-primary);background:color-mix(in srgb,var(--c-primary) 12%,transparent)} +.nav-actions{display:flex;align-items:center;gap:12px} +.theme-toggle{width:40px;height:40px;border-radius:50%;border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;font-size:17px;transition:transform .25s,background .25s} +.theme-toggle:hover{transform:rotate(20deg) scale(1.08)} +.nav-burger{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:var(--c-text)} + +/* hero */ +.hero{position:relative;overflow:hidden;padding:96px 0 110px} +.hero-bg{position:absolute;inset:0;background: + radial-gradient(60% 60% at 15% 10%,color-mix(in srgb,var(--c-primary) 30%,transparent),transparent 60%), + radial-gradient(50% 50% at 85% 20%,color-mix(in srgb,var(--c-secondary) 28%,transparent),transparent 60%), + radial-gradient(40% 40% at 70% 90%,color-mix(in srgb,var(--c-accent) 22%,transparent),transparent 60%); + filter:saturate(1.1);animation:floatbg 14s ease-in-out infinite alternate} +@keyframes floatbg{from{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.06)}} +.hero .container{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center} +.hero-title{font-size:clamp(34px,5vw,60px);font-weight:900;line-height:1.08;letter-spacing:-.02em} +.hero-title .hl{background:linear-gradient(120deg,var(--c-primary),var(--c-secondary));-webkit-background-clip:text;background-clip:text;color:transparent} +.hero-sub{margin-top:22px;font-size:18px;color:var(--c-muted);max-width:520px} +.hero-cta{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap} +.hero-visual{position:relative;aspect-ratio:1/1;display:grid;place-items:center} +.hero-orb{width:78%;aspect-ratio:1/1;border-radius:50%;background:conic-gradient(from 0deg,var(--c-primary),var(--c-secondary),var(--c-accent),var(--c-primary));filter:blur(2px);animation:spin 18s linear infinite;opacity:.9} +.hero-orb::after{content:"";position:absolute;inset:14%;border-radius:50%;background:var(--c-bg);box-shadow:inset 0 30px 60px -30px rgba(0,0,0,.4)} +.hero-frost{position:absolute;font-size:120px;filter:drop-shadow(0 20px 40px rgba(0,0,0,.25))} +@keyframes spin{to{transform:rotate(360deg)}} +.hero-stats{position:relative;display:flex;gap:14px;flex-wrap:wrap;margin-top:46px;grid-column:1/-1;justify-content:center} +.stat{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:18px 26px;text-align:center;min-width:140px} +.stat b{display:block;font-size:28px;font-weight:900;color:var(--c-primary);line-height:1} +.stat span{color:var(--c-muted);font-size:13px} + +/* cards grids */ +.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px} +.cat-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:26px;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s} +.cat-card:hover{transform:translateY(-6px);border-color:var(--c-primary);box-shadow:0 24px 50px -28px var(--c-primary)} +.cat-icon{font-size:34px;margin-bottom:12px} +.cat-card h3{font-size:18px;margin-bottom:8px} +.cat-card p{color:var(--c-muted);font-size:14px} + +.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px} +.product-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s} +.product-card:hover{transform:translateY(-8px);box-shadow:0 30px 60px -30px var(--c-primary);border-color:color-mix(in srgb,var(--c-primary) 50%,var(--c-border))} +.product-thumb{aspect-ratio:4/3;display:grid;place-items:center;color:#fff;font-size:40px;position:relative;overflow:hidden} +.product-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block} +.product-thumb::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.35),transparent 50%)} +.product-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1} +.product-name{font-size:17px;font-weight:800} +.product-sum{color:var(--c-muted);font-size:14px;flex:1} +.product-meta{display:flex;align-items:center;justify-content:space-between;margin-top:6px} +.product-price{color:var(--c-primary);font-weight:900;font-size:18px} +.product-price small{color:var(--c-muted);font-weight:500;font-size:12px} +.product-tags{display:flex;gap:6px;flex-wrap:wrap} +.product-link{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none} +.product-actions{display:flex;gap:10px;padding:0 18px 18px} +.product-actions .btn{flex:1;padding:11px 14px;font-size:14px} +.tag{font-size:12px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--c-primary) 12%,transparent);color:var(--c-primary)} +.more-link{display:inline-flex;align-items:center;gap:6px;color:var(--c-primary);font-weight:700;margin-top:34px} + +/* 产品详情:底部吸底购买栏 */ +.detail-sec{padding-bottom:104px} +.buy-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:color-mix(in srgb,var(--c-bg) 88%,transparent);border-top:1px solid var(--c-border);box-shadow:0 -10px 30px -12px rgba(0,0,0,.18);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%)} +.buy-bar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0} +.buy-bar-info{display:flex;flex-direction:column;line-height:1.25;min-width:0} +.buy-bar-name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.buy-bar-price{color:var(--c-primary);font-weight:900;font-size:18px} +.buy-bar-price small{font-size:12px;color:var(--c-muted);font-weight:500} +.buy-bar-actions{display:flex;gap:10px;flex-shrink:0} +.buy-bar-actions .btn{padding:11px 20px} +@media(max-width:560px){ + .buy-bar-inner{gap:10px;padding:10px 0} + .buy-bar-name{font-size:13px} + .buy-bar-price{font-size:16px} + .buy-bar-actions .btn{padding:10px 14px;font-size:13px} + .detail-sec{padding-bottom:92px} +} + +/* 订单查询结果卡片 */ +.order-card{margin-top:18px;padding:20px;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface)} +.order-card + .order-card{margin-top:16px} +.ok{color:#16a34a;font-weight:700} +.pend{color:#d97706;font-weight:700} + +.adv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px} +.adv-card{position:relative;padding:30px;border-radius:var(--radius);background:linear-gradient(160deg,color-mix(in srgb,var(--c-primary) 8%,var(--c-surface)),var(--c-surface));border:1px solid var(--c-border);overflow:hidden} +.adv-card .num{font-size:46px;font-weight:900;color:color-mix(in srgb,var(--c-primary) 35%,transparent);line-height:1} +.adv-card h3{margin:10px 0 8px;font-size:19px} +.adv-card p{color:var(--c-muted);font-size:14px} + +.process{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;counter-reset:s} +.step{position:relative;padding:26px 22px;border-radius:var(--radius);background:var(--c-surface);border:1px solid var(--c-border)} +.step::before{counter-increment:s;content:"0" counter(s);font-size:30px;font-weight:900;color:var(--c-primary)} +.step h4{margin:8px 0 6px;font-size:16px} +.step p{color:var(--c-muted);font-size:13px} + +.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px} +.news-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s} +.news-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px var(--c-primary)} +.news-thumb{aspect-ratio:16/9;display:grid;place-items:center;color:#fff;font-size:34px} +.news-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1} +.news-date{color:var(--c-muted);font-size:13px} +.news-title{font-size:17px;font-weight:800;line-height:1.4} +.news-sum{color:var(--c-muted);font-size:14px;flex:1} + +.cta-banner{position:relative;overflow:hidden;border-radius:calc(var(--radius) * 1.4);padding:60px 50px;color:#fff;background:linear-gradient(120deg,var(--c-primary-600),var(--c-secondary));text-align:center} +.cta-banner h2{font-size:clamp(24px,3vw,36px);font-weight:900} +.cta-banner p{margin:14px auto 26px;max-width:560px;opacity:.95} +.cta-banner .btn-primary{background:#fff;color:var(--c-primary-600)} + +/* footer */ +.site-footer{margin-top:40px;background:var(--c-surface);border-top:1px solid var(--c-border);padding-top:56px} +.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px} +.footer-grid h4{font-size:15px;margin-bottom:14px} +.footer-grid a{display:block;color:var(--c-muted);padding:5px 0;transition:color .2s} +.footer-grid a:hover{color:var(--c-primary)} +.footer-slogan{color:var(--c-muted);margin:12px 0;font-size:14px} +.footer-line{color:var(--c-muted);font-size:14px;margin:4px 0} +.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:22px 24px;margin-top:40px;border-top:1px solid var(--c-border);color:var(--c-muted);font-size:13px} + +/* inner page hero */ +.page-hero{padding:70px 0 36px;text-align:center;background:radial-gradient(60% 80% at 50% 0%,color-mix(in srgb,var(--c-primary) 16%,transparent),transparent)} +.page-hero h1{font-size:clamp(28px,4vw,44px);font-weight:900} +.page-hero p{color:var(--c-muted);margin-top:12px} +.breadcrumb{padding:18px 0;color:var(--c-muted);font-size:14px} +.breadcrumb a:hover{color:var(--c-primary)} + +/* product detail */ +.detail-wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start} +.detail-thumb{aspect-ratio:4/3;border-radius:var(--radius);display:grid;place-items:center;color:#fff;font-size:64px} +.detail-info h1{font-size:30px;font-weight:900;margin-bottom:10px} +.detail-price{font-size:26px;font-weight:900;color:var(--c-primary);margin:14px 0} +.detail-sum{color:var(--c-muted)} +.detail-desc{margin-top:18px;white-space:pre-line;line-height:1.9} +.spec-table{width:100%;border-collapse:collapse;margin-top:24px} +.spec-table td{padding:12px 14px;border-bottom:1px solid var(--c-border);font-size:14px} +.spec-table td:first-child{color:var(--c-muted);width:140px} +.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px} + +/* forms */ +.form-card{max-width:640px;margin:0 auto;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:34px} +.field{margin-bottom:18px} +.field label{display:block;font-weight:700;margin-bottom:8px;font-size:14px} +.field input,.field textarea,.field select{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--c-border);background:var(--c-bg);color:var(--c-text);font-size:15px;font-family:inherit;transition:border-color .2s,box-shadow .2s} +.field input:focus,.field textarea:focus{border-color:var(--c-primary);outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--c-primary) 18%,transparent)} +.field textarea{min-height:130px;resize:vertical} +.form-note{background:color-mix(in srgb,var(--c-primary) 10%,var(--c-surface));border:1px solid color-mix(in srgb,var(--c-primary) 30%,var(--c-border));border-radius:12px;padding:14px 16px;color:var(--c-muted);font-size:14px;margin-bottom:20px} +.alert{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:14px} +.alert-ok{background:color-mix(in srgb,#22c55e 14%,var(--c-surface));border:1px solid #22c55e66;color:#15803d} +.alert-err{background:color-mix(in srgb,#ef4444 14%,var(--c-surface));border:1px solid #ef444466;color:#b91c1c} + +/* reveal on scroll */ +.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)} +.reveal.in{opacity:1;transform:none} + +/* responsive */ +@media (max-width:900px){ + .hero .container{grid-template-columns:1fr} + .hero-visual{max-width:360px;margin:0 auto} + .detail-wrap{grid-template-columns:1fr} + .footer-grid{grid-template-columns:1fr 1fr} +} +@media (max-width:720px){ + .nav-links{position:fixed;inset:72px 0 auto 0;flex-direction:column;background:var(--c-bg);padding:16px 24px;gap:4px;border-bottom:1px solid var(--c-border);transform:translateY(-120%);transition:transform .3s;z-index:40} + .nav-links.open{transform:none} + .nav-burger{display:block} + .section{padding:60px 0} + .footer-grid{grid-template-columns:1fr} + .cta-banner{padding:42px 22px} +} + +/* ===== 订单 / 支付 ===== */ +.pay-channels{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px} +.pay-channel{flex:1;min-width:140px;padding:22px;border-radius:var(--radius);border:1.5px solid var(--c-border);background:var(--c-surface);font-size:17px;font-weight:800;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s,color .2s} +.pay-channel:hover{transform:translateY(-3px);border-color:var(--c-primary);color:var(--c-primary);box-shadow:0 18px 40px -22px var(--c-primary)} +.pay-qr{margin-top:16px;padding:18px;border-radius:14px;background:#fff;color:#0f172a;font-size:13px;word-break:break-all;border:1px solid var(--c-border);line-height:1.7} +.pay-demo-box{margin-top:18px;padding:30px 20px;border-radius:var(--radius);text-align:center;background:linear-gradient(160deg,color-mix(in srgb,var(--c-primary) 10%,var(--c-surface)),var(--c-surface));border:1px solid var(--c-border)} +.pay-demo-icon{font-size:48px;margin-bottom:8px} +.order-sum{margin-bottom:6px} + +/* ===== FAQ 折叠(首页/产品页)===== */ +.faq-list{display:flex;flex-direction:column;gap:12px;margin-top:8px} +.faq-item{border:1.5px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);overflow:hidden;transition:border-color .2s,box-shadow .2s} +.faq-item[open]{border-color:var(--c-primary);box-shadow:0 16px 40px -24px var(--c-primary)} +.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;cursor:pointer;font-size:17px;font-weight:700;list-style:none} +.faq-item summary::-webkit-details-marker{display:none} +.faq-item .faq-ico{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--c-primary) 14%,transparent);color:var(--c-primary);font-size:20px;line-height:1;transition:transform .2s} +.faq-item[open] .faq-ico{transform:rotate(45deg)} +.faq-a{padding:0 20px 20px;color:var(--c-muted);line-height:1.85;font-size:15px} diff --git a/public/assets/css/subsys.css b/public/assets/css/subsys.css new file mode 100644 index 0000000..a6646b1 --- /dev/null +++ b/public/assets/css/subsys.css @@ -0,0 +1,305 @@ +/* ============================================================ + 分系统框架样式(CRM / PSI)—— 渐变风格 + 仅作用于 body.subsys,不影响 admin 后台 + ============================================================ */ +.admin.subsys { + --brand-1: #0ea5e9; + --brand-2: #14b8a6; + --brand-3: #6366f1; + --ss-side-1: #0f2a44; + --ss-side-2: #134e6f; + --ss-side-3: #0e7490; + --ink: #0f2a44; + --muted: #5b7187; + display: flex; + min-height: 100vh; + background: + radial-gradient(1200px 600px at 100% -10%, rgba(20,184,166,.10), transparent 60%), + radial-gradient(1000px 500px at -10% 110%, rgba(14,165,233,.12), transparent 55%), + linear-gradient(135deg, #eef4ff 0%, #f6fbff 45%, #eafaf6 100%); + color: var(--ink); +} + +/* ---------- 侧边栏 ---------- */ +.ss-side { + width: 246px; + flex: 0 0 246px; + align-self: stretch; + display: flex; + flex-direction: column; + position: sticky; + top: 0; + height: 100vh; + background: linear-gradient(180deg, var(--ss-side-1) 0%, var(--ss-side-2) 55%, var(--ss-side-3) 100%); + color: #dbeafe; + box-shadow: 6px 0 28px rgba(15,42,68,.22); + z-index: 30; +} +.ss-brand { + display: flex; align-items: center; gap: 12px; + padding: 20px 18px; + color: #fff; text-decoration: none; + border-bottom: 1px solid rgba(255,255,255,.10); +} +.ss-brand-ic { + display: inline-flex; width: 40px; height: 40px; flex: 0 0 40px; + align-items: center; justify-content: center; border-radius: 12px; + background: linear-gradient(135deg, var(--brand-1), var(--brand-2)); + color: #fff; box-shadow: 0 6px 16px rgba(14,165,233,.35); +} +.ss-brand-text { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; } +.ss-brand-text b { font-size: 16px; font-weight: 700; } +.ss-brand-text small { font-size: 11px; color: #93c5d9; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + +.ss-nav { flex: 1; padding: 14px 12px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; } +.ss-nav-item { + display: flex; align-items: center; gap: 12px; + padding: 11px 14px; border-radius: 12px; + color: #cfe3f3; text-decoration: none; font-size: 14px; font-weight: 500; + transition: background .18s ease, color .18s ease, transform .18s ease; +} +.ss-nav-item:hover { background: rgba(255,255,255,.10); color: #fff; transform: translateX(2px); } +.ss-nav-item.active { + color: #fff; + background: linear-gradient(135deg, rgba(14,165,233,.95), rgba(20,184,166,.95)); + box-shadow: 0 8px 18px rgba(14,165,233,.35); +} +.ss-ic { display: inline-flex; width: 22px; height: 22px; flex: 0 0 22px; align-items: center; justify-content: center; } +.ss-label { white-space: nowrap; } + +.ss-side-foot { padding: 14px 16px; border-top: 1px solid rgba(255,255,255,.10); } +.ss-foot-link { display: flex; align-items: center; gap: 8px; color: #93c5d9; text-decoration: none; font-size: 13px; } +.ss-foot-link:hover { color: #fff; } + +/* ---------- 主体 ---------- */ +.ss-body { flex: 1; display: flex; flex-direction: column; min-width: 0; } +.ss-top { + position: sticky; top: 0; z-index: 20; + display: flex; align-items: center; justify-content: space-between; + gap: 16px; padding: 14px 24px; + background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(240,248,255,.92)); + backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(15,42,68,.08); + box-shadow: 0 4px 18px rgba(15,42,68,.06); +} +.ss-top-left { display: flex; align-items: center; gap: 12px; } +.ss-crumb { font-weight: 700; font-size: 15px; color: var(--ink); } +.menu-toggle { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid rgba(15,42,68,.12); border-radius: 10px; background: #fff; color: var(--ink); cursor: pointer; } +.ss-user { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } +.ss-user-name { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); } +.ss-avatar { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; background: linear-gradient(135deg, var(--brand-1), var(--brand-2)); color: #fff; } + +/* ---------- 内容区 ---------- */ +.ss-content { padding: 26px 28px 40px; } +body.subsys .page-head h1 { font-size: 22px; margin: 0 0 4px; } +body.subsys .page-head .sub { color: var(--muted); margin: 0 0 18px; } + +/* 统计卡 */ +body.subsys .stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-bottom: 22px; } +body.subsys .stat-card { + position: relative; overflow: hidden; + padding: 20px 22px; border-radius: 16px; background: #fff; + border: 1px solid rgba(15,42,68,.07); + box-shadow: 0 10px 26px rgba(15,42,68,.07); +} +body.subsys .stat-card::before { + content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; + background: linear-gradient(180deg, var(--brand-1), var(--brand-2)); +} +body.subsys .stat-card .stat-num { font-size: 28px; font-weight: 800; background: linear-gradient(135deg, var(--brand-1), var(--brand-2)); -webkit-background-clip: text; background-clip: text; color: transparent; } +body.subsys .stat-card .stat-label { color: var(--muted); font-size: 13px; margin-top: 4px; } + +/* 快捷入口 */ +body.subsys .quick-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 22px; } +body.subsys .qa-card { + display: flex; flex-direction: column; gap: 2px; text-decoration: none; + padding: 16px 18px; border-radius: 14px; background: #fff; + border: 1px solid rgba(15,42,68,.07); + box-shadow: 0 8px 20px rgba(15,42,68,.06); + transition: transform .18s ease, box-shadow .18s ease; +} +body.subsys .qa-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(14,165,233,.18); } +body.subsys .qa-ico { font-size: 20px; } +body.subsys .qa-t { font-weight: 700; color: var(--ink); } +body.subsys .qa-d { font-size: 12px; color: var(--muted); } + +/* 面板 */ +body.subsys .panel { + background: #fff; border-radius: 16px; padding: 18px 20px; margin-bottom: 20px; + border: 1px solid rgba(15,42,68,.07); box-shadow: 0 10px 26px rgba(15,42,68,.07); +} +body.subsys .panel h3 { margin: 0 0 12px; font-size: 16px; } +body.subsys .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } +@media (max-width: 900px) { body.subsys .two-col { grid-template-columns: 1fr; } } + +/* ============ 渐变表格(行 / 列) ============ */ +body.subsys .tbl { + width: 100%; border-collapse: separate; border-spacing: 0; + border: 0; border-radius: 14px; overflow: hidden; + box-shadow: 0 10px 30px rgba(15,42,68,.10); + /* 列渐变:整表左→右的轻微底色过渡 */ + background: linear-gradient(100deg, #eef6ff 0%, #ffffff 45%, #ecfbf6 100%); +} +body.subsys .tbl thead th { + background: linear-gradient(135deg, var(--brand-1), var(--brand-2)); + color: #fff; font-weight: 600; text-align: left; padding: 12px 14px; + border: 0; white-space: nowrap; +} +body.subsys .tbl tbody td { padding: 11px 14px; border-top: 1px solid rgba(15,42,68,.06); color: var(--ink); } +/* 行渐变:斑马行 + 悬停行 */ +body.subsys .tbl tbody tr:nth-child(odd) td { background: linear-gradient(90deg, rgba(14,165,233,.07), rgba(20,184,166,.03)); } +body.subsys .tbl tbody tr:nth-child(even) td { background: rgba(255,255,255,.55); } +body.subsys .tbl tbody tr:hover td { background: linear-gradient(90deg, rgba(14,165,233,.18), rgba(20,184,166,.10)); } +body.subsys .tbl tbody tr:first-child td { border-top: 0; } + +/* ---------- 按钮 / 徽标 / 提示 ---------- */ +body.subsys .btn-soft { + display: inline-flex; align-items: center; gap: 6px; + padding: 7px 12px; border-radius: 10px; font-size: 13px; font-weight: 600; + text-decoration: none; color: var(--ink); + background: #fff; border: 1px solid rgba(15,42,68,.12); + transition: background .15s ease, transform .15s ease; +} +body.subsys .btn-soft:hover { background: linear-gradient(135deg, rgba(14,165,233,.12), rgba(20,184,166,.12)); transform: translateY(-1px); } +body.subsys .btn-soft.btn-sm { padding: 6px 10px; font-size: 12px; } +body.subsys .btn { + display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 10px; + background: linear-gradient(135deg, var(--brand-1), var(--brand-2)); color: #fff; + text-decoration: none; font-weight: 600; border: 0; cursor: pointer; + box-shadow: 0 8px 18px rgba(14,165,233,.28); +} +body.subsys .btn:hover { filter: brightness(1.05); } +body.subsys .btn-sm { padding: 6px 11px; font-size: 12px; } +body.subsys .btn-ok { + display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 10px; + background: linear-gradient(135deg, #10b981, #14b8a6); color: #fff; font-weight: 600; border: 0; cursor: pointer; + box-shadow: 0 8px 18px rgba(16,185,129,.28); +} +body.subsys .btn-ok:hover { filter: brightness(1.05); } +body.subsys .row-actions a { color: var(--brand-1); text-decoration: none; font-weight: 600; margin-right: 10px; } + +/* 看板图标 + 报表卡片主体 */ +body.subsys .stat-ic { width: 38px; height: 38px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; + background: linear-gradient(135deg, rgba(14,165,233,.16), rgba(20,184,166,.12)); color: var(--brand-1); margin-bottom: 8px; } +body.subsys .stat-main { display: flex; flex-direction: column; } +body.subsys .stat-main .stat-num { font-size: 20px; font-weight: 800; color: var(--ink); margin: 2px 0; } +body.subsys .stat-sub { color: var(--muted); font-size: 13px; } +body.subsys .stat-card { text-decoration: none; color: inherit; } + +/* 状态小标签配色 */ +body.subsys .tag-mini.tag-gray { background: rgba(100,116,139,.16); color: #475569; } +body.subsys .tag-mini.tag-amber { background: rgba(245,158,11,.16); color: #b45309; } +body.subsys .tag-mini.tag-green { background: rgba(16,185,129,.16); color: #047857; } +body.subsys .tag-mini.tag-red { background: rgba(239,68,68,.16); color: #b91c1c; } + +.role-badge { font-size: 11px; padding: 2px 8px; border-radius: 999px; margin-left: 6px; } +.role-super_admin, .role-admin { background: linear-gradient(135deg, var(--brand-1), var(--brand-2)); color: #fff; } +.role-user, .role-none { background: rgba(15,42,68,.08); color: var(--muted); } + +body.subsys .alert { padding: 12px 16px; border-radius: 10px; margin-bottom: 16px; font-weight: 500; } +body.subsys .alert-ok { background: linear-gradient(135deg, rgba(16,185,129,.15), rgba(20,184,166,.12)); color: #047857; } +body.subsys .alert-err { background: linear-gradient(135deg, rgba(239,68,68,.15), rgba(244,114,114,.12)); color: #b91c1c; } +body.subsys .muted { color: var(--muted); } + +/* ---------- 响应式:侧栏抽屉 ---------- */ +@media (max-width: 900px) { + .admin.subsys { display: block; } + .ss-side { position: fixed; left: 0; top: 0; transform: translateX(-100%); transition: transform .25s ease; } + body.nav-open .ss-side { transform: translateX(0); } + .menu-toggle { display: inline-flex; } + .ss-body { display: block; } + .ss-content { padding: 18px 16px 36px; } +} + +/* ---------- 用户管理页面 ---------- */ +body.subsys .panel-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; } +body.subsys .panel-bar h3 { margin: 0; } +body.subsys .table-wrap { overflow-x: auto; } +body.subsys .tbl .perm-cell { line-height: 1.9; } +body.subsys .perm-chip { + display: inline-block; margin: 0 4px 2px 0; padding: 2px 9px; border-radius: 999px; font-size: 12px; + background: rgba(14,165,233,.12); color: #0e7490; border: 1px solid rgba(14,165,233,.20); +} +body.subsys .st { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; } +body.subsys .st-on { background: rgba(16,185,129,.14); color: #047857; } +body.subsys .st-off { background: rgba(100,116,139,.14); color: #475569; } +body.subsys .inline-form { display: inline; } +body.subsys .link-danger { background: none; border: 0; padding: 0; color: #dc2626; font-weight: 600; cursor: pointer; font-size: 14px; } +body.subsys .link-danger:hover { text-decoration: underline; } +body.subsys .link-ok { background: none; border: 0; padding: 0; color: #047857; font-weight: 600; cursor: pointer; font-size: 14px; } +body.subsys .link-ok:hover { text-decoration: underline; } +body.subsys .btn-ghost { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 10px; border: 1px solid rgba(15,42,68,.16); background: #fff; color: var(--ink); font-weight: 600; font-size: 14px; cursor: pointer; } +body.subsys .btn-ghost:hover { border-color: rgba(15,42,68,.32); } + +/* ---------- 表单 ---------- */ +body.subsys .form-card { max-width: 760px; } +body.subsys .form-row { margin-bottom: 16px; display: flex; flex-direction: column; gap: 6px; } +body.subsys .form-row > label { font-weight: 600; font-size: 13px; color: var(--ink); } +body.subsys .form-row input[type="text"], +body.subsys .form-row input[type="password"], +body.subsys .form-row select, +body.subsys .form-row textarea { + padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(15,42,68,.14); background: #fff; color: var(--ink); font-size: 14px; +} +body.subsys .form-row input[readonly] { background: #f1f5f9; color: var(--muted); } +body.subsys .form-row small { color: var(--muted); font-size: 12px; } +body.subsys .req { color: #dc2626; } +body.subsys .radio-row { display: flex; flex-wrap: wrap; gap: 18px; } +body.subsys .radio, body.subsys .check { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink); cursor: pointer; } +body.subsys .perm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px 14px; padding: 10px 12px; border-radius: 10px; background: rgba(15,42,68,.04); border: 1px solid rgba(15,42,68,.08); } +body.subsys .perm-grid .check { font-weight: 500; } +body.subsys .form-actions { display: flex; gap: 12px; align-items: center; margin-top: 6px; } + +/* ---------- 顶栏铃铛 + 未读徽标 ---------- */ +body.subsys .ss-bell { + position: relative; display: inline-flex; align-items: center; justify-content: center; + width: 38px; height: 38px; border-radius: 10px; text-decoration: none; font-size: 18px; + background: rgba(15,42,68,.05); color: var(--ink); margin-left: 10px; +} +body.subsys .ss-bell:hover { background: rgba(14,165,233,.14); } +body.subsys .ss-badge { + position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px; + border-radius: 999px; background: linear-gradient(135deg, #ef4444, #dc2626); color: #fff; + font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; box-shadow: 0 2px 6px rgba(220,38,38,.45); +} + +/* ---------- 页面头 ---------- */ +body.subsys .page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; } +body.subsys .page-head h2 { margin: 0; font-size: 20px; } +body.subsys .page-head .muted { margin: 4px 0 0; font-size: 13px; } +body.subsys .head-actions { display: flex; gap: 10px; align-items: center; flex-shrink: 0; } +body.subsys .btn-primary { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 10px; + background: linear-gradient(135deg, var(--brand-1), var(--brand-2)); color: #fff; text-decoration: none; font-weight: 600; border: 0; cursor: pointer; + box-shadow: 0 8px 18px rgba(14,165,233,.28); } +body.subsys .btn-primary:hover { filter: brightness(1.05); } +body.subsys .empty-box { padding: 40px; text-align: center; color: var(--muted); border: 1px dashed rgba(15,42,68,.18); border-radius: 14px; background: rgba(15,42,68,.03); } + +/* ---------- 紧急事件列表 ---------- */ +body.subsys .ev-list { display: flex; flex-direction: column; gap: 12px; } +body.subsys .ev-card { display: flex; gap: 14px; background: #fff; border: 1px solid rgba(15,42,68,.08); border-radius: 14px; padding: 14px 16px; + box-shadow: 0 8px 22px rgba(15,42,68,.06); border-left: 4px solid #ef4444; } +body.subsys .ev-card.read { border-left-color: rgba(15,42,68,.12); opacity: .72; } +body.subsys .ev-left { flex-shrink: 0; padding-top: 4px; } +body.subsys .ev-dot { display: block; width: 10px; height: 10px; border-radius: 50%; background: #ef4444; box-shadow: 0 0 0 4px rgba(239,68,68,.18); } +body.subsys .ev-card.read .ev-dot { background: #94a3b8; box-shadow: none; } +body.subsys .ev-main { flex: 1; min-width: 0; } +body.subsys .ev-top { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; flex-wrap: wrap; } +body.subsys .ev-tag { font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: rgba(239,68,68,.14); color: #b91c1c; } +body.subsys .ev-new { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #ef4444; color: #fff; } +body.subsys .ev-time { font-size: 12px; color: var(--muted); margin-left: auto; } +body.subsys .ev-title { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 4px; } +body.subsys .ev-body { font-size: 13px; color: #334155; white-space: pre-wrap; line-height: 1.7; } +body.subsys .ev-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; flex-wrap: wrap; } +body.subsys .ev-channels { display: flex; gap: 6px; } +body.subsys .ch { font-size: 11px; padding: 2px 8px; border-radius: 999px; font-weight: 600; } +body.subsys .ch-inapp { background: rgba(14,165,233,.14); color: #0e7490; } +body.subsys .ch-email { background: rgba(16,185,129,.14); color: #047857; } +body.subsys .ch-wechat { background: rgba(245,158,11,.16); color: #b45309; } +body.subsys .ev-ops { display: flex; align-items: center; gap: 12px; } + +/* ---------- 通知设置表单 ---------- */ +body.subsys .notify-form .form-section { border: 1px solid rgba(15,42,68,.08); border-radius: 14px; padding: 16px 18px; margin-bottom: 16px; background: rgba(15,42,68,.02); } +body.subsys .notify-form fieldset.form-section { border: 1px solid rgba(15,42,68,.12); } +body.subsys .notify-form legend { font-weight: 700; color: var(--ink); padding: 0 8px; font-size: 14px; } +body.subsys .notify-form .form-section > small { display: block; color: var(--muted); font-size: 12px; margin-top: 4px; } +body.subsys .notify-form .check { margin-bottom: 8px; } diff --git a/public/assets/css/theme.css b/public/assets/css/theme.css new file mode 100644 index 0000000..d9963d3 --- /dev/null +++ b/public/assets/css/theme.css @@ -0,0 +1,19 @@ +:root{ + --c-primary:#0ea5e9; + --c-primary-600:#0284c7; + --c-secondary:#14b8a6; + --c-accent:#f59e0b; + --c-bg:#ffffff; + --c-surface:#f8fafc; + --c-text:#0f172a; + --c-muted:#64748b; + --c-border:#e2e8f0; + --nav-bg:rgba(255,255,255,0.72); + --font-base:'Noto Sans SC', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; + --radius:16px; + --container:1200px; +} +[data-theme="dark"]{ + --c-bg:#0b1120;--c-surface:#111827;--c-text:#e5e7eb;--c-muted:#94a3b8;--c-border:#1f2937;--nav-bg:rgba(11,17,32,0.72); +} + diff --git a/public/assets/img/apple-touch-icon.png b/public/assets/img/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8c809162af37f9507908a217bf5fcccdfc6ac7 GIT binary patch literal 17976 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

=fO{8)!p?%G_p#g~p` zVe691`?`>X2gTC}V~y1I9x72sDyuj$GKDw^P?%`owL?AlM{mCZLq(w0poO9jk!Un) zqjbRaoADmi4c3Sl_LuwWk5PO@N9U=d*|Ztwu$BLAT&iB*Ts_+L^?=I z`A+rOWL8U{vg;4&^5Sj}?Dv~5V7Vd=-)FyT{=U-!Lcb3{krh*=?7_nawqRIMEFHm9 zv7UM1>l)S5yXx2N{-Yq(Q@O8yMHor%P$nJt;o)fjKOI${drf2HSgJ`1E&?7sv>9h7 z2N2Q^UtYT# zm2e89K?7<16yCR|2S0nuWzg{q{CW*imT}R*u&;=pzG*XV+tY)9pqEgV!DMzWby`#8HA)uvDqaT&!4q>` znLMT;Mo(_X1QlTf5Y%#c>_=c6VI3%_3r|C)rTwfb`>dN@Yy#!n@ zLWrZoLpU@t$b)rM+JMjUv~;phO}o9bIcZ+)IpVhGWt?7nmuhwUQ%=DsU$vgx;w#Vh zW{xeFf1O=`+Tx8;F@`D{Kl7$5v9as{_yq_0;l(pE_}W7UFwhfZVT!^iOR zH}A$+PYfw0@z$Nacw>1#DqBL#$T7~QRl<#UVt59BbN@lq)dm!hK&KP<`P;9=+b-)z zfI8092JtUHa|lySldm>xyY_v}8eyG`0rNGM$#grY7q(utFQUbv=bQO6G;Yo-;OXNV zaQMtlT(|KUji3|BiLWEr_SW0cv+q-VeT@}0FJ1~!IYSCa4X8Ki$>;oHv#Jum35W>K zAKZ*8jbswjpfPKbf@KEt>Yq_dPy`n66wJc6;VI?2&&@;Z=vOr5JS@|Dcd1y`t-gO@jq3Q z&m8h6?|~p)<@;~n1yP*=q7q&j8N-R=QwUWF$@C;{9_UFw@cL`fr$_m9aj_3~K5!ThJ~NC$ zsmS}G5`owQcYDmF9{&3NLpWV6q7;_UXpG?XR}YAH?%yVonQ6qbfN{}-`+j&BF=_SD zzEJ7HhL}PcXCSBpo{J^)J-R}VfR_sRsr{UDk&A5T=2ORvlLpH@S7sR=S^(RkjQz{M z7Z+PvMWRez%zm#fmrp;1^gJYf%H8?C+K8u*moXI=p>-s}(W6?Q`Ti~dH|P(3FrWH; z*-cKKIeXee@Y!_y#QW;UpM{5l5MF{~qY|e_1`zNl2wL&_3>-(GG?rg&w+QRAG7UCg zJqNFTUYjS1v5(mynmPncz(``HlC+7G)cmE7xZcz^?ycb6Hw-=Y{%bc+z3sXIjp{I} z4G(uceh5>g2*h>`e9yancR${D>t=}hX|5Jl!vWm+z(G84=rm-Z3@;^NJ*}IC9(?K1 zm+<7NI#Bcx&m7lR?tuP@+jcknMzvA$HHwk1AAR-|4xDI079!>qCxVsf%p~tdRo5Gn z_5hw8+0IoI%Aet~7P50Zf1x(t>rA;=F`#8g;fg>IrWiiE701pN;1{Qau6b$DIMj<~ zx(|17XZVU~(UL<$ub}M4d!m_VZc9&|)LMC7ECrrBHi&w<36zQDDksThkw$aYU3?yJ zb_gdf_M~(!Vvbp0Qf!=}pl7gmgO=NRX*C~15vbEd?AyKxn>`%#C#Ryfz2+*hv6vw6 zO8EZqDctqsF)fQ_)tH$0gshF%-hS;?y#De&pf&~_7BTE^!j~R9hLJjn8wwO6U%WKg z#C$@L0q#MBibB-xh#OIE*ib8V~ zH(k~z-gMJeM54xPg;}v%R^#YMM_QTy3pwKAnXvz-tc=s*W_piopdN3>Gl#b!3Fr)1 zk&RQ2irT41Uef@sv~${5gqN0eJ$VfNNS!MG@dVw_cuJUztJB9ET3d7)>Hn<5(+| ze%04{?C`0n#way2AjQrw(f{-9SBoK$Jey8dAMsG!c(frO{Osey^3aU0A_|=-(o)n= zTSG~YKX%Q`u8ls@xM`K4=Ko^m=1^Ze6ZSoL7#DF`SP{#EQX$f) zftOD1#(1*=6-besISy4n@@o;ml+u-wi~j!sPDqP7ZQ^Gi00000NkvXXu0mjfsjCzI literal 0 HcmV?d00001 diff --git a/public/assets/img/favicon-16.png b/public/assets/img/favicon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..5f7e76e974196f17ded05da5f4f037b62ceccf6a GIT binary patch literal 628 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�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≧f57rqpJik1$78W+E7jR4f?;)gk%^5{!=dfJ1EM<_jML$zxHbXqB0qOE zW~#nc+Ws7f5_jm)+}&;}px>T%Eu41Qi)$bfSm->RFTT8(WGouNUGqCQtR?Y&1e`!M zz19L;+pJur22F%~$c%{m>l{UEVNN$&qu>Oli>1uiAdfa%`op2$66`HLLSH($`l#!O z754FrJKwmH6zd3%y`Q$CZ6Thopr3iam+VFK8)bEI7C0~C*voP%n%PN1LAuC#pxw6Q zT+(^wH7DvHI|L_RdY)J*OrdAhSKOA_OlEW(u;4ywqnSlC;HDuHyM;*CGEVq#w#=g7}|@)F8Z71>WyKEQ%%(3HYBb0tCYfZ z;RKQ1vS1c=%4VfQyk_{C4D?!%#tK(f^Z!fUe&dXlaWBjg=Ta*0o`cMeNAG-N09Znf~vp(K4aR^$CMCkd5-a`Go#u(9Rw*^G5hBPE3ydp7G#j zteoouG(J}6A&dRzU zDhPgneyQF3{S2Mt9kh4HzBv~kxGGJ$>df1lRRwaGb0gZXN!6wZwoxrk&|ONiR8v}H z!L|EYLW7&_iETH}0Of>1i+D_ z31)?=d0+~&&`@A#@GM`va96R(r6-W<)XoudG^F335PYdTWzP2{2D4h9p!X5I+&l!^ zHkzyuHQ$UWOp#|0anSX$k=V+W9))YfzwWpsvD*B4LrVTfvYwqYfqR+3mtr~!^eZ@l zGDU7TkME0>2kSJY|L+R)Torx8J)aZ+P5OklUW=qud}j9|0Dh_CN_;Z8|F*F6;L|V~ zM=>V=Q!PbG%cA{_@tGo30yJLC8^SuNx|_${5v7ayoIT(MQjQ2) zfncav&vErQlp*Sb1?^AUJW-1!-I1%EEA(`$h@WKL0O* z2_^v%4B!5bR3RHU8DNow3j4@ca>)|bd4HTm?{fUyI9IzUNc4CmG*%7f zflhTTrS-`tJm-D5Zk&q7&*T4AuAqyWowygA=$W0$zGv^So0Qu){d@Bfdgw~VTC``*7dTSB^&F6r)Wk?xT0 z?(W{CG)k9%q)5Z2ySuxkr9q^m{x|2G?{7TM3&s%MIqtdEn%8xG=2|rqWUJ5m#V_CR zRVq$aUl+$5cs4@N%o$DvMn?@c?k>-7m9b{>XL+Tu$C4aM<}xJzyZp7N9AQ(NFFMo# zq(HaHs|+a;TqvvskAL){E^B2e4Yg{i9(0LoX?8$g2`X_T4BwKJhnsuwoAlRG-TNus z_9-#YR<&e5$nhYouv$>Wm>}I$*qcNEx%CyweP0 z$$S?tahR2cZpjI!#|QCRJdnHAnLOjnWY&Jr8&TcBi&ZR=Fw3wxs zkcM!(AJoe0{(gY0zOuTS(#f5-M2=W+JQA7&PSBSwL2ZqOLA_)@4y^;Ci$sZiK8mZ} zsa;FTFRuNGHOnDf13k+=EM7!pqyz`1Py9NA_U-qq5}!(m$|S!xyM%CVY8)$+ywS7{ zwwm=dsL{8c)!>RAhF9dfQ?Jx~fe|}+!<;`;$3Y_P>)oi>^IL;iO0w%d$LWOC=5{K% z+L9rwI<+=btu+>!HxM2FI4kQE_O^<|^T*{{wGF0Y%Rx-G0`)Nj z@R>N5(G10G2PsJFUJb;C%1Jwuy*V#h@5=uW{8PS8FC0^Sm`#vr|hPbpj5-VAm9{pGFRzPB-sIi`EA8K+r zd4iP@dCYOZ8)3ohuwzsGd#x_C6zgm!Wn=byZYX!O{}h8#;WUs>ecrS>>ZON$5ykqd zS4fkywke07r*CvtnMg=|(>5v@#|1rVUKz4>cMYslQfwR8)gwqdS9aPMgsd@&euRsR zG{-|R$BM!iUy>M6wT9`2PL_E>a1bW=M|dm9hVnW&Lfo5Rt+4XkExtvb*c|jKM&O*W z$4Ks8(XC@NtmXbORBM<9|0!8Aql2cM@7iezp1zi~>_H-k7LsK+vAJ5{| z44xQs{7?-2;EUrv*mB(ZV<5S6agcn6&BA6qa8vuN!Q$slgj2yUFMH~zx5VIV;rQ|A zM~zqYj4(w6Z_eKyiBSLjZ2e8kuq@2PzZyJw=wvZZSIK6HJfFp+@X5JAP}F`q$GikfCBgKkuky^4;RtOS_#m_7;m5 zpYe!IXF)oGn!RslBBf5qj-BBYX51&tih)&IV|YKwX}mQ`d}f#z8G;jHMG(C(Ypuep zy4Ei%mBB>Fs{7`=_+iZ*P<%4%5ix)zCZiQOr5Zk^+Vwfq9RAkK%^9jR4#(gOx#RCG-IzFPX_G%I9=TyveXpBO3>9<;$e zoIMGwH#`x3Lw{026}`_nZ+MnGKM9P6fr@EVjQ$-0LrdfgKZERlcNd!m6p^l2HhOn; z3Yu@$vWaX=*gyM^bX%s?|72}o3SdLaRd-c*PrQI*zyAaLHn&8SF<_(AsO$m(eKH_< z13MSa6vRYt^al>Kd=dZe26rYV1e3w*_&UL!dC;uAf96AX zAtj~az-DvE?4K1asM{wL`G5&A^|%=q0d&9_6=`z`hk%5Q%_o_EI7iq)gJfHk0?A}sXhjY_RZetcv-tI)Vvkf8 zv2=db4B{w;_f>3zRjFU~fiu{(OTp=sMXvvAqU)gF!DNug(SoU&vN&%%QQn`T8Ov2k z;A%j;*D6`ow31YlSn@V)O%5-~jgTWit#1k&Q&9L{eWUt=2e2bl=xOUCURgzV(uok+ zB44Nz`W*y)2;`OP|E^wu#?Yf*6A3k586>`^joUh*L|=*Zy=Bg#@c2nojXHoT@Fsq- zuo0Jbo~Crd716Hay;lR&G}P&MWA?_Y2d&V|ymf9m9;@o4i|r4YX44P6q#7)>Jw2i( zPnX+d^mB1?ubxdUyKn!vlt81Heh>^|3Z2;R+P~bq43GGp%A&$oh}!;Fu(wtzP)21+ zaJAxoa5xKim6YVT-g~i3PDWl2vQ&dqT8>g$E(kv{T*XUY)i}(?H_WQD;9d)!)G&=| zLg1Xy>SVmKeA`Twz94;rHWk|9a1&~we=fghq7KTS6{5>-!Oq6lWbJKCf}Js899P#O zI+9_nusHu&C+oCg5^;&rmd z6SX6U=I*?+c>qO+YB`Ll<{K{Q=Si65m7yJv zo`{p+vuA8#(r1*30TGJZ^$tv*{Xk4F&3`===BqJK`5I{o6%m}M!1{491=1Ld*TIA# ztKF;*%APi!0(wGX!|P8+it;IuWm-+2lwtdVGy8^F`=9BY@9j$CYwcB*AJ6C5zL!2C zQ-vWr>yQ|U%itG!m&()&g|2wuHYim7JfK-GyvzFC@*b1I9~o=OE-&jF#LMt2L@BOw zb$4QGP)FJ&fbX=GfT#(T*QH(-Vlh(QmC}G{>o7-!U{%2gGfD7vkOoGFYW_hX?b4QY ze{P#`^}VVMm$ig08*l0tv$mYkRRq48fGG;dPWg*OeI15QN%>w_a(xMiZZMLd zz%!kY>p%24V>IJB!luZTUqnIs2c-82d2d4%g9hAJ1DjDS7zlVyS-Ah^t zkEG%9B3I}|kNi4p_SUNU)B5~}ZE-0~aZP-NIEL zfspZk>NjW{d9t}elN_HO50XpTdU8Hzc_Qd}t1vt-D5Ka0uR+8WhT2U2iVh@K(Vd%IsnXwnzHnCWboI}40oXgedNMUOaeu)G`M#tm^rle{-6 z%qlQu3NMIFOQ<(e_(37y%@TgZZA8#YQ0&b`cip#$a>MRy$5;8(6gETi2yO6v-S?jJ zZSJEM5L4(ss?q?Hz@Vqln?WJY4%>m7`DCw++l|om=Y>t%HB=SUBw083-U6ed^v^dfLhxaFfl+HV+ptP{V#0DEddpb@Pik z{I^TCP~jr(zBoJNFSGKTA>GDJkVt&q?f#*UFwkviJT=^jmq?g{FBkbLM}_ZyyCKLe zoD8J1r*`KNlmU`&lw*iVFLKNqcYJ3hjjtFc5buE;nF)Tnw^0Yg0Mprf;z}&by&}>c zd?$zYIs1<6;NX&$j+sWp^Husm>CpHa19^*n#&A@_!7Oh9uY=?XYX{(_vDA6{n;Vqe z@teEXcM@ZR-={An1pm(DpFrV^?t^Y*81zJS-s7J>C^VXa6d;_4RliM^3{v0Z&TWq3 zV3Z4^<=U&VPnv+3>=%Vm4l?P8{2@m%$W?{oG+l0lwRCvZ2UibB(uT_@*ub?+5xzIE!@z>Tk z1dk5ZO=pqmaTdG;F~#0nIfn2&UvsJNDzRE`k*lsYu--ObP@=Y@r~1QrjHsd@l4IM$ zDGsn>C0KmPZX${H$LId?ZTBPl2-esU>k>mX?+>e(*vHP8e9tEb!{^MST7%c0tptlz5=N`IF&vZLibs{Y&m9{Hv$KV181 zXsVS^AvPydVTd3JZ-2^7TZ@i8lZfofr8SgJ`u@;y%Nzy%*bV*=iP&v0kn;7ADMFd4 z2s?TIk=rPon^z@UNysyzV{!{|aI@-{zsLBilXtfRU$~1_n~|i3{Sr9n2M5>WZRREI zh8U!4#!NonF;{RYSe*WTY`t$XR1C;IRrV>4-2WXW-qcHbqH??40<%{p7$b0oS)tfW z9O8--_a`}RZA5yal#-G;?{L-t^7=&F znu5SyjoPG77t2vni!el@?@;`LkM4POFIpOMy(dM?xN@#blzu5QPG=cm&vYQsGDOsz z1A8M$bmz{CEY7W?R5gdYa(RegCS_n>eBxcV`1`1Om&<5mg`NqNLFI~UErF_~w!q%Y zj_bP&Ud4CyzJH8>O&fmWk>(MoyI1EQNV ziX^PK57UIwEykn^i>VxoZ0K^!Jv+(cTWj%xoOK?t?}LqVV)#Q}y{r5u%L2?;bOJ2W zhH%q`yQ&!W&_^}~WX>J(!9_9Y^0s%RLEj^CT1*Uf@mnnF#l6T)8X+R|r3s-Qq9oFv z)rvO{EQL2W(*^M9ah3~2f@khn(FWx8D&VxrM%Z*UWuk@6y7O4HEgjkK4;4i%5|%8w z!5JkQXVIPyrYt+C&bg(fl}i}g1XwY)I~uEs%Jv3pJ>XyZgI_yJ{YmZ`G)8W$I9Z}Y ze33@g?ti4CyiG$P1kxV{ZI>eTGO(c(rgy1<8R?d6qxXgz%7Ab&bBY;bX3 z1ZrMzS!4?8FwD39rKq0ggg%fpTp!1OOOrrQtm39E?cufCrCg? z`jSh^Q8Ka4H1j~_5vO}`8M!xUGO+GjRkW$a9uoPb--yzL(!jgJibj_YtI{A%a0DMC zi8dop*ofwdL4z1bvfTLsa#s#ff5wU?(umcf^LL-0ZYZ&t95b#S$T=0MZ^>46f2~X3 zIkrh~<=z_9i{mooMy$Xe)vHhSY=12c>$*ea=K>9(M!(HFe=y8Qdzy3zrv#WvQ=EfB zTed=`U7sUAM(ZPKm-6nP2C+=0uTEF#0Z)RJva&OwJqp^*6_fq3kH(O0VvbzaZO}FU zR_^5X(ef>1{>qqk<@S*oCgZm$E5Wy>wpU7cikv+h&+bVoJnAMg2Ekl~D4L3|QlJD` zO)E~g_B}~WB`-OCooJb3MPGIYobQvx?tZJ6SG~RillB!>ZXqs@$pj-!SG{t34(tfy zFuh^%980H__-RHx1U%VWfrz+Oa>|1^sRQ8<=ac(LG*N9Qrk$boPv>@+-;5L1TVZ;5 z^-<_7;>bZ1l7W$J6;UbR=SLjQqX_TS0!I+&8AC|27p8nxzP=EL_zrjPNlhfHSuslp>qgWj>kDaAoAa(rCy!Sl{U#!bF z2{BnX_#1lpQ*X1Kar3jT8!P+x$yxeb{97>b*TfufQJ8s3?u!d@Fg;gz+o&F?nVhB$ zf-0lr(a|#Eq(stFt+`}{&21oVqI&;&4aG)@hD$IO`@$+5sBDdlLCACKKPYS&AmaD% zd4x^aJu!W$f>PKQ8@Xm@JGeK2Ev7+wsr3_Ej|l|J!8OIh*T$*Z+Hzbd&-4#a8b zxtu9baRAOxE+8j!-9vrpqMDHUIa44$)lgXR6O9-dt*{E)#5;}kUf^Pv{Wl^!c|bcO zVgnRwHQFS+#eZcxq5`;^JfE!Xg(SpLuuRQkdvn`+SaQ=dmaxgbS2U{CehaN*-51j^ zv}GY_^y%g>hMT2hsUE{kQa-TrjhKfd1YHBKrGGK>L9d7@)Y3D@vnQ--WN@~ePsq{@ zp=d#o+cR0cyJRcg7+P~}xLB4F7F0Qx_}QbB&w2brm|yJBnJx0k_SiEaiJMTfi{5Uj zl&!F`KS3p&!jhtXG!{>7-c(*cn#uOnc&kf{HACY(K(-uyKp}0&+Gz6#r)DAIn~S1( z^BLPuw#bmE?ASg~>N5jwpRyE;m3_nx!xx&{IqSvQb9g#$IcKw^A@)dkPbzDw7N;E^ zqv5jt3{4)gk(la$7UbN>oEFO*IuH|^c`f5rnkw0_kOSpZJ8Zry<^rLGD!&ctz_|GB z->k-L2n{8*1Vt#^8|e5baZS84q+rThs4+ou?*j}7G2v6|n5PR~`Rl~vX^xqC69d8O| zSrle@=T3q9Wa_*1k+KtrV1?xA+AX7El<)dv@26Y-Gs`r);2f# z`?@hLCpWY?(TxYla0d~gRKEn~U`PYuJO$lAmh<$8xe1p?&bvG&qktLjWXqyl>R6A< ziPGuLi)2&KH!*z|%jTF^Z?+)2xIefa!%&PB;);(r50|DNUDZswcYxcGyHwh3pi;yz zi=7(@ir{vJ#V9Nh5S@|Z1)|ha!)B0Z;{LA)prJTYR-2rlvDD?o3RP-7UzM`oS#L($ zk3Fi6sp#alz^=HsYNWACg~-EM)vNfL0707nALe6I4>vI9U2S7!&b(Op*$g)|NUxwH0wo1ue4jThC-4luhJ&bNQn15u0B`7|vD#S;BDpw-+qXJ z4%xN6F2Ed^UD6+qC*#GSn^v!WFy0hg_p3#$pK4^el%<0XwlDb z_VCzpat=qnlv%#T%M_DAgBU(bzVR(oUSw{QK|Lw4-#Q7?Bh~vFri0%*ld3VL-gAuy zE2Pyd7>^r-lzI_Y1WTaQYy`c#V>tC z_>P@?M6~|)Lye`b90*M)P_O+Ic3*5d%C>5MUYgY$cgdhlw7R{K=FL&GFPPKzz3C{D zs2ub9w7O#**seQpcCgtvd4k*t|okCNW39QnD@@;YZBMLUICa?V?QTC z{-tpR$Li>4(-mjkCo2c!LAfB>Z&de_;=OpZ8uwcN#2SyilobWDU8p?*F!ew*J%q zN5FBjB11ebgEbqiyBK0JFOe4dLCcj$Haq+Ou_5k!3?#X5A@8jN$$Ci*{J&Nz)^DOB zcfuCyel|xF5FXD!yIYDyJ+0vPAuGCP(bkEg;Dl zVY4Xj%jgL2ot1Lh8SBZqetjLow>V8=a=O*SSr@cWIXkaO8O07PBJfl*nBQ6LB!rq8 zL1Jm_x~gir_C$+gRPQ&Z44rG0dF4R5Aw}0mF`MLslet%R`mMxav9FxkR;A*)b?$1b z6wLZ$98(pUmm;ZJ;4K4)5BjbOaP0Q@w*^t+`cT-`l^nW=o-WMA;R}A_#rE;80oBVv zqTSC%|1YhI`q2hQ?bwef&_6oXysx7H_8|)qmhTXAm+->_1<1230Oh`MS8E_;$Aklrt3IF7IW22D$-CP7KgFU@x#pf@fS`qUccXc zVVrEKF0{Kfwt%vdjLn#vdRr{(I$5i{RECq$(rFqg98bfPHPyIY-NgB$sq?H+y<@-C z+Id@w-7G&zuJyZ&s_Tuqd0_+FlkK`wM1b_-a(Rw&Nu#5CyI95`?Obl8WsM*BWQttQ zq#|ZA_9KS0523=ZzL%6#1O%M?|MI~vh{@o__=M}>t-FJeCayyld$R!;nu#kk656EX zG_zXVXni`9I-0mA>?tGU-6bcV^{h)h9++NTYq*!OB^#hW2{#E#q_(LoD2lygT_d%O zPL!*!uh)|-@%ACl4Rrza>*y?kUF-9*vS6h?oZ}-y>*WSwz2S+!tJ_BJ*lp#4 ztn!#@esRnxio>Irh~nR$%9e->NDy5FMR4QYal_|+eWiURll)5(&MNP;m4%!?N7Ppt zCYVMyq(*6RBR(A8SB?vx3IHlJP34y$T(u;wdm5woD^+{PWbeGO5$OooiZr*zOW#pd z;?%apP_FP3rDvLHOX|L-ipv{Ia}mE@l1!J`rC+Chr{Z#ewzM&lRwwh6=@mm&3HCL9 zTan-*-xTfqhADBEsIp?V z1BWVb2*Cenw2iyw$7Q(MM*n1m3dgs+w>^U9b;Bt5Xu!~OR@%kpfLdRjtbcB2_kpq2 zt~gYe`~$E>7>@cn$F1e_!cXe)oE|q<=HOtAxI~tLp)lS%Bt$(PU-(@}@$;`o*yHB2 zkg$j^rQOz}`-Ea+xh4Q>AZcE;68$0s;~yz^HS_VIPIPG9lEim;qpHk~&~nMctB0PDsTMTUm~d2S7_p-N-e6s0db+`=&c4%* zWx!-3VoF0X&-+zK!n})rH$Oc7urxH{o@Y3QQ;h`xAi*~9w&{QFa?^0UtN}ny$Ck9x zT?vq6(Tr^j71;xy3%C}K31#r0Ninmi@-61LhW<;6qEOY(o8R_aPqRE59|~Vw>I48L z1x&G|8sah2x}V1TEJ4k9%Y?nxG5TwX#noMgs)N2P>SW`u z!@2x_?w(5$(j=_l<^7|Zm+@X!`A#Zxw^d6tvbRbQWDE67)4EUWuSDb#kKEM ztwK^8cLA^mXIynx_i3yO#jKG@w#>UR|CRGdkbE{m-}5$LPIqM)#vGX5tNOKXaUjkF zu}sTCF!udmbl^DubpLJcNMQ40s$WILn`SWgNPWS8gmSe=%fXy**^&1?V9sihnNKGc zRsMC1+rP$_Bf8qNy84$I6Zf5tPIS-jlG)?vMH4^i2#Q9_h7!E8`Zu?heDi~BXDu$h-D?afbulRMkx3XqgYNF;&-&tbfs3V51+vGh3 zkpR4s$UR@}-m&Gch+VV&aT*3keC?$X8Abg_1;$>tkDD&`U5AUIQ;k9IWR6(VM%V-Z z0$q#deY%i0vW6#@q%W1sJW?MxdufCUHi~88*59I_XW8qtE331-#W&Q4KF%;`Rm)MCh7|7l6#+zO+2Aqg2eI+qjrv6bM zd2RPamm}vL?w_N!z3KY#6s0h_l3y8FXmiu~r0h(`D^8$P#fo6EzC6Ee3r25sHccZY ztzzCl?D;GmMtt`)wI8g_DW+~hgZ{MyW`@miqP*}^Vw{l`GkKc&zFP1$-TJTYa(^{{ z_>A`8wF7%P+`xE^V9(G>u#U=CtN@$mToAcCT>1E*a=KAx5$ z(9tObU@JiI^?+MgBH7g0{umznbwsY?IjLy=wLQs~Ley^%EeVp8ZE}B@uoutn@ed_~ zXT()R9>aTa?NB^`ZI*yS44CYx9?0%wqGikY~GBM zt80K1{&t&moXuuOmA%#?F-s7k#gyCP$WMM=Ld%|^if`VeUfrnPK7qT>Ug3H;je(Va zOJ6ZTt@?J!>I|{2UCA~G2&I?+y_7g=E6rX>K2;M=sm3SMPahLLmWHycH7ZxVd}@C8 zG1KBMJ8&QVek&cW}di`hPiNMNmpWOzj96AS)@Qu4%5ypRze2 zeL|$AzI=2`glzmNo6?3dHtR@OCpWB%f??BBuG)s)X&r4V;%Wl0d6UN~e+wgr#HuBa z^fEu07AsB91~8|fQnAm8_s6FyH-;!{F}Y*rq;rGx--xP>vy(qy?xMVf;G`%YoE87v zO#bAAJJyxm5K-{wEsCN+h)`uvFEm3DVlh_IlU*#z=^F>06mOD>2ALCB6*U^@fT8PT z8L-xb)i_C}bY-8-N$kCKtAV+z8IqUlSo-BLoWXFY>Z=&Q) z7>X64A3Y;@YyX);195Zu9iquX_Z{`(FUTRHJbWi;XZT zZc&QY5OvV7rwp0M(7ij)`lKXyzM>?y%6SG#S38u>Y!yoJu2(y-#0jy?^UF`5n#ay9 zIX_wfTj}Ip*{^UrY``%YX+4)G)w)GKQu*c)lbQb6E{I=^=kmk`gp*U-i6VOxNs+@q z;M6PuHHNMoIZVcJ7y!z?G%J7Ue(*qwK58Hi^3vnkMIYJk4eZ-eVZ4bx7tbo`H4sLJ za`h~6oFC9&k_i04^n5Hr%e-P%RonlPP=lAM21AKt&6| z4<%BSKlS)nAN52CUVe|YBH`pu3j&}`}>Hs2pLk;$@+!Z0(VKN>1xsS z(8+8L5G%=`6EU2h3e~sTS2)%%Q)PF_i%37Ja5;@8Hi9TTd9II%wQ6muEX((8w!fMs zkMB)cuIDeU)H$xSnRL)6*40S1@FURHk_Njxhvx}5(JXgkwhJEZA9;9PxQpOZEF|#T zanSV;RN>4U)7kxMD3<{HTy0#iD%?9Bc6frJTf~(6TqbhBmDEGxm#Qc-wfI6sjA*%V zh?3%ygu29wsJW3cYH&YaCguLYk8>lZ%3S)e@h6J?gx5u!!{c?kTQ|VEhQg9VUr`I> ze++PaD>cj4iK|A=rkfXIF}{ht=P!S3Xx9R9!c>>>1bEiRZUnwxacr%s>ns=WQ@igv zNib*D&nKaBpT#bS6%6I7OgZ{Gf_LoqI{%($_3|7CxMvv)XF-llo1S3iUpA#Vpax6Z zw1zwYC3om3CwwNb2Xnmo zH>P#M(iVG2s})p>$9W&O2^i8c zW97f`ujIs|64jMRu=d9l=O`brGKd`F|5RF;DekZ-bi8`QUQR+vGWA6MD^cA8{2tg& z|6&4R-wRL-ObeE3Lb$EFW@0kkBM@tIjJl7DnZH^J`40&OTmyf+C(7S%>-_G`!frP% zr}xfC)wuA%EQ1Uvcn=qH+Eqj z$gan?9z!(Uc1x2Q_*Z1M3+mUfsxEjUvbWpzK%uo;qZ61aD(T?jQz#9f9b|}lr&-KEIME=%<*)L$o9B}Khe|5Rn5yXx~wX99#X@eM?i@HV! zqa*vIag48P21&Ql4ti(JoG+Ei08&V*?UiF)Cemdi&@46}Ast2%1HKNh+pegf%SMX|G5IMS`LvneCK8uIjh_FS$BB6v#ekEVNO$pB6;^*;7 zmFhNv-@c$>wJN%?5+!q>SMhV%Y=NI^_MLeiIbQzk1j>0ttRzJ1m~ z4}qTk@$IvmyVp^0!dv9@BD8F-KmNDn(qp}{n(~6+yp53WefMEJthG1^WOEtiC#tx2ZnpUHr3uAz7%8R*F0GtA(OL-S2!6C)7IA{{dMwR! zKA6M$EkL_XXvk!S65FyaF*Auqp9Oi)tzrXHG`3r<%M;BYxb zM)~?^f)2U9%qyS%Uzujks?Y00;6#Y?&8@$8#S<1mH7%~_O6NikaYdB$KowsD$vA?>lpqjBbJ}rQ@@HufbY59JxF^wo7dx10_fxgmy4*PGE@fjX zTdzL#eYSQ@5_>GzYssbl=V-~Po1l2hZ8>-@$)0JiY%I!ET&9oT&Kq?at7wo6Cju?=Xy5y-W$S{V zgq}ZJoq6J_@2Nyx<9(ubz9<cBmqCxEYBnfD>uFBtprl4{S7%NXwlj#Rbe4ZmV;ORlG z76yu=`}MfM9ejtZt5Hw`IO57tz#|T1HNkE(E{77h)1asFafk(pd&vKO!~|x7ps=s~ zjfNbr$5GIH4=&;aGoNVb?qQxz#TzOHfMC==7?W??=t2l24&Se{{W%tR1hyizhFK0= zcQ*_t0 z4g3<1v21Bib{nd$&nw9r$@KCR5op5f>aLz+a|k9+#olCXj$9{&Xnd7c9ZfI>3~y_7 zfb|A}_z}$Hn}~TrU_J+C>&i`>0vg_pmHYL)(-~dx@!nL6FW;BZRBL;97iy z^b!_v{Avdc;Gj-m!Z#X|JVmY;&M3%{%;0x{#tL`qB-)5oW5qBI(mjb4YD(+`C0-Xm zG(BAnV+$m%PiQ7lE@i1twIlp2;gMeDv!b)S229!3xzU^k+b?q1nu6>VSU}~;WHb`R z0=t7p9)91Cr2m;cs&IUdl^wRbqbn$SDgGe~8Q~UMn7+^9`UqbOpm6ow7No70P9fZ*jwpj~qS9THAtB+5-0d zO+AVRGtO<|tRb68T#Xf5kBVmpjoR@xb^u~+2{@VQ?(C|W-xx_cf1lJa3 z4B#oXP>!nc=8f6Q59tqR-!1dQQ&sd@=@0x2ZK9-J8-U`^3Ep>$@U9RYj*7Re{_Elq z;YG8nOwC~2aeTu@pZ-$;ccv>s^Jo3J|M^s8JMhd>T=>>9*zo~n{fSik>2DyG-~9%q zsK9TFcMKY4CWC|&Fw1p)yL#%-bcWyc=a;Sgh?4=@(32Vf!)E@my&%Cgd_=!aX_$XL z5&h%N+n87r$379?s$;x-|3@$rp5yoY^YIVzX_rL#q&`{I9OxWAdz*6g#FvvZF+R5k zFb+9~H`o156RbY-Gcjp*L?1}~zLZAQJDEERX{Okvf=+P3d2a!xa7!n^K#QV0xSAmf znr`V2vP?x3ZDFsBD@C%sb+@Kkz)>(AUQ-mlJ(BjTG(>lNa?Epl^b9_GiitxHlpH_+ zfbHvNvOn`3m;hD&T>P@LwNqFJE%gCX@U>g$rk0vAxRNGY(+MyNABIc+9-Ynt$eWxfeN*w;LhH zeRAg@*s46B@FBMsuUc02)wDN|#IEA~0?dB)xI7juSJq)`7QnOlB=xS=4JN&hPSyZ_bf3Ul3To?SB9^K$Fja?{2Pxj4AvsyKcUNo9Y zXXrO&-jKT%OuAuR_Y~SK^zEMJBdV=4etkj)iMFACHICQS+;zeU+YQ=euYbifaRJ(z zg3SSQ0nUtSgwBE9?|$Ci(-&X#Y*D9^Iz%cuNeiyIi)6NplfQ0 z=jO6 z(vT!+fHJ^qPyhr;0oiZ8Kj!iGtXEtNd~aJj3_V30YktLfA9}(|eSC;EDJdLn`s*Fz z9V&`PCE3s;tHq7|XqK+jCmLz#GM+C?lj3X4|Fn5>3rb2`%S>RZj;utaPkyjqVZSG` zll9m32D~e1Qi@%s69L0efupLzvEFRqoY_?_EwvPm#r8DV0bt;FE=_gb)GhVPFRclT zOC5Opg~6}@3r#AER4uz^m_*w)=u(qLGjbe2m{|Ba8ho152v=WQ9`*s1pRK$s-xGt* z#lB@Ty?Ck;F=rZ4U22XASV1{XbtC6lr@6XPXWoXNip<-~M~)JZ}c`j(X zE-x2+T*4$T4AFq+TMO9o4C~#%&0zN* z?^X%8K;@O^@BNhJPOfq?^77#vC-nJTtm}Vqxss=@m0p5cYI4omO@T{ zP?F++so?h4njT+A*=x=0`V#6;T|FrJN0}(iKPDtK!MHk5#Rc1>mslvR#Za_?E&uXo z;WIcFOblc{v0g(3O1^uCiF5>{;E;NWPjIn#i9a)Uc>yt}2kG_R>0#FICs>{%)FZ`cq{Hv zGyNbL6V1#y-&mD&A-NII&=ClX#Ad4wu=%eA2u#P#m=3tbixm0G9}CQEJ8zT;3w~Tc z7u`7BFA*B|an0(z6TwPYILjRrynNq+ptHQGCvY72pl`9N7E5>MfOU*+Bxk6YXG^z` zk@ESMR!CP{iueKn7O^cAFGnNy;4ou1yrzVw7tSjyiyQv3A=_%I(sYaEBoRg@4KhRtG@zO#TD(=(|L2OMLC*-QXTSG%8-nE$+aYpp#VoG1q~cc+JPHj*WDd))=)_W#61nP7MS?#T*u7&bhyNgn8h%V5@2$(azhE@7 z5zLj3rRzggAA>}6Kh$vHj%|pntQ1 z>z2Q|TzKTm?^z0^%8yIRBi5QOm3FJ_{@fb+KJHVKu_~7U$-T5i%2(ic9xdm0t(Q1W zH6o+OUA%t))4xx|&G>LGf$g`1Agh;%-}wHM9qLxU;p z_a2>^#|P%M@O(Fcxaso!y0(Ig;8WDJKHVh8Hy+VgaXlVGs&V7Nk}>#ml+E+TRV_4baJB5u2$7NcaR-xDf3N6kG>q^5(G)_tZL@SLUcv7cP?~D9-9r+=))9+V# zNI%EBDlRXq@eoJcO*zhiJ5hVVTURUCH>SiLa?9KSmEg60;-va`?>GD3+iC{(pYJnT zs&+>$M|bM{JUAgrNqb1&`wF)Q9DZ#ni`7etf`KAomhM}fD+a*`6b-T@eeO{L0{(QDBb*v!+|6-=C<<4qlt1ctY74+) zYH__uz)VbX42N-T>4P8+zE#G3@3y+9aFM638GL5V$yg0#LG4znt~T@Zw?A4l4)-QZ zjfcnY=aFas8Za63fPgt)4M@iHGvgFALwrUDEB2_0|HlhWMQI)D=a=9NM}3499&cl| z9-PYOIy~})WyRVWX=wD?NnE>#@HG@OGKx*oZd^vlOaT2?dmPtamj6X5x1Z2nwun_w zxqo~6t#$vH_rG)B?%MPLqUAcoY2S6ZB4%QS5r_=w25dAzCHNR6uZl?mIiBhaewz0_ z$6Yh^gEFunp=L$NB3PeU6*}`y1KGuBw+0BUdT{OfaP9iBc|X)PM4FZhFEPp9ZYMfz zm(TIK;F?P7$MM;}>W7ZuP1~?VWm~3SQJT-046X;WX&x+@kC!E3lw%hZY7X0R!pw+E zW-yu4X)F-QkNe_r`{3((wn@}V!B_)$@2BoZChv?P_}#ZL<+ zbmb|aF>WZ#eU&{{?*C)zETgiFx~=`t(%s$N-5}B>pma!=v~-trKhh;2A>G~G-QCjN z_1(PhIcI!79K)ZY-g~dT=A73YMB-%T0$#-)AFIz0vZ?z)sks&C#_F|5-!Q++)8n;e zx{AcuOL5&NYJgq5er&|te+cOg`Us3c)`ChQcT~S+2s^Xy$KH8C^B}Bdl!&WH)?;k` z@k^o~EEwQL^RrBZ^Eu1=7xd)ibDBlh@05lLF!=Rn-TdwaOoPcRWU2pbcpOMi!Vi?*EV*iT{0j`^OGhfBMcSh?2ylI|U}M|)(C zWX4lsIGrI*O8~Ya?>9x(ez3NZsuc`8{VtO18kx-xYkw_+Rm{|zUW|CX4#-5k0qxH& zBG#R=F)-OcNMDe-YV6%21kghDS?agenWGUNuAC(jho2C`>nkds%WKk+2W}uB9JC{( z{+*{&VjOgkT97kTuW*Ny2xZSYZMyot06Urg&8Ou9A7_K07^C+Fbz=-P;CK0be@qCx z^?_Gn(ytluL04fu^l{R5$m%3`bQ`J(_sD)25N`O@*j;m_VLT3+YuEDsC~tM8Kfq7TfQF8&DL3pi#-Jz&flz=0vBnszqec(SA6SG5 zB@gfPXj3!c7B4$mv1-%uH+@hlbGyESeqas4MBWtvRfhuoTDYLHNsA4|pNdrIJB~80 zv97pQKgDJJIBGsg^{j=Mt(P#^1*0l)u5NW&f~CNrAHP8s26Y`8HlObn)(7!g;qOAF zh$N0GlIDyVixR%cgSeh1GBoACxQbV^MD*LVX7?Ji9A}ymZi}b-ndbx<3yC@5*z|&# zt0;H@LX)`1Cc^8vi(o;^1P<~v!D;Mb)MYga1CA#-MfG@4YfT*w=7%1S{`W+JhA$S} z1a!sSru4U(>P=8q{geAkVF;@BMz8Wl^i6rJ^OFk_uliJ(ZCtK#zlx2%7_=|#*?WLw^|)vK^2O@8Eq3HIpL zov%pvIIhZ&i)0V>g;&BGZn1u!?-IKXAgtn#9ZYef6`4-dE;no+c`eHqG~7!^9#DUZ z&{~OR&XQhjmria8My$VOoZ5)qhkt>pI<;Z<_a;@-m$cHeN!pj6#`-%%#); zv}-Wa?83VaApAbGzWc-cQ|A8n3quFImfAu<6=!XDiKujNi*KkQ!1ctCi%>tGG0xhs zLEJp}T!r78GDvFCO?nv09Di^k7DH<1Rsa9b#U6>=&uyj5gTUWbRynK4$iiX>KK~WH zl+e8btyptTw*G%?GdBr|2oqya<6E=t-x2$fGi#uVZB;%!Z_kDiIN#(;|G11tnU+gN z(W+9q?#6(S5CgkLnvxdX{`_48HCFR60#|^-UL6`O>v8dErJ$tziE)v)q%*ZqA@MKT zHw7>n7{u&kO)DlpvO)x9@im#FnBDxlO1eIy4R&kyRNaP5F->&^g!Gb!YSmnVnr<|s zjfmO)i$Y_m|H+fc#+L|4-z6`Z0bHzvxSaax51|wg6d0Ldkz5dhMu95i4wf;!>i})G zz{^MJX>-_2vt^SWej+|%PR7q{d^Je8T;1Un$5J};P`ei}vPaaml8rq?O+~lZ=#AO+ z#A*jOS3qdkGDjaXOvzixvMdC#+hFfSx;Ipx?d*zrFD`1FevcT~S6lOBBMQ$j|Mlv$ zRmi`TW3o(a6S!}170XkFuwUUpM17NiZ#+j4M_fnTU!k`TVW9_7Kpc5IJ!#dZM=mnS z>V@J`>6`r8f-G;#{PS8avdCJNS##9M*J@K2uP1ey#sE(lB&5HK$M4#wEG-RZKnl1{ z&(oh@p(QOR5WNkY-xabntYTFl-wf&Y!GYr6{#hxBzVOtTG>O~RDhLxtNU5(>r*iE} z#P(k40*y_tusa<6MP`lslCV4PsjR2NYE29{4K^%E zfL7{>lZuf1h4fLq6voQCmM6D#Jlb@vNL_53Jf2oW4p5q8hn7dmN1WL5M>`WeXk&zL zP>4^A`~WbKglnMrA>JuPIih1MI-_zyVp#;~w6jS5K3aMIXJudtm+=(SoAGy!>%Wtf zd8T)6S)4ERO5vzI{s;usQY8xfI87N(kJwM=A(l|(9X9Gi#*10paNr}Vepeb(!A|zX zkw+sN&?$tlGHs^t2}a<__M|ADobOhmmA6liK*h{(Iv!(8Rg-jOh$PG$2QMVx##!ih z)WRcHHZZc$+I9U~3+Vi+7+}pQk)D=^srxlaSnNsa4szI|8b|j<6O?**CC5m>*d2VR73-l z?(G4MLi`&0$C`A%Pe&tx(~*Z>l5>!dlA|1FYfLAGvmQgI4zfo9{{|xypHuR75hukz z5!@=fl-vlT_VW_2H!67=TW9)Ec5szNJk=tTiGa4bdM+-t8AYSdapY85vtkS1=Wd<` zf8_`CW;$IF`mmI>4X$$!6oFsUh(c?lG!?Z#v z&lUbM&*G6$8`kCsnf;JwYB?V22u*Aqc6oq*pM(GU2%i^K*rTr-SY3!RKVgIMWig`8 zkZ~ov`UmgrR>qXJpBX-b?m8mcQCg`)y?hofAUKl)-c3V@S*C}ZurigQmb2^ zk$&2ZBXuC!M`sMbpSrPqC*1P7lyv#+1GHqH|E2Kd!!P5bwDxL1=9_XR>1E-{fr|iH z=xd4bbj}f6Go>IQi)-@C|dS-S0CD76vDeDa#*s` z^Pco``;ZnTkWe}e8CKc4r(O?+$fn$be_ZDEV}Ii^&8oTDYt2Z}WYC;~EVo;J_awdJ zU~9dISIJWc!~BWSk~*|TkThu4eK6W;QP8+#jK9SsCe4qAmYw&xS=nGe7S{2{d9gWd4p|A zZrMyaR?`tyeLf3+f3=>frT0oi*~d&v?U@)U5jCcjyn-lG!)y{8N`Gt(0B>-{t}8YHoo-&zG%r#b>O)Ne5AXDhIf#?2mf`w;_4p6U}VufPtir&Yz z<&8%d+J5;anYC!Yqtw^wTQ+%8-1AWeP4cw_)2)8Sh(?^R^{ePVzi18dykx?wG0Kd3 zCxg>N2Jo9euAK@@i>OB9X^K{Z2u%3$?B*q%vFb`jmr{`j+<4PRY$h|#kX#aDW=Q;B z9T`EX4F(_{i1EDXdbzaeIwPeb+R|^R@0MrN`9TuP)0NS@J=?C7%J3s3SI&o9SQO!_ zT4>Uol3Y5;f7r|w;PHJ~r$HYTbtdlHmJRm=pCDM%`S_aOlx?}fJz#7XjZ#2Fh z*_zF=M_?Ip=ymg&DRykc+>ugR!M;~I6&-L|w>PuJWC3`(Qdozi5DGQI=&K_;$6z#7 z%@g8<6Ix?lB+PJOa|W=JN=eFt%>C^J*J9}`@qRNC?H@-#%o`WyP6{8`7n|meXxDmy`s}moi4}$5wm19V zj6nWEuoQ#^1dtOyzxq`W=sI3=@fb!{p5>p48_PMQ!hl*q?mqO&;^uOtzjy}3 z9uYJ>jsUl`Al1$V*`c?m93QhcYFIUw)*aM!P_~f0B8&aC7b}%&(t~!y^h)FOV^m zR|)adI#LRKvUkGibw;<1*8L;kELsH#H1;ZakD5mQ2(S8VS1zv_#`)t2{*>Isuyptl zfj5BIuSDr-%j?=f`Zm|uVj42YlB%5Z!lE#UnvmL#BfUp3Vp&{ip13_$)JcvL)Knj9 zu^c%#>o=(t)45m(;tGMB4w6(~+C`bDdG})vjhQnyJhB7Fq>ZdJ#AweP)mpWwFnk|( zhL)w-5dl&dVnxbc?6F(ugA?iQ6{`?Nj=LASmSO>7wxw`|lbykT)c$yciJUl2jBH6I zVTCJCbs@V~L4Vh`0%!~WJ7>S!qpnhnY`tIW1Kg6e7}>k)4xty-ndUQrF*l(1QvmYa zdEEPG1Tls(NCNEcu~(mjG;rt6i=PF2GSz4|Q|Pt}A#1XdzVv(BGVnFGKrCTPI!`S< z`D%UceowhMI7ljSYkF%rdpPp#a09iG(w?KHs?Mfbu;b-ssklYD6VQ1h_4K=1aFL4(qMPA`bs z*8fs{%VzZve{Kejy^)ln+KpN=mqBLGppWe61#ikM9xQ?>@kj&<;Nn`nA>iqYD|f$l z#w}04PhiQ=w7?k8<>QGJt5!{#sB0tTh3Q-3>-pkM`Lwv^$T|_y4D3EnAywPFpf0% zTX&3)(L@@3X=jpDZb*`nuw=UGn1PM%~k>Oyvkp6u7FG$1UkSlLv@?1#1+XtMg*L3?=FCkd#?1Mf6ZWmWw^!yTG~z)&XRx*6#uwMCq5~?jQTqi zy!4aSkpi1b9-;C(k=Y zH3k4ymPp9VMgl4!pyN?JW>PC+@N2{(ki}^ffX#UqdQahNAC3M8J5if`>@^oqOo}Lm z`AvcEwGBv1d1SyxWJxYcskEsG>6`pnB;H*BEbc^HF+Jj_hU}}okI1Z!WrO{VX4FqA zjbpB(5YD0ta4x5ex(&YAxg>SghKb?axooL+d%Ey24W=#+(h*uEFZ_zU9$l(QA}pb&<{)9Y%Vhx(}{< z3h9>B4rWXpziN>*ZmlfM$F$?GhGpm(X#cpiLQCDQ%mQ}w0CwYy=fzG#Z9OPW4RY;!$CL-fPl?kZHf4o*$d`}r()}l1r&-1 zW$8=$QmRRG`aaUEPIlyudv(q$ZiLa1x4D(e#gZ&*81??u6efudv{>3`w5$xeSw2W23p z(t~TMlDNJN7j^y9mCUgb;ko;cQ|hLl2+)t^KA{y6?L*dumkB|P)z&-xWfs%bGcYd3xu%G!c1{*%Kj@UCyyNMlk{HIN$2}sc-hd;c2 z(3{S7KXO%eZ-Bv3+AjOLk74R6$?4?gE&MnFC5ufy}vv z*E?k0_dR6s4?FD|xXJb@#6|4xE+4~q0K4Y67oOQ-W{gahcFcCZ0Mqu7Y-ST~|BhZV z?P-t8G|Mrj>t=dG+75iPENOd4qJbZQ33Ug_el^);C8IVbDbk8?FlXtGt3-00Bhb|Xyg*5Y<19&a zdp-QF8C&TbyDl!&iN{ts|9%&03FPj`~s z3M1hH2(SW3TFA-OgzV-vYU!(?)Wyvije-^XGsdHZJt-PLxvkL?ui@NG4#cDT$d)eh zLHkS38T$d8=1TPYVVd;PT4O4heAXAc4B;O?Uv@MpeGp0lU|~ zs*8Y0QV-`&3*o2&+pbr&s&-w+DenAsLA?@kir|lA{;wYnP-R4VdLeFrG0CMlmFidVW_>4b-Wa&I*JMt>^wP>`^$K(;%6&u60xHZO{_H0$vm z_py7Kn~QQmOvXzeCyFVqn2!`w+g!6uNrz*AO?TElE523`=nfLf5LJQHa{Me%F9xM; zYU&@tq<&#U`^5N}SLScyKIzTB>#Ga*Vwt=%!=FDL3{8uNZtJ6x^3-0;;gk9b;cU)M zvpH;HnkX#G^+gIV(AZKsKSIRYxr1vCLS)l!xyr&q*kTsM_j;i6VipH)=!@C*%lgu* z!9gR7Sc*k?-`Ay|Uxz=GXZWvY`H7|nI7DPpK8;D_t$W1wOagNyKMis0c$&Zs+i6rW?G!rccPb22Dx<7M?LR6opi0sg zaZ(Zk>HV#e&tD>Mz{hDkz6r<5j5rEm!AzOo1luZ-#C~kxi#7SAs*Z^ofoZo$ST{rA z?6MVa-M`|(4t)&&4cfGjNi4?c&wF%(nCMc0Xz&ny73iNtzYzWmygr`q*g9iV2lu*3 zztiAhZ8Q8)t`?=@c#&-1s~f9Y%*m>}*AEUPhlCKXRPoSw@XFY|@3|V9Cq@~XXMQ5H z-q4z#YFaaBXRy)DzEPIFIMaF24er^`_Q7dgB?#8jTzAzPS;#UM9Es#XH8 zp<-EAYKzL!R$1&^0DFQ{V9l*hDf8(NB9K4?lA`RTQPG#c?}q?7M)rxavYiunh4wfF1r;lin z+}pVWItPH@+)kJdoCUx>=M}o2p}yUO(0=mrzQ9EC-I!GJQ+FG8`j0WbZ1|(x&nV4J zIx>GcYdVbwsb6MYr8dO(P~?!E6*Z!GWN4}cpNms0NmFfH1byV7LyJN8@2s2_Uj#jTCnOSvC-uSD+!akXQad3{zDQ%J zLNHU~`XQ{-H?rt zkQyj8$n3A+W(wrQ2xRtdVgk6{pQ>_nbz$*+LeV={Jd!%t$??v^I_uY~h?u7 zHvz3=on;LOu>CbgD+RiQx*+xWlLUI8G^4I$oP;~z&UmILS^5GXb8691LcdNL&DEIumA_Xq;KmD?4_GVX ziea|;F2OsD>~99<12YNc2C6~#S#;+De~3&bg-7;Dr-%a_{WQvuLS>{SYpla?#6rK2 zTqpB*JclD(d)=sctP{z+=4r1USJs1R`|hkVr5CaP_{Z};euxRL7B{Z0nj6*x?|mOF z3=T^L;-YCu{BCL4j9V=FdW+4)81!u6NvLf2h<8d2HMZT}W8|#vc6tc6HAMYtdxV-I zxwatKho1orF?4oIyfSK_GB_3|o1WAwsaGm;u_t%i$*tR_C>}fF&Ka@ zH%VfF6I{RB#ftvsg$bJYQ_M?myix&;@M@9PQC0aD2VDq4)J8vs>5L^>ntPcY4S5Rv zd;{5iCxF30VF-Tp3KV^B^K3lxMExPc?Hnfc!%xYu?=T||f%_kVpk>s^GAcl1dh7A0 z>-6lIs1f-VmHRm7ecKlsH!cJ1zd<#pS{8by&n(X`lYKDSZ(p$9GQYazL)N&3J@xFg z+1tIXY24Ih&CZj7EOm4en2O8Hq+q*8Ydn>v<{Sce&Sam-E6>H!B?4>UmUrF1UOU}N zZ%pT!^DpDXVe^Uz1I@d4sHdJLga;3(M)HjYEXinJ6(ft}W#qIvV|M_2yOy$%)t?~q z{1O5Tjyg6f;;iMeE;MylHdB)f$Gi>W-_m@)epI@fx4QR@oyajpxpnHG0^II&nX;gsO8) z#zy1?w?&=J_W}V)pvlC2>pwgw4qC5!XDAz9%?VmC;p&Pf3!6^ zj%Q39(X8*5Nx~za#O&*YdkzxWM)mn-k$m4cx-iFI1FMFTQXH3Q93yaJQ#nH-TY~d; znW_1$`A@Hr^Gv=bB&tbRxiCj_{bBLUX-$Wg=D!^Qw)0&KSVsW{Q(OB)5VJk%!N!o_ zjBx-QPwpx)vdclKcoIV+mdair)kGMYpe~lGxobYQBByGF+*hNRhczFk+u+}`vxrpn z2CK35ax8Qm4Q;U&8Xx6)SfV*gAR4yF$p&a3nBKKDpwXF8J<#Zion7~r7U3}+V_PuV zD3csL$|{Z%5*hO9>;ZU6I1ih&BW1AzZJMJ@(aSI3cf`YXv0_aa{6~jl$sRww5|mqj z%7Xr3`Y>il#K~OX+v^Z9Uv++h;5E6~%DmY2E35mi-RH^^Jc;ODGI>xGIa;j^E7#kCz`0%m%8l!@;y}42U*z{vYTXuc9=I`VKoBKu2l<2dbkhJ%HWl^@vg9PPhX2i zCgr$YSx z*#zhQgghlRGObIjIRD!p>7H;FV@3P*+ll?{I(Lw>k4E!5w5GCh?w&)r3wHc|5+<99 z{C-b+Pz(L1R7Lif(Nl_4`K)F;JIv2Ftz_kGC))|E6kZpmaBC?4EHtVnf_kCb?!6>& zBGX%vQbZ2n0H}63t(iZZk|*SpVjJD4&w0@1_mD!SY^GEz#F{W|Xva#8P#&+iJ-pAr zkz=RY*T6vv$Ex3>LKE(6jksP5olOZz5?4z3NEPzyne)PqBZd+0A5UCy7qYVg7V3mR z|6JuU`NhlUtsmvOdAk?&TNky17x{Qj#b3pO0)KxXDbK2NiTM%IA2N?ih8DSX6MXI# z=x~dPFyoEQ&&DqA5VUK3b=H`cGxIN1eq^wro)Nw zBk0_&;>Gi-!w z6S`Y_ii1!_MtjtGo|T5t6H}^N7Z$ZK;)!HowAk0Wb30<|g8t>9hgUrP2{?G>dgcD_ z;92qmLey}XEj>O~esdxQ2G4H1e(Lsj)fn%D45|N!_s;Ot(S$0ApR|6{Or&6_hAmAK z=j{AOeTF!HkOUQUKyUgbQ=!-QPU492Vh}Fe$vR*%X#3I7YC?(&b;|JC(*$Tth8!w1 ztIn?C26Ng_Y$LVZ6TDtO(hvR3G~b$W-bozm&v^I%yAPGT>LfF&BjIu(rRvE0O;$@n zPM^~9L2!_6MbT;vg(yX*GJn=s(YhzK5!pJQ?w4k{rb$rmuWw&UAS)3&Id5L?`+I#v z>oJV=VfI!K8nI1@qZ)Hsau2Nz#`dSgxHLLh;v;Sc9HS*xzH(Tg*B%f*U@tgnI7)UQ z!7dh5xlCWBAA#)f1fGFu@yJ4>>|z~VtQyfz{R^vjVq=5)wub`s%{!~kjc_lXI61^T+=4*QE0&*Kd84tg$>TsbE8AjGV=g_XB8n zKtO@=uwu0Wdl`B8$>s^U*`pR@{+C)Nf}bRtKjf@Ww+Zv%2yd*tlm9pn!1uWPSRFcF||%3?7aG#K-ps7NTtH>A_R~KmK5*&v`;K!%(g{1(g(LTx(qd!yvOW8fq03X+})D&m1 z5z!%Ut@l>gZh|Co0?Th(pAX%i65XwwvZGkB^tqB=Zqdmg!M&e_3G=8zVL@(fbv)L6 zd76(_7$_sX1eSruc&49aGyNSLDt%>wwl!5^fF+9>+SeMjsKqeG-3-+ zju^Yf2^^?Mt=vF%n-Q5TfNg{-?%gk?S$Z>hGODVCy&fL41eT1dbuyA5 z;h!2DekZG=A*xYKUPF!AO5V-3tS>w;Tqf}b%cirJ%CDLB}FkA~=y(J@#TzU6C= zMkh@FsEkx{ki)LjW+MaDA$at371+Cm;tbzK`bePG*j>ixU7T@~q!(q~Jje}(^+y1e z_oumQx7Cl@;P{Log;+XnRU?x(RKJ6)M%)a8ZV?c+_4pN};EtdFIqrO7Kh`hj~j;zVLTrd$?-X$cq z$EN?bmKoFwqjsjJx#K7~IC3!4*c>V9%lsOpcuhZC(h1gQ9#+IttN*4@9w#=G+WOU2 zaG1sg$_N3Z#@QpV3g1#wq2OuY8k=uYk%2k{z$%etoPdy7+y8zN@X_Kc-0`1RuQtl-3S|N06_EuvZj2B9xY2EZg#1*JB~0_+Us z?Rs^W$e16a>DQu5f544Rt@6p=$u-N}Cg?U~?F6h=wS+FVMv~`y;&IzjXZbMDd=eWG zhK3sQ(@SKF3NpqdLSKT`l(_zAov^G%e0~7Ww+2f}9N4@kEPY!Dw5JxvE$RUY7-_C= z&A%ar2Vh5dXHf9~5b^1u8MBNU=Oi>=M7^IyS)6BOXxPVki$#oQVQcP>{T;%irn2tWGmJ1FAw+V^~Ze3m3R>!nw zNJ7^96y-_q+*cw>AfOf-Zn=@2DiBpV1ozV=KSEmO-d>#rnkU4zd}aZ&FBGVJeW55A z4~O|U)U%1-?qv`hGgekz}&kIO4{n!+&{x$xR5g zn%L4NEBh5rQPr*{V=`?4O4S5Y$ccn=EYm`skA128Hg#u$GDZFDT#u9^&yr*E{Wmg4Xeoew_yLw#km4l3kjNkAJwsB zbzGJ;{kF3?%e7*Eu)eVHiIs=@HKjoRF?GFlZcK-?+q{3%f-~JhW6azL-B3;E%dP8e zKMvPlGDR=cRuUB{wnTX9@meD>!s_pz7B~gV%3mwxy|Y?7IXCa!G+tc4Ua-}+AKHi( zmrDz^`&HzS=80}42zLg8x`Gi8D}Ni3p>%Y8**kv-RU#^CBz1w5$tY8I&) z_G7^m^4Tn}I{`^P;1+8Bgnbf9VVq@Df$t{n7-PzA0wfT6k%AzI2 z7?zv*B!D<50t$;DYruG)Fqgr|fG-*L4)mYHMjtqAAW|z3Cb9hL2&Ap}HBd8^bKIGE zT(LFut0SqpwK*iswqsKoR#2^2$mXB7vWorPv~Eg!iowp;D^e{; zvAMzVc7T<chLB4>3O-qp((KbjSccmCvcABy3QQV{nX2ToS$+#Qh^)%UyKR ziH^aaoMV_oCZP_AyLnFcEd;p;(r?!Ti_d$!j26~M_@8>(>+HU;f)roa6VC!@KPZyG zqz{gek`f8$f-SuEf-#viZ<%^26F0}wW##5{b+xVl_zif`40fJEp{TgR+_od78eaMq zhbcwQ<~9f%g~63lC8>q*hbx%9n80`s2V?p#e!4F9yi-XMi5dSayS=(604qc7^$0PZ zOJ5?X+i_`xJIZ zsVW(dtJYt8Y6;KMnjhBy%P3Am)Vlna7H>Zt{seYAM1&Gk4_UFxsL8{|yq4Eg8EdbrF3;3cC%Z zbemN_?LgB%%&oftm=RzX`0ilN(|7fNvk+giK{&7HJU8gi-fA>9S+69X9~G2o+yyPx zlP2O@;H#mqU(fBcn`zibnexbpJhDjrANCQ8hpA5q8GqcO{|O=N*^zOXN9mSIzIyy4FmHzL8FQq&huN)|=4I zzAbG|YP0sPM1bxcAG3^+TP_d{_g*qyC=eEZJYiM!S|^oFyTsyMdGmCnCEYpPk<>kK zOE#cU$gj9oQX;-%Gz=LSvBjhw>DebtJXb)R=xGm=)X3S%rK^AWg)4&CVbF%4>U%F? zR_gte&=%da{d8L+(AMa>r}oS2vp;KeFgpB%4aE^Hg~yExS}51>estE#oOV*#8r7I6 zMV$raB44S#2zG0>-+Y^evC^WC91WmbjLPHtn!~7(e%~2$_iS`}wKWr}`X#u3W+FR# z_1*KBd#r|zP2oNbl&V_CKJ&1^V-UM7vfFZfM`Pi2X=9t#nh_s%BtzJQWqs=vkEjvP z`!{`ZnxMgZPCW5TTi5Bn$gW*hF!g{nZbWlHxL{A$$C$$83G7d@`Z!Ove|MLfA!_W$ z&lFl}9sK8#nrq7I%jZsG+}v>99>T}JdgbQ?m{j@gWZK` z9yvkPW}S}eGmLESgxZdh@;W{MP=oeV_rLE%yXjVl8l_M(tzd3bLYY{5 zFt}fP5It|d<9v_YcN`&zMYP?rLa)DSXs@>hI-N5QH2y>JZY)>=QlOI8I)R#Xu&l;_K{*PEdniCZ+|<E7POuSYXN@<(iggrrnADu6DQ72d|E(8#Gu8LctbagZ(K903UX2p*Y zwi7Bod1`b#y}`B6w+RAgYliQimlxnypl>1@^Yv}}#Ko;Iz?GVJ|3iF!*GrLj2|yW< z!ah8;K-^zDk%pkOj#6?G;yZU!gd>w)Eg_b1Y_N0ta#q3-=28~a+-Us z4rvZpODW)T`(Ge~PJmiBr&94$VW2f_7Sh+}%KGnN=4M%l6`p`2a*>vNCEvc0yq1FF zoE(sGuFNm#NN3E)l~B4O4FKHc5{Y_7kj)NBIsp)u_7IJ(gaZr| z45j@J-8}FUpQQF~WUT>?bpJ_e|Fip(g=O>*2`XfEu-BTc@W1W$t9PsIjUq5sYWvN7 z3}SuJ1Dynq8}9xdA84_G8>~O>@*ei7vK3Vr!h*^E6Zw57sZUylUb~y@$Oeq$8+0ea zM?1b~uEae#^Fuwey7xv2Y$!}0^q$gyO z8TUo7yWMudK%_eLJ)9)J?!c6KdjU1(g*TmBHxW#NH?0l%r135zd_mrQ+kE+=l2btv znlwVume&yJ+bG}YiZ=J7C7+jsV}fSjlKI@p*KR=&<&GIx-W? zjNvASizsEL`B9~np6<_?TBaeF4IaYjt6fw${=_@fpX8Yw<0zc+KX3h|&)XIHxP3d% zzl;%AJkfhEas6a@mHA%+YPxTaihCaONHeXF*Azm3zsS&7#BzZT?h5`=9Lsd>-HZ9WO}8{furdlZxyePh)R$^F6ap1@;2oSrel z>>FP%D$<|gM1d)LeF($;>FU7=UE+)g{FLUJNtxH6!2Nb?z?utsB?^-TszUfFs z8puga5-mP0$5le>96D-6^~UK*sxC>v3i7fI)cWVuC}yx1=*py)fxjz^&`|>U_pp>= z*&*#b4^W?aP;@n{P*IW;mtxWcBK0_ z5%E;qu>SS#+p{_+J};Z4fs7KpQZO@9N%pQ=bIfKoK?p5_5zA^dwvd5|IkNX3tT_Ij(4z&6e|#+K02a(6SI!@Vgz(iF#%zPd`Gmk{xQxy5QYEe?04(x_uqr?9TEZSo7L8 zIB$PxxAZ-G%fIRNl>$3rfkvO^eC;m-DF6+mZb~2Z(aq-Hg&^*eXZQ|%)3i|qvwCl^ zY2YynV}*jgUXQx-CwwnbQN;GQY4$lVvDpf=itnSo?kU`WLY8vX5&HMUr^=Mm9Nj84oTvpRPvC4YJ9NIYx_{x3~V9>cN1#1wOk zY}0u;8ETG}63Mg*EV~}U;k%10}_84HXaU?aVr#8?T_sT&{A;Kc$0nz$Xxin z>N0~goBlH^xihisfhk`ELB&3>98_MK=pQ7$5&Ah(Y62$NVCcqBy_}2HX3HY4BV2Sp zN39tSqoYo2!}Fsd0Nj`wL(qwuHw)-M4T!Y1;kuJAt@px5qF_cDl6(-?A6%^xb1f#I zI-W~D%wB@kd-TzW8_I?j=io$BuAV*`f~)`hB%`(c(>Uw?d253dQLGZlE8Rgi>X3Ja zY74g0p+Fh_B^u4LL|)!%|JmzN-bf!9(Is~%TMz7TeJ^kh4W6PG2Q1H)$h8iA+kg18 z!HW;qOkYkO{Nm}k^P(1mye)*pmcyMtQO>C>djJ&QMaP8KMYL2fBjkNHB_#Hu(%h;E{Kqn?7d3TOLh56P2s?_1_s7`^T`vaP z3qggvp__HCp~|*9)6%QmZKbwkjo^pK0uer~1X5G`LxRP- zuSoAhLtVAZ-}jlKaXbg~k<>bk49?7NS)H5@l3OPu4c<^~(I9i>pJ3~c#~ZglYC=tU zKIKrLzz>|&;?0NoC@G#mL}y%_55kMSop(ixX6_|Qh76>sDqhSGV<|34$_?V^Htw2W ze?31s%I7?(vl4l3HaH00!u~wQD9^_LV*WwGxF2)x6fn2NT?8~fyux6Q{~jCECAs2g z+M0FF2z}EPq_(^EiqvKM;5CP{>r`n!fynAR(;2_Ct|DX#H8vHT7o{sdm+TlHQrfH1 zqPi5{o=kpF-6lYcGva6*_*LSp=vD!jW; z_dJ}{!EPr;_tRZeen$=p&-{mg4Q!m&=-$S!k&{h&>f0b~sysf}DR60gZN5poRjKYD zPbk5cgjAP9OR*pp0%_goLMc+2lze@?!VscP~soLGdH>* z+%_B6ucjj2dOgp4K3U5*GcnTMrumucAezJPS&;|O%3QBu2wODX}(fkQTsv4Ek zP1gz`&;6Nq%}kYNYi55b1wUcpE;aeaRIFf@L2X(}&hA7li(ky1&j^&=X3_)5BkoeU zrOdw`PP|7Tn{WShq;$;PnLTMA7Zo?qSmH>O3_JX>A@8h+D=ycQ=!$hz=yRq*N|EU}pd6HsGYPt^w4G~Aq@;Jv z93C-Gt`7Bl^F6O$z6gDJB63ilPV@Y3>>Oz7ZNrbwTz7$kE7{v=@AvuBNK zpWk~g&Z4{wr(Skjk`eMv7KRKA>=C7IP)SPvQ)>kHUx4rWLbjD8V|*#W``9V`$$M8I zr?u|-QuE}7@sz%|Czy_%*6$bVgm`m3zCoTI52o!c52jd3ItJqu*zDL|^*Zf-VtnuC z{2;x4knjWfrTm;x#R&CaP3-lETs%?)K8G7m$^qlxpuS%>M+Twv_+DeT9Xdua5me>c z%;BddD{g|YpYS1Gmu^viQE^x`p<%@TfWzGCeL1*cs|!s z1FyHaCzebi%96ApIBg0ns>xrIRHLj0mwu@P;3Z>Ir48~&_JCEF)v`yssdQako>MMD z#GD|aeSTH2iQn{|BwpTSNZ)Zw6W_>S@Y@v;$0d%_H25anI#|tIGD&RLdVXew!PmkL zdHXKxGTI2+3eA8{#*=Pn(n;jiL7?l2_S@Mo?LbRqCgU*7l1!j?LVX4&X<-=v-blN-o**ovYry6 zZV`DV7jx8a65P<8#x=8>pt;faz`Ahll&Cl6KRp`E2QLDJo42aA#zEet}jNwnY z7v=msF@+-Pz&+BRSa|Ke%y0VyFP|>ZLskCI4x36rzGoQMMzO`IDMdpW#x!x^MMs}< zzYL0x=8XL7^$~%q-!r{(LTr&j2mVO}`_kD)o#))tG2-ORDK*_8PxvZhKFKH8N~@rvEcLY z>$VR;kcI&e4&CxxOHx57E&e?Gur?7L^TgyLLW_OYSy@{*nB@A;Sf@+pv{MCKv4S?J z?rNlzPS4`1(x<)pp99}vPpKpwsgAh+kE*wfilghg0C9p7GPv#Mx^KdH#RKQ z2FDCMK7tUtw8hIv+i%X zfqKD&MUC~Kk>I121Pp!q{W`UYGTlR88V6t81Th`%kI%DrSbLqrmdDVEimF0WOUny& z7psf+13ssT79o?e+qw=sbs0QCq@lBIF1;(t{<(VYtCX!{ZU3=7H@ki>oHEVo)Z6hmOU0 zCC743%dzLAeA&S&3QX6P(p|3v|E5%Nof)ZeJfm+fca*3dcLKQKq6uN^B@o$Hc%`LD zT}4+&Sc6|ltuaLK&_@czLlOAPZi7@QE#B?%)QoS^d>h24t^OoQ<3!ae(PhU{g5Ydx zaV*{*T}mv>-n*(grI!2VAJa^f=-Yk!KI+aE5#JGqHvguDt$1Ets-)_W(u)4VpR%0M zZNc2?iR7Ko4y~W^W07W#!2;2?!MaWhog(i!g5?>6atZ%A`t=G{+Z6&<|Rp4VYE zC_g-kKb%s(QyJGapB+~!aIP2D4fs{%ei-K|zOk7Raj`E%8)&sGK(o<&SE-C%k=kO` zS(pYIX7Y!mTlRy0|8f#%Jd_G&ggm>ox*iNqllTJ{wKQW7N#|1$?Jj0GGVN|7+%Lr&}G zp~P4|{!&xfF8W!S)8k|L>qjLtMr5JOkkEQQghQlUcTf5>zEr%tw0?CMekWG74TQx@ zK=FdUSY#D`r}NBx6@d3KWD)22Idtwc_BNM5z8Z>Qm-T+Wgo?Xr$*g6tE=|DV zCX>;{PTifm`&WrWatyYc>wLz69UUN@1-A5Yx;2YKX=k?HN$$sl07|?Yy zuS8!^SCUJk&Lb#ss|>N~H4r0JOVR|r5^M41JoCF>E3B7ZtMm<-tdyrQLsXU_6;1k& zw8UJ{EhX#>xfMPBe_v>_T)DCQFv=60_60T_T6E25Z=@NXj02e-)v}a>Ws!swj8l ze!{x33)jN|3nPjC<>(VI{dqV&Ea|8PXC442urY{ezr z{`mD!Qz1Qtr%Ax+nmqd8Xjze_wDg}$uGbz}RLFW_vxE!L+84N|mX*oY0!Y2D;X`H2 z2Hny#l6L(Z_Rv|Rt@eT-b;$ZZr1-*^?xvFh{v40g3*Euh`$T=5#!L^S@b-J}i%{mg z{PB;Z5aZ9rOHs-ubLaD0ni?k$K%XU&WyKkz!6W7^tOeBcC)qc`3$C&Jb_>=~wKfrl znk80ClHyJEz)lGn!Gy1OxL*+g#d0>!BS~}JZu^je?SS#t#SxE39C{(2Okb7BExhW; z1b=ubVtW|7PBC{+lAdLg){#oPQ+FJvoo|Q>S-T@P{`xLY0VXh~GS~3N+4;XW7&sPb zOJ!&(ss9z{%B|D+X=lT$&s!LXsABxV*lL;kQ!%B3+7~NQD_2^U(@?4)!egT-k){-N1+vQx;0h#t13{LW7&2|u;mgPdVkN@PzoQft?#zt#4 zJzx_P*Jso#)D2(MX22YJ@2s=|2YEAp9>zxudHK^Nj{ts^l=qv+YNeIN;=oSf%PP3K zGZa|v&TrjX<;c~#?YpR}Zje%6ijVD-jj9R*-^!rSe4Ern9RO1E@Sisr*6Xh{im19l zbT+IPb0y9vHHc;-qJU3r%Z${xWXmaf6Pmws1*H#eM!*GC6o?8Baj`laI^?MfxanMf z&HDda8nW0Z0@UyZ!?Db);BK@f}0+M|uxSp&d7g7d-fy2Bu%C3H^ z0?PnhH6#*WJ^7E?~K>{nrb%sLT;RZ`9H`K^$r8VsbD!=~%L+8v-0hh>Kjvt(+_ z+MiW+w>{lFmL4@VphxO0eee$hd|O+R%H~Ns==_rf=?V|0Of>3>3@7yR>CO5?rxNPG zm1}wR1Tu}z>b)x7e?e|RQ+5w4WX=RhdfhdC#YbpjOuoKxeE;8*be~3Wo%49v2|h#B z-&&axFZ7QMSmVG7$edwk6;AW2#1|fYtetd2?l)T+JjL?wHJ|vfQ~3iaw*RPIL$%z@?g0k+jw*DD~--8ORv^OC6f6OPDCp*1Y|D`onc zv?hc6sy0aJ9I0*YE+qufpZoqEvfnDF5&G4O^GkcRqxdsTe=6KtI1KQ4tf?@Ac1$(rK|K_^@B#%HaHqzZLK z)+)mq76e%ay>Nl0GGZbfC9%l$5KNmh5Lz3x$wS}juphrOK+8jD^=$3lLyWU%d|yF0 zYaRsG3pI#w!M&I`2zJShn${7)r=#eRSg)rnER-o<8Sp%vZAwRxh-!Oyw<(J^z-bEd ztl6s?ZKDF5Oc3uyIG6`7<#)nv5lu+8pgokmYgWp_I>8y*4lh_x%bTAQ&wKcf_9Or* zo%RcC7y{fV04~KFxzXq9-iCx^qj)<|+gGnyXK+fKY1-k=79(p(;Up&z>?3$DBr5Z{ zn|~)DtaF30)6T~1ImqI811Bh?U#Npc4$R}#Q26!mI{=Wdm_P$411Ui>)0NC;AXg^# zCbBls4kF4Y(``pG+1(B#i)XxE!I^EgOdKay+3!6id*4ml1c)BYceH&}0d{Yt7t)j3 zf9x7sy)vZVHI75G&o`E$O62yj3zKK3^E2{Da|POWKnb>K4pOnYz2gvPw#D!H2Dy7x z^v@bWM@?ASyK08#-CCYyCewvbvbyQWwC2O|A9?$KTl@l2YgSgxQ-&qSl=@!26)U6P z?5?UrTwF+xuIl$#M?(9w#V1tdttR$aV^#BzBBpcb(dVZ3r$CalA?q~32sk!vz3#>i zKFUEuCPI5JjrNgzuyxtjX`F-AYTGN9D&NwYfPgfYe8F2z5+Q2bgy_Bjye5@dxZd66ua zi$qBN{&rk6iJ3Jp>X4FM*<-;v!PqT$S^(a#U5@l(X<@IyeV(_Qph(_N>FYV6G6 zYM9>_lsTZmWux$a^{#izga>Wq4&xUn;(A*uej{9gSxYnU}6ie1m8^iEkRhgHhFMJ^Il9qWqI!tfdJ zYiH12qkShZo5Q7~@WQ$7HCcJbsX$_a8wuVsd=(S}%#!kY{KHnvTDa4Urf_h#a$^f6 z^>$owBG8MsC$f#jl~b&CbKc?=KTCU+0$Ysbtec21F8vUwu3w8Q5sD*O1vIL25i2*o z6bG%VCmTF&Go@bjC^&kKcct@^twla@#mw~XL`p750i;-J*~%EfMt#nmX#;1`2b3nN@)2IS-mBkogJISr*( z!#G?BF2>fIW*e^!){qUyCo%1aBgZ-Z^l*T4mGc*QLiFaq1!G=M^;8|=+>oa2!Gy+x z$$D_@7*fVa5TT3buU{b zzbwytab@|wCakr)mLYQ+1&bOg<6y*d#|NKbJ~_P>*;7OtUf0g50>lb_0>S|W-b>pk zSnC*Nlp1BWWgg&NXuSc>er{%Wy&%%=#k2CdrE(f`Ue~ib$)4ROeoH)+VK}k$UFIjy zrzz-j{Ke=!+3!2qrRY0iP9jX%Q)T%dG`pmm0}upNXCT#K zXN239?HV-dw8vhVMyu^1sT(9qly`X)4|j&*?ZqG<0d~vOBXp&nks*=3_^-A2vQc8w zhqeo8M+M4_o^(jEttEubSWBZ6L3`?-HF@#_1mRW1o}As09u`vd?<>-T&G^W5p*N^T zB#tnHQ+eFMgr7=abimvKC#F+pTKK%km}KqyFwhB&|KA?IGqU=H2w~vk?zc8|qJ7ts zso5nG!JIP!6=FeAuSr(o+HtZ47TiFiA9ii8(4g*^m81C%yTlb=NNkw*ei-Qar&G~{ zXQgE>68(y;Kmy2(R>0r}n(eI1np)g#Lmam~u5{o->|Nj2I1(X+7o#F6ue~n=V}O+< zV*;^cNz>a2vwl^Xq?8fL+Y;;;;#&GR(q?uTuCi@Mnv71}LAU-ZA08d*plDy9nBCeB zzunb{toCe&TU2Jx2fdd)hTi$#P-uABd;TfGc)X50n^}(~4poIMj5?oexu4I+RbE!F ztz6F#^}c#9kF8Mbc$f)_*&6Pa8w!h-+jjks8=a8)3B9FxxKduusio?t7Y%TVkK;`( z)?Mo^c>(5eK?i5Gh;EH8VDsoA+$qZ6l%HRdN5vMXmVKYBIyy0T99a@x2wXq<{%xxz zM(=$0)<;w?+n(>7zuLY6c;3~c!e zozr5o@Ljv{Uh9_{7lNvGXw9zSStgRyN%J?!2WP{!-fQDXGno%az4t9%^>DEf3K0`y z8Eb!UyFeGj{2*^%SjUq=_L91SE)|uog2`uJB5~o`>^yUKwe0={^m-c3kQox1pelsy zvB_Sw?s*Xu=MBbrsNIea#vy+r{oA*U_B(>6nEDHqt35diQZu-PJBy`Rv-qXoq%=fH z7?_Xr*A7fEsSQwKuSyYkH4&%krE~ifg+?OHV|}Q~0bIG20Go|jjkr6dOC_RA-qMb;wo9NN&yc4{g*q_=iYcXr}?OafAmgQl}3k2)l`%HscOK+ zU9EEIAPo%l-!d4#@|KtHFu$_v6OJ#Z?_|0^Ys zdYuhv{)P-n{~a6GVRMF!egjS2%5!wbAGfN2AlWZJDQS)? zhWQ0*hi~sV`V|{D!Ksv;q2}+ZRu9cD>5sd&;anifPLAA((mF0tmk1vA2t%c$Mz;&vC;|o_pkMNZ+tgi0KpQUuXFq$aZ(b{KYSC-Uj!jA z=F>4%sc2f4Lie~7LZ2B4h>NC;KEaN!tPB%6nv=yQPEp$Q~^5b)K<_ipxr_u`lUdqv|%{Q1reV&x|7zb2jVcAT=;s)j+`w+N$eSA8-Y?(HdQ zGR3rZ?iC+57{4BP3{B{l*K!d>RfiWmms037I)OB00jG`LIxSkGkBe_Qt*~6-zhBzo zkx3fUv)+^AlGxJsqMWW=Qz8W{;I1c1`gqOIPqQMs;)3#!3F^@Cz`h0WdFIM^QC+!I0nn3~M-UWbYxt z=KPa%(QXrLP>k{iOSn}P_0m_p_YQDaZ7dK?<3;SC30u05Tyl$pl3Su>uIwduhRL_+XnDWGb%}*3TFIx{6{vwr8W$mYWz6(_$u=O&`;{8N@7% znMF^4xkwv;n4??%C%M!Af{ZhM%B=v(+%S(?Q@<8r=LEE?4h|S40+|EV^a26j2fU()g*qUcon-8K-)6$WjLJ-PJYv683R&t^ zC@PJX?YCCyB2}C}F4srOqWl8g6<6Z>oMVC(W{J^C?lTr<%_m3=9rDrQ3~`HGD@Eti z`f8<@IXN`Aj(77v9#0m%BM&6Dzr4K|?V7)lBnmQe(M~;(b(VFizd!NWzR<*in(s0> zV8H*aU&=l3TqEwgmNA%z|2FH{+~F?$;5ZBn^9$z0)UH6N z%fRFUig~UxcUD(~h(9#){cxHb(|IReMe&7OQOzp5>-YpoO`hP|JhY_<+t3!fpqt={ zk)Z2Un&7f~c%Iw^gzFB823hw0DF1i7``<#hD#?Wew}<%7Sc_dMzcZ&UNXkXn)hmyf zX*`N*9@ZrXMVR8&F26g_1ogGzVi;vdl6kP|>(c(?{Z(<`9cNQ`5cq*nT-Kw`AZdf@ zUQ`-|BrdYisnajnxSg3^eKj>`9Hk+7GIj2ry%KtQO+=2$U4HfhlSEL)uv2WwiF2Cr zH>zIy16QSQZenIyyAJ7wDcMh#PX$v;+wjbo}koULBt~UtrsrH-RGjHEt%w&(> z_k75i4spJ_k25@WY^jRn-Sc$W^@B*m-p&-6@YdhU^hsG7So&7~#_`q1*mc~OoH=qF zRw#WXFWvnj^KWC}^2%-vf8pmi6#G1yEL>VrDtY7nXFusv2Wy|1xQn+v^hPU!m?;rO z^QR+*XGKq(ZZYePfPm}PaWjf~VYw)^LJ;6AT`i0%18l{zQDysCy~1R|({E?m zSy3Y(Q2*`Jtx%mRFGsCh?Ao-2@%S_hxupHwTXV_c;!W(;=&=MwvNpUp7KqEhvzL-H zf<#!iXd=svHJBXnE;c2(1<$c{(4njkyH_I$`NImZ=oOKk=m0&LI~3j;`grP)hx5WO zIelIWrQtMDIYR{2|JHhxJFQi>)ZhZpKNtHgS(~}put9eM$7yKxS4}|>7 zNHzIP-@$k3VGO&86>0daA+#?7n|uA%p2uwZ;oo$9^CyA=;WLK5OGwzv6%R7Jm6U5~ zQxAI<)z5LHyH{08E$&yww-^W^gr)fRlO0FuQgi~3r@c|jqzcc_K_}dqf2UY$$12r@ z<2`Ad@R9?f7`$NnR-H%&6KuFgM7dBa7K+N~m^D2DILmQ}nxs-ZaOpUPIJZTwpaDO^ z{}mE(=$a(j|F3_M2QF4snC586&S8NOZm`JF;h?`S6^VIO&48J4z%na*{tZexbTaOU zXksQHF9AorE8VV!ec7=*M~p{QP(bs$?>6;&yRE znij)Mdp=C%I?%48WG}Lj(cxwyiPn>=02 z+#iaKemblBaj`ZXHmbHLEKRf4c3xB}0c|}U&KmpE%{-jb2e?RP@`H@5m!zfb>Z-3i zRkO=(Vejq#Ek2g8=3rRlaT%X-2xSKT;%bZNy}CH{y0UpQT8CXm{)o@S{zDmvX*S8` zG63m$uPbaixXg`NXuvE`)RofDi5712FTiA@&qaf%Oj>H~&$6u+wnStwM-%e^c0}F|l3}j)Sc%K(i$m2$&k9>MO$dJjuq*? zc#mZ+(wdV)fKf1QthQ;0r2*3%wNc~vh)VtPaZ970Hc`&Y0gbPE%ASOM>2>g4BU%v% zNFjAXVEzMjkd^-7NMv>7?=K_de*kE}M3fMF2hU;Q*Fx%{0$TUoA9qBJnChFNXYHI@ z7p>4n6O<<1yT`5CHh;gI)joXeW4N1Qdks)>M*R-Kft*?sa5Xw@i)^arSUc1J$A(PK z4hW`o1SZuQ-xGM>2I3TW9lxR{cP7`f*=$PN5RSaw!ctdZ8B|8n8Dg)3O{XU1wRhPo z&aZD(g>*ylU-1_lYbgqCLQ1qO3}JB-R#)y1Rr-a*dD+8NXLI_GTykCKM~q(5=*#UR z&tGt{pTl1Y^gf;3;~$EA4{cwFxZbg()PUB0BV+%T^v4@13flbIGZvZhAha5#2c?J{ z<>rNM1-*f;!$EKJ?7^-BH1&~0BT47kj&N54AN=71bBoM@ACN( zT_$#gtDj;Cr@K5^fhk!O(yagBE_>Oom=P3-`}v;Ov(_-lkp=zvxO8Uagta!L2|dgb zbi@>P@I7}b!{98Z9ruaaslYu>Hd$lkno$#cCLoTU575YPi9XQ=E?y)*NFTpQ2Pznx zHtIvND@L#PQB{FABS9N_mEq&MkaQEl(*6de8+b7-8P`m(-*kvUg(4E;*C_x3uIyG` znXe#2P@`?nQjbbLnzrQ1lx`Eeb??iS=~^@q`F3pYlIKP5x|dKTF`q?z!enQE#E$_! z|9x$tgVz~!Hz=sd`Vr&geAA0_e8Fa=(L?bo&97}fcnY5kUBz!I$SIyFdYF%~0**|n z9$wPkj_?f~1fiD=h>v9H4iB2q1+t`BdZ*Iob)irBn)NKv6g0OUH%JOj@2H<~4{>^;l|N9|sR+QomnkokExJM_6xeuZ{a3Ivc(LQkfeJ?5 zNBI`5a;}StYs-+M?FJj!{Q&(!PgdH?5VL_eNTa2yXT}F*;ew$0aV?h+8YZdVWd#U2 zRRAE#$2Z|vD^J!vXaqM8!mYS!jlNryg-$M)mMcZ&i1Z({6j$mzKk1xe@JJc6O3Q}-WYLmK4Qxp z)2ovnN(%lU|EN=UReTfZiqs2DRwY=@AOA%KKgUT#)D*sTm_&jD{mtu!bbC~bsTtE72E_s z)YkGQSu{|#pf zv!Tpw3~{y;G{n5$bjA)WzD4fZw+=FUFUj~m{fiL(zNYxIktEYd(wD@q<^2{s%EGze zPK(uZ=Xp_2{K4x50>(u!lc>r@h9O?p1%(T#Uhk`md%sB|1kvf4j3o5(KR-FLvSxLg zkc2Mt!<1QkGo7_xd${H%+I3i^+^JU_ut|@YePFjO2zA%Vv*-D1(1_Y+F-bw@gRF?0 zGJ1F1ssTDdzHIY~pA=-;Z}HksL9-Q-pB^-&-T35s%l>e)6nY0EX)B0RdoG;tQ@qjK!pYS^ z+n3@{qs}gb4UKw++bJx@LNsEi_WHs7Z_TrgA8bY?52?Xm8ERqns-F$;;qVOmO>#sO zc4|j?aOUGghLy>%U!uKtDl5{tgokik99pMNc;)gv^Po zesk@7a-l&_wKa~_^5)mvdoW5HyEU5DtVi=7MhjLMm_nN4X@@*kQZ?TS&hTFL?P&qK zKlslhdqX&c`n4}Nl{5jdx2166Os;tqI`s_pnrix0sKwN)mvs54S`X^@XsS9|T; zujO3}P6AoMZY4Wcj*R?hm(Ku*G|;0feR~6kasK^UiSc<2f$XC$x96EsoR(RkLVAd_ zX8$`_Uoy-cEHt2)`v`>Uc;d`Iab2Si(01zq>B2;Wk;FDJ4+ZXQ{L+?niTwGBSiLAL zK_~nw(D?UzxBd^8SaHM#!{yUMdQ9IU@sv|=Zd z{Wvh1j;9z{hgkSK5xMTUPMJL3?bgrjenwu8w{31(%_>Sm3u7`Xk2d!2x4D7h)ERq+ zZ>PX27~V*JF^LO{2+ef&q2`!|q~-e1?4Pd5%ia%((N_IwnfeU#s&m+M!gTj)`*~kr zja4+#8DtR_!y%t?G$8OZno*z47~|NjIflg=ViV|6ZG)xVcfLqBQ(dD9iimC~Vceiv z;pxZmaPDC>kTMyPc%mLo#dE_Ztc#-#i@tv42@XNo6QJfLlb<)XDwT4lG?25HV!?3K z@8i&LMpW1Pc7(!HzEL+P6kjehnI}1f?<`>w)p)z-lzr?$%q%#5H4IOE4@+HIsl2(U zwH%2%n8j=!hyM@TWQFTpA<;DNse2xRBz*nW#ohVZE)MbfLN71@>#SdwtC~C)h z4}E~xYi<)e#USQ8;Pv)xnl;To{_$$#8DcZp!hR=?M3CX{qTiRBlYVq2UjoC^(?-0` z9S+{;716Mw2AqR*)AugS>oS0g#B zC>%oTn90Ejk%u(a%g-!sVWMAf?@nwUZE0$++s^vKiDksmI^$ww)wbPps|Wx|vJt=DPVW>OwEQ z+ErItrwDcrc|#((4W-Fz?E7xbGryn%*(6rRKZD23rFTo7s?6Yhc-vSOdxD27tB^@e z|K?SElU4JJ7KLuM5^cI1xiXgq4#X@Q3#h3bFYAHlAz!(6S10`u%L`epz~)uGH32mA z?B>v>`ot7o`rcU=nqh$gi4}K440tx*3tQjfD;jPxucXorwWqbvaJ3wTHCX&L@p@2J z)-_Sql|*-CQkg}7=DSv2M}w|$D1=fVAWtgL)E9J9p48%`Oq_!{(qG8(Wsz=6g2USj z3AMvH$bk(lX2l9_U=E?LK(1%TfwpquR{8`W#NO9`FbKv6{=f(G2wTa5WhH7h> zB|1#hIAVOvo;Sjq-^-I+;kyOUdX^|T=W>24)sJ4Ai^Zqi7LBRBR#Aa&yzIjD zE8DrMsY=QA`$GlK_?^dv+ra_ao(Fue@Wc@t`?+I8WyHcCJkF2ZYQc-M>nvBJ!aShR zi^WD{bS5Xq!p1T%HjvMrxzvEkJP_Gyn+EJ>N0oj1CO7bvyPV9SRq`vzEB7(pE?!(? z#+&#ckHZ^Zhai&+t1)XyyM&Ly3_R6&`|#^LSF`vEOwRO=vf<{}K`uO)|C@L3;zO#|0DqEc6)o}#guB_2-8e4#ILIk0igaH!o7RwOS_`KO*Ht1it3#POua#6w zHKm3&ORv>`snCHK>c{Fz!%k1k1a1^ti9zGcHGawY*u$K!XQvRSjXr(AwnTE5G*Oua zYu*Ry?-W*FO(*G*FM{eh4(U?)gPLZzwxo1}ms>H60@OC;43Zg)+T(a!BGZb;ScBwXJ1vuN2m{p(5)s1cQWP6Jz$!9)xd4` zFB8DXqtd)MLbed-8bXKh_I96v1h;f6bM)${4&MGwuM#4y@zZvvj?8G!d>{WeWO(p14p=B;~G*lF6M0$-dtJ(TYRJmEMQi&+upT=Qg z;vpql7|V5Bl~v_&07k~C-dt^3nu$jOiPruNRk*?^_Gx(Hl&?}Nt#t0cSoXh zXH4(f?fQM1l?sl1WE(|3YIDAygEM_hG2PyLJ7`Mw*30JGZUW(^SpQz;jW#78Ge5DP z$0y$cO_EBLmN{+7C*{`%9~ar1w9c3cl4M|~yj|kNzfPc{O3B}9Szam06%*%Vw(1l? zti&aEP+2U=DF3xZgRaj56BG`!$Stl|_yf^)hF7at>#$-lfJttsuQAE?r~>OSY42(f z^1&v`+4Ab-!n50{ZZV9I=4SRNf`N3Gf8eID`1vBtu9PsGqT`_`E2~!XrkfEUtQCd8?Fh z#DYKyvvfq>n}>~HD&*-5fySMq25hg!bJ}$M+V(!%=@lzX8pSix4kv#oi*r6Xu+<;J z#D$Z?qaKjO3vMGg+32!{aI%-+D5jM}Y!Rg4X{*+-VK@w~bCBs84sPqE0p;Y-4F4`W zOt&nNw+&XIuag|oY z%oYsIfV}m1ytQQ9{ORL&e_cmOzPw?$PAyQ2I-Ld%#^(5p)T4Xz=HOrt9{$FN3QD^im~@T65pQLQ`3j|64^`;+5}SH4@y& zk_GchfO)4skcn{7(>u_Of)i8ttOsHmh{Q%1=}Ww%PCYYR7fjX`FFdTXH2J4&zlYM~ zEwx`_R_dYI@2W-C@~Q8p%+XoFOs2(V6%c1Z&%KD=7xaGfsm^~@n$dNBK^lrsR9RytS%uQBoqw14Td*N#bhl}G$T%-T`o725H5+sPM!1y3max@Pk ziOQPjSWP%fKaN2ZLl;&nveTHOT+QhGG+~{bz$76Tu588|0b5Pqc%OC3UkYDD(_N=} zFLUx57BZH;$RCWh)TXmitgJ=M+-_vEg(Tbi>UNIT@Z+OuGY$m?1!LXyY}-Y=8d2Y5 z%@4^~$tr%|-ZfgYqJzokYQP7TFc`D(?m9K#e>_2LW2CQ$L0@3XuHnNG=GIZw9b)=r zusaN3KXTNpiraG4$~I{l91?%gaHK%l@8Yz*b`uRKtSP81@_eH=VqVQs1C3&F*B#JF zE&S_c+$TG?uOj6!LUJ7zl+}Xy?+nSVk! z|A*Gtm{N+zzXdVCr8Z@zlFuWu_9zZEWr1CSkmm(ye}G-nm3a|u#r$Fd4FhWswf*rKNieg;Nzu@Odn zL!E!&_;gnE!ckZa%4_i1_N`d7$5GIqe=umwa>mb?2xXyayAN>_)Om5T97y+R4>H?4 zkb<66@Fcg7q)P(7%SXO%=TZ7NtfJqMXZxB^7dK=xVFRwknsH1z>~FP~oU(coIH0{2 z3sPFjzYBU{J7|`LUbaCREi&}EZTz%;fHN`shSKlLA^e~chg^Sg%I>n7pBr_a`M5K- z98C8Lfw1fas1OKW3R$6={dbEL;pfTGZ=$76xA}Y6HbxC|3g^1fhZ<>+Np`FKbjoeV zHqoCFCu%`YTeX5!GJD-ptZ%`J?_s00`o06>@HhW!$b9wC;gzM#2;^T^L z)|hEoLzJ%3^?tDY7Tp=qo5dbUQW@0bRFrfx1Hm!xGE%FgIdZCuEA`7pbP={-6LD4J zFPEU!>SgmWfyngNg|EtB$Co%HId!RE4Z}utk?*RNoEMh!V-n#WxL!*HBJSsQi_cfe z44WJN(_ptWSrUbh0d@ELbeReDZj`N8%O(xf#$Gjfx6*(Fz$l!rdl8eWY)%W-o1wHm zWXBKDgt8j>bXjR#Ya1dhqVj^a1}z&(HCf@14;itv(w@illJY`c>TVbm?PfzZnk4_) zuy_X@{c`xX`9I{5;x@U@fcK>A){swiE6ey;-T)WUw;utPt#=KRgUOAf9Nx3((5m)!-6qzrUp18h1P@!)1ByX8K0X~7}JYt+qJ~73uLrhG;DO@eYFmH zvH!`)d~pP!ZnP=)%BpV_tX98)=$r{VL+iKsq=yB5j^to+zg!O9?tNwbOG5Q~%Qhph zA(rEr{b9{V1CEIF^?B0#ap*U!(V55KMX9*~P6eefy$nLHB6V{xQB|_lQH^JFu({=( zS8vodzAxcn2Y|Wh?Z{dnDxG^0`w_KtU{t)|4R%~`CYi;O#l8DW3Y#;bo7%j; ztosRi7Nq3Rn1K8W(5POKZV&R&`h(1uKk5vY(7WKToox@FU)lC<)vxYecr@?P9v;cm zmpdHd<99GN<&+vXg3eXCW!D(k=EcxewisaT^NF8HW%u1=$uutbtdGx~D@(*H(WlUD z%OTEDF+R>q;@wBxZ&+eAsOZy_cmKlpW(G~uXOA-cQOEFX2F>03MRqS@SyB0dGw#MU zhTj=&uWtym>=IH?6rUNMW-ju~Ub;eMXiPnht2M>FbcRzvs;FN_N$Tiub(eU$Me96^JRBG$m~3+B&L(GrI(UVVJ&oH|$EmGKUA<@VZHf zGoOaJ$@!m#jST1tTd5VVt_6R~!K&>z{tY814FZ60Qo*5TgwG<_w$~_|;T!nJ&p9zA z5rg$0LII#vmNVVx?K9VJZjXV8FFdWbzc@B_*bXq68iF>a<@DWCCYhe7udRSe1DtrN zCQJ=8`lSyRplQW{O9;pkTy$5OCUqcAITH2omnn!r@>lsZcS1d z4VIO{^w#MiRIU5r3<%w-e&qyGO)I_1ObdQ|Bp}eAK)BOIKUa@fFpn;4{c7l zDr1NY`;B4LoP-P4t>;Ji0&Yk+!FWXKV6&%YSs>*mMJ5+b4&^52GW#p`iXHq^ZdWSt zwR-T+s*%4LKsJ=D`MFT&7PYq;N@|*NW#n&Rvh`_3iSt*}gA`*~Uce1yzJgn4R<^=j zXZ}D^Ta3R?W;H3MzgZ^-4A95>4N{^>^$aw9pPJCc)(qtw!ddz(rpC}4WU=1U z!ajZ<58}mcF8@I;_DhRmqn(u2XFmb3p%xfq-TfrCKle1+!;;cD0edBzj%*L^h&RCS zyTOaP8aewZvvaia|0HT)W;o}v33SmiJqq5n%+>sQ&VXMgZ8o87F$zEh^NX@l+4APl z-}n3UH2FLjW9#*2NX3JLU3ok)nc(F#2K~2L4IL*33dY_Oozk4t^>$RV9?zBG6f=E) zDiZ;mMGWMJW{ou@=B2{f!gY844H}K}yyImzRIYH)ceI+p83|iWcbPj^9Aw zmuX)R_`zA6P)j}WzCYqm!y_VWkTk z7Rc5(y{%`9By&5$CvPrRJNt4kZQdjvP~S2%Rwn^5uBa)WsMWVoen;1uaND?jbgGWW z;=*)*I(hqRr_RzpZAm}ZoC`g@PQpYl)zkX<5W;+&^A89?d(md8Y14^sdS0&qh!>^z(l!ZjKuRQ!lB#QfLriC4Pr8us=#mu@Zl^WGIKap z3kj>WETyx$T7)ZB`CX6CuA*G_1`IHh`KlQPzVB`ua{++H;TH-?p^nn@IoNP4#(0ij z9DoFvvL?Jcr#jRQ>eB69ZAif45eUhJe*GOUT5&~W0f=oZSc9b!eR%Xf##?CTl`dc9 zJK2q9XYs2-F3=o%yCuDUAD}AbDVLdT0QlNbYlXO$xQL@tG8JyXPSW2&E91?&VF8p2 zfOfX{+pl$AkS@s3qkEA&-kOdr0zgytEvl#dXy5j#pFP|S=SysJSsrYbtv(eSBKG=o*B#8_rm0BqNJz}8Fkqh9 z)wPzW(~0-XUl8CT7&OTaq=Xc5xp&eZhKm8Yh!8D6%Rxny z^FIiV9ZW`D3MT6P3TJ+!C7$&aj8F?iab2dsO~MhAI&6IfYa6DeU6ALp^rok@LGiT&j3U`8x6y zW(2Jr5=Iuy*4=qJb7p(1$q2LRQ($v`F`?MMzxC?W@7UEsf(uktlewH)`RJ%1jn5H0 z06*5S#VR8B_`>muhccRxYVl{LF>c`aWs0geego)ho>B17wfv-irS+2H-{e<9fd>n` zw{}+=_d;@^$CZkU#>bWD=0{?=_D6$@b|fbf2dJe|;k2m*{ z)6cPQ>5YRu|I*BGe`c#*_7c|UeRaWwJ*MFraRGfedmQ^r?wTD0nnm83H8nV^hLC-5 z9Mhy@cGmJ|DMJ^VU|n(3_$eph-(Wkk@`uJqpl}X^s0?x&>px4CCfK!KNr$U8UuKah z^QNWAZ7NUG>Qsas9(pdhS62dPONhIK7HTaI-j|&nYWYRtsHzm1luB2y4Rf~Y=2EEZ z&;`6p3K4|8&4=*jiuJ;1ezV6R_EJx#kELla)4ReHs5k80F0PF z#L_4oq+@|9L>V;ZNi8r|CqG=QVa?_LX@Un&&tY(e42i?VB{h+|Z=M8_;YI~3onc%I z1wP(_3Xd4&51M@gQAST!72fxah~6A1B3-c%@|y0Si054YX-sErSn$tS!S8ac7X~1w zU_0r>vRO$>M9JhAgF6h#aN%zgZ0{=(1Wc+*G7b}Riodb0l-p1)OJRl$YGIqo7R4^DHjzNfYdDnB{y`+w*=X2rhRH@@ znt>(nTIa=L9L+*%IogmmBq{Q%@TM~#|1|ps$GWXkg6G-M>VBjCeWGc?ESzfaVMGIY z1!OR)Xx5&IZ@f0CKCjBm=~yH-3}M8m5f!U$$&E^s<>%|r*ZQvZCn7ukA6HfftfKxu z%zDvIXkC#mz0rWkS3eU9hvWZY=^PyLe&4sBx4hM|R?D_)wU)JP+udu~w(XW}+giq* zZTrskyg%RH^EceMuIoIH*Xx*vE-j-gfozZpmDCQ$Fp!TY{h%Y$CVx8e2QjmR2>+O&A!{r*UWlF`;xQ$^Y%gZED<)}(!AwnBR@9o!!+JgSj6*9R~dQjO4 zVFb~^rv(-ghi0&d48+oquWD#U#e;Y`PDKCTv-dy$iGme*jt7P>qA$fkQ zs*+S)OC(eIyP7EB%dwfG79$cxhlJ>#N$|2)lWZltqt4-i_~O6f_1sIUC?xWcMYUYk z9`Yn@{Ul?=HE3HHlEk^IYjo&0Rb(bzzaEE)7(sJP9dY9Bt4qr#x$h$2S@#j#w#41P zWz~1t{uLLf)9{P~e~U_z$SrQJ z9Wx(IP)_Qcg*Vdm^N^2@I>}n8aCuLgq>Clah(CG^?*lWQzkE!pyWjhtiJgs#+0cKq zU#%|Dl1{q@Q>%Uux_sET>y$drcOW-q=sVAn)P7N4Ztx6)j%M0^{wJscdv6E|L9a}> zIUoPTq!;Li!!)CCd?&Tm(&G*!kmUikepLkZZUG^?`>LPx6c#Nm!#U&DfJ$OwO@4n0 z_75(ly#oPc2x91E-4!RB#dla-s$@pu@x|)=GsOr$+aBUiz5s)eO4#E@fqOW#5$-X8 zpl|opes-0sue1b=piN?oC%YV*(LZn2gh3Rp^wH>PMe9o4!KI;;ASgFXAM8|Da9SWF z+8l^XEWhQUO~L(^pu9pa;LtAji?#z_Z8t$b$*hJy$KLfj>Q=zCWq3k%P91RFtNhj7 zPZw$*+%J09-Nn_fZ)_dAD(=1DCnG!|`p0$1O4*r6x%2+@>soz1vaKRQ+&41&#d@H-uF3Iiv#Z` z7MLAJ3~GrpMIm`N!)||AqRLZoXUz;Hvcp*%5DTN|n4PG}IgPNch`{DW4BSidbaVu^Lv^q#Nt{+Lq7V2G^Sr=P^nq2 zlqb#|Ut&+K)SmJ=n-R!Fe~*rq<}_oRD|a)L^xf-zp2Z;~ZCm(4NMj^<${v_6=TJ>4 zJCGPl0zC=Vm(`1=@XP~d`i+He<`T2UQd$Kxg!cG|lVc^}|96H^L7Rss=0ay$3is7f9l1lJonELZe9r{O_Z?t^%59x1dXzOofLJh&GlhH}aL4%l3o z2O5Ml5|#;jF?Qp&NtiTfL`qkuA~6p!ku%zI+N=opFG2Xx?v*17Yxo!U5i#P2m^~qa zy51*gwR;%Sm2uZT$1x^TRjA6P5-1h9V|H!Lal(~YIct1E;f-uBYHH;FfAg!?cH~R; z^rI4#%|LK!si&al5^#@alD<mDeuDTG8+|u2jf}&x8XhBXQwlzaNfX%ivsU@W@zd z5Z#qUyTvSsLay)71v=h{(n%irJi(E+ZR}j9f|8Id+$xcmGT-*sCH){Px^%Chb!a$q z%K^qkif_*qyXnd&V#@{pog${IV^!e?37Y|#J^8Wy3 z0!J2ZO>BhiO*K`QPg9@u3@_6+QlrnRRi?A%Qq;d1#^5qi1x~(jv$=5vP&7;cAFIEo z5xGzuWpD*mT*H8mQ~Ny%yR@d#;XH=u0yzLJJXn^TLoN;hoDf786_sA&xE#P>MFc+O zkZLSP1wsvjX*Gz_Pp0tG{U5%AJ43iv2$$3Kaxz(>tGXD93V9_oEF8ZvfwGyV%>NRg zPLhSYS^X0oY4?#{uxeI9z3|*KJB@%Pzfbe$u)+?Cx~cx75moSvZ|I=9Z zC$Jaa-7EDK{#1ASV&5dN*mmAC>qydw5-O$>K(l4>wp>Z2<=k0`-DBBDi85vEpv(HJ zlj;7(1`jER=piQ}<8ylTt!`m%jETs=oDso9@PMfq9XM;H`hLwbdKm~pwP}sa*hR-R zToB(imu=|E@SNB?Yen;TvYeeMJy?z5^3$-5nW6Ixjp&uJ?Pt9`l{Y{wdvz>WrTm!W$_GkyzrBq$UWj%m!o%I?Y{J- zmQ^3lp+3p*L_UvH5_M!K zU2Np4cV;UlD{*dFzN|9RDV>bdsgS}Shf(OW1(ZhK97TT8OX@}UdbmZ)cy3J_H)CRU zKS__!`<=0x>h7|8G!C5NLFeDprkqcu+@iHdzwIQk*!5|wcm48LMouKhs_9oeS-A{K z_fj-QQ`4aUt9PB@Uo=_%mi-CKzVx-@9QpFGf>!r=eJC8qV52C8-{pg({OM*-0uPWE zLyC9j&uo)F2)-D2lV;uAbEYfFl`&x+JyqYQ$C%66??%c|QIrD-2)W;vW~){8E@@TY zq|*{-IexsyJUL>0qR$dXzxp*OH72kyWAQ-j)@2_vZf* zj&)yLC;Jy54N%C#6S9QCgg-HTl9=nEa}oLDPuZS7qGpAz=E+%1lDNr0*Vh{qNs#a(!bh~kG3X#fJh}Vx)#;&&N~xKoHJXDx%gzOa$wY5nC5?P9HD z=hP&{@sN&n$VMS4T+;tOmfNMPlr1^N`PaNYW(Xz6(y4!xzU%c@xe=Lv0{N`tgs@K3 z!v}ceo7N=zRMFHQ_s94G+2o_Bs{dW=6ZLUEP$#wb-Lazc6k8m6(TkvM4-14z=V(>V ziLXQ(UFuT!nx6|lOOpIfSS&Y5VLdRC@Cb4$EJ}G8bE7TuNcd>-OPC#X<8)?5(PXb! zZ>QqyVs);!)YYeOzw|Ry1=+75^Z^bJEhLh)0G*437*2bJbMZ#~^BT$dLq`aYP;cK* z^&NLe#ewf2RK;W?C6uh?UFwsiuymReO^JSCC#q`Xog$$1x5nUcJ6E>!G3Nt9pAyZg zOsQOu#lJlGx4O{_eUS%_ zecs9*z^^7gLAFdKDB^MalbEC<$wHjs9W$}e~2X4^NCN(=txX#vNt z6)Xx}{~umnD#ODtTMnIpH`BLCU-3(6v7&%QNXw5yGzxwz?&G*mO?H_(oOvwAlvil3 z@Y32B)Il#sq43I30QbC{SA4C6PP1U46cNVF8S%UcZ5pGPU`^fwI)l-JR5UjcPJ=y3th+grp3yRj@Jj?*S+MykeU zju&^SnXY1n6Ahj4F-#DMkn0Z**pNi8@Zc%Es2i?C^?iCqQQe`ZhZ)+&{)E#MvbYGd zJP?xf8B-eb!!6*kXIaMv3y#T{ zKXQlb2w9JL7#f=HIN^LU%aD_KL0-&cla$Da?0aO#K9MMg@MpQ&@>O+$WasN+f5bI~ zdz3mPMR$mmw!9C@%0g-VC$+KiCF{}Hk6DxY?frkAG&hFd5wk{PX+PK>zZ#=!Lh`IA zXgg?ss)!O{VUe07sxvInc`4^t!bP{gP803Z^UECQ&K^#=(l!Q!_AgOxNo4p7fCO3g z@%mHD4CS?>IR1XJ+NPyH$Le3io?WLUc%`dU*@Nep zb}nR6t}S95+#MN;ss1RfNNSt9>#hnsfTwH6<2b1ihhv{nVCHj=vn}FU&C|*y%W43b zK~lYCBk2ay?=T7%0`4fx_BM+c{u45%9C#<#4D1rZLki6cgK?zosr z5zSmRA~gw5;^hV0r1cIt(I+i0KjhnH%bTc4fO8i)62mG+QC;qKXlLBUzgBFJ#XT_& zEqU@J+0xbAY6h1aAiz(PBh%xjy^26)XSJUU#5j zvQvAo8LX^qFc~=&fPr9U1TG6hLh9uv`@P0q1GBE;?-WNrFE8M}&((uZdya;H< zdLw{2VoU&ocs^$1^rdesTn!fRuD7F@b)i*1?pcj(JhF)F6X(6xxepU}#?JYcNfI>& z-L}gbqpcOrIo{f~My$%+PxB2=X!$psd?{bT#1nMn6W4wBwNh+SW;T$ZPca!wzEE$D zu1Ne0xnDBYwm{3#DZ9Hls*uv{Q2w`cp?^UY!}$j%=v?|y{=j&ddx$!O#b%kF-U5j zqLm56V#CWwW;AR{ob4E(q~>q^Se|xX7Zt~C`<-$`8Q<}o1Ys)8AJF;ElBQ*O0?lgA zhw;rr8LIaq4w%82zaWw4L-#wLf47dqSNz!&5?bAmg4GoPB&%AE- z5)irU_r}I9qvup8*<;0|Cx30)Sd;}`!B*5js)_iA2TT5FyP3=dGP% zY9ATsswZpj5%Tb{uPZAb(?q2lU_X9uiWX`boGJh6JP%tx_^E=&hcfzP#?I=~__CGK zL$fGw+0)@L5pB_0QjlU!sraW$;lA)n`#iSv`n8hy8Fara`&_@*Ux2fDMsXK^0A%tc zSluQ~AlJz)fB1w#jsHF>SoI$t^LjLp`n~z6;xr+Cu}Zx~;e4#GzY@|iIph$xQ+-yB z`B%W&tX^`|S5|#CCYr^-?O(L=N6~$}NTdsfUuWMyDm|3OlNdY(L!bH&bYR_`#b8TF zz+!C9(T8$Gz-(%*{M*=WAf+`7ck+iJ=7E7+s&KnA>lvYl%kT@e{}A@&Kp<@c6GKvX zEtQ^9UL>99z#g26=XlUjwYE0~{kNSCAvU~o3d~niiZ2V6zQr3GL9bL3Y+lQ{^dp#| z_kxiEp1kK#H#G$l-xv)L2Kyhmc>~xcSye4A=?!%(W>hYMa{cR6Qk2vT5Omy*X*-hYTyVbR=5pH zFuJE)qQ}UWMZ1r3YJEREXNN-cu*)F?(CikmOxjAu;@@D`&J0TmV6Yl4pR@{g(R3oG zS#je{;EreR>?+7G{Mcwj20y>xx_xZdc6VyFYW4N9Cm3)9eKyg!kfLY5j%<)vx9#6I!l%tP9B zkVw3Bfr)d~%`hf%H6_Y`K0z4Um4)@WndGQ;1ea&(C}CI=LvLoMZ@{fAZpObF7d2W$ z>TqYq-c8MjrM90Vo4P{nR-KCFMvUNm3UcF0@(G^ku6oa)4@N_m%Ig>n%(NIx5d1H= zF`GYXa4V5|D}Fcs!9>e=%!2;5a1&$1?#(IRolx^he&Md)^@fFlsUkb3jn|rt#q0y5 zUba55_;3H6flH&D(lx$}BxgE>F{$(f~O^@=>P#<*{=M` zzGGUOCWUfBED2^6Q^6>o`p^z%OL7|BiTvc$V0yh8qVMj4vpxi{ww+0Hf&?y8S12`6q5bOOGc;zD z&S3>PE%dzool3CgNV%dgb=j~pKme?EM4TyyY{uwk6;Yv`kEkGcb!X43#5>TB%CPdm z(In(P+{(3$aQ&|5h%5#4#J{#r2(&E1f?CqAkMC`f+we+nqCacM}Tmcw%cLvXqx=RqXW=DJ$KV*J_BNEFdGulP09n9zv(5ISs z(^9ThhfL|XJTVTYJhBhgD*(H+xH>zX0`lKDsF34-gCYKJ&!_PIz{za-Y2G0o@j?l)eL`#!C9Ao7bVj!>7+Gry{3 zdf6^>MvWa%*ZoC$>I4>pPF1`oIUnE##iL^d_61g7(RL1NKO4;uF0Y8qf-iB0COsnc zo~o8LEiEn6=6IvZL&3{$auw@n&8|M!rB+bpqVv#^-ZxU>mUgM{On1*8>{gKDMLocLF=web>j6X(I_d5e)1maG-M%>K@HrDqlUTO z-?z(NY9W-CE;9OBN=LuOr*)ong2yb}ZTqH;wEAkERZk6N8S&I~oN1TZ&U&Xkxz5)= zG`QI+I#k>s$Pgucj^|H*KHGV$BTXKui~hYInVzsW z#c^k>KT~{?Wo?3EPn@@K6e}=Y3uJY<_^|jo%8;c4p(V=JlzZMalQ^p*6n7H5lB{Dk zqwk(|#G(-Z#4fIwkSGEcpxSZ9fDMecGRHfd)qyEK!6=ie6(Xr!W=S~IiX1AdF4Jzt zd5}oN>kPz z=m4S%BC+jzJh|+-pD7rIf_lG|{3)!wK#G>xHqhR?aFk9rWkJ?>o9e=gvpJ#}MdA3l zQjTuqv@SEjRx9L=u_vxk3f|T7q?^N_qIcDR0}RCVeTU=7hE&wyvP7kLnpbsXebl8L zqoHK|JT641b53nr32?(Zy9&Y(^cYltmmorph8d>S{8!BkM;4ZSQCu78`4bzQ@A0@h zf5sqqi-eeqHLpaY(g6zW2=mzS@aE(6_4CoA$%K__w`FJtGbZY-+gPoC(nDtj zh}(=<5&C}8U(GVtr$^D4ays?>7y~`lw|P_AoM($#Ka2JcFbo)LMoriH;qDkN4>09) z&}26TJ@S8Ii^q)@sy83E*!5UsM%alkCBL6kZkVS}dR#n1PTW0sc+lwYAIsNi zOMSU}E2)pn3?C^kpdPHxmVSoRRi_@r(}T4jc=fJdqd#1@Cou9bRa^9FX?NuE93_N) z7`AKg{@?JrVkD7~);Kh+NFG(&UY10!+d z+9p9%dr~=6-=q0u^ZNyei^jE0lAyh5KwM#P6V@0QQ$Ch-kfZT->#-(N`#^$aMz*y^ zy#J`LK~3`7?4oCKUS|_=T@H;!zL1Ipo4q$cFK4qNJy>Z%4@Q7?|J+}{Ny{r<8xR}| zKH1?5JzskNg~Y#qLz#MWrv3h|*9Udx4Y)VFmw~5+r+YPxP+941$r#(6!SD~^+VRn? z!3HTtPqpz%fo!(NC0Jv}EMG2HRvHT>38{47`8&ch*~v{g-Ezt=FcWZTEs9*zgY^;5 z1-eBJSdfGU+HcbIs5T|iEL03+>ukx*0X)alwFQ7gEP#bnZ=TG3m^=M>$8<|hr@KYX z?iZa?oN%)jT~1DSpfr|c-G%>T*ka8EteEV&j3PuiBb5zwP~M$V6W6$&STC;`&SHXE zDVGj1vl&RKPvXR2*`+66Z^Kr)MnDNYVJ5f4j)a-0N4&pg{-gD`c8orY!#T09?Yt7B z8c;9I!bQAlkHBmKHVzx*aB*?4+;+zaDBo@zFX_uTCwMS;ObcYx@Ca^%}lKM@u|a-rA2tYx81s^Oaz} z-J>O~j?2GY9Y%ViMQ)<~HASp~;_4B0ap+=*e;;Zhl!^s49$y@IZ$9H|Oty>fKX6GB zg0L?xXY-?YMUM}Sj3WfX`0VJi+V9At)x{6Ynyzjq?ls=miNNiy@dM&j%og*(w^{Xo zEAK>txLMd_Gar3Ld^E-r7}Zmn46`T(Ws;iohv%bs!(UXZ*&k%~2^`XA^&9{<2U*@I zx5&BG_&>vZGWQDNN4NRLaPoWdK|_bHyV_2~Pbnv&q=|bB`(!Funw(D;4JCp_cs@=I zgFtLdE;D%C4&EM3{ogyEE$%&)Tw#YhcQlH&kffx~_KGkJuyf{#h;yf8GxDv$c=>i` ziVvk32xFcIr;M;2ys&k5Vh`b@g|)c`%L6~-_Hg2r#Lib)v^28*Ly!zs;?yI0RDVuvDYYS$#|sV_ZO^zW~4;zv&p9+j#O zbI$LICh*y-trI87c9)RMPg?60InQ-P61es96(2fUK1hu6{v>A5$F29gC4RGhXlOf4kl>4r*_P6^@!cMgj0YehRZ)kDM+c9x$7d{9R*JxYV z=1K15x`-{}a~tx6_0a+CYuwjPG(M(8?eg=oYzJ9`sn5JNt;B`1)%W&y{6eN1M5|`F z(tJ0+hzYo()%4yIw3=*zf2QooBB8VwLeyE!m5mb7Q-*caoDl`6JyJW2M{}8 zZ0B&d98|WDV9v8HEt=eZRy&rr#FoxsEA#9ThP~*ngL2Ep*iFA{{PuwD(h{28=k<=iq8B^kvJkIZ^#Vn*9p?=D#Dtv*lz~0Y^q5CP5W6#|V3!CXRj$L%+VZ zM7i+sU&K?b{Bq)oq=Hg0P3ty1T%#g`2v3BzJ&m~b$@thOLV1Cj2$AP56&xYYahul! zvB{xaJMl59G}qz*V1(`sD1U__V9Wzip%`8+-u})mBlslM@uEy6QTyz>dVI*dMvG0Q z0tdQF60|;7VuU~@%LMZG&)TR=c8STqU3?mmKLcpf0(_x=Q?(Dr(3(T2KpN93w@>UX zr9}hQJeA5;k|?Rbc89v zw=ON{<*J!9JfVx0x;dyc1ngbR&}xT|(T=pVvh#fYD@|K#&bHOIXBuLW+CLV~C*v}n zU^wr;WUL?M8`Jlv*ZTY~zQzVBqVL<)jG(e1irRIoXJh&sSpsFXO$k(rxc)*ab4vzR z#Gm}BNTja~Og73V1v#3;PB#{+N>WX(&a>AT%Gmub2WHica$PeI& znsVCPmgN@dD$3a`76L5iD*f(iR@YyGsOJ71vw`VL0u9Q!qe{{=eGJH*sn&H(ZY?rxJ z4W&1NxU9Hpq6%<{q|NQp#=2KM60aEfe^#!rwvehhQGW?Cf8rMkHg|)hvW}4LGWq9N z|9wV8cs=G#e$)v>XVgaheTD7eh6p}?4rBC3vdF&T2NQ>bAbKJ)6By+J^%5?LAh09V zzHM9IG9H4tVNtOL?eUZ}pV-E`bUrkD3C`cJs{3WX5@3FWdIwdZvrKEKn0z(VTm)pJ z7djmtF6*RB4z|(z*v@1=!hO7Yyfb7}?MvQc28bMTGPh}-Tx2j;EZ7K-i+6r+D|zVAAyH4wnI8V3uh zQpBYd)A2V;;NVVsAHQaIrczkW4ICRK*mm58Kd*zqQ@5ass|ReJ_BGjYFR}60-~DS( z7a!TN)hX}#Y=bL4Q?!X&%IKi>pp!OJzxtq0Ec7;U#2FyysdTID74sTxBy{66ZRQbN zW-WH=26pHvvs{e1irIMMEIc%DQ`z>gfT;GT`9er)kY^8H7YB*@1R-A!^foyYP?;x~l{Os7lWcEpYq-Ny)AeO%g! zisgV%XATk-^&RfyM{wsJGc0BE`cPevBZ^FH5oxy^;;9CN_ueWo=uJ9!F8{tZHuOpM94yK~7 zL@lU9gB^)79*NiR;N#xbxH{IlG8G4}RY^{S)Q{25n|Ld)^-k!j)gaFUtJKzeE5IlI z>vhj_9fnv!x4Ua;aOaRK*=Xa5=XXh%k(z(G%LV89m6m<9K$z#81;$`!@h;x%3yVQL z!b}>UCGTtA6H5s2T!>XCI))nOJPvTPiJCU6j^++^C>CmrZw5%PmD9u*`Df)flAD`) z>C}mUm*mHFoNW)Rb~ottR+#7Smu!wV$@zP>WUiZ>tidF`Z;PtDkvwuuW^!9t&ohX8 zk|azU1#8^FXJnNZmc+-^KJV2sWQ-Q9H>w?DiD5aTv>oa?qf`T2u6M_>x?PxtdsYMa z(Sl)Tk|k_TF#*~m{Cs}ShXxoyL@KJ~Fq8eJ3daeELUpJDQZGu+68PRx5hGRG#9l~~ z#h5@%Yd4Dr4g~1OK}lSw{ctelIT|#b*49RxL*oKy?Jy9Cs0@G!tOI)4X%k$DCw8OV z7a!A60Y8&Xn&o?eu;-G6Y6zd?JoE;O$0+}U$d=pxlvEx~Of9&Y~<3oK**Ca{) zpqi|TEQOa!f@s&~MK0LMj=_WY4kWn&nrl^E`^20BT_2{&_~r5O@HYbqR!^}XX8u0l zax=m@f8&$zJmzlHb;lBtc735Qv{ihkx9-73FjqvDtusdPuj#}WnvF7qFM(z^sag|< z1*%^r;c|{X*=WsL*Hedp;c__q%<+XBoaUj@*ifc2);ItRr3TTx$&tIYs&B~%wla$V zbhlcb52bZagxhwida*EnKt0IF2h^iQbev!l0#w;ia|mZ8BELDFOq2LQ^~vSXDmCIS z%A8`#c5vc5jhSEdopVROxa=1j#C7KKl2_Rp)+AO0!334van^^wa1$H8Om=;(d3wwq zgMt_&S>Y`=^cez4`X`Nq(#b!x*T6=j^Z?CHiP2^=5Z5Bs!&YN*`)9qNc0xPTiB5li zcsY{PkqtC*!ct%duAO0RoLa95gCqeoyDbt6*bI*caAA3C7nI|epp+CRZX%~11XGul zsyKLQ%x*N}<(H#K{o7o2eAu>2%KT@q>Y4v!C}Lfy%7=ub_2F>i(2!qp~s}T=^sUclCD(GDZ|n3{q*t(9yPFE3pQE zd%uBR_FO6ht~N3UDo8nwgdQ;wJ%(1z@}l+YvKAun)vuUV!*A~Y2f%q(fj?@B7K09o zqK&qy6YTX$pOi=*DDJeJG<#o5fP%_noI|5j)l>DT8LH#-v1pphadJsYPO|JRfHwi>ssh zbzL#D)YI#e16j18LJfo}-?e+=tk^7N?d(A*EJ$a%*5u{)$OSSSoAZln?Vn|JrV=~T ziS>Yn8*KW_CjE(}h?bi{x71oL1HeJj0k4*i5&K#M+=s-g| zzgdE6%#u3KLLjciP=4`z?uxOB5)`QP9n>{skAS6m{vJY=XS z71a`V($VgvZ{v4X`rO;~Ht!t(d2)OQ0Q@CcFR?TnE(}xW#&5G#^j4Z5J#5nIVbpr> zScLbuTi8qMi7Es7CwHiK>hT^Tdn3P0bQdis#1jAH7z4P2GVl! z82VdxmpVsboGNiB=uc~|rlZ!{#p6!AJMWJHEO1~p{qpao>wDZuc@I5~+9Ksq9^$KjK)b?W1Sha5z z_3~Ei;<=(Zcj!jVl(__T%;an_ZQ;F-$xrsbTwlE1u1(swx-!;|cWUN`bHxd%Gm)t>lfs*{rfRWU9>E$u-} zwyM|b_YLhJ!C^YR9uY*55P9OjvK{p}KGdCFlkCy7WKDKjQdK{JWA+iTqT{sQ#@63r zbOV;*yoq!=w0N|iM`X*$41RHw*Zr>? zFG`zsYjaNuZ4K&TcEw(fJItzAgMVjYi^x4HpJkk+Bai(Tc=hUFnC*HjTB?>ol(tW% zd%1WPDQihQvq$h)^i*Wha8f|@dWy}3c;#Q$O7?;91v393p?FcJ1NY4`MX3nsyu4n? zoId0O*XF>5{{H#o2!2!KT&&j7%PAtih*OD7MMlwN4EyO<3!|tQ&aJPhJLtfE=fFIk zJ^eibFT6(}w$3iWUYs+{pR}{2wQp#?$@K`rAg7DWy0-~m4(lAlx}Qec4DbqDgw-SqK5L_m9B0$ADQB3jmfftK&x1o}e9JF-roy6F zO&?2y@-FXHvc-=w?bx2VD$bJGEA-}q={z-aU46|xBlvZ7&+-%pOXHxj*HJFtP+e?a zrSs9Wh4*8KT!@##D(+P=NCbcW=-P34&g!2&VLo3Eo+q4MGee)~Z0j8oXny`^z7h`P zfHTl92IuXZAE=uep64e$8xFY4an3)E5Gv&_{0y%Q2d{d@-c9ufDa4!ZQ2&xC2{zp* zmaLs7vkRWrVV!a+gQ`WaaN1{Wa)PKwmx+^JrLwtnb70sdo26*Eq*YZtl*FWEso-NO z86|591!I*~qL-H;EBnp;ovnkeN0quG9dW9ed+St%!LjW%8R0Gi4E)z@-b3R2S1-D& zo;Zd_ogbAJC~)hLnN6Acz^+*5wkMZ=HX=kUGxn@|W9tyzC$I^Zw0egs79AQ5PwMfc zi)2#(WyzcY>>$7)VW$lzv?hH(d2Ch!U;a8}yFKnoTi7W1~YOad&*u$HXTg=@a)Lc{hOmO@5yMhiiZq(h=%d!5Ba?9e_&b~}{AsN!iTfrTA)zrI%J zHxLnJk*ZYRacl$-{g{A}nJ`hH?LO5mCyyB~hSBu?#sRyhNq!RN9yijeT(Z?EDuwXx z$94sBD2{}ghK#m=3+8ZA6?gdbHUAE!^;R(5-UEzdDO{3ZR%wpBP43cz`uDHzFA!wt zG{N2z0*a@z5bP_zUHA_#4REl6DhaCxbbUDOvLS{Xj(356+HDG=k@Eg#w)fQhS!SVJ z5qUaoSGY1t)jS7=jpM!gS)n6j)t1npLD9P~j(xfT-2G`mFWYbSg?)@V_&=?X1~ti0 zb6|jgrrBYc=6WQWEZW8#Mh*m#$*YG`??}OUVD_3N-HVi zD=?|Ns~=MtZY3N(g$6X9T5dVc}>`HM`{Qgd8#Tt-XQoSc?2Q5^y|Sdjr} zW8t(O>O=$PhS>n6w2xf7S@;zt*Jy10=M@UZV!DCFt97h1yY6oXL=gYBzyFPHX4-s z&Y%PybVKCEL?p)y7Y0f%f$BV4a-%3p_^H-FVlHZ6FHYig61~CwvP?4cR$zB89IVA?)@;Gs~#S~~3q)J=P{1-YI_m2{T z@!Ivjhevz=i;yLWdF;oZc_!&z-=jXat{^l&fzfTie+P9X-+05qtoWpu9SnT99MkPdp3SPlWdqML#sn{ggN(wag8M( zem!kKhG)De!8x8%05b(PJnuko_Z|lWsT9hZsZc0$q%cJ8@R%e8C+8!m@e*uG@F_w&#exY)q2NZ^V!9e4cM!7 zLQw2@*OMFQmFIEe3N=EH=YOLv!IY1K+-k69y9d^r>5;i!YqSHK3_S0+01(xjf-Rpo z$*Tg781b_Lk2ul$=gfYVZT6_oW*4*z#SYGiLJa|*nP}~km|rNgzv1VflYr9lw}!6v z&sFf6YBCFNVw~xTh_fcsbiDJLDf4qLUK^k-OG`^CDkwkA?GyI=LVfe`U~Ogivx9Q) zorEnw_0%$Bri^i@QD&JEn1FTIK>J-!yK2)v9N>mMV`eXsF|xUFy7S+KLJ85oDM9vOX$qmGz zhj0gkcQz;1vv|`>p>1_jTkmit7}AOL^3B6Y%cynVj23ZwIo=@8RSWnjxTLlJT7iI_ zx2Y`qkIf|u6Prb-sR?~d7tU*ncBA!fwp&6AkqP~yhSc|ZImOHJ4hQPK!K%V`nPc5t z`cUatphU{Ug<+ULZSx_Jm(toJIKvEJ8GaL37@^1TypfmW$!(7F{Qw6zodxj znEJ~xC$4ss%mzoSZIi&c_v!X1`{>_`UhONc(Cia}YkTfsRkA`jnUD!l+PZLvvqpIFiu*D|Jn4 zllM2@!nfdMeukfUi?six88FAshcX?(1C;MF^kuOHH`kAF^T`@t_TLe@KGv4%(blMH z>ewN+&U_CH5^8IW87_hVw+V#|IiRm4qk}@2T#ars7|G@ApXR=uYxMcI1*4P1=$0W2 zl(i(I!$u^fg?aVX^1fvgqA11_kdtn7S-21zYQ~x@hI#P^qEXF%a|Qx~GSKF6^9^a- z_l9pX=N9zm7Ue5X4YeBB|HNEzRC;JfJqDD6OPiH6dIr)9v}sU5Erd~BpkTzhsQ5K+ z8k)6hkaI>jn*-xHTDZNlb{L%leBkZI4lKAI_p&)FVW1cwr65ee9+A1dYV;aIy-0ui`HTgnd0S>~PD{2yGIjh-BHyd|Ym3wd zmKN^IDh;iYaJiy6=l>Tf*R{3&xOFdw`CWgC@etBT*E2meZQ!ZQv z9ySIh)26krVmYW&5w`s48M-V20%H^q@0eDfJzWCJ*m`?-CNPxik~f? zD`ql{l{2H}`~9$NBcvP>JV%+^jZpKURpsF^ZvBbjk5qxaOw#&w=gW3AsS-EDoXI3 z&}&ORatqYe@S5pY%Ptsa2aX7kNcZ*v);|>X=Z5@KTyK~hQNKC~7l;)!d$Jkrg~z7a zLjB;6Q6MvzX7%#JhcXq4?6F}~lZ0YkxIuv_$<9s(0=hoY6l4s>%>Ho1=0r77NlSUeu;uC4& z{IY2U)7J)Pb{|z>|DcDXLiaq_RMmSKSd<3E9&Ftj0G%epRP)?o<^$%k-dRKua=8DV zPnP+9nj*z_QP=Mld^23_(aD6QKqd@(%yzFtl%V~o_^K~6PLtu2u%JN$b_wM#EwL#z zxnfmi#D*W^y?o%&ZI+za z?`t}-D)&^~I!HXTB@qj3k|9Ya{J(0OMe)-CzBgQ&c)57?Ep|yG`5i1M7RZ-#mRjL; zs7CEP`50!%|KsYbqT1}fr*U_8_u}rPxVyWSpvB$Y-CH2IyF-!U6btUfiWhh7m-qj> z`>yh=+$8HcXPtd!_UswF0@sRfp{8^5{42ptvIWl?U9!lKHFbs;oY^CHWv9_Pw=piE z6H&PkQTlb=^(%p*Yu?mP05hr8aWx) z>U^R-ut7_^sLtI+>&+IDP^%_opgt+tbB=m5GVL}K;2E7A6hd1#s5M)#6Et@FHv3TG zdI*V<`6Z|ts52r!?Q^f12m_RJ9vVpey6^h{x6H+O1{p{!N2nP!V|Zk$vRMA1jbNxx zv32NrM@&{SyGO*9@@S(u)~hlfqbE=1^WBR)`v&oh?xG`EGk5&V`$zaTWpQn7m|~&V z$4JusS9+HV5z2>Ho|{e9R=l8I7y7c}(jPL%9oF?c#?&xJWta$; zp|lwKK_B~9i*|*n?wsP=GUe$p0}04Zl}5AhS4GI|h{#faTW?(QrH#&mF%59r9@j6 z-s+#uzmn@y!2nX7(E*LUhqo@6qg5OGzD_0iQyMEKiPlX|Rg9 z@k*;zMHCB*VX7tbd_!w9zY+{ZQU(OP*wE|6?L3|72SNodfgE~)FC(uMx0$8SeL8vKit_|la_|pvOkFtailnq7fhM>2s>&W(5@R0ej=5V zTeoLbP~xIzrxCY+J|}kv+7_xLxYwg7>$V+j)iiZ3gBjQ<9VDrfhBI4vrZw6Qrwb13 zgU5DQ6H-irotoT8AyDcO0UVX2Kl!X=vxra(ooC(4FIdG(;(j(};`H~a>Ob_z`wR;S z(&84ZDz0LA0TePV+HtD9YLKpmT^(fOD;M^mR){6@V~WWHZ2J7oBGy-KY0@XKXv4$$ zI$oi&VW4Qaz(kP?1F2GN$wq+Jr)Nm>)wNyE9g1y!@H(5BB(6>SX8jusFT}VGYMm@I zlHmx@46YqDpcA}tT|2bm6_xwXa-y9wW=kmJTtq@MD@nk4sq&VU)Y#Am=p&`%C?RPG z=Nd>bD%So#I^3*T*UjuO?hCY`y)%zGi=;xA$iFT=;GedA6CU3F(HWb601I%-p>y+ zxKXtza2{{HGm87IOJ(zB$+Zp#eopc2v(4AiM~9n&Uk;ukEEBD_8t0$ru~_uFybSwH ze6-96Sc*Z`={ldz9#Yr?o=)wxZD>9xS}vDY<45jRf0sD;e&wL78@!@omd;l@U3y}B zKbEwY|?mMb2MzV_iow{Lb<%7_OCVd{p zMz6 zL2Yr9I#(n3oE4&xT)Wua_l3iRM@maSlrZs@UNHlwYqHnpYy)W4kd|hPp;}RzT<=y~ z`zqr)*t4%6_niU{K$qoSkdYmKrsk-fz;!q_k`=)fiqrKfh8w+nPGXD|TG7C6ZKBd@DZ=9A%aSR=9Zik0 z>ZT_JF0!XT7-9_01HUCGjkfV2B)H_B72=h+8=T%YEuFXr&U^8`CI=|z&SGWr zlGsLT;5mwqITV^6WJyG5tM$>h^@Xc5SmkbF03WMf-(5;b*f*mv`_Zp{A=;o7wq}~D zv6V;_!dr{~`2LrXKkeaI_FiD4oDeI!1w$%(TEE9hFGbD%$6AlGmdn)g$ym#55E_Wt zrglesqeZa!3y=8}`|tN^*)HqK6_c|2XuY^MW1|N=4V<9^f&wxF7EY3 z&l>$!_7vB{RJd0iKgG7N>fE=pUf8VSX74MT#x1oV85J{8)_6k`B$E;D$(x3KvLU{H zfEP^H#deq&J2VKTwSzyOc5h-Juyj!ffq*+5#p`016ZFjYLlz)P>jxxQ#F9;i2a*cW ztrzm3ec^U6uSYrqNH=F$dX0Cgo%$#q+m^NZx_>{vwJrwJN|}w9lxz&8^bS`=U4p=8 z5Q4aS-r;<6Oxxmn)exxQAtvQ_14Gdr45Kpt**lf z56Ez(j0l98=B1os3Lz*8CJ0$3D&|7~GAsoAeTZBw1)5H2TW+ZR{E{2KC9G$2K%Bti z+c*ukiLBMQ9>wE4Xvl6{TUre1Hr!9Ma`hp}u~efC9LN93?)a}9LakGBqntt1@AHIw z&_KKJ$Fv*TxS7=#J+1$nMh`9|pkQ4ZHRFk2dJ*Sz6OoCRU!+W*B4$%7Hq4)0SLe$N zRjh^)*V&MdvWS)K(Lo*wa?%Vu!Els#6Q^Zt7}+IPu)N`+E0a)@oWIr2Pv=@^uyR%Y znZ-$(?oN>vF|yhlxtgYHrDPn<<_h~T%qFPW{$EB*0xhN7I?MMH?p)(CK;95~cwA|9bU}uCjrpH;O z-CH-Jo+sYr8F-(UzqCb1%(YudHREOum-!^3uOcwK6Xx!BYgPE6mv#8zghceo#KKNg z48B7Dh+kPT4H(krJPCqD%qpPr;3BKg;y3~6DhA}BKvNhFGo$w)x z^ri_QzkrLNKA0fNR)Vk?LL%t#K%MWx3cix7lk)zv$XEPUS|z$eHnU?Z;M&!k^!0M_ z`hMDwJ#(;(X0`Q_52N=fGK-lA9EQMR%`-KOmxpGqIIF} z^faD`!Rd-hEJCP>toroz9m_VzC`cYGkh@+19Wok40DiG=a(gSP&3g=H+AXR1{JRG! zp1&{o)2+~7yV?0s{v2OO@@F(4=J66v(7!i>R*z-%T`DG*W1H%_EB)8tbq5>}9ZIi< zz%!(rssU$yo}A&QGbbS#~Y4 zOuI<-j%9qxh{`EH3No5{t`pXyA-*Z_5h4=rBn6+NxjZ*U&2VnIwx7wae>c7D?)^^z;_TVF*Uxos;>;*l>yK?{W^Q;ZR?n+1_z+K3*aA84-M~An2UAF# z_FqcG|M8O?IK_OC=4|OLM-P5{L9C9%YgQ1&_gRydN!4kQuRmcLI1qbTl_y56aF~+q z{aC<{Yr{-*mQaSeK6;11rHMei2Xb>tP?-fOxVTE$It4=rk}s&q?WbpARg05-!*GWIE=1GYNhC`}+>BZM?Dmh#KU5 z_aysx+$ZLoys_OI*#8)q?3fIF;EYEgY3#jef{aBqoZs2ggPVp$jkUM7mUm9zO)Yq! z^N(Wodt00(wZdn&hqWWl$ES0hHYO@G!3KFFz|c&TEZ|M;d-c zM@@jeO+%1xXLh11R5w4t2Kk}z z+Ut=iEMJObo~#2lX|Q*jJ&xJj!R-qycgHRGVy{ke6&GjNJ~ z7$<}m4C92$U|;wiGf--><)cAE@LaA-Fj4{T-8RSX)?TepSq(M3*u!h^bR2ij)9NqM z7jF^rfz+XXkW`P|(^ao2xMm)drt;H2m^_(j!H;S2irP_wVS(ym>JGRoR@2#24X^hqpt0e037I6!nlU{sJl3=CU)R=4@jn8@{h z5*3&_1yJv|(SN$T>x8@_xE|=GhyiK+FD%Zx2kfi8WtARUr^0?_TaIDbrW2YdI#+qb zYD`<3OaAh?Er_Z4np9j6rI#p$@R@SueG8SAid?4~3thE=`YBHlADb1oqLV3lnXee$ z=)EIfnsg7vF3G93Q`A&rG(rAJ|}7QmJ^hHS6Fei&*#b=YL*2*|u%SyuNs4)s>{K(RvA;QWPwfyZ7zbs7>l~ zt!t)?EX7WlMEz#MB$3KektNZa``*qx6+y9Pt#E>__YrHp`|IHdYE7Yil#QzmtbcNrZh*$cP zMU}sD@pt_^mAr!}q)1_rc?)1%DPIG%vlAHP7fl{$M4e#`bF%mQ4a9S`tfx4di2Eq{5zD~wnM}cvi^h%><)@{K;lg^r31rA)?Q)* zU&-sJ=TD_Jj*yg)6~dA#U)D8%FJx9Yi5~_1Cx`o1x5@#Qin1%IHP_R$9DRX*huG3= zZ3ZI0#?N_<8w2;{r~`jO{}uDZ<#?-cRfxRC1LD~oNtXR1v9m4gav?9X3N4spR2E{N zgi>SPVT+vA8>N}Av?N33jZ@i|NT%d~?2g^KnQPD$Jl7r<**7pgLH3h`NboRjVD|`y zh*9z5IEHbLS?KNKX6GH5;9U!%yXxjxMJ`0p??;fA8eK%3IikrUTmC&d=uL=8wjjz+ znO%wA_Pcx)x^JG;?Qnb}gGrcB71U{y5I8|(0;%4B0f{@!;a+NfXUjraSdS4;%r{YDHiDEEKUPc_cGrA`c%dp}^G zUikBk-dLNpR873jOUGwWRNLfvDIy=_1g>}Q%i&OYqh}F&vX$=jFbFStS;qF=D0?0@ zeW5FB3u$ad4Fmp(ES2nDLY1vNG(HwR1Sh*}6u;(8pQHYC6*^S^t;?Z5otUYxUeuyqT-IElRzl>eIJQG#N4;Q0dAIdA0CvLM(5&06ZqQO`4_Eizd*w4}m&$7-n18|t zdzr$zKcaJbm_a*rbT!`PCqG$C&N=Nd(6LYcjH|tDI=ay!>%K-ga|;@qa?;~6KNTOw zFhy{B6asr1AvtU>#ZY#_yB0b}wha*wZ8(LMO{(fw5f~r6r!f4LuIYq~eF>r2WYem9 ziNeW5zpJ-zW9q#2f;~4;11oy@B65jvfML=#DxfM6w#edl$0>bpSTk`qtLdMVTr^f3 zmff=v4C3%v4_eqOR?wFItl{-rG)()z9_Z?bX&`O9+rn)L&r+X7DX~~|ZXDrD zSORI0Tc=~dj-kr^xb_P{$0ZL^l)b2mJY_D%35RLKDdXjUvOJhF7IK^u>G4e5x%PJ$ zYvswG7lHlM0{w7$Uj?s+ILzAyFU4Sjy5Ixe$zARdz+YFLnUvkJigKrE7HJl9Q_ge& z4r?Ju)2Dzxxm2@*XlGbojKewi?b+w@;0#OP3?EJ1U2n&18@1k@bQMCTEuRS8QS8XV z?Th$!MmLZ`8F+U)P#0*)I#xzb0qQ{(J>kW3KEXeAkwt?stSNioerO&eb z#}o!n61e(P-bS0!iED7^h%0uqWRANijl){qP_D`Y8xK#H#VC~X1SUd(2gFlaqT?e$ z*Gd^rYW7=3p$ie?7ybZ=+1fBe9ZaF#zF|6GALh^HHR%|-S%QjPYZVH z*)=l-z4HZ;ivwE_ruSAPe+$DSlPf>HZ8kE5E+5OT2$N*Y<54E+hSSVd_eTAWN0GpL z1i9iLvFE1N;0TfIz%#sMAsAJ&gBs-fgjHk^$vLeU;jq$}l(E@~A2&{}Zs;wE-*(1^ z+}b@i>KG%@!6vRSI9oPL3}DoyUiRBUK`% zGNKZM44B$N>pV&_GVt8TPQ`u1mf+SqB2E8%IF41E^yC7x?l(16K*X;$OIW}#QCzI} z=5FwV&@Vc}OaLw&2_bM@e9Zi>KN_V$_P*GVGH-GoOkj4d;Jqijct2*qJ<`(yaU=69 zp$B;z%C5%#Rjf18I{NqMscGM*x1_`gTtnr5DCQdQ8He!&S`AlK6<>367$MjLwY%8t>J0JjZzU+vKy2E__`!$a4GKnpxiLjHdXU94}WIKanm z*4Q{YFw?Mzuis65#X7YPhZ7n3zX$I~{-)g-Py_rbpfpzyhMQh>tQ^zi9XHVBNr=b| z7$yde9u8%=k;lzFt0(tBZ9Ty}@JWiWXUh~%M9n>>0Ypa5h*d!Hym2qp%+04^$l-oF z*jAp@NZg7egu-;-9L~EHcOJ%rpBdUvQa3WH5Nig_1|HW+((L%-Kd8WTFXC(FBWyl? z#O2gzY%xp54~co|r+>@{R8|LeZ#Tp7I3nt%7nFA`!l51?PbFZOxlqaVX^D1tO1B~^ zB;I9_+iQ7K;TuI!3egS`_2cYE%(ws|VGDwr`hRg_Ba3>sE9*sh34e)$F^452sKCcZ zexk;u&ja(F$abA(Yxz&_6R4X%-r+D!eXjrDbGiT-1`ouza!#cQx~{*|aP$t0FvL2{Kb2W`qfI(HDNj+uJu#&UBo#;!X}U(}d1mj3vYt`Jkzl zQrk_hr1w!v4^3XOvariesu569Kjg4FanWmJvN~0efOol9pm%fLNb%f=&foS2`~D_A z9y^yhyEE1wJ)&|OB$iGTLme8}e~P!H7uRP09AU>GjIJLx8ypyE>qU8?r@Iq9NMqb- z6!U2|aP=b+J&?dO$~S<3HMYW>#2Y0w*4Bbzwur>}C(@pBOf6~>0XhMYZf*F64R1L0 zYmqtGH`v=8s~FN?oY4=&t58?!KU_6euF@<7)~2$%S{*LcFJsIZt4YZ^5#7H$YWdp` z_`RsF2_?`-V0h#~bKfqjtnJE9!d;$>neKdCYNnzZ3NrV5+^AkFxIHFU(I*@E8qwA; z0=Ktf$TFr+&mr-imTAh{uRzahnc1}BASkWtcJ3d`rpHU`&_D&3=$wH&_F509xdcmjwKv$3Iql=V?%1{vh{ zIsm_uMlD~9PFFMJT0Ls51 z=X)ZTo+>jji2dl#H<(_k6&)x@uwnwrBM?Wmab{ zmty{g9&dqfZIPSOY8a+l$Qo99fWiQ#8PuhzJz0R&u_*x0$s1qzuC27mI6yP!~( z(8lp6IOP~<*@IvT#1It~4c@)}g?@%#kNoViv{PL4AAThdB`}HCe(^3=0P!KWdM^My z6k#>H#pj^-I1OzQ`#I<)I{~ccr(%AYVxC0usaE! z#y(h?hvep%8O&fUiNi-&cwAnR`-PvTRmnguVi?ymN?sCqFF{z9uG=SX^gbnpmFKI) zr;o{IlYR)8L#cEOyTapE;v0 z3v%tlM0F#9SNQcPhEQEZOAChbC{ENc1dp#Q;NhFUPRP7<5W`KC%_tlaJoW3Z0!vcJ zI-st1m}!n#rbL2oZ)M1I+^RNLYsaDoN5))rsvOO`1?W#*o6%uC7 zL1e$`UvpNg*}+M1a3l>n%Pv0avVn!L;76h12RjKdIIV_~zwb`Y21#GKg`OOqh=9cl zjUIs%e-~HECiJrjRVnG|YfV7;&rLX6THYVwa3tA4;{qK*;7ib$1(^%k^xpDrLzEDZ zSb}i6n9*W3GP~0a^J$Oy>VU_5ano@a!#D|pR)Dtqk=ui;i6Re!m`Ki-sx ztgPTD&Q~)Ao4DBY@!&=y2Vr;b&={_0EJpgM=BjDtI{%bbdpdi`_39XgqIMMQ-PKv* ziNbpQ+xeMOXGSf|MtZ1FVXn*^;l{K zMzqXA6S{bwgO=q!OyaRrngZ@+>&x5`{>zC-jZ!6#25a~e&gGoWUxs&0A&JqLrN132`_XUXC zo8k&AX~)r?T`uA5)_@h%GiCwpt20-U1Ok81kxb7N%<;m^V1^$>mIC3aH0!XWOn_*7 zm7f#jm@Xm^x~3^+irgO;_3D4F`9knpPi-(dZa3zVA3ixg|F7v6_v^g=5q44|s%xV% zO!&u1*AHTsKNyXthFrokVu_szWE4XDdrZR0T?l8##=Kv9$p6VrMyl%zlyv!VGt3Bv zyp}mXxCaG1qnU{Zj}*^}bHINg^9@aYu^GyX!}Fm5c+- zplNnirLj1LmquF+&v8A%;$uQAJl2!6FokaM6!*G(!)8axwT@92J~?Xl$o!sX1SICBW%bWYkdimx72YTaV$07xkbd#|6WLdX zFMr`^b@GzJ?T??};agIGkcf#P6<=%9Y?Y`JjnTR&BYl}OM$6QRvHkpzDo4@G&p4hjdRO;|ZYGp&329A{=5Vb#K?F!=oxy>xK|@NgLez zm(+7@X}E*v@m^%qiFK)z+mY-S{KoB6<@?EShBPC-5ztPx;?+$l&HZX6vnW4+5K|g3 zP7Ldwc~P_d*QmUC&Xv^Q2qxZZqT^|!A$Y@`YWq6*tk%Uhrl4+%jrW_(U0Pstz4G#fE0W0G+y_CNEB_KxV2Xq+z8c94b_tX zQ9vp>lPA=H^G=VESMBQeXw|?YNlP;LE_!%PC4@n?7OXD?$(*;v)fg$R^fdC{?Suxc z)=^T9({ieDEf|(1Eoq<`vMh@lv+A0QW171`FE*Zono7=hEkalN&ef83Ye>F-WSMH0 zG-RDDV?>6jX)jXZv5q_lX(>1(;`C!86%(Nok(zjMQF%#L;U~Gc+K^jUWIz+^mp)dZ zD}(uO`v#?!p%TH7*{F~d0R)Y5X^Z9@h2=PQFwUcUSUGsde8-W4OK z!-DVY(!QY6P9|Tyaq_+=OD=Gr<^`>#JPN`s43K5<-=udQJW1e9JPqU}amBm2UQ@X2 zvZn+i9t)f^bu-NQHOc3G_3)8r2d}AlqL@6@731hp;O)s` z=ZG44J`24xbRt>ZU<1=tsoZ|i1JgMG-vW^HO5?$*bnH^u(l>uu5++taNhS!^v0_ybwdP~6Nt&j+~)mmQ+V!j~6z9NKPcxeDb*zKnbv zDfYCzYR!>TTkuy$7Eufk7j=8NTDnE~BhgBI1l{;Z$l=E}Ew_AV!>> zgK1M3?jvE(Cca!hvNize*_o*f5=fq;8@^H2Fs$v1xT^Wl= zg1?s)@+D71`(6oE3X@5GisM(G3e(Mousa1qN@=SW;TzM0FKgdrKJ*=fzW)yeVk5WO zUoxwF7v8N0th! zHn{o-d3PlDCzY5h=BKH)m%=cKFa6yV_eibI(M2bNyEyT*m(AO=rVR7iCSFf#qbJ>E z!h=B%c_zkTp1)B&D|*4+qF8{96DZz%Ou*JNR=5IBzo3@a*5rI$P0vL{_n8*~e8qV) z{yK(;!=hx#QFoHRe%#njL##~Rk8@on5$Dk2TLvZ(r?6_;CipyzVSa=qL0pRTM%rWl z)yF2+6?S=%zoDh?rt<5TQMLJn?IJ{R?Ez?vixygp+H#_%Xt{=?tv_SNCW~k&l2-tt z1(?_}cMP&uedY=TKh*SFC(jDz$bQ-DUQVqCi41z?KIwCjmwVNi16zo?bDqH?Q;~y$ z=r|@U)-TpM`xWNkV;%i2dcu{yz=Z4r(`B(QXJc=#t9T%!`s+R9C4JX93F05W4)Bc}MX%uw1}dY|3Ob&%}^*vIoK+?%+TUg>p#WlZn>iF#F4r^n3t&yuMgV zp4(rQrz1k(q%;iM(8R}K8W9x3!rl@eg08y4 z(=Y9?2~`6DY{sBD#q#B$B$_X))cVn6VK&Ewxv=*%1ooB?<~SYTFE9;XaU{fIg1IY& zZ2TLAze+lor_Qk)f6QZyr7e4C;={dU*dR1J6F+n!$5JFm`t_c@F(8lvr(0Df!Wqtb zln!Y1Mbf?iI@XSTP$hmfj+!9ot8p~JC_2z)GlX+%-F~oExCYC@I2=i9iGQ;dVb`%I zPV7j-+LG(xkXIMPr7`+v?a+RY6<`g)@5v;vB-oaA3=p1^i{VfOKCgJc9zh0Vceelz zzH-aTOJQ956pl;p(ha=2`T{de$_fV3H0J@_W8m^g%bW=d)=WCTy6;!Gi71uv_`GNk z`8n^x)S+^$&%m$Gu!PFq)ShuM%>B*+EZnW5n-um!@IW;Q#OQ%NTK~=*bzicTdpd;O z8AbT6VB(K38&gGpx{Sb&A^^|b_I(nZAwg?ki%?K(`H31#onrCa3L30xbLPB7e*4Z) zr*goeAHm+(#Xv&-_U@+G&apQjI`$P?!cT&?mw!;y9CIqr`{(9YMAr9?pWNoCtg!sl z&HotmU!0=KwsrMioWqO$VF07g!vn4`q?3L}FI#y_t$Q(i@K{nQBUg>*G!gc1yOmtQ z1Ipx&IUBQ^_gqDvCWf>E5rz<(`UY;xb-i&fE7Tz{kImjlhTW8XGrAx92kc3g_hcg-Whmb}YpoWCRBjHc=P&puhN_Uy zI4ap5v1J^*3}z5&ML;9PHcU_iS!y1+{h)28I>JE5nmAc@UlSxgtjWqt!T}B|jEB#o znyW|Lp;1Y(%l4Hv{pCBXJQeCZpc?>G8DcEQ&f#=I?0YGSSu(O-(fk}F{M|7v#6J0! zC=0?%&MHJm@`WDm)9Uo$g&!e;dSn`TarZ6+zcPT4nxt`O2tRTdQ(4(KEIL?TqMC68 zX1;g9^en{NmSNz%hD5XP+#cZzzJg%JC}9vUVFOo!p#x8mb2Lxf8<^YSAlJTxr~4wn z7)iQqP^fH*XbS^AmGCvro;--&RCaQe&qqxNy|9vzMp=Z&zok!7qbqxB@_3WuwoBh} z(FD=u+*Rm?qGxTp>!ZfaV|q%)V-z`u@yk%22Z~eLEUn)kJNcgTQN*mwryfgW!xKW< z_6@~=f2*+~_yf~}md1g1cwLXC)UR2Hu^V4$+$=F_e2KEX@UxJ8ITOV~kEIJR(oSI! z)B?^OrY>Wem#oM4==$VUKy{(AiHJ} zFUmgF*4-O-%o_@rZ|uF&i{ptYUS=}{A`X5UFQa6`Xw!89k+fxFK}Ilj?6JBVeI59r zqc8o17nV4QEzvS%@b(~hWM0F?a*%eMNfKcB9;ws>L-O|l6<+=$53w%%MAQ0JaPLA; zr7*d5r3i)fyz+)!p;^JX6}B^6_7|N!Z55&zc*7m070HJIC~Shj)A@ooR%3EOXw zceKpL`rztCamS@EVnJuTKu=dZdQ1zZ=N;cs6_Y(!3(ozuOFhRHV3UVgJFM` zmyB>kc)=73X|+4zVmUx67GVq76vm&g%#CTBiX3hxV$;q=(qfI2>__MxS5dY{o>eGb z!ZQ8(O`-*$H6=TF^;1yKg|N(qLO1(+-hu(N+`*?O{Vnt0*=tOE;9tTxcoKC5&)G@} zm;>ZC*fqu=8Oemgl<^|~i&+Q~ z!yIIn8QkN=!j-8x)&d;L4Cl@5aUrdxQQArQ1o)P54m=*})LF|rZf3p*}C{Ptg|`44=R&h=K}QQ(zKJ)o7f;}BrKS5N)Ckn^Hc*Pl82lA#&Vny%)h z<(nEkA}X^~B5A$>VF>CjEh||Sz;bGlRrjLfcMDe<(k!J>GNNwUfFcYIyHg2G!J%5ObPf|vEeINv)`c?Y%^`S)jr6qPslod-f|AP3|TdqQXE zhRP_Z|79cus*$m8wyn^D{l0u&aFXU=5thl z^@Yj0Q4^eu*5-SQY)r0DnWmum1FMxK6kD4Th+M`6vIr$iJgNlQUuZ(Vkhqboe=t&? z1!3K&JxXrb64G?nMU{@ZNhkh}f*+%>T>iPiiLn+|nfh9E)=xM`t2!wBS5P@TX^{7r zQ#l-SkoO6SH5_A*`wOUJIjzv;o$ZS8G^}Xb=xGZk0_EC!LQ@;+> zv$s;}BieX3rt)l8GCz;nP(}dSDDqm2icmCM+AeHTvCW2x&vqx?Wfk|_ASdPo>db!A zLSjSVn(On2Qh@F;V7Y;#iSD2H9)s;?;X5o#2D5O_dHSqDF8&kVVqCRm-f~HlF>?(W zw>Tf%&}E_s`Ht?&bI-8Nl1c+7H};JES%3%wWvW#J)t4t3B7bWsoL+)y9WAgjKbe;8 zr5v%0i57p=&VI^)kh4AdS6*h8#mib8;9y;H{)Th4|MXd5ugCh;@cB?6<&~3A%D>e} z4wjH~?+^rmkq=wshZK+PJ5zxyyVrGet5pZdM1 ze&PSqu#jtUkKk6e~-N}s&N3$X@tl+bHj*_82Y4AO|mqXO&W8AhK6 z{8)01?w8%!SwLwQUc>ui9(HhPR2fi# zMn(vpO?x8dgqKhZfn(%p!l=pmocS$aEU987qdqtLh{^Lw-M*t}UMg4j&6gw+6`@89 zQ1b$mFwy(&BJyk3ePhQ}o$adtSvyLnW2TGl`p)%BlyVh8xxnqO#CJ}IyHdU+hD?W&#ij^l7Hq9qiR#2F zMP-g$@zNznbo2J|4ILAOhM?(4#r&8zR5f+&KT-rF zv*bvF|IqxGzF+E@DX*3&+3ZPucdtWDae90i?>R(-BhbeJ_5u&))jjBEMfmanjs&7x zps@BKaSG{|Ju3y0vy2m~6)8)7Mg;ah1kel7GT2o#k^pB-T|>Xz;uUS)hdtgN!`vXiBr3H+ z;D$@6EF)cHuXY)Q`(QjxGGcN*`zA!MZ56q|0e)j9>#_N~L{Iusu=bJJ?*9bnAJeGp zv6WglhpP!6bpV}*J}iWzN5PTTG%VW^qV;0_T)ZWEeLrn~#rk3rp3K(*mi&fhVvOTO z{w|uLn_z#`*mp^a#JeAo2w~M;DMS0VxfsAq`Nc&7OZ|dKf&Hw;0K9|BcfK= zB!I|HN+GRdq0OoR@FgGMvjVIBAf7Oe%?P6WL8-~|A#P4<$apSyRK-|C-ihwIuQn(c z(|5#MEc;z%aojj3`e1V|F6CQ#itssA-^cH$VjNH{-qlMT=42lpo+krRYx%SUJYJW{Djb?@m>kW9AK1$Yv)DZM?hN9^=`+PnzwDU&>qmlt zj5`w6;hd~aBC4i8W{1Uk#9tYAtKNCOGyZhPDN^r&l<_ZVRvDi{=nU`u74KK(9GI3g zrwdI)e$Lk_7IbZjUgW(j(vLKl*Oc1|TE=7DADzaFkXm~HH*@|m z-~9-(?rs}PP3$@U>+qMi#&eeD+Y&9zw0NYYG81BD20**UW~XxQ((FYS{4~Skxk?o# z-+e(oUbp3^=mk9{5rnAAnC}oT`C0{+kXBr3@4S67-@Y8!Q7NSU!Xgv?&3TXjd&g+6LW388|W@oGt^@$x>MO#~1tfL;uigC&-m6=u_K%J7K5BpP>g*OwKdN&3Wq;wp&FgsWR2yf_$_r z$9ISL__ZLceir%o<;x0=o$M?r<1A4SvtG7zjgwg;05wU`0jb*b6&C5W@~iS15t8m} z?O9O>Al+L8&0s|;#fvsnwu&IRv3mqP)V}5#*wQ_0&?t&Z03;(wd>{#x-RLd>d%0;4 z(9QBL(HS-Z_Hh!+-2Qe(N@3fbKhwyItM1<`u_lm zB%Ai|{y9m^*e!K&!rBzlZ@q5-T)9Fn7o+R%K+UVjwnFL#$feW2 z!i4=WXzp5yIHw?rae_g5Vs!`Z6z&rw(;v0c8bVih`09Hwef|4`oeB9d;A9z(XdCeV zh%g`_DGfuXghAzcz8Dcvx1iL{gmC`iNmc+UC1 zA7HWI12b#Ev-iFC^}B9mzF6oFecabMJaZOe!i@_&%zxI)Jy-$5My=IdG-sP>T!I&a zI`I6?#rg1xf2&qFxq}^%CS*WhM#-TnrR2jr8 zWlypu>M>;?eRSzPQ@lsWV-rBmUl|v~wHbgTysrh6G*s#kX;WAWq=UR&rh`y&SAYc4 ziN2a9%T-?wWhZz1-*k&2`O!UZX@~>J;p=8*+>iIzFE2+QECz80;^oHPS5KeA2-~i( z+a4n7n|lHhnfc5@KnrPtP@BSh}p# zM5#`!E2u7M&d>)ri^@XTI<5ivvX3G-TCnqXTuyGb<80JQur$Rr1S`U2t4IyTC3!-w z)+|N>(O2SjoRlOYgy7q#fnj<+h+|ahV}=IdR2@I;G>{P}IW#8KK6d=0i8VjHxOCgz z8IFiC3NKBJ&f5micGVOI>@)zBt3z;OGTLnc{dm;%9{4rjxwq2j0moJlXG?&dnj@;y zPD}fKEz_%u!dvc_?EFWBfL` zM!5D6u=jD)LF7YQX1ch`$ms+hQXyJIka~~%$6v1uq9RB!lUAbsO!rh|9-(0B zIq_(fV6=H)(4$96*42#ZI9@s%KZz3I6)1}=O_hfcQH!PGGq!V4~{ z@q5|NPxO;R><8p|44FA@!c-Jm-vdK01vqI|W^=V__Bq@3EPtirrrM#f7Ynx@8VIyLnRbGwJqn{- zb+}oM`5|Qj*QEgj3?5ph~ z4!-J($t(NXo2Mff{EFO1fxJ(`1?3{L6}%Kik%ZD@dXdxkLfxQ_+!+W!Lz;-Wzz zJ)f53I0OIGR_!w_?k|Rp?NO0H*6{`A*YV|6P8fGHMqzhysvUF@H8cyHe-ayFHnW@( z+%5CD+Ku$s5D}H>&I!Mo*Kd?TweIn)B)NWf)o{1Z6x4l1?RrVA1rQqxc|xzXDpoTP zmIxDw*EHYLQ)R|Ob2I*5x=H9Gp7KBTL+X1S)L)8$IRad*QM|x5T|pW%-v$c1;iTey z<&4N?-#IP;(Ec#i~f*8E`-=2i3_72%xshU;rZucSlgoEYGJL&r5nZ2{!02~i!F zsLRcF&j#L_p+?J)w2vg~<}C{Icmjj{_Z23ccL&1TI=qMy$hteDvQG0#I@h8SLPZdXHq__$*OqbUA(C|EvaIv2jeEQq8Ar{XsUIe)TD+h&8P{?&fXe~(qy5oq)_^-c6jW=n z)gN`K37ZMJwQ*a#lYJIw^I7h_=A>8)a#NUGdSJoAZ1#mLIzD$e zSBpD!_PG6DRyD?gP zQgO?gP06yCmQ7p?dT#0PmLvs-dk51s2ixFVx%>|I;TDE)uAF_llV+rJI?f}1t|mryQ;_E)+GCUUR7W7hiOu-^KHE(+KwSJFnZjF%1>EeO_BMzc5;(^WE!*kqc0>T_U%{Itr{F#gxpLqi+9t1xQKx!|HrH*P{l7R%B*03X*3sRVw18H&(Glih!cB*|}8>_P!gXBn- zTqA~XBs=wi7qaLN;W6oW>qu1viVg~5XPiDL1PWpY zu%~lD2zp_-Cxnm0`bXML9Ca4KWGYMCK@;7WT!$@H5NQ=Oi1D-|1q)dA(3+}PIY7`0 zBK$_MAhEQueg}Fn?gv;0F@;g?BUF%>LV2Ix0V5a;@`_Ii0`Eo@TxXpGlG`yK5Z(>% zMw}uLLT_XZtunVlP9Uc34z~O89_QbXrMUh!QtR}liOlZgWTE|$U~+co8kCNx3A> zuIJ4DvC9v}zfEd#9cO<~(oY)53BP{*{4B91#$K!Io2_ba4%L#KTGv#e_rdEZ)oer% zh2|>TfOZG6n>~H;Y@L8%i8d2^8Iqg+G*joD#67{D|GknVao2FI(j&#R**dqecjvc3 zm*R7o4TdEb>}s)+P^jaT$1w@yK91t)TP`Y2^U-h3uP2TDdvy+%=@l_;OHK-AuZZp_ zQo%t#(7O3A8Lza(NgzRC7@5|!ir;FQ;_~xTMlQzjJ`M>IgMM6S2z;af%YF%Wn{-C| zX_=_j9d#XVf^hF+%hdlVy}+YLSuR&hllYuw8eTJt@_9H`y(n+=A_#voabI*-x?$%h z$>vCit@;#7HU~o_*NF(phG!)Okxp6}$|u6bKo*%%lvJWPA*hyir`}=&Ld{0i+M|PW?)=4i*Pwgg7a|{Pe zti@AvL<$)V5a3uyHVyv|E#TXgsRA#E^qUZ;94d-+wwIZRcd{)6`>tyJc9rQKbWe-+Y7;aZ`bG{5~=~C6qsxYiHh%aNO z@_J)n!caRZum_AsZGPu~_wz`{>pa3CD^EOSW#JSZ%$7UzKPqqgeIvLDqgo ziP~W_V;Qa`p{_cjFNouiJ5@!k>$3ffX10_47t1PWAUTSn!z<4ebo+M<=H5Q{#~awW zQD!E01yU}Akj{6&WB(O|F9-JnA4;Q})8~V|!F?$aPWeJ)obI~NvSeQ|(B*?t3f&wQ* zb{nKhRuB>P3p+kRS|Dvd)A|fL;GPtAOh^ zGmH_k5?h4Ma4Z8W-0fbw*;P)@pz|X|d7WXjeY`SAs{;CW7^hjlt=}Iwp6b1lGbDke zv!!Z~domw%F+*EvxAe8MUAcBw$uP5~m9j-pwr16Io%I>h-VIb5OrISYy$6$2Fg=&w zJ#`ZmJ`lY7Ozie~yWZ{XrpL)=@5;q@4p>T(wQ^1PH1MBYc?u|Odn&IB zfr$B<@@~IDP_3aa0E5jqrSlF#c z#r4+H&{Ro+$74*nY>P87qy?y-kkpH@sXrD)J-;!#Zh7UOtq7k5Jk70p3HMmZPcxxN;9TAKaSi2x#2nJRRaqH zG`Uh>y_Jgz(n_^#VIsGI>n}|cq2{*#;j3u>iH+IJ9sk!6q~(ztUoGZZ;RDqYLFD>i zX#8Ak1AYWmreF#UDSk~9a)rb2X6dBgLz|(y{tTztnL`nDLYn31i`A@i)k6l%9Wsr& z-Zt#V&=13au!CJ@?X_YT<)onjlNj5}Ki{WUdO8|rBeD6_M8vAYlzpFnH-zb}11ZRl zp(_G^#{;WD$)#D2wxS}DRjAa`AAJ&zkcZ6%D6x2V&Vm)+O~tyXlK0*IjB?$iSJZle zW!58&z@3WmdxM|x;B8A4KqRm(Ejx%UELanGlb$E^>z?F zf21_$D1g42a0Ut^)a%TQ6Mc`l*aN?K$Xa}~Z#(E=2|Mo<*D0e0i0ZZq_e>hiPSP*XSW*7aK%;p6!p^=j6}C1@5YJdo zG~XYBuP;1ViiPltCw~g_NEdJ)vKD`|i55EN$%y|FSLjDKV^9y4{)^hY^NuBSm5tIs zr$5zeh=1B^rS$oNZGw7t+(Cv$T#gTw9`e=z$Ai{;{;#Q?^f9>B!(4<|#)iOhX;TDc6T8&AEt)`-GYz zCBEE_x|Qb1S+g%}?CvFG%-pi)Cgas$S<08@wuz1XyB%``oSYa~E&1r!4L8f?iZdea ziM85z@omt?q{uj-v1KnFDnT#aevT-6 z!wPNvMZ>T&jIs7#0? zMG30t?+{X6Y%()E101V4an#MkXjcUSfX%=oSjI7u`N#=a5nYWVQs&Vb-{*j=j@ zIXT5QKpUx@V0NKIy|OXxbrFRUK1V{=R}`AFNpDF$DKERxN)I@_6hS-u8SJ0~dk8LR z>POoTu6oGD*$J15sXKK(xGiw_q)Ge0k11ju)M|&xtTlI~isW0=kLa1XV&?Qb+s5Yw+>G;^5sttcM+{Y zu%p&kw^!?bjZ4~fNoFO8No!jP66!EOh(AkM&9}t}PA|<3cZ`dZ)?S1=&Be)Qfo3{U z&jZ1iG$gLKtwC@dU?|_mM7iB$3-Lz16~%ygG!e94cOeE(W2X3Lm#+ovs%?DY2h94A zIf?NbYbEU7Y5^ITmL%uMe=3Imk2!Gr;jsAISb=z7+$O=kWdHaiqNqA-JKr|xe_azX ziE@r7&vM`6n~fWDn1a$F+GO|q{XMxo4a75cilI7yCLNq$YseHIk_Y6$#zzQ z+4h8*{rNhm`NS(*DPNCTCEdv`p$s=cwVJ8(yJ(mfls#T`@b2^yx*|Z1^MgU&(+=&J zU*ZJc`r3>K;c|gtvq8;=aJm0<6cAIt(T36G%;=D?g*X-_B$A;DoD>rA5T!7mT&3=- z!A@7~dr2QZWFYz5FokuN^O8la>CKQlQDXH@eSk3<1%!wj@NlqbcG249l0hmhhFUd~ zq8sp*YQWEo9*B7-7@$L_xnVT-j{@;SyHqO6(=1EmOq%UTcC55yO=dIlIj%wuzts+w z?a;cf`xv6hDOFL!3PF#?4@yQId8pJ1{}QV>rPLQV%{{GaF+D=iR^+fU!w@=Ag&8L? z%}9IEBV85usM$_>uO0IW-aJaLehGF&DO4mG*l3frDCXB< zjR@aT<>Q4O?7K(k>sZJ+Ja@elMWv>Ag+~IB$3`bM!~32fxr;{#$xv@(vXJKi6fU{o zl4e>wQb_wEAJDzd38rGRmhzL@YtN@I6lH8OZBc>WWpclj1yK}j z)`dkhcGo`~i!p(c&x%5fLW07Iz8fD#Odh`Ea@-nOfl_@_EFOA9su00X$w{13{$pxOs2tMGT2d4W` zgdvXF+lMr0|Hw;qn5P|>5FqWou;Vq3V|A2+}kr0R(QbZ(Ae7z$%#70N|Qu{lNkLVqbq zi|U5LoQF4ACK;2)m!mwwxa^20r;e;}&Yr!w+<~q35>xIN#g~cYfh+2b9v%^dsOHbJ z!6iZQjME47EX0uFQ=%tJ!InuoOyJDA<15gq32D>Se~gGf^zvXE+d>z|ojh1)`bR!u;ndQl~Av*eQiq6-lbo~ ze=cg{XgiP-038W!X91Q-D`({fS4B`k#7D8wCIiH!V##!MfBmZuY}rgaBuUaHnsGd0%ODQ24p_i0rF#*Wb+ zw!67psUs?O>qF1{&j#X6_GDf->y><_6oCr=R2ON{}q!NEYa*pP?*)+$#Md!vg%R%6@~}e411=HN0JxYZq@VD>P5MamXn3T05bU7 zHoi3qOA{@+SnCHyv(|WmDC}?tA zp9b>@Dc2N^&xe!r2kEoBXajX zsP&U()SZFMZ0iSR5?<0ANTsD^vT+sLLWN$?1b+jwAs&Zj3y4?b8N#w7-^~Kz;%-rC z0{hVJqOs9GkQb%_(z^G+Gcle~@5Z!?a#gbhS^(7Yu9}4H>Ogw>-i>EvUPKDif;3)- zv;&H@O7(?#XTRBW<(?DX_(qgf5caJ*6U)4jBjV#O25^-Z$-tx;dij#_%~=66xwZYk zQ=#s^kjQ^!Ux~^%sN8ghBvIugg{jR{dV+H>gm$!f7FM($7O8~#WE<_Qi!R=$h0utj ztOfnyB&rVcN4mB~dF<1uK)eU1XclOPI+R8d#)iThKlL4G86YCn8?wV99IF*zqf@crqA9g$bw*)-BMf78BjUj+%>@ zUN_NXx~sq;T_{y;ZUXG7V2f#r>yf!e-(j}<$2)^XSz8n|4&KQfk_J*NQeX{GU___G zq(sh9fkkJeF8<@ZQS+Vr{i=5?#oKY(>z4Us4~_7MAn-<|irudcwAEi7cK0HAWE@ME zo0n4}>nZYUJD3WDE`3Ng8^>=VXD($hwR%tl@MW;APWuIP&2!s$HETX+=tPbQP?4m+ z-TJQZb#HHl)69xih0SIimmu(jyskd{p&*kjYVY9x@)- zv@A&NLsC^2bC>9RzF0PNNY{ie;*=Bgbn^5stm$|@eja`i)Zl^qNHi(szrC>s)S|o!_rkCi3nEm%U%{aw3Y8$Mfh5 zQp>y_wsL-}b`m2obpoT1sYDmL>oMyNbEM1Q!Z&i%!uOWd0RCd9zVFPW)~8fvEx(_$ zl$IKd{o^t3{A~#FBOgtKC)M5AV2U;A+Senj%%FTu@66sG&t4@mEC=)#w_QKa!P`My zzEQfX3{y3!3v2yT{zLl5WZs!{uWX5E)Uk4d;Z9=Ymy91vxu>1 z%&LHiWi9{v=Bh_3-Yob*dm;hD*3WhM{LcM>!lLl=jxdGc8xwfm8)7Vjx_*gYJQC$r z%Dbs7{u@FBr!-D*vw5jtT4A)<&^Oz=3bs%6eEFg1HC=WJd50V@>dyp2K<1=0AL_18 ze^H6{(_H?Nh)exBHyeRq<-MTVTVR~&fi}T~=G#}N@t*H%_85!V>$Rizzu_8F_1@Ka z*%)s6)&&-mQI@T5U{fap-U!w-OG&(k0b1>CXZ9z}ooP9--y*DCf8j=VE!R3m%&dCx z%gsC3W8>>@Rw{<@7le1yAR^8d&d(y|lvMI@fXl-NH||3!!9Cm!xsMxPW;UkxIRbb@ zi`I+HG?0(#XIhu{dKL0;KGS`j#NHgJWv-EWdbUlxBqwc4mW1+|$BN&G6$;%n^>!nbw z;5^sny&;JU52zL!z%y_#B~PFqku9e9(31!KrCSOX^u@fQZk?poS;{Czf7Tq>*titTz@FeO{XVjc@c zSy0H)H=!O~lL<7hBN_d4$zJtvViT6pd&S(>3_8_tg6DWiIJAp&Ug;6!Kl6{+_L7+@ zy|egoLY7~s-?m=XNuIej=<(Wh-^Li(Z9pdf2ydf;M+kLyTiACPD2 zodtk6v;^Ob{5r8bs)d4X#gcs8GN>#VBO_r_ms<>6X^B$iLY7hW0hidxYk@mTEfcP^ zEYChinz61U!$34k1$o?3H5E}4sEDyOzeSe{vczUk!fof|eJdVxdL!L8K9n|(@v)JW zMyK2EbpyD>KFCL-$|vKuA%^zt8Pwt}cUoE_it#ZkV8={V(u~yqMCfvZ%~@tysP=07 z2!JzUqx5kGnMF+aLw37}1=rSkL1k_gC z8LMWgugRN8yZh7&xb23pzMCk((DX`%fT7kl4{B-V^U(N(H~+RF|I*+gAT4?WHUxD7 z0CrX$`^s|^qN7|ANl{kfrP~7Gw2y{ZBI!<`795d6zchl8C@8g?TJGrm?<6;N*E z)Jdghlk&}mlL`*sTrIo*K1)bQxW3svM=i}sRj=*pQXjfd*7g7PEeFy06#WX{GT_z>MIEB&fFEW~vQm>k057V}p{lbZ zCNNb%%jH2_$l@ApL<$g$#C%y|5?SK!9iF8^P&z7nq)dGNnjd~Zw&~>^ue{Eh+wkKU zyC4+$<0a@M%Y^Ov%fvXU`7d7EK`zZFie>u;THDuS@xy@#lJ!eUrPqokGv7bFPT0$iHjMJe{Ck0qMNpX&9z(-9 z*WYZSYLo0Wm4$?(O={&Z9a%K3Ay0_#J!n!kjh8STsah$w>+niAKGl_39SzAsxgm~x`ZNFGgklrs8_4VL@ zY7)_mFE$ONovg$8?(IT1gH&|na-d|J7XQ-oq7JlmZ+T_P>)%-9q5LF#&+ogHA6#=I z0=7}>q=Tb{uTEb0FU3CJkW6j3rsXks0z-!sk4+j%!|;zU{s`!ZBd?eC$7x9>N1bQc zorIuIlD=N~2GviCp_)tCyulHpH6)nPNR$nCdb86Pc{dWG8%1)pzI=`%V86zHAh0id zFucz!dPBU;P72dFQX1)S{|YdyJ7FX2n;t_x7dfHC!>4VYyYz4Fxf=E)F_c{&uxAWX z6tdFs=60I^;xtz9f%$z1yMzaqi%1y~0G^t*kJsu?qArY=Aw z4tY3kL`2lezbL*uq??wLWlDk5=0yITlTq-$(z@n1K>u!%thlD*#K`}|XPKcsht)<) zdZMF}OTwqa)%mltv_e&1w$IlJ6_}hCP!th7Y1banerz%UGM=-5%kE#iQ=-8CCyM)B z`0=1N?add$CW3Xv^7)X|D^uk0&91moG}(}My@-?}fQQ3Lka-Ex+MMP`#Ql4{xrKMf zO8)>Ho{51tmf3+rx&^Dh@^fFdFhSZQo4pPuD)eRSJlZvx^!gR=7wfpKO3$S6nA)uU zYVB*tosHLykL0E3$qf{M)|v!zOt}EWNyEW&&EL_j`p6-xt}#{5vmmVFK*lQD3Zlfu zv)w93)I-F}lXI;riB`*F0Eb9Z4B>0Qk}QzS4B43{63^oU`Isj(VDBsdiKDz~vNwFb zT)vJTT3ys7?-@;?E!GoeVD9+&Gp@A>kf7MH`vvV5>WE5UrA`jIDX@f}xEH2Wk?z=nrzM?pEh$mW&9qPm_AX4X2~5 zpJSyvh6uWxF^`awt6U4n7lJTp)=0-M%7~-SasRooGlG#6J8Qc!O zU9gHj3b8-|$&`krrbO#!;(u_ZZ%!!FRnL;6Zlz3*V@n-XgDqr$J;r29z$A&yfbEKe z5H(l6krWVHVdCTw#5*vN&JLz3@i;JRkqe@^t!WJ|ZFJg`Od8e{$QW>^{`5&F+^H_C z@|{uy+*Y2{&kzGdX7&Sphi)u&0qn~6r&wg?rzCT%h+Ndw4v3G{vuA(49wK+&-jYo$ zo~Mq!hdrN)HEc;O8+}z=1H6)W0J^z(O9)9W&a7y10ZkUU=!N6uM)ewSFoE1G7>Tty zjS$$M@h`mF40kMUse-=_o9O<+tSQ|^=?}qmD-UV-J7up_!_x7qPvvOkT2%(ENOca- z$_Y76NJf@VTe`j?mn@2i%2_%Naiin@P7#6vRi3d3g&H5B(64p2DS&DRVm&mVyl5#1 z$9eXHpt{KJeeHuF-ShJjfh#GpI51AB7b%uVw|%P}BEceeAoX%N@}O6|;X*3v%Ax5j z&4)W_QCzojc;|PSyuVdvCaIOv0bTK`Q^saVpHn0+EGYQ8wjx_;A>;x3#akN6rh9ot zP;EQ71k&99LTR=>g(e84;Fu06>(Zy!UmJ!g(l-!;Z=~K~8>B#8&q4 z88epMD(iq>Zp`UvTlN7Q`I*M(ZY7dx#!Q}$hQ>prjRc<>jOghvuW4apcc%>uO+U+j z^Y^(#$R1K*`&SoO$lnIc{Zqs3O)cAz1b!Gp2ZNjA9*d(Rat4>UCZDsxRAWV2IQWkW z>~Pi#mJ>{zJ6dk5I$bSl=ce9anoRxvk$Iq=f+e&od!#bUu5j^9&0O6*Tv4kdiu3O^ zb-&Pw1n>dMDSXW~euY@g z+&4FW1)VJG@RLS0?tErPcVj2{)u zmg|5{(w5?J2E31;1)?{&K(4}cOy#9LJ#PGs04q6IVi#3n`j&bX zdUqCj;d-wnNFDZihD6QTLQj!{k9W)yS-bqbR_p9NE&XGiBp3i!}q zw<0((p%LKm-x|*v!Q=KhNYs)4l|)fTew^+N)Vq?=<+o=d=LTeN$~=<;AgwjGuo6si zzz~c>?);?sFWlu3;V<<}`G1e`2w70F3VZ=b$QbP?L$<}_$W#s~O+I-M9bIc7W>4RJ z|N1u!mJjV2Hz0B^ct@V;&{X z=oL#k}~tC8{g_6WzL7?6AdQmeXUPX|H%uv<9RA_|33JwDCmUc)_YCwSB+xy+BkVjsg5{mq%(4j;2M116}s3)BXmN}j)- z)$}Aqf`oZmHJ3M5ze|J>VOVvUs%|0&UqxzhN72|)Evw!=(u7(SnWhKMahFOt^Fj2@fx#E7mM7!MQ;gk#W$Hbm^OgtQlv(K|0erJ<48Rq z5Ehc|7D*Ip4Ez^svS4ZO1{{FtBF@t~gveHwAww z#Ob?mjC$ImM3RCXAFf!E!3G2!wy8N6FG9;OHUO7HHzli@@H4JgGmTq4j(;BEVMKdH?f=^NAD5tH`njOH2`e@P z{yK{2z(-o8*h2~;*}u%p=BK@} zpU8A+G8N#e%D-0b8dka*zT9+W*I``ci{|&dW!PshVFdI>TN)gJyiXuc1OJD<#rJiL zGL=ZPzbwueh7SGtUC48Xr{%Ir`(Ioq(_n<5;IE^JuKU2AToO#zQx=7%7=>6UZq)$R zFc?};%{sFzuAx`5>WXzYNUQv;+AiEy+V3A1)`j zjttJ+fVY6wM6Bm_040ZYc&Me!Jc}1X;zo*DqD~%XoK(ahIciY|d;hmP{8NO!1~PsJ zhF=hy4ex1F;~)z%lsq^aW9rq`^}}0tqx}X(1ZuqU@1(_Vm=F5g@&-q~JJAIGsGCk0 zZ%QaR{XzNnbf#~1`6ePi%g?r!BGpgOi_um^3v7#A$%{()3Na=f04XKfO*<5n*D3$!u4S+J22jYgC z><4!21m(FR+bftRzpKK|4}^&!B08`nE1ZA}bwx!!sFWkx1=eeLvJH;eJn=~FAEw5C z8Z+k7wD0Cx4bR@AQsXIB*A>aDA0JtP_z)G-6KJ_O`1K@Zf7J~G zxeA0+WS+I6+?a$8oO$BdHL%K8QQ|}ga?X~!_Ii9y+`PCpP1egRA-1kBS1;6?C&3b- zo<%T|XHgJXlNQhJ3`RPA9RaR(nVF7eb9p8bQ>&ZzR-tNb;71*6%${a(*9qyne--h0 znJL8Zz2nhfs49$ie+Dw#K>lASHGveeqe<*t>A0uWn=BRvY z8RQW?(-Ny`f&FdT1aNd3Jt_n{9xB_$nSkHVbL`S}hNz+mi8 z^C7HbU)TdR4fFqYE|JP1%;k}Nm(T*qdbu(xtfp7&K10#hrF%S(2^tiTmV5zP*kqH- zbA(HpBe11m2R{7#@$XjmsN|eUKV-N!?#PTtoT z>H02{F9YH8H9(^r4L|%um&+%agF5TWA2uHrD5MHA8Woo3jN$`I)z>4L3uzEa*}-8b5|QAs zS@#2hIXhgbIxYJ-3(X*ZFEb*_hoHv$7yP&`@nPTgNl$`@|5rxF=4X8l_wI|Wz7WQj ztjsJZ>d^2v6A+1a9$2Q&>KjWW321O8%c_J_gv%6Fb>M+2dZ^O0&+Q<_yiM z;IF0}*ag}CY@rUDOX?ra)l)r?p^<&~5nT(a;Q37z1#1fzMv$niY4aB?-zGZWT@0B;EvrC)g2;8 zJ`E4?Byhoiy-*!9(~i(K$6m49ELSsK5!$Pig=?Kl)8JC7@Z`IC_`tDJC56ASac{A` z^NC22K7OtsVFi22eaNt^TeT<(IWwRgg81BjL$M4pWJ8EPq5D|8JxQT}yzhzfzY3#7zqnqmwba|ZCn-WP{F8s{$R{I<-=X~sz2<}x+T`$Sq^ybtop^EL2Ne==YN z`JeU|7;%)D)q;5UEI)uXw*RRTYRf~>1`+QML@tFD@nu2IYl9Hy>?i{B%l>Sv*XMU9 z*sXE#>`$(K92Q(USY}r42?Q5KMXsPJon-IpjW1ZI(9gNxm%2+#j8p-%)Pq0tz1D`U zH?!2mWcYoyzA5l`Hz2R{AiKT)+b{5jz+R;w{1pUWGg3z=0GJPWp0mw=AOn{Al}tcB z@}I`}KW+N|wdxZC^Mv+H@?4D3BB=|-Gm6C;JhN2`Vy|(5BW{)=3GkM-&ub{p{Z0Rw z_$rwu6$Lzpmiqv>L+2ZL#g3@LdZ6^YXEi*@3R`J{d8F2RMqdn#VT|~Ei5$gFU3EBr zul#J1PBKC2>ofCRBjj&?^x=oNEvF7Q4hnte{3L(eP=V6NtgBJ zQkf{U=UBch&&G{jCIpl81FcKyDA2pytz0NXp~(2NN`~ z=O^KP4ap1Om)<5V*v-CS?$D1`TNI8s@OcNX1HluPMrA!`(t?l6m>;}Ic7H$TX@aXa zVR|iCHe)j+Zn0$U{1DUG^wA#`OyJyk3zFG}i|cl`$$vw`|E9bFdu|FdT2?CzFzYqQ zt+_wPpfPVbNH*qGR^TeY?g|w28GH3OpKQ6y`9TAw%cI!lz}NRG=lSk*-fvM<^C(9$ zW|7y_ifw*)=0_&*=uomX^f~q68z(}D*WfIedpMJKAH8^{R46bX^xj$M_R=N>gCGEv ziB80@B9oxZSwpv0vN-VHz ze6$um5(ZJ=&M;?`()L@lT+_ICA`L)mu|^2NJ|0qLB7bTBxPq4J|CLc$YLl?UxuZ!B z=*k@ouWIH(IVHSzt^O)31{4*cSQh&(;~3qo8(l}|BGnfSu^_6JfA9x((N)!1P##UK z!G3k3tWE{NPX`2jzhQ-}C8y@@%Q;SfvjcIzdwfURF<9K%68;|l_Qiwqvx@Rl4^{*x z^NFw4K@>L0y9IW(NakqBPx&BcP!9s_8?W!ql|4l$FG@EzC}u(uIwE&$chE%@Qz+7~ zPM}a1$B20e&X9$e{St0bth95mV~lH)48m0S0qGh8Gi6~@aT~|oMsAZK7{s0)7Dvt?V1~G|Kqe>K>$-~=pQRaa+ifKF(X_yed(Sk zX>-5r#$I5(UR7(J<_z~8aSpDrNl9TLXOZ5i=X$AOgpn;?&xal%685>nqT%do<_H89t64qy}SRbo;T~k-s^>Z#cAo zJ^ZAFki0Ef|Mo{fO9HvSlvYs-pwF8DuLDUyTyB0!1s4U8_zg4j9RE_hX+=DdjmJQo zfkXlkaDCN(ChYBM0k{vW>K=JG-d=n|LbE6rFVn9EH+y+1_b$!LNp?EC2F$PPc@l;{@VPychjtv$U6K7`QGkp+ojGW4HezcvfXuX-_K^#LM z&&3`ma6J#JIUW-^bMAkea?^^6KvDe5a*QJ-p7{YxUj%jH3t}x6`K3lb7fb-=B8C7F zmbe~1<@-S3Vcw8U&4#5I7oC$G{-Rm|riZQa>Vmq$-ULk7fl2hy`C3(wo?%p(*;0&} z%is#Wd1OE;*~Qt6^4Z3C(=IxZ_xEkrGPGRVc5a5BaN{*Tso7?Z)<#+&>q=RyZ7*4Jw){K*(4T0|5073_KE>KXU+I+Yn%i>JF8 zM{CNUTeOA@F=HMgRaKPMd2w|@A&(tN8{_W&_4FgCC8nfXz<%0y9zaTCLOiKog3%WonElWmroVu88C!q4r|S^ zDUFZLp=`Ve%oF*?@oH*X)dyMpKd#OyEUGtb_b}33(%m54AYIZW-61e^r_|6XC`d^R zASECz-Q7dCbho7BUjFy@?Sp;58C(|(YrXFi_x-y;s-o1WuQ&FXm;U0S@_FsO((tCi zk^+c?GE;xyfX!rnPZ0C+nJsOFi1u42L4p$>ZXo)xK>Jh5bM>Vf^IMmQ))4@6>$1l} z@f0Rz6(z>ywE*w5qQsY0Eajva)h|j&(Nesj@;i~O(9(}#{l<(MU_qC0&xWAX9VUNy z9-?}oqj9@JM|N$Q2{Vfoy(=Vdd_>t#Z3bf81f_uppBXW4nb~XV(Li;X#lOrmDo_d= zPy%N2#}nIsMj~^}Jrs<<8t9of9Mu624YzfE20iYi+k4kbvbR|Rol-BZFZEv!ohR#9 zpT@2fnDr;7EWR$D8^w^BN!)H6(wYBmr?N-k8(Vh-M}CkJyW^S(d#MJo`$`mQ5af3w zkT5D#n#V96m!Ve+;nU5?;>QWzn{K6VaWPRwIGz*ACWwUY1JhfGJF7UBvaIw`M&nBv z(d&s4W>Oub;w~=KI-X#q)ZmM6%VfVg1MJT~K`)aKNR>DCuWLjMy0w~$vDWu!soaCy zsE-7dR&544G3TKZLI_*&iC*92aa*VJEr+jdCusq!mxh76Az$qr1_w6vx?LY>^OdYLI!qba?5qzWT zgv2H*jSrruB0@x1x_K*^%Wl>sas*;avAj$SIowfwLMyr|t5O?zcXd@8JtP!&mm*4h zZ@on~X3tmL1gD53kF^$3oVen6-7nvRKP$S zAFQc}c=vIc|ITQ|@-fN_sk@nd;JcH==K8H^RsfviJt=YZ)5mlsib&yW;?1JH?i6p* zITpX@Z*Cc=wSz;5Dyas%990AKuyT^U4D(u>8P3H%X_NoZ)9=0mhEm`%$kS!_XV;<5 zjgj8^?ostUD~v&yYIhr*i^&XP=_#H+-5%oa%VEf566$r1TNj-L*ee6V?FP&pr~HlE zE>OG^(^Si+CKU!KXJvr0tkOYe&;10H@Y6@_ZsoOW)A0Juq93VSES}rP3lD~KITF`A z9H9rCef|fbB^6Q7(O?e@QwR=SZXbDw_r$!L>WPyrJYS*C(0;m|M4v-~dtAtHdqb4d<7M~h2%#K&gnPZ-fB zu&_$tCLhR8bo?7_VP(5w#nqP?Wpv>8Z8t3wr38Ca&)9>fob`^YhSP~47!wct=z9tM zo`pf_dVQ$8&mR;0i!Ho-maU}l4YgAf2I~PSn4pY0nIl3wb0~k}L+sz^r16Jh958)1 z0uAAzF5CF?B7&i>EMpn}J3Q4x_0toSNa1y=cG3YJ*kc zXr|dBWLugIuYkxxfB*-WP;syoq~-2}z0m479v(p_aB-4Wpo)=p0KeoVI;i0ZJqco* z`SI%`jY|ji6xK)Reic!TT1(!3<2R?$$jnw=vET4=#ZDTYn_8;N7T6;bF7_ShpHCVj zozoL_V+p|VL(#FSy+uxb%nk5;g)@`IpTu(I7%T|My$H!a>+0d}y5I53i?R&iwyQ~G z&`rT^<*(dn&H~cqaz6u!b)p1Gwl44g zr4`7`KEcs`wB4|Jl5QpX97z}(v%l(s=)8J?9RSAIeKB(4_`wYbf|cCgKI;cFiuH%x|@n(S`ZM5(33#Tuy=_Uta0C~Z{_Ywc`vUw?FB@(z9ElG|GptFyAD6n?j0`w8986F zdKb?YC|}`9g)zoELS0F{9YF@ESlsVM9t6l92#0Uu3bjjQ#~bgF-AU#S(#!#kkki4M zRZbA*?!ml8RuEl?-#upU_+K=)+KvxedDo*8Fy|XgS*GlMGZo&v<0@h*5=QDDdu$&} z8b=OQQt$MvF54|M+<7f{N_QcbOint<`+1kUpp(MNX31qYqWy-GZ^0nQ4Pv~V9*!_S zwp;BuowpK)CEkSO@+FFRzA(m+r~-X5m)9S7f_B$}Dfkp&@{)7cjAx@JWZ@2Rxp5QZ z8eo&f`8DsP{IdMF#SzOqZn9R$%NQ5Y857$;u-t_7@;2M?-Bf~;8N9)52uU$|US?zN zP_2N6BHIqN^R8U)MDuWTjz22*GzZ|5jsZ^RztN*Y0|c&98*{&Z_>kz&xJ=e>e@nkO!}vsrl&3jI5>k!uQqG-D2;s) zjoA>IRhO~1s>Wd0OMQoPhRoNVk~tKAWS)e6*pAeq{;P+y*a-fSuK#UsuY_Pi_KJIh zcgW}f{wCA6l|}ylJ8TW>4A}QK8>F4{w1_j3zS&S43&LwsOjSE>2?J-Wq#T1J3DIKU z+@4HKEgt7FgYQ92t@vSL;u|hTD>1ecrk*4&^w>ebd%d@XKjfLpLN7vtx%Oljx`_sz z;e^Ew#{n_WdZFfi@^_WFDMi(plIUOTf!I!9@;)Mumyi!r7(TDO(>U>ApD3{R>ah7v1UrnFk3>lkX-gp0co2c6~& zn{CD!GsKV^_~~)pH%7Z)EUqo`X35=xRD75ftb)+W z%o>`!eMnXZWcDh33yYv2OoO9~s+5bj7NBP@md5=>{71J8iedIju9tO?P9aAVZQyUx z;4ZDS$X*3X-R_?VaM5~_0zQtcA-@HoY@@Sqcl{gOBC`bD`+Ah=3MbgFLJR&(GQENf zi`Rg;P@Aa2(5a3(X3n^6WugYa7l+T!+=|c?7Nl35BWh@>Y3_Iqe%RuYxD?6}-?RG$ zKB+_IT(|ghOe6E}R4xX}KOvobeU2FGnOt0xj;HIX|5351Ky}VP4VA7eCzVFhvO0@v zMuLHCEAZiHy;ww~(0X&tvN z5&dXr-V6rdd?`<6OEt=)K23^>{ck2?jzdS86ducUhg)o_UAKnn7nQByxzZO-L{sRr z7pUR6ifr8wrr{-lpcwTE!_H~>(*w?=GgbHU*}wFN8{^+GaY9O{idt$*ZbW5kg-8A& zF>k%P)rgl)LmB;Yy}3HH z>oy(-NNSkYri&|%o6k*Tch5}}5`?cL(g2~d#Jl4`Cm=Ew=`th`#iao=HK^E}!WZj@ zvjOaS*hbS*#aD-Hg~|r}Kwe4&_|ggv{leuMO5dJ!uj$n4Lk?Y4(Tc{!A!&V`WtP8D zIqUrv){A>j`=;^U;@jTFi8^z)OhwY}|{H1^Ix|s6eG;&YhyZ$QWVvXneCU z85oA}l_3D8vrLe}u?=?MT#Q zL9*Z-pNYH=mlV+V4;-&4RqY8fc}u|c+pNl6Wxc5ye>~2{72fh+Re8bS=53dsxte&y z1p^Ue2Ye#d#&WeK3E-bbm@z!~W8V_GQdRXd4M$(ZzYX-Annj3LX}&-zowtqyvDL&u zyE%an?^;gUpnILV4DVNmpPA07sz=V#=Hh4$n&9d5R(t!8OtXSOY#qmv-wgJEdktx> z)Yc-~9ZU25C9c>t$gdL_PW7D!dhyC|u>RDph0s8wsjI7%t=`WKzi+kNarN9a7e zO=cw8NrYR)_f>nD{hGYI6oA6CMGq?KrAzXvH^Z+s#zg}uHzvg^lE=}G;e7z3Li{zU z1D-#&e#kO5Idfh-oF|{wm_AX$+J57eItV?=F7Lcl>!U-|kWG`O1CcrK$cM32d+PwG)%;EL^YfI*3@e5+NO15IyfgDbd+@lR; zAYpC9yn$dvcy}WXZYG98y%i7=B2L-vSrakAhh*)rx#GEcS#w`;YbxHaT#TPMvf6lc zf?s#WOVQjol(avc7n_Am!tUvq`bqZ>M!f1`Z0?zEr~GFVacE;cxf9GRS3$e;b8pHBW$ZaiELilP9Obi5QWS? zsi+N@9OzjT$|IF(QE{j0qob+ae!+{Z+LX+aLAA=mblY$ZcMNqYRSNY{>iroFBN8N~ zA4(T~9f{-+ifC$EgpDZYCZg|r;%RJcO}xy9LGmp*b0m;&&N||`tq9GZAK861_0ft4 zqBhAIj-f){$H<=c5=8cYJrxW`Av~6^uK?-4Y`HZ^mDKlRHHM2P z9{@&WnPP*x-4?CXoA^ESLgqT#^9|epUutoLf8(778khnf>Xgdb3!Dtw^m92%u(}CQ zTQEXyIDk}U)072Bu1gb4={Hq>$pK8x2KcB#ZE92$Fdc~Lfd`Jx4{*i-lF4OUur#+F zsebjnm3BwjGCXlJRe0V&5V+<1D^RV{WiXyJ@}f{W6&`yN|M(f@uxj5-74hQ%x1@!_ z!pK6RFq|GD&q8~>iY2|a1Ba1)+p}~{oiB0*5%+&>ILuh^^#e%!v4nGXY)pPb8Cs4| z0wqECV#~oPN@>V2&jpcZ=c2S=_tnzE0oPe#Gkc%M#4)L@KM-*|YM}+_f!Ku3@oA$R zBibhf((g~g@<&Y5A96#hCsZWOapLUE_?>v$&DI3AXs!q+^qu<|4S}e zvUQx&&q+rw=)hWR`EIjXd>9=uzg$!V4A=nUgTG3;t!oS;3SUn=8GO0|e(zHJkxKsc z=p*GWt^qi;iU9Y7C(rRM=CodR*PDj43eTUOno6`HgbF!}<_%vFu}F;yf$X8D1H`4Y z=uEW%X>rTqT{@d7gF5x5kX?FM-5V&3BU~#dKI~(Mv>$2*A?(mko*3#)mMCw_N2kn$?gZC{X6AOK!v!G}n5+T9{2 z6Mdx4BPhn_^HA*^ZzWC8+;ubJ(sqD850FpOi);5E%@a_(ctgAu>0#s5r0%;j$}lFg zNSYl|&zLj|#pdu|r2r0v6*+eNXtJ9J-J)5x*Cz|If}W_UyX=Xp8m(MF&l$>MZlDWM6;a~vRQBv(17o2pqUfZTvdHXrKtW{PjjzG#ZX~Gf@@hTaVBy z6mH>8i@dJgrRpSF6SvY_CScOnzX45{ibYH-f3|f_{WX3adM zrMESdjMvx-)cMTrN$n35K*&d+Ji0hCrZGaB2uV%VK~jSuhV`8xamq3@TK`qV2NLB~ zh0XZ?C|aKIG62y6g77)1yIR2SrU;Y(Ow)1E`5+;Z_{E;(j5E5eUJ%{2qc8vj1$d8f zrx2r)MnknSAm`Dz`ZdP{!*BH4Wbe$Qup`blgc0lGupx|)U7$u+jh^|TD)3*8ez8XX zzhtZy z`XM_ZG=D6-3rG24(i;29MDhDcMBXwb^Ri1+evj@TOSUCWEY`QhpdVK9rNm#ez2knR z>ja;&Es%b8}iMV?jgCjzM|kjVES8ImCpv;;7N&Y^gBc_?=kcz2I1T=pBn=}3-{ z=6T)yhtsh3TkiDxoXDa9w~~*PQAIw4R9VO)wbYQJ17$nMLwR2lll=z@t5<(I$cQ!q zSIGmuXN0$R@Wh$9su@P`Vp1(0EjKiyX;k%YH#{Kp+(9Kk5?M zl9z<`slH8YtPAM*UlF&n`ZH%m@q31gkW ztS~p7Q25-G1~ewGBv#A;#W~yLZ`tpN=zP_(WteVg13=12q{g>@@^etA0)DY~`G5Ks zyBk}4@ZrM0L;Q2GSNv}zr(ECOh5hm65#a=&HFc?5991qFMC8Vb6Sj7Fn783BadJ06c9Cz|f>aSqYhz;v~4>Ays^ zdY+$U$%I8-m9N1mo1e`)m=wOZu>)5?u!# zN^wvuv!-}U60GzwHk7h2N-|mU@)8inR5|9?MOqGB*~+uc{J+6>-Jjy_o$e7d!5qR@ z-+Y3ROg^ApO?pg9i({gVC=oj8nq)mWpz>MI6#XY-F=c{j*DF+Llq|AfV_t;NX!lB& z=b`Y!fbcWv)T)?i?^i0T-dzh`Oc+3%^qSur&+K24%XaVKtfMe#1@0F|VV+A}fYh5J z$)o@D!Qwawr-(8NYTrTD&+(Aw+=9rSkbxpN8cD-}k90&JI~Ymp^oL`m4P8SxI&I={ zXqUykwj>KR+J_wmu99m1x$vs>3N9t#tk`lr4Q+i?9m`W~3H`G3MB`=wO?9HJ3S$tG z=YzGq3hXF9qAiIJ_|lWiI_~>G(K@K7Z{8YmTIMnK!z9R-Ory?oGyU#hqS(Qo88%+c z3T3q#h5{SHj90#v$nE|bpQ0$&F9$jY|3=~PgINr*jS{^J8uFgfPximm5up|c%FKUc z84a7~_9NuI=PE0-AP$JH(4NB*?s5phe2X@F9;Si)7G<@noOG&89Da^CbSJ~ESCMfd z6w%Nrzx-EVxZSATcq4DUCAk?zAp1UJR%nnV*76q(-uSTyuTekQ#Nl_NRnyUADTp$~ zv(a4Y^60Z%D&KsF6Lb9ikPwv?H`DA~+_Rp`1U4QWP&|uL8}DTAu^A|{noQ!4TLj8q ze&ERbGJ*IF!>9As;EJ(RrCy2dCr?zzYz~&rn~ydkvCEmy0Ay}lbZ%~7uNk2*)@+%l z`QBcK$$hTg2Stw41mZQv(4OtbaL&)W#hY&95g$)B%Qe>AbqK4^eqaz8eZ*jIap?}u zDBe12rl-F$3NI5>*3ecgt7)qeK7Q6W7yRhxb3P*ts8-!T>^8soWyhXd)q4MBNl2?= z0H^aOMQD9a5d1|lx;eQ!d9J=d4G$jLtcvGRD~j2wFQ_uAX53ffV3#FYk$&Y5h$wg2 zZGT?t!zyyBS%qx(sAye=A0pN5QpAgxKdSg)GYP7lA92TD4)2%szI#pxrLwrp_Dn6T zC^wR0i(CazF!Dd}Z0;J%9WCk^{0lE5*f#ho*)n>Rg9>~K(tr)FPJ?#FG)lijC)pvH zvnM5pqR5luknLa(_iHM$gFi?4fghK8k%%2po>~)J&-M`zUW{?Fz#FYP^zQNQy@sbj z-0imF9kV4t^NmS-uCuVl#x@|<*ax~hTy2aO?js4Eh?&-x-(ystPSfJL0}~YaZoDVA zh2@}=;m!DJl~KhUgyIqc^YQ1pjlEXil|&2 zn8NP4Nxn7ZIEX5N33O*b-1fi7?O5QxRC3Co{O4#ZIa8fsn6zJJN(CoKt!C4ug5lj5 zXB6xyGgPaAzyj9; zs=+S%&3oj0wbHr-s_-#Z+~bljjvlr`Kc$cMZjwFMMB)IV4@LbG-_w^)J$Sg>ym5Js z(rgb(kc0YJ_-NMzs~5JATbsT$6*l(O+U+jjq4pYgPTwNxB(5cl-1pKjvJ;O%Si%b@ zOOqi{{S*H$w5XpUbGRy#hR`yP7WmS757Z9!#G^)elP=-LZFufu(#-X>H1jGD>14D* zXWGmLQj~-sjHNo&u1=cEYP$zJ(V(H7#j-!{3vI28eu@m0e)3UMljYxtdF@|)z@^Lk ztp3jzN+`oaXtTS1F|D*V!vp9&g<$o{|qfWLVNLk&1N!pXMn7n zb`5JVdKK8>#Z|Y4VilzdC{{oo0~K68D_9`8?WUQ$n#S)?QDf3}4lc*Fxs((xOq)w7UXI*flTHz0FG zyA4}v`4;Ed(m2G1JMLVfFy^ksonSoRq*Dgjbqy=vVJ1wuVdQ)V-MlZx3`fxB6i-kZP(q@<_X+97}ZjWzh#!9SYE7bg}!j@(yv6D=9sVdv&@GdQE4isp;s z8k;ewAy3+y@UpVc2zGz{exV-tgi@&Q@GoLICE`FZ(SH-TW&-+I6ds%AShI=Eo!moI+9Se{Gwl5_r|B!~-F` z`&L*lB-e`;R9gAhZG1Fi&(EL}a*S!UE}@ggZ<23Odaep!DiZL0K$6+GDEe5+mPY(i z7_{^q4)+dD-CBk0yD{>B9ey;eCxm0sJK{neHQlB7>tbvE*kuI6OEOMaBVO8L+b1G0 zTY%h~0sR&{ z)mDSl+dN`ft0n=+oN<$9987|fM@tM7r>D5@Bxk-hIRDDjHEm0oa)|JFcc~;AU?Cs#wdL0v zmJtG7eFyfcMU(5_5e)%1&qMQO)Qz{WB1F=z7%s*^U(Mb2VxAVh(js?-M~!?n=wilT z0ZG-OMI?!u=$qPgRWEk$?8c~QaknJ!W**-*FUv0A{p3xPowk*xOvnDbVFnm8c`j7< zgzuWC2|RDIkum_f=+edcXY9x&7oq0soS4RKRiVI**R1Snx=zE!J=b)VzcgQjJ2&Be z*f(A{6_PBp+zMXpQ-)!gVTN~bAR*0yh-cBwH6~x0pg4Onr{8*NCVIc#?$x;1kC`p%5;)5u^q!KlCuY0$N;}48Xx>LCw3e1;i)It3^GS0YtQh242(W=Ep zpU~kyXhJ7^_sHc0vQKZ(>TGS+mqzRvftS+5(*4weIM^_>Gw&PCS#7Lp{`K04Mcc&8 zs~hQuRq>Mc)vlqcGePO=Cx7OSwf#`WbECZH970>ZM2!;EixVA`YoBiys^&U1ulyTBZFkq{D$uve=RlCX@ULMD+dNSl#|Ax9h2 zA6Z26FW0AA;C@ieb-8Stf`fh|j!k^bV?;WMbU(*pj&cmOT<~X(`Wa<2I456ICVT-j z$~z>Su&c8-lgynaIk^3k$i$J{n3IV+u;x6Hc^r}cVX>(rK1-q*Iv>fm{zO++x1B=I zIFADq5ieCeu)qe)?8j-CrWk(qhn_0C2PcBGSGugpf7ChQ#GSS(J8rw2y1^hp=aQ-g zjZK78omWwmX%=T5Zw17Vb}0j5ofVOBxje8zHsqFV3Cv}oz3IWD40mH43ku+RLJLKC z8tDzj@S!k5lxX2K+Jr(~8IUFCV}kI&Fx;F>Zf=;Fu^3}NVkGx7DBdj%n%IF5*o}w) zkkZW_{Yr``WfH^9%t@=UgQxmCr(FaBp873!`r~|cHb0yV6C!`b&*v^kwnlspgLI$2 ztjs5#2RLKqa==12Cuq&P3T<%F>gQ+)?4|cfHxUi@R{(6c7gBZ$+dJeFT0#ljm?F#W zg<0R*$RPDjwJteBTG=2GbxeH^0qOvM;DZglefo5~~G#JlWVfcK$Q z(&Nq6;P2^W1k#pBM6peKNMaQQE23uDKw(vOFlRX0`2MDbRM$b+-oc5vjAzR$ z2J?&+5>*+JUWb34I2vN+%Tf2N{gVrmR*_tGQy2!`tfoF?&Urn%{(3~#J%38kiVU4? ze0YKy)+mP|n#F}LZT5YwAXE443^r4`nZ@6@0xmvs?_YVMMdjVw8p);I z79cK7h04H6B4rBGF=B2VqeYmc4wV0}VJi*MrUo*mj)y6Tgl({Ak04|gyNHO&W#sBW z`5DHa!I1tm_i~x92lD-Es!)FRDZGs`70GwG2IX}{+Mh$zD41j_zeT}KYacIrK3TS7evpG4I=mP#!OA<_K^41rOt37XXD0p1C!!S77m)f- zBx)Kd?6b}sFCb;nm-3mk^)6QlaP;2fTKL`33gvb^sVHAqE5Ns-6b-QTnJLyp>~2-k z#KCCnQF{aDt6pD*YcQi~Vlh9`hfgrcrsLk+%HO_9lY){ozOD&6x=_`pe8y`{isAEb zYqtqL66HW=r%&u*Xisk~$9JTPIzRh+yIYo2c&F^jAtGPc^TwWFW`p&3S%QG`=Nk>L z>zDA$sTU;U=iCg*+9c7Irh?#hi1x$^5ZMvxzU zXD*8&-9k?*#Dfd5P&`Nf6!lwzkaP=F;)zZ@%OUx0mV8j=Ji@{CCK`~u9a^~UNFXrEl5SJuP^W8wI{7IoGV={?$sBULoz|W#3 z4wCyu7H>FgsrW{!4BSu4HC|vf>SB;L>qW>Uo}`=j;x=2v(NMJ_hQ2TmoWOTdQ7)5=GZ*O_c)3*3R-?DlS5@P-W}pA-7ymN1|o zCalYR87k6`TSqjC^67ZdaTqe2atPKY5ggBKDZFY>y`?jhi~zLkfRlDYbg!Gvnirs0rr z@z5$irb+8LzW|DqsGH0PHXEqcnAGSBMM>#4ec0D)t2{2c^IwE_V_3&QkA&aO(kyz! zkO@tzpbn3k3hx}l=M#?>r6Zw3?=Gx%DYnf#Eft<+baS}aZpg1{6Qw0y5U$YGcp&m5 zDe&lObgrk02%{n~AqNAvd`|=grqJw&wfIY}v2CtVk!6M0U~nXBGFbIW%;Oz%uVI`< zW}6xGv*_DFu5nR>u`4>*gfL>?)mDZh>3PlV0pJ;N=qzTz~Lnz_i zxiM>01{!MBW=It8iR04RXWs;q(^d;apZ8DLd~>N#ox8|mEZzAydnM=zpcgW&KJI9ba zC#>dZs9BNkp>nYM9jPDry;*)q8vLTGqUA=x*nP9!t>w%Xg^$B0I#u1>z0p02K0<B1eL($yHM-0-FE;Yk!vLNAuj6ksrF=DvMaxw{g4;AvC(9!w4 z(3T$JLuee)-|2blC&?Ha*m9pu_*deg2bt z0bl_lVJb#w3FDE@dft&utxwxg_EKIX{q2=u%}jVba<*Z@tz!;ncAmm2oLE-Tu7qjb<*Bg~jmmtzuf^o2* zeF2{~Zf68>7Zh+{Q+PG)L&q#UKkyNPDReRbYAD555-$zRKWf8~1|G*gu9F6t!(hXB zhVJ)E2&&PwyTC0-kK}H`y7Up)W+#I(M6t{QxKVI7s?)`t_*;HwSQIM~7$q;bI^cuJ z$587ekcrkupbU4)C`>TsX`oqBHUTBPdCNdx80-=*eRP)Ky>0^({hc*1U&zfoG!k_3 z1|qrDH{TI1iEes|2QJN$M4z@;d;WY4I@x@IH@@f0l5CLyodk#eoqw5Pg#E7lEcu4@ zV~=wr!M5*-(v!rk1A7qp`{+-9SkCzyZS(k#!{nbP!=;bIV3Q${GR%G9q48^i%J?@?CeH{y-QybXKN%prUMsNXmK zCWUi^^U>o^trIAO;ZdW;L!#_?2&6o47CG^I7+qv7$At-;gCni>>|GCt*6&@gRvs(l zLlQ1VD3H~10;6Q!nOQvi1m22Wq7NUkyI0cN(nYP&<<<0~sxN)4*t&6GIDcTl91efKTtXjg*61J-GUS7IpgS4J^pl|0ZG1dLAdTT2ixy);kB_S9_RSR8HT`iB2&yP#<2zZ9;ffa-6dP!4 zgQ+ecj@@Nzd|E^8yL-||c#C#Dh|d)-ggUK`Y;oN2*+ehfnhs|!kkomt(#C*KJ0T@a z&TH>GwZd~HscZSS$|h7^AGiJu@p%t3Mr8;FD}Fyqc*C5bD4nLphk>HC*yh?iv#BAfoMV1X?c5cdIi5tuZeeaY&1HJm?y+#p>5cCT==xWap!jv zh0X^g!xe2H0wbfxO<_NIfK>QrVN0VgN7{UfKXr22=~M>+V=YW#$X0S&0-bi1Yr9ee zvUgU_wcJ=paFt_hSNNO!|RC1QwX78GU_-6Ljy#{pAE*-c712(ubDF=O*;T*+zT#+sM{)(W4t7NtCQ4yr4 zl(1-(#z6#9>)ZpvtZPHah(`GrfD*P|3>Xh08avTV;mV|-62D!f?SjTm)w z#_EAfauUQXB40@!aTEt9>JFMO3&EGeB7cJ}d zzGYHB6BWf2OYWS9StbowL@CIiQ==R1;DHg(zj8)4sI#g>5*)AG6BNp+&1K?XHKPMZ zmW{GVEbE(#{FzS;HtSO^k_|3IU7V~$KSCm48syR$AoWQVh1c)%rd9htTUBb>RrDnWhbdW7Q|uiY36OZar9Blbl?M0;;04LEV@VECnHf=5ysW> z9Ya#FW4v+cn~ewS&`JKaW5EA)w&c#SW;BvZ@fQxBHOF@V)A4;+ML}mM>BkoJY_H_c z>`#id^Hvkp55DjF`cRdQQ-Oav@iuDLeYbt|ss7d!~ea+n;nOVJ{<)n^MB-c_8C3v4! z#?sKcma??PQs(I0?BaA%5)=}w)muZ-s^OI`q5*x? zIEsX>(N-CN233Y9-a5Z2hEFYvLFV`yQnic7_f2wzzBuaZu`t;hl=dmdyI~&cFU4G~ z1SIEQY`cvG)4-`qm|wt3mYqU=vdwY_ zEVo<;O2L)i@%TuN-2#RNuxj|^-zlPrC?&%bzl49<^p&^uXSa4EpF$A)vQD=F1}-Z4 z?suutLk6TOY##Vc61bjo1L@#3baW8QY6#un~TEwPprM-N3NF6j*-TL^!<9pX6iI=bx!a zmnO65#6L6XkazG4X_#XqgAYH7O_u38z*nnD<4H97ig&$~1lwzn?~%`&MT;=Ev(SjY z@fMG{C`VNdS|0iKU70?ek(w*_(2gOtp2Z%t6p`JIrG7!f@Wg!a17MLIzp!W0&_WgE z*ad;qSAC_#C>0o|f1|dR?dbm26)Djsn|Do%Kt7qRn$wu`!xwy>b3Fa*KW`sI`aJa! z-#SVc8u|24NzoZ$tJ8Q#+Gq_gUqlsh-@>-vZiKqpaFqApO;@+(>|Ome@7bA`Z_Nd= z`=E+(-5KdB72>230Qy1YQ)Ozu*&cCzP>(kiR0d??Ag&fsc7>$Zo|FB;Ey^P^CvN_H z-LLUfhx&&~@sm?T3jGRp3-r+fSzF@t!-U+^c!^^{5X>2jd=mM*2Q;ipTT31TLc;Q! zj&J#7yrp@41!dlTP^W0l`zV2-hh4jS(@Kv|S={Eo&jEf%aYyZ0fGr>?v5V6qbmJOF zY@FzT^-9cn1$Tdd3KFzw0S3Iv{+qa9Mj#P+1r*tDjiAEq`^p+^F4+iGgl)O84?NYnv_RL+&McFOW)E zK|}pKY`d;ii@*r$*a$jCd&K|g>dv@9TbJ@R)g5tzqydNA1NHMI2c2g(t|yl208tHU z5~Aw6v)uQtdo+4VX-_*WM@eH3O`~PO0}1G7|3ZBR9p{Iu2yxhMAkPLgMib+~-*N~pz* zohOFrkR@ie9PheqW~_<-^yr6fv`|3N zPW6MPC6Bxr{|C+6JksXu9)6pGN;k7T%ITyN@}6JK3vA~2+A@N*_K4;4OX|yq8qbaO zShoOM8)_H4FiD#USvHc@|6?3owcYf#Rmkcq9g<^dk4Y@QS2={hBZlv`9sCEd%zzKm zH9`aNoC7BeUvW+mOde4)eV%K>sd09oIcp}Y;c%c%FdTy>qJFU&{uzOx)8Ga3Hk;7! zW)P@p%O{h1n%)09$Ma!zjxQu1Js`kWOi(>pZ^i_nmY8VP_a-hasLjuHSXtgT}#Z zzKml|`h*LwG{%F}PzvavzHG5t-iZf%ndBc!W+f!)<#@e!1aj$Pg62KtJ<`V~eKn8aQ`nRU_Au2pn${qq6c~ zV>o)RSdl@2#(!sZ8;yZWT2EvQTzha7#>f*>3)1E%HuY5-Ug5MmZ~QT4ML{?R^+G95 z_u*eEnsumoqpxoo#zt|KQjFQiMyMr7RUR_=z?Xh34I0n|$Nhn7zn9+1!zlG4OYK&H zroNZv$i@onArlEW5~P-B=(X}}6p3DT2wPkBL!u6Fl!wm5g)yZOhPEuEaaDZ%gw^rq zavH>#gHS3!=BkAMeoI!-e{_fOQv!5^|9Zo~WxCy={&xduzULOv{xaT+kZ*-r1UlhVdb@IOQRyjGgCp!6pq=3Oa)rJqUsFWS8-uRwrMogIirbIqW z-|0P8|P=hun5xh*M7_^A8We3%cd#D57m^e6wT_02r5yxYgCc7KO5p0QLQ|n$34GGC9!LzP`n=*Yf3ifjbEI|1(C`SCpYQ6Y`)R@Q89lfcsa^uxVHL@tV}j z4q5pNgyhWOq87cP=%Kpm@IyU*xba*s(uKA z6qcERD^{e6V&ejQv*w+C7LqW#YNAWuR`n+CDXn@3{8>$8tnFMl0>dC#Br> zXZ%6ES1r<2LO(a_+k=k^$U`>iiI2V8dOPPBVPCSutK@itP;58;ZaX|WAb(wJF8rA) z&C>l2am~{)OMH612mizkRY3Z#|1(pM7o2<-_oF3Y4KfKO_)i#eyp?hVlOPe~t`x zgK4F_`nYWp8?zjWUrsQs+!jSVX}`=_zla@?R*Nf!P?ZU?-W6N@nDR1v3T5=(V}jjs zw~w_q%{s>$uhukgY`x+Cy6PQv)stp*S>|}2(*So=`NksG6TL%}1X>Ung|UMH^uNa?FEzN0nwdY{6dxaNQ!WED%ul#EMEt>NPW*133r6qglNFS*?fjoHxyD0M>bLHiH? z9Xz(mu|yT9sH1(mygyE2U~62;dtL9a`~LO;L?mq%rag41R;5Y@^}(}Tqy0;h@Q>RH zN_JED5A&zxs%B`V%j?omG)8hu!%x`vZ3L)_Wv=lVcw+m+0x}xK{=IDO`sGbu$t`K; zT=stW&$l6FFB|t0A9cFCy2D@99`ab@V-eQVYcFN#wh&FjK+Yu0mU@|ijgfkl2nOPD0^;+c$~j9VdX8QqQ1E`&u<#ou^UB^v)x z^!{T{`)Jb;d|bDDG5nZdeGw%#6U_Ntwa8U1{IGJK$Y1mkiEB*LvYH6n1MN(CXPYeB zp_zz6DwkJdw7%quyk=F>BetUYp7-1AMv+R#R#&i}zQLVj{Gzky{MuH!V{7<~ln;Wd`iJ-AKSkTtHNE z3YZf^K)q-oM!*c}&mj${KdDLVP;7H_8!+%tCjwD-cA7!&>VhL2@H*2f&yyx)G`%>~ z^ZX*lE{&aYr+$rc@cbOpw6Bs)8Vt_R>zzZV`Pi>^t5Dug+D_`aO$UC;kYtFzFXCy%M|3GJE)6-c+O3DHp4mZKWw{}QdGqrz{2!InqF;-S0IvK+f# zs?K0TCI86_S+|3-!hL*oV0oC9(5j~NpHOv%2PVIA7-3YQy`BPWYN$2NY(>7)eU%tD z7dvWbU#is&k6Wr+$-11y|B6Z##r*nSDa+hdCM&1L_{N+?$aU{t2D3n#k#kt4EILHB z5tXjaCh?&*Y{HJUq=+HXkEt;5<^5`hP9GnP1=+gR#WhWZvespN7*&9rS{s^1jsctw zkZi;9x~3!*XFzeiP#y6j$P{-|prb{*hJ#nj9k3{9;%K?UY+y+D@6pXhu4F*Kw`cN0 zGa{FbM!aRQ-Yks{%ix1E8)NX&I?>VN6Q8d<*JSRO$qAq8Aaq|WD=g+hqQW{n04vJ* z%80E{=*)aqoQ;hb2LZn~r;j62b~40b6nrKR9PW$z&?c_ec^*gyCF~%(9=(I(9{9Yc zjN+yjZFg+L;3>Gf^YiHl1rW73!k%rHagw`pzTNNR&6y`}-LuYNrTsD~-<4Gs z)4YJ1CcZPz%!xp)Tc(}fmsb70lzf{Ei+>tez;S5mm4O`V51Rn$GwB41eM;y+Ui5gS( zuf&dEKdXi6oq>fZWPjKgul5OSRUBi6<3HU3Q>Y96`k;M_T-Gbhf+rDx0W*?Bpb|{k zw8_Qx@WKrCWw1Ipu=&w^Mg1!+cwxH??)8-dlaf4wfKcXVc;Yb;Hzoe=0doHdwX;fd zBhGQn;)y0#1Hrk`U!+UZ(fJ9&Sh+je1FF?H@NvqdGu1S`=r&`(So6^S3GUI zzKFc!<)FYv+opd~SU=a_q5lI0kM*EUMbC8jeFXeLH)p7G@17X2-w*-zeViP=MkD*U zVAbHK<`gBq?fNGk%-!ta6b|dG_cGUw)7}vI1V+e^ih$?EkX^w=mhIzB%Shr|O`MvD z6ssCb;rafY2nHh+K$BX;?~CQ9^}Eip?BhLP{sbQfn8PRn@uN3Upk&>zA;k$r4?A;_ z`JX5Q5QLy9v}7-9ZUPKa+lk*!3CEmFIQ`6^3%al@h2#negt)4v873Gx;9s3QNOV;2 zuB^-J^=Gd?`$a+Njl|Jo7GH3wA;oWlF)og#(v6ID#o}tycYezoN@nk;Bqw~gkPf*X zO$1>m_QXRca#W!+zwxL73A*-8gGGFJpJn*)%$35W@OX&rW3G!zlHcQT!)|xUUuH?9 znkeE(-qFLT;eP!2OC%)DVGaLb^W$gCpU=3E(fy5#Po+kx3^T?cmeuTj(+)Cg?hX+g z>poV*G7~^a1uuHA1W3f!sf}+Isz<1bVyu0e7z}xnR-cZb{w*ZUjmtyqVoZt-?#F!z zrb=L)?4~u%rY>*M+!UR~saEKaDd_zyQRskn)*yp$-8f+|2Rt9Y=X!SM_}n9ik71!ag{LAutB|dG#au z2UQQ9(-t{6oGaqx-~@)bzKjmp8&fCPx;9*Z)xZmV`>_H7%KFN~Z81M=wF#EZw*7;! z4?kXdHOxq-O{IC7b{5cmtP`(*xRUG?GmoN}>A$Y*Cl$wEiNBnNVSeyT2LFa0Hh#tS zSn@e&ko6ZG)>EScp7C-lgT@GG0(t~MgW8ADOmsfWVHL&GJ$836OHX7_rw?73(0lXV zO-?~@;;VA1QPp`zC;s#paBB%`LP;_<=zya_<_{F0y&IS!2I~*=%lOp?a@)hau2(1W z6<8*p^Wozn#=+Z2y%WUUgJJ4-}n6dK$LJtB)d2X4di$;R9zx_1_L2cY@ zD2)z>+-p^f`6yhyxppqa-H#Fxxu@SNGG1s_?OSamh_-pvU?!LwS$zH^h-(--AVoL% z{kj>qo2zi#)_R=!(7m#v!Wu@pO1y`u(2f z5o1Q9(k`n}l(G?Wr_JGcdTF0Zx~>KRz}nuz{%8dXtTTAsG4&36!uc^Y(Ilw{>+(`= zGwp0|>b$|Y1xBB}J6#A9p_%l~)1n{#zX6HRSUNP}WmWTq-wdjBPx$qJrX%A*Y5V3{ zd)u%sn0{7@)yyU z7NB@={3{-4&AZO1Jzt}v`0WSCN9dNMsN3FHsoFIYCcv20lEb*S4MlV}V6A%I@2jg*?FZ&~Uj09{Qp)z`-8Y;iNPZp&Lk00~#GUt~?R(gxYy61qs9!yw z5TW=;uR8`I6=K0AQGaW7@rS&lM)+S9+0IdG3%=A1%#SwEyf$Jy_Hu06T+Bf?@i7aj zI%~_f>aueR?hGV$m#hgseZYbRek;XZ^ThHl0BzeW4ohE-oBCY5PI=t2$<~Bk%*J*X zWY~(IULO0Oli8^Ose|YKuS5S;dh{k_bBczXG;6{!UQa;n>B7MWhuS~#k}^|ASZ*l^ zLq1ck@G2Bic;gP?q2TiE@pNd2#8&_(jib#VADi7aEXgsvM-(Z0bVHXIgZhyd%?s1h zxf{EA{YtU$zY(%|=3V~n3AFb-hrq{mVK>ud`tlxJSsK;9`lVIh0RO||f$Hm83+2=ji1pm3NX2&4h3aBwGG3GL*g(}e)WOAl>Hj`l0N9Tcz;}(|32MJ8sw7}3c1CYh zo8u-wu@it(H<#ECiIE3PBZ~I5AC<(=)<+^_Y{|n9|D+eTC6D3HE^Ce>k~7admvRT& z3KRczB>?;3#u9*69c4YivuEy9;)wOXXV|NI%;WVEC`Y=tdo^-SX?b?V9|`J&VgQWR za#!RXR4$1)5Uy-s4pseIY!H$`7AWQA6KUY$USTmE8vdPt-x4#LOZ<|z;P3e1ee+q zj~0WgSmD|_bnqn{YGja!i%!}=(kQ_WbbWhOhsr`bOmgpvCh*>ZdOJG&KG zx9-%C`5-;*%v0?8slE%GtuSPdYkGA&_37uw*R-%x!)lRjeDKe+9A1w}q|jJ%xV7^% zRp_DoX?Orb#$7FW$I^$#W&{V4E9+L%Nq#4VE>%Z{1rs`F7`D6{{^XOF4r*8y?*E9t z0PCWtljU&QR}By`|M!D*)HUn*+i3}6fcM&^{LMdnG>}!*81+pYK-_8{j1M}h-K_z5G>@mC}tVlCU3Oi?3xj;jkvs-Z9k|O17$z0{%Q?xgqy6yJTo3x5bI4527FtK#ei3!QnpVeOaW{_bUbtYK2s!<3u zzdaFUPnx0;o$iY?vwD!KAcfBy1IN41V~5aG1X;{GTTYAfNr=Y}lq7m1aPG|79Qq9+nOaP_{CP=Mmxbc&_?;H&!2dI?`#ek{{@Wmme$wdC=G0Jwk3F-Yq@AqR zo8WY$Y!N)OZdS}%cYqcg{6m%tiV2ZThmR5nu_=gppH*#A%q)nm%gB={u2a$m3|kKq zVM1}^($-{P`-75l%w``kGJX+EBQ6vF8Pb^54WH5r^Qxb}+v{3|IpyC-(&3yuy3PFJ zMmc$EGJRiE97tT8VoofU%{McX8W+!WDylT*ogy%2)7WT4{efah^z#9*TdBCat!y6BQLRrP>MHE z02sM$0)48%1IS-#+MD*mXS>F3$3oKj1~n*9tfs%UBlEaZl-V=Y7*q!5*_;#p46;J` zbR3N(8Mpi@$p`!IcOw|0run1@ID}*Yty#>wY<$;21p~<#VU=%g1<^Q0;HGVw9@fSe z=OK^?Ht|-_n@6rt%$EBQEareAGiSptv*f|vyct%#cq=?B+e|PS5#a#GFeIX=>P9Q1 z8a^*V+!dfM@A^xMQsjoP=dI_49+9TQ{?X?-2Ql{2==Q-cCyT~E>>2T~9-S7d*GU(A z%Y$rcQbHukpZ#^ua>{OPna?}hh!dhkE*=`mZ@WlE0w@eUAF+}b&4zb!2}qOcG5l?- z<$h%Pg<_7&{kUn5d=$dLdm^T7_T+l}W+U}F3H^fwrNHwa3-o*x9f0Xlv!)@w3Rn8W ziSFuI)GlP;SpG~1Jc2@;cs;d-B=s}3m{Q+!ZgRmS z?^2e1jZ(XNfbHP-%<9k0oYTasxAorkk%D%yV3MEj5k}>Cox~ys)C{PF4 z4@iW@y$!A1#-aBbQ3pS84Vo`l&nQV^;yvwcUZ^nVoK??(LO*B}1;tt+MU2!$Tl~e0mot@bp`@LeI@{apO##~s?g0ZrUVrl#-KgEvM zzy!a>{?Xcte7r>i!tkRUgs;lN3Q*@>&BVzToHO&=@F}&t@X58j0K*8jJnW$p+2gxs zS_AaP-@x_M*q#xl;uHsl)PN9P>i{_AFJ6$npnfBSh?L8!|E)nj383vdIP{M7Dx|Lx zUXYfX@%pU>1hQ7j+s`Ldh>vkd*|;}u2|gRZ>D9@$=#5(n)Es|;%QNgv3>%>popIzt z*;vZtkZeAR*J;~&(>Qm5%A)J%o9V^efa--+Cn+QKT@d=Ky+UVR7hG_Kc(y~6f;-|)cYHK$yZ z-Xz=xIKc@~dPg&VWThK=vGt z|D1LE2ZP=i9S_th2$Ht`MGPLQ338by&y;tCS9|NuJudM8WLeoX8WjkPDOa6k?O}7n zfc=@YC6g>5@&A7XC!76-g%CXXZ=cqV(eyt{HLKSu{u=*wXHiYSB;)B_7Qfdxtq48* z#^GTt`d5o#MzOjkjOz>TilTZ^<+p0r@1y*BOYkfmoDbGW#sh2>eSo7^`p-i+yc&Kp zdUBA>`RrcM3f|op+rsIajHuav0(UcY zSok*W#zIYau}r@WZ*48$r|Qo0!P$QPE8!@hS@d_0WN|`mF%H&-15GD;k*zD z+mbd#2ZjleBb%Iv$P}=|mOB%lzpT=En)cqhYGkQ3F0MG9<6@o-d>rvHy6|Uwpp5ji z1H4Gh|K&x{>!#KIgNg(;O?ng*!^O5N_91iWwb-V&d+TT7<8iegMSzAam@lnX6|2+VTYv)u)_pQg{9VP=oNO5 zE9fu^vCT2`evnu6>q`^lCiK>hRs8&TYA0$bQpV4Q`ALMotiC|ab!PN@*oke?_b&!gid!p>A{T46OA#a0GC;fh!E!z5Ohf8#QR1KH7+O#1Hlr(MqUS=nO1 zh-kXR?Cz9| z4lKyk!Ostqu)v-cycGx~Fw=NKhU`N8IT-pCZMD9V6}ar>+b|Knmk!ldMO~MvVLf`t z6y%!gS;Xvb45cKhVNK&eIqzz;ib5trL zXFUDF@sD-z`AGy z%n5+F*v~GfmmDm2V)Q(_Z1DWfz1+L#(mKv`bf;qXOsnz<_WK(YEx0EOIxwkgegU|U z#Qbk?j6?!w`?V-`HE9=ToG=l~2_JfZr9R+N_fHA%oVWVZMPlgRgUS9H;jl++#&=h3 zF)&uv)(tf*8))f2pxyilpL%Ns4YM8 zH>K2kEn7b{{lMu=VqkIhwDjX~781-1Iu65kpMHz7*4dA$)D<2S>Ij?shI)1E#>3SX zx^Y{D8r?NACZruT2=mUE;XDL70Xq#^6Dq>#| z(}EbhuV>&t9Epa;ehX5^11i&?xcj1-l<$S7h|8%cyNz5LmSND>sAK-_8}*-i_~7Pt z41oZyV<2;xuT;GvRqfulg~%=j@TR_q^02+21`pSS+W$2s4gVMxFi*{bau#lN?wlT` zFB!iwI`#(t${$Q|ld-!on#;8U>VFJuo|cP* zz>vfWIM^hKY|gL>ko2anFwKgR1n41U(PqOm_IudOFnyV&mRI++F~5+?AU#2!@r`!zR=urL>t5}pitH^h+5;Dy8hhh!3KMvT(n!{if~6ZNh~ zuV_VCF9dvn?P;nV$c_)jiK#m89E+;b2&#Xsgn5oy!K)E9!&`Y^i^c3o6=g!A z`LIr;8&4Go(@p`T?a*kGwxQ+}IcetRd$$LY!QK+1pU{gK>r2&2b5wIVWCn+5VZro& zL)w6`3O(&2dI>q(S|$Lgw{v-aC3IcJXW0?eWYM8XQw!7PM~~1DmkC>lQfAk*`pg$4 z{|94nvG03^Qwbhf`M6UxTqs$(F~&s8XWhnF!TPhn3t~e(FKkOKe%d6BFzGzh7A6Yx zLAsIB7-;Gqh*k+=B7`9!5rUi1MkdE-`!zqgBx`U=YU?zG4_2{?{Z#+Ae@@BN8Y%xR z67t^!h_)!X>jkBv+=Xg(l>Zj#U*4$tn;VcySb`^)UnjB5P6|R23r2U5?(IF342L@8 zhcFhtl8|5JVU7Tf#H_g2=;a2hdFWI$rMrHj30-A6!bflFPNH_FGdW)y330ucjmoiz z2p>Fg!I;g$$&d)gvr1C{lB4rF;@_}Wv~(9LgQhfeS6lmTOE(L1N&Cu3p!hpYNcj>d z@%l_iyTb^fAwEcA;Pk@cjv$#PQYyi_gKDFJrySsF}T>CM8j0_N9wX~1X4!ZMh0 z(mws2P5wI`+{#8lJr;KCNhAIqgDgLm!%LBWlUA*6SeSsid%5=QjAn`8lsf(F(ZNpM z$P?AT;rU-$2r%t&pt&xK3$>L=fSdN~B-@X1+l>v66EqP(d z`@BO5+pih@!RVP<5M`ktxL>+Ujd}yRV=m5PmIuN6GSyjFae?T%0a;jxfP2G^b{f82yPATSKPNJycS;(bQjt>k)6)v-%d_^e#7R-rfFsx&8C9(#W8xb zUjLQ)*YxO=_t^Xn4r3OrZoo;8*?UYtQ!;M7gL!`s5%@K|_> z_1zE9)f=G0`*4PupABkyn4;QyiOCj@o@2(zz3HjE9TTD6a&E#E5+OoU!L}YuXBYW= zM|Iluik;m^7papCIlpU2ScWOWnhp3$Kjy^6@b^uVhEbIK7+YnR&t4E?@_1IE0+S5kuA42n6RDiW~!q_#Rb z0c!2<%($CFq#e3emb&+~R2pm$`X0S4n2yC2H*qX$XXxpn0$%3^p#eT`cnUaIk>36@ zRoRc$2M zE_mNmc4RdM7zgn-`MGIb#~5$_8pgb64sK1)vYu-v$h7A38g?BCe5uN1VMPMa9s_-K zS!(Vtpv|@Yk#A3kIln|NPLgv_qk2}Lb(Y{h!BFNka4P2_A;Wjof>+$Ls|7kgm}?k; zWpJ2!N342M)djO2ra0!@W(|2X!tiNvNBDS|GmyRT^JuvKk+Vw>{=^WENBo9HdZ;dV zJyZH1+!>i0mMQL=0Gh-4iM3XrSKCGLcpJ~K4E2Y{Zu>DD$B1&~q+cY6Zz~PP{0Z;C z#{UZlX`O>lUH|wYsZ2Kan}y?1=H*XL4*|x-f4bCgDE_eyZgl-(Q+(lR7xovkFwJX| zalEeZ!lQ=t!g%M%uMfuHVgs4EnpYjpF@?W72s>)WO>HRKkNHjKeZcffypXb^zAKp& z&v$U%tu~2rB%nqAWyv7WyV1SNQ(&G`hW|ju08!Z}oD7X%!?rq6{dL9|P>sNR3<1j=*xSWpAm3?wO>p_vuoRiseP?iu z(USr$cohs>XhEuG2}dfeU<%WJ7gL08FVp+VX16} zuI#;skE=okE!*uBfBD^bdyw~SOl#cOM3ZuFlpXqMPVG@d1jYDCV1&p8R^djIu?O18 z!)_NLK(}Yxnf2CWVTQi6x`_B(QnNX>T`nvdf6=m0h?^XHp47kx%f?MkFr^7-6;WJ= zJhZ@mhfA@MAytBj86;fJui|YILDpH|S%#7KwXuzW)@6{N0~!yi<6e@Cn+ByQ&(T=! zQm|sgOoPVd?QEFD*!hpfD75dHaBPb2Semk8w=QNmoFchU%sM!{ey41Hhz!f%CC(o* zbQc;dPGL>DQlQt;=Z2-XF=VSivlPFU(v-Z&hhG1TtPl8&xA-wHrX}*Al^pL$pRVzR zO%~fQsv@9@G|AuKn_r@r|m@870LjezYMH`-e0t z*6u}^0vVt`gf94#0DmU#-_9X$^ikf(ZdHQF?605_dFKGxIevLzia~G=NF^kJg-F{- z?ER%kBx4HgB~`Fg|LjFAW<`-p__??}pd|FHF~KB&(|o67VDpHb|0-QZLRD$+>?N|Gq+P>Pqh(ahL^s;7eo5={#{n2tU5 znPDbbzzMI?Z~rNKQ9#-AMqE)=j}=U|yJGnUTgm`YXCo+Cu*n8sY*=R^aZl(rvx zP&Tp(f{n_Ov6FxjJ}(wcoXSQmL=|NlcUFGhupz2H`SC$jeKiOw(Nu_Dfb8*}gV2&y zQ+}tHvbTDmKf{6*GPpg z*ZX4@l0M+x>W#f-pGF0A2{#d{@9RHC6ur9tuG={bLK;#p7=>HNV^oiVw zxD&Ju=P*&(t;;OC{k=WqpDwy--o{n1-H_~502LKPvd#%_UHCJz#jF9^IU~@E0CW#w zFZ9JtPTQd^RvRDel4A%W8Efo(T@KdVXFd0r=REV`-_f#kU*L+Rb-!JIps3DI8Hf+z!fc$ln zUGfB@cJ|7j1naE#+IKw5WN ztIhp{>q|vQ$M02Wa^A}n1<9*zMDp?O$5)WA&#n80-gT7h`S40TA~2g#qTBN46C`6D zx*7;b&)iHAc3VY1T=RsDtP=q>{X<9;b|r|Z))`+v@SA5sbR3P-%t^52lmI#j!`6GjAYrJI7# z1hQNRuPNI?l#NS2R+50l{m#>?&Jb+av!aUPGO6jU(TRy^WIKFPloqdXvP5zHPZ;Qr6P zQKfmWaV`}8rYKefStf2WLn z9ib*si+Q@EI;{F9xgucT5%H0unso+zjPzcRp&cVI977=kES(p!N706u*K&Bi2=uoF zanAlJpRO{{b(>l~xS#F%grym?YrSvUxGB=^Y!++yz3O&*6CW}ni5$J*bPE9PHOfN< zdCVZk+-MhqKNq#l(Ji_6^ho3>c3f>M>_lAN@-b~6DqP_c%n_Qbuw_a$!gSM+tT!Co zFO|Z^5>c`sjwE!c|DEMxG=ZNsK3H3iZATTl3*s`L809zO(v2pp5SU9!3B=bhe`h$f zoYJac)bl2qpp%s|Y(eRAA`PPd+ui13W@%Cts`Zw2wmJ=4Jzwi?h+TM+ls|w|c8gcD zVo$1k9Afs3kZ)Al%a=)JD+jZkgBX95VI-|TDeW7IoQ-X&{sOeE5nhOS(nAqylqvfF zjG=XQn@pMuf@w}c)?Z&OEc9-MXwVS7AjUbcy)SC_AOoMCZ&lks(kB|HI=lFx+CUBb z_R4DAsM-%&cSfi`uFH^*_WFX-OKI=B4n6{oJ*LWREzwveRwP%!rVDp}xD-CK?{&{fun_SGOT}n<7rI6`59DzP!}o#j&Cv z>O0tbLed+@{Mn@QT@*Xc7njW&zTD0Wd`~lDmj^klpD)j|(ckKvfLw0Ky19tUjp(Nb z)=zg5pLWDx)-bNep1ktHVm7k87P5nqG0+=(bg@c4GAcBW@E8GPG+AyXrq03Tb3DL! zmyG@T$c{-3lE8rWYnCChWb|CGq{wtwG*O34r4I3NH>VvH)hq-%Z<{u`%uNyS?7f%b zmvHq^&#lY=M|C8qrFK@rKrD?P_0oHcJoo%SrL#OLMak4K6;Q7fYD$4 zn5N$kJ$AUpOGB9c(DTvq?}BWN5u?my2H^dkD7FZCX$h^RfqBwED)ASTIHR8TT9-tf9t1hcV3)8hiOCDeb~mX3M-ai4Q7vKe9Gjkq+xh0OhVYsig1Uk~A-t{XJJff)Lf8Vo&~#f5QG z1o&fE9Ce`&8R?*^@S)FO{xU@= z@Yu`uUYzF*E}<|ln=#D?I1c~_1kwr4vuyt(WoIYbo^GlB11q>;EVwGZM`7}$OrH`# z{HkL5D5C<&VAav7C}ScnT&1*g8HQtHW%vXItB%5 zbKv1gKN7hX@J=znX0uDSm<9>$Zb`8BjHtIVL&&LHFZ9u^?!x+-Om;X=Y9!YhHOrHH z(7N?ezv&)W zQ#e+#%G4Ignwig6O4QB3w6}Vl=!5WVFD&8nI`cCD+@Y|fYarE^TYe4%HQ^gdpYpe% z4lp=Bs?3nO1vgqg)o@ln%*79)QANqh^YbuYiJO~!VrnhiN|*DEb<6Ewi(HWP1+IZ+ z?BHr8LrMw-PHOwWv|tlf4t1yOubNiFd&11X<=At%jEw@H_9OvEENP`hw&Xe*mR&jl zxA>-K&!nc>O-Z%(TMZ*R*`vGjKLwB~l4vQVOWmHxfTdPq46{Xe=6oW{?K}g+r-`WM zoQ2!&bAww(YB}(VAk$K&edV+N5}de0 zp=x`$pC_ZaN`%O4YR5>ghQZaiJs(n2`S$yb^xvGoLhM2Y$0Vl46=MV?3FND2H$a-L zFd*mTps_E@_d*;xEdMdwp_HoUkN34Keujv({db zJ=A7;?E1zf%5O%20)0Gwl9=?@(vp5SnDn3f1so*%MO=ZD)FY{H&|8-`%^^4Zis_Ys zzi<{b9-z0DI6DY8(${ZWSz=^Kuiof9x1~wF7RI-kgqBKlz6QBz0|6}3QH%JTqr63x z)&i&d-UXD7M}{HPw!m&=kNPK}G%b_tf*pPTQ>O13zfpo9rd)!c$Fd#6jF(HrPH1Z7!`{a{Ezo^OZ5{w~~-G!@wIwq&v!iJl1mx3M2$##YKIX-RaMWyK> z`kWJH^7#|&9I?W3wh9-^`sV1V(T%8^$NX-+hG-dhP<+9LgbL-o}|R0UoDN(fjmnqj~i{%}MN zG{I`@u)AL@c>~CE6CjdyO@y6V)&|xCZ7rk{&Tqr{gsetxuSmr$sjLrfJxHgzr%n$4 z6mI{%2>~Rj^IO5m(?IHP=>5!f!_(UaTM=mNyk0}{f61E2*EN2|OhH(2!#MlRTVl@R z3WI3l4Y8(sDg8=w5`GmMSWIUTVQJ ze9sERl1kC31l8s47;yLzHJqmnfvRIe6dPaRGy1|iYIuY`{6TFN#7wsHfRD=nn^rbkV?W>2p~wJ19+n8RJi`8xwGtJB zUBaL!qKbM1J#`d{ilkRt=$zV$S;!xWILf2-W%Z0>wCp*<2BnN_gyuzRDw>V8^i-b4 zbG^)*Z5peqiA8)LkQUD*6Y|PWH*ByB_zp{{+AiVS?t|aW1RQl!y&baYzx_Zb;IC77 zlm@3aZ36bG4XR!8A@y|*tK8Qo?I4u49SfIjdS#aE0wW*Vo*}4zCgnC?*4l0U-Zz$} z5ABn`T55-5qxiW{Kav%5-|O9PT>$V2xcOJqB_MI((?UK<&zO@oBSaH_gxnIy$6t)0 z@rF2)y@Kb5?ZG+CI3?6rZzK%!pXf1~_x{C*-B!2Uj5YxlzPNYD+1~`Vo2LGaq5rZ_ zjFasORG=4$;{3dj&!qQJl&6=myoZRYDH?o=MRKZQarJl)o0|o(@zIqB2ZE@@3YT!pD*BWg!T`x+)hMVnsfkOg@jFMPn z2WDUOU=+9@z1U9-niF1}YfVUjHZWHoTF9@_do4E`w_=Wk#9M$|&mO7G8ezkSW@49& zF__~85_tba;nSE+sNFA!`J>t`bK+_T+EaCkYW$5x4+M6o0BdmMdd?BTHqY8C&a)Me zpD+%gQh2@ji=X1lpnK9?A_&}@1WsRZ>&uMq~y1d`(%53Z)lZj zK3=LQd8!u{+=YQfY%^-u1#@(9c~zE@GAkv(?$4G5IHl(mbb1Q6Z=}=bw_H3|+_( z@VQ`FE6oP{6{7YW0n<){yPmd8Fl-5gEzdQno2;DQd@y(>%Am*n6P{R!)kY9Scfly% z_Q>0F3V$HGeKIjm^SKi^CzB45XZ#-c3u8CoTj6~a`#zZTGa_8EQht80^Z73zV94@N z-csLK2UX5UMSu}VS6(EKy6(mV(3p0W<{O*Le`zkUX#bDc^!jI71GXEd_%))yT_LRz znA}_d)?a^&!ow!y@Mp(O1;&$y>Tm(J*WH`#iJqqLN;_7!@|@wJd{aI(5Q7^%Fo{vn zM_{n^Opr8#j`r)%OI^lBkbskW2Aq-rxEEhPgYlHnK=%P zAGxlwbM^PLG0!gL1qH5qdEHGy>H^us1zB-_r@)LP@W{6nDMh_W7>V@L5#>X9B)ll{6gJ{VCA>eNv366msg%F!b?Rf>hN*DLngiJrkP;J_1gS` z_+ULy3t42=Hze|1k%}FD0FB@b(xyOY|IDWPoxk4l!F2Vpi<~<;sCCzZy{DkdV{4gW z=1DQodJht)5v^2^Ihx_~# zhKy#Vv|1w-WfIYXhWh-uxCv|QbXadT!+ zr4mGu7$=D%$tJJim>(a!#i7VhnW(r;lcW)%C_!1ZXxjfSn-%q|5M&52C`n))1u`9W zkpmH(n?D_~2*82ZBM$#Dsu8q?-!$GQ9C|WG4QW|%*&^gB)Qw+E!FPUnHKg_qrRV%E zk(8wO9R)^`1l|`YWd%G55ZDr&AV#750>8M^Qp-%90)7E}*NQr&r0+1eVPM!3aOeF! ztqir?JVtZ;y_Z+^-ZsUqA;*X)FuudpRkg|SoP7a*$B5z|`&m?kk>&(72yxBS8q-fn zTaM9k=9Vd)o5)`7u&bOIcDL(%z`orLqe>WqxZQl=dF#*r=%WVd-X}y1pa}7f(b&56 z-&l3qxJ9to$6_wq%?sar5MX&IlUZS>*g7y#EW)6%OR1ZLU9ZB)Bz)lU`1z`5WEXdI zUwY>awuFSFmwk$qrWiMVp$p+(qSRZ?>9SS8kppu$fR*3)fDA_<9UP}{Co_lo zFa7BsT5HJ^x|8Vxe(Ps6w71bTwc0d2&k0JdW>m~)l|K%5-JuS5m^Z6XI190z2nbIH z>I;}-(pcKCC~1uSE22%3Ac{@ag^^vSIKP_6G4Sk@mfU3--r2_NPfg)b6`ee%_ZHd} z_nGd*v|k#$jX8VYd_#%Zu!FMNX>7&~Gx?wmKvLEa`6aHKsm-sL^;{Tnh}j{_i0H(y zD>V$n{H0f|(VQYTjmSB*Y4rO)C{zsth-UuW&{$ugVD3Xj3E1Mvb}mVooJ1Lh&T z7i{bbVAYOS*0Z8Z&-k9l^p=43q}Yxu_pFj*wC$Gm4>`2mmF!Savgf{)YZXnM#}ftr4) zklI`$F?@U{difeoXF8RR4w2bJwsq$nYL+XUIVs7O zqm6i{4L>fm7|O>2qh-+lq3N81>*~KQ-Z(e5ZQHhOv$5?oMq{(F?Z$S)#%S1}aT@zQ zeSY))k-3@4sXsJLDziO!*Ej*Bxq@s5=%bAr19Vr3WMXI%%6Uo_aSj7L)DXic!BX6c86ZxU23 zJ(`kNxada^DtHwUbGhhVZKW~O;vt9c&@>}XS7fL=FMKI`3Lq&f_E=^KF7qK7{hW*|Y4{VOz7nJ&)?sXxjgtWDLlZ22m zeXvLuW<(zLiC#6og&|F@p`22YP`HvA^|ds-q<@pE>y*$9xLWq;Xg?WxfcrN`i%W5bs^n< z9LhkS!Z!XJg1foVw7+8L3f~1KqVT1Vumz@yxKe^APTxyZk?s8GSIuQz;IZSqz(0cm z;5!wy7}F1Rex;Xa7g1z&){gsHRYBFaN00zy&aD_|Ggq z0I4^tsdBpmtS6^c?siljO4#Db@`WG+5b@oh z)IX-(zq^ARph1A=C}xEqNWUa)(n8bVTX`yFxVdNckAyk4Ugp>ir{OrNcx8oomaa^6O%nExFA?>7zYD;kzR% zDmVO$xU@lQDOQyOm-Hxow*AI`_B+9l5;h$C99{YCOGs@icpUTjq*Y;uZy{^DDrC-T zXO(kz6&R5g*cee}<7FLUOuWEIL%8%jyCw2-d7gBA>?shhfc(KT$=5XsnJsh;cN?8i zsN4-J&Nk5u&q8VJ$k3`6+)%DzN8&?;VFmz^t(m-t@UzdS)YvILi9eL?%hb}7n# zf$`1^$iIOMxA-dF<7-2%yq+c?SxBDNw#L1@$jb)btr*}D3_-5Le>#!_D%6bIGJC8X zay#lmMdb<&%ns-$CSrrQg}j6*()?w$A@FNdsLa@{Kt{gD1D{LL|Zl-7b^z0wRI^dWriJ3 z(1p;Pw%hs9hLTIz)#MJH};Yn68~z zn3y6gV2_Xe-!4(6Kov`GZWA6B@Q_>N&kK3aKtU?=LRoAp9v8?4mHR?V{6)Ou18thq5#Tq}oeP4;{pw?23fB68)t#jNUb^^o!Rd?v!r`tJ4k2nA zqL0;XSJ)S3amcfu=b1&LPRM%EEzKPHmMNATiA5$5pnXbULKysv`K&j$I#iRuL`a<^ zCB|qyr3#rK7?J2QhRXL2c`N?FfnqIYGfHfSwCmlSt_NR?~)DMAa!=MJH1zUA7LK zV@C0bQ8dwi% z!eK~3-(Vb8BvbIYg^>N)2GQm8Zne z|K%F}+pU&Ogo$M#WVs6o2#ktW=7Bf5v+Sj`?Jx1O8)fL3c<>oux>W5*P}&8H-XJ|Z zIM7imMH{>lOpEnwR(A;9UQPy&{7^2|zm&iMKNL5Y3tLYFr7E5~nAy&rEAErQueIP1eLeZ;;7*c61i{7{r3AF9zFZ20GIXz;iI z2E~Z)*3bfy<}B{FYyu^^Atu0;MDTG2uDI-VM+}$dL=jAN-i1_@R}E~$>cwt=^FDxT z8jriMFnFRh%Hw>^M#R#mZFQ5B^+5f>MOW3dr%Cz!lex>T#iNIO(4sI>@2E~xT=dma zxd>q@jE4#spR9TginRf)G+njyYZq)w+3&STSdJ49DcA(`{Jh{c@T!Uf1dBzvWtg}W ztJAf-u`q zJ_P-Ufkamcm8bQouLta+8yF8j$8Uj;QlCe*je+C%QIq|Slw`S|4r$ZodhIiYwpme# zB3mF$FoK-D;;?>Z41eFiJVr@{9qMnL3owSg`{bAuTr%q`6T89dS3_L22}dL5F6aLAZqDs< z&np4`;I481GcE4ulaYRKB!KV&J2Lw8@&#satR}*~pN#9N_=SwyWgEh#k5Qojbdc2r z_;A=q5)e`UT}lWXu&8nXd0o$~2yh)!%nFr@ymK zI^Xr;W8aCGYOXz3^TOQG>~xDd3H&?9`w><5ZRfmKlUi-7NFzkMF_0#p5k9SLZ2BkK zDzoW?t#fJ%$T{$v=e(n%pFPZQ{s!VO9JH|BXBJEG2Fo6Ho1^{~$@;_=JE1L%XF4&m zES5Yq2R?d>&uBK;{v`Wo@&0!{QRKAgH_~mR6-wG)evF}ny)SpNgV;@g3~LPLg39ZO6$_oGQ+0*_mCzc$R-Cp=sMqFq z?_eqLD!XUJTZK2o&fUl>Y=BsFn!NLeAFNo4A)+<;=isqmB1Z?}rLCRI;S;|7^8tu! zv%3GMK4)h8ols}_Hwm3hS$A0=0C6!VO5q7=7nCt4d`cx|c`p9@mhc#dm)O{LY@hk7 zY9i#!;MRf#4VPPtmo+Ie{X?8mNon4!8n~K9B3vU}hc+ui#dD6Y!mVpEQ@Scq;fps_n^mSSQ7zdb`Zoi*m~ zclzCG<4u`=hNgdj2f)(^m@*aNuaB4`#cT7B!fhd;{e_8Vw^Iw6Mx)i-DD9Q1>4l^T z*J~Yb5R@!=kKYe{yUMC&57InSQ{5OxD!y*l^?0E!F+zXqju>F3fxeS6aesq9C+h93jc#8WK_Yjy%};iS(idXU(sp@$%du$!3zpHoW66l|OBgsBQB~b)J0jV08#$-R?HVIN84*Fkd z_?Cw>``=KyZXA>g-au}aZ=^{%OAPrUdEQxA#>m>ZbSOa9@j}f2_q4u`uNb$qF z9`M{=e2Z!>pHvam+^XnHNC{=zrDd6F+P3TX8_Tg9sBtlzCY{#)z8Sq86Wsg|ys7w| z)qX~crfXOX3lm1sosVNaE75Brtj&suqbGfkp8~$gQNG}!18#lGuHd2vZ&%!l+oQ9xKKQd2e>DFOh9jT;+xTvQOtzorocN6bd7_% zXx0&xR(P;2LA2PYd`|=+kr$%U;t1=}5#rUvp_kB8z{v;z{^d&Svwwf8aqtS3GKbA> zyh_-A#zIkGSp;{o?|-A)@lAq&xzHrF`+#`O4FEU9B9QpJ#~VgzEN=1_5eL1FJ-95s z57J}MhiVR1eKJi-t(p_oFS!+3Xy~78iF`avt-AHm>h1aZ^R~oekugf5KS;2dnA~-y z{&7$z=;H!ELFwz-qt9ossw%>U1=}P&H0u%jOLv`iIzNn*a)jw+iR5?5wg~WPEn*c^ z*cLAg0tn~dnyl&D{$DW@9Ax_ThZ8o42U9)b?+W0j9uM|qyPoDD%MGPvPBh(RyMiyS z`$X;+kY3j^p^y#91pLQHJ>NZbbPXk+<7~=Qh63|bl#R@8&W~1K=R#iXEMEhXL45z$tY^MqfGHf-8lDO)^be)u8W>tCnSk9+(Fva2H!Kk9v9lX>^A#;RJa z!0HiiLmlDDi{1G>4g!W~z3~*4#qW)98G_OIObK931C;4(fZs{%0sB1vVt8h8KnPkG z4<#VKUy@}XVqwaO9Zr8fss+%}xbFb-{>x$>p8~n(0E<7qyZCnzc58S)1NAIRe`q|5 zveq!qxeF}Rc&l*u@i16=wI!#(O+a5C6v=})tl;PwgtBIG!kf^S+XAC_3#s;ATr~QoWA`kw>uR>vj-J06%74dQp zN_2N5t-MNtgNi}=E<~%#4Dp2kDu0NSRj4|+ZE)mYa*xlL{oEw@?>&DT+)oYLPP#X3 zyfn|zvT-k3Sb2bT-ZX z+$GP3H~xcx17Wp?#E6Ri-&9pt9NTSHTv(ll+NV9AnfMFR#8AdS%+*SRzfyA8AzSd_ zk~t+szzR#r+wyy%%yZpy4%tO>6BLgN)kRlc+QrFY0A(-esA+Q54m*47ea1L~!O}I^ z=(I14aVVesU(T)tU{@>XlRSMG>^mS969MCsU>sQ~1RY~=A)K%fwq4?cVXt5|Y(Dk{ z{rI4Ee)?hoUi*Ci0h9LqU0UPqZ(j?j<-r~i3J-g8pGxWOVHA&^v4kX8E86VFF8x#i zp7)}!(!}-ml_dQ$B6C=|CDme~jY5HsU9yfbdmRiO;L>^B0P^#IQ>z-ldP>lgt}&w_ zx4!zNlO50?5~ByL2qY19{$>S6x%j#t&Es*2(vBf)X6PEI_=P|UjQTK}_v1{6gjm*{ z`8+)xs#9KYno-%3JtU(HZFM0Od;bRBjt8Riz75nxI=I&s7(a9O!0l9M6hSJYVFJ&w zZz;)f7x;M5&w`UYh>v&r!pl~K=RA7Tlkcb}$E{by4TS4P_&|y!WYw_;>}w!4#;;{D zv{r(q3;KehpKXHLqKoDLFsiqQTYS@rdid=@Wb+I0aDdm)_c1MRz*?HzWEXSQQ(uvimdWPZhFsm5%$)`|?EMNB<=j0k6ne56jSL;#23UU5-5^?Tb z6<|k|nRxgc_m0_Ife+dc-g&Ru=W)x@qZChfRJTWjU6FUNU<|K3uL|9I)CSu$+ZQw% zeT2e!3Rg5rJj(s-W6ewi3b%wTA{#BNswouNzl>B=u6SSi$1=WcR4G#Zlv^ISL?aC5 zX>rotq!Uxam0l=Mxz5zxV7kGarW4o*=jPcfwjI7QPq|Mu`16aT$cZ9OO1)@~H`GZ9 z{2WDoWO|b_AVwQY2|zz-Pl1)~i|CEX+wY3SMtRr_7N-As)oRUl3x=+GJA>5Rf!3-t z3E_(vSsMk=4!;8b1_R#`%DiRv=Wa~rdNCq(!}E5-9eZ@D8FsugKB&f6I9p1r78BB9 zQv@=}9~1SaPGs>5`MVsh^*W^Y*D-V1civSSO%z1$O8Ds35K!#`@Kj@OUaOA{ct5^0 z78;MLww&fiGy7T=4)rg=<_5r#FLw`Y25{nZKWe{b24ablXY9eBJHHC&z3tlIgwwjU z?Tz5`!+-wi7d&DnY2yQ`CK|pI_t;UaO}k6za_}&_yiu$1(+NIEAROiC z^2ELY1IJMwrx{a}kzV)bWhqyL{}$sPx|&xjqyU7E!sChkgM}Pdan0%y-C84i{>vj6 zPUIN?rL9f8-Nyp?Js1pBF?vfd2cK;$UE%i<8kQ4DJ^<;ALZ-q9;#}g_Z|lHF>~{{o znC>!0_CS{~>|KGOM@8V4uC)4Cs_^-vN%o|U+hr1~ffv1CTs# zf>7CI+m=!bXbyta{skA`vDN`9*PrIHJfmvd$zx0eNx-A&K^sKj$~uhtgc8XV!oh=Y zrVcKUnlg8EB+27k23dNqN0pYBnt8o$Z(&|tu8Gv$09H=CXd?0IDAP$T_EQjl??RsR zysaq-uvEr{>ChMQ3IHw~F+g6BX#&p_G?j|fXvr0b(*l{(wl!M%#M4st;IQ< zt*y*32Zqg;dIXMa)jqoV;VwFAA|aTv=`ARA6>yFSi3$Z-l^04;;$%1nYq}Wb3Gn8f z+8-iTnoK3{)jQQ6M_ATCdhn}4^c8$&grq!DVf)VzYDr}im(-%kcRa4dFO7@Sxa|)I zdg-WBSg!K~p#(8&Ax&)f^1rL9pgqspqkAFtNYmqjmU-~`)WJ)tAn%>3ZhaDM{sNIz zqIG$Qai#=jd*AmsK|JsoCK74jwYS`^IhT!J$6}X%i9mtJ<;CK2tbgO&lr@2olM6~2 zGZrT&hL2u>9G7q-y@`JF4yFRsTmn>uhDU`_ib7#lPVJgoi;Hm}Vm+#9g_7z~c4NCf zCe3eZ7Zt}?qTx~}<$)Mu}IDORVzYP_U&8*{N3SMynk8>&>u~5^;9v0hu=Lq7iG$!H+UFu zGUNpRU0|pvD}n;AGOgzvvMm1IXS-@ABciHmM{mnudB4)4XMeWh5jiQmJOHj?x~bXi-js0Qiq^B9 ze_)8!dw`)^QOxzi8V7$M=wDFH3nA@p-&`sI9WcHF;G+TJH@|%OoP)@D&z7F1@Hc3S zTlTx=YOochNF$+6qTAOrR}HAKftAEz-&~te?SAQuQ@jd>kk#=Fr{5$4QvMYp`;>a* zSwLFBi!_Ec0KK6a8Pr-Dg2c5bUD|&ad|g>Wr7ws!0AX6hHV%AGJcPm%mdTK;4Pmf_ zN~M_TWU}<@kT00ffnKMIV6Z2Q{lz7U+kznaON*R@0h{a(10*C>f%Y~+YIg7*-p)5D zZ*|1(D)2nbpy&cWi~dq-EryL7`iN;-iSdVttIG_)34=|#)8&8c#~f0%K_*lD*W~Ow zw3KfjAeA?)zk_{sq%KjdCWX^SQvdjtDDl&FSdry+8(Q&F5%$%Tdsvme@cc&_c+x#X zSjmd7%!_?^&9;)v^QD=$lvB9Zt)_p9kVe$q0_j5h$Xt@V z^PW2^evsN!X*M*oJ7Pmjh_S1 z-a7uyZ*!9ehkhPw))wLVu#yirn!wfJ?6R0YR+n9%(L!lF5W7(}C*^E58elsxa1Q#s zGIq8NV_eqA3;6IRIk`wDv-$1||DJ_HuD6RL4*y%q+D)NCr&uVS>Ee!E=L+m6H2;i6 zKauBvE7i4w%65dKo_AOGiPmENiJ+dqO0#2~35W;xTW*+wJyF*i%jZ0nH6`MNzdE_I zsz6OeZt;NibSXS}R+6ABQm@}vJ4M};4L56easuPGRHQ=uIa$Zgr+f8>` z(74T)Ex2B(;ji6z6g7R5vv%B+v4}DZVA}-$%#p!VdjPqfcXXNPwU3+L<4m^O1`)9Q zfh0c43;Fq%J;gsy{C^h1B;7s|hHEx4OT!SaOT@=)$ZRTTqdnEth6}tiENTKQCZ@kL z1_Moab-e+Rp$SIjFP8x85a*HB1G)EWZpg>V7XiLIS&{rl@o^r@(b4VT-#tz&9Cwht zY;lr)Z!$6vW1_YM@n^5<6?HC6d6&0Mf3I16G3j$HF?g%8YW&1Lj9L*-zkG@IP@dBH zI~V_3pY!+M{+adZNf zLaruqP&fjqU!^WXy>~2+r3rv|EKwXOm%j?amfX~HQs-7TQkDiLdk5g_s4fjk~gmfb(H%bhAYTZkH=XX<@}qmCj=nMf|DB1Bp))3{v*Xgm~xqzlWV+jiTuil z%=iqz*f`$WL{>7yH>}uO0=QT?dbq_FtOQ#ixI`BEP&xy{=kAOl9Qu~#?sX^T?sSnf z6a1}1yE&^>G4~H%`1Ly0#E9X+1sr6HVYmu%E^+im{BLR1g>aj& zedA)*;0q*bu>)sNIgKtG7TpX@O~a^kPtq|ajH#(&nie#qBfA&yJdY2v2>?{!;i@*< z`a=ItL$fU>^Vi^Ck@b>NhR#t1L!IIyS>wxZK8LLdke?!SLD;L`xDja2St<>$zr zbhf!OmK7dVbExI|9;8rPG=F|&)4vLb=*X4IWE4dakI!5Z6pm5cq|xCC-blR{ERaz2 z%mBvuM{-p~W$=>jkCP@hVPWj6+AkXgl*O+ThEUZ#VLhKxlO&BxC6_Mg=r*&B7Ip^j z=s0PX_H0>Xb~PtWil4WY;Hz!&`tHz5NSjISXTzxM2@!VnSEDJosS0KjVw^85p-xl8 zv86C;JTmQS6|zt%>g_9n)9z;gsg}lNGu-{U91kpYG+VNAF3NA`+6WI(bMp7g!ISx} z_n)7C($h^^(@dIVc`jDRGwH2_%d2n5@h{=li&eHlrXj&0LL6X`kiW3BJkusln(NfF zCpoeCOUNQTXU5BZ1}W4%0h;Kl>~M6eU&^@u6dD8{ui$Ynyzex_0q|KOHz$&~*41-N zt~UP*p|q$b#_O2QIq8+EhyDd>Cn5Px5iAz!{;;10epNz{*=>UU+Bqy*qG%EdRcS*z zTm~K$8$-fo0W`3LW_=nmihmRuCgNg9*bi6kgwf$Re0IztRH{G+*$fShi>}gW?O~(> zOc(~lF%8VR)v$&j$yML@E8yUzfZ2;t6-B8Mi7sD=q>rTd2xm>M)f~~EJ$^7J!5Gfx z%8G$1ze6a|y2CBD=0QGeYDWUvEx{Aapzx+mT|BD!K^IXbO^TlzGYIUndg3iUCn+R* z>F=)BhjgFfjd#|Dcc1b_)cnAs0bKA+8+sL8brGFE;O;NgcqMeL!KJ3?hv)f6YLv(7 zFN5frbGq8AlMn<=ifmaksYl$)b-?<$fF5L)Z*HXYRV1>@HwsNTi2S zTy0)S2)DDrXWYOaT9R_Jq4+p03$Z+x({fRd*1bQ?qBxjdUtomopmKuQ3(-Xz+H2%W zRI)Rof}wRuDq+8lR_jJ5~gifcymIwB#Z-`jDr01XYs8pT~P_$1ku7-z^yn zais!g?nSv%P25?;z#e>Uq+PgJUBUbrjy$mV^UhbM(n3 zG~Lfgjedb+4;^DDczxJlveGEI0Z3rH z+9p$-CzHdSi0X$9I6uFH3!P&PB`S>thSKh1DcErD=6i-tG!^{*0V~@P){qJhtK1XS zpZepB2Q|@i8ekBY89RMS>oWJ7bT9ntRcY|ly%TGUn(A{y{)9Q8`yD0I10Q%0w!O@M z(}w`Z`F?sInANu|sy5C1q8;%usDEYr2+uKLh1zo~6k^Uq?s};C=uSVZ{gWq3gB=xx z4a!OGtfFb2ZOV03)J@Lzx1;&Z>@#}%_4fVHQ%hVvUe|1l?q-hgg=g*j-AP^G+Nzef zD4fkz^Is?Ei@i)gBEAHCh9wUu{|dM>biLH)64*7bZPKS+Ox8ZI9=I=&tZ!uC&0j=K z?rSaoDe5WIgwy+D@sHCV@W~b&2RWV){9hbLzC@W_Vb_CLAeDxC-}(kD51yOVH-qHr zeqO4dKz{wE)ZGe!EFYXRo4e|ALCVHWBz>5kvg-ebHD0J;r{9pi&6w5P_E1%;O?8hO z39gSdv8s1$2_MrQq2GvU#Ych_4#>Z1MqhTz8`W4^T75XfT;2+Z<5aF4?{qL-vnq_4 z8DxGV2wA8j1I{=Wg{7M!C~2+=oy#Jzt&n#*6pw82gKF`NqTq27-}vLg^w6_x7y0AZ zW@WOWX1j)Av%f^AShFtbp9{n`9+`d>jEPG9F{dO5`ymT6?{P>gp~Mrr1Ef%%bfBGM zx)t2zgenm}lLpIyIzL2AhFogt7$fEm7}^%nhW-2Ihk1v~zr&gqS>jyK36LhUH7Xg1gU z1g{O%YwmUm4-k6mWOaq6NV5=@4-aHHM1k0+9{1t)HtrlT#CQu(CIhPrPWrNcP@Hyw zRSD%3oVDUs5$P8k_d>02@sq}^kFSFt`#J{qu2^zqEV}DMm~SH{-swcopvLUrHo|82 z(xYDO`&vI^^mDU8<%!A+VY4i|9BMkrPX19 zFIJ6BeLr{MQL(QaJ+*}=%5XV{SSAjL*}2Td|hSQV3CT1?8ClPDwS;X_vKfuFP6agF`fi}{0VYnVB~o~CeRX+{_7>&A`d?r~4h zmzWCDp;3IS_qP_L?_jVX;_oh?=`XU&s;3kuV9zrMn*nMuye|BxC`8B|LRh1TfNEVg z@#R45;ya4kM|h2YaV%E9nmtVr#k#8upwnYLXogxBXfeqd10oF;zhl`5vIPj0bP9}n z_}DWqF$1tB2xD_D|F|rKB+}6HfZHq-8+MX;#;^=B2%*ZL&exJd%uDb?aIaK@5%jHTtU{;^m&R*tgbm+|cP^|w zSj4>g&k4-x>yz<$fmw`Fx7+F(U-#+Mm7(t3GG_eV7iyxFDn|KM2+g$AtV0nG z4@5fpX@hCs`xn)xMpqs?+FwbhE`!gxi4viNmeimYxzx3o_WWs3YF02WYZr;8Qn&;j zvat)FL~o@+F6;31RoXDC50&OH5Rij5VnD!4D&VjVbZX^rEy8${;4k`QuMc5~0ypQ) zb+W;ueWL*A5`a}sQFRl;xflmfgl*OSAZ%@a=|t1M)W1G&pj3e>Z3qTObQa)PL&0_1 z+0Q^S{?O3kN=UKB1q{%DOb?EO^aBsv0phnQJ|2RzChF6_GgGF(f@EEA;Sav!Vz@P1 z4!T(paCy9Jm=7WTf{Wg)X!gsX5fm8AhA9q*MYwx|uMLuk(!WK~(#JlhRgLM%bk>-m z!?pasOKO|4(?&N_`ky0mtrKn>5s?5`hdFQ>=t zGxko{zaA3&#&GxZTxM_{axeM)zH~iYD0#ssm|0q~tDo_>^n0FB#G6}6ttCrZT8>h9 zj;Cg3Wy#j4xh%Pj`D-&)Y9!nLK)T&JPkX;p3ofk+zvR#7{n9*J5;yFgui#qGJM1w_ zRwa&Q>fjb-&7L3C787mVqX5>Cs8tQ?$T(;3k+xZ=o5ojDn+!e4p&8ubi?QxA#E!Y( zz@GF?3q3JiaiKzWxRqe`cp`@L^lTr*+lNU&;dguPP62&X{H;BJoOt8;4zv6JZiMdW9MO_3eH9~c7g zXC2W&4{fwThe)#m!8+olq750^<751Jm2=9TLh9f%5@?SoOF>qBWFpmwv-fCBr+fu# zKR&f&Ed3Z{R}Rw3uPV?bO#YI8yTtt2-vwp+c7y{iCq%j5`L*XIQSePaRM&&~Cg0$Ih zwxH)OgCL1KgLj4&$y%us%L6V8Del`RRMm3bZ-0;kQK!wr>)I9aYmA81>d6#MFJYMe zR=f!PnZ;w7ib$x<=({$iTnxWUmVsO_? zZ<=3WwZutglCP@&9{6Ovg6`Q+6k)7YQ|!bzyb{YGIPL-ywrt=E;&_!NGxzaC@XH4{ zgRS^PVsIKWVkd-CZkM=Q@VYaQsR_vI7F^#Ky-|cni?9Da2O0e;ciEEx9m=uDlq0+R zN`1BKX;Oa6=NDNRSQnmBJWkLTn0?@@!)DV?PpT85$GQwRlc)4jl)B&Y?SD|NJ?n*l zz$PR;Xhv+ox$Oy2bP4DqFT3O(Mt;mbe&2|CcBcnHJfOThd4)Z!$=^~7?`-%&d;w)C z7DrWjOU9B2yu)+Z3l627QtB|c3eM9-m&mN*hsgS81@*-K|H;r}1*afwf#09{2OEIWzvJ?~2OJ7OnJ7$=dzP!YPqJ-y$f<%S` zTyFUHZ7J)V>1;g*itZ)7qV-zfP4nI3uhpE0i56T*`nwBV)Wx`e9wz&mvyJ`gSD$gfR7~J&LYKe5u2z=>p!8oAiPlC)4lc-s4G!m;Pr+@KEy&GERXogMr zcPxFyyG(kw3H%dtt*9TSd?I$|762!sA8Y(7HmH_?w&BZ)`bYOs0-2KGj{Z5pU_ATR z7%iJFh73KYK5b>q@JZ8MHGq_(p%+aMm0WTzzV`8u>%YMr4 z!xu>@aY@p4r|NYvyCg=_sMM-+3grdLy+b|^&E^hD~CW*1D zvK%*v*n;Nqi^)L0q(PQm#MhQ)=-8R0gG`vHUAcY>3NjLbipQNJi8bZ=FQJ702?aQL zZ%NW@WY{pmD6>Bap&!G}+=OeLAjjW=rd-#^G&#=uIsUpoAXOsPIo}J+S-le|>%ZkC z$l0laa3cDh$1JF##%Oc)zw1BEQK4b5p*nrcKK|K3*W}eQT|R>;eV)?d{FF#+3(nC4 zGU=#9Xihcy5u{*UFZ;ta)sPH=lM#|`&5Toe=>o!DwX{bKml2DfGw6OI3e$TeRuycj ztdRG_BwlW&NV~6e)BBh%KP^Q9nhhx@$KBgfO$|Cmsky0`LpK&@no0qy`8iOmv-IzD zNh~>HX0DWGYuS6xuZXp}Uj}v;%8V`af;$LllsqgIMvhg625R=;M=OC3e9RbSyQ?XSVkNb4|?k3&Fg|X}h4ZQ%(`THi3`4a>zU%@D}c$ z9NzaCEl{>^cm+Ms*38Y`TgZY3py^G@mF+RiG`+TDLeKZx)Z^QU;m=d0s>h%G_Ye2T zDfiWavAFdon7QElRy#DY;_JcI=@j=o@*3OW3MxIG&B$`o&yhAkke zm?(IBl0s}0ix2nk^QFB<$@bQnD9hsf%NSl$%Jy?u!o%WkWKXIrD#BZJMRZ;)AX|)T zK4oh7`hc@5gBaA~(gpL-UnKgld>~tM#H^28+zFdv=VQK@T3-nL6q*?7JFphxSEBB8 z!`l6Jh_=O)G3SXVkg{co>Y#mn){3|L#b!>uoT8Q`x`Mo z!5Zx^Sm+qT!D{6g4rR(3v?nNaqC^zhs4hj^{@d-lO5Ra2k$2*?THCx+ zc+cit)h9;tN0&X}wIBS~Zcl#wI{x61X!x9&g8Yt!>m=G>90UD)0&b^&G{*#sNuT$z zy+p2FtKv9Z#C>tFoSFHgpyQ=dkyAZD++UN<#H%*f2IeCXv zaLqvNZEaZpXKT7zE}bTIrEQx%9;Dy<-cwe!a97~eGR)lY$x8&G)|UU|*{KCk?|6_M zGK|TDZfIoPW-H%R@;@63%D39{;*&HcDCD_)y~Qn;A#_RZD`(ghex+LAu;yu$h2Rai zuY|kr=tWJ2WOBg)Ey@{;oVA#BSqBISa#{6PU0#BL=JiWsSfzCS-|NwsVWn;Po%VX!%m9sV zvp-)HDAMCD+Twm9PcJmhtLKT-7QW5lfzNG{>J5e!Qz-Gs{aoFb1MSD73mbh}S2d%8 zli(M74KtP@@Jd`{eX$Wb<6lR7i`NPO=0I#I+}*t;(U+gh%==6hp4D{_kmWL$_6XHKKnOhtTN?*Y&udKmf@pqzh{nn-oVZVL<}mr#%l?&wQs zdXx8p2J z3L7%h3GygA-sBdfq1EeOm=}Vr>P(UXOx*mEgf)0}&h`HFL_`8G1+r5z_f}cZ^KF4{ zX`a6O>ePBXBGw&V_!KLM@e`ZtJWf{`w6q z*Op_)6*Kj;VVJZ;`r9xQAr+lMX{w&WPtv%Y2M2}B?(ocZ)Ue0|YKG5v!J_K03AqtY z{U~P1qi8t1L4DlklUEb^9ZxOEKadMmd{?^g)S@U(Dl<4H9uK*ptl4VXR)+&sAgpix z-lLv;@QQ8~gRZh~CqFTgSTmqD4)J=)_Tqf~^ustU=c^D?1#$t1A~{aQ-c`+ZnMuS; ze%A;}fYs)5@eIpAE3x%cHWzPtpSle<%_Q@kLBjdm$(!!uu#y^#z4c!-aC0`0a(4d; z44meD>Z{*G*TjI;Q8zpn8A#Z2j=20bLwG zIGScp3nJt4ps{;*V_${{ONiI#+OG!fI)q$PLY^vO_MYnKlbjgA0Lwf&sUOag-`Zm0 ziAhAlri<)+l(pu@mOmmE;7)=sJVs@BwD$98Amw9%zYAm=UFNq|^)v<-%Q>Lh3ZzD%d@Mhvng(xf&`DnLa{! z;pXG}3SQiF&_EvgV_Yn!4sD??WIkl8UU>P{OGN8_8h9Zv=QYFrniE+jVoldb8|=Q5AH`>5bthuPTi*??q*M#QyyOXWBKbGROr^{#WkklMY168%S`6V`pq`-#JPL z<7dPgjHo2dM!4>zwP66~9#ZYQrLq#M1H8HE{z2BQOO~y-q6U8wN2EChR8NBv6+2GN zdu(hrrwrIRQpt$DK+&A8t4%@f7ahMjr!@87tiU1RR(mIPu;ha+>{)vJGl(SKdubQshiPV%g1 zxe~FD*N^4%;iycySzwl48FQSp!u?1fl=@tX;z@*X)enENKzW<=f^-8pFjK&a^YzIp ziL!7?*ktM%({QeaS1dz{A1%Ou7eEbZ+ctZdkJ-apIUcHd`6r#WK%Z4Ki?a>w+0#=x*jygg%WVfaitTKK$VLC&p%KBc(FK})?tLM$F=7}=mY!mkUP)B5?Lm9o zR*ebvNxRWI?u6#h$Q$S;^|Wu!fh_fM5Vb{4GXeaBhsZxjeihR{^0-0qYVBGxOHCz4 zvOr>jvFOe*YbbU=#scdPMSr9te=OPWQa=7eiSO^BX9GwrxPRQr$+XfOYG{_z+cJXg zvlfDN<35&)=Ujc%-!O4*axI0%n(TV>=`W1cg}E* zlq#1xpw3Fy1lh{{clyGPsA%$aVsu~?hg6#mC!f8C57}p=o~kI%IYM4 zo^bWT*bLsv_t2<4*UT^lB20!{-1)PAwt^DB@)M^MrSl~W{2f(LQfFjy#gLw4A$%j6 zxm8#1gBbvd!QU}ze`X>-F>Jjfp?L#s&4DH)gh%2S)PtK?AtyEP*oQ$}t}7G(g?@H* zD$YF?a6Gpw0(h#0eMNOsi3D)j`~yAVi!r%r!j0s}*OM-)iK?We9hu>f=f#7J+URz5 zA5m6Mnbc=T8A)WM-4G|cciRLk>JLr5@5?&wFzdAt31M-#diuPhV6d24fkM2FMowcA zAZ3l_vo*z<&m-wA; z_NTuCp!$i_{Ax9t7^V*nuC@}!5CgZi>H`-;FH#^*DH7~`r7$Dq#C`fn3qv9kXlyN;Vj-r{=>R> zU-A-hW_#{*5$PDMB$oxob7H?8<)zrhAJoY4H>1N}$QnQVRt*w28=X0HeI`8WK}_Bf zRd7s4SMV~8*1DJMoP#Z)Sm)|Os=jjoiiO8*)1=dXHlv3_^Wt5`-#(h`5-}_|QSY!gAyAyr$H7EvFzJ&A!!Z^AJJ#lw~TBbvd*fMrW(H=l04owAsGk6 zJE65CD$T+p_uFHOXw&&SFAdPU;H;>Eib>F4qgOcesNTVvZ&ua&HP4e{-(-y0>)eJVtTe(P&A$Ax&l z2@c)j$-bT18hspe;0u!da=Q)RO_A~}Lm?B(Sm4tabN*+s^It_x1{}GSD|sd?y2$0G zf)+{z@;t5-+hHM3@s5tI+I{mPoGn*T`nVrU*XG?;#Rwq!4CZ$0jm>XC} zAAQC;m(gO;mq?H|F~c{M3B3<3#SWC|k^im2yz-j^2uv2+gaEoJDS_w3%t+jxzjnpJ zxKJx|ZBUN?OflS^dz0U32z^z(JJMw-u9I3YJ)|}BanFQSAn3v?daS9fY7%|ALelh- zu2Vcx>c&p~k|XA=2#YHYU9!EP+5N{SczY2f6Su65dA)mf&&}zZG1BA$ss;)mUA^w_ z0V8a^>eDtJt2s?eLcR78xz_U^ByQ$IKy@R}bilmbvydf^3z|l;(Forvly>-wGMVR8 zt(&!eQ|t77*C?rWLtj%ylqlM0m7IfbKI?rnJU*6opaE1>86C~3myI2|$ML>Ux4tQQ z?m<)3%x>rKftgGCB_u3n@UK}jpZlh~F^rbUep>`EC9N6rqY)u-YvUruCxJ5-&I8O4 zM~2Q=9x1Doy9j?e#i~#*huxJ$T=nQSc_3b*+^M%+d`q4q=yfZ1$%f$a%G|S>` ze$!{gI$8O+ZsHH)Xaoe0_igy|!4HSSZ%h;i_SUeUKO=S@pVBLEOn1-wJ`*!1J?g8 zCPO+Ggiz9g>XeLfB5pPm)$?ev{azfbcHUf%iqzDXIPa9*$a-7>{bfV0|GV`wd=F?} zL+rM=pojRy2|R15VI9$EB@1Zw;8e$&XrZpD&!6_<6g*df3J(hkP_v4A55?wjMz%nV zxPpiarRma6(hL6Tc8#sd8MWoBemu|wKKRc=9TttGCs=&+Y0%2ep($kH=%;-%yQp&` zC`_K&x>UC5U6L0NKSE=0xR_7=`+{yv>e}G$I){fVj6QaBQ(14xQAioj&YTJX3Uh%~ z`4?!`xkOkjKh=ZCDwVW4l(hD@s(3Q=)hN&b8X2Pr79rvxUyiAS-G@~yx${_n-1H|C~W)Kggxd7Uf1d2;1Y}$13r4Ar78;EhTH$SQ{lm>dyR`bZTrJ5~p?BOAo|$4?q^{z4 zG0rBq(R-5cnUYaIn=qScb%ez;toKuK)ofL3l%dGUP=03lj&YAjk6#i5N(9;YK6+a=KGReiB zRwujbqXcG)Ik5(5JP^?E{V_nYCAQrbibVdhSP>I->r7Q;9g83Osb)$W6_Q$+Bts3s zR&O^zVW*Bb)0}<)V4rF={zLW|4pK;t)DI8}YF|~cry8j(L!SQBP$h&rzm>Kn*w`L= zEFF*>d5MiSG^vC4*x6^DFzZbAFr}w$yYTIx0kx>}opc0cWoyOwCpk89F{{9G0gSgP zlyRo*LFt98weF99rGDk`?p%=KlGhlEdd`hRnP6yc0622mEnpLPf;P2OV!@Lm`{Tt2 zmJelEzuxLlaUK&{%5` z&CI@FD%IWo$U6`d6}gW#b~~XraZ04N}Osk5_rM}sz&n)MPb#!}k$B$k%SC>AG{D;jhCeNbmf`zTFcE)RlAD5x;VwYOY>D`{ z75ASUeS%dtY(ld%MB~fQC$UGcY|roln~VEf^Krzy$sF%;!BuU@03$ov?0{$agczgE zx{RMd6UWIKeTrsh%hE_}X+oF=*=AhBQ8XaY6Z1qc@J>}cxa~(IPh(_oFk$%;* zJLb1**Dp3w%?7=VZ<;ogZZRdW4xcV6&<7~lwCG^vXWbon>{{bWT^H(@wlhyRL_(0} zb%Y#T)GtU4QCvVCq(npryYJ6a=e5U`sB^){Q1PD`9hS;86$VlLLHSSr8gHA7CiA|q zoO!>{qbUa{%AUwpk$y;i<4+1qMyh88`g=xR5A&X!ZM{yypVli5cOJDF+D|ZwBJ-Jc zsw%2btf6h;cJ0NAh_=`vC2qWazt?Dmxu1K*eQX`1acHzTT~2dQI3V$uzp`D|_#aEjQC8Z)Q2!xer09x{Z~^JvATJ z)^VBkO!bIt)6zVmpg(Ynrn(fA7D?O5Bq4*#f}P3r;ob#;=TR9yO*CXaEwsN&F|bFl zEqQin;wS|J95bZ9;p^#miJ_&x}s&Mz`xfaD@2aCB6;b7u&Pt z93D+ze3Y?hymL4sp?nBdJk^5f8Zz++FD$-8fJ^5)N{~HWt;hs!|1}c

o27JKG&wK_rAduF8KwZk@$(#NRZwwm;YM$|oE1OWE<{?KwU)(zVi z$dH9xONDlM5wGk;*dRfja3G37oiSzc2TP6rqdm)f58^RwEl!=M=gsbmoS3WDy!zUY znX1-!5VaU(rb51kfCg`|*!RBv;b$^qn!~Clhe0ye6O)&*1_fK9c zjJQIj3(Z?#r)4)?em@$9#_CYkZ-Z8!IdwPm6l@h=N7xK;499ZjR8kE2QK_Vrs)Sw`)pagB{l%xtY>lI)1C!<6JXS zu5rL9yv0~kt`uQRUYFH=R6=1~`a|CS&a z!Qq?K!^j4tgz{93=}#Zk5|o9?z2$s{2p+d1c8F!7l?W03+6&S@lm3klTi8wY^TG+J zU1Y#ylOpRxHd*UXbw#fcqdQa!cH;B6ELEQiIfmJW%%l$U-zs?-U-P2R3*^CR`>Ez& zIyEayJyfWF{3-m(TSmaTPhGrgEicXKVW#{L%P){G=jP$>?0)~-)nGkf#A_kXd%pNz zT^|2tC9<8nZ06eMME!0uCp%8#OTise6ygCq5%C*+wqd$%^{x@#Jo^haWMk~!(!C0q z_W(;FdLv8RG#X~nZMDZQO53}F-S0zSyAt0@HVR3Aa9m0_B}7V|7iao8Ep3>JU96Km zlh7%>Gh^`2DV^5VmH&80Kd6}HSf4HAx+NC=6(&5%iQ<@k9#KZr;9q z+-}5>^9^%E*Ca-;^%leg2R;&7Zj>WH@ zx2~zM-B4}CC5iX9CJ>CAL44F^_Xu&ckOImy+T-A7b1l=_$#73I`44-$;a7%=1OA-Y zr}YGRY00-OAvf5Qw@G2(2p`?5I4iF01ZF`$u=uI8*DMO2JIzSh5xb^yX7vy5@-2n@ z&_+_%e^HrtGP(J|ix{f`-5Gy3;Hr1F*!zKtgd0xm@14j9W&@?zpMvS2!}!H#G!jB< zL%C~_`{l^cfA0mbYw-pt8MF|s@qaS-|2}Qw80(xg)&YFa5~I^9h0A zq#*0|qK1igC=;It<3x-8VoyjSlzd5K^?7MtN{{Cd#6GILdEVp*4_JFnml^11N&)d|%LpzG%hp=cy@EvlaOJ;^Es`S$!(EXXc z8ingrVD#>all^p7u=sQ{JyEX*8|aW8__YlA;jZP3YvWb!*qSsdg|IuG;-Ihrm-gWe z=cuK?5YZt=xod*qx7COXGbd{<7!H>{_ARdZ9EZwakR~-V5ka#N_*Ky?n@#NzwQ6LI z0;LDZ_TPrlu}}ua>=UrSDTsM)3M_D$jw4>%1Dg1e7nSR2c;%>;=^H(7$EuR&sku@g z&0X1XnftBamZCJ5ow~?Zzox4!7jwEIBpVm9|DVwdv6hhDvH=LdgQ#9*VoYhyTK?4$ zkCW~*VHfn3@MGHGH$TsdlbF5x9d#sgnJ}vx(Qu!_!y zf~f7DJh`k*Yhv7LscWf+_xVjG^&Q)`#?*(C?h-xgLTr$xU7S~jURka5CU)1O9FH<< znzxWs1bFjLdN^XP7-#9+A)jXZBp!Oc<1_s7G3d4}tiavpLV>Q#%h-rx+->y}iPIog zS2#F@_(UI6yM^;zDm3u5#mFrDQ$X9-fAPXZYkO4NGEY&{uWtwzZj4B67m$t>nNscB z2fke>k}mo`G=jBip$Rw5Y`)Tqr0X7yNvzs)q_ZFYrwI3+I_n|S;V)|0*jH$_W<4xb zaGpN#Q@ScRq5*IOOZ_SuShrnN5G zS@3O}{D#ynhegox0N;z&XCQ7E-)hZ!4?E=zL|60Olb&8`p;v6h9W+SNe#szW1yaOf zo`&-l=I;7N@6iO9^#g9LhMrpD4&oeVs{))A&GyB~;VzARxG85?z2>DWd-^QbLAJGI z{VXF1oI}ohHpH|!sa-M%WT`-(ltju3j^XN@v)Rg)PTzv5ooSfLCXbM!4Y)9uPf8c) zdM9l-zYca1M}8R@y~RR{`!^Zw#L5m>nKx4}kU2rp_+nf0Ck|n@x`{&W1ZE4^Fn`t0 zZV-_U*ia~a?|~ght6{1noH*)>rZC0KW+DB2e&>wDU5WujgyQcD%W3ScfB;0_QNF5O zMNbrxR;@=2;U1K+WPeVKu_FVJ_e83rFqUqSUNXA~AIdr&?2&LiC-%7$TUmlRPlW9y zjLV>@WjFxV;^nspnZu6My0~*T%t$mrR5zt}v{5mZrUS!#a{~=MP}A^?FH4A0A>jq> zF>oj$F|9v|xuwlr<8XnaCQv|_s|kG8dLgZ(oM~@WTr6*&C(EoVdIa7fi(iwy(mlm( zO1D7)6dFw@WrEuk*tP zN_-yr)g$s00!gvEW!BsY_6-E>lubq2!`Zz#ie9ae(xstxDG{hl37~&T8L!|IloakQ z%gn~o$W>^pV^^@5C_Q9#5Dl0CB_`-tlq|}PX%rhC3p)XKkf)0fbKN9&KO}Pd+z!~W zOimPjY(Zu!x@2K_mhWSb8R9LXo$QO45e;~yk*b8~kWfzR=x@K_^@%(R>Y98X6#0v~ zopdi?1@rr5#-{T;sxL+-Rk5iD%Vr71nh)Wph(FRi?NLwPrzy=ATSzAnj5OaeQKT2}k=6(W+d9>^aw6Vrr)pui{b zAlx3v(62l`C8*HB@Fqi5pK)-w6<5CuPj-m~u^pLkG$g!!K!moxH!sHb3>dRF`a_^{ux25h^(AL{n zhcEO8(R*E4+Ti7OVFBMIclnWQSfM7GEfPMQU@)}1&_Q-6AH_TTzIU}GhB%L7oe0ER zQxM!<$YWeq*_qhEVJ^{dO+Vtct?SChRf5%rv4Pw;!+R!G>|CsIcP@5hMpc=Jn$PhOABe(6_ZbC*C5YsP63lw{xC%oyE|C)4#BQiEi_U8^$mQmPdbm*Yu7W51A8h8&?c9ACRQ>WBfIt^ z4}(7J+!2)=bpl_QG51A1URT>Z1K~yyDmlIivH)bOiVMeUMegZbUyy2qt!g6=n-5E^ z!4>gbHL+Q$L{FA!-J#WDR!zb`-GG{ZL~g$AJRF02W=!-iD5|>0Dc+&;oiRmw?~4Z4 z$Dx_NnZm?VgiGG9<8TEBe?(nU3MSILEvGH;mA(l8zd+)}){(QWlMLf?t6X(m_vsr?4Jo{d@1IO%EjR3l zV9)1B)pzT-(8+f7kzxNkbHbHQQh~UZPHCIf3F?%zeI$*LPz3qx*P$lko!uYX&w$E9 zrCEtyS+DDVwA!LynK?FwbL7RTbWUCclC0CUU>o|tUOM3n!IEg9*8HBDx#GF`v%!SL z-TCK)!}P~JRO6~v&Cl0%eWlclL5p@-HfBW&M=?bjbAA-tW#X;;_` z8{`$JXeq+cXutd&13UU^)0};3?+W5zt`EYCyd+Ak>emLXq4##!;fKijVo5O?UNl*M zMvjSseE)vf6Ow4WmZG;h63z-}c(wVQ9r?B){a@&2GT)Ye7DBrJcYSF4Rye{spBOuq zvah47vDJ03$g+&3%~lN3P-RLLvTXH|RllmCw=5KSJ@Se?kFr%8Ns&fhc}n*fR1#fK9Je(5KQ#1+NXD-ky+x z=X=G^d%H!KhDvg!0evRF`efV~Hf9*l2{CJz>CuK?Th7n_uG(Mr0{U76H*(7o4o^F?zJJxtat-I zVdQE!mMwptwJQ8f?Y)vMTm!Atv0p;hSh=d$=%3}bN!1XqJ%&dAw>iLPr21+l*E7d* z4#`B7%#Lz@gfduDO9^abulUec!*If^cQJ3j7e&!6p{r^CV23so%OW6@y>;8>qijX| zMn(%6@DgtNNDR|QhC&7c1x+NVp&hho=Qbij$=ykh0GwM94fkS=drKE z9Fs=Pz-|XP=TAO^KjQ@F^(rXGmf96Q7nN$-z+uBFsbYLF%+AHF@?t7Sk!39ITz_v0i|)?21Amj&>sv}a>4V12AWa#xlCUGcAW&8VsRhVAF#!PieeLW)*y2W&39Zr?B% zYZZ)_&Vd_^@gQvs5ci*lChATgPL@V}BW-&^Ef-P0efH4vKp%-S+->7s!Zn7N-W^)UrY-~lYcO#5xW8Usn0QFd`}2H+?!{*=UnCbWSH0-gc#!w!B`+66Q#macS$4)2N~W z12;oCZ8vz#@fZU7-LYcRlOFGGhphgP%M7RL=uv&|ihPd-kAcP_# z3o-+_-s3QXozm(J@jg|~2hh`Vlf(6I0UP+);pUGdS>eHobCJlGv~Ay#(~m36%M8WF zEgVwsO4?sk^H6Z(@di!(FC#HoS|3S-k2|zfV)(;bCRr-_i2?>W8m>U-BL~T>+8*gh zfclS@4qdXU5QHPqhM`=X*pO`AqPpa}gQ>BiYlIL^+E=xmeSD!^?CEuXNEC{M9YQL? zOVop41949qG*=QMOM`(olegZR(Wf2R=fU2n^ioR%za7xyl7}x|{3`|XqfprlTjL*Y zOr2tiD2t%lR;lBj14qzzpZInDx}N>Su!+%l{9KrkY*qKT7x9_4B{W=Xk9ggK$D)gj zXu|_NQA(e9#)FzrN`!F3qtbe58SYSAM^li6#NDu`Z@IB1r&r6}!wJNF@G(e*A_mqW zsBSRW4o2U#WHeB^NwjF5d?|qI!T#9T1W<0@3>g@(zE^g)L`84zj!@vx8LwB{%p&?;b4AGZ>}@cY&_ipI><t@Wu( zHS6#bSs6=LD-%JL!SR@{BcX#$HX6|%de@nQPlwg4e`$Iq8y@fxfw0=&uT@OEGQ$;@ zBDq`D)vpz|1*Vb(4&QPM@=p8xV%7yOl=+kHuNVV0{=UygC_qJF8hW%U{<)T=IocO! z4!K?kkN$e9q>;(6mW0y3TT}(D+e|NAS#cPas`+tYe_21kDOYXhRu%C5ZJ5j7z0Ng> zWG9KKcklmb59j{K)6bT_8fg$K+SU>wpLf)t){HvHs9WLSqZsGQ<{7#3My&( z=@t(^%(E}|)a}?8b4isq{r-=kF`24Z_`4L~{I{6|Rn00z!xc`ic};)mrueqC!9#p%2+4lhuZ8O$g8fYVFDagof(^XoP}^% zq0;D!w;BHXyN6kKVaRMYbWGQM%AqT>scLvSsSwneeHPzCf4O58e*Ihawp1eWUr)}+ z^IFvHXR1Fa^U@pdag!EG@3)N1YW=(SGAsHQ>v?>yH4zyxI2YY-lSxWHGm+Z(DAQ-*` zQJl>YUR%o9*FBNQpP<c!%&iBu3Hqak6=?_p4lo4B!-$BaVnnhpS(z?yEr}j3o}Md7 zQdjv^XB!vtE5_%g)bDSx(Y#VP(+dAqX)79&MSO8*lq40AV|*+5m_l=EMMy67^$fBP z2=d^|mo2ot_{CaO8uw?fTFJ zZH7B`ZkG^c2&e7GTrc8Hn|`rCTo3Wl@3Y?OEn5u2cEXv1Rqab1pJ~o03I%UGF21GN znb|JIQaH_;Oc)lKVL2FyidXQY$cd@pv5dufIVGHi>!LooLles9T4tN!dSN?5GoqgW z8-zPpYPp&!k3Nr#5!0PJuevFlLQnCfVKCHV|B(QQZg)$6*r45zZ8C0!Ucm~uIpfvA z*HEe)(iCGgHeqsli_a@Hvw}*_6D@f^&)iJTupd*-%Iay5oN&6IlMxL-`gA1<;PhJU zS^ExZeiw0o0BHycwQ>;tZRNx0OL?A^KSiBx*o=`<=0X9HjOKeNd}BBU`+Jsx+>l%V zqxBzBv6#qMUqD<2!tf1722|r{Kr$s1;2NWYGM+rauPH{?EWTi=Q1%%Ri@5IRtD80z z5q^;s5Mfq(fBi+?N|-z|n!Ua~>nUwTG;nDspL4o?Q#Z_bqEAG~|SGB<3f5&n>R8Sf|-0mKY z+R-)D2TRgkDKdg-5BAZ#V0pu-tMIGke+O1{XO5*96MjL3MX1oo+>Q!_;a*VZ?VT_x?n1Rov_sE47Lc?6XVUgoJ}*IX&9jXq|k`Ie53 zNGPtZ&wcuv%gX)0aBle`41XJClx~{Tty7cxj>m@uG!`i41H+y^NX8#MNRj}|^%`Bu z&5$yO+G5Al5Qw}mV8eNm#7_k%;5;*(TMX4Ovl4ix!{u1Jl23e7XAYez2jdyeb8LS9 zl7~^!JEq>>co4DqG%qkzj}W%{&}89veZdt1BM4#5lWjP!X8A$Jh#v!1D?68*sX&U) zo#0I*^)0yPMu`b$H>|qmunDyp^$e--P3VY^^;tv9D9z1N>3$YWp&gOo@4qobq4 zq>rw{KYw-L3%r)h?{}nl?L>b+UaLyentqAANw{Do*4U>^9EDgV0uJMDHIDh2V%$Z+TmJ$!nCbuU%v1WnaZ>7}`r+`y6 zFHobg#sTXTE|ecwfoyzRx<(=y^RGo7ocBaYYU|l`9gj2pIr2YuiN7<`krZAPx~f*= z_iU`=&aWdiYf;C|Ie%$7>_`yt!-&)(FLOoU#pexd+M4Yi{>fp&)Jsw+nTb!%&suLK zP5Yjd@r!)wsz^XFDe!_cn*wvUJ1VR-cy2ft70i zy)#YuMonlLcS7djF1W~cS!fkeD04!0%zMNcNfE(vWcmBP;U&Lzt3z};i2+H_Uq+5k ze<+vo^mO-KbuFRgf2qadI5|1Nv>=MYk#4>H1>tG}W&1BK`Y9e$M_Wq#uX3O*d(bj|1mLt7;gVX?9Ecr@D}9S@;MvefwCzbNR_3c7)0 zB>b;mrV*)Pq1dy3I%wanEiP|K*ZmD;eT((C-l0!1AuDjKrhb7`*5-u(Y?!swaQO|7 zDpdaI@UORGeq?cE77ikL-q?x6nqZjrm;6J|sH#OfDdO+!@sghdQcbI%ycjhqVBXqy z&jm^=E~&HLK0XmQEpca5_;v6;i7KGCR?Al*E7G6NEw zPi(paVCmAoU%;U2R&>y$?go~`jdX#=UgqNi)oQqo7bF&p!f{PW2+l1-q5n52efKW$rdEfyNg7oFSWN@?2AhGPxD13@}- zXYo0*z`jEqXcm$NMpw+aOZ{~59Y8Zf-Z0x25KUR>mvKM%`h(>!XV0m?Pt!0aflYwP zfbn3tA9{+(Sb1Ic{D&*A`p{D0R)-K5%`Cg;UP*?vUBXrS(0i&{jA?y>X)oqyCj+o5 z#HdMssY3kSS=F3CaWF{;*&-NeRSA6>rM+#-=*G;RdO48ly;C~zqLrAcR9d;?zn6zN zd?x4{L>wxQE&VSo_6G^bK!sSEjA!3hIb!7#uxrH|{Pl?E#vaD!ov#A{P>h$F@r5E$ zX!@ndS^){HLK2Q<>&I+->)(MD?1Gut)y(Nya@c}ld$LtUCiy^$oP{V1#qy2q98*EO zA+T~|vRIl6v`Z z=^HjXF;=j7S;`S^g-q6>%|usi z#`0zkEB#Guk|9I88e}>=QQnm0B%Nr51u<6Bms!MwD>10p3pai$2bx3F5<1 z!JpYlrOVHD!=PnknRB(ZM?sV1cv+6HaYxMe23HV$%V*P7g_UKG!JR(|Mg z2z%H;rWCe==%5X;e&9e+D~EA95{*+5d!6S&#auJEmYLT2*$7F~$@5ccs3zYOy^iRW z`#MwNw?bL;5(}o&x)L+bo8P{tyjUiNjK0V~dw*rek9Iv8B18E_Aaga!MZDeLk&Hq= zsKVdBk3vs3H`aYh6W-%;vNqeA;!Zz1{nO|xXp1t5g4uAGeV7qjgQI;l39XQ%hU^1P z*65v)Ce03tz;SK!s8OV&F0;o%#rH?wsPV~G4835;F+8aa_x!J9^b}@0`v)dv)aD=6 z6v#~JIZiqFJ!%Q^JQIr$czvo9*nY`L;woHf9Mw3rs4WM}q$I*s@%FvefZ5w42r=A;%DPmPZZwl49`KGowaZ1Y5~=uypl~)`%wX7xBe>%5@xIhp(q)8~ z;c2tH-$d|p+TF;mE-L0}+QrUC%)=VvH!VBDcKzN&zg+|=P;X}2Us`UNtE_o*B8{m-kuC4!7z4!dHEj@Cu`TLI}~SI(;u>zS?AOJcmo6V$$}Pcqnb; zwPz1#86->lkO!SsGhZfCBi#L$YpRAl$CSXsmM@XrYf%S{$tvhGpVS|=aUKkZ1{Nw# z@22BFIX(p}G<>d7&Zl*(%ul#!;qXOi+B1@lmI~bJpsFO<@UKh)3Y~g!p4)Zk8Xc{; ztm8+ZAu}2EbKDey2>ihw*oI^CL7ugUMYKQ0#p#xYBo;!0pTs;j-ImLtnS7#g90iQa zk5TB(=?)7vd$<-SB~*aZ#vgURe9@p&!!2gg(oQhMRY;+BPFkrv?Qb;Cn5@?Rkuo>O`QhS=grq@a zp~0_0^h31tYSeshmAJK?K#z>%gamCNKO;>$QCQ*Mm+1N!dKko<2xOi=zq`7v1Q^z> z9F1)lky6?5Ddzw*BNQcg^?1R!%%r<|8PsFoGduRG71!L@#bi6!1L;QG@cAz)Mnn=w z+3}VSHnpj&+NNrzrN*gNr=pl$0hl|9S~Xl0s`2!oxaCfl!GgpU$hWMRb{4PTQr2rb z`-ep(Rp0=GdQ(vs^};4u`uV@uTXOaSRQVhh{u}`ZSW25Ov9{*YOg<=Pk=Plc#)_u`DO}iYU>{7bb}cP1X$X|zSlOtSmpDvw ze^IPde6-Cu*c^K^8(94*0;f=Z&FjLYTAO|+h+;=gzeOYa)%(`t4?9bHhE2zB9<%23np~ci@OK}i-kbXk9HbxXwsu`+1?ye zzFBXDQ;tq5U$_MCtEkNL>1Nq%AItQiLNqFfA$REC`$b$Y5%uuZQ#yw2aoV5X&V#g- zh#ZO#@F9+Ds%>Uml?rwsc8=hUS#r*bNODttX2tE<{kFsCohihM%2xky^tmtTs-&*z z&vMMa9!X&33@QQ$3GHSJ$N!8C2p}rirWQ#OL6s?5==iwuFis6(u2(v#tntw(o-A<; z{RH7K${HlYG@t>y7NR**Z7nKYRW8KF*1Wzgh#1g?NT{cIay8?>sz@tZ^FO321Jx@$4 zr~bYo`sRNwSG7#&4oYA;ZGqYI>!RI9AZSsG$?AlW9!@X`pPKgj1D?I8E#t^Zk(|`! zXV*GZWtJM;hW{eY^KP!F&0v*O<8Hk)EhaIou;?{RPlB0O8erqr5cX)lJ1VFI@z;1B z6^!HL4#INYrP^@snU`p6FpI;?^ZlQN#D7U^Jz)0`tUB?(jN2gn*(b(|rUaJO?6d~t z%hlHxlnxA1jFflW`7RPk$v{>!7{8l+%SVB3I!byMFG zC6E!=CZ}PD&+F7F3%t)UoX`{^Uz&0oT>SLxrGl%w$4Zm49av3v>#S$<~eeuC%MV2#|V zU@dC4hezJz??bo zJE5ic&l+Yhf|-r|Vw-)x((!~7uv$Z>M?}0&ZBy2`oh`;3iU7tSG7nhk&0GRgkg_`P!?f%x00Y^vg{= zs&?4RNH`4=FM8@3nTcO>lR2jtx1Evjr1ssU=f6Oo6ueCoK1AI4wD8c?jq7%rOue|g zp3Y_MiQPp!cf4G5;VG6PMVjYwBS1`!Y-2_y8fbzA!N(Fd-gUgFFz71R`Rwr17#QmH zeRlgg9t|EU`hRG8tEf1-wrdv+!7V_L;1b;3Ezr0%?(Xic!6i72dvJ%~5+t}oaCZ&v z?0VjB|0nbrqiS@IwQia7nz&Ys#aeh8>2xgoU!?8V!w}3?%N;NOpj~rk(R{T+VP$NH zbZAeY#$^8p(h60y6$%1H>*N1#*H)R2<+%SPBU;fEx=Z;wIo3qv#`lH7ff_obd(1in1 z_RwK1N&MQtEEP)SG8&OMmUyVlFmkz41OL!^hAGf+ zu*P>IpqYrBGk=nqxK`VPk|`=S*m98z^PL= zGf%J<;$=Mjr(TzSUQ^;jhI--1(~lfd?}Z4o3D;rwq!D(oUkL=&I>aMs4B2)jY3wKD zQOpGWuY zIME53z5rgIVhwo99Km6KjV6P07%lpD9-yECWJ(T=o)h5&<<_dS^7G$Smz(KnTYk=5 z_c?>qe#w>QxO|K!k+nT0@}(%D7q(Gkxhr^bfSzK*rMJ3^CE&OQ81LP-$(m`M72E0)57b43;%7Gdlm+x2Br`649JDGJQ8nuj1RO4VT&-3;BoDexXEI+u z7$Ksjw4Z3vm!n@vYv*VFQ^KhvMGOGyd}+saD&V^O=Gcw{*JL0s-Oh(}EeLa;`n3KQk6;NPXs~Deu*ue%F;?vmde_|5X;0VmByLybOxe7cW^qm{gG+?(y(rOonQEwmDTA) zFYGmHnSPaWwa!zw&11-in9n2m1ke~=M5jcXACX_mnZ?u5r!O0xN&-8KW7X`-Q^1{; zvpI&H=cS$#=HHc8%iN{fNW){f12wZ>oAU=57E*^hNW7W9{h2Q!NO7D!nS>0*W^G&%4jz%i5@+;?vNKFU; zfnY5UDxkE*w}2zem2mKhGT~H91}maqT|*Uw%tY^)n(n8)#OZF}9UiYPP&B#SelyY~ zQDO8f{oqLPt}*NXKovvE=JoMaD0gTe`WyV@NK{j6Q!uzXZmrE!wxTurG~s^=q&pRj zKm!Czwz&B_M_M!;L~0k>53*D##+ZlY-x!=MF~H_|iH;O!NKvsWy+PK74lLzj95_3G zH94`hwGt=L@pf`b+vf-jwXLx8^irKdRHH3XM36UJ+HM!dxJdlN4|t8=)gl#)9-xeX z?73jV03H$9Q33JN%8HlCP~SJAjB$Rlq)X(-sH9T5uc|4(uqettSdPrhx)EEih{19p zLH%j|NzJVdr4>Br%>bW-bam{9?4W6QuSfq#gEY)*Mf#kTGTGg!I2tw-Im#Y?6KG^gt5rm`nb2p+Vm7Z-Lg9*Q@FvgIFx5MyQBL3_j{l_r@2L4PB~1S9{C|<_TsoQvYyFeJ|MY_zO0a` z=z)=t80j$PDYiX0#c-+mAzpLfRSNe^yYR_$*loN7c+Fh;%qA7E$sb$2a!$Cs;YXUf zZy<~g^Tx~9sv+Nimc$wdv5i$f3E%pNWHJNnn_+MGaWNr4gTxqEGFZ=C-9`#I*a=Yk z&y(T`f1_JNsx4h359h8UYj`jZ=b;&<=nd^4rLc{<(aV8MD5rfAS-Iw#k?4$IW~Qz3 zz3r|7IoG|afgtPi=vey5_}>`!EbsZy1P3#()5NvIddIoSglse&)YcG=Gd>-ir`8%b z-pcBZ0NVzq70Vr&vLu%<$9>wdHQ(@Ebal)*dm(vtB+KMfDK+2`+_cNECp0Y#|ZJH4e zD_Kp%@)*k(K86R4wY-<(7KhtJ<{8%mc@cU-<`1%@W!#q5R2UKgQERYCZT@JD*RLhLXU|o)$=c#Q(F`p2SHT+}x(kJC~3Q2mNAw(rq zq}6~GdyGK}KH``3Z~tB7od_~78qR<8kA_Pej!PY3Pm&x7uq!{7YtA1g7h1S#5_k}~JNH0<`dk731^J3--c znU9P|<20C`1Y%0`0k*`Kc!M6(V6hTxB0g9LgQ}-WKvSKr$tLas#m&Vb2}SAyz2wS zv9x%;c_KWE_m2cW+8P=_2f75jb!i`dn4)fn(nir~zS(*kzJx%XjddFeyfdrmKH#Ao zylrSIzFvG*cmaA)pTTXf4cmxDn+iCLMieo@!vor+aZvG>C_2OIbHc`pRC$w)UcfZ_ z0=RUdKTc>$D_uXzKFM&G+Z-=_-IV0#$j!bk zAbFywGxr>A%0+3L+Si{m!xR+BJX`9BS?xe_`+Dh68X@A?AIg$ZB;&T~LXe8S-Pis6 z&E|?@4d4=OF_3V44qI+p!xCGrp)AV&FeSDuL%s84-GrAwtt1a?MIK}U9AJIz_TE%s zZi}Cu&dtTz9jF?g-No83C>sGg-{!%Eiq zfZvctav(zslx?hhf?0R?AyDg7P7B=2agly^%qHwgR>F2+ItopzSG{=!ZT zTQg(#IK@)MsRW#TMqQBB!;YE3J;;@zu*!L2-8?@bkvMeAWDX30hI!?_^;#u5D_AMXfphezMJX@k z)Et9;`5qa8XH%!K6N|^&b!*@pk5Wu;X`Qxiy;C|i`Dl@=e{j7+v`-R;j;?E_3O13l zaW{%q`Z8|-JA%GT&5Zl5s90OgHZ$w&qed>-3*(`Swp-@-u9ktzN%OZ@1{}j`B^pui zUIHnF;I-ZWnjT{AvdWOZpXgEGsaLs|oF$YzmKqfURklIVPRr@WGukgTqXPgAh;UB0 z#d3= zQ=3$7CmPCmK=^x_^X}bd!6u5?wjJg)7s(l`*DU9Tymkj9R7@_yN5~UcDSk13R@o)? za%i-n8<8n@Ed@U&?dMSNp4bA|Gk_}vW0jK{H+h_NM?ND8@ph716 zc5B#%Hh%*g#ZEZ3syK3JbYonLUb;hJ_qk^OI^H?d>SGzV4~xL+Lhc`bv0Ps3AtTuL z?o*(3WqD<#Ues)5*Rnng#0>JEB8wRd9kjoqe`V+47}d&sagIBm5tIhtl$j$Kjk>`svgsEfUP(*eqR%MHfR+of-z$T^au4^0;h zw+s>LcuLPwA1rf_&YR#jh)+HqHYry~oHS)5*q>b5QQ?-)dQmv?2u&9vM!iM7z)N{v zsbvjtB!~#}5r_h5JOCi>5zu+n!=Q z1_;~x@=vQ!|7M$Me%VXU#+6}2J5T2EVzB?%Vzk+B_b?PsO72&3T!ovJEamxx1%rjR zjm^Jdwxx+6BKyZ3y0PN`hGX);rVQ=t-8LlN;6}`s{Gc7W(W{&W;&6xpAdok4I6l_| z3XP4wMk1ig)A7na)Rn1~+XzBIR*tr6dFxir%G0uXO~sWam!i#F4~0?^(lI%%2tba1 zT_GGtii;EMyuQC8kP20o9CfnIW16vm4o@QoAj-P6t8xpC_tq-BMvaodPQggAxsNbK z^=qi=EuJl?-&QND65+rTp=WaYY29%AWnT$u%9ws&|7-6zR-6(98TUO~ z`c1iOF?ChKOgWLpkiPQMuZ?U0U-n0AsP8+PslCtG_PqemVAGv=?mWyn*+ILI6qQg$Oq`>_)wU1sY|A04dtp{ ztwCw$Xmi_lN-xoPH|ZUh?73BEHsdnB#V*L&=+M1YYl9lNMy;03i&Y9!M?Km7ek`}N zxh9l2xcun4cuQ{UaYN~dvc5RkP(*%IJr!6VOP@3VqV#w=NytFMl{)N!D^ldOS+5#A zcL9C>-m3`m^j?4q{e2I($b$y1yOuD99o74&Aa3!1`!9%U(NE$WjOFd6qAdralGe3e zPju<0o*-pv+T;|m(HBvQ_6>&M{mij|nTE@IY}5=f81#Ob;o3@S%=x>p5-F!6X?!gS zCndjGYy!NkwKpx*yob=*Zh-W9T;Q}b!YCM4Lh{K#XnDzv*rzRY}2 z>o!!!LG1j0HhO^CI1gpv*FF88tG@iHN9zleJl%w=Bd*Y;57mEWHv{avdH4}vXy)}_ zqbw;Tu1tZZPV2p!Pd5% zq%M>^C6s)cTJjMV&z%6(WPn>>s?Y@iKBuc>nOQH+@~&RK%Ntl*kstJQ`3kJ6W2ui? zUupvDUKmZ;FvndE?}nY@vYeER1Bc?9;JkSMexb&u7LTm>tuk(nXZEWQFRyc(br*5u zIO(|nmIE5vUA@#9FamCM_2h_QCJOj_y0Yz&u z<3;iMq7}WZr^43}Hr&y)3{K_cXz+S=Gs3?IXH`N{Z;lhnzxm9kI$p3AGoe)f2A?qN zW9O}L@M;A-3NIIwhSfj9%&1Uol;&eM*^z>U!MHC6sNsG%x#ZV zRStjPlgT!s0@Ek_%f}Ue`1MlU|dMGxUC0bk=tl-j03H`YT@&sb4B#l((<&G zEs*h-OZCyYpYMFN-k1SCm|_vR*! zX2YV`MNQWLzcGW4)&Kvb$<0dOy$14vt zaH8J155%Wh?elsIVT$CxEn`@p^Usf4h;qyBnf;=fk?+=}FqZkREf}i~vN$5h@226w z7Sn#FC^{=R`An_%XQ(F)6{%vvOIqS&Bp05ne!pJBJ^|DWRCvEy@Gt;o27Z!a$DQ!+ z`X?Wcn{p!VxiSBGQN<=&T&LBtcHj#nmyj7;E@@P>daV>i{n^b@dl@zCQF@RFF|GHo zRTwj8r*3tC$dym#X$IPC%ASDth2rKW1>wg-N0tOA1LVL}tqkY7JH)6ztva)Ie|~l8 z6K7vdY^@m>WUPpt4coI7c8c!!a$qIw2v2tAf_U;P@mCIiM8LZad7E9aRzV<2boqYbj6N0iYkq_slzcN+aDuLY7G!RjbHz)DY-l^7IwF)pDyxu5cc zmLy3^c^8b&)%MiZj1zzI9PXS{4qj3(_ns5v)bz3pWN$HA4i2Go%K+ppmVGJ~Sm`{O zfe)>rB~0X`POM!{$d`)Mr7&kCAM@b*nFhG6e*{|+h|u>4YgY)_V6lAauC0-F;7!G* ziDpgapWmvCVjiV*0oe;Vf6}Q453R20bGg4RmSxPXOs-)P+N67o~28g z0~CoW-&9!~n5oRDqekS^(ucB9VanSP3GHNB$#?BUI1l2LVYuBbGh!26a5&8Wz=2)LOQfjAkeLL8^PO4}h zp3Jd{g-E)47zjAsZ-uWjBXW`RhTFJA2y37lzcj@+1N}4}ci>&OK1Njl8k#xL@0BO@PJa&}@JSaRV4o%TOpijTp& zKVbf%;<8vfW^VPPEVmDIKQds^oq}G@1V-KL0AA8eya<+KZSdRecgF$fc|u3S#$@9< z4Z~VBCG*DeZ$DekMb|raC@sdwDTPMo5#&_^ui6)=U`rvB;O<5E8GWq0qj#pSUUemO zJV4LPp-9UDXaIH}k6WP@ePC2@v9s#s%q-xGK_#gu0!_J`j8v3OXkI-Hc{lK2D8@WV z`9SJ<3x9l@NXr)F?&RBt!5T^dJI)_v(TK5`;v)TUkPiVPG{2o6x5n(;ayxZVEH3!x z;O_p)r+2=5JrZQcS;h3kongzoyp#QC+4^w`M+UlsW>(Gb0oPs$Mf~`}=8y%DhX+z0D-*y5h^! zYd<>g<*M7MQq{;9HbCN-Dv)|pDNa`oulU4Wug#}cF>@#`5zqJY6aN*d6U9CKK>SoP z>jUY9#QwE@E1o68$C^o@wAbiQDR za_lvS%NEMfwuV%Y?#a`z)+WYziZs(HP2ic|a)rSmK*BnhF z!m`o94IIoovQHfiMS!U3D)^d`R*%vs|FE7KNUyN7bXN^xS6+TOL4qIxj-PLG~TqsM8BZqEgxXlh$>{);6-CZ?f?fE+}$}|yOw*upDBK=p7U;0mtiXB$&)6r z2g!jc2%h2 zbeygRW+?E2&S*!R5V?kMxXsdV(2HVrV&&2B1l(5DEmE3dVby(u@+CE^WGxuGaqKbd zuHg=2%KW3=^Ej!?KkgUTW3u~^RogmKp9r5A)dF+sEI@DwU{x{3;BNR>UyRQ-#Bmc4Mj~UB8Z0P7wpT+ujFDH`y`hU zxnB9tU6UdwUNoRl-fzz5h{pRw)U@v?k?;qgKizq!D)4znGGl@@!|+r3xPV!D5hEg% z}2Ah$_om#wf$W@yJ7;*4jgD!F+t!A&Pr7=fpsqw#)6SLyI?I8`$f{Qfo>&yoS zgvBqutuZ?q^t^6$F(FbHwH_PzcO<++dn@-}*@ykBP=CJvZ{-bJe0m2Ub;D(nnO%71 zUib15<8-+$uX$-ShhIQmOsMxAWqBV%~YsX4X35y|0HCbE`s)q`yz>fm6 zgJei8b5NG#(9bg+drVyRJe!*)*w48=C8L+3ccR-}t8)E;^1wM&G-(dh9p%uCUF{J+ zSSw*n+x0EKtb3Fq7o5E?!%hXSujmp&ZkJVVyZ&^wUtToj1m@Tv`Z&P)e@VT(KLou{ zIewNW|B$ro4%3~*qGT1yW>u%P)uX1KFZqyd?xvt!HIu7w7n|Bcu@J2S`l-1}>@mAo zum8o-^>FhUyvld~Watp1p8Df}VN@rM&+bHzPNGr1EmQF;4GBe=CMYIXmqKPylu_KL z>g(+H0dqBqslIxduE#AR#+6t~9^a1+oKINq3A7z+o}>n-S`$g7I0B4ZM&RmTbq04> zu2Nf{vdv23_(Rnw;SYJk+fQN3sN&a6sYyDIAuC4vH)o*_w=`2WaAZO-KtR)Gp(p?e zeOqV$cbid03hBux(Kq>roFy@9P7xWKDVvvj*Cmpx)i0r7G8#8p?vzC!z;C9?m%LGX z^R+fQtwGJOOi(#^+MOiiF|tiMQp(Q!&YvJmfmDvp%6RC~{I68yvR|qg^0CKAY=yVD z%zE61t;XJhis^Dxx=};@UM)WN6={`cyT%ibKp;3Rf2Wqwm9R7Qyiomm{ZihS#g&i* zb*XPid|}q&5KD+yzh}tgDx+bG22GECCtoteYEMOo`3}RGr4CG+&_wzxG(T;m?l=+ z+;Q(OCrZ9A7T8!hiaX}BmdAo2feE$*KJq124a1>8rPSj=0Nth9_=?4nA@V-_@Tl0o z=s+aYW%BRti=@bu=1cIm2D5N3D@TL>=FbSgoWS5Qa|GM+b^ZUjod0zgaH)BVKbCI> z9h|VGr-q_eM9M_tB;DYZ1@dMH1hhR^pwnN@#%)1C@4BPI0LFF+}W#NL}C@ zJY3O)Y5+Yc=9wln)zLk;W?fN{=oFct@igq@ zI<;FF>`UC_ABv9OsDtne4{sg?u3B_=4qvYL!$y@%AD#&T&Nx)!izoEUqv)!P@Y{(kYbBQ5&< zoo~TDuyWR0jIX9bRWy4MbJL%e^8}tXAtGzMh4|+59ZLb2k_k~iD!7vOe zj@RGD!$ib}K=yk?H%9u;=*akrHu#F88P>9pwNOOLlWR9rL?Y~Ao3>+b!R=WG#FKZs z&XY_34UBR_t?`43prw{jzq=~!@PMvT8BBxIDl%xj^Qfn*X9LOU5Pzkp$KxS_nTnBB zBdwQBYbyU@+KJ+a8Z<2C%dsYf&%P0%WC+qkSL~7E=nJh1pS^)N3{FM@lke}k;&l}M zPDj$&QG{MV9V0>fVgJT?Wb*Y}XQkHkzUHy;@yv>G-oEh^0 z_{9BOYOagqa$k^+Ylyn+#gz3lqxP;r33vh?klqzs2kW>(-qTaHJgfvyK4dr8&zLPp zYRB=3%;2qnPP>DOCb<%x=FPQZmOz7L2Y z>Y1mQt{L!6(EpQa2d&{=rKMxOFm5CJZg=Im#h1xtHzbLNll*J^gVT~k>9P2t+MN5L zqH#_Wp9<;iXFs)7h0IlhbWU0ua_9MgIlVF(3$9N_6zZQ}Glv*1l4ru>4@$^P*1aMc zJj$Y~AZ{*`7A>GK3l2FZavdKj*1r6Kj1lo#qK2kl-^WVftA}9k*rc6%nJlUctcCXrrco?7nQxtnoio?f(+iA2p8nPAJC_E=Ygs;Idwf z8;1(5|bL7nc0nw~ThDc*u@$Z=f5FNf7$eEJ<6UzJdIAKY-t=L+l7sg%H z4ikjSy7Iq^zIIzlf(>(;f3FuHEv)(XUD-%7 z@aar+REVUjq79)_!|v|eQP7oRQ%LPAX;N~<8geYLXvJtU)aUL!m5P4WYdVj&-$89Xmfpc_ z&5fjASTe@m&||jPprDbBBe3N3=Fj)jND#0^?;@!t`&pw_d`6ac&)4^CN98o-A>rSa z6!BKD#$3047Hre5>sY02m4Su>>#d_*xCOSNun`e06>RwL%g$^Ek(h zz06t%TA#dK{M?LsJZjdhW|nS9U>1}G26GYgr}|Y$noBHyQE&Hv*t*kIVG%BDYGq*B z3pP2uA!ad!zP4mByq)91nxB(*DhmBr+sBx8Bks+{#h!D57yYt`G3CSv{bg};1Jo!3 z%98jbVZ$ugPS~94<>Yt*t|`jHrPl{x;dxp$X_gFNv*Bt`K?7T+n_{>kCe=jEZvc-k zEfph~X}CN3BSKc@v&xa7A_5|8H_-75i7DW|>kc}2>NcC8sP~SjmmT;` ztDbRYg%JDtyXfH|Zmw?YGs5g}MLGTXWg0pS@DAdt4Xz+U&F4q7YfG%0aenC8OSJ6J zfQOHemdu`@!mwm84=X{VE^l;ijH(`~*`*fJ4E@BplB0a5eaQC6P%=NUab9|+Vh)S* z3m>`h;Pt`^h2^p<3^cTf<%SdP!33VFu5q8~!Z%XyMD^R-hW*<%?=mmOSH?6A7)x&) z2){@Y5}#ix>_6G`0fWB%OX1)3m&d;#!o{XnxmLht(u~f5TK?dyKZ8Ri zU7@fa#34frDon2Nl;N+2x@*sNRR+B8m%h)kK<5{5ali2YyYghgBAeW)^?IzC$p&3Niz<_K&|`L)`4tz12mw)zn9>yr zz&rHfw}y!=D8*QJCtC+;c~Y70;N*sByy$ZNMUr76QwEXk94A z4fv`0wPbM-?;sdUXe&U@DW?|_uxt%q*r7dE>f}u9Fmy1(!$eZ^0RKS6NX=pu8Em0a zMIB{Z7xlNjqjgt8UMiE}0u+2>GF?3tTq7jhW8_n?wmjAAj#-EBzK(a? z%lBmTRP0rzw7h1oP(XPpy+Q@oqO(7erBmG7uuzer51%)0QS%oA@&C7o3-qR!9{X%G zKrKhp%@y}}aMOaCG;f9suvZRr$c0xW|M<)l<}LeA>tS|!V7+Zk(23j$c$pWyX+u>p z@u=g8RGe@Inebs$D8fuiF6n8Qqd67l&U@XQFUJ(ec?bpWmWyT!SCY|f<|f&~Z+ zb%s#<&?~&4)R&N(j1_(ki1&ZrVV;z;VSAP={0^YD4*f7`%9z05UG!nJ@s_nfib&N) zdG*gue~f^_&Cf!KI3bz-^xqOOj~R}5BC_e;G3j;BAYzZen12YCg6B|cCB%h~c@9=t z$sogiIkAwTt%HrUrc8yOb&smz8NtjccO%w9g?Qfpx$HYn^y$Zpn_srcH~=L7JzNUC?LVvb&fgK~FL_`b)zrm-1b zDSY35`!jc2I{fy=#T!n{=JM|M?V@!ejh|_T>q2Ll@#V*aY(UA%2)3)9*LQbWg`}K- zn9$QgS8cy=cUk*{A0Cm(l?@z|e2ULri$|^7Lb;VbVh0^AjiUlGPk%`wo^09uFPMrz zCrca(nR2uJ%8kd_lRq;yYOmW@bUTayUm9|8@l57O)9WglK}JB-myExtw6q&|L2=$S z71lshAXKh;O>vV_g8z2#ViCPoSYZ~MPOEpReghS#78exi7SRxmyQ$POMlIOWM7&jh zValbyyDT-6dKQJFK)Cf26Aj#_xOaK0N<&EeH^Zquy>3YMv-2V1Ye2`Ol#l(i-+|k* zLz`H%TiURuOG+c>qO^fqQX`Isw4Q%>WAVMT-cz;iaYs(d$obA^x4)V^S4$l1?U^DCZ{aEn=l|RNIxAIP!T07IZF06{CxooDqb3&Bve!K-2xl% z;4Ph&4w6^NAS&We%QrSic>@z|BCh+qXI&=+q=xFG zK!=^N+~nq0G~HV-;ff@|Ngvou*6&vtQz@jQ6^DI+9FIq_I=-5sMA3-~6&)%wG%M2r zQS7q)6$4v~`S~G+R`8!FF~U}EIh19$Xr>1L{KXqpxgCA=RD`@Q*Sxm42z$j`a@5G?4b$KO(=zDE zV+2cx={nQmmUAhX>R^Mj?}!EsO*o7(tukiaHF7sU^CL-Z>fhe>kA$^2@9QTKZ@zd= zu-(*$g{VxQ?~uGj1Jy|+e27VX)=z4XrskfD&|O+kLtXU;HVR9oc$^vJgAuTj*g~^? zYE+D;5=~>NBZo%JCi1b2=Y_B~t+*?40MUF>S1|5)mpZ}c1>jV->GY_eu4>6}H<~1G;*O{5U~uU+J*K z3q-Ea%o~kHA+7C{Jj+_729{&qLD}~6_*E2C2|2@rRC@M@6j~)UI6)!JA}9#Q$Cvm# ze^-Kp;U?o@ve^$`tzrJ51X2gwTPq`4L|00?ZiuNUFfrvM#t9r7VLxI+)u@V<@-z}H3&Pif-uEu5H4~T`U zr^+X7-OsiweC_u7$}GNE`b{*3^zH?mh}kTAaBVpfR1}@cWDzJOA^(!In^^T8YkVY( zv|kVBhBOV)@2VQBP-ADXpmrxX!F`vbB=v+5dNZ*+=FFlV|Gss`{tdc5FOU{a<`w`= zsw2$()Cu?`@_bSKe+I=W+nP)BP0rLvUsy(e%hjrRu&i3<}>xMlzs`x>A zbCljP7qzeygDU~>$OTS&Ldo>?JRhk(tcfTha^s92K3pqm+bV*=eCOzmz6G)_i@d=} zY77$qLDa^91bCypUAX{RB0F^mBO@$rquvF4)!-22GPa~%L!}wt?UiZ@ z2D`GSEbj}B?jrbdq;YPqbr%3lb7BTgJgy_KZcq4w_88ij0dj0#l5nFX?J()8$NuDr z`+SZhw#=vk#rX4VhAxmA7+U#%38a1UixvDxm!@<1K9?);Ehee_X|?*{t1F8{8m|7_qp>YPG@vwiU3OIUFd>u#8V3t zXjr@|Ay)Ocqk}({A#R1uLSl2$s3nm_S90K7;8h7ER0*5{H*307H)!1+pqJx>#7d`! zBAy))0#LK%q~}l|T*r#hxF)|m=jDpwQPf+RwNu=5UZLcvF@RMdN&6qP>GE{b+&?H1 zLy)V6dZ*-)xdj;vdWLq%an(^f#}=%(wB8x|z1@w_4jq=ebU+GSGi5xC4`J?-9_c_X z+BYDhdM>DMv&nS(LHwxU6_pY5sybyxRMoe zlkO9Wex-Ol-O+F}CiHETbpvbJ0$-kgapHJ2({27envVL3xl0cMok%XS^^}vLEzh?N56OFR!m2=OXQ}8^a~l#C%FN5 zpkOL z7zK6L4=Dc=@%MeK?OO?fU=wL0#e**sZ4XI zfbkNm%f#0KbE|hDqXm%hAaRk-9o4cT&v%1xvkn~L%=a6Tp?BYQ;ojlj>FuW$=bx5v zER!if#+oqTT^=?_aYZVZV$#zPc{sQtuJJc~NRnX7=#uwJ|C5jTz8>vfgZ1Cm%`YATRB3LoG8jwrFQGuPu%Rom9P>l(*zJ3>MF$7fVuD!~^LRu2Xf7U3` zHbNGk=_B!PQ0rj32ku|pLIc_gxd6T!0o0TL8RXClkR{i20};$;%{dXk1of{MqYxwR zmHM0-L?UK@-j(#?et74Yv5=3%EPw#4D!p`;w&J0w|NhYrK=MZoiEn z&kCmtfUKRe(1PGJ$WI5pwMO&NV)1xaB}9A3m%~pl5#ljNr!{`u036ASP?oYOvkIQqV89F#qwxtU9h+al~9sEy2MnY|ly=Z(1^l5otXb-W!k1rL}yMGd4=RJnERKOESk}XDgy1FMO zyDQYN5T7AkUohzhH?|Mydq-#)Z{q&ayo31+g~*B(r-QYBw!N^z*a0|8)6AEsF5)Nqt$ zo!?{_)aTXimMJK%HT)GzJ%+aMo`lx@I}tygOL@+bzQ8;KX=qU0fzY9$XjDx8SeQmT zh=^Gtc^5^%ci0UjVzXer6yWgx42{2jS8s^HjIEMXKsWwf|2qKlafAqB@D>;1am49} zDLM=|H*@7pqa{5hW#b!C01?KZusvr`WCfy(W@Nys@r#LG@%;!z``u;*LEe$zxU~!^ zWPP!cAg7gqs3JK&08$co^9cDQp>tR-;CL%!)0#DvI-1;6V6d(0i@lGLoF#7R5@fjq zM>S5x;6|*>n1=PEPEEA&Pbxj=u>P?aN?Upbhl!D_U`?QJc^_keEdG!QIr8vVVBUg? zpSp-dX))8vf5BloTpt>>3U3JV=0BJ)(*dZIKsi!vrTB5AoMDr)Z$88#NyD`?L@tZM zSpS*yf4p+=5B^VEIVM2j1H-Wv{LhSXlfgcZS}~CNQtp$W8mwgwhCDbI^)ctC(FTT) zF&-v`$D-2i&zh8iZvm>^-_FRaZxkhB`3_6OIVqcCICq21+Ki=0D9mqI3kDDQ0I>zD zR0N?*awujv2;V>SCSQ2gcasduCqRC7SMp`U0d?z)I>ht(LU1_enIax3zmEYL4MA}< z_iKbY{M72u_VGl%NBzSPr1I5;vHq;-H811P>RJ*=ZHIZBnUiJH8@M+pXDZrg{8Ej_ zzvR;p+*+E;asY{~BxHFoBs){jq44Xqf-rYT%;+*o=LnpAIx{!OyYJ9(&2$QmK-c)U z*dO^q`+~e4^O{iW4*TGHWqg<8--F#+DjUxk5<-)L1?O^0=d}FGg3I~0S}&(875AyS znH3G`g+2T#Q@D+p<1v}9&qRNLg9E$U8LiOdviQBSP2@#(m_d8pL(>;=%|#HUKTkNW zpUZ=3KV8ZGd;h`(iPIhKDsu=qcCuE!3d}zhXv*ek>Z7K@FQeoc4QZ)qR({k(-@s?V zrepLGB^G5e=&%j4^^AI`!)6ri`;%AgyZKK#U_t$?&qU_%(;NxZK!_Tb)s)AQvOrg%u}d!-fO+)L~G z#}}F1gS5QUQt2ytzS@l*hI6IptaqVG?}VD3;kx zDDO^3PhTPOW7%Ax>P{KUah})%oad)!Y(5f(ASbBWTN!;hpqSFA>y_Pawis#P9kN^8 zBCVy;Ef53&0E06*r8i#OR)WubAaV46!sIlU_rCzi;#}Hfc-3xi(g73)9uY<$b>tpa z#Z->#k~3YP`H-Q<)m-`6LBlsqx7LK#QexJNwv0-fDYJRbnF9lI)`J)rz~9A04=@eW z(5AKld;(PC@>C^RRIZPH(tp7%XOd9b&I?+J^$GwnNSD@q0@1kG*=~Y&+rog9_nO>_ zooUK?nRhvc|Jxiwrd4Xr@7$1~OT3z1V9_di9%Zu1>}KfNcgv5HEd5oc7q85c)uai? zOveA}kxr>$aLds6xpzBfJpJ=vR2T{ax``ypGFF9rpX@NV*>Clel4#6V!L0Mj|1 ze79hRncB_b81>qpGtPAO&0=c4{%wc+9A)_SLq$7gO=2wXwkQ^}6jnpH(VrjjL<0fC z=4TEp!0NDimxdbezUDLbz927}6g$`S)nz-Ow zr+z+D#`L=H^6Y)=tpcH7CX*|=+q!`61}DPKljsImEI$qh{{PKZd9p+HPS+* z=O{I(3*e)|MCBxLnMg^Mu#&S}Bpp_&K`a?L+;f4iTL(KDyqDKF3OPRgkqz;@m!o!Z zS)L>D&m^^e2dL)bZ;_32P8?RN@gm*-fQ}0ol@Fc#AF#D>z^~_7N7^t0u(wDP|9@0{ zWl&oUv@K52B83)OJV5c{?(QBOTHIZVdvOhJ!QI^{6p9l(xVyU)d-?8t@5lRbX3k_L zGnpJ&d+)XOT2V13ZHqDyU24bIn*oUXk)L>9Z1UNPw+Mt{CJW6Tq^f>%dy$AbWxkVN z6I1E4_R0TPR$LVru_RK#9IyvwGb$sFo=Xa{s0P0z6VhqIbHJ{3)^V!}jr)k+Fa*43aQM4R!ecq@rR0*!ZsUPZ%k= z?E-vX7+GarIBr-HrS$7FCJDf}(Xz+pv|3zl8loV3?f|5&+EO4-AHvTXfHkj#q$3a79`S~G!(_&JWk(-VVNsaUuq8U5#vO`tm=#R!p!4eo&PW)xyNV+%qgCWWN*}VN&(t1Pg$>WE>-s^Wx`UAI{qP40kdnox_AG5 zHm&RsU0TWnpjGO6g8GwNWVM|#Lv}r6KQMJDZ(S`T?UPdZzF_g$d&_0cy|?PwV(kK^ z&e&|K^C@#iJ{}Ta)y7rcc98)St!Z?~p|Jihh-f1zQ2f2h5*l z&}odk`ga-#6gn`;e6=c10NcPdO8WsjJR{s(&vFV8ML6AxF`ItBNBlP`X952x62*er z*XXp?^g&4$l*t`09he5&O*PB0&?c+(bYZg`xx32&u>T-fKSA_C;Im(0B4HGZbxI8H zz6@Qf#J`{lHw2ElESP%Kem^b#{urL4Ov)w9k_Bn9UKwBb{#zX{YIycj)R8A4|32(- zlx?Vv7rLgeDmKi!ZJl}W&>7{Ya|yTa3E=iYneKnXNU7;jN}uZmv1!Ds_URB(tXWgZ zgNx*lwd9zjB5k?mS}yAe?gZ(6z-;7gJJlza_`f;5QMFI-OKgR#7AgzLl#H>vesT%< z5AMd({w%M7x5yqSs&p}p*W*%I+ZhkX-0l3k4GrBBFv>`)T(mf4)a&%2vIUIF$d#Y7 zH3{2|jgDbi(;EvIa2yF5yk)+JatiS>%bLN#f8rEQywN+(`W~`VWk1ztlm^;FJX)g) zbwP1vEl?A{=WfSVcZvVs;28ntDQidFx-69_{F*Wpd+fRY23hkLk#@7QYj=Em`{c25 zv)=97aSmNI66%eJcAnskibmt&nm_>s%hK#;xd27NvlQ8;{-OliIme6SW@)PJmhY3f zoGvAP{mq5CJh<<(bT?YPM4(Ylf7&$fv*%+m7bG1XHXM4@lt!Kfp?ZN>WP2yB@oqnJFH2v>n#B?AZ#c8B^g`C?3CnCQh7FIgmh^7~3^bF*aVjN)c!xfEiNy;{nnFg3MKV__u z*-;Aka;X}m;>0(;t689a08|yZJ+Se~eU3H1IB~$pt;+QsvhFP4nr8lqT=O`-zZ(m( z+!f3y?T^?w>rspumP+oGGpo9}oYfAKtPxRf64xEc)Yz0GDV{RU`^(6Ta*;bbk`|GU z6cXD%YQyN)4YGpzeQWE$_*&znLbr!^m4tohSuBgX zua{l*xLMtD#-5FYUuh8Hj~&?EfQFqGqxFOqP3EBz$c&Xc{9&c=Yu7LUUo+LWc*zz$ zM;5e>lBuXV94sA~r1@ho9J%v@Kzf=GJFjPz8Ztd{E|CHAhow(|h95*;u;q$CIwqHM zLxMv8)=zOEM6L?D3LPQT&jt5imDYagxv3Zjv+2ak4(FkjkE_tRf8e4eaQF0R+)j2g zk7gTn?eb0p^7kI z9%0h2Xxw+}$wnq1-G2FDfz@p0d+sz)s;Zpgmkshak6p=WZ@WGgYvk_D%!_x6L0Z}< zep9>;5_U!62gH28YBUI=AxM^NX!rreTB&W~tf{V!#a4)Gmzfu_%hP~1(jItl2o|x3 zyl$ZKwDVlWxUi1gUFycij-Y_nfuB+eC3YJnuJ1@Be~xIVd9xH=XUfYSHiQh_AV2&a z`^#car)t11d(f1c2K9Ke4Vc$gY;hoO9i<84s~P0>#mX6GxKJ<*RbJ9Xo_OwPEr(9G zv~TF(i(DUO6wSh%xsgnSwGd#!<>|`LMMnxS2%gxfU;B7E2$#VayZS@h<)sNeqr>&* zojiOaxZc`l{!$7<>f_BndB7x0A*}i*b3dFa>2((LNsXzT#PdeMC*q4MyyDAfyck8^STY;?6v`lA*diGIu>= z#uYJ|)weM+7+gZw5D8uTI?}H;i+)dvLWt=-;k>zNYZwwBh`b$Mn?{0v=6v#srFxfT zA=_~v{KTHlf@@unS&N-Qr}6iVIE;z@*%urSnbkohzh(k)MY_4<_un{^zH^-jm(xH%svk?9Gi>4jw%EKZn-XR+6^kx4Ayq9SIzE5KcI2@z`GEa;{0`S%^PFC$>$w(ZBwlA@ zv`p97!#W-f<^ynWaBnxV5~3QiL+#Q&K%vV;WPmLL;D`1Gm+F!dw zw)4^_be^b**5!8)V>a~gk+03LS$2nxrK-^G4J~GY_^>HA;ATzpkS;e$!#5(5?%K zUcUId$%f}lij(3A9vVY1<`yRZG1IV%J?p0+j53{5yu;~PINl>Zw6Tqz`@(7~a4HtY z=G!YuZ_Tk#>6OL1d#+$CqzsGuW%_k@Um6zOl;fz2SvZMpq_r^IX*kj6Fp_p19Ll<$ zcGz%_i*{U17eLb-15;ffOe5tERJC1yf{l(WSs5JO03uNa?%UFHUvfFaU`D+X!q}6{ z3_l5*pD{P(CvfW?Z1O+)D35i1228YxFI9TqO_v((*G@bd*tqJ6Vn1PQ^PG87tNn(5Z1ORIyRO@j%$(CUb>_4nqmJX>48YMc^uT= ze9or@Q=458v@5qMJ^uzh0BUxq&vBm*o4CUx|E2AYx~l={yXG1pid(`*4YrG~eN~4~ zuZ-b)hFE#vSnAi(`!lC7i}oD%F@tFYDXvGYF_VhIdM*7DMx_ZY4#%B@h?n=9*=B=i zpK4>{DV8t)k$-$s#@@c35=HPA57@(=k`P87@;kbNQR|y8cL_JIs(s!&)AW|4b_m7O zYYv#Ny?-9IOzDbIP~A0knf8AUlb4}(h%U?9&Jc9?p0LlqMf)S=THz=**d@sX)MvU= z!x4SaC1?Xo`gqsGJ`m10)8=*>_{AQa_JJjw~PC@J`4*5Y?^tv%zmBFl(So>L#_zsFd!Tbi8e7OG_E!;@v zIKU|c!19~L9UDFZ1MR$#xF>|55e@cv>F!Utv4PzWv-&ZtStb2$Ig{$S3)csdFe2gs zML>*elIuHijo0`VE$@^OY&5rZ^k6Z;RV?j9R2(J0YlU5 z_8z)!h?(02zIF}RV-0gZwV?O(n)thHLGvm!gNBtMTl;1TtbPUtGV@M-%0{_uuvNmB zlAQzHMvg7b9^(c8i#i976@baTEvAc}VkYLBxSVmq|KfJLoQOt9#R=icdmBv^4~Gk^ z^Yay`^-rS|b%D8v?tXsY)*M*lryJz3f-X>y@)bNI?~&IE(XQ{;g0g9S=lFrR-{bo_uH87u>)bXn}Wt^WARk|ZU@D=WdxbSq7GQpj~ zOv(Mj^(Mf0z$@J)uO+uNnPsKVIdHoEHeLwfZNo3GXKELWz6@0}Ef=~+G={QkzvUy2 z9}0f6c?uhNzjQ$we#sR5rHL4*z1IHrNud2h z;9&Jh=mvovJJ!#IM~rHJ^UWRxIvBqcK(|O5&R8G&tQ(Xz}o zNKzvlY@6lNAO70)viMQ?q1jx>>&F^R8zUrsq_2?eDfN7ip7_h~z`pc=`Ir4CPWID; z`B7i6t*}qn`PF8h;zH*=#d++4qT`6M&sIw52OTcui{#Y0gf) zkemH!i2g+ca!=TBe&B0eI4Kj5k`&mM;@C_~^;holP)q))IM%j)qG3LG0PZh}RWaq- z#F6}d?I%rP0_qOQTRe7N+gbj`HLherd`%!br@M_wVvNil+LcLBq(q`iVWj9kqbP!c zan-Oz-I!su&|a0;0qrR97-xzx8D6D{1nI=WXD zrkr^1RzBy&>lp1{EXp3Xwyym(}eVrw+Z0Tl2AJ!wuQp5%Ed2hsQ>pVoo3A-MLO&(>d}E@ zjlBBYv>w}6TD3}?I>*|^AFZ}s-xxp-(8LgNSEW|J9wGAY%Axbfd+IgbawfygxD5!e z6fcTQ_JY+(WYkF0L) zv;PZwX$0`uE|o`%40iZ@@LRUPt+M;$k-GgU3|MNE=FeaD z{Zx*Kq=5`pr@YBP5^20IoWE949n^o+mPt^h&!7WR+RDVuysgwt=Zv+KvbP>A%KD|S zXso|2*sioWSoHNHB883h75w4o6rjZ;5)5TG0;=k67fuvQLOw**+gRsRlBb5YJ(D)~ ze1U=X3})`Q%GE{M)VoOmf&H1hZT-&9y{SCdw*_hNhy`MXYKM2uTEiAlKATbQ;aCEM zPO&}>gaPNJ*m_i^42F}Y*`z9nZOff)PeOc=q{sW%t+D;DNO~V6QRe`KE9IWG6%@*2 z9dn;w;wamftqm{1BQ~$<2lM_^7Bw<1rdsL(yd5J)db09N2|}hj%lzhtGH}(Z(VN^*gvQf|EMe+=mNsaQlI327x(7RxIDW2e6&XUD zO-ewXB$r^8HFb2xKuc;ql?rHw+*5jR+h)_Wh|lbH%UJ zY*Myi+nYcaZo{33ap8tU)}gYG8x}7wTX8ABb^(H`@_gS|63Ee$G>+skK`CNOq|Q|) z>sAX_UA=svw3@%6gCXL5<=68;1Rp~h-eR2kH{(uMuy6(H(mMKoRB{go3{Ss2Rl(^d zeHOtWeQ^ya*5iS7LnLLlqEV!ti9@P`5yZF1ss+j%X9dz=%6~JUejhL0!0?jOf;all`yoSWw?-}FT|+~^GLQVTMTu<21@iE=aw6O7*X%)3ik&LA zkgm2wE>`>p?i%=VKCYsDv0@1SDDx~OBYD@KI}agsv4p9VX}AsJ1Y%Gr-Rco17))Kl0XYUt1ZM$G(>aqR75}D5kv_LwF>7$itq{?9D^xUzTI6 z^ql>j|I`%ybVpIZEcCssF6pDjvYbisTf4pyW%L>%o~5yi(J?BWcCfH3wH@YiRv=b z&6Hd0WO!YVLO+hL-z`6c4>3{qn`<%rCg@ldQBWe8T0}9fFApDORP7phU%d}LyyEbo#FgSQ8oFdy2XE8CDNckkFAH-A z6i0F-?R4uN)gWD6k7G{|&edJYQOI|5*IvQ=BGw{%|L!#UlDZ#;izbX9}`Av7enUTf(eZf zs`)jxv%cgXDgB>x_^F{h~(kUr6yhI&)Hu4-*B zdXo4FvPXEIf6MD~$5~=et%Z8vELyxz@O_UrwU5(VLq=XZDD>QZ2DC=9giV%jq+C#q zAq*bmcb(4v@5Bo?U@y55?d`_)74|pU<VNC6VaC!6+4mT2@89+Q9?H8vayA5GnM+#tMzkk!3B(-(7*KcFkA2+)af= zOnvJX6sNl5xh7ASn4}rvqE21T{H0Cv#;$U5>F&&P6uK@LgFP?k9LSS$A~&EpB{p!G7eej-;zlHDRm1ET{(3 zkV-Ks;iE8U%>N0XSiZo>Rtk$RE4_h^1IM^8 z7U)so4&K{d)VX=H{rEylO7nW^*5A_>UUPkFElP7t6ZNNTq%N7IlZRWoX)uzz)7c#- zP6_&`X_hH7m)1av>K56WQTA61Yi?eRUSS|@7H?Rgs0sMEA%~(?HKinJ7p&&i6_MeE zpWJkNv|SqxZI?tbuI2PLN;0S!v%OucTGVv1b^4k{n>hCAas{}%bNjtCBpsanyXMcQ ztv{)yr0!RXp59}#JG>+;ab>PIY55!JLo?n8q(b-$9tXo^+882FW-ufcIphW|D`gtW zoI&=P@1Hs; zLWh`L!Vfs&a+8o<-(|`#=RUe(>dA@pd5NiW;m6nFu4|90^8+~5HRB%p?fbbYf&+GJ zo1jd@10Bo!=J+`YnHP~uVj}w36cHV0@@w)xuj~cHpxe}n&fD`_pF2XZ^VBUrvZc%i zQvDp>Ml?Kc$wHQ&xR@(KiDbxA`YWs@pvtx^uc%@g0&|e=!bDJ`!J9W@UAv6BP|^)` zSo%eqy9fa;5h6^py;Fen3k!k*lys0>mx`I6h5=lH@~3lV+@2ouJJ=H|w>F3z;GAXR zTY(LQRBV{%twnFM5zLHe&f*NGsx1e3(v; zaUh-@jKp6#0J8@oHR&uGyB%INsccH86SS>CQY!l~Rb%0oth6cVaH1F9I`GJCL7@_# z_=tstY>s2GDjhhR)@>`bQ1PD}d_#ZTpe(U>(vA}t#CJztCtiPf-jalEP&~=^sSfam(0-;ZiN~c7o?s-8#;nNjl}Z z*U~v_NBvfEFY{V)?)X{)mA)Zq4@9(xEX9dZp5s^W%X&q&CPV`bCmwg?p^omvAJ^W+ z=}(cFq<13DQu*8&m2aqI2P+(X-ENl-IM<(N*qM4jMcBrioXg$LS}QUbQZcMWH8g zOX55F+MM~dap`OAZz=`>wm)6O53jgcJs3|tHMG~xoTDsB-?m4?e7w2??v>XImZvKE z&wIpDK^|zMuaT`M4hLCI>9b}f2TfZ7*(Id;zWyd(6b`ARU~W**EFG{QV4yZl#Q{@&uT-EDD$$3T z6r`ON#UvifE+zxaH521C6%~M3s*9WwcI-G!RVis%#EH)3GUN0`dgc_q>{o|f|InxK z?=A+J)gOgB|HWUO0nW7aJXOr|mU65991qaWYA&`s0O1SHl34#WM+B~C9Qu@|g=d9H z>=EKNRcQzI^jATEYJaJU_6AodGWjiSu%~m}6i7kchZF{>dz<&Yey`GL8o4of;{D%J z9G(+VqEIFQN|el;x@qJY>zOBlogSv zwN4F;WqA&KpoS*Hw4&tD8a%#xo97ZRwbzH(%5G}Tu0D)=F=nU`Qc9h<95%> zAxR(pV8i{SU2-dv6KzEqN@kH*m!6ahk=yM+8WUddw3n_dV?`tU)$!)27(*sALEXO& z>t=zF%a3xh`W}%(X0&Kvk6)8?`w?K*PCj!tZZXFK6u4)lUC2x91XU+rh?40k4N9;7l_Y^t5y?EVzF}98 zAnt*|t9SSvO2ThIb589(CK?p><@fO)K_qN17^Gr{VhR)%2Ez&q>oYi}hZjUSzOOE* z=4a4V_>3nvkKE$m#uB=Vs#S@*)f!#2{`(b4o1VqSThh3a^{>(gX zG~(FmW6Lk>EqAKA)W)g@YFV}Vc}j8PZ*lh-Mp4pR)_gQoKyRytOAeL0%K0zK2XrbY zo;Ue$Rl)1JJ_yj6UJLls&cRI*j*z)yh>DKQ)KNs1nhHSHa4W@P$}73;XZQs!h$nrN zV@XF^$4+SX7p0svqXO7BJZWdQ(bo=z0-hl}Hto-AaOi9X>}G9Z&vL}?n3;W7o_T!V z2&3UMp-7Vg#dHtTUvk|JYT=Y2ML)e5e?vWl*3_nUID>9(4p+LRsYE~n!Rn&S4fUNW zQxTpmz7=SF-my{qa+yJf6%( z)Qls?^c8`+AX7ZiF3E<3ct~z@Z+NdMu$lDe9^bN9J_u>VK#ajIX|J(<7)i$qF}z}^ z0QDQp&A|1i8&CIXNh4h2I+}1)ukN?-p=vWnt)yFOY!Kk%R4#JVE+{fO10GTSCeklsCUtNN-|sY2>3w! zq}JGtB&?qjjDu9x$)ih7h^K#mQ}m|1B$QBmz&Ay5-4jBDEm$(r7zHD*)+u6s^A<^a zZ2W@agLHMS!EX-TrtdOL~ zC{WqrRMFRaYW?nzEj^z3`a)4B#OUbA2nFVnR-y1M(1KXRMYN%ZBH%9dcf&rsrE;(Z zYzTFaIGKYyuo9Tw@jpl2A_U&jc(W9-aq`k)?lzY~TC-^hJPo}(zhsydC^9JFe7M(^ zb*$M9>8Z;Y^0SHX^A@Z-w*_pzFadniM6aaN3w^RA|IzZglC*=M(x(OI3*tAK7rYJ% zd~#5yumd(j^?fJQLykMRY?#N4@0jSckf6xPhCbe}Ga9oUKfV}Vg;b}(1A)7**?)bM zmJWgoqnD(gC-o_XmZH})O;Wei)P@8KcBPLY z#pbu#5r30kFr4~IlFKR9Xb#8Zr$=3u&RJ+STekl}<|D{JR6_|_m0vDmNmW6^o}zA< zEI!KxT)j*-X>x3U_t7u-en_y<%Y^Q<-AC>_RP@W^9)%k=?JaP8TvF&ch&avvh2oEW zD*IM*`uiSEkY8!i&}m%w;$iu(r*yb+l6*m|LcuD^aoFAilnfT)b>{me*N*QVGholT zySMsZ)hIX52?vgU1 zpwp)E=~PXSUX`NMwGWX!i={r{(vB#dyULa+K$SL1cKw2&t^$JJb|T+r4laToJpp|0 zm;zt0x04fP!#1cNkSAcTYaV`geX2LVY{Ic5i*TaEM=bk;r|xh&{*YtrMk;<*yH4Q^{jWl3q_AS#FlRIO2qPrY~=bX!`1E2ty7C!lgWDR)9JTs zRPef_OJFTMROq9b&Zh9@5oDH;mh>0SAx+<+Qjc zmCTZlcC45kzNKt6LiMou4t^PiFrab#0nm1v0o~Ne zM;RAL1WvPB?XDw>Tw^TDNP~BOK0=Cu@4v47w8351ukHs-cyq}LeApKZw9xIK(=nm* zaQi6IkY+GJmf~g2M4&-@{BUMY=g`>|Qaj0u^vJZEEFAaa@6Gjx4>}sgvcZ6Cl|Yif z#l0S_0ItvAyX$09R7>Nx5?EIrN9}r0i^LK);Cet#7`J_SNhB3V+7N%_K9{yYH`8nZ z&p}IbS*QXxF4jeoY_N2E8uJrXd4S56@&&~qzduN=$YAsa1WKO*%zeKa9b%zYC&a2j zyGW2s^eN^1h6e4hITw+MLB;==5E-byKZ z%@!R#jyTDZG~KsD0@(j$@De0VsJM*OR+O0r=JW01;Ppgc2g+NX@_#&^qz<92q9AvM z&*@daz{-^2@5w74Tx=ymZFR_%2!dcaPLc6+2}UqJYv~w;(eln=<}h;2H8h4#^5Fs`fyLV^EXlOj^Ek2L{{YFi z>-)l-%Gauk#eK8^>?&TyavXejKeqH5M$hBXlhT!XrR~3Cvu8?b{5)cZX_Tf2nfiQi zX+}8O;2r;Xr^9)Yz*hLtGn?c0Z5vI`1sDrY-Sw6VWJ7 zBHyty_0xk`e#`s%laT*M9oqAYam0p^y<~LlGL*79k(k9_!*lEsTpb2p;g*THwF^i&zDaLYW zBsLng$#kqbrE~oQh&Cml6~8=7Wh3Ai_^^bYY5%c)%bh67UW@HXiV5Gp)T}?$d5zx- z+}+`Dy?57fGuowmPV(qFF-}FXPl~&IhSx0!E+u&{v##F9FMV{-yv0{@t3Td@Co08%;*WKhITT9X{KN4oAtEbt&UA&H?a);S)Kg{BFNrT0mxPl8l2)h%KIJs zreo5njx*dAs<@;T1ioDXO1n`+Jm4D5k2UDC{6D}e=RXq!L$c9L2ZlDi$ohw*n&B?% zG`FU3WqVDwo#N1Y=5$%XQbGSd>?%1WuTE-H0X>9|O(UJfCYO3-LV2xB$T5+t&$+5+ z&|8zMG}w;l85ewG?UZZyrz=>Nfld;GKRGR@Qq@(ZM7dyk5>OffDMWWUUFjCJaru1B+%E!cgP>-zi$yA?if zw*NU#{Dkj*!}*1;!q#)amXe#LKNErWm$=%6sAT+vWE4%0^2A-!SceeyP#{}Rjp=Di zlkISD=sNFV_om*n1u2E`VX6evYsQVFa6I2FC0)V91q7b`BHU0x`^4w8FhDcCqF-9{5D z%U2t6DIM=LpfJ5~DuKN&+3y(modsp;l@w0bwPv-yt2+w#+F-TKo)h~@C40&iTEhY@ z?QS)v`&FxxJescYV1-t_)KS%J?k`imG&ZN)Vz?3TEXe))58LPWa;F02zdD_1wa#Xp zPmZN`a$3dzCUjJ;`o`?G3DLOs>d&6vvix_JnJ%>X%r=z0aXxW#z1NHa<}|t8-6%?Y4?@UzVtm zQ%F>79910HR81-ezq{4CEn89M4{jXuqZys2OGu1ukG$vPSjd{y9pm7s(DVw31ks&c z-D6HJG5Mf~WGWBF%3DF*S%nNot)NPbq=TE=>>;n`j2eM$Gyycd`s017Q+_%`Wy#_A z^1<_yszGL{fT6~AX#@G$e)51xbg)xz)hBV!Ms_1#Ox!Oh3YIQbUhHneanD(0y;bV$0IUZ4koee4&Dv z^)O6Q@W8G&kaS)&nIS5#wp$mOvEn3|-p2}f9$}9`6UE(CFG{1Fcx|bYtH^s^asR2i zO<&6R$np7EsMxI{?(!~e1tzIRh1IfOU!>LlmrI_XN2-36OH?mJdM2jG2%!S#6cW=W zYs~JepO>oa+YuG*5FYAL!vEmC2Y1<847Z;jK2FGq;R{jGyYWS=e#B4aBRe0W>%Z5Q zw_IZLF&PN+#?4Wczlb!9HF~xdQ{%!MjU?yZkJO#_dU zaaJw3NbqR3LET7TC6;%S)7*5UA-`{;doTj#zeFGY9wkYGjhe&Tj&&{=YtNMwmEmDh z>mDT7grSZf#|U5$^KGx^pwz8p(3x`VIju{CpUes9BOR-aj&Cg&Kt#?jHa+V|k&IY(wl?^(@=cE=l^OG}Q$)sYEiMqPH`O!MW` zj;&BuQqdh)0b;h0B^aI6lN!2c1ac`3kdMo4UDVg59w*}btj}vSr)&G^G>E=2_5+)8 zO(`Q#CqXX5-vp$;ybV`{mVdZ^{vWmu>kkmb&mu-J^HEEiRd()wb3x^?^QhfZqG(_y zsNJweWba{Rw{{?M81I%@P8xXjsKM?0z?w3TOC{rL!<>#&d2`rPS_IQ zYLQ&8uQ1LGlv@T)fBhdFlQodnYLTGO;;@{Ow?a)bVZgQq;OCvJwsmI>!xFkSPJly= zt%h-Ramb3?mb*szQ<2%+G;aa0x2^ERd8eGA({XC6Ki~NaD530Xt3DMZx(5?kCq$J(!!rm1Yh>O8!tnoTLCuY zYUjM_@5CNI!PsMQyeId#LaS*pq&lp>vRf|thHF_x;$g&RYaS-$_I<^N5z7dTt-IVt zGUbuuRf$!+B2h+u>We(ZRox}!kiLB%`HSe9h%A@%olx$BwgaIq^L1+T1v);z1u$;)!}o;>Z@(tCC$7SVbQ;kzBc(UA4ee&Y zW$NxAu!TCcXH@z&i#`ND^qb?HPJWmv4y!F~Z}6P}{6LQMe^s|hBB|x3!x?ow)ZW-| zeV_uK-D;OT2OFMB_KYtSBh@B(CiSeGGGQB~@{@*jMFn;Ictr0>;lxhveB~mW+={Nt zk3h03tQC6qcq6RTGu?&uH{w4QrZbPLhZ62&;+FTr{dbwlVsAwfcRC{9TNWQYGQ<4e zA9^%@h`W(Q>gVf8sGEN|?gGxFVL%r-KtK74>%v$U|i<`iPeF zFpm)C-PCDuP)1D^aTuWMw_(i*pLO|(eyfIoNk;<2>^A-Ot6aS0Eb;qVJchliG<*IysXa)g&Sb__76-!b z+ToAbVW5Q;p(yob-X?vDqT>XrSmDFIc+%lO1| z7rTFD*U#Sr#{R-|@iulb$8kN0H-(-r?Oe5o+X;nIpFXI7+L?(^Z(l9hkmQ1$tOWG! z0=)-nj~#`?X-yL+-SB!Z3((|q!i{dUVe7y6iELrp}h{mZm+cZJ?_OCz7nAPt=+ia*Q zE{Vrq%Cw$`{=w{{roWdDsu(E-*8zKRs+?t0Qz*)Q^_bII?k?8AWgx|7dchs;pTN+t z!-}UtM`7x=cgTWey+y!Q-)U(es`G~!vj%Dz3E7@`2H)%N%`1f3Bcr5Cp(Ut ziG)ZDZf`qI)kurbC)aYn;ybFuF0WF$<<2wd6w@*uDHGsdX3=W+SE06-&0xH>Xe^b@ zU@;VG4dXh+{%!hDy6aPaed0G8{S@z#J(-mW*cBo--)8F5dJ*Ys=kLtX9MRJuxY2O| zpSko5p0C<W@Z1WSjmL=tHE+ulAeJiX|7L^O887Jz^ z$#g|~NucH~u~SL9<DwzaofFn?CaBU=P;cgg4zOYNe4jD;a`zvb z=cpKFk$=M!DvY0Nb#RXsuvhz|MTW&a@DK5`C;40sa6xt9cPE47SlbWdlNPBpUNwc0 z`AmuGHqqz5PXN2G0P|#&NmoH&%pGPxO6?KfB|{C}z)KJ;8q(e{dk?`fg24gQ&K0L* zbDbP&auakOk>w$IDad|z~2&1)~i*Nhm=|4uxo48z{K?M z9K2HtcFu)n-k0M|ett)i@)jB z4f0~5X@$`DJylU1osRc+f<$-t^)!3f*GX+IPwNbO8){pc83Oi}88UOZo7@b-CiE`+ z1yg^Msk&(It(#;n{~wy(GN{e=>-xqiP@q78;-y%D0>#}a?hxFH1~2YTi@QT{_X5Ga zKyeb>-QC^Z^ZMWK^C=%PlbKA;BYPivuk~Bkz`to8+$gshSr%IP**lE>t$Oqv8GAQq zFuprorTbgJBRj2OJ#Fc5_~Ht$v!~jIurogH^@&U{V&5#p*y67M&^ah?Nbi?EiFvKc#H%q-sm>_&qJ+!ymaX zBbF|e&=+xd$e{Dp?_4;YMXrcFm>muIamxC3GaNKJdt>_tcnB9LfHSoI zMFgaZoB?=7X3iYS)Emam;P>#LR)aC5y)rXD-3!O*_~u|M7RC)Zw-f= zcr{VwDM5(^)^U%tlyI0t(DPW)f~8 zdrR;s1_`D*^ZM5R=5-uyAqw~@of^$+COX5j;J^nI_irITW05?!FXOv@qLgqjekRKs z)S`-@Ch{BV6+6yN2r9lv>)85ekEx@0aX9%#ku*Z8_s!D=E#AC`(DzJ&H8TDLu7FK^ zjtCiji62Mm2A6lCeos!C2A6x{I@PRiNjl@z2rm*(Ax~}bRtZD@5;SQqsXUemB9h^$ ztF;;Udw0bC8Sm>eU_}4*%pgv&Q}1dCx|e9LiM$zf0?r*)H8aWi$rUwlJp{h6CEiPB z!#kKq`2-Xd%zNjua)Sh*XvGyWsDN@)9w<<={C>js5?Dm|0ovz7s!i{OIoh28|B?37WB zF=XMZF4GhVi8|Eq*_0)~a4-_G*qdQUUdkO{Zyr)`NC&sD`Z#yzwVEE2eIQ$xn&+)) zdQ1iXjJHiw@p?jB&axeMFD@u2%u)zV?PfwWp+3(L^F_U59qXY}r)A?!5^+R}GI>&WFwJFhT;XaW>wW}kBu_fDU+U!Y zrW?VN!drUp!5$6TCc1R;SU}1^bNz$p+=~Jy%PC_m(z@4vn2P?Ae7TnV!qtu!v9^4# z@s8j;2zztd65lr8e4GI+uri)~J_D0?R7zGcnwf#5Sg-$JC1wBni=S4~+cyEt5X4|~ zu@fhTq6bN+ZS^1c?VZ;^7~57IpD2jmYvWbG(B48?L1U|VZz8*_T~$_xWKOg5zPw$J z5Jnrn_|1{mQi=$zl>t9gZb4h&V$4d_4JA86T3Y=nnqBe$fTn?+@5K_AA? z;a&vE50>C<0H(al_ytF$v}T$~f%fOxg}oMupIiHYqgW1Q=C1wkDo_h72ou^$MdmeH#A|nO{Ywt}Mbi1@ zCv)fPs)nEWZJ9i|MCuOUM#tag$T)AyfH#xE7k`h5`l z;WWpdF@Czj;$@e=v(ne|`ncRnbl;DCHfFaHV8A@g*?*>uWuXp!0komHymyFsYFX{=iP24+9`ug_DPB%B7!^qb|Y69;r`{SoH(0>2??hRX)t z#rsb|Ca$ndNugFvLxr8tuJx2(k&;-?lJF2Y8xmS5A#8{=ww$mh5a_T;wg0m zz5Bf1^4k#G4f97MmYtkl6LAN9ut}r*QHQC~Q;Sm@>vvQfdzPN+S+P&6`bvMhY=f^? zr5~$?&yMSGPG`9{rcLl(eAv)DoiY}@TnTpzU68KEK3$FK1wQVq&9aNn^Pt=gQ-^c@RETg zj236h5phOP9a5!mdRJYizJJ39?AJ8N?T1SA?Bq%w8HLI)&mfSKUE&eW^s0EqECZ_J z{%kq!62$p;x+l|oNy&(e3~wZP#?Qu6x;x}ZY98nJy!@xiI@W5|l4-0Y6~?P`BJJ}f zNBOT~@PPZ8)}QN~^}pOn1M)-5Sx>YVU%CA`-}fs*6i!E5K5uvaE2YF$KdbmfoOFo) z@CGXrs~2_kdhmk@1;V?Uc!OyacY0?zbzTvRQ$>bq`y%J*f$koWma(MY`w`ms z#w_8%Pa*O@5bYjbXP{q%Zl4_ep?l>dZQ)EN*GtGu`92BBYDCH;a#p2EcJ)JK zf=2msCr!oFN^5Y^!5l@xEXT^ui*IW=@11x0(&?-9zBb&kA=T`;>;<2JZ2Fir8sZzp zy^(bM)5|ks>YdY9oc`HYZoMZ%d=Ym2SEZ@dCnb(0Fg#e;!dlPoDe0<-HT5vZ8_ClY zmeg#LV(QY0WQUw*snJ%iv7ZhzC8Pv>sIN706l+F1(d>>kxlL```?_yG(#`Jp;aKb! zjMAGrD{k{V?B#8BENk1+i}=f25yf{0st7XYI>gl)mftG zXQSk6<Eq5P*N+ocsZo4hTtJW7Oq>tI5F+0Bn0wRmJQX;wM44GgWEjz*^XgrD{P zbia$HWb=LNL_ogfn~U-`T=u{c3{(CQl>4T&o|Kf6C-dT&jo}9^ltox=;qAb!!A$30 zJYsuTM|zB$Mg8BYteX$BZi+Jn7eA6nsbo^H7?J0aFt_nZy}y^yH5P)W0^;GY$fC+~ltb*D9k4fsf0RT<;nB$v;|$3KQ9+Uz&p z_>+6d$;|7^Ze*dy-)JxlZU--K17MyN?K0|=?NsT`b``I(#CSJN`hlc|x^M_tQo*hU zqsvOwF>(=_mfVU;c_O4vBgoz>A~d1wkA6((qITXj?QkVEePi;}lBa3|iS+1rV!T?u z4OK#2J$lpCalP~WagLfRqP-bt<9Xfng(W87u2{bKmfxDkVfbIuFsJvA{t^F0*sdO# z1OJ802t&?dgQ{5^{Y;X~VpiqW?|8as8goLyqTq_Z{nS3w&dr9iF@u{1q&eCgDdg6b zwJ2Yld76|hsW%mgFnmjl78KYK$21c<_+xT7HQyMxB+XslO6#R4U8D=B&Io;U5Qje} zK_`X>a9MY{@Q|h?X3lC^YZO=kI@9+)rs-Gtt~B+$!R@tu!m|&asltU-Mf!h@Uvig4 z7QRKA+TP#~9g>!vYPq;DY2?FaG;26F5PeBex;Z5i(lOIaNn0G?r^Q zPWDEgGPODV35ESM#NoIliPu=AvAMauix!NT4ON5qc+tI1THumV6>U&(1)?Rexu?=q z$rxG2W*e#DTOhy+tU$g7nfhf`G){&ZZyk*tE1v;3`^3%r&o`e`MHOtnBxVj4`OFrm zz8c3xC18_!zrdMOG|4oUdc7gJpdidazFCz6e$e2Xx6P4eB*LEZw)Rgt59 zl2Ec#nJa(W;EqnrSKl=E&Nvy7SF&JVXOYUFr-$QzyO`sOZCttj?rU$cnP^*%BwYr1LoSe;cM=R9x2 zF?}>+TsbF!$kz6{+|g9`@UP4G)AqOFX)uCmZ*QYlgYB1Sw>fSbF<=A}|C|KK+I~&8 z?~;!FW>P_;DncPqEGG-;!iy;LS5*b~F^BvP?=I=Zsncgoo{;5n-xHD%zklr@puUd@LdcCGK*1ssNd~R;hVFjoCp>}bbj{i%QvwOW`JV}(6Ey}@& zBUlA))0AqC(w{G9H=cM$VF|ZD0sy ztkYPu)NTC}r3W&Li|(i}&FF3+fPN{xgjs#@5j(hL2 z%a8HcEK?w1u7lQ=DJ{XSmQMG(YoZdJt+CDgotwWCpESDmAI-#Ah+@{z+>v97>u06C#foA7tPx&vpb}Bh2EqC^t;E8xc;<1j)bX2 z2$)i*kh!Gu@RE7SU@(YRJN6k5b~SpPBN#x{Od zc@t(ckCe4s9#sE$!Vq&CjaGMd0zp`1CIP2>7KCL58w+c8SZ18bt(L6K*TJW&=bLRT zHuFkMit5~8AVTQ;=bQ$LE%5%|XnAsNJ_3QG5ST{G`hD{!xH_kt?guPIqhb;iWT3}C z@cn4EC@=&ezTj8?9wgrj-T>qN&qft#&OEe63h#xsf*UBD_2vb`uNK8ZWRVwG1Eom4 zP~PK}xGpJFJz~C!$(#@#w7g!PeB%>{ATEUGAj<-fywP+%o>^BoyL)VV9F;+Ym;DWs z?v=~(e?M6$>z(8beI&o(LLNm*wRCc|4YzaTNyKbL!U7VRpDEvCsqI2ge#rXQq`iNL zb&ANi&tIbb+Qa-@Z1sc3`VSw&kCF${=9szV8RN!TqdKA=3z0gpnjnPc4Y{f<9({!w zDW!jT0Ed6_XkOoOfdqOCKnd&ZqoK^e}oWf$Hd9&(dN4c z%%WA2VIJQnc+m96VcD82m6*n~uOx*l<@ati@EK}#uY{$$jh5ExVK^n9Z0@@+GUG|i z-q{!=?<0U2c!AZ}dl74b+o|rfC-v!m=(OgM?wWFCz$kWv_7CjN@cJ(ir? z^YQ}nCRyhbGqE}rypCt$IQ~5An+8P}^I#nsH8 zSM$kADTS-J9AH$x@U%hU29lxS;}Bpi^{bDu+NrXuTaf(-8WM#q|HV_QFID&U?&?N- zMc6kYCPsKGfgRs@tX*bkjKAQN<J4~uthb+i*90&Pjako37ihphvsTQP2!+I zAl@yBBaoFWZ~vph6luy9uhkTsL=YtDC0|_I>6Wx zYaGy&n%C6AU)_VbU*EB&`C*eNEDlh9nfF$t5&kSv@rCrb%u}`vTOGORH)3H-@-X_J zZgW*2F<5KuG7lx$M{@wem^9Liy^JmJk@k{6)Y|W(^D?F}_f8yyGJDG9b{}${TPBGo zCxtxDCH*bE$er7tps`3B8v+7)zRwu_v>#j_(RgmYpuNKrM1g6vfbyAIixU4_5z7o$ zCDdN=S<2bNEcX?R%?%1h{g@g?Fx$u+Vx z{sW|)L*SynrfQ(V?W(Ly)zJ%|%DBu%irRZuUfqZz`PYtLCyO0arh}I8T+7tn>uyMj z_u-Iljnb)4WPW=sNv}ujX~IC!%{&$Pr!=%ZPL)w6P|jSfO5{e+sx@r2o9Gyki5_8H z`Ek(p`XWJ>0rv8+s76Z$rL<)#9R|r%i*wu`6$;m@E6lGwI-(NFeqSBstMx5eKkf@b zqo^I7Mzu9$|LQtWxbsKe&c3Rja={P*X6pMoiwgF7FM@H}nkfvJqhsK+OP$MIPrp!ZEhizh z*QMvYkf8Z;2X(nQogJqHNl}cudatZV4LnM{d0zXl;&VGuvy0`uIw#e&_;`NUN&+Cr z&Wt$cy^QIR;f9AfZL-EBL~25`C^G&DlADGS)urzlaRot z+fV2a0>p%VP*g({dKOKEEfOGY_N9PRP{R|@&7DGmA{ABUnKX%TD3E_=-22e*z8ZE9 zvEq*J%846E^@tr}z|#mYlhHNOCPjzm88xZ{C&SEJ5fdg0^ul|`_f*o7(mhkp z=9v)?`(e4yAD@DL#n)Z(C1Fl{lq=UNXVo-zNoQT4j_WTygRZiQWP~Y&Xx~9*%Tj?G zt7GW(4e-1H<{0VedM9fQycp5@|>zF6R@nnE07nazO*&1VZ2K4SJ8({oCH zx#27J%~+zKB`6v<`J9K}7A>EILNEV!T2?{xADxnQo$gw;Y7uUnVWnUC%(*zsvbp4l z61!@4KrAV?W$+$xh$th%0T!n&kduypnar88Uo~Y?pxw6y$88BItw-zIRjnR{)>yW! zHtJT>ydj!=r|U^$kM4z+@CL__7)}1uB2bF$!A-P&GK|>;*W!Yv96p?hZG0RdCkZoM zFhw12@0mRPCob_ZksQ;4%OG>h{hOyx|JKRa($-Rcy8jyKqjDzCqQn5uOu=q2+_oUX zbvyy=>@~nt_7Vx3LvCC6&SBd|H$LRWcl=CvE*o+Wxz(59hXOCZrBJKyozK$Cr&gQ@ zjs=P*W=v`W!Q?9mdT^Ed82R=<+pt>-Gyu9xZ~)!(IX#2?jZ4Z{RTiz_cfEul&pH{B z>@6-I7E#lTw@0`(NjX7R1Me;2-^eV*PHy5s58sy)W+143icqLs>HDjKvB1??Z7`bK zzwg|vDw=3TbEy9B&3vorpBx*a!(O|&`V=d6nh>s&52UV1KaBrw#Jg%Al|{O;V{%25 zag=jvFs5o47%Is4WFDv_YFh7j7DfSzW4_hy-?l0HPlJ32En|PVeaKhnG0qdw{ex-H z{qGCyeT$IdEpv{}HxUM%7bRbr?c#;NN}w4NToKx@@`e%u3Q=jUcKswiTV8hkx7QYO z0Ac#M$&jVS!g-$K#-qX8%U;t__+-^BWMUF--UQ$LBst0s-Q6T5p8o?z{D>4ca%X*` z3S}*vw--gXa4BN&m2k=XhcQZ;=NA9^Y+y?*a-{7TVnRtlp#gjh7VHU?yxVV01p$SW z2Hd5BJoZ;eK=ux`KkRAkbC`H1wbhyo!m4oO>Eq-1{ocoppqMqmBd4}sj$#62RSTrzmE2w0f_9iv*;n-`^9i!>O1&&8r3RCZX_tB1%g$RMtK2 z0;AORh4me%WBBbKUd^S$N_}(-`|BH+r}#1lhcuNm;#>-K5D!-=?sdRXw|d*=T%@#k zSP=r*OC|GT($ftDTC?&Ww@H{_M_E_>D9rG!LnAhyzkWS6=gih;{@(jj3O>e#Qc5iEwL3HB4OtzG4#SJ$;tSO+q=jEG#gB_5JU@oUu#tbAXyG+3pdfHEWEw{%YiN@#()$0xPTCuO#dVezLz6j<)dL@>s5I$|<541f9?w zOhNZtbE2Jf*pOowZp$;y#J2Ef&H%kOv!`O z6)B&9v|z+4e<=s_r$h+Mm7&93a#`9FI$6Z~E|Fty>fj|B)3GY)&yg{uoIO$6lMf=G zuoK&8AVJUhX0}4*X`NN(FTWJ8G*pCIV8;xALwz>5SLy5$K4;%W-S^rKsL5)vxJKV5 zZjc{_xkdy}t0vL5lv{!fCb#>YLwZ4O(poM6pFAC~J}Jv;IRrH&HHK+v`kRV$pwP3JgFGOl3%e^$mYu{d<`BdLMl@zUdTJ?)v$8aQI!N<#^&NWh4wo@k?4^e(bAzX!&beXQDACH}-D} zKaRAH=ST~G&3fLz+o>`;yXEz|z-@Obo~8bNa?=c|F-<4UETc5v=1E6)S$>x{Ffxe# zA?cZ>Cco|tS$f1ODld{ZB%%Z$Hj{daWn^FpNbJ#}qLD$eW4pc3h}uGOy1n!ls^9ZS z2U&_D-U>5w`|k+d68!Xa4~@mfdMR=4y7}__9?%J*iCms0h(`)2o!aQod?^wiVtZ<- z&YRt%st`~g9$!?%TJ{Ih-!v$gzF#CWdVf9qxG&EA?)n5*^_MNp_W_MOp%sw*G#jS%Tc__YWFvUb}0IGI2hA?IzXnuOzLBPY)+HiJeE=zCMm< z?&33GM;m_lQR-^lty!-OTA7k5mRo|nsZwE*yJU5d!hmC7eBF7Z7Ib(e;tbs|!f#4v;Q`vm z=+1S__m+mo=qq7IS(mA68SkHNt*B8-m+9*dqxEyWLNfoz>Vg*d@XR9$B6UkyiAx&! zKbQDJm69hb`;DKT`b$x2{AV2agviX- zmK}hwH`T!cP}ZpCf4!2bPNShj#*Gtr(HGa(ck}$rJv%Y+``n1K=B|2x#62&cNL@?q z4N{(E`{0Px_fOSwcC9aPp1w_iSgZ+q@3^Df`cFP8rHjbYq+wFiOZy^=>tiN+YC{eq zz6(|>SCE;}Q{{?LU1Ls9rG8vRuvb`>>K7^p&pMHjFVC(|nlTydTkp?V<|7!hxDBsE zmmAMzZ$}}AE%N)*b|fCny2&la+g1Gf{y=DVt2wOU&}zXg3oy!R>oEtYwwia-WKBN= z!mJvNT(zc5`;Vqfd#jS2B+s$yGw2(o{l(fU*E7no{%-!m!{tpnoBMh9YqXEwMyMkf z;|x=CLeQ7{jAu6=V);| z^Jz2W64#$gAD%-6l>#1|4T$gvVM_224NDTsq>gpr0t1j0JQ!%4X6Ki>)2eoihV>QT z6h>?c(n=$LF08E>{qjsuLnedl#s?U5X$Qp=njnC56Vixet|Kp5o5MB88Norn{e z(&jaS##O(ymxgcHOxWYx;D}zWF1wVew$#IrUp@d8hnXk?X%+k?wUIFrs`G- zW{{hSf`2tb{asw2?WQE_iv~ZZIZ3@_jT5A#>%J!(rD}<3{V7TnOP|5?IM+JT&?$VN zkzj4omX<8Ocr%R;dv&VNo#qQ5YUJ(CoMpt2bOX{g;ErXaZ!WiIX)b@lrK`uae+GQy zCMOT=aFF8eI>35O=8cg4JOej+ix==;pgKm5kGncNWFSTn_n~_i$@_;EC=2;5Z}{p! zzIzOhSpRn^@N>720E)L_7fdZUhDUtrObsxWiT3t~yz%oBu0h1YxqcB6dpM!t#To1-{LdOqLCOF$Q)cJp6kTx#n=kZK`L| zgd!w`0qn@*lGbPPQ*C)i|K-q1qgr&EWB_hgpEFjzsF(Pyn3zdEXL=Tov47mA$Q|%_ zygoaW)6)dR#H0s$MVb8d%DGy0K)L{doTG-?r3SCmkbvgS=HL1)YFc>Va?A+rScyxK zSe*Q3)l9@|)&mG8 zpns_eczFdY6ZKfyfS%g7(LAWRCfDI>QPZDaZLNJDwht*IJj;9`N<9oop!g$17&KHLX@9?CReN6+i%Nbix(7F%$UdAEnlY+wN8*x@Jm)9CQ3(M zpmxe(^*f~!!x-tGx`M24niy$L?eXV?!ynwsVjH6ca-adI&Z`Mh#bm%rq*ZDo`jeU9 zht~Ym)XcsiW|b7Zl*Qf-Ru?ZcK{xdY3ojabbImhX4dhev(M{- zy!h^P(CNNfW%J(T?}wG_`WTXWt|79L8^U;J8jV6nbGwJS2?X8vjUS`vUYCd3*DkEX zRm7=Iqa*$aKMQvC=$H=)Skv6H5MUQF^NyW3|KY6>{}UHr0pmunY7(H@Lx4JS23a^T z`xl9Gkmb-+!#<|NL3%OoB`TX0g4G);28EHP3~&I2MK$rvaIJ5O13h=c5Zek zfd4-GVtU3L`0HqV3eaU_5#|8hg4W>wtTCz0hd<#K_*;_%jh8}D(fs%cSF3 zS5jlm_4i-;t@SjoPS_7=xA=I@O}E-0QrcHi0^6+M_Qrrv>_*&&6@tJAdmz}k@znEa zWiI$NLl@1R9q*O9!SYNl;Ez61M~x=^-Y6ncdo#5D1y`h~a@TqPu#MLL=4x@7OlE0& z(rGbfh%8*NI_p11O*R?~h#!LE2rxkyAy2@_3aihP?#zbcP(T<@hf8;>g@aTQi+C|e zJhJ*XXd{AU4wvE5=Xkgf&4u%TQS#*hGB63bLn-Ws(-~3a`&Xgv`V3$%)(Jb4qQ4&| z1sXSQkahg#>R`9rWX+nX6gKJ#DQ|XbjDGOM98M+0{P4xN{`1U3t>R>SCymOe=}ZOT zwzrw<+yG-~(a4_BUr0Mra3l@24Q|#-c5L%A8$Jr=i=4AUeBZaf9uSYv3e;`V;^OZw zzKw*aU@{8<{G56#?raTPi}9)+Q)HO8x6sz}?Jj*5jh;LKyAm>(%~$#+5{@H+s2ur= zYg0P*xPCFc`wX8Iu}{eH$3rkaT~+G+MN0q+3!$GKpo8z+09XP}TNS`Kk=J`xDD>#=YspUHifP^J=F>t#)bRm_o_^syKP zW?Gx?5n`3rjvEQf6e~~xtKgd+HwF6*JVLJT{8JX&l)O5}A$WO*+|f53czbK{?yp{V z(M6z;fTx=2N5~B^0QfP{X#Y3C(5>THjFFbJg7s8* zLfJ~&*tE(@8#PKhj8N*X)*OsE=1VFQD%3o%Y2aqn17@@^DeZ0Y1yfH>3z+<=outY> zR~UneJP~C;KjF*UHKG7vPv80!LxEZFl#>JGcTZ6}F*^vqkzi?ZQeulWJ*h^+qOynU zSuG__KjGz|9xmL!){}jTO9YgeFhpEp?{7kfk;>hl1lV(<}ASvG$+V=H89Ogky` zotX@ma6O?RIj1TOsmS8X9dD?C_S0i)*o2y;#_tfJaNQqEOH{>*fWTJ>*PPNzf8 z%hz<2TLi=kQRB;&aFFOUinub$V2MS02&>eg276_Ek7Y9wC(F3WJ{iyod-AWxjzr>$ z_-7}(_g70!A&{jEYWq&{p&Re`M&XYRUhwCO6!h*zh>+A}ny7HlO{iJ0+-lvCnCF%T z%telJnOiV#_aUTU^fg-3t8#fzq`gLChoW#kkt^_axFa$?8Tn zk5Elx#q$`3@4DkA;ZSC8`B8hhL5955Xq}d-q5R`6vZwo~B#4Iz+A`g#@#41U7`|v0 z&*ogN*jOWAZ^%(CH%HUl2$t#!!_|6LpdV%i)jTlEw<*h2XEuf{UI;p9H{uIK3=Ytl zTa%w>xcIxqOpV4Ma**Y5qFRo^r>nAu(&8#7Hyt>Dix^#_4jrj%TE+hkEmF5oyT;aJ z*a2);TAV|B9KaTjGi;C3$(9Yl$KHc%kuMXj>|}1=OT3*Mecfga*31{~q4GswxyLrz z2o&EEtTp~>b!o+0Kd@Rqa)lg?!66* zpQRMy+h(@{b2q-lf3;|AHkQ8m#~IK;04C}-aQ4ErdDZ~rk&~3^aVX`YWJ%T++}`Ez zV~HPlwT;bg^{MQc1QoAJ^i+i&f1l+(o_W$~(f}!WtA9kLvf;oBFQ=$EKW|p^ahE== zE-L)!Bn^Bp!&wjx3B7d;d-;JX`rLp!XO9POZ%4g0dMztzZ~L*}l~!zZKJt{rn)4dp zy+NhB&fk{^>1O!TUL|SZ>Wb)@ZtELgIbEfFIHsIaA%usM|Ab+1;EsJFSw3l}Mo;gz zMTK@AMNg_+<>B=fGHYol<9Z)QF@Fov&mQyHJn|!hJ(1Hbrue)!8(@4!G(zJUZ=x3^ zbYDHn=5~@?d(O{DyBdxtO3Ld>(ZPLSbr)?Sf)Mxw{fQCCU0RkAeG*i1U*#C0re(Pu z(n`>Bi{IGVeTN!JN#lbeyi_saX zX2wWEX@Qxye@#*wYKLSI)6E{&=9#uLut|+0UiW?SMq&1PS5+gfRs`TRQK`?0e&b9` z>S-jjeM)y!g=Q4~0@>>A4JS_U0F-^d|AC=#x$-rSk`C7_^7Pa5f5 zu7G_hDE{8&Bi{KrrgnYLF3&Q97sp=JZKeNOq|oHPn|sBld*x zTp?3oG4&i0Migb(NYp0iB7Au(Y~6|8Uw{V>kOG90xq)~J!PztPGgJ$ zFs}Y+y?zbrZo99>@#d;*ERAv!DxS$I!2ED`AD5(`qyP~cNVyhcwuATYSM?GWg$ei>u;BaIc@;RqS z_iR52yl_7UXddPd4|aFW1;>_7H&G_Y7aMIlp`)Ck<@LGRh{g!xW#y5nk*bux%;~5G z)2m#P4ocT*ucs)g{Z1A_tE1BRBoeGR_FqdqMF(}J%*4y&Ua`__G>}Jo$+dIRYM0!^ zI*6)t)=Znzj&x}%n!K|;R^NZUFGu+0=a79X1kFDU@N!G@-ro4;MnsVT%Dx(p2|uf=zL@etg9 zEF)%wA_)y{QzY=eb4q!9Uf%Y71zh^dUddS+HMFjgHO*!P$ECSWibT)1AKWc;@kKW~ z*8CLG<(@W9_u9*Ub4PQZjeV0ARuxxQ%r(bJ1BvZsP8Zm)fEr?j3jwxtF&O}pJyBLj zQP1tG94(g8K-T9bJabh9@ZE{{KP;eXI}neDZ( z2;Xnq<|~cppz-MD1gPk=J~J*)LUT}xc!IP3lCZY-e8H~k6zt|ZuCj+V>9)0y=dYG0 zgt(}aIpMuw9PT?HK_EVep5$CcKgRID)8!cu35A%EWMRRstT@M4c|P}znso2MF%2f@a5ZkSqZ1%{P)XteDaq&0L z?>6q*NL-n7(fSPpCow>~V9H7!W<)NM5oLDStFnr|WS@2|5ImWUR#8$@9|A z(%@0vzlbl8AII7wjpz4WSs+(;(EbPR3=LL{yGH+gXL&tYbtpbkq4zJt5vilO*GkVU zPa>7A_E`&D$N8k@e6!OCny4EbTS3>PX#HO}&*#P(ekudgR!xT3KQYfr;4e(sEP*PC zahO{os+NmGPL$hKh)U~j^a}w);A^_OX&FdEd%H;W;CMQ`jE}T-q!!3Xuao&GVx3wX zev;0aL(oKvc}@M1p<0(Mx6Gr2 z=T4t(vzS=$GWZ{-#1HiUd#vq*k%u6+n+{J?!MO!)VOMbFAP^W=H6eU`Xd&GkT8;|N z@XY3n=0C8t?^>_;YsJ`aL*H+cOfKTWbEH$R)1FJ5pdykk!a+o6YFIA#&tO}p%$h*0 z)^v6}>*<3>(!3Hi$mBXh~EtO}**6O+1!@HO9H zXNVaMm`=1*(|vLv3UC-ckJA0A^jC6Q{3IAlU2X_{$t}fhy zTF(3_PL3ev|E`J;(ONuK??%bWkUPtn0+(~=?a^R?C?_;)3Cl>{pB|sfh!sTA=J>)9 zev$Tgbx{fkErm342vfMn!g8h1NM3kx#FgG%t;^)00=}UEZR0{Iod_@J{$ zVzCsrT~@zKUd82FhZ<5LsFP#fd)FQDSA4oRWDQYWlwP6amp>1<38-&)#XCPfOtPR6 zx#}UBM}fcyuxJLa{y*!*zz(_vC+C^w>_{7qsU+>wzicYsjaldPC#Lfr#r1irh#4Sl zOLj%teYeotr4(HT(ind1S@}&g{Ff)jH6|@cpEeB1nAaL&MWFVn?ue%7bC@9;KSYK& zkl?~&&WN(}pF|BPgWJ$UtG{`1TF(=_S?*02QQNswsdA|O=eqXbkTUJI_WiqJ0eGsv ztW!I&ymeTkS1$>pMmp>zGp3g%*~J-Sv%m=Ox9+tu$LPlSc};=YBbn{!$5atkvVzhE z;i^pr%5fSW{X$LJgG14IVaz;BlY+=y)$gBjG`O7-@$-|vQ013-w{8*C^e{SECA(ph zp7}&YC49rQ=>YX@oHC~QuH$S%3D5VNjZwT+q)*##rH5J+jmPwH9WOwADP6T&%b&kmuuOXQ^ zO@*Njo%p(l{pQNZTem43_D9^;PG-41$P0P*ZyyP&-vqGk5%yY}`y76dRf5Uj*M zLz>r&Sl^$hFV^@h=}G=Ip{X#oK*7U#v`MP*di7l6pUbb~Q4{4ckmQzuiTVlXmu>4v ze@4gFbG^kq_}K%+=Hb`*<0zw#tEnC5+6(a9SioPY`1U&zM~FOrOBcJSIY$|f#2 zDqEyR4i81|LGSh6jweutvU1k8(9OLVgsop zmU{P9xaBy+Wwu&xjpE!R!X4-6`y`PG4uICKm%CIXLDn+YoS-s$>6w@ZWNN&Nh{$NK zUb`NbFuyu8;dG7siI%K*a*1M3h$TC?Cgt4k@hb~m#adE{USQJ~I*RQQvQqx-xNYw%@!<`J3v_emxsk+lRUlhb3WtPdb< zL9Z%8hqk%yU&Ag13M=Ag{TZPjY7@>xQA3Gb17icE5`UTu#tfMKNB|CSh}#fK z3YVqq%F>(V7a_QXO+gqrB3Q*5(4P^%HdVTRt0*?vL)W<<*(k)qJ4a7bJdDo%>hjM{ zR*pm+H{^H3!DzZk&PcR^E4#}-6cBRdKk9X6bCRU`di5EQ5rntNwK3ohqJ$Ph6p`|( z96wp)aNf#LM*O?VU_ngkKyTkl=Mc9Z%Q{kdu=(t^{kaxy)F}%ECP27>*Azc;>Pbz}FIvOjvels81D1Q1wHRv7gb<#(eKdD+2eZFp?+%*VODBa^8%tS#~e`!-CZw2l=X@By#oL;unC~l7 zxuUp^?uby&pdb|W9>}Wis#YRfebFJPjMsmjim9QtRggO)CQ7|gl)C& zWPXU;gp-t=Mu}^C$WU1!FWGD~9wP))RSfNP%%&q3T&Yfekp>|BzIk(Qr~ED{v)(KJ zsJ7HzrhGZFx+B1c)BiVP)%<@dvH$GIk9phY$dOSf8Cp@(%4Q`$=3`_i5W3Zr4Yb$G z@a#}v=>SFBsh(K;kYiXfLzI8Db!6=)WntAy-UKUXX~2pW2)#)`0(aY=yr?|C7jbH|vB81@ zYDWw&P0wsH<&>b6h4S}He$^;5E05QJ;oqN1I8Pi{dC0|L$rb)?YubW?>eu zHo0s!!dla5l@r0hcuyvOgSUEBK?!D9Hv(T-JzhEEg%*QO{q+E}{726bZ3H1+$+esW z2|rKKat=JLqB0m#9+23bD4F>Zv99gpPYW=52)Zn}6XLF& zdfo2Pt*Ni?FN}LL^=8k5B};z_hPAsW1}tCA?w3=mdC!*M8tbw6r*o@mHP)6_tCfsD z2^gAD0$&`;cFK4*xfv@8 z$}P0`|JXXKs5rZ*N#g_vZo##2r*U^^EVx5(cXv&2r_mt6H9+v-7Tn$4-5sXCe`aoG z%>@^5_rA^Qea^0`r|@Sym6?B`bnXO3=8kj%ShnMxZ;lonIT-_LIIlvIyAKp&{vy4x zawT|FCiGFo%kn=))V~34d9@{S-w>Y9OAB7^8KymXx-0jg#@-eo^WuM_ds;R=AQ+!n zNDP1CcISGr@D1EYR!(DVR0N}Ktw%QH=!;7)?|AvqQ5#IE6MyJmlbIuPa`*yH-lb|N zXJ9i|2FR^|a7E?En5oPM>h4T2&a7RU+}yNWA+xM1EC?0-(*y&6yCkgM0JklmCi7f? zG^z25(16=txd~Ov%YO#_cFiT5r*Zx3ahi9QXXDyIXg2( zZ7=QKH{a-4-5-N=T;sp$Sj@c7!v9;CrBW0E&`{Mq+SuWk7N+==Ys|M{upqsr*JB4G zF&uAI$S5^#RGOYuA>ge6IiF7W*Ea&vcD;>~1kWhj57vLpG+%u3xxx6rOyj8)&iltWRnO^3>OV`LxpO^}i=Jlu!;RJY~35CULW&)z;M;ctd$hF;_qz@*$GV^7&lwckgaS*`E1C`9t3{GhxgX~F8#Gw zKHT7WS<%QysCFESQKsSj*;({nt*I53)3fD&ejo&E?El&qIH5CH`1S$6xj|W1=WPhN zN)@=0H*yP`8JfRR%XYIfgFTP&Ahlk3-i$$w$QMeCII=Sg!){*laN~Yz^K{-Ne+wlb z40A=X`cCYiecU1;=?cM_Gopn_7BBdKTD?yYUm2|ld{tY?HE4jn{^kwmqXv^$&?T*$ zP{18k3759qp3S5Yg)E750k0vgP>v)|gD6Iw2Uz-UIgR4m|F-}x3^iYI;Nj?yGbqC~ zUPaeDzka!V^{x^*Z|+->A?H`mD48TEppfvx%Z4FTo?>rn!Qm0qn7}vqs%6E26-S0M zfzOmcJB)?jJaoA}4IWd_nWV425Uf8hE)$k*Sxd$EB)bJnAaah`B8^Adwb)`=#mU3C*l{=eV&dfiz`k zuTm_w4e_^{&^em{jRIGSCVqJbq~hl9x11_cg@!-# zo^%m3tkUN5e}9Va!rQ!!ko>mcf~85uv9cA0=B`jdNm_|5k2Fd?uH}a?G_wCh;dJP+ zR<9vPFOY0$#5Y;*2xMvr(awx3p9DfSmN{@Fo%Il-!dumYsO_5dPWPq}n$|-m*XGeYF##7>W@8gRJ>6kS@rg z?LL=n^-+1&$nn3d^bCTDM%`X8OXs+uzt0RR#c&256txXoJyO5byGa>%0gza?%iR23gDitj;C666S> zwdjlZ$=|ax#6ryRLIwG}Q;+0D2&z5-+LtSW`)h?Tgz9>*xf6R0(JTX|)%_>g^MCv# zx0qC+6j@b%6cD&N$>^3(bbTZv3BRJv6{B{`7{2B6ZFXq^jZO8DbTdV2(9qR)^{Zn0 zI)X2~BQs1j*sNwABx4pOx`MJLLp7TZ8g{w-f5H6%!vEXwHeZk=c?J_aOGScBSremy8Psd0=Iu-p_JpYSA7Zb%j^pH5iPjK0fp>jc6V{83wUj9ecd$f7YCXXblwUSbzGi`?7dVk!(wNbP+%)PJg$N~Qa5EFDgOthM7lw@|iD7M|TWGlVc)H5`_X;5EO*rf!VKK$OVezL~mrB9mZH9&e{j1c}RH@nUO z->>=y`6ydWtSJ`#F)iNZFh@;%0+!27SY0uGMiUENqhf;Izf;qD-rEx#VpdLhMw^nZ zw@i1`UVLIbu%WrZn3wV0j+Q93&6;ZtF0za#*mymTNBtDvg9B!4ZRj}LFIYmag;aZ<_D!^N!ETU6Bbr?VsW1dol^m~aD)nk?qh`phIb1fQO)9L zd3Y%=)=}D>PT)*SIRJVW;+G7K=*-SRoy??m7CE9~Ozc*zPy^7FG1TYlD&c4H=^)(1 z<0bHNgf1GlPzU;iB|x`E5_w+}Kq=k_ia;@6R_W&pugc4Q=xa#fJ#`Diyx0%a9pH(t zr>>i~e)9I^F}@hgl$jTPQHRM;Pkg%d!Adv+TRh+8@$9`X>mFM_)BpbmE;iIyiEV0< zXWFQ=x5xO`>*F@u3#AkN%5$X#2aSx2nrBx(qeK7lJyZf zm>gHLBR<&KYE55QR_bQ8BFtHrh=?RnGESU7eA0nZEL;-c$B|6#kB0&d@skL=K&@ZR zJZeF^lo8a+uZdL@em0EN1BHhjwefIgW%bi-C>|Y5`>7OtI2<2rt1ne1@lprJFUXAc zRzG}tR??}$d*u4V)&xmgD-7iq%VWi*GO&7!(bS~Z4@P!yr(G#zct!2SkhDq=ZI0sU z>{sjwp+d}<<)U{Yo`4bler%by>#@Hjt>l^eGL#dhT{fw|R8HHE*?83HYG}aL*RGk= z3q&=100B^{4_bMwhs`LP%eE#z!snu@3CT7X&BJuGp zk)wrCbA-5oz`C<(b5C(|NcXu}%0ds=77+7=GdDQ2*o9X4TIEiy;m43$#5_)dlzGy; ztkfTZ;m?;fpU(w@$Q<~e?h%Owl+&EgPY63Yt@i`i)q#hx!wsCBq+cBV;LcPZCW`sj z&f%b^^dEqjf$S zKT-#PvMwMRyfiL} zgk**aF-z2Q>k>LL9z6^cPaZQ~qaVKMhNJE5OzAznM#C^LbWv6*+t~5yzomWVuCh?) z2%1PE;JeLB&Gw9C64H}-PBDc;TU1&tp~d-vLg15GI%Tx=Fcb;#<(4KPOvbfBE#rs9 z`fv-r@IfgyIl3WQz3*_rL)wwkt??r>{lxAhqH{07<&x1v?my}$STH!RBYe(OsP3oz z_X)QDol?2%viu$Am+L#szBPQsZO8MMd+n~Oaw~n3?0o`JgGV( z_}PY1foqN$BfoFVah&`KmfM(Rdo^RfAoeNk(os+%MG_!OtSJc#Yd1mBmfL>kPrB#9 z=q!l~TSHK6g%l4~(K!2Z(YI(6?rJ8~6sX^c&M*_h=S4!m(O(sFl%Mn5g}+KXpCkXh zsQ7g29LFF=}v3;PwpUo`wS@@gTE}z#!SRy(L|B=g|s8R?#n)gzc{#cZ~7I9cs z_^Z_OJK^7R&dEJdp=`9-B$pap2+zTvrMZ3seo}v6kG*rDU6jKc60{t7yFGcnpuH#) zt%2ZQm^5;6PJ%ZpYguaTscDT439g#dh zoaH)@i|asUFN88Z1D&}j_hT0aE9E7ku(#p(A#(LSV%C59p(?P-tIG>+efKuNQrkWB{5@4exXGk-ct2-gX^E+PIF0sDg}4JZ!LvIN-E!wwd_w;4tb1xYq<@7FI1N!rK>8C$!~#arRimwdHcHwLA5Qmv zDP1y*=w`SjoO-NYO&#S7bsk@;J8iokcOFAEgcD1e$?xh?&R;7^6~ zFh!&PvU!EUxB}!+Am!}i_tcBe%yT$@Q%;_v)DW#SnYdB&h8iGYXUZcg6n%!Wo!xdD zB{2VBht2j~nXl}Zj@U5Fmn&b^@IvJYtoz8Wx=>{pAim&>FO-$>#TkXerkHu>;Q~+c zVLTdL(EP6z3(5@<(ZLlHkUS*Omo zSPVrYJt4H^0OEwV*|YxvHvR`~{O|e-hv94ZrU0>N#P zV#YiILuHB(j_oHm-M%>ueqy+fg_$e|gA1H!#}3LOmtNPKAWb`pzL2H%wUIdDMTXa- z0tBW7weIB_2V<2)QL2$C1fMt5wedM`2xiD6G(`3BamEfJoehwM9!xPelsX}QT5}Ik&k2<5F2n5Mi^{E6rI}wG zAIz~V7pBg9oyF8iIuV64WRFFdFd4(Nar_@pV&%jMInOm7rnL}JZO^}=^m{A(<$9N* z+wDuty)cSb!x*xzr@pdY@P9!U`mZ}_8W2kJHTz%P|2mXj8n_9JcByTFbKK%UYbS<%q-IXi;#aI!-h?u9&ZOroi%k-oobaiy!Sw!K;(rya?Ns^j4O3>k)GO3C&IC> z#O)KIECk<~-f@dT%K~<;#sU#`(Y+ZIGK|9A-FeI%NNHG&g!P;KGfrdDCXnIM!zalZ zx-^*$FR;*rXG^Co)@TNjnD38mtv52!I46>3Q2aC{SW4qOa75uzQ5~k z^tp14zQ3h?dswKs4~qO%SB){l6MfJAUz@R%di5!7S9+@qtXF1^_nOX=hGiJW=ZD!#8MM}d=os%o8r^`#Q( zONG1)t!gIm^(Bc-J%Ow9Y`H$fm&-uk5?$)n-kNcV3l2 z#Op<>Fn^bjNs1CALLaJ{;4-^p1!-0guV{r1N#VQ+5e zziXSrZ%OOvLm}=)PC`Z_J#|^#4hhqo$$v;{vWV2lAlw|=-2g2H)!}U7Hb>(Z#V<`l zMqJLy#J)clr%FB%`o)AHeFWaW!wCMi)tixadA8rQ0<5Ub2gC< zkTRWef+7!)(*1r(!%T(H8h(9)?90nQ^|i~~ey>vEH2TzT+W>J|18TQvZ*iJjTDM`o zqMEV;qzsRogfjfIzY3SLjG#od@nnv3w&1n-Yu!;v!iIFIk|P-%m+~Z%+@5Emnk~~W zS#K$tbxPRW7G%z9N=f_=$dPrdSnNk|Rd_}e=IaEyOuP~!Pqav6?bsLZBi5XN?6RYU zMgR7QiukPz?TIMF&fS8c7gMOZujns++Hr{p$?K$UvoJ}N4dbF)TvSYOr-c%^&g@o@}Vm*{=p@8+Tp@fcVCc(;sB}EmkX+R zGwqghMGwM;4MdN?WoL75Bg4RX`LDZ;|_N|ON+>a)!IAz2B=@v z60c|n)UWG_ul&T~H&44Z)MU?g1s&E@hc&untx~F@<0t#oCp1gI_mMLEsgTscV<2Io zJ^#iRi8vxFs9yeUsk&BCSY3L0>rbce$*Y%$86&Q_oaJ2@30+?Q7P9I+&LnqT&@SqO zbB0&u?3pqywXMH`OwSevGxO<|*hw88}mkGELcGb0g-)#TjmAp0FpJnYUoS$YRc zcJ`xwNlP5;42l&>N>4nDI;!~eGv&yQ`}DA?cpOprrB_tBtWFguW@#NkVRaYvJU*Pd zrw$rl_)OW&YFYBkpgO{!MwM1!n-Tva*%$6_{UznJy2tY+ebp^8*MDE?mo8KKo^odb z-AOML-%=V2#%JgpFh44upbSyI#CT5At>@MUzW`{MtrdyGh{r`-RuhIgb>h&mLOIG^ z+m3}Oor#^DYSQW1GrX++T!B%?HM$yoHJCaL#*l+8wU}dg)x}!5l;tuW5+Eg0m^}9! z7t|~VB5l%Bvd`I1ccx2GJNhlRVdbhw0du>$j1PcoD@D7jdP9bKwj4MkP^(OIW?lq2WNB|>Pc*jAf-BF~A-k&X^r52US>e_o zXw>^d{sd7bw3>a)8 zCvXK?j+8OsC%wvO9=Q0&X}GC_CoIR;+*i1hl@#j<`cY1LlllTEngY7;1w`6j#Tdo} zPGj}xR`;W=;s@Ma-Jy0IeUOZ#UWeHo)nMb1UibXXtA7Nn`? zU(7Jw!?Q`$K=3fx&8VfY;cOEkA;sCSA%d; z&;Agw)i#`O7eltMHB+zwgs@IF_imuqJ7D=-wlSslH0NMOzSXJPV@I1fJ2R-o^q1?V z9iAy++@l%B6<%#zK3YR%zQpiDDcTX^Z|>K9!k>T~JU)pMbs_fhBxsT2MKnN-J(EC< zeXC~>C}SmCJ`}Wqz4)QDGd5}7hFh262_efS{UKSvtGKe`%PPv?@p5o{)HR=@A>i`I zR7bEm+m-k-UtluG`-BT^K(jq#&*A!Dpa!LQUQK*%Khb@UlU(&hNaN5>daedH8chLa z>Qr&WY~LJM_B~^)wAX~G*NzEB4-?OpLen)7VOAZk4oy_8;?@Up-qy5KLcx;g%y2~+xbtXWfxj<-3RcAc*O^m4vvVTpsG_iV>1MR)sFfY3p zvmagZPNyYsR^uoS`0nXJ>*1dWonmT!St5OGQg%zQZa%#8`61+VmwZ^ay$}OxK2%ht za|+H5XI{CSI6iKDlvndDCk6d*s4OiLeYb=G(x?h3ecT$+mQDVobOEcy3<@;K&mEDl zv!>Xq3_sN3tBCzRF^;EA8Q(jL|2U_#nRTX=&IZ`+dYf+@exB@s&x_^1N`|RVaNae42Kj)3YV*N)t|sAwks{B#7B_$ zr)pxeOuF>wY|D@UoL}Ysva}4jdBCc5WyKV} zfr%V(z=n+L?mAYC_Df_H*9lDSCvxW*m!q~r>h8C+oAq6{VtZcs=P6%552Lz#jTsl% zlvI${P|jD2hF{oD`7rSo=7EJ(uDgCuCb+s1P}faD9YlFUL(0=;XGMTN;JZvNk=i^Tfth$jD15=PDQkjkva$Eh^ z%e@z9pk>59lr?hk8LNg3vxYecW)hTgmPhyWjXg3v3YRI0PZe~V$dMnHis@W0Zoh+O zD|)n$6!J|(d_4X^f;!N5walf*r-J%^x?6`8}){TPgAH8v*kJc=|akC#(Qh zau?5LQqgecR8Z9wIR#M6$>a+Tu!+EHec_wpQ;rz+&TnL2%2ekn?5Yz|ZAh(V7&hUI ziX5Y(peYDRk6|#GcE7hT3$geUtHcW6kWfdN%=fT@V)hu|G$Dbquh9IS+Pv4H>1~k) zn>Y8}3N1);;olTAM9Ks>G?(BwRx3oWyTuQVp+(%shV)TX2-7;8k*u#6h*#X9N2I%k zhI!{sdJh@!$9KxP#P!He&?~}b*X~Yfudcf<@}Rp2SYbGIyEgF_{}07GvoWhk;a5n#jT+qQl1VW z#E8XV_(Qj|&;|lN=)kAQtaLPAr{v5)j@IaB+1t5o9_|Cv0`y0DTn{^f;ls}-eN6CF z$WFVfl@SujNc#g5pg6*T5t=BIXzfr_0o72<^%uh8FJ_Eh`%qSdlF9A~c4xNaGJp({ zm?uxZ(!yZQ@Sj^ckS|K5CC16)3Q25jylM968YMos`k_7{XHLcZ`DsB9SO=smCwZq^ zR`~&1b_q3cn)e~!Pd14XR$2aV4Ws{PRi3LHd#OA)bFQ*371u%EMzS9PC7AO*sOwWR z)>v#w(!sr#a_OS2-L?b`mu#H#MrMnZ`X=jolF2nw&HdvvHAT15dhwpG7Cpl&TQ@fbHzllT<6@euH^@n+aUXAy zW85g*Z#On0nywx<6ipvk8tTC}9_tRB`Iha)uBUlYO{3GufA!=!EK~N)q(EYVP@&BEK$Ezlq|61=03U>Jx zsVTBS*$9)Q!rv?3n!KxDm<0WNFiAvGJuaB@)tWSJNt?6N`<@=*lxV0;Shl86oE``U zh%W8{+}8X=jce-M;ea_h?czMJS)~@Cm!|F*XPIFuBGrCwKdU)uz>xfSKUo%!%+|Uc@NRKqJmQ#N@_1oz+?3b7S{vo_|KaH%i zD3hHT2j4;0>&lzS#B(z87Yw0IQM;>3az&E5jnTg|cED z@!q;!fwfX1A48igd>*Y{AvFhMEwhG41iv61wxBHBLpCW{Zxyh>U`vWnB~0!|Vv37g zfL9j*%uBZF%B7fPB%v49#&||^gMM%B+rMdQ6D*d*oy#cFk&rw5=4*5MJuIHOi3&HD z%Y>HPDnd2y90(_}MjNOFoAE?%#o{^-!>jkn_o8?3tmzYRbH*h4J(kE3%)3M!CinjK z1llBA&RaW_VyM+}M+6c+Qm&VwT=`@VjnP-+T$jX}GFA}ew_<%7mup-~X+v`JX=Yu; zPQ~qA+djo++3nep!qGPI?a^pSC1I)2n7Y2P7TMF)XvtB2<;9q~urXfc%TxI<<~N)T zc%G{q*X*Dto=q}Yhg?Dj|yfy5gW4;z0J zP#T1Wcr7;;pmh41RYPwlH${;86lH`;t}BQm4dyJoZwjXqxoP=DJR)$NoJRlznZ}tm(<&zPH|`$+}YA!$v(v=-R!(!^rI*Us!Hy53vNH`%`lXt zzsrmPNnL;LV^2(($Ou>6YfSDJ2KSkQB}ti7AFzXHE`i?F2$NW@Q5{W%2L=ZHmbh)? zwYQawWgNZ@Ikq)SCzw}gXWk}Sq>-&RHsuq$p5r<^`0N$Pf4&t>Ru_R`3Njbh})->c|H=deeX$2}} zHF#Rpy`u0le?%!oixiE8$-@Ecw+zy(AH&CrYFEg08*+z_qS5K-@Fk?>qA)FgA%9jk z5e@IQ5O-`~@MXxpWzzK59bGo=4+v=jOPJ#dHgpx)EM68u;;d;LFBA$b_Qj6(63a|4 z>GvoOGXeKJZ8`O^3nrS=Kx_7oRym&6o$wl}6PWM)x_Mu-@@xsnxNEa&nqXCmr5LXC zOmyOua`%@FV~4AojbGb#%uDa&%L9TmiH_8&^iGRlRKL^QDC;!s9WnbEY7c>7s0PRg z7hM`4;Q%x&E;m{+SPx7=$?^%bEs;lz04}I8v^_DWz z0r;#-7ZvNc+!4j>Jup{2c;1<3t`yfb zD+)=xq#V0NjA?%{dtk2Hp#Ng#_$0er-mhRXze(8f6S8i2?5kGMi$BB#A{ol=bbW9B zF>x@V_=26n7Q9Z?#9_I{_eV)&YhR7=fnjSzmG{aTH(4v2^6!lwjP58!{u{qvG61jc zXC9uwmE5bpRvw?j0hCok8duOh=^wO*JaF?fOBdBQ1cOH`7c{g{(oaOUi@oF0+& zeb+ct)wG$qLtv2)N)baMv4g*k*n**}^UZl=+60^a8sZ<<1;rek;TBwmDj#>HxeRw3 zcneMI166Wr&TCLC{UW+20R)Nh*uV@2Ar<9v5GkaIdg$1qh{w~LyH z%!!)c4ymVVE{2ESJJ<&C1{~2lY!x_1>PYS^GPjX-WO!~jLOyAsbLLd6C3{S*a{^q^ zUcq-8(MQGTly@eFYf|U!X{y6$G?)GsMs1Gi%D8 z()$d$PQQNXqgP#uUSyVLV7@l4Ujq2A0Qp!(?ygsr4PFq^^5TFfhcc!|p?GW=(uOnE zr+n4Wd0bHSWXzV|_L&Y=7BpZ*ArnAk!3he;H%D{}K6LY8U>r-)2vR~X0z18Fa;^C= zclTcSQ|^@P;BymPB$R~>u=Wdh;R$!&L@H>@v^_c@LU`JNEWwE=m&lp2UvJ^YjUYGb zGWhZ67+sB<8)PqSvz=otguemlae>i$K(wr)%mswTMe&a++tCZf?{0}NeC|B>4u^EuUKUd3@C5xX(paYE_N;S*?o7ld zFu+h8nH9#QJ9{dPP#*bZ zp34Q-lo@ZdEgqs~c4dJTMQDmE6ac8q1hBVctJAyJh@-@kYq1>F5 zeuGUeq`a$?5y}>P9LdP7d@Mk-K~je1P|Q}ZE%;kYjF6WCYXu3$V6wk|PQ)I^;@hfUmR1l{+%0sKR1lV!-Mx`i!c2G1 zxh%Us!&&mo85~NB{NfvXnW%;IdPynPJAuvl#9!tr0&t#p@1e<|2pH$W!uL~n?KzQ@ zFIu{-dsOCE+)Sy18*7W2Sj~cCddlqTH`?Ypp*dHp-V`_?G8fo8@z&`Wf{81LGnvF2sXKoOZA7{qNd|5cR8WkF-_$Tv^pQmsZ zFlJ-giy)5=o^;Na&V1RVg@)tT!bvIHm)R$!amVsMx=E5uPDP*5M1IrkL}PKU`Hlar zP}U9r#7~7^Z~z}j-&{M2wdP6wny(eO&ciOBdrL;I#mlYVr1aTA8}w73Gg27`5;*(H zM+~!2yG*#kPnbLiQE(s7*YZt(w_T7Uw7};5)EA5@pd~%=;SLksQ(RnzqEp7oqq#eV zIe4pa5U;lQ=oW{D1`Qizm#IyJEQ#$zgOv^;p8tkiBD~vv)?n|2{Y}G)c8?*cSr^j*I}7zjSM(RmZz;c{9WZ%L$z${P zuR1^KSjC`cu5L)WACY{UT^A}(m%!NHr9wRR(lwIYT0*Sm2Cu}vg{6MhG6o})Rk--F zr5rXO1=s&8{lOWpX!rUjM#{4y!+D}7eP!-e@G>E#C`~rQ=f{JE(LjYOLSVG^Xdr^Z zZq;TYwP$W`N3zkcV4Y6tsJy$K-Z6%J6HoStAgi9?pv=D^#1A`BZ zS3Z$tN_FM6!=Vb;AXTNxKVc)Q`$tWJ6HgtNu;(q&BnVB{gPpT1iDL2q6#e zX-0hqEEdddm)__kejku-evAz!I2p&>ut$QXcSQo}1Us%W2z)P6EAXuF+P4 zv<7YT{SUTCfT;Kv6k+`VgWuz$)LA+ChOO4P8g>$>pjGZi2;|~~&81<%+(h5`>8gH! ziIlOwyhHysyx2MC3sbsa-o9xy$I;L!tC6+EFs6bTuTKZF5oGb7EJJ5X7O1NZkrC&$ z_)HAU`SSlZEV#TU8qK(wpic@DbyiO?dVuszz=YW3lP7BO9|Q!2;z`Bw$-+I~o2{o<?CZZ6KSi&F1uhbX zP%dB-xBsxn*~S-2+(nZg6xNhYgg(dbUh}K+TzXeiKAQ9dC`!<7<^KJVr)dq0*B);b z8@Y^H33KdG((mEfCaA-GC>?8-su~c|r7^I*0%?DjSydI>*`J~I`aA|BQs`d|HY4_u zO}yo55|;v`fOSrx6a|dt5hsZa=dgetuS^Sk`e9Og++Nyt`zHrJq~NX{z7Vj3aAj&}^c%;72yv7>& z4tYcEyO4ni*{&jCJb7+ZF-#P~Fc)5shP<58)M(KpPRG3B!&tfh(pg*i9_W;m@DPu+ z_(0z6kB+(Y@JXc|4Qtt&2bvl3V673I&1nCqOmN0vUar^k;PsmgMqS%eJ&J;~8xle7 z9&IU(+Thta8`TWpM8tS^r-nZ9`E0Cv;TkrY9XyI&4-BDw zwygr?ZJ|dtXey-+th~qomLQtRQHo&8JDB>bg9t*;AEj3%5jjqohe)(@+%DU4`7}8y zbEZ?t<5*mKK$T?p9KJ@&hO^!1Fy&^Y(Ug@w#g~}UA)ZgUPTwQwwIZ|KLm$1#usL4{ zw>W=e2=2iItBqp=@31Ileq(X$P=#2ocljQ>i{l4KJ#GtlDSv!fh)lc6_D+s~&&96W z0w@(vAlmZz9e0#(f_FnhTu}2Nta0FgW;d<3 zBjBr!?ZfZN_t`4Kf7QarIwA{@`%zxOeFxvS(w#qTBSq4%Qh3q2)pGf}v^2brg;8th zZVVV5yV4Xhtb*pJL*buAu7fDT$)^1$g!nHylm`sZty)hg>^+2j?d4cP)~iZC)gMoX zsf6V#XyliTl&*u3u^!T_CaLu7h;uQTE-!n zCI+B@_2snd;~`EpmP&B)kFiRTv%DmAde1!5V{}G-;Ye zpW1E`RKFZ0$m_RzPI|1Lux{8xW7gUz?k!h7Y`S7;#|u<2+xWbWoI7-qLv?jYrsTBw zt+CKwQm$6xjyL&H&DfYivjVR^*@FZvh(>xp6Sq|efqLFcQwY~5*#mLju=W&dojtPPVl#4`k8#`4zUx1UNG$2}v& zqtnRA;KUwL*G?OGyzmp|YYIR|+kG)iR@a3r4zxR>7_v!U| z` zToP{^n_fotGAJgHX&vy`olN+<={X_aS7D{xS(nP%(T=ar8+@X!L3Phix`c+mPMp#8 z#W*i?nqL%q<_`S%A9TAG&__yv9afeX5%}{kKsf=Rnn`K?Dy4(;KOaA@cZ9cfa~VhMVgc-5~E*`9Dr zNE(BLC+CER5lm8GGtWSaSaIbGU4Lz(UBBN9V|5|Tw0l;{+(wcmm;7iCjME9W-4)s>@jLZrIV!73Za>7cZ$1w6(P(?MCJ(6h zxzACjp<09dUf)T=9cqsT@$Gn@xrpKdhEfZ1|Lh&o7Lv5~|7q9Ku0O!Cy=dV^f3u}mGqJoASkhGC_Qn7&?<%L!(3H&pe2>F6)oH3^<)uNA-al|8xXQX?3f~G+iAeK zsA-Tave+gA|F9h7Uxi6!BwF2k1j9*B^l~`?-=xi4o;V+Gp%s35M&&IIJxVK6(YeE) ztH?V?>lf3Q8nT~QVb#a%Q&fDCUHu_{sH-oowS!lSaItvzNb3O6$Fu(`&rI@p^|Nd; z=d!o$^Cujpa_Tf3QRVDf`>zy6jWayVBY-wn1mP=2Yf|3W zg)B5mUI#4UU$7aCPCQQ72ET1)neB`<2EQEZH zs;Kj%<2a=m;iZYlw7v{JUSrDKe480#SRUn9Sd6fP&lf}>gER+yn?(wdwuNFIMVq7y zgbBhEysr$g1XV*>-F4Ufg;Fe^NTC7k>5wQw;zzE!MH%hKr{>l|vy>(N;;*L@5gFcD zmqTQjf>-$#SG;dj;w4CetqPlF(3T4k>32vfuEGGff3$E)En=I6Ct(xKii@Kwa0=~m zlcOt=tbgTqd#XRB-?RVXbj0Y~R7*Nor*=4o*Bxt9cv(tAB1j+F=oz^B>&wIMmOD0n zsyCdqktj$GN%8iF#&*$t(w)+xo(=N`fUP-2?R#f0ZjnU+M?_B%?=Z>sPZ&o|76z z6K!falHmQ$D#%${Qx+?+Og#3mv!7xXA;ksCAP-^Y`@Q7!n~1P>^fM?$h;Ud4Gp5pj z7bvQpkCUaRPX%o}4mKaxuy7B~s4JvRE1l2$YKIDshNNFU`RqqBPo5<)B@+!ciNooH zD-5s(kW{~_xCFG36?2%N<0rV4CTPAy$*x^}sUA9bs=kW;Wb{a%UB__fwJ17Jm*BFT zw`tmg^ptH*y}O_6k{7YdukqvV2(n@ICm&myzFML7pMgsUM04DL;WFvX@fi6wb*g|7 z#iF{>TPR&jG&>op`XrFQ8ARY|$Uvl?q`D$glA!(1Q<5;_#0&inEhUge_kMN6#w)yB zmN2cwkxadgdvu(9^^DChQqPOSK~+sz+dezYM(NP)VQUI&$E=$E=f5E4do>!sP|};j zv~k06%_0MPMWt7*D~`NtctOHX+{)b}MmjbmlNmcAWg%eAOSBC~Zr5=2w_^<HWr1MFPLeikk+i@Y0_o%kbgSKsY-d-`iX2<8g_r)^#1>NYtHy*tB2stYv8%x&!XZ-bxi;XUAQKKabgHYQ|CW zZ5T{2?#&i(#EAgw-u+0kElDW@W`!X>09vQ?-kw^#JS4UXc&qS$hyUy=*;^R}Fk=LH z^bzx>)ilu7e>7^CMmnmLStaTaf;1W9Q&+%+8yOH!urP`hSgZ!BUNZv@aM8u%f!#4> z9oFYa#Q_Mt3?qS)vF{P_<6;p`cE-fOex!h&qOzWIM<}p#Fdtc$|Jm`BAfB9oMI=}j zCS#7p7=FWZN8OYw;TB!{^W%|EYEJbD?z?ofI52apBge!}kY@=;@`Zzpd*2V#8eoeg zo33az3<^nJ_>h1FPSgNbVYFsueK8eae}v~bn3UiOhnzPg8=m;PJGm9Trbj* zv>9|fTB^o#DtR+1kghI*y=tq+%M9?u|@Jmv(BsFj`E$)gS)!P@Sk2;-K7F?tgVwLOo0yu z#u{vVIy5kv2viV;Zk@swV-X2!oq8#Z>5n(vHfOdTLD=2uyaS2!#5oS*ysG`fo;QJ0 zW~lEf)TS@DfkNt#t<$YTs-wErK^L7l{Jq+gWKscE<90p=)ci!9gD#8be4h6JJg&XvO=<|7h}e{#~hJKgX^47e#S?CaICxONm4zS1Mjt0 zp(Z;JMPKAkbpZ!&Xmpwn`~w{jUgWoZzmElM?n}*K3&Muw>sH8VS`%h+T}e*OhtnE1 zP+oh$*7^GV_txEG1D8lADDL54W%o5;ZtdW;<2@;9;&OwMhc4*8r0@GHmobpEHe0)+ zkSv}B(YWJnLVM5m<|?q)P5w5}xC5|J_7U=)9GHKb+^Kr$jyzwE`wcrtvoHyMm)E97 z(^OSnw06XOw7ub?ayO1wF!nz$(@#cW92Bz%6KwIgBql>ygxK~3(!xt>U5wc7xfJILJEIIP(*6)R}DL)7x6`f}+} za*UeEoC3*S3wzB5m%>^85;?1c3DIvyYa6>2YoZj_ORD-GYk-h&t*tYPQJmu`0t{Sc ze|3rXAlCYAX7`FP=Vg?Rw0dh55G^xWxyL0FL3v+f{Y*@DReQeJU~`J|Opu`jQwCiH z5{-`zfW!=RRwauxWHM?&T#j><;S|+9J!^un@ll)CXP`zi|M5i~M5{G-cxd*SPca!{ z3Rz&udc)|zZO|%JznULKj>^botX^nf$bFlHu3f)~Id(u<)+dKL@a4Dw(g`(c$ifuR zgI>5S%P_|S;^n?R)Co71r*aHxTVDaa4B@AP4Wzb9cRC40QAqq^ zCc9-)0E&Z~{$Z%g^4hsVaPEsC$~~(362&v4zBpUX$&t#W137O^V5vrhEx<|JPli3R zyyyQ#(_05c`G4=jG!lZev?v`auyjjFcP%9d>;lr=NJxWphje$hNY^glf^>Ix!*jns z-`_K{GaG;G&fL5EI_F&H3Umq^&3z7e46n<$&j)P{Su8T8hpzJ&Wd!lk@y)NiZ8+oa znPX7#%MudTcMOdQdEZ8yaLQs)xvY^PL%&}l)wiyUBE$Byv!!P_s3aK;G`rc%CK(EH zt0^o-$wDPzDmYh**A)Rf(E+6BQh=GPnYOXLv7oLLLgmvj93}u(9zDfI9JB8QU5LbwYz|kdl~(2lu-=9m z{y%J5Mf350*tCYg(13!RsP5+hNfLV7)`91}gnqv;J@K{hHs@tX&Xfsv=D5Tjc^(Qh zjA_#?iOoMLLH|n?tFz|oPB4lFwR-kTroK($X=dKG6)!ndXmGv-aePL}5b}5&mqKFx zuwt386NV+&B@JUZt25{3B6$-DIdX;X3GnsKnm03Y$`~&K!H&5Gf znH2za(C=h)I8V<1b{CMeFZyf$2TU%*JBYD@^lZC(qJ38=y!daQH$QKL%JGgC&Z{u> z&$Od!aq^0B0(AR%Rw5Sh$Pu%}rfL+Subf!ELrpiKs&)R}8YD4e7DwP!Q2u|g~|X}79@b0V(ma9ZlE7r8%coGaDSUI56Y-PvH`qwj({xz%Hw z=k3LIb0x2u)SI+f*2i$gQfwvqH%j9`FqNh~XH|IKb?MMkPj5~lnH-gq{~$rgsgIxE zOYy0@9AF12)#c_-3imp`j`QaYdGNGYFA@hgV!&FD8zt-SE)L%u#^Ax*!N;0}?uBN@ zUR&9%k_<~f3JZx|HKBJ6M&10V7+ACuIBp$ZA9I78C{Kma=f5|HpJbNLI%eX~CZFdF zmKq?aEc}8Ct!T6oP84;<)*W$zWtz`%)deH-44a0$&+8Sn9!Pa`%ASq{gY8*8N?}E# z7MdKXoh(!5&2#-xAs;PIS>Eb%(0_C#cseb6;zR;(3@0O{L3BC9tq&TI$d1X|_pgw{ zIEtK3!7S+Jyrq4}i^#BpoHEj!q0*txHNSph>oWvVId2 zp_He63jW8q6g`&Xu%JyL{l1sagV*xDOY=hq7-K$ClVZ4mPYNmKAN?E?^_j(x4O-Pp zuzRFm)a#LSo8(oIFPO2k2PW`19ClcHUr0P3r=K3LQ!<3xMfyFFHkIjU>AOfnrxZDB zypO(PoOd4tl^#y07KAGP6g+~3g=~7;9<98=AL#2Z6^}?HB+&QlJ`RPbT~^kZ!u1i_ z>BK`sP8r0T96xo8(@#h!75D4}9o7k`F~+v-vO1uITr^$ziOoSD)PCz$6*suc=C4xM zkT0K9+yvY7eemW+KHEGo3=er$U;4%s)x85s^Qg)Rn_+#LHWN@1o&j)*0I>g7jcQ=F zZJp&FZ&cw?yu)c)Q2LD26|Lv3B+xAYooI; z<_Z`mH;zbK^UpZvz{%`={@iHyOxc+JjJ`ki{OR)0FL&q47?{zACNA&+7(Nm0ZjaTa zcKidVWVoW}7Tz-8Xy7fgLd}&7?^Qx$GFzdjjoPAXI|&``<52%HCzys=rFw;uML>BP zJr|&J!h}j< zj!sUlUwYB9&E55h?$VV#Jm0V?=@d?*^`v$8EIt)1rwK5`smooo`}B#TYe z*dJPY`u&uV+Qa>%u|+uVN)lV4O+?j|krR~YKJb3vgPJv*Ezu#@KOck=&sS2>&HbDZ zbyH9|z~sS^HB_dh!m`Y}{{q^CbxitJh`kKLb~4JQg$i}K#t}ZZEI|fkYrE=d!?agY z-4tHtAQq32pyOXg^_DT<33JE4+k6@e@w_^vKm6g2wPPAEEpeUD%+4TF7DE@uIe1z} z27ks^Y7ke_5U+Z)THT#@;af6vJ%M$`yK~zjkEth5I`yL~iv$UHVPowlOV~e)pk2e> z7W?5zJYEy1q9X8CmsQ@RUDX|E;OsqNzM%P8wjs9i<_Q&_;N#9miDTLlwUsv|@4X0e z1XjTRa`J+@{31_&%ZAc8M5e5Ugi)mg8V|e##iUBF=S(!;`h^+~zPh_I9u13kV@dQ# zlh}%$6w~>ZLGR2s!ckVrT*hlHOBlN+V%_u!(FvL4mag@SVhyGHja#A_{|Nhz!(eXa zlL#v@)pY=1y$P=uclIAR<3Fs3o$({*DHHJDfqs8gCg8dwHpx>id4h;FVuF2;#(vqM z0!vO(QKOYva}-9o;D01-qHn*P$)YK>$gCt-12pNU0F*)>&Ac2-braXboFTFXt0tD@ z7n!bM)w{`9>As04A1bmGSQn<20pL!) ztY_$4>Ivz(UfVgV$0Vxk5}zJLv1N0sCT7l%(0=vvy_f7^MyJWc#kx7b4$>^gVxOBR zMk6#2KGWnnyJQ~eXK0E@^(c#s)lt~-sto1Dq$O(De=i|){3`A?^z*J-lD^#D6RY~Q zR$Pjq%)*gruB&DEtcJXSYm0?-6I=Gp;w?R7GdArpBS`=T&3u$%5x6G^6Hoy*$_=E^ zz$P^z1+@U!EyK$nr2Uih?+E{6k|8iB0H)TZKL)(Fbb>rbI{PoNSMH}-eEH?-ggoQ++|xjUP#tm%Zzv*p}}dayGLs(-pTR+F+;_X;84advveiOPXC0bb%kwx zG~Z!L5lP#$JO@xApeURgd_I!@O&%SUaE>lHU986^GTGLwc;>JDZrd@Z7iVgCU)V`kI z5QcB}g&AWpUxpwbubk0+CTW4GfQAEN*k3jxV}z60oi6e2R3S^*ab}jP>mhOP7c1=7 zF`b^ca^v`BvgWkyf<DG+&_ z^9>zNg-unim1%jRxHU;3PV}hiug!;iG=JfQ0(#E6e{obH7xzfa9`B-1B}iiBa;$@y zi+=Gh4=K&h4U^sp12XPd-f`8LLyHPGTVy&J?V7TE5Iic4MFK4^V~IPJ*C4=NPXGfgmW@$$O^o2KdcFnFMpDj&H_UvB@FocAxQ$6@&UyF1szASngAY|@+yI&0+=w8MbFLOdk z@-OSNsQ(}~x+krHWMlij^GNd4N|eAjdDfjLJEUlY3LP%IP-LYAwLQ0YF^twfCvo?9 z-#7IY`-lcLl^cSulAT(dpyEDuJbCx>bG6Qgmz{^2dR*HK7i=G@6Kc0f#5H@^AJzc+ zlof}P2G`AXHBUQHUD6C{(a*WBoMfVG>W>5T_np{8eLt{W-o`F}EsJ}<23Bfsk45Kg z*2b9l>UM4m<7l7uq{|XX;x?au$)k7I`f6B7RlR_tzQE+bDYIY3oGnQwZo<9g1z4pk zba@4}eUTw^M(A6fM^k3|yeWYQqs3{?>tSk56&KFr&ymtRp)MDdY7BS04ycIXi-zom z+sumzX3kIjt5ulT)PI37UWQ$L>QZT4J{d(xEi1Q5JOb4p?))HYn<;uU9zQ z4_iYEMHTE{>PFk$2rfM6!2epa96jw@ZZxJ?WZ_tD2`uBmNGC>pIF%Mj;eTE5lnjcd zdTmg~Iv7{>cz!&FFyx%9LH{RyDpLJFp4$NY4r4H(jH1J+NQ;{+Rm&nuGp7N{7xM3K zushn=8;}G=Y2_aV=sTKKA&&v;cb%sK?ozfr?;L%oE#HiBt26RMhmECq<{w^18-?hM zQkZ+(^h|de6TYEJ?)W-WIt&^(6#kmDp4j}NsaemxkE2)2LBN)-?$&zh7n+pH#veKI zJ#Ut6k+HPyPr*tk*UYpJ57^D|#(jZ~+$zJXSMNjwn2tZ%3`q!H=}Wkeq@pp6F)}+K zBZn#cT~}yGrH9@yRcfz{3Yl;ih3zM{$MZtv75^|<#>d&6S$Jzqo>Z3oeJO8LVu}63 zqv3Cku8;nANEQcgSG_UNHI!BS_v+Fw#+4--5Hq8`7u|WyS|tiC3&A?STbrb}bG=k~XO0QMOW9i1s-?58 zkld&ptPyuIa2<3I`VQr3q`w^O@`{c-_pJdeMQdW|)r{8jWCnXiBS>@S%s zDbg9#=(TAZS|flX09rvK2vlJ%>+8b-AqznYI2=nizp7Y%s+3HYlBNvy!v z(QpOiSAaNpa>r3T7#;!V2J^2#JWHIFB`+*m=aiqKKrDP(v{xAd6qY%@FZ$>)mB(!( zq+)iv*RfMt-^-Xf9J>D<4MvY?_+m1+>;2cM2KBpg;i>@Np}G%cd)!@WMW?hrc+V4% z7gRn!a@2~jXnbT)tz2J|3SKSXU{kso4SDz($~|-M`Y<~BbAyGOr_5JZ=}@NX^whY(Iwd2_vW`PmH9EL-F2ZlpOMl~bAuIV>nIjg39V&jWk%a8 zi3RpC2wa0j zK_lJtQ#x2udS)^oj*I!FJ}<^K>Ux{(Zc!C`(?Rvzpuahkz;DV;9thX_kn)ovnXg3B zG7-t7pPy?pJZ8dE9OipdRM?$`&oZVlv)Rh}cFIF~&BW*!w*@!_ZlxgG@wHu=vpnH( zS4nX{4a>WOm~CVJ?O8T@Iku5v%3G%D%j`W7f)6+}d83ECa6T{TYv#3z)L5}bqoo|M zHR$sv5u~%7l>NnnStUAGm&;5JC~CT8U+_6G>)oXbu$+b#Qr!3Fk@V7*Y0B5L?G^(h zJ;MQ)<-Kz?{qnjXm4_j*<0s1&7@Lqc)sP_vTcx(0CMb#l!tBhGM7ria=y$o9ODd+>^*R z-sdeLb>#M+y|Iy*je%9i`Eb>JC?qUrzeglO#XTOm)I;ypEjNVVwdtsG=BW%wBM|GLNEHDY^f@`+JS18;rWjmbCgy3E5F{-#D)OnabX^);Pj z^ef?;>Nx*~R`uzfK)lZSXK8A+Fgy7;G#y!1PUWq;DkPgK6sz&>(c3cxqzYNQ2_JmI ze=afLsh|s?NIRI%&6Q}V-Lhn}E9`gOw(rA1mn3riQ5)7lO~i`P?3EF;g-2wf{xYtE zwZe;0V$qES-4)1)nqd!U+j_NN{z2k+lUaa}DwF69^?qBLOO}twj)4Oyob#OF)-A3A zV;U_#Z0{2{%ypNC5Hry(zPUU!<9Dh~x-$dh&6VUPVz@KQwvIYGDP7C7-0#d)IFE0N z9a`Whef}b&H(g1HC>4}q>D1)3w_q49Kibg8>jM73au4=0W*7J*f4plI|N7V}+by=f zD5cGmdcP5(rm8je_^CvBs_aVndgKB(voGt8E=g1M3s3{1Sf23p~x|hM-*d5JiJ=0{!50M`4 z`D4vBX3#(NYl`A%sVwIcq+pKT+L|R|ayXCpYiUG4g4yx0-Pna2GRSVG#hu64zi6bL z3@I&rA7vq}O8v~$FuZ8q?4cdA*1OMFK74E#Pu7T5izPYMoz zD_EPEU*@Y2`@=$nZj+M~pwl)atEf7$_j2U0%|CQ>IyL99Ph^DjCB?au<(Kg++$owG zx1YGFZYdT#4>lUE^gYTTz!^@LDb_UKOIeWwx4!c=U)ANXcJz2F)8YO0*PMT!8nMpQ zK43YRM%%dM!eJ+^$B>}?XU|3lOFm8UyxOw4k0Z}v!zyjSMjffbvX?O}IILsSH4Xh( z)e&ncT7QuAQ@racSzVZgZ-i!7U6Uc?)U{3zbPbM7KjuP*86iP!6)g7}Lkla<_mJux znmwaTpG{I7I{E)k{LS+Bf0zx7vwppF8df-$qp_Wut4?W-I4MVxQTivT`+#ezU)jU= zjq`gAC89Ui;|qmJNeFZ;TN_{e9yy%wGh?b$ZG~~x1j=ZAb^&Hu@m6cf=1t*yK-n)! z!-<11hZSpq&N7Gev%a20QjJYNW}l7v57$1|e$2jS*c={S8Ry2qk7&rsN$z5Y%qDSP zP&Y&;ymxwG%}Je|VhO^}l=ly?pkP0jGq?_DkDp$RZKjFojdEu!Kn${ZXhczwMqbLT z=)Pq33P#Hc%K$(SA}rvBTgLVs@^<@i+!5pJ_?-z-1!*n~x5~kxg`}$E zCkIS`Z2SMf5wlbBB^R=Z#X8^`p;CzN`=E7YwXmkwIqXq9#T@f5;nECHE(M0!iG_H< zRz`~KpWcuDa|oV($4e*#6`7E9U0a4QEp=SK;=19l$*Uq1z5$8);H@vtcd8y`D%oeV z2VfpBec5qn|3Ncw{+Q>ED_p+8Mgo%vg%u#Os#S*fil%A2zbh2SI z&M#nB`tBm$q<&abBa}~p4lgNtS2)X>Zzg;aO&}jrs#6NYa%u8PAG75Wf_lElT`uZR8oZf@1akpKhc)e381qXDrBpWR!IQrS-KL#@(eabP^ zBr#JL(bh5j&Ft8D@biL~NLo3b1`7C@iN5`|6@lHr_HCM{;AD2j_$Ml`Q>jF@bP{9q z9Cul>Fv=NgXOr^zIU*DmaqD)y8q}0F5PeV;YcAnYvV~;At@8y$TJ~4Oyv{bev8%g3 z<5y~()sGA)CDL4#2vx)xc6t;bh%-R3woBx?1TzrX{#l`f@2S$swRrR%`V_9{eH+(U zyV@dXYw}MiZzuEALL4e+O+i@OR1f3l^J$nhCUeqVvo|uxHW$u^kw06NKjc#kVP$k+ zX90YDm+JzmO4U-FF(ZbTDIH*-BS3JcN9{+q*i^x_04C2up(zEDmE?cNXP61pG4>3;H5T>psTSpu}9I3v40co^Df97 zO+IqR3fiqkLF372IjNz7nuK389FD_QNNE8UEfmBq2HM^K(F2mH2}2n@ z6C3jW6NhKq=L)dds`y5kx@{wvEoPhw$dJJm8Nc*=;yNwy{7DmyKL3pd`;+RU!i`=6 zN^c%R=hVg!d1$uQ=e5$RoyJr0jwG=+TaSN0%DSW0-`8)q`wcBgIa4eZ>RK*c=nAwZ zWy@_zYC6Id0^So2#)Wgcobg$ojG6&6sVUb;>1QFkh=v)%y6;Y;L?fM@1HBPVsrL@Z z=XPLn-|EQslr$6O2qF}W>=m&*vh$|UR1h|0us+mpiyii>d9>UhgdJs^ozbg|P>CmO z@rQqHwK8vAW}}k3OKtB@wUCr943R4Er0%hR zRQ7Z%X25{$uf)7nGS7cH4g|Cd%YT}cs7kx-#IkM#4?cOKvKVeWsV)4j2`>Bv{kU0) z?xPjgqnNJ5QCQ62hZ1$|Hk6Ul(v5$XO>Hhz;|I!);M=&z>i1e|j1@B#c{5(qtCCb5 z_Ni|JWACLcME$gXJLM&!l6B^|ECbt*nV5cL$(^g;+V7VUrwb@zCAo#rJ79NA7lz&foVf*>`F#j^COXXdEp^~kmVe>Ny z!y?M%-}WZO*V2v$)<>Ft7!q8Y*?()+o0Fz8{srFa;l{&lxPm_Nt>Kxw%&mpDkT}sa zV^(?*jF^a6RLdidH%f0zD9qY&S}>|VY{Zh3J9T%&sYF#yT01?UxXrNb87^T?tVafcBFPu_KNjVhSE6UH zqa*1#DCLY|0N$LdxIa2u^sCoG6wf#0&C+89ayOrrunZNastZ6b^_A;Z5t^M&2HYbj$UlyuZ&2i{^>#|0<|b@&A-^*-wH^Lpdy?fLL zR)~b+ekNG<*6YiBYikHy3$W&@Tt+^7n0fybkCL{K40cXjlAFs>gX~ z7otD1b%m}(#pCm}{_`z4{t=lcm!m0*x9ve7`~gvVYe&|-6eIt-^8ron4=)jqJCKPw zWjSZbZ7bq7)hs+w zX&rB}tE{!crL+$^dBW6E<=FhAL60jCpc7K@zyk~nYXTWv7||QXhF)vgTuBx8wi=9b z+uC}#|30QF>T+NxZdp0sVY5bgnq$7TFDJ&4e*LQaOiPV?ThyngD5ktr&E;rl8~4VZ zBQ{L(6w6j+Yw4VLm%S84DY|m)+UQHU>JT_v`_FEXr}EbCRi=;T$C9S~n`>eZNZ;S7 zAdo=lFd1Mg_@5s3-T@#L!gC>6MVCGM`N{$+pO+Wi8w|!NMQL9lO#e%uQLn)CX&{eR zTXHB7=2kT?cjou*Xb*KVT1B+Y#S_^8Z_yC)^(Di}Jsb7L0*Cog0YvesIBtUP*9OX|pJ)v~x8YS~kKlakk3 zF3KQRfM^;d*L_rN;J10Rsh{9ndne0s8g!IM=s&#&CE|&F^F0d5VMiGD9#8rLK{^*tLGSa#Vt4(=}AmH>nvy( zu79rgbyyK?XOYw#U5W6D7MuPN!Evf2K3`qJbk@6Pk@$muT9jY#0LvL_PvuX3KAgz@ zIUUb`=}oOrZrfgg6)kFJLe3W1O`*LgO?6*HD9QD`AcM9zD!7dx%nvdExV zaV|A~db45JI98gg`&DTc^uL~@3nYH7FdN{vMk@S{cWTs)yi(NZ1#Wh4hV=c-o=I4E zi_V@Bp6p^;cwO3`R3h$8Z#vRc;b%r+ZuhP6V z)P*ZVBH#Ihe@yV()1xv$oc5+1&&GIZ_P;#+P@r$n2h@Xien|d}^0R!cAyu`@z8$sp z&NxO@ciB7y7%QAnh426DirK#dibrm|=mdrbkJcX)m!tYro)nfgwgSvdU`vyVl9@Qa ztQkLNOIk_u&cTfmwqJ#x?~=YrC481J>A0_OqUa^m;K{wskWlA~zg~n6fZPX2Hs~~C zq$@{US)tYV0zbVJ>V{*N8AM?8_p*#2z(BvcG&(p>R}D+N43we;ck;Tk`IK8&{O#6) zQ{h&jmx`i*y}#}dJ78{%fn&S0wTggSOH(!MJ6B8BZ1|Ab1UuDXmjUDFY^^js?=$YF zXdE_^d!7Tp1M!a;W-G?9PYZ|x@6T7*>Bi% zCbK>EAUl8AzU0djB{ZHlaDf|6|2ePo0`cWNvIc>L6AK2yTvEYz5&+y}u%xC6{mu+V zSicQhSll!t+%YccK$h4>Y8oezsj}xM0wDZ!x$~cTAe=O%scr$#%M_I<|KMgc_8x{W z$V%Q@E7Xm+%b_Hot2AkiV-L`^VQw0T_kUtDeYO9GTmM{-zaaVft#FuCAlp)|2z@iH z=nAqdUbMt^icKl&zQ*Of!M|IFyS$TG8a~5gHc*8JH+Z{6^w+dvkB>2Cm$oUeI|$J8 zS9bG!V|>Djhc4P7r!pPc7ZG1&d-WV>G3|<3VLsJ-4c-5koZ?y+2IYy!$)COHAMI!J zq%l$h!+6lg33=D!tI?08LU`GHD21JVm|yN*Rz!O2!jay zzcCZFzMhNTTQ2x~I06)8A2-;Ke4^PrE=0cTEU({O2}K)s<=tG1l#@=!0%SD#x|HuN zQddJgMLrZtYow>zy;MtKX+Ly^HHFtgxE*%sj)=ueu&{>#up+O$U41_u%3Z?lP=f+E z>}dLNvnYDn`VU}mXKy7suA87|3kMPDl%+HrpoG}~ih{fkG*6GvWgk}jvvRPVVcvH_ z4RVr3uF{WX*!2q1q*vZXz2EQcKi%aRa!pt)F$gci=hD8}03S0?Yln!&tn$MQ4 z=)HVX2FYgL4AquM@;)$U*47!<(jS)>DR@?M#IP8b7yaJ@D;EYW`-+%dsK+PS1#;@x zZJxd?#8rb(sRmNTs zpN636mJTZ&6kPR?kfN16=`sIKoy=&ULV?0BDr4LjMF!5iA=!$nu-<(uEYA*hbT$db ziV$Sf=iH^wRE$RAq5jS@>-_JVmafg*-5>#D0vc#n?=F#MT$IIPdknL@MQyaFtUyud zDZ_+3d&=U-@&UtUJJVIcgWG}hne-!&4BiDxVHmh+g)7#ey)J+&t$k()PAP9dK)TrZ zodAbPwGi*&;cu#F2HvW@Lj!`*!hy2`$3$G-l)v(7flN@<@3qx*X~CYoU%o@0`H{w| zvUNd6Z=qk_(=66O|GKhep)_mqfZzXm#3uqs76Q8Nu8V=z1B=aWAotIMgUcems*v04|80!;Fid>7AI1gM~0aR|t z;{uTPu=&2>(wf6(xBzlT`T!gc~OagXk($DlwO0LkA;h8U@fkuLLER^ zVKuYGggTCL%qwlI>^_(I&!@WvZpiQC?uS4Bq!jYzv2p!L8j$` zs$&$1Ax_Pa%a@&!rwv_SQDpzHI~Y+t2pJ>~eN=tq_h)R1?}S_}K?wE_5RiQb9NmbB zW3C0C?e!y}Obc5{y}GA&@*`0R$@=j9m;dtl>Mw#w#YoGjb5hl8y=#?|8tUt@W~(2$ z)J~^PPtyacjx`@12DqVvq({QVe@n59k%x^Mx|YllcJ2>BNH%v0NMnCoP#ie(1iYRo zwI(ZlgWWaCFi^qxAgut)s!vm34{M-@>;ObxOKX471{48a8L3j9#kn7f%<1+CCn!8s z{8JS=Roj)gHMb0p3}Ck;726WdTGm0Vrc;3{ycxkvR8WTQDZ1bt)KyQVPnY65Vn-=-nK5kaA!M^ z2g3-s{{S%==i#A?zaKJtX-&XuO~$pQ2#`+G#DyIob?E_cQrjb)kHDT^QU|Ds4!)rlf9H^NRe~9 zkogKiK=L=&@ihoqXmh=?sF#yg2=Ez+q|Wy#~*LI=_q?bXJJVWGx3zA8Al8uzdeYE4Dp3!)Pn=BQH4$H`|+-?0Mqh za4)un>=VA{n#YY zHT{dacefGj9nRTuWLex#g~6T4iu4B`-gsYgzpd-7t%2jg_P{*yU3K8lEnGO2mPK^7 zG5W+_JZj|ML98qv{moe%5{t_NB6q+fu9HbzNK-ETofdWuuzM{Lwf5=%JfmSTclf^F zYt8(rY(RHm4Kgw4_tD4Vz~pcsF|x}xf0<{;923eBBZLHI!D1Sgn=`Ite}fK~GD7~d z)zGpWM>;(I0ln<5)hQ7Tz50p_J{u3AKWr{as9vXBb6sGv7!Waa6@Fvo#i0lc2uO2V zO!VQCH1V~kbS3*olO9t(rjU&7hNK904o9x%qgzqCdwkQ;gN}^*{J8sIuz~CrIpIp3 ze6@UlA|X=wx{X=ghVcr$~}v z5#n!N5bnQG%2SOSjlqvgQPgtc=~(Q`E>TQcU_@(xyH;X?w!&j;xA1z^3z*c)^%z0o z$e*xAEK!!qt$&ZEc*0yY>rU@X-Zc{NFowWQFkeu6>Pm0}HRv-?72NP_MYt{Je2P5Z zXLUH)@1|6;4w*fY&as88WTna@FHW8AH{u*u&bqrS#w3^9c~bu_f{=EKOr0LahS|j| zQheUe`damQzRH0A!Si71ie)gV#P)dVE2i(F+uCy;pwRIaG%s^WlC1Sj@Tqmxv>sEA z8`Q&>+OIz6Lx#8Oo2|{T53D<8bg7)mg@d zy6^|_>}Q`bHzbflZG0IuX*3GFS3)ZK0p{X)M6&B)fQ&EyX@uLeyW{8cMdH)RitanH;Ddmgs`5SyBc>O$-zEi&12BIsN% z2m(hD_GTg^6^JgIkuOf@oy2}e8i8IX9SC7Hf;O;fn^fzT)TjJs;>go8gKyFe=RiYK zr0e!$G%|`0jm+w~tH&YMfvQfChd;go06P_2_}0o+t-(;}0R1{$^E1=vbuQrwnEW6Walor~ZfwfKRh`-j5nid9Gl@jj(260st;g&O_9#+WUrKz`-hK~Whk4!5^ zizs~AcjmTQX{M~m*V8`FVq3wI}t`hH6el#%)?QbyJf$fCb+ z>~Rc=S>e6?YNc=~VA=;x9Mb=P5w>wc-#O-)S)W~BVr3z4nLz$4pMvDVw=%GSobNP> zBEou5GaznyLfD;QX=1nehwUu_InDS1tQD{fvKPoA(0`${6ybO99)0RzeJb=@TUg3C zK-cBOk7+Ksp&$Rl;7B_5hxFBiE1Lw%enNl-@2j|0x$oRv?ze5clOQwdC9GX{!F;4S zJmI*;)!2IUnEWxZ!P*JE=T}G->#o9rHhp#Hyh?aKr}a>wOULG{_Jw94khI#wzorA^ zIf(C2AltEcyk`&ig@Zy#7rbaCMDU?kQ6kXk z-XU^8w@BmTh;`tUa^gD>y5|>=BEb|&?jE$`dmp;j5)o=Ue`4K26%!-?!lE3oHVV8^ znaM&cP&8R;wf4T#MTOvFmoisQ&Jm?^@HV{u`7V2m)rrijA@*MzI0ybhrF8ZD6Q$0v zKL05eRTp}hn@FD0awcGRsyMY0*8C%S+a~)vZd!97EZf>|CJ=kpK`LnZ+eVsF#Dky)$U+AN}0rkIlh6w@nG zqNb|pB()ViQ{^Ey?Hq)bp}00#KB6cewZZWR#07cIO%EhEf()}l0*j~uyC)8^Oa{_O zzp4zASr{E8M_UKw1e{%5h#0b3gJ~1_7{x!Z-_OyOY4b*#0wSVTFfvHX$94Qu$m6CI z`+el|q9^t9qTk!Go`H38(ICm}U4gO?d>Gls6^x7K+*$rcL5nw@UAp{9vF^3uy{L)w z#}#i*#c$b=!9I?S&dwMW<4MuW43N)PhQQN@Q=~&t7NMiK`twQ@XpK-8o#(d5TQ|`+ zrUR0|-CNIrucnP+T8+`C>DjT(yW}jE9`$o4L0LlBCsggp&x%If&ogdlepnCw-J}}i zJZupI(iVw1>`9{qh|-95QfI)ojSD(1W`&_@i3u@}qxiLw8jYR*)sjHlyzW6RF^ni? zWayzir9PdZ{I)pAe0w;x`JOy*dg0ff4elE^V_0@z$a$AR+d2hzq$}!n-SdM8O`;XT zt^lJa@&6W2ytf#_GwHW7m`umX)z?|k3lO-g(fio1wJ#pO zd@zy3C*<5H4uF`3y%&Lh`az|3CxQw(7QIiX3-;=wx)fTrtV`@-C@;_(QF5=J`#f_B zvAkcEAiOgtoHKuiY{*MEDWsv5FPEE@uIYEFIMB82`rwtnzWh$3B9T~lKPkelN%Cek z{?5Dgc%VoYPgKNh9l=I@oF#O!d%6xR0l#KmuPs`3#i>M5iE~gMN9*w*9ioR$a~ckj zrwHtCV?aeqQg50@>8m$gQPihiC@w@AD^l1Z@4L^K(6e4F0Yc zZnUSJIwY~^!0&_tT{C0S!IAuVn+1IFKuG0v#E845#g-9PMyuNA2wNvCl}uUZ{g)to zgD~R@JnuZdRq`4_*iMW4fYQ6tF~Yeka$!)|Tjq<(>d0ewU>?W^}=E&ZY23RZcV71?yisZIZbj$i}Eu%@Fxm=u)9h zdBFnxVfjjLDvCOoW32*U*?QDrfh+|hH9Rg;Y5Z)A^Y2*; zi!N|`vi^}D9IZDpD{DcMesD4h?S{ru@OzLVhHYyW@-?&^NO&vm$`{Nw{%xik+{z5B zs;~}q>J4?ml&D%!+iVl6pS9^!lvLmQMf3&DvLjUxmo-q~Xzg(p%zt_*UZ?X5K}EmO zQ1fh{X0@`n2?Jox;CBO}n-{?Y2A$f&o0R4mZ4Z&$$=Qx~lSImf?!#dbFad{O{_AAJ z{I0*n`=1C+^((sH*^@>I7oKL@#b}63Pw*vk?=k9>nWz^ zI-o*k{y~P9x_~X>A1X*NP)SI+6Sc<*D|#`qMFI(?>ac7$F}rU1KsZL_-FkIzkWDC! zF}^PAh#`v;rAr?dBbt9y_Om&1uaXT|P2On)m4b863&4FbZzWZ+v)q&WhvTip z{re=!Z^Bizs!&NiN?-G!`|b%Q?Jb(SI3tB<0x`k(9EtgpA@(wvLQ=hHAQ%Sz(I}NqjLP1yoU>V zqTp|R)4(rMI$GffMnk6tj}-CCqD1>9Vo{D)Bb3}Bw&`+WsPD)YnSROQ9i5Kcs#Hxp zM2sMz%#E52wo}=X_V{pnYh&PZoS36$v}lZ#e26sg#YoKtzwX+0nj00B8f_NojTS2| zg}v?1{_S)^hYm-P&0um5!hnC0&3N|>xCfe|!(&Y7>UkBB@bz1XIv63>BT5*K?S$*Z zwzJ-ifDKdD9}X8zr5@R{A2VK&SuMf2@@yoYY`4MafM{3n4X{bKe%-Z5$3|p{_Z*B~ zdzAF?{6K`!TXQ^wue@H!NJ7)K69q~j5R9GExAnsQXKChJ!diK`IY2W4AjVLaGPsde z*cGe&7A|bBj9-D@pse>D2@fHE;axhS4yNY8NcdvQAXQ6e96qF10*PE^h2(6OlR}j8 zv%DJA$0@qBh9J1hrTJ5LI`T;1^mtEj_GG-hvdV#nk{qPrkve)G@L%K>??bS(1?*g#=U z@-+^G2+o)g6G!V+?u#F#AfMNjpyKQAPx4EKA3tNdi*I|UwM;FchH!{N3XjnLit z&<>`oSYwNV9O6=?hEvTtg#Tg2gRp0CExD&(W+K3k8h z86huwdi5{N7qs4?fR^ip$8&WY;2QbmKNTwf0os4o+#h#d`-K?~WCsA8kepypj8V_V zX13EsYby1CLQ4A{HnmJ4(b8AyrOcVNc^67#5$+c|HHrRN=~z28fDKJ)LvjEFfH6FY zmyeiE4t;U6Z9`7?YG|vn1l+I2d+WB9+r6I9kSeBpg@tHU9sNP*h`sU;iSuF9ISBFk z<&Wa$F>|49%M?pCyvc49Q4I9X!p6Q@g|Gd2%XRbP`i-FHHb`SujVy(4_#EoNgvrgH z3`t_-+1w2*wUBH!8x?vRGbNozwCEd0-U4Rx{I7ft zDE6n0O&+9>Y`APuCKfDKw`z5V8g@Ys-UCy4_rl={4IzB`99K_}v$lG^&kxGzl`P$i z<^jAOWs1Z*ksG^j8V~tV2>aKQxq`LskDS_2j=(FFBHo7O5)}imPPLXU-eH!%WB^a( z)<>5CYFaRi8{Az9lea$mH`o~^8U26YwLJv{A1@ejN-TuFhdfFtgW}QgjP$)t-YK)yX8YA(N9X9mkS>G57 zE~O1m)Y34t{8jqt?gmP0n@Kaws!Dq`$;w<3kSnhgoT#c=;t{{4C7xbMX^)>0rgEeH z9}$D3G2E@4bcL`w|9>FjF~k446hEs1HoSnbpi^WTcD+@_sIg-r_ApLy_1;go2RUiy z`vgVJ=Cj1GE7a*VauGl<+|a(>6pDl_KMtV8J4HxPH8w1z*-u~Av^R}8w4iURb~w-q zEtti(XqvE_{%tlhl=t%3M%5Z!$j`~u6@v`&c-N@AQvDO0QPjCl)!OnB?LWc)A5U)?6i3@e>jJ?wK!6Y|*x(S{ zVQ_bM0>Oj3dvJFrI1KLY65O5O?gaPK@3+t1Kf0=aO-)tL^exX?*Mgx-LH@o`EG{qT zcO%1LY9jFa?4}PnGdN~NzXjJX>`sJodE(o|+_Ml8B zKFS$t9sAb;=9dk)N#G1g!@u_Fj(amrlkM#o>a6`y=YOcr|8SqEvym*_4C-MUo$yMW)m19MY)khdDeu8$xP{S|uGd$4!m_dhv+Gada& zpgGXbQJ#6pZciXkoVyj=3a&nC_S9A136Sh8ENd zYgbL~*b+5e3BFQYo9?0laa<-_t)q!*Kw4+?3*3>O1)G{-jjCS*a=(WLRJtY+4S__M zvD7ST$CE}hW+`X#T6yA;*F#Tw(<4q~<%mJ{$b+!w<1x`Vyb^O)GZJunwEMPYtjzyzJSc~nw1 z4~Yk~*@BvNc>Mp?A|9qg2)SO`2#2axX}sF9dW%<;+C2z+>kjn!JWaNy={`(m<3Bh* z0})}a#kL6M4UI7_p>W8})KF0GH&UWPs&@p?=AABnxN{D?LQGKgYHXG)8K&b@Sj5aq z&}>lIjL*`@f@@Wc_j-vS7DkWcD)N5{9qvO6}PhnKHEL`=b+wG zjypqM*eXSOo3CU92WyK%MQXf5#x~|Z?c=i1YV9c6!78^{9^ddYdwd-A4ry7OyK1Ao zAy~LEDl#W_pH4?aw2bbfYXzF}85QdUQ7ncxO^u1z)72Z#&w>nK#~lBR6X7*oys7pp z3ZUk&y!1J%9+@c7k~q=*vMl9Gct1r^l3)e5W&N(lO5C6yxF^}5qiP>8he@EqTJ!j# z6V1QhiSutDTO>CnlLEH4ls;d%9PuXJ#++j>xGcGuqwe1TBhDzJ;asC5o4YNUugu|O zYeLSyBzaH5NAJCP6G;@|j?zzo72&iQ(b5_I$Qe>$jm!jMN z+Dn3e*v1qEP3EUfQs}-MY-85zs%0aAJ%^0Z0jBTtoUuL{*y_A9()2vSVxJ?Y$cEMY zSO636;;Pv_#^!(K!6b*ySB(D)%8%WJt@+8SQ+QCIZ;~6{Q&o~_nT>zTSGIsfT|0?e z^7cIn1_Z?a(4EH_JUKd|TcQ;JFnkWL#3?i*JTPdZ5MId~Bd<5jG-9;~6{aK!~#!Ox5>&MR88 ze7q$?0(sBGpmG^pxn8_$s+4KBUkW=L?+gCxACj+cHQD*7ybZIr)}blNU#1Z?fp3mIpy*< zd&Du#PV775qdU03=f3|Kz2>jgCP-x=3eQN?c+EsQ>c;Dg;wz)y_kNipS-fn<^+Fhp z+uc(f``j-+0ch)O)R_f2bACevi^rRHZkKMW)pt;+6IgB05r^MJ7YP>zAZSm7j+ocPP{}CbJ%&h=9&g%rX`J{Zb%oh{p*YD zQLOM-{v(jDB%q;wZ_ky;^-tYt zWqiE)R!P!QXk5&=MhST41frVMB(Dl_S3d`dF?b@Ya>?cmLo!;&4u z6;`o5R!A1D_-EuTUMG3hz_;QjUIpoY+&Lc)QsG`OF6>{%ec6aw8TWlU)0l3)z5gQ; z_g0o}qT6$7D~GP9?xD8x>S^SUaIR5B>##MI@ zcJz`z38-zY9($~11 zEuCxgxC(O0y7(nII0{=vN)r{Dv)OQq8OntBBlc`g;o?nV=4c|%PH_$E!U9DYdWX-r zl0|vUcXOH2XSHHgLTnlMb^1mkSh@|$Kc^GS*h@M?4N~bdJ@iLf=?rR)N3dOdtWA!4 zik&pwvJaUN9%E9M+ljc71Y7QhsB8!w)w6aJc;S&p!5SvhU+71JBwl?=ogin$$B577 z#ZYGdMZ0`|i3=Gh!oiaCx~^j(N9d&8UQ(fJy8yRoA%uPD3<;VBjH-!pitpY*=zxjU z@52{90*_rv>N}Aes}F2B>(5u`j-T&sT7uBIqBKr^uHWeloQ#`pZnKBI1 zpB;Y6$09y7e7}{T|LYx9xzmWXVvXsam5jA!LKMf}ggwm~5?lFANyg{;l`z)`CjdXXa!UFYnEi$c5T%xX zRn=qu(-q&@cXV$W)?BIA8+%1aDzj~L8DlXnU5LKGqSA5!_%L}{5dH;j`X;B|PTjM0+JAYEwbbt8tbTiz)>WJQ%eSK+{ z1!6L!iLkqH^#tJa8@ zDol~h*ljUN7*6;RDIJ`8sf_lc6sl%C56C^gxr~BtW&E>0euwQw<@^y}AW;)E!kDl46n(;UOC&+Ml(WuX3en?GG(>oWoV7Fln#0CQW57- z6$4VpbiuHp5(08fCmVig-1OI~Qk?wdpmn3E02SN}_^C*{TWrLr9RG;PA3!0c^IKT6 zrHN|CoB88t101&iewhsq3^udPJs?-+|4nRYYFj_&m01cZmrI^V5`X9Gz9!mEr-%B! zC{Ct`RliDNk}{<1e5na7GTQrm%R>0<47Fm(E2>jPkz|=|f5Pr(n$itK1t(V*0)4Pe z>9PmUFu6T8aTtMBcbde=7d~b6on<2&pdh|oLX89VxixLuVv7+_dec%~*∓bG483 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

  • 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%0Dbb}ID3NhMB&t^bU10^x{BN6(UG)0J4r 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

    j^;uC=mXgAY63*sYV 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ઙvR3`?`scex4pgiz&7&N}mkexlGq@UIYUO@; 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�K>d&>2 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

    !)h#!_SQ$7%o1QoS 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

    K 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

    XPEb`tWN?a9}BMrl`B-`UesC$CUE3;8h2fJm7c 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 z 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șFgilxn9Yw!CpbR9$W!{z0? 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'); + sync(); + modal.hidden = true; + } + + function openModal() { + modal.hidden = false; + var lib = document.getElementById('fxLib'); + lib.innerHTML = '加载中…'; + fetch(window.__PB_MEDIA__) + .then(function (r) { return r.json(); }) + .then(function (j) { + lib.innerHTML = ''; + var items = (j && j.items) || []; + if (!items.length) { lib.innerHTML = '暂无素材,先上传'; return; } + items.forEach(function (it) { + var img = document.createElement('img'); + img.src = it.url; img.title = it.name; + img.addEventListener('click', function () { insertImg(it.url); }); + lib.appendChild(img); + }); + }) + .catch(function () { lib.innerHTML = '加载失败'; }); + } + + // 上传图片 + var up = document.getElementById('fxUp'); + if (up) up.addEventListener('change', function () { + var file = this.files && this.files[0]; + if (!file) return; + var fd = new FormData(); + fd.append('file', file); + fetch(window.__PB_UPLOAD__, { method: 'POST', body: fd, headers: { 'X-CSRF-TOKEN': window.__PB_CSRF__ } }) + .then(function (r) { return r.json(); }) + .then(function (j) { + if (j && j.ok) { insertImg(j.url); openModal(); } + else alert((j && j.msg) || '上传失败'); + }) + .catch(function () { alert('上传失败,请重试'); }); + this.value = ''; + }); +})(); diff --git a/public/assets/js/main.js b/public/assets/js/main.js new file mode 100644 index 0000000..86e1779 --- /dev/null +++ b/public/assets/js/main.js @@ -0,0 +1,55 @@ +/* 酷冰甲降温服 · 前台交互 */ +(function () { + 'use strict'; + + // 明暗切换 + var root = document.documentElement; + var toggle = document.getElementById('themeToggle'); + if (toggle) { + toggle.addEventListener('click', function () { + var cur = root.getAttribute('data-theme') === 'dark' ? 'light' : 'dark'; + root.setAttribute('data-theme', cur); + try { localStorage.setItem('site_theme', cur); } catch (e) {} + }); + } + + // 滚动时 header 阴影 + var header = document.getElementById('siteHeader'); + function onScroll() { + if (header) header.classList.toggle('scrolled', window.scrollY > 10); + } + window.addEventListener('scroll', onScroll, { passive: true }); + onScroll(); + + // 移动端菜单 + var burger = document.getElementById('navBurger'); + var links = document.getElementById('navLinks'); + if (burger && links) { + burger.addEventListener('click', function () { links.classList.toggle('open'); }); + links.addEventListener('click', function (e) { + if (e.target.tagName === 'A') links.classList.remove('open'); + }); + } + + // 滚动揭示 + var io = new IntersectionObserver(function (entries) { + entries.forEach(function (en) { + if (en.isIntersecting) { en.target.classList.add('in'); io.unobserve(en.target); } + }); + }, { threshold: 0.12 }); + document.querySelectorAll('.reveal').forEach(function (el, i) { + el.style.transitionDelay = (i % 6) * 60 + 'ms'; + io.observe(el); + }); + + // 磁性按钮 + document.querySelectorAll('.magnetic').forEach(function (el) { + el.addEventListener('mousemove', function (e) { + var r = el.getBoundingClientRect(); + var x = e.clientX - r.left - r.width / 2; + var y = e.clientY - r.top - r.height / 2; + el.style.transform = 'translate(' + x * 0.18 + 'px,' + y * 0.28 + 'px)'; + }); + el.addEventListener('mouseleave', function () { el.style.transform = ''; }); + }); +})(); diff --git a/public/assets/js/page-builder.js b/public/assets/js/page-builder.js new file mode 100644 index 0000000..c9c5f72 --- /dev/null +++ b/public/assets/js/page-builder.js @@ -0,0 +1,495 @@ +/* 可视化页面编辑器(可复用):三栏布局(图标栏 | 编辑画布 | 标签页右栏) + * 右栏:预览(只读实时模拟)/ 属性 / 素材(可删除) + * 支持元素类型:text 文字, image 图片, button 链接按钮, buy 产品购买, price 产品价格, specs 产品规格 + * 对齐:左/中/右 + 竖(文字=竖排 writing-mode,图片=垂直居中) + * 依赖全局(由后台 partial 注入): + * __PB_INIT__ 初始布局数组 + * __PB_MODULE__ page|product|news|case|category + * __PB_MEDIA__ 素材列表接口 + * __PB_UPLOAD__ 上传接口 + * __PB_DELETE__ 删除接口前缀(拼接文件名) + * __PB_CSRF__ CSRF 令牌 + */ +(function () { + 'use strict'; + var STAGE_W = 720; + var stage = document.getElementById('pbStage'); + if (!stage) return; + var MODULE = (window.__PB_MODULE__ || 'page'); + + var elements = Array.isArray(window.__PB_INIT__) ? window.__PB_INIT__.slice() : []; + var selectedId = null; + var zCounter = elements.reduce(function (m, e) { return Math.max(m, e.z || 0); }, 0); + + function uid() { return 'el_' + Date.now().toString(36) + Math.floor(Math.random() * 1e4).toString(36); } + function nextZ() { return ++zCounter; } + function findEl(id) { for (var i = 0; i < elements.length; i++) if (elements[i].id === id) return elements[i]; return null; } + function nodeOf(id) { return stage.querySelector('[data-id="' + id + '"]'); } + function ptOf(ev) { return ev.touches && ev.touches[0] ? ev.touches[0] : ev; } + function on(id, evt, fn) { var el = document.getElementById(id); if (el) el.addEventListener(evt, fn); } + + /* ---------- 对齐样式(文字:text-align + 竖排;图片:flex 水平 + 垂直居中) ---------- */ + function styleAlign(el, node) { + node.style.textAlign = ''; + node.style.writingMode = ''; + node.style.display = ''; + node.style.flexDirection = ''; + node.style.alignItems = ''; + node.style.justifyContent = ''; + if (el.type === 'image') { + node.style.display = 'flex'; + node.style.flexDirection = 'column'; + node.style.alignItems = (el.align === 'center') ? 'center' : (el.align === 'right') ? 'flex-end' : 'flex-start'; + node.style.justifyContent = el.v ? 'center' : 'flex-start'; + } else if (el.type === 'text') { + node.style.textAlign = el.align || 'left'; + if (el.v) node.style.writingMode = 'vertical-rl'; + } + } + + /* ---------- 通用指针拖拽(鼠标 + 触摸) ---------- */ + function onPointer(ev, handlers) { + ev.preventDefault(); + var move = function (e) { if (handlers.move) handlers.move(ptOf(e)); }; + var up = function () { + document.removeEventListener('mousemove', move); + document.removeEventListener('mouseup', up); + document.removeEventListener('touchmove', move); + document.removeEventListener('touchend', up); + if (handlers.end) handlers.end(); + }; + document.addEventListener('mousemove', move); + document.addEventListener('mouseup', up); + document.addEventListener('touchmove', move, { passive: false }); + document.addEventListener('touchend', up); + if (handlers.start) handlers.start(ptOf(ev)); + } + + /* ---------- 构建元素内部内容 ---------- */ + function buildInner(el) { + if (el.type === 'image') { + var im = document.createElement('img'); + im.className = 'pb-img'; im.src = el.src || ''; im.alt = ''; im.draggable = false; + im.addEventListener('load', updateStageSize); + return im; + } + if (el.type === 'button' || el.type === 'buy') { + var a = document.createElement('a'); + a.className = 'pb-static pb-btn-prev' + (el.type === 'buy' ? ' pb-buy' : ''); + a.textContent = el.type === 'buy' ? '立即购买' : (el.text || '按钮'); + if (el.type === 'button') { + if (el.bg) a.style.background = el.bg; + if (el.tc) a.style.color = el.tc; + a.style.fontSize = (el.size === 'lg' ? '18px' : el.size === 'sm' ? '13px' : '15px'); + } + return a; + } + if (el.type === 'price') { + var d = document.createElement('div'); + d.className = 'pb-static pb-price-prev'; + d.textContent = '¥ — 起/套'; + if (el.color) d.style.color = el.color; + return d; + } + if (el.type === 'specs') { + var t = document.createElement('div'); + t.className = 'pb-static pb-specs-prev'; + t.innerHTML = '

    '; + return t; + } + var tx = document.createElement('div'); + tx.className = 'pb-text'; + tx.textContent = el.text != null ? el.text : ''; + tx.style.fontSize = (el.fontSize || 18) + 'px'; + tx.style.color = el.color || '#0f172a'; + tx.style.fontWeight = el.bold ? '700' : '400'; + tx.style.textAlign = el.align || 'left'; + tx.style.lineHeight = '1.4'; + return tx; + } + + /* ---------- 渲染单个元素 ---------- */ + function renderEl(el) { + var wrap = document.createElement('div'); + wrap.className = 'pb-el'; + wrap.setAttribute('data-id', el.id); + wrap.style.left = (el.x || 0) + 'px'; + wrap.style.top = (el.y || 0) + 'px'; + wrap.style.width = (el.w || 200) + 'px'; + wrap.style.zIndex = el.z || 1; + wrap.appendChild(buildInner(el)); + styleAlign(el, wrap); + + var h = document.createElement('span'); + h.className = 'pb-handle'; + h.addEventListener('mousedown', function (e) { startResize(e, el); }); + h.addEventListener('touchstart', function (e) { startResize(e, el); }, { passive: false }); + wrap.appendChild(h); + + wrap.addEventListener('mousedown', function (e) { startDrag(e, el); }); + wrap.addEventListener('touchstart', function (e) { startDrag(e, el); }, { passive: false }); + wrap.addEventListener('click', function (e) { e.stopPropagation(); selectEl(el.id); }); + if (el.type === 'text') { + wrap.addEventListener('dblclick', function (e) { e.stopPropagation(); startEdit(el, wrap.firstChild); }); + } + return wrap; + } + + function renderAll() { + stage.innerHTML = ''; + elements.forEach(function (el) { stage.appendChild(renderEl(el)); }); + if (selectedId && nodeOf(selectedId)) nodeOf(selectedId).classList.add('sel'); + updateStageSize(); + renderPreview(); + } + + /* 画布高度自适应:容纳所有元素底部 */ + function updateStageSize() { + var maxB = 480; + elements.forEach(function (el) { + var n = nodeOf(el.id); + if (!n) return; + var b = (el.y || 0) + n.offsetHeight; + if (b > maxB) maxB = b; + }); + stage.style.minHeight = maxB + 'px'; + } + + function applyEl(el) { + var n = nodeOf(el.id); + if (!n) return; + n.style.width = (el.w || 200) + 'px'; + styleAlign(el, n); + var inner = n.firstChild; + if (el.type === 'image') { + inner.src = el.src || ''; + } else if (el.type === 'text') { + inner.textContent = el.text != null ? el.text : ''; + inner.style.fontSize = (el.fontSize || 18) + 'px'; + inner.style.color = el.color || '#0f172a'; + inner.style.fontWeight = el.bold ? '700' : '400'; + inner.style.textAlign = el.align || 'left'; + inner.style.writingMode = el.v ? 'vertical-rl' : ''; + } else if (el.type === 'button') { + inner.textContent = el.text || '按钮'; + if (el.bg) inner.style.background = el.bg; + if (el.tc) inner.style.color = el.tc; + inner.style.fontSize = (el.size === 'lg' ? '18px' : el.size === 'sm' ? '13px' : '15px'); + } else if (el.type === 'price') { + if (el.color) inner.style.color = el.color; + } + updateStageSize(); + renderPreview(); + } + + /* ---------- 拖拽移动 ---------- */ + function startDrag(e, el) { + if (e.target && e.target.classList.contains('pb-handle')) return; + e.stopPropagation(); + selectEl(el.id); + var p = ptOf(e); + var sx = p.clientX, sy = p.clientY, ox = el.x || 0, oy = el.y || 0; + onPointer(e, { + move: function (p2) { + el.x = Math.max(0, ox + (p2.clientX - sx)); + el.y = Math.max(0, oy + (p2.clientY - sy)); + var n = nodeOf(el.id); + if (n) { n.style.left = el.x + 'px'; n.style.top = el.y + 'px'; } + } + }); + } + + /* ---------- 缩放(右下角) ---------- */ + function startResize(e, el) { + e.stopPropagation(); e.preventDefault(); + selectEl(el.id); + var p = ptOf(e); + var sx = p.clientX, sw = el.w || 200; + onPointer(e, { + move: function (p2) { + el.w = Math.max(40, sw + (p2.clientX - sx)); + var n = nodeOf(el.id); + if (n) n.style.width = el.w + 'px'; + } + }); + } + + /* ---------- 双击编辑文字 ---------- */ + function startEdit(el, node) { + node.setAttribute('contenteditable', 'true'); + node.focus(); + try { document.getSelection().selectAllChildren(node); } catch (x) {} + function done() { + node.removeAttribute('contenteditable'); + el.text = node.textContent; + node.removeEventListener('blur', done); + if (selectedId === el.id) { syncProps(); renderPreview(); } + } + node.addEventListener('blur', done); + } + + /* ---------- 选中 / 属性面板 ---------- */ + function selectEl(id) { + selectedId = id; + Array.prototype.forEach.call(stage.querySelectorAll('.pb-el'), function (n) { + n.classList.toggle('sel', n.getAttribute('data-id') === id); + }); + renderProps(findEl(id)); + if (id) switchTab('props'); + } + + function alignGroup(el, types) { + var html = '
    '; + html += ''; + html += ''; + html += ''; + html += ''; + html += '
    '; + return html; + } + function wireAlign(el) { + document.querySelectorAll('#pbPropsBody .pb-ab').forEach(function (b) { + var a = b.getAttribute('data-a'); + var on = (a === 'v') ? !!el.v : ((el.align || 'left') === a); + b.classList.toggle('active', on); + b.onclick = function () { + if (a === 'v') el.v = !el.v; else el.align = a; + wireAlign(el); applyEl(el); renderPreview(); + }; + }); + } + + function renderProps(el) { + var body = document.getElementById('pbPropsBody'); + if (!el) { body.className = 'pb-empty'; body.textContent = '在画布中选择一个元素以编辑属性'; return; } + body.className = ''; + if (el.type === 'text') { + body.innerHTML = + '' + + '' + + '' + + '' + + alignGroup(el) + + ''; + document.getElementById('pp_text').value = el.text != null ? el.text : ''; + document.getElementById('pp_size').value = el.fontSize || 18; + document.getElementById('pp_color').value = el.color || '#0f172a'; + document.getElementById('pp_bold').checked = !!el.bold; + bind('pp_text', 'input', function (v) { el.text = v; applyEl(el); }); + bind('pp_size', 'input', function (v) { el.fontSize = parseInt(v, 10) || 18; applyEl(el); }); + bind('pp_color', 'input', function (v) { el.color = v; applyEl(el); }); + bind('pp_bold', 'change', function (v) { el.bold = !!v; applyEl(el); }); + wireAlign(el); + } else if (el.type === 'image') { + body.innerHTML = + '' + + alignGroup(el) + + '
    ' + + ''; + document.getElementById('pp_w').value = el.w || 200; + bind('pp_w', 'input', function (v) { el.w = Math.max(40, parseInt(v, 10) || 200); applyEl(el); }); + fillLib(document.getElementById('pp_lib'), function (url) { el.src = url; applyEl(el); }); + wireAlign(el); + } else if (el.type === 'button') { + body.innerHTML = + '' + + '' + + '' + + '' + + '' + + ''; + document.getElementById('pp_text').value = el.text || '按钮'; + document.getElementById('pp_href').value = el.href || ''; + document.getElementById('pp_bg').value = el.bg || '#0ea5e9'; + document.getElementById('pp_tc').value = el.tc || '#ffffff'; + document.getElementById('pp_size').value = el.size || 'md'; + bind('pp_text', 'input', function (v) { el.text = v; applyEl(el); }); + bind('pp_href', 'input', function (v) { el.href = v; }); + bind('pp_bg', 'input', function (v) { el.bg = v; applyEl(el); }); + bind('pp_tc', 'input', function (v) { el.tc = v; applyEl(el); }); + bind('pp_size', 'change', function (v) { el.size = v; applyEl(el); }); + } else if (el.type === 'price') { + body.innerHTML = + '

    自动显示本产品「价格」,无需填写。

    ' + + '' + + ''; + document.getElementById('pp_color').value = el.color || '#0f172a'; + bind('pp_color', 'input', function (v) { el.color = v; applyEl(el); }); + } else if (el.type === 'buy') { + body.innerHTML = '

    自动链接到本产品的「立即购买」下单页。

    '; + } else if (el.type === 'specs') { + body.innerHTML = '

    自动显示本产品的「规格参数」。

    '; + } + var del = document.getElementById('pp_del'); + if (del) del.addEventListener('click', function () { removeEl(el.id); }); + } + + function bind(id, evt, fn) { + var el = document.getElementById(id); + if (!el) return; + el.addEventListener(evt, function () { fn(el.value !== undefined ? el.value : el.checked); }); + } + function syncProps() { var el = findEl(selectedId); if (el) renderProps(el); } + + function removeEl(id) { + elements = elements.filter(function (e) { return e.id !== id; }); + if (selectedId === id) selectedId = null; + renderAll(); + switchTab('preview'); + if (!selectedId) renderProps(null); + } + + /* ---------- 标签页切换 ---------- */ + function switchTab(name) { + document.querySelectorAll('.pb-tab').forEach(function (t) { + t.classList.toggle('active', t.getAttribute('data-tab') === name); + }); + var panes = { preview: 'panePreview', props: 'paneProps', material: 'paneMaterial' }; + Object.keys(panes).forEach(function (k) { + document.getElementById(panes[k]).classList.toggle('hidden', k !== name); + }); + if (name === 'preview') fitPreview(); + } + document.querySelectorAll('.pb-tab').forEach(function (t) { + t.addEventListener('click', function () { switchTab(t.getAttribute('data-tab')); }); + }); + + /* ---------- 实时预览(克隆只读 + 自适应缩放) ---------- */ + function renderPreview() { + var pv = document.getElementById('pbPreview'); + if (!pv) return; + pv.innerHTML = stage.innerHTML; + pv.querySelectorAll('.pb-handle').forEach(function (h) { h.remove(); }); + pv.querySelectorAll('.pb-el').forEach(function (n) { n.classList.remove('sel'); n.style.outline = ''; }); + pv.querySelectorAll('[contenteditable]').forEach(function (n) { n.removeAttribute('contenteditable'); }); + fitPreview(); + } + function fitPreview() { + var wrap = document.getElementById('pbPreviewWrap'); + var pv = document.getElementById('pbPreview'); + if (!wrap || !pv) return; + var avail = wrap.clientWidth || STAGE_W; + var scale = Math.min(1, avail / STAGE_W); + var m = 420; + pv.querySelectorAll('.pb-el').forEach(function (n) { + var y = parseInt(n.style.top, 10) || 0; + var b = y + n.offsetHeight; + if (b > m) m = b; + }); + pv.style.transform = 'scale(' + scale + ')'; + pv.style.transformOrigin = 'top left'; + pv.style.height = m + 'px'; + wrap.style.height = (m * scale) + 'px'; + } + + /* ---------- 素材库(含删除) ---------- */ + function fillLib(container, onPick) { + if (!container) return; + container.innerHTML = '加载中…'; + fetch(window.__PB_MEDIA__) + .then(function (r) { return r.json(); }) + .then(function (j) { + container.innerHTML = ''; + var items = (j && j.items) || []; + if (!items.length) { container.innerHTML = '暂无素材,先上传'; return; } + items.forEach(function (it) { + var cell = document.createElement('div'); + cell.className = 'pb-lib-item'; + var img = document.createElement('img'); + img.src = it.url; img.title = it.name; + img.addEventListener('click', function () { onPick(it.url); }); + var del = document.createElement('button'); + del.className = 'pb-lib-del'; del.type = 'button'; del.textContent = '×'; del.title = '删除素材'; + del.addEventListener('click', function (e) { e.stopPropagation(); deleteMedia(it.name); }); + cell.appendChild(img); cell.appendChild(del); + container.appendChild(cell); + }); + }) + .catch(function () { container.innerHTML = '加载失败'; }); + } + + function deleteMedia(name) { + if (!confirm('确定删除素材「' + name + '」?此操作不可撤销。')) return; + fetch(window.__PB_DELETE__ + encodeURIComponent(name), { + method: 'POST', + headers: { 'X-CSRF-TOKEN': window.__PB_CSRF__ } + }) + .then(function (r) { return r.json(); }) + .then(function (j) { + if (j && j.ok) { + loadLib(); + var pp = document.getElementById('pp_lib'); + if (pp) fillLib(pp, function (url) { var el = findEl(selectedId); if (el) { el.src = url; applyEl(el); } }); + } else { alert((j && j.msg) || '删除失败'); } + }) + .catch(function () { alert('删除失败,请重试'); }); + } + + function loadLib() { fillLib(document.getElementById('pbLib'), function (url) { addImage(url); }); } + + /* ---------- 添加元素 ---------- */ + function addText() { + var el = { id: uid(), type: 'text', x: 40, y: 40, w: 320, text: '双击编辑文字', fontSize: 20, color: '#0f172a', bold: false, align: 'left', v: false, z: nextZ() }; + elements.push(el); renderAll(); selectEl(el.id); + } + function addImage(url) { + var el = { id: uid(), type: 'image', x: 40, y: 40, w: 280, src: url, align: 'left', v: false, z: nextZ() }; + elements.push(el); renderAll(); selectEl(el.id); + } + function addButton() { + var el = { id: uid(), type: 'button', x: 40, y: 40, w: 200, text: '按钮', href: '#', bg: '#0ea5e9', tc: '#ffffff', size: 'md', z: nextZ() }; + elements.push(el); renderAll(); selectEl(el.id); + } + function addBuy() { + var el = { id: uid(), type: 'buy', x: 40, y: 40, w: 200, z: nextZ() }; + elements.push(el); renderAll(); selectEl(el.id); + } + function addPrice() { + var el = { id: uid(), type: 'price', x: 40, y: 40, w: 240, color: '#0f172a', z: nextZ() }; + elements.push(el); renderAll(); selectEl(el.id); + } + function addSpecs() { + var el = { id: uid(), type: 'specs', x: 40, y: 40, w: 360, z: nextZ() }; + elements.push(el); renderAll(); selectEl(el.id); + } + + /* 图标栏动作 */ + document.querySelectorAll('.pb-rail-btn').forEach(function (b) { + b.addEventListener('click', function () { + var act = b.getAttribute('data-act'); + if (act === 'material') { switchTab('material'); loadLib(); } + else if (act === 'image') { switchTab('material'); } + else if (act === 'text') { addText(); } + else if (act === 'button') { addButton(); } + else if (act === 'buy') { addBuy(); } + else if (act === 'price') { addPrice(); } + else if (act === 'specs') { addSpecs(); } + }); + }); + + stage.addEventListener('click', function () { selectEl(null); }); + + /* ---------- 上传素材 ---------- */ + on('pbFile', 'change', function () { + var file = this.files && this.files[0]; + if (!file) return; + var fd = new FormData(); + fd.append('file', file); + fetch(window.__PB_UPLOAD__, { method: 'POST', body: fd, headers: { 'X-CSRF-TOKEN': window.__PB_CSRF__ } }) + .then(function (r) { return r.json(); }) + .then(function (j) { if (j && j.ok) { addImage(j.url); loadLib(); } else alert((j && j.msg) || '上传失败'); }) + .catch(function () { alert('上传失败,请重试'); }); + this.value = ''; + }); + + /* ---------- 保存:序列化到隐藏字段 ---------- */ + on('pbForm', 'submit', function () { + var f = document.getElementById('pbLayout'); + if (f) f.value = JSON.stringify(elements); + }); + + /* ---------- 启动 ---------- */ + renderAll(); + loadLib(); + window.addEventListener('resize', fitPreview); +})(); diff --git a/public/assets/uploads/.gitkeep b/public/assets/uploads/.gitkeep new file mode 100644 index 0000000..fcf2bda --- /dev/null +++ b/public/assets/uploads/.gitkeep @@ -0,0 +1,2 @@ +# 素材上传目录(图片由后台可视化编辑器上传到此) +# 部署时请确保该目录可写:chown www:www 且 chmod 755 diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..d6c3d1c --- /dev/null +++ b/public/index.php @@ -0,0 +1,65 @@ +/