From 9ccfc7f2b62393824d2cfa8fd78a4557387e4427 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Thu, 8 Oct 2026 09:10:50 +0700 Subject: [PATCH] =?UTF-8?q?chore(test):=20=D0=BF=D0=BE=D0=B4=D1=82=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=B4=D0=B8=D1=82=D1=8C=20=D0=BD=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D1=8B=20=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B5=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D1=91=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D0=B8=D1=81=D1=85=D0=BE=D0=B4=20speed=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D1=82=D0=B5=D0=BD=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ux-ui-external-acceptance.md | 6 ++- docs/ux-ui-plan.md | 8 ++-- docs/ux-ui-progress.md | 14 +++++- docs/ux-ui-stage-12.md | 14 +++++- docs/ux-ui-test-server.md | 10 ++-- .../browser-speed-unknown-2026-10-08.json | 36 ++++++++++++++ .../deploy-browser-8782054-2026-10-08.json | 34 ++++++++++++++ .../deployed-8782054-2026-10-08.json | 44 ++++++++++++++++++ docs/ux-ui/screens/speed-unknown-real-320.png | Bin 0 -> 55955 bytes 9 files changed, 156 insertions(+), 10 deletions(-) create mode 100644 docs/ux-ui/acceptance/browser-speed-unknown-2026-10-08.json create mode 100644 docs/ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json create mode 100644 docs/ux-ui/acceptance/deployed-8782054-2026-10-08.json create mode 100644 docs/ux-ui/screens/speed-unknown-real-320.png diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index 12edb10a..30b19af7 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -1,6 +1,6 @@ # UX/UI: протокол внешней приёмки 12.5 -Статус на2026-10-08: backend4c12c55/frontend673e5ba healthy; PG-1/2/3/4/5 принятывописанныхграницах,PG-6 integratedдляодногоisolatedinstance,PG-7 realJWT/processcounts иbrowserrestore200/errorguard12.5.18 passed. PortalSSO/мультиэкземпляры/PG-8/остальныеROS/Q/интеграции остаютсяоткрытыми. [Паспорт](ux-ui-test-server.md),[журнал](ux-ui-progress.md). +Статус на2026-10-08: backend/frontend8782054, backend healthy. PG-1/2/3/4/5 приняты в описанных границах, PG-6 integrated для одного isolated instance, PG-7 real JWT/processcounts и browser restore passed. PG-8 real PG/native и browser unknown→history done приняты с fault injection после настоящего COMMIT. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md). ## Паспорт стенда @@ -125,3 +125,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove ## Локальный unknown UX — 2026-10-08 12.5.21: отдельная строка unknown/runId, сохранение snapshot и сверка по идентификатору при чтении истории. 13 браузерных тестов с HTTP-моками/typecheck/ESLint прошли; это не приёмка real browser/PG. Основной backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка и проверка обновлённых образов. Полный 12.5 открыт. + +## Real browser unknown и deployment — 2026-10-08 + +12.5.22: [real browser speed unknown](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json) подтвердил snapshot42, видимый unknown/runId, reconciliation к SQL history done, снятие предупреждения, native1/POST1/JS0/320fits. HTTP/RouterOS-моков нет; COMMIT acknowledgement fault введён на node-pg boundary, физический network disconnect не проверен. [Оба образа8782054 развёрнуты](ux-ui/acceptance/deployed-8782054-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) прошли. Основная БД не восстанавливалась, контроль сохранён. Следующий12.5.23 — ROS-8/9: preflight/late-context changes на реальном PG/native. Полный12.5 открыт. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 279c3ae7..54991a1a 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,12 +1,12 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-08: 12.5.21 завершён локально — speed unknown отображается отдельно от error, сохраняется при чтении пустой истории и сверяется по runId. Последний подтверждённый snapshot пробы сохранён. 13 браузерных тестов с HTTP-моками, frontend typecheck и ESLint прошли. Основной runtime backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. +Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт. -Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-07. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. +Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. -## Актуальная точка продолжения — 2026-10-07 +## Актуальная точка продолжения — 2026-10-08 -Этапы0–11 завершены в описанных локальных границах. Локальная часть этапа12 проверена до12.3.83: main12.4.10 —1186/1186 на9680a64, context12.4.11 —221/221 на683148d с тем же runtime. Дополнительно прошли44 чистых теста, HTTP/DI/RBAC speed API и сборки. Этап12 остаётся открытым: стенд12.5.1–3 развёрнут на161.104.46.222,bootstrap/restart/smoke проверены;CHR194.226.121.150 подключён в12.5.4;следующий12.5.5 — PG backup/restore/concurrency/права/workers и профильныеRouterOS/интеграционные сценарии. Протокол и ограничения: [внешняя приёмка](ux-ui-external-acceptance.md); точные результаты: [подробный журнал этапа12](ux-ui-stage-12.md). +Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. Следующий12.5.23 — ROS-8/9: конфликты и изменения speed-контекста. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения. Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md). diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index 3b384c63..49eaa0ea 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-08: 12.5.21 завершён локально — speed unknown отображается отдельно от error, сохраняется при чтении пустой истории и сверяется по runId. Последний подтверждённый snapshot пробы сохранён. 13 браузерных тестов с HTTP-моками, frontend typecheck и ESLint прошли. Основной runtime backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. +Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -34,6 +34,18 @@ | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в описанных границах:12.3.83,main1186/1186,context221/221. Этап остаётся в работе: стенд12.5.1–3 развёрнут,bootstrap/smoke проверены;остальные сценарии12.5 не выполнены. | +## 12.5.22 — новые Docker-образы и real browser speed unknown (2026-10-08) + +Из зафиксированного source8782054078304f36cc611876af2d17f87b857f60 подготовлены отдельные frontend/backend contexts и последовательно собраны production-образы на Debian-стенде. Frontend production build и проверка TypeScript внутри Docker прошли; backend contracts/TypeScript build прошёл. Незакоммиченные изменения, .env, ключи и локальные node_modules в сборку не передавались. Образы не публиковались. + +[Real browser evidence](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json): новый frontend/backend, отдельная БД mmapp_acceptance_20261007 и Docker network. Перед командой guard проверил имя БД. Реальный CHR1→CHR2 TCP transmit3s; после настоящего COMMIT введена ошибка подтверждения на границе node-pg. HTTP502/outcome unknown/runId speed-1791425187780. UI показал «Сохранение не подтверждено» и runId, сохранил прежний TX42. Независимый SQL подтвердил одну history done с TX2353.700072/RXnull. После «Обновить» строка стала done и предупреждение исчезло; POST ровно один, nativeCalls1, JSerrors0,320px fits. [Снимок](ux-ui/screens/speed-unknown-real-320.png). Это fault injection после реального COMMIT, не физический обрыв TCP; throughput не является benchmark. + +[Deployment evidence](ux-ui/acceptance/deployed-8782054-2026-10-08.json): оба runtime теперь source8782054/version1.0.0-test.8782054, backend healthy. Backend image7862c9b4…; frontend image d22dd0f3…; full revision labels проверены. До обновления получен приватный backup1049796bytes/SHA826cad71… (только на сервере,0600). Контроль основной БД до/после совпал: servers1–2/enabledtrue, retention14, speedHistory5; migrations9. Restore основной БД не выполнялся. AUTHfalse/loopback порты сохранены. Предыдущие образы и приватная конфигурация доступны для отката на этом временном стенде. + +[После развёртывания](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) dashboard/servers/uptime-speed/settings/filters200, ПК и320px,0JSerrors/0API>=400, HTTP-моков нет. Первая попытка чтения локального URL отказала из-за завершившегося прежнего SSH-туннеля; туннель3000/8000 восстановлен, повторная проверка прошла. Временные frontend/backend/network/3018-tunnel удалены; тестовая probe acceptance-browser-speed удалена, исторический результат остался только в выделенной БД. Основной туннель и тестовый сервер оставлены для продолжения. + +PG-8 browser unknown/reconciliation принят в этих границах. PortalSSO, физический TCP fault, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. Следующий 12.5.23 — ROS-8/9: preflight409 и конкурентное изменение контекста speed-пробы на реальном PG/native. План, паспорт и протокол обновлены. Локальный коммит без push. + ## 12.5.21 — неопределённый исход speed-запуска и сверка с историей (2026-10-08) В локальной строке запуска введён status unknown: «Сохранение не подтверждено», с видимым runId; это не новый статус серверного DTO (история API по-прежнему принимает только done/error). При обновлении истории незавершённая или неподтверждённая локальная строка сохраняется, если её идентификатора нет в ответе. Подтверждённая строка с тем же runId заменяет локальную, предупреждение снимается. Unknown не подменяет последний подтверждённый snapshot карточки пробы; предупреждение показано без destructive-оформления. Автоматического повторного сетевого теста нет. Ручной новый запуск остаётся доступен; предупреждение просит проверить историю перед повтором. Состояние локальной строки не сохраняется после перезагрузки страницы. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index d9723783..6aa693dd 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-08: 12.5.21 завершён локально — speed unknown отображается отдельно от error, сохраняется при чтении пустой истории и сверяется по runId. Последний подтверждённый snapshot пробы сохранён. 13 браузерных тестов с HTTP-моками, frontend typecheck и ESLint прошли. Основной runtime backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. +Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -1170,3 +1170,15 @@ SchedulerSnapshotError раньшеигнорировалruns[].okfalse уuptime Проверки: 13/13 Playwright (uptime-speed-data и uptime-speed-unknown) за 27.7s, включая unknown → пустая история → done/error, сохранение TX42, один POST и адаптацию 320px. Это live-ветка UI с HTTP-моками, не real PG/browser proof. Scoped frontend typecheck (tmp/tsconfig-speed-check.json, исключён старый ignored tmp build context) и ESLint изменённых файлов прошли. Существующие null/zero, malformed DTO, свежесть, независимые источники и Ping-состояния сохранены. Основной backend4c12c55/frontend673e5ba не изменён. Новые backend/frontend исправления ещё не развёрнуты. Полный 12.5 открыт. Следующий 12.5.22 — сборка обновлённых образов и приёмка на стенде перед deployment. Локальный коммит без push. + +## 12.5.22 — новые Docker-образы и real browser speed unknown (2026-10-08) + +Из зафиксированного source8782054078304f36cc611876af2d17f87b857f60 подготовлены отдельные frontend/backend contexts и последовательно собраны production-образы на Debian-стенде. Frontend production build и проверка TypeScript внутри Docker прошли; backend contracts/TypeScript build прошёл. Незакоммиченные изменения, .env, ключи и локальные node_modules в сборку не передавались. Образы не публиковались. + +[Real browser evidence](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json): новый frontend/backend, отдельная БД mmapp_acceptance_20261007 и Docker network. Перед командой guard проверил имя БД. Реальный CHR1→CHR2 TCP transmit3s; после настоящего COMMIT введена ошибка подтверждения на границе node-pg. HTTP502/outcome unknown/runId speed-1791425187780. UI показал «Сохранение не подтверждено» и runId, сохранил прежний TX42. Независимый SQL подтвердил одну history done с TX2353.700072/RXnull. После «Обновить» строка стала done и предупреждение исчезло; POST ровно один, nativeCalls1, JSerrors0,320px fits. [Снимок](ux-ui/screens/speed-unknown-real-320.png). Это fault injection после реального COMMIT, не физический обрыв TCP; throughput не является benchmark. + +[Deployment evidence](ux-ui/acceptance/deployed-8782054-2026-10-08.json): оба runtime теперь source8782054/version1.0.0-test.8782054, backend healthy. Backend image7862c9b4…; frontend image d22dd0f3…; full revision labels проверены. До обновления получен приватный backup1049796bytes/SHA826cad71… (только на сервере,0600). Контроль основной БД до/после совпал: servers1–2/enabledtrue, retention14, speedHistory5; migrations9. Restore основной БД не выполнялся. AUTHfalse/loopback порты сохранены. Предыдущие образы и приватная конфигурация доступны для отката на этом временном стенде. + +[После развёртывания](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) dashboard/servers/uptime-speed/settings/filters200, ПК и320px,0JSerrors/0API>=400, HTTP-моков нет. Первая попытка чтения локального URL отказала из-за завершившегося прежнего SSH-туннеля; туннель3000/8000 восстановлен, повторная проверка прошла. Временные frontend/backend/network/3018-tunnel удалены; тестовая probe acceptance-browser-speed удалена, исторический результат остался только в выделенной БД. Основной туннель и тестовый сервер оставлены для продолжения. + +PG-8 browser unknown/reconciliation принят в этих границах. PortalSSO, физический TCP fault, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. Следующий 12.5.23 — ROS-8/9: preflight409 и конкурентное изменение контекста speed-пробы на реальном PG/native. План, паспорт и протокол обновлены. Локальный коммит без push. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index b9b0a158..a9cd9295 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -1,6 +1,6 @@ -# Тестовый сервер UX/UI — 2026-10-07 +# Тестовый сервер UX/UI — 2026-10-08 -Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активныйbackendsource4c12c55c9d4ca1fda2b901193a4969ba0e33e797/version1.0.0-test.4c12c55;frontendsource673e5ba остаётся прежним. +Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активные backend/frontend source8782054078304f36cc611876af2d17f87b857f60/version1.0.0-test.8782054. Backend healthy; оба образа обновлены в12.5.22. | Параметр | Проверенное состояние | | --- | --- | @@ -14,7 +14,7 @@ | PostgreSQL | postgres:18-alpine,18.6;mmapp-test-postgres healthy;SELECT version() passed | | Данные | Отдельный Compose project mmapp-test,том mmapp-test_mmapp-pgdata и каталог ./data | | Доступ | PostgreSQL не публикуется;frontend3000/backend8000 привязаны к127.0.0.1 после запуска | -| Образы приложения | mmapp-test/backend:ux-4c12c55 и mmapp-test/frontend:ux-673e5ba;запущены | +| Образы приложения | mmapp-test/backend:ux-8782054 и mmapp-test/frontend:ux-8782054;запущены | Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example). @@ -133,3 +133,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222 ## Локальный unknown UX — 2026-10-08 12.5.21: отдельная строка unknown/runId, сохранение snapshot и сверка по идентификатору при чтении истории. 13 браузерных тестов с HTTP-моками/typecheck/ESLint прошли; это не приёмка real browser/PG. Основной backend4c12c55/frontend673e5ba прежний. Следующий 12.5.22 — сборка и проверка обновлённых образов. Полный 12.5 открыт. + +## Обновление обоих образов — 2026-10-08 + +12.5.22: [deployment](ux-ui/acceptance/deployed-8782054-2026-10-08.json), [real browser speed unknown](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json). Backend/frontend8782054, backend healthy. MMAPP_IMAGE_TAG и BACKEND_IMAGE_TAG равны ux-8782054. Приватный pre-update backup и конфигурация сохранены только на сервере; основная БД не восстанавливалась, контроль совпал. Temporarycontainers/network/3018 закрыты; основной SSH-туннель3000/8000 восстановлен. AUTHfalse/loopback ports сохранены. Следующий12.5.23 — ROS-8/9 на выделенной БД. diff --git a/docs/ux-ui/acceptance/browser-speed-unknown-2026-10-08.json b/docs/ux-ui/acceptance/browser-speed-unknown-2026-10-08.json new file mode 100644 index 00000000..6fd1e03b --- /dev/null +++ b/docs/ux-ui/acceptance/browser-speed-unknown-2026-10-08.json @@ -0,0 +1,36 @@ +{ + "date": "2026-10-08", + "source": "8782054078304f36cc611876af2d17f87b857f60", + "database": "mmapp_acceptance_20261007", + "httpMocks": false, + "routerOsMocks": false, + "native": "CHR1→CHR2 TCP transmit 3s", + "receipt": { + "status": 502, + "outcome": "unknown", + "runId": "speed-1791425187780" + }, + "unknownRowVisible": true, + "snapshot42Preserved": true, + "mobileFits": true, + "history": [ + { + "id": "speed-1791425187780", + "status": "done", + "tx_avg_mbps": 2353.700072, + "rx_avg_mbps": null + } + ], + "reconciledToDone": true, + "warningCleared": true, + "nativeCalls": 1, + "postStatuses": [ + 502 + ], + "pageErrors": [], + "limits": [ + "Fault injected at node-pg boundary AFTER real COMMIT; not a physical TCP disconnect", + "Isolated database and Docker network; main database not restored", + "Auth disabled on SSH-only test stand; Portal SSO not covered" + ] +} diff --git a/docs/ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json b/docs/ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json new file mode 100644 index 00000000..4a76323b --- /dev/null +++ b/docs/ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json @@ -0,0 +1,34 @@ +{ + "date": "2026-10-08", + "source": "8782054078304f36cc611876af2d17f87b857f60", + "httpMocks": false, + "pages": [ + { + "path": "/dashboard", + "status": 200, + "mobileFits": true + }, + { + "path": "/servers", + "status": 200, + "mobileFits": true + }, + { + "path": "/uptime?tab=speed", + "status": 200, + "mobileFits": true + }, + { + "path": "/settings", + "status": 200, + "mobileFits": true + }, + { + "path": "/filters", + "status": 200, + "mobileFits": true + } + ], + "pageErrors": [], + "badApiResponses": [] +} diff --git a/docs/ux-ui/acceptance/deployed-8782054-2026-10-08.json b/docs/ux-ui/acceptance/deployed-8782054-2026-10-08.json new file mode 100644 index 00000000..64ba7a51 --- /dev/null +++ b/docs/ux-ui/acceptance/deployed-8782054-2026-10-08.json @@ -0,0 +1,44 @@ +{ + "date": "2026-10-08", + "source": "8782054078304f36cc611876af2d17f87b857f60", + "health": { + "status": "ok", + "timestamp": "2026-10-08T02:08:07.040Z", + "version": "1.0.0-test.8782054", + "eventLoopDelayMs": 20, + "flowWorker": { + "alive": false, + "bound": false, + "pendingSize": 0, + "dropped": 0, + "packetsReceived": 0 + } + }, + "controlsMatch": true, + "controls": { + "servers": [ + { + "id": 1, + "host": "194.226.121.150", + "enabled": true + }, + { + "id": 2, + "host": "104.165.244.7", + "enabled": true + } + ], + "retentionDays": 14, + "speedHistoryCount": 5 + }, + "backendImageId": "sha256:7862c9b40a934914110da58a814d3b4770e923016b87f36f9252f8050961e79a", + "frontendImageId": "sha256:d22dd0f3962edeac73af63df72520fe9966d5a81aec0b8b4ddf4fab1a0ddf196", + "backendHealth": "healthy", + "composeSha256": "3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f", + "preUpdateBackup": { + "bytes": 1049796, + "sha256": "826cad71918b661284b8a0ed2ca599b12f3183ed9923e724798876bfc9cf7b39" + }, + "mainRestorePerformed": false, + "authRequired": false +} \ No newline at end of file diff --git a/docs/ux-ui/screens/speed-unknown-real-320.png b/docs/ux-ui/screens/speed-unknown-real-320.png new file mode 100644 index 0000000000000000000000000000000000000000..410a584e4423450bdc5181e059cbeb5372313420 GIT binary patch literal 55955 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�-33lb8N&!9+%s8odt#E%A0)Y_6O;FQ+z6Tf@^4LmCaco702>A^#`ayI)KHkE{wq zgmt)C$J12$CTAqCcWx;Q(9Yl_Pz2bBXPer4Mq#nq`RTzI{gs#eVhGC4hbGt$X&JBC+r#4GtPx!^^L z8l$Zz#JcoGO=q(ARDT7I)?#E{9wfXyAxg0Qi|$oNbIgN@_Vx?MnvA>;E=dp%=<=t! zwowen0={WF&{D+OfzMo^YpS=($MzpU7(4G^?wH4|FJ0XGQ#*sd-?KsS$68u*lzv4A zBA#i^+p}&4%=I_1EX^+&I?%{AaX6jvJ81#@ts^-XmgeD6#2)+7Ztos^p5S1QWz5!~ zsUvdM(LXIr0J6h6f)r6vNv(r@j?bSzA-UTkbitknAn||t9X4JVQ^MYB zxiz<*taM8!@6e(1bhF(^Li@C8_*}r(X8HaaE7O%?t2y$3pdVb`k@ZuS>pNc*RN!Z% z@k(j?s{eZL%}bDB0N+PL;>NOHgSqKc^21yfS$>f{5?&%kOzdeJjCWSiL}|H2Y@=ys z)2wA#b{AJ>aPC_7N1em35bnnJwh@3(SIz=*L1n9_Q$w={iE z&*McFR=BsXdUCEKi0_a`y%kCkp4)GOMRi(~miK0v9!MGiIP$vMBRL-szzVsM+U~It zuZ<045~1Gi^wcd=;ksVUvD8j?q89wX)&V{8yS+acEdMECe|B{$!sz?dFx-}*8ECt) zFSZ2T&OKl94mR$4-;}wwzED#TQbk32S6960aJpcMU&*NO*>N^@h4QXQakO+RtCEcA z2dqKoHqii)J+NvKBMO#i{qCb3N`NL}DfinF5jX4@dUt1(oLW;sKeqQZ+>Co^RXk)z z7KI+2Y!8X}VkHHTY%geeIH{?qVjF9GagG{T*V~8!ioE%czTAsM4|CA@+z@+8i!_bG zaQ8<=z}k_YMak)UOEAvD!^>&*h2j=s#yaIJhfXIQ?Z(Y0H{dD&6}tOTY3nG>F*Mpu z0@Kc(7$_L&(JrYG{_j}81mm6IuOnafT1FmaX(%{7)RWJ$89 zvpWn#IzF$R*Z?tIk^d|b38(*Cvd{aal_JkN|F*9_`k)^wDJRF&sBlHx$V}7}j0;np z%IXg|Ynp=`1_oAoBuH_ZiGxFa0V8`Id>s64uNT}>&!2u1o+C%5L#=JNg_Ip;qs^H!~SpigFrYp+ZFoSQJx;I5LTTkr{ z*BX0aWnKexYT1Y95Uzt3HACN=Q5;vIg}p_+Kl(fkgtuR6D6%bF1JOj-Z^y6u-C>6j z=$V6i?Z5&GOdEjxKxaa?(SPLdgbuRuD-6T`XZtj;utLmqApMklbuBU8{23dA_0@}C zuwFSXG~WAnt}KMP3K)D49=mpYHrva|jT!K>7!KqBpx#EXKF_7LI%Ljz!r)yA?$)p& zE;{;&t&wSl7q=7bp2>z@c1LLX_ukoDjn}l*!@J+84YelzJ$lWNX*xuzhgmChu3CS> z(-v-9lkiS$9V3}1x_?3aRkFp8X}%hFLV!YeWvSj%fU;~n&r%4B*IsBY=#VkuXePZR zR+vC4+V%Q25X4bpFwX;?J01m6076^N{NoFIdVc(2Y8%__B2&z`E9}ERM8IXfsRltJ z99ye1;>*4HGlL)|)rKo^K}Z<4ziwB>qk*W`y{ZA0LdDSfv8?DBd@%~q>cgY%ElvXK`l!3d9h@P)Ahhp1K zmI+?Rr&Hmj)A-XXY?8Rh&PD7Wc*J_|?`$KpjuSfM>kZ|91$IL~1z>Y_ghMXC5%bTr zZp`pmJ?DBfvDz82&unyoy4S^TchYL!Zu-$Znf~{j0^d%qV!R>}OHt17Tjn3>?ZQlW zT=&9>5AW2ED*U3MeT$urWHtcpst~7B&*+aE!4gi@N0@noNbRfg7lPP^QYuE? zoV+A#AJ5(EP`i2GP*3hjy2NRyq*e9drtc5m*~?&IQRgTdgfBp0I;54VAmiNp@yux3 z1!JxWYdF$`??>JK#zzx`5V9K~=)(H%z|!}H!Y!=HE1EX-=Q)<0hnZc+`LXP7%R7hs zn&zDvlt%9g;@Q4s(XZ$V0f#tTT;1)=x8T2xK+f_O7eBLfuUqTYTyEGZmz^{Jyo#0L zEx<^Ye=*`|EloITVo}ga&;jGnpN4IKcpQ?4zTo{d`q3}GJSXr}QpxkgYU};7B3_~e zAEsI6<)~unL65*cj~fn|6qpk#q(qX+vq!|fH>NXCd(>bX?=+Gzp698Q8Q%+%3!%Iz zQj$txI>J<|KzUJThqkdsE@E>i^NWh7(E=V4h&ZC1ub1?D`$o-6Be!+NdQuQHbs7d` zY>wP;lOM-tP!biw0T8FjKR1E=k#n`9+-4bQ2$lA$ft|Q`$!)#UiAmO7$K6Ct{(YU| zXswETh-XD1eJAO-Z=Z4X3lB^L(bmT{7MNmQ@!b58ZQHhOv!jkX>Daby8y(xW?Nfc< z=l{$z^PD*|=e(L1^RCu!)yk@0RjRJ*+TYLK`{PGJ;6go9MuCW2rgMgjNd%k0OKfe~ zMo*)$?3SZNJG(;Q!m258sw++m8sDPZhKaxVtZ8pY`&wCl;__6M9Mc*HucdkPt7e1A zkDv+*2Mxnt%KGy3h{<-!c}ymVU=e2?9Pd>dguvDjbHn%}SLC5jPfwpZ{JcF&{zLJg zj@{2|0Y!p&jJUcwnSo>;pW;7M^5Db?MxBei)I#r`GmsH=-40ocDm^S6<962k`0$hI z+to{<|~+!y+<~5wxVdh>)~?=CI4|@mt$rL!+Z3sx8nn73<`p7KIW{+l-qg z_;S1b1a90iZE5#RU{XZaucOZyvq(cMwl~j~2as*7 zb13T&>8|StP#ZXSPF?ObpE0nyXbcpx8A;(@M$q0?3`3sPE{(<7*5)O4?te&AE?DzJ z$UvSR-2+v0_7xwo!M>5)?{Sd0dZG+G`1U}A6K9L>U` zgvL1&TlP`sTa|InM(309GqT9>*^a8eEr_Bcst+Z1`OO-)~8V5{xT-s`j)(rna zO5zWjYgcSrQ*kWR$rCP{PHiu#eCjFqCMX4NYY_S0JVMj=B@v0&y_r}uiNO}`etGQk zFG+|XfAtrlULlc>#>o-0XL{qS4H&|n$S`9UzLEp_r;}Z!R40Viz|A@n|7e(sXnD{= zM3eeS>x`us6rT<*m)?}C%Ks9(i2YhsW=fJX1kd*0Pr4;(oUU=t-c-9KaDGyf4gWM#*n`k`}6$R?wi0KaB5jCUVLbJTRh``F-aq*T_E=S~3mQf}Cn;NN8R zmX1hUh!{mJ0XbF*sF?>;@M<+V2ww;f0QR;tGPq{I><$lBmzv)io$Q4kBxJd%xgoW| zA7JM4yAXb@xu)Xy^JHn^rHbVCJmaA)z zFD_L5iwkq^8v4|26%Bn+C4;?VX)6=s{Gp}BJHeAS>Zu=a!~Ja3v8e3E3p=QunX{ET zyy9)@TFvj-!}Ca*yW15c@Cd>6H>Qu+0cKC2%bNok*p_^ zY3-^HJZ2o{c~>HKqq%V}d7&b1V)4>G{?R`sC9KG`5SX_nn6J|~I&i$s$r)})e3`33uKA-zNb&$12s z=TWGws0 z!1_l^RAG*xlNj&8kcL&JvkLQKh4jLK&b1Amx#zlDvWfOzc@NFE0RwV=VBHmeN2?wJZ1?C^~nhInE^*#Abi8rw2*S z1Oo#Dpj_Gl;m~47Lo7r}3jDSowt5DLkTU%MFeENFx3tt!Qc^N?hzk@-L>h>#WBN20 zRN$(0eJlb-_APq)9l#%PO$To~wO*&16E56QUW*IEFQN{Bb_di;|KU)1? zz-Y96#^@ishy+j=5H1c3sOaGQYcK&ZY;CEVou2+Bl-m>M{%^VnIb7sl1{1(8Mv2k{ z-j^LO&;nm8KA=3u3t%vz+n84o&bAL2J>A8`#01cffW|GUT%h|>sNls}r`I0UAGb~= zdd9}T&7PlOCP2)<>QM~t7F2-%-5y#I0iua1`V3qfm@LE$+$p6J|A7~=Y_f*@A8?V@ zzu_WtTh85bOF9Uxt?j|SVnpN}K^KR>_-G{9?#z{1IDa2&3~Aq1a-Fo$TekA|{c9Iop* zcB{*4%ko2P6%Gvz82P(rqn)na!=`Yy!2*$no9{AFW7(mErbrpB#9*1pQ^{~e&aZ`9 zP?E7^FwRa}UA+dTvf0+b4B1|7TTyNm-#gcpqJ=Eacn14#4@d@fU9t_;!Pwa^b?YNa zpJ?ZTDZh1nygk(Q^0NNos_F0{?|t?Iy^u+iw?*sj^1ecN#Be|C*|fF~%PAb17Cj1+{dw_=Qg|ehJ@Fc?bh{5nR4nWJZ}{IXXI&gIQ=Q0F>7q@syFjPyn%&av z4BU|513eOlYX08Tdoz9O+Jp4_xVi2ZvQmHQO>$)-Rg992s^zy{{8_4(wA(jd0C(~| z{QE}SAX8t|5iSe<(vSc>GfV3Hd=#S_jr!tCg^Dr;r1CEm@8qooSuX~1x2+}(pb{77 zHM%C<9Yq1g3Vh9_i+z-HQ`HO?n=jY(>BjT*Kq#kpd+CR4=Ld%Y+xP%=a_RB!xw*n7 z+<89=U~gP;v_M{I*NBeA?YT-NNK`(!>TR><<^CPOYBVGGswW+I51JR9d6o} z8Z&-i{i8qX=cfbo$4N6!$K2Va66Y$>4B14RS#K~ICq&%Tk3CAsfUG+Ud7NLF?@@>6 z=iG;i1D*g$lJXby2e1jBr>4yL`SHS3uS!Ckhx&|d^W8Bc!aPQ?-}?RDDCm!gGZPAAbSGF+e@%9RPH+-u>hMfi z$45L%>9Kat)Av&8Qc@T5t(_#GnIr)Igj8q8OG&u$=*(8-^FY!l7Fk>_4b=8JBnBp6 zGj)qM_=8vpwXJX2>HkTeTuN_l$&-OAF`1C1Yz*5PsVZn@ms_U-1_aZv`dKL>dvzwhEz@EB?-Sxth5FCoK*tLf!ZtNG$Em3{oagZ9kn5BSE5mT#iJf|3fy zip%q-H|JdL{$#)>t^TUQGq?U-V}HUrOumrK02Jf;IY5dT0-_2w-IB^^XZC$RWTWUe(NVrob7 zL27N~gn+Qp1rq~+DgnldAwR_2#Y&A7#aa<_b4F>_TT2jfN%edc>p?Nh_U7aE^?~Xbx;fxz$8Hp z4)>tRGky3_G~G1*pMgs3=aZ=U7`5rTY~+^By6JAg_9%09yu7i*jgP z^?s)ZrR<}>`-7apAPpz@WG+`!7iQs8+i@_w_AfSe*spf~9-Ice2Ji1-BK@3(!~>}D zFIj7o6`QU8MHR03z3_T{VsBGVY`bt%7wmqpb&1{xV?P_NwP^S;v0rQ&wSC8Tnew>c zw8++=!~NREIyaYDk*i1lr8oi_UKB3@LLkSjL+sDk$9g5j0Iua0aN0M=b{fBbi;+5D zuN+JT>D2_dKY?u_EA_*{StphwD|@XTo0b4h1M6An{>LhH1$(^niS)XXg+(1+X@i@L zH(FOn*j;PL_DKiZ>p>{B>059?zRrsZ%zJG0p;0NIN%5cd1gU;2u`vTdY$DbgQl(GN z@D_Fz@BMurnzEe4Bu+~yulEd{pr9;SSea?a?cZ&@AmJfymaHKFO5t*8*YA{G@4S97 zrbOO2j-{u{D2T}+9eeVXIU4R84`)73KHlSyPqJD*GG8TjAPNXsmmEtJM99-W=9bh-h0f6;u|g}trgvw-z<;nh3cTQ zEsB%w6b8268i+RA|Tp z{qUME-ioWs?;FVEGycSC@zL`@Qo{jx+^CNmwq|jh*2I8|-XovkU6iStI7s3kbN+Z5R921h#2k%hH3AqI9V+w+yW5|P zI%ZMypE%ij66? zv65p#FMV9}x_=1Bmh6WrCt1(Un=c?y=c%cT%pHPVsJShnLO9J-2WDFswHw!B*}PH( z^F8do{!Gbv!J-X{`?PZ_i;Cblx1DQBxw|=+6=EWXoV1d>P9bR)&yVTYAcUQ?AD z(yG*Di`Q)4(bzGzU6OrtC(}irXm79N(h2`KKOrfPxG%_LO`8*yCgT{10KBCegvDKd z@v)5}5z`TTDAc7JhiBb(L6Aklh&!?K<7!YM75?+E^hHc0ua9k``<1yF^XekBQP2}R zX`&>lp;~c98B}9)@~mN^>==L@Sl6q;S-ZaxGPnpvJZ1{$BbQ2+URaMrnVJw3p0bz;>9BAe|HM*bW^mTnC4D^Qi zPe%sH2MPwmm^Rvw*hHtdduUnx z41-KwQSe}jim<*qg`?em*V?Gd4f$R5A(Gsk!*;(D-0rF#7}aJ7cn zAYN8>$s5o*CO6kkAzN#)tH~wZ7Rx-|RYrv672QXHRE8wYf}s2ai#tZ~2>t=!v;tQZ zGuV+Gm9i8*`umBmyX_V#F)DG;>%f?GlD%AOYLebps7o-MSof78I*hn#4~@RG55GsQ z=XxtdRw`8JlG$pQ zZIfG-37cLB08{|o3O+xp=ez8?)1>tIzt>!qWpLwk^t21IuMJ`i$NJL7U6?faGLBG!Cj zTvqWf(aB=FSMCtu#z}7N>^Nj)B5t?2#@Hv|rbXGNc(H`EmTtADedI9eHI^LKBI?{i zfHUE@M8WQ^5j=LoSO5S=;2%~0X3Yq&pQ*h%ztbPQpQa5%v@;w)IFt5VzF|RLNfPt> zyVeG05HJkl7K`w(){v(Oc3?wa=Zi&iyk2X{KGofT1{~my$;yZM^)3wC81) z6$Yfrspki|ThPt&jRPlY&&(1RR@46#710<8_Aex-IP!lB$>lFQF|$us$x&?BF0AQD zN^77J9HQ1>SlM{#qwOkspilseb>|_uy2;2Nhtl3I4nQwTi$wV3)d^O1V)-gxA}h7+ zZo4?#^dv8|E^!SBEKh|PTXYn=`>+&dteX@DU+s71(;B`CFL{vF{htf>|!8_fkcyfE95?Wbad{xt>c3W!0aoWY9p~;-?`7+GlN|RBO zdO=m6z2mWLb`ZB~R>74)RIS{WSbik&Wc2{@=fRe_zrh;~(n4}h!h;&l#ekcp3^h3^ z5k2{OF!A(j7QZ27rzG(|U_fXXi1VL>SMk?d7*Q@|_4kM!QyiVXg3*obsotPNP{jXI z|8nME;cEv~^G~t<(E>)-gfMXBfMtoiMTJgXk_t3YigdPC1nyHz@%>7_aVI@w+=?~-hgHx* zkzqrutql&>EYg?0Xs2;er7h=V*JMWk8*XzZyncte&ZBndBda@%|5!NPB&8i=< z-YPt$XU&S853v_ag&}ZLJbCo?WKbk@cFxYi{|Q1AdaGG+x=V5)5%RE4Z`2na5*p8; z^~EVQbpfyz363s;S`b|tS}9J7-1Fs}(`yn?w!}U$?i>OVfTJSeKS3M+$)0E-(xYm` z7*`Ug?t=t%0X7Ew*Si%BrJoc!I zN1{*(&}Gpxvp_1WDABagE+c6R0%-GeF*%E%rWzAeMe{iYVBM2J|3Vja>ZGT?|0~pl z4LDMS2=B-HOrA18;>a((y3+=zCPo$(PzMSht5FCF`ETqG&@CMqISjWn6x1k@gEhy1 zb3p$#^7JI38uBPOO8^G9`3^w86rduiyG~By zg8}I$LWZhngh*v56{xBS38=!tTJrLMo)cTR5^c>o_waC3RQrPqrKsTpsz#uo!W8FD54^5OKhY6v8ls}3bG<@9a*gg_!9lcH!J~a> zPEi?X&_kq1k)acv)Hwhq$Z=63UtV4dX%$sfU*xL`D3SW_mL8HM$kin!AZ%JNr=-dw z4hAJZmrRB?9ZF$p5s^030GsLM00j*nHssmI3{{D&Z3U$3FT-hfn96?V8L&%psl zE3j#*PzbV)a)3kAk_9_NCeZi~pwqN{6m1@MxN7^C!uMu{ibd8$E9X+;url$&xf9bu z(?-~cv&1ODKy_&%WLGGQR?<9H1yb~WvGP2S7`pzO(%UwK^qjtj`v(u6teo?`ZV5%u z2UtuARvR5Pt+I2&pjBOwa?#Rs5uMIg08+QQ0LwyR5D=YshCO3Zb6kU?P?~DG4kZE$ zskPK*Qn582_F?z{uS1zf2`oK5?AuedXOpp2{8iZ%n)fX+h(C()Y|FXF?-%NbB4kU6tI9|L5TWC()%y? z?Z2vY|JSb;AmDKWfdO29$G=LC??j=3n|{bx{EyUk5`+K!tAKj0{Nif+oND=81y@(s za1o-v@k5D;06Q$2P;O2^LqkOaD!|~`H7y@DeGEpVNQeZ8)uE;yyuJm{v{G>m@*+fm zGDU!1-5i+f2oI!xr86yWrlqCzku{h6RM*o3M*7(VIsZ2$$EFzu2F4&Ajs+-Af(X-lZ6^^ z$TBc8@)OYRdMccG*W)mP71Is4O<*t(MMw&G3M2}Y9KLxf1ME&fat|RA6q-PwKq}Bf zE*tRK$=O-_XvtZmz&t1!5}pi=fNY6u58x{R0t|4U{)7m?W>d%xSZGQ>j^X!zN8&uI zzm%~iTQ@MTRsQk@*i+QRJzEvzs}G2s5c&2}8i!_*l~m z5NIIUc3?q;RY0*~&J7pY4Xbnx1wB*r$JK5(TL^(o4vod_Z>SCNCl-qiX=gyf|M9H{ za%cbIj9~i&jE}RzaMox9K+j_TjYVo|oYrk$Jv=xFECMC9vh9aUWxl%EOVA4Qx_4M@ zH&<69tAB?dxH<>OkWy76%bw zb^emkwDv3QCv;$TSJ6vR7QkU>otT`|?-&6(6|jZnTy3;gS5g8=gKEeK3M!V#U=gj- zBPSPkc7_P+4_x!~%DKN9j9XY38B60V5!PGD`;8hs=wgo~((=<%15Vm=Y{=SZ_%OCf03C5s>K5S zs{o$klAuEmf);#(Zg!(5{J|#o-gkxPt(EV&@wy&RVgWPQ8(4Y|mD!bqhI=VfPj$5$ z^CJs_HbKkBJv||8-WcY6NQ?LI(qwQZvyn`6xT`fUGHf>Alf&8>t&94kBelN8_1tUM z`P3CFd;dyCZL~Wv>`1V4W(ViOlE{a4LP4;LiBIn0`uyE8ah0yAqd z)>${+k(n&@SextN@B+MEe&W|`pk#G z#->^rNa%Rmo!JBdEJ@sUO*KoDUzX#&!vuAERA@+WbiF`WI1<@NsA)%>fe z^+yIQm{=^Kg;g6AE709i^VFoDfK5$#bJh?WFTmJjJ*T1$vEG2$!mw-PQi28)Wfwz3 z{(QtXyJcTeZqi;)2@qGvj6RR)P&o!RX$?MJaI`~r3LkIp@Ge4!9ZlfV>koX^(cO74 zEPc3nK9^s<9T6X`j_f`qqmr1s-6DMjC|0pXP8^>H7cXjmH{}k!%>&u)JUC2!nA4r8 zLGgyL=R#@U&{lpbe47pj>wLi^GV^}&3sHj!iaL#UHxs| zkC40fa}USJ_V#`YU%X;{AA4@YUgQHxio=&Dve zbz=n?);GNEsT!|JLIfUIAu6)Y#3a{GLIw%u&COVb?fT*yXOCH~UGm-aY4F}slkaTG z&&u?C&Pq*0jGqU{Ty*hyz2I1ebj+#8-fVi8uYcA)chMm-q}14QR+3bu>xvt0Iv?I% zJNP6M(E!V+{oKbK1d6fm4-1i2;HNfRO`WTIrX**R(*B&Vy|Mfb%iRu4h*N&OS?@r> z`l*tqoWuEiofpb*L3y73W;$fD4u^3zQ~;6J6e8rz;vfljPOVV6&JDu}J^d=1vJ1jZ z2Ebi>bl<#Nx%$;I$AXhv)CXDHR+xe_j?|=yNmPvp_v0!u3T`5mJ`**08O5_Y@K4Cf z%e_jg<4>A)W}{Y9m4Ssgvz2RE*=6kFrh6*Z41lay z`fBD5Kz5T1gEUZ?$;BgRbW*aCa=CP2Hqs7AlGoCs?qxV8VlJ3Fn=dh`!a+RTJ?qw_ zDHJeC_n?Dwyk^SR9C6dhC2Ia-ZbKaNB} zVB7$Op<+~rQ-AsTWgGsj+6a(O*P|)GUgfUqRSSQY+YT;jaXCcOzlbNB;GByaNhdZw zjFBCT9xf-754mf50tKcK$2JCQ-rQ-~)J%HdM(PJ;yNJaAIQ-s(})!mTg! zo_T`@eW!QR8=n9{uf<|-0gr)ivV$8nfTb&w6CSGYM-fL=+VoBDWvTZ{e;DB8Tij7n zR3+4NOkz!%EBfJmemus!`JMYrKKg`hb|E;srEk~^T&+o#@n$Z$QtKONSLWDmW~yB` zAwnc7^2yL6>ayOpEcMLBDlJMt0MW83afsH z6g&VN);eKj7UE^V&J+=k3!BRwA>%4B?0lvDtC{z0zx^613MikIZE%8>U+<5ZM^zUV z{;nNpjW>~t{JlvM!^y%zdqxoAIX7mlnHBp1v~9<=fW;AB*Wwfm zju-se-P>j*Y?$^!#Qy$BPntwL&1VX4dcjS<_!lScl@HER=hVJp+;b0s~Tz)7vFclr}n9K0- zJ~Ul9TZ+-%Q_&pwoFp+K&3ALRc=|j?yj#2!j>tq`t-UJJuCA&myma35?07jFX`j5? z`}A0)GygMz-G+PnmAE6R`I|u6D&4Y$wx}LK8{6~lnxv2gdA%{+@Y!1%eMCn4Q(A=e zI#yfn&GYH6pW5Fwm`JfO*lB+8CPpmdwjU(dB^d+0)CfL!RA+rE#h{AIa*zv&MGf(Z zJq?Y{2K$YmP@LI*q)BmcGoPL9kcf`~cbyJWl1vov+(Xk1p|82 zZHqxCFOTZ;0xf9qSgQtJ??I9R^vtHs znpozjMtXvt%uMeeHUS$UH3|dhV^<*&UqF`w97y-NRe~NgK zx6G3JM+^8*m;VP3Egk9a%Y&@CWhosM)0?vr=~gQDq+p(DS1u)``5VoeO%6Jr-Y<+N zXA!GcY}-lloB`!`u+HeBiY}kQogwu;jycKsoF2*8-ah5?^(x!(KeI&Rs2_*+6n`Xz zaiba1HCmaxp3Vkdk?PesV5l|BE0hiwTYbs1_SybeqI3H;hAU2a_oq-G=M;q6y@Iry zC_*7EM|z}aTh7K)bz6N00a=KBE3M1Rk^uaP$3`;FO3%ra(TW>`TBdidV$ZYuo8L&; zN5sNJ9;NEWsiiM%&B8jroH$MVt1UJ!KhNP5(z%$T3+VxoD=GLNo}4xa`Y*lRFiH}y z;dtnc5R7=BWBxII4_B9EkBMPr?_$E%JM#2j$9FrhovA87C2qtRp2{1J80k;&fOtaiEGkXsL3&j^#ukApOJawT($1l)>uWM8Ep8!YW()BT=Ug6_z_3hxSRa z>ocqK#+IC$xiG8w^iKHDl=hAq9jj_zDqU%zGE0qoyH~mxv8ebw@zwTrIbF&%9h(ia zLbqaDs_gAP@&#Z7R|7`EXk&}8J!p0dJ6h*IY)3(1n@V~a$PG%EE=ihS`gzA(Ng$oWk%Scw25+8MX7 zqKC>SfKhO$GAMqe#(*0IEM>erGtQm!@6fm4N$D zV%ErFcbD0#6Vtb?NgP52DYWq~y=GEoDGEdE#D4+SMlobq&n0 z7IdUK$#&735;>^A*@@H)K}gDQ#9yKsw}_(fe=gIo)+09UDrbG|vrsO_s(oZPvemP(;nTK zL=_*&Mt2D}A+b$3na3Lp)eb4YO!8=36sPn3c*9HzA^fn9LsokI-a!)Z)nI`-dG->7 zA|?$vr)IT5tdnXJO-vW3cn;4H^Tqq;{VwCgSjE0JG%UU3GG+Bc4k^}KkRUIgfR#4S z=zE4<9lcumtu7$Yyr*IMn0pu~U_};pNGYj#KAJ-ZWiBKbro;oHeIEaKt>96|o?!Se zOj6$>5lVVF-mGS;UN~ON&XM1ey+%%TksLy%acNo$m1%0^1|Da#lNUBXBLnWBO&N$6 z33aSe3Ui6`>vC{}CVNEJQ5r|qpXcY6pj)DEYMGBosnZZc3!v=Z8JY;sc(3)@y;Br- z+X4kWgl!u?#C#g-jV2HhUaJ9GqBYCo7f(v*wrRrf(X5PNzmY1Hv;W2COqO&@7_-N#sjf*x~CQUcEomGB+vL z_glrL?x&IvLsWIC)5`@9H@8C1VTI~ zv22ft90$z+wNlNVwD#XOy#zV*!6v)htasXMc}TGo6X09gL|uAP#q!vhU(BdK$^Ysu z!^_|;c)VKg`Pe($+$K5qz4pgv2K|FL>v(jQ=UcOdL6v-nyx;mB(cyztitLAIFSBc= zmq94Y+?GEgB5YIn7p_77>Er3dA-0_<_7R7aW}qs^VjaBJx6ijjRb=Y^i@Hbq1(;Tc}gi4aUU;JD@|o?0iAYbF+^z?6FNDn7!({d5yCn zcP#!+P<4aK!Z&}KTbNzPYz<6&eay?7+J_FeFOXN;!#cETQ2 z@w=nLgmWc3FQd_)HW?rz^a`HDNjQyeU8b6e@xx`>@X<*xZ_CbD#nawK*zJzN%g*H4 z6T5Ufo++bYaWJJ_dUGgSQ2R>-O;nmWlZYt@%_77a861i(inqQZ(;L=)KfRWlU2pWm z87g)@qflD$(me`O@F6_wLZ!|n>Hbkfx9T)!vC)=b6eACNF zd5C+rzJwOr<;$35<9y6>aq|T4&BFG|#DW@El9u+TVTPO^nQ=>;ZoL>=U0$D$vsA

