From b6acef01ef88be596f9d146b179287327d809725 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 4 Oct 2026 15:03:00 +0000 Subject: [PATCH] TelegramAuth + TelegramAuthBot + WatchTogether; README/AGENT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - mods/TelegramAuth, mods/TelegramAuthBot, mods/WatchTogether: копии из образа с enable: true (правило 1), секции в config/init.conf - TelegramAuth в API-режиме (enable: false -> accsdb/гейт не поднимается), TelegramAuthBot: бот @GatusMonBot, long polling - WatchTogether: customPlugins watchtogether.js, relay /wt/c/ - README: секция про SQLite/volume (первый запуск), таблица модулей, состояние Tg-notify и TelegramAuth, раздел WatchTogether - AGENT: правило 10 дополнено секретами init.conf, §12 переписан, добавлен §13 WatchTogether, список mods/ в §1 - в git bot_token и mutations_api_secret оставлены пустыми (правило 10), реальные значения только в рабочем файле на сервере --- AGENT.md | 25 +- README.md | 93 +- config/init.conf | 62 +- .../Controllers/TelegramAuthController.cs | 519 +++ mods/TelegramAuth/ModInit.cs | 89 + mods/TelegramAuth/Models/TelegramAuthConf.cs | 38 + .../TelegramAuth/Models/TelegramAuthModels.cs | 151 + mods/TelegramAuth/README.md | 137 + mods/TelegramAuth/Services/AccsdbUidSync.cs | 168 + .../Services/TelegramAuthBindException.cs | 21 + .../Services/TelegramAuthStore.Operations.cs | 696 ++++ .../Services/TelegramAuthStore.cs | 371 ++ mods/TelegramAuth/TelegramAuth.csproj | 13 + mods/TelegramAuth/init.merge.example.json | 28 + mods/TelegramAuth/manifest.json | 10 + mods/TelegramAuthBot/GlobalUsings.cs | 16 + mods/TelegramAuthBot/ModInit.cs | 55 + .../Models/TelegramAuthApiDtos.cs | 68 + .../Models/TelegramAuthBotConf.cs | 23 + mods/TelegramAuthBot/README.md | 84 + .../Services/LampacTelegramAuthHttpClient.cs | 185 + .../Services/TelegramAuthBotHostedService.cs | 133 + .../Services/TelegramAuthBotSerilog.cs | 8 + .../Services/TelegramAuthBotSession.Admin.cs | 602 +++ .../TelegramAuthBotSession.Callbacks.cs | 233 ++ .../Services/TelegramAuthBotSession.Text.cs | 41 + .../TelegramAuthBotSession.UserFlow.cs | 302 ++ .../Services/TelegramAuthBotSession.cs | 244 ++ mods/TelegramAuthBot/TelegramAuthBot.csproj | 24 + mods/TelegramAuthBot/init.merge.example.json | 13 + mods/TelegramAuthBot/manifest.json | 13 + .../references/Telegram.Bot.dll | Bin 0 -> 2542592 bytes mods/WatchTogether/ModInit.cs | 72 + mods/WatchTogether/README.md | 44 + mods/WatchTogether/RelayServer.cs | 456 ++ mods/WatchTogether/ShadowHost.cs | 826 ++++ mods/WatchTogether/WatchTogether.csproj | 26 + mods/WatchTogether/WatchTogetherController.cs | 92 + mods/WatchTogether/manifest.json | 10 + mods/WatchTogether/plugin.js | 3651 +++++++++++++++++ mods/WatchTogether/web/i18n.js | 324 ++ mods/WatchTogether/web/index.html | 1456 +++++++ mods/WatchTogether/web/lparty-web.js | 1898 +++++++++ mods/WatchTogether/web/names.js | 386 ++ 44 files changed, 13692 insertions(+), 14 deletions(-) create mode 100644 mods/TelegramAuth/Controllers/TelegramAuthController.cs create mode 100644 mods/TelegramAuth/ModInit.cs create mode 100644 mods/TelegramAuth/Models/TelegramAuthConf.cs create mode 100644 mods/TelegramAuth/Models/TelegramAuthModels.cs create mode 100644 mods/TelegramAuth/README.md create mode 100644 mods/TelegramAuth/Services/AccsdbUidSync.cs create mode 100644 mods/TelegramAuth/Services/TelegramAuthBindException.cs create mode 100644 mods/TelegramAuth/Services/TelegramAuthStore.Operations.cs create mode 100644 mods/TelegramAuth/Services/TelegramAuthStore.cs create mode 100644 mods/TelegramAuth/TelegramAuth.csproj create mode 100644 mods/TelegramAuth/init.merge.example.json create mode 100644 mods/TelegramAuth/manifest.json create mode 100644 mods/TelegramAuthBot/GlobalUsings.cs create mode 100644 mods/TelegramAuthBot/ModInit.cs create mode 100644 mods/TelegramAuthBot/Models/TelegramAuthApiDtos.cs create mode 100644 mods/TelegramAuthBot/Models/TelegramAuthBotConf.cs create mode 100644 mods/TelegramAuthBot/README.md create mode 100644 mods/TelegramAuthBot/Services/LampacTelegramAuthHttpClient.cs create mode 100644 mods/TelegramAuthBot/Services/TelegramAuthBotHostedService.cs create mode 100644 mods/TelegramAuthBot/Services/TelegramAuthBotSerilog.cs create mode 100644 mods/TelegramAuthBot/Services/TelegramAuthBotSession.Admin.cs create mode 100644 mods/TelegramAuthBot/Services/TelegramAuthBotSession.Callbacks.cs create mode 100644 mods/TelegramAuthBot/Services/TelegramAuthBotSession.Text.cs create mode 100644 mods/TelegramAuthBot/Services/TelegramAuthBotSession.UserFlow.cs create mode 100644 mods/TelegramAuthBot/Services/TelegramAuthBotSession.cs create mode 100644 mods/TelegramAuthBot/TelegramAuthBot.csproj create mode 100644 mods/TelegramAuthBot/init.merge.example.json create mode 100644 mods/TelegramAuthBot/manifest.json create mode 100755 mods/TelegramAuthBot/references/Telegram.Bot.dll create mode 100644 mods/WatchTogether/ModInit.cs create mode 100644 mods/WatchTogether/README.md create mode 100644 mods/WatchTogether/RelayServer.cs create mode 100644 mods/WatchTogether/ShadowHost.cs create mode 100644 mods/WatchTogether/WatchTogether.csproj create mode 100644 mods/WatchTogether/WatchTogetherController.cs create mode 100644 mods/WatchTogether/manifest.json create mode 100644 mods/WatchTogether/plugin.js create mode 100644 mods/WatchTogether/web/i18n.js create mode 100644 mods/WatchTogether/web/index.html create mode 100644 mods/WatchTogether/web/lparty-web.js create mode 100644 mods/WatchTogether/web/names.js diff --git a/AGENT.md b/AGENT.md index f2496a6..5617c46 100644 --- a/AGENT.md +++ b/AGENT.md @@ -28,6 +28,8 @@ docker cp lampac:/lampac/module/<Имя> "mods/<Имя>" См. также официальные шаги: [Включить модуль](https://docs.lampac.dev/modules/overview), [Пользовательские модули](https://docs.lampac.dev/maintenance/custom-modules). +Сейчас в `mods/`: `AdminPanel`, `Tracks`, `Tg-notify.bot`, `TelegramAuth`, `TelegramAuthBot`, `WatchTogether`. **`mods/Music` удалён** (remote-коммит `remove Music`): в образе у Music `manifest.enable: false`, поэтому модуль не грузится, `/music.js` → 404, секция `"Music"` и плагин убраны из `init.conf`. + ### 2. Механика загрузки модуля (4 независимых фильтра) Модуль грузится, только если выполнены **все**: @@ -112,11 +114,14 @@ docker exec lampac sh -c '...' # осмотр состояния в конте ### 10. Безопасность (не публиковать) -`config/passwd`, cookie `accspasswd`, заголовок `lcrqpasswd`, `bot_token` в `TelegramBot`. Маршруты `/adminpanel`, `/weblog`, `Tracks`, `Catalog`, `DLNA`, proxy-модули — только для доверенной сети без WAF не открывать. +`config/passwd`, cookie `accspasswd`, заголовок `lcrqpasswd`, `bot_token` в `TelegramBot`, `bot_token` в `TelegramAuthBot`, `mutations_api_secret`. Маршруты `/adminpanel`, `/weblog`, `Tracks`, `Catalog`, `DLNA`, proxy-модули — только для доверенной сети без WAF не открывать. + +**Секреты в git не попадают:** в закоммиченном `config/init.conf` токены и секрет должны быть **пустыми** (так делает и remote — коммит `remove`), реальные значения живут только в рабочем файле на сервере (копия до мержа — `/root/init.conf.local`). Перед `git add config/init.conf`: `git diff config/init.conf | grep -E ":[0-9]{8,}:AA|\"mutations_api_secret\": \"[a-f0-9]{16}"` → должно быть пусто. ### 11. Tg-notify.bot (Telegram-бот) - Механика: long polling по `TelegramBot.bot_token`; если токен пуст — polling не стартует (в логе `[TelegramBot] Установите bot_token…`, сервер работает). После правки секции: `docker compose restart lampac`. +- **Токен только локально:** в git поле пустое (правило 10). На сервере в `init.conf` вставлен `@KlinkerZabbixBot` — после `git pull`/переписывания конфига проверять, что polling снова стартовал (`[TelegramBot] @KlinkerZabbixBot запущен!`). Второй экземпляр на том же токене даёт `Conflict: terminated by other getUpdates request`. - Три подсистемы: трекер серий (Trakt→TMDB), трекер озвучек (параллельно Mirage/Collaps/VideoHub через `lampac_host`: `/lite/mirage`, `/lite/collaps`, `/lite/cdnvideohub`), клиентский плагин `tg-notify.js` (вкладка «TG Подписки», перехват 🔔). Полный разбор — в README.md. - Данные подписок: `database/tgnotify/{users.json,subscriptions.json}` (том `./database/`, в .gitignore). Не «чинить» вручную — это живые данные бота. - Диагностика: `GET /tg-notify.js` (200 без авторизации), `GET /api/tg/voices` (200), `/api/tg/*` остальной — требует `user_uid`. Озвучки могут не работать, если балансеры недоступны (проверить `GET /lite/mirage` — тело `disable`/ошибка, `/lite/collaps` — 503); тогда уведомления приходят только о выходе серий. @@ -124,6 +129,18 @@ docker exec lampac sh -c '...' # осмотр состояния в конте ### 12. TelegramAuth / TelegramAuthBot (вход через Telegram) -- Не путать с Tg-notify.bot (уведомления): эта пара — **аутентификация** (вход в Lampa через Telegram вместо пароля), группа Community, в образе выключена (`SkipModules` + `enable: false`). -- Гейт (`LampaWeb.telegramAuthGate`) активен только при `accsdb.enable: true` + `telegramAuthGate.enabled: true` + непустом `botUsername`, иначе тихий откат на `deny.js`. У нас `accsdb` не включён — связка неактуальна, включать только вместе с `accsdb`. -- `mutations_api_secret` одинаковый в обоих модулях, ненулевой в проде; `bot_token` — в `init.conf`, не коммитить (см. правило 10). +- Не путать с Tg-notify.bot (уведомления): эта пара — **аутентификация** (вход в Lampa через Telegram вместо пароля), группа Community. Копии в `mods/TelegramAuth/` и `mods/TelegramAuthBot/`, манифесты `enable: true`, из `SkipModules` убраны (у нас `SkipModules: []`). +- **Сейчас: API-режим.** `TelegramAuth.enable: false` → `accsdb` не поднимается, гейт неактивен, доступ не режется; работают привязки, `/tg/auth/*`, админ-API. `TelegramAuthBot` — бот **`@GatusMonBot`**, long polling идёт (`Telegram API OK`). +- Гейт (`LampaWeb.telegramAuthGate`) активен только при `accsdb.enable: true` + `telegramAuthGate.enabled: true` + непустом `botUsername`, иначе тихий откат на `deny.js`. Включать **только вместе с `accsdb`**, и сначала связать свои устройства через бота — иначе текущие UID получат отказ. +- `mutations_api_secret` одинаковый в обоих модулях, ненулевой; `bot_token` — в `init.conf`, **не коммитить** (правило 10): в git оба поля пустые. +- `owner_telegram_ids: [143672]` → владелец создаётся как `admin` при старте. `auto_provision_users: true` + `auto_provision_activate_immediately: false` → новые привязки ждут одобрения (`/users` в боте, кнопки Принять/Отклонить). +- Данные: `database/tgauth/{users.json,admins.json,user_langs.json}` (том `lampac_database`, владелец `1000:1000`). Живые данные — не «чинить» руками. +- Проверка: `GET /tg/auth/status?uid=x` → 200; `GET /tg/auth/admin/users` → 401 без заголовка, 200 с `X-TelegramAuth-Mutations-Secret`. + +### 13. WatchTogether (комнаты синхронного просмотра) + +- Копия в `mods/WatchTogether/` (`enable: true`), секция `WatchTogether` в `init.conf` (`enable`, `allow_anonymous: true`, `relay_max_channels: 500`, `relay_max_clients_per_channel: 32`, `gc_empty_timeout_minutes: 30`, `gc_max_lifetime_hours: 12`). +- Клиентский плагин зарегистрирован в `LampaWeb.customPlugins`: `{localhost}/watchtogether.js`. +- Роуты: `GET /watchtogether.js` → 200, `GET /watch_together/` → 200, `WS /wt/c/{channel}` → 400 на обычном GET (нужен WebSocket upgrade — это штатно, handshake даёт 101). +- Lampac пассивно хранит состояние комнаты и становится **хостом-«тенью»** (`ShadowHost.cs`), если создатель отключился; роль возвращается ему при переподключении. Лаг ≤ 2 с. +- При появлении reverse proxy: на `/wt/c/` обязателен WebSocket upgrade, отключённый buffering и таймаут больше длительности просмотра. diff --git a/README.md b/README.md index 0c2f645..46c41ab 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,56 @@ docker compose restart # после правки config/init.conf или По умолчанию сервер слушает порт **9118**; если порт занят — меняй `listen.port` в `config/init.conf` до первого запуска. +## Первая установка: SQLite не может создать базу в named volume + +**Симптом.** Свежий `docker compose up -d` уходит в crash-loop (`Restarting (139)`, healthcheck `unhealthy`), в логах: + +``` +Unhandled exception. Microsoft.Data.Sqlite.SqliteException (0x80004005): +SQLite Error 14: 'unable to open database file'. + at Microsoft.Data.Sqlite.SqliteConnection.Open() + at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteDatabaseCreator.Create() + at Microsoft.EntityFrameworkCore.RelationalDatabaseCreator.EnsureCreated() + at Core.Program.Run(String[] args) +``` + +**Причина.** Процесс в контейнере работает от uid `1000` (пользователь образа `lampac`), а Docker при первом создании named volume делает его владельцем `root:root`. Смонтированный каталог `/lampac/database` поэтому недоступен на запись для `lampac`, `sqlite3` получает `EACCES` и приложение падает сразу после `EnsureCreated()` — база не создаётся ни разу, поэтому изнутри контейнера это не лечится. + +Та же первопричина у второй ошибки первого запуска: + +``` +System.UnauthorizedAccessException: Access to the path '/lampac/passwd' is denied. +``` + +`config/passwd` монтируется файлом и тоже должен принадлежать uid `1000`. + +**Лечение** — на хосте, от root: + +```bash +# тома (первый запуск или миграция/копия томов) +chown -R 1000:1000 /var/lib/docker/volumes/lampac_database/_data \ + /var/lib/docker/volumes/lampac_cache/_data + +# файл пароля (владелец 1000, права 600 — читает только процесс контейнера) +chown 1000:1000 config/passwd && chmod 600 config/passwd + +docker compose up -d # или docker compose restart, если контейнер уже создан +``` + +**Проверка:** + +```bash +docker compose ps # Up (healthy) +docker logs --since 2m lampac | grep -ci unhandled # 0 +ls -ln /var/lib/docker/volumes/lampac_database/_data/Sisi.sql # uid/gid 1000 +``` + +> После лечения в `lampac_database` должны появиться `Sisi.sql`, `Sync.sql`, `TimeCode.sql`, `tgnotify/`, `tracks/`, `storage/` — это и есть признак, что базы созданы. + +Проверить uid процесса в контейнере: `docker exec lampac id` → `uid=1000(lampac)`. + +Правило: **любой bind-mount файл/каталог, в который пишет контейнер, должен принадлежать `1000:1000`** (см. `.gitignore` для `config/passwd`, `dlna/`). + ## Структура проекта | Путь | Назначение | @@ -24,7 +74,7 @@ docker compose restart # после правки config/init.conf или | `config/init.conf` | Конфигурация сервера (JSON, монтируется в `/lampac/init.conf`) | | `config/passwd` | Пароль root для `/adminpanel` и `/weblog` (не в git) | | volume `lampac_cache` | Кеш (`/lampac/cache`) — Docker named volume, не файловый том | -| volume `lampac_database` | SQLite-базы Sync, TimeCode, Music, tg-notify (`/lampac/database`) — Docker named volume | +| volume `lampac_database` | SQLite-базы Sync, TimeCode, tg-notify, tracks, storage (`/lampac/database`) — Docker named volume | | `dlna/` | Локальные медиа для DLNA (`/lampac/data/dlna`) | | `plugins/extensions.json` | Каталог плагинов для веб-клиента (раздел «Плагины»), отдаётся через `/extensions` | | `mods/<Имя>/` | Пользовательские копии встроенных модулей с `enable: true` | @@ -53,14 +103,18 @@ docker compose restart # после правки config/init.conf или |---|---|---| | `Tracks` | `/tracks.js`, `/ffprobe` — субтитры и дорожки | `"Tracks": { "enable": true }` | | `AdminPanel` | `/adminpanel` — редактор init.conf, current.conf, users.json | `"AdminPanel": { "enable": true }` | -| `Music` | `/music.js`, `/music/*` — музыкальный каталог, плейлисты, стримы | секция `"Music"` (базовые дефолты) | | `Tg-notify.bot` | `/tg-notify.js`, `/api/tg/*` — уведомления о новых сериях в Telegram | секция `"TelegramBot"` | +| `TelegramAuth` | `/tg/auth/*` — привязка UID устройства к учётке Telegram, HTTP API статуса | секция `"TelegramAuth"` (`enable: false` → без accsdb-гейта) | +| `TelegramAuthBot` | `@GatusMonBot` — long-polling бот привязки и админ-команды | секция `"TelegramAuthBot"` | +| `WatchTogether` | `/watchtogether.js`, `/watch_together/`, WS `/wt/c/` — комнаты синхронного просмотра | секция `"WatchTogether"` | -Клиентские плагины `music.js` и `tg-notify.js` зарегистрированы в `LampaWeb.customPlugins`; `{localhost}` в URL автоматически подставляется сервером. +Клиентские плагины `tg-notify.js` и `watchtogether.js` зарегистрированы в `LampaWeb.customPlugins`; `{localhost}` в URL автоматически подставляется сервером. + +> **Модуль `Music` удалён из `mods/`** (коммит `remove Music`): в образе у него `manifest.enable: false`, поэтому `/music.js` → 404, секция `"Music"` из `init.conf` убрана, плагин из `customPlugins` убран. Вернуть музыку — той же механикой: скопировать `lampac:/lampac/module/Music` в `mods/Music`, поставить `enable: true`, вернуть секцию и плагин. ### Ещё можно включить тем же способом -В образе выключены также: `DatabaseEditor`, `ExternalBind`, `LogUserRequest-Lite`, `Transcoding`, `WatchTogether`, `TelegramAuth`, `TelegramAuthBot`. +В образе выключены также: `DatabaseEditor`, `ExternalBind`, `LogUserRequest-Lite`, `Transcoding`, `Music`. ## Конфигурация @@ -187,8 +241,8 @@ docker exec lampac rm -rf /lampac/cache/static/59 # bucket /extensions; либ ### Состояние на нашем инстансе -- Модуль загружен, `/tg-notify.js` → 200, плагин уже в `LampaWeb.customPlugins`, вкладка «TG Подписки» видна. -- `bot_token` **пуст** → long polling не работает (лог: `[TelegramBot] Установите bot_token…`); уведомления придут только после заполнения токена. +- Модуль загружен, `/tg-notify.js` → 200, плагин уже в `LampaWeb.customPlugins`, вкладка «TG Подписки» видна; аккаунт привязан (`database/tgnotify/users.json`). +- `bot_token` заполняется **только локально**: в git поле пустое (правило 10), токен вставлен в `config/init.conf` на сервере и при работе `@KlinkerZabbixBot` (`[TelegramBot] @KlinkerZabbixBot запущен!`). После любого `git pull`/правки конфига токен нужно вернуть на место — иначе polling не стартует. - Трекинг озвучек зависит от балансиров: на текущий момент `GET /lite/mirage` → тело `disable`, `GET /lite/collaps` → `503` — до тех пор, пока они не будут доступны (или не включится `lampac_token` при защите), бот будет уведомлять только о выходе серий (TMDB/Trakt). ## TelegramAuth + TelegramAuthBot: вход в Lampa через Telegram @@ -223,7 +277,29 @@ docker exec lampac rm -rf /lampac/cache/static/59 # bucket /extensions; либ `mutations_api_secret` должен совпадать в обоих модулях и быть ненулевым — защищает `bind/complete` и бот-админку; вместе с `bot_token` не публиковать. Оба модуля выключены в `base.conf` (`SkipModules`) и в манифестах (`enable: false`). -**Состояние у нас:** выключены, `accsdb` в `init.conf` не включён → гейт неактивен, используем беззащитный доступ + root-пароль AdminPanel. Включать связку имеет смысл вместе с `accsdb` (защита сервера учётными записями). +**Состояние у нас:** модули **включены** (копии в `mods/TelegramAuth/` и `mods/TelegramAuthBot/`, манифесты `enable: true`, `SkipModules` пуст), работают в **API-режиме**: `TelegramAuth.enable: false` → `accsdb` не поднимается, гейт неактивен, доступ не режется. Бот `@GatusMonBot` — `Telegram API OK`, long polling идёт; `owner_telegram_ids: [143672]` создаёт владельца ролью `admin` при старте, `auto_provision_users: true` + `auto_provision_activate_immediately: false` — новые привязки висят в pending до одобрения кнопкой у админа. Секрет `mutations_api_secret` (одинаков в обеих секциях) и `bot_token` лежат в `config/init.conf` **только на сервере**. + +**Порядок включения гейта (когда решим):** поставить `TelegramAuth.enable: true` → в `LampaWeb` секцию `telegramAuthGate` (`enabled: true`, `botUsername: "GatusMonBot"`) → подключить клиентский оверлей (`deny.js` / `telegram_auth_gate.js`) → **сначала связать свои устройства через бота**, иначе текущие UID получат отказ. + +## WatchTogether: комнаты синхронного просмотра + +Модуль из группы «клиент и контент»: синхронизирует `play/pause/seek` между участниками комнаты. Подробный разбор — [официальная документация](https://docs.lampac.dev/modules/watch-together) и `mods/WatchTogether/README.md`. + +**Как устроено.** Lampac не отдаёт медиа — он пассивный брокер: хранит состояние комнаты и рассылает команды. Сами видео каждый клиент тянет своим источником, поэтому подходит любой контент и совместим с экосистемой LParty (`lparty.js`, `lparty-web`, JustPlus Player). + +| Клиент | Адрес | +|---|---| +| Плагин Lampa | `{localhost}/watchtogether.js` (в `LampaWeb.customPlugins`) | +| Веб-гость без установки Lampa | `http://<адрес>/watch_together/?room=` | +| LParty relay (WebSocket) | `ws://<адрес>/wt/c/` | + +Фирменная фича — **«тень» (`ShadowHost.cs`)**: сервер слушает канал и копирует url, позицию, скорость и список участников, виден в зрителях как `Lampac`, но ничего не рассылает. Как только хост рвётся, он мгновенно шлёт кадр `host` и продолжает timeline (лаг ≤ 2 с), попытки перехвата отклоняет повторным `host=сервер`; создатель вернулся — отдаёт роль обратно и снова уходит в тень. Пустые комнаты GC через `gc_empty_timeout_minutes`, любые — через `gc_max_lifetime_hours`. + +**Конфиг** (секция `WatchTogether` в `init.conf`): `enable: true`, `allow_anonymous: true` (плагин и веб-гость без аккаунта), `relay_max_channels: 500`, `relay_max_clients_per_channel: 32`, `gc_empty_timeout_minutes: 30`, `gc_max_lifetime_hours: 12`. + +**Требование к reverse proxy:** на `/wt/c/` нужен WebSocket upgrade, отключённый response buffering и таймаут **больше длительности просмотра**. Сейчас прокси нет — relay работает напрямую, ничего настраивать не нужно. + +**Проверка:** `GET /watchtogether.js` → 200, `GET /watch_together/` → 200, `WS /wt/c/` → 400 на обычном GET (штатно: нужен upgrade; handshake даёт 101). ## Обновление Lampac @@ -234,7 +310,7 @@ docker compose up -d Перед обновлением проверить, что в `docker-compose.yaml` раскомментированы нужные тома. Данные сохраняются в примонтированных томах: `config/`, `cache/`, `database/`, `dlna/`, `mods/`. -**Образ закреплён точным digest** (`1.68.0@sha256:752dafd8…`): тег `1.68.0` на ghcr — mutable, его переиздавали, и в новой сборке `mods/Music` (копия из старой сборки) не компилируется (`MusicMetadataCacheService` не найден) — сервер уходит в crash-loop. Чтобы обновить образ: взять новый digest, пересобрать копии модулей в `mods/` из нового образа (иначе Roslyn-компиляция упадёт) и заменить digest в `docker-compose.yaml`. +**Образ закреплён точным digest** (`1.68.0@sha256:752dafd8…`): тег `1.68.0` на ghcr — mutable, его переиздавали, и в новой сборке **копии модулей в `mods/`** (Roslyn компилирует их на каждом старте) перестают собираться — `CS0103` по символам из старого билда и crash-loop сервера. Чтобы обновить образ: взять новый digest, пересобрать копии модулей в `mods/` из нового образа (`docker cp lampac:/lampac/module/<Имя> mods/<Имя>` + вернуть `"enable": true`) и заменить digest в `docker-compose.yaml`. Не делать «просто» `docker compose pull` без фиксации digest. ## Безопасность @@ -242,5 +318,6 @@ docker compose up -d - Не публикуй в интернет без аутентификации, WAF и ограничения сети: `/adminpanel`, `/weblog`, `/database-editor`, `Tracks`, `Transcoding`, `Catalog`, `DLNA`, proxy-модули. - Нигде не раскрывай `config/passwd`, cookie `accspasswd`, заголовок `lcrqpasswd`. +- **Секреты в `config/init.conf` не коммитятся**: `TelegramBot.bot_token`, `TelegramAuthBot.bot_token`, `mutations_api_secret`. В git они должны быть пустыми — реальные значения живут только в файле на сервере (`/root/init.conf.local` — резервная копия перед мержем). Перед `git add config/init.conf` проверять `git diff` на токены (`git diff config/init.conf | grep -E ":[0-9]{8,}:AA"` → пусто). - Для публикации за reverse proxy: [deployment/reverse-proxy](https://docs.lampac.dev/deployment/reverse-proxy) (HTTPS в ответах, реальный IP клиента, WebSocket, SSE, streaming). - `shm_size: 4096mb` — рекомендованный минимум для Playwright/Chromium. diff --git a/config/init.conf b/config/init.conf index 6ef4e69..767ba7b 100644 --- a/config/init.conf +++ b/config/init.conf @@ -33,7 +33,16 @@ "backup": true }, "customPlugins": [ - { "url": "{localhost}/tg-notify.js", "status": 1, "name": "Tg-notify" } + { + "url": "{localhost}/tg-notify.js", + "status": 1, + "name": "Tg-notify" + }, + { + "url": "{localhost}/watchtogether.js", + "status": 1, + "name": "WatchTogether" + } ] }, "chromium": { @@ -56,5 +65,54 @@ "history": { "enable": false } + }, + "TelegramAuth": { + "enable": false, + "data_dir": "database/tgauth", + "legacy_import_path": "database/legacy_tgauth", + "enable_import": true, + "enable_cleanup": true, + "mutations_api_secret": "", + "owner_telegram_ids": [ + 143672 + ], + "auto_provision_users": true, + "auto_provision_role": "user", + "auto_provision_lang": "ru", + "auto_provision_expires_days": 0, + "auto_provision_activate_immediately": false, + "accsdb_sync_group_admin": 100, + "accsdb_sync_group_user": 0, + "max_active_devices_per_user": 5, + "limit_map": [ + { + "pattern": "^/tg/auth", + "map": { + "limit": 25, + "second": 1 + } + } + ] + }, + "TelegramAuthBot": { + "enable": true, + "bot_token": "", + "lampac_base_url": "http://127.0.0.1:80", + "request_timeout_sec": 10, + "service_display_name": "Lampac NextGen", + "mutations_api_secret": "", + "admin_chat_ids": [], + "owner_telegram_ids": [ + 143672 + ], + "notify_admins_on_pending_provision": true + }, + "WatchTogether": { + "enable": true, + "allow_anonymous": true, + "relay_max_channels": 500, + "relay_max_clients_per_channel": 32, + "gc_empty_timeout_minutes": 30, + "gc_max_lifetime_hours": 12 } -} +} \ No newline at end of file diff --git a/mods/TelegramAuth/Controllers/TelegramAuthController.cs b/mods/TelegramAuth/Controllers/TelegramAuthController.cs new file mode 100644 index 0000000..d46f2df --- /dev/null +++ b/mods/TelegramAuth/Controllers/TelegramAuthController.cs @@ -0,0 +1,519 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json.Serialization; +using Shared; +using Shared.Attributes; +using System; +using System.IO; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; +using TelegramAuth.Models; +using TelegramAuth.Services; + +namespace TelegramAuth.Controllers +{ + [Authorization("access denied")] + public class TelegramAuthController : BaseController + { + public const string MutationsSecretHeaderName = "X-TelegramAuth-Mutations-Secret"; + + static readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + NullValueHandling = NullValueHandling.Ignore + }; + + static TelegramAuthStore store => ModInit.Store; + + [HttpGet] + [AllowAnonymous] + [Route("/tg/auth/status")] + public ActionResult Status([FromQuery] string uid) + { + if (string.IsNullOrWhiteSpace(uid)) + return JsonError(400, "uid is required"); + + var status = store.GetStatus(uid); + return JsonOk(status); + } + + [HttpGet] + [AllowAnonymous] + [Route("/tg/auth/me")] + public ActionResult Me([FromQuery] string uid) + { + if (string.IsNullOrWhiteSpace(uid)) + return JsonError(400, "uid is required"); + + var user = store.FindByUid(uid); + if (user == null) + return JsonError(404, "user not found for uid"); + + return JsonOk(user); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/bind/start")] + public ActionResult BindStart([FromBody] BindStartRequest? request) + { + if (request == null || string.IsNullOrWhiteSpace(request.Uid)) + return JsonError(400, "uid is required"); + + var response = new + { + ok = true, + pending = true, + uid = request.Uid, + message = "Привяжи UID в Telegram-боте." + }; + + return JsonOk(response); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/bind/complete")] + public ActionResult BindComplete([FromBody] BindCompleteRequest? request) + { + if (HasConfiguredMutationsSecret() && !HasMutationAccess()) + return MutationUnauthorized(); + + if (request == null || string.IsNullOrWhiteSpace(request.Uid) || string.IsNullOrWhiteSpace(request.TelegramId)) + return JsonError(400, "uid and telegramId are required"); + + try + { + var bindOutcome = store.BindDevice(request.TelegramId, request.Uid, request.Username, request.DeviceName, "manual-complete"); + return JsonOk(new + { + ok = true, + message = bindOutcome.PendingAdminApproval + ? "Устройство привязано; доступ включит администратор" + : "Устройство привязано", + uid = request.Uid, + telegramId = request.TelegramId, + newUserProvisioned = bindOutcome.NewUserProvisioned, + pendingAdminApproval = bindOutcome.PendingAdminApproval + }); + } + catch (TelegramAuthBindException ex) when (ex.FailureKind == TelegramAuthBindFailureKind.UserNotFound) + { + return JsonError(404, "user not found", "Включите auto_provision_users в TelegramAuth или добавьте пользователя в users.json."); + } + catch (TelegramAuthBindException ex) when (ex.FailureKind == TelegramAuthBindFailureKind.UserDisabled) + { + return JsonError(403, "user disabled", "Аккаунт отключён администратором."); + } + catch (Exception ex) + { + return JsonError(500, "bind failed", ex.Message); + } + } + + [HttpGet] + [AllowAnonymous] + [Route("/tg/auth/user/by-telegram")] + public ActionResult UserByTelegram([FromQuery] string telegramId) + { + if (string.IsNullOrWhiteSpace(telegramId)) + return JsonError(400, "telegramId is required"); + + var user = store.FindByTelegramId(telegramId); + if (user == null) + { + return JsonOk(new + { + found = false, + telegramId + }); + } + + var registrationPending = TelegramAuthStore.IsRegistrationPending(user); + return JsonOk(new + { + found = true, + telegramId = user.TelegramId, + username = user.TgUsername, + role = user.Role, + lang = user.Lang, + approvedBy = user.ApprovedBy, + createdAt = user.CreatedAt, + expiresAt = user.ExpiresAt, + disabled = user.Disabled, + registrationPending, + active = store.IsActive(user), + deviceCount = user.Devices.Count(d => d.Active), + maxDevices = store.GetMaxDevices(user) + }); + } + + [HttpGet] + [AllowAnonymous] + [Route("/tg/auth/admin/users")] + public ActionResult AdminListUsers() + { + if (!HasMutationAccess()) + return MutationUnauthorized(); + + var users = store.GetUsers() + .OrderBy(u => u.TelegramId, StringComparer.Ordinal) + .Select(u => new + { + telegramId = u.TelegramId, + username = u.TgUsername, + role = u.Role, + disabled = u.Disabled, + registrationPending = TelegramAuthStore.IsRegistrationPending(u), + active = store.IsActive(u), + expiresAt = u.ExpiresAt, + deviceCount = u.Devices.Count(d => d.Active), + accs = u.Accs == null + ? null + : new + { + u.Accs.group, + u.Accs.IsPasswd, + u.Accs.ban, + u.Accs.ban_msg, + u.Accs.comment, + u.Accs.ids, + u.Accs.@params + } + }) + .ToList(); + + return JsonOk(new { ok = true, users }); + } + + [HttpGet] + [AllowAnonymous] + [Route("/tg/auth/admin/user")] + public ActionResult AdminGetUser([FromQuery] string telegramId) + { + if (!HasMutationAccess()) + return MutationUnauthorized(); + + if (string.IsNullOrWhiteSpace(telegramId)) + return JsonError(400, "telegramId is required"); + + var user = store.FindByTelegramId(telegramId.Trim()); + if (user == null) + return JsonError(404, "user not found"); + + return JsonOk(new + { + ok = true, + telegramId = user.TelegramId, + username = user.TgUsername, + role = user.Role, + lang = user.Lang, + approvedBy = user.ApprovedBy, + createdAt = user.CreatedAt, + expiresAt = user.ExpiresAt, + disabled = user.Disabled, + registrationPending = TelegramAuthStore.IsRegistrationPending(user), + active = store.IsActive(user), + deviceCount = user.Devices.Count(d => d.Active), + maxDevices = store.GetMaxDevices(user), + accs = user.Accs, + devices = user.Devices.Select(d => new + { + uid = d.Uid, + name = d.Name, + active = d.Active, + linkedAt = d.LinkedAt, + lastSeenAt = d.LastSeenAt, + source = d.Source + }).ToList() + }); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/admin/user/patch")] + public async Task AdminPatchUser() + { + if (!HasMutationAccess()) + return MutationUnauthorized(); + + string raw; + using (var reader = new StreamReader(Request.Body, Encoding.UTF8, detectEncodingFromByteOrderMarks: false, leaveOpen: true)) + raw = await reader.ReadToEndAsync().ConfigureAwait(false); + + if (string.IsNullOrWhiteSpace(raw)) + return JsonError(400, "body is required"); + + JObject body; + try + { + body = JObject.Parse(raw); + } + catch (JsonReaderException) + { + return JsonError(400, "invalid json"); + } + + var tid = body.Value("telegramId"); + if (string.IsNullOrWhiteSpace(tid)) + return JsonError(400, "telegramId is required"); + + var outcome = store.TryAdminPatchUser(tid.Trim(), body, out var err); + if (outcome == TelegramAuthStore.AdminPatchUserOutcome.NotFound) + return JsonError(404, "user not found"); + if (outcome == TelegramAuthStore.AdminPatchUserOutcome.InvalidPayload) + return JsonError(400, "invalid payload", err); + + return JsonOk(new { ok = true, telegramId = tid.Trim() }); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/admin/user/disabled")] + public ActionResult AdminSetUserDisabled([FromBody] AdminSetUserDisabledRequest? request) + { + if (!HasMutationAccess()) + return MutationUnauthorized(); + + if (request == null || string.IsNullOrWhiteSpace(request.TelegramId)) + return JsonError(400, "telegramId is required"); + + var outcome = store.TrySetUserDisabled(request.TelegramId.Trim(), request.Disabled); + if (outcome == TelegramAuthStore.SetUserDisabledOutcome.NotFound) + return JsonError(404, "user not found"); + if (outcome == TelegramAuthStore.SetUserDisabledOutcome.CannotDisableAdmin) + return JsonError(403, "cannot disable admin", "Нельзя отключить учётную запись с ролью admin."); + + return JsonOk(new + { + ok = true, + telegramId = request.TelegramId.Trim(), + disabled = request.Disabled + }); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/admin/user/pending")] + public ActionResult AdminResolveRegistrationPending([FromBody] AdminPendingDecisionRequest? request) + { + if (!HasMutationAccess()) + return MutationUnauthorized(); + + if (request == null || string.IsNullOrWhiteSpace(request.TelegramId)) + return JsonError(400, "telegramId is required"); + + var tid = request.TelegramId.Trim(); + if (request.Approve) + { + var outcome = store.TryApproveRegistrationPending(tid); + if (outcome == TelegramAuthStore.PendingDecisionOutcome.NotFound) + return JsonError(404, "user not found"); + if (outcome == TelegramAuthStore.PendingDecisionOutcome.NotPending) + return JsonError(400, "not pending", "Пользователь не в статусе ожидания подтверждения."); + + return JsonOk(new { ok = true, telegramId = tid, approved = true }); + } + else + { + var outcome = store.TryRejectRegistrationPending(tid); + if (outcome == TelegramAuthStore.PendingDecisionOutcome.NotFound) + return JsonError(404, "user not found"); + if (outcome == TelegramAuthStore.PendingDecisionOutcome.NotPending) + return JsonError(400, "not pending", "Пользователь не в статусе ожидания подтверждения."); + if (outcome == TelegramAuthStore.PendingDecisionOutcome.CannotRejectAdmin) + return JsonError(403, "cannot reject admin"); + + return JsonOk(new { ok = true, telegramId = tid, rejected = true }); + } + } + + [HttpGet] + [AllowAnonymous] + [Route("/tg/auth/devices")] + public ActionResult Devices([FromQuery] string telegramId) + { + if (string.IsNullOrWhiteSpace(telegramId)) + return JsonError(400, "telegramId is required"); + + var user = store.FindByTelegramId(telegramId); + if (user == null) + return JsonError(404, "user not found"); + + return JsonOk(new + { + telegramId = user.TelegramId, + username = user.TgUsername, + devices = user.Devices + }); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/device/unbind")] + public ActionResult Unbind([FromBody] DeviceUnbindRequest? request) + { + if (request == null || string.IsNullOrWhiteSpace(request.Uid) || string.IsNullOrWhiteSpace(request.TelegramId)) + return JsonError(400, "telegramId and uid are required"); + + var outcome = store.TryUnbindDevice(request.TelegramId.Trim(), request.Uid.Trim()); + if (outcome == TelegramAuthStore.UnbindDeviceOutcome.UserNotFound) + return JsonError(404, "user not found"); + if (outcome == TelegramAuthStore.UnbindDeviceOutcome.DeviceNotFound) + return JsonError(404, "device not found", "UID не найден среди устройств этого пользователя."); + + return JsonOk(new { ok = true, uid = request.Uid.Trim() }); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/device/reactivate")] + public ActionResult ReactivateDevice([FromBody] DeviceReactivateRequest? request) + { + if (request == null || string.IsNullOrWhiteSpace(request.TelegramId) || string.IsNullOrWhiteSpace(request.Uid)) + return JsonError(400, "telegramId and uid are required"); + + var outcome = store.TryReactivateDevice(request.TelegramId.Trim(), request.Uid.Trim()); + if (outcome == TelegramAuthStore.ReactivateDeviceOutcome.UserNotFound) + return JsonError(404, "user not found"); + if (outcome == TelegramAuthStore.ReactivateDeviceOutcome.UserDisabled) + return JsonError(403, "user disabled", "Аккаунт отключён администратором."); + if (outcome == TelegramAuthStore.ReactivateDeviceOutcome.DeviceNotFound) + return JsonError(404, "device not found", "UID не найден среди ваших устройств."); + + return JsonOk(new { ok = true, uid = request.Uid.Trim() }); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/device/name")] + public ActionResult SetDeviceName([FromBody] DeviceSetNameRequest? request) + { + if (request == null || string.IsNullOrWhiteSpace(request.Uid)) + return JsonError(400, "uid is required"); + + var outcome = store.TrySetActiveDeviceDisplayName(request.Uid, request.Name); + if (outcome == TelegramAuthStore.SetDeviceDisplayNameOutcome.InvalidUid) + return JsonError(400, "uid is required"); + if (outcome == TelegramAuthStore.SetDeviceDisplayNameOutcome.NotFoundOrInactive) + return JsonError(404, "device not found or access inactive", "UID не привязан или срок доступа истёк."); + + return JsonOk(new + { + ok = true, + uid = request.Uid.Trim(), + name = string.IsNullOrWhiteSpace(request.Name) ? (string?)null : request.Name.Trim() + }); + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/devices/cleanup")] + public ActionResult CleanupDevices() + { + if (!HasMutationAccess()) + return MutationUnauthorized(); + + if (!ModInit.conf.enable_cleanup) + return JsonError(404, "cleanup disabled"); + + try + { + var removed = store.CleanupInactiveDevices(); + return JsonOk(new { ok = true, removed }); + } + catch (Exception ex) + { + return JsonError(500, "cleanup failed", ex.Message); + } + } + + [HttpPost] + [AllowAnonymous] + [Route("/tg/auth/import")] + public ActionResult ImportLegacy() + { + if (!HasMutationAccess()) + return MutationUnauthorized(); + + if (!ModInit.conf.enable_import) + return JsonError(404, "import disabled"); + + var legacyPath = ModInit.conf.legacy_import_path?.Trim(); + if (string.IsNullOrEmpty(legacyPath)) + return JsonError(400, "legacy_import_path is not configured"); + + try + { + var result = store.ImportFromLegacy(legacyPath); + return JsonOk(result); + } + catch (Exception ex) + { + return JsonError(500, "import failed", ex.Message); + } + } + + bool HasConfiguredMutationsSecret() => + !string.IsNullOrEmpty(ModInit.conf.mutations_api_secret?.Trim()); + + bool HasMutationAccess() + { + if (Request.Cookies.TryGetValue("accspasswd", out var passwd) + && SecretEquals(passwd, CoreInit.rootPasswd)) + { + return true; + } + + var expected = ModInit.conf.mutations_api_secret?.Trim(); + if (string.IsNullOrEmpty(expected) + || !Request.Headers.TryGetValue(MutationsSecretHeaderName, out var supplied)) + { + return false; + } + + return SecretEquals(supplied.ToString().Trim(), expected); + } + + static bool SecretEquals(string? supplied, string? expected) + { + if (string.IsNullOrEmpty(supplied) || string.IsNullOrEmpty(expected)) + return false; + + return CryptographicOperations.FixedTimeEquals( + Encoding.UTF8.GetBytes(supplied), + Encoding.UTF8.GetBytes(expected)); + } + + ContentResult MutationUnauthorized() => JsonError(401, "unauthorized"); + + ContentResult JsonOk(object data) + { + return new ContentResult + { + Content = JsonConvert.SerializeObject(data, JsonSettings), + ContentType = "application/json; charset=utf-8", + StatusCode = 200 + }; + } + + ContentResult JsonError(int status, string error, string? detail = null) + { + var payload = new + { + error, + detail + }; + return new ContentResult + { + Content = JsonConvert.SerializeObject(payload, JsonSettings), + ContentType = "application/json; charset=utf-8", + StatusCode = status + }; + } + } +} diff --git a/mods/TelegramAuth/ModInit.cs b/mods/TelegramAuth/ModInit.cs new file mode 100644 index 0000000..2bc9430 --- /dev/null +++ b/mods/TelegramAuth/ModInit.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using Shared; +using Shared.Models.AppConf; +using Shared.Models.Events; +using Shared.Models.Module; +using Shared.Models.Module.Interfaces; +using Shared.Services; +using TelegramAuth.Models; +using TelegramAuth.Services; + +namespace TelegramAuth +{ + public class ModInit : IModuleLoaded + { + public static TelegramAuthConf conf = new(); + + public static TelegramAuthStore Store { get; private set; } = null!; + + public void Loaded(InitspaceModel initspace) + { + UpdateConfFromInit(); + EventListener.UpdateInitFile += UpdateConfFromInit; + } + + void UpdateConfFromInit() + { + conf = ModuleInvoke.Init("TelegramAuth", new TelegramAuthConf + { + enable = false, + data_dir = null, + legacy_import_path = "", + enable_import = true, + enable_cleanup = true, + max_active_devices_per_user = 0, + mutations_api_secret = "", + owner_telegram_ids = null, + auto_provision_users = false, + auto_provision_role = "user", + auto_provision_lang = "ru", + auto_provision_expires_days = 0, + auto_provision_activate_immediately = false, + accsdb_sync_group_admin = 100, + accsdb_sync_group_user = 0, + limit_map = new List + { + new("^/tg/auth", new WafLimitMap { limit = 5, second = 1 }) + } + }); + + if (CoreInit.conf != null && conf.enable) + CoreInit.conf.accsdb.enable = true; + + Store = new TelegramAuthStore(conf); + Store.EnsureStorage(); + Store.EnsureOwnerUsersAtStartup(); + + if (conf.enable) + ApplyWafLimitMapFromConf(); + } + + void ApplyWafLimitMapFromConf() + { + var waf = CoreInit.conf?.WAF?.limit_map; + if (waf == null) + return; + + var ours = conf.limit_map ?? new List(); + var patterns = new HashSet(StringComparer.Ordinal); + foreach (var m in ours) + { + if (!string.IsNullOrEmpty(m?.pattern)) + patterns.Add(m.pattern); + } + + if (patterns.Count == 0) + return; + + waf.RemoveAll(x => x != null && !string.IsNullOrEmpty(x.pattern) && patterns.Contains(x.pattern)); + foreach (var m in ours) + waf.Insert(0, m); + } + + public void Dispose() + { + EventListener.UpdateInitFile -= UpdateConfFromInit; + } + } +} diff --git a/mods/TelegramAuth/Models/TelegramAuthConf.cs b/mods/TelegramAuth/Models/TelegramAuthConf.cs new file mode 100644 index 0000000..e02bec7 --- /dev/null +++ b/mods/TelegramAuth/Models/TelegramAuthConf.cs @@ -0,0 +1,38 @@ +using Shared.Models.AppConf; +using Shared.Models.Module; + +namespace TelegramAuth.Models +{ + public class TelegramAuthConf : ModuleBaseConf + { + public bool enable { get; set; } + + public string? data_dir { get; set; } + + public string legacy_import_path { get; set; } = ""; + + public bool enable_import { get; set; } = true; + + public bool enable_cleanup { get; set; } = true; + + public int max_active_devices_per_user { get; set; } + + public string mutations_api_secret { get; set; } = ""; + + public long[]? owner_telegram_ids { get; set; } + + public bool auto_provision_users { get; set; } + + public string auto_provision_role { get; set; } = "user"; + + public string auto_provision_lang { get; set; } = "ru"; + + public int auto_provision_expires_days { get; set; } + + public bool auto_provision_activate_immediately { get; set; } + + public int accsdb_sync_group_admin { get; set; } = 100; + + public int accsdb_sync_group_user { get; set; } + } +} diff --git a/mods/TelegramAuth/Models/TelegramAuthModels.cs b/mods/TelegramAuth/Models/TelegramAuthModels.cs new file mode 100644 index 0000000..158841f --- /dev/null +++ b/mods/TelegramAuth/Models/TelegramAuthModels.cs @@ -0,0 +1,151 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace TelegramAuth.Models +{ + public class LegacyDeviceRecord + { + public string uid { get; set; } = ""; + public string? label { get; set; } + public string? bound_at { get; set; } + public string? last_seen { get; set; } + public string? last_ip { get; set; } + public string? fingerprint { get; set; } + } + + public class LegacyTokenRecord + { + public string token { get; set; } = ""; + public string telegram_id { get; set; } = ""; + public string tg_username { get; set; } = ""; + public DateTime? created_at { get; set; } + public DateTime? expires_at { get; set; } + public string approved_by { get; set; } = ""; + public List devices { get; set; } = new(); + } + + public class DeviceRecord + { + public string Uid { get; set; } = ""; + public string? Name { get; set; } + public DateTime LinkedAt { get; set; } = DateTime.UtcNow; + public DateTime? LastSeenAt { get; set; } + public bool Active { get; set; } = true; + public string Source { get; set; } = "import"; + } + + public class TelegramAccsProfile + { + [JsonProperty("group")] + public int? group { get; set; } + + [JsonProperty("IsPasswd")] + public bool? IsPasswd { get; set; } + + public bool? ban { get; set; } + + public string? ban_msg { get; set; } + + public string? comment { get; set; } + + [JsonProperty("params")] + public Dictionary? @params { get; set; } + + public List? ids { get; set; } + } + + public class TelegramUserRecord + { + public string TelegramId { get; set; } = ""; + public string TgUsername { get; set; } = ""; + public string Role { get; set; } = "user"; + public string Lang { get; set; } = "ru"; + public string? ApprovedBy { get; set; } + public DateTime? CreatedAt { get; set; } + public DateTime? ExpiresAt { get; set; } + + + public bool Disabled { get; set; } + + public bool RegistrationPending { get; set; } + + public List Devices { get; set; } = new(); + + [JsonProperty("accs")] + public TelegramAccsProfile? Accs { get; set; } + } + + public class AuthStatusResponse + { + public bool Authorized { get; set; } + public bool Pending { get; set; } + public bool RegistrationPending { get; set; } + public string? Message { get; set; } + public string? TelegramId { get; set; } + public string? Username { get; set; } + public string? Role { get; set; } + public DateTime? ExpiresAt { get; set; } + public int DeviceCount { get; set; } + } + + public class BindStartRequest + { + public string Uid { get; set; } = ""; + } + + public class DeviceSetNameRequest + { + [JsonProperty("uid", Required = Required.Always)] + public string Uid { get; set; } = ""; + [JsonProperty("name")] + public string? Name { get; set; } + } + + public class DeviceReactivateRequest + { + public string TelegramId { get; set; } = ""; + public string Uid { get; set; } = ""; + } + + public class DeviceUnbindRequest + { + public string TelegramId { get; set; } = ""; + public string Uid { get; set; } = ""; + } + + public class BindCompleteRequest + { + public string Uid { get; set; } = ""; + public string TelegramId { get; set; } = ""; + public string? Username { get; set; } + public string? DeviceName { get; set; } + } + + public class ImportResult + { + public int ImportedUsers { get; set; } + public int ImportedDevices { get; set; } + public int ImportedAdmins { get; set; } + public int ImportedLangs { get; set; } + } + + public class AdminSetUserDisabledRequest + { + public string TelegramId { get; set; } = ""; + public bool Disabled { get; set; } = true; + } + + public class AdminPendingDecisionRequest + { + public string TelegramId { get; set; } = ""; + [JsonProperty("approve")] + public bool Approve { get; set; } = true; + } + + public class BindDeviceOutcome + { + public bool NewUserProvisioned { get; set; } + public bool PendingAdminApproval { get; set; } + } +} diff --git a/mods/TelegramAuth/README.md b/mods/TelegramAuth/README.md new file mode 100644 index 0000000..47af8c8 --- /dev/null +++ b/mods/TelegramAuth/README.md @@ -0,0 +1,137 @@ +# TelegramAuth + +HTTP API и файловое хранилище для привязки **UID устройства Lampa** к учётке Telegram. Проект: **`Modules/Community/TelegramAuth/`**. Работает с [TelegramAuthBot](../TelegramAuthBot/README.md) и с клиентским плагином (см. [обзор Community](../README.md) — `deny.js` / `telegram_auth_gate.js`). + +--- + +## Включение + +- Убедитесь, что **`TelegramAuth`** (и при использовании бота — **`TelegramAuthBot`**) **нет** в **`BaseModule.SkipModules`** в `init.conf` (в шаблоне [`config/base.conf`](../../../config/base.conf) оба отключены по умолчанию). +- [`manifest.json`](manifest.json): **`"enable": true`**. +- `init.conf`: секция **`TelegramAuth`**. Пример: [`init.merge.example.json`](init.merge.example.json). + +--- + +## Назначение + +- Пользователи Telegram: `telegramId`, роль, срок доступа, устройства (UID). +- Статус по UID для UI: привязан / ожидание / истёк срок. +- Лимит **активных** устройств для роли `user` (`max_active_devices_per_user`; у `admin` — без лимита). +- Опционально: импорт legacy, очистка устройств. + +--- + +## Связь с accsdb + +Если **`TelegramAuth.enable`** = **`true`**: + +- В Core выставляется **`accsdb.enable`**. +- Активные привязанные UID синхронизируются в **корневой** **`users.json`** (рядом с `init.conf`) в формате **`AccsUser`**. Хост обычно подхватывает файл в течение ~1 с. + +Если **`enable`** = **`false`**: только хранилище и HTTP API, без accsdb и без подмешивания WAF из этой секции. + +**Когда UID попадает в корневой `users.json`:** пользователь **не** в `RegistrationPending`, **не** `Disabled`, устройство **активно**. Иначе для затронутых UID выполняется **`RemoveUid`**. При нехватке слотов под новое устройство самое старое активное переводится в неактивное и его UID снимается с accsdb. + +Поле **`accs`** в записи пользователя в **`data_dir`/users.json** задаёт группу, бан, `params` (в т.ч. `telegram_id`) и т.д.; срок в accsdb берётся из **`ExpiresAt`** или **`accsdb.shared_daytime`** / 365 дней. Подробная логика: [`Services/AccsdbUidSync.cs`](Services/AccsdbUidSync.cs). + +**Регистрация:** при выключенном `auto_provision_users` запись с таким `telegramId` уже должна быть в **`data_dir`/users.json`. При включённом — может создаваться автоматически (см. таблицу конфига). Ожидание модерации: **`RegistrationPending`** + при создании часто **`Disabled`**. Подтверждение: `POST /tg/auth/admin/user/pending` или бот. + +**`owner_telegram_ids`:** при старте модуля создаются/обновляются как **admin** в **`data_dir`/users.json**. + +Ограничение **чатов** для админ-команд бота задаётся в **`TelegramAuthBot.admin_chat_ids`**, не здесь. + +--- + +## Конфигурация + +| Поле | Описание | +|------|----------| +| `enable` | `true` — accsdb + синхронизация UID + применение **`limit_map`** к WAF. `false` (по умолчанию) — только API/хранилище. | +| `data_dir` | Каталог данных (по умолчанию `database/tgauth`). | +| `legacy_import_path` | База для `POST /tg/auth/import`. | +| `enable_import` / `enable_cleanup` | Разрешить импорт / `POST /tg/auth/devices/cleanup`. | +| `max_active_devices_per_user` | Лимит активных устройств для `user`; `0` → **5**. Для `admin` не применяется. | +| `mutations_api_secret` | Заголовок **`X-TelegramAuth-Mutations-Secret`** (совпадает с ботом). Пусто → `bind/complete` без заголовка; мутации админа из бота без cookie — невозможны. | +| `owner_telegram_ids` | Владельцы → admin при старте. | +| `auto_provision_users` | Создавать пользователя при bind неизвестного `telegramId`. | +| `auto_provision_role` | Роль новой записи (`admin` через auto-provision недоступен → `user`). | +| `auto_provision_lang` | Язык по умолчанию. | +| `auto_provision_expires_days` | Срок в днях; `0` — без срока. | +| `auto_provision_activate_immediately` | `false` — pending до решения админа; `true` — сразу активен. | +| `limit_map` | Правила WAF (тот же формат, что **`WAF.limit_map`** в Core). | +| `accsdb_sync_group_admin` / `accsdb_sync_group_user` | Значение **`group`** в accsdb, если не задано в **`accs.group`** (по умолчанию 100 / 0). | + +### WAF и `limit_map` + +При **`TelegramAuth.enable`** записи из **`TelegramAuth.limit_map`** переносятся в **`CoreInit.conf.WAF.limit_map`**. Перед добавлением из глобального списка удаляются правила с тем же **`pattern`** (точное строковое совпадение, `Ordinal`). Core выбирает **первое** подходящее по пути правило; иначе — глобальный **`WAF.limit_req`**. + +Запрос может **не попадать** под лимит, если для него выставлены **`IsLocalRequest`** / **`IsAnonymousRequest`** — см. порядок middleware в хосте. + +Шаблон по умолчанию в примере: `^/tg/auth` с лимитом запросов с IP. Переопределение: [`init.merge.example.json`](init.merge.example.json). + +--- + +## Хранилище (`data_dir`) + +| Файл | Содержимое | +|------|------------| +| `users.json` | Пользователи Telegram, устройства, опционально **`accs`**. | +| `admins.json` | Служебно (legacy-импорт). | +| `user_langs.json` | `telegramId → язык`. | + +--- + +## HTTP API (префикс `/tg/auth`) + +Маршруты анонимны в смысле cookie-сессии Lampac; админские мутации требуют cookie **`accspasswd`** (root) **или** заголовок **`X-TelegramAuth-Mutations-Secret`** при **непустом** `mutations_api_secret`. Если секрет пуст — заголовок не принимается, для мутаций остаётся только cookie. + +**`POST /tg/auth/bind/complete`:** секрет обязателен только если `mutations_api_secret` не пустой. + +### Чтение / статус + +- `GET /tg/auth/status?uid=` — авторизован ли UID, срок, роль, число устройств. +- `GET /tg/auth/me?uid=` — полная запись владельца UID (404 если нет). + +### Пользователь по Telegram + +- `GET /tg/auth/user/by-telegram?telegramId=` — сводка для бота. +- `GET /tg/auth/devices?telegramId=` — список устройств. + +### Привязка и устройства + +- `POST /tg/auth/bind/start` — `{ "uid" }`. +- `POST /tg/auth/bind/complete` — `{ "uid", "telegramId", "username?", "deviceName?" }`. +- `POST /tg/auth/device/name` — `{ "uid", "name?" }` (плагин Lampa после успешного статуса). +- `POST /tg/auth/device/unbind` — `{ "telegramId", "uid" }` (без секрета мутаций). +- `POST /tg/auth/device/reactivate` — `{ "telegramId", "uid" }` (403 если pending/disabled). + +### Административные + +- `GET /tg/auth/admin/users` +- `GET /tg/auth/admin/user?telegramId=` +- `POST /tg/auth/admin/user/patch` — патч профиля и **`accs`**, см. код/бот `/setuser`. +- `POST /tg/auth/admin/user/disabled` — `{ "telegramId", "disabled" }` (admin нельзя отключить). +- `POST /tg/auth/admin/user/pending` — `{ "telegramId", "approve" }` (отклонение удаляет пользователя из `data_dir` и снимает UID с accsdb). +- `POST /tg/auth/import` +- `POST /tg/auth/devices/cleanup` + +--- + +## Безопасность + +- Не коммитьте **`mutations_api_secret`**. В проде лучше ненулевой секрет. +- Расширяйте **`limit_map`** при необходимости. +- GET с `uid` / `telegramId` раскрывают факт привязки — при жёсткой модели угроз ограничивайте сеть/прокси. + +--- + +## Связь с ботом и клиентом + +- Бот ходит на **`TelegramAuthBot.lampac_base_url`** + пути `tg/auth/...`. Секрет должен совпадать с **`TelegramAuth.mutations_api_secret`**. +- Клиент Lampa: [Community README — плагины](../README.md). + +--- + +## Legacy-импорт + +Каталог **`legacy_import_path`**: минимум **`tokens.json`**; опционально `admin_ids.json`, `user_langs.json`. Форматы — `TelegramAuthStore.ImportFromLegacy`. Запись с `approved_by` = **`registration-pending`** → pending/disabled как при auto-provision без немедленной активации. diff --git a/mods/TelegramAuth/Services/AccsdbUidSync.cs b/mods/TelegramAuth/Services/AccsdbUidSync.cs new file mode 100644 index 0000000..f21c4df --- /dev/null +++ b/mods/TelegramAuth/Services/AccsdbUidSync.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Newtonsoft.Json; +using Shared.Models.Base; +using TelegramAuth.Models; + +namespace TelegramAuth.Services +{ + internal static class AccsdbUidSync + { + const string UsersFileName = "users.json"; + static readonly object FileLock = new object(); + + static readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings + { + Formatting = Formatting.Indented, + NullValueHandling = NullValueHandling.Ignore + }; + + public static void UpsertTelegramDevice(string deviceUid, TelegramUserRecord tgUser, DateTime expiresLocal, int groupAdmin, int groupUser) + { + if (string.IsNullOrWhiteSpace(deviceUid) || tgUser == null) + return; + + var row = BuildAccsUserForDevice(deviceUid.Trim(), tgUser, expiresLocal, groupAdmin, groupUser); + lock (FileLock) + { + EnsureFileExistsUnlocked(); + + var list = ReadListUnlocked(); + var key = row.id; + var found = list.FirstOrDefault(u => + (u.id != null && string.Equals(u.id, key, StringComparison.OrdinalIgnoreCase)) || + (u.ids != null && u.ids.Any(id => string.Equals(id, key, StringComparison.OrdinalIgnoreCase)))); + + if (found != null) + { + found.id = row.id; + found.ids = row.ids ?? new List(); + found.IsPasswd = row.IsPasswd; + found.expires = row.expires; + found.group = row.group; + found.ban = row.ban; + found.ban_msg = row.ban_msg; + found.comment = row.comment; + found.@params = row.@params; + } + else + list.Add(row); + + WriteListUnlocked(list); + } + } + + static AccsUser BuildAccsUserForDevice(string deviceUid, TelegramUserRecord tg, DateTime expiresLocal, int groupAdmin, int groupUser) + { + var accs = tg.Accs; + var group = accs?.group ?? (string.Equals(tg.Role, "admin", StringComparison.OrdinalIgnoreCase) ? groupAdmin : groupUser); + var isPasswd = accs?.IsPasswd ?? false; + var banned = accs?.ban == true; + + var ids = accs?.ids != null && accs.ids.Count > 0 + ? accs.ids.Where(s => !string.IsNullOrWhiteSpace(s)).Select(s => s.Trim()).Distinct(StringComparer.OrdinalIgnoreCase).ToList() + : new List(); + + var paramDict = new Dictionary(StringComparer.Ordinal); + if (accs?.@params != null) + { + foreach (var kv in accs.@params) + paramDict[kv.Key] = kv.Value; + } + + paramDict["telegram_id"] = tg.TelegramId; + if (!string.IsNullOrWhiteSpace(tg.TgUsername)) + paramDict["telegram_username"] = tg.TgUsername.Trim(); + + string comment; + if (!string.IsNullOrWhiteSpace(accs?.comment)) + comment = accs.comment.Trim(); + else if (!string.IsNullOrWhiteSpace(tg.TgUsername)) + comment = $"telegram:{tg.TelegramId} @{tg.TgUsername.Trim()}"; + else + comment = $"telegram:{tg.TelegramId}"; + + return new AccsUser + { + id = deviceUid, + ids = ids, + expires = expiresLocal, + group = group, + ban = banned, + ban_msg = string.IsNullOrWhiteSpace(accs?.ban_msg) ? null : accs.ban_msg.Trim(), + comment = comment, + IsPasswd = isPasswd, + @params = paramDict + }; + } + + public static void RemoveUid(string deviceUid) + { + if (string.IsNullOrWhiteSpace(deviceUid)) + return; + + var key = deviceUid.Trim(); + lock (FileLock) + { + if (!File.Exists(Path.GetFullPath(UsersFileName))) + return; + + var list = ReadListUnlocked(); + foreach (var u in list) + { + if (u.ids != null && u.ids.Count > 0) + u.ids = u.ids.Where(id => !string.Equals(id, key, StringComparison.OrdinalIgnoreCase)).ToList(); + } + + list = list + .Where(u => u.id == null || !string.Equals(u.id, key, StringComparison.OrdinalIgnoreCase)) + .ToList(); + + WriteListUnlocked(list); + } + } + + static void EnsureFileExistsUnlocked() + { + var full = Path.GetFullPath(UsersFileName); + var dir = Path.GetDirectoryName(full); + if (!string.IsNullOrEmpty(dir)) + Directory.CreateDirectory(dir); + + if (!File.Exists(full)) + File.WriteAllText(full, "[]" + Environment.NewLine); + } + + static List ReadListUnlocked() + { + try + { + var full = Path.GetFullPath(UsersFileName); + if (!File.Exists(full)) + return new List(); + + var txt = File.ReadAllText(full); + if (string.IsNullOrWhiteSpace(txt)) + return new List(); + + return JsonConvert.DeserializeObject>(txt) ?? new List(); + } + catch + { + return new List(); + } + } + + static void WriteListUnlocked(List list) + { + var full = Path.GetFullPath(UsersFileName); + var dir = Path.GetDirectoryName(full); + if (!string.IsNullOrEmpty(dir)) + Directory.CreateDirectory(dir); + + File.WriteAllText(full, JsonConvert.SerializeObject(list, JsonSettings)); + } + } +} diff --git a/mods/TelegramAuth/Services/TelegramAuthBindException.cs b/mods/TelegramAuth/Services/TelegramAuthBindException.cs new file mode 100644 index 0000000..7b28954 --- /dev/null +++ b/mods/TelegramAuth/Services/TelegramAuthBindException.cs @@ -0,0 +1,21 @@ +using System; + +namespace TelegramAuth.Services +{ + public enum TelegramAuthBindFailureKind + { + UserNotFound, + UserDisabled + } + + public sealed class TelegramAuthBindException : Exception + { + public TelegramAuthBindFailureKind FailureKind { get; } + + public TelegramAuthBindException(TelegramAuthBindFailureKind failureKind, string message) + : base(message) + { + FailureKind = failureKind; + } + } +} diff --git a/mods/TelegramAuth/Services/TelegramAuthStore.Operations.cs b/mods/TelegramAuth/Services/TelegramAuthStore.Operations.cs new file mode 100644 index 0000000..9a7e733 --- /dev/null +++ b/mods/TelegramAuth/Services/TelegramAuthStore.Operations.cs @@ -0,0 +1,696 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using TelegramAuth.Models; + +namespace TelegramAuth.Services +{ + public partial class TelegramAuthStore + { + public enum SetUserDisabledOutcome + { + Ok, + NotFound, + CannotDisableAdmin + } + + public SetUserDisabledOutcome TrySetUserDisabled(string telegramId, bool disabled) + { + if (string.IsNullOrWhiteSpace(telegramId)) + return SetUserDisabledOutcome.NotFound; + + var users = GetUsers(); + var user = users.FirstOrDefault(u => string.Equals(u.TelegramId, telegramId, StringComparison.Ordinal)); + if (user == null) + return SetUserDisabledOutcome.NotFound; + + if (disabled && string.Equals(user.Role, "admin", StringComparison.OrdinalIgnoreCase)) + return SetUserDisabledOutcome.CannotDisableAdmin; + + user.Disabled = disabled; + if (disabled) + { + user.RegistrationPending = false; + if (ShouldSyncAccsdb() && user.Devices != null) + { + foreach (var d in user.Devices) + { + if (!string.IsNullOrWhiteSpace(d.Uid)) + AccsdbUidSync.RemoveUid(d.Uid); + } + } + + if (user.Devices != null) + { + foreach (var d in user.Devices) + d.Active = false; + } + } + else + user.RegistrationPending = false; + + SaveUsers(users); + + if (!disabled && ShouldSyncAccsdb() && IsActive(user)) + { + foreach (var d in user.Devices ?? new List()) + { + if (d.Active && !string.IsNullOrWhiteSpace(d.Uid)) + SyncDeviceToAccsdb(user, d.Uid); + } + } + + return SetUserDisabledOutcome.Ok; + } + + public enum PendingDecisionOutcome + { + Ok, + NotFound, + NotPending, + CannotRejectAdmin + } + + public PendingDecisionOutcome TryApproveRegistrationPending(string telegramId) + { + var tid = telegramId?.Trim(); + if (string.IsNullOrEmpty(tid)) + return PendingDecisionOutcome.NotFound; + + var users = GetUsers(); + var user = users.FirstOrDefault(u => string.Equals(u.TelegramId, tid, StringComparison.Ordinal)); + if (user == null) + return PendingDecisionOutcome.NotFound; + if (!IsRegistrationPending(user)) + return PendingDecisionOutcome.NotPending; + + user.RegistrationPending = false; + user.Disabled = false; + user.ApprovedBy = "admin-approved"; + SaveUsers(users); + if (ShouldSyncAccsdb() && IsActive(user)) + { + foreach (var d in user.Devices ?? new List()) + { + if (d.Active && !string.IsNullOrWhiteSpace(d.Uid)) + SyncDeviceToAccsdb(user, d.Uid); + } + } + + return PendingDecisionOutcome.Ok; + } + + public PendingDecisionOutcome TryRejectRegistrationPending(string telegramId) + { + var tid = telegramId?.Trim(); + if (string.IsNullOrEmpty(tid)) + return PendingDecisionOutcome.NotFound; + + var users = GetUsers(); + var user = users.FirstOrDefault(u => string.Equals(u.TelegramId, tid, StringComparison.Ordinal)); + if (user == null) + return PendingDecisionOutcome.NotFound; + if (!IsRegistrationPending(user)) + return PendingDecisionOutcome.NotPending; + if (string.Equals(user.Role, "admin", StringComparison.OrdinalIgnoreCase)) + return PendingDecisionOutcome.CannotRejectAdmin; + + if (ShouldSyncAccsdb()) + { + foreach (var d in user.Devices ?? new List()) + { + if (!string.IsNullOrWhiteSpace(d.Uid)) + AccsdbUidSync.RemoveUid(d.Uid); + } + } + + users.Remove(user); + SaveUsers(users); + return PendingDecisionOutcome.Ok; + } + + internal const int DeviceDisplayNameMaxLen = 500; + + public enum SetDeviceDisplayNameOutcome + { + Ok, + InvalidUid, + NotFoundOrInactive + } + + public enum ReactivateDeviceOutcome + { + Ok, + UserNotFound, + UserDisabled, + DeviceNotFound + } + + public enum UnbindDeviceOutcome + { + Ok, + UserNotFound, + DeviceNotFound + } + + public UnbindDeviceOutcome TryUnbindDevice(string telegramId, string uid) + { + var tid = telegramId?.Trim(); + var u = uid?.Trim(); + if (string.IsNullOrEmpty(tid) || string.IsNullOrEmpty(u)) + return UnbindDeviceOutcome.DeviceNotFound; + + var users = GetUsers(); + var user = users.FirstOrDefault(x => string.Equals(x.TelegramId, tid, StringComparison.Ordinal)); + if (user == null) + return UnbindDeviceOutcome.UserNotFound; + + var device = user.Devices?.FirstOrDefault(d => string.Equals(d.Uid, u, StringComparison.OrdinalIgnoreCase)); + if (device == null) + return UnbindDeviceOutcome.DeviceNotFound; + + device.Active = false; + SaveUsers(users); + if (ShouldSyncAccsdb()) + AccsdbUidSync.RemoveUid(u); + return UnbindDeviceOutcome.Ok; + } + + public ReactivateDeviceOutcome TryReactivateDevice(string telegramId, string uid) + { + var tid = telegramId?.Trim(); + var u = uid?.Trim(); + if (string.IsNullOrEmpty(tid) || string.IsNullOrEmpty(u)) + return ReactivateDeviceOutcome.DeviceNotFound; + + var users = GetUsers(); + var user = users.FirstOrDefault(x => string.Equals(x.TelegramId, tid, StringComparison.Ordinal)); + if (user == null) + return ReactivateDeviceOutcome.UserNotFound; + if (IsRegistrationPending(user) || user.Disabled) + return ReactivateDeviceOutcome.UserDisabled; + + var device = user.Devices?.FirstOrDefault(d => string.Equals(d.Uid, u, StringComparison.OrdinalIgnoreCase)); + if (device == null) + return ReactivateDeviceOutcome.DeviceNotFound; + if (device.Active) + return ReactivateDeviceOutcome.Ok; + + CleanupInactiveDevices(users, 90); + + BumpOldestActiveDeviceIfAtDeviceLimit(user); + + device.Active = true; + device.LastSeenAt = DateTime.UtcNow; + SaveUsers(users); + if (ShouldSyncAccsdb() && IsActive(user) && device.Active) + SyncDeviceToAccsdb(user, u); + return ReactivateDeviceOutcome.Ok; + } + + public SetDeviceDisplayNameOutcome TrySetActiveDeviceDisplayName(string uid, string? name) + { + var u = uid?.Trim(); + if (string.IsNullOrEmpty(u)) + return SetDeviceDisplayNameOutcome.InvalidUid; + + string? resolved = null; + if (!string.IsNullOrWhiteSpace(name)) + { + resolved = name.Trim(); + if (resolved.Length > DeviceDisplayNameMaxLen) + resolved = resolved.Substring(0, DeviceDisplayNameMaxLen); + } + + var users = GetUsers(); + foreach (var user in users) + { + if (!IsActive(user)) + continue; + + var dev = user.Devices?.FirstOrDefault(d => d.Active && string.Equals(d.Uid, u, StringComparison.OrdinalIgnoreCase)); + if (dev == null) + continue; + + dev.Name = resolved; + SaveUsers(users); + return SetDeviceDisplayNameOutcome.Ok; + } + + return SetDeviceDisplayNameOutcome.NotFoundOrInactive; + } + + public int GetMaxDevices(TelegramUserRecord user) + { + if (user != null && string.Equals(user.Role, "admin", StringComparison.OrdinalIgnoreCase)) + return AdminUnlimitedDevices; + + int max = _conf.max_active_devices_per_user; + return max > 0 ? max : MaxActiveDevicesPerUser; + } + + public const string BindUserNotFoundMessage = "user not found"; + public const string BindUserDisabledMessage = "user disabled"; + + public BindDeviceOutcome BindDevice(string telegramId, string uid, string? telegramUsername = null, string? deviceDisplayName = null, string source = "manual") + { + var outcome = new BindDeviceOutcome(); + var users = GetUsers(); + var user = users.FirstOrDefault(u => u.TelegramId == telegramId); + if (user == null) + { + if (!_conf.auto_provision_users) + throw new TelegramAuthBindException(TelegramAuthBindFailureKind.UserNotFound, BindUserNotFoundMessage); + + DateTime? expires = null; + var days = _conf.auto_provision_expires_days; + if (days > 0) + expires = DateTime.UtcNow.AddDays(days); + + var role = string.IsNullOrWhiteSpace(_conf.auto_provision_role) + ? "user" + : _conf.auto_provision_role.Trim(); + if (string.Equals(role, "admin", StringComparison.OrdinalIgnoreCase)) + role = "user"; + + var pendingApproval = !_conf.auto_provision_activate_immediately; + user = new TelegramUserRecord + { + TelegramId = telegramId, + TgUsername = telegramUsername?.Trim() ?? "", + Role = role, + Lang = string.IsNullOrWhiteSpace(_conf.auto_provision_lang) ? "ru" : _conf.auto_provision_lang.Trim(), + CreatedAt = DateTime.UtcNow, + ExpiresAt = expires, + ApprovedBy = pendingApproval ? RegistrationPendingApprovedByMarker : "auto-provision", + Disabled = pendingApproval, + RegistrationPending = pendingApproval, + Devices = new List() + }; + users.Add(user); + outcome.NewUserProvisioned = true; + outcome.PendingAdminApproval = pendingApproval; + } + else if (user.Disabled && !IsRegistrationPending(user)) + { + throw new TelegramAuthBindException(TelegramAuthBindFailureKind.UserDisabled, BindUserDisabledMessage); + } + else if (!string.IsNullOrWhiteSpace(telegramUsername)) + { + var trimmed = telegramUsername.Trim(); + if (!string.Equals(user.TgUsername, trimmed, StringComparison.Ordinal)) + user.TgUsername = trimmed; + } + + string? resolvedDeviceName = null; + if (!string.IsNullOrWhiteSpace(deviceDisplayName)) + { + var t = deviceDisplayName.Trim(); + resolvedDeviceName = t.Length > DeviceDisplayNameMaxLen ? t.Substring(0, DeviceDisplayNameMaxLen) : t; + } + + CleanupInactiveDevices(users, 90); + + var existing = user.Devices.FirstOrDefault(d => string.Equals(d.Uid, uid, StringComparison.OrdinalIgnoreCase)); + if (existing == null) + { + BumpOldestActiveDeviceIfAtDeviceLimit(user); + + user.Devices.Add(new DeviceRecord + { + Uid = uid, + Name = resolvedDeviceName, + LinkedAt = DateTime.UtcNow, + LastSeenAt = DateTime.UtcNow, + Active = true, + Source = source + }); + } + else + { + if (!existing.Active) + BumpOldestActiveDeviceIfAtDeviceLimit(user); + + existing.Active = true; + if (!string.IsNullOrWhiteSpace(resolvedDeviceName)) + existing.Name = resolvedDeviceName; + existing.LastSeenAt = DateTime.UtcNow; + } + + SaveUsers(users); + SyncAccsdbForBind(user, uid); + return outcome; + } + + public AuthStatusResponse GetStatus(string uid) + { + var user = FindByUid(uid); + if (user == null) + { + return new AuthStatusResponse + { + Authorized = false, + Pending = true, + Message = "Устройство не привязано. Нужна авторизация через Telegram." + }; + } + + var now = DateTime.UtcNow; + if (IsRegistrationPending(user)) + { + return new AuthStatusResponse + { + Authorized = false, + Pending = true, + RegistrationPending = true, + Message = "Аккаунт ожидает подтверждения администратора.", + TelegramId = user.TelegramId, + Username = user.TgUsername, + Role = user.Role, + ExpiresAt = user.ExpiresAt, + DeviceCount = user.Devices.Count(d => d.Active) + }; + } + + if (user.Disabled) + { + return new AuthStatusResponse + { + Authorized = false, + Pending = false, + RegistrationPending = false, + Message = "Доступ отключён администратором.", + TelegramId = user.TelegramId, + Username = user.TgUsername, + Role = user.Role, + ExpiresAt = user.ExpiresAt, + DeviceCount = user.Devices.Count(d => d.Active) + }; + } + + var expired = user.ExpiresAt.HasValue && user.ExpiresAt.Value.ToUniversalTime() < now; + return new AuthStatusResponse + { + Authorized = !expired, + Pending = false, + RegistrationPending = false, + Message = expired ? "Срок доступа истёк." : "OK", + TelegramId = user.TelegramId, + Username = user.TgUsername, + Role = user.Role, + ExpiresAt = user.ExpiresAt, + DeviceCount = user.Devices.Count(d => d.Active) + }; + } + + public int CleanupInactiveDevices(List? users = null, int olderThanDays = 90) + { + users ??= GetUsers(); + var threshold = DateTime.UtcNow.AddDays(-olderThanDays); + var removed = 0; + + foreach (var user in users) + { + if (user.Devices == null) + continue; + + var before = user.Devices.Count; + user.Devices = user.Devices + .Where(d => d.Active || ((d.LastSeenAt ?? d.LinkedAt) >= threshold)) + .ToList(); + + var maxDevices = GetMaxDevices(user); + if (maxDevices > 0) + { + var activeDevices = user.Devices.Where(d => d.Active).OrderByDescending(d => d.LastSeenAt ?? d.LinkedAt).ToList(); + if (activeDevices.Count > maxDevices) + { + foreach (var extra in activeDevices.Skip(maxDevices)) + { + extra.Active = false; + RemoveUidFromAccsdbIfSync(extra.Uid); + } + } + } + + removed += before - user.Devices.Count; + } + + SaveUsers(users); + return removed; + } + + public enum AdminPatchUserOutcome + { + Ok, + NotFound, + InvalidPayload + } + + public AdminPatchUserOutcome TryAdminPatchUser(string telegramId, JObject body, out string? errorDetail) + { + errorDetail = null; + if (string.IsNullOrWhiteSpace(telegramId)) + { + errorDetail = "telegramId is required"; + return AdminPatchUserOutcome.InvalidPayload; + } + + if (body == null) + { + errorDetail = "body is required"; + return AdminPatchUserOutcome.InvalidPayload; + } + + var users = GetUsers(); + var tid = telegramId.Trim(); + var user = users.FirstOrDefault(u => string.Equals(u.TelegramId, tid, StringComparison.Ordinal)); + if (user == null) + return AdminPatchUserOutcome.NotFound; + + if (body.ContainsKey("expiresAt")) + { + var t = body["expiresAt"]; + if (t == null || t.Type == JTokenType.Null) + user.ExpiresAt = null; + else if (t.Type == JTokenType.String && string.IsNullOrWhiteSpace(t.Value())) + user.ExpiresAt = null; + else + { + var s = t.Type == JTokenType.String ? t.Value() : t.ToString(); + if (!DateTime.TryParse(s, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var dt)) + { + errorDetail = "expiresAt: invalid date"; + return AdminPatchUserOutcome.InvalidPayload; + } + + user.ExpiresAt = dt; + } + } + + if (body.ContainsKey("lang")) + { + var s = body["lang"]?.Value()?.Trim(); + if (!string.IsNullOrEmpty(s)) + user.Lang = s; + } + + if (body.ContainsKey("role")) + { + var r = body["role"]?.Value()?.Trim(); + if (string.IsNullOrEmpty(r)) + { + errorDetail = "role: empty"; + return AdminPatchUserOutcome.InvalidPayload; + } + + if (!string.Equals(r, "admin", StringComparison.OrdinalIgnoreCase) + && !string.Equals(r, "user", StringComparison.OrdinalIgnoreCase)) + { + errorDetail = "role: use user or admin"; + return AdminPatchUserOutcome.InvalidPayload; + } + + user.Role = string.Equals(r, "admin", StringComparison.OrdinalIgnoreCase) ? "admin" : "user"; + } + + if (body["accs"] is JObject accsJo) + { + user.Accs ??= new TelegramAccsProfile(); + MergeAccsPatch(user.Accs, accsJo, out var accsErr); + if (accsErr != null) + { + errorDetail = accsErr; + return AdminPatchUserOutcome.InvalidPayload; + } + } + + if (body["accsRemove"] is JArray rem) + { + user.Accs ??= new TelegramAccsProfile(); + foreach (var x in rem) + { + var key = x.Value()?.Trim(); + if (!string.IsNullOrEmpty(key)) + ApplyAccsRemove(user.Accs, key); + } + } + + if (body["paramsRemove"] is JArray pr) + { + user.Accs ??= new TelegramAccsProfile(); + user.Accs.@params ??= new Dictionary(StringComparer.Ordinal); + foreach (var x in pr) + { + var k = x.Value(); + if (!string.IsNullOrEmpty(k)) + user.Accs.@params.Remove(k); + } + } + + SaveUsers(users); + ResyncUserDevicesToAccsdb(user); + return AdminPatchUserOutcome.Ok; + } + + static void MergeAccsPatch(TelegramAccsProfile accs, JObject jo, out string? error) + { + error = null; + if (jo.ContainsKey("group")) + { + var t = jo["group"]; + if (t == null || t.Type == JTokenType.Null) + accs.group = null; + else if (t.Type == JTokenType.Integer || t.Type == JTokenType.Float) + accs.group = (int)t.Value(); + else + { + error = "accs.group: expected integer or null"; + return; + } + } + + if (jo.ContainsKey("IsPasswd")) + { + var t = jo["IsPasswd"]; + if (t == null || t.Type == JTokenType.Null) + accs.IsPasswd = null; + else if (t.Type != JTokenType.Boolean) + { + error = "accs.IsPasswd: expected boolean or null"; + return; + } + else + accs.IsPasswd = t.Value(); + } + + if (jo.ContainsKey("ban")) + { + var t = jo["ban"]; + if (t == null || t.Type == JTokenType.Null) + accs.ban = null; + else if (t.Type != JTokenType.Boolean) + { + error = "accs.ban: expected boolean or null"; + return; + } + else + accs.ban = t.Value(); + } + + if (jo.ContainsKey("ban_msg")) + { + var t = jo["ban_msg"]; + if (t == null || t.Type == JTokenType.Null) + accs.ban_msg = null; + else + { + var s = t.Value()?.Trim(); + accs.ban_msg = string.IsNullOrEmpty(s) ? null : s; + } + } + + if (jo.ContainsKey("comment")) + { + var t = jo["comment"]; + if (t == null || t.Type == JTokenType.Null) + accs.comment = null; + else + { + var s = t.Value()?.Trim(); + accs.comment = string.IsNullOrEmpty(s) ? null : s; + } + } + + if (jo.ContainsKey("ids")) + { + var arr = jo["ids"] as JArray; + if (arr == null || arr.Count == 0) + accs.ids = null; + else + { + accs.ids = arr + .Select(x => x?.ToString()) + .Where(s => !string.IsNullOrWhiteSpace(s)) + .Select(s => s!.Trim()) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToList(); + } + } + + if (jo["params"] is JObject pjo) + { + accs.@params ??= new Dictionary(StringComparer.Ordinal); + foreach (var prop in pjo.Properties()) + { + if (prop.Value == null || prop.Value.Type == JTokenType.Null) + accs.@params.Remove(prop.Name); + else + accs.@params[prop.Name] = prop.Value.Type == JTokenType.String + ? (prop.Value.Value() ?? "") + : prop.Value.Type == JTokenType.Integer + ? prop.Value.Value() + : prop.Value.Type == JTokenType.Float + ? prop.Value.Value() + : prop.Value.Type == JTokenType.Boolean + ? prop.Value.Value() + : prop.Value.ToString(Formatting.None); + } + } + } + + static void ApplyAccsRemove(TelegramAccsProfile accs, string key) + { + switch (key.ToLowerInvariant()) + { + case "group": + accs.group = null; + break; + case "ispasswd": + case "is_passwd": + case "passwd": + accs.IsPasswd = null; + break; + case "ban": + accs.ban = null; + break; + case "ban_msg": + case "banmsg": + accs.ban_msg = null; + break; + case "comment": + accs.comment = null; + break; + case "ids": + accs.ids = null; + break; + case "params": + accs.@params = null; + break; + } + } + } +} diff --git a/mods/TelegramAuth/Services/TelegramAuthStore.cs b/mods/TelegramAuth/Services/TelegramAuthStore.cs new file mode 100644 index 0000000..5207f52 --- /dev/null +++ b/mods/TelegramAuth/Services/TelegramAuthStore.cs @@ -0,0 +1,371 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using Newtonsoft.Json; +using Shared; +using TelegramAuth.Models; + +namespace TelegramAuth.Services +{ + public partial class TelegramAuthStore + { + readonly TelegramAuthConf _conf; + readonly string baseDir; + readonly string usersPath; + readonly string adminsPath; + readonly string langsPath; + public const int MaxActiveDevicesPerUser = 5; + public const int AdminUnlimitedDevices = -1; + + public TelegramAuthStore(TelegramAuthConf conf) + { + _conf = conf ?? new TelegramAuthConf(); + var rel = string.IsNullOrWhiteSpace(_conf.data_dir) + ? Path.Combine("database", "tgauth") + : _conf.data_dir.Trim().TrimStart('/', '\\'); + baseDir = Path.IsPathRooted(rel) + ? rel + : Path.Combine(AppContext.BaseDirectory, rel); + usersPath = Path.Combine(baseDir, "users.json"); + adminsPath = Path.Combine(baseDir, "admins.json"); + langsPath = Path.Combine(baseDir, "user_langs.json"); + } + + public void EnsureStorage() + { + Directory.CreateDirectory(baseDir); + if (!File.Exists(usersPath)) File.WriteAllText(usersPath, "[]"); + if (!File.Exists(adminsPath)) File.WriteAllText(adminsPath, "[]"); + if (!File.Exists(langsPath)) File.WriteAllText(langsPath, "{}"); + } + + public void EnsureOwnerUsersAtStartup() + { + var ids = _conf.owner_telegram_ids; + if (ids == null || ids.Length == 0) + return; + + var users = GetUsers(); + var changed = false; + var lang = string.IsNullOrWhiteSpace(_conf.auto_provision_lang) ? "ru" : _conf.auto_provision_lang.Trim(); + + foreach (var ownerNumericId in ids) + { + var telegramId = ownerNumericId.ToString(CultureInfo.InvariantCulture); + var user = users.FirstOrDefault(u => string.Equals(u.TelegramId, telegramId, StringComparison.Ordinal)); + if (user == null) + { + users.Add(new TelegramUserRecord + { + TelegramId = telegramId, + TgUsername = "", + Role = "admin", + Lang = lang, + CreatedAt = DateTime.UtcNow, + ApprovedBy = "owner-config", + Disabled = false, + Devices = new List() + }); + changed = true; + continue; + } + + if (!string.Equals(user.Role, "admin", StringComparison.OrdinalIgnoreCase)) + { + user.Role = "admin"; + changed = true; + } + + if (user.Disabled) + { + user.Disabled = false; + changed = true; + } + + if (string.IsNullOrWhiteSpace(user.ApprovedBy)) + { + user.ApprovedBy = "owner-config"; + changed = true; + } + } + + if (changed) + SaveUsers(users); + } + + public List GetUsers() + { + EnsureStorage(); + return JsonConvert.DeserializeObject>(File.ReadAllText(usersPath)) ?? new List(); + } + + public void SaveUsers(List users) + { + EnsureStorage(); + File.WriteAllText(usersPath, JsonConvert.SerializeObject(users, Formatting.Indented)); + } + + public Dictionary GetLangs() + { + EnsureStorage(); + return JsonConvert.DeserializeObject>(File.ReadAllText(langsPath)) ?? new Dictionary(); + } + + public TelegramUserRecord? FindByUid(string uid) + { + if (string.IsNullOrWhiteSpace(uid)) return null; + return GetUsers().FirstOrDefault(u => u.Devices.Any(d => d.Active && string.Equals(d.Uid, uid, StringComparison.OrdinalIgnoreCase))); + } + + public TelegramUserRecord? FindByTelegramId(string telegramId) + { + if (string.IsNullOrWhiteSpace(telegramId)) return null; + return GetUsers().FirstOrDefault(u => string.Equals(u.TelegramId, telegramId, StringComparison.Ordinal)); + } + + public static bool IsRegistrationPending(TelegramUserRecord? user) => user?.RegistrationPending == true; + + public bool IsActive(TelegramUserRecord user) + { + if (user == null) + return false; + + if (IsRegistrationPending(user)) + return false; + + if (user.Disabled) + return false; + + return !user.ExpiresAt.HasValue || user.ExpiresAt.Value.ToUniversalTime() >= DateTime.UtcNow; + } + + bool ShouldSyncAccsdb() => + _conf.enable && + CoreInit.conf != null && CoreInit.conf.accsdb.enable; + + void RemoveUidFromAccsdbIfSync(string deviceUid) + { + if (!ShouldSyncAccsdb() || string.IsNullOrWhiteSpace(deviceUid)) + return; + AccsdbUidSync.RemoveUid(deviceUid.Trim()); + } + + void BumpOldestActiveDeviceIfAtDeviceLimit(TelegramUserRecord user) + { + var maxDevices = GetMaxDevices(user); + if (maxDevices <= 0 || user.Devices == null) + return; + + var activeDevices = user.Devices.Where(d => d.Active).OrderByDescending(d => d.LastSeenAt ?? d.LinkedAt).ToList(); + if (activeDevices.Count < maxDevices) + return; + + var oldestActive = activeDevices.Last(); + oldestActive.Active = false; + RemoveUidFromAccsdbIfSync(oldestActive.Uid); + } + + DateTime ResolveAccsdbExpiresLocal(TelegramUserRecord user) + { + if (user.ExpiresAt.HasValue) + { + var v = user.ExpiresAt.Value; + return v.Kind == DateTimeKind.Utc ? v.ToLocalTime() : v; + } + + var sd = CoreInit.conf?.accsdb?.shared_daytime ?? 0; + var days = sd > 0 ? Math.Max(1, sd) : 365; + return DateTime.Now.AddDays(days); + } + + void SyncDeviceToAccsdb(TelegramUserRecord user, string deviceUid) + { + if (string.IsNullOrWhiteSpace(deviceUid) || user == null) + return; + + if (!ShouldSyncAccsdb()) + return; + + var u = deviceUid.Trim(); + + if (user.Disabled || IsRegistrationPending(user)) + { + AccsdbUidSync.RemoveUid(u); + return; + } + + AccsdbUidSync.UpsertTelegramDevice( + u, + user, + ResolveAccsdbExpiresLocal(user), + _conf.accsdb_sync_group_admin, + _conf.accsdb_sync_group_user); + } + + public void ResyncUserDevicesToAccsdb(TelegramUserRecord user) + { + if (user == null || !ShouldSyncAccsdb()) + return; + + if (user.Disabled || IsRegistrationPending(user)) + { + foreach (var d in user.Devices ?? Enumerable.Empty()) + { + if (!string.IsNullOrWhiteSpace(d.Uid)) + AccsdbUidSync.RemoveUid(d.Uid.Trim()); + } + + return; + } + + foreach (var d in user.Devices ?? Enumerable.Empty()) + { + if (d.Active && !string.IsNullOrWhiteSpace(d.Uid)) + SyncDeviceToAccsdb(user, d.Uid.Trim()); + } + } + + void SyncAccsdbForBind(TelegramUserRecord user, string? deviceUid) + { + if (!ShouldSyncAccsdb() || string.IsNullOrWhiteSpace(deviceUid)) + return; + + var u = deviceUid.Trim(); + + if (user.Disabled || IsRegistrationPending(user)) + { + AccsdbUidSync.RemoveUid(u); + return; + } + + if (!IsActive(user)) + return; + + var dev = user.Devices?.FirstOrDefault(d => string.Equals(d.Uid, u, StringComparison.OrdinalIgnoreCase)); + if (dev == null || !dev.Active) + return; + + SyncDeviceToAccsdb(user, u); + } + + const string RegistrationPendingApprovedByMarker = "registration-pending"; + + static bool LegacyApprovedByIsRegistrationPending(string? approvedBy) + { + if (string.IsNullOrWhiteSpace(approvedBy)) + return false; + return string.Equals(approvedBy.Trim(), RegistrationPendingApprovedByMarker, StringComparison.OrdinalIgnoreCase); + } + + public ImportResult ImportFromLegacy(string legacyBasePath) + { + EnsureStorage(); + + var legacyTokensPath = Path.Combine(legacyBasePath, "tokens.json"); + var legacyAdminsPath = Path.Combine(legacyBasePath, "admin_ids.json"); + var legacyLangsPath = Path.Combine(legacyBasePath, "user_langs.json"); + + var users = new Dictionary(StringComparer.Ordinal); + var langs = new Dictionary(StringComparer.Ordinal); + var result = new ImportResult(); + + if (File.Exists(legacyLangsPath)) + { + langs = JsonConvert.DeserializeObject>(File.ReadAllText(legacyLangsPath)) + ?? new Dictionary(StringComparer.Ordinal); + result.ImportedLangs = langs.Count; + } + + var adminIds = new HashSet(StringComparer.Ordinal); + if (File.Exists(legacyAdminsPath)) + { + var rawAdmins = JsonConvert.DeserializeObject>>(File.ReadAllText(legacyAdminsPath)) + ?? new List>(); + + foreach (var row in rawAdmins) + { + if (row.TryGetValue("telegram_id", out var v) && v != null) + adminIds.Add(v.ToString() ?? ""); + } + result.ImportedAdmins = adminIds.Count; + } + + if (File.Exists(legacyTokensPath)) + { + var raw = JsonConvert.DeserializeObject>(File.ReadAllText(legacyTokensPath)) + ?? new List(); + + foreach (var item in raw) + { + if (string.IsNullOrWhiteSpace(item.telegram_id)) + continue; + + if (!users.TryGetValue(item.telegram_id, out var user)) + { + var pending = LegacyApprovedByIsRegistrationPending(item.approved_by); + var isAdmin = adminIds.Contains(item.telegram_id); + if (isAdmin) + pending = false; + + var approvedBy = string.IsNullOrWhiteSpace(item.approved_by) + ? "legacy-import" + : item.approved_by.Trim(); + + user = new TelegramUserRecord + { + TelegramId = item.telegram_id, + TgUsername = item.tg_username ?? "", + ApprovedBy = approvedBy, + CreatedAt = item.created_at, + ExpiresAt = item.expires_at, + Lang = langs.TryGetValue(item.telegram_id, out var lang) ? lang : "ru", + Role = isAdmin ? "admin" : "user", + Disabled = pending, + RegistrationPending = pending, + Devices = new List() + }; + users[item.telegram_id] = user; + } + + foreach (var device in item.devices ?? new List()) + { + if (device == null || string.IsNullOrWhiteSpace(device.uid)) + continue; + + if (user.Devices.Any(d => string.Equals(d.Uid, device.uid, StringComparison.OrdinalIgnoreCase))) + continue; + + DateTime linkedAt = item.created_at ?? DateTime.UtcNow; + if (!string.IsNullOrWhiteSpace(device.bound_at)) + DateTime.TryParse(device.bound_at, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal, out linkedAt); + + DateTime? lastSeenAt = null; + if (!string.IsNullOrWhiteSpace(device.last_seen) && DateTime.TryParse(device.last_seen, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal, out var parsedLastSeen)) + lastSeenAt = parsedLastSeen; + + user.Devices.Add(new DeviceRecord + { + Uid = device.uid, + Name = device.label, + LinkedAt = linkedAt, + LastSeenAt = lastSeenAt, + Active = true, + Source = "legacy-import" + }); + result.ImportedDevices++; + } + } + + result.ImportedUsers = users.Count; + } + + SaveUsers(users.Values.OrderBy(u => u.TelegramId, StringComparer.Ordinal).ToList()); + File.WriteAllText(langsPath, JsonConvert.SerializeObject(langs, Formatting.Indented)); + File.WriteAllText(adminsPath, JsonConvert.SerializeObject(adminIds.OrderBy(x => x, StringComparer.Ordinal).ToList(), Formatting.Indented)); + + return result; + } + } +} diff --git a/mods/TelegramAuth/TelegramAuth.csproj b/mods/TelegramAuth/TelegramAuth.csproj new file mode 100644 index 0000000..86637c1 --- /dev/null +++ b/mods/TelegramAuth/TelegramAuth.csproj @@ -0,0 +1,13 @@ + + + net10.0 + library + true + TelegramAuth + enable + + + + + + diff --git a/mods/TelegramAuth/init.merge.example.json b/mods/TelegramAuth/init.merge.example.json new file mode 100644 index 0000000..8a63094 --- /dev/null +++ b/mods/TelegramAuth/init.merge.example.json @@ -0,0 +1,28 @@ +{ + "TelegramAuth": { + "enable": true, + "data_dir": "database/tgauth", + "legacy_import_path": "database/legacy_tgauth", + "enable_import": true, + "enable_cleanup": true, + "mutations_api_secret": "GENERATE_A_LONG_RANDOM_SECRET", + "owner_telegram_ids": [123456789], + "auto_provision_users": false, + "auto_provision_role": "user", + "auto_provision_lang": "ru", + "auto_provision_expires_days": 0, + "auto_provision_activate_immediately": false, + "accsdb_sync_group_admin": 100, + "accsdb_sync_group_user": 0, + "max_active_devices_per_user": 5, + "limit_map": [ + { + "pattern": "^/tg/auth", + "map": { + "limit": 25, + "second": 1 + } + } + ] + } +} diff --git a/mods/TelegramAuth/manifest.json b/mods/TelegramAuth/manifest.json new file mode 100644 index 0000000..30a6969 --- /dev/null +++ b/mods/TelegramAuth/manifest.json @@ -0,0 +1,10 @@ +{ + "enable": true, + "dynamic": true, + "tree": [ + "Controllers", + "Models", + "Services", + "ModInit.cs" + ] +} \ No newline at end of file diff --git a/mods/TelegramAuthBot/GlobalUsings.cs b/mods/TelegramAuthBot/GlobalUsings.cs new file mode 100644 index 0000000..d2fe4b5 --- /dev/null +++ b/mods/TelegramAuthBot/GlobalUsings.cs @@ -0,0 +1,16 @@ +global using System; +global using System.Globalization; +global using System.Text; +global using System.Collections.Generic; +global using System.Linq; +global using System.Text.RegularExpressions; +global using System.Threading; +global using System.Threading.Tasks; +global using Microsoft.Extensions.Hosting; +global using Newtonsoft.Json.Linq; +global using Serilog; +global using Telegram.Bot; +global using Telegram.Bot.Types; +global using Telegram.Bot.Types.Enums; +global using Telegram.Bot.Types.ReplyMarkups; +global using TelegramAuthBot.Models; diff --git a/mods/TelegramAuthBot/ModInit.cs b/mods/TelegramAuthBot/ModInit.cs new file mode 100644 index 0000000..35769bd --- /dev/null +++ b/mods/TelegramAuthBot/ModInit.cs @@ -0,0 +1,55 @@ +using Microsoft.Extensions.DependencyInjection; +using Shared.Models.Events; +using Shared.Models.Module; +using Shared.Models.Module.Interfaces; +using Shared.Services; +using TelegramAuthBot.Models; +using TelegramAuthBot.Services; + +namespace TelegramAuthBot +{ + public class ModInit : IModuleLoaded, IModuleConfigure + { + public static TelegramAuthBotConf conf = new(); + + public void Configure(ConfigureModel app) + { + SyncConfFromInit(); + app.services.AddHostedService(); + } + + public void Loaded(InitspaceModel initspace) + { + SyncConfFromInit(); + EventListener.UpdateInitFile += SyncConfFromInit; + } + + public void Dispose() + { + EventListener.UpdateInitFile -= SyncConfFromInit; + } + + static void SyncConfFromInit() + { + conf = ModuleInvoke.Init("TelegramAuthBot", DefaultConfTemplate()); + + if (conf.enable && string.IsNullOrWhiteSpace(conf.bot_token)) + { + var msg = "TelegramAuthBot: enable=true, но bot_token пустой — проверьте секцию TelegramAuthBot в init.conf рядом с Core.dll."; + Console.WriteLine(msg); + TelegramAuthBotSerilog.Log.Warning("{Message}", msg); + } + } + + static TelegramAuthBotConf DefaultConfTemplate() => + new() + { + enable = true, + bot_token = "", + lampac_base_url = "http://127.0.0.1:9118", + request_timeout_sec = 10, + service_display_name = "Lampac NextGen Bot", + mutations_api_secret = "" + }; + } +} diff --git a/mods/TelegramAuthBot/Models/TelegramAuthApiDtos.cs b/mods/TelegramAuthBot/Models/TelegramAuthApiDtos.cs new file mode 100644 index 0000000..a32d5c8 --- /dev/null +++ b/mods/TelegramAuthBot/Models/TelegramAuthApiDtos.cs @@ -0,0 +1,68 @@ +using System.Collections.Generic; + +namespace TelegramAuthBot.Models +{ + public sealed class BindCompleteResult + { + public bool Ok { get; set; } + public bool PendingAdminApproval { get; set; } + } + + public class UserByTelegramDto + { + public bool found { get; set; } + public string telegramId { get; set; } + public string username { get; set; } + public string role { get; set; } + public string lang { get; set; } + public bool disabled { get; set; } + public bool registrationPending { get; set; } + public bool active { get; set; } + public string expiresAt { get; set; } + public int deviceCount { get; set; } + public int maxDevices { get; set; } + } + + public class DevicesResponseDto + { + public string telegramId { get; set; } + public string username { get; set; } + public List devices { get; set; } + } + + public class DeviceDto + { + public string uid { get; set; } + public string name { get; set; } + public bool active { get; set; } + } + + public class AdminUsersListResponseDto + { + public bool ok { get; set; } + public List users { get; set; } + } + + public class AdminUserAccsBriefDto + { + public int? group { get; set; } + public bool? IsPasswd { get; set; } + public bool? ban { get; set; } + public string ban_msg { get; set; } + public string comment { get; set; } + public List ids { get; set; } + } + + public class AdminUserRowDto + { + public string telegramId { get; set; } + public string username { get; set; } + public string role { get; set; } + public bool disabled { get; set; } + public bool registrationPending { get; set; } + public bool active { get; set; } + public string expiresAt { get; set; } + public int deviceCount { get; set; } + public AdminUserAccsBriefDto accs { get; set; } + } +} diff --git a/mods/TelegramAuthBot/Models/TelegramAuthBotConf.cs b/mods/TelegramAuthBot/Models/TelegramAuthBotConf.cs new file mode 100644 index 0000000..165d02a --- /dev/null +++ b/mods/TelegramAuthBot/Models/TelegramAuthBotConf.cs @@ -0,0 +1,23 @@ +namespace TelegramAuthBot.Models +{ + public class TelegramAuthBotConf + { + public bool enable { get; set; } = true; + + public string bot_token { get; set; } = ""; + + public string lampac_base_url { get; set; } = "http://127.0.0.1:9118"; + + public int request_timeout_sec { get; set; } = 10; + + public string service_display_name { get; set; } = "Lampac NextGen Bot"; + + public string mutations_api_secret { get; set; } = ""; + + public long[] admin_chat_ids { get; set; } + + public long[] owner_telegram_ids { get; set; } + + public bool notify_admins_on_pending_provision { get; set; } = true; + } +} diff --git a/mods/TelegramAuthBot/README.md b/mods/TelegramAuthBot/README.md new file mode 100644 index 0000000..dc57385 --- /dev/null +++ b/mods/TelegramAuthBot/README.md @@ -0,0 +1,84 @@ +# TelegramAuthBot + +Фоновый **Telegram-бот** (long polling): привязка UID устройства к учётке в [TelegramAuth](../TelegramAuth/README.md), статус, устройства, админ-импорт/очистка через HTTP. Проект: **`Modules/Community/TelegramAuthBot/`**. + +**Клиент Lampa** (замена `deny.js`, оверлей входа): [Community README](../README.md). + +## Включение + +1. В шаблоне [`config/base.conf`](../../../config/base.conf) **`TelegramAuthBot`** и **`TelegramAuth`** по умолчанию в **`BaseModule.SkipModules`** — уберите оба имени из списка, иначе модули не загрузятся. +2. [`manifest.json`](manifest.json): **`"enable": true`**. +3. `init.conf`: секция **`TelegramAuthBot`**. Пример: [`init.merge.example.json`](init.merge.example.json). + +При `enable: true` и пустом `bot_token` в лог пишется предупреждение; long polling **не стартует**. + +## Зависимости + +1. **Модуль TelegramAuth** должен быть загружен и доступен по HTTP с того хоста/порта, который вы укажете в `lampac_base_url`. +2. Профиль в TelegramAuth: либо уже есть запись, либо включён `auto_provision_users`, либо владелец попадает в базу при **старте Lampac** по `TelegramAuth.owner_telegram_ids` (см. [TelegramAuth](../TelegramAuth/README.md)). + +## Конфигурация (`TelegramAuthBot`) + +| Поле | Описание | +| ---- | -------- | +| `enable` | Включить бота. | +| `bot_token` | Токен от [@BotFather](https://t.me/BotFather). | +| `lampac_base_url` | Базовый URL Lampac **без** завершающего слэша, например `http://127.0.0.1:9118`. К нему добавляются пути вида `tg/auth/...`. | +| `request_timeout_sec` | Таймаут HTTP-клиента к Lampac (минимум 1 сек). | +| `service_display_name` | Отображаемое имя сервиса в текстах бота (HTML-экранирование учитывается в коде). | +| `mutations_api_secret` | Тот же секрет, что **`TelegramAuth.mutations_api_secret`**. Нужен для админ-команд и их HTTP-вызовов (`X-TelegramAuth-Mutations-Secret`). Если пусто — бот сообщит об этом. | +| `admin_chat_ids` | Если **не пустой** — админ-команды только из этих групп, **кроме** лички пользователей из `owner_telegram_ids`. Если **пустой** — из любого чата. | +| `owner_telegram_ids` | Числовые **user** id (как в `TelegramAuth.owner_telegram_ids`). Нужны, если задан `admin_chat_ids`, но владелец хочет вызывать `/users` из лички. | +| `notify_admins_on_pending_provision` | `true` по умолчанию. После успешной привязки UID, когда новый пользователь создан в режиме **ожидания подтверждения** (`auto_provision_activate_immediately: false`), бот рассылает администраторам (роль `admin` в базе) личные сообщения с кнопками «Принять» / «Отклонить`. Для запроса списка админов используется тот же API, что и `/users`; поэтому при **пустом** `mutations_api_secret` уведомления **не отправляются** (в лог пишется предупреждение). Установите `false`, чтобы отключить рассылку. | + +## Как это работает + +1. При старте регистрируется `HostedService`: проверка токена (`GetMe`), снятие webhook, цикл **`GetUpdates`** (long polling). +2. Для каждого апдейта создаётся сессия с HTTP-клиентом к `lampac_base_url` ([`LampacTelegramAuthHttpClient`](Services/LampacTelegramAuthHttpClient.cs)). +3. Привязка устройства: бот вызывает `GET .../tg/auth/user/by-telegram`. Если пользователь **найден**, но доступ **неактивен** (ожидание модерации, отключён админом или истёк срок), привязка **не выполняется** — пользователю отправляется пояснение. Если учётки **ещё нет** и включён `auto_provision_users`, привязка выполняется через `POST .../tg/auth/bind/complete` (создание пользователя и устройства на стороне API). Иначе — тот же `bind/complete` для уже существующей записи. При успешной регистрации с ожиданием подтверждения админам может уйти уведомление (см. **`notify_admins_on_pending_provision`**). Имя устройства в `users.json` клиент выставляет после входа (`POST .../tg/auth/device/name`) или пользователь — командой `/devicename` (см. [TelegramAuth](../TelegramAuth/README.md)). + +**Важно:** процесс должен видеть Lampac по сети. В Docker часто нужен URL вида `http://host.docker.internal:9118` или имя сервиса compose, а не только `127.0.0.1`, если бот крутится в другом контейнере. + +## Сценарий для пользователя + +1. Открыть клиент Lampac, получить **UID** на экране авторизации. +2. Написать боту в **личку** (в группах без `From` бот может не определить Telegram user id — см. сообщение об ошибке в коде). +3. Отправить UID текстом **или** открыть deep link: `https://t.me/?start=` (UID: 6–20 символов, `[a-zA-Z0-9_-]`). +4. В клиенте нажать «Проверить снова» (или аналог), который дергает `GET /tg/auth/status`. + +Кнопки меню: **Мой статус**, **Мои устройства**, **Помощь**. + +## Команды + +| Команда | Кто | Описание | +| ------- | --- | -------- | +| `/start` | Все | Приветствие и инструкция; вариант `/start ` — быстрая привязка. | +| `/help` | Все | Подсказка по входу и кнопкам. | +| `/me` | Все | Профиль из API (роль, срок, число устройств, лимит). | +| `/devices` | Все | Список устройств; для активных — **Отвязать**, для отключённых — **✅ Включить** (снова активирует UID на сервере). | +| `/devicename` | Все | `/devicename <имя>` — имя в `Devices[].Name` через `POST /tg/auth/device/name` (только **свой** активный UID). Вместо имени `-` сбрасывает подпись. Секрет мутаций не нужен. | +| `/users` | Админы TelegramAuth | Список пользователей (постранично); в строке кратко видно **`accs`** (группа, `ban`, …). Ожидающие — **Принять** / **Отклонить**; остальные — **Выкл** / **Вкл**. | +| `/user` | Админы | `/user ` — карточка, JSON **`accs`**, устройства (`GET /tg/auth/admin/user`). | +| `/setuser` | Админы | Правка профиля и **`accs`** через `POST /tg/auth/admin/user/patch` (срок, роль, `group`, `ban`, `banmsg`, `comment`, `ids`, `param`, сброс полей — см. подсказку без аргументов). | +| `/import` | Админы TelegramAuth | `POST /tg/auth/import` (секрет + роль `admin` + при необходимости чат из `admin_chat_ids`). | +| `/cleanup` | Админы TelegramAuth | `POST /tg/auth/devices/cleanup`. | + +Админ определяется по полю **роли** в ответе API пользователя (`role == admin`), не по списку `admin_chat_ids` (этот список только ограничивает **чаты**, не роли). + +## Ссылки на код + +- Регистрация сервиса: [`ModInit.cs`](ModInit.cs) (`IModuleConfigure` → `AddHostedService`). +- Long polling и жизненный цикл: [`TelegramAuthBotHostedService.cs`](Services/TelegramAuthBotHostedService.cs). +- Диалоги и команды: [`TelegramAuthBotSession.cs`](Services/TelegramAuthBotSession.cs). + +## Устранение неполадок + +| Симптом | Что проверить | +| ------- | ------------- | +| Бот молчит при старте | `enable`, `bot_token`, сеть до `api.telegram.org`, логи Serilog / консоль. | +| «Тебя нет в базе» | Запись пользователя с вашим Telegram ID в `users.json` (TelegramAuth), импорт или ручное добавление. | +| Привязка не срабатывает | Lampac доступен с хоста бота по `lampac_base_url`; пользователь `active`; лимит устройств не превышен. | +| `/import` или `/cleanup` не работают | Непустой `mutations_api_secret` (бот не подставляет root-cookie); значение совпадает с `TelegramAuth.mutations_api_secret`; роль `admin`; если задан `admin_chat_ids` — команда из этой группы или из лички при наличии твоего id в `owner_telegram_ids`. | +| Админы не получили уведомление о новой заявке | Включён `notify_admins_on_pending_provision`; задан ненулевой `mutations_api_secret`; в `users.json` есть хотя бы один пользователь с ролью `admin`. | + +Подробное описание HTTP API см. в [README модуля TelegramAuth](../TelegramAuth/README.md). diff --git a/mods/TelegramAuthBot/Services/LampacTelegramAuthHttpClient.cs b/mods/TelegramAuthBot/Services/LampacTelegramAuthHttpClient.cs new file mode 100644 index 0000000..24e7c06 --- /dev/null +++ b/mods/TelegramAuthBot/Services/LampacTelegramAuthHttpClient.cs @@ -0,0 +1,185 @@ +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using TelegramAuthBot.Models; + +namespace TelegramAuthBot.Services +{ + sealed class LampacTelegramAuthHttpClient : IDisposable + { + public const string MutationsSecretHeaderName = "X-TelegramAuth-Mutations-Secret"; + + readonly HttpClient _http; + readonly string _mutationsSecret; + + public LampacTelegramAuthHttpClient(TelegramAuthBotConf conf) + { + var baseUrl = (conf.lampac_base_url ?? "").Trim().TrimEnd('/') + "/"; + _http = new HttpClient { BaseAddress = new Uri(baseUrl, UriKind.Absolute) }; + _http.Timeout = TimeSpan.FromSeconds(Math.Max(1, conf.request_timeout_sec)); + _http.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + _mutationsSecret = conf.mutations_api_secret?.Trim() ?? ""; + } + + public void Dispose() => _http.Dispose(); + + public async Task GetUserByTelegramAsync(string telegramId, CancellationToken ct) + { + var path = "tg/auth/user/by-telegram?" + Uri.EscapeDataString("telegramId") + "=" + Uri.EscapeDataString(telegramId); + using var resp = await _http.GetAsync(path, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + if (!resp.IsSuccessStatusCode) + return null; + return JsonConvert.DeserializeObject(body); + } + + public async Task GetDevicesAsync(string telegramId, CancellationToken ct) + { + var path = "tg/auth/devices?" + Uri.EscapeDataString("telegramId") + "=" + Uri.EscapeDataString(telegramId); + using var resp = await _http.GetAsync(path, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + if (resp.StatusCode == HttpStatusCode.NotFound) + return null; + if (!resp.IsSuccessStatusCode) + return null; + return JsonConvert.DeserializeObject(body); + } + + public async Task BindCompleteAsync(string uid, string telegramId, string username, CancellationToken ct) + { + var payload = new { uid, telegramId, username }; + using var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"); + using var req = new HttpRequestMessage(HttpMethod.Post, "tg/auth/bind/complete") { Content = content }; + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + if (!resp.IsSuccessStatusCode) + return new BindCompleteResult(); + var jo = JObject.Parse(body); + return new BindCompleteResult + { + Ok = jo.Value("ok") == true, + PendingAdminApproval = jo.Value("pendingAdminApproval") == true + }; + } + + public async Task UnbindDeviceAsync(string telegramId, string uid, CancellationToken ct) + { + var payload = new { telegramId, uid }; + using var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"); + using var resp = await _http.PostAsync("tg/auth/device/unbind", content, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + if (!resp.IsSuccessStatusCode) + return false; + var jo = JObject.Parse(body); + return jo.Value("ok") == true; + } + + public async Task<(bool ok, string detail)> ReactivateDeviceAsync(string telegramId, string uid, CancellationToken ct) + { + var payload = new { telegramId, uid }; + using var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"); + using var resp = await _http.PostAsync("tg/auth/device/reactivate", content, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + return resp.IsSuccessStatusCode ? (true, body) : (false, body); + } + + public async Task<(bool ok, string detail)> SetDeviceDisplayNameAsync(string uid, string name, CancellationToken ct) + { + var payload = new { uid, name }; + using var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"); + using var resp = await _http.PostAsync("tg/auth/device/name", content, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + return resp.IsSuccessStatusCode ? (true, body) : (false, body); + } + + public async Task<(bool ok, string detail)> ImportLegacyAsync(CancellationToken ct) + { + using var req = new HttpRequestMessage(HttpMethod.Post, "tg/auth/import"); + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + return resp.IsSuccessStatusCode ? (true, body) : (false, body); + } + + public async Task<(bool ok, string detail)> CleanupDevicesAsync(CancellationToken ct) + { + using var req = new HttpRequestMessage(HttpMethod.Post, "tg/auth/devices/cleanup"); + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + return resp.IsSuccessStatusCode ? (true, body) : (false, body); + } + + public async Task GetAdminUsersAsync(CancellationToken ct) + { + using var req = new HttpRequestMessage(HttpMethod.Get, "tg/auth/admin/users"); + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + if (!resp.IsSuccessStatusCode) + return null; + return JsonConvert.DeserializeObject(body); + } + + public async Task<(bool ok, string detail)> SetUserDisabledAsync(string telegramId, bool disabled, CancellationToken ct) + { + var payload = new { telegramId, disabled }; + using var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"); + using var req = new HttpRequestMessage(HttpMethod.Post, "tg/auth/admin/user/disabled") { Content = content }; + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + return resp.IsSuccessStatusCode ? (true, body) : (false, body); + } + + public async Task<(bool ok, string detail)> ResolveRegistrationPendingAsync(string telegramId, bool approve, CancellationToken ct) + { + var payload = new { telegramId, approve }; + using var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"); + using var req = new HttpRequestMessage(HttpMethod.Post, "tg/auth/admin/user/pending") { Content = content }; + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + return resp.IsSuccessStatusCode ? (true, body) : (false, body); + } + + public async Task<(bool ok, JObject data, string errorBody)> GetAdminUserDetailAsync(string telegramId, CancellationToken ct) + { + var path = "tg/auth/admin/user?" + Uri.EscapeDataString("telegramId") + "=" + Uri.EscapeDataString(telegramId); + using var req = new HttpRequestMessage(HttpMethod.Get, path); + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + if (!resp.IsSuccessStatusCode) + return (false, null, body); + try + { + return (true, JObject.Parse(body), body); + } + catch + { + return (false, null, body); + } + } + + public async Task<(bool ok, string detail)> PatchAdminUserAsync(JObject patch, CancellationToken ct) + { + using var content = new StringContent(patch.ToString(Formatting.None), Encoding.UTF8, "application/json"); + using var req = new HttpRequestMessage(HttpMethod.Post, "tg/auth/admin/user/patch") { Content = content }; + AddMutationsSecret(req); + using var resp = await _http.SendAsync(req, ct).ConfigureAwait(false); + var body = await resp.Content.ReadAsStringAsync(ct).ConfigureAwait(false); + return resp.IsSuccessStatusCode ? (true, body) : (false, body); + } + + void AddMutationsSecret(HttpRequestMessage req) + { + if (_mutationsSecret.Length > 0) + req.Headers.TryAddWithoutValidation(MutationsSecretHeaderName, _mutationsSecret); + } + } +} diff --git a/mods/TelegramAuthBot/Services/TelegramAuthBotHostedService.cs b/mods/TelegramAuthBot/Services/TelegramAuthBotHostedService.cs new file mode 100644 index 0000000..9ead06d --- /dev/null +++ b/mods/TelegramAuthBot/Services/TelegramAuthBotHostedService.cs @@ -0,0 +1,133 @@ +using TelegramAuthBot.Models; + +namespace TelegramAuthBot.Services +{ + public sealed class TelegramAuthBotHostedService : BackgroundService + { + const int GetUpdatesLimit = 100; + const int GetUpdatesTimeoutSeconds = 50; + static readonly TimeSpan GetUpdatesErrorDelay = TimeSpan.FromSeconds(5); + + public TelegramAuthBotHostedService() + { + } + + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + try + { + await RunBotAsync(stoppingToken).ConfigureAwait(false); + } + catch (OperationCanceledException) when (stoppingToken.IsCancellationRequested) + { + } + catch (Exception ex) + { + TelegramAuthBotSerilog.Log.Error(ex, "CatchId={CatchId}", "id_tgauthbot_execute"); + throw; + } + } + + async Task RunBotAsync(CancellationToken stoppingToken) + { + var conf = ModInit.conf; + if (!conf.enable || string.IsNullOrWhiteSpace(conf.bot_token)) + { + var msg = "TelegramAuthBot: отключён (enable=false или пустой bot_token); long polling не запущен."; + Console.WriteLine(msg); + TelegramAuthBotSerilog.Log.Information("{Message}", msg); + return; + } + + using var api = new LampacTelegramAuthHttpClient(conf); + var bot = new TelegramBotClient(conf.bot_token.Trim()); + var displayName = conf.service_display_name ?? "Lampac NextGen Bot"; + + try + { + var me = await bot.GetMe(stoppingToken).ConfigureAwait(false); + var line = $"TelegramAuthBot: @{me.Username} — Telegram API OK; TelegramAuth HTTP {conf.lampac_base_url}"; + Console.WriteLine(line); + TelegramAuthBotSerilog.Log.Information("Telegram OK @{BotUsername}; TelegramAuth {BaseUrl}", me.Username, conf.lampac_base_url); + } + catch (Exception ex) + { + Console.WriteLine("TelegramAuthBot: GetMe не удался (токен или сеть до api.telegram.org). " + ex.Message); + TelegramAuthBotSerilog.Log.Error(ex, "CatchId={CatchId}", "id_tgauthbot_getme"); + return; + } + + try + { + await bot.DeleteWebhook(dropPendingUpdates: false, stoppingToken).ConfigureAwait(false); + } + catch (Exception ex) + { + TelegramAuthBotSerilog.Log.Error(ex, "CatchId={CatchId}", "id_tgauthbot_deletewebhook"); + } + + var session = new TelegramAuthBotSession(api, displayName); + var pollMsg = + $"TelegramAuthBot: long polling GetUpdates (limit {GetUpdatesLimit}, timeout {GetUpdatesTimeoutSeconds}s)."; + Console.WriteLine(pollMsg); + TelegramAuthBotSerilog.Log.Information( + "Long polling GetUpdates limit {Limit} timeout {TimeoutSeconds}s", + GetUpdatesLimit, GetUpdatesTimeoutSeconds); + + await PollUpdatesAsync(bot, session, stoppingToken).ConfigureAwait(false); + } + + async Task PollUpdatesAsync(ITelegramBotClient bot, TelegramAuthBotSession session, CancellationToken stoppingToken) + { + int? offset = null; + while (!stoppingToken.IsCancellationRequested) + { + Update[] updates; + try + { + updates = await bot.GetUpdates( + offset, + limit: GetUpdatesLimit, + timeout: GetUpdatesTimeoutSeconds, + allowedUpdates: null, + cancellationToken: stoppingToken).ConfigureAwait(false); + } + catch (OperationCanceledException) when (stoppingToken.IsCancellationRequested) + { + break; + } + catch (Exception ex) + { + TelegramAuthBotSerilog.Log.Error(ex, "CatchId={CatchId}, DelaySeconds={Delay}", "id_tgauthbot_getupdates", GetUpdatesErrorDelay.TotalSeconds); + try + { + await Task.Delay(GetUpdatesErrorDelay, stoppingToken).ConfigureAwait(false); + } + catch (OperationCanceledException) + { + break; + } + + continue; + } + + foreach (var update in updates) + { + offset = update.Id + 1; + try + { + await session.HandleUpdateAsync(bot, update, stoppingToken).ConfigureAwait(false); + } + catch (OperationCanceledException) when (stoppingToken.IsCancellationRequested) + { + throw; + } + catch (Exception ex) + { + TelegramAuthBotSerilog.Log.Error(ex, "CatchId={CatchId}, UpdateId={UpdateId}", "id_tgauthbot_update", update.Id); + } + } + } + } + } +} diff --git a/mods/TelegramAuthBot/Services/TelegramAuthBotSerilog.cs b/mods/TelegramAuthBot/Services/TelegramAuthBotSerilog.cs new file mode 100644 index 0000000..a40dcb3 --- /dev/null +++ b/mods/TelegramAuthBot/Services/TelegramAuthBotSerilog.cs @@ -0,0 +1,8 @@ +namespace TelegramAuthBot.Services +{ + internal static class TelegramAuthBotSerilog + { + public static readonly Serilog.ILogger Log = + Serilog.Log.ForContext("SourceContext", "TelegramAuthBot"); + } +} diff --git a/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Admin.cs b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Admin.cs new file mode 100644 index 0000000..c9a34a2 --- /dev/null +++ b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Admin.cs @@ -0,0 +1,602 @@ +using Newtonsoft.Json; +using Telegram.Bot.Types; +using TelegramAuthBot.Models; + +namespace TelegramAuthBot.Services +{ + sealed partial class TelegramAuthBotSession + { + static bool IsTelegramAuthAdmin(UserByTelegramDto user) => + user != null && user.found && string.Equals(user.role, "admin", StringComparison.OrdinalIgnoreCase); + + static bool IsAllowedAdminCommandContext(TelegramAuthBotConf conf, ChatType chatType, long chatId, long actorTelegramUserId) + { + var ids = conf.admin_chat_ids; + if (ids == null || ids.Length == 0) + return true; + + if (ids.Contains(chatId)) + return true; + + if (chatType == ChatType.Private) + { + var owners = conf.owner_telegram_ids; + if (owners != null && owners.Length > 0 && owners.Contains(actorTelegramUserId)) + return true; + } + + return false; + } + + async Task TryEnsureAdminMutationAccessAsync(ITelegramBotClient bot, Chat chat, string tgId, CancellationToken ct) + { + var conf = ModInit.conf; + if (string.IsNullOrEmpty(conf.mutations_api_secret)) + { + await bot.SendMessage(chat.Id, + "В конфиге бота не задан mutations_api_secret — тот же секрет, что TelegramAuth.mutations_api_secret в init.conf.", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return false; + } + + if (!long.TryParse(tgId?.Trim(), NumberStyles.Integer, CultureInfo.InvariantCulture, out var actorId)) + actorId = 0; + + if (!IsAllowedAdminCommandContext(conf, chat.Type, chat.Id, actorId)) + { + await bot.SendMessage(chat.Id, + "Админ-команды с этого чата запрещены. Из лички: добавь свой id в owner_telegram_ids бота (те же числа, что TelegramAuth.owner_telegram_ids) или пиши из чата admin_chat_ids. Пустой admin_chat_ids — админ-команды из любого чата, в т.ч. лички.", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return false; + } + + var user = await _api.GetUserByTelegramAsync(tgId, ct).ConfigureAwait(false); + if (!IsTelegramAuthAdmin(user)) + { + await bot.SendMessage(chat.Id, + "Команда только для администраторов (роль admin в базе TelegramAuth). Остальные пользователи входят через UID; ты включаешь их в /users.", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return false; + } + + return true; + } + + async Task TryEnsureAdminForCallbackAsync(ITelegramBotClient bot, CallbackQuery cq, CancellationToken ct) + { + var chat = cq.Message?.Chat; + var chatId = chat?.Id ?? cq.From.Id; + var conf = ModInit.conf; + if (string.IsNullOrEmpty(conf.mutations_api_secret)) + { + await bot.SendMessage(chatId, + "В конфиге бота не задан mutations_api_secret — тот же секрет, что TelegramAuth.mutations_api_secret в init.conf.", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return false; + } + + var chatType = chat?.Type ?? ChatType.Private; + if (!IsAllowedAdminCommandContext(conf, chatType, chatId, cq.From.Id)) + { + await bot.SendMessage(chatId, + "Админ-команды с этого чата запрещены. Для лички добавь свой id в owner_telegram_ids или используй чат из admin_chat_ids.", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return false; + } + + var tgId = cq.From.Id.ToString(); + var user = await _api.GetUserByTelegramAsync(tgId, ct).ConfigureAwait(false); + if (!IsTelegramAuthAdmin(user)) + { + await bot.SendMessage(chatId, + "Команда только для администраторов (роль admin в базе TelegramAuth).", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return false; + } + + return true; + } + + static string ShortUserLabel(AdminUserRowDto u) + { + var n = string.IsNullOrEmpty(u.username) ? u.telegramId : u.username; + if (n.Length > 14) + n = n.Substring(0, 12) + "…"; + return n; + } + + static (string text, InlineKeyboardMarkup markup) BuildAdminUsersPage(AdminUsersListResponseDto data, int page, string actorTgId) + { + var all = data.users ?? new List(); + var total = all.Count; + var totalPages = total == 0 ? 1 : (total + AdminUsersPageSize - 1) / AdminUsersPageSize; + if (page < 0) page = 0; + if (page >= totalPages) page = totalPages - 1; + + var slice = all.Skip(page * AdminUsersPageSize).Take(AdminUsersPageSize).ToList(); + var lines = new List + { + $"Пользователи TelegramAuth · всего {total} · стр. {page + 1}/{totalPages}\n" + }; + + foreach (var u in slice) + { + var adm = string.Equals(u.role, "admin", StringComparison.OrdinalIgnoreCase); + var st = u.registrationPending + ? "⏳ ждёт подтв." + : u.disabled ? "🔒 отключён" : u.active ? "✅ доступ" : "⏸ нет доступа"; + var tag = string.IsNullOrEmpty(u.username) ? "—" : "@" + EscapeHtml(u.username); + var accsHint = ""; + if (u.accs != null) + { + var bits = new List(); + if (u.accs.group.HasValue) + bits.Add($"g:{u.accs.group.Value}"); + if (u.accs.ban == true) + bits.Add("ban"); + if (u.accs.IsPasswd == true) + bits.Add("passwd"); + if (!string.IsNullOrEmpty(u.accs.comment)) + bits.Add(TruncatePlain(u.accs.comment, 18)); + if (bits.Count > 0) + accsHint = " · " + EscapeHtml(string.Join(", ", bits)) + ""; + } + + lines.Add($"{tag} · {EscapeHtml(u.telegramId)} · {st}{(adm ? " · admin" : "")}{accsHint}"); + } + + if (total == 0) + lines.Add("\nЗаписей пока нет."); + + var rows = new List(); + foreach (var u in slice) + { + var isAdmin = string.Equals(u.role, "admin", StringComparison.OrdinalIgnoreCase); + var self = string.Equals(u.telegramId, actorTgId, StringComparison.Ordinal); + if (isAdmin || self) + continue; + + var label = ShortUserLabel(u); + if (u.registrationPending) + { + var cbA = $"{CbApprovePending}{page}|{u.telegramId}"; + var cbR = $"{CbRejectPending}{page}|{u.telegramId}"; + if (Encoding.UTF8.GetByteCount(cbA) <= 64 && Encoding.UTF8.GetByteCount(cbR) <= 64) + { + rows.Add(new[] + { + InlineKeyboardButton.WithCallbackData($"✅ Принять · {label}", cbA), + InlineKeyboardButton.WithCallbackData($"❌ Отклонить · {label}", cbR) + }); + } + + continue; + } + + var cb = u.disabled + ? $"{CbEnableUser}{page}|{u.telegramId}" + : $"{CbDisableUser}{page}|{u.telegramId}"; + if (Encoding.UTF8.GetByteCount(cb) <= 64) + { + var title = u.disabled ? $"✅ Вкл · {label}" : $"🚫 Выкл · {label}"; + rows.Add(new[] { InlineKeyboardButton.WithCallbackData(title, cb) }); + } + } + + if (totalPages > 1) + { + var nav = new List(); + if (page > 0) + nav.Add(InlineKeyboardButton.WithCallbackData("◀️", CbUsersPage + (page - 1))); + if (page < totalPages - 1) + nav.Add(InlineKeyboardButton.WithCallbackData("▶️", CbUsersPage + (page + 1))); + if (nav.Count > 0) + rows.Add(nav.ToArray()); + } + + var markup = rows.Count > 0 ? new InlineKeyboardMarkup(rows) : null; + return (string.Join("\n", lines), markup); + } + + async Task SendOrEditAdminUsersPageAsync(ITelegramBotClient bot, ChatId chatId, int? messageId, AdminUsersListResponseDto data, int page, string actorTgId, CancellationToken ct) + { + var (text, markup) = BuildAdminUsersPage(data, page, actorTgId); + if (messageId.HasValue) + { + await bot.EditMessageText(chatId, messageId.Value, text, parseMode: ParseMode.Html, replyMarkup: markup, cancellationToken: ct).ConfigureAwait(false); + } + else + { + await bot.SendMessage(chatId, text, parseMode: ParseMode.Html, replyMarkup: markup, cancellationToken: ct).ConfigureAwait(false); + } + } + + async Task CmdUsersAsync(ITelegramBotClient bot, Chat chat, string tgId, CancellationToken ct) + { + if (!await TryEnsureAdminMutationAccessAsync(bot, chat, tgId, ct).ConfigureAwait(false)) + return; + + var data = await _api.GetAdminUsersAsync(ct).ConfigureAwait(false); + if (data == null || !data.ok) + { + await bot.SendMessage(chat.Id, "❌ Не удалось загрузить список пользователей (проверь секрет и доступ к Lampac).", cancellationToken: ct).ConfigureAwait(false); + return; + } + + await SendOrEditAdminUsersPageAsync(bot, chat.Id, null, data, 0, tgId, ct).ConfigureAwait(false); + } + + static string TruncatePlain(string s, int max) + { + if (string.IsNullOrEmpty(s) || s.Length <= max) + return s ?? ""; + return s.Substring(0, max) + "…"; + } + + async Task CmdAdminUserDetailAsync(ITelegramBotClient bot, Chat chat, string actorTgId, string text, CancellationToken ct) + { + if (!await TryEnsureAdminMutationAccessAsync(bot, chat, actorTgId, ct).ConfigureAwait(false)) + return; + + var m = AdminUserDetailRe.Match(text.Trim()); + if (!m.Success) + { + await bot.SendMessage(chat.Id, + "Просмотр пользователя (accsdb-поля)\n\n/user <telegramId>\n\nПоказывает accs, срок expiresAt, устройства. Редактирование — /setuser.", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return; + } + + var targetId = m.Groups[1].Value; + var (ok, jo, errBody) = await _api.GetAdminUserDetailAsync(targetId, ct).ConfigureAwait(false); + if (!ok || jo == null) + { + await bot.SendMessage(chat.Id, + "❌ Не удалось загрузить пользователя.\n" + TruncateForTelegram(StripJsonError(errBody), 800), + cancellationToken: ct).ConfigureAwait(false); + return; + } + + var role = jo.Value("role") ?? "—"; + var lang = jo.Value("lang") ?? "—"; + var uname = jo.Value("username"); + var active = jo.Value("active") == true; + var disabled = jo.Value("disabled") == true; + var pending = jo.Value("registrationPending") == true; + var exp = jo["expiresAt"]?.ToString() ?? "—"; + var maxDev = jo.Value("maxDevices"); + var devCount = jo.Value("deviceCount"); + var maxStr = maxDev == -1 ? "∞" : (maxDev?.ToString() ?? "—"); + + var accsJson = jo["accs"] is JToken at && at.Type != JTokenType.Null + ? at.ToString(Formatting.Indented) + : "(нет — действуют значения по умолчанию из роли и init)"; + + var devLines = new List(); + if (jo["devices"] is JArray arr) + { + foreach (var d in arr.Take(12)) + { + var uid = d.Value("uid") ?? ""; + var nm = d.Value("name"); + var act = d.Value("active") == true; + var nmShow = string.IsNullOrEmpty(nm) ? "—" : nm; + devLines.Add($"• {EscapeHtml(uid)} · {EscapeHtml(nmShow)} · {(act ? "on" : "off")}"); + } + + if (arr.Count > 12) + devLines.Add($"… ещё {arr.Count - 12}"); + } + + var devBlock = devLines.Count > 0 ? string.Join("\n", devLines) : "нет устройств"; + + var msg = + $"Пользователь {EscapeHtml(targetId)}\n" + + $"@{EscapeHtml(string.IsNullOrEmpty(uname) ? "—" : uname)} · роль {EscapeHtml(role)} · lang {EscapeHtml(lang)}\n" + + $"активен: {(active ? "да" : "нет")} · отключён: {(disabled ? "да" : "нет")} · ожидание: {(pending ? "да" : "нет")}\n" + + $"Срок (ExpiresAt): {EscapeHtml(exp)}\n" + + $"Устройства: {devCount ?? 0} / {maxStr}\n\n" + + "accs (синхронизируется в корневой users.json):\n
" + EscapeHtml(accsJson) + "
\n\n" + + "Устройства:\n" + devBlock; + + await bot.SendMessage(chat.Id, msg, parseMode: ParseMode.Html, cancellationToken: ct).ConfigureAwait(false); + } + + async Task CmdAdminSetUserAsync(ITelegramBotClient bot, Chat chat, string actorTgId, string text, CancellationToken ct) + { + if (!await TryEnsureAdminMutationAccessAsync(bot, chat, actorTgId, ct).ConfigureAwait(false)) + return; + + var m = AdminSetUserRe.Match(text.Trim()); + if (!m.Success) + { + await bot.SendMessage(chat.Id, + "Изменение пользователя (accsdb)\n\n" + + "/setuser <telegramId> <команда> …\n\n" + + "Команды:\n" + + "• group <n> или clear\n" + + "• expires <дата ISO или yyyy-MM-dd> или clear\n" + + "• role user | admin\n" + + "• lang <код>\n" + + "• comment <текст>\n" + + "• banmsg <текст>\n" + + "• passwd on | off\n" + + "• ban on | off — бан в accsdb (учётка TG активна); текст — banmsg\n" + + "• ids uid1,uid2 или clear\n" + + "• param ключ=значение\n" + + "• clearparam ключ\n" + + "• clear group ban ban_msg comment … — сброс полей accs\n\n" + + "Пока аккаунт ожидает подтверждения, UID не попадает в accsdb (при привязке лишний UID удаляется из users.json).\n\n" + + "После изменения при включённом sync данные уходят в корневой users.json.", + parseMode: ParseMode.Html, + cancellationToken: ct).ConfigureAwait(false); + return; + } + + var targetId = m.Groups[1].Value; + var sub = m.Groups[2].Value.Trim().ToLowerInvariant(); + var rest = m.Groups[3].Value.Trim(); + + var patch = new JObject { ["telegramId"] = targetId }; + string err; + + switch (sub) + { + case "group": + if (string.IsNullOrEmpty(rest)) + err = "Укажи число или clear."; + else if (rest.Equals("clear", StringComparison.OrdinalIgnoreCase)) + { + patch["accsRemove"] = new JArray("group"); + err = null; + } + else if (int.TryParse(rest, NumberStyles.Integer, CultureInfo.InvariantCulture, out var g)) + { + patch["accs"] = new JObject { ["group"] = g }; + err = null; + } + else + err = "group: нужно целое число или clear."; + break; + + case "expires": + if (string.IsNullOrEmpty(rest)) + err = "Укажи дату или clear."; + else if (rest.Equals("clear", StringComparison.OrdinalIgnoreCase)) + { + patch["expiresAt"] = JValue.CreateNull(); + err = null; + } + else + { + patch["expiresAt"] = rest; + err = null; + } + + break; + + case "role": + if (!string.Equals(rest, "user", StringComparison.OrdinalIgnoreCase) + && !string.Equals(rest, "admin", StringComparison.OrdinalIgnoreCase)) + err = "role: user или admin."; + else + { + patch["role"] = rest.ToLowerInvariant() == "admin" ? "admin" : "user"; + err = null; + } + + break; + + case "lang": + if (string.IsNullOrEmpty(rest)) + err = "Укажи код языка."; + else + { + patch["lang"] = rest; + err = null; + } + + break; + + case "comment": + patch["accs"] = new JObject { ["comment"] = rest }; + err = null; + break; + + case "banmsg": + patch["accs"] = new JObject { ["ban_msg"] = rest }; + err = null; + break; + + case "passwd": + { + var p = rest.ToLowerInvariant(); + if (p is "on" or "1" or "true" or "yes") + { + patch["accs"] = new JObject { ["IsPasswd"] = true }; + err = null; + } + else if (p is "off" or "0" or "false" or "no") + { + patch["accs"] = new JObject { ["IsPasswd"] = false }; + err = null; + } + else + err = "passwd: on или off."; + break; + } + + case "ban": + { + var p = rest.ToLowerInvariant(); + if (p is "on" or "1" or "true" or "yes") + { + patch["accs"] = new JObject { ["ban"] = true }; + err = null; + } + else if (p is "off" or "0" or "false" or "no") + { + patch["accs"] = new JObject { ["ban"] = false }; + err = null; + } + else + err = "ban: on или off."; + break; + } + + case "ids": + if (string.IsNullOrEmpty(rest)) + err = "Укажи список uid через запятую или clear."; + else if (rest.Equals("clear", StringComparison.OrdinalIgnoreCase)) + { + patch["accsRemove"] = new JArray("ids"); + err = null; + } + else + { + var ids = rest.Split(',', StringSplitOptions.RemoveEmptyEntries) + .Select(s => s.Trim()) + .Where(s => s.Length > 0) + .ToList(); + if (ids.Count == 0) + err = "Пустой список ids."; + else + { + patch["accs"] = new JObject { ["ids"] = new JArray(ids) }; + err = null; + } + } + + break; + + case "param": + { + var eq = rest.IndexOf('='); + if (eq < 1 || eq >= rest.Length - 1) + err = "Формат: param ключ=значение"; + else + { + var k = rest.Substring(0, eq).Trim(); + var v = rest.Substring(eq + 1); + if (string.IsNullOrEmpty(k)) + err = "Пустой ключ."; + else + { + patch["accs"] = new JObject { ["params"] = new JObject { [k] = v } }; + err = null; + } + } + + break; + } + + case "clearparam": + if (string.IsNullOrEmpty(rest)) + err = "Укажи ключ."; + else + { + patch["paramsRemove"] = new JArray(rest.Trim()); + err = null; + } + + break; + + case "clear": + { + var keys = rest.Split(new[] { ' ', ',', ';' }, StringSplitOptions.RemoveEmptyEntries) + .Select(s => s.Trim().ToLowerInvariant()) + .Where(s => s.Length > 0) + .ToList(); + if (keys.Count == 0) + err = "Укажи поля: group, ispasswd, ban, ban_msg, comment, ids, params"; + else + { + patch["accsRemove"] = new JArray(keys); + err = null; + } + + break; + } + + default: + err = "Неизвестная команда. Смотри /setuser без аргументов."; + break; + } + + if (err != null) + { + await bot.SendMessage(chat.Id, "❌ " + err, parseMode: ParseMode.Html, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var (pok, detail) = await _api.PatchAdminUserAsync(patch, ct).ConfigureAwait(false); + if (pok) + await bot.SendMessage(chat.Id, $"✅ Сохранено для {EscapeHtml(targetId)}.", parseMode: ParseMode.Html, cancellationToken: ct).ConfigureAwait(false); + else + await bot.SendMessage(chat.Id, + "❌ Ошибка API:\n" + TruncateForTelegram(StripJsonError(detail), 1200), + cancellationToken: ct).ConfigureAwait(false); + } + + async Task CmdImportAsync(ITelegramBotClient bot, Chat chat, string tgId, CancellationToken ct) + { + if (!await TryEnsureAdminMutationAccessAsync(bot, chat, tgId, ct).ConfigureAwait(false)) + return; + + await bot.SendMessage(chat.Id, "⏳ Запускаю импорт…", cancellationToken: ct).ConfigureAwait(false); + var (ok, detail) = await _api.ImportLegacyAsync(ct).ConfigureAwait(false); + if (ok) + { + try + { + var jo = JObject.Parse(detail); + var msg = + "✅ Импорт завершён.\n" + + $"Пользователей: {jo.Value("importedUsers") ?? 0}, устройств: {jo.Value("importedDevices") ?? 0}, админов: {jo.Value("importedAdmins") ?? 0}, языков: {jo.Value("importedLangs") ?? 0}"; + await bot.SendMessage(chat.Id, msg, cancellationToken: ct).ConfigureAwait(false); + } + catch + { + await bot.SendMessage(chat.Id, "✅ Импорт завершён.\n" + TruncateForTelegram(detail, 3500), cancellationToken: ct).ConfigureAwait(false); + } + } + else + { + await bot.SendMessage(chat.Id, "❌ Ошибка импорта:\n" + TruncateForTelegram(detail, 3500), cancellationToken: ct).ConfigureAwait(false); + } + } + + async Task CmdCleanupAsync(ITelegramBotClient bot, Chat chat, string tgId, CancellationToken ct) + { + if (!await TryEnsureAdminMutationAccessAsync(bot, chat, tgId, ct).ConfigureAwait(false)) + return; + + await bot.SendMessage(chat.Id, "⏳ Очистка неактивных устройств…", cancellationToken: ct).ConfigureAwait(false); + var (ok, detail) = await _api.CleanupDevicesAsync(ct).ConfigureAwait(false); + if (ok) + { + try + { + var jo = JObject.Parse(detail); + var removed = jo.Value("removed") ?? 0; + await bot.SendMessage(chat.Id, $"✅ Готово. Удалено записей устройств: {removed}", cancellationToken: ct).ConfigureAwait(false); + } + catch + { + await bot.SendMessage(chat.Id, "✅ Готово.\n" + TruncateForTelegram(detail, 3500), cancellationToken: ct).ConfigureAwait(false); + } + } + else + { + await bot.SendMessage(chat.Id, "❌ Ошибка очистки:\n" + TruncateForTelegram(detail, 3500), cancellationToken: ct).ConfigureAwait(false); + } + } + } +} diff --git a/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Callbacks.cs b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Callbacks.cs new file mode 100644 index 0000000..de473f2 --- /dev/null +++ b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Callbacks.cs @@ -0,0 +1,233 @@ +using Telegram.Bot.Types; +using TelegramAuthBot.Models; + +namespace TelegramAuthBot.Services +{ + sealed partial class TelegramAuthBotSession + { + async Task HandleCallbackAsync(ITelegramBotClient bot, CallbackQuery cq, CancellationToken ct) + { + var data = cq.Data ?? ""; + if (data.StartsWith("unbind:", StringComparison.Ordinal)) + { + await HandleUnbindDeviceCallbackAsync(bot, cq, ct).ConfigureAwait(false); + return; + } + + if (data.StartsWith(CbReactivateDevice, StringComparison.Ordinal)) + { + await HandleReactivateDeviceCallbackAsync(bot, cq, ct).ConfigureAwait(false); + return; + } + + if (data.StartsWith(CbApprovePending, StringComparison.Ordinal) + || data.StartsWith(CbRejectPending, StringComparison.Ordinal)) + { + await HandlePendingRegistrationCallbackAsync(bot, cq, ct).ConfigureAwait(false); + return; + } + + if (data.StartsWith(CbUsersPage, StringComparison.Ordinal) + || data.StartsWith(CbDisableUser, StringComparison.Ordinal) + || data.StartsWith(CbEnableUser, StringComparison.Ordinal)) + { + await HandleAdminUsersInlineAsync(bot, cq, ct).ConfigureAwait(false); + return; + } + + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + } + + async Task HandleUnbindDeviceCallbackAsync(ITelegramBotClient bot, CallbackQuery cq, CancellationToken ct) + { + var uid = cq.Data != null && cq.Data.Length > 7 ? cq.Data.Substring(7) : ""; + var tgId = cq.From.Id.ToString(); + var name = _displayName; + + var user = await _api.GetUserByTelegramAsync(tgId, ct).ConfigureAwait(false); + if (user == null || !user.found) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + await bot.EditMessageText(cq.Message!.Chat.Id, cq.Message.MessageId, $"Тебя нет в базе {name}.", cancellationToken: ct).ConfigureAwait(false); + return; + } + + var devicesResp = await _api.GetDevicesAsync(tgId, ct).ConfigureAwait(false); + var devices = devicesResp?.devices ?? new List(); + var uids = devices.Select(d => d.uid).Where(u => !string.IsNullOrEmpty(u)).ToHashSet(StringComparer.OrdinalIgnoreCase); + if (!uids.Contains(uid)) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + await bot.EditMessageText(cq.Message.Chat.Id, cq.Message.MessageId, "Это устройство не принадлежит тебе.", cancellationToken: ct).ConfigureAwait(false); + return; + } + + var ok = await _api.UnbindDeviceAsync(tgId, uid, ct).ConfigureAwait(false); + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + if (ok) + await bot.EditMessageText(cq.Message.Chat.Id, cq.Message.MessageId, $"Устройство {uid} отвязано.", cancellationToken: ct).ConfigureAwait(false); + else + await bot.EditMessageText(cq.Message.Chat.Id, cq.Message.MessageId, "Не удалось отвязать устройство.", cancellationToken: ct).ConfigureAwait(false); + } + + async Task HandleReactivateDeviceCallbackAsync(ITelegramBotClient bot, CallbackQuery cq, CancellationToken ct) + { + var prefixLen = CbReactivateDevice.Length; + var uid = cq.Data != null && cq.Data.Length > prefixLen ? cq.Data.Substring(prefixLen) : ""; + var tgId = cq.From.Id.ToString(); + var name = _displayName; + + var user = await _api.GetUserByTelegramAsync(tgId, ct).ConfigureAwait(false); + if (user == null || !user.found) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + await bot.EditMessageText(cq.Message!.Chat.Id, cq.Message.MessageId, $"Тебя нет в базе {name}.", cancellationToken: ct).ConfigureAwait(false); + return; + } + + var devicesResp = await _api.GetDevicesAsync(tgId, ct).ConfigureAwait(false); + var devices = devicesResp?.devices ?? new List(); + var uids = devices.Select(d => d.uid).Where(u => !string.IsNullOrEmpty(u)).ToHashSet(StringComparer.OrdinalIgnoreCase); + if (!uids.Contains(uid)) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + await bot.EditMessageText(cq.Message.Chat.Id, cq.Message.MessageId, "Это устройство не принадлежит тебе.", cancellationToken: ct).ConfigureAwait(false); + return; + } + + var (ok, detail) = await _api.ReactivateDeviceAsync(tgId, uid, ct).ConfigureAwait(false); + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + if (ok) + await bot.EditMessageText(cq.Message.Chat.Id, cq.Message.MessageId, $"Устройство {EscapeHtml(uid)} снова активно. Открой приложение и при необходимости нажми «Проверить снова».", parseMode: ParseMode.Html, cancellationToken: ct).ConfigureAwait(false); + else + await bot.EditMessageText(cq.Message.Chat.Id, cq.Message.MessageId, "Не удалось включить устройство.\n" + TruncateForTelegram(StripJsonError(detail), 500), cancellationToken: ct).ConfigureAwait(false); + } + + async Task HandlePendingRegistrationCallbackAsync(ITelegramBotClient bot, CallbackQuery cq, CancellationToken ct) + { + if (!await TryEnsureAdminForCallbackAsync(bot, cq, ct).ConfigureAwait(false)) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var data = cq.Data ?? ""; + var approve = data.StartsWith(CbApprovePending, StringComparison.Ordinal); + if (!approve && !data.StartsWith(CbRejectPending, StringComparison.Ordinal)) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var prefixLen = approve ? CbApprovePending.Length : CbRejectPending.Length; + var rest = data.Length > prefixLen ? data.Substring(prefixLen) : ""; + var parts = rest.Split('|', 2); + if (parts.Length != 2 || !int.TryParse(parts[0], out var returnPage) || returnPage < 0 || string.IsNullOrWhiteSpace(parts[1])) + { + await bot.AnswerCallbackQuery(cq.Id, "Некорректные данные кнопки.", showAlert: true, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var targetId = parts[1].Trim(); + var (ok, detail) = await _api.ResolveRegistrationPendingAsync(targetId, approve, ct).ConfigureAwait(false); + if (!ok) + { + await bot.AnswerCallbackQuery(cq.Id, TruncateForTelegram(StripJsonError(detail), 180), showAlert: true, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var msg = cq.Message; + var actorTgId = cq.From.Id.ToString(); + if (msg != null && msg.Text != null && msg.Text.IndexOf("Пользователи TelegramAuth", StringComparison.Ordinal) >= 0) + { + var list = await _api.GetAdminUsersAsync(ct).ConfigureAwait(false); + if (list != null && list.ok) + await SendOrEditAdminUsersPageAsync(bot, msg.Chat.Id, msg.MessageId, list, returnPage, actorTgId, ct).ConfigureAwait(false); + } + else if (msg != null) + { + var suffix = approve + ? "\n\n✅ Подтверждено — доступ включён." + : "\n\n❌ Отклонено — запись пользователя удалена из базы."; + try + { + await bot.EditMessageText(msg.Chat.Id, msg.MessageId, msg.Text + suffix, parseMode: ParseMode.Html, replyMarkup: null, cancellationToken: ct).ConfigureAwait(false); + } + catch + { + } + } + + await bot.AnswerCallbackQuery(cq.Id, approve ? "Доступ подтверждён." : "Запись удалена.", cancellationToken: ct).ConfigureAwait(false); + } + + async Task HandleAdminUsersInlineAsync(ITelegramBotClient bot, CallbackQuery cq, CancellationToken ct) + { + if (!await TryEnsureAdminForCallbackAsync(bot, cq, ct).ConfigureAwait(false)) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var msg = cq.Message; + if (msg == null) + { + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var chatId = msg.Chat.Id; + var msgId = msg.MessageId; + var actorTgId = cq.From.Id.ToString(); + var data = cq.Data ?? ""; + + if (data.StartsWith(CbUsersPage, StringComparison.Ordinal)) + { + if (!int.TryParse(data.AsSpan(CbUsersPage.Length), out var page) || page < 0) + page = 0; + var list = await _api.GetAdminUsersAsync(ct).ConfigureAwait(false); + if (list == null || !list.ok) + { + await bot.AnswerCallbackQuery(cq.Id, "Не удалось обновить список.", showAlert: true, cancellationToken: ct).ConfigureAwait(false); + return; + } + + await SendOrEditAdminUsersPageAsync(bot, chatId, msgId, list, page, actorTgId, ct).ConfigureAwait(false); + await bot.AnswerCallbackQuery(cq.Id, cancellationToken: ct).ConfigureAwait(false); + return; + } + + if (data.StartsWith(CbDisableUser, StringComparison.Ordinal) || data.StartsWith(CbEnableUser, StringComparison.Ordinal)) + { + var disable = data.StartsWith(CbDisableUser, StringComparison.Ordinal); + var rest = disable ? data.Substring(CbDisableUser.Length) : data.Substring(CbEnableUser.Length); + var parts = rest.Split('|', 2); + if (parts.Length != 2 || !int.TryParse(parts[0], out var returnPage) || returnPage < 0 || string.IsNullOrWhiteSpace(parts[1])) + { + await bot.AnswerCallbackQuery(cq.Id, "Некорректные данные кнопки.", showAlert: true, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var targetId = parts[1].Trim(); + if (disable && string.Equals(targetId, actorTgId, StringComparison.Ordinal)) + { + await bot.AnswerCallbackQuery(cq.Id, "Нельзя отключить самого себя.", showAlert: true, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var (ok, detail) = await _api.SetUserDisabledAsync(targetId, disable, ct).ConfigureAwait(false); + if (!ok) + { + await bot.AnswerCallbackQuery(cq.Id, TruncateForTelegram(StripJsonError(detail), 180), showAlert: true, cancellationToken: ct).ConfigureAwait(false); + return; + } + + var fresh = await _api.GetAdminUsersAsync(ct).ConfigureAwait(false); + if (fresh != null && fresh.ok) + await SendOrEditAdminUsersPageAsync(bot, chatId, msgId, fresh, returnPage, actorTgId, ct).ConfigureAwait(false); + + await bot.AnswerCallbackQuery(cq.Id, disable ? "Доступ отключён." : "Доступ включён.", showAlert: false, cancellationToken: ct).ConfigureAwait(false); + } + } + } +} diff --git a/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Text.cs b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Text.cs new file mode 100644 index 0000000..f5341e5 --- /dev/null +++ b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.Text.cs @@ -0,0 +1,41 @@ +namespace TelegramAuthBot.Services +{ + sealed partial class TelegramAuthBotSession + { + static string TruncateForTelegram(string s, int maxLen) + { + if (string.IsNullOrEmpty(s) || s.Length <= maxLen) + return s ?? ""; + return s.Substring(0, maxLen) + "…"; + } + + static string StripJsonError(string json) + { + if (string.IsNullOrEmpty(json)) + return "Ошибка API"; + try + { + var jo = JObject.Parse(json); + var err = jo.Value("error"); + var det = jo.Value("detail"); + if (!string.IsNullOrEmpty(det)) + return det; + return err ?? json; + } + catch + { + return json; + } + } + + static string EscapeHtml(string s) + { + if (string.IsNullOrEmpty(s)) + return ""; + return s + .Replace("&", "&", StringComparison.Ordinal) + .Replace("<", "<", StringComparison.Ordinal) + .Replace(">", ">", StringComparison.Ordinal); + } + } +} diff --git a/mods/TelegramAuthBot/Services/TelegramAuthBotSession.UserFlow.cs b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.UserFlow.cs new file mode 100644 index 0000000..b073660 --- /dev/null +++ b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.UserFlow.cs @@ -0,0 +1,302 @@ +using Telegram.Bot.Types; +using TelegramAuthBot.Models; + +namespace TelegramAuthBot.Services +{ + sealed partial class TelegramAuthBotSession + { + async Task NotifyAdminsOfPendingProvisionAsync(ITelegramBotClient bot, string newUserTgId, string username, string deviceUid, CancellationToken ct) + { + var conf = ModInit.conf; + if (!conf.notify_admins_on_pending_provision) + return; + + if (string.IsNullOrEmpty(conf.mutations_api_secret?.Trim())) + { + TelegramAuthBotSerilog.Log.Warning( + "Новый пользователь ожидает активации (TelegramId={TgId}), mutations_api_secret пуст — уведомления админам не отправлены.", + newUserTgId); + return; + } + + AdminUsersListResponseDto data; + try + { + data = await _api.GetAdminUsersAsync(ct).ConfigureAwait(false); + } + catch (Exception ex) + { + TelegramAuthBotSerilog.Log.Warning(ex, "Не удалось загрузить список пользователей для уведомления о новом аккаунте"); + return; + } + + if (data?.users == null || data.users.Count == 0) + return; + + var admins = data.users + .Where(u => string.Equals(u.role, "admin", StringComparison.OrdinalIgnoreCase)) + .Where(u => !string.IsNullOrWhiteSpace(u.telegramId)) + .ToList(); + + if (admins.Count == 0) + { + TelegramAuthBotSerilog.Log.Warning( + "Новый пользователь ожидает активации (TelegramId={TgId}), в базе нет пользователей с ролью admin.", + newUserTgId); + return; + } + + var at = string.IsNullOrEmpty(username) ? "—" : "@" + EscapeHtml(username); + var text = + "🔔 Новый пользователь (ожидает решения)\n\n" + + $"Telegram ID: {EscapeHtml(newUserTgId)}\n" + + $"Username: {at}\n" + + $"UID устройства: {EscapeHtml(deviceUid)}\n\n" + + "Подтвердить — включить доступ. Отклонить — удалить запись из базы."; + + var cbApprove = CbApprovePending + "0|" + newUserTgId; + var cbReject = CbRejectPending + "0|" + newUserTgId; + InlineKeyboardMarkup notifyKb = null; + if (Encoding.UTF8.GetByteCount(cbApprove) <= 64 && Encoding.UTF8.GetByteCount(cbReject) <= 64) + { + notifyKb = new InlineKeyboardMarkup(new[] + { + new[] + { + InlineKeyboardButton.WithCallbackData("✅ Принять", cbApprove), + InlineKeyboardButton.WithCallbackData("❌ Отклонить", cbReject) + } + }); + } + + foreach (var a in admins) + { + if (!long.TryParse(a.telegramId.Trim(), out var adminChatId)) + continue; + try + { + await bot.SendMessage(new ChatId(adminChatId), text, parseMode: ParseMode.Html, replyMarkup: notifyKb, cancellationToken: ct).ConfigureAwait(false); + } + catch (Exception ex) + { + TelegramAuthBotSerilog.Log.Warning(ex, "Не удалось отправить уведомление администратору {AdminTgId}", a.telegramId); + } + } + } + + async Task TryBindAsync(ITelegramBotClient bot, ChatId chatId, string tgId, string username, string uid, bool fromStartDeepLink, CancellationToken ct) + { + var name = _displayName; + var user = await _api.GetUserByTelegramAsync(tgId, ct).ConfigureAwait(false); + if (user != null && user.found && !user.active) + { + string blocked; + if (user.registrationPending) + blocked = "Аккаунт ожидает подтверждения администратора. Когда доступ подтвердят, нажми «Проверить снова» в приложении."; + else if (user.disabled) + blocked = "Доступ отключён администратором. Если только что отправил UID, дождись включения и снова нажми «Проверить снова» в приложении."; + else + blocked = "Твой доступ истёк."; + await bot.SendMessage(chatId, blocked, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return true; + } + + var bind = await _api.BindCompleteAsync(uid, tgId, username, ct).ConfigureAwait(false); + if (bind.Ok) + { + if (bind.PendingAdminApproval) + await NotifyAdminsOfPendingProvisionAsync(bot, tgId, username, uid, ct).ConfigureAwait(false); + + string userText; + if (bind.PendingAdminApproval) + { + userText = + $"✅ Запрос принят\n\n{EscapeHtml(uid)}\n\n" + + "Аккаунт создан и ждёт подтверждения администратора (уведомление с кнопками «Принять» / «Отклонить» или список /users).\n\n" + + $"После подтверждения вернись в {EscapeHtml(name)} и нажми «Проверить снова»."; + } + else + { + var extra = fromStartDeepLink + ? "" + : "\n\n💡 Подсказка: кнопкой 📱 Мои устройства можно посмотреть и отвязать устройства."; + userText = + $"✅ Устройство привязано\n\n{EscapeHtml(uid)}\n\n" + + $"Вернись в {EscapeHtml(name)} и нажми «Проверить снова».{extra}"; + } + + await bot.SendMessage(chatId, userText, parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return true; + } + + if (fromStartDeepLink) + return false; + + if (user != null && user.found) + await bot.SendMessage(chatId, "Не удалось привязать устройство.", replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + else + await bot.SendMessage(chatId, $"Тебя нет в базе {EscapeHtml(name)}. Обратись к администратору.", parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return true; + } + + async Task CmdMeAsync(ITelegramBotClient bot, ChatId chatId, string tgId, CancellationToken ct) + { + var name = _displayName; + var data = await _api.GetUserByTelegramAsync(tgId, ct).ConfigureAwait(false); + if (data == null || !data.found) + { + await bot.SendMessage(chatId, $"Тебя нет в базе авторизации {EscapeHtml(name)}.", parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return; + } + + var maxDev = data.maxDevices == -1 ? "∞" : data.maxDevices.ToString(); + var expires = string.IsNullOrEmpty(data.expiresAt) ? "-" : data.expiresAt; + var accessNote = data.registrationPending + ? " (ожидает подтверждения)" + : data.disabled ? " (отключён администратором)" : ""; + var text = + $"Профиль {EscapeHtml(name)}\n\n" + + $"Пользователь: @{EscapeHtml(data.username ?? "-")}\n" + + $"Telegram ID: {EscapeHtml(data.telegramId ?? tgId)}\n" + + $"Роль: {EscapeHtml(data.role ?? "-")}\n" + + $"Язык: {EscapeHtml(data.lang ?? "-")}\n" + + $"Активен: {(data.active ? "да" : "нет")}{accessNote}\n" + + $"Срок доступа: {EscapeHtml(expires)}\n" + + $"Устройств: {data.deviceCount} / {maxDev}"; + await bot.SendMessage(chatId, text, parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + } + + async Task CmdDevicesAsync(ITelegramBotClient bot, ChatId chatId, string tgId, CancellationToken ct) + { + var data = await _api.GetDevicesAsync(tgId, ct).ConfigureAwait(false); + var devices = data?.devices ?? new List(); + if (devices.Count == 0) + { + await bot.SendMessage(chatId, "У тебя пока нет привязанных устройств.", cancellationToken: ct).ConfigureAwait(false); + return; + } + + var lines = new List { $"Устройства @{EscapeHtml(data!.username ?? tgId)}:" }; + var keyboard = new List(); + foreach (var d in devices) + { + var uid = d.uid ?? ""; + var devName = string.IsNullOrEmpty(d.name) ? "без имени" : d.name; + var state = d.active ? "активно" : "отключено"; + lines.Add($"• {EscapeHtml(uid)} — {EscapeHtml(devName)} ({state})"); + if (!string.IsNullOrEmpty(uid) && d.active) + keyboard.Add(new[] { InlineKeyboardButton.WithCallbackData($"Отвязать {devName}", "unbind:" + uid) }); + else if (!string.IsNullOrEmpty(uid) && !d.active) + keyboard.Add(new[] { InlineKeyboardButton.WithCallbackData($"✅ Включить · {devName}", CbReactivateDevice + uid) }); + } + + var markup = keyboard.Count > 0 ? new InlineKeyboardMarkup(keyboard) : null; + await bot.SendMessage(chatId, string.Join("\n", lines), parseMode: ParseMode.Html, replyMarkup: markup, cancellationToken: ct).ConfigureAwait(false); + } + + async Task CmdDeviceNameAsync(ITelegramBotClient bot, ChatId chatId, string tgId, string text, CancellationToken ct) + { + var t = text.Trim(); + var cmdLen = "/devicename".Length; + if (t.Length > cmdLen && t[cmdLen] == '@') + { + var at = t.IndexOf(' ', cmdLen); + if (at < 0) + { + await bot.SendMessage(chatId, + "Переименование устройства\n\n/devicename <uid> <имя>\n\nUID из «Мои устройства». Чтобы сбросить имя: вместо имени отправь -.", + parseMode: ParseMode.Html, + replyMarkup: MainMenuKeyboard(), + cancellationToken: ct).ConfigureAwait(false); + return; + } + + cmdLen = at; + } + + var args = t.Length > cmdLen ? t.Substring(cmdLen).TrimStart() : ""; + if (string.IsNullOrEmpty(args)) + { + await bot.SendMessage(chatId, + "Переименование устройства\n\n/devicename <uid> <имя>\n\nПример: /devicename abc12xyz Телевизор в зале\nСброс имени: /devicename abc12xyz -", + parseMode: ParseMode.Html, + replyMarkup: MainMenuKeyboard(), + cancellationToken: ct).ConfigureAwait(false); + return; + } + + var firstSpace = args.IndexOf(' '); + if (firstSpace < 0) + { + await bot.SendMessage(chatId, "Нужны UID и имя. Пример: /devicename abc12xyz Телевизор", parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return; + } + + var uid = args.Substring(0, firstSpace).Trim(); + var newName = args.Substring(firstSpace + 1).Trim(); + if (string.IsNullOrEmpty(newName)) + { + await bot.SendMessage(chatId, "Укажи новое имя после UID или - для сброса.", parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return; + } + + if (!UidRe.IsMatch(uid)) + { + await bot.SendMessage(chatId, "Некорректный UID.", replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return; + } + + var devicesResp = await _api.GetDevicesAsync(tgId, ct).ConfigureAwait(false); + var devices = devicesResp?.devices ?? new List(); + var owned = devices.Any(d => + d != null + && d.active + && !string.IsNullOrEmpty(d.uid) + && string.Equals(d.uid, uid, StringComparison.OrdinalIgnoreCase)); + if (!owned) + { + await bot.SendMessage(chatId, "Активного устройства с таким UID у тебя нет. Список — в «Мои устройства».", replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + return; + } + + string apiName = string.Equals(newName, "-", StringComparison.Ordinal) ? null : newName; + var (ok, detail) = await _api.SetDeviceDisplayNameAsync(uid, apiName, ct).ConfigureAwait(false); + if (ok) + { + var shown = apiName == null ? "сброшено (без имени)" : $"«{EscapeHtml(apiName)}»"; + await bot.SendMessage(chatId, $"✅ Имя устройства {EscapeHtml(uid)} — {shown}.", parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + } + else + { + await bot.SendMessage(chatId, + "❌ Не удалось сохранить имя. Если доступ истёк или устройство неактивно — привяжи снова.\n" + TruncateForTelegram(detail, 500), + replyMarkup: MainMenuKeyboard(), + cancellationToken: ct).ConfigureAwait(false); + } + } + + async Task CmdHelpAsync(ITelegramBotClient bot, ChatId chatId, CancellationToken ct) + { + var name = _displayName; + var conf = ModInit.conf; + var text = + $"❓ Помощь по входу в {EscapeHtml(name)}\n\n" + + "Быстрый вход:\n" + + $"1. Открой {EscapeHtml(name)} и дойди до экрана авторизации\n" + + "2. Скопируй UID устройства\n" + + "3. Отправь UID мне сюда\n" + + "4. Вернись в " + EscapeHtml(name) + " и нажми «Проверить снова»\n\n" + + "Кнопки:\n" + + "👤 Мой статус — профиль и срок доступа\n" + + "📱 Мои устройства — список; отвязать активные, включить отключённые\n" + + "/devicename <uid> <имя> — имя в базе (для админки); - сбрасывает\n" + + "❓ Помощь — эта подсказка\n\n" + + "Владелец: числовой user id в TelegramAuth.owner_telegram_ids — при старте Lampac запись admin создаётся в базе. Остальные шлют UID; новых пользователей подтверждаешь в /users (Принять / Отклонить) или кнопками в уведомлении.\n\n" + + "Админ-команды: /users, /user <id>, /setuser …, /import, /cleanup + одинаковый mutations_api_secret." + + (conf.admin_chat_ids != null && conf.admin_chat_ids.Length > 0 + ? "\n\nadmin_chat_ids задан: команды из группы — только там; из лички — если твой id в owner_telegram_ids бота (как на сервере)." + : "\n\nПустой admin_chat_ids — админ-команды из лички без доп. списков."); + await bot.SendMessage(chatId, text, parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + } + } +} diff --git a/mods/TelegramAuthBot/Services/TelegramAuthBotSession.cs b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.cs new file mode 100644 index 0000000..f9825d5 --- /dev/null +++ b/mods/TelegramAuthBot/Services/TelegramAuthBotSession.cs @@ -0,0 +1,244 @@ +using Telegram.Bot.Types; +using TelegramAuthBot.Models; + +namespace TelegramAuthBot.Services +{ + sealed partial class TelegramAuthBotSession + { + static readonly Regex UidRe = new(@"^[a-zA-Z0-9_-]{6,20}$", RegexOptions.Compiled); + static readonly Regex StartCommandRe = new(@"^/start(?:@\w+)?(?:\s+(\S+))?\s*$", RegexOptions.IgnoreCase | RegexOptions.Compiled); + static readonly Regex AdminUserDetailRe = new(@"^/user(?:@\w+)?\s+(\d+)\s*$", RegexOptions.IgnoreCase | RegexOptions.Compiled); + static readonly Regex AdminSetUserRe = new(@"^/setuser(?:@\w+)?\s+(\d+)\s+([a-zA-Z_]+)\s*(.*)$", RegexOptions.IgnoreCase | RegexOptions.Compiled); + + const string BtnStatus = "👤 Мой статус"; + const string BtnDevices = "📱 Мои устройства"; + const string BtnHelp = "❓ Помощь"; + + const int AdminUsersPageSize = 8; + const string CbUsersPage = "ulp:"; + const string CbDisableUser = "d|"; + const string CbEnableUser = "e|"; + const string CbApprovePending = "ap|"; + const string CbRejectPending = "rp|"; + const string CbReactivateDevice = "react:"; + + readonly LampacTelegramAuthHttpClient _api; + readonly string _displayName; + int _firstUpdateLogged; + + public TelegramAuthBotSession(LampacTelegramAuthHttpClient api, string displayName) + { + _api = api; + _displayName = displayName; + } + + public async Task HandleUpdateAsync(ITelegramBotClient bot, Update update, CancellationToken ct) + { + if (Interlocked.CompareExchange(ref _firstUpdateLogged, 1, 0) == 0) + TelegramAuthBotSerilog.Log.Information("Первый апдейт {UpdateId}", update.Id); + + if (update.CallbackQuery is { } cq) + { + await HandleCallbackAsync(bot, cq, ct).ConfigureAwait(false); + return; + } + + var msg = update.Message ?? update.EditedMessage; + if (msg is not { } m) + return; + + var text = MessageTextOrCaption(m); + if (string.IsNullOrEmpty(text)) + return; + + if (!TryResolveTelegramUserId(m, out var tgId)) + { + TelegramAuthBotSerilog.Log.Warning("Не удалось определить telegram user id UpdateId={UpdateId} ChatType={ChatType}", update.Id, m.Chat.Type); + await bot.SendMessage(m.Chat.Id, + "Не могу определить твой Telegram ID в этом чате. Напиши боту в личные сообщения.", + cancellationToken: ct).ConfigureAwait(false); + return; + } + + await HandleMessageAsync(bot, m, text, tgId, ct).ConfigureAwait(false); + } + + static string MessageTextOrCaption(Message msg) + { + if (!string.IsNullOrEmpty(msg.Text)) + return msg.Text; + if (!string.IsNullOrEmpty(msg.Caption)) + return msg.Caption; + return null; + } + + static bool TryResolveTelegramUserId(Message msg, out string tgId) + { + if (msg.From != null) + { + tgId = msg.From.Id.ToString(); + return true; + } + + if (msg.Chat.Type == ChatType.Private) + { + tgId = msg.Chat.Id.ToString(); + return true; + } + + tgId = ""; + return false; + } + + static ReplyKeyboardMarkup MainMenuKeyboard() => + new(new[] + { + new KeyboardButton[] { new(BtnStatus), new(BtnDevices) }, + new KeyboardButton[] { new(BtnHelp) } + }) + { + ResizeKeyboard = true + }; + + async Task SendStartText(ITelegramBotClient bot, ChatId chatId, CancellationToken ct) + { + var name = _displayName; + var text = + $"✨ Привет. Я бот авторизации {EscapeHtml(name)}.\n\n" + + $"С моей помощью можно быстро войти в {EscapeHtml(name)} через Telegram.\n\n" + + "Что я умею:\n" + + "• 🔗 привязать устройство по UID\n" + + "• 👤 показать твой статус\n" + + "• 📱 показать список устройств и переименовать (/devicename)\n" + + "• 🗑️ отвязать устройство кнопкой\n\n" + + "Как войти:\n" + + $"1. Открой {EscapeHtml(name)}\n" + + "2. Скопируй UID с экрана авторизации\n" + + "3. Отправь его мне\n" + + "4. Вернись в " + EscapeHtml(name) + " и нажми «Проверить снова»\n\n" + + "Или просто используй кнопки ниже 👇"; + await bot.SendMessage(chatId, text, parseMode: ParseMode.Html, replyMarkup: MainMenuKeyboard(), cancellationToken: ct).ConfigureAwait(false); + } + + async Task HandleMessageAsync(ITelegramBotClient bot, Message msg, string text, string tgId, CancellationToken ct) + { + var chatId = msg.Chat.Id; + var username = msg.From?.Username ?? ""; + + if (text.StartsWith("/start", StringComparison.OrdinalIgnoreCase)) + { + var m = StartCommandRe.Match(text.Trim()); + var deepUid = m.Success && m.Groups[1].Success ? m.Groups[1].Value.Trim() : ""; + if (!string.IsNullOrEmpty(deepUid) && UidRe.IsMatch(deepUid)) + { + var handled = await TryBindAsync(bot, chatId, tgId, username, deepUid, fromStartDeepLink: true, ct).ConfigureAwait(false); + if (handled) + return; + } + + await SendStartText(bot, chatId, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/help")) + { + await CmdHelpAsync(bot, chatId, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/me")) + { + await CmdMeAsync(bot, chatId, tgId, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/devices")) + { + await CmdDevicesAsync(bot, chatId, tgId, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/devicename")) + { + await CmdDeviceNameAsync(bot, chatId, tgId, text, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/import")) + { + await CmdImportAsync(bot, msg.Chat, tgId, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/cleanup")) + { + await CmdCleanupAsync(bot, msg.Chat, tgId, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/users")) + { + await CmdUsersAsync(bot, msg.Chat, tgId, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/user")) + { + await CmdAdminUserDetailAsync(bot, msg.Chat, tgId, text, ct).ConfigureAwait(false); + return; + } + + if (IsCommand(text, "/setuser")) + { + await CmdAdminSetUserAsync(bot, msg.Chat, tgId, text, ct).ConfigureAwait(false); + return; + } + + var trimmed = text.Trim(); + if (trimmed == BtnStatus) + { + await CmdMeAsync(bot, chatId, tgId, ct).ConfigureAwait(false); + return; + } + + if (trimmed == BtnDevices) + { + await CmdDevicesAsync(bot, chatId, tgId, ct).ConfigureAwait(false); + return; + } + + if (trimmed == BtnHelp) + { + await CmdHelpAsync(bot, chatId, ct).ConfigureAwait(false); + return; + } + + if (trimmed.StartsWith('/')) + return; + + if (UidRe.IsMatch(trimmed)) + { + await TryBindAsync(bot, chatId, tgId, username, trimmed, fromStartDeepLink: false, ct).ConfigureAwait(false); + return; + } + + var name = _displayName; + await bot.SendMessage(chatId, + $"Я жду UID устройства из {EscapeHtml(name)} или используй кнопки ниже 👇", + parseMode: ParseMode.Html, + replyMarkup: MainMenuKeyboard(), + cancellationToken: ct).ConfigureAwait(false); + } + + static bool IsCommand(string text, string command) + { + var t = text.Trim(); + if (!t.StartsWith(command, StringComparison.OrdinalIgnoreCase)) + return false; + if (t.Length == command.Length) + return true; + var c = t[command.Length]; + return c == ' ' || c == '@'; + } + } +} diff --git a/mods/TelegramAuthBot/TelegramAuthBot.csproj b/mods/TelegramAuthBot/TelegramAuthBot.csproj new file mode 100644 index 0000000..34be245 --- /dev/null +++ b/mods/TelegramAuthBot/TelegramAuthBot.csproj @@ -0,0 +1,24 @@ + + + net10.0 + library + true + TelegramAuthBot + enable + disable + + + + + + + + + + <_TelegramBotRef Include="@(ReferencePath)" Condition="'%(Filename)' == 'Telegram.Bot'" /> + + + + + diff --git a/mods/TelegramAuthBot/init.merge.example.json b/mods/TelegramAuthBot/init.merge.example.json new file mode 100644 index 0000000..b3bce7f --- /dev/null +++ b/mods/TelegramAuthBot/init.merge.example.json @@ -0,0 +1,13 @@ +{ + "TelegramAuthBot": { + "enable": true, + "bot_token": "PASTE_YOUR_TELEGRAM_BOT_TOKEN_HERE", + "lampac_base_url": "http://127.0.0.1:9118", + "request_timeout_sec": 10, + "service_display_name": "Lampac NextGen Bot", + "mutations_api_secret": "SAME_AS_TelegramAuth.mutations_api_secret", + "admin_chat_ids": [], + "owner_telegram_ids": [], + "notify_admins_on_pending_provision": true + } +} diff --git a/mods/TelegramAuthBot/manifest.json b/mods/TelegramAuthBot/manifest.json new file mode 100644 index 0000000..8f75ac8 --- /dev/null +++ b/mods/TelegramAuthBot/manifest.json @@ -0,0 +1,13 @@ +{ + "enable": true, + "dynamic": true, + "references": [ + "references/" + ], + "tree": [ + "Models", + "Services", + "GlobalUsings.cs", + "ModInit.cs" + ] +} \ No newline at end of file diff --git a/mods/TelegramAuthBot/references/Telegram.Bot.dll b/mods/TelegramAuthBot/references/Telegram.Bot.dll new file mode 100755 index 0000000000000000000000000000000000000000..addba0839f4dbd2ec382ccdb1af8ad5a802732b5 GIT binary patch literal 2542592 zcmeEv1(;;j(RS}`nI7F8>6sN^7a6$hvbcK)5Q00w-Q_Mj_;xjeySux)YjD@aAp}c8 zfpv$sv}i(&pr3f8k?M$N~cn(4F3Q5=Tz!W zApb3|pZ$OIg55Iq?v~W8_0P_F=djhEopt@4cJ3KBX>zpV=ErXZkz4L zP2PKtaXarZZpF3M8@GG3-S+b~H#f`?SH1R1snqJj(y99UvR{>3dp9-PxW-}gr&15i znM&pD+vDE_J&yET{1~BhV0!Zl>aYKn2Or<_UplqbVHD+m4&x%f!oQ_Z?^;UDmHKC; z68*wH#?6�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

~ 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

LAe79CZ}v8d#yoweF&`ySN?; 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�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

bKEh#u)9WPFBa1=o2d5yv~^VE?I17DV#7SZ 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 -$J z>ksP>>)#!$|BPTgVe()9ig+%9^`8~2KkT)z{;>XYik>CG?8V*T3A@%nu>MPf^@sI` z^@sIemObqC@}hrju>LUj@;_qTb-}K+KG?NjX9c?!>{=Ux&9g0-d-?b9gk5WUu>L!O z^@qI{)*se?SJ87ISWlSzFMnk`BfyB6$P%d&_51J3U6}iwFg>2HU^8qFcHJG>j}Pp+u}OrrIm50CyY7*q=WMWR!QA5)!XI|spvjdZ z*2L^*E!eeS*MeQEyXct_>{_t?F!%MLSa)WyYt71j)`DFNb}iVo<`g|kf?W&dzK(`J z?79QNuC+A#SqpY8*tKBST3+<54R$S9f0+9ken&ia!LGGF`&kQiE!eeS*V{>gshyGnf|AAoFgksP>>p!RHSrY6X!Q9KU?u=(G*mVbjU2AFfb1$%K!L9|n*7BlfZLn*> z`orAU+*o&AuxqW)e%69r3wABowKf(#+k#yS=Dz+c{9)JK9_(5>vY)kJ*MeOOcCB4S z&w*gqg7t^FuP0*NgTbzKDEnCpb}iVoVAncQ^qdWLEtvay@vGyR3U=M0VAndA{j3GM z7VKKEYh5UM_ycLK1?vxUUrS=$wqVy9mi?>+yB6$PuxoV|Jrjbtmp$PLyH;1Q{u6`A zgFmc4tUs)OchNH=SWlSzKZvzv2J1g7*!zX4^EDN$Kdk?pU^6TU_F9;GdHFBJa}?~l z1HrDfH2b+1m^xph!mb6o*79K2S{v+Iu>LUjbziKzF4(o!XFqGf-WTjzuxo7$cCBr} z+{;(P6Lzib!TRqAc3)uc1=b(de^;>n2ZHs4$^T!m*1=%?4+VR_u-C%+!}=d7dd>!u z|E?MFj0C&ZP_X{zg7t@~v+uC}u>Kc<&48hv0Qnz^wc3L99~P`XtUs(jtbb>){u6@9 z|NZcUD_sHlPYl){)*sd%*1tPg{~5vYPwfel|7A1dxd_&ORYA{;>WV zgZ1AQO#YjHInIA@{8O*BJwX2*!TQ7c!}`Pe?+VucKydt1d&1=Z^;qj*u>OaF@#p!4 zy%yFV*8fP+b2ga#e-WN={8O(r6rlgPVDrP~hxLc`zYuH&{-YQ1VeJW%{|B*FTd@Aa zg7t^>hxLc`?+n&|LNNJnpB3jn*tNQX^`985Kde8jKdgUuu>LcG^@Pd4Cf1r6tpBWF z{bB0$&l7_6r>_5;VEvZ_lmB>l!mc$CtpCzr{bBRN`osD!57vKeu%0maZ-`$yuM5_H zeX#zp{;>YA{u_h!-xf^%_k<_xTHAy5-w~`otUs(jtpCnn{5j9NlIx!d1nYkwn0xs` zta~unwGIWl7VKKEYr(E{IM}t0B(v7pVD77JPCOUEt~(U$TIYgY3wABowP4peAM9Gy zsHP{(y}UKnY75qXSg`)E{;>YA{vE;kPY5Rem%n6NB+*&M?<<@38)`{@q2- zj9@)s@?VX$W(Mm&E7<(7`Ci*YTi=k{QIb_DAK>jUd^AlPeR@=SYeoabPD4h8E2 z>jOJOSkJ@3UVEhIKO0QuKMa4^b%%=nbHT0!<5Pc~6RiJ*U^B$OfOO3VCjW`>ZwofV zuwXr5uZ8vOEb0@2$@vSfi*p-n&aPlRCkEqLpWCdHvpZP-8Npr)lkI)sIWznDGXt}d z>(}aF=SkgcbAt6;5=^!u;REYG5Nx)k!DfT0*I%~>>rY+(<-z)|4b~GT^QgITK7;jN zAM89~>fAf5Kdk@8qGww$`Im$z>{{Eihnegs`e8j`J$D9^xqf|4u3w*n^*j(v{x8K^ z2ZPOjDA@VH-aG7CuxlO89@aWi^q&ppUVi@dah`)+cPQAk&IRjpKG@6`lF3~CT=QC( z%1 z`V0q~ZC0@Jgq=bWNvNif;&2~XH;1Hoon8ti_-`osFe`Y#Li+T}(6+F<=*?&Yyq zcU{rHKG?NjeCo3u>{`@aYh$o^wgq!9Bj?504tA~W!RFZ!tUs(jtUs*(u3-HS1nUWt z|823>!C?Il1?vxcEv!GR|B<5SY%ux15T3AW4F&6eE?9q9e^`H5{|iM=_1vZ>O#Vx; zR$H+C!-DmPoe!)(tbb>)872gi|J8TJIS)2}SFrvQgY}2K7Sp2jt&(dIX!d?rT6V`uu(X%#KPneuHydlncu>R|V z@#puLF!lPJ2kTE=|BbYA z{;>X?MbCs_@_#HmVe@wd>pwAAe^`H5e^~$SqGv|1o-p}O#ac6i^`8~2Kde8jKdk?p zqGw4k`KP=o&U3J94Fv1IG?_C7>$5!AwbllEElke)!*gA*KI?Hp>$59Zp98^O3zPHN^W)qG>vJgBoG^9n9X2Pd|B+z*&jyoo zL3qNhH59D>xnTWauZ8u8^}kT`(5xp+{*T34ZNd5v3)TnLr!zSIslP{?5J1lV9oNEo zb_MG*G1#1N{L}dUEUu6Ode#Q(36uFqthFwCcr98V>`dVJr_K!P59_}%*bLi( z$$#Tp;tU77*7oeFzkUwZe@AfqQ~SgE!}{+kdJY8Z36pGg$vw!TQ7c!}`Pe&nbGA z1e5=Kc*3qV5Ul^wVEtk0^_dUWpSu3bgUzruSWlSz(-y{=57vKuu>P>u!urGdZ!CJY z1(W|z!V`9_?ZNu*2*#h+0a$-ne^~!rMbCj?Jz?@c5o;X`*8fnj`C)*sd%*8f7$Q^kKQSx=b!?~S$Eg7qI3tUs(jtUs)OXVEhu znEYQ2PuR7(g7u#m?EGQ59<%>Kd0zf5={O# zg(vJ<1Ht+)4K_clKde8j|Jq=EU^0Iq{MQBRxjtA=SWj3_SkG<2+}&jZ2wz~sF3ZE?1P^*j{pY+*fNJz+i129tAb_`v!P1?zb(*qpGQu%57< z{70?zfysFy{M&-{92Tr6tS77|tmlMaa`rBYa~rIGSFoNFgY|^R2D7VKKAEfa$A|7!HW`gdhd{qI5s>p!FDf$<-{IQF9GpOyXf*N4GAgG+*0Yf1FO zt~C%$Hr84i>{_tbt}Xgu*8NKOtPA$q^}${Xd+o-8w*`~o1$W1O1)E`eus%D2^?~)- zRq%meuZ798EIbbe>vJerA6TCw1)mKj&sXAFSkIwgea;p23&HwSKi}+!$xyu`_Bxnr z+3R7!W`MmGcCF5$J|UPqZw?>Wo~~f?Obpf&))ThByQt47>M%J!9sV$t>$AMzwZUEsljrtdkFykPp7p`{!1`<~cv~=e{vfV} z_1qq;&yHYc1?vOJ7 z-|zm_JN0_Z<1v3cA8+3E`F^Up(!b2i;ha3fH__k7zQ+%r>;05-Z9nw=Gy5RtS=qVA z$D!lznYWNne)u@Y_70z>`GuSvcH}%aJ2PK`r?PkZCS7Z1w^GjY-x?CkI=JePehKdaWeEoWve zXU?gdd$BXe&YzpFAz#XwV|%wR(fmfv%yT(2?aaIw?Dyw&$Fq-iO7t{oS4eHprwnqOo^q1(^p8q|%wn6_~&O2sjx7Xp7>~lX>|Ah&5 z&TZxFc_qK2&acxw+Ic3npTjo~x%~w1f7^?`^G}iAP(M4Y<(y@E|D|^5WS{Hr!&^D~ z+qw2lcq4oNZ`ZYUX7+OSe~>fB&YZVkmvgP{ectn$-Z9y8yw8r1Idq7b~+4KLdI(Fu_vi{ok-w@JYqhovihkv?0cUgaJ`)>;A zZ)DH^EOqS6?`8e9?Y||YKlzbk$IkphPJc(vbF*{pOYl^FzvllLoonaZQqG)xIdkmH zIT-A}_jv{ROwJtp1DgMzG{2HF^GME2J2Q_5d*-Xi=kohC=aYW3K3_TWYdJGd<;=7* z^K7tZzJ`1$XO8`WVb4bP%WuKlQm-YYpXdpUC+WY6)Rk9Ov~1y6p|c&+_` zVV^?IoEh*K6kEj z?VMZ6nX@lvj-5HLz%x15+TQ0+YGx&8&XJrscILba&t>nk`(AzSa%R?Y=A6p!sPpyT zrhhIW`*(v64)&k>-v@up-+a+={yFlQ`aXC2{WI9Ve=g;mWoQ3J&bjAu_P4YD#o+Dt z5Av1ld--L$7d!J?IWw>1%(OG}da!4{fqX4zj_o~vujY5MXZm~cR`yJPhuE2UH`p`Z zM81)|=XYt2o%y|-Js;%kX=mnJ@Z`hCYi;lLVV|krXXMP;k+YkfIrcm1-{>=X3Hem^ zZl9q!c6KY}%-ol=o1K}jz%x15+TQJ(G_#WP+>YeTu`}m*==k@sSCP+$zMr%0J-<&g z?VMH1+4FSh`}y0M{~Ej;I-Y4~j_sYR&(iNja%P^RZ)fJ~@JjY>U!!a7%xvY%xsvm_ z*qQSNyq0sV?S1~HW_EI(;hX4hWS{#HpRM;w&b9r}_w#%U{mDm+9ozHYt7{86d%h%R zx2f#;x9ZrLU!wmC`ZIKF&;QWR(K~?tk^KA)$T{m(crN?gU$1NJoLkG;^Hk0pJ9A!x zmvXMPz0V)h%tp?fb2*=jojI?=E7|+JqigNVY~{?klCzJUIoE@?-!sV9a^~3Ht@^F{ ztmVwSl{3@M%)7zc?-}G9*?WGi=Gd9v%bEEgXQrK*kApq)E##BwILG#$->vzDoS8dv zX4;v#JJ>T{LOzwf=g;_Dy;pMfEalAHmp#)zr*>w(0?*`JYkRk^)XYlGoFh4N?96!; zp3C0nJ9Vv{nYElbr?ThxUhK?y4PMH**7iQ-=jnZuJ!ktnwwyWVa^}1auVnA@1-jPG z%vR1mZ^*fJjgIYe|Gcj4-~{)ZZBufgX}r}T+V`qMg{*|1a?d<#pyq0sV z?Q=iw3-u1jx%XQ+bL`A{6W++)=j(K>oteFyIS+E?*qQSd>_V=!z0cd4S;(2QBkQm2 zyJTn1OYl_oKEL?4eaOVl%u>#reOZ6KcsGR1IT-AB<`v{KIdg39_Vt=y$(ea1>#yxh zJ2Q_5d*-Xi=d$;FOLOeZujR}<8~VQXwZYrpjnQAq-sdNNk=~i1lJina%S4Tm%pvEs-ffgM{?%dnQv#lo%ye#Gnc*pM|{bLOzfOh4;{}x zl{4SYd^_`P&;N0M>qS5Bm2dCy-*zLLG$t6#2nOwRmv=y>M!U_Zk*25-MJ z(O=8n=c_cQ8#=!BR?dCd+2?MsXTFJiBYU5}r8#!?>4%PIJ`VP^Zw>Z7lUK&R?R|da zZ`XSz`&?hUBflemnLblHpS$hP`a6c){sDjIMaTX)d3TuOb6*3nf#{u*a^~2X^E$kez0Y^)T01ja*>n8&s#o$m@*mRY zZs(n`{XYDgA-DIx^F_!0B>4?>a_(BreA_#}@|Ai&`WxB%`{&*Eo?oiIojJXn zYafQbzfbI(`#5;}{f2zBETXa?-Xa3I6_Z&O(cL#63$B<8D@4R!acTdjz zQqHs8m-89fnRzhSGhabIlQYNmo*%FIm7G0~hrX|Ub+Erz=d$oLhepnvb2)SD%y}JN$=>HXw2z&ct(-Yma^~2X^9H<@bFJ-tKKw%Om7F=Z za^~2X^CrBJz0c?9T01j)IddN5%&{})5uLY?Pk!t;$IfnroS8dvX4;wg5{J zc6KY}%-NSS$IhHr;F+9jD>>I5$+_0fwXec+IoH;5u6+%iB{~f{ucNap$+Be~i>}OcKuFqG_oL%y|o*9KM+I@tR|2P9bN` zj_f(x?+Q6{UV^8x_qo&@J9A1obN1!Tu`}mj@b>!w`AqiAzp9ybW>#`$9?7{!J2Q_5 zZ@)K?&*k@NrvJA~YB_UG&e>qkc@23Z=h|~QJJ`AQVz94$9eFF~+ABHN+PU@( zxI_PT=zFG}{+n=*{sa1U`ftI-j~n;dk@Fnv^k0HY^!JCp-*Y?tSB8%Ne=92VkI=W% ze-*CLKOOqMUpxKRhK}bqL+%~U(YMoo9d704=a2psI&Z)o`gib~==8`RWh(D8Gy)2YxoLdQIbM)=>TXe35j`y_F zc?0gyza9GC!A}28xJUm%en&sQU#{QB-a@DN33#6J^E)hO=1Xvi{yzG4`nJ#dCpyda z?~4A<4A}mi@K^lZ(SH#B9{8tx*Vy?y_)o(hgirq7*l*=ZXXRZzl5<~n_BG$Y7pkt>~{KWA&?8tczb~+_G`{>x| zROlR`W2aN2b1M5C_?P-D8ssf}C1)QybL{-w*`D*O{=R-LWWP(>e=aTiUHZ#IZvU`< z@SnEP68<*$BmU9Y`E>Xj;eQAJyzkcUoZ2n#-mUC=-2R-(xku-@ z#~%F$^zHQR^dHeLe$sf>j-0dXTx;jr68(Mj?ey*REA)?szJFfq^zHO(^iPNW_Inb2 z=jk`-pAUV{w=>^Pza9G9zb75~o_~eDoqjj;{hxohMc>YRJN+L02lVaq?evSE{Nnk0 zpB?%6`OE1$Prn@c-e-U4`+n{8?ewdm@A*eV-}h^$Z>L`mea}Bd-%j67|7^&;LnG(C zJ(qJYcCNK^?ZuG$+E&iBSF*2lZs%G%*Io~~JDr?sZ{?h8=UO}0-VM30?d4qiAm>^; z*V?(Z_$gz5N6wyh`gZyy`ujuQ&)-hpPQOC`2z@(!JN)I{s&F6*@=g*y+^h zoT6i=W9Qv&&_74tPTx+yMgMB(`yH^;x6|*2+?`wW?ey*RdpYmS1NwIQkAwZaU3~P| z-;wj&?4PE8?c{&XVE=6SqyL%yY#sdB@~-Teo>R&>cVEsNJLevtU!i|A^nH(Z`gZQ? zc*uQLE&HtPcQrcAko$Y1g|B4qvwhBT<~#R2Ug=(J-=qJxzhnRJgU9#i_~tD* z&e5^cX$Nngv+SSEowxN2W&c^Z{rd&ke^!3(klWu3@BVW=TXphmd-y@lGqH1S@iWHv zVOMs(eJ6+9|9_PGviCXB`~!5Vq2qVvNX~pa^N-Q5(LY7sPX7%32K{sN?eyEBv;A%y zI@@Q6PB(PC=k3t(J=&Smqw|1{oz5dV#mA1%c}Mp1`BQp6c0MoLpV5!{7cX-AQ{Zoa z|2h0o|8neqIeagd!@1i(cVs{F?K>=I&uZvwKbN7ieQ(jJhtBqUVCZ2RG=P%kR^3_MbuR zko&Xl(CLvs$j|%y>~WtR+0V+q1C+@3<;*{jeeL!$LgxsbV{~eCPSH6-r$Of&oeOkY zbgt0phTQjii@Znw0eSIpFYed<9Xa<^4!Pg|edHDLBjh#mQ{)ZubL1`ZE94#WTjV|R z2js=i!RIAE?~i;R`GNfWd7*QJ&M`VQI;ZHIq0^vqj!ujG3i-919XfPw(dm&tATNII zi);P!xFbK`FYUdIfARCi z{deF}PRGtY?!!m$@zD3r;3@JmKJcNOosWXN8Y{vG=F=-cT(p#O;e6Z&@gJ166_+LQBq>~!|gIf9Sn?0+)Y@7^go zXXq^C%(pZD9Q{jl>~yZsxk1NH=N6rNbnJ8<(0P)xzn$Ie^mp|4*7+T2Pfo{9XCIv- z_!M5qxz^6L=jdFbW2bY4&J8+tI=ATDqhqJ@fX)*-b~-zsi2IeZ^PZf}J~{_-p5Y<- zcKS!?AESSQzMcLl`e*1b(6`e+NB*h;`^XQFAIf=d_VY7A{{$U7ol|rc=-BC;qjQOloz4|HH|W^u+@f=jj-Ac}Iy=8~ zd=7hZem~hqekecRyPP>k=$xQqr*n$V0v$V@b964zvD3Li=UUF^bu)PTdj&do=-kWM z-_Fbj^dHfGLf=k*=aa@~wJT?bedGto59OR|XU-A&C+OJeoT9Tp$4=)QolA7=bgt03 zLB~$#7M*)^>~tQ`c|yldXXlrV&u350z1!*RqjLnGpl_#tip~NZJDqcMF43{mxkBd# z9Xp*{bnely(|JJW2^~9~onMaUAU{6`Ih}oU4$-mGIYQ?YUdS)&cV@ry=g2RIeEawK za?W+0nOEpv4}H(M8NB^_Z8_IE&$YMm`*g1V`Rd)!_qF%v+vz``|A_w1Cy#UX;R8AU z%;X69DSU>`0zOCQ3ciIO;GJKA9pEGQSblkU&L?u7iTy$4{%0nq=%1m#K;KUP9Q{jl z>~yZsxrHC#onMLl;X^rl+L?KT&IvkpI;ZF?(6Q4wN9RJ$=XHhr7Jh(te$}}1o}4}H z%-=`nK+f|&MBh&T2>lau>~v1iIg_*VIr1y`7QUCggMTjU>}+TL1Nu+s*y-&2YTUb= zIeT(C`{*3O$8w&-De^Pq=g2RRUm?FnevAA8ejGZ!-=}vuJ3G(LJHKYUuU$FMYEMqz zPJbW$1N0Bkx6?mD{{$U7ol|tq;VbwSet>sAW!!%sK9qAWcJ9T_xku=qpkt?Vip~NZ zJDqcMF65khh5Q=%E%H0$56E|ZE$$0Gf=}Ud_zJ#-AK;x|H_qRav$LINW#=CE(LY4T zPUi@n6Ljo!PSIJ&IoHm)cKYY&U!rfPZ>N8S{`Jt`{%(o<0p9u4@j2|nNAM|pCVS`Y zpWVo>;9K|s-ud<8S-bLkG-vzo>5w1Fc_w!5(at>{p??aW!|+v#7)>EFT+ z@J>B;_T)UDedI^*DSQrJ!ME@Oyz^<}S^Mx2d>$}*3P+hX6~bZh`yb^o&FK}C+OSh+v%U8e-2;4x9|hJb2i?~K70h9!sqZ6 zd?V*M*xA$0p10^fz&o#D2lxm+h0ozD_!fSEpXBUjXE!^$?fj;3hdnucJAFI-ee{pu zQ}`Udf^X#f?A#)MfOkH9+-Dy?f=}Ud_zJ#-@8#T=o%^zLUk~U%p>L;er@!-?u_t^4 zpTg(x6?_Xnz)x~^wx4&9pLbY{JM78n+v(fs@1uVNpTY|{pV2w;EBF?EfOme&xX(U( z1fRm^@THvn?d)%7|10!w(6`gK)4xUk0p9rx>y^1>eFC@XmX27JLMs z!V5Xi!Onfzxvz8dFVVNtx6{8u{|0?KeLMYI^dI1z&m8Y%PtLR2M}7pK!sqZ6d<#Fo zPjcq(eAamGK71&@GkNjvTaS>R!sqZ6d<#FoJD-iS;3N1%&Szxj8QOVBR6zJhPz2lz?O{o2{z&i*^Ub=+rH&JKHn{X3hT zYwcXSFTYPa`=7-f!Kd&!dSMV+T06)r^zw-sy0X~9H;f0+0vU6YO=v>H|e~G@G{uTN+a_*~>bL}lU zJ@Nv*V|MOwAFkjdxR(97{C@psn@^E1JUf@GHyV=>TLgxrRLElclM&}e>pl_$&pmPpi%GtR^eg)si z+1bv_4xL;09(_Cg9-RmH34J^L;!DP7xC8IW+1bu+cCIba--jzX*V_4vj^G+Tg&X)B zZs9AqgKyy;et?TFeX*N=Z?Uu64qU?f@S*&CU&xQ(6FJYy&aL|Q za|)lyxvzzsv+P{kpnndx@D<#_w{QjivD83xe3NGP&xPp)18a{;=a-O;Ue82MZ z{i1&kx9}BwEoc7@`7PYT4{-6@aldd0@57axv+TTwNAQW9`?7OiH9Dv8nVgvmIoH~` zwn6_KZs9AqgKyz`IcN3AAK)i+imw>&aR=U&GiOiE&USV#(cgy;(YMpDQg)a|PeX@0q;#cUT?rTlikip8dO= zci;j2CpkOY*`a9goZ&q=eLMXUoqhNaeLMXMog>*h`*S}*-%h_q{}lZN`gZ!w(DCnz zcJBQgz8pIKbFf8z1$Xc*d@nygXXFp?6FS9LjyvqYdvfNK$oJt2K7wob6mH-a?%-Rv zhaceLeB8N&_u&dYf@}B`ZsgprozLYGd5io;&iiKP^X<^NN5@X5N9PHh;$l3vge&+& z&bfAG*61wIvD0bLxs-jseh=-;w9{|Vzd_$l-%h_n{~moieLMXg{U`M8^zHPE*T?6x zCue^>G$YAqW^@xoqlmSK8HOyJJ{)z=p3SBr&FPGf{vX|jm`ocJDmod3pw}O zBELr7A-|Wiznz&qI#1}>=@h?nJj>4ewkKz%oqjp=xBr|3{X_Ka^ego3%s)ZjPQONH zfsUO{gU%&7b~-IOH|W^ubm-ipW2e)j^MsC_PNAF1?@o5^aZm8)=x1d=KTkQ=ma_hO z@v{cka09n+2j9!tp-28CX9qhw*x8}@UE>aWa{6}qcKRjy6U&JK32EzvoY zvwwyBM9#H#uC0f@-!WSs>-Jq*pl_$&pmT|iolc9+4LWu@9Xj{u*y;4>JjuDQ;`fYu z?#a0?JJ*)z9HL{VQ=xN$j-5`8&H^1fokq?(Z|50aqHm|)qH}|eolb|&y_|dRkw3|~ zcRSY>zjxfBgb(HP?er^jPSCN_snJ=WW2e)gbBT_fPK(YBI(9mpoabrhdETRMr{AOV zBYvor59woC-PY=%1itr&FWTz^$D7vUBbYay#eRnc1OZ=h}Pp?eu$ep5&ZsXTF_& z@eSk55vPCNB)Go_(QlaInR7g&JHCy2k0E4Q=xN$yhgr|b1!!0H|Si*+2Im> zJN*{@YxHmAAF02W|E2ox39;Sx_icxM4;OzJ_b%t$68Qo03V97L*FP|I>I@30H6}yYJ^?XScH<_w!lE*}p;GPQQga_+HMnJ@R5TUR%Ny zT*Hl=J?)%(G349N5uFyD4({Qi9e1-cb63tYERk1m4L5KLcW@6Ee{?*nlyhHpcBqis z$!oZQTey?+%dxQB~3#!d+z$eB|iKbG_S zPvrc0RHJi-P9tZIoqaCQxg6}DcRMp%^gFnRi~o6?S;7^3EN6!r`I(%1X^>waZ;@Xk z?~wOH?)~lD&deV9 zBl6;pk2{xe1=nyRd*=4fIOG>YzWr`Qr$wiO@8s;?BQI{oeRk#SUm`z1ekkX?s?e$7 z25#YNIrBT@_ww^@?{YrhN94ty7Fn%Q{4eAFyK?TmM1F|8l0Dz=fc-w%e=l=9t4=TJvxu*JfTzkZ{wUj zIoFoREBX1pke{GmBVQnIkYC7ohAr}IdH14)5=iW=?2gobrHN23sLxcPhd5io8`90jDQ~arMw-T=48gAeV zIrq{I_IHS#ck&vY8#()T==AUtI>nzJ=alfFoH-Tp6XZ4W1@Z>@CGr;e4e}28J@Ov; zqx`bIyZm$agii6lkNfY+>FmkbzeMK{xt+gfuh6OC25#XF?%^l-gWA)-+Z2Ch+-*EOGe?{}$3{)qfZ&Ya@^9Pe>YPF~8nUpvpO zLT)ENk@MYNBR@mGL4JX}Mc%RPbtX(;~?a4W}MCSmV3V97TaErd3`?`_ybJQWf zL%&Dk$UEdcayw@g-#ogMGt*Az0D1K;r*n+F zewWi}l*cXH!FRZ}NB)Ss_?B@_30H6pH}Hj=du)+kBkz#+$nET3d|-45SMaf%vufmL z$Q$G>+`;|O_xFtbyu<(XV!rc2PF^CnlUK;?JfTzk-{ZM^a?UN0A0n@ipCGT1FOb{Wp+V;oofi4E?9bHC{05y4ojY`T zZoJ%9&pxKa|t2kk{}6od$UecW@6s$(djL`Ej2;IeCe^f@}Cp&i)HI z*EZ-}pmT{%i_SGV9r8QmJ@R6Wo#p)8mBPc+EIViI$+@;f zekkW1u8^M~uaPg1+xa41$OT1P=4MY`3dqG z`2u+(=Y6m<^AepF`3>?8`91O;d2v6^Ea5{r=T>s=-Odgta_*}}$4+N~PBV1;eC%{C zhunW}(jvb>-XXu2b8bI$Jk!q1Cv=LxJbo^AI(u^Fl*kWqM)4(l!J@ox~b;$c6-@Y5ji@!F`Eaf~OJ7*mX`Su+^ zUdy=`JN*W3;STQQoMq?Q;;)Y`;R-&H^Vu!n8~7f6l=E3UAus;Mc-EerPKo?b&RG@m z6XXjy*EVn~`}z2P5AGWIy_}g(aPe*9oIN?6QqG(MbPnN@q2oU*Yvc>Kk@K7{<;-u9 zU!#A6PKVAt@*aIV^PkY!`Cm}HZs!^H=se1~$0ziQzdi1}Cx39*p+sKExz^6Jt>H5{dp5{hxPyE6 zQO>nbaPfD>v-afY-Q?_3qH~B&h5Q70jr>f`xeIg}bXxcZ{SJ8#KcZ87$GE4R=T^dp za{m2hg}jCr=rqVL4LxsGC7jmv` z-sL=#7X1$H;o|R(dzNqoAIsUNMt+98LEge0+{49p;as?akLBlck)I)NkhgFL_i*v| za4uZIHQc~0+`&Cu{QYtMp8Wh-BR@o5A+O;EZs88@;o={R=az5<*YHBlJ85Un2AxZE z>~vamZqTvQ>Cm~C^Evj&pXB%GyU~AM7yoeFe^1VwQuej}oz2d>eTYtlyoMY2Le35? z@@wQB^7|q8xpwyH(Rmy?{&S@GN8@h0a?UD|SMZ6PnKkkS@&@@O@)r3G@(%eu@*a8d z-Q%7md?;t13i%208u^)=du)(jAitC|vqk3`of~vIbncP&$e)lG8{7+gAZNDG3O?`;Vm%IR0gYj}Z9gZx6yJzl~sIvsq6&b^#- zdvqSrc|xc7o^k(OIp^-dB{~Pl59ORy$@zJ=^Gr_AsgW;`+j;&CI+y6Q$ZwE$$nTN& z$e-lgSMf0JwkIbqksr#rFFU(c=$xQaBVQnIkY6Hik#}$pKg!vycpP`$m6Mmq50F>L zPvqQ7jl6*`(P@$2An%ahBkz$vAurwQ=xN=&Ivj-Itw}PUW5EX z&iqR`JGAIrqjQ5!hfWU{{}}frXJ(1Kf@^poXP*Z7rJVg+-&-aMDf@`>eTlhxKoDO*p z7ys$jqGRcbM4H(M5jgG!985OJziVF zmHfOL@)~a77VhACIrq{de?ngT^YJYEeY!9IbIv_E*Otf+kypr1$d25#XF?%^ld&&uyx@vq0T_T)Un z68RzW3i%208u;lShP*+3DeJEn|NImAwVXLO z=yd4ZBe(PCY>&o=my~z4MZO<){SMUisHS$LGZrgvhjQkS)7WobG4*9*Df4*U7 zpB|kjInTjPr}%%zdnw^VIh_i54KL(8s|I-s-=NdUxnDc)Lyz1}Ui^QfOSpn-cp+!! z2KgoO7WobG4*5Ou9(nQaun%0pCvx8H8hHb^a0lPZxwc3CBtL(4a_+JC|Hpmy@CGr+|2j8R9BY#3({QGg|5;oUl&-);+;RQMk@)o{9r$gSuPv{i-fy(>8CuavcKWimAhv-zukLCQVoyhrqursqp ze}R7UE@z(>{hOiV-&gI-w==&({~moieLMXg{l}rd{pXGUaeO8vT){Qmz!!3!LyP=o z$hZ5;*~fYI>CnGN-%j67zn9;m?{oh%UOUgN_)nut_(0BX)w`T)YvgwF25#YN^l#+s z)1lL&V`paZpGWV?*{yt+(?1+?KSMju#LhFR(x1W)m`OY)HlQX}E zi|>0e$Jg5FlyC(f4}HIHCvu)!jZOo%a0lPX+5dj9cd)a+o&9?`yXiO9=X34kC0xNL zvd{8-JM-<#uhDPd7Vh94ew6(j{GVrd8od4Y7X@~MEBIK>wKejEoIUOA*`RZYj-5`6 z&b6G+=mvc|{SN(mbnJ9`be`mVcEyK`_qZ!3FOeV0*`Y#S!)NF;$XmFRGvChVekW)C zJvu!)Psj`Xm%irOQqD{}`GK67heOBjkDbrO&hx3{Tzi7PoxYuZjeY}P$T_z~euKP2 z-pkqF&JK_07rWz3JDpO_wRZ9fK9;l3iTr#o^7Fl*zd*-Mr$OgZ&bck}YdL3i$nTN& z$cvZ8opFO`T5?FAILeYdY7|jjeY}Ppx+|z;Cnf{+1af}=TXjXPw3m} z7vF!pmpwW6ZfCxoeu;hsAIrJl8hHb^a0mBr@dL(vcIE6}BCp^RIeXgKvqoouj-5_} z&V`(_E(iO4voqh$wJrK~KGT~a_qBGewR7$6-gs6c=h_S8E%FZT;isYRv+SH@=d9wt z8t3oIxyQZ1zShpQcCIbax3gyj*KmWro&E*#7I_Ev=-9co_|Vb2^7H=k^Um_~&T`(v zQqG(TK9N1g_iks7ojEo74cx*Vd?#nO9{H1;eTpAA?o+}Qd@N^9jeIfW-r3I1c6M&i zZ{ZHUlQX|Z{vJ z@UfgZHS&f0yqo;I8#Q}S ztX(;C_T=nl=iCzgLv-wPDs)cdd|q~D+UeKmFVMHsx6^Nijz3d7_jrN4eV5be(C^{m zzZ>W5%FoY1&JKHWb|}$5M8{62Lgz%z%o_Oud4v1{`K6p4?96Y`zd^@Nr$gr+9Xp*K zohLba7C&r!CVO&ruybvR&LKK>Iu$y{a^}~_7swkqKT~!-yGwLh*JM{16>}hAu9{s1G?>{5#^zHPEA2IG+!WDch=iY1N4cx*Vd?)AH9(nN| zoC{a*v7Bp92K!#@+>4!ispUNX25#XFzLPV*m-GDX%qjFAeuzuBf{*3QsgXBu3wQ9H zoNMpp+?SpE>d}8fr}$CW4X)s0IrD4e4cx*Vd?)AH9(nO$V{Sh`ANWwtz1X>z3Y}v) z^K0Y{+`=7vC+FH8dGX=cN6u$jBCp_MIde|r>}+S}8vO-2b~+6@E!@F(a?ZM!b8U~# z6Y}CCa4+zooNFuO$8zSMpi`r>K;9s~MBXC5LEa(1lXF&&yqIEVxPp)6TzewtUTSm} z$Q$IB$Xnz$$UEeBa?ZL(r$^@rc~Or0@5$M1ioApm<;ce_{yw}x-l2atbiB_!Iz2j1=oBA0?z|^whZ1=OAIrJ-da(DgbMFf| zb8P+V)EEE#?dUh?U!vclV`pXu-wmDZJ<2(&N9PHhVt<^oC#PQ`KSW+3KbCX9C+N)O zeC{>+3v`y~H0WHSvqGmu=LVfMI-Q*FH#^VgPR^e9a_(^>XHPr*9)3c9axnJo^b2@T z&ipCz5p@EY#mJ2|`E%Q?%=`@BKF zhl^Ln=T^dpa^}qB59sIOKj>a6bdKemdxHLa=>H}Etf9X^XDPp5Gk?(U(BGq>bBWGs z=zM}Yt?aY>JnekeH*)TAJ@mg?{SKWwIeYfViyuAC*^|?m%HHh*np2{4h)#w482O2u z=T@V$K)#ec|AU%u=Uy8468+WCufFO-CU*KQydFBQt7E6r!FO`*@qVzMr=6WQ==bpC z$KYp8&in$N!X-R|EBIK>J|}X%E9U6b@Dgs|72LvWxP$NHoO>@n-#a=z{Dl7G$Ku}Q z>|7w9!X;e6$8vT!k+VaMP9tZ&ooC+4zIOYwfc$RA{b$XSoSDamI18T3nYonn-D@Xb zA-9v?$=QE{{P4$(`7zwcxweHn_zwLZdGX`NYfHF-kLB!BBX8gq?%+E)*Y?PZpMZ1W zV>$h~{I))ed;Q$mfB3IYCO`SB^>Z!zdHOT5bMGtUcJeiRCujZ!`Q#^#{V6lb7%e9Xp*0K9=(w=E!S!2{-Tx zZs9fD$@%`Vv%{U7b2swa!~1XNetYyMKV`hOfTwUN=lRF9IoLd+`t!dc3vTG zhkW~8ihM2S`_Rrl9lSxuPN#>9j~eq`IXg^|m+%a(ZCF z@-^JS8@PujKXv@v?R@TqoIQ8t>@Y=M4!L)*)1Sc=Jcny|2{-VCoO4%lK1VxeweT7p zJDpC>^S6_4hm=2JYd> z$Bw%d@UEP5r^riq23JFWd%wu%a(1(`TaC^VZr~N%!fUvL@8s;fLEgiYpE>ShXP-jO zXEcRNcm`MSv7B?~a{g?xGqZ-5=-BBr@Ct5a&)>fD$k%X(j-8ozL%#i87kLj)e%9D8 z;3-_fGq{3}<>%)hzdgK@b2-nsMt=!6@Ct6>HQd2>a?af#?}yya&CWBK{OoZzJG&Kf zp0l0)6fWTzT*1e3_L(EE;U(O_D>?6vogG?ujgFm82j9urVS~JfCm%OnTgcD%j(iH2 z@C>ftV>#!}k=O7NZs3*t_VCWw`CM8#-?w(|cMW&&otzyu$a{G5bH=mmoK?ur&q2;v zQ@Dg@a0MUB*<7=N|2xyON)uiJU!Kbk=YO-^tlwgS;Q|?au}B${Y+nL|Uc@B1-!wPQUHQd2> za(37t@8L-`&M)ApoZal~R?3-aXSbQ`&)v`2PF}&sa;}}DZ>L|&xpzDH5^m(ovC~<> z?a=W)b~;S!$7Zx8RVo#$D}z8CLlXU_4EZ-3U1 z*YFZ<;1#@v@8mqUjhub#>@ztUcbLL6Iek0*V>vVD=r7@woNMh|yGG|u&YTVM$uahU zXL4rRnRzT{&K&(3UcwE$k~7oJ%vR24ZNE>S*H`|EVzP!iIp^Bx+#%l}@8QX-K65$uWoLek{t|BB72LvWxP$NHoV!8Z5Bc_c82RMm$9pVfU+a$j zeD81x&*c1BW2axi$8z?Wqi?5Q!%I2O%FeTD&{@GPyoNh?1NUftIb6d_xRG4@Z@CNr+|0moHa#W!ZWyn=Wq=#;Re2tbJhy^8s5N@ zUpVf(E9crN@)*YF0O{BrCd=h`Xq89bMBuAOt2=v>H|vqHXx zH}K?>$C-9!?#iCCeNW`~4e#U(p3Bes$hmfj&V~HE5AwB~YwcXSL1&`hFLUm$oHx$MB{}!CL2f6X{KnC{^7C%U zXYd?e!YlY%&YU&!4Lq5T=T6}RIoHmR&*3G!g0JOVyGFi&C-wN;>^!%roabie`OJ{p z$&clnHAlXLSMVCXlXL9``Q+2a`BQiXAIrIRj(iEP;5B?F=h_YO$tli-XYjF{Yv;(9 z@JfDr`2Mu>Y}az0t(|9hCuimc9Xp-L+2|>JAm?XchI|e$;T61w@8stlkWXI2x$q1= zmUHbK`4V2iYxqviwHxG<--L7F8GJ0~+Bxziyn@&8ot$eo$S0qUbKx0$Ea%!e@}->5 z-OlH}lJmLS`ApZy?c{fI=5LTse)HIw!ZY|-&b4zn=h~USL~bWvA-9vSk=x1dQzJyos8s5N@-!h)HD`(~u`3#=JOZY<0wJYRncmq#91Lw-Qc8Yuk z&*3F}A?Ml^@-@7X-yXhC?7UZ#_l}>hozG=g&dez~b~-b74xh>SK3O7P!D~7D*x6?z z=Y6wt)}x$#CZ9QW>~yB^44%Vha^@_Nui!Pjk+Y|rJs;)FnS2)Zk)QWLK1Du5Zl`}N z=ef<%vC~_g*Kh}K;2xg**74i|p28(OgDd!0 z&hwcgui+)!z$>_g*KjB2S=o73cSFAY_o~Qyc=EYpzksK33D4jPK9-;F5qS+S;Ras8 zExeZB9=;Fl{9JeF+{rn2BR_vHq0_^Y&l@{-o>c))(XrDh;Tbx1Iu$&JYj_Da@Ct6> zHQd1)xQ8d7Kkie&Q@Df=~sn_XW7Z8a0wrvKSN%@b9f1_;A=VOu90ux9-e&3xLYCTTKjotxP%YT zpCPZ{Ib6d_xPe!23t!9GZH>HxH*gP6zI42o0-nMpd?4qn8S)CA!!^8w8`*RGyPuus zxsu-=ejl*&^U|WTmh&@W=h_b5pkt@g!;>!?^8%j2B|L*Gcn;U_5^mrX+`?QhDD|GC1S~+v<RGq{51a4lz!oo8}}e2Kh)S8xlj;SS!w zJ^UzVheA<=f0|;^UeCtfy~jd)2Zd0bvAhW_xtEC(Qjm*`=(~D z(6KYKl{0gVyhFZ0-piipJs*e8_IJPYab_W>Geus?IctWzLVhg!TL15Z%+aaQSt4J- zt(Z884LU32t?YaE&*>WZ27Z*ik7rK43VX`Wdm=B9&ydgI8l5Hb z6}*N!^zR05-vK%A+eXg&)}uf9YP=6}-iJbd-XEPQIy2;UuC3%;J4eS(=WOU~KMUk5 zxE(tFE?pz=ehjeG-7e*gF`*?E_ya^597pL;3iIUfx6{2BUo`g7!V@>KQ`4Vo>Ss`zcUk~0se{?!@HpqMAlmEihTZd`$ zbO)K;$v}YM2~MD!3>q}JcfsHe!L14gXLng;mF>#T?gb(15+Fzw48b+HcERB84plJd z3j`0&p3~ns-S=O)uRHfseX6>jXP#Gn@Anz^{0n#$_PsnBpYx-M;DmmMFW`#i)%ctl zO+(Y+2mJIi?wMy{pL2m<;UA69`OyS45k3j~=iv^Y(HHm%f55+)*Xwrpfqwd#*o*MB z7x)eQWR0#F;dgKWAK*7(UH_a1e)?JW3=4PzKMDJ5Bm54|*68O<5&qymJB0oHehB;f zUD@9|P1yJTW_-?xzN4Q$^Ik{U*ID3|-LJyF{s#YK{yb0kgnoz5@CCjK`!jREzgd6o z1%CS3_iPJz6~5+#e=>j03BQB0HRt)mSNH?IgWs*u^{1b6&o&GDJPZ5=j^Kp;*;v=y z(PT6Q{s1>L9sb??Ip@#4=Ul+6u+O{+`*W!5&tX6lh5b3%!5Phqu-;$&{j`GS0C(^Z z_8F$1cdtJSyMHj&y)0-pa1{3Wm3{ss?Cb2p{+?3yy}VeX>lZZ2-W=d&y*@u3e!#yA z`#DVIzOJ&bxxg#C-@rlG=a2Bu=FevazJRMWI_Cl3;NOIO&W>iFnd&{;0$zoEwhcal zcW_2u;4AzA-{3p^^z-j|W?`RUf#1LpoY3#^8NR?D;D)BdzYF^rF2CTOZ58&}HuwM^ z;h)W)_Y^*(Kj1rfpm{geb*9&Qo&_9)eYObyZ2p`9zJRMW=W_+$g+JKOGG%`c4q-i? z^Y`$D^}6S5zYw#5S7D!RgAec#KEXd5pYx;1XbOCV@9^*D&pAKqo^t~SVW0C!*q?!j zW(Q~V1-`;Ja2M9kE1hA$zZ2#?nT&tzAWfBcxB&95cYK<{0`1&UX0Iup{ZyN_y*tMr(b%{Fbn$(560(S z&}`r!tk1drnMH)(!CBbXEbtZn)mX1}py}X&e)?ti%nSHYSg)n)Z1BOn-qR@T_a(va z!u~uc`}2^|6k)$#ujbF0;hV6ZNr#_)`Tg2i*w18vU*R|SC*kY!1U{kP;S0E;Ip7=o zo3ZYtqZw$XUvbaB2>Tgs!hUYber`{~elMc1pW6;D-~;?7?62+c!@SS!;had3MXWug{;8oc7^=N#~EUeFrv(F#UM>NXb?C{F&v#?*Qpi%bb z5dI+7)!%zp_OpEx_RoQiehB-T)33YNnT6di@GJZVAK;&ib?;Hw=TY`~c4416Td&Vp zfj__vO@|-w)33kRoQ1FX;UCSP_XR$nkMKJ<3;WNt0$+vwTCc{s{(+{U>F@)7`VIG4 zDf?M1!hTk(uwU!Z_}mMc2;RZj`tzKH{rN0tDwDaJByY9EN{0uj_R9fqweU_dK)kH7EQE|0wLA6&so;>}RFydrZQ<=8i_$ zn-^hSQ~#Zf0$+vwwFi8I@4|jvWnXiknSRUND0?#t`}zwSWp6fkW%p0Q`r7jzp^0dA zcx8WW0UzKuVPCVu5A%9|r{8+7vw&A&JwyGo$VX%SeZ>t;5cd5>_yoVhXZQkN;Scx@ zez!)?XZmfJ8N7jm@HHF!vw2--htKE>e1$*Y--P|S?eGKr^xH8fcop{9HuwPlB<$-) zVSgr-{k|vkI~rwgitq>f8LjM}AywFCIMBbDKi}i<1O4FnXJOTmks@s`EzFYgnoz5@CClYAHqI^ zvd{2l&AAt0z3=+pfOKKMr_*tJW%skN&%dBi_GW`ub{~ZOwNJ+9e$hwt3H^>n+1Jcy z3L0f^4tQnvP1xsoGd|A*eMdhvoQbfnGYk7V3mRo_Rx}$LWpAFWInM-s2WM-}?>z7a zxC#67{AT^RFEqpa`T6|2?iprbeXaif&jP=JgRt-S$@rWZ%?{4!3w(t?;2Zp#@i{-5 z>33shVV`G#-@rlG&*aJab7nNjyq?JpU%(a30pGzx*snFcVNPM6^TAkWSkP?X2;RXj z!n%&Ww!l~OI{yLR!9)0(?e}0d;cGVIb2c;^IG~U4J2<0xF+OKTbATKA4nN@Eg>`=Y zo-qAh%rEToFYp^Upo#Da{@GaP+|gt-1^xiP3HxjvehB+))9=H~!tOWt0RLpH^F%Z| zI1BqdE$~&?*FWGJ{F||^--Z1n;r z{+u6vpr8KWeXUv8XI|h}_(x%X-ZnH5oY3#^1zgd*8ta?~nuewe`xz?x84fhlAG-JQ zAnbE4@T;)zaTE46m3_^KKB3>?GyIG3Ilr*4c?kQOUD)sG^oMVrg?*j}V_jzx_H~qf zoq#?H`Y6= zd0lgZkHS8Wvah+Lc@g$C3w$+y{tSZe;DKiPqxU=y!oKDLznVYigb(l$KEdz8z87WR z%ZoMV`3w7Z;3DkjbHFRRZ^HhZbol9y-OViQ%>uu|Z}3m%b)E>ngA4coH(|flo3XCb z(M*3Fvk7~@z_0Kd{FC`}Heo-{DD3B%tkHY43;TI0`?(c(W%mcXvim0NbG{j$`$FH* z5A@TYxYt?0tFW)R!9STl_Xxj(vo*TM0$qht; zoY55cSM$350pG#H8eM<-Q}=AMu%FcezX|&@pzO~;M3aR5wa>!-`M;wn!v1|j+3$N5 z_SYV0l)dS~K7+E)@Gk7BowF;U8{3fjX{fVC=??L$K z&)oAY!oH@mulXqK^Ka-Q_!-SE>}RO#=TqR7-5GA|yI;T?I12kZ%Dzq# z_H*9R7w`dY=--6>Iq7Hyns+qQpS$OL5cbzD@Q?7Du%DH(pGkyQcKE z7w={PZ^FL5vacV}Bw?RthcDoY=78_QzP_@rKhRHq3A2GWa1izxB7B11h5cH}eyxJO zqCeo@%%4AJ;itcR&o&GD3=hWV&o5!W?jr2h-GueN>#rG=f4Z>#Z%ajZW%o(g*Wcj_ z_y9Nb9e%*S8|$3YU%9WffH!au_8B7l4t}vl*DUbWyuN=A_y*tM-_4)1{nh&nCt*Ls zS=i@Ug#D~G@DrK{pWt`+BJA%+WnZ(RKhP+9)6jG@%H9k#@8IdL-Pcw2ei8m4&xZcK zfwJ#?752Sv!q>AT?5};YM$a&!QTApBXY0?;ZTJd*z<2OK^KN|JyME6<3H$tuu+OaQ z^K9_S?jyXi`y}k=u%l7-rhqH@1HQq(8SDHV%|J7ad;MA1XIS7ja6l8`cW_2i;4AzA z--SQev!U!~JJ3&m{XS=9Ka&Ms+5HBN;2m7RRoM4_z<2OKGyRSGTC=dfc7b2vH~0V_ z;S>B0U%(a30pH*|{PcdGt+Jo(B7B_{I0*Y*BK!`{!uowf{~V#fAK)(RpFhfet?6&x zUfKNuuk3ym_IWlm%H9MtQTT&BOUl0AUD)5J%Kq8{uk5}G`*jca4jyQxzjeQM7WUUJ z@GJZVAK)W=g5QOGU&_9(BJBH8zUCM984fhc-ZV5Fe)`*YGYk7Vi?Cly+1FXoY-p6d z31}kx4$i{Ya|M5ZJ9r5DY}4PluQdz1U*I=z1Sj-6d=dU&&yupA`62A*pzM2W!hYS3 zM%kNzX8OCgU%(qU2>Y55eg|hX1-`)#@cj4gHCJ!|C-5$;`_-Q#8NPxWc=>SeYXb-2 zYcKE#eur=H9e(=z_xiK2uepK)IDs>`f|q|VPoF7!eEO;KXCK18=4Sq~hMYwGvm4j$;|e|TSO5%$-v@Bti!ea!@4g#EP@zJUjL{ha%~R)u}P4ZQrL z`?Cm!wJN$s3{uyQy_G>NhEBvFd&VT-0GBg3r6Pk!7q1oZH_2>5)_=^63Z}1&{`sdh- z@U<8C6@G({;2m7R2e^Z$e{o-T0dL?4-oaVe=Pd9Q{(x`r9e(;;%mCiNLD;Vq;dgKW zSM&#b2M;vUzr1Idh5cF!{0hIpNAM2L=nH&>Kj1rf`d9Zn3wQ%Z@D48ED(rhX;2V60 zpZ+zj3tokNoee&Mld!(O^zUu%@LAYjTi`4F0pEoEbEd-&^wYn=oZt-{!AaO>*x@sL zfj__p>pbBf;WzjQ-oaVe_gmmA`~ly= z(?{R)%)-9T0>6O+nh2lZclZon;4AzA--P|FI{fr-&$)m%a0Dk|-^&i4;R}3)Kj1rf z2>Wc)=fOPSRoI&iz6k60?eq6|;SYFa|GwSL>-Y2N^WJ_I_I)kzEBpo@!8nf{Pg)Sr|>l={0hIpNAND} z>nr>H%EG>8L8I)=0dD9!{D7Z6|NYuo*w0h;&^P!FKj7ytc&{12 zQP`i21i!<-2>X5u{44wc-@!xJ_cDE<`&tWl6}~>N;3Iek7w`e@;30fn_Y2?GorT>m z@EbUwiSRr4Mff@s_$ut{zoI$NbnrkweG$wl?CUJ>EBpo@;3Is3-{CX-i}1A8i5pCRmXPG9u)i?Bae8#scKu)lVP&+rBQ0C(^}KYg+Lx(j#}_G@kM0Y1Vf_#HmO z7x)T)zz_KOi{CRW!q@qLld!)R8u|g=KJGr}Anf~!!oKDXF5rs(fN$^}e){-(%~{y5 z^&sre%!1|-euEFf{@Mt?gDaW_?q~-5^d;`u7Vs+U*V^DCcn4?nMflVH=yd-6^CA2} zzAv5st-Y}SSw=%Yf64n=kHUT?o3P)DC-?}TgniB(KEoII3O|3T`?U$2!4>=}?6bXr zyRgqW&`)3b_6v9e2VtK-!YBA0KEoII1KiNO3H!_)%{%<`WiTgr753RS_yC{4JDLKn zXgd7#W$)|G!hWp_7qCem}c>08U{Z;r{AASdCG!;CA^*K5J8@;b^uepJP@U=et4z6gLu&>$C3^dbM zystG2`}zy~1`cQ<{0=VQivECa@XK<~unPMO8+-)s;EcY&SNH?I!FTv+y=Rz(eTD^o z11B^YT+meb1Af3yU+KQ?0uI7HLjq@TLH{c3pEC!1L;r@RqnSPtGk{lNpJ9Vf!v0)U zH1p%#uizl;eTFZ>{<(dC2b%dS-)ka@Fysx_mU-Q6k@DZHQ?C=@>fN$^}e)?MXbr}L|d z3A_vYuicb={*0!eQTFD5S9afo{kk2EvN!L-{uw)c?c2}7{@Mp&Zx%Ewnhid{NBCX% z+9P~MU(hJ~oE6Oh-@yaT^mXpnF5n>S`-<=heuppM1Khzw*w>uCF0KoH6!tUR;DfNg z_6bcylhEw&1$=-T`VK#RJL_dK((&#=I6;D9E= z@8ANi=nwb?-{GgPf6udkS7D!RgOA`HoY5Ef3jZqX&%=S{4Zgz2lFYvFzKJx+J(7&PSXr^zBIl-&2&$huwa6+@g7jQ*$z&Bx?S^wLs4nN?h zZ*tEz3wyu7ukagufRFGAeuvNS1-`-`@C|-|-;K|Ii{qPOeqo>g!T9|1YcwmG4L-m} z_yoVhXZQkN;Scx*-{A-R^v$prVc*LFzrt_u0Y1Vf_#HmO7x)T)z&H2~Kj5ctj`@YJ z`Qcai4L-m}_yoVhXZQkN;Scx*-{A-RyRg0=&;O?8TVOB3zLy7M{rC44G%K17KEOx# z1ph4T*WJ-%G%v>Izx#)#qG{lcX24J168jSNeJ$`S{01N3BYcA2;WK=JukZ(agCF4O zTVZD5Yi9TrK7gNu{cIC_1{dM$dnx>@u)bEme;sHVnhrnU--SO`{*wB%CZl-~{y3TKQ)RXa-@tFeKHGqww|o9Y*w1Z+ ze>Bz^HZ%dvld#W_;4}EeSl21Seyxh;70rRBp&8&gV18j=bA{jF1AK%}@H>2lFYp!q zfN$^}e!x%P=ALsF_UC5>Z)gI1gir80e12lFYp!q)%e^Onug{LO&8X4JAV%f{Xjo``@2#0^PGjR z{lc&C8+?F|@Ckm0&+rAl!XNMrzQYgrcVj)D={sOA!oHUWV{H~RE1C^Hz$fstv97bD z&uCuI6f_mh0pH*|{D7anBlaci`&!^v_zgb5NB9K43;Q#p?9W3+Q_v`TQ_&n~l)Y(a zIvQnf2AcUhVUNPztneFrfRFGAeuvNS72Lob{eYjo^F7ZjeBBH96@G&c@Cls31$~7- z;2V60AMn$6!JNX^obW6B1|Q%fe1hNMGkk%s@CST@@9+bD`mUH?_?jPnh2P){lge1MPe34Vvq@CClYAMg#n!w>lByJLRgYkv3@ zeuEG25kA51@EN|qSNH?I!4L5KJus*6^|=AR!3X#R&ftQ+!XNMrzQYgr>3iPu%)29DIqSbEw801S`u71Me1hNMv-uCQPJyrR2YiF?@B@DOUYK84=hXEV_!WMG z59W1W5k8^c;WK=Jukf$N=l3Es4b2;xj%JwG^PIjn_9d+QI{)4U{AynJyTJ$e2%pUB zIy-!ZFYwj8u7AKc_zpkJ>v>M!2lESG_XU21-{6D!&(-?^pWt`+Y+mq})wnf;V zrPaK?c7qS_5k8sM*>?C0UxfYHR`zREGzS`GZyK78M%kNzX8J+*wUoV?h4mikoD2MF z{@gEofKSGHRy&%ErodPD1HPHp89MxcpMEgr7ry2fzMe5O3z`+p1|Q6y?-BTfei!z8 zr0mztXbKu-Z>lxAuLkaDhIu{b>4)5}orQg0tFg`*;1hTk_UmT&0$;z{e%MFum;Qdcvd=jSU(Y$31SofkoYaWcx?;B`VG>>RDG{L-HH^L|Q z9X`Vs_zHi(H~0=e;NOjP{wZRQ!hXLVjL$uyS`Gs|U^$YxJ{`~BM59lL&g5TjYe1Wg<2YfSszTe>o z{QQhF7xvGw6@G&c@DV=2@9^2Yo=JhP@CSS|uV*#TOh4+LZ5F=H8Gbdd``zFJe1uQ% zJA8&O@YTHT_?1|Q%f ze1hNMGkg*DvsLypsn+Pv(^p~rGv&{cUtb^SmA!B1JNz)O&*8hUuJfy9o$1HjubqXj z{R;a$3!2rM^ZkNmLle*>W4-Q zEBpc9;5+<)pMJu<&Md66=?n|}3ctYz_z0iiclZon;4AzA-{3p^fS-OM<`?$)SMY`= zz(@E5pTQN}z+KqSf0);2Y5I?DKMP;?8h(Y}-~)VwPv-S=V~5Y?^?nuj3V*;i^EzjT zAMn$EjQNGH`Gv3d9hw!*hDO=XCs=d-z9M{r-{G_Qb6@Zk{(x`r9e%)1|H(biEbRMQ z!5f-jUe7$jC-ggfhA;5dyzb?IZ}1&{m_MJTpM;r(edYyzHLr69G!adL-{CWS1vg_| zbHGpkDdrKr=7C?~H~0V_;gk9E*@n;P3w(t?;G20p=MF#Mr~eG|3t#iYukaguFn>M| z@Cp46pWzF9HLr8N8tbpo4m1tT8=8)0m_MJB{~Y@gzV-#bn%DU^_<%mbC-@yc!x#7p ze+c_$g|dGRG&CKJvNr?G{9k-zFM3vsus5rD-TMX~;3Is3-{CWSfv@lfe1q@s!@QpD z^k3d{&cfHdfM4M^_y8Y;{S1|T?+MM0M%kNejm}fiH}C+@|J6O`YOH7eXspj?fPaEd z@Yz`JO9eM$ooB$$KN;5rZ^FKp03YEK{4V@KzPISVW1#H+jzLCKg#F(=sOEK#4Lrcp ze|^s|3+sJ6pF{W+eiQclrF_kgCJOru$-JJ`E_}@|e9e!h8tWN0_%7_%8t~J9bNgBN zdJctsh82E;5AadgXH)js5}FLI;6vDFYvy(S4nNRO|LuK-%Kq9}_?jQhf@ZZw@6iSy z;Gc~3d5&n3dA%3UXm&IiO@XiQhp?Y*gYUwAhRS}11I_&3VUNPT_tm_f+Xf%dNB9K4 z!)N#+tk0_cey_66T+tlDKC`mV+|Ug0^xxkz&%%1Ybmj$qHGh6?!w2{XpWt`+3}4`@ zd3^>B_y*tMhk5;8`fjYx#`Hg6FT%Q)^Y@L7wOP=t=FevjKEOx#Wd3~b!)N#cU*Qk< z2H)Wa{Pa_>7vbxD1izX;pD|&7Ha1~@Hi9)ea}@SxL)o8=geDv7nG|7vo-6zT-{3p^ zfS>-yd!1QW_oC}B@GJZVAK)W=g5TjYe1Wg<2YiF?@B@C@F~9J2FNFQf7hym170o8> zXRhpL9?&H4F6?KX;R}3)Kj52reIDL~{l7=(XofZVJWTn%)+~JO3x0*)-~)VwPw>02 zpO3PiPexOO{d|=Dd@7m-?!taP1Ah9{+t0$+Uf@^r=lcadpnnqfbBn@0zp~Gt(C@-N zzp~Gt(Nypu?DIGH4nN@M|LNY#3J%7)mjwT8te-m9S;R86LN#^yw z?C=?Vfv@lfd^4|S+u;ZN^uJ(c;cI4LeQx!?9azw;Xf`y;{+tAB^tur~!SC?dyx!9y z?C+5Ze+c_~MA_dX&6;zM!al=*pXApD?q}g^kMJw}1|Q%fe1hNMGkk%s@CSS|ulKsc z5A@Sd#r(q8{P3%JJ%{d*mj!->-{1p$gir7pT+meb1HQp`_+kG1+4pIfS@^my@GJZVAK)W=g5TjYd^Of* zroj*JEdM`0!xbEi&+l@=eoqtp4xix*e1$*Y8~gyzpMIau3f_c$hG1Uz72y;546erd zoHTG3_B99k>3_ZbEPUNB_!WMG5AYE_!SC=HzQ9-Wy2k^)q3`eme)``qzp&rm1%8F! z;Dh<|zQZT@9X^}av#sD}te@2#{eYkTcg!j5=e&XgIHFJRJA8((;0EsK2mJJZU>;$e zN6&vX);$JrM4!y-xjh@7-;2;>G%sk1u>TBI_GhwMqt`vqD0|b;3}c;P{y*>YT!g(} z&Fj84_<%mbC-@yc!x!Oeel!)$tFfNRfnM2XYu4y&Z|H}y?rZwL?tT{bXJ&z4;WzjI zAK{aEJ?9-h!x#7pf512RH{(%Mz){%uo8Wi&Y+ld&#aN%2f~KN*MRTBO=5^){Kg^%+o&WEi zXBPJJUyb#C1^9?Q!SC=HzJi;vuG!HKG}C8b9^q>q@P;P9NBCr3ueHNx^aZ}cH*iNY z;HRH~IfZpjz19N1n%8sQ-~)UzK0jyBWcUJK&7bc__y*tMhk0H9-B_Qc>1SeoVVz%_ z2V-p(G%K17KA6{eB7B11;j?)?s{&uqAMg#n!w>lBXJIeG{>&`!t9iZd1|Q7pcajL7 z;CJ|JUiVwzEBpc9%lxt`v}c}rlINZ z!@TZ&`Z@QSv#`I9R`7-yq}S5fukagufRFIWyxx}#E@-NGJ)Z-< zq3`emekzz**x%PHI2h~t5q(0l!)N#kZs3l7nAi2Eig|>udB6djz`L+NGugbZS>P-D z0pH*|{D7Z-KJKZoUu!k5_h^F;@KIPlH}uaalX-og?(i9X1s}qGtp?xW2mJI4?tT`& zo4{i-pefP&-R1y`P~N1ie`fk=5;R-KAG2fcK8fm z;4AzA-{3p^fS*1Kdl9~#G5FQ|`M!V;@DVKj52rJ)aIg&`-Yz^9%dE zSiu{b03YF#`SZODpV1fi3V*;i_zpkdr(cYjg|9P*U(KIqF6`e`HZ%cEM5FBQwPcO% zE2A%HD*OT8%%ATI_yIrtlKWb-u2lFYp!qfN$n?zi-Cp&wVt* zyw32BX8NVri?BaS3;b$c&t!uS@DV=2XK+DN;Scx*-{A-R^vf`_u%G_|zrt_u0Y1Vf z_#HmOSMY(R!M_=w=Z|Kfc}Fwlu`HaB__z0iOpU)V4M*m{0_pYF+XkO7AXd0RhKj5cdi+u^}zI2||SkEDV zld4NX83;gk9EoZ&P23O>*@^Lh>) ze!x$^?w)fNzTUs^D||54HKVZq8co^vo6tNPpYLDvJNk_N1${xU?CV$b2O4E>nl5^_zG^|0iJ#{<`KTm6Mlsc;AE`llfgyU z-xn4BfN$`_SobpjmV1WPSbwiRfTOUlpV05{8NR?*_yfMdclZH6{nq=sv#_7l3f|BJ z_z0iiclZon;H!B(=LYU*2K@BfFsJbKjKQz)8+?F&GS<)J1pf@b3;VsuXbOCVKZO17 z>^1l<{6T&$>wlZ0?0;u(SflT$`M2MDS;3pI|9nyQc>}gcz)!#9o@W;J=W2mp;WzkT{`~VS_yoVhXY=Q0GJJ(U;G21!|IJv> zp`#gS-qB3I6Z;aroP-B1HQp`_+eh} zFsW2;cJiZEBpo@;3Is3 z&&GP)7h~OTg@1)Vgs+*=boc>3{hqs@h5gxE;8*xye7@hoJNgV?;4AzA-{3p^fPXjE zz0be*KIaEx^(*`)?B@{RBYc9-#`@e=_yc`|@9@LC-lO^V-DkKO>sf8W*F5kMKAG2b zGPr^d^bNkl5BT}_V;q_z0iiGq{2e^bNkl5BT{H-1lw;Z^G9+@DV?B6qkH9A8A@525$sqELvXbKu-Zz`Gtjj}flO-G~b z%|J8#;oHx`*Jl*`3ctYz^LoD`e1hNMGkk%s@CST@@9+bD`XiWM`1%_%*7x)!^gAec# zKEdzs8NR?*_yfMdclZH6{W;7pe9bR>-4|hhhF3J3us_4f{tO2+3A_vYz02?gzQP~y z4Zgz<`03Bz>(9d1Uf@^w4L-m}_yoTT>zRDaC(HW91gZ;p_PnzV4T>KLab8P56U71Iqpk1T+b}3t#sF{>AwGbr710=G9og zLmp@vnhrnU-;H(s>95}JFJ+%+7WTbA80)nb^vd3^=pTjsyZweHSflUj2%pUBd-+*d zU;8Ehk$kSA$!K1T&+|c3&FlB2S7Bf0K-18?8SB0}nqgi)6W)dOd*;`Wd6fNmp8gun zP1w(27WQUAqwLL!W)t>jDZoeJ5B4l6`?HkLWN;Do=Tq6QRnZ)1l)Y(aIvQnfhBbPR zrhZ>b*_&C|pP2=Ih2P)?!-RSJ5yK%?wUL(}00{Pef)eipv=3%|l|@Bu!;C-djM zgU|2F;1)!qA_Gfz*_WQMhH(_5>*`J4C&H1^9CZb7bb~MVqPPRs$;etlln~LUu zZ|3#A)8PmF^!M&{W?|ps0>8p<@B#iw*#9niM3d0$@EN|qSNK<9U-LlI&~*3#KYhTy zgs*+Uukf4jbsvTO*$CF0_fhzRe?JuVXCtA>;39n8BlrWp!FOT5?tq{E{(W6#zwRvT z@3jYEKdTjf6TbE(?DGUP5sk7p3C#|l&7VKl;4AtAzQMl<`rlINZ!@SP?F6`$p{X^_mSof>V z0>7Hq`8VO~o(lUj6VN;f`}$G%dTxdN`AO)X(P#J<_#*7rRrcqkqJKqypjY<3q3`em z{$1GTpXARQ{I#>Nzn33`y;;z#*64e7gAede#y?U1Z$y*KpWhkaGkk%s=JkFZ@D2XW zSg+O54D))eNq((+?NQkGxWKRQ8+?F|!hVmG{n1dR_8EB?|eEV7W+9Ui5|0t~YSKp@_nt z{8wS0znRy4y}@_k>lr{Z{nOje!q=G?>w9Do);T}slRv_~&We6RqwGzvM&DCW*!P&= zcVXY7vhOilqkDNV)_E%YA?#7U)}D0?#tU+)Vv3z`+p1|Q%f ze1hNMvw7Wbfv@lfe1q@s1AhAF*o&~=-vxe!-{1p$gir9hu%ExO-`|X;2>bn2_WN7W zG-G|9--P{hrVIP}%6?yl^?Fv*zqlJ^Z)V|Zzi1XTt2O$ZY-p5yoq#67C-@yc!x#8! zUS~ew8+?Z!@YCns^UT86zTj8$=U(6ge1uQtb)FqQ!x#7pf512RE_~fDVSgS5n(1HO z&x5i*53{iEYXxt@*S&y`@X5UHeTUER1-`-`!aB2lzA5{)8k&wq*_(l8`d7D~g>^4F z&jP=i*E8SX1AK%}@Vl_jsq8akGzE>aHx?qlEPUNB_!WMG5Aadg&q3MG zHlf*t{cM%}Y%`i7?CU7|SyeO#8f9;qHTqn2_yIrt+q<8Iul>TW@Ed%9kHS8u^0i+y zyYRJN;cLHWD)2lFYp!qfN$^}ewf$Kz3JgTTV5F2I!n#MDXMtbgABBC*4NXAvWUPO$CZb7b zcK8fm;4A#Av95WbX=pn9Fn@lwd@<}%__~kqt9iXg8+h5epB2z#@jSrP+dzQ4-;zMF-8?~Aa%@09(0x1xCz_BA(Q zf8Pab&i6QcGOv5w;WPY;u&-IrRBO)r3*X>7{4lTAn!n_|uLooO+*^eG*;~!)`Wt*O zuj@qk1pjQTYwl<=nipZ;SA}ojF6{FR_;+D{?ewMYW){9ai-f&d&FjnooWRfMcVWM7 zMpNJ`{Hw5E>p;`cbogOj&vyFK_qAqWf8HL1ea!{Uisli`h9;ni@Ckm0&+sq8e%*qm zqIpGgplQ~epR4f0{JGyRgZ&C$_et0@jef@%_TBGY9@D2V=*k9Yx3~O{>)0exiI}2a?gwcNnIiv7(zl5**WsRQ0v#_5-hA+Z?AFKKE za~{6IzX|&~!@RCPf5JWggRnQNd7U$$N#JMn*}TqB!3{jX@4|kq`77Krtl$8C681g{ z``#0p9X^{spKW1(Z9!A5IiGF#2H%DK-VOM7VPA9liuZj~_WL*sU(bfH&%DBK@Bu!; zC-b_OXJNnYjwV~9=U?C}`~lz0>)zjlea(($pqZ9?{#jV}rPq28_SY_GRx}%YFt685 z;Adf9XGfo{IqxHyf~Hz?-beTb-{A-RyRct(TCqoAzjqJ9-YjTVG#h+?kMPO7p4+pq zueqbiXbOBauX}tI_SZJ}j((WeYfWDX`x3tHov^R7pjoZaYdxab&;&FQKEdzs8U97s zuUpVmYxG_p@Xfr=Gr-d)Vqe03zZUoveuEG25kA3Za6wby5BO$Y=YJFSJ$5w18r{qE zi1~%D`QcaddLJK!ea#I`KojAUdA-&SpWzF9g?}|Zf3E{gL(_%z*Dw0_D3ty4ZJ?RH z^4%zVGYk8EAB@jmU!Y&muh!_n=-V68vKYumMFYMP^;e)ZR^Mob}`^*W= z4xi1RXD;mbrJ$+SoM$fVGaTrZ{aOwE8~ToBpqak<{n}ahdfwny^E&6Fu+Ole3D%tF zfF`0zXm}Drtp$FC-{6CJy;g)z@Yz`RSkP272YiDc;Q4Fc_u@g=_qD=r!hY`p ze1uQt&odYHb#^q_n)A%zEBvdlzxF`WtkE;+@B@DOI`^Ejus>rD!oKE$W<|5X2lF~- zgir80e1QTAq_c^CG*Okek2Q`!4j_uY!f(QQw&#C$ChX@B&_p!K-Xv@EUOx-_ z`a7D8<^@ebQ?1eG|A24ib^Q)M;NOM)y3;4$v(3WSeS}}(H~3)w{M>*~@Xx}2tsPCa z=6r9$SNH?Inb&K*3HzEI%|P>xX8!sg+1JCT%fFp&eEzNSAop~4b z_m{G-lhM2g`#J@^viH?`-B$w-W4+e9u&*J|mn}z*7xWKRGb>;w0=y&uPz6kp> zqwMEUtzw-96&#FpUs3pa2H-RL3T|iyc>d;e)ZBa{@o3&*&?- zp&#J+TYcoZ`t$2S_`0rn{aF^k$ym?i8GVL-fv@Jz=L$T~zoVbOHO|3UKO0wLT_=E( zv7YlY`i!Q6o3YM6!1IRt4i3iJKMDK!B>0TJf?v@$^E&51^NwZ?n8Emb_P|fV*9_=0 zxT0_1H(`J6KtF#QT-R8iheu)WgL!=(68ITSHm@^R@FDz}^7-)bKTX~X=Jh_l3H$m3 z{vCe$w)f}NEPQ<)nm_-pqp+_38M6M0CK&6ro`n5c2|gR^eR)As(KPTd);+$XpP%m8 z9)$f`i?Dv~{UqsEYjmCsKEOx#WL~fJEbMD$_-d?czM^UH!&vt?eY^WSmG#^{;nU>1 zhp>N!KM4D^R`_77^CWOa^CIl8EyABI>+AmpM@7?&b)Al8z`qOoI`g-`XIq4Q%@zJp z*!y5!pW%o;nb&7HgI|RGwFP~(M(1qcj%JwG^Pj)NJ?De4uek_cGh3r;25>}^%Kfi>1{YChi-x|H|k7xpXM4!y-%o+S5?CTfw)f%1i6-|Th=!bb- zfBw!me_>yL5x(ZPM%RBt6W}BIWL}?#jOIny*DvTRnr5uCy`k^u2b%f2+|T?Xe9a91 zDD2k_=5_ri_$chJO=z;Q?!BO?@UOzYelxFo@8}2mcl7gj#r(oP!)jjV4B#hWzg9$_ ztkF52(Pa37zM9wd8~9Dw*YD_uHM;)%-7vH8HM4o$dqDFf>}y8!2~9TEc?y~e|0?Y3 zH1j%7M?c`-(a+!ge$E%+Yi9UhtZP0A`?VtagytDdHm`dx=qvgLeiQcfJNjXbp2Itu z`Fmh~;cI^LI&%O&3H$mHeX>T^&)|Zln%6ZOxT6{7b-(lX#PcA0%?2Ng^|}#Fg3st* zgnj;kzM^Tyx@Jc+;NOLPo%wrVPT^}#_(x&ygZcC4IQnG%{5cMO5%$*>^wk=j^A$~l z@92klJ^%T8-!nf5`}&LUHNQ2w{v(bd4eYHmK^(&fYUf1d92mJhf z?&tPF*w*Pp*H&RN*kUxcsutvTmM6W}BIWL}^D zY^=}xi?FX>&{s6gSZ8}f-_Z{=^Y^=-^F{cY8U9h&uN%zk`cLpt*k7B_WMkcXK~v#h zg?;^IUY~(C_%7`04{LPI`TJvjVQ*IRI_IOXuOHwe`ea_$d`6$)3;Jqa*KgoAVZT;K zKdjO9-_guJ0P_o9^PAUm2xy*!ef@|&p~=QNTR~Id8~Qh6{r#4XexR9u;QgF0!q=Se zkH)%AFxLG>^a(y2>mCc5isn_=_uJq*`e9!8JO7}2&Ie(C?IL{5Y>m$Lh$g^C^vS%g zpTRG}zJ5Vptpb(1z%wK4>o3CB{AdFB34KJL&}48yQ{i8Q{kjeQ4ZaKeJOj=A zBk%baVQ*IWM`2$-z(2u9VSjBxlfeZ|g?|8ih2b%f$ets5VZ&vt6VP8L( z*LxSyC-`Ud8NQ&e=JlCr;5T8vR!2Xq(d)jWnST_{U-+6IK7gNuef@|&p~=QNTR~Id z8~Dxm{9c59pqYO(<`ll>gnu+XzZbzj312e{`)d=L3@&IY{Hw69)8OCWyRff6(9Ayu z^9y^kn%A>>6!!H4{1bc>_SYtB^qyvLK~v#hg?;@7{|4WMef@!E{;`-}*qaspQP|fH z@DY82e@36-3;GJ*z;D8St&V=6nSUH+7QSYN55{`_Pr|-tM4!-Pa6wbyUxj_0W?t`6 zM?c`_ACEbOuQ}l#jn8KrKB7|WQz=r3Xd%O>Y<+Dl5`NF?ystUefa7srpDA0Mt^3p?1uy*%BM0lj%&x^FYMkf-@F_ThRf^fh`5 zJGjHVN8h6#(3`!nPjonMAuskpU&9S%EP59m?x9EDV}3wy_QCy!OSqD!eQNYJI-JX) z?=bJt_vnY%hrjn__Fdi~corRwS;*6QOY{}`8oh-b++p6M@6iwF&HHgr;6h&PgT96v z%vkge_Hd8+0loPEc7RK`lBa!Y^cHq-hj}0SaG!hh1A4RH@(y8U1{d;l-V%L;6Yz|20&7;Ho41FOlc0gal7H%=`(0AxP`T;fvVjp=r?+kr`zC>Tc7H%=`(0AxP z`T;f{!ank1AM_<$!xnbY;aTnE={O$!fO+%b<@1L5T%P7<=*#Hv?A5S^TX}k|L+_)* z@dtRsyg4Xc`wTAR>6j(@8n)5l_$}rg`VPHEKfvbTv_mdW=bfQ1qr%+%;D<{jK& z-ebN;KcF{*VTubc3 zYiroTE#@71A3gv6$IO7<9EKg>LSF2EzCvHeKI~>;7ae}qcbNC+d-Ox>!*R?GC|Lk|y_A2DwZPtQOuPv@GUFX0+)FmKU2xWkM`KSa;p_aoAM$mPWj=nM2E z`Wm)yi+P9M!#!q(*oS*-K9=su3@+qpw-SAYzD93h2X~nF=m&Vjj5!kfz$IMC({43- z3p?1uy*#~kKyQx1d85PoRmjtPiN40Xg&k%(d3vo!KVaS*oz9!f)BG&vnAqr=W6T*=dYsL@;4MTcwYFz?Y1u=xbe8$CZST*-^`qPMV% zo}U-<9y2}q0loR;@($s=Gq{ka^Oms>$FI=W=q>Ev4)Y#;kA6UJK81S%7xH2s^cDIV zy@egzVcw(f(GTd&3D^fN(LLe`BFM>E>H6_ z^d(%w7Iv_Q2iTmve6H{e&)_n8{w$$yB~%vev4abK|xP~q4U=I(`VFz;jxo{y*yOpsI*HXh4cCd$gc{JIs6Z18gq94sZ!q^0ZHl-og&qIa;z%mAD3 ztM50`Kq9gg3~)Ad^P4)Y%FF+ZRm(VHJ&2e^bQc{*<$`|!S4 z*kRtoeRTMeK<}HTe!u%L*JqI z=m*$bp6*F5FZMxSpfAzau#KMIAIv-S9_}$Spf^|G8Hf(oUdYpKCHe||jo!j8I^6RP z^FH=r=K=HP%5+a=a3L>tKwrZaZZYp-AI|0BAv%0c%@3E)8=Oba|CzVwa34yzjt<9c zFmKU2%zJpi%qUOSWv;@t!zEnF(|nD-L2qLp?zxMeUpwY|%n#^C^yX^p1DDa^n3cTP z2fd9B_tU{Xdj8pj&5xGP6^=QJp5Jr0hArI6(+)27;o5z4IOc%)5%cE9=^Ar+I?fDz z3Dqn=3C4=^d25yb1lvbm(k()HQdP4J~sCAXAkz6?=e51AJLoZ zumfC1haD<;I&X~`3%8hY=si3{hkH0;-dvC8L7vVvi~amF0@rYZd5gY9@6daAhz{2{ zV&42T?K6v>Ka+5cnMR&=w&-1S*x$oF<_FA==*IPUxxCm1eF@jm;XXH*x3LfBYSFvc&z}c)fJe-mU!;9z(czedJndFuriLxt zV&0+m(P94~Ivn5pGMzV@b7N=u*HmnJ9*mK z$3EQi0X8?MbLH|hKZ|{sFVL6hYuLgq=3VT=z3tHZ*oSKzqQkk&Ex70MVjuJc`VxH& zTe!u%i+wn6hu)(fqQiYQw=VB9|7^;OePSPWF5wC@b?n2rEM^?sVcw(f(GTd&ua@@- z_j48rZe{GlZZ&LS2Y2%HT91B!&9Cvk$kY4`eSyA2U&9t|G4Ig(==rk&o7G-+4xVNzn z&t3`F(evxVyhY!lcj!Glz$50(Z}DEsi+#|Sa2*}4rNO*K-=cTuJv_i8=FRW0kG$9i zeF@iagLxbK@SeKpu(QYf0Gko-i@Z2*?B~w_T*D3KEqWIncJR?*hXFI@_vw0P(P5^9 zYuLgL_V5rLb~d-CvEr};AWVV@edu!B2!daaLrIOYJG zzoqNV?1GsL0_ORV;|n@8n&2kG4Ig(=x{9q zZ2pmUm_^T@0l0=O?4svCm(dTf`RDTS!!c)Y3D>ZVo`3&GhxgIL18nZb{%{#RfA3%m zJJ`bmZ0^DSa0%D2g&pkS0XFyI_;48=uDymW+{)84P za2*}qmj?4T_F>N!y^DP~uZIVC#Ju?z_K_F+pfBMXZZL1rJGjG)M?XY|{muQ$I|S$Q zVu#qzf2V?L%v;#O9v)!x?{uyiT*7s9xQ7;Yu!o1}`L#Td?&l0H;TpEl^Uqy$IF856 z0Gt2d_;3l=u#FDKbg+*O_jZ6sdAk4RzqnU$86ECVB~SA;`Ubs?{d@<^c(}*>fPO@8 z{)cOi4)?7@U&)Jo&^PEUdIx*B$NYePM6aiH@&8X`2A9!cw@O~@gBc6Am~rSmJisI7 zjY&J?(euC0fWCxlxWT+d@1p0w+rUHg{5fA*K5y_WIy?_0T*DT2u!o1}`SDkz|hTM@EAS+{dtw;^M-4gMbDo-xQd?t z{u~{it45yowCG**{F#S)%nz{-=Q0mk-XVAvJ^wC>4(F<23p?0HhvN*eSv4I$m#3X) z=u5bU8_ZkuEqaIE!vj2G-mHdwgf4B$GpXSi{7F4(c!fNJYwFgzPwME z$>qg9=u5bU8_Zku4(>4H(GReBFm{j^JH&qeOu{v6;Wj!vt1dcRmxqVw@O+M#HxF6f zA@sSt*dg}wXEHh*vyKkCHJG>PTl6mW^L^j}^CRZX8tFNi!6jTrhhsL;;o2=`9PHs9 z^8 zc{p~64%bz}l{}rdj(xbs2EC1aIKG2D++%(~KcY8lVjsAS4)>vw7yF>MaElp--baT$ z2YAH1S!;QR`SUMN=bE7}qvzjC(eq~y^EUQjX9s(DfJb>cmsuP40WRT6p5|-x7Iv_Q z`{?i)8PJ?VT<_|^A3H7-p4*1XMoM4(lzGtblw^I0(}|#aJ@Bb;TH1_eTUwoA7Jz7 zbWd`5u@CwJeTlw?E!<+>#Xj5z5BHcEVjn&`X5DmuW^f@-yOpsI_oPB!qqouFd2n!t zc^~_5-adN%{6~kK&3f1;I-IwNo*#P^3%ls~eSindn8z%iYyLeG9gaVX4(Bc5 z8g4Leqr@h#U=CSD+n877n!xnb1hX>d^E*(FYr}uG&zJzPI!MsK9U=I)Q7#;4R zd3@So2A9#{URBXyzD93h2YYyc&H6YOT*5VMVF!D7fXxiYhfBDIE$rY++yCL@6dbnLv(ol%@eVYyx0eQfxbjv!xnBa?_wWz?$CSm z18j=reZqV$FZPN3{4)zzn5knwzdx|Ue200DzDGaAJ{-q9DeW_Z3wheDL|?-ecF|$~ zPM%)t(GRfM0Pl-D&Cg;Vb}Qi;wy=XeJizA3xJI~yD|yOyhq=oAJChp zr0bnUhife4>AWTS3Vn^Aw7Ix9$x;#8!#%zdl!G$~>zeHcd7H%=`(0AxP`T;giPdnuD zblw^I60W1eby>KTr`NjJhv(MA13Y5hJY#u>FrUlQab~ffe+Jx{u#ddh2YrFQL|;dTb6L2>yhGoi_vi=MY?9uK zTwd&hzJx2x)aWhj;12U1eUE-XZ#GT)%-}+vb}P}>u!SA$;Q=nShAr%14-c?;b~=78Pdm@hmv9X?n78O#^bWm;2YAH1*#i5>i+#|S za1A$@x9D5+4!ws5c*MMU4)&23`=Br3Iy!uQ8_Zku4(>4H(GRfMa(RdO&jNX|1Ns7e ziN1y{++yCvK73brc!14T=|0Th60TtjyXdgLhX>d^H(lclF68NY%h-oKYuIAG#k@n` zq4%*5#~EPrytG3uPv@PXFX0-ta4S!*b+Mn{TX=v+%$w)qK1YZ9R>C#hM2El5wdft} zqr(n8<_Gj<>vZiixP)ui!Y+D#jqrdO^8y?nF5x;l9LK^AGaepb^FkayI{ZFR$kTgK zqOUP;qr-Vy%sccQdLR4nz6`J_(|ec8(|Kp;3-l%W8n)5l_$}rg`VPI1eYoBMHrp)k z6Z%|U?1R2QU&cP1w}vg;V&26*9N)t|W`@{@W11J?J&K;cNAk2=iM~Q#$37g#!Vc~* z@6ivisjvfF$cr7&*RX|K%sccR9-_l@WnPSDBYOV#1Ea%rm2i#u2J;rZgFQUJ<|XO8 zv*`J`;2O4=cd&;C*le4QpUcxdoS`qH!+TxB4dyN8Tl5aShX;7Xym=}1kr(@*FQe!C zzzyat=3Dd*y^jv}bBGSd95HWRw!Ba1b9u2(?8CEB!gX{wW`lW)-eJDOj7LAf=H<92 z@?wYB&z}dlhHdoxyHTEA>(G155AcY2^9t-BPsf>|FQdagHQZp{qIc0@w+=HN{eXG1 z-SQ6M__@5;A@<=tD$tkc>*(-W3%8he=sWa2_F>NfHrrz#d9e@rGCI7rhAn1Vd3vow z@8Kaj9B0J5*#Ym1JRN5i`}wm0*O+fGZ_zu*#Rb8q8btEqaIE!vj2G-n;?#1TNt^ zI$XPjU3B;}Wsms*Hg8PVJA+HOjtiKI_%%b(>=GCaj=Jb%n#_z z&bY4V`Lhkzu!SA$;a;A08)6@JHoM?l(cxT$Jk6KrYuLgL_V5rrKi975e&+IY{2BT( zI?UH_gL#X22X~n9=m*%m2|LJ(9nhE2^BrIdx6$FRBOH1U5AcY2^Jd(0xP)uCk*7Uv z?8AHHV2}A8^8Ju{I7%1mv9X?n78O#dD_jP_wWFZm^Zs&A9*^?41EdLaD#ap z`|y6X=pE)gJisI7O^toz#XhkQKch>yjt=K-FmGc&e~(}f5AY~Y=Q3|iJIvq`uHfu@AdB%y_uR{DAopz1e+vpKzQRT*8&S*av-s-lBKW;r@8I$NYePL~k10pXjh# z86DoEN?z=PzCmweKfgcG^L^kR^8@Bb^kxs-pXhL$60YRMKA3ONTl5b0aF6)`{fOSY z4f{mT_kk;Uu@CwNy+!X}5BHcK(3`j8J&K;cM{tdqCVKw&QPDfhd$`B^fPR#x>oV`a zeSpj8a8D|Eny=AYxW$Y^@1w(Y4e*G0^UkzG9zFlQjh??RaE$8PdhvG9vGv3p)aH7KjSb{qqouX zYll0`d-Of}0lnD=_ar)8dm&G|mFO$xWl|hKfq?+bWdi{^XCwKB~Sa*=xubk zR}Stl?_(d1Il$)qxc2Dzwae4FO7u16E!<+>q4&|@m_23&^yUM&cDRriJH$ThU!kwj zTi8X1^LCi`=zH`-?8EWRez+%aAuskpUq^>?S=eEwlc(2u^aE`6Pxm30r}-KBGCJ&8 z!xnDk>9r2MhX;7Xy!jw@kf-C!(3jEk9pDD@HumA~X}IY5dx05`et^vZ*g;rW zgFKyghQ2^wqOYUp-(7Hvd57M^J!Xd3hif;7rhR5`Ay2!N=xf-*4)*X69qzfY>0G%y z9e;+tglo9LyhZQe4l^G80Gq?GgS^-QeF@jFghU}e2@77z4=($A(y9f&0-&pS;95kVBVs4u!o1}aBoL>I+r)40mH|QwHn6a>fJv_kX_;mbSo~~tvzJzPI!Mu%q*sVqH(EI3cKL>cky!iz7kr(@* zFX0+)FmKVf=w0l?o*o|H5%cDg%lm}+Twd&hzJ%-O`7?ldi{8N=9$@pSblw?U!ZmDR z2Ya}er~L=?<^-GzF63#xL|?-ec5o+8ul48$*nB#jHtt*(+qY~<-&7QKT#++%(~Z$6J}m#1US z(3fx>J^x%|-lBJ~hX;6+r*oMv;M(C5uHq4)3*J-_E?;M(Qs zT(j8EuN|)82J<%d;g}BYFymuCzyGi~bNRgQ)3xW(t8AjrKKc@_VGFm>;k6FEhX;7X zy!m?CVFs6Q4L8x@To%29J=|k{KySX0&YMTiuN{2}*KmV*i{8N=9^f%LoXdPO?J$E& zxQY(*HF^s>*u#BvcoEI*l=hu$DhArG;-l6w!kC_3z`8IZdi|F|d=xf-*4(_7EYd!h_ zHs_@C=Fwq(hQ5Sr*urgec&$V4;Q<~oZ_Z6S%-|w=e(mUM*upL59eNKBusJWCH;-y@NeGz+-ecmpMP}FoR3DiVpKNdJDJm^ci&MJv_i8=FNAo16;y2+(d_c zEP4lfxX1i}-h3D5g-f`Ko?kn93p=>OyhlI4BWBF^umfDeRrGuZ^cHrohx_R8+5x?} z0Oy5^=rCWRuVD*2xQh<2_2>uKT$s+AM~C?t`Vy|>>A9-WTiC%J<~{lWHs4P>%-|w= ze(mUM*upL59eNKBu(>FmH;-y@NZGJC0xS|<}G>$dw77y=x{FM z(+)GZgsbQ)L0&v!sy!xnaM7ad;f(GRe> zBAqvn4)ZhgC0xT6Zll9%9eNKB@Q8VHW!hl|7t!-;M_Ev4)Y%U0Gn&m4l}rjo?koq z8n$qYd57M^18lBK=gp(%*N(n~Yq-I@MepEFo<4&f{Q#Tmv4cF#&(N1}4O_U44*NUw z9vq4#i)nE}1|C3b*|==l!lYuLgL?xMqMJ^BGQ zH>LCD(P4guzJzPo!fkYTtwZnO0Uj}LZcaPQ;39f{?dWUR!Y$?%-|BP<)gLFVXxJD0ej30u=(@y z{^5II79GC#8hQGz=wb60>;OC1!-E{|Pq^o^yV7ed>|ifXpRd{frTJ2xj#I^c{@!86 z!5wCLxcFJw9`4~0uI@?mEZqob+S4*jH;2s{~Y6a%u9v)XsGu3Lz4cx=s>S-o_aB>TeaQ=`q z)4(HKt&wJ0c!ax$rkVU<$;HEyTeyddHPcK5cW}E_ni=7I?UfeKPXo8|^qn@s`6E)_ zz%4w&`8t?~TX=-?M`9nil^6TK&7)G^!y{Zh8Z&UQF8cM7i^n8aa0mBr@mS2m9bC-P zObh2vNPPp3aP`DAQxwT9+`;*i(o6xja0llbr1=&e;rz*Irh&Vsq&|NtykT+!x9|w} zPfzp3Gmi zS7mYo_wWc;+obs(E?$)S3hv+@E-K8wJh_8=xOhdHso)Oo;bOZqpKqVsz%4w&`40Gg zfLnR-{Q&2$Onn2l@CfIx!aUrh)^Kc7~aQ+(1!y{bnh#9ztN4R=zn(yJ_b*Zo5 z4({RN^_Yh{xQB~3r1=ic-Ji__Tn1@?u~o=HU^p-hvsphex>D4fAjhk8o9E9`4~0uHK4yxQ9o$+8y(7507xw zr1@fxBW9{S zF)uIX;cBnccX09U)VFX4=kG}~-Fwry^7kbda0?gvq}R4^Cr{U#@0;AcKh5VKNFL#8 zztp$;r`L{fbzqw5;2thMlx8ZpgL}C6Fy`S7E)GgFEj+^2!D*&}dw7JaLog5b@Ca9j zruoVycW@6EhozYo9^w2WX{Lc&c!Zlay)QjH%G2{%eKfg;i^Egjz&$*|)e&jFgY%E2 zzJOaeKQisvz^y#(Il{$Jsc+#9&W}zr4cx;cTpfdXxQ9o$IyTMs^7J_>j!UlOY5xu$ z;p*dQrh$97I6lp^a0lm~NHYc8!ucoDZVf!j)1K9*l3RF$^Aplc1NU(8=`>Tp9o)mk zXVQEpPxmuFF}aneJx93sZ0cLMgY(a&nFj9R5w1RudANs1xcWkx@8xO#;)}_hJnf&K zlw83b+{49}(tHb#aDH-{Y2XgdPf0Tc+`=PVxisIvJv_qImoX3baCIu~30!pPwJqGk z#aGfy1$S_MTAFF#79QdJtC)vJd3qnKuO&C~^gi}*etPN~xP?c!IwQ?@a1R$}rkM)v z;2ti%j(NC)d${;UnlHYY+`=84pOt1BxQ9o$IvewF4_Dtx_qKz3dAiTVx05TlgL}9* z2lH@8pPOd#^O6g=g-5tLKh3xB20{^rD>+PEV+d{IPcR;1NU%#1!mwD9^w2- z%)>1_!p#rUJ?!D?s&t$V9^vZhG}FL6T>L1_v~UOKKTb0vTwRm;2JYbzu6~l{dwKDk zT$|j8>BXUPrR!y{b%9P@Awk8pJ(=HVV5 z;p!KdhkN>$X{NX-xq>@5zd6k`a0`!cehcQ|79QdJR?NerJUtK9uad`Kr}^r(OI_q~U!Kc$%t?&0FkX{LfZIR8hQY2Zrvo0S*)G;l9Z`xHybJzT6veFb-Lk*DLgaKBP| zZLxB41$S_<3XTJh^0a65pyUSb;coRblRr4QfLl0!NIGu=_wsb!VvXbm?%@%x9*X&g zC--o^X6hSwlo!v>TFI?E?K8s7+G(bTM|qmB9+BM0)A4(_S|`nPaItRcTeySs_0miM zw{Y>eG}FQzoIgIz(|dX-`WAf$XHQM9&E@H}1$?M{PW)%FTJ)VfJtsfF zO!l-ipUcxsAy3C|;SSC>Of&1t(|HT@yPEY%% zX{Lv}EmNOwm0Z9r+`;*CF%P$J2j|bjJlw(^oIfA)a0_>EzBT6I7VhBu1(=6hxP$W- zVjgbc4$e!=!!6vw`8Jq`TeySs7hxW5;SSC#%)>3*!TF0Z54Ug!=P$uL+`=84Z;N@j zg^QP^nHKKg{N-t;fLpkO^H-$#4$ikreG89pw|$z)cStVa7Oq~IW;(ceRqA`Vc{O^t zdrkUW=Q}1B^7Q@C!ue}c-@q+A!p-Z_F?)D~tJh-&F5Zy(2JYc@r?k%q7dxlEg*!Ok zCCwCY3+KD0nFem*5zgO)dAOCQ@6Qp=-;8;WhnGvquo%&Xuu6Kmn_oSH-F5a8^7B1e09?thpeFL}f2sitr`5qqO zYTq=|zCU?{^ADuHfm?Wl^ZhUn=li3FN4WYRX5bzk;pza)!#zC0)q$9Ydw7Ja4`Cke z;SsJroaTGDI4JcM+`&Cu9E^FmgNsAbObd5#erTF0;1=#|n#m7KuHX*t;o>8hhda23 zix%^62lsICQOv^~+{4A;n3t!|V+Z$`DUQHA+`&Cud<^q&2lsGsWSVb|O77tiu8vMK zjXdq&!y{&@W72#N7ssZ)IWD<}N4WZUnrYx39^vZvG~dD_+QiaH zKOwpJbaDlEa1R%sN%NgN-Ov2Qe=fO!TX=+<&!_nw9^vW>X{M2< zJ$rbBt1qUR_N4UM5$?Z~`r_o|N}i72!R;w&W`uK>`UY;{5zfDidANl~I6pP*)4-!V zy)RXl+{49JQeVLxT%49>TDbTsdU%AZucet0u1-e}S7)TYfqQs_t1~eV_wWc;U&lP$ z!y{aM1M_eXk8t%(%)>ogowfXa9jw0})xo2@c)!k0Zr~ms;p$syzW8=>3wLmS4rb0v z9^w4_)HiT{LE68#FuD1Dn(yJ_;?%creo5*Zc$BBlSM`JB)~ERqZZ1uI507wlS(<6! z9vJONQdw7JaKVly4;r!2-fm?a{ypM46mo(qQ zBV65;W*WGMN4WaGG++ERowtSizhUO@$raqeJzV@F&FBA2Zr~Ok;rwpQ!y{bXgBiGo z^LsG^x9|w}_oeybU&$Su-=F#suKu0+9xfh8{rHSk=FeyN^U&&<$@xafEnID!`X26{ zwaWZC+3WxG`_iV%4*yPx9vyT zN!dp^Liv<(vU0BS14aM3sZ9Txi%kEDglxr1S@uw6J>|*DrpgPHS14~#-mM&L&f%F~tSD3!94@*d?t<#6ST%GZ>Ol&h3qD}Pk}r>wrJUave|DV6P&os>P4y_JKM zBb84pPWguNJ>_!cdgXTI@5+Cb)mF>0$158uTPQD5Ua9P&yj|H>IYc>HIZ-)PIZL@v zxl*}Rxl{S4lC7R)4^|$f6v~#$4$98T+mwBjgO#I{la(`-?o_G!}J^~?^nK{ z+^1~taNRrQ4CPAYF69+^sNbP{T=}!I>RMU0v2v`^DL+!4vbLT}txyUmCq~RQhupy{>UtQjdFl;qw*JJ?MLZ-Q$D7guH2`r`e;3~$^ptz z%2~>d%0HC{>C62z~G47$7IJZ{@mcmk z<)g~ylv|Ze*Uz$Tm7|n9lz%Im%=8{9mncj6!}N8Oos{#HtCfd5QJ*K}^~z_J%axmy z#}rxi@+WC`M45ul--rnl&?Ki&xP`T z$|g_KbE`aPL!Co;i?XkBzH+tlkf&$aOlg!4Diuj85A5e}^dS#_&>GjI4%Bjlf%0)`HNtQiVd8P76 zWt~m+*-~Dh9Hu;bGd(BDKFWE@`kU+hQJ$w9qWnPlnexbI>-$YPN4Zj2Z3{iS%Ey!+ zDce6s-(gCp+^wv-WtMHHd|EkO`LpuIt+H${Pa79Hd;L+@P%U zGF_LlyRyG>f%2-C>;G2vS1wR~qCET+S@tC59m*G!vy{IpD{rUoFXc_jDaswnzm-k4 z*Jn|=STQ^3nv^#xXDa6?S1PN$Qa?wP4PT{aM>$N{^woOim3@`-l?`5#Wm_o+Dfy22 zxv6ZV?4#VSJfJ-6wOO{K@(<-vuhY*A<-N+F+@q}adcB{@xynzJ-zrafgXZ3-`=K19 z{6Km8PFZ$>@-^j8%BObDvacxLQyx%`+eP1T%H_&~cGWYg+@bti+4@cTj#2)nto3Gn zHz-%VCCh%LtiPL{MdfVeAIc|d-3R3oW$CT@nWJ2&T&t|PyY8#9S)*rDIa+zj9(s0^ z-IddnJCuJbTfa@8dF2G<9%aSb^_fz3R!&mBrTkOb@g2H0^Bn9t@;v1b<=4vZm47ME+gs0}a}I8`)XD>L>ZL_l!v`v*P^^#IYYTvF(1&iD{oXjr+h>CtCH`h&yuo>@+IZl z%H7JU`|Go>?53Qm{6YDT^1=^h*+-NUm7A5jlxH2F?;hm{k7`Ew zl=6RyIb7GH9I5<9`LnXt5xO4bbmctdHsvKB)9(k$xymid^N!Rpl#`XKl#P$l_nq=3 z<#J_%qjiszBbBq2haaQw8Rh-T7nBE-9go%bf^xWWhqCo?`iv=iD?e49`f>fQdRr#;7+9x%md_lQaS@l!eP5Fd!r}9r_y%Y5PuH2y9 zrmXyFJx|KT%GJu>l-GPl*RPzX+^B4LqJI7*HD@Q9|RxVQhrmXZ;eWsONl#`TSD|aaWR<`(> zexFlLQ7%;OQC2%$&xdl3a=CJovfdeb&XhMRCn&cm_bZ#9sdFkvD_>O3R&G}w`gQ$v zp|Yj2z4CG8r^=w*t!(iP{j64wR8CTEQ~sfB{!RVPpd6~4tt@>@pKGO1o};`&xmmeO zDZZ_r1L>a+k7nfxhpR z1C&FR6OGXSlMv@-pcVxr`)dGuRQxoeGMq5DHkXYDC_-DKZBG#lmnCtm1~uU zU!~8W@^4EC*-tr5+2$I3 z2Pu0ghbosU8~sFoeWAQsdAsr<Tx9Hr; zDax;u4Q|!vNhy^#D0?d3R5tsS&Z+F7d`;Q<*ZS*h1Qv6o$i?X}2zjA@{A0_{tekW5lP_|NDs_d$~OF39M zLHU~UCuNT@%Ub2L$}P$kzt`^=%3G8#D}Pt=+jTr;7v*&2d&)J+!|u>$R{6Gag>tL% zS7nns^?SK;u<}XeXUZmj&>qUJ%E`)A$_>gLO7TbSq3o@ERPoB+mHU-7{-pb_yjeL# z`H^zH@_S|WXFaFNe#$Y*Davn^NB%|Eu56`zSUFz#sj}iO{ddZ?$_M|c?+@itkG)5qHRavPN0jdgz^>T7G;C`wWsoWWpCx{$`6zWl+FLG<0wZfS1G?#{;WLn0lnwSUdo}$ zrOICv^B?^^FJ(97{mS{uLI2hJt(>L&QTea3_W$&`QX1t#cFJzb7nRGEo0P|_Y_ctseU!tMA1aSr#boO%n<@J#A6HIQey?ov zAd|gJd6V)vI7O!htH8fDeT=owMouY5;&>tju}uX2QPnesd3E@kO)CVPSMW#uB} zdS#8r>zb8)l*5%DDlcB&WZNsXa;kEva;0*MvNY56E3Z+$pq#DrO7;YkJym&*vYqlV z#VO}0_bMAc(PWz|uTqXyPF8MF_AYdvl#`Vklsl9sKFMUeD7EqdoDtjr1DrYN~DZfzG z+Sp`IR(4mM@(sl+|4}x5md>qwL^)CUnR2J{s7*}v8RZP+cIAJ{qc_#_s=PqiQ)!hi zDQ77^RDPvAbTgAZLV1C5tnx$U4rSHNO}3@7uX2)dzH+H@v+{q+zm-**~%r#2G7^$Nx4qB zRoQ=QlbIKo>_y5k%B{-dUZ~HkvSVqot+&yR%B4#FB0c}g$Cb;Jl`50%pq#ASt8D#Z z%_>(ZtG`6E%Ey)Km9@6jzq4IAO}SHf+e`J{DeJyWKM$1uDi7ICpKs-v+v^@E$11Ds zpzjf7w^!-2qkKjAmhv~{KgyF{t?x1A7s@Tl`(C5_sPxLScQn~ol~pqxJ6n57ke|OY-ai{pTZhUrE2J{Qq;|^{ZzqWe?VCAClc?*3hq@ z56@OzS~FXH=~3B(mmZxxd}-Zmt)=y{M=U)idzAht;xS8)%O1P*`0VjZ>t|0`nq^Pa zA0uqA^u+AROHaz4va~_=)TJk9Pg{Cg_VlFe;GY{#Xove)TvZNGl$dD$D5 zo}cZsv~{-g(hIU(mR^|cx>RPnEp3zSz4W4N-=!*h|I&-I1D0NreRyfx?BJ!BW_Iai z*+-UMo_%!b71+hs>BZJ!;pv_p36(krv$mR^+|zx3+t6HBkjPFUJ8`|{Fjv(uMe zmz}-z`t1CrH)NMAy)nCLX{YR$OFL(OSlT7~^U|)_UzgsLtyuBqZ0!|q$sV<0x9mwP z>TIJGZ_Tz|v3s`diY9yQiaoO3SG+AdaK+oRBUZd4J88u`volw`D?4k&p4mk!_R20< z@$Ss8cu#iOiuYz$tax8`<%)f>t5)orU9;l-*|jS^klnmuzie2se|Gzd4`z3)I57Lu ziVtOfU-9AWz7+>$_pdluzjhvyt;i3}R>^Jl*!-|;{rn@@6Y@4I@{eX^enj@-{A1Zm z^CPnz@}vGAb7vlRQ`z_Jwf41!JD zNeCfH$dn{Wl4MSj_gKHx-sf|B_wCi^?s=Z~pTqH4d#`z|@A{qRI$c|t{^T`Wvrn1B}VqAY+O)*qF*2-f7wk#&m6r@rE|en4!I9%+%g6W@&Sb*;Fobw8h3; zZK*L&`@ncp%Q4>4J~H0XmK*PCtBen{PmCO`i20#b(p;uhFh9~Nnaj0W=Eqt+bA?vl zT&XoMSMe736YYL;wbsI1qqQ{GYHiI=wTH}gT1Rue*2&z!8{*HjZstax-pjJ}zLrma+Vbnq zS|NR?71l>u5&Z=#s*kr~`a~8?f71Y15uF|(zh4dX(VSSfXMBi;)t?##r>OWe=^k1yv`f=+T{j^m=KVy~D zf8()u&bn6r!z!(xx31F-yNqtx*Xv%ptnRmO&_i}PJ!apiXWQlV{5&EG*cJ3b_RV?` zyP{syzC|x?SJF$^x9Sz_%6cWcieAO8s^4bcrdPMC={4-z^_q5dy_S84ez#pizsJ5) zuVdHL8`yX057@Qzw)Wk6JG-{t(Y{CTV%O2T+V|?u*>&|{c0GNBU0)w*H_%_Q8|tsw zjr2)&WBqlzi9XqGs!y|<>2KKg>oe`<`YgMJ{d#%zjw^+-|RbVLzgOX?M`K+8y<;>__z-c4vL3-9`V}?y7%pKc@d`chk?? zkL!MKcl`?Q6M7+U550u5Y6}>8*TzqoXfibn;~z zoqe=;+nCz+xQ8doT}=#aw^%H{rR^0f+S1exh+XJyYKO&c;ddi`6+6kVOq>;K@`<6@ z31=yFv8Y&tfgx9l-555h(49}~FEq5f#KwMUXides-fC!%h`q*Nw|PpeY$Zc`PHd{z z)Ls!ATiDcQis!n1bGVMvRuDLC3fLK$G!SiCryp}dz%*WA~ zCiZ>Q(&meG<5;7i`dUBrH0sKzE@9doX^sli(SDL_OMuMuD@<# z``OFBV#7K6L&YBFIvpccmQN>%o#GmrE%p|+NbE`W<0G-7EP0(+Nv@5pVpnq1_KJl$ z3qOe^SjQ=`X`D-nP4;pv+ZPbq!L(dr?KrxH#A2McYsJp8zZJwD;<(%{ww`Hq#2)2) zO~r2Dx@s$SGyBm+Y!aXL5}V7l_N>@R);mfp?y+dKJKHjXZJr_a9{1qeVuP_9v9`>y zMyxW++bs4r=lpB2MVzC9V%PD#<6;Fk3+KgJa-DkfIP18IZBB@tX5K5shH@X35WAMO z-6(c~y{syh;Oe|vtR>e=W3j26=~iNkxn4SoEn|)+#BO0)f3coiiNnPfa4yG*jb|xS z#3r)jd141R;_r#=WLs8egQTgQ7AwSWR9X3) z{doOqu1T@y3z%AQv07CPt%BI1!j@K3Y&0IC$k29)onqdf#Pp(;_Pf};mrN~?-`T!9RvTJAv0Ozg zt(4d&%}woAu~Q>V?H;k=eNC-}*gfp!qhcTM^y@3Oi>Kdku_d{9){5n3Tc(RO`oYxR z5=&r9#s2JIXrGALn+T`}die1lN)$1WPjqBhU zvEf_?BgCq69lR`dnCoDwSaxnxdsFPA3x>8ttm=b?wo>eCwq>K(XUC~B#8z>{_lp(& z)XqUp-!Zh}Vo&F@v>U{#7qhg=VrQEfS}n03 zXzMo;+xEVpwGuOP46UP>uehc45Zl79gFPd5Uu*VKY&B>4WwH798QN5_4qVx9iuEAJ zmxvu?e^-h%x{|#Vo5OX#L+r>yJgvmGGbH$^Sc#WS?RT+}`Ps{Y&R#mdpAi+aIcoXD z4zx0~Vq!&lnp#=0F;{SPiZy+}&}xeLsQMa+-9OgUT8b^CUVB7r_+mrrE;fO`HTbkx z{Vm*4V$->XUJ~V6O#j2#oZ z=ZLBOA@(L!qY zLt@!%L07R5)?4g#_G7qMUh-v}*pt~@r(%6~a0bQl+{Se()|}(KQtVaE{zkEroP`}? zy*O|C#oBP4{vvj8J9WF*N36prcY!>HyxY$723**FQl0H+!T4M9WN^s8K z6C28}S*{TCV4sN{=dRr@cBl}wvRL`JsU2}YT}<^a7UjCiD(vj#b1W|`R*$2RM{Fg_ zyIL%dW@=@`YBKE>v5&Z7YluC~HCa#WO0I+EVqbi3Xb+1`W4+zPYSI$vE7tfhRh8IF z{7uU-VhN^A5}Sq17CVkD65GP}J`!ua#?aP@{Z!x3wu%+tR|EHoJ;O2mNi09l!Bb*I zIcjv*v6o--S3Cn^Z*hcji5-iXS|PDpXE(1??;Jg?M>}fG3T$H&Je4dm#Rwa=@o{SBesgzHhmO(DVDDVwWC-) ztb*8;+#k1#E##i5BUX*0(bWAOOKvN6f^*qb%=sO;-eTnn((Vyk%dvV^0^sCH5lo-XzwLBUw$X3fIs*Vn;a6O~ei*IG19taGiD$ zGnQ~J#U9{$&x&0~=DaADn`1Rm>=e(pnPU67j~0sEx5v;v6r0e((AJ6#|B-VkR_=a7 z+atD#T>DY1@?cXtA$Aql+Mi;#v1DH{XD@dfrj`^lc?uO2J420BO03u+_EPMt`%SHy zSZD5vd&Kg+XlhNw>T(A>DAt-}=q$FV9lZ-;ukov;gWT_tyDx}M<0_dTR*~Pz>S9GBrq)huJ@?jQVz)7^kJuMHdxnVB zq#7A5HsTpmdrj<5=9ne+>H$N0N30)9UMALU0R1XrWw0$`&VT;-M(lN-_J_n8a%Q#cZEq3r){#KvZy`xO6wAkox4DDvIx?IK8#fE=vX!nX0;@CG6 z+sm10C)SK5KPDD`p6Xw0ZeKE1tT@McjMzR>d6L*7?&R5G&u}F!5*yss&^{77#}&Iy z>;%)cirvOm?G z?~OT~vTWw5Y=aqjuhf@Pj zmrp;S_I9_q6shOh$LZ};>zGR`!QDPJO)aJKvDCJxd5`j(cIVjADAkj?pF6i?=QcGS&Cc5XSIIUyX zqMcHQ+s$5c&IruL(FPo6?@J)e0pwG?%YXPU#e_WwT9>i$)8WLmQN^ca=?Dp{|Zb`8A- z>Rxq^c>fG*Q(Hf^W$J9HrDVDX)u+lXeT1AV!p)LQ*FlMN!l^6AS)Mz`BY9GHMKND0 z*PQn1I@#a$T}*A0*c(*C?s-#JUB{nOXQAxrlsWamE}6rr8NR*fsHtuFp6lQT`BZI7 zrX|POs*A4|wUkTmQKsdoW2%;Nx!dvyN6kIwt(Vc~AzOb#+FJAcaF6K=w0}>?rxmDo z-D$132VHZH%OCP-rn9B?=)Z3rnU<{1g4%kuN165`)6rGe!4a-H_gH1RA~NlHrma$U zR43X7?()=@#v7#8QI0l*`)S+sIl69hYT7@urRwZo?isxF_ndxePf4d@RD1M+Cv}y4 zb|iJ>j2@qwHt3}B*BqC7ua=@MbUAnJ-#=SUkMPA?f9b7K`!PyzKi{05tUR&>e}BE|NtbC0oa*7? zBYx@Qte&<1efMu7l)BoT@f!s%I`)Bd1u!Ljgq$j}q^uDo|9%TD zo$?o2r{*2-x2rUD<+M5U-*t4Ievpgz?b27aI`;qcaaMIxU-}8F$kiF3`ntGw?EGu0 zKf=kJTJpVXnx)eA(p#_Y%S&(l|GVOuBlVxtE8a-9;FDqW+=;37zG^|LmcMFEOi#CA zXQx~F>U)m|Q}>{nrsj2?IBv^d9kmLLQ~e<7d#d75bG)mbgXuQJrH{sue^UuwTmxs? zf}`{qxousw1!|j*&`;x@Uk~pMT)XsA)E;G;*X))`vrN4+PG6dvaPL26YOUpLseY;7 zcN>4T5nH7z)w_D7DmOKUTE}R5-`t#>)+A;34L7w;vSiiIRrq*n-?q|c5!q=pF_7XDYni%U{K3Q%6@Nrt{9>^^5KW^{Ki#1H6lVL%!#{abF1ca$@S`&>}V3oK1-i>hO5q-(S7>8eW2;Vk*$XYxPYnoxVR zHvJS*$EqCT0Nf*_rhUwPe(|){HlqXONUHC3W7@?%@9IbnA46}H%%SQvwJqwbsyUn` zyFGW#*a~-Eb*$on)cH_zWSaK&KvUZ$>s9lrr;wVa`jOOg=5i~FOnn7vDNe2Ot!%-i zzjx_R)ireK7Eq?8sJ&Es{-5kyrsZ9FFEhJU0 zkTb2`3#pnRKNX65f2gxCucz1X3vX%Nb>tjNJ*Ov}WMqx3cL7zI*;NN2IrH+Qvs>hyD!6mxn`t`~DghTJ6PwC!&dbCRaInDa*4 z-BPFRS4*Zj?a;bnPMfK*n7VtMUUqj|R13qK?zwZuzBQLQoDpwr#GDaZ?Zuo?2c5;7 zciY{?oUu5)#J2HProWhKFHERXA-wb5`9m=!_tFUcTpy%NQf(j0|~2%y}RGx|lQ8?+vl7ds1i1d22pbra7Zy z-WGF4O1vj_p0?VDV!v}-R*E^J+ddU@Mz?(~=8S#YD&~xH+a>0VWcyak8Oip8m@_Wz zXEA5g+Ho;wgxYUn&iJ)I#heiV#5K^Qi#a0)qGHa-fm~wFh=BZJDkGf!lEO00 zxwqVwmox1enWmmwJvXL~f$D)&{f;BgrLJtXlwRBm?scDO4z)bh3cM=4lok9bRd?Qe z>34S}((eNMKbl%{-)B>n$eXe!{!DGlH)M{xlrket?K;^bXIzGRt*w3}_34*=QuY#U zoWHi25gM+IOMm)Bx()V5+774Rfj^MmzK2+wJMZPbZ&Zn?@_8dk^Vb%9lREYjb5gxl z=Xv+(-j{Le61N?o($P7CH_HAdxHjCSsP^EYN~vi*(srB{r29RUL;qUMxoc~+FtshJ zMc}OM7FnCqXXNIy^Jc&`r(eZ2r!u-tzV}PIYTllH6XLW7@03r~9GQCKGtH}(>}*SI zS&Fjf9!zb4n$|fztzg=I{3NyY>U&QNG`0Ha<=uCYH6YahQ&*>&Yq9igrlRTrziAm`e3pNQ%XopWC*k<_z$dit(7-8^+PR7yExG*v6c zedejRbL!cXsRD2+WcN&$O&`hc2Qi{sj^va3Q^)Vsw5e@YHHfnX?sG;}$T>?=Th+Wu z%2Z!fiN>iVA3mD8PMv3WS6OdaYOWq)&i_H^E#{2-e@4t1_di6;8SVeP*wS>RHK!-f zH<@;Ax-C?gwYg`%XnI^?RKTmDx+Vq*8pMDyss_G8z4|faHxQDCgjdG_INcRcu zVbAAC-==dNOpxP}Y4nL2Y4Z2Sl3aRhN~UownMR*Ho38a*QVqK`>&9Iv`{sTA&wyq>2vx>qyh zi@NTe?OP~YuX00WiK-~nHKa!Ls891yeYyLgzNbby{qJ9EnYKC1wdS^6)P8KrpSq*| zf2x}@ZK>L3^=YQFubwGa7BICXa;D4B5^+tP{b$po2xtD9I+v^KrE>hm1}U4Bp7wBh zT5IlP_nvW{l5Taao>uB!P;IqJ>3d&Yr|SAs&lHW8ocpB9G&Vq0=FaoiO+7U>Kvj6E z_pQtKsV!BtRHjO+5!JQZPFBa%sb1Z?Otn}4Ct9hO+YZgtdQz=Gb#ybeSJn8~ap|)f zqIdtVW6FCb_x!4Ca>jDH)703@%l%Z%p{^43Tvbt6Q0?Bd&TXRZ^?BRjO)H z{Q~OEW7%|~ccB__&#E_V4?o8!N4Zlb4>h$<#LlLlOtYES-Sbs9+P{r=Rwul7S7Np-KP`_kz*bMH|3-+LE5NmMWKXj(vD$*0QHlGU_nKlA^#<$LPB zRG&JnyYJ*vr!xOh%;~dq``cB2j_O@iJv(X+)yJdW(W_6@HfMVKujajUD^R`jzw|mT zcX^jy%B91;oObx*;4Nk)cXqcMnb)>$TTYPaz{w2 z-hh{A`McNYJ?TE4BI$mWrbqbSU2+V@Qn$O~O6R1l;HuPEQ|D;>p1%GrHkDU3>8H_3 zJAGAZ4yV$0bHkZt$*0cU<4$u%!nmfkS>@V&{Qoj{>(%=nXDLBhih9PYX+6?CKx*2Q zbc;_-Q@zQmk5+xEGDr2@sPAR^RBg*Uw9DeMeVM+e_O11csorTd@0E-oaocpg(&lVc zp7b$w?b27BnnOKP)HKyMtey)_zj8rYN2VpKyi#MgoY7hClgSyyRZQmnDgA^{}-L1E-yWH%NeodE;-YPt>fu-?H%dkr;ceg-jTYke05E#XXw%N_NhHmEw63OQtgzh zY0tPVmcFzw)U{h$_R@KBs%dUNoT{{(y>zGj>lN!xYjR(zw%F1#_4HF!pXyDybf4y_Pnj7huM9aKE?Y0*Hrzdwz*2W72Sll4;5v3Dv{KFsQ1&V;!%~1^B&vX7U$h| zRauH!o4OaAWA7e6^)$WQF(T@$s<$Yr9(we6YJX4uoVwQ3+Em|7^rKWSPJlM7+n-~m z&G`!qcgof;Vf2an>B6*)r62en`Lr>2XalijToFyhoc~S!fSB_a1RfG|{sKcsG3S4j zJ|^b;uhl2TX5Pa8%obDisq?=$2g+zMC(`WRxnA!r> z3#&ezpYHLmo!)x&X}f=TS~cDfxh;%KuOrj<2Bx=VNV*5j*|+axFV%D5U*Dm*pQ^jU z`8x?e${gx?Q7t*|nbi5{n;su_D{oBP_Lf?k8d0X^$TXr%tyit%(lx)TuGN;R_3k;H z+P)U)?aQ0qzOJ6sma47#JpCR=ZOebM1+~&!aBX@EexUAjk5J@)U<(GN&yh+7wZDIV zFJDjZN9**F9G%_|b>1?akD2Lhx!m=tH)o5}>&Ud^zUkw9xl68d$>rsx9qMM?)v)jKMc40qN4zt68a zZ~w_1KOo(Is?OVgvb^knczFZUd#;Y8IxdUTpQ^3D+~bmIdB0}Z`paG3rL(%WxUpdo#ez|vdrg_!b`uq3l<=%N}9qJ6K z5$9^0bf&TA|2pE_ZMpt$jhOyz5&dCO)109%(ye^=GtIRp(zfKPRL`gPK~57>+XUJM#pKh*qxmaKVhtIm<$kXf^{#7&P8r$_@~PUEw&_s^nf6Vs!^s2pf1jz= z)7TTKV=(MoYOLBd8&kHD@nP{)Boe9w`yZ&SH-lg>lx@{ND$+jq_9URPV?0FQj^? zhObGr+12+JGKag~Om~2~_tkaZD!mTXf1vI%)rxWc8q>{kj#SV4S$YlJEmbwT`ZUuz z3N=g3(JVb4)ANq?9d*yET2&v=pdulYU+VlT%B-7u^bOzPdJ1wgE zvgEg0)0ZZ8?kWC;mDr_^TBlv9HgW!+QdeTNv}HOA|L!~Zn@sB~rv5*ZdVXY@<8%Ik_fVPRTHcq96uXL%%VWi!=+3AYv2FC}yKAf3E_D{Z zAU7tD(GfA5p@r~k8S`-3sPZ^>4v z@#tz=Up{sB@@~u-ZRpiujN43UARK857+1o;d;F>+@v>wTlHpehu$3S(Obgr^j7eo-Uj}x zw}r>_cJQ>`9-iaJk$LWWIziLZ8Tvh4Vc63RCOqBY6`me2zo#d>%F_!L_4I)yJ^f%A zPk(r$X8^3|83e0%2E*!}q3|xxFj&Vk0yglBgiSo7U<=P^*v2y!KI|C>J9);#$2=2Y z56?u{%QFc+?U@V*d8WeWJk#Mw&kQ))GYh`#nFA+!=D{hR`S1D{JE1pgHwliYZptbRw`7%pJF?2cJz3@8cUk4(!K@1K=d6nGSXL!? zI;%4LJ*z6bkW~#D{0x&v^BFZ@*r*8;MlE=SQ5zO8>cGNAU0B?x53e;E!m>tVc$3it zRx+Bw+l=P$4x=TkWwe6#8f{=hqb+P|w1X{;_V7WY18i?}f{z-VVK<{IeA4I!`xxEf zGe!?M*yss|8@=EtqYr$^=m#el{o(7z065(k1ZNwA;e2B#e8(6Dmlz}9hsH>_!WaeD z7^C3^V=Vl_7zei*G$*!(!$NSkhbtuQOM}8_c!vCUYIU z#oPd^m>c2k<|bIf+ze}(TVNe?8?0|`hmFmhu$j3VwlMd=*5+RLkhu>&V(y2X%mc8i zc@TCt55XtR!?2fm1oktJ!e`85aG-et4lz%`;pQ3mf_WB>G0(wq=6N{YyZ~P{b&p4z zWM;vsrU|E;Hk@ht;9N5R=bIt8(2T%$%@};&Ou!s78-8TwhAYiHaE+M{t~U$7&-nw^ z9_>rB5d6w40(Y53;WuV+_^nw2e#eU`&X-vl{$Q4YKbmFXPi8szvsoVgVpf2^nib)3 zvl2XMR)(j|s_-|n8vNa?4*xJ~z(38JP_t@5k5wBQRvlD_F#81B+X2VJWK}EMv8Y<*W|yCaV*?#p(>JSY6@mRySC~>JDpJ zJ>Wf7Pgu|D1shp?U=yn!Y-aU`Ev*5tl{E-HWDSNLtf8=rH4JvQM!=`6k+7dN3J$bJ z!=ct#_`Ed^j<&|bm#qnKqBRjtu_nP8)?_%>nhF#YTFleG|TwHCph)?&EZS^~edmcj#84m@ZrgNLl;@UXQ49p;f?kIc(Z*F zR|?NweFE0APr(NE8Q9o93!B>KU~~ICe89c{+t_**N8ZkY z58K=ZS_j*PooyfNW(QyoI|O^#5!la;!2xyxK5J*gA$D#!+|C1^xAVal?E>&6yC8hU zE(Bk*i@+&%QTT>k9L}^$z`1rQ_?BH7zGIhxi|w-TeY+g|&@K-@wkyEZc18H9T?u|> zSB78MRpC~<8r)%5hr8?=@Ef}({LZcg57@QgLAwq-Y}bWH?fUS9-4LF(8^g196L{Wk z1~qSU=<&9MmbVr3d)vUUw=Il&+reDk_Asxv1I+L31h4XThF5#L!s6a;u%x#;EbZ+9 z%X)jl^4?zXW^W%@$=eTB_4bF=y#wH#-a+s#?_gNlI~3OS4ucK7BVZHnNZ8yv3byu+ zh7Wni!VcbXu(NkOeB3($_ViAKeY}%kfA3^C&^r|l@lJ=sy))no-dS*rcMcrqod+j) z=fl^$3*Z#*LimPv5uEK^4BzxFfp2@4!gswnaEW&r%<(RVA9+{6mEKiwjdwL%?_CQ& z_pXCqdN;tYyc^*z?L!OepviJbV72+$0 z4}#p$zVi5B$Tj1ufDeVVL3|bQ;gEaWR|y{pxt4sD@llW*_Ep8lK#w-oR}Fs&a*g?_ z<1a(fz*hsG0Lf}!P5d>;^Ve4ke;v}6@zutsK#w-fR|lUC$#Y*_d?uty_tnSeLat9= zLwr6Y=Y5Uww;|7KUlaTtNDc36hA)9+i?2Dp6jIguTH-m7wDGmVmqCxV+}8&G7*con z+TtsrNBhLr4qpwq+I{Wuwa}xj^L4=2LuxZ$C;T($(Kh-zd^)JWELDJs8 z0>258D*jdY&5%^_uf}hIq>6tnek&wZ{Oj;4kmrJb1AZIyXx021@!KI!3jZej4oH3F z-;Cc0Jz7ow7W^*A)8D@hzZ;T8{_XfZkb1zs6TcUdNdDb;JxJ~C--9=RJZt=W@kWqp z!M_i`4^lJu_v6i=N4wvD0B;Vd-24ae2Ov)+{~^2$q-EqkjJJj4p8p8m4w8HRqj-Br z?)i`59UxV`{{;Rhv zdw$&{_aJRpKh0Wxmplu9#&6;SAgx-zjXw)%qxpUK5J)@MAHat}o|yg+J_6G6^+)g* zAniDR41W=ld;SDI22%6*v+;3|iqxMQ9}juL`t#tgLY}k!eE1|t*7*zIQy{Gme?fd2 zkQ<^2`$<&b*JUkP6UdG7n2-<@9t$wq%w zd^IE+{nhZbkebb39bX5@Mt=?bGe|c2YvP|nve91){{oVY{@VDLkUjx_9egXKo$IfQ ze+50-c7J_*2c)j>H^g^CkM^~{F}?><2l|`fdm+`kzZt#{QW^T26X=7RkoqUk54Ryz5Cb;( zZD{Dx0)YW|5Ym(zLSunFEvY zQjok2OvOt>@-{FXF9XTjzzn=BByR(=@N$rrQD6>U9?~Wa%)=`{YPrCCydtEQ3oO7Z zLGm`R5U&Es+rT3HHb~wE7UQ==@;0ypzXOuDfu;DJkh~4#;CDgtHn0r88~ulDC1?cmqh@2G-(@AbA^Dhu;UO_5&O6rjRyrU?YA%r2Y?V!dpPH zH?SFh0Fu3dEqEJ9_6D}$Z6Vnk*p9b@^iu_P;*UUD4T0TwM@aSt_TY~~vNy07?*i#f z4eZ0aL9#cnAMXyy-oOF82c+f<9K?G%;{72x z95{v#fYhIX6ZjxV{TVog4~EpAfiw6}NG1o);=>@B95{!MfYhRa^Y}vh2%EFmC0>L&r+ZO{uZQm4HU%RhSaWs zLijt7KKwut{9Q=vI8YRS57G(?6vy9(l@#T=*4wS)HK>A<< zW${lSE$cuzd<~>mHc%e_6jIX$D&XrOxgDs8e+J3zKqdThNNxuz<6l5>J5Uw>5|Z12 zYWP-2ZU?I4UqNy^Py^oqsc!={@m-MmHc$)y8j{FeJl+eefuxMAMIH#S1_(JU9$52+8o^2)qy^!-FI7B9QkE!BKcINH0fl zG=2@FP7aR6OG0`GgX8dPA-x~L@%VL+KEvPy{CY@#NN^&41Ed!*I0?TIQZol9<2ONS z=HOKPW=PE(oQ~fDshNW_@LM4n9-M_&fwaMcbMR`A-mu_2ygH;OKR6$+0qJ82F2HL- zdRl@D@mkQM-5p$n*M_v*gNyMxke>hG61*;?CoQ-XuMg=@3+CVrA^n-bWq4!A+rZ#* zya}Xc4z9qPL2BmUD!e(QXFIqWZwcx146emnLwezY>+lDmM{670fIkFzhZx+5KMcw6 z;3oVLNQMVD;~gOx9^8UI3d!)`HoOa@ehzNOAA|H81b5<(L;6&MyYVL=J$u1D_>+)Y zI=B~q3Q|i4_u;)EwRCVl-WSq`5IlfC4e4JB9>kx4^alnH;R7Lcb?`9$ETpau9>Iq| z`fP(o@#i4@3BhCdaOmOJaZljSLoz&g3Lgc@@ZcGIG$g}=XYsL+3=f{e$3bfB;CXyJ zq;Da30iOWr)eq{nu1$p0+d*DvX_FvtTY@G&8Pd}gwDGBseukhApAMD;JQ%^}LNYuU!{3Btcrby#1hMroT!+-*p>}u{qz(_Y$4y8b9_oPGkbeG9C)@|=(+G9O1CTzA zP**$z>C*^x!y}MBjZk+y2FdeK4?F?M^H5Jb8W22>&qI1PLi_L+ zAUzwQ{rHQJ)D0cL$3jv!bPyj0N!`#Pd^{v|Lx=GRkkkzw!6!meH*^%A1gV@u$M7kT z$~klbp9V?V&?$TdBxyru@L7=e4xzL79LO7@&^de_q^CD@9-j~C@d#bO7eJCWqa0mP<$XldvC%iBuX~UiIt074n?ur+KRLkLR_%)Df zIousD38|LDJ@9KG)pEEeejOxr!@cn9A=PrY4}JrrS`PQaZ-i9K;r{qdkZL(R0KXZM z#^FJDB}f{F2gAzYp-ia)>FWp&gLi~SFr@~hDh`jtYeK5x@F=_%Bzwc7@p~ZI8y<__ z3(4N_IJ_Ptd&A@L29WFxPrw^NvNt>tzYkIghbQ69AbA^}jJJR!ZFnl)8j`Nz>G(sC zUgGc!ygejQ!?W;?kT+uCIe2Ht*nsdnyep)qB0L}O2I;8?FTlG)D%SK}ify%XWJ_((`)8(xQxf>gHQ4ftqC#)dcIV<8zE-h_{XWNdgdJ|2>>;Vt+C zNbf{=8~z%kcOtwUe;rcIhIisqA=PYnH$ENGBN5(%&xG_yg!kgJA-NjfhtGrLYIr|B zA5y`F58!V@ay5Jqe+SZg96p3EhV&kX593Q9xf(u#FNNf4_$ZzOsanIw@Q)x>Yxo5I zF{H;hd08)`gYT^YUIT@*i7l!0yq&9vvBqt+v@M4ghjMT-if#hVQK3)=1kwzNgr6Ik+ zk;Zr#NN;eY30@Xbokp7BzS9trnUQ|5S)@Nx?uVphWB}d*Qlmx&;SWHPGcp)&4XH&VLt)Rz zF!)qt1nd=zjapN@=&{Ua0LfXGCaGZ0ceMke9ULaN8eWPAvu zdW=lPpMzA7k?HtwNc9+*fj4S|d!e51?Tx2o+8YJZ+OYqkrm1JZoJ_S-qMso0JkUrSRGW-ol;zgF@ zGa-o=S%J@nwBIAE@VSuodt^2KCZzoyS&P2~Nx#TC{B213MK<8?K&r~fM*Lk!RTgZ{L)!0=E%*nJ_IqR-{vjj@Bir$hAW0b6iGK{KFeAJ1m5>TEvIqYJQej5+ z;%gukW@I1!DI^sm`|kP0($2>$|7VMY$)UqTWxas=NBNyx}i z{3}R>899dUfK-@~6ZkGjg&8@8e+@~?$Qk?_NLohD;@?6l%*Z+XJ4l5YIgfu2sW2lK z@E;%*W<>W>VL~d*NEZGRq{57t_|K4cY7ra%1@cZU;=_N1BxfXmABQAoB!r)YBxfXo zpN1r7B!>S6Y0F0v`0tRu*+@422c&N{k{kaMQh7%5;94{fu1E9X9!QEt3*ZJMMWY3A z3zDMILbw-_qR}F_ACjWcqIeLJqS4}b7*csgOW;vRrS}Bx}+Y28O_UeCG=cUAq#}*>!#hG+`qBRQqmY(3CYIjMtmzI8>5@>uOQhN-Hh*mWMgy-z6;W~8QliI ziEf8`qdS@YEu?yk?uPrLdzkV)BnhK?@gE>b7~O~e2&o&R`{Ci}0jB&6sTiXN;jhs{ z@L2RP(~m=PFM0$&2^mWeJqpi6k1^#pNa96L;J-r>FM1091Cn^rGx(p7-pklosK?GR z#RJK@*m>N5WL@k6Zb7mxrU%G6NY=&pj~|*J(r+1K5WE(O*-QyTYQ>ljk3rHb7Qk~s z(kvFjuYjakEQ05S)P%7ZyfT)6SH-en;aF~Xbu14o8q3Ewi$VG%V+CM|SV5+ggw%eq zLa=nK2ve?uw2os%@#`U}6)TRHgH(F468O!KM2eNdD?_TdSZVxrNEH_=gWmyprynbe z-wEk~jFrRhg7iSf%HwxKTEVdj_&tymidDqxLQ*JJ39k=Hp;%?SA*70nRmJav^g70> z;Y}g$fMV70=8*h})xcXq@+VdkZw2XZjMc&)gk({yHvSN#MI5Vxw}*_Iiq*wCKw8AH z`gmtZi#XO0?+R%V#~S0^AT8op6TCa*-F>VX-UHIp7;BFAgw&0(mUu5n=EPdzeIc0> zYlA-xsTgBz@n<0U6KjVLgyc`GJ^m~te_|c*A&~rub;6&6@ko<{t z!(V{Zjj`_di;yge^}xqK>c&`4{3S@;80&?<45=GqeehQxbz`g_{wgH3V*T;gAgL7_ zfWHn&t=J%Z3M92+gYjvQ)QSzo-+PH^#=|Z$s+F*f{(hNZlA4kG~748)Fmj_aJp+Y$E9rTkUWgd!asrJVQdb*1~TR`3uJ6+Yze*%^4=%56yFYMS;unlosgDwY#F{Al8v$D_#Q|? z##Z2aA@6-+tMGl0oQ$o;_d{CQv9RE!_S!;so9eguy~TF~*McmmRbjvvFbAqg2j0k4Rk zf<@zJm|hH0r^V0W*Fe%Qehx1Qsng=;@oOO&7{7pD2g$&=9wY-HJ%sTr{02x5Vcf)T zgtUU=HhvQ%8{8ybd86xOf7u4yoee*?0{| z6&KHq*MwwdJP&?1Bs1gr@OvPc87~0q#tSl~9;D?PFN8OM)NJu0uyMR7Q|^OgX1qAw z6w(%sm%#6bRBrK7cne777B7uI0BH-y%iygc`57;ZKM2XscscwbNG%sHk3S5l<>D3a zM3 z_KMeHN^eN(J6;?1i`QYw(~vBU*TtWKWNExUJ`j?n@rL-bkSvWi#)m+%G~NV%4w9wu zX83SOmd2ao&qJ~_-V%QSlBMxh_=}J%jkm$aK(aL67JmtnrSW$7%aAOMx5r@fnaeIPo6%EXW(2cu#x|q^B|73!ew+ zX^i*5=R@A$#QWh3AY)eJ{qcp6$}m0vUj)g__#pf}NM^jm0Fs&UVfcrT zH#qST_;Sd2r}#*G1*F$8J_=t2>2-{c##cjn9phv1wUD|oJ`P_GXGCmpK2Fc0zRD3%mC*#xcosgW2&%k#>axy*(-vg;3<8$zD zA$b^|haZ6SI>zVY2O)VFUx5Dv$;0?U{AWlW#uwqgK=LrY7(WJiI}=}mpMd;t!T3`A z6r_fX=ip}`<5An~8mR0Z7f6*pC;4w3ibH@WPPxa^fIfc2qj+gZ4`kvPUItQsCQjhxAg$)aDZD(S)toqkSAgVg;w*j( zq}MTV4!;%B)0jAq-v+5s6BqE?AvJ134^g8+YSaY(^;)|VQllnJ{4Pk|CT#p}NJ}~4 z!|OouHW9$`#wK#(4?r?Dkq2)L z8DE;nhqr}fX`%rB2qa4r1@VrMEKL-`ABALTq6ppvlBJ2F_+yYPO%%r;hh%A@1pWjh zOB1E=Cn4?PL}~mfNPlLc4BiKlsEM+8KS+OOq8#2IGNv?99v=Y7(nJOPS;*U&L`8fU zdjPlUVyPt?IDLGm+E7oQBt&qRHE8l?VAG{oP4)SrpQ_)JLsnP`H~hSZ;l zX82r4{h4TvzX{3DL`%3J(F!h2w1FQa+VW`*q+(38gC8f_Gi3!N0}~zKnnWkKHqn{s zpF;92(G`B4=*E;ykZLf|9p4P81`|E-Es&H;^u)J8k}c5-?o9My$}UKsVWJ=YH6+s# z{o%KX0ZiEksrnLw@codKOAN*jKvFI-6h8=gw~`o!AA+=z6C?1$kasJIk@yivOF1zL zKMF~_#Ay5&B;^ug;i<$prksYZ;(1LF#-P_QU@j`;(tI|%85z%pOC)6#AIAc zPR6s6Q=yTZ&J+`pY{?n84N11-EZhf4w&WZ<07(2bf%d$004{kF8{CY_BnB0ip0I436oA4VU6=QNUelsM&l3Vaw zAPJV-hTjT#Z<5@OSAnEiawmQpB+Zh$@!KI4V{#8(15z<2_u@4n{eH=Pcr8f3UvfWQ z8}hC>c>uo`Qa2_K;`JbPWAYH*0P?Omc^Gd5>FY}#flZS~;r+>DuzB(XpSFPHSn?G9 z0A!qe@(g@1d6p?{Aqkc|hd%;Iu;h8XBP79+7w|_R36|8uBp4*Yl3Dm;kOWJb_~VcS zOWODokd}4Q2YV(1OnC~DUC9valZ-H>FC?{+G1xzuV9GO)G4RQ3I4GH$DbGSGz+@hL z2qeLh`QWf*0j3Ox)PBi=`16q3FIfnG0g_$GBKT-Xb|s7AVNwOAG-iIVxvNoOr8L^YB zgD-=mT(U0yF{E9btdFmR)Og8;_-aVvB^%>wA?@O16MP+{U7T!&Z-BImlg;sskR(jD z#5X~bFxd*<3`xRd8+;2S36pK{ZIF5|*$&?hNyTJ)d?%#dOLo9_L+ZU`Cwvd2U7YNU z?}fZWNp{7*gY+CGyW!tMdJdD_@gE@V;$#o}M@T9rd*X*7shI4AAAzJ|vJZX~(tnuj zhaZRZA13?bCn2?8asYk?Qu`$b;b$SWUve;h4w8q-q4=MWJWLM5wd`TICwm0U${xuS z1Coc?qoAEVnkimL5@wHu!R&EN2|@BOdpsV2Bw_XhJPygg?1^}8NEMeo3C{zm;<6{> z`5<|iJryqi$;0gFctJ=Nmpub745{L>XW>^vs<`Yqcri$8I(r^|4Wu=lJs&R#$;0dg z__dHc%wC9J2g$?iMfmlQJj`B<-vG(O>?Qb(kk)keQv4=JHfHDGH$&coWG}-jL0Z$< z%kj#P)^zp?yegzMoxKXL25C)aug0rGs=Ms9_??jIE_)q*7bFj}H{i7))m`>Rybh$g z%ie_7g;aOhoALUP9?0x1ctiMq__`1HD5}2g<1>d4V5K>@ZRj8%B0@+YB=p`p2oib- z7)nA3y@ZZ{G-=X7niOeLm4FyJ(v;r&g7gkj^8Ws3lUsdm@ArN_-|M+NJ6khzc4jvd z*wb^KpnpcPr{_FHZ$`4G=R8AiPBKF}&(T|ud;;mbKyOWQ1ns;;Z%1+j?Yu&7PjUq9 zyhiUpGG{t((7zy=Go3zqCz3hSd7IvaWX^Qnp~sNSna+FkZX|Q2^8vjF$(-qYM2{oc z>vKM#_a>P+ozLifNsgnPFX;VA=1=D<`aqJSY3FPDV3JwX`IbI}nmpaW% z%%voAsgpllWQ-y?ns%n9e@QZibo8%CW>n{U^a&(K)6NX^NhC+p&P?P~ z=lhIIBbh&)S?IG!=1-@SK8Iv~&*`SmCpl_%dg%*E=1gZ+`eKqf)0v&Vlw^O;nUnq< z$^M=*H+==k{OQa~Uqv#1I`h$2lgyva0`#>c^QW^Q{Rfh7Qk;e88%btSXJPtglHbyC z7NKt?nM<8P^q)xPQfDwdf#lfPS)9IuWWUiFO5aKH8KX0dzKdl3be5v;C)sawmZ2Xe z`3}Wdj((ivI}~RH`bm=SP@I+Mr%C2RXBGN6lKIeCjedb-U(s2Eewk!Gbk?F@CD}`K z)}h}ZnfILa=yyowJ!b>@J(79P*@*stWN*;fg#L)+_}AH#{)A-D(D^z28Oa>zjG(_D znFF0I>90uUKxb?EYmzz8*_Qr}WDayj(hXN6-E>9K70I5Vt0O%%$xP^qrl%pO*&td}iqCNB5BI zF}eoOZIb;)*C2W}lJAIJ@$?)ddyKB3^xPzSjIQDIyd*QEYb2T9HJXtEB>Rf4G4z5Y zbE9h<`H5>hBZWzhb6peZMM!2v*JQGoYYHR5B=ezb8d<_MgON~@y+qecGTb$rky0f4 zhpxF~S=W3<%8~3Dx)zcZU5gm0L^21umXK9l%NVIfa%}5bPS$j-WTY0!KB4P-vaV|l zBlSr323_mu4M{#lbp1d!acyMeGm?4FwVB?GWUg~jOR+AwmVaBBy*kX5WO48T<1DM z??E!xxsK7}Nai}%@ATdzbDir1y)VgJ=Q>62PcqlJ&d>*v%yq7F^uZ)^o$CU92+3UM zx+;dZksR~7Zqvt;9P_&F&?l1YH@fc8CzI?q zx*pJ{kj!B>akK=R3<>wWqrl08XR7Wx*FPYYd6a+}M|NCL^c=kn5bkj#6otn{5E$IGtl z^hA>VNmow#Zj${;S8n=VlKIe;m%g85f6|qYevo8;(p7+dh-81#Rgiv!WPj3Ch<=P@ zf6`T${yWM3q^k)11j#<6D~LSf3TEUi$&t0IIQ=}yZ{xT^=@&_6PFEQHGRe&8Dn-9a zvM1>(L%&Y4C+R9jze%zu>8e1#Me-@4s}gzFRfUmzBy*{&8vOyuTS{oLMe_Nfs}cFu)r66EB(tciDcx{4rJL^0>5623(j7q$ zAo#b zOuF1%8F7>BZMtLWUXr~{cXxVLlD$oLPkMHey-jy7dQOtL)ZK@kn`AC^_oL?}Ir?@F zpywl*QQd>+1xRL8cRaly$>)deq4Yu|bE$hcS;Re(k)k9ss(UoO7|DL7dkj5b zN8;|4^rj@oY2pOehJ?lojf_c}&ek?d!>e<0hrH!>1QGT*v4)1ye{TlZFaN0Ry0 z{S!T!dRLO~zTG?Nu_WJpyA$c%NxtuP?_cGF(WWIIpr}rh9 zZ`}v!{YmCq_aXW~lKIwsgg%&LzI7j?4NekJUL~1V-TVPiV-v}|>P}7HLh=cuo8KQXek7S= z-RbDtNWR5(zenFra)j>AK>p&+#7H8^yy||RzMEuTb!VaPC7D;=LiDR7pHI3A(|shLPr8fHZ?E_LrzJfn$!zIqP0vj-TYB2k^ODS#o=AE=lG)M| zMK3@yTY5Uu3zE#1o@ja@lD$w*XL@0hnbXsiUWDZL6+N-^Ad-DiPj`AS$u}>ap7i1* zd!(LT^iY!DSM>Cuhmq`;div2zksPOc2GGlp?45cB(aVt>r+eb*6-Z_|&ro_Jl3C6( zoZf_Fmh+6HHzk?nJfrEKlYI8*8AFdCneja1=q*Y14?W}QF(h-5XCl2f$z0@_Oz%rF z7kQ@8`;*K?o@w-fBy*8x27NHeT;!QaA3`!0d1ljxksRlG=F&%y%uAm6^id?oxt@je zFG-GbJ&WjLN%qz}OX#yn_SQVh=yOSC70+_|e3Dtkvy#4$WLEKfPhUhbt9aJXmypaV zo^|wPB;Ve8ejwL*HZroFWXAAprf(oQ4)ts$H+z0!WDCjOmnVUqK(hDc*+JhyviIfL zN#98_OL!9Li6paxXE%K}$t>a7OW#W}OL+Fv_mj*Lo`dv*B(sF)5d9Fz-k0YH{Rqj7 z;WMzY7{`JH}(`StLw`fE*W|fJe@C*{ zb(qxkx^p z^JbvuA^CL9n~DA*$+4&ReR_V9Pv^W@=pT`MI_GuLKPK7gy>5D8lC9qBr57RD>b+U% zK_pwfH#)IX>S28Ekm-6dkfObk?a?F3z3z)g&C<# zvPb0Qw`q*3B%i{0gXq;s_Kv*4^qM5U)8Z{ouT63^>J6pWCD||XhS3|4%oyHM^hP8z zhPMp83CYo@w;a70$)|AM3iReAN2cCN^cEz0N8T#*RwT!y-fHx=B>PC-8uUn#eI#!! zdKAe%lD7`MBgsCJw;ny3WFN`ffZmy8=J7V7$B_IUptlLVC&_-1w<*0B$+s2W&*^ z@=${v(?3*m z(PxnC9eD?kv%G^CnN2dMdE@DGNxr%84kZ_OhcmK}WH$4Tq%R^l0`-n2mwLxAvW(=| z(>sn_=^an5@=j#@dy@Sk?__eFcM7@QJB>{6&LDsB&SaTHk~zvdo4%W5j`Gf>?fq1GwZReO`rwx2hTzuZrr@^Zmf%S8$KWV(TX08mdvG-Q zb8u(!m*B4CuHaa5PjGi~UvN+IKyWYe*Wf5>n>EPky z+2E1n`QXvy#o#gI<=}DT)!^~u_27x*&EUz#N%IdL`APFGkNl*0pGSVue8?j|X+GwW zpERHH$WNNjdE_U}mpt;5=AS(Blja*9`APE~kNhMDa-B&P(v=Jdi6sL=x|3-`dXkQi zUS#@^K4iv_eq`p50i+c&i2NWVo^*u_B|Ra-NjqdDnJr{AnImKjnJZ)*nI~jC`C-UJ zGJnWqyphY(c+lwxVA#+t9C=?dVs{_VlY}2l_Sh3;H#)6aBi`g?`

J>3{>D5^e`_A4zcqiOzcY{1-sl1bCOl@f}|>5h<|}2fbLL%^!HR+`g_VjPp{I`)2od13@S4{ zgR~sIqjgDo^*Siga65rrWA2J*%ot&#G$D zv#HwjY^p9jyQ)vmt{T#FsK)dh>N9#y)r_7~HK*rNE$F#aD|&9#hMrrsqvuiW>3LKK zdS3MfJ+JCS|4?QDbj4Wxgh2Ga|wA@qW3 z82w{4g8s1@MK7ejq!&_S>7S^t=%1(w^ulTqy|DV4{;8Tu|5Qz<7g68Pi>O)jqG}Gk zsG3I)QVZxo>RWm-wU}N^Eu{ym@94p51wBNqqKBx}^x|qQy|`LWFQGQjOQ=osP_=~~ zs(z%GRNLq!)pmNA`k5Z4exZk}UG#9Zhh9qUqnA<#=%v-K^wR1uy^K0aFQa~=msQ8< zWz|V~Idz&|PMxKfSLf;F)kS&*b(vm4U8Pr4*Xb42O?oADi(X0nL9eXt(krX`^eXBh zy^4BFud1HXtE%VpYU(Aun);JoUA>`KSMTUGIOHoxsuG2anks-^Qw7p%skHQ3%0aKK z($j0JjPyDxGrf+o=ylZx^t#GLuctipddjBPSJ~+GRStRsm5bg$<)JrJAJQAD{PafZ zBYGqCF}<<+gx*+vN^hcy(wnGa^v_fX{WDd9-c*&OH&x;EW~wy3nJP>FT$QJPt}4=- ztIG7|swzD~Ri{U&n)DW`Hob+aOK+*_(_5;B^j4}dy_Ncm-dZ)Iw^q&RZBz?-8`X;5 zR<)tGRqg2QRC{_m)qx(VzMw~{PW1Mw3%$LHp+~81^eEMX-a*CDJE-3Dj;b%cqv}up zLJg#Up$5~V)ew5L8bpH<3jwJNqYC=q6$%Cz zMkM-T3HZkh4gMK9qh)Ht*o(%2hS3oprZJ2#)I&Q=#1hm@YZ$HZ6;|U29^(CUhEWWs zklA7IcZm)D7OlbGg*Es)qP$kfnx5N5anwUkTt&JJhEWkUFcz!u1McGu>SpBi!Y_CL zE0ba5LJy3@LEOe;6wPcHWziWUFdheS27&JzMhTR|AdJHnoWf<~unf);F*s*}*9Swf z1BdV@yjct*585CGv#|jQc#U))aQmo-W|)q}IEFv)1VK*jA6+mGQ}G)vBZJG}n`MJ< ziw(XJHTVY8;QKs-Z_-!~kk-wY=%|Et=#1sqjO%!dKo9E$8X_LkF&Dq%5|o#96gkis zZ7>|uumk&$gimaKPN<767zH0PWaTwL7zScE#^P(t#$s$hB3|ReY}^)#V-jXyK2~Bg z&f+yPWH*d(R6-qW!5$pPHQdEB%Fiznya^^OSk1zxiFbA7(4R`Sz8S?O$Q3-W06|?azcH%x>fPc2msDu6( zj<0YOZxQ$*+Y7eh7aYVn+{Oz8<}-{;@Zci^AspQ>0_*T2cAE8d=z;n84$cBR zUsOdstil;w#a%T2$S_7@5@umgLDo&o#7$)R*f6poKPF>7zQ;Bkz-c5QOCjbu)IcM2 z!VE0H3hcyvyny)$&k0pf7tIihIaq=<*n=l{gTTVfofwJnn1*w>j(f=bsbQ2sRn*61 z%)%mU#~nPyJ5(>iT#vyRjgv@Kls`6$czlPo*ow?S+%Br3J~rSA{=idIEyg^Cff$9S zc#FVb<^n{b3wq-u5sWs7Mo%2XOPD42)8-g}5g3o{ zxPzy7hxkx_*4T(0XjYQf4-@bWj4;C}j1nl11vrG0xQxhf)(OnSBD_NWQp`^XLwyXw zC`>|*(uPqBjnN91k)aH87ILBx%ApH-As*9_h+lCM_h6SbjJzm}%IJ>%7=hW?hhsR4 z9OZbQK?!_@FE9=B@EvyGE}kI?mCCaXAObzH0L$?M4&Vih3jBu?VZM5!tHpdY~k_VJ?lWRjGT3t8}TJ3V-_~zD(>JJ(${63MMc!ccHF^Jyu-12tWUUx67^a4(FMKH zsR8pC7GMPe8nRx)g&?#-M|4O2M!Z&NfeuL1*f2s+2Gx+a3EK@mMx~uIfcc-Zt>6SMp;dDpC;DRy*5U$g;vu$0@Lqz)c!LEk_&H!39wTQ< zUONlWT1 zFp{~TJ&zr|5Rc|j%*U97S$K?`9e8{wh8pONczlWDxPY6;*pYpDR7PEVhZDGnTL}7s z_f1qnD~!Wb%)>@p#T`6D`e@b_R77pe!G8RP^QhU0{b>xrSlorTGy6sO1fwt&-(nvg z;T2RDwp&D^JH}xPcH#iu@5KKnXScRu}hqS|aE+~yE7=@`=gxh$G*C;T8 zbranYj|n)A3%H3aBY8Y%hwd1P{rDXh@CNUX;`t&1(ddiq*o&ihgVdvW&qrfKVh@hO z`6b6W2*E&%!X&K0E*wI}F{}e9gzo5%;aH0wk%Ww6*`GlNbVGm4#A_nQ0 z?4QDms;G}?Sd0yLgTP5FgCeMmI+%btScymY6R9S%3`(LOMq@h8;|A^{>(@LUbV5Ij z!7-e}4FpW#u^IE{d*ylOu|eg;s8?3;Qbrf&>MrW3BTY7@_)lV0$Lyn=kW^ZXL8@Dh*}tmv6zX4 zSdIi7!#kvz#p{a}7=y1d8|Uy6@6F~lMFrGEJif$Stiwh4@DPRPFc+d68e=HNVhXO~ z9-hNHm!CK4p&3@;46fo1iqB&^LubTc5f0!u0_U?Gq9|IT17a}`%dibc@fLv#cny&s zjnD#77>MOqkDu@sA1~zn1*OplLofzk<1EsA%j*O$ilQmnAR3dg1v_y7SCDoQ^8suG zp&8m@307k>e#I-O#k|fai)yHko>+k8SdUA%g-5WK@EW5!8ekAcVIo%G6fWa7GA-pX zBQMIMD|#aytMLQQ;yT`-;4;=rltM$q<4a7&V|c$~`#>S|Mm)a6Dy+jL+=jWF_fiBQ z97pjMfh%}S_!OZik0uy~aY(=(9KjttM2?l*7RsY5dLtgoa2yw4uj0N?8Qswz!|@{$ zaT<5w{hr5zTh0gK3zDWjKZVP(SdP5sX^si=h~c zkPYl3ArgJC7~doHMt;^Ph06E_yKxv-k!cg3uOK&uV=cC#%Vy>ie2dgucnwe-WpM~k z@fLww`I(_BdLte?uphtU74rYcb45vv!xrqs0p$6KIReel7Jabl{sfW5egM@XB%>xW{ff)c6c0CJ%^TB8T% z<2$TJz9X!UD1)k~hdvmGE!c^J=ya5I6brBdg^uw$p)ES&74rYaV?`MD;Thf`?eDCY zsEsCQjc3SnoZCTh%)l-j!YSNG))Vaa;8QHbVVuGh3^~d3#3uZV!KYX^umRiQJk350 zYM}}8o#AJN2t=X6S+-O3!BBjI-8hWXm~oEV!Co9gzCgSc#1|gr|6mz-PSnsEI~sf#q0_pKunJ5cr&ZXMBWuXoj}vhXq)HUvLI@ z;eEkef==j((b#|lI9~D?Q63|)9zQ|7Vy;3-bVe`4V-EJ?Hw693yo`3}h-sLQ&A133 z9>VpS*Bu|DJi4Mc;;|V&;|Q)H^BW#7@}LhE<9lqvOXPdY>xxix#y41q70B|Ac^~;u z9OY005onLDSb!z?9T)Hn>64g$Q5E&j3_~y$Q!yXkVIB710v;l}!Eb(}2>N0ureg(8 z;WBO`)a36CpeuS~Hy-0P0u;Y_j_PQD=ID-jScbLOi;H-K9H}_R1VvE|aTtVAn2Q7W z9p~``HopXs7o8A`=~#d*kbm*|KIC7cZpyzfIvArd2}dFS0%;)s@?2(ogu;kG6b4}h zQlXrWZi|Lh@0_UotMhUzlu+mgs=5F$YVr z4f2;SA4C2^Wf*_4tOH{4Bjhi|{fb+VznqqpUn};!FnQMJU=s&aCeZIp=#j_Cn5hwlZ_S_z)3jkFJn&Dz`w+ z6g&V2XFi0YJZhi~S#3xxfV*_PT9SzVNozN2lF$xp$4R+xUp5iU?XJfrXZFI&r zScsK)gVfo1tjK`^D2no^frc22C0LEkc!ga2(o;bMV;>&iB~(scL#)6L*oOCVaoY$& zGmOLp%)oDWg$%j*6>yY6Rs4jjxPzytl!xbwo*0N#ID@OWg9>@M9^x<<(~*EZID#f0 z@-sk3Ov5(p!9}Fb$Mc69T`&c6ummUY2C4J23|e6%CSV4x0@Zlj|Ayq-n)rJ!}@ezVh3YAd@P003J zj|A+)B?K1c?;F8`vZ#)R_yQC04Hn`Ba(v1xkF&9g*7T0hGPm!-Gb3IC+BVy4P%drkW;trnR4GLG|K2a8fF$xp$ zGxp&aRCV5)kp(>wQiJUfRgkqN@9X#!1#0u&g^~!Y!+Zue24Xq(<0ww!HdI~qY0w36 z7=-Ng*yiD?&ufArn2Oyvhja~?Z;-7aj~z7;fp>5=;DFucgxd?Xqw#yV}Qp9U1=nWtF%rJi}j?{rxuOdJ|9m zb({b9vTc96&A(qJk0nRHzi#vI_b0cxp~qjB{om`&vj6vG^>6+AW0B|3Deiw?@A%*D z@BcoQ_`f~QzdsgvoGZKj@7vs;^?zTMr`KPX{r&#raqcSnzn??C|M7E>*VD7*->)Z+ z)6@5_`#WU@8mDmvXK~I89@%t1afc&kb^US93162IMc_$89olq z>~U~LkHg4?+{lBx_z?M!9|iCc3gTlF!Y3$OR7Mq4MKx4M4b%i@oN%UzgELGVoLS=Fj1mWDk~lbOb#Ug0gEK}PoGIeq z3=s#v0q@|95C><1I5-2u!BMS)Gd>)g>EYlE4+p;;@8FCM2WN6PID^B%nHvty*l=*B zhJ!OS9Gscq;EW6hXJR-w1H-|Y7Y@$2aPS-T4$iP}aAt*rGb$XMN#WpV*}<6;4$hcx zaHfRA=%vydz0n7K(GUGG00S`ygAtD*7>Z#Sju9A%Q5cOcF$QBX4qstBCSW2aVKTnP z6imf5Ovem-gPE9x*_ea5n1}gTfQ9%Li?A3=uoTPi9hPGSR$>*t$7-y>TCBr*{D2ME zh)vjxE!c`5@e{To0o$MD;xPn6F$}{o z0wXaBqwyuiU@XSrD~!hkOvEHi#@CpFshEc8n1OFF6SFWIb1)b4FdqxB5Z_`E7GnvP zVi~@}a;(5gtitzLjWt+{by$xdumKyf37fG6Tk#`)!ZsveJ9gk_?8Glf#4hZ{9_+ z2X}D~_wfJ^@d%Ic1W)k{&+!5;@d|(9HQwMY-lfW5B*6&CV3<%yg#e^RAkrW$(!mk% zgYjO#1|xmIM$VSo$XRk5IXiBXkvU+C@qWNo!wOhrW(oM-{2<`C=?vgJ_kdHTJK(hG z3AkW-0~`T%ze|(vZ z76B>CInw&?BfvM$&GKOtdz&s^gr$M@chIy%BR5zfr^1&G!UsGknv-n$35P{OtMW#Q1=_`rQa7&lpv7HYG0^ zUC0~8P(3nU=S=dBv0CSko$@DrsIzQA|RA*_O)yZ^b z1ewX~rgNaqFLh4Uxqv)ltkStf=PsQ`b)MIGOXpLaMjCy;Iz6P*EKFuKE0MX)&&UF1 zXY!2EN9S;|usM?qHdpJBA9e20`J2v*I{(o5T&Lo&!%;&SE;tl3`{evYh#a z9*NUAgsfst*Zo_vmbqE?M6!W-TKDT@Q}dPXsnhZ8s%evFjQnJzS&F=4RMR7kbZ@PD zXWjegK3w;Sy3f{qneIR6zC-teWVCr%_q#e@l6Q;%4jy7nFIm{kM;_wa2f6n$I&0`` zqO+~et~&ea9I11%&bd05>)fbwC)vw9sryx(_jUfMGw?mR7fWXja)2334mGQjcld@w z){{2m8KaBNzB)&cqs^JRFVVS9X99W0*st@19=Sq}H(%&vqU3fmk&{i?D$f{`^~ge< z-|O5;+E!+!(gah|wmOhIbx$y*+ty@#sibWk)tCB5q}x{6jJ$g03evXPWs*Ldw5@!Z zrPm{E>u25nAd}2o@5@LJ@{l=)Ofq-skt~*slp&MMcBE}>&?6W1NUAI{(u6!@#_Rr2 zcl!ewA4eWCH|n0>DZM_KWcDI$Yp))8q2GhTW@tQ;Fcw8leRUFJY??EJ;$~em=EY_XM5(*F0x7 zSyIxcc9BV@q-}*{mvKp-lGn$llIXToHHVB#+SYm9C4EYsoo#K-DVItzqF>3VTrwi* zQ&-3&Q_{A)xn*23mwqlj<$vTC^tdFCA&)F0=~F96+q$JkByB4$uUsl=TQ78%^r;gc zO3Kg0r}E^JtV|}EGM;2gx2=_AqLTC}d4+9jW_}rww5_lL(j{%{cikmzYv@NZF6mS9 zleMi3AIpfOPsv*0Q$Bia zmSrS;>IIo(O4?TFr!p?-Q{R(Grlf7%(BqP}6kz}pYUDCD|6_s&GZYN0J4ryEG zbeFWPuEk_r(x);9%ScNyQAzrgY>7T4TVj&w-ySE0$fc4#{$`4dOWIa*GLgSRBK@)M zl0G$~gpAxE6P2WGEe(|}X#pvSwpFQ?j7!?qA>Acy>%-bIE@@i>beCkts3YT& zKDC%+{?Q|nwiR4gE|p}B(p}Q0?$wi@lq73!eOX45?XiJ$NuSEqP?nLjt!8ARlC-Tl zjigK3)~Ai7OWIb=CekHs>!Z)4OWKyvRJtUuOf%_{wzcPT>5@Jr?>@G5s=16v+SauQ z>5@Jr?>juxmNFt~TS2X)OZt?&2lwJ6ZlFVjN(j~da4$>uUtDEkU%xPqjDQR29JIXSWwsk~zNuR3og)Ad!TO-LtCCN`m zcS(La(K0S+TZy_$+E({YGA?ObSvpIX^eK6NWNpzSl0GHx>9)1Li!3AQQ-!wif6v=~MC^&E7(+TquXLAWrs^i+l0J2sv@Lgc8IiQD<+@Ay zRB#V@){^W|kcmptw)X2T$*uL&w??x5#7URrRnlFOS4nqCUZq~LjHGQH)LqiH^7NK* zN!#kDyCi!=x=S)c_K{^IZELXZlD3t#uZ&CD)<)eWZ7Y308JD!JNZloU>WLny-Cr)1 z^r>G--XjLch@?;LCs{KG%7~;-{Y2VUwm~u?=~GKd=G(zCBFXy&$^5TJBzjPDl9H_d zB?Nb<^%%!E^9 zMAE0OlFZmsWkk}a4w0^IUS zdBw;CQ<80Ari@Ga)D)fT$s|*{ZM`HDl_bw@mUKzhE;7NCw5?*ZWn7YVk4!QpdCm2> zBx^hOm6Uvs1Lnx`l0N>dxGY(oOjMHW2kI_qTP^0vxFp;A0Deo*>+iBxmXN$})^xrs zBk5CX$s|*fJyks}$#Y*I%Sf_6rn@BXfD2_@(zg2RE@@llw=yniTe8I^CU1ALt+Bn3 zY$JO6@^5RhWhLsZ%%}WE3Qrcvh@?+7Uo6YdBH2G7ed@Iy30oo~l0G$)w5?-$MAD}| zT`D6T$wVc|IzUEv{XOq88JA?H(p{3ZRNsQ6PksHJyc&}HEXWA2|6XK1PfVWGUo4j{ z=~MF4OiKQl4qPGQl0J2YWPV;Lw;&_TBzmMHBRn>e_e9+#ZA+F9mMod5{L9PSm5@Ax$@~`K_0MKKevoA(eX8mPc@~l! z8 z-z*_{4^4hj3CTY%dARCYf?6@3Xt)ekE;7-aQkO-$MuP zmM&>qzv(W?{I*BNB{_Q1U6P|SZY?qS-ly)Bk<%pagSyMRaD><2XY7-4N!~qmm*kyj zzl=+=rI7sHXx-)gI#IuC`;?3`^XU8XKS!Bu_{8R*EF;N!`>S+Gws*ax|8*#JNJiw- zp@ihmh~_cEHbwfBtWim(f4!1VITDgTHJW)?mXY+S&?AzclS!uZBvU$D2gx3+?vsy7 zm$a>h$D~X0sD6_!Xx;9}C7CyLm$WVU6ev-D7Q}JWc^Q#sm!O{``yPz2@1e(s zUyv?oTi;xiF3Fa1NxCHO*SbsEmgkC$OWKyaRtd?kSdt!>5{fp;-+*-+q$E> zB>Q_= z4ZI^=lI^0KbV-i>^zHj+DmfxcNIovxepi-}WIt0cBgy{TJsFqees!0$E!jIw)O)Ht z=ACk_8IL5l>O80OtT5-WghS;+0wb?eUh@x zvbM05@wpt^oll*6BKcNl&Zp8V=#13agX9SMOWCgd`_l5*67?hG^M_~BC4EZf=OoiV zOUq0W;gxY_m~pae<90A`jmfeU#&+ZIl6f%mrB~!D%~Y* ztKcgcm-MNzBzx?7MAEjZ|0%aG$>%3zgjae}@`%jLti7a9$))T^y_OM4pOW{Kq~v!N z#~T@!mc5>ucR5eX7Vi$;LYSkV&SDB$?7}>sK^dR&6KuD^Z{{jVo-dhXO0rL=$0cp6l_|?ea?Gx~q-|AHGA_vs zpt~fW+HtLfk_H zRd-1~d$DC)(zd?SU6PrQIozk(XO%Adz#O43lSd_=r6=l7)O||6!(v;`CbuBzQ=aUS z;W}H89B+~wZ<0x-e}7Ug<(maP;{T>huElmlvfrLlx+I?}WRlyD&m|+0%%Az>-u>T$ z$oC_xr6g-_f9aC8C7&d497l5Gn@6rI$*0qK)#WT zBMzUEV@#itt;VPP+plcVJSx@`K0Vkhm&#EUTm5QDIUeNw=zV$2a+^t}%;$Wzz>-O( zESY5bj~V5YkO;3l2HTR)KoXNb36cH72(SNB5&0w}QGXudQ*tzFTk=T=>krAE2J1HS z_G1~5^eK4_*^koml_W=|`jwGnN#6TdQojSrdt#z~XJotPy)se1Z!$0GF3DD)uPbR= zvWK6jB>7BFUssa-$@4Pq-&>PUWBA^O*9&@;%^A-4l|( z6O>P2BE0@f*Yn}7RnI+|?86PT-bF*}*>Flj@n9d10XX#w3bG^>(IuGc~TtV(7r_RD8&rxSJGQ^O* zHDB0hJu;2-g)P*5jqX3`zF+qfx?j`%f$nd0rmM)=7GX}(7nYlxA6A46G33bZMOY8r z2gdVPfWkNEUUVpDXNN!6T|OHr5MH*DEH9ssgoY2*UDk?f;hS}rJ?Ez3FLalgs$+OL z&g}>>WX|amK8)Tme3BlKT0r#%#)c)RnuK&9&f28y2}hx zpwu_I%d8Sw>a6av6;~^jjdMa`!#>toLT5#tb#*o;C!4a3#D)#gBja^0)wxFJ7M;6v z9@TkX=PjL2bs9C~=boMnG34DgvQ%BVFRX>mPGoFYU)@LO{95M%ovX>%u#>u9)%lPN zF=P+FXQ`5$yW$J0rn8C8NS)nv#_JrfbGFXqIyaNCVY_u6(|JMXZJp0_nzdw^3_87} zFD#$#!8*(7tfjN5&PbiHItS<+t#gXb`8rqX+^jQE=MkOfboxkN*c08&+VUJ_PiADP z3iQ~pdO9O?cGTHZXS~jFI%kl5!WZejPG-sjd4OzgrLQmJHOXfBeQjgu{`4B5E6M$(WrnN~`htGO zNYy}Yv!c#g~LXT`EHycOEC#6F;2k1%ZNHRm2$z*KUY@I)m8%qarM$pF6 zg>}v(W5b^7%-NW;B8_!sDq|$S-?&X>gar@(&HqZ54Qt)HSh0|jt%HgdHA>fs>e;hx z$Ef-}V!PFdiHfS4=XWTz-K6xp* zMrd+x6cy9HLa+AGvH!As$};*MLW}wDqE=MDcCl@Hw6EAJE-p6aA2*+}h+e)#uz&gb zv0b|SW2ux2{I?qNZ?~HKSeo>V>e2Hb*9}cxT&^2j+<(<7?W5yr#B_;{iAsLvwWE7S z)sBs98y6iL^DoaT<$7`(p`rfUkXPYnp9S=d7A+d2e}4Yw(V$mUkA4lKdiLrPS1C3ou5IN1{VDnv zmTQ&_@^^Ux`VrNQjf?u1C!MmKTqm^HU)QM|9r_Bd0Pm+OXx`L8QKE7>aksmp6#bjRM&PxF1;PKjr=02{lBdiK`Gbq-))J%?zVnZkFL=@doqjsV-gA~ zk-Ustp;%B!{}pP)ux~rb1{_%`bE|o=tlb4kB zEqQ{{cknOkPRgSCVTA?<>viX!vvu;dWKR0~Jr+w@T3@wji2thp^%~ayA~xTTR7Ek_H15$hrYF-LFa19rXUZ~ih0qfIhv}cX zdCjZ!i0#$wUtX7#1?5UX!J+l8^S@rqN_vI-ua`6^AyVY zlx6f|4hr%=6ulAY2{?IOm$$$Fn#PkC_FpskIp{YH`LWc9=^Y&xRXaMS^S|6_vAU!irWRgUS1b6^KDz?qX&sxjfW4lMhPM}_Z z$k@v-;c@r4eM0wqzVx^ZrEZr~hm_r;w_Zz{V@bF7@OSqQe_*8MwtSo(g&BM*76RL7)u(yE`!STxYkNtdnA?)gCD3%UY(uwf`L;UeN@IDs( zcPR4e&Hcl)>^qo*n`{5E(n92y$jWNa)* zKL57?CEf05WNCQt-0a6Gl*r??k;jlRn`09niQHdYDm_Wg%78bJ(r&X*J=-?#98ALP z#m*=P>;Lfi^nO2#PaRFttAkOpG@O|P28<+|{iV_T`RNgJfyYO52Y07o^wD6VxptaC zL+jXQdTxS-3@(qZ=gse^-lxwu52v@rtJTbLWZ^WV-(FmYi7@btlsfIK+YG!BUs>0` zxC>^z1B#kpBDwM(reqyg=5n(QAgMM-r~3Av9AMpG&Vy#U?=c#RB>Sxit)17TQU_4l zVYt>+xHe!a$_37nv^OFt6)F1R=Ha)e&xPp9aZ1tU!HAY#eA0HJ{u_!US63ERUlKEf zNrD1Ln&UBOzMSnz945`K{l`j?9OfjOAdr&RA@J_4&%9?UI*JtAiwk>JHTZWwEO?)6~yE_=;Z|~kbeEm$f$<5>A=lh2*-+nv|zOev{^5B%Op5DAc zclhq<<4-qV2a-TZrE4b{>}%a&*JH!yV!BD(#WC^*1=vk+t|N1}Xdc{dFb(c4;a90P{ z^vxh*VqlwUl=0g>6+4=bBzTx zU0w{UeuWoxQpW-(P3is;(TZy_?B~d{ul;{@j(TG({!Sqo2Ca_PPZ9OL!cK-w}V=OiB_68 zFy;?7i={za8AJym2hj|(IGrCv2L&dXq2-H5ok5GW`$bKN^96^TtOjW&-|V2@n$7i* zP>vf3WJ1o38;LQCVV?ni&|<3tw?K1@6Wq^?aRRQj)nNYY;3KHm<%W>f5KIbl;Ft{d zra^PA#|;_k6Zzw%{bvxe|6~|>^`ibW=-7Ws-V6KBM#uh>KUVtBz_I^iSnVO#StkYy zjLHdG`oKrEnvpn6MTNdN(mda^hgNLHLdv;jEbwf`0{=`i79{d>@W)!!Xh60x{PDu( zDCpQUF#LSe5EN<}Owx;+hDNJN<^D{1HvHJCE`OY@x`AfZWmpAdee+1bSzg8ah2^!; zvApufN_h>O#tHoKd|?U_7AA(7f^&r_@G2Snu~sqy$Q%yF=Ntc^Fz4Fg4DSs;wp`+m zv$+&#F+RsPfYh1c=SyW!n9i5ybmqsVGk=`bInZK!j&A_9W$o%YwggZKvE`4o>7`?O(h}rBR+@8zqe%X>QHF=+FZZ85f5h&9vdX=25bfo`CTmb&e|(A!eKd}L?sGDtS&WXx z0hR5cZtn08l;Xjb9pesH3JZcRCnB1{w%EFiGV#OB<8MFRKi&@8%KW?Xz@R3R&F8D9 zUmxE*+-eKkGSr{dJEJ6%y#>GhC%x@ta+c81lFl8}(DdA7eG%i}WS`_7rD+_{=R-t8 zQ|#T9KC8${_D+`8#0KGJ%bhx29+KgS$_EX*Hbfju5zC8 zE~A~E=G&lkO07()dEKT$YwjG~D;Hd>I2gwtP)E!qibmwq&E4Cwp0f>3)M0NFf4;}w zZ9%aM=(F~Gl?iQO5JVE`47$~tZyz4+AG8SiQ9DMzL(^S&Y@JR#4#g0$^X5mDVr7g2 z`m}E&o+;sy1lw#BV4M8?`3CzUYU}A33H9)F1;d-z_~WumO{KDy}Z+`uF;;L@!9w9eJ_RJ!h7C#hbG|!*!?;mvpCcgFLEgtkv4kc!7 zMeej5seHK{gj%V#zsg>R46-Ah=B#X3*i*F%U{`8`NV&^1EJGXbC7)xcTB{wc6kOoM z3n>47hi!D;+fDnt(IjfcGl zB324`_68~NqP=XwMr-!*)&0j?tF(^lIc*{y+2BDs;w?39g2`Y#TO)DU9EvWj5Mq1c z$<%Pbphm>AG+bQf1Pz9jFH6>OV9zWV$U4|=ovhO}AXZGjd3d<_sXMc#VWpAK}nmfrtjPYZH%Ag}eOo7|=OoMI0|fTwob}DXV|~{PF%Kc1E%D zO?qq`+AGrHp~CvTR`(TNl5-`|@zF+}Ydrp2a5O!Q)U^z|=O& zh-QRr9MW@%XfWAwy8-MJQ_HnI*scyJoPe{qHq{ySIyy)>fh`Qoh>!P=r=`uCu0b ze?T(ttR=AlNYU0&)K)trTX}PSMNy}q4j%L>y;Meoe!2Zps!~vO7LI79dW#hgB+iSDc_7e6 zU}##;nL19EG7_5}|L`@&@RKwrqRq~zqO)oPdTadbV_z|XNK&1_Y$VSXB%5pNSklQM z#sZIqZ*@t>vzNzA32h}d9m+@r*I~W35e=bNg%Rs!S|DPI9niCgXt0nbsQ!R?qLW!YJeI|k%|~u3%<{#3{aoU z7SH_I8Kc~`*ja*i&7W43cf6F}7bT`e;{oY-g{_#hItKEV@UB9%c<6H|EYWH$jpX-l z?(e*EmR5bv)EP<7D}#Vl@zmvX!86w~<=TR%(XC0hgC&zX=2(@74K{==$6;SQ^nGJGYuCWs>+c3PHz8_60I$}^U;+f0~Y_nT(;_r9A-rOxCuhf(T zaA4*PRC+42p{8QWsKOm2ec_IH>a{C+r4sTAr-AR@D}9a`REl`;scbm@V(QL%_sBXp zbQ(r97$1s$sC_@=p`m~6HH&D_b9 zJgX0BDMzxT_$*NlT|9aj2@jqa5$QqJ{fX-?QzfDej{YyjZS6F<<*rHUvcMTo0eI{L zDTSk)A}(|4fGd>;Bdsp7tTS9KOWY^*jwbG&D=a8ZJMLfh8E;E-_ zmY?Z%CcbxG6}V$$@qJOZ>jwUMdUu1XHB`17*ei__sV&pDm05Jz9Kk8w0qv|FWYotY zXdI?qvz(0J#>_f+DvdR^oh=p*(bWuLBODwsgRCr10X- zK=zr(DQgih8EId&c!$B=EylDwyk`0C?1y|$Vh_$Ea!}5tBGD0)7~nRR|KV%zG)a~Z z!cKfdv;16^6y)Cg(Qnd_{Tw#fFXEYrmDTjXqKpzWomN55WL8!`pRhV|w=|6@g)6)w z8mx{bf!UIK?fJS zy@eM~RH^JQ**Cf{94&c9=zWLHcs0`LZ_}~tvKlhvmPOMjJL9)hoZ<(}`UjL+?2XDj zD5Li-(>a!8IJY3lu08cmxoL&f5QE8`QYJVSF4MgZTgUW#T0FJ6z-2$kkTus|PDEfS zpLhO%?3|A;lR8}K-y3Q1=4C9rcT3hBES!v`UgFjL6Xt9&4Uo|s*(Y`r@le`>$g%1K z%+eElb1cID{e%OVH)%!U?{^=xDMaEOJBW{Xh{vA0oby^@@ZB-q)bkgbe-&E?_Y8xH zOt~oxQ$^zOf&ajnJl)Qa{ON}8d2XDK3RdMQCEJihvo&cK6n(9VcqVsWv};U$Le_n_ zd9($H0QD-hcrbE4UeUb0%X#Jisee_3zWTs3=d2yl+CL7$A|Ar7jUMf6av&xLUY6@v zWyJ;dE}}wsL2Y}2RW|%vFLo305DTB0=$Bz!78GA8$$>7270?S$zB7qp9oS2aXt3HI ziqfM$_ZRH7d5`NxzIkhoBggkFgAdhn2r_H*(&Z!tE2jOjsKNXFIO((XIvLObz1$$A zT<#r({X3^#mgoqAx5pw;#aaz9PF>%=x&3@|_vO*{vuKqp;Jy47&qOHq@9*B-zJGc+ zh2fB$Km7hiY2f!??*HSQM#{7GFl#UD+cz*(c*A~TcZ0`EaI6N8(cYutV@k6GBvsFviJZ~KHPL7Txzs7 z$rS%wp>;fIJ(%h^n=opgojEBdg0@RYL{lB!qsIm+Uu#q3JD|@^wCH9eGU45NU=khg z+IdhwWP%IazK8JK(N=^zQW@vrVQ@M-LmHBHCMo5Txz36Z2T_OzU*sdpJQ9n8iA3>i z-mr}H&q~qJpv{$)ad2HN_T_DYNK*77OU;kb5=IDqZHt-=#}9cH@ys)0x#oS!sw65L zf6bcI&3az&*kY<0Ikwj#c+dn#WA`#YPu9r^$>X}H1XgF~j*jk?ifCHq0{1m8){ZSF zOqMsac|9S}J;N3cj<_r^a~w*r_94q;4(yo)1C^SsG3y;s**e&OE`h}FitJ%zUhlD> z5>C+T5Ye>I-gtIxm^+uUB7v0RP8E$ly+|1guTfKadnj6Wdl+RZNAzk2B_;A!O=M)} zyU8*gK`?HR$eFbCEjCT}jWG`Dr3SGW;n@08e5`_*=f>}e(SkqIfXgt59GH1DmBRI4 zgyaUScLe411YY*u6-C-z7-&VXW&O+T%|{!(Ijq+LmuQ%FP-DAyHL@ot%MF0!9*W#9 z?|j7Qyt|HR>!f7kLAIl7zM!l@qSVF3iY>{e3ocGQq75fAZ4W3=k~$qG1@3h35XBz0(ps+T8I2MNh}XDp2y ze$ki^p)dI3{^4zI8y(uG!K43*0WLQd$(#KC^=ssGY^3?-@$222|IY-;X1I11GS9el zvbI}8E3Le+mfBW#N=EC#2tZ7Z!!2 zdQK4yM)1c-_rZyiwGWUIdzEtrJC>PhDsXyWD2)p@hU|q$Gz-bLFiY*vFaNF#WAo*h zflb7d&#v&PzBIpkR!yPf23`?QUI*ue#7x{h*(?F2SuTqPC}MH|=flSfBU zCWd3k)S*}pPdq}IBw&<>p>1kGd}k6aTf&O~x%F^ZpXP`Lqs_i>iotM<(u}ihXmw=I zEI3Fl$BZ7Sl91rUgj^Q+(Ok$)yzDr$hQlq^cX-Z0@~;fDIH!tS|Edh*HQCItxcwyq z;XZ1a!+WuTTk!^EDo09>gHfIJ`(#@9d74D{UKFn0nv4zvMFlwe5}a*|B&F8MQGMP; zG&ADLr8*;X_{;GAr6&#wCHQF6%@=@;T)n?1rvUz)mR<#>8^84B{`2eaaqD~{A4;G7f=z-nU z(#ct}Elu02)t)<|=Mt1utTOrA3D<#k{nQGRh^8i2MU%2b<(~!>A|B+}0GkuCxU*Dt z{A14`h?s_so?DmFt>5Ib!X%=p#AcI~P)jN