From 193a4498292cb78d69880f9ef0ad29342efd5628 Mon Sep 17 00:00:00 2001 From: thanhnv Date: Sat, 11 Jul 2026 15:56:31 +0900 Subject: [PATCH] feat: updade workspace --- .specify/logs/audit/security.jsonl | 25 ++ .specify/logs/cost/metrics.jsonl | 6 + .specify/logs/level5/provider-usage.jsonl | 6 + AGENTS.md | 42 +-- CLAUDE.md | 42 +-- Dockerfile.backend | 24 +- Dockerfile.control-panel-api | 9 + Dockerfile.frontend | 12 +- README.md | 14 +- {backend => apps/okr/backend}/.gitignore | 0 {backend => apps/okr/backend}/entrypoint.sh | 0 {backend => apps/okr/backend}/package.json | 0 .../202606280001_init/migration.sql | 0 .../prisma/migrations/migration_lock.toml | 0 .../okr/backend}/prisma/schema.prisma | 0 {backend => apps/okr/backend}/prisma/seed.ts | 0 .../backend}/scripts/make-sqlite-schema.mjs | 0 .../okr/backend}/src/app.module.ts | 0 .../okr/backend}/src/auth/auth.controller.ts | 0 .../okr/backend}/src/auth/auth.module.ts | 0 .../okr/backend}/src/auth/auth.service.ts | 0 .../okr/backend}/src/auth/dto/login.dto.ts | 0 .../okr/backend}/src/common/api-response.ts | 0 .../okr/backend}/src/common/auth.types.ts | 0 .../src/common/current-user.decorator.ts | 0 .../okr/backend}/src/common/jwt-auth.guard.ts | 0 .../backend}/src/common/roles.decorator.ts | 0 .../okr/backend}/src/common/roles.guard.ts | 0 .../key-results/dto/create-key-result.dto.ts | 0 .../key-results/dto/update-progress.dto.ts | 0 .../src/key-results/key-results.controller.ts | 0 .../src/key-results/key-results.module.ts | 0 .../src/key-results/key-results.service.ts | 0 {backend => apps/okr/backend}/src/main.ts | 0 .../objectives/dto/create-objective.dto.ts | 0 .../src/objectives/objectives.controller.ts | 0 .../src/objectives/objectives.module.ts | 0 .../src/objectives/objectives.service.ts | 0 .../okr/backend}/src/prisma/prisma.module.ts | 0 .../okr/backend}/src/prisma/prisma.service.ts | 0 .../backend}/src/users/users.controller.ts | 0 .../okr/backend}/src/users/users.module.ts | 0 .../okr/backend}/src/users/users.service.ts | 0 .../okr/backend}/test/e2e.test.ts | 0 .../test/golden/objective-detail.json | 0 .../test/golden/objectives.employee.json | 0 .../test/golden/objectives.manager.json | 0 {backend => apps/okr/backend}/test/helpers.ts | 0 .../okr/backend}/test/llm-judge.test.ts | 0 .../okr/backend}/test/services.test.ts | 0 .../okr/backend}/tsconfig.build.json | 0 {backend => apps/okr/backend}/tsconfig.json | 0 apps/okr/domain/traceability-map.json | 64 ++-- {frontend => apps/okr/frontend}/index.html | 0 {frontend => apps/okr/frontend}/package.json | 0 .../okr/frontend}/postcss.config.js | 0 {frontend => apps/okr/frontend}/src/App.tsx | 0 .../okr/frontend}/src/__tests__/okr.test.tsx | 0 .../okr/frontend}/src/__tests__/setup.ts | 0 .../src/components/layout/AppLayout.tsx | 0 .../src/components/layout/Header.tsx | 0 .../src/components/layout/Sidebar.tsx | 0 .../okr/frontend}/src/components/ui/Badge.tsx | 0 .../frontend}/src/components/ui/Button.tsx | 0 .../src/components/ui/ProgressBar.tsx | 0 .../okr/frontend}/src/hooks/useAuth.tsx | 0 .../okr/frontend}/src/hooks/useObjectives.ts | 0 {frontend => apps/okr/frontend}/src/index.css | 0 .../okr/frontend}/src/lib/api.ts | 0 .../okr/frontend}/src/lib/queryClient.ts | 0 {frontend => apps/okr/frontend}/src/main.tsx | 0 .../frontend}/src/pages/CreateObjective.tsx | 0 .../okr/frontend}/src/pages/Dashboard.tsx | 0 .../frontend}/src/pages/KeyResultDetail.tsx | 0 .../okr/frontend}/src/pages/Login.tsx | 0 .../okr/frontend}/src/pages/OKRDetail.tsx | 0 .../okr/frontend}/src/schemas/auth.schema.ts | 0 .../src/schemas/key-result.schema.ts | 0 .../frontend}/src/schemas/objective.schema.ts | 0 .../okr/frontend}/src/types/okr.types.ts | 0 .../okr/frontend}/src/vite-env.d.ts | 0 .../okr/frontend}/tailwind.config.ts | 0 {frontend => apps/okr/frontend}/tsconfig.json | 0 .../okr/frontend}/tsconfig.tsbuildinfo | 0 .../okr/frontend}/vite.config.ts | 0 .../goal-workspace-selector.png | Bin 0 -> 73163 bytes .../settings-audit/01-before-desktop.png | Bin 0 -> 103452 bytes .../settings-audit/02-after-desktop.png | Bin 0 -> 83440 bytes .../output/settings-audit/03-after-mobile.png | Bin 0 -> 37809 bytes docs/packaging/CI_GUIDE.md | 2 +- docs/packaging/DOMAIN_PACK_GUIDE.md | 2 +- docs/technical_architecture.md | 8 +- package-lock.json | 12 +- package.json | 8 +- packages/casan-control-panel/README.md | 11 + .../src/approvals/approvals.service.ts | 28 +- .../backend/src/goals/goals.controller.ts | 5 + .../backend/src/goals/goals.service.ts | 73 +++- .../backend/src/settings/settings.service.ts | 36 +- .../backend/test/approvals.test.ts | 6 +- .../backend/test/goals.test.ts | 57 ++++ .../backend/test/settings.test.ts | 13 +- .../frontend/src/lib/api.ts | 41 ++- .../frontend/src/pages/Goals.tsx | 27 +- .../frontend/src/pages/Settings.tsx | 320 ++++++++++-------- .../agentops/hallucination-tracking.yaml | 4 +- .../level5/project-registry.json | 9 + .../casan-harness/prompts/sourcegen/02-bd.md | 2 +- .../prompts/sourcegen/08-testkit.md | 2 +- .../scripts/bash/control-plane-settings.py | 55 ++- .../scripts/bash/goal-orchestrator.py | 213 +++++++++++- .../scripts/bash/update-agent-context.sh | 2 +- .../powershell/update-agent-context.ps1 | 2 +- .../casan-harness/templates/plan-template.md | 4 +- .../casan-harness/templates/tasks-template.md | 2 +- .../tests/phase10-traceability-tests.sh | 4 +- .../tests/phase2-sourcegen-tests.sh | 2 +- .../tests/phase2-track-c-tests.sh | 2 +- scripts/casan-step.mjs | 18 +- .../auth-bridge/model-audit.jsonl | 4 + 120 files changed, 868 insertions(+), 350 deletions(-) rename {backend => apps/okr/backend}/.gitignore (100%) rename {backend => apps/okr/backend}/entrypoint.sh (100%) rename {backend => apps/okr/backend}/package.json (100%) rename {backend => apps/okr/backend}/prisma/migrations/202606280001_init/migration.sql (100%) rename {backend => apps/okr/backend}/prisma/migrations/migration_lock.toml (100%) rename {backend => apps/okr/backend}/prisma/schema.prisma (100%) rename {backend => apps/okr/backend}/prisma/seed.ts (100%) rename {backend => apps/okr/backend}/scripts/make-sqlite-schema.mjs (100%) rename {backend => apps/okr/backend}/src/app.module.ts (100%) rename {backend => apps/okr/backend}/src/auth/auth.controller.ts (100%) rename {backend => apps/okr/backend}/src/auth/auth.module.ts (100%) rename {backend => apps/okr/backend}/src/auth/auth.service.ts (100%) rename {backend => apps/okr/backend}/src/auth/dto/login.dto.ts (100%) rename {backend => apps/okr/backend}/src/common/api-response.ts (100%) rename {backend => apps/okr/backend}/src/common/auth.types.ts (100%) rename {backend => apps/okr/backend}/src/common/current-user.decorator.ts (100%) rename {backend => apps/okr/backend}/src/common/jwt-auth.guard.ts (100%) rename {backend => apps/okr/backend}/src/common/roles.decorator.ts (100%) rename {backend => apps/okr/backend}/src/common/roles.guard.ts (100%) rename {backend => apps/okr/backend}/src/key-results/dto/create-key-result.dto.ts (100%) rename {backend => apps/okr/backend}/src/key-results/dto/update-progress.dto.ts (100%) rename {backend => apps/okr/backend}/src/key-results/key-results.controller.ts (100%) rename {backend => apps/okr/backend}/src/key-results/key-results.module.ts (100%) rename {backend => apps/okr/backend}/src/key-results/key-results.service.ts (100%) rename {backend => apps/okr/backend}/src/main.ts (100%) rename {backend => apps/okr/backend}/src/objectives/dto/create-objective.dto.ts (100%) rename {backend => apps/okr/backend}/src/objectives/objectives.controller.ts (100%) rename {backend => apps/okr/backend}/src/objectives/objectives.module.ts (100%) rename {backend => apps/okr/backend}/src/objectives/objectives.service.ts (100%) rename {backend => apps/okr/backend}/src/prisma/prisma.module.ts (100%) rename {backend => apps/okr/backend}/src/prisma/prisma.service.ts (100%) rename {backend => apps/okr/backend}/src/users/users.controller.ts (100%) rename {backend => apps/okr/backend}/src/users/users.module.ts (100%) rename {backend => apps/okr/backend}/src/users/users.service.ts (100%) rename {backend => apps/okr/backend}/test/e2e.test.ts (100%) rename {backend => apps/okr/backend}/test/golden/objective-detail.json (100%) rename {backend => apps/okr/backend}/test/golden/objectives.employee.json (100%) rename {backend => apps/okr/backend}/test/golden/objectives.manager.json (100%) rename {backend => apps/okr/backend}/test/helpers.ts (100%) rename {backend => apps/okr/backend}/test/llm-judge.test.ts (100%) rename {backend => apps/okr/backend}/test/services.test.ts (100%) rename {backend => apps/okr/backend}/tsconfig.build.json (100%) rename {backend => apps/okr/backend}/tsconfig.json (100%) rename {frontend => apps/okr/frontend}/index.html (100%) rename {frontend => apps/okr/frontend}/package.json (100%) rename {frontend => apps/okr/frontend}/postcss.config.js (100%) rename {frontend => apps/okr/frontend}/src/App.tsx (100%) rename {frontend => apps/okr/frontend}/src/__tests__/okr.test.tsx (100%) rename {frontend => apps/okr/frontend}/src/__tests__/setup.ts (100%) rename {frontend => apps/okr/frontend}/src/components/layout/AppLayout.tsx (100%) rename {frontend => apps/okr/frontend}/src/components/layout/Header.tsx (100%) rename {frontend => apps/okr/frontend}/src/components/layout/Sidebar.tsx (100%) rename {frontend => apps/okr/frontend}/src/components/ui/Badge.tsx (100%) rename {frontend => apps/okr/frontend}/src/components/ui/Button.tsx (100%) rename {frontend => apps/okr/frontend}/src/components/ui/ProgressBar.tsx (100%) rename {frontend => apps/okr/frontend}/src/hooks/useAuth.tsx (100%) rename {frontend => apps/okr/frontend}/src/hooks/useObjectives.ts (100%) rename {frontend => apps/okr/frontend}/src/index.css (100%) rename {frontend => apps/okr/frontend}/src/lib/api.ts (100%) rename {frontend => apps/okr/frontend}/src/lib/queryClient.ts (100%) rename {frontend => apps/okr/frontend}/src/main.tsx (100%) rename {frontend => apps/okr/frontend}/src/pages/CreateObjective.tsx (100%) rename {frontend => apps/okr/frontend}/src/pages/Dashboard.tsx (100%) rename {frontend => apps/okr/frontend}/src/pages/KeyResultDetail.tsx (100%) rename {frontend => apps/okr/frontend}/src/pages/Login.tsx (100%) rename {frontend => apps/okr/frontend}/src/pages/OKRDetail.tsx (100%) rename {frontend => apps/okr/frontend}/src/schemas/auth.schema.ts (100%) rename {frontend => apps/okr/frontend}/src/schemas/key-result.schema.ts (100%) rename {frontend => apps/okr/frontend}/src/schemas/objective.schema.ts (100%) rename {frontend => apps/okr/frontend}/src/types/okr.types.ts (100%) rename {frontend => apps/okr/frontend}/src/vite-env.d.ts (100%) rename {frontend => apps/okr/frontend}/tailwind.config.ts (100%) rename {frontend => apps/okr/frontend}/tsconfig.json (100%) rename {frontend => apps/okr/frontend}/tsconfig.tsbuildinfo (100%) rename {frontend => apps/okr/frontend}/vite.config.ts (100%) create mode 100644 docs/output/goal-workspace/goal-workspace-selector.png create mode 100644 docs/output/settings-audit/01-before-desktop.png create mode 100644 docs/output/settings-audit/02-after-desktop.png create mode 100644 docs/output/settings-audit/03-after-mobile.png create mode 100644 packages/casan-control-panel/backend/test/goals.test.ts diff --git a/.specify/logs/audit/security.jsonl b/.specify/logs/audit/security.jsonl index 17a8c08..e95ee10 100644 --- a/.specify/logs/audit/security.jsonl +++ b/.specify/logs/audit/security.jsonl @@ -146,3 +146,28 @@ {"timestamp":"2026-07-11T03:14:47Z","trace_id":"trace-1783739687-743","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"41787b8b4a629028ae972d8db1cf4ac491af928978e0469269655a140a41e20c","output_hash":"41787b8b4a629028ae972d8db1cf4ac491af928978e0469269655a140a41e20c"} {"timestamp":"2026-07-11T03:15:44Z","trace_id":"trace-1783739744-857","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"8367afe050a5086cac52162ee740dc4f68949e6901538d86f49802ad069e1e54","output_hash":"8367afe050a5086cac52162ee740dc4f68949e6901538d86f49802ad069e1e54"} {"timestamp":"2026-07-11T03:17:50Z","trace_id":"trace-1783739870-1068","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"744ebdf28580ca15b50dd647f69de9e8ae2288bd6267a2a792f4ca2816f856f9","output_hash":"744ebdf28580ca15b50dd647f69de9e8ae2288bd6267a2a792f4ca2816f856f9"} +{"timestamp":"2026-07-11T03:19:04Z","trace_id":"trace-1783739944-1756","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"e806101b2d4b3cec8f28fd45c77399235e8ca2b2c1bce040ab3ed4391aa35af9","output_hash":"e806101b2d4b3cec8f28fd45c77399235e8ca2b2c1bce040ab3ed4391aa35af9"} +{"timestamp":"2026-07-11T03:19:53Z","trace_id":"trace-1783739993-1916","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"5919bfe3362dac3ae263c409e8bde9ea28c19ccb60f66a577d87dbd1c79155a9","output_hash":"5919bfe3362dac3ae263c409e8bde9ea28c19ccb60f66a577d87dbd1c79155a9"} +{"timestamp":"2026-07-11T06:13:04Z","trace_id":"trace-1783750384-563","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"9c44c4098753d99eac0564d83466196e8b06676603197bb1989f59c8cea5cfee","output_hash":"9c44c4098753d99eac0564d83466196e8b06676603197bb1989f59c8cea5cfee"} +{"timestamp":"2026-07-11T06:13:40Z","trace_id":"trace-1783750420-1381","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"4e6dfed3949d4e086a6036a774eb32c32c3a7db28ff2df7964700d6ed1827c47","output_hash":"4e6dfed3949d4e086a6036a774eb32c32c3a7db28ff2df7964700d6ed1827c47"} +{"timestamp":"2026-07-11T06:14:13Z","trace_id":"trace-1783750453-1912","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"b4ab420209da88d5049e56e761583f033a6e3a06dc4b799449fc92742971d025","output_hash":"b4ab420209da88d5049e56e761583f033a6e3a06dc4b799449fc92742971d025"} +{"timestamp":"2026-07-11T06:14:21Z","trace_id":"trace-1783750461-2695","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"9262a241dadbea3d7fa31c1ad0ef8ee1b023eaf2c18031fa909af0e7ac22c471","output_hash":"9879dfe2a22879365df9fadaf0050b3ebeb772adf2f8f6b4890326da09768dd5"} +{"timestamp":"2026-07-11T06:14:26Z","trace_id":"trace-1783750466-3503","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"beb5005900229b0238f883d36f360b0d68ccf6c8eebbee0bbf41c113f2c217b1","output_hash":"beb5005900229b0238f883d36f360b0d68ccf6c8eebbee0bbf41c113f2c217b1"} +{"timestamp":"2026-07-11T06:14:34Z","trace_id":"trace-1783750474-4286","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"b4ab420209da88d5049e56e761583f033a6e3a06dc4b799449fc92742971d025","output_hash":"b4ab420209da88d5049e56e761583f033a6e3a06dc4b799449fc92742971d025"} +{"timestamp":"2026-07-11T06:15:13Z","trace_id":"trace-1783750513-5038","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"d445befd39096a8026a34bd3284860a37e41797b21c9aad95fe18ca084c49f80","output_hash":"d445befd39096a8026a34bd3284860a37e41797b21c9aad95fe18ca084c49f80"} +{"timestamp":"2026-07-11T06:15:26Z","trace_id":"trace-1783750526-5538","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"2b1e37e270ab1f033240271acc714127b9ce72d72ad512441718b0e7d70233fe","output_hash":"2b1e37e270ab1f033240271acc714127b9ce72d72ad512441718b0e7d70233fe"} +{"timestamp":"2026-07-11T06:15:59Z","trace_id":"trace-1783750559-5676","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"92df10583db53f111389bf7f43092009479f63acbc77688b09931ab2f1826c94","output_hash":"92df10583db53f111389bf7f43092009479f63acbc77688b09931ab2f1826c94"} +{"timestamp":"2026-07-11T06:16:44Z","trace_id":"trace-1783750604-5875","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"d5305f9161e6a9924b631099d25bbfda83864774409abaea5cff8fe3b8e7078c","output_hash":"d5305f9161e6a9924b631099d25bbfda83864774409abaea5cff8fe3b8e7078c"} +{"timestamp":"2026-07-11T06:17:12Z","trace_id":"trace-1783750632-6501","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"3e5021bb069709d14b1204e08929822d9d6df26a85a88d180b667e5852c072de","output_hash":"3e5021bb069709d14b1204e08929822d9d6df26a85a88d180b667e5852c072de"} +{"timestamp":"2026-07-11T06:17:44Z","trace_id":"trace-1783750664-6635","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"85b5f71079fbab26d86b21be709e4cfecd9ffb412b8b140cb8d1a1d8661c8158","output_hash":"85b5f71079fbab26d86b21be709e4cfecd9ffb412b8b140cb8d1a1d8661c8158"} +{"timestamp":"2026-07-11T06:32:56Z","trace_id":"trace-1783751576-96","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"2b844ca284348014088be9eea9455a4bb00ce40960799ca974c239bd9a562cca","output_hash":"2b844ca284348014088be9eea9455a4bb00ce40960799ca974c239bd9a562cca"} +{"timestamp":"2026-07-11T06:32:56Z","trace_id":"trace-1783751576-562","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"5a1dcfbeb016bda513d7bcb284735be662d790cf22bdd64d3da54a2f6e362033","output_hash":"5a1dcfbeb016bda513d7bcb284735be662d790cf22bdd64d3da54a2f6e362033"} +{"timestamp":"2026-07-11T06:34:46Z","trace_id":"1f24d39b-bb2f-4f7b-be32-239649137e5a","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"2b844ca284348014088be9eea9455a4bb00ce40960799ca974c239bd9a562cca","output_hash":"2b844ca284348014088be9eea9455a4bb00ce40960799ca974c239bd9a562cca"} +{"timestamp":"2026-07-11T06:34:50Z","trace_id":"4b439015-f562-4848-86c7-05278f67fdac","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"5a1dcfbeb016bda513d7bcb284735be662d790cf22bdd64d3da54a2f6e362033","output_hash":"5a1dcfbeb016bda513d7bcb284735be662d790cf22bdd64d3da54a2f6e362033"} +{"timestamp":"2026-07-11T06:36:54Z","trace_id":"trace-1783751814-1797","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"d445befd39096a8026a34bd3284860a37e41797b21c9aad95fe18ca084c49f80","output_hash":"d445befd39096a8026a34bd3284860a37e41797b21c9aad95fe18ca084c49f80"} +{"timestamp":"2026-07-11T06:36:54Z","trace_id":"trace-1783751814-2278","harness":"H4-security","mode":"input","status":"pass","action":"allow","risk_level":"low","input_hash":"b518b88dfbe9e555e583429e9454e4eab3cf5a6b7e7aeedae2d964794ad7751c","output_hash":"b518b88dfbe9e555e583429e9454e4eab3cf5a6b7e7aeedae2d964794ad7751c"} +{"timestamp":"2026-07-11T06:38:28Z","trace_id":"trace-1783751908-3155","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"610292a955a24da58cf6019b0299ea4453b87ea336ea12b37fc732702d9e22ce","output_hash":"610292a955a24da58cf6019b0299ea4453b87ea336ea12b37fc732702d9e22ce"} +{"timestamp":"2026-07-11T06:38:58Z","trace_id":"trace-1783751938-3335","harness":"H4-security","mode":"output","status":"pass","action":"allow","risk_level":"low","input_hash":"62dd13b6753d71fd098d5929443afe324b0b8e965f43e97bf88d8eddcf797ecd","output_hash":"62dd13b6753d71fd098d5929443afe324b0b8e965f43e97bf88d8eddcf797ecd"} +{"timestamp":"2026-07-11T06:51:41Z","trace_id":"e22f32cf-615f-416c-8148-7d0c1d438dc1","harness":"H4-security","mode":"input","status":"blocked","action":"block","risk_level":"high","input_hash":"b837d3eb2da4298e443aad246d4a8b13092af5332cd49c58a44c8ac9144db2b7","output_hash":"c56dc3b5c36c8da3652796b65c47b52f36d7a4ac0fe60dcbf5632471575369f7"} +{"timestamp":"2026-07-11T06:52:39Z","trace_id":"22155f0f-2095-4c9e-8624-4e476167d6ca","harness":"H4-security","mode":"input","status":"blocked","action":"block","risk_level":"high","input_hash":"b837d3eb2da4298e443aad246d4a8b13092af5332cd49c58a44c8ac9144db2b7","output_hash":"c56dc3b5c36c8da3652796b65c47b52f36d7a4ac0fe60dcbf5632471575369f7"} +{"timestamp":"2026-07-11T06:53:49Z","trace_id":"d70ead8a-1f79-473b-aefe-62746cda2ac4","harness":"H4-security","mode":"input","status":"blocked","action":"block","risk_level":"high","input_hash":"578eaad95e6441e9e3221d3117d11ef179a9c041b768a1de1ac9cc8b8f1320d7","output_hash":"578eaad95e6441e9e3221d3117d11ef179a9c041b768a1de1ac9cc8b8f1320d7"} diff --git a/.specify/logs/cost/metrics.jsonl b/.specify/logs/cost/metrics.jsonl index 27c4da7..688a0f0 100644 --- a/.specify/logs/cost/metrics.jsonl +++ b/.specify/logs/cost/metrics.jsonl @@ -29,3 +29,9 @@ {"timestamp": "2026-07-11T03:05:27Z", "trace_id": "832cc182-7bb8-4666-9bbc-c077a943e7f9", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "success", "exit_code": 0, "latency_ms": 85641, "input_tokens": 127, "output_tokens": 620, "total_tokens": 747, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "d2f690b77d00aa01559991486f7825c7a1ea402429c5638e8dbf2a40e7b6eb9a", "output_hash": "d94f7cb51d952fcaffb585e76c16542aba2f774d64c6d270eab32e7888eccc40"} {"timestamp": "2026-07-11T03:07:54Z", "trace_id": "3fc2c4a0-32ab-4be3-b12f-ca83a65869c7", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "success", "exit_code": 0, "latency_ms": 85595, "input_tokens": 127, "output_tokens": 471, "total_tokens": 598, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "d2f690b77d00aa01559991486f7825c7a1ea402429c5638e8dbf2a40e7b6eb9a", "output_hash": "fd6094f85e823a0be31d54bc5dbecf5e174275ad8b85ca2aa56f58658789e7a3"} {"timestamp": "2026-07-11T03:15:44Z", "trace_id": "d1f5f078-63dc-4f21-a4f7-c0ccab19bc3d", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "success", "exit_code": 0, "latency_ms": 140071, "input_tokens": 2406, "output_tokens": 1400, "total_tokens": 3806, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "63073e9ea949155b9fc8db84dca22a3b8a635b11ab60e45b00c5914c842473fa", "output_hash": "8367afe050a5086cac52162ee740dc4f68949e6901538d86f49802ad069e1e54"} +{"timestamp": "2026-07-11T03:19:53Z", "trace_id": "ecd5d171-5967-45b6-8823-4ec1648d75a9", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "success", "exit_code": 0, "latency_ms": 123701, "input_tokens": 2128, "output_tokens": 1400, "total_tokens": 3528, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "744ebdf28580ca15b50dd647f69de9e8ae2288bd6267a2a792f4ca2816f856f9", "output_hash": "5919bfe3362dac3ae263c409e8bde9ea28c19ccb60f66a577d87dbd1c79155a9"} +{"timestamp": "2026-07-11T06:15:59Z", "trace_id": "d5928317-30a8-434f-83f7-c344d777695e", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "success", "exit_code": 0, "latency_ms": 46051, "input_tokens": 126, "output_tokens": 213, "total_tokens": 339, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "d445befd39096a8026a34bd3284860a37e41797b21c9aad95fe18ca084c49f80", "output_hash": "92df10583db53f111389bf7f43092009479f63acbc77688b09931ab2f1826c94"} +{"timestamp": "2026-07-11T06:17:44Z", "trace_id": "41f2f9c0-3bc4-4e03-af65-b1aff6bdb593", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "success", "exit_code": 0, "latency_ms": 60390, "input_tokens": 499, "output_tokens": 454, "total_tokens": 953, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "d5305f9161e6a9924b631099d25bbfda83864774409abaea5cff8fe3b8e7078c", "output_hash": "85b5f71079fbab26d86b21be709e4cfecd9ffb412b8b140cb8d1a1d8661c8158"} +{"timestamp": "2026-07-11T06:32:57Z", "trace_id": "07fbb2de-5044-4cad-90de-ac87387d74e8", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "degraded", "exit_code": 0, "latency_ms": 647, "input_tokens": 0, "output_tokens": 0, "total_tokens": 0, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "2b844ca284348014088be9eea9455a4bb00ce40960799ca974c239bd9a562cca", "output_hash": "a96d7829c4e1453035563d1e36c0e1cc5e8aabcf18ecb79e0934a54c53df579f"} +{"timestamp": "2026-07-11T06:34:56Z", "trace_id": "092ded09-3bbf-4469-9438-f4fe5b9e3d61", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "degraded", "exit_code": 0, "latency_ms": 9940, "input_tokens": 0, "output_tokens": 0, "total_tokens": 0, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "2b844ca284348014088be9eea9455a4bb00ce40960799ca974c239bd9a562cca", "output_hash": "a96d7829c4e1453035563d1e36c0e1cc5e8aabcf18ecb79e0934a54c53df579f"} +{"timestamp": "2026-07-11T06:38:58Z", "trace_id": "8cb7ab8b-c84e-425c-a761-673888ebce72", "harness": "H6-agentops", "agent": "goal.orchestrator", "step": "local-worker-cloud-reviewer", "status": "success", "exit_code": 0, "latency_ms": 124131, "input_tokens": 2435, "output_tokens": 1400, "total_tokens": 3835, "cost_estimate": 0.0, "cost_source": "provider_usage_logs", "input_hash": "d445befd39096a8026a34bd3284860a37e41797b21c9aad95fe18ca084c49f80", "output_hash": "62dd13b6753d71fd098d5929443afe324b0b8e965f43e97bf88d8eddcf797ecd"} diff --git a/.specify/logs/level5/provider-usage.jsonl b/.specify/logs/level5/provider-usage.jsonl index 4a06af7..7d5d131 100644 --- a/.specify/logs/level5/provider-usage.jsonl +++ b/.specify/logs/level5/provider-usage.jsonl @@ -44,3 +44,9 @@ {"timestamp": "2026-07-11T03:04:43Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 127, "output_tokens": 620, "total_tokens": 747, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 41710, "status": "success"} {"timestamp": "2026-07-11T03:07:06Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 127, "output_tokens": 471, "total_tokens": 598, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 37299, "status": "success"} {"timestamp": "2026-07-11T03:14:47Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 2406, "output_tokens": 1400, "total_tokens": 3806, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 82969, "status": "success"} +{"timestamp": "2026-07-11T03:19:04Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 2128, "output_tokens": 1400, "total_tokens": 3528, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 74123, "status": "success"} +{"timestamp": "2026-07-11T06:13:11Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "classify", "role": "classify", "input_tokens": 215, "output_tokens": 2, "total_tokens": 217, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 6582, "status": "success"} +{"timestamp": "2026-07-11T06:13:40Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 625, "output_tokens": 533, "total_tokens": 1158, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 28228, "status": "success"} +{"timestamp": "2026-07-11T06:15:26Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 126, "output_tokens": 213, "total_tokens": 339, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 12167, "status": "success"} +{"timestamp": "2026-07-11T06:17:12Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 499, "output_tokens": 454, "total_tokens": 953, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 27972, "status": "success"} +{"timestamp": "2026-07-11T06:38:28Z", "harness": "L5-provider-telemetry", "provider": "ollama", "model": "ornith:9b", "run_id": "adhoc", "step": "generate", "role": "generate", "input_tokens": 2435, "output_tokens": 1400, "total_tokens": 3835, "cost_usd": 0.0, "cost_source": "ollama_local_real_tokens", "latency_ms": 93084, "status": "success"} diff --git a/AGENTS.md b/AGENTS.md index 0eed0a0..7614481 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -205,13 +205,13 @@ export default { ### Controller Rules: -- **Location:** Must be in `backend/src/[module-name]/[module-name].controller.ts`. +- **Location:** Must be in `apps/okr/backend/src/[module-name]/[module-name].controller.ts`. - **Responsibility:** Keep controllers "thin". They only receive requests, trigger guards, validate DTOs, and call a single service method. - **Auth:** Use `@UseGuards(JwtAuthGuard)` and `@Roles()` decorator on all protected routes. ### Service Rules: -- **Location:** Must be in `backend/src/[module-name]/[module-name].service.ts`. +- **Location:** Must be in `apps/okr/backend/src/[module-name]/[module-name].service.ts`. - **Responsibility:** All business logic lives here. - **Key Logic:** - Use Prisma client for all DB operations — **no raw SQL** in application code. @@ -220,14 +220,14 @@ export default { ### Prisma Schema Rules: -- **Single source of truth:** `backend/prisma/schema.prisma` defines ALL tables. +- **Single source of truth:** `apps/okr/backend/prisma/schema.prisma` defines ALL tables. - **Migrations:** Use `npx prisma migrate dev --name ` — never edit migration files manually. - **Types:** Always use Prisma-generated types (`Prisma.ObjectiveCreateInput`, `Prisma.KeyResultUpdateInput`). ### Module Structure (OKR Domain): ``` -backend/src/ +apps/okr/backend/src/ ├── auth/ # JWT login, refresh token endpoints ├── users/ # User CRUD (Admin/Manager only) ├── objectives/ # Objective CRUD, filtering by quarter/owner/status @@ -238,12 +238,12 @@ backend/src/ ### Database Seed Management: - **CRITICAL:** After completing backend code with schema changes, **ALWAYS** update the seed file. -- **Seed file location:** `backend/prisma/seed.ts` +- **Seed file location:** `apps/okr/backend/prisma/seed.ts` - **Execution:** `npx prisma db seed` (or automatically on container start — always seeded in workshop environment) - **Idempotency:** Use Prisma `upsert` keyed on stable identifiers — running seed twice must produce no duplicates. ```typescript -// backend/prisma/seed.ts +// apps/okr/backend/prisma/seed.ts import { PrismaClient } from '@prisma/client'; import * as bcrypt from 'bcrypt'; @@ -324,7 +324,7 @@ main() ### Routing Rules (React Router DOM v6): ```tsx -// frontend/src/App.tsx — route structure +// apps/okr/frontend/src/App.tsx — route structure } /> }> @@ -340,14 +340,14 @@ main() ### Component & File Location Rules: -- **Route-level pages:** `frontend/src/pages/` (Login, Dashboard, OKRDetail, CreateObjective, KeyResultDetail) -- **Layout components:** `frontend/src/components/layout/` (Sidebar, Header, AppLayout) -- **Reusable UI components:** `frontend/src/components/ui/` (Button, ProgressBar, Badge, Table) -- **Custom hooks:** `frontend/src/hooks/` (useAuth, useObjectives, useKeyResults) -- **API client:** `frontend/src/lib/api.ts` — all Axios calls go here -- **Query client config:** `frontend/src/lib/queryClient.ts` -- **Zod schemas:** `frontend/src/schemas/` -- **TypeScript interfaces:** `frontend/src/types/` +- **Route-level pages:** `apps/okr/frontend/src/pages/` (Login, Dashboard, OKRDetail, CreateObjective, KeyResultDetail) +- **Layout components:** `apps/okr/frontend/src/components/layout/` (Sidebar, Header, AppLayout) +- **Reusable UI components:** `apps/okr/frontend/src/components/ui/` (Button, ProgressBar, Badge, Table) +- **Custom hooks:** `apps/okr/frontend/src/hooks/` (useAuth, useObjectives, useKeyResults) +- **API client:** `apps/okr/frontend/src/lib/api.ts` — all Axios calls go here +- **Query client config:** `apps/okr/frontend/src/lib/queryClient.ts` +- **Zod schemas:** `apps/okr/frontend/src/schemas/` +- **TypeScript interfaces:** `apps/okr/frontend/src/types/` ### Layout Construction Rules: @@ -389,7 +389,7 @@ main() ### API Call Rules: -- All functions that make network requests must be in `frontend/src/lib/api.ts`. +- All functions that make network requests must be in `apps/okr/frontend/src/lib/api.ts`. - Components call functions from `lib/api.ts` — they **never** call Axios directly. - Base URL: `import.meta.env.VITE_API_BASE_URL` (e.g., `http://localhost:3000/api/v1`). - Auth tokens are in HttpOnly cookies — do **not** manually attach `Authorization` headers. @@ -397,7 +397,7 @@ main() ### Form Rules (React Hook Form + Zod): ```typescript -// frontend/src/schemas/objective.schema.ts +// apps/okr/frontend/src/schemas/objective.schema.ts import { z } from 'zod'; export const createObjectiveSchema = z.object({ @@ -455,7 +455,7 @@ const { register, handleSubmit, formState: { errors } } = useForm` — never edit migration files manually. - **Types:** Always use Prisma-generated types (`Prisma.ObjectiveCreateInput`, `Prisma.KeyResultUpdateInput`). ### Module Structure (OKR Domain): ``` -backend/src/ +apps/okr/backend/src/ ├── auth/ # JWT login, refresh token endpoints ├── users/ # User CRUD (Admin/Manager only) ├── objectives/ # Objective CRUD, filtering by quarter/owner/status @@ -238,12 +238,12 @@ backend/src/ ### Database Seed Management: - **CRITICAL:** After completing backend code with schema changes, **ALWAYS** update the seed file. -- **Seed file location:** `backend/prisma/seed.ts` +- **Seed file location:** `apps/okr/backend/prisma/seed.ts` - **Execution:** `npx prisma db seed` (or automatically on container start — always seeded in workshop environment) - **Idempotency:** Use Prisma `upsert` keyed on stable identifiers — running seed twice must produce no duplicates. ```typescript -// backend/prisma/seed.ts +// apps/okr/backend/prisma/seed.ts import { PrismaClient } from '@prisma/client'; import * as bcrypt from 'bcrypt'; @@ -324,7 +324,7 @@ main() ### Routing Rules (React Router DOM v6): ```tsx -// frontend/src/App.tsx — route structure +// apps/okr/frontend/src/App.tsx — route structure } /> }> @@ -340,14 +340,14 @@ main() ### Component & File Location Rules: -- **Route-level pages:** `frontend/src/pages/` (Login, Dashboard, OKRDetail, CreateObjective, KeyResultDetail) -- **Layout components:** `frontend/src/components/layout/` (Sidebar, Header, AppLayout) -- **Reusable UI components:** `frontend/src/components/ui/` (Button, ProgressBar, Badge, Table) -- **Custom hooks:** `frontend/src/hooks/` (useAuth, useObjectives, useKeyResults) -- **API client:** `frontend/src/lib/api.ts` — all Axios calls go here -- **Query client config:** `frontend/src/lib/queryClient.ts` -- **Zod schemas:** `frontend/src/schemas/` -- **TypeScript interfaces:** `frontend/src/types/` +- **Route-level pages:** `apps/okr/frontend/src/pages/` (Login, Dashboard, OKRDetail, CreateObjective, KeyResultDetail) +- **Layout components:** `apps/okr/frontend/src/components/layout/` (Sidebar, Header, AppLayout) +- **Reusable UI components:** `apps/okr/frontend/src/components/ui/` (Button, ProgressBar, Badge, Table) +- **Custom hooks:** `apps/okr/frontend/src/hooks/` (useAuth, useObjectives, useKeyResults) +- **API client:** `apps/okr/frontend/src/lib/api.ts` — all Axios calls go here +- **Query client config:** `apps/okr/frontend/src/lib/queryClient.ts` +- **Zod schemas:** `apps/okr/frontend/src/schemas/` +- **TypeScript interfaces:** `apps/okr/frontend/src/types/` ### Layout Construction Rules: @@ -389,7 +389,7 @@ main() ### API Call Rules: -- All functions that make network requests must be in `frontend/src/lib/api.ts`. +- All functions that make network requests must be in `apps/okr/frontend/src/lib/api.ts`. - Components call functions from `lib/api.ts` — they **never** call Axios directly. - Base URL: `import.meta.env.VITE_API_BASE_URL` (e.g., `http://localhost:3000/api/v1`). - Auth tokens are in HttpOnly cookies — do **not** manually attach `Authorization` headers. @@ -397,7 +397,7 @@ main() ### Form Rules (React Hook Form + Zod): ```typescript -// frontend/src/schemas/objective.schema.ts +// apps/okr/frontend/src/schemas/objective.schema.ts import { z } from 'zod'; export const createObjectiveSchema = z.object({ @@ -455,7 +455,7 @@ const { register, handleSubmit, formState: { errors } } = useFormmoM4`2o51w&?IP(#$7}3;DN>=A-FW|8k`_aaDpZ{jk|krcN!;HaCf^+ zzWIJ<=H1`StXb>6_1+)1S?e55?b=ei>eOe~u2c8Z_e+2$ZzW|U0SE{H00R6Ea6bzW z13X4TevFLt_%ZTh6qLuP=ugnm(a_NGv2ie;5aB<2MubmDNJ38YoP?B$jF9jJ(+etE zI(i0r;^#nC;44;|SM;wQgdm`xprE6o?`=)|g%-+FwIlYZb{E&u@ zTg|}Fzw7`mmISWw_wR3=aBn?`eGI3u;le3^M~@I5AtOFQMt-P)i}2{_OEyG&eIz^r zQDtOGDxX&N@1-LLZ{B^hjl7=$U?Rd9a1n6H<^e0cIQGJvGx<{C7i`ybHaZCUH3kF^=NE@M4G3K!NDc zKy>-1=_T^S7TAXg-UECab5M%5qn7n}o&=O&X=Vws@(wi9I7!xeI9seH4dhjSlu*Hk zpE@g_q9uM6SeDiat>}$WaO6@v+gB?~C;DMzSl}RbtKSl#1s5B_A8a&HAIGyv%&&t@ z(5CjZg<@2XeL=9xR3`mIxy&W?sPk=?Py>dT&r6j|vBr68g9W>>T$Ax=@!a5Vl$4Js zU;KZ1VUmqLw~1fj*HR$VYOTM^qdO3|WK12?P}_=EZP7bG!0tj)(zpkJybse>ajiWw zj%#s=)FeiBih9(+7@8!2Bg`xkZA7;i z7pdKjno(oIe2;oE0M@WvpBetCp}VYGfuQ#GV=tEHgFIbv`{8!b8frsC$bplZlt!l`AH^4;`0t>T!;s+rBbn5CxJ$Utsl?bd;o z&928s0%{0T9t>J>Q|xLYGwA>h+d{TXkD(cv>^PQnhu95C!1NnR?Nc@tlvs zdJ^Los=g%e(F7EcIhEUyoQY?;S4=Im5C;K>pD^OIki^AtaS?Ez{C)8pIk3JBv)p&M z2TVnJFgN|W;JNGMcCPc@?k+uYvk+C#lCmzl8Baz%}PrF0@s zE>rtrKvn1#!XmZYjN2TvvB;jiW>arpKBi+enU{yO16Jt(w%g4Gi5@o?jI*<)y=^^+ zHFKy`efmyGQR#!vNXL`R%_kHZW`MPz(pI-O%*{kAt~c)O_ki$wz}K2(?#^zjB;waJ zmE3PH&Z(S;8ypO%l#o_e$i{`AGIfl{y#h`iUA;B;)g|L}KkJ+qvJEq25tR@Y={#O; zaK4ydyaz}hhv!vHPEJ>Wt9s2eX*dIwh!ymQwb&6%$oV?iHZ>`5a;?H zB*^@QG9QzrJ#l8fC0Oh{S`77~-#@>-*`@M32r|fTT(CSG9TgSSkLKFX)pt-{#l(X& zbr23~JTe&;GTXk(jPIum6 z9#*LfX-b7azaPDOC%!l)g$rDIrf5p1sNXhl;A-Vwc&=rBZD>0p`wELWixu4`(=g%l z3n!Z;b*GTy8*64ASKHLHd%)P;51S;S^7II!qEhaK-nTPB1FNMK!AY?ZsgCiJ;7v4Nbwci;AQ5)mL4R;dd1al!M%1P{-(&vdrbOBmT+h; z?`$xx&JB@(qbRnF_~)n3HnJ7gaP$R^t0=#FLDHIT9>^WNL+I{FkV_D4KmVmy-$ z;u98miLv-oY>#SZ`vt|z@hwWq%U#sqPrL6&utKveL9uC*RXHMDRHuxO*}^Q8xr8tyqt#kjWnkgh0=fsZSLrM4KiRSjik7ua z&gZl`@vOcYlbZD|{5VsjI;Eu$DY?N9l&H1GP>}joP_iEVX-Uyo6@TPxaa;a5_^wiE zJyn71Z~!BbBOU=V>ieM4EMvEM5~?$7BR%AX!g*xFyYq_vq3D5TUYDr-Wf?M;YnJ~q zFUsl7t%A?Y^Y+M2CE0&!d>^1gXh}U`F8cLsIz$^=W=0z!dR|nxdc*C%-E( zsZ0wquX2}nin^1>YU-%fP;&H)x-V)sAM(d`T}3WW34A+56@|$>>pQDm~Hs~p{hj)c>i77X%2Ldp&qNzPW!mQw|v zGqIbcYj3gUzM3tF@Tc+!ht_4*Kx#Uu^s&u3wIf3Fk&!0tqdNQ!m zTrcqN7z4o)-_P;HXR5xohw_orv?tm32?t;aPr;y!9b_P8M;U$xtNA_g-L6aP*OAGZ zFNK3_d%FWgsn~fb#GMG9W|A>b@P~?m#vlWR>6At3f5RrznxFISJH;jEBlU=i$)c{S z{ChyyJ>bP>gIoA0>h%61(Rh|{vnMVw5%a}U(EEo-;uX78aq@TGSpOp=mT%eu#sN{R zYsIEE!oE%SfRpz^@b~q0?oP^i37Sg0?`YpgYUByz$ogDF+*iw_z8gEbZ&5p{^Q(#V z^DZ+sR+p4e27*1e>^umv+B-vpK;`me`OA{4Z`FB9Q*M6Mxble7J8hWC$-ckKsC#_# z>J5wVd+y`y2Z zI-vZmd3t9-b%*VC+l|wjV_`s&WzkvizV1`$^K&PwEe48FBSb!a-BhG}MyI+>-LjIM zTML-76qaZ%L0GZE3()>F=Aq1x#0<2C?>>RdPE!sGuv5Fi*8xpJiv~y za3k@x95;YdF#&8jdO%U<+XO!8#`8 zZPQ9+wJfA}RD&^%>?9@@J2y}h!J&|uOglF%(RGDf_M->oV&}LP%b_eL4~CJTLrKE4 zm@X*-LNW2m7imTr88O+Byw!p@C36Z*iXFtvM~@X3RJpkCB4kw0o7qL*(RY(Ypcvi* z4yE7S0~~Xk7Pj{)XOKabL#evc?T);wOODu#dS&2>pU`D_g`Zk5BMUTgOLsv}ui=GJ8&AzlI=N+`k z9ZjDT?*Hh?NaNZ+_Us7d(ZVyTW(JG_G6$9570ZkSS~=U+t+qFn-TxM=US}*VUO$5^ zY~BNkDKB*YLoi^ldNS$mrbWpN#0WkJSbmgdxRnbYALk;{o_7_Z2uXJNfn7dLWYwT( zx%~l_=1(4X?%}jP0kYzZRBc|Ddc{1bsOE@V#OKI0YFX{yrMAn+?QK?2sYY7R&;AVj`uSE{ zVqgb3Sh5ASM{uCC8?9?>fWToi zrm?APX8@Fq4r?Fi)tyraZwZW`pL2Cn583@eDx_G&qYZ58FwFs11tZc7W(|BmqQK>- z9<622(ssB;Tsmvo$5#y2UC&N5V}I>0;3spW!mIyY0cKq}Q7`YDoeK%5N_1KA6cTqt z81izB=ed0e{>7r!=N}~{_Fh)$;?CXR3vYF!M{`w?C)ZG$2JEM%)W|O_c@b4&CtFC7 zteLZ)v8hwqhxw(=5r<8ULk)U8T_`yst>T@`aB;fG4{py@wi^?vqL1PR9&s2y{GN;9{d1q?F`+fmKrYUc+)=6@N8B(NFU2=yJT@Ien?Q07a zW#%}Z?Ynx)$DN&Pf9G=A4$J2Ih81Swu&*eLHimxnMX2b5iw%(KgMzNVP{% z-ZnGNjsq}2b1O|A8k^7u)%4sO(Rmn`FPA2&fWKJ zx`9NoWH5MFurg*K=Jij*$gJk9r#L@bgx2I%-d=fD^AjnNtWUIcb5(Cq( z&2ti;<H4mD3S54i^*vF?-1qOTNo~&FrRNSta&s%`O zQ`RpVgu4`#u~fg5p7T+_%$BXhjbDh20-o)mpD=Ed^flIf-ZRp5Q4&RoqfYnHeUv zW_6Viuoh%<8OJC-m%*B<8|N~p##pTdPMoWOcBqkeyoOXK<`Bp}k$p5j*+<~AnwigQ z20IKmAw5wN*Aa~K{V9Bt*FgKOu@aXM|G!Qn{Ew-kQa4@BuM953_f%3}8kBb&;;>x? z*jPBl$-J!Om(I;9u(9`$P9i5qsUZD>30b(c5TB^VtaozKeVG2Mc_Fb?S<%|PC> z{&w&TuwRwZ@hGNLlb zGVn8DMn1)|vFTK#5XYN}C1~?q6U2|T?@%IEW-3>GL*)Po`-1eL;)x5VTki>ydMTMF zbVA7-Mq|N1&8Eav+9Vh8oOzuiT%)ap&?11V>TA`-7FAx{%zD4hPj8u@OJu1iiTfi8 zGg7Hzv)iO%^tftG5uUhlX%4^o5`~?<=*XO$6)yC?YeKc^h$$cIVCony`ydwTaOF~z zg6H~lN~$ie5ZirF6!4`q56A`bffQv!0q^>?rigfOm}we4E}2j9 zO35(t7-wz2#g3oa%cs-U7F$$QlXbiBqEz5^ICqCwjj_KP%6Z-v>z&_R`;sL2{X{oC zjqwo=PldjTf~LI^L^gIdJSDFQUHx7EWI`DRg$=gblp<*vs|&BqOTF@1J?rR|m7|00 zzA@|(=`B(tAX60abA0`P+ZvsEC<9o)+6C%Z)RdhHMR)3=5u{lGVhTHkc;rZgEry{S`zvEflw4y&SA z#ekoQZ#5EnP!DxP`2a=X1UeT>c{tk&cL+DVc`qWZ{pC|kausU9)1Z9smFM{ zf0dcmvcFm$hqZVrBjU5zqbEG3RsVde_>SYomnPy={T@JkCrWreWAIlFXu%RP#hw@& zqfRMC+{Wj+mlIcc0Cx{PM+XG~nEvrBGs*fRFlN zm^MJZjcpB7UzaUI2>pr`=RmlQ0JiG*Ie&=D3WR+g6Nf~4NvzgyrX*4{P0ArLj<%B+ zKir_Q+-2^Uv#F}@8k6z>=}Mq+-;2oE$&JpHu46{zC$jPao6z*!&_~h>6mt+_l$SCD zh9hcSs^m~LK|vy0ViZQ=Cngv%1-Xl@WUM_|1O4DGwy@*%G!hW;OZNqei$sknUc)c$ zYUnQpFGh2m-*)lxRSZs0NYN00mGh&u(*t>I>73>aQzydy-AWi^FT&4z$H2rr=dK}i z+3{SewfT&#ym9OvpeGR#J*K(4X&PKp!9+TczUY?0S#8eCusKBjw1n5>nrT%uqhcp3 zu17{0D{59&tV!P@1&>uhN^`w7Jm^5zv=sI|tA12jXX|Hfl(DKX1(k9)nLE+<^lHh} z^Kx$O?TqSh>zB5&;a1JMrnT27E>{@@Ep^P!xt7kK)SL@QW zt5lu!ibQib}B!gMOu17BPS1z4iUo4um!ux^X)!MLL*EH@vTzEtF}!04}-JX zQ6Q~7ITf#fq%3m@^QKeq0a`y&Ds`Z z?KVU0eh$&qe$eKYGTC)TQPx%bNejWL<+1T4FEZ)DzTU4)zK#KbbfJqT2wJ(%5<{lJ0*j~#BA$o zDBr>?*gN>&r`!L>IQd$wG2EN&JU*_Gxf6{ALvqx5hw&3%{+-KL_@z zzNLiUdg_F=V{&68;J0W8k7|15SE2A5?XOF#cj?N6@S7;=JwPS25&7-s*EXxc!BlaC z-F9~5Gkm#Me8)wasA2nLlOj^iDb9KP0u9@ZvM=#JkA*(Zs2{8!Pa$7$T*&(J89Q0y z_Tk^mUwg+zr%e9R4nMno|4a9q&yZ3qhwwj$cuLOu4S!%zZ$o6*m41Z4f`el?IQW0M zQkU?`zC@f%Oj^a!+UotGzGeMI$Skkv^(ho6;q(th`6J^gPd7!y_~Hw^&@m?Mg13Vku zH{+VBGQQx;BN5Kc=LW}0>2i1u5v7+o($~)u{pe#7=pITHBF{v)9;?u^DvkHnBFlpZ88)IRvNKU)><>jGrm7$RB_JJdIyqWM(Q8yz9GcJI6ZPoVTDh_hkcwPHJ|xY{klK`vxKp5Rin~g&QC&D9gI~X%X+ApB z9Js^05nuxbpYgvCx>X4FqAx7PYf1{y}jJR(nog;Kc8CML6&xi8->L*H=8>%RKM#(J ztyt8Y9iq=zr08-OSh8{FcvMsf~x#=EA^_@HoXMMFC#`{3X3+S*8)Kok@r5`Jrq4IxJ1W>b%aE8++6^+PzUvl5A(gDkQ4$pKQhBxcS`_^elKUuozwlcy)1m zKWuU~Sm7L%)4ARQTpFX7cCX1`cfWI?LoBipQmU^&nMGiRx8u9OD?bw;-ds_66^W^K zl;Znuz^{yJECHRPLtJ}7CO=)lf^7S1rtrupf~HB(DgzPRgd4xLRr?WE^YdEV_2P__YkqY$< z9wdnVY6fb1U*ElNH>nlYs=5c9-!uopIU8sRC_;}Wsu!ErZn)i}*K(|zz56aK&sq4} zif}1DAC3J7%D@9fK>Xj8$9icwUH>ENi5p#?!lKtbApQWhrx=&gbbAkASuUSz*d_SG zv;JF4#@|{5Ky5hUm!`A(i$`~)LOn+#)y>ThRpL{YS^ePc;XeOMwnqhcfB(`OD|Kzd zJXZ*3?LokUF?4;Bf2-4TNl=BWmt45J2PFMgAKnO8&-0*uAH7EOmp72q{ci_6$X$GB z|Bt`Rt>KPQUrV$0{;T-{ZAAnWK}SPyd;W6FKNP_>eS%-!OxNz$R}VbGnrG+dC%=6; zM~h1l@DEF@*8}A*E&UA3DBnHGclY-vPIP(t+ zcw>JP-t5&&UTFk2>Z*j37r=wEOFq5+uMiU zNMox1Q^j=;5ADIQe<2G53i;1iP=zqo;;luzWq)@7^Zec2LwDGa1MkFwpx-;G+^mTA(f_kiDWS%lm4H6lbW z4QHEwH@oMkr`r3EIEG9LpWly0aOrS2bMOCY<__&sxCQ@;W%()2>)(VjxC?umA2gml z_{jB$k>HmIllvb7gf-6ok;Sn5;shs7sP6XqFQ2(P{$aVpeF@j!RsFvCFZ~ZZJHH3O z$?w+uT@fy9`w!uUVOc}q9`G-u**t^0VDYAOcWNK@yPrSK7B4;++4reU|Hb~DM%5n~ z#eIbHUbhd9)_Dx?H1DI1KL$jvg<3UxJ-oBb2m}d2i2pp&^#ncME|zGC=rVf6nICI+Fl<$bhHhx9Ce$(ejHZq?d4zn zNoxOxq9I4!x&XJWYrp4Vf_Wc%Tk}_)8YbGOANIY}&sP4jz@vEgPn}k{Z#<8htDiSN zsEuCpwi5ArXfQJxYl;oz{GVrrn}1kZmLEvh|Bx7e9&}XgxY#yIAMmG;+TO&cr8nAN zJeR!SJ29;AFCVTlyOPqvxZGhc&TW>=C8x5ws@_FDNZ_&5;)}LxN!-ELrfWJ4M z#Y^v?_kb0VZc6Klt_?d%=7Qk={zD6)t$$E10*-Rze^BnQTco!?W#jhenTTKWj=jnC zLq*9PqAxCwAM+f3IA5Kf{l-=Q$OXfy^owuTR>WGGJ_DUxnn4K99~VY)mo)isYlN z99}glsQ?||-k4?9hOsVc!>E-uD=i-}m7ziD5VjeWa9HkMJ(p9(4EUTefb@HMu@%%6 zBheAEWG8$>J(Ar93?CiPwea;d|HY#`^@f3dFgwLII_yA@&yE4ZkwCt)j)ec&dm*_& zOb9n-JiZ@+I!4BfZfLXR1Sg2djeJ57!uFY%k;c^K9w5U+hcc`t;q7;u{k?*JLm7Mz z@UxWvI%qi3IABoATUo@6*uXgTc8xVbS0YHC8*&TYJgc{ji>WDvI27ndwkLeBMeg!h zOO*vF8rCR+Yt_3H_Cmo9mQY(8v*5;#LL|KCDAXlh$IOuekoM$G%G#8yZjCbhD+1jY zM)K6|lU`9g8?xoem`ew|4A-6Adb;XCD$aB7ymC?fL9iy`q*Zj(nkfxX*tR~|A%qqJIAoBj^^*1AjepepoRg*P>`zc+(U&I z*|_TH&`^*KG(lAEcR?jc9Ud>3>+AZrrT?xk4SWy*eW>5#kKd;Mr+zT~-=d+*Pthr% zMFjt7k#NF8Lx$F<>$4URE~}&O&_2=jZ>xQZuFqNoSBQsRBggP61e*IQ0rb}+sI5c` z3jK@>r-0fdv;#mol{5cJ={7gJoFvPhi2I6Yy7q@K^iU) z+A98F>6eE}XaOIAAa(tx1Xct#MRJVDaKS~m8ub3^l%jGh8D8jggx4FlYTh)*sYD~* z$O?a+x(O?TRQeP-?y5Xj$&N=`m~64(rXb?<{N9Kh7qQ#Xc*9Rn?Qbap*2?m%)#6( z46V5+K7-*}P3>&;YQ9z~`n=Dt%#4fj0~5an9KT)ad+c1y z$J`=Gq>)vmrOfB}&MdGvywieGXQzH1j~eBsZM(`bM?w4)N`@+AhJNg4QEb7L$na?n zFPgX$g^Q+adaLBTfAgik_<5Q9SSp2aqzt=-U;Lit5gB>< zF~X^837^=Ff_|XHxf5j%c%*ad1DQ_VBz?2Od^*AVWS18>k1!-CdNWZmRWEmfZEd|pebo*<9;rH0#duImXIVjw#XWrlWPX%S?l!m+$%Y0Ktz zPTX#IB&+87lNRWI-=w8DMY+_BZny_D=ye=8-$Hio0lz;Lb=i5oW~^|0cj!*ky7F&% zN4-H-Qxou)q9_arxTych4%?j~98`ii^uRrF;2 z)%A%qgmCotxiz^J+zGZSW3a&n3@cF@@0s5D3`Ai5tg-=z`=sJBZhdqZKMR3Uy(FWm6(n&Mp5ny`I$n$s~VzcDdadH+Rh^F;QYc0m5Ue zs##+v_$(Kfs4w_9c7%VC@szLJj6~YP;Vy#ebMN5|EnX=_Kqbgs!~>?A%G6Xw8c;Sf zV=~Gg_fGFXro}5o$TMGJY2i|_JjukWcCxZFk&ds75VQ9C0B~H0iZQXR=;>vq8~5;B zfm&g3QP~XhUW1}d5m?h}ZKR6ulhjph%|@Psb4mkjtDbxk5`H)~)o1D($G_VjFdFAm z^pvfgx5bHVQxE9h=0r7CcrKsPurt^%;n1uKGcS;QeI|xCcPZ-i?IL+G@vb1XNk|sQ z(5cC{=fkXIW272rjyBtqiRf9_&kryP9mB10M4uii8rL&CH0jfj!pd@xi_~=eSQdoj zEvcg**T+{BlVVhkTL#);nC#(`>e&rcv8)N_l4J~Sj(FCP+_QrL8S)B10=F%In zK)*r0S7HuJ`fegvKV@}sVunxR6%odMR%ad>ROtpQzDu)gSw^mbQhZT{>+Eb{xRa0C z4jikJM9Px*WM!3LTMW=G*==Wueq5(y(~Vh_|}9`#zcVP&39sE z!KL*fJ#8^yB6886r}jg>J0XgT z(JV71&b-7XS(!JG@>7|Ia8_@^$Yd+p8?iYGQ{ex(D~moeR6j9hgf4D)f2 z4T63;X1A5&a2sU^)L4=iUV`!DkdNWN34Z++zTE>D*`3qQL#MrPo|n$2JseD7q4+x$ zq<Es%ta1ZxMH$*_HM+fYC?HyttqU6prEY=K3WNXj+FD{ z|4@jUGB3yvZiy>-p$wVK%O)e7+d!xNaiOVPGGd6Q# z?$l2#jD4)JdD_sduus;rmU}f7q+3wU$hjM`E2<)W{Da%H&wg7af@v)#+)m%^Jb>@a z_&tg?dmrtQ|$1 zI8!YjRk$$!9z~pBvo1Y4D*Ur5ZXm8{p1%KVTLLUcb!*!ueOidcpzoj!EGLK$&&w?D zk$>0Kq*nHUia*23Mh2ttpl7K_$hUsBi5U#;oIA5-pmuPd*NLL8C!iiVKC1d|LO3y-m@?O(qK>B;8>Jkr%L>zj zmauo(uy)p;w#hd;S#Z68cKoYx*N%;j0#_ z0eu@4119n0EEz1IXVO1->{DF)kGMsHz8>znyW+>SNqiK~sSBndE}cfhVn2HzQ-B*dgI1uKeu zbZ>9Lg72EDf+>B|x@;=M(!}M16Km?@AhZBmGbCSDDb_0dN!b*6#O=Ia3`QBoV%dg< z6$WVplC^{j%jM2Vj-(9vg^n>NLziVTxL6`?^*3xD7xg(eD%!)PDQ9alwzDxcoIL?t zT!IrE+$1h(OhvpF&qigg<0e7LP1oNL5sb^0;H;y<5O4c1NkUO`|dD9j(o=d&dFllNd7kiBQDOJN>5awE8NTW@mn zN(bmf!X_`-`NqJPUDx;5i~_sNPZ^zxYnlrD6J2HtE_eFUl;wcwHskem(-D2v#`2|( zGHzf&qu%liql4p!s3Pf##oYQP%@4emfOUc@^Tfuinqk@;T;Dq?&lW}vAp;w61@ z*`7C|lz-c-9=F@RF&2*nSoei96{pd+LahZ?_&Nfk`G9BX%o^6lrvgPL>8UJA%znlH`fFMW&}-T<60FRVlg3PImZZIOXjd3-YXO>7m^drct$X| z$f?~nD=|@>N5ilHNbPjE$Dqkn{c5+cMn+6&h6o_O&i>5KhW8xGH7y5RBkX;jpT`fP zNv|{aFmdVDc{4RSo6nFRK+eT93QE2UD4@A{tcX-oAg-Nu&~YFIdRZ|U_%3X41^0&s zM_0Koc|sF6l)=EP5U&@_&^=IMc7zDAX%XtV&d9xVB@DN)O;H03F0#Y(M7 zM>$U(79U|<+e}1;K*q|!5cUEYsD`sfj>X_$Xz6o3o{VK~SyNRLUlPZb&aaC%&z_0$ zt{tar>FJx6&a+?xE48=GyEkgX>M;aeH<)()H2vEKYPA^)?f0xWqeuHzd)vk?3qlo! z=8F+Jr>vm)SnD6dYLJU5I*U=uws$Auu2Lg(Ww`_w#KV9hiG%k5%!Tukjzf^ukri9D zgWcVl2NpXpMK@$yO0Sn8-%}N2eOb!SPPVsHR5xuk8CW_c>jHf`$~1K?76u-x~%A)*npg4^{(%J@Rfo(`VXxHb%uQOYBYGv z1rKEsKp-`Yha`X+e31?hm#7J$P&h2N!qWf&I*iEhDD5G@g0IJQLVi3%LCX)J4LpmW zuPUMX5Wv9K+aDe>34et)@Yqb>6YW5ES=0@_qdTzVb zuf;*Y7mq{%N220?&e=++Rn#nhi=KXz{=c6lJXPHIkg zUg>4q1#Dxzbi3GJX1i8Q`n~Gfkt&AVJ-r81TsHq+mDPI)pHis!gFw1n%WgHH}{|*J*m-gAGAn zIprOEeC9r}k!xH}iJ8y5KL~2=Ty)OP4$0P_e3Vj#S;1TLX=Scf5jDxZtR7?OOg?;? zeio#{foV5DJpK%4&^~4IX9-J^s9E$Z+t(?=GFG$p&Qf2uI3CCzY#%gp@oLt* z8ND8%;v@+qFH8MJa($g!zX;ji55oH*ui>fXfLi|rIl(NwtQ75tj&`Hv1T&Tu+H#cJ zr>$K*$AgbeGX>W|m9}%+o15=B*hr0B%$$Q=fn9#OB_&{IKeIF1TW81gIuydO@z0#* zrnW$!Fhrb=nZuc5_#}xu3I55wA@ign+TqNaLm_3Vn{&k%X+hgmn70)ka+^1D% z`J50+hQ!I&M|^?t`ipVujZ+%jEFYY#>eAtXCWz-cIb4Vkm0^x|7dxPUp0!u@k`t{|U_OyR+MkTI+5*&#`+NZrg@VGU%GQl&P!3%>Q=?g2OmtyTQsy**v#xb zk*JG}iVJ#d!moq2j^>1uWhTh9n>{dnMlrB-4=`dR*2K4KVK6r9)993b{^L?&>1plZ zkcwb_(}nnj1oXgL*3>gK?(4bv7^6X|u{o~fJjthhnx?Fb+`5is=cQApI^8@<@aP;Y z*qt;?7EkPGp=Iec)u`H7+cq~w+pEf%e5bg?xH=B%ib}Q`UYta-_K7Z^dq9W1wzUV$ z`f(E~LzRe$mGT@jLBEFrlZ`E{0#4-glAs=94Sg58v9T*@8fumFS;U7M0xc72QINWL z58IHUq?0$zIJlqG8k}3L8RKVi+c&LfJ z!E@_Dgz#Z}L`9?1Bj842*1)P&tgTrH6;^KesT9HdkP8J%^t&RZmFBYn+D8twWd zl1lV^ndQSB+lBbFVTj@^F&*h*b46~;B?L1Pq>Jb^@@O^}9$_@!Jq+6axr2d=Kj&r zFP+PApI51Cr*{E>d<*CSWVh0O?+dKCon5G(mD@PJOqiE%2yceS*9HIJJ91DP*8==3 z-b*m~W|t@1O1)FMmSV=|-V-!#48tVP#A}u6eaC=7hk1OpCoYF$$s1^WLAr^8Y0ISL z;{qbf40%=A?EG3av+t;kIpNvD2uV>royO62(`l@_g9uj$bXi%AZqlM;2!jo1>j1w{D7W^E>+pe%G`Z$dqex3Qtm?U6*5t1X zVkLU&+<1q>xSCIMj~Wcx2WQ82J7?;$=cBE%B5W~&JDd2Jui*>*{WFqV^PCF~FmjpO zmCN2!^lCWhk^9!e|_FZnmtnSlIZ?9DT3tk@YmNjtJcL>I%Ey0|t zXFRCp%&kCQMq7RvVnwN&A#G`_9d4YvsOP$H!?qQ=d92R9yXh~ZF1_H^(xk?*4Cnb(;@1j!;&`K$uoVnI3SGjX}LqEsWr|3lZ<_N#U zenusv`>mib3??6Npz8>o(Mrklt(LO_bLtP!d^B60HM{pOyQZ|8~Qg|jCf7WtbE(tYMAE3VInAZ*k>~sNmZ#NbzkS!--&PV$i48D z{Y>E#cBNvcvymz#WeV@q>NZmIqKSht1FP)JCtNEpgbr~?$-nUgxlO~&Jt&(k=dQ=O ztq;bF?cqn;%sebt{E`m^%W8~W6v{2ngZfU&C#7iOHWlTGp;0FkCM9X0nP{fizu@q66Fh|PHl|Z#N;#}0wEPDlL3AE zlw2IiZ;A_*6pvOj1-Po7Xc%V%nWx!6Npi^S(?+8B;!Mhm8Kssi%&YX$+Vmz=MfY^QPj*!} z+HSwrQ@eXF zG=G}@-cR3S0ksOk(4WZNq>C_D)3xGlR9Oucs1jS6GHQ^JCy)?VW-F;uj;mak0_@k? zQ#|E9H|7>-y*}g6rvrn^Q5I_^U99*3fF!-T6ysJ@3V}c zK)i5$pVdbAgfj(ZRb5V7j$e4TpV?+!W>iX%v4JtkPDu@!3}^4+ zqU669TOAC%6MNl5^;zgOwye(u*L$#93S_3+3UqQ(*6%F|(<6C*#e4bz-;@b3#V&D8AnxITGxr@ZrY+-P5;oyh7T!tyI->FX4e+Nr7 zFKGbodZeOOS+yHXUul_AC$et{OPV7TwhU$c*ogT4UKzfYdhS9HVM&)ALjJw1IZKM; zF&i}tlFymWLh;)lO?_n)BxiaP)aSWio)GSf{+LhNU${6o61uw?RhDtgoGkP`@apx? zJ~qaa%mgN^#rl)O(e<1cLM-^{{bRnA1MD!0 zm0ai8*e#YDr|HsgN&;~kr>nLgl~oJLY?lwbLN`d#BW{GDYYz-7ziqi zOY=HlNAwS)5`v5il+=(;`A@bVeDWGE`MO&XO(OX?c`FBtiKg+=J}9%$1Y7$yt%KsY za@6IGpV{{a!=-Ww{cKFr5Hpggx2#;4CLQEr^^AmlZS1$R)&4MBvtvXly>*8s@Vg{a)n4v^cZIl z8d=4sPLqhadhYTFeq;28_7}Jceq~ zs*ib?Ji*4l>TLKdvs!&F8#v_h9+s~&vddPwV5a?9!)WBk&61>~q>FE9gR{t09rwc1 zGd*zrfxQ&-Si2O(h>9#lE&T$vs0}vY?1?Lr2xgMAh;Nb+q@%2&Vx;lVe1h85)WF4V zm&Qi#$tnyOUZOmrRWzYqm~L3$zP`z9Pl8xx#{ntOcNS14>~t}J%^G=1T# zr};sC)f6f-F+<_3G9==GU^PbUKqU1OsLy5R!~Oir+*enOrgOe&Z+Egvrk-Mp5_wd{ zzcX@v7cnoW<+4e07mNIDQSzkm7ewZ?9k6GBQY;aC;@M%A!%vkD6?3UfyB+blbk?7G z(zcNQ=m(N2Z+0^NS8X9t4Su9%!>jsS3X!L8`zMUQ3)rickDARcJj&0>zYo0ZAqCEI z#U!G8p5hwH_~U;E2lbV^kABb3A06Qf@0T&FoA)zPZfV=^=u6v=Ed8Y0>v5GxS;RLo zT7L7OXtgY>6KXc~0(T}Qu;WlLG=@)|7w&7-HDyPOyi&>3TOFeB)a!Q9)`IaD~mb!DfQ)4NWb-d9XH zFmq>AkyIC66BQl^><0311;xdzefz+wA%A-3N>XxM?}GWQ-iK~qeY%{ui4QlZ6V@Y@ zgIaxnm-cbQU7VvM{2HYW2_KXZbz3##!TL*=su?%Sl4<%|{40*>>5eBKpm4VQc^aXY z3>6IV2DqYY?_1J>e_A4QZ3tke&&Go$=pK^YcsR&w^&|kE8yN9N^vhNakLbQsWEbo-BeRzpvj{Es|g5V)=xS z4=vU9a`I-NVMC+8K|j}cATU_(BM^Vp24b|#K&Jb@7$>~!C0QJveNrTcj*WW_@hv{B4HxtL+O!RIE65btDcCR07g``d4j-^=UQU~&zq$3n{?Bi zIQEXgKa3oY$u=#6nWC$rZTZfGa2~$Y9_dyUbCW#mhPb#H2?teI{WN}An3G8E?j62D ztVkkN64UUO`ooFUL_>a68!9b)Ys*(Lq0MPlvfJrtU3Xxg9t56|aw!;qMa@3HxD<5z zR;BNRpuo5>(`OHkH1Y_F55u8fqrcJ0&W`dr(zYmlSa(~Q;1|ky6)N$9g1(z*m>{tN zX7@vz)mV~)nl8PNR<8rRH`Pm$!%+-WWA zq!M1CwUy|b3eHXsAH!X8-pY8k^!Z+&f$Nrm22#)@Z1ahlhoo)F!%%y73&^cP=}KKp z160P@X@3si+f9nOtr6%ikKDJ1I|5Eac1Y7aHWPNnS}K-N5$Rw`&JUex;ut@UIHfI% z+)pXD*NfeQU?C}EyaG>?f8E2BwT%7Fs08S!{w$GWZv8C z+5W?IP*J}EK_El;L`=L0#1g$;3ozAyyNs~3R6uQV1ij`rpHKqeNM|ORpNgh@v7DE9 z)Z$NN-6$#SWqfcjJX~o;zJ7mv;`bQ*?6X!M2xN>@3Xx}c!vkNXd+LSt(QZoF=%h|0 zF`uqK)ns$t(q0Bc_`rfbS@(&2Wi^!|>m1(79~kdG49el%z=ASH$(!j0{{L98&W)E^!qd&nPBF zqd@9!7n1yrZvYDs025(fA|;Up8~uhb0?0{VtpkE4!18syY{jEtiK|j7Y=2MjbK$%IlGIi$h!>H8a2_0LD1IGiZq#aa-wTAA4l(8(f8k1><2G;;9x8ENa%`wM#18989 zqL9fS82gr&&wgA7gnV96r!5WbI%t(iwu_RtIC6k5l{yMWNig`#KHu1s)qWo6l=0~M z*Z-Ub?|%`cGB}&=o6tjE$oFP@_3qo;9f98{m6G`;sWZi^5i1~g0F2)9y?wt?9|Ly8 zlJASD?|raL8_uCY&DwCkW~MzMd&zAM+$NX-)zp?X1)Ll%8ebRBH20x3Kz8bR@#p$sXt2s~>`h`2DNxSURLgytu(OIk8)o80e=6*h=_}ElD z{6kxH10*PA+=sGaee-ndX4VMBM;9pqoTrILhD@pqR)qn^7wkPbqa7w2{TJS|f})`#W_@w6S!0#J*Gtzmjmm+RqzywP3jHOh~E|pc|Imq%A06SUfMNCp_T)6qJ!du zH6_j%YMv#jD{63L-zw$h^}ujZ*l9L-S8gaT4>fPY;;9$PJJ9PJR};pE4`HgpR2yUBoB9Qe}-N zw-xKBa!q?yD3}yr((&9tU$4io^3&ZvFg|i_-*4=|NjrLvnSA=-hnr&&$)n0)ZQN%r z%yTJpO^O;$MLBOOMu*k$IUn#J${E~YV7PT5R06J90PU44iqm`&CsTfrJ=?9pjI5Wm zeG%$iJJu$;XJq=8I=^Nv9ZHqSPorJA1CcHtuaOz__S|3#Hm#@^H1;dVg|b>fQ>{0* zm>=nlY;j=0>!uzidfT$VQy)pMp>ZOWCC{hoKZ$c#+nY6xXw2B!dXbWpL{-fUP)l$M zp}Lk!$`@FvAyrL@cC392mJZ)jGvr)3SwyIt7lZC+_F$1}#75)VhL<=YE2Mgprg6+0 z$EU}KkVT`h1lg`%<2&5xzrc34xJEIp`q~dmjknBUVH9<}bi0J~EqFn*CeHBl#}$2w zOn0*3?@Di{iM?BVjU7$iha+w`=Cjso&0*`5f(;kuuq5Kustr%Z;iEJ4ZO*OI9aTD8 z%*cny(Q?{9as`RMe~-1r??vT%=0pOoFA}G92uj#VI3(lWvBz-pAT0HTJIZP~>C~UL z>nhl0kEs%)l9xMr_QfE{9w+(opIYrp67!D+hqRkAo~BWoySn*xY9e6^T42|(5LVOS zEbnkRgO@gW+=6J6-pNGmT z1-B2b7~u!o+qzhclQUV*jqsMDMu)z2so+QSbB(1@_zHm@ll5$&7L*BSrBV9-nu^$i z^CBS5;Y7p2m&&?elBhb$JIoR+bm171aYih^*b%`~D?EWzS&U8>lavVcxYA6>`xjZZw$O?l zh~QvqU@CuRtZK8pwR#{{dt6*?gGiFqt?aLvTSSBur-$d{*!QMTC$S1M&~d_p#My^7 zxF->Yq{`bFd0BHUTlx)e7P3H~TfP!r5=!);yESHK$m&kdkgGSd>Ms`S4P#G48nb5D zn2Yag^~&;TXVrs*;k=lE>sQJGmz5XW0$n4s-4>sYzGn?z-Fh!an>!NmD$$3|gBGy_ zGTefs=X)qi_&;MI7X+3Rt?6RY`-(Iq{F)Miwtj}hA8fyi3BBYPVJp}t(VfNFsT3T{?WdPjH3}yN2&zA;&-c<$z?0iv?+E&y;=s_s4TdM9eaYs$Bn9J znBlw#-0(5@Zh6>=om-!}+${F}OFfpKFO65n+{ZM)!}=wKK{mTLec0KVKuR&EI2!O=f+{bJnv`IIoefB7_%?sX68os$NntcVNvkPS_w)l z?&hZzm&%{#MNpn%6BE~5c)W6|njKbEG|x_l?0za&JSe`rq?O9PIDqk5Rj#y-W~#x_o#y zNtgV%)iPc$$(0es@02-fD^i7BH3j6+g>!zi+*oiZJR%Vka;(0g$Ktl;6X`=2g-s)R zn}sg6uF?d6NauP4bco~%9PmMt<->z9>@7zoX*+kNHe#loNPe{AAMx|_aSfFX2?<}e z(rDx7Bpe{+q!}{ZPR*LLg7#R%o8FXXU5rXMvLFBavIt3@$ItV`iDL2a2Px82@! zrps0w&LCfgj9~?|K)sN=TXQv@Wz;H65k5;iDjPM~8B-4IoAkTJG8>wQgDM6gMIYh6#m`+NJk$yzfU2nz_?CW^^#rYJocrtBx5u0w6?zZYFPq}@1_ zEGEE0%QDg$bc|~_Rx~nKG+H64q8h@kZ;>*HRG1W6+F2G#E^-=n#G|!sKthWtP)w<0 zso|&Ii-N#2m0V>#q4I1v1Df(F&yKQ}rC~s5fr+GQJ zcMPdA&UV!Rb{&WSK6fx@o;A75BUhI_3PTRHK6PWv)N>Kh8GQok%;@(Ihwt#bw3jAao`NaaN3S4!Ms^yia1%wZTaT0s4?pGaQl#T zrp4&kh%#GZ`T@?(UsaRN0~AZalT}1JB(7g94VCpKA6Rzi+c8A6@fW%;9?&MboiZ&f zy6_>VQ8lI@5UtEm=~6$Gck!+@mOEM9Ma0Q+SdMD*BV!`s&(O@t#%BW$3Iak0XBpGO zQkOXMW{A7;zfECf;nS0Z9ITd`)enAPu@oDP)*d!S4_h?y1_e z7%X*8UrU|w=qUDnEB!!pG;I7dssyPaP&IaASVVl3^OJ4(7Y)ofLgVe>$6iVziSl8I zC<6nzG3}m-<|j*Vj3224tNU`?cVDh}%H`nd&I=ABd6??FCyiURK6(=#7iQi(H!mrd zNU6R}OLryE(;6I3lud4OLJom$4&n^Lk3c$RQJ6Bc?@6f=zZ3@y8g?5T~ z-*>qYMPz+>j=I`5ERB6W0-k7Rl4i4GXEP-gmp;2a@B3pcl|drbZE!+!l07?Y6$NjC zE3pdpL-o2iDKYVI?HwKX3iA_T>7Vw_%jx@3%{9*93N^Jb1i>gOSa(RPimIn@L9|?++PgZv-%6$_vpr}E^>p#)NOSQXP zpy61QZK0l@mG`0iSIb$~*xYm@`-)q29UQmdoduV7BDqt(m0Q9SIbLJR#bMH)Qa-u% zcS3Sz4f!qHWLEfMh=RXW?%V9#@j9b}=sOo=42`f^zZSEs@9K4%iwyu3*CB{OAX1ef z%%HOsPRj3H#?S?A%~3-$mx72fr<4Krd)gv;p$r=lrh>IjC*uA2R=rKBO$KCIux_?f z^|t=emy43k113Hk{u=8pGaNY~isqSl{u-;|JE2kYv$1-P;2+Pd!oso-u(!D!)EH=M zJDE^P;=1-ZiFcT5Wb~%ip9t8+ReLHj5QMw9h-b^*DhW%nL{NJNL7^!j`ssdMTvi8D zUpphBZnt<2tqsl;0C_nwe6jbnDmD}*yKVM3D1F}{)}%FTK#53P1ECA4h#{5D^^Y2^ z!}{IlOQ)n86Uq+bOA1@Ft;3%kr7_hM>_2q)-NnD$)~}unohgu|DBz2|3B*qN(K~si zEs)27R$YbxJ6v+sN?vAhDAmYy3vYNCQPo-z>p*&-(mC~wC&A8SBY`hC)9Z&}kdPPF z8^c#n`<-Q$37nZZ%h|R$lZW29Rv5H(KTh+Lt6!OQ>z_E)Eq62VC}WAffO&p9gTA-1 z^}KPkWY5M51kLpo)%o@?8Rc4*Me5@6enBu1PNd%(wU84U_U`vIwnY+m2C4W~LTK*N z`vSv$88p80`ElN?wz3>05e`vF19Vf_wDADkra zmYtoE2ZL$RLipRW-zK|mw5H*oa!FU4vR*M)kIM2>+|#TRo)SCcpYHbv40rK#>w95P z{AnqPLxaDAhXg-BY^Zia+lgtC(enkA-E(1y&JT-LWhn>OCyUS%4(CozZH87w^@92i zZ5*451}J)EIJ*XB8?l?2XhWb=wLMrMJZ2O$q=R;p}lN=7Oy5z+;#q~#NG zr`{VHHaL+l$L5ZT%~Pk0pP%bv(aMy3+z63Vbbe*tG-Qvco6Shi46nolznO>&4@WPL7l>?z}fCcu#8Fwij!*L5|{t^U~VvK$uI@O*E36FV)g$Zki{g z*GRR=XXaLaDisup@@!k))gPO!avz_b&S$jbXOaPeKytnY8_D=0jhMpqi`7SvHYyRX4 zU-|8?%|hKB>Mv*JJ#A*P^FxHQQ!^+NZokNJ^N73Y?OWrSZ|o8=^NQAu5h|qWMz_%( z)hE)SFhIiz8}iN~t-7zR^CV)IGB|nf{Do+w%VJf1?WzkY+4Qs-QC?PFsFF*cD;%{u zz@O$Yg_^D(BdyC}vsuvIdF($FC2TDuHlgKM-)x9E7rfXNi>ZUEVWje z|7Gcvn_sqPw-vlxE1?S?t#f?Lv%=KBBQ713)a%wpr%WJLMI36o;$L2~$P>ZIvWx5H zP(rGf!v_|Bn5hxzz9VT(*&*zT=TTam<9KKd22;HnRIIyX3sv~h{jN3imi1^oUdl2w zUi>IFN+264%yulxk@i9GYsh;##uYK0+LyCa@nWOX+wCv1_&jJ?!*{E#bwphX;X%ds zWhzHX--mX&TbOl5?HzGRRhdvf)`6kwbb-WAkho;NU!svT4!T3Q+ z>~OUMcn3rzS^S2t1+}uBrAJP&EyQg*Ym2mIks-Ql(^lxGOf9%N(atcUDn@&Ve@Mjk zR~La!_xkM66B|>o|jjeo0n>kkOGp4gzLJwK@~O3 zJih^{(ZGRVDUiMl2EX{%*;p|EuO#<>Fx>~hN-wN7 z+{Igv!2bgyZ~hgk`kaeprQ(+eWHvt6{7slA*XwDWg0TqQyxXClf6d9rPQ4+re*WA& zJ}cEH35(AHM_~!3xQemO%B|tBTHXBkzOobINqk3c$Jvo6EdbFQfAA>pRus;CUFk|c zE`E4eQ2K~~6O4Pks)pwa<*=U`E};k6At<4iHzQnEQ&nAEg8?#6)GOYY=G$36gs1L0&;ju${c5axT zV|SH<-$z>NmAS4KQNtKu5g&Q9iA=L%E**ZZ&baewRPZRm-nBLc15PKlzgSV6M4;t7 zZRk;~6t&5bJl?5I`IYz^Q7WWDJglYWNOMfKCO?q|HP=ufUL&Nz`fqO1_}@6&mOfJq z904-fkmxhQi-YY|^|$YLc%6R&{6#;x-n~yv4qSu*tgD%OO}Q%JtaE{k1F1=fOs4yuKHnhhv>wr%P5| zc66(jA)n=2=uqt7a|hXepYIv@(43q)8hM_GPI)mLOel+*Og%_1bm~Mley;XQ=^fYf?tIFd|M?uO>Q$qp*?N1K< z`7^{Hsi8ie+yw`+oy%7#gY0$WX>+3T*8Ls#UYP0P*$DU^LM(ztO!N+^CfvOiV|r;s z4oS@WUJ7DLf{v{!Uvj5?`U*oe9O;t*QI1#5`VZ8)iFZBqTers1yW62QwEdrt6~{}?_bh5e`p@qrC3Ik zn)@xs!sM1GO5gK;J-GFf9rYnQKUFa|dRUd=W9lhQ9Pzi<6n@wi0mPQMT8B5kkBf-H zIIp@A-x^O~uG}keyFp+`T8xypwCmP^@M}Io>-U_+hc_9d05*`MLN6U&>$({|O2VR* zaLyZvfu3qYW=!R?wo|GgV^XlVxO6ZCu8=%lFIK8vgbk#(8g4_s8QJcUvr|#oC7ulS zY_7s7Xygei!k28i9xOsx3&VOY>LwSV#TojLH+7Hf=b}1J2-_pjnYHLB4SN_Uy7?+4Cc z29O#2I~V~3Kmdb)^jbr9(YfKU=+Vm9<9j3Z!V!@VT-U44z%3qRsf;in>^iC{=2C8J z%J9%Bv=u5%oxJGFs}zZj5xHdNrP>9xij_o_MMTs=T?V-^jxY*k(LoM?h62b$MrR$D zY5;*14kGj)=!BW;R-z5K4wGEx`U33-NGE{M&F|98Y!ye+UYrST4y4(&Ct1?`DQcVL;+u z@qd<;yNo=mf~jg4lFCZiCy{78)x&DVYJ<|i-w;WaPmRdUj4|wLI&D$xpA+6$1o9}1 z9i2vJoJrz@tlw4M7qJ>`=1^Yc@>3J0dDB`0FfnEM$_DKAvdHHpBJXUAsAxLdF2Nod z2qzf$YxJKiElO?1USIusEY38~?gBaS-RU-WZ(*Os9vGR?MA9T1m=)HR}Z z&d-S5gRDmMTSRyf|B$~)rixsuIAL&uhbeNTZW^jmGZR{!>JAIt!-gN zs`V@ReM!`|$;%H4yG}`}PEGoIBx5AsGEx;~jR*<-PGK9jXf`OFT^5l?KP?@ooi**& z7W6IPY|BZ~75Ie^xz9YwG-RoGy+dr2q=y0qs00RK$f{eSpA-`$4D4Pwnx~is;@`J$F z5=&ph-!bv`1f`0Is#?w`W)!54N?r_Zh%m=R8O+I8W76z5G!y6369TO5AfXH0B!G;DF1qZevaG7I z6bMz=%c$$s6-VLTh;_y@v zc`M(Ey8zX|=Fg`t>481NtuJde+iCg5zC#uh6%gs1oFaUYWRlDBv)+XlNaY_K+5R)b{XC%qq2s~5yC&ebEgp0+hLuA{+w1G=Uh0*yx2Q~9OsKw9`UZNf zm+w^nbb#LL(^5et>~J?X=EZ)uLN>OQ4Or0#nfX`|-x-CbIdKx{n&umIvoYS2rcn!c zlDh69RwcGJxnuk|$!2}0j~kltc6xgA&8OiG1)CQGP{V>$?=_!97L9R3AjBYOFBtRW zis|jM;lP-qgs(s0G}Y5MBO(Id*UBP6!;FM+&&9tyr8K~2CJi3irM5Uj!X|r!H`63L zw5kq8;DYc)0uvsmV%lwk?Fdo=wZXa1K&H#qnmb8^vq05?h`KIDP2nRC>dW^fxz#%~ zPsSDNAn|8yll@!$wm1I3aOKFY8gI9)(Q0>@R*!i*19fW+*U+FBo(d;v9 zW>V=JQMadP6E>#|_6{mWri#>xsHk%~_^z}9E{QlgO-_gI+YZ)aY0DH-m)6C+0%GCS z7;3t&RO*?+CSGq_+-Zv}r$qx2du8nPb*BBo563z&dy_c$<%2sZZ`pMOaJYKZ4nONl z&rdwXYN0M1s)MCK-BRecq>sgjmThf1BzBd*l@`47y{jK|;GADS_qLjf{^Oi`fU=Pl z>`vyb8;ub=i@TWXsbyOxjvm=>iadC@0v z0;T^!%pJE`2JKoOjiPCi06&H%q4@1KezQ0MO3^8wXeOk8II`Xc!ZArzx?gw(Ow_@PNZ?Y1Gt6=p!WlQ z1I;DJ)SZ`de_${zQJ5U;J6tLOzz~fu-QHjFtj`25$?0a>MM?0r$^soLi*yU9O7w5Z zNS)V(W(6@kev|onUHyge502YI4hCJ5+#P%uM!ZV(3|*0vbZaArVdIacR(*(mV$LSe z$pn5qWmya8`TxmRMgFc`-0LA}Y?<`1K%LlPS^sdJhN{_?vX}p07i!)2{s+6z(O>LB zcmEB$P{6Ed>Apq2VQHEDIQXJrlI9bCZGn;k&;H!q9Kn|IRk) zOy-)Q?0S2J-Z@>*mq&p9Yuq4u0A7O(T@X=dtWnONSQhj|15%#>jn^AlpcUW;07(qm zrfV88bkg%Rs|&z@hWL9c3p|0&m%iqnL9?d)M#?0)syQk4Mg0|1fl-M+B|*(1%= zhBv=1dkL&G0`Sw?7FKn00rc312$h`d?8N-FPY1QDu0p8i#n9=FU&d-3m11HFhyD3< zJRxZt?-n%jQzr~>IYl4s%~e`7HW*0km&RG08?cFpKD@`PH*e*X!t_;e15yySLd@5! z3SyGs5m0;)8(qI%+xLL9ao?wXvJ&BEt9;lPQ?IF8(}3fKO4r@G%xwL0gQb;HxAa)q{Qx%oP2kRs?*PbeZU zLER!Ka~3(nXYhUpRxWNf987$8uuFUfvMq$`^9}5bk2blEzQg*);4#ZqVZ=ZcO^*JD4*u z<uo5$y;Sp@n zcM@XV#H=+S%LmPcT1$|rO<>GvLLR=Q3y=Y9l4KFOwGzf@E{x1R?{{N_rz+z9aN%_k zPNx8l4l6~izq|7bD1Rcma9KA_l4axpQ|c{BHM@59-y)=e7jH;eS*nf9qa2F!NX9Nn zKdHp_IVsO2+`(iJS`_BMJ*+e-bDb(mD>vNpqTFOEfHG^UVu|KF=5dzlrI9y3OfZ`0 zIps;DQhZq3k7J$`We^&6os5s~yO%<_4Z7MUwbXspb49XA@RF-#$MH$b2iMG#qTP#dWI+XTRE&2GhB29 z7&Zus_X)In-uG2_sQ7aV-}~lbxQX?W=LNt&Y@`4t7{Pe<`|e6b#A!oXLnU}clp*i-Sn3N>9aQh zT5nqd)E^#Jcb)txA^xXC?wz+6snTn&qIVEzTZsY5CO{JFSdRG4vDo{bKQI`6>K@y? z0xZ6|7R5t_GZUkH?#5opBMVUbR}a8|l9GZ}K#BU>mM`FM{$+!XCHTc?2mTv5^02BH)Q_UsrG~I9hRfkelrn>JBh=KAzpdDQK zF7fIG>+-#?7)8NAGl(POK9mLoJ_5!@?Wm6}1IA_nHkBmMbN=~- z%=yFVw1W1tk0>!_;%(vR!;Nmj(MuDqHgy)87Xk?!h8 zKsWg^S6*qnI=bM?p9K;M$XwJx;G>I=fbM<^|Hec4s;7W%VzfXBIne2ZK&LlcwE-ov z*CjXoqaA-+l@2H=I+yreL=Om&1}dCnUe^{3)V2`wUB34Z3`RcY5Zi(}3#CB>wyi5Cw*k>0vgfIm5WFtA{I?~IRY&v0cP`%d0*zINIp$t8m`wY} zI6fU)KA9NtR$)QWb4^Aj1S+1O>$g2rulxf;_v4JIsu_35|E0+83*%2fQDbRSLW|i` zjq|`Z|32X9h3jz@vxBa$<-+>T+e`VipF}?dyCp_|0pzH=nrYhvSlJZ+m(akW23lxF z9Tt%T*fMFV0!)LvUti26tj}4eov%CZ`t$7LRyZ^1r82rY`EI!p^uJUcmVy?VzAyz8 z{aK=hE^(Al@=O96V87+hOnl50_g%h^o=H>{u(!(eFB!wXWYoL=jf?{z^EB?PMZ)%+ z?b-yyuUJPebPo*!yZ4KGlj|n}Sb%YY@Lw?hcS_zFv7pk>ilz>A|5ViYTao%-ik$zf22cca&`MCt}^f6fsW6dD@* z!vnoX`qH+rTRJ*AyqoIb--%DUxm2NN^|+3GV}ySQE}&=hQtwKChxVQMR#&gT)ydo8 zJ;sZ;bjmSZ!9L=QFy@xdU%&1f?H>BVZx+Y-u#6@eucm3@wlge8m&+`7R<0G>HeHAf>q=V8^k0@N@^eng?t)CIibCCZX=oE-lpA7DQn4;IW3$#4#}#$@dL11TG&iY+ zUJH4GQamS2?RR!E5H*TSLL>0So51~__jrNq3lQg_dOlx$w?r1T!b#W;?dDv9;e#4F z>=)Py9o%x<&k{@Q_B=eEsEhkUVFq5B^#nH5nQf&Q+&F~U*?()T%A6K$B+fHdHfFT? zP;5bg*=7$l5_Y|n+EAG57;!c`WqJ@ElpalC7*fe6=Toi5w|EM|{#WM^Y z)+n%l6Q`+HcCA0;TcJ2IGwTkhZL*^@)@43?e{79`z1=a^idkh}i8dFlJj&V0&orR6 zlbVC`t{=lEwT=+}^m0PAMI1UNQ?hB(m6`#gnczB^9fD7AzV~l>K|s>_3dcV>tD;~U zugC~IG&SDO@(7EieaQ3E&Rd(0;Ov4|2M!Xk>L1OHavd0?vbB^p zB_6*YP9u}rQk#?)&*m$BzuYCxc3?pVJnuFQ6bC*I{_o=d?w0=^4*!}4Pk~ty{P!%e z;X{NJowi3^Xf00$u+7{a#x9s1t39iuSMoO{*8sj4t7M}hQyFy%x3e7`!+WOT_ACm^ z{#n#5Qruz`7#E6qu0eF~I&q~1cm+N$W~f2zS^S7RE+8`Cn(yAA-&Xye>UvdW&NLKw zqAv6YhJo|%QqGU3ni5;Nv};q&xI{};URR*=$e8@P z%ADU7l-=L_axEo@u3#)QPWC5S%J#Z~LYcb%2WpGlK0=KY_q1g`10kgU(!D>s|GM`_ zj(xa@&_J8U-kfV%Q%spW` z4vW(5!05)FWqTSdKk&^O(4)n?t8B3R@q?;A|D9ivCo?u4#yH9Z{-iRmsdmLbKCkm7 z*Qi)dpf|--l~A6Ru4vn!iETAnEqqYB19|Hkic?U}&Og{o`ea8Xn_R>n31MM@-0}ip zezl(+TwEmN6(*r3Nd9a&el9D`G25a3z|76(b#>Lu6KN(ai}3{1w@($fO?u!Mv@ww+ zkxIi3jqW;qpFbDnkJSb}KeYvj&pAV??Gs#)eFXOFPo(wO*?J8y{M=GFf7U+OxOz~s zMOx}K(~$W9P9@{&*KgYcZX=5*wTKyy^GBY>w>_4wTN2H!Gb%42o7|<8y7r*$$3jk8!#=TB+`= z^7@XiFO-uK56)4G3WASdJfFpv3JHX}8IND;jZ;T7Oxo>`>$3#0u{cUwy{m&tcHB1X zNy(|0HLn{U6DhvUev7B=gj;y>MTc=`Ng0mNTx=Z`Doj_Fnif-fHG1#Ho80KJE$!T? zkDrb`xUpqg)!#5iMq%Id@t&?;-QAx zk!PJl!|EK&P$@jq75+Lk10T$R!PL8)P6RP^J*dy-P|lAJpjwaLq-TXgS@H^B?H{*h z-xhQnwe__sGU42&9E+`;rp?N&nc>v_4)bA3MX*t9QDEor^3DsbjWrtxz|($F4pw#_ zAotSuTw61@C&EuQLPUuSx=*ZtAi#KIbiBcM#TCifg^5 zqTWSMm|FOx$yZ9)*EyMuI6}oGswt#r0unVHj6c+LJD+ZxJh;GHl4Vc3cnT*>IopEE zf*?CtW|Hv}`HhK~>2eN%)CGP5Bb5bvIIhqP+@npd_=`LiZO^4+jdUfC@EAUSEJ0q5 z%L`!;PH@fsdMb8^J(m9y-Ok63_IdG)@u@A8eWCT4GmvN;DyQo0pJq%h*# zbeB(|>~xaPcezs#^ysg^=RflDrUD7Sl=b~)kEZ&IJ=*e2D^4}Fo?HG6bex-O}$ z(X^h9G5HYPaj1?l{Se*Jf*gyCYzSPL;gOkti9LmIZRZUJxG-dbdisR^m~Yj0g1joa z(-`ULi}#_gaj^SAXtIDl&Vzs+P%P|r0oRfCr#+y}tG}brQ$d<~c->jy0_REq z8NA-Rk5dTed9yBgsTf~vdS?{N2NMrfd5~AoeB z&aY7;JwqUh+3)LXE zU8hC5TBp0&86Fm|k7R}(=Ql8j)i2vAX1Tlb^P9zT;?Qvl-3(w-YcgLTosbsOs;s*M zi6TS_(XZy&y|{1lM7Bg|q|jQtH#7_e?_0VVl-P4iLtCq6REn}!PFR#y_T{OsB7$Xl zY9%vBiogswcX!V&f5v?`Ok}*`o!Wqf#$Lu;f?)U@)M=Dw+u)~hPxScDKs&koCBjH= zmyOp#u^Zp~u4H#PM|TXnx!pRq#@!-}C-U0Gcwvv=g3+TBH}g>O)Z8CN%7XUHkwYF%{k`AVCNv9zUI z%;alP(MohvA7UmZ>GoP~0B>@mTyM7Hhl|St&L=IjP0)a_{9>1d(N>kYG3gpnN}9l5 zS9X5wb?~XhlTB7L2hkou@oC?=%*2FF;I8)--sYm(S7hP8cGrwo_~G_WrM!lzLOVvx zLr5jZ*r}OOgK+rJt&-;RA$XdPM*?pj^8`TgEbliUhN#O)$y**|FQ z+4JWY$JL3GeK7Ww5`4UZ4agN0oe%+t*cHP_l_!BQ!I892VaFtEF=k0FGP1EmL^p`; z{eS<%Z2XeJ4{qLCcp-PnkvgJ*<)ZV>+dx)Qr+c&*cS-~}@(z6}s6piU;@`ivl=OOg zB>~I(2mAj2v{t5GGwuI}YvmX&qO#Z##K9i98R^^p`y*+yZ8NldaUX!zmK!j<4XN9na?g^6%tj)axq7Hfd~DB44fOWO_&%Mp-J^wHU*w)y@p1p zx-e!DYg+Z@2Vy7DT}9#W9z_mYyEHtNqdw5Pc}WHwJf8a~IU3Jtg>4jvKAxLE(4L5mFi7#ZcB?GPj%p6&mhy5V&o0)IDyxA z24%^zPAFPdciTayFRZA94ss;YgQL&$o49hez8B45YIdEPUHbZw8F09Vi{M$(HW?(a zE;^{^2iCg(fssFl*p9^l^+%764VK#&_Z8!@kz{IFO>J8y>;+(PTSQX0b#uDXCWtH3 zWF~r_9CyQ9R<`i`!{!ttjK`ZD>qc4$ET0&41xBie8E)Ra>UWe& z2zp&92!wDj)7Ht_@1r^pLlr06G6V1+f|=PlMik5Y`7(s3T(_19sy0v0(ygk-BBXXM zyCH1hk+EX9-368J1tlvg^KMR*t(!DI?N!BeLk{MKSqCq~#ue zZ^r*~Gyaz+RJKtON0PEqPv!-~e3?;s-c{&nep9$w=tt1M0T2J5{`0@uM+L#*iz`() z_v?D!!cT#lhuROuA9E#S0uAFX6ExWizKFjmdrCr9mh=`RVH+-0H3MGwt7NgQ?uwuuJ zm2PeRHX6QUx5YX?z9PU8 zQ%64<#Tab(kH^fC-fnJQuiFM0xsJ{gUa+PyghY@&dH{eOvwP!;nZ{!7@5s~~Oq4u5 z_c+bE_vq1oFv$La>yBI82JWN%{a$+TFY0g8;1b}bzWTpz>Z3IP_W8q+n$Jh}bXr!-{4i|1o(7>H0jb7KH zfEHzcO#=v_qjchv{36aPnc_6N6S_ECPvnqWZKtx9lq`N(6WsgweH;WQk`PyUyi;1s zxZ-Y=Kw=QAPsdJ>s6D$FE6eP&3(ffMleL1HGmVV&L@SYQ-?$99DULak$1a(Ks84cRWaDIJ}Fqrna*|{UHL1L)%L? z>WsV3?e`6*Z*(m+n`xbKB-(>IQj3*A1Qs*ZT1{ilL;`{xFKL$5axIRn@jRG&97$KK zopp9{nnslDKi`w4WfBPe+<8$0+qmzVD)e1_M-2IGI!>zez0EFJPgk|}&vRQzryrOJ zm>LwFbpG)2+?Ifl)TTA1CC!aN!*|`g_J-NtLH3oE8yjXji!Nej?aoDHi6#3nj)GJ9 zC`%8~{A_>x$B=j_=SS)^ZYDMZm`_sDkb?uB5R`c#7a~dOl3#dG(Bzv6{mX=>9@AT# zbfk`>&Ur)D4WrHSBwD(C_#ii%)~_yi4{DK3#cnVVFXH3MbD!$%FUKv(+=8 zvM={c_dKFT`A1_bKe?B7NR3eh@qVj0-gs!bBUZbB9Z1wZVGZIjO4D$yOH^dv<>&5b zrscq#%jyotP@th2RP1maN1nX8!xty&sM?M+92Gd*vM7Y+DCj{F!q+hqm#KC;>hTmy z=kW>z_y#2g+`|N$5{^#g$jEs=qg*YDaAIZ(XuR+7w1!QHHfQ%tsQTCJ*$DO{wY6~V zWf_)8p>Arl4E$uM?*ud>Kka-x{KS`d7rbj`wv6o>o|muOfkS=sF!d#{l?~q$r`1R5 z>R5cr$ zy@ZZG1p#S+1PRhY?@b_dQ0X8&^eWN`y@{gemtVQ}ocEsd-uI0Az4sgA8{_=97-X-# z_S$o;J?EOw^USFa({lngEPgb~gP(h7FL?*?y-hx!1*N1p3Y8&KXC6v{WPG~$R#1m8 z&L8SXIFOQfEmyg4P{1AcaNt{%bG9gbqPzPJn=*jSQ^SLMk5-aB_h6kz+k#kn*E3k| z{n~}iBHp;8u_=QOWMbfyJ~Ddq{)jBmikbIUzs#*oVqQJ6a7;6sl8X*}GdoRC4A|<3 zV$Xt5mw_^;%d_*dko}1FV}msZ^5?#aIvNG0sY~*Uki=Mr3&_XL=_llgE^D)B)4{0m z6NPp@r`@(BF$Wa-q4w49GGpI$?mr^NrZ4|0KJd?-J+l96|Gg4rdJ?y1>P%m=#Wr8T zlS8>wPPv4O4tL2=Um|`muN3{B&!W3!|1XT-?~r8u2MA)G;*99}OriY$CpP1L+Y~WP zu`u?FH7j*mjAD8+yI|(R36DXp-K3Ew-b1MmL*&o{Be>Bi6KYObjsLUr;|`dh^e99| z&Ntnr)z!Kr!f8E1G7`oFe(^Is_GN0VD9HBKoXdL1f`#ov{03J3(!fTU0Qsm{6R;%E zoJ`9kqXA9Aj8R>#(1-dGitj=peMDFZN8HEDJo|^NX%yYQLE4rPx@F1L9UWu8Egd zgDmR5+Zv1*NL9#=e_KHHKsGu?r>1jVf5tW*?JsRUyd<3baWIPAX0u7Th^0Mkath__Q>Yu6z-%h_ygfhYMyLTBA9t4qj*|5&CBL~7uie_1v zs>^Z5qGqpvL1zKo(y|$?=bhIDU!1$o>4Vm5LWmaq+8ZsU+x!)t1AG(Q=C@JVdDlte;%;G{xQdf zPOXZTwjqP(Hib6%{bAMOB73Yg^Yf)oaF_xGz)-0bQWKNT!D++W{A#6-C#hb!yyTs^ zlRc7;u;RSx=)ckdTZIv>*mU7AXIh>})uua&_oDXvKX`K5+zx2h67Y#(#WbasB<3p$ zSdt7`_A_rJg)ZdQN~M}1-?T9(XRjV~=SEy~@szuc!UxZ1XR@OvG+ofo&1hBSOm~L! zZ7nJcFw?W=eM;6nG@sFWPNuKkURi$LC76>Rj;gKn9Oh|8Jxbdp%}>2r0z@b>Z;;c= zLs)=(;^ieEMxl}R6+QTwM;8^)x2~Z9(&9iGT2~0aXPx>gikV=B>GjLPUTHY=L)mF*-g6xQSBM}uIql!BbQ#O}DOGx?iD~sJmYrgF6@#^+Yri*{5B_!F4>v80h zvXFl5JcAJ3Gdh9-h|cDPLE&KYD~8{nS5M&}d1lXJk`qPZznt z!ZHNS!`JA-_a*(yzn~s3h_-7$2p{mv^y>NygVAjR)>x|3*@I%t#;x~IfR78NttZW zOZ(T~4jd|O*3~zzj&_=zEyT&FPUWG+7CsOMje;+|pWO%z$SsTQAw{%yuFxDcw+hfF zJ8e2(-}g8>6`RwErmr@xEeeTz_?kPJsQxKuf>><9#g5BRsKlP2%7jC5p$2R+udqo( zhiatVn?BOW+PeHm=HcQ=s?ler3bu=CctD|@MNpCaecp&mt3lCq{ecm?hUVZA@1>WEukXoXic( zl6M))Umt1{>fF}6Q->(HJKprbn=G^HR2k@rd*4kOO(0TL@cgotki;vThbuQrn<#%voTOg(yXd4^&>J>(n#eXAnF(HOQavVr@^ z{O}wxKG`@5vU5CqvW=;9<-60H&RI;8mK5%JkQh;x@*baW&K$Uob?T!v(wM2Xl0!mO z?iz6{uWG^4%J6(|vWY55eZ{t68eY`!(~tEQ#X?%Bac>D-7W@u^A+`2Rj3v$90@&d7 zPDyM(vyg`jgw{bW9AK{KjJZ}oe4`D2zR?gU@tdX#AN)CeZ%&VB=-wx^6jIG1gGSD$ z)pVCaEc`RFcQ`jdyeucwdH6cVw|83}^?Qixj*Co?pz?f?Tn_akHRJ!KBVdx0skXR= z`6IymxD4m4pd6{7QY-q0V=cWl9k61DRn!sWRNPLfX)w8>)K<6_E%MfVj_M7w=#qkr z&U^*yI>E8TNt>S&{a_j1WBEE+YSN5f60P#3iTvZ_n{Kw`t+n}vmCk}UIiP|8^BKf@ z-O+*N>HKFLsxpYri0g%UP5Ai~Sk1CjpvQWb%ysTv(6$HfD}}b4?e3nQEd8dXQD5;3 z-dsn>SnP_i8-uFt6Fd)1F?kAZpvboAS%5Ezdu8auMgz<89_vgERe?E!C%QVh&pKF~ z{u=@+|#kCaHmx)zaFOLu{bgbUaQ_i zW|?@XU;|9ur=QP-Jq6G5JyAMu6GSm3uzD!KA2#G!21&^At>&eom!{@;3NiVowAM~G zHjv+9=F$VleWXD;UJcdKc7sU_p&6(2EyCMz7Wn@xPXG5I@9=$%cvYh$uip;|{|syYY*tJ%Yj1H7)lU^QTxk#B+0+>CT;yP|zO1#jsF7lMr~qUN+4 zMkY)$)?~@EQKOmBzSdg=!ua zkgzBy@@-R|ejTb~+#FsO8eM>S@HJh#k4zUPO@27&cjy2D1b#g-tlgO~t?A}*Ve1(c zy~!|}7I}^8>(<(bQ!jyfyI|JECU7RU`V|%yY>8No+kgrbt4HY{|h!V zv&pliaO6dDr5%{T=V+|j@hM%(>{;z#M@>Jo$4YO-;O`HX|7>t#Jo?ME>`{;=!joOw zX?*gz*^UlI%SbXN zsG4n!KAzQda-E#r6uhaYVL+pQx|t|dAFwK_qAjgHir>li4~{QRrO}zUb-&Hy=RU4& zA@v<9G;^~K)wdw=)U34glv?;5CAvojCKv}Ao1Q%ITdet#I%V!T?*n}^DfuYa4K+&W z{Qz|wrtNA~+RgLQb-@j~7FS?pZwQMP=RU}%k&2M}IYIj6=^D6qSk~aajb?s@s0^B8 z{!$^UiYyh5cuf!IMQVep4$z74^t#8(8-R5JwcFKka+RQm)nN`on4ghgnb+>vYrFw2 z$N(}m1yWtIRh!ful(ZATCGC#PYq#)Ikw~db1yC>RS?UG0Vxp?r%o)^fO6p`Tj+YEL zH|6Rl=^63^RD=^>AggRnwbZ^0Ej>8&o}Cr%o1hpffOL##t)eY~UF#mE0H`m1J3oD!3ykRBca!;DQzy|%e z7D!S9yk1q+1DqaUR5HDXP3a3miPp-dMr))MUM z@9VuH`D(pX%c`<|?}?kZc?W5B5;_?}-E3q&fF;T{H{p!yP`z5!WAC=OX0y;NnE*5# zt>OeC@vvG_rDc&}Je9t$3*yr4(FJ%#t$NRkttcILwQiUF{w}!ntMO91TvcwC8iKJ2 zk^Mjo@l$dnMY7o-u^2XDaMTC(W;zVe)BO!FfQA5YwkuUW#C3}dtnSkl>Q``$Hc?i3 z_<)_b2-RdSG?+AKx&tGp`niG5odZcITtim`uAXcK3f(|bmHuumWmOi|Sk}$FJcLK8 z>EoVTR}T&#q_GDd2+QU5E)!a^(sSY?(7h~#ka;>>$a7fev9RS+URPjT$xLaoQfXd3 zCbq+N(OBET~;d=p7)E?9ve9O>^+CO%tW`{k7 z2}}eGbSI~-PvFfuVNq>LWRT_abCqnYj1j(Kh)|m0vyUo|E(ph^%Xw=TqJR5#U2py_ z@gaFKZQ;rcqaV+GwWm!P^saFw>N=->PS}&jAW8WH%8aAdDvN_ps&w==Y4>;=E>EA@ zVTT)$8Kyl5?@3oW~rYTI-EiWhi0u)n0ra9k7c&8fpK z7a@3l$?Y2FT5gL_5^)`NwN)oQ#K@oNi{_WdRW)dEy_mfUG^&taNuWYl*H4Za&BM1B zbXrQiuexw0EN~)isgKR`em5KrUwA{m$z;C{jm&`mLe)Mfz;j4L?eN)3m+kxxxJC|k zj{uAtioSPpx!qMrWK{{kBhQOzVTuJ7LRa66Gd5tysF}5VRtjSTWwYLi~P7!yG^JdIVnm ztbxN;N>VIxktiJLs~%8%n=Fa$IU(>>_53l~8u)C9oN`B3bFD#@b1=1dGf8SC4=nml z(rQ?sK}-gLT%|x$rSR~sMzx+r8 zmx1!!;urBRa?I@IN5ED$cCY~u^B_d)Nj>Xqq-=O%o$v@W4%GH>CWn}}^aR=o-JFD; z)_OLk^2D2<)_R@*^WuOU;h7-pmZ8ct;fZ`7-+(>MoCSjE_9?)F;;jQ!;qM>%@}Vw| z21#bd1wza<%f0J`5r{4J#_pJ`fNuE*U%io*dqrqP%B+2O+pb*F zsDZ1kbV>aqv+TUGQYV)h@alog39_t0_XZ-&#j{g&$zx5J!)0uf|n%RbBhpE!WpLgJl$2RR=J7vkcdu=H;P!S7cDfu&!EDC7MYj zE(i09R3P2w{e=?NR!D&!g`e}SfU~Mo>S_QI^t;6A!9x!UY%BU->=2CcyZVl$bKFwpL$MLQxe^u4b$kh3_q)D7D#7d*w|U*P=6XyKef_7O1M}aB!h()&69!{mm8s z@ASffsg~2sSBCsZMkmYY2KMg1mK+)F1G1KK@m|o7glyl@C12Jdo~J$1>cocp%qmpM zq4}ec7A5ojLP0x9iS3VuBz?fyd1waxt3MlVT*v#TSERUa{Lvtrhi!Z!Q2MBI{?WMB zkU0E)oMH2|!XJ&Bp1hgA74ePU3;UzN^XKjKbN+qfe^2%Qe~pU~!1D?|&h5A^5?W1n zkEoW*3>Zr={CHKyw9snxDsW%Fi0Y4|N%bVR175PxLQ9FU&5W_liIE82Noq6a)uYm- zqgW^06&m;#a{d3EIp>JmlZAWkXZl5VF5u6IdM^m6CaR&bAcvrqiIk!(P-U*Ge(@*O zcXul!BCT4&I>wM)n}x}=RQ*EDpl3}MPG^&)cCxmHTCW$K)<%xmEYlrHQvkHujJ>JT z^>E*uti_Td5N0--%GKa4^I5zLUP7!BSyoC!2Al=8&LY$7wu)|(eVMcXPePZz4te{; zJ!r3TDi3<%ev7~s!ua0Xqb${No2wXVV=L27vMw$9dQLKACT);xl2Xb%T%4(B^BOkS z2Laym^$bI;2rMDY*?&WS(=eL-_&CZVy9fa`xHB8}m;~yyO?E>ya6}cCrV((9av?1% zE2J9jbSKt8wp~4!1?1@l5x2b|S}#p!TUM*+S<(!hGW^2a3u0+bLfT&O)r5TriM6rYqAT?>Vx$1!< zh6e#Y<}5fy$*77GV`k3irkO|6+z9E@&I`@!SMtuU(~URT^?j9{A;cvYG?`oU#*vf- zk9&h>P>1i4$>(NXBY_{Nesil=aNDv^^ViZGDtcC*?7w=cLniW4n}gxNyu|4EyBmCh zcT*~|{aw5#Ha0i>J>%Y-MBFwpyC|8Pos%)%(3{IG32Capq(VAgiAH&5wm5`Nj(>$V zOquN^o!(-7Re5UYR)OTv_M<@|FRlUs9+UOagOxJ^T`p(P#gD%4D&B=wswHw>#idZ( zSLlIHy*ygzs(WNOFM+^;Y&I)U182ROg!ss$RL1c;HO}B&n{02* za(B^zV=4v9xApw4EfHHbMbQE_xkadvh6@_S70~$TG>k0%;ndE0*DmS(*R_5UBBA_z z#rdd-2pg_=H}IwBtYYJd*FhJh?sppSvu;<~F_;{zX@00$x~&vB%xQ-zt7JA!`QD4M ziQ2N%HxsoB=Gi}Uw=D_=UCL+qBs}XK`BE6`QghIj^n^w5V22v>_71^px&<&_B3M5w zb^fY8J`Pv6L296*z@DO!V#m4nMcG#t8i) zv1FPVQ_!-tv$!S2H)F0%C~@dvOCLT#2Pxd)Mb~i73hb7gDk|W{aZ*Aw{)MTip$=PT z1QX=8>XYoJJCh6JyLW2!XNx(}6>4*`ZL`R|q(}(M`s2XJ^2e@e3OM6!JG;H;)CCQf zMHs+yxYeh+vB^7~TKsZ|vvKttg~yCp5ZE>4_2Imkq_LXh8)W`Vv}Gn=-odHB(h<7S zZT~ecIi|Fz9EqDN&Cd^#thm`&mZ+j?6nM}oBKX3`=!B2_t*RM z7MxRei1FX+29XO3vmnTgTc#58b4~@pH}&SvsxpK|Rn8=VSXxN9u@*Mmdas7oi{7brUG6sVy}- z8V>{3TF(}LK@M!E)%k{|)_w9V3h7Qc6@BwW`&+OBc(;eHl(!zqP|J49`<*MPfJDTa z7>kCR9haystVy)>n^*%fOU;V(t-z9l>$Ay0_oBD>S*;tA9%ntKCP&lElQ@Vcpud*- zx`Mt2u6A-EronPw+@r@>qf8{>y#azEBD7tIC_RTSTzAMDz^z=-IWbg7ic!HZw_2k)BK>Y5Y@7nYxKI zKU0b@hh0+8Vbc~_dukv^mHM?h^Lp4f>ubYmm$CB0+5^jcG#@x!?v{ik1cw|k z4{e-nec3do7?@Q*&RRmbwN=V|UR=YOgr-^d_X0UTJE#$orZM?+mEo4N!A|t}MxU$! zOPg)Cq_A4s)&cXf5~6omhfd5zYqWPiMR8Kz|hY{AWmvZLPSptZR1T;1eBfHr@M$Ah&=mKt$j{ znB4uz!e1mk-}qjOJga^1^Fg0xMd;rLMwmNr^K7&<)F=>z;3%J~^T? zslOgIF{$pYO|_OUunbG2;1>!xJPkDpHBz zW9|u_g65IVmzpnkO1L6=a2Iy2t;#r>3Z|K6z<5)|<-m ziK(%U4>BlxHrm;_)Z}Z9^BgeD`$KH-$YrHU$r~TNUoCq0WHKDc#)x8P1aYVI>XuYF zR^H5C7g9t$U$ptPa!>{Fe*(Kw)t{Mg$Eu21_`ts{K7YG?U#B?DnH}tGnP1NE4)UQh z>uct@T5XTTF5~3PfT7R6a~SE+B_Nrt=l4mf+#s_lD3Zo+kjq21f6Up9ywJJmWv%Bp zu^w++-lb{^%q?MR)HuSb!q{yUDUfIM(T_sWH4673{uC0tvP+*(;Y7#q5BV#F{YU>p zCgeTElj-$gzu#p-;uL-w+3r8szg7K%{WqI5*@XwEtEOvPo|^=Gg;COAeub&QZ%RRv z0vJOgzvNVMG-{O2E{~2Vxf%AeAXIKGAtzPVA0+j7k+YNxU;i?p0Xum^b-k!pnL^EP zV*T`bpigATWA{gAc{g*y@}vpJfsw6Jitj2Vi-PdiMiubvrva^siy3!58K;fQZjo(f zZPA{$EN1U(C+wFF5;#smeIEVQLE&HhDM;P>tAnw>`s2)CVE?Owzxqqij;8&qgTMMy z^7MOgTiQt>2Ya84`3rGNEc*KJI|@vCv#4 z7Dhx8V?1qf$`M_^?rPQO4MxL187kzK)hmWBC0h)lZwhEY*GXRuKkY{Cp;hHnZ^`y> zVQouw{~3{mqV=C_ZI8he-%Jx*ev!01{(J1615r#Mw^Y5+%vb{RCp^#O&y8>V4@Mp4 zrCC$YuT(^E{3cjBrM^k$_$ee<98_GK z7sSkAj3h}Ct|c_&iIqRSSJ-5v_K{*t@g{YW zP^eMsFA{>IKM=Bp+2B7NFFyiVoI&q2DXVSf+B{}kY3-z-*H-kmLLrr6*X)%Ahf1-M zZ8=Qjn~9I4j)xA&yflcz3R2VDt__kLZGxtbCX-h4Rfn; z_65u52((TvrMEXaCnB@}($6A3Xw%)ol)eH`r5mo2+VX5tF2ZaJ`rYanowc&vd4YFc zNfxJj5w8QED{f?ZRpsV2NJDm{Po84du9Ew_cEoT3Z&tJblv37GoEqTKChtjD)if_t9^Sjtl+OHpOx2zONLc5_MTT|-u zcSpu7;W;@K#TC(_y|&(FKu<0#02&xjQhloTbyn)yO(~=9kqb?y;l~yu{(b^e8gT@n zz=Bg5}%RJA_NeC=9 zIx$GCX-nikD6FGPA3uTda_Yp5u&CDO%=O^;UR8^2{I_{rx}Z&9ksTRA4=;Z0m5Y{h ze-tl{{1=H}A#o)ay)CaTD0!_RuKi**#;1j8121~1XTEldYIVGJIQ(^4unR;;)at13 z^ULjbM8eoek55raW$q|55~JFhwcY1SVbXKm>=VzbnB%MHd;c|`>Yp-h{#7c{tI7!8 zK>?en{3FPcxHtEeSA}JHSfuNOrd@ouXZmX3)kpt@D#Y18WAJom{UQ+%^~*eq`IBD$ z2W3+5=%nEU;bbhJzK)*~EP0S4yUq9~z2`4_BvW-LWqs9AWMmDeoMa=iZC&*0QZAwd zH9_;HYPOAnbs-Pci%P$_W!hVg7qQMN3_omw9N0`0cFTahb$=MD-9dw{FSO3$_Sqw_ zlZS`T*3zSVV(&QTgRD@MuO%Uiy&K0H10_uhn(O+wI)#RF(HX$i6I(!8r$!!=2qSF*#>NcB; zx3;y-`x7Xj%l<^+s+@W~;kA1GK^d>UR!?gu8qsEL)w|~D^!d?f=8}S98xipj6wSOy zsE2-z;VWmpoYEH~LwFN4nQLS>ysqAHE~wIP_y80YiF^I=xW%`S9xql3-7)vkTwb7#*l#7RPaV4ia0MXa(T_$Bpk z*v5UkKQ-8S{4rWUi^~N>*Er+hc^@?d1vDh4({^E_5H@ref@8n9Y8*WaD;Pk*@uAXA zfX$p+SI7tH=)j>xS|s>VUHD2ttf5cbTrEL})EpNYkOA#sbTNY8d*|ZzK$11jb1W=@ zT;~!tze=eIRUu)<4x)+M0d*&fs)9R60au}`$Qs>Le=C}#DkZP(YKM9X=rHM^i>^>2 zbLOovTXZ`NRgHcO6LKWs2zf5xSfmWLbX5olPP$JkBa(ONITM_FBE~MRy8G**XwPN5 zEG4gA`?`GlFcUqs4etxmOWM)Y{LOYCi)GX4V<40vTROF$n5L~o}Y4{{|a+h~3cImd7LG+vsM|^&OP1vk$(l95|;^UxFlS-2_ zh?E2c{8jl3#DDu_iU)aHpm zu)XSyh79Pi%<=FOaB36+c&%>M*T6lc)w%i_O;TG0q+4z1+P+S7(V14fH%3BI>5`|M zz+1H+p~P`km8K3}$|@}^3`RBOXIG+zeUP%24mF|E9c)jdP;afv93A&4Pt;XtEKATO zAtwU?0b>a>fRSBZASVD2XlUx3Z)aNM%uXbvg&vs!RIbqsU6L&Y({C}0m~Ca-#>NCs z%FyL${*Xil>t^2CGpZibZew;k*5LkhVWE|8xyCZ5FLeq+2ZPTRLo_*_Hr`7o_Bm`HMN7}3%r zbrVy)XA_nyEHX+IW*Ab8S~b9ZnKkp3pU&l!-;jF1oPNteHaH;Z4Y7Mz`GJN3KY+_6 zmjt7>P9RyOAo0H-lw}p#Os{t0?z}=~6-4wodh; z@B4UVPWY){(Vb-@8qV517WS8R*K@o5y%CFkCP9?8GNh zbHx7Gxaf!sFhew;>pmGWLQ0Uul@TJ$beOHrQ$4j7V3|WzLoHc``-}asmG+$tbCG1p zy^U?NE6t&GGdf1IZ&FOSoO)TTC`Q|y);xkM{T&@Wxx^8HH#OZPgqTYtDrOiCt4%V6 zX>Dc!Q`gl5e&ZN2T@}`_)HP;EsztW}JXG+L*3)Dgr6afQz$-B`o`vOw)MD}nUm{~; z&yBq6qN^5e3Woh;^)nFblCfAx#L6VNanCecR%BGZo173C)BKtvei%s}kq-Cuzi6`^ zoi_EVCssyjNadl7vRLoDL~XsSN&=HhDv5M)Hsj#U&n~_YD2V@!&UdQ^i8@n(*AT?ei}Z2*e@T_lD2mwCh<62$MQ2n8QNI7ef2baygRNddP%OvPj&G znxgUs7L`O`b5y&44%DKO8X92{Xax!?n8fr{!)UbQy<%V<3a`|A_fDfn8yUS9<=b6D zMQ5iHCr8lu(DTN&s)zEP9-PU5)#J6-2XPApZ8n(dF+=L4#L<2uC%b5Sar(p1>!iop zLHI;_kg?QU?pCJRx`J+#o#36c$ym>4*Oo{8Ngx&WiH-t%e8r!iE3sWM*071uMjZTJ zQ#FlgQuAY9iB|RGM&G?Rq}L8PC?pbg4vGGR9eH#UotC)_Nz1E66RMf~`RgVGx$w)q zm8Gfg>H?dR;i(QO9P-^Tr~te2Kb&m;^B5aQgShuq1g3+(`)PY&@07-@$*9cctN+=3 zxBo@MX5vp8`JeppGUGoS5Q2N|&78aa55rG|tGWslio8jq^BOU_SGgov0@yR6eMPEp z;5Zu6B7V*-k8i3oeE82t@zq8TIeY&7=f7v;-^TEtuLb_E>qx~2*}N|f(MhV}g0KBM zXaVWamk0Ni8KvjfG4D6tE}e()8(#WDP6A{0M^Z>2swlKU;2}}rEt?4RXb`X^D8TP> z{#94+zfN?8y#G6XY_R;hPyhP*SF`>fppMYLU>>DeF_u2X7<5705)yf~x5~VRRdyz9 zuP03e+WGi=U)O*8mU`nt^*fh9wsN>f1p_EN6v~^bpB?KiY2_(nR5#}zw2^L5ty@y+ z(G8*QS>A|WPjDZ#l34A5iLp^vh-h<4srV<*1~rr{vgwX|0)b#JMn#6@IDN~gKP#li zq=XnEz}V=j)B736eH5>zKR`T}M?a+tHoDDyU|!eJ5=ZDNeeuux+G#Tymh{wU9mc|j zP+J;J5Y;hj^!i1@;*&O@^SbdwC1l*xajeXP%yS6g5YLT!J2h_Hqepl{ZQh9OPDje4 zkiqQ_>!PQ6dk@Ro8X+t)AMxgUs}lxe4=j!;lX2jNLm-K#TzC}BbIbVE6R7uACNS-i zw@Sk24|F}yjlnyX59vv`(n)Y<=E?F+dQrBZ7esNlhHpd6-LeAYr#>lrwz?7~Cp|5x zGU5r>b^CrqGKBk-1=(780{~;a$XdgaMng9V#HqNdnv23H2B{dynTtH{R^`Ptqtiq^9flqI10{Lx-4kn-xs$tm10#KaDyIt$#h6;JZc2ql z<>C2?Q<^+lSMif$3CCHJCEB-vFIMY(2|ts$4&_)lQ|U?H{6NHpwQ&wA4}97OKctM0 zNdvM_r_~Qi!PR>G8X%d0ST)7N*qcaZljNBG zY&#d9x0=VKG6AXN%xb+GgLms+)fyxlHKFx^k2l8JiDEncGj9I(Y~R=Be{X`Vx)6)~ zH8ymZea4Q5yNx;#?w45ygr)|p#D&5*2CTDUk#P7Nu@t@YQ-|2~%iYbmqmK&J%2}xz z;kCF4Fyqr4D90p>^Ix*k?+v{*_qOfw__n+xQw=#FwzGh z(mV{_%c_pyEn;_0JdJ~cn8RlZ-xx%ZS>BE)S3OcQ`h4qwYCvMXp-)l1v(i9#Rf1@{ z>XB)!-<#q*tQY`^mIS{jUq6G`k|dO;f@ner1^o6>QY@xI7geoj8`KVTB?-7k#3ht3 zWgJmd#YU2DKpQ{&BAHbpo|B2~4XBM`yU??sMM8Db(LQJR=z9Yl_gD+)m0HZ( zE;ochg4zOT+~#u;Sr~|^pkj+{hU-za6Tq4t9>c=2c2>HB=q|aXc+bBmjOJOH=jY)U z?Fu!@!*aWiHur)ySHoW))y4&hqeWF|pCw%}9Btokbs6(9c|4u@e1QZ@0ffq^t&F3H z##oM6=r$_FCnqM z&nNl@^@k;q^o>^e`>_~)8x1XS{Ls_`-}%cUV`1s%{#VZ)SgwlKB(lcpSIfCu4w3ZAcLH@&3eee6~2kX5g{KHQe!eoo3#vK zI-@zop{5IOQb{$iBM>Yvi6@oa(_*mrgS=p5sw5Mv#nCw|Qsj9V8<`o!!jmUX7!y8t zj`P9v;sSIi;CNMJGSBW?PU`Ki0k#=qtln&%8AM(>vszNKa^bB>W);2yu!@b&=vVkS zxekX(51_2nveP&8tsui*|kOilNdDy&{>WZ(-PU)*8ws?P-&oH?lOk~64kdd=)%kT+!7#}X8AcCW1WI%m^D^?63_Hz2(#+VTR#$} z6jN9*1Koxf^WA&=jh_c?FRf2yGRo5JJ@t#EHn*s5QlDvmE8o8GO}F`A$D94-Fgk{$ z8+}^RpEHn1BX%L@#<1z!|Mj@wiTmH69#3xEumAbG+UUP@9E@lF%`CI={epH@?77778F4V>trrU%Z}jdS~M9v)2HYjynxNs%&M)F>|6sThuXS#6CZd%l?4>p~odR zsYXz_f%&;p&X8m*XxLtb;Z@e;yJ<`Jtb#@AF*#m%&(KItF^;9wE;EoM_&_VxYvD9x z+bw!DD}Ux^oXM2P`1gp9c4VE@>Bn)F+t$uG=%`cqk5gTO6-i;tAR#Dc*@?P%Y?WKd zYDws$zE5J<6(p@SDM&8guBmN=U;{!xBY1C#??oJZxxDs{cowsL-r%sfz#3}C9Cea~NjHVjY`$(LHN7(jFU!T|ugj;HtMRf!}9-tP)sh3}|L>Cwtw9%Ne zz+}?!_<;t%YU~%gC!RG1+UKJ>dcDh~RxU3F`p6^!vKszTYU_JxP;QqbG99LrHcBT*`HKzNBsMN)!!(INtEfn%h zy}sG{&4fX{|CtmIxGbJEEOmKFC1`S&9yL5|RT?sxQ&Adh_SD51U!%YaU6N*~os3Sg zEn}$Fie`N)8Rspk&<){OYgQ@-tl3rjr{66s!p|0^k^Ul4u?!s@9;vyDV^TEaIAK2# zjDf7>*$B8rsjcoA7#a*=SQQMTtepWivCv9Ro6K{g!@5H->a`&Sg%7J5;f@O(fA?#% zZC)Sh$`YiyzXgD`+o}a=s%p{}{jg7w-*4T2jWh;Ekj-{O@v#QD#1?H8WDklOINfP$ zF_8zTE;1QfG9(#A;x#xIeD zkl(o9L>cy5mZ2vmq1Ec`=XE5Hp9(Eta1Im~oaMVTbOps_uiqP84El=n)6o3v7okT! z%XO%KQR%$wGmr{1Z?P{(_-PfMr0OVstf&5j!+O$!d5|-iHmk1pbu6VB5T>Yq!?y;A zJ$$i-02!8ynh>OzCWpu#(P+i10NA(W!tr-?3lZ7NpI{97N0!@RJRayCXhQA2Rqw=NqmY6Ovd?rn|) zzAeXdo8Tn|1y(pOXH&s)9N`O;oe$s}b|Odg8c=`4U$jp*-9D zR0WXI{-WBFu-J1F(zhg4S{dzAG-5ns;-V?Ji7c09VPg*PbW!VU$iQ+SFqDvHr2 ziyGz;&pQ$>*G|G_H#2qgCN%&@n%CSECdTWFl7LuDn_%qq5GD5_p8`|T8H{vlZ>CJ3;nHw*TU;>(KKCygchn8r7lafJ>fQ_zB*(jWAMDen* z6Mn;nl}Jk}l^?_k*6V2VUqh=#QqXm%t&VM)8ky^t9~-Ehb!tu@+Sn(|U#V5fb1D%$ z>UEx-nY~-$ZQJI~)IhiQNZR4hoD0>IiQr1>aef6|I(=>|ALSEAqm0g8_s=P@ak5L- zHZxsuc*OO4R>Jb$69c~0Pz6S1>C^6IQK(g@bTm=H)Tke!xSp3=Es6+*I2ji z#6IZquC9?VyI z-U^QE#Q`v?O~V>0GpUxO9WC~2l^Y-8Tg?@$5dzEJ`PPEP2nA|;R9C9UCVfPG?Qn9L0NnI;J8YsI>6U*zLcuUw-Tk79|xcVG$aRvA=+E=QASr^ z5i1e?%{lrHt@H;^q+45>k&Z$^L1E0%YU`#!OYeqAc#Aoc$T8+c2Q3iV){d5n z%84658rLG%M?5H_9$D@f2Qs;G42@G3b^45FS3i(p-r>07p%(UTCMXFw_XHf$!>E!4 z%?X&F#E=fyq?`zT&%lQ+f6teFw@X8fEOS{7Q7%tv=nXugG1-=(q^9|bBO225GtONc*qz?~Ox*uPYA*dv~9ztM4Pc`OVX_Rerxc=}Mk?`>&M)w^m zQEk?t**uq`%X3#Q>vfDX+_tO?Ti^%BI5eqZ@!IO)bpKafs{d55^Izas{kQ%k^y*)p zdBOjYXa1j=@!#zG?|skvuWrr#BKe=dWTt>Xi$Ez{X;Qwolk=b8OD$X`>zlxr#qxIhe`83~O;?-5|}3e-M<*_>cV zTRmjt5P2W!)3jgSQy>n2^pyG+p%KfvG%mbN4{ArbP_W# ztVxGUgo5uOQ~EjChda?`&_17B{bJ9wvq{cyL-%1)L4{M;B?^wC#UyYOj{u>^bF6=8 zeIc?``Lj>T044jJmM=}`(kc|Hw4kFYaG1j{xv2_2XE3ElH4kzZ0kL)T>%TPu!d&B3 z|E(?jGM9fD#Q&KX^{?NY1)9Sj6#oTsr}F7dgCp551!MA{NYcaaH9yr5rT;wm_umOZ z%P1*|j7%HW*^+jna2JE$09A&Z-vp*|7r#F1K1mkdVEg>!z6A7m=R_x)S>c+FOU8*`XsQPWCZ@W#2C5`qEAQpcqng60ZJLIPUkFc&g7$ z{!#e%s$$F|xBn>odsP~us$PE-{=F)J|J&ODYV<)`?VaeqXPkfe&x=&AdHy_C@^@u1 zXca*R>KOGi>f%NrqYQJVop7GTU4u+|@2XEB+mB}ZSLkY3I`YH)uP1R&Xm5SD_P=*4 zg7?>D=3mzg`2IR;DA%t{vOkMImgM(DYn#arEnG3(}LGg9AXqUtl}(U85`tXsE0qH$U$hSU}EKTCfiuH0H5$6i`F zJmQ;HddfRuq>Xa%ly0dEcxxKq@_y8();MvUC7xy`wdz?8kxwLItuP0#rmijZ?m|D( zRMR!+es={K>1y;*e@JD)Hb%XeukMRBC^dIj#8kE|jMGnAb_xn#_HyzEa{)8wnz1_R8eB&B8OoV-fn8&DWh0TYNSI@qKoI;Tu+_n%B6nQG z&t_5jQ&6!G*P^(5S*%{s)V|J#3p3K@|FKiF{PdrX(;ZZMx6iF)hHWy6KvyI5{wG4fobeT5xiqJPXOYINiozmzmq_gv#=HzsVcn{Lo3ygv`Q2u0`U`rX=M~+|*DKE>#r>4H?Ov5kVe_If zyaXZZxW=UgQ9jj!%Cpr9xN{Zx#DQu!AHkI^FjN~+fB0^SIS0Fq&qW&^BO)(F8DQJ>NaB0!_HPLF77ty?o)g?`yQfg z31TlaQ0wwtYsiN@8wd!CcS(~sOMo2rNo^RECURoTE$o2hbKv*oQ>&jR%F4OLNbkJG zYc0#W5N9V=0UQbod;ck>UWV$lo1Gj zB@A|EoR#&sO>XXt{4gMMIV(zan4TbKBc-ed-iobwe`i`Qks-PsF|sZ7vQCLcXEpwf@6VsYLURL9IWZEI z+`2S?6abTAJaZl<^Q63QjSD<#a1Dq@h#|GncTit2UC67Sot%lse^Bz6nX<9VJva+} zw3*{F=#WYv^hO4LJ$I&`b&LK^KiB6z_H553VBAY{XZU@)cxa?|*G2^(v0%g4)S9e_ zD*;NbY}GysuZT_y2*gs7a@ZyZXIItM@u}oeEv4=3)d7nu-e(o{gxkc@rgH7IC@JDL z0V4%4>}G_0JE8RBLVgh>_ZT!?I%JhWlp9|vuX&3P8k&{;K?TmKz7AnZw@O-kwwXiR zIWMeQjasYJG+_xdG3;bw5Ps zge~rBzeahew-KrrX&k*G_l%U?ap^)r>zNq8woyjGGOq_N>Vi^NLmLb&zm&aA(S+%N z_~iE6PkEj_@}wG%$7)w=(^ikVb-e8gp%!0j?HtCRZo1Q8>3O;O@JkbyC)kszhX`2; z=2q5GY~ikcw4IxI{=7aVe?-h%Zn{VtDwzNAxr^~ls%?q{Z?p9^OCHfcTV$r=jE$sB zsC)mD`Tiysp2;FiJP6z8&;Oee*;2t|jonMWJn-fRE-~4)`oeGd)00<<_%aH{nK}8* zgr&o)NfgV@F0vZiheYEM)yp6ZYNopWL0+9SgV$1lbV;Zvb)$hgqiJ3`G|No{m5pP9 z{-BVSAA>uUPCDrsPdqwDE34y}DrXA(1+@gfRqia?6|qV;RT$)Am3{Cq%5Wg<*uh=W_VQ5-b$0A_TV7V@wFl* zZ7VO*dTjMHI>5ww4p1R=)R*mCQm-FxF=5E17evYy+ef}p{~Ybt=`uXP`6Q?N&Dj03 zi)~k_1OT&^1(4a>g2Ib<`&NT<@}@SZvZ(bKD%?quGhB){c4&BnBz%f?y=NyPsF&ww z_B8^_l%6(3nJ*A-2z~ZuwW9}ur_jOshv-k%;Bc$PLi1-K{f+@TZf{~U=6?6pL!zpI zpVPzUxkPq)AWg9!Fvlc+ z;HWaVF)}GL;e0Rik{xwOmKfFWV}GxN^X*hwS;d$*@ve?X4q<%XNq7~NewD8EDk?`Oc%8@>5iGnxVwhDt3=$&a`A zefq`fD(L1Zl&4|petPW@rS+q^^pHW>)%Km%>h-tNlkXYo4A_%d zVuRh3NxR$Hy>F}Z&_5^^3T5`wwhV~(qW!~VpQb*y0UdZBrzEKg;ZG*5ASPN)B`>~e zUYYar`5Xr{%96QrT0=Jmzubf!lmVbfL}-I0ZCKokSMky6)fgiNR5Z?qC*W!tzN-h) zYu`um@EmGjvHT`8s&@;NtIZC2%DWh6|`5PP^ z`@h}z@U!!abu5qp=qNSm={RWayBl5DMT>=MoESyiXnT(FGC|sS{gSPwzZG+q<9v_8 zbEdU9^mH7csvPVjV7>`H``Dr<5{=iGdRfnX5yJicI=(GyQoW%PcY+ras|_B4xy|st zj22y9dkeH`o@#E@HlyHJMk{@6w8*TKDY3?${baStXFrS7%PTm$L0%=4l2S;3&BYM`dTr$T%F7JVdz&O-zloVx# z^od4h0zO{j6Th9Za=nlR!3~yT27_qeg{XBRszB6H4`%?M4R}WB-aKbjTLH|oUD(M; z@7^Z<71qPYg4c#r2iL2>2a;@NB4uG>44@^AjbGJYCcJMRmfYlGi0vV1e47$LyA5qa zN%`mU3EK+&whFZrGu>>QK?7HS=A)}SEs#XfedN$^9R!nE#`5beXu~UyBVTG$^y3E_< zY!`FVWw{VgP_(Z3?vnPRP7t?8PrvTnif!BE3Z-M@cagljk_6xNQ(9O5`-F>sKuMq2XlZR6YljIyccB?RCgqX{2!3w@h;jq|q zuh|>YN2=MCVa!gl%sGc1k;;-U^8)M8S-;&=xpln996eu$m~yBY>Jl!E4l8B5n2-y@ z?zINTzYJztzyS;78RVHVLdCvh<<^v?;pm>Wp3VgB3ddf;V&ib9PnXaq(-&H#PhP1) zL7~I`lN`hmw!3g}Po580YkDO%TF*+XW1I2i0BY28a*MCHM$_2d1}lci)nA~${>lB$ zt)~{Pkk>(U+;=~Hk2bO+>!0+y$!zIIckE|wcAvi;LVca8d1c3B#Mze75Oa=shKrX| z9zq@S3S5&xR14Y_aNoarN%i_w=Jn$ykL6nTlNJO+6IlYMt$<-j^Ll)P^3H^NQRIaF zc23fatG=ok1M`TMwp_jsS|y}H8eZ?v=V`N8;*;|08Q$uC{norib{4gSd{J~O%0*f* z3`4gWTw+6gLq@9epXU1bNnKR@3s2|HyUZY;?;Gv@51xEm{F3|B)HU;_o2c zAtu6t5MpDt5yeg&hU1hXSO=XxTAXS##sAW`2ozgEf9DeqvODE8gMBQC;V0d-K%%?5 zQlb;>tXC))YS+Vtpk87?nB3kMDv)s;FdRBRe(k2YiCjBnlr~8m|yT#1u>ItxC!>DP=p>gGAe?Kh*WlIKIH!UT1 z{Oh0OXoy*5jMiY(*&5ka&|KnMGDJ4r%@=%7lGZgc*{$V}D)dwhPo`3AapecpecRcN zHsv*@g`9%QPxI2^>RU1ZMBam&oDX{1RXxs0+?*M{v(CxA+z@izH62)Q1u*zryRADV zh90myFXH+fKTRv$HR1Zlp))bo^)mTm(3Z+;Y7g1Ob|w{R$emOQ=M8@r;q>y88LknF z`6}~h&|YIHXmqwht@CZySU-51@uIB8xYGD}RzNlMbvo?vFdxuXxyABvP$e{PE&^EiFSZ`?5Qa0sFF?fH|D>W?R; zIZbrApuAb_3?O!{&+$8Ef?+i#Eq4Vl9^J14<*XOBtdD2H!3o^gY!&~Z39x2OznKF(H)j%fA1FMD2=s_Y4LyQ`?iz3)lC zCmM?`BpYvFCtA=J*^JQT?0Xo1Nt`rX)6Rxe`!p?#brq{b=hbW8b+EOy8E!C|d&hNYofG+?qzGSzT1q;05A)rF}}VlPMqW>Q_w39X)tH-n_{5G0D({NXa;i zg(qDaYY@4%R*URGgIS5clY%Qb4~jC5^CA7=MU z!Z(04O-%2%3#`1T&Smk`8yCCHKv~+cL>qAXoGWW#(KIWf_uGXx5kirwE+V9_N@2n%|uI;Irt?T7Hs(`2j@r4JsD@HG*V zMhD13JlSC!5!U$_o0ub|!B8C^P|jmePdg)d)cs})XRcIIkEqy)@A222^qhgrM2+F$ ziL5YrG<6>wz8W8<))2oPn<;ThIoO9M^t*kCa31io5<|vL ztkxLm8BZ^#L+_m_k7&hEcFx9ik5p|suhfL4pM268px-K$%}C5sJ8Vug)(V1@t2C&? z&8j4HeG=*`t5c68b}I&|mlA?$!M<)3B2G=u3vG?AsuiKvlC6fcp$;67vsR0qQF!-t zEB&AQGu($iqn5mqvf8T&_GkxNl#7qALg7AL4T-j&;oy&v`3G<;!cr)Sf{GAS1V`rl zbU^Z&RaUH56we{1L>1mA$=?|AWMBUu8y)+gedvDhOmcK-Q zdsQVy^YUt4uORz98+TgTwZ#}sfNI<*bLU9Q#PZXsSoG*C!fxU_) zc4RUer(XSxDWVnn#C=bziD&63J{&}nh!68NhQ4uq7^DJu5Ch)u@^DZ8#qKAD9XO-| z6Mu~0N3avt-!3tPRkVtIcmr&MF=)W0t!lAScCvEKW6{wy6LSCpjx|L=-HiLV4fG<&FRY>NJTz-*IURveJ2yaS2%#eVS zQ-D67TOBBQVapdNO2sa>&Vu!s?LHHuaYxZt6mHup{L`d~rQ`OvcZPO0kK2aTb+J6B z&%9ai=420e$RiUCY9Sgj8QN?Z|7qU?}G5*2+lr<*6q%+G=d!o!vsGisoyZ7R}NP2F( z9KK@1%P4M^5n0&Bu>C?Y>MZ>RXoc=2CLi#yt3oxlgSw!Gqt_{vmm|3*IF$F&;Q^zZ zRURY;(a@#iWgNeb%?wqcqzA23k5_5z&oS2Nk3GMoXR_)XR@$lb-B?tl+k0ENSS4DN zZf0S)0^hB%5{rVqV&e>zA|;rp0G&6^BifErt?Oc|@khr+Jl`z@33(igE4@;_we+m9 z^r3sgi+zzWeYO)mu6*(!IkBJPIB@^5UNg9|Y1G9lGEScZK||)j!s-{J1yQLolk(as zw~Kl@_6`_;WJSy|Wv!S>j?zUe@bQr^A?{s(?zGfehg z`F~l!{YStc0C;$*@i_d*Son{G)y^ZNBdS*2Koz1A>dmS#M%#`n*YPq%mE%(IO`WeJe_lElM7*keWadEe+#s!lKfB+5`)=^D7S*YqknduYEen~>RAdiZkvHehUIXMoQf~@!8sbjP zN7AY?C#^VAKeq|hU3z)k@(spO!Z^xlJ^;hfp1D-3&B&AQYmKN2+t{f{ciQkbQrYiG z#yvd^8W`GwPWsLXzrdhN`f|A!o1A~FB&KU6WjEsoj&aKr?`QK%|R)1r4jdFf6 zw6s)_ZH-9$tkg7Kzz#i!Dog9+n|F8qZPb4w7 z)>bfg!L$^jvAa4e;`B2-c4cgfWn91xqwgSIC7sry8vsSATQD({ueD$iGgWmaCN5@p z&3Ll3ua>w{!>XA`7plp2-CO+W@;!oKWZ-+mr-pr}or>r7CpEXl@@o4P`t5dbNDPF` z4_zsib@WbYss?&o(rTJI6ko^i7E6ywo}9{o3Zsq6LY@YQ{>Z`j0xO@L zPEYL8{F(XKZ8@HT zSMKP9MrlLGZpH1BMNc#S;piDsz5y`)H}r!bOT4c(||;6%w}8{+bvxjE4uXVvO}Co+NJtgsPQS zL@!JqaDzvbc6VrT(X2;a_s{NhI0_stmRP#Fu5>w=A1P=YF)a68@Vk@%CkE>)Q-|7J z_d78pl`wZCOtvcs(9U0F$R$%vGZyeDNoJ;#K*faf+mF3fVXxhOt2v`zMox}l)M@{Vcb zLmKxkxZ-6$Z(G=EjKaCx54=y_w6Y#)S|{R^HJ5QWEAH6ZYO9oDai}?@ody`{PIuW? zQx%bNv!>l}MM*YS@>KaMQ~#;kJK=R+U{S*PS`ts}{>QFE4V$ROYrG1dkH2l2Nr!5) zVT*aJW4~vm+fqCHn|Nm7seN5wQQ5T2bx{6Q5N6QnOVFQopFa-yE73Um@1SV&B!YfW z>`;B>MJ50~2bg)LJ60MO`x*#!tsV?Z=HPaljye*pwoLNf7tU5YJr#F!$JnXR%xfrTVX zk8wGrLHXp2X1G@>>aB)6eVJR1 z@Opicn;Ra%50Ny$QxfGPL!ClDhX|XqnJYSQncgaxj}vVwMm>(Bd(8)_Wiv1tP; zd)mRDvkXJW8=R3c$K8oh8oOqRbW<4JoqmLi?|odHV7zvQ=W79sZW2KfkQDsPr zb81ZwHfbi1N~XGxP_ACg-<``zZ;DFmjovR$nk1pw`HL^B`i%2nw8fiV<|J?J=f%Cf z>378&gGJMYkxFv15_9xM{3kLP(TWoFy{$ftbR{ZXV}Oox!j#`%*7jk=Z4)`z^Xgz1 z4~l+BK>Ar_XLRd{2a>%mY@JjEidHur?+oae&&Rkw7O!i}?&P%|I9wO$6K926E_jEI zIXJLUL4jxet^NhPX=4<9&EJ14c2a%c`TfadRFK;2vd3QIe{1OSzYAdd_dM1=H1;Ad z(#aO@elX_SdK-}~SoVnw+CG^=m+-FF=_%9Q3}5H3-#ULCJ493;ge=$Y9bNo&bZDE&8n;Ezbq|MM$5a1rin4^aM}ex^GKOaPiP!N2ypAqJR`oxPAO$yx z!MV(hx`yfrgyLU}IF?_hKS(Xw+ye%3^;HBL%5YJR?dgFz3V%09eG2X!brt(>K};3{vXKl&*X2MEHD&K)jHXg z^;r@w%u=vc-~3*CA0foV%JDz&V1Jp(|F5U+jefiQ-s~xD*7|hm#gdbAz#k#!fRU=SC{=_I zLI{zPPy-_h3?MC#1PDbs1VS$o2>j9W&AR71=YHqA-#Y*QU3aZ}c2?HA_q(66-<|#L z{p|hxp6vDQeFpphHZ(Q_95?^~9N7N=_Sk?MfbS0-{{HZx@4r9%{gETz9~JmPK;YOh z0pU}ECw>qUK6_S7SX5L(N=`;X^87hb(H}4Vc>aRCqLQMxjLI)63ctuHC@Opva^T33 zBLYVS&IkycQIHUoQ23YA-XDO|M-TsTXyf34p8?;UK5+2#fxV9asjtmEeBf()|4IkG z+i&iXgU62USO4|{;JX6{zx(cx!1srb9zG&)@EG90cLxuhKK#AVPe;yNx+ZJ^f!=-m zGUsiH$j_Ir-19nmUfr@=R73N+cVcd-kMEPR_hPa@D@@Xo)~~Rq$qgUqqswRIZdj-E zI9-r8%In?NAhECeTl!1=e#h-=IQ;#7-7ly2YXINvrvnG~)8T!R1E;?e`sva^i$mA$ z9{$X9l3BdiDR3`Y-1MQI7QqSg7TGz$2Yv*cOZ%5){YwlXp8(R>U;ZVQzb8IIA&)e(R`gS|)k$Hy`t>i@ z%BNSt(#8O%OurFIYg)rLe5={jYX#8xaUxKJ>zp|9L-2ReA_QxkM6%L#oVFiW$kYI? z9D=?40HA`VNJZCgN0$?a#3ya51I3P<|8$-T^)3cQ^-XVOB^sW}#VIx*SuZBNWp z+M-Hou#liO6DRNz4|)-29QvwCc4Q*qI^bvT*qi4 zs~BnoxGfZ;+#6u*ALRI4D(T@oLh}}00_z#UT|{NxnmQdGX|No!2RP68G7_~Cc5`>c z5!sd;uZ_xg9BPiHw{mJjdw3Oq)Gnu*4lEGa&-{=m5fx@c!QA@aN%;K06%-nrrU%4|eP;zSwqh z|9tOLU~Ap8z_CMIYbcVISms&3q3Ww(}?8c#wEfqt(7N$ERsN2D!p7DL&aVU3py%JjS z=BX|UzQArIe*x_xn{j{G5oJ5w4(v}Yi66o9H8aKoTUx!QT{hU`J6rsRE=iZlH-N*v zLzD&en7%!LeDRN8xJn&nURm0}Ho=pA6&V^;ujk>5g;&N8d*fYpZ z*~R)6ajA6t!Zx?l&VC4pzw4Is{>JTGM0FtQ93(mk@tQlGEqdCAp5Ik9I1rlIkzxg9 zl+RXEw*sIYlC}$h(Z~(&wMqZcl@5dS57^EQ@0P{&s&S7+)xg`!qj-Y z^cBZ7Ezhm04*QKEtao_!ir41o*5+H&b_@m8Lkhv~WcDi81om>{l)5cK9O5Ci%Ve2j z^}bhoE3$8$Qc+**G4@Asum8GpM&$5c=dw?Mg=j_e_ zuhe^WsT=MIKDj8JCnSjkXoPSt!!Y;Ns2Z`qFJMittUM@4I<7L;5KoU6k&&_a5?FO( ze#1{PYqw{Cg2*iF>x0a>6T3(8r{tvNQ-%kOutp%~;e^uinv;fDsK23*mEy9ZXN9(Y z@4&q4)*fIzV-GN6(6cyAeXs{;HsAxZ2fGYz9c6by1}@P8$}xq7ohtXlagF^mEo4Y! z%w0NcIKjx@TEq%o5;yphVynP8ljqJwln)dI$5;^?clrYt#Am*Pyft9LP8M=Ox_l)GF`TM8tB~m60#? zDa&3v4l+`c(_{n5D}G<brt zr@PH744L7=^WEUYtokBep}VfVu3m;-KX(zN%3~*Q!q`BQt9^Hfd z6H`ljfaGdBpDm!2^iU&Y$z}xevK1HWx9p@fnc*VUKNVPiWTNbIMwqlulwzCvU_WmU za5+?EbCT+-Qam)rRuTaUBoZB%wIqbCPcl9Be)@8)@x{&0f2?`&RTj;;Cj8MF-*D>P z@(qTRwxtzH8${u#wpa#q=pB=#89p{K9V9RdmcV3Z-J&V9$NW;h^LX|I1L#&V(i-Z*9XZ-SRC2xCmWbi>k zLT8kjbzDuhgPmvSd;Clg*0j3)WV=Jk@xva+ye!GR#XxYDKGj-(*w82^x`aB+j=J6L zPDG#wJbiGAwK#o+0?JmgYDnqZ*D2L~6pVW+MaA5<=O?cmt6b?~AL2RfLeGT${UMKa z+XFoAR*#c6@8)LKrMO(D$Ap-vzsdc$kSN7ezs*GGdA6vygRJ_pnWskff;-+$diG0E*H&4 zWBm(Zakb}V%EvR>q-XX3<#(%pibIrDuk&;Kp$ShTInQc@t1j{eodp+4S3@51O#(dl z`kKsjB$o(R0dn zv}18CF7sLSQP}a$kNZzoJGGL!2ax2k>vV5-PNvrsjhO8Ly1C7~Ajc{7%rn0BH-4K7 zwsUOP;YfrO+O~Qux>kBA;76XV&}8~S1|}et-TE?=&8)ia&m1dc%Z>P7CbIRtk!Mx- z-F(FRvb74d;b~Tp3bMz-+oTAr2u@G+YMI1mxajL9Ero?Y2{RCknJVj4_TSWV-UEm+ z>{RDnf~0rj)*R<8_W;3HVg}lf&3+3Blh0J~djS3Hr|aUYNn;%{8)mcJ)YpNz4>K=+ zfaLZLb;mNmAz+(N6D;-pnPQr!fvux9jSX7E4M!?!atemPZ&OfdC=Q{$5!aLr)L(Us zS@p`+oUm=v__90O9A2{?-e5Zh5;VHgol8-1p^n2r&c(}c@;4B=3iKC|DIIv z^`nFIsr`EbI+{1rWYzhn-9()B0H9i1(>(wzD^ShRqwJ%*w@V61VPN1+&f(wb&wi_y zeRuoyw#?J9Y_Vo7^PW!kA=ysFTVG9!nHT%H%TuD(DX!J!BvpCia0hjELdD_a*Unga zqD#iBB;ARQ#FNlG6(!9yI~rbQtFg2VRVOvaU~{zt2a9J5H`ZO-=6jz$-AQ}@!MuGB z0RQ45n3T|BFu4baau5c{oW=*wD8EI^*s}d4KZKY|$f=fezvX~DlYhzrB_#%qnyM$F zG93NgSvf;%a`ixiiJ`2>we2)g52eyKM2dmc^)$Qep*L%KapP{CQQgc3z93ikpp^9! z`1-5m^`-GIHK8t(>BsCFc*C$$0lDK14h;(?!=sFQY7py!(3%YWC!GIN3VVb=Fr)Q8T-a zn36L7QFxV~=Qfy@HRm@Ql|#cjcMq2Ym#_WF=A^-`rWFP)(>oy6o3fj{pCrWrwL82Mn4_`x z(=4V&CZj56M5@n>3?!@sbzURmhP2EySXUA(nCjVD9ajPaOp8l=n#1pQf=)!MrFEpM#W1YvYg3p`@axbyen^dRZ zNuLkq>0A(gCWcz~V%VRz9`GO@d*ew`;5Mhq)&mbwcTEM1i1z&2ev;=gvOfQ%|&UG)eTMS_hX$Ui;ih9Q@_#qc6 z@A4`e-)pQY*=z5<|1usjBjQJ0WUPS)ZA&Xtw7`h6sE2ZMF){0}N5f4J#5MPsY1ASD zS2XCZqCGg+Q_Vrb;(}iIj?Ff%SR~rEd8E1gID6j3@gbt$Ki6@}>*;s}IaX;cJ>-f* zQ`!Quc$~HyLn*Xdv#3Sg$;g3a!pokGEsZe__1qkC?caSNb*8YKp`_D%%YH1)v8dVQ zZKjp9gQDuL*lQ|OSDj2(zK5pasML1maF11HaFwxjA_)=_@XYak-g0~0ho>?H;U=$I zC5>FKBbzJ;>OEX@;`6NlmY{Lyql35pe#ZItr47pV7v8QBy=N-rZ=2zaUGpCMs|Q-% z{Cl$h?fE00{x~q}voBUoI4n6y7x$B*w71K`{lJzh`D?}$5*ca91S(x3oo(-_zyn`R z`n4DD4yv{APT5`XuZyk3cQZ0v)eD!H#$RwubD1T5kM(dYw(-jzfbHWB3h_aS5qybw zTTUr8#~C(7[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Ë==l#DxVAEY0S}4ATci?Y2F}3gXhE+)5Hm7ADwf+ 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 A(EtDd literal 0 HcmV?d00001 diff --git a/docs/output/settings-audit/02-after-desktop.png b/docs/output/settings-audit/02-after-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..9d2e7c3a9c6520c6b5cbdc0b86c5096928921a48 GIT binary patch literal 83440 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

-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 literal 0 HcmV?d00001 diff --git a/docs/output/settings-audit/03-after-mobile.png b/docs/output/settings-audit/03-after-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..c53d7ecef49769a9d96f3ce27a56abae37234158 GIT binary patch literal 37809 zcmd?QcTm&M_b(izN=G^bq>2JTdM_ef1Voy2l-_&jsGuM%^Z=nr?>&SPK#I~kgc5qM z0cki02~|u z0O$4t__F{|0ubQg6X4?!5a1IK5)u#*QxX&3y-Q3(PC-gZPs6}KPeVt?#KL`_iJ22f zN5{s`#`%Ef5$_|$`yfHkLqYC`j~@ONfL?P+@Zq3rNa616#)FJCjMV_|69Ssxr2MFDba1O1|BcNs%q7hcq^-Lt>5P7Nh`VH;-q`V0tPSL0OUUgk`VO&b}++x1@YvK~h2HxLq zMKR+1zvaIzbNd7R6?NOiPj%Y`xPyatyA~eqKdRtR-MPn(E2OB4N6qp2eO?_tjpsyS z*LUGRXaMQ$h&xocQ~(9QbsiNJp6*6<5wz(1Wcume{7kGYJw?mQXZz~=na{7&O{AbLIE$t+_zrCTrDa4nP9y%qy$4V;%)zk}GohRP~Bw5bsWMmW_6e-W3OK zju`H4h$LtB#S3vpNujM(v1NRlkmsZ&V&pI(0OK+}ndFIf)2^KgD=*s7QR}%cm3$Uy z2JU-@n;CGzDv3JV2_82zC^|n*EQE`eEX*n0I-`dj;*S@PpBcn@<6DIscACnOJnr`W z^7Q;wacKm->U@zkX{07DM2vN{+Ghe`sJzF-<D=AU zgf@a5sK_OM%GozvO6XliF8kzkFJj+@QPNMJK67x~;b8k8SJTT*EYByg01Y8HpcARJz>Q}~dHyOMAR;7=+2|*0oJxsv{zEbwNAonDX zWtbCXbv+s|>3P#EVTBPL&4(F3a#C*8cjFWmrB09$Lf<)0(Tm(Z+vtfW#Ug*dJ?zWu zv8ze512+{c6c$2OStcH8<3^U_NNx%T(c3l{cuy~+qhZ7_p6;23=c{)P$*l>K7C8DU zt|U-U_b(zB=BE@s5axBT5_7t81K5q;ipXo~9%pd=VIUab?7k zk+J4@t5gy{Q0B!>5>nLU42DmD;wbthgAe%g#wPv`^XR7am4@tm_H7g^yOtURjD{@~~vsm#w%#VhYf4JyR43H+Yw+wN`)gd!}8-6EoiD7Np zI=yIK77t$d14w#KMHQg0tc<7p*I=#Mw@KE?ts&HwoyO@bgWJvG zdaxc?W@)>EbAcIn1!U@tP0|Lu+HsOwH&u@oKhb8B5cVs<^anUv@;Y9G$&z zmxy*&Vi)5u8W4f2(C|MF8Wr}CrE4v5#=x<22iYvvWs4TG(5dG171)_c+wOforIo` z*)LZu7ORrP)vo4g2+Q2dEg4&3cKxerNzHw_=4NnM8H=)T|Bnr*ME_`m$*N|s+MB^9 z$*~B9tso$9e67E{QvWAzpOvSvQAwo0qHQ(U)&cwP2fEIcr|u7+`40f!w&3@@`-k_} zz(1_Fnv|cmz)z!()sY$jXui~j3GAre;wnPHPtVv$w>5U)NYG>BvI_g{TCt??desoTzp)CHl!8U?oXd^zw|Pvj{PVxS534y7WD(bF%d>&PDsCF7B`T293!B zl#d-IkIFbXk2HIgEP6DW7I=(3i$52knOz!v*%;oqtfuWiBheMEl>~O;wkEAXXoQ8y(Sqx{pXReX5EFg=q+qE=hBP*cPVM~^tN+jg0f)~1J4GX z+L28dtr^IYsevh9&S0i-X-*zwUz%q}t_9$=s#mBLq7;f=%B|JVVc9=XQsGu($Q11= z+Gry`&gITKH%EvCSztbkJujqsVI&PBoC=Su_44G(%1!UI5PD;qYx|3B>dPeFOC!_5 zx*pord_+RC70&*y)a0R!_0E}j)8R0iYmHO3h7K1Eq(yH0>oycxy9u}MA+``!nJv_8 zVt!1!X=3wb!PE;?;9>7pWpNxo1gko5McDOu+Tt(YxEEB05=A?Po8fHgc${=!A=c!` z$EIicY?8vRNYmtW>K8GiuCEf1QPzFbr?OD#W@gQh1(<6|^8~u2GGlbY$VE(8i#oER zHPlNe2M`?H&f&a-jhRG@&4IVW?fIP8+5G$ilzoS)gO_uw)y->#Xjjs#FVFXhi??X@oTPwUC#w@wu5rHNB51dAb|}QvRPn(>J91Cl3|x3{_tmK} z!tH8L`w~>WWTa?aF<-X8UQ#F|ub42a-v6CqD2;_%0#UK_}b8PPE~HJjE+&tT8LDzkpu#M&q!|~ z9Wz!Am#_BYNS*pFF0|Vwrh2#F!;3Hv&NvD zXDw_6zM}ckpEAG7yk9>Wrw@*in8-wKm0bZFs*+jX%GDqI0q~VKGn@DK$nQepJZuyT zaS~1{ow_mQj$1Gjqdq+@vZ(8v-gnC3c#cwk0MA~6JkNJntaB>@cD`?lkD|oPyP?H0 zX0rqc`foR|_Mrk#wlJ?JoRM!yy-b?W?&k!Lu6fYDv~&|HLe!#eD_LQh@l<_LEJNcH z+7_{hCFl5>q1Y_XZQ2`7kD??A6%DZfUy?`Y*X5K)w(dN@#KgXx0iR?v-;#O#nOq#~ znS?BA5J*VPn&5vT8?!yhM}Ge@%n;~r<6sQ*mcB#=w@ ze!p`7A!%1}US^UH32%3fWZWC}zL3-0_d-`G{4Tlt1NdBD!R}}+=T^6FaDdty-Vp0a zgH2%m{g37iTF3ei!1FipklIf!g*k=pc+!uV z-mE*mNV@|jA4ew7rH_GZU78wN>fM9S{HJ0Bd0_1+<3jP)>`|4WnrH?9IOt|ZU-9E~%IL?0)*NbT zBG7BA$w?_IFrR&1VUC@a9RIy%qZKO*0`Bi+Q$8q0 zr3!Cq&S@_U2$!d=@>7^pevz0Q+td>$d4WTxv+YzG{YK&XXVDJaiP=W-g6k`H0v-{C z)2fKlg2+lE9+{9oNzCiK-);)x7M*l|P!gdbRHB!Dw-0RSqZlD=;-7OLNF}t^ss!sK zVp%3pYDDtr!0E7xWVYtj{#z@;f%Hd975lj1k^R+))M`|9zvI_xG59LjHQ%bXWxL1% zA6O+B)g}wbVO8>7>vbTni6iT^lLLFu^(aJe^7tOj2g4;i`I8>Ck)r)tkMEwTJ z3{9km)3U^F%*)4Osq_kyYv=71bZhOmK&dBaX}dl@G>xL5@y(*dEplsi4{Dpy*SQ@6 zt~8Cfyu~(Tw*X}@>e@^mf{O82z6>b-JJDEIK{Ij!UH4a{=--LXygYjz*D{8nzY?o$ zp1g{qgOy2mkceQRCm-4%hhGTdCajf5jB0p_`bp z_mZP^L!D(bZ@ZO#h5vkbxw58q8UI~BT49a-ch_&)AIflLUFCiw)gJaEhi(0cuf3-Z zH`DO1&mrG4Sk|78kNI|J=JTaj-N>3Hl`kS8*f1ms&PW+dVj1T!u^Va_sudDwHuUmf5)c5Sa*g!*v;4Yy1HY|fup!zKYOrI zs!|9%sAUOxPnjnF;*(j9+%fAv3hIp6mvr}+I; z1GS51(Xi2iU|IvlY4@=59&P5ycB%5h`CSz*1K80C+1KjH0R=xELLiW$#esi%GFOe+ zh?;$Ipd&kfiBW*25FjccdlvhB?OR~OhV}V@wRz#bo2o}pxA?=k9jH*%V<}HurZyww z)X(Ldl=Cz6@#V_zEBl)4fD6QihTj4x!xsV8N5I0gPGUDzHJ{)t^~uG=H~%VduUjdy zO3GjGs0w~;C-)&tF_Iz?H-03@hh|(aje$LyVqtz}F2;F1g_BsCp zP>3%Xv}eh=g@iHgS0zS-dmKaVm5nA&TUFHdx&Qb}P@VWx$~( zvnKe4Y4rEZ&>_1s3<0~iY{B*QE(;(^%qH2~ukj`r57WeRZ#pkg`vxNg*tu1&xDbQ0 z5}?xoD75s^R!)>=1XLXM&_r83?l0i*`2z^Lk@6hc2@O44IU4)0|9v*3z^!hWC@Fu| z(ub2_L+4@UAAsY1*ghg>{N_s`UGI=@>lYPVZP<>aSV!HuAO-E7%qO_Rl3Ib(RH3!p zK4w7zb}nHdQ~~r{N}Wo(PHjVKO9lS{+htY6V#!Y<{-Zz95-$yrVEq z8UMQ^1bLTdug>3!2L?2(2k$gC{Q=Nxe(N=NUTq9iEU0W995e}VJ+ewtiZ~$0Ymz%i zulRU+Eg16$0DOjysSV;x4!3bGk{lyf3EWbV7304}GE%olCP*oAyL`96o2gH=yLUAr zK~QKwN9WA`ZlB~;#@WReto10CKo!m0NJ~p|vXEbt&@!`YX4W5Wnytmdh&m-P-CfT| zL^{IU^iw@Zem>3~%Ve^YG26Lr=D`IYdiEIvR($^WZEHgHc{l}k!OVU63q2Z}+VnY1 z=@u4C@~wbSmo2H|`+oq&XBV<>-^y#($j^^tH0T8?w-JF-CJ<1j0Jh0tw?$u@rkzfH zw>{TJ%--i^;+zB@I^Wi~QTf9fRjOLKF;a)1W_p~j1=iLiF$^dha(Cj9oT!WFO|r2u5NOgZqK%9)fo0?xtl?$altPybnkG5><+ z@cu7b$EN}^lf8?2*Yb1dm?dR`{3qBRJhqJh&W3k7R-HUY7Mi+yoRdrC1LRXn;&0G5 zG;uD~5gdN8af^zbQb3~Ps|rap>>5ND-P1^SP(3h?!An+CQPQJKX)Rh8y8jw4iyV)# zSa+q07XETZcgcbG5eGK;+l#)s905Wc6&Kxrl7d{#8S{GA=|M+~Ie|6h9&PNe-TR{= z5MqIzYvV|F@Uve=_K>7`ze1PF;*!d8M+$H2X;yzyky~Q?wNaJWera=!TBefmg8@_9 z1)1#Zrszny&r{QC`Ojql5`=iCqx2ezp>Q+a&7!8;)yu69dhnH4u|MFz4_$RC)ioVx z(1qvZ?9#(WPB!~WVoD5`{-Rl_FxZZw0Z3UNHQk`8gUJ9^dB)tlla*o(8NBPzsL!ln z-8{pj8M3`#pf8ecRc^g3G=?JNHSbOYj*jTPMAeFB-HA!! z^43=WM-U;=da=rlp&1@xQ0TaE)wqgSH^#jv;&u9FPEo9LpFh{hO@hmWl7wlH>xu)@ zwW8v?K#dG!CH4CQd*BamBTdh|=yyh%#?J>i#@Al#nQ*e5N;kv;Kc_?w2IQB1OxEik zcag66}g03p8n=~Tktr$Ttb$hTSmBl6GVt5{kmlhb!PArsZX?0iUK-0aU z0ZhFVZCU){3#jTnEpC=J0$nbttr{L#XG>_MVhgJN9$7(a>|msCeer_*CUp7MJ;GPq9T9w$)w&S@G2* zZbV)~^}tP^^1)H8PR2!$BOY0b0fGU#N>|#HMaCzO={C%M(oID}-C1&8xp{dtEV*G9 zlwFe!JPPvScF266k9?wDB>AK$MxQdUN7wQ@YZsxKoHt@u`kD4AIB?XHEr*g?NZ+up|m)z!)l!t z7(0?*FCS*IZ2=n1k5HmXy;Bw;E^7r%vj?02<((2u~S)!Z2-XYk}v#=N}1c#D|3%svi1cs zu+O=t5$l;8+B>UEj6TR!Ot-kKS@+vZ1{)y_5tHxZ!scP#v3I;a!=mwv&z#$Yj^T@? z6`71ZBchlT(VyqZADO;5U_>X!R0W_XUN&ytj#^3*AKoYK+dq^bYMUB2TwFvP^>|ew zRdj%Gl-v6-x&#un!1G3zPGuE5i5o{*16oT=;fcPfZRM@WAy#O68&;_MuYga%%D+J@ zqqTde`zYS>TUbRamaY1Ow_K!j1>Ybdi>Ek9U<5<=ZNM3Q&@Pq_b2M?>-^osNNWWtm zXLHB1BGO?@z`5TI@m4c58tZw1#S}HIAiTl^cNAX?H!I6)Gm_!f)mUup(Z8t*3ThCZ zcV}PcIN^WU>+z$Iu_tm-{X2JnNIQ)DlJD9rokNJ{t7n2(#FFZZ2h45lqIvt}?BVu2MpRijQvC*V@ya!D zS5t7BBNo!+P(vl+hr44J@l;-kCqAjY*k5RKr2*XOGBeTOOtw9TPS$$0@87_=P%P`U z`gA6ccz#H~<5N4^N?{QJMibvvRAe7)%vij>XwOno7i9SLnmf}Pv0s1YfR>Ix^KJ$= zm@E-Zt}FJM=X3|GIg1C42O|}9;WRVtW#y0_zp#9sg(Ynw>%!MoU|&zrn8)ZH3(J9c z9OwsgapnmX+^r<>=^2#rPVHJJ<10zpUDiab_{8q)WJI@tOR$J;YrZSBNbu#c;FE!A z9odsZ^NYuy(;YDj_cgIUAf3AC8?zKEC zGQ)5Jq-Pp?a&bw3-UXMq9?=JpHDZEk9sov5JMqy`tCHaFvV!gQ&NV5_paug8=Gd1V z5d;LSlGcws2_pa`;#cW4>5q|Gj|=as{fZOWo2%IVV^v5l5E2{4qpY7!_yBsEOkpxL&_5N zKUPH_D+yGi(b=YGFC0J^4dN?}m<@n>9C@|amFtlei!_FFUK3{DD) zXNS7gBw4gTK+nj)MU8>&7WNzI8J&jFdNc8(9l3f=*fZC$qdcimO|cWqS`Xfq_IRJY zU5h?i!QRRFBVC|@T)GA$um^r-VY!<&AwTR|k{?xLbY|h&AE7f7p;<)hYefvCJux!*?-L&2{d;&pYX|V znsXL^1F0S{Xm1>o|Ni~`DB&>(kNn%g<;s(D@{s5fn;HW!NnA0@urF1ux((1vhw1>B zg=O8WyC%Dlabbb`2I-l4Rzo2sj!Sv~??Ru%mXFts9ssI{jRr;|_}9MFK>Bmbh6RIN zud~4RZ?cyJ9bi562i_`@);Rc8gm_8X-Z|e66zW5KRowHLUhDA{E*cDx20}c#3g2I) zPF_o$dyT}*5m%+#j-cYQPrnp0_|P3Vu$ZesWu|MCGl|F4f_Sh%KSHCX(5uVQ7{3|Z z2;m^)^wyBCO+eZq;`p~%Q)dpx_D1Z_!4s#;{d4C%oDs0%7o{+YfrAwR`7j%|88bJe zOyevcH}}9dln;DleN~4N2$VY6mb6s~$NCkATOZRAVIi)l?t1Awkun^gKpZB|nwimn z?}lEP1!KSXuSIGPzvLlVCr##G4t)<1*{&36A5H0BM6zX(OL79NiM3jnD2nduJY7Ku zYw9X0IfcF2Yl2uMq;m#rdVd?^+Gq)iFQia=zCfXtlF56MT*j>ZT8>Mp5(ySUO-uc# zc6REd2lDJd)bZt!E6CMc8#$~np>%#_D`F^v5eJsH-Jnh*PH>gd`jDh2=9rS0s?3u+? zeQ5aSI@hm38U}DNKaC~a^)g$1lh`8<_R+_vPU{B3Z%;DE#cXLB&yhliSs6J<%huEj zVUQK>FrgDr=$686&$sSHQ z=_t@F#5)54iR9AFm0TuVSBm4J^1lqp!Y^(;vGQ;(kk8z^W_Yt_7n}W7>aJesSSl)0 z3d=I&F5pWyCp5lyiR(vBA-ojYMEd@#HD6_IAZPSMlQ>HuecIrGK_m1;+p$MEuMX;r zs)&@`ApB-AA+#w5-j!px4y`VjryI~x5lafpiK`lO@Q6^u`MMdW8~)95*L@;q%r!Fq zrh0NES64R}rm@I}uY}$OPGo(TiWRsVO*6~9THkZ6Bel7|g{r^<+XGWD^bCIh)@^?PU2gNC4O7_% zL5or~!Dc-9_tiWDCF@WNR?V&L$)k1@J~HhJ{7zCQ=IA~?co@gSQun`<7Vnn@jrCH* zknz8hd}{wcU{=%3U9M1WU~r4Yc%7x=z8m}p=hxPRg`km$-fMZtj#Vk8A=7T&V-Wd; zriFUfcM^BU^W1uO-;O0yxacjq5<2D(_yd>*G2(5gOUc$(n@ud`PrAyZ<`5>SsmzK# z#d%Rb8EpON{c*ll8K1{AP`kAIV#ChVbXA^pn_-*3gC*|>B_^LfX9;|q(~cXc)QWM% zZg`?WW%;hME~(up+M>AOLiljO2VlBOvb#=MGk@ig=j&v$I&&rQ+LP7olT7 zh7n?DBEsy5^>?DpJ7V?^a`U#V6Jvd_M31SxjhnFaE@^qHuOrvSihIv4W?<{2`0qJZ4vbS)J8ucQOv-i2&cyU!a}nY zJp}cf-N+Lw-jU(uC`DtXwTkLzUWKBITP8cEnarFT-*plO$hOhecQvW>&4oO0as9mw z!p42hFRS$Id4mUUz9fC0+hXZ?o>+&SuUN17GNA~UeE?b|WW)h=m zg+|hin-sPfAEh+v3)u&Vn7?W=wgA9edKC&b?rIJ ze=k#w=zrJQkX68T{{dj3kAD|Y{GO+0-qU=8m0!4#F?GWZI=wo&!(?n#Whc>~{!98a zAZu%$CH?BL|9NsPc12xAdO>VEu>X-VrWB=)ZM=pN;R-lM$XU-d6NZk;Fdd{&x0avo zGi0%Xj>-r~vEQc>C>-!YhP+b}`TbL6FMk!BXE*5TFE~_Rc%a#RDa(WleFwj&s^c}$!B0?Y+Qc7tMZc({)OMFCP-K2dePPt4iv zX>I`#ZaN$3R7tqcj^s78!u=Pe%kQ~m>oyHt&qj0f5<&HnVBGP2L&Ys@;kjw<$ZaQ#LQMM!m6OFhhQXKfQ2PphNp5f^iQP=~Y|R#WkOJAW~@Ij%lY)`!%D zz1?kBnCL5rq3hI}Mhv4f%F92A(WZLceUJvMe}a3TjXvx5)JqF-$P#PcJXm$dJ4b_~ z%(h!{AmW~|^jxPT7cc?9tJxMGnPk3I)#1`tq@bR%{bUe5hk;K*-emQUSpEuo@M{Z< zw5&sNYTSstSaN*yh_i+!VRUc?z~yt)n^%!>Q7?3AF;pvqqhx(i{%~678n&BM6WGq97Ke#OhdUa3Ln2 z{)<(A$wKA%jGbt!(zm`D+*2H|QQ3MLwiRA4#k8ZQQnU)(lcug z^$SRDbg4`c9gxaPV-}XMa=1?xQqw$x)44uWOZGi!K# z^F(d3pOeg6Nm~sF_BLNB1Vz-lUL=@`hY@y&%LLF&$SBt$p(g%Ul!`}Yklt&u`F2>x zH-BjTfnUx0R>u{O>>5fxx_1*_!S<4eclo=v{s0=Pzq^XZ#Vz<0G$F&DC@t3DW(;nru7@W^)a#b!XJ!Tb3=mc!^ht)V1 z%aTlLaZk>g*U{3Nay!gt8PrZmM_cXXjBnq!By9MyZREI%w5`0++B=)%O50~}p4Sjr z0_rvC;bybr&&i71x(JIRSn#}&j}&h;QpvzTlh4Lh8Rg<#J4s|mLPWMUhjUfEVDpO= z4YqcEyr870YtHSuh2CeBnX`7BHs1$~t5Kt$S?G}l=LOgxWhjbC3?j|t@O-I6d>JKe zg1!sNzw%@yX+e*~&%rF`i<1u2@R|8WWWCg0ExOxeU8I{2pY-<)1Xk@#RB^*V_3f`p zH`~o0*ENs1)uiU%74|Y&0^zY9CUy9f&YL(MqUeTn3S28=9C<~UP4#!=lTwnu9dh9g zH7+|1mG(VqUaXL#H{~oWs`+5rv$uO-!yjh95B9x}{PkFUzA6LF>|VmmGFcpMhxMIQ z-Q8)LFcOu{gP9)?MGdu(D_waZ_uZ8YE5-`UGwU#tFq!OXz>L8}KO?{P_7h3A*vs%! zQ?2*s3Jo_bK_OeI5`0ywO-fEjdQs*KoP^qdK5|AWUJG5%-Q7+?zf5?+7fh<7XZCAtiB|1w{dq8xm_4T_<~ zd%)4#VCR2{Q|eYbqk)sass8X3+W(p}`!{=5U%hZ!#E?1ne@)^4?MVQIk+3?U7UkLmWDT~QQ8&}MzT9K?z{-nLCcbI^C}4BSYO@^~vm+#5Y4^ENY^XDHbR)<} zAZ|tUvhGJ@FnsUnq}z%7)P*sr%9;E0=rdCMfR=B;gGy|CDw04@trWh`)r=J2k!KmG zJ&hutz}#P?fy{jN!A^NXRjRl@gEYz}wxR*sZ8-M~_=7ko%gMOj3Hda+Ncu9ZV* zZaasq!nocLIx(beo!xDOPS@nm>I zG+xd%m}v>j&1PmY>~WM9mqPqhx2Ia-9Ig5%H)crWY8+}@A$>-kAwc-7ous&Ax>CMJ zYQ?SF%fv{vpFjvv7^Kz zYv5WWooJSX0$cUh!RdKyH1?V-x7jRLgPVJW%I(c-@~CeRZ}Y5^{S%f9T^D8zxitH# z?h4Jaq9*xQcem}FAtpM*_Xm8KL3QFcVxZ>!SuJBtK)i11w&3Za-0*8jM_K>(=nBty z$?{y=!l>Fl$0p4VDx_YacZA1c@=!d@oUNYogO-MgpJ&GlIv$jbr&3j$Uc!WaVk8)u z!>QJ=h~mU#U0vaPN85OrS;>0<##Kpg^SEvZ$w!*$RL`hK+m6;~ZDBfSg>~hH?vsHx zrN5?w61J!Nf!jgV9#S4xwA?XoKz)uptPmSC@hjLMoao@>kxX+(do0x%fZ27w<3|}S3u*Vt*;5PbkEGQ8YfXN zrn{aoi_ttFVkyn$m+h06=QfW@rFN(m!?Z0_iMOzYIYBk}N-|pCIScK-M{64?xS@kk z1Lxq~Ts7Jd6>~GUQc@JNF%B+@aa}v_($5WUmG|H0DszE<8$Zf9)gWctBn4W_dK5NLNY74SKHAEDUi!d6R9IF3Gb9xq zp(J-?=^7a$|NeOz<9iuICi)`601?;d)d(L=(+%LRTtlr&=3LBa)*}L3CeVcidU_U?Q`Hb68Ud9By$Pze7SYE|E!Z0G|Ca}82fat4e z$~4@iEa?#^_txlZ?k@uDDz^^XH(IgQj(x|HqN)N|i7yF>Ib$5`BxeyqQX4j;h`Y~1 z%0zl1ephfKtW%J1D6A2|=WYCCq}N!vPYoczC05PAcCyjat`(E|%>+Ao)X!B}Q{;0F z$%EE_ihbVDi?xRPvet5PDsbmSJNIC}*yVyti&GnE&Yn-;YWm#k^f_CXgzyzKxn$?B zaAxD(lVn&TG3FmjjJ0lQtny_4{4*6~%IVNJt7xP_y6}U^n7T0gcnKa$_f7*4oI01G z>*mK-fhg7t!GoXZDQQgFJhm&5fe6yPLcr=~s&Yy>KwF__fkH=(U#$mx?<_qRcxiO> z2XLB8`Ehih%g#I2%OpA^u6_#DrwgQZ{?sx7A3dGBxWiIZxN6Unlu19NX^ke?jIY(P zaI_7>Fb}Vm<($^ih>gx~M9x)TRw^$86s91wJJ?#^Jl~E{F&A2ZA zO3$g1Zog~?=1)?XeWJlWvzE-ro!$PS?8OVcE^|F&YNFCovU@VRQd2{bZ(Mp^YU^s=o(1bT1X>&emP zttlMWcV!vXBSdbx4_Wa(e@Tol2VO@@0UWXM<#^@Ns#bDZMs%sS!=H zJ+qBA(4?7{|97njBW?rV_8Be5PpEHX$`VE|pKXhvlF7J$_Q<+GB`+p1V3sGJj$VU! zYkDp)L4l%lPh})^#3Okb4;bI##v}^I$-;qf+btQ>Dyz_v{YLB1su=wZ;L*)nzcto1 z_+_ii_?Hp71uH4k#(z_t3jR_ z5c_4C*d0f8SZ~t}z6H#ESwsZZxH+wrMYnzl(I9+gO^^(Q?)UL;91Tuy z)MXB_V)$dDB{cY8y`nZPeYZDAK+kDC5KhL%qS~8SNy^ZRb)%u2@!7-BiI-;OMT?5m zwl0&Zy&X@qNq|fqgd^&0%hfV+&IL^-)zvO=IB8k1hc2Arm5q~BCo9lk7aa7md%u)f zA8oJ2Q0ndbX(%Fp`KRAwVFacsM8##ayeyg_`wi{zYXFWw)~0=K*o3a3(eg3kS&P%K z?*+4zNG!&Ri)EvEBkhfkj9e$Bsv=%+qDN>1i`4mB6*+^T@{!sPjt=bg`8Cp2gH?8Opz!=VZ8StVw2%CY~%SJFNW_~05V0roSCprGml z1|^r(XsYzP;@b|I*A~Gi%nCk-J!9kro-ugGz_9NKf`i|iWZE8G_*XRQ)iwqMvk{<{01R6HU+NSFpjPHts2L+PvP}&ic4B?RQWXy#$7~K6+hMDcZZt$rxAk z)kF4FD5)`JLB%ITu0HG?Q^=v7_T}UhJW2WEXM*qdg|oE+TW#za*W0iWC&6u~m*WG* zw8eHWh|4TLEBK#YNt^c?Y*VvU{y82W>8bxlET(B*oh=Xyr1RSb>zrx8vTd2k7>JHeoriw zii1&Zh-bSirbaKXc-iA>JbPM1Wg+1XNa(Hg1fXRshGN>EM5vhsO1bUTIQPqPaZ2(4g$A^~V2Wl|0u!+}F~tQ%HMZ1w zG+lMxJuvgE{qL*UQsd-CJxDAY zREFzcsL450PQ*j@i^OqhFZoanm;V(+9& zP+TWc=~}Mwoq4qHz+v;;R|}|M`?XWF-ux+#px--l<~HHR23OW`<|22MWw{huP?3;Z zX8sFYU#U?ZwyY$<8WZQKL=WAWm2!ugCL+FG7;gq=MEX<7#&jN@9zO5-rl^|6#tTnb zW@lW^4>%(~hDL+6<+lW9)nmdXkVWz{Zq>98h#&EhQWA9Er-|$8(d-(sTyI1y6}8SR zJFpj5C7A>jIN=G)rwheR_DMnPfmx1ytWFoj?Nam^)0m3B`R8smF5(Tk7?O-`gwa~p2A+O*|p@% zh_KoA;qtsQs^LWwAHxQg}1I%&X<4e{(|(nVz%8V}VlHPB$4o7-uNXe{8$>C7~u^h2oIIs~yUYu}zPKF-P#Xtl|!ZR>IloUvF|5Fu30 zp?g7##8iDkll76J3n$AHRigV|k%|p;PQ<+iFJGvzDBD0~?LqxreXPL2#i|gw(C#gyS6N5Sz1zTO_R-qwG#3zsTHJbE69_+%;an$=%??G7@;n#s}h{PauOx^lniXD6J?itDT16}e(9Mde{t zkPy+T#HxVTAlWQ(BI9JoIDByL;YElKDivBD;AF?ve~Ft$)&JxB%aw+iG(=0y=a1b; z7A`7`hoH#iqe+w^nKGp&pQ-5Pr#T(^1Yyrh{0#A8G3*Vfb#d2R!H0aIeiikPRV(90Vt#7RnP2Qd?6|5ukYjwt}pWp3MZMMwymQW`J&x|}RZylc; z{ISoQA9pxaRxPVq5OI}q${CjpkI6;fi55t!38;xTUGC%mIU~)I-tc0k&qza&#(*kK zS|axPV`n%-R`~9jDOfIEfYjT}#KXfotXiv>O~t-Rg~i5mqI%VH?j7Tv8iHEBvic065K`P$++fCiqk!|Wb zz!Q((F7~$`aMdISjHq@BrTF411FtG54;%%MGxDR&xV@_LKVj3nnSDX8=y;u&=1b$u z2U1Rl$i*Cl)YTdB-aa%NnOrjkd>KBt&=SSI=`VB4!v6k2gjOoVv)$TE>}d&nKK*@k zH+DjeJ?f@^2u&Vo6{jQ%xyyK!%2Yh%R$duhT^^R?RN9_3`E*vUgPfDy$xM^g%O)84 zlq(g+6|$W%>fZWXiCuNRwWZV*PV19aW}9&-F(n%vb$=@{~sVc@#@vG4iVoGnDgJ~0~ATaT83p=}tlj=*Qp`_WDV zJF#lAbp-uPeU!}9UfZj1PuZa98*Z~yLm2OMTv0H}h}hUt47bN@Rz{J#5;sPaHTcSN z8|mNzEp;X{6GuNVpm!D#Cy3l%7pY(zqu#C#8*>ROcS;AHdrprMK@Fdd?}U%>FiL3- zGOUNtnmJWC?v))0YiM$VNXbg_){50*2p)``*?jLi{ZWb3u=H}BxztfIrxi&@yDpy^ ze#=%t!)7HZfkDDZhuw!8!4#0B?3xn0BYJT`QrBM5rbwLk{k-}MrA{BZiy^Srf@Em{ z)aI4sit|9vGd;WgorvVud@IK8We{U$OEKAP9zw`#U)VO`;`U?!QClV9D-XYp+$nb zYoWNi1$QYOg^{qCm2Ym1_4nAotR*`3@Lo$; zrfm3#m!mPfnF3jb;PfuGARm)+0XPKal^nPC;)vtD$`6T`p=FE+CW6q=%)nOfq?Czq z#klEO?4O}NAEZz&e26%ygqc}Q4XgW{NqY)=H&AUY>(#BI=8EfPJ}bHw1gQvO51BLE zRa#U3q#B4F=LG>h%$`BnO`ms5y5X>>jeQ5QhLpR2@Bx(iV-p}9+==!z?Zb{}x?@7` z=BW2-Jc*<_6qDL9>=+7h|Se9Lxe*6TOlqUp}-H=Mg*cC(g%ur0?`=TRPMq3e|3Z zm}V@3dF6(BH@u+#+GDabW!ISzM#Stv4|?`x!#>-EW>QhjXkK*qF6*lDsKMII)w!OQ z5zmyH*0k1hEg9`6H7V>yvmd(x6Uwb1BL~LOZ$7GB5C`<&@TadeCp~l zYn=(b+HS?o+KY6i-U%oUyZB*RCLWvDyk@*Efw<2{ivwC&#qWs)ztu@PAb!2qQ5l%x zlOOgZp+noEcAAO^To(z!n4~*qS}G--kIM;hE`6h5+5xPGlv9@Lbt`KEb3u_Ppg(M3%YvGC{Yh9c;ray%Nx zgrGe_dt1@&>~RK%LMO`Dlmk>B;+yDup0>}{H$*!DG)UkH-MtTMjAeBOW7cW7!eN=Q zd2a_k;pLOC8Hc?DHJ0j}_uGGbL96VZ(op$@dqruxbyZv@CE+fK@Sf{eV^d*J&6lqz z_V>w6<}q=?rJhF&#E-QQ{np4>4-MN7kpeOkeN?zu@qO;}kI}X;!v`#4p;t9mB?Zar z4KY&*cQD2#i>Y?zvl7NvzD8Ej9$b(MyY;a1@@rDI8KjdKemEe#SZYr!4jT-35l=_K z?Utb13&yg}wX)f^eJR=QjI-FMxm{(1EO9fLL2+uAqh zo-re_tMX@dIJ6L$$i!s$`kOP6@E)pTPeMnK#v^zy4suDul*N{uJYG*Z)1`_stQmB+ zDxixtYc(HC-lv0A>d|J}$;&Uh%L@)w_BJ_`$r>niDz{UkUAXUANRAwQD=4kKRMhI= z@mX^-=44FJs}Ou1GwOhGa54&dBI{QdszMxe&1tC#p#yYH(o58A5Kvbe(>ajeT~e@8 zq(|#^j!!o5QB+&4k91_Q>wAWsEYynwV-owm26Ie^IkvNPHhSD67m2dvhCHrED^Wm7 zV{=AWCSukA;E$>447Zozk(~eJ{LzEHvnswG2p9O9kq|p;^^KXf!p&)?V(dTMf8mu1 z@Xept)D{p^_`0o4v@`K#=Z)cYOnVT=3__df(0Z+{3icI_U7m9sc$gh=` zFRxC}deodnHlZmBvVe6+%t)tk!3kY(twHphN0+nN3h7`UPqU4uo1{rux$o4eI6|9i zBRqwFw6kMu5fe7T>`^#PYwB3=rr`*gfV$p;P{bf@zEqat#B?}7N6ETMFAC@PhLg)3 zZLG20DL4Y~d%Zsre}lcCBdjf(x9nBr+VHHF(&TomQCepO(o`1Qk-&Tr>(!{Md0Ip#vwMyOd@G-~(3>!XfqO^e8z?nLb&5;GGDs(x?npo^`Z_o)a1ZVZ&hWZCpn^rEl4jEiTjrdo@ z=J!7Di{$D~^((L>z&Y6$uaybVUU3+Aox-x_9YC}vRiuNZ((Asl5yE>{BT526j^R-f!PE*$SL8XmuXWj3n?#O)K z`*vh3*%sUIxEF+^_g^Kji9dA|qQfR;Ajz^$j6t?0Vl}YhI=&Fptb4eT@eZ4m2W0z^v@@&*#*aR7 zc0;x*{+9Jbw${U@yJt<74wbE9l;NjVIt?K5RkviAsb*;e@SSNmVCSG{u5Bn_>CNg^ zg>8cg`N%dggn4HE9m152>7$;U<#H7p6rV)UOAnkKV=niPD|IPJy82R)a0&D@I29e3 z)e?VwK^SK;-kIVumI>UC{h#%k4c0P3z zpKY5d$EQ`5CAoD*;Ss|DJ*JN@G79H?-w6n`WAtd3E((8s(8eAh&=`#!K!ENJ13!pY zTlB4t-Rfzp*GgL|V?!?iq$m$HY=v2&I<*abdan`kUET!^LsNO=pBT*idW+UpHTRTY zd(rE&cZ|Ef6;I8UP@9p36UHA$x#67&ldizF5|xe!y8oyZO?g;>*eWkLdSv{ca5r>J)J60kM2ODFBco_vjD@UXXO@ z$DjSUKl+ga5B^HJ^ayA&x43iX zG(dvV9Be{~Thp`dltM2>AkNO%TB(|EZ19sA*c2cpxv^bhPJTLaHBZiy{)3Leir6FK zP-~FNt2X}#ydc?g#Z?$?mzQUiB!Y*LiZTnHJw4WeB_!}+yPgQ$!6SMJP-H|N%^!*O zi`rh&Zo(m0UnKL&C${5*NbWzIS>$#{?G|LGPzrF0r%cQBwcE(HGnf-YWe63oh@?zX6uJojv%>MU!}ck07z`dH35mCaOVx`G3D9t- ziHYvV3G58!VL%rHOyEwp(LN_z*W40VeHV2ogA|D)c_T4(cvE-QL&Sz}qM9OMxRN>1 z%eVl70BZD6Uw@x&&Ei&;{Y}M%(<}Y=K5e^!ZhvdV>1(`C1LJck8&o2Ac`4cqyFp$GwRZ!r$40bG*lFJ+# z_d_N9FMQz+d3nA)`W;w#VuOR2AfS^z9tX-uPV>&}LqZ`(w)9i2`kQ9VsPlYx zYc2LxjupJCd=-yRQqZKS+`qh?KQTzoIc~Fc-hz=#UpW24u9ALdb3S98B)z^B z=6aKz{Fn^-?~17DdK037-jxYt-j=K+hk7M_Tblas>|91W{{Kpq-~!a-#qj2{FcU&3Z(l=|8O(ozqJX$J5J)^swATZX<)1kj21+vKKDHN6C;B}6MjR-BE2PqI?=TaFxY=bR3lk@sTHqX+g+s31h`TPi5}>xDd;Q#4NL6k@g}yvbAJi_* zC03`H)7CrRnHDCY%Xl1@mnrFo5u>CL1Pcio_V0Ec35Wj?5pm|q;p!mDp9vm{9pS@$ zd6gXT9SE;xFL-H|20oB^;}cc=jzhhgIDoyenD9%=T8ha@t;n;VU`}=gBl(_*qXA~7usOv4ePc?gAv(Ql%aV$NqXYNzPJJ<&YbH8ovCs9;f9@gYZWR&7k>|TAthE0^btf z+(A5h*%yZfJfPm)BzNmnR62Q8ZODY=5zI4#S2mXL#}BfOt&jO}!&uDxO#*8Py)Fcd zGm{JXd3hF+k~Z)j`45fJkBlYJcyaekNY(o3_biwB0`rW;Yel*c;tYzs*K!YimB+tMXU(r*WN^&XxM%EMWcpm)mABWKPr};=Lm_%15lMCak1huX5Ty%IqKerK(8y zLn(&yy<(+*O!SO*9y1UoVIJ*Qc6s?HVe5`R`6LCo06+M_v@NYOF8BXG|0nIi6X${k zuql?o?Q$na+vrmL+r_Ysyy68(5Mj+}*ss$?#j_CRxVy^jdR_cvpgR!~gUdca3GT%Q z36`-R&vaILmwl6jjQ5DtZc>T}_w9~#?<}+#f2}uY0&N?S-a-3MT zpgy!AK3euhRtaq^te^Q%_uyxSgS-8PgGH5iu~Wmiwt(Nc5tfHD#sOi15ix&<$42Mt zoCP~$S%;?CK}AKTOwjXQi9mb4-sqarrn40V|6g^De`0)rKl&M!(rV(3n}-juF>lmS zc8ZBc!l0`~`Ovk1PeM|UhvG6tHtE0C_FUSMCr_J-(8tO$Wfvyu;~^HUZJNXT&R^hK z7B_+G;^2eD9PUwvulk|O`(bL|+?-w?-07fpICrMo59+nCAG+46t4x-*p41x!xqhD~ zXc8MU_+dFiJ>452S@bJw?sCR-Z^bP%R7Cx97+1->G&(KH(_fVPbhD0Yr#RUUPbg9J8vr@6)`AzbD;i00Kzdcf~Q3*D!B$Sb1=v>zZ6Indv9Hz^X&^qEhk4 zDRuDdSBqheE8Pqi%+gGkENj7w@uV*Qz={4BDQ)P_C><7&thri9R#lg!57gIxf~mEp zO?r>=f4q+rM45Uw(%Nviw(o5gWH|SP-94SyF;DDFROwfBw2i)#D}wO5D@*F>M1+gI z>G)}Pz#4hi1tz&qX8(m4!EUTin(`FTvy%o&AZW#r`^0X&?i+%_z^!k@UL@SXlH4!G z;@n$NzgiF^lk;Nj zo#OQF*<@0vA3JH&UcL=oJ!dfgrPBL?XV?|&X3j7;b}=u7TV7Zg z5h_M!sL#B9m)`EB)9SKg=j*o$T9bIouS{kk9;3Sa>W@cXqS*hwq!s@$C3SDh<~poHQ{>6(QH=M^CB8bltr?&@ zZ%@PGd?tft5}~D4i`gIU_mXGQ=c;WhDG}4qFFIZ|u)BQ~k1V25cs2)Ri5ZDmdmG>6 zZ-BMZ_j52$e$ud)gLPPm_e_;O810>tinD1ofzeLalCWk6k9wU!&LljP<%J*9crgeQ zynN79qpt?#JPgd>;K6b;mx3nMs>itJZewuy$v&?r;OtugdiW{XZ!I&y=-(r zRSE3gOwe~b+ENGwC1o37&_||^B`%jdZ)YMhtA$*NT>Tg`v*HBt zIoWJiUA|`%8hqQN@v91YHm!&v@1jZ7@gdy`0o-(4s+#?E>4&^0P0V2a((30@0W-J_ zVyYr_h(#+K&tDW(H(;W-+Jt|@iT}s=$GI8p&$QoDMZ7O@`Dze(Z1*JgTF#>`wf86E z06*HhrRdht=4MG~H2U@7L3FB`oQO7nzp7* ztJ-X@ClOl6sYrYB*CTryed-=Rb2vNYi2ri=0+YhyQ^vp@k&gpTKE-P(yB8FW?V2tD+vt0 zs1x?B9(J6LEzhU*(AC)rR;E0s%@_r-t@=SMLkjjEs%{(ALm2r?5y+ zGx2!uLND1rc5pFT$A0Zb$3?%>Rwk-SmNsEv#NVs`c-Zz~D5}_4L%y0HWrOr3uAY&S zX<>VC*Xfbdncf^4m`yi>f_&EJ1MJckZq&|+H)YV%*l@J&Ba!%F{wQ1tBf$|@pv}W= z`%u$zzJZtG*rK7Xu&f}(LykE)R{@R_n+ z^G9l+ZSv+^`Pa;83l>PRkX*l!k_EZC)02qyGhh$?i>&(Ym2=5Z{(v1bNSJFPr8qs-Eg~Elae{ zZ0i(P)%K;#BW;fa4X7ovIO5{dCovls72$IPcWFaob$pwX2uhDuZ1P=e zlQsEExv{OOFGetXJp@-toC{jCgln~QG_ZwET1&~qU+=ji(eY2hjN^AkYXu@4^74IO ziFT0X;6Ba^i2lZ1YGX7uQ*$>k8nfdW;?yobl7p>5s~3=?WA9puxzXaZF~qrOPdct8 zkV88od1y7^wGX;yL2WFrvbcu~FyCC~?wJdng6VMif-($({70gi^&sBiOR&O-32gwY3ewSge8qR0|y2Cu8{E zr*XLN=&L-AR#^)=887(x*;KhEB@zzZr~N~{?`6`b%Ql4o06yIh7_r1m-&8w?xB9hI zZ2pVO=acy#CHs?&7VeHdH{^&GinkPKGj+gdcnCmnnRC1+b9l=i;rEkC%KFKIURxyR zo3Y&8&6Ehy;Ry|Q=j4YOuH@rW%BE^_d5@Z$lHV);%m--?cxuSs3*Ev2BM1`vf)Gk? zyZTnKFsavdrRM6s@TO1hdGop+*O!hX4tA*3bT*$`qJiEP$nwkcVya@)c$0IU9|Js# zM9ytpwNw^D9>YYTK3%1q8cx8~bg+gz#&T&;e67No633#dG4Dl_GN2u3$keE*Y=90K zw6~-)UeLviv+A({f0+`A?U7*~H_YvEPf?zv)-yR*uxlqsU{8a)!k#76$je|SB16y- ziGX2 z)a~zuQDQ-L<5#?0is(f$#UE&>^5mP9QJ?E(uM|;vb6Rq)yV)$2nV_ud>gI(b$-TH7BUZcEt{7`j&Iny?p`MZ)jNsO_lcO;8Kd_gErQ&9~g~YJmo68`2wY zvCVBz+#`$3TJg7YOL1fTF(9R0VlHMq&U3qj7f;75WL*#H97I)=r=BdXC(vP|6&Yh$dHj?SDqrrs7nTvLtu zR4<49{QNqC+L{*g=d`-PGEdAzi;9YLBZTBGELLHVMU&$*Bq#{O~dMB zu?$Z}CpXZkD4W<5<`6@7_k10n4`fDj1#?fuHpo#+SI(x^Txe2GZnqvp_G1EiW5}_hY;wM8Qee6CN7JlxgAme1roS=DmM1li%dkDc<*>l6ohX7n@`Jc}r zSndNy^AM6uQ3hAc(}8DLL9xD7y0YXXp?JB!Xe8-EhIX=2hdtQKts#kdmAY+PM0PsQ z72%!Fca7Zc5-kU=yL6l7%oi0nNc3YQ+|^ap=_j1~9OgI~y))CX5zX6={&zYjZMQm- zwA;Ty7KP*MsMM}p2u!oIz(5RlECd(F{9uecEu=7oXZuKRC)Dp19&tMc0-*lzbp$HY zB)CMl)`fciCGu_RGf{5$_p&4pJiT}h5g}i+7fnva`u7P-h>jTEM43k#Bk{ts!~cRn zdW%IGME2JWzHQ~d+}S1n?!eps9eb32FY_NDr~hk3Ot6e>$=ZY@EEcWiMJi*1eMgCi zy*9@*pdG3q1CdJ&dl!z{4x6O%t)BMv2r%`wKEYno@?b5j(>}htq_|c4sR=MfWV6uyckG$I^DJ9$4@=1KQY`IdkyO!$rRM9#_$wHsx)0?5J~VC z9&HLZK8%?CqqtkXr*XEaul!``T8Og!SaZx8!#iywJ~0`~7VZ4^+zva{W=ZFv*ynUY z_u;3CO~h0ePM7=2?FZMSFcOH#WJ-fM#RJ%mqM@;|GFZaAAjic}0$1cAVZfWMbqPi9 zHoEssp(ZidHR>TXYJN(Q0*l0~0@9v4Oh2MlYh`|mc&m@vkFcyKiCLZoyRrsopr2!ZDQ?3O8Osn^Z(e_|08uj z^Dyu9PYfm4?_H;{#lO_{n3Ue`?Nde4wnI5;9J0;f0QzA&T-7i}iP&KSt3oA5p|Sfr z$8_H-yMLWt{g|@p9;fQWTLT+bDD~ z*lvL^AxQ3!5MMZFYnM)`7gN~h zcxO=&$6kaFe5PMe(iULuWSH*q-WTnyi?UQC?TUR+6YBZyM1!$IKA|%IHmL#x4rX_KdCWhk@4sA`k=G&%=xIulXVct%z2_e|N^c{`S-8x| zjbOu9CXG9Bi+{KAG5$=0vy?}OJTAP@ED|q_Rbgy=lTw$`Cz%MePW_o9I}L62wq;|w zsgjR!r6bF8-G332DY5j~)v_7*3B3@}SxiL2GOIOov8cW#(ihT*zLQRkrLYiQhFNjY zUx%CdX=ANNDr2}*FG^@*e|f%Zvr$YT|Gq+d2o1UHV;r4D%$a4g;KBGu4Tq>aO87V< zU*Fwjm=7!;KCK;Nh)ixa8m^}J{5NR>MGYkH5fia4x zC(=7ugUAAu7@!=JP}2a(!f;NSrQs}8)0s}1R1!>4*a}FocIdIj zpMF$@FD=Hb`kbv+h+3`(ZP_Q>bzlrR8|2!4Q{Q-GFZ{p@f$4CTu5S&Au^*lm8+sl2 z@HI_}ATt1XJm}A2R7~_qY-#LO0GS51y+d(=@l1~l#^r;DkfeduLYPQ*^>l^a_^>It zMI~61myW^9zE#`@V-%~8dqF~B$BxAZ1rj|yd-po#hkoCM-G*$g0ch&i2(!AwmW!SrD!H?fYSW; z7$F{>+`MAfq|tz`J)ycgJ7n$gT~57=Im1=6Sj~|17W1T&uGRidZ25OrH3kwwkwB`i?(W)S^{R{s;*o_c@$XD%nV2zP=c%G${W9}d%$KM;1KzKD6&-v@67IH` zZ>3Ea#!RS_6nDY6T5cMrnIqX=n~U@Ii=B7C!Z>MwpekK&OCaa~soSXb{(t5LZS3*Q z^rKQV`)K8M*OZLDe&uY2XA?x|Df!8+zAbTngg$MEkY+8R^$Jy$3diVg&V7^VM2_TG zEo*u60Sm|!JnnzzS8*Y>{%z%xohuuDU29N0*PA!-%4Q@qzpXom=>u)lsNgl1sVr9@ zP5QRK+_(?j_quO5rYfb#Bq0**fL_6CHpSH4bLs3(HDO`CiT0~~3m6rICW{$HWTWWC zmJns#vQT!~`nBoWsE2Q@2VeF}76QogX5KdADk;uf2;{F~l1);sayVpxH z*e{g?TQ?z!$wls=pao|?V7_go=oD5(6Mw(~g)`IpsnP_!o=;bR8U7a4caC?qc$!)K z>(f<5%8>a!n2;uuXJCOJ3J@B_$=+_o;yJEl-ITf|&Dw|58M^mvGI>*>{!jqsgx})N z{mt*f^L04DvxbGwThJjbF}o7c~$0OdwUL$Q`N)+;9uz=tvM$r5Pw0{NGbpx3RX^o>*`uf@|20WQmB8r7z6 zT?F)SyS}!DCBmKWebidB@_S@z_f^8KF3h_4y@lYSMSKi(d@e-Qr6a&)qfohYZsE&$ zlYvNE6RyIHNcx8uZhK(5;;%yK3$?7*P2N7qJYYLh09oaQ5FGn7xJOc!XEc00&)Ot< zf!dkkyS%Zi54oFYFgTqlnD?#RFfmd8_8LMm{m{6XD4}YWa2)JX(4erhA3ZGwJcS)T zCH%Q>NMw7#n)f31$vC=8>`wfoxBQ~1GX+of7W$}|{*x?6^@~^5IF2xyB<3$9GGOIG z{on7zZwc>fYgz05W>^1BNdAA85YR`(b?NMKbO-;T_(cYPlnUsOP$M=n3|+%6N|wBlBb%shh4?TF+xIc}$% zuc0VWDW4TJWmWaq%pIpHq$EEFE8}kJ4m71j&YPR7J&8Yr;EIZ^lC&CKtwF+lD{DeO zGc*v2e(aEWLq-75WjHoV=KV}EexM*|VVz-s>9Z2MkutdfO$pEc1|8*R5U`HCRJUJ`u?gd)&c=0zSn% zzULdDs}YHcu@g$M%C4`YGWj{wk^h{*%@mDEgnz1iY(;19?j=qiPjvOxi+J1 znI*n`D|b-i0Gh>8XIK)otpRk%J@7d8OXPH#(qX)=X>>n?&sS^p+!r~x^>+(xou@m- z*I!@eD68*@of5}NRboXj!7p1_DURGcaZ-An%5qWLTG~48OrdD#$v-iuPlSf)^XZ5r z^Qpd1Mb*|_xXq{61sNGNWIDGf3Y&67jKtT(2lZe*5)kZyEruL@Q)6=}?x2GfzaAAZ z?H(xV{@UWAqa~6&PKF019;bJs+)@7Y`R9WP5rXZhK~?+W5B0-B>PQPYdo!NNIg;1< zd6Gk~g&Rxz+xvSooSX5zZ231Ri^L!wr@DQrmaH8{nj9F5Bg$;#ye`zwQ{sTI={s4k zw}OT#2DtpR?T1k!4N6RJDv2*+Nn8Lvsm*45nIq*GrIA~jbx9ZeC~K&7&PSm>NM2m# zNQsTW4o+{Y79tn=~UQL ziVYR&kE6l0;+oByJIqShw|8FP7=BT@<^>QY*}ie%yvi%Ha#7*|g|C;p6n7O{6%|T8 zc7PVxa3NE6XctkD`e^6_Y9Cfy^#JLla(mrRX0MhE`Q>y!)sEPx%D%&NYRBGSkvF;7 zdTN&2yjw+E_6}k7|2@hOMYaOfW#A$IhIk-4R#9;vF-8y`NCpobLP@xEFx={x?XTcm zc$)VZDKzT19t>(9Mt0RdsC%q)#u=z<_QK^Ew179RUxR|e_c%qXf1MYWD-qF^a}{PO zbwohbY*KuvTUuOTJKnF(>_U(;ODSl+5Jg<6pckM-tKncFX9rLP={zMT6>*&_Trs& zeqQ{UmH;ajRv1KGfWL2lVt4C|IcsqdXH81FAv#d*K#ljfB(=lvP?Y}lJIrs;alil)V9 z8V7WTZY-4lVPh^7jbwSP=6E_NEa_$gHs0}U;j`a1w;!9Bxxco*>0!CGl29JB=M@Tv z=S{~J`KbvuyY3ob5eVkSFwl=o=-Zoxx3u(pI*)Ev8pW|qI#ni(uDBa#ynn(#@5zJ? zC^mS|I%C~Dx%X>Y6i=MX0vHoBcBZaigqsk<@~gzoR_J7^Z{I^tJpH7#GBki{BToEB z`$a^@ktt8rDA*pZ{K|Dguzm&G&%ih=W86f?axyi1$?Kq{QzmyXKc+H zQB@kDXi==VqkC~3gi<~18^2}(QsdEfb(V;t3JtgWEvn3n0bP?Rp(nte5`@=?lnMof zpI!C>@z*-T$A0)pM1#b89qmM*>d~tR)A3Lyj<~MjHLB@cOS*Yoegy?W+a93{Mc&QB zhX5j+?azAK69R1tiHhvUF5?;HhZ;6|9ep4StK@uR}e_GP)Dz@lt7`#pHB zt3756kVb|9@zhd-kas%iqz3~=g~IHc7~|71jw!nLwLg}dKYoI)8^f6PoE zf>Q2TF~BIP)~H@OPAQJE)hf9dtrNiUahaGBQj-knoivl7d*h zPVJj}g@(fLRibf(j0ku+ndYp9f@%A5++k(N;QS6cY+f@+c67}-P7cm(3(&M?qX8mJ z>B~LHR`_idqeoCykiE;F80SxluQ?C#(_hpd4z0CZHji}NVJ$XYNNFyl==tLHWIwmZSzvFGo zJM+ZCxyb;bGi{N9EmK8p85{r-0Sq48zRTx~dv|LU2Ga1ynK)vc={?Gs=?HCB8dP-D zO<~`*PlrGjMv1BMD|+vLPG0v!rs*GnC7E5UB1M2zVhA8JS&&2|-G`DlXaz8xTIj>k zh6G#@zVZDBN_21hayK@cgUKy{5YK3OK(BLsPG`%qJ!IJjrQkb>9>!j^MNRGo=!j$+ z6Y0W4vKDz`;|)Y+9oR%B-<;ThTHV`w6uvqqYIA0RNhL70G}JtNTc{!PMJ14#h}rqj z^fSkMGbeNYng%Gd5Fu>6=w*0oEI(iCJDTD|DJvgSVzmJ~BKNk* zuv;WF7!)mqM|DuLX7<=cos=0OU@_yFyuG-}UG)t@mL1+gW8D%$8nn!oO<#kg zg>Cj$J*|BC8w868WO{=VQ+Qxn60O6tR0UZ5a8qHh*>O?W4kvEXt=Rry}g# zoW59Uw?W~T3ZmGgeWKwG4~R<;nC>0X#Kc5aj#RjSr$>5`o-%Rakh|(1i_la1m-#Oc zCM6dcXdimD39tGcAea1Ec*xDlQZ@DcRV7bXX}GS=z1-CY6(1N}7&vVlT0qk!R!rIr z31vKV9TZ@@%P=^y?tAC3zS7Y>xT53JnH8@#XldKYIhd(|HGc8FaQ!kp`uW^~u**i)Qt#y9Cps4wAfxc$S~ zl)~0~zXh$wORF6nddo>uN_Ua{O{7v5(!;&=Rt)}cnGLxblM>A@Zlz%VO{R$!+g|2U z*{|Eu(D4glj~xeHsxLHF(g4b4)YJ!@FQ_SXyQYapKCt89Gw}rVLhP`b z@HqaO>nnv}YBMonVye-|+Ue(ag%@^D4)!j>N?}|5X!Wr#1!)u9bTOGNFli$1Ny$RR~d~W$43AThA@EAL(YMyup`A zXEJi0B_!=CO-R=39sb3>V)Z9RqvpGn^`hI9`iqmODTxpt_Gp=LRjxeulsZ2A(dB2U z$%Ub@sUO$+})G;~PLOYYDwdC@4wE-kb^1#tJw2e(cT&)6(VTnr`flI8i z5B*>vDD&?AD~2%TzDuY9YDTEJet+`Ae2){Xi@&vmgxk?3@gF^8jIN_doy z6XK03kA;psGF5hi+vO?IjPei3$V2`-m}s99Enr=OMxa_znK|hw`F+Cd?ielwYmm%X zZX|GluzL*^(W3ygF!$565LSo`*fZr5&)82TbO9rUOCuE6;SY$hnP&kcq}Nv&Q=MkF%b^>^_j{M$8C&t zinsS2749ty)cb1ZI1uEaYkJb7AFQKWbS%~!3AJHhK3uBSk}EYhi>`(m&D?sLYSS z4;kx8(B&OlyZ<75?gLq^rBxvg*Lbb6SlgrsN*pS2(>W-7+sm-(&r(JYn%dgxVO(nZ zbdV_+?Tae>N|;6WF~t24a6OYu`T2laO2Yr1Uocy*!p z^GoS<|uK&>|&{^&XwOZZ{Cg2mPI5%!$U zTl|)^h2i0iB9GCa4qA1t0{y?YfsV{yBUKd0cR36=?kiWBO`l9InO7Nj1{Qu(w|JE?*mfN~*xheyK zG+FvJ#3$#-xDcCw$^G~s35q$ReR$K2c1U+|nnHfdl)!BWb5pEXr7d+K>kthNhmJx0 zsq-1<8edR&&39AglR3^uYI{_t`MlBI?dImOjm~Zq34A6v*-dTUn%EYjZ&cIN0wk#E z_op@r?IlScvQ(4RUe0fPC@v|=CLeZ*z7k8+T*b$#CMf%qV#XO>{Pt61_N{Pq>KA+W- zX8j+;kgJxu>Y?z9_5~o(#6;A*%&VB^%mG1KycYGU^AWX@l)> g$?eE^$-o4OcyR z4y)?8lCgzdH;*={G0t)0akq(|)xEM-LDww1AhJP?0jUG!Bz7FZYPBfn3oo$ACzjaa zV!hVz5}oiFq{#`lQFg*0W=?JiA8bop27f`Eon2=(Hs~+1!e;iZRSYa#UqK-PxS2-A z1u#NlhB%*a)0E+5mPVQZ?>TA>Q$^k*gSnrw;n<{S9WP?FPl4CIKF$%PU(xb)s~a8} zha1FuopJh@0LBzqbc5nH#kfDmq&ww$*KMf&TCWH}RL}j1F~^N@qUR&1hrU@UZY<*D z<-C>>Z2qn%%C+m){IT{)#k-sBPWN^{L5Tm8|BQ#_3s20juS?OZhqGwU(#fXXVfsL%__; z`MK2w@k3oOIfXsc{CV%dT@TCJ-kP#>Ql6>E#O^yM~A_5z;uPW_}vXxfw#sv*|} zE7(u3S##YNAGJ;LHemJ z;R6;q4VtFRc~2&KChmXRhj)HQHisIA?m^iQ$qNUyIDcp~nwB}bdKcB-6<|Es0Du9Q zy@We#$EJ)=^oy@dT9s403WFG*aORGq<3cayvVZX(z2qQ>m39liSnfQ&C#ZqL`th58 z3wt!^fe(wxk#)FN_WLbA+H!?tY4DG`kE32i0g4p^o_Iy29#Osx@*4W1)pk2u^F|lD>}Kx z<6^LN{c<57#y?Tv9ast=R@y#@ZM0=*`h)XT`ZyCL10zbj-^!)c_R_*#34L&d z1i-&L$5)!H=iA2m3G391rvO5OhJnY&diBt9aP2*08mFR?(4ng>uBNM8wHPy@a)6^3 z#V%0ZMV$kEh zP5qo~_bdg_$Z?IRA&-4fHj>k&DaipFSD3^W?phyP@I__EG(q|6r zAvf-tGjYmpDrQlaf`@=Gp`ChcdMx<-wN%5jzR?%`ZQz0Qn&a~)wRnbKT#UMRG~)bkIjWcf`Go8+TMS1j0M)1;=F5`{=&cW4Hs zS^#}Vt|--^^F`N-a@iR~a^3Lj-c0R7o*9We7S=PtU=1?pAEW|c+H9LFk(RFy-n=NM zXHhIc*?q{XUf|4<6tNL*>D$FJrnZ+g>|Px8ms)KVeyDr}5_!}AC&tQHmyd6ihO7qn zAyM*a?WolzKEN@T5i_yF%c1FSgMr&oP*&`mi*aq>(3)xXPYhz;XJL<6cw2sL&~36u zZ^pwL&gDSk&z(P+^MgR{+(()_^f@i}?OvuQ@&WTB4h-*2?mdp-VFutpkOhD|=Rt74 z4wsT;(YG=k!D(N8R@Qo}8lUU($jz0TCz@r(@#FnAu0(&`QT(dQms!v)zc7X(oy=+ zTl5P8<$u(6{D$&gDa5!BqsH&1o;n)npY(o(6WEc%%Yc(>dm&lXXm0=CwtdctNAE=r z*7~~rOOn2t&l*+~A$7-Fy=%gSEnV|6+Gi>3SYyl|ut?#YG-xur_Y6ljuZ|AaEGDIe t3)FxMzA`u$C@D~r;E)g$3~ytd+QZSsBLSR5)Yc9ZyD57%P>}uqO#t1om+Jrk literal 0 HcmV?d00001 diff --git a/docs/packaging/CI_GUIDE.md b/docs/packaging/CI_GUIDE.md index d5a65de..b83e62a 100644 --- a/docs/packaging/CI_GUIDE.md +++ b/docs/packaging/CI_GUIDE.md @@ -29,7 +29,7 @@ cp packages/casan-devkit/templates/gitea-workflow/ci.yml .gitea/workflows/casan- ## 4. Runner Uses `runs-on: ci-runner` (a self-hosted Gitea Actions runner). To set one up on your host, see `.gitea/vps-setup-runbook.md` and `scripts/setup-ci-runner.sh`. The runner needs -`bash`, `python3`, `openssl` (and `node`/`npm` only if you enable frontend/backend tests). +`bash`, `python3`, `openssl` (and `node`/`npm` only if you enable apps/okr/frontend/backend tests). ## 5. Expected result `CI_GATE_SUMMARY PASS= FAIL=0 SKIP=`. Any FAIL fails the job (exit 1). The gate is diff --git a/docs/packaging/DOMAIN_PACK_GUIDE.md b/docs/packaging/DOMAIN_PACK_GUIDE.md index a3119cc..8410dc7 100644 --- a/docs/packaging/DOMAIN_PACK_GUIDE.md +++ b/docs/packaging/DOMAIN_PACK_GUIDE.md @@ -30,7 +30,7 @@ apps//domain/ a run against it; similarity 1.0 = no drift. Real drift detection is proven separately. - **corpus/** — red-team attack vectors (scored for H4 recall) + a benign corpus (bounds the false-positive rate). Domain-specific injections make the H4 score meaningful. -- **traceability-map.json** — `{"FR-01": {"name": "...", "code": ["backend/src/...", {"file":"...","symbols":["Foo"],"lines":[12]}], "tests": ["..."]}}`. Symbol/line refs are +- **traceability-map.json** — `{"FR-01": {"name": "...", "code": ["apps/okr/backend/src/...", {"file":"...","symbols":["Foo"],"lines":[12]}], "tests": ["..."]}}`. Symbol/line refs are optional but tighten the gate. - **domain-pack.yaml** — documents the above + optional threshold overrides. diff --git a/docs/technical_architecture.md b/docs/technical_architecture.md index 6029477..6b9aa8c 100644 --- a/docs/technical_architecture.md +++ b/docs/technical_architecture.md @@ -79,7 +79,7 @@ ``` okr-web/ -├── backend/ # NestJS API service +├── apps/okr/backend/ # NestJS API service │ ├── src/ │ │ ├── main.ts # Bootstrap, Swagger, global pipes │ │ ├── app.module.ts # Root module @@ -97,7 +97,7 @@ okr-web/ │ ├── Dockerfile │ └── package.json │ -├── frontend/ # React + Vite SPA +├── apps/okr/frontend/ # React + Vite SPA │ ├── src/ │ │ ├── main.tsx # React root │ │ ├── App.tsx # Router setup + error boundary @@ -285,7 +285,7 @@ exec "$@" The seed script uses `upsert` (Prisma's `createOrUpdate`) keyed on stable identifiers (email for users, slug for objectives). Running the seed twice produces no duplicates: ```typescript -// backend/prisma/seed.ts +// apps/okr/backend/prisma/seed.ts import { PrismaClient } from '@prisma/client'; import * as bcrypt from 'bcrypt'; @@ -616,7 +616,7 @@ TanStack Query's `onError` global callback handles API error toasts without cras - **Unit tests:** Services tested in isolation with Prisma mocked via `jest.mock`. - **Integration tests:** `@nestjs/testing` spins up full NestJS app with SQLite in-memory database override. -- Test files co-located under `backend/test/`. +- Test files co-located under `apps/okr/backend/test/`. ### Frontend diff --git a/package-lock.json b/package-lock.json index 7ab10ad..71d22a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,13 +6,13 @@ "": { "name": "ainative-okr-casan5", "workspaces": [ - "backend", - "frontend", + "apps/okr/backend", + "apps/okr/frontend", "packages/casan-control-panel/backend", "packages/casan-control-panel/frontend" ] }, - "backend": { + "apps/okr/backend": { "name": "@ainative-okr/backend", "version": "1.0.0", "dependencies": { @@ -39,7 +39,7 @@ "typescript": "^5.8.3" } }, - "frontend": { + "apps/okr/frontend": { "name": "@ainative-okr/frontend", "version": "1.0.0", "dependencies": { @@ -77,11 +77,11 @@ "license": "MIT" }, "node_modules/@ainative-okr/backend": { - "resolved": "backend", + "resolved": "apps/okr/backend", "link": true }, "node_modules/@ainative-okr/frontend": { - "resolved": "frontend", + "resolved": "apps/okr/frontend", "link": true }, "node_modules/@alloc/quick-lru": { diff --git a/package.json b/package.json index cc15cb3..2a13e5c 100644 --- a/package.json +++ b/package.json @@ -2,14 +2,14 @@ "name": "ainative-okr-casan5", "private": true, "workspaces": [ - "backend", - "frontend", + "apps/okr/backend", + "apps/okr/frontend", "packages/casan-control-panel/backend", "packages/casan-control-panel/frontend" ], "scripts": { - "build": "npm run build -w backend && npm run build -w frontend", - "test": "npm test -w backend && npm test -w frontend", + "build": "npm run build -w @ainative-okr/backend && npm run build -w @ainative-okr/frontend", + "test": "npm test -w @ainative-okr/backend && npm test -w @ainative-okr/frontend", "console:api": "npm run dev -w @casan/control-panel-backend", "console:ui": "npm run dev -w @casan/control-panel-frontend", "console:build": "npm run build -w @casan/control-panel-backend && npm run build -w @casan/control-panel-frontend", diff --git a/packages/casan-control-panel/README.md b/packages/casan-control-panel/README.md index e0d3989..bb029f1 100644 --- a/packages/casan-control-panel/README.md +++ b/packages/casan-control-panel/README.md @@ -38,6 +38,17 @@ Settings management: permission; calls `rbac-check.py` before `control-plane-settings.py set`. - `POST /api/v1/settings/rollback` — governed rollback through the same core CLI. +Goal workspace context: + +- `GET /api/v1/goals/projects` — lists active project IDs and context roots from the + harness-owned project registry after RBAC filtering; browser-supplied paths are never accepted. +- `POST /api/v1/goals` requires `{ goal, projectId }`. H1 resolves the registry again, + produces a size-limited redacted manifest/snapshot, and gives the exact same snapshot to + local and cloud models. Account-model CLIs remain inside an empty temporary sandbox. +- Goals requesting workspace side effects create a tenant-scoped + `goal.workspace.execute` approval proposal and finish as `requires_approval`; this flow + does not write source files or execute a coding action. + Local management headers: `x-casan-actor`, `x-casan-role`, `x-casan-project`, `x-casan-tenant`. Missing role defaults to `viewer`, so writes fail closed. diff --git a/packages/casan-control-panel/backend/src/approvals/approvals.service.ts b/packages/casan-control-panel/backend/src/approvals/approvals.service.ts index 872bf45..55df3e8 100644 --- a/packages/casan-control-panel/backend/src/approvals/approvals.service.ts +++ b/packages/casan-control-panel/backend/src/approvals/approvals.service.ts @@ -77,8 +77,8 @@ function stableJson(value: unknown): string { export class ApprovalsService { list(actor: SettingsActor, status = 'pending') { this.requireRbac(actor, 'monitoring', 'read'); - const res = runFile('python3', [INBOX_CLI, 'list', '--status', status]); - return { ...parseJson>(res.stdout, { count: 0, proposals: [], oversight: [] }), audit_verify: this.verifyAudit() }; + const res = runFile('python3', [INBOX_CLI, 'list', '--status', status], this.tenantEnv(actor)); + return { ...parseJson>(res.stdout, { count: 0, proposals: [], oversight: [] }), audit_verify: this.verifyAudit(actor) }; } submit(input: ApprovalSubmit, actor: SettingsActor) { @@ -109,8 +109,8 @@ export class ApprovalsService { JSON.stringify(input.payload ?? {}), ]; if (input.sensitive) args.push('--sensitive'); - const res = runFile('python3', args); - return { proposal: parseJson>(res.stdout, {}), audit_verify: this.verifyAudit() }; + const res = runFile('python3', args, this.tenantEnv(actor)); + return { proposal: parseJson>(res.stdout, {}), audit_verify: this.verifyAudit(actor) }; } decide(input: ApprovalDecision, actor: SettingsActor) { @@ -119,7 +119,7 @@ export class ApprovalsService { } this.requireRbac(actor, 'approval', 'grant'); try { - const pending = this.findProposal(input.id); + const pending = this.findProposal(input.id, actor); this.verifyApprovalIdentity(input, actor, pending); const res = runFile('python3', [ INBOX_CLI, @@ -132,10 +132,10 @@ export class ApprovalsService { actor.actor, '--reason', input.reason, - ]); + ], this.tenantEnv(actor)); const proposal = parseJson>(res.stdout, {}); const applied = input.decision === 'approve' ? this.applyApprovedProposal(proposal, actor) : null; - return { proposal, applied, audit_verify: this.verifyAudit() }; + return { proposal, applied, audit_verify: this.verifyAudit(actor) }; } catch (err: any) { if (err instanceof ForbiddenException) throw err; if (Number(err.status) === 3 || Number(err.status) === 1) { @@ -145,8 +145,8 @@ export class ApprovalsService { } } - private findProposal(id: string) { - const res = runFile('python3', [INBOX_CLI, 'list', '--status', 'all']); + private findProposal(id: string, actor: SettingsActor) { + const res = runFile('python3', [INBOX_CLI, 'list', '--status', 'all'], this.tenantEnv(actor)); const store = parseJson>(res.stdout, { proposals: [] }); const proposal = (store.proposals ?? []).find((p: Record) => p.id === id); if (!proposal) throw new ForbiddenException(`APPROVAL_DECIDE_DENY unknown_id ${id}`); @@ -199,7 +199,7 @@ export class ApprovalsService { `approved:${proposal.id}:${proposal.decision_reason ?? ''}`, '--approval', `inbox:${proposal.id}:${actor.actor}`, - ]); + ], this.tenantEnv(actor)); return parseJson>(res.stdout, {}); } catch (err: any) { if (Number(err.status) === 2 || Number(err.status) === 3) { @@ -234,9 +234,13 @@ export class ApprovalsService { } } - private verifyAudit() { + private tenantEnv(actor: SettingsActor): NodeJS.ProcessEnv { + return { CASAN_TENANT_ID: actor.tenant || 'default' }; + } + + private verifyAudit(actor: SettingsActor) { try { - const res = runFile('python3', [INBOX_CLI, 'verify-audit']); + const res = runFile('python3', [INBOX_CLI, 'verify-audit'], this.tenantEnv(actor)); return { ok: true, output: res.stdout }; } catch (err: any) { return { ok: false, output: err.stderr || err.stdout || err.message }; diff --git a/packages/casan-control-panel/backend/src/goals/goals.controller.ts b/packages/casan-control-panel/backend/src/goals/goals.controller.ts index 10e5e1f..984ee9d 100644 --- a/packages/casan-control-panel/backend/src/goals/goals.controller.ts +++ b/packages/casan-control-panel/backend/src/goals/goals.controller.ts @@ -12,6 +12,11 @@ export class GoalsController { return ok(await this.service.start(body, actorFromHeaders(headers))); } + @Get('projects') + projects(@Headers() headers: Record) { + return ok(this.service.projects(actorFromHeaders(headers))); + } + @Get() list(@Headers() headers: Record, @Query('limit') limit?: string) { return ok(this.service.list(actorFromHeaders(headers), Number(limit) || 20)); diff --git a/packages/casan-control-panel/backend/src/goals/goals.service.ts b/packages/casan-control-panel/backend/src/goals/goals.service.ts index c819d3e..25abd58 100644 --- a/packages/casan-control-panel/backend/src/goals/goals.service.ts +++ b/packages/casan-control-panel/backend/src/goals/goals.service.ts @@ -1,5 +1,5 @@ import { BadRequestException, ForbiddenException, HttpException, HttpStatus, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common'; -import { chmodSync, existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs'; +import { chmodSync, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync, writeFileSync } from 'node:fs'; import { execFileSync, spawn } from 'node:child_process'; import { randomUUID } from 'node:crypto'; import { join } from 'node:path'; @@ -8,6 +8,14 @@ import type { SettingsActor } from '../settings/settings.service.js'; export interface GoalStartInput { goal: string; + projectId: string; +} + +export interface GoalProject { + project_id: string; + domain: string; + domain_root: string; + context_roots: string[]; } export interface GoalStage { @@ -23,7 +31,7 @@ export interface GoalJob { id: string; trace_id: string; goal: string; - status: 'queued' | 'running' | 'completed' | 'degraded' | 'failed'; + status: 'queued' | 'running' | 'completed' | 'degraded' | 'failed' | 'requires_approval'; actor: string; tenant: string; project: string; @@ -42,6 +50,9 @@ export interface GoalJob { audit_hash?: string; local_usage?: Record; cloud_usage?: Record; + workspace?: GoalProject; + context_manifest?: { files: number; characters: number; truncated: boolean; path?: string }; + approval?: { id: string; status: string; action: string }; } interface ModelConnection { @@ -67,6 +78,7 @@ const HARNESS_BIN = join(APP_ROOT, 'packages', 'casan-harness', 'scripts', 'bash const CONNECTIONS_CLI = join(HARNESS_BIN, 'model-connections.py'); const ORCHESTRATOR_CLI = join(HARNESS_BIN, 'goal-orchestrator.py'); const RBAC_CLI = join(HARNESS_BIN, 'rbac-check.py'); +const PROJECT_REGISTRY = join(APP_ROOT, 'packages', 'casan-harness', 'level5', 'project-registry.json'); function parseJson(value: string): T | null { try { @@ -86,7 +98,8 @@ export class GoalsService { private readonly startWindows = new Map(); async start(input: GoalStartInput, actor: SettingsActor): Promise { - this.requireRead(actor); + const workspace = this.resolveProject(String(input.projectId ?? '')); + this.requireRead(actor, workspace.project_id); const goal = String(input.goal ?? '').trim(); if (goal.length < 10 || goal.length > 8000) { throw new BadRequestException('GOAL_LENGTH_INVALID'); @@ -115,7 +128,8 @@ export class GoalsService { status: 'queued', actor: actor.actor, tenant: actor.tenant, - project: actor.project, + project: workspace.project_id, + workspace, created_at: timestamp, updated_at: timestamp, local_provider: local?.id || 'local-policy', @@ -156,24 +170,39 @@ export class GoalsService { return job; } + projects(actor: SettingsActor): { count: number; projects: GoalProject[] } { + const projects = this.registeredProjects().filter((project) => { + try { + this.requireRead(actor, project.project_id); + return true; + } catch { + return false; + } + }); + return { count: projects.length, projects }; + } + get(id: string, actor: SettingsActor): GoalJob { - this.requireRead(actor); if (!/^[a-f0-9-]{36}$/.test(id)) throw new NotFoundException('GOAL_NOT_FOUND'); const path = this.jobPath(actor.tenant, id); if (!existsSync(path)) throw new NotFoundException('GOAL_NOT_FOUND'); const job = parseJson(readFileSync(path, 'utf8')); if (!job || job.tenant !== actor.tenant) throw new NotFoundException('GOAL_NOT_FOUND'); + this.requireRead(actor, job.project); return job; } list(actor: SettingsActor, limit = 20): { count: number; goals: GoalJob[] } { - this.requireRead(actor); + this.requireRead(actor, actor.project); const directory = join(APP_ROOT, '.specify', 'state', 'goals', safeTenant(actor.tenant)); if (!existsSync(directory)) return { count: 0, goals: [] }; const goals = readdirSync(directory) .filter((name) => /^[a-f0-9-]{36}\.json$/.test(name)) .map((name) => parseJson(readFileSync(join(directory, name), 'utf8'))) .filter((job): job is GoalJob => Boolean(job && job.tenant === actor.tenant)) + .filter((job) => { + try { this.requireRead(actor, job.project); return true; } catch { return false; } + }) .sort((left, right) => right.created_at.localeCompare(left.created_at)); return { count: goals.length, goals: goals.slice(0, Math.max(1, Math.min(limit, 100))) }; } @@ -182,6 +211,34 @@ export class GoalsService { return join(APP_ROOT, '.specify', 'state', 'goals', safeTenant(tenant), `${id}.json`); } + private registeredProjects(): GoalProject[] { + const parsed = parseJson<{ projects?: Array> }>(readFileSync(PROJECT_REGISTRY, 'utf8')); + const root = realpathSync(APP_ROOT); + return (parsed?.projects ?? []).filter((entry) => entry.status === 'active').map((entry) => { + const projectId = String(entry.project_id ?? ''); + const domainRoot = String(entry.domain_root ?? ''); + const rawRoots = Array.isArray(entry.context_roots) ? entry.context_roots.map(String) : [domainRoot]; + if (!/^[A-Za-z0-9._-]+$/.test(projectId) || !domainRoot || rawRoots.length === 0) { + throw new InternalServerErrorException('GOAL_PROJECT_REGISTRY_INVALID'); + } + const contextRoots = rawRoots.map((relative) => { + const absolute = realpathSync(join(APP_ROOT, relative)); + if (!(absolute === root || absolute.startsWith(`${root}/`)) || !statSync(absolute).isDirectory() && !statSync(absolute).isFile()) { + throw new InternalServerErrorException('GOAL_PROJECT_CONTEXT_ROOT_DENIED'); + } + return relative; + }); + return { project_id: projectId, domain: String(entry.domain ?? projectId), domain_root: domainRoot, context_roots: contextRoots }; + }); + } + + private resolveProject(projectId: string): GoalProject { + if (!projectId) throw new BadRequestException('GOAL_PROJECT_REQUIRED'); + const project = this.registeredProjects().find((entry) => entry.project_id === projectId); + if (!project) throw new BadRequestException('GOAL_PROJECT_NOT_ALLOWED'); + return project; + } + private connections(actor: SettingsActor): ModelConnection[] { const payload = this.runPython(CONNECTIONS_CLI, ['list'], { CASAN_TENANT_ID: actor.tenant || 'default' }); const parsed = parseJson(payload); @@ -259,10 +316,10 @@ export class GoalsService { } } - private requireRead(actor: SettingsActor): void { + private requireRead(actor: SettingsActor, targetProject: string): void { try { execFileSync('python3', [RBAC_CLI, 'check', '--role', actor.role, '--resource', 'monitoring', '--action', 'read', - '--role-project', actor.project, '--target-project', actor.project, + '--role-project', actor.project, '--target-project', targetProject, '--role-tenant', actor.tenant, '--target-tenant', actor.tenant], { cwd: APP_ROOT, env: process.env, diff --git a/packages/casan-control-panel/backend/src/settings/settings.service.ts b/packages/casan-control-panel/backend/src/settings/settings.service.ts index 820d75a..06fac2e 100644 --- a/packages/casan-control-panel/backend/src/settings/settings.service.ts +++ b/packages/casan-control-panel/backend/src/settings/settings.service.ts @@ -1,4 +1,4 @@ -import { ForbiddenException, Injectable, InternalServerErrorException } from '@nestjs/common'; +import { BadRequestException, ForbiddenException, Injectable, InternalServerErrorException } from '@nestjs/common'; import { execFileSync } from 'node:child_process'; import { join } from 'node:path'; import { APP_ROOT } from '../common/app-root.js'; @@ -60,10 +60,11 @@ function parseJson(raw: string, fallback: T): T { export class SettingsService { list(actor: SettingsActor) { this.requireRbac(actor, 'read', false); - const policy = parseJson>(runPython(CP_CLI, ['list-policy']).stdout, {}); - const settings = parseJson>(runPython(CP_CLI, ['get-all']).stdout, {}); - const audit = parseJson(runPython(CP_CLI, ['get-audit']).stdout, []); - const auditVerify = this.verifyAudit(); + const tenantEnv = this.tenantEnv(actor); + const policy = parseJson>(runPython(CP_CLI, ['list-policy'], tenantEnv).stdout, {}); + const settings = parseJson>(runPython(CP_CLI, ['get-all'], tenantEnv).stdout, {}); + const audit = parseJson(runPython(CP_CLI, ['get-audit'], tenantEnv).stdout, []); + const auditVerify = this.verifyAudit(actor); return { actor, @@ -83,7 +84,7 @@ export class SettingsService { if (!input.key || input.value === undefined || !input.reason) { throw new ForbiddenException('SETTINGS_DENY key/value/reason required'); } - const sensitive = this.isSensitive(input.key); + const sensitive = this.isSensitive(input.key, actor); this.requireRbac(actor, 'write', sensitive); try { const res = runPython(CP_CLI, [ @@ -96,11 +97,12 @@ export class SettingsService { input.reason, '--approval', input.approval ?? '', - ]); - return { key: input.key, setting: parseJson>(res.stdout, {}), audit_verify: this.verifyAudit() }; + ], this.tenantEnv(actor)); + return { key: input.key, setting: parseJson>(res.stdout, {}), audit_verify: this.verifyAudit(actor) }; } catch (err: any) { if (Number(err.status) === 3) throw new ForbiddenException(err.stderr || 'APPROVAL_REQUIRED'); if (Number(err.status) === 2) throw new ForbiddenException(err.stderr || 'SETTING_NOT_ALLOWED'); + if (Number(err.status) === 5) throw new BadRequestException(err.stderr || 'SETTING_VALIDATION_ERROR'); throw new InternalServerErrorException(err.stderr || err.message); } } @@ -109,19 +111,19 @@ export class SettingsService { if (!input.key || !input.reason) { throw new ForbiddenException('SETTINGS_DENY key/reason required'); } - const sensitive = this.isSensitive(input.key); + const sensitive = this.isSensitive(input.key, actor); this.requireRbac(actor, 'write', sensitive); try { - const res = runPython(CP_CLI, ['rollback', input.key, '--actor', actor.actor, '--reason', input.reason]); - return { key: input.key, setting: parseJson>(res.stdout, {}), audit_verify: this.verifyAudit() }; + const res = runPython(CP_CLI, ['rollback', input.key, '--actor', actor.actor, '--reason', input.reason], this.tenantEnv(actor)); + return { key: input.key, setting: parseJson>(res.stdout, {}), audit_verify: this.verifyAudit(actor) }; } catch (err: any) { if (Number(err.status) === 4) throw new ForbiddenException(err.stderr || 'NO_PRIOR_VERSION'); throw new InternalServerErrorException(err.stderr || err.message); } } - private isSensitive(key: string): boolean { - const policy = parseJson>(runPython(CP_CLI, ['list-policy']).stdout, {}); + private isSensitive(key: string, actor: SettingsActor): boolean { + const policy = parseJson>(runPython(CP_CLI, ['list-policy'], this.tenantEnv(actor)).stdout, {}); return Boolean(policy[key]?.securitySensitive); } @@ -164,9 +166,13 @@ export class SettingsService { return runPython(RBAC_CLI, args); } - private verifyAudit() { + private tenantEnv(actor: SettingsActor): NodeJS.ProcessEnv { + return { CASAN_TENANT_ID: actor.tenant }; + } + + private verifyAudit(actor: SettingsActor) { try { - const res = runPython(CP_CLI, ['verify-audit']); + const res = runPython(CP_CLI, ['verify-audit'], this.tenantEnv(actor)); return { ok: true, output: res.stdout }; } catch (err: any) { return { ok: false, output: err.stderr || err.stdout || err.message }; diff --git a/packages/casan-control-panel/backend/test/approvals.test.ts b/packages/casan-control-panel/backend/test/approvals.test.ts index ddddfdb..f9bcf94 100644 --- a/packages/casan-control-panel/backend/test/approvals.test.ts +++ b/packages/casan-control-panel/backend/test/approvals.test.ts @@ -16,8 +16,10 @@ function withTempGovernance(fn: (paths: { inbox: string; store: string }) => voi const prevStore = process.env.CASAN_CP_STORE_FILE; const prevKeyDir = process.env.CASAN_CP_KEY_DIR; const prevPub = process.env.CASAN_CP_PUB; + const prevTenantRoot = process.env.CASAN_TENANT_STATE_ROOT; const work = mkdtempSync(join(tmpdir(), 'cp-approval-')); - process.env.CASAN_APPROVAL_INBOX_FILE = join(work, 'approval-inbox.json'); + process.env.CASAN_TENANT_STATE_ROOT = work; + process.env.CASAN_APPROVAL_INBOX_FILE = join(work, 'default', 'approvals', 'approval-inbox.json'); process.env.CASAN_CP_STORE_FILE = join(work, 'settings.json'); process.env.CASAN_CP_KEY_DIR = join(work, 'keys'); process.env.CASAN_CP_PUB = join(work, 'cp.pub'); @@ -34,6 +36,8 @@ function withTempGovernance(fn: (paths: { inbox: string; store: string }) => voi else process.env.CASAN_CP_KEY_DIR = prevKeyDir; if (prevPub === undefined) delete process.env.CASAN_CP_PUB; else process.env.CASAN_CP_PUB = prevPub; + if (prevTenantRoot === undefined) delete process.env.CASAN_TENANT_STATE_ROOT; + else process.env.CASAN_TENANT_STATE_ROOT = prevTenantRoot; } } diff --git a/packages/casan-control-panel/backend/test/goals.test.ts b/packages/casan-control-panel/backend/test/goals.test.ts new file mode 100644 index 0000000..37d2481 --- /dev/null +++ b/packages/casan-control-panel/backend/test/goals.test.ts @@ -0,0 +1,57 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import { execFileSync } from 'node:child_process'; +import { mkdtempSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; +import { BadRequestException } from '@nestjs/common'; +import { GoalsService } from '../src/goals/goals.service.js'; + +const root = join(import.meta.dirname, '..', '..', '..', '..'); +const admin = { actor: 'goal-admin', role: 'org-admin', project: 'default', tenant: 'goal-test' }; + +test('goal project selector exposes only active allowlisted registry entries', () => { + const result = new GoalsService().projects(admin); + assert.ok(result.projects.some((project) => project.project_id === 'AINative_OKR_CASAN4')); + assert.ok(result.projects.every((project) => project.context_roots.every((contextRoot) => !contextRoot.startsWith('/')))); + assert.ok(result.projects.every((project) => project.project_id !== 'CASAN_DEMO_PROJECT_A')); +}); + +test('goal start rejects project ids outside the server registry before model routing', async () => { + await assert.rejects( + new GoalsService().start({ goal: 'Review the current application architecture safely', projectId: '../../tmp' }, admin), + BadRequestException, + ); +}); + +test('H1 creates a bounded manifest and routes workspace side effects to approval without writing source', () => { + const stateRoot = mkdtempSync(join(tmpdir(), 'casan-goal-context-')); + const tenantRoot = join(stateRoot, 'tenants'); + const jobDirectory = join(stateRoot, 'state', 'goals', 'goal-test'); + mkdirSync(jobDirectory, { recursive: true }); + const jobPath = join(jobDirectory, '11111111-1111-1111-1111-111111111111.json'); + writeFileSync(jobPath, JSON.stringify({ + id: '11111111-1111-1111-1111-111111111111', + trace_id: '11111111-1111-1111-1111-111111111111', + goal: 'Hãy sửa code OKR để thêm một nút mới ngay bây giờ', + status: 'queued', actor: 'goal-admin', tenant: 'goal-test', project: 'AINative_OKR_CASAN4', + created_at: new Date().toISOString(), updated_at: new Date().toISOString(), + local_provider: 'local-policy', local_model: 'unused', cloud_provider: 'unused', cloud_model: 'unused', + stages: [ + { id: 'local-worker', status: 'queued', detail: 'Waiting', provider: '', model: '' }, + { id: 'cloud-reviewer', status: 'queued', detail: 'Waiting', provider: '', model: '' }, + ], + })); + execFileSync('python3', [join(root, 'packages/casan-harness/scripts/bash/goal-orchestrator.py'), '--job-file', jobPath], { + cwd: root, + env: { ...process.env, CASAN_STATE_ROOT: stateRoot, CASAN_TENANT_ID: 'goal-test', CASAN_TENANT_STATE_ROOT: tenantRoot }, + stdio: ['ignore', 'pipe', 'pipe'], + timeout: 60_000, + }); + const job = JSON.parse(readFileSync(jobPath, 'utf8')) as { status: string; context_manifest: { files: number; characters: number }; approval: { action: string } }; + assert.equal(job.status, 'requires_approval'); + assert.equal(job.approval.action, 'goal.workspace.execute'); + assert.ok(job.context_manifest.files > 0); + assert.ok(job.context_manifest.files <= 16); + assert.ok(job.context_manifest.characters <= 7000); +}); diff --git a/packages/casan-control-panel/backend/test/settings.test.ts b/packages/casan-control-panel/backend/test/settings.test.ts index fb4020f..6db0401 100644 --- a/packages/casan-control-panel/backend/test/settings.test.ts +++ b/packages/casan-control-panel/backend/test/settings.test.ts @@ -3,7 +3,7 @@ import assert from 'node:assert/strict'; import { existsSync, mkdtempSync, readFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { ForbiddenException } from '@nestjs/common'; +import { BadRequestException, ForbiddenException } from '@nestjs/common'; import { SettingsService } from '../src/settings/settings.service.js'; const viewer = { actor: 'viewer-1', role: 'viewer', project: 'default', tenant: 'default' }; @@ -41,6 +41,17 @@ test('viewer cannot write settings', () => { }); }); +test('invalid setting value is rejected before it reaches the store', () => { + withTempStore((storeFile) => { + const svc = new SettingsService(); + assert.throws( + () => svc.set({ key: 'loop.max_steps', value: 0, reason: 'invalid lower bound' }, admin), + BadRequestException, + ); + assert.equal(existsSync(storeFile), false); + }); +}); + test('org-admin writes and rolls back through governed store with audit', () => { withTempStore((storeFile) => { const svc = new SettingsService(); diff --git a/packages/casan-control-panel/frontend/src/lib/api.ts b/packages/casan-control-panel/frontend/src/lib/api.ts index 30379b5..3b5a9c4 100644 --- a/packages/casan-control-panel/frontend/src/lib/api.ts +++ b/packages/casan-control-panel/frontend/src/lib/api.ts @@ -273,7 +273,7 @@ export interface GoalJob { id: string; trace_id: string; goal: string; - status: 'queued' | 'running' | 'completed' | 'degraded' | 'failed'; + status: 'queued' | 'running' | 'completed' | 'degraded' | 'failed' | 'requires_approval'; actor: string; tenant: string; project: string; @@ -290,6 +290,16 @@ export interface GoalJob { result?: string; error?: string; audit_hash?: string; + workspace?: GoalProject; + context_manifest?: { files: number; characters: number; truncated: boolean; path?: string }; + approval?: { id: string; status: string; action: string }; +} + +export interface GoalProject { + project_id: string; + domain: string; + domain_root: string; + context_roots: string[]; } export interface ChatReplay { @@ -336,9 +346,28 @@ export interface SettingsState { can_write_sensitive: boolean; can_rollback: boolean; }; - policy: Record; + policy: Record; settings: Record; - audit: any[]; + audit: Array<{ + seq: number; + key: string; + action: 'set' | 'rollback'; + value: unknown; + prevValue: unknown; + actor: string; + reason: string; + at: string; + hash: string; + }>; audit_verify: { ok: boolean; output: string }; } @@ -450,8 +479,10 @@ export const api = { getWithHeaders<{ success: boolean; providers: ProviderAuthStatus[] }>('provider-auth', actorHeaders(actor)), startProviderLogin: (actor: SettingsActor, provider: ProviderAuthStatus['id']) => post<{ success: boolean; reason: string; provider: ProviderAuthStatus }>(`provider-auth/${provider}/login`, {}, actorHeaders(actor)), - startGoal: (actor: SettingsActor, goal: string) => - post('goals', { goal }, actorHeaders(actor)), + goalProjects: (actor: SettingsActor) => + getWithHeaders<{ count: number; projects: GoalProject[] }>('goals/projects', actorHeaders(actor)), + startGoal: (actor: SettingsActor, goal: string, projectId: string) => + post('goals', { goal, projectId }, actorHeaders(actor)), goal: (actor: SettingsActor, id: string) => getWithHeaders(`goals/${encodeURIComponent(id)}`, actorHeaders(actor)), goals: (actor: SettingsActor, limit = 20) => diff --git a/packages/casan-control-panel/frontend/src/pages/Goals.tsx b/packages/casan-control-panel/frontend/src/pages/Goals.tsx index b9a263a..165454d 100644 --- a/packages/casan-control-panel/frontend/src/pages/Goals.tsx +++ b/packages/casan-control-panel/frontend/src/pages/Goals.tsx @@ -1,14 +1,14 @@ import { useState } from 'react'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; -import { useSearchParams } from 'react-router-dom'; +import { Link, useSearchParams } from 'react-router-dom'; import { api, type GoalJob, type SettingsActor } from '../lib/api'; import { Card, StatusBadge } from '../components/ui/Card'; import { TraceExplorer } from '../components/trace/TraceExplorer'; import { MarkdownText } from '../components/ui/MarkdownText'; import { ModelInteractionDiagram } from '../components/goals/ModelInteractionDiagram'; -const DEFAULT_ACTOR: SettingsActor = { actor: 'local-operator', role: 'project-admin', project: 'default', tenant: 'default' }; -const TERMINAL = new Set(['completed', 'degraded', 'failed']); +const DEFAULT_ACTOR: SettingsActor = { actor: 'local-operator', role: 'org-admin', project: 'default', tenant: 'default' }; +const TERMINAL = new Set(['completed', 'degraded', 'failed', 'requires_approval']); function errorMessage(error: unknown): string { if (typeof error === 'object' && error !== null) { @@ -45,10 +45,14 @@ function WorkerCard({ title, subtitle, status, detail, provider, model }: { export function Goals() { const [goal, setGoal] = useState(''); + const [projectId, setProjectId] = useState(''); const [actor] = useState(DEFAULT_ACTOR); const [searchParams, setSearchParams] = useSearchParams(); const selectedId = searchParams.get('id') ?? ''; const queryClient = useQueryClient(); + const projectsQuery = useQuery({ queryKey: ['goal-projects', actor], queryFn: () => api.goalProjects(actor) }); + const projects = projectsQuery.data?.projects ?? []; + const effectiveProject = projectId || projects[0]?.project_id || ''; const listQuery = useQuery({ queryKey: ['goals', actor], queryFn: () => api.goals(actor, 20) }); const selectedQuery = useQuery({ @@ -61,7 +65,7 @@ export function Goals() { }, }); const start = useMutation({ - mutationFn: () => api.startGoal(actor, goal.trim()), + mutationFn: () => api.startGoal({ ...actor, project: effectiveProject }, goal.trim(), effectiveProject), onSuccess: (job) => { setSearchParams({ id: job.id }); setGoal(''); @@ -85,6 +89,15 @@ export function Goals() { +