LgeFfiNkSSG?$T+4G7x~37MDYzr@w#YKX z+TvHgy}6lewp|L|NFn#~3PIx>$Vz8>5_| zYG&8sL9fuVV)s5JP|31+w;0y?R`y2}UbWKlmpB4E@m#-M4rxhokG9<*#A<>W9`xR+rSEp?VOGoGuwVu}eCDaRy zt*Kp`N)h6m;SFkr>w>IK7Wg4${l`qJUj?4q)q=B^FX))8e4F@3VFNL_I(GFEk zj16%)S`YPdVQF3acC&NAq7ICK12CL8J9Ek#X9SCUXoKj+nu20UI zeU{%K;f$qvaLKV*wS1$*zQ%{KS@lDM8Ira=0?jObZdp=Ak?oC_;VFY)rn>nhC1)e~ zPr+16i(43;@659+qekFlY0C07##W^g+nY{;j?|apXTF7p9!n8u;tg1LcxUtaI)Kst zfd=jV8BCrMuK$Bmm2CTzr4W42qzA-6uZXAcCLNAuLLxL7c-zz=I5cIgl20z4bS`Vn z{vF+f*reY9cIgD?(@$fxfr@xD=3HrZOm~*Hwy`! zZ+F%1-F2Dm`KwRZD%eGvc)vkRvK$$zL095CJ`-_ZWdYkm3>ttmaRK6kM73deQ$^=m zh8Lrl;3RP?-16nq{PU8_!vtFW&sa>QztR}_70&26} z`O-a3H!VL%R=;oq?Qn9NlbkPBP5x^%KUZR(x4QMHxAKRLA-FW>cV}j$d>~oz#I?$$ zX20K@b8%tPKG_ObU7x@Kc4r4$czi_FcwlAgE`f7Yv%_<_oU)OfoX`fF%?Vx$wlW6| zN~^PkYVi7+q9EUXMYq&hh>23I4^iaLP2;798sU(@cmVuB(n5)Cm3@yPi3{{wcVI#a zynk?>?(|FZliS=-fCal1UG#R_^sPDuhI5n+#H;K+W$)`rQ7LrXCP93_BJ7&MIy?$@ z0uH&H%YP3vlNJ8Vq)&L%Qf)g?isM6a(km+J2vfH^z_0n_5S}L12zjb(I>IWSglb8u zroqv6=K8g{!WJXLbtRdYCwytIv&Cr=yUGc5vM-vy4 z)WZNAuZJISB#JACy~$6{i6smjKW+S0aU_-_gQ9&8s5zOD(JI$3)`cl_8qCR#b~KjN zGxVI%5~p_4Md-ULO=jF;3cuejFcGbJ z5DKC5t*WJXI1=}Wh4#nNyY6KM?y&iNA!C2PlD*wf@O0+hN1PkMWrKQq z7rTcI+yoq0nhx}GsZq9TTe}<+Xdc{FqzndZD zOb;cY%j6|9|DO$qn+ph@8*gunrL%WQrJ9p(H*?mg6JvjRlWzXtvOt%vRgylto%Vt| zHEXM_37hO>K(;6UiF!by2`-fPZR$ntkf3_p~F`Jr(wGW*nRlh{Mr>u0Z35MO2UfcV9mW5wF zCD+2QG-zHSx#qy^vV`X)ucU~}->O5JN|j~Xt-Q3V@3iH_itwXodY9L@bcR?wT{}Dx z*;&mI?ssNZ+-KLJ^U=rIJ5Zy#If$vraJK!dgW~DJ@qAIi7V5lvEiJ)53T&W--7k3>Fp$81FO&b%QQ7(- zbhuAa`8x{W=hlSxjTy{`N(BS%JLJD(JBsBitlSlP%ahunRNn@aPP8OT2`HbYAM$$} z-yr-ni2Bk#GrZ76tCl0_yPkAf7N*|OF0&;W*Ev1jPJ8$+YSn#+`^$MPDbd?Yt2zos zIwU7Apc%R~@laudNXI9V(2ATN4_V4K(`mADUFnBvcQXA z(YrJB7Qn|=^czcDP6io)Q~uZoZ#CSUm!=<5%q*mC`A+;f17 z5-jSxmm*>-oHG+3=A)!aIo@h2$xoIzC>8dFXe`I)SUqX+ogs$+%^+2(_iTEjBNPs0 zOD0hD{ypYKC%z4=ZX4U~@Cm<2zqb&S`lEhGKszo;aa0r7#KhT{+IPiK4SaBp)@XGx zx2%;j*Rs+m^NRJ@sN?i>)e9bCS=*ogCW?@?_n(GxP}i%CsOpfyT(on|ORP~g!j8j^ z%_QpFr;z)WbG+n5usoTT>#)P9jiSFK`JIbcUcwn>x!xzV7-dB7d}DIcKK=ezd|Gd& zN@stDifB*wUlGgbz*s+of(5?g}1p581U7Nx+lGVSR0G1FtFEMR8HF=3vwggLMiF~oST{WY! zFBbJrx(x%>yB^)4A0Um_?yfJh?svp4u?iU`)_dh#p?;CHFRNizE!h%X7F9y~ZCNZH zw|w*mt%b6W8fMNl@-A~AiUrBanVEe(ck2K@(I!90os=tUYl-~D0EW%w%kXW$wKs4J zsFmJn??K%PnJH`jm}DXhhS3}bx9&Qt>MlC$q7ukjd$?ZvD!%Ooxtj0%4Kb;+YGZx) zXSNF2vPVYRF(nK@K+N9QM`mNIUd6A(F2O>RD?4pL>aVp-`(m&aiJp@fDU?G|IJ8Cx z474he{5Kk;H4-R5$nc-&{r~I3B3szyp-J){_Y~%5sEYOB=T~q4`8qAictF03VIus zT7G{ioN4uQ!zVNis$(Lko^kr~L2QZ%C>lQUUils;g#x_P+vh2qYELJR)ehlKg4Ae4 zQ{&ZO+SlAZdGK>c|2BA1d*Ed}qcHnz7kO2q!%#ktZQ z^vr{d+LP$+WH7DEa5Okj#_JpR=anrri6sPGcu9<23UZ^pyAYeg#b(7SrMg{TX{9xS zRFcLxZulr(fGUQDst-H%p_9xZ7>Ikbm?GQ@NkbFgHDF3yNati_-00Rwa5uV{n&J+7 zUa6($_h5_q^>dP$!FW}I=Nwm(vefag1~1I4CirGY@Z8GKoF3m~!~K!(#mS$nKLy4^ zbZWaOz4rTd=N|3XM|HYmEu()Z{nPKXIsT~uo)KIhEfU_NY?Y>8L+3~135UCVU>W!6 zWn&cr+r6!J9g)(-;)}@=HSM$^cl)~wr*nBm*^3WgfT%dY@PEk3Y2ZsI>=iP~X|O)) z?P&1l3vs*P4%V{l^7YarUY3VX@(ggVb!_$16-0JCOL5P`k-ZI;n!b-Ex?YvWYgJa) zCm&r78-uJR*!h%gLH8EYyWmOd$B=${QJWDxt5%C#a`B3PLid(}y5#=n-qNQhBet{e z__3OA+qs3g@&x75zYzjVy596Z19ndkvm!s##lxb9tMWUQfAQRS?LvZ0WzxDY7&JPV z{q*ngp!dGEv}6v__|6ZpVxGO)1fQ%UgbvAIn><3W>>S251DwgIvl71P?FZFhB<_n> z)BO0&tw=<@;$)|m@jJ~gw=Q&T2-1tPn&uiUI6QRaP z8o;OkZ8m|E;qJJdIZNCb8yhY_>B-ETu~?_0WpKl>SZAYHf1(*)t4S)253j)Hu{6=c z_l8mO?N6c&yxyrDtQJV+LZKXO1)J}sm~V~jA=K@;JtHg+Sy)E*K!p6!+&P2?M~@>u z!lvIMn47PA6pQ@ES*^rL`fHD+n8$#UK6l$Myk=U1F}d}W0@TjYpZtxC0$lO?SdM2o zUkwgVod8Es=6UDAvwK!TRLfj5{yKfrEjG`*@og;Rvai{>s+Jj6V14L{*|1-8vtzgq zg)nNjeVjzS!f!~n~ODhq# zuSpZ4=q+A6iM(bxzwZ@GhM}$>Acr;}UO2IOZgJJ(APy5EeVzRaT-Yyr@@)tZljct# z=}Fbt3dp5-z~(Xd(`B9TI-$-tf!E2O%*@Q{ZCOq>N*o*Df!8M78ZnB_D=yy#=`)*3 zOg{2}nrE5>uE}-;;G8cd4AnCKOsrSlZCGXu;2e(k*W&z^1XW=mG~$$>jl^jpetZ(p z7F=CH`;CtK-&#A*Z#Dofj2pFg2%-cvYX-5Y(Nd#kjUd!$MOCOhOR7d&F)EbSNL${} z8llvVtrVq2s1dQ%ruKfl|HJ$Bo_p>&_uMb{+~;?mTN)h>RH1pD*I)PZ)%e9U?w5F} z*i5}}K}8~AIq1hmz|$%sF8gQ&i>HcIm6ENB`%syJ9%H+KSIssu1hYX{rasgQ>x4$o z(H8e}qQ2`DDhW9JTY8U4IDVgLP0BQq2@BpGM_&TM-UPe-v2cD>UC~ z*Y#n2*lpM%(Kz%iHj>rlK}uO5csT6_mvwH_U6bx|Nz~8)a&N|`0+jQ40_c?)8f~WA zGs`C~w}kB54DUSZ`aMKpuVL``Bky;pWv{(uuu5YEefF?z7HCeT^!kh4J@=@NS3dW` z3B82n5jP>dQ5M#{RdY_ysay1XlucOU+#`@nlG2Xzx>%%1&E9LTAg1spb{vSkxwk~( z*6i`^mRuoU2`G$Y-8tjyk$n3-g@6)QywxtV|ez zQJ{8DskIGEPy8PMtMp|>3$77$MX`?(sO`|Jo=E%iP$|ysP2Vc;H(IdcY5ny)4DYeU zN9pRt!Wa<}lH%n6tsOx^W?D($f#4j}WAL9I^EBp3Fkzz;hv>K))|sGtw&J=7Za_3h zC+|ub8@v-^cFi97J3fl(X*l=KHNRae=oFjT`yF|VElE`P>JhqeEt&GLOF3d$>a%<~ zsYT!qG^RRv@56mm;VNu62D@rLn4h=5j6`)Zp4@+XB%>O!v_bx~ zmdrLDd2kUqdO6;BIwRSu$vV?ANgzf3B#E`T?wTlHandWiI7h%8mr}=K+c-t@OE0s$ zhrg&qMDCMupXO~$HAk{Q{5$czHloA4mH(D_i*;LL+k`(dyDFwF0P5mur^F5$4(I$1 z(|Pq>QWn&E0$K(i`uYkUj*{k^Pqj|hH>-BB@AE?fF00HSV9`4)@HC(Jz_Rlj4`V`p zp2W6fYF8B;gTk%Bh2E|fTlBq*ij~6l=pwljV1u{aR;h!aK-cPpeJHf$OGdB#t5Uv& zG#jw|DlW^^bS%oDf%ar6s?z;saEeLQd-z7Thm%p4hqOdYLyeEaBIP5YM=bdxL9r9vfpc|Nq>B5e7QDcJ1J0-@o0~= z7kKW9W1tGApkOF9zN2T;y)YfGnTmv!kIZ)T%a;^?iHw*gj83F(Ll7)zY6k5aiCRY( zAlx4mZ48!DHWTb<&lLW!2dN?Q`U>|R+5RG0)}O9UR`%NIUhY&vFl^O$IatusUpoZa zezIm@3u%nV){If^<>)zS49G2;E}9-;)}Vmpb}zcC-Jq-DQ{!UX(MrXC0B1QbwPh1L zpZM5D3}0-RLF_tY7hu7Q#W5$h{R~K(Um7@;YgKc-)|;3QY(T0rWfu2T;u4VLPMA;#^xCk_3J_@^?TSMLcE+?YRr&;hFtEx{gyg(ntz{< zipM>a0FE+5L(I6{_L_bV5W@G-lGlT39nuU~J3HPD6TQdsSf94lGW(u5Gd-kh*OB87 zLwu~Hy1E$P)y#FFILVbR%j#OqZ5wGwms+bNJH2ZVQssKL{}Gtp*e7g`XCAe(vAIb* z`iG7;gE^9L%V$SIOw7vm9>A`8j_3ttr8{jm?I#- zHZ0%XMcrz|4Z(gfRXO+$i6>I*usqFZ^MZnsHS%28L8ywy`eKnsT4tckbVK5%86U7*NYiE2rHsN`NHP?#RdD0^9<-7$aI8>-vG zaue{}5|)BzPY;Tq#*J^h(VOaA`@tM51WQlfiy$P-S39;X@6u33N2mbmEB9km(j^%K zkTUU9>0}~N%oxzA2d6^Ue;fCyQ-~F6fDh;j$(5M*s3n3_a()UMAP^FE9<6+*-AV2d z7z|RwN`mG^-4JYzN|=Em=FA1p=2Y-W=$|9lqyNmR5lxL=d!L>jyOFrLDF+W05}l<< z6LpJ8lYITBEPlh=HPIi1K?ac44(dLS-!sA*iN+>&@UrC3H@V1HbSSpgr7Gm~Qy$M2 z`)_GW+;Of@PZnr^F?d+Wb+F35MLgO;b3Em%(d5TIBEoEysEC56BVK#`f5zR0S*oxV!C@>&@xZ$XzHWGBhnRzV@s@9pYR!eVkY zMniUHT8K<5eHBF@KTlfm`Mn-`{g3n=P7$!_e%%&Y<0JBSmQDm+K-2GCl8>Mf$+^z z@_wXCq=LT0UG$29+Vue~Yt(Yo_U7=eVq3WT zVY#8x4?-wcMzhtpb%mGqRUd?p9eC5ep93;3C#j(`J@OB{sTA#U2Ry$$>X*9-1y9kM zwW5y?)OQh!7AB*o{QHxv?fXzUs@yyb29rndBR5kn4xPo6z1AlUxb zfAIAv92VnyG^n2Hms`(!KYxEUOF4CMIqMAUsw|rDINt(6XMQBIxsE3jG5b}{=gV}gzR`6>E^+_t|zGrIA|yHK)r;8OoZ zeD*X=i{r1Ab+o@Q?9fn-EHEp|t=}Ki7f!$37d4f$^RKOmGM%O2-tR zQaf=cm!s|d-oY=d`8nV$1y=xl1<8_>VL+K?b^cLJj<4LR*;zC3kjMX7BC-kR_N$2P0 z2=f5V{V!VlhuU>+5ds{J@l11yh4A(71}x~{QsNcGGJoo&&2P3fI#^o+?T(1zK&p3J zt8r1|ja9v!NNwRO-`j0SF^*HJ*Q;TF*$mv_`g)2>JZGEd1R5Y-7H>J7aT8yk3XM86 z+H2`KEI3QEJ@3TgBLk%h7Y1c(TD#6|FXK9IthUGhD_0r1ym5)bmIOZk{6d=MU@DoI z)8f^k3Odx@d1~>l>~wn~`Le_DKzBG6n1oo|8dr8R^o`tK6BIb0Ue{49YKl78bH@HH zg&TUF@BpvZ=$&XY37&0~Ds8RTQ;hY6snez`sl0b98U~vAp_37IkSl}a-FeYAv3Nf- z05l+pue~xM^j=VXAh%)U*H{5%!REsdPSLk$P&rX4V)}4nG{CdrRz3$u@S6{$y-kIe zE#`>?1XuC>l-&tUC5a_-qctCGqLM~ee1giMg|(8k?%=nW-S9H%!I#bx0Tq9bKT%EQ zA!<*g2wdOzM04#~{<$s_7Xdw_9v}%%$eC^W&4M=`_tSp#7Df z#lmIYfX$Rs#rg|U;{np4ssizK2lJzLQ8ETE&{X<)U90Kh)nXs^SzxHCWZA;!tg)Z5 zow41mY%R}YaKq<}^2&T60*cYdJLa(MY-;vp&8@3&i^Tu|jC zol6Y)cpc(3PP(GQ=hw8JLOTjdA}a?S0*^_SYOmtim3(e)`Rq55XTE4}RW-g4#I8>K zUS)7LV}S=30z=2f?`LI5V#Z6B`hWK2`2^S{9~qPDzw{2OG#&g&aD=-(nb^>64Ymv0 za+=+Gum)$Z5xsr(PMjRvIFwNP^XT#S_+be`w|TA#Iig!Myc7Z90WO}rx6o*k$dP}z z1iYEp>^@yMvbmHHQWxD!M?rCU=@5AL3R|F{{ome3P4W8QfJDGIqUcqG!q~w4PPx8o G?0*3y;VEVS literal 0 HcmV?d00001