From 33b0c22068bf8601cf1763668700dcdbf856fb35 Mon Sep 17 00:00:00 2001 From: Alvin Unreal Date: Sun, 10 May 2026 13:30:48 +0200 Subject: [PATCH] Releasing version 2 --- .gitignore | 8 + .ignore | 2 + LICENSE | 21 + README.md | 66 + apps/desktop/assets/app-icon.icns | Bin 0 -> 1405356 bytes apps/desktop/assets/app-icon.ico | Bin 0 -> 178052 bytes .../assets/default-pet-spritesheet.webp | Bin 0 -> 1139116 bytes apps/desktop/assets/default-pet-thumbnail.png | Bin 0 -> 29083 bytes apps/desktop/assets/integrations/claude.svg | 1 + apps/desktop/assets/integrations/cursor.svg | 3 + apps/desktop/assets/integrations/opencode.svg | 1 + apps/desktop/assets/integrations/vscode.svg | 6 + apps/desktop/assets/integrations/windsurf.svg | 3 + apps/desktop/assets/integrations/zed.svg | 3 + apps/desktop/assets/onboarding-logo.webp | Bin 0 -> 499488 bytes apps/desktop/assets/onboarding-pets.webp | Bin 0 -> 406402 bytes apps/desktop/assets/tray-icon.png | Bin 0 -> 11311 bytes apps/desktop/catalog.v2.fixture.json | 41 + apps/desktop/electron-builder.yml | 55 + apps/desktop/package.json | 39 + apps/desktop/pet-preload.cjs | 88 + apps/desktop/preload.cjs | 1262 +++++++ apps/desktop/scripts/clean-package-output.cjs | 12 + apps/desktop/scripts/release-local.mjs | 218 ++ apps/desktop/src/agent-pet-controller.ts | 139 + apps/desktop/src/agent-setup.ts | 607 ++++ apps/desktop/src/app-state-core.ts | 29 + apps/desktop/src/app-state.ts | 416 +++ apps/desktop/src/assets.ts | 110 + apps/desktop/src/built-in-pet.ts | 7 + apps/desktop/src/catalog-validation.ts | 80 + apps/desktop/src/catalog.ts | 116 + apps/desktop/src/check-catalog-fixture.ts | 30 + apps/desktop/src/check-claude-memory.ts | 75 + apps/desktop/src/check-codex-pets.ts | 32 + apps/desktop/src/check-lease-manager.ts | 60 + apps/desktop/src/check-local-ipc-protocol.ts | 55 + apps/desktop/src/check-onboarding-state.ts | 53 + .../src/check-opencode-desktop-setup.ts | 60 + apps/desktop/src/check-packaging-contract.ts | 340 ++ apps/desktop/src/check-update-checker.ts | 28 + apps/desktop/src/check-zip-safety.ts | 142 + apps/desktop/src/claude-memory.ts | 210 ++ apps/desktop/src/codex-pets-core.ts | 40 + apps/desktop/src/codex-pets.ts | 193 ++ apps/desktop/src/default-pet-controller.ts | 184 + apps/desktop/src/display.ts | 44 + apps/desktop/src/lease-manager.ts | 153 + apps/desktop/src/lifecycle.ts | 37 + apps/desktop/src/local-ipc-paths.ts | 150 + apps/desktop/src/local-ipc-protocol.ts | 136 + apps/desktop/src/local-ipc.ts | 266 ++ apps/desktop/src/main.ts | 53 + apps/desktop/src/pet-installation.ts | 338 ++ apps/desktop/src/pet-paths.ts | 30 + apps/desktop/src/pet-window.ts | 545 +++ apps/desktop/src/reaction-messages.ts | 251 ++ apps/desktop/src/state.ts | 12 + apps/desktop/src/tray.ts | 110 + apps/desktop/src/update-checker.ts | 124 + apps/desktop/src/update-version.ts | 62 + apps/desktop/src/windows.ts | 1154 +++++++ apps/desktop/src/zip-safety.ts | 103 + apps/desktop/tsconfig.json | 8 + docs/claude-integration.md | 238 ++ docs/implementation-process.md | 355 ++ docs/mapping.md | 252 ++ docs/mvp-validation.md | 199 ++ docs/opencode.md | 287 ++ docs/phases/phase-00-workspace-foundation.md | 383 +++ docs/phases/phase-01-tray-desktop-shell.md | 334 ++ docs/phases/phase-02-default-pet-window.md | 420 +++ ...phase-03-local-state-pet-manager-basics.md | 481 +++ .../phase-04-v2-pet-catalog-installation.md | 411 +++ docs/phases/phase-04a-v2-catalog-read-only.md | 336 ++ .../phases/phase-04b-safe-pet-installation.md | 403 +++ docs/phases/phase-05-local-ipc-client.md | 368 ++ docs/phases/phase-06a-thin-mcp-tools.md | 356 ++ docs/phases/phase-06b-mcp-lease-lifecycle.md | 461 +++ ...phase-07-claude-detection-configuration.md | 330 ++ docs/phases/phase-08-claude-enhanced-hooks.md | 371 ++ .../phase-08c-test-harness-regression-pack.md | 192 ++ docs/phases/phase-09-first-run-onboarding.md | 335 ++ .../phase-10a-desktop-package-hardening.md | 346 ++ ...0b-packaged-claude-command-distribution.md | 333 ++ .../phase-10c-asar-runtime-packaging.md | 257 ++ .../phase-10d-package-polish-clean-output.md | 164 + .../phase-10e-app-icon-package-identity.md | 153 + ...phase-11-mvp-closeout-release-readiness.md | 194 ++ .../phase-12-actual-pet-animation-polish.md | 253 ++ .../phases/phase-13a-pet-manager-ui-polish.md | 240 ++ .../phase-13b-onboarding-greeting-polish.md | 270 ++ docs/phases/phase-13c-pet-manager-gallery.md | 238 ++ docs/phases/phase-13d-agent-setup-polish.md | 327 ++ .../phase-13e-onboarding-flow-polish.md | 188 ++ docs/phases/phase-13f-settings-tray-polish.md | 207 ++ docs/phases/phase-14-pet-scale-setting.md | 168 + docs/phases/phase-15-codex-pet-import.md | 44 + .../phase-16-claude-hook-pet-routing.md | 84 + .../phase-17-openpets-cli-project-setup.md | 298 ++ ...se-18-reaction-sprite-animation-mapping.md | 352 ++ docs/phases/phase-19-opencode-integration.md | 305 ++ docs/phases/phase-19a-opencode-foundation.md | 283 ++ .../phase-19b-opencode-plugin-runtime.md | 254 ++ .../phase-19c-opencode-cli-project-setup.md | 274 ++ .../phase-19d-opencode-desktop-hardening.md | 305 ++ docs/release.md | 291 ++ docs/testing.md | 57 + docs/workflow.md | 214 ++ package.json | 29 + packages/agent-events/package.json | 35 + .../agent-events/src/check-agent-events.ts | 19 + packages/agent-events/src/index.ts | 23 + packages/agent-events/tsconfig.json | 9 + packages/claude/package.json | 42 + packages/claude/src/check-claude-code.ts | 68 + packages/claude/src/check-claude-hooks.ts | 176 + packages/claude/src/claude-code.ts | 265 ++ packages/claude/src/cli.ts | 51 + packages/claude/src/hook-messages.ts | 1 + packages/claude/src/hook-settings.ts | 248 ++ packages/claude/src/hooks.ts | 229 ++ packages/claude/src/index.ts | 6 + packages/claude/tsconfig.json | 9 + packages/cli/package.json | 44 + packages/cli/src/check-cli-contract.ts | 182 + packages/cli/src/index.ts | 371 ++ packages/cli/tsconfig.json | 9 + packages/client/package.json | 40 + packages/client/src/check-client-protocol.ts | 44 + packages/client/src/discovery.ts | 125 + packages/client/src/index.ts | 169 + packages/client/src/protocol.ts | 79 + packages/client/src/smoke.ts | 30 + packages/client/tsconfig.json | 9 + packages/mcp/package.json | 43 + packages/mcp/src/args.ts | 57 + packages/mcp/src/check-mcp-contract.ts | 129 + packages/mcp/src/ensure-executable.ts | 9 + packages/mcp/src/index.ts | 99 + packages/mcp/src/server.ts | 32 + packages/mcp/src/tools.ts | 181 + packages/mcp/tsconfig.json | 9 + packages/opencode/package.json | 44 + .../opencode/src/check-opencode-foundation.ts | 268 ++ .../opencode/src/check-opencode-plugin.ts | 121 + packages/opencode/src/index.ts | 6 + packages/opencode/src/opencode-config.ts | 221 ++ .../opencode/src/opencode-global-setup.ts | 354 ++ .../opencode/src/opencode-plugin-runtime.ts | 229 ++ packages/opencode/src/opencode-previews.ts | 52 + .../opencode/src/opencode-project-setup.ts | 182 + packages/opencode/src/opencode-status.ts | 136 + packages/opencode/src/plugin.ts | 10 + packages/opencode/tsconfig.json | 9 + packages/pet-format/package.json | 28 + packages/pet-format/src/index.ts | 5 + packages/pet-format/tsconfig.json | 8 + pnpm-lock.yaml | 2983 +++++++++++++++++ pnpm-workspace.yaml | 5 + task.txt | 1190 +++++++ tsconfig.base.json | 17 + 162 files changed, 29761 insertions(+) create mode 100644 .gitignore create mode 100644 .ignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 apps/desktop/assets/app-icon.icns create mode 100644 apps/desktop/assets/app-icon.ico create mode 100644 apps/desktop/assets/default-pet-spritesheet.webp create mode 100644 apps/desktop/assets/default-pet-thumbnail.png create mode 100644 apps/desktop/assets/integrations/claude.svg create mode 100644 apps/desktop/assets/integrations/cursor.svg create mode 100644 apps/desktop/assets/integrations/opencode.svg create mode 100644 apps/desktop/assets/integrations/vscode.svg create mode 100644 apps/desktop/assets/integrations/windsurf.svg create mode 100644 apps/desktop/assets/integrations/zed.svg create mode 100644 apps/desktop/assets/onboarding-logo.webp create mode 100644 apps/desktop/assets/onboarding-pets.webp create mode 100644 apps/desktop/assets/tray-icon.png create mode 100644 apps/desktop/catalog.v2.fixture.json create mode 100644 apps/desktop/electron-builder.yml create mode 100644 apps/desktop/package.json create mode 100644 apps/desktop/pet-preload.cjs create mode 100644 apps/desktop/preload.cjs create mode 100644 apps/desktop/scripts/clean-package-output.cjs create mode 100644 apps/desktop/scripts/release-local.mjs create mode 100644 apps/desktop/src/agent-pet-controller.ts create mode 100644 apps/desktop/src/agent-setup.ts create mode 100644 apps/desktop/src/app-state-core.ts create mode 100644 apps/desktop/src/app-state.ts create mode 100644 apps/desktop/src/assets.ts create mode 100644 apps/desktop/src/built-in-pet.ts create mode 100644 apps/desktop/src/catalog-validation.ts create mode 100644 apps/desktop/src/catalog.ts create mode 100644 apps/desktop/src/check-catalog-fixture.ts create mode 100644 apps/desktop/src/check-claude-memory.ts create mode 100644 apps/desktop/src/check-codex-pets.ts create mode 100644 apps/desktop/src/check-lease-manager.ts create mode 100644 apps/desktop/src/check-local-ipc-protocol.ts create mode 100644 apps/desktop/src/check-onboarding-state.ts create mode 100644 apps/desktop/src/check-opencode-desktop-setup.ts create mode 100644 apps/desktop/src/check-packaging-contract.ts create mode 100644 apps/desktop/src/check-update-checker.ts create mode 100644 apps/desktop/src/check-zip-safety.ts create mode 100644 apps/desktop/src/claude-memory.ts create mode 100644 apps/desktop/src/codex-pets-core.ts create mode 100644 apps/desktop/src/codex-pets.ts create mode 100644 apps/desktop/src/default-pet-controller.ts create mode 100644 apps/desktop/src/display.ts create mode 100644 apps/desktop/src/lease-manager.ts create mode 100644 apps/desktop/src/lifecycle.ts create mode 100644 apps/desktop/src/local-ipc-paths.ts create mode 100644 apps/desktop/src/local-ipc-protocol.ts create mode 100644 apps/desktop/src/local-ipc.ts create mode 100644 apps/desktop/src/main.ts create mode 100644 apps/desktop/src/pet-installation.ts create mode 100644 apps/desktop/src/pet-paths.ts create mode 100644 apps/desktop/src/pet-window.ts create mode 100644 apps/desktop/src/reaction-messages.ts create mode 100644 apps/desktop/src/state.ts create mode 100644 apps/desktop/src/tray.ts create mode 100644 apps/desktop/src/update-checker.ts create mode 100644 apps/desktop/src/update-version.ts create mode 100644 apps/desktop/src/windows.ts create mode 100644 apps/desktop/src/zip-safety.ts create mode 100644 apps/desktop/tsconfig.json create mode 100644 docs/claude-integration.md create mode 100644 docs/implementation-process.md create mode 100644 docs/mapping.md create mode 100644 docs/mvp-validation.md create mode 100644 docs/opencode.md create mode 100644 docs/phases/phase-00-workspace-foundation.md create mode 100644 docs/phases/phase-01-tray-desktop-shell.md create mode 100644 docs/phases/phase-02-default-pet-window.md create mode 100644 docs/phases/phase-03-local-state-pet-manager-basics.md create mode 100644 docs/phases/phase-04-v2-pet-catalog-installation.md create mode 100644 docs/phases/phase-04a-v2-catalog-read-only.md create mode 100644 docs/phases/phase-04b-safe-pet-installation.md create mode 100644 docs/phases/phase-05-local-ipc-client.md create mode 100644 docs/phases/phase-06a-thin-mcp-tools.md create mode 100644 docs/phases/phase-06b-mcp-lease-lifecycle.md create mode 100644 docs/phases/phase-07-claude-detection-configuration.md create mode 100644 docs/phases/phase-08-claude-enhanced-hooks.md create mode 100644 docs/phases/phase-08c-test-harness-regression-pack.md create mode 100644 docs/phases/phase-09-first-run-onboarding.md create mode 100644 docs/phases/phase-10a-desktop-package-hardening.md create mode 100644 docs/phases/phase-10b-packaged-claude-command-distribution.md create mode 100644 docs/phases/phase-10c-asar-runtime-packaging.md create mode 100644 docs/phases/phase-10d-package-polish-clean-output.md create mode 100644 docs/phases/phase-10e-app-icon-package-identity.md create mode 100644 docs/phases/phase-11-mvp-closeout-release-readiness.md create mode 100644 docs/phases/phase-12-actual-pet-animation-polish.md create mode 100644 docs/phases/phase-13a-pet-manager-ui-polish.md create mode 100644 docs/phases/phase-13b-onboarding-greeting-polish.md create mode 100644 docs/phases/phase-13c-pet-manager-gallery.md create mode 100644 docs/phases/phase-13d-agent-setup-polish.md create mode 100644 docs/phases/phase-13e-onboarding-flow-polish.md create mode 100644 docs/phases/phase-13f-settings-tray-polish.md create mode 100644 docs/phases/phase-14-pet-scale-setting.md create mode 100644 docs/phases/phase-15-codex-pet-import.md create mode 100644 docs/phases/phase-16-claude-hook-pet-routing.md create mode 100644 docs/phases/phase-17-openpets-cli-project-setup.md create mode 100644 docs/phases/phase-18-reaction-sprite-animation-mapping.md create mode 100644 docs/phases/phase-19-opencode-integration.md create mode 100644 docs/phases/phase-19a-opencode-foundation.md create mode 100644 docs/phases/phase-19b-opencode-plugin-runtime.md create mode 100644 docs/phases/phase-19c-opencode-cli-project-setup.md create mode 100644 docs/phases/phase-19d-opencode-desktop-hardening.md create mode 100644 docs/release.md create mode 100644 docs/testing.md create mode 100644 docs/workflow.md create mode 100644 package.json create mode 100644 packages/agent-events/package.json create mode 100644 packages/agent-events/src/check-agent-events.ts create mode 100644 packages/agent-events/src/index.ts create mode 100644 packages/agent-events/tsconfig.json create mode 100644 packages/claude/package.json create mode 100644 packages/claude/src/check-claude-code.ts create mode 100644 packages/claude/src/check-claude-hooks.ts create mode 100644 packages/claude/src/claude-code.ts create mode 100644 packages/claude/src/cli.ts create mode 100644 packages/claude/src/hook-messages.ts create mode 100644 packages/claude/src/hook-settings.ts create mode 100644 packages/claude/src/hooks.ts create mode 100644 packages/claude/src/index.ts create mode 100644 packages/claude/tsconfig.json create mode 100644 packages/cli/package.json create mode 100644 packages/cli/src/check-cli-contract.ts create mode 100644 packages/cli/src/index.ts create mode 100644 packages/cli/tsconfig.json create mode 100644 packages/client/package.json create mode 100644 packages/client/src/check-client-protocol.ts create mode 100644 packages/client/src/discovery.ts create mode 100644 packages/client/src/index.ts create mode 100644 packages/client/src/protocol.ts create mode 100644 packages/client/src/smoke.ts create mode 100644 packages/client/tsconfig.json create mode 100644 packages/mcp/package.json create mode 100644 packages/mcp/src/args.ts create mode 100644 packages/mcp/src/check-mcp-contract.ts create mode 100644 packages/mcp/src/ensure-executable.ts create mode 100644 packages/mcp/src/index.ts create mode 100644 packages/mcp/src/server.ts create mode 100644 packages/mcp/src/tools.ts create mode 100644 packages/mcp/tsconfig.json create mode 100644 packages/opencode/package.json create mode 100644 packages/opencode/src/check-opencode-foundation.ts create mode 100644 packages/opencode/src/check-opencode-plugin.ts create mode 100644 packages/opencode/src/index.ts create mode 100644 packages/opencode/src/opencode-config.ts create mode 100644 packages/opencode/src/opencode-global-setup.ts create mode 100644 packages/opencode/src/opencode-plugin-runtime.ts create mode 100644 packages/opencode/src/opencode-previews.ts create mode 100644 packages/opencode/src/opencode-project-setup.ts create mode 100644 packages/opencode/src/opencode-status.ts create mode 100644 packages/opencode/src/plugin.ts create mode 100644 packages/opencode/tsconfig.json create mode 100644 packages/pet-format/package.json create mode 100644 packages/pet-format/src/index.ts create mode 100644 packages/pet-format/tsconfig.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 task.txt create mode 100644 tsconfig.base.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..a0d1faf8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +v1 +web +node_modules +dist +dist-electron +apps/desktop/dist-electron +*.tsbuildinfo +.DS_Store diff --git a/.ignore b/.ignore new file mode 100644 index 00000000..41f205b2 --- /dev/null +++ b/.ignore @@ -0,0 +1,2 @@ +!v1 +!web diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..950628f1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 OpenPets + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..f2b507f4 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# OpenPets 2.0 + +OpenPets 2.0 is a tray-first desktop companion app for coding agents. + +This repository contains the fresh v2 workspace. The `v1/` folder is reference material only, and the existing `web/` app remains outside the v2 workspace. + +## Development baseline + +- Node.js 20+ +- pnpm 11+ +- TypeScript +- No Bun runtime requirement for v2 + +## Install + +```bash +pnpm install +``` + +## Checks + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +## Desktop development + +```bash +pnpm --filter @open-pets/desktop dev +``` + +Phase 01 desktop behavior is tray/menu-bar first. It should not open a dashboard window on startup. + +## Workspace layout + +```text +apps/desktop Electron desktop app shell +packages/client @open-pets/client, local IPC client +packages/mcp @open-pets/mcp, MCP stdio server +packages/claude @open-pets/claude, Claude integration package +packages/opencode @open-pets/opencode, OpenCode config/plugin integration +packages/agent-events shared safe agent event speech helpers +packages/cli @open-pets/cli, explicit user-run CLI commands +packages/pet-format @open-pets/pet-format, pet/catalog format types +``` + +## Agent integrations + +- Claude Code: configure from Desktop Integrations or with `openpets configure --agent claude --pet `. +- OpenCode project-local setup: use `openpets configure --agent opencode --pet ` from a project. This writes `.opencode/opencode.jsonc` when no OpenCode config exists, adds `.opencode/openpets.md`, and configures OpenPets MCP plus the OpenCode plugin for that project. +- OpenCode desktop setup: use Desktop Integrations → OpenCode for global setup. This writes OpenCode's global config directory only after explicit user action, adds a global `openpets.md` instruction file, and can be removed from the same screen. The MCP command uses bundled desktop CLI resources in packaged builds; the OpenCode plugin spec remains the published/version-pinned `@open-pets/opencode` package, so OpenCode may need npm/network access unless that package is already cached/installed. + +OpenPets MCP tools remain `openpets_status`, `openpets_say`, and `openpets_react`. Speech must stay short and must not include code, logs, secrets, URLs, or file paths. + +To reconfigure, rerun the CLI command for a project or use Replace/Install in Desktop Integrations for global OpenCode setup. To remove global desktop OpenCode setup, use the OpenCode Remove action; unrelated OpenCode config and user text outside OpenPets managed markers are preserved. + +The v2 workspace intentionally includes only: + +```text +apps/* +packages/* +``` + +It does not include `v1/**` or `web/**`. diff --git a/apps/desktop/assets/app-icon.icns b/apps/desktop/assets/app-icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..13a3da701bdcf355bd54233af44a8e8321acd15d GIT binary patch literal 1405356 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�+gq=L61_y;f&+(Cb&LjL+wK-N6jjp`?k* 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]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≶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 QU9qe zEtOE=^0mWV;O)wDvz%V@8ge_Bdn=x{3JZmg$a)sa~t?LCs zdCM_@1Z6BFnpNu##4TS)ipsA>;ad4iG@AC%_h&$K20r4%NNp;a70xoFK80pE%fYgM zc4}UG2*w>MwD&nkV^I}*X)h*1-xWl4-k_@(4U;h$@{?AP)_jYym{Q(06d8ZOPa1_B zjb;qSR1enJh1hiFz4iIQ#R?xc-OG%_>Lzy-GYji`LH&FgQ{nD{UnZ{C34oq6C7UKU z1!0#ltw72<|Ng@Uj?Q3={b3$kY}K+$mRB|+p)Ij0>x!1qmfVFkIZrTYUZ*=ILyCk7 z=mH@h=ZW1xrZl#&s-mUTRE1zJ`<$Li>xi@4habTphcJjI^geK=0jBeWSPOm1DwFvs_7U0!TggsQS%p&u*G^xcZo5^L`wORN08?nWKmZ^W zK-#GnuRaN`Xm*e?p(xI}#6QIiGM)$@n0#{eTYgdd^Ry`Ze6m3?#(b^K?t$-9D49+O{~ zo@?{_@CVwbV-k6^Q%<>vv}*#%fcW?*rL(>p=-m;Fx6DJoCRpa&GohQ`(gicUgc1AO zOwVW{ukYnXlHDqd9hk17mv>V7wpGhkpl^O~!L2*cuG<3Mjr58}I|u&dm$cAc5=sRy5~e8Gr8K!hSX@#up8xzY1EHU>(v8z-*mZcx zT)t2S)JQgs!c*bnA>)L@T3hydfCTEXfP+w|8%m(7{eLD_L8p11^YJI z=B*}R78mfBNRgfw#$=@_f>5o*Ta7$fc$+l`*;0%jZyEAD3Lj6~Z)*%l->x2bUjF>& z@DMyGPG~&yXCHTM3|c!5Lmg=K+Z<>Lwzu|bPH_h>S2v1Y?b*mo1a&X;2d?MtOohDl zgXsBdb-In2xkNgeY)_|gRZr_S5Xoyq;s8NKr2d-ywoq^4Mub+RNJ0E#pCjHENXgk2 zErg%xuX=!`gEGy5ECrG4_|2q`nAK=(o3fz*WlZ~GY5~lVABBZPxhE= zeneqEW%Sqqrz^rc*FS}@YPw-g0Kn;G>xRs`1`w^J@~z%aIJ}fFigcKEPIQq{dTv?w-Qi)B1xPJ7;xb{xW-XZTc!BXgHkMB zflZPniAo9>)y=}AfYV)R)vY%&~}4EB!UAOOTm zw_#I=^^176=t{UIV2hP?o&7R_g36)znp=ToI!eVBIgqqHV{w*o2=D^8E8cTv zpS$5KSHoE0gyb;?aj02ou#LkNh9g!t7$mXfM5)*L-)d- z?}3A9_;F{ylzlz?h^-Yj1qp z&?qX9%%AB5k`F7s zV+J|Rh}LXM3%jsyJ*Qf-1leKn4UW6wE-V6J_k4qg9I2%y0P{z7sd&i<3?z(QSTA=$!;H+pzxXeE#qawKQ#rWt;f6!H+0-@b+ZA*&uO|!` zZ*Cq>w#n0mQ?_ded3L5{RVBFFb+T-h@-&LsW@z-<-gJ>Jw)S2>oED$T;TFh`KKN~* z{q=LC{29zTr$t#fwV`Bpn#saVW|!kmLaIG65)_kn{Fxw#=5D~EK9VhQQ6bax$*fpq z*!Eb^jzIf|IvVLnyh?hQD3VYWGw-B@lTjIcS}>U52sL$MlXd%aFt;J<2WlYX%PBp) zvAneD8U`}xg*XB==B{1rKz!I`P*~iN3cevc@cW9wy4+;24rc%C;Qr+DYv1G>wTz>v z*r~*2d!I0{093m=XZp@W?Weos^xgvo%DK=2*akBB7OYGFA%#G;pDvX4PW8>6{l4vg zCzTDSHvi%Wfo`1gh_w4p-U-b84)}2j(Z2|I!XFdf*$7+y1#|ba-+wY$9DRxp1R33l zV`#K?z=hwe-EffAvlrUg{Seo3krFaI0&PwgWcs^*4Ri{Ujr5bN=f4X~`8;?uS#ZW5 zb9IwB{qhU;T)bcn!XAS11Oer}j)=hs0?8tc&t(;}&(qAc%?d$>r&9=Apb>XnMvFXy zKF<)UpT9b$%-PS+a`72cu30WE4UEQ!4XwK2gFP*O*CJdq(Ovx#yY$Ppau~~H-Pinz zPg`QU6<%+q(XQrW-@h~f`M$CsG=U}4Qj8#i_E+1E;UI`Dj-P7ng8 z%-cHf#0*qavfSii?J`qJn>RLQ-ds0iVsACP#o)Jkq>{uEj@|TGxC2do{IrPrufcnG z^X9y+`S37_4W0|^rxel&?wRw22^`RqY?_{Wd+ERBmZ-a*BC|UL&tV?-n@0n1T!BMI zq5+r(D}@5k5qeca%$$KckfM<3Kf+M+1Kw?bDg2nCuXKW;7q+VQr&TYBug&xGt^h>% zZLpKk)o8A<*kVv?=gHgj1lY6$GmEo3^n}jBtWohdU{zoh$+8rx(QpywoW)MU=$#n6 zj?)-n(2)#1{7IrB><8aFGc^y1yEX2Py0&@p>-1V0O){HCJ>#^ES0l8Lnh;R1D9PQO z*AB&`C}eKGm9}pIVfC zQzJpE%Cs5#3~m(w`b9%a7+V!9u@#^AJv7t3^qUN(Z8Dvv-HN|+ct6nA%qpF841j8T zS%`Fg$a;BO8dQ7*A!7zvt6=M97=_cC0tb9)S?12416w(OG+}~#1OV-^Le9rE2;!@I zG{i123=31s*imi6Q;xgTLl9!L40_CgyvFD@Hu|;XC7*VxcpjAflxcP!f@4m%g6^`M ze!s{J+$4XGo=giumn;o7vc%RSE&dg1!r$1HOiB2*lufD3s-5=?QbBWhi9frrrfEgr z+-Bbb4cV0Orou5@xZqWBF2m6ZlNO1e8(LP5cJ`UaXSto$0~B*;B88ue9l&RSljsr(V}CM_j2r_NQI&|Z6L1~Du!Sn?Ro^>~LZb?K@n?<5IuKO~yLq^c zygl-3P#%GzBGZV054p-y#h_PW)&qwvS9E11$syGdvPKDIXQV;F?JxJBqoC2{H$vh3{ZqfI!7n7MEB z7S(!`=ajkS-p5^tqbhBKtxUwy$MR_yV_7k}cP!#ZO!Qxm?;X2*zY$M42*;5bsSjp2 zh1x;IOapT581$SwNXxj3V;AWbrhG_EffxD^IQ)#;AQ%!QKRxmq;Vn&M6^96SG%rsW zQUIVqWrZp6sZ6QGx(n7uaE1`LV)}c2z?_n-6S|LJPnz=pdag}W1{FW86o`B3pEGZH z!rJvq`kCID?$t`UJDo%pwh|292ovaxls2Eils!X9q^MVJ1seuS`^jYn5eSomL|Q~t zQCl{o>?Z5x54j8dfHe0!qn|}K5d<*1eOjk!GV*U`&6W?*4Ub7iz*xbkE%wPwuQQ?2 z(m|sO2w)-F|JNu8%GCM@-~DQCny+S;wRJODg^1cRT4#TxuTQ0k2lAB`RQ=8LoVIge zkTh6F-KM|F2w;21d+P=P{qFP_17|`vo_J*0z3=~3;1>P=0}dzovmbpoaErNX>9Y&7 zHafNBoL4qkALp&l7;_N1Smxx@my_ST^KPIk0%wd{oc_~40~r&bL7@3TKvBVk(ovJk z<$*@XCK@&+G+1=j-TY)ZEcnZRmNSpbZasWNb$yM;*%Jq0rKfbo=TZgc^@h=}M!%4q z)fP>Y5H`Dugw$MZL9Imitfx}QR^MKV;YCx2#t7kzd%$no$jiO)D03^il4NDsY2I9lc*k*$?fS2GAuOD@1`WXPDSW;rK|>g` z3+4Pcx74BISh+GicShnXA#J-bf& zZ6gGP{0CR-pSb$SvwH|d;U)9_n{*lWK4w*+(}oP5seYP98*e}`JNU?M%|HVg>A=uN zjGIl9&=kyHj2?TQM8L3lq!+CgeoJ#Qq~#&hR1B-o7&T+}3RmT696tJ~2kW&N2QIr` zldlG|=u84;%FTs9ZOQl5jDulP5&0IRjR1=kUV&2OYd!}$;GD>X7}GJBP*e8cf@6d} zWo?6t-SG>@a2$y9BxHtZsjCdyv$AnEWzg5L0vkE!QN>wPnm~JVUq@mGr`8g*RNJqg zt|&me0(rEPOqRTgj7+F>YdS`=r}9<~dMa-WNHF+_Q-J-$|cmA<*%+_C( zYY0PF`*`E0=Opnp`wB8GseDS(BcFciMK_d*?_;B%GUmE+USa)~B=U0$2GLe3q;M2t zDo`;D-=ulyj$O?mD;i-41i`v0KAVp`x6qY?ZfEvR#6#Q;>BoD_H6aWVIN&u((YiQg z+iM_|eZhqoYFnzARDJd`oKH?^_1wm6Yi*@n7~#yAD}#kE?-De5=-=YUJn9`dV#e}O z(KJtu{?gnOH2Txr1e26XND15{kk{ujDed><9Zsg6cu1|=Dra0S{Gqq}*KeijU3fryP$1JaOb^-VRFI>R9pB-uiXj zc{gP>0`q5{`463S@1|&#h6WG8i*H3|LzgMHf<`C3g}OP5AS_uEe|{XBUe2w&>qA1p zB35b#zb{!Q!uW>+-{j4~aU+)Z4!I}54M^u_oLIc`imSw5B&y6V!DDAM(V1$M-!!Y~ zH`o4Kn2$YK2@MO3if5fe=qmu!mQnXXtkIe>Yd0pT4bpHboJ}x!93|1Mf@=+cMEo0C z88{^)$t17|)7fX5b1>u@XP)H(c`LdH9Xx!}pal*BS#Fv>E3uRC^%#23)HrXQCMKIq z3e6PIQB^Pb{2FKRdknKD!#qN@{o&vIU7)M#LJ)DIg_7Xj_jk$~?_=hl>l9$uFr-OK zg(q>-7;}V$iIAvArl}{I6W)udur^e+4CXpR+B(S-CaOOUGX~{+B;B?-uGTm}Q>6`9$m1ToOo_6i=Fj~-%)kvu874x6iP z*Yww|awjxzPM1Y^cGxuCmR9^mlL8OU>uUvstBnSd#>GOXY+H60qLtse;Xx}qI|u{> zt9uo`^WE=5(>8GWg0mmpA}n+;?hL;leEeykt7cOXEmte#3f?$0V;zbC56etu)W7)4 z2lp8Rc*ywz@(R4pzyrL(@^biGa&B-|VcG|~#|##FoSA1BxI#ATWP0ocmNbCi1!7q_ z6a?G!M%(y9Ys7NHHlP8tRa(*ja8nwI*ia2XI(f|x?vh-)5K~s6rkDXHjoMG9y`145 zs_Z_4e)nndAG2{sLEw?h&O{v3+Gj?BLU2<@q%@;$&hZYFKdfMyw>&aqJq?LQ@J0;i z4?S=%6yxO$e!_f&5>~6$ay^PE5%XhfC?j^YE+v`PA0cODNBBhmz;NqtKV=~f5H;LG zOtvBbJad3;$DWyo2JkM>O)>Yt{V5D3w4hDD;d7mVhEsbN9r;fZ00DH&LZyW(4`K2R2K`*(n~{DF`B*q8C=WRDFDJ^RR{k`{zzAOwAiIsQrskum z7QbmsMLS^`Vi-)}UeFI^7bZMWm%KNb`aVQLK2yO8#s|J4kQzTtnZDd)(T&=G6*;mD zLRq;ETxUUEoF%i~95T&1LlfRiMTYM1aE1Wj)h6Ugxw1PTF}939N+gYL;>o*p%rOA# zU&@5{EySeh@mV3Dx7w`Nw9D%#jBRX?^Ud@m#@}ME?tm52wZ@S|QZZtN)L^tcHkWh{ zTIv;B#eO5&kwX;;5bw_K2NJ(mHt(^j=>SbbX{!)$ow$P=8Q?%A&Hj0$^92ldu1d;O zlV`d4q&q<6t`u6LzV&A$aMTj)E_fJbw%1b7_VL3`z z4O^i>*d=7qOZrMfXo`B7%}OrX;fOR3m++F3T?Y5oeR%i$f&&;X=NKRmJh*hDo2<&XwrCnW8a{R+3(H;?RnR;lbJbHO>p4N6w zop6v)tspl~K~JkmGnLlhP#;!cr&Fudt&UmGB_ z3ZZq-l)7%#5>tzj*edN@b?hP*RTC3d8o_v;fE%%>ilSf`#E_U+p({~fi0nHi#P1NN z*5^lULD<;mKYVaMt^ETQvh33m-g8|$nRii#t@|03{)lt#RJE-9$DAMF`!Q?Jox(h0 zQ;dDKsJ+tLM|EElwV!V=Motk@dq_8eef6rhc-e$e*7@!jXR?4>$J`ihHC3!ueis&9 zpgMabR*uC2x<)>IHv7pk;y@2#R`_{tz0*BZuytD6J=A(nwsjMagL_Xn!Ytc^5ddz< z-Q)N%;ST;EqV9We=@!UVHDl~PE5>}+RD~&Wm>=yzAN>jSC!1@?K06)JB#8TKq_IbU zi_2}+32d=F*TrEhNu~@g>8gFo?zc;L!*v96@^QJtUI4VQ#2W4=_DbBmLthGs4PdU! zqZ>yh^B8jlj@s8g-`DZyAmr3?)-BRZeNzLN!z(txsgu-SRSoKnuns#_2*1v7 z9zgS9OYcG(IX!ceAeq*mM9o+v3F;o78{?|}!;tHoS;wec3X!d3tQ>3VYATovt$rlb zm~mMv5WBCgFymdK?b33+^Y&x5(ZbkN_{XTbKmN&2108L3JYh~B`Q*$^JQumh@t6Pj z%RujH^Uk)9IAcy|WtQ!nhbM(bWT~P4CL@y91p`#BpLZRD8+Oi)wkOX%c}XF0nhe`q zcQ`NL3EdA*_K^Y2g&IoFP0%-Lvr$G(PvbfGCoDI8{u$@dv1k8+e(^CIdoH<`;0h-9 zu#c#43Zl?MIzdzCdFi`3u(!*A=hMIZ{$vm6i2mCT?@xaE*WU{CCR+!3+%=a0AIp!j z+Jtt&PvHX|zXc!jKj7GkTNGn#cgy&Rp^ETh?7T~LceC%~@D^tyy!U5M(X3!%^5=aB z$Cuv>bie&`4kGzKnWGk-v)2BS%JR9_bWJ$e6#<=T;%ro+4CFPtUXIbAwYjd~l7(i^ zKKY!1Ge*~$y*M~zMuSGcuBL0&gA?=@mMQ(tTvSekRx&I9vlqwgKVqviLj8#C(q|r& zLcck8H+pZQOOwwLla5nlp^~B7sQNi48GZQv`zdoZ9tWL|FRlVT>g|v@_V0ZATY__>GXV)E&;X9%3D!0;!6?c-;T2_WDsck+_@VIx__3O^Wfsy|EA#ulDf zyv4ZNW7YxK0K5PEbKWg9aQCDsryYek2uC3SUqlGtRVb^~V>0^a$*pPt-C2UG{`-h% z@F9#+MVS%;%6~{-_7Q8>pCAZS z{k`J*B~0Q5jteBY8i2RCzF`0RIThK1H;-7TB+UFLnuwQeG>rtDWjbr9P{P{!r+?a7 zpwa*~DEJw8FOaUDudfO~k;>6n6r z?;3kY`ceHiQ2lplQ4W~fzsJo)4=MO>GV1>x(DMqc5^i<%&oo`7$146nV$X;^?42Eo z7MrH>(cZ4}Qs2yIHVu17jV19031ZHai+q17B-*x;~{OX$zNoWV)FR`JJa$yBteh!4y8W{IyKksZGKKMZ<&FDQ6kVF0MCGk=cL9Da(X+7D~Tfp0c-3 zKGnR`0MOPvA3?219PY!z=j?!Vb*6{eZcxU_Lm@h3s$0^+_FS59v}v+vJsN8O3IMdQ z)IsYaUbDso-ZBeK1F-VWa#}EIh?<0b zl0p6FyD{lrY2eZ#)}l!&4aVE`@=A$m>z2LYNIsXZvObNv!%414cF(+bMWVYEt^7Wh zsGYgX4I)GUh=Rl+?jfm+$ndUy;IUk`#Ke=e=)g;Mz-{ev^d~rbs*eMU_8&`A%D#Pr zcT+j=Rl;ZeJWwI!%!KFkO=*1`tMGjOoXuYh2O~Aaq*J43MtTvdYvkF%zil)TPvli2 zaW*9P6d)wM7-MWK60@0m2Y}+`L+g z2jIMOz{3{d49wEfDge?=wDP;aNg-!mO(g^)G?j4SEl_9y(nwmZ!*f%#8P~c`6%xcR zD{bIDW~a&*5jI>Ay1Lo@@=U_?+lkL}7N?YL&PuSg&qL*Rsjh+`m7jFPshbE9(?*)x zrQ4vZ;OWMWYgkjx$!}K3f_KJ?Ku~RY6HQh=@xswsur{T<+P3K-b}ZLvh3NSt^?fwZ z$xI7-9rOU*2mXnsUyL;NsrU-Euk~wAnz{Y^kZ=$%gGl#i0}vt0Z$ZK- zJ2T@6I<;4s`<)1Dq-L@wqC`t(s@QO^PkzC_M=m?U-!5K+ka)1MmZ8)D&RCLqN(-S% z6>74df#tBm8I8ml zW#>Hvo|@!Asb@?{&N=dI0rcv2*0{q1c1^&?imnQ+G4kTmsN}fA`wD>zyAAv~ma{{C zPnr3!i)e$hpie$!nskf0VN?$MSx44+cMvhHKT)Uj%)6M6HNX%>1iBFqc|#$f<^bQh z{~+`G4m`r&vkv8>R4-;*@@H6rYEQI)n1cNk8aJ0743tE#F_?XB)&6!sVvB5@fgRc3 zwdY={k-f*L>k@DV)1IKdE<8vgonbNhdd?;r-u#$X0qP71K*z`}NUp|2@!Y7z@bbv9mncxI?^RTM~?PApJ-b z0D?e$za>AK!f$?s=7Nd}-lzB9ntX)w2GDc*58vTRD(1pn2E9$|>%ioK$|!6n;Eb|C zJ}&4weD;hn1fYG+<7b~uKK$7~1wAC6 zxC&c#IlS^70^ptR|M}z*@E)!HBm4IratRsF;V}F7FNi`I5&^XnW5_Fsoqfamt;X+` zrBEX$*y?GFL*Zily8Bqs_t2n(B@hlMHz~YJSL8lg%Gdwwy~*y`W9}q8pM3u5TXfl2 zKEzptQ^o`ql-KMMXcG3fsicz+e*+R!F3RBY{=><0G=UAEmw~?GO0azvGaVm$PXbyG zd7nICeLHZK{w~hBJ|fMNi0K}F@?!G-Km1eRl*&H$YWRQthrl{RA?GsK4X`XyY0wy> zp@5^6-^Ptk4jWydO0s^0752)AHop?#<;n04)vU5E7THn|1I%S5+1*Ir>LVXy9^EkL~7 zEZn0_Zuqg~KSR~bpc7*iCk!~9vuNgwR>+GmXo_GyT7Mu26Pm)!MG`{jh03_jwB9;v z_cxg8+hPX5L9l(?_E9TsaqMeao>q7t^oT(K_%5}D8natZ99Dk(Cho#AV>?ue5GX&5 z6`4w3m7sQ0Q7QJBdRuebe5wH{(@;V03e#*oU+cT z&`7u`W$kh3w&Gj+w9+79sY+ujyInN#(g+p)PPKaJ=+qH^%FGe`QwCm7B7kV^5xg@s zfCykjrF@_kSo~nc2$7z*%k8C~W2JcI0qSg5J;o z)LinHk9ZiDKvBNK;k8p8JetPMz%M6EM=%ke{4l59O*YT~V3GuBrF;6^ zN=FRY%Hznc(>U3ZObg?o38|KaTrgGg_*}UaI+#>=%nCnEmt0? zwaHap7ACEjEs0Nr1imiMOs6f7GL)4>+!iX%T&bo!g3` zP5R-s!1T+##>>M{T!rd*fMYWDyTi=HZ{=2%cJ5tM^tbX~azy&2w6_d;xmgC5qmOB& z<<9{uz14SY!n8F*g>0`@rfWXJ4=uPtKtVQV#C68_fm4_5(44mJBxg$C#gO8b${2p8 zZloctxLefy?HY8RZ!r*y5&1({!>d80z5!F;j5C4@DE_I7`tQ$m%(vR8G0TQvEzN>K zn#l9P{tQn9fGt0Jp=r6cZFOYm2-Z&H#y~I zoGiM5@wV)L60gvyH;uSy>;rmU!mCd?1=pDhrv1+8d(Pe7%K&8<-Tr3qAw319ts!c^ zBmQeFc-m%;{~@>A?)uQJdW1UZO+)u-3HPY{UJ>SzVZ@f)DF8|cgia!|VpelL{_HoR zyFr~*KlQHvpx?t7Rt-b}K>L%`gL}|LZEef#*5Lm3TdY$+R9qko5U-O@>E2Mq`|3eL z&lCW}VB}O{YHs+*BAFlW&~JzS%pzFv9ZYrlb7!AHw=Mw0K@$PM_{$OWci?YI8CZ5R zG>kUYN10|Sk}@_OpJJ@UU`(S&zW3bpRO3cl zHKhW$B{FK3>T?ML5U`YkNI|_-B}dhRc+#v!-lOKxU-MR3pPXA4q7vQ=Tk-puX^Gb~ z=it)QUQH`P36%{GFrsXXdj0vwR95!BpR(eOd)z+!1?TjC_%ieIUXHor(odiRGU6rX z!4Co8skz4=eG=#;C$pCv(fz^u4E)jOm-!rdHoXOSQlTdg9#7VpH|9Wmw(qj&iMs*+ z`fq>8Vju1)KpU{)f156V(8W<6GD=L7DS5WhGVAU)2nn!jD8<0wh0U+y@A)|Tv12zj z%WuZFY|drqZv1vec8bmHPkxSUJz)sxA`zhI@~;q%acllVS-=X1uMJX#(4C2uXKS;dJ~=)HeV zC+3ow7oSd!-~SzMoL}IepY#269V3kGFN?YS-z!;Q@xT0J#oA`NPbd}D94toX%m8fRmfUCTjhx(99U%NmNE3I}F(p}(vNdu_DFR1UZxCrqt zVvcC8BZYi6dA8}h?eMsnVv3~pyV6Po!=-MrsCI*T77T`p&-<7G!7v1};`3PHrF($b zV`2?Q$R6!*RPIH8ut;hvki#0ZY zc(CRcs-LhG4qi=@q?}it!^{_+;tO=)%N4T}xu8Q0z{;P&CQ%>&w99-yC-ks@f3n8t z{}zK@k66q96b;}2EyEj$4?DErZ26}!myn#r;5^>pW@T$kH_1WGE6MX2#z910Jq z?0tw{+^K@U;21O7sAvE?2)&boHZQ)72GFh4}6|ShZ0>e*~ zH9VbkY)Hh_H_&YwDSSvi+5->BqkPj_Xw^LS013)ZrQ>^xFJIzpU9+;uSMo9s&@QQU z%exVG#hJ&|lACA&n|#0GaUowCal?f#jb{}9V82e^oPB{Q&kZRFAFTkyau^4QY{|@2 zNXG-5B}k!04VMxf2`SQvx0GN-k0ZWggk_Hw01*|cWtZ^n!5?w9xljV7z`(@*&sB`d~Qp1TGUuWiw?kk_>>rL6fOSO`r}R7#J& zo-*1mbUa~!M$pc|R|8Ve5PvZ|!et$)zU8`pT6vfE?y}ftA60oD0khAbnYZ1#6Rk$P zNsS6e>l)aS@6=6pM2DhZGUiOpMuS)sl$I+kZnhmG2-eWh));45+ho!QFbtYS4L6c6FxQp4X#lEI zwtD;rdYn^xlzLWFB{XW1eR!ddBkLwL5JG!TI0ZM90`6hk_Fd-4Mi2et&K=WUU7b=U zuUQh!z>lzL0G-I@%NB@M#(Dk>B+7X9|803Zwbxe1!eL}z=pvsj`uuM_=JXy`&v_m8 zW3+(#3<@5g&h1nAy>kziON%eYv|ocLGkfEQ*Srh=vy4?s9AiMvF3UD!DePT@X3UwB zw?~W#Sf=N6Yo>G!Up{^tNR^?>lrqAe?id;NY=OlI*QQw(3QTA@Bc63vO0Eb1>A#?L z_f%z}8rRhcWyjX=$pz(L8Q>NH5DgT*R8(0eVQvsssE?`YyS%Q(7nT7x?-CS8zIhbB zEwB9OL>%G?wZCmTGA8ZPL=F>FfXCr$3&&)%*Mpndkp=Du~cqY-q2Thi7yfQWXQ~W^%Ic81fp^+MxDL z2mNTsUCiqHUGC+t2OGk7R?53!ZS91Xrj`E_%CA?gFxSIf28;19+u`bTHqM-X@7t5l z7|iqhyq6z8oBWbWDV#b@>Q&*t`bC4pR}{o%u?{diOpOC=+G%6TlzyPMzrX65(Da_^Uvk|oTy;3-}gEC-$< z1TIy-`SS?!bNI=95q!=u^D}t4jcYXx0q137IzFju9mWn7t?JCczwL3-} z3TdnFa#dAeuU>W&i_2IMe?(6~P-#kC3R0%}8ndJUKv3724;lb==ZYEcM7sGj4Pdd} zD|~4HnU$chS=rYJQ3+Bk5++pPyOb!qULp`=W5beH($AtD3N%7cNz7o@Ql3(H#A#S6 z{^HCz{@&ud*u}vop=a{Ah#mntaZf+3{Wg962b|*bgiA5qYI}%~I8*~r?H5gqhm^u@ zO@0EqbD;Kmu*R69{|sZgmN+>NPEape|sI#t?UW`8z3$t3A7QgtW~E| z=A@(D^r{TSJp7Ruo4eYc0?2Qcu_yATlTXs%(KLY8`p;=tvILpBfbZBTz6fuzlty=# z&nRsJ%K+k~5TL=8KBWQdKs)Q=_AZqk+IX+xy7g_2kVNCkz#mbV7cr@UUfaFoLl`^N zxe&S=x$+I9(wVS>eA%uF^hRF$sfO1c^;nh3E0?YOMO>v?M9+2N4T*{$cVe+2E+Jr_ z-$6f#>aC{GH7nbk3y%OW{&Y8p!+6K+%d4r*`uNlo2zCh=9mop9O+a7*!QKD5y31x|^;FbHx~od)(Xa%C7YL z`MyWtxu)FcG(iCfJEwB#Ec^D)*lrrbXbS3oY|P!*l)r*Sk$NBd)qai1jXXYlYeC!0QBh2HEIOUm8P%4fe}a9WTnx7y9OO6dNW37=Fp z+3yadNM8b}QnrDv-uhGPH|bg^$oHn)Iy5 zOxI+9uxGI)ZJxxTKdXI7OR;b?4lA?o8T_Fzl>Ql*(I2M52YDF~fg$r@?Dwwkc}_nx zq~Esn_B)gNjQDS{<=M*r7g+ZrYa8e7{WqiYL8%%}H&>kPN>e0$_!I^{f;3vnZxm53r z;@hpXI~bK-nmQI>tIZ(owUq2B7X35ri(gxOH8E>sQ7*g)Rl<+L{@~*_W4Wp6D!3K& zYw-7$$Ko-@U@qMIVC(EW{1r1rb9ghy%7eGx-AQWl${x`Rrupfqm82izQEqzC9<7`F zTDPq1KnMR60M@;Amxu3DAB~+EE!_v&jN_^#jkZ5J5wk2(W^5Y;ynI+C2#Gz@Jsw11?b2vm#K!>nssgIWuga z3e{BpH7eQ~75}B{omrNvggrw2JEq@%vcAtj6FZaHA({Uc$6!;5QvURV<}Ca4beb&j zq+-oqC=jetJwf}7K>{+skPNl)T{j5`6t`+EoR;$5zG4`dAbAl=M*T`np#~gfniK%q zhwBP#fTe36$c*9=Ew+~j@yG;2ks6X*sHtnnNNcGRCh*B#LKW`tvw0N1Jt{&}r zyVLh4M=si7OyJcg&nEv$Ln3rcV1CTmga7U^6c=f5W&ov`@c_52Pr=DWLM|FgoieSYX9h4b?==%Oywc#nyRJjn_5xMA zPTZTw9+d<3N4Vh5tlut05f0Kz-sH`%G>{p}ustaNf3a1FvCI@^pK{^#uB>md+CzksVe+p0ajAX7ujDQ@eX; zOtv98?8L#nYR#?SHmiks3cGRucDDRWV#(C~?t@)ITLF9zFX(>Lv?aVv18}U%ZOtCG zvde(?7SL_iS4{c3$!X3dnZ{z*#xZ3prUD=ff#40t)Sr1%aD+azHul-F>MJZwJk3pTaso_1)*2eg3T8BCbkV_N}L<+LHSJ=&yOHd}vSo1KJw7PQddE?L(&< zz?i@eqwd?R9F(7IVcm6_u^lV6t+{=A8KGjWqQWJGk@E7pMjkMA%d0$=y(q4~I}Bx- z?pp*pjaw=lS}x_+v<>2>!Sl+r)EXpK$}W}OMvU*3`JRNYD^7PLj&o2p5AAW}!9hOj zTOR0_6})QaJf6L%;Bo}wI=_|g+mnG)uT3E~hK2CpR&f^`dx)p{a2LEz?+b0j=XgL? zR{>pCV4ptc4p`w702GFE>L$I$$gv9}wQgs<_2K$J=uxSE8H5}}^ zK!{>#xN&kx-}E%~(mfbhw~Cavk|{bhy0!{mmA>F|BF1yOaldW*qNK#`5m`AV%Zj1Y zm9hI1`+&WOnRrJEOJWkMI5yb&9r&fNy+WW!Xfh*glWJ9_yxj6L!tR!@H=Q8Ql35Kue%CHOV>j`BoeBN$U^sDq zLF;XW_ihm{wsbNBS4j7A_lbDA%ak2z75>+GpX` zF2{VS0bDRZc*6DRGy43l^`A1{s4JDw5Cqkb@d7_6_}(aLw2S#wGc-O#A?oX zmT>tf)x@tqBWq|&y-FY7M$bnf#ACzaZo#%Rx#cn%i9B8pu`X!yM!6J5!Unv zgtco1q=GRH!rLA_mmlq~H%41y0+}7a!Axc9g_eFDhDqNn8UVy&Ov1iV2x8?N3c7GH zM(x6G20y$jq*O138mZ{_c)umAe*7*$Rl~Xlu)%>Q8;1|j03O0Hk0$q+>%Rx{+-FO# z8o(jYUCYkzd#0YPqQcFhEK)rWjtxHPv6!R0G@1fxnKhnD<#j_T(;))E{lY=q2VQK`DJd+3>v5V znQlPEej66}52I5)(E@ze-rW;hi?dO>?D*-tn{fc*Pzz84a4r6(eQwtC$hHMuW2BOYWS(ddf>sm zSty74P*IkT9!C~xiY*@ok@w%=eqs67lT#JJ*DO8i}-JS2!CKTU#0)yP5R&J^P|*l-GW8Pz=c3$-hHFf1o9VyGAzj2pZ&9LD#8V)ulAC z)l_e20IMDbx?QK$;x2j@Ou%{(@+3@$K@R6JG|VX8mC$@rj_Re!xaPfl@mAJ?MizS| z(n9##OeI!O&)SCw`g?unHLZu=yPv@;ej;!nHqfqs*LCI64yQ_8>Br`tL#AsU;>G** zJSbxZWWi?G(rGeV{;K?=RB&x(NRC(StJrpL1E@B!97Z{*91PHJ`Y%5fe}xr}(_ekB zZv|K58^=>&^=q2u*@tC4Nke7JE|KdYyq8d6VE@`%jyIvFT|lqklEzt9ZQsuBtL2k! zEcRrCp8>YAX%#|uKjb6u7E_-FZ&>0sIDjm6Gf~ei(fn6&YPCmH>#yt$eev9^DYEK= zkMpIy_15fHAuF6q)r{yds8n(DN7FqJK~$3xL$?vHB{GB>g(fT&%Qy&^UW|TG{nqIB z*-c-AAu`{ITe66I%W8j5tfK_@+KjNth+`(N3$6tB*#g+MlU6c*P~S)mRlA)PK@l8b3-59UXDk6l`zpw-PK^ z-}D>*?L#i@8P~I52hI|j)n)N6nKI4?|4B2<>oox5)>PugqJ2ob+X2l4Bdpy+!eg)S ztI$C4b8BcmS)KKAhX!DXFx05O%2FXcA2ms^XyMUsHa{u2#Elsh%?&QArCF=Rj) z3q~jnV1s__rWydteh-7wyIDjuF-~Xd8+Sk^tYLw@@=1PxRu|6qF<<% z=lWLfuY(o#bzvGCy)KsPZ^l!PuG$R`dGa75*$3hAmdudQ!k?7}KtIU?W9OW|muW$| zTAAvV?vAVpHG-_u$QyQJ#xbzmy5IhK10;?XEb+BSn?v!}Y9?+(@?XWF)t}YhG5W6; z0RL6;@mf48I|c9Xd{?M^kBmBC#5+jOHc zny)>yCQwCEfp8i*=B@pd$L0aHkL;&a@^%{0>1|dIrnca4d_?#UM-#o#SR-Umv&i_ghFl-eLUy zrbfR5O4uuG!8eJ=@*bOUd}H@FwXdeV`d;yvuEM|>5$#TgUO-TnhSwf@PuqCmFgws(|u)TfNzr{wvvHhz~XE{FeRFC3UGtTGOj%-~*Oyby& zabN{T&%7c|S&Reak`XDWKOaG_FGD8dpksfUx6yAQ*AdApky&uVCoEkeuhXyh@!h_E zlE-WC2HM+q@}vDV_wh(pbJL0Mn)=?}_^l7k!9GMF30rw=ZyCQ@jp`F1eOwiZ- zIA$?^3@~~+UWMOsMEFb4?q7S4#5QMwIJVev^{t70+4N_6* z?(@eoUpDS9>;H@JUX5?{y~6A6qYx0PIh6*Gb0850IdUt5SlyEzt8B2wSZ-sp^qv5G zt->37{OawMv~XQfrWSlqP=^>Z`d@MAevfN^BE*~?$S+x+}7-7LiM^A)BQQt&e{ zmG(R07ljoQC+h!LE0Uq>vBj|65^DZPxftS(W#z~8HLKaG?38=GH{XBwZ^iq%^!-+k zG}G?twYI0e!7q(Tm8Ed$=`mH!T#Z;zVR%h3Skc3a>ZZY${Jm7fu|m5%gPz0N0I((30UY>|)g&{eY50=G#T z+=qfTfH5Rs$40gq8^4#qZuckN{lTQ5o3+{TQ*NfCU3iBXrdRRfT(+jie8V1xJANw6 zYD#yx-x1B=d{?;FQD+GJ8cW4{mzOdA`t@B{;T$NnTc4$@W6z1Oe2qdx+KwVv9r2gu z^_W^OgG6`R&r%WBb64e{N zZWg_gKQMM}gT{fI0o)Jc& zEZCo{$>+7gN=&}H6>|*^SqHigtL?>VQLs*n(RLE?F){n-F1K?rwyC90*zHCvrwy6F zp3`5N*VdGar1?b)ZHu zu6Stdc>TTSEDn`}!pNXu?rZO4dpSZy@7Rpr%3d(>8E1bCSL;x;J5A~~Z-u}mFk8OE zXgCB)K~2SA+3;%l2rYBhaR@_W!x^TB*K6S)9>k%>aIof6b?}W4UMarM8hh&jX=M%_ z-t!o|tU(aQP8h7k&n<~I>LPlY(JmFFK6nhI7#{qZUuH&oxHaNHsep*;w zF-C}wdT@EI25=)X!y1o2g*TWh7 zn)g-W4#>9f4e_!UE(Q)V9XH*}B<7Z;PK8|T{!}>atA@fiKg8W0Q*R8h>hn$C#b#_? zm-^V>UG{N&MU}DJmx;f^6*Nuj!`Q6GH};#BAJ5hLC+t#y@-5`aE51@DIK?kNg8;zI z)0;F^z9r0?>+1VC@2o$S1t9mg7E-8CwiY$bg+u{OhpzHJ)O);G<{UWh{l0M^dwH-J`8@Of^UP zdR4UxS-jr*imh+sR&+IWW4p`fSF|dOcF7=oQ&VB}U-p7yw~BB4t=#?)Sn(C?)DB5$ zRI>xrfm8=kz4vheEiK>c3q9}@`V+%Ie=w2=Aw*e#mQ`N6Tluf>$w*;hc>P(?d0asV zFJ&!9_$Wi_?E2#xF!2G|D{;#KCGdzmiN4nx?rU_ChCdyL;k_((x!3nMgQHw51<>8c zRBkh`)c|e_@TJ`fgMwc=f>8h~8BCF@wdYhOPLY{$`;NP@EW9~KOL;}p78^)1J;<@( zQ;v{cW1D6KzlFpxV<{~0(X0x9sEqAXemMg!Cd@;4D|t~<7-s4a+&m>_!u91&R9%AB z8K)E-v!c!0Zns!A>~2MIZJS71)L-Ve(5^76@8v$gVtO3PZ$bTx?W^y8lkLk-vdepA z|2F?)H^bGVyW#5bT~p|(>A7~|^n~lR5SU)DdiwHoGL@D`+_pqHOWOzoB}D~HWo>Z{ z6}L2iROm`^jCJ=PFv^_`g?kO0D&)i~H+F4sNXaIfk~TaA$Q_GZHj?e~Gz^z4Pxb~P z&nrl`)LXDd8b-xDra`%lG5Bijm0H2q$9_`)jOnFaLXV#&=oEJCxe%xZCFt4pxh~a?InUc3Fb!?J$?z ztUG`I5m!qwcg%^ip6okkJ~?9oy`a`|bs3Q--{6zmg@G~;X+(pl{38sa*m3w{Xks36 z?;((L3m2Ya_x^7=%9<@MoOXNq;^E}?>>Ypg;tafYCwrVH_qA`Z{gq?P)doz`+g^ob zy!>?8jKBJYw7T(2@aymS0@nfe7ZalZ(lRA3V#I;1`?`c=G(S$?30tHJJiE3t;i;Gic03A0E@@ zSPcBL=KhqS!drfxLD|bs%0|GOGMG^2YmNn3_Lixx)c_cV@t<|>9q=-a9O&}+oyp$Q zcP6_$9u9iN-G47W_$V-f$ctZIJezC)UB6Bw*QAB@0dr$?kd)WS(_F9xyz?OOz5w>GWAcyerh zbW0>a7+;mp+h{p>(z)v?M@XF>p%HMFyoW+qlRPhO8^4uA#+;0z8&P|m8F@`Mdg?=v zpfy4-fe4Jdc`!pv-c_*fsE-XEOQFMa|3g4AB+)ItTRLI zP4jpz)H$Vo4w*bB%V|AsB!~m)CCQdx$qTRx9eJM@+%?cJp0) zWNN!tVQ$~Svu&=s#&$KHitjF1{)Nu(*UdTJ0(A*(E@}BMkJ~eac2^z-;>|u6(A1lr zGTKhyiU=HA<-Y}rgu+52pNH2C$dhu_N~MocgG8HD_2)oRFE3f+fSGo}kolzq!*6su z!7JB{aZu?RyyUgq8C=9jEw97RwU5E+|7Gn>-z3S6JI%Nw@4EXWn@viT zwA9S#e)K&1-|vUrFDq(S)QpBAmugZZySwhHJmZdi-yZDhI`UVoSsET*e#n^+Phf1dWldXeHeR) z>U#F-7@lN1XY2y*rhG{2BD~8cU@|7rlH;~ZGWWhDZc+1cd#nZ1WraD83blH{wB!vi zbLbNhKV5_l_3or#BoZGeK0}1l9^EKm*&EN(Xi$?~`Dh$oJD-cwH#vh^Cc5nOgk9tu zyNy$*msI`>P6EDs@iHeeTlweEZga}E?5CWzWEV~$5aBJJMB>%mG>=x{D{|&ZB!%tX z&-{)|Xdg;u-0+kA948OhW%}@hMgvXqn0*K+E06y+{E9B#^39vrB;2N)0ZVo|rYzyd z33h`i?wC{D@(XeiKiB(|xKCm!n)M&pqTp||U;qo5;8kg}6>m>!Ce%a2!V0?XIzDgP6M2QbE)*aSFwO4Ut#W&Ei0 z=3fGEsiP-K4#VB}6oA#{-QLcacA0W+n1avz#;PKoM0N@bY#Qwtvy*0bq2t7_s zo4`lkdlERZr6tWK3{3sD1CuzRmz8`${6a0~wxDmHzYSc`qAodu@Ab2{fw3)^r;L-A zycvgc)LXo{v4zFM3O{9!gNGkJ4D|4q2|M`Sd&HgxKy4U?aa(xd`1q!aqc63%l$U6LK80Aq z5H96o_16fp#6mcZooqUp~(%!z=bDy!`in?Foly zdm0FjKY5H0-(x2u56bmaXDk5n8%a8!K~d2D%2P?c`z=M`t8#TW)uZ7KbhuGsS}#)9 zfF=~puZ8O(t~WFWsD=5~^$PjK&+6+N8i3yIMHf$txWVql9XI)ypDt`+rjlHXxxqWW z55dTskW0SWg=zzP5V+4ZprXS1^b0vX7L_rRe@IvLY|F->^1u*Aov=5bFnvdo>{Agr zg`(gHFGXh)B`@NaSV=Sw`m?mRqY8mSdAxLnZ{H@*2uC#l{b4HY0E?F#4my)r4vBk< zL6ANz!;};41$?9GJ7uEM20^3xXf!Qp?%r`-a=anBw5V&ocMtjnaa~?6IKz_B4}`(| za^8FO;%%VaB=hCA(#fBM#dRkq1%D$Y|HNwr-$OeYvz3`Rj-lZmaU60GOire$G-;oe z*b?P?f5cr4ApL#tog=(1C_C*W3k;{TSEs!T=rzOWx6#1H>Ast{XaJt_Ys)XrS?}NS zU{dWKC^D8$kTNx#-7=kiHypH32%rJDi*ujtZ-WZyH69M?_TdK9{J(o<|jk8j)4E)iL zrl$q5WmI?89pgWuFrso%*tYCi{3%+DaYk(+TZt)fv;wWWw#GK}TPj2U@(!Co2*4*H z0u?9t`FvMC8veZVyQZQV6hqN^M*kJqmx$6HMMxE2LF3~h>VHc-oc`gEgxLjMG$V&=Ex#2!}Cem0d zp*6VlmwUbWefq;PJG=Hu;|1E5c&f1s=^nX9pR+GzaB-7b4M%QsFVsKy(((si@?84- zsQL(PRsJQG{xyca4c$7sYd!k^vG{BFldfsCtHJLEg-oG3^U*F-7nu$tkTedzRdcZA z$4=u0r1C}j{qTsDKjZ&>G)u~G<1W)&^41VMv@=aW^=amE3lKsA&rv>{vj z1#pQ5VApJOO83kb-&2(po>u&h&W%~D#9SeWk;{*@jB?Lop^`V%@!rP3u3>EyJi}q) z*^(S*my>s~7g03nGI7RzIrWFueuL1KUj|oay`w2*bG(-=&5zKA4jgv&3<&tr?Zd73 zYXsIBep)hY=&@m53;24$v$l^`j**%Ty$+^yd1|nG(Q+8rII_VmRQpV5IqE9U7EtU# zO%NdfY9OJ+Gn7=YX&{0=j1$Yc$>QH6jR||zqDU;>cX%6ZqHZ_0p@DHSBmHVyO`J)q*x0jlKAic?lko9l-{zqYVLDz8b7dk^?nKK|wLt zXD-7hp9fk&CLC_^>W69`oeu&v6oz%cEl~-g?Fyjb6b?WHV#VZ2B3LRI=Knh7DUCWY>yF_z1$6)w^xXuu4O9a3Q!Qh;fgN?4(n0x5P7zaxz#Qub#uySdb62TcFXrKBFr@UmM2TgE{s&_|YSt?1M{{BB@Kkr4q>e&>}`OD%2?& zz!iPy75)ANGv+ST0DvB~tvzD%{HtP@hzhOxtZ@|BTq^^g#g)lcfoNEL`ot>^V(o)# zPB*6IA3Wf6W7MtjJ^~a$d-&MRPcRCGW))xZ9&RDuYw%UeFz+++eQ|n)z(NafxK9n> zIU2x=7p2dCiQqy5z$gGSpouh=3$7*Kp+Q>z`kWTY#C4Va`LOtu@ZJ-?3IVK`ndvvc zE;I3<4^C}X?O$T;Up##o=q%Iq83&QPWfIbx7c_zhZZx2y4-b3y)PxY$6I%a6t_i|h znrfijVmD9&u=Q66$d_sW@^QKWR!DJa*~v}ARoF7!;PpE{(RH8J`*^mW_E`tH>G)M) z;A7*f9Rbk7w|ELHj29;K%g~vh5(_~vUh$}=k=I7@4H+nL-u`XbF%pHo63ntft%aZx zaseS#iLFN_lrMO&TQKo7AX+1tY)U1zdoWh|ftOO-2^$*l|D^ew1n6MzvsSfraL z0Picww@fpRs$-^f4c@*FKKuytj_<6X4jnc+SgG1Q8M>u0@`Pdg`%V&_A}FSGho)$#@}7-M4xkD7 zFvf;o;n`a0nEC$wo1 zH+Y>0rPdG;awYZ}a5qBV!9-hBPsh$Z4&3o&H*Co4N1RkPduVC1FXax30SE`H5yPq*K()IZ)x|S9ZaK&3TZfZUbY^m<2hf zkG}*uA!_a1^i#Suz)VP5P@xcjX-y-DsL-iIMTjIK$*)Ty=lJ(^dB`>2_K9 z9p{(ZLsM8&=n!9?iNw4^mp~KHg|_9kWr3Fh^!X`|!4Vo7(H+BE9?v~JM02pu&y2y9nZ-0f>aE{ScXsdt8 z{emuxLcs+@H~RnLXTiVY#Jye6BDG&0@Up&@I%kDv!O4s5(6V^f&Xwb56EbyLi3`fsX| zNKY93IzvTTRZb}gT0YVNWH*F$rkqGD=d1@OzF+;~7Ys$w|D*yRQ((Rn+6_=mK4!kQ zP$Sm~wgAVZuYeh1Vy?ii8JE8Ru2I3q_c`aCuz|K%pmzNIKLuKdv`(D${)YT{IOPVF zP3~CJXYcS8F*~+G9YoN^5Mrb(`62$Ap?tq>t*@Whvc3Eb{D^Q;V4Xhbof3R-jIE;1 zKzsGUM^U#k1I+@Iet||y{8nJ#7MgF)-}Yu-{5(+nw+>Z({hPp4dMoo%W2kxH`+N(& z!Vn$MIRb=vNKa@G``^T=#oUQjtNlajDgq1GhxyMq|M2v;PjeQcEog*BS|1q~2Yoh4 z6W)QwYCo%IUj}Mav+}RL_@CE({>Homgs3(UDzE93O3$<8NEqS{O-LsKR%SQ75~ftF z^8H{!_s^Ce{+T{}+K0kcy`2NNJ_;DHMr>r#iefQxZYX1So zPliFM{2zVxy}wZjkUUXF9v#Wj z58vg1)<5(rs=s}FRsKCRfIS3(=L@*@V0KDHg_atDSB&#(_*=bt5jymb4|+!!{O&Vh zYYLxDu^B`IzrG}TNepDIg79ml~s@1=gfdTk@*R^P?KiJ%IEr4Hkj90>> zpP?j@U@Irr&`*bm_HUGM_TQtD$b7kEgqqT=WZwIj!YtnaaX^m0*#ET;g}h7f45h@V zLS+s8kf^~?W-01kYyuu1jQYjOD%zrKF1*adka6d4j$HFk(?0})oV#xCBNU0{d8`B)DaL1Qa2N>vEKn&IJ*mEj5x?TvJXvzigIQ@m%r(Zg*I5C504IbDrK#eb>yrr zo(HtzOS&!h(Fh=WYyv%0y7ip?@)@e>oIL_4)aAZK4T{<`C{SBvja^<_W)f+9bP7@- zDnQEXWNetprO06_pJj@qZs`!~dK4p476rgmnTiR&r&7U4_K%$lu%)|0UxRO8ZUx93 zwb%F>1B7`JeMw&w6aX6dqT-itGwf3Zp#o8XU3gCl>BR4wU7LT9&{V=Q?;l*k_~wgr zF=m1sc;bIf3+}V;#WU(c(8CH!xildREjAOhp(a#Q z62{FXeHEa_>m(4Lo2x+*cNHXV4x^!19?>Z0l<##~eOi3@*e*$bcGf$YqJh!!JHhN8 zBQpDRbEeESv0)jY^?3C6noVeIiLdzXoYjg~7&NW?+N+jyA=lJ_RDO-n!Apex0H?;N z_Ryyb&b$i^yDLVxRv1(5axJl`tifT0W@TRb5n%FJB|sRPpFER(m_a-mfgo)OOd168 zvLEiHbNOQ!&4S_^Ew$^{Oob%j4Jy$U1^?>HCzPjlf=%!3*Uy>y`mDEk{S>uMi!KFi z21MXG&BT5E1B2wHJ_ItX7x!B##CnTCi$Yw>AgIs3g76bmIgNiusP9%dq1^xvlstU! zL7Cu{9D3;F;4cGZ-letz3VK8QnIL23oK^f}ZWzeb zdtoe?vcJzHqffpYXlrF*Z#@&hLMQzp^og;^3L>N8*H48l^i=?C&Y2i=Su2W_=vk=@ zkt3493L-2&-V`T3l+QrJndQWDCJiwW-KniUJF&`1LRkmEb3OqzVdui2FdAg&3^uGfkSxwaMJI6@9|;p@DmJuXbA`G>G08Kp9k9KcT<;B%6Dm>ANAkH=!>8I zEHHh3D&fWJXBZXX8_SzKW(s;}5~4y9;O^CMm003$Sp6c{;2Z2by&>_fsOSfy-otF=n zGYTu}J(4as@@h?sZ=Za4iOLNlEs#)|P@^#-QXZJhld0sY#wobdwe*Fit;$0jA`632 zwPF*PRhs}9A!kS*gPJKYKa16W9K~I20%q|(Qhd)wm2U=YIMHXZ%o?aoz^THjYeQBM z>Kvv~t&Qc_3e9r9q5&9Fy<~K2h)nMcIEBE`357%=s96`w3Zn&R0OVPF zL%IW0`~jm5MF2og+*%{7+EQp|+~8#1O*dT=-hscD0@n#teT1R`R#cYt84a3-O*E<@ z*8Za>kLmNnL#q8~cLy{sLN%%lJha5#F+&5G(dWOQAv{M2oFPaY=ifk!1&ySz%cHpb zAuf4f+UlQ+bdw_D8t111JEzkHl;0oocErOfuv5M*3}>-x$7pS8M`y35qIP zYy$SVkn*T(6mwKFt-Fo}I5g$NAzMh;x_3njuRUOZYUa?N+KD^6Y$URLqb;K`=WR53 zFB7Dq%W(E3Rb6F38BBp72qTx)*ty~EP&8iCRZy#f9{mL*moB8EEY?sY?3h+Y{zfug zzf46%=!N&oPg-j;BdP5x4ya%mnIXUK6|iB)nxf#ooECV?!^JTOCK7ok}}s%qo(EGr;%~J!+?cfduSwkjuH7%2AdY z{7QX;k9h69qhD#5g_ez%`AsyxTkOM)hSV9DkLz7-;+L4>YZ%pv4a;%2Tr$>*Os`b) zX=#M6gWo!t#6B$*Etv=t7>@`FxQ|~+rE)M26s`rFRXjJ-HSMU_q-h1WKvooj@zOxJ8rVeqKSG7J5u%>_aNmkBA3>DuKX9hu3v zgP#=zW^>U1jz6Eiej6yWED&_=pd<{lAT(UPX8v3m zXE*AQlZ{JviUlsTf=}+>50r+M!Sz*d{k|a;ubl^;LuX)fg(ZFBJIbgZt3PE$Jc{rI z0znA%nMu9vJ)5lqGrEp!%j>g%$inUv%Kv6+QNegvUY$z+X?}7 z1f0?>P?~@6@JXPCpMB<@fBoe%ws695iEvnMXT7(KOD|tDeb^+NxDtmRI0{JUN)jTECwR0yLoncf^WNo1p{t~>t{EuG*&M1$!Fz-+Q=g$J&aW}0z z_KrYoA4gRF@BQd60{6+|edhlE<)8i_aH8crX;g_*k!l*#HCFXSLi2O$v3VEB%Lo># zBl%x(U7=jLuC<@;RhcVCWemAGw6Tyo51iJ z%%3i)7IK7P-?AG2nqk&g`F66npuA?Z^a|@y@6m(9-lv~@xA*ArW0bow8snn(?9Dll z6_wz10X@I?;unGT`R($azhYt&u(bT}JA$dJ*p`i5L%TT=!n|tW)IV1xj-cL_dg6o3 zVccXHM4JFxp|2QUesWi$KuM zgyITR3n)_B-)m+xh(0dQ%`h?+_ND<0Z2_s=Ybv{~=hl|r%kLE)fi*+K5dz8ZHJ`!A z2PL2aAPE$FN+46mL6A-2CQgTca2K>_!^x7xLhk&Fl*S^fs;I=a)zVnF&s=RQ#6Fc^ zNtwy4Lr;er|UbB*KB9fp{D1 zgxW7u&2>C_!P44u)Y(g0KEk*YkriH=E8OfR*~fQ3#R*fBPaZw$ojiWX=*m&=5v~7c zKlpy26Je4LVOx4)sQ|dfmghpT4oR79*X@Q4VU<>VBmHe{FEP*sQdVQ=eQ)oly(`fL zd-LjWm?TmIv<$|~%TL#UZ*^-&3?czb!l{@df%cb{+F?u9T^MAvo<#%L<6$2=ghJo| z4M5BPka*VEbCzoig$N^O_gzr&E)b&UjP+-nAAV5~T=)4wY^UskP^;|X>;0|^G5n@_ znn5$?Tn(L#W?FP;tbpTE19F0#A9Wf4d}=Ur6b*Q(_CR`(RH!y96@MK!Pb9SAox$1a!Z6%VZZWK%^ptg&KeT9jZj5Fk^e=gn#>r!) zMy)}mxJo{KlV{$!W0I9wN5>3R7C)f#C*Y7&WLqWmh%43^WIQ``F$-AK$%l0Deu&k5 z0gp(-cFHP6HsqjxgSvKoYqd8+~O8uQ)PsTWZF?#Irk30BmUW#_5}lP`BldF~d|# z`+XSRvVo`!W@XFg{D_+^z09H~?;`-nN0G#~`nKHQBXePmHdtDIYQFRIZSDKiLM#6v z`{g}k%PgU579Ku&*gLXC(Wq2$(!dplCso%BsS%bsFFre0@@dkI7I=6|kXB??>X1uV zy~pCkz4&Zs`A=BuKoV?Rfk6!w_`!pF(cDyNtprv9VV~A-2#!|%eJZ_`f5f*l1lhTh zV0fRzs`fyXpbIi27N|#3zJcHkd=25-U8nV57bXS|*L!T4Kd}-gR&GA{=z|yt9ql=1 z2=0vK#OUN{bjmh%l)URUAfj49cK123vU8c3`*PW>vO%(ZZ9Pqs_>um_-+<&rK34cR zGjPDY72f>-=k5%|h=IdYB5)I?~9gZ$z4JDK=k}-az(kGTMrj=hBA_d9F zhA^uIW2+Ej2$bM!)S;zAf%g9)R*ZCeF45)*sgguAi0IL7w zCs1_Q&U^TX?V+dyY4IuCbRFn6h#@_!-pPPz%IpWPiu~~5aqqAG_OE~su%4q%Q~AI9 zolgSCY7M60PoO~j{jDCnEmhfYI+5_5rKzJ#q*D!_u)N>>h6Xw=OOLUGOn(5QP%hd4 zUcF$cYlT;o(-m66S1idDy1xGaydQn<^WNj{d=~-06lv7!mmfUoy#=ani^)P7bQqMh ze&64g%Le_<^8j`Jj^K-f6@o|ppdtNvMGUvwv4RlW02nOc3%iixDJwML%eO46 ze#u;Zq4c|ACFB)LgXch1arw}Zuu>ex2Uplo2+fgcsEs6#^*QO5*Zf8^6&5Ean2G8n zR25`fgxmsc_oZc}b_d^Rbf3e|YQcSlks6LhX!33ycI4^00dHIa9-+1nnwJM}@kq%u zs1F|e3){Vtw8#TmT<(`5l8Q=ok|3@17bYzjzd1iFi8P;gVTjedA!H+F_ni_khyo}$ z`h-acDY(KYxu60M=n5!U=5wAQmXh4U%F3;@21a4txFFi~JvjSb6)S=X4SPJSt* zTH#Ca;9u#{o`Y+`mY*9M0$z=L8?+LI!IFx+1dkc5xLVKy41KmH(<^YI^1PsLOD76V zhb{nifGOeknJ+&@13+~_1EBJ2UqQ{5(p06uS^_EJf=T)9@T{IKoR95(7aFI}l7UhK z4@Mt=L&{(XPWRUzuoeWv9|AyTK4R+jC3`|TBiQm7EaW?Jl6HKLmKGY=DmDj?rcCVy zu)9=TDl5-!WWbfOrQ*mV>0=W~ct`r60obTC4Pedm?W|fA^BsZQ#k*_t6PfT*rA&}( zh~0+9r(b>w0H-8Fer)L%@^Sc&x(2ix;B3f2AbF7(e%`LzN!)r?JNy>T$c@>AxFD>F zyIxx3%(VrS=dcNxPIyb^eHh*LuY~%&uo52w3X1>|2N}Iw5UC>!?_sJ^@oJjM0|X9( z;Kz3gm4Z8lY+3Q?6`MiOdhvp=liXitcs*hlR@q{TX-^*;daqZPPynR5g9T15Fu z+SK&%^Nxh_Tkfhvs6I_@?*zDU>-X1R@7&`VBPjUEb27NykbMNxJ{pYQQHL-lmzj0W z0dV@WEqz)s@OJv_ihO5`o=BvO-v|rdJL%!q@MsXPE?m3!yY{WHQKRL0NjiR?DcM-! zhtSn6xBW=_ga+MxmP;#yw@d*ZV9@ilpQK4wExR@+!}zp>a#K^I8x++)m6Fuufm9ke z1E_{)H_-?k1#@Y5$4?3s-{l)I-*sXTEOtGs-(CKiEv)z>PO$_b3-(mqS_{+OLo&=St2&aonzKed5qFhGqcsCh9O zIeAAWq~d491LzdvJzC6r7|4#?4%$Bd{Re6B4;*=*@=vu$la>W#pVoVaqC(F~11p!V z%aP%lvbjBk3x9vSA0t2B-C^nXDFAxvAhDzwIO++PYL6 zi+K*yUy;9T%p!y7S^iV;scV6z6-@cr!8qv?q;tFXdYT=b{=1j{P`x+9Q|LN%O_xr| zRSU9Z?$M<>VwA$O1E;9!BWA+An6br}Whk!j+QxE|=Lm1vWd>&Y`b0=;?L3uWVK`jq zb4b%qJ zg-~KK0a-?6(2M(YS88P^y;9hw>7SLKh%hdpM-dNk+4{>MLMq3WVLgwfV(w>{Y6yY% z)=cdM+L}H-e%$*nfBwVX6UL2I^^Z}TfAHZ)fzAR{WgTkeXJjHneWbb~9shLFdPIJN zt&)d<^0p(HZ%6y9^Z)=r07*naRCio`5?%gmp%Pz-@|};y3~zajTxG{L)}Ma%S?@j@ zVO}tqW&hRd-Y=iN>YdY{-Z0X!qI_S|WpW24ce>5YK$xPXZxSWFf{y-<9tc~Qoep0D zHMGhX*F~p);;YbmyFWAZP){<`<-_5aCS zezrbGMfXc}v&10Y^oxgVESml?6~mpL91gaLu#ewo!{;AZ=yWG?42Wr3j)+Jt(*3*LVq|KeR}LBt+ZM zmZ3eQ$6ADFX)JBuAOu}q>5N9TqV)fzS5g-ix;BhrgOl&QaNn!}BnXIzOm~5d_m0DB zbWj>Ow_2hF*2p1VRA(t00wuC<`9nIP7f>?h-YB}88}XG)n_AHVlIh@GKDW#)j-~-* zmRL2O6e&s?wiXHl$M?*iYZ^#ThEXsKHf7qVjr){-_I)&fM~@%TIMF(xo;u`rM1R{> z*Y3xP{%dv^0*{al!V7ga{tjUlC7|Xhb0B!hqs3>QN-^e>^1|E1SL`q5r$t(0;d>_p zF(e2x3K2C7 z!CxOpRsgXTSF>7UxLI<(lRLcP@JJ6GXtlB%u)w%${28u1WLOgo;7|>VZkAJUJ%q#I z!vS`lk`^8~Re6PZsSxsPO(_UUT)2cO+AOmp-z|qc?$EM)W2_BJ?@KDCQJm>{nPd5c z--1GUZG4^czJx2Vdr@u->+6Pt!L9t(B`YlV8yl-=kp#5v`94|zFj9>7fr+TZbt4%g zZC3<9dwcEKd?pTgtpRpyRSr zTF6XS1!?zf1*jHj?sQluZHT)=g4vr5VroE9LtwUUT52VA z;W{HCang2}Zbg__dQ+-3Z?ZW^xE;CY6u39M6O0@x)7a-k8|6iC{lQ@}tE;_x@? z1!(co50-{C?%*NeqyBj$IpV*+XU@4 zkioS05Gg9MgmQR7q*~&J&qu=dxP&S1B*mCk)mG24-eV)S$FApz9xCWRB zNOVIkoERdf;KItJZ~xWtTsLWW%eit204vJ*nW`e&Qn?6(*1-uuk57_ngn*gdgn@wM zk@bT;PJ+YoiYCCb0%OB{Ak3mLiGXp5>6i&f8qS(9w7Uc@ZECeb;P#cNz>LQW3(bPT zHOVA%XkGGGe#I9D{bjfu(*;b|!7@?u01YK+!65fSg`P|qHJ3C^S0-O_Y3%bjF~dm5 z_GeO^6CWRHNUoVDY`=$0@2fyR~r_+}y%^t1A76B0@zHNPv*wE!wm zly~AGP%13&eNMXO0!Q(-j=^sky>N7^@munQXmef)G|(7o7xac}kHUIyN410r zR65Ei`pGOj(Z{~N@MhSBS0JMFB^=|(3`XKdE#z=V#@;|mCQvH#owd{=oeZ>4s2|+_87c)amTp3qG2e z-hhW)YU$_xj5FruuUX(UXFBd{juJbgY@Fffmfof!pV)nH8u1C|8vNP!KkuC|ty%3y zq4At~B0`7ymJAu6a`>oF6yGv!`hq-7SX<(3N7uY8DVJ=-3EpeEi_r+gpYRS-x?0lZ z=wpnP$LtySC!c>F==U@F>|ed$>_eb*bs75$&b^pHd+U~Ew9RTrF(;!s;_jezN*kBZ zhKYu(kL{y3!Y-xu1Ak{nCPsBAU_a)al@n+@)WN48LGL2n-0|jsN7L)Ndv-(Zdx3e!`9PNc$SPWJ2A>_(i{>^bs^mw8h~GdpE1Nf z03)2Smf)O;C05J`0OAssRIEE7nb^!F=|dl#Mn=DR$b9`69E}^gZCL=4kpa`7CFGYs z+XUW0ADOw+0AQLNBB}-efvprR?Q0B5dP$U@R+puHGyp2Ud+BYc^lK{N)pOR@1B(Cv z_XvQJhhn4x6L4_IafskzsDz1R%;!fFu;RurD~-vnR8#{F2iNRjm$=W#Q}>y`*6<4yFX;9zjO0Taf76avQ_PmsJ;TcT}g5N%62Dc~PwuPPN7 z?o;ucRd+;-d_=2o%pUH?sBq%IM##MnA2IEgGXgFyS#~>`^?v z6QorI7xGxTNQDVY3y~^ryFy6($&YuIi1#kboY@COVq4MA*s|>9^OtBfZx9ABNf^8I zH~rG@EVRJT3vyNZsd8%Dc=PxH{F%(GaKF zha)Wtj+Cc~c-=|;)Xk zB`F)^lmx@9N>mbwipB?)-#&!$^pwod;{6Z??j!9Jn-z@yufr`t&b9g?sDCQ9B_ZN9 zwSqzU){L39GfO~zpxO^Jd_-y8Lo+-%Vo&zRjH`e4!`^p4d6HIchWhsS!EfoiULgQx zy)U1gGEH*EWko?PYN3!$nj#uB0yx_2TUf*G3tv5UxQ#XCA@T zGu9Z;@?W{%0{IbowjRxB6#zh;2~weiZfP}Qo9%<|d=@wc@8j=$+&lUBqs*wx)M*(o zTwFdES2Y0bG1_RN1<)coMK%j!ptBl>70nTjJu2RZeEKOLx@E;0Tf=9pZBWB<8TNB= zrW-Mwa*l)=809mkY+UJQT50(a=R%z&v&V616Ko6GT&(;*{0tid@Q^z4i1`18G7zdw ze9bW9S7-%u8k02!jnS~G=|*m$q--q}OG*b_G7QW+X+=Jx&B{o&{L<9p=gF5m1@p5U zT^k%*gb{v7cj|!c=?;K45bjA~1MXi-gHWVW%LCtA8bCq9U!9*hj@&eWl!XOotLj@; zZ3QV2vZ7o0g=WypOmxss^ds?PoaekFe1wFkA#e}^N3`U}s{fe(k0AIF2RiPd4NTqM zYvpb%)AX;D-1iShy>n~>Zj2#g%u)eOhsbDAu}%frh}Z($XBXgy2$vJSdvb5ud(7PU zN1O>C0YD`jlfNaq53@p^x&0V~%s<8xOnO8K?%=v552*m;ueAKv{pwPEQ;B z2C6Y=2y$(?tJ_ZL`@2Br*)tCKq!rcCOAjm=;MVV(Gf%z;+S)5r-ZCj>gb~WPZJk^$ znqYh<49S75D0WJxgfq%-aHifagEeddVa%MTM_xRhY{u?PmuLW&&!1xmbSRBbO5RF? zAR#k@j9q{c6=%yXz`_XveS#LSMWYxXY@LH3y`?juD~8aOOtseEd#h!mRcmJg`9wC~ zBW=!H>Kz0JO3@7>akCM^8XD$J}W4X5C9Lb1w5v2`3Rm_qq$rGr?mX?l6Is)c;D1P+yZHZ)3WC)-`#Z?zG>NL zN)Z6D0l?qZJL2jyZtcjH!qcnM08A%w0=zF-;UNMb@ZBE*sXpWwZdWux=P{CO1feo} zO?-&SK5*1ME3r~aL|bC-#(IZO2`{^fml=R=AP+=(IbJ;)!X%9SDh-{?;v!aC*?lD4 zG5c+uAl?U*`Wz{{;5(_Gn4>5G+be`}y|i zwlIg|`$ctY^b$XD-F2`AUSU#h%6(y;;=3#c6=QS3 zCb6OtMF7}>-|hlXh7u|#3BgNl%&A3tKsl_Th4EFC-$}jYOxWGG2ce|XRX?fbXpL>2 zSK;T@52xEiWgWv;^46GdtsCx%=#6yDd=4slXD6T>hSmk3d@^Ddq4Pg%JTe!AyiTZi zQ}S(3$K%9yTVGM@T*JE|+sat~_c?GvO`#FA!jlhZ>0SoTJhaZ(P&)+KF6Vn(cLDB> z)G60-w_*A)sA={oM-qxew-Dpx2rE35!)=?~TKkfU?@mA|I1y72+;GO+V)u6EzKHO= z);l4Q$}uCT{&3M2Im0_1lTS=5Hs8*2PmL_3GZ$Fgrm@D&ko$5%vAu zuBMrmmHR+KCgWCe7*%yP722@AGyO^!y(s81Q;+^D{$35A-xns{{FE;eJ#lwD6u}2R z@R2%!CrUe8z$f$ZiL*Hj)2#CG?BD~-pHN~9`L6lt^pzVUlC05^P{@ZH#k zk~EV7(5xv;yd06*y}Aq%hD7q)!8}Tz_Kuqt#2aa89YauNa~tB;s5vBY*QU4!h1=l? zGuey0wH=)${aud3bPGd?tc6p^gftbrDnZ}OnMFx>B>HGeMdNT5HL5Cn=9ma%kJgxGJI&w(`Ib1L<~lZfbl562wz zVINPU%7bO^AAfMzyWoiG3}J!u3Tf`4C92-`SBF^lg=vgP7I~Q)+GYm_5BWW=7Pxb^jISq^ya^J z2(M^ASsvc&9a*_>mQiuy*#w~Fu5Z&*t#D|O+5y-*@sPaR#n|U!aSd~H3Vqd#)r!iF zLfRO3uIZFCz%zzwK>e$wE0uTTLyC7)5-+6qGsnJCX*~b|9@yDMc z(A)^uMvb7AZ!`G_f#D=JuTt*Rg_59IEv`W;tNX9-vC_>0H)Kqu$puCTwYsdaXKZuy z24>SHpk!(qK%v%7j5SvM<@WYoZ|{X-3(Qnh2q=?=QE8QJnIoDgymG`7>K84HMvf61m6-bJtu4~^bv1p0CsUK z{Cag%Dp?b4U57q5$(niLO4fG2_ulX=T>bXCknt!Xyule-%!SRhdtrOuxCGd|E9{JZ zrX5@e!n=00SOf9QXTo})fHwl&dT7!s(DY?4TTm`zgVuq!K1;SbhAgdrW6IqxDqGyn zR`+~6+NSX&ugR~1uv~s*SHRM?fA98bQ}z$=JP9kJr%J0!2a0uwR0OGXfOC=^p*t>V zSX2{mdxB^He6C;tbXV!_wQipxY}c7n-40BeK6AypzKa*sNPi#xCQmN#I>g|3!oCet zY-BcO$E-;aI*jRz#x(*tldrlol3@2!EF#_G^-VIN5FnyhLupaUxF?m3Oe+vZ1Ej48 zlTa?Do6oxPRvE@KwhY9j=!S^=Sop9hqDZ5&Ecqs3h z|FeC{B>EyUb_%1EW%0EmP)!=ioQkD>vkxJfrQ{ zjda9-Q6@9HfJcp&hB27AMcaUiuZJ``J^^|;934!!anH~ zhQ(Fr2QeIwK|hbGNDf8bib=N9x~hhYLh0+#`l|(4K}9l=wumLSaecGPSNyE$H%6Y& zfUM|Z%-L#u#`$vt)c-zPIFFXE0$sE#BO8f#1&pm}Yn#O^mRpcUGvCdS=v^@{I+zV(E8^Y>ZZH(~bNnEL}~>|x|} zc`l`w_*c+fG)pDBopl#>K?DilNN9i&$q0m(W24A~*)?xE6KVHXQqN!QS!wn6f@L&-DMqu8R zXwL63al5t_+&G(KBJGEBHr}LCGXC#+WNS*$KT zT_4luwo;!nR(|^BfArpNUiFrq3CBdB{Q>*>1F6}3&;Dqf@rLl@>%wqgzytjp`3_++ zuus}5mw4zeB+T}TdEsCGgiNuwAw)gDT=!o8mdz)Drz|ph^OB>VnP*NJk}tX;FwgF= zp3x{2iop?#BtF*yI&AHO^Ve0tyfX~n#4uUt8$k+wWqh4NE65RZbEeW9G*#7>wn8qK z%;v(+td&VEawF+e_}U(X8lo~7dBWR^xzR3c#c zg3sK~?+`oD9(x96d$ADEqa+}{;7FP5<_FMe;Z~r=QfbohQOM6Ss zQkbI&Xl#onKsuo_IJmOTjaAklv#A#d5pBI>cJe91tL!<(|6A5-*dk9b@M*;E9gtI? zWeLaj&M+94eF+Pl?WY$fZH!7fk^<>^IsZTR1ablLGlme=SB3=IBP_Eb0#*HAGd%j7 z!$X`B?EHUs6V_H1noB^FY|uOqM>J{^^d-={1EyEn!Lqy}?ocgNT^G51^^^sh0sPU=4uL0L+w_ zdg?YL1;S-xoG@rZ^h06~nE2MH*W z!GV}tvNsdSQwl*|Q3J6550k7eVfYJ-okA8GbsB)Jf4w4Sj5n8Qc`x)vdKIawqvO-5&$oeMtk;v!ySLq|g>O1+$k-T?B(d!Rxlu$ID_jl~x^m z)>;1(AfKx8Q!Z!#TdpA*z#0u;IcI#I{TbulCjeN}f1n1yUJ3_XeFVVr_+Ianin`3G zj2Zw*K@-t58_CK$c`wOyzo}3qpE+NE1w>~|TpJ_!Hq0?uVq8|+%fvS_xRQ6wDDj3I zp^wkWV1%Sk%{4*bv*B5XmY~vQ4uX9e!Z8(9!E3r6Kx1D#Mqn$`F3sD0gDp~FT*0B? z5`#UBo}#`FzpCYC)*rOD+vN_+t&H0@H_|iCif_#xod1nZ2||EK{hj+={tLm)SiQb6 zzHjr=LZtO_1r`TruI=-9OtP(i-&URU@S`Icm@$>~; zzWCPP_I-WylXjVrL;+02=bdEl9D+-Y&|P-7PSV2qJYh!PkfY(YsNPAq@=m@{(1{Fi zNQ>op17oLovx=@yE4D_PuupE0Nhi}UDtLh|6v|owR5BM`#keKkh2r&tBvgL%SrCyG zv-HKUp#ng@Ko)$169Hf62Pp5DUg-u{^66HQr!+jIGviX|s$I2ozp2YbWZ%xEp7BYo zZ=FD@jYzt9-rr<;Kd2WVuH*?@hJh^;pttx(btD58RKHJC>^m}9Dg`8f24SiaN522V ze~hGDs#27H)c+wnwR-g#QgViqS1LXkPn8R9j0%ilo=nal7PSzLuSU*;pGfiv#=_32 zHXBxGA)+$%haB_e=mP0_tnz4h!B7!WoIb<|=#U}ZtXz_3C$>Z@nc7wQ*wU%=`6QBz z*IyJ7#rs8H35XaEb1`fXSz21fuiWw0SRU_STsdzj)y?lJ{L2vWm z5l4WtQ!!)L3x?F@FaV?6p{b)a9_E@+8}}J-;St@!CCjkAJQ>%PwPQ%)m50L0vMiVT z9xk|4`F(2{89sQR$!7H?(04lR$i=AUe} zLTD}5G9F1xRw{Fs3?-UtY!YcpwP94lbO8TgUnGkC;OT_LKv?b>*}$sFc<1UB(?d@Q zM#*3ouy2<=*HUSZdgJ5oaY!fqN8Dx(Q!Ky0n$Kbsg+Vk3n|9k2gc+-ah9lN`*WG0L zLncfdJmi`E|H;#Gct+ZuwTAHzRc?R0VpbKFR%{GWykG>6+YW(cBJR_-h6!Bvud278 zlb;oZut3!RFbH`2-YKVi*93%>EldV(jsDSUk{f@_tmRY6h>YaF{P+zHWMtCBMR~Yo zv_dBgNr+Z{4zFs^6sLBD^hP3sb6K2rft^yFbL23UW5?>Dc%{N8E%GdMEy@JC-T(A6 z)N2f}XiIL*b?{$)6qqiE_!TUHB@d>d({8bXu$L^Iy#T7=EwIkLp?ntDTf}EVoF^D+ zqf%p#U9y&b{_C%LS6@HtE!nI8>h%luB5>gmND|f*oIz?Gwqe(Xa6!dat8fNu=8sS= zo&+pDf{a-DMA+=^bO=vqCB#Y71>Mk6PKDpsXroOlF>eZll!UZ{F6Wf5SvH@{hG2>@ zZ*4)OvB{c$UwT=#v8sxBb-r)TdvM65pP!(zM0v6Bh{MfL*6`JUhFYPva!5PTsWB6t z^mk$>4!&y_QQpu1Z22Wb>mLeb+$I1bIYs*cTwmKn(yc)AB!X z(n#iHlOe`z+ZO{eiw;R^!r>prqWJ6kUO{F)@T5Y<@JPO742^~TJ~i5n7!(9dEb22K zT?_7jGX_UAcjJK?fK!8<`h2Ycn8vOP9{jZORP9UUN+s9$Mw#O$lrKWMJQu&ZcDc~QPWu$T$OjmJd8O|&B_I5a|FG@R{Wz@Q+_EM zMugl6$5wyID#~a8E<4sjn@UH-7C-S2O}XJ|Nd@pA8~ew4v)>H-K%5C=`4oDF??KuX zgidwWDeL6N@Kt;ij79MKXja__{;Nk z`9)NK)b2Me?em-v9vL~7G+ zrJ^WTyrfrN0yC2iLz=7fwhYT|xK>!y*Iq6`cKw8QnuZ*AnE*zTso>y4Y>{K4Y_nj4 z=CNP4i@pN{`d#>sLiZ$OTh18oK-8VFV;d4D2$1zJt(KKoh)C*I)P-I(Zqo>Zdjn2M zw0Ls=`#NI}#`)m-DJj)=DdC1m4ZYid+@MtA`JDnFq2BXjR&*^(BISLDX1i%n-6gHG z9=6dk4TV8vb0;8ocs*j(&Iv04kGKw*Vl`GPNQ}1ReRk?0!xk))kk$;VEI7S&&AI>! zbiBFj9a30h!r3}yc#QMs6&ZfhM`Ms*w4z1@1&vGQ8LYPYBRuFrIHg$I;+V-H%&=sc zC#U?B z&f<918CP6|R$F@(TG53*8@C&Ix~orGeHTe_w3iEpHnjX#teTv&XWzml+ic&pyg0=` z>`XVb0QC7%iCx4+>7(H}iA}yRqp7$cw_=!1;SjW>B^skNRhd)(oE)=6ne{JDZgSZ4 zY{VXt!0h3GVe`s#fp+6`*IgYSh!49`AcTvZn(l-X=%oFC@l=JQ=_CxGkfRc%5ve{V zf!+If?EG}$3FJL>#dMmTrPMGZAffj-bZc1~C*(>5MABL;pOx{9bJ2gn9&u+2`gf>pkNNH&K4+s3mitbS0~Z5Y{?C%mHsml z#u;F~)7h8SsaAVwA@+)@ZK3Tt>8Z97y7>YRYniaQ^k3Tp!AYoHrbW`}_lq6Lkd|FI z)5kV}kSjI<-x`u=Ahv(5X%%xIh; zfB;HBwZC4xWDh@}`v{(LM#S^4e%(6*x`UI5x80k}vwH&`?4JZ0zxJJh_9f>EV^DUI zo12L^XCm`62%}9X`LAV+PF0H=Uklc^p?8DEeC-+^x$3biPl+L2!AW*9exvY8+2F4X z(kZO}U{~V^>fW1BgNalRU4z~?4!|=)00xShO%0!7l02dha00=OnBsd#D=h6)$#oiE zX7mMT7^kif`fr%5^X1cJ?^VtwL1I6g^sYX>-&?cR-!>b1M+lVGh3~n^k;=dYs{aL> ziG20^wD+71KkUoRSt;~qY!o`8@=KwqbFI}zoL-DmMRmDy(5Vy^v)#+=waYiYEAaY0 zUU&YOt}jY@3DN{~c_@kH-k%bCfhB$oRx*X9EfAOb7LD2<2eT*{fH* z+1poi{gBAC{0f20Ly@V;`+yeMCA(hUn?xZ50O`0SysKAr!wu_PCI|@|HjKS4KR-S? zWDh}i_8qb4&5cvpJz4`I@8)j8i6B`ico0xhT>1#rKE@DxGo_W6VB%xU_^SaBgm~00 z^&@dEN#|`L2fyB2d+>lOFU$R1zdMB+4uClWyI76z{qDU2z|ZpO?)Tj9KE6NN-~WyA zwM#RN{cd;YRRwpkgR7b(ni9)nxUGF|j454gg+0h(PR(>CmUbcrm{I50QV7YR+Be5D zmiK(1R3yv9Z$EBLTrT_dtN~RyCj(`fB|^wb?*0cZJ9d51gl19PnlNfPOtd^$F;Y32 zhfseD$RYuHz3bWs@4opapF6+8GkB1WErMY(+fT@|SNpEPE{%6Q${RjO{dr%w48vK1 z79#X_b)e4Zc3pcmKApkaXL%4m)fZaZs4>jI+|t)yvT4eKU2oI?R%|-r2#vc9srpBv zE8%Kf##3fi+Ml-@;Q9nBU@-vN?IV$r4&P{Gc7sqSGmWujxUSz*o;~tSJAl&j0F5HJ zlDSL#wGWnO(oJRx)K9xqTG#}FmymX9Alc<744hDgtQX)NO6m74oY`-epB3b)ryk9< zG+W>j@Vx?{efCYzsB|sLa=-IrEfOO$FZ2-twmjQX_(qB7Wib0kMNP5r=);ZKF&4Xk zMi~urV@`+3(p+YBO^N@I=Q+@oiU;)HM#r2cd!l6@RUNDG>+?744D7D23KljHLBb1% zG+pC0%bSlFx?<}lXI1SV!UTtmPrHH;Bt3?COgf_xqXUE=A%L70VL_)V(c&bxFhVLg zc`2$jux3*pF^uWozWBTdh4#XbewZ(W62-59ce%t##o_yOF~kEwm5C?#wMrj|FuVbG zaK0<*&d=m`uiyec_$f3;wA7^^jECXOi;y2d)KDL*gM#fgcPV##wD=FG)JwMMwsLFm zo3pdf?Bz@P{jYl~`rZnH^!cg8WU^d0V+#+-Kk|_k-^E5##*|I9Plcc3r^R(g+g zb5B3F_dY)2@KI(ny0&4W>d6kv$81PjHvAZ}`_UD{#B2gWoXH*e*C?$Zu;FlL;C)ul z3P~Uf_hz#;)i_@KR4780b%XlrLc4N%{SZo4&+7o?PE5+5c*L&-F>ddL?{Vlz^{tT0 z@Vl3Vn*s(V0d*d(jD^<1mPfq|qSWgqPUx2!Z>_(L1ut=}@*{|Cm?O1g#G#U^o{jE( z#8|&$_e^y}r@u!(d>@!r|8mp&l(_;&K>Kk|*yHc`PyVjA2QnR@2Yq7>`TUTS=&Cr ze1zd~$V4G~uAxO}Qu5vS(Xnyj*HGORkaXEthLIvf>Sxi75!KHt(S9S6I^)hm>DSEGdu%&+X#9JZi9p zlO-vRs@o&_>xUe?qM*#GN{nS27F1<&jd8$F8!AS}V_oLVWOY?z$aprxdvAaBD<=Dt zorN{{z5K~P$MCnY&rj>WJblS5L)3ohpbPqH9kjG*_2C=hRE6JXw&5ex`6Fi<65{fb zjZ`n-1@^F1L$ERUoId|OCN6oj+e5;B^6-Q$<5(cf_iN?^JYdfVi}Q+6hx_owe}3_Z zw3qDb=zIXWThLc%V>LmLJcRdzX8#HeW-)h*F-9>!SH*y4Eq{25J+8s>)DgNp2JX-+ z&qQ9!$n19)!7_2FtIN<|Erj}#A!_hU;e{HB=#R4jn6R!P;9c=+Z@?(h!3@-UJArA{ zDk>5Mue1ap-e6QG3UV-Fb=jDU1so&3wOf$MGpPMj#_3xE~iw4RCMAu4RfAK1JqSnkV@peAf<4tF3 zce|1rGf$|4qfD*uEE*@uQ( zX6vm{)rBNjT7Lw2496+|8dtJZ@@31Zb1C+gJq4G~*i{&~qQ51mJi{!z zg;2;+1Gg7l0pQ>K3{uL^-~9P1EwS%##udLj-TCwWEOVtx16CgPC#dxF$uty=nI#tafkcJOsO{|H>VzSTK2xTWZu*=X zz%ofK?Q;(KSg;(}*=*J`?|sM4f~6v3p`EfJC8iiG(}-!vOzrjP1S5fy>&ngMSog&ViopN`~8 z-?j{S+2VOQ#AJ$@+(OzB098N*FUw3kyR!5CZr4I}L2Iz~MRY~d=u>g~^vPWWo{uCIA#;Gr50xVbygx$qcL}qnD_OCP+hIiw$hHy+C>tXu2e}X6 z0gZ^-f@|&-sP0!GlwYUtj>1L(AnhGecCG##A-Hx3(D*>)CdQ4T4c>fvT~?K7w?QkY z_WAAizvKCx9f4$^n{n7Q(|0hBI{ z880r`<5rkTM!~0FXfcPGRM~Bb6$)le%e1XA8VjvUm=H$P@M*=JV_i-K4#LE7U0)8NudRl)p0o6g|7_g>K;YKilhtVgAnh$|_@TYsneF@(JoBP6` zMF=yj$lUxs({VvO6LhXP>dc8cnJ%t6rvMOkY+t@FkKUU>C_<%kcHh;j7lCW1{$9LI z%kMdkY4xM_i)D>N7=cotmC`*Pt@KldQ~*f{|}E3@Bt60}0Wa+1DI85i39aChdTV}=l&+8m+4+6aV& z<)L75ahpOQ_?wMf3N-G^53hpiUGi|#MsZv2>3mmK$oH^u78=RC-i^kL~&+uDxE_^Q9x+w8HBghFGHb8qnQNpJtt z|JFMM+A<^3S#fq8Xg9zedp@Qz3l}c?JfHP`@x@c%(`@K*#+KRhr?1$y3-EfW0M zQ;bT?_}fR4AJNzQ^S}PPK<5o0(|h|&4i~yl|785Uw>de*5&9(#}s@P+>iB=sWC%f52V`Gg>^E>g9_U zfzl?fwwSgYF8Ms;%i z(n>NyxiUqBnD`n7KFFK}`GFAN>d6(J(Tk(|EJHhja5ssQy(07#u(5z(`tYD)5Li0)%Pl5FGnRbEkKD zqR)2l2KXEH%4dIiclS{ptr|cWt!e-sD&mF{2W(`a2JraNJ(z&Ls;wrLUg2s;D{+8u zVy(btg!OqyL3_SiDr6yFvR86gNP&k&xuOAB!C(?HCM<B zSW+VTnV?5$Jp5dsz4ECgh9ifuwW)3Y#|H%3yq2Zh!9}N*nWL905ryZXyh)rC&$OpkS6r& z@0~y^pcUFyeu~vz=oamknA@|TkslkSy?yOMhv~w&UAThc@qLVZK)VI1{yBOMs1UFr zy1Xb2lIK6j+lQoYgQHNG&k!V`1^7!pfACMC#Dly9w)`39+qgu^2L)PQ-nZ)SW8Uap zlX$-kprz{>AIp)VQO-~1yO2;?mH!GT%nkCQMXY|a2Ju2|Qj0H_F zhD>>Qc#(GswYb_E_+H^)|5KR$Cf~}8Bl4h;GzXTXf?Mb}KBo-v;c9=^g<1o4z%T37 z^4h$}M4~Y>2?bphn&6uC`3Tt60-KBnutoq7aH#+QwpOitdi}d20Eh^o;#5uhEo4M3 z$oqzmR7^aUCeC;*S^aAKPJ~i>Di`-Yn{N>(%!F=%8)#bTi%>1|Ot!J_$YZr-rx2~c z*9KFP;`_oc*o7hhoW+VLPgt!P*h5@886uHh(uF?YkP87L#-f^wC$pbjv+&PLVOM$* z{(p^2x;s(%th*@yL|oT0(C*`zhk9qYhFpVPpqn=-K)uK;sXD8w5n#lmoH2cI4Et0- zBr5&?Qzn;B&X{w}3c%&~viFLqzFUq%o?f9=Q&F+e2gXP!fvIT@Q(9j{TLCeqa3@^U z3bt&f;+Q7Pa-ix=W!cYU4-9@3qH3{cz5&m{tG~ue4Cei4}<|h@$=ApGtuLwG)4xuqlb^CdCQ; zCf^yk`Eog`vHNVE)u*L(F7D$`Vc41*uYHBY4+u0K{F{?7arj%|{Z5!PEY$isaY1WT z{nAf1Zr-IF2uAr@S?#(N;mdF_M&Z}58K#7nbN$^G-)*+EFIisNsXQ*c&sOzn08R50mbC(^{ijj;J?!N*Q-;spyvfwzOV%>X z7~YgK>_%R ztQao3hedzIxdIm09_Il*zQgPLuq++bmXgNYPAlJEX7$OZM#8xeZVKNP%GE!&`-HQOg4?Gk? z;@PeeaZ7+Qx6ZZ8{w(!z%Md6LV*ikFd1;)yv!c1Ix{uLo13fb4?;Ht@c5BD#3E&FL z1SD*nIcd&&BdLC2PH53FsqcJUTX{!g=oUhJJ-K*Kxs^Cb3L*aD`O`EgYDVYS6ZSb= z_Wpy1bOD&?Ls#I3e=-a7L}hI$2d@9uPJwft#Qw=c41dSLN~7P1u9f{W1;E1fCuf{v zAPvCL^xnEO8R*&o$Nj(j?bm_M6L^aN_}RbzG|+OjY_xCK1sOAARl&NVi`0ayg2d^^ z!U$clNCR5w(DEGYd{_8NTyjYgg(u|``bak&&$WG`yb3LS*4@+q^l6a^laQXxHAHsb zHNO_-7EA^TLjGz6wE`#v999`)$yTj$=9cQ(DHY90CX+b~%SxvnJ#e_qwp%RTYrJ0b5(SJ>S^LkhEAro-2r1o2)?pvCBi$*4DXyT;V* zZDVG?ljdpw8iOT_$f#iiM}?cl+bg<#3PR@a!(VCuw%iAnF-&qw8EY_{Kxb_!Wj=si z%EEsmG^>Ha-4yV%i)vb#dqPrk8jH4J>Vit|h>~zYdKbj~2E(6FJWkoPMBP{g5Z zahH3ae;3vQOQGqr6PjBsuNtnDz6t;hS_c@ygc94n`<&H&>BCdWFD}{A83J3;b0RDS zd3eS)P!xoIV%j$M+6KV2L)ZL-RC5@k^VV;QFv`Y8G)cClHdhzm-PSQwN zTAJeDl6xN%4X^TZ9jc>8qe~@E2~iVGp7ifAOM2sUeGgdoNw^YhvVlQKYnhUCL{m=KmbWZK~(&>yDt@R!p{rl z;Jf5hu0u;allj+wt27#fa$oR3?O`;dPU&s0QN44nB$c6P{ zOWlTfL-{6?UWO_jPLswYzBIDJ$BM7=N%Kcst^F$M)}yRlQz!J8M$quwg?K~XH}yt1 zwK?GkW&Cq9TT98yWX7LLT_ob-9ctM`g;TUV!{F0%W)@O3Ugs&v2C6|KZskeLj-3Ft~t(I7{(-9_uDt=rUWEzUWPK1(icVEP~h4zIBYB( zgq;Z*qL*q^cJP5TA7ZuANxIohg~hq{{|Jr`vELl5*t!j!y2+x z9_#_j;fF=F(QqO$uTa=9!6s_=>kkfF|MUOwhk@H{0MKKgyvy{O&}EmOJUeSWd-9AP z*z?+#t>bf;l4-pS)&#h(yGERc4~_$s=4uj$2Q(ls^k%P?<)PHmeC?I>DPWuzfrd)> z0=1q^1u_=)c(aoejW+Jt&RO^L4nO_*&jTIP+3TO8aisST4rC>n8b&AWF^zS^kYR`; zl3s{+*yZ-#-NOt|=vK%Byyd_60Q(TlHCl?n@?Jv_lZG%XUx`&QSJ}2{{-zC--3Fg3 zI3}bgR3In>b!)Chq%5E!5B?YC$3p-7>9f`lPdf#`kg2;7y_UnE5IX5Z;+O@$Y^20R zJo+p!zZrthUNg5u^I!_|$3!FnMD_16^L>ZxXHVlho+NY2B_+*F~3ajJGOBP z^t<2$TF#Keo?m+89$}cF*Ydpev!8yDSrTW6HZhn!#YP~s19A4}@Zf%+<9+FNn?q(p zzZQc$-19(ac2>pX!UI9LYW*n!KXS@rcDwfBiR$Kn=m>DOCt9fkJ1>>eiy|K>-v*!J$T*A8k`s%C5fPD>~Pb z!W<3w8Ugnduhwg7r79MCNi+ZipXjz_;T|R?XaI?=!Gm!>KZMB5uoPE=T+~?`&|rfQ z`bhF^c7A<`2JnS1+~cTj#_$-7cH5|Ez^iN2AJis4b8D_EdiDvfyi+uQ9&5FGy$Oav z7IV-bLJfyn&o#~oZ8T{QpPE2(ckR9!fHMPz1r$9+&@332+FM?c-)B#r2kHUlA*Y`` zeGwQ{83a$LA2=qEBI!p23kmkRW9F%s94KlnEmsbf@B>){Yi$uMXrj)S_E2g7 zTzim95g2~#Z!K_}r^4oX6~z~3Qelw8y$xvI{u1gJLH!PoPqNg zSAq-W*?}tpAa!n<#Sd?OQKe}JiM9|fDKtb|#@Hs+5V4q(D}kjEU|w?E;wMaoG#++) zB#}Rv#vkz|SdicDjbH-;T{`T1VkqxZT;r0KUuG79 z>lx$WXgUz7OvdN3gy~+ zu7eB_!LLZ>avcQlX@y>bJE$jpUGeGH*Q8{JMl{mB^q8Szu?gXh|<)AAnX z#{d9R!ycvYG6f5-fGw$&HP(*9bg$`ROv%Y4NLbY}wZ6hErEuOg<;ta8ykLv(1xIhs z=en&jUY-ugtsrv5dT)h++k-9G5y*4TZ4{J>4ENj`JZ1kM&l#G$^|%yVWt6h>R^h zsF-6)on8{C+X$Zq?Fiz_b?9nC+nm%YQ~>%-wlptar12D7wZ{)6TD>@L|^=L$Se=$V|WmQX|Knv`kk#I?agVSZ%gnAvz1A;fAyxz5jGdwo-UZq|b@4GlB_8@n>RvkMW3yf+gQ zO2-AXqF(DID9pW;H?tc!)NEH|JNftH-QQdQ8&^6ZBh8?$=X4~kQQZR+tD>2s{dhb>f&%RONptoQ`x5s zcP+KHm~#x^g$89Lekp&2r0G+J%)U_L&AEW2Y1;ZSXrzwKKwO9~;$#TGCI3ar44I0? zzdYl0#-csWX!{{Av_!LLYU6dzK6?`tevdCA3uQEaey`V)s*40Mo2u?k;%+%%N^L6T zkh*85tt7X3rZA;JmJ_ygKKhXL>Q1%T3u8rf2`JFbK9A35tsM>md7WN-0yBAZH%5M- zY13p(b6tB}7;2l=S!{z4F||UHiuC=#wDr|HFM*Ux#%Gv1D9+YuAjm1xz(l7nbNz)?bC7S z7En*UJ^cQ^`u3ZFZbG7lWZXcKTMq?8q-84;$~^>>i{_y(q|7GBj*&NdjLcs~@Bh0k{^s&#xOOAZay4OG* z9TxmpG8MuLj{G2`Mnok-y%r`k&sO(5^b>;>2S*)Ney)Uo%%3qoP&|O!#k8?uNmnq9 z`vHa%8;m7SH3tJpO1TM?NBei1z2rIw{3>g%=NDwhf-=@o^$*9buYC1o>kB~fa7IV< z52Hcrj1J?PeJ7`r&DLip57`@XlOCV67(R8~O)8DVJ=$Iu`$7-luU*0+S8uGni2SS` z!;TA#&SPk}*Do_p?nbrA(AbX6X~UtjQqq|Pqyqj+MW~lqP10hW(7*fJm}~mJG?TyM}3BYngtUY{al05CsP*X zMKw{vIVEewrKd5ax<-0?Vyu&LQwZ>sX9(#M2Lc&wk6WAVYt$L7@%Rn&E^rQV%uia~ zt=83Khq-gD?<5HEx7|mK-aiH;M7b*Utx)lwhrCnVOMGI)yww1}iA#pX%GoKKNRsAY z3qhf(2qP+$Vf{2jdVG8R#4dkIj^*!)V0mSr4HE+VBWjyxr3|YZUPy%AQ#LZtP?<$2 zjnVI#p8tw#q2)3jomrrjv5l(+0LlppI$!fHKX8cPEt(2Kn8;u+O`K*XZiOUP%2^?| zpC621pdd1?jg4j*29OC90$~R0#g96r*S8JowJ=B_E#oJ1fWhROpET>RF~dw~M*-+G zsvV4Yo6Xn&rhm~o+`2{p@D3u~XtPd3??*gSm-P0R7+o($G8-Kf-(WKg&dfsJkPT+R z;v+)Z3z%X-XD3V%D4QC9#^5f(OGZ}%7$6X|!(3vJEgFEa(=e3X`rL$Q+2kn{RnEG_ z?#4~DR|HQCg5>CWm*6FtlbL;Hx6Sy!bw-6V^yk2oP9y;;1YVD>cDWIneq7M*U+?`&h(G|y*bzK1BRV^2Ia^U?EL`Is zlLz-=$2_c82{J621;m(j3Or0&#;XKJ8I|s2lzOWXO;N2gRYZNqSeYl<6c990KnJ4H zrqEGZ0u4(3K(BLk1APz%tS=Jr)(uZg$B5v_AB-*3WmN&IL&^lB-$Y2+v`)t^pa8J4 z5}0(N%$H~#zcQ9>V=D;bWr)K&sm+`!g3ut`w#zNLToI>0v3<=u!D3m*3hTo#vk#ll z;GrIaip(o_zCgY zTT0J}L{Op7HXpz7Thr&7tg0iM&pP(_{1loD3W82jDovYjc~3s%Qoc7eJDAWW-_X~3 z0IdwG7N+ID>@Y-hq8Y+VKrv?iZhT{zG7S#zIlQPSOnj5~=fB`CUnV^%kM^5zQV|Wu zkI>@@Ee&trPKTAi)eO*RMiM?I83>-jS)Ld_A`KItwqnmT+$*IC$Cz3!FD{t^0Xo-h zNuo>u<(V;E^-Ff(?V>6=PS;{S8VQxmq)9KmL1S#ARXDy?nD=4u4%>dwV)X3#^256{nI1;5g_g5ki#MLGy6 z1))Uf@S!kV$y6quFs*gHb<7FWcw{>MLgNaQVTh(@w@^Vd$7yP$r=6<-nL-_-zQ(9% znQRdLqtkOO6H!JH6F~y>TF^W$@#*<}A0gmNLWHelB@GAN-YYb@7mbWu1Jz0t)LQhb zz>aelvj9Tts?p6o6uRv4q{gO$(6;Rh+!`?cXB+y_bPM-hJCu2A$n4H^M(4&RG93iV z25#5)4%jtlzDq9-qtj!xp&?;mYVuK=lwT-f#EE!=7OkfB4YL;oJHl9>fp`h>fx^J{ zaVc~^>B4se1{>XJQy1g`Dx#f=`$-tc9{U=-ef3?<|9h2`$?N4 z917oKO6TxB0?r9z+yW0M8}!Oogd`?&1c4+3#>ce&97qC;J$71ez5R9K!GsXp1qAn# z4}KD;H=l`=X)hp%Is#9BM|$kq4WpN_=H8}@btEo|1<@R!|1%ijOLCy(ef$=LO6LLF zbKkvt6`0j;?Ebsl#Z1M99mwsd-bZIxdf5id2C*mm11uy}! zrnu3by~J`)Po^>O#pNPnJ%<>O7tGH-@n3l>&>q8H^q8ftLWxSN`Uwm!R6U%5hv7>~ z&bUiSJv`gRYK)e`He*@JOv4QvuK_Jikj&o##dsR3Tr_{1rpTLHFIG1sL`Yk~98>qs z1KMU|JkpMz{5;Sdb?mJ@Ze5t%9n-M~gPv)ssZ;h-IR3{Uw>F-3^X}6{Cxf49j4m$ zvY1MH*1ZR>$F8Nyzp*%Ny}<9|{ERX}KjS%L_VFENp=eL=aA$YF^{3E7XRuG3u?;`rj}RQ2OXStiA^mmhMxceRQ#0p(3JKl1hn@G zkSulsb{YG-eEqGrzM4+AukQ=(*5PQpnJZ;MQTC%GeLFK+Dr+-5bVqce`7AkP6?0h^ zD}4I|LFDF^HyQv-NqdV<$K%-$`MxqpoEA=rt7L)s?HYM6A$a=A?mm4j87KfKZt2~k zHK+yTvp{>nG3mTKpSLdQshys)H@ANlYIxGXvB3$~J*EH(7HqLCd(J z(L|urLFr9k4hc*laBy%Zy~p+S2J`254pMjPYfw13qi`8_F$91Cu`)sE`UZe}1VoQ9 zUiLJE@wYJ!RsrDmMYr;*gvw~S6Mq(z|3SL#;fUkq;2A~Ta!sa z7B~&kO2$pzznFfhD0HW`V$UxP=9+d#AY^z(8Zy7D{+v5kxE>xH28sh2NWoxdWqH-S zHW`-fVDVE^aDmX>L-z_`rUp8L<6GA+Hqiv#(u*M!%sX4U!Kds0`KHkT1~~M9AbMeLb&-?Pvj?=hQ8MHX; z6@oPC!bYZOEQg21*-XRswKEcS?R*0HChZ6qz6sy*Wx+0`AR0rKX}`TeO74K|f@(Px05dk%aGirp9|4fE8NcQs^xlRk3^qr*vCFWh_D${a>nA=l z*uK_So2bzA)wpDwq?NCYX?e}ZUsLwgJ&#t;ye3$Vz@|)Qi!fT6H&GB*f2V| zj(bz0$!s9J+!N5ASOIiRCw6&ZTxd^w0EDctOs7C~Bg`W_sW&u8CHT)z0hW7cK|2-0 zS=%qK!g|IeUhq(Ww?&{q^UMI~N-yHoJQc)hv=J;#^fk~V6v|Su<;3)OpM~#xINHP- zxZI=`oyCZr%oc~%!E^SH{&DM-@*8ALE;ICooU>bQWRtXGen zh&>8B!~w3F)>*Zejl3SJ99}&GPwPR2ErEP3hvUf*0u7R*tX22zK||39E*ruu{CO?a zg}ErR!vv1ba))2X(Uwi&T%(&$B~0I$v#M@LTcLxiv1vd){7BFCOK1{FKE$>`Ox1+F z78-mUs`lD=q$6R;EZj>Iv852-p52~*o8`W?Ndz^F-$ekpkt+oOIz3A-EwhleF5@mf zb4|(?Q*XO$J9qaE+lHg%S>9`Q_&sN%*eP@O){8|Zq{l8k*clZ3Te$8X+}R^O+tSev z9$s_&61od_*ePhRhIXM9J2(o?kEBBrO&u1{CiT+DsGVVRuXH+=kC7B^Ncgpzdba}Tm15TKN*5kG=SXQ{$tMaZ%SZ=$vZ;~ zU>=%I+<1*adTNH6A8ysTsbEQ@Fnm7dfr4v>00m~uPY-|hE@S@m^u-AF=u20Y2()qUJngyVlTLR_ipRI`^H;=vewaym#w2`pEA`7e!-(O?a4yE>%t4#1>CE0 zC4A`+2G|+gE5RA7eTJf6ebna+%(M=h;j~*ndD;nd?+J~1SG1qdR<)94b=rJ6@u=YyVtW(Oioxtt>K6?b-XM>N2&=%u6 zcY4`=+Ul}uFjH+JkuAVoaAU8q=x(zK2fF|tKFm0L%-F8Cd&H1k6_KsDFhJ_8(e1e> zf#b)b0dyOqo+ry}VR(_TBoG@!RdO@8|gc;5~nay`6qE1GVF zUwGdzP!s7^bZ?BGhg>iW@`U8-jYyG^4XC5Ox4BhEA~pWyh*IQOw#KG;yUV@ z&%7os!>(ko`pgvTH#`J~O#xE|g_UK=Gl@zeAcWe)qRg-H&SBXWUY6S!Sl#qPjlh%~ z2MaTh)sBHc@F(?dFjU;8z4qJ?7BzmK-IY8HUwX13nb{6sNuwMM+H+z1yaD4{scw=xUD~HZ5ZML#hm)QAI3|qL2 zxY>!w)iBrRW7Rcyvp2yuerp0kkvlpYLZb^F_b#q+j$C5KxRYY7w5>XKPNp2C9%cUD(A7 zP-h`Un;OI=zbyoaM0TxT0iIBLL*+*;Tv#-5DhrwBIe~f{Uh|C(OxIj{&}e>O!DK>@ zB7|W5l(brI(<_Pv)pr`sCUcDGNwgXZi5l%kPspgnN=VZP@k$6KnC9(J;;o*&a%(f* z3b)?#GVg07Ugmuh3A|HUo|WgS&^=wOse{3G)15Mq%Pep~6;^PqLQOgk>P>~F>-9~3 zkn!p^Ws`VTb`9g2cl{n1d^Go7XZYm3*Qm!54tcD`{PgtVyN>lc+!t4C1OV~1eK@Sl zo)Y$qq-koFF!V}$I9$sQ?MzR|tk);5{u-{flV0pq`}DT@Q%t2HdSYidoU5N;xRXZp zVR7xpl=~Uhd+DU+o2g=j7iG~%>@TNbV*_QrJqOS3(ev-31?)K`O$j}}0yzc`ac6;T zKT!-U|HO)Mg{58&_lnkS9sO6KZBOOn*hfDoKQqo{UEOS>voQmU;d@TsDguD*vY1wv zy;@gJ5dhH`=pxyfUwS7a%!3VKq|s7}`X>brvqM~Z3zkh5EiOe$!$KO=#?@8_oWh%P z{#b?aC8XT}z5r9ll6YH*c#m#!EED7lXLlL+)8bvHpg_dH&k_zKpH`I-9`ssXqkqG`DWn|2Eq;asyJ zhp_C>!&-gXP*q$;k|s{@)Rc8Dp$X|=Z|@_<@l5481bBJ`4Y0hMsZD9X>9~{Q&9vzi zwjQVZKKO9I_41hG$*9K*zB_vMoH*y8|6! zQ}870{T+_9KVa$-7>m9goT>|W6K(e2(wLieSbyT3hIx*CR9g%X{;hXg6C3^iB8uQSQ|bwTUx zzf!__SoNknR5C#rfs{A@eI}8JD}FM2f%GN|wf1ju ziqq>~`bwaF6Fo33@>@Rny$mrXWL8UT3gw z2?6q<|0ll&=kSEH18!l?3>K45c=`4^&k!d=y6-da`q`wjeKKipUi|QygDwbA<9m?= z2M@kA>us>D=DbUH%8DU3+QSHlK%sBuQwUF{iPR?JT&y>Ip*jla7zpY@UPM_TZY2^l zd^CU_8i3YVwFDe{QbDZy7y>)YpKo-rO~80_)Gt-?bBri#6ihW!3hBD!#J9cvHC|iv zym2}K`5}_4nMnJ4~A%;ECl>(c#G$1{FFJ<17y#Q%H@MG^Sw2G?uZsaLcDEi!KRiT=cn&%mZ zp9l@MdGd<3ARdZ(F3iA+E_t6rW#jWgefAI_kM8wbUwj=8M0`@LH4GRi{qJn40q}sl zt()plcuAi691Vb&DQ7wtQ{j_hgCK44LjWL+Snl8M43R-YUSIV+g1Jvm``)*U24ET{ zwCCi&#unr-AJNORX#m!<))M)IRe)>?1CogaOd(6=Y43(WM3jVDzWMW0e zkahBv*6eJf&ZGIX(L}7b&Q3D6!S+a-c+Zt}Mb@FFGB`vK>Mj7H8U8nuHS0z;~dhG!+QE`Pw-vvh~ z4XJ1km}wENT{WmzVQLGe>;VeB$qW=lw^l9nTpMlSs;)%mJw5h}`P?PYR`T&o@n+lz zCKx+Xqx2ZrZCFE&gioX~8pqI6W4P8uRw7g_6N(q-oOiHDtEM>wP*~V-!We4!ZU#f8 zJO%%xP38%f;+4Ro_+C~)Hoai}rN3TiXCetzZ_IkL^ za%A>CLRtZUrsZg-Kn$bI(%d^n^`vYXMqO5V2_p&>hSp&U9i+(QX}$a4S_X=pfqJ{= zotlyN;zX~`N;4rFz6;DB>sv0$Gi^gY5|(Mk3vGL)C$3|Ktpp@Nd_yZZwg}l0A@g$zo2jW9pZ^!?)k=_-x^C% zf?}GXtqovDqov>BgMk`{+0zc-SEhgTPzcj={n|Y|K^gjb4y5dG5EkD}1qk{?ShYm#m#XBi;}G9z)6o%Px_I5AOF{|2+uVrg8%i z);;XB{`}wVF%2R@=B?*Pv)1O{Tm)XCB3<(QGmz$7sP+S=<@DfFF!2Wl$90o&qA(l) zE_J|3>rrObLUQDnjo%0Wh-~RfM!7{yLOAoYqd+~|q6*?W?+LhSD7YyckZ37>vr3gco(n8A0BfiyI zeg2Z;vn6l@pW9KN;J+aBBhNRy%Nh1Ud-!d%t2gd2+yc4>n~0a@=Oy7ong6VT>9*cosxh~J!zn2N5w!(=+xVtUF;)3ul19-`|!0ug)H-YLwegl-PK=z&~5$sx3CidHGU5e&iD6);FCIBT})d)_%9dO zt?(s50Gwf}JJ$^vt*6gHrY`n*^DAEqbhg8~57|W4Ju!+Vjlfb};eSCfY0FF04;(t} zcX2gq{dhW_{fz4~aB{qCPcME7uh$k>34jMj?<}qkkER>58B$`|W*&aQX{iT@%PG>B z>PsAm1{x=gDZ==t%4BNp$FH-FhhJ{tUaNFeC^&|Tdnz>Qwn;D10I<{If~%y0DPd?@ zD;mHy8o)yc)%4sGkk_q4ETq?GJg_6Sq9WeXIL!t@EOfz*w!1%thq&PqD^I3=V2a5y3(5-soD4Mvr< zsK62wOv?TP!qS5}t)w!$4c~c=qr+^!f*={5uHQ9kneqfCp#*3W5PbL648AEBMg;M|hy=&U|kd@r95Y zxHv}Nb_9XTq%{&2v^82FH}*6dM?Gyv^>h=DJQw2#)rRa5WoTjk13-N0<5gmAbw-M+xNS?!H&3oQKA6sa;JNEtvf!%bT!TZMq#-V-5JDr@GLr@x87AWvkZnbDgKgX6 zI3WS6e!*#VVo)7VyNbwQ#0 zAi)V(G z(-V2@`3{0$7bmQ3dX_B=fg4bwCkeT18Zx2HAY58|cgH;h?13o-Ne_mOn+s~Q3r^7D z9|?{&#@WW+Uw2#8blY6Vsm#rrgk^8O36Ks_)8>yAA^5D=FVp}^oz%?Y!EO|B1hY+} znW=U9E8~9W;T;0Fl(tO2N|Am8u9LElJF z{^j=Y9Q5v9br&oO^sqjL;e0$?blT{?N*YGb-QMN`^#I`@Mhik{7>PV;DN{1iw8+<} z=G2W8;1bj>P7@1`R+?c|n1H<@Q-w!JKx?(l7->VqLC`{FKD0`2v}Mg~ZvU!_xDFuAk0jJKv1F}+`LBLHulK0!I%qiNO2gvJ(dNfMn{QP) zbSkkjO;tg7*3hw({I?@R3}J7`pQ4?3+w1n3Ty|HDIi zqFoolxUhw+Fiv&wrBJ(2-P&OoaQ^_NCV55{tpO87&(F$`E7}zr0!fG9rG6PU3vv|l z5URbt+Re&iTnOaOVP2wm#JUvOMAa-2ufh|HA{?cQ) zJRRC4vG2&3 zHf#Ixxn&j4>NpNz)mC4BZ6k0Grhji@BQ&-_~voq7KiAGw%OuCatC$G zebBLm>+2hwq`O5!cO@JTnh-iaEE7II=HwMCZR1h6H@^60j2_wq+>`Ff$81anyuc=K zbpf*f?uuo;>;;J7{6148-}=+7K*v$9v2n-0|JF_nf0wM?e~L|@^M4Nmhuk||^&CQV zn=l7F65sgp#NtwN2@U=Q5@mCnG7#60@iSd{#=xr47M+M& zn2}im6Lq+Q@af~XP)hHHo%G-=WZDP+yG$v)akta@vp?8uz43tYBo08EEPi?TCC)|! zO1!%LE}7nm3c?(buBVXL@n)=ywhYdv|1&PW?|z=OtE)n5i!F+7S#_c`2Sp5FcK z6@Us-56OsdrW!6U&er46SZXCHB%%EEsy_FcB#@JJQ?ZG4Z5Dd)O zf19ME0DxUtkHR<&rt&y1jVce(0Mu)oCk0^S>b9=VHOLh8>lno9I%)4{SvqriZ_8wI zHtMQzxwl0X0D=60P$Z5O!N~Lok$A81Z3G)Bk+P|U!0Kii_EHkukY1=qk7R=>1hfwb zC0@$_8Q+w}L`qU#eST1~6I6rsGxrGbK6S|aE>b{$c7Z3MvvUMX1*K)SBCaNmTY4J=#t59x6jB45%T&b;hkuo^J_ z#WWV?&p1<|Rm+I#pB<190P&ur9c*jcLtJR37mBM?owm7!f+j7?pU{9BNn@bF@AVA5 zq6Zh+q0ChM>41bXevqrA%*Q2{?AnvwpL;Fr_Wr&%Kea#TH8A&PL^`W7lukk%o0>_> z{6b}j+LrbeG<}TP#m4fwWBx}s^Zd4*-`Z=tf9VkhzbDTa%X7^s1=z#3TX?e29tda* z(mO0z+PkCa4Pi>zhA)Td`868a*{EG<{WqwA$^0%@BgPprAZQN8bG;UzW@IFMp)eY+Mi8vX_;&-IJslFxP*+ITVppb zSdTWANs6jg&@Ikn73X9t{*+)bR8dIUot}|-OvW`GDr#^ZddzfRc2A)J5N=^~$3`-H z8?`Dsp8#zar%;?K+{S?DH|RTzmmtn&G@=%uU?{|322CRi4JKNN!D|~`^-!31)`c?H zYh?ut6&f@SKesX$nqp2w(ocY|*iAh%4r&HnjAu2Cq)m)f2!XEdUb!IE@V`Vx`Pipm zI`D)Tm|g=&dM@y%@F5?E8WMm`BGxskGAYV@{$v_05W1K8bKVA#DZP zNTy&*?L^JVA(?LNu5iWPouR5Uxuq~b6WBs4(8wB_h4cL2<2q`;XHk^l)fN5Jg!WuI zjjY`Wo^UC%`$pKVWd&(jRxCc9idF5Gl=+|5^G|rtApk}{It^knDsC??VGmpikuM!i z9K61me*E#rR5a6ne!dFp8h{V$%jKTasQ6Ceo__=pxGjp#L6o`uC9>U?-ePfr8lys| zRFY018U?#vcOLmwQbmGMiA_A`MD%>hoNlJbm=n+@0Otn$|gM12Eg5iqb|*1>4)Z#M>Tf%i)fW zDiE!fYjTOdy{^wX$!MsX&|?b~Bvzf01zN`v8U(HIw7SS^S}72$!>0%rdiywf(KfNr z`_{HVjaDeRb(hd*X$f%giGv-I#FJpd={9*_ojgQ&OVhRqIXv5oVGp4J#cytmf z-91)+v>X{9+@;qIF^Q2<9yM2HO%{5>QdYL*=;G+JJmQ06Dsl$xKSzt3%nsQ{y!D_W zwnA#LZUe||{zO!BOxfhl;nj=9u={;R`#-@m>&~D%_%a5hN08ot2Bj}#s|*~Er?h?~ zJcxBQmdK0~1=ml>ZeFJBsOW@!_AB1V^ z@BfkW>z*?$1)(0?We6~M*6IWKoDAvl-48}*Ed<8p%SG$Q|1f2&3gc@7IBl~wpc^30jDy&tn2+G@=o7?!3 zd2LgBf8&T(pCMSl4}Ze^y?!C$DR!m0qDPxTbfp=REbo8? z{}}fWy3u-|zX9>@;wdS#=Rd?s_Rd?2Ks{LRK$lx+q)Y4*IGl3S{G|1_e|H&}F+a@z z)AN37=st|}{M(HAzwotp0=4v`;WINf&-xS@KZl!QjTNfV865g$=Pl}od-P&+XJ>}D z=>qlt3N7t9u6+M5t^z-!5>B3mgH=7 zU(f@N@b0_r@AO$2*cpK|N<_P&mZld)l?hSP7#5t;27^k$F7C6P#wNhLRBQrn&RA>$ zG{VXz0O@1Fe}*U80D@EixXscP4iakFu9dd2_OP@%FT9EWy_)|X@f^n4#Avat3mQOq zmj`GS8m_cpr%`#RR1ZP$K^R{l(EMaHt*=qRh^5+VzZLbD-bY(Rdt~pfJhpriU>Oo{ zOW?hd3RpvFwtBbzrarrgYa!*66qYm`*Qq`Wd+c?faWN_{F)~+9Pp31|0O4S7IATMI zb9!l&F6Zqp-1PJmT#~Ndm_5oigCVmv%o-rTV)Rs)VXmKo>x**)>Iud_Y{;h7dQ?Ws_*{l775h8{Sm9q9*0B@(NL#@^ zAY59QUxo)!Y!l}Y(|LZ|i73!$Xw$YrL&-dUzPDu^N;Nu(=-{6!e<0t69>B5mraQG$ zeLC}?HG|1^#n)=|bmn0W*3h!wi=cLMHkYYdzxEZF9J9 zPz~-VqC={Nh?UOqwHCSjHZUluDwgpLUpwAOgMmGQC%5R3;-L#RLgq)wO^bgYVKTxg z1)M~_n1|Vj7XRmGB57?e48Ch#CYpc9KhJ&bbrVWr+^jB|>l#D&>W@-dF&QZVA(qP5 zZ<@zzAmv@VFKMnlSfxcht)0Rqjc*SxL6l!g34Rrd;xlm|)Qs?Xsm0o*$k`7;=B883 zT6gg2&gB^|nXW?^pjK*)RDlW*W{_2M#J4>Y@&vpqlwbw~kw1l9Yz;(ki+6vPFUz>? z^aAV>!{fosaTN-N5+Z(nVfdhfgX{rY#!Cwy0mQ`?Jni~w)iv(ipY zKhgNpBwtcQxN@Ofnt>!eDD7}O@yD4fJ^Y+fy#l9>`P(>6#ZSU9zxFTY}DO`bJ`D=;~oq-pY?id$ibE=t!JpdOft3hxW=u&{W{}8)*ku~6)Vd* zEwDL)DGHyS62ewH_*FK6Ha3AJTR>?OU^0`Xz`fR|ZnF#lYUgs3k5k5{Le~VG(n}3- zTDj%`M^`tyd58pC)c=Yz<-FrON&^DR;*_Qlc@_eTyC;a|&K@f&C1tnV)tIKbzZ&~P zBq1EDY0HNq04wNq6KJfPAmyYaYme67`^AXfIXhR0c8(0YYXDY2QtY& zIYGyga0G8{*cn5VG_VcrzObzA_Nsgh0VthAz_taMLU0`?+>K8mq}R+NH{bYt6=W8j zjD)LDuStVYh77sl#%KHjxg;&?8VL1WVWfNV*=G!g%5Xq~+&%WG6KY$SBN#A`Hb2To z;ksRSN-oCGYZiq5wCBRrntq{RhZu`tkD~L9R(zp27WWRTY8$+2V=zxOSTGw3VE&u*Aa)=V zQ>_zv_=`*S`Ew^~QNuIWSO^uXQ(Sv5IHN-MA$xwu{BOMd^;=_pwS+V1y)J1!M~I5Y z+VN!gNorB~G4}1^o@4uSkGEd?WVYyiA9wmA>Z7m!Q#|y3L}E{;v+L0VnEyYwK0){R zKSbc?hF>KB_~7yUz3;q>4Y<|%<~I-7w4{H|f=f(F2=-3rs=w@Z27|sT2m+rxAlRs+ zV8C_Ywpp0TcI4LajK^>*N7Ou#TZ2$Uwbh~Y+&>HiyphAGdP zV@&mA0{MX6(#<<{iikfdSZ75&4M20)MTra>1xRuT35bx3^!UUH-ND4Z^Cw9Z1aeb@ zjqcB2dIgkQKC+DFS3}11GJ6f7n&yT^&h6@%dCR~h_rfe@(&QphtW;K_`P{wd1Dkkx z&$UTdjtoy~{tzCRl{DbotZa0Rh1-n#0UJJ+cTKG%q6vNus->o7QVYhU+FDHCY~5k0 z7EdFmnwn7G3JrhmrI7rBEc3_C;P`-hmtN1&65Qp;?_7EvjmNe!gbC8H$uA70S6&z^ z6_f~w*j%T+_V~>`^&O*!5barDF+5zz^bWnUIbP_58070X$ zv8}`bX=(LW2uB0J!GvoT_%PD%=3&$KU>yj9;ty zYY2c6)fGhDM`%QwZAOX|kiEsAqYZHTjPXa0^19dW1{FNO-G}G+3fiM8Gl6LgaOH*= z@)OpA7^NKdSXckJDMcR*U~89Md!~8>vPF^v88xmDN|D7h0P)8-!@K3z5*Vb}Ft&aE zHB~I0LEP9frUika1|~FwnjYN;6s$+%WJ6NQ6id4eNf~aq#KQW$5df%VtjbCG^M-N> z^OEmml6))SV)UeP1~>7GDS7U4L6Sc5YBkQ zl2MtFJh7Q#t!0Vt72m;wp2esyg{$9653ROFTI<oF5ni&FS zO!`ipO2DvkYst}Eojoo7rPkpL3!hsvppF$^;#>7Rjby#}Re|6$+lHycK;O}`>U5KM zCdg&d74qEK8$CwX+b11GA{v!A2&mX2_@o-pjGrIRQWl}X&Z7~y>2zf4bSS1|P$2Tm zbV);l=qC6dFg<`4+&nMwGP6X_-{lxGhbhjQxQC${(v@?B;6+bAy(DAUMG&sW{FaY@ zVS2oc0%3Zl|0d*nN^h@YCdQW~+kJJ9z`zmfb+7?+&Nk*3)6EZGG>u_desw7I`qgpj z+x9!}zT1C$bhr%Xq%YOTRp|Ef8+lQd;LKpvr>$|8;tSrV6$T1Of<(oxiG$0+Be~Wg|N`dd__F2OoYMsDHF_Mu(ut z8`82-bf8J&*g(y_Fu^R+TX5H0$7)^VxlIr$9|7SfNx~kje4cMopXOdr)86O=JRW+j8M8Aa^w?@9Mlvq;5}_$5;}ony4b}3+CBvt}AEiEK zZEz^9@5e5710nbNtRK@U{eTHL*7di}>3E-jwf|GN>~*jZjoIvD@BH!OzvOYjKoa{E ze-P!rc38gu`0;e}KmNzF(aA}Bcet^+yMNH@&lb<@Dv?sxx<~dq8^G%~^XHmtwg`wW7r!N+En*Zd)= zm4-_>vDPtna=?T!Kd&*~wb-B{P_^1P?uRC%+{ufjeL`{Jf-AizvoR+O;zFJY3wE%= z@fP7qFEdwz;ipE#I#33MI1=Z3al~v1T0q9gL5gIVLR;`uwZ}ZJRVG!8Sj5MM;>l0; z_%q5lrff6j!m)f&2ONNK4C)9K0;&^ilp3|dbfp28EDCKLdwA!>gbD$*fejAI5Mr-R zy*Zl?Z>~}R+mF180I*P`5h4QCU^)rDoF4aKi_Wh{= z2o*NAv)`t@X@4~g1&!Ox!C=~Sod7#VyM9LT&hT)3)}L=3aopyMUEBxmAHKQ#_T&Ez zh2YI=Mm|Tu~vkM*4Nm zRraqKgB18HDH}jA7jbe>I1od(*SwS9_#|IohAv-2aYhy zxK;rG16wbdPo{U*d7<5&b;i?;0+XT7xy%^EcRu62+^+DWPC7to>~vvS+7E&e6(O8d zKpHYVZoHSEY7d?VJYzk@t&jxD6Qe_b`K%-W#u(#Uu)O2_obADCQkJ1?ai#_!?J>q* z`(;Q19tw@vVAjR-fHFA==-2PeLg>C>d^0n)>1XI*{lOKqDi38t9-iyqdWE6#9D57y zT514zd$Y=*b$m5`{N2BDMD`m8TI#n8Kihq}e9(Hp>h}eH$5fED##9wU@ZwWMfl_D- z={mrR3O6U5`>+hUf{;QpHEY9({U$W`_Uz7y>il5OEmoulVMx|*{EVM=R}CxWoHh(r z_9}4i)UjygVhGCZ$%-%mgo-M|lPEzVTMshFt+2Ya5Y4w~Da&M0G(?qPy&U2Q?KvFp z&9zYg^_7a0x3_lVWtmlCm4RfA2m&x@i!>U5Ox=b7g(WlfoN}#w!u7vhW&soi?(g4W zUb)RGlO;nVpQ(6uXbPc3CYj+u5GX23C>Ny;4!;_P;w81EE{tQ%oSvwS%G+bhFJXo+ zY8v$Za4F4Cy3zpxSgiOzjIV=66#yCIHyVKP?DZMK1iI@ID^*#`9ww*`M;_c+cJW0Z zP!8p!uw;RtBR<$J`T0=1Ci4blc8Y6*m9&hhY$;<=`F&Ywvh>ClU!2LPLWA@Z2PmLr za`!8p*_@5aUVadF#_{HvOcbKB0(hj2$N2VVwnTcc%}F=jh6+C7*rue9$;E4y_i{uP z^mt0=Hpb|W`IcGq`SJ;ovAa3uUmVXni;29*v)?KN6~EP&lo%~w<9c__HWPgg=$^3Y zRQtj9#^77j>jC7xPtSi3T>U8(x(9wS49?ktZPJI)BLqZ(ySP?lSaIDhg8)9XaPDm< z6#0(lH&8u=3IrG5%sJsmD03C{Ux{u5_>nz_4K4)uOr{bVc$hn1HX-qIT|WS~d0pc) zFt2SW%TkzIN2ehSzVhQ{>DSLb!#5u2My3l4ezVEa zR*gX14A^utIHDdMrcZl^9CQkFc4Ubg?&63;D}XWrV?*i(lK>6&K(XpK_4TQ>snlaU zwXGW8w?!Tj%kprnR_ES>Ks6ecnY1RS*rI?A?ey~)uOdw8wLT#VC!y1u zo=$aqR3Jk;H*@I?J-QAEEo|d*{N|(A0;393XKhCAGZCE2`1Ya^0MsJ?WvtZJKSlVI ztNe{y_}cwVUHOdqJ0u7+4)>Kdy|q_v)bY@x8mY&I3xhenz1i}uq-Q5kXtSiHi*M2- zJ(*ukq6h(K5q~i^OV~nF*=BOG3As_%Mf^yWcV=$^BVJZlwFojSo0>Tm+%2-O3%+!3qcV4e<%XK4S@;ujhUn41&ibqGR;y>X<9YExK>NgF#eJ=E3o#X z1!OC}#Wll)=N#67_pN*SO^>FX-jmk&>}bk9IlGVUEx-Ghe+A;!E3vB0uXQ0w{d2++ zi(|$f%n&T^&JVA)<{etpQ^6r_PvdN(sS59kkr}Zs$5a9(u z7RtwN$>f3#i8tPayjP{P-*r>bsEY7I7{G6B9OIB4i6cBJv5*D-c^l}T5Wm_%GAn<| zU5V=x5(s$pPx*#-^K_SxwpJ>Hy-sCAM z*4G6(ENOyotbJl2gjMzJ1$_dhDHrV^^~31d9T(WuX-meJ8^YuW31PkWz4zAJDL@2A z_4b1(GTv99yBUgj)3}ynz%+*CnfPqll>Ad#V5t-^g{}7#l{9Ox%(hF)o?7@>#Q;}) zCXR)9!-X~h+g1XTN!|BQ=p&bzD{Sj-R1OyuAnt=vhPiffriW0f`AL(_4`kw-BopY@ zkCBf>c0k7YF~sOw!$v&J@6S4H%(h_M-yX6C_v(|$)6x5X^*DTIN&h+FpDO@Xd9VBg z2E|W+7kKC|+iYL=F-*E+ zgQr7B8zEkor6z4o%2@#2Pe3i8&kjk^2Ey>fRn0G5WMTHH_74Suj8A3tp@0fSGa?Ru z1>Bs;Q0CuZMr2a~5XN^l0Nh2Bl8tR`@JBg>wV2Y-DtMiUH_sAx6`{OdyNy|<-Zvyk zk|yFf-mlfp`Ad>6{&70mLu*y*9sif|loVw2ob0p0w>T_m@ecCs;=|Qtb#3Gr$XaUX zdq&GMmh&Kw<#YPYXPj4Xgmf5^KlA)u=J{`S^{r+7ZK0+4U4>hI0!(ylY|gv;^TEb9 zXk&Z?+UynGz2EJ({{(8iPo``#!lI(t{0mgn#YJv3N&~Ah*`OfR9}O<74O^_fG)Iu@ zQC5tJL8|wvRBjX^tT>NyVGWy_W(eSYLlZXX?I33oR+y<56_(dE0)o3l=e4$pLDuWT zHq^m0>5duW3ghenv0QM}Sk_Ef00?@y!3HTnaDq@EZ+e)()B%RIN0<4$R}eHtH^0%p zytB{tQDvH_6k3gh!uyFK+EXr?KdIhLT^cm_G9jTauWQmvQy{myo@$4`6Oru-cL3;8*n$-0$5b*8fC!A_vYwgGj$clTkSnukp0p`XG+ z5|l63r539?*Xmh(D^gyke$vT$NbjBpiJ7=1dh^$e41jfdl+i7ROL$9p3XV)ZpK#%I z@#N!sZqhk0t0UwUh=9p^J&fiZkmeCytry_uJ)*uK4R+z;n1FWs#}LH%W@o^{PUiV% zzu7#$MgLXdccuZ5$t^#DlhLU6+U)+-&TPyUbv-Oq?Oo2MyBhR%zJkPab{pdA(Rp-+TAY2W=MmM5vsUChZ$K6%N)@f#mHNv5R$rvgucloSdrlpkR zRk)aDhAt^YiMA?R^A))?R}Eocp@S`IC4l zaPz0BMec~X25kerVmK0l=8r4o7Fj&iv;lQmu#hF{yv)q6!$za=QwWojfU3R;BoQiY z#nWS>d+^M|T`X#3A5^hVuirzUImPRV%x=ixX-DFrj3gQ#e9|dpziFXT{u`af_fkTM zS1=%5m3Za3dFOo-Da9;kX#Unzi3g>+ygI%tM6}0On8)((ha{%$A{8=k@6}Erc+`6! zwhe{0aSZJBP6q|^cZSfyB|ZG{Xfgl!XgYby=z<-6=a=jd{IoY3Uv_ct%{>3Nf3tc1 zlF={!`@0kX=Cbk=Xtmy*AO86eUSwx^4&$Ri=NohPqFS<1LB}2+Dw4)K7d8R}(qp2K zOU@(#D>52L;5Gl6HVZ@WNaI=wG=c=)w3@&%oJ?Js?FJg(XOc~Q7wJ#@n_hr8e7lOk zrMK(hhMaiH%UG3@A1bkV%h*YSTxfJvS--*LL8;m71O~PA_8K&Nnc~YE?96V&`9i`B~Ni%QH(<1L^rc72=tB z(X(fFAA5LJ@fcjKhfOIX(=t?^6iXc}uqv-n5=cD=uDLMX%QT}A)Y_a^*O5j`yZ#%Q zauYXcV{yiha-?Gb8XDkL?q#-emD>i-<=Ve8WqDuzrUSTneTx>>9_Jh5W*ESQG~@Mp zUQNZNS~KF-efnq}ja)vWDm=xn%K31{`79=+;ui=)#`>KhQO{KKX(QmAgRt=TKYDuo zz3(|N{PleM*US9tT>q{Gz*?StPu-A`KszEp?reR2FtyOO|5U==b ztW0+>qYD)U#W&J`m<(< zSEj`hG0*60Zvti1!7BK`XrZREU>#W2)YIEzd?7D!fKw3lFYd{Btwp$r6IwXSdCN5q zQg5OE#ikpT3bkR#^aF-OLVHPZ=OP(n7(bh2IG+^58jpBp0~A=Qrfe$pF7Hiy{k=t7 zz2|Fdo@7jliz?8)T@S`79fjrc4P~ZX75a5g%#@OiIe9OmTPaJ!79m2Kj&r$Wb_j$y zPmMpVA%oTrC?WgGEidW*UXt9&blIc#UvjKwdvvjQXXBAWB>GNdZM%LH$y^=|i@ ze=!;i*-v21SZ#aw+B2 zyO>C5Pvny4oo!cyIqoZlO6RkAW$gSy++3SSIy(MD2pI*zpynVnzRwkSc`p_E%YuEc zjc*(;a>MJw{Hr=ySl_P-Z69UyCO(%DIzU4R9>y+&?>+Vyh8#lvl+N7AofJNQURWbc7MABv;mw)Esz_w43~zde{2<&VM)g zlTlMwvozGYl{;S-T;!hX)UA1DTyv`57}NXa3*NdjPYii7KEEa7`i_n}ZZd&W&ypQ3 zT0ar;-8EXz`Nnej!A7@tjyxYvCiBU7F*|;KGMem6JM+7Dd-Lyn$7Q|0dPy(o|JGrx zw!d{6|HOyy-gGMOw7P%s_F?b1J?k#m8kOPu-lW(51}gp@i&b{|oBcx^A^wOn?GM4~ z7Rw3Q0dVAWSb=s{S+5 zxa2t}=qyggv*`~xTjC_|aOK@zwtvhyxEE}*JH5Mv;XmZK;P*48DtY`1GQS!83l0IA z@~>Bbihbw(%y+S!>N~w}Y`)#uy7TZXZh^Q-I~xj1U{#`@TeA8|DauYK7)T%^HU?@Y zj1&YkeOj6xg<)rDVxURE5#^mF;MI))D)&BKg&PK_kLf3K4h`};O3gEGDIi> zKw`7^>hM#~P@U&8+JS6l+Uf0@6w1A6lpth+bd6_uA|^tFC5|bt0++hSEhj`Aoca?@lFLNv@SR;0gX=+wJ)2gwG&ZCSDN@lCC z{92{LZ(~>^lF*~)-BHR-G93GdIW2FI0;x+8=%suhhLp5%l=7rxkw^8tugW{F5-RP~ z`&HUJ2xdB-K+$}o;|jz`5+M?wQg;VQ#-+q4?d-=-Zf;P8y3e6M^zxu+NFwb0)AFFs zGxiI_sb|4DxaGxXCl|wixct$u_5S7R$e)Z~ojs5C-H2}x2s4OvNRSjU1?Xzxc z0F}K8lv!@_fTfygy`*0=1J*dvICz=+e49UoWQ{Mum;a@R>)gnbm8YLk`6okFf{!qX zp(|HpQUt&{M^}b1D?`H@HwCQuH3clfA~%VjeQmfh2d8}9Raofm$4;GIaxYZyka#Iu zg;urEIBNch)TEaTBEW8nV;bur2FA4q8Zv93Zp_p7I1eM<9-3Nb=%H+yrlSswkGg|n z>r{w3N=~eg^E^!^I}sEvro2LOeHyrIk4XB0Dc+aRFL253-R;ZG2|5zIQ1kqK!~Yrr zppkIzEk8ck8-DY}!%s$fH?U~Pd7Nb5IX{UX0w+FB6xSYoW2Fk?Ltojga-?fTCWR1tTqH_w~(NS7V9>6 z!G6;Q4Z*BPMiu;XLtzuYt~6x|5>%5Cy=lAkjDd@=p@uYT}3>8cT|hZs3m56E*Z zt($~MFlp9rD{S)poD5e*XjGtje^dIBX&8^ok|K4@MNOaQ^~2^-c5E_!6R*OOT8&&` zO{akXM*B6hq8%X&Do*^$nC0uzZV_5Zyr$7WpK+O3w;v^T{*X`|vekz-{O@?4%{F_T zr&QXp{1{<5-01W^?zQoDFh<#T2dg)a%wtSxfUT5C3ZjfLg0%>wDjuzxVC~ zPm_qruXXW__P^^qIlUYmV*WhgX!Cym<#@5H-`l)B?`^baoWr_LxdRrc@YmnC8xJ~>Lq5N$g z#U;fjt0+z00ZsV}C*`|h#4AbM`pg^ZsW#Vef1zmbS!JQS|A! z71k5u#chFQ-o|et0oDbI>6G^OiV$2Dn0qg4`Xs~uIcF$v+Jfg}W-I(NHcWlW819T- zf5dom(&=}O*>8o7*B4U+)#!5BeLh~yM;zsbxwJohd+X}rs<%De+dEvmwt2FA{OoYn z+WQf1K4iv;+^z3^&jzcx)?)nL;49euz2*DsWJKA%*=v3A{vMmtvCGA>cjutDwY%MW zfVUq9hp`vYk~38oS!u{}W891v3*6#b@6c-G^Qqs-+Nh;PtC*dKIO;%SL7LS zYlgIh(G(ehrcHm0fGAoH_Y^&zbhXOHtC_AYZ?UumHqnGq9*a?*+4?n+66dytMe;SO z<`JgpFiU;JQ;&bbYTu^wY5hGjJf{d6RyAe6lo!0?Gz*-eC-c$i_2l{436{(*dg}(e zL41N0v-Q5dUpFb2tpA(%TT%PpL}C855dVsSf5pJ>7X$x4`Gz{p$cNG200000NkvXX zu0mjfX=5-n0009}K~hIT0{{a;!-f9_#6klA1B?EL{{#Mu13`=b0YSuz{{Y1O{{X~` z{{h57i~j>b0gL{J{|5ex0RR9&!iE0>!a@K5e*pjBwx*_)p`@Cly3y7D0RO3RIVKqt zEi4ooB{y)V|EXtX9snCVEiF151|Vi-rC2i{3qdS+NKSJqLkl4@TuC7SJvAzBO;Bwr zGdlnzPd^e2Ia_}ZI5rQ3TR968L^=;IB^@nFot;N79wjahJUc5N6aXudii(gc03RSK zKYutX94G=2S3*Tt5&|t8D?Bq411<|ecv3%MHV-rd7B@EwHil$}S(95vO*}j#4m~{< zRMCxUCT}`D9!-QJ9z;PdRD()AXhs|d0z!8wEk;gDcQzX!7fMMNCKxSiNmBnySvV&k z5=luDASOCnP5%G@KRGlrFDxxDGc-9u004CW|Kzu+shqI1qNcsn*s1{kuyr~sB13m} zK_e(RbgcieY)cmlAyGd-P9X^yOlzrUH5U#@JiCaBxjRV@88vHKBnn1bV%(#q++$fo z3MOArAR0xm-c5&yP2aIa8X{IuMmRHDiIe{Qj)z?|H%3-iemqeO^mc3P3McmRxA3V>3ewQ&LDHD`HQQT9?0)u{Jy*Cs0itJD+NK zD|)V`SWSy3B34l`K6OM;epz%O1V(!$>kXSA* zJbbqQymcWB7Aag#Pgy7q5F>Q7d^imkP)Wm;mcmF;84fsraw-!~X>;POuj6%QOcgA5 zXDTF5y5eD&m|^0(PbMvHYFj}-X_}t?{+gL;K|xz^bDK?e19^e}e|7|XN|k(aoIrRc zQQfq(+fOTjKbU)DY7|XEVxD7euWdz57HV!@Gao7~n_!;CnYlnmD>Z3nDIi%thcbu4 zvSe44F)DCrH7sX7UyN#vEelG2I5%;2R~{rPFDD!uDmE@HBUXL@uRu`0|7=(`H8o&e zTw^yjH&}500044eSyxNuG}PLN+u;Db1noT0)ZX@U;>!S#gFD&<-qZHT;gHH zv*x+txo)sHY2t;YyvbMsBPK1T*>X0F#G*A!-lkQa;HZnxO;2#eE#!}`= z&y)WNm_3~M)lVlie?b&daLnJM`F_}+;Pjn*JsuYOJWK^JA`h;rwr(R&A(Y@37XvsIm3bJ zQ4H1cIl)zVM!xmSI+QTNJr`Ac6|RE`i63iG`L}NMx)Va`+=_a4b#=A4ySrPw<`EWW zeT=CnSGYaIhJ$W_?vQ&=z5UH*z50Sk-Y>yPBiu)xC-UVz@_xD6tp07YTD>P7PdtzC z93o?Je8T?F9$^cr(ZU1o<2$;=x8Q-LS(sJ`VJg<*lLy>B;tzy-Qe5DEG+&bg)iZq! z(~smIbKu7u_%R25%z+7zVVyhgCeKi{~_FWdaKPQ z?|BJd(rn_^CuX3HeD!X+C%@!&0rJH+0!BZfH+fpTfh;d$7{yfnDgvErk|n$Q3(U6e z^;tN`@xAV7%3bezS1V{6;KM3>(q?|~q+oCQN=BzCvh&s+0R7FORNQ!f>^s`T4>?mZ z1$5W@<>~!?!zJI6woW&F<-ez|+@`&~zYVKq+59m`^+CUT>(y8dF z_6tiJ*oDv8yIVW(C|?WhrzP=rVP9VOCyMI$C18Cl-P}Ylpvahaafq}dhE#*s9Dkrouc1#}VEy-rCWu8rQ~qP=qeNZ%g< zSEqF$^~U>|;0o7$C;k0@t4I1voiZ}5fV2))ZuU{k@{Kzz?Uj1smhQ5Ld|cSH7W>t5 zM?XY6qra=S?mp@;X|SFc{#_qzW8Txftvoi_6R#h79~G`n1j#T(qe zb(Phlmh@Nimk@SE=Yyl-GEb5?KJ7an(imG&1Q4+{^{w4hGQ>IQ$-(Ct7D_y z{%W<_-EEhvS8P&pLtvA$bKemDmm9p@91eR102x4l+pV6S4%^-C;D$cr9vK8|Xb49J z2>T8Cd_&aH{flh)V_dM>thWR^4ggxmLm&!c;se=YS{ABRg0-`GHvRl*gPj4HAoCrj-nTDa+Z>+@cs%;WEn$7B}aY9l_PM8#=bWbRp7!MS1%{3v8+Z!3rH9+{-nLq}!yYj1mX1$%{~BZUA6H!#Uup43$A0P1FjWJOPwA1`l2S zNSxpv&YZqpKNR2~XKes2ZWB%UdWFQKpx{ZS?B&PyQ=1&;_+?N8K7%IM4&;%Km3%oU zc}UHzEQR;D3e(@vanODU;;=p(?8{Wv28|RWw_LJ4b9wb}O#cXO$6mmd`o_Y-I}@G7 z5&sU;*+9rh8ynh_bO!-X%Lj;z6oh%eJv6_^1AXsqyWMTrG`+dKy>$Q(8g`E;?%(kI zKMWc&=t!{qU>J5Re#Z0vInY3KBHsOlxqMCml#Bm`XD7AR4EJ_?#ke6S-g$eKHzxl3U)K#<~A;0p0yRo z-aUoVG9)z3QyNW|GJ5)qW32!buG7lTG{8_+^H(uwzv72nJE3*Qd4^B!34pV~S|b|g zN%o%6!fdTQG3AaD&_9*5;;us)`KgWIo_|#q3Yp7CSGiAd6`v}*4Dy&$R@rEGKM^0i z%56@A3_X58$=9B@`fc$O#OQDK8w@|?UsuI{c1xSmDg%a87QpX0tq7;-3$Dd017HW4 zdK^7ZUc@)?1FqPOOZlsG$_LItDUb53+Xu?W(-=LiV=!>XPYYp;0wSs1Ok7rnh5e&p zF*&K3JF<3ab}IMNdbQiLf_V)srvwP-K=`yeP7I*YiGW&tPe00_;OI($O8EfoiT>=v zVY7VCK<>$?vWCD31P2QE+A}EFEI%+Cx~DI8fPk0`0?Y|yJ@70ZZ*G3hDS>y;q^C5Y zYkz7utStNj>mMC(mUBd4( zcoguSI_I+2YD)#ZJM4CM)HJ8zDshkDMZv?f0e^#xTVbAr>$n+t)bArJWXCPdQJUd7 z0AC*W2mCV#c-ph{zk0R3zP(#*t_bT$xU8HZhj8TCT;1$$o*tiA4cLq8lLAFqnWKP4 z1$v$lFkUu|5efVmZOq`gz|Lfwk?(>5S;@UXd(l^ut`!j3h3bgQ!X|9BVVgL4)t*jl zv^ZrTh@k8W2h$v4>2Hc~!ceHBdXC&IpvAk11`lFLLnBuiIe?hR69CF|x7CC0d6F>) zHDu0!Y~UsSkY++(<{cskMFhu{92}Uw5Sl6k){i+$Bgix5 ze)tqJnzZ=PTluK~=Q!Zs zzROiiCL~K%DeWJk++9j{Jb~@8yyX-29aZ2n1OhKT@i{4B-Qn?VfpApH zlz%OsuN~em7Jtc6#D4+)dj|pXoEXAB&+!xb58d$xJpiCUt;M}2_p-9alI|}#zkiK# zzxkB9zzjRf@G4>l1JE}&DF4r){S@5}U7YXonX-Y{?~m6!pHihiL6KimOV(84H8YMV zXu@7oU$1ui!*%e7EM*xshHjS{tWsy*?vg%ntbq!H29-R6Ue5cok6^pK+N?JRWFME( zOpJ7f(5yD>HoNQ@U?mjXNkVZ@c~Rd4c|u48@?*`uT)WGI{%4^VgrxVnEMX4iBTz(M zklVZ{o^-t^pyGGgf5)0D9i9XQQTS3YAV#JH+0~K+BQp68P)pCOMtCC}d~A3e@ELBq@p*%__j*MCAN&hpbjXufAT9TEAH2Z2_e#5-kcw1oBA zezoEbp4sz23fsxgB>V*1WkhlbKcSnZq_Np2#5lUAit}@N4_Cep3o5trPYM$a1_7=d z7LDK8$lH3X2}vK6i20K!y8KVq)G7)nsuUT6QpYPZ_azEGYwlE+yq7aJ77OeDD|Qh; z0}hTrlqDY{3>ESt5*~!b6B)WpmOC?GI6iDPtFJbz?VI&#{h%yl5~lkJHVzo>85n%A zU+;fS9^W$>-E9^dmA=Y9bc0(g{*?IsY0pehCr12Bv=hc3s^brO0PsSgq^d6#KcRj; zpzNdky^zPe;K_15_&uuw%g>lt|BMwSVFw0o&|}8U5A*|>NHs@>F9O|TLnZd*fB5{7hZkY&s>!MV zQ8+Uo#O1x-Gok{jW=G;l6>rSlk~aAlXw2QufSPDRyLBS(JpL^rcHDOTI_o#UQ zo&h&WJH>U^dDJ?7vXkga`GgyR7LO5i4x6@%Y>Msqe=!KlrYGtWL(!@f<`8Di4oNFG zzX{XD1^0)n7Fn^@L#<%^ZSoOocd~cV3p|E02@~JKpKv9K zsAXudVU#S0l*)V`C}XaSiY^muPJ;6hHZ8aTG-`&l|2gn&~NJVRe`wvDu5mNiyJD~9plMQ zsF=L3XPKXhMun{k#ruA6SKu5pH~_Hrulgbrd{*|R?2(L_T7mI{W)DCYKwN<{m7VLT zSQhaZCfgMbW^xozO{*cbh=gYBCMLMir1x%!kSAFDY$idV29J#)7!ouDIeQ(TDeMW? zFbFWohOhVv!QZ(9o4h2Bx+Wl8_E8Lz$RXbH zNlS_Qes!h|5>nod{US5b82Ku+DGo4I*y6vbiO`QTe^jW%DFzqhNc$N5f|m(ZaVy`m zj2V)#c)Ay9mRDK@4Zs0_<*SnH_|B_cxYGf^Os|kiC(WT&cJOPNS%y(NVo%FP7ySca z2$ipH&0#2}(I(_9XNt4Ih3@ZMzlGwOvSE&A7dM675rdtWweVYNXKKRaM?zpphTn`~ z>f8%-iJxVrVCE3+!6|cSFy5>If^amP6*>ap$2HXHh zhp9qmzQy?`RsnWwva-{r^zZS=v}?m_0rp4NYXVmQ9tp!e0qz1~t$*)LttxzGQ;q|A z3^HL8VT>-MP}V>uw*TCdj~54`4Htl4F+i3DElS5@Y&>dI64quvx_r&kK-NP z(R#h(nqTVKCkXNt0Dg}?uuYFqef2`_heKaS*a!tQsw!;gp zntIh#ehYA^p~2}YBI9E}6%4-xlohz-pZiT5&XL_s*lE<=eP)-~8U#$F7H*G#xz*tw zCwXO4cCM41lG_q31ID=3M5Nq>45iT=KFOoM5)ugk3r{BoWuTpl8r%~|!Y0Z8-P zktH48=C4P-;U_jC;3}2m!qxBOOTb8g?zj%6Tp9l`ent1T@LNK9pCCS`G$XvJkwAhaW>5?s5J0{{STbW@qR@E-P*L>#gR_564S2MA&lsNp0+TIpD12UKWJC62 zRuLAQq&loPjg>2i3C`XB83Y)#0R8_vo)3tB%kwv&{u?Q*6#5vk@?_0UjTB z>!;llFQ(MP+1Xz+dTKFCQ=Ef2EWMAu??gsUD!p~t#_tS*jV*HrV(hG%F$JguCgenu zp^|exgNfH~^iy$|I-v`GY^Ob(3uNL=gi643a*L}Y{W(pt^*ksq)$BXVNdhC^Ji25$ zr~W(KC2AXW6+$Waq67+!_Q#4t9Z)QampFZ)W?gIb`s$eN70)9vQBDOFN8^a#cgsHFo>*t8xb>aVGX6i zm?<+P&)|C^Ot^ue<18ubr8EESZq53gD*(QhR#tu@HT)^pR<;w(U|J?5#Bk2IA%Bwp zdC?Qb$y?966kZ#|&k|<=LP`BZoPZLD)4FqNdVEQb$?*p>{+{|M*Nht=>*nl4N^@YP z&gzs$d?OiFnabx1zUR?IN_hFb%7+YSe! zmuq$k6psvU9YDP^3Sflb{wXG7aIhL=R3K!|fa3~?Q(E4$vSi&L_X<36P~nNw(XJ36 zVRgUX-}x->?tb215tvAG!;YtK4D7Elq>aWI-Q^ByoAP{*pYeDG0aji&*f2oAZ9D4?EzPam;G#f6BXk)D z6Xz*vpc>kV^IJQVZ@fNcs^Oh+OkP@=Bu}{F?M@Tl;ZrGvJySs^yop{tdS~sTLISZzo zCE<+Jf}`Xim;YJ#2``S(Eo_}PTsrT?&OHFm`!WDPQkcs}@rs*b*djiMW#R@G^w}kp zys>jvrE_R9q*d%iRC=oY&1q_^vE)CG-7Fu-2n12s`qgXU zLq6k);1-MI=M6nmdoRDDvd zD@Q&pJaRt*G&WK1xNvCAJ^~RoXw(9!lXVB~8VL>nO#0Jqx7<=yJT&MDgB6oA_7QB^ zK)6}`<~PUP)s+_x+2q`ua6G(z{kjhdRPyJ80AoB>++_7Liu{(6^e7*j`}WTAo#Ee7 zlRg7}4egeC7o~5w(73K@fA#dZyP`I+$?xFcAWKTLCo3k;VfDlXSnSfbM$L~=L~w6> zF2M;0r}Yhu8KBW?hlBXKpH@}N;up^ibwL=Zo`@}=!ENW`-(&_b!s0e|CxnSz;1XrV zB{Rd{aS0EHdFr{M`kI^w|2x+#xbsH{Kglb9(v#E-B;5tL(1zTcc)Mq4U7jJON3d+A z58>;!Ofvvz)q@a&5u3VGsMFv01vPs=rB`C`576MwkkBefl3s$E zv$M?h1wzEx#bVMD&CA(GgKB73_2*njDgUG!k0Z|{M?8{3Ysk386P_x;4S@3|KsAFw zH)f&miR(t%9G7aBou(~q^ncS}-?=)v6>n}t{*LahH5kscpIO>6`jk8$kGg>IxUq&(_p@)>9O zO8I0FE?$wOcz(1kJI-1!H}{mV0|0tdkcl7;XYa?&c5{8jMT2eta6tg7Ck2>su}1(; z_;JHJ|T+yOA;+Mw(0MA|-H++ti z&4R25csr*1PN*8#z8!S=p9_O_-kRxvU|OrT_Q2$SHB4b~qp>0AmdO?|m=jl{jkr-( z$B(!{lyM!M7vL`8jMU_RfAbop@X1M% zBoAd-dk739|E9GB)A)y(W8qq8EpDy2lD|U)pf+(SGs9D=I8C$S_Kl;@Ij!^Ad0U;k zp9mOa=&{qf-Fdoeg?DQH2Xj@kO-a0cOeSfKm`l99iS@1vD!F^5mI0^(9W)C?OGQ;W+rFO(z}|Pva9o z3CCsS%u-8uXegE_e=pg(;+pL%78!Hlmhmz$#F?YYbpXhPHMPoD1S4~562DWFu8K!X zmvMS#DxVU4WuKW~lKEO}N8RUILJGl6f?h22$i)7$ z&DG`|1B6G$2q$}l!!^jE3q=kO@Ap>>9vlR$xs;k4M;ndm5ak0es|oONE4G*Pq%l_KKs?G=b)rGL zvvoj?oW?b_jNVLwqtRez30wTY*S%|}c8-W=@Jk$Y97&6UU*b{N$7r_g3lST?u$U`z+%TBAuk2RC9aikju&a{ zd4wyPJ+5U(J$2NO!A7+nh)sd_=*Q+q+v$RblSiBd6?g2epl2LjVkSR{cgLRERvqIw znvyL>d`oNNkv4M|r)6BRE!yl~d?XaW@2US$Ron-_%-uW$-mA=Kc237aXXNVE`? zTRe`Yy~*OAnf#M3Z|OFSu;)ddv1kFdg| z39IloY(Bibxn8`wz7Cv00QeGB@@fBz(-pwPZulvg10wORpN=&pn3k60Ol42uTV5qu z4KrI6kJ&9Wdrr0w{ZGqJz7IH8GYQ4g{G1T`mVW@_o{Z00lht)h1- zKZzD*x_@L{;IO^Ay5gP`E&%c(Fn;|J_k%G% z)B%81$ibdWEk9YEK zu|409l4pj=4VJvaUo*>G?;hFcC(g4d*i?*c@OyZCSl!=0uH5h^u6HJ}QAm9NP|N(M zjj?Jpu>vTVR7}Q>p*pbYcqGiNrXYW9l0}PMj$r!FbJ=GU0~%xSEIuV6zh}ZoQ5QDb zLmZ6V+;m|%3rbHX5_G^LTRPj;;R;7AKjbsZ{s&&?Aw-P03; zfXDFnGU@plnYo5{{uoa(J#k8CiA{^6e-0d+;bbs~ zs$ll-43nF<0;j$}Q_-VvnEh}0JPm%SXTsv7rJf<)jlbTq=QC~su9&u8BBk6DGdKkY zXE}zfO z^m+2-P54l<0z*+WcjRPJuvU?;xn_00zP{oJz$S`42cq#5d+YJQ_4=@3rMqd5@rK!*8~i-Se?x(Kb)~yTHw?|WqIdC{ z8hpnVQTG5iFd#qd80v0)6gwM5e2-6Kc3?myN@GU3@0i`AgjnW(%3wgnGd6Tqgd9Y; zCX?B^dVV2Koq%*0YF3fh>;gJWt zBw{@a8|i^VeTMCbG~7$F8$J;e;)v_0<(B{WCei1fVk;Z zfH02(fTyQ60Kjb-Bswi$z0@(!kdIyA8>Qm5eU~|>Nq0KXq=u>TOqJCJ02v?@PbD=m zh#%##7kTjCX)U}VZw9c4{Ko&}ItAu98JChfa#ReBm)UwrdiiOuT}Q7IEXQ-nos3Ki z*bExwrwj~_Sh+gjBP>rZA21F~GCbmCS|6k&EPk|W0Ki%D29GpQF}59xwi`j~fZ-XI zTf=SBi6^+!kN9C_h^<7sE9()16yQEE@QYkg^!VciGLJ{ysRw>>5}FeQ<+viH@@IA# zI5_Y04XQ~Weni0u=`D*N1 zB&iH`2PcF;5-?LDzZlx@b6S-fZJ!1Ewi1At@@b#IO8{?K^FDT(udi6wF59NB@Y6yJ z#?n-s=g}{7ppZJ`_fsvGJ$nEaexA^e7-hEaHN_rf^j*H!5~~xfR?hHmn8dY>;e3sa z4-mCTYyF@Ve^18`bO7+L)P|q(+)@ZW7Dj!BmqMcOSlsagJzUYtfjkvGuL-!fnui|A z3w!Dw>y_UEIKHOPZ{RgA*auKqqfHy8@!E);U3R;cpk3N?i8)tkwnm;Ah0VZ|LK46wt7U9k1tN?#pM#i`RKSLmbPPAOZ-A2ad!viCIZbTSu&lsI+cJwBWa3=o#oBySl2 zI2Me2v5i)CbXSm)iYF?6Nv<<^O5e zO-OjhK}pBYa`abWjkFPdPOY$dR@e?Y+~d^!m-O!Hc1wX)8WTW6RgQJMioKqU65#Er z>~hULZ_euO$v+5l-48|jqy(_}kC|+7y}TPu8Rlso1^^y6@9xNND*%2;Gj)x&E1de` z3IH>G2Lbx={XZLpY6SvZ$>tYY2B5wIppOu)Fs4Yf$f{(Ah(9L>)6+AM3p5?ik-MMjzf0`c_L ztmE&U@gZDc%83K6m+3U@qa` zFjv2!LU7D)$*e!C0r<%#zYQDuJUYV1cAnOc4^ON6r^h8Tbq19v1gV83&M4WCcQzU6^J*tUYaV4JNk6VAm?(%=_0qA*PnlvUx9I^=`g=t!w|8AM@RU0}+ zyTxq+hq}{fox9>#{2e#ihIk%kr}uc8U6**2D&FTbgn`=x)Cj7HZQ&(hlr-eb?uQD} zWn~2bx~%gGK;=fl=0|C6w{6wqBp&iy!gmFcRXOVg?N~U{2&~UIZNCn_6=FNLZb)NM zkeR-#6I?f!z5ylF>W{MXhiyG{_D|n5)k$e52AQdIXXx;dfXW|YW@64w^Fyy?)GwOE z=LOp2;RSl-AMrB_MxF+1b@>xn;4H2u&J%}Odxl7)MjSbI)58&1nhvUUeORHM+g}mu($A$>w+HmWDr5{7GZVdt*>!%a#*jG{n*j* z=n68NypX8R8E2({uoxGvpRTX3eO+LrgU9a1h#1-L^$CIR{Vr@wv?<))5jC}`Y(8*wWP)hYtLc4i4@mN z;?Vem8fcxd$R~u!xBmURR0@;-c)jGmIG*{Q;sek%SkIl_nTJHanD5D*E~Rp{B4~LL zyRi6Uc(d)m&AnlkDY-b%!kVAX-!TcLwaGpJprRmS9stnUQzXvx4S+aOhQe8ivkp1? z=a1!S>R;6_HzP(~TNyA2`-Lcf`-=1pq%`$!hz;(_+4^mcZq14xd5xocE*pIHECV_? z-2gF3b-6mKQDU9rU@sr$J@GTnU=n^2n&j%ALhi9B))v;#I zI0LsDrJWPF{WTpp*M(Asj*Y8u^CxfLACXUlTxHc~VS)o)!>(q@3?>Z#`)qU8TO#7+Wiqv$yZ{F~RTM z0Dw%j$ZgYRrn~%ogwxL1_r*DV75(EYmUw^4>5iY_$9Mb`h$FYd6%Fs2o%x@jAbzsj z9bZ!^SPeL`G4Kd2?|xVT*j?R!xZixZf8ZTI@BFDqj@nD1`~GgXxW9kMPV>wn8;!8i zpj9v)L-Req@aal`6|@viH4tKVVyZSrRysk6g`3#A(;l$H6Ok;c|5SS6OI^e>ZWvv*a~?8*@4b8mn*&mU(T*`oPlvhkG7Q0tkzf z))l=2v>p2cd}^>pIw)g==1GUXVSdhb;6Bp}t%a5M>lq=?olF@;2a~AyBV650 zrVJViL6fW+0B}MCC6NI@3zwJ96a%w;%7x`bFAZsX0H}q~`YQlu_ufI^%CK!edjoJM z2!1kANS|Vzw4NBYiPRA5N=V@Xcf`ao0jHEg_h0*v=Z4T4+Uim8B|dy!MBDb}C<@Om z;gWCIdVemz`6s{X6pucPNQsHKmI1vzJqtoa26(M*;7lAmgoPlhj{UOo&0mjTrrZpZ zC-41R7#rRWi>oKE7NY#|w?Pyq3E0GmLZ@uK`H#h8X8VlYSr+&V@Sbn3T{GL~(xBrb zv}_h6EIu~0THS89NA8n(5A6qeOz?X*0HBoZ4ZHH^_}(L*>s|Iiz?yv+9PwLn`OXv9 z_&)s^ivG_~+T6*%tS|5F*~x#{ZFw(zd;jq8(}xGn`LoH7MxI^%6gs>1+1R(+Z9aT> zxP5>Bu;DDfI0n0=+^tY<{NoHL?~r*F5XI7HR(knp+tKZ ztt+g-SAoi*W3h9Iz{oAhO$b(1`q@1|)ynV-(BXkRfiKWZN*UA9;n}WE!8lf9pD7LM zex7OgqEBR;9WF|X5SE<=>UoI2vn~`n59PY}^6lHjS8v`0?sy8LBORHEx8w2kK$h{FTb{1$r8$rAKC18)jgaHF z!iVN2vKD@5(lKM6%y7}d5FTZ9*Gu-x3`LoxN5aIe`o!d?Atzdeb>=MOBu-#_$~h@p z%gGJ0T<4o|N&B&`0^Y&bL$;xD1FKFx3D%lKfF(^3#0f zNPof#0U=|QD*GtQDFcM@OPhrWlSls|D|e7D}*-d^9_ z-rR7Z(3&HF>KOk{0SR9KX50(6RU-6Amlh;y%KoK`N046 zczpDGFmI8E%3;${4QU-nJfL^pusYx=0$&qo9PWOv%=d5r@C$n3zaU<(QTo@PvJ3xD zs2se9@wgw??;f~#hvR(v#EhYn*>{uXO$tUxzo zbuL_dE5pa|($OVQZ>wVGHBo@g`hJcctZ(AP1%AUfXo zaS8E75f|dtd9^8$x=5!*Nn8{?t1h1Z|Kh7Ri!a{14crG~cKAJS546VvgMhx#OIjZQ zL@96BBf4b}&=s^wpNdvIz$j#rD4FD)NXZ$Mro9nAg0Ng_$oB@F4Z6@(! zjmTI~yWz&XBqlLdw+=T{;hRI+=x^i^eu*~q7bf|)2*G&y7(&^?vq>9k`7Yc|@(w@N zX=ZEm*fsmMCP_2GrKrgj;JoGwvP&pCqK$b012K_GoH%}^&mn#l*OKo|kqqJ-U=waV zG{xFgxZ?gG2LR~jYfgJ^bB_Qt#`=6^eZAgqx0|QCyH|WOe))3_1U_+~U{74BmCGCx zg!fCT=4;wGR}CM(q@uAxuy|k~!3u$|436)?E#JI(^T2+!{r~)*|IcfZktOo4!@g8YavF#7){gUsPMjT_^c92q1mu-=YA(sH1`@sjEPu}s&$@<_ z5O9n>q>b)!%orhJT0!{>I7Yc>Gk+LeA(%|j#84DzE$qz<+_~JF;UM51#r}a+00wY1 z001W~0a|7%m?vic+yfvSD_>h3S7vtK>H}gLj4VT7t-L~yfGLoZRP^p6 zsa6y+l%l=kb3xqxdx9fAoCvfGJwABc;D5DYZI~Ip%HMK4aJqovJ?w8-0^qp7jT^_f z34oOXKYn<;N5nm^|2QOic+VG)-}=1|28s8C$%lpVJpn#CXT0%*Pndy=gU9; z^FMD1_;L7ex+}Hec11AX@_@oAa|7X4TZ)a zfUQ9+@lz%$`z?C_wkT0A_3`>%Z~4o{5zdG&pLUNtp67qc8GmWkE-RCbI zYFPssUscc(B95xa{?fNKQ$QD?Jq{vlCHd2CVVB}>9cIIKX;T;xI|Xt|HgKPb+(Vz) zo?{vfLTLKE#H3j8F2{BGCu}%O53#@OKf%m?D^$~7>~<@z{<;bv3>aFL{vi0i-+_Qi zzfNq_s{uT~hYx5+Xa@%c!r~lNq&KE#HXvu`Z1l?udlSQ_U#p`xFkv2*j)B`bMXPJm z4JZei9|Nm*{POU?Y&Y+xfc+FI-2m=-2%y0#1>PMudD(k}yeySQf^sl+X7XT+LN^H} zp@>i9a9uXf@aKrl9G~_u@0rI! z7siiqC2ZN&>)HTVn}jJ><3YVNyG*g~riDrocBO>J!RR{03`9UBjOG&WInTr&W@<<3 z_k_IwoJyEn01nI&i-siib9~7MTX*u!wuJFF3b)adR@#h-*c+^1iPy1jmmn6P)Tu1>}mi)zg;U1kC*HYq>(muyS0C>jk;`o!7!% z`)&3h>!sDu62p7~{pl1GmaPZQip};MJ={siHMS_WJ>R z9|r*D44L(c$Fuzo0P0uJK*g;>y2NA3(mx=)I{DeJ zkZH+(tVKk!6`_IRvLjb+r}B(8Q;rJ z6K{wr@>u-`w6ZNz9=_zqn|yePrD23tUd=lPfRs=bsR^mZt=M{W4`p5%4o=T1c6iKuxZ_jil!bf4sSisB0<2P`EkVmbga|x6@mVE`Nb6)F^_?DG9%oPJ=>%Szhqvf;j{kndMSi1@g)hymprgCS3@r;5tW{*@*-h~ z43PTmz{wWNG>jsn^;!wcSN@-+Ch~^3SWcQ*SgI#!%H z7J;lKA1gb&+Lc{0U259Tz))dQafzq1Q+KjPS&@hyA8jjd?jeAlm59{9k~-HW6-2pa zTnnt>(~vscNIh<2>So+2Q|rfv6tvph1C*iuC!WaSha3hMAkf4x0cReIJ1xyzjRHWv zu&qyNmaS#%lg)iB@%oN`>e$2B!ZqD4@0fou-YPl#AKN5wM9SUS)4yd-qr77sBAAP34cDlt+`B=?0(7 zyb)SnJuUZKC2#d%I7>o^vLd)-=y?79{g<~aCOomB+?9bbw#EcsRu8qre~kGL83445 zuxS$hFYSSW$+DQMYu@W#)3#9hX6%YV05kog$M}}l%+|fq7khW}`0&UeAUpV#KfD@Hw{r?kj{ zG*W{beiWZP8gMq-Zp_xf2`FL?Kj4(V`YM`SB%dG%GI>^*z@Zpg8-uE%8sx&X`>-FNzRBn zhfjT+QZLh#TE^&}8WHEdMy6BRlnp0BW`5Ia-!z++emwGZ-q39GexEP-V%}KKdDw)X zL2+mZ@EkusJoy*Hf0y0u9#Xl_`<_lUji)J@DMH4{KXrk1F7>YAtTR>v)JpmpUk}?Z zO(!n}jJw%_`sYjl$Id^j7T2WohVKzF&flu!VX%|nD&ghgmL)7FtdD%RX!*q#UnE-a zFvi^<-o1Ob`eP@-dF)sQ z8O~abgNmK=ql*WQs+5wqBHAgIJb4@dxC$Vg@XmrrhhlZSXc|7&Wu6junKp?$3v`9nTA8*}Cu)8kA59=Wgm z1m}u?ibJJ;#RVQ)-W>G-fV3VbXPcf7*rI@hJ3co4m7(%Sxd(0o19ljtV{_KO=H=h! z)ophAy8;jz{;LDzm=edw=ok>+c1kO|8$h}uT;@?nj&|?lOzcI5FuzP`vc8sK4D;K- zRS4s+zWa=eqqmF4tIgu+o}J>rspE9A{bUSXCi=kHGi3;@^3O_7MuSLIdDE`Bu)km{ zTWD06z}VD{JXWGqMr|J5D*luu{)EE=UPGP`lLC#CHL&FqEwK~_T75_T;~Eh}b6)^) zwH(97k4oPU6{TYn$)hzH#3uxi71Tufrof533!Wm@bbr*mAO*CPw7N?y$gMsJ`9m08 z(ObvaU0*9)z#|^r8JcBLgI)q+hV9f@a}wi0c8HB*iV|fwHk;y^s26C(Vchd7*uDeU zS8~SL0g01H>*R#(?oTke;+`IOsYT@m2hu zfbd4a_smM)Q!o7PzysF_-xIFMv!d-j`|LA$b^nK57W8``0FYRFivg@Z1T&yWN5w8%I7`+3pbq)<&v_Y?o{=mLJ%niAOzhy zTS1D;EzTyTYM zUikR#j$@pQM{b64pp-lUpB5iw%(8N3_$Y|+%H2Kykao@eQP&ItglYUt#mm1i4Ib_6 z+o*!Y+0!&dpG7N`zmK#2PHT$Z^W)pQSBvYr+jMrB07KZiCJjMJ zXtFF$Ygac#(=|df-1*7?q(EE0#-{7J002M$Nkls|=b?(IT#~pLLXTFpl zZO3-^aR12TmD{vIa4AFDKnC#)@D^|1Eq3qTa+K5a`nI*U0$`&Ob^y@d;fph_vEl6l z1bKv!Uo>Fr33X=iz)7tK%2!z2v?3@kI8Tr`i0GRHk?&Q&Tm#1}@o7QqAU))RK&2e0 z2dS-99jHO|ev>?|Y<`|2U!T3t{mi-9<&KyU9_!AC@9@_aeyVlnKCz8BPp!bsaU2yr zC+({4n_tv#pE~*CJqp*0Pd?@JHeQ9-v;k?8fmf5?26sds`qpcM&Sx8h!)S%k=yj;! zq=B=jDO7cYh$!|Rzoz6lZpQcGxNwGx#yG9J@l(U$!`?d3qs`vEy1n`N-K(ed_G)|2 zcOjk_EO>`N8vrc7WT10>d$qYj=9koMj}Jp%IEKcUy8@7pd={_8)Z406nm*&Wv}u2}wenScKiX6}EDlKyKH|4+z3 zH~G0T;LUv;-@D&_`Q^KtFTZ+o!zXz?=g&qzzVSpucl4%mb`{{!yZ(VQ^RN?`Du@-K zDRGd!s#v+KN2#n-TyOhI(01%M8M zAW`zvr8P3VW{h5hZ^>^LcRa%4q-DS~}Ry zK*s>iY5F|F`TEV}R9@Y2jFY3ByaE#z7aDEVRUTiB?cdxj9>2P)yBxq}5MUYGNE{G2 zNbnIB*J;`g5Rg&yru5^l4*>9YPnVJb0C4x?V8O>b0zM#HZEfbnGXJ~qd*?A7ZubdannD+zI=%?485jU`21g8*(@F!f4 zk9pbp+T?vC5gK*a{!&HCjF&~SnmLz(BZ?;$Lg z5I0u=?mxU=ynp{L@$}ZgIsV>8Sepdx96LUhync{oq|8c=^{gmBjY0H6y_ekX72U|hym z>1V0GDSGkF{%`1rgjMJnBoH1Alb)%RyDI>~;w*4&<75?9`QPZb;iLg)sb8hf0AS+- z?5v>%09Bu^aNnT(Z;>Hf0|4Y=k_tfW5e|``;u?Vg*O=t#eBExOZ)7Fh7Jct?7_GfA6xtUup5x@Deze`p{XYjNzqmP%bEL zA7OEpf9y5@Z~*9LZRDw}LQ}cx-r4nm^RZrt3(eI4Cu86#&$QZT68*X7guZ}3wuuAR zYMu(iztoGK8OEFV)aJmR5g<>@x%-4z4%758^FrZvw7xt1F)`<~q+7oT=x}%v9e;R| zFAdhse<}JX&f<6hL1*Y@ca$B=c^^x4X|I}p2$AHlgIElmwtmhDZfR+rrMN~B-c%z;(Nh2n z3{d=h)sIVkT=I7*(PHqa8MGbC*%JR*YSVDfaJ{OfIufw;uUCwT7UVOJX9%kV9Z9N& z)egflW4-6B4Sw}m+eaoVwIML^r;4idO^=%yGXMZ5t%o03#zCbtnM?4QpU&G^FHS3q zsk3x1=XMnT*D;+o+a{uUI`P|agY61HmhT5#^1y5*KPX$@zY51BpUrQomd!l*(-gi} z@=gPQRJ~H{DhaEgN<0GqZRz;SDFA3$0ciL>2ynnaXU22}zYZRx6Hnzh2!OUk!MhRA z)c}=$1_1DRM9cxf26`R`0N{L&+)|Qa7LL0mf1*`tld~pqG-u9{bg?8(7;sEsG$1p_ z22Zrn(?#USa2g}qrT6>0(a*1Qk#p$YR))}y`TIcr8%FXM?yht!E9-7( z;sH9%HYdM0HsrNR^`}-A3z{|fIBk_BLsr|oi^LLBSKmURc?eOvCou6~wlM!C*Q@i}h(;A;UNWHgf$;p{rD<40TWm$HABbe6TF zfUkqe*JSO-_*zz9W*K8q9M1GT{zt#b44z3*u!i9>Kkd01 zKQQgSG%&Qlx?!~ZwO7vMv2jkYGzK072ojp744x=M6DiJ<0WtcAuV=3Qrbh-kaA?V! zcFzAam+>#L$0dxoyBWahKOl^_&L{FBequNcc0hNqr>MKX-aZY`{%AG>ES@r}d>QcM zi`kX|fJf+gY5;(gmY>FHN8PVWl<42cC!egArkz);T|t>M;6h47^#|~zi_ra|8R|7* zR1#YnkXL;^c7i0UoB>c_>0Av*D{AY6HZ+UVVLelZ;U;itwPd?#n|Bj=4 zTW0kx`5$;z;5_5c34jAM_5-lo&xXH8?_}^|pR~BTe4`zYbAwz8kixSR&D^;h&FI3X z6(!?aUQ$93Q&O=-hr948AL}UpjH0%sEYY=eW+?Y0@u++wsb` zVU0%q?x(|pJ9&sd^0pqAbXz>6IjB(CvdJs&iS>#S=D>1w{C57r@dD8g)`-gk(u$zc z&+HCa!s3wW6(RX#EX&AVAC}wfnCUn$NEpsW;p6KgtnToNilu02eGfoSrBSj4MbUJm zHn_n`HZ;^kD~@tbw2nNt&lwDOFsYN>eMXy#pwqvBoq;bMrtke7{N@2x`GqkOAPUoR_NX>x z;Ax)Zg}l_q=ug^{D`x#W4C#TTfzLx*+!$+xBoVU#=fxQKmOxCTETv&M+AQ-0{}V=ic01G59|N+zdmO#$QSIb z$aeb0&CToU$44&odD?J(a>sl912g*-OZ$wHSS~^7Uz4%dWGVxI{f5hY@}<5EHffA~ z0FVxZO4Q%~T9myw%Qi2C&U-jZs&H1CZ2E|^@nH%1cn>*)k;yIK=8@{C901hPeL5`S zmW?Hfw_@dKI4gFmY`*8WB53bX0CfxznZ{MVmWqOOTHEv=!Tx*;qbF1Hl93j{FEL!e zpYxCMFNJ3v?xyjci;z6x!q)t`&RPp+T}Uy@pUxg&^eb$BO&vO&xVyaVr^WN`7R`(U zxf>L~#tpcHH7b7x2P*8G3x_5w&H+FaJ+}O{p|=JAohGk?fIYJx{5SyE`@Xpi3?fGy zd@h4NItvBPYXQT+BsqXdit%i4h{KQEM(5mIKwYi{ml(US3Y<6qBto5VW`B%!#;Q|A z@7?L%;P}KQK)=|SRXT7P1c1-6K-$Og{d;a+zh^%HFdglr=q*Q;eg*(2YhiJz50sa- zg9QfwDwhl#z}c31y~qHdZSZpt&<6$?08n2N9{gkbLqtrUW#}-h6htS26Er^h%>Y># z@RE`5#GJdwLOQ3Nc>EnW4DV8y9Y4|<9E&(N7KU|ALgC^jUz}XI0>Ei57U0~c#o*cO zYV|#Rvr3*vxGHc{{=?5hR};KG+&Fwb;5fM{@&8!|sFdK8oNb5nklk@`Q7 zO^v;E4P;3J^~Be-U7-5p$WGA%mkIKkU~|n1_Y=zgKvm@Hf!U*`IPQMAVgJJQ{t7+F zK;ZT3*T*lv{4%+R`}h}s@fQaM1^fT{U;pdx^oZbhJ^&b%|G)j)I-B~A$Dh-`ab*I% z-~0EET<&vq^LW^QN-ps1enPo_2F+dm4gjv$<$r~8ef|Fao*n*Ae3qNfIxr1a+2j3L52aCGBp2gptB0 z+??Zo@EpG@5iR_RK;n>hV8qEk|NW_>hfi$&`#>7*v+N)Lgkz&f>{~dsB&I)&0wM(4 z6f}71K*U`#AHnN4o!Lt~m*fq&MB`(A&uKmWgN&r*k{iG2T#X}eL=Ey3W&G_mMzP65 z{o0As>ipW9ov?cVMkQ~HRKYuocN3rryg!DgBKQ2ckFYrD-A17=c!xh71MD;vJ@ApG z{XHi=o+xKuBkaLt9{`<_vwbhW@k@Z-7w`xyF2|Z$Ryc4?-^5z@$sl&f0>M!ijak{* z%$g22(WjQ_8BNQ})LHP#@9;@J>u1dOQN{?L@$`1$&77V9c#nb>w(W)n?0`C-;eN*e z;63?AJCBlwR%MP*l|ITNgMdB&us*2ZwdG}?ou~VY@&~W&EI-Epk)IiV!&`qG1Z3ra zI->0EPr2O)rU0N@P*XNS2%Gi@>oJ5bq1l&ko%9i!EQa|tEKSmHVIg>uJpoNlr->)u zV$OL`m7vTz1(kAU;LB?kVOK)!|K5Ad6DCgsctXHLStaw(W@-hX+@aA@3|-7;UE6tACCY0&;M*3eVrYZFDAb z#h;A_|AeJ1kfGI26PWbyGm-|bmq9%?Gszuro%S(X_QVU|TY8oE`|nRociY&WHuuOS zSv%U8M`urt09vND3-C0)g2j!GbXR^dySEK>x-gH5-B$oU!Wl?{cL1Q@K0t5~nb!f$ z-;{O$M@J_kurUt|54VHZIU`1fkKhNA#iNLG)A7M#D{bLBew_jupWNerL# zU2KWyH7)zA663Xt>vw9}d? zIP354;Dwz%NGpRR%M%j}eKkF}KdDUCCzoohM4nZ3`Bj`1jTML#>JtU)S^clR`VF^z z)hxeg4nk^%!c~q7pDgEt^Ta^~Xh>Dj%H85+1tOjf7L@Ub+y`YFe{j;evCh@wAfjVO zTL#=ld=7ME_!_unPziaF_hQg5a(_!gqR``U$uG2|@0`~0`W<1MxfT{2`I(G!(A`fG zsH8hT9RfWA6~PBM;WSyoKGLZlfjh3-4hp1Y^#HixRsQ+PADzzQ)y-nh!@*(5gaIub z8@zT{Yi2ywKjDr~N(mZ)d1{lT@d>5Q(aKw2q}LL8Ywo3UBsjAF2{}QYHMJKGq9>#AV5T5LI<|M%cvUb9V17gUpl{ zT*ebvoHSPwJbHM`z+0s(kNx|GdqHe#RnI7P%M@euqdTz2R0`*@ZicgdGSNd`UQ-^ANqcX5Ss11u865qD(Y}}baMR!MmLj?3jC_t)I0)eV(B{MaBhQ1E|8T$myc};q zWFG*p1B9z!hoYjgP#$^4K2V$!EoWO6w(BlX(@PY`u8mHx7m4kq{Wm%&g{N#oV ztLTMCTIAzj&20o$WmAyXv(1-l+suEL+b;83Zq3YVYG0C zUosz~^*njWZ}1 z<H5_=Ldrq&rjoFkQ!_hzXG)OU?E#8U8g>aQI^60n6DYWyS zA?@cR-Csk#> z9FW(QTbKX+mWnHW(;0S*H2w7I>xzIi&Z7RWLH`+;0?pleuu0J=gBFC>p#cfUsuF8MCz zV#_N*UjaN3$48Yv@HMFQU;gD^F8}mT|MVn=-<9J#9{_OE-;$gDc-Q~l%MH8_*+h9A z;uQ(I;=bqF`M+@2KOa)yG6aew$Nb2&8&__*R>30{?EF7uHGtciQ2tL|0F=^zpUmN* z@EyHbk^DQYX=YI?nB-QgRH?9yM(Mi}P>=Pm_*0m$WLcg{l+h{!00#joZ56#6nD`h` z1_;_U08rx$hA5r9zip(dgv6Vr#X2QW1DL^Q1C6ukddXZ$^Gm#!@cQrha*6(Xz=x>{ZlB|9uawO(do(!u+RI7)J_w+V9eFi&bPoq`9~dN3olk%A$B%L3nZi_- zblapft!8(=D0vl>_>rblyqW>L^iBpd8<2(_;zfp;^#=?6JJLnIJ@YMs>S(`BPm1l% z__~enyq;QXd-d{Vmy6u+XGvKk zwn;OpIuElVgegzVt>jn=XF^xOcOtgRKZ+l?-ZwQ~b6lk{OPj_$Ph&l?Mt>)S@5o`;KUDKVz9mVmW45AXH@|5d^HTUs z`6nB|r+2`PVxEu&Nye}8q!sY~esM-AD7a!OFakY8< z`pSjLNND5cSe`;FWbS1%KJi; z5_W}Y1bYQJjo{QSV4UDn7F@>l>&pJ67(5g92a4!<)bnYyJN#{uKIZ2LD?|4nGnLOa z+wnGqMprpSVcE+8+ml%-QZcaY_|n|59cbvUSDJ`u?#>?^Y~6HsRzf=R-0n>0_|g3W zk4Z}91qeL)8Q@EmxBH!FgN)$Jla?=e4{tZhll&A9|CE3FJ$sB$#|=^WX5e{xku@1< zqg#Sy({bGvuQ``h*gvk{-zE?Gqzl_zyda|Iw6qQNH)po3C%Ts3AzzR(16Aqv6Cf5~*L{yHpQs;*%~>GPVJcx=%fUA{qSIEl>m zfaPZMu(@VO1SjJ*N9O|=DxCKScuZ-+_T+rzd^Bb z(NDX>AEum*Zwi-8pm2HUNG-6rFscw|_vQ2(DJzgqH(7mY4&Kb95)sd-B4z;M0Dz-M zS^9U$-+=(D0DYF969>kLqR+^M$`=_!KndG$@_wj?KHFBBeo@7Y9ifVJRjwfc6HBXh z{o30Je-4b*^PKiWa9>J0xUpa_u_S2_T=$!sUnMyF&65gLdUMVUAfjA*J{QGOE4 zn}U!{x3hU~htsc0%vCFuz47QXeFICl@Y#J#aR9H0C4YM^#;;gwiZpp@$Zjbp!aCxD z{V}?6Ght_DM756hq!;WC{n{hOG+SKo<_#+V=8;dwXV3(X@8%sOI4O#)Ki$e{GP--j z^{^5z(&i>K&6rF@Xyobmjw?#x#rbrePSfuEmQjaC`ZtFEU7o*jD8D`9rNk>uJWt4% zcq-$nXFX42v|u#}MO^ZZbbVR0BU#v|s*C-%%D&p5IF-I{)U#@vew;x7H%gvLDgULc z3x=WMfegd##(rHB+(_tfA~SJBnDNK}gLoLmch;G!Td6g(cTc&>e4 zU^SN|zf73%$7e#=OK^MZq;o}8oljcx5ZlfH z6SxyP0(T>aXZ(@XyiJ{pqft8yEjyfX=M{r?dn~ion&ZifhdRxO2wOSCGq9|Rf;+Sp zOd{NPEAkF7&qh*+4g%0Yz~~B|_5HezY4f2q&GzbXvGv;$hV38WX7eGh6LR{%a%gd=SXY2G zNo#>e(&^86zn#fybOigvh?}p6jq`?;iS>pP5G0gfc$2Z_wKyNdS+75V;kaAx9=7|n z9}41<{N=qmma6*&Jg?BHoG4a(mO&?eXBP#1>j8ifbJ<_z&t|`?|M5Tm$2F7vHOJv9 zZObK}SXRS{%Hy}Q~;++5I@7}-X=pX0&{giJq zt`xIJ{5oWAxcm~uAlJ?AA%>zw@&bEG?>0ADh(|CmQ5I2t?dZA1PDjh%a z!IOOk%9bvzn=}57?sn(>Xc5WO8N0_bdy4xRzB{d)FPe|gQmOR_&nP2s!s#@>itketTGaMcla%^Ztqx0n{lEYB^{;;QD`)z5JihNYVJj3rA6Q@9vE%XQjK%&OCG}T$ z`IF!d$2*q(`GVhWegF7y_3p#_yDz_b%V6QrLBTo~g3#$YigNRxqbE1n35%Q0`6I2H zvkokk)@%n)bf^SP2{+u1B}LRO{RZD6|L}J4=F2ZR@9$asTB>nikih|GkiY!RZ+N~S z9$ZM$@CnvRLIue~e6?-o7Iszc8VqcyPn-&=fq@mA$9iRbQMaf+cAS&q&3Rrf8%w`RP8JttTTa?V^A){&Q!O8LPq1SYE&z zZX=ne1$W-TMzMPCeqx?I6;8#QDSnsHBhY2&?r9rvQvr0EY}E}!LJG3sR8kso=eFTb z3Vz^8nv9cv;E6qiA3=@(0=kpGnSDV(Q2y|AIQF?j(m!OuL=CPH;_oFs@MnYek|Dnj zd71~f2Q=orekZyt@(p(PbArRs%OZ(uekNR)WvaAKD*%nJla<}Wo5C@%^66JPR#t(; zX$D&mwzSQlJ1vau2VBs~y)By#)%LsrBWV7Ge_ZPRkH-F80_Mea&jC59aWZP?YMQ3*;H!!Wa@aUSQ z{w>$~a?XEu_Bmficqn7u1v)dYf*I4-N<0;;!9C47d8|-XMSF!-oq)7oL9QPnxo4)| zZ~Jr9SObAN|KDE$co%>J0BM@YXm&008r{_SBgPsSr#z8wz{fedf#uD>YQ*bJytbL&;WM5tJLq$o zX&VwV<+G7!CSK&jeZhNiLFfa7LEOww*=85JeER5u&h3)+{P$AeBbRcD3Q1~+ zfKq&{dAz7k@umxi#G-{kcY@3ha32&%=&Q`4k&*si9pHsTYj*yr9rzN-jXIKx@AzRu zAm6vQwk=ikJjW++pRBJow_GZGLmW($3g~cseZ5zfyX`n3u=3s=@89`t%(or@u>8Md z`9I~=XZ-}c;vEHN_IC~lRwzLW zI5q;d0l~NdP_brymitjap6x8SLZ1c%sZ#LSMttxmt#ACBaISEIH%2G#n?UF%GhB%= z9SEhNsYq`oD96#YXXXuPC*k)IQ=G=}fn{3!EG?&y|eS2US(UI=5l z!Z#oWutW@q|I6KbCCQc~XPWNe9v^^&NaTp2gv3;!hbJatvIheEWFweV(rFd6>Ch!{@L=`Tf5Evutx~8M?eY z<2C#P&d*fP$$K6PVBmu;+WjV)iHBH-<)`EK5SkJ;O!^LtmS=dx4!#vESO$=evrOwU zhRe1qz5<$P#J@devNtUs6;GIVk>s5WbsaLJy}GdJ2Zj^iq>gKjBfPLF5qAkvQ{9%w z>-)MVARs-?mK^`Phw*d99|WV;2s3A5 z%Vj@=2T4dk4_@+v^`^gIA&n}7w&6yc_;vo%^ObulCPjsDZHc^0~# zgYSpic|R2C0L%`m3j1dpagfUHr7&PVCjVKu$%&(>`vmKx00;~GiDw7;3p_tpf7@n0 z|J%>*KeAl=dHsL!UEH;`d~>(&Qv>>fah_e1xDMHj(RVNFX>8jyV-w4`qbroN-sxL8 zj*T_|E-~|Qf9W{I1yAv2-ApL+6;Ohawv)Wvz-qh{ruaiABB+GM-E`Z(pYs|fBtJf_ zr&?wO6b|(zEz|VXxbQocyx}Lz`e1VwUpA*FhXNLNOe(!7Z*z11aD1|S;20n`2_JKP z0A}zaWdPHXj|%=-<|hjPtT!zF>7V{-$)^h`CcIa?>h&5M|g(quy0paUCU^oMXQEq!5sfY*_NLSyb|z;KyBv zaSPLr#!h{`ALa;!&JwFTIN+(V?CA_~*p&{ON&9iw`xinjFxG;9&OBE*>lcJAY&Cka)my1*8xVj}XTDhRK5c13H{gID7a;eXtkC_OPrcYtF{?O3V zMr!lpy{-L5CSUgi;E8$Q=FSILlFPXY32J%$GU4FM#eWEA*OXS{s(30VhkMf8`=&6k^h=3_1f54K82>5v=^{X|*Y1W72l=sF&dnbk@oj;% z$*#Zs_S>U3Z{D~sFM0jcpPwuM{Nq3V9QPf_?EZD6#g6l%@UI`#uB zIqG-MS%1#?v)iBb4f0??fTa)$#|=rW?R&33t(J56uJa9KbORU4te?oLHy+zwG_YKK z&lha{Z-bGh4BSm5hBK7L2CuXJ9wG6JzxPRNYmL7aR|m4J4{Yx7oZCcZev=c&2Swt=7VONpcl{Oy!(grDa*xo3Vl-6)pv z!OIjTIg{cDTLPBAc`ofKT(af+93~u-et7^MKYlveJZb$j9nCb_T|PhI*MvV8S-(S> z&$DU$ zIZ5`}9nL*ET%^ax#gLPZ{A93e|93p^;J4<;M-Mky29Ph$v-z>^A0q(lB>aaz{DF`3 z+^k-{e0jXNzCM3AJ9|xy-1+aN%*U+h`(>kZj_$p_xw|`q$$Aa2Uweoqz;%9LOV(zV z3Ia+$Nvm(GGyn6G)#9A*QI{5=gn;VEZuX#qpVGmx zy4BX`=WO2&eSO2{Fh8OHVZWztVRvMcqLQoo0q$Tf2*Gg!vMBj6%u>o`=eMumj+frU z)Vny@C4KGx{F6eYz7&>Su@s)V;}#YScLwBOK`evM$q45~m{Ls!s4(N}v1cg%L1TW& z^Pn%ld3khe_MdZD0zCb(oGDh7E&YmQ(#A9x$6Mkqc&A_K3L9Fur|Bl>2tSXOkaIx0 z`#DQ0IGDW;=R9O%bPn5%vF9_rP7Z<(_Z+mF$j)2kIq;RotdDhp62q4nU~&$}^lsqo z%e)vFyZG+F5`0TY?Q0#oiK~+fZ()<7>NY^9W%MaQ`(+ZJ=YW6UL{fd5zMELHpGvbL z<34CQ?S0SA%Xl5PVY9G;+It4x1@`zk5HO$v@SU^{yqNDa{(R~2Z`gR|>G$52xyo8P zQ}F7t&h}VyhjOX2*4+YuvwbH-C!3?in-{Ca+ZRW13)8Pi2DA`Dd3pV?xWMXmG8aGE zI&BNFynqK@kopq0Fog%lV@<}2!RCWNl)-NWz%=Ot&`M~MdjzEa7nh&XylxIWz8&`j zPzl-9iW37I*T?NU^}~i-*x%?A<(5ZS_dR16K$-XI7+OW^AzKN(zvU}H?0P+oMr zb=drn0I>Z1?|;8jyWjopcdqsOai4Rv6YuVCAAUns-RXY{f==#kAEN<4wf>fKkY8Qj z-n^h;_$=C^djgCb>5JX}OOD?y6$b9mZm1d1Z{BA`aIl=Rk7A@9szFq}*Aa_)w~eyA z0EU(Dt~ulHm;6-qWM)qf%Gwaj-NyfpbN(Ll)9sp&ejy+3;tQ;9VUc8cIwtJkuU@SeFJE%x1Gg|cxoWK&)Dj;r9v1)h$GceF!t}Eh z?Og7Hy~g^N9kICe6Ce3gV4@>E()sHOX^<6!RTy5<9VYc>5NiT$x>$mG9|*G(VYdmz8@+D|v2_XZ4IALDPa-tP zsaL!4m`c+Q{f65|b#X=jj#}4+pa&>Sc~f<&n|ts1)a+F(l0az#(%$CYiQAsI^V%@| z+sra=(9Uy=hp7UyiWn|+vyUA}JAS~E#a_I59<#QegQqO_@K<3*dhzSD`#DP`czas5 z>Xr6uXUkZhT@L93^$DC$Y3DK>$AxvoubI8fe}nL~;jFW6`-y%VG@=`3{x8p0i(h|r zy!fjxp^>DedXewv$m0wC1ZNrB+(?8V~z{5gdMdJb}}(Z z7ZVF`;$q&#;L9(G`V*Af{^d?jK)25{aCt*oS2s7yj~7?&fqPu7Zr~v>2^c@v=Jwp> z3vSf^lEw7jlIIKjuDC7uiYC3L8hjyZ`TZv(+?%7LPq*jiw=kOrcy%39ONNUDw*5=r=U(SA;kxJZBsE;13@`B@DL!-h6R+ zarJ_kxc3DdBM7+ZkH++(1eq{G!1Z-D{|VDCW|rfmVjZwFFh#1FI2Sq~HcE*76NX}^ z&P%|UZeZ*mzW?s|bN={w)_;D^f6AK1vsuNS|1vyNMs ze$Mu_9Ew=HeRsTg_r)gehF>AkUUA>kx9`~*x#nwUcUOD|(wh(I)C?AHjYj^+?B5Hc zA0O6n3)2q({fa+&AT@@taoJ4NVFYLb=fF1HG{AZPvBnO=0N|_)0szhV0_6@nPZ5U; zZm%|7M}Vg`vVj42@*42?(HFTtq2OdLOxtGanB+IP_4IuNf}l(cF0l3(;e0$15IXL7 z`j|(Xz~W@o#b>NV0jo4T`&t?NCyO_)UMx;eHW{3pdPz~!2PxZD04)O9)iAZmjF%l) zds41L19V&5EqmR`kUJYnRhnZ`%(04~&`ijv^)0B)v>f-J+VA_?kyr#aFwSYUCK zI}Ed&J82k12CaS0e8y`V<+(t@=XPGdjw6MehcVS4gh%!1&{pZ|z)_yKBNV_imn-&p zOCJN1A{C=wqd7T+7N21uhZFo1mH!#`9h0NK{^n%yxButK;vIBUn10UoZ8J)PX$3Jj45q8ady1eT*U62K0gvscg{d>QRf&Ew) zU+oR7g#hmb@SXsh#<9-~phzP0U7D)3Z`r4EUjXUb_q0<+_~m;50qU9mNe~rXm)BQE zEAG$p6q>?CO){37qATl{XZI&xQC4Q5M{mI34S0mub5YP@aY5Dph<4)R*<$_2FJ7Nt zQ1;vZi)(>L3FeP3)f_gtKPLbz|KT70VTly6n6EEzFR^P5EbW}EAMZKGxVU*kv%jU^ zxD0U4^|&qr9N$0Od4=IQ>nyn=0IA$#4^jC$OV3Q)FYUn;+yJ5Et_oypWa<8C=Jmqe zosIsRS=i{H3IOau7?V;vl2nx5&? zN{h42YVrD<%NWj><M(A$sr+(R=e?iOfHw}}{Y=<{;Hr!0+@iE#A;7ei^ui^+ zFn8RNe*J{W6l~55+A9pqbOh`)1VA~1JTRG5`c)Gn7@jw~uI|Qp0t`Rh#?`xi1o*Nw ziQBLGCGY_FJ`X?l8(w>$5wW6KAL}qrq62iiu1CXv$}K=ip<;hEdrpEhb>lUnnqPo4%Q98M3TAN8UEOO_F{{ zo238Va`FxBl+YuN3Ua#-XhgTNWCuMf%lDfNr{^BID)^Dz5Q|%SIqFoj>5wLP>COG) z-T5)x`1|i~IUaad(h~P*?D6V>;p~ z{qT%}(j*Jk{rS`(8uRYd|=sqld| z?%*TV_EC8hA{*L)dB&R`H35Ea8z~^{m(N46x&L$SlpD{WY`j>04Ns+ei>``r4Gv`f+;=q-0IEMI5P0iY+Gw;# zB~rgZ$@60`<=?jHJf`mUv0R_2XmGn9x8FY#uY>%e=fK&)G#a0JelFa>$Qg6(vnyB? zy^w$^{Bm9@#54pxZC7<(vD;gMjW^gM|1`!ZM}p`U?u&r}3tAJ_002M$Nkl@0u$ zbBDo?X!E2-mOD+@FoSo#bJ&m0-HbjLQNMX%4ki4#_*FcM*u~5<@AOZQTlCj)UIIYI z4%w&)fO7JLuJNw5EqtmG2uCVet-e>F^iz4B`O$|FNaXkg0ft6O{!itPxFulanm->2 zMte@^)dNTDmlEK}I;6{2cHzHta`pqVDc}15cC-I6Z$Bdn7aUSz&L$i^-f>C6;sI92 znML>@-GQ_IOD4BV+Bi!A-0@Fk-0@E%rovRZjsXrNSn3Z;rEojg!|DlhZ1Lv9oR zVB#KS$&nUz{g(hxyIbwhFYMTJ0f2ax`4Umdy#pu_!dvC9AQKf)Rer_O!9v?6yfZ;< zVQBW;LCPF)zr;Zz;Wao}0b* z9sYvfZfN`JHuB851@6U|dHgKrXyGZYy|T^LHG}Nee?QQ?(D==(UpUve*LS>25%-NS!*;8byULMY%H)0(RO2HYA*cvK z$C7pM^D#aN3un|NirT z{?A9O`5&?I&%6JFUylDBbMBDa7LWLpp-224c*69VFM(zbCnC8#@Kt7J{zzZm_QypB z_kQ2FX8%e)HcTvN7z20SI8(97(Z)!|-a6 z<(}u&?oN9@|NVEv9fEcIA9{k&Lxv=aSg{@mZYzfhE0b3Z$aR~;p7LZPATa%mXLwbD zZb0Rmo^cnfQmQPgM~5fbS)Vhcci0rX80>*C1C%{72fR(QN_sf;E%cel1UOXcr=ho@ zcKib7M@qg8vd#7fT%u)Q8vJephhF#!(d6P0#$*w1v(PU))0d2U2GfRivmI3pOXRg> z!bUP8Iaf6+-n^hmafJU%K4z6kvhzHL-|QjHiJ3oruS#$F z?UWke`#x+xh0(W3S-Mv2x5D@)M)L<~OSgubf<-+~xonp^*Y;KW!#VEI9qWDoX1Ohe zbac(ciiU=s!s?kNYd3^Df$pAa(HOKLT4<-o1YLCCez}^^5kNo3OIrbb?7PwIJpm}I ziDw^TlIR2xErD1zm%^)Q8JF5R@u81b3A!9)WL_4^gmI4_9Wj*-bxAq~NFd@+a4PF| zBf2nO$z|^U2v4Qb3JZ2{`0AQ0>HbIS+ndMr>hW~_;luZ?TZEs(uOH#tkN^Jf|L(>> zt$9`kx@P8}0AQiKTJW21zB%H%!)p>cf&ivIRGPc{ua5l~0IG>&WD}-9s{N5xxV8|9 z3ju&@fbW&H9sOe@Frcun*0%(+fx z`?>JP4L~w}_8P?E?gsa1BBtDVG?RDcfM^xfJZmwLScU1|XZue)NS6fD=Zn>+@a`bc~(w zMHv2L5e8fza{QF4pY+J9n7=dsTEl;diYmMNDUW_p_cQbN4C@;WRS?j`&AZ6UCOi?VZF8tI4456IZS_5HAknXe+31RxR0C0YO=9jh>XuDX#IhzE4 zPPdYE2ye40zk;<#-Uw8=*Kdm7#kP^!z2i}p+zJ4`?*tqHp2D_}ZR{ zoUwNeEpVwu zSgsm(OcBq`$Jgu)0*Jd{rZ<_Hb2pO?F-n;@!`)tant<>WddFw`(qXm`gFA#AI#HKP zHwG+zJ3*bm;5m#gi=(A_R1M}AT3G?+)e9t1$soqE3^T@X@M}U{D81#%i3gRE21#=` zlFSdbn60g1EKj_N>te6f7rom=I+tU69Ob*_RMa)Q{ME$q0h!SC2mla3R~%2+Lv;i# z4UBd==FXH2@z5tPUUQGi+m~qN$e&Z?iz~DUhO<36Sxzx+S4*OnuKcoJfcp9F#O(Qd z0@$3*$Aq-@!(%QB$~^%C7wMaW*vH*CBe$S}x{DD7OugE4ds(c~0D~R6;gaPIg_8$p z5zGC|D^Tv=-LDajI8m3SX=nYSln7KFRzw|6kz!GT@H{!bbOzoo;!nAD=rTD z?d{+GE$U{9VOvtpStD18o(KT{z|MbF|ESJ5dbm1+hrU4Tz^1;HAN%2$f?{3%E*SDvamsdP**awi?|13$YQn>?C!5~6_ zrL;`cFbLymV~wK`X$0Xiy<+|_)@ug&4WIILy~fUnmC?JdgXV%=_TMhvbJS0_F#S4z znZN2Cx&||SIxdMTUAjJ{brav0bgnNsuA;l)GJ5T6;J^FzX7RhfI*GgC*1|lfRF)|G zr13QeHv+@&66Sx&k-zUb2Iv`AFS@v7DsoAOXB=d(5H&NHTO3{t9sHQ2$l*P8p!{65 z4E~q_Y0Wd8y&9G`avR9x@x&OQ&D@;d8^DidZ^JZgCpy3$h^(}2Q-s@p~x31kWtKV)K)i51n zmm!GGdFUoS9eOuzLFeIxY)iA7R)>y|Suan2Q^EZdXTeB(p1wZ)o-X4X4&Ck7aEY#h zo9z|?Oj!M7^gaHgy+H%89si6MmkqJdCeE3ET71CDgmM~b%minpnAFExSe0ce&{X0X zyq#9PE7Y)^r=Gj`5z@^6l=<8lHd-o&B%WH0%xycHtu*wj8D->}(3VH&4OguIC#U&X zXr9_#Y`ItXQaD(()*0zI?l#|VW3JlQCS0A8x%R0*U{`@E~ z{hUl`FPU8Z>7xZ>(&a>Jz*Bb8HaU+8UQ>^qdjc5y-Ur|Y!F(o|{&jY75tyd~dMU|E zf=WAhhM)qRy6aaYhqjRxi*xg8njJh@ByfV;zQ|Ge;4S5%P)@X2T0|V+?*H5M=^2;9 zu=sxmZ^Nu1J!swCW5?w{AmAO@zFV!2ZjLvcF}uIrz_wW#cjf)|_U+rp3nrNloDO*W zFaPDgL=d3bJLZW1fXZOWfLUE$o*kc^J)S)tU%g^EpM|s=uKMLhzgs@*`}pvJ=6%PY zc}Ls5<2(eP`}G(g!U1}2h$83vZ;m)#x4y*sx!-63oOPQ$KX%42|A~3+lq;RgnY8Py z+C~sb5LY39v%W|tpFVz{Go4ZOBPlufJqF}we!u(nTZDl3aSPMWhS&IX%LlxkNwThj zx#sVYzL#{yuQ;Fj>$j`8`(FR3`%(QX0Q}~!HjCf>wgi9;F#SANs=dCxTYUT;`^lq- z5S{_QM1sAd^S}SVS=Nsai%$vw!q74)0Kndr9U=(aGHR8U759YMg7%!QKdsCFR1i=A zu(t)fRK(iVz(a1UngwP8m=P@DP1xWKa}Z}B8&7woRe^L5Gr$>2GjPJs;$%Z*GBA*7 z&JD4~oKpn?K+ItS`+=N9aZNP!&)ADTtCG7(VTW|fs z;2;9JyPNb3PGRkYcH%Pf2yPXY*(E~0?cvPrl=c79ljFD}7z{rr0-w+j+Ba^YAxxEM zE5?z;MU#R#e(bN(1`Bkcpune#wkndbhv_)ROM>k&8U?ssF8S)vjj^5)0Lc23nXhz6 znk0#m9&T|%$#_>SZg^AC&sim85E?^*ynD*5Cs^s2$;80J>X_VmVp1IGkTgZ^zb&75 zaLig3wTti~K!gF7YeHXaLndxG7>ElfX|{0;U!wAEvHomi5i@Vk& z#!;Dj0-O|5HjRFLQIH$P!_a}AavzGv1oh)~KH37!A${u=_up-x7oG&lDFqs&$F#@M z{dAAGN0UENFH~1v;9eS5k&y}7&LAQG$S5ECsy-2A8YbHQI6 zFW2u7`feVsF5Q=Z;%9ZCx!f##bp3F#c)YyiG6jm^QUK2<=7|8ntY;MG5}o!b8w^f1 zk9>>(Jh0aPxJDE?s7Jg~ z&M>wsmY3lbinkJ`9lU% z>YQrZXLS!NPYH$DWDNO60 z1nHdRyv-5-bP#&0mccLJtf9MW=@brQL`ILT6T3kLl( z@YxwOAi@v*2ko)AHZA=`iRa|i42U!Tz?Q`-V|gSFF#GhZt zy*(r76kBknB|Mi?=!+H4C3gdJqnsxM=oTr^@%{R20Rr*l{+_f_vYY)p5dhlH^Zqw% zKu{7PTQI`r1Nt0w;cWkMLqU&mvmqgy5JVy2`lotXaP^f0@5RfXQ0kThvZ=2yl=Nl#MR*d^CWLsnEUM{P+slb&%Gc& z`&Co~9sD#71>iQTXqTX%$4K=ue>aRp02qvZIt4H`0=8fvqgSYVWT*Kt{cUx8!`dau zGWOW-O7h9Ho(_EQzXKZ;G8En^PsJD>;}LZ5lfJs^wewaQjvdgHLZ`9Q1_92(&okfi zYp*?UBI_qS<7t-MzVo^Ab()<{$7{IVwV8Ulu6bb<0Aza3x>U&?4*{T-3QG-}56G}Q zwz2KF$cjBnVe~TlPV4vvRWF*L8m}arKGHQFrKtuQFV8)?#LxNvL^#P=#?+suW!Ac3 zRfcG8;@tj=TmxLjQ?T+gKL|5ypace~QNi+<|0E*-iKs_~>>%mNjhA}COB~U!eV1Uh z|A5D@Ly_DNtwPsKH`+{|MwRY4`SBzGLnn7S$S++YFj?KXSPi;*3^PAQ2am=KgtNGVAtg<62S_F>@a7Qcr`x5mLYI(qi%|QVG;+JBtZ&{0AM*>mRaAfzP zeU9R+VCl$K?oM2Q>PHqwO8`)9q_uL|lBh~;>g*}y>#|tXcIR0LOy(VO_EJa%SrS&d zlphcZgIDTD08q7;H9jg_O98bU5TQW90Ky%DWkbRE?Jr;o7#&EMmYyQvaj?}fKxc|> z{wvGJ8DSK_w4kZ2%wKC4v%PYb6_*S?M_pw8IRdEUOJ`>i;?7t4e+GyBS9ir0W*vFb z;?+6JFMVP7>EF;ecYYdi0^9AgO~o$1cDLVO@;T3Yo`1v5YYyMf`*VK#VfWvyS6lsT zYjVTd#&y9@&HQElGW}-s5ddT$IZDPUfFT&j{Mpb#`#2*(2=FGcbR>mx`#1UdpT4h@ zU*jOf;K$Om!OMXCy5lF%a(>p#;&!;5C`n)oDcANral+)bvA3mp+A2GKB$Idg=fQH0 zz=t&y0 zv>hK`t8Ptr%U^XEg*MPssJ#Nl?=SI_T9MG9^b4mluck%Pqpbi?3{3{_kz<)#>M)9B z{S0f|qDP-AZRYQGSFAtIf(^5cKJYJ?vg;84VnP=PLzgc;AnUnDtMuQ zIic2C07|c)qd3R^5b!+;xZ=)$8qcHd1meQml(ENe@NfA$4;;dtH3L7vV31WI+4o=c zp524w$po6Jfu~sfD5CsV6$SeMn4E7O)@+ibwVkNLk14^5LxY4|aUkz#{b{-U!~50p z>#x}_alkwg0RG#5`)|wN{N^`HzV;`FV}!T@#f^?kh+&{yTD#&-f9~~v@bkZS98pj? z0TnQ30y*Q2r3k4P708nk5oX7TpXZPy!d+8k4T1DbI>|?smyLclP8tZtj$k2SmceUF z=x|+JgprFxYWzt~v`RFphOC`4{aOYXjGhivm;1=ni{XdyBLt))@^pu)<@e00j6H*p z3c9o3^{5-vTUWqci}TV7G>>c=L-ntv!?P+tnXRJ@jJ2p*(u~z@hi+hFF7JAF$o7~& zi6>%1L8Js&M^;Ka;wBw3mI3UfWv$GYhlNsTb8S?xrt?ps@v9!X2cI>1(ypj~*MdL}Z++A!x)4I9S zJt%B)jl1Dpln@N+J_!J`Voqc-RVc(xu&TnSh-lxf+uXa_Z3mJU`+7OHu_xGm@DX$l zp6A%!b6BNaSa;}mcJnkWcH*Xg?fBHoNI3FGXQIzYPEe0Y-3h`^GjaughAqTSAsVVQ z1c285F&#>qr616qZa`xcKoy~&v}+4`3U&&Ab7Nht7r`=PwF_7M>vtPArP{v!C0*u; z%@Cv@l7jSW^6=?I*P%x>qh)G8g;D!$=!$K#V`lG(Kq8?LCf)%%W8VRq#(uRssLvqB z0K0(#;YYS09y@v6#r&BFQTA)?jJ&X?kSlRv{Lsl8Xs5LF7~3h_;${DPr)+Ywii4ZcpwBprq4SaWV@c_Ft6$Ds}m?<6^)CJ6sRkf(G`oqs+ZEsS@KP4nOlS97C z!>s>dxnZBcE&6(}wmbr_c6&I}1B$ZM@^`0`N>98t}q%X;>zNrj`SP_Qc6jM!wiJ2>`-PJPF#85~)eT z>6HYAA8}pNFr0Dpo5yjq**jthlC%#z0sU-4@^h1_1F)TImpH^9w^{2av3FMJ%--i3 z^}m9^8u%)LfL{a?XLbJAqhx%$I?R6!9-7fB09;0O^A&TBxLIe%e#!FE&|D4LsTd+FXI~=9cT#?IYrg zN=bd}#tP_J!b`=aZ%JhP(}mqae!6Qv4d1cSMMqT_2@d;i^@nm>7C{OExpb2k-?P3> z9hv?N`Y}B8)M}>0z=~=F-viTA1emi<=|e}{tGuriBDr*U!gi>V8+eClHI3I#lAx8O zC;&(YIgk+&fp-KQwFYaLyq`&TBIU8aDmwx=ZnXw7W_1v1KokH(gjIM%qpK`%0^f*+ z0J^OPw*{HxP5$mTkoimZ)v{VPQz=~Nu$=Y-H;1}#p>gj8;jvkAj@FqCi0~rgcmHU2 zG4Vv>r$(QCTVtwQNa78M?%;|a`#@~bQ6t$^DLJS8qUd;F4*PHn)8C*ZAe6!d6Lc;R zy4u_wU2e{o|0?r3V4es7|NPJYjJn`!Q1}92`HoLL-JkO@nipgT<3|v9Se~(9!4&V15~anQ=uNDwux7=x?*}@5;~p za>TE`<_D3^pf4?ecm1c~K!=T%9lcldv)@S(hm zerF(fbjOd1#%=gcw95!=3@Ked-=r`^_c=`Z zlWn1jkPk7jgUX{~5dvu62mq`LzvTGei&wAMV8k)NYyv!qpNzycWG~kC6vjt4nJR<= z)2}`@qi}bn$b?ffC`hIcW7B8pWSfQIgrbl_}T_Hu3CMbR8%d$BA2HtD!_n7jjP zW_J7W({omuz~=Ae-X<{jGw{}DO74kcKTN+{bebzfzN?{M3jiC0wp;q9lK|Z< z0H`|75nm?N#YaP!wo+Wyt6*Nk5T_Y=}0y%1XBNyo0>Opn;R z%)n~gZ7VQJn#XW&J-3w?DF?i#F00=hak!_x!%$Mbc9M=WdricJQN)cCO!uGY7N(!! zwN5V71~_TV@FR`nlLP>osDdv2Jnn`!*UGGy#2w!jNE1e%oJeZWAQ^leBOYQ|;Jl=R_fD5ts zmcZ@m^23LtcYpXpvfIll>-IY^RR8YSU)>zBNA_X;ignU2XyUh|=Vd>B*7sD)7K68h zd&xJAPhdpeR+J1{0Pu{ovvbw+*%Lr3*lFg*PNM`r@PijccL38c3J{+0_Yxo7VR-nN zruLd0n%{HG?|aVr>uz|3Q$nPnXgnJ~_eC>G6aspezi0cuc(Go54TH})eEe68I9>G;0e+`i$@M**_h0_)7VCGdVf-}96*hyD z{&PW?KXMH4J?C_F=Q1GR;;0(i!BU;T@fTQr$ppY$2&mjG7bS2Ys`8ilZ`d5lH?5(7 z1rrVqGmus5gI|zGMz|f^`bkYpN4LimY}OU}qoj*FnOPvMafVwD{tJ%7__R~yH!GXY zxv}w|HHZ90KFKc`5_=0nHxq{MXFT7&ez|xHqtEAj$MKyU=VRt~2J!!rV}4&?b!Uwq zfgvfH9QFIi6y>{bzZUo(}`X2(ohwr|RoxUb%;|^0Qwws=QyAVsih3MLiPxu+2;upZM%V04+?v`Un_m+tU{?C}0S7m!CdC z=oJ8Z4^e$i_(#I2n*Ao=?0q;VFm)}mIU&whNvVud zCUwaW;y=gTs7`XV9$Jc?WsrV1S>q)x%rMK0WFZElrzL#Gv11v*2*klb{n96HVOnSX zGB_s((54V9i*2)H%$ruZq0;fl+Pj4qI2PA3$fW`XCi^mmpUE4`58M9flWoOredj3@ zLCcvl1o4N(YrY2fa6}mh@%ke|Ug$4*TMmq5$J-#^yrGx8HkB&gHT2gLR<95oQe^P) zhHC@s)K%RRpl0U+LE@PFH5c?TVbb8%1cj+15Q+jWzX3J&A0~=0`kXLU%j@iuDLy|zWzg3zmPER)01Mrae?gbkE{M(*5)CHz#aKEHMR?NbYagHG7kJNr~MVJ#h^+%+YKfl{NT;9Uh&0*hE3(cS(KfXO; zTygWytsg;ui6rtRiGE4!GYXC6BR_nJ2MJ!`V~vXZ3{uGHZnZkJ@ndpU$X+ z2t&r|Kl+K)h@0Q~tC}$=2~X>)>c8RwhEL3}JkDdfZswEts^)Xn|Ni}VvAS#R4{5RM z0v04LHlz}rBSkWx%HK2n9`E~toBV#oIsaE4^8*$?q)esFT=c^wKfnDgH^LzR2y>^u z=WJCus_Op)^Z)eSb=<=At2KW*HMdm#%fCM?{%@@Ato_sJdw@DP-_ukd&>(n5wV1ty zAI#mSxFZ6t;7-5E;PkEO$5e6aDy2}eN6o!Fds%{jgVE&x2X_WIg&{109jOpUm_suN zFV9a{P)vrzkVJHkUR*$K=G1|%FhTg z2nY%FKST5JmKpx9zWIu;jh#b4>YTr-Use7mz}|fI&EoY}U&ozg0Q?+u&gKzp7oT7N z-yyx}&I}*F?q@fs{y!ibd_V}*-TktWB;zaQr=qee*-y)g@paAt1MJEXD>xLmg(b*m ze|Gc8CcG*9uHSYrP63`cwq<|fRe-%Dx1r`9bN4ocwd(FMK?gw5$+m?RVr^p#ek(3; zk^pZYtgqg_<(TH%xP`@!4xq-T1i)7u)qPz8;DF~iAhhN5{349$1g;~U$k}}Ga)}1Wwv`~)v8`EM(stc87I5Y_fq_kK!_1B0@!X3h&Sh}$s2mygsa)>R)*8o$ zuxPdf3FF-%m$(dNX^!-Uf5sV}Q=~y35CE14NDK%PV&F(OqyzNx#VtZV&qtq}s7M`B z4}S6wO@c;b_?hmggiKQFXM&~omejp#4VTJ5?ovj}uBL)jRy44XXzVGw%#i06Z}?j3 zf+cN*z{?LcDf40^ztE{w?SF=b_9dTO*WGY6t=AkAeD$9EN#YUYy=NbnuxMeW-IV)- zM+qsN`5W+twlpt_Rz@DgxVJxys>Lt;jK1a(K_|BIIF}Q1D#bnsoh{~%mhrXy6^$ai zMdoiAO+R=sd#lKw{j6}6qR>`OU=d0v+_jo)`@I@S+XzVle#R@GXnkD1T(9rGWJzL! zY;et`L)f=YMcfdRm0M5?-w7fledBp0N*AJY)?9a*b z1+?~@Ql6vj=T^W6R0|I-18iViD;U0a7KdIHqb}8jjJzr~p>?MS)lsU$q<``=&N_;b z49Y8S`zz zd*ZGT0vvVf2~BHawkZH%$(MDq8Wnr_8$~0y-2sdr;fcaeo`(X>Bm5k<2|JRKL7pit)oq3NnUC}@nSqkH z>&mYEDFj3S_)Y=fySRnv*T|6YF>HDLoB%+%pP*${7u#HFKC2%uKVT}sDOvC_xo55< zVqe*Zjnumoj+u5J%J_M|k#;iQmSCQS)qB#d2Ot6fb6+o+IV=EN(ejjye!ihyS^)4^ zr?)oRD_(#*XK!_a12}%3+_0Two_E(TxdiAMdaxetD)Z;&PBmYoeR}c%dLjMr&BB^$ z*M;XaUgotL?hYn`+C2}}h|{m#!{1k%-QlNFNt9$*k92(GooC7hV0b00agC>j!=Y_4 zO*1UO!J!2&nIyPGsFhx5W%laNjUmlYja?CWTK{42hD~j0)&LiyCw&ZC$TG2!p%wKd z4oRemiGM*D_b*&q9Li{2Wb!A_Me}-#=JeAU#RC!d6!AfF=5npa{ye_T+y>s8>w$>}m_-JFi}OWjnKPs&q}_*GMAQXjPnWiIneI5;`9D1cWYA4s$kcrdXKnIiQeD21tQ^ridk!V)j;8>*kpWk>s0-&GRSW zY5Z8U$r4Wqh#HhIK_f80mBN+M1JgZV`KI$A%KD|FfnApt?C048#Ctj>zE&vv0C41( zA5Ulhb<~f^vZ^LJlE?mB4)8`QZ3za56T~--q=|$x%1nRcZ780AmP7^!xcfczE zw8?6z#C_`G-{K{+RH|2ZAZztd{cv_MCc9MT44&n!Yd?V!uYui_SWg;A)9-9Eo;~vIv&)xamObP+nJHq(rKDC30u9667_f&x& z={OWm7;PqP46TT84#;*K;Sg@#wqWIU;p)gN24a1A4uEy747Xo7UWr)$-^ zQy&u)Hlrn-L8oItaP413Di2#OLD|YLJ+t>G$SjmGETiMg36MMgEta&o%{5JR!)!jM zs-VSc5&Zgi@Al8eKPv7fKxww`UKUifhIVsLK)%>29ap^|>GSx9YyOn$7_OFMf*^51 zM-Xi3FcdJnOg=RF)wZtA$lZ5PlY-n6K+^1n8|0Fu-nE+t1(F{BR&6#ar+0JPwS`lE z#UEM67HUi=BQkSmg23iD2DtQkVETdQC(+pwf*A}81V~Bnr=y$I&GM|+l{MQjGmbFe zzvhW(c63LRu&IE-73NREYzX86AkQE^F3|#D=_M4BtgEmxeWjKZoPZgORG@kyPis0% zI_-Eby8ow3&*bGV2--NG4eS}n7=}S0>CZnZ)(n5 z_xIL6H@jQ`(@n9`CuB4^1_)rnpPn&3Ek7n5sNUnX^8-Acb_Y0KsJ8>S8NUUd1OWV$ z^d0b#?&mF#Tq_MJsGZnyrEK~cb{O+^%xMyB_~kJRXPo(K#rTE4W|&O(o<%5Y9ga3b zE_UNz&h-xg;0Q*rLH&8`<}jFv>VIJo4#4-3b*63-fE)VOmCPTBE&{+{^f$b7&2=`R zststtpxR?506<73ib25CR#oo2PIx&`7w{ipn`1yNfX6#a002aB9+*M&VV05@&96W9#;-zCrMxX_*GYK0x4yr~ zHL|iC4u2~ZdfD0V)EU*fer7iOj3d)GUPwnp-v;P_Rw}|jG(fr_Es$0OgY^G!MZ$cx zk0i4x2OPr`JmnvdQM@FNFNK3n@^BNQ!%Z^Xq(txQp&g}p^QmB&zgAc&C!Bi;oXGWE0ctYc`LA(IY+#d<06Wj5KeAs@nL&{gvL~bp0j~Sk z#Fw#dr3rcOe4M!TUTG(Nyho5Yno=a~tw-f&p5(0{Vf)9}pUr`52JvR^oxB*{Y!+GP zakt7N+{VlM6cCP;PzCQOF!)tas|X_X%9tUpf$0MGraY8qp~8~kougd?ssx#4(U-#hJw zlj^9zp;a<}*Y>m1A4DnP68*_wY<&3qk29nm22Md-(@XjJ(G3n`!C|$|yc7vI0CTsX z{da3HhyA5%WZF;Dv>hFwMc7Ly>r%9;-`Tx0yfsT8yXX96_7XhybI^BO!+WIRxXdE< z28tu2&#WJ2f5+yqx<-~+VwgV!K?XDi_oIZ;WfadI<+4l*r=?t(Rgss1n6Ti=cEOn+ z-M-9W!%w*Dv0g4@ko(An#;2G578@vmO@Q*6ZZ@g=~OeSl~v{g3tA*9_P;B|a22=dPV+VDsJCml};NQm>X z8YtTlGsOrR^dIjFP*8AElV<2*5UVFhm%n`pb#)OjV7P7 zg3W`J+W?M#`C-o&OQM(q5ri&l*G->+-vYmb@X8-dczaKPxxlE^XCqu}81E$h%(J#t}1Q*Y-_ZDu!h_;PF0|9Uv|}9I?&><5%M3Ew&IS60HEgGwb^>4fZwR2HYN? z1tyY90#gdZ%KUu}8^lwm>2C~v34m(;-tq5Km^MnFbgz>xUJIsUl_8%qrM|K-K)8+#fS^us3;_FzL8-eZ- z0v@>VLjfQHXqX6nk+Q3PW~7AwM~6we#rVjFHB>&Nxqa6!gTjbd@|QsDz^t!+wu{I~ zc*E=?qTiqO=m0mwTikT;o&b>&$ZwYo?Pv3J#g6_NUx7`8EeuVG&^=qnY&{-IrCO5?qHQ0vv ztay}=z$vq1K8faM1Q?#;S^;bNSPk&J4;qoaIr1}|%86&2bN;SFse+_4vQtGrH~pyr`0(LwobzYHAIC{lRVf5y_D_HK$bpPY1cGaNt9{Nc zLVpe(>`2TztIL6d5c@pEl1A9DdA9^}!#lW&wRE~uO2g>JICvw?Gg2rAI!@k^;Uuj3 zp}GRW6~=dan0acZyvKV%f9CHmNkeim>N9e8@X?HDXlOH-yC3w?E#Y@?^!2YVU%txm zzEgJlpPX?D0Kq_wfK11JLStr=-<{H%BV8DNVHz-xk2LD1j~ATv<*tcOYyun%C4(A# zx$h(2k%#$n#Jq$6g{qN$W|bbZIzEl2qSG%t7vq1VPcLbQ5&}jWblclbGCv8g?)02} zT<*Vbo2YyWch841e1+M@Y}bJ2@qCykX?MRA56-N?j|_I|uQUH840h@4eD0sV2rlTm zj~r8d@TjW&c)+>(#OqIB0-oiU(bJD9#EK6xsS$dVE_i^6_PpRzzwc>BnM&0Ce7C`| zCcYm-ph*A$Fv^} z^b)e0ds3!*0vKaio~2kD>@8(F<#g4#p9LoV=7w(qK*MuK010?op!o3;HxuUSy7+lS zd&8uTZ|vr%;p+>8RQ^m;KedAH$#SEh{lMA0I2C5SLuV{4Y0B%oD%hI=r7MQe;t&Ji9IR7spG{~&cJtnT^tZ!YGe)uOW& zeJ*tHd4R_g!tkAdyY-Ev?`_(?Lx2)^S%h#?SOy*y|zdQMga{v$5pUzIt&d-mJ zSwMJPyat&sLFr2h<*xq~s?!as(NpZ2-S2*@s6O}uB4p|w1uRvm1CCtn3v{5>{Qeo4sUQ9h3$ef*B&V7SYSi+<=Rp7Z}7|Lbn? zFMrStqo)HpmefWmxw`KEr%QIR+Oc>SPH9t3JDlCNjyy^{94OjGkO6TIoOIsx^w+{^ zske3aJ(foh%Y)7d#p0E%w4UR4a68D0GK@hETtOf`jPUwtQVf6M7)du01}p&$GJn@i zxPS(HC)#+~fsKS3*6AiC3B|7AzBiV16wrG={$0> zXJUZ*O~xFtflawjzFWru#BM#GcO{xXSo_+J;k~oeEA9?Miy0mPYw0mFgf2BOk=i17 zIqSy)V{0<@yfifSPsXTy(NA1Ig6sQFZUg5WzIeBf3MV_&?ru@KcA&xF73_;JBX33X zbG*1lXp?U_#?BD}JsF@MK@-+ECr%R9-Uf+~Mw;5NQ$PqwrYyt_M%*vf#;_URv1R^ifF=-}GbmOSU zQ&8wTPjM|h%J=1%RNdQtL^XAbW7p>dGGF3LCfw7arVmRoYuOft#4$m>HOpAU%`w4j z-iEfPuF0D;$>YsCPK3PK!n14({eH;=&chCfCyQ4fq~B_E>z;sHknZHodji}~;Te8m zbx(kk4GLp98MmH7lQx)_;S@BFZ|L*u=kERM0!-@@h509KTSg%hwg#Q9<1q4Qt#9=_F5$RCClOLG&6m`Fw`}~ye|M9EM;J(baQi=Ml~` z1OPAk`ReO0Lg2j(P9mT6exA)Z`#5eE7w_LM{=`Ku7r2GR zkHPGk|1|=@cYpXptnTasaJC69Rr^0Mdwt*x^#hlE=oY45EjPg2JR8iXgpW9@uDjun z?m3XLc$iR?-v9tW07*naRJ8T`_gon9KJLKqD~dpWP&42LLfR>)@q~s#LL)GE2R3ih z;X8kbzr$wqm!#hA4%zQKO+T*<8({`a0@-a7AB9X9xl13ZH|;>96m!SVr5Lp%Y&2S| zxTj(D`c>S~nBZ4>I27%OY)WZ z%f#&qZuE>FdH4}1?+JKE-lwO0=qUoEN4O9mY5NWK7@w)u3y zQEQNUtCm7$NjrHX-o81A{yDJGI)jN)o5dk&Gbc!gn zMH`8R-ry&<%@`!E(R)nW*QnQ0!D|}h+w>~{hd_A0vC%h2$_=wPU?U7J`FHvRkV#6f zAM7WVk!M_H4_pjJV+!rG4l3yQ5a4uAfa-dMfHxPU5B?P{E}4L3J>PCd-%}00CekSr zz!zwEbqmw)irJVqwZ3={t(W~%zt`xth3V%ltv8$o@ty$j@A5-*z?3_+wJxFo>zyI@ zTv%kC3g!}odqz&kj|rgy0R7XxqtI|K9S&}6TWPKFSzk*-eun_>kfG-z8 z+$dR94yH*bo1~gTpY;!}Kt=fxKK;XYY7yyQNnhkLcmqRr{6zQ0M%) z$mfHX{6NDm=%^6@=qwb6Dxsca*FR(DnwL8&<}lonZ{Hmv1hn`)7*i?UV=MvINBsm^ zKf^EnhUxcN5Yv*mE0O5G6K3QKfvdcYXF-OE)1Miv{eIH(hvHlA=fiZZe72!!Yk<2< z10{IL8UB}?^Y0zqVe~MZ6K+6s=D&gXALDjCSHH}>{bq*kNn^?UKaO+$9{J0X69e`d z*e7O@S1bcuL+l;I`bCQZ19RUkhhaNZdCg z!4NjwdEL*1ck|fkSG-H)#DnDq4@)-DMa}O!wge%bFy15DZN)`BN4O&xpcQagL>w6} zxZ#9F2m`Y{PdAC1Xi(C1IRPO4AhHpT@Vn=DpGW-c{>P_i2N1q)pt5z*Qwag?@OSLJ ze0UKd%O!wZB1Hd)a6&nyTPQ$LC8Iq;FtF{tKOjp%xTQ58nf=RD_>bPTXc0Id?}7fH zC+-I9qxujW*c7MT^LX79;=XA{!=`Y9Iq!FXPPpT`c`a?&5l4phEBj)nA6nC4cqSb( zHQ%^regg7eyddp2yh{K8VZ`&Wx}3_uiYQ6Scx0_ni|R^+vwsCK$9~@vV5~Pxyxx7l z&t+DIAm8Mn9hn3|8&0V=&Bs}M+)Mz4>34Ef%-%e`+C$jrczpO|w}Ha>^IeLa`#+52$0US3^2 z;q~UUMiMrM$@ul48+I4^6=ceQtn6xupBHwc0WwBJe%q>44KRE1t$P4u{36C@xu;~G zI>fNn+EIW0wFRj}Z^`o(4BbjKwZv zM@uDm?PvS>OfBbtAL%A7lWWFdI!S7to?#56>1Vy|WZPl(qK=T;BJL#-|3k1TA`a91 zp)m9CaogUuvD%(e`McvkYyaa|pU1s2t3&k`#;>}$EjZyOjZl-E0)W}%j6XzO;vPb; zn4XvbnX_AG_QY2; zsIVaOcc4Rrf)t6iqc03tV#&L9r(s4|AOE4od^P>7w|Z|_KPy~Xh_YvP8exFCw*cVA zNbv*HRn4v@KpXr77cggzR5Dk;fm-Nj{7!ar;G%;x~gfz(ZRyAvz znxFK@_SVma^PYgv%h7gTTkAIh^f$gB(euHjBw+0g@nZnxbB2Wpz_-J6|OO}b_Xzi z3Rc-a^;cWle8T9aGB37dn2~~jP(uSWM*uJ-tv3du0HS>fhudN4GOGkw+4upNRg>`_ z!`xuZ2#jI)2&>rxK{z^aX?X{>jDYQUBl`3nZ;&UQNEnMo0sLdC%_Q7Y0BGa6hF?6g zT+PkM(I2d-zx-M$mc6a3qZ^R0UcXp!u@$N8nl;Cqc7S)Q+vPo+^AWKKo{x}*0Dyy{ zFlyBpkbP$RByI+*{SQ<`!U0CU`<6`iYdQcmhu?YiU0^ki10PK9Z z-yf#00MJ5!eb6FB<&UFOJO%4o`fO`?|KcVY@gtLQG)#s%X~tvcWd~M1djT6bd+yg_ zp4TkcvrfYw%=pEe?R#v zqwvb#2O3yLpEX~eGLaSl^s`UIFu)ydb0#O_FG~lbTw(Asw^JFMvteLdWW#lX5F8ks z%te?&f$4VIX5gkxnP(`xRNj2;UHj&T@Hfi4AMHQv-SP~p05ceWJ;e`o5>Mho0caAC z#E-Z^I{>vsrAU~@4>%GxEdW?0!UQyyR9qs6I(y*ph_<|84cj$Xg%4>7Dof%NK5qHy zj7xBq)%?7=HUa<;q4pJzkY?kk^oKC_PWAOCz%d&N{r-S6zOHV?OpssxVSr&> zG&{Zuj&bk#kJqPOou~n3?n4<3TpmvOM?epxDSbEJ@Cct(iX=7VzyP#tn18Sj zJ(K>s+1lmU2my8*hDK=<2uuLi*A1sU?nS6x6yymnb2M*{d)GZL#RD?5NF!Mi5BV>e zoo?O~uz%8rOh+wuQcRk9=U6IB@g)FMf1B!>c;->MBJ(0*Wjb%f6r#$RE=rh?amr;( z=Kl6w$PelOzr&+2Ufo+m?*5fQ3G{=1~C)>ur zKf@R+ogK{0Q^+}gq&R2zVepLbl{dZdlz?X~IoDRWE5`La2t6udiN6>8)ER%z`PU5p z9tIx^bCbGsSq}8Y0tN_WTzhxI})9!8G4QxDou`#CR~`-8RUv`9`Q^#U{3B8 znblVYo{ovSJGI19gu0uUvOh|_OjlLxWQc1YvUEN}A?h`-DcpaQgEI1;9~pd?yJ5}n z#SymgGidhDNl^e$GR z-R#j|1qo%($gAkO#{|8=&HU{u8Dj7Tuc23-(t1m*w+woJf7JTGBn6hI&2+SI0OCiO zw0S=}uutQgEzY(HJHqH^w8t67U2S0LR>qJpadHe|Bwp{-$ zbJ5R?`ST5*979r4-DUjS#+8Lk_#pMPWALM7sJI!38Gpv4R(t*f7Np>nvd@C-zw31f zHj7e)n*++dAFZ-fCB^`O5IYNs8k7tQhn-h3|LpiR^ZkTIRtGTva3TZXDDDx^*?y_} zz2HYiB9r0Vc0Rh{ERKf7sv=g!>n)P3k3qz@0zlSrnHgq7*KCIG%-@S*a;u*zJoBa_ zsUDWjh1LxQ=4@34Rfd=FUnyVzg#gG2Ei z2We3ss8iOw1!-+4`;Gl)94jjQxPJRaq$Se6$9Tu@p!b05*LI#lV1|(-i~%Riz|M-n zSC(9?GwL_nCtrrMufY6+yMY&Rbff?vKJjyP#_`M6Y3_e70m|9Eo2pQ97W0RLXZ#TN zkvtTTLiUKJK#-$?^v|f6;S{!M%~lWqC}OPbP9IPZJm%inX`Bw#ZTf(CwvP4z%T8Pc z$yoBW|K*+l1eF~#aFNYnjljTmLIqv>0r1c;l2FluZPN)vd;tUxijEt6Z3wOx#bylFWUCiat~SgF*h68({~nM_QT(Dt0{RPwGt*P`S2JOtbNSAI|5g+tzILLRATBo%FdD`+tN zTQ}=J9$jDEal8NR>f+NbuQ$~->!CZn_x|Jc=9Z5L@Im0s-I|qiZUSI?L7kEzu_1LX z`PR0X#Ii%)BY?Wo5o<72!%C;7j*yOGwwQDt9aN>=!4p6IZZHSm4pNO{5NDt?3<%U6 z7(X_c$NjSA?~Z>rfw0lz3>A={{q>Y0M)UZ)Sw(Vpx*hj)pYsJ+R!v;g@^jy>yJObaGuy^5M3;OWoX-C5E|>zWX((X&c`=Lv zz(>xAe_|8Y6-P|n~|DgPc*)>%P=rzuYTr}bK>h)FX||pj0nG; z=^vd_uGefn)E{?i2GlaR(JfyF8%a0A+*?=ll_=WeynbZVKbHdncGcZ2X2>f5+OenHi&f>35$Imh2BKd#v~viglkh z`6);#41lYZ_<6CIc2fYnW6*k>mpM&@h(`nqHyN%et4BS(??II26bbz&_!PI`I;WV32Q~4|)%Yod zXt@Msamt6L&gqAcLTHCe4lFke9993P4b$%mXYs2L!K?40vOzi=6Zxm?ZW^;MN~a2p z?|^&E`kD<%UUH<{u%RdBKa5TLi%be!rQS^kSo)QI;N8OQ7|V-I--KYsdoK+Bj%}BB zH5s=98TF9Pz=YMj0Wc>SZx}yGNq5~O_`&b>Vy+pQbx!~^f*JlDocWZ^+vm`6wh=C9@R0+`)f%FMR=?t0Eimmq7Q~8$hv~@gv)KLD1b5i(Pj& zoBO-#&GK=V*PHj6%S`xS{MKAu-o02K-=A|4#@YJn_Ux41|6F3Qp+kcjKg^^=eZORF zbjdNnBUELsFQlXDXTw|gs3Z)_dzj(K;z^}#?X>uK^t-b*23koTK4m1@>I`-c2eDSS z>FU=P{ha%iKhF2Rd$(SE`G&gySo1l@8aC_42nlw+kKc3VlVc>s*yu<$KKA{`hsFQ+ zxBJC^|D$fg4xeri>F0{*b3K0GZ{V!H=ysf=fA7BHQ@?NP z7+{WhIfEo^2aK2WeBunz)kik+;TEQ!Yx>UoFWBY(r$7E-@jXZVbhkFZQdkE2tnnUQ zqh>8y6>x9@^E!f293gyc$ba+AH*pIqCRVfAFu1S2SR7-E!4=~Rqep_gk5?V zegKvo@L_PcIYM*?K?0SyVOj$YVnSGDP#z`ZEzBxbkF?>H}u1dDQ4io9q=}uH}~xJ1-SKOkR!=j zWZ4L+e?yzwDZDn;-Tn%Y`W3xVyCp4glNfN@+cdCTdXl4pM_lk^`r`NU)#yL?h4CBK z{;!~8-@$EM{Th{0v4n*n`4_`ur~i|lT8d`w`nkqj%>SBCp?}~MDFUpURiXHvx{9Gp z-Kr)X_XMaQ+uxD*1mJxFO^z9C1RQnoK}Dw6$>t5K5S}NV>Za;~D0U-~#2O>w1(f z3FTRMVPIgyjr%i%X|1AiF#FsWfApL_Eql%-KhgFQrS1b*EM75jW0Zlh6 zekDNRN85ohE_;IUb4ox(w|*C>zAv#zc#GE@H9UV`pK>>+scp#Kr5D#5pcJWFFb}Af z3#zZAO17_dl;1jOf(ELrW-9Iiw@(73toSNx6`FP9vL7%jr~mQs(py;|I|1+c@=s2; zBaTk+0Cc>^Q)`7hdU+VJ+o#|?FazeZgsxCxjMhOI6k{QK4ul*ferJk z4TK2v9hCq8^2m4z(PU$R8w_r93D8^suv$vs{HKDum23ov7%C@nDA?roJ+OGTN1h#4 zdZR>kOu?W7iSHnDr~er<|8pAkH3GmFUvL@FTh4Z|3jPKsM(=0Bf0`gn-o9x`T@dh6696CVuHNs^~nc@9k^Mf}P>e zcWt-+?)HZB_pjc*i`A{Lp`XOj`~4r7`F*_lxcD;!@(Q;w{j#ACW_rcZzW0CrGxkq$ ztMb)PCKkLhTb21U4Pdqorxw=|av42#%_T&q-+Z+={nfAH7FI%lDsN}FoG<_C-D3Uq zySPg;zyKYL?Dpd&Op$(0cDEn7Pk_Aj%P~RSXa-a{-cs*}%Vuy;KKqiyi`k}Yl{Kct zoUOHQBpBVkhx`x0I*sz{*bTKeWDF_*xJK_qKGe6aSOzwq;lupbUk(OOnE260#Kro> z+2Z7zFTvp#aR)#6Jt7E+i#wS94e!^4)g9)qp9~RuhxW#S<_wvRHo@s6{5z((q=o)- z%U2t@xI~>O;hoXBT*N&Alsn(~pxwPGvW}0|=UhGZ=RE;mym`$rveyVA>^A{sTy8(3 zpYSC?`kY$3H8&Doqp1+)F~Lk)piAC0ut6{`;aDNqwq^{7NcxgEtVvC|1H&s?C(7zA zayMu{90R&*wyX-<4XWHjfMBCw;kPQ7k&!O-V|=vHA*>3gvmg*ER@+uDN{=00FOx!`Zg4jCM0afHzx*!43m%0R9JMp?(lb< zh%-e758$};D*m0Ud4x|oB_BX3iO{y-mRI`$nl?187chAzhWaHd!XZ=8<_k19v;%!P zq?R-;&?sDR$q@VB7q8zxE?%6YAx86SIc=Ms%=+OeQsZ60!G#K{ifutJV}wH6;@a)s zga+zQdc z+?C#4>Q~}B<9gqjTL20GEcG~EctX@A|2yCFXUSi?F#Wvd=bk?+gKPnK$NzEfXC@1M z%HM`(n|3LxXa0eae^WP%j522x#A_fC046#Rwv14{ckp8A!vlqg<02O+%WE zw&fwLD+K^%@!A{iO!C0Nm9(=3fO+J8J23q`#JB$l17&967Qh9A^H-RugQjmvWN#Pv z4KTL=F4+pu-f)?GX0*=S&{_76=^%lh0s&<`U<=^THwIYZR}0IPwlF|&afzEP0GGLI z3qZku*{lKp+A6*KdcJqdU3gc3gy~l^Sw|}VFPJ$)NXL_-z7ke##6Bcd zyOyjh-KeykVK2xx{+i~LuIXivmQK#mx&F(!jC-OCLzZS}iaJVbU@*mCCg$DMPW%U$erK***3W01%3yf!kG% zbzeSz9>TT4#HNe0EqQ+Pu@3`aXW0wzyUz_6Qv7VXcv6EWJAA1!IIi+7~!_4ufIL{?v?XA^}M*GdMDJ?5J zxeu6zgHKjp82Fm;*XMR?xl=~({d)&Mg#_&_7$h6$pd@YM)l@^QG@WMj4uIJ6Y~&PsPEJ_9RwL(EXMj`|d^31?Ue zVx77_->>^Qg0{W!?vwtm5^U&Y+0mh$CiEP3XMYaHR7ws9dYIA&lfoEemW2iTv?Yjz zrnIkgO4?HhOf~wIMoE^J?3h8DUWBL6k+uh}&Yry$V%R?1ml-KxT+PagrscF;Xa!8E zDal-JtwVs+Ir(};Q0;QHH;`odXJ;p@Ad~DO@);GWMR)R!ORl^sV|ef{y3H8)$jB~Pbc zQ;k`9gYcm0*n$87pKvuUcDmIu3D!9=!s4HznukcB#L1$m9SemA7I@Wd>S@8+h^?`1 zDNFRcTKjhS(~M#KiMarw8~hqSv?h~tnvuc)i-s(OZS#8LI3&PzRbQEy@TT^v*a^`0PUImIAA~z z=@a3L!7kr$A29uz(aX4tbTaXc0N`@GjQ)^({Zwln`WdkJ(b8F|A_oR!q%`mNUuU5A zz!bB`FnU%4Tpq?MFSwAyX=HBNEKbqD1=_2GoW@TdU{p_p;z~r+W4o)(pn#}@( zi8PaokRl^bg+o8?p*yoIVFJctz7l3A_SceD)+u>6AnTw#^)XzJOx+p&v4+&yzQVMP z4eiM2sJZB(k+f++sIK=-%)jYln~**V0@6cM@3&SDz6rcE} zO(Up!ab?6h($^u2!N8Wr;bb}~erjH4Gp<@36$+1-!OILhw<;HpLXl?nbX^;|sRtvlfki`ibuSM~wD0~=u^aIxe~*uXk1O#p%U zv+-BNAE9uZGewp9^ ziJ1wMhX7^Jfoa99ra8mMnd9DWU56JknC};bAO43uLm)`StZ=bM^|L*l~?)g_kBdIhxO|yySXKAFd zVC-rZ+V zY^IzO&xFs+a5O7tyFJ6NM%wko;5^6`Q(SO&{e^;>=ZeMijhJP3Kl zK*g zAqX9b;uiv)vAVq!Mhjyp8cDp-l~b@#kjjkXceF$DvTcETOr5CIt#u5u^O|B9y*TQY zAwiE8d}LB5lp#yt&hll1YQnjven$DvNT0Dbtwrp+uiXKcK}y#<;xycYZfXUGJLrGo z3c)GM{DjY2>vzzNdQRy%!|?zP*+L2S{D5b!2@*d2mj>spi`vDtDLKxeX-Bpl-*WfO zfMNi^VZxp-&`+jpI}DA8BSRrzbXFkr0}-k=+P0nQ7$nVj!k9Xo@#}Jmzv=SwJ6oNO zU!?EWrjN`}h6vx%m-3$=WE<8no4m$BHw2*cKa$h$UqXpzv_FF)Gwva4jU({7grMkA z_MvFP*E<1D+#pYR!~BakSXF);@(AAGpR%2og)VVlq5a&uE5oLt45@6`V^f^m}c#}tOurY3UXe>ghKaG{z1v5yp8I~krdaXwq;J|xh3IfQsG$r-$ zS`1E2ZLa{(c@Fk(>6v$os+=;cCXO7O9IIeOvijX%vZVR4#dL_Ip@gl)!3~lmo&$Og zYe6)Z;M^xF-FYWiek`zy6cVWkWo5O{??XP`1@%-XPaD}s=(sY8jR26n{lWa@CGP7x z+gEtVq(S`9Rarr|aOW4y;#q>gC>2QcGNLt7CEeis)HY+UZ@Y)t&N-s6R-o{r`VIdj zsbLADf=~{=M-0?qZZwCitN_nLJPfQpfU?X&9Q^ayS4{-~62p`+rGrvOk}88ArYKo= z(p5=bJOBA{RjajeQ)yOQwCxu=I`K&$r+KL;$6c?&c<;Zof&hbb_Kh{sZUH#h)3)-2 ztci#(OeV>jGJ|RuS!Sm$-@6Y#KIVg8-ReWO zgOpdByCk_vQizBUqo;JQ zPzEonG*rb%3gzzK;oZ&=up)p@#cSW;HXrh>WpQWjtb9;r@lgP%{c=`lD8n)IIYJAI za4^bygz%sM@RssG@r?jLp3)%#0R9mGNLMBn+BvAAU0Jy${c9MY_1c0-n7p6x2tiEWMUs4-)01d$}_ZD@L(vU0f7h9 zQJnRl;4>=#d~kqbZxkO8IJ^VK?26C+a_Emw4cYdr0snf5HfA#1Mxav?p-{X5i@6E^ zV6US?C7|Jn-~ktMuJ|<#L@b>EGfHfS)`)7$Fo!pz6}~IK5o1YXaetd7S#;7PsxzH1e+C#2FrCBv zT*Az9C5_maZnYf|Q~zGh(elg3BTn5LHNj(J8DW|pUjsfT@TDm-vd(0ac2 zZBqPlO90$$5)YKC8E>dp#3nq-wilL(StJj5^D|fc4!a=n2LGk`VQB#;jGonz15WcF zOdmT6^Jlj2N0`nz9QhtPY47tIGIUn}JR$!UdcK7Y$CNc&b^~Jt0OufA_+Jr@l9%9y z@TNd?cXPORWuZR4+q=8uV?qcMUYEOL#O~{WuAI2X-&ZAzcFz83Ka}Z#dbf>9Yuja( z((#L6MSHpd&+99`L`ogFn$t5m$E)m5QwRAPY1*h;7t}K=Fw!f+!f5{)=q0+7#z4%>8)`LIcaoCN@Jy=xckl{1^fl zk7cT57o?wc%KVP8p7bjR(2(rz`9=&~=oT;6ijKMOFRTTCOAdzr0^g8- zTrv1>z4b!cb~CqrU4g910?%0G3)IyR65U?(p{Ya8Ye;)F*a!Eb3jQAGpu5QIGexr#udLdVh0s zLIDnMx%XxIbWqwh0sw<&4cyI`EwoIq7~zrE<30cRBS#-OvHSBc4z_hg zkZi)}ZwT|1d!F2;ArD~+H!>9)50W5_<-hUs!Jj_uuON_$CNBwJ!U?lV5=}|HOe(~f+-qxaS_4P+bPUM1m1>s#8K6D9 z6d+R%rpFdfHptyxn}LI7Uke3^l@)h;pYS8|A2WyJ{~Hy^<)WNhDP`c zgbPYZ+4!g$sWJZ^ ze4TJyAUuBNtp={jr~T(Flz3;1U>u?C9@4(tLhXqY#8_15u(--1$rv`##r(y?HGacN zVfYe-=7s=|_EG0Yw|6%u*LM%6^q=&gRdS)rmHfWl2l~)DAkWz(}O>Tb6Pe-@y(7UD0u6^xA7#Z7i42z`X+FOI_ZBb+(p0 zx6Jgc)T&q;12s`h47*NOywc36xZ@ugAQ|O-0LW9Fz7R&k==8mbk)Ef*Jv>1D{y=F*}np<=n9yFbrm6%*bSL%=~5kfBoCP@m1Tp=I0<- zr||s>-^t$DyAM31@gep)B*hHNzm%QM0nzf94uGOXHB|G_Z6nSg6nq

Q;ZS^E;G` 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�%VG3VB5scF7(k49niTeZGcaL>eua!^fUv*c0m3DC9$L3M9gazjf zyx`r`m2?k(JI}r+>kY@C*xeqh@f|IdWos;p(G<~y#J6%Ws1Sbg2V4RK!Sc`(mmd5F zVIxn5#-BzCW=_p3ob0#NcZ;Z7Iz}2~Jd9gt%&wp@l5MxjkA#tEZuEQ5?esWsN6*S# zg)#Dzb$x_g*6~S1B%qy-lr4Z1}MXyzsjm%L}UI2~BLYnh1I9P)wCSw)n- z8c|MP(1F#h^IJ@E=Ewe-{U-F$VsHaH>eU&GFlHIIxX{L_S#vH_lhK^vaOW|?1UEWh zHYyHS(lBy|AJ13m1@M(0;(=3;vsZ@3K2y3Cu3vHS#jliI`?pxoSLj13uRSu4Qml|3 z{mP{_`&G{nRR3XWoOSwIy9bXH!=JXeaE1q@kJ?Y2b;Tl3x#5*}_h2~_P#g6!Q%2a} z3on2Ju=L7O8zLmk(zfO75IAddwQqzM{X0(;DJ^}G>3$WKJ_T^*GAQM-oavLKwPg_W z>_$Qq0l1LOHOqbu2^71};t79Hf743Zuvv0wlPa#lH)wjwD{MFYr&sl%@D}=1+L-MP zcVMZ%O2SxR#IIKOTSj<@KY5BM|KKctJVWU^r~X{;j{<V%-{bRAKg(;d9f7IL&)P8Fd;K4CKLT5Gt;xdDu4FwT$uXFi2qzb{Wh);x- zI+9G@?>d-`lK;Gi*&3D(l__0nKEiDwlBr69@q@$uB_J@J!g$(-odr0dWqIjNHCqK_ z322G#$9>#52dKyu2X1hSY~nrPtxLhUPp3kQnKkB>dIcD6((uDUshk4}cs$Kh0IZL|Fx;h1nk=OxO>k2K z?hGUwkQqZo6R~{=Q-M2)FM)(u@{ArN4A|Dk10l5%N`z z>PI!Ar_4^DGaAgUd6q#U>=y+9temzCV-v$*xu3sp=KIPLHid@qDTv7f!WL~^sv1!; zHBMYx+j2W$eD{A2b51)Ti0#)t3YKvjF3m&5g>qTl z$0P2$O4UIZr{1N7r*O zuyK%25Zs3bX$zzN6s;HkM$@3xEk;3kx15^Jq@M+ye^c!RAi>Vuw0)~Ja+)H5p29z) zMrfw-i$JA;_0+aVnRkeQL$@SkkQ`WqE0nZCEvm*}A@wSujZr1=7lM_Q`h@cxQJ;q4 zI+(k0T@yQI{pXlnvPY*_I*e1;ZqCb$g&lwe8ct-=nd}Tj$51W}+AJ&m(VuKMGFAb-hxz%-thSGKxAn1UZYmp>AGyPqBcMvAy70I>_in zPUn!Pf2M8R&;giA4VeT!&)}F|lB$H)-vx&P$v_sPb04APx%eOWrGc!4s$f%cCMJ4| z!Ef#S)TP3Ij8GQ1!cigV6#rP8?B2ANs1xnX`e{zOhc%c4Eu!j4QoK9VQh6{R^T#G_ z!%ay^8cL98`I(%)oBW|kb^zn&&m2g%vy>__TJk4zEVwLq&M6*bID6?P+CG8j0Ayy} z&|mnOJy!QjmxeYT@e^p=x2?%5#ORFJ3Zsy91fCH$0=NXP)AJ>OqX0xHuy2gr`6Tq} z4;Wpn;QH@bdgc(q8DKfcB2TUPI5N+N*oIJY2|}2Do(V%>AfOOd9VoXxd-C;^VTorSbc{UDBfVkAkb`*if(pb5@XCBYDF z(lsZ*;{5-)dy^(vlH|TKGBYCAm+#f9>M8<_77m3nHyq{w;T<21=ef>pz5+e~uYKdG zFBHKIG6ESPfnMs>+j3tb=J)%nsfR}{RSl9t;m|WZ++1x_Q&Uq_TOEh(O1*;wAh`U4 z4B|Zo1fCm=96JpTz9t=tVdDJfvbuCnRj0eW>K9yc?EnXiN8*m3sqKnSZv64nZFB2; z>o>w#Ui0a^OupYISW+4}8bHaOXzBGsTgPA1`$r1Wn0BuvCj{;QS^tlu4HoyxSZ)>>*~WZc+^*+ihKdP5XpbkyzRwadIz=<_QI z9)P0?PA@q8?Y?@OdHe`3)78Q`^0gA=5ik5iSB4V-dngWvWc~?Hh>-H>>t)HI6-3Zg zbSUZrr+iw-sBYA1`G5YplO+BMI`uwF3$hPxo+cLXNKLTB=P z5_sp;ml1Kmchj%5iYFbSw0ul)z@WmCRg^zXb|}gWUv4Exr9W>(Rz?>_9IJB1Q-JvN zt*hKUN6K6Si%+1h!@LSjqj=$v)^JB9S)h2CLSG%eVbc>wqwUixkCYj)xKADTb~M!v^}4OHC{bUExmJKks8CV zm17J6_`VjZ4&{vE)M(Cpziwqqj91&1iq@w$se9`;-Q+@hwQYLNe|@gpUMTI0d+BX{ zzLR!_rZYV4ZiG_MD(#FHBY*Bu8J;1ltYR#XqLo}hGFY;@ZFi*UqBmi-@iK5Ky{vC= zje`b2Iw3Vh=(;BP%dj&@5t(i-0>{-(tD)WPH-C1v&z__m_Q4}8L?TZOfWmp6+OFFu zVD61ammqt`6d25`nJfAnAwga|UoZgBQnjLFq|JAX?_eu7VC=aLgN4?hr}i;Ho(hQk zX=tQk$l7Z{z=R4J!^L*swf)lz3lEbR_3{Xld8xD1Hxi}WmBsTiwY~!wKw;q8*(H?2 z)~@P51bOG*PZ(-|n0B{KHb~IRYc!Z^UWcN}2>jSo~t7B3=m_}%W%r-K5mL#5o zJ@(mV|lb~5wfbg%ahLl-hV%ZfCLr_(3z7_*HsI-r1ovkiz zAA=5AO*@9%a`*=EUBP^}a;3L8NH>TyE^9-^vmRvQqOcE@A5RqpO2Y3s=%KHYML@u+GH9 z+b^&YW(tZ!i{ER4;qLfxn8pm2Gzk!T%Zs>U!3e9cCZ)VkK16N+=;WjDX)`XMJv?*) zUN6FP!76PRI%_znj8&TX9IkCT^shQlFm2miwL_KZnmavjdhR}*mh)?wM;w6S!85+s zw1QvLbc^88;tdPb=DT~J8Zsv%b*W2fs62q@q#HldLpk8tb|nwg zEBaSO$-aG04gmSupq+%&Rn?F6U_3iGelV@pIaONvnU2+|@^^u?=b&V`zVjfASLFvV zFS7?86OOoBpOrDe`$#7%?D2d=&blbO^Ofa{@46Vv$Xg}OZ*b>bnW1E)2^$Sf%(zB~ zWzbl(HRR92KT5zv?}M8u`NrJ~p96+xcfJN#={iWWa)J0QRn0m&j094`k7;!YTey%v zBTaAvSa^Pb*m(J{={wJoI?Y?WszH#t!#|`Qr9x~=5#j9~*Ip^QvpA@thbeSQ43)Zy zRkxSSV$a{(Lx0{K?=9Z42k=;B6u3A^v8vRZQOy8|+ucG*{A9L_5YT|=ta8KD{Ap;! zqBkGiWLgXRgcr;@kaFsx4H;@}8~YyX#u0T#5@?3N*#nC5KR)|mv3mbKdvP%YY&bN~ z9Dd}S?j>L1T7O*}-+#ptM-Yl6cY1>~M7PnvJBwRr{OBB=#sCa;M5Ej=vT$@jnrGiF z&ffp9c>DGYD<2pZQO=Af?llLz-0%OyHk%VZnaq|;V4lXdPaX%b%K_VO4vw$br2+2D z11}-ml7_T$S^?T*?%(-;?~G#T<{&2;mdi@gdx1{EG&)rB;->)c{g!Qf@{&^$js#4G ziM%4)@Z%!Re6)$U!sM!|z-rVKpMazrVI(7zqEBs587?HU{z~zeVPKTLl4QTU@NB+% z!7HG`>8bB5R-E%(1Z>}DAx9!rcEdynP&V6;?t=LkFzcKBS!@|{`H%>hosdiAs3Uimc*A4fCfIPBkBPY+)Tzph+#$z~mh4bCaxc51neYgH=A)tE z7Q=78c}M!+#NBIz+{NHdFAwl~V2k0^C1;jk!>1b~?|EwgP$D}Xj#{jtjWqF&PJnS7 z*((J}Jy?4AXsR2CMEh_%5_gjq5>&Lx=YdZdHsJy?rzu)ZYdeU27J+R?+ zcAe}UIbys2aBy%9wcIzzS#f*p3g37(6xKwp;>McL)(F_PYAbR(V>H zC>E5-0rSyb>^X>Ee>9@b=&wqZ==GPNY3~XjmAb3s?S=Cn;?%G|J%9G$zdKtjzB^mT zU2q9+1$%e~d)+Ug5*6Uy_vDA4jV(P~=B=GtcHs*rBhctzd~l}VUvzN4Q?~HOlUr*<IgwD4-9xOY`eK(|1W8J?t_9u!{9(8#BhYSQGgUQ zuK2bl{jBL&yIAirhKQ5ikrf~p@AXq`I|J-Gjat!n;r%8$qd_$2 z+4JY(zZ9AD?33Zu4zqIdc-CGZ9J%D zD5MY~G@e3|s_Adv|0OQ-&&^NclK3gFK=}YZr`~lZRGwy7_{9Rj;H*j-@J@}kmN*&- zhW8qvdhvIp+kjm}Dqr*OG!stTfC*=xeBHQ1LnI}#AkqP$N&a?yB=6E9q9k#@*i z6g}JjRtKlZm^V@SJ*82r-RqFBckjPh{0bxE4F`s~&OpCA&ab%T2e6+_B`P(~==ItCX%I(?b_XuOvJpnO2VBO}ln2_GIIiS$C{6Vlp4e(Y%g@U(vR zfJtGGS3jZW_$}wOyg%o#H{_i9!4BQ%XL0@k2gzNSIwy{LAQ5Hvj(h?)d+ick8D!qR z`Ae&;8(4O^5KbdN<*#njptlTl6n)7*-EG(ulS&T~Oxqi}g;)KG2lyo^eqFnbm}Bf0 z#3UivBM>QYI`5CStG$P7@VLSvK+j+8=z3FJKHf^5?X`Ekf48^Vzgw*~cP36QP>!>f zd{W}dH^Nv>6bXj`$R6+DHPR9r{_Btr$s(PEQ8E+bp^%r5c0L4qrCs@MZbsq?EylB( zGg-xu&q( znl5@)X*)mR0K9+6m){yz#%gD{-AKWK{BgtpQ1IUOaQ}#DY$hhi{D?eGLGsOF|M+~d zJbj0vWJr*Eqcy+e>s#z~Umh|1en>Bzt%Ca)BHm8p_!(gAK5*cWBpPI${wGsXMx=mj z?i9fOA(p*U0B7$OhnxuJkla3o#6HTN92UzH&WJd^!8)Z>P6K#uMED1#jJdbZG(m>; zvB0H^Ck-mZGDkU{`fD)Nk-Hi^*0Eedy&@=F6qJ!5Vf-C1#K?yxVI)3!G=$E>qj_7? zgdkiR6}=8eQv};92!G+1i#jP@G75gsdL&T(L`rhJxrj6F224H`)I7J>6zFF`TTfi` z=sOl>zmw{tP})jPHcpl#B&4&bV7}ypT*1jv$$NPU*Cxu&A*4 z9xwsFKO&y{H7;P+q36g+X(61(ql>QJVpk2qr^RJ@R&J%NB^ zoX`Pr1i%r3vD<*=bi*M%o*=kEjy!G{Ib=lej`WwbX-C|g#@sO4=u||EfAh4wq+vRl z0x*x$6Gi||G6E_576GkNzsIVihcK^@c?9>MD_7 zx%K0w?)T~a@42!u20*)2M~B>C-(B9&`=^67l1+09 z9%P;AUa|}p1BVJYZ~{^Fo421b_jc4G27o$;JEPrp+(R0(s26_?mAf1XI^L~3Ytxj|Hi4%`ff*-h`W#o%!94>dLz#m* z3}c}0!z{i#8bCc}YCvOPWyPXjJakVh&v;%3QF^*Us^FsnZ3O%fPTDurrMZC{5hc5& zB@t~y6_17iO+C~XZY{)G!cTTnK^s<tCvMTuTnKpJiCvj4ppm%G z7t7u+uw{WD2F)G_ihgPW?#Qviq%RI(Ac%z+phOnbc+Mf#B10Rq2XfRRK`>h=ID6~+N*M8b z>h(0ct#$JRSpphA;h#oozu9vt=^Q5g1`R{UtzRT2$VDNe7_;C_Lpg3_z!(XbkEm%J z^hHXvhK06Eyx|?z(sma(a~E+_GswawymRH zTf5;+0zk7f!5(7Y`>%l|r(a%k&)sZU2pW|!JVe;_FAsl21xe|LfA=Xs)hbJN8aHcl0dOeZldPnl}nE*co))l zpz$cT>dLW!k?`>9cb_j`(qg)81l%frd*RdJ5pMB7X&%yzPvyePT6s-TjR7mWhBnIn zbYX@ls;|(lWB5Z#PPxH0<@Q&&(*XANsE@LFa9q7}S zVEh!geg6gTptTMC-1TbwV3(qdpC@rg#7KZw5(&NGy=T`;;e|bg^B&>Y2{ca9mm3SX zr*D3lj-5t7M_S3V-RN$uaF>tBnI!Q97;iCx|6mM{#F@BQQGURJ6q;Z`fUto@SAU?WU*<}F~BNy z{cI5}?|jaBo2dr{yaBLhcFJ*L-A4?TwjtMv}t8d@9&N^ zjYC%O-Ag+85>eo@31^tx0wSgB39n17(i1AbI`z~OPt_6FC-@PUn?nfGVN?XtN6Ba~ zc0sPBYB=5os671DGdDj|U0SF7<$bsbM%7ZkP9s!3+lfn+;+M27#Qb`e8AZ1rSTU6o`dRs)!)G4ddc zjnH`)tvHo^rU2w;E^~Nbi`_B90;k8u!Qx{bz=}J=O)&HU#)3>?*a%5TYRFJGP=|(K zC@f}`yq0)ya+n<4?8(DzsR`ZXM;fHPW~hC|T-YUt{eQjSTYf0vTjnK>7=OxVUikpW z1#|RQ%*9<_bLRUEtL1^|=L&jPhWqYfnqE|w?^nB^k#z2v7r({NxR;mLS>@|Ilv6Io z@dFnZ7ko*NudrQ__BA6z!t^uVE$6_y7U7;ruY9CQ!$LviGfeE0hRpDqbNKhf*}X!w zqTR&A1uN3w)@V=wcq1e#-D(hi9nAL(Z{p|bU*kCFqv-dr@QVbTs6cnMupFN_)+vj@t4vc{EkNHg@LNLGTMo4+ahV}L$~cU z>s*8fhTLMEj^FOEZK_DKBLo~(9>$46p`F@pBPVR{wC}Kpn2#_j;A^IYFZdvn4CLAX zjesi_1S@wgIRe`C0Qc+ysV_}(=oGT94IGd1y>meyL-{BmWC5d^w%dWbO8;tntyB5! z@x^y{hos37)}(vsho;Pf1&6oDLcjT<3=)64tsWCy--U5RLRr&gBL@vraAEwM8wJmk z&2APBk!weScjT}O{Z{G>y(bqs1f<#cZ__HBH9Ib~LKi zt)HO_c-o}ArD6VfNxK|R;oIAAf9_TBw!c#jNzrZN_Ud713066h8%Qhmy0#{+1@72`}#zh$z!qT95s{HRryNnBj33RC`n|kIQ z;gp7nvEkPo=hiw!4!tzkG^h_Ch4ugdKmbWZK~$ujG!9rE@HMn@KCrefHETqGc~$_y zTq~fUbT$8$cTAfLe^X4VxL>|r^>{h>|4?XAqsrCpCkQ|z2=xT$tMGbC$94z8yC7-r zPMbPxMV>Y(BMq8BUGX^^9z^5>` zmu1I~N}4w9W&G}KE?M6bMNdb=OXaUjQ6>q$8U}!08Z^J;iP9}asG;LL{vEOc;{v{_ z#mN|xFqF5W45r~~f7$Mi^qp!@mfb`yVE~ZNE%MEUfhEs00KlI+--)oC?6lC3X?P4B z(vPu$OzWd+h-C?pLmA_wXUot&@|H1F#xRiO_04_v4q9eHC_S-2M0AwA_ z3Hs3=sb2^eKBy`-8|oZbfYshex_E)YRy!-sNR!iZ=b9xn!5d~e{#APIFwMS`aV#;E zJF1L+x|SD%*{;R2lb-ijN2qf)QJ~N7Z!iK_^!DUhE{_O2yVx`OaJaYh_<1b}wUs*n zZpp|`fvw0ueW!$Gihb_@9S9PrJ@bxHLSjt>OVQm zI79m~RRdmrYf)x2o;aq=`r@{tY#_HN;#JP$dNO$Ozwg8uQRkF1jY61NIjKNY==O@*zMeibX-J>g{pNE9(WyjUgfAOG}Il({7fEk6+UevpYb8BKISC*66?_Y)l_kam2&zk;1jwT`XkTm%OjQubDIo zNTHXx#4X(nTeLv=$=Uc?VC>oPxi&O%8;|3XVcY}0Y1DI-vfd>t|Lb;v&OT4+`9qK7o&w&|lRbQjmq zl5qQZRry}M!6rO15N433CQttxzku6shNl6D`}(Ed&-wq1ccRhmU8y@IF(Xvt=3r>t zQ=md;#Mh+X#-C%VOnDM#cuV)9GseFiiq3+B9L-YE*8;yIR`?&s-OAr-FAV?}-3b#n zY62|C4_tHkKejtZ*>nptXwgAh$Q$^*awQ4?@Y_n(`U;c0LQLnAzP{2_R-li-8~lc!!k#Yn}_w?`r+u| zg(-mBJtXby+J9tK0AHGA-ui~c=a-!R^_9fGfFiY^ag@z*4*#>Z-ZDCoJ+vmdg@HjG zzaTzZUvdyOzgwns;kVB!zLnN5qd}sF##0HyfuX06NTLCBJ{ea1RST zj`@7Kg3OM-D?Q&+@=LeUDF=b+hf$pyUSGhQi_c$SL_WLQ@WO(y6f7|GSf=_^yzDE-S@!K8vscy zYFY4Rdx3?y3fMFhC^oh)UoRG47>d&^tgP;OUNhS8 z>GQ?nf+4|cgi!k_tT<32WxTlf3Xfq$Gt_5~$GTGSyCBHzN%@-D@%Y~O)F7mTL!tN| zoh~-#oLzvBOs^#Ztb~|Dk2WI7sXGD=9IfjT0N^3c&_dxLtoVQkYHAw*QV-@lh)w1(@QRrdLIrQo=F0@oT!v=Q&On+J@(;EB(p058SAh*mopbymJ@(6c)DoHn=aHjF(l!?s{g+V-abo~c0% zbL9YZ@z5TTUVi!%d3^kZH9*Rju{cjf?Y#ewKYm#J^Z9w)F;Hm3HB?_ykbn5YpB8`m z{U2jQIEtWO%4*q3>+brJjb&fsZg}T#B{@ZY>MebzS-Ucc^WTq84n`tTEBK4M^8 z0k4jURbpF~*PP}Mu3K1Dm-S9Pz*qaM?so)$PHtfGT2J+!9c>oBdb_vy{w-S)aW_2e zfDVkq{^xwE{Tv;k8&Q)sa)Um&R((Rp)6W<=JpwEaDv5E)SCR23OQn=P-c|lG0*fZy zUOVRQ)3!7JE8oF%wAotBNe=Q&@fZWhj5qty74$R}eFZs_*vkbal6PeXyhJ&1?CG|MX!8_?LhC>sxk*t@zU8H6Nw9TJ3L0aPLcWJ2HTx zYBs|58%W2lv%UQj@WfUc1Kw5?3CqlKp`8GoR$f5yl)ME?&l)SbD>#Cj6qJ2hS1uM) zIZ9%czE3T48GywNFhIEj!!N7oiR--o85n+hzFK_umTzOb-Ge!w%9q|d`FqNr*3KN} zxkB?O|TDGq54?{+0FToTNcH*HAc6vl#jgmPi4s<)LT^?Fg>aV zK$%eXCqI5!oWA)n?yMH3cMt)9Qj_to9FAj{UU$unwe_pgt06vz`7&(IyR^${U+Cr9 z0!J49^wXy_@GvH{RCy<^Mn=k3%021p2a}6~YYCD+BL%ukFh#sTcLWV#6=cS9?{Sq2 z#jmwZW6zdG((=e-YSMiP6dz(hZ=XvR9%}fg5{=^4tONYZdr5r-VqcY z<0X&s)0tkr0>Yax?XBT!Pv)3WueWFLKK!pcJs;rJz932HDBY^}WRAjM3vNG0jevz; zG_dGmInzk%FT5C7Ux@Aiq{sjHv9Szi7C*=tVe zn@%HiKVAX1chZ`@#2H%Zle{b6hAGq?<#WjR7$tgwa#y+87WC_(|3j4C8}|9X;jkaw z4Y#gMD*`>dDgX11_|AB)ik$Y~L0Oj==oeqV#4XG=P=>%T5KzDx0GSRT5&cMowmRw+ z!a7Q){LGpI>Qe(Gcmg{HcW;fBC@cKTLt|e9!(O_b1l`qfa1B85obCORQARr!Y5UNm z{K$iHxdy<4h`e!Dn^+lq-yK(xFA7 z#oh2Dc^@3#!SjFle!2MH{_=S7jt-!oMR&D7Xa-LezF`?41OI~QcZKr5Lf&gcogClA z0Emte5AX>$$W+`p|Aok|!t-6f9E=7%dzV8iZoGCc0^8p5=X2chMi^Vs0Dk77JPm)D zFB*@B!uNp%mmKH1cL77)(9EnHKJvP`B-8~7e`Wsu@_v1GefzM!eY`%q{ZAh}-C*~k z_`e&?x;)O_{vVI0N1QE(c}3CgSPAGTAeKhHn*iPSTr{v^WKG$VGw2j6#+J21hN2H{ zE(O4JTWVpm+c2+O#Zbe-h7dB5=||Zkm)xM2#LPY@RKj9mrP}j3W`0M-pIeh9DImO{ zqNl_;zpUGs`dw4`H}v>j^6=9qR>Q(*TA3N1b0~^XDte~}JSy@EhOW;#0#6!AMtBt^e;AwH2N0*rY@A-yXrS9e_ad`?fpV0RlhddJDnMH|qXrtn z@K9g>!;hLyUB}>pVddo*;npvIRCf#jal%F=E%@IvDDaCu9H^0qgN|Gx+thB)e%jvj zYyYQD5+I!yuLi%Ayndk(IEa@tQpWT(oOyJkoOyS!dOr7Afl+j5P>JkOm z?JFzbRkj$x8o-Wh+54Rg0Q~y02o~MryXE^7muJo2qa?E?$YFdA>|&a)+l6gGL)mwg zd!__%3yU8qIfWAgor3tZQ;_yE_@(8lTm4j6C6iQ+$V3ehWQ*z7B4kG(Mh67H$TY%5 z_%kAKcdK%@{ncG=4I$S6aQdhQ0&W$dex}{&TP~*@I(^}NNt^JdGzxLbCyE|M^aF1z z3{$@;5*e+WrtB;7Ii#G&^Z?Hp0sHn1Bf#(I0MZ7Ik^k1Mw`HX{peKkY?gLJ4p&7Ov zok-i4`BvMQ>Pe7|0Y7QS4{kZJHB@)#wzLaJ#g|2+%4= z;d|;IeNjSY7Mte{c;2#B!>Rjw#tI(jgFW1@ISlZ3zuwXHW+g|8_jIj}jyJcgnmb}b zh4Q%#&`1mddNY?$!d6UB8`M$C9V(49aD(V{Cwa5z+hFbX`Sdca?LAK_OqRH_AU1rF zNK*XpZ`~+*a{fPpZ#fovC=@lHOy1{4>ka0d!>n-cn;YU`o3tDxYZu)xoI z!1Q-JdiUfsPmaOgHt7``ML>1gc-Vp9T6EKjWB( zE&WOS`DUQGD;43w;A8>X}?R36xMB_^{eSL)30erd*{04kr>{ggFI2n`~casjW3;~OVP%4 z0QYxgV3ac4%C{Z`sOi0uaneB^tg8rKufy%jP`r+oY@nSZ!O9y$IA8BbBW#}4|3?|6 zVfvTj;Iry~7yzc9@WvVLhOu5Qqh*emQKboIShFqUeA8Wi+W-QKhSH$vEcEBEButQg zR{F`)h&V`Y+{3RtDKy*l>jOUuVNCbU1M)Yz8hklNjd8o>JuJdePDjoR{GVpBb3HQv z&fovQr`B)TJ4ki2(t}EIUP1i^H#y7@jjJi;+IIT}A`+k}SA&57{N*ZSQ;?_av;yq@ zZVPLnC8Ub6ZiQNBib2R2PyI zQ^{m-|7d(A^E6gHA?ltnkTw7$(sZTxAx)Kicr&wNb-$2R{l^si7U#E3wU z7#Iowh9VJ83Z81HIJAXlhxYqMg6_o5~-eK@)@E!)<-2yyf}%HYcQ}wJkem z3e9P>^cYRvR%~11!D-MaG5K<|CyA@y4vmGG>9}_Mgw6aq%zyXivrPZY96FvjwtF76 zafeVlS8nJylHpC7-*xw*wwypIkK4dg2m7FNad*1v*nj| znzJM?big^eSQf%*P(T|4zBKS^knsYVZ6F5l%eNNeLL~r<0DJrlr!IjGk_t zt$1Iv2ym@lPn;(iZpWnB?hA=O}_^pNk zuT4}5@k^I9K-xxk6kkGL|IABe-YOp`%k6$V+BWX{zY$Au-CHxe@eW z@ujF$GWngm1Z&Zhdrx(VEd^=ir8q&skV)uK+u`ekmLQ5lVi~JEsMzXf0r9 zlhi92(@UB>a}nP(l8%MJjUbrvw*;mifQp+S`O`o!A)_du5Mb1gpR=tw#ahXq0Kf24 zC|TDwLh2tQz(YyQ(jvrQvEDJfTpV-=67EUv9!g-wRZy-|-SiDsJXgz(40V zg&zr5>hoCArf{)-=RQRz3*)E>oQLOtO;5war-VuG%7SmB1uidVxSx8~T>_`3z3k~b z+Ldii%!MAo!-3HVQu`oewMsv4-6H89Gb*$RcpI4WqZ$tkLQR)tu{hKKvKQ=W5Iu!9 zmD2#G7o16K@|co|BZj>^9DgH?i}G3?eg-?2yL^G^;3r1yXdi(!k;=P+&!7d`{#LB* zd$OEf3x#bM-=j2@NlZ=kQP!@3=~28^^x5i%{IVRB(_bYvLZX37|0-P7&-bW|cHfcJJy>J=S%DPf zmFu|yKtR6W26w7MVbKjDfv*69m0JopPzYLB5D!>p_yGlqF{rlUKSToi@k}FrC1b(F zAQQ6UZer;6Pa@dZB&G^Q_oMsI49k0=rQ!h%ZC*`MhXcvm28V2-2bwiv%%#J}pom$3 zKml8Bk3V36BgO@A8J$SdS7Jx`*n5J3j@Tk{j1?&p$N+vcNa5(I2rd>q#MTm}z{mq< zuAs?Fn(F|zUjksf<&Q;#TCilD+c3o_l_zv2%@W)lKVgJh$RIs@e5Cx+fH(-CG6HIy zLxfQ>ClB-C=D?@mFF2_vV5|ev!Cl%x+T!cG>2@B*F)a0=65ziSKVi~?!3b~x;{n!E zl|cea;kv{}1I#PGCV(r9Pa5{BTvM=SG$3K|uena^5j=tubvr%`q+b=H9$*&UO1aEr za*UVheRAmW=Us{75BE;=rsv2TlnfxM6_7IWAEAOn?|6j(yo{%$kThkWHn69>Jd6XF+{H1>-H(Hdy$7WkZDWCX+fIpgZ2YrG7;fQ zCWuc;>^s=SkQ;<6ztm(zsS9X1Lk>5LlJto=5rg>9Mp-Zc+fP`hPrMG{v&wJV=(22K z`gIbfX)?-f>)FfSQuOdS4h>ZLs(kHrbnxI^mH)BI->rSfZ>OG_#m~-*253pdmQ_=oNALBp(mAj`ifTo`_ZpR{yZTbpq8fR#2C8eS)m~+1~@`@ z3$2)RB&shz_TlPb7y5Xq$ej;uJZv1bHAwoFfHLVq-#T(7vB#92P(LcG8d2yG0N~#m>ux-=M=|wI9~dZXXTqw5SS%6keR&U{-J%Oz=Xlo9H@GTZ@Cg!vO;#=E`$%yA<8bW2zL((_00zhSu3JfkfzH-FdVSki^Mgi?loTUI%2`%J>xp8b8$$>r^1o*W9 z;4T37-FxtlL*)$*Z96T~we5(gxj1GUq=k_$IIh7%cW8%Sm5<;R0|~Q*B$d=3*djkm z_Rzt?-HN+nnlH2`Zi$F(x}92;nsA`yDthtj^mV5l%QqS|%9Y^HlR$=}1Y<70_*xiQ zW-SXdD{SlLbMJ5V7Vpm(rNu4G8C_TUyX)m0U->&bt?91}>nrzZtMaHksq(*N!T0sG zQys<6iZbQ8+W@~_;z!3(4cj#K(A-J+!<&Apg zd&e9BMBCqg3uE1a=P4+Pl>c?Zm?i9Iu+AB3Sm_x8V_sLx(i5=2VHPTj;cLHBeeCHy z8R91tehw=uSY14F{gtC7$wzk&IXemD1jsEvpZMJG@Bj3;xMEA6^FdmSp8AxbeTMbF zRnWm0TA7pyYf)tji%`*Pdj0?EJFPs9$K;c|4hh}STPgv`9_cIgiT>yo6b|iy)P7Pp z0unT}l;PdO<}r>1EYd4;x$%CbdYB<}~~!65^0<1#c)% z!X+IVJ4ZTVu{n=Em`VEPn&n}-fe$}$PNSq3vgV)>KM9KjszT{!rsQm`J^0Q%q5XSO z2|_l82lJ(ltV6HW_1Ff5UkgwT0=EHr*J8`UvA!UPfkwQOQ$~Ierm6GBD^DA2ZB=xh zQg?cq`XxtDkyn6w>-HL`w=2&MAK&eZ!AFF0zVs{ECX$W-F+{?r@+haMA;iO*z)H~; zZsL4L&)VI)x+Sb=nqDb?d-tWZYayQWQ5KXy%sCebx>Ii5fa9m4cj*6|Q&4{W!*Ooi zed<}^VEdzoN%v>X9BhV|2Y&3TZ~VUbaX&0`vcMEHsly?z#R^P|34BdO$-qppIoCBb{rqj?+AZLkG&d$&F2wzGW#E0^? z-GCn!G^2clA4rZ;5Sl{UBh5C-5MWRtbvW7%_|OsDwjnEbTt&C4cir2|w7uaUc+7*t zvQRH^iSILyEiL59R04h~>E`nz@I8UIX$HmL_+>o{J^OQ%`(J#=R=;1t>qF7&=b9Jq zQ?%5tzQF*-?*w7ulmTE*w~OJ+GB*x7VyD-~hZq4l2^N0F-p&2_db9X^K^tYNF^Ubn z!p`OJVy2~`?dcmnv(7mRe#%{#d>Z7bpBMywXT@`3(9Ua@=4Gm0nu&wPo^-Y?R=X)0 zKuN;;C$BjTE`QZl%hVslqDf(oV+nxa;sf7k_(U3P1!T{^hXAoHkVHO_z*ib4r!-wZ zUi^h))X%Sy&@=e|`{wtX?-$?0X^5};g9}*a1KzhZKbFO<`O5CW3Aml2`1va2-mf@n z_YQ_9e4&k>oRuDKdfPC6S?LmBG!CCK0kIxXxb8jghNd9X?SAq@YEFUXP^U2coFj97 z?3VrMUto~*R3VhGjdQ{Diah{X#rx@^7TJBKr|$faL;ewj3=zHMfFO?vesczsrDDm4 ziXj_>5;g$6|9xuw4SPuMz)vCOosj@6#Lr*ofwDuA9hM8eCYfml)Ma{gP7`pFQY!YI zG<}c3LzyXE%A&pG@x0O@wv!o4Jf1atUk1P$1Ed>ykW07HtPfmmiQ_oO=0M~Ik>_I;jD003kMcOHI%Jq0X$HC=)Q-W!cd{5ux$)k zu?%7=hvn*KG!SS`p89+8A*31Bv-$gPS)`AQPu2u&tr%=oexW<3Tu7sXEXNj%n-gz!Izcm^lUoT$FjrRy}Bk)=$pfaGzzEJ-up# zVeyG+$SQJ-{4F>?W;R{PN6%L-tNtlZbUH~Je4_9xgXGa^+S7N0%3F8C!#0C=Y!cRK za^b1Vp1g}=Z&mP|viJ4N7i0=s;Z*+kWw>8AJ^!2Qi`=?nMA|NG%itB6u%b_fk)c~y z`DqkDCxqCVwzI~-_KTuuCvM^f9eyahXXvNxh7iIeRQcI1%yR>uri~b8_!%nk;g>S} z6EUy}4&Ri40a~=rETkT3RAX%da`WXVtiL`y{Y)Req8k10pVt@+U`{|&s7e8@k!H;BdMMvTq zneV9l9qC>W_2Q8p+|`%MM~-wN_2(C)*}abcpZA-uzkXPsa)2O*|K8rO)>qCpP>UqW z!9NFU3{T9dgUu-nb%&OKWax>S%o~l-yr>DAj1O-?VC|*T8?xZ=R}aF1dG*M7wcrr+ zh~xV_bt-}n4#@GCSkE>%Pmrq9^HBb#B9)$4GaYh_K(i<1 z5Rh}AV4t`dw!%p0wj{@`5VBg0CM~8O3glSnztObx!4G+&y zDjdF;MucIC8d}iA>P7O(UDAPai@!Iy@N@{DI}Kk#8q9=8SUJAm+mC0DBJ>ccUI}L& zQ(V%;N;S{PPay+0xz8VoM1goxFIi}$oo68?OBT4{Rc1b|OPSsH6#dAZdrS(>td@trGrBPuh#p;i%qY;=bd;{)CDE2fqyv@HcBGqrxymKq zc+X+|=Cj!DNu?VHztjP3%bu6+B%_~hZtFdVUV&2^3Br>mKaT3e$U`XT4u_Ie8BoQS zuI^X)_g;8AH;%^0E06F`PXXu_re7&}6+E&b1cm?Lktq1ch*I=1?lGbmMnQS00STuO zkTyU>>)hVC>#B4ov3?p1oO9A?wQC?F%y<&scBOJ3g-#FEpX&fl`f|J!fspf~sV+it9_7y;DZ zw3CbU%Fle29iI2Xk>_+0KYy_ve20(8+uK9lZrI_#$vR*RHr6|Btk!_Qv+5>BS3K?X z__U5XcD-7)Z_=U7U}g{>P0V;@z4ga}Nhtb3*XmJ)e+e6Dg}h?5KJ+u~>6;1L0ko3GrukZSk-y4v+Meg7fa5 z3C7BXc@LS~u}9>c#z&OL2M@8J@u?(ir0zkNKtZF3t8lu7_^MLGSnlLSd@a6*48epS zivD;88-5hHPMKN;268&pyc_0*VbOd?I)Yc>h#u5~+aduD^C#h{vXgt#(j`edajg@+B>TcJTfZ%T5Skz3C`4TwK%NQ`VgAM2C-u$#XV)lf8=HxXbzKGTH=i@V0ak!*p^`yd@*k2( z2k|NxN)=-#Jtsh}dGHiA>7wlBpE%%31Y58QFLj5INn$cY>V`D&>*0QR3D(cMPX(bp zqRe~Z=*3RLdbPjP2Yw5n6u(A6jSR?~Dtb2!wE0gUZ3pfLbwH_c0}{9{;mxome{;UNfWd$z3?qomzBeV8`f zZ9HvR9Ec|$1|5EE>%zpZ96ZR#yhy?hQsD8|X+&<7V;3&*@XNbTM_?x^j7Dz0qYtNcYzXVg;iL6%4J4eA{&JH89Wy`2-uK7UGmO}edy-(KI0i{mhNmAjbG5+IA8{v$yt=* z-STe3R~Jn2#p{^?uvq+dvG~v5FAm}{Yhrpmyik;6G2nPYPKG>ZBoDmSb zLA{ZEF`MVW6xL`^AxxC`r0A2|(SS5E1gP7<90s+)^|j>mxy-Mr{AGLpfUi888H^6d@fQf z#xt*uTVDL?TUV2=-{UvD>oF1#856RRhd8r$X_7(#i=U|tf9Mic2@=Be+WJK}SisP4 zz!Mi$<%!Q4026JEJCJKdMU)n53bx!lY%~rnMu=%Xx>OV8ALXYXcNRVk42iJiP4#2K+-bbhw<(D8HBm@N-_LOSS_Zi z15+|G0Y9jB!fX7>3at?9si(E#jZ(V{+qFkhNuOfL*Kr4DlP3UfdDJ<04_dP` zSR(**7>Ghwl2K#ok9<=OXd50wncLo@mw2jwauQ@tgRJQw>r?~44(tIcnIw{5@-*MP z@{HTJrc*Oj}EerdP z&fmS1Sxy4n!Qi*N{hOn+%{f~EncH3;YN~qL5GFf)IVyuQh+VpVko|XzmVf~CqCE8l zLBd#gQTOsq_Uw{aG~RN@%}WUmJtX+}Bf$u9o(?-^wKZ0&mYcVwQE)g4;Ca-hX>O{# zd=<)}SFLX>X&a7tIHYdna&iJ`f;0v4;|~t~)N1ZB5KN1p)va&0>6<4R2gHwp*Lf$m zp7e!X!67OHf>AkuVZk^_4hm|2pOLdk%<|UN&+&?fOk%_2wh@Mlhi?i>p3osFXc!3d z>Ze$S@*|`6(|?MO8xs;KRxsfzD+NM78wc( zVJkyVIqRQy4S-(ba_HItMgde{QLaO=rnsPNz8>+*Sz>9g>CM5Ib`}{piO$FfGNZ@} z+KK_Yz|#)*dlK7s_@;RA88n_!DNmJG1ZtH3z_Z=*E|)AWJBF6w z_dzl8&#)s&#m~SqS_-auQ5HSFs#^K2|0zJni*W%iEU*Gcpxo_OuNtS6pZd2PDJwrw z-r%Y6=~wbRNGCmcVEWY>rePf076>=>@Rd`uTb_A#34869P$CkUfm^we5jbG-=`;dB z8iu9a#b5V4O*8e~_};o3*3T&qJyY)c&Cz2k7W3@qF3p=+vT46wWn_|O3GcM zrt6HXqTpGJ040@_Ng|79jZJZt@y?bXF-ik@${WVqxI|Q&qKpai$9YL4!Q4(l` zsI!2W%w4w1aTGaa1Y%LWj9+P#Fm)~k=CyLXB(6hjhEXB(aG~)`QROf5DU=X_fF1l- zVORpvA{1Xblw?`e?CNHj!pj~|bf!#&lr?4q8Scm<;pV}u5T2hCpbz3R3kIEffUg$E z3<(@zWwW0WpQ_8`1Kwh*5x#}$vwIn;8du>*4U7Ohp}`beZVz>5@qM2P)A8^RjCYk+ zN@Fq>Y=lpvCp{L|(Sqp7>mIlHOn2okZJ%G_U3CxNd zQ2-49=0*?G^9P1B%@-*#1YFVY9r}=p2!pF6M?N$jkNHdcqW12moVgS{X;Cn=8rI$Dv|e4>>lOq7xZEP z0Ml>k?dJqMd-#+MKAmpMns>qnw;gN;(*3}X@O6(8N+U1Zag2EML-g!~Jxx=dv8~Tmp9l%D?1d8lnQ7Mcw5~-nvU?u+5Lo9v@82`Y?HUvJXh7rc0rd z{O8C{Mx8JKu!{8qQlrr*|EybqXU#Whn_x%u*eD) z&%k#C$$TNUHZ8M~FfvTz$h+U_aiP}1Jqr}?_}nkw?sH4e@_}Vz%to_(lLc6CJvRWp|9-Q)_`~LC@hwGKK0MwYu-y+9Cq3r?#s!e@C=K#QtL%XqtH2ISGVp%3zjIF5^-S>V6L=wn1Tfj>=M{tT*3%nSOF^W z6{3DIDkEhupv-l|7Lp^vyYwi3;GrT{=-K;n0pMHqn`$cDvTMM(q-+O-s}5Nx$cLF1 z*9uzdF?*{;FC}#}q86LDe39nDTl>K@2_s&PVrWe?^;W4Lt(Tf^zFe-XNfVHGIR1 zg-H4IlB)cQaswy70ZAb$oS||B4@kyS;UC31VB(k&4(Q@2l~)!G(Ti~U!ydO!7hWOv zv2flQ_ei!{0;k{jjUG(`zSB>G40QDFwRL|o~JV#gV|9t1?Q60|2OdY zB|Pt3s(4FlhfTG1{3g5c@|tJS!;v<~REnRnWX_*aJl6r#XoWQOhA%05_QqR}E<7da zO2z!@CG-oh>M8HxA@Sh$%2S#?iQk^{_#GA`tz%g>1|G4++r)yu{^HCX17P^YSdk7I z01(Y@+UqVptPuc>0QdjP|BvpZVW(Dx{B0}J5&m)UXr30;yKzk^k{M)%meg4kxgn{meUkTy|^GX#+jwFbC#uqf6>sbe_@eFgc+47A*hm2BrvI@;-^g@*3)lB zUD3f-feax>e&|~Cu3rG;NqKKr{>C!&4b5?V!;b&dJO(}s^w$s9XOHU-x96LGc=Nr< zKf9hA0Dt#)o8SEH-#+psy8FjdHV`Uh9{4^G`w`e`$M`?r9(KqdBH(yY&zfP9eT!t5VIm zQ8}q$8weTr$xR5T(6#2%V5|t<*PIP-e}O4PdJmoxpm4*FkP%=Tl>Z+;Nt1gRtmg3@ zcCy!_@;^rSz5kZ4Ny%Ec8S$t>S$hgkO8=|(;KefaYt9MCf)c9A5d|5HofnIvKW0>B zae_Omt7Sx@%P3AkU?b#K8GwEK6rQ-^-otziTqDBfkp^B)ehDYF^yAVwzo;Y`tm4f) z11An?xjo25OeN)n5zhL7i6dC(y+nva$bh7NP5&V{OgVUTUcsTlxyPI&sJjx9;-bLM zIRP4L#E}QwM;mJ!zY?Z43>x;Zz;!pAl#`=8Q@8alRJx7J?ENzg1ozMXooj>%-FEyE zdK+~3)q|3Pvv=WFdvtg38#L1RQ7mNvn=}r8YS=0i;6=)`LP6v+t=_&=3A|C^cWrV~!zvovr`WwWAdp02uc6kV(-~&Ryu6IyJcn zRE>MfQgx;uC8=vTiZ{2Qsz=_3Bf*B-N5}7a7NFZJzoVXfsp$*b&(<$SFL>Cqzk~Tb z5KFf*O}}(rXghc8kh#o0e?Nyi+vg8r#ka(vesovrwoly3fPoJQqG+iQ3j^IIKf~DO zG$J0c)Kq94&-8LzztlhcXgUQmFRu>66WYeF2{ycaAbGio>orA{?}1ZRJ1_JU6Q-tE zYeW_7P}=Y@4!_)&ulWI!@9P{3I#%%XZ+=+i4u7loAQw?_ z$lqSS%Kzg}kBg5V{30rC4xV^$(40@4~#nk~Cx(+kkS!x~X^l zc#rZ&Z{~Bq*fc15T4E8}+F)Ncp8#eP8U_AHd;UmI|0C-TF4&TNxn7|S8JDNCasRMf zUhm&6?|*as?(rY~!*@jeJ9FQ;DABWP^V{G4cKtVh^EYtmudg2;zk579ShJv;FAF|C z>>V5*-Y)kJ?yyN#Fy}`)`yXKt1_{|2K&K8ycdZ>G0egoKiXA9?U+F+;Q_4TgEzv?G zKXhTER*1`IHWHbN(n?uQ?{mKXfHB7m6_SCpih$(jaK&CsPUCW=xG?={PMIw(Bfl zSI(nmFX}!9z!~QRWXPX1t)2RuFlP{OPJl?c$`l^WIs^SIR*Hr<%PWN5`gwyR z{;4-%$-~5L+FpnN!Z^IIAyFtK^Dw-PCxQ{bIx4u&Qismcm^%$DLv7-?g^OA)%N<;J z^XVhMTbJ+FNnMj;9uQOqeCFLT67UJUdWAOJnh&gf;0T5Apk=HG5rV*09tMIcY#bB} zeke(uyS%1sq+_h~q$r2zz=rA3xb5x`rRRAFE7H=AI7a!q?&R(1X7Q_c`-{K&Zn=2R zX_d7<8XmPbO~4h$qn&-bTAaOOCH;xte5bdHUnzQ+4+NqBV#ooejp$b+Z?pq;0fXJ* zgnZFY!0UGS^ag49@heY6(-)2+$rmjxH^kO(&muwCCqsgi%@WEPs)`6b1gM6OpV9Sm zxyNkv)!1{yN8Sm;WKpkEb>b>GR3eM2cNM>1%2U9`2mr31p?0q=Wb2xTsQQ{i+Fdz5 ziB-%z@oB;gm^fCuzz_;=k2L_eOSY*5%4n&5{+ElJs|yC%X8Zh;xn;CYEI1C*tt`k* zhws2+q+d5ouz1dPXU2bdp|%N<;{ zaN`6{0S>@_sR1z63owFe+&UO_3Okc}e&AV^o?*0E&FR&!M?n#)g`C79EpKtM`&f3tEZ#hVZ&L=l+X&nBPUfgN- zX{$p93^;ye030kI7+s>}sq8uCmmx67N$D1x(6P7xk56R%k=FhbqYFP>KkQvRT&yoS z7lL)4H!K7=cs%^PcmMUn<->pc-8+K*`>x1&WlfT44otw`{qA?`zy9l+2Ra&y%bTzJ z2y;oic*Ehcd+*;b_s`E6e%NCqeSL$XcSyqFf7g{_!jP_&?xF;SG63?z4=Hp*aM6I5 z!!|jNHVTDC3|Jv3(>!8j+_UCkouShrT$H^+6DzQ$0O;A!J(8gM2UWlgcL)1_1dwIK%apLx$ckdT^I>0st^RYH#1X-t}nvzQ2Dn3AS{0RlO}0X@RU35 z&Rux?L>Al(o@w1o?lEwcP<+$17kRS}Oj1p*QjfPMLfS)U6vCYf? zFpcCHJbdHAy~U$I`30pH;Zu;8d}lD7vsYhY{exreNGY1>X21^K9m-rVck!xas&^h- zRhNk)AN$w&beVXUtE{>M6rl#EBLLp6g7)Jl4u|@svvZC^J?BuXUL2KeX&L~o`saJ- zha7*I@6`kI>x#u!+TiobkFiFzJ5c%DE$A1h5A`J&lBkXKGEBiJT98o*zASs3s3;Td|^W;IG22~hdhT`5GprCrJ1r3gnG055w|_M|-% zL?N4A^^hOtlB^`Um*vDg&whgIFq~mtxnh{TsT9)~SLB;G20sk|M*xNa0K68# zYG^S!#u)%Af880Ow7tzPs5g6ScR%r>ZNvZ8Im)BAiLunP8wJ^n}R^;ZtL&98>?;dMuK7!JF;k^eO8H2TQf zI_8!qHTG5hx*Oi|El=`{-kQm`!BfmOASh##MEP^fuU*9$0M|S{bMA%^!x7&f~TtL{)KYsY|oLEO#-vb@f$gqhT z6YnNm1X#jIyfOmpIXHi)z=aobRnJxhR~E3sxfXepzXx*IbHBkV(6n;c!uhH~llgpv zYtJ2Jh|z{1j$Gy<6KlnagNBXJlv-vaoonJ}E0w)B1oi{9rG+Ual!qDtE}k+SVJ4qs zc=nYPLzgE$L4%)?js(XY*ofJ|Z50XvuQ|*YdwhvxnS&K!D$q9HVrI)-r8CMFHiyr% zH#^e~x$37t0aLH0M_x`5_+4|?F@zs9vQ&z^yP~{v)nG{d%STDi)a$Y?+TDKJ%y4zN zcYuH9i+PRwI)*Yrd`*{uu?QP64G*B4J3sNtpJlOpM&Yhi{nopN0f_;d?#^U9^|EH> zcLXIKF$R!;y$CRCSeTZ|VI{zqjAZ3}00OFH{pLkh=}0XJR)caBk2vy33NW5z;>l-D zhpicLa6v6a&47^PPMv&1sMbSOsv5Vbb*)kCbb2>*x#;%78OKoU?bs?7Z?~C624>x8L>a5danX zJ#+9Gp}?JTKsb#VjerSnaaTbkj8dR4@-eGqx6QMC>j^#@*uilMT#*05qhL&{3K%JElhXgr0|M-;W?7myDven-STwy_>+c)KpOy#bk&D`l%L!f z1KH=#9)FF1ZtbR;hoj_Wl}!pOuJvoD=KT1Vo_-*`6H4fZ;`!a|3we z1uFnG15reQ0$R`%*7tFBroKur2^*`*>Y3ue1i&3NP+2&y=`gGYfM*3Xq7T3{0`fUr z7dk=9s{SM%%bA@ZS<&ojafjSv00b8o^kEgkKoKk=Hg3=m{YW{F5_YQ<5vwdCbL-g? z2Q!@jg*}amj#kYvnLhs1T$tX5V6?vVu8RQtrxE&`UuF=$Vy-FNJWOyIsm47#y8x2` zKtd>k6iUA-uXZG(iX2eCkLUb#o`2lbqOEb8=#-A5I?jiOeNva!G4%%y>1AUubu>py z%5Og65M<=FDSaVRQBz4K0d%-0zry0h-%8aaNBV{uZXq#DMtV^|4kLj>`2!#1B=rG8wX*tm+f zJ^wsI4}NAB-cvp?_`uE40B1DKBzT>d68mQkq4meiD5~ksaYd9VLn1}A!)n%7& zOxtt^4W>{dOg-eP5sas?nx9+o!?xk;7?to@cA&u1`5Zevf0h3!qXLB|325-CaUA)O zDaFwTx3B6A=luP=Z+ibI|4hLe6*=R0w(BE3yTyg!!ZZYEIV1y6!!$;KUwbU&@1az7 zMjnw(PE9-K?*4(vTbui_SwJS_Hex{r)OXS2I07U zvQ+tJ$DMA9{y>v?V6ft0dAz*;$AA1sM+wH|qQAfHY<#|Wy=DNs7`TB4x6JIY*nl1^ zBPVu}mr7a)EnA*cwtAbZnk-#Q+q8l;0LQ3mfVc!Gx-i6*Sd|paAa& zQhB6r&%P>vzzSO|IKSDf5R(d_rOF=5m0=AM)YQrmK?&dxk(Ay&C!h=v^M@~jKT$|a zcHz}hlYjiGv|)1PZH{P#yX}n~GKk_dgcQ*V%}Hudi*X9@F!jPwJS{`*uZB5;dAxUi z!l*k!qrC?)`Zdpn^|L*FpTQ<)Ir=wGf0~Pcl_p&p1HRXw#gSvA+4}5=~}sM1E!q7 zTuj$%0aQGEEMp=|FrWCIaHfG2R5?38uX$=&Xwa~&>4;SEqMbDLl$U2r)M6%|Op)Pv z@5)?^RryKYBHJu7bSKP`;pGidHlOQocd(rZ>1}7haZ+#H!t^Uimh}OT43XV?U>25g zwyTj}1S&(R`DQu-*2S;t5pm2-GA2pPR-`@YWhfUP!QlN%xgLacgJGPbEkb1rZAFw3VJjFBhYOIl$xP?dL z6Y&ae;#_!#&eA&cP74T*yC@D?n2+@F**OK~EAV2L5vFk9_sKP3ID>b3bHBN}vFUI| zZJ6!~8(;7#^ky(ZWUYt%4LBoUBUTQq0(A{oL~|DP)ku<~NhK$<5F3W+ku!5N`_L9% zh+Cd;^cMci$d6!P+kO7-$bu(nlO@yPog`y7RGOB8_p5z27~3>lnVx<+lyo39PRTSp z7lRYtv$I&+i_MohPJLVFFWllCBI)45o$8yOlOrDTYhBToG@*?hYG*6>uI+}ic9^){ zW6pHL5_aI+sJ}bT0i+RrWJTkD#ic~}7hTKM1=}Kz(DFx$JCO2=IDUO7%AXF>9;XDV z-_qgtm>G4Q)ds~P1Cn1cjZR!mmGTh=;k|uSBZ-&qpD-dVcT`${!*qTbXb2un5uBcwX`DcDQuR5?v-LMm4^t=h@?w7Ba8tPnSFr zjwT`8yO*Wq;$fNVYFLvSTxvy3RSVjT$SH)y&t5ch*rjMyxT!2N3&o*ESdFA!xd^|F@+8dgi~mc3NHx4* zv~3Qp2qxtZu4M#_HW5PrSoof(CT(GpMyKNwxE&U zKaBu8PogncVtUHL4zW8z`v5=IVrjgo|G5DmU)H!e9SIVu+tFY$vv<#}e!waX%)@{B zkRN$e+NL`W4QjB#Ha~6%qy90^uJb&fBAXJ7a)5)b=`Zv{l0u*!5yat!AZ|Ac?`xU+ znO|0sxqE%X)cXblV9%}hnBklNNYl9WxZf2+&i@tH&lv!npmosh#mV&>4hLfM$%7(c zbF*A+zJLrLKIUj(Mq3DqNyQETL=SD6UBn(%;PN*`Q*pgS^PKAuGq66W}+JR|xD!^x0%C=W0de9{9>^!OQ;;^fDJXgGr@@6MS%y^5B`oLw>< zLDTb+@$z105>V!Fd`Ggses&m4X-v7>0VX-b9rE!-3mmrlh1f^(QEj zWQ$MDAXS=cmBhd^f#*NTU=DcV9(g^1{+X}lzZ*0{8C+EE^@TImkLV75P(+pnUyjN^ z#?X>cyc&BFF@}NVv^*+k4AVo#(%tKx#c<3MO-G+PWJUd|@at=o@CXgWR;1B+P4mBI z2g~&ppEK3umT@t+T?A+^n-hE&2T0aK)}pXf2V7AUj^P)B@}yZlvYyCoVmZ~jn9aqp zh!wsh&MIb>`(Iz*v7-iMD-1smQt_MVm#nhBa#)qo0pD4T#CjT<7krqpO8Jp8diH=L z5W<$+_WoV*f9O{L$2480CoCAWDgG}7sR80bzbvwnpCWAQsR7{UmOX7xcl%je^C~Z? zu?sWI_IgsmJFh!0#S8Pq$;rRz!WsMr|35Oi;sU?!{p-g|-W|QL2bt(o5<0ly6?p{4 z3ZKL+EPm!T+6nY6+Rgp+Hy0^)3LXw2bR$Z@NDg3882`yZ*!VS=ZO> z;$n++uhr78_xZc{?-KTQwZG^3E7Lg}KRlT|{q+3z*@1F&cuHHXeg5*Ri*wUy#LuVv ztjvx93<8<iz|}&Onbg!cOEv*^6})26WTBC_1~@3Mrb^L&H(73I|=0M zio3`AH=Dhy^}*u@dH`qGFlK98U(H0i$*)Z(k^u5LX5+sK0JkvS;jd!+HEtdbMP$Tnk>6jZDI0Z+WyhJAb=a zpPdGlhS+m&>}|T|W5+Va@d?n!*4V|+J3u30~tJj}to#`BTJs1Y}ZbuscZxu3gC z>KCu4fo6%$oRtg!Dnxvwo8PGLOO?8VBYqkK3Xv5bu#s9SJLyOO-l4Su4P__%n8QRK z_}r~Sj!|OJ!#D~&r>Zzw1EtDJW0*sjezz#$TP#J_MSNh??@wp&ER&g@kfzYg+<%Ny zMz@e3hfB7}GSam#6MD;G)`LBNM+ag6;7;98Pxh$b)4NN)2I%+Ff5gDRt&p|1g*^}< z`xBd!e*DN*E4~=`@k$udify}=Q`69CH4jrcb|p3LjD$!x%H8xiVGHkyz0?N^W0f6# zAO!CqXyF<6QD0qMq3BVh!k|wSth~p&JANMALWjG1V$W-H3)#BnO!2gmXYX;&V+okO zkPx;RFJA+O6 zP@fz53EGhHlsAD54jWoWHcirT7|$y_Fq}MGYo!4&qXfKqtSRHOzPg3!mvvLDW%>W8dzUQPZevX|+~a+Cj`&dOu98}{ zw5pYC-U(DU2cVoqjiK%gs*$~%0w?-~^TJuBTqoXW028`!0Vu@^?eu%dhWw_-r!v!*l-cIEnSg z*PNB(6xTb_r)YAWOk^y}!d&um{`{k(GoCeeVL1^s^4Sw+p8r>I-8mJU8Az8TO96H8 zdB-ULWm9_;6Wck`*!istIAE}E3e3D2Wkwy~h&&(HJvrO5kBzQUe<=qVOlH+R?zdk5 ziT>{2sGZ-C>zwW5#9iS$9{7rS@{%&TI^CSybLB5gX3bv?hWS5X=U>|K^7zb#{C9@_fbBB%-XiV4?NatQ+Pt!%ZDG)Oh!B#-k$T9*0rr=3Kv{Ox| zC;*rA&OPlUZn`Jn<|_9D+|s!E0cF0WK-0syVj5^KH1XW%_9YGQyL$wgIDk9FTGy;1 zpd3+g3iympKz+p7RoXlD6%aqYy0ZcwAjlv8jD{ZNAcBkV=Kg8?co7A`GrFU$M==m* zUuu$(acJ?Q&<~h6g(`nIOfQ!|XIUXI^UKD-?8^@?-#q1Pi}}Q3$D}|mJXJ>~o{o%4 zaqKzvQ7ObF3OPvLBlx3Hwv2)soqu)i`lqp0tunE8J~7yVt6bU8C;DcXce{=EaRV1= z7<5dRX+DGjs00&DrFl5xw|*K@dA2|l#Y#+(k=Nlt-rz8Nskz&sr6Cpu&OCGHu;<&I z?mp+6?Aa&>u1>=c9*@Uf=%eNc3ijKOw|^m)I$TA=`Nmii6fO~jTU$-={@7}#-6W2{P)LC~U|B;=_ zqb-f^-V{42i7|`XEbR@O3KT%w8@KmfmGg_k@t<9eyV`O5y_@no#tJIP3%deI}Gjc?m=0-W~j;|_uYYYy(Gc{!=E+VjH zQe)>Q{3n9^$fvPe&bGT=;FK~K2F|wE=M={!_)B_!?G5+zh>xB7CqLUA{nN+0F~BOg zgDCe)`C*^u^dec-8cM4-y4um(HotrOaP-wzcSry85BEoJ4$t``Lyr8tcMbN-+FQ;zvL8<(&7DO)7lS?09aSiI6%SVsD^yLR>}qqkIuJ4SRp10{TE zlnt_Clv82sJ z`tIuf_~s3ggq7CrXzQfr9iJk-XMGRp-ClDOu*^~fl%j_NAn36>wN3@6M(#C=jZ`jT zG(Q#Iu%LY~lP?HjciLX5^Mf4>rqhRY6&LRb$gvcbTbvsDkPj@`C_2b>?Ur4UX;+n3JFi?;L8D75nJz+T z=*+p?5TP+MJo9S9O@07##@9+}npFVYE8xiiqOT5~w;5mtT3P)V3n@qWpo1Xp7>LWTy0b92h9BiaX))QlJ`FXA=7viyaND*q}9e5nH^$~>%mb2O{+lm?5DGauSO zcBmgdQ$BII6msVcXV=WVMU6m~`1CkS3P=SCg43_}H^W$2&5fjDgs+{x4zD zsBj^pSsg$|-SBr!v-6G-J~MxD->}qRNB@pa{|frojIg@%7nk~Mqfg_1M*Xu<^q9wUSBuaZ=^<=N2={+H$Z zbkQz-d~bV`Rx;W?6DuB*pQI+dnZJ`E1pgBx1O^q#4MEA{$baSjrB(paS(iT~2pT1e zv4=LWlq-~N8=Xb6{!KAWF#wi32_X>pjd#ms4yWwfK4fj5HX zEBahE^^pcAo`i|3J1iLKk0pQ)xJ%;sW$gv<>yzH{=fyr=%kGST1FtMYApemKHk!Ek z&yA@rfxUWtfAq?8{wM`L^ErP;{-oV2-|txZvOamvpXqWKVcCs#-z9(x&iG$s7Or;s zr*pUMbySa_-y(B4%MUE0eB}?j1JAVSRLbS<|B-unksZmGJs5e={ay`lSOVapT$ExI z0P@o=0P^HGD;B#e21u`|o!@Y|-#glXcfi>F@6CWa7C4Tt9sR#MyV(5V%TMw4*<4V| zNWaDYT@--5;J@Wt0skA{3i$B$IT4;b@YOL-0KoSH*SWZzVngxSdmM3)&f5X=p&Of zRT1tqkE~*WpL#-`AMRD=T0>IElj(SvKz#BiLzkoDR|ssFeP9Dj8B^q*fGiEblXW+B zaU|8R1iGZ)+81pjojh+I2}s90%7#HIKst^>6>)xTCe1n1fCe^5wvJ!@6MO>5+XqgBbh6Q~a_A=lwQ==Vc!3v+$g-3ZP zOouHW2|rt(v~`Fj<;Nb|*Ai19@;e1?3n`K(3QTD*&0cmP%)F$qcv0@kB|VGtPse76Br()P3rh+KTJZb1<*L2g+I>Pe42%qo`+;r73Iu%Hn z9%-uR=U?djtxS_9<^xlZNxp+!`XZ!(l^N3<)6{|hVqR1S+jTH`H0n@-YNuSamuZV} zDR~RIjEBOvFPX^FE4UeE$k{Y}f(c0E6>qf*6^~%sDpOQN>S(vxK4H$p+Sd8l?ww>= z6{Uc7Fb_(B`?yp9R0ML7meGwz#*|Ns+d80JW@(jH*0AGkq956m_` z>;Gx`7#(p-W*^$z;llkQk^=OdKh@gUasYXk=C~?>uwX}IQf=*>bwnv ztn0j@?xWq1Uv2{AjRH{qw>ASruioLlIwq)hH`K=)+LLQK5%n0?{q7hvay!rE=JJnU z?VkVQ4^t7r^mjIYu>#%kkP@1`E3h6Y{0MWSE$Q&~Y z@s0qM0FB{~?@O~*Al&_#TzA;7(E|#E>+-I-da9uB39y|Je{+F?fB@QlDv-h_VZe)J zX>@AA*#w0<3IL)Zi8C7R>im0yp#Jd`LJBcyB)mc)E&fMHED%t{Qq`iJ8xHuMF@&Z< zmc4%))_xj3-a%J>mcUjcZR4GYjLXDQpou;S$Eiaw;nUF1j29bwJcdYBn$A>$&W3!_ zi!_pk8S`Cjd(k}^=soG5{6Zm2On_MIps2Rt-BTJ-ZNsPRS}JtlRECtviH&(*vQYJPnjylJl@*&A~kU4MIQ1d4S{cZ&B+XW+(j!^$r-1Gc#xk{&^^l{ z>>m8v9ELG|%8)qb$0&7+q8?yLr=K_S>6>KGx6>}V=FdZ?e|qN4md*lzkAmRnzx*bf zOirHaWNVb}CU9m{nWeJx&lT)L0kETYl`P*uB0dk!XMjh|thro(_;L2h3x3YnuVd%$ zz8yFArEekP71OnL>KXYXZ!TA+qvsvvUfg*06aeCG1C_Eitlz_f`IHA9&AT)Ko~5$~ za*}~6PCdTmp8p#zt>ddRYgBHBy}LWA6aDZ1xBc?@m%A@I!oTqSmn#4x0zQPmcjTCS z=Y!bf%y+JArx-LPnbdxk$_Yp#kwL2N#Xx`aRK&7e?0wV~twt1ZyVVDXH&o;o!1i1bKIHvCjumM8}gN{m= z1#KhAsLsS9NKVbVH^d##=LjHJX!9gKM@`$KD}@uhnrg#U8XQ5n6rh6P^lnCVhJ}fu zQA!1J23=z(YJR3ix6e|T+CJXCOo6qr{sQ1fQ}AI6BtH_>m>A6?WK>VwAm>28+S?}juGjMu=mHQKIT_NILc)zUc z2Y}cJNY#Z)X8+yg?w30rHY}z^0YKT`95Y=(HT|p1_fP;n-CbP#es_O%y}PD`Ifn_$ zn*3+xgbZa)hDpB-UnNp~qUm8ngWn3s0AQ8E0kT1@Jfojp0CdlJA- zr&+vw8qRwzhm=cCAv#hL=P4))IQIl3ztuAL?+M7>1cbqBw7n<5^V1P!NZ1*xL6!o* zZGjY@o&2f0P@$iWoXV=kXs3V8UDOJ!_R?B`6UNb#BdU8wQ?-tS5EGwu*1F!0LRXHF zHk@IbA1iKE-pUJqXEXALyfgbEfDyvkN3t-^4k>YssjTo3dKm+iQLl7bwj?=Ahh(BDBRTTi%TwQmCfl>hE0b2dwjNNyb ztFVc$neDgiq@3EX?}d?xZ!-!1Eglm7`w)>Z&muo2KKEdxF!hOiGMZ&n*p;W$?FlZh zp47?M&0`-uO&+liV|)juApR;JhOHJvZ!=C896)l}Y9|(c@}^t!ev83UdO4NiYz;!T zGJ>aVbSAXgJQM(D0Bj2(z=!9PMYfa99JoB-I=}a_T=BO3%_Tp?=C>&9MV-xc=8U~( z8R6$T-{m=frW}~221i8JZFvn(D5Es`%3L1mX79(z8}~HWAwl!3lQ~kkVvdv{zlJ>f z&fr)#NRcX`L6&!{@P!2^uG7^Pyqgg9q|AA?)J?uwwq^{4@_(GnLr9i^?m!mLI&S> z;zQ{SmRYaZy#>lAgHc?vmch4uJ;&!Ig3S1kOV7y{4h=X3K&~(|py2vs;|EE#;~{|M zl)_qOb-@O1q|kh%tTO8F##hv%djiy>m{Rk*&JsSnCxA5;*mIP|h=iichC?@$z>fuf zy*WO5LovPNyr~`k+1WNzST$Wlvj#BQ>MeNe@)X4&g3l%@4s^WroGNow9_zBfbwsJd~+z7BPtmrzbG(P1pfxCaC$0Z&QWcqpn;~-BY<%c zfE+-xgE5Hsm+1MGk18wQh8*QU{$~~@4TtQ&gB8t|VlvvLLEQLw+Pn|G@ZITJfXccI z+wm@89RQfTz0Vk=gHL`2ogoM2(VPZqB?0Oi_ICXBu@E&+&(S}i$hWETK?c(f2rWA1 zqRUv)ou6W(a&5LJ6v3p`k1)%_B6Abp702`}VuljzIWdmnc%m}WCq~oC=?xzpbtXWW z(}Z8LiuNm6mLfG?aq)5Z(-`08aXmHpN7`UA4J(>+I5Gk#Ia{Iv!1qUzf7KZ4S9uw6 z_*PEMCpSJsIS|(#+TL#8`adv&+RFiIa_-4(Ll=R|#6O1&a z&Pb7<)}?Idlm3(e6r7u?W{EZ1b#h1V#%<@Ej*x~-{4pKBgQquaF!fR&_d~fPkad4VMOnS(9+pcwdhN=c zIQP3aqxF^@+OKJUuULkHOcu-U^+cPVb$&+v$9>KpyD)K{+{yj^9{oc}aNu@lr%zk& zOoFq;DyD96_jq4@9kXE55&(IcQSWGwNzP=dck|oyHeuE5qTl1Ve5MW z%#j?cz;g1$JpuMT+-P|8?8S#iJ9dHE(%B)ouIS}78x}n8-=1%1xe@U1^P z{#zBZ}WqUPNu*=@5-McaAdFzOjYz`afMH#Q0c9u4XBy#6MYFG^zSGnFAWfw#E+P{_+zGPM*QT4Wjk*E-}Car}G~6iNE%@ z47ap5-nU^7afj{$|HB!s6TFq8LMXO%OWB66kva5!!wk_a4G&^&c{n9VoUZ-*l|DZ- zqCE`+IO!(;vZ8;e2<*pIVUT;Yi_|K$!;M2l z)cpfavGOs^To_2Ov6qFkA-j-_I}MviiA)a`1u~BjI?}4f*Qwa9-!`UqC`h+9verEx zWWf^<`IIhGWY<^R)xmn1jj(BI zK%s5mw(ofu4)JEp(%`lbeCUwe2Qj(z+c*oAIBawBZupc|XxmWuEMd4JC4|i&YVda; zIYeXpmd|J(4*0YzoEER(BOS8WNx=elRW2is#F^VR*BQ8Bv2!@#ZBdDLQ}qb~Fibew5W5xprSb*en`|3-Zap3HknpPf~w#>*sudLCv-~$0zCJkLln~ zpMQ9C`oV{>=d=m%w1=cyx5q49l6_zzeZ}a1#j#2I9c9zOqnBXaus)$(SY|wl$MPrz zfVR#u;t{4XjpnU&T}9)B6EG?Q8Tp&%;5A*9bJ-cP7AL%@UgjIik*Y4 zoX}f)K@bx$r$^7(DSSr4*%QeK$_@nKaN|!2*bqX5%Vv5UknQ_QUyS(az#mpjW(Y?>yeB}-+tK|M4cMPJ zhQgEwNpdtdgaL-^275L@yGB8AT4eDwT|Tovi#Y|y4lM|d%}i_Ka~NH zp%H8#LKch((L#=^@lFklV7Uyj&~vvpl5I9Y$p8G*+u!gDZa_p!TRO4WfcOM5;%zz| zMn0^;1`e~np=|@ezXw5L4{-o{ru^)ICdYyY;s`$zt}Rc&g$*Nb2|EGG5--cJ*cZXV z>fpDeZ|2iZNt}l7gSN@`aK>3eX@3PO$H^4*;T!!$dY$Xvni>#IW-2(Tlzp^-u_+wc{GP%^yy7yFYDC9=_S#Zf@>3 z*L**k_%5F9KIBZmk)8k17n`HcK2tza3gO`|`1w8xfaHm+lz@M}_$4Lzl4|Z$I#)X$ zy*S!2=09DXU$GGI=HcP)6ggtJo8n{>m~Xzp4sQETtUKfH1kD@JO$wn20FqChPwcQs3q#uGb(HsN=J% z+!L_PJpnd;M&`OL^AZTkEkf)FD_09!A&qnx`KomIJDYCY?eINj$We)O@HV2`F0EICParri1jlo8^NSN31?R&(|OM5h4BG(=ienv(n zFLS-DC6_Wvq>>3Oe`7b}!)Fi!C>`Q7ocu5H4ab4$a0g(W((b2HBk&224H~$-{P8h< z-hmzZ6W)k^>u2y}zJzyi%_s7!mHL^re=6*H+;kXuwqf9LRm^WxY^XMT_lxLN1P&kb zrzju30T<7M#VH%~4__HoJGvoYri!7|Dae~2+ar~RW%4a&r2+P9Ny=g}s^Nd?uM|6A z;@)q>n!k(3JR`l*cb(r({w|Fy9luI{@FjbGO-}{BrvF<8M{Fq<85oQ#nJ^JPNf;5u zu6t<)J}EfFwZHel2R=Ns-}k)_b4a)4-SyJ8sncM3q%*=ONYs> z(&!tWQZBxoVKDC{H|P$^IQ55%_M!7om=f)OB#*4K!>N-Bf1B}&cCGJa2j7>P4)sAKq)p1in3QSA#WhrVG3yewP4x^e;?YneoocT$_z{ zhhnMg@Mh;_X~o!Xbq(D&)Q4}#&l?WR-O&F<37{^#rrUbEIbL7i-e2Fo zzI=E4&6_vOdtg}l`0C@2cfWr5yX{}o`Ah2iDgcHhA)jqO|NJ-FC-cw$%)P|ij^d&P z9qK)b|1Ik)elW-oi~%Vmq=Ij$JG;*1Oqmj~JgcN5lz3HOY;BUg7OvL#sw~uh@-mh^ zYcRx@UD#A0$}U0EQNe-R`cO$yNVO(pqYRw*N?g%UnZ9v4sn3n(m|!l~sQ6rJh&IMd zz)p42PBb0q;K#&j4a>0wk!&DtmoB){i4I;nu?7YSyy{z?Q?ZLm!p1tXK*IS8>10mg z5~j(o`IV8E?}i$HC$&_VX27O*!NSwjD7U|&6$JzBJZE}HOK4On>M5q61c8p%J?rdfLEG$~|-P1a$ZFccuo3fXMq!aKB3D#;J? z)!Xodr@>i-8`Qq@Yj8j3z+ga8O#k5Yk-{Wr{3p4%DrxZ1SukLe{NYwvO@erJ>PIpr z_mqDV2l_P6BW+jPNEyBfb2Lc(ey5 z9HVSc2^oQw_@*O4`O-``(b!!uC8T^n$>Wkl;l=87}B*g$(Inqezc% zNf(e5a4ARC_6XxiJ{R45h*csfk67j(^Jv7?WitTf2ej_UZR~T<*#@Hd*~^sj;Wtsj z{YX}&fbu17|FXn@ogRUBh5|4XA4xfgTq5R~ON#bhEHPw?VaVIG2@pSZov#=Cc+Ah6 z{_4if%qZ#K=~brx-DeV5*GJ`Y$e$g5J*1>%!F(BfnwGLRgtz~B%s)DQA1YdA0L-!~ zDDQIPc#s?A^I@MGiu4B0eEercufi#S4O{Aut{>jqK0MsKIoW){&BRmoynK1|`KMg{ z``P!K`foaajRGJIlJnWj6o8vw|K{Q1mK%VRy>#;1lUo+{(ODGbt^4Y+QQW6|IEW7( zAYk-`$wj;TWTqn)uc@p?(`cSHkv&<^j8|I~J(m=?h6p+o^e7PV7S4{f!*pUE15`Lv z0Gvk!=`PYW4blpn>vVmDB*J9@`Z#iDt<0nak2n2s-lN)=5H#?@O!OD9$r|M3`rB9z<5;@e?z`>HMZ+52?#BD>!XP6ids%}a zzno>U{|%LqKgmaM8)PdZ+vIVRz^DH50IPslhKai!3z+aFjyRQ@?6_tYAm2^5{3c#1 z3OoNv0U*32@KO(sh>CC#nqi+MqnSwUryL>ujOPnxMslP+hbUOSYUiVYsp7M7HJLJ1*0Z+6YH*oT* z416}u_o$zxF66C9@;TjYNxpPw@s^@bqPQk z{6>y!>uBw17H#wJXY-FR7)(EV2It)A7ACStk*v5|!jf^;HUmZ4?98I^t{H(E!1=un zNB&U)#yNkcm7+h`{@08wydrBZ*BPIW`*=!0x7V8C6Mso3KU10qf4nL!a09bh+8dp} z15A^I7otGLbpnLNe5^O*$ql@?ao$lr%KkB1=p-6VhZ_S)JcN>O3J2Mv z)ZnIQna5_D2aUmQxpJ@ML?uD5vXGzrCOi;{iS%zWSi687c}44^(ebl|nI;v6aAf}h z!XT|$N2jrd$sJl}xFBMwu1;B>!+$m-rLj`%Mbt~aCZQfM!^v~6`CB`5=aF0O`jN!^ zqw5Ky=P9zn8zzj4f}WWcqhJ5^5NqD@cgSNB0NF_aOB5ZC2!i@ZJH<3$p?L74zeh&@ zJXT(_EPj?Ai^t?mN?ig2){&QZ%<(r|ui|tYcCrup9ZiR4KB)Xukc4X*9X>PygpKBn zx4oErEn)br*p+yBsBrZHhHC65sCP6*TN)=W1jo%rQsqq?u_noESB(L$LapDp`6O2xK4_1qL{M?y226{7T-3@HDWKMFt#4$ap}st zFl<0Ob_ulIaIOVgx01G`PrIFiOCY41)iaLOTiQ zdE(0Gk$?^lJvX`}tguiIg*b$pk%icQ2Wd%<2us|;nv`5GcK;d1MF*hKYHV1E~|M$R-E zAIzgP4W3B9Mdu<#?@^gpU6N|xfTgo1Y&QG(tpqxE?dGRAXLPgSHiJ2`hoZ5a_i~?= zZ9Q+7m1=3JI`?$+)|Vk?^E)Yd?~nDn9=#N!^1#EyF&zdYPe_I`9$E_doUfg|hZh*_ zAMe=T$6j-`yx`-GJmL7+j)Acka`U;ayOZ7R?b+^2qxc(`A6x;r_^%)D&VK%8x4Agy z{KhGJhPcRp;|nwu))}lD_WW~VfOdoqioM3^{Jr>q9Q4{iauNr{p@@3`gv<1>(|XY$ z+O-X%4`AfvBV$=if^&fHLPiiQc!fh@(CAYwFe9e~Lr9qc$XU`RLzs+;DJj?f*X+_& z0T32xn<&LnZN~y;OiDr;V|lmD8?=4xJvidG;lm%!f{+`P%soV*gOPv{n3Wo{xQY5M z=$u*Y)+7*_-xvS12)1t zaX1({cuSYg-Nqq}^axjhD?F7ot&p@Dj%`WbCaU5Ru`peT=^&8lLo~sW8DVyP^lH?%K4z_qK9KZ2a9e;VAlmKwv_ivnDg5~}cRA6%;a&AA_Pda}H z+dp{|TSYPy0{GsN2RjrXK3r&-mr6Bx|yzLV`rRZ0grSo_5gVWCF$av+UTPqD#;`Vhnz;B!x zr-Sq=eFno^sn4ziD!X&acZi*X=FRy9J=E&$?&6XoJ%0o9gDU{?_|^I4?uBg>`zu$g z6OK4gk5(%`kax<6;GRfP3iv!YpERUDeMQN86CigUvjKt`AyRBVDd3ikno`b zV1iCa5=3Syy!KCNfRboKL`0KL^F7zV=3e>2g%5jz2l*@S_bOo49Us%ovXQeJwv5^TV8kxBQBl2veTt|VNdp|V_Hp4$-gvZ6X3#Lv zD)ysp7F}_sWW4R%_htwNTt9~MtglaK3|xmLPL~)N>&^6<`2%*sTEhmvsXydNMvR>X z-|de;k$s|_jJV;pT&zE?e`h~Z3LPY{kn!yxWpWd?$>$A)4zp||lRo2t7Vv8Cu;;(t zI;vKZzqVTAPmqUG?f~}g|7^~d@yS#=$~nW+(IdD~q%#BH z=aN;@OEFN!vabuAer;>->Fl?ZbHo9+1HXG@&P{$E)pqHr2ZL#YNqY_5lgr7^W-FVqY->u;a3y z-76&iHJ)EHfP9VYUz0gEY?6ngV?G3Q!~t|I!@%upaFSnmk zZP*8J`|SSN>zn}Et|$%n(sL{RW_`i(`z2yQ`?cj;!n-pv$YT(fWB?}xc7WL4vD?x4 zuRh|li60?^7qoovT0M~hmja`4>%tQjfu8cmilM`u#j^mVU{Sdg>@|(2UQSNVAA5wrhNr@&12CKy&6J;rZgC=lr_uv_ z%AO`pIPk_{*426)gpC4se3@TJDG>lD+Ra;7@TWWuXB^P*Eg|E#0WEuAT7#*#zjmOS z@hS&|t(tZ^#;tus20wP{@MY(J`TS@{`Nb|QIKyb?Ve~NJIxV3IIq^0u4o|cjMdP$$ zjCs%K$9&_3Bt;(e6T2S4Mb5BVY@7g<{d}uDVQ{c@)_b&&2S)cOFAt<+%i(F$>cgTT zG`KE|5&qYFjc?6GR4*A*_?0y;QZYOGS@v%YGoCQ$3p&Oh!@I4z+h1m3%13_hVf>yM zfGd=MmwayZ8h$;-<0#*mFzyB?&s=|HlMno_S?aiFl)q-Q?@U^15ImZ`d+y(GgqA$x zMRvrPgQgYffWOYYC3nLkJ`RguPCNu@*{&&de}#+`yxsWYq9uXRn)Mie7}U zx_Mjn_y<05Smi3uB?p9m(j35HIkkoSvVJ9}wVM{5ZQwB>^&`KNAvP<8F#U^)Ut!oo zrf6r>i|nSYIH0dr!#OqHLJ*j6jr6H#zkp5j#hfJYiEXXT5X>?uowi{ipJ z;5^8}*$2;#K0pS}qXf`#r=AsofzVF{(=qn#mf)*`-3Y09!vP*H{20$&e((w_LI94W&yUxw;UX1V;x_&Jij>EZZCHC zr|-Da=#)hdcv!zitogDz3V=5RGC@is_dMF%idg`fX<%s|x>I%f#%~STp}5<+I@&Hk zvuJ2>$t{X;$fq5SqZ7Y&w&OMlwL=S2ZMihLDr}t5B+pJhs6I|QN;fm13%qc~AK!&PAht;A@2xC8RHEFo8R zd{qrD*z(s1(qUoI{-imeIsE879R!hk%t-r0f<__J{wi%;1j0dJBnq+0NE94Ar$eU! z;;?W%+Pm=)A3wZ>2RC5B4JP78uf(if<4Y$$Zh2kPY2?8k4#h=o$Wd_j+}5*Y1}Zl# zQpnlyO^39j^HEW~cheF|O1^ntr0Hl~FvK7)FWEtJ&xrbrD^opd?OJN`fgj5*m-Z;8 z7LqW-X(o2OG36U8B?feieMj=T_NS%k6`_ zS?W0E+pn3bb;;*OeaAj?=I@dkenu;M=E?N`y*}GbO7VA z!jM09;^t-Sfh}-$^fdk}FQQMUpNzsjl!jX_X*+&NtiZ7cp7@Im+Xo->ByTM-#xYxm zZNM5apb0+(oV>;&zdW>7Gd&R#3BqYN{W1E-5+^_Y+Zo29hl0gx|485V>yas1wzbJi z>2}1i>(r0otL+U5af!d)O1+wH$xxx>$u`N)9G{__KmX|Cqf2JOPN`=(c_krb0e`m3 zbc(SDHgKUNT!lW}hmo2-x7Ir*vd_v)V~b8Q~(UTFmW|V zp1}3dYB!8~jQ5PTCCUc;h{F)G9sQbVevkJZ{edOrw~WI$_05id6act%AHYl0j{iaK z|Bm|f@`Nw`F&BJ89yp=Qow`?>)g7Jxn`iW*Uu-_Bv;NZmK@Bb34{kh~Few3_+U4NsnQ z@&j&onbMCp-!v{T;Knh$C=-i5t8kQ8O|6pgEC6Rfn7_jJ$EA9@H43AJLPx*lvZ?Jg zccEq!N^?nL9GSIIMJ`+dU@nmc(?-*d6SoQn=AN`)rEg=p3>@5&bV@8`WrgvMr_WcvgK_Y@g8yX4Xyl*KdaYO&MzWkEA|0ss-!BSDZ8*(0o$!r|CEuR z6LvJB-BPyLQ;^!CU8;fB`ehZc5fE=;@NGHMP%U7hs$xK&uUceUX$Y7&Ej4vXb;xVI0uvWg43vL8YX+DZwoTqPhl;1j>viL-{?Wf$N-~; zae4QI9e*|f5@$x%qroc$fCh}{9eH~Zl`}_GKg@@cBc;>Px}zZN$)3(jyj6yE`2-uN zaFgakS6-dlaO**=Y=$=UjBqUw-_{-OE4x`|W3+{l~)s zh?gJghuZNsGb#ZamMv@}Ci5Tu!~e0mKVjqJ{qgMsM<5s%+)^%_2uMp6e{`zo1e_dj z^v@!;Z6dI=Ov&IB+7J{ADSt~*!%pS1Ax`dz!d^c7CF=zt6x9w`$Wj582EYgn56ps9 z(;Ed`^)ajvLOXv-64O}{{SP43SzAB~}kdbQwk51$fp+TeJhwp>-CzJ`J@177nbrOV%dlv z{qb}@%2O2{Z^WM4{#JDIj_g}8h(e%TK+8QOITEN+KW#IT={BG`kx`QZN@JsE`b9)#kP+dF6mVpBVeEU)b=dFhxWJ+frI#< zIMwd~uB6JBa;pMRSND2OUqv8ol2~LVqiYo5$d0fnk1ITgN!~_+GupQ-nS8)_w?DPY z*#Ka*>mM*o2zP^^12pZzmMJlGa&L-L$S@!TmttZa;ep?3&y%IugNtv*wc9%sVK%q( z(D~D&@TQ}u&jWwEJH5X>;oiKX^Q+s>{?mWT>Rw0lW4!;C3c$DWzvgpLOkSeHuUQx2 zIAHa^<~sdu3Ik1PdqXa(Iq{C@~3t|CV0{YG^e zsE$a?ffml>hLnwNuo~f0=ny{bn#NTey2;E5I06>K{K~kG|MiX|IS_KmjOM2xgSmk= z*do#a6^O}e#6Lg-Sa@T75|@chlGlcs{K~XXH|jR}j<$_3Lr@xa zrmxc(Fbx>F8T~;ziTESD4Sza#yfn{gLw9y=El6VAbB zDIq+nu)wEN*Lt}`?5~-jFubr+_Ye&k9#UGWtkSA6wv;AT--P2`cJcC29O)_}tWDF_ ztv|Z?q2#uYqM^%h$eyzhu@}tET`OdI{p^x6JkGF;$HpC;3QrU%m99+v<3@(1SFtbn zfrUE$NIt?x;*_mC{G@y%00Sm&xPv3la#peZ@a{0eeH`g48x2P}qo=^lBQ1?AjVHyA z-H~749-7N&K&1E+fFER_gGC-DxE2$j7vCceVFeDZWC+|OO9kHZr2l1@IE;0eiGd}c z;z=-RlkT$XC${k>&%uYqzzbLI@*h47{g!nkEU#gY{1B!)d(xHmn*ippk6{O?yes&Axe1d|d9{0~XTW@^#KIA9 zYuGsL>QHfz=8QijPY0iMex~|a#>T$khCi5~pW}ib@BH7<@2ywdJpZtJ{hEAXuj${z z{OAh6|9$lT9R2+5Cp$ib!mWTDQaa`n!DNcr$8^l@m^n`J9haT{+T#+}~WQv$L4DL_D7yu(kleh5>4cCn?R)!L|qEg|gT+kqTDTY>2;Mef{r4b^H z{)Iq1#MMmdx&J47yctS5Mywx=uV!>u$~l0(hS!B<1|H(1Zzmel@8OEme3ggcW$`i( zjjqx@BZQkTW_vY1YWsA99YA6{hBNd09>mTy-Y^c1e79`lw)3~K7p9Sh;lnd_$~}*8 zVS{%3wjVn$?So`laOj4w>779Qgoa^w(pjSX3A3Q>bQtmEAdVeQ zN`N0a;#srNa^*7=gQVNEtNge`quo68NeskdzG+N^kLe6doNkP7%h8qAC9L6&`qROa zr{?PzHMbo4@tzwt<7TOw*u^p9&DnpJ2I#Oj#J1zJ1=oYIV(-WN{m~VG^XJcZ zmq#BeSsWyC9c1&?@*um<$P~W{cuu9bKsR)b=4Yr_Kf~@^IztJL6V?PNcLnTDDToUe z3og+axNuN;QYnaNP!h@06x#u8&R?))D*yd8v_W%?D~-fGXSEEkFgV4NW^M#Cc=`c} zV6P@HMCzx=iXHN$4+Yj~E!Mu!g#8+!!sX@Zw28};nJa7*_HV$hfcPM)MMJp7dp0kf~lk9g@HqL%~n zyc?G;KM}%u`pyo~lQjVIQ2$0G65ydhcbdIB)HMD*0<}|d8dx_p$;`43zBBdfsMF4` zmjHr;E^nvlZG5sjrORMS7}Z~zJZiHg7cyi}JgKg7%SF6PJEKit@@vPW9Gv@6F!PTV zh!Z1$fh$^&Ac0wx1F=~F<#5ph>G+QXHSc3uUt?xYPbKz#bu6HyNAN|Fw&g1 zW-x2sP)_D61v1jGOi0NHL$uH~22IbJ=8Qk(7lnXwwaxGe|CNZ8isWell23wDQbbd2 zBZu+U+*xM=^3RV;(wyyKgCe)}tsU*Nsc&`9eGuMyi~zab@8x#8SJ3*J{CP>JR}{1x z0=e~;H7W1^XLBIj+;BV2!_~XZ_RHsA4z6V8$1^{=0`QA3za*1BcsTm#h*QiL-yHEt zUWV8g+$--Hp%Zp4pHnF3bUbJY*}=hv=k14NqBlDL&piRB$j1flPnbsfm`i&6(jY^M zoizAQVY8&jXNWvf39%O9Ap&VXa-zUScVxXd{ASaYhc+p(tQ%SB6#|ujHd?LVg=;8p zVEXdua0-=ff3|!*&*;`C=SP>%UO<;)R5U>%~IR)mUyL+&z>KxK19Y{=NCraCpXK5fpNo=lLGodezF`Op4nQIfZS7W@{|FT zou2kTrQ?5gdBHNTyh=%wiWF+BS~Q5Qj=jlCQ6BQ9%Hg92ZmdK9{XM3ft($B ziJ2_8syqTN4PzfR;z=HxFEQgiy|9eeB z6ExZV*L{`!MUm$<*-mW-RL53U}5@!#whe|+F@o;lUuLXkmyMCge-V$~ja zw_93mU!Vy$Xd6cfWzdOx*b**)8JfH@pV;8HdiIPoatzbm-NIA=>~MIz`(no(7)L&K zo)PcakHJ-+O8of_A%0pTz)2#q#7iNbWWq|mc8RDX!U5;V4k{}XJ&u)!i#M9^sF$-JNZt2J2U5J#vSqYEq9?I8_Drb z2k$_Fh&|c6=P!^Mw{)8B_Znha6wOoKmSsEPJ8o#(_JrRNO}*lwaK;~Ce3fjH{^SFB zV!kBZ!i*qqY}Civ-09^|)Fp<`smGEV@v7`QFlx6^wGn3L??yiDZDzmXYUIC!$x9x% z$*hg_F1$1xN_6;a{N_2~Qyr&lLTAb@N&viZwLR%YV0P~a@h94v-_w)4ArYMOUvcM+ zNBr36#|?kfy5H@#>wn|KJ4gN2eB5WnvG!AM=iaiS=e*O+?TdHUzxczuhtGcdTZHb% zH$S=pKoWOeYJd{(fD&-?@O-mzsqp^pIw$YAK=J(OoLPW-zT>xkc*Z%+OETAE$4vjL z1gvsbz=m5-_(%XZ1v;goR_3lM#Tj8hC>)u%351KvQs9EcwJ_MeIL!}jU;`H)a_FNn zpwQ}=O$l+)RFHarRfpTC&NgRns0y2|V^V$l)z)1*W zcpqb}cYxtRe2i!sqBeUr9Hy>12z|`h_77qHX}F&>!~aa+NnekFiCEHuwiOUxA;+kY z^jk)1?I(16CkqW;TrHK*C=lS3i=2*+`GO{uSe#RaQ#y3ph-Z42JWYhv39&W3^4X1O zCp7Ywu`n8|__MR}3NzvIC0$|CFh6}WV)2~@cGwG7{scL-84n$HQbO?K1~@Mf;Wo4t zH=#uVP%$7bXD`y}gWsJG1wfe3Uil;Rz3pS^BE;zFQ5*k zW|&2!1>@H=m|i+QdPr_!^bQ8>!o*Ro`Fyq`cLzZfQLW=D=cX^UH2mf$mz}qYk7?~r zT)S{b?kWM=g^lpZC&L7fAMMFI!)fPH0mu@7JPZXO@eEq}!JRzlRFjw12Nn7gWaW%> zopH2C8rc;m<0utMsOoODOX#X6buj4xuns2BE3rmK)C_d>^ke?MOC$hBduR>i56<9 z>y+z;i+mgaBrao-r@Tr5==P#{TfP&P^OLsfnejAYS{?QrxBWT?p zxRMJrazN(N1fZX@t&%My7mS#=M(vmlmd@Ib0lvfmq!Hy)OSU@%R7&ed3FNUT{Zw#C z)4(r^Al^Va4XV9OM1UWKS;2AbN`Z>p_zF%70!l#Jtb`c^%5G&)_-Hh!ByJ=W9y;-7 z<&sU}js`4n!34f59ugPrRs15BVJ(^qhu$y+;dh|4OxCsqFyIq%vJ@fx&P)&3pLtDm zp*=d&ibYzak_=NZd*F6E6)^8P_pW5kqhcUToLhh52fV^X13&v0Hp1#(s~SSIgb^-zW||lo zsem|(pb`k3%nZ)}GsKNRVvC5hT7i7b zPt%__cIoKO1HH+Qet~y9mamVn(9-XK31^lmN`x>U{iW=x9Fj+5UL~{Stk(OHyV1er z#!}L#0-#JQi^`^Z1XKbdr_wO9U~l{omGztWV&r?W6%PQ?tijJf;bFE_u;OeHvaI8G z8FCL1$B>~zM53rR$Tlo-?nPU;v`_Lj{1+KztrmH_> zv!eu4terg~G!k?A@98l6k`QUliNsI5`L-27QaVznW5iJ=>GbUYd{h8p@R&wA1n3+r z7(D~Gg{ng0Ezf}2&ykMCuz@8aaJ(rO*^O+)EsQ6H4Nkgt7_OE3r~s%;bj!zaK&fQ} z?+Jj057vybB3J;l8mJBNbqNMEa7!;8dI{^`(pLd_%IH5~_}L4qJd#E~cC_LY!-~t6 zv{(Ls8~L5G^&|j?fN08j>Q8Ekaa2m{K+-NB=0V=WZYSSmSUm`Sz;(G>_9`3Qv5V7g z7~zd;m~VK2K+({SwHO)+9tpQ@D1Rp`-?#_B&fn{7OF8HnfS~~3&zVATsmY;<&H8P6 z@)(T>&3NZ^04opU7hI$F;Im_XYidgw+us9TG$57_|q@XCQ3rZm3SsU%n%?Ghdd-L`Dw0ZNZZ6H zV&T_%viBgamM>|@%$#q^uhLdoLc34bu)SxQ`3{M_;ksY9j9t@Vc-?QE^G6XleOO%| zU0vRspFiWA|GzNR^wTnbPX*w;Il<=wI5_#hDF0}~Cj-4OfK3;kNTx&eepAYa0pblh z*){UPSCdvAq__4eSGFLuTR9P63&ZIG0@C8xRVUIacuwNgxY04BSpUkj&9P>S{XqF@ zVIiu~9!$tXx5BBwSHw1NWmF0r)p}V=M_V`r9Y6lme*y$H!iLDeC5--?@bDAi2A&b* z0ZuOg@k4$c1|1Z5CDKLU$!dfe03%DML=@uB{2GoBYG_#_(NTG6UR5Jd^o3e{Ic`aY zWV((HCdw6^=qU=}nbYaA6t+_Q*&mQIyHs2U?agsK>Nx>y;QP@NA{6n$o_5Ky8J%y^ zi92ubt~hy@K$Z%yOGmkI#=^!AcG!PX4GE1@Mi_SfbTWJzBmLo;HEQkw!w*5DOo)d! zJ3203Xe$$>=AUf$C)B7jc1A@KtC258y^T;#&=8c_5 z$`O8r>nDlQmBn>4n35I&UonOKg@jhqsmWDI^g0}V7wEA$$%51ybBf5LPNX6eIC?2*2y@F5|!2mZI01g$7zBo#?F$S`^@sh$Ci>vzHoLAFs+(ngrfA`^YuDt=_GXO<)KiF&RC zAvxI5-qr<26HI)=+ustVy-nI9JTLvVLmE>qbpSm!@rGG*+Z^H={+_q(uUXPGr8G4H z)gmOHlh@!V*fh#+{&V-Pjj*#QCyX*mRkN7ooBXs1=dFro6E|vl5lNi*Oa{P2Itc^% z=*EMK_;&C`XSWR!w=n6Hl(YAkmbd+4*>@pji_qd0?#S>04Q?4)`=L8) zZl)*M$Sj8WmT53jO_{Ce{IdtZjhUpc6dc#-DJ5~nNjmv(80khiQW5g8o&*Pe_^BQH zgtg2j+_0z9w_L^}KK^hACxbjHp`(aRY0?BJB}H>l4aX=$@VUB{k-lsG%ARGc&f|Si z+D&dAi49hbw(7TlLL@DgX?Yu-#T}Ss{W?GutwZ4KPE@n=k%dn^NpJA587m&h!gDkJM~rK3|55A_4cGFcks zk$*l(VZdA+L+NNIa=gMTf|$d-YL9+Kh>Lq_rwY8e)SNT@F!~PGuaTb{lo)pRv->~$ z0PL@JcN`tKhvdUK>)1Q)_P@CNxN~U9&fneslT!f9k+04#cQ2UvA#>SHxmMGn0&!xJ zeP8s}Zu+}LW)!3sl-V;DVwi?maeu&$O@dVC>=M|yKl=mR&na2Hvp|ck?%+%SrHFA5 zdE!=2?P{YGs!dm89%ML&oM6u5P51%gPtJw zC|m469%{|ZZZN4F{l;O*$^O$R~8 zWe1kstpit^{Sd_mZbE~P6Q0!_djRMpvj-pvBu?eVkue?R-U!z;43i}2|B*30l@#-| z%w%am-h1UYVFpcK6aB~Wn5(3A-*g_458=O$Q4V-!07%=KbglUm_S%yUDg&n1CkhZ{ zO~<`OLE17ykkwZBXk2*0Z$|%a^3CP>arB5+ljki;uJzs5{oij`70!d!9~BG zf(@KuHK94|1=;(h729(kIt>0k(^>flAGQdYx15)~{1rvpZ2yd16+C=u6OPlVTF>fx zq9;4~fsHn}!hxTafkZX4F_?B*o;eucm41H*s%$#c&IU9%J9i$Ne3oz?sINSp?Ux8M z0>y@(x?rQymG?Tg#<+p{-x-4@q5%?Ycb+{>`z!k`V)`X{@W zo8!$j?Kej(j-HdZXB3}H0ZiI?C&1Aq4aU!@jh|5QE)h~;bodmx%LDFES-X*NgTEtI z;+>GLoX!t{A}%*j~lo^H&rK z^aLVk;d8@KAr`-)iTv2}`wJ2|ZbhS^X1{fpKeh1g?yMRT;B+BrQ(ZgsQ_nUs+HK6l zW!hJId<3FS^WfO3w9^FG40NKM+GpyTDJNhHc<_1$#t}g;bgEHr@oPEiUqv9B{J7|* zlmgu1m^O|QK*zDZx;#35%XJpm)A_qEKprg;8D4aVfz=Pl*+dDLo%^;<%RY3^l``Ce zEFAFgZ8Bpv&Me7vnb0KeZ*BYwj#;JQ@=XxCR>y{sIv(NsU_w&C46dCJU^oqg9& zaoy3Mv2WuA#~h!r$x(a5cuYbo0NTS}`xzNqFMshdvM*i|pgj-A z9;|SQWf`u6jQ3Nh;%tPMCfU+vFA5yGQ?7f6_U&70=I?B(7~BKEMqldY{@3{MH|32* zOnA#`VJ4m_qpE8lC!qFfFVk+?`CAY3*Em%ZM*hqevwXv`y!ACfY@~_E8G$9fcYMgYGWS)&9Tvl;OGlikTVWpjMXobQ%zD{W3zr{`Nn z?YpCA+tc;WIj8Y+3ga2a{!Zw=JyBh^39gS{P;q}rLHrUa;5L$6Cwzvi(#kR$u;bRj z?e+y~=g&wuio=et4T-}jgn5>`Oox3xnt|oprHX99i5lg1qCX zmv&*|AU+;Ca5kasjw$+O2XA`t6UE8QC+^q{H*jHBKj20IRSK4V($S;5P`jrrq;E*&sYo48J`?qxdHw>KYs0Vxmj5~WD@&Qbni*AGuNev#*P=w~Qqr=xRsv?l`ve&9Y8P!Af+^3z(ehbV)HSY}kG=B&uTJ}@ zk+HtCe#656(k14c2~%3!m3oUN_y$$s_q&Jf|Af>VVQ_lKAX9UjHbvOT_MHpuNPr2KZX;@IE$n`dlv`QmT-N#BwB@AabP`N^5-Q^KE~zq$S7 z=Ht!l^RxB+Eld8G)$R4k{j>8EitKJj?$Zp@n(Qv9oeahJyukYS;$(e%jwW!+EmW6m zJm`f7)P24sQ3v7AHuk5h|Xn5>d3~p z{1G44Y@7_Af8*q_y{GeV!hz92b#ThB9AM&y28Ta4A_)&nTq4i{XgqQFGjO3XoZUY( zZ1yHYJg{fL1z78KPM>&IAyl8D&1V2kczp zF-G@;p#?7f;3t>-2v1na3>ucNvln@=<42t7Ndi?282P#Zu9Sp<8{s1h(jaXq|3w_d zM#Yn41h>e>wn{7X8u0l2ZKW|%@}5A}5i?W@JWWWM!jU@T42I8uDQ^iw^O*e;p2J58 zsI~mUIX(-qC*7^T}i8HM}-eVCKh<>??-Kg5cZ-lZT`|qjvOu}Sl zM>;;*vP(^E^X0j4xhdN z9Ib_G{C=$Gh%4$huh`i4)%Icg3T2MteSV*YF+SfIh9=tU>C1=fvu}>iPHtEzcwmP* ztcxK^R&4XH$o} z0(2=f3XjH)2WXlH1ht_4D#G>nTVfbm10LY8<3q|eK)hoYO*}rXciAa1uaS-^LM$qN zR1gS4Sm&g)KV{@0{+~jM6RD^9RgM7&TTdbZ4#G~1wOz0KCONkc>Ief}~--r9ut zj53T8Ae=a`>o4V}J4_86uXOb30P&ZM9yskjQ6Aty19_RfY=juj=$N-43J@BCd+Ud-vMm+?3X2QXr2l&!$z5#Eb{2%j0Z7luwZE=TI4N17OSG@}|Ejw&XjxV;$yc#lX12 zMq)d#$*W}_T(e$&0+S}rITYU8uWu0mmN2tU6PQ1T;fLqYToO(wypQn1`RH{Rr0Ezg zX~)uSVByRQ#lPUcq9&X{3RN4&+2`AXbnE|?yDt>8# z*@8&tkKN1W5GFc!Po5#2>`mZ||Iro4(B7fQ+#ruA0IV6U>0|D;w`Zph*T-il0&nkc z*C)3R=jXqg);oUr%U|wZzWn#w&p!K)=HN(JIR8og{8SYHGf5?2!?Fp5vNXTheER9# z!_`M`n880k<1T6L3%K_(pkrndkIyboA6PA5Tz+!KZh;#%d%8i8VHPt4j`*u6SQ*Gv z5LzIII7;*s2+-xhw{qgfyr)V}zmY57OZJ96vP?ijE8q&ZbP|rYA6ap8n#UY+)8qmt z2{#UE*sn0z0~kLYr_$B-C0@JnM%E7z0~c`UKTct20uKErBIppJ+P;jYgS?MFqD@FU z`m$GO#?HJv@!fWMGu5ZpP0AV1yp}}UM4-z!QJj=XD z9K=m8Md;>s|LrA2Y!@!Z^b_<@7UC8rZ~+@|X9nC>VA*DtVECip@lJY_I$+r#N(Yl( zM_kjjvpHe2TrUrFc!P(d`tA7R8lb^&=(q0)HbS=>?%K**0<&8exwgQYU+px{byxcq zU%?eTml-i0%9j}FsN>hbH24W)r|$+oZ{ZsXKydi6?3BDH0OGU|5Uj@$M1C9IHo z7=Gfp+!L;xDlgW<*|-Ey*~apJDFAf%Q8FnHN0c=SW#?a)+|=w{DQQvE;HC1^_y-HX zYV(`C`;-aW&3izFYabSQiXB{FjTqqtX5(DD~zeb6}B9Kr@6V&^pa{nh4v^Nv}>>-*dL8y26@3wSu;cf%R~ z^~-lR-+c4t_KPpMT`=2!&J|B$M$EHEV zr|kKfpi3fYx_G74VQ-;(254oJupX8}P!$14S_1?LdrM}?gK~)v=c0%fSis7133eJ0 z8XJkodzr;s{|N&u@8RXUzM7O`+V*AGi9W!m=*zR=OqTY)*mR_ZZTk~MQkiJ3pHDajetIT zuy||#mS5ZDPOt4B+I0ThWdRT&h(G;~NBHt-`1FQ0ou~T46b4-410=cnk)C#6!&1)r zRe^Y)f!?>3tkj;MSkwquWq^+bk%)?JX;XzJ1*6N%c3ZrsE1U&UMRnX{frA?jc;MNS zjUp63{LVOO_zWSLBE^%$rLS4S18YQ(q>UMXc%I>Q@@~Gh^Uvc*pIM-+H(Ou(8D(l7 zC|lLZC}X7nw2Veak$gW!-R3D+NgaC=0SLT2JX-c-K$&J)K{p`>{c;&*}IQZP>{FTX8PU{KIi!%nPYz1A>yc? zp*LM@LV^e08#2{fTP>J)_A`kQJMaWyf*=pDLks zXPw70V5z|8% z-}j*_DLw=aH<3^APZoP>YIHRW*(l^RG988arB*M+RA!jB_B&#$0isPgf0TmzDr~Uz zXCZi8Ff#`<&Q%hXx8+#aQw*al%zJ3d%Lp{R!>w?6k|6In1?3Kmjw4G5!*A%c-K7OK zlKDkJRMQF0IK7pbED1USH*$EH{Tv|TJ^5LY?xS%T@=5g}i6tcY zU-AK{B#B4^qq2Y!=Fod$ZKHo zYd>S0Dg|y3t|O>XJ_kHe8Qa8H^Vpbr8%4$&c$~|7_S50zz3ekiTf)Pa3dxhj^UxP=6)9fI7aUd;Nl1C-H=RE}R>6=ZkYOZjqR4jE z?wO8j+pD>t;#Gq)YtqJD!$rx{5AAmQd+F<+xc@n z*LLeYGoA`y=l}K_h`eJf@%3hXcDG$!@$u19N|s*afp6Fn_r(jo1pMar#Qpi;5ib6L z%s-$4aJ2jU^Iva2{gl&R7nirse&z}QcLdzi?5i#wKQQaNbM^F^PJqoE>o?nn-6eL? zy7AkSbn@blF4?L32{Suh(R7J0d9;vu9X1QrXWY&Z4(=CNJ?D+`z)XNc7F!30HPSow z@*xxnCJK=|HG;I4&|?VU{u0J-h^n0r1~T;<3lbS6K(O|KD?jB`d-^OZ#te#=@A~s( zut`*`8~c>PzTT>I3MivmP8Pp zNe7$6G%(%S`Kqi(*Zbii}UY{NyvUz z%_^whsfG%tlmq0Z-XyHuB8Z9Ym%8+(QhKKAV6` z(eybPE#Q)FG7$J!2IY+xCS`g6FaT$8&5p;}&Q;R}`-qInCA`W3V( z%d}?vY^jezJ+;t`kDKu7Wl7@Zm)2Ht3o!mJ357+vcnw&sFoT_?Wsoe2Jzo=#~E* z&Lq>NbmM@au6}>#t_qlHu#{4UlL{5)_H;N3Psf!;ijQi%m2f3KLncP zMVJxl-%pYmfD(|zlut00QLY{(H zg*$yKvJ@9(t_pv34QbE)D=HC7!D!J?uqpsr@uhKo?bH8;@P8v%IMVtS1`2XE^`U{t z0Noo}@t5QvE0%q3DfM?#c7~(E#(F-6lG*Ej*X&ozo9%A3-X9)O3y_V|>7u!~fPsyE zzy0<{Dh2U^*8EzJ!eD+#KCp+V^ zN&yAEVnN&g(lJ9hs;+XcFvveqdC=@_{k#j8NHImy?3bPdv0eUXT{4=iKq#>|W88%| znmHKQ^h|p6@CG`7<4l)<+>p1VA{zg9+yT+`eP~JQOg^hlF7U3)lyQ?=D#iPkIf?6{ zb;$mbQ6&5fyE4{yN{{2~nPUDV{Z3V-kY5|g7{mob_sxt@4uiY4rF}zNyEIpw}kAGPMb^$OzV+%FZ`{mKgqP3q*<5l z*+RoOL3nh!N0P%%ZkgQ50b*96UJ!SulufW|cSCU>tRf$m#%#i8NFF))&O*=9peYKi zcb=BU%OEh=Q@(#5AWAwK6vT1_G%b3shuP<*jZ0HB zH@i2p{r1iB_ON($b=c0?Ro<>;wOl@FzWCxtDkJZ2;V-YeuN45>kDP z!U^XCFj3^dM36D{3!3rvv8bzweoV1|gB| zQoHN};$4O#Z=qKoR=_1|d~m8y2b}4pKoCn@W;_CfjL0EZ;(F*{DYRL>16~J(l=dm8 z#jeJ)Ocyb_%G)QE0T^r&S2~Z~YGvdgaY=^?G0VgPnVzEQk`1C8Z1;3adW;r2AgE-`EHo>mk!i&rV(y$^@zrscQrK$K+3saODmR^HSimsgEX&5OY3; zzdx**`?Dr)R?U_z<2hM^{Cq=lwh4VZh5#5lz8deFtL1#QYG~!tTH7+PTc4bu$#dsoAh^(o_Jb;gcc78swlFVG% z++=YM^Y{fQjmuxssg$kCz*zW+Znca#1t!_0%SCUNDaO)6Kh2Z4vF+ojj*|ea+-^L| zB!{OQuy8`)Zv~#7>iV)m^Ud!HCmPjyPxtThXpg6jI8UnrDF@hQ9>8cIhq1Lup9tPi6Y6^$;FySjjqnZG4k9zJes=91iWFRR0rAd=&tU%I%|T`WM=s)Tt29gj ztal-#Q82C0LWWv~wh(a%jMHr~z@m~kebHjI&6Guj&qtlm^pe+Tb-K#b;7LZ7I8Dq& z%|I}^$&^H4bwEDg8Gvv)nR~n%2Qmg@=qcju^|Go}KCW{p);e%l&wEXP?!$#AY7o`~ zrCJa0Y1DowXB*Rg87caV1YalomQfrF`#P-IhYYlJG!+rR-6|}@@*4kFlg(xf(fMJ* zj`1|JvOA;LxZhhYFcf?5yQs9sWrF0s|n4m_(oVt@VoA`ISyaatl z`0Kd8kL)y%Pl@YaIY`*K>{e+>^TN+efUvSm?k(@pL(sHkN!eDzV(|QA1n=I4geS3DV3H_j-!!<#?>aEVE4Y`)TA1-cYhxZxgU$75m zd1icLolUyFy|^~nKmzA;9(Zge0@u8_*dPCcTlqQ0-m8IDMA<|4H7X`IO}hwJ!{_%d z-88nqEvoiLC4?14ul`mnNnK`5W})q>ys@kWSq!?oM@Gaj*qI-iBn+qLE!hK6ygJQN z84@)_=tTcolZ-I{MeV`;-JcQFO5%FGILROUmr4EXVy@khWZS+gwV?t|E8wB|`IO}}>FYlXNx!nSt(-{m8ZCN-dSjk3u2&0C% z|E@?qKi8*?Ndnt5nYlL-oVEi*v8n=w)Vp!@h+&yGT&oF0H7rC{;K;PgMU@WY5tCI& zm{y!-3R&|bfp~~6Di8~bS>lpS7jXCTclu9SyX$5hV|_O!7UP((Cnn~G-Qbu{eAPQl z!f7alDW0>5GEGmLNt)w^AthK}*?s*^c%ifq%@V1jxPAgVGwT%MK2tQyo){i;$|R*eJVbSnuTD*xmYa# zUi|DiJZ-vr+lJ)@v`%6e(oBLm>Xp+r89v3+ukN}e~9$(P^kemHi z)zT}?1u1y)?hneMg8qJ~|EiPSy{j7&9Dd6%yg zk*Ch6_L+Yp#9tWjA?;9*_6eibN8Dx#eZA&uBvMnvq(O(R)@RkTmF&ld6Xx`ZOhduS z00sdJl54+oULKVfAWb+ena9xvh~3>42GA~Owqzb|dwga+E8Dnv+2Q1CK$B-=w-ji# zD+ql&HD&P`1R{S{4~+&f&*9%=4e%6@)5*G<<2#j)+g^KP zhh)EiGI}RQ+r)uu$(;5Y8$y+19hhZo`o1*|?U6X+b!>iWv}3;M>ZN)d#a@Yz(@UI9 zwHmxodcwKjX&gb7nLT@_XoPlPJpFjLj=t;|AH36ov=G%C+PWxB42qOPSsO6i8Dj(X zchC8hddCH6ON+7T%JE%H4x2$izO6JWD~Zl#BAgsb=X-xM6xSq|+exj*;_Gc(*nR63 z_HQ}%^SKW4Y`o8B2<%6KMJHqS{zKHcH`CFj1xMd93p7jC7+If#tX{OF*>0T+a#$;v z{%NsuIw)viRqmoZ3#hEM7PZG&Z;1jawKgTL* zd*aF_ZuEY#YxI4+^Ho>uZwy4*f19BLL=6QLuazPQ`MJ;fbz3wayR>g+*GKLI3_K~S zNy()C;UO5Kn@XHd2)69N=~Bc0;;2A^;)P5n8?g~p%(O4f7HlQ{J6UesAb{?^>!U=) zo&u#Ha?CCIuVCslftRX}O;Z>HfbmvA#LQYk7!JmVb5EwQE-Cu-m+-$L*1W*5&%K!o zp@PykaD6o;^@2Keypw!Tl~u;jyBxD>*%(809&0xA@tqJFr(Pc67uri-dS?aIN>z|j=igz8 zI$gCBqb<(rODAj!9i@lj1=FzhPnX-Z$EG?C2kE|&_UD-??>7yMPCXr)_7*d>+;kR0 znb)^wLprtkY=T)F_m5A%gtqLy{d+bvwh#NirHxv;zi09}^#iN~JGO=Hp8tD0t9)a! z1QJ|pjL$mw+Z#KtFdx^xxjr74s4!{a^7=LqO)pMVF`j6xMRT6F=PGDChB(l{F^c*IfnmYtPrc$f6&F#+NYf(C*Jq7g61rAZKD z^u#fsA1ULrD_v1PE!B_($y^IijWNKENLDsL|Gpf52$r6FuNb)*wWUJ|%){YxGfBvrpGf%o^)WD2LaQpc9>&nGQX^u#z{V}*_P=R*yo*9JEOJ@A(H z`|6vpZ%tZ2PX#g7lvUG-w`i?~+6>U7V_})yU!%217GwaV>3}9*##4=WWyrA~_bbX6 zoK=z*3KuS)ri3v7^V<2>w8MH`Zl1taMpMgnV-cKx5nry|Q@2pov;&i1M$Kwf#%yNe zfSn>*jJ;8%jkf(t^)<)j`?_Y*=V78l=2=gL&(Y>b(rb~0i^nYgS02as$R)TCgs#vD z|1ZItcd-)?>?qN=i|cN_k5Ahr&l-c6IYH6ri-GPBH(fQ-my^U)} z)AhcG_h?NpRy53pVomd8YG|n~Vnm^^g}6~qHQp0`z6bBo$O+9Rr0-el8{>-6e}z%P zeM%C-!G;eju65+$AnQ123x-l_>?4$LHdRrKK+s#Yi z)1e0CVBL!1PlSr!!;7E)_*CAwc1aLcs=srIHWHe5G&`~7g!~e-&;0#WZ2#LJaM8tA zsbWts^6eg&j2TtQy=ku!x;kSa6uj`QE&3NKCk78=88@@NzprjQA2uD2ks$cS z?k3B?EAQ)j&WziBTm}A+bC=8x!MXWNd-I8{pY^M{KTFhK?D@OB{P}z~U?Qv8ADi$)w9GdYzP}S|ay_Mw~LloH)yS z=X)#Oyj)vTlJ<(r9TU2bYOefU?&Mh`@*$OUEy_p*ALV#D|PiK3Q)dV5xj8S+q? zRxr17pX9qJ_Dq;?GPE)`$jKuR4Au?9w=d4VdSceP>7`yYz@TNe!ike|P^{hb*9m5p zdpK^ib*+SH*&Zx7gZOxqq5f9-IExLmaio^h}h!Gf$xli?-`@eY^GIwY%4LEd=D#T7Q{QnQh{68cV z_9+!p-v0;rg*6CmQ4N}}q5}ANWF!>DYebEHTbnZT0KhjeB7Z4LA;99o{+JMCq{V+Q zpg$@o02=Z~Ja{d<{Rj|O6)90b%@qFW&qUl@OU6P$0YLksLjyplO;+sn@94AUBt#q#$)= z1SbUzA_Or4O&=eMJJLPuz4g-DGahO@YTIjbsN=TY3oYp~p!eVp%E~i;?tlR5POET# z3HrS_xdVYc{_jtfn%~FYA9qUKACp;mLV{a8Yu8Wfp8>$XLKn;7pT_quFK+j{pYPLK zLL0zt-?dHT+R0rfEvB?_ag#P3hNW|NLSr&YhSF6R&gj8H4*7$sd^*Q`1*4=Ec^AdO zW@1#6!Kp7k!%+1G-Vgo{^*P~)c7Y~e&^KSPOW&XKbsCMEBDZU=A)Zm(ySWB z|Bzp-=CRT$QJd|x=+r39t?ajx8WuAx-)S8%e9OpvB(QUIxiKA^B@ z9@&m_?jS{>=-U45&y9E%dzk)HIg*`D`i4mt$bMN=qT&FGpsP4dY!|%-tmN%H5(=j*z~5It!H;0!w-Roq(0u@m8Sz zdU)asaTqLvKM9!Z(YAoe+=S&B2s%}UU%cb#Q}>qaejMjbX6_fjQuo8C35JOzvQ>U< zad>P;6Fu9A^6_+c|J&Npq1$=1Mn@2k}HIcd@L_FH<3sZWM% zLn@c*?oi+^plz+{%f3;ki;6&rKkf#f)YRFp|7(WO7_MTrAMARcuYIUxC#Xa_T?5*f zc4;pOYC~`jDa2PrZzq7=FbQmt%^zVt?tsX3XBhv51u9@7=>Jj&#)62T06?w7S5uq+ zXYv2EJ0^n(Ap*LUIX_1pOc6iQ!Gw-_<9Kd8tzgo! zt#6VIPoK(3%4=^J!#TUXB`S;j7{5n{cB-BO50JYdE>KCK0xoZz&LDawQ|uwNFIvzX z+eC_vcesh>t4D3_k=w2-t1Ab%$M57 z`w{w7af_@d?Hv1iY(H`P-alIMnXGz1;OusBym%F3`dYEGj2+lzf2z+shQpKc#9a&@{bh>JUg}jt zxS!ri6XyG(i-ALrI?0|R{_LJz1hxNeM+p?^rCx&)e?&q9pP znDe45&tG#(zU108&9-wu{`RgNVx|{{mkYE&h=TCvbLvSWf94fc)1-y#{nzPfSePl3 zqN)UuTBT{x)|buSwN3l9N=-Wz7crxxM%QiRuQa^QO?*UONC1v-;Cgj#F5>#;)lQh; z0U-{!ofWhcB=kGNo1fUi?B@?Him6`RT2%`;A0j|!Sd17EU?ek8^G_dvkH%Uk1>;a! z%+c$0UK^fZ=Af3vhU7EjxL=K*_BfDgnv75D=T4T^ZSrt7I|Aw-_#EB z+Aixj946QOlCUu0GXh5Ufg7QI(5+Uo%QH7N8CU!xLMp}-{`7$%?+(j%jNEZKf&tx} zrJ&&*Qr|DHrtxjN^ZgCCTo7O^?q-4zDJ0Mk?yUCx@~N#X;W)eWI``?|2_h_(=s=aQ zy}=pT7X!jkd-~9}O?yl3p%0dTcw?L+x_G^~EE*N6ZuHMDa|eKt=m5`71$>GKfx-f8 zEzHzbn&mvr_H;Z%0Ffe`u*v86qL!2wO-)hBeYIDbc`^x|;%Ni_@q_{IDexL`2l z3gSURT#6qLwYT(SHGSxFEA0ICjPpzY^j@7H{>8Z35@ZZIS&LqSfUEbTll(Wd!>~bb z%G8UIF%=VKDz|hadlLg}tk-tIHjL zjQitaU2Wfd2*KmBo=Dey7-4(R2mHJL=9v+8Bi;H8-H$swj&lGA8<#n#_C8fjb*fL9 zGSTU`tnHue?(Rm(ZbE?+>`E#Nwb6Zt;rawOOvC5ubb}%?@vjeDy_}uCJjiNgu(Nl( zV~h#hm48$bR@GS3vlj*{e5_SFQ4NZ8<#GFzd~l zXyItpa?-P{kdPMP0(l9NsR*QL(q&n1iE+!qUb0D@Fm%t^_mHpbAkf?W@@6OnJ0joC z1rcnBv3#ERXW(lg0jG7ebu#i$b0*=j+MO}0f;(OpupVqXN1Tj?xy`|yec!2=n(dFEhH~U+(!4t5!ja${9j0AOMK{r+nx46>Vpm1YpwC2$LDWXcbBex4fMHmYgIN$xYJK>ip>j$T*5ppgq1(% zNuUzi8AXAT5I(sm%m$n>C@>#5_7gj8y;Ejc3D>_tv`4#yeP=b3YA}#jL(d|{`zh`I z8fS5PFXk%RHF290N913?Le1lwoH|B1_5b>>*e7;_K7Xhq5)#QoT8vB+hbJ(71Pw6e z*0LCU<(lMGctk)7Ek&`!pM8t4{E4T2zA{)SdU_$ui;th)jhsmf zz7)qJM>fKC81RD5nnmd@nOxVJGH)_-5)9}~&V%63r*jL4(V^>TgQl~9%{o&GrVB(9 zVJeK;sWs>B$Q2vB(K|pcJNdPd1RsR;LWZ|CXv?S+8x=B@obebX5=iSj%)jX|cb@4o zru$kBIOg8j?jBc{rzDrtpt&R}+|ZZxt0%B2eF90|#XixaFZS-rT*l4{}lm zZSSoaNrNZVc&^+(0(+Ra;rYr20X2R*+OdB2@*Bnr_N+qi8jOD~v`yhvGN9mZ;2lHh zhnUWhg0&x+Nd_|H)e>wmVFE{$2Z118zEB`{+1UMp)3<1ENSn7%0)Tws>Y*;m=Z1!V ziC0WKJ-`^3p4a5|UUhI}-PxMVh{p{$qk9Je3k5kpx3k zxh1td4z^fot9}Dj!&;B`0r#75dUG7kFo!hUDizDEt3*NPsvy{4$Q1rygQ@q%IHQiP zwJI(sGorLP`DnMWnJUf;&W;NlBMS5l8Byn7-pbqH-lEdrcczowdL84zUzP<}A;r(_ z^u~yXWWU4>;@3N=bKSbA^Y=Vgfy0?}1i9c4$}cL+#FC}ptBZ-?WUQ}LzWRqqkWc%JdA++vDHRgr{YCgA1NSUuI-L<6{C1%{_ z)%M!Vd(l}j2$Q{u@<`(NDWd# zlwi>iAVF&IF=Mt@N7j9+U}T7rBVLoJ+dq_+7ieLrE6{O*Rfg%4Ph= z9!3&dUWX%6o#M6Qh4fGC0Lpf!bV`8dZD^Tthdb#t{}%(P$A-rz?>SfR!CaPe*~KN| z0GG2OYgjyGE(n(l-;n#V_X2M~L(+-tYY1KtW*mw;Vpj7XyQs@oAPe+(Db*RO*lY#* z5wgV;q6{7P57Flk#B+ERrk*$&_ad>7D{O_G62}TLP4qr&MAO*3tos>b#282b+N4Vc z%^bsaFNHng2cB^Gb^;HpW^4q@7orO&QV+Orkvw1EV# zfADBm2=+&n{!8zywamzik_@ee9eNLN(%ivk=LXb0)xMFU`Dr|rUL-_k=mgycTObKz z3F`&1rR1Fdr-gZoO}UPNXyJnXOQDkFZ$ya21tn$cZ1J;0L_C$&haIIzK4e@B2{tM_ zIFBzuKFtNpGBY&uXjttFY~OYpSXL)_Y&#{f-jgzXUVB`So}WcFPZbx?1cuY~3R7SR zEbwkzb%bQ=PDU>BJ;1#b0aaxy_LG!t7Wr_o02!vjcz{ASKi1V(pky_ddsNBzR;^{y`Ip$%m(9FODwL?O_boA^uIT{HkLO1 z2U4O&GGW`%#%CLFZU=T`Sx0}(!15k_|G_0N@-Z#E2MNe>8dIz;T4U7yFaRA1-akO$ zO02qMYeH@Sq{GWaExU(asWd=5>>3*8OCPRpN1AL0Y(bu+mTf^b0faCE0w7nQCe^@e zg=$(q3)NUKA9z+{G~;N-;$KTbe)q$?fI2e>v~P(+SwE#G$@`AooTGD+}Aq@B)h-8e`gS>YI{HcUZg%#_CO@E8D6z`{)I$y5UcGrO3#iaRESE&^t1^BV^oy9x05&6kT50UW>Q%KvJOhP{Te{f`1& zC;7!2m)8Jdo5&g0;_ljOsRh5yce1;Sj}{enD{5fsbAWKD=cnHPmfz#FqZ26pYB_H> zb>E1>Tnj=-f8dk{;z16dE4+shJip z_{L>G$+r31&3Mbc_%joK@{#ulB&a3&Xq|0H{$?xIP}W_~v)+GsL`$oLJ}yI?X$ zRQchdusIqdl=P?5u#r#i_>#)E1{Lhn)0~&EeP23EzU9yXx>GeY0!TSNXqGja(I$;_ zD9Hz%rdmmWiQnF{X#Ylar#sLM@CK(*EkQ(OKE<;GQ6uKtU2S~)Wa36|q1e81->8?P z@rcilF2rSBjY_7@lBN8}a5OT;j$ylxXT@dxRK7+{Z_woa2wnXKmA`cym1(!ja&XI@ z!^R2I1@l}-gepw4^?*f>gLfbh?qY*A3fcLhp)_@>!!=VQ{yC`r{7zJLwi+AEHi@5M z`CWePM$XUHAQKzA_iS&!(qCT%Y#E}YOS=xlmN~*-)Up)E{KMHiM6@}0BODM~0SSbV z?w$+&h9hgMRLdE&ye@FE&dW8fr|{3qklf+FD>%7+NuMG+zQ^+H*qkSj{a563SN>9P z%?1E;mv|bZZQn-0V&MAoUOy24@SBygp;v?sp$W6@{NnO%y&yp}47gU9g?sJ!&Jh?U zt2cHEg+9Uw*COwA`H~$w1uZIebDZT3bTY}6TK6s$(YAM0X+i~5MW{L> zb%B;HsNk%(x#2Y>iOgYh?S%KkDl)wTjyE3c)N#z{s?KWkd>611;U(ng14m4*1I0`c zXqnCph%>=WUYJTUj?P$%CurSZFmgT29Bg8){L$+X*PZofw=7Ro3tsF5)AC~03JWlR zRdF4z(hVNC(rk*|=!M@!2PA3V+AlCnv9kG8jg@l?<#pk58O;!DYP~0Xx z(FioS^2*zy?XH;Me&i13pMzucf=2Eg`K_@9uS^Wj!}gxXW$#2r&{=Bz+%@4@f^f z;FSF|jQpPVI)S;X*n3lw00D7){kEA>=4VzHc`=0P8&ZCLTFvg zwMb6JDT_Nf`Z4ywK$Sfr#Ng!5+J*hGYM|D#|V*mj0N3im#1D}2k$hW_STrf{x6w9bTWWP5d3 zTIuJKlt|Utl_2e&H_NjDtPb&V!_oxmV~E6PY!-u&gHf{DRsWmceu3cd6)Mp*xj~xQ znTnsGl}I)s)> z+lLT%Pbth1EW%|`a1(hhxrU!+la^D;VE+KzqlYr%f$t%jM~h_wA{Qi=PkLheLhER{ zPTj&J<|V4LO0~|9GXhh_%UJjJ%Fb*8NlyAUv9m(8NJOi?F%t-h#1!nnapRmXCPE#G znTz?)EbnkEUu9p-P#6soioF7w82F}in7E#k>%ag$YVnc8h?dvGlOC@ALlVIb04EVZ z1rBWclCJJN=$?KTCKXX6gHE|bB#H-V3oKf;&a2G7CqWnS`s%^Ztv}?bz z>e|u4VT1aF5Y)N5b_P4{YH1qjiBkmidw|ufd9j%0JFlT{;8@@%AXCB#d#~pUnP=+9 z7kg{}#?npgWoGwlV=MDC&`77U`Kk8+$RTg+TvShTk~)gX zl8&ZX6w|7#F&x(_lI%>7gSEr>^TzIF&%H!MWBDod8$3iweg69<9(;N8@*drvcep*F z0^Z}6+>FX3k|UXG`$EH$f0zCRpMMF@Fx}O$VsNN#P3#c^&*yZeVH;4b;8tkddx|NV z=Bd74_14Yl$b-f1eDeySw6YEpe?zm%|bS4HizcaHX> zP+o1k!GzUtK3j4OQx1ibyOn6#1F;xA3sgat$JgG!hhYC{J$#VC^GKn%MoofZv&;Qb zsz61Ep|p=C0yAuWIH4lvWksDz4P;tv-^;wD!^CmjO}%Ah9?U2ja|eusa{L|B1SfN~ zLG4jZu8ES8OLO+Ipv^<|H_yv3O8h=P%z_Tn%^kJ$2AICdrKjfD$UDW%IIkT|La1JR zQBqLh=V+|T_8x6ch@cEhJQbxbZv{G}O17*(jGk4e&O2ru2gb>mHg-R|8lN}c zcE7&Pz_>tIg>U40G}Y^C;Uo}|uAepG3Gu6+6Xidi&{ zh55&{+zUlI8r_9svj1^3M{mjhE}Av6gwg%zUGB0i^N5YGyph9q!|+3?dlp(Xd|%cV#KX7u=^@DBYi5(34t4Ev)pG@HlB;C{pK!+v{pu{{{-itvbL}} zJ-0hzd#x_?q!o(9v}gyK>F?BawYTr(qB8>Ss7ate@DSbudj=jS7xynOC&88rh80e4 zDN-=fAQ?RMdhd(}2tbl&vHXCc+Fuso{m)M#j0igXs84u1-+5llQ|p~5%egfl1n^dR z1k3@SD9^zxLJJ^)>LY#S!GIK?Q0_7mL_q#=Y|>L6%h)$h%m`w-Hor8pVsEKP|d~-RgEWQ zy|T1F;Me#^SxmhRdp#(1x|;mI*aF_VGcWRq>QZ8$eWJu4{aB;7Y1dUtbTC}g8+t(s zk{-)`X=N#GF{&FrCnGldZ7ch@h>QYgG z;E?LI{=>@7u`X{N$(2YBA1o@x4Ww!vi#F{!PE>^Kd_)s@csB#$%N4QC`QK@8Ns zi2@PvvvUCAD@$z6P&vCo**<<-PFuHt>nXD-!TZF@aKFxOgXe*R zG&kxBfra0P$US)99V)#1Y5)~eX7@ZWQ>oKPsBN=w@9FN|gYKn_5`ZeaMfW|w?R|W! zGcHSYbj$&NVIZXpq_%?u83#)Pt3MtuTGOMFm)*erkJVG-djH7L5X}#Q-oW29*;WrJ zP#Ngqr-E~VbaEWd4LDh~4NH2BqyDtpQGKnoc7lgq0Xbuw8M+Ny&B6QN9|npA`M8&K zNOHkXwiSBbX5#t{V=6xbxS5HCF0juW{L%UFB>du(Og)T*DP&D0+pg0$i$b)HfMZ6& zLu{OG8X@@Nt@|NizfDN%Y^(&{HU+D>oF9pF!V%aX5$R5j7*?7l>a9I8s*O{pZHn2- z^BE^RR(BJiI>}80;P6g^#Qei9BiJ|O8t}yK281QSfX~Cy0&F$p^U`Qe9B%F#fn1ET0y|=OWrWq%xLYQnd&fBw7f7^Ym>Qls#hJ|%kOTRQeai}X z!%UP>;H%Ar4tY7e2NYF^Fe93n1J5wco08^ zKrKvbOJ+FXD4g#Z;d#n7D0g@1jN=Xm(+bot?IH!d(%ZF&9DR?D)O`Il*GL{s>t@MZ zoY2YMsGt7XY=KLo*%jkk=kg=Cd0Qt+$E+@qu^`s!TAeM-h1}lUnj~0NK#@qisR@2r# zWiA?c9S^^)R}`eZhDBtCr(GU2jboZn0u-z3d^A=Nc{lbKKGPnq&OGFTG;q;`#nfZn zJEOXCqfvJ*%P(9e1stc&u11BRT{n>=-ipENUgI+CoVz;l6mX8L2_XT5T-R44j&y(k z88-KrX1eURJy-ynKNQH@?WYi4s0{?D-slmQ4rG2eXnq`W4Rfh<(@2F`c!UrY)cibK zJlv0Sm(VAiIRTF}qUax1F*Ctgu%ZeMJ{HUxYNEtSnJ<_30yPMDV$D+)5SnmY;FBfz zPeL*i4D|M4scQc^=awRRCnEaQZsLOPB3K|hrCJ+t&>Q*hJp!Yni@hJ?qtK04PSlv8 z@v2G$gJ5k;kTTs_3OszBiCd*_z|4^^A0VH&+FqfpjPWU&atheu{r+@0>GAG19&wE^ zCg}O9YQ(s^&8*o|AnG*XI9erC3Gy;Z*@J-h#?RY7?2)?^hon^bUN%g@=8hQE?%IRi zg7B0OHhGczhvHaL52FGS5KG(kFHJ<$al>`kq|!-3_FkBtn@BA^#XKP9-4Z~J>41Wt36wB9lm z46ffjoU%)zkbM>&e*YrdUA%ziRG=bK*O?-BH%=Egbae;31Ud0G%4DaM#BYEh3$@nC z`gX{;R>$L&>=?2K4R4>f%IVnC`XJz13-cnhD0}wG)KBwDrrkPb4+&ZaUx2QNwBMyL zPG&!txC)1zGdG6-v{&833Li@LA4yp|wAe51lM~+Q^?O1jsPmjdT>f0nhOV0Cw(mjg z#xUV)aga7uj?d_>MAPF+>jt4%IE!nz54RU^ds5nFUzD+?g3Ks)wLH0r4;&*hu`roZ zxEHH6Utr1{Jcd|1*oE*pB)VmTlgx#*b$>&CSU>!DAOqnTN>q9``1c%sV z%B6oyQ5|=T1LSUPt#{A(#aDvsM5(8L6|*6c8vx8;$qI z*}V?*^3f9zxY(%TikVaYqJ6H>Q)8#iq4txyW4EI#paZ2nw*CdE!3{}Sf~7T7m!vZb zPyD@G<^?$jo|>I|LEe2V>{W4JcctkO$)3EL-EQF*-ae7`LMxEt+bs1})2!$`q)U*7 za#5ac4h|~xMrT7Y=XPrmM>N0Mb`fpsZJ4#ptgdLEYR*GBm8^QQ!v@xv)N(-|=Y}~l zXn&kKO`%#!AT$Ibm;z@fkyT+h)Rz3SBk!_PD{i5i3w867=Hx2*`C+uzHzu#bzs3Jx zZKsVpBhi=T_hw##ajkOdN2o$ZTfRO!)L@goy}Ay1xN~1~_rPX2w5D^mGQ!2X)2~N! z7)xCKl3IDAbkx0=dNp45PIeim(zJ2U^k?QxZL`3X{2dhpWxs#S^(++Z!ZB{^uVpBx0-hh_#kdrMI1)JX`3jpnHN###ANV64nDrQ7{gUoEY+bsP z#+K_xmcHvvK%o5J5&L8u^u;<4QFK){K2Euh_ z&TC#iaX`a5fuSmm76Nwz%MCQcb$}MgivA|Bb=$8MxI-Xx{ZTF*yCzrg{^iip+5;R> zyq_S&i>aH-S7#;^yBFxWIh75>XhK)yKsNC-so<2-;1!7s&01-nC#)MlOQ5g#R`c1F z(;sAWO!@|8{M$8ExILJYC+C7%%+F776`*v16`_CBc)$^W=gJF(Tj>O!>TN&#);sqd z?n|f$3jHT(38M?FiQpZ~&!$e2m)bPsNG817IAF?SM{pjlIyB|^9EW5kM;=E4D(Sx$ zGQCZOL*X(R(9&j|luynIS+m4V^Tm_kOoc_vB{!Y65#5icXdCWoG_`xz-{-F!FCs6I zm3+_z!PEBp0e#yPGG*Lmw9T}?{y4#vQAwAaL)3aC^y6B8_MOs!dTdW|TVW`=-+4T= z&+jU+T<)gtmBQn~iX>Ix0-Qv_DH1@0;nLEk(7_u0$3hRqnGmdf0sn>0ywL$HpSMJI z#_H^ae8HTkpaWQyrSnX3nsTw5BNvd*Wu<8PbbcyFrLK~^kuIUUl z__w+)uTyBtFM^*qQD4)));30as+g`XS4V*>_TEf>zTY=D^WjiauZ^Q|lDYa{=)4_I zt1B(*_JV$1t^UC8x?TDnZpe<3jp|5jB3s{ri(@x%GrK|jK}<99vN-dzyQ?*d zecT$Rc{B)T0lC&Mg-T}G1dOtOkW+IY&%7gg8X3{~kPh2l?k?AdG#$4fuDoE24*9@9 z#~h~#0|f!`nC5Z^mlJ7t2Di7+nsH_J^e1YN5CpA5WCR(JE&I2R!l}1ey16wMB|LFA zf)zIyG4cB?{ozNH4VVE|b1bI06Hc@J$b{zZ%W_ZS@Ddp%QvHK9Z-WPABvd+~?nm?o z~pv@`@=4U(f4oTf6%RfIb}nz-D^ZU0vr9AGw_K{U~>C3 zLdeA>0?K7*kh|AJaGZM9OK@YUv3YQP%J8|M08AeCc0Bt7( zH?VEPz$(vlE4Hp2FNQ>q6{h`AtPiWz;11qa-C3-AquUp_e972#*7Bv?3Lk;bya?b+ z{7^QzoA*1E2KK{(keDXZzEh9WfQ8)3c(DBzz^bHMZLj;p8r z&iDJdF(ZEBdMK^?e--FPuW4U zl7@#4V^aPWYig`OH)C}!Tzo6T$MDk8B~avQ`!B66W6J~FXakd*%fa`r=rXP8rG&(Blr;QE+%(=)Js zJCKm4vL9lRdQTZq?+_-2;OVPJq$IN=DU>C=!(ubz^nq0I>}KC^u*PD*K!3 zt4sjgLm-?1faPr_@nen1SWvs+#=ImZF;=$@H&o%9L)z$Xx14kxHC6ex=VL zeihe}?@f^m;v8TTZap-`+EuvX{vZbc=;v!rdv0@&05rz>d}V#T-fy>?r@OmXd^3Le za}ESPaiCyNT&b1I92121ORDB;+BjDYAHSrcu|lwTU?9N?fv*gX@4+qKym|A$ezpDo z{Gb2RO!{#EFqGsA;6I9|T;I7-k7fG}%Kz{h96dExH!fEu{rlZD!?K$P-t&~w-+PN6N`(u0IKub-{ln_Rhxe=o?DO#+X;rc9 z59S)6-~31r=tfpq+}1d}ZX-LGS!*s1u&>S!VPVgZl*Jm3C?_ z$*u+xz5y(M&k)bLhLaF*j6S4|?sCi+A!1rV`3pEkxo9(g7+oQlOwq(p6lpE&%?#YR z+?(Mb;2y>PfmHwoa5Vq`CoKV5W-6E`X8+s+AROgyWTNEheCQl{|xZ~4F5f29i z($L>EKu|e==gA--D;snVzUt$@aPSg_q=>_rj>qLmIz$HwqnlgK=%6^PqJoj9R~r18 zx0PnY6rq`b<~nr;`E7o_iTA|m+X$U`Q{GX&0}givw8(XtmKSnlnFAf|WMuL(`!C1< zZ_>*~J==&Y0dPjq>&^gLyA2F_g|nQMMf+igZ^6Med}tId^}|7cs}127Z+a;_c8W1u zV8+1r<%Fw1nT0q2;4!W@%r4*a*gnN=_YMI3qp11Oo3|ATi<44iI_Jj-Nt16hBmX%~ zzUR2X2jEG2ycqhqgxQ^}n4Jl2l$Soqa%e_c>Ng&v*zs$2TOC(scHim)Vj7Gr zLtw4ELXUtckdsvO?jxyI6f%^ez2kF1-2QulBR-r6v$G0c)Ul%J+J>bBzkzy7mwfiy$=S7_k_uZh4MWCK04$e z|N82aPafBweDdeZKmYSTZwdH*S$1#VHvhy^^uG*w>48h7oj~4B5Wo3({5px;%^;h!*^*@ z7!f-Ka!NLEpNZT! z3Lp#^T9*DG_`ctPfJ(nkY}Bg(Jivz!Xh&!V2L;07995(@re`)FXXkA6%L{uG!>3=X zqc<>N9+i%P+c`z6Yts!V2bv!Pt9ShJ@W5<0@27zM6e`^S?s^EI!72sb9XEN|dxX3! zl}3VcFm`70V2naH2_~V4Pvmf2HqY?qi06U_L8QcVe@jy${Usl)A1#)OFih` zKqZXk67M3^^3Aq{@iz*%WrA(45B9<^ z{^PQ9TinrC%mfZx*{OxPG zLddXkT#V}lx%!>g!e0As4M^f)Vn)i3*TVDuXnD(-K~D_a1jaumKaJk4OSn$c zu7*Ei0vksk9g$xMLQ18MvP$D=rxS>88dF6CPjg*LKNF!dE>3@1Cv-9DjVW=MJj_7F ztwOrQW6IJ$AiO&H*{_gk$$zX%5*q)UfFOFlpjtBk@MAy1N|5GKe^vn~KactGt%ezA zXK#mKp0)wN5uU67L@+dG;wt+bAcxV6&f**fpsz?+>t%oqzS)dUZ&x*{_%P#gf8(V3C5Q^ zurgOeFDVg~o~rU9VTcTn`t88U7Rxk@BBS+M3CvgipQR@9hPYTxnpx!JOu05!ir9XU zI#6ClL6z4|;A%jkr%Gq`CAbm?f@OXtfRsNjmh{o`l&_~hDE!r)xj)~9LAVJ{ISGl1`@`41ZakfUabRU+N*oIk&2 zhJSVa@ZiS1wGRsazzu$G1l(Ug?T_Bh#D{*4SKQ^#alWUubqtQvkJi939dVf$vpm89i2p#x97hfV}Pdg-^QfuDFzim)q|3f8KE6F+o>{(ryZ`? z2-xw?*3&k~A}ry?ib6EYbc}pJm<#XWU4u4>M?#KX@K?Url%iz+T$3 z>aR=4AIC`I0wAblwR&S&PSOEKW2DB2ozq5lhnu+cwdw$#3=|sOT?NLUyJFHeySm8t z1xW|#$x4u9hB)jaBz?RQT3$UZ_gp1!^%zw=5<+v7y|Rfibqm z1YcGUwZwmn`41TYw2ZK668t55gQ2J)i+)(*%LOtNkRwu;jTpHBt2oH}{+v~`bgWa^ zoR?jzmQ$IIWvI+bO)6;MhOnc^;6o+mAjM;9Dlr?&JP2@r;^1IU1$=3+k{I=DYr&mZ zp^fpDI=d@IJ))92R&I|>SKbZ)x&jv-m3VkiHY)#V0MM$av@Tcwp%1hu zdK7|+pUq)Ql>ACq`OsV%7OnvRyT{?l06?5_pXE>GiD^HfHTOsj>g#^aJ@ky#-#P6i z+}DLM(XG>C0M$uaW(RI@3k`Z^Ug9iE8vapbPrcwU4+YM+U+qb|mX>lm`E# zqUXwvusCU>AvQ_Qh&zW*eVkG+)0A4q=$;x8=e|a!Q`(dbCqia^(`(-}o0fh&@^#+O zZ1aAfFZp8LSkHObgr7liXbA8eKR-PA7sG#--R&MyxzGEaPBo3EDVZrk#>qc*fpsqR zuHmdRRs+;Z`Wasj+b&HfF9nRd*@F7#OaRBuKdctlr1XaG5i-u-s^np?li(`h<>Hnl zEGMjwe79)%#TQ>BTJSK&-5=h)d$;?Wzxf-T|6!K}{oV%vB-TtYg9!VJn|JTH%a_fy zo%5rM2ac+glD8t-DV98W900fqAe`{df=GvAb-ZXA zKGtQP5_g$4i98E)!UKFnbl7@YMn5O8aX*WHkCVCP3IIuOYb=by#aV7Vp8fZl--G!> zJ~4_ENL6{$uDP(kU@Kc_RG7fn)Qvn=qEtq09^ESblqLRz!vkJJo)D7)jgvL7Ham$~_r z+hSc2;M=h5IA$XtAv}QaM#1;YO5am2{O-U5*9qSfuF12a?LPbLGkJCYhg}x*dmjLh zSbO9s|NHypXHQSt&v{SAY(H&^k$Q9uj|_?n;B{L+wpZ|um80mAD2hlgzP%e!P~z0%6(J^%|hoe$-b zvZ3x&^`Sx#DFz?}-8x%AipwrR#coAWOZ7i#jX?loXHih6sl43X|A_K``_)%GUj`N@ zt>R~Y)CK_HD}G2z-D&c)Qu)o!OQup$lo4*cLAkVr`vUor#7npry(XWCvkW~CBB1#g zJx*`|va9@jd`Dbxg>GK>`0kEloQp?phH{{kJOZBG)139E0w>Gv;IzNir(|%+q+kb>$}@@cA4cvOGg8* zyT)&jf6D+v*t#YSK}l$`EKX}zH$~GmLNna?%EqSaxc~q_07*naRDKD6!u54b=XLJH z^T!=?yl1|YA8p5W_i+EnJ4Dc3j-z|3U-g1=F^ZK^6wgOj`yc@xV!~2g+Ai+_WMnFE~$-IEd(*1d;Dmz+3~zEb(bU z>>xelgFvMms0XR7RUN27^?s8)u55muBVV7r&;87~+2xLy5gzN#i0|;%7JjOA=RUEG zI8Uv>&2bzRJtys|?weoKZ=X8(;ynu2i%&k~^fq3F*R%m?lYv*0-v)O?ANtm7gU)9g zgu`fs(dc!k;iQ4Hs3}x+gor5i9>1pKIc~=H;<#{zi^e#uyYW-Q;ltiK(4)=Xy}G^m z`Q59h_4aCe&vzl77%X^)KpOxozht0ueS5XJLgts$ZI2I1qXI5=tQH9WhE;*%=bwKr zOoa;#>-T4d9RK|U`Y-?TFY7<~lRu%?r0?4XS`O6RQp;r_$o&6_V5zy9^FILh{cehfUcu<~QvvctG5x5z_oH)#}!sgdp23-;I0 zK1RMEtx(O=iQf~)KPRtwwVgM_<_&vwX z9={%H)%cY0ygB59pz050(>_!D1XN`n}FuZ|k8RSLtV|zbSh0&i-%ch=f(>86*%M4U?X!l)Ebc!s0A&ZR2DWR{7uPx8bA# zXQ^MM&j4WK1MIA!1^`u`u5jO={BMyVTmt~)Vv-6#?GX-3rR8q;F&; z+!ler=e{~p;T=Bbx!`uNoE171`ongyzh{4h)zS*f%CCmhzrft04HPMDbKXpXcGOo z=Y+n1KemYj*J_>$!@tyvo*BlQ_|)dWo)I8V%(?r7SPs+lG4n#edk}nO`&3`HSD9{W5Tm^^%rOillFudi}n!fH{^ZJv^x{gnLswH{a^U;8b zHG2Yb2v1m4e%p`l>UmrRnDZZ6MI%)qgXv1Z?34U7?B1XDP1K!Xj6V}cKly$Ve|48T z|LDh;H#gVN_l)29z@P@P#OVRY{f3W5aPa&My63AU*A1{=;GW1nz>~-DIG28dJS!si zP4V^m{{Um)zgP2jf5)5uFMdN}{fzI1oN;b48FXwg?|JN~{Hrpnmc{=giaf9s&K$h`O_4>SMp8+fK?#SXph`Rg0Bz~`%P9b8SpjJHJ_vBYKxf8u2EPs-q!Ul& zI0%5YM8Ufe(A5Bye+B^Xc|^34E8c(7W1A26q2_kN0v>m#HK+|N;z5>Yk%qY;NY zZLQG*%cD{*MX%Dgtlelm4gew(PA+FPwq?tu#~M5Tl-EULBx=CWf6v*z zZq>v7)K#a^RQ#Ldd7p0CKFUpNhb6m~JX`kd6Go2YgV)a4s0 zvij`C%jZ@{1`ZLEn5p+R%lrEkOTf#&8zb?1gsJ_%Z}WGH&p-cy5AE>r<(;2%-jfkt z>{Gk^$>eKF<%R*c1At^6Ma>O=y0uY`AZjMzyTp2z@0otz3tOoEsWk0as)7|xTCZNF z+5#OF=tv8rgpBwF5^7Ja{#2+tx z0OKG)xWp-|8RKqTs%CcVnO$)`MGm+DES_hGmfBMZql?NtI?v!2XhAnxk_3Fhs+-62 zLH!K&2?L&zA<(T1!pUbX8+3#=8Lh+boqd!w9gT`V%AY2X8NN84C>s2z^m#{>XB+?| zUc@bQ{JKvd^onz4|7`%^HL_9uZ2*u}05qE&qKjZ_=qwGg0^n-_A7nI>6yfYTuH#2r z?w7KEmUNc2qkyl2$=77<$M{-SUuGF&Q5??nJ^n|($qb*YqpXC*Ny|(ew=@6M6&tCq z(6EN#GC%FP8b2`YzBDkjz`9|y{IyrkOUZixXvf?B7R~x4R%0xu&1cIzurC#(EeyP z11z30t9%*oMD+*o zq>Iq~q8aKnVN?=Z8jx3gK6vVn_X4OV{PVx`3s;Ek*Ip{eB>u3Gui{Ugk-ON@UEEFM zq?JHKGMtFvX zuTMVVZ2yjDUw_%M&{_dy4gFAVMKk~L7mvmb^q&cWi*|Nzi?}_z_66U~ib^Lbz!tnyp z57vmw1Ja71($DM;S;FFw=@lXQWGu_bULTg*?3n2|Fi05AM&aY@BdqT5ii)LZX?+hs zPo+_^1x3+xq&B$0N;WjqL@SPRPPC3Zx6c_2crdAx-F-%zilEcKft`Ub9j5R79sK42 zR{4j9qR+tHcE#S9Bd^G&_xKJ1R66ixFu=fh@j%&*0|RL)UIzv40pPmdz~ZE(PDq!= zL)iq5Tn7Ql1DB0|xb>HWns}elNTWQTnUS}{=YI8c33o2+oA8|b`S-ZL%kYrZ`?MY< z${-5Ua`vb;W#DO^ ze_|6}=RLuXj&lax6uW8g^`jHCOg!}yUauNPqw#{D6}`>Vc6WvIdUdto+gEihG5ZfV zujXF2{q^?Y;d;N>T>tC8{_F9-{kQ)%g~qTCj$UF4T?(T{}1c` z^}jx6FUS|{t;lxz#m&v@>&Hhf^m*EFesafq{R1=m6-)b!l2|T5>0gtv*JLUKfc=Kc zeDbBf3^r+ueE^USgi6%k|5}v2ILkIKh0c38OR8{Inr!-rv+-dG`FIaGgOSNC;O3F) zs2l*)(tSEC;+Bmiinn6rX*er(t8BjKw<2ioQ2=!e5t+tSzLtuDbXwc=AHn{73!^7f z@{*Aj!7njfz@PJv@-KyF9qy*_o{Nw?;=oaT8XSu_Hx`C}vHreX~lQN4P3*Q~tQ~I*reHbL^`I3gE(*TrkgcJAi0#lN&NWEqWA_ z^m9{wl#%*BkWG!fbq!=m1NFq$v|XV3w(#$ra10? zxncjp_5KPy$Uxxr>(|FGzx*<}hx_;!fAJRw1_k^7`d|O+@AQb^cRm0ZmH)r}+d7;2 zj>n(Vzj0*(z2E!yk6i9^b@O=Ge@ZU!?0!PIe+JE6{tf`H*yVqPa((^&{+=EFPkfe} z&pI#-SJ~$n9huI~e<}}(l+Hak8oA5<7KDXX3Ya21FJIg#UVi$~4tc09MW8{JUkV!K zZzb(+fP|64C)}LlfAAc?D-kXHia_F!cVNWHKmYxyqlZsy{`){0?z8M4|Ab?sNbFlU zwIrrLjRGPB+Y~f->OjO@G9SU~H=Wr_JeTARxJ2V)e$Qz={)3F9<&qn}>0FH?a6}FA z6lMJFHAbD@-5FL;MP z9Rut%6+Q5grTsl8J)S6MUnA_nWgh^YlCym;zwt|e-WTu)EH1~IT2?r4P2a>?_{ku4 z$O6Gp7mZoj+02>_H_@k-=^0JS%hXx$%J1+=KI>=9_ff_OpYil|;?10%0C~&_hgM~dP?bK)BZGiG0I)u&;I-vtpq;1ti}DAr?JPgX0Fj>= zf5TgU90X+LfI6b=?oYYh2&Mp_TToLrLI|7o2rP?ey}It7(-X5h3;%o8S019(EfL|G;C&}M1{pxmL+ zPI3Z(JsNp^#$6J13Zs<0vVFw)p)H?r4}xi``dsm~*`|N5Xc|Pa)$qf4maI$wNkeA- zq~XB5IQFXXu&t&_-y@wxUL_m*Hoy*J#J13uxH?K{K?gE{V5v& z83#XZU%h(8QTD@;PZTmH-tW05;Nc(s;UA9w{LlYv9DgS(0pIxmpwIkE`M>&v1b@nm z_nLbX7zFIrd{+@A|6~e3=e_s;%OlbNda3y+=%5dKaZ(M4bvG2mgenERdnqPZOB*@H3JIu9rbQHZ#c`aGmxsTlT~Y;9Gi~#lGM% zXyy9QLR;CCKX8}Q8=M{m$TL47`+(v$ec26;99z5cd{pXQ^wZDzcf4UzAJEqA{Xb1a zSX|Af0{gD_^_q(4ZbO4m!9*-S4L+mG(8vQ&b(%q&D_@rD7ab=NxsN`6)>h$1`NueLW&ubw_L3_cfqzuB&L=o)5|+y%gF7=fRn zf4o1?fx#WiskG;zWNQfebp?#XbwVZhQd{j3!g0KgY(2e1!zcB(aPQ8Wd$Oh4i=R0h};Kd8-H-p zy0OmH;~=7AM_UHmMtlx*WcV7mWl#xuk@sTIFLHlNLZZ;)amg>Vr0<;8@%kNMoVgYj z9Qm1ybI{#S5~!p*KOF)+0~NssIN>x|!amZeAAvir+YSn(W%U5K;Z^?m${(H1mTS6r*pjcgsaLv^RWN?rvZ9GvyvcEH1zKKa5rZG%~&a0bFDQ-ea7unNA< z-qTnb&A3Ds?Gf35gEJD+ntx~dUEz!C{vu2H)Ez$;tgO(nW15V~PxITTv(@-!#3`h= z-?91agXli3KOG(;+v-*F;IxjVEJ3BL^9pbFXCJB(cTy$%o<7zKfW&3Veh^i4cShL6 zJ5YgNxEcFPoF^rJhl$5aaEv2KR5 zelpQRUS3l{s@weG|c%;RYLeA{I zZ{!NC$xbDq3ajXaM_T0LU*+%WLYFU|PRIKTxD|vIg6qYRnaEOD9%#y;9hA~n`9tdi zfC{5UFJZKBgdW;_B2Q_o-N*q$Axf} zG4klQ$0@Y)pCRq%B;8*_zU1Zihx@w7S$BLc@PQJ`Q0|n>YqxyjoBVatv`gtKZ`(xL zMiSTRWW;ybH5`!Fm0Oqp{g#R=r^4c-2|GAYp8A470@rH;+9qM9xQLctYE09$3Y?gV zynKcp{+7n>rU$2LIaxIR#;xM-9RUsk@U*$TxxRTiuolQN0Q-Sla-eHiegL{c4lg8+ zTz9`m4=(vG=3>h$L0R7$xmLj=7VP{#WHo@>no#~v zUI3KRfS=6aq3|8OS&{rZt!ZXaE12X~t5m75jYjFa5>SuzulQ4#uw+@DN|ezm0{{mB zDs2_L8<_YQQ3eRwH2_fK42CG3yuWRvs)WRwrNufWPy?93X9JD1>3YdrO7ly+m+<=U z`ErT=d%%4xc?td!195g>V5dRLd7ecrU!nkj)5;ar)7tz7UrKqRDN{aemkgWIo^ayx z;LjN-t9m7Wz(YTx*qtRr!DIj+y@drmN?*LA{2qpKHKRSkMV)`c-u%qi26eo7(cx!I zAEDt-uQ3zQ5wl&rsG_7WLz9@MWl=zXRQ@ol1y!1{6GaHbG9pXiXne_(?{X5b{zCH6T zg6e3$O;3vL&iJ~G@4TK`YkT$Y+1C}lD?+XuY#e|S3SWJvDN)`S{kXD}kG(knfv)~_ z9B=SqtFM9K?9XL@tIxSagQ+8B=VbaXSD<1o=J<#{tk(ctT5g zKM7qufjcwwNIS;^bL{<^k%0`H9bf|?Y2(=fvxpJ1RIi@L@4Ik+=L3Mh|NF(_-~R2_ z%e%W*ob%tY;=l2`$bPJc6@X&~0c_{Hq5@o#eL4TnZhKyqa^^p0{V5(R4mqg;&Qd=! z1(%E5@MlR`B(_O2syYv|B7`YV%&p{D3THxB!FM9I%0G%9xZXE4UgLm#PXX*0Y4!_y zx}x{}rSI;&&Ch)ZePB?&6LJ^S>~mbDF-x1qJx^mju||Ij$)pbcKmmm%G?geXHe|rR~pNW924@WP+lcm;_(%NgN%{Z z<7o5}mfj%N%Le*?^)E<{xFP9YO8!y_sz=ZL{yNc<>&V(V`5MCI)J z`MjeCR@sJE8hk2l+E+H?35)AI3Y1qFF5@Q+4cFrpS=0M73%nJKG6|Vg&rQ?MUsee<&Eao`Xla1U&Uoxsf<{rbv}CZP0pDEXy3{5|K-?4OVQ><(=9+jHw5AN66WpNz__nM!e&yo!E4 z=2tnMa!Ah4VF^ub_!M2PR_ImEz3^LJD%Jr8g;;|C3vx;LY$|lNPse0DJgVn1m3Ky$ z@-N%LiOTyzloED@X#{%(IgQ}dE?}JCQx;st_3O(1r5HRD_6LgSdDQc1v^)H5l0N3= z2rEPPATyQEHrw$wg+^C7MPb>?0o#*VDN-@8?fBB%u^njWuUDFgXztD*9BkcmcUD3= z^4#uB=lIe60*^^bZ`aOG$P{$2X z`DWmGdXY65X`@?$Wz%up7Oy#%RoFkS-`^$=`lJinT)ZHn=d`pACtr2saR8B-GF8bH zgyQlu(=N-~SNjUr{@jhG-JpX~bzC)OMZVAkav=)A$$!aoto}MIU#hNQMCtRIns{u{ z9bLXbX*h|@_JHMP^RT&QM+7J1Hb>_J7%H6i2zX3s#lT?ChwmOYJp2FhU;ayajBxS8 zs=)C-|L6Z~hp6^f3~PVSj_y{4TdFn=`^$xgjuv06yo-Cw+Gu zkKD7}alb*aa?ww_!yl%cjc*E(P5M1}0n_ne3{LPaJRC;sH3?QOh zdp;M%QY*aPgqwnpO}DdoZ->*bO3YO&mA&!kGkpU~xbWG1OmP6Oi6wt~F2=7|Yl<{^ zYRGOWD8f48g8ebNaWi3OW<<4)_oNr>4*l9A#xz@8@a7FG0OpZT$7j$4kMHIkBseLG ztv}t$X)?Nd#PzTeFVf~FG|iYyMQG&d_>L<|;l=rMo=(&5{FYINNBTF0|6QKHaVWn% zcwnx5~cSpg5JjZ`8ADn|_=@ z05?jWN-6)PtP6&r;(-jq?Z$px6WmDXa3V8tM40i&0E2p~?r`sz67-@tCY)RgeBh!W zE)+Z-u6V9}Utl$tCBICV@yBOE*h_GG>!f#MQC|*~cu(!_avJOt=X{!_pbJ_PaJk;y|B9Mr^epo| zd-`Riv}lGaVqI2uhR;S)hzYIFqq#E6@(hmG@wm5KF+6A&bnV0e?U=CwE<#96OD zf#JAY?;f`MwI2%NlKkbpI+m*Y1w60NshlWQeU?EderFd2ed_^$5p&sJ<L?w{WZtoDs9UppIBSmvU~og?Bf43R$2ZEKR+YOZ%Ozq%j#PcJU1XdzT%w!=kMOX z=jb2j{QZ<~GOiS}NBlhJukB4sDr@PZG4p*cndCARqBf0Gp<5El@STi%3La4KkN5qY zzj)sHQ)rIZK5#tci!Xld2b%+nlV*7JPR9avKv1(63puY6u&qZv9zV$r(dL%N*cxRY zPDGF{m4CxQ>qb7A9Vi6ugxC`Jr-pE5A#nQ{xEfFAA1E_ujC@`)hWs)5$7o&V*YLbZ zhF~VfbbFAQOzwjK>755VV8cbmi0d-+(s%~c43hTDUd;ndgwD2po#|Wtk<)mD^AI&{C=O2+t@Z zaKo8*4DgHIaPcQh-bVRLw~k+sBfho2(6e!H0DS9g5Z_D8}cP4=PLpgLzxivXFG{6cvO1kTSC!E!0z zK590?)kNwPRvp1MtP&F+{8T?{6Kp&8BdK^YETG)e|5683{MFBL+|N@0tfi}bQL+j6 z_LeVlf|FLf{TSh^921=Jv`53nmos=e_dJ$xOJtzV6#XMc5A_org0{*3(}yd_~;35cB?u z69LmjL2ur?anHcN`=X$4JpdrWOO_s%|NX!J_w}!S^($xkcRarDH(@IjKOb0M+_B^F z=ZwYv93}Nvc=?my4#zu|{`rF6ZhimwaP{uP`@1i{ddpzp(LupF7lP2~I*M}hpQ9%? z*$IoA&-o**o3joqmDX$rPjsjRO$j&LjwMCZF8v1IBLDDq@#f1fIq&aT{93AUV35H9 zXOO@A&2M<|wu&R~p=j|zB)Ur&Xle{6U&%s;P_ zJ}@y{W`K=H1z=S4ejmUM+M2qE=O(xe0=y>x`n5A^WN={*0|W0N&@Tt`!12#pJAM%A z@I_ds;g;zT^)vl{Lt|yLAN7`R-QYrRpu3!e_Iw29l%SUwUEPBGoX;a~`DOq|VYt_r zgG1!|JM!TjA>9(@SL~Af6@!@rQRdb%I0%BtwxZ?yf=T%d-k7@8;o>TcVydZc134* zBsVavx$x+krT#6~`f|>HclJ47M|db>-UT`{uYwuV*GfDUtie6aI(e*6RYiM+R-J&f zUqP-PBDrU#-*5YK)K~+7I{)8a0eBaH0|057$Y^#g^Bb0dR+xg6c?KW($O}y3e5xWj z>`OE(@maTw$wQXBOKZQT#1||fWsMNRi8=FI$QEE@xojzT6n>fOIkx*T;0~X2eG}Q2 z{B|66GETW8uDPS&#mjfb69mYfKa+p?MiY-CqQNbXZCd7a@_b~&--H7`5!2kp-HVAr z>kNZ^DQ#mA!t(sq=7Qe|1u(*fF}YiS7wc4yOe4k`7^gguZ@|Ynx`E}*z-q+nO}w_5 z-{CW!E<5ORnrRynGv%|9XeM6d!+pVfaY5(H4u=e%M)qX_JY>!Mr%0pAYfQ}PuYD#gDBm8)33ugLDLo| zEk#e%I5CeTlsp~fAW^CCz(Cz_Di=7Ml^$OibM8KTSFG@E`J}h+;WIGcWDfc&D**elnUr@eSN)Gmb>jZA+Yk^9q-@y zZOpeG0I>YOWcfek)o1+#yy6`NXZCjv2v#UkK83)i4%q-nk~r?i2EgONR|B5;&%~9S z$)^-495w+ydHD}Y)_3Yvs49I&Z}m>6aMBF8egw?mV1jE<5!$bn>h!S^T4+=*!f=q` z2PyJpwhRD_hd4F@wgJJo0Z_4KewO=DK%VU^xI&)>1gTQ+*+zWuC#`S%n{cjhf;UDd z@0&pACo^1$F&zk{p{lYMcVnAssBU>R-EXRvW%ujz01>Cdse0%i9~kCHD|dEyAe);Z;oCuBlm=%#TkNO_cVs@+x#f=Oz!BG zWLGqqb6yBzy23Xg2Czg7i2uvodnL)1BxjoL;T|63@??b~Gl1X`uf2fACT2f{ouOCI z?=29B%rqL^K#|P6Bsl5s`_=ULaSxB1tROQo7GZwusBtwjRW&toEO#RFjJrbYgbQ99 zK94JG#P4)w-W{XLcF1FdNcA0jIG)AfXW~y89dZm@rF{E%^L?JK?s=HGU&H6HL;3x` z0kdp#YZ(8+rq3t-@bF53Mjnu&*4h~=l__Yj&AHca{sjFxA3#16g{ zELaARj^i)F_c3*GCVl)#)jE0yZtM8IW|@G>2hX z;0VD6fnx2l{Bs4hP|up5EC6&$tp9tD{StMAOyAi*UuV3xB5N(`8P+S1WR@KNyNB^} z#vcTu)(A6aV#{Sega=7TKo4H>gY~ArU?GhvgSO#DocMMA)AN~Xrvb;nFXWd5rrQQ` zVy(3JkhOh}ipcP{7y2NSL~@K40>Q+vT8(MsidK3r6%Xvtk6GEdyMz1G*hRGUI)Hiv zGJh9l$Ts@T--XY^@B4MU|35$H^>4S&w!ftA;&X22X#sEHbH7c}4CEimmAS-jvvn~e z`HlY5uz41`pM&p*+j&0}=>W_QstWsO8*z}z?xiqbJ|_QJxXFp5srv-$qyPvD{E24= z`U^ZiSAW}PKL6X#?mx0z`+5C;@m<`twS0580Ixt$zwc86`hszuU6Z&D*^JS5FY9S+ z+cjeo%ebQ}l(XLHTRD!6HUKU$^KpOaIK>4|@n+pjDDxFif|0h9yxhQQycDMRLnk7r zgvQ-;+rOXl8YUz^KCP!(W(5=u^(8IS^wqfVJC?lRC(Qa_a~5AVrzeL37I#c4y(n*U zbN_IBvV7neAU6pgbA142@FHaZ(~^%0{#oWH3jnM)EdJ@A{%Ogl3n}B0Lit4%k1X7I z>~D2_cXtYNJYmPfhMVrz9QAXWOhMhQRw^CUI#KPwg=NHTMZmrdwq{k^dGB5#+Uh?~ zgWCwX$p^*64(PBPAh?I?;kW86M=KcrDfj6jK(N>D zh7Sk%v0Tp0A06>+fwjr5zy0>xqc?BfxGyhx{nVeIECBrDKmOzLZ~o?Qmh3`YEly8S z_#bUxw5Jqm&Cxpc11ve}ch6aW&iS+3pY;v$U_pST5DLc)Nv!RAuRpDpbNH_F4P!VTz$_MZ2fP8k){mXO(cdhl*R_Hv;H0-@r=LsNo#A3zdMXi%VoS~ z{iW)!PMi%aFbEmE?zx{z0oS%pH>f}8H^0O+|RtyRcF<+zkZG!t|&tMDGT%99^)fOdX{Ce2z-(gfY)HCZd_c3R1`i zp8N;wnV>V@AK@J3>$FmYE{7%Ik8Itcob^eIkirmQr$&V2(MKLpyMwmr6ipYcnHqznA* zlx~Ed=Q+7&emdPKmhr*M6ec;7;s{#;mcV%~?I~Qc<@+2a9Fu-|03JVnI@&yG{WKlT zG}>K0KjGJeKNnfQLz&OBcs{-{EnccQi<0-r!vIcz3^0unT(ldo?D8LFG)QP8C_QFi zox%LixdunK6DIwfF^5KSeC!I9y*uZa8KB#~)zR;6KJt-93cwcvKPgjPO^w|7@1@Mgtm*q@qjQe#y}r4-JA=u3 z4X|H(h$g^weqc-1W|j&9Nd0>Ppo5>%!Lhp4*68PK-wu6!!{;zRq5omOr*2_)WRs$jtNQ`&U@i#3aRag_ z`7z8=%4X-cui%cC-owgK)d@nODZ^+y$|O+WMgy=+l{g3Grdj@f)Do`w42DzTje?MmB*}) zb%7GYmlvm)a@XgckE&(6zu9k*e#u!7oq2Hpks_&E?Tpabxov<|$O?==2= z>G5yac;@N%-j=z_S~^qk>ax!ESaXMRsk7GI0)exACqyTkqs5yStHs+FM{x_&uSf>8 z5JGu*{jj*e>UJ_0KiWEN3$eU_2VRi+61Omg2ghSg#)`q_gFuwQZw0_K=>yP8Xp(yb zr2iL}pVGW;4m`dc_XJQ0+0}{@102`K?K}0uhFsX+=o96ZM_BhgV;Df0_v#p0Me8A3 z3BAAND?sdjgPoI><Lxmf(;7 z=l}elH)!PPsD}!YV&HYy{Ez^!{Qd8Lzf-&4{qA?J_4{$3bF>rh?r$G{Lsi}Be+q(5 z?rtBW0YJ6>mUEC_UEkikpkeqd+M{~{j2r2T-TzCD-z^me?$B`i+Z<>vb+F>mGG`P;e#}gjZcSDTJ>n(DINITi}m6QtZreEWO+I!?BK6ntrss}a^wTIFgv+wtsB%5 zA1@vj|MthbSlz<(vlZ=J?t;C>`j;KCxb+hs`BPw`BR$gj>k4U*6@*n7UeX;V^=A-k z0&TikeYRUC{ZEE(_wuL=-`w5`0rpMv@xhM-Hia0l_~{;g;1kKJ!U^MlGRbn}J3Gxja;I2<1G{~t}yYZMx(+>TH+edYAMgWdl*M*=5C`@@%b*h_t@A=g1RV*U=H7|hp1AYcF#X%iGH=k%bBu?n0<(%3E_Jhy9Y{NVz>~#Zym=n8wx5HiEcftN zVMcoK>$LkhOC@-FTDIzy_G@R$Sf5=E=>zo%oKI=zG9AZ-b;Pfkz07}u@U`Krvu^u| zej7BR8)p75&sU3Ie|5b0t1qFExP|E_W2^}h2jD;6Ek1mLj^DT>Tku;aO4uu4-+o*! z{`}!6ZejXa&P)uYp=fxo5fPZL77V|9E*RS8=0J4pLB{FXC*XdXn|lHv)YeIX;Oy+h z;{5zP?jwX9wGnnQF-aE_3vl9M-o@a{FNyjSl-vI0PESC$&opp(Lt0liH_ML~SMGs( zT&-^4AutITKiKB>+~o^y)c=yj^xu-_3;eFQE%=Hiy`~y`A#3^lCnVgPqoYr^=jXRD zn+JGx9aBq&iv_m?!nU5a@9@s!vjRX3EL(PKxPN#Bvpj}bpEKCF;OFQ!H11b~I43-3 z8~NZ5A3-Gyw*cOJad~m|f|>s}W?)h{6_<7cUe$Ic&n#QwRr;qq$WB&Eqke_P* zS7%3yZ(gq#zk0KdTbO>%_O%>}SiF6Aymbd#3!@(&)^Q8d4*>m&KYAcFhOlwjOw?fnXaeWJHrzD8dH=D-4#NQ8 ztPBDG&G`c54m(c~hYN16HeE-6r#7;I0eA8m@c7Xexj&)cWG+nGX6l&aH@WrneFTD_ zObjlt_88%OJP{B&?s)o`N1MRnWYooHtVIE9twaJW^9awu(u0sQKTih*s-NHKZcy^`}_}P$z_?+LAz)y7S*KGcdd;Yrn zvgh|S+rslMJYAa~XL8e|Vf1zVq$9$;Nz~ImYW6%~l3+>U*a-(lJFdBzp130vz%-XD_IXPm1Ct^ZqhF&rIfWLVVIhYT{1lb{8TK8Mqrd*o;AH z1!9EB=$-w0zl?$XSQlUI4XlL#?*;Il0Gr0K&kUeQBJ^FFsD%|TQ%3mZ zdjJ9Ing2-;6z8NuCtp!kW}!!Kz~BvdgxGUY&|+~x z)&Gcg;^Wz3{l_m}pI=b++y9Gefkz4Ek1o|5Hn~4104)FEAO2y96tS4EFK{ohYYr^! zoU9-3ImfuTc|)_mrQf&=aL)C(E(09jKiqkR;W_Ipxg!9n++z<>`8!L`Ox!Q+!4%v8 zq2#U#WNT#U{%Pj*!rh&X{+n6Y=%5M!>_HflQah4YF<#Mu>bAcSgKYk&bN*QZz<++u zKY5Z)sgcZ}-Bp^N>C;M!v(0Mp`kc!c&Y0!XI+_Djh+5Zk0M6h#^E&8^3J)>z+nk^>>z^4!DP> z#$HhPV}Gc-_zf3iuq-xw#^D630H94qlvif%E=H~H39eRPwBwzG0n1P+Gw+KdA3e-( zGQy{qA8;73?L6p@O@Q)rxgDWNtwavnA01o>0N?dS0C0w&0034=UTuH^L2mfUEXitY z^EKHFc|hg%eP$ALw9q!%6re$trrncgL*mgmeH!X8ZnmlXa#!cQpVELg4&wbx*n{Az zi|E{(C%gvk_a&I{Tr49s){>@);GIfFbfnN<2!6C)U&H@mLx z#(4q^Ki$UFyM6@tvNeg@ulgnM0Qf!+KldA6d!P}qqFEp7Fi)ZbbiA%d!+**%4FH0m zF%ym&#w0<;Um5_%`4AYWpEG_$0~r4U7yWn^-1!sh`8>~{foEt$Uob&>hj#SqH^P&K=E$38H)0?L#dXIP>>rK#}SmfvDxlOM$1B5IQX;V9;MEFkzd% znQ9rbtUO2FHoHxden^|7|K4))4egZBBaRAkyANnYx3XjhJuA!in+>Pu9=R&`k=+oB zTY5R_RJ7@kCV1)1{o~#FG2Hn3?{7ICczHDE(|`Z>e?RpAGH7=dZuSf6ewqPMlo0gu z#Rclm$9zy%@NHu{;wk;`jDpf63)cPl)FB%4`^WngOr9_P<*MIF0Jw$eE2)FwT||xI zq)&tRsegAT_c>V`X5ZpH!a7UN`Thgv{Oi~svx98@>!)+sZ=ov_~aUzd_0KV=v|3w&^^k?)I@i1U_w7bzZUCTY`-@*dzZm#wbUE=oapafdUI! z6V?C#KmbWZK~(H4fBbWY!H;P3q(+uIP1rDlcfNDjkIvnUJ{M8Hd0`GE{JHp5Jd4=H z%ro!wPmo*m*Ku9~K*kQ)s0n~_@`SGOuC*gO33KtwwV$LQU zJ>GFi!Quf{$C*X=Al-qp{!1peOWHU~0o?IVW!&*kBc{Ssx{d)3Bv|pr5zioXUh)}W z=1f34qaAEcfQwj=J8fy6_YZ9Dic%GZR_Z|L%-)?C8>NfJsxdraUn0fpx=V;+6uD!C&)-{9d*MC3IywLc~t6wt4=fd%2O*G}=~+Y}2b!R-AJ0`*l4&_xw3=eoA_Cgqhd; z-E`*p@B4i&pC9rw-A=pR+h@7>9gN?G6VEb9>6?GL9Wm0eSl^+UGJls$rGMuzd1++m zBu{R=U8w7}-(Q^GFFqjvEZD$zLt@;BL#mEZmP^qBxHn50t*}8T{L1)Dzl0{$o-nn` z^otqpxU(*rA{o8ow|JAKBrXZK3EX4k(Jdvxs-OPBa@TjfOA+^tFvE7Ml)K82U&`cu z6;$IR93iL(LdTMQU$|KR1y$fx;tI=I=JPQ=3FL-AZU?$YS$wm6_inTJ@L|6MKm7ij z0I>W$oB#gvfBw%$toa|Y@z1;egI|vS9dquG+ZK=bl%Yrb9(cm^nJsGi^K2wrfooJKzv| z+PP`iK71bLFXf)+)$UGvKmYxA!ySTk{2zLP&_jkKi&(K92yQEf3M-RW4ajwy!=CbF zBOoySjAwXNf^IZhT%p?3TN=0{4t4YJMl2VA0MU>f{x1BYJt3en`^5yoT@Z?n)ZJJXkpdj`{n zcC#H-4NK&;Wx_@>A~{zzE8e`INpXb#OFm|mNwV`ihu`cW&54;uBTB#8d*hxbLj?Ps z%Z1XPJ+De{`t6h&;QKyoKZVh^Nm;s9?6<=BCPwoIXiK+-n}S6>Pq}QDJJic30A{%@g>-by#EOQ7p2F&xC2Kc?JAv+=YS9?9AzEms#{^w;;C{K9&=EjC$4grQ zeeAo@>^%V}tBGeHVv^_t5iNmOHkZPyX&IN=I`N^8R|&ctWMp0z%7k%`A00834s}U7 z21p>{P;e^ib|bnlU&&?e{|HZ|(h3W9aQNz)Eb0D7>)V^h_3H6-{o%v+u3Lnk!>=FV z+mHYL@Bi+`K&^RJ2D)bEpa5W@yjt*^Z@xL=yTfY|I)VVEK2(~!`>&4u7yzn?V`LMi zK&t(bR=Bnhi3VAA(5)fo0A32|)#-j>%KxQKo~%suG%EAwF3TB|J5@XWbRX8XDD#|=O-e)bx~;_e3bX(FcFc{G!E=74Aw)jVr4kywT4-)H+zJmc@i z6{hefsQTT-DlErY=(GwCL`kQsdb2^%<0@(;v~=1o`<~mlh}*$lU~Ke+>o}( z+m`Oba7Lm#S@P42o{x2~5eOlG%|O}~3=)pe5d?_8B))D_Ek84p`~mR?TP3JpeJ7I$ z+gKBPmeQ6z9STQ`%Yot5y(PbS1R-wn=!h^VwG5Z5Nr$`PW+(`o zcojLm^+RI7ihh@So3c}T>9hnm z#wlvi5&+Pi687|jlLp84(ZW*O6ipgxx@zPRW7;`NFz>>eouEdJ|%{g=nHvsYXoe0l$OfA@DpBccU4 zV4es7$%G>O?ce@wm_KVJ8;(NoK-q%opEC$258U=gL1Jkfp5FEE2>>nuy5)*Pt~um{ z!Umh00KMi{=_MO>>^SXa7M#In<7mZf42YAsia_2YxDR&%sXY*Jv~-j-wnAE>cKxaa zxa9aBf=V_4-muZHmH=kw{1FCRA9DPZs-N`8tC+tt|60R;iHa(_`zeopQTH?R_YCVB zHnF^VgT<`|KtGqwEwA#D``^F^TQ}+4!1Qwi;MEl>tSi4aP`g`mw1vz;2lyZk<%l+5 zbdFRHShar%PU0{YT;y!4cvTS4#Lc_N%O*S#t8H_rGYps=rET?8A|;{moTo7lJK!Bx z>ZR2jie5gISGyCiUpkWSBc1lzc^>kku3g=!>IJZ0$qW?mPLS@j5(#1YwE%E_e&(09 z7HGRz!a17+fKIoPbqH^>D!+oYN8Sijxz}%s-^I3(+P&jZmD~ydzV8Ga0iMFPkZtTO ztfFmypZd&7IpsKqO>qn*?jnC39hs)5%Dkd0d|>#f#& zN}REG4J~k~Mp&*IcT5q_&Bxd54FZU}V5T>jnR7Rj4lzoZIK$mud76Om6ne*J`_f^y z5Q95}96C{#OE(5Aemg;(z~DKIE{mh3dQ=VO7g|{X=G6-%QOO|2vJ5lEaPVtFT`0Zf z%83V+k_Jh0IFif{wwSH0Vk}R*iR)so)fc_nL^_vadmQDv=2X-*yZqI}@d268^#}kE zKvx`3*h6&$Ee(uzI_A!l4e`(?FJ5zx%G;M{<;b5?<%=t{2!^vgIay9IZC6X8mahD= zUx51g?!@f*dji;;&Buha_QPW?3(7qK0~hI=gV@L2I3u^9g1U(g1@U zy5W-L4TX~jXc5c(%qvjt-`%efjyO@5rD!zT?yq+v>Pc z=bk%*S1T?K`t9xC{w?ZeieXz)&RHW@iJk}m|G>_FRsX2YIC{7`gNMFA>%gYIl^^@z znB?-s-Ob}mK6m&9H*LM6A>LBcx1|4)j{4%}j#)q9uJ3Nw*VnhFmzP&OZ`cQr+y5*{ ztWvoHQo$fXfTgrd)G!F+X=9C}5orYBGQDE{FxG1Z`3;})b-l*Uh?UX1u7l=+UH0ED z-gDGXw=n%Wf0@7P9l8cHeL60QD_y!irF9eEmvpW#Ij*9+;WB#dYv8~8^=9$AzdDJ# z;nu=Ds8p6H{G{F->v zrKEg^!bJz<4lB5<=?PpD*2c{NN|JnTh_LNkd%|ne+mrH&sQIy zdCNM=_x}7SF#ViNX)l>v{pq6xW76eBYrs=>(l$Ad30_l=oqGZp``!oO2ElwLnErKk zaS@oO19~aROM*%}c!rSz1IK z;O_t1_30Ux!?5^&2XDiyAw6i_-DAh)Kp@~9*}hw?k8X}PoH4t<-N3e48F%IV_V(@D z#|tKz51bBo{4f9IzeEtA+B@cn0D#J1$$(j1UY;GFojsmC9$&p;IiH2J8?O50M!#D= z>-+fdg64h4pm|5zz2iItpZoO~Ai@E9Zipi1`)`goUbnu)`nlg|0i1Q4JwJBFF#m~p z?UXB>%$c<7tlCBpNf1{dfU~|xC!aokpEI3N^&=@c_&o;XXMVr?_FII2_i+o;&xY6d zbjt_4o=LKQ0SN;7c6 z&*Ef5Wil|3Y0eF?yIk`$I>^YQU!OcF^A1r<0D(IEfhYwhTUeH8AY7+xA%24Z@YR>^ z7B4cxFUIe&AccT)?mzhYn_n%y`PHxDF2MkGGB_9SGMZ19^gpa_VfvY`S(>|LQvfJ8 zfVg~?Nw}1+A-m5);~~U!0=9~&&rMpS07PxyO65RW2S6RiMA~}}>)eDzC~d%j=hO0S z110SP30rUd!r&kRy1Se73{GL~gm&UG@(6Afmf0mjzU|@6?UeQZ)05-4BNz-nCjy_) z5ZX6xp&?9_Xe-8%#6^>WIezS~(gq83prF8~i?%9~v4`n6#!G_jF&YK9UM~6S(2cR4 z5dg^gl$oz|NSY*xk{)hxL& z>5w!G7PX7;B0z)zmgC5TRe;bsUA+PRKsd{&eqaS~g+QVJ@QDl1J|F3Eoo^l_G#{~7`c0Sqy%^`j375Cq5pckG5 z$|(gJq{px1-{2(_T=aeaHbIlZ~N;UE&L=nxYv zLEQYO^>e{r952`J5c+N&t}fk|f8u9#p}E{Fe02SAv3R_^T-U4{Vz-I~IrnCeN zPny)Q2nHRPkyVm(<(HX0oz30-=gjn9F#unqhH~>?ERw35{$9Og8Q?Yd03am1dVLH` z0l;&t2qCDWlz=Z_^3FDH5CHB_Tj?kBzm(Y{#iASlW*7(&b&}chpHAfZWbQIo*rA68 zU!o32m_0~{HUxj)w*r98he<2?1Hz;X+5l(BHqjlz=KBbn=af(2b}a8;5`$MG!N0$%_M@-(+p(wwr## z;2zLXw)PlL(HQ6C*bOk!iiTjG?ue7-#+@ckLY3NXBD_5V?j-eY_kLUn=Vt`~BGPmB zqfPIJvhH&07Y!io)Zz528JM#}FONCF(k{4*PO$b5LDx#KZ*#>r7i~eb8}5wDPkmdf z4<`_A`lv^|QqC~DDL2CCo|nJ<0JrG^_xmq=nnTg3+MhzVq@ThVn5oF{&CWJ=XsOAH zhIGL6llemiQ|t@kh?m5f%0-~L@wM$#U+SD{+h=tTD^Pktn?z$O-LcOnNeY9p-xDHq zOloic@F`5|o&@Qf<-E-j0CW&~tCqnp;H;s$Yv}F@daKZL3hg~*iB*_>8wCKCQBCZ_ zD};Fbjv$sd)b(1+hQKR{C+2(hXKh#|_qd?6lp$K>z#Ya+d#m}0fCS7~wMVS3|8)|% zxj4yEa|;IjH1OFOG$6tc{Ri!_xHc{QM2Y9*)eML;|G<{TDr0#h4l!Fe69$j~epdHc z0(d~9?!=#8$h|!y=oDLUrX@U=Q|OBo&n0&QbEBLm1n3qi(DD8HYykrCVFPazjCnakC*In-V;=7XJ`jkx50g5J5KqP8$I` zeVHQSfz&xHd06eR4tuJ?i$5^3oa7;rFG z7PrDcn7$kS=#ZZG_qxis^Q>9FGk=-CLV(Fy-dog8b_j5g4wQ{9^n5!$GC@75gG|DX zsZb-Y;xUc4^rid=#A*u2laR$-X0Q%qz=5YUzlFjIn;Tz$r~&5Tcii*z=IPGiMwt8U zBv4-M-Os%sKl@cw1ReY|4h7>7w;?pvOq{GJiLWMF1F#emVs(HUhR_Afs2Pdt|5i zG5u|Ie8bu$$ujoX?@IE?w4M%p@V^5a6*3gwDNn^19^(;o@RPo}>$US%8jc;%ltQPm z(*^;~!p}3`^J}j?a3bp`JmYDW+`jX<@^zY>PRDDw-L;u|x~_R)6#!&<&bm~|9uEPa zmI_M^n-9paJhrjzxX6k;|wA~0FqxmXRldJHo^ zMhNIKZmx>8Ao1aQ9u<1v%@ltfb5)A;bY?{oeIrGYvM^hLX z^N4uh)?-fGaSGt^ZgI?{oU8fQH>|QFDp~}O3UEg&{QDC15o&qBhs{9&0OFTouWwn4 zU`GN`)o^6@p?!|xtYGQLR_;z*fa*sUM@s-uZKSnw+LEYBZR+eP9lF+gXEZvHFF#~EQ1z_g≪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�Aa-Qu)3Vez=|kI%6Me0QH$zIg|mMJF~@%2 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 z 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
*dbVp7 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±I%-3V;fMgNG}EREL5=Xh= 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 z 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
CT8>OSvivwPK*cpg;+q!j(BiL6X^cEE7SS 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¥3#5KRj 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%0A6v?&v*Hh zZ+7{^R2B9vT^sfarNDT?+z^=Z!6yTRew5k2;y?IWVTTaEqMCTdtz`KXRl*}A_4$p3 zmS71n4-LY}^a(S?zOf9Aszdt=vi_QG6T0A%V?vIFf%7)%^HPZlP4*Y6LhF?8wcnv^)s1!$3cFl_hFE388p`1v*43hnRdZ8W;JG)j zIS<}aq392J$w&Xz*k!msl*J`%U_HxCVA zqei=ss$o4>oWo%qFByI2N4(k^ZQ$8;;8FTcuu&FcDW5l;c+Iy{G_0Q&w>xbbcPSe`)t@Yh=6C(Mo%IY;}%<=LH}`qP&3S^R?+6c)rue!#0yhYNhKO)B=wzn_nf z0$_yI9D3fuI{r5EO}q&G0qdYiBmk*A?y8}ze$(v5?@UJdhW%HY&-9_7_Dv`jLv5y7 zU3dpui>x@CLVU!AbmiSAafGV~L|r#rW5f!p8?5%1 zu}%>FEHb0-d3?%G`tojnY?N{pAe+_@Qo?H!Uqz?=*mf<~h{JU7GZ%n)#XJifaGj2`fTq_nS8G7yfx8AZ zc&5cO%U^-3|4^be{2TqVy3vX@8td}k^6XjI8gKZ!EmE%}-XS<)z*o~{t+21~ zzq|tQ6`354Dxy}xM$jFx8evDi){fjnYFCXZemlAeO+T#JtnF&BW`z}m-;s9jxgR=V zKmT`iyN)lpFVw5)sT(bJw8LyG;9)W&U!BxQZm-NnSgItv7cpgYDlD1# z!8q#_0Pp^p5jh*`i+&VN!rT{N95=9e=3OPAX7!>*Su)>&R-v}TwW?P$m_|ML8-Mhb zgs$AX^U}qbjv{s@8SNeo+JI)>Gu9emmRsoxca<42F|%FdF4j2hpLw>2=ve^($;83+ zwT4$qXR{@=^NjkLZJ=U+^%lT0Y|gF|?lNl>2s6MAxgXb$Qq^mea_eR@g?{0z@Hd%Q zkL1CuYoWXP6S(|XH~Yd%#yo$o>GI8|{f*bwUCS~|{5npD^|N@Z9H<0%e6?|nQVE?E z_$mM=^y_58Yk}i4&&qQYklCO6TuR{DWa@+CR&0-MjwnTGs0Sv&#OGd{_Ex{LLF%t{rmI zo}_D6I_v*NdUwip*BS`hnga?zCvA64awrQrQHF}{5}xEEkKrUIiK0!%WC*zolFqEl z^Yk0fgd=WTpBFQUwt>yZZTuOq^K7E*0`Sqto^`VUlhNi(I%7R&(oHy~LxmPIC+gyW zFQG-kS(Xg6$neMjPc?Ueg@SPt--tWg@8NQ$m{%qF5*M?Mf-}4GTL3IOy3xq1Iv-f3 zuj@SP9CBY4qv$+kOY=Fi@CXf<#N;QzVBnj!8dMMug)jofO+)!|F-X>|#zdwOX>GMz z3AX_wtnqgiK%PvMM!Jfq~ASOo04cd`~b~7E$~}S^06)U=h%YFl%nCAr7CcM7e{sS^QPK*8>gy3 z|F!)XzonM$$J*hs4_}{*)8u)M386N`X8AW)G1JfQf#*^kae}uoB`w=PP zV)G?Hc?++Qyx%_`tg&qQc1Ic|n)~#wgwqf0wNYKgMPxL>u;S?oNfcH5!VJ@hvqkkh zF~z2!1o9(=%BnvRwM;zoX#hvLc`|H$<}q{~Q4Q-l3ZG%7+t@XpwAtDYU+E^yeA?Bo zOj+~pbnP~3x<=iaHTgD-=K~7Bh}8*wY=67dXAic<(LW6dlq#lcBjVA7B+BBqw>sK& zL#z>&igx0EuWMIupsgmI6Bx=n=hxW`{2Ud6QAIaH2~l|6_U`-Z?8x6RMW^~-R60q&kxVRihEWXTA8Q%|!I0W%m` z23|b@tWuUMJZHzOkP+1tvw~Nhjc(u09u14dFU;&5TiIMkdUI?X^C2PzpOcnc6%F(9 zTO+q@#y-7c4@2@`yu;AyLV!i$lHuFwX#{j3s_dL*gN4W zp#E%JbmC#AqkbM!bpxhl7r0#?X}}rj{$x`QqA1tp0}E z8B;y#cf%Q9tuyfS0m7;pt`4xdiXB8bXDppCd)1>{2U0O;mT=7gZs^B;#QE;_B)f?} zF+lv#M!oOlV=oL^?KNK^yXM0rcjKcR`AQcwl~HJX2hWG!_>fO(8d$;->`#^d*L56(5Qwuznk}Qg+`V-FI_)mJDrK_tW#lSia@kaV` z27G}f+)85N^z!O}RY?CH08$VCG83cIcIJFic22 z7tON+->O5tNhj)^z6i_}81D$E54fmMqLN}g7ARfPM$k`nq5mwkt*{qOSKTP>H?sKn z0}?qeZ+{k{v};E&oLIDbHXh)PpEeC-;A{f0h&3;Yf`D?}aBx!PMg zB#RPW7T9?<7ZO!rqJ8CE8Yk=}z%R_OB31QoPk`L9QLrW;z(BgInpI2U+s3XEl;WMj z0kS{m_AET)<1fF`KX`4#D+_Oxtj(nIHI6iLqQOh%fm!N z82*BM-EZUa>_uC&?SM5KMh2Mvlf_S;2i+|eBpt{z# z{kj|T@(O?vDQGg*7yPt1@m4!ZurBthxC0ghMqDK(=VFie9BGsV-jC&o1k2ZfUwb^z zBWkS(5N{6{i_(($6!jJo7Q(_0){a z8xGy`aFrvD^)B8pWlu3k8J=w_v!r1RSTdC5Nm>t}`K~@e{78$k<@c`k^hx_A_MT^H znpqseDE9)S9XK8cEgpTHgkU*k?8#tDFcov1Lj^iySREpX=r=uZTR=}3nWUY_`-$?N zI0v5{^56!+2^%i``~e&uJuc{jWclk@ zE!Y`!BxB7q9SnZn_=FQEe(92lb_PwBp_5PLS9|v9_XcCDj#aj(D-_}Jq|>ggnh zes+WZ7M|y4m_Kq4!!2?A#IEh30;ZYxCr=M%?qHeugWn~>_${Yo-oEA|Sqf)hhV`nB zU+%j`NNe?{PlQjKd(&CvgR;X{fkUs;QzjD#f0z1M3&4HMO@_6Zl*tBh(~rp0I}EO| z<{#chSQKjdSHBvlF*W?0ux{H~E7 z)-Sl)?!lbFqxUI`%%&q(Jc;*51&A%`gZ37%M3=0+u-GHCvas&){aVGwe(;(PEZ@ z9ZKT8pKYLqkceN2J}rY9a6)t?cwW?u{0;D}g9LNH!2pgfQ~&_ez^Hl{CSu;IGEko;}M+;mbp(UD@p(`m&`AjHNSgv za`Zp{dUo`G|NRobx7zuII*tWVUkA;n>-(dB{&afuub*z>7k1}mHH7>APyI%GZ|_tZ zTH{~v0q@Mf)ZlYG$S?*NzvAeJN)-Mdc#1X+OjBuK@Vo}Nx&DAI^&$R#6`-PWfjtA? zx3A8Q{_+0o=*=sX02LUlBncL};NYNIVSdvbp2fH1q0^7ll>vrK2^VxmsS!UDxjd_& zim(cdXfT*N+S>1o-!TZL zdH(5t5hy_`KUr09#&t^{`|#_BqhEjhm2t==Ex?Kan})Rf$V6Pd(O+4cN7ZgrCvv&{ zGi*dDXYYY-4x^_2o_vtOsd(rQgCnfkQiZHm2hi>qDy=|~*MdUuY^G*0;>~j@05apY z)Xn-$JC<>sjnW3!bVd~+?E|=}fT;jPD1l$mw~Fq%ibkVi(QP}tT%r3WZ6wYLB|e*b z&kXYk97@rJ)|98fclGBUA^Cv7)SuM=!eW#l8fX-&zhU~TvBD^4pBOM_ooc$rE-iBr z)#;n7_yZ#>pF@TQ$8ORCPd_xJqLKPhM%PGPmn&YN4JhDGI7R!MHlPm9j_*|fsE234 zA9=px7~n1S{-6Rtm_kYg;La5=gqo(y(9_kDCuz=4O4wg9GkN#j>!ZK^U;(tz9qgw{*24Hyjt3@^f_9- zg=`dOfcc~D=2N_evTV!n4~bIvhfY+=ymGe(boPT&y_vO+`<@-WqE7F>|NiI)?gG(& zMjXRxHI?y8oqqlJfeBXE&;D)QNusIj?b}F z+Fb=c002M$Nkl8T7|!#s0|Yarl7n; zPkF`W-nXw#kA8S}e)Rq=%T)-}SJ+zxJ@&&V1`G7@yzeR3v)1Er~SEbw{^l^t0(7U3NDOo$T%w1`Bi5U->YbmI0!8$WWa8 zynTI)E#<`z^Q1Y=h$3p%un)W8wS`Kpo$Tjx&+{v+ohtydPe{8aXrXCtmSUpqXW>gnWV- z-!PMivH>p19$dvU3P8$%&i*BzDj^lcTZ4>BZ%ybRaC#EMnZL};di#F!iVq+8DP!q# zOh1VNVCSQ-6WVF+%`nQIsWleWtH#CP;2B)Sci7Ycf4lU-5(v4=)Woe_=RO9z`UhT z4NzQqUO#uaL6INY+H$02qgetTfzBzD)Xl8$Pq@NgrHi~yxJ}W1kp3**#5HS;u9SDq zk-jewBmM0yF00?s$FmU^jX5hB^z%Ds{MgL=slO{S`J!F~r#Yq=er$j8PTj@|4`E{F z=3_sgbp_tumGS1)o17}}=xi%_w@d)U#k}ob1$Tu|0j(kfpSq=HmJ5G~Qb3r3-Y-Tv z_O09_yvo^sog#59qD-y46zzMJ$B@~_>}%5fnSo%Go_-E5@)baTmfDrBGsc9+e^rVV z{I6egCHNILg^v9Ic?AKUXDaQKVSSt|=-&I<5Sm+Oo9p(3OOj^!)@OsyE^x;BVvkuR zzmczgt#k|RXiMdnOaHWUWE|rgM6o>6r{kx8C7yBhXMEs*Td!WlPjU9cbVG{38Gtri4=EKJomWbZ$e0n5OU;; z^Y1qH54HQYHiYuirE-`16_^VBH7Mi|nwh=-DW>Uk6b%7FK`Y1+8B?3XB@<=?Zog7ELMlnv|Qh3UwN+8v2Vh9~z zCD`o;+RlIL1|3l4R* zlP-|mBi`DiRv^PtM=s!YEveoWOyaTB&HJ;})3mVf?7 z;?TbpBKy;7(?;al887*Msdu5oE{R!+xb4eWkI)Ytpna48VOWK}s}Rnh5u6p5evnN0 z>A~oL%pej*F~Qfmr63sQ@EgGYu{Yo$bez-sAs+LNkj<%+iX*a5ypnV*y;Of<&LCnH zTEYmh8MP__F0Z@Uua>7#2=Et7K`hNlBQ3Nh9;T~FK=RHrVGbv19GqPe_mkLuILl+R zx)Fp58H{1hn(ga5BNw7?hi*VAQ$?s(jl@8jS-E@OSs!ytq zU~(pHY*WV!UobXXHuuQ~!wYp)3a~I2KSMq1hjQc5$uq|+{lx5VT*aY&e%aDmfe8j2 z$oGUk6r6)@)j5gwaQO^!d-1;E!K_0^8rVkOTH3W>L`=NlHr*@|-2ZHISOG|>slh0} z{j1xkQIR0sVV#6$D`r?K*wKh@3#m0ogckVe4K(aZD3>{mH?8@#8U7|-gTK@rsJ$3n z6w`Tdbca?rYm@*t1v;ze6*tvTpn9PV%j>oD=02=_dWSh07m7r#0l*@wxwT0#JvV((a93_e7lDf zKAGhX75aq?*;y4EHf=xZscb0u5F5erssT(tf;W|FaL^fH>09^}{wlU^ zM9b2&{RrE~0NtGC4)!Qv6ksp*uT9!=K+0bsHH|2~kxykK6eIkZF<+tpsL-C!ugo#C zX=d+_r&|R8{=*&~`)5WEbZX^K1tUtkF3J%lp)B;u6ln&t^1XdNcT5cBe=#v!X}wxN zhfPtfR=mu&Y+eP94_bLGxI({`8&^2)y@HzdO8p4WYMQTsbETw+Xi%_KBw((hn?V)$ zp`RVi6S{faOPer%7Q0v1hL2t#FLn&Y>Tf$>NegW7?CPiHG0fsEh=7gVJZ^(KtC!r* zC;%@d*@yR%<#Y*7Cx!4K{zMQ@{KKW*HNX`5*p`A#q)C+h^8W0n?k{#FWORgNzXDKL zpV84`q1+j>iStu$tn&_gmUa>L45j>?EBIL=zq)jm$uL5zJ>_zB)1D&a9$4|XbO{}W z!PSH?VhW8?fa@wl4Mc`0w5XXl@#r*VN5`Qw2#760`|hXwEX`;Cf@wh9U|Pm~3bD-g zFVUd=BHty9FnbtW0Z2Te(`gk{GBN!c!-}a{4;2`g4OvHtp#a-`YlMEz6x)0GcT}tJ zH~Wn>_q`GbFD%3xy1{ficLO4H$86uT%(uLY%PRnc%^mMTjbr>)05VIL<`uB1iVSA2 z^cfx~Kh}SZQA^n@Thh>X{~vX4!dS^|q+4F@WNnh&%j=$b^Z$R@w7c8$+Ez)maG!I& zKxE=3Z&9q0EZHD&0R(_RV2!|d8Jo^^z44VA&ROnV0REdrXB~{i-m*YPol3NgW95Jf;%Y z0oNi)c@PA_D=Pp_F8B(i`*{&!8%{s=e1PBZ@T-Znq80=z`cCH8FrTfiIZq?89w#xi zDzYpZcjg$F-X1w84`+-~zNz6>rsEl6bzWY0bi87a@r;A#K2(k?GGY;zsXacU^yYG) zE*O_Qms9)D26U|H@hUwAJcY}#EE<~fscO>f{eI2bdhjfgvwj{2LvWG)b7+joAaf3` zIw*@!0-ZVd7?^3y>1da3)ndU8{gs7+YggjwFpD3cR)=8i_a)Of(fovuQC7{@j&PG>kY64HPVP1$&YpK6-TSSG(%j3MGV=^an0GJ{Pq(}5 z?>^}bd(by986Qr{!67N+e-Qv=JQ9|Feuk=It(HudcS7nLmsT$`8@RkhxvQE#{ONm6Yv91 z^tf@fBxQ>B$pAWy)m-vuJ`d>h+Yl##t=ITLEbbZqaN8beDq;Q(;;r?DC4)_dNk1R? zr4$I`4IcK(^=DPU*|XaSGT-zU%m|tGY2up3X!^ufnWG}7wh3sX2~Y)`-*)40WT+*6 zg@hVUGc%{{=Vec5a{_gW_AG#Y&iHc%AVL7+6GU7>2S={z%>zt%i{pa%$@mj`lUk*@ z{1Ql_W{q=EA$W29$`+7Y7R}$%7NL4E_0vtwEHK;_x|OJrv7qYNx-Q1Qx(&JnPNc8T z0_|p73c6b#MmXq8W9dDdI&&q(g*ZwlWFSr_PLlixlRK&{ zn3kX{%spD$ub9?BN>f0Ge8i=iaTcueW`V;i86#NkhCxRV!0qh$5(eri+)EFtT=>Bn z4y!PexVmIXibEf#E-`XO_$@aDt~nEMcIJZ`FdqDFSOxG7u-9!qeDbOwvmOS)8#uIw zS?G7seyHmdp&^5l1C%JGw>wzMhO%lwYQXLKvJb!PCjFVIgBL4B58VuS7YuxFUvZ6y z6VUJYWbC^)EFS{9Bo7V*rjgk{gRc8++J)&?r%SozzyYFj_Bu=>wv1CKKW>$V2Qo;9qdOjnj@qsc(J_bYn*s3QlubehJGNmNiPytstV9;T}RBi-CS zfa!kbWUi;Ae|-OAPDQwa+s ze%l{?pVQm$?d~|THSMj^-hs*FWq>k%nIo+z8d0U5Cx%{c)I8FDyseO}Ci=lGZ*APM z4Z^6oyE(hqUGuRhi|Nh-YJ9D(^VTzJf|359AmvDiZq#nqW&FWk81=BOm^fBYM6}@( z#zXP>rbrI`$@rn`;{1}alX}4JmY9B-{X_Q~#@09Vi8tDXXC;7}Pt^G>X?a%Q12|97 zwQZolVw%trUG(rvo}|CEIZ|!i1>OHO%vN8TQ4S*9qWqZE+ z!<)CeKYaI3e74q;st5yD4B|3PD)}?ZyXWUW0sj!YF#UWO=rdR6e)x&}(U4^Xmk1c% zdSs#ly(A*djQWps)`ug2=8?|RC&I(bWKQ7pi(uX9gpcZo;PU3;kpqe_Y9(&asxMjg zykyD$yLYd4|NCFQ+x_4F>yNPu({IL|Cxw}XRXW8)KXASABiDx>AFp{w;FhxaoV4y3 z3~v0~B_(KaTC6r;X$}(wCM2_R_n6HRfn?HQv@{wS^#gdKWxBYR{bNpbUofz88Ouejgr84d*@?ZWy4F|G*sVI(W_i~-tH*fN_rubphh z;&za%skhdWV)~N#B{FCDvj|M-c{P!ifSEa3kMsp+_BS7Rtm?-PTT6omE22unY=Kzc!3tGOX2t5I6d$WnKd82||X~{IWGb-d!cNJzvnS z-@SRa`wp#Ln11JB_9weH(EjiAi+^KWdc(L>a3)lwd4sU>p0fbgg#8KHZ#@HGS<59U z0IS}cS2E0{G7J!HK2+^)v!G9YMYgAK3p=Dk1b((T%9Z7-;$t@)v{F!#*$Y?ay1Q2a z(cyIiUYs7XT_xcR1nv7ASZ<49_IFY01zPI@;?xIKd(P&5z|(F1_VPuBYQSC1&bTPk z5W~2Asfj{|l6wSz?1UqQxjf{vl1DVGBc*~A%wY7=aZ2Wq^6)6;e~+I`--c-6^=g3e z#z1Ves3ufG4yxH>wiDPoHNH4O-FXs??903?0s!Q}>shK&KQhbbz#rHD6ac<|`vw8v zj|c$ofL-Lf^)fWIGs;(&KQhC9AA7?U3_hX%^24Vve;;2tqpUu008b%63E#OirH14V z6MOW!3k(;SehaO3N*j`mO8Y2}%nS(T0mXOR@BgPaN4cR;^fPEU>qLM5?rQh{{Oh~j z|NdY9jGfQ%0@F_>>EPtu;2URQFwnXuTnzNXCsr;H0v@QVw^yGK8obWPY>7JayYfXp z<(Q6$2pG~zD6rW3z+2z3FCjodKuz1BEYuMOq(ge>Jgz2qu+l-Nt6qGCdDO4PGa#0k z%ln@`k_Y#aaf{Q3ODyyEKm4%!^Pm5``+xuRr`Uz*S1PHbOw<0sD&~DfVoA2B*!R-~ ze2KQkJ*SM%8Svg9Jc`@vXK$cWn0_97^6=Ib*SmDzvqD1&lNL40VBU0$9OIWv>w(%Y zo1|)Ct%M}h-p}m4wbMVo)c>no_AothNMi{t8!u>bhV2#Ao1eHB{~iGVyZXVpVoTZ=k)K_|NKX!{#qe8<^X4<&u`L9g$&HAR~NS=WQf6BhCj$zVb$jQ{<{6n>SS1_ z4`^Y~A&+6Wp1*Yw0l=3HYv2DZec<0-T_FHm?zB6J(eD#j?4=3>KcfE! z{TXeUa@IN|`8CXXT*%RIqZ*(Yd#J5Ix{J`VU@rl00AuiDIZzxXx|B=GMn5YU?bvL2 z!UuLI4D5joxMQ~Pyak{DfL$1IQkF0vY8f8HN(pwiiWLB|I!In!Ey zQyB0W(@$dy;3t-t-~aGF%s&D^kQGM6kg4qe6Ab=Ujl>$DUqu}d9TNbnGyC(4Vq|YW zyxVX`%uq$&oHuZcHSn|9kx)UaJ_nzkDK4{5{yQq@$o zIpg~xEQFCSR{^M-d{|}(06FyMnG7Gy8Cw81KfaFupkI_7v^psr6-c|6#77~dFaUOe z7!*dMmgzTBKDnT;4tTB{Qtr84Q0hZ&vfCSlt98MDLf zn^kIaKN_hLED0sJHpBx&Lm0%+t_T<}3K}0^n)me4Qq_*GIlJ>2?W)8TLgxiD^fU68 z6DTtD z_xypOJ@6-^f6e&%n#ti?^6-|W<_pFdXToNO1yk<$vlW}M2PQ}&rm<{011Va7#)Amq z0c%N)%4>3;F^zL5Uc)zL3I&)2BmY`>TnJfV3J1#;zzAn}OV_fbQKh8K0`BIs%N77d z3%Ifu`ZjcQj?DK+I%dO%IYinG^k0*k>%*2r+I0C`r`Zu=c5VT{aOx(2dvfRL^buC9raSgR(KbtAIa%zP z2=?@pz&!+5^>3ps8l_@Z(z8{g2-b1g{7yP~Nq$I|$m%7|K-TUp?s8LB{5fDby9#qv z07JVSkVAkB?0E(kfxtt6-UM(Jpi*kA!P1V6-vCj0qRSmObi zR@@V$k{IcX08_iJ{Fd;WsPTK+!a-m?M^D%nSS6z~;}aGIa0l`X=6Z~VQY!(vC*@G# z#0H`B3?Z}j-n|Jyc~B5F<8=%oZ5X)5BCzXdHNg)T0)+4{!)khr>RAd89_9u@X0jgo zgYh$lYGwt1IF2tDgp=`m5YQXS%#&DQF3nM_oSBmK%kGQi%QU6EbrXvz=}kUy7j+1> zcz&y8BxZTpxS}a|4|2`??T}sC+$JZQR_E`fYqno`t-4P(Z2QsQM(fuL0H!*0r8^4U zf(J1FRlrdg<|wVnLI6Q$zFJrnl0&_P)v(!IYVX@J`qEfS_ORG?W!}a3Wv19+fJ&h< zR`+3Ys4I;ZMvqjRD>pED<38TQQ0@^B+}9@0K0BE`HS#C}&Km(BmpR{|UBY4|oCZuW zSj>bg;R#2IMe4L@5CZKiwKTAJR1KKE9nEWozV+{FKm-7Kl1~}u)PD{HdIO-Czgqx3 zAp6wtBik^Kcg#*@L(uj>?>pm}-g?cB!Gq3hIu1lqrjXKV>u&gJCKHL#OmW{NHwnT| z1&t}*c5BzGRr@W?hVpYoBdZ#iUg>k+Js-be=II#+p8@twahdStnvjset*I(0-jCKHV4rfPHYDB0qs)cvt>NP3QIzntX?V_R{BTx=NQMel3e+&3eWgl9M^0tJ!00 zm;vDQbxekkRaqW*I3~|!6QPR)FUX_I?m47qKep{LzBxGyIm;|=xPkgt#Ddc^0JLw% zo>~quY5k=x#;{fTfdMg{EYBl=xX0}(q6hyX1Tf=2gI;I)E_+84zE%Z*;pg?gdpd(R z9H72<&d6h3U8Fsk*w9^8MOEcb@}fd+=LraTf1>pM78SJo*#4T=%>uv}zvI{TZmZG} zJL5ljo3#_WS$pgv=>K?ce3pMLpwt*f7nWu?z>5g_1%bL~G*!b4crlPk z7>xcE;_?-Y-q-z_`RnJ3gMv#PB3V0-HAlsW8Lhqae!fh1UlZ_`sbmHe2h18^YT%iF zO|XN{i3{7R4tL0J8}>JGuSHu$JSVE(lCz>bRSvwW{!lLVVRJc^eZ~lc;Ip26lk`l_ zmYl8M0rx&N`&r!j1-)ay(Dsdey(M6a!2;XDI*z8}O8d{I_CxN5&!%|3UNr_|wtY4m zqp&BcfiZ_;foYj^4Ge&QsfSvclH*MSF}sKbdYZhi0m}Tn<#5DU!!ObVlOG@4Ib#ci zVZn)w!cdK08jKx`@3sH$I5LnYtx7Qm78&PD73_p7e=>e`gaPS`2B#=Cdd+KLStmR- z@tKRl@nUvspZh~$_^p0NeT1JOl*k}0NSFCx?yj(;%oyW6P??NVyty6;kIW5LGkO?i)5RNqHIrRkI{3Ox__H)jT z^Az{&6W}ktr(oXFoG+DvuEXzAPR{*f%p=I*!v7gc?j(qhBp&)m6 zf$3+1wp^seLvbZ14H$mC)bHNEFBG!UoE3lw29$XT0SX_k5YX;ylv}!oyM>V+W45Nn z@HbZ`GHVmuy8q@xY!f(?^Fy#Eb{l^l=GyNN3_t3;wDt}=%&l9nu-035!)Mbl8@2CU zt{zB5ZY%6W+9vfcQ*%DIv9|6lMpK&=L!0Fj)us-@g)q%w4?wSmkq_*~`jQsYb1F#? zK(o~$So?j8DY>&M^6meyLiCzm)lh}4vZ#Dj9xIpiYmaAi$yiidPpsyFOPy^41Ovya zM-DwcKCrFH7_puW7~?-->cE+zfN*n?E%besvz%dB1aZ5peQ&9Du&B?y-0XAz!gub8gt+J`cehld_1 zc)1PE`0u1yM(>J22tEf%EIP06=PjxvLC;yGQSEx*P-( zCv$$f)vG1W@-N4Jt6_z?5B^AFsz$~kCmM(GT=sK+B;TIzlm9s&VF&Nhd_isw1vykt z!ayBuoH>a-JB?{vSxY^pQvib#*7X>eGF@rbHb0*Hp)TRDXgiOuiYZcyx=wK3!-zdZ z=t+9Qa!Bx!ef3K!I82x3p%8ElgTF@d)*eA)40fiG*)i_rYGAOtE#dYAR~4E0|I?e3 z-FL5fq8Pg{{mxnTS9=D*2IexpAEA*}hJav65oC$aj<1kG`jd{ZLZA#nwp%-1>n_gF zh9el~E-kE77xh7N0AuiDGl({-_A;t27T81wb(8~ihU>VqX`Cjj$EbGew@$mlZHEo0LvgdrbuT1;Vnj$MnrqUbkXP+=8u`@%w;sp$j@1=ePEorcMPBm zGPbcDa_soUOw+@F8T0Uy)dZmiV~4Z&#T`qfUf~#@NHq507skdo=T*yWpMoO~t4Y(W zoBlPqPG&JJpPZAS{tlUrNncj_wSSva=*1h$)_Zo(_Cyzewk_GV{*gJMuG z1s*#@%fyfQNcQP5w@*DL5Ai)1$>cr2d7^%Apm3+2~Hn#;2j*|`UES7fV7%) z7uw!C0C?v?Bd&6dU`?op#a29i;fsJK$haL~g-1BuTzvySZ`ke0_ z`ktBk9nAVJ%Vb6BgR3Hx(UGrQLB|od0es({_gzBPYwpnh(_7x|{v%iNI8mQlAsh}@ zURQhm_6~-u*52?$mdvi0wrdh9t1tM$BMw7xp17{u)hXdSW&pRm8Gh?60P^gY!ESJuhCU81*0@aVM^IV^%+wdImvQNvt3W_$5NG~d^Jwft`q#^8Fzsa%2V=>i z8Q2yH!(n& zd{}PGV$d0XNCl7=N}*^md@`!7@5__~KKq7Io_o|=4$s_x@lovC9oaXZtTe4R?hNQg& zGsbViSw?;h@$H+}yp_NkA=pa*NQqeRbQxD(9J|E{0@c!9O@GkXv@T`^?O)Eg8E{o= zqo?}t3SoGgM6`*ao!Ke`oN(7vAzV+5ssvA1-&AEY(=7pDR1)d=xXLwGPyDXzEnoY( z$8Lp&XaxWoblw3_a?)*KKFPoczhsmkTO~mU6>(E}1BdqD$H49+A&e)TZ7}^rf%)^2 z-#z+HK>+e11i<|7)d&J58aGWe1n&Dka$ zE&8ZI%Yr|Nwx^~@Tg~={h0@{J+PChGvt%tr(TqDLWtK;Y8sm~@%VEW5m}p>mfQBMY zP=ajD0Fp1`AJQvbFSX4jG24y5@5V);XZbjT8Lbm@)y9A(#{zH9v=-cTA;JZz^lufg zCt%ngtBpszV{tTH!*cub$o`r1EVR;@u`Ok@k6+ZY)|Xg|ev-5SUZ5&owP5L}EY|OR z-o$WK&RZg`s@6@H2!5<$*p3}}9vPHt9ALHyu*QWF0Pb;n1Hg|5an+tH%WT_%=Y)P% zgH;h}+n?K3{FY2Lm4+QajKw>tcjc6+Uo-kkRv#1sF4^PukYAWTaTHLz+Ndr8fN_h4 z8zBI{@TaaLZumqvq0O&??+TOl)nj@0f&nAly}uOx|Gr3IRS0_LjFo-tbm}c42CnlO(IXK<7EI za`QXd>}+Pc!8X)>8;TKwzf#$0DX%`n<`p&x7p5eVFVu1JT?r*0UZIoee-EtuV4fBZ zjOL7!*meD6Fnx0*q58{JG()(VGn-$bI=FS)_KvRmkk+3hX%~xs8dw?AZ} z0#hr144gR>Lisz028Ll8aY3i|mQT<%h?U>5OHLdFJatXGy9L z0q$)9*a)KuYnh)xu4_a$>1e$U+vcLp}>OJ;{9!3Y3QDDziaR6g6ykO3ox$>uN~ZuO4bWZ87)~*pDBj2m%YD+n<&e%HYp=j~r$FgxoBp-7XD{dGuW4hwlF{@W@0pv+} zu4316%l)UT?&##}!$k1gY`9*4-;Q2xaE)rSCsAvGc6 z83bcyC65f%p|{#I${sV7d>ZMRh6qz6Nc!Cgu#!wO=M9sp1~qm1pUqNA8-&}ex4WB+ zR5wiftQyA*D|;0-F$r==8){I$m~%6A=AJ`#7ETnQDJ%DF+Rp1c0&!2Hd~=<9{L}Cw>HgfcY_>{CnfXc6Y=weLmG|Ht{$nO|>0Q8pNew5shQb zPch=>4gv;c^7S|TF_Bq!QVnbOZ*F$(N11;y{SJ31fN`JEoyXa1G&5{YVhexH-MF5Z zYoysW#HmenbciQNUI=(5|0$cs-)5s7ZjDgX@SidFI`XrnpVWT_+mdp~7?d=n4f{D9 z&-qL4toF#qFGAq-YuGhP*$$Pk;heB#X&IrYz7|M$#~%MR<-%>pjNc%r1WfUl5GuY5 zl7Z-OEU7W1?LvK^ER3C@$8pe==@XnXrQmC0F z__w4b(dU1@dIg{=2&O`2ijkERClivPvxt_8d^8i$5REAdZ24U#bHduOu;A-L>KT7b za$^Cie^u4^G~3<@Y~3c`4QwT6nH6Ui+;AFvW*6irs5Ps!sP2)LWz%Knewg?3VZ<xKmw#h@xw$QKv(;+#13KDslE+yqUkx|LAS?}gayPQYG^byq z2Hx%@iQ2H)Y@EVgu4W9|m|M44=kQ5o8z{?$BmMYQ%`TmMcBV2%i4Vl|;HhcR_d#Wm z)(LbcZcGX?4md$0Y?rq%7_>81JVJne3wfkf2L>S^=~iAkfZ-&~6xTRob`M;Xl`dw& z9qIxj6DtNn7Hn^YCbUS;stFh+?6*~eX48$P6czyhO3W;L!BVljT^*MXWCeh+yw1%j z6qI1#HNb4!j+KEr*F!$x{$8rfcGf6kprdrUl%AT~viNENV2fa6H{iC&v_#3%94<^_4)wH3x*W?Rk?3T0F^T4Ay4?LRFOO;0+Si0v_AKx~Jy_YaKctk*E z<%mj(bLn(eBt7DQuCBLcTDN0DX(_61CXs1YQ-e?EZ=y#&*7BBq-}&}i>l{=8v6$-N z9P`A>Yvd{Kf%}y1c%X(4|sYcts6{1NF>cugkUeT`+ z8s!|mVgJbHoFDC|fcTlqXL#+w44AML?W=z~?rbjU4{Te%pG(B>v+A)yhSV!ju7+iD z;p_TY_%^}M+~UPV^Gb9nRxu_1T9RzGwjivymrO~Aq!nid*``RZnsp- z_IAIVx}Ogj{QR(D&lwLjXOYwZZqYJUhY@*BW{1G?=n*jeu5sTG{&vKJjmVEmX&PCT z`oJVyG8Lds+^WEby&wg1AQ`G`Qy6fHK5%|qz%~yoR4z&A=h$XmZpgz8CMT4Vob#A# zBHW<$H}9TzaZ7e){(&eOSF58XW@tQRd>g9lDYuSpijAZ(GX_bOmx1<}_ znzNLvX-qoh31szK!)x=KH~VVqZr>SGVH?R*;p?cRar+kzMdW1`Or$if2~i5gZZve( zH?TLe47>>_?ByB+#L@5>)^UD;Inc)7r|T_^iwe=qK^&RCpPYsHD+FYX#&wW~8zeN` zn9+bt+vz6`O&l7Lk7?migZhmovvsEW17IwBaNqqsjI)Fr1j;hv1wZ9b@&YvG&WS9 z!}VN;HvxPu^!A3&nSTDjK|a2S=bDU6J%^Pz;P~)?{r!)?Tm>k* zP-s+mwh)?JO?2cZtfi)*ryG%yBGIc#Ab81ub}OR+jRQKMB?8DDA3M4EsT$WEw-rvf z1{mfK!{_5Hch}_Wnvb&hp%&ok8*XlRtHZAy)@OE2Vt>F}sq8erU^Z!AGKn^KXzise ztJWin?L&}iGUealfnuHYDB!@_uGy;764v(i`xVfW~*-h0E<9$ze7279Miv5`cxc@D~<&W zd_Ibm!%=W5pW!|BFf685#5@Fb%txwdk^Ie=M50?NUap+!AA|RlFaBL}#p=?}{a(Ee zEGq*Xi$A$~wY%U0S!aAONO~NYb1NrxS7~+1zR{6>J4i_W@LbCO<)j@BX+6yf#5s%% zYOA$K* zUFaG1xQoX4jravA-cbno75`91V-#ZC1c2Rh0bGJ|*OLe1D)vtta=ReEz8520{h4og zd?L?3-SAN(%v&cWB z;T%fa3zYcwl=uN8ovq&pXb`mdxP$Y<>!XC-&`M8o9geT%ef(*6{o`NwE;Z*FZWySp znMq_wbY_3c(%VNm;D^|4?)oJ^2s^F>9Nqs!LtsmQy?VNDDtu6oBKM;mlqMkS07d%g z89s28Q zI@ZeOzk@ z;lmH3mc2Dst*{v_-4I^`zMWoxn5qQA?DY@w^2?Gau&mNBNLV`CK{4*ciD%pPOmQ05 zB<%Rg z<>|Y(^blYO0T0W!8X6r5gvxgRym{=ED)bo){?)(!EBfDJ7p9-W#t~_seD~e%{QI}K zFWG`%5!$T?Xg0-U3VR=r9TgD6a_BOvdL*1-jl0!PN@qjA4ZM*LuYBN&@#B`U@e||b zk6fen9M3g_)TcAX7}CgC-~l@x9pPp#{hCPvaQ$Sm4hu5>AE{Uc0!Jp>U+QYAu(T{Q zGgSIRXez40@Nq98^c(RVjY12|8!k{7NWUh2)*4sAf%<+3(~!XRb4glZ;3H9PnNWQq zz8?V+rk_mz8o}p1`Tid!BOjTJI3dX@2!6R5iGRNN;W!Kbkiw#Jp%iQ?T6lHxaxTAw zGiZVjdpQbdK2r_}u*52hF#Rcew|ZS&b#eE(}*Lxs7F>&J=XnZaViXpl(Ac z3?m_U7Qiy}y7?phA<^w{{*$(S#WA`2vZ)?Y!e_k=b65bNz(+euc&o47nktco2r`;B z0>BFId)OI>%mN+fh(~dp1;Q2zMIbH){^ z;|-k>A>jHWs{njJ=Z-q_u6|WhC?e11#X+UqNk8-n8|4cy`7`VYFFC?Aqj3~dpf1R# zCub{fDMgCKjxa#P(GOChvt$Sj@h8z*N}J6JZz(pFAyGV&0^Kv}dEZpZTn1v&9qo)w zu}`w0tMx)F@R7eR0|kIe5fe)~fBJ}sN15QxH7F`1LKFp}xd;a0XbqD7Gk)P{2&Vp% zmX4}}F#zGVqDYd#jwWoSwJJjKkkAHV9cdfX!OjoC`03rG0}QHRme70411Yax?amPZ zJn{U1fcl;W+#IlVtfwp6X zx%q0Jg7+s@Am1Z|+m0@H&F>soaSGZK<8C-TE0*h3Vp&ho6d{1LuOUi%N-@b#X<1iA z#Q0rZk`!Mo6M1Rc2@EdB`>_8}ZV?CwY+7QnUAh&qJ@sSV-o+oN6wI)D^vzA+}u!cx^Lzi4w$tu%= z9{B*XTnhsrr9oRhrlXuZu>C~ZXVjBlLX4&#bp83_pQ&d;Q?sk`8wpzWnHZ3ce*`UM zIz!jET4imtIX5FTLe&>l5!}BuQ1)<18ikQY4lJ#w(yeD=i`_}p5L!m#w*V*)(yZBo zNQi7FPOq^k0t@Z|*M3kX(C|4FNXk|EwLO3r{iK5vwFXb~U09d|7c;!2!6|w2(8Jwl zC2L;IW53^}9ZzN+AF-+-^GBE6S-$y0r6Ed}LJXLERjVc5ur?))0m0oLqjk7{?!;b@P9GGuE#y3o3I+dcbf|5o)S zybTv`+xN}1Kg*O1E&_mM5K<~{UG~*T%5M#8P7P;2s_;+EpU;=+%^GY=so9#PTBT{Y zS;em-w+HTS8@6{R0$E~rqZ;krzt>+~dVh34WD7uHz=v(JuibcJicE^0QG@w(h!gP1 z?9W;1f6W%aYqkIsG9m!r_sI5u`krloTipmK_ekg^tW|C+pQF8(W6Ar{CM8Wx!XrqN z@D*kwnK0M}7%ScTb`Sg-#&?Q#D}pWxozUovA3|U=5vI~noM14ZRJ+2PVD71_wO0yQ zhHBa^U+tw9%WziPY~QVEYFX(Wb&v_-2qaF~qYSPKNNeUon4XX_pLYyMo&m_UIpWIX z)t{JnWD9^Ys4r)Z2_tbbaU}oCShpoiH)%wf<+cydp7EUDUclKwDU+Fce1}}xC{nbv zbqYHl{|TS)O@>+_Ump6woxsDij~9al!G_k1iO&)bD(Ro~OeXfjhXCgYCc4$)1g6fx zgbC?7P=ka*NP|oRFz~Dg-ZTIQsiCDdFiktR#Hcje4xU9Ff-RoE$dVNKS;*18kV@WU zfF1zkRk19&+5?%R z9WnhGx~=VA0(J;X!M_#7if;95--dJ?!#+`!)yi^vHcYpPwGytHVFme3emmc@*$D^M zh2Ld_yZc}b5JmbNf3`QSZ#5g&q4@fB@g4GaGT@9r=B}w$APA#J2yjsJ7JxSZoY@^K zo$e`8NL$_m?mGtaX`pYY=Os+cGq(ab_3u-w-ULuMaJK*GQY^50wAp%5LLfr+Uu8X zjrjhyKhh!%tvaU;8ItSAiF`BPJ$?lM;U08U@VOc0cFS*R`<>Iya3>P8fo%$$?Q`Hm zaAB=G?CiGAhdb?4`)CJd4DIAjh%@1CVhX~o!e4O=ECn|1o)Xs{;Hw?atN^?W*EW6K z3v4j_Ed7{W+*uYH@G1yGk3xxQ>~_D5guiL1&d+LA7t9;$3`jZD=W-Jpp?OJ*PN)EI zbPVHvQ~+QP2)hEnx>O>`qdZdS+7D;L2EDIVw~c64B~Yx0n&u8e=~KER5)JcF0U+gV z*V2y;$qqr7y(T)V0nPm5r^G#k00$T7TXYhdiK^6A$ZBhv46**LRe!Jv%+a;adPP|9 z+1>VkG;_{h+sy;^xqS2rOhZ52L+RcFw8sm~jyjti&4Jriqngtz$l9C@x3nYh^-D(;#_`d$vSN@7l zdK800Z~N5DUl@^=;=p2ghq3{*tO@|MagJjpy64lY#WTA z89(%J9O;!|^LEVkRbDg2p7UZPV}3i&GXEuyz?X3dc-xl*e-8_EK*)Z|4a0OiUJd~w z1!xy)sVNm0Gb^BDpx3SMtY&w`6vL|LuwdJF;@bA8Cjq_;7=@f3UWn6vMn%9I(m?qo z*{6R^j6P-mlKEu{ehZ%})GGMZ-UUo19e|?YlJqba-jZjTqj~d$)My0euqupS3(I|; zh=1iSKLRa{#2JtH2Ml9T1Qwj+mWTs32U_g<8L&0OchY9j&6@a6) zH>UP>8*3k{$%QU0s3vWOmCwt5jkndtY}lGwwWQUjLR4*3F?F2Td>Ivgqfj#;2kZwx zOWEpoP;Dd4feuBQ!_Q%defHjqj)SgV%?~q8WiLR%BzOZJm}wa>*Sg=&Qoj{tK-zxJ z8Msu>N&N@3C#jG5fYl@4%~(|W6cKD-qkk=aT5PZ?{o0PRw*bU_lqG-m{h9GUc<2hP zd9P;K-@SHQw6=t!k7OKRH}nJ~Gt5wxr1P!@OZ1PNbz1d+J4gn}lKB}s_DzD5 zuU37HIcs6F#<{N+lvq-3DZmO7za;>$nldbz>pU(P>2q`N1&(E)Pp_N;$(U8uTMZQF z!5_WMo5^<4+q@o(_;&@|W>9x&d4=V$|5wCU`DpL(1>gRD8T+$EyP)w2<~6`Txy z2mm>JH)a`jx58<;foG&!Hz7o1B0~*p8p;A*n@taT!MRj&rCo?+`tGH}c-MM|n9cprFLyN#%dg8=v)ySXxaD_kcdSsg znRo?SV71|F+04^|&;zrjBN#YI=t3ItJBc>MJ>_Q4u1^FM%%ZQ{nTR+UkrYCtec)J< z7zhKA*1bfQP{A(#L;YCXDklSNFUb6>p8;2#nVAa#p8ak8(Fr9CivnPWv&<#W@#hzJ zXK?)8sbn0g+MEb%kfy55a#gvca2oIprlbER+T0pO#gKIWt$}S|G!OUXmKH)>IKB)k z_Y}KgiPXf;nQGXI^S8Fm)R^{4QMwY@kvG<@1x+=~FME}k?)P)8&O;r`SC_z1Lj~*Q z5e}*gF1SNBkCz zQc`pW^u?bJw{Mng>@uKv&UlI??#9$^1E^8{8m4roUw-YcIV*iz&+ygWWw%0JW_ww@ z?pI$j7vg3jhdo(`7@evP@-nkS9f&y)XOO0jZNXixF2#0A;jJ`No4E~uW>Lx@swJ%U zKvJ2;Q!qW|E0jB!yzzX9Cs%A>$UZ>jLBJzSZwfuatc7tBbwVUQ5H;SQ*I~J@YX24x zX|lARtAGd=N8kNn_sAF5?y)Nfc<4~ZuK;j|pm4`Zz#aY4Q$1!)-rm@=B#ooCZHtK1 zxU+tkKAY7DEo=>PO1(6F+4nTKInyxx>%bb=?ei(GmG-hti3&&}1jXcypG83Ft<`lq z1%HB96-Zx=4w|JzK-s1;u!}cpv1CX%QMy}{e&zP;kaHB%SR?D#@v)n@0Y<}cWbF7s zgMadGP<-;MML60vXVVho_+o6`wgPqh09qDXoxs8?AwmZ+=Bz5!8S>P=4bynqd>Z3x zAdO`;cS(_9Ddh$?f>xoN%?{ zn47Hmj3@^InJ&;uWu)MUCeJj{M{3B%SqxU}gv-pIS;#4~kc&4sxpqX{95`|ykoogY zz{BoCtenG7?bnq^ai~bgGPGQ~Y3Lq|JSz(hqB3~Xv#{`64mEl8?}XWqY3CZCVPWN2 zu7tUBcH!)k*HpNLO0bKc;Loyc91>3VUJr$K!qXJ9wd^&@N!RZJ{V-YPA6%a?xYLhq2E+m%B+T;y<2`SVYk%HMK(2oqa$ye7ABn#a)EpXhEng|HE? z;Xv7SW0{8eYl1ZO;T|nbm8M|RDkUz}NK86o4~&u|O;1AmDeHYfbO?w-Ive2&5&$gzrU1XwQTNtom#6RfpyXTzIOuwFnvt497 zvw>pwKWg}i(W+Xa} zeGDo5CZ@eAT;-qN(UBM3BWGwAEi1;altGNf*qwNd1n8P%(8TL~9 zh#P|+O@Crqz;-Oh3z?vw&MW~y^UPT>quw!x{2a_45da=(joHt)uUJe<&Y1FYpL;AA zfG}eQpkwzQnT4Ex$0Xc`c-VtP=MW*ZhGPN)gf|RS>3pG&9}3*YLnUC>zhEFS z!5DU4sHUTWcfiZ6+5gem6|*4*->d`-0mNArS8PrnKJleN-ZD7jF(YR*bY%4z<#ETI z<5Tnr-w}6(AgC!9)4s*! zOhcU!S3BuuByM|0A9NH^;FpLd4y#?k$E!|h>nE4AJyrqy7X2~x?b2^n(um`U|1(y= z)Y{XQ2vc-oEUFU}FxNpPJNp_Ur{3uo?(=)i?-nMn-NT3dSdXU5|DU1lGkxcd6+W52 zvujf@52w&7&8N_|(2n0Dv-~5N{OW`zwU+_=($vf;m-< zUWqF{j|KTUqqi_h2q?ViL*Px@MBw)`=2@~2EGR%KUc=Zpi%$q!)o>WD8fj>azc4Hn z-x~k|gb1uQZJ+S{0FPGZBWeuPb(_gt4sAhcHEQE%Jb>bT{09JH6G4LN|o3O@W2*Z8ZhNWbTAQzH#4oz`3z@}VsNKjr8$ zxXrMZ|EU^!W$t-Wq`~Tp0pVf6ngQRs1dbpe<9%cnesod;VP+xB1{5e9XdlCvts({q z>tVz%-uUX2}7frA0=DCxUOpwIwK3^5MS$Gmvt z08m>VFngwYk9=R)&xZOHE6)OC3jlj<1AuarVCQ$+vha>d*W=bfIDkT-wX53(9O05D+1X9P>6R6fMx&8{68ZEAOOJp?-lBKLnMa+ zVg8GBHxoK%XR zjbXORR|M+*Cfgsa-z+T%HXtmEg@O7C-_4*MM+5#Yg!a&9VLgmpH+pUbx8Jz+> zt7`R;ElmVz^_cayfI3R92p_-ZaMps$4KwD?GL&9*LFzZ*Bp996iMh5GeTRbn5~>?e zW@s{RBvz9Z@KOfqR;#Tc8*`+e@)DPNsM(hC0=~c|O9`MItIW=?<`Q&2$Um0LOw4*i z{p_{PukNWzHZfo3WaR%kmAWKK)hX4BrC?av3~!hlTPm58DvD*!P6BM&;_?^2+v2^w`c5I;t`(!#`MIcS!~ z*i*v4Rhf;g7T11O%hkUba0ro^>j=5Uu^<0isr!}U9U^XmP1YsfGwfL^=75Ln2O@8S z%|Z0rQvlNL=12w@?!9h5BBwpja58|~w$wzawzQhIy?iMUPiHCV2?ra~L12+E(i}!e zcR@mB`o_%or74V`(XHg)wYWhb^U-hvX3~n8{AB{vj$sB7F=X;#_^t+&AW*Y@>=6K5 zA}8ElAwtNa4(Cm8Qd+dM8L~Cjlvjs2jAi(01e4}a$ryJ0QZM`*5&&j_prdMby7t8? zBzZ#;nuEoD7&_x9dq?bgSkq{qzZY}P(QKE#l*m**!a7HeSabNwp|JWh?0#8P=(Tp| z*cE!e92+*9Uo8OGAX?3KVY;{VJclVi5zM-=1p`0ZY)lD0@tfm*n|;O}3IIrR1|UpU z!P&2L&k_?pS#}2}!bCfW5l21ZcJ|DP%Y=ZF<&=dCluCD*@SY{YI}Q!y)4|TVIdu<^ zNG$oge8@Kkl+aTm3v!X6NH9xq!LBf2C^dwjO-1H!ncMkl`4oqP6H^wKD(_j+&lZM8 zPI7VBiPP57b;CR3KJ{z(X7Ut+@<5gZ&3|TRy0P~mNhvT1N%2fz$i^;ct46T+9kOr3 z&+ddDk&?&ZS^34G-)fZO@9g(bo@dyz@MS5?w;~@$={{_2l~)GOZ}P;>CeL)D*_4uL;|b&uqwt| zW#n%&;x-S*5^6i}91Lk>i2}pUIFedYTtV^6YjnU|@;{+t`x>JkY|1$R+||~|C;4p} z^4cKzh#v)9?T_-Hm@0ggP4D-wG%r-Fph2KM(fq8Tz%5*w(HUGiX1i;U)w6t-aWer{ zc>G70#_@F6Xx%WwHFGqHS=p~W&=!OyVOVr}1v6|H7&N_?{x+1CAw z68POC&$(Ic)~AD~nT;{b4xriU5KO;@cet0EiP_QH94MtZsLe-Nf_MQB z@4L}PgsW_AG^51ORLE3mKiHN!VnXpVxwX1KyeI(Tr{{&~hw%@X@YacEBrG!gQ4Kfe+9UX$fZSYhx-F7qn@pd$eIk*pyIc$n9H|I!EpUhPE~$W=#h)ZssgK&Q}11ezr~ z44a&n-P9ET+|DzA&G&E zMKu-KT4)>8OF~Uho1N|wV6rql6X+kw`nw4L)g-H^+CJAum%XsIe_g?LtSyFur$K-) z68)5Le|P!}*agh(62KMuoY{Xg_6s#5(>eZFGdQgS6!=HdeI;#a!!Xfw5DwJ2CwPC) z!Juod`gy>PZGcBk93OM0Kz;If%>k&}9E8f7*bJ0(!BHA^8U+B70#s7AiK4^E>p-6^ z-N{L2|6>+lr!=;51>YjfN!oj#EH0u?VGi3%LS_&)zk*gr!^fmyGv!N-A zGY5ql!`k$^muciPzQ#9Q%=~B>I-sIl>Z5xgt^uTg9R*jZfy;qLYXfzye+~ZyrVZtg z3fv07^H7*%cKEgZ5T0jXqOO6o2h_@`zveM{$1#^p+mmDkEE>OLevRhl?G_$~ML)wMuA6%NP^k_v`aqp=#qJrqxZOaqnp8>cM zpuORSiSA5cMhE~N8f1Jjf0pz;#eesS{tH9THAeRQ@Azb~hy8Be|FFCH@%`?Gn*g^T zxDE(RKN-J$|L&S^-EkN&X9T?UlN0k$v9u)_KYbpz+i?NM&Y?-R?FuGEQvpD@v`0br zgE&1)Bw*lOLhE*{$Tnm_Wybk1Q-X8ziN}$yt}b>Lek*~M0H0BIMbq)d=fGVhygo$; zQjjq{{U{$NK6l)Tx+AZTvwjX)hnvGRKFlw9AA-*)7JFC1Y%ZQy8a~5jy9pU)Rtq= z6uQzn9fL6-1Z0Sl@!#{7HlG2dbNCWoIF6Ru4cb%R}4(N-{j0WCs9;usH2)}k#l_1>NS zPTctTWzfO0;Kt%iq;(x6BpftECr-!3l#plDa}8BLR0h&vFUbDyLfk$$t}Q*o%{WQ> zsr(yV-7s=nQOzd>BrobD^y_fef#qp?TmKBP{i|{)tWRm|^xI7G1lCo zjv#1+*AKE_sF)O)jNg?b*^n?xF`6HmI#=yrPs5&K#(!3L2louy+7o61>Xrt}M#g^& z{wk*l6|_4hn86bYGWKN32zC}2Hh1{%|MHh;?ZP4yC;+epaP$8C?x+9wkKKp={?FL^ zCP1!7BV;RJ-+thFph5uxM85@4Gg$?An-h zEc}p~1`ka`urS~807s{B?BQc?Vhr5k%4vUQ`ll>&zIt`J`~JJPm{$=7TnXswy7?S2 zO$@~frj-Gj~ak@u5{zHE8Y){-?_ ziszS@G+|&W6j8I|e(DL~6byW6G9Qsjp%5qWq`~+_!$OaQsH(75bESBA8lbfizFmdE zr_QXmqNFgFJCi)nm(PAW`aP#8N~?5FZ^L^@d>^(KgM=sIVkb1DrS2SPs}u`G5!v`O z?K)*vi1ynrzRGant#IqFY3+x`*(igqQVp!54N#n&zbROjv%%}>V!BWUpxiUZErXZg zUg7Zu=Jwqcnrr&51SkOHJplY)ArvS8ToB$RaJ({DIR;uT4#2kv0H67i9$Wc?DFI{T zli7Z{yWaf|9q2EgKVav&5itEOhEVbDl5pR%1ou6i61xc~g;#luL5xxJp3e|F{;H}0 zWw?s_fv3V8qzzp`j`(gi^q@cRiQhlJzl+u`OuuvAJpk`3M&EzFyxaZD6?gx!`y!Y^ zP^z4kcLP1|pj83DKKF_d8(D&Un8zJ?A|2o#8C>l4p#UP5_5@6t!lVPYj0(SLNOu?< zz5T8n>|TH+1Q5}<*c}X7={0NdF*k`e{jKh@?D%_T+7=LdS=*lkXupF2jJy})pu->s zwRvlXUd%o-tdW277D0zxbrDz|3$v$S;wD@MOajei(@8!@qG80{x^ubWfkqrv4}=~9 zKr$p8BIQ4ohS*AF@fc*D5y{#Urn59ve&eQJ(w@9-8@~Z73Ah@F-B;5pk)`ilVmtB79d8L7 zi~R3*Q8P(xpGi#Sp-foYzn;)TF@;sdI?JHD)e<9i(~^-#|Fqc#3`Z2E6wdCBj)&eI|mhA2UNB|AbWlGEOU*zpumD*E}oXn*ow% zCrw2*al>4|?LC?1Z4-Rt0}peLr|}DMAVSAqJQlxpz1$py8p4Nt8#&;qPPYCL(Tl>Z z*U!1va;ZU*;msi~f5t6;+ZFba#KE#!5p|?}^XCY8#$VK(erV{lq%WQoS!^5G z6OW`Y=*M@@Pl(${@~SRVQT zo&$fG!6O8?1>j>py!O}6`)2D5W`FzBk7Emfhk!nOsKbEF`cp6w0$|E8$724@)S)DW z1~nm8W^Mmr2AkEtApl_4EnH?EW%$-+2s{xUGwX)V2mrJmn4(MO5hP4cJGd;}2nL|b z>wF-yzqu^66oi{TWPNKwt3rTPLazi*dSFgZ4}sO^x0E#P=C$qLLew;Le@pb=DNdJ$X6L?PTas)z z�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%0AApLRAo5Ev@5+L2qXjN6XSknw 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

fIh>Xj`QlN=G3CF2JFyYhC&x{uvdpw3n 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

*KPV8{EU+EN5C#u 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 z zs@7+6j^ir{{o1A>ncDsE`LRjxoj^HXCU@s+GOIt%y|z3+bk5gCu1a4R+MLH)`br5S z6;dlPND_kV=Fdb5SfHq(%K{#oXcps009$#e91vXKpg-+JhV|4ltO zD*`e1FC0Rv7@h#qN>#qB62?(g5ns@!mSh)ZoSHW;siJVpG+jtD){H zloQ^P(wCl`=EUIR3a@o7G-&YOqm4~UAlWGL#{uV>yRq4S_tyKP|AFNlbJCI1X7?Mp z+nN_Lqn&?Sl3c>!%*5e8=lZApGc3P+y-nm08Y4_Izk84mN

jQBJammdCH73z^7* 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

(8uhUjrR>!eT;GcmYl{NB39$N6D%xEq@u{ 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�nfQC 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

=OL&BH=A#~&t0RlV&~Q| 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 z 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

&pqci6dd9y(}|xv(L_l zUe_!B9k1e%@3HIpa~}7~|LKjt=r?LddHPA=A*4Tu-gflV289hx94tz7xlE< zq3*Es_&r}Zj$T#I=lzzwYWF!0yIXodTjwAh^dXpOsZywCL64RIJZmfwVCxJ>7<)Nr zZS9UnU@5eoRvPc>emf)eo%Qfp`o(N1`-B-FU>q6Q6^gqXxMkTh)NLRi9ItL3Wuf>G*-AHv1I zNiX|%$NX(1%L1@_e%WiE|5eOOz>u}rAwTVv+Fxp9Bo_#u;ry@IjjtLB+w=uzXK0bF z8lQPEEdzqZjxB`BRtLaE4x?hUgXmPah)QBCE+$c=(xQ)zxj?TyXnXBSqo$eAS!LT! z!PDm?&2{oPbEa99TQx#p6779@j zs`Ub1#n+Twe3|F>P6lV_^d)PDiPpN=d-;La`?CMkLq7Mbz0sHcZ` z9rl0E9KGMTm-3bS`S-Zvb2>DSA4ij3-~4U;LcalDpci`el|Je1gNDdlqJY5>YaIl! zVM4df3-L?~0g>E=q7tN8v7t;IQAN_Wj`Yd=ZamxfmkQ1TJo+piUhqZ!How3h`kc;o zJh)Sxi84;u4zM|R*$-@+1O*KUJMf&?*@g!fe$79jk9t3;#Hky9%FDuO@{X793;Q0Q zcf9l*R?65qr^;L{{nP}!ZCeos0disv1_XQKYtH~I3hM@ePE!C9`t@pw?U~Sgjc2~C zSL~U>acBo^2YsqHIl`y(FkX8Ygcv?i5M3yll+AoEQ=-Nu39J-c_hzVqx1?1>kyL<1nfC$?@OQ?Rybv>}5=#Vd4@^jySW zd;1sT;r=*gU5(DM+>WD$&-!7Mt7L4-+Jh>ilu1Kbs7V?z$z0--v;`I)Oee4wO+kP$ zhL|KS&mrHWlrJ`Bsb_jt&-lLD?slZTx~@ZsP`K@DZ}MopzE4Hmf;1caqyCYz>K{Gj+dueha5h$7c*jFNe=p%34*hwbJiU_a zWWySnjb(xLk;Nz!DlRVrA^<1=u&!l5YmX1WEV5-{F|_HB@zxMvG(8XdEI#s?zwCdN zqVQBmXyk;%GH$?niHP(a?PdQgUd}IyUm-Y}Q5???iGx2uDHVW=BLVP$K~q;+aJcJD zMZ_|9f!)tx_6YBLD+74)hS$CL`r>DJLQX+}IiYMin_&ay2{qbNA8gx+hUwJ(d%vx( zzLSsh_~~8SH29OpANMpn%bf?)B)z8vhLI8=xGXger0d8NFN8xqd-o2U%|#36OJOa@ zgQiidEn28}@^Rkq>iaoth?Cb^TTKDH7O(s4F|TQ1QLOP_o;VUQUXvX1_0+wRJ z_vQA9{ENFeLn{pyX$SL{c&%^37x%k;=L?-(V(lED>22@kfx@PiZVFk4L-v+)-&e`k z{u}P=_>KLs&i6ci{C1H%F6`gdFYzz;xqA~|eU-DZ{nS=8Z={qn*k5Ohr#NMFUefLf za_CA)F(ZN=*$Fc)>%;qj@&$IR^;NmDA16waqf~4LMJ&C7V3hcXkrA0eGbjX)gFOYV z0UDQ5wK@$1yn5$G_vlo;{kLy#@xKlg&haLX<4gPXF?+JauTD7_1~3~ym$v#5cZ>8a zCFK*J?f>5Go%no%ev_};PaLn|GpBsnzKT!broXfGIaH_dyYj0>1g^^?0F<|7=tj;# zDZpDa%JGWb&#}j(3tWlLY%XiaD)R0qzco-P_m07-YB?*d%vPMmCZsRN!+#79^Da_! zr+kGke)|wE1NGqR7D`YqJ_w#E_|jP|>&4(BB4JBZudZq0;3E?QffwHX_SZi369o7f zLKt2*Mn;ZGjdCE3oqbzySs35@Z*b1tA|=Oa8gEIc}Hc)0o*A7dUE2_=$E z5(bb7v~sgTGNhzvOBWNi*DU)Nnz2{KX~>%xZ9D5VD}rsklS6a+8egylZBRH&o{qyA z9GNL6z{4qkJMN|Krnn!}8!iIG=q_&Wc$cEdn4sJm)+5pMK+Lpw9^!>S{S> zn!vQ~;EuM25K9el69W3mXFviR^w8Q)da59+eNu3!b*q>d`Fm6eim+aVZUg%Rp3o>N zlaf->)JxXcs`)0=f^4)8eZS?;vS+XI%{^T0!%#-aXNqk9rDr^6eBS*2c~n#$mA!Sb z)!Jz1B(WxrjUE;X3S1BH1(HTGHD1Zz9Ih@s{@DrZLw1v(IcULRkl~PtNpLk$CI-oY z)EE#MPp&KgoOUpoDnsD{i!~TWt0J{HJ){5N~G{5{U=`=}i#jW#R4}bmCs~_xtMbI7|hJ!EQ72+nJ1Hx3m$zwD8V#1bMU2SuhC0n5~ z1yunVg%fumJ#f*H0tHCyNzJWPvpdi~c$7r?hUCDC^df@bA}OC$A1-c0>g$B#Xi9h; z6PQ#>&Wpbm5L^oJLNa784nfKK+Vt^2O4WqwJQS!91eguj!E7FkWp~W0kmoaFAAg+KrIC2wBXkL5&MXgJ0kk9EbIZl z;(Egwvvv=mS`R~GH78icWh)hhy{l?8J zdhMotfzEE}CzG&XE=UXOQBXVr6AsP)-E|5wU2M0HIlCCkoTKA;V*WMC9(5h_X2$ue zH&SZPcFXOraPW6s0pMys^&mRR2*oG_7Ok-k9XpRoRU@I9YlO#x6q7=Z}V0adWw%*A%!u&ol(muxF^#a}t~`*8B?nco*a^!dp? z*;?W?w#kRX^>soHZ<>HZQ7CTAWuHbCqF@>q{!3~ zfR5U5uBy>cV}MbB+FZ5~PfSFk%<)@4-)rL4{Qm>z_i*5c1G44x0cM@ z(Z77&ZM8iENg`~qXX}lxYde2-Kcz1JxOd*X+rhW&7p${^XX5HIACZry4y11d1kfho zg?E2aZ0>aQrmwbVh9@8`xs#QiOsz!lB{3Y1%{w*ir!}E%BBG zJ3dyMI<-C)$V`pEr*HRo3>m}=!Pskn(mAH&gjRtNf-M9^(6Z*D6OJ0-+-Z2t%`xNB zA!pdALGD!qITatMP4nn1+lRx*N1Km=(#0tg3!!PH1F;4|Qb?~0ASht%3|IzGEV!U! zKxjh`n*`#5L!s5i4z)VqNxV2Mkg5R1ENz?cjU=lZ$CB>I&T0?fd9r0pJY7Dg&t$p+ z&}lwF47i5R$AB}wn2aj)4iAPk055B_9O6OVIJ{Xcoh+#$);8H}@0n3ZfT{T^mqf+_ zy*8$h=cYgw{69-9NsrL3yXMFw5Z~o4+e?R!H3ktM0m*B8c`BJMMIv^kdESbrahp1HLw#*x$u3ZJ<_n0XdD@5F^5 z$RSrP{N%7%Y zs#k8UO8Q+d81@SHjxFSm99+Kp_S-wOPzk8C6@j z22LTNzo=cc5vv!h6@hA1u*hhg;7}r}W@O}GIzNCMd;wp^L`2kp?Nd84Nx{+ZDbrTSU6yzkfw$$fsAJ6ynr`3;3{&pJ)4G~tU-%Nmqd9(k`c;4_AK31QJ@kR3{L ziQqm2doky=n)QD$%r1^IAW9@=nc1IqIu=0@V8AGpwxOZFl>5FoXd=P4ER>b33cTN2 zuz(b^9>vY}EVi4In5=gdAye5>wHM){4IfBP(`bd7FSVV9EC>M8lv)eM!GH(A)=9C+ z3)%D@-DfU0PrcCOdB7Egr^u5^<} zNdTd;12`0$xhf_(>MrJ;vjuF$Y5FoatA#2RxtsxjIz~-jF;bJ! z)`Xb?Nz%67dr4dgGnSa9tD+y{P>3kYn9K(4>y#4S=5L$aYhgf(jA|VRv#FuT)?NPQ z%h_6u2j@blYaBR`wgT|#OJ_6AwR&q!kz~Sgie-lH^i=v|Je2-+1d#F6cj#}v=`f+W ze$O{gL1WTzUgbGR9DL%Hb=p>Wy5Q`7+7N zS98&bm`7}$clXYRdlIP!pEnzbBWr|@?S*7`5441^WpcRSHHfx?NZ~wt^#LUlTGmX2 zArd@rtXg8ELqfoIA2?p0jCpA4N&FK@LmlNbN^kpms1a3n7X%+7FtvoyLMs&@oV074 zp@TM5<49qHI2uBQQOTxcn+ZBJX)6n^TvEK6-Y(dAyNWpkCVOA zO*GpoIy{;V7VgZ0Y1v{clUT=6V+gPgh=>{%1;`K(kn!RPAQ)yqHK5=Gu+L>1tVZJC zPG$;{sysf2bGtgP#-Pi#scEY2EId$*t@l&YQ~_oZR%&jNYhaYV2B(lvhgO7C&i6xe zX}^qpX9NM(uzqyGli2fpvB!T$=40jWdlmYHpV;*FTb^U*xZZj1#&$d^Bo6*%QBuIV zb68uI0N#P5DnU`saU2m|KVcxGX$qi6HM5%7m8Y;xeKKY^LX^^9(uM$HJxB}GG1D2O zMxh#H020aFowawqkc_<^_25e&XX5-eI>;=04~lST1T3QQ00`gQYi45QdcesEAf@H@ zD%~qU!^@K54bkiMAnBlz1hKHC`Y-|v1E~o)k`#D&3$$b=&xC3NH$4ijnp($Hy!HT} zA!vqiHSU#6<)EnEp7Se=ILao-RWn7uMFOdgSKr%6iJyj~ofmmWY-OKBv4h!h?#6yt|m^bvR`@T z-rLAVxDBRli)@C+UdPdX8W@A`KbQ`AGTH`fS(q~&5mBJ510De~!0QBzTY$&3BdFC% z4V>MvcM`5}bMlWl*!canDB0C-HRNtn#(e^2~|aZ{W8co?`A7u-9Yp3cfKO z=yf4X{VmG~heLY4L8gwyMSFiGRTS1o<=$#E%`A9oKg9=|2tBCc89tZJ+jJRBozYX! zn6KX2r`ydxKKSD1SP+btfr3SG8K^keU-1SpvMmlZMkyI8>e#FL;0`#M$uWX4JHBBB z-4HIuDebfY?N*8+A{T@NXm2z?L>WNBBO*cCLqH&;u3sD=;)P=17p#GAA#tHz2!$bR zRoeh4Ae?hH4Ib`c=EMe0Daz>U`u2}xpWw-Y0rqz2SNZZ`R(&r zp?3g-u``yA0*x3>WCUK)du_!J`}|*`SN{L&O|_H9n1&hFn0Ac9Gidc1spV8&g1Fi1 z#+o*#bIHaL0czjOQ%5&%zpY=A9s>?8*1UtX>R}0^h8iG50Oy1E3S^w4kB9>+WRXy?bL(a_OkY9H755ncU1wDd~fGO@*j zf2Cg4m#CxP{U4-SM?Y;1yF+L#(;vuCH;9n)sAr`4hES0yK_$MF>?w2@*za8Pp0lLF z@fX-C%WiEAuPgfOofcmCxXVFekzDJ5HCj4}(qT&&VV$s%J1|noLXQL@xG1e<~CtwFV9~OM%HrrP!pWoSt2-UD`UF1lU^_ITZd5sVW?Zjw2|qyH&n&q5lV z&6b^?$$6$$-=TMS*WtN00qKjg8}mkT5V@*wtZ`nphptCSLLEm8yZJm zR=VX;Z>^DlNaiAKYlzS_Gf2%Oz?yX98Ngah#1WktpXy!Kn$crhj6g-DrS$9~F;Qa# zAI_n*?cUBXqOGvFpE;eYf=~On4@o*Y%mfi5=^-eWMiVTjE>*{zgM%MUxWeV@iCa&G zlkf=txIBRk*Eo-s3lIcDGAE(vMQ^{|qVir($0}A77(Y+8QiKqm-nDJ;JToriEfQo1 zDS%8ekmX=HKcg(;(0h&~7+u$@cfor+KnC~)WQtQjgvPgWBGWVhr>2Md=76oh^>ba? zs5=yxe5*#;#^Y%N3i+k0hBGHE%m_DlkUuL?B4fdP;4VtB9Hf@eo3LmoW6IE~7|Fzj z^QfUR=>|Jri0}l$n9{+x>j~c`crL-C32yXhpTGWpf_e3#@;N7xvd;Ux{9+@GNG;Fd zP~oiudSn3zx$cbsGmuR%Z>WBzn_A$`CjOGlisN?)&>uLKV)@ijxFE ziK*a6XJy26hxC?fpars+a1ww(9KbW&X!~gkSZ=_$*?~%^WL!avfDIF@TBUR~8s(S% z$A=H)-Tz6a^Jbx5{o(UwA>IfyzL)_p(^lC0gU6E)Gl-LN+h}BMFEqgoGqP519#|shpiI)*A*Z0RQ`MT_CuG*?YRi zZfSL8xtcZ&q6jSoN1?`u*JZCKgi2BMQM4fCkIzlDouFeAofRpA7{ODsFwzU8tIi0b z&pA*}ad@u3hkbc^z;33`5Np1kt|dlU+N( zGs2LqPziV}t3mO~LO%pN(uP`r54~3 zcX7XFB#MVEB1c5Tf{98EXV<`CJemqDRC`(Iz%@#g9XLT)0q82V)Ll-LGH$>~1#khp z0m$Y8ZUX|Cwhnb4_!yze8&D@wRW6kc1XLB5lKDkn^mHEH7v7b9y)UO~O}DS@Ky2LK z47_j`4XrvYSq*~q7N}S#sB(@PZUU}x&J}=tGJzvxugxhX7Y8mzl!LxW0)jBI5j@A? z%Z)%KaMe*WNv^z%DjxpNmz^%eXY}f6U%Qf><}E%F`UhAJeWe-mjf)+Xg782U^|ED# z&eU$XOxWHR*-1KggAnMXyy@SE_NUu3QZl!S;r`FJ_boV@ubs2AkFB%Q&LA^gFZwke zn1^4uFL&kH$MkNxwsu))uj`dmrS9Pg2zUr%$XYonV^AxjoUFqEs$BP1 z*0V~xOvY=RBMP8Qbb+@%!YUZ;%g4X?1;43Wqb{jQ6O)w1OWM@7GJ0VW7|pEMQ7?ep zThg7v1`g&w1?Js?6*-xo<-@?Gq2N)W;UK@_!hO3hbJb-=tf{|%3+7SUH8YKt0IEh> z(U3cQ>qEs}0|qJLZh)iBcEiPlBFREZPGqkEU_)^EsDOjlBJ@COk({W{*Fc~IRcflI zUw`yI$Re^_vL2UqH+b38dZCGL63P`{gX^zu_Oy7J+pYKUQ9?Oki0)WS!i+eXgcTMiMs$A@us5ig+o{-5vn{a5e*))QZe zm5PkzcyA*XUb$eqy67v%mwZ2Cewo1+-p|)Q&nG-=ZyMslHwoL`Bs}T1B%Xw^3p`?Z zd6{MSZat1{Z#UQ#^@>DWrl6NlwVS#K)!LenD82 z#$eS92}LH6OeiKjO%cH%I;Xbakq}4G0x~eQ!nosUE+Y5?4#Kxd<71g0?sSXgwkd+# z4RQYYz%}p;P)>z$tA0DVBN-6|n#Bb_^`*-SoB0@trWD=>0(%V*0zf(uz({h&LJrab zDU>Ua%1li190}l{qn=^~hgl`otA=I=(fu4Q0m^;Tt&jR7EAp5+&lFY1cCV-lP2*r3)uCak&@5ch;01oPRb=PNr zN8U!>H-)7OEit;P>(}=73?gF4H&<`}vSy%O-*PZi0R>NcV5$fn@Uj>6VG1N)0u0Wr z1&*o`b<`a(a8gzR1uS$rk6d(ca{vhdVW3ePMrbxBsHAd*Op;*Zu~!^$#lw20*NJ7F zGwmV97vt*7e|aW+$eV$<50qb9Qhwv^<5#dU5pPUxe3tqvcg|qvhssalF)!rc(~qHl z&2N73qF>u*zx}SKukDt(O25kz1hDw9@?0*v+r(W0zu6c~ORPGol#;5YWg|4H>#(rz z{?Zv1iqj$hW!r(u-UpVnkU(rLwgn&;+$FP`L260noJUK_2(w7NPKfOUJoX{idSH(S z-7EZY1;#PyOYL`ue8K$wRYit1n*w!+T<`*DgiGZ zD5#?)=V^y1TpD1?rXxWGX}CT{oac6dddAMMxK=D~YLS8@;&?npUO8iN?=@dmR7n_R z^R(M0ERq5VSktSbngr8Ll`xA@S-=Ke?R{#0tnpg@BDZ@_Ev4{Miz`66B#ci469xtj z&_geLeV_N=s@=D}c;6m1c8FL@T$fAWd~gXZ&ou5ZN=;M4Xxci$171F|EE$^Vk`Qo9 zDKTLmtD*n}aEH03v!sxK00$jHXc~j{IWA2AtE0N5kwgmKTiqOe;W_uUmJ4b_U*a=l zO`ZKhEUp}cf>xmOaB5=AwohoAWV0DNT#9S|1I_zn+bFi_tyo@Zx1ZQC^{JhubG|C( z!8P&O;UGT);=-HAt0d;wh_(Zp$89vT1z0xVTj40L2JSX{pnDneiB$=`Q1l#$i@9Y1~MH~+wM@IntS+%b;T?R2`G_uPqP zdcvAfoTCxV1Ti=cU+4^K#o`GgtBp`G4hbV$3U|cwM;OIbIXTWGCzdTa#8syjzaWVa&PxthaLUaA_*^xvD8PGeB?qgb z92#{{7HsQtg$dQ@9j@yw)nSVWXYdYf&+5wm6y$25<_c5rVCKo3wymxH^R32#H#O(% zk~^Ye#G=HhUMBL;AAela|rd)}*&@Lsf)+Vm!|{3Q6C!QZzoq z(s%@Rf)Mb?kOcTx!v!+~?(eE8rHu-VTi&g=sYy@lzLgT-Jf}0bk?5HR(1xn3HC8DD zrHUrVvR-_0PRgo{iT@H#KbiF!@q z8p67ofJcHX14vYIBkeoyExsTGyv_5Wpa^>vfItg^!m-viy~ItzI5_TT$O_;|LPF+~ zAf{77S_4&GbSNh!51(w*$lJisbW)MeO~FOVQ~?(#P9_SM>bI#@2IJ_NgFg2B2wwEd z3UdxYB84~zaL8(G!a->+z7g}&L(LQLVD%Y_R|aVz@i0}<7&aaHrADzOankE>I;^r* zeBO@q@&kZh;5~p@0fCwvL)&pspanH{mcZ)->E$&NH&wPr$JqEVy6KIfp@Lkc5viy* z*UwSIQ#8K?N;h;cRBDMmKaF5ETl!>XgBEw(gLTOp+r0e6)svA!Y!@>Z zjF(Q(4u%WUxBU3@27mm|U-VhV-HZ*FxCGjPwpHL9FN+G1RWiwqLY$Hj9IfC0j{pb= zZl%%;>NZ4W#8XIt#wG9XCP;Dz9c<%Vj9ZMjtOppj5aa34$7Qo5i zQh{-Ng5W{|p1`oiNRn&>NeZxyxeeKDo>4@`3}L3?W{H87hDLq5Gs_1{hLx-_qe&^& zM|g9%;y+UMq|JWOLPE=i+$H$vOu4_sh&jf*y;r?2Ti?MYpdX0$1sA@*xn%X2Op*a; z4@?Jn3NAQwcq|OR4<^U)Sc(*+Lcq6vY8%!(+dx(-`7L=ufBPh&E4mtUgycn+q|8_&5oodMhZZJ_|5fJf&^)m z*;#Sw;QGLc4}{>UrD35d5YPn)4ep4M+eE{zBf3)@77#~Mg&6J@*LL>0d8jz(6|+qZ?RMUvvVPi1&`wB2Z7=*BC$ul>1%M9`y!s0v zc=#1u!I$IKhv$8@p8wvl%mFVfbU2HJbVag5TDU)v*0n$n%Cg-HDtmEb0O4ZC zeVTW&nIxurZTh(#t4NwIEEnpS2p64GFw7>RhKBQ$=eqpxkt z#%rGG2WCJirGQR28!6a&E#iu~GxnSjNLJ4Z?F^!mN%Dy*Z1KAqBKSsIt3Y8fK{X8-<(%noLrc^j$UvLJ*(=6@d!IMJ?QicovrR&W)s{hYgOA zt*wNDaA_h!FcFZJj28wDgBg8DsX}C2zuL8BkCAlf*}yHb|90;hCARIL>}s=uOO|+r z#Y!Nn`Xb%oG9JSVE$qzKyX;o4y}Qn_JE$LNkzdO9{c^m)Pmh~Fj+s5~5u*baA6$<^ z>r?Ndd7N=kXI|p&qt9^eAx`@!lyTFrRT<>1ZJj5j1g|!Afi4gbAR^2ig-N>V2d%Mf z&gx#g@!M7?gv+`)mo^BVN|5pD4WkeP6Hl z>nG^gab=C=WA`ugbz8XF)(_<*wX)Tf&yNr3-~ZaPK7^xHZxiATHIH{jL7j8T-bBVU5XWv<86W}ou)wHL)SxB`6RQkz4aWo1qtt^N{*u{ExyC;Yv1+&G ziAmAqKLI%MwZr+Bg!1RZBSOQ0ePa0W?SvW7P1+N@@2P);zk)+wlHa+^KfIJEMjUtd zG#x(p-XK!#Y(s_+kFnVU2x5n z`Tz0_e`JfLJf%U%TUNw3!WS5dBsxn%nloM| zkT?}$5C8{Dw5?ZOAxP!hCnlc%qBagrPOP9e^(*ng{wmy_r#_|GcviUlY?Z0zL)KBw zi))wpV{XB|rh z&pM4akWPly&!mkY(qr80#?tXcn#05?p~{q6YLL5K$DHd`*DhIp_ado>b%8(?awAB< zqo@*4@IdPj#IP8kal`;{0*L_G+_+e&B#>z&5M(MO+3OUl7O?|>M1xThzg+i3)KINe z&xll?&Dn{GC0Lf;!FApVae~%`xp;W0heXbS`M58AHC7*}6t8uxUcOz|lf1c}Vy?5d z3n#KiI+ucptd33}*fVhX;p3*`Z+4GVW1=F6mWyCnOsI>}E>K+{qN;GT%0c(7>jkGt zfD`!vxx5mB!N_Zx)f9u*`+4q&O>4>*JuCq0O-kYYX#eotlv4`Q13bl2p~X4=_wrWMBVv#b9>tE{J-Gyr<>)?KGz_Yy>t4RIEg4$w{ zg@$1yspg7n3&s`Ee6II$t>eX*awIF9GWg;PA=qQ{jM~ehRTIR`Ov^8t3F$SFbx|cK z)oiO>mzvwvFF450=KXI}Z3ISk)E`+1eaci7@XmP_3P6CJp%Y+c1%tg5S74XxAvJc| z#iN92CKvNUg{&JQ^$chSNY*S`hRFn&Jau7{k!rNmNfqOhRe9l4Io7H#hzHTc1xkTO zu2y}bT#?SXcD>ST7p`4S^W;dzu^2ki(PCQ79wENE#QeIL8W)e3jd9I1n^fbpsv~WT zBP+Y7Y2$7<0I|OD+G<`#L>!8;+7z?{K-sHc*e+DDqQ|tgYQzp@Igv$cmXmO4^{lWa z@D|NtvYgOkFsSEM42(oD*7?LCXHChjb=wdXgn+3LI10FL59?Lj@1fvEhF)cux*%LauEzXGZ(55cQL#We=8=mj*aMX9vDZHmgvq0r&!B{faiv7zo7VXh8G(`mcx{FKqNOLAg(kEM?53k=QG@82wi z4I^v-#Zy9owhT~Eq0Ne-@xUdGr#gco(nyp_A<+dSI1ysO(*U0osZLI^+H_dw-= z+AY2COr4fG#8ek$g!n@G37zaQyfXGw~u{gqHBQ1hSghd;1+<27VHcK%H zDynO<9@*H+QIo8&B8HD`3of-@_B2e^d?b3^+9aFfS;`h!TR~>gEX#rW=wd9y(xFt9 zmbMC96|e-<;oFLd3B)L7i9-h!v@jAAgsphpDB_9{(Qa1oAX0!7RWzzZ6i)OO#*jdT zOx*jn-Nz#_pmPAc@;))H3P3sIawW2`(?o$VB#{82aN248Uli}L=SNEW6A@CmOd-0?AGN^oX0(n1mz1oDBf)hG#vVT=jUO@-O;ss&nlvbTKdyA zB#Z|Rx3&hu!CF(+x!^+IDJ~5tic+DV8SCq)A`fLBpr~}BqeK6E#Gr)iO=H;my6ivV|u** z-Ux$?@>?eujtz!$9JkwaO%Nmw&ZsC+7+K}VJ2o;blcZ`R>nEy7DqTKlRAW~HmdL~U zcIsiR7LBa{H?ga2Wqs>g7Al$`hsk*I&bbF_*&Ko7&aa9B9T_(eKA22?R1E?vn1PIv znE}EQDK$Esg@XcJH?d}#GzN6Y6tOMa!joETr$8gcNE)eV&vtF$Dj5Y;_EL0YJ?%vz zN9wQsLI~=th>gq?&aR3B{%Y12XIOBx%@ZR|bP`9`E8+4!HW(@IgZI+28YEbdeF&06 zVFwmUt0Tc)YZqG6s?60=+cyy#qFv^G2au12OfH7LBnPQ>77eKn){YvvRjSxt1|7lS zA+w_OiTFw&3*CIvD-^L+P)Q+-Ix?2Fpt7jZqH>O`V41|o#cA%UianT#cvxq@JlXVH zC7Z35SeW7P9Q?Z5>r)*q578(h)o=;uo5GNCtJjb(0ZN~3SG3-58v}@t2?>P?N9GS( z4n?=k;*RGyoYN6!K(4T%yYF(r$E?R*z#RfYeext=H()GiU>Z3|m-WwUEr#x2_ZIMiWJ)Vi4Ni+ic<1*ZEMn&QC|`=E4CR=?uyPZ?->u*r(?Q@4R#D zd&u@i?s8N?JKbAe{(CQO%ij6DF>p`>%2-NVPcXgbCVXICQFR%{%We3sGxeDci`vT8 zhh9^vsy~_}8ck$bX8@@REE-7?3v2OIcn)r0S@+<900DY;KybiT94y~hbN9$sxrpk;JNg<6FTJ;&&V3181K8y zK-6(Mw;MGJ7CUh<@6*op!AG6{T2UO5*kT=ww8JmFRsNJ`(a)Ln)!$?_H&OFr{FqOg z5t>6gTXbEYV`^xsu%fh)l#^1bRj9AKf8`~uQfPtucs-WulS3R#F~c|dJSD2NoKP4O zSTZIqy05`tgVpl_OXSfTIKsl*L&hjM+Lqtx7kvl2H9qozhTp zZ0W`S3VhHWKZfvG@X}h4G?PQ@75#hc@Ag0bp9MkUp!`rBRK`}q=_8*0dasMW&h7Gz zWJIF7884rr|31&+uiL@FE&<&|GaIC;?KYOSk}44kZ5A6bU<#p$6_d^+?lY~n5l~47 zo~P^6IqxXvNyr2O*f-~tSbXRDKypE`{iU-K4ucM9r5%x<^6OeXcviu!*@3P)qbx{; z6w^`>0n@^Ddtp%#LXKHjVOTPw!+sC7j$6oXK%_IHoPYKw1Wz5nCScRSbY|gXji}Jc zIFztG+3ssz+tKfHhM&wv+`HXTkKRiDGoCBHV~3Zq76Z91`SWE~rBVJ|qXtNp+ zkvmrs&wNsM@A>heE6(wN6(e+Ky!dL=2djUGXV%9GYK6myC3j@nz9jp<$@9mTj!SdD zY@@R;Um8a@HFb&z?BQcsJj;!$-0!)3U<7hUVcdGO%J?ArAME|$ zH@TXd6+Ia5M)jI7l0T;Codg06tRSmteXnq@&15tE3VR zLe=df_34!N>4$ZTBD*W;T+{=C6COa)cIIzP4wDgqtWOWcS@r0Qm4mR;IcJPX_d(^P zK!VZ+%%n(RqiUU{jOtU#C@T^16~r39RJM&Uu#4C5ai2c#?~sDlp6!WSasUVOS!0|; z+*|-$RwW}G@mdg zPx;<`PhM`mku)J`VSSTm(k3!-IvKNn`A)tek2-O{RV(t)q@DYl&~I@WuN7=F&%M0# zM||~1JxF&eSwlfweuNe99w*W9LJ9q-uhlW5i!bc?66(EVsmA9&-$z`_WMC+o8yiqn z#;p^e@8gIHFjhqL!rie#~<>~83ssUDca~?6HRE(@i z#}JqRv(xZc0vRQFa#lX5y=B@X0W^uoD8k)muqT_fY^2F#GIAAYH&5&qR#vgFLN5w! zt8qH1XE{rA%u!vtl6bA_uP?7rPV5DKI=<7EVYjyF%&e_$KctLQH!qkl%H@a=JCsOE zj1r+BZx0#O#JUJL6$k=OO@HyjiEDr{~3M>_s0dEc9;FOIWPpHW2+myK= zi#W}@4PnJsdhP#O=Ke}Uk&Iae8Ctw_3yw@>)0@7Mz`^J*I+|8RSt-J@784;A{K#4f zamfe+IZ#(9D2^<%EGATVk(c_gZ89*Ct#+N3_JhuDqNA%bKe?vewa~~QxJy(*>edEo zJChw)9nRr=Ne<29$ACY2;kCczXLkK=PZu9f^KQFNQl3KLahRGfm9l5}9S zA=M_UK4nM=9mnEnGSQjYc}A;`z`S!$DW;a%9stH^;gsnS=n092XuO z@D5|o`1ftiVr*y|)C`&7H3cYKk2=V$RTa3Hlainpj=G(+pXJEC6g{%Os2_dvqbu^h z*n9f*!)_sr3LCSU)BRjJqgo?f+mUALf$>G1s7~xyA4C;%!aUp3qb_xwp|muv-DV`U zehTD-u|u>bLZ)BL%yIe)cVDBAKFvKWlQ0A9)dYr5`K$1Gdplmen&d%!GsnWi31qX1 z74@Lx#D^TyeETrH6MfZwnXmgFzg#pPJ$petH4kd9;_rc<{ZOw-Ztei8RcjPtr{H6m znml6zg}(M|!(yReCUeSJ!GL4l*>6_Tjt#m)IPW>r7`BsSlx+)w1F7I34$c{{oKS|a z9X*JNm=h5Z`7p=LyzZ_&k%9X3kHv3mET?m-*(H$oVg zrYLIKPLKcEX1DQ!csM)X{5yFe04ePjP;QtuZZ@uO0uQ1)%;#bEjz{lT<-Pj){BREr z`X3(%*bd|Qn1}T}4(bpJ#m2>wsS3*x2d-W>dQ!HKb8J=FNovUw-o*)`fbD`zyhO)y z$MjAV^+Xr~4KIRLOm2{pw;e}Tn_fnQM43TIRA@z(m ztF{D4O&VqlHE2WDN_+42y|h^`B}>W3bjlc+x0Bxfd@pZoKWRlM2ZpinLJ7;u&o2*N zkgym|cr0azL6xWq-VgnC8(Ixg#DY_CmG#t|z@}^or(_-f%lqf1$`k-!1b^)EVCyqH z-{rH~VcZBzJ>k{Tx&TLv+ayI~@`H64el~nbj+1=M#mC2{o`tjc0FTU@4k4Ei=&3db=?tole)I;OZ-P``J5)zo;2U zbrrMhIJ|P^@f)+o`qH&omNA`jS)JisjS(uUk*C5K`NsPEQqTAu`g~vLS~pCq4sV4A z`J25S?{qWg(^EBF0W^6avvQr@SEDv|U!v^O#6gkFwtl1Tcs~8R`(7ea%Xo9w-+yY) z;@SK=+kH>oAzL{C(Wt6v7+0;9QH+hkJXjtO#gQF{KL>?*e?ENo!j`r(1 zzKDg$7k}y}(T})!A`yaY`TDx|eB8IGYuyl2qbPmpJRoITuIk)cZ}8XaWB!j3&Evp_ z{E%^KR2(b&CqGtZt|V{H+f&^nSBx^Sk11-94unIXMrfROANw2s_kQHpaCUG!C~aSF zAIT?w)k)7>_SI_-`L|WDO>e`BwLU5tZHdMWwq-}#-z`5rx!1LJi$Vfe!`c7MjIL6)gfdZgOFibs$rL0~ zOkQH~u^p6#B5L4uNf8mSHRDE!(4tmCyCdss^eN+3KUQE6ST6mN{h6Qp7d`KK;rl0& z)*j3hNiJ+aJ66^LDQ%jQ_-XZZzcF6ZBYU5f#4>fc3JFrG&(9PnL1M-QN1GvhpRJu* z@ZDn^N`Z{XiBjX3b)xQ0c+`iJLKqEX3D~{og%ZTVs9cn4*3r@F{D{M=L@cRdPVX!w zaaz4{ywOhqs0ZIRe#uu>r*#d4ajKDM>kf2Rb>`@t=zm%XO?$Noz5kov|6Q;04yQce zc~GCDJ8FbLj$|+bCy@-hver#vqok-ZO^4w-T=5-m^oR8Hbt4tKKO6GQiEnw9@5A~I zbU=%#W`+SnmxlH{DN{*=m0+MnwieWWi4U*c%|@t1Im=akvg%E;i5tqqW3#~ZV{K0- z#VD>>GAs6MZr-B*NlE|Q(Ic&&tvG2t1ns5N3nd;&8+TcgcFp_RAm{_zhZ1V64-cnrZj_99^0|6(E%xT!YlveB92u`PO)1mWGvUFsQEjdp)C(W?*}krp z7xfrU(6lvFRf2{=g1DB8$ATrQ3MXf_STLd_3~IR;kiCHYUcj|}FwRLEW*B{b*e>8+ z@TtG#=RN6t;@}Qz+41G4j=$m^@Rywm*5ZMAJ$e02Pvm8f@5*wW#JK-V!-&-5+8~~O zlVurA+fG}r>*L4$#DVqY+Q|E5uwQtW&8E>CTC4L7(W7kGgwKix$>@Phe;51#n4y>w z4_D3`o6Zwi-n&kD;&9%3)G?|}?(3OxC_P^K9_)8B4n1`0Y3IKS_z?%Br9JiHUH|w2 z#`QE{H88L!AZyJU&sD$T%=nHSycDygzId_7SC124b#kK1FyOIQ_JNOHoZ$g0HOslu~ui_3LDKn49bcE5Ns$%Ka&*Ag_UVMrV_q+PU!n4R~Eo{C3M-7h_ zFg;0c0eZ*LJ8Zwt=JzQ)*)QBz|DAYG-KmT-_}EY0K90}eaqs8m_1||5`^(g|0NRZm zG=baTMy{%&*R!EnW250*#%9mM_pJKGNQc@pM-~^)Ha>I-D2&`Xw?EGtj>`)r02U|q zQ}7>kdp>irUkKmCId7-wLvJ*$Vw6&KM2#>mX>cs`$e6uW+P8r=PURotKhxaRh@;lq zb(30;8U|^f?aQCSExt?t4hP?Z7vAY1bm|FNTbLPhy5;$Kf_4K?>S^zT)4sSr%z)=mVVyxUY0hQrU74Ylon~|CgU3mY82xc%#VdWa{qmv zhhKL&ADTZdSIj=B&1?4;-skwk+D53+GWo>q^IV)qb?2*6j>)1+N(QS%!^7TpE1K;#ZK(?G=y5 z41m?N*e7!x*8x@!EbM!FfH;}X8Qf#65#4k69Ph@a_Wl4C+{E5L3g*F=!Q0+Dvhw`S zcz)+i@AD)3$X8eI8)iH*Gz=UZ3DxUw$}jUjbkTlM-Ddi^qfLY^VEglWvSX&RG*OGnX65eiHY-6V>Ed=|RJ|X`47Pn}GityHt zeKUi)juVn&4sh0w0=R3@P5YZBvO&x!d=q>>M!yWPC8=7rZ>KW|uK1|(vhwiIu77?= zERyq{m?4^!t?S{QCjO$g!Jl@Tq0x$a&*zhmYSQCJ%<1&l$YG4s*zUTn`w4Gtyx;}- zV$*Ke+JGikL{mnoKrbp)m;o45rk(_!3s z-$#7peIY*Kog%`0p4`p<8_&)y=_HU;)#$tzsS**JL8xg8&TnFsn6GI0(((WIy#Aq& zdC}@iemWLBtFfB3%o|^)69;^|22K7#2`X!wHar8rYMy70NNQXDVEba;m9C~X=xy7O#_F`U8$2h!=_>Kqr zt;xkw#Yv6#kGQN+L`9z9k+Qeov_GBV}zzkp{6EXq2 zh~zl$V^9OWjikJ#0>P$WN`n`Lu3S^ll3*JJqXClioig>-7amEchZ|VvESP73pbEAt*<`(ba0yy7a86SK@FX659k*~(5 z0qX-em~R0(;BwP}DRiS&BSoq)jz&zHZ45Gw?HAHK6^bia^rOV(fQj?!3WbqgMrnNj z#XHN$#xQ1Sp=G-OR@*sMf&v@Eh!Q@Ml2kD*2Zv8^-QLwS1Lu?*vrTxEoLUkeN`XqH z^Hu~aF$rDP+MVBq#UR3 za^Vyq08!ygAE-MHT?q6J`uIgvCuN{V6Ol9-YN-IZ4%5{D_UK#R2r>+0JE0x;BktO(4vwMq3Q98#%D z({?0X-KSDD8wE6^1^jfLzVo#id5bwSB2x~oM^-wPa3TS{+HbIZsYn)bElR=^DuS$r z7R0w84K-k;saLgxiOu@D=iOdQb)(saGpt$sC9)5o-%fN@veU*;Deb+jWn9n6ZHho} zP61KFz*=wtaLrSCCq;zp!1s}l*$QDnxNav01<%a`4%-st;mJv&9#Uo!U39;Qk$9vURUV8(yvd?>-g=y}=+$v(uop^jKJ{a^+W8opD@P5>3Rkw)*=cN~LK@|;t3g>9 zs8SEFqeXmagTf`0DgW&ybO~K-M44lY$~NQURQiq$k>qi$&3v zO$ofhiSj0cX4>`uuCPtfzSU;KjEQ4IfK?K(sR{HMc0tFBc6)5F&q$ivVRdL1MyQ>> zkb*<%d`j_3Y1V^U@1_$O31r?|38{*)1!@WE95`PGRaY>EB3R4X63eE_MQ3wjDv7Gk z0Z1c~Fcircs*pfd8#N`n%EdUcBmlhuDFzH9iS}}c(~fU)Y%i>97Gu}m25&1}?5D51gZG;f$|z{>OFoe+&&E4gL)&bKD+Y zLvR8f@7AdhtPfxj^a=1BEfYa3BdnEh00RS{4pnyE+k2kX{s`uMu>6Cn;OM@t zFzv9Yl?QG&&&J30ZGX^b0D`v2yw&CToja6=?lL{1)syv8ww^0f#kLPBJv)v=G7KO# zrE2epD12~Or%w8Ak;;u*Xe^Q{8wgZ@ZrGH`JEBI5T?jC)Sp4}J@k!_pES+6l6c$fy z!zM$wFzA{gR6#aG>z?}Q7+dP+S&&AyPCvnnXIJE$qt$V5~q2 zY@k9dBg#&A8wa*8F_J|hP3v{50HYH4oSNK9BZPr@TT+?KDy`$xHI{k9w}`*Fydr-6 z%KLn%AN((40E_Ic#{T2U%0=cOV~D^7X_n0+%e6Y%u1YNyMJ9*(&H|O!;A!y=L8UGs z;QXWl1p%j_4^O%Q8uO{EumHG7ZUC7vIb#Q`?2HPxX#&&EKt&VaZ2~k>F9TF{f}^%K zmq}Ge1C@>~HkzZSzY9kT@InjxvS)p5sW%A-{VFuxR#dj}g@iD6sI=CV8-9d!EbObp zTA7$60>loG^mv;aErB4+;wg9JS!%z8 z;K}fI+zBmQ6oeX{24hu5X!mfC$vhl7?rTuxmem~GQZ!NzHDVbtbsLh*E0+MD&X*(! z5Egwy$0V84vB26G>M_m>EvR@Qt!9J-8O7LI3rlD&qfx#Vq?JSC)&&Q+Z70}D(Gte4 zoH&$n0Us&U5lp3xI@d{vJwT1e>xz0MbRcb^E;e8#d%=}s(On}n7&mCXT7 zql-OTHMXQ_tL@+@AoD@g<#?KX%Xt6_Kq56ouaoq;?^u|tcg>Y|u1%+IlL;UsP>3kyKzLL-3AY>ucO#{A z2*GoRp|&!Uarcp@CL~evCDD*+p$_ON+jqb!k zg3bZL=P@Zk&D`ZF7>L=2H0wkOag=i zGdW{i?Gz+7j5Z9dz(FP$1c{*sW9F_zQmoQx(zds;I?g-VtPeBC9lrad9@n;+&Q50s z>SiRyiFD}2V7Fy-z0ZWScXXN&aNbQR!Am*nJJE`ks+GEAuPHcL zGr2qs_RWLI*=vh&)nh0{o33SRx0XvM%#A48`J`%~HC(L6>n@6_!zbxgf+oY9ox~-A z=MY@@J~v?zwTEI$T|&*GOYF3k4aZMHL$m z4-{5u%F=FJ>Kax!k?EN1E#a8Lh6+@=?C@bL(u~;bk{4{#DW|*zoYK>i05JF@TecDG zdSr-2D**=tAL545vGIvuMSXzLWuxuZ1>4uQXFbjb0v4xMtYaE-0N>OIl&jGxTmgMl zOeXLg0ep*5m1|<)QY#waIf2(r0%dJ#ye5ETKzOR@>7^b_x@23{(N0-rgf`pf&(&F> z5Qc5zg%%z-1lq18fMBh-L%I?XDX^o$D}zDXPFrvLMzRhITKA-OfU4lIjoneFAMvy* zm65>ZB^)v-j0BK^kYknJ23k#>3d^o^)MJsO zlqDW(*Kd_8fa-MCB1QGsOOl~Gblu~ASHj@hC@WHBMiIqW-GlZNq}o%JjLOGTl|yP> zD+G`Yk6p5eI-yVv!bRU?!t@xkRucAo0WeSC76?5_Pm!xUwm{y*if}QJqO(dDn+dG* z*#G>^W?TS(<0;Bqam0fszhlpRzAiE}c{D1Vet|Ql5v_Nc_J~F_ZKUD+XuCd5_@KwN z-Z5h)kSNMhL+H5{Z6E-MA}#m|pr%y7MpfJb6{{NyW0naIoDwKNQl<`%WF*-E5?R4f zVazyq6-xreT)C`k8t4f+8a}QGixyZa&Nqz1?PD9?RElp?hAXEQscO)vt#Uj*^d=U? zf53V$Os;!pqyF{6bz>uMrbuFF|dtt zU1}h)$cXDoiZo`vF+GSCt4f*~ZV}_f3n_>}dn^HuM#+keKI3Uv%DsfPv;%w#&XtWe zWBP7sMQm^i9uf6~imH{_D@%%RLXAFebBxAXY1ybP=CsKUZ3Px!R*0C>&opj0i${vx zmQyE7LyOi!3=^~VTyxZx8gVd5Fzt<)R9N+-r{}9gozvY&YA}#@`s{nnkFj2EueXC~ zdkM#rj@z%}^9fO5_rO150M05-fwrn?!H)VP1WOxATs5eHmqJO<8Aw19+f7VX3s<)Q zZ*%Tfu~`cvYN>(()v`q{?sY2XtR06E#O7!T0PRySZyLa&I*L_~PS@dXa~HR&>MY~n zTHJJXtf3Qey|tSe*KGN8VCGaijwRDDMjP4n5rM3>lHCBKl0^xv19i61Lkd+hq z-H>C&fVEoCwOvKXW~Z5T(%wy)cf z#Ka|OjAar0bbG^L1R#((&|)da+lI=q3sqV_p!zM-Lk6gtvPP;i&a# zv(xOJw}GZHvkG>ipTxbkOHDJm=RBPU^EU6;I%3hslL{j%ptDSRp#;;ziOR)7 z)j?~isv4vPZN*C#GHF*fuhsnGP9T;%P-LZb6!>7tS*Sp1Q9>LzDmd(Mt8y|9W(5aC zv4Id1h+8u?F10IH-C7&wnE_O5g4D+OP16B}`9P0V!{Bq5-I2?41s%Jkz#ZF#irR}- zefTl@eq!r%66!H=;AmPQvVHOKRI$D-xL1?xdAc1hyS{#LCvll?`$5bU?by2y zeHVN?B90btHruvRtA|q_ZAOK$PlHReD6>nVT&{otP;m@6=Zt}ycD`&Z0OYDzgzFNq zM>}Y9ylzx&2nFrc)x4B;e6Uv~T>5Bh1AxckK*<4zpw>cNmHK2v{Baa{*Ls(DNHa# zSv#f#L=Sx%q$3h>a0FDq?!Y2Jh2FjWmua`HZ&yccFw92QQQJS&%dUE*^!om8<<^yx zx&Y=cl%O81$X0u%u}9-yZBkKJq$rJ%YM8<#lU^EQXJJ+tV7;kYiz6O0sY4K)rS=X_ zBef8~wZtKrICY#7JK=H?+84=0wm#*>G*Eoz>UOmXOnS=UhFSn2CiTwhlv)s?b%wAQ zM7zTE(*4qxomAJKxYCJz?fdJVyE1DvwQJiWAvTug*rkk7;gOFl4tlATQ)N*@P*A56 zVSYA|iIJfh1tlSYu`My5eh2{ zFn4nw*^^-N$)y2C=bGwNE;SFdxAtYTadMQ^F%eL$twZ9W;dRmJxKBezWHNvfM5nL_ zU5FRo#W)_?U5_2_s%oILsd#5qE(Ty-rPY8AuxKsk)>rn{5Aj^8+1m=#fI}e1A&o^&R-iI+xkphV z#f9!AYjGH-EZTCb5fHAtaoilHEj0-@k;C4GEVS2CO;L#b2R*DSC$a&#Wi|BRGj#R# zsFkS(Bk)@I!5w{u>}d9AC@)N4^jC^qzz z1v^Tza$tGS4!#P@%Y;6tC^dU`796yBoYGDT?C4#}T9C$b=V}*2%>b-QYGFjpNT2HB zMpYsw6FEu(Z5ZHVfviCYbQSF=aK!=7e?9JM+pRZrf=f4A1=C(F?zND!&v%J;LY)y|X)(l}98!M8}i^1x6Nt$XY)dY8;YY(m8u zU2NFgU{B6AobrAfTmK7yTj6s|J_cp#H|NvcuFX7iPZN_ zYw1_hpm;_FOh7djAh{(+pFG&3bueNegk2%(GZ<3eF3>x+ zs17!{-Rrpz(r(zs5aL;ujan2yh5HI~*VOkn+To?p6E#RXN! zuKRqF+S;nAY%6%}p=HPy1n?!)&~9wBkaYLZfo}&~EO73!K$$LpHv(2!is0aZbX-g{ zl&ZlIlptc6HlJ>ltL&9krN=}j!`bUsjFrZ;siR+Hfrw$K_D9ltdb>ZRY$60XohP8b zi=%tHxO6*H2Xbe4!MFK+bKD-t59Gs(o_9g<*wCb^uIqMB<5)W3;4i3qUMVB-xOZ(3 zZABX}Rtu$}Wa0uoNXvB0LTLa82*5RMx&01&i!U=jKV+GY2=M+9DZreJ>5@r?fl<`SRNf%RyE7eA<`BncIvTYnhcQP*6% z=TL9t=OYoS1LDNvteXVz4#46(8TicEy;TX?&4IuP)GoxmAi2wwl0G|%1p_7uiXXE{ zpf;LTj{}eiQ~?E8z#&=W=4r{)Ll!n~xX)mdV~3Do^+G@9?xM;1(Mn@fmO7~r0PjY9 z6|@|O;MwaA%UIb*1w5PtkoMYV6l{oL-W+IkW?!5@vd+hV0&KViP*TZu770+T6cfYS zineW~#kUZuY73-!?M&g5usgOPIQK#cyaKwMsH#wD>(PuBB`uhaYHRtg_`LIDyrv;4 zBB?*cl7qmM+#nl9{nbgB(n4&$uxw63PiDEXv;w>DwcaTrEdF^H3 zkqORirvSeQPPuJ-tW1FHOx8!0D_^+Not-uydvfIB$j*@ncB`Wy0M($BX*#WxXUI7V z(*OXq$nAo?Kb*U!u>9KZ`ZDnrrs23X17wx-kY+tO=tr357{`gN#+NNj#X@c^{h&pu zQWI#YNL{Xiflt6e86=~Jj82_Et|;Jhr3DBNoRDOX9eG67L8IsaNaf`wJ1LLC9SRDa@}WZiFv76GfPPw z@flYG>R9PibpwaR69X)PdkaC$0Fwz+9xy%oQY#BqmWo@ut-Zs0FYG0>ivIk2DEE=| zxNv=zSP{w%{njUBSeYA{8mIFqnlOVfRUgCX^ohZIGp~9wH8T(!=LfH0*m}R-PV49U zJj_5?t}7#jmWGNJ8h}aR0JPT+02bs8fL*l)&a7M-4j$g>JWr*eEqU+VKY>Rn_Tfe zj8!J3g<4A>5;8mlV2>7{j_eB+A*G=;>i8NYmx00Hpww`UngS>{djaJ<01GDwk+IOC z|N5unraNW3*Yl@S?Y=^Mt4=!6Nl&ViScwZ4j8?ZcWOyiQh_4TGS}*?MajSV__7uLO z=%pGFs`8-FU;}L^CPAD9=j;?vVUBl%K|YT}_z=%6 zvG7;8%f*qjZhI{dC?^}9ajk`sdMz2^6=kIJB%@a#@dM%;Z7o)!mF%~%f`(_2AX`$X zrZ~)8)Hx9#N(xU=O-RWXBxC&4*^57g)x_u)?z6?URaV&Z{$Q)R{YCx@eKwQ@E?lh| zU667-o4Jj9R&#mv)41?Lo~$;WnM9(AEg*!p)ocAEbVu>Xir1(U1~|$I>k-(<)f2#$ zfC~7%jOnHe9F*F{5RyB~z5r9f?oG8z@r<1b@)j^<1XoK$iiYtyA1lBp4euglo$~-- zI>90o-Ti)GATCVb^5ZQ(a%5-*mP0Y{>qn((i(xigzvsbg)kHa~8MTL&s`ijO^5T9Yae~+ylNOsNUy&C886~j`p6IX`98&GqD;Cp z@mQOFHV@wsGi+jK^<>E*}%Z966aHXMRZsvn}houEf zrkm45q_OBnRyOL7Z>qdz`82j4d}Ehv zoFH)tESKex4|KlvLJ3}Xd-1tF-dFo%cW>YF#*QB!F&j?L%(iWl~>@Bcm zChTBJ^?k>q^L4Cj07O8$zb7gPxt|is2wX#pL6!Qc*90jNQ#_Wj(=n4x(?_lh+;^uk zYjXD|_Z;7?EAG_xMB1!yLthAT`)gfwjqhMPLgj3~28a?qB*t+JpLGNreK6TwdENTuDEP;$NPGg<+5T5A^>IOs@OZvl%M7U2uI z@Iv$UpUkei%+<^@?)ddD1E^BQq9#FUr=Q_(b!LMZ@Mnl4fFNPpu|(nllX`>FzvloyJDM+U1GsqYHFSNHP2 zUS6O6dwZXT**t^Ur4g{4qbt2P)97}*w*Lp=FZx1hZkOOuH*rJ;K?@ZHp{D7N5C8|Z zxCxJRrBiIqVYIxlkoAHSX(59R1Oa4^v9gpoJw^x3E)^=%kyTxYYGVwvmmfp@+HzYb zUc^WHXKM8!IDH#oeQKA&+J}9w|NaDCh@pWyy_w(pUubtV@BFEi`Qk68`O|;&n5X>k zr+<7~oTVQ)@BZmP1!R~G7}7B~<6S6|RbOmHU0{&)D&hl3OO185*Q!I%YqT)QO>Au5 z0lvXrvl~v)liOxstn3rU4lv`I2p-iY0kEMjT_G4T*krfbaFH~Ty*od-`)^Q9PO2{7 z>AAlF&-p#Y>F0-9=_-nTnUkM|%C|FkApEB@_}Rno@w0I@*?fvd2d6c1-wAc3GSuBd zLWNgES_b~;!S^{OMiU7ZqzQm;$T{Z#0~UG9iMUj|D|UqN>p=i{B3GLul@p>k;n)f> zX6?9l9qQ9)XgA)29K5zJhooc+fWz3LwAVR$Yz$LJuK6xSgr?YKWKOl&UaR;rmSQ5L z8XJ{0f=J6!49u-N4wE%!myKNIc-+ zp#Tpxwvc-^EaJDidaAdA;0%b1^1GvCsGf7g1*<4m#cNDFa6I`D!cts$90hbkU4C+J}#UMUVIOq+)KmO%^bN*XU3Dx7))n{CFOF|57tYl!H5kJ0}`f1pyI2Qh_)T&FJp&h%Qy9Dm7@e zPhSxNR$y8Kq4bQWeVdLFhp4kA1zNDZmNfRDtD7emZ^;<8;jS4vlC{$q`;6D;*kGKe zXKmmBNu(nslxorzReo^iKlazS|4v_#?FkhkE|}Q6x=Pvhd;XH=%hm@5^MkePOU>K< zgwy-A^QOH2XNL8uJxqSMS-?qPXX0~v6pxsPawd$|HXqk|>UF<-m)iU~GaJov)#0k6 zFga9gZ;?om6Y?dG_e6W$2HtF+66%(lz6W^K#?2!u^CZqND%+ z=Xn!VQuRScX%)I5!8!3|U4d)0XN49w>18YK3Yj(l8Mww%#wrP;ZfrN<#89?L;HV2K zv+f5s#IhyUt@PIjFuG=4u3=%KA%(8`@VoMsVY%>0BFjV4j#s_lf(!;n%Q#Al5JGnF zWrp)B=3S{r!U$q53rnl3p|53#06iU(QE+MFBg)Q51>u?-mW_+i?vyp$dTp@f=Gudj zZHivNrAIA9yTDoNQn_Ot0voXy3D+;m#^Iq`1Tiqs?%jUFBX2kf^NW539>WVMyfFF` z|LwTzr}<`KoVGmXXM6a{VOq+EfNGn0^-J{-S&OBpl;#*r+{9U@Dp>G=y_S%(X?hp1 zVyHk#X0k(#3J52=%>q}Zk_A!4b7O2Ep(mx1I)vJKU~kh^*qMZ}kX?A5{bb>Ajx$F+8jnV&HcM&f-G$@ym4f`qwwfl;`vYbQ)qJ@)8MHBcQ96 zpmJ>xXa&(JV-;Yjr3#Z!XR5_bIE|ko_ckh93seMXhD|mmypD^Li#e3aShQM$byzq7 zlt)}O*7O0+)v-ul$Q1@(j^}$8IvV3x;!Fbg3)233Dc(^85mE5YZO~qcV16m;i zs3RB0+!X<}%Ba`JKvaaOkTMxpISUWMRs$jq3>{vZpFgn7!w&84LnOPpgkknn? z*X!kG{$BG!4=>~?AupW8OrS?Fj5|_Q7qL*jyTzpZ(U+U23Jn_#iZu3~7z9Yec=n-bsvJw2HM zrKYz5D+5*tTB`CIa}oX^*7Puy@C4seSWaFd$$<{|jJ&f)f={3*YV^|mIV z7=nX*5bD|m)VBnt)L2?Z6|Pj~+Lv~j4Rt?H2PrU1cDBO*ju6W@0!aMml1 zNhyjDJWNCFTIXV8Hv|=dNJog4G@LL$<#zT-((iIHvITYpYaxXRL|=y(4I3?CM#TVF zP)(|KVo{yT3c_*0XrMA3q1!euN%#8Sz0iY&yXUD!)WnoMv{Yd)1V~)NHi{apQ{hs= zu~%y?ZSX8CQ_4ub?$OE+FmsQ|1lSPN?fD&wU{p)H2_GS0X9=gan}EiIBN>EH2dK)j zr>7PC0NbFvC$_zD)@xi>esYQyR(ZP;}yR7 z7;FF}s3t%YRrv9wRx^lo9jHU`o5hIy2 zp0>B>uq92_C#4v%&6tIqc1{ot=h7*yEhJK=jF%*cN>4Jvyt61#BS^YXZJYgYHRo(T zVj0#n(1mYt@%f=Aao_n2$!f;US%_<{>7+Wunol*38KNtrGj=BJxc*z=yktUi&C{7M zo6*r#hYK^^9Vj;dp8+W1$!rfx<2QV)C0tp69YT(BqJjiz-qJGr6(ztSg*D2Zg45=# zS!M=_NjHchvuP{@po-Wnr3*T+a{=4fyZ1t|;s#!NH1W!BC=MS0eDJ~EyWYX5vAdlU zE9esHwvnh&tQe8a4;*%9aK#Hjc+-$?63WdYfBA@x9^V@?SKU22Ql_Nf2y1>V0bS|( zcXkqYZ&~{aPwjJ>DctZO6l=cM#I|Bkn`0 z$F7%MHHZ;b88Lb7ys6_N-i)7K^Ok-7@U5Npu0|VVuSsW2D0|SRq?=T^%6S`XAX;+@ z>oC%yzMxM5aL~@ea4F|T+7{F>~)_vo`d%QY?UeTIl*iHXQDHHHz$38aS4m+*iGMMl;KzyqK%GR&TU z5U3jj9t;K$_{Qj0J_62$%A5=l%Mj=d1TY%_%%stJ({du~@_TNZu={cIe#fPM>AvD0 zanJuWFU0Y}D-7&6@F4EU*TMS2Q~UXXJH+U!WjWhQsFbZg-XQbqmK3O}V4V+Odu<>> zHb6C>x|}5Y3&1AWW-Ubx)Q-fwb__&@IE9v}c(ky2&_>W>4y{2aOh#5ZMPqfEG`m$k z>R)upnUekYf4M8|aAoXAXYg)L`55?zX7C+&%p>kmod`3-c=T0IDm0VNU+fH7SGNZj`3!5ahnvRh0$VZO~_ zHk}W!S=)MT+(4ieKhe>4h1a41D>ChLNnGmi+HE61r_&U8wRy_1VAQd>49m8_sY#Lws>4RKJR73!59X763o8xT3lE?KS6m|qTZ4(Nh zVYo(5%XZY=_kx8~uFbtJ%gzqtknNnU;Sm%w8mZ*g+Rlb(Fj4QR1tBI~=S_raXwqrF zB8|W(k+H0>q;#xw#R)4P`6mAI?W zJ1m6poGHfuEIKE2jl16UuKO}4mb+e&Wj^CbJ!U}PqGEN!1-C7}VccNx8+bONpM0A{ zsm!tiqNJhFX@iGHOHqRWYZEm*@GLAIjKK^dXqsLWJ&K447aH;F62xncw)n-T^n@3C zUhfM(Aiw_mhrOYfq8@V^FGTUeE4U*&uD_by6soYHliIaaKWm*^r5~(QnK*o1IxH>5 z9!jTV(GiUe_mc04aetknG~R(vtaR+UWR-iP9$i}*WxJXX4W&>~L&`!Enw^`?Y$ACn zX6MDnrdk=dFzFuim=Eq<)G2tvV_2VOffq4-jD@5s#;pT3#}$DcNB}g zHjt~=UZhiCD&v9nv5u=b7v+j>?a48@D4?65d0_pOn=021xQ=J4y#UHVkL4QGx&eHT zj>%)x14RlmjYaPYwacZY&eA3pXFxN=F@mLBwNSD!CgD9AkIEQzn|m>{9x(>;qhjf?uWnVhkQXk;e}QZ)Pc*ZKXA3I{}!SH=pQjv zTWt*0rfqpVSKXq3qG=%Kyp59@;QQh-#Co!_y4w=2&8K+)T6$JTwd;$nPI_Tc6!H=T zWn5}G$qzB5EebUl&nRGmj&u$-nqb+a3Qr-b>M9QrMS7@6SslxWzyK(ZML!5M$rUfb ze!`P%!6wLDGGOPvoPQ`nZQ5`ZOkovSNI)u<5;`h76tpWhs%4kM1GRU~FCyM)9z1SR zIZv(P9gCzcrb68ixm@D~3)GR|)Fr~=YPP78Z0g!HfqH#>!PHD?tWh|OtQ9o57Mw-f zN!+BdVdfHWlt|FE+ku1g*t_BJ<`y2o9(uu5*?EO9WMikH;EG$y#k}*mM$Tv$joP## zlcKaug)PGj=K&zVcS-)gEwOvmz7cB|uirp=YEf2u0d-k-egF9@b+t+-Se& z+cEX9Vcu;(LD$hOrf6Xb&N?OlkpO})7J6Dod1!Bj(8w87!6c}LhOZz(YAeQmN@H!H zTt#by20~6tZ-O+06_$KHZu}BO?QvF1sZmk+`UH9v5_lAQHB5rSR1uL?y&Odbk`TmV zH^NN~w9}ouXT15Ar{f9X_kl2w2b{KfpVwa362KLT%6O%XXQ-->7(plt>I$1VnM4Rt z#`#hS+OKFskCwVZ3+IF8Wlfe(CD34{KwCiUQq5xsbzk0+>#Nr$@~*McL2DG2N0mgG zYCNh&0U!Xt;zjK5&q|@8urhFO_#ORCR~>o_YM7odUQY~L7@sRB?~Qf}MWdr(L=@%3 zjhzLhz(^7_FDC+y8g*9inUEDIh>Dilo3z#uoJCU&GS|x!!s0Z8K38AW#|1>w9ubOU za4+m({HiYXzDI1C3UHINRKMZ|nb9tFHRQHVr`Y^5PdF!20O=yg3Zxd6q7*n83Y0vw3^DYS5 z>91No<#pk$m{Rh2tPK!+(N`xKGOmgtCe@OfjjhrVDouDnC>v;do<%{6k$R*CXM1W? ztCJBqjdj-J>RxDBAp~9Z8py#nj5SxpFrk8~H90rxU9La|qEN!a_Qn`8Nv?)E^3G})r}3FkQeurH_4cUOuko%1 z8mVb|UVUD>MTya3K}HEo30be@Zn~7)luCeOS=_S{#Z5b3DEKjvp(<*rwU#3$vwQeD zQ-ZaC%P|_Wg;|V93ZS;-OgZs+Ov9k20YCwDX;P~6se$uWE7y{f<)u!MF$AT^1dlSZ zMQ{^*=vO%KsKfSbyFmh&nr?!tXsAG?S4Wa2fO6XQanMT!izUpUqQSLiRL92f{{As< z-o*fBz*U6e^m+|Pp1ID}YH48_y2?^$xSXw7Rd=c}HjO+?-Hv=dqMwx@WZqt6y)_Q& zs8u{=wxTW%j$qr~1m~$4Q=+~O;#!K}Nl=GTX0sucZHqfiMZ+lDQi&82L}Ge}7%DXc zQO|}p+y0Hy6b<=$NGx9DL^5>FX>!XEpbMt5~ z$a~~9a?GTv$U`?QpbY>h(7Y)YQ)BA<*z3l&WaQ8`m9P3u?W~hlvYJ)wWaJ%Q>ws?- zRTXW0a7y(}Lp5Pbz9dVmaGrYn=CZ+DkfL^y_?o(f#T;0~2z%`1(Ro&a0o)^*iCR)f zPEjzujv;Mb1IlYy6Fb{m;L2Kaho>%;%Bu5#Co4u0yw-WCt2Q)@aj5kHTRI zK)W(3Ui+25&w1!%RV(cP(uqjG9$fT#%JM0D%=xIM7;M7a7 zFeUiPrxc(F&<0CYx>jmkttGaR>q{)q>`Yyic2l=SWZBVhzQ9z@*rre@&7|kt_cYcn zL+6O?F9s$PIJ?NT1-mX}TfL}n8*YNk*gBrl{EvezlwCpg(Xtn*9WWK2yH7ymr4ThV zPxTs$s?0Ff=i&U2ulgQ3ZjjdbP}soK2T(7;dO}&_+%{t>b>vu@Cb#`*xUuw-Wp$$P znH~)mP?5j6iz1QWA?+&U2*)Ci+f9OiTYEtpb+#%7Tb20xAAk5`&xfvaddOuupOyRd zG4!9@HZ?vX^C%XaD%-W&%-(B!DZp@nM{5-OYk6&pu8|Zl2Iq}dMgv`Q)VD>b0;Ilau)wAK>6Z;n`Y3u#(Nsfmmj9fx?5Rb+1CdUo)Vl%3GpX|PmZ(J~dE%b|fB zYP#&p+9?R$r-F5PsT*kDI!alr)YAw>X2ph5^MEUrF@UASDSZj*d<_;V83hy+Pc2AX zljT0O>hP{o3mP0%ks9qAJ!`>Hbd2!=g^3SI1!dzQXze_D^DtV{O<*9(L#|Lci7NW* zX+@1A$}(|Au^b`iETI_F3eH&XbNMhSD{t{CWED2}CErUa%8BzpkbdU+)pVM=Lf!@h zSY#E#M4Z>s238}dm9YxNzF~xlFdIoGbR;V*64RH9$JYCkoJ*EGGdv|QVzGFUIvl~R z4?gq}3{USTtry?l^X9Ezu6)|%cvt(trj`{+vk`1D>$ev9TibV)TRi0)$3^!wWgBHZ zku%zrqnrnzYsGwowzSgW z9EQkJSuUD7tvsyuxrMe2YwhNIy)Wn?KaBbRD{jrD>>0W9kobtp&C@PA+?*FSBGq+r zE3?&`@d=!~$S$*5LJ;Ifw)f8M(%x5FFsDL8Gt%E9zfN++lR@hL?!_Kok=PJJHANucinctX2jfm%uh zi^tjEv#{v6{O9|usX3`PC&TSuM z+&%Rb?%wPSvr4wjOK0ae^OxT(1Qbb&NX4F!TA^j3mH`t>nTdl!Wfhs$T95jARMDqx z+(eEfi-pu6utlXlL#ASNTuzm6I4I87V%4z{rZ_AJ;Dc`<n5eb1= z9D8gWK_sGbwK084w9XGz1mJ;*30i;^F$y|oCQhg| zGEm%zLS&UUIjupIEftvZ=DroZd5y$GxmwPwvP%GGaSJT!s|mgY0O@nr)3@|IS=uf6 z9U%sZZHNqaO4{VPM;(l!Ab~Dd8#d>3*&7YGx<7JWf`_2_cF&U`=-Mc--Rozr_Nf6* zD{D)@gHd?f*t?Zr6OG*(YxGn~(v4|zydL#Hy{T{gw3*vVRWM z0Kty|yrSD*AH(N*?sy7;lLtfFu;50Tb(nZYYrLs%FI*oLnEvkn~_L zfG4Pg`f+~?PhNe1-~hTy)r<<-z4-LTQvAW5{n=lloGY5T$ywuczRprn0Zvr|2EgG64gxrtRQsB_qyCAfEoP=#B=oml3tF;=9;YjtGYHnPBsR?D06+&&x zDzY-9jq);LgDOPNBj%8_Gk_GD!HqZX;zJL-LGSnOz&IgGPfX-fa7Zy48~Qyg>%kPd z-k9Wot2ibYr*qE3=4)OL>!wo#e5ieyx-=BHn!Wmlv9msCX{D(w4(m$|W3*5zwbD9K zgeh!O!5Aa0R98+MvDNhzqv2+hn{G5lN0-@%D#qM16&NI}yVqS7Ib8Dey?O|WWb=#+aoX9AgD?A#pZq}$|`;~6q z?@dFQ5527|A4k##(3Rix?XTBMLHvM!E1wP=-ew6hZ0uLJ{#>IGAX*ufHKUY!p<`4N z36R%b8Qp*_1+X}jx(JjF*5zcEjV5(Z#ZI-V@j$QNNLdm&Y}PI%R8hDqQ$ywOs|}|8 zGMwz3t;96P4aqTbOqk$}c_%phV}uK?2<0-+t^m2ZTM+6d(&Q0U;1+VkH~Q?6t}o+O z#*Z+FasZ4~e$4051agicwQOLupv)`_ot2uYN+_Ag1`~>)emV|Nk}LS&8$@a!TpPAg zO6Ppx_K2e1dZeO>;ng1&#F3FGT^5)s zB2;B5p;$KTrUBJp62_o>Sp&*CRaG9GMS_Q^uVaJ*n*i%+0x8AnWMml9HohmIwWEKx zMDUB58;f%{f@#kpqDKCVA`rRtYLbg2(x*5Q#0Q{(MC%B2^-YI=(E}ej93hj=(#}Lz ziq9$SR&Jb(+~H)3LamG`Nua8oHnDcrRE@1R$E@?2&z&W>MOJO_XoLvkvX#)*l@?9d z7SIjrrGdgbWpT-t8mh^N73ZyMt``~ZgdTU8wLye*Q)FfjmQ3w1AAUKQSEGB(YHgjv zz~o?uIy15pg0?0M*dSFd^r>0dm)O8DdMV8Ho?tFI?SVS8E_NeOFm2dAT_`UX#_G|X;Hb)*GjH*MX@oA zUb_ZxfQ@X`P{LW;P~N+2j15}l>MT&UrFRxWz*|CPwFH^qRtNbAi-jyBlZco>FLA&` zp<8;?mWZ;w!1@Ulc~F5(!ZheK#X?}*ZLb({`1v_>xrH-3L?^7tOvwZlNZ(yjTEe18 zf^>*eYBE|if_8-|RgEr-RsSv<&jy?c_`YaTR%kcogH&##r)O1uc)_a-Q zfus!wqN>pv;qf=6!1Coc8N0z~Q1JAbCp%hk;EkBzftgUyOzQtV&aWwBq-8Qo-1 zWnC^*dfOGhg1>(ge>&I*8Wb+#yi0#CF8J#Bt*4~u`nx8|QNvl};g$9-Z|eYhq3^O4 zt$Q9wCA=-sy4MOeG^wkACi8ivSf=z;tT45L3!$&hSCbOupb}xYwpwUW?q`Y)sYex{ z_B~Q(jZ^#)PE8ESCSJrIZ}WZ?Nr8ecddkZ?x%uE+zcXRo|8M-N83K4zx?{AZ}?}9wbqi%&V-mChBoKVLEZ@( zW3+$HfD7&kRTwl);)Y+AWkdCM#O zd=Insb>a)N*GB7a#nPa}#*HXhk^h}8KciXR!weHk+IKh3Bt)LlX)M+v%1Nu(kK<&m~~_a#s%KM<&V($htT(s z*mjZSYV$h%agJYaz5tYu3R<`Dkmt|lhhLn3KNnX5nSl)IkNAxK&AjT>f3<6B(3A+w z`prxF%OX5)Tk@00j~EASw1aafBuAMjLQp}Dn;;O7Ac598@EIumw)CC=L4pu^WEO1> z%rVwe)%K+iyxmJkRHIS4g}Lw2P{E+*dLyz`pSjoNm0ucXKhAi(wqqto8T2&l!a(=1 z2?QS`I0>8ZncVZ))tB|buUxq2`^c6?Og$y`I>jC?aXU61GfTRpskhOqkoWmI@)mVx zavshK79z=cD$RqIEs|2Ht2IQMhb9!2RXjE;>q1lXuuS@XNl>v<0(~S*X+lN$vAq?Y z)>xKafFq$$QK5aSBkM($f+X^g9@Htgh3^!fa9S4UnJ_%W?c)aoj{^XLc{ScV%K_jg z1>nN-H=lcTzH%J5grz{_jto-0O!C#0wI1VDAIbofw#K=lQea8?E=XJBYbk?mrZPrL z6>2Mu3aA%9+IH5#m@&91?HJd0MW!dJxiX_A`C$N&_RIV;`a(f~HL9XSgbF)66`O;( zdP57=?63O#@q7%RYYu?m5W&3xY?2@5D^K_-wsDfI61|y=X#I`2;|b6sumBwLa5CZJ zcnDsUa^hLFO0OkURV}DjQLobpcy&3U%po8FDqIdzS#Q0v76ehX-&vzTW!0CJ`Bc2{ zdxNS}-n|fwZKxgOy96&Bz-n}l10dK*a06iAGk);rt-PYY{G}i5{sp(CAjOyniSX;u z^5&3hSQOwbNe)(nP}MMtytaU^dTE^NR<2;7Hj{R3 zeRR)5XFRN~aGgN3iOdIJG_|0H#w`QTnca4w>MK0h-i-b2CV(rfKdL)InFG!rls%LF z2HN8`(Z}`Drffmj$8)yqMT!Va(>yUUR31Z&rf$OJtt+Bj_cB$r+sKBs>SRiuL1{;} z$c*I2);0NfP9bU&`^$hcJ<g2&a62uXVZUhNw zP3|H*1|M)wM&=nXh@K6PI<4_9O)x$0<3r-j!~E1s$N8__2QGU^T=tOM_wd>FnSNd; z2P`T#KdVU@-j4RNENH+24yu~7rVrY**bOVz1zHzYP^WnyFI7v%)OhDq)J9hDb?b6$ za9EZQD5l=EfZiaBQ0P1hZFtG*7Hg(UN#Vt)p&$&o5z zaIsR#kcU#~`_@R|08~^}?JH>U&AO$9;Gy!!AyJ3c;scagvaOhb8%C{vuI0zRzzILQ z|2A9TqzYiqdH>mDe5{%-x5tp7=lK!1HuQn+V1Hlx<}n67l@GmJ?#t=ibOX_W)>uok zMiO7LNsScnDsj`!13*5fL`RmEc7(S=6)GvKfHjhJx=kdZR@zn+&xpM0d9bLPv_iGm z=sQmf$w2Oy8@wPub;0d&dPYp`-!Q*@l zfhvkypf>auhx__a9wm#LqN&G2;+;NA$`4|HOc;rKJU|%<9 zM@!rar^1=IPgGT-R8(-o-T`9(>M;t=cnf5LFb&>T?6pQq`nUj~qT;qC;99W+EY+lk zv!znvTj{k?6!mTdj8c_JM4PQE^mrhGAG|XcX$#TFOI!osQw8Xf?>-<4A~btwL~#J!?S;V;M@eV9GgUyGLG~Ek$_+`B zXePPDYpja<6m-)z;#@*#u_fD8b>&z>5SCy~v%Y3tSe;B8Z!H+4faE2;?CR~Ta>Hhv z9Pk@_$5pt)35Uif0WwKzrzB)cDXT9P4c+bwXN^wD94hlvM)1K1F~{J#$WIsgYHrLl zitq|3`*PJoKpMNcnd{I71yMv5{HOpj(V`~gS^{XHf|QxGG#(oycR~9oXE9=v<+_n1 z<l`=R7rh$(!QQFqt#S+-3vb{LT*R6{^UJNZ|P;rMft!*RmOsLRq$LRxw;P zu2%ur@m{EDYmfvFMp_9V)F^^_@`eg^N=}P30ne(YRkqCXK)@?hg7q}5chR~)DwRq( zHLW5Qm*jwBN6(QS^(Dzf;oWr{6I78Yphoz=G{F*G{p`?GSUyG$i`eA|S=SFP7(Yf9 zZ>J8#m8Gb9Rdqndv81iDM~`2kLI@y;Y-s>>l4~?jEFDmE()ujuwQ8%Xe9=rB#lpmT zk5W`9Fe_`dH1emKAzE4%or({A+ivHYe8w!ks(5_`Ibrz?Mv)X;v)Zd`lUf?=IFQI1 zc2ufhYG4GxyKKz5lSIHytUAHvWSYnJp$h_ORiWK2n{j16CJSf}o1UXN5#W;DnD*ezZ{bkW%jY%W5| zEOgA5WI1Jv$&uiUwW>A-4F?;!zLYl>7ArueGKSFv2Ynn4;}NC-X`S`Kv(e%_76~oZ zv0*_0HBsQMQ%*T5VivdY6FiYDU-re{aQW6)Nsm$xph0{xT24|Ecdu3romu70?+|*P z4^VC{kkrVNBoQgKOzrw6e?B|fZ$Wq@)WGjj%Uj}>W(Z0~2%w=BGD=5q2ehXaoF!2C zfX6z;L-3i@ff7*_3fH#eVG0(4R8=*U3Vh;AzP>Ii96MUYVEaaARKmb**m-n*Od$cO z@TE~IU>%Prw8OYX_>A0XLp(1f%8h%oz zZt)UJAGjSHoy?bN4d3|reRQwz>0SBbc<@Qv@&UgwF^Iz1B7nwLXVDZY+mDIurkryA zX}iG_?;k(hc^XHiRNHWo>CoL=i?5oIB?0hU?{HkJrCy;Znlc&Vhsuo3Gli$YLg+hT z_Ql3KVXMkL*0<`lrQrUeyI#QO+K6q9boaX)Hx29SL8`6$o37^$r(DO*4NPboA2>D` zn3S1n&mE;pnL?C!?oMKMTccnM&f82t>kf3IlmZ*>Tv}2-YG=7;79Q+S%)q`NGG8U; z8CU?lyIFlcC<~td;Exv^Pfupi*B3c^+fX%II@?%>KhfVtW3|!!*R;( zHa0d+8^r{tl!_;nan%v=i2(l=yV(i3u z@}!ZF3DR2Vv8>+sTH80+_ZVAOotG-=cz3jY5htuE-F-=tkkd00<@~Sa^jG;*eJxW) zP^)Y)lCj4u^9^`(mdyI5eEz47f4zUXzITl$OG-;f zku}8qZM#3$!cD8kl)y+i4{$^RqM<}uDb%;S!jVftX_?^qw3(k~f)&l2^s^qWA0)t3 z`mOWpq1{$Inac$yghgpXR4^k(2p14$M-fCaL4kdbV=7M#Y#D7I!L|Q>;JW^}XX5a3 zsJFg>`+vcI(CN#8E`4mG=^E6Z^0ovBvTNbAK9McP>;dPOvWC%;kE}iCtz7Bm;$+2# zX#1ib_m76XHNtgV{G0U({+2o?J+kdYY(M>-?W_fz(0tY5-Upbyj@x`A-tJ$o&T)ON zLA@dY5n*8*SbyMe`lJ2(c-+s5UrrlDu6w!{#(YN`cAnwwe|_ENd+Xbyoq;6k4gU+A z@;Y^Qh_m*r+OsPouvyxXT$~e@W4wg7zbvOYTCn$T>WO-^E{5-kY4JE|6=U@Q3Sie0eb`Z=5ife1zom9Phj@nj=iTBn@CN^ip7(0g@CALx)=g9u z&vnaJsx$CD;`_|I9dC`7$hJ(W%D7$T*^deT|4ChC_?Y(T^u;a!LF;Y+5WI`v_t=Dw zd0ZRc&_ljzpL3Fe2qyIZ{9C?EG&hH%T%=2ir}P#J^i62xQU-D9MjIkw$y*IAc`RgY zu#w?3>sgz5WQxsbJz1MI6hbCGi>%3_53Ro;&mz=d8mmrWp;>6%VaRnZBks~N1v%?$21IsJCicTiK=9j-;rMwaICLBa zx*Os%p6fI$!Lc7au*M}pjF{oL_6$oCM@!I2P(_r8Eyicu(WsC0eGy7s^Q(><=?Ik( zjE8A5=irgS4A3glvjKy=H`3shKkUhmj-yE`?Qu=2(Kfpl$gAEzRsB890VZ*nZeqvv zB1#<`EP7A-$P8X3BfzGfymJ?G&4V zrOD1&X?dL>LY zMSC&0AqW;7UOKub{SmC9!Po9O&jf0$l-H;>c5Na}u*&#It;scFRUy+6o-DR5{{opx zP)l#s*;q}=h+A|*u!p}8mx6jln1F#U*GUwPRfwsfQt(b;U9onkT4H4eIo5kAP+*Cy z5{cn<8e41)kE>^Ub8!5>qB0nsgFt({9r&c<;-sO!noz5f4%rMjln+M}Wx$rc7s-3- zGZicCTmcIG491;&%$I_Z;NYk8&hHHjpxaHO0N_x3$TPEZ<6Y!Uu35VsZn%u23HyF4c+nK12{jx?%G4PHOLH}aZKd{r8tK1e4Vro%Sb3&Vm!XmgfH5M~@eo?$vE!ty!S!YqC9c5##rAl1vH9}5gF>;|y z-Nd$uszAWSBw?y(jmjnDTC%ltyT`L+Uy$mSq=uoqHWxllX-1)VABl*l* z6e?$o(q4SE!}WusY8T6ioL8Peqm|w$qawRTWRnDwa>=N@HMb3KMfyZOfdVAEesb0_ zGtomc2WCPJpzB`~>GPyjsUk+(>$(YC zfQs<&3vpOLxi%8DSG6y6ahahX|5R5Z|5o=E|4HEWB9<=}H)Ev^WO z0d&JQ!BQN0=An~KdkQxZ14p7;dVy0a;aY)Xj69NnLY$l@ZAv*^ols((a44&;oUkP+ zjE4gP@V*Sxq1@Ha~h^y`%SvaytSkJ5(Xhb~*r?A!T3genOO-X-MsAe#gT>~u$F)~#ox9C`2-dSMn|KYf zCW}e0UaguHnMx=0=!q*;>$dh#3;KB{-Bc3ntRoS2u%|(S4f^HOc ziUdtPzrz4l9-Z$V7~cnPp6DJR1t<_5>#+R!*CTcoDnd_lRsV*w_)5BwuP@DCmFY04 ze!DoCMJIX~!=U9X|5ubdT-`)DE?rlQ5&Y-a`;s5VtHF>D7nIQRC#iZCZ0rI#q11vrmUf*KMRghi-U&^<~3 zmr&w*#nKvA=*?4<9zpo}WMq@Z83yLt{lGrk0b>RfsI;8QXZqolR=&2D-PW>@l}Fw zaEP7v@FWq1QK~B?KyHJ=hEoda6iEXjNBFQdyZS)kLqOCYGNzn_Q}B3vVBYmo8ib#l znab2@y%&v0jqM^k_?}F|(5#Zf;e}1&#C0xNH9T~sPG%as5@MxsX>!ssR7426vC9Fx zf*CCe+s6~2imB;HDnLk&P76>7QnxQw-z_cT8;oxsY23#wnA?{LMIPG&F1z*!MF=Fw zY-;vItedDT4jjlfeY;qV&NBmBm0fDDI$}T7?oR)eqdFKAM(WRiMY(D-I!0$kPtsDd zsiEvquo_Ko5^t*!1*j^j`!Ln3Vai{{&Z4$vc`K|n|A1w`=@Z`hEF-oalSvRU5 zMmdlD?Dl*JxBmV*u<_i9$`t&1SZ~^^8$^^U0g`6T5U=gcb(1IcA|}gky2KS*w|$7S z4z-@e(mQ|7Z^fRw6-lvhY3}@AhB+^W7~#p3nL}oT2HVTg5A77i17Z=a`{1i4P7xS5 zICZx4@Ll~So!k2HDP^AF`>+%J5j-N~;oZU6AsV8BL%$yT?x>a=S*xwb@%6e=Ya}tL zZtM;02~92G@vdX15Otlo=r&iwJG%@Ijz{yPB;H8#dpF6;S#eNyD5Hal^Sf2|xIVFA z*!lMRdE2+W?i~^2Lz9l{deJFkn^iD5tQ&23ggPMWrCKGmeQIp%ugxTXVmO*h; ze63T2#OMu1lmE6NDUf6a0YP+23n#ckog0z{AxN6Ysb9|JmL_LQ+7-eI*(BP;mRF^v zku{s~B#&x+R@l{bt6dGI+i|P2&T*vZ!Z=x$H#%KTy>-n;<|8#K`rn3`!XSn6+f9ng zznwZCv`aIhq8#JUfm*JtO(7}8#;6)+##Ov zrBSzPG*TNAlTo13jR6b5EMTh+GYigd3Mr$cC=oGADvZ)Icx4^lU*)9q61)FAuKnJ) zgL=v1ujP$+BR>b9b{r8UnvU?BdNvKCvC+Hg@clX)?D+_u?r&8JdXh;wA%kpK4M#)k zE>@zcOz8FeLOj`9^iPQ<_(Ef_XXsgKY^JJS=dAAVc0A*MmdQ#z?$i5IUF!GZ_cE9i z+AFqfPGrMhb7E6$17#**W(-$ASjMMjpm=S9Z`cdbFzaY5uk-%!a z`Jt_#6Sy81&lq%mO6Wy;kQRZeT!NNrFLL#Yc@f9PUsd*DT%?|9T;Bsz%BOf`hIZTm-ye}DSvUC zy~yMUwr_}wpZx)De}x%W(lzgjt!Mc&*z;1PY+J+1#lIJS#OzwnZrdA#f+rFuJ$Bqv z+OT-)hI8(SKOuPH>^96D0Y#Pf9nC*9QR`8@q>4n{&7Te||cjxoru^5xxr)&Ofjl)vd+-0B-aZ461k zA>oey82+lB;2O@n7%!d>y+jp*dB?5$D9WV9yWRC(-2Nv@u)|;%=l@pRdZ;$_{;Fer zDsAysr79P$w>kCC=Ap^3q3V=^Z zMtYo8VMEXs{(9MY?>1qKHizM*i`XD*BcNge?r-~fC<=-Qdld#3N1>xHzURDt5D^!~ z7g5_1#wt-%1ftFM+#Fa20DQ4|Ug4Y`VuiaG*=2VxA?ht`c0QSKgF_!!Be zNezL}m7Xgu+dui`*1qVw?(GbSPxmaM8!^PN-qTqQ83ziN%N!2HaAmlm_a3Hzw0)>4onNC)rl&8lisk`2Zwg zB-#o?l-26!_=-`Pf(SzO^i1#sMzNuLi)uV0hRP~dRTxErCAnjznp3HiXJExUlgsv5 z^ChD8TNR(w?g?TIimP67<>JdS-=CWbmxhn zL{UbnwrDeHB?$Za89(yk&V;RGRPZ$^HHxk6%`R10dDWH+T0v&QGux5P3AWnk9Pd{) z-upYe9wNYT$bmIe1mtXFdk}q@VJty9{Hl* ze+frT!z?oWqDta)ASzU&BQoM{hptzZ{RS=zTMAly2(l zLNRjlcd2mJXv&LhyK!k(38NAT!?eV!Ru#IwTg*38rZ3Ua`%n4i0dp)bff)f+6r z_6R|<1iJV69D*E@9v*-dU_F`Qc+$V#><~p;QW4WE;2zu zrk%>Lbf}bh!hrSny0q?U(_t3!uHiFDU`}D_j2%E&+LyG*Uf?|pjM1S%s^3)c9R_d*XZ2m_QPh4YliC`lvIUPC|$3B4v&@Yfj> ztFp;s?%IVs|Hpc|+n=k>@A6l=>w?FJ%E_GZjs9)!cIRYEF+oNq`X)5$L=7S#OH>E0 z&R%0~&oH9D2+S{(PTMt|HW!a@ZFZy!ycRR|f9%|KM;XZMzv`JspG(7MwOP9Qt4gGhPA(232?Z^ti^~Zq2;Pc>-!Rl^f zw%9b=HZoc%6A8H+ZGaY{x)IrgEwV-B7AFq%aKzY7HD?8%G%uvWt1(9_!PN z4klo0KBu{?BuXE+=bShhTP&<5y-v=wJ-O^tJY0YLv8Kq4Zo)+4wywFMmHDcPvAh}b zy=zS(65jnxCvGZQ?C_=PJ3?HrjH5avW{q_rHZikR@FqTDtE7c3WW>8Y^sa%$tz#Pp z9kG)fHdc9yL$7@{W$ZvEs^!Ym<%xmGO0#a9nb4ZRE#qh>H{x^H!IV3HbuYgAIRk%w zUso*nG&!Zs{A4Zlc8u6~>F3&yJ6z$B^UL-*t#*V*Ui{*ZO*-NgyAC+@*m7E0Cy~Lf zecko~vr#X(I91bd_t!L2{g5jY_3rPsOBr>>Y>^p3W=u$X^57+7d{9Ha(MGipY8hAS-3Jsn>Fm3sXF53m?UcDvBJjXZNqcF(Bbu|p9wvY z>eC7Jty;|m$bNQ@IQz2JE=wW1B3^r~10N~tySp9vJDD{;tsSTxo!_lS+RywX_WP)} zS96V6q%TN}^WR4@l&fsX+J;H=2Y0#Tf>@f~J!~8SYfBD^$C*2=)ll{_8!LVz$`ltG%*V}zs{~)(+?b5S0 zOFjslH+ZgyXeszf2Q$|FN9Vl6gCDWids_NAhp~ms5!-j8f9gMaxyz^V_vcNvv(@LK zB@V5}!up{kbTjF3W|+cEnrA(1JpOCk{jux%_T6JkHY-nw6|vlN(tQ04ZyNfAdwY`* zyw18l;bznIPIGmR#MT`;^OJpeKk=*iJI`Zp{S%WrHpBzk>=o~M>SMJ-`0Qs)o_&w_ zsIMP?e8W>ddghY2Y-cph%7wpdzwY_oZ|B)}d6R7HIbdt?sOs%@x`_9$Qqbq0P%e4Z zzkFo7=P%A(TLSBO_OO*FoE~@Mn_E{w_d9@>56f4#`|Rmb*${Hc0Ajm&`ZO=kXYYPT zwjC{uh!2$!OB-j-xqulRmdd1e-lTlkcRsuLqKn5jbk>d(Wu}|gyuFV8=zrJov};~J zaz-I;-p0bC`;RzvQzxCE`j44&;^a3te<{x%U;SkA!0x`C#OTEGRk;4aK?CP~MIU?; zEPObpTs@!kB|m=o=(w>nUR!p$fBD)xcysK>{r~kfpYs2rpE^%{#g$R9BXG)f%=U_g zx`&RNZ!KS%Yww@jIlg~n&)DUHo6d}<`tjRUzN){Q2Smk)s^ySm&liOf;iOqNeXQgH zHl?SX^2)B9KKk%iw%^WQ8?#D!XdZZz$FEoMXwbT~+3Y&BgxM$|4eBf5oJa;zlbR&0 zYDtAsN?0(piAkjv6CpvfOjUzYqEH%R(zQ;_dQ#$nox(G3Y8TZ(2{rsf@9Fr_9^l1-yE~XkCO>jbvPd2=wbn zI3}L3m7Fh-R=NGEo>`qZ;#JYgd5)`g3-i#H_wk1&3hz}4Knh&{%`-trs6YUgN)KBF zA`*%M^s+3Id6ny51w4Ohn1R9a7uo6KU}>bwA1}}`WG;1EA<2pY^4{It3cq@2qeSPard!B9st3mKdf}h}UyopEhH>pQ?pop}eDjfFrvzC>lMo6-U;Q1IB zz||hledtN=DoHmh<-GGQ*kTLTVw$ECH>ZC$@M-`9`?-+4Ux9(I8F(57I^8u-KI6Un zV!JLG5tJdpFoa=Y?1t-4iqG%D#<5-r(OLV*JAyg z;Nz>Y8d%*80ml)%5de07JiGRQtFL|zXaEWb8VEaO%6yxzJ8l5jt)9mnpI!gaxj_mU z$Pq9D((BOqYtLsdXRjCT1@3F$&A{7YK6kSZddIUL)U_8>59yY2{0^`O#z|0K=X`$h zS91k?f)BayNzdhhyXi2aKr9g%g?kK0gHjiB0(#MJoo>=rh^aKV)|tT3aGS@Od-jb z=7Jud+)(a>E_sexq=7fzWHC6XKm^EQXuJspS0tqSe59L`h$`z)>8AI?tGcdc5RaM` zLpfi_Ox8N{qJGtX$-mx7|M~wX+b!%0%p3n8;LU>ctAE0m>|6eU)1_mg81Mp*`eI{M zN*RJdD+y3Dz&nkr*lMrCy9`%2m((IkRe`7{m^5L_D?Wrmxg4P6*}4zl8r#=(W~?$B zJVs-D0GMWql{Sa9C9l+^f*Y|@DJYNAj*Sm9b7((0o;cR+armxrj-8u`Z1zUre%& zl!wFSYN+yJi|f`eUFu+7!NP|F4}bU$&B68AP!bd~f!U^64l{WbnreDsjp7zQy;3u*PXRoAJ4HC!1E|@&K(#4T2J*0`I+z zY{7Er?>{Fq;gbiz#ljkrvY3S;2!6)+_T3e@>xJy=!|%%{3V1_GOUK0d3Gf2o!F4kI ziciwpM+~@0C(^Jbln;m}OZ@2M`VtZ-8|$ zLn&AzxZ?GL#{zhH5Zfg~8pM<8X$J@VD2eI@W=nfUmkYm+04`)7?`mLvdRXrI2HL}e z-umvwxEVndVc8P{O@I7 zl?voW_r@J_q3Ap^e1xl~&mef%!$T0vZ$8Pp35D^hSA`8Xi&c(Mq#_y3k;GigqC}>V zRK)X)vZ~GZS#-K~g-p{2NMkb^NS4Lc)}@+);y;wBl(DPZ9PD$N=`mz`;K15v-x+$I zwB#6AfGNP}bz@VQN0A?h~ zmVxX}_V-LODVYHUz$u)0JQ1~40sx-vShAv~>M(nK#QFJrF5HRFVn_l^VaQ(JTS`fH zTAK_UG=0E#X@&PDf&>#XzJ9O8LlL_DeTlXflynjW-YW{^6fz)(EOY?41~?6ZfCQ>4 zF}6euwJUKxcgkI9F@1vo5Dq;;vS_}-EH@CtYQAb-EN%SX5 zijYktg&8){icE~~bxJKig#s zHcz63eU4+qGCNAX;!LdcgI7!HqLXE`Z5pc0xa`1lAJt?b-_xfNwW^+(#>B0NVUVo7 zsL5?Xe?g7LH+S#n{qQsyNgsCW@lQ+wK`BKUSyaIGYRK<&?4of;-JHU<`h##phv>Ui|<`~_r@ok$gn1W1Y zddxP>Jiro0z%pcUrx}-!x)d)i3Y6#}jznjaj3NvW7G{PlBMzte(5+k=fLv(}?X*w| z6RwbOU?Bi}HbtomwgVmoJTKa9H>cn}!*1vi_c%XTNBf~?6#s}j)$7XTYu9 zU;Jb2b{8{feq;Ik^TVKn^d#_x0Q|wO_=MmZPq5|x68DI%iByf=^7}a!LfGy|!mzGm z9FT5P_t)7S!Q1Wwixw04U=KTRB6bkcLJpEJy6Op>{sK273pdif1x?1On8QdQKIAEh z9oNF-W_XgaE!QzR@m_b{!0oGM0q6Zs`L*G7f}233EwY&&a6SlbF52_J(#gMl!u9oEw>Ou>}`` zJbF~>Zlo?ikjOgGuEbaSb+lO>eDh3RF(XxQ9av3 zoSkJ7hra1&e-A$5Tuz=VDV=1-?6k@gra$COj$N+Uhm-K_ALY@@eJ4k^?xtd)+v~Z$ zbNLkieRY>G+wn-#5KoGTPSkT;)N@=`G@~m-gPbvO^N(=mlYStpljn7TJ+2h67A>DE zZ|a96#|Rg=-o}@@Nl?I~jn_WGJ~hr-Of$j_c6qffZk~EUA2$xrg6Io&7w10C=Hbc& zvASD14g@bGcnOZf0UQ7@a5xB_Oz<|`m3_Q|JM9%1xTb+qcsS?$aCkTv__~3c^Kka{ zaNzK6Zh+uwIN*l^n*f4S32uS`?Bj*Ng?H3lG4PUyaz|dl9e+4*c=z|<>}~d<4h3na zMiCLzwI{hztFQM%)RsAzZ72s&VmM+=g5Y51f}TTpAY-`1OKlfb9coE1l^s#>p-%a! zH9o~}yqjAioof4%gW3U6)YX6F(+8r!zw>?XxQ3^AWF5F!Gxu1tYTucuZ-2f2;LPh^ z*!;xr`jv9UzP!%39y)chcfGqA)YHaz=IH7zy{*%;d|=x-Hq&Gx+@q7gOdq#AMk1s_ zr?5wOl1CjMY2@HTx~a~n*{FT@C~x*ZXs7#1XTw^`Mgc!sy7kw2t)qB%(bLKW==~mi zxU%hT9bCvpa_A{6d(PL_;{1@C-u#i(_{{XXoO$h+zC5mDiJ#z}xz|f^v=8HvuifH} zbDTg%qo67md!@9;sHLQfuv|=B{Koc9f4yLN)9`F{t*`Cq*1z(%Z&&_!c2A$)L&y6< z6{TlXewdje4a8}<`{SNop74fm9S8Q9cs!A><@yKAC;hc&@ngGi9}GPAll|D=b-7&^ z-&?=^0Xw(ku3a~O6d(Tfcb<;t?GfZ>;wC0#46UO=!l;bt2I?CnpZw%r{^}7=qlY6; z?Q6M}pW3`~Q%Cz3TPfy7MB% zKC5h-X8-+vvf_~BP5AWY`McoGZ@Xs)FU$6f{>0m^FKhRqy~=-IANsWa(cPU{pC-ae zKIF9ktE3vdXETC;6m#a(;i1SkKXINs=85)Kec;{}SL5}?7xH8I$alW;366JHmC;%r4p$I;ncMpf)JN~Q~I0OmU zM6d_ggncJA&NLT66zLIK^F~3rO2oiRPDu-vED82+0tU{TZ(Z)QQ<`_n90-vS7239~ zx~`%FT-SK2dfvqqTnHEL1N<}%9O8@r{O1d=kF~xt-IS_)t5jQpCt%dYz}^daIG3+; z=ggw{(0QgL&c%R@F>1LH0@_8FUhS%W*+H-qzyRJn(@*Kfj~C!|E~t+<(q0j#TlR~L z@-fbPs2Grek%CHNTzn$qKU?@*KHZOw-?gPXjQL)%$!=>bn*kA^VmOQj!#w+0yorx|cl9P< zc`7K6@;826-y=Pd2i^~(^!m7h{k8pui!$?z|3iK_Fg#dvyKGy@{={EvH4a(c;mIG3 z9l^ffLqGcLOl6mCu#J0qzY)G50pk93X~Rq>9;Ci->E{?ejd{%vO=<3Q!c?7i-Bw6O z0WBtQf_K@*REk>#*zh*Kx_(qz7u!0wW{fD4_c4)p*M=t~gr`yr&q_4kAl2QYy{3 z`42fsdc80V?0>T`F655Af}g>KpBP`=l2G}I=?KC?kM9VlfeW7o#uaZKtbT)BKR?q- zhD@o{RH!zlt_ulCkQlgpk~rjf003S(nZ!7(OT33K#P-*bmIfpZXFyzd3LU>H@4W{Q zhE+@%^dIV&7Mym_jxA#eWoHQD1`Hyw$E6@bO)7a3%=MsNQfn-IPA4_97lmn$p-9D)Y8(1CEVOipNmCbrHhXlbB|##!c*buZ6F=Q#}EABlF>z#m)|su^TCs zP!5QV2*oI7`i!ivD-XOe!1oIe#@=5}o`hOcsEk$;kcO$L#j40tDXAr6dvqUU<~U^P z^TmTmvwY}Oq`?$M;DCOaB9reV%-ngxRa@XqLU3~JlRk=em{)sb>hk%^$3l>x9cj%- zdyJXG9d8BPN!|#+zXwR=@cvPv-wO{(mz6KbimE`2WfL|78Auc%x+{_5_z3rHs@=qHLEDwI=JnO=-&v+PT8bJY8M&Ch)`2Hrwq|KpaR49TDwyc?%4D zoG{%tnlEp;LtBqHee5}p4`dhOmsp=zuqwWhQMOxgXzc;31ED`T2C;ceL!Ovvu8O zYML?4xGf%Snt6dSp0L0=9B43s29OU9kUUDZ6r6+xFLDSMkQ9jYqycS^a|#NkmmEp4 zpgh(LmPam`46hDc3w(rc#iP8JzWOa3@WpUu9c~kMaYm8GB1mouil6`@6OaT9QTa{M zD7^a0Gcy~Yn~TPbY&+1)Sxu3Pqj^<=U}ueV3Tg)ZMH3#&g{>y8qs{ew1Gh z-j#Qhd^@rC^5j~_v4ANQLMb7arv^#@1*jZILaa>*kD?xk10;)izN{??5`m3hya1kn z2ZEpi>XcS9-xReVA+9R?jS1Cj>X{O}JqGW{{Ph3gzq~*DTZZz?%>E>66016{JoD-s z8bNGDO9m$!fPnml2$=u^Gdv)~J&|8|6g*%Of(U>B>(EHXRIC&dU)pLHd&L?Gr=234 z{3T!jZ(+fXN2g+XsU47udmh`jH)r7);0$`XzHk>d8OaT-OQ@|5qP8Pa6 zNL_h1p0<7PeUsA&7ANz_EL7UK$ylQTeO}XAiui}MtlcoQ|Fr-dIHOR_Z7zz-c~$uT0Os9t_WN+ZP$GV#|@_yzy6Axet74%ef#@oaK$@1o(AfzAb5-5SM?0+ zaZ=%P^EYO}w@Xn~)rvti3&lgG7@$uHDgcR)hLHU5kBbm;8Ym_JY7>&&3&OAl)#)HY zJ#Sp;h`L+YK07RLf1mnwfcyvD3cPU`SG=R)@B8pje@&MHR|FqkKDdPMnupp#KN3Hh zG<(aDRZiug0O1e_uO<^52!H^ngj@pPB;i9FkMh8PLRl!;P^2Op_k+kf)E4zwrp(=Y zR~`ras`!^a{2c{v4BB0v{+I{7t;qfE(A%TlGBe!zL~rn>Z{&B?udUONNepy7iaH*L z?!N9-q0bWjbde6fjrr%648c1EDunL8=hMY{f$SX_%5o7{Yk(ZT*1{)F2@F0LhARXF6fRn!on!~C14_-j`VkDGoR}Y~bPRA0IobHIZCpI;q@e+VB zX`vv{MhsYcm6w~(on74y|E)f0sJx@{FMh@AJUXtsJ1-ZT9xv{!rs7zT=}4yU9Nu?{qnB zvpnIw{>s2FU-$F(@{WMZe4Zf4H+tz~n_u1fqkG=%38z)&Kz{|WxWB8*c2|NICDtli zvP-yY$+C?OiHns{{sw9OZ%%UlIp_4>=AXx()wKNDF@!?WX5xFn_|h=qz1GyT0{3%*d#L8_=e3J8_@I1phQq%G2y&3rCT zy~E%@ktoY9A*e$;U4MIl-Sob0V>O+=9Jbf#Nsm4$ZJl9skVz28Q2@RHPsk_8DdZ4< z0s|o?ufAsRybc8Q@c4l|GvqG}2nSd;e4@RZRrltKK77GO{nT+SKhDC`af}aUdpsnA z3*MY39`k~UE(zs{V3`F$>p`{*ln$(A5FUQidn*M6AXZRLp}ww`?w_;>bVr9pWp^B8 z(7IF5d3jK@Eq3$*c!ib>patly-e6*+L7Yik_|d?)f=~a7cO;wv_2H+i^X$_!*GhH7 z{Z6X3H}K2G7x#BmccnhMtMY4|z|r7L|_x%dJs`L};R|LlIvW$g(( zrR$P^%gjgt@C8UujlX3o(@FvD!y1H)u5eLUi&mX9<86O$JnNaSJ588rhnrSB{%-!& zz_UKV>(qAyd~pM>EpuF}_SXxWW^`qCq+DBgxqp3mga?%!A*B42j2Kz6(U10&B3NzV z34y~y)5n$Qoo>&{p3lshYS{(BVqPfVIDrQo9?)^Tx>1%M3xtp|>aZNVkBFG1NwsvS zdEK1M_DTOSJ#F^GJ5LcUc*!Tv>%ouf4L^8oKFx=p%N~B=efe5(n`Su5-AoH+&fq%{ zy&GaxLZ!fYZ6^>~sPO#I;VE%7MS|pYD}X5xj(tNofN)S?@!XzHN2x72ub`A6ht2oZ z{L#8E7ljtREF^Qc;B0CMEz9lAEU!;LmjmcNi7&|N*b@jX1zCuyXzftF-ub3a>hORw zP(c6!0e%3I526N5@#NKG#}K$^cv=a57#6`G(ND5Q&$;UHcF#+n=yNA8cvwPQ7V5VX z1nUDcjg_su#53D$hBR;~DR}^~QcjI2?El=x#iECkwi|_{1Y5<+#cycnK&Uy73_ocH zSm&&>hR%D=^#uLpD*d^?ea$@kSu=0`-QE22Ke%xP??`-8`fvM`A)XX>&$2gla4~61 zM?C3ksJA$_>@t!Xmqby^F$irVhL~FE2bGEV;J{HySwvYtU_*XmqXEII;gW!WB##?p zdj0_*Le&Nj>R}{@a(BtA?eW;zws^yGc4khd%W~7@XuHO7;7k3%`}7H1XL?5fFn6w& z>C&l~*?vTeN2+$5@4hv3p!WHsKz<-ww%Rx$0Hd9?jv))ZP)9J*+SAUw_7jAG-1pUUe2>y{3*|-^PIA&%W>g1 z3Er21&UX8oi=e)OBm@w+Z=J8rd*JLPI_6y0lDi>1|2Z*Sn(wu}_|0Z*I2 zY&Z=$d0P(<}n1*Cd$!ax+f~i;oB`MJG(~wrm(1|x8(bD6=zFAN7 zk#@~Tqq5hK@r~TcsTba`F5zaYyM@cb@a_D39~p+9S=*4xyI_vzAEOSk1y#h#lL6T1 z6A$0W(SY~^LS}Q)^A~_1$TAzRIw8F3NyrnG9|i;417L@3i|r3XJACz?cXs%Q?>zZV zeei$}1nSjaP|(2PhvNxf_v9$LwjJ|f-MIhWYtOkAfQD~u^&YCC6p({Q)2?WGv^-?v z8yj1DapA9BVEgC(!6hwh_1yB^?WJ#i>G?nZyI)-Dc((ef{$ir6sNveH!_m%>W=;`J zW6;JErp}vCM=`TvPs7d+$JeNT{JNQO--v=d>G&|CF!@LJl_^ni&VU` zXWX!cTVVm5trZOVw5p=)9Z#XIh$(1T;z7+10zhdu@Uq~3NCMOpL-ydnK{Rc011m_4 z3uWb);9)x?s$rTVnaXTiB6a%FbZCpjl(xwyK7H|*D>%2mmEq?}gLwA+-N`rOrk`{; z?Ni4a`fSVxp7p2owt>lE%TZCe9H$bXtw765*GapWt4cnn1gVw2CQxEk<09ndrWh9` zX(npPjUaG0wX?`aFm-#LhS7yyPo^woa5~%6vU7OYKUtpm6J_p)(c%cNX)pbzGkSQ55}W{ zJt!njt(@{xedVmi>csPVZ}OtN;NZ7E@K_gbkGuL#ef_o1iBysg^zi*j+1VlemK?j? z+cV6XbQ9KNE$|$GHK1$wYfB)U5yng?m{rcVQV0-s2&+k6j{)u04bEWJ1 z?|$%ezvCL%$ z+d3(AqMrF3%h&Yt?#x}7gfaOP@et3R-1#eh_uK#bF~IZ%pX)x6ucn$8|3JLSi$C7q z*4_6m^Ee-RbAhM6++)XLORMaTCy=sqO4nSX;t1kx@Cm@9ij&Kqqmjrn<3+-FTBbEc zaf94jK(5~{-A=Ge!tl#Jj{Ph3Cx$|W(9c;_;D95gT!C(em@phtEy?zs3wB+d?-S0ZQDA( z2#AD4@vRBR<^zATXB6YBv-|cxKk5C?-}U5wV1M#y{si&xbJyb+|CpCMW05l^p6o5H zPxv+WNN*o@^62CvJqM?^?QJ$j!ZwgCM^*WTJd`@FCR6v_x3NWhPoYf%xbVP2coH%R z+XJI&IFl{}hAGJ>>*R;!J|sv0^Z~s=;@U0t$*@Dr%KT%!+&^CK>s!%r7LWh;qV3Uc zJ7%rEwo9M76~T!E==!hl=2wTk_V>TP_@W+>o>~Un|EIt4&rf*Av9i-wO*48@6vEy4 zBvAnh03H^APrPRlesjqA=SglP{3gH2Oh`eR0L)DCE=^vZ4>NPlnLlM}Fk^qYeYAge zy9^A--k$pnG|2h8iz8!nzuw|EoJYRtl^cw>w2x$Sou6fQjps@Kp24R-42T!}b6JSh zAMT~kTz9WL-QzRiA{ELIwAGAXU&AZ<;}Ub+1PH)LxeN$GJ6LC}t05CP%#l=)b7khL ziiA=M zo^sw1GfvfQ*A-td=k8Aw;=->W9PzP!%lg^wqd&1WJ3F4}^t1i9m~_$`%qRHt#-BV{ z;*9@`TXAPnSN7IY!5EBk3C?B~-(VfzAg0)ihMH3G&`J$WUKR$RHfhkAE9l{zH61`P zY+p*jJBwIi2?)%DBI1SS6gPRTKBm7K@8JK8xA`wozJ2$)U){~~6ZW95_6NVd#<}_v z{XFAw!hP}U6aPAkEa!^FoTpyxyuhz3ujEf`(W=JJqwNfjeuh10fiE={VlmX4Iv$gt z3ZvjHpc_txI4lB&7EBpZUrHO5p#am+7HDo@giA016h~SIY`a#s9r!{W&~{Llif8N^ z^%4AHd~|>N@aF%&ySY1vwzzFhf6MFJySx=~t2g~8h&KXj_l36%%Z2BPhXUbaQ|rCg z=ey#^>h--=dzSGwcBkc;NjqDFSV}9VMr9Bc6_xriFs+!Wvh2fcm+Y&*D}tmiYM67< z?G6vw2L-i+rj_9#RG6I3L7Oem&2mGbR=52g#jF$p-v|`%hV>B?g(~yw464pM&11(N z^j%)*UFQ=&^3yteX8*XHao5vwZ9nZMxa5LA`vWo1g*w7d{v6g-~6IjB>6Dpa>6m)yql}o=!#r&H^N_d&4ofAW}jM#XVs%oe0vR z-_?qZuBU5D*R0)^g1Tu%l5Ad-hh~0bd;$O5oc>n6ohOYprx#fF@Sy!&vGUgp9{IsT zd%-@B1m!uNV|6Ak!J=m=W^S2DDV=L=w~S1~{8QYar{@&o8G^0W;|9xcJvELrkPgH7 zq2?VqZZ%~E-vl0Ob2DOKQ^6I(&LqF;IXDWHfTvZjL0IlznUqXnreUV(o8FCyxiN9J zh_j1whA5w$_Lbhm&G)|X1gn#Q8=kwK_Tp2#d5CD?0%n8VCd^V-JjK^g-^kZup5?S- zyfyGPz3rU0jkuPI%1~-7JCa2wR&x~Y6p+~#1xZuE{Ps>gIU((maE2bP!k4CVYX~>8 z?5vzLVsl_J#Umrzj?#dMx^>lOQ7+F(H~aZ@^IsN^|0`n0iSF=2^fUkO9!YTMw&2_a z>=oNq?rTBDaHk-2u{YwPFOJT7GGl);qo3YvPWyqBnp9(1WFRq6Qh{EDaoY>6&}86p zxxC98e1vcd0Z^5=yUo}xx}9L$@c|MSH@2PLr-9J2!C3K=(t&ZQ4cy_NGdt>IdxmyB zhMRtwp71w4+Ogfvd~ZF+TV2lFW!ZCJJp2y^T*$fdLg2zPiWqjQ+(}PH>TUNjqD@6H z%s|&z+gO*#ay5*Dz?4Nt?!M2Pr}Wdq;XY^KNZEsT1YnPKayUR16zhOnVj`9fIx(6v z+8P*dlUmZOO*=K!8yE_s`IDpZ)ItyN`!+4FUc*&yFR%Vjef4IK`AFXVK>M!FuQv;R zbRp))PyG|bmwwl9c-OhmM?OD15{wsyq_bDUUafbxMJ8q>58|nJzKYhpn18xU+t6U8 zd7xf}##mjUs?gv7fs{$d0}y~Kz$Fb}MM)&ofCRyDLi3p*0Y+&Q6gb`7r5&pMr>-(G zN7j`Wess@&W)=54AKTQ`p5?)&mHX~|6E)*6=mq<%J{)+cvh8G+ff_Yv4!4(S;j7Z> zm^p}bfHmG~zyR>DfW=eW!W0bS-gQiaswvkJ*>hC77*W|%jWp{Kw@AL7iT40Xu=H%$ zYK}`%RoE^S9pmIz>oz}yWV_64SGzUi6FYzNoZr-I?ViuMeFs#d9*AaF3C*MvT~bfI zg@4NT!)(V)VkYA=I@EYERFHr{0b~+v3xf(hO|8iFY#@nEq^k zwm0!^>bd0gf1VK+g7LyI{pPYM2~#*Sx|U%?TU`CU!(6xzzt*J3BN;cjTHR<=fvWPx z0;pWh*9=8~=k?ClWojQWsiB5O}+ZT4O?VTs^x_p2Z#An5)jA-Ng++p0B$&OyEdREkFJh5E;2)~vel(h zTNxXxrE(afVrY+nOHhFuul|G=-19b9e@Ykj8!lMfT~kb^toQNpx0esO+7t=fiJNpx zNL^AI1f4vp^#l$zZ2{}CP~Do@Iggmb8Z-NB<&YQ0=@Bo)Wo15C&|Kr_5>J;05>vdc z`d~HWVMFTbP$jXUFAybm+!!D2zr)-3ck#CV7&>S+!pzs+^^Un<|GDf!-U6Ke#Kn%Y zdLwO$&+sw+vu)S8KB-I0UMsWeP~uv)<7qo)>;j<9qUv&)rZlx~IEF$BGJ$YQJu%>^ zRv;7u=XI@^24;mxsihAE1qiN}M){enqs2vA|H?G6`=ZSK!|W|2CuCffuh|nH9A{vD zfA_ub!_Oth;e8&LHTI=do5cnf{p#UW{FUj=K6&+Kw&441kfMZDlO}QSu-0GZACZ7xO%MyZ!X-y4?lZdkj0ks~U~69aX_%7umZ&;t~lsPVlM&Ex^+o zAta)L&f{oGM+11>42rd9|B|P>x*XAuQvX=QXsm^Hx_ad1yzB6OcYZr}-jQGJB}B;v#NEdS~7oZn}5HfJQ-<*T#*w0hveE6y#S{uT4LUOx1z z|KPSHuXLR89Ch|Fyp~tjbM({hoz||*U547QiaH2((6M2Qmqjtr z0YUKrAQ?hdrC?Zk7A}*3x6TGXg^{lT?{Dl12a-UVb+EeS6Vc6hJ-WKhWO9yD8^}$N4;E)^fbKv$8g?u98`e&Ij&E zMRVSmdXeAI=27O(`hSn+WQ54pgwcMuW?>-}O2@v6*jvbC8pH<`lFq8YL79wGOec1U zr5>W8SS69m+(gag4c6jNkl-tkl1ZhWR$?iNIv6Jo9t*6;DL zH;(jHL$7o$^uglGQWrSS!}ejjxz~z0JX?5m`=s*RmX&=qC*6EhQS!+)saEf~u3Xv+ zWhACthNP64HVw*Bo6Yd}5sxmkO43?2RJnk~cBv@>9_LOKP7xB7kn<`+ldpvoGN8*| z8pc-x%SW*N5ueoY{VNs#R$C@x?p=7`->>a<+PQ6^3w=e%Ian7+l13>pb%in#382lG zqa#dH37D3GNI3_wdiGCT zK7y|rSH7~Me6^nYY7TiDSI__UfgG*>dsY}f!?5*x^{nq;%%HuXoo^g-X7)bjd`uL~ zKYpslL;lW_hk6@QZD`TS4P;JXs+c6O4eg)-qW}$$_2e5LzUiyE`}9t`v&&abExVF(^0RL}-bd+6_2@^b0A^~m+&yiSDNuogl0wm9agpfo4oFtJ%06YTT z)uAKBh)n9b(W{3CtFEvybA8(Cs$C095iPF!*1|6X8t}44Pn+vSnFJiXGRE*a&HRcH7mr?7n$snaHKwnB!_CD1%Iq zMj;xbEHZG`^&*j>(1i&yMQzwSX?vDlZ>7i1O~pmOs(cvV4@o;)g3bn-kaktzi)d&x z;T0@A;5c~{5|R@t$&1Xv=z^0N6ksU8%RtgGoOC-WL*Gf4T&!gQDRP2tc>X=EcD?kd zbz8^%3$qfU-s31t1l?$IUXL$qXG`$Xu#h#(76w;o9x;0qVfXqd#%yST zxtfN&3R*-a4za-@q2}V+RHRcSbG<|rS^dP=^%Bg8$NAKFl3z?Dk7&n-I)4dgPCg~k zjX0I-a*Lx&yQ%w81FuXz{_}R%{qD>1HsZo3m@db4)SC3R4?DXVw^?wrSC3Pe*g4~* zdE9zM(&4kD5Y~LpIAW{pDOFuhazCn11P^W)7xuC$6;DYdajC{j8G>`m5b}3(mobIF z32;OBgAKpHdFp^9Y^Jo!+u3@ynl&?tu4^&4m&^(-nvXKIC41~hM}qS_op-qhyK;W( zhvzRC`1!jvF!sA^K^(_|9aj(L-95_|)<`|tBmI1L-4@O=?>tfqFoxk?Q_V1K8xaXg zsm&;pfT|(_Xg~ov{~V0X$6NvRmpLoCUP4w@AS)~R`P2#Km$8O(Vev10nwwXWGA39i zyxv1>!JgZM^~qmHzMv{unMY)H-oIBWMPpB3Q$p~Aj97zrep;^I|c%Sil`-@ zHk@h|bC5UJkaRPaD5h)~r5_nnR&c_GjI~fLutg$c^`HQiDwm*ioUiAn$)U&q)kPi& z%6|{v_`n`<>}T0EP{!Yn3U9r@& z`bxMP9Zrmif04KzcvqSqKGekF+t$9*lq&CJ3@tIOQpnQgZ|e$QY12!DKl!ul^aekn zp8x#j{-3VVL)(LPiMR0dzVZufc-$qYc|vjP@iF&(?dy+w_K*6?d5_6{KJ5kJNQh0V zaU5P*P{R>o#)mZfO%NuY(8b)?vZ4V14Zs7+Szm^Z)WTaK_v5iJf?j^b*O8 zs5GPHiRn8GJp3m6bGq+-_b~(Js~bt5>1Q;fwrI#eJkHspk9_>Nc>i0ayfQlZkQs>WKrjsYOvp0yg zk!*xoI&bXF&v+91zi{2sBUR*jQGf+t%BEZfP~Et>U&f{tOID})dWMVNaaYZ`DcB-mVk8NiJV<766X$7Zw z3iN3*5vF-x=g?3p72ASsaSJvU=Z@8>c4KbN*G}+F>r@%#a@jCSbGX085eG-{Y*H;t z%P_1wV}fV+MsHQn@^!-vrdJYWKfK=*hX)#NuhUi)o)J5~q=p?|f%AWD z%;=O&@fdR3rWxo1yaX5nFkID5K*0k-!c8xXr>Vd|P%KpvSlJU;Ljg%fAw1WQcN~{Y zLcYtAyWPdHS;e*9$S=_w`T1tv@ln0qtG<~v&;K&kJoig>eS6^- z^Ujyg|0wRgeCP}J)^A?#!~AOchY0Nj-8{#p9pUQt<6QTCA%D5|U+PK^xwY^+$cO#D ziaD3jUU6T)9-s9olx3VN)~oS^Ax@DBRYy(&prK&VgpPS57)v8$Ke)eiiXNBBC{K%H zk*%`Mm1AjhT*kO%bik9;h!awP^R>NX8rsXh5$h(gnHDz1_ojQ+>h2Jo=&Y-nx7~aWkK9)vkR%^Ml1@`&|x29xiAKq4Z4b=mKkWkD>H1Eq94!|Ug&Qw3mY$>=9WSt zDOZS*iai*T6)Tpu;yw-++_-#Q_RfdvVsx#Gyu9>`E)pVAbQIU6R?j8@QX{0&Qg3lu zO(rJLI#tRUaIPSh%s`LFCRD;*#E2szEotGR7(^(JC6y{uV^XHV*ccN5J9XYjl2Swz zheQ01y_EdKWeaX0P_K3rJSA!VY>83XMl~uJ`wN<*z@&C8E#2ceCLm;lgJ(T7^IS(ZOsoWsPD}2Rk(6mz7ARcrEmUEL=Zo`eMB%X`s7;snLwh{j_YWbhDq6I+W(o8h%M96U zmPrgnM>u#mPy(>t+87*y+7_v@lT)im4vSox6Sk<0%&9nITxUj&GXyF`{Yd<94;#7COBReggTId?4kaPPz*@}o2L%;=4{E{slw zEg~YFjHBb1OqAi2)=+gPnmkp}L!47e@W!i#I_8JJAPXL-aSn7Fb?`9|wtvhTP){#5 z+}OtO)$O@qyp>I4QDO-2O+C2SsP46*k5yZyLXk39+BAz^)D)`VA9XF~%IDEJrx04{ zBm|HCN*tUrl}|Bnb}t$!SHw0`&p8;^Gg$T`#sPs!Y6CZLn<1V7sD#X9<=1_HIs6IW z*_2G11Xdr`}R-3^%cndZYt3iAseO2#ZF@vP~0;Qpe2%1`r#w z;M|cI&D3o~BX;P0Cf+fz-EG;8IvnQxBqchEC?YNNtCTUWCt*tAd@4xpS{1cv&ZDg; zc$kC9Bvy}f+~D{LzurO($Cl>>2+AnW_EXRJb=Z}GZ3W9T1PtY=5Vc6G={)90B8AA> zNJ>QjNmA1&7c@el3p@#w)fC%bb#}RRs!w_M?X>pOClscNX0o(XoK>JDh9A%WBuN9&R%)==Pt3S&c(`;w7EMqnTPDOInd$jQXIz z;fy!TI)5Tav9fGMkb`9E)FZBv7$%uwu2D7|Ic;;!dc(mu`g*!|J92tHzhJCc@%8!E zk-JzC?? zern_ztRGPVQaVLT0Kov9V7P>m6ke?)D~2P3$qIr#8*iA5s!xX3(pp>hQ#O~flwmny zi8w@x^{C;pQ~;3_5H=*Rl`fSmNJrs2;JutXxHa!B5R~?F;1o$|4AmDi%Izeuuo9K4 zBtRqQV65#=0AS6Tha-?uA^C*`Qi7UBrB=cO85JZkr&7OeU2};m1_W1!gb{(nnCE7W zn|mZ@CGbB;DU{^Bq0jw{N!@-4spXTADNM8rtgNUy!~_7DHCboZbW%VU?z zBGrRa^_z95L=joBBB8K#!l)Au>M2lfL_iI7l;QMHH7w{Q2}00kCfa~3D1Nw2@Q9A6 zkY_Bh{>0y&Jv>|9dMy>(w)LrIvHyRSR(t&QGbxL#nzsg!MATCS%8lO04nqR%&^0qY z4zw#H$0^;`*qR9ralyOGY?ko!z?YDD;4=aPH!&6IQ_Q-{CQYfG5$6%$t_M8joUhoYdVh${`#@iZ1okQpr>A}nJ5gq)|1m8jWGXYqW z6I}g=ugwp;x_+}1Pl#wnWDw9WT*Zt~7T9vrU<_rr0J3I!)r*(pFwsvauDhbjQW6wRXmmRxPH;B1%$aETh6-7h01M6k@TuH)sl@mtWG)5_>gj4Lpq&a37xe@_!EiBHOde` z<>@+9@HAiBG-P6yvM~(U?KGY1KVqNMW=gNg3uhu+hr02CV5SOB78 zZf=uK1&4t0KnjmHW>i1Gw!<;pkjc%bJ=?M?OB^9(n?bWI5!Iz;6jyGYf2g-Hd5}R( zDv*LUL{YE&%AJJ90aD}8OPwp21+%Gqo;!Aa^c$b(=^ybYUi0m`39Qew@Xe}clDKR_ zQB^^G@Bxqs2_QTMECM(QAjuZtxQ8bQ!5RPwEYop}b}ELNbPmpq?#V|2$-yVcB@WCa zGo(S0M@GtIu-duQUZfby-`PjIru;NZKw)G!%h(M*fx%rI; z&dWG}d#l+R=Y%y2w%kXK`^AU8nD_qs|3?k*T~fdfep(%D_@lt6idsD zeb4x+tPVmUxnL|(S0NXan{po!xiP6S zL_)b?<1)Y~7BQgRfnIE!9bIqLIixW@k7hj{P6vxzwzI2w68@=tUWRjzWyE^mCT*o} zN^xE*;}H^%jxMhCEBWw9WvLle;<^6=(=Pvk8;OCbK?2SVGZ`J>fF9?h8_#yMCui29 zC~s2kMn>c1Qa_sWJ9~I%hDZHivGt^<6KcRGngh^%V7k^&+{@WCQ}V+y8s&wIC6gB!E(j#GL9bDDv7}Y4^H|}mv%yPf{dfGI zS2t9{)HOpJRbQwR;o#9+AZxW;DaY-fZfe8r+4GadEUpB1BBX3HEHk=tiR(1IaE6~5 zVg2syy4B2r#kaJM3%sbLW38-Bj~;n%q4xmsP)8uNo>O6OD8)(@GLXLGm#q9|jdTp6CE z+!zu#riiO$m_4iAC=i%i;8Zoy#Bjs{w6_yc8 zS@^x4SW&p5LrH@RA{=I`GO0r4wikQ@v}jBjk{&TNeEy-(#z#2dIw>;>v0)l`>b#>@ zN^r{bq(<44!6cO!3j>WJ=$W|R&SztJs=Pz8#_?d0&Hc39yHU>EXJK1LS&wR)(-I#` zzVaO@b;T&MQmPjckQifJ3!%b|@^t9_$yyUkRHU#4=gRxUf%o!((-`mkt*j)vSBZ7UHEZl`bg{r+#7G9qwwLe>L&p@7hJb-}rV z9BD(4v8{8SX5BSh^^L#5r_JB50;cr zJ21Brq&o@i>edU_6c}e5UNBA@iMJ0Z^)+n}C_n<_7)1g!x0&IibuH0lpsboruoSd) zRZKYFD5QBxsAff2VY+WGlqJoYULfW}O-9|3N1p9v&I9<;s>a4D>(}D2+HQ|-FoimC zJvQwa93LiBFV$cMoEt{Hah+(GN$DfwS@@2#4tS7M6*`mX2t-7Pkn^rifwd$Q!GabF zV2&D+qLM>bG{soJdFIbzU%3_G(MR8836J$TQcPJ)33i;@CWH|#%!cN4V+L|vHzBze zD`DvS$0WD- zG(B{_yE*${ixM{_TLP?#p$QNKs2EH_Kr#1ZHNP-7$<&T>>goYjyHY1AiHgzHHgh2# zTpe5xL6`3z?hmEm;#~2TgYh#Pg}~kG$Pp8!ZR}#>D#SFl z>;WY(1sS^~0?JTNJ1LbQ$VNp;d0#bdU11S<->?OvIg$iy-Fp~7Ihiotpf)}pk5!Qb zpeslj$36O&|8Cn}CA_+$MbI26FphLD%~UuW&Pl+T(DFHOZhQ$WPXrUuVggdg`EsM6 z^R`ijS57|_M@fWf&@cylNP@s{1ILho0dCY!n}O&+NEwC2F0&9kSxe8U% zyuLs_PkEeu+weH9+!02*3o}>ZN>9w7&oe#ReWY&5!3LYMr6{6&@P;rfjWS0=Y~%^aRnKgLq%7Z;joj7&+0_4qP>CE_xr7*QgT8~?MJ{*=z$xM z!jDse*F8Wh5MC^S8x@R4Nk$=1$0(&dghPalBhO<>8M(FZGw+ZZl}T!WsaN{|z&4#xb!Xu;-~km1ICyM?lYtX7UQHfDAUz}t zeA#osl%%dsRyww3?C78XVP2S3e1RGg&{ID}QWa9!@pz@%%X&ilDE>hY-~Yax*FW4c zZ{kDEdnC2lsG%PzA|kRp>Qc~RqBa=Q;By+9%2yr~6ou7ND<>}z+d`Lh@@=Q{juRip zl&SVqQCXE&TV3`8ecDJkHRR7x$UCCcn~7&8@6a3r&<_>M07Z<68nQ($R;zlt0su1m zDO(#F0dEqVh+LecjZ+TqHDJSY$2bW%sjjP11~d$ytSJL9bwf>g)c~Bzqao>jxIKh< zcsMouxowBzVSx}BG;HOBZ8d3;J8};1Wrd4_64+S6#f%|A^ua!G{urkhjI#hp2~gn6 zHm`kAhMg}nib#nJP7!P*y8w&=Cu*oZOqX-j>KGazLHXmyJ2BR~;4nShfxFgA(pisc z4C}me73y)+=($FXj&<5Q*7Jf-7S=Ut8+=8GSQ(nydN~;2;WPKV}UXowpyk4t#k#oa0jt)wQL_%a+ z5oUzBgv4SpMbaa7kVvxxAq{wghONOuJGi2OhC5ApPSV@P!kP7H5}Jla!GwhbfeSG7 zliAHNtwy<`Us0ES$%ax!y|n6KRZ;eWrLRbB-Lx!C7YLSf;m6gOczwFQ;+9%F_SDQt z5fwMTr5JQw6P+53N;F7ifi|>KO~X{IvCy%bDDc_Isv+=BMzkZ;G{_h*Bt2z1Al3P-LJEZXV2)0>}z73s1%48 zS~>X!QaT79K7YMd z_4kc@Heab)e-*`EpbA^IH9|fjhMcggd9lJp&T>sj2Cw%8uIU%i5>i{smX9UpK4VID%1l##D!1yReP zB!Jqo#yzJyl}~jSzUo;hU$ws9L>b7kyV%{LL}%MBr_Lp(Vk027(Mi>16qNy36^|E> z3Ed}3n1)a&=i1vIw)s(AO1Dg+a|Rc}h><}JNJEBqq7cC19RY>F3e%YKqL=lYSzFtO zT1UwBTA2hChp_`59F-FDP(O*`V?e20)8ZzR{#2@3iv~+;3R$7qa1ro&ZUFXf%Tr`C z2A7hdgd#knj7b1%;eZCvgo3X@BQ7FAKve(-gm;D7vZa>{5N)KTvSt||+1W^{c($5e z0tY2a61)WU69^j~2vslO7}s4YJpkq0Iv1S`gsDmdVKF2gDO-PB85Aj~#V$ouV57y8 zht|oGhwzbLsA==}k6d}m$auS(B7>_ znTAna$7gR~XbuY8nyI z4&z9u1zB1s!a|{Jncx~lpI6gm01gWeF}HcD9_FzhuUYW0TqQLKT2N@wfhjxAeUFZ< z9Z_Ky18GH-A09cd8!6>;NCiJwKN>piw>CEApwW$nuUc@x*n5~kZXyv6%$Gsjc1wW*X31oAxg}{S6`Hm zBqV1v#oMc-802U-QTegX!s_ZINAUV{fqF(R~kYe}q<>(yl zq7p2SvV|9ok1OR0f>>-5G~fyiZ8Wrra!SMa=CQ_<<{fdH*6rf9bTP*@V=*cZ(j^_W z`DnNA*({?xpEhv-(G!`AkhBR!pgPoR$kA0AD|y?tv9NSF^Io~`+>j)uUQc`u^H=bN zw)9M2TWhaytUxdUQy>W27TuKG zwFvmoW+fS76~9pzTKVEoGEh-^e{T532j)>r52&DzpvM`4HZp?zcpbjs3f@#vjNwr* zsK-DP3hfz(nsfQ#da!d8s*a%L9yEIO(1Bc%2hPX)mfpyHeUl2-=8L6Ya;j}L#kIOH z7nX6Zh2oG69+?H_ila^nNC$jOSu79$dL9Kupek!7&ad$1!cg-<1|ej3lSH>63n~L( z$A}arUkKbJE3GnMbPQ{Uwbt6Xu{c+CfGw+oQcUQ|Pt6}A*ili?^l-v9 z0S`#9G?c_1=22{-4ZWGxPGIZ=v2n*P3{aOvNHOJx7YW1Z<3z+#ZBwyV@ht@zm2PYc zxq~e)*j&y9m-##~@Mf=mYU72xj+IJs5z4EGnE+RL|rAQP$YW+kAUD?3Ca znAEy4DEbLyao&SbSj#qU42zzgCA4f<;Kt6euY1NyN13ci;~NPUJ~?kLbEV}oCD@Id zlvo+A#A*>)ts2hfa|TWT)M|jyetgW=7)7g5c;%H+T>+rz5Y)D%Y;Gq};4MA51Rr2z zSslg$-rU|Q=Kzf=Vh_ONAaWZDLq&41g-U{W8i3N6U<61i1c39nvVcSlUZ{j*%;qiF z0C*dQ5Yf6oJUF|a!6q*Vw~a$cjJvRbDpbS*^`u6q*A;SHa>@fh4jyo@&;Z66*)yr( zTs)rJDy9uqoL7s~;*gU^Y)}&Y%8$Gcfs)C+Y^2!M6Hb}fK$NbqxpWW83!<{50G@4h9NT218z=OlTze zNkMacvt2OmbkWr=d2A6TIW%=y1?Q+x2h`#Mrr_OWP`%W-Vg^JC69Rf8&e7r+^;@CiMupHyS_)86_=2}EMwz@aFaWfMD#lJj0mdSZ zBjvsC8gziHYQE(yZ;5f2aEfh`8m0i~VvK^(eNF>oO@IWbFHy zYfSY6frZAzJA#F$2hA@d>YnM0Iu0Bai{uG9rhPwUmPi7TR!s7Oaoa#gMqRchYnXFG z2UP?fk-ZCSR40@Jph$2z>&sQBYS~){RXIG@vluG(9AaBf<=M7aojsP}S!Hxw+R58^ zIOIp?dbs!$G_wR4Z6jrqgP))@)V{P*^n{7ycvRwC`G}Ay?|k+cKDJi3Ej=H|kv8;$ zr-6`T9h4Qx4g-YbWy!=eFz)~|aBZeHx^iKM2OEji|XG}T9eS>8oZ^+ktEeDxsSO*Khj8(01 z8Vwu?(na5$6dps^Ep}7WLvH{D({*tPV4{t%eGrtiL=JRwQ+lv^m&HNX(Xb~v1DGEU zNG&fY2Q_Dvj;DsIWT+My#oB%yqY5p7^-xX&WmnHzZS{;pmgCtWhP;fDR}|uti(zlw z^UyIX-=0gbF)XgF*Ig`C^hfkV-LAEfA{AK4YNreYCcR+oXf4(t0q2HaYpSx-GM=^L z2oX_^Qh=T2o-vHscCPkgrVvD#!f9J-c=N&3Hu<94JP`)q#g<~beOv6Tbb!j@F&p~j zR}AsT9YqF#x~i&URxDTt&VmZ#T0@X?MOv=RF)I>3`gLbU*a8%+_Knz^s#fSLR8fV8 zYN{s2U^|deyEs{S)BsF$u`cWkFMtVJRmsGs!3dST_SJ={!$58pik_2``JxHNHU( zH7+aI1e(u=;TSy)#nE)IjTlkRD+dL@DQf|(0R^uBpolKIAXQq?gBMSGC~FN-bS-Wa z`&0!MPFV*4W5&WE_MtM+?S1PuQ)qjn!3RcMez?5JkZ%*Ugb+2@7vx=h@o>@F(}tbz zO<3A8CBl{(v_rzYi}5(|f_5VZ;AG8IYK6G&U0IKny@C(`V5pV=&_){|#ho}+HkNG4 zD<9?c_<1sB4aC*3@NEC`X?|KP)_N~vyze_K3X}e5$!?FzdhD-VqVj0KbFNH)$AY0BeS8oCx4cyxHA&tCBpGTS93J|Wcv`9; zEYvcL8xPd3-^)CJ4FS)&@d}X75y-Qz+1AN{8D#0B)4zt!by$Z;j{&aXkpR9{sK}c&ykScmf1sUl?l^ooVD;-0v)4n{XaQV*ywL3z(5Ek^q4B2GF${kjv-mc|8pi zV+;+IXrll}XM!P@TPReC$t6~fi74;vL?!%Wd=MiXjVfq1QzvY58nL5BpmQ4l#de(V zv}iXF=LPRR&zbO}Xk95JG6YAi8EZfijjFK^pmxm9+;9tI8k)WYoU=mM zxVE%Ty=$!}REjoR9MEw2J2@A;a9X!-bIF$C8kXu78~cLsoHV6z<0FJExC7gR=~&0Us^EcB8x0TRa@sV8 zoGvx%RspWRzl&%EkDDDCJLih}E=@q^b*_nq%K;gWt!3{j5P^^=NbHcz0 zCveLGLedF00!`jv783>xn@)#w6;4e0PQvi|mb)Rn;GDJ&w}Q1`MRr1|YNFuE)w)sc zc3vw3c%_{mhDCK|PlJnx(2j+yx+ah2FgFbIkc*=-$39zBjQP}%V_l0{TPKJ~-{$1t z8f}aM*OF%kwzPQ=%jbr_(5TF+i~j_*s-j4HAoEf&ajj!a?z565Jc#5=RYi_1UEiI? ziQbqtYU;Z;L{YefUc(gUmOk?f(ZN`uL@N#b{-`W^d0krPN87=P#n~$-c+RDN$ALZb za`+76DuN_4VvESK-90hq4ulb;Mbc!poI!6s=Pl~WJC&%aX%t+d4XOo8UCGml8_?63 zoVo5Sw7JsL<;WU4eLH4sLk$nv7vW|PR#yuGHWQx(tWY{1Y_1mDR<*|zTqUwP({L_; z@0$og4%Hz9aCn-Yv-m{^{Yr!L3z&fmZ(Eu~I@*9VC${Ve+-TSb5I4@Dx-!6rgpf5{ z8^F5;Y%{0ev@VJiU{Qu`=z0zY9zYIV)Bt^up)h1mg>lx@p`es)c*Gd9eQ>%whKA;Oc|A<#kZf4{3!1A?}n^7QcQ=zfthbi>d+8cF~NAjy3Yfy z0+R%D1`vSGk{VsJfh@J-Ncu+Rdl1v`jq97Z;o5U#fqJ+42s^t9 z3v9-+6MSiNNV8__0XFZEr36g_L_|(-M*h~umW_j*4U*DoPc#Ke2omti+inVD@C49O zn1n0}COVMGir@8s)1{j*w`798zj3ap+`4jR7+d6XjujDbyyDEZB#Vl zU~z4`o{>QlgL8+u{((3pc=VpZq8m14RCp#$s;~s4Pu2srH*7;|sbU^fV8J(Fp{!xh z0-KJr2Me^cY%MXFLyJwgMa__ArXC;~l}OwAPDttmg_OogUa-#du6I{?jDVAHU?i0) zq&0!c5@;GEsFMY5WJ$2jgMF6FO_*#&b|CPr4G)hS0yZi_z_O#l22izyNu2ds`h=>- zeoOCWpu%E4Z^nRZpBZ165>z=*r;M7$Ih+FtI}kp;C!HDs8Z2 zH{^)1(|FvlkVRnHxtO=Dt)s2%En6}qMI{hPeMsnZ(^M|@kRyv8H`Z~9e;_Uc5 z^)^_nO`<=a5@Q~{xrlx?v&1P?!J=I~R3mVPtXUfhK+v`|rJ#UwW7h^OP83@q>cg0_ z__zvbEzHA4d)d@gSSSfNI^%?=OkEwhzoUj@69pR<2*FuJr0_VOS@mU&!xn(|oJ*G# zPbW1K0xDHeM%#)V(dLYO=K7V-s>X_^G}coYt7v$77fg5qHuY3g+%GWzY5Iw9X8{6J z$2pH3UC_TF(`*7nE~iq7722yoJs!2B?X45GpwmdO5DpMXRFgTdJ2Ok#$t)OwSt4A0lV~Rr)Hj_Odq9Bx z@cxVJ)mrje8Z6@}o=S5Epk+cx@Bpd2#tRzZRfk zjij+ELO+T)Gv*i}5W;kI!Nx=-P+A}Q)Xo!fAE2SEnTmk2H+>9uhI(lBmbBMSaH*t& z!2q)Yj*Tl0A=fRY)1(1(i=$9cT3rf_D5^k2iZ~<8bcd?CiMEO*2=w#X+ScL6*pd3+ ziV3ik#3u2ayql|nc4{e+iV#K}?`;CQ6lE7>4-Z8Od!UHTm(ndj)O**mtL_{b=Gs>M zl%Z*8aWKxv)mo$R7E{xmsf2cp z#}HT!*uqXAN@6b1(BP0V<(Itb8EZA*q%+{6lmz`3=r>aJF-o%kXERa31jmIMlF z!qgLTOsOWJ7l^Tn2V5awt855hEMSFIBylyufncGU8zCBtgL$8nu1i2C#**dvb`krH zC9vTIYK*jm`=&FprX8RW0Wfu+IWRD1&eYQk z?&%YXoDq*W|87-46fZ3GthF_?*pZYI{6z)U*(GmTpdOem?Co6EQ8yVHe5~VqFB=o| z^I$Y8DLad;E=FNRJNDGE$fBpBaP`vAH60CRUO7alL*3mwSDHN%4PXo=K?670%tFY(XUdugH*|>8SRs@S2B;1lwnO(tSV~4?nMVkfysaP%tI!7&1 z-?oh{=6Y)yS~t$j>-r!pj~jiIIP1q-96*h&Mp~Lw6I`k2^b8x z!fx0lCraF4D_!iMEG5(uY#th?3gDc#E7cfWIG&XwbzZ9~po|l6?zsJfPwc5}ion{G z{$NbCL|J3YoDsfu+aNSphY-5s(GqxBF$e)@v_p-EbL+u!uq`HkV~s+fN1a>L08P}9 zh)Ppxtir2StOsgUk+uc!7mV|d=9O0|YlX))vm1|QVj7$0B|{AJG{E_^a2h~5CQ9x{ z2PetAwLJ>Ca0i1af!))kw~;>68VO+OFe$cqgVJ%p#^V+$kLRP(v9BL&4?<}KQfE|@h zO;5pwK-qi}|0&b2Og2^Y(RIuc_8B&CrwUG_LJ_i-#;wX@XhG=Z6ndYl;+K#z(F>Y#Q#i$~e3 zvslNNDV32?sRpp@T(DR__1X#pE3Gar1l&4}9J6~qoz$JA+xvJ-6@Jtq^c-C$&h)hKNS>W<6|*A712 zCi6`sfQsl<)Wk7TU5zyoh!r4aE#L!Z}0TeWGW=rjuLpubZ0=R7K#CWXgRha!XXZp@y-1B4)FkZ48v9 zHYO^BdRw%l@&U~oQQZ9~q4tCY!ME!h#nf2uZuVedN1)E!Q+0Hl+Fh!w?l72DAeV+gu*l9S2l1r z*ohJWk2D4Pbta_BwRWt1(#8?FM{JE_)JEJYw(MMV%qP=Lnq@(ajLF41kt5Ftq`q#3 zVh3-(b7JyhXTn4nz^AHpq9UZD%w;49|Q89qlU;%`LDx{&389sW*1|Xn-n*j(- z%aUY{h_WCSyx`olrbAWh)YVG{j}|cHpf?r*1VmvAEvq?=Pua(IGxw7x8`j2sH|1b% zOx!7z9Yz)$+;m%D)95>|Buql&pf;BC8V2o}5T#k}8^#&=#lW@*?fSU3&}1X)@KXtW zN)67BZ76}-RiK^I3GsCXd;?wV#%d5gi8*`RBLybFRK+)dEkxM|h8ALww(+iQNr4Zk zS%8!9cHUvba7KJCORSret63?VNOAN^W1v=3fwom-;woD^oF6-@fXqX7SE!VfE4z)s z!r_X^iW9U^5hv1y5VcxZV7nna?-UHMh?V9;qBq}|pvBS&ZZL<`y)gCX4#Nku1QfuQwOx~PR5txwfgm0lup9k=9iYWC z5J*!2W{*TBfGhx013Qf{goj|Bw6X0fN=Ni+7+ygFLd44+K|ky_GDAdOa8BpIvT1e} zOBzMpQ$tM;AsE#35Jh1>)3hmq2E)lHsId@k_mZ-qa0jbYFjCCXxFKkYGk@(!wgL6v zY<1#w(G^%v6X>Gv7x&)jV57#F09|8C$nAu(L~?u+d>Ai|EMjTh$O1mlnvN=#rg3A< z4cAUM6Wp?AxGX4ENxKQ4B%^|FM6Vc{cZoWDaIds;i2;?~#5D~_=b(U#oDnY?20Eo% zTAn%r6Njz(x!PKES}~@-1b$?xfJ%6TyF@zSV>QAjAt}+?v^mPi;8BRw-WWFIS`qee z#5@HDrRoUWBEo#`wMC*anhV}R8)skaj4&|{Og$`zx)!<82KFAj1f}0YMUjb032l6C7`{vkP=gJJWT$S|~`J!L!s=Iwm<%!nCNRaHDd-(l?- z0^1ef$x18L1P3sx)p>{;%Yf}BTpHz;8ri8#RKqGNlGG3YCnzd&YBHv3Dv-c6ICTJH zTR1RIJ-D9{zm$Y(T4meU_2h1OPw1(0B6Z=^i4EH$kE?8OIYRKLuCw;0X;_W6qf(dyNy3tXBb?IPHh?zLtqOH;M&57gP3RaPNHsCU1gT1Q z0;Ur3tkBjJ2)2Z)$tX)2E>o74>j4{CdxPxRxH2ELC+}wfVnCh0$psHUELApA3^d2N zN~#vII4_kzz~dTLJSVUK{k3z4;S&k4syxy;i%xUbpc9zpgi>L9%m!2XD#6|AhL1p^ zZh~Uk5P(=hYdl5_7U)DxcZMA4QoR}BU}$A5gnN@KdYC2$2?jx6EQyd8oC5*eWj1I# zGoqVlH$Vb&6XsuF2xQYfw5A)Atnq0wBDzTvbs#e7Y&lH8IU|23^Fos)l%1W_ z0TmIN5*7h%>5JA5%8)|OXEn61MAVg9c2A`Z6uO4(@5+>w4wStsY-@zzIEZGsoq@-rt;49r|t-%+! zlbN_~On!$?;O1;{MHMxoqKxz!&WR1-84|mR29AI#RhD~#vmw|_9(xSm32`n1plz)9|DK?FQjM-l-53N9VzSgwE4UZHR$kW+VwA;vUn6tZ^>P z?>N_L|T{DaKURHoF`JWV2v&%-BkI+_nk5-#x7J)W(H`4 z=?p;#NYNdPg_ zOu{e(vIS?v7OpX&<~S3;Ss|1D5?0Dqoc1f(4rRzScxf0}XIBYp^ya|sP4Dmo=opy1 z={(5y1hMF+WbE%C8Eei5Pqt=5`;_CxIydT90W99DQg||*uB(8scJ8=*uHaQ!&uq_? zHiU|zc9X?2xWYOnp1?+b$1`q6aj+iIavNFDb< z?r1Sf0bp(0I-szmBY{nJ9Gn-NYXJKmfN)B4Ag0XxJWFOnJKz|$-`G@|dn#7LoEt1i zy`{ky$|^hIqq4Cx%#6BVgWc0uX?-H~61=tm2ClTwrD{R7|r*icGIWvAKV<}=ppF=4{;+o*vGRJAJ)Z9&iW!%u%3P18|Z)df((jZdr zP}t<&^bV*?4GPw>!k9NWv1uS4J7t$iJNoc?T1Nur)w0Gp(B+&2v~JW&An)RgNCG2~ z{F;M4QbdG_x*E6GTJhfckw4s`jl&KNJ+z2 zo}N~7vkwS8aW=~GVNcF#b@f+w68rkG6XXsNn%j z<_^|(?V-*hxnt(+xXQh3K4YBF=%XiO>wB&MwhiQYQuhG|BNZTm}kXqkcwLuihn7>B$p} z#dY{{+@sLao1YI)?8Z9_O4S=%8NY9Ta} zLo>qXq-(^+C2P+6`Q0>LJujx2mE=+ZFCa924Tc*xTfBaM#{H2f{`O^g`a$H`@NCzi zdFS)HeREm6Rk4V*&WqKi^>}Ubo)%aMtBl+wLP$W+bIG{xE87q@$+1s$SL_O&{6v6+iPSA!+;Ao;Zv~Nl0S;m}sjx~~D+*%BgHgI+bT70e{rgFv3 zb2~DbZq=4-@g8?`e1}RTXoe{^)7ccnXEI%GE_ZeVJ5$bIR<+wE5fJvO(_*n?Q!+a= zfgqa{gDXci5yo0#e|{|vlH`_{vqH&Q3Z()G1+Mip8O>RA>u$oiWUd;cdwuyQ+XTnu+21Mrwo zu7ngD*k1d-Dr#?Q!m?$5;V&%Vyo?7D2x)4LyF)^>t~9`#X50*cz1SH5-5Q=sOknm@ zkB|wC6JJv5Mnt6GyUvYW*U3%K{4;v%Z`0iljjLue%5ljTc__#69Tq?T@6$)PiDy^+ z(IIAKlEHGLvLlcTaFw?W^M^GL=^e)VjrfcEI{$bd?{v+lrwfklVbUM4-hYA*{#-tv zFUb4%Z0j%gr`$}!Xc6u8dpKvM62M3i$OaqEl`8c(&r!K>p zRv*SAI~B!FsC(2*U>g{+ySi4FxJ`+E(_KenvC6&>1dcizAi93CiF?AD+qYen*67;J zVcU}~D-JMYZG}`59P3h|0cZ;11?P+iGJ&>QoCZYr!rS@2zU7*JzfC$)VlXi1rriOBa?E1V#e9DRf&_^JZ&F#->uI+N?^lv!*%o7JRJ9|ch=r!yGd$F(1r9#9Wxt-fr~oK7}Jyzg>n0|GXe;~Bu>7mZs9=6b|0KVtG*><&Xl6Qbf$5e_u}n-`*0^5TZht8YNV@J zntM^z zR2k3DJHO^fcsQS@cktO+&vJB6tv=Q&nu6e<(zf+bXt87izE?Y{03mUOa|cB`X_-B( zh#J?_X;rf_B}XS7o#q5B+aQ34(9tRoClLi_9xyezva%Lfpw}I>Re(gj32Gy&ab-Aj z-7-xnB~@ly?%=Iy>W`SsOqD|n;|1qt+|}TaW(VNG#GEwtBXkBExrN&i?ULO?IZn9M zK4@E_G}>Dt#L50s#n03R4A)hLSNK8QQ@l zjlh|4z5^Gh;=lv0b$%K$gv<+>pBNT9S=zl&kH%Jv^mGjk4koM}6V2aJIBOpU23r>(hSp`)OXehjUNfKQ&Ay2nrqUdSsetqM-u<4)^>}e99T= zAKj%G`b!cjWh~Yx*whsvFW6WMJ)=l8I@j*Z9`AY3Eu<^@QPwoJZg~I0rtj*5gAU8x z9#C(lA~G5_e3m?g^ojG1ywyV=Y@E_4!h_wt!zunbo%Wum7lnNHeCxBV}@KNSN z6KW+&ZDAmm){Do}W|C77;K=Ywfv_|jaK;N|pfZ2d(mqW=A zhD~?wl!aY#CqT;tO;masM73ii1wXR4i8TA1qcosGQcfup6e3=N5a$K?dXhS6H}7&Z zmqbC40K?H_xmB^9g{TMW{%K;YlBP}I(IzHPgNZ)!h-4M68k~>O(CX&f!l}>a6kcHx zGszmjGK-)SVCIf3WmX#`(B$qA(b$>M)u=7?XLXk>5wh9{u0YABStgXK%#88o{#U*I zA3yzK(q6B6BnC!U^W+Dg@A(3K?DK{Elza6xk8B;1(TCegSB0z-Vh&2Z(}|~txp;Q` z-eLKEO+LAA@b7qb(2w|TkrP18N1w?T`(6AzJ@?*q^}97}M~4u(Bt|nrUQ()y*!D>& zG$7}@hBOut1ot!Ir<8h_P!uo;;w*oylgrmOA_D3ZRLlCsWQGSzON(KkEf`I@mBdJ~A*DtR zTIK>i5i|7hFLnmJ5x`rEgVET$=1_R&oluM-mXfhRn^HJ>3X3ti&*F<#{dT#s-6;Qt z4}RUVXFOb4!cJ)Oj?#=8k`i$u*ls-2Xct~Qr#PSJf9_o#=*eLchX&wrCU5!GjYA$7 zT6;Tf#X78PJKEa8I5;FIq1Th90ed&oaV{AOV}r&C2my60BGU*(ih6YtyNuL?l@Pp9 zw048WN1M6LTU@nSpsH^YES5K%#2j|*u1*}+yw7#d%iLat^K#y%yzC5T@mw~BB~4qp z@Fb*0jkQg%*lojD_EnhUFG%N=3rcy0zSr59U5`+cx}Wxza#Ru)R-eaV$F%plY)i=n zXWkjAtsU7b*FZl3yCguY*Y|iSO`Ecl5^^m}Wx{Z)Z%zR9&68!_-8^0lJDSjWWy?qj zk>JccrVhV3Ej_p?ctKjrjq)J3$gVpzSLhUu>+!7Bbw2Qg@5xW^fgbam&F4^^#=Gv_ zI!@VBvwGbMTZOQ3a%wrU?)C&f>36xuSDkRazYuBUP&^pqdp(Q~x0f$G*;COWnJuA% zlp4eaDxxAH5mo1~b&fM~ZarMDqd3I2wJ~U>i&LrT)!U&WORYq)_LvV@y_$HkY+!p& zK8O3arS~2URtnO%F-T0VPy+Q0UA)SXeRiMyJM21o?{v9u>wCSftL4D*Fy3dtAJTcz zwogCo5j3hTNNY5U#Z3$uDuE#qEGfHMkwcu#JB}|n10dFjb=XV-^}(NW2SmBVrCw@S zO4|!Xg-s~7W3*|!_=)$II!RoF5nlIm3{`Cp4*F2VwoO>#1~!%Mhk1UmYH`F!t`@ibEO(9$|f1upMta7L;G8IRAqKLJk&2oKn>sX`O*VTY~^=-LM!5FDQp6qjPRx4+b&wFvEOk&-xxNEfRK=oM!Wv z5CE5uv8wfCnBvN$p`l*(xgGfsP{QXEd5bkZaqCTDZ2*1OIfA6f707{&A6?G{ z2tPwo0h?u^OUNU}s0C?*(m zaz+?VlV$)@A0tNqoib*_5>BKV_Vc~&MYbwDWa{}O+Z*5WMCVrSMu+uUOSwnxaC}B5 z)nKV;bDl=d5DsPgiA*!d>eomAA6-f z8QPq&O@&j3ry5|X&vz-bs&9(d<3X1GZDyjQMi)0Hd!J1mfI_G=0adlpx0(?u6ggB? zc!XHE`%K{6K`b@fHD&otkPNz3g=K;D_!p3`$3isLZERGYeeg z1?9ZPsz#Nv7PjT%BkoXnZOl>YZu9Yw3HW($;ViT9$K)^xIA}|*cZA=-CRehx995b1 zHmBM|sm-Go?JzvU+f;@iY&_8i{O$W_U%$68?(n{c%z&O@Lb^kwj;`B@#&GKt_vsmu zs7es2!qi#@_J$IN6Dv1_t={v0Fn1^p^hG0SVD0MTJ^hCdYvN2NZXZ_IT}IfwxQC#& zp-d;%POHaO^d*yVBo$&5s*V7azygdn=_&Wp zOVh)Bg1`B5ypoBw!uRC$=hfBprenEJT0#Sk(`Sm5XzxvE01ETE^)?ux-=Smi#J&7J+B&okva zv1?wrx;nR4_Wk3&=>`9Jl~NBSS5xM>RMR!A9h#9ev?N>>4 zJrHUkG4@3gX}zGXcu7}1#CF!O%J;YJ`u~Fel;7dV4|nhW!-c}EZH5o zTDOXbKIUQdb^X)(egcSJJTvGB9xjdrYlC&Uwm@GkVJhM9dDmJqU=q;YV5HKf%7>Y> zYY3*cq?=dW*@3XcFx?krY9}F))S7i)_1L`*x-<=fQ>)UL0>iRYS*p6Qh#`x5(gK1r z^26TGbiHW0f-0fLHK7XNpavfiF-vSbQd@1^q5{)e^tI!%q#1tD6PSvSqErcw2{Voe zeLzm<^!IoRBfz?Wfjv25sfThUhI(lZ)SKQ4w4|7rsQ6eWjU*d9>`Z_?9!DPHdTI(m ztX?~&wN6l5;Z$^pD8;3&E%p7WPu_5*-EF0vPS($i+DMW}!lWHXmO9eefgMVJe@+0r zzK2P}Vsd{Z**hWB#Yn5ZbtBXtst|;5Yz1rEOH9@zaNybj=gNP<=W|&*An2-jreQ+et%Z^u;o0AkFM|kB7cC7c*5uUY4?VG`=A^m5IDO@ zLIx2LP>^b;!c#J|;|1%!vP1CL-5?`W9RzkZ`pnVk)z|pq{y%tu_v1aiV*jLm`$=3s z>_2DB+^ zLmI~rqP7o?dG&>#mpAf@{Y|{f`SUS9`KiuRwP*AE;moo|MVleR>jRFcmt-L~5MgcY zXGWY$M{1knof)%<#22w-@?i}p!+8-W%jwWaV>}fNNJ#4tIJw2L>Ib%`_l|}}sZl6) z?aX+o@nJJ?0dmoGDMJ&F2}`zeEfXR|%pq2MxL8uqR7It=tLvvcj+md%dw69mB*3g( zE4T%6PTmFX49my;+uO*gJLmRpH$6h?{TZBPN1o$&-`^uiCTZU=PhQvBwH<&vdjWM@ z3QHkNyjB)CMqJLt8S(DNVg`)V`!qsYm1hk__dsU(m_d@buq=r~3N(*1qrK zJ&jSUc)rQJw!`-QgrD-``BMFXAK~P4T6b7}&#PH(SH26t5y@zQXg%NeZMT(U@3{W= zYJ3%bdVk_q;{!P!^-nyucm35lWj=ZT@9L-eaK3ck+}Sa2I+Vusz(f}?@FJcS4wM8h@=m`iANdtGY^R>c zLUMFEoQP@wp+}tPCP(^{9Msf4{;{7Ud;3RzX|H~*hw3!F`KFx{@P>cStIvGbyW2kK z(Cgrco3x9%1jM3(4r0;|oO1413|rR%?wpy^Sc)96U=r~L9ciW(qlj1<>oW;hPv#ZB zE}9yl4fu?#hny0p)_d06z;|rFhEhtQUbAN%sRB)RbRXNR;>R*HGC;b|nHN5`Z`!gX zCJr><9RyPDi_~)#y-?INaj|rcz#8pohh6gTiuCVN0_R#JHF%uRvh6Q0g4t>+oo<_vy_Ab+ZK5sOO+{E39&v6)LTISZw#EnTLfLVM5PhPLt+Bns{xBhA0b>DCFePx8;@u@j1yzLWwv|$_c%U% z@m%T1gZfxY@u&xc5%p`SdbfIaG#YCfH{S0PK0Zv|a_U}`F`s|@_~}1U4r;C-ka`=? zl0oXDg7&%|>)WoOx2{_p0@h?4&WMle3BpvPtGc1yTAw6T!j`fn9){X*ATCQ)xkjib zCUHXD*1@gJ+aZhanC3_rq_lxoXD~~Dvt>;EA|ZI~#3>W)m|t)lB971J}fXh)97HBgx0~jMNr( zF}Fida@Fn3BM@FnadZkPnpYE)HM;eRj(T)x0lgw~9c~m31?0#&!MR-ldbJos>bl-( zP{)|lR2}3}XT!nvet!^IsEo)IukvCa-uZKUh>+{SK);ZEy)QfC*qGDaoKRv4-`bg3 zBab0Ka$2Fubt+nOuo6fE0zyx`?k$kp3>e4?HZx2&WzybEv{Mg@cIr9sC|LOPL zKR!X&^HQPMqFcDAu{}GXSCOi`Ox2f>mhw1W*M>pc7uEIibS_U1?cNe2`^3+#EyVfcG4;`&+w=M3JacC}kB@A}QfjEr&lDjw%VsvOnvUF} zp<`!WcD=oPf|-nr$TVJ1&gI~E!1Vfbm(A}jTKkN(OY>HxEsTOHHM%ho*B?l?e>g~R zm;mnXdVc~&vdZ3wNlC*mnvih90W)bILIP(w5^wnyCvck8XCGJd)*D6{QD?p&F3xa z^liSI_H1t<%-gXKr@-`a!nDixc5K;%On?`6jrZ&Iz=9FP3;wdgS0W+^drfE}zzHYJ z3_w7@k*OHNj159eLEyG#iUWtnnwPu~Flr_QMkbx{I{h4M9x;?!}A z`IvmB!|jhdxQc@|dB^coGu!%*?;{4jc5L94ibbrO`Z%>X4ERiFY=b;LOaxil(c;9B zSW=N12SwneS_yy{<0(jnbGdBs9&2Yk6D+~G5EwgHU*F(rCxZBXIllPJ`?~GB5Eqg_ zBBg1alX-jRHc#-yfAV|JRsBcomP91<4iq{=b+DN1{D!{g&wlGBs~?bxNiZT4iOEn{s}%|OUeJ!hs#Hl*bx zI;C$$5icl*V}@j**V6aEUXnv=ov9r37sp+{TYxz&GV!Lr-nM}=bjL-ZoQS{;bgW2h zc=pluFPAH>&b@Q{(+0?kiDstox-p0sU!>TG=upU|T$oo2Pni(2$gMr0M#oE)3E(_- zB#l_s$yD92CXZO`K7ewDIGOYf0lfZdzU88O zXg!}VO-rg;j-=?Kw>y+BEe~3G`BBFRJ+fTKu~s&>Ebl(!w_m36tNyv|)p>-!@vr&A zapBYL&YR9^HpTO*&pT7Fkt+sOWfL^$PKU&a9sOozqfR8ER7&0R{T`i(FcpbLlRI$6 zup=+lDNK5q_b9;v$a$la!X|X9Al*@Hs$;56)^0|`5CmY1fsc;>5f}nn5s&wkNWSDL zYhhvG?5Lo1N9&a6u1X%@y53e-6^+I-tut;XuibH_RV|d)PBk{-+E(B0gZnYJ8od&q z-(BC~JsVVR*^Z~55@}uN;|=DPN`xtrkt z=0OP=*jO;vG@y?J&=Z|Z>KPtN1BWy@QOKeBHJ;OnJJnrnbBq_37VK0COeRN1F-S*( zG*3GR2QnBu{!x#9K{+or0y&aVRu+0!HVR}>sZ9pA(oDvrjvEdU+Lpc7KJr0$vnM+1 z2x++Z1}vuLx{;+Vn>1#6)xO`Mfsj5o5_s)7owyV4(h8#myMDj7B#s$D*y2q=$Ure}(v zv~4tfU=E|hjscpR>M5P4+hYt9AaO40m2-PrjYWd!X`)R^PNiJ26p0v^Z7;B$LUp(z zZMfWXl6v*WWU$F2{?osr^Thl2>E!jYdzPm$UsL88%Sny*y38_ZOYB^3dB$d4`1WIq z)`?dg3O=sJsRtvuwpDDGU&jK$xc!C((Ar`w~Jj=t5x7 z_;q!7Y5(tr6JW{a7vu+^2DQ&{s$D{jc?_4BqjjT<@7de>l7`K-bwl-`En1#h6CQ zxcmY+q_Q1GGf-nqxb zbfpEQtZbr_+*)W`7D^DJGcJl`YvD7BIi^MxO$7Hwzzi};)S%(T^V}=1FmZ;hpb!9N zfPl~j^fJe`-(8wvBjPymf^zIZ7yn4!GHYOPT`OVCt>S*N#gvtw% zpN>7_+YH7xW~S5lBzT)pFZytK8mJF{vXj^E_(baYhDpqb+ycv&FS}ksoc@0%UPny6 zo*((f*{3zrG~0X?914nFt7<4b9Rj-~+mYZ`BZmiNq0a#3Ps}Ura-Ohi+eE9zn}<_K zn2t!LUBTTU05@n9utOsS3wb;U!93=^)P&FHY&Yx$!`|$sw2)EaAureHI6l6Ufvjn_ zJZt9GpAKFA`)cnf)4J__tq6I<@A4Qi5^^mo(lOdE-yB&MU(4X$&voaE_UaGYry0TW zHGT3cxBc2b{f&pewdJi-<0zNKTKr~W^|w5q-drUVQfXv_B^2nZV{G_rn89Xy3xx{W3r0-`n+<4%ycPw}SFUmwD8WU&rS3)A)VWtC zF&KcEXze%#N$?7SCd?6tZM$2!37`O z)jb~$PX+N2fsYyD6JwXz!nISAwZ3Hxe6^bPlI_jns2IUC#0G6yPGi7r_&k%4|1CU zWQDVGgqm;+vCE`P&@)lfSw(vg_Hd|=Kx~R}tQwJk#sJ^)@pyssQ428iix`T)-qE?q zaszomIDezdz@sQzIvVn}9urGixo&2Hh?p?}^Tw777gUcZ#OPw7C`9MLJz*_W3rtb8 zc5z|Mb`g?siLRIgu!N2!ok1r|?wJ@`0W#|jSA`0A?>no#cfIWI`DIVz;r{tucyc^k z>JD|*E-BY9j$>Cc>WHafzw1*I#-1uYcqqu$wVgP`x`<-Dgf@6b@Dw4CFl1cU>^%sN zA9LzX+&Hh9-4SeWJvU_0taV#{FZZCUdkiZ1WkxGkz6eeN9=hQ z39A;S(Y*Lo4=UfO9D0eoiFkg`o?rUqJbZ+{1*_6GZ8fkcMx4yLr?-;It=0W}IfEON z>kKdYustQj73n@ZZj;S3eLooE^nkR%q#Q%r!@eKmi3nPKY=sb}uIH_FQ%F66mh_FW zbO>3ncR?cH6(14@$B=xX4@M}0bq_LkW+ zNSb2*=+5*`x8Geh@v}UpD$PP^dWLj6N8A65C_*PPie^4WhU2w&at!b=o&nQa2E4z! z5@+YrU@cn3Qh$A&DjgUiTf^)~7!=)MEn7C*_#7MCETe-C1(psZk+R-shXq^I- zCZICL`=V$W3L7r4*X&)mr!et>fBzqAe5gA-wC@z~W?*^D3x0WZo@Jpw&)Qr;^J(89 zqRbmm$K8NY11jv+N~E0;)4ySW8c0djD1qHC?JtV0>w96>GbqCnE)Bpst zu4;jSi`7d*HS@DzKY$0|04yMv<2rKWC^MF;|;gyQ9(W?W1W0bvY+bOPmw z2xo0;#8{yle28VVe@|{`IrEt<4Vravsc#>y<`c?=7GBq9sqX4 zX(|Fq;996SPZ0s!*{)}SF2Ki4*K4b!u>e+)_PR(}lx&S6UcXq!DD*Ph`&r`cmPv~| zRKw6$@v7~`lfo6z`7!r59+vyU8~eGxecMxg;9Jwj_x{^8K8efwzNg;r9@Ev%8#>-x zvW|#1148q%hkP`Y5M7W6iB9f@M8im2i!|1GFSS!DMFnKc-py?0C{Mx|CTUZHlN$oE zgfEuiNn6X*ZZ2^{1pTHfUm*({=#kdm>xsfjHc2@c1j=k zAk<(3Xk(p&Er4JVP#6P5NLaY5#3Dpx7vPXi5>79`H0hQX+{p_Bff3-eSjC)XK!9K> zY|>{Q#5NTu>y=tnjl?nRrC_Je|A`{;>mk?ktbbmzUQnju6V)=-<5@iz(g{}ALnZC zeBkBH2PIGaoZWc+&dv`kZ~S3{NOOuPlxxJY- zHZ$lvte@sTiLW)d@U3(6_;C>h={e+yLz+c_Rat-7xH^)DYB_P0b&U%-O|@i$h3pWz zKvCckO#~5Qe)Zx!IAlPJZ(j@nn(qlVfsz7;;sM zPo(RIX(9Cc=l%7n_xNMZ#>i#?ktOcv&z`#|nWOvn-}?^AO}2e8-*kFEUSM|y@tCK4 zh?jWv)0l60^q!iy@JsrAzxL$xZ0-0+8eZpD=ykjSkNcYCwS061B$;kF0=igAhD2ntZEn`}7O*BTSA?)NI>c_iudbi}x3h?3Tnx z6N@3uA?xc}n!=Gdp$RpoIO7g+QntL^w|mT2==VLn=PlmPm7aNdXUCmS?Y#Tl@-g=F z3xA+H;3ZZFIl9{A5u+telAh-9{PSDYKC1&|M(RYz zlW&d_&T2FhM;IDE*Fi^^8R&#!X#-0(B2`Id84~5jpB6y~LtyJ>Y7roax@JQqvX>;JopD z;Zdt1bLeux?pkTwc06!-;==`(30LN^e2|-?eUY}0FU;UeU*eZOYp?!-Pd;o=LR@~h z9kDu^mo{ztWX7*BUUjlkD7&&mPGlmo-i|G?(xaJV9v2u!Qd^;Nl(<8o8*DrVxn~b+ ztra+RQ#+fwbAr4DK}@rx(AogkfC4DD4w)dhH+YOps>SitgG9Acncm|_VrCT(%g}s- zPc(}n+~rE>&k;U9D7Fc@=-lct-?k?5<5HyZ1t zH+bvK8Sfvo_Yb@Y=)CE7;AKza;c!>J1mDlb$<=kY2l(NuZCy8<_EXjLP%PbZ5{~eX z80Cg7yowDtTZMpko^#X&MLcBS?kI6HPbaQxu~-}z!hycEO*Ue}A*dBE-?X8DVhFw@ z2tcvM64R+;Y%-U~va&VWYUk>GWqaNCO;~wQZM<091_`Fwp*htnU7wtU5EnbUw-ga+yzU8+k-oeGJ&hTm1 zvg_`P)9XBbJkh{A?}(d17|18f$6L-tSCOYZ&HB!>F8A4(FeZ8Eh0o!Al@5wiCZl~C z&K+^Y%!ui=N)}rY%Q%&cMr~^dHY2UEcEWA}!9t^W0GEz##4{7TfZ!8K$96-*6mG`F z+?|k1#u27)ON5{;k*OF0ATUC#mksJT5xDviqZ4I{XMB8FZYLHG%kk_{qjdA`+n;`} zSX3lVq^|VxK7V^zwXKvc(|KVAzx&{sc+3kv;W3%GB3Jet!IYa}lS3IS*=>Orh`lqR>5)PP9%q%+nw1X-gBT^cy}m0;YM2HBMfGxJ-($^?u6{=B0Q zrE8!^!Me5p)ucr_K%7a$E8O&2!=*>ac34ULy{|{ANgE9PleUNJi$K}6_qe>6cr(<) zaK(jh>s3E=ty^8a&9}R}X>WOVE^qR1KmC-)wxs;Sl;erb)d{drr8{LjH ztBtyTra!ZUn>dxQC6uqhQ0VFuaR4C@Sf~iXBOG+l9JWb&;D|Zyd$rN2w4g|gub&oT zT(~@WtEW{P&eOZ6s$tAHr9N1;VfR|w-jl5=3U%g~uY{iIZ8bWnjjJBj_rg~TS-};T zS1i}^G`z19xcT7Ap7fzVd_MUf`VW0sUY67Ra{k2Snja~5bEdsH(Z9T>KIEf3IqDft zKKCd8%(eEopQ6v{gC(wbLY(71xv7W^zw@MSe>>jpyB9$9toWBy%Fy3}H-ZK)0h zg&fE{A(8Iq_69hn0o>mkC?R5A4(y;to+%oGGBBtdEJ}1BJ^>CizG6N9hnFkv#=9=&I5wC2zqLNSf3x1$Gj+0b%Ol6P$hf}uy}jal zePnw=C_<}iUGdTkU()}f5B+QQQ$Cxp_5qFSz27Xn^GnvxAALiQeQn6#Tc`0UJ^yA- zV|(cxnU)UXrB51-+a1QE(*{$Bh)JT6s>+`A)1#e0lAGy=6ivEgEU7wU7^xSjAO~dV6BEswq|mXDLqX|nS{h)bTy4Sgd*>ug98pY65>1^2_t9~gn2KyK|2D8DYp4^ zlf^wZ@5y3wesqcO-+A1%HlqH+C0*(YtAk;@QEFM$l9_2#dpy3*LIHR|rymBi4-@7u z_Q{(Yf8bXy%SW-k%z3z_8o6$!k_sQVeTeFYc%?4rBD? zz9Rip&1VH1a_E9~Q?L~92e6k6(1}ZXMxY#+D+b2Q0iBFm%Mk)4v|^`vx{8&7G*Z0N zJmXLB5>?rC$i4)cHL{8Qe#Djq3h@1TFf^VQye$B)ej2X_u78KN9`_}^{k<#Rv>oxJ zo8|FDdxKwi^QHTfN>)ocRbDmVLoDV|>aWm_pJS4kVHQ zN%cNi_RP=6*|AR@c85`jxq97ZjTs~90UudTJUZkt=2tz4H~#rIpV@zkR_^4yw|BbKw`q_8nvmLE|`S!t^S}rnp$Z6be z^U+VzSY{J9ll9}dGfsQm&6oL~=+k_L5osyj)YZX_3=vC4hx22e-R@|6_KQay9g;D+ zL-AS7f8^%;NF&j3uLxn{w#5UnHSMn>iju1(!+D+nc|E7p_(AFMkaKF?<|7i$>?0!W zLW~YX=CKS;l#m?7^~A}TlBRbtUkcX8Fl^sZx3q@1P|R4JVe$@-pN#uIU6F}%Sy5chj>`9l4hxyDEQa_{hF?GE!bV(S*&qOD-nF zcpr{K;&jb{ITRS7SpvU97ag2fSHhk!)t` zw3pwz!E?g_$M+|PE!P&Hg+TxXEG(s}0xA$e1R`FjZRwx&=@9y38>@@Ax&A;-)y&3E6&@u!TgY z^!hF`_xR0T{^XV&bo2dh#mZK9 z9N)zC*T37v;z>WB(Ng880=!1iwSUEjSZ_FU}Dtvh9qOh)uE%4(H2XQmiw6|ztuKvC7u=~c$X^F zucQ9p1_Hv~#SBTOZvZzhO)rLn1Jismh$aG@98Suiq#`8b6r(Aw4GdtAGGbxv(R}No zj1T?#31!ye?PZ0mVaFub+#(?$PCmms_N|}ItRIGC8#*+#dsE8*|M{n>DS2|fvy#wOzZZTm~0vCDu4G(^JSfy?*6=jY~ zkLxq`cW`XMD3y;YgmbgKN8Z`)jc>W9&08Z^vBrs=@ezO1&FA4Ces<0W4BNhFN&7UN zJucbN;Z3Z_;LE4+_Fnq@Ku4}lfwjbyPNSskg|Ah$7OKpwvqg z+e;*M*choXwv?12Ck5Wxyoe+hC3G5vs&$bifu*NxXWHe&F=1+xY9@KhS%~!<wS) zd2tnl2ngRm5a3ZxlbO19y3A2DE%QD#lj{x^y$th&G-bthsE(rcFFbZ*ge;Y+*~rl( zY0kdSQAOsMyuyjG<@=o@6Qz*3vA6`h`f2PTz@^kpj<4QC{5#C?W!)NEFA-&Zvh{a) zy80!v*0?wDTcab3M+eu=HavLq))Hc5*QXItt|JH_xsfE((;PhknWwZta-yAmVR0iT z4>s3m1?M~fg&v_v5G!SUzK~#qf_4dxdx?BxmDDV!`m<~Di;h<|CG|Cl zXxwhTd4!;(`XsV3E27HAL+%}}4!y$dSAsW|FFw#;h!IOpWDMOXG^&kC$OQ_4cRSMI z#`|&(&+|ro@&CHdde(c~@WF|#gYQCCp}W{zUw+RJaq3^ zque$G5fP(f=`{K&FjXeP48(zh>qGGXRUe#G>aDQ~&tMpWS0yslUNjRCz(7zWC5Z+| zQIiBR6DkQ1;XM$6fFOY5;O@|dF)T|eZoVd_jYqC* zYGqkg25m)*BN)pl z8sq93qXvbbg^Sai&86!?W&LLSnB|D*cT_WsTk}o3cow@F*{XdZ<)MSu&2AKj5e8j&- zU#8!$v(F=ri}}7xyQrd07|T(|{Lqf=>FvK8pTc*&wBxAKQAyPA`DPy-zlN;~bZBW8 zoiGhVpe$)oQIHA~0B}ks=9C-5D{x9ssbO*tFk=7-GA%fWK&pY|F%n63D#KFAI6z5V zQpBE~cfErVc)*>*Rr`x<+!!IcYAVSzsVg(lY-K^2t97q$Qs|% zkNQ2QH}mKGzx%(K-@nzK>DeGI-BQmvkii8nh~!IkdArvy@L7iLx6nSSM!DJjv;K=1 zep_#ocrNf2xOk4q%{P=?MZn(sRe6zLk78f#CwkRub&hVJH|>yAfkFjLfJp@b?q+tx zsOY?Fq)?)&sR1aKoWdG`a;dUF?V+XuZWF3a956KV#I^2&G^j?(3-v~}8K2T}dVI4L zsw?(&%u9cCw`|P2c0x70!u1E`x@3-WGwySGIx*}IY5UbReyn9{&S^doxcWgVL}OVx zxh=62Nv30WJ=?>0d+w#MHmC1s1uW_;R0^5KEoEFp9!pls|M6JFXoJ_Pnm7hd=MnGb z&NCVFq|7NEjzRW1PRVOK)Q(yPV*FWlNjiQp;YEu|FS*b%5s@0*_B7F$c z8V{LQ*G{8|V5&wUfN*FJlMg!2J>Pbuo$21%?a|{HPNv2|T}N_bgrs$0n%)FHO`98| zLWpe7??)p>L?+bddz&RyBqg_Yq}n>0t}9&CGrjKSvePOjUM9;iio>NxCDzA?`0;*V z{zv!#^-HeMXG#u_Ugho>dYkh*zPQ(ay%W3Bh%u7NI$Y-XFH%sMAls+&!vRIWu7dWtQsoU3vj zpebb{KIn-iRcUNh33v0n^M#+V*K6YXCH^q#VwzUX51`kXsw8S(Zjz5DzNN!EJDc@G z$B{53Pkpi?&e*f!?1%MEJBg!yq`tBpjfpu@^r&{k>17kiT#vNr{E!IEx^2^tw;78Q zbv{P*QIs_w1O&*VJ7Shn<3v5%=!`3LPL$B0>zsC0_W_H;1mdv}Kqk4D(j3Q$r*1+f z*%C_E7^H1ug2ZNB2JH5X@f8@MEVgp3+wQu(FfQ<fc0bvuCxWq3 zkYEMBL#x$srEP=fwiW@Z`$?vOwn&5P;B?+~hH54>-6Ct)Wck!wkqup+B}T66M-kuY z6-1`m8c)VgttS_v&!TSbOQ8r%^R-Tz%$r;hjx|mOE(b4q8qZ{C}BA>WRiD&(3n#QJu4 z^p%ws+Nt=%jIZO=DW>kxqa^{4BqqUcHqpf*DJC_5od6LK#IvcZr$_|Vq?^&0wXLu} z)}a~+snmGpr?*Q^$Lm$OmTcnrjQ6&6Fgv<>8PD!-`LtgBBmIjDMdqtQwbCf#y)Ul* zM$h4QE^)l@H@0|$cS^-gmw?lOG9tQck9YEAudn^Bp5yQd!!X`v#lnGc z3i3mbwQUtizAhmK1}R~remuoGO;p*j`^joTIGXj;QF#QWPRK)Ms)ztq;20-o2847< z9Cg=q9bOd91A7-lwF80(s0Q8y-1$KYMp%_o(%OW&-AI4$s6lytM}}wqEbvV(5O0E;~Xg4S9nRIvq11K_=t9 zCVkAd=#ImyoJbfe7sZ4TLTpT$NU~+V=uF|d$Ic5$RBWwUO(~~kyUmF8+#$F`<<1SPsXSU=};C*Ff^b4omZ1o-_? zN^hG46$`4lm6BerN|qmSEZvJ@pyaPmdX_|QV?leR5DRPt=mQo z(UcjWiV7lqWOk{C!`yJjU#jSw)Wb`c=I!WLd*7A4yq+R-IJi-IapfaaP)SOB0EM z(u3|o6^;ZwC~;xJlQVD!okT~f)yf?X%E%^aIR=UY;|0SZfJZ*M2OCK->(YD(l9@rF zf|!gDukg+-Q>57;QF%$t_I6eotBu{L^295wB#y^2vL1KiqgOUtA$+AXFmwgrG+(6u z!6WHtGU}%J!(v|A!y9G7){%DcsjlBLwVbdCu8xi%6Y1!qjG{B%7O#2)t4$v2CaB2ZpT*v-@mnzRn;*bJzM>(kuFMAsckyqqKxrT&OhTh z?&5MUtJ=y9Mim9)Fy&x(w8S2hQYV+iwdB0ul48g|IG zH~Sl2c+g|0o?QCEqet6jIw_GwrFC0|+&OFABxiNfOr+AO=E3>?XxJyzrXF;NByM~! zRXuuZciqK-NQjIiQ68zGZ-{+~M4hj3W7a9y^r+@nEt-z%;@LzeWkM#ZG$?XVu61&} z-%sOnjOY4*2ac|-BUu*6$phFB0$vkgpe$_S&>V7WG)jS&An>B$7z8NbQJU>aPo5gW zb34@`QB-EQNCoaG)G_4lWU?=>w*4|A0UZ_kS+f`x_mpf&?jAQ6GnPyPKYPzpvt~T> z@8?kl(+eUw={g2N$TvDU$I6P=dhwThUt!~Zxfd6+WvfoIjEqN1*&3mdlu=R|Eg~|f zq#(I45U@xL1n~Tk6l`3ozZ59c=Md5W>937B;vCKcl8`5RBu^T_UE8i3DFpO8^in6p zUFr*Ihn@r4h8C9Z&NFF`bqZLx~0|>WUMK3DphEcL7_Yb(Fmv za!}`Z@7$5(`7lFBPBLMB#2sR?GpN}x$6Mg>+s{`($bjsQ?983%Bb5>?sSi{a$>*x1 z&W5FMMO_A4dFZVOsgRL*hb2|P$h(MbwAp9+u$^zPtH2Y-k9ou~Hkg(rL#XHXpsp~i`?roIh%PgN>kPpwmn zuN_{3Oh)#Ezm0y`Ja5g`OZ7!5i$r?#IEfAlH~8@dzAec1r9*WMFaeX;c@!N#IB5zq zBC=)_XT=-4br+W!lW?g=%2=~*-L#4}FdNLE86j?Xuu-|3L<-h<)Q-m|P7De9=nFpl zFs%~R$B%is3~D89LpvC?`VI@GHTv+}P>4J0xip~yHBnU&2L{J!VTiuMK%1m;@bRsv zMqu-x?0AK(MI_t0gsV&Ija8k>tY%Thsfck>H(6+8?Tk>ij1#lUs<476UA!RDlhO(r zc^q7P1E(MP3~v8XuBz8o8Si|=)${wuzBKc1urVSuWvWS`T4aHVq<3`A=NWM8B@;>t z+iV<|SO8|}LVtd+iky~dY13wHMwzuzSg=(Jo&=_hjMFq7nlWY6n@5J$q^G$8Yo~^q zluK^CgoU+dQ<}g=HJOzf&vH6ebByz@)zJN~k+*zeDNCFjc-Huu4>ta>PL3Blr4D)@ zedxLB`@W#p|1&3rk?t;D6*x9)e8 ztLxmN#*{4)KjwNt_&&o;Vu!*nV%z>xEMS)N9pgiL_<~e54b-*l2fOkr1WD>LxBNU?B zO;qQ<3FVwlU^eSr!((LYpi)g zBsZRXe24#wGq2t`X~x>~&H3()HoUgf9#vtNhc*Ew(3fgBSj-j+&3XnTf-MzTTp6KW z5foajNO*LtL`8b)y$t;m85b+3Ckd%tcWsmT*Q)3fl(^H|f7 zQ%`-v*jXUJG>ElIEIq&qK6untiR)E%pttEi<8Aq$bE-wSY>(gi`M$9u^p|4<;qca4 zJKC4kvV(5ydVH>5%E$lJB7V0!Z11{^J$1K(t2bBwUvH~^!71yZ`oNn}j6~>C29;rO zac5GL>aa{NPbmW;slGg<0$OINWDINoXb)Bg*DF;-o}Rc9@93luM*_(`rHM!#_@Q-prU&p6MjW@CRt6ag06FpvHCAX{j-1GQXm8~uhfHx_lt{dxY+Y7Wio{Q4cfH}D}83{oM z<`c3|KLLkVm=!q%1E?4tZ8a!Lu%ZyEf(Qf=_*H+h2T@S6eLB0~yi+4P=RKCy z?_lY0wK_R*(H?H7B4m}a*1{mo`)f!g)!~v-LJM3;wkpVxG^J{V zWknCp@%Ufh4h`h|yOD6#q zQGy} zd~sfxCX;#s1KdJS!C!1C?LO{$U`Kb?oawRT5yIukg99GmgL)qDIb(&9Vm_A+db)xd z%nRTKRtmT5pVLy6=p|QW!f^I3B}d1Fx1~SjBj>O8tz2Pg3XjWJ-unJi@8DP?OZ+`Y z((DyKHp?eU)#FcRPr*lq3FPrcQ7oNRul@yI-;MHLU_UV)YjOP=$C7QDNGdW9NG1vr ztWlNBq?VGZfp`stavZ$jEuZyq_^>;-t1&bbaLhW&%+u4PEw- zG(mMwGmt8>=Tqu^`Mymeq9d48$8nSCN1e$#bN-y+l*BMPB&gb`l7YJ?RfkqhsVQ3B zyfI=KjZQ4C8Odtv$ZFC;>g_UX1~7)2P(}X8$J!Rg54wGrdyAJf-3|(y<9?@y0F8`! z!Yjm1Km-9~)c83P15tES`0=xDtCtWX4AD*c%@HnNVr zyR$@|cbD+s7_S^-Nh2;Y;&{Z{SU>Rq-yP4o`6a7oNtw4)FPNljFi#KRZiQ_`Obh9_ z4l69H9@BQw*142-6s@C0W~7;y4a;3F=0=BRLLAI;Ez7euv~l4MB5?tNDG(c1=^Maf zrwZ%>pd4dU5YcH`Ae+plHiz9SLAfQ1gHBUZ}#D`LoEq-rA}L(tjp%G=ZFAfwWREn<1DYhU*X>i^~> zFELj$%hj&&?1?yhalm|{O#`N|Vgl0`-Fdg-Mjp2Z0}Sy9M=6K!ijHZk{-S2nG$m>t-Bgi&+#0MlC`g%~=4|c`{=1skhBT4p5}=P!`yA%!WRgBYA|df3k=}Wl0d{xf6Fz z;~kr|xeB7KEJq~O>2yey=(f!}$r|krtLXLb7zw2`^|@zy?_%bqWJ{iDX;<=a3>=QY zT?Z$tk|O?sNwUx_!2ZWD;^IG&=)R4mHorIPVH^}ycV!Wz+y(9KOcyg%w^_46G)>b- zz(Ak?&ZHv(TjO{ITMLCHI0k?ufKa(6sQa4DM#6dXkfsSh6$F8aL(R|*KIuc+!8*0R z%8*WwVL5*Ef207ps_>?o5zRbH@C+%a-2rZScc=5(X7BuVceNuZiDYV<-RiAwe!<)0 zmz`2$kL6?IqmphJn$NNjp~MwAn%20+E_X^6xX4qssUhQxMV6{W=t>v43I$ysY{${N z^UT7Lu1>tuIgE!`)>jHZ6L76=s>~i66SwDF|FCZoM)EkIp=Rb`;rSQG@ydd3Qg-zs zGj(#X97#<=mzu;%MoShl*|FIG+UdvpT>g=dP=C9>hrZ93EEvaHpBCv^LZ8&lw`v8! zxzjljTcn`~BsuOJSH)m59~CKfIu53S8MxL+MXGvNk!v)GDmJzgsz_83N*RX02PVY` zZyYg)I1VwIJw`O+kx}B{f>y6JtzLNYNkQNCAtrAFaJ;GAQBPD(+Pe{o!I=J%Qv3~1 zUijb-ejVhK<|HjyOnO?UiGs(G|Oo z>688{-|>-r?%vkdo_A07Cw>^54L->yJsW=Dr}dJo+!^!QTT!h&*tTaOQ0K1A)iLS^ z`mV2a4`8u46r;>*Td9|IFA1o`rPSKK{O^0&a* zUG^~~i_W!6q$HRz@ifJ(u_0oJ5h#Gg&}NOcWNgfGP8Sy$hhjav6BztOj6hy6Nuxfr zBOi|QflPPXrN_D5RXthN5ZqO6<>EbLp?Tq|b?KNgFfcFzBh*m4z!=#WKS_i!I$IB- zaBpq3opyErfh%hhA*lC5ytpMqZZ2=S7kF)3_RN}_iPQ%JGPE(|iY2y%A+BkdM8r52 zw}MD`**Kn&duw=?vpWjCxVAl-Wesa-N?~$3x9ihQSZ`c=Y2{+M118?O zcHB#;p3Ch7dRCc`FdSkX!G?--X!6Pj)~gFRe$WICwd3&)GMb4U7VC;!NSk%b?5P$ww%+cPEXRf zY)8z=sK-!g zKI9I|FAk6nT>_&MPJ$XB-Fj4z+q2=ju6^1s=!^FwJ$>z=I4j=z!UwXiuD5C(SGOGi!azM(zerl@a-{94H(hO=Sggy|yq<3p~MRHZGX zWWDNWuRQ^`iI8eTv`_-zF7dNqc6Fgn6-ba#U(qG&038bwNm*opeiM~mk(p^0LfGCm zCe<(^3Xi-#aGVFFo?R@xdFE}zxNdDfE}Zu4Av!6dmydWE|ld1CYIf&3Xc zZVm}i{)3O(5uVf*t=hD7pM3NmV+f96+bkiJRxu~mb&|Z5r&iD+5`XCciX>&TI zN;))c8DV1Qj4jj2ILPx4%GaL_CpoC{^7!;&->vif`^aQ6Z`;SW`W! zRPm`juYc&R`A-;ebukrGq3yr^{_5)4jB6wI4{GeDc)=tL{;_6-2cP}emx}+Vt9^G# z#Q*MupWTP$gI8QSwQ(V*aujFV5TF|Ni6zm52s;&#sW#qgi_m5bLhuT3FZ<3;++w#1 z4ZzJo)!Nx7vf3o&*q<~19z{uuM9xd1-C%;5jRjvfkDB z)oPV>SDPHQIJr{6hN9ZQx2TH|i%hS*@?CwDUx>4wt>43u_4O$IW}pPT`T2Gd)p5f)x*gooVrd%2i00hw57$4|ex(y)WeF@{w=thxt=H3yuE| z-tg$Gc*Ak>aX#%A`7C>|?3JlI!x9Z>*`+L*cu9G^FdxJ+Q~;@(g-boSk5EZ9%8^4U z2~)c5S893E_}*7E=je1EP~B~t>zhySUHOPO;7&-YveeVmk%AX&m|kKd!Vo9gY*iCi zeMCoxZJL`)!I_2E`q}j*|Mp6W7dt!}_roZmHd=cBsPO@ubK4P5PL*vlv3iU~y*q-H z{m9C`*D>1@NObS`OBJKujst&2ENjKhZt&5%4erl$&YG7P?h-Z!AC4ZK$G;+nNP$>3KCml68 zA}&2tc6FL{^&uzLjwYTWP?~^bC^(#8N3_;j7+De_lei#joq#l{YUK#EqZ?=Lk}ML! z#c-2)B?X`hF4~!%C(*Ehq<^2IN8iSjLwGwO;Kbsv4v{tpx^)0oix0u3#5P_Ceo_Vm zmk)ZWY6zOkAmjXfnNi&BqPsmX-s&y$vu;@lyaDTRS?08r{f$HT#j7{Q zk47R z3-YLx8OffjNBc2oi=9Nih8 z4}HKMEIn}%;nL*Y&$OA(+|`LfMLF+jp)DMULCRH#FQp57nwT~>cGQ_v7pf7ulsMn! z##WU(uI`&6>#UW5{le&kQaCNHf6zt9awJ$oc-K3T9Y_s8F;S1rdkT2(S|1!MK#CkO z*oYEo)oXhL`WZg!)DjUPcAPQeW4xO8*}OOB+!3r(48W@#gu$2T9*4d_Ko1T6i z-WUikcE+=n!uy=)-+P{S1qd{yqyV|(5y@NuGFR0Yw8P-ml1W8Z8amvYsa@Yb7RdsB z!{Mk=>FI1p9UDCGgCwfU4>*U@GS#@-$PLZFrpAKF5+h9_%aMoC0d$-( zaZjIZ9CDFV!OK>*57~2~Vm^4Ouy?xGV9#(%5CqHZ@snTaA?qL1dXI$Ksd|(2b;V-^s85X%Ek~H{I&nwVlqL3xA&d0EsKg znrPl3Xj0Wmkg58`>M&e8y|x)oZQm_EYNU?vFwkCPX^yBm7Ad9=+#s&h(-kWgm;^r@6(k_|uq|x^7HZSL@^C)gq3*mIPM}y*SM8QvccS%?O>Nn;`{+N68~T z_?huM8(D<_3G0ZUml%QFku*ZJMcp73B~`k-a5;qmNN`Gl z&-eiz-I3?Wj`3s*71V%CE$qP-^6kr^Mk8@v+j1!CxC@ zAjEn$Y~GNVqe&AO9cf-w;=31jwr_VEDzZi(aXJae(^!slhv-sqo|>riO2vAlkfqD9 zwjv^|3=9HNu%&Jr%aR8#xWQT+=nfp}9nsCcTQ|gZ%liJm{`2HhcaqjPLkD4N+O20R zT2iJM3-endxjzlSEYcUC^Bc#2_;YcwZ*UqMb zv?=m!f0>$%rFOI(3u`ZTyjiZU7-DDgShIJ=x+7Y{tp`%gNZfDrJ?e?yxFb`X#rs2h zDB<1iZHfg+aEsKnfNyLfBKI)f5KW3v*+I>C5z~a*asinnerM^;4*KeJ)ayz zx2Xp>N>Z0*_cVn@LaV-v6%f=>SOhJ#o{VTS+8#Q!Ca@V!jO!R_juYWj9SR!f#1ToE zda?t$E0Qv)`DjXJ^PwDRH zR9|`!|1lBoAGPUJ=@jnn52zTT4RoI1HD&hC{J0_O69Mv3KKbB}^Tsotwm2mcF(nLO zqXLm+OQTLrNkK{n8s_yRTo=`XOj?czbz?Z(lY<2>m^2e6dO%hvM$MFDBcs}7Tg{gp zb*_*u2_VTSz#Q84z*vp&hU^|d3ylh5Lle1bRl`=7Y;+$nb@>jrzsa`CO*sTkn@}*?Au`TF&xpim|EgxijV{z z)bu*Kz2Q%2A-Lu>_+aPc=Q66s7^@kGUX*!VZ<8aS9Xc6HMWiYC^q}n;rq2H3MuxUD z9d_3}Tzfh(5J0q^Orlal8N5?_gN_blzSlKuZlbhT_S@^EDWe#M@Y$%(vhNToInc^W$C6so-Ve{%ee~9LDdMdyRpYX@?Ieiar zPJDl12j1mPmUFrs`3#xT7`n5V_XB%@3%0Y>9<`xvnPL)0b&7sA(rBu=$TK>V3s2py zPUo;*@BIVtOO~E(VxSVB2(~w90hEPGER#S;4MrqGs)inK?qg((GQR6(2oflPpi zL0ixwaCKW_1q7YlY+762@c~Q_i{6*Xe6l_6>V9s?7EeC!l{PS&GM+Dx=1vOX=AFsn zagWCb@zW_3Sih(}oZpCd{mc-w+or)T4G$;Au(_L3PBzp-`wEtopgr4;oZaX*)+5)~ zD~~HPwE{Hjt?#xgiUn#(fjPG-=0V_Iz$J~*lx+Hx2&7KbV-&pU`{YoKu_~xYtZn7! z$qRFlu-Ny#b9s+DjtX#2PomS=DWnmp>jpEhIe3h_l7vC#it)s5rKK2sX57e8Gz%%E z;4qR?wl^qB7IPN?CM#CK)!G_p<4B)5Pz%y0;I`N>vy)H6>#}9NP4Ji8${8l$)d%b9 zHVz?7EP!~thH-BY5mm})dl6$pQ&6BO5jmn9C~BfsH>55`*3t~EmT7EBoKi;0;j||XH+_Xtk7$cp zlERTpo9#FM#h-p-d0(CTO& z`$EP9|J?uJ$9)%mpUPwV;{DKboOiy!89Y5q&Y>CmH*6o_rk?Fi_1d{NCZU!i%m{A~ z?QWXng15`4TV&Cah8A<9jwKPdraa2YvN+ej?!6|lwRc)A=*au^V#Fk^(5k0>v4ctE zNL<1oGg8yjNuwKe7CvcWg^?U%2p->;VA?$a0)29zW<%R zKXX zGb1I5qT(*r5Tol(*rg~c^DZWgVB;LkD{6J33JzOOTc=J6^^!Hf$Z>5&aEx@jIU-fg zWa1o@nzhutA<}2#e&2EuU=K=0TgC0vRl!eOBgOU|(XqsOeli1{4H)k2Y%HB@ik@dv z$D2p})Cx-QWoj3>)eQ@0d<@*_)u=Jca^y(sn4iuE?V?Lxxw}+!j9K93M?JtwC{UJ; zvvtAhc6;N!@?07$SQi6;?Gd&iD^$T5$3#F3bRHlBOv51oVoD7LU_nP8b4pSJ27W*;K%B{MWc!-jrt{ z&LE#`?{kKSg@4v59o0*-0F)H!kj8cGY6JVgJcwo87~T-|k&wJ;?kE}ch0>V3{=vN) zsjd#>1(V$PsI1VYvd7j4Wic$1#&s;092`74OHA55-8d+zvWw}Mj;1vsj`oT8puc?E ztgPDD1iQJi_jxtEb8{NMsS6e6skC;FjSMpm31uPxuDE*G_fD7iyuH~CmD({6zRcfF&A*DP*=0|KxPkXipzEEPaw%c80L$^LQE6FIj zF;OMlboK;>yE~;+iKyOdwjQ?OAfYMQBH^iV5x@=TmbxXc*3?IX2huK*X;NPfRN6*zaO3xdY$z3NO3x`M>o~GWc;mo#!Ga^h@w`9J_a1cNW)hce{PRs z?Z}vzfa%yVRb2Y}yz<=)Qo){ZR&W;eMeDp3SlaH{e%cAdyZ25(GkSH`JGE4|_nz;g zi}{?oVPmifoR?|~tJUa^2ne;)Ai%V($_h6Lz5>J$wM`k3wVp0<#s@FDjyOwS?d;9z zjI)y`5k$x9w3~JL{HI>(lq(HJN4CvU@hM*D^SDoTU|+hmfwQfIK#`qrmB%~mqo>!Z z_BTc$25JM-!(rTbsA8!drt_FR!7CM>j*zM%1@%RbAKLbryw8WeFK^TAu{gddxSfGEqi$#ThIhDJ7xxfA^p$hi{n}+6FR+8@%<1(gSKQI~j3s*1j(ef5doQVI zc7~AfTZq)EW*zgrS-taG-J}$B_JTm38F`pIz*Jr9UBDsYmQoiQdM>woy*^yKBZ^115#!LwTX$!p z0(8=g0=1_IS%_Pjfw`fnGo9(s4$_ZH2Gi7)CA(mR5w>~$bRr^gb-?rLdWVQ>x#-xd zq~OR6kIqQIut~cvzIPbph%c!9MkH7kYVgu`EHa(AKGxMjTN;Wi8IUrnRz+2TA{pe0 z#|RtlE^X%hA>Pc+o3^acnvX5gvoCErG6gV4DjLvg*{Ysjoo0Twbd|1{lx1<{O#bWe1uC3`y9*h_X6|syX zV5`c4cbo_j!j+|_DDNp##yCBZD~Divyu^oK!eDNL4F{zPEyRB1#xZ7@4mP*cZr3?w zW7FF)+w{mW^#j8Qd9Nj<9rMD~dPT62V*93V`Bpi`Z+!ueFl+7`H~kwqMpbon6%VVhTF9;&z2@m(l0|2s)g&VtdJ-R*I+SnK5*BQju37 zSgb=FSm$vpbT;b)&fKeqwy|%{5V#CEB1RB~g3go2WbL$Lga?WzupMiy>b5j>Po+ZC zfhSZx=r|4$Sy?;W^DssmTkCr^TQZFcL>>@)?qWusWock$(T*iH?F}!ItQBqRotuG~ zK%$5X`!ZLXE*AIGRAXBoYor1{4JVv!gRbVmH=}#4CMxSF5~{6xF$zuSE5*yFqc)AI zvLQl7W9Us(zVA^#US#7vkSA)K&C4VJi2$C6ncek@M1J6lj-j@GAWoy2y^Zx?Q7MSi zj%lVdB|P?pmKh|bmC)Z}eKo%>4%%C8t|Uf6KsD}OFv)ZVxMYEyLBX4@^swYFx3i!n zimt--(q}8I=Wa^@VAV)6O&7EfN)?qP+)c*XZgr|-jz9;ABO3|}LlCGAoUwzfrhtSY z0KQTZ<{=G0fOcKI*`RLbUCSVSii;!bw&d1s)YBQ>rMv~RN3}=n4uvs7r<1CgI#CT| zeGlroVyQ5e9O^lFKel(+Bz6|=CXp3Qx|%9@3EQ}w)>#ph2~(I_A>bR(NhK)2c~`11 zvaz4YnND1}+jV5ZXWg;Hws5y>*4w-m&$4sJ8TvxUrAuNlBY8==w-&8*uuQC8>&_=h zx?^?Ji0FN|E{W?lBP-9bJ*wKygx-&-R)p2Ayfu0J_USC&c(>HWpYl0#JTT3%;k=7N z)v?;I^nQq^^|<&09xQgAYPMn75L<^H)z~04v2m3jPN2;EbXwu@PD54VW$&ux4Jk4w zfZaPI^A0Iv=~H93Xxoz9c~UZDsKITnwj)@piC$B32UT=?B$cXhnRN_2=(VdWIAu!o4tJ@;SrOmq2X_<73pwDMT2Y+~ek-zSXYuG2Yt*~YOk z#B{`ge!Dr4*2}1msLl&%)nj$S3B32C+90I0-j@LsDG0WaiEv}zVz6)v5Z^*G6U?s;6WRko6|;03Wy=e7?Kn{i?CYp zTaN?N+Cy|sH=FhY2il(P9FCT>=0r-Gd=n|ai1LikUKSJW+VpC#6mg^l$V2C4C|&&v zCUIM{efH(hfpLd!2rnmNy(^eZ%q@HYFp1OpMaf1PY{Y?TsnBQnIjdV z$`k?c9woHSdh2q)S%tJ9iZ0a_0H>i3o9|1+lNKcjHZ{WGC1@!ms>-E7@@^S6!#f^& znnKA)FYw{zm3rSrjHhP@eN|UNkGoDLr?ZF2 zm_+IU!>!HomEWDxH!ANCP)-p>_!Ym+a}f#M z7g_ci+C_@?HrR>RD)eF3SPM?V36@;t8;@Ik40KVFMVVN{X(snzC9$ zx+a@X4F(2|vL8UWqmB!Ofym*w02f0g4IwS5&XF5b`+uCuASN%EWXlZb-isf^#n7=M z-Qi+I8d+7fe``dwv4|lJ4K5g5&@NKIIQ(uJki@}SLd}UH4nfirup(>#!5Y(f1C^DL zdukS7odBuv*4s+cOoXzlC;7AuQrfS_UaF=e$xRbIQc(KT*0ZW;M_D=ggtOEyWf&3F z`P125-5;e}s*QHz^NUN}!VzOQ+uY3vl&MSo(U|42sfK%H^(8IhnFcBiB3^L8IxI|` z=CO2X2mKHk@EyicUN1oE`Gk~sx-oV4e@3Bk@kv=$nKiMt%>^b= z7`AU!yXan`^dR!7RjJ%4?>c|iZKspSh>O{zx*Db<5oL$1#U738J5k06X<KuI^L&%=v(6;V`QAeME76B`gr1vEtMkQySl! z(rOcxi=(Ds;JURMYo%j?dyE+9LKBj9*91$`*&KRcY{>>QiC!G3vV^t$ww~YLvLnVY z%+B}M@eT-P@w0r%Ohd32OmgrvNcBo+HAbd5&sY?{aZipeJXOd7lXttnf7eX|iR4X# zq8n_a1dUYHFc8LsX8|@~ls^5Agcc`f#DgwT+U-`^0iTCW3(zJ+3+c$&;MDH)H7!EA zX|(Ejo{QDOPukwg)v5LJkvPU?0)kMe=E${KEIsBTQzLOb zax=G4pa(K_h;8caSMZ=^RRONVI+NAFn~mgJfogQPyOBsnM`1^|slW}4*?6QSn_>m4 z2nO^Cl)mr1qpzvdhL;+JUZ#E0UGL-0b0))XJ5_$IZG?&uKBMvyFe*wk zlRlnl(JXN^tI_+g`K;6En{S|X?l&e;oeFxV*8}O25y!Z)uy58<0Ua}Z&7{-~KZdC_ zA-p1q%Mn?M8OT#cs?pYFj=}JTHmo0&L^wv@6pqZ-=%_lxJ<_$_`JRW(TcmA=r*t`_ zs-1!77<+?#{P6R}Wna`QH@DwoxvbLwUI}c3xMZScJ9Yr$c+|sgnBCUFYP$zPJ$V__ z8sbEW6B|k;oN&%Juk2TypzcHP6t^TVG>?Oon4>WXC?ympKPT>xxL7JAM5w2qv~O)JtXdDhrI z`+`YAqNWtG4Oc#bpgb3ul+|&p3L^33_xi$j?IWwH%u->*tcxXOSdxHH0#zK(H8iyH zS|Kt;pr)!GIk*UbmecWgI%S;WJ!*p&@6?Jg@gr&{&?1XCd=8-x_%NwT{1g?zXgwSO z22gMuIHg^~s!|+oN|;zNR{R&wON}b+p`fA@sX=7CySbZaKb2feD`LKf&JDiis)%qn zz^`ua?j@hW{CKq#)H^*3FA!j`zn=oIE;?~Ae)`Q}NH%OZaaCoqBvq8Ls2QTvlWN@p zaJ^+;&N)re7_8Gx#)y{WSy7{9WG!-zMNoWTOk4RzrqmP~TuaV~w(?ZlJv0xDCCzvY zdYjDFfHlaCp{E?Fx>vC}S>}-RlErg|v&Jeub^@r{)|wg=4ev)x@w{$BxGv$D&ZVTW zbS{#Zg`5uvxie9wdua|?QYbB@QG1e7n2eRGWas!2Y1a2$-Sj7%*&>@ItS#lJA&-Xk z%9k~lT-8z*4eiR+WE_dJxlt=MrDEx+?@^;U22s+OfP^bo(fr2?)(2`CT(luH2QqoQr(8dX*HR%rwJjmLwV5WG02 z;6p#q+a?H&4OUpP0SOA!6%MeWUrkD!3NTt>s0ix-7~`y0$km`uVtwrVqDR(z$kbk3 z>xXu4@>?W4l2XHJxSCp8(W2_D=^&JfXzS?rd%Ts8dH?1cnL7U%mb=p0wrN)%b??f@ z34VM4UbkL)K2>^|?1<}}qf??5At5sy;9^@Xl-6!H$BrpsL5MPBl%#Z{xU_GoAe zQ$(C-7^{^>SplS~p10~edFDrm1<)RLM2oMeoyURSW)wWW)SM}SzR-9Z#QUV-V13zX zcprhXDerPdm(j@Cxlipn&I^?`#w)Tb?E1>XGH<<4)PycMEMLFx@sOd3Y$CB_O?DgH z5RaS_7@jmq(|WH%uumdv%8gbhS)zs!-2J9Ws%n-6qd?He6cjLU&d4w%&~Vd`GzHyf zHQ>sCLcInJP$EiOvG<}ElvT7psaP0rHn1A-nRS*TAib780ZLj3K%A@DUgNCu81)!4 zKC!wlQRG3TSPB3#mY@U&PI=^YW$I4jJ=}4^?M^P(FDA7_Y0_4!%>y#4tE*=-F*h?a zCBjP51xj|O@EtvG*r8e(sVtk^(~3FjlH;&|y41pXD z$ZQxSjg=Cb_#Bx9o+@r{`aFU`S`}1G74QDuK?lCmC>pQfo;+ycGft9CWrhe9YsH%N z%K4fe*9o+7TA_@FMsB3y11&j?fX}F`UqDk>bp*&7(7O>p{dN^7D+}~!@Rq6=MM>;! zq3V!8=f+NkE7*pH=h8jucOT`7Kjhqx;Vb{3Pe&Dl(Gn_RUEBdvK2x#ZvBs$3DN&=-1{*U+z8Fp{mDt0{Ax5bz#P z)*CCWYkPTUeG8@m9gkT|o2siyMNzp@!Hi8JJ~_49f`;KQd9ysizP~IST?1f~7!DSW zgX;$*7vTIbwjH`mfBS;(8xG`Wx*l$!YRs3xujd{c)>jGw^e2f*6g)+U94ZyEsE?_N z(eR1sgDU%GF*c~?webKfioQmUIzI+VJL)?nFb15((RbK3qomDoQYhO{=_+U~t>D8H z4**4I4ZxU)RD8jy$W{wz7->sVXc)=DJm48Ifn2_b^@x-^IxfAZr@H<1wlWnS5YoT* zNt2`n?^y>d35NK*S0P3}&q$o}$*9O!!zdCYH()I|s`ljdpn+*<_%RD;Wu;)@3UEzm z15K$OD@a$wtF_kxLA(v>fgYl+@A~8rj7?zThAuh>3k!H4G1IPG zOU@J76e?k2v;q$(JOwwSAVc z&(FuqEAdD9y|HDauRyMXrIzR3&)_>=K_?~iS|<+XNow@Lyd3nIc}s(%8*M-0BM0dlO?OQg{=Xu z3O`!Rp($0iLB&vaY3V24waGD)8He59H;8P}k`g(nVCynFK~10a^Jh-W+-D(5+?7>? zgEG&y2M)_M*ZnPSw3MTx;bF?j0lCcX)348NNXL?m6*GpJZ|u_?^%?yAzG-$g<)$M_ z?ci$~DPfW-49&3FQ_X#%1g+eROyM@>e|&kVGbl7Vipf}46}*$Q@-V8<9)xnP30*b_ zR%~dz?J*fy@rsNrco^Yp-&6r`m;%xZR3mCaW-Wvg)+l`&sfM#fB+XdMj2eKI;~qdQ zG1XaDV#bA*UbJA@amC-O`HwW|!A4XZK&A>a8B;o9?Cviqj0_9?A@jWRBeQ3Z zd$je}f3|V0}q}wF+2)arI$sqcUK04i#NcJ}x>83qm$osF*Ia8$T7ZSQ`7%s4ZCs z#1!C(R0B2Vmd^1_=kdMo+edosgAES`^Q8f<32pTO_y~4xWDR8HMm{Mmwa!OK5=5%v zY~PpebfZcQN&z-OEtlkBH5T^1u9}ErZS$7gNcpG*s@6KYp+HTq1%$l8iXcG1TSpHF zK0+*p0_f9##gG}dPynp89?qH}=Yf^S`(=4mrzq2kOh^=#MP7LdCBY>M!ZUJK)>akcCdQ!OzoFD6|H89HfTokLqWa0~O z@G8k`8LBc3If^C>65LbQtnaLk_TsBs^K01}D38foHPs|`@%8CefysuCO)z~agp zmuI!74Ymrd@t`?WQwza5C;%1;mZNblDDRco7WYV^QD)YZZxThsa^BLVOQ`~*OOnwf z8FdQlSFAW~2Ql3LwGZOaU^*NJ{39@uLk}7@iw5C@sFbDdJ__DP3aUg6%hgdusp7TF zR*y8Ci@k=niV#Qwl*%K){(9tSuhtT34>$shp>;V(Xlx@;H$mIUsBcloX`BU0OAdG} z>=nFnh{wkO_}IeRC@HJHm_?I;yXLGkAhJMIag~X3xIt$&Ut$9~w+c7(pwZHqcIV>* z*`74X40lK^wqaZQVv!xCb2lLe1xrzrXd#HYs<_xry3(ClmJ-MU?^uhBkj7F@I|9lj zd26ANXrlq-qoOlIHEgQ@j_H^&Z4YP=QQHsBTc^>sh7e4+Jj?qKWwV@*N}Ivq%+8#{$1QF=a}% zthe;>k{@!1$oc`f%(M!@NdPW?{Na6PPeBv?8|wsTic@SH9mNC`CI_oMyy!m}i42N~ za+0RXWZCNm3>;tpXbo-PwK4#;Uy=r2*%o{)WPVD{$hzDu;+@BifP6{=X$_!>tk9xj z13>P4gmPpZpkcHEV6=7CS(V%BClyzbEVK!Ej$j$Fte}P^Hzh-okmPew>_?Q$^qrH~ zrS;EV-L2R4GO)NDOn7*3_yOpQ%kWr%ufDZ0bin*jU2SYB(+F?k7NKLShl(fHFO40P zTOuc=4>95!C_qPhxh8l z)|BLVGt!81SS`t=g7tkC3eH(r1*~k4p_xEg7q5x)G72+=bL*dw1=KJUD|k=d5=5#% z1(AQ(vwIeM-28fZEgQze0Sp|lhlk>J#-YOL`W1@^ zXc35Qk_`JICeR##hlQa;-NBk6lAsL~vdZh!YUP_|sRap8Sns#G31BcxP+)SfZ!)|P&zEbkCE9O5 zjuf7$G*efe*c#L)P1089343-GqL3Ht`>NZWu;aeBHP8P8pbU8-0MxF~a*0 z0^Sh_eQ8)|Jq{p1i3f1wm`)I(pc;q(i-xw&#$HvPf2S8uE#4}bQ2K)A{<7ZWw+CND zV*O3a$!)x68B5O)b1W|KKmghnO!vL5@zu`TV_(4ZH0!100g@a!0N|-Dl(l!XmEEAvQtlL1yjJC+cVic&hMu~@qRmyLv+tbzcFlwzHbE;tzA0uf(0k-a-${rEQnjBaA%2^kz^L2^! z34j)78M`vDjSpTeBP^vh8SJl8h*U$D9V~PiIR|UBRq)#46mTpoYo^jy8IfUecnco9 zvZCM_$pox*ip2s>X7o51Xhjiuz*j(~oM$Pg;jJ%MT?zhJVc3~+zfn4gEz?{g6*vI~ z)hZj<@Zi30#^-zZfp{ZhU;CrG_|~&hv96cNWUJ4(_O<=+PxengUT3$QnVyXgz;=|n zgqx6S30J&W=^h-37PGESbMCwlTW#eHd|R?lMT*E#q5!EVAcsT}Ha}*KY9fa?sWxDs z0W_?H(gtV=2yRjEQvz6VHMy%4!eZ&!s~@w_H$V}rHgT>B5BS7+3!}$O;(Am>0XOIB z($cpLNFSi>b0<&m{pAY{E!Nj4fQsu^C&>v>+%Zd76oRVkf^1nQUg7%Yj~Bdsy^M8< zIU3o@$@W&BGzq~!0N1%Q8>oA-<<%Y?|MdFW@tS!n=AdWTY=~lprZ@6zf#Za4gzsOm zor7dy9yg;AGrk3obKIfq8^EwHz{6-**qR2Ev#wmVwTK#F%L(}4#?Cgjz|*tfbP`ah z8rq7SX#lnv2^J~UQG*M))5JLdIx51!Ibh5>F1cyc?rc+wh!j<2h%d48v0xqS%>kmA zeyh*+Qc;C!0qi$w{1vCo^P zv_!LtA>{*!S>cofS_2J@90>s6QMD)oC_^jT)Hn}gXGdpgBU*^JZ9ag~aKV-7Nrjmm7)Ami?Hd~C)+`6v(r zZ{Y5Cc3e5R?&EHc6!Rs{M2ZP1Koy{ZbOjX(Rr>jN$Ms+9dcEsS&fQxrHF%u5F=5wF;?)kOXbcVE;&z@O9 zY>)xp)bjvAFY;EZ)%Luq)RXB!`y+(SxDNnNd4)2d0aeMzNW99`>ReLQ8JCwYpQ$v0E;^pW zmH!^dm5UuEl+pm8VYF!>I&snNp z1yj=GWx4_ch7qR17#OAQB~ZSM*w%{@0Z!RC(PiwfgECmAkh<{A*mxZH88E*Dmbq=p7>oOKolp z0KA5Q1)2)wy3?irnTe_%UrbK zlxZ{v5&NMC3g+%e#%*GK4v})>rEqLQi)eV4BU0q~eZ<9#U$xPDGBPA1<0CO53@aJs zw16}L_5AP?oF8)2fjbDlITxPXuq8oMzSWKX4n2W`=dgyzAC=a9B zgalO-&QDxuEu(3JmK9Yj*=fMKevq<;#`b#??|if3fRP0)q$PM))E?(yorg7WWoW3_ z0VouL9H#pvrwp=ciWW*3{!#AunzF>1^Cz%;e26C!OIZaTT+*U=7CYh z1XHE5UMeK89#T+F@xagaCbJhf-y)l4wQHRV!*(z~=@Nnoc=a$|2-@rP@sQ8+tNG3A zs8SkLrHxU++q;evg{k#^=_B04OgX3m6kHXF@}>~^oP{$*xH6!^_6TnsfTbAKAczH9 z){edUC5r=WBM82Qku514&7_0^yspFKl&(Pou%$SL=E$L;70$Zenp5&x6{x}{@LL=8 zQ6B}u3Lbd(Da`GB^nnXO4&cB(0<_CQ%$(NuAG$mJVt!fI2{S@b?lqJXM40M#MWI2) zLUetj(W`rRi|z3nnF?okQHDIqAT$OKYXB5{A8Lg$z)U9wAj;ktx43+??fO(23YSt$ zX~jaI1ac#xGKMKIZd7EOkq=tMId96nN&~j2j8rR_9Hq7t>T!`wDAtaul{C*-@oX24 znjdi(>m4x&pt4dnLS)=)d^AE}-CD|4+ne7V_Vhs)vb7KZ zr63SkK|5V$#p+jXeT^%^|FjvM=yDTk_@IJ#@^l9&cz84&ng%)Jt5B%t69cCeY!xGk z+6Y+}82bjGvOr5alG+u4mdFY=IO?jTPnfEDOFdl#dNr0YAm?K{UXCJT>(#NQ@*c?f z#49qn^O!@{C^-t8lY#bN46pmjoBu@cdn|&xJoy-}7Rmu4sGIhqHlHXXs&y(@W}8WQ zn5&g zLak1Ec3Ss(t4Xx6&`v4mY|aBfBPuGNz^P?*9Wn!vg~h0dB4)`Lo?g-@uiP_H zLxjYSj+T-_a$;q>sJwqawM{P@+Tl;S1i<4%9)5nO&mhT?OwY;qRI4yi@=cPa)>0-Y zi`A5k13PM)&O0~{3tesIt=GyWXyo9GHnuLS?OyFHP2Z1vusBbKK;4X?@d0eJ5_-x+ zobBPA1d1G;Otn>9Lj$Td4M0~TXFX!;6%-;hZOMe|=_PdvpdmAzk`4f+5;;m_QtfgM zszfp|8?jxvTfsp%u$thkZ_&5>VYi{r{O|@UTLK{71rVPC(AlejcAw6#}surf>=@_t%fXCO83LZZaT@V_fKv|d* z_Cgy(vcA)*3@8Jy5PQH?HQ>OJQ+3peM%y@kKkIKNgE^ZHd#u-&+F$>vf28A^kq+LR zu)lN_0RCz;T^qrn!w-T15S&BseXPa-eVpy%b<-`_+{rREEW*73zynQJh6g-)0ZG6r zZ;dlKB+mBgsdY9Kp=2Vqaai)uc&ChA?yMlvv!Z^4ZIChe#+KqHfK!(P7S%EmSI~WE zdbhF$12iox#$jIO=28XLR>Fuka{Ji!VV}PI*(-@UbltBVjMNsb|%XyDeifQXCK#QoOns}J9?WCf1-Xj)ALoE(! zU;|gjC_9W<DwJ(FF7(?T3n&j8dy_*GE(dpSYK__zwQv;a zKkXHf(Z*9jX>@Bjh|-yvb{O`!(CTJ^CzU#*r*Jc5vUm?lK*Vq`HG_35kwQ!%v(=n} zLR>`|NvsTr!YJjq=#z0k8^np%s^$e!&{qAX!cMo@u-i@?jmP%gwu3;fKo2aXTBI*w zniB{}5B0FXsEL~zfC79TP=NNz+rAHL#Gv+OJIH7mxHDN1YUMw zJJ_o2tVe=!MaTmOJj(I&vWZ|H01)g4zFvSm`cr!bKH;5D+~YkP8`Ue8QTmxmv#P5` zp;3@PBZhUk1fy`OY@E{Ubqc8qd~ozzM*Us@TJlDeRPZim?Aj^goTjZ9L*tQpI;K>B zF_VMHR(6RqT1Ac}`c5tgV*SMWT2HKvRx(1&jVkO^Uk6NIFMHyPdsgq?!TK@X{xCj` z==!+8rNO%Eat){#ftH5D4m%}^abj(p5JQZj8(J$=#*pZ`1f~jAMnePIScIH*geCY= z#{`e_WE8ctY_t$^w+&)zZP7e5u@tBa=dA@!OliZA@hCR|7dPNGP^j87Zh@wOa;}_| zPFTY{dX{*k%4UadZ-;*rFmE~_i{#~?BFk>ES0_=!SMZbqh-~G)TFrU@P*qrx9ELRd zY`&W0tAK4C&IiRel*&YaQW1qbfQOM?b+*I{IQDJ{!Ircxh)Do6a?SzJRcoU>G!WaZ z#`>tSEa5I@WhiAzn^FLaWZGTZMP-2)TNLZpj3q~g25DHU8yiy@b2B;y*f8KLh2K6pFAQ@icTVUbV0TFL*|j+KZ|NKA^M1568mOcb z@9$eKH7>dw#A}7J=}DbD0yz8ubUyene!k>t>WSwX`wJ;yWF!@Mp=1?BYnic!_TdWi z^)SIAX~J~8H-~NoOTk;E01%<8d0R&lW2!dotkKHU-c6hx$u`dV5#x5FPp(t&?sDgA zD!h?^Jh*KfwO}XCW@;tUj-86V0+5urR8#dlpkcI!Pn^H=F-th;Avv>f*d_Vu zr}&bmZ@YS)hB@X;bqWgBfmo>GY`l|Mh1|ZsD+}gvF2S#{>7ZB*_Rx>SLi_*f8^dcZ z%;#H;l5#cflav$^tsMy2Tm$e)&Q;5RaW-E!a6^r0=e+2+b--AKDTU@)X+C zqJd2~piczzrWw$9!YQE7F+;xO92#RjS1s#Yt>{cOF&OsH$iaa|TI*_pZyjScpryrb zXiiT7wq5YSd#o!1KKS53wXL0H-1Z9RfyNlTNu0GsU9fqdYpT4j0S#aKW<>wt0X+QyGb4eMGQ zA$Jz*$eG|BP+4_&0Z^fKUeU-SF^xKM04x$fH5{p7jYdw%CJG=LV=aOX+~}fF=2-pm zA(we)8`RMDR;r)`9tZ#jX+sO0DX$Vvm$L}IdHNv3qIU_)=> zou$Xb0oIOv1LPx1>sUBuy3Gc;(`B$Y6=*HqIh37N6%PfdYEi*M13sVA&L;V3TTVC% z%uE%{&HRbrOE{3PpT=e$2w730DA5 zxG}FRqOrzM10F*KQD>b`DWTl}>q(^?M~!drjHeJG9fM4QN18TBEv>T-l}aaxX~xP-Fn0*=&-^ z2+(h!;PXzQev>@!3KiY@2lInTsmx^86|l}ChDbd3*Z6^xgsGTDqnZE>D+Lsl%awJ_ zMyR3;!>VdomL5lg3tCc2=7U9;3N1LGh8_!xAZjVddTN`|ibLTHlv2Y{RY7I}S0r%7 zJRDFTpPa;<^YOjI7J&g8i{fe!oKEl^ti}P{gopB*J3KDe>t-TdTFR}niBkdwMllAB zF{4dv;hCf%fkH!jTY&W*(?CTDlYp-ja99M?j|eMn0w4e_h>C*}D~kv;eF1o{P(_>o z(B8wV#MzpfHi(t3QUf_qShw1JIHi6R00YEvzvQilo5E)qCSE`ug#y8$hYJsZz#Tx4|hS=1#Gk|LL7HZS6fY#*!wg61kSOCa5FhxK$QZ!5SJtd$BK6n&h17EU=9uT2NTa$++ z`eLoNGTH{9t}JSUwWBOJ4Yuf}F>UHqGbxC`RF+W=O|Ewj8SR{Mxw6-!^;>Dze<#-ug$vT-;~SG$Zo?cCb1dctXBovPr2t(pzKSsmz{gtW44UwX zGMYP?^irTXZSd-(7CZ{Q8gO1A^j&C4RUpnYju2j{3x|q&0w@kaTR;J}*{}eRXyfzH zsG=YZ0%$2j3evJ+zmp!XDaH%Kbbu}aeE?7Tl^_N(m3TWNLk@S*)1!6xL>ZM-VPVFs zM-y5h29TIukpPtRGlF+mU$sOL!npGEwV@gVty@q5UO`-+Ug%A%Xeq5ixhF0coO5WH zJ_9%6qxCqxKx&W_wW``@?>QM*9Q7=zVn6&zjQQ{ba`+}Jl36WMs78(gnF(1!WXrMy zK!%EAO=|$7wF0aIw8|Of6XRn--&q*-r*@;-1~#-`IUAt~t&?g4ke8DF}ri%419#pB~3_zUTl4 zjp2IiV>Dr%j+@9^M%Ky1Z`6&nH7^4(&&;YE< zHJvp%Z)=FHcl}nUDhdeJO+i4hfF}T+x&&%Bq32TbcJkW2( z93hN>QeNi(50A1d7JRdYYGFNks|ckHu5Mi$eBH}OeX_j46Fh~6fcT!Zxr$>lajtI^ z^xLYY6qSjicGmRe3>tukhk`>>SIc^=ZVKqBks;^3$2v|4pdWWFF&%e+HsMLfy2Py; z97Tx)Kr5JL6)Fah0A;5QU}L8Z)LTNafDQ$1!$l0)AY6%Xp zIBbdbbKb%LRX06o`-~lf$26eo4NO-0#!Ozem{hvzx&*?Es*E@Z!Jq)0a6-8nlbX@+ zh&7tilyW(E18reQ5d%2HI>kCmrIf*sX`NMic4MOAS|FeRl{S4w9>h(sVd|S4YZ0Rg zuP~+TiAN(J&@7NdHfcsn$Y5R1*M8#HPP3?CRi4;%g|GhEoLyqRsVnWqH}SK**M+2u zHG~B6gn+1uCXyJ|7izf#4l$C_8L6aH(J@M?t7=Dhun4{(VC!kCDtTsmcvaDwRaTr` z8sqz}cJRZliNw1-)_5MH6ox)tf3N)oU&4ZUP>uI+sIfOTjyG_BPLox>Z+g(xl^oA;zO9w$Kn-j zZAH~i8}Q?hgNlj@O=lZ`syjetOU5Q+)XQc?Gcmf4C3>fER-xI0p8I@5c+$8t3!Wus zm*8bweK-bLNCK4xPngn}*BC~U@7F*X^_o^To8qZzuTtTsXt0F}!BfH*rRnzweVh$m z8l@TonxmyCR{RpInaFL)710+dp}6z3ZB$vPT21;2)f&rIve7VkV14b)q4HLaImRjvWlVY8IbqS%*4N;&Hi_{8NRQ>ydSdCE9j`)tBQmpC&5L;(Ap z;W`ZqP7yfzcU<7_--kvHK-p{SjLc{hVIy0!ITu?k$#KCp^a;YqQs<%hck^aUKBL67N#gmO>NNNZHTkS|vWzs@ilrF?4*Qlenib)<2RR%PoYpHB_z6Ol0p(UP|BS(N`XYE zaYQ+2KNyRQ#a-h_<|2r$ z<%@#2GfKJRbIg$FTFE60)m)c&2a~z}yJGGsu6BwWFpE&_LWkOQp-e`Shf)e;DvptW zVeKtow9%?uX9U*S-lPo@yaNlAV08m4TG9q`yko+Kb=Es-2UzU^tpEiISd>RT*wrZu zY?+Srml9CI7O2<2700h!yRrQ?IyV|^zDqeRR6$6IjBJK%(IqmVe{fP^kK66aQ-n8= zG8}oyD}|c|%eskCo6c>q8F8w6aVqTRFBvN$qhpJ=Y$VhC8>MrK(uz>Q9l7dB_kOw~pQkGj2dSN@ zdz`S?`$-M)B+iNtm_Ru=gk@0|1TecydDvmU!8_lYTO3sepN#)K2XIm&d!{|L6?8!Ve>S9cL z1)~rZd~D%k*anohq^{P`gaRshnkl%+Ta!b!2xAGO4Q6OvB4pZ@i#0kb2A@Sl9GNa? z?NnBXHEPJAw+sMQE0efs<=`xlWT_k$7py=VN{WD5N3N)c;PEaGIC4$bt~6Y*A~W;p$Kl;Z?xHU$;@yv8}B3NF=5@}e%mErk&J>bz!=-jueHn_fOU0Az*{Xc!C6W~VVYOAVQK*}h+J8( z^CKx!yJ4tYb;c<@Ze>Q33@G+W%H6ka9jXEzvg}HHu9_l7y6pi$C(99<&}Boi+=X{1LC%>h{q zA2#HHd@@g^D9>rE#dSyIf#r2y2VsZ4HuW0~Q z8n&H=PV#`#h^j(ORTUGA&-a>biHlq>MiLA3yZ$GYbNvA6STrD0gOx%7QY4JRqiv1@ zL<*wle6L?4L4x|Q06AMtRHFtcPmLBzus!wOo!FSHhL%>S$ofH;GL_&b4q2pR3k|-O zMWLLwQafLx4wX2b=#=&{gx)C2bQR?SsT|#3SKjz#g#|auGU>rXvZVohfAXpZE6@{wt(t-*UE|YqSmSY$zdu>O4>|xYedV#*%4kbcZX*{5{ z0Ipuf=0Y)=sGsah$EbTmFep^ZW2!bS6m_nG5l$Hf8GypsT|xRWwB}A`)zGDQDAOqz z%iR}rxOYgjEbwD9OsW@At|L!~1ZCmJfINC#uABrYg+)YN$Z4Ig@qW|~h^iAyML7|b zrfL_9KoKB#>sswmO)4B7*pGPv8rx(a(`2D9!}e$>rHUB48jCJ6k*9? zoiHU5NL}C?SYE*aeFucg9eIPRJ&3kQoTN~;FPhv$;#IPCty3xv zGu)HPd7k%IvlZ-dguOfP4S1I7j6VLQ>q;VnqugDll@b>5G|-GSw1H8PMM_0htsV#U z)QWet*Mi{sI18a(MVaO!+Z2I*xyS~<*pngZWLs2R0cLZf{?yk|gpSDCX3-V`??myG1r4Y|EE}t|+*qRA*Tg?DfPbLCB&iPjL%MiG)su zn#dUvj8+~%4rn4$8Vf60&o+UzxSDa!aK=nmQ zDVkVAg4s51pyDKU%!5&=HcXT&XFdB!fup2Ld;=W%e}DDr)uAcVN_?+K0wN><2c@79 zqwHNy*UAnGNsNSk5EM!RjGb*PG9`dzVY4E2qa}Go%aqDWskqisS#0Gf<06{VdCLNg zX;QP((M<}qoU*mpQD8`fQovNeKomV_NQF*-a6Xn>(2Dz=2sLn zkyX=e#10+#=s#80dX#@XuR0^m)|vRA!MDfE--pgKv>5t#U1`^)1~G2y$ZL$j!B|vL zg*8$MW3Mox!V@fgri`qw@T2~y1zVvAlF^0&bqEs=S~)7a;d_JBb--?pue_o4c?wf* z-|IIz+Q7?f`-sBXh-wcIElUHXl=4*UihHwyn{2!{m?~QL$&Oy=z)QDTE#$UnL=e(wZ?}M zyTKx2fhoAkVp}&2eOH5b{S6E4NOGo`SYgVv>FU!C?oJt%t2%^-c2mN|rG70H1z!Qy z`USVky?PJ5Sz1B0@LZ0S8KD$Ldr~=H{g)yXF$Hu-jSk9sK?^Bqiyej-UxTXIrpO8d zIcS*bcmf+?teAJ@dfP=3Vx4Ws-PniLyU?fUyBY^$39W1Eo+qd$XY3h~`ML;G8mT5e z6e85irmt}FQAxhq>xd#0#qyXRsWQ_h8932WtVHXA~c+_4)A`At$d(qjYTbOXkBGJpblZ|S|&(E zB+-{J1;$X?C7;=1M1QnR2}vUg2dR`)8`eTGY&jC(?MTzG$SB@yj7bV!OULrGi5#0n z(P7yoQ)j7(tBGVL)ga1fU7~|oWTu2TQZ$hiA|>MyWC<4vd$2h&AeKZlQbnRTa@s^q zJ(jBh1}MS+Pewn`^C{)1-NdP{pdVbz7*W@k(CUaB57SW8l)j<%j4SIrp@-v(Z3{hN?!MyTDlAoz-u|BDsTF_8^Z?lsskD%{6_kuK+bT4!VbNQSUq8XW zV-rDQ!KZjs_ymv4z|4XH;RS>*#ou$PfA)Y@i`ua6ua;F+xx7<=*U%048knjCr0G}G z&QI}L3xZ-DO6-3kKlG2xMB-ks&%g-3ry}B}EY#kw!6gbwIflM(&kB7-rRcUB_{79&)<6{>z{fDO;Yh2U#^ z!@H=rn)576)?<1sQcyBsT~h9af)7!>SY=Ioz}p#wQcRSu08v1$zjV=iU`Pq^N$%d< zey7AmZEQ$cd;i(71&>y_#uws?kOkpQg?G2@zck*)R;rrSDP_u0mQn5U&@nu!0AOH2 zz%rf!!3Tg+$G%b)3bX(Yth1#J>Jfs{vmOGT5*Sizx0o++TX?7tWi0e&vesxj*>#L1 z=p<^9YNI*8mRZ;2BQ0}t`PMRuwD#w^-woqV=UP%Z{(;iN@Vv(@YL5iD`f)mL`~Y6R zov*YOQs)p9uF4;Z%m1b&4n6Mr5Pu!#e;vdoJQps$TUv$VDWMZcfGXk~9IP`)(8Lma zBbETYZ35u>2!x=Xh2CLd${3hJjsqpPJ%9=>g{~#-WoXHmC~pphvLi=x-nF4Khq?@v z@47zkM21MT4w(N#Q|BkI_zvV2;*6YgiTJQ?-d%RV^UFoq(!r=%*s08^e0PU-IptsR zYM~D-V!-2{9r20N^+CXA^TgHhLNLvB7O75e!@r*;G=nMnPQHipRRd+mb1sh<%6qN6 zH``WF8t74z2k&UG;wSWMgKZG3prpuCF{V_;psizySR7-eb6zT{eKtaVv)fRmY&G4~ zfQ+z}&~@tyb2THGtGub`;Y$PXsL)rVEBE2rX`lnZnX^}JT` zumQA2uI2#``dZ-wZl$q}ubmCOZI=gp=rO^m6>v=O8}yxJ>boIfErkcJa~qXfS%Zn zRmo&>9%CfM7JyeCBD;|#9tQ#!3jJmEiGe??9YW{S&vlUjdk>s+^?o8Qj`&F&QDFs&LDNTA1U zb$=3roS`P59w)Y;&Yf3AeV2o6kOs@RB=gz>tKtKA0;Q-56@6$NmZr@Wo}?({Arj-; z%1NF{ToOl{x#xwKA&i#mcli^ShP9;%IzDtU|0By6o0>^}M*J&3y8iUym$R((`K8FP zGpa18{0WZ;ZS|tI8U&{j+z7y@wSRl9kL>2dpWbM$K3kNGAza4Xwe}OjWOD@+qzjDBa)=rwl&#| zdaY^K=-8r$NNI1iZMY^YVeFgIhQbkACPgSoDKEGQjL1>nRAHsDjHk2+ZcHdAK?oa+ z%X%sT{%)Z`N4d{As*ObMxn(OGeXQ!WTzugu7k~zw1s?#VFLjBt0ZQ-=pdEW^EomZKPoi?uTC)TcZpap) zZCOR}oiQ0IZu-JJ;@FqT8WX|Gu)nL(1>g8I3mzWIqe6eQxi+>glsdqip3-UYuab-Q zmIH%jhN2sbm2xr#r;#%r@F*HGX~_v-B<}!n0*wzsOMrgxfl|dn?!Z|H;DM>PCBahB zGmYCviG?2HLSC!9kCdmtGCNjIC|aLf1kEZXH+&myT8mF&^Rm2h7+()ecqH%;*WQf* zbk)#kLUbQfBT|PBEmfICWQ5412_MDU6ja5>gEj%2_pngKL%@-10A;8^EiPa~j52Fo zk3P=(X%PlgDJ2kUac$LNTSE}GPNf3O6f1XFZ+R8goEoN%`9RkbiolAfEhOG`?_Wx^ zLg(}#95WtmEz4Ci?YsqDID`%DVroe@-XK!hozjBXehU@jJQ@cjK`<1{fE}%J@2IqbdNq*{bEXfx2|rSlaBS@B$q;n}zETRzu_rV#_)Xv7-La^1m~A*X4P zte`H@v3Imcp!NiU_qZDHA)iu;T1gREL1rs9kQz62qiaU&?QtJzMO8ynX}s5W9+i&M z6WK+s?HJh>Wf`)Cp=!`TpM7-8(#vGAU+C^G58>mAz2|i*$r8YvO3R#ieJMShcU=ZN zG9*DRY8bc-)SaN<@-SW+rtN|a3o4%acv7Q+k+>v40IE@;TCg=;Q?L%ORYdT%f+=kk zXzO0cmD+h^5y}A0LJ1bH*$_jjfWQt@OyF^uzC+fU6QeWG?SU^&ySqgDgIYRXw<&p@>0jOsb2)2Tj#3gLhK@e~uU}3R^ zROPj#Y!8S_C^@w1thn4Q`lc?t576AAB#v`pEc32!go1gLh>{u0e`42$pltd^tobR zYQlvUb;HN|X`vaRgA(oPFxgkn;F0KFClW4&mgW}Osj zM}+V~Bn68fXJQ>wshQf~d`=cwT6-7By+b94Z9HH{Z7r~hgjzehAa%8_aBI1yTP#xB zCPWVHXPdC0_j_AP?sJl~^kKQ{TbNjAp%Ywc`9asJgw*9}a<$pY6%T7g}q6Ke6>z^pHwZG@_ z+wYX~?PH7^w5lQL1%@18kT3RC^)&Mc&eJRx)}q211S?$R>D9p-6?hs-G-s5%dosdN zPpdJEL(kVjaY|OvF8w19i^{e>h0QX`z1|LG3FkH>YMh~%l+A^E@L8D;4E#j0wiKP& zTNM`+yI;!#&+bTYDgZpyCW6GGzv(z!9;V~6o++I=kF2p|5Y5OMij#35^c>Mww2(-{ z0JaJ=0Nd**ao#Os{c;iNeiI5CKm{5sp>QgF?csbRFhPU>G)yVUbF79!(GJ(*Vhvk{ z>;!jhX(*9M#>%cR?ef**(qdpq2$-`@UK6I{9vP+qbYYoW3C$pCkW`VC5+;JBSSVaz zqH!c|2$~Ya0Hng4Y#U`mDuB*a0U@C%Bm@u}OK6dSLc?A?Ai?6LhTtIB2&ores;6~e zL+<$Lq`ukZgm52KqpJK#?`m^;Z@A$!vm&)f!#Q!r3OfZ&6msP#GBSf4#sXdXLeTKa z7kBT=Xq*&IGsB#*gGOsSF|Gi|}(!(vd!zA#q-uj%!u%|>V zC*Doe^~uQWs#njUS_qYhpgjUseW?S#?k3)Prci}yJQ9%r;Jx)y<*3_LDml5){O8XW zN9aTAj`sfXi}_DZw1LPlL=i25s_;Y~|_lb})b^LV6Jll8_mMgCTPfRn3A?=!yctjWb^rvI5_|x_H`ktCWyiVgHJRK90k-u|jZ#9;xa&SZ(HM2kN1urRoErWJK-8Q-bXW+Y=dq zz)dGJhXal;QNf8!5tb%>kwb(;Y9Y>WMCn8s!M!}WSR!Q*XJTb2wAd>1X7&=Cdg(8G zGz^@M@4_Z@Sr%-+z97T7UwyE9A_(dxVG0_4e6j^eNrMdD1Br^1g3qI*0fX?)h5$l< zR0WdN0*nAF04-h}-g|Jl%Y=ZpO@sjJtn00ksbb50YVDTL%Mde#F4@QOT53l>UW?l1 zx{TIgEqfh29ovMCOiw9eV62^vF8!5W?(UCWd*|Gyo#sB5x;~iML~zlo?Db37?jYI{ zAB@KGAYUCjU4;mZ)}61_lVtR!9yk?BW}vE&sF6ICHO4{9yA{N6L~$pV=<&MCcX(?;=gW5Fsg2+ zed3#S1=w+o8k)WfE!!?5Sc-us1d$*?gpuf&(E90i%fPE=O5RFVRTY&EGtmM{o&cGu z&L=k|i!XYLLbYg6mc}nY-ojbx2F$@iL5u8cZa=P=&;3_F-b#I>^H+Na{vTbN;0<_L zkNwab^%TRJN|jn8^X-W3v(IAIvY7}T`{T33s8=-H8P zAct{TgPW9KdzB(1D~h)GfL(K?oAw+5Y(HVtTj{9qfc`XVET&Js5BIh)2NUV3Gb5=* zXb}bPT4pmkPXS*OT}ycc)4{Yx57=9~zLG6J4SbiMdkvbx* zDtcB5m3Z=ZMg|crT{q9v*K@K~1`P%qZ4$iN)ks>0H6ts-h+WuC(QC0aN zwp_513azT@I^Gk+Rkr8)Ayn=Lt*%iYs3ME8Gzz6-lT#x1{7*mc_D(k4ICH$oZVDA~ zSKFr#@+7DXYE&weY=yNYxDzk#$i*YlW_hSDd{hqyunArDk)W;KKE``8b)Fq4JuS+8 z58IPJ^Z$4~`l|0vwk!!Yp)dG9ka-D$3Mwt}X4H;4N_Z%a1W+Ia;M?G_0T)t=LWK~5 z1P%#E5FZF0du^-gy?Pb~DzOe+r1BHj_?|)#_^ZBu#{yI9=RLD&-DaFxN z(Zb`Wb%a#>p%55T5!y0%A9>0)U1Nr`0*{yZ5H$+a+=f%az^X})oLx(fT1&8%VCTmJ z!-b(xJo-p^oCmtnYrgT`c>eR(^W(sb*TtLLA3`4;9Lxn3Xg@~BO}*`~L5@hhsL>^f zNu}n=eH+14Op_z0w+V$FQ=}M^up#|WI8w?lqNz}zH9gy_w;0mos@k@#Qrc#%jtJMp z2BbjqaLv~J)2gi=>JLU)J<-ZG$J$7GDBS+*d_N(|DmrF7-zni)P?i@f_*IqD$&t>s z?i5b3fjS=h_KO{_0`~k5E(}Qz;Ii~dD(<6y&43c`|`2+fxDYcm;cE9)8~Jz zdJB|Vh9&%3qz?6TmQ23ry)Sy8TyTkYD)v)L@UE5&pd2HfQJom#LsfyNrD@xVZ{euV z99Db?TR6n3NAVuD$nr!H+Gfs6+wBc2O$5wsgthm--~-YA+(cU#W{t8mpXEz@g$vdR zUil=cBf$gU3=4Nf*1%y$eAH3 z!BNAoEWmU*cZyGxAFK6NDvj}2#jKA5JNM$J}uDC%T z)B)NCS86^=szP14v`SRf9qk0Bm;oy35x}3ox>CbaDpBJ@@Fvm1#tjxIW|PTF8>DUn z56Y`N99{c3oQ}O2ZDy=alqawM?yvn1E!TNZW6PkbRjt2I>{~*dwA(rFy^j*-A|I>C z^D4-NP^=CU%8M#TNdrb=t?Ifw7Z@vF%|%qz1iVhSVO0l%ScM5)(xN^{xGr6htm=+> z;Fa0c{ys0jO{1tc%1ON<68l~|Td*F=fA#DvHZ=LLuJe}u4ygH3~ zyPLU6J50y@90%~EcsruU8SW@5r9}W4#AAo6{6aC?Y$s?p%y~<+UR5P*DkjbXZW1Pn z!$kSs)KFRXmmNKDR5NE2AX#-l$JUFp2j-4LvpOaYHO;OQiN1b@BOEHjpW7Ek!wZiCP+u#LIc>xKKC@lM|%Y z7UOVq^(SW4O9!PL;?2JCyYi#|#P4|G-hP!DjL^Y0!4Duq;;4~SNR&QBmykH?EgbSH zDyT*LMjcQHP#{{dp<7|R(S~~l53ROs>shB2BzQ*Ss?f?!@GUJC5%QzUO3P>wY}t;Q ztc~-Kuwbk9pEmB!I=bCd>Fs_PzlO$T?<(7%um+KK)(d^flMhI zPI}=J9J$C*86BNSO0lJc^YBVV))bX$9af#?0d{q3+*2lG8l;jch|mD7ZmU->t@nWz z9AX`drcg<6fxflP#3pyYsf_Z>&uqtP@0PNhC)HRsRV~YG3^A4Dap()tZFY=rNR@k} z1wJ1}WFubO7hpUv6i8Kf;tf(uRZlFuGuD(jUVO>AbtC0)oQj1I786x`gxRg^W~-Y7 z2~nY_(t-@DqG!YKL(E9s`}G$+XhNx=_`En!g~Zhjd?yDr$3J{@sPqcyrmf!F33r(2 zTj-PY-4IdoH+5t13QX#Z2!fG}f!i=oBX0W{#ud831$+>@uy39@g($|I=Bh2Y*?1tj z0R%|9-uuvG3?Dm6sKR)!cVdP}j6HdLJf;fqK{Joyvq6#Ram)&{DjYVYNza?8W}x&p zq%s8wAATn5aud=^HnpuVg{peR^U_hTROot39FW#}$W-i$fZk`{EF3qMLwpUthiA$@ z8=?g;M1klXiz95GRevaLG+Brs#c;!R5O~tOj|@3L@#O3|s((#ovQ@;>@J8%Bkb9Ds zUc)@Rg(N}94x&f)41e9TxS;^R#j$KEPC6>eY@+RHl}`GrKlYTzaFbV5ejrjH8_V@d zwY#ubjV?|1+Wj2jUd45(YiThGU923E=Xqe)*eZBW=f{V**;93sM{4OVY66Yw;?{W& zyXgFMs=0^S^*(fanGTIhH+e1QT#RR0OQvOh6kZHSEf2vkv2LM|%9=uNPfHUfCrbsS zM2a9DU^rd&0G{V}w1lK`Vm@o?a+_9P5#Rx^Q?Q~bAO$}fPdk;k(Q*msMS=+aJXJ00 zYE0DR1OIMe*@OxUEF%K&&dRG zPPxcqDFsYX;d%$I#Og>VkyZDq`~htps8kM((oqsj$4EqJ*SAgRsOlvTYKxw)4+IR7 zLo3x|YiA0_!`6lgyw3oQZb|NxSaMvC`a+$GlP4~h9=TzlLJbj9XI9Liuw7y8xXz01 zVlHPhb)ak{jmj2tE^24Pp?95>Y7{|<69YxZrtEfv$y=m$(D?$c{ge3iQ-cwpwa3H! z!I-^<2bfSAFe+dB-VA#7mzL*xIF9nz&dE6ahj54Q9e<( zH4W)Qz2V=4TfQFi2OVF$@t$D@oOKz`dbbXxuDd_rS^o*j#gTfMNYo zak-ueUu|iuyb$EScU@*hQ}_?Z)IN{WAgs zP4cSuTx<$tz4&^3?0hHwYL8{ge?JvPi1|`*5Ccz&=K$W{U#&miG6+&aId|p7FXI9B z(cZA6S&TtQ5Hicvj-$OsO1OEji+LX^Pw*GoP2cZt>sSBepBW$3uh5;v7w#R zF6$k{$U0GnW{z;yd-b+|@7BFin)PVE;__}m^Vs0P!2^TLU+^yWFh0WHqu2el+I2oI zZe4_y^2;xJ+6&C9`qj*-ZvX%5>Hg|AbBe*%+*(iZi}bR;7j2V*q8l|z=Or$nrSF)o zeRz02rZ8yP*Swo*dnEWmt0K=USTki3=d*n`!6ydLO=glH*ExcyZw&(dCn5*q>ef;M z(L~}SRhP)rFE<6cP}iM+mW>~+Qd!-n@KR1 z8Mw3DbA7Y|pP-JUudlAE6GO2)hmQTZ4HLS#wZn%Q?GrI@IlhwU9(k0_(qp}m85>qC z8C*JKJ={6(f)eh?-t@8*1&yU}%J=;r7J=n}-!uvnRbBo9y1l%7>FkW~8nSt4t1<=C z@mQ&(z_;s{ZU=LWS>X>?s46O9JcA69#ZjsePr8r2_Mi!UXGCqt*@}ny{KL6XRWbiI z`phKnWxb+6loqk8xtgMUb;s?&(mi}_KsKSbETM|+FSQGyPBy#_(weZPtnKl0M_v22 zw5(b#pT(X(Gyz4N`QU#XJFh7=29XNu12d^-eL>H8S2I&ZLrGOQtx1FxJ&)XnB@_NF%nYc*W`8S6iQ&#(^a2q-%PLPnQsC z+q4}93o(zG2eEfdQ_CR~Ez6SWhIyZhz_DINCQ^;N&Bx0R$7*1p>j5BmBY++4c*l$= zbF*hIoP}K$xWAR!x8)hBsrN?G3I-|Km2V@H@glcKEn?sI>T3TAJw02)h$sA6^-=v^ z>=ty%TR%#`40Yxj&vZW84w&!wRVR1xw*M%0->%SXdeGl z>LdTX*yA#x;4czvEZzDtZhIK7EYTLx5^w*{j=AR$H@Nqdto8bTD=zvbw2fsnAvIm@ zi&<-_{bk>N2@!SedNh~ce`g}|Od)HNXH4fsrndy;%IE9<3C>@QC;dzBAYKCuuNhn# zpbg?8sDlP~CRYdi`UAilFPI%1+Ad{3@Ywv6{ehn|u_L3Mc zcmMbF;umbq0A@%S&1mIo;E9dx1qCwn-Z&6CHy{@?scqFiIfW)?M~08}mA|Nd#2^2B zY&Ul{b|l#?%qId<|0GH8NqWc$_4Q7MEG3l8P!-FN6&(;D;c-)PEqU^^kH?JL)!wo( z5StQNq*0aKR)ZsTZ=hC9;*oy1cKYymeGu^A^HHsS%*7|CiSGc%%kw{t%gCJ>YM}>-b!p zeZa*R<&E6!&}_!(yXD#Lz=UEe9o0Fm`Fr&o|EzX1-b1>FR1eEc!39>%s_skUCEhKoUllo~=IGpNW@69-)7YHeQep$Qh*X-*&g z*)bC&y2Z}`#>;~X!FVm0<}%hCPbAmFY{U7%yn2#~vMwx#EjO~Gx8LimWGf_%8ouf9 zNi29|!8=?|HD;Qg_;ZzH^=(xw%IeZ9-tJ0aORG-D?jJ>RP+GN!MaHJ%I;kEO`T>9N zHOe3MQ+%m5@3t+&NZLAd^!B^B!=c*4u`n~@4&PDpmldtJ#4MTvPyG3~;46v}>+UmF+J4Z1<(21lwI#zWm4 zSFQC9d$jfKdWH{`RzbGZBqCIWI`nfREtRHYu_)-a!VIVh==nDG^+s7&(WiI=ily@4 zIZFbdZX+BsBc;Vtcp`0M1Htag%?rB8y;wM9)d`u33%wc_>oE6xxV0c;wryiLktpr8 zJju=F7DpeN-q9XEp{xDp zh+#77hxeTS@pQZIyZQc_6@s*vMA9G%LHwe7d_yK(c6sgLn*V$XyK5hkn5 z2)i9mdx}iVy6{m zQ9_;YDBl`k6SGEH>h24^_APz0z17yDecpvX?0dsI-geP%!Q;LOX;mC(%alYz0hm}gJV@sF0>7n`*X@C3^_A9%nMd~!WOB8nwuxqI5S?a_Loy8Lz>x4+UO z(~d`)`}n48r2~oUO8aD=sU7Y{rU%bbleQRa8{ckcS+HF8NxTaxNP5$kOWRYW^9Z9c zL2sqX{dt{6@bSZe)!hZAYn~F=XlqratwR!vgc=OI46z4mk6#25%OiKyX&mUw6? zSJNuus3HKC9Ze=DI2#oN5fyx>U z2D*#=S|ih7%HZZ)#7>mVxH~1(L_P_k-$`rDd(GdffBntBtnk@re;V&?bO?XXC;T)e zvpR~!D2IvR+adP!{c_emUPz{$t#-es&iH|1A03FrLa2}@|6Gg@Gx3x5{CVMai_X9M z;MKYxu01bRdJfD$vTA;Zi~sugA~vsJsJEcw84IKxdn-DMSP5xj#7(GI=L_P1Dhi>M z^KIrj!Px`oJ`3KtkzBSxmMBsD)5{ zz&4Ab(h=R`iXYo{JvS~s4+;|ie6}^Lq=19(sk_t6HC6LtivuQf_W>`7f6cf_A6eb- z$j{@_1Doevmo+rj)eAA|BPX&p@Gg!9N&ahQP1d6^*k-O=>DKFhb>{G?z@Y(jn*o?A z_fsI2*4A?q%7Sn!9eN|{sG(X?AgLe~0udth7;zxTt96BkOGod#; zeA$*6Xg7J$ZXw-NRHsX#Qfh6tYARCVfVRn|p3ih`=4y-tN&Nv8DzkGXN-4 zh4&NoG$|4SbQ=rL3M>(Qk*r~Pof$@$lq7jo^y_=$6Hy>Z(4bVJP2y-zq`wgXTdV83 zyc(wCT+cK?!;8Tbl zSP!gUexPLSo7+LVMs*W$;Q@nW)Hs%IGzFttkp%Ta9S?m76BrC0`Jb}#p6>rLpe`y- z6`k{TiIIx>dQgF^5#Pfys$@e?xH+DL!_j@VXOILSY{)v&NDv$`B#DAat>Sbsd_c$S(3N0`# zn|LA+vR%b1oK}1)5D&DyBth>sh_Vfk8OhVY31FiFDAXH^z{$)6e~VR>B{2d=Q1ET9 z*z}1iERmDMNHhimf9Qyh76^s1FgstX2d1O8X9J&iB-n?Uz~c4+pEe|kC@{>{lNI4H z)t1Z`{)H!l)?)7p8l$~_wLC6uJ&r@qmvg-wTt#5uKlrs5o0JKuF~X6>5TjW2 zVpUs&*GQtSHiaH3wWzCc36oeqP?dv(q0(vSID~E1NHysP1vTlW5U(k$kDgA4EzTKD z80cp1H0r$toQAciVFO*s&({-aN11Pr-Q}{EZ9{w9BmzLKU|Ua= zCn?dcF9(~%8_ud&sbngMIc&cm$W6e&lOF1KP)lo*GNer1D(A6LDr#Q)(mfS5*boa5 zVInR_bM$Y>#HAn)+K$T`fJmef@miE~U%UM7tcmv#Iqs~6=y=4DI7w%k;0jN5zAtq~ zHjNs`-23k&UT|_KKymD-k+Sycfk}N64yH!C@iKOKFEyagPe-K@N=T0iDwVtH8$>6* z#2&Eu>m`oz3dR?Gb+_^5!YiaZ2oOe$y4r{#$&N^Cp#d0Q|Ku9hE0K8g-7eA9jYlmK zd=zmv>oz)5b)rnk4J&*iyRK&~Qsshyh)l`wFbFXs)$mINlSNGfvGv@;&%-pNRblc$ zPoWr2e7oD6!Z=8+&)bp6pDde5#TK|)b#+Gsy3Y~ka$$lC-rZ<49(GP<6k^tdAs=Q0 zg1JYjq{=q1y0~2$M?@ryPTNe5WR#?RNi;sN37H0y`u$&bI4#nYdDs|;f*vz5Oj@*9 zcX8t4D3{fV$xS0+mBj;_q#!lYCR6ASt}FOWe^t-qCm1*%Z~8_DMGjUF(Q3pOlXw*B{=>x^H^h0DIpJc0$_?%WKnm?sG7Y*%MvTqOAqO zR_l#L5bKeH*`SS#tNLAPJvO8Y%R$oWT4b{hs96=qLo$VvZs0>i0d%jNVa+|B?j&Vx zMQdlR^D6{JTVatf(>J?>8eIJa%vcQSrEGQ34Ks$3BEzUO_(-}W^C?RVlInQkKK1d< zpPr@WSE(ow3^~zUimcrMPuP{++=1*4B0TW^2g||LDCH%~>+Qf_JARjsynn^)5u^sv zFebZ2swt(S0vr(8$;urh;cCK5o7^;OzCZXF^HD$AI;R0V>EY)KGX!BLl^X*i5>r>o zYwt?dMhdDD>JCUFih7emYo=LCBHe3!D=u7W($TTyahCb1f#+YyUN7V+>eYSUw%mUlPw_%u6T{ousUl~(S*&28|T3hyDv&8VNTK~w$`e-VVHn4d!G%d*|?|-7gK()w@0-W+ML9uPb85h`G|Ey~o9hM2N?BcIs`#>GSIpW+fLlbP{nc zabHr6ho;(GLM{5sQjn>uS5()Iv1t`gL6oLgmPW2;xmAV3C<4m&FcmH^v=y#98Ki6i zBoMPU+}JZkzKOaWwf&=XjM z9f&A>{>p27}zgG`X__m%hEos2UYjSX;DP#pDKh zN3^h6BKa$~*V|+LoWioKv-LVONKjFvlp5EldzrWmDA0{Cm9xvkv17AD36|3oORe!| zlLS4k^U3-Wl!vmd3FU{pq{8C3JQ~fAwO3yL0?lE>y*~8kc6PYDL11ef8NV-a(#YRw`rUJK%srWL#YNK_2pe6(-)K zjG-nWy|%cu*RSulf`}L@#C}atN`6`raaACEaM*5yxX9*?0=@){Py5)$P3zD*q9es9 zjiI=H)=0t&KHP=p@T4$36U?VUofVqcwQP)d zgP2Go(h3tNlcQuYNtl5YJSKZgNHwZ8I6uwe*_eVP1zRMOHYBKqc1kH|BQm<1j$GnZ zRB=mWXAq)*Ed!@WqV7#W=|b$*FITJP3I{uEhA0_G8+wyr5v~(65Dod1VWQbd>vI&l z4D9)+Z$GX6SAYcr@s)yno#4)OkQ*Ku7q;lTu@hKheenU$IUnn>&6eER-2prEN{8>rApX*5H z`u!T?#-3mIX~G|ftq&n>SYD4SUNCj7MQIx7PrDX-{RjZJroO9DbtGcM5Gl=MwWbh} z)NZcfZz$`lF9?s>y1|fcM)SBCaC3*&pb*}i%mr7@J5mcX7-h&(;;>29rxSKY;!CK! z_m5_EdnSf}+|1FvQuzbf2W3`iA8DxMr%h0POF$MXcb(`RQk zkj3~`34GC2l$j<|4he&WG#Lr<9S5k+GTAspE2ORii*?b^Z9k({2*4aZ(|z zDR&rakfEGbUa=xrCtA2u5P)u^gR^vA?0yVwr&Sw zo1&}NQcz`btuux3W%C|$TCTX_oNfj<9pb+f3$JEEDI*RTB8r0;<;h~&#yFu~ z?G<7bZC1Gp<~M_4x;u+9te5#B;78#TM*-PliEJ7{cgv}+3INhGS~DvBy(IY};0jf> z^jy)TPg)`aru(3xl;p;7<-QDL%bW)kv5%uC^M)r#yvL=odI?Mf76T= zLVY&UDAJ;}JGPSHoV!0CJEyQp;Zgt*5`#OJaV>&Bypg(Mp!-OA@`8v*-L@*$5Q0)R z@>`3{RPr=y)H5l}_#Z~2F8W>9skU4otL$`uGZUgL+M`j6nT)UY)%hs{zcEk^^u1m9 zi!<;y1HYebUTZGsakRY47k+Sc0isJ-W7SLjaO5Bt9MtQs+s1vl0izgzAyv1+BCiw$ zSi?zJdWZi0$!dw(;KZO(<*=a?`WDR8hIjKVlhgox-b zrZF;xd3LSE2*Or3YTFIgukhYRs5fJul(-7bWOs0?Wn_=8TvqGLVBRY-=h- zxvQ4Gtf+aZ_N@In#?6i)oW@p8>bbqesI?PV_Ult0OVflg$+|`xgXTPwSuV^s>(37} zrtCvESYpWBgbpWLVy2GvW54srT5G%1R?e0|54lGijE6TD3uoN5Znu{rayf=&VU(CC ziVNgzolujY+E<)pN+)cT(ae1gVc7=Em=8~?=z{Xd9o+EN}qiejID}xa_pa zwo{EOW2l#&S$n&IbIt~PdpnSP1hIemMz^o8_4b$BY0tLovyy6=g>m+WywTf!dN%J^ z&)icJiQ}SI+3ZD%PSa_nj;gqJevBu0EaMdRcXkgBCN^Gk2hHTixZ&%0luf~$WPKtO zprk^rIAO+wT_XO6H+d>v$kt|D@b#P)(&q?_w9L2Fp7C+set8B~qx-y5N;-3cJBuSS zY=D*o12s4b^y-8xl3s?;AT^{qoVT>f(Ka>YaL}N!)L!#6$Wl1k<12DT(U-t&*;*7xQGOT!j3v6zTg zy(Fbl4>k%*BCM5J>KZgiuw6w*4|&B&Fs|6k6<7SO@0pD&&U=xux0Ov9(nivaMHF>O z8!48nsN^n5vu3KEk|92zt!PE=9HbpaDI0~CL`O$w=8`@ft8j)Vc8r%QUhKz zYmN2o#idZm4xrN(Y#aj>4w&J&&t8T(!)JDEGnB6s5o>jFbQ5jH3zT&_W6y$}FVH$R zK47OP^Ok{~2L3)z?Zd2l>@3jG9}P>3JV`*8+2w zauU?_7|G{-+q*UMqFBEO7o>(jVr;lH&57*ZfxP*wzz8|0V{G)Cr4?#&vP>$^(q;z1 zQnuwu5fLOF%*G?1z_Kx9kx){t`;LCP=41WQvdkkbLVuk`;J5F^U5%Cb+gu!&`IdzNu9Nd z17FDFJ{fOt)5o41oSOzQD@S5u*K#|aw+DT1cg4WlzAU#s{K8lG@gM#>SMbsQ=AV7* zSO1%C7da^>qlM_U#VGP&sz||=-%Ok2*r~01m;9LYP(Qhk`tA2Lu;)Vfa{cRHe*MS$ z=dafg8cEX;TB=EfM)cW0i*szSvN@k`Tf;}t)$0hpF#zDTa|8yuk;E7JCcmaT$+Dv= zvXC}mQXf``W1bQOAx)+taxqEmClTMk$*~>!wX-y6D`He_ zG?i&!kh!ikU%@`^0oT1~x8t7n&^KaTCs%K-(@z5RwO%q4G6O|dDAxZgx4(}aFQ9mf zb@c?p7WI6u8jVKR%TV1isV<^`vUMZdfdwFRSQ*H7PVqlXnU<2IwSudX3lxYaDN(l@ zCq+dVVPZtn$wd{B6?6TifX&NAyyNWDd?6f3JQ#i42N>vCoCnvJxEG`qZ~GLBZq_F<@Xc(eX6T*@3zeM z)-u(w??2iOd~(0Bu^>fnMC8CaR%HUi&WD=i(Vyx`aU=17uh|aFvg1knMds{OQcyYF zW`E*x+mE?}rgsMQ)dopyX^hWk@|oPkxY-8nv`i0-$GK*C;#>Q9yO}?{ubECy ztI-M9F_7nQAx~@`wtMNuTqC1FJq5G3Aq zbc+j2lvx?Km@OaM_2b8%IJf`YF(?U+c%??rpZXuqV_whu*BxePwP5Ocn-B4|^3nt` zoN?{E)h>eyfnen(ZKoaU%ep$gc||TCU`Z803q-PMMY?Q<<5PtGq=*25F9X1(2CkF+ zRCy9;oYeBxRTUX(M>a;PH0 zIRYccuH|Z-tWBTpmO~G@&iJTgf+LvFon~bVFo%kok{V{k8I+s1D;2#yr+X=JMm#Jc zhPefUPOXdOsV`yvEwXb=`SBiVUnxRY4<>%{nv0>xjwLRej!Ju_>o6UL!#-WO$L!k? z$L4hGB(3qeCnBm>U!NGE$n;&rAuT@ei>67MPB$BwwccYqW6zE{Z%yoaNgdH7#W@?{ zXm3d>f*T?^VI*2_Q-bi(k!edevQ;+b^G0tclgJ!f*T=imDwFE=Fp{M%FKia zmZTWnfk;uBhWB}O&>PaKcKbT%bcAkW6j5{-THfzp?hY?dW?eyf-1JDbgiF%n21Dag z;0b5hjLl{Q5R}mA;H`BdXmxa!a#|?7WAY_spd4u42pahzs^pz3dQ$j4YEVEeS?W!U zGIB@+fczrg4kr4-E}G(VHq)Uq#mN9yK&Zc=ePcB7L*B!uZtCs^Ga@zG8+_!b(yT`g zqD_5j$%sd#Mw@jSW-CG)Hb`4Y%Z71VfB>qwD)ysqiD)rNT(G5X1(;o;%5P^CR0 z)IkrFQL>mf;f#-Cvp;yn6Ixud&BdUN4+ zrE!xAN7}SuAjP7UMPp4Tm(Do85`H-PE$pApKXV~Yb@P(PhkQ8ae8ori;QQ?pzx)01 z{$M_->6l1IeAn$32TYW5^pZp|-|Q!2`-J`U0SrtAmWR>}Lrkj+qPt`Ya`^kD9jMvcaOKLhVsCjfvy;dX5LNbU+2SjiFs}&_u)-KdDF1G?N|TU z#Xo}QzHz0ue(`K4StU{e_H4#Yw&;NQX}mM%rtV%R=B}gLuy*L0?n=bF){7$|1xc%2 zRV^7i)R@1*@f8<2uL>a{i@@I9A{P64~9D z!|*vuMOEL5QAPxdShVWa2098lPskt~>v2qm%wEhgJ}0BVA1tRSFjRNm9(jK7x`7P0MV zl?WZ7NkZK!vr@KZTgzOaI~ZT|St7R!A}wj@rF^pqfArDWo!H!r)zkf(vMp_OCZm7V z+Bvpu`+CD%x{+2OiYB%^HMRDPj;v59CuvoTd1se-E*wS_LOE(N6qRD@v8;I`Wrq(r zq2_?z=**07=655hmYveRz55u*fdSn`U+f7fj3eiU=^#=WRTT9_j?I-!$ZjScM`MF& zcb-%un*@*aF_j1|GVmV%@tN}WWcd)m_(oxBJRt2; zSl_n+JgMTtf$d=4bP3(HIjv9ys}O<*WJC;~SU{q*lAF%Ns|38ok4ia1l&hX!6e$_USlcKB+F)x1KU6Pk9>OI zYcrF;49Au%Yre;XO(sekw?ajP3S(w4;8Y;E=yon*_2qfa&>1T`lSqfQ`{MSupWz1{ z&0HSR{la|UMJL>0V^3%Z8g?CmHQafsP2{EStFpcI85dx`R=SMxB6~0o>=ilqR(@z7 zwYw%~^9-Z9_S#NVTeqAvZ`XXmHc)~rt z6X_PwM9xpd6Ww&zp6HLG9g$3vX;8ioPsa5IZ}!Q##5^sEaee5e;-u}I`8%lmwpXfvX@e!PF^or_Kr;tir1>*-wahxNJ_4$nRC+^3i?7r4z~yLI*K z4*vEgH@@)i@9WD9%Y}PMAujyN-uS}BPAb0iR_mT0E(%K08K>UQ@1F4oDxJ+(M%t<) zToj6)?%d;MQSG&JC(Tp$6Srud^|;~Yr>XwriO8j&xN@0iYjftUp5fw`Uv!^!yNg&% zfwwV^j?Go2Vdkt^hRsrX5jLQ$pYHoo)eE@gRxg=~)FAQb_4*U^cO&TS%W0X=4$fi3 zlBCI^9@h;ueU79;6)c(_-B_A_(Pex_31tfdiqu6?s(d1>{r?$dVY%72^H=j@2MB8{ zaW67iUwYIa`{0R{dWnW6Q9F$vakLi>(*+kHRy^V2q#&n&s7OlvwwuA>0BG-xxwVzM z5=CTLCR1ams7k>O3IH0!4xY}yM|S!WJ^`(`J*~S#M;?`fqyxou#V~)#?3GW|vG6*% z=+_?l$5M$@jh8yx|snGJc{5V3}BZJ-rVR@|L4bRvSXSUSA9B}Fw~$b_aw(M z8wuIyn&lF?PQB`#AAi#8*TWGhZdRxnmuA15#wN_!Ht`# zsxwEYkk&Y2f}X6azP`S`@Rj89j%S7$8~?RsB)bhUHmX<} zmuMbJpX0ZEk|x@&YwL%#HBne|RplLbt#L@8ffR+0XgM z7oQ?J!8hRkZF;}`DQeX(XM23mm;3QAedq0r^SWoPPrE+Cc>lL1zI48U-ERu=LiTzg z2F^5aJAf}vyFBZY`{Kj1!5qW1c|uQQYhToFaTkLJVN z;^B)upIH0+s4wmFkGnqRx4!$(C-ZaHD`ys+G$*J*5Q*~)Wxb?Id_G}o8_7auwH?~1 zuk!Hpfrni_d}TiSutRYUEWtS^@L`_4YTe08h-R!vWq4VN$oSz4YfNAXB~_Ao?t}t0 ztm;gY7DfPAswTZLkB}0NFk?v>>yNV4vhX>Ny*}oF$(7@-W|`$Z&XBPS%6uI5EeUi2 zkrS~;_3omhh+V0pNMcKA-d;w0{#$2z>2qi8z zHqv3vdkk?enO7a}rp}x%IBmVVWA=K}Bb?ds0G|#~>$W;4b&(2@wR0Zq+5>okqh*g+ z&Qvymao#gSsln083^7BSl(tO-`{s=go^;Y>z@`h#xNntR8D?Zxk>Ol_CL>H7=_03Q zI>@Z&cL2CFxbH_CFMPDy*KX(gJX_~9A9ZZ`9`{%d&)b!JZ0!K^70Kb*?w7ucw*&4J zG5^i-rRBeI_p{>Rac_V!$8cXNu1y{&j(Y{fzg4olR4GEDbKZ1u6U?{G_Za? zLrYwf9TT5-S2#W}se_uLsL)v| zUaKqT4r_Xji|3#J(An#S=Kwsx?p?hV1iNAS6ktxL+vc5{`Zvz3oeq46#~y4Br2yNvpHMD)|f{0TKvpro_!<22~Zt{yl8Y zxaX#S_hSWsw~2vn1NaQ)BOU=N&JSfb=$~SHeK;Q)TVO_FEG!Wk6iF1AtendtB8p@> z@tJSm|G{U<%i)qxcYuC*$R~L0-#c>7GBwIEo0uE*&U7#xFvusSV{0veK69wIcK?2| zfinzzi0{yUI(qsi<3i5aK)f-iZyxZG!SwFT$$d))%nr>K)BWai95Vx^P;He(or+|{5y*{EdbppqCxn^rh#8W0brE%?En-S_@*(Hco<0>gz zG@+W6K+xJ*TJJ`uP*ykRdl5R3riRZdjfCs4)?^LcF!AkJXjNztieO*_m=vJezu0@E zDOmV%ZY-x?oVx4QnczjZ@w_gztjnyuo3&Z)xYIrkIJqlYaLF>X2U(yZ#lY19(| z;PblgljPyrn`r^z0G0D2J>?#0APY)THio_1*tbK+CvbIWPdaH62!3`t4$9*&@XUvD zC%o`ZvHucuV0E{1I6zQVKYCkl;_fp;k*6n40a|TUF{Vdbaq%s@_Ki6`viR8Z_58SW z>__^`f|ZkL93vbz4F^r2UC)Ay%^d$wv)OJryZLQB_`E$0Oiu|jylLncvab)nD{l~% zyUvnjW8>JdW!)khq(i^4W-i<3RB@PheXX$E_02{2q2|Ned4Lo5z{K<(Y1p~t(QJ8BKl3Z)mTzEs!uPT~HRQMD zLiX{(yWW*Q>s`&bjze8WwOZGkMKAyv4hA!7-uKNyz3-cZ@-)!i3@kV0IHtGc5XYrx za|wzCf>5f)R=$YYU2VF~hG9P#w})w=?sGNn@ATyvJFf2jdgiL^hvuC;4!gm;{ri3L zr}F>idHWV7HZTUgsvv9Cuwds7JM5z8oc3GhgMLX}^kH7w{_!)qarxuyRS3vu+WDBn zKh3xE>t|@Y?AY84;*3ZUNj^exMg4d;anqx^{{`_(&b`>U#m}rWzocz_KH2VwNuFdz zM@LEf<>dzaG_N>^`|>pzy!>`+Uw`(NcE-YT@-c4O@k#$?zVkHi>m^K{!vrNhUQT%| zqE_!A?RC2a&$UNKTRf07#z_~HkLmdrpZVH6^Y&2>z3`!5n)&ti_=)=`zRv&8#=A;h zh}J^|O9dr(Da=Gj*pj8~-O933h0V!uMcnTf*z>UBE8&7jdu59`Z?E%^neqWVJS4%~ z?R*e|?KsdM1UMW9-t{lzzTD9dzY{zh13!EycdUW4xPtrgFS`d0$AMn`q?5kI|2M?t zS1B7eWu%Wtfu%@bkztY&l%aeXBWDVc18<0Qe7XRafw&pzv9+TVLHtr5d#zt5&~$or zM(qmc8S4~fx$D!xa#y&JJNEP9amAKd*-bjfZ7r?IA{42sddy6R#AT1|NaN@%{3u~O zj>vhcN`zFDm31Qu6_-;H3&z$;Km5^PJ{%Z8xBEcc=8jf9u#(Q87NUTykVERM9j3ARi0eV8^(o-c*QI_WxkFp-okrX9?pf_ z@iQ4)$Cd*-*s?qo`l z@k{_j>F+n@XvQLG5*v~Fk@ru2PH-#i@8Nh04epq1+q*NA-T@y3~Y*CZ$()I_hNVm;--M_WHHnefHj*$XL8sfG|<2G{}n2Q6gw~ zo+&0{JMC-eh97x-A9NPD42+Ks)5WZ+@Rl*81EZm1Dp6Herv`kP!OVs?+m7`Qy>A9Xaxt7c+@SY<^?V-absP9cJD*xPpED_#rTt;H)d+ z49M3q!OVF1cM;{5#<=oT&wJRBFE9pXgV_xpKiOd*-Wb$35B)dvHD5k2x7=p)$ur4@ zGNVH$IMXu+lS(8hDC-z$)KaBi$0wOy57&Tt5oo|8K*w8XaP{RD-%~HqzW29}V9zdm zl)V4?lh|=7%?ZjRZ`6;>&;J(`H+32rVuZw)jQCQ{o@r<88Q5+88U|h)l-GRo{R3|( zE^j(@dp!E|aqkgRTaAG?C_?SXx|C)ol5^wOx2N+q-ZJz%$z3t^5ZbpCv8lwEr*)bWW$ z^uKM@&^G(CU_MU04Ajd($5;1BJ^Qi*>+6?4y7}SEnV5^rjggp=7%Age2nmRc?9kfu z45hzzt@_#l|DcE837!!8LvOP3!8bBr|2|hex?2;GjToSMEoF#ZkvfuCOZmt!C=RJy|Y5*TZP(!NpJSuFnk1UAZg!ejy9z-AF2q zbUaLq2(Xn7G-l|6$n|Qog`10h;lK34TR>j%#ANenWyp%`j837yv?TF~i`O>>$!S4S zQ#SJOCxUqs-U5UJs|hYAcsMYCO$5()Dhy!Z!-2zr)td}FhCAUEcM`zB2e@M&eg#}{ zSAwSzybYUhV2|sL1~z@Y1b>GEy=efeR}=i+z{R;e#?&LGl`JHu(h^1~Ii$hg9>iIfRck8Hj!nkES68OeF^mRDCizlA*h((%QK>xN`s$HyC0)*2-a=*H<|{yatT8|RDt6zx?Zt}6b!g?= zzehPV^;K;_vW(2sSx0Nw?(8MtH9&i#P+q~*pMRs*-@EGLwDXdCdPk>Q64&O7q>7ge z##p=O%SBPMy6TSoT0YLV;J$aFkNx-q?_`c=)l5Y^h8SY79EzCfGjYV}>-pWNKmY2@ zK>cmQn*<;0!|#`m`SiW%iOCH_oBi+42(CDaRG1Z|az_px!Bjm=3y*#y9tm>wTaauu z2!2Cw&u_!P0IvJtz;VE85d6`=?G5~qE7;fj!hN}uUWkFq82BAmu+I;_5U#kwz?E?j zuEvx3|H=IS#{W;||0nbR8~;C<|DVkNZ~Xsc{(mz6zw!T*`TxoM|Hl7M=Kr@KHhTv# z@Q`rLSG51m$um_O+w%ya2sKpCsP={kE(W;4uHy*S%P~yGpGgF1aTdB0-X4qbO;c5^4d=^C2ITfBwE9}&uD+*V;yNI$%7r{SW;P#8UiJ)$J3xd%* zD6bZVD*ytQf*?2;vf7N!vBVn?M^WJfSmpx8WJt$|6;P6@1LrcJuIDs(1ul22Qe3}W zaV3{WJ^Y0jcnf}A?j6)kbNAl3^{d@J{{232%oi+UWqz#rV}JJk zdY8C3>~I$?z{*{LgZHw=7PL1_L<|8aD!s=~hl6GD0HyD7zuaWYMdY1><>10O-f-hE z=eXa3X(2oh=bm&3Q@J*!f`f{iXz0?$ChNgE1YJ;RyaaU!sze9rAsg`|ztrC7v)609 z9Qe1#FXn@3Tlq-7@RjR-2J_4JTqgL$U+Yn!VW5jWJPe1oxj*Xk?RJ^A8q2O{0={5- ztmVLtAaOnxpg(plMi59sfP3YK#KqSY2L}QMpaKE%fCG1LhqsNlbpY(KJuO13X}+<1 zh+$j2tYP~Hf)n<=b_|EV1!w3T#3Q_e;Zeb5p!~c(x!~rk)a~1f!@jMxn8OpV4-fVG z%@6OlZ^PUyEof`lV&%&6h_OkcYekNbGq7*`^ujNA3=*`AdpFs7li1$YbdPw9DsfyF z;gOFw?yI@B?yFXH=MeW>^qC|XZBheOG|r>iL}_8u87)KNQGcX-2JgEbxs&;iGom9K z%cI4ET?QY#`f!58+g#nXUJ=0Obxx&52zAx#`fG_J$-^rsBA}q4KokT>NbW3{k(Oxp~*UbUus{5LwYWU~>=T2ix?C?Mp)QcM9DYl`F&9q74c^=mwXJTr&mB1pLG zR?D4*Z+Gb(h^N?Y(Hk)@$Q_hWIET6(M-809C`^TgL@M8ZZU&5m6>PWtL$X26FFjFU zr2Jvr{p`M%`tncz=VP3C!UG*X8H0T;CD`*3zxxX@(4{U5u%nbQbw*6*q#y&pq?Mqj z1QL=4bfc=2f`Wib41gq_AOYzBo)(TuZ1pKRBvz0`iJk-!r~rsCBBKNp%QMY1*TaoF*%`wohiaW=?7H7!)52Cd=f*_T z{-fbAwM0m@Km$`DRCGmSYy+^`!JrtK`063XbM!!f1HAEj@FPJm;o+-8DjKxjcr|8(k_-sHJG&=^4rZl~->o3Po;EUgQ%`Cfh{>5&G z)<63QwTg-P!mXUxT(y2_oD6D9g7;it2A>!W zm>6!;jYaD4K_FOx;eOf?NE{*@1PIJmMT!Da5|R~Pj`zeTdAnFx3p4Ig3$n+@uiAIx zyFUzZ$4_fD#!t4}UccAT^_`!@J3h7XvhQH%&R!D?$7Pp1@{LZ9_jps>Etys?HoYvTSV@%^45q=&!n-L~xu^DZ%Xz9S z`o=Tf)ZvoCk%Ox$z$rl)9o9C$r02uH{yoK=qP_Hp5LDVD>0tHFJ69W|n0E1cB zs2W%DlIb)vmozh-r5@Mw5f9L*j3WfMs}UkJ7=N6C*O@laAy6|oRLgx3$RY_wOuqrEz@ z03N{pSj4a*04-%?Td(7`c=J+UJ&gD?!7R|$y0t4#UFRy^0v5iIuc``~554SEbkbkq z>&~5uN-gVkLRVDi@Jg@z2u3mLEs~=pt%88YvVphsmeG!`{+i#x_y!FkxjbAfp<9p&}P!SPaF15DKJH*HW-Bki3;hGSa zeZy&d`nT#D^xs;rP9_w{tyoFaW zf305~rLi%qzx2Mu8_vshGUDE?FkBdxuX6W|Lhu!Q)DORmfhUFZ zHb3{*sJHKRQEgw|Csq@7R0oe0jAE&S`e61%N6Hjn+o?Ha$>W>_I_qQ{l)n?5~ze9=x( z+8nJKw%fZyGtc?>_}J^|?LRUT^hNBl@AzxWaknMd&vd@oW6UgDhY_KzTppfdm#;tN zC0}*Y1~?Kdf))~zg$Tz85MqE)P?o@2lr0tx#|gqq8sOnNVM=f?!13_#$uWfu0j5bo zDM6>`{U2}3<^_o&RYGDc!!pB{CwdO^cT2k?WoYkgk9&6}w%Ai{j&ZMHzvCrd{E5Fh zj$k=}Zug}JKJ+W-{ohyo?E7EIDA#?QdHLOILeSV>qmB1~n-InvKJ!KcfYC5s&JO!E zJVE6CJLRIz*9{jMHV?IZ_Q_B1zHj@NM>-}R`H&oV(nqUb$6cRUdtzO`{CauKLt%ft zLRaqaUDi5=h*%u9UM$$m<*x98`-7hleDl?PJlJFuj8y$a%~9w@|9v@Nntf^N{86#<%^(XhauH#_EP)R zVed&PpYBt>)tzsqB@Ku@D0LJ79~-|EB*x37CbEbfmK|}!ya;jX-+0*f0klcZ3O_Kh;vV}|fU3kK}=iFh-AB4{QX zR4XV~|LD6NpRL6D0U9`#^<)Ds8!X*|#4_wua&gj&Uz)pAUFV9_yl>>F3@ zBbbIGB9V(FB0`NJSdN?n2elES7XlKB01+K_e@B@d-vOv$_+32IOS-`@JhX93!1an! z^(u>$Y`kfz!_zrI^k*Z|ecA7%$Qc~PEK*yx8JS9^t^Nd?w9n-F!&jf+bp8vy_;ZiC zaP&6_E_k_5{ag%mGXwbe@A}wRzD3gqcfU5EWa3GrR}L5cw%Gm(=zjOjo~^h3`CsvK-*n!88wwjfD2Gzw zm%ofp$dpj1#7jBh4gpB@ZNY85$$vR}_BKs+t;L4Uws5w;qusT(8c!-&;GB|Ly~u1l zVG$aH0oDUh<|rp6l-ScugP>m{cWTep5ab2z)c#qukSoEiO9e(MofJuTqB~wy1G?2m zg5fXr_=mTjd8Ie+wN03**iL9621QNaKu-+c-HG8dN=f}pPak}k*S_?def`=}Rx;-N zAdB1Kg8g=Pf>Xk0zEM_pk(XZm5iU>rFF&m{!?Mk^(&@P3G|__6-awv8AX3VYQ_4-n5P8%7_|3R0kNeRI~Um4S#V$n6CSX^1h`m9IAOpr;70fYU!EvK z5O$S8V?tU;ErGB=!6RPmt)_&&-bBTwBu#y(9$!R?mTgMyqV+ObrBn{1t+CrTkKC8c z*RGe2Mf>!DM_%~8PiC{;zel3ObQPA=uw*=XqY1WXfwiD(Ov8|u*^KHRsacc2I=}*M zekeCW*zJbMZIt7mnrR$Xb9z z*=s!N>$?6buRR|h{IFI}+#hv6f-hYT3PI~;Am7FybHCl5swH()o?SCj1ef9!{pro6 zUW@i|co{*|iwwc8V=9ItpnOMU9j~Lr>hk1Xjxvo|$QtEGUcH^!rm)%_Wdh2ukkW*K z6q04dZ`cm0E~WG1x) zD2bh4w~r702Zn5SSa1{a7M|q1?NdwI+YK3|Gn;H1PRaKb(3=Md&=P1U?Tzvl2Rc}T z#6iVhgS<|dND=oJ_sn94<5z%M{=*+e7xl4|sEA|h{{(c08b1DC#ly7LMgRkrlG zd!HRvv|ftv20B|b(2_$o7n#R^Mf~BRzD6id-0I=4ZOW2Fo*sBFM!lzo&_h@Wk!*_l zAt}ZH8kQsvN@(N_EIg7yaWI=fLr6&)OqC(QP(T*ca4RXOFgYyLY>A!<5sDH+q@pG5 zE}@CCbZ8f>mTVs)P_U!dLzpU_JU7?=H*o%H`KG6b8J7dy%jJ6F^wSRyGrL+N3(=Wm ziNM8Etd@(uHrh^ypodgQ7F#8XD|4hs18li&Nt$D#M#||<+_J5{gJZzNfQwy0JQX{+}$S6O9-&eA{3nW@Hp0Jtf5XNqKMboZMN5l*9la3rCMlV z4_MgzvN{X#pnRGi`h0wCz`x{c+tgh=A;2v5wrkggn3XD!+wOt#YW_~?T($raMGJx< zLYAYIu;9Q9UVId zpkm!HTLmr>ErYtr5@ zwB-h0?)=Sbi`e0}oy)j1B^F#}7zU3axbQ-12OBcypi9B`%kh-54jy^GKURVq;D_Nn z_SXRi0w8c>P{=m0k$p)l@enmvCP0i6AZcJKIGS5w48=~vT#uQHmfdZ%8+@)B8I`&EX^j&@I* z*>6>J%k#4ye}#+RAK#a=+!4+hYot&vc#pK3Mb2b(TJ`Lc=%r_+afj?pqom^{$6^Y_$ZoA;U7JXx7S&vPFSZAUZne=on8U_DHHfwCMZIJRZI}?8zO116g-Pu|7^< zUDJ#?p*TWeGB0yDa+n!pE-i~?-f?tf%aCXjv5J|)mD(jf@-O_(7j0K_(ab{ZP?>i# z>m|$n{{PV)r`NK&D^Mv;03n3L@tvEvcDyn>@scN`7g%MvLJ)8H)H1uG!qgpf z&a1ix)Y&5m=hH_5jX{6|>SW+_Wyt9r0*C8=n?$su9omRgNorE9+W8hTn9&90u&rmlZ1ovHcniD#2i!% z$PgesKq?vyHBO=`3pr_zI=~ewHbsxvCQHlaSgvvv9rnwm#oK~xd)IhdbXR)?fAY+Q zEaDvdz7QSHYel%*7CeP({K#zkMSR#--g*+jV{rhFJ3w8OUH>QsE;DnbYcBcL6GG0k z?RtB33tLz^Y~dD@&E*$+S+uQjmef+mLO!k!>nJ*Mj#S$ut@G?{dfce!D7jE1sWzhe zbcn1@OIrZ7kU&BRWe*cGiVQ6iIc!TQ{(`9-0t%J|y^!T& zKA!VG`iGmkfz_*l4}#E+7DTP6QqH7?n7L|l6)78*mC7~iNTqDS0#ee#-tPM$>lkIz zT~2jsOUKvL;nY#g(C4S~2(|PaOWzU`iSil-KJSi}DP1#@6h)vR<_M#;EYRAObc$1M z8U|8*mEB^Q+ts6Ht9?%w1Vg44iuE~y(^3!vT_L4mm}O}&lWxtk`|95j=B>^YAn>JJVQn+Tvbcr?7mP0eUTIf1V_pG8 zhZOctn2&I@Y=MAalm!nJ`UE`VBFqE8fyQRHo`TrEL6)0+q-*$rmlj48*3Vg%T_0Qo z;f~KlqX{yR-HDEy!=wNH*8aYD-Sfj^u6=g>_5yKWrA246T3$=5{j7oO~X^uje0cW%VL=En|H6#>za=w(HK{dCc^>vM=pz z;Rek@ju;^ILq=&9m zPy2V@yxP!_WQvM80<*+}{lSwi-Q#!(dNWe9h{QH4W=a+8A!Ft(Q@@BO&bWgo8g z+}RuWN6%lq*K^$RhBRAPOtaATi$bsb-Zg@~UG6nK$Vf1KT2DQB=99#F!UN1Tz0vwO zJ`{-=-N-j^cDW)|!Hr>}Fv*r$I~doFY=RIdiq+^J!?Zhy_R547s4RqyIck!2E40-mhBhVG! zk4b^&N|m8wbGTUd&0cZ*rP>2ozjrioHa9mfbw?Hx+>&tA6Mgw$DCbe5_PU4(4y1HS3Y(1~i;oQDHYbgEZ*xLyYbdZ46aD2*!<7E07TKti7(9SG;N z(+VeK>hat}qhWhPEm9MC3&62d5hTp~<3_FM&nC;VHEcl(W!IY$w{rPQNyt1?OHIR$dnL%fa+WP!Dgt!>>Nrj0gJ7SEQ~=7fUde4DXgGyhLFhQlHzLb&EfU@Ld_k=>8S-|hKxoHy^jYT==1CYFwmvm zz(-0kU?a0jLqELH0w?Z=|(=&D2EMgOCCM@9c&FjkGt~-V`R< z-m*99HOj_17$gAVV$I^z4Kbvbn}((Zi`f2a;)350Ej!9I(18}*#Qa}f!fj-;CE0>b zmN&d!)2oH-60sIQ3QPjmNedrC9B$MRMKWdeoZ}3A(a=> zmPEh!?gw+0NO_Y3UXXyV4)nam;5xly)uM5MLs=BJRxd>H zbY5Wsz6J>pN0vF3ki#1?pi)@0t_UPd+re`vU6ev1Oo93bvxckI4lO-iihJ}FC_~wT z)hfqS03Zhs4UBmQpau#|fHv4yU}6?4DF};u@PsW_S^P4~*js1)q?6EMZkN^6nM=0f z`ZA)z4Iv5)%$rJC1g@~Qlq={#v%Zy5%N%oHg(eHj_RRb-ET7$*;LU)$EL6;@H%INR z)iPpEWojwRatbE`DQKz*p_7^zJ#HsD7JVt|t2aJ*W#2bsnBEYNSIsDeGBp^CvHSjx za*1ynBxkKU;i-;sl4aqxNHsX+;Bu&X1{_#YpURbSgBWaK4&H`|YYZx|&5^xy=xBFE zUV<}VB9Kbthx=;@c}qp>2we62kl7#v*@o0AF7{iaWsp#0qNP`OvwyB#`Cma+$ywPk z<^~21$CC;kSg3=bW=sYkZMt3i(Xw|e+4UK>os6NMYXeGLu_%e`aQf z-pL2Mt%_LRCu`P)91F8qvl0tCW3X^hSG^Vi9uc+(GpKE7+1NIA*d0RvrIIq-;$9-- z0e>3@2hi2&H9-1{r}g$W$Dn5!Bnwg^Y~;*cJUA~9d_X!lx2yK{}5CIA>Tq2OSRBMTX-j-7n!yqqri z`yf|KXSA@#U*QS}7az5=L!Y2cFJiC{UfsAXtw@nS(B)D+~S zPMxqE(gJBCY)R({#cr%f3dg~%1kgFa0~%lehyjM`K#WKp1Xwr}7>LFRiqoC(;<&`w z_-K(^leFHvv<9JID$RgW7+YydTWvMV60MO1l?Ez?~0D2S_ zbO6)n;39MeE=&i&Pl>I@Ep3?~nGFp4RpUfG07i@>GlgwNpr=;%~TCOVHf$zj${SpWJEkDJVzV(0Kg0qj_^lE#?*426WDRUF) z#q$dZ4n1j~wxc(ECb2ce=PEB z9zr(Rd3kPGu~b<5YF^vv2kz&uuJdP$oNdm#40C9)e&j; zoiBPw1z@5^A0mdhiCniyN)=Mc-wuoH>dU_7w4mwRgSJ0W$jxgF^F|-mj{o(UoO3im zJsmV$?egV6K>C#^SLq%uK~ioe%+#nh7y~6NP}c^4B)rvTTmM46BC9QM1PJyu*y|Pu z0Zs}az(2k-^VfNDb#wFD?eKw&(jW>3^J^sHhCrcn)uhT1>k1#hrC@=UyOp}C)NX5C zsqGfB&*1e>kL~i+rwC$umDf1D`K^z0^WnWO4dvx7u5HJ8cNd;IFENrBj+zCokR|rs zp7vuCfQN&+X;C7+TW8i43ygWT4=p}2q+|P+mrH*0z%Irm9~@?t2q`Q|OP=!ow!-d&a4M% z1{(iuYBz9!Pjs%7ju*cesfem{`w-3+G^}`)*Z%FXFH+=iU zvicAtg5mJs;P~mMe*9p*Eh!BL(60$_Qw;UB5zKsZIyH5 z^d%-duzF->Wh7)2SflnQg4fg}$N z1CzkPm|C;5#eQpqG%Yhk!~FFUbWKK33%&_y!wwH@cK(u+)_wH0Z@cdC_{=LkeSPAS zoIl>>N!r>yLzr*O3&cQ`XASVg8Iifg17HWw*K2O08ydPD)n>c}fd z6VL~5lAaM*XkA`ZPAA9^uJtiL&bckHxiea)M_WG^`&{nh9`2jJKD^biT!~z=i`RA< z?p&~c$NV*dZV`!U6<{i56KL?J%qZ6ADzpR+fQ7SwkZvFgfCj?B9w?yfO_7grFxsY^EZaGAt5O?IEu`-k7=! zkC=PC{0{B>2j>XqeHX!>=~J&`V9|K#pTeaeaYZNSz2Da}mMYyL<2}d@o#$(wjbLb6(q`_8Bdg(SA|a@h#`Ea=(bMWtuy$5!eHu zJA7b(^Tp6koPGAHb4XyOgae+Tpi~vWvS;;Sk^w)z_tD6mrf&sz!X3~-3@-g4evsc9dbXNt_=i42Ks2UNrcv_N`y z$Jm5~$VDf*Gy#nXK%cGgJV@G2>2!m(3KI{#jM|ym>d1l|nvXiCF=1eHeL4?Pm@(rE zRb!2HcWL@i?WoiuNJU!X0*ytir<6)S^5pce>@%6$b-Kh3z76P_1hLTNV8Y9e?%SIs z0OdLfVq4n#XaVO5Ew!`-w?>jKpja#^) zSgDgf!?1T&n|L8>7-jH!**aYLiPknw+?!}InCfH3Ar4KOL@3?j{=Z#p)~&OF?XC>- zKD);!^w-~;=A@62AOE+H?ZO*(WDkE~&*=oYNGX$Vc(Cb=^&c}+ zS27PFjVRf?k{klgipOgLk^v(|Ym_A@!&Z&e&H{h_Pn>HIWf>bRf9y>f?SVn%%2W^- zS#s>KmJ%Pb1?_mRiWsG7rg;vTyccSbMbH=(LIFSmGm$fhU@&0|6>7+nh0gh@Mdj7Q za2)f~M?SU9JhI&oIF>Ki=rX_a!~Ep_#gB!o3o8$#T@iP7FaMis`{xDR2sucapp9t; zNHWfuvUSG7K*Ip0U?fon&hS355>Ttrkdy?sUb!sF0SN1k>}dV87EN5=)y11^@)mjB zM(&nbzGYta{IIG0rT_h>Z~O||F@!{%@-}-_W(;5vwh;~WdwoLH3TZg2n0^0MstXap z&&3wYNJbIDNJeHY<7W`Bhx=OcI_8$m@ywmx{yTnhxp)4`*t96TR)_%rptpW* zwapi@ws}PHUF^4A#E2H#r5sci%4M6B@-PlL2UMNaaAx-AbWXd&WSH_Wh;qMCGf}aQ z&b&j}3lFn8SZ>iZFMxsCCameQ%qECTYa)XKTY+YXOJ}i^cj{eb&ZIjNd<}jJoCFV| z=Qe?mZRyB@ZUN}bg(I#e10%VbR!Jk#9!>!T4k}Fsfk>47ogH?IepXtx*UV!C$&6^ndNy;8J7SHkX;h7~ zr~x?_VTd&J#O_!s=s0efxt&B6ytH)D?Lu`3lu3i7L9OjxUzgYTIWBp4sON_SHZ6L< zYrXLH*3aY;o98C+L=)pBd!|?M?3`wR87Wy}9W#&$w-Tr^3n$b>pekuOQfR;zA|^P* ziC%_A6VQnpj`BIV2uZ06jKQ!cw)oN1+6|NnK##2pjD7G(=05#V7I`rzU?OdP2wpn!=* z1t1^0TMOA)>}gWJm=xf{C1x#4djqv5BT~AR$z6s;2))`QPD{cF+OR2?nK!khLI@1-$379ewO*(nEwq;klS=GdTzq zt+A2DXyYiGBEoG9A%&O~2oLVyDy(cCGuDp1YrSP&;9@U(<|F*_;Qc7PE14S2lpz*0 z2x}~dnG4C-eM0~FptvnU=4Iav%Lnbf>Vse2?n&^03*PyqmBSZ-PyS)bYJyFV zShnkJ-`lg(F=l$&{jA=2$9}LWT}E%gA}mU?4u-&6SRSk9?TDmx?`h}58hP&-m4bVgW=t}h`j3*#dLTmf7WyfS*8B~>O?#CHbJGvPhRpp*r@V9An| zOO~MbM3ar&BNbB7GCNzovv4s6WrI^#mr!;=)4<52IznLfi(e19CZ}Y{)WIk0?${nvNs@B840jtOvr=MCG7k zyT`<>8ib?S<{H`+VzqY_&aRLL%78H(G^)ndn{5%-ym8f87v?RDfK(gvewnJ?^JYhJ zL4XX6hX@Cm1WQPfts-9k`o-_?99XnD8s-f>ObzYb*Ic#!FEaVI6i?(jxR>^)wimKF zotg_7^bk=rnSh)ETw`QgO<4!jwc<>guT$xpmkHWOC}4H~1+wrvfaL>1sUT{)`UBYr z2o*+f2t6*rX6KNIR@1$mqga$Oyp3|+8btYtF(VUxtUv)tB$V(F#C&^gk?F{;onf>G zT9o=(otdqXjTh$4gJ>E~`_P#WG)as?8j3QT1Wp?;=h-UzbPGB8-H87^fq(5`ktc1DI9DjwGmY$;OiEVg|-eU z54e;S8UQL{ML`ZhVz!^MJ?7L|HRr+@XO0!uc>3Oo7&TY{5>AoPe*71?a;mZsGttC+ zQ;^9H*o_@*B@X_}K14hM)KBQXZ$9#qy8hk=-t7E%_h(SaO2${Tbyg7Lpo%U> zkjDYH#RAVXBiuM0M=c3>p%_I$xEE zqDT$P&^2!^`<*UN6B1uhHnHnndgcG`ZqBPpc8gl3MLQ9mZRB`E()><4kLLZy?{VKh z`|j^A)L$F(rKLpi!`<1JAN|*!Zm?<58h9npe+jSZ;A7tnbMyMQtG$uAuq>gscXi>n z>cjg3cd{AbdRcH*_I+;2oIQG+ZR<=iY0Qq+NyVbIMF)HCkF z$jX|-?zP16ij8G3Pfs&^tGwn-l$!Urqo3pm zV;5rEKydI{OpDl7Nh!fSm&aE;c+tz}d2^XQbSWRYga;XiIl2WzvpYr`)GFECPbMx;y0bFi6HY~2WnXVfA=vF(b#YA6^=gig$9t85a&BJjg_(PQnYZ({T6 z+_zX=%f)JGDpO=k`?UO=595RRiVu~2DwkS4T8j6)_N6<#mhHY&IL-~8dpXzaW<;(f zZ8an#88i0R_Mf3tLJh!ve+mMGS6>`-Kv7Vh65J#Rh$naI@11W|BT#VquwMD&-p17z z-c$1_pO|&ok)C+_^-dO|la%J}7d9^BS$LFPBeYWBHO{!FyZOcKPjGniq?_(z2nGQ&$gwhs`rS+!8hYDWw^neUU8;|J&Co>cTNsK3ZCYkVmMG+(< zgaiW}Rzjr@39$gGUh+V>{#>b|jwOB1tMTdS-RJK;UoV+A;EzJ^l7Zun!y&#`-1V+- zS56mpHrqXA_-UItVn#fbeWhNScWG`Bqe?9%NPqx#HDArGO(9kQ1xAo{VnsNd{fLYQ zfIvL{UABuzSe+wV( zZ~Mes#iK6?m02qh|FDnbz$w`)pTvu*2m{Je9{c zm%e4(_vYzYp1pZM$D5h2tgMIKQAQTE^oESUMHgN&=o}>ke40DV!!5u8obZ5N2_V2t z2|*`Zmc$e{Q9`T|hY<*-c`5v`jP00eMR>1eX|*sie0A#ZW06!h%V8ACQ_Bg_)sN4i zSnnqz;)$6X754a%x18;DR;Wx{!It|_8lF*90HFdl)|oAm;Q$^+eHsB%Fh<0I0EYmA zbnYlUfWvbC3KlRe86}&lg_2Wss#6Dz0-jtPi8!hOL9+|2n|sCV^yE`K-rdqIT=zTJ z*3IACuiwMU%s9TssDy$ZFrWvl&HlNS=-?i>9r5HGj^80jbA4ICqY_rbD^`U>H2;?W z`>)T&&wfvR*Oy;j{=;Tvi5`<5OANrWNC25wl~knA$68drlnL$%qFGjjn^t>I=@W~x zicLes=dDy!rici=xgd5amJ- z)d>Oz592YwAwc(tLdxRA?g!?^>phj;u`xf+vg+}GOFjR^xFnatW8>JO_q00-looAE zX2_oG<%TrrMOGxt!bS;BOq^k#$%Sv{Y>td~m#6GmCmwxL)UHA8e9893`#leCdPVI_ z>df0`eQ`>48e-w-qaS^=iCt4XKqCkh`IP{^f6C?e3J)O=J9cA=Gu5H3KkNMO2uy@j zd%8S;h*2UKTWn0}z9vHf1B;Sg>B>KI^{KYUr>yTpvl||yJAdpW**m}TiG6>~9^<9W zy#D;5U);ys2!i}93*IK=6W*WA^|X(O^CusLR?mB9(KX$&$shx;RRYJrfnWgQfWS%u zPPiY4AR>sM#qs;LrQo>dJ8A4B`VQL?AZFEOGU`P){a>HzUHj`V`?|NR?uM@C$!_Fo zum6<0o1@F!9zQ2`jCXc$t>)<3-|CCEv&~h_cY}B8W={@X%6J>t*h`uxlUvFNW5!yM zstjVh7dA?pE>zYkL6??R13?dd0L~DttOe@u3YONCD^g4j6vAOnof9#Vu8MkyMz-0q zG4>yR#cCj-p z9zA&8>u1M%J9b!BcBkW`R<`&)oDghe-7(VHyObz+gl{!pws$W3zetYgG70;}tGe4uDV`;{!g z!2}V#x7K+FDJ9l@p_008xwqh*RbC9amW;zouA)+E=QD6}q@W~{HfWlrP6~w-(5A4) zoz?0^0|ROT#lV+396U`8+@NtVC_p=AK7Z}efu6;9ZKsvX2a-$X06hhz3#kUNWv%ew5&WKA4?0%aPI9{LHLJy4`$JtehKY|4 z6Wkg?2JGODnQUkJX8hat*OQx)i|h)8Z#IaB}tNo)D*J<0PR&Pr&rTkevg&a z=!TyjR=oAzr#^M(<4@Q3C(bO*E7CY6%hX$bG(Li_!l_3SQHD7hGdFJD?sIqs4l@(d zQYY|O6P2ozgz|~2s)b+)c={@pi$i*$R{M}Zx&$yd>4amUo*|?VG6RTdBCCnx0x=QE z6?l#|-t+V2>3KO_zO6FG9p*M{WDPt26}UvWVYQUC@};i6h?0q`yO9N6D=Q)|;ta^f zgL@<=&ffIfyEI<;U`~F){l*(7`=Y2NuZz{WJYWC1RZdU-6!%_jnOjRrfO=hObW9y^ zJUl=*gc9xpf!Yi@jWrBvK-QrI`%8fN<$@%4I~be7bx}*Uk!w*1$Iumi@)6$suIJgm zIG)k%j%K_@5vTjzz$k<8VRuj1%_-+_PZDBLQ0wnCWU^NnJc#Y1=|AntjY=*?s#T2# z^UkZSx+Ifm7n4jV04iybBU;nm1n?;ti@1Ug3hRVGHdzDfL>*wD06pM=u&S|dEtVwh z3W}~|#BwB2S|A-sd(j}0jGa#KAptUG-98T3{7{E@x_#)-J3JahQhrCYV+GUJWmmjmkHb1xA6aky}lcgHPp*dSlS|GK04R zKHfg@xbupnMo0{1M*I|atBSbkXnpkBG9qHa2o!kW*L~sDe+j%mA*JRN`u=1j1gP+@ z)-(v)2|+^XbauLjMPMq1BV(Y-1~o{-I1A-(K0g~@Xhw15E$lt#(mm|AO?#ADUc8JN z9_&ZrvrN1nR|VUZS(o;B$&&H{lmbE!{d6EzQ(-^ApNLUVumA@Qft9NfCjsLj1T&3@ z4)S0Rr!3yJ5i}ox?)W(%d9LQUPt!U4OnvsBS*u+%2VvHoujON0y|J%0PP&e>55ut4 zpAx5AvFyy{QK`c?R8oa^0jfX^7Gj2$6>wIdmlUW#fBPL;G=48c}D!r&1V^6KPp^dxP=Dr*Ziwdaz%) zqMqe_$ho*upL@&ohZXtGF`_A0M#hsd=oYPN(xiN}iPg6XGKnnJJ znPmOLYV1#!#nZdrI;TXB!~ThTvX}4v$tN!!djVEe%VUj52o>cjQ+_;M4%ws4W54Sc zYdbzkbxpPfAJ2v55#ot?8GnQYb+{0_3;M0E<%(^1?20SpvLKOSnCfMeOlU3xD*yIx z=#z~PJ@`FOwMC;Cw&&zA&aNK#_xys@D=%KJvfM1N3>|BH#Lw^VC3wie1n4PZl~@r{ zLG9&n(%BB3WyD1-fr1<4DA6RV&xr}x3={}Kf#lJn&?O0Gh*r4400R_WcAWsXRcZwk zuH0G)+%?}Uz(}&H@lBM<^y#{P$IHCT_VsdWTkmmZ-xUMN8~Ds0JnxhL;omsMtXN+U zAKFYK*1aM6P4g~nIH+Z6F5;a)BrVy1Ev4L>)BzvvBqE+ zFh1&|C{Ny>a->W@%NvS75)v|J$)*{$!Y4NU*eGqR)3ZP9})zQfzJ^)&l+*e z%c{VZZ*j^9_6dxH0vVxAKmrhe1TaN795|Lhq5{H$0Riv;7pT}glo$b07!KwpsQLN~?al3nC&!Ki~5Y?C==9^C1lxZW4(duGE zxY7`g6c8l169E{zRPX~Qhw$hDqK4p(iyr}59Fij_pvC|lDFLa`5lbGCCKM{WB=w}$ z+F_7Rd@}1|f5;YOiPE8gu{Z-D&35tEzA{c%`eqa;`mW%#eW@Phx+P%sBef~Cl0y_<9LnF0ZGG!QR3$#WJ7vkh5v1u^?wYk=K76B@X7l*Q+0! zcYh)V%AsuHMIN8&V)04NMvb#2%g1nIqiCZUavCGiH;q|T=K$M7k>pnm`3uwRftTek z07kTU6;vdr}HC#_bBI!`O zYEVA4&GYe+$+!b_;1Qt_^v}YVK|yJXFOcw-(Wrn;c_^oADBoi@T-E;wY}*TZ<*SfV zcl5O2!na=@I!nt&CiO!f_w^6%aQp73anigbK13C1ue6UYu)T|%aYRHJv6M!U0_U(b zV@ie_Ed<4JG7NVNkR64nJ+O2jzyT)$+#INbkx=k~afwD~HZrd2@%;1Vq@Z`*^J6`k zx-4-lY6#D*okAs2i3DpT zY0NNCr^X>ik<1(nH!xfSFi>>VF#_u801CDj^c-GbFX4~xb_$_uN^h%1)~IvW$<_#5 zdW?~a4WJ2xk>pumd;4gAI)M8tue-$BzAdPWC1VqJp{Fy_;N~)QB}c%KI2db0gJy(D2mM zXIA9jQ-Cro=;dhWy@p2Q8I33{v10YX1osD*8a(ZjOD9_=^v;!h?j*~oYQKonuW*%D z3U8|_+uEAWMqtafl5Js@N-CM_Zs~vo<^g`-{5Tu}A?=lah0#Gnp`$M@;&*wu@oa0v zR@69=H=ojI!QM`~LplcA%v^wL0+DheD-^;$UVt;{O~T5+p^xj4FTLH|``B|F#;IwU z$(kRv^JVpvUyM^HbseWauQMKOx29e)yqXx*iAx;5vUr#T`UVix^Z?;iV>S-}OYdl? zBCouDV;}*M7$gRO*NBiz%JZxI@?Z@!0F*4XZg6*=_T2 z1nb8EtMOUze*~W$7(TzS^0rPd&%Vs-uAkGR`*fliKeI>o?H|A!;@KZFS6lfqvQ`dm zl|45JGHDoCG{d&1ClE*=2oPK&ybN#|U9O-^4VS$@ka#c-{XI|1+8EtlGgHi6Zg1#we$W&tSa#%|kaX0`dXo(5|I849>6%YIhTYzrV9m6iWo`aNG zBUF0aKOcQm=fCEQ`6GYK$Ck%7%|a_VR;2qZI`T;&EM0`ndVHazGS$<&Yzi31K@&CG-U6g2IA_wv5tOZZWzmMkuslp7be+(f}vq z9uk8M!CL7^q1Gky+4P`m0r}Auml|_SY!`Lm*^`aECmTKHISIbqdJzxsOhcaKw zrT(;bd}Xv=+FbpI%cK9H3#x@*B-x^4?+fd&nRb4BdUZtL}*;Pg*x zq^$ldbRQz*KlCHN{pzY;oR{97`^BB7OLGl{>zQtk&&glBc>mrK4_-ACsu75r$B1Be z32*mKodzYP#A4g;I5gPPpY&6W{iw@+~G}Lpu2WoZWsoL zmZ4&rb``A_ivZ(H6nJ{Y6jZwcSb$25rvNFKGBZ#l08ShsSP3`a=n&o1hT9o{2RI-( z(nHTWpjRsxOu!PI;!`xbqzR2iIl#e{5CVwx6XDwVTjb;W_U*B(9jBnT-S0DBytjHC ziNRS->1jww_C?(?93_n1KtZ1j#)}h@6XbVanLJG)fTZ zGJs`%f|=^-RMtQaFXtjX3RKZqFaxQxxpaIxdJ*y#$gABMcIc!PgdgM^>2!-m7$S>G(uoA z$3PuL;YARD@v2rZ0)@)!2B4q>C`u^Szq(U#@M5xY#KG5ZX(!gAh ztg76D8=knB9iz^eHv#pZ^bh)~gD*e$TGqLwc~qlDdBMtTE@$uJ4htT2Ql4h#C2El} z){Hh=WCBvFukc};!xwa;JsEnNC(VPGolRL_HgF)IqW~UYo8>eDoB$4R6d?`JQqil{ zs_8Hrmx2<>+Ygp)ySqYcwcy&a(;MRD|G*6@2f7=~$`k)hJfY^hQe6m;G3}7r2_H-F zzURPaq5t$iey(AU`z%u*2$!C(UCNl@SmVTk(UTLG&#fFw-pdN1Sqw^5Gf7k<;Efi> zl%Qq+OMoJffXq#W0+>PywiO8O7|;^b!{VoGdXo%It`=40`6j!va>xPhEJHW9_ib&p zy!$&2r!W5{GkxnHv47xu)qNO#61Ru_x31}ii4dcFboQa<@?-I|M0ItqNTb8mtlqPh zGJNW?LHcS4SK!BDDgkSpp;&PaT6EYIAeE za!f`razxnA{)itPri}!MF5v86j_mhI3j0230;5Tw69f>` zWsZ)&VM}h2LW*Q#{!*J9#*k7}5?V{=a9|$wMgk1iX&@bh0f|623Ov<;9|{h*p&=aT z^Lk13?=St`u+PmW$N)ru_9oW=Pvr_v$y*Z|AP3OY>Ur#|($*ql5)EX!AngJkLcu7F z`Ke5TYv{$|9n>!93Q=()le$)*y()kAr)-skHI^l`C`ceY4!)D%My@Tu?G*W>;7Q>_ zCS_h$c(kI}e9uqLTdzhxLScl`U;$U;@J0#X`L1`6Yhc{sd3=G*RZ&#E`-Z>L-IW}@E7?vg1K zVv8CppmM|hcp1Jq|Uxzb6;DA;*t>_n?x5v91jH3clKatk*XUp z;JX#3A=1TuPGr>Ycv)Ls_|bg)3m2WgKlja`LgyRYsq3b z-MJGNreHWk3hjP>&vRcvQ?B`(@UYLGEh-%BpEz4kqOJ3#f&rb7?{ZUO}I+$y@0=~pf2H+ z*C~m@I>E)SUYijS)gl$r98D2$pXlv2}il26S%Gx;Y>^+!0o%PN+PC7 zJ)vWcJe?;o(5eBPI~+kuaTYl4VIAn;aS8|OU~%YSl%8NV*AvJx_}na|qDwW90+5Qj z2^~_$fgWg5frAdf*3UpX$Q#SdiI;3hUqWyM5;QM)8rQ&_A79P!W#}B-9eqg0=Op&vc zoZfiUvvPWkjaOrOu|&HG3?Qf-zu4%N$Y2Y;+rS&(U`}=eo~J&Hk3c#6rSK9d9llaI z8j{Lfv(S=O!m5N?Pq$PXe7Q^qfN;jXMcDKef$KajWlxtPth;PXAa zyZ9Oao{Xhyq|%H}9Vw;`h1$2`!2`q|0nWh_2cssOJ0~Cj!C?>Q)Ta-$&Qnv3D;re2 zU%SWI=(1;5aVx+(Dj)Nk{{lV!(bYd!58kc5)#{SZHbftnjaZ>xZ0?k3Xd0FP6GuTI zIXI9i*#M>$awfh2f)l=gP%i)@Amr;DKVDtO5z(n(mQcvp5cC>7VT2QJ+S&AG7URVk z#c?n1IOA0|+kH1(7-~0SveFp%ut9fJm%C2LL=-8@3&w%8B9>e#Ir0!O$b(hzO%C*X zJv~Z*1}I428eU;2>}lf*^k7Tf`!P~c8=-N|&L+Beozkc44prIS-m8iLEM%4z<5CqG z{V-%PD#Z*t12PszrI2>7WP5-!0hkhZq27YXUi9qyP{y zK)Itbfsi!70HEdx;b3im5_2dd7lC=&jW!PzY?&|K@3X@*jW|&wYn&{2Rv20W2Bt9) z%rZ*H1kgNf-HAj9ffoRgNGTlAz|=E|X%Y>q@xU1MvLyhDFNrodmhl8r&7BFWr>R>&pKoqHht4IoY z@HxPG)Xpn_XDhc*1QNn$^OQt02~*MK-m(;2?}|Phada}vGMIF-1nf)_MM3D``bWR| z136vApzzQGu3&oz+cCzcxKZ%z{t=h^YG?O0ec@L#XUZuvS4l+*gzo&<1kk8S01g7M zP!&!vUQghJmyvkj!*awJ*qhTg;nGP{Y1=_59qN2OUqHm+wP(hggmT5#@$~h@cI@u& zKC_;qGw?s|i1wDQ-ug&>e|*%Rn!0;M)DOSIXa9kEOMcdkNEsm_aB=Bgh{btlK~sQC z9jvJXkxo)OLO6M*eA37$M;AsrD4pHFvNUK(1nLV9i#(Xts$vGhO;l2TMFO_AtRtep$zLL zjuASPv_f94M?=XjH2$9w`}%&dlMQW|(>N^fT4u}Wdt@KL#Y?J{@-9L#$x6o@U1IVg7ya&S;0dK|;;+9p~ECcQzyHj|~M zosQ5kE{@ejvEt6%YBG!j4J2&_nMJj+LrHa-z)6WS@XEp#KGZiBy?xV;b5ZtPmdnm4 zE*?MPlo3tNGW0{l7*ZllNtR3CGD5Xypa5aYz5up|0t7u6B%;7bqDY6T9<|HWsK2+K zFTlWlyFe42QFlj*8d(EKoPhx{uzz-etJd|hHU`D!1e0J1)IJF!+hvpkEO0a~fD)Ax z3Q)6v4t@B7;sJQoLml+&FFYfLROg{()YMSV&?a<9T1k?5QlHntI)C&kQljYIyDFUC zPLJ+611bS0=6+zjtd#w9Q^C}f311$5!I#?grLjT1KvTC5g9~2cHCVfR&spMA91$58t6lF!3xLRz=v!6MWOQ^X6HEd;U^lY49-`cE zq>Cm^SrcwJK|*Vg{tLcH@lr?)$@cdL7jIR2oE8#TVi+nA_E!vE<4k~Ok1s4|#oIJ> zA7@v}Ol?UiD(Xl56|0S8aq>~!%BQz|IPI7eyPDDvg$Z0XiUjW_zK2Ed8k{iH znfwgF!FV-0sDK(8H2~a54%9@!4LaG(pb4VnYGocpn#dcKkbQeQybF%FfeR(FXiR83 z=HnAXBFrFErbPK>Tf2*=f_PIfJq`G#{V`svW;sQg73Phg;1`4nJXrw=1QH4GL;^fP z2=;}2fxJU{0xL;{P$4YTbssi_dv8Z3K9aT5F7Olp%p38P?_}Kd-1d*=OMO^-U7|VQ zO7^%qaD33S>$VT_*B(CDU%6bp-!2<*#fR%ldVcpDtxHm?6FXHyvNS*gD5!+OY9%Ed z1PCqTN)^|Bp>J9){`)lZ@-pXT z3eSft{Oux7hU^ewX|1H3-#YO3?M7naGE>+vLKGNwxk>e@NQc-jMYSx(M8ejkjKWYX zAF{08%LXHq)`Af5r7sZO5cYd0Q*?X+htnuQF&rGQFmPh5H56TLrDkSRFI?BJBtE%e zC1QKn56P@>2w`MxEEuWGbITymEVSQHLAZ6z);FIRi?yLaar ziJY*V9uff!82efRXrO`t$!G{9&>DmsA^~%N1wiJgmw0?>&{4Wl#e%mK;CORGDItuv2InPk|(05PoJJEqayUqX!o(;RG$PDCiX{ zoB-FsSh-TO0gzgf_SW^FX;5%YJ_gz}Yb9%}FAosP*{5wo<`P)5Wk^6saL|x(!JJTV zs1U9kI15%ly6I5c*GTU*U{fO5;J`zt^b5P2@u*KP1tCOA0G&q-W7U5Dh2AuGlVD!v zt#3h00$QxRXzj_LQaIAlp0ZvRDQL-%#2e8YPYt(td<`r&j%moWWsi3B4=ofK7qu}3 zVrBKg_E7Kc^2CTZ7)wShWQHAN0x0bi(A2TkVKKG^ws1Pg;PpwPO@3(y%pdy7qp(v^ zN+T(kk|IdB*Gb!?V-SFVu%_&C&d|=j5j9#jVB5==&w6lo>*cOx@yz@=b9y%GE5qnAKF@hR zkoc8kY|elaCgNU(@cjrm7fApW1dcIVixXSjLxMzrQXJ}R5-`2H0xBqOv8MviHCs!c ziLGioZavTS%`-m}`GT;vR9!!gs-!~tVI$cclQOV<$Feka2}#} zp0B^>ihi~dSGgiXm+{IQL@Q{zRXQ?N8d=Fm1EiqE0FPN<qO*yxM`93?arjHZ2j%yIyxbrTkoTmdQ&+q4kL+LJ5RU8w~K#2QGQTG5B1$xtg*70VZB(TA@fwX>} z+q5Xija9PZ)h5zpWDOUPlg|TVlVT|=nr(c(dCUX-B+tQV>MxVocI$(^F`Q6unp6lw zG}0W7Tjeju{wpX|=yS+Bm8<2>TP6Z~KPqunUM3_mH%~5c5Er=wHb7c=>Z?!F9=34b zY@>+wEYqCggd#8n2&gT~#PAZ9g#0Pj*0k60g~-N>GX2s*^@oe=ujm1b?ii7R(b`3HJ7RlAM5qijipX9m|#yp%8Bp*28 zIpJ0bCELIYMgTbEfiPiK*HcUV(leFFPSuR917r^=i6har`8O4JmU+nQaXY}v;DJ9fnHXN%l@Hp=sSZW(AD35Mw&Z@u;hVtv|4vKW*!R;sW zXO4P6gud+bXLr4I>Goudk}vZdMy|2{fotzR_gPId71Qnr3_Zmr10(>(7j;eoiZ)i6 z)Kr67$krrnF}lSR;=-@y=HcQW=d@pVQqbqMr}WVAar1oIle~PHnXE7NVUkUCKx7m+ z+JPVr2@}T2E3nthOWwrlcmc zy>6mfHHpnqVpDwdOs{yxb9u(=na_CJG+jJj`YG>C-Tfp#Gw@%p^|?3oT=k9n5%Agh z`TyMZMwhwzM}9pnOXHKAEZ+U<#K(W4^gi#i!LdYViG(%)OEcCkV+-Vw{e*e}(J-$B zK+wc+-0%h>1s0CPjwzX4$~)hV-^qJ2cPfET9d!_Wdr$Z2*tSI9qIDM!`!^7tFJWDR z3%l?K6v9=$c`kkF<12N_y`1pP>%57) zIp$>*O&70biQIxFND9o&a`aT99cdB@RfH6qB_(`Fk3Mh#f_)DlJUn0phj9?-SUuUU zgIO&4aPOeD0199@5ZQut_h<+~qz26h<_*DJ?LcWwY1L*l)f6WWBi?=^XM#H>R{1OEVjX>!8V#0Rathp+j^vs@Mn# z^^xk|?8&x&lRNmkA{5uyGrsFt`R7Er8J4b*OLgL27AE3q@3R7I2@q85ISk4Hs!GR* z+2tt!IY}O?8@FKuw14Bp{Zr|a-{So!E28kw?7Dm1_x%oUc6uVBUgI z+2@iPw70!ps>Cwevm;Up-9!XoAU}?=k2`a$J9LNIJWh*+={f|1D-vnQ~H3EfYd~+H91>C2t4o*m;^K^)Zsb&lnI zl{;GX>!C^3C9U{%CBnRRnC@`4HjV^kA zYF%k@+-G_s_Q4Qkqz92ssh$|cBr;Mj&bty~iE;tLA$%t|4q>9^2NFUB$JqBE=>Ro^ zwAfQH2Z!{rT%toeLgR^(tAqhI0j8BOO^n0G0R=b%*3L%4q!@MYF%Cr^o_zM6w(z)U zvuR2gSR$ato9Mzz>nI^XPeM2#3X=oj0UjRQF}SmnZn797WYUq>jhB=qqQ`QB2?Is%@1}rP~6_LEcHyrwr#?&7%CD97MuQzg49A`-S)!Xxhz<}vcqDR4a`l~ z@7J^PBqw~9;Ph8?{pA|L0UYd~n-^)X&Io}CCDoNiC&`hi(m(*Mg3-jBK*bVgO_T;u z76T~07&~CVi6u?~2!J2x*91*zw?ICj>u&7>YyzfRoKhF{AxL+DGxesR1Ee23d&U=Z z^PNarRCx7{BIR^-Y+Or)#fC^DSO72JBZ8VQ5GI6%@qvQfK*=%3|P?M z)D9h2bcJ>vbk>VWYBz8qMoZV!X)U@H_ zJa*KN@>5srTOfNn*V%`twh^N&wH`*r3W4IgHXO6(F3rZYA<`{8flV~KOmkKi$n$v)~^ zhdjsAZw`Kl-$nMyA3EY8``MM5JsxtcBIDB2y6=;?&++#BM6n#Qi32UE64^|eAVW++ z&;WDj!2!h*4MYPZ12>*v&*7=&hJrp9ucO6}UViwZL;^sB&B$*V zhas}aOPL^p)(frF_gYt=fNKQ?B@}F9A;qWKQl(H?8B&cA5Nrjzh*S=yBNH4ljO0*B zVYCZXrY#K6*wDgwBgH1EpjrYMue#2J(gVkGbX2mH8kx3>on%(-7)(>jsh$bogV(0B z$r(>HPy;*wuU;Jht3er@aA35~w8A6$5$P6eg%K(!hLSRyS{8MbITQuSQQ)R2lCafp zRw|^FSpNzERn>wekJ1WGS-J+t0F>rb?AKu|h%>ShIESN6!ht}p4G)g=*`wibl9U7| zk&Hw=W3TQJfZ)^-0k&rLV6bj>z`g(p9=I$ZvDT2F160aoV9xbGf?J?#iehizrhM)1 z`?~lEu0}RD#R(D=V5otLrmgvWRXM;W+SPcEcahpbun)0ToivDuuso1s3A71ag5VmM z%AH+ZrF_G@m3u;v6|x3(2IK7rp9^kOLNNk=&hIi%uyckxqUwTfnReOF7wdM zG;lC|n9%q|HcYq5g3J-|ZVZ{gSV^IfG(io$p^_>AStTR^$#6y?K7wgXQ;Wh3D;0#d z5Gv_icn2KYGON!sj+#`r114h7&BeRU9U#t_onQvg5fTIG#0Vx1rk03EeTcOkS~T89 zll*?x=CuI}Tr0RDlB^Clc!4lMGL%A;48Q;?V5kxog)~sH0J2N`CH?{}Xs#A!%QS>F zG#Rc(2^BMtYq+XO>Z$}goxlS?9^K;=+>SZ#iAIk-%fOw~@Fn^8wUbJJIH|K>*3wVC0#>FPCaBCc)V$6p(0=b9hrhw-*w96skC`PJur)?WGSFIUvm z$=H!C@n%o(OrNGV@YeArKMrr`W5#_Sd-0__#9OWp9N%s4Jv~EoHUi`*MVoAhNr(6p zcNVlq!6Be(!!>*)=naNdz`*vD^O^?iZo$&nCJ}FZzsnn_s#I_o9kV_vbAcRcd1qZD zjYzySiQo`3X*j^&iJ#xc0#~`rr`8X4pl;Dw$pFIJnz@1KTdPm<{F8Si_~S)xpUUb* z=cT$)nul%`d+Lqb)psOucd$%Qhvjkf$__7yD*?NOzr%0Q=VDl3ImrOWGE~0?|4N5V3UzWb-smuweIHWigh^ z@k>W6q*+1@0d}AUb4HS-GZgHIp|BcOSAK+O(hcaYu1#$;k9zTB&;igBixV-hHSIbU z^=!ZFk|dfIu&|^ox?Hj46WawSRcF8w7tmU30b^|>b*9YJS{)KopY-l~$8-xPdPdn> zYN!{_CORS1V-4ICAq{Y0Ji!TM35hhMy6+?P7&CLCErki;1b`6kYn*kf7)cW8U=HUk zWQIERfiuJxFr1M`fgy0QE(%7e&{NWRT`X}8fxtPGmJa@=r=D?6!NNACJ)*&9E)6k? zEV41R%?|!d5BHMDjN#i$u%a@b2U(;~%?M$lH?cecPpzC+q&kRDyj8ZKXh9}tk>zTv zCRh?A4*rfCvxYD2sT@NEvA?7afj4N+gW_ z$c~WOTALH55pYBVP9ulg?dC6lm+==2&_z&LoPg$OGN9sblDzDo12ZUxVkp`b+e}r` zWDBY|sY-^ECM$75DAs7i3h>$|i3cpY#ZU9;pnP6W2=UQBMg59g+~4wv?9mxi)9}Fd zOZ0EXjt-NGQZX`#z9F=1e9r?YBp!9J@1zAq(BR<8ojr_wA;1$4K>-PRJtpKKV8e-& z0^2*%4b2}_+K|qOW^|2YAS%XFzx=$^(?06wKgy?%+dK=@uRN^(iGL#JiXXvaGT8ee z%bQ1hXpcTO$|%OjR$TrG_38g33Prt`U7PxAMZ(zL2fA&Bg!E`Ly89L z&=wDT4R_1~AbbQRC2(NCaD&(b1p4K!-Sr)1<8@o^zuzD4&fbnfP(6CkRFln2Qj)@G zYhbwrhB@T`TocN*pk4^_(oi?eFz)qwx2Ido)m;7?kyk*SM5na8Ph10F(S4O%5|u<9 z>^?kuw)&1_`|KYO$CBvuJWmu4cJg4}C*KsK_A(=E*wz@41k@1<2#%5_IH@#17;8Ad zpw#D_K-LinIEkYb1FUG^vgoW8pBA7w-`hwUWPzunCZ}y^oZA;xE zLa#UL0@8vM4S-mEe$urEP+zn&;Gw64JGcZjdfldh3FzQ9JD;ipmhA`-J%PG067`AY z0%XL4lVT{*1DKCoEQb;%S|@Hv1Or4xxJ}SBA%VEJZP`EoSwCe#x1dGSA_1cs?Hb9! zKt|9>?F82h)C_3D1$Yyv7r8>4?fML@EWSsvP8xfNVH25M=4shOf2Cnzw1GaVBx(=yb4QDAV5M95~VrZx$pd}Mplt5CX{gGrk3qsNFkwx zvTVnR9KvO_$;Kp!G{&6Rw_-1d4}wLp!GZH#=QN(Fa@7Gn6*g$IuVC>f%VAmNrF=ppdRW6!{i5Eyaxl>h-}X<-CQ6AMv96c>pQ zw`FEp-dS4lTUdk#pA~F8=P}33ADF*j1BVRE7oIC18(-}YRHmQsN=B(s?8mc>H$E-9 z-{A!=UwN+5CClNmcyMy_iL2vD&ZEZ{MgeYoSJl?6ZjV5W9wRZ1pflYN(4PGfgvG4` zO0eJtKmx_gsc0=Y*@m?t!+WpwogV)6RsYxjzaTu8d0}&F)6KcrabF!uwYe`**c9x(g%)II3p1#r4lwI@y3ulK& zDd8QeI2kds_19rQ(+m+dMIIlCZdfVAQ0EjzN$KRH)t~QD(tOhl;R6ecm8aBs zzi^f}(Xd||xGk(}JBQ}nTprTYVuQ$ZE@Nl-eM{x_j{?JgXZ50x&5J~hPy%mjIz$F% zXF)perkOC4sdFBBf=L&T8Vo#K?F3#XxreJ^8$ByP^P~$2b0u~-pjV`xwY3a3*o4X~ zNhj4DP=;YU*ncM@#;9?|>;?&A(l))it2ZJpV(CZL^%Ak@yce04ZplT!(x-G&*DFis zVnn@_S2a|cn*SqiFM?1y1_h`|O-uqM_=^R$sq+XEJo!v`%B|+> zlfM>xb<4SgtLU&wt#-{{@_v5f({uLEaW$`8?azHexv$=8|54B5@46%|mN$-vSvzuB zmw^s7)=n~%7;Ngo9F!3Ql-~NF3rPqaDH(JC=*?{PXpNI@SX0^ak&Z9Eos&O*7uWZH z{T6+E^1K}%*=V%r-*7K{CT15kH^*d59hp+6kl^a56Q z`Y?v$PXu4U)#JQ310^If$bth~4-qMG*u$;-(8E6OV?G(k({UNdO^ZlO#0X=U0CI7^ zJK*zF!bU_2Vu8fK2BJYG(xBFeY#*`1;fX7 zTGga#XO=*HfF3H$o8@^Ua}YgV8ICytxX4(Bfg!YR-^IE+^}GYRM7IPONUga{g8>fA zr*f)_{+L1^z7Pu906l1|9BozhuN3-hIx^}shZDjH;e4t!YvqJ3X_0mSMJPdn1OiYP z0Wkf+ubaRD3>?zo%s6a4)M+px>?Z=abp{~tw&4eH2@@)hi3-8%Vb1h@(16teBmm$& zhJC@yxs)#W>z3AwAzMjz=uEunPk$tHHhp_I3SwZU*wzH7&e9XjOdZW^fxe{ z;S+7zi$l7J(J~!Ax}U-)@#@cB^Ywq`%R4(DF1r8JekZRF5uE<0&{ktnJPs1e*k%;i z-QRvyHbKymVV*>ZhNzjdOtCkQy$#YNw_rBs^swa7K^8||ROzJQYEd8oOb-`dW$Dl?#w- zR=bwdX&-I*;{VQNhT5&e$tU$}Z1a6{O#-|d;av=%#B%}%2CbAK* z5`Y3dAuKF`GIA_=-MHJqJzPC!DQ#Pl7$ps-ebn~)e#h1g+*$XG+Ig&J{>H=G`YYSB zJnB==@McFlbI}z#L=Cx}AAHe)yF<=KM@w z@x0N;U1tTTo&Er83NRitVy>8X>J zz?5^Os~oV=0VIIh67WKS5d?G4Mbvu?NK-STUMdzdz|TA2fF5luFyP#ofM7!FS&w-) z0@Gmt0ZRzoz|svQf*S2%0gl`;vgHYnmx&v7W`hr60T)4&LDED51d9mV z5mL|kPp6O;XrP%7Gv;XH2B0)V5?Agl>`$6FqhH|`peW!AD+~(538RY+1G1NtWQ=P< zONQ2{pbAN86-V1PF;2Y*BJ`|VCxB1}VqHU++>)qI?2nhD2jdAYVT1%Kgd&I9H&%>1 z%@g$2!-L{cYQFn0~eQ(U)6rH$U5Aasy_qkXSTV49pT4 zk(v?6LL_Z_8AC!zp-Ggr4KJY^k4Cr#POK?C1)O??2QKlAwOhh3v4j+QRR#_G9EN)c zOK98BGpdeRXLiq-Z{0Ra*XGyiNS%G`x*EG~Rot~RH6tY| zkYI$=@IZ+#)%Panh>qBZ$BK>45gVNzn3CEQQ^L?}M;L)V5vCT(rGh54Jf-u<#n*N= zNaih#GLEGL>{;M2iB883ki_XByC>%}U}Ih!zE#b}+t=!xJ0JKETM-~-Y+5S*cd7It z(@7^WEr}r=EL}68lBvLelwhRC%@+*;7+1_2b9@KfoPngZ z3X6bdt`w4Z@}?w~fCCyt4~humag#V>chmsRr&_yC>FW?6g(lO4hA4*P0XkVXDON+m ziJ%3kR3~s?ZS<;}bitXFqjliH$u}pCS7U>v&QTxR0-%Q=%%+IqKx7Nn-NW1@1191_ zG@>)LH97-_6!vofg}Ukij6i`!TMjB<;6a-lIHoLgF;1ia>V%H~YeQf-Z~+IM(*m}B za2I1)GGQ3NI%62H(FyZ9(1Zq?+20ZjPGA&<=-62=qb$w7EgeqEz)}U679ghA>XZMD z=Y2OP0jDtu07_LXG*M^>F^8xUTY(#RCu%4;G+T2QsGWWNz=BamM-aroYI!T4b5aOR zorO*}zchZL5CkzWfJO9`3yL`dm;nlC8e+^elSE4}W15)GFpYHNnVMmoxSg=nmIWp} zPbE8_bhiaQxmXh=56KnRU$PAQ`FRzzPW|fQ*3u18>OCdgXD4!Vk=)u>4 zvqUy_i&4QN8*l6IXXva~J5wminC1u~&(^+QY2w zz?(Ri+#kFnq@|#ikDpykXIDKaSu%oYW-vTi)scmsf&?oQtvQeoAmGMHP@@zy>Q%=} z!eP%bQ#WoN&-3xTKfXS8dv^Q&Am_W4-6U?TJZwZ)3f`-tVKny?IP!SEI2!=)@K6tb z9Py!y)wTZ!Uv3*p?Uu_QW;p+%+HTX;%l(!uKK{RSF74ArYaa~d{EgENW=(+EtMUln zyC0Ey`tc(zhBgw{-^UmqwR+cqMZ>V=2ueRQj$CmTE1AzCD^*FDc=77QHqxNcHDoh` zDd5PIfkOx$=>(nKVf2ZP$sy=W`w&g^kVw_5*G^xC)Fk$bl`-{g$X8R zEkoI$83q8G4@iiT?pPiq8-u^{x-%q#ehHMSj3Db;0#i1V3<@#Xv@T(_Bu2Rs z<7gTfiHbAfkWteO>^rM0;S)8!2P{Y|X|x{;VQzho_*iw^(T+j2({{`d1M54LIyh`@ z5TH&jEjnZ!tOG2L0}Zz%fC4uVu#+K3LZuG}R6rSG4sfiFhx58qc>^G}ak*A=oU-_@ zwZn^W9zP6jG5-|vKU+9JGvX>Uv`br))>bT_?P*u_jn$cXa_tt`ymTR#;7JIPt>Y?m zYzzzxV3ExP@QzvwswEOVJ?%81B&CHT*_=vJ+ed7Pk01&jaBL|$vHna-s3%6?U%R1; zBya-_wIB;%;_2322y9=pt1D#c3l<`pCBX4B=cP!1rG2jP)^qut8BX26j)7@`~xhrzOs zZ9aj4SI)zs7Ej8EZAzodUwFm)V^_BCsH_gR(ZIV)a@i3hWh6jOXx&ud1=YD0JjjY$ zdN>4V0Q7Z$B+!qbNM+RL&?*%i9V)01FO2p0Uc;zd@^*u^BfL^fjOGK&TxkkDGjLI` z7euSfsEp7Rc2my@&LzAGnUrS~>((CA#R^x2PS41QTqEH>GEQMkUTMKI=Wb4Uz z{fu1>&RUk8*_JuVgvn%NVdoq=uxNHbN{OPw>O_<>j$vjzXs`Ee2zeQ>uvmh3aD)}y z0*;m~DLztYAhXrBQlHaJ0`+QC>Q^fv9g{#RoN#Y6wYVP0_-JG12uDt&$>tcwT|_Jv zrA7w^Bh?v@6=vZCp^X_#l~YCoHKz>2MA<(DicwFB$*O^jeYTcJFbm*0oDS#!eZmQ- zu}sng^r`_oEjF*eWRVZGIEKmyS4@C8uQ0S0iQ z3-bU-hrsvt7Y7x_%cKXdBnfyswm=GC-U$pUNpWRuI3h^9o{EzF*S=DQt&m=I2sjuB zmFvI}NaUpSu+n{m2gJuiu+eX>5G!!2J)C5Ll^HkTcVMP~ilBh9!u~oF!Yif`c>d8?+0S_fW)H1Dbf`cho@>qf!g=Xxg<0NaFU;zcomPR{x z1t=`6$1E8dSU8EjZyE#S^NYLG#|hJYzg*WJ9{#b8{j^(-S)Q4;+g8I zu#e6eXICVy5B2EVPd6!B7%um!pRmqOyC$wBQ%m29^Aj~D&6J2 z+ATR<#o-F;y=2~Ir6MPWk(LaQN?>)=p!6_z4{%IvLyfc>DJiL<5IqK104M`mQBUs? zUDdGKu&wUGv)}ox&+q+q-Y%ZJoA;rbV`#>zIBCq7idR6+JJ~jfvNUu+y(W}PLfypa zK2tqrLhA08jT zdO&WZ>IZ=-1Pi%Sd;kZ?o+Av9;weU@<^;6iBW{6*qypxUf^sl=78HVEma8h-30Me| zn9N*5P(%=HV6B`17;A??3~-dO8!S;vnp%`*VKp32&?g)rV3HLS1n9|7b7kn6uTlkA zsIe7rTN#1~7?WgyUGE)0DiM-y&WklV8;tuvSQcAd<%BOEk5n1YmBomVyM1 z95xgN#m^le93ZfCR9LYP#h03cC$v3}MRFsQloBuwWo`h*Da}j}pk6;)I6%yL9ObUu zMHl=Y4$+c2pbbC@9!^X!LY!+=%d=`s3kgjZsEaQY95Tcqzu+_m5rEOpF{6Mg6i|+} zt=p33QI6{DOXplfg;;8K)$@;7n!&SVb9v(SvqEoDVc}V-UXx0nxux9CQ=WRwt9+d) zMat#OEyJh$o%PoQSDa4J7o8X5lwGF^SOclb3|uXNW2~*ifqHQ`%mc!k2NW3P0lHK? z0|5p&bR?UzR6@ahHgo5ciJE`}31%o5Q{#;FlwRfUxRcT4BK3tS99oWax=2RVzymgi z2C!fqOhRDmSW+SOmfM@uMRY*z9$R4QaaoiUb&jfw2h}v5whNMis&f%wbCPRtCm2(52r3#D%AhUSN0i$X!8`6VWw%41en(UdNlG>p1fx+sA)+>o#NAIpIY- zqznlt2ucph3M2?XVnQN`paIF9M;S1jhM9R^ zJ4X~Km^9QA_w}!mwK-7L(21;K$@f8Y3oi<~xLr`hU1d@$j~KF6C5t50 z#0oNrFrz)qO;|+NSU6N=uOU(y3lyh)K_GY_p$9@iAYoV}xd@y9Ff;{Z1yd<;Wq-z8 z0yW%0G@%M$2DBkoN2*B(Xy513sm@40MWp^7H#Iyt*qR1SbHE^xu?JuFf)I>Vfow5} zZb73TeW0(pz!dsA$R=^m%Mhdng^<*Pj-y8Es8b>(XNm}CsGI_FhU!8g2FJl`!<7_9 zGPLdePIc8TV3Kv9C-Cz+d{H5QG2RLw&D|mU^z2b8Q-xuT2 z*WFsDoit5z(4(!IPlBU_LG74h9yX3OJZd;v7v@u!!!-t`=k$KGe%Tcp;eZlC@|?g<00GOKVWtci73qeLm<3F6+}8Sh zjvD%fm6RYdgb<_<7TnLRPF^!T_PtL%i%_T~H;VL!CRCM1MGp(!NC*nG7punN z#Zn+pgsgz@YImXn`4Ik~5&$uYidakwYm3DmYZC*E!8YP@U8ai8Mu5s`4FqzrAm|_c zt|xqEm$>%fj|8PFbys4h5!Dg>mf!BBI{B$B-Q$I3CS6|1dT9u7UaXrqPOQN-gAVC; zlRJ+1j4(N&2!z@g5GV%&XcwV3xaC?*EBk=dAF-zHY<7Xw2M#92z#~L znwi8TATa@w0}3ddE0UcAN)m2Dn$l>30LFr>S3bkhE`lBC#Wt+(;1OzihildYNF-5k zN1K|qy3Vrj7zZwCr^mg)?fB7q?X>CIO)uv+KFiB|r_r|7k`v}_m(K05!>)F_)wWwH zGY6B-t73faacSQ|CS+6l7@z9DjfZ#>Iwl0xF=wy6-k&>feWm|&|M~?7J%OGJEzw~aUN3QBqdDPFb<+jbonI{3LmM~?op$xb1q~8ybfl7z zL_qq~=b`;2z|jxyj4;d{0^}ksy)v$*r1PvCzhj(=YMS)r$+=|ADb?N1p zi$0flz=tz_YQO0j=1XY8id0pqAzkqwyWk5cJKx^Ef7~Pd5{C}QqW#Ly07g{_Ueg2g zoKGmYfG&ZP8=S_(c=ZGf9cp;M1p|S=XV7Ad-w10Ev1jH{5`1 z6|RChb2>sV1|%#+hf`O}uxTMjN4-lRLiAIMe&)k;?5Ta&_o}u~OjqTGlvnN!CuGGG zPMC%Vpjbf1cEipz+l&LyXew~zo04dtp`o1xV9=-okZDWHxK_*8vT@q=9G8XcBHxPJ zLU1csJwAAAEq#YzLUfF|F`jJvcCS~z)$Q7+_S81#k*HQi#|=?7uIIeN+B#($M-}28z&(0X^y*RT|ae(PlwZrm^f>9 zh%6J;Geag3GQ4jGR~sP)N!8AXceN*QHrlhQyT{H$d`-_^UW$+IjbFL?m+g~&$JM{W zpZfbQ^6>BQ{x?G0Tv9o4mG3^1{`*{=Us&l^a+dD>*WnFGg-#7j#+9-*86o1_$#{Fi1jB%ymcrH)T=~0PAc_!I&KZeBo3F)D8)!5E#=D z42fV2{doyh7OE(0zVaF2&~=>ykq87}%53UDG;0#|q?~|IiS+QXU4lM|i>N(e0&pN4 zpohVeRRh6Ugi~e=4V}&`#&b|e=EhpvBv|jkVbyxbaAilGybSN88p1VE8!v%12k;OW zAdY5mg9Nb~6K%60`OHx1z|C;V7ib_K2d+SGIqkJ_^?JcIy#ZOt=~@BNsrP6UklaFw zWFoG;SVq`yWSjzv7gJ3Cg2@v&4qe zO&1=kLSW}j7;p{_xm+&qT{A8tDZnLh6=TR1avoaOeOB%lW=9uIAua^?64yR3zv~WD z!C z-y}B*oyN7_ z>{nC%VEbK&E9Dr^$tO;5I!0`5JsZoVTxgDTwqP7JI))x{2^GTG7vh4&DMhgmd}gAP z@L&-i`!Xa7m#{|KI%z+;yRRwu1pJV8st-lL*vL);&eAL=$dJyJ5{9nx4EDN# z-EKz9fb%-GrFqwED@zE3(eip)Mj-~K;r*+0r@d~YV?@!8ZofhRLkm##85V~x0s$XD zm^k!EP{^R~gcdSE`V9-mOIRF&Zs_3*8Bem*99*ErnA?R=F~B;savQRy)HW3bu++*# zCIN~jhb|3)M`+4IxuO9icF%w;kp)}))+v85{aQTB)TQ7HgGhnZN%!e z1b}ArkyAKH2>V_Nv=%79sRjhpJXu_6fD9P~5s?WPxTCU!lsb~rR#ReNh>&$80tSST z%_)@5Xh$L2s0cmj2>}u{hHmYz0T&pFKuO@{WdTU?sF*{Ba3~yr5y5Yb9N?33z7Nj8 zYOg#LhWl38KChtm-KpIK@5ceW+JzntM;8nP93WvJ?EuzO;}~J0Zq&u&Bm9JUzzqUX zn8$~`VY$Hx3v3qYjc-GN6CYrTogx7U?Eng>+=3<(0hpXI=5X*mz$enE)D>_W+8)WA zYpoB?g9WI8f$Nv6Egl{pv`QMn1-Jo(A_I2hmH4pOG2RRg_CK+x12Vz`3dSk`2FB$9 zfQgz(^8N}B;c-23^<^Qt#AkBhmwG;4dxweRVv}bx^%Sk~QPuqX$v)|;9`E|AX=8Vs zx*fNB`i-aISL|pPX>I-EB#fSxu5{KAb~yr`fTi(-DOC_A92{aRL3p4spco3UfRnWj z^mpB`6{D-<`c*sXfQaRcj$NZpZ3vo9dU30k6nW^UQTSfn&h57+{HS`vzimVfulx7a z>;L+O`FVF==l*o`n=c;rmAm(@f0bYQnmL$5;zMG1MLRM88%*s-q(a#D0B4$^B@O7DKJX<;WjseF zSQHQ$)YtfXkPAS*O5Mba!MPJ1S(v-~Wv$D$!-Xbl2?MP?M&ce!CyB$d8>d`c!6i&* z8#1+sL>v&ez#`~1u+Vwj+SC}f_C0JFwsEKv3$!+<0M<>c8g5WWj=j)p>;ab0MURXu zfWr~fMVrx9NhAz+I~y@51eB5?a|Y-elInc711ga-00MeH$6Ou*1Ib4x|f#wEZEX5O{Ch~?h z%g=t7#Ud16tog2qebKG&=;U;b~_IB|udLpjH|yS#KIvLcbC9 zfYd(o99LC2v=ZszFAFM|!%2oCH+11LY^RLyfTmQ%UQy*tTn2oiJba>}J`AZCWi-)j zHWL6LEN83A$MyLAeg8%T!|JZ^DZ_N(*ZSs{|K}Z;$G>%NCr738a@)(7`K&cMzyx>NjHE;qz($vr%1GW1h zime1Sgsu(QBskC{G#*;D3HM61*-?zTJ|(*QK#}T(HlEpo6?0dZ zzryZkvFje@?kFOeRF{*3dQzsHlxw7U+091?x!;{ztZEc4Zfy&yKwIZB0Y=iC1Q;N` z#5!v4%_kLVJ|l!+BP+xv0%XWq9{|FMHE3B)2o5TlEDZS=XlSUM8^@VZxOM9)2`Z)32N(R5(2_!pLO;{Ron>ng&i_M^j4|9iZu;DO602Tmqw`qc^~C z6r-JhL!1$(6qq$&pa9m(f<|Xx-2^yI>!lgqtkxTOpw5OF9Ox4a>L6;c6-Y!4S`y}| z1(IqPkr7cfL`{#FBOG~>f@-YoX?TPjZda7JS==V$=f~=!2S=QD>?{ZXf0KnyvLczpyR=tN=1h;AUbf4y^)5a zrpInHu9fr>q+2Lo6v$4lH=@6Bq*^uT%_`Q`&e$in6&} z?g#~dLCKK(2su4y#xh%1Kk^~b6`l@)q&)uiUi}Wr!P)2(&5Ie^j8=L4TOXJISC>~h z9A>#YV|it6oM!UbszE9QC#B+YM+?i|(LyQ6EJlJF^kB*`Khi~eg&>644KUnRdMupK z5DlQQRZN+R+=}>E@;Hk}v{diJZk_jv7lc=g)=D2%N~629?H*%~x0ER}b*t?E1&|ub zsC}!3P;+f;R0v5O(gjaBZ<%rgGxPiI zquO-dXa^YhA&0mzozMFXJT;@mf^H!O0J3TBB&L!=WN0zWBuJ&KL*$IV6|WqCua^)Q+Z*^n)ks07qB>dcZd^T)@2@*Y$Fd zP?Hn_Av*S~QJ2D@qZ!ehG1~!XQWRpW00R@ZiNy?tXqah6Q&U6EoZz5aA^pG1v6k;fsB==C26u5I}`Fy2DL(ZIM0hG1EMsU;HVS`GE zXNFQrLYF=XoDOg&X^0IKAf5)G$7*NV_C~>ZM@XnCq*~hvv5U{_0tu#kCB^M>iQ#nM z#0S7kSsNi>P8hu?s8Vk%bj_JO##$ee0wK|e9d?lwm*pypB}`!@P;Emb2r^je>72~9 zPlFpygA*oDf#%(bOGd~%ZMQ2ngLlv`g;L7tIF9qa*8tY}ye~tehRC1NG{$f_bdr21 zw#SO*l~zB}G0_#C8gO>8k$S4}Zb?l``)+hc&DUEyTP5RaIn{ELrZ}Qoj}F)?6TyP5 zy$v~HLXnltf4?Xfm>dlXWtnkQD)*rRHVb6=%A!W(npo3 zwj9^lNU}XQa$a*+S+`M!sVg4Qt+HLJKDPMzoeMPB;~9rqGCHgm8qWH(?2(}XaO2c1 z1RV=>AxS@C&}xvvq5uP=%c2si;Vi;R4^h`u1%0olVx(Uyt;mGNbaHIIBIgtG28tob zm{rUC4pSTyLaDQ9_cd5(O6??^Ka~~WrUcNnB2i|7JCRD0wQ|)bvEY2*Qka@J&K?aR zoC%dzP^wY@C_7XmNjIl(fQ}cj40HE2X*dJcCbNl|0n7eu@-aFjw4t71zGymIe04jW zG_9L_s!dH<)CU%qkv_Wfc3f)Al@r*={wf3)(I@q+f^9I1MZZjqRH8jta$^ozAx&%& zNxM2*aRx{Pk-Dx+q*?+2@M$D7kHMQE%rc2O%Udw zF49&o9a+v0i4f~?&U(mksMvUlTv&~eEw}AJFpP=c4`@-4~O6kN*R_xQ0sVFZfJVYH*ra&Uoc`s4u zlQdV(I}AnnTfK*(n+ROnCS^pBr89IC^WYQ#UT_gGEN(B(5X&qy0>jF)Q0Z;EKp%nN zG>V6Z;ITk@%>X2@?g{(h$Lu);2#jDT;IT;4#$bd>3Ns-2Fxfy_YmH|AKwE7^1h}Yr z2E2yyP#qE^7lmkQFycU2>u>^SX7})u24JmPXgWj6iG#-zP5^^?EDq3xPwrs}%)r2P z&e|Sx#w^TlIl>*~%nZpIpiR>_^Z^K1Gy~=n^JuV$F-Ks9WzZ&8Mh^GnNC#Z0ObN~% z9XKJ%0iWu$*fP@Arpj0tGXew&nAOsy7N`pFS`~~L8TSS2$3bZ?q_(U_w>~|(I(!6; z4ik@lWKrj8B^3CCr4TpN3ncKQ1QKw=w;*paoEXl@tCyi}c26%`X8@EPtTw1RI1fO1 zD35V0>q;Lcc=gvPs8a}473MYzr5#A7b8@uFc@IMxvRFzdcDM;2@DWA>oK6bKCz^*B zi_0w%mr&bH-yup;^a=U=jFX&JR3 zyV=PQ^!L=7ivOL&I>6|YRccGRtR&6bNP-or z5UFre2)Pf|E&36-AWjUYfDRbQHV4v4fja!Wh7+7Xheah!M*QqDnVBOXGQkXV(d{rv z8)I{W#U2kmjpYn@8mBh1-K1k&Slg&D(6`ey4j3RT)_e3MNVFq?dtSUlR*ZN+6e4jxW-K}0$gF7tXWb>iOHj3-^AW*0}b;lEH|Miz)dm8SRqtZ zyVk`TfGTXmz>cWMDpQAx1}TeSDvjC;btQNWKLu_EhR#8u6w-OHghICiU}cqu>}>mb)^h15MQ zt{^3210aSo;5E`Igb^5_2GjP4)S!%EP;UaJNlykc(Pj3t2R#Stz^i8F5(RRgPm~j2 zl4@#4oRYdFM%zJh9~v}SfKrjB2h-%|eGI(<5y84Q9%>*x1fYb4K|}-Q$;bjBZoxXB z^cprwHeJBt5L{}oP99JPe(tOSaS^AzHCo`xs2Gxkt151F3xgyjOaKLjy9OeW)=%$X ztXn;8jP!(CHeGrU$=ZM>tuasa(%JDeQeVPjQ)?c~&|AY~hU|Rd8Lo{;rzR5n@oinq zVh0qfR;w9|1E8&Q@w9=9;Gh+z^A)XD4QSi75CRYbq>^?ChGWnhsL%=AxCF`LEztHD zA49`gJErEm6!HLK*9zaJi&5^N1Sh>S13J*eFz1xsDT*@eGYq@CXHG5_Yf&W&l~QT# zT7>P9*v7MWt>MjMN@%({V9+6{R|U8U9vf(y6(*;(_AX~)U&z51ti%51 zJOHRpkzFP(t%4)1Q+yp{q~xN+?;(vKlrwtFFck2wD$2PpPt_AQ)O1S2@@OVX4ywA z9fM`5IYNu{qUHsUf9k_3eLAcyY&x1;@A3C>Kc2A_v`MRCUBC$0}qEuy6~){P%tNJ_D@lV_8bfh@PHv{QWv_T0c!v{IvRQh zZ4(KWwgx`~9=cTkW`I*$&tg1fW+;OjL_aSpx%y%YI4b8guqd*$N_d>W7gR_YPXKxa zt}G5_IP`r=33UgxX#4X$!qijQu=712BJ0nQ2*6<&w4Dd^wK!{241?3KY#KDI8+yga z5apnpgA>{l&O*otTqKxt&`(OV7=R5BHkg347!ZTb#FeV2Gpl`ufUKW=B^1cZExuv4 zIlMnbC+t@pZYrizmslvK&LJ1n7lFYPVqaqik}w4-SMW*TZ?zoSI1T8kr~(OMn5uyV zstO*iT&>kGnajmYN%VBFK!8IN5gLG|%{69XF>qjXW0WZeb@G^Sf+W5Mg!&NFE>j*& zKpFZO-&g`Cbd0m6AUbz9SR#(3=?km2umQ1%h~Uf)zyMT0pmKe*H}Ma0Vr%++ z@00-`3jL9m4%(*GsZP=u7I5c=TId-@Mq^8d-oXuXCF#KtK+;sl_*xPsfDRjBSjAvW zE*3l(dwQZH`XkxngrxNWy+s5gWkfmT6ZpxYUhvfMtH5Fiyrqb+46psplO6i$<0((D zz`SisSzP;Uxx&q*#RfqH6hZqBrn3}o`m`wkoYsM!xRt}0#hO{f<=&|$c=XB#PVRLx z@c;+e_mM8v<7a8usRXI)R|5zCH4z{nY*m2wcotn@YZr8F+b66TWeWAAtTy*Y(}9C0NMX>Gb->U@9Z!)U zC43RVLej8s=`l^zHe(M4M6{N7vF?OZrj!z@8bIMPJca=hN-RUgEljPug7Kst#3n{6 z&VWaH^Z)@IIo!j_usS4M0)ydB*A8v!>qdg;V5gHFo9T2;zhKw{h$lW+ST}0|h_JsC zNwv&3UINKIK~3E>@X0kT>V^}QWd~@(0p#04(AF% zV-E)h3!78bSQ%A=?OIRcVQkd((ZXziWG)sc0xbB0K{mSY@_d00Qc88gU(T)1$=>qrWOO?!K0KgcNwot(h7xvB#$;O1uvJx^6`ZrpAE+SOPWP1|mZxJv@XJCVa0>3`_|eKq_z&gn$w7 z@Cmv!7ZAl?9%)mD1s`lpgLem(8I3&U#5>n zsPaGyjhD!DOXvDbC`72G46_Fj3pJhEksGOYd|gQzXJZS;q}q`6_6%H*h8A?qXWDyA zhtAa78HWfyhefl?NL=C#Sg5{T8td4R*NxA^Vu1t737~@y8x5~KdO(!$=tqGSrfb1E zf`fLAP_b{}9N~C^#2jP{IIhWJJc#2l##|G=F}rbIpW^Hp065?i1~+OsKZ^>rF$_u? zKpX~GR%~T);G}S3x=3V%$@O$JWiXHIqVd^8r&T!-v?H`II6;8X&AnyGpi7XM;pctL z8T)8Lgg9yzI%_p8X?4P2Oj!m#Zdf~{L|}wC;US74K(apoEG&o~h!BPMWY)8k?qI_-FsA+AF|u6BkwQCn?l zm&C-Ffow|&xWS<(Ra8c|^e7Yvf}$=@oLS(6xXR zfjf|pnhBdzW(LxD7%?3~Cj?+331SIbD93JG;49Y`mt%o~8v*Fys40Q;Nua7lxT5MSC&}7@S=Nz!w)_{Q5+sDW2|FgkbZD2SZD<30%Hw80DSbo4d~B= zBP1*WfrkYm=L3jbh$K4?gb`c_8=FoMHsdfZGTI@Bl0g{Xjw`fgBMD z5OiHm4mkagnGUQr$%+oZam4_l8+u3%D?K{7BFWOxImzeqR-Az}C<&I*!TIESlVN*s zQaS^iQ>#GA2(3{FhbB2NRp{AXh5(EX79J>AVd-Jmd!pgNzSE};ie<||18{H*25hq6 z)KVvsk`TW|5Mj1{?g5Hx0J#zpHN$E0k|;3Y%r+u@C0?q;88W<14Wg3WGrsf*_ z(lrBzaNSKD7TUl9Fb-vSEUZy0S^!A8)@uk0*nQt7w>B}{LGo=_II7=E%P-~n_nr;A$x2QYAg(9=o* z-WwRe8jEVfX%v^0KrXV<&k(w7r((u%)8{rF+cSZUl|S`#-s&1mu>N|3tT#pr!MjTF z4i6BbhLg(vfLF-M9T$~78&Pa;1U3N{2M7RL+p?LCV1PqMI8ome5E@_lD0B&pYDfTo zjQuXwSh#yaWwUTe8YXTEtuA2+)Ofl`%cu=lIU2yK5RDG7V%HKLJ_%e4CjusbIXxtS z;0dQqy@8R2>*a!DDw0;0ZBtzH9>Ua)i|MMHtB>t#&e|$wbRnbUSr+EHm;2b-Qx6Qj z`VW=KvQrl6!2t?9kySk9Hg$Z;RXM&u)&j#rq%#ȔZSib870l2u;;Rz|jUEVK?* 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�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�zZ)7NPf+Y4EWE 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 z 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 J@&B7K0st=$nxp^# literal 0 HcmV?d00001 diff --git a/apps/desktop/assets/default-pet-thumbnail.png b/apps/desktop/assets/default-pet-thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad39a251cfc43d5ae95a94a039258f0f95baa67 GIT binary patch literal 29083 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 z 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 Code \ No newline at end of file diff --git a/apps/desktop/assets/integrations/cursor.svg b/apps/desktop/assets/integrations/cursor.svg new file mode 100644 index 00000000..ba7c2557 --- /dev/null +++ b/apps/desktop/assets/integrations/cursor.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/desktop/assets/integrations/opencode.svg b/apps/desktop/assets/integrations/opencode.svg new file mode 100644 index 00000000..9c4cb89e --- /dev/null +++ b/apps/desktop/assets/integrations/opencode.svg @@ -0,0 +1 @@ +opencode \ No newline at end of file diff --git a/apps/desktop/assets/integrations/vscode.svg b/apps/desktop/assets/integrations/vscode.svg new file mode 100644 index 00000000..8ebf2fc1 --- /dev/null +++ b/apps/desktop/assets/integrations/vscode.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/desktop/assets/integrations/windsurf.svg b/apps/desktop/assets/integrations/windsurf.svg new file mode 100644 index 00000000..895544c5 --- /dev/null +++ b/apps/desktop/assets/integrations/windsurf.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/desktop/assets/integrations/zed.svg b/apps/desktop/assets/integrations/zed.svg new file mode 100644 index 00000000..0df50abb --- /dev/null +++ b/apps/desktop/assets/integrations/zed.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/desktop/assets/onboarding-logo.webp b/apps/desktop/assets/onboarding-logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..e5a6c7dfcc61e819c316ade35e7c30ff22c9fb07 GIT binary patch literal 499488 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%0DrT5hN1n(3)%Do6#pg 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 literal 0 HcmV?d00001 diff --git a/apps/desktop/assets/onboarding-pets.webp b/apps/desktop/assets/onboarding-pets.webp new file mode 100644 index 0000000000000000000000000000000000000000..cc4bcee42dde2d74dfe1a7dc7010edddfc40c67d GIT binary patch literal 406402 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%0AuC3&%JW$@I*#apf8sg z?JogqY%Jl22T%+-mu|4E0=GHxPd|}YX~4Mg!&lEtr$p$}G4vM@mF204!a&B9A_D-I zi*wU))O>l#gxenY?e7>;YM`~gIuzrePbUmPKM`@6q2WLGJ0E(>>*tazI!N(rIUGY) z4es=d@4eGhYWjNC?V5cBb@oGa%aJAgGI&|F{>0}*pu#P^ozfKNSo+T zy`PYnp4zlwFq_L4a#EPlqk+WnDY?Vq$d>OY@x|Y~U+NKIyOA~e2+G3fI)jcx&gHZy z5OreGYe6hG)jNVcd$XRh>KO}P)+~X^!7YTQC^j&R;>shB3+zD_mKb+Md-0G?X{X-nzbE^y3{N9Tl?g}F| z#P(p;Dc%ua@}4x)9~@i5eFWi&HKQAUp;Y1R#DN-wck=Dim!7^OFb7WF|9D4g4y~pH z+pp!v2HvvQ*iG>#H=ygrOHXw9iXD*k5R+#2kdq$06Tr&C!^J>zsJCGIlaoht@LO*j z#CX?4;b%L?KN6BcS<3=dzm*c}0^J#=(UY7Akqqi>rsk+GK@4E2f!A=wonPEBlrhim7~ z6EUm z&eyo8f*^z&z<>JGMbeEi%0O2noz)@OexFFX$^d{7Uxi(-keN=mz)x8-3S-sf1`o@d zQb7p06aV*lE1&{_03Z-x2qZQ1MJ3P`-O9CWV*6OVj0emF0^+sXg8Zpq107P1wQOWp`}K#LR0|ady`; zbY#L}egPC7m0v1y0N?)}|KlOY0z!pFg_OuVD!m7aG?o3D4(bZ_!X*Xm1YBIy9?+6O zxBlXUy4z94R09Htb7`{5gSD{{&&1o!C?o;`3W@yOqHnsE08Pu1{`XoUoZ-7QiNTa942HsgVE zDt8n26rIuEy3nKp#*T&6YnwjK>ag1-x$y=BlGuT|GnD5rLmaQcHTxbQMuV`qa$Qa< zu=Awbc3~Gx2Tcg3-9)J!!O>!z2i#;tuQ>Pqu+VDOi*_1A|B#!x7Ld{<1@8n&{A9st zBfGY8b=ih{e^-9=A~7bD82X5;A(0?Z`>dOWozy1dZ2$mKXd7@Bu#vXgz9iFElNIK% zU7ocRQK)~UTihCg9TW;9(K_7D^Ke&iW_HB$9H)iyCYE$fS8!NaF4?;}dr{T|-)M7j zV_e?>Iy#eHwzs%jSRdY_F&cR3VFP1H!HCkJboGY2t6M{=jC^A5((|DVI~X}rfV++5 zp+U_s^>GTXs?E-1}o!lqY?>Yj==~^P^vR4Br%q6aD(A^ur z!UGT86ZeCb*Ecm4c2J!>vPkbi0^4DZfZX8O_y5dk?d_a2a`cgNJRy|#i2S&!6<{Y5 z4r@kkpjSxM~-LS&UM7;PrQG=yRhTI&dPeqxn~OC)JM+T0RZ~+ zXYT9HSs&S<&??R7_fEl{1&tIU1GaPho&+_!x4)2=Qw|mF!bc>9yl_)e{w3@ zdN$mppxnKm8B40SBGx5u2<;p|`(izvPb5@Cfp$yPlw<=SoSHoK&>6QhvRr^)=PR!WawyTNuXP_8@e7WBgJ`~ST}$HB-QD;@mU*kBe3#I#Z~ z_e7z~%<^iud+D9u`~RP(<Ct(GVu=oVwv2lAbr`pwNR z{`covF2p&p20qIW_J5q_c#7yYZ~W$eE$L1tZQcN%3Bu6-4LZp}LbqA}=6}4ordx({ z8{#zIx>V@{6-F%qx~*M#tyQnT{P`6J02s3|@u?|k{h#z5uVbj)fZb$Pw2=OT%Pjz4 z2I768?)(7m|0D`|&~$~w=)kM5uLFV>_QyR}pN0Ofks!JbaH+HQ%U2u|8Hn>Etewc| zeW0YtwH?6GBg8*Bgxr#wb5#0frkT0QAttXzQhqa&*raXF#tfx(Rh#K>XT1Qv|nS8 z66th7x~{|R2!UV-6OGU*8FrE^Y9zrR`wik!&tb7V9!JW%;=OngA9H(+R!Fz&)3o&MYmOzCcpw zJEhlG;%Ey&h8B45S~d?8F#F~!5S5a#M#G0q ztB=38VDx|4L-QLg@RZeMx#9=WcjWc|iKE-Z{DBcxV*a7`iEke2`_c>3n{CG%u)uk- z?RW>K)O4DM?>k2T0Qi~X{BpyF0Lt}G{z$)<8CDwLJt}{(4xXFYgs15=o_q5&0DzoG zt2%>#zWz7+I~+X}Uj#pEZ&)htReoQCYdYT4I}elq$&;DZG6eQ7e!Z_l;`l-fe6{R& zit65&yT8;0T~{1<{WX(j4n=OZg7XKz(AV*agF0(Q(wmll=IgKA zLfwedU%rzRLFYXZjlO$-rG8Ys? zHv964$1UjFiE<{s9u&&ojJioZ`wJfeeOfw;r>kiK{X3W5zitHuF+JkOMx1c>RIt9X zwkrkwJeQJe2ri3L7xkCFed%tc29mo7oyCh{PXYRQEG9}2Tn4He{rvC!$uifIN@k2U zIDzK@KydE6^-3paKwrYg#waZ_AWpR_rkyu2hU}CP2f_`67d7=jhAR@Se){EDejubhxhuw4l zV}e;aolcqt>H8u{am@@=D$ctyF5SNvYDlDTV6O@Nye1<+7$~Da!!Qk|1b~1s2Hgwa z`A)0tZ@YUb3tDX7zK9zVyH-Ih$!s=RpJonCjIIQ5o3wW2`Gp&$xNL8)`ylXGQUy24 zv1J>y|TD?xv*jNUiYg>AI0 z$KJU|<2cN=%{#5&@mkcy@G}n^pe0+ia({+Wb1H1}$jQg@$(RV+m3-I;9v4k^!ULxw zpe38@R~P#;X>_KzT|m8+p~;jCED|`GarpyY>BK7{=*hJU^&OE+9sTf^yx#R4sYt@FCFqD;FhK*KnG?E zvvRPIOcF^cbxRbYx;c_-1snjQI4Ee8D|7FWAr=AVbOKJgE2#B<$LnYk0Hi)*AraXg zo^u?=12AM9J2=3VWDckh1-p}Dqq~9X$Np!|gAJvC2(Rr=xxgtlatig5m?srQ!EwXj zF5ve04?pL~jiS9e06cph-k*^8F(8u6g;}fK1=KkH&Jzs!LWwUl{WcQ_FG!9CuujdZ zFX*WKz|#HyYhzy^GoC;jJfsCSj{ z#;gCmssCW*PhM>H1rp^9oKj|%VJ;Y;NFe0G-u&{kqy2#M@Vj5}`v8O(Zx9X_N?pnW zLJ&#EaRKcsPo8gTKYaNEPtNe@#}M$JlCNJ4c>o*{%Z*ciNJwENI<(18b013gdl>YH7o80@xx=IiM0@P-}c0Tm6A2^IbZvQBiwbG z7pBW?mr^Dp6@sX0g@I+*X&i+sm$BvoNyB&T8?iwHrtS9Z!pK*CE^OE=UY}ZRtgg0X zKLo7%1V(H}5Q@V0TS?@C8~-WJ1?oV6hzN$U5u!w4U;4;1c9e=R?Oq&G$_uxZkSFnE~eh?KP?vR?2c7#QtNw`kZ?`~r5^#2|0qbl_Y+eSl(AVbhO%H93cIrz7I)JtFd-bNT1I{Mff47_bD5)PnF+1A}p!Q^k!{;Bx< z6EFIa0e$q4gz0vL7UPb!fRRoOj=$?ET>53yKe<~A^Feg5G3Yey?F!lv&}|BxmmM{7 z*VFPZ^-vRP?B6 zYJ3^xJg* zT}J&4B;NC$i3ov|$KE)t)jC(3#uf+z;(69`80c4?t7%S<*BWcNXf&xg03a4WNBbOn z@PYkN(#AF73De6Ru7KSpW~Nj5tjfwaubWw|($SsdBd2i0sNT{60HXV<8NR=Pfzi<{ zicVxg!=8Xsce&!R4uUjxFlJRZYdD@rlGRnhbtjykO>Z_08*b+d_dhn!=g5iC_ds-& zkqqYzv;wYFuFPeMDWWp~K(eZ0fCOmIVnl_`SUm8^WS;}-*q<|`$cRJxlhm6wS5{Q1 ziu3t;6YkBRj- zZz4KBtig&SvG{d%w-+GP?_lWzIfyKY=Ht98EMWi!QXH!TsH z0RXe#DsTiqI0|=v>+L=WoEm+zgd+0BfB8bWRR>Yk@$D)d31?)&33 zj>yL6zIJ1CosTDDi7MQ^?`&?$&=2F}@R@6!XxQteX1ggi*Vh~N-FxQ77a`XdfrM7C zwX{fpZ9B{+7Tncee|$`171VSSy9Fe+Hs zK>ZhhG(5895TSxy#{C$C*FLipDk6o7CG=%DY)npPL<*}^>C1qILwiZpVS)sE{bG*x zX8>BZx&|r|B3Py8oE-G+Z29qdpNSBx(&abOw0{FwK2!0i_`unG^8$f>9<6-uduN;C zgUV;$l%T)wT=>-gd9f=z_`@3ylRMRx%ddu%+IH|S(rdpd#<_|u+KLBANf8)>oqQU&Y z!%0Mt({NeuLUNWdfV|MG>i(FsG7}f9{n6)};3pCv%~@L{Xte#_MKZZn0Ei91V#yy( zCm<@6{=?5#z*j7eLdzmX=!ZQ^9iO?i0RVJrh+SK1*gm8+Pgo$@?`F< zIWai2E-nDD&P-$E8R9k7Yau&xY4vdP{-c45sD1t z-s5{U?2*KCgslYuR*8>|bOvbC>Mb-jhN>mY6^ceB)LgW{!^C(#0HNXFGr#on^Rg#M zQw3vrSyogvY&gpBY{Kt$y1hj$G;1wz$8j8Xs*V>%-T|?pJo(_W&rVBTfGiQKR>rc7 zs1xEuUZcL__7sGe$uMyRU^)Oi@&G5ZuHXQuHu$cm_sCu_gs})AP=a+#eVby8pr_ik zi-H=}cvn`nVbUn^K*$aRq5}Xj^JDKC@S@tbl|s~|fu{{?PHDkXQipMRno1J!0YG+s(gRj*w;d%52$*7qR;?VEI_fQ8td=*{U?HQ@t;~&A8bV3{ zFGZbF5ds!P4}jI%%{8QHnE}&nbeRD%h91k>&HCES<)PtX6ae)4`dfA^E`XQ3Ecr}? z0K6w)o3+&yT9}(wmW!^bBIw1Y-dMY|#^1KNvK5XeW!P3NA%Ph2+y_3?4FJOs!O)&* zv{(vs=-FnCo1T;)xUta9V%TOQgTx5@k%53AH-47Bx06@5Y^eva! z-HrqTNH+K6!v*6mM+_M(AAH-o;6qKmoNMo|%jF8MY&$u-fl=a+>rN#P>xMKu^p>)-xrg$O7>n0w~Q0lt5L>d9|x_#z6(-}m0VN*@un zR<=ALg^<~^5a}a;v{r2)1#qc(t)BpTqb;TYI+f!33F#vro)%N!Y)b4W@Pi+nlf)G9 zvAozvppiEX5iFuW>d`Y(LjM2^)~abqKmqXJU;fYl>K{O+#)By&qEL!+bNvLs*gM9B z6j&_`_7?+t(`83M0W>}geWfD%E50V60Ch+}{REKCN@_w8P)OMb=_`OK?|kE+fP%;} z?k_;vo2=hxhN1~RrjkAb68`naOGp+>U?HKuCn^F7tnMFE`wsxXs`>WcnoA2K zfOJ0eY(0tq!1T|kgQ=vd$U+F9AA4#!qUifJBt1D$7*r%AfPg2Tnd~K$VuvxuW~t7$b~D52p^Cmpx=~G+J%zn;VT_1g_s&X(=g4n8{QI2_67sRs?gN{_qm&$suu$G~1!2_$N_+D@*W`j$bg;FyRrX-QhEsP19 z2p-T)_JY`;18xyFw!ZG4lpL8b6mOyE5J4OtVQ&DiS zT=fT!R6^kcJvF6;9+xqp%W1O7`=t#{sx2lbr{wNNJ4px#ALZHmMo7rfWMQ?N%n(ca zHFjwK(vn4_+ymoYr$a#iIrQ*;A>2sxNweCGc06~|uY-eH2!sJZ`r#=TgpjEu7j85* zzGim=Y?FK0FI9tEV^sn%q@s!8hIzFK-LK1Ko%u3lE7@C#BY9Z}H-xd}L0Puz4ggki z0t13u4cqUs+sYK1`!ljwf{I~BvFU*>p}NViG&7?xprpQ8tX%4l+ff#->^o?PB{)e8 zH_S211Bmd=x*?3buj*iMoOHCj{J);5-wsq)+HXjSC8UTPZh#Q;LLM!(#ALGMz?Mqb z`Ozn?yT0quTlrQyXDUJo5X5j}7RJZ}bqYf!Q?_Ai0^#bj#cp$JwOH%k#N5qbG%c1O zG~67M5HIA>SWMI#tOEe^>W<%StlW6{R1*Lotgeg~6rltrA!lJv_-r~^2QRyoAAaHG zfKp2A`N4uNmcZf0Y{1w9E-Dc4c=?G>Rl1f(Y)3IPp#&n~1`Z?OB~qAIVdeDc%NNV8 z=~i%BD1lMPVQ@SF44#LbX8G*mSB=uu&`q+c;N3D z>y}$x4@8nI><~EH01A^JoD4m}wuOk&u|rP5NDSh$c*80NF=#;J4JjCjLBhC`F$h5k zftaUM4B~}yyoHuWg&={C;*E4|A_Vb5Io_yag+dUUDe=ZahloJJ4$|WWOBl-v2}4RK z!ji;50Lt1G9pW~XO=l+dlvm5mYFpEdw2lQJ;q|M9xWOOUpF%^r-)^^-o^cdpS^vLaqLfO{$@^PbPlag?x+uEum;>H-jAR4u=U9(4}xY2VU7-e2{ zzA*r?tD1rlztJpF6XF+Pp$H4g^JOm!aU=;v+{H834H*e+>>%*E)kZy~LOjzz1mcy> zl%0S8N=zjnrn_bFM|W#|vo0Y?QW3;=?TSrB8=(L|3J4HTLP)rEV*^3#*Unw_L>pBb zk%oXV0=H{fR#}4{Xr28x3!YE|J5OBoLnM?iYDjuAl}gFIfHq%RafBLRmmQK!AOHpd zhTa*JPhPHiA`L=0Y#KrjWzJJyf9j&c#2Hx<@=baxJN>bL{_&+yoRKmF>q!7e+WV~r z5oI7n;h<-ye{`ng2{HhwQty&4e&&1gt{?*@CRLxrJ##4|2!g<;w761@6{tP=wG*47 zjQJCzzF>9FXq>Ph@I9ZBt3Nz$#|o{#{F8HzAY0JC3zz0%=$ zdL6n(GD5MU4P-%>nR@VCBa>(W00w{sxORDc3+|W!9%ypBsOh9QBXRCCWL<}jiBkiw zebZqKktARDKr)q>kwKiv=MN@L)(H{|GoP*2K#=Zx)A0a6# z9X^LNR*d}k5Qs?K8)ZLgIAy4+t{Eio1GH!OU_wM)Q+EOopw?T7Oov7#IXsqjL6Dl=zkk&V5lW<0?zDq@S(^${ z(g)wYvQ!Qf^&>yOPvx!fmT?fK4&Lv3%?eE<{?mVa7+lUCq)eQmr2rTM1c#?Pjbg}= zoVkB!69lRV00RJEqSc&kG%n=Z`lHWb& zZ~_nim4lMFg;_fA`rw~E48m4os|q&uuEX+4*9Qj&y3E8*pnNz4%dI-1%n3=Qa_mC9y-fbaCm*As(dbB7P+u|UN- z8_K}DwI*rF!98zyf8NwoF^cnIQ7Qoc1OOm0_qNfYy$4g0f`upTg^M%~5jKZj_ra;u z#GoQFVckZzb|Wi6wAFNB`d8jLE;1qKkI!R>Ji@Y4_{HB7m^e$H95B`B-7LTH55*;6 z>A3-j%gnofPh8?QYl*l>zwuW;C@%5+G-L4~9etw(;?nx*uY9x45CEbqT2kuQD@o7>+3u_>#skd*F(x%Sy&bfn4q z93nUY@R0%lb2H(!1ur7loE!#GYWmni_3ySKfB?YEsa;_TsN-+>Hh0KOB~rOTBeh%? zr+}2wS}tFS!>=2ZD6u;mEnlF*d|w8xmC?sk-}6DV8n!gxIx{+&@~fo~NP;fi0oRtpD#b6o=A zYW3uc9Rqkb0`bbirz9D;Uu-AGL@V9J{a0RE<*oYs=1iB0Rj7MtZ}ZGK&fKdj>QW$9 z0T>t`X`Qe01@>0;drc--0oXU~U1<=mz%T#R^PP|hR#Fc=eClPJFKB(_FMsi>BUpjN z#N2UKI;GH{QS%QgB|13oyRNXj!Tt+--xydo7QY_!3oK%xK1%WEH>ZgbfJSL_N3{aUh zmTK*;Jo3tyF1ppGq-e;Y@ zP~ig3zwH0qkR)h9sr?7`UwD3li~4$NW>glmfNUfON81;>JV*)-0uZ@Uz`&t2F>7|H zxP^JeWdnFjzVo0B;#THwJU0Sd&Ww0e;8J_(2V*J^*f>xFk!$(PfCN11vm-^Ji;^PU zkO%W2*B82!UotW(@eN`9U=75s_Vhx+W`600RHuR$KvuPd93LcIAI#;n6-V>}c4PSI zpZw6FxJQ|}M-5Dzszrq_;3W4w^2Ec(2E3WNzYy9!h+&1~@XX#JvdE+EjJ@L^m^C)u zR4D2K;n{(fXa+1@k&xp`$^XLm1`*Hj^N);TSK7Y8P6*;zBFin^aij0=Iv}D&s9~CJ zj02mYkOqLE29G)*W4{ZcT2{)?4syaI;+mWL#SUShVkD}8&8H$ASjZG{jebn-0L)_` ztaXNE+=1FuTmz~?J9UV_1~}XS$w*}5unr)|L6R5;5QuCo7g%VcTOE*$L^cdMDMA~O z{Ae74I)DTsThs|jNM!S)a+wPzv;o#hl*@!Rrqh7|6WJJ@5JDmww+Q}!sgMgMv|*iC z$V4_SnJ>uk1U9tpxNxb!#sU|FiEDtl0EEOf3|J?GL1c?MfrP|0j4>AoL^jabUuuTJ z8dB3b*(VmeqME>39qwfP=#{NdOhcP%rBo;9+&5mRifOv@=LN14kTYL8DW<8cbvfh$ z+83|8LYnoC0`9BDj)=xvCeWo_t%+zF8`_;fZAC=0N#Ty08zP!w;?4qBMB_+z#;Ayf z;B84MTT^Wf6@`>76NJ97z_@D3sipBBGJmHpn6xiLyH)frzH1!X1ac zh^D6B871Nw<~qim0Ta$p&xXXE(a;MB6Uh*3izEi_Z1txv&esExOzrd!gEYRg*0X>2 zZ+&~dBZ^_o`bs0CW4QCM^3u~^{P<_S{YuFbzIgSu^@g7uhwWv4=Y_9)?0zw~$h;ir~8 zG0WPO=N=!=o0tp0)hn-TY&rs#@bMdDTmydn_NG^^`@)s5{bo^x#MFFVa1v4j1DLotL5LL<^+v|HwfI_Ub z6_kVsA4?Wj0s%^A=?Wc!C~KSNo@x;BN$Hh}0@3z2|KnLpfN}{#r)(xJAy?+zJ+aV!;{SYojfzXgo~oJ< zkL?RTddX*k60E%Mf&#Hwe)3v95RxEl{_+5dkLHR0{C|&^MI@`QEDb0SpMLR)FMRHq zrg$XPTxkUmr=)!0iEqEK)*(WXP|HILVt4DO|M#n>%N`Mi(7-mZ4l!K%?%(^XpF7_Y zh2U`c=^Gx3BLFZb_r7_9ia}OS7l&m8ajlpSJlh}w5L$cIDnP7{Jb8L65Pta88;vBy zyY|dip09{L{H=@CA&C3MkNxipqL0ey6B6{m#fs=-tt3M)v^>#AtqncVa{|Ff+wKi+ z*Ash?F6j-96N)|D0QUxkU^}A;V6!X}O^`3_V`0{NR+mV|*pS6D}Ov+F)aCY}?w{ z-XxoiZJumw+qP|UW81c!oO5&k_ulvN%R8TD=GW8HT~*Un(_Q^M)YI8I#y@|OW~r1N zu_(bL8o(|cmUO?=QU9Ds4JFIuYo+hgCx4ohQX7|o2!B&q5A2X(+vWj&G|^(p-Y9ga z$WiZBtN2%4dq19UdwP#yO1?xar|U&WiVY&smMDC@gxPuZq9w zO9{b}Q%+!o0V^&=z@fL7O&cUZ3W)WRL?NT+;qF7MEA<0gC1)F0i_y|*yBU6T#bkkX zGFA@g)<8$khk^t%H+lAz9TF1lYkga8RQZ^j?m3{XG|cC0yAm#3+NX@QXuk{u%Yu$C`~xSNFm|HhzAj|NGOf9QtO z@vQ5bpEG+H0^DL*)`(PQ$EKLK8+5a~Je}GP1~4sdpo9D@P0#Rou9*yjSXtxY%Lx#~ zrUs3NNPu5Wz(c-iKG^wcW1+ReeO~l@s4M#kpICv$Y9b(7PwaqOcHt0OIrm%uU98^s z@BhTXf4mbo!g?Z5FxB-~(f9d$q|58^!zzjWVO+%P zwGdFVWlV?c!)_%lfI8&NJFlsoPGrd467Zn9G5c_`S_kzo-+vpFJW}i`X2_r)aqiA) zj`XbAU!_9Gl+0d*k@ah^V<$J5aeYDJS#E|?(v$`=6hFT))_6tfS)TNMfDz;d*tNdD+3F; zl0@W-nmiM+W{KXiS<>rpFlk`rg{Z*`clBt~#wMTJG}WEXX|0{JkH1ML zOOB7>_wpaWg_edRbzjNHkDM>nhM2zfj@3HJ>Ke=?4uc^AY}@}V0#J>-9&e!bADXJ(I8l&BX)>y(>jAP_U@Fa(w51Mj>l#zqgV=r;bM zLI=alAnyvb+uartx)6@Wd)Ub)V~-cXSkv^yezGm6B1eOV2ao{grG8XIW~iu ztXJ07UVs&^F+Xo{J;bx-hMHVa-b%EvhF)GEOQ_iGv@VBKwl*Lhoxd^5z=CN3=N?Yo z6zGVO6mtR-8K0HGz#L?4KQ3S!UW&bY-1D5D!K{;T*CL`ewM@VAP(LP!>25Ia9@9SfV6kj@uTT0~@vAx|~0&V625dZt?;!+X^EINB+Q}<#(S4ExM}w z6|CarW%_-uEym19K^CmA-v520GHu4HSuMikRWER*dGZT-Jufj2{KQGFxQ#i$^*Eaa z#>c_RLBf)eD<1eTxt#qL;x^6ZQ}j6e{Fnu<<9Vx^vbGlPbO$Xc>k8#pWhlsUZb|#} z2+Ob{vH^PVNx+M|;x(ePN{Ta=ums*JTD&k~4jzqYIL#pD6MdQ`^y^bKsuXII{{iC% zYAVR8VR5HzAY-&=$u1U11`A){3h+*&D=#^Y{pNMhgbj`;N0n^K(MU-zb6}&2qiPtl7EH?iKJ!tF907O02yy1|*MzV8 z=OG4K&YeFNL$;4Isst|iM%Mg7)t#*VD3xh6n!j7y7kFOd&-vOoiu=T8NrX1N=I@F( zgm|Hbs>GgBICTCL5TaLF_aEm3H2}A)D;^h;givwHNY{qCq`Bd}^9rsM+K-D5`*srN zK3p)8hE2!_tUaB2`%-hM-;_GIQBKve+rT#Dg3bCk5}7~>C+h6X^&v^7kA!cQ8te7+ z1n>|g7dDOh980$FQ-tG9Be0PxFbk;{_KD%Es_!rfUsOu z4sZQ+LOMo7SfIWC=q1kmS~G!$Cf%W(q0L__9zL})yveiSxeCBjjqffS;2MOMQ0Qn8 z8dmhOkY_Aj45zd{^ZSI;Q!8#yCQ5~aYs20(z^K)rS|?K`9$#|CRF{v1Ev{rzV}CfJ zCMg|fa7t^JJCYfW>;*SV@Yy)w5*RP?dZz;0ZXGZ&&T82tuOE_S5%>j=C+SN<3tAx< zzG8YmdzYM-Yym?ffkMKqB`o*LuSl`%==r0Ff}6|RY{%gSSk#0ojcM{~YFJ*s8TYG^>}Z%Qe>0U)B3`ZHUB4VEEEA=#I`8Nz z9sPl3zu!dgc2#|ZPk{~B{PeBodCrz`RdBHlHc{H+N?!=QucPUAD|eD~1$u5aknf(X z5AM2L6yA?S+sqa&actL3h&eWv+eH%_Svmi~riZ6e;U>%hcGw7X(?9*(wwh<&D=oA=Nvw-@LYY_{LdFpoCT$cl4#IcXsuk?y-F-aI2;(^ z=lV01gi%Y}gBaDx-H#uIvrFisv|hN=Cr?UXF<=lM zu;g`kisG;z6H1EBlSuk5sL3=_VAPbSbxjvSX;Xf!(}023U+A+ypo5{IQ#ROiuQ3isRAs;U9cv`dJws-ZohRl-Bk=Mc5lZ2`w zi_g#w19~9O11LM~V_r5S@+uL~^P$FSu33`|4#wiw|7k>z)11QiQtyvDT+cJMDawN^ zTl=ys#4H0jbfJpE3`Sy8!l{pH!faes^ZEt0B)yDEn1E~OJqs!Ea{8PzxwFH3#CY=zr{pe6J+4dNR#W}N$w zbrAL97-i31cSaX7w(uQQ3o32DCRZFXSCZ8{)5bH%(x~x$8%U{OpSrWOI>*Da#e7GW zuGpwuYXBN3g|I#Qdh?Sqhp_x)KB_aDXwW^34&HHvbbEX-fn}i<)A8JqPB0u8*a!F_X-MqKo2!(F6~VPscaW)x*u;IvssW88JYp;grYu$S;GAVjD* zcJq-`&HrN?oaFUy5wYOy!)=92Jwv53Vw)I`e_*Yu{&xjhaj;y=OdDR58p)=vYeAU~ zV|pzet(sNtqJgZ2vH)W5{GEf33sV&XU)QLUuW*+F!rQ32qXZUq@P|EMLUN6$%FaS9d8Q#Rfjy z*};=Op$Nt4`xnyNF+3z%oWG*3y{CGS4-ZOu&X2e)TP?+s=t){nOq+{qf{Bu(n*Y}_<;54gf>9+^HgfpaH zott16iKBT5Tw05gVnA~1%}bk}3XaD`+B&?tdi?KG5O|>AVWx;Hg;+a9o33Ha6^uNK z01qdJkp2Q#ENtW~-LzT>mD8#>{^MsYYs-O_`pd=jS_;{w@Plp<-68);c;a#3!tA`0 zg+y$iZ6(2Uk8|6Jg@wt{D#A=r4tc8eRg7n?}0|EV#aWJ7SXJzokV z&YmR&kt(dD%AQ80%l^U`+hMX|9KD6zTM!p&(E*UqO3%>#*>p$J%hvT|%1iR@cR{Uw znv+hnn3LBqTdn|x$d0LY9NY6xv)@p?{%`-%*p}&T%7Y3}uf3e5<0uQqeK^rsr!6!z zf+g8%N$vD?%nTpeyn^MygnQcTjpm%@#uCAG4lmpp!~g!()zh{3O2C%2J=0eWF3)dE zvo@^iZYS~t4`A5Wv9Q@TyCza3L$l_>VdA1RFADaj4D&f@*$#d;-<6}*kcP1BM&_l1 z5C&VzdE&~%FhXZ;f1*VeMMI*3j!B#d8n<6X|_;Kwd->xHsul5~2Db^+dRdl)NX zC?>&>#aNo*=6dAg^B2kDg0b6M1E>fQ_pKM}yczHX_V8dHP z%wU74vN{=BvVVu=5fra72!59LS>Vl>YuO>Tcc<@^s8(rN`<>|Znl-%U#qEaCP{O%h zezbgR%Xx7o6Pt|9`>*SOQqgd^Hvp+Vy|P= z^PT~Ees#@h@w7lpD_?#ZIg(5$SNvmgs6)q=3?YzNEaYU&Om&Opb*NQ!-m+xL30-Te z|Js-F2%Iw9Vn*}pa^%5HB~rW%#Hi8Itzp_UFH+5o$>C*B9vdmBC%G9-GRcUx(fw29 z>?;u*{rHujzg&ji%2TRu5HE${ppMN#7B9W2-EMTUsN>RrtizK`sSt)5HBFdKT8%%x ze7+bJ6@{TBG}Uak&;pkphb-U_EJ^W2vXExv1D6sx3N#h6*a-7M7US5=s@_GU`vm z6Nf;S3N*@q{@E9`nu@xKOi5A8qwMA0q5O^G?Z=^DbhW1HzY1`2q-KrbBUqRpXvQt_ z1hYoqS6^$9iqH}+Kj+!g|BQnvru00PXs&(gtZ<7B8+q|iruT#Oibo%dBMCv&zV+Mr z_->v~Yn@LtQNUq7Rsfuf#@<)~uj3wQKk!owx>T;l)0sZs1Es;kO1?#ZC%)*h9FjD^ zp#h^%L5%4l_kXW^nhVY+t%DFgx|oh0<`KdeepP4V9d+k5d{Uwchri;W}ZTSVT>Uhg)KJ~VIRr+Gcx&8l4L9x z;@33#At>@lUhc`{urt?DPYif(z-c=4o{aDAJb8JsY-ac@PUUU?kSS0~GXrag$Rv@a z_hk{c*0!m=NdpX=axPfSV3u7yj)I6Dv8mdp=65dObGq9gVK17K$w1F?KzD>Am{NSe zuQ54-fi*r}0?W_C|HmP>D7?{xh=$LAv64=E9Q$7Ndz2)ZS#OhqFs?doLTwx|i%8`d zgcT_FyPfZ)vn+(4d<2*YRzPmTcf#H}9QKHGB(9Jz4(?Fi0G72VHWl3}JQAqO%r^79 zm+~ybQ4^NXE3J4DIO!E` zFPHge=}xqY*4k1(`$mV|cG@A?^9c_a2$jhG0dC1sCtJaSP-(CklWIOJ;;0}jIN4dH zhRi6_@R+A+}h&UEGU^x(L_RUr;aQeiMSiO~99GiivwWezvw*Lbs( zGVwntc`GlW4A!T^e%A8vXC;Cw89Te*je>{O45@0S_u>{HBv0;k(zAjKrz3&o7OP;| zz0TuJ%)bq}h?&BH&tXX{3#X=g9squxebinZwu6gmc-(Ch6C4J=Wqg@nBh}V(h27Ec z`i2s_GNQuf^Ez?XPJ!c5S{M>W6BvcyM@5aCbb6<%f>jZBt_fP})^jr#iWQAm9~{^h zyV@5Z9xm7y{wA(Tp!2#f%wYA=$wlp-^!7-wSPB^gGPoaL%wRBJy*~=zqHz6F_?FG# z$n*ktK<_!Ak7FUw>ofp(|KCrU*ugZExJeAMp}~|&k+Q&PkD!jA1ZmJhL@5f$lGX%5 zaUlZhxqS8_CBQJHUO==|6Fs%Q`2eyZusH(3XNOm}&zMsK73HXhv}U>t%YxFcAd*&h&ZwG<`4jX25r4G25q}7M zQ4@f!KOuoqAI~44r|Y|%7r@xpt>c#hpdt|P2)Y5?fAoT|L6{)Lx9R7e_ik~3%GagY z$MPHKbNlS8==p~o$PMK5343ifo^vU50lEd`gS0`@C#Y{sFNz<4BfuQ!5#;b_0a ze*glAZ+f1DfPf*;-#heA*bfj8^q6zi0|HIHS$wr~;IrgQ%7A;|ET9U|2-*ZTe2##o zUxkc?<^Thr4Gl?!Z zfFYv(X%ha^*QpM^O|$_RmnA|?ETBry!YH2HWOzF?sb{G)w~j)32nUNeWYB& z?)G$oGC{hZ)1Z=f!(^dVKJUjabFJ7B*MDbVTj_^V>O zhwV+!E1>Bu`rYos@C>l_GHBCtCG-F)e?okmKLH&BIsrMLFd);j*x~gN=n#+yG6H#h zY=c0l042~j;PZ#no85cQ0RRY?|AYXleqw%%Jm=iy-1hVXfS`=0n$MUI(7BMSk05Xz zBnC2k7kbF)==qg1Dbx%a`Fg$qMEnW@^}GPE09~LaV9aL=@T*Cnp7W2>574LKXUqff zmuf)Spl1;E1JkS9W6h(`j?g4%`b(S7K*ep;&z@;e1*o&VKA;UNTp+L$*%(KijbV za>|OVSuP**tz%bgRrdd?mlhef^IA3VX!-wswUA4jWhkTuW~g*=g~+L+vd)&K`W)K= zc#R%)MA6Fs)@xPo|CbzOVyMiX6`ku+sC;oiQ#1`6xu?4){V?iUa3f%=cUhUYd(YlK zylB*668?{_*x$n`J*kxcul@UvB>d?{Q1FJfQ&q}3WN}U+6i3w3Z2Q&Yo+7gdjo5p1 z17o^m(Ty!cledpiX#ZbIVhyQJ`rpO+-(FmhxD@g}Sg; zYWVq_g8&0PSL~|R7Dd=4v8ni$sM?Mrfo8&HFm{P^l|h*Rq>yuqS66_ zByX0+{->ohs-XCSe}m)HQscNrB%$2`FSIjgR9P)(!MEtu7N|hv503Fym^U(-e9do# zVql41r@;N;m7MC+oz7xft#P%J(JRp681ydZ49ZyP! z#WLW>xg>)erOs*kb|3EbIFUNdlc*DXIBCjM090q)dhhhg#JA0&%2?8$hQ(i2SPeg7 z1s^oPIxCxx6{$fucaAi}ra(3_C~1g%UmxR1yJuohX1L}098R`)xv*&pA6L-ctlNbg!s{1{h$D!DBW-o~T zsf(m5`EJX$po&^|;GBP(5b4w^0?~|(mIU;TzIY7B-3QcjbG*s(5SBomoGx*ZP4@dR z4%)_DbUVm?`Mne;_qJQ?m+{kMc-Q}oE3Jfw?DUIcWVVmgRRieki24|AI(*Z1s0FHs zYh^)rV$-b!{dw@Rt~k}{L&7O4K7`{+{2r{@zc;XrQ>dN_W$mC;$&WJIw{#|h4$111 z_}ddz)L<&q_#GCW>e>o(SH=6C5Hp$w=#Nm`kg-*@I|c=;a4#YA<)mBurd;ekH~5pL zJKs{iY3z1NkCuoBq)uY3W>tyopc-KX{lQ*@t_mriYIcp*c_T38H$2ZaQL4h?% zF349!tpz52z*a}zy;Z0xl;je5+nD#?jYI^!+FhOa3rvi5qYgC^q1r&S$h$hXiwHSpLmg6Xa;JDR61i>EtlgdihL?IY@NC7j$fU))bb>hE| zg+bMUP!uz|G>;1(X1a{rh@{tq-8yas9#aK)?)xo)}EEpq>icS?HH=e->}grV^)c-MK?x-6$v| zf>P(tuiqcj@gJK!934?d7vSbwh&Me2BTKh@SS!DpsuW-zhRz);EQWoE&=Y^65peL; zSEtE$v6*G|6wy0bM)wAdZ<&t_VSBeU$)YhCLCA*Ji^z?ZYS(WZ=-JNK_o3Zuk9bR7 z_|z4vYof2UF0A~m0aCa^#26VSJH5yZxbMV#8Z+6TRtO8DGw=knBcs?RBKTm4nOFAP z3=UH&NsPgH)$Wp~Kz|~{gv3V3OMyZG!h6FmR|Hw-uHAY?{kPb}lHTu;V$LQdDq*&p%R0Y!?x40wxyp~0%d6&%-MM^$rC(F4tHtx; z)j3l~J1HCnDtd%ON4&8)g4@dBA9FI}x&Kdgl@Wx(n&FLd>x3aBdh2r23GIq#uMF2Y>Y@o zXH01dvXPi<{jg6ZPB?IMTDn;KeZhFm^_)|4Y9%J>^p7DcW^{(9H9>Il!fqZ466G+g)OZ#a*)$5D9bEJgZ7SzSor7fvk3 z5;0(KxSp=d&j%{fo#kzh%s3B{VI!hBMKImrT6|oP&f(jFn)%+IY|2T}qnrl*h0BVD zy$x2AJRv6!mQi>ch~)$kR1>WjeZM z1fyQxXUGzIW{c-szj>R%>_)M`35mdI zYq}W7fyTQY#t~h)H&3J%>_mDiz4TG#HND+&j|})QM3jMoD{7;FG#?B`fTd||pG_&WTM)P^#oZt_cN-uS^6cuSk9vsv538$3CDsm%B z`zDM}hiJ{kqyls~4a>B<=*RP71EWvr>M7s_fXE0ASxYK{T~39qlju;+wBm-W{PgAE zzeeZ~vX@+`qW@of3CXuV+z5L`?;(Z$8PRoPa^U<*`&W+uRnmd_c-Qg_b%yA#n|^L5 z(W)!c?CaalhwBw3RYG%<46#n{+&`qN(9fsK5LRLuU4;B2m zOMII0CPN4WA(V+mp%7#a4|J@8FJcPp`G0XH?MnpVt^!#{744;s{g^8>cOoF{Mvujuaq1!ycMB`rgN#({d!9U&uC9heY6soh z8vY0FMJP2#U)Fk7AF0&-ZqzfXHEj}F?^qqK`{SEz3ndLnm&%z0#uAa_0GseW8i7E= z!A#*>;oGR5iHf(*?U#Q8PuGN>toizFS(ZNvD!Wu7>^sK@V}Gql zEAg64$?6zpR_g{k`a|#3&^GKcbYX6zy|gT4^E43k3}INrPhR@-OH4+sLMO1Qw#aIVZD)(Q;_Wr&l*s>Na_s=o)#L zNNa}1P>!OVUmU&b#+nI>y?N-5!ir{JzYT|se@C?{-^uzs5*5_n$k1A>XwI&1o@G<8 z{B+RrZ(8e++NG@t#l+KY2doOmvi03wpxT-KMIJusGC$g!O3KiSOTHIR$aH?FI*dY5 zPV6vAPvtT=M!Vj3v&1`}=ti$wYe%fqo-s-N^{f+BUW(Mo{YTSmyjSuiPMiyl=mlAU zdHrc$k=UX==7!}4sFiTbCGzIWmS!+SVN$;q>DBFRxd@Ru}!S_ATKYSV< zT_R{=hf^|+HhSKZO^Yaxa-08=>swD>Xk)K*3jgQ>RSbGod>rzO?hX)|tvRjpnBJ&yM;Qx0uf7JlmqM(AB{5x+jI#ISzPAA1JX; zk|J%Qxa3}&!1s@=GP9J~+)lFG-KrOse!J?b@S*sOr)}bINB*~Ey#BN&A#XQxFw&DC zfDY?pVRyKeXNva;XA5ysX5BN@;fS&4YQG7AhV3x=c$i+zR+8aw=2}ci3v=!$v(Q4l zSs}D5Ei!xZD7^u7FH@O^4PG7ihFa~jL?$zJ9<=Xic`MD}`tZX_Q(IfWo8DE*2Htlx zG7_;{vpQoB>!${v=?p?zo$GidiNKBhIq;G{C-*(`K6R7vYfhvKHNxQQd-qylzHH*P zDM~HvnH*KfyC7^wgY4^4N@)v*eTC@Z-#~CC4X*@V>P>yj$9JAz8~)uH9{&wm5WP>q zFa%%1%Dd8)5`puygiOxP#62AO9eH(;N{h8GxJ6K=o__gJLyq*=;F!Um%eSA~6u~Ao zZB4OOm1*eh)sD1#0-L<#({S&MXSw4$MdJzX4_LlgaOgXyi&}Nc2^Kc*eap-@1MXXj zd9aP9!d^(Rr0H9ai803^A3wZ7UE!eWLaH{BKegS~x(OXN$PrEZLs%BdJ4^kaiefVREAHSsw}vz(&yYYL)L zd0`K%ER4IUV`PO;$KFUwvvtuCSg~M-X$CCGsKLLRDpb?s$uxw|R`0KMb{CIDIwfhK z3@hRwn59O$p`&bakH%|WH&Cz@#+Ff6CFT-ej4?|?;JCNY-But^@t6N}hVHu+EvHW) z?>6E|t`a!*%DOW!UuC@&v+8oY37d8&{@q4t%qOI#a?Wki5Y~I<@ifk_#8L4=$qK_H z`_R$_CIVdFmub4|xx8@0cv!|VXx3gPT9aHpRHBA)fG#+HuFR;TR-u{vW4MKxT87*b zsS+Ye$)DUdjsP$fRGFVJOT$xZGxxBj1{*Z|xpQ%a$>Vg#E z$F^Fa%6FlmluLnC!t~VGKTEu)u;SY#$ulgw~QwzF;QPIAxod{=HO z%^8R;{77&);`3QfJZJ@b*;b^r;buWb>SoYl2bJd4&RE+>w@i%~R9&kHE)xv+WB6Qbgex|z=QosMM&T6{!1*9Es%052XD)W?JABuT@!IqV-?6TPvZTbdbQ zLL^429y3~^_7eoS;`x5lI(Qy_1sY+6OgNHnkoZaMlwGSQT<>SRVr%6WDim1Fu6qWf z_qOk#k}*f_`UN6!b;5@WnF@(fPKVGj#*7|5&UjG91rIFTW!M&8XZ1<556|IS|Eh&g+60NbwD94 zRq_=sC#%C-yLWB!z+-C6svHi1Bn0}*hsNk1$?M-G9wWn{3Z>!6azBA<6JlTc$7lLk z>{m1Ji)d#bh89gY9 z>#<-;->n|&I@P%n;|MFSTAo{dVD1eFo8~oaqcx07$D3a}-hZQQjY7}EPFO^#UC5IN zpqMT(z;}xH%!Mz0k}*KbgbOZQiRGO}WHp$s5_(3PD<+TW3{5fW4d9!gsaiMuRQLlc zQl5f8+ zgLn${_<;K%Z=K(R^XuM^Mu-9pW zK>cS5M%lliJ9)Xljd7S>g&3z(^^wu<)CT4RUgpBk!{;PMEK7!o5|QoYT(LV*IEhOZ zgQa+tGd8AOy1E2LVn|*Fnuq%?JpmTo?R)TYRHtnXs_rKf1>R^19`UE-H^#zb1Ua0S zE%bN2CKqaVrekpENc2DRFt&O^rxjdp0{}SHeN2>j)x?9K6m(4Npt>6SmW)MHKKQ7t zZYk}Oyc^x))izt2yva<#jeM6yvkqb&h~_EpZ-2*!g;SILME)vj`L%P%McPXqh4GVX zVSM)i9=%Q+&UYAI^%Du{Ex=F&dl4*E(XNV~?H$K+zD_hr*UES6_4l1tik3^@)rM?1 z{|RX-zaC7y^;n#@T<~~tjLSLNHSK{PVKSh|dfmq9jmIx#m?6G)W*Mw@?7?koL>@P| zo$VDmpk{HV9gk1db_@pu#82fTH`=cL_1lNv-Pt=%i^SUx!d6a5GVnUY-ko}ClIP}Z zmyU01AgXL1x$eEP4yQL~O8%W%p}nlzMI^1zz%s7YdSytcus0o0;yx}%8q~DlT^%tH zWPbVwNMC05_5+haV5LlI1I@w&AJvrd%4=udBar&d@`l_ltJfC(#vfKYJ_fZ4Opk!` z0V`U7-aU|aIf?o3W5luSxel$a*h-)cxiV18YXwT@vv}tfB{MC+HEGiYXEv76Sa_PR2p>;wBu6u2IH*9UIS)f)xYjgn+WN+aM{S=SHH7=qoor{5rUPPtZVUfep% z8v(m7m<}ndC2CDuU%X@3@u3z8V@Zy|t=Q!CIEUpBG@(yV?PgBDc{e`~DIJVE)vn$I z{xD2*>SeT}#b^ftD+{`3tauvR!bDdDHK(PoELk+?--!`K|oWBs|@5(OqA|u90IH;76?d>cR8< z}$?WsHq=(Lw!?s*8C;(U@Seyj@+VR(L|(55F9GP%sgQdu}8i?-MJ z!Klbaf&udprC?-VD*5xuo7u6YadV?Pl4D)%mTen&aAi+C$w}@U@929-an$yL+10B@ zpY~Lj&LB?)HI%wKm>A_<>vr}M>pwmY_ZvWX+VyO`Tr^DZG|5yVb??$f>0cB0;PT3sVEwdTyJ^?BN+b!yGrd?;!%IM~wf zgvxT=ZTv)m##hFHsi1vO)*|GurK(ylvy=MZ`-^a5fcb~OJ6KN!o2d)DGZqONX*WNL zsXqhSs54OL4MWP}D+K^ebGz}gp&@@Da?NOpD14^7d;AZ2>ZX}+oMWD;{_Q27$Qe8S zyKvdb5n>fA3V9rIjOpfXaXE3HoB4|!J-rCR$`6?o>P)>vm(*{GeciW7vyJtoc>TER zm|?S;^4fUS<@K|P-?hAug<_Va*UFt#7*2>D<-C-#&A1Y(AWwEG#?}A)V46_6B}eY# zPIw!9*d~@^rb*&v2nQ@xYIJ7NBsT!aYh#d9dl=nN`7EY92%lLny9&_!i*MEw1!D1MK1tBvqDveV@U1*juS;G0I!=@Km3O zP@+h0OE&HO=k;AN@)NIKfe?;U>;R(6$~!CQ0Q?*Cj_o|Tr%vWec?eWKVDm)UIFh}b z^Ld9y&fGmE>x+Ej`uu(NL*vYkgYm=KRksy8oz zx;zu!WZEM=)Lijny_s3kRoaCpo75UQ=IGH`CjuS`5?_B`UBBa|37s`rJ0PzZv_n*P zfzIsln<8vK#QQ|rPYcNGh|SdGi^l+Q%pHNUP$a_R71u*HnlamomfYX=JF4}c>1B^_ zc@V6LMHKeIfe0jh1cNNQvCPW^^rQ5!ME>-P5{ouk4DWn78Omr>hEs z%GZvtlM`>98$RQlGGI{Iy8We~_-~AH5V!fXRabmHe*%-=n8>+bGI)-A66zkpOO^l= z)xeRdYuLj%+TXG76)Iw|L^IoGm><_4Cy`B4O9~3bS#-V_z6uLV_4`h@!?0O~{z`wx zYI-`2hRP%DcSF{K5(cb3R;|{>s)#IbCL`sTv&5tTo&*}GQ!0G}>51sc*e@o-^Ld0< z6oP1foX9qp0T46@ISB@NqrQrv-&raGeVesqeYVre#^mx2Lf`HAx!HPIH~}a{P)%_Fs3G9K8nrdCx$M ztfwjs`fiW4#WMr^uC#xSVS7U8Ddoe#Y`YnaWA8Lf_?PP;O`Xw@czP(jyc&sgcrH+qq4R;UD8M?#cAZk> z2<1Ct!_fox*4uoIS>ehhBTpwsiLY?pdR?^qFSkAx(bnT$p($9k#ZEOgdVO!IANY4r zgTTj%Z{z9V1!>)KP*^R`F0y5?K1#nTwEim7EwKh#WlYcg&WV*1HNoshPjp_cN^{O} zsxHhooBcGlt~?F5=oqY=lcb;O)a}FmKGoGHM=CK$tr2{J{qv5UrlKsw#xctMErw`G&xX$K)mANVR6BG(#wbYbL>G#Uzj7#@(!ly( zS2MLf@b}PM7rVg~V9atmh-3IKf|g=rLQ_g!N};8#_Io$nRQA<5Cvjv}_h)l=Y3ke( zxF#_Hn8H$BzBkigJpWhL&JcZ)$HKVBo@M^6Rg%X(=E;!$;iB7O*|ke+McF7BqbJn( z9>kJnF&uWKg6y~0bNRg0L0aZOv=^DCV8h?XAKPvIGtQRP4{d}m4MY6ums8X92R&MR zU9n}F9Mm2Khs;^quh8XS`(!n)$wYpeK|YiMo%^mab74D@+a|nA03p$|w;ZwVM&*Pi zc{O#6g$rhs1i(L*LzB82i&sR@7oH0&7$>AN2d_dY=bW(H36Qj#~5&ilV#DVb15evk%JUTF#mA5i3qS!N0dk^zjANx9U# zZt-ZX9N8`svpEbEJ*%W>V}Y3KYVA(?ZVlmg6S+ocZ_f~$1PwQ>0GUaH#h$GSLLoHS z;RE>_M&r<77$mtfCu;L^)};1tNiw$k&t3>!^*U_wH!l%mjEPVXLa*L`Yd0+?vxJ`Hb+a-Uvatn~0;K|$Y5 zWZ7>p3~>IU>87>-zcCnA{Y8y3T*egei&)>FZxT{nCmp;~N69x?9n+kMDGH?}Cv717 z;cD(U8Bq9U7Rl44aZE_u>_RpuVZ3joc)8cr$0Sr_S*1}cnti3oq`Ckx^q%>JtY^o0 z)!;GRniBCKap%y=PM%>dYC)t@ve5gn4b@&gC_cs^33JQ$ZyUcwUE18SzZ1u_6oJKc z;XG-|-u%?Mmu(*#b+Y6SP-q*Y3y}ar;W}W{Y3bLak+Oz&x|9Gi9^J!k+cJJga{BT4 z8sR^m4yIJuORCuG7QBw-&4rMW0Ee3rv$%dmrK&k|Y&Tw`g#`loL&<{+%qbX}m#Llk zuKYhy`1z4ekTkrdELCv$#E|Ycy;0NhWX@ZEZBw=fr88oR`+A*bwOSYFYAb)XC()TT z63i)ElQ40TiY@Uqf}4KF?rkT0!Oy|Rl6+c zi@|0`@I*6g!t7k+2uI(JT-U$FhIB}iRMHL&3T&ZdxtM!zxucy`ZC73b)~_6_4+liI z)$Fiy>%~Uq^ADiab6qVWed^FF&e~4O?NgLG&i39%`V>k>OPcs|=3v!~(~DRJ7N|))q`iaLwc>`o9hG$}SbmpF8m*5Lp$k`X!LpP9PY4n~ zHX^wv^sp4uCWEj*Cb-@xS{Q5B12qU`Pad%I=LC!`@QcQj)|)W&bQ{FVy@$4c<=g9| zGQdrRwv5D-Wf`=lm?o%=D@5^8Jaux}?6%P%h8p*P2S}5u@Xz}o$>nsNdJH=ODM~l8 ze%WPO4}2(w%MS3us=6)T?xSF74rJ^+{%(K+v#$G_S}&=7*)1$+%Hio}*zSH@k_&Nz zv3wi_@|F|B(wL81555;W4!u3_sB}B8PjzZGK1H z;HLbn(_95LgGQY8X0wmmQ5N^}0*{R?*p&&jo0712*+F?&it{1+BdE49AZ!cGW>b}4 zv!62pSL!|dzcB?fIw4nub^e@=IFS=UFmgy4jAvwPBx+tZ<}jpnetIiaW1~k=`;^j^ zyLy$&aC^>bL!|_2j>@AUbOF`ku34fgeTSz_NBnakqzO;kL?+ zTm-A|0k_pYD;Man7;={}Zd-MKk7lK-`OrB33tRUXBuWsbiMnmO`?PJ_wr$(CZQG}9 z+qP}nHtw07-I`?e^f<&na_*+a+d8=ox1q;USHO9A62m<9VFFI1_p3L zUrd4qq;SJpz8_LPxIH{nddBb7pvl`Cw@DemN<=*;Jg}>rqN+GHK?V?<>&VBFd}>mP zCA@lEhy_z+27z@rZ*nP1d?6}8*8qpT6ivLC2#&7rCqK5zUw0-fK$qTu#nVwx47~aH z#e?RIapB1c{mdb5SC{m}Xvh04dW0x7AEP?jsH!*NH`@ zS^r2q#kOR9bLi~mh`U@L!^V^8_Z5waRE$=}u%Z%ESkDkNBzlFL)d1WLve>l|!q~&g zXGcY~l9qn>1>5OgM7i17zLRn)gTpA4>U@79pv|#j;oMG49`8S0v8d5^ppOktJ~{RH zTk_>e-sfucu;oU)0c1CQ*<&mFsabj9htl2j2{8i2wkUldi5K)6A{-O$Y=iK$Kx!L|M3dnPJ1RWBs-JP;yPGSt6 zSd^FozjDtOuPB?9>5tsYB$Er%tRZP>ZJZ|Sz*d?Z>rOQO5KSLHk@T`8HYk$fWfbcm zVnP`A9^Q5KR=(Q&-~tcPdA4l|(N>ztA1 z?LZ7mWz!LRTz&CC)(S1Uqm|6Q&kPj;t>d?RI$GRzscYbVQ1Z7g!)8=I8U8)WD%!+V z+tU_r628jTx|3mA=6D*#6Xb7mj=NKtL|Q7rnI|gz=vbvH*KxSLvU4ZQx&KOIHm0sJ ztK-TjL(ec2Z@8U9#oRdM8?Mp6J&0j*OVgU2M4{!=9ak^A46kVvYS?+e^lPxc`i-z< ze~c8wth@_;-K?&-SOagw#U+VzPRI= zzN)Y7w(cZ>{=#QiEbA;?VPnC(nq0zj5xfN&#Vv$jcnF!#>K;;Hn{K@C04#OqUAfkp z1#jCVT6f`QnjfaYp3Mz?ahFu<6HNoQ56Yehz$FNStfU`O?ntFPmf0c4G#w*ttmPrI z;-Zu8L}L1i`!EHgOu&NLr1+TUMDW<42Z^e+D3x#5sg4}E+hkGe21Yjn=;gtX^ikLx z<|iyIPF{PjP}lt&Yg%EmfRh*_74sSs`gi21`i z!7Uo7Km-~EZ>nyhJLf(V*^)oGuIa39eOwKvky8tN%#6bJDmeeio8gvvR~eEf)N0sc z3=`s$S-;^AEfN7QU%$9)klZKLJcjzP9duc1$#Q9L;*i<4W~-J(`&SWIW%RW(bphl$ zV!3Cq=N5r(q}uaB8;ld|xwO4O1jL>+S*s}ivH4c;l+LY4pFG_)bk{Vca}d78kV9!R zg5;YW+U)Pi52`BW!r?!U=*dEN+oa}#SMaC`NYw5og&s+CaYGKS7pw^#>WetZs+oU;B9g(sg3eI-Vta(GC-@)_z zvMt2Ujo;hEdv74%;W1sldZ(c8Cpbx?i?7ibg=IeONt&b99YSsfz7akWhl?%8PHeWG zcXAWW()Q~4hXR6I;FBcpDYJ979#uM2*EATwb!`ka^OVB4wXPFs@KW{mWl*KZ9+7UQ zLU`ZQ-@#g`<;y6ggEeFU?v53jI<<7gtD{^09MDuZJ!J>CxzXSfxzjR+DyXJQ{^apG zkpr%g24@H2*3YV2c;ypYb_Rc+8V|=}W!sN3j@j-uo-wTf5=5T+^^*Y-D9IY#Ko(XNrE{Lkxk7}%D%ZM2!d!bXWm}E{voiVM*LL-v$9jCdK=0 zFovaIqUxvH_1|H6w>d(9mt-2%(pazi2|KP8>aQCEi1unc@LhfW0}SWIuvjq9Wpa|M z=%bOUz~ek&Pf8$#q~yMkVcIZe4tBL)>AvFv#Xeb}<#-9<##)ye=ier|y}u}8*Wk(^ zCe0>XD#dquFqHe;%;(M%Ka%Wy%QswMbMX2@!WwiYnS*hEFRV1SFee2RtV<1P(N6%a z6?)xv+tqKg*FX1+3Ug}oYcErRm0kVCX>q_Wo;{#?J)7I>TS8fX98W^VlYvKEj^Xj1 z4k?T+CJ*=(9cO778rW9zYqhvfs0_PlW`c&8jv`PYP%GLYYAV8CZl?G`u}6&o(FIwJ ze$TRYKU;MqJ~Y=yi9A9V=xAyVg4jG789a)6EM?_h&ow8SOt2~ikk8mZkGT!r! zJz*_Sl)D52A6I$cW2s{s?s^eK>Gi>Tbk+)EzrFS7hzCS0nSQeDDdoVTre)b`Mh}YV zn05hgIO7(9B(Z?dL{;i4BTX3Xi-ajZq(13>xW9{6D4`M7{dk3!oC}UU@XVE7ybxtU zXLO(4Rf|pOWOY9*+!58@#L&V(9n$@z))cbsSxToG*Hbd;=0)$b!6O#Q_vo}Rwl8Kxi8*J!@+upW9K{F;*I`uN~0Jm#*ouROij&G0M*f;R@Gl<)H5)ULx60Fb>u~UON<_ef=>2frO^^Fi2VfrRt`gdbLsg}J zIz8~_1$Z^{&B{FIo#5a5E>AuqUoiIIl~7IOV<5B|;X`MciV*vfm|SQB3W*%NZsuJC zXsJn@4J8vFLFvYXG6?NW{*3Va3Y4mqla3O%n|W2LycrJ}l~AWif1~q5K-+$YR~)TI zsSw<``G*^Le}(_@!Cr&Oy$r3pN06?xbNwx+?1xq9F6ggUzpr6IiJ}@}eqjGmf)f>X zxa|Lq7Zr=xJG%TUfq6D{1p#EGqd?v-=H@;nSZ+7n&@_-su(QVorOu7B6#dzQanc{P z7svXMz@&L0jbPul2_vrTt$u>JE#2IxI<(i=&t(Ho1 zFneuPI&oejDJpHF+hkIHF8kYF^pzkIDgUAsbJGwwf|z+YOJRCwra4Sdaiq>=zvJI#w|qWWzI z?u|jPHw{9#(Q4}Ufvg%ZvY*%Gb!=lGvG0t_-)H?W|GG5QV~FVwsH1V& zlX_wj4kDZ%hybPQFc@X2q+?KavxxHAgH@;qkkRX&jh(xhAJh0uQeA#cE*~8T=ViG? zltgYQ!CGE7vueT~5g?PMxkHN!W!H#Tkr5Bd*pv?POX%d8zx`&CnU9VkN!eGTNR z`I9J-OmwXv0v;tb99y*0DU6$0Q+9B6#8-s`z-YBS7J5TerZIQso0BNHt%(GcUwFgZ zdfhkU2W4bIwy{^MHS-xgS0vcp8F{)-mSw_;-FJC+ss5x&)4P}0cWQf$LIV12p)kF@ zM;8?3Vsy0&^;I^bt+5tN0^k%fW6{dFkR?j1wGxiF3nb84xc5CLO+}rZZ)gFrf zXrET@D1UvvFyVhifJt~zZ^4N@JX6f^)Y?Hri^)a?aC(cJ1&Z%*1mb*l2ErOb5C=fX zJrYzlrAtnzxjro!t?3hKoO)Cr{V7AN+g!&^P2$etrkS~3TW(Az%@V;Cy_}&5! zV$$W9nHE6NZYKh73z15OtNR4-+g=oQaqZtFX;KYu`Z`1YFX2D4q3A7`D_G~f;;6>2 zjS$i}j%%T)Trx>7p+~B*`Veh?a%bhth<}gSF=k4{XOsgLCPL!YI83NAeu24f-=?%I z$WaL4wT7KlhcJx1BFm7`G~-I5++EAiCW+p%A(X3YPX3(x78!UKM5T3mb!KDm)3kJO z25KzC849NG|C-&b-*zYP@8c}jXP)KC=-O&j8yYirBYZ?;-)ffeAe}D0nycj=e zW|&1)+?#LPj^AP2=B@&TjCL)au=A?tC8bYb}D5yqCXQr^F;(LWrOcWg$x znN7rc=vk{0%)pML5+(oH<&IV-e{vjPkYH7OM|U&hz4a=^{Ts#uuIRI-jy0UF0?+~b zCQF3BQZX^JEO7AUL6~@I0WXOOIG#B*jfTOpi7%y33Gz#ZsLpNsoa_O=L>ZW*oLaoz zg1ptc@ra4>f!LQeeoU<1r!aEeHQU<5`wfP&e>e>f|886;=XNHKh@GRyp?H#l3pAUR zQ$A%2{*YzE=-A_KO|NQejsj+6cZJL?`kY2`EOm2GO~D>+!(1VCJ(G&Ez0lk;{K2(q z0F)YEE3zHFLr_86lWUl_n|*CLUv?_FXj2a-vhSaTrgWRbsm`hlT0&Npo+goeQe{(A zQ!UF>u$m3)YOO%eC4^X3zabwjZ&6VckqlK<4U}BGh=C|5;VWN9d&Yqud%qrbqTd12 z?s$-4=Zx|=H_u@O26e3`?)3JhG|~;BHLn)%>t?i(*jSL9w9d!(aq_zG>BzB2JIA4A z1Ru3jU<~h_cY#XItBTTxegQU2Xay519nrY>dfXv2FiT3x;;pdA&ce{zsGI&+d+5G@ z{>oe#)dB;5uMz*EA+8>eE$t+Rjt?W>Ivi(HB`)@_^4mI;1fa*+uS=Oo73p%(G$r?d z$H&=!bvvZ?c8%f18#*sfQyJR0FOwi~aZ+1qfQlP`sYvh-A|t-}Mf-a9DJJnJrAD=p zZ!h*k@PRCRsb(*K=yq7KK%t-D#=oovRzPs>Qo`#apE$zly&3$u%4Y~8-yeG)v8FvXIW8yB$;et@Xk z^#WZes5nubO`HWmiU&Eyu!M1x@YVd&MGmB~~r;iM{ z8-93ibzz5TD@BvJKz@6Q=v&toi;7QcF)EPUP=npG1JdUj_2XxRxUYAbh8bN;i=9}t zP!(-|l^APCD4HpCc$t&!I7hmkGTqa9Tf6m?rQp*^flGN2_!Rx5eBgIE$MSFv>y0*~ ziOCjwW!`)|9EP&@(e3S;=u0p<86(0o0k$iLEmxfRm!G0P!@~MCwv*bModje}oEQXE z-j3)yIAUKubWB6E8V3PgIseP^qK%$a1Bi9+w04im`@D z_+>Wo+QR-@10qFPdi$3YmQ^Idg+UVTfFY7qI8P)z!iA$nz62tE#LpCxj}I&my2Sf<7w^6WCB1ZNOepTv@J{fCJTNEnhSZ-hy6Pxr7wiZF{El5!L0^RJzX3Z zRb@EnG=1(XG2Bf5qMkPj88wb}aJdh;uNlHB^MO{ly78yJhi(Wd7PfURS;@J_uK%lX@XH z#DEo8O`VWsiBpfG^fwe6U9aDrs(TpAp>RWC)Rp$z1P+R?M!6Upv&DS0neO^jm1}b; z=x3llG~X3iMEI;;2#!XpaLHrZd8xUUAPO_vSO&gR!oJtT3Z7I_7-NN@vuio{yA7X!%3igBSQtN|3)J z>*)Q_T4%HU$XkWp#}`Y^xd^4Ot?~YQPR!>yf8~f9zym z^e6+Q+958+&dXD9+Q$c7_R@Wqm1)Rfww&-=ION|K%r?`IH3^{icfejn6dk(I{_$l~ zL{9WRl;5^$<;Ae3{mrP^jT|vm`n*v~U~%?w#l+6`zF{WFnj1u8x@sIUtO$?yi909wk;xayVM0kYk-`IDFW)>f;ZnGrxmh>6{CyC!ZYT_pF}jquAE6l!FQ69 zT0_E*+kch`wx%QJW&GY?QZ5vxVA2-=7JZ&Df5m3YP17cqc<;>9c5>k&)9N+))a;JOR z3$jR{(&4jNC}0COJHvZNa5}$m^hI?ySI)|o>;QcC)-*~^^(B=S=k}(aJndL z!*%pBEUd3xg|NBA3KG9@iip@z*3|n-@gXUfzjpXy3+8i&aB}iPi^lyV_9ML6AMMq# zxo*+rX!L<@u;+_!t+B}~OzEoO<#R?qHbX9vliY2!N?%7k4bIye3hB9N3LZ>pfhkD8 zE!OyE?UcCkwf3#ybPcUMf_E!94&Ian(2r!AM3U&fnAz5n6|zlrQrI(hhNtk}gIIIr zfOeoNwljx;(@&SL$|cN+IeijQA*|R((y}IQRjGV#FO2?R3;3*^{_uDDMb^~??tF{* z&5%^JN%(aMx8PMD0*~{o)00yUOtK1*EE=?t;62={OfMH9r*xZy=+U1I#thxa_x&!g|8EWfRvA&QBH%26MLSt!_95E^;_}6tCwol196E;qMCBy{pxsI16%|Ucp9|(@#ppC zJ;YzAv>hagBIB8hijLI_rg%2`v1?#op9V?CkwJ+SrhCTwZDW>7GQ}yly1S2t!aH{(#MIxeQP@K);Sv*=y4BB~k3!bsd^oGm5-S@I zxN%_Ud9#JHXfu&{{_9$wK(T58&5cLYZJ{flalL?{euH@(6d1S;@FUhwv*rLEWEggQ zeicRoy)8zpj}#Sa!|()z5enS7GZ*eq0>i$9oVjDRtoCI*4XP$O;;;!bh)uT z5Kk*(qb~5m)dveJPJ1>KYhyTIF(^GHL2=E8@<30EuuE_t+q+;xU9YMH03V2WQ$|(l z_C}0w49Nk0pqs)CouMp-iV)E5$lW3*D`eFx%uM%8_cs5ny6H%wa$XMat))}}=)|ZI zUb_UeNUd2NhxU9heWA%GLajvwq z&h!R}3&fPIo<%o8@-X;QhdSHNy7B%lbOT|RENQpTvfdC}(PQM&`!3(QimPpQH8$tF zt-4AQ?pKeSMJJriE5LW_xpd%ohx%cb6J!AWnv3)&Qawhj#v1&Qpb{b#3X0F&fiPH? zH$m@x!3q}(;onz$CZ9)BjZAR#=1RZIVWMHjz)d!&I6^ItO#f@sNXz?09NSe_xRYr!O5A0Cc!&^Zw*pE^(jRn_u@=37j`c-r*NyGlhA@i^q z{Iah|g4<|J+&uehesE!)!U)vCE&C*kW0{*14rT}*?z9m0Wa(sUgC3FWXe3h&(w zN+x7q*Z9j+YXyP~+J}&~$REr4H}l@fzCScPUW)@5T(5j8^7cOQ6gnQH3Cwo}h1Zpy zfQ57MC0SB4#@~F%qkP2!^y@(mOXWitY4VC3WewpeRxZMGsiDe)dNKzfV^+8>i3h=$ zb>&H8^=}HL-!1)>L;aFE2JeO?(a_#UE*yHeax5lC7q6~EuU9m69(m)MULJ(c(=0{| zBpm9ZIs-cqzlK!(S0*XMB-q#xJB~6c@cs_jpBLnR>$9HTs)9dQ@p#pw{X3*fUcaWx zP-UF$=1?DyF4k>d7h|Gpjam7xSF1mvY>nohafn3})4%syK}-^brYge++=+3(OJJ^o z-tHEhLIRTxq?k5%=mZ~=(lcx~X^AI?jR~z6pdnIC3X$~b8oaFK!}X|Fe;f37$nKg* za3*K76aM(6?e?a;%ebPRuGoJ5G95A9lx5<}?nULJeIn*~Oj8URPE^6E8GX4rQkqq z!!(@Wi&$2JKz)z!Tq!JsiaNWjRbzqBd#TGvZg&QnY58L$fYF78sq}{?BeS-HT2-oZ z>0RAgEl^*9+%r70QG~P8_qPSI#83d*y#hKj49-H1l(Da{Xkj<*;k3cPj$;Edg~W z?fU7yKc@_s%sA4^XJ}4(wb^knVxeY07c*Gga9?gv=39mLf8;QM7IhoOFPw&z7H`E?W;1%F;vm4j9bHrpLkq6d-86O40ga| z4APNp>BPJu#~AY&8NE<)dhx>5bTkb0MaK-znBSfCa2-c8?j!&%n6?~n!}=s&nPUMR zBHLa(WxCGl-Bk|@Dx9!<5-!NySX^x+ei2Mu+9u;HL87{TOyzZRYm|1PlW>U@<5u%O zia?E>2EhexoM7GrO}~{5WpUEkX|>v*wIZV_m z`WUzFs;b_UHhCWmeW{l-@!v&^peSMm8z!pX-k?G5)nn!M(Ni`Kyt;dOj8=0itIN*W zaN?E4(EIE4MKQ-6Pc+R)YSgLiw@XM9JLkA~->Yx{;E;4L5?nRdD9lT1Q|#K&EHw?8 zjKnbw@BnKC?c;FJ#1m7t@b+8rG$z0ZC;F~vvpx56#wCOL0bP&@0UIhp%OWuRCI352 z{e?2otL@JN_Os!JQ;<|j*vY|$ji~;+iyHaBGa+vYRpnUS$`C$SrQV3T84@tY+2&H# zi)tu1n8-LhcQwcWo7pu8#^s*<%AzQZvy+6Y07j9?&UY4AS0@!uhw^AqEthIXfe^8} z3@rK)7xLVt4-%xVYHa=!4OT(vIvNX6X<(c+I!;f@?ON@(&-?*OB_k(0ZEmi#NN&>y zyK7}0>wZ#tANHCNY#cCHi6~Cxw&i$bSe#Kz1vJ?u-t74R6gFMZO!96 zkH|S76{zsn^u~A-l>JQ47DH|)xQ*9Ko{K0%nQKe1CG%OgIfp*yVUDTgHe$2KRaed{ z!Z)JDu4K!iW=7|REH!v7%aDrJ&tBUq>E{7AU1xSxos`#0R6YE8$_4~MhA;?-VKRC# z9dz0+W)1f^X0024nD7OCdD_X1zn}&~!(C)9vbuYD(h*QaqaYhIcGD*?4P>{&Ll4YG zkTrTI>W4xr=DH&RtmP)<-ziuyuyxBQHK(Qc%T$cXY~f7Ah*d5zsq!)0eRY(}vzb3{ zznHr%^efF@F_9df{emOvT~~n9vf`1)?M>~v@!R>i-MI|(_Ws<21^u@)0+QIh{5r- zpv@lw3mN*Y5Q)L**;m0vq=KRhI`-|r1)qaI2QZi+pk!TwFGZ+x0DN|~Q*xnF4Elf+v{0FtAE`x( zt5^=Fv9coR^g{P%LrwA3Ry;u>9EG0n?brI!f66xSc`^s?ma?kJE-TF3+8(8Lgg~AH z7zvuXt}GjQ$)-Yk4o-XM@V|5*cT-uL^-KVPba#jIZ|Fv{Ft0D}ZWHG(Dq>RMmg}GW z>$e_eQ+c61Q7AfrM#At38}ida3+Qw1ro-SkT!<2x2NuuvRgELh4v@lm_Z)$UBn5Lw z=(ij$vrgz~sK2;awC0TyRJ%6whvhYS3Rl%YpxVLJ@i=#R-|{EkS3Nto&E(ritbo70ZKlgSk&*u(kP5R z48-~96=N1FqDx{cknRYz2TH>R|r_85i*!h9wDGVzI zwj772y$X*+iKS{9;1-(KR_zsu>c@|q!4T9hR=J$C+6_!?!7x`4+Eq5k6EVaa9$~z~ zv=|c}nu==21>>&?#&A0y@1bPE4)f;|ZkuP}zNSfxDEEwiGruK(0+^78ku{+oC0K6d z*JRZas(`EKFxp|smZ%aRcb$IkYc-q1!Ij!T7 z#ASXSvMb*(L5tetGSONQj$Mjl|FqZy9q_GsuaS*p$mnqU(!#7d zTOxEw$__JFcpPc&SXiAx?4vzQ(4S(%#4>qX7O@=+Z=H;traK z$-gM?Q;$X4z#0Bj;~5b|_VkS>8=50drT!y~;ka8>Ky91@do|}wKi5a+c|+$K__0fE zb@BuAUZez5-q}be%C}hd7?7>%f(z5Ci3~9qnRzLQJ1Cjps>xeMA^B$Thn++G3jxHiA; z&E5oz_x|BwR2WRU zHON(S&CTk;ov~T%gWZ(icR);r;QZj^ta39m%@X(yLA#K^z+&yfVR*GM2c=;0_4G)7 zZThtiuEJfrA5}byppcrcM#avdhtOUggp}*RdtD+V(?DIZW8K>;&<4>Y@8BltWBTyF z93*ULN3{%jQ2dB^1?@BzIS)|QYw7;L4rSnO0{oZ2S6{ZDf<*D{uUi;_>n$Cgaf3ES zE*nQ6K)?)uMAgkxca|0kFD77CD^Rnhyz6!Mk&1(GG~BoKyG-c=L$L2jJ>d-r$aN~7 z<%LyTHZOv+EI{}<=q`#xbj`T6$~O9!G{ymgMr%k?ed=mHyNGpA8S1QxR&Z3<8n9qG zIZDn%sWLAV>*xq0T+~TClTo*23ueKmioP=QE^t^irH6yk!33RWb z8~5>gUyhV7;5UPDZE^AayJ!fR!Ud^G9fv!B+%YPi6l4Vvd3Lf={BAHg@w~vZy4h-b zthe_YahVqom}f>py;TgATXL5=7l*YZ1eM-E{mme$0EVt`y1-gStvc-PbYSabSZhlo z?`a=uOA__5?E+v^Z{fMI2=BQ&$+A4!Sg4$I4JrIIR>jefNUBzuE(R!DLI)Uc9}sXb3srKO zi$2-UYEkrDr?0WQ`7G4+EH2t)NH?1?;eLcp($|2pI-5b2KwBrmvt?vg%8v5a)p#9^ z$;Xh)3Z)G!PKBGR@LKp)YJhMK1#oszcT|QSUO0AR2M$w}8s*P00iZF368kiOJSr|o z0&6mN4mu>sL*L$c;(_k>px3je1!A=#QsZ1X^k3j6y+wLF0<=f)WxP{<%R~SCzi zK2qR6x6P}Wr^jsFIG`|q@9o9j_j{LVGYc(9g#WU+DagbGQNTBJ8eb&L&P|)Xvh|4j zfT`9}mVaf_>_u{e^@=WJO!9=%@sTFxcd{ogxNt|&d#Iei4&Ee?`!HN1@R|>xE7Zb$ zV0}3AEFKC9f)f-h#M#=NDZn!QUJp!h84f+@74=@c6LlU>F7|4X!hCplWISJz!5$$n zS*LMqayTSRGp#vquc~G59cWf>AV7YLQLH=hERRSPZbwTb|F8rXjE-0xPGs=RP11K& zsx*R9KnvZ+o8|D}aM`a`gpvW!7VZ`ggpOBS6kV}EC7JdN{}L}r zeEkc7A>#wJn^d7jW-o`nVq&q`^r*DA5f8M55NwdIjOO&c%P}3Fo#Adyg(5zN^$H0t z3+0I>lK$w!|H-@R8VLWGpa~7U5pRtz9)=olB4eD1b0yh4A(+p44YZjCw|~jiD8o1((`pDWIAw0rS@oPc2P1S%F3_t_k%%=mbcgDKq~q zVnLV-7Lk5?M)%Nah7M zIpfe4P@kK&h@1jWHq%6iGV)xk7bDk|8Qc`8=63I<5IN?cdw5SZ1_>Goz0WdMo+MKN zHmQLk1E0Amy@7{HkqbnG)J+7@^<)TN?w}QAjtO!)g8tvkmEV5a%lKaxT z{OF+{mn^P4uX)z*0On9%p<1(**2~E%*;O&-`)xe?z`ym^(Ih{-zwUKQrwlwr}o==(JWb{k!f6 zX1~1}==*qv^Db~G!~x`~d(bzb+F#JwC3}+ciTjG~R?Aa^%Gfkuo4;YBb|>dmSdb`M zgj=k&R*FJ4sE=&Gq!XwKMq<-S)Y2KjZ=OeIyU8859fhJ#E9TGgDo+bbw(Z0Y-C?T$+LNVZB%lDb~uX)#g-X26IIj8b><&t4{vIb1|S9( z-#2>TNPI?AGYQr|nUMq#F>s?xD=}1r&{oDLUuEBx%X3b3WNjJ0Qf z>%mdp2n3BoeN`xK-f-k~2{>S^=A~Uw`}B1#6l&;*o^T;ynqzSP%l-VP>aoqhmYe^l9LE!rxa%X7v;OoC<#=SB@K;du=+#l^ zDvNu*P4e_BBc#0MAl(a2{W4!txoy9t8np4#m;7lVmOqs%&aGV&9-`5vkCh!+?Ea-G z=LqMh$XsqYnca7fR~VvKG2jNoKbvg$v4v|l(QEVxE^obmV)9nGart18?yWxE!^0la|YgCYkm!)*s%Q{dftDc=TiTzv0KkqDu7)D zM4?cF+|$ITGUPc`oAH{e}24cbXRWZCM3}V6i@on<7de4&rYI9*Uww?UAPi$z5 zFcY2Hv!)S3xK?mj4xGD8!f>Y-1Wbj4;>ySG!wI36s8b!tTxg3NLI&HjiKUMWj$O>-3FULB)|J?WALAjm` zRTKJWLlW18Cq_wyfY@cd+bxPpU<|?sZZmF)|6NO zdkQf1I$DT$RVN#oH$X)EeG(i6A!)+Lmop7VI;b2f*41P37OuO7kQ`Kipyo)b{+3|u^4E}LFm z1RHa9b@}Oo6J=v;f=*1D9P4#X=T6k1yoml%XV+%8{wH$*Ulonj5`BQxAZ>Q$Lp39+ zcUciw9>os47*^5GufWy#E#%KiT?-CABmD>8YpT5Otdt|`Ng-@=+&=mI@--h^t z+h4PX#@{emJE#9g@~5kK8lLzMq5OXb3H%>wKNYq=nF4DyrL{v7f#NbahtF@144&-o zVPxYkt-c!znP0EzQGn;+_#(=9w>22-Q$1AMX>nwIXEZd&eF810EfP>xGVZxf;D5%CG)T8Eaj{XY+q|37yJO&a}gX8!-lCHQ~i82+zEzKe2v!W*&>b=B=Ga`%+B<1Oxa!-8lwX_WY08s=`pHq-RFhjm%maI@4PqU_%9fC`VRduk5 zruF;qG}r~eS4NT9wDMpLa+~sJhuieUp(g;HLoBRS8o~Zr$R5RWK`iH36B^eG2&qU z# zV^%rVU7!y?Bjz%5@Dvvk#4U~XhpSzC84)`U8_d#sKI#%s1y=mdWI%N1!Z6Wl8}4sk z&kIVc%kbvH^rCXnMrB;&%$en$b%O)8D0_>Pu!|tVit!31isUGZ3^2zk18N(>o18Tm z*5S)tWT<8pF8I|@G-gw(sDqQRhg|yi(+)PcEu2)BmqNyyOxMloxQ{z&r`e;25Y?F9 z=qMiE0ICa_#@|0jbCzrP5oPj}^v61kxE}yI31h(Sgxv8$-nx1mA|4YJD61~Oy8K{v zl3bRUn|6Bu|Iq;1!|<~I;4+>OCac!r`WupEfc*hP)j)?GYG|V?L&S~lTK87*4lcNW zyiYFt+qfxfZcp8Uu4q}E(Xn!V=U4z~P)qkNI^GbUS=2r0Nw8Sr(o(!^{|aA^5N9z*SsYfth*G3av_WW% z=h_eMa{duq%4sO^@8Xt;>xm>`EUM4d8Qt{&re6z$Ot7ZO0uB%W)=-ymfBjVArC5;h zCjT8>EXIgL<6LB7%d!4(q`IMW94%oyMjU;)W`?$yz2l-@Ba%iAs}+JX zmbRAG2>?*Nb7!AW7y2|;PXps%XzK<8C0aaz6$dFR@{y*kddBxuA%%}Fx||K@_h0?Hl$K%AJA z;c2H#vkB!l%|6{tv0nl%#=(6H!Ogyam}_{psJlweC_%YV%joHv?YsA=2D`94*3^?? zz8mk8?lP*8Pqi96sC`8`@v+idEV}P8-&mdsf3hT#53Jq3wzv->lsYE7f;3##Ft!!A z`uvMOw*A60XxCEOd0PSau;uGBLF5f5yn$?DR7R&M$v;z2ek-Ty=oZvO|Yzj6Ih z?n7wp&PZ7a60+0Q!JZ6|ka+03E*3^N`*$AXz)lpd*XqDY7Cqhh2}#9-)Ee|6mYRlH zK}N1cf4#xk^KqY)j(%1f{8*Da`^+-CX`l}OfeO&|C)d|trQOCAPGJd%l!-g9p+_;m zWQnY%`_JVPMrbAn5m8%78FxLg>ZDKG5>KzxztkpX^Qy8yN!+I zV}KT@@VGnevD%H?7D;=kfc3Z@zevw9bh{1vX_$wKoo6q?w%VZtj)!ywq*Y)LZ+jL{ zriV%)%^~(#q=9T6BvNibMlFSn7(6-PZ`gU%NP23B8~B~{#itX~3WajZW(Qz6>X)g{ zD<^b{SYm+;?fEglq+O#ELq4Lpu!W1OQ7+{C&?+CI2AU$6HZR@7pYYw@6I;}wdftrN z9Ol|gXQVMm@{q=qts+&d`zFky{9MEFqBjNZ0-p zkqHsXTt;8pgvB~>rPckmb?hysE@UfMfizhh@?nR$-eja6J!_k2*n3;l<<3qT$^p_m zkv)RbqvCYSd(0V{ASA5W$G{W!w6P&Cl=`P?8B)AOo4R=-vrir7r}QUO-iGrTM6 z_S85;4i-Fczi8{z>at9Zw7aj;VI3c8cUh&yINsO%uP!GGjLVF4egKg5kmbWhlHhHY+aw7@>uMepU!~eAYAO#*lKw4_CNiPBPu;;7-VD0Tfc$Y$N)ZAoPtk;{D!CsDuv zw3S9b9OY0N1G`e=WD&L!hr0&}*VV9*2MMI2^3>}6N}Ib(8oI+~PzpVglQgt=z8tPi z0QEJ^tG!)+44WCNWKV07l|dXteBKcpP88EL+|w1O1GcoV<%pTk^Nm_o-Zs&5@Nw|4 zpL{>d9xlKSGEXw|E9ZMJ_(K>LmFBp5Fnl6Q{-89S2So)YWdCKZ#D;CnH0pP7=44uFA2;f|$f@BI%(01TI za80f*PzL5)ZewTME-;jF)M~6j(eZ@-ilS5VO~}U&rfb+~Pd!(L`}t-B+_}c7C0A@` z7Al#HF3?)?;dus$_JN0m33A^^B5b|;p)fBs{eJ*KK)%0z;(1v;Uz{PjWkz7P7C2cS zC6l|@1bMzg_8v|jE%gA!!(cl`#dQW)J(EdcvBqm9rCWcd>6g}zW~(3>m-wjTXMyLy za2<@7F!!&4Og7M;y%Y0m1C_8~CWn}P`0%!($XOmj`YybE5X2Hw>FYznf6I{3yRsa% zdQWQ_|Cbo!?*3dv(wLXh`1)h;$v(crZFNp2D?kzjogLhKiE4S?`l+)QbRq!GVWr7= zE3>e__WD7K&CT*45?hDRi3l$B{dZd9a_gPF;c39g+mY`&7`ZK3-I1AO6TScM(T8`+ zhaBSxuIvBcr00yfAq824;uhtg=!$4$Qm7;@S^xk5G}-N_H6V#DUwZ7EVj0)zsZkTH zH(k8E-`KbJ=!oP17dqacWh|PqY)IC@#{ODb=qg?%01WFAN_CkAZ5KN9!qxXA&p_J~ zedFq%Y44ZC=p(PByGa$Z5UW!72X;g%uM@t-pEHwuz zf#0OD^HEB=D>G?dJiCUa7$pQ~*d}38_dS|TLjTJISS24&|8j?H1$pvJ160V!CO<%Y zzKS4_TZ$Op6u1tjkC4hR_L6x3q$oQlfE~2&ojQ^r-xtXLr8Y){vc_IjT+3q~xKJxe zXUoysUlWcU3+sRwqqPx3!}Qcc5fIrDrDV;@QQgK#U7rNSQrH?q{G{KaiA@ls2BfEr zL;Q_B8BUg1$5r6<4lUZ4PUV<-wK>7FxK-uQ!`JMBnln%QzuNcxPB_f$a2B>7e+vMS z4o+ULBURs#;SRUI{-U+?H?Z!RSkK{D%t7~%*9kE-jr>b6Ksb4Nt+Ees)pHM`Vc9P7 z#B8ooRup~9*XWvL%feQ>FOMz*1Z9FX(JhI~5^#e=45s`XjSCzkU3kfZsrJ67ic0l- zwJf1Zo(cUM3Iiwu)M5R432NRnS703|@nEth-n=m}``YkR?>@vqZ$!lTUHJy5y7U>e zN#Fn#c))*OCYkt@pH_W2qo5r0EwB7-Rr58k30`p`Zv=%Oj!GviE)AC~%Va;VDBj(f z*Ug=_4<-%zCJ3FI#sqwx<{sZGIx3$%x1n*wo5>K4ySnu|!LYn{C384oF1B-FZ|ycI zJxq|q{698+V>X!DRx9xq6nC@}Zt78tt?X`aru0n-dZ@d)NGc9@RjNwgsEnB3|1U^i zQkg-zk&Sn|n8zt4h*D!vuAih%hKom4CCntb^77-|@zXLMKTtXUh3)*2kM5v9S{CGK z1Cc42&o2b0Ic`E z3@HQhELw=$TlM#@!bv}J!cU<)M0rNtX!a86#lh2?xy-TI2ZxknQ!^Qc?@o138P-_SW)vV7=oy_Uz+R(btXX@}Bs&QeC= zE|Zj?gz83AU0|Jj=JO?bGm97s%LwgtQu;zR;y!JBNwvnJ8=X{7B=G4c*AiORR=sn- z=0obl6Vj_>1d|Y1*C}wKXgFKX;rbc-3}EU3MS)8DP;O&C3gyhU3YB!%ml{1k2y>9w zRN0)5EGHoR87aXEot!2v1!e=)dv8Ex>>%vW@HkA7qM1`lh-5cJwy;0vJ$=Red1Ver zOw5Ck)?MQzU8?cQ`2u{}P(kykFmkcE z0|QeCY zM&sfH(>9}mZFrbSTV?UL$iY~KAL5{MRsEPPGLySZMz_l66%%PLKt$vJl;Poyq6i)3 z!L~%j6tCEA5}A>?V|k(^R@bLt4Q0+JI9&9ibDVlFiKYZ~0GB@We67H&{k zp;Ic3%GQm>B{?Pi`pR60dyy9YK zq8E#r$*c_vyo(}n;wAJ_9tEZ(f4kB?uXfr_2XdsO2|+52e+v-xObIUC*Zy7&iZ|{h zp)I?6SIGkkogDj`!Ct${YtwhCXV_@Q!~OZfR9b!e%nE<>1))-Hmjau4CsMM8lN|0(4d3&QnVKBq=ii-O@$#;%>4SgY3bmcH@Ma-0<@8Ag01~U zWL_9|qoJ}9^1DtJAl=ln6W(x906nVr^Yp-oL}fXO}A8Q@Iod-m&Tic z8AuVpL641L=c^XPQ3F}ZDaBxKKf>FzZd}5OS_22OA5T;v~M-! z^(wo`j_^(QaK^Uln2moYlxQuW01w}WBRvLk$4wm$6o(RTyPCk1p&a+&>ED0jnMBUNde(845AWJ#4v=UU5;Y*9OFycFBQrnTia)aflOQt! z>HLs-Z&DCXQP|^3`)E9kVlQ~HSvm8l{RMdo-*=piXKg|GfniIyC{!_Y(ksaDRGht( z%d9c}U*Ir3yN^z%I!4V>SV_2heOk~R^JMwn?5A%6+Kv? zH>-!LX13q_V&OG?!JdEpm<29;QFTJK%j6bsC@Mu_;Pif($V37QU%2Y_Fs z*?%CfYVmYp&O%Gzvp$&N-RkR;$XK|vl-g*^4(XSic_|Q)>&3{@lTE6={2;1I9$Vjb zC+;(sQkkFO@$HQb{=r|806);_c1m&`Mq;8WOa)qRiIcC2cB7AIXhu&q zM$}s>FXZ3OW#TjVkIF+zH&TxQsv9XK_&wgulI$1UdQrbMM=!s_+Grt^X}u8s6Ty4a zkhf&;bifDOxc&W^>>QO5u21<{1AGT{Wc*`+L9$2=)=~B1w6gXib>R9Nx8X=>rOzkik~ivk^i^{Zji zf0Z@zTZyR_${FI+6x$vAFbP|wREG>>Mw{P6q%~rh)BwY1$~}_c-RPC%7&iy{J5^3{ zW$>I3HffUcy|b~awY?lOP(1jfyQ)ZVnNiJ)%0Vrei9-V~wz-10zd8Y5#xfgM$zEGH z89lB)Rcb8LC^#5c;D)P}o*=UZ@br@PnXTket+bj*l?fgHJpw^KF! z;~9hEUtMcHa^NZ=%NZ~VxS&pOHer``|d zk{?-@m6N3@9DgdHgTEYj5A9qRqB2Jh;Tg$dbolO}l(n9B>zkXhC$j zE-(ir+SMd?%@9uk0)BBe<4gsZNlzatA?t^sg^M16O*x0$-~gEIBOcLeBdU{uu`KRm;>O5c zRdyNSD3bU=%y(D;LWLen@W37@cb$z{HrzH%g<%94D=2b!Q%#xWxQjYA5x6R6d(L{f#f}36rVc#R}VX{|(iXm$LC5Afx^@%=2UqQ8;hhof?w#)|(Lul@H)tI=l zG}5G@&V_R)?SDTA)WEG06Z9*JT%fH*vo;tCZvS+;kJvE&EgHu;va!_YNg|7*xx;X#;QujebxD@=7IMDo+sReZczn0LqDMR)>IaK?P;fZzW{W3 zfAH0_@-wt=yWRirqllbeeY!nw%15Vge%N6r{KLM3@pG$+RS7J6UAC}VqV~PcPE;to zsQR6pE)U53Xm#C^?eGXzx%~f$?v=8V#a&;)u#l@xcaNP7!^Ivc3r(qBAXrl%?k}Va z{wqlvep`s3Nz=Tp4=|kh%!7bFI7K?hDqFy^;PeH`BN=1NWz*&IhgQeF8|hto7P=+S z?&i&iRW4A8?P=sRo)I=EVV@}97F;l)UpHX${X2excz`&h{9}UhjKQQM^Kyst3$kTU^x!(M z)(fYO8=S2BBnB&bupoOFHZDHn13XlCO|6)SR+6dwD0g1Bw6ag ze^Cp%tO@nQC3sSpIixey_vq$n`Gj;fK08n<^oBP2~jC+7?IlX5E$0m>rLgC+C-o^xoKT?}k`baQ6!X~H=ALTP& zA#4alG z-jDOU$R0j_ttc06(?>6onTONb1Q zTQaG+U*WV<^^#sW9j*DB*D1ve1zq#**c(Lj=wn;SA}tcN^*sS;baAO*!AJhKqq#aR zx_|fXm(pu?X7J!9R6!?JnRypif<(JubCJQe!S+)zxrk)zlc-$J2`;bc&s1fE__l@@ zp!MN)J@cAsQ-us>2JqpXbj^YtC_}ca-I)O8 z$&wpOHQ;ZaF z?Zeru@MIXM^>rXqD6@dkC_@;ZKTB}_Qx-v&s1OV0B;Vu8G_I7CDdJu@l?7ShzQ#`9 z-IaJ~Psy*L3$9}FmL1+ofJ-oT1$@8%5mMx8?Zipk0oPY1dh600JuI9x`0x#f!(P$U zD1SQ*s-~Wm-FqIKYD*IG4=;(RYY;l1M_Ew9b6OJibjLcq%yz|qyzoSLC*tnBGp8M0opxVlHuYKaYabz^^W;jNEkwbJ4jW(s{ z?cVg50We~5choE2vo+6&~^qbm`p9Yn^QDx_Pt$6Q|o)J&b4pwr$RIY#M;V- z_fSFO1SCwc(#rli&aqi$IGzDgJSaQYK(1!#gMv97aVVM(Bqsxd8!>|+u*Vd^#UVaj zBn;mq9*2}EA@J!U?(r!;rCjUd*DW9maT+-ys~h>w8S9jbt-+c#Ab1IN|A)?>_7 zx~`y2#FbWw73?2ns(*b0Jhfipm_ZH5G>@hJ1IXB7bOjaqK zpg*@|s&a`(szoB9zAP)h)@TsIFOpih6U@{!C^hu@UB#_kiQUKfr_tJz#uqdM#aS{N zj~V{00+-U1jJ!|;&&N?jPmyVT=ae4KGHDIVE9ku#DJfiR5tL)xVF%k|N?J{;BZySo zf}BmMi1vNGvLpvY2_{xWn!Lkvyju>^*yA!!Xq*y^0+z_d)_&!Uo80T%CygIzgS%y# zm0>WcYh<6^RvmP}$}P4gT!t`wWtc8a=QTE5lbgO`W{Qb~mlN5;4)Ep`<&IrT?mb0G z3`)ENgYd7aN7o*5obedU;i7!xF2}6sF6y~b5vE%MWmu8?roswBD|DGD;Hr7_ExjR# zpG23q^=P76op#7OY6D}#os^H;MKPc}4#?574u;Mx@5nLs2;lkoCbv#>;aC=O_tzMLf2x@}*|*E!qU+_>d3&D_)- zu~>1zXa4AuLDRtwK|NgU$&!-%cxa<$QgLvBuHPK{J>X@q#C?lV=)ER+pdBw#Z^7$DwC< zrdJ^LP7L$BC}F(eMGYhA^*+ly{ABRLFgaZ^)~)Xfp3*?LSS1{}do@svEn_82-|Ix$ zhgca#k?@iFGo=u6n^89(8l5F4g}PAAtq8p4RZN>gbg!LbI{Og=Q0(bbA%)bJ5ktcJ zdjd848zgG{ETC@arT_vA#u+^dj zrr;}8ZbFjk@kpsGE(FEQWwVq1tA<|!TO*=&Z`^#RM?c@hg`f6x;0<<*U%|vI?q7-v$g4(ccNk5QB!(vm7U){6S)44 zP?V76POvcwu(MrJEqKC8QH+yG>4$FrYahOJEjDKJ{_s-@S5k5z{5h|`wB|hPh^%3jj)P6x4jO# z@w70$zglH=u!fi!wm4%gcm659vsj9hO4$H6mx9*I95o*iX*w2W7$<%}IS|2Xkg{LL z?u)1+&8|H3?~|HfaUS$5@wXj1vQ?qj!r-4;?ErcLg0JLizVZD|Eq}QBy|BE+yo?H4 z(vPxK4qbJ|^T#_0VV+vWZq6=e*G=k?-C);S><(fH<$m{X|FMK55kN1qya@vA_E+L*6FZ%=o3$ z`;A!5^3eusdM(&Ck-wCJa8vgrw!a+T`-&OkyfUesH*qYf+D$?>@l9d)Whv+i z5p1po!brLa^JN}rpPiM@bScnQSl!gHk%*tRdI)Q~Qq6w>@r2DLijHRrf#-d&Fj-6g z0%PNQQopw}2V0Nqlrg;4OYqd@8Pa1><9$fo|4{7O2HJ36EA zoAUxYlR`=`!CIxxoEU@M##`#2<=nBR$C=-GhEmmcnzlbSejp57vaGj0U36Z5%j2w6AzF2a|=-y3dDd(sK_FZhki?x4?Ytgg>?nrlIM?zjL@Lz%3AgXNIxjW!P6C`li)t|e? z($Y8g0EkcOY3ede33YH14g07gwQXYb1IKb`m6@UOJ|IM+UB>*E!PM8+X-=w-E9b<* zuRcv^ce|nGTP??{pnSuGLuX=;AsHHTqcby&XoW6M<)fb+@zCzG5?#|WVXei~stqJ_T*tk|Y8B+5m&BL!1tTGqnxVA;ac_G$acCs-udCl>E<3$zb9;8} zcYEYA=tDpJzF>$)>pCM?uno|<`{w>E{aOk$HOHH@QJpera;S6K6q}tL(A-HPB3yKtt#}@;@mk{#;7LMj-_DsF2L+8KD zNa41T84Rf*!p)^l#k(1JicF>OfS~O77LXRnVJUh{O?9wSH&Q8OGN6ojZ|{RWMpeu9 zj%O-rzz?&2&H)JzqFS*#g>3vF)RKRC=`>7pfDLJn3f{^EcMf9W^mO<7-ag2C`_qxEj>Z0EmA%eTc zrFthDgvPIq4X5a=+jz#A^}7|mC@83my)~GfeQMi2xRuRlholNzm<$__8_-(^mbo)X_tVhhwQ;1bB~eQ?QnpvVfbqKRAHZ+ z_C-;qSyI$t{nxIlS&7?SiIdWP(BM3(LRgj%!^KG_3$kV!a0(=bD(nYcrO34b1h>!%bQS_^yw|(~~w3y3+e&3+o4H_t3Ejrh|3P z+MqfR#hXq&?2vL99MPT)X}Z!q{#iz1G>k7eZd$mu3upg}TqY5R*FIOs)N~8(=O3IN ztN`j%FJSQsg&s%L-}b~OZb*Q4o29{gr7pNJTplxz6u@cOEV`crRqDSiQRCvk43Z>{ z0%Nq0gHJk`O}Yby$&2JpHOSJ^r)q=nh);QLR#``M;h^cz8o z>w7EJnDW^0QVbKlM%|*q^S7dD2o?bcMxG8{_iz!>iuOTS30?bOLS#%?pDX383CG1Y zLBu$E$L$t?Ll?!0g9dMOsf{>-0O1-Br}e6gea{m6;mcwoA+YD~JmgBJMuHzFOTDM7 z9`!eDSqVxnI5P2!Hm3@mVp!h(%)}$<)HT2JbIjIAIPpJEJ1 zOPU|bZgs$Zfxq>BuK82K|34$flOIK1H9INVJklN=?;02)35$RPOn+uO%o&JN3yc3l z85*va(MT{`A2h*2>SIbrPUm!&73v1upR;d2YR*W(5eR7Xg`cm?tAR%@zD~GtS0^w# zMdj~ze|fj{cAWPI>8p5-%VCUxTVjEqgsX}_yjF=S=7>UX(=7%GL4d$xqz?2B4BxE| zJ%PNh)K$_4SQ;7C$=J1V*e(F9X!E7H8u;*cENU!kQ~PU+o=r^EvdFtSK*g3daAugw zPamTx0?+;M125Gfz;%}V@?=3-auwIc|Gxst`F^GmPnx!0=tv$}*`ku@9`Nzj5o+%M zJusA5SBo+5V(5(JyQDiY`WioHT@2W^_Te?kJwFu(OV5!x)$m`y z!9ARs^thXw+jeMpG&)$Pc#W1;rYURstn?-$w{KKD@z~X!+%NdVL$%L z`>>(L&fy52j1U<|OMlJ_Q!A**sO@J*TQ z-g-ro{?i?zYFv=tLA^e%V`~!>&(Fsc7-&MU8Ij-{%CKApy4|3|`f_Qx3R~1B&mUAB zYOQyc|6g;ZIEcE?JWr?>xQ=NH^tp#ZOI-pW=DeRZuQGr@6vLnjPYT29v>LZ0lv5E$ zJf4?_?3b&!ugx6x#yuH9R>S>ibM5%qcJW#RpE#q=<7;`fQ8%_kyhFz6H~O{6hezzH zFyh{jqIgO6ufZ*z#PVR?!%4_kh0diK1jE35DM-l$ku^yygd-l(S={$E*%FJ>Q2T0& zrm7Ki!bcw!;n_>X*%JS>Ntvd~^0k&+)Q%1U#+Si*!imjf z&6@n9NZ<>Q;q11e?Nf&zed=1fqIAq0cnu-QK4D1Bk=O-ZVXu3THGQDivtP5R!sY8b zk*v?_in2!JUtmKMG&njDG-ir0UU9Me*@$#~QU>EXB8V6q3>7tC3BofCk7l#L0OU0! z1Ac)*g~h`bR^deo{2P^$P(D&LMPhZS^Vp`2V=Te+wR%v+TbQib{9%sEM~(4&#;5ob zJjMC_xI54t$9_VH(Elk#yDu?6;YQ=h{7i#Qj)aM@F`{gUf(P`3ps93wKTi(nP&nB^ zq?I5m9o`b`pxw)qw`e#vPQWGFji6Ud0=PF{RFbo`o?aLC;=VIa=oCKi68h2C!je)r zsaA2f^okfU6v=d9F;jGjCIn$AD2cICBT6OkO|7Pn+*r`{+Lh{nL$)RaKkrFRYCYff zjm|ds#4qblTbnw<%l^#hM#G>aYz-W?YAjB+MT>Gf#v85T-!>^KSn!B9=FECnGifPA z<}V#sZ{^tMCY170W=iXK>TJ1=HQrtE;PQOVUA{78q1wD^AI52C7oK!Pm4=%%VNQuR zYwxC=;LA~?-U&uI)IohE*2_;1W;BH+5Z@bof%miwnX!yT*<;HzxNKlP;_rwIn!r%~ zGQFxJ9ym74C>ZF0kB$d5iLU7SZUfZYoT;4@<+_K$4Fv#TR$9nXeK4Sp(T)jV(DZA0 zp>D<+#z$p0b^V=6<- zeq=Gw*{>Q9voQ2Vu*Iqe@Fb-(WLunf9RbYB9SAb9)O`Pu%6Y`L^FsUlTwgY%2*+UL z{jwLXhX1V?XKoZUoNG*VFwC@MPMjM72%?jS4ZdJGSUzz`&yXTDHXKH^N2(3yQk(MS z6|#23=S2~XF^Na~aQLy*N+k}{>x@=JGh@e&$Fu&OHSdO|>0)>=bOw+6Le!%Dh=L00 zqIKrq`~GcUaO8G^JS{zY$juOiHBvd$pej>nv@&ab++#x?H~12ICQITMpr8N3Ta@tNA3MZk_TalO zF$S_M`q3{YL0MexsEg1Dfv|+pjVtt*C4`*7UQ*01T3ps=ES-U}D>tMXcpB%%Wa+#h ziFbREt8xcoJbgr3F8DQkXpU_SM*0h{(o}!rd;p)~VavpPy@k$pUK_5q-$CeMNfcq^ z-2%oWGTJ|@ zfB1+MFbYKV)Z-9BSBV;&@(mMVlzeAK-z#de%VYFcm;H8dW&JycFyFtLus0De2s~-S zx6e7J*eRh*Yx48Lu`==2;<+#Xg{GX^B~JndjDM|Y2*Y;p@`sb~3JVcKtB&*U7yCOw zPD%oMzOrsTQz=XSrY!(rLwF}0t}$5pI3BsyP(AMp?Ar@?Yk0jIZR3Q^S7_};W!Iy% z=)~dv=OZN=OVNWanei3Peh^IJF9w-ClH&2daW*P72r*9YgZehO`oW zBmIbW3iX*S;4V%IK5atpS;xK*f$<``mtI`KW%}wtdBaH(GRTEwBpM&?TVZi?Ivq0u z;r0LnW&$3}Y5dGqB?)n6l=;R|YqT8ImmK_;5-Y(^#Tpc#B)h*( z93d}V;%@wR7FCCWK*ycbZf;p9P5d_dg*-7y{;B%3fPq$4o^o(sT%>ue4~vciTbhsv zsncG;XIDbA80TFV@}FOIM0ep>O(TLfXvg5L53}DTkZ4lo>YA4bMLZ+9frNg@JbWOA z_K05}+b$8_dyqGn0;qWePm(tqjvprZX2?+yQU6B1Q&M`zdBfInL&%}RQ2RQUTh|2R z?t&XP2L*p5`Mxo*7Hg&wbw%nA& z8(Q7Xxr=v3>s<1JQ54QElP16bWPKtBD3=C(yL=nJ9BE!P=&j}2goC2sZ&bnfitUwQ zUTW+92^swyR&&-HJFsti`l_k(LSFnypNVCaLz;g8?ed81nb6(+5oq^%RdBa3BaWrU zk47~AG_s9a<@m|b(!iQ{W^pBTFRniQO=E2cnfLTSVdC0}>i>z>za|EV;sXNiMV~-8 z4rmh#4Q=jO%3_>uaNfF@u-k{HzRPa~h zKBW2%U&IoZhC~+#Lw!>J@`1`m0V;VFf~YaR7*u=ra(eJJB=ye!iA4L<6`9XoLK|ud z&BVa}7mKNW@5a(l8{fTK8oJu3QS<6+0c;hu&UVpsq7FgW{Ur(W2lUoA*PzS^H=QA~ zR0RF{m?*iD>5^>)Qu}4H&OUrMmQa+Yj0m`f+APAFjb|A>25-A@p96QSKpyBJe;&frU zk81$=J<9j*0{P6k`iEb`uFydqN$MeVe%O>TZY($mB@mq@11>HH!WY4m&%smpuUi3E zyB92E7#hek$rC{^1okQ`@nt;7KTt5G$iHDAdB>hjvBHBZ zX4BW*o+QgC-fnlr_urx3^r7^`;;p$rmpSbr+#3MT-=qYvdyijN(}(?xJ9NEfz@~$C z>K)XIi#9q^_=?ZE;oE~V#f&;sdt(3gwM5}SH28AUhS=6;_CC&Mdhk(wn4Ee2V)$E| zJ?puL3I3>tA_cXz*OSh_y^XYop!W`dS)sBwT{Of`Ki^irkJ@~<4->I-{jFAbJlFpi zel(M~fRCRYWXV*_WEhAY`mvj4g+g4gDe+jo$M+8nX?z*^ctov+NFq&e(*t$8v@+zB zU#mKv>kjH>q;oi5;Q9g2SA^qyW~>PGEN_8T_zIQ|4?&qkR?aq4+r^*jJcCZ%QerBX zgDZnPqY~6yaEmx!CIX`cO)1e9Qf|J1b$f9>Cb4B%p1>NXg7ttV=Nk53_VX^2%J=df z*{%IGy|s>|7YA73KpbovxQk862X0d=z~a2QU$Cg~8g=eRa$gEsRGBk%@u_cwRAPYf zH>w}|52V#b{#~6AtCC`phD?V5)j97w95cuxSq`2FI9Wymy}WT9x9i13%ahk~b&($C z$N1O2d|A}P%T0;Rv5+KD@gppa$}V>ILi`i|`;l~?j}XadkvvdXlDeQ=G$yW9#Md-2 z>PfYRDZ10-G|yX~mpm6I|EM;g5bE*)mv`&vmTm<-bx4UabaLb+5S&2;-({3?@HyCp zIb<8a?J(rw`ERTUP0oPT2Op;-x&1OL_K@=T&_U$ETxQPy+KEf^~-viaVvSb;4~z2kG4)wgLoHTFV#)6l83{p$`Yv<;ZI zhp4x9gc~@N6Rp-v9G#4bjI~^V{j6Vf)s5l%}gdYs$aFTTgCx3 zM$-RCWCyZY4w0_g&j{@Bm^`z=4nWslfpT`N0lnZ&ZYzp^A+N0i@1vocNPL`Ny21nW zwOw#LYe@2#Y+X~>wAs-3ob5wr7bcElexQMxb1SGD9mIpDpO5B~XP5DPvt0_Mk|&$_ ztZ%dU%N+yC0r3S<;Gzyqy*vp7c}5l#(jaM%0ajLXyjWWTRwFM0eU~dY24z54@P^u$ zo1Hz@tUNBtK)*o7jsYaDu}N2;^&5F~ySKKzQBK?DnV-nRi#;x7cTeJx!;0 zol_MBYE2-s!xfP;v)@S#Q1tq)NK*j@jaf*w0-mSU3pq#R3*KozRSsf?LShnkxKWQ_ z@<^SEGN>j^JK%{EKPI45*8Qd3+!sjJ`=y!HM#4lkgV}aS%QHp#DyC1TPtVCB%W#OI zxLez)zjJyXs4=f59g4-OD33Q8pU?e?iS!Cf3G?zBhd9<~V@qBP(TKpdJtU1ZUWL?p ziO3#Rz{P0FXPV_|ZcxN<2kb=S_cS0hN{8wCbt&I{Nx~G0TJ;2$#W>IUr2#3gH6d$( zVL54n*U|&*r!mH)Vt#Tue^C^xawb3!=edNj>31J^9jvb|tVKesPa5Gy4;LhO@WsMA zE5bHK&fMo0PyEg6?O~k1a%}pp%c&>Yz6Orzvo#DcmW32Mo(dRJwOTJNBHQ1Vg1|K0Yh zrsEdhVKV%1CKSX?WXT-6pwYDul;XTHlBucI@&ziBM3r(B$)8O34Sn(uE51z>rO?}~ zxtEb*3owsWxv8lKRc)$tpDFogbS?t z$CpJLinxKEkA4#Hxy#uUrY7jH09ULpMEMb0aQp5*?DklOr7K+C&~<@zS~>&qlPW(L zbR-^`Kc!MwADO6r78MxJz$HYk`K2NzI;1ox&k%jBKsnoI<&h`L+iXb=5IM|j5;ow2 z3M8dGGpN3KMRx3iS6#v&Mi6l2gR~|2fiq(c@CCISf0ItR6sCbg$gIL6yS#X_C#qs7 z_lwe`jJgVUuPzy1_qo0)?g@}RU&n$+63_Z5(5|9xyR=4O_Q=@%Um&Ytk~;gdL&L}* zUzKB~c1jmdPF<{iW`p<-^sh$A2L^*iM?@Xg&5;>KcFk`3vMiR`5Zex8sw_QU*9+eo zTo*@Tb!PXnY-Vp5;^16!m2VRUNwr#7ll5C^|2r7JQ0*jx0YAwuDFxWwtvGXf=rGNY zY=xjvNE10aaeT?)6+3RgDs^F>XAbOxZkW0_}!JKCtwjKbm%MrUrB?RT{eo|LmzztA6{HaJ)bu}E=dq>Uea!!-oN zCu-W>!iLQ8M$Y_w;7Qbl1u2n3o(j%Z4m>&!hS8kOQ; zB(s2|ZwK1*B%;Ka8cg!e>brn&=Jyr?NFvtkpFn1YPbUI;Ps3QxlD!-7z+Sz=Y8{x9 zd&MBpVa?Y7Wzy`jVh1iB@6!47;K>1jW6wbhK34K%fZvKS#ffrRub|_sl>%JnFZJ@x3RI-}iw7?jrfSf-v@U1b z8lR6oT|PvJv3V@)05M+b@=GsHbKKp@`RWQFJo5u0C?_amMh#AKT2<}x&Rah#7nsI| zO8Go7tEK?|MaUyXDPv*${AY0^SzquTlMWRGHrr$bV&T8U8-wC)?<|Py!gL=m-5kni-Emn=n3KQ`+b^H~YmG03AG$90eW zq7Wh$2*LrM{JsQ|3&c&F{pbtW_%pM9Tr79K1f3I5d0Gs7IVnW1S8*%b%vRlfF9eDS z194YvgJ*StzabAA}7a)u~)$2sra`Dmes?dPF&c_nX_^z}c0anL}>7B4|d_U&UbnQo?oW0;Ji*ZG*Pz z&xP%SW~v{-392={Js)0 zU)yX9FX`aV-G$?Db(ux7&^s({PxETpmpC#CSA|;1)tR#A;+GSK3s6`Hz<~?QOv<#-dR^CnnXb$7&C(p(A3C=2c{! zr$&7o+~rIxleg0Dy&Z@R4jn`SGFW3>P}GY3+Xy&PWMM1%bALsUIreSPgyzQ1 zTDR^z&;eD6o`A(B1jSdtxlpi&WkwsIWGKs61jSwNX%hVxpMnUrkH#)4|BY8A8~Y&% z2;K4vk|IXs3&kHK$F1k_mb^ym$MI7QJCeJoQIG>k+?(5vLPdH~SLQRfYJ0JkI(rvT zY-`X)5Bkp7qrXowWm8EoWX4hlm&eE0`%J4JpU7#UhC@9#3tNdcP75v5q*xo5o)Lh5 zPz$>g*c5A=wXf0{$L%&P_Pax;%n?9H9?BT?(!RMmH1*+JhERSFAi17{&8|E0k`1JI zO%lFt8gbDW2)I6^qZBfVbCL^8S&Qij$(xx9s;TWw`71~!`?LOh1ED~1kex}eV!?(F zY)^Bd@5t@3#RF8B=tfF$zZiKltkLLAv97NPBiJ?VUYJnydGLDMO|c}r~Y)f$pw-K)sI^?Wd|Bqb30 z03IgS`7s)a+b9HEogLoAvw~&jSM|&sqDMDv5Fmq-$cW#4r*?%_IDSxKQS70PH&xRRj+Z!aI%e z2p7AaQGR%yx^{h|JR<#5qhI^c{{lwMZzqipXr$1xzT&;skUwp&hK`1k*r3|Aoi~`O+d}Kk66_*_R zk02LuMa_|jae!?ui;UtT%Bp12O6mp6^ndGlD5u1y>5puo6kq^uWBvHV4i1(*38cA=NGzV{Pa%CvPVCQ%)@aH{ZowX zLHk=_xmT+m#W5k*Mvt3O-M1ZLlV3ARJuJv~(7fS_kb|d{EgF>coA@K8 zd8};SeMRA+jidPg({KBGG>`rk378-mmth{0tUuP1gW|ik0_>AudK5z#6^DaiII}hL zVn_1B%PK?|Pl~VUK{ad-)TDOELu;GY{C|ZZsAC2)Y-m`T!4*BU7}`~y-b+2fX?|xznz-83ihKYVOe3FXpij9Oa;t&{YwGCt@QTNq2rJ_ zI+9)YYbBZK$_j^3Lavyw_13Pfr`g(4p8i2<@fI59^QNR>%Yh~?0jSM?V7cng$Al|w zs&nvl)3Z;5Ssl4OocSX=efFS~j7)CJv;df~XG`N~{%d|J&u_!F58q!F+X0O&GUl|}q2%cMv>D16;hVFjKE{-ns_}5xWywpfQ~t_SS$gh}htoFc zhoz|nC_e3j@+D`_uY0l)D&qcu(uZqf50V4netf?KJIa&yX=sQO#(5vdik%(U)RX^wfZ!kjI*u4NUju7SK8=@-i&SoDdkHaDFfx~TXzQE+n@HM3Yw4C40LJT_0D1da94rP^gpWb-i&mVWK47;hw|7gOpj-__Yxj!0|m>8eEi7; z(ApF1sUB|2?|RcA2OFiq5;Zw_?3%}_6Hi*ksZIPo`-D|agg=iLf>X#ob@&QQ9Ck}Q zjJwzRB1N7RfWEFrJ@&M>e!f;mYrmQ##|AqT3>`I-%&afLn9d%d_@{#kuQD;h*wo&5 zhAUiBts0H@{Zc#`$cGUvd{dwUt&GUG-q-KuYkG~)ZzF^Cb$s;DUW_BFm5Qce>fUAI zRel8MmC}4Pb#VW&C~}qq9^FzI@|JgU={Av)%UA3=DXXTTQk_6i8qvQcQY|0fvs}S` zDyl2$@k#4q@&dXG)uE$0$xUA@5@<#OB`uwQb8uRin@nDg2B1yK3f6m@|NCE;jfL0& zuBW46#Ky1F-@q4<5KJP4M`-k)IcZQnp--tt9BC9B=@LqdFfjqMqNVmoqA0voNMeYU zbyyyH37bmcTVvL9HGb=l&Ybg{P+iz!i0zoVq{g7bsDFl`FU#_tM-aFDd+tz1Ld;sjA!@cW#$P7{6RX&K5s0 z6-Hxl3t&hH1oc$ESYWLMZgcwGQm+QNFNufETL+%$JcF@2X?3oq#H5L(B1&?%2Dwn{ z6>fzLEl-h!^#eCpz;DhmLFw9aa7;P0Vg2ZHV0Lmc7+HIUut;X4~}l zx;s`uhjth)xtsgvAAi`?^u3!SHk07{GEhhiu9ba?Z(s zhpZ@{rY!i7wAnsusWu5$W|B#iU&imS5ak*@=X~_zIT;HdxJ~k!a(3YHLxTN5ik)Zu6*YbH; z0cno#!``S|%r2Yo6KyGi@3QXC)nH_@7$+A(>@9JMk5R#vf8$bq$fE@4@^ zz!A(YnO#!WvT6Ky^WQG6b~jXY^N*W4X_0i~E zL&xvhmiSk6yaD?Mc&Te7#jP4S{g@iZ$WOqUA#fgIVYZLN>+^woMTxJ@dG%FNW8tD7 zAWl-fOgk07iCyBO|7Y-`$y5`E_0Df2J#IV_{f4j~!Y^uY5T0Qx299bYO(06?w0Po< zKfOP}cD>YqX{%hf5~f6+yw*qPgpV{;RHB}Jl>AAlkN~N12iAC zC=yBd6HdMsiK+nhe9lB~THSkrnEzPrC8+#|YiI5hke~91g&^&JVPahg-#63q`!;dk z(uZbn{K;fhV`X{oM)gk)FJDc)IYV6*?wM)&^l7cYv++R?)L1tpZ*mS z)E#P#gmyrpJNn0f_O+k-5;*#{d9{}7vTBm<5wM7Z0;e-spKe5w-2<`m{aG6F z*U85PRP?^H2sZvc8Pv$x$S_VwgKj~C9_DDC{&DN3moOK2uy|0KaSWgKAw$UE*CO~) z2ugVkXGHpK1;HguA1TJhbgMm?sOz#L4w-p3vMjB^2^$iefr!eOPvoPZ+1kFs;)It? zl5T8@MYYBS5}C72GN2|;BW*W%6{|RB0Ew&jK>RF~f)AVu9<;YUTo~s#2*cEH;u}#o z7|A@yn;g}E(u@fjTw0X9@s0ljuaUOU_U-JuKk--seyB2d%GPG`ItW8V z<*G+MLCgqM_)QCdZw#-8|H;&NBQa^_fL66N#Au~XK(?@;TK=`zi8Ji8R1>P~%V39E z8MYPgQNsW-oT9|*#F4g+pzZj4J;Tr-~`-iX3MI`2xC^cRM>DXPb^9k1y1cm0FT7XQ zTh7jVW`h6EIiZ5o?ZDn-RUOSTU1p~ag~44UCK ziI@rRp{!i)?vs1tIg6IC%wH;LKgfV-q+dBtI_U-G{CNlf05S3c_$oidI*unsRzbIF zRZgu+<+@7i|5kJ+?UPUgtQ;B2oo?V#_JZrV2XY%3-#YAcn>l#(b=9$t={h6SM@^M+&avrM9l;i8d0=g&vhemXg5Diz`Q1^k>IHFQa)l8Ul?ev6T&#PRY* zy<||&MD-R2I9rS{iAER5_aW;WKoC{{?HNAik%io^z51 zT;RTSc;x#zfz0zp{eJ%XbU@xBrBPKz$D%9G?PYRr*=4W7$W(A;^O+Y1;&HA+p>DI4 ze|5C0zw0YE$&~GS&pCVi?qtXp1box{${G&~1*t4o0EwX;VFpTYRWz-f+bNa{jvS*$ zk9JgfHKh9?M)7#zN+PYd@6NY**my;J1wX@n6(8_sTGdVqjFa0a?)*}QH0dxHC z=aeQbF@mEwqO#LUyQ$GIghzpBBs;_>s%Wr@%jAk#NH=8CR|xd@QJGgFu65j4h)*P^J|ChOs&Y#J0T>ZvQg9z|W|cx^Eb0Dxd)bew#*=kMKw;?dki{ zP*WuO*yha@gRXODP}C&fjeOG|j*TbM<4JGi-BQ)ZBXI zuz|c+2C0ldpCmEqCIRUHHk158wQ(nrVwY$^)K8IhbcYsU?g4aa7M?y0ZmdVX zmc`+B=z^5j>YU}ArqPop%3{Z$J zKc&$s%Gw(Y5s7i*jEJiH67V1CS#|+8LT6cp}gM2wJ5)@wvj0DR<4_-v{O$THWpu3{8Z}bYjrgqxajl8t+E2EUeI5tu6 zI{J(1V?X37d}u#mXCUrkhHvgfxnX;M1~sGrK`jMJY%J5ATFR`hsYJf+B6R!=X8*F% zbb5Pfx)aF@QkAuBu&)*LmK|`hy}^d1Qh21$@!CM$>&6o5z1tj^8A-)&IlT-|e#rYv zuaBKNGrG0*N?xuOIBGFMSK7?SN{Ys=N4_Wvt=rE#I*E|sblhJTHDiKA6ANh0!3}FL zu6t34|Md=G)yeC2EzoD!S36!t8bg4xKVYJ$5o}sszH!66KJ}$d!l<;zt4QIzq7GVHwuMl~e&E zH^Sj3z!2$I-9bM&zqmh{k!% z`2qecf0W+eRq%Ot=9-0!M$L8Bl+GO1Dx&ONBLiv8yGv-W6}+^4;O{I|WSJdIrJ&%q z)0K`0wmfw+$h^@J?R8k8JE#{%B_?k&={IZ`T~&}EL?#PRV&CAJ(cYC`EDEY6dI|37 zIaLd##zXXBzMY1{&)hVb>Bg;{z3`yZ8id8jSG7nRh`o@F7f_`Rt&YG#n zi02|bh^AS&MTri&2)$nX^5-Z8ZekQ3yWHDo>O1~Rr0GU%!3_0R+D6fNxwH_+gV~j} z5NtGvIfz8kLmS?LkZDKjOX|rxrO?dY(mfv4Df~Qa0HogBX~?$VAIJ*vRmq)dbfh(t z^lTk``kppM>)MUPV28)?=K^jE@sK2IQ0m5?K1t+0Hsm0(V|$|)ySLEQL`>Gv9STF9 zV5C1345Y|o7_0lj457ryJ*n$_6*Hy(w! zbNY3V8nP^XP8v~wq79lb7}lwa)R@CztTbv`6A*n8e>!aCgm0}v-6N;AE?5L^;QaUc z-Nyf#wKwDhF!C){3o|fve zhKfmVg?mqV?BAUE>us-^?6%Xt#8YzGFsh+j?_B_Y$wH;rmn`(2&9@$%n4Ed&(^f4S zs5FDmc6{ITUe>*baG|&X-rg(E2xi+iNRzCYmHFsinrwe^zL#zksj)mnK+&mvuVza( zc2Yz_iC~W-xUp4%E@pnNygze?^kH?mkSIH;G&ezHXju-?VmI8Yn&A-fYg{5rxr3yt z2i}j22}N3cFnkXm*0lOug4r?@fmZPk7!HKI-W!Cwm|MAWm`q>b@-TgGtwQewD_f@; z{&(UoJudJejhnqt;Smq|ydGQUM&xvkI0+i?)3$uz!8oTVOMXsFBau3Ik}8X(gtCXe zVcQO#@-Jvb>`Q`LTBE>u>v`45t0z}Oy8uq)OTuSR5%DLPQdM3VT(77yaXnuH-DnAE z6C~}oiCa5KDd(b!HE2clq*0nM=^I|1_i*+L6%!1Tc|Y|eC|nML*Gtc?z(C2t5ZB_&k5 z>~|C)iK718qo;4a;p$i?HUd2?n*uk_s>_P_*U(xAY+wEzEcz2&Z&xvl6$`bhn~A$$ z;82;aJTaa<0a`UXnN3)0j!hsv7)52v6{>OpbiRzLnd_{zU_gH<*0obbvahlJ5SX`- zS2K8Qz@utJx}4SQy-YfyT1Gd1JF@geF|Ety5O zj7)=SUFvmuZ3xP_=}Pct*Gyt+Ctw+Sf|99Gd`&3JKtEwD~Z-pysJ zYqdItuGqAJ^;d5eYzCuPJmXe&j9fkPLFF!qd{sa8dQzu;EYaoPNPgzw^CY~CF?#fD ztcK5jt9)+Ia`Tz^-koQN7{mEmMra5~5R#;E8rax)N+hb=roc_G#4Y#tYK$cLx%4u@ zh2`R)Su=TZ!gbb8ZL{`0eDZrY3>~hMbYCR9AymL3HvEcf`zzt%qn^5Ls9IU1|T?2$WGM|_E#Vmn_FgQx;@g)^@Fk=1B+wvD5nFB;-`y;w^!TrWPB@B zopf{cYZK7Go-y);`qIm$9G-$ci8lS_X$iQ0n|z9iTs2=Tr7cYn;P{{tJj5g8ZY!~!DmuGRaqmIH=~PzwhEU3SpUakM9zdZzW zvE{x;=c?EF6=#&vGQ34u4x=m#D`+|`1R%bIW}yCu~v zvAM3Y`k<99nK~L;%gt+hwe_1VQEgRC!!6I{vNkO7StQCNMG~n$E=GKp`?lo)*l{S* zMjL8{cS^v^9q&XnRCra+;&Fm`1)7b7V)zcQ04r?KZ*ErUOIob2OUym#9lGeOM~i3R z=#!$d-HFQfF6Gu5vME6>>E^$XR1FaXPvKwEi`>XtDg{5Qo^YuXSr}tz%UOtNmw7J2 zVhq0GILIAo)sZq*s5{tIZ$+9waTH!%?a3t7x9+9dmHneueRy1Z>S5B;&C5d9-^`G? zp>up6W(!DEk899l0ag2vV|k1qLEv=}r{~2ZSlYDFSR2_bMWECL1W0g7DlXu+T7~tl z!sDGD1g;~DE3@9DY76pj>#kf%YMx}!_eD>iJhQ3Pa3o*^x3+amBH}uK&RXBVv&o<} z^Var?=0N==Mze|OuM6$8XdfnS&!0`|G~6H$EIVYRJ{UZK@+!%L%&>6L^KC4b7e#Hm z)n+%6m4EOb*b?LkrD{b9vQo4rgN<6oXh6UdBTe-Lanz5)9NSteiFj3Zq%ahq{C z;n1q6c3Vvu0$;LA_B03#TD2;!b_!OcV-ZZ++ zXPXZ$B}gTb;Zl{cO^MU2j?o&Czi5t>k#HTDQ~?JhlC zfzPQ(u$z~=t{S(;gtEhwrC%efw!=(3K}wk0_q4&8!J)QofS(AL8O|rp?mNGJwI0FQ zSZRZBWYm>CpaEcUYx+eaD)ec4Z+_t}J#lGy$5mjP@34DG3rI<0UzViMiCL&bO6?{R z0WjSBtgFl$=WZTR<{rjj$>n9Z!wBM@l)}o=4A#mWCeve;-BDP9I(^b}W#z6{+dHD%cM0Hcyclp5FR~p`mx?_3Ir6^7ogQ~n>=%jumJ2R0a&Uec<}C#r3pqDR z57|N&r3Rlf$u}!wMZAu}`R!z&=K_8qnwlB~Vu-Ob5F42o)&CNW^i~Am!+pUDE7B8< zz;F3AiQpWHom4Lsy%A-kZ90F3s%TCsRLb!}emk&sImL)Xd{od&9}KAypg z8mm?b0IPobX8rcai=$>wiiiS!Q$xiV#9|w-R(xegWUg}A`He?VcqvfdA{zk@HgF`oWpV_CD22|J`NPTlPiQ2J+!6LTm zQChAE3Z|%!C4e9rH*9_pT$?S6zruF;SY-Tv!_~YFFRhjxN7_e6X%Q~?s!D|K{{Eiz zA6rEjeqcL=yo_@%V6%e{Ys08wMKaMq?<#B(2Gy(C|HB7*+NGO~A&owjXi9r!Vx~f! zCgYblY$>%=!(&Bwl>N2dD4_vp zVexF{o`N8%R2#7#a+Oz1Qf5@E{g=@!@P6*ZvgYX~CI-h0Io(lHf@*zoXZiOof-s(5 z*3?oVX~r>(rhAlF3SDHr*qa>m zUW&_g1drBrA*KY+)}4VsvRi$kOfLB1E#GUi`&K_LyQ=fcCcUA!9e13VA-w{=hUXiGHsBuz zy2X)BC8NX2J}ap;I#1Zi$gzF*A8#T!nz^ zH!S6#458r#@IJ~ry=;S0N>jaLQkwdoz=AkKT&w8h@8TRx^WL%Bs-AAWMR~N$^YUsL z17=iZ5;rm*Atw^wRU&m(x6>JXn`5ZXc%?~f(H2_i%kB{JvM&sB9>wY7W-#|5rMD^O z9f|ldQ$v`6*tY(q!rtbL@oT5(L3}lC#`Y_rM?2@=eL48`MH+^7-#HlNXY)rCer&$b zK~&H&@3^grXER1l?N#6?XQYTUe{#!z0 zNGUK^5{AVR#2x=-0A5y%pfBUXOI|a>|)MsKED)K!(H;*Iro5!nC=B)aX5rCaHA_e zc0n;l6#Dmn#u%k{kty=1XT#%ED33CKeRKHmCYBjzP;jp5OrMAp)|z5*od9qPDvTCw z4Ca8(5ihO-t{)=+- z^m(s~0-44Izj(L(g~eL=ynF-Q??#mpAGF3di>)n--;P`7q+_B>#?SbQ@M1OIQ4mlU z$sd|PQ6qp><%ylB<-XJx$dGBDkaVA6MR3XUqX87n6?eIuJYZJL-Qr`kzV}$&mZ6}Y(JLKMcK^%Qu$1l`%ttaO? z1;yiF40i=hEyH|eyr|4WbBQyN2+{KX@%K*!2BP4tEQ9%}UwwN;n?QK$3!5c(J`vl* z(N#;l#A8X+Z{la7nkNu>Y@SHC+rHO2Jl7(s@t**#@==&>1xlyxwqAXJ@A=@)ixn<= z8VLAsPO%%REXp%BvrO}I_+7E=I%OTs(Sx`GG;T?JrB!c)+g!R|9A<{oA&|O?Ij7P~ zitB_#to^x|SIEl+YRF&lGpmwK%O|a-fi0)v6egc@+6sgGqv>97Z5dqE3a>_{7(5rU-N;WA9H}e#t6kvYXpbNFmcvws zZ&*=kq6X{jl1-&dSfE2wRm)r}g@o|3BBw1r7qr$ugQ+P2y3B@v@-*x>?#H|u4Fhxr z0~_nxL^JKRk=mkbLzzlr8(N!Dv?FpQ5`IwO?>wCwZ$X zur8i>AOkQ+pEzW}mJ|NFs9c0Aix=;BT;cc>xH);T2ENF|DtMboWMJkMhSec}od528 zvymc}PC2N@S7&jIv{SSxWt`M8HeV7)Flx}LfAd4Df%!GVcdCD7o|F-G0nYB*l8k|a zT2#!Gfs1L{pk7^Z>e^6q3~nI+tOFhI2uYHp?}I~`g2nN2t;fF6>>HD#6XFNW&Bl%2 zILyaJqGfq{+=YK4EDGX}q$DZq$gN(5dQmw0uu&HRB1*gyy7*Tu_efM$yf@WO&qM?+TSXUt6od373`Ey-? z_?SxMw~B9^h~S$AAOViHxnTC@H>0D4m3k{}U{$v_=2?lHsZ8v~1XG2_nVD;Bv9`lU zK~PFNAq%6N1*j*?>OlcQltUEd>#_tQ>b{1{8+$GhHfCLUh4~rJSxc*B^!;D0wMx&h z`)TE8*3>%pR0_t?qK@htG|pX+>`}YY?`Dddcz^wg;V3#rUbRA*P6>kM3`j|T-WM|v zWTS5v^}5(R4Q8=yVZ1i0=GdOg`BbA1r*ONa*A!r|Jx*%hmOD|Ez+t5@B-HqfiSc#5 z;r-OrwrotM9e}VoKq~o)enpFeW8Hr~oxTY{|4C~?V+NK=0vhC=N>5NxJS72dWgxzX zOnACdpXX-wbjzCZa0%RyDJaT8O9VJSQ~5*YU4>XtT%!2^2npFG1CYIh=lbb8)es7W z;r~!&>~1k>;sYS&&uX}w>KA+X@vkD3_`M+Gxl3GX1xP7)2F=*w0`5q2cn2qpQnGXX zOM~;&gGo80*^BYha~Obus1N=67pzQnfGobJVaevU_8oWrgiwIJEq~o@5e8q}tY@c& zrPdkbZ>~vEF83%^bjsFI6<%m;e>D7BoE4peXxDE39fo83F)e^B5tdObRlT>5968%7 z?=ePTsqC#C)KMAh(Q|f;HRK^n)gs-@9+>}tmTX6_wk@;<*-hmiKZ)?fC!mB}buLKN z7YEhGrwV64UXi#nU6NrKyvu?Oi}W`#4TEY|eRLxk=;tO? zcOrms*M5(`ZXw@<$sH;f8SP_%@zYwagTyxESCwQ$-4ewE2`deTt*G{?5CxGd4yeT- zX#g7hpp`}5AUeoz>$#MPJUm^Us2Dd&E5{Zs`~xy+T7{w9ko~xtK;z1A3bm%q|J3PH zg6_^^xII)fJ@zgFL&eh?E(opRyN_oPqhAzuhUPiRaJlgcFD1OkJv_{m+^P?yjcc~) zJDZGGav;Q(hB9oailf>eV;6#xmz1XmUDdG)g-g@`59CW63^)V8Z{Ymq@v?ERXw@KO zY+EFv05JNThLp;1vP*Y2^U*&OV3_9Xs}pD!-A0Kd5%D8N4+jVC{Urs&B{F^CgxyjXD0^$0B+7b zp@#o1Y9yAGFy9egXv0;qjaZ`;-lB`{DEJCo-5MABjH4L+y{-m4PTpYZmU(sM47IBp zb9^5{x$)`mEpE<%Ps~It48md0Q!9gQtNx~1IyXNiT6j0WI}_(=F36qAKV;I zv&f_;q3EFi_K1Wq7?^d+S1d(rmBWlGN-~c(!9%XJPGT0O8GH7#!dM#one}6<1UN?k z1U-xlY*`=7u|BJqIne7LaGkm4L?A0CzrKiTdl5CAh$B#=v+6wWmS$k#ccgK)I;jf) zxunSDS3$F&)jSCpf2AhfKLY!5pq6I2U^Uf2&Rn4&X%KI2ZQ)(4Gcc%yE)g#}Gp*XQ zCr9&%6Z_$}d;kiV@>5JB)AOKe(wAaiZAU}r@6q~-5S|<2O$+4AbO%3mM5u0~C6E<= z>VQnlGc9igG3)!NDOPr;22twgFC1`EjYE!rPjT#CJVdp9nE}~1{?+-zVn=}QrX zmR5e=)yxNU!B2tlgW)%Bh0W6L$HLy^szC>+RI90xTPmH|T6MDpsvE12y&}8{dd}Gn zlt^_ZMncf$kylQ)-SN0kbJ6X;8t8| zT)rc@)T2=TyZ2dfc zoUr8dH^2`mdEZG)X0VFa=Tg0GK8rYJmt$QW6mzLmW$O(zJPMlT{*6$2RwKf9Sq0Es zTXezVpx(UrCb60k433@>0gwz_%ierawZK?ylxqnkMtem447eM%t`S7?DY;4X7pg=q zF{_B8P1Q+)>#%`eLrdyaLl2?uMN2e(Um9m<=mj~@{wkeNF+%q{)y84LLEWA0w*)|@ zsP&43?hyy@l62Fu_1QLRukcl$sQ~Xk8K9q^3xHLF8e^sN2hh0JFkTYJdbXC<>7B8B zHx>HSp6z4n1sJ8K+DTpFXb1jSxu6*filH~QMy-mD` znmyYB0rc6;=5ayqPIQXx-+Wx8;ErhxCbSiN#6SuPyZqt!A023P^g-E21Of$mI>ZTB zse&+W8{Hs)MKg}U{q9q^W8XF1wKv@tJqtqu;M>1G-`;Df#aEV!D=44$19A`%??PS#z!F7R&bsn zsgOl(^DG6(>!GAvY)toSME~n{c0y<6LgRia`+A8`!_)CCLNo&h)VkasU^kZBHMcCT zF!aB2H8@`Ey4aziciWI(l=?>ic}qUyH#Hk!%l;2WtM=)Z*YjUm7MTxme}A2!kpr~ zxU{XQbF--;&$n5Hbc5?}OH!MX#Hz&-?TX^dO-6*V{6s#1Yi=7$1EGI3rRa6}_!(zk zqn1i6J-}0joll%8Daw|7LD>VB1YqhmGgSIO$GG7fH=vw}UGxP5Rp~u9 zO6IkG;v-IbPB=H^Jb?|$WY=++jszF5IJuX zsq7RM`$mbaoA-SfKq_>tS}Q?MhpD!$T|J@LR|3exz^aq*YMkVrx8uh|nn{b`nWcGc z$I@^73ifUxuOZosb^ruBd9=yR!lB0M14Bc}0$` z`45hCSe--5aU$mk3=D(hg0a>mhF}q55CROKe z7v|N<%)O(VICcb2(j%h(A#MDdNn@7SG_-u-(ofIU0 z5Z9PB5Fd`iad!r-zj64YAz8xijjs#yHtgXNaZ=TNpzkR2%;_bIr}++*b-Y#&U?)e# zAjRjA&SyV7GJJ5QUpuBpKmws&5o&5sDG95PA9l@9c#2(0s=q$YdpgnD0Mi*t zW2ApD0`1Qk#zU7-iD%e&wjAsd^lyIxmMcf1jxg86j$mj&6W8X8@E5z{-(Vp8qFH;< zMUD`Z{!-x`!Q{4W0u=p(-PI4*TRbsUyaM)-?8JdHUSqmq6OX3P2oG2Fj z9tJpRcqQw($IR+O9}^98e=aIqFESorX^rZ_u9>*N-+J-uGIJJ!Q6gI^d1*`eiHbyc zDs7qsFs=yQ?#{rBek^oY5EbkdG^)h1{7(ayx@GsG5{TEPZ~x%qF;R#%biBLGyuWyS zJ+;5aTN2BxdmdY9_I|(mpf9J|$RBEeo?Yy(h}qCCRnuZOO;zJm8)kPkgSD5Q@ZHe5np6%Otj|Qwi9H2qwts?||Fly-jDF1agLlhhdxjtc zu_1AkysH`jx=cgeO88~VviSOSrI$q~i%bb75C4Vem4{WEysRtY6r9+T>Rh2Krm$90 zPbBIwELTjy@n};eTazT$H<>VBTOZ{za5 ziJKz3yP(SK1UU>H=QQ#=iw{!L28L?+@2}bUZ=rn)?-BvvP^%w>gC~LP`WYliPfg=( zQ#C`PwKK@v(`bgYgokUWJtPUEut$KiYxqrFy@NgzpTqLj{}!-@0dwwM(iag@dyrx; zOYgRmTTnJ%-c;etK~P+*qZC~9Li@NFzdGQMOzgx`)(?IQ`wN-+xp~!J>p1-FsEisu z-^c&5kBogLPM9@zicLUS6GK&a>WQK7)j{=V zJPxV>{Jl->hvCP~TM7Yi^nAN%AkhqsNS#G4&2o3T{1@+yNXhp%v6@WWt_>G~-ApF6 z3>rle{rR4?!4b(InvM_ls$_mLXi!??%>4q_ViBLVHnF8X1~G$Xqvn6nMH?|(%mjjl z11o#*HUJm)d+HA*d4^EboGg*6sxsy!=X(*r9By*c-gs!yDX$Saj^p)=x2g8&LKb$5 z7rhUBDlD6DmP#2J>Q8HOo8Rqu>rWmXLpaLgrMff^CFP62fjvNqX8+Uy{r+M32F_0S zp@jUcO*M8LvXbjfHAM~q|E)S)5VLH@^hp8X`Nz+Jke0T`(@H=Cl!RGaxaa|L^RIOy;VKq>Pd-WH5fy>~LMbMnO3htgE{~sM(9fI;nqf3?@@#muKB!;lxo!!QNr~)&+S*{JpN6c{WCMa^A!{gFyf9 zlK67B-)--84)HE*kK<;WK}Usd(g0HYytY5%`fn?YF#G(JSGs!t#GEZPNp0X29Rn}y z=hw}jzKlpvx8jz!jpta8%d%}(J0TSO*Bi^TAVm3A^#i}A^GNtw&4u{sTwcZ1LIFw1 zlfMq*As(Gjf3a|CFZuPbBWNPGdH?=wWa9ssnE0FkfF)GMBcOI`#7c=X9m- zPukhTCRF-vny2O)=T5kzpzXDNyIbeAltH6tE<=RZua)h>v3qH=dIjbiAD#_})5M$X#qPiyzvB7u636qIS!g&36DL?a!&3yzKHBi%XW zV@%0T5Y;4W%_Cd}U7DCVnCNBZGH+H%G@xJHZ=mK#p7bQq;@`0R5q{|(yv5% zmRVtCAlU+6eFV%8(?<<--aWGWl6J)Jlr5!#hS`2D?q7SU{-*Tg7#?PBHeZME|C8$m z+nyj`uhXoW)8CH@H_Je^(U80PW8Z2o_B>7}u0HDR2b4}M?NJV-8z?3bicf%>4u)y5XjSr{NwvHM z)QtC{p|ZqfMn}Gb5j+vCS8sRl8~D~iZ`-I2iSwOgH?2YOF4Vqu#`a0%Go7E-bflPLaOyQ zQ99ogl;P!q3v{8mA6?v1xIj0L2`!V+;qdzI736MrEah#9hE0DI2e5@2nT*L~1t229 z&)Elu7cD!xqW$&Zi^V4|do(~2c*Yy3f#M%w;Dj(3k(N>Y(}?zSTGSMP&+KCQ-dUVV z%zt2>Lx$4Pk;*Eir{*Lo5-wiq%Gy+R0kzKjN7-Rd$Gl?VWzsZ8GSw`HkI{uo*dw-=`PL4xCp zH+MwM?j;y^eZmyzj4syt9FnKntesRCl)AYK&9?@6!ncfaRwVI(fBOu~V2h|fI9D`Z zf#p|^Do#4*J5lCt05cgRV^>qoQy8;h6gCrh4V#qRo%)+wZs#J>94~5Blov(edr;G? zzpU4I7Q{SMtP1X5-pq_asl^S*ZAaH$n>nn|ABcj6hSzO8JY7QcS407I1Z?E32R!K* z&|^vHPeimohvl1s-69Ad^)ryAZZ z8{n5RF$?f`gioH@e>|2TdIfI>ZePU`aqmN;_Oz`Irf+`ZE@A~ypM4j`nW(jY_T%#o z3*>k+z8yjp>O0K1UeF<*Mm%t#i_BhjEU&%I3G`;UV`hx;s$H#Q9qT3o%4Dl`XAv^z3g;I<|(1d#fyZC)fr)E`FLOSD7%*Qq3?M;tJ3i2k>BF61_$uaLla08 zM%!UAcbvXhcY-I#_O^d+Inb#uo?}v6P*54dj7PiS=cAojJ;#~QG2V}Y%ILmYI*RRu z?B+1Mj7lwoVal#l)bdJo6foHSe80z6p1;hCjW zi)|fnMW7naT`wXYd1E7=rbPD>&XP6*Fd%1lMEaS%qAq0nh&K|b=oCf5j{|Q-zvP}u z`*u(Z;eir&7A7#SX~Z2|Rm;M@KK*eY9R>#{3DJ;ZOf67)Zm`kbR7b=cy%2v93h=g? zy?y(%5sl~1#_-U>^?W@QJ(ZTH?_8Ey;k^EK&ad^1rVtEY*=?8`m&=DhS$iIO+3FBa z6Q}-NJG`A?OKfusqPLdB**SkGBbzRS%D-bf-F)^=A&gW0j`&sQtQaRmA|{O~ws%b! ziv-_di{;HkYNPo2IDCki?zJDVFP3w`C(l#HLnh zI4X3_XG@(VC*Z;=rJiYSxDwzdWw^v1Z+L*%6oO%#B&gItl5_WT0mPdyncgD%yE3Qw za0gF?TDuiZaln)7V<g%%RYB&hlTQYIlmoR+m%m_FG7`3=rQaRB{ zqYYJ9=7wlDm}avn)j6c8G%Ydu96?1&)KR2*$w#^CUkpT|=b#&h$25-n#IT zM4Ost2MPjnp)fo|FRPh2S!2v$!slW?*@X7nY`Qrb=UCnBnfrxK;aC0QZj%2Zn5+yZ(t#$iW9TG}13x@L2yy8PQSz;lws^ zc%~!^UuE9S`jf`D%u*t1^CB2+Xk)b)1ou+ zLVc*2^*=my0%QyWpA|Kz7kx2CA7N%{0fZbAjIEp#-mIFiBkjU26!#OB*i_Jp1x(z2 z6s}Rvcfd=qA~)aP<)t_V_#!OCCem$MBW=A_@;!xuXC$n_}J95DLv5x?w`m4sMFHbUVV7>1s zB3>9B1SO@Mhw1q~2Ay&r<(tkgB!H>*jb-+n4Lq$uF)Q0|cU}E#+eYavahbYmE|6cg ziYvm2upD=-*@!h`;+Cm&AwnhI7WXM}-6zuTCVCOn*MI#J`?>41GVa1@Ni+j)Z4 z1h6SSZEfpZ2+w8QbKdGYj7R#A=qFZwhkth9_t@OXUHe3)ow$szCZPP`$Dp>^VGFF- zqvi_&(XTvvi>IQPS|nDzXT&agvP~}8TQ&6)it&;BfYCVgLLdNu8M2)CsT|qI04YG$ zzmNf`5Oof%pY0Z}r%fZ6B3IJ|vBU9_EAfb_!~thMv091$+aJ(;loU#n%v6nb{@cj8 z3jDjYfYf+MraL*aveSHD7nA5;f$OU604~^+cVbS8obBy61HO`0d&Jq()7*5_YU}%a zU{=M7(b#BY3vB>$4?S=EItQ|X|1}|j@g7{rYKMeaHtW#UCW!AQCwRR(pDg(|6V?$v{Vq!+A~cn!gXePPyWk> zBa!hf2JgnKR5$|cWf*$?zgzsPxlpANBjRdL=n{YAHb*ttk)ry|*o^AP z=QCJUTa#_HH7Io13Ai&Z!M#uv19Hnl30qh-^=P$jh2{%g{O^h}M9i6!eGGQ!+BQ{| zeAzO1AS9oO_ROHetl;KJXx(h}2`fEAV~Bl;2io!COrFbv@y{`>pM6y@)xcAqup#jl$(i*Xph$@YJG@qLpJ%M#z-Z&>o-Za9aIo&yhPd%hmy(<# zAkIklpt)rPqPpew&|Wj-<*EWvwrl`Md@S)`?|)UIBnJAt;cpb3ZF^o)B;gr>H_g`n zd1dR24kK-TKT5Y_;A%acxg`Wy+}06LbWmmS2)&5@mRxJlS zZr8esOj&Z>De`ezGG3}@Ce+5yZtz>Jaf`sHib4^i6a81S9XR&Yb-{Dq%UL92n zAE3WSJf9SUY=a9AEnf`v7JYzkYt-I8a)O0dHt&dTOA+r;g)0W@l{-0`HAQr`gj3)d zxpdJpPvUs5zz>8&-~=I)DsCsjM9vwbcM7%`E*e*kRWl>&zBjHZ*feF7HwoK;bTO8n z{XGZlPj6xo-%vfJW5E&Uf>NFFmu0~Yve@iehZcBP9PLQoMLDdlr0q&xNnEPK(0t~S zHsS~*d1KhlP5f)Wj5G%oamYfD{b3~pHh5V}K;h(%hs#027%wBovp?hy;q}vP$0!!i zg!{xSbEeLn=fdA^H=#hmLP1k6V`ss@0o}|USZM=azK__sa7xqwqwN6*$C(~@`?zqulqN>W@aSmI%V56Rl=zOf z0&d%Vaq&@9Y?A&0SBeop>41yIn+W$#d0n$GG9cm8MvUtZt46nL~w}kc_m#mw#cQsTs~s#E(u3s;Iwjd`Mvpw_U=4Lj%9? z)Bf-#Y)RYRXmKJ)(1S8wbQIOHw?BZRJ>2uLKYyWm++g@Xl4TTyLl2(Unlj&qOR$^i zsHTkbdsY*WMws;o{5$tEdkqhtnl<+k)l&DtK!PM@OY=I!E@a~Kw5_=J=FReW8Ewwc z;EoPDn(a%8Z3idH*`6+z7A+pZl<}oB)%Aaw-D~=aTFUqm{BzEbbc&xo{9>}~6osy- z`ySg&Oy?lh12a()Pq($$vzS;3%L8Cygq|$EUkI;01(u^W=eUO`G zA}5p2!Qf?G8*ZDsYPxb3Bn}#MTdMXsAoYvBrI;#GGP?!4T*E526YBtao18#xaaiFF z5pbIKB�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

bBdu-z3am6d; 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

ymrXiHd;=QGAZBlXV_JRodfTS#d`5WyUhj5 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 literal 0 HcmV?d00001 diff --git a/apps/desktop/catalog.v2.fixture.json b/apps/desktop/catalog.v2.fixture.json new file mode 100644 index 00000000..e5d15db0 --- /dev/null +++ b/apps/desktop/catalog.v2.fixture.json @@ -0,0 +1,41 @@ +{ + "version": 2, + "generatedAt": "2026-05-05T08:55:53.722Z", + "pets": [ + { + "id": "snoopy", + "displayName": "Snoopy", + "description": "A tiny black-and-white beagle with a red collar for calm coding sessions.", + "preview": "https://openpets.dev/pets/snoopy-23e05847/spritesheet.webp", + "zip": "https://zip.openpets.dev/pets/snoopy-23e05847/snoopy.zip" + }, + { + "id": "clippit", + "displayName": "Clippy", + "description": "A classic paperclip assistant rebuilt from Microsoft Agent animation frames.", + "preview": "https://openpets.dev/pets/clippit-904b393f/spritesheet.webp", + "zip": "https://zip.openpets.dev/pets/clippit-904b393f/clippit.zip" + }, + { + "id": "tux", + "displayName": "Tux", + "description": "A tiny pixel-adjacent Linux mascot penguin for calm coding sessions.", + "preview": "https://openpets.dev/pets/tux-de2f300f/spritesheet.webp", + "zip": "https://zip.openpets.dev/pets/tux-de2f300f/tux.zip" + }, + { + "id": "wall-e", + "displayName": "Wall-E", + "description": "A tiny weathered trash-compactor robot companion with binocular eyes, treads, and a gentle waving arm.", + "preview": "https://openpets.dev/pets/wall-e-779d5202/spritesheet.webp", + "zip": "https://zip.openpets.dev/pets/wall-e-779d5202/wall-e.zip" + }, + { + "id": "dobby", + "displayName": "Dobby", + "description": "An earnest, genuinely helpful tiny house-elf Codex pet with huge ears, wide kind eyes, and a simple worn tunic.", + "preview": "https://openpets.dev/pets/dobby-3f6746e0/spritesheet.webp", + "zip": "https://zip.openpets.dev/pets/dobby-3f6746e0/dobby.zip" + } + ] +} diff --git a/apps/desktop/electron-builder.yml b/apps/desktop/electron-builder.yml new file mode 100644 index 00000000..752e858b --- /dev/null +++ b/apps/desktop/electron-builder.yml @@ -0,0 +1,55 @@ +appId: dev.openpets.app +productName: OpenPets +copyright: Copyright © 2026 OpenPets + +directories: + output: dist-electron + +artifactName: OpenPets-${version}-${os}-${arch}.${ext} + +files: + - dist/** + - preload.cjs + - pet-preload.cjs + - assets/** + - package.json + +asar: true +asarUnpack: + - node_modules/** +npmRebuild: false +publish: null + +mac: + icon: assets/app-icon.icns + category: public.app-category.utilities + target: + - dmg + - zip + identity: null + hardenedRuntime: false + gatekeeperAssess: false + +win: + icon: assets/app-icon.ico + target: + - nsis + - portable + verifyUpdateCodeSignature: false + +nsis: + artifactName: OpenPets-${version}-win-${arch}-setup.${ext} + oneClick: false + perMachine: false + allowToChangeInstallationDirectory: true + +portable: + artifactName: OpenPets-${version}-win-${arch}-portable.${ext} + +linux: + target: + - AppImage + - deb + - tar.gz + category: Utility + maintainer: OpenPets diff --git a/apps/desktop/package.json b/apps/desktop/package.json new file mode 100644 index 00000000..01382a58 --- /dev/null +++ b/apps/desktop/package.json @@ -0,0 +1,39 @@ +{ + "name": "@open-pets/desktop", + "version": "2.0.0", + "private": true, + "description": "OpenPets tray-first desktop companion app.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "apps/desktop" + }, + "author": "OpenPets", + "type": "module", + "main": "dist/main.js", + "scripts": { + "dev": "pnpm build && electron .", + "package": "pnpm build && node scripts/clean-package-output.cjs && electron-builder", + "package:dir": "pnpm build && node scripts/clean-package-output.cjs && electron-builder --dir && node dist/check-packaging-contract.js --output", + "test": "node --check preload.cjs && node --check pet-preload.cjs && node dist/check-catalog-fixture.js && node dist/check-codex-pets.js && node dist/check-zip-safety.js && node dist/check-local-ipc-protocol.js && node dist/check-lease-manager.js && node dist/check-onboarding-state.js && node dist/check-update-checker.js && node dist/check-claude-memory.js && node dist/check-opencode-desktop-setup.js && node dist/check-packaging-contract.js", + "check": "pnpm typecheck && pnpm build && pnpm test", + "typecheck": "tsc --noEmit", + "build": "tsc" + }, + "devDependencies": { + "@types/node": "^25.6.2", + "@types/yauzl": "2.10.3", + "electron": "^42.0.0", + "electron-builder": "^26.8.1", + "typescript": "^6.0.3" + }, + "dependencies": { + "@open-pets/agent-events": "workspace:*", + "@open-pets/claude": "workspace:*", + "@open-pets/cli": "workspace:*", + "@open-pets/mcp": "workspace:*", + "@open-pets/opencode": "workspace:*", + "yauzl": "3.3.0" + } +} diff --git a/apps/desktop/pet-preload.cjs b/apps/desktop/pet-preload.cjs new file mode 100644 index 00000000..a8b1f1b9 --- /dev/null +++ b/apps/desktop/pet-preload.cjs @@ -0,0 +1,88 @@ +const { ipcRenderer } = require("electron"); + +const allowedMotionStates = new Set(["idle", "run-left", "run-right"]); +const allowedReactionStates = new Set(["idle", "running-right", "running-left", "waving", "jumping", "failed", "waiting", "running", "review"]); +let lastInteractiveHit = null; +let dragging = false; + +ipcRenderer.on("openpets:pet-motion", (_event, state) => { + if (!allowedMotionStates.has(state)) { + return; + } + + const apply = () => { + document.documentElement.dataset.motionState = state; + }; + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", apply, { once: true }); + } else { + apply(); + } +}); + +ipcRenderer.on("openpets:pet-reaction-state", (_event, state) => { + if (!allowedReactionStates.has(state)) { + return; + } + + const apply = () => { + document.documentElement.dataset.reactionState = state; + }; + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", apply, { once: true }); + } else { + apply(); + } +}); + +const getInteractiveTarget = (event) => { + const target = document.elementFromPoint(event.clientX, event.clientY); + return target && target.closest(".pet-shell, .bubble"); +}; + +const setInteractiveHit = (interactive) => { + if (lastInteractiveHit === interactive) return; + lastInteractiveHit = interactive; + ipcRenderer.send("openpets:pet-hit-test", interactive); +}; + +const updateInteractiveHit = (event) => { + setInteractiveHit(Boolean(getInteractiveTarget(event)) || dragging); +}; + +const installMouseInterop = () => { + document.addEventListener("mousemove", (event) => { + updateInteractiveHit(event); + if (dragging) ipcRenderer.send("openpets:pet-drag-move", { screenX: event.screenX, screenY: event.screenY }); + }, { passive: true }); + + document.addEventListener("mousedown", (event) => { + const target = getInteractiveTarget(event); + setInteractiveHit(Boolean(target)); + if (event.button !== 0 || !target?.closest(".pet-shell")) return; + event.preventDefault(); + dragging = true; + setInteractiveHit(true); + ipcRenderer.send("openpets:pet-drag-start", { screenX: event.screenX, screenY: event.screenY }); + }); + + document.addEventListener("mouseup", () => { + if (!dragging) return; + dragging = false; + ipcRenderer.send("openpets:pet-drag-end"); + }); + + document.addEventListener("mouseleave", () => { + if (!dragging) setInteractiveHit(false); + }, { passive: true }); + + setInteractiveHit(false); +}; + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", installMouseInterop, { once: true }); +} else { + installMouseInterop(); +} diff --git a/apps/desktop/preload.cjs b/apps/desktop/preload.cjs new file mode 100644 index 00000000..2a127890 --- /dev/null +++ b/apps/desktop/preload.cjs @@ -0,0 +1,1262 @@ +const { contextBridge, ipcRenderer } = require("electron"); + +const api = { + getState: () => ipcRenderer.invoke("openpets:get-state"), + getCatalog: () => ipcRenderer.invoke("openpets:get-catalog"), + getCodexPets: () => ipcRenderer.invoke("openpets:get-codex-pets"), + updatePreferences: (patch) => ipcRenderer.invoke("openpets:update-preferences", patch), + getLaunchAtLogin: () => ipcRenderer.invoke("openpets:get-launch-at-login"), + setLaunchAtLogin: (enabled) => ipcRenderer.invoke("openpets:set-launch-at-login", enabled), + getUpdateStatus: () => ipcRenderer.invoke("openpets:get-update-status"), + checkForUpdates: () => ipcRenderer.invoke("openpets:check-for-updates"), + openUpdateReleasePage: () => ipcRenderer.invoke("openpets:open-update-release-page"), + setDefaultPet: (petId) => ipcRenderer.invoke("openpets:set-default-pet", petId), + installPet: (petId) => ipcRenderer.invoke("openpets:install-pet", petId), + importCodexPet: (petId) => ipcRenderer.invoke("openpets:import-codex-pet", petId), + removePet: (petId) => ipcRenderer.invoke("openpets:remove-pet", petId), + resetDefaultPetPosition: () => ipcRenderer.invoke("openpets:reset-default-pet-position"), +}; + +const agentSetupApi = { + snapshot: (selectedPetId, commandMode) => ipcRenderer.invoke("openpets:agent-setup-snapshot", selectedPetId, commandMode), + action: (action, selectedPetId, commandMode) => ipcRenderer.invoke("openpets:agent-setup-action", action, selectedPetId, commandMode), +}; + +const onboardingApi = { + snapshot: () => ipcRenderer.invoke("openpets:onboarding-snapshot"), + complete: () => ipcRenderer.invoke("openpets:onboarding-complete"), + openPetManager: () => ipcRenderer.invoke("openpets:onboarding-open-pet-manager"), + openAgentSetup: () => ipcRenderer.invoke("openpets:onboarding-open-agent-setup"), +}; + +let activeAgentCommandMode = "published"; +let agentSetupControlStates = null; +let activePetManagerSelection = ""; +let activePetManagerFilter = "all"; +let activePetManagerItems = []; +let activePetManagerDefaultId = ""; + +contextBridge.exposeInMainWorld("openPets", api); +contextBridge.exposeInMainWorld("openpetsAgentSetup", agentSetupApi); +contextBridge.exposeInMainWorld("openpetsOnboarding", onboardingApi); + +window.addEventListener("DOMContentLoaded", () => { + const view = document.body.dataset.openpetsView; + + if (view !== "pet-manager" && view !== "settings" && view !== "agent-setup" && view !== "onboarding") { + return; + } + + if (view === "onboarding") { + void renderOnboarding(); + return; + } + + void renderCurrentState(view); + window.addEventListener("focus", () => { + void renderCurrentState(view); + }); +}); + +async function renderCurrentState(view) { + const state = await api.getState(); + + if (!isStateSnapshot(state)) { + renderError("OpenPets state is unavailable."); + return; + } + + if (view === "pet-manager") { + await renderPetManager(state); + } else if (view === "settings") { + renderSettings(state); + } else { + await renderAgentSetup(); + } +} + +async function renderOnboarding() { + const snapshot = await onboardingApi.snapshot(); + if (!isOnboardingSnapshot(snapshot)) { + renderError("Onboarding state is unavailable."); + return; + } + + requireElement("onboarding-default-pet").textContent = snapshot.defaultPetName; + requireElement("onboarding-pets-default-pet").textContent = snapshot.defaultPetName; + let currentStep = 0; + const showStep = (step) => { + currentStep = step; + for (const panel of document.querySelectorAll("[data-step-panel]")) { + panel.hidden = panel.dataset.stepPanel !== String(step); + } + for (const indicator of document.querySelectorAll("[data-step-indicator]")) { + const active = indicator.dataset.stepIndicator === String(step); + indicator.classList.toggle("active", active); + if (active) { + indicator.setAttribute("aria-current", "step"); + } else { + indicator.removeAttribute("aria-current"); + } + } + }; + + requireButton("onboarding-welcome-next").onclick = () => showStep(1); + requireButton("onboarding-pets-next").onclick = () => showStep(2); + requireButton("onboarding-agents-next").onclick = () => showStep(3); + requireButton("onboarding-open-pets").onclick = () => { void openOnboardingWindowManually("pets", onboardingApi.openPetManager); }; + requireButton("onboarding-ready-pets").onclick = () => { void onboardingApi.openPetManager().catch(renderCaughtError); }; + requireButton("onboarding-open-agents").onclick = () => { void openOnboardingWindowManually("agents", onboardingApi.openAgentSetup); }; + requireButton("onboarding-ready-agents").onclick = () => { void onboardingApi.openAgentSetup().catch(renderCaughtError); }; + requireButton("onboarding-finish").onclick = () => { + const button = requireButton("onboarding-finish"); + button.disabled = true; + button.textContent = "Finishing…"; + void onboardingApi.complete().catch((error) => { + button.disabled = false; + button.textContent = "Start using OpenPets"; + renderCaughtError(error); + }); + }; + showStep(currentStep); +} + +async function openOnboardingWindowManually(kind, opener) { + const label = kind === "pets" ? "Pet Manager" : "Integrations"; + updateOnboardingOpenStatus(kind, `Opening ${label}…`, ""); + try { + await opener(); + updateOnboardingOpenStatus(kind, `${label} opened — return here to continue.`, "success"); + markOnboardingWindowOpened(kind); + } catch (error) { + updateOnboardingOpenStatus(kind, `Couldn’t open ${label}. Try again from the button.`, "error"); + renderCaughtError(error); + } +} + +function markOnboardingWindowOpened(kind) { + const openButton = document.getElementById(kind === "pets" ? "onboarding-open-pets" : "onboarding-open-agents"); + const continueButton = document.getElementById(kind === "pets" ? "onboarding-pets-next" : "onboarding-agents-next"); + if (openButton instanceof HTMLButtonElement) openButton.hidden = true; + if (continueButton instanceof HTMLButtonElement) { + continueButton.className = "onboarding-promoted-continue"; + continueButton.textContent = "Continue"; + } +} + +function updateOnboardingOpenStatus(kind, text, state) { + const id = kind === "pets" ? "onboarding-pets-status" : "onboarding-agents-status"; + const element = document.getElementById(id); + if (!element) return; + element.textContent = text; + element.className = `onboarding-status-line${state ? ` ${state}` : ""}`; +} + +async function renderAgentSetup(selectedPetId, commandMode) { + const snapshot = await agentSetupApi.snapshot(selectedPetId, commandMode); + if (!isAgentSetupSnapshot(snapshot)) { + renderError("Claude setup status is unavailable."); + return; + } + activeAgentCommandMode = snapshot.commandMode; + agentSetupControlStates = null; + + const selected = snapshot.selectedPetId || ""; + const status = requireElement("claude-status"); + const statusTitle = requireElement("claude-status-title"); + const details = requireElement("claude-details"); + const select = requireSelect("claude-pet-select"); + const commandPreview = requireElement("claude-command-preview"); + const jsonPreview = requireElement("claude-json-preview"); + const warning = requireElement("claude-warning"); + const result = requireElement("claude-action-result"); + const devMode = requireInput("claude-dev-mode"); + const hookStatus = requireElement("claude-hooks-status"); + const hookDetails = requireElement("claude-hooks-details"); + const hookPreview = requireElement("claude-hooks-preview"); + const memoryStatus = requireElement("claude-memory-status"); + const memoryDetails = requireElement("claude-memory-details"); + + status.textContent = displayClaudeStatusLabel(snapshot); + status.className = `agent-status-pill ${statusClassFor(snapshot.status.state)}`; + statusTitle.textContent = statusTitleFor(snapshot); + details.textContent = snapshot.status.details; + renderPetSelect(select, snapshot, selected); + devMode.checked = snapshot.commandMode === "local"; + devMode.disabled = !snapshot.localDevAvailable; + commandPreview.textContent = snapshot.preview.displayCommand; + jsonPreview.textContent = JSON.stringify(snapshot.preview.mcpJson, null, 2); + warning.textContent = createClaudeSetupWarning(snapshot); + result.textContent = snapshot.lastAction ? snapshot.lastAction.message : "Claude Code may need to be restarted after MCP changes."; + hookStatus.textContent = formatHookStatus(snapshot.hookStatus.status); + hookStatus.className = `agent-status-pill ${hookStatusClassFor(snapshot.hookStatus.status)}`; + hookDetails.textContent = `${snapshot.hookStatus.message} Settings: ${snapshot.hookStatus.settingsPath}`; + hookPreview.textContent = JSON.stringify(snapshot.hookStatus.preview, null, 2); + memoryStatus.textContent = formatMemoryStatus(snapshot.memoryStatus.status); + memoryStatus.className = `agent-status-pill ${memoryStatusClassFor(snapshot.memoryStatus.status)}`; + memoryDetails.textContent = `${snapshot.memoryStatus.message} Files: ${snapshot.memoryStatus.claudeMdPath}, ${snapshot.memoryStatus.openPetsMemoryPath}`; + updateClaudeIntegrationCard(snapshot); + updateOpenCodeIntegration(snapshot, selected); + + select.onchange = () => { void renderAgentSetup(select.value, getCommandMode()); }; + devMode.onchange = () => { void renderAgentSetup(select.value, getCommandMode()); }; + decorateAgentSetupButtons(); + updateClaudeDetailActions(snapshot); + bindIntegrationHubButtons(snapshot, select); + bindAgentSetupButton("claude-refresh", () => renderAgentSetup(select.value, getCommandMode()), snapshot.busy, "Refreshing…"); + bindAgentSetupButton("claude-copy-command", async () => copyText(snapshot.preview.displayCommand), false); + bindAgentSetupButton("claude-configure", () => runAgentAction("configure", select.value, getCommandMode()), snapshot.busy || !snapshot.status.canConfigure, "Installing…"); + bindAgentSetupButton("claude-replace", () => runAgentAction("replace", select.value, getCommandMode()), snapshot.busy || !snapshot.status.canReplace, "Replacing…"); + bindAgentSetupButton("claude-remove", () => runAgentAction("remove", select.value, getCommandMode()), snapshot.busy || !snapshot.status.canRemove, "Removing…"); + bindAgentSetupButton("claude-memory-install", () => runAgentAction("install-memory", select.value, getCommandMode()), snapshot.busy, "Updating…"); + bindAgentSetupButton("claude-hooks-doctor", () => runAgentAction("doctor-hooks", select.value, getCommandMode()), snapshot.busy, "Checking…"); + bindAgentSetupButton("claude-hooks-install", () => runAgentAction("install-hooks", select.value, getCommandMode()), snapshot.busy, "Installing…"); + bindAgentSetupButton("claude-hooks-uninstall", () => runAgentAction("uninstall-hooks", select.value, getCommandMode()), snapshot.busy || snapshot.hookStatus.status === "not_installed", "Removing…"); +} + +function updateOpenCodeIntegration(snapshot, selected) { + const opencode = snapshot.opencodeStatus; + const preview = snapshot.opencodePreview; + if (!opencode || !preview) return; + const cardStatus = document.getElementById("integration-opencode-status"); + if (cardStatus) { + cardStatus.textContent = opencode.label; + cardStatus.className = `agent-status-pill ${statusClassFor(opencode.state)}`; + } + const installCard = document.getElementById("integration-opencode-install"); + if (installCard instanceof HTMLButtonElement) { + delete installCard.dataset.loading; + setIconButtonContent(installCard, opencode.state === "configured" ? "check" : "download", opencode.state === "configured" ? "Installed" : "Install"); + installCard.disabled = snapshot.busy || !opencode.canInstall || opencode.state === "configured"; + } + const configureCard = document.getElementById("integration-opencode-configure"); + if (configureCard instanceof HTMLButtonElement) { + delete configureCard.dataset.loading; + setIconButtonContent(configureCard, "settings", "Configure"); + configureCard.disabled = false; + } + const status = document.getElementById("opencode-status"); + if (status) { status.textContent = opencode.label; status.className = `agent-status-pill ${statusClassFor(opencode.state)}`; } + const title = document.getElementById("opencode-status-title"); + if (title) title.textContent = opencode.state === "configured" ? "OpenCode global setup installed" : "Global setup available"; + const details = document.getElementById("opencode-details"); + if (details) details.textContent = opencode.details; + const select = document.getElementById("opencode-pet-select"); + if (select instanceof HTMLSelectElement) renderPetSelect(select, snapshot, selected); + const paths = document.getElementById("opencode-paths"); + if (paths) { + const cleanup = Array.isArray(preview.cleanupConfigPaths) && preview.cleanupConfigPaths.length > 0 ? `. Cleanup: ${preview.cleanupConfigPaths.join(", ")}` : ""; + paths.textContent = `Config file: ${preview.configPath || preview.configDir}. Instructions: ${preview.instructionPath}${cleanup}`; + } + const json = document.getElementById("opencode-json-preview"); + if (json) json.textContent = JSON.stringify(preview.configPreview && Object.keys(preview.configPreview).length > 0 ? preview.configPreview : { mcp: { openpets: { type: "local", command: preview.mcpCommand, enabled: true } }, instructions: [preview.instructionPath], plugin: preview.plugin ? [preview.plugin] : [] }, null, 2); + const result = document.getElementById("opencode-action-result"); + if (result) result.textContent = snapshot.lastAction && String(snapshot.lastAction.action).startsWith("opencode-") ? snapshot.lastAction.message : "OpenCode may need to be restarted after global setup changes."; + bindAgentSetupButton("opencode-install", () => runAgentAction("opencode-install", select instanceof HTMLSelectElement ? select.value : selected, getCommandMode()), snapshot.busy || !opencode.canInstall, "Installing…"); + bindAgentSetupButton("opencode-remove", () => runAgentAction("opencode-remove", select instanceof HTMLSelectElement ? select.value : selected, getCommandMode()), snapshot.busy || !opencode.canRemove, "Removing…"); + bindAgentSetupButton("opencode-refresh", () => renderAgentSetup(select instanceof HTMLSelectElement ? select.value : selected, getCommandMode()), snapshot.busy, "Refreshing…"); + bindAgentSetupButton("opencode-copy-config", async () => copyText(requireElement("opencode-json-preview").textContent || "", "opencode-action-result", "Copied OpenCode config preview."), false); + if (select instanceof HTMLSelectElement) select.onchange = () => { void renderAgentSetup(select.value, getCommandMode()); }; +} + +function updateClaudeIntegrationCard(snapshot) { + const status = document.getElementById("integration-claude-status"); + if (status) { + status.textContent = snapshot.status.state === "configured" ? "Installed" : snapshot.status.canConfigure ? "Ready" : snapshot.status.label; + status.className = `agent-status-pill ${statusClassFor(snapshot.status.state)}`; + } + + const install = document.getElementById("integration-claude-install"); + if (install instanceof HTMLButtonElement) { + delete install.dataset.loading; + if (snapshot.status.state === "configured") { + setIconButtonContent(install, "check", "Installed"); + install.disabled = true; + install.className = "agent-action secondary"; + } else if (snapshot.status.canConfigure && !snapshot.busy) { + setIconButtonContent(install, "download", "Install"); + install.disabled = false; + install.className = "agent-action primary"; + } else { + setIconButtonContent(install, "download", "Install"); + install.disabled = true; + install.className = "agent-action primary"; + } + } + + const configure = document.getElementById("integration-claude-configure"); + if (configure instanceof HTMLButtonElement) { + delete configure.dataset.loading; + setIconButtonContent(configure, "settings", "Configure"); + configure.disabled = false; + configure.className = "agent-action secondary"; + } +} + +function bindIntegrationHubButtons(snapshot, select) { + const install = document.getElementById("integration-claude-install"); + const configure = document.getElementById("integration-claude-configure"); + const opencodeInstall = document.getElementById("integration-opencode-install"); + const opencodeConfigure = document.getElementById("integration-opencode-configure"); + if (install instanceof HTMLButtonElement) { + install.onclick = async () => { + if (install.disabled || snapshot.busy) return; + install.dataset.loading = "true"; + install.disabled = true; + if (configure instanceof HTMLButtonElement) configure.disabled = true; + setIconButtonContent(install, "spinner", "Installing…"); + try { + await runAgentAction("configure", select.value, getCommandMode()); + } catch (error) { + delete install.dataset.loading; + install.disabled = false; + if (configure instanceof HTMLButtonElement) configure.disabled = false; + setIconButtonContent(install, "download", "Install"); + renderCaughtError(error); + } + }; + } + if (configure instanceof HTMLButtonElement) { + configure.onclick = () => showClaudeDetailView(); + } + if (opencodeInstall instanceof HTMLButtonElement) { + opencodeInstall.onclick = async () => { + if (opencodeInstall.disabled || snapshot.busy) return; + opencodeInstall.dataset.loading = "true"; + opencodeInstall.disabled = true; + if (opencodeConfigure instanceof HTMLButtonElement) opencodeConfigure.disabled = true; + setIconButtonContent(opencodeInstall, "spinner", "Installing…"); + try { + await runAgentAction("opencode-install", select.value, getCommandMode()); + } catch (error) { + delete opencodeInstall.dataset.loading; + opencodeInstall.disabled = false; + if (opencodeConfigure instanceof HTMLButtonElement) opencodeConfigure.disabled = false; + setIconButtonContent(opencodeInstall, "download", "Install"); + renderCaughtError(error); + } + }; + } + if (opencodeConfigure instanceof HTMLButtonElement) opencodeConfigure.onclick = () => showOpenCodeDetailView(); + const back = document.getElementById("integration-back"); + if (back instanceof HTMLButtonElement) back.onclick = showIntegrationsView; + const openCodeBack = document.getElementById("opencode-integration-back"); + if (openCodeBack instanceof HTMLButtonElement) openCodeBack.onclick = showIntegrationsView; +} + +function showClaudeDetailView() { + const grid = document.getElementById("integrations-view"); + const detail = document.getElementById("claude-detail-view"); + if (grid) grid.hidden = true; + if (detail) detail.hidden = false; + document.getElementById("claude-detail-title")?.focus(); +} + +function showIntegrationsView() { + const grid = document.getElementById("integrations-view"); + const detail = document.getElementById("claude-detail-view"); + const opencodeDetail = document.getElementById("opencode-detail-view"); + if (detail) detail.hidden = true; + if (opencodeDetail) opencodeDetail.hidden = true; + if (grid) grid.hidden = false; + document.querySelector('[data-integration-card="claude"]')?.focus(); +} + +function showOpenCodeDetailView() { + const grid = document.getElementById("integrations-view"); + const detail = document.getElementById("opencode-detail-view"); + const claude = document.getElementById("claude-detail-view"); + if (grid) grid.hidden = true; + if (claude) claude.hidden = true; + if (detail) detail.hidden = false; + document.getElementById("opencode-detail-title")?.focus(); +} + +function displayClaudeStatusLabel(snapshot) { + if (snapshot.status.canReplace && snapshot.status.canRemove) return snapshot.status.label; + if (snapshot.status.state === "configured") return "Installed"; + return snapshot.status.label; +} + +function statusTitleFor(snapshot) { + const state = snapshot.status.state; + if (state === "configured" && snapshot.status.canReplace) return "Installed with custom settings"; + if (state === "configured") return "OpenPets is connected"; + if (state === "needs_setup") return "Ready to configure"; + if (state === "detected") return "Claude detected"; + if (state === "not_detected") return "Claude not found"; + return "Needs attention"; +} + +function statusClassFor(state) { + if (state === "configured") return "success"; + if (state === "needs_setup" || state === "detected") return "info"; + if (state === "not_detected") return "muted"; + return "error"; +} + +function hookStatusClassFor(status) { + if (status === "installed") return "success"; + if (status === "needs_update") return "info"; + if (status === "error") return "error"; + return "muted"; +} + +function formatMemoryStatus(status) { + if (status === "installed") return "Installed"; + if (status === "error") return "Error"; + return "Not installed"; +} + +function memoryStatusClassFor(status) { + if (status === "installed") return "success"; + if (status === "error") return "error"; + return "muted"; +} + +function decorateAgentSetupButtons() { + for (const id of ["claude-configure", "claude-refresh", "claude-copy-command", "claude-replace", "claude-remove", "claude-memory-install", "claude-hooks-doctor", "claude-hooks-install", "claude-hooks-uninstall", "opencode-install", "opencode-remove", "opencode-refresh", "opencode-copy-config"]) { + delete requireButton(id).dataset.loading; + } + setIconButtonContent(requireButton("claude-configure"), "plug", "Install integration"); + setIconButtonContent(requireButton("claude-refresh"), "refresh", "Refresh"); + setIconButtonContent(requireButton("claude-copy-command"), "copy", "Copy command"); + setIconButtonContent(requireButton("claude-replace"), "repeat", "Replace configuration"); + requireButton("claude-replace").className = "agent-action primary"; + setIconButtonContent(requireButton("claude-remove"), "trash", "Remove integration"); + setIconButtonContent(requireButton("claude-memory-install"), "book", "Update instructions"); + setIconButtonContent(requireButton("claude-hooks-doctor"), "stethoscope", "Check hooks"); + setIconButtonContent(requireButton("claude-hooks-install"), "download", "Install hooks"); + setIconButtonContent(requireButton("claude-hooks-uninstall"), "trash", "Remove hooks"); + setIconButtonContent(requireButton("opencode-install"), "download", "Install global setup"); + setIconButtonContent(requireButton("opencode-remove"), "trash", "Remove global setup"); + setIconButtonContent(requireButton("opencode-refresh"), "refresh", "Refresh"); + setIconButtonContent(requireButton("opencode-copy-config"), "copy", "Copy config preview"); +} + +function updateClaudeDetailActions(snapshot) { + const configure = requireButton("claude-configure"); + const replace = requireButton("claude-replace"); + const remove = requireButton("claude-remove"); + configure.hidden = !snapshot.status.canConfigure; + replace.hidden = !snapshot.status.canReplace; + remove.hidden = !snapshot.status.canRemove; +} + +function getCommandMode() { + if (activeAgentCommandMode === "bundled") return "bundled"; + const checkbox = requireInput("claude-dev-mode"); + return checkbox.checked ? "local" : "published"; +} + +function formatHookStatus(status) { + if (status === "installed") return "Installed"; + if (status === "needs_update") return "Needs update"; + if (status === "error") return "Error"; + return "Not installed"; +} + +function renderPetSelect(select, snapshot, selected) { + const previous = select.value || selected; + select.textContent = ""; + const defaultOption = document.createElement("option"); + defaultOption.value = ""; + defaultOption.textContent = "Default pet"; + select.append(defaultOption); + for (const pet of snapshot.petOptions) { + const option = document.createElement("option"); + option.value = pet.id; + option.textContent = pet.default ? `${pet.displayName} (${pet.id}, current default)` : `${pet.displayName} (${pet.id})`; + select.append(option); + } + select.value = snapshot.petOptions.some((pet) => pet.id === previous) ? previous : ""; +} + +function createClaudeSetupWarning(snapshot) { + const removeWarning = "Remove deletes the Claude MCP server named openpets and removes OpenPets-managed Claude instructions."; + if (snapshot.commandMode === "bundled") { + const note = "Packaged mode uses bundled OpenPets commands inside this app. Moving or deleting OpenPets may require Replace/Install again."; + if (!snapshot.status.canRemove && !snapshot.status.canReplace) return note; + if (snapshot.status.canReplace) return `${note} This existing Claude entry is treated as installed and will be kept unless you choose Replace. ${removeWarning}`; + return `${note} ${removeWarning}`; + } + if (!snapshot.status.canRemove && !snapshot.status.canReplace) return ""; + if (snapshot.status.canReplace) { + return `This existing Claude entry is treated as installed and will be kept unless you choose Replace. ${removeWarning}`; + } + return removeWarning; +} + +function bindAgentSetupButton(id, handler, disabled, loadingText) { + const button = requireButton(id); + button.disabled = Boolean(disabled); + button.onclick = () => { + if (button.disabled) return; + if (!loadingText) { + void Promise.resolve(handler()).catch(renderCaughtError); + return; + } + void runAgentSetupButtonAction(id, handler, loadingText).catch(renderCaughtError); + }; +} + +async function runAgentSetupButtonAction(id, handler, loadingText) { + const button = requireButton(id); + const previous = button.textContent || "Working…"; + setAgentSetupControlsBusy(true); + if (loadingText) { + button.dataset.loading = "true"; + setIconButtonContent(button, "spinner", loadingText); + const result = document.getElementById(id.startsWith("opencode-") ? "opencode-action-result" : "claude-action-result"); + if (result) result.textContent = loadingText; + } + try { + await Promise.resolve(handler()); + } catch (error) { + delete button.dataset.loading; + restoreAgentSetupControls(); + decorateAgentSetupButtons(); + throw error; + } +} + +function setAgentSetupControlsBusy(busy) { + const ids = [ + "claude-configure", + "claude-replace", + "claude-remove", + "claude-memory-install", + "claude-refresh", + "claude-copy-command", + "claude-hooks-doctor", + "claude-hooks-install", + "claude-hooks-uninstall", + "opencode-install", + "opencode-remove", + "opencode-refresh", + "opencode-copy-config", + ]; + if (busy) { + agentSetupControlStates = new Map(); + for (const id of ids) { + const button = document.getElementById(id); + if (button instanceof HTMLButtonElement) agentSetupControlStates.set(id, button.disabled); + } + const select = document.getElementById("claude-pet-select"); + if (select instanceof HTMLSelectElement) agentSetupControlStates.set("claude-pet-select", select.disabled); + const devMode = document.getElementById("claude-dev-mode"); + if (devMode instanceof HTMLInputElement) agentSetupControlStates.set("claude-dev-mode", devMode.disabled); + } + for (const id of ids) { + const button = document.getElementById(id); + if (button instanceof HTMLButtonElement) button.disabled = busy; + } + const select = document.getElementById("claude-pet-select"); + if (select instanceof HTMLSelectElement) select.disabled = busy; + const devMode = document.getElementById("claude-dev-mode"); + if (devMode instanceof HTMLInputElement) devMode.disabled = busy || activeAgentCommandMode === "bundled"; +} + +function restoreAgentSetupControls() { + if (!agentSetupControlStates) return; + for (const [id, disabled] of agentSetupControlStates) { + const control = document.getElementById(id); + if (control instanceof HTMLButtonElement || control instanceof HTMLSelectElement || control instanceof HTMLInputElement) { + control.disabled = Boolean(disabled); + } + } + agentSetupControlStates = null; +} + +async function runAgentAction(action, selectedPetId, commandMode) { + const snapshot = await agentSetupApi.action(action, selectedPetId || undefined, commandMode); + if (!isAgentSetupSnapshot(snapshot)) throw new Error("Claude setup action returned an invalid response."); + await renderAgentSetup(snapshot.selectedPetId || "", snapshot.commandMode); +} + +async function copyText(text, resultId = "claude-action-result", successMessage = "Copied command.") { + try { + await navigator.clipboard.writeText(text); + requireElement(resultId).textContent = successMessage; + } catch { + requireElement(resultId).textContent = text; + } +} + +async function renderPetManager(state) { + const defaultPetId = state.preferences.defaultPetId; + const [catalogState, codexState] = await Promise.all([api.getCatalog(), api.getCodexPets()]); + renderPetGallery(catalogState, codexState, state, defaultPetId); +} + +function renderPetGallery(catalogState, codexState, state, defaultPetId) { + const status = requireElement("catalog-status"); + const search = requireInput("catalog-search"); + const grid = requireElement("catalog-pets"); + const detail = requireElement("pm-detail"); + const defaultThumbnailSrc = document.body.dataset.defaultPetThumbnailSrc || ""; + + if (!isCatalogUiState(catalogState) || !isCodexPetsUiState(codexState)) { + status.textContent = "Unavailable"; + status.className = "pm-status-pill error"; + grid.textContent = ""; + detail.textContent = ""; + return; + } + + const sourceLabel = catalogState.source === "remote" ? "Live" : catalogState.source === "fixture" ? "Fixture" : "Error"; + const codexLabel = codexState.error ? "Codex unavailable" : `${codexState.pets.length} Codex`; + status.textContent = catalogState.error ? `${sourceLabel}: ${catalogState.error} · ${codexLabel}` : `${sourceLabel}: ${catalogState.pets.length} pets · ${codexLabel}`; + status.className = `pm-status-pill ${catalogState.error || codexState.error ? "error" : "success"}`; + const pets = createPetManagerItems(catalogState, codexState, state, defaultPetId, defaultThumbnailSrc); + activePetManagerItems = pets; + activePetManagerDefaultId = defaultPetId; + if (!activePetManagerSelection || !pets.some((pet) => pet.id === activePetManagerSelection)) { + activePetManagerSelection = defaultPetId || pets[0]?.id || ""; + } + + for (const filter of document.querySelectorAll("[data-pet-filter]")) { + filter.classList.toggle("active", filter.dataset.petFilter === activePetManagerFilter); + filter.setAttribute("aria-pressed", filter.dataset.petFilter === activePetManagerFilter ? "true" : "false"); + filter.onclick = () => { + activePetManagerFilter = filter.dataset.petFilter || "all"; + render(); + }; + } + + const render = () => { + for (const filter of document.querySelectorAll("[data-pet-filter]")) { + filter.classList.toggle("active", filter.dataset.petFilter === activePetManagerFilter); + filter.setAttribute("aria-pressed", filter.dataset.petFilter === activePetManagerFilter ? "true" : "false"); + } + + const query = search.value.trim().toLowerCase(); + const visiblePets = pets.filter((pet) => { + if (activePetManagerFilter === "installed" && !pet.installed) return false; + if (activePetManagerFilter === "codex" && !pet.codexPet && !pet.codexImported) return false; + const haystack = `${pet.id} ${pet.displayName} ${pet.description}`.toLowerCase(); + return haystack.includes(query); + }); + + grid.textContent = ""; + + for (const pet of visiblePets) { + grid.append(createPetGalleryCard(pet, defaultPetId, () => selectPetManagerPet(pet.id, detail))); + } + + if (visiblePets.length === 0) { + const empty = document.createElement("div"); + empty.className = "pm-empty-state"; + empty.textContent = activePetManagerFilter === "installed" ? "No installed pets match your search." : activePetManagerFilter === "codex" ? "No Codex pets match your search." : "No pets match your search."; + grid.append(empty); + } + + const selected = visiblePets.find((pet) => pet.id === activePetManagerSelection) || visiblePets[0] || pets.find((pet) => pet.id === activePetManagerSelection) || pets[0]; + if (selected) { + renderPetDetail(detail, selected, defaultPetId); + } + }; + + search.oninput = render; + render(); +} + +function createPetManagerItems(catalogState, codexState, state, defaultPetId, defaultThumbnailSrc) { + const installedById = new Map(state.pets.installed.map((pet) => [pet.id, pet])); + const codexById = new Map(codexState.pets.map((pet) => [pet.id, pet])); + const items = []; + + for (const installed of state.pets.installed) { + const catalogPet = catalogState.pets.find((pet) => pet.id === installed.id); + const codexPet = codexById.get(installed.id) || null; + const codexImported = installed.source?.kind === "codex"; + items.push(createPetManagerItem(installed.id, installed.displayName, installed.description || catalogPet?.description || codexPet?.description || "A friendly coding companion.", installed, catalogPet, codexPet, codexImported, defaultPetId, defaultThumbnailSrc)); + } + + for (const catalogPet of catalogState.pets) { + if (installedById.has(catalogPet.id)) continue; + const codexPet = codexById.get(catalogPet.id) || null; + items.push(createPetManagerItem(catalogPet.id, codexPet?.displayName || catalogPet.displayName, codexPet?.description || catalogPet.description || "A friendly coding companion.", null, catalogPet, codexPet, false, defaultPetId, defaultThumbnailSrc)); + } + + for (const codexPet of codexState.pets) { + if (installedById.has(codexPet.id) || catalogState.pets.some((pet) => pet.id === codexPet.id)) continue; + items.push(createPetManagerItem(codexPet.id, codexPet.displayName, codexPet.description || "A local Codex companion.", null, null, codexPet, false, defaultPetId, defaultThumbnailSrc)); + } + + return items; +} + +function createPetManagerItem(id, displayName, description, installed, catalogPet, codexPet, codexImported, defaultPetId, defaultThumbnailSrc) { + const preview = codexPet?.preview || (catalogPet && isAllowedCatalogPreview(catalogPet.preview) ? catalogPet.preview : ""); + const usesThumbnail = Boolean(installed?.builtIn && defaultThumbnailSrc); + return { + id, + displayName, + description, + installed, + catalogPet, + codexPet, + codexImported, + previewSrc: usesThumbnail ? defaultThumbnailSrc : preview, + previewIsSpriteSheet: !usesThumbnail, + isDefault: id === defaultPetId, + protected: Boolean(installed?.protected), + broken: Boolean(installed?.broken), + brokenReason: installed?.brokenReason || "", + }; +} + +function createPetGalleryCard(pet, defaultPetId, onSelect) { + const card = document.createElement("article"); + card.className = pet.id === activePetManagerSelection ? "pm-pet-card active" : "pm-pet-card"; + card.dataset.petId = pet.id; + card.tabIndex = 0; + card.setAttribute("role", "button"); + card.setAttribute("aria-pressed", pet.id === activePetManagerSelection ? "true" : "false"); + card.setAttribute("aria-label", `Preview ${pet.displayName}`); + card.addEventListener("click", onSelect); + card.addEventListener("keydown", (event) => { + if (event.target !== card) return; + if (event.key === "Enter" || event.key === " ") { + event.preventDefault(); + onSelect(); + } + }); + + card.append(createSpriteFrame("pm-thumb", pet.previewSrc, pet.displayName, { isSpriteSheet: pet.previewIsSpriteSheet })); + + const name = document.createElement("div"); + name.className = "pm-pet-name"; + name.textContent = pet.displayName; + card.append(name); + + const action = document.createElement("button"); + action.className = createCardActionClass(pet); + action.textContent = createCardActionLabel(pet); + action.disabled = pet.isDefault || pet.broken || pet.protected; + action.addEventListener("click", (event) => { + event.stopPropagation(); + if (!pet.installed) { + runPetPrimaryAction(pet, card); + } else { + runPetRemoveAction(pet, card, defaultPetId); + } + }); + card.append(action); + + return card; +} + +function createCardActionClass(pet) { + if (pet.isDefault || pet.broken || pet.protected) return "pm-card-action status"; + if (pet.installed) return "pm-card-action danger"; + return "pm-card-action"; +} + +function createCardActionLabel(pet) { + if (pet.broken) return "Broken"; + if (pet.isDefault) return "Default"; + if (pet.protected) return "Protected"; + if (pet.installed) return "Remove"; + if (pet.codexPet) return "Import"; + return "Install"; +} + +function selectPetManagerPet(petId, detailContainer) { + activePetManagerSelection = petId; + for (const card of document.querySelectorAll(".pm-pet-card[data-pet-id]")) { + const active = card.dataset.petId === petId; + card.classList.toggle("active", active); + card.setAttribute("aria-pressed", active ? "true" : "false"); + } + + const pet = activePetManagerItems.find((item) => item.id === petId); + if (pet && detailContainer) renderPetDetail(detailContainer, pet, activePetManagerDefaultId); +} + +function renderPetDetail(container, pet, defaultPetId) { + container.textContent = ""; + + const title = document.createElement("h2"); + title.className = "pm-detail-title"; + title.textContent = pet.displayName; + container.append(title); + + const description = document.createElement("p"); + description.className = "pm-detail-description"; + description.textContent = pet.description || "A friendly coding companion."; + container.append(description); + + const stage = document.createElement("div"); + stage.className = "pm-hero-stage"; + stage.append(createSpriteFrame("pm-preview-sprite", pet.previewSrc, pet.displayName, { animated: true, isSpriteSheet: pet.previewIsSpriteSheet, state: "idle" })); + container.append(stage); + + const status = document.createElement("p"); + status.className = "pm-status-line"; + status.textContent = createPetStatusText(pet); + container.append(status); + + if (pet.brokenReason) { + const broken = document.createElement("p"); + broken.className = "error"; + broken.textContent = pet.brokenReason; + container.append(broken); + } + + const previewTitle = document.createElement("h3"); + previewTitle.className = "pm-preview-title"; + previewTitle.textContent = "Preview"; + container.append(previewTitle); + + const miniGrid = document.createElement("div"); + miniGrid.className = "pm-mini-grid"; + for (const preview of [{ label: "Thinking", state: "thinking" }, { label: "Happy", state: "happy" }, { label: "Wave", state: "wave" }]) { + const mini = document.createElement("div"); + mini.className = "pm-mini"; + mini.append(createSpriteFrame("pm-mini-sprite", pet.previewSrc, pet.displayName, { animated: true, isSpriteSheet: pet.previewIsSpriteSheet, state: preview.state })); + const text = document.createElement("span"); + text.textContent = preview.label; + mini.append(text); + miniGrid.append(mini); + } + container.append(miniGrid); + + const actions = document.createElement("div"); + actions.className = "pm-detail-actions"; + const primary = document.createElement("button"); + primary.className = pet.isDefault || pet.broken ? "status" : ""; + setIconButtonContent(primary, pet.broken ? "alert" : pet.isDefault ? "check" : pet.installed ? "star" : "download", pet.broken ? "Broken" : pet.isDefault ? "Default" : pet.installed ? "Set default" : pet.codexPet ? "Import" : "Install"); + primary.disabled = pet.broken || pet.isDefault; + primary.addEventListener("click", () => runPetPrimaryAction(pet, actions)); + actions.append(primary); + + if (pet.installed) { + const remove = document.createElement("button"); + remove.className = "secondary"; + setIconButtonContent(remove, pet.protected ? "shield" : "trash", pet.protected ? "Protected" : "Remove"); + remove.disabled = pet.protected; + remove.addEventListener("click", () => runPetRemoveAction(pet, actions, defaultPetId)); + actions.append(remove); + } + container.append(actions); +} + +function setIconButtonContent(button, icon, label) { + button.textContent = ""; + button.append(createSvgIcon(icon), document.createTextNode(label)); +} + +function createSvgIcon(name) { + const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + svg.setAttribute("viewBox", "0 0 24 24"); + svg.setAttribute("width", "16"); + svg.setAttribute("height", "16"); + svg.setAttribute("aria-hidden", "true"); + svg.setAttribute("focusable", "false"); + svg.classList.add("pm-button-icon"); + + for (const d of getIconPaths(name)) { + const path = document.createElementNS("http://www.w3.org/2000/svg", "path"); + path.setAttribute("d", d); + path.setAttribute("fill", "none"); + path.setAttribute("stroke", "currentColor"); + path.setAttribute("stroke-width", "2"); + path.setAttribute("stroke-linecap", "round"); + path.setAttribute("stroke-linejoin", "round"); + svg.append(path); + } + + return svg; +} + +function getIconPaths(name) { + if (name === "download") return ["M12 15V3", "M7 10l5 5 5-5", "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"]; + if (name === "star") return ["M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z"]; + if (name === "check") return ["M20 6 9 17l-5-5"]; + if (name === "trash") return ["M10 11v6", "M14 11v6", "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", "M3 6h18", "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"]; + if (name === "shield") return ["M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"]; + if (name === "plug") return ["M12 22v-5", "M9 8V2", "M15 8V2", "M18 8v5a6 6 0 0 1-12 0V8z"]; + if (name === "refresh") return ["M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", "M3 3v5h5", "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16", "M16 16h5v5"]; + if (name === "copy") return ["M8 8h8v8H8z", "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", "M10 22h10c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2"]; + if (name === "repeat") return ["m17 2 4 4-4 4", "M3 11V9a4 4 0 0 1 4-4h14", "m7 22-4-4 4-4", "M21 13v2a4 4 0 0 1-4 4H3"]; + if (name === "book") return ["M4 19.5A2.5 2.5 0 0 1 6.5 17H20", "M4 4.5A2.5 2.5 0 0 1 6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5z"]; + if (name === "stethoscope") return ["M11 2v2", "M5 2v2", "M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1", "M8 15a6 6 0 0 0 12 0v-3", "M20 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4"]; + if (name === "spinner") return ["M12 3a9 9 0 1 0 9 9"]; + if (name === "settings") return ["M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8z", "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"]; + return ["m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3", "M12 9v4", "M12 17h.01"]; +} + +function createPetStatusText(pet) { + if (pet.broken) return "This installed pet is broken and cannot be selected as default."; + if (pet.isDefault) return pet.protected ? "Default built-in pet. Protected from removal." : "Default pet."; + if (pet.installed && pet.codexImported) return "Imported from your local Codex pets and ready to become your default pet."; + if (pet.installed && pet.codexPet) return "Installed and ready to become your default pet. Also found in ~/.codex/pets."; + if (pet.installed) return "Installed and ready to become your default pet."; + if (pet.codexPet && !pet.catalogPet) return "Available to import from ~/.codex/pets."; + if (pet.codexPet) return "Available in the catalog and also found in ~/.codex/pets. Import uses the local Codex copy."; + return "Available to install from the catalog."; +} + +function runPetPrimaryAction(pet, busyContainer) { + if (pet.broken || pet.isDefault) return; + const importing = Boolean(!pet.installed && pet.codexPet); + setCardBusy(busyContainer, true, pet.installed ? "Setting…" : importing ? "Importing…" : "Installing…"); + const action = pet.installed ? api.setDefaultPet(pet.id) : importing ? api.importCodexPet(pet.id) : api.installPet(pet.id); + void action.then(() => { + activePetManagerSelection = pet.id; + return renderCurrentState("pet-manager"); + }).catch(renderCaughtError).finally(() => setCardBusy(busyContainer, false)); +} + +function runPetRemoveAction(pet, busyContainer, defaultPetId) { + if (!pet.installed || pet.protected) return; + setCardBusy(busyContainer, true, "Removing…"); + void api.removePet(pet.id).then(() => { + if (activePetManagerSelection === pet.id) activePetManagerSelection = defaultPetId; + return renderCurrentState("pet-manager"); + }).catch(renderCaughtError).finally(() => setCardBusy(busyContainer, false)); +} + +function createSpriteFrame(className, src, alt, options = {}) { + const animated = Boolean(options.animated); + const isSpriteSheet = options.isSpriteSheet !== false; + const state = options.state || "idle"; + const frame = document.createElement("div"); + frame.className = `pm-sprite-frame ${className}`; + frame.setAttribute("role", "img"); + frame.setAttribute("aria-label", alt); + if (!isSpriteSheet) frame.classList.add("pm-thumbnail-frame"); + if (!src) { + frame.classList.add("pm-empty-sprite"); + return frame; + } + + const image = new Image(); + image.referrerPolicy = "no-referrer"; + image.decoding = "async"; + image.addEventListener("load", () => { + frame.style.backgroundImage = `url(${JSON.stringify(src)})`; + if (!isSpriteSheet) return; + frame.classList.add(`pm-sprite-state-${state}`); + if (animated) frame.classList.add("pm-animate-sprite"); + }); + image.addEventListener("error", () => { + frame.style.backgroundImage = ""; + frame.classList.remove("pm-animate-sprite"); + frame.classList.add("pm-empty-sprite"); + }); + image.src = src; + return frame; +} + +function isAllowedCatalogPreview(value) { + if (typeof value !== "string") return false; + try { + const url = new URL(value); + return url.protocol === "https:" + && url.hostname === "openpets.dev" + && url.port === "" + && url.username === "" + && url.password === "" + && url.pathname.startsWith("/pets/") + && url.pathname.endsWith(".webp"); + } catch { + return false; + } +} + +function setCardBusy(card, busy, label) { + for (const button of card.querySelectorAll("button")) { + if (busy) { + button.dataset.previousDisabled = button.disabled ? "true" : "false"; + if (label) button.dataset.previousText = button.textContent || ""; + button.disabled = true; + if (label) button.textContent = label; + } else { + button.disabled = button.dataset.previousDisabled === "true"; + if (button.dataset.previousText) button.textContent = button.dataset.previousText; + delete button.dataset.previousDisabled; + delete button.dataset.previousText; + } + } +} + +function renderSettings(state) { + const openOnLaunch = requireInput("open-default-pet-on-launch"); + const launchAtLogin = requireInput("launch-at-login"); + const launchAtLoginDetail = requireElement("launch-at-login-detail"); + const scaleSelect = requireSelect("pet-scale"); + const scale = requireElement("pet-scale-value"); + const status = requireElement("settings-status"); + + openOnLaunch.checked = state.preferences.openDefaultPetOnLaunch; + scaleSelect.value = String(state.preferences.petScale); + openOnLaunch.disabled = false; + scaleSelect.disabled = false; + scale.textContent = `${scaleLabelFor(state.preferences.petScale)} (${state.preferences.petScale}x)`; + + bindCheckbox(openOnLaunch, "openDefaultPetOnLaunch", "Launch preference saved."); + bindScaleSelect(scaleSelect, String(state.preferences.petScale)); + bindLaunchAtLogin(launchAtLogin, launchAtLoginDetail); + bindUpdateControls(); + + const resetButton = requireButton("reset-default-pet-position"); + resetButton.disabled = false; + resetButton.onclick = () => { + status.textContent = "Resetting pet position…"; + resetButton.disabled = true; + void api.resetDefaultPetPosition().then(async () => { + await renderCurrentState("settings"); + requireElement("settings-status").textContent = "Default pet position reset."; + }).catch((error) => { + resetButton.disabled = false; + status.textContent = "Couldn’t reset pet position. Try again."; + renderCaughtError(error); + }); + }; +} + +function bindUpdateControls() { + const checkButton = requireButton("check-for-updates"); + const openButton = requireButton("open-update-release"); + checkButton.onclick = () => { + checkButton.disabled = true; + requireElement("settings-status").textContent = "Checking for updates…"; + renderUpdateStatus({ state: "checking" }); + void api.checkForUpdates().then((status) => { + renderUpdateStatus(status); + requireElement("settings-status").textContent = updateStatusMessage(status); + }).catch((error) => { + checkButton.disabled = false; + requireElement("settings-status").textContent = "Couldn’t check for updates. Try again."; + renderCaughtError(error); + }); + }; + openButton.onclick = () => { + void api.openUpdateReleasePage().catch(renderCaughtError); + }; + void api.getUpdateStatus().then((status) => { + renderUpdateStatus(status); + if (status.state === "checking") { + void api.checkForUpdates().then(renderUpdateStatus).catch(renderCaughtError); + } + }).catch(renderCaughtError); +} + +function renderUpdateStatus(status) { + const title = requireElement("update-status-title"); + const detail = requireElement("update-status-detail"); + const checkButton = requireButton("check-for-updates"); + const openButton = requireButton("open-update-release"); + checkButton.disabled = status.state === "checking"; + openButton.hidden = status.state !== "available"; + if (status.state === "available") { + title.textContent = `Update available: ${status.latestVersion || "latest"}`; + detail.textContent = `Installed: ${status.currentVersion || "unknown"}. Open the GitHub release page to download the update.`; + } else if (status.state === "current") { + title.textContent = "OpenPets is up to date"; + detail.textContent = `Installed: ${status.currentVersion || "unknown"}. Latest public release: ${status.latestVersion || "unknown"}.`; + } else if (status.state === "checking") { + title.textContent = "Checking for updates"; + detail.textContent = "Looking for the latest public GitHub release…"; + } else if (status.state === "error") { + title.textContent = "Update check unavailable"; + detail.textContent = status.error || "Couldn’t read the latest public GitHub release."; + } else { + title.textContent = "Check for updates"; + detail.textContent = "OpenPets checks public GitHub releases and opens the release page when an update is available."; + } +} + +function updateStatusMessage(status) { + if (status.state === "available") return `Update ${status.latestVersion || "latest"} is available.`; + if (status.state === "current") return "OpenPets is up to date."; + if (status.state === "error") return "Couldn’t check for updates."; + return "Update check finished."; +} + +function bindLaunchAtLogin(input, detail) { + input.disabled = true; + detail.textContent = "Checking login setting…"; + void api.getLaunchAtLogin().then((state) => { + if (!isLaunchAtLoginState(state)) throw new Error("Launch-at-login status is unavailable."); + input.checked = state.enabled; + input.disabled = !state.supported; + detail.textContent = state.supported ? "Start OpenPets automatically when you sign in." : "Launch at login is not available on this platform."; + }).catch((error) => { + input.disabled = true; + detail.textContent = "Couldn’t read login setting."; + renderCaughtError(error); + }); + input.onchange = () => { + const previous = !input.checked; + input.disabled = true; + const status = requireElement("settings-status"); + status.textContent = input.checked ? "Enabling launch at login…" : "Disabling launch at login…"; + void api.setLaunchAtLogin(input.checked).then((state) => { + if (!isLaunchAtLoginState(state)) throw new Error("Launch-at-login update failed."); + input.checked = state.enabled; + input.disabled = !state.supported; + status.textContent = state.supported ? "Launch at login preference saved." : "Launch at login is not available on this platform."; + }).catch((error) => { + input.checked = previous; + input.disabled = false; + status.textContent = "Couldn’t update launch at login. Try again."; + renderCaughtError(error); + }); + }; +} + +function bindScaleSelect(select, currentValue) { + select.onchange = () => { + const previous = currentValue; + const value = Number(select.value); + select.disabled = true; + const status = requireElement("settings-status"); + status.textContent = "Saving scale…"; + void api.updatePreferences({ petScale: value }).then(async () => { + await renderCurrentState("settings"); + requireElement("settings-status").textContent = `${scaleLabelFor(value)} pet scale saved.`; + }).catch((error) => { + select.value = previous; + select.disabled = false; + status.textContent = "Couldn’t save pet scale. Try again."; + renderCaughtError(error); + }); + }; +} + +function scaleLabelFor(value) { + if (value === 0.44) return "Small"; + if (value === 0.56) return "Medium"; + if (value === 0.72) return "Large"; + return "Custom"; +} + +function bindCheckbox(input, key, message) { + input.onchange = () => { + const previous = !input.checked; + input.disabled = true; + const status = requireElement("settings-status"); + status.textContent = "Saving…"; + void api.updatePreferences({ [key]: input.checked }).then(async () => { + await renderCurrentState("settings"); + requireElement("settings-status").textContent = message; + }).catch((error) => { + input.checked = previous; + input.disabled = false; + status.textContent = "Couldn’t save setting. Try again."; + renderCaughtError(error); + }); + }; +} + +function createBadge(label, className) { + const badge = document.createElement("span"); + badge.className = className ? `badge ${className}` : "badge"; + badge.textContent = label; + return badge; +} + +function renderCaughtError(error) { + renderError(error instanceof Error ? error.message : "OpenPets action failed."); +} + +function renderError(message) { + const error = document.querySelector("[data-error]"); + if (error) { + error.textContent = message; + } +} + +function requireElement(id) { + const element = document.getElementById(id); + if (!element) throw new Error(`Missing element: ${id}`); + return element; +} + +function requireInput(id) { + const element = document.getElementById(id); + if (!(element instanceof HTMLInputElement)) throw new Error(`Missing input: ${id}`); + return element; +} + +function requireSelect(id) { + const element = document.getElementById(id); + if (!(element instanceof HTMLSelectElement)) throw new Error(`Missing select: ${id}`); + return element; +} + +function requireButton(id) { + const element = document.getElementById(id); + if (!(element instanceof HTMLButtonElement)) throw new Error(`Missing button: ${id}`); + return element; +} + +function isStateSnapshot(value) { + if (!isRecord(value) || !isRecord(value.preferences) || !isRecord(value.pets) || !Array.isArray(value.pets.installed)) { + return false; + } + + return typeof value.preferences.defaultPetId === "string" + && typeof value.preferences.openDefaultPetOnLaunch === "boolean" + && typeof value.preferences.speechBubblesEnabled === "boolean" + && typeof value.preferences.petScale === "number" + && typeof value.preferences.onboardingCompleted === "boolean"; +} + +function isOnboardingSnapshot(value) { + return isRecord(value) + && typeof value.defaultPetName === "string" + && typeof value.onboardingCompleted === "boolean"; +} + +function isLaunchAtLoginState(value) { + return isRecord(value) + && typeof value.supported === "boolean" + && typeof value.enabled === "boolean"; +} + +function isCatalogUiState(value) { + return isRecord(value) + && (value.source === "remote" || value.source === "fixture" || value.source === "error") + && Array.isArray(value.pets); +} + +function isCodexPetsUiState(value) { + return isRecord(value) + && value.source === "codex" + && Array.isArray(value.pets); +} + +function isAgentSetupSnapshot(value) { + return isRecord(value) + && isRecord(value.status) + && isRecord(value.hookStatus) + && isRecord(value.memoryStatus) + && isRecord(value.opencodeStatus) + && isRecord(value.opencodePreview) + && isRecord(value.preview) + && Array.isArray(value.petOptions) + && typeof value.busy === "boolean" + && (value.commandMode === "published" || value.commandMode === "local" || value.commandMode === "bundled") + && typeof value.localDevAvailable === "boolean" + && typeof value.preview.displayCommand === "string" + && isRecord(value.preview.mcpJson) + && isRecord(value.hookStatus.preview) + && typeof value.status.label === "string" + && typeof value.status.details === "string" + && typeof value.hookStatus.status === "string" + && typeof value.hookStatus.message === "string" + && typeof value.hookStatus.settingsPath === "string" + && typeof value.memoryStatus.status === "string" + && typeof value.memoryStatus.message === "string" + && typeof value.memoryStatus.claudeMdPath === "string" + && typeof value.memoryStatus.openPetsMemoryPath === "string"; +} + +function isRecord(value) { + return typeof value === "object" && value !== null; +} diff --git a/apps/desktop/scripts/clean-package-output.cjs b/apps/desktop/scripts/clean-package-output.cjs new file mode 100644 index 00000000..03f944b1 --- /dev/null +++ b/apps/desktop/scripts/clean-package-output.cjs @@ -0,0 +1,12 @@ +const { rmSync } = require("node:fs"); +const { basename, dirname, resolve } = require("node:path"); + +const scriptsDir = __dirname; +const desktopDir = resolve(scriptsDir, ".."); +const target = resolve(desktopDir, "dist-electron"); + +if (basename(target) !== "dist-electron" || dirname(target) !== desktopDir) { + throw new Error(`Refusing to clean unexpected package output path: ${target}`); +} + +rmSync(target, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 }); diff --git a/apps/desktop/scripts/release-local.mjs b/apps/desktop/scripts/release-local.mjs new file mode 100644 index 00000000..a7cc1bdc --- /dev/null +++ b/apps/desktop/scripts/release-local.mjs @@ -0,0 +1,218 @@ +#!/usr/bin/env node +import { createHash } from "node:crypto"; +import { mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs"; +import { basename, dirname, extname, join, relative, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; +import { spawnSync } from "node:child_process"; + +const scriptsDir = dirname(fileURLToPath(import.meta.url)); +const desktopDir = resolve(scriptsDir, ".."); +const repoRoot = resolve(desktopDir, "../.."); +const outputDir = join(desktopDir, "dist-electron"); +const repository = "alvinunreal/openpets"; + +const allowedArgs = new Set([ + "--dry-run", + "--yes", + "--include-optional", + "--include-mac-zip", + "--include-win-portable", + "--include-linux-deb", + "--include-linux-targz", + "--include-experimental-arm", + "--skip-checks", + "--help", +]); +const rawArgs = process.argv.slice(2).filter((arg) => arg !== "--"); +const unknownArgs = rawArgs.filter((arg) => !allowedArgs.has(arg)); +if (unknownArgs.length > 0) throw new Error(`Unknown release option(s): ${unknownArgs.join(", ")}`); +const args = new Set(rawArgs); +const dryRun = args.has("--dry-run"); +const yes = args.has("--yes"); +const includeOptional = args.has("--include-optional"); +const includeMacZip = includeOptional || args.has("--include-mac-zip"); +const includeWinPortable = includeOptional || args.has("--include-win-portable"); +const includeLinuxDeb = includeOptional || args.has("--include-linux-deb"); +const includeLinuxTarGz = includeOptional || args.has("--include-linux-targz"); +const includeExperimentalArm = args.has("--include-experimental-arm"); +const skipChecks = args.has("--skip-checks"); +if (skipChecks && yes) throw new Error("Refusing to create a release with --skip-checks. Run checks before using --yes."); + +if (args.has("--help")) { + printHelp(); + process.exit(0); +} + +const desktopPackageJson = readJson(join(desktopDir, "package.json")); +const version = desktopPackageJson.version; +const tag = `v${version}`; + +main(); + +function main() { + preflight(); + if (!skipChecks) { + run("pnpm", ["build"], { cwd: repoRoot }); + run("pnpm", ["--filter", "@open-pets/desktop", "check"], { cwd: repoRoot }); + } + + run("node", ["scripts/clean-package-output.cjs"], { cwd: desktopDir }); + mkdirSync(outputDir, { recursive: true }); + + for (const build of createBuildPlan()) { + run("pnpm", ["exec", "electron-builder", ...build.args, "--publish", "never"], { cwd: desktopDir }); + } + + const postBuildStatus = getGitStatusIgnoringPackageOutput(); + if (postBuildStatus) throw new Error(`Build/checks changed tracked or source files. Commit or revert them before releasing.\n${postBuildStatus}`); + + const artifacts = collectArtifacts(outputDir); + if (artifacts.length === 0) throw new Error("No release artifacts were produced."); + const checksumsPath = writeChecksums(artifacts); + const uploadArtifacts = [...artifacts, checksumsPath]; + + console.log("\nRelease artifacts:"); + for (const artifact of uploadArtifacts) console.log(`- ${relative(repoRoot, artifact)}`); + + if (!yes && !dryRun) { + throw new Error("Re-run with --yes to create the draft GitHub release after reviewing the artifact list."); + } + if (dryRun) { + console.log(`\nDry run complete. Would create draft release ${tag} in ${repository}.`); + return; + } + + const target = commandOutput("git", ["rev-parse", "HEAD"], { cwd: repoRoot }).trim(); + run("gh", ["release", "create", tag, "--repo", repository, "--target", target, "--draft", "--title", `OpenPets ${tag}`, "--notes", defaultReleaseNotes()], { cwd: repoRoot }); + run("gh", ["release", "upload", tag, "--repo", repository, ...uploadArtifacts], { cwd: repoRoot }); + console.log(`\nDraft release created: https://github.com/${repository}/releases/tag/${tag}`); + console.log("Draft releases are not visible to the app update checker until you publish them."); +} + +function preflight() { + if (process.platform !== "darwin") throw new Error("This local release script is intended to run from macOS."); + if (!isStableSemver(version) || version === "0.0.0") { + throw new Error(`Desktop package version must be a stable non-zero semver version. Current: ${version}`); + } + requireCommand("pnpm", ["--version"]); + requireCommand("gh", ["--version"]); + run("gh", ["auth", "status", "--hostname", "github.com"], { cwd: repoRoot }); + + const remoteUrl = commandOutput("git", ["remote", "get-url", "origin"], { cwd: repoRoot }).trim(); + if (!remoteUrl.includes(repository)) { + throw new Error(`Expected origin remote to point at ${repository}. Current origin: ${remoteUrl}`); + } + const status = commandOutput("git", ["status", "--porcelain"], { cwd: repoRoot }).trim(); + if (status) throw new Error(`Git working tree must be clean before release.\n${status}`); + + run("git", ["rev-parse", "--verify", "HEAD"], { cwd: repoRoot }); + const upstream = commandOutput("git", ["rev-parse", "--abbrev-ref", "--symbolic-full-name", "@{u}"], { cwd: repoRoot }).trim(); + if (!upstream) throw new Error("Release branch must have an upstream remote branch."); + run("git", ["fetch", "--tags", "origin"], { cwd: repoRoot }); + const localHead = commandOutput("git", ["rev-parse", "HEAD"], { cwd: repoRoot }).trim(); + const remoteHead = commandOutput("git", ["rev-parse", upstream], { cwd: repoRoot }).trim(); + if (localHead !== remoteHead) throw new Error(`HEAD must be pushed to ${upstream} before release.`); + + if (commandSucceeds("git", ["rev-parse", "--verify", `refs/tags/${tag}`], { cwd: repoRoot })) { + throw new Error(`Git tag already exists locally: ${tag}`); + } + if (commandSucceeds("git", ["ls-remote", "--exit-code", "--tags", "origin", tag], { cwd: repoRoot })) { + throw new Error(`Git tag already exists on origin: ${tag}`); + } + if (commandSucceeds("gh", ["release", "view", tag, "--repo", repository], { cwd: repoRoot })) { + throw new Error(`GitHub release already exists: ${tag}`); + } +} + +function createBuildPlan() { + const plan = [ + { name: "mac dmg x64+arm64", args: ["--mac", "dmg", "--x64", "--arm64"] }, + { name: "windows nsis x64", args: ["--win", "nsis", "--x64"] }, + { name: "linux AppImage x64", args: ["--linux", "AppImage", "--x64"] }, + ]; + if (includeMacZip) plan.push({ name: "mac zip x64+arm64", args: ["--mac", "zip", "--x64", "--arm64"] }); + if (includeWinPortable) plan.push({ name: "windows portable x64", args: ["--win", "portable", "--x64"] }); + if (includeLinuxDeb) plan.push({ name: "linux deb x64", args: ["--linux", "deb", "--x64"] }); + if (includeLinuxTarGz) plan.push({ name: "linux tar.gz x64", args: ["--linux", "tar.gz", "--x64"] }); + if (includeExperimentalArm) { + plan.push({ name: "windows nsis arm64", args: ["--win", "nsis", "--arm64"] }); + plan.push({ name: "linux AppImage arm64", args: ["--linux", "AppImage", "--arm64"] }); + } + console.log("Build plan:"); + for (const build of plan) console.log(`- ${build.name}`); + return plan; +} + +function collectArtifacts(dir) { + const allowedNames = new Set(["SHA256SUMS"]); + const allowedExtensions = new Set([".dmg", ".zip", ".exe", ".AppImage", ".deb"]); + const artifacts = []; + for (const entry of readdirSync(dir)) { + const filePath = join(dir, entry); + const stat = statSync(filePath); + if (!stat.isFile()) continue; + const name = basename(filePath); + if (allowedNames.has(name) || allowedExtensions.has(extname(name)) || name.endsWith(".tar.gz")) artifacts.push(filePath); + } + return artifacts.filter((path) => basename(path) !== "SHA256SUMS").sort(); +} + +function writeChecksums(artifacts) { + const lines = artifacts.map((artifact) => `${sha256(artifact)} ${basename(artifact)}`); + const checksumsPath = join(outputDir, "SHA256SUMS"); + writeFileSync(checksumsPath, `${lines.join("\n")}\n`); + return checksumsPath; +} + +function sha256(filePath) { + return createHash("sha256").update(readFileSync(filePath)).digest("hex"); +} + +function readJson(path) { + return JSON.parse(readFileSync(path, "utf8")); +} + +function getGitStatusIgnoringPackageOutput() { + return commandOutput("git", ["status", "--porcelain"], { cwd: repoRoot }) + .split("\n") + .filter((line) => line.trim() && !line.includes("apps/desktop/dist-electron/")) + .join("\n"); +} + +function isStableSemver(value) { + return /^\d+\.\d+\.\d+$/.test(value); +} + +function requireCommand(command, args) { + if (!commandSucceeds(command, args, { cwd: repoRoot })) throw new Error(`Required command is unavailable: ${command}`); +} + +function commandSucceeds(command, args, options) { + return spawnSync(command, args, { cwd: options.cwd, stdio: "ignore" }).status === 0; +} + +function commandOutput(command, args, options) { + const result = spawnSync(command, args, { cwd: options.cwd, encoding: "utf8" }); + if (result.status !== 0) throw new Error(`${command} ${args.join(" ")} failed:\n${result.stderr || result.stdout}`); + return result.stdout; +} + +function run(command, args, options) { + console.log(`\n$ ${command} ${args.join(" ")}`); + const result = spawnSync(command, args, { cwd: options.cwd, stdio: "inherit" }); + if (result.status !== 0) throw new Error(`${command} ${args.join(" ")} failed with exit code ${result.status ?? "unknown"}.`); +} + +function defaultReleaseNotes() { + return [ + `Local draft release for OpenPets ${tag}.`, + "", + "Before publishing:", + "- Smoke test macOS, Windows, and Linux artifacts.", + "- Expect Gatekeeper/SmartScreen warnings until signing/notarization is configured.", + ].join("\n"); +} + +function printHelp() { + console.log(`Usage: pnpm release:desktop -- --yes\n\nBuilds local desktop release artifacts, creates a draft GitHub release, and uploads artifacts.\n\nDefault targets:\n - macOS dmg x64+arm64\n - Windows nsis x64\n - Linux AppImage x64\n\nOptions:\n --yes create the draft GitHub release after building\n --dry-run run checks/builds and print what would be released\n --skip-checks skip pnpm build and desktop check\n --include-optional include all optional x64 targets below\n --include-mac-zip also build macOS zip x64+arm64\n --include-win-portable also build Windows portable x64\n --include-linux-deb also build Linux deb x64\n --include-linux-targz also build Linux tar.gz x64\n --include-experimental-arm also build Windows/Linux ARM64 artifacts\n`); +} diff --git a/apps/desktop/src/agent-pet-controller.ts b/apps/desktop/src/agent-pet-controller.ts new file mode 100644 index 00000000..03ffbfc0 --- /dev/null +++ b/apps/desktop/src/agent-pet-controller.ts @@ -0,0 +1,139 @@ +import { BrowserWindow } from "electron"; + +import { getAppStateSnapshot } from "./app-state.js"; +import { defaultPetWindowSize, getDefaultPetInitialPosition } from "./display.js"; +import { transientDisplayMs, type OpenPetsReaction } from "./local-ipc-protocol.js"; +import { clearTransientReaction, createAgentPetWindow, getTransientReactionAnimationMs, loadExplicitPetContent, mergePetTransientDisplay, setPetReactionState, type PetTransientDisplay } from "./pet-window.js"; + +const agentPetWindows = new Map(); +const transientDisplays = new Map(); +const transientTimers = new Map(); +const transientAnimationTimers = new Map(); +const dismissedAgentPets = new Set(); + +export function showAgentPet(petId: string): boolean { + if (dismissedAgentPets.has(petId)) return false; + const window = getOrCreateAgentPetWindow(petId); + if (window.isMinimized()) window.restore(); + window.showInactive(); + return true; +} + +export function closeAgentPetIfOpen(petId: string): void { + const window = agentPetWindows.get(petId); + if (!window || window.isDestroyed()) return; + agentPetWindows.delete(petId); + clearAgentDisplay(petId); + window.destroy(); +} + +export function dismissAgentPetForActiveLease(petId: string): void { + dismissedAgentPets.add(petId); + closeAgentPetIfOpen(petId); +} + +export function clearAgentPetDismissal(petId: string): void { + dismissedAgentPets.delete(petId); +} + +export function clearAgentPetLeaseState(petId: string): void { + dismissedAgentPets.delete(petId); + closeAgentPetIfOpen(petId); + clearAgentDisplay(petId); +} + +export function applyAgentPetReaction(petId: string, reaction: OpenPetsReaction): { readonly shown: boolean; readonly reason?: string } { + setAgentDisplay(petId, { reaction }); + const shown = showAgentPet(petId); + return shown ? { shown } : { shown, reason: "dismissed" }; +} + +export function applyAgentPetSay(petId: string, message: string, reaction?: OpenPetsReaction): { readonly shown: boolean; readonly reason?: string } { + setAgentDisplay(petId, { message, reaction }); + const shown = showAgentPet(petId); + return shown ? { shown } : { shown, reason: "dismissed" }; +} + +export function closeAllAgentPets(): void { + for (const petId of [...agentPetWindows.keys()]) { + closeAgentPetIfOpen(petId); + } +} + +export function refreshAgentPetContent(): void { + for (const [petId, window] of agentPetWindows.entries()) { + if (!window.isDestroyed()) { + void loadExplicitPetContent(window, petId, transientDisplays.get(petId) ?? null); + } + } +} + +function getOrCreateAgentPetWindow(petId: string): BrowserWindow { + const existing = agentPetWindows.get(petId); + if (existing && !existing.isDestroyed()) return existing; + + const pet = getAppStateSnapshot().pets.installed.find((candidate) => candidate.id === petId); + if (!pet) throw new Error(`Installed pet is unavailable: ${petId}`); + const offset = agentPetWindows.size + 1; + const initial = getDefaultPetInitialPosition(defaultPetWindowSize); + const window = createAgentPetWindow({ + petId, + displayName: pet.displayName, + position: { x: initial.x - offset * 36, y: initial.y - offset * 24 }, + display: transientDisplays.get(petId) ?? null, + onCloseRequested: () => dismissAgentPetForActiveLease(petId), + }); + + window.on("closed", () => { + agentPetWindows.delete(petId); + clearAgentDisplay(petId); + }); + agentPetWindows.set(petId, window); + return window; +} + +function setAgentDisplay(petId: string, display: PetTransientDisplay): void { + const preparedDisplay = mergePetTransientDisplay(transientDisplays.get(petId) ?? null, display); + transientDisplays.set(petId, preparedDisplay); + const existingTimer = transientTimers.get(petId); + if (existingTimer) clearTimeout(existingTimer); + const existingAnimationTimer = transientAnimationTimers.get(petId); + if (existingAnimationTimer) clearTimeout(existingAnimationTimer); + + const animationMs = getTransientReactionAnimationMs(preparedDisplay); + if (animationMs !== null && animationMs < transientDisplayMs) { + const animationTimer = setTimeout(() => { + const current = transientDisplays.get(petId); + if (!current) return; + const updated = clearTransientReaction(current); + transientDisplays.set(petId, updated); + transientAnimationTimers.delete(petId); + const window = agentPetWindows.get(petId); + if (window && !window.isDestroyed()) setPetReactionState(window, "idle"); + }, animationMs); + transientAnimationTimers.set(petId, animationTimer); + } + + const timer = setTimeout(() => { + transientDisplays.delete(petId); + transientTimers.delete(petId); + const animationTimer = transientAnimationTimers.get(petId); + if (animationTimer) clearTimeout(animationTimer); + transientAnimationTimers.delete(petId); + const window = agentPetWindows.get(petId); + if (window && !window.isDestroyed()) void loadExplicitPetContent(window, petId, null); + }, transientDisplayMs); + transientTimers.set(petId, timer); + const window = agentPetWindows.get(petId); + if (window && !window.isDestroyed()) void loadExplicitPetContent(window, petId, preparedDisplay); +} + +function clearAgentDisplay(petId: string): void { + const timer = transientTimers.get(petId); + if (timer) clearTimeout(timer); + const animationTimer = transientAnimationTimers.get(petId); + if (animationTimer) clearTimeout(animationTimer); + transientTimers.delete(petId); + transientAnimationTimers.delete(petId); + transientDisplays.delete(petId); +} diff --git a/apps/desktop/src/agent-setup.ts b/apps/desktop/src/agent-setup.ts new file mode 100644 index 00000000..83381fcf --- /dev/null +++ b/apps/desktop/src/agent-setup.ts @@ -0,0 +1,607 @@ +import { spawn } from "node:child_process"; +import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { createRequire } from "node:module"; + +import { app } from "electron"; +import { buildClaudeMcpGetCommand, buildClaudeMcpPreview, classifyClaudeMcpStatus, createOpenPetsHookSettingsPreview, doctorClaudeHooks, installClaudeHooks, mapAsarPathToUnpacked, uninstallClaudeHooks, type ClaudeCommandSpec, type ClaudeHookDoctorResult, type ClaudeMcpPreview, type OpenPetsCommandMode, type ParsedClaudeMcpEntry } from "@open-pets/claude"; +import { doctorOpenCodeGlobalSetup, getGlobalOpenCodeConfigDir, parseOpenCodeConfig, prepareOpenCodeGlobalRemove, prepareOpenCodeGlobalSetup, writePreparedOpenCodeGlobalRemove, writePreparedOpenCodeGlobalSetup } from "@open-pets/opencode"; + +import { getAppStateSnapshot, type InstalledPetState } from "./app-state.js"; +import { doctorClaudeOpenPetsMemory, installClaudeOpenPetsMemory, uninstallClaudeOpenPetsMemory, type ClaudeOpenPetsMemoryStatus } from "./claude-memory.js"; + +export type AgentSetupAction = "configure" | "replace" | "remove" | "install-memory" | "doctor-hooks" | "install-hooks" | "uninstall-hooks" | "opencode-install" | "opencode-remove"; +export type JournalAction = "configure" | "update" | "replace" | "remove"; + +export interface AgentSetupPetOption { + readonly id: string; + readonly displayName: string; + readonly default: boolean; +} + +export interface ClaudeCodeStatus { + readonly state: "detected" | "not_detected" | "configured" | "needs_setup" | "error"; + readonly label: string; + readonly details: string; + readonly claudeCommand?: string; + readonly version?: string; + readonly mcpListWorks: boolean; + readonly openPetsEntry: ParsedClaudeMcpEntry; + readonly canConfigure: boolean; + readonly canReplace: boolean; + readonly canRemove: boolean; +} + +export interface AgentSetupSnapshot { + readonly selectedPetId?: string; + readonly commandMode: OpenPetsCommandMode; + readonly localDevAvailable: boolean; + readonly petOptions: readonly AgentSetupPetOption[]; + readonly preview: ClaudeMcpPreview; + readonly status: ClaudeCodeStatus; + readonly hookStatus: ClaudeHookDoctorResult; + readonly memoryStatus: ClaudeOpenPetsMemoryStatus; + readonly opencodeStatus: OpenCodeSetupStatus; + readonly opencodePreview: OpenCodeSetupPreview; + readonly busy: boolean; + readonly lastAction?: AgentSetupActionResult; +} + +export interface OpenCodeSetupStatus { + readonly state: "configured" | "needs_setup" | "not_detected" | "error"; + readonly label: string; + readonly details: string; + readonly configDir: string; + readonly canInstall: boolean; + readonly canRemove: boolean; +} + +export interface OpenCodeSetupPreview { + readonly global: true; + readonly configDir: string; + readonly configPath: string; + readonly cleanupConfigPaths: readonly string[]; + readonly mcpCommand: readonly string[]; + readonly plugin: readonly unknown[] | string; + readonly instructionPath: string; + readonly configPreview: Record; +} + +export interface AgentSetupActionResult { + readonly ok: boolean; + readonly action: AgentSetupAction; + readonly message: string; + readonly changed: boolean; +} + +export interface AgentSetupJournalEntry { + readonly timestamp: string; + readonly action: JournalAction; + readonly selectedPetId?: string; + readonly command: readonly string[]; + readonly previousStatus: string; + readonly success: boolean; + readonly message: string; +} + +interface CommandResult { + readonly ok: boolean; + readonly timedOut: boolean; + readonly exitCode: number | null; + readonly stdout: string; + readonly stderr: string; + readonly error?: string; +} + +const commandTimeoutMs = 6_000; +const maxOutputBytes = 16_384; +const require = createRequire(import.meta.url); +let operationRunning = false; +let lastAction: AgentSetupActionResult | undefined; + +export async function getAgentSetupSnapshot(selectedPetId?: unknown, commandModeInput?: unknown): Promise { + const petId = validateSelectedPetId(selectedPetId); + const commandMode = validateCommandMode(commandModeInput); + const preview = safeBuildClaudeMcpPreview(petId, commandMode); + const status = preview.error ? createBundledResourceErrorStatus(preview.error) : await detectClaudeCodeStatus(petId, commandMode); + const rawHookStatus = preview.error ? createHookErrorStatus(preview.error) : safeDoctorClaudeHooks(commandMode, petId); + const hookStatus = { ...rawHookStatus, settingsPath: formatUserPath(rawHookStatus.settingsPath) ?? rawHookStatus.settingsPath, backupPath: formatUserPath(rawHookStatus.backupPath) }; + const rawMemoryStatus = doctorClaudeOpenPetsMemory(app.getPath("home")); + const memoryStatus = { ...rawMemoryStatus, claudeMdPath: formatUserPath(rawMemoryStatus.claudeMdPath) ?? rawMemoryStatus.claudeMdPath, openPetsMemoryPath: formatUserPath(rawMemoryStatus.openPetsMemoryPath) ?? rawMemoryStatus.openPetsMemoryPath }; + const opencode = await getOpenCodeSetup(commandMode, petId); + + return { + selectedPetId: petId, + commandMode, + localDevAvailable: !app.isPackaged, + petOptions: getPetOptions(), + preview: preview.preview, + status, + hookStatus, + memoryStatus, + opencodeStatus: opencode.status, + opencodePreview: opencode.preview, + busy: operationRunning, + lastAction, + }; +} + +export async function runAgentSetupAction(action: AgentSetupAction, selectedPetId?: unknown, commandModeInput?: unknown): Promise { + if (operationRunning) throw new Error("Another Claude setup operation is already running."); + const petId = validateSelectedPetId(selectedPetId); + const commandMode = validateCommandMode(commandModeInput); + operationRunning = true; + + try { + lastAction = await runAction(action, petId, commandMode); + operationRunning = false; + return getAgentSetupSnapshot(petId, commandMode); + } finally { + operationRunning = false; + } +} + +export function sanitizeAgentSetupOutput(value: string): string { + const home = app.isReady() ? app.getPath("home") : ""; + return value + .replaceAll(home, "~") + .replace(/(?:[A-Za-z]:)?[\\/][^\s"']{2,}/g, "") + .replace(/-----BEGIN [^-]+PRIVATE KEY-----[\s\S]*?-----END [^-]+PRIVATE KEY-----/gi, "") + .replace(/bearer\s+[A-Za-z0-9._~+\/-]+=*/gi, "Bearer ") + .replace(/\b(api[_-]?key|secret|password|token)\s*[:=]\s*\S+/gi, "$1=") + .slice(0, 500); +} + +function safeBuildClaudeMcpPreview(selectedPetId: string | undefined, commandMode: OpenPetsCommandMode): { readonly preview: ClaudeMcpPreview; readonly error?: string } { + try { + return { preview: buildClaudeMcpPreview(selectedPetId, commandMode) }; + } catch (error) { + const message = error instanceof Error ? error.message : "Packaged OpenPets command resources are unavailable."; + return { preview: createErrorPreview(commandMode, message), error: message }; + } +} + +function safeDoctorClaudeHooks(commandMode: OpenPetsCommandMode, selectedPetId: string | undefined): ClaudeHookDoctorResult { + try { + return doctorClaudeHooks(undefined, commandMode, selectedPetId); + } catch (error) { + return createHookErrorStatus(error instanceof Error ? error.message : "Packaged OpenPets hook resources are unavailable."); + } +} + +function createErrorPreview(commandMode: OpenPetsCommandMode, message: string): ClaudeMcpPreview { + return { + commandMode, + add: { command: "claude", args: [] }, + remove: { command: "claude", args: ["mcp", "remove", "--scope", "user", "openpets"] }, + mcpJson: { mcpServers: { openpets: { type: "stdio", command: "node", args: [] } } }, + displayCommand: message, + }; +} + +function createBundledResourceErrorStatus(message: string): ClaudeCodeStatus { + return createStatus("error", "Packaged commands unavailable", message, undefined, { ok: false, timedOut: false, exitCode: null, stdout: "", stderr: "", error: message }, { present: false, source: "none", verified: false, matchesExpected: false }); +} + +function createHookErrorStatus(message: string): ClaudeHookDoctorResult { + return { status: "error", settingsPath: "~/.claude/settings.json", exists: false, valid: false, message, preview: {}, asyncSupported: false }; +} + +async function runAction(action: AgentSetupAction, selectedPetId: string | undefined, commandMode: OpenPetsCommandMode): Promise { + if (action === "opencode-install") return installOpenCodeGlobal(selectedPetId, commandMode); + if (action === "opencode-remove") return removeOpenCodeGlobal(); + if (action === "doctor-hooks") { + const doctor = safeDoctorClaudeHooks(commandMode, selectedPetId); + writeActionJournal({ action: "update", selectedPetId, command: createHookJournalCommand("doctor-hooks", selectedPetId), previousStatus: doctor.status, success: doctor.status !== "error", message: doctor.message }); + return { ok: doctor.status !== "error", action, message: doctor.message, changed: false }; + } + if (action === "uninstall-hooks") { + let result; + try { + result = uninstallClaudeHooks(undefined, commandMode); + } catch (error) { + return { ok: false, action, message: error instanceof Error ? error.message : "OpenPets hook uninstall failed.", changed: false }; + } + const message = result.changed ? `Uninstalled OpenPets Claude hooks. Backup: ${formatUserPath(result.backupPath) ?? "not needed"}` : result.message; + writeActionJournal({ action: "remove", selectedPetId, command: ["open-pets-claude", "uninstall-hooks"], previousStatus: result.status, success: result.status !== "error", message }); + return { ok: result.status !== "error", action, message, changed: result.changed }; + } + if (action === "install-memory") { + const result = safeInstallClaudeMemory(); + return { ok: result.ok, action, message: result.ok ? result.message : `Claude instructions were not updated: ${result.message}`, changed: result.ok && result.message.startsWith("Added") }; + } + if (action === "remove") { + return runRemove(createErrorPreview(commandMode, ""), selectedPetId, "Unknown", action); + } + if (commandMode === "bundled") { + const node = await runCommand({ command: "node", args: ["--version"] }); + if (!node.ok) return { ok: false, action, message: `Packaged OpenPets Claude commands require node on Claude's PATH: ${summarizeCommandResult(node)}`, changed: false }; + } + const previewResult = safeBuildClaudeMcpPreview(selectedPetId, commandMode); + if (previewResult.error) return { ok: false, action, message: previewResult.error, changed: false }; + + if (action === "install-hooks") { + let result; + try { + result = installClaudeHooks(undefined, commandMode, selectedPetId); + } catch (error) { + return { ok: false, action, message: error instanceof Error ? error.message : "OpenPets hook install failed.", changed: false }; + } + const message = result.changed ? `Installed OpenPets Claude hooks. Backup: ${formatUserPath(result.backupPath) ?? "not needed"}` : result.message; + writeActionJournal({ action: "update", selectedPetId, command: createHookJournalCommand("install-hooks", selectedPetId), previousStatus: result.status, success: result.status !== "error", message }); + return { ok: result.status !== "error", action, message, changed: result.changed }; + } + const detection = await detectClaudeCodeStatus(selectedPetId, commandMode); + const previousStatus = detection.label; + const preview = previewResult.preview; + + if (detection.state === "not_detected") { + const result = { ok: false, action, message: "Claude Code was not found. Install Claude Code or use Copy command to configure manually.", changed: false }; + writeActionJournal({ action: journalActionFor(action), selectedPetId, command: [preview.add.command, ...preview.add.args], previousStatus, success: false, message: result.message }); + return result; + } + + if (action === "configure") { + if (detection.openPetsEntry.present && detection.openPetsEntry.verified && detection.openPetsEntry.matchesExpected) { + const memoryResult = safeInstallClaudeMemory(); + const message = `OpenPets MCP is already configured for Claude Code.${memoryResult.ok ? ` ${memoryResult.message}` : ` Claude instructions were not updated: ${memoryResult.message}`}`; + return { ok: true, action, message, changed: memoryResult.ok && memoryResult.message.startsWith("Added") }; + } + if (detection.openPetsEntry.present) { + return { ok: false, action, message: "Claude already has an openpets MCP entry. OpenPets will keep it as installed; use Replace only if you want to recreate it with the recommended command.", changed: false }; + } + return runAdd(preview, selectedPetId, previousStatus, action); + } + + if (!detection.openPetsEntry.present) { + return runAdd(preview, selectedPetId, previousStatus, action); + } + + const removed = await runRemove(preview, selectedPetId, previousStatus, action); + if (!removed.ok) return removed; + const added = await runAdd(preview, selectedPetId, previousStatus, action); + if (!added.ok) { + return { + ok: false, + action, + message: `${added.message} The previous openpets entry was removed; use this command to restore the intended entry: ${preview.displayCommand}`, + changed: true, + }; + } + return { ok: true, action, message: `Replaced Claude Code OpenPets MCP entry.${summarizeMemoryMessages(removed.message, added.message)}`, changed: true }; +} + +async function getOpenCodeSetup(commandMode: OpenPetsCommandMode, selectedPetId: string | undefined): Promise<{ readonly status: OpenCodeSetupStatus; readonly preview: OpenCodeSetupPreview }> { + const configDir = getGlobalOpenCodeConfigDir(process.env, app.getPath("home"), process.platform); + const petId = selectedPetId || undefined; + const cliVersion = getCliPackageVersion(); + const pluginVersion = getOpenCodePackageVersion(); + const cliEntryPath = commandMode === "published" ? undefined : getDesktopCliEntryPath(commandMode); + const prepared = safePrepareOpenCode(configDir, petId, cliVersion, pluginVersion, commandMode, cliEntryPath); + const detected = await runCommand({ command: process.platform === "win32" ? "opencode.cmd" : "opencode", args: ["--version"] }); + const globalState = doctorOpenCodeGlobalSetup(configDir); + const configured = globalState.status === "installed"; + return { + status: { + state: globalState.status === "error" || globalState.status === "custom" || globalState.status === "conflict" ? "error" : configured ? "configured" : detected.ok ? "needs_setup" : "not_detected", + label: configured ? "Installed" : globalState.status === "custom" || globalState.status === "conflict" ? "Needs attention" : detected.ok ? "Ready" : "Not detected", + details: globalState.status === "custom" || globalState.status === "conflict" || globalState.status === "error" ? globalState.message : configured ? globalState.message : detected.ok ? "OpenCode was detected. Desktop setup writes global OpenCode config." : "OpenCode was not found on PATH. You can still preview setup, but OpenCode must be installed to use it.", + configDir: formatUserPath(configDir) ?? configDir, + canInstall: prepared.ok, + canRemove: configured, + }, + preview: { + global: true, + configDir: formatUserPath(configDir) ?? configDir, + configPath: prepared.ok ? (formatUserPath(prepared.configPath) ?? prepared.configPath) : "", + cleanupConfigPaths: prepared.ok ? prepared.cleanupConfigPaths.map((path) => formatUserPath(path) ?? path) : [], + mcpCommand: prepared.ok ? prepared.command : [], + plugin: prepared.ok ? prepared.plugin : (petId ? [`@open-pets/opencode@${pluginVersion}`, { pet: petId }] : `@open-pets/opencode@${pluginVersion}`), + instructionPath: prepared.ok ? (formatUserPath(prepared.instructionPath) ?? prepared.instructionPath) : "", + configPreview: prepared.ok ? prepared.configPreview : {}, + }, + }; +} + +function safePrepareOpenCode(configDir: string, selectedPetId: string | undefined, cliVersion: string, pluginVersion: string, commandMode: OpenPetsCommandMode, cliEntryPath: string | undefined): { readonly ok: true; readonly command: readonly string[]; readonly configPath: string; readonly cleanupConfigPaths: readonly string[]; readonly instructionPath: string; readonly plugin: readonly unknown[] | string; readonly configPreview: Record } | { readonly ok: false; readonly message: string } { + try { + const prepared = prepareOpenCodeGlobalSetup({ configDir, petId: selectedPetId || undefined, cliVersion, pluginVersion, commandMode, cliEntryPath }); + const parsed = parseOpenCodeConfig(prepared.configWrite.content); + if (!parsed.ok) return { ok: false, message: parsed.message }; + const config = parsed.value as { mcp?: { openpets?: { command?: readonly string[] } }; plugin?: readonly unknown[] }; + const plugin = Array.isArray(config.plugin) ? config.plugin[config.plugin.length - 1] : undefined; + return { ok: true, command: config.mcp?.openpets?.command ?? [], configPath: prepared.configPath, cleanupConfigPaths: prepared.cleanupConfigWrites.map((write) => write.targetPath), instructionPath: prepared.instructionPath, plugin: plugin === undefined ? [] : (plugin as readonly unknown[] | string), configPreview: parsed.value }; + } catch (error) { + return { ok: false, message: error instanceof Error ? error.message : "OpenCode setup preview failed." }; + } +} + +async function installOpenCodeGlobal(selectedPetId: string | undefined, commandMode: OpenPetsCommandMode): Promise { + if (commandMode === "bundled") { + const node = await runCommand({ command: "node", args: ["--version"] }); + if (!node.ok) return { ok: false, action: "opencode-install", message: `Packaged OpenPets OpenCode setup requires node on OpenCode's PATH: ${summarizeCommandResult(node)}`, changed: false }; + } + try { + const configDir = getGlobalOpenCodeConfigDir(process.env, app.getPath("home"), process.platform); + const prepared = prepareOpenCodeGlobalSetup({ configDir, petId: selectedPetId || undefined, cliVersion: getCliPackageVersion(), pluginVersion: getOpenCodePackageVersion(), commandMode, cliEntryPath: commandMode === "published" ? undefined : getDesktopCliEntryPath(commandMode) }); + writePreparedOpenCodeGlobalSetup(prepared); + return { ok: true, action: "opencode-install", message: `Installed global OpenCode OpenPets setup. Config: ${formatUserPath(prepared.configPath) ?? prepared.configPath}. Instructions: ${formatUserPath(prepared.instructionPath) ?? prepared.instructionPath}.`, changed: true }; + } catch (error) { + return { ok: false, action: "opencode-install", message: error instanceof Error ? error.message : "OpenCode setup failed.", changed: false }; + } +} + +async function removeOpenCodeGlobal(): Promise { + try { + const configDir = getGlobalOpenCodeConfigDir(process.env, app.getPath("home"), process.platform); + const prepared = prepareOpenCodeGlobalRemove(configDir); + writePreparedOpenCodeGlobalRemove(prepared); + return { ok: true, action: "opencode-remove", message: prepared.configWrites.length > 0 ? "Removed global OpenCode OpenPets setup." : "Global OpenCode OpenPets setup was already absent.", changed: prepared.configWrites.length > 0 }; + } catch (error) { + return { ok: false, action: "opencode-remove", message: error instanceof Error ? error.message : "OpenCode removal failed.", changed: false }; + } +} + +function getDesktopCliEntryPath(commandMode: OpenPetsCommandMode): string { + const path = require.resolve("@open-pets/cli"); + return commandMode === "bundled" ? mapAsarPathToUnpacked(path) : path; +} + +function getCliPackageVersion(): string { + return getWorkspacePackageVersion("@open-pets/cli"); +} + +function getOpenCodePackageVersion(): string { + return getWorkspacePackageVersion("@open-pets/opencode"); +} + +function getWorkspacePackageVersion(packageName: string): string { + try { + const entryPath = require.resolve(packageName); + const packageJsonPath = join(dirname(dirname(entryPath)), "package.json"); + const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8")) as { readonly version?: unknown }; + return typeof packageJson.version === "string" && packageJson.version ? packageJson.version : "0.0.0"; + } catch { + return "0.0.0"; + } +} + +function summarizeMemoryMessages(...messages: readonly string[]): string { + const memoryMessages = messages.flatMap((message) => message.match(/Claude (?:OpenPets )?instructions[^.]*\./g) ?? []); + return memoryMessages.length > 0 ? ` ${memoryMessages.join(" ")}` : ""; +} + +function createHookJournalCommand(command: "doctor-hooks" | "install-hooks", selectedPetId: string | undefined): readonly string[] { + return selectedPetId ? ["open-pets-claude", command, "--pet", selectedPetId] : ["open-pets-claude", command]; +} + +async function runAdd(preview: ClaudeMcpPreview, selectedPetId: string | undefined, previousStatus: string, action: AgentSetupAction): Promise { + const result = await runClaudeCommand(preview.add); + const memoryResult = result.ok ? safeInstallClaudeMemory() : { ok: false as const, message: "" }; + const message = result.ok + ? `Configured Claude Code OpenPets MCP entry.${memoryResult.ok ? ` ${memoryResult.message}` : ` Claude instructions were not updated: ${memoryResult.message}`}` + : `Claude MCP add failed: ${summarizeCommandResult(result)}`; + writeActionJournal({ action: journalActionFor(action), selectedPetId, command: [preview.add.command, ...preview.add.args], previousStatus, success: result.ok, message }); + return { ok: result.ok, action, message, changed: result.ok }; +} + +async function runRemove(preview: ClaudeMcpPreview, selectedPetId: string | undefined, previousStatus: string, action: AgentSetupAction): Promise { + const result = await runClaudeCommand(preview.remove); + const memoryResult = result.ok ? safeUninstallClaudeMemory() : { ok: false as const, message: "" }; + const message = result.ok + ? `Removed Claude Code OpenPets MCP entry.${memoryResult.ok ? ` ${memoryResult.message}` : ` Claude instructions were not updated: ${memoryResult.message}`}` + : `Claude MCP remove failed: ${summarizeCommandResult(result)}`; + writeActionJournal({ action: journalActionFor(action), selectedPetId, command: [preview.remove.command, ...preview.remove.args], previousStatus, success: result.ok, message }); + return { ok: result.ok, action, message, changed: result.ok }; +} + +function safeInstallClaudeMemory(): { readonly ok: true; readonly message: string } | { readonly ok: false; readonly message: string } { + try { + const result = installClaudeOpenPetsMemory(app.getPath("home")); + return { ok: true, message: result.changed ? "Added Claude OpenPets instructions." : "Claude OpenPets instructions already present." }; + } catch (error) { + return { ok: false, message: error instanceof Error ? error.message : "Unknown error." }; + } +} + +function safeUninstallClaudeMemory(): { readonly ok: true; readonly message: string } | { readonly ok: false; readonly message: string } { + try { + const result = uninstallClaudeOpenPetsMemory(app.getPath("home")); + return { ok: true, message: result.changed ? "Removed Claude OpenPets instructions." : "Claude OpenPets instructions were already absent." }; + } catch (error) { + return { ok: false, message: error instanceof Error ? error.message : "Unknown error." }; + } +} + +async function detectClaudeCodeStatus(selectedPetId: string | undefined, commandMode: OpenPetsCommandMode): Promise { + if (commandMode === "bundled") { + const node = await runCommand({ command: "node", args: ["--version"] }); + if (!node.ok) return createStatus("error", "Node required", `Packaged OpenPets Claude commands require node on Claude's PATH: ${summarizeCommandResult(node)}`, undefined, node, { present: false, source: "none", verified: false, matchesExpected: false }); + } + + const version = await runClaudeCommand({ command: "claude", args: ["--version"] }); + if (!version.ok) { + return createStatus("not_detected", "Not detected", `Claude Code was not found or did not run: ${summarizeCommandResult(version)}`, undefined, version, { present: false, source: "none", verified: false, matchesExpected: false }); + } + + const list = await runClaudeCommandWithTimeoutRetry({ command: "claude", args: ["mcp", "list"] }); + if (!list.ok) { + return createStatus("error", "Error / needs attention", `Claude Code was detected, but MCP status failed: ${summarizeCommandResult(list)}`, sanitizeAgentSetupOutput(version.stdout || version.stderr), list, { present: false, source: "none", verified: false, matchesExpected: false }); + } + + const listed = classifyClaudeMcpStatus(list.stdout, undefined, selectedPetId, commandMode); + let entry = listed; + if (listed.present) { + const get = await runClaudeCommand(buildClaudeMcpGetCommand()); + if (get.ok) entry = classifyClaudeMcpStatus(list.stdout, get.stdout, selectedPetId, commandMode); + } + + if (!entry.present) return createStatus("needs_setup", "Needs setup", "Claude Code is detected, but OpenPets MCP is not configured.", sanitizeAgentSetupOutput(version.stdout || version.stderr), list, entry); + if (entry.verified && entry.matchesExpected) return createStatus("configured", "Configured", "Claude Code has the expected OpenPets MCP entry.", sanitizeAgentSetupOutput(version.stdout || version.stderr), list, entry); + if (entry.verified) return createStatus("configured", "Installed — custom", "Claude Code has an openpets MCP entry with a custom command. OpenPets will leave it alone unless you choose Replace with recommended.", sanitizeAgentSetupOutput(version.stdout || version.stderr), list, entry); + return createStatus("configured", "Installed — unverified", "Claude Code lists an openpets MCP entry, but command details were not available. OpenPets will leave it alone unless you choose Replace with recommended.", sanitizeAgentSetupOutput(version.stdout || version.stderr), list, entry); +} + +async function runClaudeCommandWithTimeoutRetry(spec: ClaudeCommandSpec): Promise { + const first = await runClaudeCommand(spec); + if (!first.timedOut) return first; + await delay(250); + const second = await runClaudeCommand(spec); + return second.ok ? second : first; +} + +function createStatus(state: ClaudeCodeStatus["state"], label: string, details: string, version: string | undefined, listResult: CommandResult, entry: ParsedClaudeMcpEntry): ClaudeCodeStatus { + return { + state, + label, + details, + claudeCommand: "claude", + version, + mcpListWorks: listResult.ok, + openPetsEntry: entry, + canConfigure: state === "needs_setup", + canReplace: entry.present && !(entry.verified && entry.matchesExpected), + canRemove: entry.present, + }; +} + +function validateSelectedPetId(value: unknown): string | undefined { + if (value === undefined || value === null || value === "") return undefined; + if (typeof value !== "string") throw new Error("Invalid selected pet id."); + const pet = getAppStateSnapshot().pets.installed.find((candidate) => candidate.id === value); + if (!pet || pet.broken) throw new Error("Selected pet is not installed or is broken."); + return pet.id; +} + +function validateCommandMode(value: unknown): OpenPetsCommandMode { + if (app.isPackaged) return "bundled"; + return value === "local" ? "local" : "published"; +} + +function getPetOptions(): readonly AgentSetupPetOption[] { + const state = getAppStateSnapshot(); + return state.pets.installed.filter(isUsablePet).map((pet) => ({ id: pet.id, displayName: pet.displayName, default: pet.id === state.preferences.defaultPetId })); +} + +function isUsablePet(pet: InstalledPetState): boolean { + return pet.installed && !pet.broken && !pet.builtIn; +} + +async function runClaudeCommand(spec: ClaudeCommandSpec): Promise { + for (const command of getClaudeCommandCandidates(spec.command)) { + const result = await runCommand({ command, args: spec.args }); + if (result.ok || !isCommandNotFound(result)) return result; + } + return { ok: false, timedOut: false, exitCode: null, stdout: "", stderr: "", error: "Claude command was not found." }; +} + +function runCommand(spec: ClaudeCommandSpec): Promise { + return new Promise((resolve) => { + const command = process.platform === "win32" && spec.command.toLowerCase().endsWith(".cmd") ? "cmd.exe" : spec.command; + const args = process.platform === "win32" && spec.command.toLowerCase().endsWith(".cmd") ? ["/d", "/s", "/c", spec.command, ...spec.args] : spec.args; + const child = spawn(command, args, { cwd: app.getPath("home"), env: createCommandEnv(), windowsHide: true, shell: false }); + let stdout = ""; + let stderr = ""; + let settled = false; + const timer = setTimeout(() => { + if (settled) return; + settled = true; + child.kill(); + resolve({ ok: false, timedOut: true, exitCode: null, stdout: sanitizeAgentSetupOutput(stdout), stderr: sanitizeAgentSetupOutput(stderr), error: "Command timed out." }); + }, commandTimeoutMs); + + child.stdout?.on("data", (chunk: Buffer) => { stdout = appendBounded(stdout, chunk.toString("utf8")); }); + child.stderr?.on("data", (chunk: Buffer) => { stderr = appendBounded(stderr, chunk.toString("utf8")); }); + child.on("error", (error) => { + if (settled) return; + settled = true; + clearTimeout(timer); + resolve({ ok: false, timedOut: false, exitCode: null, stdout: sanitizeAgentSetupOutput(stdout), stderr: sanitizeAgentSetupOutput(stderr), error: error.message }); + }); + child.on("close", (code) => { + if (settled) return; + settled = true; + clearTimeout(timer); + resolve({ ok: code === 0, timedOut: false, exitCode: code, stdout: sanitizeAgentSetupOutput(stdout), stderr: sanitizeAgentSetupOutput(stderr), error: undefined }); + }); + }); +} + +function delay(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +function getClaudeCommandCandidates(command: string): readonly string[] { + if (command !== "claude") return [command]; + if (process.platform === "win32") return ["claude", "claude.cmd"]; + return ["claude"]; +} + +function createCommandEnv(): NodeJS.ProcessEnv { + const extraPaths = process.platform === "win32" ? [] : ["/opt/homebrew/bin", "/usr/local/bin"]; + const existingPath = process.env.PATH ?? ""; + return { ...process.env, PATH: [existingPath, ...extraPaths].filter(Boolean).join(process.platform === "win32" ? ";" : ":") }; +} + +function isCommandNotFound(result: CommandResult): boolean { + return Boolean(result.error && /ENOENT|not found/i.test(result.error)); +} + +function summarizeCommandResult(result: CommandResult): string { + if (result.timedOut) return "command timed out."; + const output = sanitizeAgentSetupOutput(result.stderr || result.stdout || result.error || `exit code ${result.exitCode ?? "unknown"}`); + return output || "command failed."; +} + +function formatUserPath(path: string | undefined): string | undefined { + if (!path) return undefined; + return path.replace(app.getPath("home"), "~"); +} + +function appendBounded(existing: string, next: string): string { + const combined = existing + next; + return combined.length > maxOutputBytes ? combined.slice(combined.length - maxOutputBytes) : combined; +} + +function writeActionJournal(entry: Omit & { readonly timestamp?: string }): void { + try { + const path = getJournalPath(); + const entries = readActionJournal().concat({ ...entry, command: entry.command.map((part) => formatUserPath(part) ?? part), message: sanitizeAgentSetupOutput(entry.message), timestamp: entry.timestamp || new Date().toISOString() }).slice(-20); + mkdirSync(dirname(path), { recursive: true }); + const tempPath = `${path}.${process.pid}.tmp`; + writeFileSync(tempPath, `${JSON.stringify(entries, null, 2)}\n`, "utf8"); + renameSync(tempPath, path); + } catch (error) { + console.error("Failed to write OpenPets agent setup action journal.", error); + } +} + +function readActionJournal(): AgentSetupJournalEntry[] { + const path = getJournalPath(); + if (!existsSync(path)) return []; + try { + const parsed = JSON.parse(readFileSync(path, "utf8")) as unknown; + return Array.isArray(parsed) ? parsed.filter(isJournalEntry).slice(-20) : []; + } catch { + return []; + } +} + +function getJournalPath(): string { + return join(app.getPath("userData"), "agent-setup-actions.json"); +} + +function isJournalEntry(value: unknown): value is AgentSetupJournalEntry { + return typeof value === "object" && value !== null && typeof (value as { timestamp?: unknown }).timestamp === "string"; +} + +function journalActionFor(action: AgentSetupAction): JournalAction { + if (action === "replace") return "replace"; + if (action === "remove") return "remove"; + return "configure"; +} + +export const agentSetupInternalsForChecks = { + sanitizeAgentSetupOutput, + createOpenPetsHookSettingsPreview, +}; diff --git a/apps/desktop/src/app-state-core.ts b/apps/desktop/src/app-state-core.ts new file mode 100644 index 00000000..356838d9 --- /dev/null +++ b/apps/desktop/src/app-state-core.ts @@ -0,0 +1,29 @@ +export interface OnboardingPreferenceLike { + readonly onboardingCompleted?: unknown; +} + +export const petScaleOptions = [ + { label: "Small", value: 0.44 }, + { label: "Medium", value: 0.56 }, + { label: "Large", value: 0.72 }, +] as const; +export type PetScaleValue = typeof petScaleOptions[number]["value"]; +export const defaultPetScale: PetScaleValue = 0.56; + +export function normalizePetScale(value: unknown): PetScaleValue { + return petScaleOptions.find((option) => option.value === value)?.value ?? defaultPetScale; +} + +export function normalizeOnboardingCompleted(value: OnboardingPreferenceLike): boolean { + return typeof value.onboardingCompleted === "boolean" ? value.onboardingCompleted : false; +} + +export function markOnboardingCompleted }>(state: T): T { + return { + ...state, + preferences: { + ...state.preferences, + onboardingCompleted: true, + }, + }; +} diff --git a/apps/desktop/src/app-state.ts b/apps/desktop/src/app-state.ts new file mode 100644 index 00000000..23838f22 --- /dev/null +++ b/apps/desktop/src/app-state.ts @@ -0,0 +1,416 @@ +import { existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs"; +import { dirname, join } from "node:path"; + +import { app } from "electron"; + +import { defaultPetScale, markOnboardingCompleted, normalizeOnboardingCompleted, normalizePetScale, petScaleOptions, type PetScaleValue } from "./app-state-core.js"; +import { builtInPet } from "./built-in-pet.js"; +import type { Point } from "./display.js"; +import { assertSafePetId, getInstalledPetDir } from "./pet-paths.js"; + +export interface InstalledPetState { + readonly id: string; + readonly displayName: string; + readonly description?: string; + readonly builtIn: boolean; + readonly protected: boolean; + readonly installed: boolean; + readonly source?: { + readonly kind?: "catalog"; + readonly catalogVersion: 2; + readonly zip: string; + readonly preview: string; + } | { + readonly kind: "codex"; + readonly path: string; + }; + readonly broken?: boolean; + readonly brokenReason?: string; +} + +export interface OpenPetsStateV1 { + readonly version: 1; + readonly preferences: { + readonly defaultPetId: string; + readonly openDefaultPetOnLaunch: boolean; + readonly speechBubblesEnabled: boolean; + readonly petScale: number; + readonly onboardingCompleted: boolean; + }; + readonly pets: { + readonly installed: readonly InstalledPetState[]; + }; + readonly defaultPet: { + readonly position?: Point; + }; +} + +export { defaultPetScale, normalizePetScale, petScaleOptions, type PetScaleValue }; + +const stateFileName = "openpets-state.json"; +let statePath: string | null = null; +let currentState: OpenPetsStateV1 | null = null; + +export function initializeAppState(): void { + statePath = join(app.getPath("userData"), stateFileName); + const nextState = normalizeState(readStateFile(statePath)); + writeStateToDisk(nextState); + currentState = nextState; + console.log(`OpenPets state initialized at ${statePath}.`); +} + +export function getAppStateSnapshot(): OpenPetsStateV1 { + return cloneState(getInitializedState()); +} + +export function updatePreferences(patch: Partial): OpenPetsStateV1 { + const state = getInitializedState(); + const preferences = normalizePreferences({ ...state.preferences, ...patch }); + + const nextState = normalizeState({ + ...state, + preferences, + }); + + commitState(nextState); + return getAppStateSnapshot(); +} + +export function isOnboardingCompleted(): boolean { + return getInitializedState().preferences.onboardingCompleted; +} + +export function completeOnboarding(): OpenPetsStateV1 { + const state = getInitializedState(); + const nextState = normalizeState(markOnboardingCompleted(state)); + commitState(nextState); + return getAppStateSnapshot(); +} + +export function setDefaultPet(defaultPetId: string): OpenPetsStateV1 { + const state = getInitializedState(); + const targetPet = state.pets.installed.find((pet) => pet.id === defaultPetId); + + if (!targetPet) { + throw new Error(`Cannot set unknown pet as default: ${defaultPetId}`); + } + + if (targetPet.broken) { + throw new Error(`Cannot set broken pet as default: ${defaultPetId}`); + } + + const nextState = normalizeState({ + ...state, + preferences: { + ...state.preferences, + defaultPetId, + }, + }); + + commitState(nextState); + return getAppStateSnapshot(); +} + +export function setDefaultPetPosition(position: Point): OpenPetsStateV1 { + const state = getInitializedState(); + + const nextState = normalizeState({ + ...state, + defaultPet: { + ...state.defaultPet, + position: normalizePosition(position), + }, + }); + + commitState(nextState); + return getAppStateSnapshot(); +} + +export function resetDefaultPetPosition(position: Point): OpenPetsStateV1 { + return setDefaultPetPosition(position); +} + +export function getDefaultPetPosition(): Point | undefined { + return getInitializedState().defaultPet.position; +} + +export function installPetState(pet: Omit): OpenPetsStateV1 { + const state = getInitializedState(); + + if (state.pets.installed.some((installedPet) => installedPet.id === pet.id)) { + throw new Error(`Pet is already installed: ${pet.id}`); + } + + const nextState = normalizeState({ + ...state, + pets: { + installed: [ + ...state.pets.installed, + { + ...pet, + builtIn: false, + protected: false, + installed: true, + }, + ], + }, + }); + + commitState(nextState); + return getAppStateSnapshot(); +} + +export function removePetState(petId: string): OpenPetsStateV1 { + if (petId === builtInPet.id) { + throw new Error("Built-in pet cannot be removed."); + } + + const state = getInitializedState(); + const existing = state.pets.installed.find((pet) => pet.id === petId); + + if (!existing) { + throw new Error(`Pet is not installed: ${petId}`); + } + + const nextDefaultPetId = state.preferences.defaultPetId === petId ? builtInPet.id : state.preferences.defaultPetId; + + const nextState = normalizeState({ + ...state, + preferences: { + ...state.preferences, + defaultPetId: nextDefaultPetId, + }, + pets: { + installed: state.pets.installed.filter((pet) => pet.id !== petId), + }, + }); + + commitState(nextState); + return getAppStateSnapshot(); +} + +export function markPetBroken(petId: string, brokenReason: string): OpenPetsStateV1 { + const state = getInitializedState(); + + if (petId === builtInPet.id) { + return getAppStateSnapshot(); + } + + const nextState = normalizeState({ + ...state, + preferences: { + ...state.preferences, + defaultPetId: state.preferences.defaultPetId === petId ? builtInPet.id : state.preferences.defaultPetId, + }, + pets: { + installed: state.pets.installed.map((pet) => pet.id === petId ? { ...pet, broken: true, brokenReason } : pet), + }, + }); + + commitState(nextState); + return getAppStateSnapshot(); +} + +export function getStateFilePath(): string { + if (!statePath) { + throw new Error("OpenPets app state has not been initialized."); + } + + return statePath; +} + +function getInitializedState(): OpenPetsStateV1 { + if (!currentState) { + throw new Error("OpenPets app state has not been initialized."); + } + + return currentState; +} + +function readStateFile(path: string): unknown { + if (!existsSync(path)) { + return undefined; + } + + try { + return JSON.parse(readFileSync(path, "utf8")) as unknown; + } catch (error) { + console.error(`Failed to read OpenPets state from ${path}; using defaults.`, error); + return undefined; + } +} + +function normalizeState(value: unknown): OpenPetsStateV1 { + const record = isRecord(value) ? value : {}; + const defaultPetRecord = isRecord(record.defaultPet) ? record.defaultPet : {}; + const preferencesRecord = isRecord(record.preferences) ? record.preferences : {}; + const defaultState = createDefaultState(); + const position = normalizeMaybePosition(defaultPetRecord.position); + const installedPets = normalizeInstalledPets(record); + const defaultPetId = typeof preferencesRecord.defaultPetId === "string" + && installedPets.some((pet) => pet.id === preferencesRecord.defaultPetId && !pet.broken) + ? preferencesRecord.defaultPetId + : builtInPet.id; + + return { + version: 1, + preferences: normalizePreferences({ + ...defaultState.preferences, + ...preferencesRecord, + defaultPetId, + }), + pets: { + installed: installedPets, + }, + defaultPet: position ? { position } : {}, + }; +} + +function normalizePreferences(value: Partial): OpenPetsStateV1["preferences"] { + const defaultState = createDefaultState(); + + return { + defaultPetId: typeof value.defaultPetId === "string" ? value.defaultPetId : builtInPet.id, + openDefaultPetOnLaunch: typeof value.openDefaultPetOnLaunch === "boolean" + ? value.openDefaultPetOnLaunch + : defaultState.preferences.openDefaultPetOnLaunch, + speechBubblesEnabled: true, + petScale: normalizePetScale(value.petScale), + onboardingCompleted: normalizeOnboardingCompleted(value), + }; +} + +function normalizeInstalledPets(value: Record): InstalledPetState[] { + const installed = isRecord(value.pets) && Array.isArray(value.pets.installed) + ? value.pets.installed + : []; + + const normalized = installed + .map((pet) => normalizeInstalledPet(pet)) + .filter((pet): pet is InstalledPetState => Boolean(pet && pet.id !== builtInPet.id)); + + return [builtInPet, ...normalized]; +} + +function normalizeInstalledPet(value: unknown): InstalledPetState | null { + if (!isRecord(value) || typeof value.id !== "string" || typeof value.displayName !== "string") { + return null; + } + + try { + assertSafePetId(value.id); + } catch { + return null; + } + + const brokenReason = validateInstalledPetFiles(value.id); + + return { + id: value.id, + displayName: value.displayName, + description: typeof value.description === "string" ? value.description : undefined, + builtIn: value.id === builtInPet.id ? true : value.builtIn === true, + protected: value.id === builtInPet.id ? true : value.protected === true, + installed: true, + source: normalizeSource(value.source), + broken: brokenReason ? true : typeof value.broken === "boolean" ? value.broken : undefined, + brokenReason: brokenReason ?? (typeof value.brokenReason === "string" ? value.brokenReason : undefined), + }; +} + +function createDefaultState(): OpenPetsStateV1 { + return { + version: 1, + preferences: { + defaultPetId: builtInPet.id, + openDefaultPetOnLaunch: true, + speechBubblesEnabled: true, + petScale: defaultPetScale, + onboardingCompleted: false, + }, + pets: { + installed: [builtInPet], + }, + defaultPet: {}, + }; +} + +function commitState(nextState: OpenPetsStateV1): void { + writeStateToDisk(nextState); + currentState = nextState; +} + +function writeStateToDisk(state: OpenPetsStateV1): void { + const path = getStateFilePath(); + + mkdirSync(dirname(path), { recursive: true }); + const tempPath = `${path}.${process.pid}.tmp`; + writeFileSync(tempPath, `${JSON.stringify(state, null, 2)}\n`, "utf8"); + renameSync(tempPath, path); +} + +function validateInstalledPetFiles(petId: string): string | undefined { + try { + const dir = getInstalledPetDir(petId); + const petJsonPath = join(dir, "pet.json"); + const spritesheetPath = join(dir, "spritesheet.webp"); + JSON.parse(readFileSync(petJsonPath, "utf8")) as unknown; + const spritesheet = statSync(spritesheetPath); + if (!spritesheet.isFile()) return "spritesheet.webp is not a file."; + if (spritesheet.size <= 0) return "spritesheet.webp is empty."; + if (spritesheet.size > 100 * 1024 * 1024) return "spritesheet.webp is too large."; + return undefined; + } catch (error) { + return error instanceof Error ? error.message : "Installed pet files are invalid."; + } +} + +function normalizeSource(value: unknown): InstalledPetState["source"] | undefined { + if (!isRecord(value)) { + return undefined; + } + + if (value.kind === "codex" && typeof value.path === "string") { + return { kind: "codex", path: value.path }; + } + + if (value.catalogVersion !== 2 || typeof value.zip !== "string" || typeof value.preview !== "string") return undefined; + + return { + kind: "catalog", + catalogVersion: 2, + zip: value.zip, + preview: value.preview, + }; +} + +function normalizeMaybePosition(value: unknown): Point | undefined { + if (!isRecord(value)) { + return undefined; + } + + return normalizePosition(value); +} + +function normalizePosition(value: Partial): Point | undefined { + if (typeof value.x !== "number" || typeof value.y !== "number") { + return undefined; + } + + if (!Number.isFinite(value.x) || !Number.isFinite(value.y)) { + return undefined; + } + + return { + x: Math.round(value.x), + y: Math.round(value.y), + }; +} + +function cloneState(state: OpenPetsStateV1): OpenPetsStateV1 { + return structuredClone(state) as OpenPetsStateV1; +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} diff --git a/apps/desktop/src/assets.ts b/apps/desktop/src/assets.ts new file mode 100644 index 00000000..6d10b456 --- /dev/null +++ b/apps/desktop/src/assets.ts @@ -0,0 +1,110 @@ +import { join } from "node:path"; + +import { app, nativeImage, type NativeImage } from "electron"; + +const trayIconRelativePath = join("assets", "tray-icon.png"); + +export function createTrayIcon(): NativeImage { + const assetPath = join(app.getAppPath(), trayIconRelativePath); + const assetImage = nativeImage.createFromPath(assetPath); + + if (!assetImage.isEmpty()) { + return assetImage.resize({ width: 22, height: 22 }); + } + + console.error(`OpenPets tray icon asset could not be loaded from ${assetPath}; using generated fallback icon.`); + return createFallbackTrayIcon(); +} + +function createFallbackTrayIcon(): NativeImage { + const size = 32; + const bitmap = Buffer.alloc(size * size * 4, 0); + + for (let y = 0; y < size; y += 1) { + for (let x = 0; x < size; x += 1) { + if (isRoundedSquarePixel(x, y, size, 8)) { + setPixel(bitmap, size, x, y, 17, 24, 39, 255); + } + } + } + + drawCircle(bitmap, size, 11, 13, 3, 249, 250, 251, 255); + drawCircle(bitmap, size, 21, 13, 3, 249, 250, 251, 255); + drawCircle(bitmap, size, 11, 13, 1, 17, 24, 39, 255); + drawCircle(bitmap, size, 21, 13, 1, 17, 24, 39, 255); + + for (let x = 10; x <= 22; x += 1) { + const y = Math.round(21 + Math.sin((x - 10) / 12 * Math.PI) * 3); + drawCircle(bitmap, size, x, y, 1, 249, 250, 251, 255); + } + + const image = nativeImage.createFromBitmap(bitmap, { + width: size, + height: size, + scaleFactor: 1, + }); + + if (image.isEmpty()) { + console.error("OpenPets tray icon creation produced an empty image."); + } + + if (process.platform === "darwin") { + image.setTemplateImage(true); + } + + return image; +} + +function isRoundedSquarePixel(x: number, y: number, size: number, radius: number): boolean { + const left = radius; + const right = size - radius - 1; + const top = radius; + const bottom = size - radius - 1; + + if (x >= left && x <= right) return true; + if (y >= top && y <= bottom) return true; + + const cornerX = x < left ? left : right; + const cornerY = y < top ? top : bottom; + const distanceSquared = (x - cornerX) ** 2 + (y - cornerY) ** 2; + + return distanceSquared <= radius ** 2; +} + +function drawCircle( + bitmap: Buffer, + size: number, + centerX: number, + centerY: number, + radius: number, + red: number, + green: number, + blue: number, + alpha: number, +): void { + for (let y = centerY - radius; y <= centerY + radius; y += 1) { + for (let x = centerX - radius; x <= centerX + radius; x += 1) { + if (x < 0 || y < 0 || x >= size || y >= size) continue; + if ((x - centerX) ** 2 + (y - centerY) ** 2 <= radius ** 2) { + setPixel(bitmap, size, x, y, red, green, blue, alpha); + } + } + } +} + +function setPixel( + bitmap: Buffer, + size: number, + x: number, + y: number, + red: number, + green: number, + blue: number, + alpha: number, +): void { + const offset = (y * size + x) * 4; + bitmap[offset] = blue; + bitmap[offset + 1] = green; + bitmap[offset + 2] = red; + bitmap[offset + 3] = alpha; +} diff --git a/apps/desktop/src/built-in-pet.ts b/apps/desktop/src/built-in-pet.ts new file mode 100644 index 00000000..f2c5069f --- /dev/null +++ b/apps/desktop/src/built-in-pet.ts @@ -0,0 +1,7 @@ +export const builtInPet = { + id: "builtin", + displayName: "Built-in Pet", + builtIn: true, + protected: true, + installed: true, +} as const; diff --git a/apps/desktop/src/catalog-validation.ts b/apps/desktop/src/catalog-validation.ts new file mode 100644 index 00000000..6562f72b --- /dev/null +++ b/apps/desktop/src/catalog-validation.ts @@ -0,0 +1,80 @@ +export interface CatalogV2 { + readonly version: 2; + readonly generatedAt: string; + readonly pets: readonly CatalogPetV2[]; +} + +export interface CatalogPetV2 { + readonly id: string; + readonly displayName: string; + readonly description: string; + readonly preview: string; + readonly zip: string; +} + +export function validateCatalogV2(value: unknown): CatalogV2 { + if (!isRecord(value)) throw new Error("Catalog must be an object."); + if (value.version !== 2) throw new Error("Catalog version must be 2."); + if (typeof value.generatedAt !== "string" || Number.isNaN(Date.parse(value.generatedAt))) throw new Error("Catalog generatedAt must be a valid date string."); + if (!Array.isArray(value.pets)) throw new Error("Catalog pets must be an array."); + if (value.pets.length > 1000) throw new Error("Catalog has too many pets."); + + const ids = new Set(); + const pets = value.pets.map((pet) => validateCatalogPet(pet, ids)); + + return { + version: 2, + generatedAt: value.generatedAt, + pets, + }; +} + +function validateCatalogPet(value: unknown, ids: Set): CatalogPetV2 { + if (!isRecord(value)) throw new Error("Catalog pet must be an object."); + const id = validateId(value.id); + + if (ids.has(id)) throw new Error(`Duplicate catalog pet id: ${id}`); + ids.add(id); + + return { + id, + displayName: validateString(value.displayName, "displayName", 120), + description: validateString(value.description, "description", 500), + preview: validateCatalogUrl(value.preview, "preview"), + zip: validateCatalogUrl(value.zip, "zip"), + }; +} + +function validateId(value: unknown): string { + if (typeof value !== "string") throw new Error("Catalog pet id must be a string."); + if (value === "builtin") throw new Error("Catalog pet id 'builtin' is reserved."); + if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(value)) throw new Error(`Invalid catalog pet id: ${value}`); + return value; +} + +function validateString(value: unknown, field: string, maxLength: number): string { + if (typeof value !== "string") throw new Error(`Catalog pet ${field} must be a string.`); + if (value.length > maxLength) throw new Error(`Catalog pet ${field} is too long.`); + return value; +} + +function validateCatalogUrl(value: unknown, field: "preview" | "zip"): string { + const raw = validateString(value, field, 2048); + const url = new URL(raw); + + if (url.protocol !== "https:") throw new Error(`${field} URL must use https.`); + if (url.username || url.password) throw new Error(`${field} URL cannot include credentials.`); + if (url.port) throw new Error(`${field} URL cannot include a custom port.`); + + if (field === "preview") { + if (url.hostname !== "openpets.dev" || !url.pathname.startsWith("/pets/")) throw new Error("Preview URL host/path is not allowed."); + } else if (url.hostname !== "zip.openpets.dev" || !url.pathname.startsWith("/pets/")) { + throw new Error("Zip URL host/path is not allowed."); + } + + return url.toString(); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} diff --git a/apps/desktop/src/catalog.ts b/apps/desktop/src/catalog.ts new file mode 100644 index 00000000..d7e0590e --- /dev/null +++ b/apps/desktop/src/catalog.ts @@ -0,0 +1,116 @@ +import { readFile } from "node:fs/promises"; +import { join } from "node:path"; + +import { app } from "electron"; + +import { validateCatalogV2, type CatalogPetV2, type CatalogV2 } from "./catalog-validation.js"; + +export const catalogUrl = "https://openpets.dev/pets/catalog.v2.json"; +const fixtureRelativePath = "catalog.v2.fixture.json"; +const maxCatalogBytes = 1_000_000; +const fetchTimeoutMs = 5_000; + +export interface CatalogUiState { + readonly source: "remote" | "fixture" | "error"; + readonly pets: readonly CatalogPetV2[]; + readonly generatedAt?: string; + readonly error?: string; +} + +export async function getCatalogUiState(): Promise { + const remote = await tryLoadRemoteCatalog(); + + if (remote.ok) { + return { + source: "remote", + pets: remote.catalog.pets, + generatedAt: remote.catalog.generatedAt, + }; + } + + const fixture = await tryLoadFixtureCatalog(); + + if (fixture.ok) { + return { + source: "fixture", + pets: fixture.catalog.pets, + generatedAt: fixture.catalog.generatedAt, + error: `Live catalog unavailable: ${remote.error}`, + }; + } + + return { + source: "error", + pets: [], + error: `Live catalog unavailable: ${remote.error}. Fixture unavailable: ${fixture.error}`, + }; +} + +async function tryLoadRemoteCatalog(): Promise<{ readonly ok: true; readonly catalog: CatalogV2 } | { readonly ok: false; readonly error: string }> { + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), fetchTimeoutMs); + + try { + const response = await fetch(catalogUrl, { + signal: controller.signal, + redirect: "error", + credentials: "omit", + }); + + validateCatalogEndpoint(response.url); + if (!response.ok) throw new Error(`HTTP ${response.status}`); + + const text = await readLimitedResponse(response); + return { ok: true, catalog: validateCatalogV2(JSON.parse(text) as unknown) }; + } catch (error) { + return { ok: false, error: error instanceof Error ? error.message : "unknown error" }; + } finally { + clearTimeout(timeout); + } +} + +async function tryLoadFixtureCatalog(): Promise<{ readonly ok: true; readonly catalog: CatalogV2 } | { readonly ok: false; readonly error: string }> { + try { + return { ok: true, catalog: validateCatalogV2(await loadFixtureCatalog()) }; + } catch (error) { + return { ok: false, error: error instanceof Error ? error.message : "unknown error" }; + } +} + +async function loadFixtureCatalog(): Promise { + const fixturePath = join(app.getAppPath(), fixtureRelativePath); + return JSON.parse(await readFile(fixturePath, "utf8")) as unknown; +} + +async function readLimitedResponse(response: Response): Promise { + const reader = response.body?.getReader(); + if (!reader) throw new Error("Catalog response body is unavailable for bounded reading."); + + const chunks: Uint8Array[] = []; + let total = 0; + + while (true) { + const { done, value } = await reader.read(); + if (done) break; + total += value.byteLength; + if (total > maxCatalogBytes) throw new Error("Catalog response is too large."); + chunks.push(value); + } + + return new TextDecoder().decode(concatChunks(chunks, total)); +} + +function concatChunks(chunks: readonly Uint8Array[], total: number): Uint8Array { + const output = new Uint8Array(total); + let offset = 0; + for (const chunk of chunks) { + output.set(chunk, offset); + offset += chunk.byteLength; + } + return output; +} + +function validateCatalogEndpoint(value: string): void { + const url = new URL(value); + if (url.href !== catalogUrl) throw new Error("Catalog final URL is not allowed."); +} diff --git a/apps/desktop/src/check-catalog-fixture.ts b/apps/desktop/src/check-catalog-fixture.ts new file mode 100644 index 00000000..618157e6 --- /dev/null +++ b/apps/desktop/src/check-catalog-fixture.ts @@ -0,0 +1,30 @@ +import { readFile } from "node:fs/promises"; + +import { validateCatalogV2 } from "./catalog-validation.js"; + +const fixture = JSON.parse(await readFile("catalog.v2.fixture.json", "utf8")) as unknown; +validateCatalogV2(fixture); + +const invalidCases: readonly unknown[] = [ + { version: 2, generatedAt: new Date().toISOString(), pets: [{ id: "Bad ID", displayName: "Bad", description: "", preview: "https://openpets.dev/pets/x/spritesheet.webp", zip: "https://zip.openpets.dev/pets/x/x.zip" }] }, + { version: 2, generatedAt: new Date().toISOString(), pets: [{ id: "dup", displayName: "Dup", description: "", preview: "https://openpets.dev/pets/x/spritesheet.webp", zip: "https://zip.openpets.dev/pets/x/x.zip" }, { id: "dup", displayName: "Dup 2", description: "", preview: "https://openpets.dev/pets/y/spritesheet.webp", zip: "https://zip.openpets.dev/pets/y/y.zip" }] }, + { version: 2, generatedAt: new Date().toISOString(), pets: [{ id: "http", displayName: "Http", description: "", preview: "http://openpets.dev/pets/x/spritesheet.webp", zip: "https://zip.openpets.dev/pets/x/x.zip" }] }, + { version: 2, generatedAt: new Date().toISOString(), pets: [{ id: "host", displayName: "Host", description: "", preview: "https://evil.example/pets/x/spritesheet.webp", zip: "https://zip.openpets.dev/pets/x/x.zip" }] }, + { version: 2, generatedAt: new Date().toISOString(), pets: [{ id: "builtin", displayName: "Builtin", description: "", preview: "https://openpets.dev/pets/x/spritesheet.webp", zip: "https://zip.openpets.dev/pets/x/x.zip" }] }, +]; + +for (const invalidCase of invalidCases) { + assertRejectsCatalog(invalidCase); +} + +console.log("Catalog fixture validation passed."); + +function assertRejectsCatalog(value: unknown): void { + try { + validateCatalogV2(value); + } catch { + return; + } + + throw new Error("Invalid catalog fixture case was accepted."); +} diff --git a/apps/desktop/src/check-claude-memory.ts b/apps/desktop/src/check-claude-memory.ts new file mode 100644 index 00000000..c5bc660a --- /dev/null +++ b/apps/desktop/src/check-claude-memory.ts @@ -0,0 +1,75 @@ +import assert from "node:assert/strict"; +import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; + +import { ensureImportLine, ensureManagedImport, installClaudeOpenPetsMemory, openPetsClaudeImportLine, removeImportLine, removeOpenPetsMemoryBlock, uninstallClaudeOpenPetsMemory, upsertOpenPetsMemoryBlock } from "./claude-memory.js"; + +assert.equal(ensureImportLine("", openPetsClaudeImportLine), `${openPetsClaudeImportLine}\n`); +assert.equal(ensureImportLine("# User notes\n", openPetsClaudeImportLine), `# User notes\n\n${openPetsClaudeImportLine}\n`); +assert.equal(ensureImportLine(`# User notes\n${openPetsClaudeImportLine}\n${openPetsClaudeImportLine}\n`, openPetsClaudeImportLine), `# User notes\n\n${openPetsClaudeImportLine}\n`); +assert.equal(removeImportLine(`# User notes\n\n${openPetsClaudeImportLine}\n`, openPetsClaudeImportLine), "# User notes\n"); +assert.match(upsertOpenPetsMemoryBlock("custom\n", "\nmanaged\n\n"), /custom[\s\S]*managed/); +assert.equal((upsertOpenPetsMemoryBlock("\nold\n\n\n\nolder\n\n", "\nnew\n\n").match(/OPENPETS:START/g) ?? []).length, 1); +assert.match(ensureManagedImport("# User notes\n"), /OPENPETS:IMPORT:START[\s\S]*@~\/\.claude\/openpets\.md[\s\S]*OPENPETS:IMPORT:END/); +assert.equal(ensureManagedImport(`${openPetsClaudeImportLine}\n`), `${openPetsClaudeImportLine}\n`, "user-owned import line should not be wrapped as managed."); +assert.equal(removeOpenPetsMemoryBlock("custom\n\nmanaged\n\n"), "custom\n"); + +const dir = mkdtempSync(join(tmpdir(), "openpets-claude-memory-")); +try { + const claudeDir = join(dir, ".claude"); + const claudeMd = join(claudeDir, "CLAUDE.md"); + const openpetsMd = join(claudeDir, "openpets.md"); + mkdirSync(claudeDir); + writeFileSync(claudeMd, "# Existing Claude instructions\n\nKeep this.\n", "utf8"); + + const installed = installClaudeOpenPetsMemory(dir); + assert.equal(installed.changed, true); + assert.match(readFileSync(claudeMd, "utf8"), /Keep this\.[\s\S]*@~\/\.claude\/openpets\.md/); + assert.match(readFileSync(openpetsMd, "utf8"), /openpets_say/); + + const reinstalled = installClaudeOpenPetsMemory(dir); + assert.equal(reinstalled.changed, false); + assert.equal((readFileSync(claudeMd, "utf8").match(/@~\/\.claude\/openpets\.md/g) ?? []).length, 1); + assert.match(readFileSync(claudeMd, "utf8"), /OPENPETS:IMPORT:START/); + + writeFileSync(openpetsMd, `${readFileSync(openpetsMd, "utf8")}\nUser custom note.\n`, "utf8"); + const uninstalled = uninstallClaudeOpenPetsMemory(dir); + assert.equal(uninstalled.changed, true); + assert.doesNotMatch(readFileSync(claudeMd, "utf8"), /openpets\.md/); + assert.equal(existsSync(openpetsMd), true, "customized openpets.md should be preserved after managed block removal."); + assert.match(readFileSync(openpetsMd, "utf8"), /User custom note/); + + const userImportHome = join(dir, "user-import-home"); + const userClaudeDir = join(userImportHome, ".claude"); + mkdirSync(userClaudeDir, { recursive: true }); + writeFileSync(join(userClaudeDir, "CLAUDE.md"), `# User-owned import\n${openPetsClaudeImportLine}\n`, "utf8"); + writeFileSync(join(userClaudeDir, "openpets.md"), "User-owned content.\n", "utf8"); + installClaudeOpenPetsMemory(userImportHome); + assert.doesNotMatch(readFileSync(join(userClaudeDir, "CLAUDE.md"), "utf8"), /OPENPETS:IMPORT:START/, "pre-existing import should remain user-owned."); + uninstallClaudeOpenPetsMemory(userImportHome); + assert.match(readFileSync(join(userClaudeDir, "CLAUDE.md"), "utf8"), /@~\/\.claude\/openpets\.md/, "user-owned import should not be removed."); + assert.match(readFileSync(join(userClaudeDir, "openpets.md"), "utf8"), /User-owned content/, "user-owned openpets.md content should be preserved."); + + const symlinkHome = join(dir, "symlink-home"); + const symlinkTarget = join(dir, "outside"); + mkdirSync(symlinkHome); + mkdirSync(symlinkTarget); + symlinkSync(symlinkTarget, join(symlinkHome, ".claude")); + assert.throws(() => installClaudeOpenPetsMemory(symlinkHome)); + + const symlinkFileHome = join(dir, "symlink-file-home"); + mkdirSync(join(symlinkFileHome, ".claude"), { recursive: true }); + writeFileSync(join(dir, "outside-file"), "x", "utf8"); + symlinkSync(join(dir, "outside-file"), join(symlinkFileHome, ".claude", "CLAUDE.md")); + assert.throws(() => installClaudeOpenPetsMemory(symlinkFileHome)); + + const oversizedHome = join(dir, "oversized-home"); + mkdirSync(join(oversizedHome, ".claude"), { recursive: true }); + writeFileSync(join(oversizedHome, ".claude", "CLAUDE.md"), "x".repeat(1024 * 1024 + 1), "utf8"); + assert.throws(() => installClaudeOpenPetsMemory(oversizedHome)); +} finally { + rmSync(dir, { recursive: true, force: true }); +} + +console.error("Claude memory validation passed."); diff --git a/apps/desktop/src/check-codex-pets.ts b/apps/desktop/src/check-codex-pets.ts new file mode 100644 index 00000000..d38e1493 --- /dev/null +++ b/apps/desktop/src/check-codex-pets.ts @@ -0,0 +1,32 @@ +import assert from "node:assert/strict"; + +import { canInlineCodexPreview, maxCodexPets, maxCodexPreviewBytes, maxCodexTotalPreviewBytes, validateCodexPetMetadata } from "./codex-pets-core.js"; + +const valid = validateCodexPetMetadata({ + id: "fixer", + displayName: " Fixer ", + description: " Repairs things. ", + spritesheetPath: "spritesheet.webp", +}, "fixer"); + +assert.deepEqual(valid, { + id: "fixer", + displayName: "Fixer", + description: "Repairs things.", + spritesheetPath: "spritesheet.webp", +}); + +assert.throws(() => validateCodexPetMetadata({ id: "other", displayName: "Other", description: "Nope", spritesheetPath: "spritesheet.webp" }, "fixer")); +assert.throws(() => validateCodexPetMetadata({ id: "builtin", displayName: "Built-in", description: "Reserved", spritesheetPath: "spritesheet.webp" }, "builtin")); +assert.throws(() => validateCodexPetMetadata({ id: "bad/id", displayName: "Bad", description: "Bad", spritesheetPath: "spritesheet.webp" }, "bad/id")); +assert.throws(() => validateCodexPetMetadata({ id: "fixer", displayName: "Fixer", description: "Nope", spritesheetPath: "../spritesheet.webp" }, "fixer")); +assert.throws(() => validateCodexPetMetadata({ id: "fixer", displayName: "", description: "Nope", spritesheetPath: "spritesheet.webp" }, "fixer")); + +assert.equal(canInlineCodexPreview(0), false); +assert.equal(canInlineCodexPreview(maxCodexPreviewBytes), true); +assert.equal(canInlineCodexPreview(maxCodexPreviewBytes + 1), false); +assert.equal(canInlineCodexPreview(Number.POSITIVE_INFINITY), false); +assert.equal(maxCodexTotalPreviewBytes, maxCodexPreviewBytes * 3); +assert.equal(maxCodexPets, 100); + +console.error("Codex pet validation passed."); diff --git a/apps/desktop/src/check-lease-manager.ts b/apps/desktop/src/check-lease-manager.ts new file mode 100644 index 00000000..ebbd27de --- /dev/null +++ b/apps/desktop/src/check-lease-manager.ts @@ -0,0 +1,60 @@ +import { LeaseManager } from "./lease-manager.js"; + +let now = 1_000; +const opened: string[] = []; +const closed: string[] = []; +const manager = new LeaseManager({ + ttlMs: 100, + now: () => now, + resolveTarget: (requestedPetId) => { + if (!requestedPetId) return { targetKind: "default", actualPetId: "builtin" }; + if (requestedPetId === "missing") return { targetKind: "default", actualPetId: "builtin", fallbackReason: "pet_not_installed" }; + return { targetKind: "explicit", actualPetId: requestedPetId }; + }, + getDefaultPetId: () => "builtin", + getPetDisplayName: (petId) => petId, + onFirstExplicitLease: (petId) => opened.push(petId), + onLastExplicitLease: (petId) => closed.push(petId), +}); + +const defaultLease = manager.acquire(); +if (!defaultLease.usingDefaultPet || defaultLease.targetKind !== "default") throw new Error("Default lease did not target default."); +manager.release(defaultLease.leaseId); +if (closed.length !== 0) throw new Error("Default release closed a temp pet."); + +const first = manager.acquire("snoopy"); +const second = manager.acquire("snoopy"); +if (opened.join(",") !== "snoopy") throw new Error("Explicit pet did not open once for multiple leases."); +manager.release(first.leaseId); +if (closed.length !== 0) throw new Error("Explicit pet closed before final lease release."); +manager.release(first.leaseId); +manager.release(second.leaseId); +if (closed.join(",") !== "snoopy") throw new Error("Explicit pet did not close after final release."); + +const missing = manager.acquire("missing"); +if (missing.fallbackReason !== "pet_not_installed" || !missing.usingDefaultPet) throw new Error("Missing pet did not fall back to default."); +manager.release(missing.leaseId); + +const expiring = manager.acquire("tux"); +now += 50; +manager.heartbeat(expiring.leaseId); +now += 75; +if (manager.cleanupExpired().length !== 0) throw new Error("Heartbeat did not extend lease."); +now += 50; +if (manager.cleanupExpired().length !== 1) throw new Error("Expired lease was not cleaned up."); + +const expiredBeforeHeartbeat = manager.acquire("dobby"); +now += 200; +assertRejects(() => manager.heartbeat(expiredBeforeHeartbeat.leaseId)); +if (manager.get(expiredBeforeHeartbeat.leaseId) !== null) throw new Error("Expired lease was still readable before cleanup."); + +console.log("Lease manager validation passed."); + +function assertRejects(callback: () => unknown): void { + try { + callback(); + } catch { + return; + } + throw new Error("Expected lease operation to reject."); +} diff --git a/apps/desktop/src/check-local-ipc-protocol.ts b/apps/desktop/src/check-local-ipc-protocol.ts new file mode 100644 index 00000000..2a084365 --- /dev/null +++ b/apps/desktop/src/check-local-ipc-protocol.ts @@ -0,0 +1,55 @@ +import { errorResponse, maxIpcMessageBytes, parseIpcRequest, validateReaction, validateSayMessage } from "./local-ipc-protocol.js"; + +const token = "test-token"; +const valid = { + id: "1", + version: 1, + token, + method: "status", + params: {}, +}; + +parseIpcRequest(JSON.stringify(valid), token); +parseIpcRequest(JSON.stringify({ ...valid, method: "pets.list" }), token); +assertRejects(() => parseIpcRequest(JSON.stringify({ ...valid, token: "bad" }), token)); +assertRejects(() => parseIpcRequest(JSON.stringify({ ...valid, version: 2 }), token)); +assertRejects(() => parseIpcRequest(JSON.stringify({ ...valid, method: "pet.install" }), token)); +assertRejects(() => parseIpcRequest("not json", token)); + +validateReaction("testing"); +validateReaction("waving"); +assertRejects(() => validateReaction("bad")); + +validateSayMessage("Working on it"); +for (const unsafe of [ + "", + "a".repeat(141), + "line one\nline two", + "```code```", + "const secret = 1", + "https://example.com", + "/Users/alvin/project/file.ts", + "api_key=abc123", +]) { + assertRejects(() => validateSayMessage(unsafe)); +} + +if (Buffer.byteLength(JSON.stringify({ message: "x".repeat(maxIpcMessageBytes) }), "utf8") <= maxIpcMessageBytes) { + throw new Error("Oversized fixture was not oversized."); +} + +const response = errorResponse("1", new Error("boom")); +if (response.ok || response.error?.code !== "internal_error") { + throw new Error("Failed to create structured error response."); +} + +console.log("Local IPC protocol validation passed."); + +function assertRejects(callback: () => unknown): void { + try { + callback(); + } catch { + return; + } + throw new Error("Expected validation to reject."); +} diff --git a/apps/desktop/src/check-onboarding-state.ts b/apps/desktop/src/check-onboarding-state.ts new file mode 100644 index 00000000..1a29e7e7 --- /dev/null +++ b/apps/desktop/src/check-onboarding-state.ts @@ -0,0 +1,53 @@ +import assert from "node:assert/strict"; + +import { defaultPetScale, markOnboardingCompleted, normalizeOnboardingCompleted, normalizePetScale, petScaleOptions } from "./app-state-core.js"; + +assert.equal(normalizeOnboardingCompleted({}), false); +assert.equal(normalizeOnboardingCompleted({ onboardingCompleted: true }), true); +assert.equal(normalizeOnboardingCompleted({ onboardingCompleted: false }), false); +assert.equal(normalizeOnboardingCompleted({ onboardingCompleted: "true" }), false); + +const state = { + version: 1, + preferences: { + defaultPetId: "built-in", + openDefaultPetOnLaunch: true, + speechBubblesEnabled: true, + petScale: 1, + onboardingCompleted: false, + }, + pets: { + installed: [{ id: "built-in", displayName: "Built-in Pet" }], + }, +}; + +const completed = markOnboardingCompleted(state); +assert.equal(completed.preferences.onboardingCompleted, true); +assert.equal(completed.preferences.defaultPetId, "built-in"); +assert.equal(completed.preferences.openDefaultPetOnLaunch, true); +assert.equal(completed.preferences.speechBubblesEnabled, true); +assert.equal(completed.preferences.petScale, 1); +assert.deepEqual(completed.pets, state.pets); +assert.equal(state.preferences.onboardingCompleted, false); + +const preferencePatch = { + ...completed.preferences, + speechBubblesEnabled: true, +}; +assert.equal(normalizeOnboardingCompleted(preferencePatch), true); +assert.equal(preferencePatch.defaultPetId, "built-in"); +assert.equal(preferencePatch.openDefaultPetOnLaunch, true); +assert.equal(preferencePatch.speechBubblesEnabled, true); + +assert.equal(defaultPetScale, 0.56); +assert.deepEqual(petScaleOptions.map((option) => option.value), [0.44, 0.56, 0.72]); +assert.equal(normalizePetScale(0.44), 0.44); +assert.equal(normalizePetScale(0.56), 0.56); +assert.equal(normalizePetScale(0.72), 0.72); +assert.equal(normalizePetScale(1), defaultPetScale); +assert.equal(normalizePetScale("0.56"), defaultPetScale); +assert.equal(normalizePetScale(Number.NaN), defaultPetScale); +assert.equal(normalizePetScale(Number.POSITIVE_INFINITY), defaultPetScale); +assert.equal(normalizePetScale(undefined), defaultPetScale); + +console.error("Onboarding state validation passed."); diff --git a/apps/desktop/src/check-opencode-desktop-setup.ts b/apps/desktop/src/check-opencode-desktop-setup.ts new file mode 100644 index 00000000..9c3aa079 --- /dev/null +++ b/apps/desktop/src/check-opencode-desktop-setup.ts @@ -0,0 +1,60 @@ +import assert from "node:assert/strict"; +import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; + +import { mapAsarPathToUnpacked } from "@open-pets/claude"; +import { doctorOpenCodeGlobalSetup, parseOpenCodeConfig, prepareOpenCodeGlobalRemove, prepareOpenCodeGlobalSetup, writePreparedOpenCodeGlobalRemove, writePreparedOpenCodeGlobalSetup } from "@open-pets/opencode"; + +const root = mkdtempSync(join(tmpdir(), "openpets-desktop-opencode-")); + +try { + const globalDir = join(root, "opencode-global"); + const bundledCli = mapAsarPathToUnpacked(join(root, "OpenPets.app", "Contents", "Resources", "app.asar", "node_modules", "@open-pets", "cli", "dist", "index.js")); + + assert.equal(doctorOpenCodeGlobalSetup(globalDir).status, "not_installed"); + + const install = prepareOpenCodeGlobalSetup({ + configDir: globalDir, + petId: "fixer", + cliVersion: "1.2.3", + pluginVersion: "4.5.6", + commandMode: "bundled", + cliEntryPath: bundledCli, + }); + + assert.equal(install.configPath, join(globalDir, "opencode.jsonc")); + assert.equal(install.instructionPath, join(globalDir, "openpets.md")); + assert.match(install.configWrite.content, /app\.asar\.unpacked/); + assert.doesNotMatch(install.configWrite.content, /app\.asar(?!\.unpacked)/); + assert.match(install.configWrite.content, /@open-pets\/opencode@4\.5\.6/); + + const preview = parseOpenCodeConfig(install.configWrite.content); + assert.equal(preview.ok, true, "desktop OpenCode preview must parse as JSONC without JSON.parse."); + const previewConfig = preview.value as { readonly mcp?: { readonly openpets?: { readonly command?: readonly string[] } }; readonly plugin?: readonly unknown[] }; + assert.deepEqual(previewConfig.mcp?.openpets?.command, ["node", bundledCli, "mcp", "--pet", "fixer"]); + assert.deepEqual(previewConfig.plugin, [["@open-pets/opencode@4.5.6", { pet: "fixer" }]]); + + writePreparedOpenCodeGlobalSetup(install); + assert.equal(doctorOpenCodeGlobalSetup(globalDir).status, "installed"); + assert.match(readFileSync(join(globalDir, "openpets.md"), "utf8"), /OPENPETS:START/); + + const remove = prepareOpenCodeGlobalRemove(globalDir); + assert.equal(remove.configWrites.length, 1); + writePreparedOpenCodeGlobalRemove(remove); + assert.equal(doctorOpenCodeGlobalSetup(globalDir).status, "not_installed"); + + const commentedGlobalDir = join(root, "commented-global"); + mkdirSync(commentedGlobalDir); + writeFileSync(join(commentedGlobalDir, "opencode.jsonc"), `{ + // user comment must not block desktop preview planning + "theme": "dark" + }\n`, "utf8"); + const commented = prepareOpenCodeGlobalSetup({ configDir: commentedGlobalDir, petId: "fixer", cliVersion: "1.2.3", pluginVersion: "4.5.6" }); + assert.equal(parseOpenCodeConfig(commented.configWrite.content).ok, true); + assert.match(commented.configWrite.content, /user comment/); +} finally { + rmSync(root, { recursive: true, force: true }); +} + +console.error("OpenCode desktop setup validation passed."); diff --git a/apps/desktop/src/check-packaging-contract.ts b/apps/desktop/src/check-packaging-contract.ts new file mode 100644 index 00000000..1eef05dc --- /dev/null +++ b/apps/desktop/src/check-packaging-contract.ts @@ -0,0 +1,340 @@ +import assert from "node:assert/strict"; +import { spawnSync } from "node:child_process"; +import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, writeFileSync } from "node:fs"; +import { dirname, isAbsolute, join, relative, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +import { allowedReactions } from "./local-ipc-protocol.js"; +import { pickReactionMessage, reactionMessagePools } from "./reaction-messages.js"; + +const distDir = dirname(fileURLToPath(import.meta.url)); +const appDir = dirname(distDir); +const repoRoot = resolve(appDir, "../.."); +const packageJson = JSON.parse(readFileSync(join(appDir, "package.json"), "utf8")) as { scripts?: Record; dependencies?: Record; description?: string; author?: string }; +const rootPackageJson = JSON.parse(readFileSync(join(repoRoot, "package.json"), "utf8")) as { scripts?: Record }; +const builderConfigPath = join(appDir, "electron-builder.yml"); +const builderConfig = readFileSync(builderConfigPath, "utf8"); + +assert.equal(packageJson.description, "OpenPets tray-first desktop companion app."); +assert.equal(packageJson.author, "OpenPets"); +assert.match(packageJson.scripts?.package ?? "", /node scripts\/clean-package-output\.cjs && electron-builder/); +assert.match(packageJson.scripts?.["package:dir"] ?? "", /node scripts\/clean-package-output\.cjs && electron-builder --dir/); +assert.equal(rootPackageJson.scripts?.["package:desktop:dir"], "pnpm build && pnpm --filter @open-pets/desktop package:dir"); +assert.equal(packageJson.dependencies?.["@open-pets/claude"], "workspace:*"); +assert.equal(packageJson.dependencies?.["@open-pets/cli"], "workspace:*"); +assert.equal(packageJson.dependencies?.["@open-pets/mcp"], "workspace:*"); +assert.equal(packageJson.dependencies?.["@open-pets/opencode"], "workspace:*"); +assert.equal(packageJson.dependencies?.["@open-pets/agent-events"], "workspace:*"); +assert.match(builderConfig, /appId:\s*dev\.openpets\.app/); +assert.match(builderConfig, /productName:\s*OpenPets/); +assert.match(builderConfig, /output:\s*dist-electron/); +assert.match(builderConfig, /publish:\s*null/); +assert.match(builderConfig, /asar:\s*true/); +assert.match(builderConfig, /asarUnpack:/); +assert.match(builderConfig, /node_modules\/\*\*/); +assert.match(builderConfig, /dist\/\*\*/); +assert.match(builderConfig, /preload\.cjs/); +assert.match(builderConfig, /pet-preload\.cjs/); +assert.match(builderConfig, /assets\/\*\*/); +assert.match(builderConfig, /icon:\s*assets\/app-icon\.icns/); + +assert.ok(existsSync(join(appDir, "preload.cjs")), "preload.cjs must exist for packaging."); +assert.ok(existsSync(join(appDir, "pet-preload.cjs")), "pet-preload.cjs must exist for pet window motion state updates."); +assert.ok(existsSync(join(appDir, "assets", "tray-icon.png")), "tray icon must exist for packaging."); +assert.ok(existsSync(join(appDir, "assets", "app-icon.icns")), "app icon must exist for packaging."); +assert.ok(existsSync(join(appDir, "assets", "app-icon.ico")), "Windows app icon must exist for packaging."); +assertNonEmptyFile(join(appDir, "assets", "default-pet-spritesheet.webp"), "default pet spritesheet must exist for packaging."); +assertNonEmptyFile(join(appDir, "assets", "default-pet-thumbnail.png"), "default pet thumbnail must exist for Pet Manager preview."); +assertNonEmptyFile(join(appDir, "assets", "onboarding-logo.webp"), "onboarding logo asset must exist for packaging."); +assertNonEmptyFile(join(appDir, "assets", "onboarding-pets.webp"), "onboarding pet scene asset must exist for packaging."); +for (const icon of ["claude.svg", "cursor.svg", "opencode.svg", "vscode.svg", "windsurf.svg", "zed.svg"]) { + assertSafeBundledSvg(join(appDir, "assets", "integrations", icon), `integration icon must be safe and packaged: ${icon}`); +} +assert.match(readFileSync(join(appDir, "src", "assets.ts"), "utf8"), /assets["']?,\s*["']tray-icon\.png|join\("assets", "tray-icon\.png"\)/, "tray icon code must keep using assets/tray-icon.png."); +const petWindowSource = readFileSync(join(appDir, "src", "pet-window.ts"), "utf8"); +const petPreloadSource = readFileSync(join(appDir, "pet-preload.cjs"), "utf8"); +const reactionMessagesSource = readFileSync(join(appDir, "src", "reaction-messages.ts"), "utf8"); +const displaySource = readFileSync(join(appDir, "src", "display.ts"), "utf8"); +const updateCheckerSource = readFileSync(join(appDir, "src", "update-checker.ts"), "utf8"); +const traySource = readFileSync(join(appDir, "src", "tray.ts"), "utf8"); +const windowsSource = readFileSync(join(appDir, "src", "windows.ts"), "utf8"); +const agentSetupSource = readFileSync(join(appDir, "src", "agent-setup.ts"), "utf8"); +const preloadSource = readFileSync(join(appDir, "preload.cjs"), "utf8"); +const mappingDoc = readFileSync(join(repoRoot, "docs", "mapping.md"), "utf8"); +assert.match(petWindowSource, /default-pet-spritesheet\.webp/, "default pet renderer must reference the bundled WebP spritesheet asset."); +assert.match(petWindowSource, /columns:\s*8/, "default pet renderer must keep the real catalog sprite sheet column count."); +assert.match(petWindowSource, /rows:\s*9/, "default pet renderer must keep the real catalog sprite sheet row count."); +assert.match(petWindowSource, /frameWidth:\s*192/, "default pet renderer must keep the universal Codex frame width."); +assert.match(petWindowSource, /frameHeight:\s*208/, "default pet renderer must keep the universal Codex frame height."); +assert.ok(petWindowSource.includes("defaultPetSprite.frameWidth * defaultPetSprite.columns") && petWindowSource.includes("defaultPetSprite.frameHeight * defaultPetSprite.rows"), "pet renderer must derive universal spritesheet dimensions from frame size and row/column counts."); +for (const state of ["idle", "running-right", "running-left", "waving", "jumping", "failed", "waiting", "running", "review"]) { + assert.match(petWindowSource, new RegExp(`["']?${state}["']?:\\s*\\{\\s*row:`), `pet renderer must define universal sprite state: ${state}`); +} +for (const reaction of ["idle", "thinking", "working", "editing", "running", "testing", "waiting", "waving", "success", "error", "celebrating"]) { + assert.match(petWindowSource, new RegExp(`${reaction}:\\s*["']`), `pet renderer must map reaction to sprite state: ${reaction}`); + assert.match(reactionMessagesSource, new RegExp(`${reaction}:\\s*\\[`), `reaction messages must define a pool for: ${reaction}`); +} +assert.match(petWindowSource, /satisfies Record/, "reaction-to-sprite-state mapping must be exhaustive over OpenPetsReaction."); +assert.match(reactionMessagesSource, /satisfies Record/, "reaction-only bubble message pools must be exhaustive over OpenPetsReaction."); +assert.match(petWindowSource, /pickReactionMessage\(display\.reaction\)/, "reaction-only bubbles must render randomized messages instead of raw lowercase reaction ids."); +assert.match(petWindowSource, /function preparePetTransientDisplay/, "reaction-only bubbles must prepare a stable random message before rerenders."); +assert.match(petWindowSource, /function mergePetTransientDisplay/, "reaction-only events must not replace an active explicit message bubble."); +assert.match(petWindowSource, /function getTransientReactionAnimationMs/, "finite reaction animations must expose their own shorter lifetime."); +assert.match(petWindowSource, /function clearTransientReaction/, "finite reaction animations must be clearable while the bubble remains visible."); +assert.match(petWindowSource, /webContents\.send\("openpets:pet-reaction-state"/, "finite reaction animations must clear sprite state without reloading the bubble."); +assert.match(petPreloadSource, /openpets:pet-reaction-state/, "pet preload must accept in-place reaction state updates."); +assert.match(displaySource, /width:\s*220/, "pet windows must stay tightly bounded around pet and bubble."); +assert.match(displaySource, /height:\s*320/, "pet windows must be tall enough for adaptive long message bubbles at large pet scale without becoming a huge click shield."); +assert.match(petWindowSource, /function getBubbleClassName/, "pet bubbles must classify explicit messages by length."); +assert.match(petWindowSource, /is-long-message/, "pet bubbles must have a long-message layout."); +assert.match(petWindowSource, /is-very-long-message/, "pet bubbles must have a very-long-message layout for 140-character say messages."); +assert.match(petWindowSource, /body \{ -webkit-app-region: no-drag; pointer-events: none; \}/, "transparent pet window background must not capture clicks or drags."); +assert.match(petWindowSource, /function installMousePassthroughAndDrag/, "pet windows must install real mouse passthrough and controlled drag behavior."); +assert.match(petWindowSource, /setIgnoreMouseEvents\(true, \{ forward: true \}\)/, "transparent pet window background must use OS-level mouse passthrough."); +assert.match(petWindowSource, /setIgnoreMouseEvents\(false\)/, "visible pet and bubble hit targets must re-enable mouse handling."); +assert.match(petWindowSource, /\.pet-shell[\s\S]*?-webkit-app-region: no-drag; cursor: grab;/, "pet dragging must avoid Electron draggable regions so right-click context menus work."); +assert.match(petPreloadSource, /openpets:pet-hit-test/, "pet preload must report visible pet and bubble hit testing for passthrough."); +assert.match(petPreloadSource, /openpets:pet-drag-start/, "pet preload must start controlled pet dragging from the sprite."); +assert.match(petWindowSource, /function installPetContextMenu/, "pet windows must install a native right-click context menu."); +assert.match(petWindowSource, /webContents\.on\("context-menu"/, "pet context menu must be handled in the Electron main process."); +assert.match(petWindowSource, /Menu\.buildFromTemplate/, "pet context menu must use a small native Electron menu."); +assert.doesNotMatch(petPreloadSource, /setIgnoreMouseEvents/, "pet preload must not call Electron window APIs directly."); +const agentPetControllerSource = readFileSync(join(appDir, "src", "agent-pet-controller.ts"), "utf8"); +const localIpcSource = readFileSync(join(appDir, "src", "local-ipc.ts"), "utf8"); +assert.match(agentPetControllerSource, /dismissedAgentPets = new Set/, "agent pets must remember manual close while leases remain active."); +assert.match(agentPetControllerSource, /dismissAgentPetForActiveLease/, "agent pet context-menu close must dismiss the pet for the active lease."); +assert.match(agentPetControllerSource, /dismissedAgentPets\.has\(petId\)/, "dismissed agent pets must not reopen on later same-lease reactions."); +assert.match(agentPetControllerSource, /function clearAgentPetLeaseState/, "agent pet lease cleanup must clear dismissal, timers, and hidden transient state."); +assert.match(localIpcSource, /handleLastExplicitLease/, "agent pet dismissal must clear when the explicit lease group ends."); +assert.match(localIpcSource, /clearAgentPetLeaseState\(petId\)/, "last explicit lease cleanup must reset dismissed agent pet state."); +assert.match(localIpcSource, /reason: applied\.reason/, "IPC responses must report dismissed explicit pet events as not shown."); +assert.match(updateCheckerSource, /alvinunreal\/openpets/, "GitHub release notice must check the public OpenPets repository."); +assert.match(updateCheckerSource, /api\.github\.com\/repos\/\$\{githubRepository\}\/releases\/latest/, "update checker must use GitHub latest release API."); +assert.match(updateCheckerSource, /shell\.openExternal\(url\)/, "update action must open the GitHub release page externally."); +assert.match(traySource, /Update available:/, "tray menu must surface available updates."); +assert.match(windowsSource, /openpets:check-for-updates/, "settings window must be able to trigger update checks."); +assert.match(windowsSource, /openpets:open-update-release-page/, "settings window must be able to open the release page."); +assert.match(windowsSource, /id="check-for-updates"/, "settings UI must include a Check for updates button."); +assert.match(windowsSource, /id="open-update-release"/, "settings UI must include an Open release button."); +assert.match(preloadSource, /checkForUpdates/, "settings preload must expose update checks."); +assert.match(preloadSource, /\{ label: "Thinking", state: "thinking" \}/, "Pet Manager mini previews must use a non-idle thinking/review state because the hero already shows idle."); +assert.match(preloadSource, /\{ label: "Happy", state: "happy" \}/, "Pet Manager mini previews must request the happy/jumping row."); +assert.match(preloadSource, /\{ label: "Wave", state: "wave" \}/, "Pet Manager mini previews must request the waving row."); +assert.doesNotMatch(preloadSource, /\{ label: "Idle", state: "idle" \}/, "Pet Manager mini previews must not duplicate the hero idle preview."); +assert.match(preloadSource, /pm-mini-sprite[\s\S]*animated: true/, "Pet Manager mini state previews must animate spritesheet states."); +assert.match(preloadSource, /pm-sprite-state-\$\{state\}/, "Pet Manager sprite frames must apply state-specific row classes."); +assert.match(windowsSource, /pm-sprite-state-thinking \{ background-position: 0 100%; \}/, "Pet Manager thinking preview must use universal spritesheet row 8."); +assert.match(windowsSource, /pm-sprite-state-wave \{ background-position: 0 37\.5%; \}/, "Pet Manager wave preview must use universal spritesheet row 3."); +assert.match(windowsSource, /pm-sprite-state-happy \{ background-position: 0 50%; \}/, "Pet Manager happy preview must use universal spritesheet row 4."); +assert.match(windowsSource, /pm-sprite-state-thinking\.pm-animate-sprite \{ animation: pm-sprite-thinking 1\.55s steps\(6\) infinite; \}/, "Pet Manager thinking preview must animate the 6-frame review row at a calm speed."); +assert.match(windowsSource, /pm-sprite-state-wave\.pm-animate-sprite \{ animation: pm-sprite-wave 1\.25s steps\(4\) infinite; \}/, "Pet Manager wave preview must animate the 4-frame waving row at a calm speed."); +assert.match(windowsSource, /pm-sprite-state-happy\.pm-animate-sprite \{ animation: pm-sprite-happy 1\.35s steps\(5\) infinite; \}/, "Pet Manager happy preview must animate the 5-frame jumping row at a calm speed."); +assert.match(windowsSource, /@keyframes pm-sprite-thinking/, "Pet Manager must define thinking row animation keyframes."); +assert.match(windowsSource, /@keyframes pm-sprite-wave/, "Pet Manager must define wave row animation keyframes."); +assert.match(windowsSource, /@keyframes pm-sprite-happy/, "Pet Manager must define happy row animation keyframes."); +assert.match(petWindowSource, /max-width:\s*min\(204px/, "very long message bubbles must stay capped within the tight pet window."); +assert.match(petWindowSource, /-webkit-line-clamp:\s*9/, "very long message bubbles must allow enough visible lines."); +assert.match(petWindowSource, /createSpriteStateCss\("\.sprite"\)/, "built-in sprite CSS must react to reaction state."); +assert.match(petWindowSource, /createSpriteStateCss\("\.installed-sprite"\)/, "installed sprite CSS must react to reaction state."); +assert.match(petWindowSource, /html\[data-motion-state=\"\$\{motion\}\"\] \$\{selector\}/, "sprite CSS must let drag motion override reaction state."); +assert.match(petWindowSource, /\.sprite, \.installed-sprite, \.bubble/, "reduced-motion CSS must include built-in and installed sprites."); +assert.match(petWindowSource, /function createAgentPetWindow[\s\S]*?installMotionStatePublisher\(window\)/, "agent pet windows must publish motion state so dragged non-default pets run."); +assert.match(petWindowSource, /loadExplicitPetContent[\s\S]*?state\.preferences\.petScale/, "explicit agent pet windows must use the saved pet scale preference."); +assert.match(mappingDoc, /\| 3 \| `waving` \| `waving`, Claude `Notification`\. \|/, "mapping docs must describe waving animation row and notification mapping."); +assert.doesNotMatch(mappingDoc, /bubble-only|currently \*\*bubble states\*\*/i, "mapping docs must not describe reactions as bubble-only."); +for (const reaction of allowedReactions) { + const pool = reactionMessagePools[reaction]; + assert.ok(pool.length >= 20, `reaction message pool must be extensive for: ${reaction}`); + for (const message of pool) { + assert.match(message, /^[A-Z]/, `reaction message must start uppercase: ${message}`); + assert.doesNotMatch(message, /[\r\n]/, `reaction message must be single-line: ${message}`); + assert.ok(message.length <= 36, `reaction message must stay bubble-friendly: ${message}`); + } +} +assert.equal(pickReactionMessage("success", () => 0), reactionMessagePools.success[0], "reaction message picking must be deterministic when random is injected."); +const agentSetupHtmlSource = windowsSource.match(/function createAgentSetupHtml[\s\S]*?function createSettingsHtml/)?.[0] ?? ""; +assert.match(windowsSource, /onboarding-logo\.webp/, "onboarding greeting must reference the bundled OpenPets logo asset."); +assert.match(windowsSource, /onboarding-pets\.webp/, "onboarding greeting must reference the bundled pet scene asset."); +assert.ok(windowsSource.includes(`content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-src 'none'"`), "onboarding image CSP must stay data-only for embedded packaged assets."); +assert.doesNotMatch(windowsSource, /data-default-pet-sprite-src|createAssetDataUrl\("default-pet-spritesheet\.webp"/, "Pet Manager must not embed the large default spritesheet into the task-window data URL."); +assert.match(windowsSource, /default-pet-thumbnail\.png/, "Pet Manager must use the small bundled default pet thumbnail for built-in preview."); +assert.ok(windowsSource.includes(`content="default-src 'none'; img-src data: https://openpets.dev; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-src 'none'"`), "Pet Manager image CSP must stay scoped to data URLs and openpets.dev catalog previews."); +assert.match(windowsSource, /petManagerWindowWidth\s*=\s*1160/, "Pet Manager should use the approved wider 1160px default window width."); +assert.match(windowsSource, /petManagerWindowHeight\s*=\s*780/, "Pet Manager should use the approved taller 780px default window height."); +assert.match(agentSetupHtmlSource, /content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-src 'none'"/, "Agent Setup image CSP must stay data-only for the bundled logo asset."); +assert.match(windowsSource, /integrations\/claude\.svg/, "Agent Setup integrations hub must use bundled integration SVG assets."); +assert.match(windowsSource, /integration-opencode-status/, "Agent Setup must show an enabled OpenCode integration card."); +assert.match(windowsSource, /opencode-detail-view/, "Agent Setup must include an OpenCode detail pane."); +assert.match(windowsSource, /Desktop OpenCode setup is global/, "OpenCode desktop setup must clearly warn that it is global."); +assert.match(preloadSource, /opencode-install/, "Agent Setup preload must bind OpenCode install actions."); +assert.match(preloadSource, /setIconButtonContent\(opencodeInstall, "spinner", "Installing…"\)/, "OpenCode integration-card install button must show a loading spinner."); +assert.match(preloadSource, /opencode-remove/, "Agent Setup preload must bind OpenCode remove actions."); +assert.match(preloadSource, /opencode-copy-config/, "Agent Setup preload must bind OpenCode copy-preview actions."); +assert.match(preloadSource, /opencodePreview/, "Agent Setup preload must render OpenCode previews."); +assert.match(preloadSource, /cleanupConfigPaths/, "OpenCode preview must disclose stale overlay cleanup config paths."); +assert.match(preloadSource, /configPreview/, "OpenCode preview copy must use the prepared config preview shape."); +assert.doesNotMatch(agentSetupSource, /JSON\.parse\(prepared\.configWrite\.content\)/, "OpenCode desktop preview must parse JSONC planned config safely, not JSON.parse."); +assert.doesNotMatch(agentSetupHtmlSource, /https?:\/\//, "Agent Setup must not allow or reference remote integration assets."); +assert.match(windowsSource, /agentSetupWindowWidth\s*=\s*1160/, "Agent Setup should use the approved wider 1160px default window width."); +assert.match(windowsSource, /agentSetupWindowHeight\s*=\s*780/, "Agent Setup should use the approved taller 780px default window height."); +assert.match(windowsSource, /refreshDefaultPetContent\(\);\s*refreshAgentPetContent\(\);/, "pet scale preference changes must refresh default and agent pet windows."); +assert.ok(existsSync(join(appDir, "scripts", "clean-package-output.cjs")), "package output cleanup helper must exist."); +assert.ok(existsSync(join(distDir, "main.js")), "desktop main build output must exist before packaging checks run."); +assert.ok(existsSync(join(repoRoot, "packages", "claude", "dist", "index.js")), "@open-pets/claude must be built before packaging."); +assert.ok(existsSync(join(repoRoot, "packages", "client", "dist", "index.js")), "@open-pets/client must be built before packaging."); +assert.ok(existsSync(join(repoRoot, "packages", "mcp", "dist", "index.js")), "@open-pets/mcp must be built before packaging."); +assert.ok(existsSync(join(repoRoot, "packages", "cli", "dist", "index.js")), "@open-pets/cli must be built before packaging."); +assert.ok(existsSync(join(repoRoot, "packages", "opencode", "dist", "plugin.js")), "@open-pets/opencode plugin must be built before packaging."); +assert.ok(existsSync(join(repoRoot, "packages", "agent-events", "dist", "index.js")), "@open-pets/agent-events must be built before packaging."); + +if (process.argv.includes("--output")) { + checkPackageOutput(); +} else { + checkCleanupHelper(); +} + +console.error("Packaging contract validation passed."); + +function checkPackageOutput(): void { + const outputDir = join(appDir, "dist-electron"); + assert.ok(existsSync(outputDir), "dist-electron output must exist after packaging."); + assertNoForbiddenOutput(outputDir); + assertNoEscapingSymlinks(outputDir); + + const appResourceDir = findPackagedAppResourceDir(outputDir); + assert.ok(appResourceDir, "packaged app resources directory was not found."); + assert.ok(existsSync(join(appResourceDir, "app.asar")), "packaged app.asar is missing."); + const appContents = join(appResourceDir, "app.asar.unpacked"); + assert.ok(existsSync(appContents), "packaged app.asar.unpacked resources are missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "claude", "dist", "index.js")), "packaged @open-pets/claude runtime is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "claude", "dist", "cli.js")), "packaged @open-pets/claude CLI runtime is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "claude", "package.json")), "packaged @open-pets/claude package metadata is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "client", "dist", "index.js")), "packaged @open-pets/client runtime is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "client", "package.json")), "packaged @open-pets/client package metadata is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "mcp", "dist", "index.js")), "packaged @open-pets/mcp runtime is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "mcp", "package.json")), "packaged @open-pets/mcp package metadata is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "cli", "dist", "index.js")), "packaged @open-pets/cli runtime is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "opencode", "dist", "plugin.js")), "packaged @open-pets/opencode plugin runtime is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "opencode", "package.json")), "packaged @open-pets/opencode package metadata is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@open-pets", "agent-events", "dist", "index.js")), "packaged @open-pets/agent-events runtime is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "@modelcontextprotocol", "sdk")), "packaged MCP SDK runtime dependency is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "zod", "index.cjs")), "packaged zod runtime dependency is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "yauzl", "index.js")), "packaged yauzl runtime dependency is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "yauzl", "fd-slicer.js")), "packaged yauzl fd-slicer helper is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "buffer-crc32", "index.js")), "packaged yauzl transitive dependency buffer-crc32 is missing."); + assert.ok(existsSync(join(appContents, "node_modules", "pend", "index.js")), "packaged yauzl transitive dependency pend is missing."); + assertRegularNonSymlink(join(appContents, "node_modules", "@open-pets", "mcp", "dist", "index.js")); + assertRegularNonSymlink(join(appContents, "node_modules", "@open-pets", "cli", "dist", "index.js")); + assertRegularNonSymlink(join(appContents, "node_modules", "@open-pets", "opencode", "dist", "plugin.js")); + assertRegularNonSymlink(join(appContents, "node_modules", "@open-pets", "claude", "dist", "cli.js")); + assertCommandSmoke(appContents); +} + +function findPackagedAppResourceDir(outputDir: string): string | null { + const candidates: string[] = []; + collectDirectories(outputDir, candidates, 4); + + for (const dir of candidates) { + if (existsSync(join(dir, "app.asar")) || existsSync(join(dir, "app", "dist", "main.js"))) { + return dir; + } + } + + return null; +} + +function collectDirectories(dir: string, result: string[], depth: number): void { + if (depth < 0 || !existsSync(dir)) return; + result.push(dir); + for (const entry of readdirSync(dir, { withFileTypes: true })) { + if (entry.isDirectory()) collectDirectories(join(dir, entry.name), result, depth - 1); + } +} + +function assertNoForbiddenOutput(outputDir: string): void { + const forbiddenSegments = new Set(["v1", "web", ".env", ".claude"]); + for (const path of walk(outputDir)) { + const rel = relative(outputDir, path); + const segments = rel.split(/[\\/]/g); + assert.ok(!segments.includes("docs") || !segments.includes("phases"), `package output must not include phase docs: ${rel}`); + for (const segment of segments) { + assert.ok(!forbiddenSegments.has(segment) && !segment.startsWith(".env"), `package output contains forbidden path segment: ${rel}`); + } + } +} + +function assertNoEscapingSymlinks(outputDir: string): void { + const outputReal = realpathSync(outputDir); + for (const path of walk(outputDir)) { + const stat = lstatSync(path); + if (!stat.isSymbolicLink()) continue; + const target = realpathSync(path); + assert.ok(isInside(outputReal, target), `package output symlink escapes package directory: ${relative(outputDir, path)} -> ${target}`); + } +} + +function walk(dir: string): string[] { + const result: string[] = []; + for (const entry of readdirSync(dir, { withFileTypes: true })) { + const path = join(dir, entry.name); + result.push(path); + if (entry.isDirectory()) { + result.push(...walk(path)); + } + } + return result; +} + +function isInside(parent: string, child: string): boolean { + const rel = relative(parent, child); + return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel)); +} + +function checkCleanupHelper(): void { + const sentinel = join(appDir, "dist-electron", ".openpets-clean-sentinel"); + mkdirSync(dirname(sentinel), { recursive: true }); + writeFileSync(sentinel, "stale", "utf8"); + const result = spawnSync(process.execPath, [join(appDir, "scripts", "clean-package-output.cjs")], { cwd: appDir, encoding: "utf8" }); + assert.equal(result.status, 0, `cleanup helper failed: ${result.stderr || result.stdout}`); + assert.ok(!existsSync(sentinel), "cleanup helper did not remove stale package output sentinel."); +} + +function assertRegularNonSymlink(path: string): void { + assert.ok(!lstatSync(path).isSymbolicLink(), `packaged command file must not be a symlink: ${path}`); + assert.ok(lstatSync(path).isFile(), `packaged command file must be regular: ${path}`); +} + +function assertNonEmptyFile(path: string, message: string): void { + assert.ok(existsSync(path), message); + const stat = lstatSync(path); + assert.ok(stat.isFile(), message); + assert.ok(stat.size > 0, message); +} + +function assertSafeBundledSvg(path: string, message: string): void { + assertNonEmptyFile(path, message); + const source = readFileSync(path, "utf8"); + assert.doesNotMatch(source, / createParsedUpdateStatus("1.0.0", { tag_name: "release" }, 125, repo, releasesUrl)); + +console.error("Update checker validation passed."); diff --git a/apps/desktop/src/check-zip-safety.ts b/apps/desktop/src/check-zip-safety.ts new file mode 100644 index 00000000..d4ce4250 --- /dev/null +++ b/apps/desktop/src/check-zip-safety.ts @@ -0,0 +1,142 @@ +import { validateZipEntryName, assertRejectsPath, ZipEntryPathTracker, hasSupportedZipMagic } from "./zip-safety.js"; +import yauzl from "yauzl"; + +validateZipEntryName("pet-package/"); +validateZipEntryName("pet-package/pet.json"); +validateZipEntryName("pet-package/spritesheet.webp"); +validateZipEntryName("pet.json"); +validateZipEntryName("spritesheet.webp"); + +const validTracker = new ZipEntryPathTracker(); +validTracker.accept("pet-package/"); +validTracker.accept("pet-package/pet.json"); +validTracker.accept("pet-package/spritesheet.webp"); + +const validFlatTracker = new ZipEntryPathTracker(); +validFlatTracker.accept("pet.json"); +validFlatTracker.accept("spritesheet.webp"); + +for (const unsafe of [ + "../pet.json", + "pet-package/../pet.json", + "./pet.json", + "/tmp/pet.json", + "C:/tmp/pet.json", + "pet-package\\pet.json", + "//server/share/pet.json", + "pet-package/pet.json\0.png", + "pet-package/extra.js", + "pet-package/nested/pet.json", + "pet-package//pet.json", +]) { + assertRejectsPath(unsafe); +} + +assertRejectsEntrySet(["pet-package/pet.json", "pet-package/pet.json"]); +assertRejectsEntrySet(["pet-package/pet.json", "pet-package/PET.json"]); +assertRejectsEntrySet(["pet-package/pet.json", "other-pet/spritesheet.webp"]); +assertRejectsEntrySet(["pet.json", "pet-package/spritesheet.webp"]); +assertRejectsEntrySet(["pet.json", "pet-package/"]); +assertRejectsEntrySet(["spritesheet.webp", "pet-package/"]); +assertRejectsEntrySet(["pet.json", "pet.json"]); +assertRejectsEntrySet(["pet.json", "PET.json"]); + +if (!hasSupportedZipMagic(Buffer.from([0x50, 0x4b, 0x03, 0x04]))) { + throw new Error("Valid local file zip signature was rejected."); +} + +if (hasSupportedZipMagic(Buffer.from("not a zip", "utf8"))) { + throw new Error("Non-zip content was accepted as a zip."); +} + +await assertYauzlStrictFileNamesRejects("pet-package\\pet.json"); + +console.log("Zip safety validation passed."); + +function assertRejectsEntrySet(entries: readonly string[]): void { + const tracker = new ZipEntryPathTracker(); + try { + for (const entry of entries) { + tracker.accept(entry); + } + } catch { + return; + } + + throw new Error(`Unsafe zip entry set was accepted: ${entries.join(", ")}`); +} + +async function assertYauzlStrictFileNamesRejects(fileName: string): Promise { + const buffer = createSingleEmptyFileZip(fileName); + + await new Promise((resolvePromise, rejectPromise) => { + yauzl.fromBuffer(buffer, { lazyEntries: true, strictFileNames: true, validateEntrySizes: true }, (error, zipFile) => { + if (error) { + resolvePromise(); + return; + } + + if (!zipFile) { + rejectPromise(new Error("yauzl did not return a zip file.")); + return; + } + + zipFile.on("error", () => resolvePromise()); + zipFile.on("entry", () => rejectPromise(new Error("yauzl strictFileNames accepted an unsafe file name."))); + zipFile.on("end", () => rejectPromise(new Error("yauzl strictFileNames ended without rejecting unsafe file name."))); + zipFile.readEntry(); + }); + }); +} + +function createSingleEmptyFileZip(fileName: string): Buffer { + const fileNameBytes = Buffer.from(fileName, "utf8"); + const local = Buffer.alloc(30 + fileNameBytes.length); + let offset = 0; + local.writeUInt32LE(0x04034b50, offset); offset += 4; + local.writeUInt16LE(20, offset); offset += 2; + local.writeUInt16LE(0, offset); offset += 2; + local.writeUInt16LE(0, offset); offset += 2; + local.writeUInt16LE(0, offset); offset += 2; + local.writeUInt16LE(0, offset); offset += 2; + local.writeUInt32LE(0, offset); offset += 4; + local.writeUInt32LE(0, offset); offset += 4; + local.writeUInt32LE(0, offset); offset += 4; + local.writeUInt16LE(fileNameBytes.length, offset); offset += 2; + local.writeUInt16LE(0, offset); offset += 2; + fileNameBytes.copy(local, offset); + + const central = Buffer.alloc(46 + fileNameBytes.length); + offset = 0; + central.writeUInt32LE(0x02014b50, offset); offset += 4; + central.writeUInt16LE(20, offset); offset += 2; + central.writeUInt16LE(20, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt32LE(0, offset); offset += 4; + central.writeUInt32LE(0, offset); offset += 4; + central.writeUInt32LE(0, offset); offset += 4; + central.writeUInt16LE(fileNameBytes.length, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt16LE(0, offset); offset += 2; + central.writeUInt32LE(0, offset); offset += 4; + central.writeUInt32LE(0, offset); offset += 4; + fileNameBytes.copy(central, offset); + + const end = Buffer.alloc(22); + offset = 0; + end.writeUInt32LE(0x06054b50, offset); offset += 4; + end.writeUInt16LE(0, offset); offset += 2; + end.writeUInt16LE(0, offset); offset += 2; + end.writeUInt16LE(1, offset); offset += 2; + end.writeUInt16LE(1, offset); offset += 2; + end.writeUInt32LE(central.length, offset); offset += 4; + end.writeUInt32LE(local.length, offset); offset += 4; + end.writeUInt16LE(0, offset); + + return Buffer.concat([local, central, end]); +} diff --git a/apps/desktop/src/claude-memory.ts b/apps/desktop/src/claude-memory.ts new file mode 100644 index 00000000..e34048e8 --- /dev/null +++ b/apps/desktop/src/claude-memory.ts @@ -0,0 +1,210 @@ +import { chmodSync, closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { randomUUID } from "node:crypto"; + +export interface ClaudeOpenPetsMemoryResult { + readonly changed: boolean; + readonly claudeMdPath: string; + readonly openPetsMemoryPath: string; +} + +export interface ClaudeOpenPetsMemoryStatus { + readonly status: "installed" | "not_installed" | "error"; + readonly message: string; + readonly claudeMdPath: string; + readonly openPetsMemoryPath: string; +} + +export const openPetsClaudeImportLine = "@~/.claude/openpets.md"; + +const openPetsImportStart = ""; +const openPetsImportEnd = ""; +const openPetsMemoryStart = ""; +const openPetsMemoryEnd = ""; +const maxClaudeMemoryBytes = 1024 * 1024; + +export function installClaudeOpenPetsMemory(homeDir: string): ClaudeOpenPetsMemoryResult { + const paths = getClaudeMemoryPaths(homeDir); + assertSafeClaudeMemoryPaths(paths.claudeDir, paths.claudeMdPath, paths.openPetsMemoryPath); + mkdirSync(paths.claudeDir, { recursive: true, mode: 0o700 }); + assertSafeClaudeMemoryPaths(paths.claudeDir, paths.claudeMdPath, paths.openPetsMemoryPath); + + const currentOpenPetsMemory = readTextFile(paths.openPetsMemoryPath); + const nextOpenPetsMemory = upsertOpenPetsMemoryBlock(currentOpenPetsMemory, createOpenPetsMemoryBlock()); + const openPetsChanged = currentOpenPetsMemory !== nextOpenPetsMemory; + if (openPetsChanged) writePrivateTextFile(paths.openPetsMemoryPath, nextOpenPetsMemory); + + const currentClaudeMd = readTextFile(paths.claudeMdPath); + const nextClaudeMd = ensureManagedImport(currentClaudeMd); + const claudeMdChanged = currentClaudeMd !== nextClaudeMd; + if (claudeMdChanged) writePrivateTextFile(paths.claudeMdPath, nextClaudeMd); + + return { changed: openPetsChanged || claudeMdChanged, claudeMdPath: paths.claudeMdPath, openPetsMemoryPath: paths.openPetsMemoryPath }; +} + +export function uninstallClaudeOpenPetsMemory(homeDir: string): ClaudeOpenPetsMemoryResult { + const paths = getClaudeMemoryPaths(homeDir); + assertSafeClaudeMemoryPaths(paths.claudeDir, paths.claudeMdPath, paths.openPetsMemoryPath); + + let changed = false; + const currentClaudeMd = readTextFile(paths.claudeMdPath); + const hasUserOwnedImport = hasImportLineOutsideManagedBlock(currentClaudeMd); + const nextClaudeMd = removeManagedImport(currentClaudeMd); + if (currentClaudeMd !== nextClaudeMd) { + writePrivateTextFile(paths.claudeMdPath, nextClaudeMd); + changed = true; + } + + const currentOpenPetsMemory = readTextFile(paths.openPetsMemoryPath); + if (currentOpenPetsMemory) { + const nextOpenPetsMemory = removeOpenPetsMemoryBlock(currentOpenPetsMemory); + if (nextOpenPetsMemory.trim().length === 0) { + if (hasUserOwnedImport) { + writePrivateTextFile(paths.openPetsMemoryPath, ""); + } else { + rmSync(paths.openPetsMemoryPath, { force: true }); + } + changed = true; + } else if (nextOpenPetsMemory !== currentOpenPetsMemory) { + writePrivateTextFile(paths.openPetsMemoryPath, nextOpenPetsMemory); + changed = true; + } + } + + return { changed, claudeMdPath: paths.claudeMdPath, openPetsMemoryPath: paths.openPetsMemoryPath }; +} + +export function doctorClaudeOpenPetsMemory(homeDir: string): ClaudeOpenPetsMemoryStatus { + const paths = getClaudeMemoryPaths(homeDir); + try { + assertSafeClaudeMemoryPaths(paths.claudeDir, paths.claudeMdPath, paths.openPetsMemoryPath); + const claudeMd = readTextFile(paths.claudeMdPath); + const openPetsMemory = readTextFile(paths.openPetsMemoryPath); + const hasImport = hasManagedImport(claudeMd) || hasImportLineOutsideManagedBlock(claudeMd); + const hasInstructions = createOpenPetsBlockPattern().test(openPetsMemory) || /openpets_say|OpenPets MCP/i.test(openPetsMemory); + if (hasImport && hasInstructions) { + return { status: "installed", message: "Claude will load OpenPets instructions from ~/.claude/openpets.md.", claudeMdPath: paths.claudeMdPath, openPetsMemoryPath: paths.openPetsMemoryPath }; + } + if (hasImport) { + return { status: "not_installed", message: "Claude imports OpenPets instructions, but the OpenPets memory file is missing or incomplete.", claudeMdPath: paths.claudeMdPath, openPetsMemoryPath: paths.openPetsMemoryPath }; + } + if (hasInstructions) { + return { status: "not_installed", message: "OpenPets instructions exist, but Claude is not importing them yet.", claudeMdPath: paths.claudeMdPath, openPetsMemoryPath: paths.openPetsMemoryPath }; + } + return { status: "not_installed", message: "Claude OpenPets instructions are not installed.", claudeMdPath: paths.claudeMdPath, openPetsMemoryPath: paths.openPetsMemoryPath }; + } catch (error) { + return { status: "error", message: error instanceof Error ? error.message : "Claude OpenPets instruction status is unavailable.", claudeMdPath: paths.claudeMdPath, openPetsMemoryPath: paths.openPetsMemoryPath }; + } +} + +export function getClaudeMemoryPaths(homeDir: string): { readonly claudeDir: string; readonly claudeMdPath: string; readonly openPetsMemoryPath: string } { + const claudeDir = join(homeDir, ".claude"); + return { + claudeDir, + claudeMdPath: join(claudeDir, "CLAUDE.md"), + openPetsMemoryPath: join(claudeDir, "openpets.md"), + }; +} + +export function createOpenPetsMemoryBlock(): string { + return `${openPetsMemoryStart}\n## OpenPets\n\nOpenPets MCP tools may be available.\n\nUse OpenPets as a short visible status channel for meaningful coding progress:\n- Use \`openpets_say\` when starting, completing, blocking, or needing review on non-trivial work.\n- Keep messages brief, user-facing, and non-sensitive.\n- Do not include code, logs, secrets, URLs, or file paths.\n- Use \`openpets_react\` for small visual or emotional feedback.\n- Use \`openpets_status\` only when checking availability or the targeted pet.\n- Do not spam every internal step.\n${openPetsMemoryEnd}\n`; +} + +export function ensureImportLine(source: string, importLine: string): string { + const lines = source.split(/\r?\n/); + const filtered = lines.filter((line) => line.trim() !== importLine); + const base = filtered.join("\n").replace(/\s*$/u, ""); + return base ? `${base}\n\n${importLine}\n` : `${importLine}\n`; +} + +export function ensureManagedImport(source: string): string { + const withoutManagedImports = removeManagedImport(source).replace(/\s*$/u, ""); + if (withoutManagedImports.split(/\r?\n/).some((line) => line.trim() === openPetsClaudeImportLine)) { + return withoutManagedImports ? `${withoutManagedImports}\n` : ""; + } + const block = `${openPetsImportStart}\n${openPetsClaudeImportLine}\n${openPetsImportEnd}`; + return withoutManagedImports ? `${withoutManagedImports}\n\n${block}\n` : `${block}\n`; +} + +export function removeManagedImport(source: string): string { + return source.replace(createManagedImportPattern(), "").replace(/\n{3,}/g, "\n\n").replace(/\s*$/u, (match) => (match.includes("\n") ? "\n" : "")); +} + +export function removeImportLine(source: string, importLine: string): string { + return source + .split(/\r?\n/) + .filter((line) => line.trim() !== importLine) + .join("\n") + .replace(/\n{3,}/g, "\n\n") + .replace(/\s*$/u, (match) => (match.includes("\n") ? "\n" : "")); +} + +export function upsertOpenPetsMemoryBlock(source: string, block: string): string { + const withoutBlocks = source.replace(createOpenPetsBlockPattern(), "").replace(/\n{3,}/g, "\n\n").replace(/\s*$/u, ""); + return withoutBlocks ? `${withoutBlocks}\n\n${block}` : block; +} + +export function removeOpenPetsMemoryBlock(source: string): string { + const withoutBlock = source.replace(createOpenPetsBlockPattern(), "").replace(/\n{3,}/g, "\n\n").trim(); + return withoutBlock ? `${withoutBlock}\n` : ""; +} + +function createOpenPetsBlockPattern(): RegExp { + return new RegExp(`${escapeRegExp(openPetsMemoryStart)}[\\s\\S]*?${escapeRegExp(openPetsMemoryEnd)}\\n?`, "g"); +} + +function createManagedImportPattern(): RegExp { + return new RegExp(`${escapeRegExp(openPetsImportStart)}[\\s\\S]*?${escapeRegExp(openPetsImportEnd)}\\n?`, "g"); +} + +function hasManagedImport(source: string): boolean { + return createManagedImportPattern().test(source); +} + +function hasImportLineOutsideManagedBlock(source: string): boolean { + return removeManagedImport(source).split(/\r?\n/).some((line) => line.trim() === openPetsClaudeImportLine); +} + +function assertSafeClaudeMemoryPaths(claudeDir: string, claudeMdPath: string, openPetsMemoryPath: string): void { + if (existsSync(claudeDir)) { + const stat = lstatSync(claudeDir); + if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error("Claude memory directory is not a safe directory."); + } + for (const path of [claudeMdPath, openPetsMemoryPath]) { + if (!existsSync(path)) continue; + const stat = lstatSync(path); + if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("Claude memory file is not a safe regular file."); + if (stat.size > maxClaudeMemoryBytes) throw new Error("Claude memory file is too large for OpenPets to update safely."); + } +} + +function readTextFile(path: string): string { + if (!existsSync(path)) return ""; + return readFileSync(path, "utf8"); +} + +function writePrivateTextFile(path: string, content: string): void { + mkdirSync(dirname(path), { recursive: true, mode: 0o700 }); + assertSafeWriteTarget(path); + const tempPath = join(dirname(path), `.${process.pid}.${randomUUID()}.tmp`); + const fd = openSync(tempPath, "wx", 0o600); + try { + writeFileSync(fd, content, { encoding: "utf8" }); + } finally { + closeSync(fd); + } + assertSafeWriteTarget(path); + renameSync(tempPath, path); + try { chmodSync(path, 0o600); } catch { /* best effort */ } +} + +function assertSafeWriteTarget(path: string): void { + if (!existsSync(path)) return; + const stat = lstatSync(path); + if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("Claude memory file is not a safe regular file."); + if (stat.size > maxClaudeMemoryBytes) throw new Error("Claude memory file is too large for OpenPets to update safely."); +} + +function escapeRegExp(value: string): string { + return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); +} diff --git a/apps/desktop/src/codex-pets-core.ts b/apps/desktop/src/codex-pets-core.ts new file mode 100644 index 00000000..889f1b69 --- /dev/null +++ b/apps/desktop/src/codex-pets-core.ts @@ -0,0 +1,40 @@ +export const maxCodexPetJsonBytes = 128 * 1024; +export const maxCodexSpritesheetBytes = 100 * 1024 * 1024; +export const maxCodexPreviewBytes = 8 * 1024 * 1024; +export const maxCodexTotalPreviewBytes = 24 * 1024 * 1024; +export const maxCodexPets = 100; + +export interface CodexPetMetadata { + readonly id: string; + readonly displayName: string; + readonly description: string; + readonly spritesheetPath: "spritesheet.webp"; +} + +export function canInlineCodexPreview(size: number): boolean { + return Number.isSafeInteger(size) && size > 0 && size <= maxCodexPreviewBytes; +} + +export function validateCodexPetMetadata(value: unknown, folderName: string): CodexPetMetadata { + if (!isSafeCodexPetId(folderName)) throw new Error("Codex pet folder name is invalid."); + if (!isRecord(value)) throw new Error("pet.json must be an object."); + if (value.id !== folderName || typeof value.id !== "string") throw new Error("Codex pet id must match its folder name."); + if (!isSafeCodexPetId(value.id)) throw new Error("Codex pet id is invalid."); + if (typeof value.displayName !== "string" || value.displayName.trim().length === 0 || value.displayName.length > 80) throw new Error("Codex pet displayName is invalid."); + if (typeof value.description !== "string" || value.description.trim().length === 0 || value.description.length > 500) throw new Error("Codex pet description is invalid."); + if (value.spritesheetPath !== "spritesheet.webp") throw new Error("Codex pet spritesheetPath must be spritesheet.webp."); + return { + id: value.id, + displayName: value.displayName.trim(), + description: value.description.trim(), + spritesheetPath: "spritesheet.webp", + }; +} + +function isSafeCodexPetId(value: string): boolean { + return /^[a-z0-9][a-z0-9_-]{0,63}$/.test(value) && value !== "builtin"; +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} diff --git a/apps/desktop/src/codex-pets.ts b/apps/desktop/src/codex-pets.ts new file mode 100644 index 00000000..b72ba81f --- /dev/null +++ b/apps/desktop/src/codex-pets.ts @@ -0,0 +1,193 @@ +import { constants } from "node:fs"; +import { lstat, mkdir, mkdtemp, open, readdir, realpath, rename, rm, writeFile } from "node:fs/promises"; +import { homedir } from "node:os"; +import { basename, join, resolve, sep } from "node:path"; + +import { getAppStateSnapshot, installPetState, type OpenPetsStateV1 } from "./app-state.js"; +import { canInlineCodexPreview, maxCodexPetJsonBytes, maxCodexPets, maxCodexPreviewBytes, maxCodexSpritesheetBytes, maxCodexTotalPreviewBytes, validateCodexPetMetadata, type CodexPetMetadata } from "./codex-pets-core.js"; +import { withPetOperation } from "./pet-installation.js"; +import { assertInsideRoot, assertSafePetId, getInstalledPetDir, getPetsRoot } from "./pet-paths.js"; + +const codexPetsRoot = join(homedir(), ".codex", "pets"); + +export interface CodexPetUiState { + readonly source: "codex"; + readonly pets: readonly CodexPetUiItem[]; + readonly error?: string; +} + +export interface CodexPetUiItem { + readonly id: string; + readonly displayName: string; + readonly description: string; + readonly preview: string; +} + +export async function getCodexPetsUiState(): Promise { + try { + const root = await validateCodexRoot(); + const entries = (await readdir(codexPetsRoot, { withFileTypes: true })).sort((left, right) => left.name.localeCompare(right.name)); + const pets: CodexPetUiItem[] = []; + let remainingPreviewBytes = maxCodexTotalPreviewBytes; + let attemptedDirectories = 0; + + for (const entry of entries) { + if (!entry.isDirectory() || entry.name.startsWith(".")) continue; + attemptedDirectories += 1; + if (attemptedDirectories > maxCodexPets) break; + const pet = await tryReadCodexPet(root, join(root, entry.name), entry.name, remainingPreviewBytes); + if (pet) { + remainingPreviewBytes -= pet.previewBytes; + pets.push(pet.item); + } + } + + pets.sort((left, right) => left.displayName.localeCompare(right.displayName)); + return { source: "codex", pets }; + } catch (error) { + if (isNodeError(error) && error.code === "ENOENT") return { source: "codex", pets: [] }; + return { source: "codex", pets: [], error: error instanceof Error ? error.message : "Codex pets unavailable." }; + } +} + +export async function importCodexPet(petId: string): Promise { + return withPetOperation(petId, async () => { + assertSafePetId(petId); + if (getAppStateSnapshot().pets.installed.some((pet) => pet.id === petId)) { + throw new Error(`Pet is already installed: ${petId}`); + } + + const root = await validateCodexRoot(); + const sourceDir = resolve(root, petId); + await assertCodexPetDirectory(root, sourceDir); + const metadata = await readCodexPetMetadata(root, sourceDir, petId); + const spritesheetPath = join(sourceDir, metadata.spritesheetPath); + const spritesheet = await readRegularFile(spritesheetPath, maxCodexSpritesheetBytes, "spritesheet.webp"); + + const petsRoot = getPetsRoot(); + await mkdir(petsRoot, { recursive: true, mode: 0o700 }); + const finalDir = getInstalledPetDir(petId); + const tempDir = await mkdtemp(join(petsRoot, `.codex-import-${petId}-`)); + + try { + assertInsideRoot(petsRoot, tempDir); + await writeFile(join(tempDir, "spritesheet.webp"), spritesheet, { mode: 0o600, flag: "wx" }); + await writeFile(join(tempDir, "pet.json"), `${JSON.stringify(metadata, null, 2)}\n`, { encoding: "utf8", mode: 0o600, flag: "wx" }); + await rm(finalDir, { recursive: true, force: true }); + await rename(tempDir, finalDir); + + try { + await validateInstalledRegularFile(join(finalDir, "spritesheet.webp")); + await validateInstalledRegularFile(join(finalDir, "pet.json")); + return installPetState({ + id: metadata.id, + displayName: metadata.displayName, + description: metadata.description, + source: { kind: "codex", path: sourceDir }, + }); + } catch (error) { + await rm(finalDir, { recursive: true, force: true }); + throw error; + } + } catch (error) { + await rm(tempDir, { recursive: true, force: true }); + throw error; + } + }); +} + +async function tryReadCodexPet(root: string, dir: string, folderName: string, remainingPreviewBytes: number): Promise<{ readonly item: CodexPetUiItem; readonly previewBytes: number } | null> { + try { + const metadata = await readCodexPetMetadata(root, dir, folderName); + const spritesheetPath = join(dir, metadata.spritesheetPath); + await validateSpritesheet(spritesheetPath); + const preview = await createSpritesheetDataUrl(spritesheetPath, remainingPreviewBytes); + return { + item: { + id: metadata.id, + displayName: metadata.displayName, + description: metadata.description, + preview: preview.dataUrl, + }, + previewBytes: preview.bytes, + }; + } catch (error) { + console.error(`Skipping invalid Codex pet at ${dir}.`, error); + return null; + } +} + +async function readCodexPetMetadata(root: string, dir: string, folderName: string): Promise { + await assertCodexPetDirectory(root, dir); + assertSafePetId(folderName); + const petJson = join(dir, "pet.json"); + const parsed = JSON.parse((await readRegularFile(petJson, maxCodexPetJsonBytes, "pet.json")).toString("utf8")) as unknown; + const metadata = validateCodexPetMetadata(parsed, folderName); + assertSafePetId(metadata.id); + return metadata; +} + +async function validateSpritesheet(path: string): Promise { + const spritesheet = await lstat(path); + if (spritesheet.isSymbolicLink()) throw new Error("spritesheet.webp cannot be a symlink."); + if (!spritesheet.isFile()) throw new Error("spritesheet.webp must be a file."); + if (spritesheet.size <= 0) throw new Error("spritesheet.webp is empty."); + if (spritesheet.size > maxCodexSpritesheetBytes) throw new Error("spritesheet.webp is too large."); +} + +async function createSpritesheetDataUrl(path: string, remainingPreviewBytes: number): Promise<{ readonly dataUrl: string; readonly bytes: number }> { + const spritesheet = await lstat(path); + if (spritesheet.isSymbolicLink() || !spritesheet.isFile() || !canInlineCodexPreview(spritesheet.size) || spritesheet.size > remainingPreviewBytes) { + return { dataUrl: "", bytes: 0 }; + } + const buffer = await readRegularFile(path, Math.min(maxCodexPreviewBytes, remainingPreviewBytes), "spritesheet.webp preview"); + return { dataUrl: `data:image/webp;base64,${buffer.toString("base64")}`, bytes: buffer.byteLength }; +} + +async function validateCodexRoot(): Promise { + const root = resolve(codexPetsRoot); + const rootStats = await lstat(root); + if (rootStats.isSymbolicLink()) throw new Error("Codex pets root cannot be a symlink."); + if (!rootStats.isDirectory()) throw new Error("Codex pets path is not a directory."); + const realRoot = await realpath(root); + if (realRoot !== root) throw new Error("Codex pets root path is not canonical."); + return root; +} + +async function assertCodexPetDirectory(root: string, target: string): Promise { + const resolvedTarget = resolve(target); + if (resolvedTarget === root || !resolvedTarget.startsWith(`${root}${sep}`) || basename(resolvedTarget).startsWith(".")) { + throw new Error("Resolved path escapes Codex pets directory."); + } + const dirStats = await lstat(resolvedTarget); + if (dirStats.isSymbolicLink()) throw new Error("Codex pet directory cannot be a symlink."); + if (!dirStats.isDirectory()) throw new Error("Codex pet path must be a directory."); + const realTarget = await realpath(resolvedTarget); + if (!realTarget.startsWith(`${root}${sep}`)) throw new Error("Codex pet directory escapes Codex pets root."); +} + +async function readRegularFile(path: string, maxBytes: number, label: string): Promise { + const stats = await lstat(path); + if (stats.isSymbolicLink()) throw new Error(`${label} cannot be a symlink.`); + if (!stats.isFile()) throw new Error(`${label} must be a file.`); + if (stats.size <= 0 || stats.size > maxBytes) throw new Error(`${label} size is invalid.`); + const file = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW); + try { + const openedStats = await file.stat(); + if (!openedStats.isFile()) throw new Error(`${label} must be a file.`); + if (openedStats.size !== stats.size || openedStats.size <= 0 || openedStats.size > maxBytes) throw new Error(`${label} size is invalid.`); + return await file.readFile(); + } finally { + await file.close(); + } +} + +async function validateInstalledRegularFile(path: string): Promise { + const stats = await lstat(path); + if (stats.isSymbolicLink()) throw new Error("Imported pet file cannot be a symlink."); + if (!stats.isFile()) throw new Error("Imported pet file must be a regular file."); +} + +function isNodeError(error: unknown): error is NodeJS.ErrnoException { + return error instanceof Error && "code" in error; +} diff --git a/apps/desktop/src/default-pet-controller.ts b/apps/desktop/src/default-pet-controller.ts new file mode 100644 index 00000000..5cd36ecf --- /dev/null +++ b/apps/desktop/src/default-pet-controller.ts @@ -0,0 +1,184 @@ +import { BrowserWindow, screen } from "electron"; + +import { getAppStateSnapshot, getDefaultPetPosition, resetDefaultPetPosition, setDefaultPetPosition, updatePreferences } from "./app-state.js"; +import { defaultPetWindowSize, getDefaultPetInitialPosition } from "./display.js"; +import { transientDisplayMs, type OpenPetsReaction } from "./local-ipc-protocol.js"; +import { clearTransientReaction, createDefaultPetWindow, getSafeDefaultPetPosition, getTransientReactionAnimationMs, loadDefaultPetContent, mergePetTransientDisplay, readWindowPosition, setPetReactionState, type PetTransientDisplay } from "./pet-window.js"; + +let defaultPetWindow: BrowserWindow | null = null; +let paused = false; +let transientDisplay: PetTransientDisplay | null = null; +let transientDisplayTimeout: NodeJS.Timeout | null = null; +let transientAnimationTimeout: NodeJS.Timeout | null = null; + +export function showDefaultPet(): void { + updatePreferences({ openDefaultPetOnLaunch: true }); + const window = getOrCreateDefaultPetWindow(); + + if (window.isMinimized()) { + window.restore(); + } + + window.showInactive(); +} + +export function hideDefaultPet(): void { + updatePreferences({ openDefaultPetOnLaunch: false }); + + if (!defaultPetWindow || defaultPetWindow.isDestroyed()) { + return; + } + + setDefaultPetPosition(readWindowPosition(defaultPetWindow)); + defaultPetWindow.hide(); +} + +export function isDefaultPetVisible(): boolean { + return Boolean(defaultPetWindow && !defaultPetWindow.isDestroyed() && defaultPetWindow.isVisible()); +} + +export function setDefaultPetPaused(nextPaused: boolean): void { + paused = nextPaused; + + if (!defaultPetWindow || defaultPetWindow.isDestroyed()) { + return; + } + + void loadDefaultPetContent(defaultPetWindow, paused, transientDisplay); +} + +export function getDefaultPetPaused(): boolean { + return paused; +} + +export function refreshDefaultPetContent(): void { + if (!defaultPetWindow || defaultPetWindow.isDestroyed()) { + return; + } + + void loadDefaultPetContent(defaultPetWindow, paused, transientDisplay); +} + +export function applyExternalPetReaction(reaction: OpenPetsReaction): { readonly shown: boolean; readonly reason?: string } { + if (paused) { + return { shown: false, reason: "paused" }; + } + + setTransientDisplay({ reaction }); + showDefaultPetForExternalEvent(); + return { shown: isDefaultPetVisible() }; +} + +export function applyExternalPetSay(message: string, reaction?: OpenPetsReaction): { readonly shown: boolean; readonly reason?: string } { + if (paused) { + return { shown: false, reason: "paused" }; + } + + setTransientDisplay({ message, reaction }); + showDefaultPetForExternalEvent(); + return { shown: isDefaultPetVisible() }; +} + +export function destroyDefaultPet(): void { + if (!defaultPetWindow || defaultPetWindow.isDestroyed()) { + defaultPetWindow = null; + return; + } + + setDefaultPetPosition(readWindowPosition(defaultPetWindow)); + const window = defaultPetWindow; + defaultPetWindow = null; + window.destroy(); +} + +export function installDefaultPetDisplayHandlers(): void { + screen.on("display-added", reclampDefaultPetWindow); + screen.on("display-removed", reclampDefaultPetWindow); + screen.on("display-metrics-changed", reclampDefaultPetWindow); +} + +function getOrCreateDefaultPetWindow(): BrowserWindow { + if (defaultPetWindow && !defaultPetWindow.isDestroyed()) { + return defaultPetWindow; + } + + const position = getSafeDefaultPetPosition(getDefaultPetPosition()); + + defaultPetWindow = createDefaultPetWindow({ + position, + paused, + display: transientDisplay, + onPositionChanged: setDefaultPetPosition, + onHideRequested: hideDefaultPet, + }); + + defaultPetWindow.on("closed", () => { + defaultPetWindow = null; + }); + + return defaultPetWindow; +} + +function setTransientDisplay(display: PetTransientDisplay): void { + transientDisplay = mergePetTransientDisplay(transientDisplay, display); + + if (transientDisplayTimeout) { + clearTimeout(transientDisplayTimeout); + } + if (transientAnimationTimeout) { + clearTimeout(transientAnimationTimeout); + transientAnimationTimeout = null; + } + + const animationMs = getTransientReactionAnimationMs(transientDisplay); + if (animationMs !== null && animationMs < transientDisplayMs) { + transientAnimationTimeout = setTimeout(() => { + if (!transientDisplay) return; + transientDisplay = clearTransientReaction(transientDisplay); + transientAnimationTimeout = null; + if (defaultPetWindow && !defaultPetWindow.isDestroyed()) setPetReactionState(defaultPetWindow, "idle"); + }, animationMs); + } + + transientDisplayTimeout = setTimeout(() => { + transientDisplay = null; + transientDisplayTimeout = null; + if (transientAnimationTimeout) { + clearTimeout(transientAnimationTimeout); + transientAnimationTimeout = null; + } + refreshDefaultPetContent(); + }, transientDisplayMs); + + refreshDefaultPetContent(); +} + +function showDefaultPetForExternalEvent(): void { + const state = getAppStateSnapshot(); + if (isDefaultPetVisible() || state.preferences.openDefaultPetOnLaunch) { + showDefaultPet(); + } +} + +function reclampDefaultPetWindow(): void { + if (!defaultPetWindow || defaultPetWindow.isDestroyed()) { + return; + } + + const safePosition = readWindowPosition(defaultPetWindow); + defaultPetWindow.setPosition(safePosition.x, safePosition.y, false); + setDefaultPetPosition(safePosition); +} + +export function shouldOpenDefaultPetOnLaunch(): boolean { + return getAppStateSnapshot().preferences.openDefaultPetOnLaunch; +} + +export function resetDefaultPetToInitialPosition(): void { + const safePosition = getSafeDefaultPetPosition(getDefaultPetInitialPosition(defaultPetWindowSize)); + resetDefaultPetPosition(safePosition); + + if (defaultPetWindow && !defaultPetWindow.isDestroyed()) { + defaultPetWindow.setPosition(safePosition.x, safePosition.y, false); + } +} diff --git a/apps/desktop/src/display.ts b/apps/desktop/src/display.ts new file mode 100644 index 00000000..cb7d2061 --- /dev/null +++ b/apps/desktop/src/display.ts @@ -0,0 +1,44 @@ +import { screen } from "electron"; + +export interface Point { + readonly x: number; + readonly y: number; +} + +export interface WindowSize { + readonly width: number; + readonly height: number; +} + +export const defaultPetWindowSize: WindowSize = { + width: 220, + height: 320, +}; + +export const defaultPetWindowMargin = 24; + +export function getDefaultPetInitialPosition(size: WindowSize = defaultPetWindowSize): Point { + const { workArea } = screen.getPrimaryDisplay(); + + return { + x: Math.round(workArea.x + workArea.width - size.width - defaultPetWindowMargin), + y: Math.round(workArea.y + workArea.height - size.height - defaultPetWindowMargin), + }; +} + +export function clampToPrimaryWorkArea(position: Point, size: WindowSize = defaultPetWindowSize): Point { + const { workArea } = screen.getPrimaryDisplay(); + const minX = workArea.x; + const minY = workArea.y; + const maxX = workArea.x + Math.max(0, workArea.width - size.width); + const maxY = workArea.y + Math.max(0, workArea.height - size.height); + + return { + x: clamp(Math.round(position.x), minX, maxX), + y: clamp(Math.round(position.y), minY, maxY), + }; +} + +function clamp(value: number, min: number, max: number): number { + return Math.min(Math.max(value, min), max); +} diff --git a/apps/desktop/src/lease-manager.ts b/apps/desktop/src/lease-manager.ts new file mode 100644 index 00000000..e340fcc0 --- /dev/null +++ b/apps/desktop/src/lease-manager.ts @@ -0,0 +1,153 @@ +import { randomUUID } from "node:crypto"; + +export type LeaseTargetKind = "default" | "explicit"; +export type LeaseFallbackReason = "invalid_pet_id" | "pet_not_installed" | "pet_broken" | "default_broken_fallback_builtin"; + +export interface PetLease { + readonly leaseId: string; + readonly requestedPetId?: string; + readonly targetKind: LeaseTargetKind; + readonly actualPetId: string; + readonly fallbackReason?: LeaseFallbackReason; + readonly acquiredAt: number; + readonly lastHeartbeatAt: number; + readonly expiresAt: number; +} + +export interface LeaseSnapshot { + readonly leaseId: string; + readonly requestedPetId?: string; + readonly targetKind: LeaseTargetKind; + readonly actualTargetPetId: string; + readonly actualTargetPetName: string; + readonly usingDefaultPet: boolean; + readonly fallbackReason?: LeaseFallbackReason; + readonly expiresAt: number; + readonly leaseActive: boolean; +} + +export interface LeaseManagerOptions { + readonly ttlMs?: number; + readonly now?: () => number; + readonly resolveTarget?: (requestedPetId: string | undefined) => { readonly targetKind: LeaseTargetKind; readonly actualPetId: string; readonly fallbackReason?: LeaseFallbackReason }; + readonly getDefaultPetId?: () => string; + readonly getPetDisplayName?: (petId: string, targetKind: LeaseTargetKind) => string; + readonly onFirstExplicitLease?: (petId: string) => void; + readonly onLastExplicitLease?: (petId: string) => void; +} + +const safePetIdPattern = /^[a-z0-9][a-z0-9_-]{0,63}$/; + +export class LeaseManager { + readonly #leases = new Map(); + readonly #ttlMs: number; + readonly #now: () => number; + readonly #resolveTarget: (requestedPetId: string | undefined) => { readonly targetKind: LeaseTargetKind; readonly actualPetId: string; readonly fallbackReason?: LeaseFallbackReason }; + readonly #getDefaultPetId: () => string; + readonly #getPetDisplayName: (petId: string, targetKind: LeaseTargetKind) => string; + readonly #onFirstExplicitLease: (petId: string) => void; + readonly #onLastExplicitLease: (petId: string) => void; + + constructor(options: LeaseManagerOptions = {}) { + this.#ttlMs = options.ttlMs ?? 15_000; + this.#now = options.now ?? Date.now; + this.#resolveTarget = options.resolveTarget ?? (() => { throw new Error("Lease target resolver is not configured."); }); + this.#getDefaultPetId = options.getDefaultPetId ?? (() => { throw new Error("Default pet resolver is not configured."); }); + this.#getPetDisplayName = options.getPetDisplayName ?? ((petId) => petId); + this.#onFirstExplicitLease = options.onFirstExplicitLease ?? (() => {}); + this.#onLastExplicitLease = options.onLastExplicitLease ?? (() => {}); + } + + acquire(requestedPetId?: string): LeaseSnapshot { + const now = this.#now(); + const target = this.#resolveTarget(requestedPetId); + const lease: PetLease = { + leaseId: randomUUID(), + requestedPetId, + targetKind: target.targetKind, + actualPetId: target.actualPetId, + fallbackReason: target.fallbackReason, + acquiredAt: now, + lastHeartbeatAt: now, + expiresAt: now + this.#ttlMs, + }; + + const hadExplicitLease = lease.targetKind === "explicit" && this.countExplicitLeases(lease.actualPetId) > 0; + this.#leases.set(lease.leaseId, lease); + if (lease.targetKind === "explicit" && !hadExplicitLease) this.#onFirstExplicitLease(lease.actualPetId); + return this.snapshot(lease); + } + + heartbeat(leaseId: string): { readonly leaseId: string; readonly expiresAt: number } { + const lease = this.#leases.get(leaseId); + if (!lease) throw new Error("unknown_lease"); + const now = this.#now(); + if (lease.expiresAt <= now) { + this.release(leaseId); + throw new Error("unknown_lease"); + } + const next: PetLease = { ...lease, lastHeartbeatAt: now, expiresAt: now + this.#ttlMs }; + this.#leases.set(leaseId, next); + return { leaseId, expiresAt: next.expiresAt }; + } + + release(leaseId: string): { readonly released: boolean } { + const lease = this.#leases.get(leaseId); + if (!lease) return { released: false }; + this.#leases.delete(leaseId); + if (lease.targetKind === "explicit" && this.countExplicitLeases(lease.actualPetId) === 0) { + this.#onLastExplicitLease(lease.actualPetId); + } + return { released: true }; + } + + get(leaseId: string): LeaseSnapshot | null { + const lease = this.#leases.get(leaseId); + if (lease && lease.expiresAt <= this.#now()) { + this.release(leaseId); + return null; + } + return lease ? this.snapshot(lease) : null; + } + + cleanupExpired(): readonly LeaseSnapshot[] { + const now = this.#now(); + const expired: LeaseSnapshot[] = []; + for (const lease of [...this.#leases.values()]) { + if (lease.expiresAt <= now) { + expired.push(this.snapshot(lease)); + this.release(lease.leaseId); + } + } + return expired; + } + + countExplicitLeases(petId: string): number { + let count = 0; + for (const lease of this.#leases.values()) { + if (lease.targetKind === "explicit" && lease.actualPetId === petId) count += 1; + } + return count; + } + + snapshot(lease: PetLease): LeaseSnapshot { + const defaultPetId = this.#getDefaultPetId(); + const actualPetId = lease.targetKind === "default" ? defaultPetId : lease.actualPetId; + const targetKind = lease.targetKind; + return { + leaseId: lease.leaseId, + requestedPetId: lease.requestedPetId, + targetKind, + actualTargetPetId: actualPetId, + actualTargetPetName: this.#getPetDisplayName(actualPetId, targetKind), + usingDefaultPet: targetKind === "default", + fallbackReason: lease.fallbackReason, + expiresAt: lease.expiresAt, + leaseActive: true, + }; + } +} + +export function createStaleLeaseStatus(leaseId: string): { readonly ok: false; readonly appRunning: true; readonly leaseId: string; readonly leaseActive: false; readonly staleReason: "unknown_lease" } { + return { ok: false, appRunning: true, leaseId, leaseActive: false, staleReason: "unknown_lease" }; +} diff --git a/apps/desktop/src/lifecycle.ts b/apps/desktop/src/lifecycle.ts new file mode 100644 index 00000000..752d6ba9 --- /dev/null +++ b/apps/desktop/src/lifecycle.ts @@ -0,0 +1,37 @@ +import { app } from "electron"; + +import { closeAllAgentPets } from "./agent-pet-controller.js"; +import { destroyDefaultPet } from "./default-pet-controller.js"; +import { stopLocalIpcServer } from "./local-ipc.js"; +import { focusOpenTaskWindows } from "./windows.js"; + +let intentionalQuit = false; + +export function installAppLifecycle(): void { + app.on("second-instance", () => { + console.log("Second OpenPets launch requested; keeping existing instance."); + focusOpenTaskWindows(); + }); + + app.on("window-all-closed", () => { + if (!intentionalQuit) { + console.log("All OpenPets task windows closed; keeping tray app running."); + } + }); + + app.on("activate", () => { + console.log("OpenPets activate event received; not opening a dashboard window."); + }); + + app.on("before-quit", () => { + intentionalQuit = true; + stopLocalIpcServer(); + closeAllAgentPets(); + destroyDefaultPet(); + }); +} + +export function quitOpenPets(): void { + intentionalQuit = true; + app.quit(); +} diff --git a/apps/desktop/src/local-ipc-paths.ts b/apps/desktop/src/local-ipc-paths.ts new file mode 100644 index 00000000..e40541b5 --- /dev/null +++ b/apps/desktop/src/local-ipc-paths.ts @@ -0,0 +1,150 @@ +import { lstatSync, mkdirSync, writeFileSync, renameSync, rmSync, chmodSync, readFileSync } from "node:fs"; +import { randomBytes } from "node:crypto"; +import { homedir, userInfo } from "node:os"; +import { dirname, join } from "node:path"; + +import { app } from "electron"; + +import { openPetsIpcProtocol, openPetsIpcVersion } from "./local-ipc-protocol.js"; + +export interface OpenPetsDiscoveryFile { + readonly protocolVersion: 1; + readonly protocol: "openpets-ipc"; + readonly endpoint: string; + readonly token: string; + readonly appVersion: string; + readonly pid: number; + readonly platform: NodeJS.Platform; +} + +export function getDiscoveryFilePath(): string { + if (process.env.OPENPETS_DISCOVERY_FILE) { + return process.env.OPENPETS_DISCOVERY_FILE; + } + + if (process.platform === "darwin") { + return join(homedir(), "Library", "Application Support", "OpenPets", "runtime", "ipc.json"); + } + + if (process.platform === "win32") { + return join(process.env.APPDATA ?? join(homedir(), "AppData", "Roaming"), "OpenPets", "runtime", "ipc.json"); + } + + const xdg = getSecureXdgRuntimeDir(); + if (xdg) { + return join(xdg, "openpets", "ipc.json"); + } + + return join(process.env.XDG_CONFIG_HOME ?? join(homedir(), ".config"), "OpenPets", "runtime", "ipc.json"); +} + +export function createIpcEndpoint(): string { + if (process.platform === "win32") { + return `\\\\.\\pipe\\openpets-${randomEndpointPart()}-${process.pid}`; + } + + const runtimeDir = getSocketRuntimeDir(); + mkdirSync(runtimeDir, { recursive: true, mode: 0o700 }); + ensurePrivateRuntimeDir(runtimeDir); + return join(runtimeDir, `openpets-${process.pid}.sock`); +} + +export function writeDiscoveryFile(endpoint: string, token: string): OpenPetsDiscoveryFile { + const discovery: OpenPetsDiscoveryFile = { + protocolVersion: openPetsIpcVersion, + protocol: openPetsIpcProtocol, + endpoint, + token, + appVersion: app.getVersion(), + pid: process.pid, + platform: process.platform, + }; + + const path = getDiscoveryFilePath(); + mkdirSync(dirname(path), { recursive: true, mode: 0o700 }); + try { chmodSync(dirname(path), 0o700); } catch { /* best effort */ } + const tempPath = `${path}.${process.pid}.tmp`; + writeFileSync(tempPath, `${JSON.stringify(discovery, null, 2)}\n`, { encoding: "utf8", mode: 0o600 }); + try { chmodSync(tempPath, 0o600); } catch { /* best effort */ } + renameSync(tempPath, path); + try { chmodSync(path, 0o600); } catch { /* best effort */ } + return discovery; +} + +export function removeDiscoveryFile(discovery: OpenPetsDiscoveryFile | null): void { + if (!discovery) return; + const path = getDiscoveryFilePath(); + try { + const current = JSON.parse(readFileSync(path, "utf8")) as Partial; + if (current.pid !== discovery.pid || current.token !== discovery.token || current.endpoint !== discovery.endpoint) { + return; + } + rmSync(path, { force: true }); + } catch { + // best-effort cleanup only + } +} + +export function cleanupUnixSocket(endpoint: string): void { + if (process.platform === "win32") return; + try { + rmSync(endpoint, { force: true }); + } catch { + // bind will report a real failure if cleanup was required but impossible + } +} + +export function protectUnixSocket(endpoint: string): void { + if (process.platform === "win32") return; + try { chmodSync(endpoint, 0o600); } catch { /* best effort */ } +} + +function getSocketRuntimeDir(): string { + const xdg = process.platform === "linux" ? getSecureXdgRuntimeDir() : null; + if (xdg) { + return join(xdg, "openpets"); + } + + return join("/tmp", `openpets-${getUserIdForPath()}`); +} + +function getSecureXdgRuntimeDir(): string | null { + const dir = process.env.XDG_RUNTIME_DIR; + if (!dir) return null; + + try { + const stat = lstatSync(dir); + if (!stat.isDirectory() || stat.isSymbolicLink()) return null; + if (typeof process.getuid === "function" && stat.uid !== process.getuid()) return null; + if ((stat.mode & 0o777) !== 0o700) return null; + return dir; + } catch { + return null; + } +} + +function ensurePrivateRuntimeDir(dir: string): void { + const stat = lstatSync(dir); + if (!stat.isDirectory() || stat.isSymbolicLink()) { + throw new Error(`OpenPets IPC runtime path is not a safe directory: ${dir}`); + } + + if (typeof process.getuid === "function" && stat.uid !== process.getuid()) { + throw new Error(`OpenPets IPC runtime directory is not owned by the current user: ${dir}`); + } + + try { chmodSync(dir, 0o700); } catch { /* best effort */ } + const updated = lstatSync(dir); + if ((updated.mode & 0o777) !== 0o700) { + throw new Error(`OpenPets IPC runtime directory is not private: ${dir}`); + } +} + +function getUserIdForPath(): string { + if (typeof process.getuid === "function") return String(process.getuid()); + try { return userInfo().username.replace(/[^a-zA-Z0-9_-]/g, "_"); } catch { return "user"; } +} + +function randomEndpointPart(): string { + return randomBytes(8).toString("hex"); +} diff --git a/apps/desktop/src/local-ipc-protocol.ts b/apps/desktop/src/local-ipc-protocol.ts new file mode 100644 index 00000000..9cc5c10a --- /dev/null +++ b/apps/desktop/src/local-ipc-protocol.ts @@ -0,0 +1,136 @@ +import { randomUUID } from "node:crypto"; + +export const openPetsIpcProtocol = "openpets-ipc"; +export const openPetsIpcVersion = 1; +export const maxIpcMessageBytes = 16 * 1024; +export const transientDisplayMs = 4_000; + +export const allowedReactions = [ + "idle", + "thinking", + "working", + "editing", + "running", + "testing", + "waiting", + "waving", + "success", + "error", + "celebrating", +] as const; + +export type OpenPetsReaction = typeof allowedReactions[number]; +export type OpenPetsIpcMethod = "hello" | "status" | "pets.list" | "lease.acquire" | "lease.heartbeat" | "lease.release" | "pet.react" | "pet.say"; + +export interface OpenPetsIpcRequest { + readonly id: string; + readonly version: number; + readonly token: string; + readonly method: OpenPetsIpcMethod; + readonly params?: unknown; +} + +export interface OpenPetsIpcResponse { + readonly id: string | null; + readonly ok: boolean; + readonly result?: unknown; + readonly error?: { + readonly code: string; + readonly message: string; + }; +} + +export function createRequestId(): string { + return randomUUID(); +} + +export function parseIpcRequest(raw: string, expectedToken: string): OpenPetsIpcRequest { + let parsed: unknown; + try { + parsed = JSON.parse(raw) as unknown; + } catch { + throw new IpcProtocolError("invalid_request", "IPC request must be valid JSON."); + } + if (!isRecord(parsed)) throw new IpcProtocolError("invalid_request", "IPC request must be an object."); + if (typeof parsed.id !== "string" || parsed.id.length < 1 || parsed.id.length > 120) throw new IpcProtocolError("invalid_request", "IPC request id is invalid."); + if (parsed.version !== openPetsIpcVersion) throw new IpcProtocolError("invalid_version", "Unsupported IPC protocol version."); + if (parsed.token !== expectedToken) throw new IpcProtocolError("invalid_token", "Invalid IPC token."); + if (parsed.method !== "hello" && parsed.method !== "status" && parsed.method !== "pets.list" && parsed.method !== "lease.acquire" && parsed.method !== "lease.heartbeat" && parsed.method !== "lease.release" && parsed.method !== "pet.react" && parsed.method !== "pet.say") { + throw new IpcProtocolError("unknown_method", "Unknown IPC method."); + } + + return { + id: parsed.id, + version: parsed.version, + token: parsed.token, + method: parsed.method, + params: parsed.params, + }; +} + +export function validateReaction(value: unknown): OpenPetsReaction { + if (typeof value !== "string" || !allowedReactions.includes(value as OpenPetsReaction)) { + throw new IpcProtocolError("invalid_params", "Invalid pet reaction."); + } + return value as OpenPetsReaction; +} + +export function validateSayMessage(value: unknown): string { + if (typeof value !== "string") throw new IpcProtocolError("invalid_params", "Message must be a string."); + const message = value.trim(); + if (message.length < 1) throw new IpcProtocolError("invalid_params", "Message cannot be empty."); + if (message.length > 140) throw new IpcProtocolError("invalid_params", "Message is too long."); + if (/[\r\n]/.test(message)) throw new IpcProtocolError("invalid_params", "Message must be single-line."); + if (/```||\b(class|import|export|const|let|var)\b/.test(message)) throw new IpcProtocolError("invalid_params", "Message looks like code."); + if (/https?:\/\/|www\.|\/[\w.-]+\/[\w./-]+|[A-Za-z]:\\/.test(message)) throw new IpcProtocolError("invalid_params", "Message contains a URL or path-like content."); + if (/(api[_-]?key|secret|token|password|passwd|BEGIN [A-Z ]+PRIVATE KEY)/i.test(message)) throw new IpcProtocolError("invalid_params", "Message looks secret-like."); + return message; +} + +export function validateOptionalLeaseId(value: unknown): string | undefined { + if (value === undefined) return undefined; + if (typeof value !== "string" || value.length < 1 || value.length > 120 || /[\0\r\n]/.test(value)) { + throw new IpcProtocolError("invalid_params", "Invalid lease id."); + } + return value; +} + +export function validateRequestedPetId(value: unknown): string | undefined { + if (value === undefined) return undefined; + if (typeof value !== "string") throw new IpcProtocolError("invalid_params", "Requested pet id must be a string."); + const trimmed = value.trim(); + if (trimmed.length < 1) return undefined; + if (Buffer.byteLength(trimmed, "utf8") > 128 || /[\x00-\x1F\x7F/\\]/.test(trimmed)) { + throw new IpcProtocolError("invalid_params", "Requested pet id is outside CLI bounds."); + } + return trimmed; +} + +export function okResponse(id: string | null, result: unknown): OpenPetsIpcResponse { + return { id, ok: true, result }; +} + +export function errorResponse(id: string | null, error: unknown): OpenPetsIpcResponse { + if (error instanceof IpcProtocolError) { + return { id, ok: false, error: { code: error.code, message: error.message } }; + } + + return { + id, + ok: false, + error: { + code: "internal_error", + message: error instanceof Error ? error.message : "IPC request failed.", + }, + }; +} + +export class IpcProtocolError extends Error { + constructor(readonly code: string, message: string) { + super(message); + } +} + +export function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} diff --git a/apps/desktop/src/local-ipc.ts b/apps/desktop/src/local-ipc.ts new file mode 100644 index 00000000..cde563a6 --- /dev/null +++ b/apps/desktop/src/local-ipc.ts @@ -0,0 +1,266 @@ +import { randomBytes } from "node:crypto"; +import net from "node:net"; + +import { applyAgentPetReaction, applyAgentPetSay, clearAgentPetLeaseState, showAgentPet } from "./agent-pet-controller.js"; +import { getAppStateSnapshot } from "./app-state.js"; +import { builtInPet } from "./built-in-pet.js"; +import { applyExternalPetReaction, applyExternalPetSay, getDefaultPetPaused, isDefaultPetVisible } from "./default-pet-controller.js"; +import { createStaleLeaseStatus, LeaseManager } from "./lease-manager.js"; +import { cleanupUnixSocket, createIpcEndpoint, protectUnixSocket, removeDiscoveryFile, writeDiscoveryFile, type OpenPetsDiscoveryFile } from "./local-ipc-paths.js"; +import { errorResponse, IpcProtocolError, isRecord, maxIpcMessageBytes, okResponse, parseIpcRequest, validateOptionalLeaseId, validateReaction, validateRequestedPetId, validateSayMessage, type OpenPetsIpcRequest } from "./local-ipc-protocol.js"; + +let ipcServer: net.Server | null = null; +let ipcDiscovery: OpenPetsDiscoveryFile | null = null; +let leaseCleanupTimer: NodeJS.Timeout | null = null; +const leaseManager = new LeaseManager({ + resolveTarget: resolveLeaseTarget, + getDefaultPetId: () => getCurrentDefaultPet().id, + getPetDisplayName: (petId, targetKind) => targetKind === "default" ? getCurrentDefaultPet().displayName : getPetDisplayName(petId), + onFirstExplicitLease: showAgentPet, + onLastExplicitLease: handleLastExplicitLease, +}); + +const safePetIdPattern = /^[a-z0-9][a-z0-9_-]{0,63}$/; + +export async function startLocalIpcServer(): Promise { + if (ipcServer) return; + + const endpoint = createIpcEndpoint(); + const token = randomBytes(32).toString("base64url"); + cleanupUnixSocket(endpoint); + + const server = net.createServer((socket) => handleSocket(socket, token)); + server.on("error", (error) => { + console.error("OpenPets local IPC server error.", error); + }); + + await new Promise((resolve, reject) => { + server.once("error", reject); + server.listen(endpoint, () => { + server.off("error", reject); + protectUnixSocket(endpoint); + resolve(); + }); + }); + + ipcServer = server; + ipcDiscovery = writeDiscoveryFile(endpoint, token); + leaseCleanupTimer = setInterval(() => leaseManager.cleanupExpired(), 5_000); + leaseCleanupTimer.unref?.(); + console.log(`OpenPets local IPC listening at ${endpoint}.`); +} + +export function stopLocalIpcServer(): void { + const server = ipcServer; + const discovery = ipcDiscovery; + ipcServer = null; + ipcDiscovery = null; + if (leaseCleanupTimer) clearInterval(leaseCleanupTimer); + leaseCleanupTimer = null; + removeDiscoveryFile(discovery); + + if (server) { + server.close(); + } + + if (discovery) { + cleanupUnixSocket(discovery.endpoint); + } +} + +function handleSocket(socket: net.Socket, token: string): void { + socket.setEncoding("utf8"); + socket.setTimeout(3_000, () => socket.destroy()); + + let buffer = ""; + let handled = false; + + socket.on("data", (chunk) => { + if (handled) return; + buffer += chunk; + + if (Buffer.byteLength(buffer, "utf8") > maxIpcMessageBytes) { + handled = true; + writeResponse(socket, errorResponse(null, new IpcProtocolError("invalid_request", "IPC request is too large."))); + return; + } + + const newline = buffer.indexOf("\n"); + if (newline === -1) return; + + handled = true; + const raw = buffer.slice(0, newline); + void handleRawRequest(raw, token).then((response) => writeResponse(socket, response)); + }); + + socket.on("error", (error) => { + if (isBenignSocketCloseError(error)) return; + console.error("OpenPets local IPC client socket error.", error); + }); +} + +async function handleRawRequest(raw: string, token: string) { + let requestId: string | null = null; + try { + const request = parseIpcRequest(raw, token); + requestId = request.id; + return okResponse(request.id, await handleRequest(request)); + } catch (error) { + return errorResponse(requestId, error); + } +} + +async function handleRequest(request: OpenPetsIpcRequest): Promise { + if (request.method === "hello") { + return { + ok: true, + protocol: "openpets-ipc", + protocolVersion: 1, + appVersion: ipcDiscovery?.appVersion ?? "0.0.0", + }; + } + + if (request.method === "status") { + const params = isRecord(request.params) ? request.params : {}; + const leaseId = validateOptionalLeaseId(params.leaseId); + if (leaseId) { + const lease = leaseManager.get(leaseId); + if (!lease) return createStaleLeaseStatus(leaseId); + return { ok: true, appRunning: true, ...lease }; + } + const state = getAppStateSnapshot(); + const defaultPet = state.pets.installed.find((pet) => pet.id === state.preferences.defaultPetId) ?? builtInPet; + return { + ok: true, + appRunning: true, + protocolVersion: 1, + appVersion: ipcDiscovery?.appVersion ?? "0.0.0", + defaultPet: { + id: defaultPet.id, + displayName: defaultPet.displayName, + builtIn: defaultPet.builtIn, + broken: "broken" in defaultPet && defaultPet.broken === true, + }, + paused: getDefaultPetPaused(), + defaultPetVisible: isDefaultPetVisible(), + openDefaultPetOnLaunch: state.preferences.openDefaultPetOnLaunch, + speechBubblesEnabled: state.preferences.speechBubblesEnabled, + }; + } + + if (request.method === "pets.list") { + const state = getAppStateSnapshot(); + return { + ok: true, + pets: state.pets.installed.map((pet) => ({ + id: pet.id, + displayName: pet.displayName, + builtIn: pet.builtIn, + broken: pet.broken === true, + })), + defaultPetId: state.preferences.defaultPetId, + }; + } + + if (request.method === "lease.acquire") { + const params = isRecord(request.params) ? request.params : {}; + return leaseManager.acquire(validateRequestedPetId(params.requestedPetId)); + } + + if (request.method === "lease.heartbeat") { + const params = isRecord(request.params) ? request.params : {}; + const leaseId = validateRequiredLeaseId(params.leaseId); + try { + return leaseManager.heartbeat(leaseId); + } catch { + throw new IpcProtocolError("unknown_lease", "Unknown or expired lease."); + } + } + + if (request.method === "lease.release") { + const params = isRecord(request.params) ? request.params : {}; + return leaseManager.release(validateRequiredLeaseId(params.leaseId)); + } + + if (request.method === "pet.react") { + const params = isRecord(request.params) ? request.params : {}; + const reaction = validateReaction(params.reaction); + const lease = getLeaseTarget(params.leaseId); + if (lease?.targetKind === "explicit") { + if (getDefaultPetPaused()) return { ok: true, reaction, shown: false, reason: "paused", leaseId: lease.leaseId }; + const applied = applyAgentPetReaction(lease.actualTargetPetId, reaction); + return { ok: true, reaction, shown: applied.shown, reason: applied.reason, leaseId: lease.leaseId }; + } + const applied = applyExternalPetReaction(reaction); + return { ok: true, reaction, shown: applied.shown, reason: applied.reason }; + } + + const params = isRecord(request.params) ? request.params : {}; + const message = validateSayMessage(params.message); + const reaction = params.reaction === undefined ? undefined : validateReaction(params.reaction); + const lease = getLeaseTarget(params.leaseId); + if (lease?.targetKind === "explicit") { + if (getDefaultPetPaused()) return { ok: true, shown: false, reason: "paused", reaction, leaseId: lease.leaseId }; + const applied = applyAgentPetSay(lease.actualTargetPetId, message, reaction); + return { ok: true, shown: applied.shown, reason: applied.reason, reaction, leaseId: lease.leaseId }; + } + const applied = applyExternalPetSay(message, reaction); + return { ok: true, shown: applied.shown, reason: applied.reason, reaction }; +} + +function validateRequiredLeaseId(value: unknown): string { + const leaseId = validateOptionalLeaseId(value); + if (!leaseId) throw new IpcProtocolError("invalid_params", "Lease id is required."); + return leaseId; +} + +function getLeaseTarget(value: unknown) { + const leaseId = validateOptionalLeaseId(value); + if (!leaseId) return null; + const lease = leaseManager.get(leaseId); + if (!lease) throw new IpcProtocolError("unknown_lease", "Unknown or expired lease."); + return lease; +} + +function handleLastExplicitLease(petId: string): void { + clearAgentPetLeaseState(petId); +} + +function writeResponse(socket: net.Socket, response: unknown): void { + if (socket.destroyed || !socket.writable) return; + socket.end(`${JSON.stringify(response)}\n`); +} + +function isBenignSocketCloseError(error: NodeJS.ErrnoException): boolean { + return error.code === "EPIPE" || error.code === "ECONNRESET" || error.code === "ERR_STREAM_DESTROYED"; +} + +function resolveLeaseTarget(requestedPetId: string | undefined): { readonly targetKind: "default" | "explicit"; readonly actualPetId: string; readonly fallbackReason?: "invalid_pet_id" | "pet_not_installed" | "pet_broken" | "default_broken_fallback_builtin" } { + const defaultPet = getCurrentDefaultPetWithFallback(); + if (!requestedPetId || requestedPetId === builtInPet.id || requestedPetId === defaultPet.id) { + return { targetKind: "default", actualPetId: defaultPet.id, fallbackReason: defaultPet.fallbackReason }; + } + if (!safePetIdPattern.test(requestedPetId)) { + return { targetKind: "default", actualPetId: defaultPet.id, fallbackReason: "invalid_pet_id" }; + } + const pet = getAppStateSnapshot().pets.installed.find((candidate) => candidate.id === requestedPetId); + if (!pet) return { targetKind: "default", actualPetId: defaultPet.id, fallbackReason: "pet_not_installed" }; + if (pet.broken) return { targetKind: "default", actualPetId: defaultPet.id, fallbackReason: "pet_broken" }; + return { targetKind: "explicit", actualPetId: pet.id }; +} + +function getCurrentDefaultPet(): { readonly id: string; readonly displayName: string } { + const pet = getCurrentDefaultPetWithFallback(); + return { id: pet.id, displayName: pet.displayName }; +} + +function getCurrentDefaultPetWithFallback(): { readonly id: string; readonly displayName: string; readonly fallbackReason?: "default_broken_fallback_builtin" } { + const state = getAppStateSnapshot(); + const configuredDefault = state.pets.installed.find((pet) => pet.id === state.preferences.defaultPetId); + if (configuredDefault && !configuredDefault.broken) return configuredDefault; + return { ...builtInPet, fallbackReason: "default_broken_fallback_builtin" }; +} + +function getPetDisplayName(petId: string): string { + return getAppStateSnapshot().pets.installed.find((pet) => pet.id === petId)?.displayName ?? petId; +} diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts new file mode 100644 index 00000000..9100ff8e --- /dev/null +++ b/apps/desktop/src/main.ts @@ -0,0 +1,53 @@ +import { app } from "electron"; + +import { initializeAppState, isOnboardingCompleted } from "./app-state.js"; +import { installDefaultPetDisplayHandlers, shouldOpenDefaultPetOnLaunch, showDefaultPet } from "./default-pet-controller.js"; +import { installAppLifecycle } from "./lifecycle.js"; +import { startLocalIpcServer } from "./local-ipc.js"; +import { createAppTray, refreshTrayMenu } from "./tray.js"; +import { checkForGitHubReleaseUpdate } from "./update-checker.js"; +import { installInternalUiHandlers, openTaskWindow } from "./windows.js"; + +// OpenPets does not store browser passwords, cookies, or encrypted app secrets. +// Keep Chromium/Electron from prompting for macOS Keychain or Linux keyring access +// during startup/profile initialization. +app.commandLine.appendSwitch("use-mock-keychain"); +app.commandLine.appendSwitch("password-store", "basic"); + +const gotSingleInstanceLock = app.requestSingleInstanceLock(); + +if (!gotSingleInstanceLock) { + app.quit(); +} else { + installAppLifecycle(); + + app.whenReady().then(async () => { + app.setName("OpenPets"); + + if (process.platform === "darwin") { + app.dock?.hide(); + } + + initializeAppState(); + installInternalUiHandlers(); + createAppTray(); + installDefaultPetDisplayHandlers(); + await startLocalIpcServer(); + if (shouldOpenDefaultPetOnLaunch()) { + showDefaultPet(); + } + if (!isOnboardingCompleted()) { + try { + openTaskWindow("onboarding"); + } catch (error) { + console.error("Failed to open OpenPets onboarding; continuing with tray app.", error); + } + } + refreshTrayMenu(); + void checkForGitHubReleaseUpdate().then(() => refreshTrayMenu()); + console.log("OpenPets desktop shell ready."); + }).catch((error: unknown) => { + console.error("Failed to start OpenPets desktop shell.", error); + app.quit(); + }); +} diff --git a/apps/desktop/src/pet-installation.ts b/apps/desktop/src/pet-installation.ts new file mode 100644 index 00000000..6ba375e9 --- /dev/null +++ b/apps/desktop/src/pet-installation.ts @@ -0,0 +1,338 @@ +import { createWriteStream } from "node:fs"; +import { mkdtemp, mkdir, readFile, rename, rm, stat } from "node:fs/promises"; +import { join, resolve } from "node:path"; +import { pipeline } from "node:stream/promises"; +import { Transform } from "node:stream"; + +import yauzl from "yauzl"; +import type { Entry, ZipFile } from "yauzl"; + +import { getAppStateSnapshot, installPetState, removePetState, setDefaultPet, type OpenPetsStateV1 } from "./app-state.js"; +import { getCatalogUiState } from "./catalog.js"; +import type { CatalogPetV2 } from "./catalog-validation.js"; +import { builtInPet } from "./built-in-pet.js"; +import { assertInsideRoot, assertSafePetId, getInstalledPetDir, getPetsRoot } from "./pet-paths.js"; +import { assertOutputPathInside, hasSupportedZipMagic, ZipEntryPathTracker } from "./zip-safety.js"; + +const maxZipDownloadBytes = 50 * 1024 * 1024; +const maxExtractedTotalBytes = 200 * 1024 * 1024; +const maxFiles = 500; +const maxIndividualFileBytes = 100 * 1024 * 1024; +const downloadTimeoutMs = 30_000; + +const operations = new Set(); + +export async function installPet(petId: string): Promise { + return withPetOperation(petId, async () => { + assertSafePetId(petId); + + if (getAppStateSnapshot().pets.installed.some((pet) => pet.id === petId)) { + throw new Error(`Pet is already installed: ${petId}`); + } + + const catalogPet = await getCatalogPet(petId); + const zip = await downloadPetZip(catalogPet.zip); + const petsRoot = getPetsRoot(); + await mkdir(petsRoot, { recursive: true, mode: 0o700 }); + + const finalDir = getInstalledPetDir(petId); + const tempDir = await mkdtemp(join(petsRoot, `.install-${petId}-`)); + + try { + assertInsideRoot(petsRoot, tempDir); + await extractPetZip(zip, tempDir); + await validateExtractedPet(tempDir); + await rm(finalDir, { recursive: true, force: true }); + await rename(tempDir, finalDir); + + try { + return installPetState({ + id: catalogPet.id, + displayName: catalogPet.displayName, + description: catalogPet.description, + source: { + catalogVersion: 2, + zip: catalogPet.zip, + preview: catalogPet.preview, + }, + }); + } catch (error) { + await rm(finalDir, { recursive: true, force: true }); + throw error; + } + } catch (error) { + await rm(tempDir, { recursive: true, force: true }); + throw error; + } + }); +} + +export async function removePet(petId: string): Promise { + return withPetOperation(petId, async () => { + if (petId === builtInPet.id) { + throw new Error("Built-in pet cannot be removed."); + } + assertSafePetId(petId); + const dir = getInstalledPetDir(petId); + const state = removePetState(petId); + try { + await rm(dir, { recursive: true, force: true }); + } catch (error) { + throw new Error(`Pet was removed from OpenPets state, but local files could not be deleted from ${dir}. You may need to remove them manually. ${error instanceof Error ? error.message : ""}`.trim()); + } + return state; + }); +} + +export async function setDefaultInstalledPet(petId: string): Promise { + return withPetOperation(petId, async () => { + if (petId !== builtInPet.id) { + assertSafePetId(petId); + } + return setDefaultPet(petId); + }); +} + +export async function withPetOperation(key: string, callback: () => Promise): Promise { + if (operations.has(key)) { + throw new Error("An operation for this pet is already in progress."); + } + + operations.add(key); + try { + return await callback(); + } finally { + operations.delete(key); + } +} + +async function getCatalogPet(petId: string): Promise { + const catalog = await getCatalogUiState(); + const pet = catalog.pets.find((candidate) => candidate.id === petId); + if (!pet) { + throw new Error(`Pet is not available in the validated catalog: ${petId}`); + } + return pet; +} + +async function downloadPetZip(zipUrl: string): Promise { + validateZipUrl(zipUrl); + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), downloadTimeoutMs); + + try { + const response = await fetch(zipUrl, { + signal: controller.signal, + redirect: "error", + credentials: "omit", + }); + + validateZipUrl(response.url); + if (response.url !== zipUrl) throw new Error("Zip download final URL changed."); + if (!response.ok) throw new Error(`Zip download failed with HTTP ${response.status}.`); + + const buffer = await readLimitedResponse(response, maxZipDownloadBytes); + validateZipMagic(buffer); + return buffer; + } finally { + clearTimeout(timeout); + } +} + +function validateZipUrl(value: string): void { + const url = new URL(value); + if (url.protocol !== "https:") throw new Error("Zip URL must use https."); + if (url.hostname !== "zip.openpets.dev") throw new Error("Zip URL host is not allowed."); + if (!url.pathname.startsWith("/pets/")) throw new Error("Zip URL path is not allowed."); + if (url.username || url.password) throw new Error("Zip URL cannot include credentials."); + if (url.port) throw new Error("Zip URL cannot include a custom port."); +} + +async function readLimitedResponse(response: Response, maxBytes: number): Promise { + const reader = response.body?.getReader(); + if (!reader) throw new Error("Zip response body is unavailable for bounded reading."); + + const chunks: Uint8Array[] = []; + let total = 0; + + while (true) { + const { done, value } = await reader.read(); + if (done) break; + total += value.byteLength; + if (total > maxBytes) throw new Error("Zip download is too large."); + chunks.push(value); + } + + return Buffer.concat(chunks, total); +} + +function validateZipMagic(buffer: Buffer): void { + if (!hasSupportedZipMagic(buffer)) { + throw new Error("Downloaded file has an unsupported zip signature."); + } +} + +async function extractPetZip(zip: Buffer, tempDir: string): Promise { + const zipFile = await openZipFromBuffer(zip); + const pathTracker = new ZipEntryPathTracker(); + const seenRequired = new Set(); + let fileCount = 0; + let extractedTotal = 0; + + try { + await new Promise((resolvePromise, rejectPromise) => { + let settled = false; + + const reject = (error: unknown): void => { + if (settled) return; + settled = true; + zipFile.close(); + rejectPromise(error instanceof Error ? error : new Error("Zip extraction failed.")); + }; + + zipFile.on("error", reject); + zipFile.on("end", () => { + if (settled) return; + settled = true; + resolvePromise(); + }); + + zipFile.on("entry", (entry) => { + void processEntry(entry).then(() => { + if (!settled) zipFile.readEntry(); + }).catch(reject); + }); + + const processEntry = async (entry: Entry): Promise => { + validateEntryMetadata(entry); + const safePath = pathTracker.accept(entry.fileName); + + if (safePath.isDirectory) { + return; + } + + if (!safePath.relativeOutputPath) { + throw new Error("Zip file entry is missing an output path."); + } + + fileCount += 1; + if (fileCount > maxFiles) throw new Error("Zip contains too many files."); + if (entry.uncompressedSize > maxIndividualFileBytes) throw new Error("Zip entry is too large."); + extractedTotal += entry.uncompressedSize; + if (extractedTotal > maxExtractedTotalBytes) throw new Error("Zip extracted total is too large."); + + const outputPath = resolve(tempDir, safePath.relativeOutputPath); + assertOutputPathInside(tempDir, outputPath); + seenRequired.add(safePath.relativeOutputPath); + await writeEntry(entry, zipFile, outputPath, entry.uncompressedSize); + }; + + zipFile.readEntry(); + }); + } finally { + zipFile.close(); + } + + if (!seenRequired.has("pet.json") || !seenRequired.has("spritesheet.webp")) { + throw new Error("Zip must contain pet.json and spritesheet.webp."); + } +} + +function openZipFromBuffer(buffer: Buffer): Promise { + return new Promise((resolvePromise, rejectPromise) => { + yauzl.fromBuffer(buffer, { lazyEntries: true, validateEntrySizes: true, strictFileNames: true }, (error, zipFile) => { + if (error) { + rejectPromise(error); + return; + } + + if (!zipFile) { + rejectPromise(new Error("Zip file could not be opened.")); + return; + } + + resolvePromise(zipFile); + }); + }); +} + +function validateEntryMetadata(entry: Entry): void { + if (entry.isEncrypted()) throw new Error("Encrypted zip entries are not supported."); + if (entry.compressionMethod !== 0 && entry.compressionMethod !== 8) { + throw new Error("Unsupported zip entry compression method."); + } + if (entry.compressedSize > maxZipDownloadBytes) throw new Error("Zip entry compressed size is too large."); + if (entry.uncompressedSize > maxIndividualFileBytes) throw new Error("Zip entry uncompressed size is too large."); + + const unixMode = getUnixMode(entry); + if (unixMode === null) return; + + const type = unixMode & 0o170000; + const isKnownFileType = type !== 0; + const isRegularFile = type === 0o100000; + const isDirectory = type === 0o040000; + if (isKnownFileType && !isRegularFile && !isDirectory) { + throw new Error("Zip entry special files are not supported."); + } +} + +function getUnixMode(entry: Entry): number | null { + if ((entry.versionMadeBy >> 8) !== 3) { + return null; + } + + return (entry.externalFileAttributes >> 16) & 0o177777; +} + +function writeEntry(entry: Entry, zipFile: ZipFile, outputPath: string, expectedBytes: number): Promise { + return new Promise((resolvePromise, rejectPromise) => { + zipFile.openReadStream(entry, (error, readStream) => { + if (error) { + rejectPromise(error); + return; + } + + if (!readStream) { + rejectPromise(new Error("Zip entry stream could not be opened.")); + return; + } + + let actualBytes = 0; + const counter = new Transform({ + transform(chunk: Buffer, _encoding, callback) { + actualBytes += chunk.byteLength; + if (actualBytes > maxIndividualFileBytes) { + callback(new Error("Zip entry exceeded individual size limit.")); + return; + } + callback(null, chunk); + }, + }); + + pipeline(readStream, counter, createWriteStream(outputPath, { mode: 0o600 })) + .then(() => { + if (actualBytes !== expectedBytes) { + rejectPromise(new Error("Zip entry extracted size did not match metadata.")); + return; + } + + resolvePromise(); + }) + .catch(rejectPromise); + }); + }); +} + +async function validateExtractedPet(tempDir: string): Promise { + const petJsonPath = join(tempDir, "pet.json"); + const spritesheetPath = join(tempDir, "spritesheet.webp"); + assertOutputPathInside(tempDir, petJsonPath); + assertOutputPathInside(tempDir, spritesheetPath); + + JSON.parse(await readFile(petJsonPath, "utf8")) as unknown; + + const spritesheet = await stat(spritesheetPath); + if (!spritesheet.isFile()) throw new Error("spritesheet.webp must be a file."); + if (spritesheet.size <= 0) throw new Error("spritesheet.webp is empty."); + if (spritesheet.size > maxIndividualFileBytes) throw new Error("spritesheet.webp is too large."); +} diff --git a/apps/desktop/src/pet-paths.ts b/apps/desktop/src/pet-paths.ts new file mode 100644 index 00000000..48b5f0e7 --- /dev/null +++ b/apps/desktop/src/pet-paths.ts @@ -0,0 +1,30 @@ +import { join, resolve, sep } from "node:path"; + +import { app } from "electron"; + +export function getPetsRoot(): string { + return join(app.getPath("userData"), "pets"); +} + +export function getInstalledPetDir(petId: string): string { + assertSafePetId(petId); + const root = getPetsRoot(); + const target = resolve(root, petId); + assertInsideRoot(root, target); + return target; +} + +export function assertSafePetId(petId: string): void { + if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(petId) || petId === "builtin") { + throw new Error(`Invalid installed pet id: ${petId}`); + } +} + +export function assertInsideRoot(root: string, target: string): void { + const resolvedRoot = resolve(root); + const resolvedTarget = resolve(target); + + if (resolvedTarget !== resolvedRoot && !resolvedTarget.startsWith(`${resolvedRoot}${sep}`)) { + throw new Error("Resolved path escapes OpenPets pets directory."); + } +} diff --git a/apps/desktop/src/pet-window.ts b/apps/desktop/src/pet-window.ts new file mode 100644 index 00000000..e4af7fc5 --- /dev/null +++ b/apps/desktop/src/pet-window.ts @@ -0,0 +1,545 @@ +import { app, BrowserWindow, ipcMain, Menu, type IpcMainEvent } from "electron"; +import { mkdir, stat, writeFile } from "node:fs/promises"; +import { join } from "node:path"; +import { pathToFileURL } from "node:url"; + +import { getAppStateSnapshot, markPetBroken, type PetScaleValue } from "./app-state.js"; +import { clampToPrimaryWorkArea, defaultPetWindowSize, getDefaultPetInitialPosition, type Point } from "./display.js"; +import { builtInPet } from "./built-in-pet.js"; +import { getInstalledPetDir } from "./pet-paths.js"; +import type { OpenPetsReaction } from "./local-ipc-protocol.js"; +import { pickReactionMessage } from "./reaction-messages.js"; + +export interface DefaultPetWindowOptions { + readonly position: Point; + readonly paused: boolean; + readonly display: PetTransientDisplay | null; + readonly onPositionChanged: (position: Point) => void; + readonly onHideRequested: () => void; +} + +export interface AgentPetWindowOptions { + readonly petId: string; + readonly displayName: string; + readonly position: Point; + readonly display: PetTransientDisplay | null; + readonly onCloseRequested: () => void; +} + +export interface PetTransientDisplay { + readonly reaction?: OpenPetsReaction; + readonly message?: string; + readonly reactionMessage?: string; +} + +type PetMotionState = "idle" | "run-left" | "run-right"; +type UniversalSpriteState = "idle" | "running-right" | "running-left" | "waving" | "jumping" | "failed" | "waiting" | "running" | "review"; + +const motionToSpriteState = { + idle: "idle", + "run-right": "running-right", + "run-left": "running-left", +} as const satisfies Record; + +const reactionToSpriteState = { + idle: "idle", + thinking: "review", + working: "running", + editing: "running", + running: "running", + testing: "waiting", + waiting: "waiting", + waving: "waving", + success: "jumping", + error: "failed", + celebrating: "jumping", +} as const satisfies Record; + +const defaultPetSprite = { + fileName: "default-pet-spritesheet.webp", + frameWidth: 192, + frameHeight: 208, + columns: 8, + rows: 9, + states: { + idle: { row: 0, frames: 6, durationMs: 5500, iterations: "infinite" }, + "running-right": { row: 1, frames: 8, durationMs: 1060 }, + "running-left": { row: 2, frames: 8, durationMs: 1060 }, + waving: { row: 3, frames: 4, durationMs: 700, iterations: 2 }, + jumping: { row: 4, frames: 5, durationMs: 840, iterations: 2 }, + failed: { row: 5, frames: 8, durationMs: 1220, iterations: 2 }, + waiting: { row: 6, frames: 6, durationMs: 1010 }, + running: { row: 7, frames: 6, durationMs: 820 }, + review: { row: 8, frames: 6, durationMs: 1030 }, + } satisfies Record, +} as const; + +export function createDefaultPetWindow(options: DefaultPetWindowOptions): BrowserWindow { + const window = createBasePetWindow("OpenPets — Default Pet", options.position); + installMousePassthroughAndDrag(window); + installMotionStatePublisher(window); + installPetContextMenu(window, { label: "Hide pet", click: options.onHideRequested }); + + const savePosition = debounce(() => { + if (window.isDestroyed()) { + return; + } + + options.onPositionChanged(readWindowPosition(window)); + }, 150); + + window.on("move", savePosition); + window.on("moved", savePosition); + window.on("close", () => { + options.onPositionChanged(readWindowPosition(window)); + }); + + void loadDefaultPetContent(window, options.paused, options.display); + + return window; +} + +export function createAgentPetWindow(options: AgentPetWindowOptions): BrowserWindow { + const window = createBasePetWindow(`OpenPets — ${options.displayName}`, options.position); + installMousePassthroughAndDrag(window); + installMotionStatePublisher(window); + installPetContextMenu(window, { label: "Close pet", click: options.onCloseRequested }); + void loadExplicitPetContent(window, options.petId, options.display); + return window; +} + +function installPetContextMenu(window: BrowserWindow, action: { readonly label: string; readonly click: () => void }): void { + window.webContents.on("context-menu", (event) => { + event.preventDefault(); + if (window.isDestroyed()) return; + Menu.buildFromTemplate([{ label: action.label, click: action.click }]).popup({ window }); + }); +} + +function installMousePassthroughAndDrag(window: BrowserWindow): void { + let dragging: { readonly startScreenX: number; readonly startScreenY: number; readonly startWindowX: number; readonly startWindowY: number } | null = null; + + const isFromWindow = (event: IpcMainEvent): boolean => event.sender === window.webContents; + const setPassthrough = (passthrough: boolean): void => { + if (window.isDestroyed()) return; + if (passthrough) window.setIgnoreMouseEvents(true, { forward: true }); + else window.setIgnoreMouseEvents(false); + }; + + const handleHitTest = (event: IpcMainEvent, interactive: unknown): void => { + if (!isFromWindow(event)) return; + setPassthrough(!interactive && !dragging); + }; + + const handleDragStart = (event: IpcMainEvent, point: unknown): void => { + if (!isFromWindow(event) || !isScreenPoint(point)) return; + const [startWindowX, startWindowY] = window.getPosition(); + dragging = { startScreenX: point.screenX, startScreenY: point.screenY, startWindowX, startWindowY }; + setPassthrough(false); + }; + + const handleDragMove = (event: IpcMainEvent, point: unknown): void => { + if (!isFromWindow(event) || !dragging || !isScreenPoint(point)) return; + window.setPosition(dragging.startWindowX + Math.round(point.screenX - dragging.startScreenX), dragging.startWindowY + Math.round(point.screenY - dragging.startScreenY), false); + }; + + const handleDragEnd = (event: IpcMainEvent): void => { + if (!isFromWindow(event)) return; + dragging = null; + }; + + ipcMain.on("openpets:pet-hit-test", handleHitTest); + ipcMain.on("openpets:pet-drag-start", handleDragStart); + ipcMain.on("openpets:pet-drag-move", handleDragMove); + ipcMain.on("openpets:pet-drag-end", handleDragEnd); + window.webContents.once("did-finish-load", () => setPassthrough(true)); + window.on("closed", () => { + ipcMain.off("openpets:pet-hit-test", handleHitTest); + ipcMain.off("openpets:pet-drag-start", handleDragStart); + ipcMain.off("openpets:pet-drag-move", handleDragMove); + ipcMain.off("openpets:pet-drag-end", handleDragEnd); + }); +} + +function isScreenPoint(value: unknown): value is { readonly screenX: number; readonly screenY: number } { + return typeof value === "object" && value !== null && typeof (value as { readonly screenX?: unknown }).screenX === "number" && typeof (value as { readonly screenY?: unknown }).screenY === "number"; +} + +function createBasePetWindow(title: string, position: Point): BrowserWindow { + const window = new BrowserWindow({ + title, + width: defaultPetWindowSize.width, + height: defaultPetWindowSize.height, + x: position.x, + y: position.y, + frame: false, + transparent: true, + resizable: false, + maximizable: false, + minimizable: false, + fullscreenable: false, + skipTaskbar: true, + alwaysOnTop: true, + show: false, + hasShadow: false, + backgroundColor: "#00000000", + webPreferences: { + nodeIntegration: false, + contextIsolation: true, + sandbox: true, + preload: join(app.getAppPath(), "pet-preload.cjs"), + }, + }); + + window.setMenu(null); + window.setAlwaysOnTop(true, "floating"); + + window.webContents.setWindowOpenHandler(() => ({ action: "deny" })); + window.webContents.on("will-navigate", (event, url) => { + if (isAllowedPetDocumentUrl(url)) return; + event.preventDefault(); + }); + window.webContents.on("will-redirect", (event) => { + event.preventDefault(); + }); + window.webContents.on("did-fail-load", (_event, errorCode, errorDescription) => { + console.error("Failed to load default pet window.", { errorCode, errorDescription }); + }); + window.webContents.on("render-process-gone", (_event, details) => { + console.error("Default pet renderer process gone.", details); + }); + + return window; +} + +export async function loadDefaultPetContent(window: BrowserWindow, paused: boolean, display: PetTransientDisplay | null = null): Promise { + const html = await createDefaultPetHtml(paused, display); + await loadPetHtmlFile(window, html, "default").catch((error: unknown) => { + console.error("Failed to load default pet URL.", error); + }); +} + +export async function loadExplicitPetContent(window: BrowserWindow, petId: string, display: PetTransientDisplay | null = null): Promise { + try { + const state = getAppStateSnapshot(); + const pet = state.pets.installed.find((candidate) => candidate.id === petId); + if (!pet || pet.broken || pet.id === builtInPet.id) { + throw new Error(`Cannot render explicit pet: ${petId}`); + } + const html = await createInstalledPetHtml(pet.id, pet.displayName, false, display, state.preferences.petScale as PetScaleValue); + await loadPetHtmlFile(window, html, `explicit-${pet.id}`); + } catch (error: unknown) { + console.error(`Failed to load explicit pet ${petId} URL.`, error); + } +} + +export function preparePetTransientDisplay(display: PetTransientDisplay): PetTransientDisplay { + if (!display.reaction || display.message || display.reactionMessage) return display; + return { ...display, reactionMessage: pickReactionMessage(display.reaction) }; +} + +export function mergePetTransientDisplay(current: PetTransientDisplay | null, next: PetTransientDisplay): PetTransientDisplay { + if (next.message || !next.reaction || !current?.message) return preparePetTransientDisplay(next); + return { ...current, reaction: next.reaction }; +} + +export function getTransientReactionAnimationMs(display: PetTransientDisplay): number | null { + if (!display.reaction) return null; + const state = reactionToSpriteState[display.reaction]; + const row = defaultPetSprite.states[state]; + const iterations = "iterations" in row ? row.iterations : "infinite"; + return typeof iterations === "number" ? row.durationMs * iterations : null; +} + +export function clearTransientReaction(display: PetTransientDisplay): PetTransientDisplay { + if (!display.reaction) return display; + return { ...display, reaction: undefined }; +} + +export function setPetReactionState(window: BrowserWindow, state: UniversalSpriteState): void { + if (window.isDestroyed()) return; + window.webContents.send("openpets:pet-reaction-state", state); +} + +export function getSafeDefaultPetPosition(position: Point | undefined): Point { + return clampToPrimaryWorkArea(position ?? getDefaultPetInitialPosition(), defaultPetWindowSize); +} + +export function readWindowPosition(window: BrowserWindow): Point { + const [x, y] = window.getPosition(); + return clampToPrimaryWorkArea({ x, y }, defaultPetWindowSize); +} + +async function createDefaultPetHtml(paused: boolean, display: PetTransientDisplay | null): Promise { + const installedPetHtml = await tryCreateInstalledPetHtml(paused, display); + if (installedPetHtml) { + return installedPetHtml; + } + + const spriteUrl = pathToFileURL(join(app.getAppPath(), "assets", defaultPetSprite.fileName)).toString(); + const bubble = createBubbleMarkup(display, paused); + const stateRows = defaultPetSprite.states; + const scale = getAppStateSnapshot().preferences.petScale as PetScaleValue; + + return ` + + + + + + OpenPets Default Pet + + + +

+ + `; +} + +async function tryCreateInstalledPetHtml(paused: boolean, display: PetTransientDisplay | null): Promise { + const state = getAppStateSnapshot(); + const selected = state.pets.installed.find((pet) => pet.id === state.preferences.defaultPetId); + + if (!selected || selected.id === builtInPet.id || selected.broken) { + return null; + } + + try { + return await createInstalledPetHtml(selected.id, selected.displayName, paused, display, state.preferences.petScale as PetScaleValue); + } catch (error) { + console.error(`Failed to render installed default pet ${selected.id}; falling back to built-in pet.`, error); + try { + markPetBroken(selected.id, error instanceof Error ? error.message : "Installed pet rendering failed."); + } catch (markError) { + console.error(`Failed to mark installed pet ${selected.id} broken.`, markError); + } + return null; + } +} + +async function createInstalledPetHtml(petId: string, displayName: string, paused: boolean, display: PetTransientDisplay | null, scale: PetScaleValue): Promise { + const spritesheetPath = join(getInstalledPetDir(petId), "spritesheet.webp"); + const spritesheet = await stat(spritesheetPath); + if (!spritesheet.isFile() || spritesheet.size <= 0 || spritesheet.size > 100 * 1024 * 1024) { + throw new Error("Installed pet spritesheet is missing or too large."); + } + + const imageUrl = pathToFileURL(spritesheetPath).toString(); + const bubble = createBubbleMarkup(display, paused); + const stateRows = defaultPetSprite.states; + + return ` + + + + + + OpenPets Default Pet + + + +
+ ${bubble} +
+ +
+
+ + `; +} + +function createPetWindowCss(paused: boolean, scale: PetScaleValue): string { + const opacity = paused ? "0.62" : "1"; + const playState = paused ? "paused" : "running"; + const scaledWidth = Math.ceil(defaultPetSprite.frameWidth * scale); + const scaledHeight = Math.ceil(defaultPetSprite.frameHeight * scale); + const petBottom = 22; + const bubbleBottom = Math.ceil(petBottom + scaledHeight + 3); + return ` + :root { color-scheme: dark; --pet-opacity: ${opacity}; --play-state: ${playState}; } + html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: transparent; user-select: none; -webkit-font-smoothing: antialiased; } + html { color: #172033; } + body { -webkit-app-region: no-drag; pointer-events: none; } + .stage { width: 100%; height: 100%; position: relative; box-sizing: border-box; overflow: visible; } + .pet-shell { position: absolute; left: 50%; bottom: ${petBottom}px; width: ${scaledWidth}px; height: ${scaledHeight}px; display: block; opacity: var(--pet-opacity); filter: drop-shadow(0 10px 12px rgba(15, 23, 42, 0.24)) drop-shadow(0 2px 3px rgba(15, 23, 42, 0.18)); transform: translateX(-50%); transition-property: opacity, filter; transition-duration: 180ms; transition-timing-function: cubic-bezier(0.2, 0, 0, 1); pointer-events: auto; -webkit-app-region: no-drag; cursor: grab; } + .bubble { position: absolute; left: 50%; bottom: ${bubbleBottom}px; z-index: 2; box-sizing: border-box; max-width: min(200px, calc(100vw - 14px)); max-height: 92px; padding: 8px 10px; background: #fff; color: #000; font: 700 11px/14px "Courier New", Courier, "Lucida Sans Typewriter", "Lucida Typewriter", monospace; text-align: left; border: 2px solid #000; border-radius: 4px; box-shadow: 2px 2px 0 #000; white-space: normal; overflow-wrap: anywhere; word-break: normal; overflow: hidden; pointer-events: auto; -webkit-app-region: no-drag; transform: translateX(-50%); opacity: 1; animation: bubble-in 160ms steps(2, end); } + .bubble-text { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 5; -webkit-box-orient: vertical; } + .bubble::after, .bubble::before { content: none; } + .bubble.is-reaction { max-width: min(142px, calc(100vw - 10px)); max-height: 64px; padding: 6px 8px; font: 750 11px/13px "Courier New", Courier, "Lucida Sans Typewriter", "Lucida Typewriter", monospace; text-align: center; overflow-wrap: break-word; } + .bubble.is-reaction .bubble-text { -webkit-line-clamp: 3; } + .bubble.is-long-message { max-width: min(204px, calc(100vw - 14px)); max-height: 106px; font-size: 10.5px; line-height: 13px; } + .bubble.is-long-message .bubble-text { -webkit-line-clamp: 7; } + .bubble.is-very-long-message { max-width: min(204px, calc(100vw - 14px)); max-height: 126px; font-size: 10px; line-height: 13px; } + .bubble.is-very-long-message .bubble-text { -webkit-line-clamp: 9; } + @keyframes bubble-in { from { opacity: 0; transform: translateX(-50%) translateY(3px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } } + @media (prefers-reduced-motion: reduce) { .sprite, .installed-sprite, .bubble { animation: none !important; } } + `; +} + +function createSpriteStateCss(selector: ".sprite" | ".installed-sprite"): string { + const reactionRules = Object.keys(defaultPetSprite.states).map((state) => createSpriteRule(`html[data-reaction-state="${state}"] ${selector}`, state as UniversalSpriteState)); + const motionRules = (Object.entries(motionToSpriteState) as Array<[PetMotionState, UniversalSpriteState]>) + .filter(([motion]) => motion !== "idle") + .map(([motion, state]) => createSpriteRule(`html[data-motion-state="${motion}"] ${selector}`, state)); + return [...reactionRules, ...motionRules].join("\n"); +} + +function createSpriteRule(selector: string, state: UniversalSpriteState): string { + const row = defaultPetSprite.states[state]; + const iterations = "iterations" in row ? row.iterations : "infinite"; + return `${selector} { --sprite-row-y: -${row.row * defaultPetSprite.frameHeight}px; --sprite-frames: ${row.frames}; --sprite-duration: ${row.durationMs}ms; --sprite-iterations: ${iterations}; }`; +} + +function getReactionSpriteState(reaction: OpenPetsReaction | undefined): UniversalSpriteState { + return reaction ? reactionToSpriteState[reaction] : "idle"; +} + +function createBubbleMarkup(display: PetTransientDisplay | null, paused: boolean): string { + const text = display?.message ?? display?.reactionMessage ?? (display?.reaction ? pickReactionMessage(display.reaction) : undefined) ?? (paused ? "Paused" : ""); + if (!text) return ""; + const className = getBubbleClassName(text, Boolean(display?.message && !display?.reactionMessage)); + return `
${escapeHtml(text)}
`; +} + +function getBubbleClassName(text: string, isExplicitMessage: boolean): string { + if (!isExplicitMessage) return "bubble is-reaction"; + const lengthClass = text.length > 95 ? " is-very-long-message" : text.length > 56 ? " is-long-message" : ""; + return `bubble is-message${lengthClass}`; +} + +function escapeHtml(value: string): string { + return value + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); +} + +function escapeCssUrl(value: string): string { + return value.replaceAll("\\", "\\\\").replaceAll('"', '\\"').replaceAll("\n", ""); +} + +function installMotionStatePublisher(window: BrowserWindow): void { + let lastX = window.getPosition()[0]; + let lastSent: PetMotionState = "idle"; + let idleTimer: NodeJS.Timeout | null = null; + + const sendMotionState = (state: PetMotionState): void => { + if (window.isDestroyed() || lastSent === state) return; + lastSent = state; + window.webContents.send("openpets:pet-motion", state); + }; + + const scheduleIdle = (): void => { + if (idleTimer) clearTimeout(idleTimer); + idleTimer = setTimeout(() => { + idleTimer = null; + sendMotionState("idle"); + }, 180); + }; + + const handleMove = (): void => { + if (window.isDestroyed()) return; + const [x] = window.getPosition(); + const deltaX = x - lastX; + lastX = x; + + if (Math.abs(deltaX) >= 3) { + sendMotionState(deltaX > 0 ? "run-right" : "run-left"); + } + scheduleIdle(); + }; + + window.on("move", handleMove); + window.on("moved", handleMove); + window.webContents.on("did-finish-load", () => { + lastSent = "idle"; + window.webContents.send("openpets:pet-motion", "idle"); + }); + window.on("closed", () => { + if (idleTimer) clearTimeout(idleTimer); + }); +} + +function isAllowedPetDocumentUrl(url: string): boolean { + return url.startsWith("data:text/html") || url.startsWith("file://"); +} + +async function loadPetHtmlFile(window: BrowserWindow, html: string, name: string): Promise { + const dir = join(app.getPath("userData"), "rendered-pets"); + await mkdir(dir, { recursive: true }); + const safeName = name.replace(/[^a-z0-9_-]/gi, "-").slice(0, 80) || "pet"; + const filePath = join(dir, `${safeName}.html`); + await writeFile(filePath, html, "utf8"); + await window.loadFile(filePath); +} + +function debounce(callback: () => void, delayMs: number): () => void { + let timeout: NodeJS.Timeout | undefined; + + return () => { + if (timeout) { + clearTimeout(timeout); + } + + timeout = setTimeout(callback, delayMs); + }; +} diff --git a/apps/desktop/src/reaction-messages.ts b/apps/desktop/src/reaction-messages.ts new file mode 100644 index 00000000..8169df47 --- /dev/null +++ b/apps/desktop/src/reaction-messages.ts @@ -0,0 +1,251 @@ +import type { OpenPetsReaction } from "./local-ipc-protocol.js"; + +export const reactionMessagePools = { + idle: [ + "Hanging out", + "Right here", + "Ready when you are", + "Keeping watch", + "Standing by", + "At your service", + "Waiting patiently", + "Holding position", + "Keeping you company", + "Taking a tiny breather", + "Still here", + "Ready for the next thing", + "Watching the workspace", + "Calm and ready", + "Just vibing", + "No rush", + "Quietly on duty", + "Settled in", + "Available if needed", + "Resting the paws", + ], + thinking: [ + "Thinking it through", + "Let me think", + "Checking the clues", + "One moment", + "Looking closer", + "Puzzling this out", + "Tracing the idea", + "Connecting the dots", + "Sorting the pieces", + "Reading the room", + "Following the thread", + "Considering options", + "Making a tiny plan", + "Looking for the clean path", + "Running the thought maze", + "Checking assumptions", + "Finding the pattern", + "Thinking carefully", + "Letting the gears turn", + "Studying the situation", + ], + working: [ + "Working on it", + "Making progress", + "On the case", + "Handling it", + "Steady progress", + "Moving things along", + "Doing the work", + "Chipping away", + "Keeping momentum", + "Building this up", + "Putting pieces together", + "Getting it done", + "Making it happen", + "Carrying the task", + "Tiny paws at work", + "Staying focused", + "Working the problem", + "Pushing forward", + "Keeping busy", + "Taking care of it", + ], + editing: [ + "Making edits", + "Tuning things up", + "Shaping the changes", + "Polishing this", + "Adjusting the details", + "Refining the edges", + "Cleaning this up", + "Smoothing the rough bits", + "Moving text around", + "Improving the shape", + "Making it tidier", + "Trimming the fluff", + "Sharpening the result", + "Fitting pieces neatly", + "Nudging this into place", + "Reworking a bit", + "Tidying the change", + "Polishing the paws off it", + "Aligning the details", + "Making the diff nicer", + ], + running: [ + "Running now", + "Here we go", + "Putting it in motion", + "Off and running", + "Letting it run", + "Starting the engine", + "Kicking things off", + "Sending it through", + "Launching the command", + "Giving it a spin", + "Running the task", + "In motion now", + "Wheels are turning", + "Command is underway", + "Letting the machine work", + "On the move", + "Firing it up", + "Executing the plan", + "Making the terminal hum", + "Running the route", + ], + testing: [ + "Testing this", + "Checking behavior", + "Running the checks", + "Verifying things", + "Looking for issues", + "Putting it through its paces", + "Checking the safety rails", + "Looking for regressions", + "Giving it a careful look", + "Testing the path", + "Checking the result", + "Running the guardrails", + "Sniffing out bugs", + "Making sure it holds", + "Trying to break it gently", + "Watching the tests", + "Confirming the fix", + "Inspecting the behavior", + "Looking for loose ends", + "Verifying the tiny details", + ], + waiting: [ + "Waiting on you", + "Paused for input", + "Standing by", + "Ready for approval", + "Holding here", + "Need a decision", + "Waiting for the nod", + "Paused at the gate", + "Your call", + "Holding the line", + "Waiting patiently", + "Ready when approved", + "Just need permission", + "Awaiting direction", + "Stopped for a choice", + "Keeping this warm", + "Waiting for your move", + "At the checkpoint", + "Paused with purpose", + "Standing at attention", + ], + waving: [ + "Hello there", + "Just checking in", + "I see you", + "Tiny wave", + "Over here", + "Little hello", + "Hi hi", + "Friendly ping", + "Waving from the corner", + "Noticed something", + "Attention please", + "Small wave incoming", + "Quick hello", + "Popping in", + "Soft ping", + "Tiny paws waving", + "Hello from OpenPets", + "Checking the window", + "Here with an update", + "A little wave", + ], + success: [ + "Done", + "All set", + "That worked", + "Nice and tidy", + "Finished up", + "Success", + "That landed", + "Looks good", + "Wrapped up", + "Clean finish", + "Task complete", + "Green lights", + "Everything passed", + "Good to go", + "Nicely done", + "Ready for the next one", + "That came together", + "Finished cleanly", + "Tiny win secured", + "No loose ends found", + ], + error: [ + "Something broke", + "Hit a snag", + "That needs a look", + "Not quite there", + "Trouble spotted", + "Found a problem", + "That did not pass", + "Oops, a bump", + "Needs attention", + "Something complained", + "The path got bumpy", + "This needs fixing", + "A check failed", + "Not happy yet", + "Found a rough edge", + "There is a hiccup", + "That went sideways", + "Issue detected", + "Tiny alarm bells", + "Let us inspect this", + ], + celebrating: [ + "Tiny victory", + "We did it", + "Worth a little dance", + "That deserves a cheer", + "Celebrating this", + "Little party time", + "Happy paws", + "Victory wiggle", + "That feels good", + "Small celebration", + "Confetti in spirit", + "Cheering quietly", + "That is a win", + "Nice little triumph", + "Joyful moment", + "Paws in the air", + "Tiny parade", + "We earned this", + "Celebration mode", + "Happy little bounce", + ], +} as const satisfies Record; + +export function pickReactionMessage(reaction: OpenPetsReaction, random: () => number = Math.random): string { + const pool = reactionMessagePools[reaction]; + return pool[Math.floor(random() * pool.length) % pool.length] ?? reaction; +} diff --git a/apps/desktop/src/state.ts b/apps/desktop/src/state.ts new file mode 100644 index 00000000..06c89a1b --- /dev/null +++ b/apps/desktop/src/state.ts @@ -0,0 +1,12 @@ +export interface ShellState { + paused: boolean; +} + +export const shellState: ShellState = { + paused: false, +}; + +export function togglePaused(): boolean { + shellState.paused = !shellState.paused; + return shellState.paused; +} diff --git a/apps/desktop/src/tray.ts b/apps/desktop/src/tray.ts new file mode 100644 index 00000000..d0e9ccb2 --- /dev/null +++ b/apps/desktop/src/tray.ts @@ -0,0 +1,110 @@ +import { Menu, Tray, type MenuItemConstructorOptions } from "electron"; + +import { getAppStateSnapshot, isOnboardingCompleted } from "./app-state.js"; +import { createTrayIcon } from "./assets.js"; +import { hideDefaultPet, isDefaultPetVisible, setDefaultPetPaused, showDefaultPet } from "./default-pet-controller.js"; +import { quitOpenPets } from "./lifecycle.js"; +import { shellState, togglePaused } from "./state.js"; +import { getUpdateStatus, openUpdateReleasePage } from "./update-checker.js"; +import { openTaskWindow } from "./windows.js"; + +let tray: Tray | null = null; + +export function createAppTray(): Tray { + if (tray) { + return tray; + } + + tray = new Tray(createTrayIcon()); + tray.setToolTip("OpenPets"); + refreshTrayMenu(); + console.log("OpenPets tray created."); + + return tray; +} + +export function refreshTrayMenu(): void { + if (!tray) { + return; + } + + const state = getAppStateSnapshot(); + const defaultPet = state.pets.installed.find((pet) => pet.id === state.preferences.defaultPetId && !pet.broken) ?? state.pets.installed[0]; + const defaultPetName = defaultPet?.displayName ?? "Built-in Pet"; + + const continueSetupItems = isOnboardingCompleted() + ? [] + : [ + { + label: "Continue Setup...", + click: () => openTaskWindow("onboarding"), + }, + { type: "separator" as const }, + ]; + + const menu = Menu.buildFromTemplate([ + { + label: "OpenPets", + enabled: false, + }, + ...createUpdateMenuItems(), + { type: "separator" }, + ...continueSetupItems, + { + label: `Default Pet: ${defaultPetName}`, + click: () => openTaskWindow("pet-manager"), + }, + { + label: isDefaultPetVisible() ? "Hide Default Pet" : "Show Default Pet", + click: () => { + if (isDefaultPetVisible()) { + hideDefaultPet(); + } else { + showDefaultPet(); + } + + refreshTrayMenu(); + }, + }, + { + label: shellState.paused ? "Resume All Pets" : "Pause All Pets", + click: () => { + const paused = togglePaused(); + setDefaultPetPaused(paused); + console.log(paused ? "OpenPets paused." : "OpenPets resumed."); + refreshTrayMenu(); + }, + }, + { type: "separator" }, + { + label: "Manage Pets...", + click: () => openTaskWindow("pet-manager"), + }, + { + label: "Integrations...", + click: () => openTaskWindow("agent-setup"), + }, + { + label: "Settings...", + click: () => openTaskWindow("settings"), + }, + { type: "separator" }, + { + label: "Quit OpenPets", + click: () => quitOpenPets(), + }, + ]); + + tray.setContextMenu(menu); +} + +function createUpdateMenuItems(): MenuItemConstructorOptions[] { + const status = getUpdateStatus(); + if (status.state !== "available") return []; + return [ + { + label: `Update available: ${status.latestVersion ?? "latest"}...`, + click: () => { void openUpdateReleasePage(); }, + }, + ]; +} diff --git a/apps/desktop/src/update-checker.ts b/apps/desktop/src/update-checker.ts new file mode 100644 index 00000000..701d10b7 --- /dev/null +++ b/apps/desktop/src/update-checker.ts @@ -0,0 +1,124 @@ +import { app, shell } from "electron"; +import https from "node:https"; + +import { createParsedUpdateStatus, normalizeVersion } from "./update-version.js"; + +export type UpdateStatusState = "idle" | "checking" | "available" | "current" | "error"; + +export interface UpdateStatus { + readonly state: UpdateStatusState; + readonly currentVersion: string; + readonly latestVersion?: string; + readonly releaseUrl?: string; + readonly checkedAt?: number; + readonly error?: string; +} + +interface GitHubReleaseResponse { + readonly tag_name?: unknown; + readonly name?: unknown; + readonly html_url?: unknown; +} + +const githubRepository = process.env.OPENPETS_GITHUB_REPOSITORY || "alvinunreal/openpets"; +const latestReleaseApiUrl = `https://api.github.com/repos/${githubRepository}/releases/latest`; +const releasesPageUrl = `https://github.com/${githubRepository}/releases`; +const releaseCheckTimeoutMs = 6_000; + +let updateStatus: UpdateStatus = { state: "idle", currentVersion: getCurrentAppVersion() }; +let checkInFlight: Promise | null = null; + +export function getUpdateStatus(): UpdateStatus { + return updateStatus; +} + +export async function checkForGitHubReleaseUpdate(): Promise { + if (checkInFlight) return checkInFlight; + updateStatus = { ...updateStatus, state: "checking", currentVersion: getCurrentAppVersion() }; + checkInFlight = fetchLatestRelease() + .then((release) => { + const currentVersion = getCurrentAppVersion(); + updateStatus = createUpdateStatusFromLatestRelease(currentVersion, release, Date.now()); + return updateStatus; + }) + .catch((error: unknown) => { + updateStatus = createUpdateErrorStatus(getCurrentAppVersion(), error, Date.now()); + return updateStatus; + }) + .finally(() => { + checkInFlight = null; + }); + return checkInFlight; +} + +export async function openUpdateReleasePage(): Promise { + const url = validateGitHubReleaseUrl(updateStatus.releaseUrl) || releasesPageUrl; + await shell.openExternal(url); +} + +export function createUpdateStatusFromLatestRelease(currentVersion: string, release: GitHubReleaseResponse, checkedAt: number): UpdateStatus { + return createParsedUpdateStatus(currentVersion, release, checkedAt, githubRepository, releasesPageUrl); +} + +export function createUpdateErrorStatus(currentVersion: string, error: unknown, checkedAt: number): UpdateStatus { + return { + state: "error", + currentVersion, + checkedAt, + error: error instanceof Error ? error.message : "Update check failed.", + }; +} + +function getCurrentAppVersion(): string { + return normalizeVersion(app.getVersion()) || "0.0.0"; +} + +function validateGitHubReleaseUrl(value: unknown): string | null { + if (typeof value !== "string") return null; + try { + const url = new URL(value); + if (url.protocol !== "https:" || url.hostname !== "github.com") return null; + if (!url.pathname.startsWith(`/${githubRepository}/releases/`)) return null; + return url.toString(); + } catch { + return null; + } +} + +function fetchLatestRelease(): Promise { + return new Promise((resolve, reject) => { + const request = https.get(latestReleaseApiUrl, { + headers: { + Accept: "application/vnd.github+json", + "User-Agent": `OpenPets/${getCurrentAppVersion()}`, + }, + timeout: releaseCheckTimeoutMs, + }, (response) => { + let body = ""; + response.setEncoding("utf8"); + response.on("data", (chunk: string) => { + body += chunk; + if (Buffer.byteLength(body, "utf8") > 128 * 1024) { + request.destroy(new Error("GitHub release response is too large.")); + } + }); + response.on("end", () => { + if (response.statusCode === 404) { + reject(new Error("No public OpenPets releases found yet.")); + return; + } + if ((response.statusCode ?? 0) < 200 || (response.statusCode ?? 0) >= 300) { + reject(new Error(`GitHub release check failed with HTTP ${response.statusCode ?? "unknown"}.`)); + return; + } + try { + resolve(JSON.parse(body) as GitHubReleaseResponse); + } catch { + reject(new Error("GitHub release response was not valid JSON.")); + } + }); + }); + request.on("timeout", () => request.destroy(new Error("GitHub release check timed out."))); + request.on("error", reject); + }); +} diff --git a/apps/desktop/src/update-version.ts b/apps/desktop/src/update-version.ts new file mode 100644 index 00000000..b867d4a0 --- /dev/null +++ b/apps/desktop/src/update-version.ts @@ -0,0 +1,62 @@ +export interface UpdateStatusFromReleaseInput { + readonly tag_name?: unknown; + readonly name?: unknown; + readonly html_url?: unknown; +} + +export interface ParsedUpdateStatus { + readonly state: "available" | "current"; + readonly currentVersion: string; + readonly latestVersion: string; + readonly releaseUrl: string; + readonly checkedAt: number; +} + +export function normalizeVersion(value: unknown): string | null { + if (typeof value !== "string") return null; + const match = value.trim().match(/^v?(\d+)\.(\d+)\.(\d+)(?:[-+][0-9A-Za-z.-]+)?$/); + return match ? `${Number(match[1])}.${Number(match[2])}.${Number(match[3])}` : null; +} + +export function createParsedUpdateStatus(currentVersion: string, release: UpdateStatusFromReleaseInput, checkedAt: number, repository: string, releasesPageUrl: string): ParsedUpdateStatus { + const latestVersion = normalizeVersion(release.tag_name) || normalizeVersion(release.name); + if (!latestVersion) throw new Error("Latest GitHub release did not include a valid version tag."); + const releaseUrl = validateGitHubReleaseUrl(release.html_url, repository) || releasesPageUrl; + return { + state: isVersionNewer(latestVersion, currentVersion) ? "available" : "current", + currentVersion, + latestVersion, + releaseUrl, + checkedAt, + }; +} + +function validateGitHubReleaseUrl(value: unknown, repository: string): string | null { + if (typeof value !== "string") return null; + try { + const url = new URL(value); + if (url.protocol !== "https:" || url.hostname !== "github.com") return null; + if (!url.pathname.startsWith(`/${repository}/releases/`)) return null; + return url.toString(); + } catch { + return null; + } +} + +export function isVersionNewer(candidate: string, current: string): boolean { + const nextParts = parseVersionParts(candidate); + const currentParts = parseVersionParts(current); + if (!nextParts || !currentParts) return false; + for (let index = 0; index < nextParts.length; index += 1) { + if (nextParts[index] > currentParts[index]) return true; + if (nextParts[index] < currentParts[index]) return false; + } + return false; +} + +function parseVersionParts(value: string): readonly [number, number, number] | null { + const version = normalizeVersion(value); + if (!version) return null; + const [major, minor, patch] = version.split(".").map(Number); + return Number.isInteger(major) && Number.isInteger(minor) && Number.isInteger(patch) ? [major, minor, patch] : null; +} diff --git a/apps/desktop/src/windows.ts b/apps/desktop/src/windows.ts new file mode 100644 index 00000000..ee44b71a --- /dev/null +++ b/apps/desktop/src/windows.ts @@ -0,0 +1,1154 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; + +import { app, BrowserWindow, ipcMain, type IpcMainInvokeEvent } from "electron"; + +import { getAgentSetupSnapshot, runAgentSetupAction } from "./agent-setup.js"; +import { refreshAgentPetContent } from "./agent-pet-controller.js"; +import { completeOnboarding, getAppStateSnapshot, normalizePetScale, petScaleOptions, updatePreferences } from "./app-state.js"; +import { getCatalogUiState } from "./catalog.js"; +import { getCodexPetsUiState, importCodexPet } from "./codex-pets.js"; +import { refreshDefaultPetContent, resetDefaultPetToInitialPosition } from "./default-pet-controller.js"; +import { installPet, removePet, setDefaultInstalledPet } from "./pet-installation.js"; +import { checkForGitHubReleaseUpdate, getUpdateStatus, openUpdateReleasePage } from "./update-checker.js"; + +type TaskWindowKind = "pet-manager" | "agent-setup" | "settings" | "onboarding"; + +interface TaskWindowDefinition { + readonly title: string; + readonly heading: string; + readonly description: string; +} + +const taskWindowDefinitions: Record = { + "pet-manager": { + title: "OpenPets — Pet Manager", + heading: "Manage Pets", + description: "Install pets from the validated catalog, switch your active companion, and manage local pets.", + }, + "agent-setup": { + title: "OpenPets — Integrations", + heading: "Integrations", + description: "Connect OpenPets to coding tools with explicit confirmation.", + }, + settings: { + title: "OpenPets — Settings", + heading: "Settings", + description: "Tune how OpenPets starts and resets your desktop companion.", + }, + onboarding: { + title: "OpenPets — Welcome", + heading: "Welcome to OpenPets", + description: "Set up your pets and coding-agent integrations, or skip anything and come back later from the tray.", + }, +}; + +const taskWindows = new Map(); +let internalUiHandlersInstalled = false; +const taskWindowWidth = 900; +const taskWindowHeight = 760; +const petManagerWindowWidth = 1160; +const petManagerWindowHeight = 780; +const agentSetupWindowWidth = 1160; +const agentSetupWindowHeight = 780; +const assetDataUrlCache = new Map(); + +export function installInternalUiHandlers(): void { + if (internalUiHandlersInstalled) { + return; + } + + internalUiHandlersInstalled = true; + + ipcMain.handle("openpets:get-state", (event) => { + assertAllowedSender(event, ["pet-manager", "settings", "agent-setup"]); + return getAppStateSnapshot(); + }); + + ipcMain.handle("openpets:onboarding-snapshot", (event) => { + assertAllowedSender(event, ["onboarding"]); + const state = getAppStateSnapshot(); + const defaultPet = state.pets.installed.find((pet) => pet.id === state.preferences.defaultPetId) ?? state.pets.installed[0]; + return { + defaultPetName: defaultPet?.displayName ?? "Built-in Pet", + onboardingCompleted: state.preferences.onboardingCompleted, + }; + }); + + ipcMain.handle("openpets:onboarding-complete", async (event) => { + assertAllowedSender(event, ["onboarding"]); + completeOnboarding(); + const { refreshTrayMenu } = await import("./tray.js"); + refreshTrayMenu(); + setTimeout(() => closeTaskWindow("onboarding"), 0); + return { onboardingCompleted: true }; + }); + + ipcMain.handle("openpets:onboarding-open-pet-manager", (event) => { + assertAllowedSender(event, ["onboarding"]); + openTaskWindow("pet-manager"); + }); + + ipcMain.handle("openpets:onboarding-open-agent-setup", (event) => { + assertAllowedSender(event, ["onboarding"]); + openTaskWindow("agent-setup"); + }); + + ipcMain.handle("openpets:get-catalog", async (event) => { + assertAllowedSender(event, ["pet-manager"]); + return getCatalogUiState(); + }); + + ipcMain.handle("openpets:get-codex-pets", async (event) => { + assertAllowedSender(event, ["pet-manager"]); + return getCodexPetsUiState(); + }); + + ipcMain.handle("openpets:update-preferences", (event, patch: unknown) => { + assertAllowedSender(event, ["settings"]); + const previousScale = getAppStateSnapshot().preferences.petScale; + const state = updatePreferences(validatePreferencePatch(patch)); + if (state.preferences.petScale !== previousScale) { + refreshDefaultPetContent(); + refreshAgentPetContent(); + } + return state; + }); + + ipcMain.handle("openpets:get-launch-at-login", (event) => { + assertAllowedSender(event, ["settings"]); + return getLaunchAtLoginState(); + }); + + ipcMain.handle("openpets:set-launch-at-login", (event, enabled: unknown) => { + assertAllowedSender(event, ["settings"]); + if (typeof enabled !== "boolean") throw new Error("Invalid launch-at-login value."); + if (!isLaunchAtLoginSupported()) return getLaunchAtLoginState(); + app.setLoginItemSettings({ openAtLogin: enabled, openAsHidden: true }); + return getLaunchAtLoginState(); + }); + + ipcMain.handle("openpets:get-update-status", (event) => { + assertAllowedSender(event, ["settings"]); + return getUpdateStatus(); + }); + + ipcMain.handle("openpets:check-for-updates", async (event) => { + assertAllowedSender(event, ["settings"]); + const status = await checkForGitHubReleaseUpdate(); + const { refreshTrayMenu } = await import("./tray.js"); + refreshTrayMenu(); + return status; + }); + + ipcMain.handle("openpets:open-update-release-page", async (event) => { + assertAllowedSender(event, ["settings"]); + await openUpdateReleasePage(); + }); + + ipcMain.handle("openpets:set-default-pet", async (event, petId: unknown) => { + assertAllowedSender(event, ["pet-manager"]); + if (typeof petId !== "string") { + throw new Error("Invalid pet id."); + } + + const state = await setDefaultInstalledPet(petId); + refreshDefaultPetContent(); + return state; + }); + + ipcMain.handle("openpets:install-pet", async (event, petId: unknown) => { + assertAllowedSender(event, ["pet-manager"]); + if (typeof petId !== "string") { + throw new Error("Invalid pet id."); + } + + return installPet(petId); + }); + + ipcMain.handle("openpets:import-codex-pet", async (event, petId: unknown) => { + assertAllowedSender(event, ["pet-manager"]); + if (typeof petId !== "string") { + throw new Error("Invalid pet id."); + } + + return importCodexPet(petId); + }); + + ipcMain.handle("openpets:remove-pet", async (event, petId: unknown) => { + assertAllowedSender(event, ["pet-manager"]); + if (typeof petId !== "string") { + throw new Error("Invalid pet id."); + } + + const state = await removePet(petId); + refreshDefaultPetContent(); + return state; + }); + + ipcMain.handle("openpets:reset-default-pet-position", (event) => { + assertAllowedSender(event, ["settings"]); + resetDefaultPetToInitialPosition(); + return getAppStateSnapshot(); + }); + + ipcMain.handle("openpets:agent-setup-snapshot", async (event, selectedPetId: unknown, commandMode: unknown) => { + assertAllowedSender(event, ["agent-setup"]); + return getAgentSetupSnapshot(selectedPetId, commandMode); + }); + + ipcMain.handle("openpets:agent-setup-action", async (event, action: unknown, selectedPetId: unknown, commandMode: unknown) => { + assertAllowedSender(event, ["agent-setup"]); + if (action !== "configure" && action !== "replace" && action !== "remove" && action !== "install-memory" && action !== "doctor-hooks" && action !== "install-hooks" && action !== "uninstall-hooks" && action !== "opencode-install" && action !== "opencode-remove") { + throw new Error("Invalid agent setup action."); + } + + return runAgentSetupAction(action, selectedPetId, commandMode); + }); +} + +export function openTaskWindow(kind: TaskWindowKind): void { + const existingWindow = taskWindows.get(kind); + + if (existingWindow && !existingWindow.isDestroyed()) { + if (existingWindow.isMinimized()) { + existingWindow.restore(); + } + + existingWindow.show(); + existingWindow.focus(); + console.log(`Focused existing ${kind} window.`); + return; + } + + const definition = taskWindowDefinitions[kind]; + const width = kind === "pet-manager" ? petManagerWindowWidth : kind === "agent-setup" ? agentSetupWindowWidth : taskWindowWidth; + const height = kind === "pet-manager" ? petManagerWindowHeight : kind === "agent-setup" ? agentSetupWindowHeight : taskWindowHeight; + const window = new BrowserWindow({ + title: definition.title, + width, + height, + minWidth: 720, + minHeight: 520, + show: false, + backgroundColor: "#0f172a", + webPreferences: { + nodeIntegration: false, + contextIsolation: true, + sandbox: true, + ...(kind === "pet-manager" || kind === "settings" || kind === "agent-setup" || kind === "onboarding" ? { preload: getPreloadPath() } : {}), + }, + }); + + taskWindows.set(kind, window); + window.setMenu(null); + + window.webContents.setWindowOpenHandler(() => ({ action: "deny" })); + window.webContents.on("will-navigate", (event) => { + event.preventDefault(); + }); + window.webContents.on("will-redirect", (event) => { + event.preventDefault(); + }); + window.webContents.on("did-fail-load", (_event, errorCode, errorDescription) => { + console.error(`Failed to load ${kind} placeholder window.`, { errorCode, errorDescription }); + }); + window.webContents.on("render-process-gone", (_event, details) => { + console.error(`${kind} placeholder renderer process gone.`, details); + }); + + window.on("closed", () => { + taskWindows.delete(kind); + console.log(`Closed ${kind} window.`); + }); + + window.once("ready-to-show", () => { + window.show(); + window.focus(); + }); + + window.loadURL(createTaskWindowDataUrl(kind, definition)).catch((error: unknown) => { + console.error(`Failed to load ${kind} placeholder URL.`, error); + }); + + console.log(`Opened ${kind} window.`); +} + +export function closeTaskWindow(kind: TaskWindowKind): void { + const window = taskWindows.get(kind); + if (window && !window.isDestroyed()) { + window.close(); + } +} + +export function focusOpenTaskWindows(): void { + for (const window of taskWindows.values()) { + if (window.isDestroyed()) { + continue; + } + + if (window.isMinimized()) { + window.restore(); + } + + window.show(); + window.focus(); + } +} + +function createTaskWindowDataUrl(kind: TaskWindowKind, definition: TaskWindowDefinition): string { + if (kind === "pet-manager") { + return createDataUrl(createPetManagerHtml(definition)); + } + + if (kind === "settings") { + return createDataUrl(createSettingsHtml(definition)); + } + + if (kind === "onboarding") { + return createDataUrl(createOnboardingHtml(definition)); + } + + return createDataUrl(createAgentSetupHtml(definition)); +} + +function createPlaceholderHtml(definition: TaskWindowDefinition): string { + const html = ` + + + + + + ${escapeHtml(definition.title)} + + + +
+

OpenPets Phase 01

+

${escapeHtml(definition.heading)}

+

${escapeHtml(definition.description)}

+ Placeholder window +
+ + `; + + return html; +} + +function createPetManagerHtml(definition: TaskWindowDefinition): string { + const logoUrl = createAssetDataUrl("onboarding-logo.webp", "image/webp"); + const defaultThumbnailUrl = createAssetDataUrl("default-pet-thumbnail.png", "image/png"); + + return ` + + + + + + + ${escapeHtml(definition.title)} + ${createTaskWindowStyles()} + + +
+ + + +

+
+ + `; +} + +function createOnboardingHtml(definition: TaskWindowDefinition): string { + const logoUrl = createAssetDataUrl("onboarding-logo.webp", "image/webp"); + const petsUrl = createAssetDataUrl("onboarding-pets.webp", "image/webp"); + + return ` + + + + + + ${escapeHtml(definition.title)} + ${createTaskWindowStyles()} + + +
+
+

OpenPets

+

${escapeHtml(definition.heading)}

+

${escapeHtml(definition.description)}

+
+ + +
+
+ +

Your AI coding companion

+

OpenPets lives in your tray and gives your coding agents a friendly desktop companion — one command at a time.

+

Starting with the bundled pet.

+
+ +
+
+ +
+ + + + +

Closing this window before finishing keeps setup available from the tray.

+

+
+ + `; +} + +function createAgentSetupHtml(definition: TaskWindowDefinition): string { + const logoUrl = createAssetDataUrl("onboarding-logo.webp", "image/webp"); + const integrationIcons = { + claude: createAssetDataUrl("integrations/claude.svg", "image/svg+xml"), + cursor: createAssetDataUrl("integrations/cursor.svg", "image/svg+xml"), + opencode: createAssetDataUrl("integrations/opencode.svg", "image/svg+xml"), + vscode: createAssetDataUrl("integrations/vscode.svg", "image/svg+xml"), + windsurf: createAssetDataUrl("integrations/windsurf.svg", "image/svg+xml"), + zed: createAssetDataUrl("integrations/zed.svg", "image/svg+xml"), + }; + + return ` + + + + + + ${escapeHtml(definition.title)} + ${createTaskWindowStyles()} + + +
+
+
+ +

OpenPets

+

Integrations

+

Install Claude or OpenCode integrations now, or configure the details when you need them.

+
+ +
+ + +
+
Checking
+

OpenCode

Connect OpenCode globally to your OpenPets companion.

+
+ + +
+
+
+
Soon
+

Cursor

Coming soon.

+
+
+
Soon
+

VS Code

Coming soon.

+
+
+
Soon
+

Windsurf

Coming soon.

+
+
+
Soon
+

Zed

Coming soon.

+
+
+
+ + + + + +

+
+ + `; +} +function createSettingsHtml(definition: TaskWindowDefinition): string { + const scaleOptionsHtml = petScaleOptions.map((option) => ``).join(""); + return ` + + + + + + ${escapeHtml(definition.title)} + ${createTaskWindowStyles()} + + +
+
+

OpenPets

+

${escapeHtml(definition.heading)}

+

${escapeHtml(definition.description)}

+
+
+
+ + General +

Startup and companion behavior

+
+
+ + +
+
+
+ + Pet +

Desktop pet controls

+
+
+ +
+ + Reset default pet position + Moves the default pet back near the bottom-right of the primary display. + + +
+
+
+
+ + Updates +

App updates

+
+
+
+ + Checking for updates + OpenPets checks public GitHub releases and opens the release page when an update is available. + + + + + +
+
+

Changes save automatically.

+

+
+ + `; +} + +function createTaskWindowStyles(): string { + return ``; +} + +function createDataUrl(html: string): string { + return `data:text/html;charset=utf-8,${encodeURIComponent(html)}`; +} + +function createAssetDataUrl(fileName: string, mimeType: string): string { + const cacheKey = `${mimeType}:${fileName}`; + const cached = assetDataUrlCache.get(cacheKey); + if (cached) return cached; + + const bytes = readFileSync(join(app.getAppPath(), "assets", fileName)); + const dataUrl = `data:${mimeType};base64,${bytes.toString("base64")}`; + assetDataUrlCache.set(cacheKey, dataUrl); + return dataUrl; +} + +function getPreloadPath(): string { + return join(app.getAppPath(), "preload.cjs"); +} + +function assertAllowedSender(event: IpcMainInvokeEvent, allowedKinds: readonly TaskWindowKind[]): void { + const actualKind = getTaskWindowKindForWebContents(event.sender.id); + + if (!actualKind || !allowedKinds.includes(actualKind)) { + throw new Error("OpenPets internal UI request came from an unexpected window."); + } +} + +function getTaskWindowKindForWebContents(webContentsId: number): TaskWindowKind | null { + for (const [kind, window] of taskWindows) { + if (!window.isDestroyed() && window.webContents.id === webContentsId) { + return kind; + } + } + + return null; +} + +function validatePreferencePatch(value: unknown): { openDefaultPetOnLaunch?: boolean; petScale?: number } { + if (!isRecord(value)) { + throw new Error("Invalid preferences patch."); + } + + const patch: { openDefaultPetOnLaunch?: boolean; petScale?: number } = {}; + + if ("openDefaultPetOnLaunch" in value) { + if (typeof value.openDefaultPetOnLaunch !== "boolean") throw new Error("Invalid open-on-launch value."); + patch.openDefaultPetOnLaunch = value.openDefaultPetOnLaunch; + } + + if ("petScale" in value) { + const scale = normalizePetScale(value.petScale); + if (scale !== value.petScale) throw new Error("Invalid pet scale value."); + patch.petScale = scale; + } + + return patch; +} + +function getLaunchAtLoginState(): { supported: boolean; enabled: boolean } { + if (!isLaunchAtLoginSupported()) return { supported: false, enabled: false }; + return { supported: true, enabled: app.getLoginItemSettings().openAtLogin }; +} + +function isLaunchAtLoginSupported(): boolean { + return process.platform === "darwin" || process.platform === "win32"; +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} + +function escapeHtml(value: string): string { + return value + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); +} diff --git a/apps/desktop/src/zip-safety.ts b/apps/desktop/src/zip-safety.ts new file mode 100644 index 00000000..4206a2c2 --- /dev/null +++ b/apps/desktop/src/zip-safety.ts @@ -0,0 +1,103 @@ +import { resolve, sep } from "node:path"; + +export interface SafeZipEntryPath { + readonly originalName: string; + readonly normalizedName: string; + readonly topLevelDirectory: string; + readonly relativeOutputPath: "pet.json" | "spritesheet.webp" | null; + readonly isDirectory: boolean; +} + +export class ZipEntryPathTracker { + readonly #normalizedPaths = new Set(); + readonly #caseFoldedPaths = new Set(); + #topLevelDirectory: string | null = null; + + accept(fileName: string): SafeZipEntryPath { + const entry = validateZipEntryName(fileName); + + if (this.#topLevelDirectory !== null && entry.topLevelDirectory !== this.#topLevelDirectory) { + throw new Error("Zip contains mixed or multiple top-level layouts."); + } + + this.#topLevelDirectory = entry.topLevelDirectory; + + if (this.#normalizedPaths.has(entry.normalizedName)) { + throw new Error(`Duplicate zip entry path: ${entry.normalizedName}`); + } + + const caseFolded = entry.normalizedName.toLocaleLowerCase("en-US"); + if (this.#caseFoldedPaths.has(caseFolded)) { + throw new Error(`Case-insensitive zip entry collision: ${entry.normalizedName}`); + } + + this.#normalizedPaths.add(entry.normalizedName); + this.#caseFoldedPaths.add(caseFolded); + return entry; + } +} + +export function validateZipEntryName(fileName: string): SafeZipEntryPath { + if (fileName.includes("\0")) throw new Error("Zip entry contains NUL byte."); + if (fileName.includes("\\")) throw new Error("Zip entry contains backslash separator."); + if (fileName.startsWith("/") || fileName.startsWith("//")) throw new Error("Zip entry is absolute."); + if (/^[a-zA-Z]:\//.test(fileName)) throw new Error("Zip entry contains Windows drive path."); + if (fileName.includes("//")) throw new Error("Zip entry contains empty path segment."); + + const parts = fileName.split("/").filter(Boolean); + if (parts.some((part) => part === "..")) throw new Error("Zip entry contains parent traversal."); + if (parts.some((part) => part === ".")) throw new Error("Zip entry contains current-directory segment."); + + const isDirectory = fileName.endsWith("/"); + if (isDirectory) { + if (parts.length !== 1) throw new Error("Zip directory layout is unsupported."); + return { + originalName: fileName, + normalizedName: parts.join("/"), + topLevelDirectory: parts[0] ?? "", + relativeOutputPath: null, + isDirectory: true, + }; + } + + if (parts.length !== 1 && parts.length !== 2) throw new Error("Zip must contain pet files at the root or under exactly one top-level directory."); + + const leaf = parts.at(-1); + if (leaf !== "pet.json" && leaf !== "spritesheet.webp") { + throw new Error(`Unexpected zip file: ${leaf}`); + } + + return { + originalName: fileName, + normalizedName: parts.join("/"), + topLevelDirectory: parts.length === 1 ? "" : parts[0] ?? "", + relativeOutputPath: leaf, + isDirectory: false, + }; +} + +export function assertOutputPathInside(tempDir: string, outputPath: string): void { + const root = resolve(tempDir); + const target = resolve(outputPath); + if (target !== root && !target.startsWith(`${root}${sep}`)) { + throw new Error("Zip entry output path escapes temp directory."); + } +} + +export function hasSupportedZipMagic(buffer: Buffer): boolean { + if (buffer.length < 4 || buffer[0] !== 0x50 || buffer[1] !== 0x4b) { + return false; + } + + const signature = buffer.readUInt32LE(0); + return signature === 0x04034b50 || signature === 0x06054b50; +} + +export function assertRejectsPath(fileName: string): void { + try { + validateZipEntryName(fileName); + } catch { + return; + } + throw new Error(`Unsafe zip path was accepted: ${fileName}`); +} diff --git a/apps/desktop/tsconfig.json b/apps/desktop/tsconfig.json new file mode 100644 index 00000000..df59da57 --- /dev/null +++ b/apps/desktop/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + }, + "include": ["src/**/*.ts"] +} diff --git a/docs/claude-integration.md b/docs/claude-integration.md new file mode 100644 index 00000000..2f0bc1a2 --- /dev/null +++ b/docs/claude-integration.md @@ -0,0 +1,238 @@ +# Claude integration + +This document describes how OpenPets Desktop integrates with Claude Code, what files are configured, how Claude reaches the desktop app, and which Claude events trigger pet reactions or speech. + +## Integration surfaces + +Claude support has three related surfaces: + +1. **MCP tools** — Claude gets the `openpets_status`, `openpets_react`, and `openpets_say` tools. +2. **Claude memory instructions** — Claude is told when it should use those tools. +3. **Claude hooks** — Claude lifecycle and tool events automatically trigger OpenPets reactions. + +The desktop setup UI for these surfaces is implemented in `apps/desktop/src/agent-setup.ts` and exposed to the renderer through `openpets:agent-setup-snapshot` and `openpets:agent-setup-action`. + +This document primarily describes **Desktop user/global setup**. The CLI also supports **project-local Claude setup**; see [Project-local Claude setup](#project-local-claude-setup). + +## Files managed by OpenPets + +### Claude MCP entry + +The MCP entry is installed into Claude Code by running a Claude command shaped like: + +```sh +claude mcp add --scope user openpets -- npx -y @open-pets/mcp +``` + +If the user selected a specific pet in the desktop setup UI, the command includes that pet: + +```sh +claude mcp add --scope user openpets -- npx -y @open-pets/mcp --pet +``` + +In local development or packaged desktop mode, OpenPets can use `node ` instead of `npx`. + +Packaged and local `node ` commands require `node` to be available on Claude Code's `PATH`. Desktop setup reports an error instead of installing a bundled command if `node --version` cannot run from the agent environment. + +### Claude memory + +OpenPets writes two user-level Claude memory files: + +```text +~/.claude/CLAUDE.md +~/.claude/openpets.md +``` + +`~/.claude/CLAUDE.md` receives a managed import block: + +```md + +@~/.claude/openpets.md + +``` + +`~/.claude/openpets.md` receives the managed instruction block: + +```md + +## OpenPets + +OpenPets MCP tools may be available. + +Use OpenPets as a short visible status channel for meaningful coding progress: +- Use `openpets_say` when starting, completing, blocking, or needing review on non-trivial work. +- Keep messages brief, user-facing, and non-sensitive. +- Do not include code, logs, secrets, URLs, or file paths. +- Use `openpets_react` for small visual or emotional feedback. +- Use `openpets_status` only when checking availability or the targeted pet. +- Do not spam every internal step. + +``` + +The memory installer is idempotent. It updates only the managed blocks, avoids symlinks and unsafe files, writes private files, and uses atomic temp-file writes. + +### Claude hooks + +Claude hooks are installed into: + +```text +~/.claude/settings.json +``` + +OpenPets-managed hook commands include this marker: + +```text +--openpets-managed +``` + +The normal published hook command is: + +```sh +npx -y @open-pets/claude hook --openpets-managed +``` + +If a pet is selected: + +```sh +npx -y @open-pets/claude hook --openpets-managed --pet +``` + +OpenPets installs the command for these Claude hook events: + +```text +UserPromptSubmit +PreToolUse +PermissionRequest +Notification +Stop +StopFailure +``` + +Each hook entry is a Claude command hook with a short timeout and async execution enabled: + +```json +{ + "type": "command", + "command": "npx -y @open-pets/claude hook --openpets-managed", + "timeout": 3, + "async": true, + "asyncRewake": false +} +``` + +OpenPets backs up `settings.json` before changing it and removes only hooks containing the `--openpets-managed` marker. + +## Project-local Claude setup + +The `@open-pets/cli` package can configure a project-local Claude integration from a project directory: + +```sh +openpets configure --agent claude --pet +``` + +Project-local setup differs from Desktop user/global setup: + +- It uses `claude mcp add-json openpets ... --scope local` from the target project directory. +- It writes hooks to `/.claude/settings.local.json`. +- Hook commands include both `--openpets-managed` and `--project-local`. +- Project-local hook entries use `timeout: 10`, `async: true`, and `asyncRewake: false`. +- The MCP and hooks are always configured with a selected `--pet `. + +When a global OpenPets Claude hook runs, it checks whether the current Claude project already has a project-local OpenPets hook. If it finds one, the global hook does not send a duplicate reaction. This avoids double pet events when both global Desktop setup and project-local CLI setup exist. + +Project-local files live inside the project and may be committed depending on the user's repository policy. They can contain the selected pet id. + +## Runtime path + +When Claude calls an OpenPets tool or when a Claude hook fires, the runtime path is: + +```text +Claude Code + -> @open-pets/mcp or @open-pets/claude hook + -> @open-pets/client + -> OpenPets desktop local IPC discovery file + -> OpenPets desktop IPC socket/pipe + -> default pet controller or explicit agent pet controller +``` + +The desktop app writes a discovery file such as: + +```text +macOS: ~/Library/Application Support/OpenPets/runtime/ipc.json +Windows: %APPDATA%/OpenPets/runtime/ipc.json +Linux: $XDG_RUNTIME_DIR/openpets/ipc.json, or ~/.config/OpenPets/runtime/ipc.json fallback +``` + +That file contains the IPC endpoint and a per-run token. Clients must send that token with every request. + +## MCP tools + +Claude sees these tools when the MCP server is configured: + +| Tool | Purpose | Desktop IPC method | +| --- | --- | --- | +| `openpets_status` | Check whether OpenPets is reachable and which pet is targeted. | `status` | +| `openpets_react` | Set a short reaction on the target pet. | `pet.react` | +| `openpets_say` | Show a short safe speech bubble, optionally with a reaction. | `pet.say` | + +`openpets_say` is validated before it reaches the desktop app. Messages must be short, single-line, and must not look like code, logs, secrets, URLs, or file paths. + +## Pet targeting + +If the MCP server or hook command was configured without `--pet`, events target the desktop default pet. + +If it was configured with `--pet `, the process asks the desktop app for a lease. A valid installed non-default pet opens as an explicit agent pet window. Missing, invalid, broken, built-in, or default pet requests fall back to the default pet. + +Explicit leases expire after a short TTL unless refreshed. When the last explicit lease for a pet expires or is released, OpenPets clears and closes that agent pet window. + +## Claude hook reaction and speech mapping + +Claude hooks are decorative and best-effort. They must not block, approve, deny, or change Claude's behavior. If OpenPets is closed or IPC is unavailable, the hook exits successfully and silently. + +| Claude event | Trigger condition | Reaction | Speech bubble | +| --- | --- | --- | --- | +| `UserPromptSubmit` | User submits a prompt to Claude. | `thinking`, throttled. | None. | +| `PreToolUse` | Tool name is `Edit`, `Write`, or `MultiEdit`. | `editing` | None. | +| `PreToolUse` | Tool name is `Bash` and command text looks test-like. | `testing` | None. | +| `PreToolUse` | Tool name is `Bash` and command text does not look test-like. | None. | None. | +| `PreToolUse` | Any other tool. | None. | None. | +| `PermissionRequest` | Claude asks for approval. | `waiting` | `Approval needed`, throttled with a short cooldown. | +| `Notification` | Claude emits a notification hook event. | None. | None. | +| `Stop` | Claude finishes a response. | `success`, throttled. | None. | +| `StopFailure` | Claude stop/finalization fails. | `error` | One error-pool message, throttled. | +| Unknown event | Event is not recognized. | None | None. | + +Test-like Bash detection is intentionally coarse and private. It may inspect only a bounded command string to classify the reaction. The command text is never sent to speech. + +Claude hooks do **not** use the left/right walking animations or the `running` reaction. The `running-right` and `running-left` sprite rows are reserved for pet drag/move motion, and generic Bash/shell activity is silent by default. Hook reactions use quieter phase changes instead: editing maps to the generic active-work row, thinking maps to `review`, waiting/testing maps to `waiting`, success maps to `jumping`, and errors map to `failed`. + +## Hook speech pools + +When a hook is allowed to speak, it chooses one static local message from the matching pool: + +| Category | Possible messages | +| --- | --- | +| `thinking` | `Thinking it through`, `Let me check`, `On it`, `Working it out` | +| `success` | `Done`, `That worked`, `All set`, `Nice, finished` | +| `error` | `Something failed`, `Needs another look`, `Hit a snag`, `Not quite there` | +| `permission` | `Approval needed` | + +Speech is throttled by category so hooks do not spam bubbles. Current speech cooldowns are: + +| Category | Cooldown | +| --- | --- | +| `permission` | 3 seconds | +| `thinking`, `success`, `error` | 20 seconds each | + +Normal thinking and success hooks no longer speak, so their speech pools are retained for shared/static message support but are not used by Claude's default quiet hook policy. Reaction-only hooks are also deduped, with the same reaction suppressed for about 10 seconds. + +Throttle state stores only speech-category and reaction timestamp keys, never prompts, commands, tool input, output, code, logs, or transcripts. + +## Safety rules + +- Hook stdout stays empty so Claude does not ingest accidental context. +- Hook errors are swallowed unless debug logging is enabled. +- Hook debug logs sanitize path-like values. MCP/client-side validation separately rejects secret-looking speech. +- Speech is static and local; it does not include model-generated text. +- Tool input and command text are used only for coarse reaction classification. +- Managed setup refuses unsafe symlinks and non-regular files. Claude memory files also have an oversized-file safety limit before OpenPets edits them. diff --git a/docs/implementation-process.md b/docs/implementation-process.md new file mode 100644 index 00000000..becac0a6 --- /dev/null +++ b/docs/implementation-process.md @@ -0,0 +1,355 @@ +# OpenPets 2.0 implementation process + +## Goal + +OpenPets 2.0 should be implemented in clear, manually verifiable phases. + +The process should optimize for: + +- Great developer experience. +- Smooth incremental progress. +- Working software after each phase. +- Manual user confirmation before moving to the next numbered phase or meaningful user-visible sub-phase. +- Oracle review before implementation plans are accepted. +- Oracle review after implementation before asking the user to confirm. + +This is not a big-bang implementation. Each phase should be large enough to be meaningful, but small enough that the user can manually verify the result with confidence. + +## Core workflow for every phase + +Each phase should follow the same loop: + +1. Define the phase goal and manual acceptance criteria. +2. Scout the current codebase and relevant v1 references. +3. Check current documentation for important Electron, Node, MCP, Claude, or platform behavior when needed. +4. Draft the phase implementation plan. +5. Send the plan to Oracle for architecture/process review. +6. Fix the plan based on Oracle feedback. +7. Implement the phase. +8. Run automated checks that fit the phase. +9. Send the implemented diff to Oracle for code/maintainability review. +10. Fix actionable Oracle feedback. +11. Provide the user a concise manual verification guide. +12. Wait for user confirmation before starting the next numbered phase, or any meaningful sub-phase that changes user-visible behavior. + +## Global definition of done for each phase + +A phase is not done until all relevant items below are true: + +- The agreed acceptance criteria for the phase are met. +- Relevant automated checks pass. +- The manual verification guide is written with exact commands, actions, and expected results. +- Known limitations are documented. +- Persistent/config-changing behavior has rollback, uninstall, or restore coverage. +- Security-sensitive changes receive explicit review. +- Oracle implementation review has been completed. +- Oracle feedback disposition is recorded: fixed, deferred, or rejected with reason. +- No unrelated refactors or silent scope expansions are included. +- The user has confirmed the phase manually before moving on. + +## Oracle review packet requirements + +Before implementation, the phase plan sent to Oracle should include: + +- Goal. +- Non-goals. +- Files/packages expected to change. +- Architecture choices and tradeoffs. +- Security/privacy concerns. +- Automated test/check plan. +- Manual acceptance criteria. + +After implementation, the diff sent to Oracle should include: + +- Summary of implemented changes. +- Diff or exact changed file list. +- Test/check results. +- Known limitations. +- Deviations from the approved plan, if any. +- Specific concerns where review should focus. + +## Scope-control rule + +If implementation reveals that a phase is larger than expected, stop and split the phase rather than silently continuing. + +Do not let Oracle feedback or discovered complexity turn one phase into a much larger phase unless the user explicitly agrees. + +## Phase sizing rule + +Phases should be relevant and manually testable. + +Avoid phases that are too small, such as: + +- Rename one file. +- Add one empty package. +- Add one isolated helper with no visible outcome. + +Avoid phases that are too large, such as: + +- Build all Electron, MCP, Claude, pet catalog, onboarding, and packaging in one pass. +- Implement all supported agents before Claude works end-to-end. + +A good phase should produce a concrete checkpoint the user can confirm, for example: + +- “I can launch the desktop app and see the tray menu.” +- “I can see and drag the default pet.” +- “Claude Code is detected correctly on my machine.” +- “Claude Code configuration preview looks correct and backups are created.” +- “A real Claude session makes the pet react.” + +## Proposed implementation phases + +### Phase 0: V2 workspace foundation and DX + +Goal: + +Create the fresh v2 workspace structure and developer workflow without building product features yet. + +Acceptance criteria: + +- V2 workspace exists separately from v1 reference code. +- Development uses Node-based tooling and does not require Bun at runtime. +- Basic scripts are clear and documented. +- Type checking/lint/build commands are defined. +- The package shape matches the planned `@open-pets/*` architecture. + +Manual confirmation: + +- User can install dependencies and run the basic workspace checks. + +### Phase 1: Tray-first desktop shell + +Goal: + +Create the Electron desktop app shell with tray/menu behavior and task-specific placeholder windows. + +Acceptance criteria: + +- App launches as a tray/menu bar app. +- Tray menu matches the agreed initial menu. +- Manage Pets, Configure Agents, and Settings open placeholder windows. +- Quit exits cleanly. + +Manual confirmation: + +- User can launch the app, inspect tray/menu items, open placeholder windows, and quit cleanly. + +### Phase 2: Default pet window foundation + +Goal: + +Show the bundled default pet reliably as a floating desktop companion. + +Acceptance criteria: + +- Bundled default pet appears on launch. +- Pet window is frameless/transparent/always-on-top where supported. +- Pet does not steal focus from the editor/terminal. +- Pet is draggable. +- Pet position is persisted. +- Show/hide default pet works from tray. +- Pause/resume all pets has visible behavior. +- Platform-specific limitations for transparency, focus, dragging, and always-on-top behavior are documented. + +Manual confirmation: + +- User can see, drag, hide/show, pause/resume, restart, and confirm the pet position persists. + +### Phase 3: Local app state and pet manager basics + +Goal: + +Make pet ownership and default-pet behavior real in the app. + +Acceptance criteria: + +- App persists core preferences. +- Built-in pet is protected from removal. +- Pet Manager can show installed pets. +- User can set default pet among installed pets. +- Settings can control important early preferences such as speech enabled and open default pet on launch. + +Manual confirmation: + +- User can change default-related settings, restart app, and see preferences persist. + +### Phase 4: V2 pet catalog and installation + +Goal: + +Support browsing and installing remote pets from the v2 catalog flow. + +Acceptance criteria: + +- App fetches the v2 catalog. +- Pet Manager shows catalog pets with loading/error states. +- User can install a pet from zip. +- Installed pet is validated before use. +- Zip install path prevents zip-slip/path traversal. +- Zip size/file count limits exist. +- Installation never executes scripts from downloaded pets. +- Failed installs clean up partial files. +- User can remove removable installed pets. +- User can set installed pet as default. +- App remains usable if catalog fetch fails. + +Manual confirmation: + +- User can install a real catalog pet, set it as default, restart, and see it work. + +### Phase 5: Local IPC and `@open-pets/client` + +Goal: + +Create the private local control plane between adapters and the desktop app. + +Acceptance criteria: + +- Desktop app exposes local-only IPC. +- Discovery file is written while app is running. +- Discovery file location and permissions are documented per platform. +- Startup token/version validation exists. +- Token lifetime and stale discovery cleanup are defined. +- Local-only threat model is documented. +- `@open-pets/client` can connect and call status/say/react-style methods. +- Invalid token/version requests are rejected. + +Manual confirmation: + +- User/developer can run a local test command and see the pet react through IPC. + +### Phase 6: `@open-pets/mcp` agent-neutral integration + +Goal: + +Make OpenPets usable from MCP-capable coding agents through the minimal public tool set. + +Acceptance criteria: + +- MCP server runs with Node/npx. +- Tools exist: `openpets_status`, `openpets_say`, `openpets_react`. +- MCP startup immediately acquires a lease and opens/shows the configured/default pet. +- `--pet` chooses target pet. +- Missing explicit pet falls back to default and reports fallback. +- If app is installed but not running, MCP attempts to launch it. +- If app is missing, MCP stays alive in degraded mode and reports clearly. +- Lease cleanup works on process exit and TTL fallback. + +Manual confirmation: + +- User can run MCP manually or from a supported agent and see status/say/react work. + +### Phase 7: Claude Code detection and configuration + +Goal: + +Implement the dedicated Claude Code setup experience before full hook behavior. + +Acceptance criteria: + +- Agent Setup detects Claude Code on the user's machine where possible. +- Shows detected/not detected/configured/needs setup/error states. +- Shows exactly what configuration changes would be made. +- Requires confirmation before editing config. +- Creates backups before editing config. +- Config edits are idempotent. +- Config writes are atomic where practical. +- Dry-run/diff preview exists before writes. +- Backup restore behavior is defined. +- Expected Claude config paths are documented per platform. +- Doctor/check reports actionable status. +- Uninstall/remove integration path exists for changes made by OpenPets. +- Uninstall verification confirms OpenPets-managed config was removed without damaging unrelated user config. + +Manual confirmation: + +- User can verify Claude Code detection, preview config changes, apply setup, inspect backup behavior, run doctor, and remove integration if needed. + +### Phase 8: Full Claude enhanced hooks integration + +Goal: + +Make Claude Code feel polished through hook-driven reactions and short safe speech. + +Acceptance criteria: + +- `@open-pets/claude` installs global Claude hooks safely. +- Hook events map to agreed reactions. +- Speech comes from local short message pools/templates. +- Speech is throttled/selective. +- Permission/approval cases use clear fixed messages. +- Notification hooks do not speak by default. +- Speech safety rules are enforced. +- Hooks route to active Claude MCP leases when reliable and otherwise fall back to default pet. +- Hook event contract is documented. +- Ambiguous Claude/MCP/app routing states have defined fallback behavior. + +Manual confirmation: + +- User runs a real Claude Code session and verifies thinking/working/testing/waiting/success/error reactions plus short safe speech. + +### Phase 9: First-run onboarding end-to-end + +Goal: + +Connect the already-working pieces into the agreed first-run experience. + +Acceptance criteria: + +- First-run onboarding opens appropriately. +- Default pet appears early. +- Optional pet install step works or gracefully skips on catalog failure. +- Agent setup step uses the real Agent Setup flow. +- Done state clearly says OpenPets is ready. +- Onboarding completion persists. + +Manual confirmation: + +- User can reset onboarding state, run through onboarding, skip or complete steps, and confirm the app lands in a ready state. + +### Phase 10: MVP hardening and packaging + +Goal: + +Prepare the complete Claude-focused MVP for real use. + +Acceptance criteria: + +- Concrete platform validation matrix is defined for macOS, Windows, and Linux. +- Packaging path is tested against the agreed validation matrix. +- App lifecycle edge cases are handled. +- IPC cleanup and stale discovery behavior are reliable. +- Pet install failure cases are understandable. +- Claude install/uninstall/doctor paths are robust. +- Core automated tests/checks pass. +- Manual MVP demo checklist passes. + +Manual confirmation: + +- User can install or run the packaged app and complete the full MVP demo: app launch, default pet, pet install/default change, Claude setup, real Claude reactions/speech, cleanup, quit. + +## Oracle review policy + +Oracle should review two things for each meaningful phase: + +1. The phase plan before implementation begins. +2. The implemented diff before the user is asked for manual confirmation. + +Oracle feedback should be handled as follows: + +- Fix correctness, safety, maintainability, data-loss, security, and architecture issues before user confirmation. +- Discuss optional scope expansions with the user instead of silently expanding the phase. +- Record Oracle feedback disposition as fixed, deferred, or rejected with reason. +- Do not let Oracle feedback turn one phase into a much larger phase unless the user agrees. + +## User confirmation policy + +After implementation and Oracle fixes, the user should receive: + +- What changed. +- What commands to run. +- What manual behavior to verify. +- Known limitations for this phase. +- A clear question asking whether to proceed to the next phase. + +Do not proceed to the next numbered phase, or any meaningful sub-phase that changes user-visible behavior, until the user confirms the current checkpoint is acceptable. diff --git a/docs/mapping.md b/docs/mapping.md new file mode 100644 index 00000000..50f93b29 --- /dev/null +++ b/docs/mapping.md @@ -0,0 +1,252 @@ +# OpenPets reaction, speech, and Claude hook mapping + +This document explains how OpenPets decides which pet reaction is shown, when the pet says something, and how Claude Code hooks and OpenCode plugin events map to reactions/messages. + +## Important terms + +- **Reaction**: one of the allowed OpenPets reaction names, for example `thinking`, `success`, or `error`. +- **Speech/message**: a short text bubble sent with `openpets_say` or generated by a Claude hook. +- **Hook speech**: automatic short speech generated by Claude Code hook events. +- **Target pet**: the pet that receives the reaction/message. This is either the desktop default pet or a project/agent-selected pet through a lease. + +## Allowed reactions + +OpenPets currently accepts these reactions: + +| Reaction | Intended meaning | +| --- | --- | +| `idle` | Neutral / no special task state. | +| `thinking` | The agent is thinking or starting to process a prompt. | +| `working` | Generic tool/work activity. | +| `editing` | The agent is editing or writing files. | +| `running` | The agent is running a command that is not classified as tests. | +| `testing` | The agent is running tests. | +| `waiting` | The agent is waiting for permission or another blocking state. | +| `waving` | The pet waves for notifications/attention. | +| `success` | The agent completed successfully. | +| `error` | The agent failed or hit a problem. | +| `celebrating` | Positive manual reaction; not currently emitted by Claude hooks. | + +Source of truth: `packages/client/src/protocol.ts` and `apps/desktop/src/local-ipc-protocol.ts`. + +## What a reaction visually does today + +Reactions drive the pet spritesheet animation and can also show temporary bubble text above the pet. For example, `thinking` uses the review/thinking animation row and, when sent as a reaction-only event, displays a short randomized status line such as `Thinking it through` or `Checking the clues`. + +The universal Codex/OpenPets spritesheet has these animation rows: + +| Row | Spritesheet state | Trigger/reaction mapping | +| --- | --- | --- | +| 0 | `idle` | No active reaction, message-only speech, or `idle`. Slow 5500ms loop. | +| 1 | `running-right` | Drag right via motion state `run-right`. | +| 2 | `running-left` | Drag left via motion state `run-left`. | +| 3 | `waving` | `waving`, Claude `Notification`. | +| 4 | `jumping` | `success`, `celebrating`. | +| 5 | `failed` | `error`. | +| 6 | `waiting` | `waiting`, `testing`, `PermissionRequest`. | +| 7 | `running` | `working`, `editing`, `running`. | +| 8 | `review` | `thinking`. | + +Drag motion overrides reaction animation while the pet is being moved. When dragging stops, the sprite returns to the active reaction animation until the transient display clears, then returns to idle. + +One-shot feedback animations do not loop for the full 4-second bubble lifetime: + +| Spritesheet state | Iterations | +| --- | --- | +| `waving` | 2 loops | +| `jumping` | 2 loops | +| `failed` | 2 loops | + +Long-running states (`idle`, `waiting`, `running`, `review`, and drag run states) continue looping while active. + +## Bubble priority + +When a transient display has both a message and a reaction, the message wins. + +| Input | Bubble text shown | +| --- | --- | +| Reaction only: `openpets_react({ reaction: "testing" })` | A stable randomized status line from the `testing` message pool, for example `Running the checks`. | +| Message only: `openpets_say({ message: "Done" })` | `Done` | +| Message + reaction: `openpets_say({ message: "Done", reaction: "success" })` | `Done` | + +The reaction is still sent with the message, but the visible bubble text is the message. + +Source of truth: `apps/desktop/src/pet-window.ts` (`createBubbleMarkup`). + +## How long bubbles stay visible + +Reaction/message bubbles are transient and clear after: + +```text +4 seconds +``` + +Source of truth: `apps/desktop/src/local-ipc-protocol.ts` (`transientDisplayMs = 4_000`). + +## Claude hook event mapping + +When OpenPets Claude hooks are installed, these Claude Code hook events are registered: + +```text +UserPromptSubmit +PreToolUse +PermissionRequest +Notification +Stop +StopFailure +``` + +Source of truth: `packages/claude/src/hook-settings.ts`. + +### Hook event to reaction/message table + +| Claude hook event | Condition | Reaction sent | Does it speak? | Possible speech text | +| --- | --- | --- | --- | --- | +| `UserPromptSubmit` | Any user prompt submitted. | `thinking` | Yes, throttled. | `Thinking it through`, `Let me check`, `On it`, `Working it out` | +| `PreToolUse` | Tool is `Edit`, `Write`, or `MultiEdit`. | `editing` | No. | — | +| `PreToolUse` | Tool is `Bash` and command looks like a test command. | `testing` | No. | — | +| `PreToolUse` | Tool is `Bash` and command does not look like a test command. | `running` | No. | — | +| `PreToolUse` | Any other tool. | `working` | No. | — | +| `PermissionRequest` | Claude asks for permission/approval. | `waiting` | Yes, shorter cooldown. | `Approval needed` | +| `Notification` | Claude sends a notification. | `waving` | No. | — | +| `Stop` | Claude completes normally. | `success` | Yes, throttled. | `Done`, `That worked`, `All set`, `Nice, finished` | +| `StopFailure` | Claude run fails/stops with failure. | `error` | Yes, throttled. | `Something failed`, `Needs another look`, `Hit a snag`, `Not quite there` | +| Unknown event | Hook event name exists but is not recognized. | None. | No. | — | +| Invalid/missing event | Payload is invalid or has no event name. | None. | No. | — | + +Source of truth: `packages/claude/src/hooks.ts` and `packages/claude/src/hook-messages.ts`. + +### Bash test detection + +For `PreToolUse` with `tool_name: "Bash"`, OpenPets classifies the command as `testing` if the command contains one of these patterns: + +```text +test +vitest +jest +pytest +npm test +pnpm test +yarn test +cargo test +go test +``` + +Otherwise Bash maps to `running`. + +## Hook speech throttling + +Hooks do not speak on every matching event. Speech is throttled so the pet does not spam bubbles. + +| Speech category | Events that use it | Cooldown | +| --- | --- | --- | +| `thinking` | `UserPromptSubmit` | 20 seconds | +| `success` | `Stop` | 20 seconds | +| `error` | `StopFailure` | 20 seconds | +| `permission` | `PermissionRequest` | 3 seconds | + +If speech is throttled, OpenPets still sends the reaction with `pet.react`. Example: if `Stop` happens twice within 20 seconds, the second one sends `success` as a reaction only instead of saying another success phrase. + +Source of truth: `packages/claude/src/hooks.ts` (`speechCooldownMs`, `permissionCooldownMs`, `shouldSendSpeech`). + +## OpenCode plugin event mapping + +When OpenPets OpenCode setup is installed, OpenCode loads the `@open-pets/opencode` plugin. Plugin hooks return immediately and schedule OpenPets IPC calls in the background so OpenCode is not blocked by pet activity. + +| OpenCode hook/event | Condition | Reaction sent | Does it speak? | +| --- | --- | --- | --- | +| `chat.message` | User/chat activity. | `thinking` | Yes, throttled. | +| `tool.execute.before` | Edit/write/patch-like tool name. | `editing` | No. | +| `tool.execute.before` | Shell/bash-like tool name and test-like command category. | `testing` | No. | +| `tool.execute.before` | Shell/bash-like tool name, not test-like. | `running` | No. | +| `tool.execute.before` | Other tools. | `working` | No. | +| `event` | Bus event `permission.asked`. | `waiting` | Yes, short approval-needed speech. | +| Internal/self OpenPets tools | OpenPets MCP/status/say/react calls. | None. | No. | + +OpenCode speech uses the same safe shared message pools as Claude hooks. It never includes prompt text, commands, output, code, logs, paths, URLs, or secrets. + +Source of truth: `packages/opencode/src/opencode-plugin-runtime.ts` and `packages/agent-events/src/index.ts`. + +## Hook speech safety rules + +Hook-generated speech must be safe before it is sent. It must be: + +- 1–140 characters. +- Single-line. +- Not code-like. +- Not a URL. +- Not a path. +- Not secret-like. + +If a generated speech message fails validation, the hook ignores the error and does not break Claude Code. + +Source of truth: `packages/claude/src/hooks.ts`, `packages/opencode/src/opencode-plugin-runtime.ts`, and `packages/agent-events/src/index.ts`. + +## MCP tool mapping + +The public MCP tools are intentionally small: + +| MCP tool | Input | Effect | +| --- | --- | --- | +| `openpets_status` | none | Checks whether OpenPets is running and which pet is targeted. Does not change pet state. | +| `openpets_react` | `{ reaction }` | Drives the reaction animation and may show a short randomized temporary bubble from that reaction's message pool. | +| `openpets_say` | `{ message, reaction? }` | Sends a message bubble, optionally with a reaction. The message is what appears in the bubble. | + +### MCP message validation + +`openpets_say` messages must be: + +- 1–140 characters after trimming. +- Single-line. +- Not code-like. +- Not a URL. +- Not path-like. +- Not secret-like. + +Source of truth: `packages/mcp/src/tools.ts` and `apps/desktop/src/local-ipc-protocol.ts`. + +## Target pet routing + +OpenPets decides which pet gets the reaction/message as follows: + +| Situation | Target | +| --- | --- | +| No selected/configured pet. | Desktop default pet. | +| Selected/configured pet is the built-in pet or current default pet. | Desktop default pet. | +| Selected/configured pet is installed and not broken. | Explicit agent pet window for that pet. | +| Selected/configured pet is invalid, missing, or broken. | Falls back to desktop default pet. | + +Claude hooks, OpenCode plugin events, and MCP use a short-lived lease when a project/configured pet is specified. That lease routes `say`/`react` to the explicit pet window. + +Source of truth: `apps/desktop/src/local-ipc.ts` (`resolveLeaseTarget`), `packages/claude/src/hooks.ts` (`acquireHookLease`), and `packages/opencode/src/opencode-plugin-runtime.ts`. + +## Paused behavior + +If the default pet is paused: + +- Default-pet reactions/messages are not shown and return `reason: "paused"`. +- Explicit agent pet reactions/messages also check the default paused state and are not shown when paused. + +Source of truth: `apps/desktop/src/default-pet-controller.ts` and `apps/desktop/src/local-ipc.ts`. + +## Visibility behavior + +Default pet: + +- A reaction/message refreshes the default pet content. +- The default pet is only shown for external events if it is already visible or `openDefaultPetOnLaunch` is enabled. + +Explicit agent pet: + +- A reaction/message opens/shows that agent pet window. +- The agent pet window is closed when its explicit lease expires and no explicit lease remains. + +Source of truth: `apps/desktop/src/default-pet-controller.ts`, `apps/desktop/src/agent-pet-controller.ts`, and `apps/desktop/src/local-ipc.ts`. + +## Current product implications + +1. Hook emotions now change sprite animation rows; bubbles are still used for short visible text. +2. Only some hooks/events make the pet speak. Claude prompt/permission/stop events and OpenCode chat/permission events can produce speech. Tool-use hooks only react. +3. Speech is intentionally short and safe. Hooks/plugins never display prompts, command output, code, logs, paths, URLs, or secrets. +4. Messages override reaction text visually. If a message is present, the bubble shows the message, not a randomized reaction line, while the reaction still controls animation. +5. `celebrating` exists as an allowed manual reaction but is not emitted by Claude hooks today. diff --git a/docs/mvp-validation.md b/docs/mvp-validation.md new file mode 100644 index 00000000..44322c9e --- /dev/null +++ b/docs/mvp-validation.md @@ -0,0 +1,199 @@ +# OpenPets MVP validation + +This is the authoritative local MVP closeout checklist for OpenPets 2.0. + +The current checkpoint is a macOS local dogfooding package built with `electron-builder --dir`. It is not a public distribution release. + +## MVP readiness summary + +| Area | Status | Notes | +| --- | --- | --- | +| Tray/menu bar app | Ready for macOS local validation | Validate from the packaged app, not only `pnpm dev:desktop`. | +| Default pet | Ready for macOS local validation | Confirm show/hide, pause/resume, dragging, and restart persistence basics. | +| Default pet animation | Ready for macOS local validation | Confirm bundled sprite animation, left/right drag direction changes, and idle settle. | +| First-run onboarding | Ready for macOS local validation | Can be retested by removing OpenPets app data. | +| Pet Manager | Ready for macOS local validation | Catalog availability may affect install verification. | +| Settings persistence | Ready for macOS local validation | Toggle a preference, restart, and confirm persistence. | +| Local IPC/client smoke | Ready for macOS local validation | Run while the packaged app is open. | +| Claude Agent Setup preview | Ready for macOS local validation | Preview should use packaged bundled `node .../app.asar.unpacked/...` paths. | +| Claude config mutation | Optional/manual only | Requires user confirmation, backups, and cleanup/removal when done. | +| Windows/Linux packages | Unverified | Documented gap until tested on those platforms. | +| Signing/notarization/installers/auto-update | Deferred | Required before public distribution. | + +## Artifact identity + +| Field | Value | +| --- | --- | +| Workspace package version | `2.0.0` | +| Desktop package version | `2.0.0` | +| Local package command | `pnpm package:desktop:dir` | +| Package output | `apps/desktop/dist-electron/` | +| macOS app output | `apps/desktop/dist-electron/mac-arm64/OpenPets.app` on Apple Silicon | +| Manual tester/date/result | Fill in during validation | + +## Prerequisites + +- Node.js `>=20`. +- `pnpm@11.0.8` from the workspace root. +- A workspace checkout for developer validation commands. +- macOS for the current local package validation flow. +- `node` available on Claude's PATH if you opt into packaged Claude MCP/hooks validation from Claude itself. + +## Automated validation commands + +Run from the workspace root in this order: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +Run `pnpm package:desktop:dir` last because desktop package tests exercise the cleanup helper and may remove `apps/desktop/dist-electron`. + +The package script also cleans `apps/desktop/dist-electron` before packaging to avoid stale output masking regressions. + +## Package behavior notes + +Phase 10C enables ASAR packaging for Electron app contents and unpacks `node_modules/**` so Claude can execute bundled MCP/hook commands as regular files with external `node`. ASAR is packaging hygiene, not a security boundary. + +The builder config sets `npmRebuild: false` because the current desktop runtime dependencies are JavaScript-only. Revisit that setting if native modules are added. + +The macOS package uses an OpenPets MVP `.icns` derived from the current 64×64 tray icon. It may look soft at large sizes. Higher-resolution branding and Windows/Linux icon assets remain future polish. + +## Platform matrix + +| Platform | Target | Status | Notes | +| --- | --- | --- | --- | +| macOS | `electron-builder --dir` unpacked app | Validate locally now | Unsigned local app may require right-click → Open outside the dev machine. | +| Windows | `electron-builder --dir` unpacked app | Unverified | Unsigned apps may trigger Defender/SmartScreen warnings; not part of this MVP closeout. | +| Linux | `electron-builder --dir` unpacked app | Unverified | Desktop integration varies by distro/window manager; not part of this MVP closeout. | + +Installer targets, notarization, code signing, auto-update, and public distribution are deferred. + +## macOS manual packaged-app checklist + +Run this checklist after the automated commands pass. + +1. Launch the generated packaged app from `apps/desktop/dist-electron/`. + - Expected: OpenPets starts without using the dev Electron entrypoint. +2. Confirm the tray/menu bar icon appears. + - Expected: Tray/menu items are available, including Manage Pets, Configure Agents, Settings, show/hide, pause/resume, and Quit. +3. Confirm the default pet behavior. + - Expected: The default pet appears as an animated bundled sprite, can be shown/hidden, paused/resumed, dragged, and still behaves correctly after app restart. + - Expected: Dragging right switches to a right-facing/running animation; dragging left switches to a left-facing/running animation; stopping settles back to idle without jitter. +4. Complete onboarding if it appears. + - Expected: Onboarding can be completed or skipped according to the UI, and does not block using the built-in default pet. + - To retest first-run onboarding, remove the OpenPets app data directory for your platform before launching again. +5. Open Pet Manager. + - Expected: Installed pets and catalog state render. If the catalog is unavailable, record the catalog error and mark catalog install unverified for that run. +6. If a catalog pet is available, install it and set it as default. + - Expected: Install succeeds, the pet can become default, and the app remains usable after restart. + - Expected: The installed default pet shows one animated frame sequence, not the full square spritesheet, and drag left/right changes its animation direction. + - Expected: Pet Manager keeps the current default card actionable; removable default pets can still be removed safely. +7. Open Settings, toggle a preference, quit, relaunch, and confirm persistence. + - Expected: The changed preference persists across restart. +8. While the packaged app is running, run the local IPC smoke command from the workspace root: + + ```bash + pnpm --filter @open-pets/client smoke:status + ``` + + - Expected: The client discovers the running packaged app and receives status without token/version errors. +9. Open Agent Setup and inspect the Claude preview without applying changes. + - Expected: Packaged previews use `node` commands pointing inside the packaged app, not unpublished `npx -y @open-pets/*` commands. + - Expected MCP shape: `node .../app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js`. + - Expected hooks shape: `node .../app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed`. +10. Optional mutating Claude validation: configure/install Claude MCP/hooks only if you intentionally want to modify your real Claude settings. + - Expected: OpenPets shows what it will change and creates backups before editing. + - Cleanup: use Agent Setup remove/uninstall actions when done if you do not want to keep the integration. +11. Quit OpenPets from the tray. + - Expected: The app exits cleanly and removes transient local IPC discovery state. + +## Pet and chat bubble quality checks + +While OpenPets is running, trigger a speech bubble from the workspace root: + +```bash +pnpm --filter @open-pets/client smoke:say "Working on it" thinking +``` + +Expected: the bubble is compact, readable, visually attached to the pet, and does not look like an oversized wireframe card. + +Trigger a reaction: + +```bash +pnpm --filter @open-pets/client smoke:react success +``` + +Expected: the pet remains animated and the bubble/reaction presentation stays readable and short. + +## Claude packaged command notes + +Packaged Claude integration uses bundled commands inside the packaged OpenPets app instead of unpublished package names. + +Expected command resources live under `app.asar.unpacked`, not `app.asar`, because Claude launches them through external `node`: + +```text +.../OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js +.../OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js +``` + +Packaged bundled Claude commands require `node` to be available on Claude's PATH. + +Claude settings may contain absolute paths into the packaged OpenPets app. Moving, deleting, or replacing the app may require opening Agent Setup and using Replace/Install again. Use Agent Setup remove/uninstall before deleting the app if you want to remove OpenPets-managed Claude entries. + +## Safe vs mutating validation + +Safe validation: + +- Running workspace tests/checks/package commands. +- Launching the packaged app. +- Inspecting Agent Setup previews. +- Running `pnpm --filter @open-pets/client smoke:status` against the local packaged app. + +Mutating validation: + +- Applying Claude MCP configuration. +- Installing Claude hooks. +- Removing/uninstalling Claude integration. +- Deleting OpenPets app data to retest onboarding. + +Only run mutating steps intentionally. Automated tests must use temp fixtures and must not edit real Claude settings or real OpenPets user data. + +## Cleanup and data-loss notes + +OpenPets stores normal app state in Electron's per-user app data directory. The app logs the exact state file path on startup: + +```text +OpenPets state initialized at /openpets-state.json. +``` + +Deleting that app data directory removes installed pets, default-pet selection, onboarding completion, and preferences for that platform user. + +Claude configuration is separate from OpenPets app data. Uninstalling or deleting OpenPets does not automatically remove Claude MCP entries or Claude hooks. + +Package output can be removed safely: + +```text +apps/desktop/dist-electron/ +``` + +## Unsigned local-app warnings + +The current package output is unsigned and not notarized. + +- macOS may warn that the app is from an unidentified developer when moved to another machine. +- Windows may show Defender/SmartScreen prompts. +- Linux behavior depends on distro and desktop environment. + +These warnings are expected for local MVP validation and are not acceptable for public distribution. + +## Known limitations and post-MVP follow-ups + +- Public distribution requires signing, notarization where applicable, installer targets, and an update strategy. +- Windows and Linux package behavior need real platform validation. +- Windows/Linux app icon assets are not configured yet. +- The current macOS app icon is MVP-quality and generated from a 64×64 source. +- Published `npx -y @open-pets/*` package flows remain future distribution work; local packaged Claude setup uses bundled app paths. +- `asarUnpack: node_modules/**` is broad for MVP reliability and can be narrowed after packaged command needs are fully characterized. diff --git a/docs/opencode.md b/docs/opencode.md new file mode 100644 index 00000000..f6dfd05e --- /dev/null +++ b/docs/opencode.md @@ -0,0 +1,287 @@ +# OpenCode integration + +This document describes how OpenPets Desktop integrates with OpenCode, what files are configured, how OpenCode reaches the desktop app, and which OpenCode events trigger pet reactions or speech. + +## Integration surfaces + +OpenCode support has three related surfaces: + +1. **MCP tools** — OpenCode gets the `openpets_status`, `openpets_react`, and `openpets_say` tools through `@open-pets/cli mcp`. +2. **OpenCode instructions** — OpenCode loads a managed `openpets.md` instruction file telling agents when to use the tools. +3. **OpenCode plugin hooks** — `@open-pets/opencode` turns OpenCode activity into automatic pet reactions and short safe speech. + +The desktop setup UI for OpenCode is implemented in `apps/desktop/src/agent-setup.ts`. It previews, installs, doctors, and removes global OpenCode setup through `@open-pets/opencode` helpers. + +This document covers **Desktop global setup** first. The CLI also supports **project-local OpenCode setup**; see [Project-local OpenCode setup](#project-local-opencode-setup). + +## Global config location + +OpenPets uses OpenCode's global config directory: + +```text +OPENCODE_CONFIG_DIR, if set +Windows: %APPDATA%/opencode +macOS/Linux: $XDG_CONFIG_HOME/opencode, or ~/.config/opencode fallback +``` + +Inside that directory OpenPets considers these config files, in order: + +```text +config.json +opencode.json +opencode.jsonc +``` + +If no file exists, the default creation target is: + +```text +opencode.jsonc +``` + +OpenPets also writes a global instruction file: + +```text +/openpets.md +``` + +## Files and config managed by OpenPets + +OpenCode global setup writes or updates three config fields. + +### MCP entry + +Published setup creates an MCP entry like: + +```jsonc +{ + "mcp": { + "openpets": { + "type": "local", + "command": ["npx", "-y", "@open-pets/cli@", "mcp"], + "enabled": true + } + } +} +``` + +If a pet is selected, the command includes it: + +```jsonc +"command": ["npx", "-y", "@open-pets/cli@", "mcp", "--pet", ""] +``` + +In local development or packaged desktop mode, OpenPets can use: + +```jsonc +"command": ["node", "", "mcp", ...] +``` + +Packaged and local `node ` commands require `node` to be available on OpenCode's `PATH`. Desktop setup reports an error instead of installing a bundled command if `node --version` cannot run from the agent environment. + +### Instructions + +OpenPets adds the managed instruction file to OpenCode's `instructions` array: + +```jsonc +{ + "instructions": ["/openpets.md"] +} +``` + +That file contains: + +```md + +## OpenPets + +OpenPets MCP tools may be available. + +Use OpenPets as a short visible status channel for meaningful coding progress: +- Use `openpets_say` when starting, completing, blocking, or needing review on non-trivial work. +- Keep messages brief, user-facing, and non-sensitive. +- Do not include code, logs, secrets, URLs, or file paths. +- Use `openpets_react` for small visual or emotional feedback. +- Use `openpets_status` only when checking availability or the targeted pet. +- Do not spam every internal step. + +``` + +### Plugin + +OpenPets adds the OpenCode plugin: + +```jsonc +{ + "plugin": ["@open-pets/opencode@"] +} +``` + +If a pet is selected, the plugin entry includes options: + +```jsonc +{ + "plugin": [["@open-pets/opencode@", { "pet": "" }]] +} +``` + +The plugin id is: + +```text +open-pets-opencode +``` + +## Setup behavior + +OpenPets global setup is conservative: + +- It parses OpenCode config as JSONC, not strict JSON. +- It preserves unrelated user config. +- It avoids unsafe symlinks and oversized files. +- It writes temp files and backups before replacing existing files. +- It refuses to overwrite custom OpenPets-like config entries that it cannot prove are managed by OpenPets. +- It cleans up stale managed entries from any non-selected global config file when one selected config file becomes the owner. + +OpenPets chooses one global config file as the owner for the managed MCP, instructions, and plugin entries. It first prefers the effective owner of relevant array fields such as `plugin` or `instructions`, then reuses an existing managed OpenPets owner, then uses the highest-precedence existing global config file, and finally creates `opencode.jsonc` if none exists. Setup refuses ambiguous cases, such as plugin and instruction arrays living in different files, managed OpenPets entries appearing in multiple global files, or higher-precedence arrays shadowing lower-precedence user entries. + +Removal deletes only OpenPets-managed MCP, instructions, and plugin entries. It leaves unrelated OpenCode config intact. + +## Project-local OpenCode setup + +The `@open-pets/cli` package can configure OpenCode inside a project: + +```sh +openpets configure --agent opencode --pet +``` + +Project-local setup writes inside the current project directory: + +```text +.opencode/opencode.jsonc +.opencode/openpets.md +``` + +If another supported OpenCode project config already exists, OpenPets updates that file instead of creating `.opencode/opencode.jsonc`. Project-local setup adds the same three kinds of entries as global setup: + +- `mcp.openpets` using `@open-pets/cli mcp --pet `. +- `instructions` pointing to `.opencode/openpets.md`. +- `plugin` using `@open-pets/opencode` with `{ "pet": "" }`. + +Project-local config and instructions can be committed to the repository and include the selected pet id. That is useful for shared project identity, but users should review those files before committing. + +## Runtime path + +When OpenCode calls an OpenPets MCP tool or when the OpenCode plugin reacts to an event, the runtime path is: + +```text +OpenCode + -> @open-pets/cli mcp or @open-pets/opencode plugin + -> @open-pets/client + -> OpenPets desktop local IPC discovery file + -> OpenPets desktop IPC socket/pipe + -> default pet controller or explicit agent pet controller +``` + +The desktop app writes a discovery file such as: + +```text +macOS: ~/Library/Application Support/OpenPets/runtime/ipc.json +Windows: %APPDATA%/OpenPets/runtime/ipc.json +Linux: $XDG_RUNTIME_DIR/openpets/ipc.json, or ~/.config/OpenPets/runtime/ipc.json fallback +``` + +That file contains the IPC endpoint and a per-run token. Clients must send that token with every request. + +## MCP tools + +OpenCode sees these tools when the MCP entry is enabled: + +| Tool | Purpose | Desktop IPC method | +| --- | --- | --- | +| `openpets_status` | Check whether OpenPets is reachable and which pet is targeted. | `status` | +| `openpets_react` | Set a short reaction on the target pet. | `pet.react` | +| `openpets_say` | Show a short safe speech bubble, optionally with a reaction. | `pet.say` | + +Depending on OpenCode's MCP naming, tool names may appear with a server prefix, for example `openpets_openpets_say`. The OpenCode plugin explicitly ignores OpenPets tool calls so the pet does not react to its own status messages. + +`openpets_say` is validated before it reaches the desktop app. Messages must be short, single-line, and must not look like code, logs, secrets, URLs, or file paths. + +## Pet targeting + +If the MCP command or plugin was configured without a pet, events target the desktop default pet. + +If configured with a pet, OpenPets asks the desktop app for a lease: + +```text +lease.acquire({ requestedPetId: "" }) +``` + +Routing rules: + +- Missing `pet` option -> default pet. +- Requested pet is the default pet or built-in pet -> default pet. +- Invalid, missing, or broken pet -> default pet with a fallback reason. +- Valid installed non-default pet -> explicit agent pet window. + +Explicit leases expire after a short TTL unless refreshed. The plugin caches and reuses a lease while it is still valid. When the last explicit lease for a pet expires or is released, OpenPets clears and closes that agent pet window. + +## OpenCode plugin reaction and speech mapping + +The OpenCode plugin is decorative and best-effort. It schedules OpenPets work in the background and returns immediately so it does not slow down OpenCode hooks. If OpenPets is closed or IPC is unavailable, the plugin swallows the error. + +| OpenCode event/hook | Trigger condition | Reaction | Speech bubble | +| --- | --- | --- | --- | +| `chat.message` | OpenCode receives a chat message. | `thinking`, throttled. | None. | +| `tool.execute.before` | Tool name contains `edit`, `write`, `patch`, or `apply_patch`. | `editing` | None. | +| `tool.execute.before` | Tool name contains `bash`, `shell`, or `terminal`, and command args look test-like. | `testing` | None. | +| `tool.execute.before` | Tool name contains `bash`, `shell`, or `terminal`, and command args do not look test-like. | None. | None. | +| `tool.execute.before` | Any other non-OpenPets tool. | None. | None. | +| `event` | Bus event type is `permission.asked` for a non-OpenPets tool. | `waiting` | `Approval needed`, throttled with a short cooldown. | +| `event` | Bus event type is `session.error`. | `error` | One error-pool message, throttled. | +| `event` | Bus event type is `session.status` and status type is `idle`. | `success`, throttled. | None. | +| `tool.execute.after` | Any tool completed. | None | None. | +| OpenPets MCP tool | Tool name is `openpets_status`, `openpets_say`, `openpets_react`, or server-prefixed equivalent. | None | None. | +| Unknown event | Event is not recognized. | None | None. | + +Test-like command detection is intentionally coarse and private. It may inspect only a bounded command string to classify the reaction. The command text is never sent to speech. + +OpenCode hooks do **not** use the left/right walking animations or the `running` reaction. The `running-right` and `running-left` sprite rows are reserved for pet drag/move motion, and generic shell activity is silent by default. Hook reactions use quieter phase changes instead: editing maps to the generic active-work row, thinking maps to `review`, waiting/testing maps to `waiting`, success maps to `jumping`, and errors map to `failed`. + +## Plugin speech pools + +When the plugin is allowed to speak, it chooses one static local message from the matching pool: + +| Category | Possible messages | +| --- | --- | +| `thinking` | `Thinking it through`, `Let me check`, `On it`, `Working it out` | +| `success` | `Done`, `That worked`, `All set`, `Nice, finished` | +| `error` | `Something failed`, `Needs another look`, `Hit a snag`, `Not quite there` | +| `permission` | `Approval needed` | + +Speech is throttled by category so hooks do not spam bubbles. Current speech cooldowns are: + +| Category | Cooldown | +| --- | --- | +| `permission` | 3 seconds | +| `thinking`, `success`, `error` | 20 seconds each | + +Normal thinking and success hooks no longer speak, so their speech pools are retained for shared/static message support but are not used by OpenCode's default quiet plugin policy. Reaction-only hooks are also deduped, with the same reaction suppressed for about 10 seconds. + +OpenCode stores throttle state separately from Claude in an OpenCode-specific file, for example: + +```text +Windows: %LOCALAPPDATA%/OpenPets/opencode-hook-throttle.json +macOS/Linux: ${XDG_STATE_HOME:-~/.local/state}/openpets/opencode-hook-throttle.json +fallback: os.tmpdir()/openpets-/opencode-hook-throttle.json +``` + +Throttle state stores only speech-category and reaction timestamp keys, never prompts, commands, tool input, output, code, logs, or transcripts. + +## Safety rules + +- Plugin hooks return immediately and never await OpenPets IPC directly. +- Plugin errors are swallowed unless debug logging is enabled. +- Debug logs sanitize paths and secret-looking values. +- Speech is static and local; it does not include model-generated text. +- Tool args and command text are used only for coarse reaction classification. +- The plugin ignores OpenPets MCP tools to avoid feedback loops. +- Managed setup refuses unsafe symlinks, non-regular files, oversized config files, and conflicting custom OpenPets-like config. diff --git a/docs/phases/phase-00-workspace-foundation.md b/docs/phases/phase-00-workspace-foundation.md new file mode 100644 index 00000000..1b7814a9 --- /dev/null +++ b/docs/phases/phase-00-workspace-foundation.md @@ -0,0 +1,383 @@ +# Phase 00: Workspace foundation and DX + +## Goal + +Create the fresh OpenPets 2.0 workspace foundation with excellent developer experience and Node/npm-compatible runtime behavior. + +This phase should establish the project skeleton and basic commands needed for later implementation phases, without building real product features yet. + +## Non-goals + +This phase does not implement: + +- Tray/menu app behavior. +- Floating pet windows. +- Pet rendering. +- Pet catalog browsing or installation. +- Local IPC. +- MCP tools. +- Claude detection/configuration/hooks. +- First-run onboarding. +- Packaging/release builds. + +This phase should also avoid large migrations from v1. v1 remains reference material only. + +## User-visible/manual outcome + +After this phase, the user/developer should be able to install dependencies and run basic workspace checks from a clean v2 workspace. + +Expected manual outcome: + +```text +I can install dependencies, inspect the v2 workspace structure, and run basic check/build scripts without using Bun. +``` + +## Acceptance criteria + +- A fresh v2 workspace structure exists outside `v1/`. +- v1 remains untouched except as reference material. +- Runtime and published package design is Node/npm/npx-compatible. +- Bun is not required for v2 runtime behavior. +- Development tooling is documented clearly. +- Node baseline is documented. +- Workspace boundaries exclude v1 and web app code from v2 workspace commands. +- Initial packages are protected from accidental publishing while they are skeletons. +- Basic workspace scripts exist for checking/building the initial skeleton. +- Package names align with the agreed `@open-pets/*` organization. +- The initial package/app structure supports later phases without overbuilding empty abstractions. +- The repo clearly distinguishes current v2 code from v1 reference code. + +## Proposed files/directories + +Create or update: + +```text +package.json +pnpm-workspace.yaml +pnpm-lock.yaml +tsconfig.base.json +.gitignore +README.md # if useful for v2 developer commands + +apps/ + desktop/ + package.json + tsconfig.json + src/ + main.ts # placeholder or minimal entry, no real tray behavior yet + +packages/ + client/ + package.json + tsconfig.json + src/index.ts + + mcp/ + package.json + tsconfig.json + src/index.ts + + claude/ + package.json + tsconfig.json + src/index.ts + + cli/ + package.json + tsconfig.json + src/index.ts + + pet-format/ + package.json + tsconfig.json + src/index.ts + +``` + +Important constraint: + +- Do not add large placeholder systems just to fill packages. +- If a package would be purely empty and creates more maintenance than value, keep it minimal with only package metadata and a tiny exported placeholder/type needed for build checks. +- Defer `packages/shared` until there is a concrete first use. Avoid creating a dumping-ground package in Phase 00. + +## Technical approach + +Use pnpm workspaces for development ergonomics. + +Recommended baseline: + +```text +Node: 20+ +Package manager: pnpm via Corepack +Module style: ESM +Build: plain TypeScript `tsc` for initial packages +``` + +Node 20+ is a conservative baseline with broad ecosystem support. A later phase may raise this if Electron or another dependency requires it. + +Important distinction: + +```text +Developer package manager: pnpm +Runtime/user interface: Node/npm/npx +``` + +This means: + +- Contributors may run `pnpm install` and `pnpm check` during development. +- Contributors should use Corepack or an explicitly documented pnpm version from the root `packageManager` field. +- Published packages must be usable through normal Node/npm/npx flows. +- `@open-pets/mcp` should eventually support `npx -y @open-pets/mcp`. +- `@open-pets/cli` should eventually support `npx -y @open-pets/cli ...`. +- No v2 package should rely on Bun runtime APIs. + +Workspace inclusion rule: + +```yaml +packages: + - "apps/*" + - "packages/*" +``` + +Do not include: + +```text +v1/** +web/** +``` + +The existing `web/` app and `v1/` references must remain outside v2 workspace commands. + +Package privacy rules: + +- Root `package.json` is `private: true`. +- `apps/desktop` is `private: true`. +- Skeleton packages should be `private: true` during Phase 00 unless there is a concrete reason to make one publishable immediately. +- Public package names may still be reserved in package metadata, but avoid accidental publication of empty packages. + +Initial scripts should be simple and predictable, for example: + +```json +{ + "scripts": { + "check": "pnpm -r check", + "typecheck": "pnpm -r typecheck", + "build": "pnpm -r build" + } +} +``` + +Each initial package should expose minimal `check`, `typecheck`, and `build` scripts where practical. + +Linting is deferred in Phase 00 unless it is trivial to add without expanding scope. TypeScript strictness is the initial code-quality gate. + +Use TypeScript project configuration that can scale to multiple packages without making Phase 00 too complex. + +Initial TypeScript/build convention: + +- Use `type: "module"`. +- Use strict TypeScript settings. +- Use `moduleResolution` appropriate for modern Node ESM. +- Emit to `dist/`. +- Generate declarations for packages where practical. +- Use source maps where practical. +- Avoid bundlers until a later phase requires them. + +Recommended package intent: + +- `apps/desktop` — Electron desktop app, implemented in later phases. +- `packages/client` — local IPC client, implemented in Phase 05. +- `packages/mcp` — MCP stdio server, implemented in Phase 06. +- `packages/claude` — Claude detection/configuration/hooks package, implemented in Phases 07–08. +- `packages/cli` — explicit user-run CLI commands, implemented after core app/client behavior exists. +- `packages/pet-format` — shared pet manifest/catalog validation types, used by pet manager/catalog install phases. + +Deferred package: + +- `packages/shared` — defer until a concrete shared constant/type exists. Do not create it in Phase 00 by default. + +Electron app note: + +- `apps/desktop/src/main.ts` is compile-only placeholder code in Phase 00. +- Do not add real tray behavior, renderer framework, Electron window code, or packaging setup in Phase 00. +- Avoid adding Electron/Vite/React dependencies until Phase 01 unless needed for a minimal compile check. + +## Risks and tradeoffs + +### Risk: too much empty scaffolding + +Creating every planned package immediately may produce fake progress and maintenance overhead. + +Mitigation: + +- Keep package contents minimal. +- Add only enough for workspace checks and future package boundaries. +- Do not implement fake APIs before their phase. +- Defer `packages/shared` until needed. + +### Risk: pnpm confusion vs npm/npx requirement + +The project may use pnpm for development while users need npm/npx compatibility. + +Mitigation: + +- Document the distinction clearly. +- Avoid pnpm-specific runtime assumptions. +- Keep package `bin`/publish behavior npm-compatible when those packages become real. + +### Risk: v1 assumptions leaking into v2 + +v1 is Bun-oriented and has known broken agent configuration flows. + +Mitigation: + +- Do not copy v1 structure blindly. +- Treat v1 as reference only. +- Re-check docs and design before implementing each real feature phase. + +### Risk: Phase 00 becomes abstract tooling work + +Phase 00 should enable work, not become a tooling project. + +Mitigation: + +- Keep tooling minimal. +- Avoid CI/release/publishing complexity until later hardening phases. + +### Risk: v2 workspace accidentally runs v1 or web commands + +The repository contains existing `v1/` and `web/` folders with their own tooling. Accidentally including them in pnpm workspaces would blur boundaries and may pull Bun-era assumptions into v2. + +Mitigation: + +- `pnpm-workspace.yaml` includes only `apps/*` and `packages/*`. +- `v1/**` and `web/**` remain outside v2 workspace commands. + +### Risk: accidental publish of skeleton packages + +Early package skeletons should not be published before they are real. + +Mitigation: + +- Mark root, apps, and skeleton packages `private: true` in Phase 00. +- Revisit publish settings only in the phase where a package is ready for actual npm usage. + +## Security/privacy notes + +This phase should not introduce network behavior, local IPC, config editing, pet zip extraction, or agent hooks. + +Security/privacy expectations for this phase: + +- No secrets or credentials are added. +- No telemetry is added. +- No install scripts should perform surprising system changes. +- No package should require postinstall behavior for core development. +- Skeleton packages should be private to prevent accidental empty-package publication. + +## Test/check plan + +Automated checks: + +```bash +pnpm install +pnpm check +pnpm typecheck +pnpm build +``` + +Expected result: + +- Dependency install succeeds. +- TypeScript/workspace checks pass. +- Typecheck passes under the agreed Node/ESM/strict TypeScript settings. +- Initial package builds pass or intentionally no-op with clear scripts. + +If package scripts are intentionally minimal, they should still be explicit and understandable. + +## Manual verification guide + +After implementation, the user should verify: + +1. Run dependency install: + + ```bash + pnpm install + ``` + +2. Run checks: + + ```bash + pnpm check + ``` + +3. Run typecheck: + + ```bash + pnpm typecheck + ``` + +4. Run build: + + ```bash + pnpm build + ``` + +5. Inspect that v2 code lives outside `v1/`: + + ```text + apps/desktop + packages/client + packages/mcp + packages/claude + packages/cli + packages/pet-format + ``` + +6. Confirm no Bun command is required for v2 checks/builds. + +7. Confirm `pnpm-workspace.yaml` does not include `v1/**` or `web/**`. + +Manual acceptance question: + +```text +Does Phase 00 pass on your machine: dependencies install, checks/typechecks/builds run, and the v2 workspace structure looks right? +``` + +## Oracle plan review + +Oracle reviewed the Phase 00 plan and approved it with required minor revisions before implementation. + +Summary of Oracle feedback: + +- Tighten workspace boundary so v2 workspace excludes `v1/**` and `web/**`. +- Define Node/tooling baseline. +- Protect skeleton packages from accidental publishing. +- Clarify scripts and build conventions. +- Avoid adding Electron implementation/dependencies too early. +- Defer `packages/shared` unless immediately needed. + +## Oracle feedback disposition + +- Fixed: Added workspace inclusion/exclusion rule for `apps/*` and `packages/*`, excluding `v1/**` and `web/**`. +- Fixed: Added Node 20+, Corepack/pnpm, ESM, and plain TypeScript build baseline. +- Fixed: Added privacy rules for root/app/skeleton packages. +- Fixed: Added `typecheck` script expectation and deferred linting explicitly. +- Fixed: Added TypeScript/build convention notes. +- Fixed: Clarified `apps/desktop/src/main.ts` is compile-only placeholder and no tray/Electron implementation belongs in Phase 00. +- Fixed: Deferred `packages/shared` until concrete need exists. + +## Oracle implementation review + +Oracle reviewed the implemented Phase 00 diff after successful validation with: + +```bash +pnpm install && pnpm check && pnpm typecheck && pnpm build +``` + +Oracle found no blocking correctness, security, or spec issues and approved Phase 00 for manual user verification. + +Implementation review disposition: + +- Fixed: Updated stale `docs/workflow.md` current-action wording so the workflow document remains reusable across phases. +- Deferred: README Corepack guidance can be expanded later if needed; root `packageManager` already pins pnpm. +- Deferred: Package script/tsconfig simplifications can be revisited if they become maintenance overhead. diff --git a/docs/phases/phase-01-tray-desktop-shell.md b/docs/phases/phase-01-tray-desktop-shell.md new file mode 100644 index 00000000..dc003e95 --- /dev/null +++ b/docs/phases/phase-01-tray-desktop-shell.md @@ -0,0 +1,334 @@ +# Phase 01: Tray-first desktop shell + +## Goal + +Create the first runnable OpenPets desktop app shell as a tray/menu-bar-first Electron app. + +This phase should prove the desktop process, tray icon/menu, placeholder task windows, and clean quit flow work before building pet rendering or integrations. + +## Non-goals + +This phase does not implement: + +- Floating pet windows. +- Transparent/always-on-top pet rendering. +- Pet dragging or persisted pet position. +- Real Pet Manager catalog behavior. +- Real Agent Setup detection/configuration. +- Real Settings persistence. +- Local IPC. +- MCP integration. +- Claude hooks. +- First-run onboarding. +- Production packaging/signing/notarization. + +## User-visible/manual outcome + +After this phase, the user/developer should be able to run the desktop app and confirm: + +```text +OpenPets launches as a tray/menu-bar app, exposes the agreed tray menu, opens placeholder windows, and quits cleanly. +``` + +## Acceptance criteria + +- Desktop app can be launched with a documented development command. +- App creates a tray/menu-bar icon. +- App does not open a dashboard/main window automatically on startup. +- Tray menu contains the agreed initial entries: + + ```text + OpenPets + ──────────────── + Default Pet: + Show Default Pet / Hide Default Pet + Pause All Pets / Resume All Pets + ──────────────── + Manage Pets... + Configure Agents... + Settings... + ──────────────── + Quit OpenPets + ``` + +- `OpenPets` is a disabled title row. +- `Default Pet: ` exists and can open the placeholder Pet Manager window. +- `Show Default Pet / Hide Default Pet` exists but may be disabled or no-op until Phase 02. +- `Pause All Pets / Resume All Pets` exists and toggles visible menu state, even if no pets exist yet. +- `Manage Pets...` opens a placeholder Pet Manager window. +- `Configure Agents...` opens a placeholder Agent Setup window. +- `Settings...` opens a placeholder Settings window. +- Placeholder windows are single-instance: choosing the same menu item focuses/reopens the existing window instead of spawning duplicates. +- Closing a placeholder window destroys only that window, clears its window reference, and does not quit the app. +- The app process is single-instance: a second launch must not create duplicate tray icons. +- `Quit OpenPets` exits the app cleanly. +- macOS behavior is handled intentionally: closing placeholder windows does not quit; explicit quit does quit. +- Basic app lifecycle errors are logged clearly during development. +- Existing Phase 00 checks continue to pass. + +## Proposed files/directories + +Update: + +```text +apps/desktop/package.json +apps/desktop/tsconfig.json +apps/desktop/src/main.ts +README.md +``` + +Likely add: + +```text +apps/desktop/src/tray.ts +apps/desktop/src/windows.ts +apps/desktop/src/state.ts +apps/desktop/src/lifecycle.ts +apps/desktop/src/assets.ts +``` + +Exact file names can change if a simpler structure is better, but Phase 01 should keep the app shell understandable. + +## Technical approach + +Use Electron for the desktop shell. + +Recommended Phase 01 behavior: + +- Add Electron as a development/runtime dependency of `apps/desktop` only. +- Add a dev command such as `pnpm --filter @open-pets/desktop dev`. +- Keep renderer placeholders minimal; do not introduce a frontend framework yet unless required. +- Use simple BrowserWindow placeholder windows with hardcoded data URLs for Phase 01. +- Keep all real product logic out of placeholders. +- Use a simple generated/nativeImage tray icon suitable for development. +- Keep all windows task-specific; do not create a dashboard. + +Recommended initial desktop scripts: + +```json +{ + "scripts": { + "dev": "pnpm build && electron .", + "check": "pnpm typecheck", + "typecheck": "tsc --noEmit", + "build": "tsc" + } +} +``` + +Electron launch approach should be simple for Phase 01: + +- Compile TypeScript to `dist/`. +- Start Electron against `dist/main.js`. +- Avoid production packager setup until Phase 10. + +Because Phase 01 uses `tsc` only, avoid static asset copy complexity: + +- Placeholder window HTML should be hardcoded data URLs. +- Tray icon should be generated in code through Electron/nativeImage or otherwise not require copied runtime assets. +- Do not place required runtime HTML/icons under `src/` unless the implementation also includes an explicit copy strategy. + +Electron lifecycle rules: + +- `app.whenReady()` creates the tray only. +- No window opens on startup. +- `window-all-closed` does not quit the app. +- macOS `activate` does not create a dashboard/main window. +- `Quit OpenPets` sets an intentional quit flag and calls `app.quit()`. +- Use `app.requestSingleInstanceLock()` so a second launch does not create duplicate tray icons. +- On second instance, keep/focus the existing app where practical and exit the second process. +- Set the app name to `OpenPets` where practical. + +macOS tray/Dock decision: + +- Call `app.dock.hide()` on macOS for the tray/menu-bar-first shell. +- Do not show a Dock icon in normal Phase 01 operation. +- If this causes practical development issues, document them as known limitations instead of changing the product direction silently. + +Tray/menu state: + +- Default pet label can use a hardcoded placeholder name such as `Default Pet: Built-in Pet` or `Default Pet: Snoopy` until real pet state exists. +- Use `Default Pet: Built-in Pet` for Phase 01. +- `Default Pet: Built-in Pet` opens the placeholder Pet Manager window. +- `Show Default Pet` is disabled until Phase 02. +- Pause state can be an in-memory boolean for now. +- Pause toggle only changes the in-memory menu label between `Pause All Pets` and `Resume All Pets`. + +Placeholder windows: + +- Pet Manager placeholder should make clear it is placeholder UI. +- Agent Setup placeholder should make clear it is placeholder UI. +- Settings placeholder should make clear it is placeholder UI. +- Each placeholder window should have a stable title. +- Opening a placeholder should show/restore/focus the existing window if it already exists. +- Closing a placeholder should destroy it and set its reference to `null`. + +## Risks and tradeoffs + +### Risk: adding frontend framework too early + +Phase 01 only needs placeholder windows. Adding Vue/React/etc. now could slow the shell checkpoint. + +Mitigation: + +- Use minimal static placeholder UI in Phase 01. +- Decide renderer framework later when real UI work begins. + +### Risk: platform tray differences + +Tray/menu behavior differs between macOS, Windows, and Linux. + +Mitigation: + +- Implement the simplest Electron-supported tray/menu behavior first. +- Document known platform limitations from manual testing. +- Do not attempt packaging or advanced native integration in Phase 01. + +### Risk: app accidentally becomes dashboard-first + +Opening a main window automatically would conflict with the agreed product surface. + +Mitigation: + +- Do not open any main/dashboard window on startup. +- Only tray and explicitly requested task windows exist. + +### Risk: app process quits unexpectedly when windows close + +Electron defaults can differ by platform and window lifecycle. + +Mitigation: + +- Manage app quit explicitly. +- Closing placeholder task windows should not quit the app. +- `Quit OpenPets` should be the clear exit path. + +### Risk: static assets fail at runtime + +Running Electron from `dist/main.js` while assets live under `src/` can break if assets are not copied. + +Mitigation: + +- Use data URLs for placeholder HTML in Phase 01. +- Generate the development tray icon in code or use an asset strategy that does not depend on unconfigured copies. + +## Security/privacy notes + +This phase should not touch user agent configuration, shell profiles, Claude settings, local IPC sockets, network, pet zips, or user data beyond normal Electron app startup. + +Security/privacy expectations: + +- No telemetry. +- No network calls. +- No config file edits. +- No auto-start/login item changes. +- No shell command execution beyond documented development scripts. +- Placeholder windows should not enable risky web content behavior unnecessarily. + +Required BrowserWindow safety defaults for placeholders: + +- `nodeIntegration: false`. +- `contextIsolation: true`. +- `sandbox: true`. +- No preload script unless absolutely needed. Phase 01 should not need one. +- No remote content loaded. +- Deny navigation away from the placeholder content. +- Deny new-window creation. +- If using data URLs, all content must be hardcoded and no user data should be interpolated. + +Placeholder HTML should include a restrictive content security policy where practical. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +Manual app run command should be documented after implementation, likely: + +```bash +pnpm --filter @open-pets/desktop dev +``` + +Expected automated result: + +- TypeScript checks pass. +- Desktop app build passes. +- Existing workspace package checks continue to pass. + +## Manual verification guide + +After implementation, the user should verify: + +1. Start the desktop app with the documented command. +2. Confirm no dashboard/main window opens automatically. +3. Confirm OpenPets appears in the tray/menu bar. +4. Open the tray menu and verify entries match the Phase 01 menu. +5. Click `Manage Pets...` and confirm one placeholder Pet Manager window opens. +6. Click `Manage Pets...` again and confirm it focuses/reuses the existing window instead of spawning duplicates. +7. Repeat for `Configure Agents...`. +8. Repeat for `Settings...`. +9. Toggle `Pause All Pets` and confirm the menu changes to `Resume All Pets`. +10. Close placeholder windows and confirm the app stays running in tray/menu bar. +11. Choose `Quit OpenPets` and confirm the app exits cleanly. + +Manual acceptance question: + +```text +Does Phase 01 pass on your machine: tray app launches, menu matches, placeholder windows work, and quit is clean? +``` + +## Oracle plan review + +Oracle reviewed the initial Phase 01 spec and blocked implementation until the spec was tightened. + +Summary of required Oracle feedback: + +- Define Electron lifecycle behavior explicitly. +- Add app-level single-instance behavior. +- Specify asset strategy so `tsc` builds do not break runtime HTML/icons. +- Make BrowserWindow security defaults mandatory. +- Choose placeholder window close semantics. +- Choose menu placeholder states. +- Specify exact desktop scripts. +- Add macOS tray/Dock behavior. + +## Oracle feedback disposition + +- Fixed: Added explicit Electron lifecycle rules. +- Fixed: Added `app.requestSingleInstanceLock()` requirement. +- Fixed: Chose data URLs/generated icon strategy to avoid asset-copy issues in Phase 01. +- Fixed: Made BrowserWindow security defaults mandatory. +- Fixed: Chose destroy-on-close semantics for placeholder windows. +- Fixed: Chose `Default Pet: Built-in Pet`, disabled `Show Default Pet`, and in-memory pause-label toggle for Phase 01. +- Fixed: Added exact `dev` script shape: `pnpm build && electron .`. +- Fixed: Added macOS `app.dock.hide()` decision. + +## Oracle implementation review + +Oracle reviewed the implemented Phase 01 diff after successful validation with: + +```bash +pnpm check && pnpm typecheck && pnpm build && pnpm --filter @open-pets/desktop exec electron --version +``` + +Initial implementation review blocked manual verification until two issues were fixed: + +- Tray icon used an SVG data URL that may not be consistently supported by Electron tray icons. +- Placeholder `window.loadURL(...)` rejection was not handled explicitly. + +Implementation review disposition: + +- Fixed: Replaced SVG tray icon with generated raw bitmap data through `nativeImage.createFromBitmap(...)`. +- Fixed: Added `image.isEmpty()` logging for tray icon creation failures. +- Fixed: Added explicit `loadURL(...).catch(...)` logging. +- Fixed: Attached `ready-to-show` before `loadURL(...)`. +- Fixed: Added `render-process-gone` logging. +- Fixed: Hardened placeholder CSP with `base-uri 'none'`, `form-action 'none'`, and `frame-src 'none'`. +- Fixed: Updated README wording for `apps/desktop`. + +Oracle re-reviewed the fixes and approved Phase 01 for manual user verification. diff --git a/docs/phases/phase-02-default-pet-window.md b/docs/phases/phase-02-default-pet-window.md new file mode 100644 index 00000000..3e5ab48d --- /dev/null +++ b/docs/phases/phase-02-default-pet-window.md @@ -0,0 +1,420 @@ +# Phase 02: Default pet window foundation + +## Goal + +Show the bundled default pet as a real floating desktop companion window. + +This phase should prove the core visible OpenPets experience: a small pet appears, can be dragged, can be shown/hidden from the tray, can be paused/resumed, and remembers its position across app restarts. + +## Non-goals + +This phase does not implement: + +- Pet catalog browsing or installation. +- Multiple installed pets. +- Non-default temporary agent pets. +- MCP leases. +- Local IPC. +- Claude integration. +- Speech bubbles. +- Complex physics. +- Advanced desktop-edge/running behavior. +- Complex multi-monitor behavior beyond safe positioning. +- First-run onboarding. +- Production packaging. + +## User-visible/manual outcome + +After this phase, the user/developer should be able to run the desktop app and confirm: + +```text +The bundled default pet appears as a small floating window, can be dragged, can be hidden/shown from the tray, pause/resume visibly affects it, and its position persists across restarts. +``` + +## Acceptance criteria + +- Desktop app still launches tray-first. +- Bundled default pet appears automatically on app launch. +- Pet window is frameless. +- Pet window has transparent background where supported by the platform. +- Pet window is always-on-top by default. +- Pet window does not steal focus from the active editor/terminal where supported. +- Pet window is draggable by the user. +- Pet window remembers its last position across app restarts. +- Initial default position is near the bottom-right of the primary display work area. +- Initial position is clamped to the visible work area. +- Stored position is clamped if it is no longer visible/safe. +- `Show Default Pet` / `Hide Default Pet` tray item works for the persistent default pet. +- `Pause All Pets` / `Resume All Pets` visibly affects the pet. +- Closing placeholder task windows does not close the pet or quit the app. +- Quitting OpenPets closes the pet window cleanly. +- Phase 01 placeholder windows and tray behavior continue to work. +- Known platform limitations are documented after manual testing. +- Hidden state is session-only in Phase 02: every fresh app launch shows the default pet. +- Display changes while running re-clamp the pet to a visible work area. + +## Proposed files/directories + +Likely update: + +```text +apps/desktop/package.json +apps/desktop/src/main.ts +apps/desktop/src/tray.ts +apps/desktop/src/state.ts +apps/desktop/src/windows.ts +README.md +``` + +Likely add: + +```text +apps/desktop/src/pet-window.ts +apps/desktop/src/pet-state.ts +apps/desktop/src/default-pet-controller.ts +apps/desktop/src/display.ts +``` + +Exact file names can change if a simpler structure is better. + +## Technical approach + +Keep this phase intentionally simple and stable. + +### Pet rendering + +Use a minimal bundled default pet renderer for Phase 02. + +Recommended approach: + +- Render a small hardcoded pet placeholder using inline generated HTML/CSS/SVG or canvas from TypeScript. +- Avoid adding a real spritesheet animation system until the pet format/catalog phases unless it is simpler to reuse a safe bundled asset. +- The pet should visibly look like a pet/companion, not a blank test square. +- Pause/resume should visibly change the pet state, for example normal idle animation vs still/dimmed/paused label. +- Do not put required runtime pet assets under `src/` unless an explicit copy strategy is added. +- Prefer inline generated content for Phase 02 so plain `tsc` builds remain sufficient. + +This phase is about window behavior, not final pet art or animation fidelity. + +### Pet window behavior + +Use a dedicated `BrowserWindow` for the default pet. + +Use fixed Phase 02 window bounds: + +```text +width: 180 DIP +height: 180 DIP +margin from work area: 24 DIP +``` + +The window should be tight around the visible pet to avoid a large transparent click-blocking overlay. + +Recommended BrowserWindow properties: + +- `frame: false` +- `transparent: true` +- `resizable: false` +- `skipTaskbar: true` +- `alwaysOnTop: true` +- secure `webPreferences` similar to Phase 01 placeholders + +Use conservative always-on-top behavior. Do not use aggressive screen-saver/topmost hacks in Phase 02. + +Focus behavior: + +- When showing the pet automatically or from tray, use `showInactive()` where practical so the pet does not steal focus from the active editor/terminal. +- Clicking or dragging the pet may focus the pet window on some platforms; this is best-effort and should be documented after manual testing. +- Do not use fragile native hacks in Phase 02. +- If perfect no-focus behavior is not possible on a platform, document it as a known limitation. + +Dragging: + +- The user should be able to drag the pet window. +- Preferred implementation: CSS `-webkit-app-region: drag` for the pet surface so no IPC/preload is needed. +- If CSS app-region cannot satisfy the behavior, use a narrow preload bridge only for drag movement. +- Do not introduce broad renderer privileges for dragging. + +Pause/resume renderer updates: + +- Preferred implementation: reload/regenerate the local pet HTML with the paused state. +- Alternative: use a narrow preload bridge only if needed. +- Do not use a broad `executeJavaScript` control channel. + +### Default pet ownership model + +Add a small default-pet controller/module to own default pet lifecycle. + +The tray should not directly manage pet window internals. + +Recommended controller API shape: + +```ts +showDefaultPet(): void +hideDefaultPet(): void +isDefaultPetVisible(): boolean +setDefaultPetPaused(paused: boolean): void +destroyDefaultPet(): void +``` + +Responsibilities: + +- Create the pet window on app launch. +- Show/hide default pet. +- Track visible state for the current app session. +- Apply paused state to the renderer. +- Persist and restore position. +- Destroy the pet window on app quit. + +Hidden state rule: + +- `Hide Default Pet` hides the window but does not destroy it. +- Hidden state is session-only in Phase 02. +- On fresh app launch, the default pet appears automatically again. +- Position persists; hidden/visible preference does not persist yet. + +### Persistence + +Persist only the minimum state needed for Phase 02: + +- Default pet position. +- Paused state may remain in-memory for this phase unless persistence is trivial. + +Use Electron `app.getPath("userData")` for local app state. + +Recommended state file: + +```text +/openpets-state.json +``` + +State writes should be simple and safe: + +- JSON file. +- Atomic write where practical: write temp file then rename. +- Validate/read defensively. +- Ignore corrupted state with a dev log and fall back to defaults. + +### Safe positioning + +Use the primary display work area for Phase 02. + +Rules: + +- Position values use Electron DIP coordinates. +- Store integer `x` and `y` values for the full pet window bounds. +- Initial position: bottom-right of primary display work area with 24 DIP margin. +- Stored position: clamp to visible work area on launch. +- Clamp the full 180x180 DIP window so it remains fully visible. +- Do not attempt advanced multi-monitor restoration yet. +- If displays change, keep the pet visible rather than preserving exact off-screen coordinates. +- Listen for display changes where practical and re-clamp the default pet to the primary work area. + +### Tray integration + +Update the Phase 01 tray item: + +- If default pet visible: show `Hide Default Pet`. +- If default pet hidden: show `Show Default Pet`. +- Clicking toggles the default pet window. +- `Pause All Pets` / `Resume All Pets` updates the pet visual state. + +Default pet lifetime: + +- Default pet is persistent. +- It is not closed due to agent lifecycle in future phases. +- In this phase, hiding does not destroy the pet window. +- The pet window is destroyed only when OpenPets quits. + +## Risks and tradeoffs + +### Risk: no-focus behavior differs by platform + +Electron focus behavior varies by macOS/Windows/Linux. + +Mitigation: + +- Use documented Electron APIs only. +- Prefer stable behavior over hacks. +- Document platform limitations after manual testing. + +### Risk: transparent windows behave differently by platform + +Transparent frameless windows can vary on Linux/window managers. + +Mitigation: + +- Implement best-effort Electron transparent window behavior. +- Keep fallback acceptable: pet remains visible even if transparency is imperfect. +- Document limitations. + +### Risk: dragging requires IPC/preload before local IPC phase + +Dragging may require communication between renderer and main process, but Phase 05 local IPC is a separate adapter/app control plane. + +Mitigation: + +- If needed, use a very narrow Electron preload bridge only for pet window dragging. +- Do not implement external/local OpenPets IPC in this phase. +- Keep the bridge private to the pet renderer. + +### Risk: state file corruption + +Simple JSON state can be corrupted by interrupted writes or manual edits. + +Mitigation: + +- Read defensively. +- Validate shape. +- Atomic write where practical. +- Fall back to defaults without crashing. + +### Risk: scope creep into pet engine + +It is tempting to build the final sprite/animation system now. + +Mitigation: + +- Keep rendering minimal. +- Build only enough to verify floating pet behavior. +- Defer final manifest/spritesheet rendering to catalog/pet-format phases. + +### Risk: pet window blocks clicks over transparent areas + +Transparent BrowserWindows still have rectangular bounds and may intercept clicks. + +Mitigation: + +- Keep the Phase 02 pet window small and tight around the pet. +- Do not create a large transparent overlay. +- Defer click-through/advanced hit-testing behavior unless it becomes necessary. + +## Security/privacy notes + +This phase should not touch coding-agent configs, Claude settings, MCP, local adapter IPC, network, or pet zip extraction. + +Security/privacy expectations: + +- No telemetry. +- No network calls. +- No remote content loaded in pet window. +- No config file edits outside OpenPets own userData state file. +- No shell command execution. +- Pet renderer uses hardcoded local content only. +- Pet renderer includes a restrictive CSP. +- Pet renderer denies navigation, redirects, and new windows. +- Pet renderer logs load failures and renderer crashes clearly during development. +- BrowserWindow security defaults are mandatory: + - `nodeIntegration: false` + - `contextIsolation: true` + - `sandbox: true` where compatible with required drag behavior + - no remote content + - deny navigation/new windows + +If a preload bridge is needed for dragging, it must expose only minimal drag APIs and no general Node/Electron access. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +Manual app run command: + +```bash +pnpm --filter @open-pets/desktop dev +``` + +Expected automated result: + +- TypeScript checks pass. +- Desktop app build passes. +- Existing workspace package checks continue to pass. + +## Manual verification guide + +After implementation, the user should verify: + +1. Start the desktop app: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. Confirm no dashboard/main window opens automatically. +3. Confirm tray icon/menu still appears. +4. Confirm the default pet appears automatically. +5. Confirm the pet is a small frameless floating window. +6. Confirm the pet stays above normal windows where supported. +7. Confirm clicking/dragging the pet does not unexpectedly steal focus from the active app where supported. +8. Drag the pet to a new position. +9. Quit OpenPets from the tray. +10. Restart OpenPets and confirm the pet position persists. +11. Use tray `Hide Default Pet` and confirm the pet hides without quitting the app. +12. Use tray `Show Default Pet` and confirm the same default pet returns. +13. Hide the pet, quit OpenPets, restart OpenPets, and confirm the pet appears again because hidden state is not persisted in Phase 02. +14. Toggle `Pause All Pets` and confirm the pet visibly changes to paused/quiet state. +15. Toggle `Resume All Pets` and confirm the pet returns to normal state. +16. Open/close placeholder Pet Manager, Configure Agents, and Settings windows and confirm the pet remains alive. +17. If practical, move/change displays and confirm the pet remains visible or is re-clamped on restart. +18. Quit OpenPets and confirm all windows close cleanly. + +Manual acceptance question: + +```text +Does Phase 02 pass on your machine: default pet appears, can be dragged, persists position, show/hide works, pause/resume is visible, and quit is clean? +``` + +## Oracle plan review + +Oracle reviewed the initial Phase 02 spec and blocked implementation until lifecycle, visibility, asset, focus/drag, controller, and security details were tightened. + +Summary of required Oracle feedback: + +- Clarify default pet launch visibility and hidden-state persistence. +- Clarify hide vs destroy behavior. +- Add a default-pet controller ownership model instead of tray owning lifecycle. +- Replace required `src/assets/default-pet.svg` asset idea with inline generated content or explicit copy strategy. +- Define fixed window size and clamping rules. +- Define focus behavior precisely, especially `showInactive()` and click/drag limitations. +- Choose drag strategy order. +- Define pause/resume renderer update mechanism. +- Add pet-window security hardening details. +- Add manual verification for hidden/restart and display re-clamping behavior. + +## Oracle feedback disposition + +- Fixed: Default pet appears on every fresh launch; hidden state is session-only in Phase 02. +- Fixed: `Hide Default Pet` hides but does not destroy the pet window; destroy happens on app quit. +- Fixed: Added default-pet controller ownership model and API shape. +- Fixed: Replaced runtime asset recommendation with inline generated pet HTML/CSS/SVG/canvas. +- Fixed: Added fixed 180x180 DIP window size, 24 DIP margin, integer DIP coordinates, and full-window clamping rules. +- Fixed: Clarified `showInactive()` focus behavior and click/drag best-effort limitations. +- Fixed: Chose CSS `-webkit-app-region: drag` first; narrow preload bridge only if necessary. +- Fixed: Chose reload/regenerate local pet HTML for pause/resume first; narrow preload only if necessary. +- Fixed: Added CSP/navigation/new-window/load-failure/render-crash security requirements for pet renderer. +- Fixed: Added manual verification for hidden/restart behavior and display re-clamping. + +## Oracle implementation review + +Oracle reviewed the implemented Phase 02 diff after successful validation with: + +```bash +pnpm check && pnpm typecheck && pnpm build +``` + +Initial implementation review blocked manual verification until two issues were fixed: + +- The initial tray menu label could be stale because the tray was created before the default pet was shown. +- A pending debounced position save could read from a destroyed pet window if the user dragged and quit quickly. + +Implementation review disposition: + +- Fixed: Exported `refreshTrayMenu()` and called it after `showDefaultPet()` on startup so the tray label reflects the visible pet. +- Fixed: Guarded the debounced position save with `window.isDestroyed()` before reading window position. + +Oracle re-reviewed the fixes and approved Phase 02 for manual user verification. diff --git a/docs/phases/phase-03-local-state-pet-manager-basics.md b/docs/phases/phase-03-local-state-pet-manager-basics.md new file mode 100644 index 00000000..a7811054 --- /dev/null +++ b/docs/phases/phase-03-local-state-pet-manager-basics.md @@ -0,0 +1,481 @@ +# Phase 03: Local state and Pet Manager basics + +## Goal + +Turn the current desktop shell into a minimally real local-first app by formalizing app state and making Pet Manager / Settings show and update the built-in default pet behavior. + +This phase should prove that OpenPets owns local preferences and installed-pet state before remote catalog installation, MCP, or Claude integration are added. + +## Non-goals + +This phase does not implement: + +- Remote v2 pet catalog fetching. +- Downloading or installing pet zip files. +- Removing downloaded pets. +- Multiple real pet assets beyond the bundled built-in pet. +- Full pet manifest/spritesheet engine. +- Agent setup detection/configuration. +- Local adapter IPC. +- MCP integration. +- Claude hooks. +- Speech bubbles. +- First-run onboarding. +- Production packaging. + +## User-visible/manual outcome + +After this phase, the user/developer should be able to run the app and confirm: + +```text +Pet Manager shows the bundled built-in pet as installed/default/protected, Settings controls core local preferences, and those preferences persist across restarts. +``` + +## Acceptance criteria + +- Existing tray shell and default pet window behavior continue to work. +- App state has a clear versioned schema. +- State is loaded after `app.whenReady()` and not at module import time. +- State remains local-only under Electron `app.getPath("userData")`. +- State reads are defensive and corrupted/invalid state falls back safely. +- State writes are atomic where practical. +- `app-state.ts` is the only owner/writer of `openpets-state.json`. +- Phase 02 `pet-state.ts` is retired or delegates to `app-state.ts` so pet position writes cannot clobber preferences/pets. +- Existing unversioned Phase 02 state is migrated to V1 while preserving default pet position. +- Built-in pet exists in app state as an installed/protected pet. +- Built-in pet cannot be removed. +- Built-in pet is the default pet unless the state says otherwise. +- Pet Manager is upgraded from placeholder to a minimal real local view. +- Pet Manager shows installed pets, including the built-in pet. +- Pet Manager shows badges/states for `Built-in`, `Installed`, `Default`, and `Protected` where applicable. +- Pet Manager shows that built-in pet removal is unavailable/disabled. +- Pet Manager can set an installed pet as default; in Phase 03 this may be a no-op if only the built-in pet exists, but the UI/state path should be real. +- Settings is upgraded from placeholder to a minimal real preferences view. +- Settings can control `open default pet on app launch`. +- Settings can control `speech bubbles enabled`, even though speech bubbles are not implemented yet. +- `petScale` may exist as inert schema state with default `1`, but visible pet scale controls are deferred to a later phase. +- Settings can reset the default pet position. +- Preferences persist across app restarts. +- If `open default pet on app launch` is disabled, app starts tray-first without showing the default pet. +- `Show Default Pet` can still show the default pet manually when launch-open is disabled. +- If `open default pet on app launch` is re-enabled, the pet appears on future launches. +- Phase 02 hidden-state rule remains: hiding from tray is session-only and is not the same as disabling open-on-launch. +- Automated checks pass. + +## Proposed files/directories + +Likely update: + +```text +apps/desktop/src/main.ts +apps/desktop/src/tray.ts +apps/desktop/src/windows.ts +apps/desktop/src/default-pet-controller.ts +apps/desktop/src/pet-state.ts +apps/desktop/src/pet-window.ts +README.md +``` + +Likely add: + +```text +apps/desktop/src/app-state.ts +apps/desktop/src/built-in-pet.ts +apps/desktop/src/settings-controller.ts +apps/desktop/src/pet-manager-controller.ts +apps/desktop/src/renderer-html.ts +apps/desktop/src/preload.ts # only if needed for safe internal Electron UI actions +``` + +Exact file names can change if a simpler structure is better. + +## Technical approach + +Keep Phase 03 local and minimal. This is not the catalog phase and not a full UI framework phase. + +### App state model + +Formalize a versioned local app state file. + +Recommended state path: + +```text +/openpets-state.json +``` + +Recommended state shape: + +```ts +interface OpenPetsStateV1 { + version: 1; + preferences: { + defaultPetId: string; + openDefaultPetOnLaunch: boolean; + speechBubblesEnabled: boolean; + petScale: number; + }; + pets: { + installed: Array<{ + id: string; + displayName: string; + builtIn: boolean; + protected: boolean; + }>; + }; + defaultPet: { + position?: { + x: number; + y: number; + }; + }; +} +``` + +Default state: + +- `defaultPetId`: built-in pet id. +- `openDefaultPetOnLaunch`: `true`. +- `speechBubblesEnabled`: `true`. +- `petScale`: `1`. +- Installed pets contains the built-in pet. + +State rules: + +- Built-in pet is always present, even if an old/corrupt state omits it. +- Default pet falls back to built-in pet if missing/invalid. +- Canonical built-in pet metadata wins over state file metadata. +- Protected/built-in flags cannot be disabled by a user-edited/corrupt state file. +- `petScale` remains `1` in Phase 03 unless later implemented. +- Position should continue to use safe Phase 02 clamping rules. +- State-derived strings must be treated as untrusted and escaped before rendering. + +### State ownership + +Move Phase 02 position persistence into the broader app state module as a required part of this phase. + +Avoid split-brain state where different modules write unrelated JSON shapes to the same file. + +Recommended ownership: + +- `app-state.ts` owns reading/writing `openpets-state.json`. +- Controllers request state updates through narrow functions. +- State is loaded only after `app.whenReady()`. +- No app state reads happen at module import time. +- `pet-state.ts` should be removed or changed to delegate to `app-state.ts`. +- No module other than `app-state.ts` writes directly to `openpets-state.json`. +- All state updates are read/modify/write against one in-memory normalized state object. +- State updates should be serialized in-process to avoid debounced pet-position saves clobbering Settings updates. + +Recommended `app-state.ts` API shape: + +```ts +initializeAppState(): void +getAppStateSnapshot(): OpenPetsStateV1 +updatePreferences(patch: Partial): OpenPetsStateV1 +setDefaultPet(defaultPetId: string): OpenPetsStateV1 +setDefaultPetPosition(position: { x: number; y: number }): OpenPetsStateV1 +resetDefaultPetPosition(): OpenPetsStateV1 +``` + +The API can differ if implementation finds a simpler shape, but the ownership rules must remain. + +Startup ordering: + +1. `app.whenReady()` resolves. +2. `app.setName("OpenPets")` runs. +3. App state is loaded/normalized through `initializeAppState()`. +4. Tray is created. +5. Display/lifecycle handlers are installed. +6. Default pet is shown only if `openDefaultPetOnLaunch` is true. +7. Tray menu is refreshed so labels match actual pet visibility. + +Migration rule: + +- Phase 02 already wrote unversioned state shaped like `{ defaultPet: { position } }`. +- Phase 03 must read that V0/unversioned shape and migrate it to V1. +- The migrated V1 state must preserve valid `defaultPet.position`. +- Unknown/corrupt state should not crash the app. + +### Built-in pet model + +Define one bundled built-in pet record in code. + +Recommended values: + +```ts +id: "builtin" +displayName: "Built-in Pet" +builtIn: true +protected: true +``` + +This is a local app-state pet record, not the final downloadable pet manifest contract. + +### Pet Manager basics + +Upgrade the Pet Manager placeholder into a minimal real local view. + +Recommended UI content: + +- Title: `Pet Manager`. +- Installed pets section. +- Built-in pet card/row. +- Badges: `Built-in`, `Installed`, `Default`, `Protected`. +- Disabled remove action for built-in pet. +- `Set Default` action for installed pets that are not default. +- Empty/loading/catalog messaging should clearly say catalog browsing arrives in a later phase. + +Phase 03 does not need a polished catalog grid. It only needs to prove local installed/default state. + +### Settings basics + +Upgrade the Settings placeholder into a minimal real preferences view. + +Initial settings: + +- `Open default pet on app launch` toggle. +- `Speech bubbles enabled` toggle. +- `Pet scale` visible disabled/deferred row or omitted from UI; do not implement scaling controls in Phase 03. +- `Reset default pet position` button. + +Settings behavior: + +- Changes persist to local state. +- Toggling `Open default pet on app launch` affects next app launch, not necessarily the current pet visibility. +- Reset position should move the visible default pet back to bottom-right immediately if visible and update persisted state. +- If the pet is hidden, reset position updates persisted state; the next show/restart uses the reset position. +- If the pet window has not been created because `openDefaultPetOnLaunch` is disabled, reset position updates persisted state only. +- Speech setting persists but has no visible speech behavior yet. + +### Internal renderer interaction + +If Pet Manager/Settings need clickable controls, use safe internal Electron IPC/preload only for those task windows. + +Important distinction: + +- This is Electron renderer-to-main IPC for app UI. +- This is not the Phase 05 local adapter IPC protocol for MCP/CLI/Claude packages. + +Required preload/security behavior if used: + +- `contextIsolation: true`. +- `nodeIntegration: false`. +- `sandbox: true` where compatible. +- Preload exposes only narrow methods needed for Phase 03 UI actions. +- No generic filesystem, shell, or Electron object exposure. +- Validate all action names/payloads in main process. +- Validate sender `webContents` belongs to an allowed internal task window. + +Recommended preload/API contract: + +```ts +window.openPets.getState(): Promise +window.openPets.updatePreferences(patch: { + openDefaultPetOnLaunch?: boolean; + speechBubblesEnabled?: boolean; +}): Promise +window.openPets.setDefaultPet(petId: string): Promise +window.openPets.resetDefaultPetPosition(): Promise +``` + +Rules: + +- Do not expose a generic `invoke(action, payload)` API. +- Do not expose filesystem/shell/Electron access. +- Validate booleans as booleans. +- Validate `petId` as a known installed pet id before setting default. +- Validate that reset-position requests come from Settings. +- Renderer should query latest state when opened/focused and after mutations. +- Avoid `webContents.executeJavaScript` as a state/control channel. + +If a simpler approach can keep views read-only and use tray/menu actions for state changes, that is acceptable only if acceptance criteria remain met. Since Settings needs toggles/buttons, a narrow preload bridge is likely appropriate. + +### Window/rendering approach + +Do not introduce React/Vue/Vite yet. + +Use generated local HTML for Pet Manager and Settings, similar to prior phases, unless implementation complexity becomes unreasonable. + +Renderer content should: + +- Be local/hardcoded. +- Include restrictive CSP. +- Deny navigation/new windows. +- Log load/render failures. +- Escape all state-derived strings before insertion into HTML. + +## Risks and tradeoffs + +### Risk: state shape churn + +Early state schemas can become hard to migrate later. + +Mitigation: + +- Add `version: 1` now. +- Keep schema minimal. +- Validate defensively. +- Normalize state on read to ensure built-in/default invariants. + +### Risk: overbuilding UI before real catalog + +Pet Manager could become a dashboard or fake catalog. + +Mitigation: + +- Only show installed local pets in Phase 03. +- Clearly label catalog browsing as a later phase. +- Do not add search/categories/catalog fetch yet. + +### Risk: internal IPC scope creep + +Adding preload/UI IPC could become too broad. + +Mitigation: + +- Expose only Phase 03 actions. +- Validate payloads. +- Validate sender window/webContents. +- Do not expose filesystem/shell/Electron. +- Keep this separate from the future local adapter IPC. + +### Risk: position state regression + +Moving Phase 02 position persistence into app state could break drag/restart behavior. + +Mitigation: + +- Preserve Phase 02 manual verification. +- Keep position clamping and atomic writes. +- Re-run drag/restart verification. + +## Security/privacy notes + +This phase remains local-only. + +Security/privacy expectations: + +- No telemetry. +- No network calls. +- No remote content. +- No coding-agent config edits. +- No shell command execution. +- No pet zip extraction. +- App writes only its own local state file under `app.getPath("userData")`. +- Renderer IPC, if used, is narrow and validated. +- Built-in pet cannot be removed through UI or state corruption. +- State files are treated as untrusted input. +- State-derived renderer content is escaped. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +Manual app run command: + +```bash +pnpm --filter @open-pets/desktop dev +``` + +Expected automated result: + +- TypeScript checks pass. +- Desktop app build passes. +- Existing workspace package checks continue to pass. + +## Manual verification guide + +After implementation, the user should verify: + +1. Start the desktop app: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. Confirm tray and default pet still appear. +3. Open `Manage Pets...`. +4. Confirm the built-in pet is shown as installed/default/protected. +5. Confirm built-in pet cannot be removed. +6. Confirm setting built-in pet as default is disabled/no-op because it is already default. +7. Open `Settings...`. +8. Toggle `Speech bubbles enabled`, quit, restart, and confirm the setting persisted. +9. Toggle `Open default pet on app launch` off, quit, restart, and confirm the default pet does not appear automatically. +10. Use tray `Show Default Pet` and confirm the default pet can still be shown manually. +11. Toggle `Open default pet on app launch` back on, quit, restart, and confirm the default pet appears automatically again. +12. Drag the pet to a new position, quit, restart, and confirm position still persists. +13. Use `Reset default pet position` and confirm the pet moves back near bottom-right and persists there after restart. +14. If a Phase 02 unversioned state file exists, confirm position is preserved after Phase 03 migration. +15. If practical, temporarily corrupt `openpets-state.json`, restart, and confirm app falls back safely with built-in pet/default preferences. +16. Confirm placeholder/real task windows still do not quit the app when closed. +17. Quit OpenPets and confirm clean exit. + +Manual acceptance question: + +```text +Does Phase 03 pass on your machine: Pet Manager shows built-in pet state, Settings preferences persist, open-on-launch works, reset position works, and Phase 02 pet behavior still works? +``` + +## Oracle plan review + +Oracle reviewed the initial Phase 03 spec and blocked implementation until state ownership/migration and internal preload/IPC details were tightened. + +Summary of required Oracle feedback: + +- Make Phase 02 state migration mandatory. +- Retire or delegate `pet-state.ts` so there is one state-file writer. +- Add V0/unversioned state migration preserving position. +- Define startup ordering and open-on-launch gating. +- Define app-state API and whole-state write semantics. +- Define preload/API contract and validation rules. +- Require escaping state-derived renderer content. +- Require windows to render/query latest state after mutations. +- Defer visible pet scale controls. +- Define reset-position behavior for visible, hidden, and not-created pet states. +- Add manual verification for corrupted state and V0 migration. + +## Oracle feedback disposition + +- Fixed: Made Phase 02 position migration into `app-state.ts` mandatory. +- Fixed: Required `app-state.ts` to be the only owner/writer of `openpets-state.json`. +- Fixed: Added V0/unversioned migration preserving `defaultPet.position`. +- Fixed: Added startup ordering with `initializeAppState()` before tray/show-default-pet logic. +- Fixed: Added recommended app-state API and whole-state update semantics. +- Fixed: Added concrete preload/API contract and validation rules. +- Fixed: Required sender validation for internal renderer IPC. +- Fixed: Required escaping all state-derived renderer content. +- Fixed: Required renderer state refresh after mutations. +- Fixed: Deferred visible pet scale controls; `petScale` remains inert default state only. +- Fixed: Defined reset-position behavior for visible, hidden, and not-yet-created pet states. +- Fixed: Added manual verification for V0 migration and corrupt-state fallback. + +## Oracle implementation review + +Oracle reviewed the implemented Phase 03 diff after successful validation with: + +```bash +pnpm check && pnpm typecheck && pnpm build +``` + +Oracle found no blocking correctness, security, state migration, or scope issues and approved Phase 03 for manual user verification. + +Implementation review disposition: + +- Approved: Versioned app state and V0 migration preserve Phase 02 pet position. +- Approved: `pet-state.ts` was removed and `app-state.ts` owns `openpets-state.json`. +- Approved: Open-on-launch gating and reset-position behavior are implemented. +- Approved: Pet Manager and Settings use narrow internal Electron IPC with sender and payload validation. +- Approved: Generated UI uses DOM/text rendering for state-derived values instead of HTML injection. +- Fixed optional: Added `node --check preload.cjs` to the desktop `check` script so the plain JS preload gets syntax validation. + +Deferred optional improvements: + +- Back up corrupt JSON before overwriting with normalized defaults. +- Add pure tests for state normalization/migration once a test framework exists. +- Derive tray default-pet label from app state when multiple real pets exist. diff --git a/docs/phases/phase-04-v2-pet-catalog-installation.md b/docs/phases/phase-04-v2-pet-catalog-installation.md new file mode 100644 index 00000000..ca82749c --- /dev/null +++ b/docs/phases/phase-04-v2-pet-catalog-installation.md @@ -0,0 +1,411 @@ +# Phase 04: V2 pet catalog and installation + +Status: superseded by split phases after Oracle review. + +Oracle blocked this combined phase because the v2 catalog endpoint is not available yet and safe zip installation is security-critical enough to deserve its own focused phase. + +Split replacement: + +- `phase-04a-v2-catalog-read-only.md` — v2 catalog contract/generation/fetch validation and read-only searchable Pet Manager UI. +- `phase-04b-safe-pet-installation.md` — safe zip install/remove/default switching/local rendering. + +## Goal + +Make Pet Manager browse the remote v2 pet catalog and install/remove real downloaded pets locally, while keeping the built-in pet as protected fallback. + +This phase should prove the core pet ownership loop: + +```text +Fetch catalog → browse/search pets → install pet zip safely → show installed state → set default → remove removable pets +``` + +## Non-goals + +This phase does not implement: + +- Pet update system. +- Categories/tags/favorites/ratings/popularity UI. +- Advanced sorting. +- CLI install commands. +- MCP/local adapter IPC. +- Claude integration. +- Speech bubbles. +- First-run onboarding. +- Production packaging. +- Full animation/physics engine beyond rendering installed pet enough to verify default switching. + +## User-visible/manual outcome + +After this phase, the user/developer should be able to run the app and confirm: + +```text +Pet Manager fetches the v2 catalog, shows available pets, installs a pet, lets the user set it as default, persists it across restart, and can remove removable installed pets. +``` + +If the catalog cannot be fetched, OpenPets should remain usable with the built-in pet and already-installed pets. + +## Acceptance criteria + +- Existing tray, default pet, Pet Manager, and Settings behavior continue to work. +- Pet Manager fetches catalog from: + + ```text + https://openpets.dev/pets/catalog.v2.json + ``` + +- Catalog fetch has loading and error states. +- Catalog fetch failure does not break built-in pet behavior. +- Catalog data is validated before use. +- Pet Manager shows catalog pets in a simple searchable list/grid. +- Pet Manager shows installed/default/protected states. +- User can install a catalog pet from its `zip` URL. +- Downloaded zip is validated before extraction/install. +- Zip install prevents zip-slip/path traversal. +- Zip install has size and file-count limits. +- Zip install never executes scripts from downloaded pets. +- Failed installs clean up partial files. +- Installed pets are stored locally under OpenPets user data. +- Installed pet metadata is persisted in app state. +- User can set an installed non-built-in pet as default. +- Default pet window reflects the selected default pet after setting default. +- Default pet selection persists across restart. +- User can remove removable installed pets. +- Built-in pet cannot be removed. +- Removing the current default pet falls back to the built-in pet. +- App remains usable if installed pet files are missing/corrupt; fallback to built-in pet. +- Automated checks pass. + +## Proposed files/directories + +Likely update: + +```text +apps/desktop/src/app-state.ts +apps/desktop/src/default-pet-controller.ts +apps/desktop/src/pet-window.ts +apps/desktop/src/windows.ts +apps/desktop/preload.cjs +README.md +packages/pet-format/src/index.ts +``` + +Likely add: + +```text +apps/desktop/src/catalog.ts +apps/desktop/src/pet-install.ts +apps/desktop/src/installed-pets.ts +apps/desktop/src/download.ts +apps/desktop/src/zip.ts +``` + +Exact file names can change if a simpler structure is better. + +## Technical approach + +Keep this phase focused on safe catalog/install basics, not marketplace polish. + +### Catalog contract + +Use the agreed v2 catalog URL: + +```text +https://openpets.dev/pets/catalog.v2.json +``` + +Expected minimal catalog shape: + +```ts +interface CatalogV2 { + version: 2; + generatedAt: string; + pets: CatalogPetV2[]; +} + +interface CatalogPetV2 { + id: string; + displayName: string; + description: string; + preview: string; + zip: string; + format: { + type: "spritesheet"; + columns: number; + rows: number; + frameWidth: number; + frameHeight: number; + }; +} +``` + +Validation rules: + +- `version` must be `2`. +- `pets` must be an array. +- `id`, `displayName`, `description`, `preview`, and `zip` must be strings. +- `id` must be a safe local identifier, for example `/^[a-z0-9][a-z0-9_-]{0,63}$/`. +- `zip` and `preview` must be `https:` URLs. +- `format.type` must be `spritesheet`. +- Format dimensions/counts must be positive finite integers within safe bounds. + +Use `packages/pet-format` for shared catalog/pet types and validation helpers if practical. + +### Catalog UI + +Pet Manager should show: + +- Search input. +- Installed pets and catalog pets in one simple view or clearly separated sections. +- Pet name. +- Short description. +- Preview image if safe/practical. +- Badges: `Built-in`, `Installed`, `Default`, `Protected`. +- Actions: `Install`, `Set Default`, `Remove`, disabled where not valid. +- Loading/error states. + +Do not add categories/tags/favorites/sorting beyond search. + +### Installed pet storage + +Store installed pets under app user data. + +Recommended directory: + +```text +/pets// +``` + +Installed pet state should include enough metadata to render/manage it later: + +```ts +interface InstalledPetState { + id: string; + displayName: string; + description?: string; + builtIn: boolean; + protected: boolean; + localPath?: string; + previewPath?: string; + format?: CatalogPetV2["format"]; + source?: { + catalogVersion: 2; + zip: string; + preview: string; + }; +} +``` + +The built-in pet remains a code-defined protected pet and does not need localPath. + +### Zip download/install safety + +This is the highest-risk part of Phase 04. + +Required behavior: + +- Download only `https:` zip URLs from validated catalog entries. +- Enforce max download size before/during download. +- Enforce max extracted file count. +- Enforce max individual file size and total extracted size where practical. +- Extract only into a temporary install directory first. +- Reject absolute paths. +- Reject paths containing `..` after normalization. +- Reject entries that would escape the temp install directory. +- Reject symlinks/hardlinks if zip library exposes them. +- Never execute files from downloaded pets. +- Validate required pet files/manifest before finalizing install. +- Move temp install directory into final `/pets/` atomically where practical. +- Clean temp directory on failure. + +Recommended limits for initial phase: + +```text +max zip download: 50 MB +max extracted total: 200 MB +max files: 500 +``` + +These can be adjusted by implementation if real catalog pets need different limits, but the final chosen limits must be documented. + +### Installed pet validation + +Initial installed pet validation can be minimal but real. + +Required: + +- Installation directory exists. +- At least one plausible sprite/preview file exists, or the catalog `preview` was cached successfully. +- Catalog format metadata is persisted. +- Pet id/displayName in state match the validated catalog entry. + +If the actual zip structure from current catalog is known to contain a manifest, validate that manifest too. Do not invent a complex new manifest requirement if current pets do not have it yet; record the discovered shape in this phase doc after implementation. + +### Default pet rendering after install + +Phase 04 does not need final spritesheet animation quality. + +But when a user sets an installed pet as default, the default pet window should visibly reflect that choice. + +Acceptable Phase 04 rendering: + +- Built-in pet keeps current generated pet rendering. +- Installed pet default can show cached preview/spritesheet image in the pet window, scaled into the 180x180 pet window. +- If preview/spritesheet fails, fallback to built-in generated pet and show installed/default state in Pet Manager. + +Do not build the full animation-state engine yet unless it is simpler than a static preview. + +### App state updates + +Extend V1 state conservatively or introduce V2 state if necessary. + +Rules: + +- Built-in pet must always be present and protected. +- Installed pet records are normalized on read. +- Default pet id must point to an installed pet or fallback to built-in. +- Removing current default sets default to built-in. +- State writes remain owned by `app-state.ts`. + +### Internal UI IPC/preload + +Extend the existing narrow internal UI API only as needed. + +Candidate methods: + +```ts +getCatalog(): Promise +installPet(petId: string): Promise +removePet(petId: string): Promise +setDefaultPet(petId: string): Promise +``` + +Rules: + +- No generic `invoke(action, payload)`. +- Validate sender window. +- Validate pet id. +- Do not expose filesystem/shell/Electron. +- Render state-derived/catalog-derived strings through DOM text APIs or HTML escaping. + +## Risks and tradeoffs + +### Risk: Phase 04 is too large + +Catalog browsing, downloading, zip validation, install, remove, default switching, and rendering can become large. + +Mitigation: + +- Keep UI minimal. +- Do not add categories/tags/favorites/update system. +- If zip/install complexity becomes larger than expected, split Phase 04 into: + 1. Catalog browse/read-only. + 2. Safe install/remove/default. + +### Risk: zip extraction security bugs + +Zip-slip/path traversal is a real risk. + +Mitigation: + +- Treat all zip entries as untrusted. +- Normalize and verify every output path. +- Extract to temp directory. +- Clean up on failure. +- Oracle implementation review should focus heavily on install safety. + +### Risk: unknown current pet zip structure + +Current web/catalog pets may not match a clean v2 manifest structure yet. + +Mitigation: + +- Scout current `web/public/pets` metadata and one real zip before implementation. +- Do not blindly copy v1 assumptions. +- Keep validation compatible with real available pets while still safe. +- Record discovered zip shape in this phase doc after implementation. + +### Risk: remote images/content in Electron UI + +Loading remote preview URLs directly in Electron windows can expand attack surface. + +Mitigation: + +- Prefer fetching/caching previews through main process or use safe image-only rendering. +- Do not load arbitrary remote HTML. +- Keep CSP restrictive. +- Validate preview URL as `https:`. + +## Security/privacy notes + +This phase introduces network and untrusted zip handling. + +Security/privacy expectations: + +- Only fetch the catalog URL and validated `https:` pet assets/zips. +- No telemetry. +- No cookies/auth/accounts. +- No remote HTML content. +- No script execution from downloaded pets. +- No shell command execution. +- All downloaded zip contents are treated as untrusted. +- All catalog/download strings rendered in UI are escaped or inserted as text. +- Pet install writes only under OpenPets user data paths. +- Fail closed on validation errors. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +Manual app run command: + +```bash +pnpm --filter @open-pets/desktop dev +``` + +Implementation should add unit-style tests for pure validation/path-safety helpers if a lightweight test approach is practical in this phase. If no test framework is added, document why and rely on manual verification plus Oracle review. + +## Manual verification guide + +After implementation, the user should verify: + +1. Start the desktop app: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. Open `Manage Pets...`. +3. Confirm built-in pet still appears as installed/default/protected. +4. Confirm catalog loading state appears, then catalog pets appear. +5. Search for a pet by name and confirm filtering works. +6. Install one real catalog pet. +7. Confirm it appears as installed. +8. Set the installed pet as default. +9. Confirm the default pet window visibly changes or shows that pet's preview. +10. Quit and restart; confirm installed pet and default selection persist. +11. Remove the installed pet. +12. Confirm default falls back to built-in if removed pet was default. +13. Confirm built-in pet still cannot be removed. +14. Temporarily disconnect network or block catalog fetch and confirm the app remains usable with installed/built-in pets. +15. Confirm Settings and Phase 03 preferences still work. +16. Quit OpenPets and confirm clean exit. + +Manual acceptance question: + +```text +Does Phase 04 pass on your machine: catalog loads, search works, a pet installs safely, default switching persists, removal works, and built-in fallback remains reliable? +``` + +## Oracle plan review + +Pending. + +## Oracle feedback disposition + +Pending. diff --git a/docs/phases/phase-04a-v2-catalog-read-only.md b/docs/phases/phase-04a-v2-catalog-read-only.md new file mode 100644 index 00000000..faf4c06d --- /dev/null +++ b/docs/phases/phase-04a-v2-catalog-read-only.md @@ -0,0 +1,336 @@ +# Phase 04A: V2 catalog contract and read-only Pet Manager catalog + +## Goal + +Establish the v2 pet catalog contract and make Pet Manager fetch, validate, cache, search, and display the catalog in read-only mode. + +This phase does **not** install pets yet. It prepares the catalog foundation safely before the security-critical zip install phase. + +## Non-goals + +- Downloading/installing pet zips. +- Removing downloaded pets. +- Setting downloaded pets as default. +- Rendering downloaded pet sprites in the default pet window. +- CLI/MCP/Claude/onboarding/packaging. +- Categories/tags/favorites/ratings/popularity UI. + +## User-visible/manual outcome + +After this phase: + +```text +Pet Manager shows the built-in installed pet and a searchable read-only catalog of available pets from the v2 catalog contract. +``` + +If catalog fetch fails, Pet Manager still works for installed/built-in pets and shows a clear catalog error. + +## Blocking context from Oracle + +Oracle found that the target URL is currently not available: + +```text +https://openpets.dev/pets/catalog.v2.json +``` + +Phase 04A must therefore include making a real v2 catalog artifact available in the repository/deploy path, or explicitly add a temporary development fallback while the production endpoint is being deployed. + +Updated decision for Phase 04A: + +- Also create the real web artifact at `web/public/pets/catalog.v2.json` now that updating `web/` is explicitly approved. +- Update `web/scripts/sync-pets.js` so future `sync:pets` runs regenerate `catalog.v2.json`. +- Create a tracked v2-shaped development fixture under the tracked v2 workspace. +- Desktop app attempts the final production URL first. +- If production URL is unavailable, desktop app falls back only to the tracked v2-shaped fixture. +- Production deployment of `web/public/pets/catalog.v2.json` can be tested after the web app is redeployed. +- Because `web/` is root-ignored, any required web files must be force-added intentionally when committing from the root repo. + +## Acceptance criteria + +- Existing tray/default pet/Pet Manager/Settings behavior continues to work. +- A v2 catalog contract is defined in code with validation helpers. +- The v2 catalog artifact shape is based on real current pet metadata, not invented fields. +- A deterministic tracked v2 catalog fixture exists for local development and manual verification. +- The real web v2 catalog artifact exists at `web/public/pets/catalog.v2.json`. +- `web/scripts/sync-pets.js` regenerates the v2 catalog artifact. +- The tracked fixture is v2-shaped; no silent v1 `install.json` fallback is allowed. +- Web changes are intentionally included despite `web/` being root-ignored. +- Desktop catalog fetch validates data before use. +- Catalog fetch has loading, success, and error states. +- Catalog fetch failure does not break built-in pet behavior. +- Pet Manager shows installed local pets plus read-only catalog entries. +- Pet Manager search filters catalog pets by display name/description/id. +- Catalog entries show `Install coming in Phase 04B` or disabled install actions. +- Pet Manager does not fetch remote HTML. +- Remote preview rendering is safe or deferred. If preview rendering is included, images are fetched/validated by main process or constrained to safe image-only rendering. +- Automated checks pass. + +## Catalog contract + +The Phase 04A canonical v2 catalog shape is: + +```ts +interface CatalogV2 { + version: 2; + generatedAt: string; + pets: CatalogPetV2[]; +} + +interface CatalogPetV2 { + id: string; + displayName: string; + description: string; + preview: string; + zip: string; +} +``` + +Do not require spritesheet `format` fields in Phase 04A unless the catalog generator can derive them from real current pet data. + +Validation rules: + +- `version` is `2`. +- `generatedAt` is a string. +- `pets` is an array. +- `id` matches `/^[a-z0-9][a-z0-9_-]{0,63}$/`. +- `id` must not be `builtin`; `builtin` is reserved for the protected bundled pet. +- Duplicate ids are rejected. +- `displayName`, `description`, `preview`, and `zip` are strings. +- `preview` and `zip` are `https:` URLs. +- Allowed hostnames are explicit and documented. Initial expected hosts: + - `openpets.dev` + - `zip.openpets.dev` +- Maximum pets: 1000. +- Maximum `id` length: 64. +- Maximum `displayName` length: 120. +- Maximum `description` length: 500. +- Maximum URL length: 2048. +- `generatedAt` must parse as a valid date. +- URL credentials are rejected. +- URLs with non-default ports are rejected. +- Catalog URL is exactly `https://openpets.dev/pets/catalog.v2.json`. +- `preview` URLs must use host `openpets.dev` and path under `/pets/`. +- `zip` URLs must use host `zip.openpets.dev` and path under `/pets/`, even though zips are not downloaded in Phase 04A. + +Mapping from current web metadata to v2: + +- v2 `id` = existing `installId`. +- v2 `displayName` = existing `displayName`. +- v2 `description` = existing `description` if present, otherwise `""`. +- v2 `preview` = absolute `https://openpets.dev` URL from existing `spritesheetPath`. +- v2 `zip` = absolute zip URL from existing `zipPath`. + +`builtin` is reserved and rejected as a catalog pet id. + +## Current metadata source + +Existing useful web files: + +```text +web/public/pets/manifest.json +web/public/pets/install.json +web/app/lib/pets.generated.js +web/scripts/sync-pets.js +``` + +Phase 04A should scout these before implementation and create both: + +- a real web v2 catalog artifact from current web metadata; +- a tracked local v2 fixture for desktop fallback. + +Tracked development fixture: + +```text +apps/desktop/catalog.v2.fixture.json +``` + +Production artifact: + +```text +web/public/pets/catalog.v2.json +``` + +Because `web/` is currently ignored by root `.gitignore` and outside the v2 pnpm workspace, web changes must be added intentionally with force-add from the root repo if committing them there. + +## Desktop catalog service + +Add a small catalog service in the desktop app or `packages/pet-format`: + +- Fetch catalog from the target URL. +- Validate response shape. +- Normalize to a UI-safe catalog model. +- Add and track the v2 fixture at `apps/desktop/catalog.v2.fixture.json` during implementation. +- On fetch failure, load the tracked v2 fixture as a development fallback. +- Defer cache file behavior to a later phase unless implementation discovers it is trivial and safe. +- Do not store catalog cache in `openpets-state.json` in Phase 04A. +- Return UI state that clearly distinguishes live catalog, fixture fallback, cached catalog, and error. + +Do not cache unvalidated catalog data. + +Phase 04A catalog source precedence: + +1. Remote live catalog from `https://openpets.dev/pets/catalog.v2.json`. +2. If remote fetch/validation fails, validated tracked fixture at `apps/desktop/catalog.v2.fixture.json`. +3. If fixture validation also fails, show catalog error while keeping installed/built-in pets usable. + +Do not use v1 `install.json` or `manifest.json` as runtime fallback in the desktop app. + +Fetch requirements: + +- Main process only. +- Timeout required. +- Maximum response bytes required. +- Redirect policy required; final URL must still pass protocol/host/port/credential validation. +- Allowed hosts only. +- No cookies/auth. + +## Pet Manager read-only UI + +Pet Manager should show: + +- Installed pets section, including built-in protected pet. +- Catalog section. +- Search input. +- Catalog loading state. +- Catalog error state. +- Catalog empty state. +- Disabled `Install` button/label for catalog pets: `Install in next phase`. + +Preview policy for Phase 04A: + +- Defer preview image rendering by default. +- Show text-only catalog cards/rows first. +- If preview rendering is added, it must be main-process fetched/validated/cached and rendered as `data:` with `img-src data:` CSP. +- Renderer must not directly fetch arbitrary remote previews. + +Do not implement install/remove/default switching for remote catalog pets in Phase 04A. + +## Security/privacy notes + +This phase introduces catalog network fetch but not zip extraction. + +Security expectations: + +- Fetch only the catalog URL and optionally validated preview images. +- No cookies/auth/accounts. +- No telemetry. +- No remote HTML. +- No zip downloads yet. +- Catalog strings are untrusted and rendered with DOM text APIs or escaped. +- URL host/protocol validation is mandatory. +- Fail closed on invalid catalog data. +- Catalog fetch happens in the main process only. +- Renderer receives sanitized catalog UI models only. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +Phase 04A must add a lightweight validation check that runs under `pnpm check`. + +At minimum, the check should validate: + +- The tracked fixture is valid v2 catalog data. +- Invalid ids are rejected. +- Duplicate ids are rejected. +- Non-https URLs are rejected. +- Disallowed hosts are rejected. +- `builtin` id is rejected. + +## Manual verification guide + +1. Run: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. Open `Manage Pets...`. +3. Confirm built-in pet still appears as installed/default/protected. +4. Confirm catalog loading state appears. +5. Confirm catalog pets appear if the catalog source is reachable. +6. Search by pet name and confirm filtering works. +7. Confirm catalog pet install buttons/actions are disabled/read-only for Phase 04A. +8. Simulate catalog failure if practical and confirm built-in/installed pets still work with a clear error. +9. Confirm Settings and default pet behavior from Phase 03 still work. + +Manual acceptance question: + +```text +Does Phase 04A pass on your machine: Pet Manager shows a validated searchable read-only catalog, handles catalog failure, and preserves built-in/default pet behavior? +``` + +## Oracle plan review + +Oracle reviewed the split Phase 04A spec and agreed the split resolves the zip/install security overreach, but blocked implementation until the catalog source/artifact story was concrete. + +Summary of required Oracle feedback: + +- Choose a concrete v2 catalog artifact/development source because the production endpoint currently returns 404. +- Define v2 `id` mapping from current metadata. +- Make the Phase 04A catalog schema canonical, not “ideal.” +- Use only v2-shaped fallback catalogs; no silent v1 fallback. +- Add validation bounds and exact host/protocol rules. +- Ensure catalog fetch is main-process-only with timeout/byte limits/redirect/final URL validation. +- Decide preview policy; recommended text-only/defer previews. +- Use a separate validated catalog cache file, not `openpets-state.json`. +- Make catalog validation checks mandatory under `pnpm check`. +- Do not rely on ignored untracked `web/` files. + +## Oracle feedback disposition + +- Fixed: Chose a tracked development fixture at `apps/desktop/catalog.v2.fixture.json`. +- Fixed: Desktop attempts production URL first and falls back only to v2-shaped fixture if unavailable. +- Fixed: Production `web/public/pets/catalog.v2.json` deployment is documented as separate unless explicitly approved. +- Fixed: Defined v2 `id = installId` mapping from current web metadata. +- Fixed: Made the Phase 04A v2 schema canonical. +- Fixed: Disallowed silent v1 fallback. +- Fixed: Added max pets/string/URL bounds, `generatedAt` validation, credential/port rejection, and explicit allowed hosts. +- Fixed: Required main-process fetch with timeout, byte limit, redirect/final URL validation. +- Fixed: Deferred preview rendering by default; renderer does not fetch remote previews. +- Fixed: Required separate validated catalog cache if caching is implemented. +- Fixed: Required catalog validation checks under `pnpm check`. +- Fixed: Clarified implementation must add and track `apps/desktop/catalog.v2.fixture.json`. +- Fixed: Clarified source precedence: remote live catalog, then validated fixture, then error. +- Fixed: Clarified field-specific URL rules for catalog, preview, and zip URLs. +- Updated: User approved updating `web/`, so Phase 04A now also creates `web/public/pets/catalog.v2.json` and updates `web/scripts/sync-pets.js`. + +## Oracle implementation review + +Oracle reviewed the implemented Phase 04A diff after successful validation with: + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +Initial implementation review blocked manual verification until catalog fetch hardening was fixed: + +- Redirect behavior was too permissive. +- Timeout covered only headers, not full bounded body read. +- Missing stream body fell back to unbounded `response.text()`. + +Implementation review disposition: + +- Fixed: Remote catalog fetch now uses `redirect: "error"`. +- Fixed: Abort timeout remains active through the full bounded body read and is cleared in `finally`. +- Fixed: Missing response stream body fails closed instead of falling back to unbounded text read. + +After the user approved updating and redeploying `web/`, the implementation was extended to create the real production web catalog artifact: + +- `web/scripts/sync-pets.js` now writes `catalog.v2.json`. +- `web/public/pets/catalog.v2.json` was generated from current web pet metadata. +- `https://openpets.dev/pets/catalog.v2.json` was deployed and verified to return `200 application/json` with `version: 2`. + +Oracle re-reviewed the web update and approved Phase 04A for manual verification. + +Manual verification disposition: + +- User manually verified and approved Phase 04A. diff --git a/docs/phases/phase-04b-safe-pet-installation.md b/docs/phases/phase-04b-safe-pet-installation.md new file mode 100644 index 00000000..c7da537f --- /dev/null +++ b/docs/phases/phase-04b-safe-pet-installation.md @@ -0,0 +1,403 @@ +# Phase 04B: Safe pet installation, removal, and default switching + +## Goal + +Allow users to install pets from the validated v2 catalog, set an installed pet as the default, render the selected default pet, and remove removable installed pets safely. + +This phase turns the Phase 04A read-only catalog into the first real pet ownership flow: + +```text +Catalog pet → safe download/install → installed state → set default → visible pet changes → remove → fallback +``` + +## Non-goals + +- Pet update system. +- Categories/tags/favorites/ratings/popularity UI. +- CLI install command. +- MCP/local adapter IPC. +- Claude integration. +- Speech bubbles. +- First-run onboarding. +- Production packaging. +- Full animation-state engine. +- Remote preview rendering in Pet Manager. + +## User-visible/manual outcome + +After this phase, the user can install a catalog pet, set it as default, see the floating pet window reflect the selected pet, restart and keep the selection, remove it, and safely fall back to the built-in pet. + +## Acceptance criteria + +- Existing Phase 04A catalog fetch/search/read-only behavior continues to work. +- Pet Manager enables `Install` for catalog pets that are not installed. +- Installing a pet downloads only its validated catalog `zip` URL. +- Zip download uses allowed host/protocol/path rules from Phase 04A. +- Zip download has timeout and byte limits. +- Zip extraction prevents zip-slip/path traversal. +- Zip extraction rejects absolute paths, `..`, backslashes as separators, Windows drive paths, UNC paths, NUL bytes, duplicate normalized paths, case-insensitive collisions, symlinks/hardlinks, encrypted/unsupported entries, and entries that escape the temp directory. +- Zip extraction does not preserve executable permissions. +- Zip extraction never executes downloaded files. +- Install extracts into a temp directory first. +- Install validates required pet files before finalizing. +- Failed installs clean up temp files and do not update installed pet state. +- Successful install moves/copies validated files into `/pets//`. +- Installed pet state is persisted only after install finalization succeeds. +- Install/remove/default state write failures propagate to the UI and do not report success. +- Pet Manager shows installed state after install. +- User can set an installed pet as default. +- Default pet id persists across restart. +- Floating pet window visibly reflects the selected default pet. +- If installed pet rendering fails, the app falls back to built-in pet rendering without crashing. +- User can remove installed non-built-in pets. +- Built-in pet cannot be removed. +- Removing the current default pet sets default back to built-in and refreshes the pet window. +- Remove failures leave app state consistent and understandable. +- Reinstall/overwrite of an already installed pet is not supported in Phase 04B. +- Concurrent duplicate install/remove/default actions for the same pet are prevented. +- Automated checks include zip/path safety tests. + +## Required current zip shape + +Phase 04B must inspect current real zips before implementation and document the exact accepted shape. + +Expected current shape from existing catalog zips: + +```text +/pet.json +/spritesheet.webp +``` + +Required install validation for Phase 04B: + +- Exactly one top-level directory is allowed, or files may be normalized from a single safe top-level directory. +- `pet.json` must exist. +- `spritesheet.webp` must exist. +- `pet.json` must be valid JSON. +- `spritesheet.webp` must be present and under size limits. +- The installed pet id comes from the catalog id, not from trusting zip paths. +- Final installed directory contains only normalized `pet.json` and `spritesheet.webp`. + +If real zips differ, update this section before implementation and re-check with Oracle. + +## Install storage + +Store installed pets under: + +```text +/pets// +``` + +Final installed shape for Phase 04B: + +```text +/pets//pet.json +/pets//spritesheet.webp +``` + +Do not store or trust arbitrary absolute paths in app state. + +State should store safe metadata and derive local paths from `userData` + safe pet id. + +## Download and extraction limits + +Initial limits: + +```text +max zip download: 50 MB +max extracted total: 200 MB +max files: 500 +max individual file: 100 MB +download timeout: 30 seconds +``` + +If real catalog pets require different limits, update this spec before implementation. + +## URL policy + +Download URL must come from a validated v2 catalog entry. + +Zip URL rules: + +- `https:` only. +- Host exactly `zip.openpets.dev`. +- Path starts with `/pets/`. +- No credentials. +- No custom port. +- Redirects should be rejected or manually validated before following. +- Phase 04B should reject redirects for zip downloads by default. +- Final URL must still satisfy all rules. + +Install-from-fixture behavior: + +- Installing from the validated fixture fallback is allowed in development because fixture entries use the same `zip.openpets.dev` URLs and URL validation rules. +- UI should not hide that the catalog source is fixture fallback. + +Reinstall policy: + +- If a pet is already installed, `Install` is disabled. +- Phase 04B does not overwrite/reinstall installed pets. +- A future update/reinstall flow can be designed later. + +## Zip safety policy + +Treat all zip entries as untrusted. + +Before extraction: + +- Verify zip magic/signature enough to reject obvious non-zip content. +- Use a zip library that reads central directory metadata and exposes entry types/sizes. +- Reject encrypted or unsupported archives. + +For each entry: + +- Normalize separators. +- Reject `\` as path separator in entry names. +- Reject NUL bytes. +- Reject absolute POSIX paths. +- Reject Windows drive paths such as `C:\...` or `C:/...`. +- Reject UNC paths such as `//server/share` or `\\server\share`. +- Reject any segment equal to `..`. +- Resolve output path against temp install directory and verify it remains inside that directory. +- Reject duplicate normalized paths. +- Reject case-insensitive path collisions. +- Reject symlinks/hardlinks/special files if exposed by the zip library. +- Reject encrypted or unsupported entries. +- Never execute files. +- Do not preserve executable permissions. +- Validate compressed and uncompressed sizes during extraction; do not trust metadata only. +- Reject extra non-directory files beyond the accepted normalized final shape: `pet.json` and `spritesheet.webp`. + +Removal path safety: + +- Derive removal path only from `/pets/`. +- Verify resolved path remains inside the pets root before deletion. +- Never remove paths from persisted state directly. + +Mandatory tests/checks must cover malicious path cases. + +## App state changes + +Extend the existing V1 app state shape in a backward-compatible way. Do not introduce a V2 state migration in Phase 04B unless implementation proves V1 extension is insufficient. + +Recommended installed pet state: + +```ts +interface InstalledPetState { + id: string; + displayName: string; + description?: string; + builtIn: boolean; + protected: boolean; + installed: boolean; + source?: { + catalogVersion: 2; + zip: string; + preview: string; + }; + broken?: boolean; + brokenReason?: string; +} +``` + +Rules: + +- Built-in pet remains always present/protected. +- Default pet id must point to an installed pet or fall back to built-in. +- Removing current default sets default to built-in before/with state update. +- If installed files are missing/corrupt on startup, mark the pet broken and fall back to built-in if needed. Do not crash. +- App state is updated only after file operations succeed. +- Broken installed pet policy: mark the pet as `broken: true`, keep it removable in Pet Manager, and fall back to built-in if it is/was the default. +- Do not auto-remove broken pets in Phase 04B. +- Persisted state should not store absolute local paths. + +State operation order: + +- Install: download zip → validate archive → extract to temp → validate final files → move to final directory → write state → report success. +- Install failure before state write: clean temp/final partial files and leave state unchanged. +- Remove non-default: validate derived removal path → remove installed record from state → delete files; if file deletion fails, keep state consistent and show a warning/error. +- Remove current default: update state so default falls back to built-in and installed record is removed atomically, refresh pet window, then delete files. +- Default switch: validate installed/non-broken pet → update state → refresh pet window; if state write fails, do not refresh/report success. +- Operation locks prevent install/remove/default races for the same pet id. + +## Default pet rendering + +Phase 04B does not need final animation engine quality. + +Rendering rules: + +- Built-in pet keeps current generated renderer. +- Installed default pet uses local installed `spritesheet.webp` as a static visible image inside the existing 180x180 pet window. +- Do not load remote image URLs in the pet window. +- Main process reads local installed `spritesheet.webp`, size-checks it, converts it to `data:image/webp;base64,...`, and passes that data URL into generated pet HTML. +- Pet window CSP must allow `img-src data:` and continue to deny remote content. +- Do not use broad `file://` access to `userData` in the pet renderer. +- If installed image fails, fallback to built-in generated renderer and log clearly. +- If installed image fails for the selected default, mark installed pet broken where practical and fall back to built-in rendering. +- Setting default should refresh the visible pet window immediately. + +## Pet Manager UI behavior + +Catalog card actions: + +- Not installed: `Install`. +- Installing: disabled `Installing…`. +- Installed and not default: `Set Default`, `Remove`. +- Installed and default: disabled `Default`, `Remove` if removable. +- Built-in: disabled protected remove. + +Show clear errors for install/remove failures. + +Disable duplicate actions while an operation for a pet is in progress. + +## Internal IPC/preload API + +Extend the current narrow internal UI API: + +```ts +installPet(petId: string): Promise +removePet(petId: string): Promise +setDefaultPet(petId: string): Promise +``` + +Rules: + +- Sender must be Pet Manager. +- `petId` must be a safe known catalog/installed id. +- No generic invoke API. +- No filesystem/shell/Electron exposure. +- Main process validates all operation preconditions. + +## Dependencies + +Phase 04B may add a zip library only after checking current, maintained npm options. + +Requirements for zip library choice: + +- Works on Node/npm without Bun runtime. +- Supports safe iteration/extraction or exposes enough metadata to enforce safety policy. +- Actively maintained. +- Does not require native build steps if avoidable. + +Use librarian/docs lookup before selecting the library. + +Current recommendation to verify before implementation: + +- Use a maintained pure-JS zip library such as `yauzl`/successor or another actively maintained package that supports lazy entry iteration and exposes entry metadata. +- Document final chosen library and rationale in this phase doc before or during implementation review. + +Final Phase 04B choice: + +- Use `yauzl@3.3.0` with `lazyEntries: true` and `validateEntrySizes: true`. +- Rationale: pure JavaScript, works with Node/npm without Bun or native build steps, exposes central-directory entry metadata before extraction, supports sequential entry processing, exposes compressed/uncompressed sizes, encryption flags, compression method, and external file attributes needed for fail-closed validation. +- Phase 04B extraction still applies OpenPets' own path, size, duplicate, collision, file type, and final-shape validation instead of relying only on the library defaults. + +## Risks and tradeoffs + +### Risk: zip extraction security bugs + +Mitigation: + +- Mandatory path-safety tests. +- Mandatory zip magic/central-directory checks where supported by chosen library. +- Temp extraction only. +- Fail closed on suspicious entries. +- Oracle implementation review focuses heavily on install safety. + +### Risk: app state/file operation inconsistency + +Mitigation: + +- Update state only after final install succeeds. +- On remove, update default fallback and state in a safe order. +- Handle partial delete/orphan files by keeping app usable and showing clear state. + +### Risk: rendering scope creep + +Mitigation: + +- Static local spritesheet preview only. +- Defer animation engine to later. + +## Security/privacy notes + +- No telemetry. +- No cookies/auth/accounts. +- No remote HTML. +- No script execution from downloaded pets. +- No shell command execution. +- No pet zip contents outside OpenPets userData paths. +- All downloaded files are untrusted. +- Fail closed on validation errors. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm typecheck +pnpm build +``` + +Phase 04B must add automated checks for: + +- Safe zip path normalization. +- Rejection of traversal/absolute/Windows/UNC/NUL paths. +- Duplicate/case-insensitive collision rejection. +- Zip magic/non-zip rejection. +- Fixture/current catalog zip shape validation where practical. + +## Manual verification guide + +1. Run: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. Open `Manage Pets...`. +3. Install a catalog pet, for example Snoopy. +4. Confirm it appears installed. +5. Set it as default. +6. Confirm floating pet visibly changes to the installed pet image. +7. Quit/restart and confirm installed/default state persists. +8. Remove the installed pet. +9. Confirm default falls back to built-in. +10. Confirm built-in cannot be removed. +11. Confirm catalog/search/settings still work. + +Manual acceptance question: + +```text +Does Phase 04B pass on your machine: safe install works, installed default rendering works, remove/fallback works, and built-in protection remains reliable? +``` + +## Oracle plan review + +Oracle reviewed the initial Phase 04B spec and blocked implementation until state schema, broken pet policy, install/reinstall behavior, zip validation, removal safety, rendering strategy, and dependency choice were sharpened. + +## Oracle feedback disposition + +- Fixed: Chose backward-compatible V1 state extension instead of V2 migration. +- Fixed: Defined broken installed pet policy: mark broken/removable, fallback to built-in, do not auto-remove. +- Fixed: Explicitly allowed install from validated fixture fallback during development. +- Fixed: Forbid reinstall/overwrite in Phase 04B. +- Fixed: Required install/remove/default state write failures to propagate. +- Fixed: Required final installed directory to contain only `pet.json` and `spritesheet.webp`. +- Fixed: Added zip magic/central-directory validation requirement. +- Fixed: Required streaming download byte limit and timeout through full body read. +- Fixed: Added removal path safety rules. +- Fixed: Chose main-process data URL rendering with `img-src data:` CSP. +- Fixed: Required chosen zip library and rationale to be documented before/with implementation. + +Implementation review disposition: + +- Fixed: Open `yauzl` with `strictFileNames: true` so backslash entries are rejected before extraction instead of normalized. +- Fixed: App state writes now write the candidate state to disk before mutating in-memory state, preventing state/disk divergence on write failure. +- Fixed: Persisted installed pet ids are revalidated during normalization; invalid entries are dropped. +- Fixed: Startup normalization marks installed pets broken when required local files are missing/corrupt and falls back to built-in if the persisted default is broken. +- Fixed: Zip checks now include duplicate/case-collision entry sets, non-zip magic rejection, empty path segment rejection, and an archive-level `yauzl` `strictFileNames` backslash rejection check. +- Fixed: Remove-file deletion failures now report that state removal succeeded but local files may require manual cleanup. +- Fixed: Tightened initial zip magic acceptance to normal local-file and empty-archive signatures. +- Deferred: Broader archive-level tests for encrypted entries, unsupported compression, and symlink/special-file metadata remain valuable but are not required before manual Phase 04B verification because the implementation rejects those through entry metadata before writing file contents. diff --git a/docs/phases/phase-05-local-ipc-client.md b/docs/phases/phase-05-local-ipc-client.md new file mode 100644 index 00000000..728c567d --- /dev/null +++ b/docs/phases/phase-05-local-ipc-client.md @@ -0,0 +1,368 @@ +# Phase 05: Local IPC and client package + +## Goal + +Create the private local control plane between the Electron desktop app and Node-based adapters such as `@open-pets/mcp`, `@open-pets/claude`, and `@open-pets/cli`. + +After this phase, a developer can run the desktop app and use `@open-pets/client` from Node to call local IPC methods that report app status and make the visible default pet react in a small, manually verifiable way. + +## Non-goals + +- MCP server package implementation. +- Claude hooks implementation. +- Auto-launching the desktop app from the client. +- Remote HTTP/TCP API. +- Agent lease lifecycle and heartbeat cleanup. +- Full speech bubble product UI. +- Rich animation-state engine. +- Production installer integration. +- Pet install/remove/default over public IPC. + +## User-visible/manual outcome + +With the desktop app running, a developer can run a local Node command from `packages/client` that connects through a discovery file to the desktop app and calls: + +```text +status +pet.react +pet.say +``` + +The desktop app rejects invalid tokens/versions. `pet.react` and `pet.say` produce a visible temporary state in the existing default pet window, enough to prove the local control plane works before MCP is built. + +## Acceptance criteria + +- Desktop app starts a local-only IPC server on app ready. +- IPC transport is cross-platform: + - macOS/Linux: Unix domain socket. + - Windows: named pipe. +- Desktop app writes a discovery file while the IPC server is running. +- Discovery file includes protocol version, endpoint, random startup token, app version, platform, and pid. +- Discovery file does not contain durable secrets beyond the current startup token. +- Discovery file and runtime directory use restrictive permissions where supported. +- Unix socket paths are short enough for common `sockaddr_un` limits. +- Unix stale socket files are cleaned up before bind and on normal shutdown. +- Windows named pipe path uses the `\\.\pipe\...` namespace and does not depend on filesystem cleanup. +- Every request includes protocol version and startup token. +- Invalid token requests are rejected. +- Invalid protocol version requests are rejected. +- Malformed JSON and unknown methods return errors without crashing the app. +- IPC request size is bounded. +- The server handles socket/client errors without crashing. +- `@open-pets/client` can read discovery, connect, send one request, and return typed results. +- `@open-pets/client` has connection/request timeout behavior. +- Initial methods are implemented: + - `hello` + - `status` + - `pet.react` + - `pet.say` +- `status` reports whether the app is reachable, app version, protocol version, default pet id, default pet display name, and paused/open-default-pet state where available. +- `pet.react` accepts the initial public reaction names from `task.txt` and visibly updates the default pet label/state temporarily. +- `pet.say` accepts a short message, enforces the Phase speech/message safety rules at a minimal level, and visibly updates the default pet label/message temporarily. +- Public IPC does not expose pet installation, removal, default switching, filesystem, shell, Electron, or generic invoke access. +- Automated checks cover protocol validation and client request/response parsing where practical. + +## Proposed files/directories + +Expected additions/changes: + +```text +docs/phases/phase-05-local-ipc-client.md +apps/desktop/src/local-ipc.ts +apps/desktop/src/local-ipc-protocol.ts +apps/desktop/src/default-pet-controller.ts +apps/desktop/src/pet-window.ts +apps/desktop/src/main.ts +packages/client/src/index.ts +packages/client/src/protocol.ts +packages/client/src/discovery.ts +packages/client/src/check-client-protocol.ts +packages/client/package.json +``` + +Exact file split may change during implementation if a simpler structure is clearer. + +## Technical approach + +### Transport + +Use Node `node:net` in the Electron main process and in `@open-pets/client`. + +Platform endpoint rules: + +- macOS/Linux: create a Unix socket under a user-owned OpenPets runtime directory. +- Windows: create a named pipe path like `\\.\pipe\openpets--`. + +No TCP listener is used in Phase 05. + +### Runtime directory and discovery + +Use a shared deterministic discovery location so the app and client can agree without Electron imports in the client package. + +Discovery file location: + +```text +macOS: ~/Library/Application Support/OpenPets/runtime/ipc.json +Linux: $XDG_RUNTIME_DIR/openpets/ipc.json when secure, otherwise ~/.config/OpenPets/runtime/ipc.json +Windows: %APPDATA%\OpenPets\runtime\ipc.json +``` + +Socket/pipe endpoint location: + +```text +macOS: /tmp/openpets-/openpets-.sock +Linux: $XDG_RUNTIME_DIR/openpets/openpets-.sock when secure, otherwise /tmp/openpets-/openpets-.sock +Windows: \\.\pipe\openpets-- +``` + +Do not put Unix socket files under the longer application-support discovery directory because common Unix socket path length limits are around 103-107 bytes. + +Implementation can centralize path derivation constants in both desktop and client, as long as both sides agree and the path is documented. + +Permission targets: + +- Runtime directories: `0700` where supported. +- Discovery file: `0600` where supported. +- Unix socket: protected by the runtime directory and `chmod 0600` after bind where supported. +- Windows: rely on user AppData ACLs plus the startup token in Phase 05; do not claim a strong named-pipe ACL unless it is implemented. + +Discovery shape: + +```json +{ + "protocolVersion": 1, + "protocol": "openpets-ipc", + "endpoint": "/short/path/openpets.sock", + "token": "random-startup-token", + "appVersion": "0.0.0", + "pid": 12345, + "platform": "darwin" +} +``` + +Write discovery atomically through a temp file then rename where practical. Remove the discovery file on normal app shutdown if it still points at the current pid/token. + +Treat discovery as untrusted in `@open-pets/client`: reject malformed JSON, wrong protocol, wrong protocol version, mismatched platform, unsupported endpoint shape, TCP-like host/port values, missing token, missing pid, and oversized discovery files. + +Threat model: the startup token protects against accidental or cross-user access when file permissions hold. It is not a strong same-user security boundary. A same-user process that can read the discovery file can control the pet for that app run. + +### Protocol + +Use newline-delimited JSON over the local socket/pipe, one request and one response per connection in Phase 05. This keeps the client simple and avoids stream multiplexing before MCP needs it. + +Protocol limits: + +```text +max request bytes: 16 KiB +max response bytes in client: 16 KiB +connect timeout: 2 seconds +response timeout: 3 seconds +malformed/no-newline behavior: close with structured error when possible, otherwise close socket +``` + +Request: + +```json +{ + "id": "uuid-or-random-id", + "version": 1, + "token": "startup-token", + "method": "status", + "params": {} +} +``` + +Response: + +```json +{ + "id": "same-id", + "ok": true, + "result": {} +} +``` + +Error response: + +```json +{ + "id": "same-id-if-known", + "ok": false, + "error": { + "code": "invalid_token", + "message": "Invalid IPC token." + } +} +``` + +### Methods + +`hello`: + +- Confirms protocol compatibility and token validation. +- Returns app version and protocol version. + +`status`: + +- Returns current default pet summary and basic app state. + +`pet.react`: + +- Params: `{ "reaction": "testing" }`. +- Valid reactions: `idle`, `thinking`, `working`, `editing`, `running`, `testing`, `waiting`, `success`, `error`, `celebrating`. +- Updates the existing default pet renderer with a visible label/state for a short TTL. + +`pet.say`: + +- Params: `{ "message": "On it!", "reaction": "working" }`. +- Message must be short, single-line, not code-block-like, and not obviously secret-like. +- Updates the existing default pet renderer with a visible message for a short TTL. +- Respects `speechBubblesEnabled` and paused state where practical. +- Replaces the current transient message/reaction and resets its TTL instead of queuing unbounded messages. +- All dynamic message/reaction/display text must be HTML-escaped before renderer insertion. + +### Client package + +`@open-pets/client` should expose typed helpers: + +```ts +createOpenPetsClient(options?): OpenPetsClient +client.hello() +client.status() +client.react(reaction) +client.say(message, options?) +``` + +The client reads discovery by default, connects to the endpoint, sends exactly one request, waits for one response, then closes. + +Unavailable/stale discovery semantics: + +- `client.status()` should return a typed unavailable/degraded result when discovery is missing, stale, malformed, or connection times out. +- Other method helpers may throw structured client errors for unavailable app state. + +### Desktop integration + +- Start IPC after app state and default-pet display handlers are initialized. +- Stop IPC during app shutdown. +- `pet.react` / `pet.say` should show the default pet if open-default-pet-on-launch is enabled or if the default pet window is already visible. It should not create extra pet windows beyond the default pet in Phase 05. +- Keep renderer content generated by the main process with a strict CSP. No remote content. + +## Risks and tradeoffs + +### Risk: local IPC security assumptions + +Mitigation: + +- Local-only socket/pipe; no TCP. +- Random startup token required on every request. +- Restrictive runtime directory, discovery file, and Unix socket permissions where available. +- Small method surface. +- Request size limit and fail-closed validation. + +### Risk: cross-platform runtime path differences + +Mitigation: + +- Keep endpoint and discovery path logic small and documented. +- Prefer short Unix socket paths. +- Avoid clever platform-specific IPC beyond Node `net`. + +### Risk: implementing too much MCP lifecycle too early + +Mitigation: + +- Phase 05 does not implement leases, heartbeats, MCP tools, auto-launch, or cleanup semantics for agent-owned temporary pets. +- It only proves the private app/client control plane. + +## Security/privacy notes + +- No remote API. +- No TCP listener. +- No shell command execution. +- No pet install/remove/default mutation over this initial public IPC. +- Startup token is random and per app run. +- Requests are bounded and parsed as untrusted input. +- `pet.say` must not display multiline/code/secret-looking content. +- Discovery file is a local convenience file, not durable account/auth state. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm typecheck +pnpm build +pnpm --filter @open-pets/desktop check +pnpm --filter @open-pets/client check +``` + +Phase 05 should add checks for: + +- Discovery validation rejects malformed/wrong protocol/wrong platform/bad endpoint values. +- Endpoint generation covers Unix and Windows pipe shape without requiring Windows to run tests. +- Request validation rejects missing/invalid token. +- Request validation rejects unsupported protocol version. +- Unknown methods return structured errors. +- Malformed/oversized request handling is fail-closed. +- `pet.say` message validation rejects multiline, code-block-like, overlong, URL/path-heavy, or secret-looking input where practical. +- Client protocol parsing handles ok/error responses. + +## Manual verification guide + +1. Run the desktop app: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. In another terminal, run the client smoke command added by this phase, for example: + + ```bash + pnpm --filter @open-pets/client smoke:status + pnpm --filter @open-pets/client smoke:react testing + pnpm --filter @open-pets/client smoke:say "Working on it" working + ``` + +3. Confirm status returns app/default-pet information. +4. Confirm invalid token smoke check fails with a structured rejection. +5. Confirm the visible default pet label/state changes for react/say. +6. Quit OpenPets and confirm the client reports that the app is unavailable. + +Manual acceptance question: + +```text +Does Phase 05 pass on your machine: local IPC discovery works, @open-pets/client can call status/react/say, invalid tokens are rejected, and quitting the app makes the client report unavailable? +``` + +## Oracle plan review + +Oracle reviewed the Phase 05 plan and approved the architecture/scope with should-fix disposition required before implementation. + +## Oracle feedback disposition + +- Fixed: Made discovery path and socket/pipe endpoint paths concrete, keeping Unix socket paths short. +- Fixed: Required client-side discovery validation as untrusted input and forbade TCP-like discovery behavior. +- Fixed: Added concrete permission targets for runtime directories, discovery files, Unix sockets, and clarified Windows limitations. +- Fixed: Clarified same-user threat model: startup token is not a strong same-user security boundary. +- Fixed: Defined stale/unavailable discovery semantics for `client.status()`. +- Fixed: Added numeric protocol limits for request/response bytes and timeouts. +- Fixed: Required `pet.say` to respect speech/paused controls where practical, replace transient messages, and HTML-escape dynamic text. +- Fixed: Tightened automated check requirements for discovery validation, endpoint generation, invalid token/version/method, malformed/oversized input, say validation, and client response parsing. +- Fixed: Noted package Node typings/build requirement for `@open-pets/client`. +- Deferred: Environment override such as `OPENPETS_DISCOVERY_FILE` is useful for smoke tests and may be implemented if it stays simple. + +Implementation review disposition: + +- Fixed: Escaped built-in pet transient label/message text before injecting into generated pet HTML. +- Fixed: External `pet.react`/`pet.say` no longer force-show the default pet when the user has hidden it and disabled open-default-pet-on-launch; events only show an already-visible pet or the normal open-on-launch default pet. +- Fixed: Hardened fallback `/tmp/openpets-` runtime directory handling with ownership, symlink, and mode checks before trusting it. +- Fixed: Discovery file parsing now checks file size before read and wraps malformed JSON in structured client errors. +- Fixed: Discovery cleanup now removes the file only if it still points at the current pid/token/endpoint. +- Fixed: Client-side Unix endpoint validation now only accepts expected OpenPets runtime socket filename/directory patterns. +- Fixed: Paused behavior is quiet: `pet.say` and `pet.react` do not show/update visible transient state while paused. +- Fixed: Windows pipe suffix now uses cryptographic random bytes instead of `Math.random()`. +- Fixed: Reused the protocol transient display TTL constant instead of a hardcoded value. +- Fixed: Corrected macOS/Linux fallback socket endpoint generation to use literal `/tmp/openpets-` so it matches the documented path and client validation. +- Fixed: Malformed/oversized local IPC requests now return `invalid_request` structured errors instead of generic internal errors where possible. +- Deferred: Response id matching, stronger Windows pipe ACLs, and broader cross-platform endpoint-generation tests can be added with the MCP/packaging phases if needed. diff --git a/docs/phases/phase-06a-thin-mcp-tools.md b/docs/phases/phase-06a-thin-mcp-tools.md new file mode 100644 index 00000000..dbf4b2d7 --- /dev/null +++ b/docs/phases/phase-06a-thin-mcp-tools.md @@ -0,0 +1,356 @@ +# Phase 06A: Thin `@open-pets/mcp` tools over local IPC + +## Goal + +Make OpenPets minimally usable from MCP-capable coding agents through a thin Node/npm/npx MCP server package over the existing Phase 05 local IPC methods. + +This sub-phase turns the Phase 05 local IPC control plane into the first agent-facing integration: + +```text +MCP-capable agent → @open-pets/mcp stdio server → @open-pets/client → desktop local IPC → visible pet +``` + +## Non-goals + +- Claude Code config detection/setup UI. +- Claude enhanced hooks. +- Agent Setup window implementation. +- Pet install/remove/default tools exposed to agents. +- Remote HTTP/TCP MCP server. +- Full packaging/release publishing. +- Complex session/project routing. +- Advanced animation engine. +- Direct app auto-install. MCP may try to launch an installed app later, but must not install it. + +## User-visible/manual outcome + +After this phase, a developer can run the local `@open-pets/mcp` package as a stdio MCP server, call: + +```text +openpets_status +openpets_say +openpets_react +``` + +and see the running OpenPets desktop pet respond through local IPC. + +If OpenPets is not running, the MCP server remains alive and `openpets_status` reports a clear degraded/unavailable status instead of crashing. + +This phase is explicitly **not** the full Phase 06 lease lifecycle. Full real `--pet` routing, non-default temporary pet windows, lease heartbeat/release, fallback for missing explicit pets, and TTL cleanup are split into follow-up Phase 06B. + +## Acceptance criteria + +- `@open-pets/mcp` builds and runs with Node/npm/pnpm and is shaped for future `npx -y @open-pets/mcp` usage. +- Package has a `bin` entry and compiled entrypoint has a Node shebang. +- MCP server uses stdio transport and never writes logs to stdout. +- MCP server exposes exactly these initial tools: + - `openpets_status` + - `openpets_say` + - `openpets_react` +- `openpets_status` calls `@open-pets/client.status()` and reports reachable/degraded app state as both human-readable text and structured content where supported. +- `openpets_say` calls `@open-pets/client.say()` with the user-provided short message and optional reaction. +- `openpets_react` calls `@open-pets/client.react()` with one allowed reaction. +- MCP tool schemas enforce the public reaction list from `task.txt`. +- MCP tool schemas keep `openpets_say.message` short enough for Phase 05 IPC limits and speech safety. +- Tool errors return MCP tool errors (`isError: true`) rather than crashing the server. +- If desktop app/discovery/local IPC is unavailable, `openpets_status` reports degraded state clearly. +- If desktop app/discovery/local IPC is unavailable, `openpets_say` and `openpets_react` return clear tool errors. +- No tool can install pets, remove pets, set default pet, browse catalog, edit settings, access filesystem, run shell commands, or expose generic IPC. +- `--pet ` is parsed and included in MCP status/config output. +- `--pet` is clearly reported as configured-but-not-yet-routed in Phase 06A; actual tools still affect the desktop app's current default pet through Phase 05 IPC. +- `openpets_status` clearly distinguishes `configuredPetId` from `actualTargetPetId`. +- If `--pet` is omitted, status reports that the MCP server targets the user's current default pet. +- MCP process lifecycle handlers close the MCP server cleanly on `SIGINT`/`SIGTERM` where available. +- No Bun runtime requirement. +- Automated checks cover MCP argument parsing, tool input validation helpers, and degraded status formatting where practical. + +## Scope note: Phase 06A versus 06B + +The high-level Phase 06 target in `docs/implementation-process.md` includes immediate lease acquire/release, `--pet` opening explicit non-default pets, fallback for missing explicit pets, and TTL cleanup. + +Current implementation state after Phase 05 provides `hello`, `status`, `pet.react`, and `pet.say` over local IPC, but does not yet expose `lease.acquire`, `lease.heartbeat`, or `lease.release`, and the desktop app still has only a persistent default-pet window. + +Oracle plan review required this split. This spec is Phase 06A: + +```text +Phase 06A: thin MCP tools over default-pet IPC +Phase 06B: MCP lease lifecycle and explicit non-default pet windows +``` + +Do not silently expand Phase 06A into lease lifecycle work. + +## Proposed files/directories + +Expected additions/changes: + +```text +docs/phases/phase-06a-thin-mcp-tools.md +packages/mcp/package.json +packages/mcp/src/index.ts +packages/mcp/src/args.ts +packages/mcp/src/tools.ts +packages/mcp/src/check-mcp-contract.ts +packages/mcp/tsconfig.json +packages/client/src/index.ts (only if minor client result typing is needed) +pnpm-lock.yaml +``` + +Exact file split may change if a simpler implementation is clearer. + +## Technical approach + +### MCP SDK + +Use the stable official TypeScript MCP SDK for this npm/npx-facing package: + +```text +@modelcontextprotocol/sdk +zod +``` + +Do not use alpha split SDK packages unless the stable SDK proves incompatible and the reason is documented. + +### Server shape + +- Entry file starts with `#!/usr/bin/env node`. +- `@open-pets/client`, `@modelcontextprotocol/sdk`, and the schema validation library are runtime dependencies when used by the MCP server. +- Create MCP server with name `open-pets` / package name `@open-pets/mcp`. +- Connect using stdio transport. +- Use stderr for diagnostics only. +- Keep stdout reserved for MCP protocol. +- Register three tools with small descriptions and schemas. +- Keep tool handlers pure/testable by injecting the client/status functions where practical. + +### Tools + +`openpets_status`: + +- No required params. +- Returns app availability, configured `--pet` target if present, default-pet status from the desktop app, and guidance if unavailable. +- Should be safe/read-only/idempotent. +- Sanitizes degraded/unavailable errors before returning them to agents; do not expose home paths, socket paths, tokens, or raw Node stack details. + +Structured status shape: + +```ts +interface OpenPetsMcpStatus { + ok: boolean; + appRunning: boolean; + configuredPetId?: string; + actualTargetPetId?: string; + actualTargetPetName?: string; + usingDefaultPet: boolean; + routingImplemented: false; + unavailableReason?: string; + fallbackReason?: string; +} +``` + +`openpets_react`: + +Params: + +```json +{ + "reaction": "testing" +} +``` + +Valid reactions: + +```text +idle +thinking +working +editing +running +testing +waiting +success +error +celebrating +``` + +`openpets_say`: + +Params: + +```json +{ + "message": "Working on it", + "reaction": "working" +} +``` + +Rules: + +- Message max 140 characters. +- Single-line. +- No code-block-like content. +- No obvious secrets, URLs, or long path-like content. +- Optional reaction must be from the public reaction list. + +The desktop IPC remains the final enforcement layer; MCP schemas are an early validation layer. + +### CLI args + +Parse only the initial simple args: + +```text +--pet +--help +--version +``` + +Rules: + +- Pet id uses the same safe id shape as catalog pets. +- Do not add `--agent` or `--workspace`. +- Do not make `--pet` silently install pets. +- For Phase 06A-style behavior, `--pet` is reported in status but may not yet open non-default pets until lease lifecycle is implemented. +- If `--pet` is provided, `openpets_status` must explicitly say explicit pet routing is not implemented in Phase 06A and the actual target remains the desktop default pet. + +### Degraded behavior + +`@open-pets/client.status()` already returns a typed unavailable result when discovery/connect fails. MCP should preserve this behavior in `openpets_status`. + +For `say`/`react`, return `isError: true` with a concise message such as: + +```text +OpenPets desktop app is not running or local IPC is unavailable. Open OpenPets and try again. +``` + +### Lifecycle + +- Handle `SIGINT`/`SIGTERM` by closing MCP server/transport where supported. +- Keep server alive even if OpenPets desktop app is unavailable. +- Do not implement public `openpets_release`. + +Phase 06B lease lifecycle must later: + +- Acquire on MCP startup, not first tool call. +- Heartbeat while alive. +- Release on shutdown/signals/stdin close where practical. +- Use desktop TTL fallback for orphan cleanup. +- Fall back to default pet for missing explicit pet and report fallback in status. + +## Risks and tradeoffs + +### Risk: SDK API drift + +Mitigation: + +- Verify current official MCP TypeScript package before implementation. +- Keep SDK wrapper code small. +- Add package-local checks. + +### Risk: stdout corruption + +Mitigation: + +- Never use `console.log` in MCP runtime path. +- Use stderr for diagnostics. + +### Risk: scope creep into full lease/multi-pet lifecycle + +Mitigation: + +- Thin MCP tools over existing local IPC are the manually verifiable Phase 06A checkpoint. +- Lease lifecycle is explicitly Phase 06B. + +### Risk: agents displaying private content through `openpets_say` + +Mitigation: + +- MCP schema limits message shape. +- Desktop IPC validates speech safety again. +- Tool descriptions explicitly say not to send code, logs, secrets, URLs, or file paths. + +## Security/privacy notes + +- MCP server is stdio only. +- No TCP/HTTP listener. +- No filesystem/shell/Electron access exposed to agents. +- Agent-facing tool surface stays minimal. +- Pet management remains user-controlled in the desktop app. +- `openpets_say` is for short status/personality messages only. +- No Bun runtime dependency. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm --filter @open-pets/mcp check +pnpm --filter @open-pets/mcp build +``` + +Phase 06A should add checks for: + +- CLI arg parsing for `--pet`, `--help`, `--version`, invalid args. +- Reaction validation accepts only public reactions. +- `openpets_say` validation rejects overlong/multiline/code/secret/path/URL-like messages. +- Degraded status formatting when client reports unavailable. +- Built output has a shebang or package bin points at the expected executable. +- MCP contract check starts the stdio server and verifies `tools/list` returns exactly `openpets_status`, `openpets_say`, and `openpets_react`. +- Contract check verifies unavailable app does not crash the MCP server. +- Contract check verifies no unexpected stdout noise outside MCP protocol messages. + +## Manual verification guide + +1. Run desktop app: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. Build MCP package: + + ```bash + pnpm --filter @open-pets/mcp build + ``` + +3. Run an MCP inspector or local MCP client against the package entrypoint. + +4. Call `openpets_status` and confirm it reports OpenPets reachable/default pet info. + +5. Call `openpets_react` with `testing` and confirm the visible pet reacts. + +6. Call `openpets_say` with `Working on it` and `working` and confirm the visible pet message appears. + +7. Quit OpenPets and call `openpets_status` again; confirm it reports degraded/unavailable clearly while MCP remains alive. + +Manual acceptance question: + +```text +Does Phase 06A pass on your machine: @open-pets/mcp runs over stdio, exposes status/say/react, talks to the running desktop app through local IPC, reports configured `--pet` as not-yet-routed, and reports degraded status when OpenPets is unavailable? +``` + +## Oracle plan review + +Oracle reviewed the initial Phase 06 plan and blocked calling it complete Phase 06 because real lease lifecycle and `--pet` routing are larger cross-cutting desktop/client work. Oracle approved the architecture only as Phase 06A. + +## Oracle feedback disposition + +- Fixed: Renamed/split scope to Phase 06A thin MCP tools over local IPC. +- Fixed: Deferred lease lifecycle, real non-default `--pet` windows, heartbeat/release, fallback, and TTL cleanup to Phase 06B. +- Fixed: Required status/manual docs to clearly distinguish configured `--pet` from actual default-pet target in Phase 06A. +- Fixed: Switched SDK plan to stable `@modelcontextprotocol/sdk` instead of alpha split package. +- Fixed: Required runtime dependencies for `@open-pets/client`, MCP SDK, and schema validation library. +- Fixed: Promoted runtime dependency requirement into the package/server acceptance criteria. +- Fixed: Corrected expected spec path and Phase 06A check wording after rename. +- Fixed: Tightened package/npx acceptance: bin entry, shebang, executable compiled entry, no Bun, no stdout logs. +- Fixed: Defined structured MCP status shape. +- Fixed: Required sanitized degraded errors so local paths/tokens/raw Node details are not returned to agents. +- Fixed: Required MCP contract check for tool list, invalid inputs, unavailable app behavior, and stdout protocol cleanliness. +- Fixed: Clarified tool error semantics: unavailable app returns `isError: true` for say/react rather than crashing the server. +- Deferred: Auto-launch of installed OpenPets app is explicitly left for Phase 06B or packaging phase. + +Implementation review disposition: + +- Fixed: Replaced POSIX-only `chmod +x` build script with a Node-based post-build executable step that no-ops on Windows. +- Fixed: Replaced POSIX `X_OK` contract assertion with shebang/bin validation. +- Fixed: MCP package `check` builds `@open-pets/client` first so package-local checks do not depend on stale client `dist` output. +- Fixed: Added stdio smoke contract coverage using the built `dist/index.js`, verifying tool list and degraded `openpets_status` with a missing discovery file. +- Fixed: Unavailable `openpets_status` human text now still explains configured `--pet` and Phase 06A deferred routing. diff --git a/docs/phases/phase-06b-mcp-lease-lifecycle.md b/docs/phases/phase-06b-mcp-lease-lifecycle.md new file mode 100644 index 00000000..c563a4e8 --- /dev/null +++ b/docs/phases/phase-06b-mcp-lease-lifecycle.md @@ -0,0 +1,461 @@ +# Phase 06B: MCP lease lifecycle and explicit pet routing + +## Goal + +Complete the core MCP runtime behavior that Phase 06A intentionally deferred: MCP startup should acquire a desktop-app lease for the configured/default pet, explicit non-default `--pet` values should open temporary pet windows, leases should heartbeat while alive, and temporary explicit pets should close when their last active lease ends or expires. + +This phase turns the Phase 06A thin tool path into the real agent-neutral lifecycle described in `task.txt`: + +```text +@open-pets/mcp --pet snoopy starts + → desktop app receives lease.acquire + → snoopy window opens as temporary agent pet + → tools target snoopy through lease id + → MCP exits or crashes + → release or TTL cleanup removes lease + → snoopy closes if no other lease/user pin needs it +``` + +## Non-goals + +- Claude Code detection/configuration UI. +- Claude enhanced hooks. +- Agent Setup window implementation. +- Auto-launching installed OpenPets desktop app from MCP. +- Production packaging/release validation. +- Pet install/remove/default tools exposed to agents. +- Complex agent/session/workspace routing beyond one target pet per MCP process. +- Remote HTTP/TCP MCP server. +- Advanced animation engine. + +## User-visible/manual outcome + +After this phase: + +- Running `@open-pets/mcp` without `--pet` acquires a lease for the desktop default pet and tools affect the default pet. +- Running `@open-pets/mcp --pet ` opens that installed pet as a temporary agent pet and tools affect that pet. +- Quitting the MCP process releases the lease. +- A temporary explicit non-default pet closes after the last active lease using it ends. +- If MCP crashes, desktop TTL cleanup expires the orphaned lease and closes the temporary pet. +- If `--pet` is missing or invalid/uninstalled, desktop falls back to the default pet and `openpets_status` reports the fallback clearly. + +## Acceptance criteria + +- Desktop local IPC adds internal methods: + - `lease.acquire` + - `lease.heartbeat` + - `lease.release` + - lease-scoped `pet.react` + - lease-scoped `pet.say` +- `@open-pets/client` exposes typed helpers for acquiring, heartbeating, releasing, status, say, and react with optional lease id. +- `@open-pets/mcp` acquires a lease during startup after MCP server initialization, not on first tool call. +- `@open-pets/mcp --pet ` sends requested pet id to `lease.acquire`. +- `@open-pets/mcp` accepts a bounded raw `--pet` string and lets desktop validate/fallback; only values that exceed length/control-character limits are fatal CLI errors. +- Raw `--pet` CLI bound: UTF-8 byte length must be 1-128 bytes and must not contain control characters, NUL, path separators, or whitespace-only content. Values that pass this bound but are not safe pet ids are sent to desktop and become `invalid_pet_id` fallback. +- If `--pet` is omitted, lease acquisition targets the current desktop default pet. +- If explicit `--pet` is installed and not broken, desktop opens/shows that pet as a temporary explicit agent pet. +- If explicit `--pet` is missing, not installed, invalid, or broken, desktop falls back to built-in/current default pet and records fallback reason. +- `openpets_status` reports: + - `configuredPetId` + - `leaseId` + - `actualTargetPetId` + - `actualTargetPetName` + - `usingDefaultPet` + - `fallbackReason` when applicable + - `routingImplemented: true` +- `openpets_say` and `openpets_react` target the acquired lease's actual pet. +- If lease acquisition fails because OpenPets is unavailable, MCP remains alive in degraded mode and `openpets_status` reports unavailable clearly. +- In degraded mode, `openpets_say` and `openpets_react` return MCP tool errors without crashing the server. +- MCP sends heartbeat while alive for an acquired lease. +- MCP releases its lease on graceful shutdown paths where practical: + - `SIGINT` + - `SIGTERM` + - normal process exit path + - stdio transport close when exposed by SDK/transport +- Desktop expires stale leases by TTL if MCP crashes or release is not delivered. +- Default pet remains persistent and is never auto-closed due to MCP lease release/expiry. +- Explicit non-default pet windows close after the last active lease for that pet ends/expires. +- Multiple MCP processes using the same explicit non-default pet keep one pet window open until all their leases end. +- Multiple MCP processes using the default pet do not close the default pet on release. +- Temporary explicit pet windows use local installed `spritesheet.webp` data URLs only; no remote images. +- Temporary explicit pet windows are draggable and basic-positioned without needing final multi-monitor polish. +- Operation is local-only; no TCP/HTTP. +- Public MCP tool set remains exactly `openpets_status`, `openpets_say`, `openpets_react`. +- No public MCP tool can install/remove/default pets, edit settings, access filesystem, run shell commands, or expose generic IPC. +- Automated checks cover lease state transitions, fallback behavior, TTL cleanup logic, and MCP status mapping. + +## Proposed files/directories + +Expected changes: + +```text +docs/phases/phase-06b-mcp-lease-lifecycle.md +apps/desktop/src/local-ipc-protocol.ts +apps/desktop/src/local-ipc.ts +apps/desktop/src/lease-manager.ts +apps/desktop/src/agent-pet-controller.ts +apps/desktop/src/pet-window.ts +apps/desktop/src/default-pet-controller.ts +apps/desktop/src/app-state.ts (only if helper accessors are needed) +apps/desktop/src/check-lease-manager.ts +packages/client/src/index.ts +packages/client/src/protocol.ts +packages/client/src/check-client-protocol.ts +packages/mcp/src/index.ts +packages/mcp/src/tools.ts +packages/mcp/src/check-mcp-contract.ts +``` + +Exact file split may change if implementation reveals a simpler structure. + +## Technical approach + +### Lease model + +Desktop app owns lease state in memory only. Leases are not persisted. + +Recommended in-memory shape: + +```ts +interface PetLease { + leaseId: string; + requestedPetId?: string; + targetKind: "default" | "explicit"; + actualPetId: string; + fallbackReason?: string; + acquiredAt: number; + lastHeartbeatAt: number; + expiresAt: number; +} +``` + +Initial timing: + +```text +heartbeat interval from MCP: 5 seconds +desktop lease TTL: 15 seconds +desktop cleanup interval: 5 seconds +``` + +Use generated random lease ids from desktop app. Do not trust client-provided lease ids for acquisition. + +Target-kind rules: + +- `targetKind: "default"` means tools route to the persistent default pet controller and release/expiry must never close the default pet. +- `targetKind: "explicit"` means tools route to a temporary explicit non-default pet window and release/expiry participates in explicit pet refcount cleanup. +- Fallback leases use `targetKind: "default"` even when the user requested an explicit pet. +- If the desktop default changes after a `targetKind: "default"` lease is acquired, that lease continues to target the live default controller. Status should report the live current default pet as actual target. + +### Desktop target resolution + +`lease.acquire` params: + +```json +{ + "requestedPetId": "snoopy" +} +``` + +Resolution rules: + +1. If no `requestedPetId`, actual pet is current default pet. +2. If requested pet is `builtin` or equals current default, actual pet is default pet and remains persistent. This check happens before installed-pet path helpers that reject `builtin`. +3. If requested pet exists, is installed, is not broken, and is not built-in/default, actual pet is requested pet and its temporary window opens. +4. If requested pet is missing/broken/invalid, actual pet is current default pet, `targetKind` is `default`, fallback reason is recorded, and status reports fallback. +5. If current default is somehow missing/broken, use built-in fallback. + +Fallback reasons must be short machine-readable codes, not raw exception text or local paths: + +```text +invalid_pet_id +pet_not_installed +pet_broken +default_broken_fallback_builtin +``` + +### IPC request/result contracts + +`lease.acquire` result includes: + +```json +{ + "leaseId": "random-id", + "requestedPetId": "snoopy", + "targetKind": "explicit", + "actualTargetPetId": "snoopy", + "actualTargetPetName": "Snoopy", + "usingDefaultPet": false, + "fallbackReason": null, + "expiresAt": 1234567890 +} +``` + +`lease.heartbeat` accepts `{ "leaseId": "random-id" }` and returns `{ "leaseId": "random-id", "expiresAt": 1234567890 }`. Unknown/expired lease heartbeat returns structured `unknown_lease` error and MCP marks context degraded/stale. + +`lease.release` accepts `{ "leaseId": "random-id" }` and returns `{ "released": true }`. Release is idempotent for shutdown races; unknown/already-released leases return `{ "released": false }`. + +`status` may accept `{ "leaseId": "random-id" }`. Known leases return target details. Unknown/expired leases return degraded/stale lease status without raw local errors. + +Stale status shape: + +```json +{ + "ok": false, + "appRunning": true, + "leaseId": "random-id", + "leaseActive": false, + "staleReason": "unknown_lease" +} +``` + +### Pet windows + +Current default pet window remains controlled by `default-pet-controller.ts`. + +Add a separate agent/leased pet controller for explicit non-default pets: + +- One `BrowserWindow` per explicit non-default pet id. +- Window uses a safe rendering helper that takes an explicit pet id and reads only local installed `spritesheet.webp` as a data URL. +- Initial position offsets from the default pet/primary work area so temporary pets do not fully overlap. +- Windows are always-on-top/frameless/transparent like default pet. +- Temporary pet windows use `showInactive` / non-focus-stealing behavior like the default pet. +- Position persistence for temporary agent pets is not required in Phase 06B. +- Close temporary window when no active lease targets that pet. + +Avoid storing remote URLs or absolute paths in durable state. + +### Local IPC protocol + +Extend Phase 05 request methods: + +```text +lease.acquire +lease.heartbeat +lease.release +pet.react +pet.say +``` + +`pet.react` and `pet.say` should accept optional `leaseId`; without a lease id they keep Phase 05 default-pet behavior for backward compatibility. + +Validation: + +- Lease id must be a known active lease for lease-scoped say/react. +- Unknown/expired lease id returns structured error. +- Say/reaction safety validation remains enforced in desktop IPC. +- Request byte limits/token/version validation remain unchanged. + +### Client package + +Add typed client helpers: + +```ts +client.acquireLease({ requestedPetId? }) +client.heartbeatLease(leaseId) +client.releaseLease(leaseId) +client.status({ leaseId? }) +client.react(reaction, { leaseId? }) +client.say(message, { reaction?, leaseId? }) +``` + +Keep existing Phase 05/06A call signatures backward-compatible where practical. + +### MCP package + +MCP startup flow: + +1. Parse CLI args. +2. Create MCP server and register tools. +3. Start a shared lease-initialization promise before or during server connection. +4. Connect stdio transport. +5. Tool handlers await the shared lease-initialization promise before using lease state, so tools cannot race ahead of acquisition. +6. If acquire succeeds, store lease context and start heartbeat timer. +7. If acquire fails, remain in degraded mode. + +Tool behavior: + +- `openpets_status` reports lease/degraded state. +- `openpets_say`/`openpets_react` require an active lease to target explicit/default pet; if no lease, return `isError: true` with clear unavailable guidance. + +Shutdown: + +- Clear heartbeat timer. +- Best-effort `lease.release` if a lease exists. +- Close MCP server. +- Do not rely on async work in Node `exit`; signals and transport close are the practical release paths. +- Heartbeat timer should be `unref()` where available so it does not keep an otherwise-dead MCP process alive. +- Heartbeat failures must be caught; unknown lease responses mark context degraded/stale. +- Heartbeat timer should stop after unknown/stale lease to avoid repeated failures. + +Do not write diagnostics to stdout. + +### Auto-launch + +Auto-launch of installed OpenPets desktop app remains deferred. It is important product behavior, but packaging/app discovery is not mature enough yet. Phase 06B focuses on lease lifecycle when the app is already running. + +## Risks and tradeoffs + +### Risk: phase grows into multi-pet architecture refactor + +Mitigation: + +- Keep Phase 06B to temporary explicit pet windows only. +- Do not implement user-pinned non-default pets beyond leases. +- Do not add persistent positions for temporary pets. +- Split again if full multi-pet manager changes become necessary. + +### Risk: orphaned windows after MCP crash + +Mitigation: + +- Desktop TTL cleanup is mandatory. +- MCP release is best-effort, not the only cleanup path. + +### Risk: wrong pet targeted + +Mitigation: + +- Desktop owns requested→actual resolution. +- `openpets_status` reports requested/configured and actual target. +- Missing/broken explicit pets fall back to default with reason. +- `targetKind` separates persistent default-controller routing from explicit temporary pet-window routing. + +### Risk: privacy/spam through lease-scoped speech + +Mitigation: + +- Reuse existing `pet.say` validation and speech settings. +- Keep transient message replacement behavior; no unbounded queue. + +## Security/privacy notes + +- Local-only IPC remains token/version protected. +- Lease ids are random, app-generated, and in-memory only. +- Fallback reasons are sanitized machine-readable codes only. +- No remote API. +- No shell execution. +- No pet installation/removal/default mutation exposed to agents. +- Speech safety rules still apply. +- No durable agent session state is persisted. + +## Test/check plan + +Automated checks: + +```bash +pnpm check +pnpm --filter @open-pets/desktop check +pnpm --filter @open-pets/client check +pnpm --filter @open-pets/mcp check +``` + +Phase 06B should add checks for: + +- Lease acquire default target. +- Lease acquire explicit installed target. +- Invalid CLI `--pet` string is passed to desktop fallback path when bounded. +- Missing/broken requested pet fallback. +- Heartbeat extends expiry. +- Heartbeat unknown lease returns structured stale/degraded behavior. +- Release removes lease. +- Release is idempotent for unknown/already-released lease. +- TTL cleanup expires stale lease. +- Status for expired lease reports stale/degraded behavior. +- Status/errors do not leak local paths/tokens/raw filesystem messages. +- Last lease release/expiry closes explicit temporary pet controller state. +- Multiple leases for same explicit pet keep that window until the final lease ends. +- Default pet lease release/expiry does not close persistent default pet. +- Unknown/expired lease id rejects lease-scoped say/react. +- MCP status maps configured/requested/actual/fallback/routing fields correctly. +- MCP say/react checks prove handlers wait for lease init and pass `leaseId` to the client. + +## Manual verification guide + +1. Start desktop: + + ```bash + pnpm --filter @open-pets/desktop dev + ``` + +2. Ensure at least one extra pet is installed from Pet Manager, for example `snoopy`. + +3. Run MCP without `--pet` in an MCP inspector/client: + + ```bash + node packages/mcp/dist/index.js + ``` + +4. Call `openpets_status`; confirm it reports the current default pet as actual target and `routingImplemented: true`. + +5. Call `openpets_react` / `openpets_say`; confirm the default pet reacts/says. + +6. Run MCP with explicit installed pet: + + ```bash + node packages/mcp/dist/index.js --pet snoopy + ``` + +7. Confirm Snoopy opens as a separate temporary pet window and status reports actual target `snoopy`. + +8. Call `openpets_react` / `openpets_say`; confirm Snoopy reacts/says, not the default pet. + +9. Stop the MCP process; confirm Snoopy closes after release/cleanup while the default pet remains. + +10. Start two MCP processes for the same explicit pet; confirm closing one keeps the temp pet open and closing both closes it. + +11. Hard-kill/abruptly close one MCP process for an explicit pet; wait for TTL cleanup and confirm the temp pet closes. + +12. Run MCP with missing pet: + + ```bash + node packages/mcp/dist/index.js --pet does-not-exist + ``` + +13. Confirm status reports fallback to default pet and tools affect the default pet. + +14. Run MCP with malformed-but-bounded pet input and confirm desktop fallback is reported rather than exposing local errors. + +Manual acceptance question: + +```text +Does Phase 06B pass on your machine: MCP startup acquires leases, --pet opens an installed non-default temporary pet, tools target the leased pet, missing pets fall back clearly, and release/TTL cleanup closes only temporary explicit pets? +``` + +## Oracle plan review + +Oracle reviewed the initial Phase 06B plan and approved the overall architecture, but blocked implementation until `--pet` fallback behavior and default-versus-explicit lease targeting were sharpened. + +## Oracle feedback disposition + +- Fixed: `@open-pets/mcp` should accept bounded raw `--pet` strings and let desktop validate/fallback, so invalid/uninstalled requested pets can follow product fallback behavior. +- Fixed: Added `targetKind: "default" | "explicit"` to distinguish persistent default-controller leases from explicit temporary pet-window leases. +- Fixed: Defined IPC/result contracts for acquire, heartbeat, release, and lease-scoped status. +- Fixed: Defined unknown heartbeat, idempotent release, and expired lease status behavior. +- Fixed: Required lease-initialization promise so tools cannot race ahead of startup acquisition. +- Fixed: Required heartbeat timer `unref()`, caught heartbeat failures, stale/degraded marking, and no reliance on async `exit` handlers. +- Fixed: Required sanitized machine-readable fallback reason codes only. +- Fixed: Required explicit-pet rendering helper that reads only local installed `spritesheet.webp` for a given pet id. +- Fixed: Expanded automated and manual tests for invalid `--pet`, release idempotency, unknown heartbeat, expired status, leakage prevention, multi-lease refcount, crash TTL cleanup, and default-pet persistence. +- Fixed: Defined exact raw `--pet` bounds and control/path/whitespace rejection before desktop fallback. +- Fixed: Defined stale `status({ leaseId })` response shape. +- Fixed: Required built-in/default requested ids to be special-cased before installed-pet path validation. +- Fixed: Clarified default-target leases report the live current default controller target if default changes after acquisition. +- Fixed: Required MCP say/react checks proving lease-init waiting and lease id forwarding. +- Fixed: Required temporary pet windows to use non-focus-stealing `showInactive` behavior. +- Fixed: Required heartbeat timer to stop after unknown/stale lease. + +Implementation review disposition: + +- Fixed: `LeaseManager.heartbeat()` and `get()` now reject/remove expired leases before cleanup can revive or use them. +- Fixed: MCP status now preserves stale/unknown lease state instead of reporting cached active leases. +- Fixed: MCP degraded reasons used in tool errors are sanitized before returning to agents. +- Fixed: Explicit leases preserve `targetKind: "explicit"` for their lifetime instead of downcasting if the pet later becomes default. +- Fixed: Explicit pet say/react respect paused and speech-disabled behavior through IPC before updating temporary windows. +- Fixed: Explicit pet rendering errors are caught/logged to avoid unhandled rejections. +- Fixed: `default_broken_fallback_builtin` fallback reason is emitted when the configured default is unusable. +- Fixed: Raw `--pet` bounds reject all control characters. +- Deferred: Additional transport-close release handling beyond signals remains useful, but current release plus desktop TTL cleanup is sufficient for Phase 06B manual verification. +- Fixed: MCP status prefers live desktop lease status fields over cached acquire-time lease data when available. +- Fixed: Unavailable/degraded MCP status still reports `routingImplemented: true` for Phase 06B. +- Fixed: MCP help text now describes real `--pet` routing and fallback instead of stale Phase 06A behavior. +- Fixed: Added best-effort release on stdio transport close in addition to signal handling. diff --git a/docs/phases/phase-07-claude-detection-configuration.md b/docs/phases/phase-07-claude-detection-configuration.md new file mode 100644 index 00000000..c7ddbfab --- /dev/null +++ b/docs/phases/phase-07-claude-detection-configuration.md @@ -0,0 +1,330 @@ +# Phase 07: Claude Code Detection and MCP Configuration + +## Goal + +Implement the first real Agent Setup experience for Claude Code: detect whether Claude Code appears available, show current OpenPets MCP configuration status, preview the exact MCP configuration command/file shape, and apply/remove a safe MCP configuration only after explicit user confirmation. + +This phase makes Claude Code usable with the Phase 06 MCP lease routing path. It does not implement Claude hooks yet. + +## Non-goals + +- No Claude hook install, uninstall, or hook event handling. That belongs in Phase 08. +- No Cursor, VS Code, Windsurf, OpenCode, or Antigravity configuration. +- No automatic silent edits during onboarding or app launch. +- No agent-managed pet installation/removal/default-pet changes. +- No attempt to parse or preserve every undocumented field in Claude's internal `~/.claude.json`; prefer official CLI commands for writes. +- No auto-launch of Claude Code itself. + +## User-visible/manual outcome + +From the tray menu, **Configure Agents...** opens a real Claude Code setup window instead of a placeholder. The user can: + +- See Claude Code as detected, not detected, configured, needs setup, or error. +- See the OpenPets MCP command that will be configured. +- Choose default-pet routing or an explicit installed pet for the Claude MCP server. +- Run a doctor/check to see actionable status. +- Click Configure only after seeing the planned change. +- Remove the OpenPets MCP entry if it was configured by OpenPets. + +## Acceptance criteria + +- Agent Setup window has a Claude Code card with clear status: + - `Detected` + - `Not detected` + - `Configured` + - `Needs setup` + - `Error / needs attention` +- Detection is best-effort and non-invasive: + - Check for a usable `claude` binary on `PATH` via `claude --version` with a short timeout. + - Check MCP status using `claude mcp list` with a short timeout when Claude is available. + - If Claude is missing or commands fail, report actionable text without crashing the app. +- Configuration target for Phase 07 is Claude Code user scope using the official CLI: + - `claude mcp add --scope user openpets -- npx -y @open-pets/mcp` + - With explicit pet: `claude mcp add --scope user openpets -- npx -y @open-pets/mcp --pet ` +- Preview shows the exact command and the equivalent intended MCP JSON shape before applying. +- Configure requires an explicit button click in the UI. +- Removal requires an explicit button click in the UI and uses: + - `claude mcp remove --scope user openpets` +- Remove is enabled only when Claude reports an `openpets` MCP entry. If the entry cannot be verified as OpenPets-managed, the UI must warn that it will remove any Claude MCP server named `openpets`. +- Config operations are conservative and idempotent where Claude exposes enough detail: + - If Claude reports an `openpets` MCP entry and a detail command/output lets OpenPets verify the command/args match, Configure reports already configured / no change. + - If Claude only reports `openpets` as present but does not expose reliable command/arg detail, Configure reports `Configured / needs manual verification` rather than replacing it. + - If an `openpets` MCP entry exists but differs or cannot be verified, OpenPets must not automatically remove it. The UI must show a separate Replace action with a strong warning before remove-then-add. + - If Replace removes an entry but add fails, OpenPets shows a clear failure and the action journal contains the previous detected summary and intended restore command; no OAuth/session config restoration is attempted. +- Backups/restore behavior is defined and implemented for the files OpenPets directly edits. + - Because Phase 07 writes via the Claude CLI rather than directly editing `~/.claude.json`, OpenPets should not create a misleading full backup of that internal file by default. + - OpenPets records a local configuration action journal with timestamp, command preview, selected pet, and previous detected status where available. + - Restore behavior for Phase 07 is removal of the OpenPets MCP server entry through `claude mcp remove --scope user openpets`; it does not attempt to restore OAuth/session internals. +- Doctor/check reports: + - Whether `claude` is found. + - Whether `claude --version` works. + - Whether `claude mcp list` works. + - Whether an `openpets` MCP entry appears present. + - What command OpenPets expects. + - That Claude Code may need restart/reload for MCP changes to take effect. +- UI is CSP-safe and uses Electron IPC handlers with sender checks. +- Renderer/main IPC is narrow: renderer sends only action names and `{ selectedPetId?: string }`; main constructs argv, revalidates selected pet against installed non-broken pets, and enforces sender checks for the Agent Setup window. +- Configure/remove/replace operations are serialized so concurrent clicks cannot run overlapping Claude CLI commands. +- Automated checks cover command construction, pet id argument handling, status parsing, and timeout/error classification. +- `pnpm check` passes. + +## Proposed files/directories + +- `packages/claude/src/index.ts` + - Export Claude Code setup/detection helpers. +- `packages/claude/src/claude-code.ts` + - `detectClaudeCode`, `buildClaudeMcpAddCommand`, `buildClaudeMcpRemoveCommand`, `parseClaudeMcpList`, status types. +- `packages/claude/src/check-claude-code.ts` + - Node-based contract checks for command construction/status parsing. +- `packages/claude/package.json` + - Include build/check script updates. +- `apps/desktop/src/agent-setup.ts` + - Desktop orchestration for running Claude commands, timeouts, and local action journal. +- `apps/desktop/src/windows.ts` + - Replace Agent Setup placeholder with real Claude setup UI and preload access. +- `apps/desktop/preload.cjs` + - Expose narrow `openpetsAgentSetup` methods to renderer, separate from broader app/window APIs. +- `apps/desktop/src/app-state.ts` or adjacent state helper + - Persist lightweight agent setup status/action journal if needed. +- `docs/phases/phase-07-claude-detection-configuration.md` + +## Technical approach + +### Scope: Claude Code user-scope MCP only + +Phase 07 configures the universal MCP path already built in Phase 06: + +```text +Claude Code → @open-pets/mcp → @open-pets/client → desktop IPC → pet lease +``` + +Use a single MCP server name: + +```text +openpets +``` + +Use user scope first because OpenPets is a personal companion integration and should not silently create team/project files. Project-scoped `.mcp.json` and per-project pet choices can be documented later. + +### Detection + +Detection runs from the desktop main process, never from the sandboxed renderer. + +Best-effort command sequence: + +1. Resolve `claude` from `PATH` by running `claude --version`. +2. If `claude` is not found, try common platform locations only as non-invasive hints: + - macOS GUI apps may have a reduced `PATH`; include common Homebrew/npm paths such as `/opt/homebrew/bin`, `/usr/local/bin`, and inherited `PATH` entries. + - Windows may expose `claude.cmd`; command resolution should try `claude` and `claude.cmd` where appropriate. +3. Run `claude mcp list` if version works. +4. If an official/detail command is available and works (for example `claude mcp get openpets` or a future JSON output), use it to verify command/args. Otherwise treat list output as present/absent only. +5. Parse output conservatively for an `openpets` entry. +6. Return a structured result to the UI. + +Each child process should: + +- Have a short timeout, initially 3 seconds. +- Kill the child process on timeout and classify the result as timeout, not as a generic error. +- Capture bounded stdout/stderr. +- Avoid shell interpolation by using `spawn`/`execFile`-style argv arrays. +- Never include secrets in UI text. + +### Command construction + +Centralize command construction in `@open-pets/claude` so tests can verify it without Electron: + +Default pet: + +```bash +claude mcp add --scope user openpets -- npx -y @open-pets/mcp +``` + +Explicit pet: + +```bash +claude mcp add --scope user openpets -- npx -y @open-pets/mcp --pet snoopy +``` + +Removal: + +```bash +claude mcp remove --scope user openpets +``` + +Pet id values come from installed OpenPets pet ids in app state, not free-form UI entry. This avoids quoting/shell-injection complexity and aligns with the product rule that agents do not install/remove pets. + +### Preview + +Before applying, show: + +- Human summary. +- Exact argv-style command. +- Equivalent intended MCP JSON shape: + +```json +{ + "mcpServers": { + "openpets": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@open-pets/mcp"] + } + } +} +``` + +With explicit pet: + +```json +"args": ["-y", "@open-pets/mcp", "--pet", "snoopy"] +``` + +### Applying changes + +Use Claude Code's official CLI rather than directly editing `~/.claude.json`: + +- Configure new entry: `claude mcp add --scope user openpets -- ...` +- Update existing differing or unverifiable entry: only through a separate explicit Replace action with warning text. +- Remove OpenPets entry: `claude mcp remove --scope user openpets`. + +If configure/remove commands fail before making changes, show the sanitized stderr/stdout summary and leave state unchanged. + +Exception: Replace is a two-step remove-then-add flow. If remove succeeds but add fails, Claude config has already changed; the UI must state that the previous `openpets` entry was removed and show the intended restore/add command from the action journal. + +The UI should include a **Copy command** fallback so users can apply configuration manually if Claude CLI invocation from the Electron app fails because of PATH, permissions, or shell environment differences. + +### Action journal and restore + +Because user-scope MCP config lives inside Claude's internal `~/.claude.json`, which may include OAuth/session/private state, Phase 07 should not copy the whole file into OpenPets backups by default. + +Instead, persist an OpenPets-local action journal entry for each attempted configuration/removal: + +- timestamp +- action: configure/update/replace/remove +- selected pet id or default +- command argv preview +- detected previous OpenPets status, if known +- success/failure and sanitized message + +Location: + +```text +/agent-setup-actions.json +``` + +Journal entries must be bounded and sanitized: + +- Keep only the latest 20 entries. +- Store argv arrays and OpenPets status labels. +- Store sanitized output summaries capped at 500 characters. +- Do not store raw Claude config files, OAuth/session data, full stdout/stderr, home-directory paths, tokens, or environment variables. + +During implementation, verify current `claude mcp` CLI syntax against official docs/help output before wiring writes. If a detail/get command or output format is unavailable or unexpected, fail closed: classify the entry as present but unverifiable and require manual review/Replace rather than assuming ownership. + +Restore path in Phase 07 is explicit uninstall/remove of the OpenPets MCP entry via Claude CLI. + +### UI shape + +Agent Setup can stay lightweight and inline-data-URL based for now, matching existing Pet Manager/Settings style: + +- Header: Configure Agents +- Claude Code card +- Status badge and details +- Pet selection dropdown: Default pet + installed non-broken pets +- Preview box +- Buttons: Refresh / Doctor, Configure, Remove +- If an existing `openpets` MCP entry is present but unverifiable/different, show a separate Replace action with stronger warning copy instead of silently changing it. +- Copy command fallback. +- Note: restart Claude Code if MCP changes do not appear immediately. + +## Risks and tradeoffs + +- Claude Code config behavior can change. Mitigation: use official CLI commands where possible and keep parsing conservative. +- `claude mcp list` output may not be stable. Mitigation: use it for status hints only; failed parsing reports needs manual check rather than corrupting config. +- Existing user config could be lost if OpenPets blindly removes an `openpets` entry. Mitigation: no automatic replacement; require explicit Replace with warning and action journal. +- User-scope config is personal and may contain secrets. Mitigation: do not directly edit or back up full `~/.claude.json` in Phase 07. +- `npx -y @open-pets/mcp` may use a published package in real installs, while local dev uses workspace packages. Mitigation: Phase 07 config preview targets the final product command; manual dev verification can inspect command preview without requiring published package behavior. +- Windows may need command resolution differences. Mitigation: command discovery tries platform variants, uses argv arrays, and includes Windows samples in checks. + +## Security/privacy notes + +- No shell string execution for user-controlled values. +- Pet choice is constrained to installed pet ids from app state. +- Renderer gets only narrow IPC methods for agent setup. +- Main process revalidates selected pet id and never trusts renderer-supplied command/argv. +- Sanitize child-process output before showing it in UI; bound max displayed length. +- Do not expose Claude config file contents or OAuth/session material in UI or logs. +- No silent configuration changes; user must click Configure/Remove. + +## Test/check plan + +- `packages/claude` contract checks: + - command argv for default pet. + - command argv for explicit pet. + - remove argv. + - equivalent JSON preview. + - MCP list parsing for present/missing/error-ish samples. + - unverifiable existing entry classification. + - Windows/macOS command discovery/path sample helpers where factored. + - invalid/free-form pet id rejection when using helper directly. +- Desktop checks: + - Agent setup IPC renderer sender restrictions. + - Command result timeout/error classification helper if factored separately. + - Action journal redaction/bounds if factored separately. +- Workspace: + - `pnpm check` + +## Manual verification guide + +After implementation: + +1. Run `pnpm check`. +2. Start desktop: `pnpm --filter @open-pets/desktop dev`. +3. Open tray → **Configure Agents...**. +4. Confirm Claude Code status appears and does not crash whether Claude is installed or not. +5. Choose default pet and inspect preview. +6. Choose an installed non-default pet and confirm preview adds `--pet `. +7. Use Copy command to verify the manual fallback text is correct. +8. Click Configure only if you are comfortable modifying your Claude Code user MCP config. +9. Run `claude mcp list` separately and confirm `openpets` appears. +10. If using an unpublished local package, do not expect a real Claude session to load `npx -y @open-pets/mcp` until the package is available; treat command/config preview and `claude mcp list` as the Phase 07 verification target. +11. Restart/open Claude Code and confirm OpenPets MCP tools appear only if the package is published or your dev environment routes the package name locally. +12. Click Remove and confirm `claude mcp list` no longer shows `openpets`. +13. Optional safer test: create a fake `claude` executable earlier in `PATH` that records argv and returns sample `mcp list` output; launch the desktop app from that terminal so the modified `PATH` is inherited; use it to verify missing Claude, successful add, failed add, existing entry, replace warning, and remove flows without touching real Claude config. + +Expected results: + +- Detection and doctor statuses are actionable. +- Preview matches the command OpenPets runs. +- Configure/remove are explicit and idempotent. +- OpenPets does not edit Claude config silently. + +## Oracle plan review + +Reviewed. Oracle found the phase boundary and official-CLI direction sound, but flagged two blockers: + +- Idempotency/update detection was underspecified because `claude mcp list` may not reliably prove command/args match. +- Remove-then-add could lose an existing user `openpets` config if add fails. + +Oracle also requested clearer remove semantics, platform command discovery, stricter renderer/main IPC rules, action journal schema/location, operation locking/timeouts, safer manual verification, and not promising real MCP tools appear before package publishing/dev override exists. + +## Oracle feedback disposition + +Fixed: + +- Weakened idempotency to verified-detail-only and present/absent otherwise. +- Added explicit Replace action for unverifiable/different existing entries; no automatic remove-then-add. +- Defined Remove warning semantics for unverifiable entries. +- Added macOS GUI PATH and Windows `claude.cmd` discovery considerations. +- Tightened renderer/main IPC boundary and main-process pet revalidation. +- Added action journal location/schema/redaction/bounds. +- Added `replace` to the action journal action schema and clarified Replace add-failure state. +- Added operation serialization and timeout kill behavior. +- Added Copy command fallback and safer fake-CLI/manual verification guidance. +- Clarified that real Claude MCP tools require published package or dev package routing. + +Fixed after re-review: + +- Clarified that Replace can change Claude config if remove succeeds and add fails, and must show restore/add guidance rather than claiming state is unchanged. +- Required implementation-time verification of current `claude mcp` CLI syntax/help and fail-closed behavior for unavailable/unexpected detail output. +- Clarified Agent Setup preload should be narrow/separate and fake-CLI testing requires launching desktop from a terminal with modified `PATH`. diff --git a/docs/phases/phase-08-claude-enhanced-hooks.md b/docs/phases/phase-08-claude-enhanced-hooks.md new file mode 100644 index 00000000..debdd967 --- /dev/null +++ b/docs/phases/phase-08-claude-enhanced-hooks.md @@ -0,0 +1,371 @@ +# Phase 08: Claude Enhanced Hooks + +## Goal + +Make Claude Code feel polished by adding safe global Claude hooks that send automatic OpenPets reactions and short local speech through `@open-pets/claude` and `@open-pets/client`. + +This phase builds on Phase 07's Claude Code detection/MCP configuration UI. Phase 08 should let the user install, doctor, and uninstall OpenPets-managed Claude hooks with explicit confirmation and backups. + +## Non-goals + +- No direct changes to Claude MCP configuration beyond what Phase 07 already provides. +- No Cursor, VS Code, Windsurf, OpenCode, or Antigravity hooks. +- No model-generated speech. +- No displaying user prompt text, code, logs, file paths, command text, transcript contents, or tool input in pet speech. +- No blocking/denying Claude actions. OpenPets hooks are decorative/status-only and should fail open. +- No shell scripts, Unix-only sockets, `nc`, `/tmp` socket paths, or Bun runtime dependency. +- No durable persistence of Claude session payloads or transcripts. + +## User-visible/manual outcome + +From **Configure Agents...**, the Claude Code card gains enhanced hook controls: + +- Hook status: not installed / installed / needs update / error. +- Preview of the exact hook entries OpenPets will add to Claude user settings. +- Install hooks with explicit confirmation and backup. +- Doctor/check hooks. +- Uninstall OpenPets-managed hooks only. + +In a real Claude Code session, the pet reacts automatically: + +- User prompt submitted → thinking, occasional short thinking speech. +- Tool use → editing/running/testing reaction, usually silent. +- Permission request → waiting reaction + clear approval message. +- Notification → waiting/attention reaction, silent by default. +- Stop → success reaction + occasional short success speech. +- Stop failure → error reaction + occasional short error speech. + +## Acceptance criteria + +- `@open-pets/claude` exposes a Node/npm/npx-friendly hook entry point, for example: + - `open-pets-claude hook` + - final published/dev preview command may be displayed as `npx -y @open-pets/claude hook` until packaging decides global/local binary details. +- Hook command reads Claude hook JSON from stdin with a strict byte limit and timeout-friendly behavior. +- Hook command never blocks Claude intentionally: + - returns exit code 0 for handled, ignored, and degraded OpenPets-unavailable cases. + - only uses non-zero exit for unrecoverable CLI/runtime invocation errors before hook handling begins. +- Hook command stdout is always empty, including `UserPromptSubmit`, because Claude may ingest stdout as context. +- Installed hook entries must not synchronously block Claude for decorative status updates: + - use Claude hook `"async": true` where supported. + - keep timeout short, initially 3 seconds. + - if async hooks are not supported by the installed Claude version, doctor/install must warn and fail closed rather than installing cold-start `npx` hooks on high-frequency events. + - future packaging may replace `npx` with a faster local/bundled binary, but Phase 08 should not rely on synchronous `npx` for `PreToolUse`. +- Hook command sends OpenPets events through `@open-pets/client` only; no direct socket/manual JSON writes. +- Hook mapping handles the selected Claude hook events and ignores all others safely: + - `UserPromptSubmit` → `thinking` + selective speech. + - `PreToolUse` → `editing`, `testing`, `running`, or `working` based on `tool_name` and safe classification of `tool_input`. + - `PermissionRequest` → `waiting` + fixed approval speech. + - `Notification` → `waiting` by default, no speech. + - `Stop` → `success` + selective speech. + - `StopFailure` → `error` + selective speech. +- If Claude event names differ on an installed Claude version, unknown events are ignored safely and surfaced in doctor output where possible. +- Speech uses local static message pools/templates only. +- Speech safety rules are enforced: + - max 140 characters. + - single-line only. + - no code blocks/code-like snippets. + - no URLs. + - no absolute/relative path-like content. + - no secret-looking values. + - never include raw user prompt/tool input/assistant response/transcript content. +- Speech is throttled/selective: + - no speech on `PreToolUse` or `Notification` by default. + - permission speech always allowed subject to a short cooldown to avoid duplicates. + - lifecycle speech has a cooldown, initially at least 20 seconds per category. + - throttle state is ephemeral and stored outside Claude settings, with bounded size and no payload content. +- Hooks route through the default OpenPets desktop route in Phase 08: + - Because Claude hooks do not reliably know the active MCP lease id, they call `react`/`say` without `leaseId` and therefore affect the desktop default pet. + - Future lease-aware Claude routing is explicitly deferred until a reliable session↔lease correlation is available. +- Global hook installation targets Claude Code user settings: + - default path `~/.claude/settings.json` only for Phase 08. + - do not honor `CLAUDE_CONFIG_DIR` unless a later phase verifies it is official/current Claude Code behavior. + - creates a timestamped backup before writing. + - validates settings is a JSON object before modifying. + - settings path must be missing or a regular file; abort on symlink/special file surprises. + - create parent directory with restrictive permissions where practical. + - write temp file with restrictive permissions where practical before atomic rename. + - preserves unrelated settings and unrelated hooks. + - installs only clearly OpenPets-managed command hooks. + - uninstall/update matching requires the `--openpets-managed` marker; package-name-only matching is not enough. + - idempotent reinstall/update. + - atomic write where practical. +- Uninstall removes only OpenPets-managed hook commands and leaves unrelated user/project hooks intact. +- Agent Setup UI shows hook status, preview, install/update, doctor, and uninstall controls with explicit warning that hooks execute commands from Claude Code, are global user-scope across Claude projects, and route to the OpenPets default pet in Phase 08. +- Agent Setup provides a local dev command toggle so manual testing can install Claude MCP/hooks against this checkout's built `dist` files instead of published `npx` packages: + - production MCP: `npx -y @open-pets/mcp ...` + - local MCP: `node /packages/mcp/dist/index.js ...` + - production hooks: `npx -y @open-pets/claude hook --openpets-managed` + - local hooks: `node /packages/claude/dist/cli.js hook --openpets-managed` +- Automated checks cover hook payload parsing, event mapping, speech safety, throttling decisions, settings merge/uninstall behavior, and command preview. +- `pnpm check` passes. + +## Proposed files/directories + +- `packages/claude/package.json` + - Add `bin` for `open-pets-claude`. + - Ensure check builds and validates hooks. +- `packages/claude/src/cli.ts` + - CLI dispatcher for `hook`, `doctor-hooks`, maybe install/uninstall helpers used by desktop/tests. +- `packages/claude/src/hooks.ts` + - Hook payload parsing, event mapping, client calls, speech selection/throttling. +- `packages/claude/src/hook-messages.ts` + - Static local speech pools. +- `packages/claude/src/hook-settings.ts` + - Claude settings path resolution, backup, merge, preview, uninstall, doctor helpers. +- `packages/claude/src/check-claude-hooks.ts` + - Contract checks. +- `packages/claude/src/index.ts` + - Export hook helpers for desktop. +- `apps/desktop/src/agent-setup.ts` + - Add hook status/preview/install/doctor/uninstall orchestration and action journal entries. +- `apps/desktop/src/windows.ts` + - Add hook section to Claude Code card. +- `apps/desktop/preload.cjs` + - Add narrow hook actions through `openpetsAgentSetup`. +- `docs/phases/phase-08-claude-enhanced-hooks.md` + +## Technical approach + +### Hook command behavior + +Claude Code command hooks receive JSON on stdin. The OpenPets hook command should: + +1. Read stdin up to a strict limit, initially 64 KiB. +2. Parse JSON defensively. +3. Determine `hook_event_name` and safe metadata such as `tool_name`. +4. Map to an OpenPets reaction and optional static speech. +5. Send via `createOpenPetsClient({ connectTimeoutMs: 500, responseTimeoutMs: 500 })`. +6. Swallow OpenPets-unavailable errors and exit 0. + +The command should write debug output only to stderr when `OPENPETS_DEBUG=1`; stdout must stay empty so Claude does not receive unintended context. + +### Event mapping + +Initial mapping: + +```text +UserPromptSubmit → react thinking; maybe say thinking pool +PreToolUse Edit → react editing +PreToolUse Write → react editing +PreToolUse MultiEdit → react editing +PreToolUse Bash with test-ish command → react testing +PreToolUse Bash otherwise → react running +PreToolUse other tool → react working +PermissionRequest → say "Approval needed" with waiting reaction +Notification → react waiting; no speech +Stop → say success pool with success reaction +StopFailure → say error pool with error reaction +unknown → no-op +``` + +Tool input is used only for classification, never copied into speech. + +### Speech pools + +Use local, short, safe strings. Example categories: + +```text +thinking: "Thinking it through", "Let me check", "On it" +success: "Done", "That worked", "All set" +error: "Something failed", "Needs another look", "Hit a snag" +permission: "Approval needed" +``` + +Selection should be deterministic enough for tests but varied at runtime, for example injectable random source in tests. + +### Throttling + +Throttle state should not include hook payload content. Store only timestamps/counters by category in an OpenPets-owned file, for example: + +Use a pure Node cross-platform path because the hook runs outside Electron: + +```text +macOS/Linux: ${XDG_STATE_HOME:-~/.local/state}/openpets/claude-hook-throttle.json +Windows: %LOCALAPPDATA%\OpenPets\claude-hook-throttle.json +fallback: os.tmpdir()/openpets-/claude-hook-throttle.json +``` + +Requirements: + +- Bounded JSON object. +- Atomic best-effort write. +- Safe if missing/corrupt. +- No hard failure if throttle storage cannot be read/written. + +### Settings install/update/uninstall + +Use Claude Code user settings: + +```text +~/.claude/settings.json +``` + +Hook config shape should follow current Claude docs: + +```json +{ + "hooks": { + "UserPromptSubmit": [ + { + "hooks": [ + { + "type": "command", + "command": "npx -y @open-pets/claude hook --openpets-managed", + "timeout": 3, + "async": true, + "asyncRewake": false + } + ] + } + ] + } +} +``` + +Use one OpenPets-managed command per event with the stable `--openpets-managed` marker in the command so uninstall can safely identify owned hooks. + +Install algorithm: + +1. Resolve settings path to `~/.claude/settings.json`. +2. Read existing file if present; missing file becomes `{}`. +3. Refuse symlink/special-file settings paths; allow missing or regular file only. +4. Validate top-level JSON object. +5. Validate `hooks` is absent or object; if malformed, abort and ask user to fix manually. +6. Verify Claude hook async support from current docs/known behavior and local checks where practical. If no reliable local check exists, install may proceed based on documented support but doctor must warn when support is uncertain. +7. Create backup before write: `settings.json.openpets-backup-YYYYMMDD-HHMMSS.json`. +8. Remove previous OpenPets-managed hook commands. +9. Add current OpenPets-managed async hook entries. +10. Atomic write temp file + rename. + +Uninstall algorithm: + +1. Resolve/read/validate settings. +2. Backup before write. +3. Remove only hook commands containing the `--openpets-managed` marker. +4. Prune empty arrays/objects created by OpenPets where safe. +5. Atomic write. + +Doctor should report: + +- settings path. +- whether file exists and parses. +- whether hooks object is valid. +- installed/up-to-date/needs update/not installed. +- backup path from last install/uninstall if applicable. +- whether OpenPets desktop IPC is reachable. +- reminder that Claude hooks require trusted workspaces and Claude restart/reload if settings were changed. + +### Agent Setup UI + +Add an **Enhanced Claude hooks** section to the existing Claude Code card: + +- Status badge. +- Preview JSON snippet. +- Buttons: Doctor hooks, Install/Update hooks, Uninstall hooks. +- Warning copy: Claude hooks execute command hooks automatically; OpenPets-managed hooks are status-only, fail open, and do not inspect/store code content. +- Local dev command toggle shared with the MCP setup preview/actions. + +## Risks and tradeoffs + +- Claude hook schemas/events can change. Mitigation: parse defensively, ignore unknowns, document event contract, keep doctor actionable. +- Hooks are command execution. Mitigation: explicit confirmation, preview, OpenPets marker, uninstall, backups, no silent edits. +- Direct settings edits can corrupt user config if careless. Mitigation: validate JSON object, backup, atomic writes, preserve unrelated keys, abort on malformed hooks. +- `npx -y @open-pets/claude hook` may be slow for frequent hooks. Mitigation: no speech on high-frequency tool events; hook timeout 3 seconds; future packaging can switch command to bundled/local binary. +- Hooks may be skipped in untrusted Claude workspaces. Mitigation: doctor/manual guide documents trust requirement. +- Session-to-MCP-lease routing is ambiguous. Mitigation: Phase 08 explicitly routes hook events to default pet; MCP per-project pet routing remains available through tools/leases. + +## Security/privacy notes + +- Never include raw Claude payload content in speech. +- Do not read transcript files. +- Do not store hook payloads, prompts, tool inputs, assistant messages, cwd, transcript paths, or session ids in durable logs. +- Debug logs, if enabled, must be minimal and sanitized. +- Hook stdout must stay empty; use stderr for debug only when `OPENPETS_DEBUG=1`. +- Hook commands must fail open and avoid blocking user work. +- Settings installer must preserve unrelated hooks and avoid removing anything not OpenPets-managed. +- Hook settings must be async/background; do not install synchronous cold-start `npx` hooks for high-frequency events. +- Speech safety filters should reuse or match MCP speech safety rules. + +## Test/check plan + +- `packages/claude` checks: + - hook event mapping fixtures for each accepted event. + - malformed/oversized stdin handling. + - speech safety rejects code/path/url/secret/multiline/overlength content. + - throttling allows/blocks expected categories without storing payload content. + - settings install preview/merge preserves unrelated settings and hooks. + - settings reinstall is idempotent. + - settings uninstall removes only OpenPets-managed hooks. + - malformed settings/hook object aborts safely. + - symlink/special-file settings path aborts safely. + - generated hook config includes `--openpets-managed`, `timeout: 3`, and `async: true`. + - published/local command previews for MCP and hooks. +- Desktop checks: + - Agent Setup hook action validation/sender restrictions where practical. +- Workspace: + - `pnpm check` + +## Manual verification guide + +After implementation: + +1. Run `pnpm check`. +2. Start desktop: `pnpm --filter @open-pets/desktop dev`. +3. Open tray → **Configure Agents...**. +4. In Claude Code, confirm MCP is configured from Phase 07 or configure it now. +5. Inspect Enhanced Claude hooks preview. + For local checkout testing, enable **Use local dev commands** and confirm previews use `node .../packages/mcp/dist/index.js` and `node .../packages/claude/dist/cli.js` instead of `npx`. + Local dev mode writes absolute checkout paths into Claude config; uninstall or replace it before moving/deleting the checkout. +6. Click Doctor hooks and confirm it reports settings status clearly. +7. Click Install/Update hooks only if okay modifying `~/.claude/settings.json`. +8. Confirm a backup file was created next to Claude settings. +9. Confirm malformed settings are reported safely by temporarily testing against a fake settings path in checks or a controlled test profile, not by corrupting your real settings. +10. Confirm unrelated hook entries remain after install/update. +11. Confirm reinstall is idempotent. +12. Start/restart Claude Code in a trusted workspace. +13. Invoke a hook command with a stdin fixture directly, for example a `UserPromptSubmit` fixture, and confirm it exits 0 with empty stdout even if OpenPets desktop is unavailable. + Example after build: `printf '{"hook_event_name":"UserPromptSubmit","prompt":"hello"}' | node packages/claude/dist/cli.js hook --openpets-managed`. +14. Submit a real prompt and confirm the pet reacts thinking with occasional safe speech. +15. Run/edit/test from Claude and confirm reactions change without noisy speech. +16. Trigger a permission request and confirm waiting + approval message. +17. Finish a response and confirm success speech/reaction. +18. If possible, trigger a failing turn and confirm error reaction/speech. +19. Quit OpenPets desktop and confirm Claude hooks do not break Claude Code. +20. Return to Agent Setup and click Uninstall hooks. +21. Confirm OpenPets-managed hook entries are removed, uninstall is idempotent, and unrelated Claude settings remain. + +Expected results: + +- Hooks are explicit, reversible, and backed up. +- Backups may contain user-sensitive Claude settings; keep them local/private. +- Pet reactions feel automatic and non-spammy. +- Speech is short, local, safe, and never includes private prompt/tool content. +- Broken/missing OpenPets desktop app does not break Claude Code. + +## Oracle plan review + +Reviewed. Oracle found the phase boundary sound but flagged one blocker: + +- Decorative hooks cannot rely on synchronous cold-start `npx`, especially for frequent `PreToolUse`; hook entries must be async/background or use a fast local binary. + +Oracle also requested: marker in examples, no `CLAUDE_CONFIG_DIR` until verified, UI warnings about global/default-pet routing, pure Node throttle path, regular-file/no-symlink settings hardening, selected-events wording, and expanded manual verification. + +## Oracle feedback disposition + +Fixed: + +- Required `async: true` hook entries with short timeout and fail-closed install if async support is unavailable/uncertain. +- Added `--openpets-managed` marker to preview/config examples. +- Removed `CLAUDE_CONFIG_DIR` support from Phase 08 scope. +- Added UI warning requirement for global user-scope hooks and Phase 08 default-pet routing. +- Defined pure Node cross-platform throttle-state path. +- Added settings path hardening: missing/regular file only, abort symlink/special files, restrictive permissions where practical. +- Clarified Phase 08 handles selected Claude events and ignores others safely. +- Expanded tests/manual verification for malformed settings, unrelated hooks preservation, idempotency, unavailable desktop, stdin fixture invocation, and uninstall idempotency. + +Fixed after re-review: + +- Required empty hook stdout for all events. +- Clarified async support verification may rely on documented support with doctor warning if no reliable local check exists. +- Tightened uninstall/update matching to require `--openpets-managed` marker. +- Added `asyncRewake: false` to generated config, stdin fixture command example, and backup privacy note. diff --git a/docs/phases/phase-08c-test-harness-regression-pack.md b/docs/phases/phase-08c-test-harness-regression-pack.md new file mode 100644 index 00000000..ec43c227 --- /dev/null +++ b/docs/phases/phase-08c-test-harness-regression-pack.md @@ -0,0 +1,192 @@ +# Phase 08C: Test Harness and Regression Pack + +## Goal + +Add a lightweight, explicit test workflow for OpenPets before Phase 09 onboarding glues together pet management, MCP routing, Claude setup, and hooks. + +The project already has useful `check-*.ts` contract checks. This phase standardizes how those checks are run, adds a top-level `pnpm test`, and expands regression coverage around the riskiest recent features without introducing a heavy test stack prematurely. + +## Non-goals + +- No full Electron UI automation yet. +- No Playwright/Spectron-style end-to-end suite. +- No large migration to a test framework unless a clear gap appears. +- No broad refactors of feature code solely to satisfy tests. +- No network-dependent tests. +- No tests that mutate real Claude user settings, real pet installs, or real desktop app state. + +## User-visible/manual outcome + +Developers can run: + +```bash +pnpm test +pnpm check +``` + +and get clear regression coverage for core OpenPets behavior. `pnpm check` remains the pre-commit/phase gate; `pnpm test` becomes the focused regression test command. + +## Acceptance criteria + +- Root package has a `test` script. +- These packages get `test` scripts in this phase because they already have meaningful contract checks: + - `apps/desktop` + - `packages/client` + - `packages/mcp` + - `packages/claude` +- Packages without meaningful runtime checks yet may keep `test` as type/build-only or omit it with a documented reason: + - `packages/cli` + - `packages/pet-format` +- Existing `check-*.ts` files are either: + - included in package `test`, or + - clearly kept in `check` with `test` delegating to them. +- Package tests run against fresh built artifacts. Either package `test` builds first, or root `pnpm test` builds before invoking tests. Avoid stale `dist` false positives. +- Prefer `check = typecheck + build + test` at each package so `check` cannot drift away from regression tests. +- `pnpm check` still passes. +- `pnpm test` passes. +- Tests are deterministic and do not require: + - a running Electron app. + - a real Claude installation. + - network access. + - writes to real `~/.claude/settings.json`. + - writes to real OpenPets user data, except via isolated temp directories or pure in-memory checks. +- Tests using temp directories clean them up and do not depend on the current working directory except explicit repo-relative fixture paths. +- Claude settings install/uninstall tests must pass explicit temp settings paths; they must never call install/uninstall against the default real Claude settings path. +- Regression coverage includes at least: + - MCP tool contract and safe speech validation. + - MCP lease status/fallback behavior where currently factored. + - Claude MCP command previews for published/local dev modes. + - Claude hook event mapping. + - Claude hook stdout/privacy/speech safety expectations. + - Claude settings install/update/uninstall on temp fixture files. + - Local dev command path validation failure cases where practical. + - Desktop lease manager behavior. + - Desktop IPC protocol validation. + - Pet zip safety/catalog validation checks. +- Test output names should make it obvious what failed. +- `docs/implementation-process.md` or the phase spec documents the new test/check distinction. + +## Proposed files/directories + +- `package.json` + - Add root `test` script. +- Workspace package `package.json` files: + - Add package-level `test` scripts where appropriate. +- Existing check files: + - `apps/desktop/src/check-*.ts` + - `packages/client/src/check-*.ts` + - `packages/mcp/src/check-*.ts` + - `packages/claude/src/check-*.ts` +- Optional new fixture/check files: + - `packages/claude/src/check-claude-local-dev.ts` if not folded into existing checks. +- `docs/testing.md` + - Short developer-facing description of `test` vs `check`, package expectations, and isolation rules. +- `docs/phases/phase-08c-test-harness-regression-pack.md` + +## Technical approach + +### Keep it simple first + +Continue using Node-executed TypeScript-built contract checks for now: + +```text +pnpm typecheck && pnpm build && node dist/check-*.js +``` + +Reasons: + +- This matches the current repo pattern. +- It keeps dependencies minimal. +- The current risky logic is mostly pure Node contract logic, not browser UI. +- We can still add Vitest later when richer assertions/mocking become painful. + +### Define command semantics + +Recommended command meanings: + +```text +pnpm test = deterministic regression tests only +pnpm check = typecheck + build + tests + static/smoke checks required before commits +``` + +Package `check` should call package `test` after typecheck/build when practical: + +```text +check = typecheck + build + test +test = node dist/check-*.js ... +``` + +If a package needs `test` to build first for standalone use, keep that behavior explicit and avoid stale `dist` artifacts. The implementation should avoid duplicating long command lists more than necessary. + +### Avoid real user config/state + +Claude settings tests must use temp files/directories. Desktop state tests should use existing pure helpers or isolated temp paths only. If a test cannot avoid real Electron `app.getPath("userData")`, keep it out of `pnpm test` and document it as manual/Electron-only. + +### Regression priorities + +Add or strengthen tests around bugs found during manual verification: + +- Local dev mode should not accidentally use published `npx` commands. +- Local hook command paths are shell-quoted safely. +- Local dev mode validates missing/invalid dist paths where practical. +- Hook commands produce empty stdout. +- Hook CLI direct invocation produces empty stdout for normal and malformed fixture payloads. +- Explicit pet rendering should not regress to giant installed-pet image data URLs where this can be checked without Electron. +- Benign IPC client disconnect errors should not fail response handling where factored. + +## Risks and tradeoffs + +- Adding a framework now may slow progress. Mitigation: standardize existing checks first. +- Pure Node checks cannot catch every Electron UI issue. Mitigation: keep manual verification for tray/windows and add UI automation later. +- Too many duplicated scripts can become hard to maintain. Mitigation: keep `test`/`check` scripts simple and consistent. +- Tests that touch real Claude/OpenPets state would be risky. Mitigation: temp fixtures only. + +## Security/privacy notes + +- Tests must not read or write real `~/.claude/settings.json`. +- Tests must not print secrets, local tokens, or full user config payloads. +- Fixtures should be synthetic and minimal. +- Any local path assertions should avoid requiring a specific user home path. + +## Test/check plan + +- Run `pnpm test`. +- Run `pnpm check`. +- Confirm no test writes to real Claude settings. +- Confirm temp fixtures are cleaned up. +- Confirm test failures are understandable by temporarily reviewing script names/output. + +## Manual verification guide + +After implementation: + +1. Run: + + ```bash + pnpm test + pnpm check + ``` + +2. Confirm both pass. +3. Confirm no real Claude settings were modified. +4. Confirm no desktop app launch is required for tests. +5. Confirm the command split is understandable: + - `test` = deterministic regression tests. + - `check` = full pre-commit validation. + +## Oracle plan review + +Reviewed. Oracle approved deferring Vitest and standardizing existing Node contract checks first. + +Oracle requested clearer package scope, fresh built artifact behavior, temp-dir cleanup/isolation requirements, explicit no-real-Claude-settings guard, `check` calling `test` to prevent drift, and direct hook CLI stdout assertion. + +## Oracle feedback disposition + +Fixed: + +- Listed packages expected to get `test` scripts now and packages allowed to defer. +- Required tests to run against fresh built artifacts and preferred `check = typecheck + build + test`. +- Added temp-dir cleanup/current-working-directory isolation acceptance criteria. +- Added explicit guard that Claude settings install/uninstall tests must use temp settings paths. +- Added `docs/testing.md` to proposed files. +- Added direct hook CLI stdout assertion to regression priorities. diff --git a/docs/phases/phase-09-first-run-onboarding.md b/docs/phases/phase-09-first-run-onboarding.md new file mode 100644 index 00000000..880d6a36 --- /dev/null +++ b/docs/phases/phase-09-first-run-onboarding.md @@ -0,0 +1,335 @@ +# Phase 09: First-run Onboarding + +## Goal + +Connect the existing pet manager, agent setup, default pet, and settings pieces into a clear first-run onboarding flow. + +Phase 09 should make a fresh OpenPets install feel ready: the default pet appears, the user can optionally browse/install pets, configure Claude from the real Agent Setup flow, and finish with onboarding completion persisted. + +## Non-goals + +- No new agent integrations beyond the existing Claude Code setup/hook controls. +- No new catalog install mechanics beyond the existing Pet Manager install flow. +- No packaging/release installer work. +- No account system, telemetry, analytics, or network calls beyond the existing catalog fetch. +- No forced pet install; the bundled default pet remains enough to complete onboarding. +- No silent edits to Claude or other agent settings; existing confirmation/backup behavior remains required. +- No destructive onboarding reset UI beyond developer/manual reset instructions for this phase. + +## User-visible/manual outcome + +On a fresh app state, OpenPets opens a first-run onboarding window after startup. + +The onboarding window has a simple wizard shape: + +1. **Welcome** + - Explains that OpenPets lives in the tray/menu bar. + - Confirms the bundled default pet is already available. + - Provides a Continue button. +2. **Pets** + - Shows the current default pet and a short explanation that installing more pets is optional. + - Provides an action to open the real Pet Manager. + - Provides Skip/Continue. + - If the catalog is unavailable, onboarding remains completable and points the user to try later from Pet Manager. +3. **Agents** + - Shows Claude Code as the supported first integration for this MVP checkpoint. + - Provides an action to open the real Agent Setup window. + - Explains that setup is confirmation-based and can be skipped. +4. **Ready** + - Confirms OpenPets is ready. + - Offers quick actions to open Pet Manager or Agent Setup. + - Finish persists onboarding completion and closes the onboarding window. + +The tray remains usable during onboarding. Closing onboarding without finishing should not mark onboarding complete; it should be possible to reopen onboarding from the tray until completed. + +## Acceptance criteria + +- App state persists onboarding completion, for example `preferences.onboardingCompleted` or equivalent versioned state. +- State normalization handles missing/old state by treating onboarding as incomplete. +- Fresh app state opens onboarding automatically after app initialization. +- The default pet appears early when `openDefaultPetOnLaunch` is enabled, independent of onboarding completion. +- Onboarding is implemented as a normal sandboxed/context-isolated Electron task window with the existing preload/security posture. +- Onboarding uses dedicated IPC handlers with sender validation; only the onboarding renderer can complete onboarding. +- Onboarding IPC sender validation must use the main-process `taskWindows` / `webContents.id` mapping, not renderer-declared DOM attributes. +- If the shared preload exposes broad APIs, existing main-process IPC sender checks must deny pet install/remove, preference mutation, and agent setup mutation from the onboarding window. +- Onboarding cannot directly mutate pet installs or agent configuration except by opening the existing Pet Manager / Agent Setup flows. +- Onboarding includes actions to: + - continue through steps, + - open Pet Manager, + - open Agent Setup, + - finish onboarding, + - close without completing. +- Onboarding completion persists and prevents automatic reopening on the next app launch. +- Finishing onboarding closes the onboarding window and refreshes the tray immediately so **Continue Setup...** disappears without restart. +- Until onboarding is completed, the tray exposes a way to reopen onboarding, for example **Continue Setup...**. +- After onboarding is completed, the tray no longer shows the onboarding continuation item by default. +- Catalog failure does not block onboarding completion. +- Agent detection/configuration errors do not block onboarding completion. +- No automated test touches real Claude settings or real user data. +- Automated checks cover onboarding state normalization and completion persistence behavior. +- `pnpm test` passes. +- `pnpm check` passes. + +## Proposed files/directories + +- `apps/desktop/src/app-state.ts` + - Add persisted onboarding completion flag with backwards-compatible normalization. + - Add a narrow completion helper, e.g. `completeOnboarding()`. +- `apps/desktop/src/windows.ts` + - Add `onboarding` task window kind and HTML. + - Add IPC handlers for onboarding snapshot/completion and opening Pet Manager / Agent Setup from onboarding. + - Reuse existing CSP, sandbox, context isolation, navigation blocking, and sender validation patterns. +- `apps/desktop/src/main.ts` + - Decide when to open onboarding automatically after startup. +- `apps/desktop/src/tray.ts` + - Add **Continue Setup...** while onboarding is incomplete. + - Refresh menu after onboarding completion. +- `apps/desktop/preload.cjs` + - Expose a narrow `openpetsOnboarding` bridge only for onboarding actions. +- `apps/desktop/src/check-onboarding-state.ts` + - Contract checks for state migration/completion through extracted pure normalization/completion helpers or injected temp state paths. + - Do not import Electron-bound `app-state.ts` directly from plain Node tests if that couples tests to Electron `app.getPath`. +- `docs/phases/phase-09-first-run-onboarding.md` + +## Technical approach + +### State model + +Extend the existing versioned app state with onboarding completion. + +Preferred minimal shape: + +```ts +preferences: { + defaultPetId: string; + openDefaultPetOnLaunch: boolean; + speechBubblesEnabled: boolean; + petScale: number; + onboardingCompleted: boolean; +} +``` + +Default/missing value should be `false`, so existing installs see onboarding once after upgrading. If that is too disruptive during development, the implementation may use a developer reset/manual test path, but the production behavior should remain first-run based. + +Add narrow exported helpers: + +```ts +isOnboardingCompleted(): boolean +completeOnboarding(): OpenPetsStateV1 +``` + +`completeOnboarding()` should only set the completion flag and persist via existing atomic state write behavior. + +### Startup behavior + +Startup order should stay stable: + +1. Initialize state. +2. Install internal UI handlers. +3. Create tray. +4. Install default pet display handlers. +5. Start local IPC. +6. Show default pet if preference says so. +7. Open onboarding if incomplete. +8. Refresh tray. + +Opening onboarding should not delay local IPC startup or default pet display. If opening the window fails, log the error and keep the app usable from tray. + +### Window and IPC + +Add an `onboarding` task window kind rather than a separate dashboard architecture. + +The onboarding renderer should be static inline HTML loaded through the same data URL pattern as existing task windows. It should use the existing preload bridge, not Node integration. + +Suggested bridge: + +```ts +window.openpetsOnboarding = { + getSnapshot(): Promise<{ defaultPetName: string; onboardingCompleted: boolean }>; + complete(): Promise; + openPetManager(): Promise; + openAgentSetup(): Promise; +} +``` + +Keep the snapshot lightweight: default pet/onboarding state only. Phase 09 does not need to duplicate the full Pet Manager or Agent Setup UIs inside onboarding; opening the real windows is enough and avoids parallel state/config logic. Do not expose Claude settings paths, Claude config previews, or detailed agent status in onboarding. + +Sender validation should allow onboarding access only through the existing main-process window-kind mapping from `webContents.id` to `taskWindows`. Renderer-declared values like `data-openpets-view="onboarding"` may be useful for the preload bridge but must not be the trust boundary. + +### Onboarding UI details + +The UI should be intentionally small and clear, not a full dashboard: + +- One card/wizard window, roughly the same size as other task windows. +- Step indicators for Welcome / Pets / Agents / Ready. +- Primary and secondary actions per step. +- Clear skip language: pet installs and agent setup can be done later. +- Explicit reminder that Claude setup may edit user-level Claude settings only after confirmation and backups. + +### Reopen behavior + +Before completion: + +- App startup opens onboarding automatically. +- Tray shows **Continue Setup...**. +- Closing the window keeps completion false. + +After completion: + +- App startup does not auto-open onboarding. +- Tray omits **Continue Setup...**. +- Pet Manager, Agent Setup, and Settings remain available normally. + +### Reset/manual testing behavior + +Phase 09 does not need an end-user reset UI. Manual verification can reset onboarding by deleting the dev Electron user-data directory or editing/removing the dev state file documented by app logs. + +If a small developer-only helper is cheaper and safer, it may be added only as a documented internal check command, not as product UI. + +## Risks and tradeoffs + +- **Onboarding could become a second implementation of Pet Manager/Agent Setup.** Avoid this by using onboarding as a guide that opens the real windows. +- **Existing dev installs may see onboarding after the state schema changes.** This is acceptable for first-run behavior; manual instructions should include how to mark complete or reset state. +- **Catalog/agent setup failures can make onboarding feel blocked.** The flow must make those steps optional and completable. +- **Window focus could be annoying at startup.** The default pet and tray remain primary; onboarding should be a normal window and not repeatedly refocus if closed. +- **State tests may be coupled to Electron `app`.** Prefer extracting pure normalization/completion helpers if needed instead of brittle Electron test setup. + +## Security/privacy notes + +- Onboarding must not silently configure agents or install pets. +- Claude setup remains routed through the existing Agent Setup controls with explicit confirmation and backups. +- No onboarding payload should include Claude config contents beyond what existing Agent Setup already exposes. +- Renderer stays sandboxed/context-isolated with no Node integration. +- CSP should block external resources and navigation. +- IPC sender validation must prevent other windows from invoking onboarding completion if practical within the current data URL sender model. + +## Test/check plan + +- Add deterministic contract coverage for: + - missing/old state normalizes `onboardingCompleted` to `false`, + - completion helper persists `true`, + - preference updates preserve onboarding completion, + - onboarding completion does not alter installed pets/default pet/agent configuration state. +- Run: + +```bash +pnpm test +pnpm check +``` + +Manual verification should use a fresh or reset dev app state. + +## Manual verification guide + +1. Reset the dev app state by deleting the OpenPets dev user data directory shown in the app startup log, or remove/edit `openpets-state.json` so onboarding is incomplete. +2. Run: + +```bash +pnpm dev:desktop +``` + +3. Confirm the default pet appears if `openDefaultPetOnLaunch` is enabled. +4. Confirm the onboarding window opens automatically. +5. On Welcome, click Continue. +6. On Pets, click the Pet Manager action and confirm the real Pet Manager opens. Close or leave it open, then continue/skip. +7. On Agents, click the Agent Setup action and confirm the real Configure Agents window opens with Claude controls. Do not apply config unless intentionally testing Claude setup. Continue/skip. +8. On Ready, click Finish. +9. Quit OpenPets and launch again with `pnpm dev:desktop`. +10. Confirm onboarding does not auto-open after completion. +11. Reset onboarding state again, relaunch, close the onboarding window without finishing, and confirm **Continue Setup...** is available from the tray and reopens onboarding. +12. Simulate catalog unavailable behavior if practical, for example by disconnecting network or using an invalid catalog URL if supported by the dev environment; confirm onboarding can still be completed. +13. Confirm that a machine without Claude Code configured, or with Claude setup errors, can still complete onboarding. +14. Confirm Claude settings are unchanged unless existing Agent Setup configure/install buttons were explicitly used. + +Expected results: + +- Onboarding never blocks app/tray/default pet usage. +- Skipping pet install and agent setup still allows finishing. +- Completion persists across restart. +- No Claude settings are modified unless you explicitly use existing Agent Setup configure/install buttons. + +## Oracle plan review + +Reviewed by Oracle for architecture fit, scope, security/privacy, state migration, testing, and cross-platform risks. + +Blockers: none. + +Should-fix feedback: + +- Ensure onboarding IPC sender validation uses main-process `taskWindows` / `webContents.id` mapping, not renderer-declared DOM values. +- Keep onboarding preload/API narrow; if shared preload exposes broad APIs, existing IPC sender checks must deny install/remove/preferences from onboarding. +- Add acceptance criteria that Finish closes onboarding and refreshes tray so **Continue Setup...** disappears immediately. +- Avoid importing Electron-bound `app-state.ts` directly from Node tests; extract pure normalization/completion helpers or inject temp state paths. +- Keep onboarding snapshot minimal: default pet/onboarding state only; do not duplicate Claude detection/status or expose Claude settings paths in onboarding. +- Manual verification should include Claude unavailable/catalog unavailable cases and confirm no Claude settings changed unless Agent Setup buttons are explicitly used. + +Nice-to-have feedback: + +- Add a small “Start using OpenPets”/Finish action on Ready that closes onboarding. +- Place tray **Continue Setup...** above manager/settings while incomplete for discoverability. +- Consider a developer-only env var to force onboarding incomplete for manual testing. + +Verdict: implementation-ready after sender-validation/preload and state-test clarifications. Scope is appropriate as one phase because it connects existing surfaces instead of rebuilding pet/agent setup logic. + +## Oracle feedback disposition + +Fixed: + +- Added explicit main-process `webContents.id` sender-validation requirement. +- Added shared-preload/broad-API guard requirement. +- Added finish-close/tray-refresh acceptance criterion. +- Clarified state tests should use extracted pure helpers or injected temp state paths, not brittle Electron-bound imports. +- Reduced onboarding snapshot to default pet/onboarding state only and forbade exposing Claude config paths/previews in onboarding. +- Added manual checks for catalog unavailable, Claude unavailable/error states, and no Claude settings mutation unless existing Agent Setup controls are explicitly used. + +Accepted nice-to-have: + +- Ready/Finish action and discoverable tray placement are included in implementation guidance. + +Deferred: + +- Developer-only env var to force onboarding incomplete. Manual reset via dev user-data/state file is enough for Phase 09 unless implementation testing shows reset friction is high. + +## Oracle implementation review + +Initial implementation review: + +Blockers: none. + +Should-fix feedback: + +- Remove onboarding access to the broad `openpets:get-state` handler; onboarding should use only its minimal snapshot. +- Return a minimal completion result instead of the full app state from onboarding completion. +- Wrap automatic onboarding startup so a window creation failure does not exit the tray app. +- Improve onboarding state tests so completion remains true after preference-like updates, and prefer temp/injected persistence coverage if practical. +- Show the current default pet on the Pets step, not only Welcome. + +Nice-to-have feedback: + +- Disable Finish while completion is in flight. +- Step indicators/back navigation can be considered later if cheap. +- Manual Electron verification is still required. + +Final Oracle re-check: + +- Blockers: none. +- Remaining should-fix: none from the previous review. +- Verified previous should-fix items are resolved. +- Verdict: proceed to manual Electron verification before user acceptance. + +## Oracle implementation feedback disposition + +Fixed: + +- Added root `pnpm dev:desktop` script so the manual verification command works from the workspace root. +- Removed onboarding from `openpets:get-state` allowlist. +- Onboarding completion now returns `{ onboardingCompleted: true }` instead of full app state. +- Wrapped startup onboarding open in a try/catch so tray/default-pet startup continues on failure. +- Added state-check coverage that onboarding completion remains true after a preference-like update while other preferences are preserved. +- Added current default pet display to the Pets step. +- Disabled the Finish button while completion is in flight. + +Deferred: + +- Temp-path full app-state persistence test. The current app-state module is Electron-bound through `app.getPath`; Phase 09 covers the extracted pure onboarding normalization/completion contract and leaves broader state-store injection for a later hardening/refactor if needed. +- Clickable/back-capable step indicators. Forward-only onboarding keeps Phase 09 simpler and matches the approved scope. diff --git a/docs/phases/phase-10a-desktop-package-hardening.md b/docs/phases/phase-10a-desktop-package-hardening.md new file mode 100644 index 00000000..be93056b --- /dev/null +++ b/docs/phases/phase-10a-desktop-package-hardening.md @@ -0,0 +1,346 @@ +# Phase 10A: Desktop Package Hardening + +## Goal + +Add a reliable current-platform desktop packaging checkpoint for the OpenPets tray app and document the MVP validation matrix, while explicitly deferring the unresolved packaged Claude command distribution path to Phase 10B. + +Phase 10A should prove that the packaged desktop app itself can launch and run the core local experience: tray, default pet, onboarding, Pet Manager, settings, local state, assets, and local IPC startup/cleanup behavior. + +## Non-goals + +- No real packaged Claude end-to-end demo unless the user already has published `@open-pets/*` packages available. +- No npm package publishing. +- No bundled packaged MCP/Claude resource command mode. +- No signed/notarized public release. +- No app store work. +- No auto-update system. +- No start-at-login feature. +- No new pet/catalog/agent features. +- No broad UI redesign. + +Phase 10B should choose the Claude distribution path: + +- publish `@open-pets/mcp` and `@open-pets/claude`, or +- bundle unpacked MCP/Claude command resources inside the packaged app and point Agent Setup at those paths. + +## User-visible/manual outcome + +From a clean checkout, the user can run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +Then launch the generated current-platform packaged app and verify: + +- OpenPets starts as a tray/menu bar app. +- The default pet appears and uses packaged assets. +- First-run onboarding can complete. +- Pet Manager opens and can show installed pets/catalog state. +- Settings opens and can update preferences. +- The app writes local IPC discovery state in the user-specific runtime location. +- Quit exits cleanly. + +The phase also creates `docs/mvp-validation.md` with a platform matrix, unsigned-app notes, package commands, cleanup notes, and the remaining Phase 10B packaged-Claude gap. + +## Acceptance criteria + +- A desktop packaging tool/config exists for current-platform local validation. +- Packaging is Node/pnpm based and does not require Bun. +- Root scripts exist: + - `pnpm package:desktop:dir` + - optionally `pnpm package:desktop` if installer packaging is cheap after `--dir` passes. +- Desktop package scripts exist for package/build/check flow. +- Root package script performs a topological build of desktop dependencies before packaging, not only `apps/desktop` TypeScript. +- Packaging includes required runtime files: + - compiled desktop `dist/**`, + - `preload.cjs`, + - `assets/tray-icon.png`, + - bundled/default pet runtime assets or generated-renderer code, + - workspace runtime dependencies required by the desktop app, including built `@open-pets/claude` and `@open-pets/client` files because Agent Setup imports Claude helpers at startup, + - package metadata needed by Electron. +- Packaging must not leave pnpm symlinks that escape the packaged app, especially symlinks back to `packages/*` in the checkout. +- Packaging excludes obvious repo bulk/secrets/user data: + - `v1/`, + - `web/`, + - `docs/phases/`, + - `.env*`, + - Claude settings/backups, + - app user data, + - build caches. +- Package content checks verify expected config/files and guard against obvious inclusion mistakes where practical. +- A post-package content check verifies the generated package directory contains main/preload/assets/runtime workspace deps and does not contain forbidden repo bulk/secrets where practical. +- Packaged resource path assumptions are audited and fixed if needed: + - tray icon loading, + - preload loading, + - built-in pet loading, + - internal data URLs/task windows, + - local IPC discovery file paths. +- Renderer security remains unchanged: + - `nodeIntegration: false`, + - `contextIsolation: true`, + - `sandbox: true`, + - CSP/navigation guards retained. +- Local dev command mode for Agent Setup remains unavailable or clearly dev-only in packaged builds. +- Published/npx Claude commands remain documented as requiring real published packages; packaged Claude end-to-end is explicitly deferred to Phase 10B. +- In Phase 10A packaged app verification, do not apply Claude MCP/hooks unless `@open-pets/*` packages are actually published and intentionally being tested. +- `docs/mvp-validation.md` documents: + - platform validation matrix for macOS/Windows/Linux, + - current-platform package command, + - unsigned local-app warnings, + - how to launch the packaged output, + - cleanup/uninstall notes, + - which MVP demo rows are verified in Phase 10A vs deferred to Phase 10B. +- `pnpm test` passes. +- `pnpm check` passes. +- `pnpm package:desktop:dir` succeeds on the current platform, or the exact blocker and next action are documented. + +## Proposed files/directories + +- `package.json` + - Add root packaging scripts. +- `apps/desktop/package.json` + - Add package scripts and packaging dev dependency, likely `electron-builder`. +- `apps/desktop/electron-builder.yml` + - Define local validation packaging config: stable app id, product name, output directory, explicit files/resources, disabled publish, and signing/notarization deferral. +- `.gitignore` + - Ensure package output directory is ignored. +- `apps/desktop/src/assets.ts` + - Harden packaged resource path lookup if needed. +- `apps/desktop/src/built-in-pet.ts`, `apps/desktop/src/pet-window.ts`, or related files + - Harden packaged built-in pet asset lookup only if package testing exposes a failure. +- `apps/desktop/src/check-packaging-contract.ts` + - Deterministic packaging config/content guard where practical. +- `docs/mvp-validation.md` + - MVP package/manual validation checklist and matrix. +- `docs/phases/phase-10a-desktop-package-hardening.md` + +## Technical approach + +### Packaging tool + +Use `electron-builder` for Phase 10A unless implementation testing reveals a blocker. + +Initial target should be unpacked/current-platform packaging first: + +```bash +pnpm package:desktop:dir +``` + +Installer targets can be added only after `--dir` works and if the config is straightforward. The phase can still pass with `--dir` as the stable packaging checkpoint if installers need more platform-specific work. + +### Build order + +Packaging must not assume only `apps/desktop` needs building. + +Root scripts should build relevant workspace dependencies before packaging. For example: + +```json +{ + "package:desktop:dir": "pnpm build && pnpm --filter @open-pets/desktop package:dir" +} +``` + +If full workspace build is too slow but reliable dependency filtering is easy, it can be narrowed later. + +### Package contents + +Start with a conservative `electron-builder` file list that packages only the desktop app runtime. Do not package the entire repository. + +Candidate includes: + +- `dist/**` +- `preload.cjs` +- `assets/**` +- built workspace runtime dependencies needed by desktop imports, especially `@open-pets/claude` and `@open-pets/client` +- `package.json` + +If built-in pet assets live outside those paths or are resolved through `app.getAppPath()`, include them explicitly and adjust path helpers. If the bundled default pet is generated/rendered from compiled code rather than external files, document that in the packaging contract. + +The generated package must not depend on symlinks that escape to the source checkout. If pnpm workspace layout causes symlink leakage, use an explicit staging/deploy step rather than shipping checkout-relative links. + +### pnpm workspace handling + +Do not add root `.npmrc` hoisting/linker changes preemptively. + +If `electron-builder` fails because of pnpm workspace dependency layout: + +1. Prefer explicit file/resource inclusion and package-local fixes. +2. Consider a staging/deploy step. +3. Only add root pnpm linker changes if necessary, with documentation and another `pnpm check` run. + +### Claude packaging limitation + +Phase 10A must not pretend packaged Claude works while packages are private/unpublished. + +Agent Setup published mode may still show `npx -y @open-pets/...`, but `docs/mvp-validation.md` should state that a packaged end-to-end Claude demo requires Phase 10B unless those packages have been published. + +Local dev command mode should stay disabled in packaged builds, because absolute checkout paths are not suitable for a distributed app. + +### Validation docs + +`docs/mvp-validation.md` should include a table like: + +```text +Area Phase 10A status +Tray/default pet packaged Verify now +Onboarding packaged Verify now +Pet Manager packaged Verify now +Claude MCP via npx Deferred unless packages published +Claude hooks via npx Deferred unless packages published +Packaged bundled commands Phase 10B +``` + +## Risks and tradeoffs + +- **This is not full MVP distribution yet.** It intentionally defers packaged Claude commands to avoid hiding a publish/bundle decision. +- **electron-builder + pnpm may need staging.** Avoid global linker changes unless required. +- **Unsigned apps may show OS warnings.** Accept this for local validation and document it. +- **Cross-platform validation cannot be completed from one OS.** Define the matrix now; mark non-current platforms unverified until tested. +- **Packaging can reveal path assumptions.** Fix concrete packaged-mode failures only. + +## Security/privacy notes + +- Do not weaken renderer sandbox/context isolation/CSP. +- Do not introduce TCP/HTTP control surfaces. +- Do not include secrets, local app data, Claude settings, or backups in package output. +- Keep local IPC local-only and token-gated. +- Claude config mutation remains confirmation-based through existing Agent Setup behavior. +- Unsigned package output is for local MVP validation, not public trust distribution. + +## Test/check plan + +Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +Add/extend deterministic checks for: + +- packaging config exists, +- package scripts exist, +- required runtime files are included by config or copied resources, +- obviously forbidden repo/user-data patterns are not included by config, +- generated package output contains main/preload/assets and workspace runtime deps after `package:desktop:dir`, +- generated package output does not contain symlinks escaping the package directory, +- root packaging command is available. + +Manual verification covers actual packaged app launch and resource loading. + +## Manual verification guide + +1. Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +2. Launch the generated app from the package output. +3. Confirm tray icon appears. +4. Confirm default pet appears and can be shown/hidden/paused/resumed. +5. Complete or reset onboarding and confirm it behaves correctly in packaged mode. +6. Open Pet Manager and confirm installed pets/catalog state renders. +7. Open Settings and toggle a preference; restart packaged app and confirm persistence. +8. Confirm local IPC discovery is created in a per-user location while the app runs and cleaned/stale-safe on quit as documented. + - While the packaged app is running, use an existing checkout client smoke/status command if available to verify discovery, token, and status endpoint against the packaged app. +9. Open Agent Setup and confirm local dev mode is unavailable/clearly dev-only in packaged builds. +10. Confirm docs clearly mark packaged Claude MCP/hooks as deferred to Phase 10B unless npm packages are published. Do not apply Claude MCP/hooks from the packaged app during Phase 10A unless intentionally testing published packages. +11. If catalog/fixture is available, install a pet and set it as default in packaged mode; if unavailable, mark catalog install as unverified and record the catalog error. +12. Quit from tray and confirm clean exit. + +## Oracle plan review + +Reviewed by Oracle after user chose to split broad Phase 10 into Phase 10A/10B. + +Blocker: + +- Even with Claude end-to-end deferred, desktop imports `@open-pets/claude` through Agent Setup, and that imports `@open-pets/client`. Phase 10A must explicitly include those workspace runtime deps' built files or use staging/deploy; packaging only desktop `dist`, preload, assets, and package metadata is likely insufficient. + +Should-fix feedback: + +- Require no symlinks escaping the packaged app, especially pnpm workspace symlinks to `packages/*`. +- Make electron-builder config requirements explicit: stable `appId`, `productName`, output dir, `publish` disabled, signing/notarization deferred, output ignored. +- Add post-package content checks, not only config checks. +- Add manual local IPC smoke step from checkout against packaged app. +- Strengthen Agent Setup warning: do not apply Claude MCP/hooks in Phase 10A packaged app unless packages are actually published. +- Pet Manager verification should include install/set-default if catalog/fixture is available, or explicitly mark catalog install unverified if unavailable. + +Nice-to-have feedback: + +- Keep Phase 10A to `electron-builder --dir` first. +- Prefer staging/deploy over root linker changes if pnpm fights builder. +- Clarify bundled default pet assets if generated rather than file assets. + +Verdict: original packaged-Claude blocker is resolved by the split. Phase 10A is nearly implementation-ready after making workspace runtime dependency inclusion a hard acceptance criterion. + +## Oracle feedback disposition + +Fixed: + +- Added hard acceptance criterion for packaged workspace runtime deps, especially `@open-pets/claude` and `@open-pets/client`. +- Added no-escaping-symlink acceptance criterion. +- Made electron-builder config expectations explicit. +- Added post-package content check requirement. +- Added local IPC smoke verification step. +- Strengthened packaged Agent Setup warning not to apply Claude MCP/hooks unless packages are actually published. +- Added Pet Manager install/set-default manual check when catalog/fixture is available, with explicit unverified note if unavailable. +- Clarified default pet assets may be generated/runtime code rather than external files. + +Accepted: + +- Start with `--dir` packaging first; installers are optional after `--dir` passes. +- Prefer staging/deploy over root pnpm linker changes if needed. + +Deferred: + +- Packaged Claude end-to-end command distribution remains Phase 10B. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blockers: none. + +Should-fix feedback: + +- Manually verify the packaged GUI before closing Phase 10A: tray, default pet, onboarding, Pet Manager, Settings, IPC smoke, quit cleanup. +- Tighten or explicitly disposition package over-inclusion. Current unpacked app may include workspace package `src/`, `tsconfig.json`, built check scripts, and source maps. This is acceptable for local inspectable Phase 10A if documented, but does not fully match runtime-only packaging intent. +- Extend package output contract checks to third-party runtime deps such as `yauzl` and transitive deps. + +Nice-to-have feedback: + +- Document `npmRebuild: false` assumption as acceptable because current deps are JS-only/no native modules. +- Keep `asar: false` for Phase 10A only and revisit for release hardening. +- Exact script assertions in packaging checks are acceptable at current scale, though less brittle assertions may be useful later. + +Verdict: acceptable for Phase 10A after manual packaged-app verification. + +## Oracle implementation feedback disposition + +Fixed: + +- Added package output assertions for `yauzl` and its runtime helpers/transitive dependencies. +- Documented Phase 10A package over-inclusion as an intentional local/inspectable packaging tradeoff in `docs/mvp-validation.md`. +- Documented `npmRebuild: false` as safe only while runtime deps are JavaScript-only. + +Deferred: + +- Runtime-only ASAR packaging. Phase 10A intentionally uses unpacked output for inspectable package checks; release hardening should revisit ASAR/runtime-only output before public distribution. + +Needs manual verification: + +- Packaged GUI launch and full Phase 10A manual checklist must be completed by the user before committing/closing this phase. + +Final Oracle re-check: + +- Blockers: none. +- Remaining implementation/spec should-fix: none. +- Phase gate still remaining: user manual packaged GUI verification before closing Phase 10A. +- Verdict: proceed to user manual verification; do not close/commit phase until that checklist passes. diff --git a/docs/phases/phase-10b-packaged-claude-command-distribution.md b/docs/phases/phase-10b-packaged-claude-command-distribution.md new file mode 100644 index 00000000..c0ae7182 --- /dev/null +++ b/docs/phases/phase-10b-packaged-claude-command-distribution.md @@ -0,0 +1,333 @@ +# Phase 10B: Packaged Claude Command Distribution + +## Goal + +Make the packaged OpenPets desktop app capable of configuring Claude Code without relying on unpublished `npx @open-pets/*` packages. + +Phase 10B should add a packaged/bundled command mode that points Claude MCP and Claude hooks at JavaScript entry points shipped inside the packaged app resources. + +## Non-goals + +- No npm publishing. +- No public signed/notarized release. +- No auto-update. +- No changing the public MCP tool set. +- No new agent integrations beyond Claude. +- No model-generated speech. +- No removing the existing published `npx` command mode for future published packages. +- No weakening Claude configuration confirmation/backups. + +## User-visible/manual outcome + +In the packaged app, Agent Setup no longer asks users to configure private/unpublished `npx` packages by default. + +Instead, packaged Agent Setup previews and installs commands like: + +```text +node /app/node_modules/@open-pets/mcp/dist/index.js +node /app/node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed +``` + +The exact path is platform-specific, but it must be inside the packaged app output/resources and must be a regular file. + +In dev/unpackaged mode, the existing behavior remains: + +- published mode: `npx -y @open-pets/...` +- local dev mode: built checkout `dist` paths + +## Acceptance criteria + +- `@open-pets/desktop` packages the runtime packages required for bundled Claude commands: + - `@open-pets/mcp`, + - `@open-pets/claude`, + - `@open-pets/client`, + - required third-party runtime dependencies. +- Agent Setup chooses command mode by environment: + - packaged app: bundled packaged mode, + - dev app: published/local dev toggle remains available. +- The Agent Setup renderer/preload accepts and renders bundled command mode snapshots without treating them as invalid. +- Packaged Agent Setup checks Node availability for Claude-launched commands, or clearly disables configure/install with a warning if Node is unavailable/too old. +- Packaged mode command previews use `node ` and never `npx -y @open-pets/...` unless the user is explicitly in published mode in dev. +- Packaged MCP command points at a regular file shipped inside package resources. +- Packaged hook command points at a regular file shipped inside package resources. +- Packaged command paths are not source-checkout paths and do not use `app.getAppPath()` assumptions that fail after packaging. +- Packaged commands are validated before install/doctor/configure actions: + - path exists, + - path is a regular file, + - real path is inside packaged app resources/app directory, + - symlink escapes are rejected, + - `.asar` paths are rejected unless the file is explicitly unpacked/readable as a regular file, + - command contains no newline/null/unsupported shell characters. +- Missing bundled resources produce an actionable Agent Setup status/error, not an unhandled IPC failure. +- Claude MCP configure/replace/remove still uses `claude mcp ...` and still requires explicit user button actions. +- Claude hook install/update/uninstall still writes only OpenPets-managed hooks and still creates backups. +- Doctor/preview text clearly labels packaged bundled mode and explains commands point into the installed OpenPets app. +- If packaged bundled command resources are missing, Agent Setup shows an actionable error and disables configure/install actions rather than falling back silently to unpublished `npx` packages. +- Existing contract checks cover packaged bundled command files in package output. +- Existing Claude code/hooks contract checks cover bundled command preview/matching behavior. +- `pnpm test` passes. +- `pnpm check` passes. +- `pnpm package:desktop:dir` passes. + +## Proposed files/directories + +- `packages/claude/src/claude-code.ts` + - Add command mode support for packaged bundled MCP command paths. +- `packages/claude/src/hook-settings.ts` + - Add command mode support for packaged bundled hook CLI command paths. +- `packages/claude/src/check-claude-code.ts` + - Add bundled command preview/status checks. +- `packages/claude/src/check-claude-hooks.ts` + - Add bundled hook settings checks. +- `apps/desktop/src/agent-setup.ts` + - Select bundled mode in `app.isPackaged`. + - Validate packaged resource paths and surface errors. + - Check/warn for Node availability for packaged bundled commands. + - Keep dev local toggle unavailable in packaged app. +- `apps/desktop/preload.cjs` + - Accept/render `commandMode: "bundled"` snapshots and label bundled mode clearly. +- `apps/desktop/package.json` + - Add `@open-pets/mcp` as a desktop runtime dependency so packaged output includes it. +- `apps/desktop/src/check-packaging-contract.ts` + - Require packaged MCP/Claude/client entry files and MCP runtime deps. +- `docs/mvp-validation.md` + - Update Phase 10B status and manual Claude packaged validation steps. +- `docs/phases/phase-10b-packaged-claude-command-distribution.md` + +## Technical approach + +### Command mode model + +Extend `OpenPetsCommandMode` from: + +```ts +"published" | "local" +``` + +to: + +```ts +"published" | "local" | "bundled" +``` + +Semantics: + +- `published`: npm/npx package names. +- `local`: checkout-relative built `dist` files for development. +- `bundled`: package-relative files shipped in the packaged app's `node_modules/@open-pets/*/dist` directories. + +For current unpacked Phase 10A packaging (`asar: false`), `bundled` paths can be resolved from `@open-pets/claude`'s own `import.meta.url` in packaged node_modules: + +```text +.../Resources/app/node_modules/@open-pets/claude/dist +.../Resources/app/node_modules/@open-pets/mcp/dist/index.js +``` + +This mirrors the current `local` sibling-package resolution, but should be named `bundled` so the UI does not imply a fragile source checkout path. + +### Desktop mode selection + +In desktop Agent Setup: + +- `app.isPackaged` should force `bundled`. +- Dev mode keeps current published/local toggle. +- UI should show the dev checkbox disabled in packaged app, with text indicating packaged bundled commands are used. + +### Hook settings + +Bundled hook settings should still use the OpenPets marker: + +```text +node "/@open-pets/claude/dist/cli.js" hook --openpets-managed +``` + +Uninstall must continue to remove any OpenPets-managed hooks by marker, including old published/local commands. + +Install/update should replace old OpenPets-managed published/local commands with bundled commands when running from packaged app. + +### MCP settings + +Bundled MCP settings should configure Claude with: + +```json +{ + "type": "stdio", + "command": "node", + "args": ["/@open-pets/mcp/dist/index.js"] +} +``` + +If a pet is selected: + +```json +"args": ["/@open-pets/mcp/dist/index.js", "--pet", "pet-id"] +``` + +### Packaging contract + +Package output checks should assert: + +- `node_modules/@open-pets/mcp/dist/index.js` exists. +- `node_modules/@open-pets/claude/dist/cli.js` exists. +- `node_modules/@open-pets/client/dist/index.js` exists. +- required MCP third-party dependencies exist (`@modelcontextprotocol/sdk`, `zod`, etc.) if included by builder. +- no symlink escapes package output. + +### Security/safety + +Path validation should reject: + +- missing files, +- directories/symlinks when a regular file is expected, +- paths whose `realpath` is outside the packaged app resource/app root in bundled mode, +- `.asar` paths unless the target is explicitly unpacked/readable as a regular file, +- command strings containing newline/null. + +Do not silently fall back to `npx` in packaged app if bundled resources are missing; that would reintroduce the Phase 10A blocker. + +## Risks and tradeoffs + +- **Installed app path moves.** Claude settings will contain absolute paths into the installed app; if the user moves/deletes OpenPets, Agent Setup doctor should report needs update/error and the user should reinstall/update config. +- **ASAR disabled in Phase 10A.** Bundled commands rely on regular files. If ASAR is enabled later, MCP/Claude command files must move to `asarUnpack` or `extraResources`. +- **Node availability.** Commands use `node`, so users still need Node available for Claude to launch MCP/hooks. This matches the project's Node/npm/npx direction and avoids bundling a separate runtime in this phase. +- **Cross-platform paths.** Windows paths with spaces must be handled through Claude MCP arg arrays and shell-quoted hook command strings. + +## Security/privacy notes + +- No silent Claude configuration changes. +- Backups remain required before Claude settings hook writes. +- Bundled commands are local files shipped with OpenPets, not remote downloads. +- No TCP/HTTP control plane is introduced. +- Speech/privacy rules from earlier phases remain unchanged. +- Uninstall removes only OpenPets-managed hooks by marker. + +## Test/check plan + +Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +Automated coverage: + +- bundled MCP preview command shape, +- bundled hook command shape, +- parse/classify expected bundled Claude MCP entries, +- bundled paths with spaces/backslashes in MCP arg arrays and hook shell quoting, +- bundled command path validation for existing and missing files, +- renderer/preload snapshot validation accepts `commandMode: "bundled"`, +- package output includes MCP/Claude/client runtime entries and MCP runtime deps. + +## Manual verification guide + +1. Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +2. Launch the packaged app. +3. Open Agent Setup. +4. Confirm command preview uses `node `, not `npx -y @open-pets/mcp`. +5. Confirm hook preview uses `node hook --openpets-managed`. +6. Configure Claude MCP only if you are ready to update your user Claude settings; verify backup/config behavior as in earlier phases. +7. Install/update hooks only if you are ready to update your user Claude settings; verify backup/config behavior as in earlier phases. +8. Run Claude Code and confirm MCP/hook behavior if desired. +9. Use Agent Setup to remove MCP/hooks after testing if you do not want packaged paths left in Claude settings. + +## Oracle plan review + +Reviewed by Oracle. + +Blocker: + +- The original plan omitted renderer/preload bundled-mode support. Current `apps/desktop/preload.cjs` validates command mode as only `published` or `local`, so a bundled snapshot would be rejected. The spec must include preload/renderer handling. + +Should-fix feedback: + +- Add explicit Node prerequisite handling because packaged bundled commands require `node` on Claude's PATH. +- Validate bundled paths with `realpath` against the packaged app root, not simple string prefix. Reject missing files, directories, symlinks, `.asar` paths unless unpacked, newline/NUL/quote/shell-dangerous chars. +- Ensure missing bundled resources produce actionable Agent Setup status/error instead of unhandled IPC failure. +- Add cross-platform tests for paths with spaces/backslashes, MCP args arrays, hook shell quoting, and bundled `claude mcp get` parsing. +- Extend package contract checks to require `@open-pets/mcp/dist/index.js` plus runtime deps like `@modelcontextprotocol/sdk` and `zod`. +- Update docs to state Claude settings contain absolute OpenPets app paths; moving/deleting/updating the app may require Agent Setup replace/update/remove. + +Nice-to-have feedback: + +- Centralize command-mode/path resolution helpers. +- Show shortened paths in UI while writing full absolute paths to Claude settings. +- Add future ASAR note for `asarUnpack` or `extraResources`. + +Verdict: architecture is sound, but not implementation-ready until preload bundled-mode support and path/quoting/test clarifications are added. + +## Oracle feedback disposition + +Fixed: + +- Added `apps/desktop/preload.cjs` to proposed files and acceptance criteria for bundled-mode renderer support. +- Added Node prerequisite warning/disable requirement. +- Strengthened realpath/path validation requirements. +- Added missing-resource error-state requirement. +- Added cross-platform path/quoting tests to test plan. +- Added MCP runtime deps to package contract requirements. +- Added absolute packaged path docs requirement. + +Accepted: + +- Centralize command/path helpers where practical during implementation. +- Show shortened paths in UI while writing full paths if cheap. + +Deferred: + +- ASAR support remains future release hardening; Phase 10B should note that ASAR requires `asarUnpack`/`extraResources` for externally executed JS files. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blockers: none. + +Should-fix feedback: + +- Prevent broken writes when `node` is unavailable. `detectClaudeCodeStatus()` reports “Node required”, but action handlers must also guard configure/replace/install-hooks in bundled mode. +- Keep cleanup available on bundled-resource errors. `remove` and `uninstall-hooks` should not be blocked by missing bundled MCP/hook resources. +- Add stronger Windows/path tests for hook command quoting, MCP args arrays, and text parsing of bundled paths with spaces. +- Reject symlink command files or document reliance on package checks. +- Manual packaged Agent Setup verification remains required. + +Nice-to-have feedback: + +- Make bundled tests explicitly depend on built `@open-pets/mcp` or avoid relying on stale sibling `dist` state. +- Clarify Node PATH check is best-effort because Claude's runtime environment may differ. +- Keep ASAR/`extraResources` deferred as documented. + +Verdict: architecture is sound and package contract is substantially adequate; fix node/action guard and cleanup-path issues before final acceptance. + +## Oracle implementation feedback disposition + +Fixed: + +- Added action-level bundled Node guard before configure/replace/install-hooks. +- Moved cleanup actions so `remove` and `uninstall-hooks` remain available even if bundled command resources are missing. +- Added quoted-path parsing and Windows-style path display checks for Claude MCP command handling. +- Runtime bundled command validation now rejects symlink entry files in addition to using `realpath` containment checks. + +Accepted: + +- Manual packaged Agent Setup verification remains a phase gate. + +Deferred: + +- ASAR/`extraResources` release hardening remains deferred. + +Final Oracle re-check: + +- Blockers: none. +- Remaining should-fix: none from the prior Oracle review. +- Manual packaged Agent Setup UI verification remains as the phase gate before closing. +- Verdict: proceed to user manual packaged verification for bundled MCP preview/configure, hook preview/install, real Claude behavior if desired, and cleanup/remove. diff --git a/docs/phases/phase-10c-asar-runtime-packaging.md b/docs/phases/phase-10c-asar-runtime-packaging.md new file mode 100644 index 00000000..3263690f --- /dev/null +++ b/docs/phases/phase-10c-asar-runtime-packaging.md @@ -0,0 +1,257 @@ +# Phase 10C: ASAR Runtime Packaging + +## Goal + +Move the desktop package from fully unpacked local-validation output to a more release-like ASAR package while keeping Claude's externally executed MCP and hook commands available as regular unpacked files. + +Phase 10C should reduce package over-inclusion from Phase 10A/10B and prove the packaged app still works with bundled Claude commands. + +## Non-goals + +- No public signed/notarized release. +- No installer targets beyond the current `--dir` package checkpoint unless trivial. +- No npm publishing. +- No auto-update. +- No start-at-login. +- No new agent integrations. +- No changing Claude hook/MCP behavior except paths needed for ASAR packaging. + +## User-visible/manual outcome + +The current-platform package still builds with: + +```bash +pnpm package:desktop:dir +``` + +The generated app uses ASAR for the Electron app contents, but still includes unpacked files that Claude can execute with external `node`: + +```text +app.asar +app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js +app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js +``` + +Agent Setup packaged previews should point at `app.asar.unpacked/...` paths, not `app.asar/...` paths and not source checkout paths. + +## Acceptance criteria + +- `electron-builder` ASAR packaging is enabled. +- Externally executed bundled command files are unpacked: + - `@open-pets/mcp/dist/index.js`, + - `@open-pets/claude/dist/cli.js`, + - package metadata (`package.json`) needed for ESM/package resolution, + - all runtime files and transitive dependencies those commands need when launched by external `node`. +- Packaged Agent Setup bundled MCP preview points at a regular file outside `app.asar`, preferably under `app.asar.unpacked`. +- Packaged hook preview points at a regular file outside `app.asar`, preferably under `app.asar.unpacked`. +- Desktop runtime imports from ASAR still work for the Electron app itself. +- Package contract checks assert: + - `app.asar` exists, + - externally executed command entry files exist under unpacked resources, + - unpacked command package metadata exists, + - external `node` can execute packaged MCP/Claude command entry points in safe smoke modes, + - generated bundled command preview paths do not contain `.asar` except `.asar.unpacked`, + - no symlinks escape package output, + - forbidden repo/user-data patterns remain absent. +- Runtime bundled path resolution handles both dev/unpacked and packaged ASAR layouts. +- Claude bundled path validation still rejects missing files, symlinks, and true `app.asar` paths, while allowing `app.asar.unpacked` paths. +- `docs/mvp-validation.md` is updated to describe ASAR + unpacked command resources. +- `pnpm test` passes. +- `pnpm check` passes. +- `pnpm package:desktop:dir` passes. + +## Proposed files/directories + +- `apps/desktop/electron-builder.yml` + - Enable ASAR and configure unpacking for externally executed OpenPets command resources. +- `packages/claude/src/claude-code.ts` + - Resolve bundled MCP path to ASAR-unpacked location when running from ASAR. +- `packages/claude/src/hook-settings.ts` + - Resolve bundled Claude CLI path to ASAR-unpacked location when running from ASAR. +- `packages/claude/src/check-claude-code.ts` + - Cover ASAR-to-unpacked path mapping. +- `packages/claude/src/check-claude-hooks.ts` + - Cover ASAR-to-unpacked hook CLI path mapping. +- `apps/desktop/src/check-packaging-contract.ts` + - Validate ASAR/unpacked package output and bundled command files. +- `docs/mvp-validation.md` + - Update packaging notes. +- `docs/phases/phase-10c-asar-runtime-packaging.md` + +## Technical approach + +### Builder config + +Enable ASAR: + +```yaml +asar: true +``` + +Use `asarUnpack` for externally executed command resources and their module metadata/dependency closure. Initial candidate: + +```yaml +asarUnpack: + - node_modules/@open-pets/mcp/** + - node_modules/@open-pets/claude/** + - node_modules/@open-pets/client/** + - node_modules/@modelcontextprotocol/** + - node_modules/zod/** +``` + +If runtime smoke testing shows additional MCP SDK transitive dependencies are required for external `node`, include them. Prefer a minimal external command runtime subtree, but correctness is more important than micro-optimizing package size in this phase. + +### Path mapping + +When `@open-pets/claude` runs inside Electron from `app.asar`, its `import.meta.url` may include `app.asar`. Bundled command paths for Claude must map to `app.asar.unpacked`. + +Add a pure, tested path mapper with behavior: + +```text +.../Resources/app.asar/node_modules/@open-pets/claude/dist/index.js +=> +.../Resources/app.asar.unpacked/node_modules/@open-pets/claude/dist/cli.js +.../Resources/app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js +``` + +In dev/non-ASAR mode, continue resolving sibling workspace package paths as today. + +Validation must reject true `app.asar` command paths but allow `app.asar.unpacked` paths. + +### Validation + +Package output contract should locate either: + +- ASAR + `app.asar.unpacked` resources from Phase 10C. + +Phase 10C should prefer ASAR and fail if `app.asar` is missing after package output. + +Because forbidden-file checks cannot simply walk inside `app.asar` as a directory, use an ASAR library/tool or verify through builder file config plus unpacked tree checks. + +Post-package smoke checks should execute: + +```bash +node /node_modules/@open-pets/mcp/dist/index.js --version +node /node_modules/@open-pets/claude/dist/cli.js hook --openpets-managed +``` + +The hook smoke must use isolated/missing discovery input so it does not contact a real desktop app. + +## Risks and tradeoffs + +- **Dependency completeness:** external `node` running unpacked MCP/hook files may need dependencies that were left inside `app.asar`. Package contract and manual Claude tests must catch this. +- **Path mapping:** ASAR path rewrites are easy to get subtly wrong on Windows. Keep mapping string-based and covered by tests. +- **Package size:** unpacking command packages duplicates some files. Accept for this MVP unless it becomes excessive. +- **Future installers/signing:** signing/notarization remains deferred. + +## Security/privacy notes + +- Do not weaken renderer sandbox/context isolation/CSP. +- Do not include user data, Claude settings, backups, or secrets in package output. +- Claude config changes remain explicit/backup-protected. +- Externally executed command files must be shipped by OpenPets, not downloaded dynamically. + +## Test/check plan + +Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +Automated coverage: + +- ASAR path maps to ASAR-unpacked command path. +- True `app.asar` command paths are rejected while `app.asar.unpacked` command paths are allowed. +- Package output contains `app.asar` and unpacked command resources. +- Packaged command resources are regular files, not symlinks. +- External `node` smoke-executes packaged MCP/Claude command files. + +## Manual verification guide + +Manual verification is provided after implementation. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Make `asarUnpack` dependency closure explicit; external `node` cannot resolve modules left inside `app.asar`. +- Include package metadata in unpacked resources because ESM packages need `package.json`, `type`, and exports metadata. +- Add post-package smoke checks that actually run packaged MCP and Claude CLI entry points with safe inputs. +- Change validation semantics from rejecting any `.asar` to rejecting true `app.asar` while allowing `app.asar.unpacked`. +- Add pure/tested path mapper for `app.asar` → `app.asar.unpacked`, including Windows/backslash and spaces cases. +- Update package contract for ASAR-era layout: `app.asar` exists and command files are regular non-symlink files under `app.asar.unpacked`. +- If forbidden-file checks cannot walk ASAR contents, inspect ASAR with a tool/library or explicitly verify builder config plus unpacked tree checks. + +Nice-to-have feedback: + +- Prefer a minimal external command runtime subtree, but do not over-optimize before smoke checks pass. +- Document ASAR as packaging hygiene, not a security boundary. +- Keep installer/signing deferred. + +Verdict: implementation-ready after tightening unpacked dependency/metadata and smoke-test requirements. + +## Oracle feedback disposition + +Fixed: + +- Added explicit unpacked dependency and package metadata requirements. +- Added external node smoke-test requirements for MCP and Claude command entry points. +- Clarified validation should reject true `app.asar` but allow `app.asar.unpacked`. +- Added pure ASAR path mapper requirement and ASAR-era package contract requirements. +- Clarified forbidden-file checks must account for ASAR not being a normal directory. + +Accepted: + +- Keep installer/signing deferred. +- Document ASAR as packaging hygiene, not a security boundary in implementation docs. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blocker: + +- The ASAR-unpacked command target was mapped from `app.asar` to `app.asar.unpacked`, but the bundled validation root was still derived from `import.meta.url` under `app.asar`. Valid unpacked command paths could be rejected as outside root. + +Should-fix feedback: + +- Add a test for validation/root containment behavior, not only the string mapper. +- Manual packaged Agent Setup UI verification remains required. +- Consider cleaning `dist-electron` before packaging to avoid stale output masking regressions. + +Nice-to-have feedback: + +- Narrow `asarUnpack` later; `node_modules/**` is acceptable for MVP because command smokes prove dependency closure. +- Make `mapAsarPathToUnpacked` match `app.asar` as a path segment only. + +Verdict: close, but fix ASAR containment-root issue before acceptance. + +## Oracle implementation feedback disposition + +Fixed: + +- Bundled validation roots now pass through the same `app.asar` → `app.asar.unpacked` mapper as command target paths. +- `mapAsarPathToUnpacked` now matches `app.asar` as a path segment and leaves `app.asar.unpacked` unchanged. +- Added mapper coverage for path-segment behavior and already-covered command smoke tests validate packaged command files under `app.asar.unpacked`. + +Accepted: + +- `node_modules/**` remains unpacked for this MVP phase to keep external command dependency closure reliable. + +Needs manual verification: + +- Packaged Agent Setup UI must be manually verified after implementation. + +Final Oracle re-check: + +- Blockers: none. +- Remaining should-fix: none from the prior review. +- Manual packaged Agent Setup/Claude verification remains the phase gate before closing. +- Verdict: ASAR-to-unpacked path mapping and containment validation look correct; package command smokes passed; proceed to manual packaged verification. diff --git a/docs/phases/phase-10d-package-polish-clean-output.md b/docs/phases/phase-10d-package-polish-clean-output.md new file mode 100644 index 00000000..a4ad596c --- /dev/null +++ b/docs/phases/phase-10d-package-polish-clean-output.md @@ -0,0 +1,164 @@ +# Phase 10D: Package Polish and Clean Output + +## Goal + +Polish the desktop package metadata and make package output deterministic by cleaning stale output before each package build. + +This phase targets the warnings/noise surfaced during Phase 10A-10C packaging, without taking on signing, notarization, installers, or new product features. + +## Non-goals + +- No code signing or notarization. +- No installer targets beyond the current `--dir` package checkpoint. +- No app icon format generation unless it is trivial and safe. +- No npm publishing. +- No auto-update. +- No changes to Claude MCP/hooks behavior. + +## User-visible/manual outcome + +Packaging should be cleaner and less fragile: + +- desktop package metadata includes description/author fields used by packagers, +- packaging scripts remove stale `dist-electron` output before rebuilding, +- package contract checks enforce clean-output behavior and metadata presence, +- documentation notes remaining unsigned/default-icon limitations. + +## Acceptance criteria + +- `apps/desktop/package.json` includes package metadata expected by `electron-builder`, at minimum: + - `description`, + - `author`. +- Package scripts clean `apps/desktop/dist-electron` before running `electron-builder --dir`. +- Both `package` and `package:dir` clean `apps/desktop/dist-electron` before running `electron-builder` because both write that output directory. +- Cleanup uses a repository-owned helper that resolves and verifies the exact target before deleting; it does not accept path/env arguments. +- Root `pnpm package:desktop:dir` still performs a full workspace build before packaging. +- Package contract checks assert metadata presence and clean-output script behavior. +- Package contract checks verify clean-output behavior with a stale sentinel or equivalent helper contract, not only script text. +- `docs/mvp-validation.md` documents any remaining package warnings, including unsigned app and default app icon if still present. +- `pnpm test` passes. +- `pnpm check` passes. +- `pnpm package:desktop:dir` passes. + +## Proposed files/directories + +- `apps/desktop/package.json` + - Add metadata and clean-output package script. +- `apps/desktop/src/check-packaging-contract.ts` + - Assert metadata and package script behavior. +- `apps/desktop/scripts/clean-package-output.cjs` + - Cross-platform cleanup helper for `dist-electron`. +- `docs/mvp-validation.md` + - Update package warning notes. +- `docs/phases/phase-10d-package-polish-clean-output.md` + +## Technical approach + +Use only Node/pnpm commands. Add a tiny CommonJS cleanup helper instead of shell-specific `rm -rf` or brittle inline `node -e` quoting: + +```text +apps/desktop/scripts/clean-package-output.cjs +``` + +The helper should: + +1. Resolve `apps/desktop/dist-electron` relative to its own location. +2. Verify the basename is `dist-electron` and parent is the desktop package root. +3. Delete with `fs.rmSync(target, { recursive: true, force: true })`. +4. Accept no path/env overrides. + +Package scripts should run the helper before `electron-builder`: + +```json +"package": "pnpm build && node scripts/clean-package-output.cjs && electron-builder", +"package:dir": "pnpm build && node scripts/clean-package-output.cjs && electron-builder --dir && node dist/check-packaging-contract.js --output" +``` + +Do not add icon generation in this phase unless the existing PNG can be safely referenced without platform-specific conversion issues. + +## Risks and tradeoffs + +- Cleaning output removes previous packaged builds, which is intended for deterministic packaging. +- App icon polish may need platform-specific `.icns` / `.ico` generation; defer if not trivial. +- Metadata should not imply public distribution readiness while signing/notarization are still deferred. + +## Security/privacy notes + +- Cleaning only targets `apps/desktop/dist-electron`. +- Do not include user data, Claude settings, backups, or secrets. +- No changes to Claude config mutation behavior. + +## Test/check plan + +Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +## Manual verification guide + +Manual verification is provided after implementation. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Use a real cross-platform cleanup helper instead of inline `node -e`; inline example was invalid/brittle. +- Cleanup helper must resolve and verify exact target `apps/desktop/dist-electron` before deleting, with no path/env override. +- Acceptance should verify clean behavior, not only script text. +- Clarify both `package` and `package:dir` clean output. +- Add cleanup helper path to proposed files. + +Nice-to-have feedback: + +- Keep icon generation deferred and document default Electron icon warning. +- Metadata should not imply public release readiness while signing/notarization are deferred. +- Avoid overly brittle full-string script assertions where possible. + +Verdict: implementation-ready after cleanup helper/verification clarifications. + +## Oracle feedback disposition + +Fixed: + +- Replaced inline cleanup approach with a dedicated helper. +- Added exact-target verification/no-override requirements. +- Added clean-behavior verification requirement. +- Clarified both package scripts clean output. +- Added helper file to proposed files. + +Accepted: + +- Icon generation remains deferred and will be documented as a known package warning. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blockers: none. + +Should-fix: none. + +Nice-to-have feedback: + +- Document that desktop `pnpm test` may delete `apps/desktop/dist-electron` because it exercises the cleanup helper. +- Consider making contract script assertions less exact over time; current checks are acceptable. + +Verdict: implementation is sound. Cleanup is scoped/cross-platform, metadata is appropriate, docs accurately defer default icon/signing, and validation passed. + +## Oracle implementation feedback disposition + +Fixed: + +- Added docs note that desktop package tests may remove `apps/desktop/dist-electron` while exercising the cleanup helper. + +Accepted: + +- Current script assertions remain as-is for now. diff --git a/docs/phases/phase-10e-app-icon-package-identity.md b/docs/phases/phase-10e-app-icon-package-identity.md new file mode 100644 index 00000000..addd1c06 --- /dev/null +++ b/docs/phases/phase-10e-app-icon-package-identity.md @@ -0,0 +1,153 @@ +# Phase 10E: App Icon Package Identity + +## Goal + +Replace the default Electron packaged-app icon with OpenPets-owned package icon assets while keeping tray icon behavior unchanged. + +This phase removes the remaining default-icon packaging warning for the current macOS package and documents Windows/Linux icon follow-up if needed. + +## Non-goals + +- No signing/notarization. +- No installer targets beyond `--dir`. +- No visual redesign of the app UI. +- No new marketing/brand system. +- No replacing the small tray icon unless packaging requires shared source art. + +## User-visible/manual outcome + +The packaged app no longer uses Electron's default app icon. On macOS package output, `OpenPets.app` has an OpenPets MVP app icon. If generated from the current 64×64 source, the icon is temporary and may look soft at large sizes. + +## Acceptance criteria + +- A package app icon asset exists under desktop assets/build resources. +- `electron-builder` config points at the app icon. +- macOS `pnpm package:desktop:dir` no longer emits the default Electron icon warning, or the warning remains explicitly documented if generated icon quality is rejected. +- The tray icon remains loaded from `assets/tray-icon.png` and still renders in the tray. +- Package contract checks assert app icon assets/config exist. +- Package contract checks assert tray icon code/config still points at `assets/tray-icon.png`. +- Icon generation must not leave temporary `icon.iconset/` directories in the repository. +- `docs/mvp-validation.md` updates the default-icon note. +- `pnpm test` passes. +- `pnpm check` passes. +- `pnpm package:desktop:dir` passes. + +## Proposed files/directories + +- `apps/desktop/assets/app-icon.icns` + - macOS app icon generated from OpenPets-owned source art. +- `apps/desktop/electron-builder.yml` + - Add macOS icon config. +- `apps/desktop/src/check-packaging-contract.ts` + - Assert icon config and asset exist. +- `docs/mvp-validation.md` + - Update icon warning notes. +- `docs/phases/phase-10e-app-icon-package-identity.md` + +## Technical approach + +Use the existing `assets/tray-icon.png` as the source for a simple MVP app icon if it produces acceptable results. The current PNG is 64×64, so generated `.icns` will be basic and can be visually improved later with higher-resolution brand artwork. + +Generate `.icns` on macOS using built-in tools if available, using a temporary directory outside the repo or cleaning it before completion: + +```bash +mkdir -p icon.iconset +sips -z ... +iconutil -c icns icon.iconset +``` + +If high-quality `.icns` generation is not reliable from the 64×64 source, do not fake a polished icon. Either commit an MVP/temporary `.icns` and document soft quality, or document the asset limitation and defer high-resolution icon work. + +Configure electron-builder: + +```yaml +mac: + icon: assets/app-icon.icns +``` + +Keep Windows/Linux icons deferred unless existing tooling can produce `.ico`/PNG assets safely without extra dependencies. + +## Risks and tradeoffs + +- Source tray icon is only 64×64, so the app icon may look soft at large sizes. +- `.icns` generation is macOS-specific; acceptable because current packaging validation is on macOS. +- Windows/Linux icon polish may need separate assets and should be deferred unless trivial. + +## Security/privacy notes + +- Icon generation must use repository assets only. +- No user data or config is touched. + +## Test/check plan + +Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +Check package output logs for default Electron icon warning absence. +If practical, inspect the generated `.icns` with `iconutil -c iconset` or `file`. + +## Manual verification guide + +Manual verification is provided after implementation and should include checking the packaged `.app` Finder/Dock icon and confirming the tray icon still appears. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Do not describe an upscaled 64×64 `.icns` as polished; acceptance should allow MVP/temporary quality or deferral if bad. +- Add contract checks for `assets/app-icon.icns`, `mac.icon`, and tray icon still using `assets/tray-icon.png`. +- Add manual verification for packaged Finder/Dock icon and tray icon. +- Ensure temporary `icon.iconset/` is not left in repo. + +Nice-to-have feedback: + +- Build-resource directory may be better later; `assets/app-icon.icns` is acceptable now. +- Document Windows/Linux icon assets as future work. +- Inspect `.icns` with `iconutil` or `file` if feasible. + +Verdict: implementation-ready; frame as MVP identity cleanup, not final branding. + +## Oracle feedback disposition + +Fixed: + +- Spec now frames generated 64×64-derived icon as MVP/temporary and allows deferral if quality is unacceptable. +- Added contract check requirements for app icon, mac icon config, and unchanged tray icon path. +- Added manual verification requirements for packaged app icon and tray icon. +- Added temporary iconset cleanup requirement. +- Added optional `.icns` inspection note. + +Accepted: + +- Windows/Linux icon assets are future work, not Phase 10E failure. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blockers: none. + +Should-fix: none. + +Nice-to-have feedback: + +- Contract checks could eventually inspect packaged `.app` icon metadata; current `electron-builder` success and warning disappearance are enough for MVP. +- Future branding should replace the upscaled 64×64-derived `.icns` with high-resolution source art. + +Verdict: implementation is acceptable. Asset/config/checks/docs align with MVP package identity scope, tray behavior is guarded, and remaining signing/platform icon work is correctly deferred. + +## Oracle implementation feedback disposition + +Accepted: + +- Packaged `.app` metadata inspection remains future hardening. +- High-resolution branding remains future polish. diff --git a/docs/phases/phase-11-mvp-closeout-release-readiness.md b/docs/phases/phase-11-mvp-closeout-release-readiness.md new file mode 100644 index 00000000..a4635d47 --- /dev/null +++ b/docs/phases/phase-11-mvp-closeout-release-readiness.md @@ -0,0 +1,194 @@ +# Phase 11: MVP Closeout and Release Readiness + +## Goal + +Turn the current packaged OpenPets MVP into a clear, repeatable release-readiness checkpoint. + +This phase should consolidate the validation work from Phase 10A-10E into one broader MVP closeout pass: document exactly what is ready, what remains unverified, how to manually validate the package, and fix any small readiness gaps found while doing that review. + +## Non-goals + +- No public distribution release. +- No signing, notarization, installer generation, auto-update, or publishing. +- No new agent integrations beyond the current Claude-focused MVP. +- No major UI redesign or new onboarding/product feature. +- No Windows/Linux implementation work beyond documenting unverified status and known follow-up. +- No broad refactors unless required to make existing validation reliable. + +## User-visible/manual outcome + +The user has one authoritative MVP readiness guide and can run one documented local package validation flow to decide whether the current macOS unpacked package is MVP-ready for local dogfooding. + +If small readiness bugs are found during this pass, they are fixed in this phase. Larger items are explicitly documented as post-MVP/release follow-up instead of being silently expanded into this phase. + +## Acceptance criteria + +- `docs/mvp-validation.md` becomes the authoritative MVP closeout checklist rather than a Phase 10A-centric note. +- The checklist clearly separates: + - automated validation commands, + - macOS manual validation steps, + - cross-platform unverified gaps, + - signing/notarization/distribution deferrals, + - cleanup/uninstall guidance, + - known limitations and post-MVP follow-ups. +- The docs capture the current packaged Claude command expectations using `node` plus `app.asar.unpacked` paths. +- The docs make clear that Claude configuration can contain absolute packaged-app paths and must be replaced/removed after moving or deleting the app. +- Package validation remains local-only and does not mutate real Claude settings during automated tests. +- Any small readiness issues discovered while reviewing the validation path are fixed if they are low-risk and fit this phase. +- Any larger readiness issues are recorded as known limitations/follow-ups, not implemented silently. +- `pnpm test` passes. +- `pnpm check` passes. +- `pnpm package:desktop:dir` passes after tests/checks, so manual package validation uses fresh package output. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `docs/mvp-validation.md` + - Rework into MVP closeout/readiness guide. +- `docs/phases/phase-11-mvp-closeout-release-readiness.md` + - This phase spec, Oracle reviews, and dispositions. +- Potentially small targeted package/test/doc files if validation reveals a contained readiness gap. + +## Technical approach + +1. Audit the current MVP validation doc against the current package behavior from Phase 10A-10E. +2. Reorganize `docs/mvp-validation.md` into a release-readiness structure: + - status summary, + - automated command checklist, + - macOS packaged-app manual checklist, + - Agent Setup/Claude packaged command expectations, + - cleanup/rollback notes, + - platform/signing limitations, + - post-MVP follow-up list. +3. Run the full local validation commands in this order, because desktop package tests may delete `apps/desktop/dist-electron` while exercising the cleanup helper: + + ```bash + pnpm test + pnpm check + pnpm package:desktop:dir + ``` + +4. If validation finds small issues that are directly related to readiness clarity or package contract reliability, fix them in scope. Examples in scope: + - documentation corrections, + - missing package contract assertions, + - tiny validation-script fixes that keep existing behavior unchanged. +5. If validation finds behavior bugs, cross-platform failures, signing/installer/public distribution needs, or Claude workflow changes, record them as known limitations/follow-ups or ask the user before expanding scope. +6. Send the resulting diff and validation results to Oracle for implementation review. + +## Risks and tradeoffs + +- A closeout pass can easily become an unbounded bug-fix phase. Scope is intentionally limited to documentation clarity and small readiness fixes. +- Cross-platform package behavior remains unverified without Windows/Linux machines. The honest MVP outcome is to document that gap, not claim support that was not tested. +- The current package is unsigned and uses absolute paths for packaged Claude commands. That is acceptable for local MVP validation but not for public distribution. +- Generated app icon quality is temporary because it is derived from a 64×64 source asset. + +## Security/privacy notes + +- Automated tests and package checks must keep using temp fixtures and must not modify real Claude settings or real user OpenPets state. +- MVP docs should warn users before they use Agent Setup actions that mutate Claude settings. +- Speech/privacy rules from earlier phases remain unchanged: short safe pet messages only, no code/logs/secrets/URLs/path-like content. +- Cleanup guidance should distinguish OpenPets app data from Claude configuration so users do not assume deleting the app removes agent integrations. + +## Test/check plan + +Run in this order: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +If any targeted code/test changes are made, also run the most specific affected package checks first where useful. + +## Manual verification guide + +Manual verification is provided after implementation. It should ask the user to run the revised `docs/mvp-validation.md` macOS checklist against the packaged app and confirm whether the MVP closeout passes locally. + +The revised checklist must explicitly cover: + +1. Launching the packaged app from `apps/desktop/dist-electron/`. +2. Tray icon/menu presence. +3. Default pet show/hide, pause/resume, drag, and persistence basics. +4. Onboarding presence/completion or documented reset path. +5. Pet Manager installed/catalog state rendering. +6. Settings preference toggle and restart persistence. +7. Local IPC smoke with `pnpm --filter @open-pets/client smoke:status` while the packaged app is running. +8. Agent Setup preview showing bundled `node .../app.asar.unpacked/...` commands, not unpublished `npx -y @open-pets/*` commands. +9. Claude configure/install as an optional mutating step only, with backups and remove/uninstall cleanup called out. +10. Quitting OpenPets from the tray. + +## MVP scope statement + +Phase 11 validates a macOS local `--dir` dogfooding checkpoint only. + +The readiness guide must clearly document these prerequisites and limitations: + +- `pnpm` workspace checkout is required for developer validation commands. +- Packaged Claude bundled commands require `node` on Claude's PATH. +- The package is unsigned and not notarized. +- Windows/Linux package behavior, installers, auto-update, and public distribution are unverified/deferred. +- Claude settings may contain absolute paths into the packaged app and should be replaced/removed after moving or deleting the app. +- OpenPets app data cleanup and Claude config cleanup are separate. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Run `pnpm test` and `pnpm check` before `pnpm package:desktop:dir`, because tests may delete package output. +- Bound “small readiness fixes” with examples and require deferral/user approval for larger behavior/platform/signing/Claude workflow changes. +- Make the manual checklist explicit in the spec/docs. +- Separate safe Agent Setup preview validation from optional mutating Claude configure/install steps. +- State MVP scope honestly as macOS local `--dir` dogfooding only. +- Include prerequisites and limitations: Node on PATH for Claude bundled commands, workspace/pnpm requirement, unsigned warnings, absolute Claude paths, ASAR unpacked resources. + +Nice-to-have feedback: + +- Add a concise readiness status table. +- Include artifact identity details such as output path, app version, date/commit/manual tester fields. +- Add cleanup/data-loss notes distinguishing OpenPets app data from Claude config. + +Verdict: not implementation-ready until command-order, checklist, and scope-boundary issues are fixed. + +## Oracle feedback disposition + +Fixed: + +- Validation command order now runs `pnpm test`, `pnpm check`, then `pnpm package:desktop:dir`. +- In-scope small readiness fixes are bounded to docs, package contract assertions, and tiny validation-script fixes; larger behavior/platform/signing/Claude workflow changes require deferral or user approval. +- Manual checklist requirements are explicit in the spec. +- Claude Agent Setup preview is separated from optional mutating Claude configure/install validation. +- MVP scope is explicitly macOS local `--dir` dogfooding only. +- Prerequisites and limitations are explicitly listed. + +Accepted for implementation: + +- Add readiness status table. +- Add artifact identity fields where useful. +- Add cleanup/data-loss notes distinguishing OpenPets app data from Claude config. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blockers: none. + +Should-fix: none. + +Nice-to-have feedback: + +- Add a commit/SHA field to Artifact identity when doing an actual release-readiness run. +- Add typical macOS app-data path as a convenience while keeping the logged-path guidance. + +Verdict: implementation-ready for manual user verification. The docs are honest about macOS-only local `--dir` readiness, clearly separate safe vs mutating Claude steps, document absolute packaged Claude paths and cleanup/data-loss risks, and preserve the workflow gate before closing MVP readiness. + +## Oracle implementation feedback disposition + +Accepted: + +- Commit/SHA artifact fields can be filled during an actual release-readiness run. +- Typical platform app-data paths can be added as future documentation polish; the current logged-path guidance is the source of truth and avoids platform-path drift. diff --git a/docs/phases/phase-12-actual-pet-animation-polish.md b/docs/phases/phase-12-actual-pet-animation-polish.md new file mode 100644 index 00000000..5a5f4a8b --- /dev/null +++ b/docs/phases/phase-12-actual-pet-animation-polish.md @@ -0,0 +1,253 @@ +# Phase 12: Actual Pet Animation Polish + +## Goal + +Replace the placeholder-feeling built-in pet experience with an actual animated pet renderer and premium compact chat bubble that feel alive in the packaged app. + +This phase should make the default OpenPets experience look like a real desktop companion instead of a CSS/wireframe prototype, while preserving the stable packaging, IPC, Claude, and pet-install safety work already completed. + +## Non-goals + +- No public marketplace/catalog redesign. +- No signing, notarization, installer, or distribution changes. +- No new agent integrations. +- No broad Pet Manager/Agent Setup UI redesign unless needed to preview the actual pet. +- No complex physics simulation. +- No audio. +- No unvalidated remote pet format expansion that weakens install safety. + +## User-visible/manual outcome + +When the user launches OpenPets, the default pet appears as an actual animated sprite/visual companion, not a simple CSS mascot or static image. + +The pet should: + +- idle with a high-quality loop, +- switch to directional drag/move animation based on mouse drag direction, +- react visibly to pause/resume, +- show premium compact speech/reaction bubbles cleanly, +- stay transparent/framed like a desktop pet, +- remain draggable and non-disruptive, +- package correctly in the macOS local app. + +## Acceptance criteria + +- A real bundled default pet visual asset exists in `apps/desktop/assets/` or another packaged desktop asset location. +- Bundled pet asset contract is explicit: + - source file: `apps/desktop/assets/default-pet-spritesheet.webp`, copied from the real catalog material for Claude (`https://zip.openpets.dev/pets/claude-f187e74a/claude.zip` / `web/public/pets/claude-f187e74a/spritesheet.webp`), + - no remote runtime art fetch, + - known frame layout/dimensions documented in code comments or constants: 1536×1872, 8 columns × 9 rows, 192×208 frames, + - at minimum supports `idle`, `run-left`, and `run-right` visual states, + - no SVG-coded/generated substitute for the default pet. +- The built-in default pet renderer uses the asset instead of the CSS-only mascot. +- The pet renderer supports at least an idle animation loop for the bundled pet. +- Dragging the pet changes animation/direction based on mouse movement: + - dragging right uses a right-facing/running-right visual state, + - dragging left uses a left-facing/running-left visual state, + - stopping drag settles back to idle without jitter. +- Drag-direction detection does not rely on renderer pointer events inside `-webkit-app-region: drag`. +- Installed-pet rendering uses the same current catalog sprite contract as the built-in default pet: 1536×1872 WebP, 8 columns × 9 rows, 192×208 frames, with idle/run-right/run-left rows animated instead of showing the full spritesheet. +- Pause/resume visibly affects animation without breaking window transparency or input behavior. +- Speech/reaction bubble styling is polished enough for MVP: premium compact text, readable typography, subtle depth, clean pointer, constrained dimensions, gentle entrance/exit, not huge, not wireframe, and does not expose unsafe message content beyond existing filtering. +- Pet window sizing/clamping accounts for the actual visual asset and bubble space. +- The tray icon and packaged app icon behavior remain unchanged. +- Package contract checks cover the new bundled pet asset(s). +- Package contract checks verify the source asset exists, is non-empty, and remains covered by packaged `assets/**` inclusion. +- `pnpm test` passes. +- `pnpm check` passes. +- `pnpm package:desktop:dir` passes. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `apps/desktop/assets/` + - Add bundled default pet sprite/asset file(s). +- `apps/desktop/src/pet-window.ts` + - Replace CSS-only built-in pet with asset-backed rendering. + - Add animation-state CSS/JS for bundled pet. + - Add drag-direction animation state handling driven from safe main-process window movement signals, not renderer pointer events in draggable regions. + - Polish bubble/reaction presentation. +- `apps/desktop/pet-preload.cjs` + - Optional narrow preload for pet windows if needed to receive main-process motion events and update DOM state without enabling Node in the renderer. +- `apps/desktop/src/built-in-pet.ts` + - Document or reference bundled pet asset expectations if useful. +- `apps/desktop/src/display.ts` + - Adjust default pet window sizing if the actual pet needs more space. +- `apps/desktop/src/check-packaging-contract.ts` + - Assert bundled pet asset(s) are present and packaged. +- `docs/mvp-validation.md` + - Update manual validation checklist to include actual animated pet quality checks. +- `docs/phases/phase-12-actual-pet-animation-polish.md` + - This phase spec, reviews, and dispositions. + +## Technical approach + +1. Choose a safe MVP asset strategy: + - Use a repository-owned bundled WebP/PNG sprite asset from the existing catalog materials. + - Do not use SVG-coded/generated substitute art for the default pet. + - Initial target contract: one local 1536×1872 sprite sheet with 8 columns × 9 rows, 192×208 frames, and rows/states for `idle`, `run-left`, and `run-right`. + - Do not fetch remote art at runtime. +2. Implement asset-backed built-in pet rendering: + - Keep the pet window sandboxed/context-isolated. + - Keep CSP strict and allow only the needed local/data image sources (`img-src file: data:` for file-backed images). + - If renderer-side state JS is required, prefer a narrow preload listening for whitelisted IPC messages. Do not enable Node integration, remote scripts, eval, or broad renderer privileges. + - Preserve transparent frameless always-on-top behavior. +3. Add MVP animation: + - Use CSS sprite/background animation or a small controlled frame loop. + - Avoid heavy dependencies. + - Respect pause/resume with `animation-play-state` or equivalent. + - During drag, infer horizontal drag direction from main-process `BrowserWindow` movement deltas because Electron draggable regions do not reliably deliver renderer pointer events. + - Send only whitelisted motion states (`idle`, `run-left`, `run-right`) to the pet renderer, via narrow preload IPC or another bounded safe bridge. + - Use simple thresholding/debouncing so the pet does not flicker between left/right on tiny movements. + - Return to idle after drag stops or after a short no-movement timeout. + - Add `prefers-reduced-motion` handling where practical. +4. Polish the pet and chat bubble presentation: + - Better shadow/depth around the pet image. + - Speech bubble with small premium typography, constrained width/height, subtle entrance/exit, pointer styling, and layered shadow instead of harsh borders. + - Bubble copy should feel like a compact companion status, not a toast/card: short line length, balanced wrapping, soft radius, optical alignment to the pet, and no giant empty surface. + - Bubble content must be rendered as escaped text/textContent only, never `innerHTML` from message content. + - Apply shared bubble styling to both built-in and installed pet windows so the default and installed experiences do not diverge badly. + - No `transition: all`; animate specific transform/opacity properties only. +5. Preserve installed pet behavior: + - Current installed catalog pets provide `spritesheet.webp` using the 1536×1872 / 8×9 / 192×208 contract. + - Render installed pets through the same CSS sprite-frame approach as the built-in default pet, not as a full-sheet image. + - Do not show a decorative fallback square/box behind valid installed pets. + - If future metadata parsing is added, keep it strict and backward-compatible. +6. Update contract checks/docs and run full validation. + +## Risks and tradeoffs + +- Art quality can consume too much time. This phase should improve the default from wireframe to delightful MVP, not solve final branding. +- Sprite animation format changes can break installed pets if not backward-compatible. Phase 12 assumes the current catalog/v1 1536×1872 / 8×9 / 192×208 spritesheet contract; future custom formats need explicit validation/metadata work. +- `-webkit-app-region: drag` prevents reliable renderer pointer events. Drag animation must be driven from main-process window movement or a narrow custom drag architecture. +- Window transparency, draggable regions, and speech bubbles are platform-sensitive; keep the implementation simple and test packaged output. +- Chat bubble polish can expand into broad UI redesign. Keep scope to the pet window bubble only. +- Drag-direction animation can be jittery if based on every pointer event. Use thresholds and smoothing rather than instant direction flips. +- Larger pet/bubble sizing can move the pet unexpectedly; clamp to work area and avoid stealing focus. + +## Security/privacy notes + +- Bundled pet assets must be local repository assets; no runtime remote fetch. +- Installed pet safety rules remain: no script execution, zip-slip prevention, file limits, size limits. +- Speech safety rules remain unchanged: short messages only; no code/logs/secrets/URLs/path-like content. +- Renderer CSP must remain restrictive. +- Chat bubble message content must use escaped text/textContent only and must not introduce `innerHTML` injection paths. + +## Test/check plan + +Run: + +```bash +pnpm test +pnpm check +pnpm package:desktop:dir +``` + +Also run focused desktop checks during implementation if package contract or pet-window code changes. + +## Manual verification guide + +Manual verification is provided after implementation. It should include: + +1. Run `pnpm dev:desktop` and confirm the default pet is an actual animated visual, not CSS/wireframe. +2. Confirm the pet remains transparent, frameless, draggable, and non-focus-stealing. +3. Drag the pet left and right and confirm the animation/direction changes with drag direction, then settles back to idle without flicker. +4. Confirm pause/resume visibly pauses/resumes animation. +5. Trigger or inspect speech/reaction bubble behavior and confirm it feels premium: compact, readable, visually attached to the pet, no oversized wireframe card, no jarring animation. + + Suggested speech command while OpenPets is running: + + ```bash + pnpm --filter @open-pets/client smoke:say "Working on it" thinking + ``` + + Suggested reaction command: + + ```bash + pnpm --filter @open-pets/client smoke:react success + ``` + +6. If a catalog/installed pet is available, set it as default and confirm static installed-pet rendering still works with the shared polished bubble. +7. Run `pnpm package:desktop:dir`, launch the packaged app, and repeat the default pet checks. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: + +- Drag-direction plan was not implementable as initially written because the current pet window uses `-webkit-app-region: drag`, which makes renderer pointer events unreliable, and there was no preload/IPC bridge. + +Should-fix feedback: + +- Define the bundled pet asset contract: filenames, format, dimensions/frame layout/states, ownership/source, and fallback behavior. +- Be explicit about CSP and avoid broad renderer scripting privileges. +- Require bubble text to use escaped text/textContent only. +- Clarify that polished bubble styling applies to installed pets too. +- Add concrete manual bubble triggers using client smoke commands. +- Add manual verification for installed-pet fallback/static rendering. +- Specify package contract checks for new assets in ASAR-era packaging. +- If changing default pet window size, verify clamping/persistence. + +Nice-to-have feedback: + +- Prefer CSS sprites or animated image formats over custom JS frame loops unless JS is needed for drag state. +- Add lightweight asset checks for existence, size, and dimensions if easy. +- Add `prefers-reduced-motion` support. +- Use real catalog pet material rather than generated/SVG-coded art when available. + +Verdict: not implementation-ready until drag-direction architecture and asset/CSP/manual-verification requirements are tightened. + +## Oracle feedback disposition + +Fixed: + +- Drag-direction architecture now explicitly avoids renderer pointer events in draggable regions and uses main-process window movement deltas plus a narrow safe bridge/preload if needed. +- Added bundled pet asset contract requirements, including local checked-in WebP source, known frame layout/states, and no SVG-coded/generated substitute. +- Added CSP requirements for file/data image sources and no Node integration/remote/eval/broad renderer privileges. +- Required bubble content to be escaped/text-only and shared across built-in and installed pet windows. +- Added concrete manual `smoke:say` and `smoke:react` triggers. +- Added installed-pet fallback/static rendering manual verification. +- Added package contract expectations for source asset existence/non-empty and packaged `assets/**` inclusion. +- Added clamp/persistence verification if window sizing changes. + +Accepted: + +- Prefer CSS sprites or animated image formats when practical. +- Add lightweight asset checks where easy. +- Add `prefers-reduced-motion` handling where practical. +- Prefer real catalog pet material over generated art. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blockers: none. + +Should-fix: none before manual verification. + +Key checks: + +- Drag-direction architecture uses main-process window movement, not renderer pointer events in `-webkit-app-region: drag`. +- Pet preload is narrow: only listens for whitelisted `openpets:pet-motion` states and mutates `dataset`. +- Renderer remains sandboxed/context-isolated with Node disabled. +- Bubble content is escaped text, not unsafe HTML. +- Installed pet fallback remains static/safe with shared bubble styling. +- Packaging config includes `pet-preload.cjs` and assets; contract checks cover source asset/preload/config. + +Nice-to-have feedback: + +- Add an ASAR-content/package-output assertion for `pet-preload.cjs` and `default-pet-spritesheet.webp` later if convenient. +- If manual testing shows drag jitter, tune the `3px` threshold / `180ms` idle timeout. +- Future installed-pet animation metadata remains out of Phase 12. + +Verdict: implementation is acceptable for manual verification. Focus manual testing on packaged sprite loading, left/right drag animation, idle settle, bubble quality, pause/resume, installed-pet fallback, and no focus/drag regressions. + +## Oracle implementation feedback disposition + +Accepted: + +- ASAR-content assertions can be added as future package hardening; current source/config/package validation passed. +- Additional bundled asset hygiene checks can be added if bundled pet assets become more complex. +- Drag threshold/idle timing will be tuned only if manual testing shows jitter. +- Richer installed-pet animation metadata is a future phase, not Phase 12. diff --git a/docs/phases/phase-13a-pet-manager-ui-polish.md b/docs/phases/phase-13a-pet-manager-ui-polish.md new file mode 100644 index 00000000..66a9ee84 --- /dev/null +++ b/docs/phases/phase-13a-pet-manager-ui-polish.md @@ -0,0 +1,240 @@ +# Phase 13A: Pet Manager UI/UX Polish + +## Goal + +Make the Pet Manager feel like the first polished OpenPets desktop window and establish a reusable visual direction for later Settings, Agent Setup, and Onboarding polish. + +This phase focuses on one window only: Pet Manager. + +## Non-goals + +- No Settings, Agent Setup, or Onboarding redesign. +- No new install/remove/default product behavior beyond small UI affordances needed for clarity. +- No new pet catalog backend, marketplace, or publishing flow. +- No remote image rendering in the renderer. +- No framework migration; keep the current vanilla preload-driven UI. +- No weakening zip/catalog/install safety. +- No public distribution/signing work. + +## User-visible/manual outcome + +Opening **Manage Pets** from the tray shows a premium compact desktop UI instead of a wireframe list. + +The user should be able to quickly understand: + +- which pet is currently default, +- which pets are installed, +- which catalog pets can be installed, +- what actions are safe/available, +- whether catalog data is live, fixture, loading, empty, or errored. + +## Acceptance criteria + +- Pet Manager copy no longer says or feels like placeholder/wireframe. +- Pet Manager has a polished header, clear current-default summary, installed-pets section, catalog/search section, and error/status surfaces. +- Installed cards clearly distinguish default, built-in/protected, broken, and removable pets. +- Catalog cards clearly distinguish installable, installed, default, and unavailable/broken states. +- Buttons have clear hierarchy and disabled/busy states; no tiny ambiguous controls. +- Search has a polished empty state when no catalog pets match. +- Catalog status explains live vs fixture vs error without looking like debug text. +- The design uses consistent spacing, typography, radii, shadows, badges, and compact desktop proportions. +- No external images are introduced into the Pet Manager renderer. +- Pet install, remove, and set-default behavior remains unchanged and safe. +- Pet Manager can still render if catalog fetch falls back to fixture or fails. +- Pet Manager rendering continues to use DOM APIs and `textContent` for all catalog/state strings; no `innerHTML` for catalog-provided content. +- No CSP `img-src` expansion, no ``, and no CSS `background-image` using catalog preview URLs in Phase 13A. +- Existing visible placeholder copy is removed from Pet Manager window definitions and user-facing text. +- `pnpm --filter @open-pets/desktop build` passes. +- `pnpm --filter @open-pets/desktop test` passes. +- If shared task-window styles are changed, verify Settings/Agent Setup/Onboarding are not obviously broken. +- Designer review is completed before final manual verification. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `apps/desktop/src/windows.ts` + - Update Pet Manager HTML structure and Pet Manager-specific/shared styling. + - Remove placeholder Pet Manager description. +- `apps/desktop/preload.cjs` + - Refactor `renderPetManager` / `renderCatalog` card DOM for polished UI states. + - Add small helper functions for status labels, card metadata, action rows, and empty states. +- `docs/phases/phase-13a-pet-manager-ui-polish.md` + - This phase spec, reviews, and dispositions. +- Potentially `docs/mvp-validation.md` + - Add a short Pet Manager visual verification note if useful. + +## Technical approach + +1. Keep scope to Pet Manager: + - Require Pet Manager selectors under `body[data-openpets-view="pet-manager"]` unless intentionally changing shared task-window tokens. + - Avoid broad restyling of Settings/Agent Setup/Onboarding unless shared base styles must be adjusted carefully. + - Remove the existing placeholder copy from `taskWindowDefinitions.pet-manager.description` and visible Pet Manager text. +2. Improve information architecture: + - Add a hero/header area with concise product copy. + - Add a current-default summary card derived from `state.preferences.defaultPetId` and installed pet state. + - Keep installed pets and catalog as separate sections. +3. Polish cards: + - Installed cards: pet name, id/source metadata, status badges, concise description, broken reason if present, primary/default action, secondary/remove action. + - Catalog cards: pet name, id metadata, description, installed/default badges, install or set-default/remove actions. +4. Improve state surfaces: + - Catalog source/status pill for live/fixture/error. + - Empty installed/catalog search states with plain helpful copy. + - Inline global error surface that is visually distinct but not alarming for non-destructive errors. +5. Improve interaction polish: + - Button hierarchy: primary install/set-default, secondary remove/protected. + - Busy state remains button-level/card-level without changing backend operation semantics. + - Use specific CSS transitions only; no `transition: all`. + - Add subtle card hover/focus/press feedback without distracting animations. +6. Preserve security constraints: + - No remote images in Pet Manager renderer. + - Do not add `img-src` to the Pet Manager CSP, do not add ``, and do not use catalog preview URLs as CSS backgrounds in this phase. + - Continue using textContent/DOM APIs for user/catalog strings. + - Keep renderer CSP restrictive. + +## Risks and tradeoffs + +- Pet Manager currently shares task-window CSS with other windows. Over-broad changes could accidentally regress Settings/Agent Setup/Onboarding. +- Preview thumbnails would be desirable but can create CSP/cache/security work. Defer image previews unless implemented through a safe later design. +- Pure vanilla DOM UI can become messy. Keep helpers small and avoid a framework rewrite. +- Catalog can contain many pets; keep cards reasonably compact and avoid heavy DOM work or animations. + +## Security/privacy notes + +- Pet Manager still must not execute pet content or scripts. +- Catalog strings must be inserted with `textContent`, not `innerHTML`. +- Install/remove/default actions must keep the existing IPC allowlist and validation. +- No remote image URLs should be added to CSP for this phase. +- No `innerHTML` should be used for catalog-provided or state-provided strings. + +## Test/check plan + +Run: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +If shared styles or packaging-sensitive files change unexpectedly, also run: + +```bash +pnpm check +``` + +## Manual verification guide + +Manual verification is provided after implementation. It should include: + +1. Run `pnpm dev:desktop`. +2. Open **Manage Pets** from the tray. +3. Confirm the window feels polished, compact, and not wireframe. +4. Confirm current default pet is obvious. +5. Search the catalog and confirm empty/search states look good. +6. Confirm live/fixture/error catalog status is understandable; simulate unavailable catalog only if feasible without expanding scope. +7. Install a catalog pet if available and confirm busy state during install. +8. Set an installed catalog pet as default. +9. Remove a removable pet and confirm busy state during remove. +10. Confirm broken/protected/default button states are understandable. +11. Open Settings/Agent Setup/Onboarding quickly to confirm shared styles were not obviously broken if shared styles changed. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Tighten style isolation under `body[data-openpets-view="pet-manager"]` unless intentionally changing shared tokens. +- Add explicit acceptance that catalog/state strings use DOM APIs/`textContent`, no `innerHTML` for catalog content. +- Add manual verification for catalog unavailable/error/fixture status if feasible, busy install/remove states, set default, remove, and shared window regression check. +- Make “no remote image rendering” concrete: no CSP `img-src` expansion, no ``, no catalog preview CSS backgrounds. +- Explicitly remove existing Pet Manager placeholder copy. + +Nice-to-have feedback: + +- Add a small Pet Manager visual checklist to `docs/mvp-validation.md`. +- Define a few grouped design tokens/comments without building a full design system. +- Add compact empty states for no installed pets beyond built-in and no catalog matches. +- Keep helper extraction modest; avoid a mini framework. + +Verdict: implementation-ready after small spec tightening. + +## Oracle feedback disposition + +Fixed: + +- Added selector isolation requirement under `body[data-openpets-view="pet-manager"]`. +- Added explicit `textContent`/DOM API requirement and `innerHTML` prohibition for catalog/state strings. +- Added concrete no-remote-image constraints. +- Added placeholder-copy removal as an explicit implementation item. +- Expanded manual verification for catalog status, busy states, set-default/remove actions, and shared-window regression checks. + +Accepted: + +- Add Pet Manager visual checklist to `docs/mvp-validation.md` if implementation changes warrant it. +- Use modest grouped design tokens/comments only if helpful. +- Add compact empty states for catalog/no-extra-installed states. +- Keep helper extraction modest. + +## Designer implementation review + +Reviewed by Designer after implementation. + +Blockers: none. + +Should-fix: none. + +Nice-to-have feedback: + +- Make Pet Manager empty states span the full grid width. +- Make the current default card heading slightly larger to reinforce hierarchy. + +Verdict: approved. The visual direction is a substantial step up from wireframe and establishes a good baseline for future windows. + +## Designer implementation feedback disposition + +Fixed: + +- Empty states now span all grid columns. +- Current default card heading is larger than regular card headings. + +## Oracle implementation review + +Reviewed by Oracle after implementation and follow-up fixes. + +Initial should-fix feedback: + +- Restore remove affordance for a removable current default pet. +- Show broken state on catalog cards. +- Avoid appending empty actions rows for current-default catalog cards. +- Fix current-default remove busy-state restore so a newly rendered protected default does not get an enabled dead Protected button. + +Final review: + +Blockers: none. + +Should-fix: none. + +Nice-to-have feedback: + +- Manually verify Settings/Agent Setup/Onboarding because shared button/card/search styles changed. +- Consider shortening catalog error pill text if it feels too debuggy. +- Future: centralize small DOM helpers if Pet Manager grows further. + +Verdict: approved for manual verification. Removable defaults remain actionable, broken catalog states are visible, empty action rows are avoided, busy-state restoration is fixed, and CSP/textContent/no-remote-image constraints remain intact. + +## Oracle implementation feedback disposition + +Fixed: + +- Current default card now includes badges, broken reason, and Remove/Protected action. +- Catalog cards now show Broken badge and broken reason for installed broken pets. +- Empty catalog card action rows are no longer appended. +- Current-default remove busy restore no longer runs after successful re-render, preventing stale enabled Protected buttons. + +Accepted: + +- Shared-window visual smoke check is included in manual verification. +- Catalog error pill copy can be adjusted later if it feels too debug-like in manual testing. +- DOM helper centralization is deferred until more UI windows are polished. diff --git a/docs/phases/phase-13b-onboarding-greeting-polish.md b/docs/phases/phase-13b-onboarding-greeting-polish.md new file mode 100644 index 00000000..08baf974 --- /dev/null +++ b/docs/phases/phase-13b-onboarding-greeting-polish.md @@ -0,0 +1,270 @@ +# Phase 13B: Onboarding Greeting Polish + +## Goal + +Turn the first onboarding screen into a polished OpenPets greeting inspired by `lfs/greeting.png`, without copying the screenshot literally. + +This phase should create a native onboarding welcome experience that feels premium, playful, and consistent with the Phase 13A Pet Manager polish direction. + +## Non-goals + +- No full onboarding redesign beyond the greeting/welcome step unless a small structural change is required to keep navigation coherent. +- No Agent Setup, Settings, or Pet Manager changes. +- No copying the screenshot pixel-for-pixel. +- No using the screenshot as the final UI background. +- No remote image loading. +- No new onboarding business logic. +- No new pet install/configuration behavior. + +## User-visible/manual outcome + +On first launch, the onboarding welcome screen should feel like a real product greeting: + +- clear OpenPets identity, +- friendly “AI coding companion” positioning, +- playful pet/mascot atmosphere, +- strong primary Next action, +- subtle progress dots, +- polished copy that is not generic placeholder text. + +## Acceptance criteria + +- Onboarding step 0 has a polished greeting layout inspired by `lfs/greeting.png` but implemented as native HTML/CSS. +- The welcome copy is concise and product-quality; avoid awkward/generic wording. +- The greeting uses available local assets only. Current discovered local assets are: + - `apps/desktop/assets/default-pet-spritesheet.webp` + - `apps/desktop/assets/tray-icon.png` + - `lfs/greeting.png` as reference only, not packaged directly unless explicitly approved. +- The implemented greeting may use extracted local WebP assets copied from `web/public` into `apps/desktop/assets/`: + - `apps/desktop/assets/onboarding-logo.webp` from `web/public/openpets.webp` + - `apps/desktop/assets/onboarding-pets.webp` from `web/public/petland.webp` +- `lfs/greeting.png` must not appear in runtime code, packaged assets, CSS URLs, or CSP assumptions. +- Packaged image assets must be embedded as data URLs generated from local packaged files; onboarding CSP must remain `img-src data:` with no remote or `file:` image sources. +- If a hero image/illustration is needed, use a safe local packaged asset or a CSS/native composition; do not fetch remote images. +- Onboarding CSP remains restrictive; no remote image/script/style sources. +- Dynamic text continues to use DOM APIs/textContent in preload. +- Existing onboarding steps still work: Welcome → Pets → Agents → Ready → Finish. +- Existing onboarding buttons still work. +- Window remains usable at current task-window size and does not require custom native titlebar/window controls. +- Greeting fits in the increased 900×760 default task window without clipping the primary action, and remains usable at the 720×520 minimum window size. +- Keyboard/tab access still reaches Next and later Finish controls. +- Progress dots/steps still communicate the current step accessibly. +- `pnpm --filter @open-pets/desktop build` passes. +- `pnpm --filter @open-pets/desktop test` passes. +- If any runtime asset is added/referenced, `pnpm package:desktop:dir` passes or packaged asset loading is otherwise verified. +- If shared task-window styles are touched, Pet Manager, Settings, and Agent Setup are manually checked for obvious visual regressions. +- Designer review is completed before manual verification. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `apps/desktop/src/windows.ts` + - Update onboarding welcome markup and onboarding-specific scoped styles. + - Keep styles under `body[data-openpets-view="onboarding"]` where possible. +- `apps/desktop/preload.cjs` + - Keep existing step navigation; adjust only if new welcome markup needs small class/state handling. +- `apps/desktop/assets/` + - Add `onboarding-logo.webp` and `onboarding-pets.webp` if using the real WebP greeting assets. Do not package `lfs/greeting.png` as-is. +- `docs/phases/phase-13b-onboarding-greeting-polish.md` + - This phase spec, reviews, and dispositions. + +## Technical approach + +1. Use `lfs/greeting.png` as art direction, not implementation: + - light airy background, + - pixel/game feel, + - strong OpenPets brand block, + - mascot/pet visual area, + - progress dots and primary Next button. + - The file must remain reference-only and should not be copied into `apps/desktop/assets` or loaded by the app. +2. Build native onboarding welcome UI: + - Keep the existing task window shell and Electron titlebar. + - Use scoped onboarding CSS for the welcome step. + - Use bundled local WebP assets when they materially improve fidelity to the reference. + - Generate data URLs from packaged local asset files in the main process before creating the onboarding data URL, avoiding fragile `data:` document → `file:` image loading. +3. Copy direction, not copy text: + - Proposed headline direction: “Your AI coding companion” or similar. + - Proposed body direction: “OpenPets lives in your tray and gives your coding agents a friendly desktop companion.” + - Keep copy short and human. +4. Preserve onboarding flow: + - Step indicators still reflect current step. + - Next continues to Pets. + - Existing later steps remain functional even if visually less polished for now. +5. Preserve security: + - No remote images. + - If local packaged image assets are used, onboarding CSP must include only `img-src data:` and no remote or `file:` image sources. + - No `innerHTML` for dynamic text. + - Keep CSP restrictive. + +## Risks and tradeoffs + +- A single polished greeting may make later onboarding steps feel less polished. Acceptable for this phase; the goal is to confirm the welcome styling direction first. +- Using `lfs/greeting.png` directly would be fast but wrong for product UI: it includes screenshot/window chrome and fixed text. Build native UI instead. +- Without additional uploaded hero art, the visual will be inspired rather than identical. If user provides separated logo/mascot/scene assets later, a follow-up can swap them in. +- Data-URL task windows plus local file assets are easy to break in packaged apps. If assets are used, embed them as data URLs generated from packaged local files and verify package output. + +## Security/privacy notes + +- No remote asset loading. +- No user data or agent configuration is changed by this phase. +- Onboarding completion semantics stay unchanged. +- Renderer remains sandboxed/context-isolated through the existing task-window setup. + +## Test/check plan + +Run: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +If shared task-window styles are changed unexpectedly, also run: + +```bash +pnpm check +``` + +If runtime image assets are added or referenced, also run: + +```bash +pnpm package:desktop:dir +``` + +## Manual verification guide + +Manual verification is provided after implementation. It should include: + +1. Run `pnpm dev:desktop`. +2. Reset onboarding state if needed by deleting the logged OpenPets app data state file/directory. +3. Confirm the first onboarding screen looks like a polished greeting inspired by `lfs/greeting.png`, not a literal screenshot paste. +4. Confirm copy feels good and not awkward. +5. Confirm the primary action is visible and not clipped at the default task-window size. +6. Confirm keyboard tab order reaches Next and later Finish controls. +7. Confirm progress dots/steps still show the current step clearly. +8. Confirm Next advances to Pets, then Agents, then Ready. +9. Confirm Finish still completes onboarding. +10. If shared styles changed, quickly inspect Pet Manager, Settings, and Agent Setup for obvious visual regressions. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Clarify that `lfs/greeting.png` is reference-only and must not appear in runtime code, packaged assets, CSS URLs, or CSP assumptions. +- Clarify asset strategy and CSP requirements if existing local packaged assets are used. +- Add package/manual verification if runtime assets are added or referenced. +- Add shared-style regression criteria because `createTaskWindowStyles()` is shared. +- Add fit/accessibility checks for default/minimum window sizes, keyboard/tab access, and progress dots/steps. + +Nice-to-have feedback: + +- Require designer review against the direction of `greeting.png`, not literal fidelity. +- Add a short note to `docs/mvp-validation.md` if this becomes part of first-run validation. +- Prefer CSS/native composition unless asset use is strongly justified. + +Verdict: not implementation-ready until asset/CSP/package and shared-style verification requirements are tightened. + +## Oracle feedback disposition + +Fixed: + +- Spec now states `lfs/greeting.png` is reference-only and must not be loaded or packaged. +- Local WebP assets are allowed when copied from `web/public` into desktop assets, embedded as data URLs, covered by explicit `img-src data:`, and package-verified. +- Added package validation requirement if runtime image assets are added/referenced. +- Added shared-window regression manual checks if shared styles are touched. +- Added fit/accessibility checks for default window size, keyboard access, and progress indicators. + +Accepted: + +- Designer review should compare against the reference direction, not literal screenshot fidelity. +- `docs/mvp-validation.md` can be updated if implementation makes onboarding greeting part of MVP validation. +- CSS/native composition is preferred unless asset use is clearly worth it. + +## Designer implementation review + +Reviewed by Designer after implementation. + +Blockers: none. + +Should-fix: none. + +Nice-to-have feedback: + +- Add a small transition to soften the visual jump between the light welcome step and later dark onboarding steps. + +Verdict: approved. The native CSS composition captures the direction of `lfs/greeting.png` without copying the screenshot or adding asset/CSP risk. + +## Designer implementation feedback disposition + +Fixed: + +- Added a reduced-motion-aware body color transition. + +## Oracle implementation review + +Reviewed by Oracle after implementation and follow-up fixes. + +Initial should-fix feedback: + +- Ensure hidden panels stay hidden because the welcome hero display rule appears after the generic hidden rule. +- Add `aria-current="step"` to the active progress indicator. + +Final review: + +Blockers: none. + +Should-fix: none. + +Nice-to-have feedback: + +- Manually verify default-size fit and 720×520 minimum-size usability in real Electron rendering. +- Manually inspect Pet Manager, Settings, and Agent Setup because shared body/button styles changed. +- Future: replace emoji pet tokens with real brand/mascot assets if provided. + +Verdict: approved for manual verification. Hidden panels are protected, progress state has `aria-current`, no runtime image/CSP risk was introduced, and scope remains limited to the onboarding welcome/greeting step. + +## Oracle implementation feedback disposition + +Fixed: + +- Hidden onboarding panels now use `display: none !important` to avoid cascade surprises. +- Active progress indicator now receives `aria-current="step"`, removed from inactive indicators. +- Added reduced-motion guard for body transition/button transforms. + +Accepted: + +- Manual verification includes default-size fit and shared-window smoke checks. +- Real brand/mascot assets can replace emoji tokens in a later phase if provided. + +## Asset-based implementation review + +Reviewed by Designer and Oracle after switching from CSS/emoji composition to bundled WebP assets. + +Designer verdict: approved. + +- Blockers: none. +- Should-fix: none. +- Nice-to-have: cache generated asset data URLs so repeat onboarding opens do not synchronously reread WebP files. + +Oracle verdict: approved for manual verification. + +- Blockers: none. +- Should-fix: none. +- Nice-to-have: tighten CSP/package assertions, optionally assert packaged asset contents, remove/exclude `.DS_Store`, and manually launch packaged onboarding once. + +## Asset-based implementation feedback disposition + +Fixed: + +- Increased the default task window size to 900×760 while retaining a 720×520 minimum size. +- Cached generated asset data URLs in the main process after the first read. +- Package contract now asserts the onboarding asset filenames and `img-src data:` CSP in `windows.ts`. + +Accepted: + +- Manual verification should check both the increased default size and minimum-size usability. +- Packaged-app launch verification is useful before release; `pnpm package:desktop:dir` already passes for this phase. diff --git a/docs/phases/phase-13c-pet-manager-gallery.md b/docs/phases/phase-13c-pet-manager-gallery.md new file mode 100644 index 00000000..e69d5d77 --- /dev/null +++ b/docs/phases/phase-13c-pet-manager-gallery.md @@ -0,0 +1,238 @@ +# Phase 13C: Pet Manager Gallery + +## Goal + +Redesign the Pet Manager into a polished pet installation/gallery screen inspired by `lfs/pets.png`, while preserving the existing real catalog, install, set-default, and remove behavior. + +## Non-goals + +- No changes to catalog source, pet zip validation, installation security, or state schema. +- No remote image loading beyond existing catalog preview URLs already used by catalog metadata. +- No new pet categories in persisted data; filters can be UI-derived from current pet text/ids. +- No using `lfs/pets.png` as a runtime image or packaged asset. +- No full redesign of Agent Setup, Settings, or onboarding beyond shared task-window sizing/styles if required. + +## User-visible/manual outcome + +Opening Pet Manager shows a light, polished two-column install page: + +- OpenPets brand art at top-left, +- search and simple gallery filter pills, +- install/selectable pet cards with pixel-art previews where available, +- a large right-side selected pet detail panel, +- focused action buttons that install, set default, remove, or indicate selected/protected/broken state, +- existing catalog/install behavior still works. + +## Acceptance criteria + +- Pet Manager visually follows `lfs/pets.png` direction: light background, two-column gallery/detail layout, pixel-game product feel, rounded cards, strong primary actions. +- `lfs/pets.png` remains reference-only and is not loaded by app code or copied into desktop assets. +- Use existing bundled/local assets where safe, including `apps/desktop/assets/onboarding-logo.webp` for brand identity. Do not embed the large `default-pet-spritesheet.webp` in the Pet Manager data URL. +- Catalog pet preview images may be shown only from validated `CatalogPetV2.preview` values returned by main-process catalog data. The renderer must not independently construct remote image URLs. +- Pet Manager CSP must be exactly scoped for required image sources, e.g. `img-src data: https://openpets.dev`; no broad `https:`, `*`, or `file:` sources. +- Do not use mutable `InstalledPetState.source.preview` for remote rendering unless it is revalidated against the same catalog preview rules. +- Catalog previews are spritesheets; the UI must crop/display a single-frame thumbnail/preview, not show the whole sheet. +- Image failures/offline state must degrade gracefully: no broken image icon, neutral/blank preview surface, and install/default/remove actions remain usable. +- All catalog/state strings are inserted with DOM APIs/textContent, not `innerHTML`. +- Existing Pet Manager operations continue to work: + - install catalog pet, + - set installed pet as default, + - remove non-protected installed pet, + - protected built-in/default pet cannot be removed, + - broken installed pets cannot be selected as default. +- Search continues to filter catalog/gallery pets. +- Quick filters are limited to `All` and `Installed`; do not add category filters like `Cute`, `Helpers`, or `Robots` until backed by real catalog metadata. +- The large detail panel does not include decorative metadata pills like `Free`, `Open source`, or `Works in terminal`; those are unnecessary until backed by real catalog metadata. +- Detail actions are limited to real Pet Manager operations: `Install`, `Set Default`, and `Remove`, with disabled/status variants such as `Selected`, `Protected`, `Broken`, or `Installing…`. +- Keyboard users can tab to search, filter pills, pet cards/actions, and detail actions. +- The Pet Manager opens at 1160×780 and remains usable at 720×520 with vertical scrolling/responsive stacking. +- `pnpm --filter @open-pets/desktop build` passes. +- `pnpm --filter @open-pets/desktop test` passes. +- `pnpm package:desktop:dir` passes because Pet Manager CSP/asset packaging contracts change. +- Designer review is completed before manual verification. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `apps/desktop/src/windows.ts` + - Update Pet Manager markup and scoped CSS. + - Add Pet Manager image CSP for data/local catalog previews as needed. +- `apps/desktop/preload.cjs` + - Replace the current section-card renderer with gallery/detail rendering. + - Keep IPC calls and validation boundaries unchanged. +- `apps/desktop/src/check-packaging-contract.ts` + - Update assertions if the Pet Manager starts depending on bundled image assets/CSP. +- `docs/phases/phase-13c-pet-manager-gallery.md` + - This spec, reviews, and dispositions. + +## Technical approach + +1. Keep backend/state/install behavior unchanged. +2. Build one normalized UI list from installed pets plus catalog pets: + - installed/default state comes from `OpenPetsStateV1`, + - catalog data comes from `getCatalog()`. +3. Render a left gallery with: + - search, + - filter pills (`All`, `Installed`) derived from installed/default state, + - cards showing thumbnail, name, subtitle, and selected/install state. +4. Render a right detail panel for the selected pet: + - title/description, + - large preview image, + - concise install/default/protected/broken status, + - small preview tiles reusing available image material, + - primary action (`Install`, `Selected`, or `Set Default`) and secondary action (`Remove` or `Protected`) where applicable. +5. Use safe image behavior: + - bundled default uses data URL or local packaged asset strategy already established, + - catalog previews use only validated `CatalogPetV2.preview` URLs from main-process catalog data, scoped to `https://openpets.dev`, + - card/mini preview images crop a single sprite frame from spritesheets using CSS background strategy, + - the detail spotlight animates the pet sprite itself without decorative platform/fallback art, + - image error handling is attached with DOM listeners in preload (`addEventListener("error", ...)`), not inline attributes, + - failures hide the broken image and leave a neutral preview surface. +6. Preserve accessibility: + - cards are buttons or contain focusable buttons, + - selected card uses `aria-pressed` or `aria-current`, + - detail status updates avoid inaccessible-only visual changes. + +## Risks and tradeoffs + +- Catalog previews are remote URLs; they can fail offline. The UI must remain usable with neutral/blank preview surfaces. +- This is a bigger Pet Manager UI rewrite than Phase 13A; keep install/state/security code unchanged to limit risk. +- Without real per-animation preview images, the Idle/Happy/Wave tiles will reuse available pet art rather than showing true animation states. +- Category filters are intentionally omitted until catalog metadata includes real tags. + +## Security/privacy notes + +- No new persisted data. +- No broad install behavior changes; narrow stale-target cleanup is allowed when a previously failed/manual install leaves files on disk while state says the pet is not installed. +- No direct use of `lfs/pets.png` at runtime. +- Keep Electron renderer sandbox/context isolation unchanged. +- CSP should allow only the image sources needed for data bundled assets and exact existing catalog preview origin (`https://openpets.dev`); no remote script/style execution and no `file:` images. +- Removing a removable current-default pet must preserve existing safe fallback behavior to the built-in pet. + +## Test/check plan + +Run: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +```bash +pnpm package:desktop:dir +``` + +## Manual verification guide + +1. Run `pnpm dev:desktop`. +2. Open Pet Manager from the tray. +3. Confirm the page resembles `lfs/pets.png` direction: light two-column gallery/detail layout, not a literal screenshot paste. +4. Confirm the default/bundled pet is selected by default and shows a large detail panel. +5. Type in search and confirm gallery cards filter. +6. Click `All` and `Installed` and confirm results update gracefully. +7. Click a catalog pet and confirm the detail panel updates. +8. Install a catalog pet and confirm it becomes installed/selectable without breaking the UI. +9. Set an installed pet as default and confirm selected/default state updates. +10. Remove a non-protected installed pet and confirm it disappears/falls back safely. +11. If the current default is a removable installed pet, remove it and confirm OpenPets falls back safely to the built-in/default pet. +12. Simulate offline/catalog error or use fixture/error state if available; confirm the gallery remains usable and image failures show neutral preview surfaces with no broken image icon. +13. Confirm a broken installed pet, if present, is shown but cannot be selected as default. +14. Confirm an installed pet missing from the current catalog still appears and remains manageable. +15. Resize to 720×520 and confirm the layout remains usable with scrolling. +16. Quickly inspect onboarding, Settings, and Agent Setup for obvious shared-style regressions. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Clarify remote preview policy: only validated `CatalogPetV2.preview` from main-process catalog data; exact CSP such as `img-src data: https://openpets.dev`; no broad `https:`, `*`, or `file:`; no mutable `InstalledPetState.source.preview` without revalidation. +- Require previews to crop a single sprite frame, not show full spritesheets. +- Use DOM `addEventListener("error", ...)` for image failures, not inline `onerror` attributes. +- Add offline/image-failure behavior: no broken image icon, visible fallback thumbnail/card/detail, install/default/remove still usable. +- Preserve current-default removal semantics explicitly: removable current default can still be removed and safely falls back to built-in. +- Require `textContent`/DOM APIs for all catalog/state strings; no `innerHTML`. +- Make `pnpm package:desktop:dir` required if CSP/assets/packaging contract changes for gallery images. + +Nice-to-have feedback: + +- Use `loading="lazy"`, `decoding="async"`, and `referrerpolicy="no-referrer"` for remote preview images. +- Keep gallery model helpers small. +- Add manual checks for catalog offline/fixture/error, broken installed pet, and installed pet missing from current catalog. +- Add package contract checks for Pet Manager CSP and bundled logo/default thumbnail assets if used. + +Verdict: not implementation-ready until image/CSP rules and spritesheet cropping/fallback behavior are tightened. + +## Oracle feedback disposition + +Fixed: + +- Added exact remote preview policy and CSP constraints. +- Added single-frame spritesheet crop requirement. +- Replaced inline `onerror` language with DOM listener requirement. +- Added offline/image-failure fallback acceptance and manual checks. +- Added current-default removal fallback acceptance. +- Added DOM/textContent requirement. +- Made `pnpm package:desktop:dir` required for this phase. +- Added manual checks for broken/missing/catalog error states. + +Accepted: + +- Use lazy/async/no-referrer attributes for remote preview images. +- Keep gallery helpers small and avoid framework-like preload code. +- Add package contract checks for Pet Manager CSP and bundled assets when implemented. + +## Implementation review + +Reviewed by Designer and Oracle after implementation. + +Validation passed: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +pnpm package:desktop:dir +``` + +Initial Designer should-fix feedback: + +- Add keyboard-visible focus styling for Pet Manager cards. +- Adjust spritesheet crop/container sizing to avoid distorting the first-frame preview. + +Initial Oracle should-fix feedback: + +- Fix nested interactive keyboard behavior where card-level Enter/Space handling could intercept nested action button keyboard activation. +- Tighten packaging contract CSP assertions so onboarding and Pet Manager CSPs are checked separately and exactly. + +Final Designer verdict: approved. Previous UI/accessibility feedback resolved. + +Final Oracle verdict: approved for closeout. Previous security/CSP/data-integrity feedback resolved. + +## Implementation feedback disposition + +Fixed: + +- Added `.pm-pet-card:focus-visible` styling. +- Adjusted thumbnail/mini sprite containers to match the 8×9 spritesheet frame aspect more closely. +- Guarded card keydown handling with `event.target !== card` so nested action buttons keep normal keyboard activation. +- Tightened package contract checks to assert exact onboarding and Pet Manager CSP strings. +- Strengthened catalog preview URL validation with `URL` parsing, exact protocol/host/no credentials/no port/path/`.webp` checks. +- Updated filter rendering so active visual state stays in sync and detail prefers visible filtered pets. + +## Manual follow-up fixes + +Fixed after manual testing: + +- Pet Manager now opens at 1160×780 while other task windows keep their prior default sizing. +- Removed the large embedded default spritesheet from Pet Manager HTML to avoid Electron `ERR_INVALID_URL` from oversized data URLs. +- Replaced visible `` sprite cropping with validated, preloaded CSS background sprites so previews do not show broken image icons. +- Removed decorative platform/fallback art from the detail spotlight; the selected pet sprite is the focus. +- Added install cleanup for stale target directories before renaming a validated temp install directory into place. +- Added Pet Manager `no-referrer` meta for CSS background preview requests. + +Accepted: + +- Idle/Happy/Wave mini tiles currently reuse the available first-frame crop; true per-state animation previews can wait for explicit animation metadata. diff --git a/docs/phases/phase-13d-agent-setup-polish.md b/docs/phases/phase-13d-agent-setup-polish.md new file mode 100644 index 00000000..6d26f707 --- /dev/null +++ b/docs/phases/phase-13d-agent-setup-polish.md @@ -0,0 +1,327 @@ +# Phase 13D: Agent Setup Polish + +## Goal + +Redesign the Agent Setup window into a polished **Integrations** hub that matches the new OpenPets visual direction while preserving all existing Claude MCP and hook behavior. + +The first screen is a grid of integrations. Claude is the only functional integration in this phase; future integrations are visible but inert/disabled. Claude can be quickly installed when safe, or opened into a Claude detail/configuration view. + +## Non-goals + +- No changes to Claude MCP command semantics. +- No changes to Claude hook install/uninstall behavior beyond UI copy/styling. +- No new persisted state or settings schema. +- No hiding command/JSON previews; they remain available for trust and manual fallback. +- No remote assets or new network calls. +- No committing real Claude settings or user data in tests. +- No functional implementation for Cursor, OpenCode, VS Code, Windsurf, or Zed in this phase. + +## User-visible/manual outcome + +Opening **Configure Agents** shows a polished integrations grid: + +- cards for Claude, Cursor, OpenCode, VS Code, Windsurf, and Zed using bundled icons, +- quick install/configure controls on the Claude card, +- disabled/coming-soon controls on future integration cards, +- a Claude detail/configuration view reachable from the Claude card, +- command/MCP JSON previews and enhanced Claude hooks controls in the Claude detail view, +- clear status badges and warning/result copy, +- polished buttons with proper icons and visual hierarchy, +- existing actions still work: refresh, copy command, configure, replace, remove, doctor hooks, install/update hooks, uninstall hooks. + +## Acceptance criteria + +- Agent Setup uses a polished light UI consistent with Pet Manager and onboarding. +- Layout is usable at the current task window size and responsive at 720×520 with scrolling. +- First view is an integrations grid, not a split Claude configuration view. +- Bundled integration SVG icons from `apps/desktop/assets/integrations/` are used through data URLs. +- Claude grid quick Install only runs existing safe `configure` when `canConfigure && !busy`. +- If Claude is not directly installable (already configured, not detected, mismatched entry, busy), the card action opens Claude details instead of mutating state. +- Hook install/update is never triggered from the grid quick action; hooks remain in Claude detail with visible global-setting warning. +- Non-Claude integration cards are disabled/inert and do not make IPC calls or persist state. +- Claude status states remain accurate: detected, not detected, configured, needs setup, error. +- Hook status states remain accurate: installed, needs update, not installed, error. +- Existing enable/disable rules are preserved: + - Configure only when `canConfigure` and not busy, + - Replace only when `canReplace` and not busy, + - Remove only when `canRemove` and not busy, + - Hook uninstall disabled when hooks are not installed, + - all relevant actions disabled while busy. +- Preview strings are inserted with DOM APIs/textContent, not `innerHTML`. +- Command and JSON previews remain selectable/copyable and never execute automatically. +- Warnings make replace/remove/global-hooks risk clear without overwhelming the page. +- Buttons use proper inline SVG icons, not ASCII symbols. +- Exact CSP/asset policy is explicit: + - if no images are used, keep the current restrictive CSP without `img-src`, + - if bundled logos/icons are used, allow only `img-src data:`, + - do not allow `https://openpets.dev`, broad `https:`, `file:`, `*`, remote fonts, or remote assets in Agent Setup. +- Replace, Remove, Hook Install/Update, and Hook Uninstall keep visible risk copy and require an explicit user click. +- The global Claude hooks warning remains visible near hook actions because hooks modify user-level Claude settings. +- Command-mode behavior is preserved: packaged builds remain forced to bundled mode by existing validation, and UI polish must not allow packaged users to switch to local/published mode or bypass mode validation. +- Inline SVG icons are created through static markup or DOM `createElementNS`; no `innerHTML` for icons or dynamic labels. +- Action result/status copy is exposed in a visible status region so busy/result changes are understandable. +- `pnpm --filter @open-pets/desktop build` passes. +- `pnpm --filter @open-pets/desktop test` passes. +- Designer review is completed for visual polish. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `apps/desktop/src/windows.ts` + - Replace Agent Setup markup with integrations hub plus Claude detail structure. + - Add scoped Agent Setup CSS under `body[data-openpets-view="agent-setup"]`. +- `apps/desktop/preload.cjs` + - Render status classes, mode controls, button icons, and preview copy into the new structure. + - Preserve existing IPC calls and action binding behavior. +- `docs/phases/phase-13d-agent-setup-polish.md` + - This spec, reviews, and dispositions. + +## Technical approach + +1. Keep `agent-setup.ts` business logic unchanged. +2. Build an integrations shell: + - `.integrations-view`: logo/title plus integration card grid, + - `.claude-detail-view`: Claude status, pet routing, command mode, MCP actions, previews, hooks, and back navigation. +3. In preload: + - map `status.state` and `hookStatus.status` to CSS classes, + - render action buttons with inline SVG icons, + - keep `textContent` for all dynamic status/details/previews, + - keep current button disable logic. +4. Make mode selection clear: + - Packaged/published command is visually primary/recommended in normal use, + - Local dev remains a checkbox/toggle only when available, + - Packaged mode copy explains `node` PATH requirement when relevant. +5. Make preview pane stable: + - fixed-height code panes with internal scroll, + - no layout jumps when preview text changes. + +## Risks and tradeoffs + +- This page touches trusted Claude configuration actions; visual polish must not reduce clarity about side effects. +- Hook settings are global for the Claude user, so the UI must keep that warning visible. +- Too much hiding of command/JSON preview would reduce trust; keep previews visible but visually secondary. +- Button icons improve scannability but labels remain required for clarity. + +## Security/privacy notes + +- No new execution paths. +- No new remote content. +- No `innerHTML`. +- If using the bundled logo, CSP is `img-src data:` only for Agent Setup. +- Existing output sanitization and path redaction remain in `agent-setup.ts`. +- Existing Claude settings backup behavior remains unchanged. +- Existing IPC sender allow-list remains unchanged. + +## Test/check plan + +Run: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +If Agent Setup CSP/assets/package contracts change, also run: + +```bash +pnpm package:desktop:dir +``` + +If shared task-window styles are changed broadly, also run: + +```bash +pnpm check +``` + +## Manual verification guide + +1. Run `pnpm dev:desktop`. +2. Open Configure Agents from the tray. +3. Confirm the page looks consistent with Pet Manager polish. +4. Confirm Claude status, details, and available actions render clearly. +5. Toggle local dev mode if available and confirm previews update. +6. Change pet routing and confirm command/JSON previews update. +7. Copy command and confirm result text updates. +8. Run Refresh/Doctor and confirm status refreshes. +9. If safe on your machine, verify Configure/Replace/Remove still respect existing enable/disable states and confirmation intent. +10. Verify hook Doctor/Install/Uninstall buttons preserve current behavior and warnings remain visible. +11. Verify status variants where possible: + - Claude not detected, + - needs setup, + - configured, + - mismatched existing entry / Replace available, + - Remove available, + - hook installed, + - hook needs update, + - hook not installed, + - hook error. +12. For mutation tests, use safe/temp Claude settings or confirm backups are created before changing real user settings. +13. If packaged mode is available, confirm the UI does not expose local/published mode switching and uses bundled command behavior. +14. Resize to 720×520 and confirm the window remains usable with scrolling. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Specify exact Agent Setup CSP/asset policy: no images means current CSP; bundled logo means `img-src data:` only; no remote assets or copied Pet Manager preview CSP. +- Tighten trust UX for destructive/global actions: Replace, Remove, Hook Install/Update, and Hook Uninstall keep visible risk copy and require explicit click; hook global warning remains visible. +- Preserve command-mode behavior: packaged app remains forced to bundled mode, dev can toggle local/published only through existing validation. +- Inline SVG icons must not use `innerHTML`; use static markup or DOM `createElementNS`. +- Expand manual verification for status variants and safe/temp Claude settings. + +Nice-to-have feedback: + +- Consider wider Agent Setup sizing if two columns/previews feel cramped. +- Add `aria-live`/status styling criteria for action result and busy states. +- Run `pnpm package:desktop:dir` if CSP/assets/package contracts change. + +Verdict: directionally sound after these clarifications; proceed with implementation after disposition. + +## Oracle feedback disposition + +Fixed: + +- Added exact CSP/asset policy and disallowed remote Agent Setup assets. +- Added explicit trust UX criteria for Replace/Remove/hook actions and global hook warning placement. +- Added command-mode preservation criteria for packaged vs dev behavior. +- Added no-`innerHTML` icon requirement. +- Expanded manual verification matrix. +- Added package validation requirement when CSP/assets/package contracts change. + +Accepted: + +- Consider Agent Setup-specific sizing during implementation if 900×760 is cramped. +- Add visible status/result region and styling for busy/result changes. + +## Integrations hub plan update + +User direction changed during implementation: Agent Setup should become an integrations page/hub, not just a Claude split-view setup page. + +Oracle reviewed the updated plan. + +Blockers: none. + +Should-fix feedback: + +- Claude quick Install is narrowly defined: only existing non-destructive `configure` when `canConfigure && !busy`. +- If Claude is not directly installable, open details instead of mutating anything. +- Hook install/update remains only in Claude detail with visible global hook warning. +- Other integration cards are inert/disabled; no fake success or IPC calls. +- Agent Setup CSP remains `img-src data:` only; package contract should cover bundled SVG assets and no remote Agent Setup image sources. +- No `innerHTML`; use static shell/DOM APIs. +- Update docs for grid-first integrations hub and Claude-only functional scope. + +Disposition: fixed in this updated spec and implementation plan. + +## Implementation review + +Reviewed by Designer and Oracle after implementation. + +Validation passed: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +pnpm package:desktop:dir +``` + +Designer verdict: approved. + +Designer should-fix feedback: + +- Add accessible labels/live updates for command, MCP JSON, and hooks preview regions because they update when pet routing or command mode changes. + +Oracle verdict: approved. + +Oracle should-fix feedback: none. + +Oracle nice-to-have feedback: + +- Tighten the packaging contract Agent Setup CSP assertion to specifically check `createAgentSetupHtml`. +- Consider hiding/rewording disabled local dev mode in packaged builds later. + +Integrations hub follow-up review: + +- Designer verdict: approved. Nice-to-have: focus management and view transition polish. +- Oracle verdict: approved. Nice-to-have: after Claude quick Install, surface result in detail view; broaden package-contract remote-asset assertion. + +## Implementation feedback disposition + +Fixed: + +- Added `aria-label` and `aria-live="polite"` to command, MCP JSON, and hooks preview regions. +- Tightened the package contract to assert Agent Setup's data-only CSP within `createAgentSetupHtml` specifically. +- Added grid → Claude detail → back focus management. +- Claude grid quick Install now opens Claude detail after configure so the action result is visible. +- Tightened package contract to reject any `https?:` reference inside `createAgentSetupHtml` and added bundled integration SVG safety checks. + +Accepted: + +- Packaged-build local dev mode copy can be refined later; existing command-mode validation and disabled state preserve safety. +- View transition polish can wait until the hub/detail interaction is manually reviewed. + +## Claude detail redesign update + +User feedback after manual review: the Claude detail page was too dense and confusing, and mismatched/custom `openpets` MCP entries should not appear as scary errors by default. + +Updated UX direction: + +- Claude detail is a single-column page with three clear areas: + - **Connection**: status, pet routing, and only the actions that apply now. + - **Optional Claude hooks**: hook status/actions with a global-settings warning. + - **Advanced details**: collapsed command/MCP JSON/hooks JSON previews for inspection/manual fallback. +- Existing/custom `openpets` MCP entries are treated as installed-but-custom/installed-but-unverified in the UI. +- `configure` still refuses to overwrite existing custom/unverified entries; `replace` remains explicit and separate. +- Remove and hook actions stay visible only in the Claude detail view, never from the grid quick action. + +Review results: + +- Designer approved the simplified single-column detail flow with no blockers or should-fix issues. +- Oracle approved safety/correctness with one should-fix: bundled-mode custom-entry warning must mention that Remove deletes the `openpets` MCP entry. + +Disposition: + +- Fixed bundled-mode warning copy to mention Remove risk. +- Calmed the backend `configure` refusal message for existing custom/unverified entries while preserving overwrite protection. + +Validation passed after fixes: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +## Claude detail loading/action refinement + +User feedback after manual review: + +- Custom config repair should be a primary action labeled **Replace configuration**. +- MCP command/JSON preview belongs inside the Connection/MCP section. +- Hooks JSON preview belongs inside the Hooks section. +- Slow actions need immediate loading feedback; replace/remove/hook install/check/remove take several seconds. + +Implemented: + +- Renamed and promoted Replace to a primary **Replace configuration** button. +- Moved MCP advanced preview into the Connection card. +- Moved hooks advanced preview into the Hooks card. +- Added per-action loading labels/spinner and disabled surrounding controls while Claude actions run. + +Review results: + +- Designer approved with no blockers or should-fix issues. +- Oracle found two loading-state should-fix issues: copy command should not leave controls disabled, and failed actions must restore prior disabled states instead of blindly enabling everything. + +Disposition: + +- Copy command now bypasses the busy wrapper. +- Busy handling now stores/restores prior disabled states on failure. + +Follow-up fixes: + +- Back to integrations remains enabled while a Claude action is loading. +- Claude MCP status detection now allows a slower cold `claude mcp list` by using a longer timeout and retrying once after an initial timeout, so first open is less likely to show a transient timeout error that Refresh immediately fixes. diff --git a/docs/phases/phase-13e-onboarding-flow-polish.md b/docs/phases/phase-13e-onboarding-flow-polish.md new file mode 100644 index 00000000..e9d6f572 --- /dev/null +++ b/docs/phases/phase-13e-onboarding-flow-polish.md @@ -0,0 +1,188 @@ +# Phase 13E: Onboarding Flow Polish + +## Goal + +Finish the first-run onboarding flow beyond the polished welcome screen so the Pets, Integrations, and Ready steps feel like a direct continuation of the welcome screen and guide users into the real product windows. + +Phase 13B polished only the first welcome/greeting step. This phase polishes the remaining onboarding steps and makes the primary action on those steps open Pet Manager or Integrations. + +## Non-goals + +- No new pet installation behavior. +- No new Claude MCP or hooks behavior. +- No new persisted onboarding sub-step state. +- No remote assets or new network calls. +- No changes to runtime use of `lfs/greeting.png`; it remains reference-only. +- No committing real user data or Claude settings. + +## User-visible/manual outcome + +On first launch, onboarding should feel complete: + +- Step 0 remains the polished OpenPets welcome. +- Step 1 explains choosing/managing pets and makes **Open Pet Manager** the primary action. +- Step 2 explains connecting coding agents and makes **Open Integrations** the primary action. +- Step 3 clearly explains that setup is done and where to reopen Pet Manager/Integrations later. +- The user can still skip/continue without installing a pet or configuring Claude. +- Pets/Integrations step copy makes focus behavior clear: if the user opens the product window, they should return to onboarding to continue. + +## Acceptance criteria + +- Onboarding still has four clear steps: Welcome, Pets, Integrations, Ready. +- Later steps use the same light polished visual language as the welcome/Pet Manager/Integrations work, not the older dark generic card style. +- Onboarding does not auto-open Pet Manager or Integrations on step entry. +- Open Pet Manager and Open Integrations are primary actions; Continue remains secondary beside them. +- If Pet Manager or Integrations is already open, clicking the primary action reuses/focuses the existing window through the existing `openTaskWindow` behavior and does not create duplicates. +- Manual open is best-effort: if a window open fails, onboarding shows a readable status/error and the primary button remains usable. +- Each open step has a dedicated status line with clear states: instruction text, `Opening…`, `Opened — return here to continue.`, and failure text. +- Manual buttons remain available: + - Open Pet Manager / Continue, + - Open Integrations / Continue, + - Start using OpenPets, + - optional Ready-step shortcuts. +- Step labels/copy/buttons use current product naming: “Integrations” rather than “Agent Setup” everywhere user-facing. Internal IPC/function names may remain unchanged. +- Onboarding completion behavior remains unchanged: Finish marks onboarding completed and closes the onboarding window. +- Closing onboarding before Finish still leaves onboarding incomplete and available later. +- Auto-opening Pet Manager/Integrations does not mutate pet catalog, Claude MCP config, or hook settings by itself. +- Existing IPC sender allow-list remains local-only and only allows onboarding to open internal task windows. +- Onboarding CSP remains `img-src data:` only; no remote assets. +- Dynamic text/status updates use DOM APIs/textContent, not `innerHTML`. +- Keyboard/tab access still reaches all actions. +- Window remains usable at 900×760 and 720×520 with scrolling if needed. +- `pnpm --filter @open-pets/desktop build` passes. +- `pnpm --filter @open-pets/desktop test` passes. +- Designer review is completed for the polished later-step UX. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `apps/desktop/src/windows.ts` + - Update onboarding markup and scoped styles for Pets, Integrations, Ready steps. + - Rename visible Agent Setup copy to Integrations where appropriate. +- `apps/desktop/preload.cjs` + - Trigger one-time Pet Manager/Integrations auto-open when entering steps 1 and 2. + - Keep manual buttons and completion behavior. +- `apps/desktop/src/check-packaging-contract.ts` + - Update assertions only if onboarding contract/copy/assets need coverage. +- `docs/phases/phase-13e-onboarding-flow-polish.md` + - This spec, reviews, and dispositions. + +## Technical approach + +1. Keep the existing four-step onboarding model. +2. Replace the older dark generic card markup for steps 1–3 with polished light cards: + - Pets: short explanation, “Pet Manager opened” status, Open/Continue actions. + - Integrations: short explanation, “Integrations opened” status, Open/Continue actions. + - Ready: clear final call-to-action and shortcuts. +3. In preload, keep `showStep(step)` focused on navigation only; do not auto-open child windows. +4. Clicking Open Pet Manager calls `onboardingApi.openPetManager()` and updates a dedicated status line. +5. Clicking Open Integrations calls `onboardingApi.openAgentSetup()` and updates a dedicated status line. +6. Continue buttons advance without opening windows. +7. Do not make open actions install/configure anything; they only open internal windows. + +## Risks and tradeoffs + +- Opening child windows can steal focus from onboarding. This now only happens after an explicit user click on the primary action. +- Onboarding step copy/status must explicitly say that the product window opened and the user should return to onboarding to continue. +- Pet Manager/Integrations are separate task windows, so users may need to return to onboarding manually after reviewing them. The onboarding copy should make that clear. + +## Security/privacy notes + +- No new external IPC or network behavior. +- Auto-open only calls existing internal window-opening IPC from the onboarding renderer. +- No automatic Claude configuration, hook installation, pet installation, file writes, or user settings mutation beyond final onboarding completion. +- Existing CSP restrictions remain. + +## Test/check plan + +Run: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +If onboarding CSP/assets/package contracts change, also run: + +```bash +pnpm package:desktop:dir +``` + +## Manual verification guide + +1. Run `pnpm dev:desktop`. +2. Reset onboarding state if needed by deleting the OpenPets app data directory. +3. Confirm Welcome still looks polished. +4. Click Next and confirm Pet Manager does not auto-open. +5. Confirm the Pets step visually matches the welcome screen direction and has Open Pet Manager as the primary action with Continue secondary beside it. +6. Click Open Pet Manager and confirm it opens/focuses Pet Manager and updates the status line. +7. Return to onboarding and click Continue; confirm Integrations does not auto-open. +8. Confirm the Integrations step visually matches the welcome screen direction and has Open Integrations as the primary action with Continue secondary beside it. +9. Click Open Integrations and confirm it opens/focuses Integrations and updates the status line. +10. Confirm neither auto-open action installs pets, configures Claude, installs hooks, or removes anything. +11. Confirm Ready step copy and shortcuts are clear. +12. Click Start using OpenPets and confirm onboarding closes and does not reopen on next launch. +13. Confirm closing before Finish keeps onboarding incomplete. +14. Resize to 720×520 and confirm all steps remain usable. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Clarify focus/window behavior because auto-open will likely steal focus from onboarding. +- Define once-only semantics precisely: entering steps repeatedly should not reopen/refocus unless the user clicks the manual button. +- Require dedicated status lines for `Opening…`, success, and failure. +- Rename visible Agent Setup copy to Integrations; internal names may stay. +- Confirm auto-open only happens after user advances, not on initial welcome render. +- Add manual verification for existing-window reuse/focus without duplicates. + +Nice-to-have feedback: + +- Add a return-to-onboarding hint in step copy. +- Add package-contract assertions if CSP/copy/assets change materially. +- Manually check small displays and multi-window behavior. + +Verdict: implementation-ready after tightening focus/status/once-only criteria. + +## Oracle feedback disposition + +Fixed: + +- Added focus-stealing/return-to-onboarding copy requirements. +- Defined once-only semantics per onboarding renderer session and manual button behavior. +- Added dedicated auto-open status line requirements. +- Required user-facing Integrations naming. +- Clarified no auto-open on initial welcome render. +- Expanded manual verification for reuse/focus/no duplicates. + +Accepted: + +- Package-contract assertions are only needed if CSP/assets/contracts materially change. +- Small display and multi-window behavior are included in manual verification. + +## Revised UX direction + +After an initial implementation pass, user feedback was that auto-open felt wrong and later steps did not visually match the first welcome page closely enough. + +Updated direction: + +- Do not auto-open Pet Manager or Integrations on step entry. +- Make **Open Pet Manager** / **Open Integrations** the primary action. +- Keep **Continue** as the secondary action next to the primary action. +- Ensure the later onboarding cards use the same light background, rounded glass card, clouds, typography, and visual direction as the welcome screen. + +## Implementation notes + +Implemented: + +- Reworked Pets, Integrations, and Ready steps into polished light cards. +- Renamed user-facing Agent Setup copy/buttons to Integrations. +- Added dedicated auto-open status lines for Pet Manager and Integrations. +- Added one-time auto-open behavior for steps 1 and 2 after user navigation. +- Preserved manual open buttons and finish behavior. + +Validation/reviews pending. diff --git a/docs/phases/phase-13f-settings-tray-polish.md b/docs/phases/phase-13f-settings-tray-polish.md new file mode 100644 index 00000000..ba9de4bf --- /dev/null +++ b/docs/phases/phase-13f-settings-tray-polish.md @@ -0,0 +1,207 @@ +# Phase 13F: Settings and Tray Polish + +## Goal + +Polish the remaining basic desktop surfaces so Settings and tray/menu copy match the Phase 13 visual/product direction. + +## Non-goals + +- No new settings schema. +- No new pet behavior beyond existing preference/reset actions. +- No new Integrations/Claude behavior. +- No remote assets or network calls. +- No changes to onboarding flow beyond label consistency if needed. + +## User-visible/manual outcome + +- Settings opens as a polished light OpenPets window instead of the older dark generic card layout. +- Settings groups current controls into clear cards/rows with better copy and consistent button/toggle styling. +- Tray menu uses current product labels, especially **Integrations** instead of **Configure Agents**. +- Tray menu order is clearer and still exposes setup, pet visibility, pause/resume, Pet Manager, Integrations, Settings, and Quit. + +## Acceptance criteria + +- Settings uses a light background/card style consistent with Onboarding, Pet Manager, and Integrations. +- Existing Settings controls are preserved: + - Open default pet on app launch, + - Speech bubbles enabled, + - Pet scale coming later, + - Reset default pet position. +- Settings controls remain wired to the existing preload/state behavior. +- Settings result/error feedback remains visible. +- Settings remains usable at 900×760 and minimum 720×520. +- No remote assets are added; Settings CSP remains restrictive and does not need `img-src` unless images are added. +- Tray menu user-facing copy uses current naming: + - `Continue Setup...` can remain, + - `Manage Pets...` remains acceptable, + - `Configure Agents...` becomes `Integrations...`, + - Quit and pause/show/hide labels remain clear. +- Tray menu order remains: + - `OpenPets` disabled header, + - separator, + - conditional `Continue Setup...` plus separator when onboarding is incomplete, + - `Default Pet: Built-in Pet`, + - `Show/Hide Default Pet`, + - `Pause/Resume All Pets`, + - separator, + - `Manage Pets...`, + - `Integrations...`, + - `Settings...`, + - separator, + - `Quit OpenPets`. +- Tray actions still call the same internal functions/windows. +- Agent setup window title/user-facing definition uses **Integrations** (`OpenPets — Integrations`) while preserving internal `agent-setup` identifiers. +- Settings includes visible `aria-live` status feedback for successful preference saves and reset actions, plus existing error feedback. +- Settings-specific light styles are scoped to `body[data-openpets-view="settings"]`; avoid broad edits to global `button`, `.card`, or `.setting-row` behavior. +- Settings has clear keyboard/focus behavior: labels toggle checkboxes, reset button is reachable, focus states are visible. +- `pnpm --filter @open-pets/desktop build` passes. +- `pnpm --filter @open-pets/desktop test` passes. +- Designer review is completed for Settings polish. +- Oracle implementation review is completed and feedback is dispositioned. + +## Proposed files/directories + +- `apps/desktop/src/windows.ts` + - Redesign Settings markup and scoped Settings CSS. +- `apps/desktop/preload.cjs` + - Adjust only if markup IDs/classes require it; preserve behavior. +- `apps/desktop/src/tray.ts` + - Update menu labels/order only. +- `docs/phases/phase-13f-settings-tray-polish.md` + - This spec, reviews, and dispositions. + +## Technical approach + +1. Keep `createSettingsHtml()` simple and data-free: no assets, no remote content. +2. Add scoped CSS under `body[data-openpets-view="settings"]` to avoid broad regressions. +3. Use native checkboxes/buttons with polished row/card styling; do not invent custom persistence. +4. Preserve existing element IDs used by preload: + - `open-default-pet-on-launch`, + - `speech-bubbles-enabled`, + - `pet-scale-value`, + - `reset-default-pet-position`. +5. Update tray label `Configure Agents...` to `Integrations...`; keep `openTaskWindow("agent-setup")` internally. +6. Update any visible `Configure Agents` window title/heading copy to Integrations while preserving internal task kind names. + +## Risks and tradeoffs + +- Settings shares global task-window CSS; keep new CSS scoped to Settings to avoid impacting other polished views. +- Tray label changes should not imply new functionality; use Integrations because that is now the actual window experience. + +## Security/privacy notes + +- No new IPC channels. +- No new external content. +- Existing preference update IPC sender allow-list remains Settings-only. +- Reset position remains the existing local state action. + +## Test/check plan + +Run: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +If shared styles unexpectedly affect multiple windows, also run/manual-check the app via: + +```bash +pnpm dev:desktop +``` + +## Manual verification guide + +1. Run `pnpm dev:desktop`. +2. Open Settings from the tray and confirm it matches the light OpenPets polish direction. +3. Toggle “Open default pet on app launch” and confirm it persists after closing/reopening Settings. +4. Toggle “Speech bubbles enabled” and confirm it persists after closing/reopening Settings. +5. Toggle each checkbox twice in the same open Settings window and confirm controls re-enable after each save. +6. Restart the desktop app and confirm both toggles persist; for “Open default pet on app launch,” confirm startup behavior matches the setting. +7. Show the default pet, move it, click Reset default pet position twice, and confirm it returns near the bottom-right of the primary display and the button re-enables after each click. +8. Confirm Settings status/success text updates after toggles and reset, and errors still display if something fails. +9. Resize Settings to 720×520 and confirm no clipped controls, usable scrolling, and visible status/error feedback. +10. Open tray menu and confirm `Integrations...` appears instead of `Configure Agents...` in the expected order. +11. Click every tray menu item once where safe: Continue Setup (if visible), Show/Hide, Pause/Resume, Manage Pets, Integrations, Settings. +12. Click `Integrations...` and confirm the Integrations window opens with the user-facing title/copy updated. +13. Smoke-check Pet Manager and Onboarding for obvious style regressions. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: + +- Settings preload ID inventory omitted `pet-scale-value`, which current preload requires. + +Should-fix feedback: + +- Define exact tray order. +- Update all user-facing “Configure Agents” surfaces, including agent window title/definition. +- Clarify Settings feedback behavior with visible `aria-live` success/status text or narrow to errors only. +- Add explicit minimum-size manual checks. +- Add restart persistence verification for settings toggles and startup behavior. +- Strengthen reset-position manual verification by moving/showing the pet first. +- Require Settings-specific scoped light overrides, not broad global style edits. + +Nice-to-have feedback: + +- Add keyboard/focus accessibility acceptance. +- Replace stale Settings definition copy. +- Smoke-test all tray menu items after reorder/rename. + +Verdict: conditionally approved after spec fixes. + +## Oracle feedback disposition + +Fixed: + +- Added `pet-scale-value` to required ID inventory. +- Added exact tray order. +- Required user-facing Integrations naming for tray and window title/definition. +- Required visible Settings status/success feedback. +- Added minimum-size, restart persistence, startup behavior, reset-position, and full tray smoke manual checks. +- Required Settings-specific scoped styling and keyboard/focus criteria. + +Accepted: + +- Settings definition copy will be updated as part of the user-facing Integrations/Settings polish. + +## Implementation notes + +Implemented: + +- Redesigned Settings as scoped light UI with header, grouped panels, polished rows, focus states, and status feedback. +- Preserved existing Settings controls and IDs, including `pet-scale-value`. +- Added `settings-status` as an `aria-live` region for saving/reset feedback. +- Updated user-facing agent setup title/heading to Integrations while preserving internal `agent-setup` IDs. +- Renamed tray `Configure Agents...` to `Integrations...` without changing the underlying action. + +Follow-up Settings changes: + +- Removed the Speech bubbles toggle because speech bubbles are now always enabled. +- Added a Launch OpenPets at login toggle backed by Electron login item settings on supported platforms. +- Kept unsupported platforms disabled with explanatory copy. + +Validation passed: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +Designer review: approved with no blockers or should-fix issues. + +Oracle implementation review: + +- Blocker: Settings controls were not re-enabled after successful saves/resets. +- Should-fix: failure status text could remain stuck on “Saving…”/“Resetting…”. +- Should-fix: manual verification should include repeated toggle/reset checks. +- Nice-to-have: add `role="status"` to Settings status. + +Disposition: + +- Fixed controls re-enabling in `renderSettings()`. +- Fixed failure status text for save/reset errors. +- Added repeated toggle/reset manual checks. +- Added `role="status"` to Settings status. diff --git a/docs/phases/phase-14-pet-scale-setting.md b/docs/phases/phase-14-pet-scale-setting.md new file mode 100644 index 00000000..ad6be355 --- /dev/null +++ b/docs/phases/phase-14-pet-scale-setting.md @@ -0,0 +1,168 @@ +# Phase 14: Pet Scale Setting + +## Goal + +Make the existing `petScale` preference real: Settings should let users choose pet size, and the desktop pet should update without layout shift or cropping. + +## Non-goals + +- No new pet animation states. +- No new pet window transparency/drag behavior beyond preserving current behavior. +- No new persisted schema version. +- No custom per-pet scale; scale applies to the default desktop pet renderer. +- No changes to MCP speech safety or bubble content. + +## User-visible/manual outcome + +- Settings shows a usable Pet scale control instead of “coming later.” +- Changing scale updates the visible default pet shortly after save. +- The pet remains unclipped at supported scale values. +- Chat bubble remains an overlay above the pet and does not move the pet. +- Reset position still places the pet near the bottom-right using the window bounds. + +## Acceptance criteria + +- Settings exposes pet scale choices: Small, Medium, Large. +- Default scale is **Medium**, matching the current polished pet size after the bugfix. +- Persisted `preferences.petScale` accepts only supported numeric values and normalizes invalid/old values to the default. +- `validatePreferencePatch()` accepts only supported `petScale` values from Settings IPC; unsupported/non-finite values are rejected. +- Current and newly created state files use the new default scale. +- Changing scale via Settings saves through existing `openpets:update-preferences` IPC. +- Changing scale refreshes the default pet content immediately if it is visible. +- Unrelated preference updates, including launch/speech toggles and tray show/hide writes, do not reset the selected scale. +- Scale applies to built-in and installed default pet sprites. +- Scale is passed explicitly through the default-pet render path; explicit agent pet windows are not accidentally changed unless deliberately passed a scale later. +- Pet shell/card dimensions, sprite transform, and bubble offset all derive from the same scale constant/value. +- Bubble vertical position is derived from scale and stays close to the pet without shifting the pet. +- Pet and bubble do not get cropped at supported scales. +- Existing IDs needed by Settings/preload remain stable or are intentionally updated together. +- `pnpm --filter @open-pets/desktop build` passes. +- `pnpm --filter @open-pets/desktop test` passes. + +## Proposed files/directories + +- `apps/desktop/src/app-state.ts` + - Normalize/validate `petScale`. + - Change default scale to Medium. +- `apps/desktop/src/pet-window.ts` + - Use persisted `petScale` for sprite and bubble layout. +- `apps/desktop/src/windows.ts` + - Replace disabled “Pet scale” row with a real select/segmented control. + - Refresh pet content after scale updates. +- `apps/desktop/preload.cjs` + - Render and bind scale control. +- `docs/phases/phase-14-pet-scale-setting.md` + - This spec, reviews, and dispositions. + +## Technical approach + +1. Define supported scale values/default in a single pure source of truth, `app-state-core.ts`, and import/reuse where practical: + - Small: `0.44`, + - Medium: `0.56`, + - Large: `0.72`. +2. Make Medium (`0.56`) the default. +3. Preserve old/corrupt state safety by normalizing any unsupported `petScale` to Medium. Old persisted `petScale: 1` should normalize to Medium because `1` was never the actual post-bugfix visual render scale. +4. In Settings, add a `select id="pet-scale"` or equivalent simple control. +5. On scale change, call existing `updatePreferences({ petScale })` and show status feedback. +6. In main process preference update handler, compare previous vs next `petScale` and call `refreshDefaultPetContent()` only when scale actually changes. +7. In pet renderer creation, read `state.preferences.petScale` and pass/use it for: + - sprite transform scale, + - scaled shell size, + - installed card size, + - bubble bottom offset. + +## Risks and tradeoffs + +- Window size stays fixed at 220×260 for simplicity. Large scale is capped to fit within that viewport with the current bubble max height. +- Position persistence stores top-left window position, not pet visual anchor. Changing scale may visually change the pet’s bottom/right footprint but should not jump the window unexpectedly. +- Existing old state files with `petScale: 1` will normalize to Medium, preserving the current corrected default size while allowing users to choose a smaller Small option. + +## Security/privacy notes + +- No new IPC channels. +- Existing Settings-only preference update IPC is reused. +- Scale input is validated in the main process/state normalization. +- No remote assets or code execution changes. + +## Test/check plan + +Run: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +## Manual verification guide + +1. Run `pnpm dev:desktop`. +2. Open Settings and confirm Pet scale offers Small, Medium, Large. +3. With the pet visible, switch between Small/Medium/Large and confirm the visible pet updates. +4. Change scale twice in the same Settings session and confirm controls stay enabled. +5. Toggle launch/speech settings and confirm the selected scale does not reset. +6. Test all scales with the built-in pet and with an installed pet set as default. +7. Trigger short and long speech bubbles/reactions at each scale, especially Large, and confirm bubble/pet are not cropped and the pet does not move. +8. Change scale while the pet is hidden, then show the pet and confirm the selected scale applies. +9. Confirm Reset default pet position still moves the pet near bottom-right at Small and Large. +10. Restart the app and confirm selected scale persists. +11. If manually editing state for verification, confirm fresh state defaults to Medium, old `petScale: 1` normalizes to Medium, and invalid values normalize to Medium. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: + +- Proposed Large `0.9` likely cannot meet no-cropping in the current fixed 220×260 window with max-height bubble. +- Settings IPC validation for `petScale` must be explicit because current `validatePreferencePatch()` only accepts launch/speech preferences. + +Should-fix feedback: + +- Define scale constants/default in one main-process source of truth. +- Clarify that old `petScale: 1` normalizes to the default because it was not the actual post-bugfix visual scale. +- Ensure unrelated preference updates do not reset scale. +- Pass scale explicitly through the default-pet path so explicit agent pet windows are not accidentally affected. +- Require derived dimensions/offsets to use the same scale. +- Refresh pet content only after real scale changes. + +Manual verification gaps: + +- Test built-in and installed default pets. +- Test long speech/reaction bubbles at each scale. +- Test fresh state, old `petScale: 1`, invalid values. +- Test repeated scale changes in one Settings session. +- Test scale while pet hidden, then show pet. +- Test reset position at Small and Large. + +Verdict: conditionally approved after fixing scale sizing. + +## Oracle feedback disposition + +Fixed: + +- Reduced Large to `0.84` to fit the fixed viewport with bubble. +- Added explicit Settings IPC validation requirement. +- Added one-source-of-truth scale constants requirement. +- Documented `petScale: 1` migration to the default. +- Added unrelated preference preservation, explicit default-pet scale path, derived dimension, and refresh-on-real-change criteria. +- Expanded manual verification matrix. + +## Implementation notes + +Implemented: + +- Added supported scale constants in `app-state.ts`: Small `0.44`, Medium `0.56`, Large `0.72`. +- Moved scale constants/normalization into pure `app-state-core.ts` so lightweight tests can cover scale normalization without importing Electron. +- Changed default/invalid scale normalization to Medium. +- Added real Settings Pet scale select and status feedback. +- Added `petScale` validation to Settings preference IPC. +- Refreshes default pet content only when scale changes. +- Pet renderer derives shell size, sprite transform, installed-card size, and bubble offset from the selected scale. +- Explicit agent pet windows keep the Medium/default render scale for now; default pet windows use the saved preference. + +Validation passed: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` diff --git a/docs/phases/phase-15-codex-pet-import.md b/docs/phases/phase-15-codex-pet-import.md new file mode 100644 index 00000000..778092d6 --- /dev/null +++ b/docs/phases/phase-15-codex-pet-import.md @@ -0,0 +1,44 @@ +# Phase 15 — Codex Pet Import + +## Goal + +Let users import locally generated Codex pets from `~/.codex/pets/` directly in Pet Manager. + +## Implemented + +- Added a **Codex** tab next to All and Installed in Pet Manager. +- Added main-process discovery for `~/.codex/pets//pet.json` and `spritesheet.webp`. +- Codex pets are shown with local `data:image/webp` previews so the Pet Manager CSP does not need broader local-file image access. +- Local previews are only inlined when the raw spritesheet bytes are small enough and the Codex tab remains under a total raw preview-byte cap; oversized valid pets can still be imported but show an empty preview. +- Added Import action for Codex-only pets. +- If a pet exists in both the catalog and Codex, the Pet Manager uses Codex metadata/preview and Import uses the local Codex copy. +- Import copies only validated `pet.json` metadata and `spritesheet.webp` into OpenPets user data under the normal installed-pets directory. +- Imported Codex pets are recorded in app state with `source.kind = "codex"`. +- Missing `~/.codex/pets/` is treated as an empty Codex tab, not an error. +- Discovery scans at most 100 sorted Codex pet directories per render. + +## Safety Rules + +- Pet id must be safe and match the folder name. +- `spritesheetPath` must be exactly `spritesheet.webp`. +- `pet.json` and `spritesheet.webp` have size limits. +- The Codex root, source path, and pet files must stay inside `~/.codex/pets/`; root, pet directories, and files cannot be symlinks. +- Destination path must stay inside OpenPets pets storage. +- Import writes fresh regular files into OpenPets storage rather than copying links. +- Existing installed pets cannot be imported again. +- Import shares the same per-pet operation lock as catalog install/remove/default changes. + +## Automated Checks + +- `check-codex-pets.ts` covers Codex metadata validation and preview-size gating. +- Desktop test script includes the Codex check. + +## Manual Verification + +1. Ensure local pets exist under `~/.codex/pets//pet.json` and `spritesheet.webp`. +2. Open Pet Manager. +3. Confirm the Codex tab appears. +4. Confirm Codex pets show previews and descriptions. +5. Import a Codex pet. +6. Confirm it moves to Installed and can be set as default. +7. Confirm removing it deletes the OpenPets copy, not the original Codex folder. diff --git a/docs/phases/phase-16-claude-hook-pet-routing.md b/docs/phases/phase-16-claude-hook-pet-routing.md new file mode 100644 index 00000000..a3660a2e --- /dev/null +++ b/docs/phases/phase-16-claude-hook-pet-routing.md @@ -0,0 +1,84 @@ +# Phase 16 — Claude Hook Pet Routing + +## Goal + +When a Claude integration is configured with a selected pet, Claude hook speech/reactions should route to the same selected pet as the MCP server instead of always using the default desktop pet. + +## Non-goals + +- Per-project Claude hook installation. Current Claude hooks remain global user settings. +- Changing MCP lease behavior. +- Removing the default-pet fallback when no hook pet is configured. + +## User-visible/manual outcome + +- Installing/updating Claude hooks from Integrations with pet `fixer` writes hook commands containing `--pet fixer`. +- Prompt-submit hook speech appears on the fixer pet, matching the selected Claude integration pet. +- If no selected pet is configured for hooks, hook events continue targeting the default pet. + +## Acceptance criteria + +- `open-pets-claude hook --openpets-managed --pet ` validates `` and passes it to hook handling. +- Hook handling acquires a short OpenPets lease for the configured pet and passes that `leaseId` into `say`/`react`. +- Integrations hook doctor/install uses the selected pet when checking/writing hooks. +- Hook status text makes the target explicit. +- Invalid hook `--pet` values are rejected at CLI boundary. + +## Proposed files/directories + +- `packages/claude/src/cli.ts` +- `packages/claude/src/hooks.ts` +- `packages/claude/src/hook-settings.ts` +- `packages/claude/src/check-claude-hooks.ts` +- `apps/desktop/src/agent-setup.ts` + +## Technical approach + +- Extend the Claude hook CLI with `--pet` parsing using the same pet-id validation as MCP setup. +- Include `--pet ` in generated Claude hook commands when a selected pet exists. +- During hook runtime, acquire a short lease for the configured pet and pass the returned lease id to the OpenPets client call. +- Do not release hook leases immediately; rely on the existing short TTL so the explicit pet remains visible briefly after the hook event. +- Preserve default-pet behavior when no `--pet` is present. + +## Risks and tradeoffs + +- Hooks are global in `~/.claude/settings.json`, so installing hooks for `fixer` makes hook events target `fixer` globally. Per-project hook routing is deferred. +- If the selected pet is missing or broken, local IPC falls back to default pet using existing lease fallback behavior. + +## Security/privacy notes + +- Hook `--pet` is validated against the safe pet-id pattern before use. +- Hook speech validation still rejects code, paths, URLs, and secret-like content. +- No hook payload content is logged by default. + +## Test/check plan + +- `pnpm --filter @open-pets/claude build` +- `pnpm --filter @open-pets/claude test` +- `pnpm --filter @open-pets/desktop build` +- `pnpm --filter @open-pets/desktop test` +- `pnpm --filter @open-pets/mcp test` + +## Manual verification guide + +1. Open Integrations. +2. Select `fixer` for Claude. +3. Update/install optional Claude hooks. +4. Confirm `~/.claude/settings.json` hook commands include `--pet fixer`. +5. Start Claude in a project using the `--pet fixer` MCP config. +6. Submit a prompt. +7. Confirm hook speech/reaction appears on the fixer pet, not the default pet. + +## Oracle plan review + +Skipped as emergency bugfix; implementation review requested immediately after the targeted fix. + +## Oracle feedback disposition + +Implementation review via Oracle found no blocking issues. + +- Fixed: Added CLI-level regression coverage for `open-pets-claude hook --pet fixer` and invalid `--pet bad/pet`. +- Fixed: Hook status message now states whether hook events target the selected pet or default pet. +- Fixed: Hook CLI validates `--pet` at the boundary instead of relying only on IPC fallback. +- Fixed: Hook action journal commands include `--pet ` when applicable. +- Accepted: Hook leases are not immediately released; they rely on the existing 15s TTL to keep the explicit pet visible after hook events. diff --git a/docs/phases/phase-17-openpets-cli-project-setup.md b/docs/phases/phase-17-openpets-cli-project-setup.md new file mode 100644 index 00000000..aea1189a --- /dev/null +++ b/docs/phases/phase-17-openpets-cli-project-setup.md @@ -0,0 +1,298 @@ +# Phase 17 — OpenPets CLI Project Setup + +## Goal + +Add a real npm-distributed OpenPets CLI that lets users configure the current project to use a selected pet with Claude, using one simple command. + +Primary command: + +```bash +npx @open-pets/cli configure --pet fixer +``` + +This should configure both Claude MCP and Claude hooks for the current project. No extra MCP/hooks questions. + +## Non-goals + +- App-installed `openpets` shim / Settings “Install CLI” button. Defer to a later phase. +- Shared/team project config by default. +- Supporting agents other than Claude. +- Remote/custom catalog flags. +- `openpets install `; defer pet installation CLI to a later phase. +- Exposing pet install/remove/default controls through MCP tools. +- Building a complex TUI. Keep interaction simple. + +## User-visible/manual outcome + +From a project directory, users can run: + +```bash +npx @open-pets/cli configure --pet fixer +``` + +Expected result: + +- Claude MCP is configured locally for the current project with OpenPets `--pet fixer`. +- Claude project-local hooks are configured with `--project-local --pet fixer`. +- Starting Claude from that project makes MCP tools and hook speech/reactions target fixer. + +Users can also run: + +```bash +npx @open-pets/cli configure --agent claude --pet fixer --cwd /path/to/project --yes +``` + +If `--pet` is omitted, the CLI lists installed pets and prompts for one. + +## Acceptance criteria + +- `packages/cli` exposes a real executable bin, `openpets`. +- `openpets configure --pet ` runs non-interactively for Claude using current working directory. +- `--agent claude` is accepted; unsupported agents fail clearly. +- `--cwd ` targets another project directory; default is `process.cwd()`. +- `--yes` is accepted as a compatibility/no-op flag; there is no final confirmation prompt in Phase 17. +- If `--pet` is missing, CLI queries installed pets from the running OpenPets desktop app and prompts the user to choose. +- CLI configures Claude MCP using local project scope, private to the current user. +- CLI configures Claude hooks in `/.claude/settings.local.json`, private to the project/user. +- Claude MCP command is installed while spawning `claude` with `cwd` set to the resolved target project. +- Long-lived generated Claude MCP/hook commands use a stable package command, not a temporary `npx @open-pets/cli` install path. +- Hook commands include `--pet `. +- Existing non-OpenPets hooks in `.claude/settings.local.json` are preserved. +- Existing OpenPets-managed hooks are replaced safely. +- CLI fails with clear instructions if OpenPets desktop app is not running. +- CLI fails clearly if Claude Code is unavailable on `PATH`. +- CLI validates selected pet ids and rejects unsafe values. + +## Proposed files/directories + +- `packages/cli/package.json` +- `packages/cli/src/index.ts` +- `packages/cli/src/check-cli-contract.ts` +- `packages/client/src/index.ts` +- `apps/desktop/src/local-ipc.ts` +- `apps/desktop/src/local-ipc-protocol.ts` +- `apps/desktop/src/check-local-ipc-protocol.ts` +- `packages/claude/src/hook-settings.ts` (reuse project-local hook writer by passing settings path) + +## Technical approach + +### CLI command shape + +```bash +openpets configure [--agent claude] [--pet ] [--cwd ] [--yes] +``` + +Defaults: + +- `--agent claude` +- `--cwd process.cwd()` +- configure both MCP and hooks +- local/private project config + +### Installed pet discovery + +Add a narrow local IPC/client method for the user-run CLI: + +```ts +pets.list +``` + +Return only safe display data: + +```ts +{ + ok: true, + pets: [ + { id, displayName, installed: true, builtIn, broken } + ], + defaultPetId +} +``` + +The CLI uses this to validate `--pet` and power the picker. + +### Stable generated commands + +Do not write temp/cache paths from `npx @open-pets/cli` into Claude config. Instead make the CLI package self-contained and expose wrapper subcommands: + +```bash +openpets mcp --pet fixer +openpets hook --openpets-managed --project-local --pet fixer +``` + +Generated long-lived commands should use the package version being configured: + +```bash +npx -y @open-pets/cli@0.0.0 mcp --pet fixer +npx -y @open-pets/cli@0.0.0 hook --openpets-managed --project-local --pet fixer +``` + +The `mcp` wrapper starts the existing OpenPets MCP server implementation. The `hook` wrapper delegates to the existing Claude hook handler. + +This avoids storing an absolute path into npm's temporary `npx` cache. + +### Claude MCP configuration + +Use Claude’s own CLI for local project MCP setup when available: + +```bash +claude mcp add-json openpets '' --scope local +``` + +JSON shape: + +```json +{ + "type": "stdio", + "command": "npx", + "args": ["-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], + "env": {} +} +``` + +Spawn `claude mcp add-json` with `cwd` set to the resolved target project directory so Claude's local MCP scope attaches to the intended project. + +Do not directly mutate `~/.claude.json` in this phase; delegate that to `claude mcp add-json`. + +### Claude project-local hooks + +Write hooks directly to: + +```text +/.claude/settings.local.json +``` + +Use existing `installClaudeHooks(settingsPath, commandMode, selectedPetId)` with a CLI-appropriate command mode/path if possible. If needed, add a small command builder option so the npm CLI writes hook commands that call the installed npm Claude CLI: + +```bash +npx -y @open-pets/cli@0.0.0 hook --openpets-managed --project-local --pet fixer +``` + +Project-local hooks are private and should not require committing repo files. + +Before writing hooks: + +- resolve and validate the target project directory; +- reject symlinked `/.claude` directories; +- ensure `/.claude/settings.local.json` resolves inside the target project; +- preserve existing non-OpenPets settings and hooks. + +### Interactive picker + +If `--pet` is missing: + +- list usable installed non-broken pets, including built-in unless explicitly disallowed later +- use a simple stdin/stdout numbered picker +- no extra MCP/hooks questions + +### Preflight and idempotency + +Before writing anything: + +- verify OpenPets desktop is reachable and supports `pets.list`; +- verify the selected pet is installed and usable; +- verify Claude Code is available on PATH; +- verify target project path and hook path safety; +- build the version-pinned wrapper commands. + +If any preflight fails, do not write MCP or hooks. + +If a local Claude MCP entry named `openpets` already exists, `configure` should replace it by invoking Claude's add/update flow for the same server name when supported by `claude mcp add-json`; if Claude refuses, fail clearly before writing hooks. + +## Risks and tradeoffs + +- Adding public local IPC pet listing is a new surface. Keep it read-only and minimal. +- Invoking `claude` CLI can fail if Claude Code is unavailable on PATH. CLI should print the exact failure and next step. +- Project-local hooks and Claude local MCP scope are stored in different places by Claude design. +- Npm `npx` hook commands may run package resolution at hook time. This is acceptable for npm-first CLI but may be slower than future app-installed shim. +- Generated commands are version-pinned for stability; users may need to rerun configure after upgrading OpenPets CLI. + +## Security/privacy notes + +- Do not expose filesystem install/remove/default mutation over MCP. +- Validate project path and pet id before writes. +- Only write inside `/.claude/settings.local.json` for hooks. +- Reject unsafe project-local hook paths, including symlinked `.claude` directories. +- Preserve non-OpenPets settings/hooks. +- Do not log prompt/hook payloads or secrets. + +## Test/check plan + +- Unit/contract check for CLI arg parsing and generated Claude config. +- Contract check that existing hooks are preserved and OpenPets-managed hooks are replaced. +- Mocked `claude` binary check for exact `add-json` argv, `--scope local`, JSON shape, and spawned cwd. +- Noninteractive `--pet` check; missing `--pet` non-TTY failure/picker behavior. +- Generated command version pinning check. +- Project hook writer rejects symlinked `.claude` / unsafe cwd. +- IPC protocol check for `pets.list` validation/result shape. +- MCP public tool list remains exactly `openpets_status`, `openpets_say`, `openpets_react`. +- Package build/test: + +```bash +pnpm --filter @open-pets/cli build +pnpm --filter @open-pets/cli test +pnpm --filter @open-pets/client test +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +pnpm --filter @open-pets/claude test +``` + +## Manual verification guide + +1. Run OpenPets desktop. +2. In a test project, run: + + ```bash + npx @open-pets/cli configure --pet fixer + ``` + +3. Confirm command succeeds without MCP/hooks prompts. +4. Confirm Claude local MCP entry for the project targets `--pet fixer`. +5. Confirm `/.claude/settings.local.json` contains OpenPets hooks with `--pet fixer`. +6. Start Claude in that project. +7. Confirm `/mcp` shows OpenPets connected. +8. Submit a prompt and confirm hook bubble appears on fixer. +9. Call `openpets_status` and confirm actual target is fixer. + +## Oracle plan review + +Oracle reviewed the Phase 17 plan and recommended revision before implementation. + +## Oracle feedback disposition + +- Fixed: Changed long-lived generated commands from temporary absolute package paths to self-contained, version-pinned `npx -y @open-pets/cli@ mcp/hook ...` wrappers. +- Fixed: Removed final confirmation prompt from Phase 17; `--yes` is accepted as no-op compatibility only. +- Fixed: Spec now requires spawning `claude mcp add-json` with `cwd` set to the target project. +- Fixed: Added project-local hook path safety requirements for symlinked `.claude` and inside-project resolution. +- Fixed: Deferred `openpets install ` out of Phase 17 to avoid expanding mutation/security scope. +- Fixed: Added preflight/idempotency requirements before writing MCP/hooks. +- Fixed: Added version pinning, mocked Claude CLI tests, project hook safety tests, noninteractive CLI tests, and MCP public tool-list regression to test plan. + +## Implementation notes + +- Added `openpets` bin in `@open-pets/cli`. +- Added `configure`, `mcp`, and `hook` CLI command paths. +- Added read-only `pets.list` local IPC/client method. +- `configure --pet ` writes config without requiring the desktop app to be running; omitting `--pet` still queries the running desktop app for interactive pet selection. +- Claude MCP config is written through `claude mcp add-json openpets --scope local` with `cwd` set to the target project. +- Project-local hooks are prepared before MCP mutation and written only after MCP configuration succeeds. +- Generated MCP/hook commands use version-pinned `npx -y @open-pets/cli@` wrappers. +- CLI-generated npm hook timeout is `10` seconds to tolerate `npx` startup. +- Project-local hooks include the internal `--project-local` marker so global OpenPets hooks can detect project-specific OpenPets hooks and skip themselves, preventing duplicate default/project pet reactions. +- `--force` / `--replace` removes any existing local Claude MCP `openpets` entry before adding the new one. +- Hidden maintainer flag `--local-dev` writes local `node /packages/cli/dist/index.js ...` commands for pre-release testing; it is intentionally omitted from user help. + +## Oracle implementation review + +Oracle approved the implementation after one revision pass. + +- Fixed: Avoid partial config by parsing/merging hook settings before MCP mutation and writing hooks only after MCP succeeds. +- Fixed: Reject symlinked `.claude`, non-file `settings.local.json`, malformed hook event arrays, and unsafe project-local hook paths. +- Fixed: Added `publishConfig.access = public` for npm-distributed packages. +- Fixed: Added `pets.list` response shape validation. +- Fixed: Added mocked Claude CLI cwd/argv/JSON test. +- Fixed: Increased CLI-generated hook timeout and added MCP wrapper signal forwarding. +- Fixed: Added global-hook duplicate prevention using explicit project-local hook marker detection. +- Fixed: Hardened project-local hook detection to reject symlinks/non-files, cap settings size, and ensure the settings path stays under the Claude project dir. +- Fixed: Hook CLI boundaries reject `--pet` with a missing value. +- Accepted: Generated commands are pinned to the package version; release must publish `@open-pets/cli`, `@open-pets/client`, `@open-pets/claude`, and `@open-pets/mcp` at the same version. diff --git a/docs/phases/phase-18-reaction-sprite-animation-mapping.md b/docs/phases/phase-18-reaction-sprite-animation-mapping.md new file mode 100644 index 00000000..e1f82359 --- /dev/null +++ b/docs/phases/phase-18-reaction-sprite-animation-mapping.md @@ -0,0 +1,352 @@ +# Phase 18 — Reaction Sprite Animation Mapping + +## Goal + +Make OpenPets reactions actually drive the pet spritesheet animation state, not just temporary reaction bubble text. + +OpenPets currently uses the universal Codex/OpenPets spritesheet layout for `idle`, `run-right`, and `run-left` only. The missing piece is mapping **all** universal spritesheet rows to reachable reaction/emotion states so no available Codex animation row is unused. + +This phase should make hooks like `thinking`, `editing`, `testing`, `waiting`, `success`, `error`, and `notification/attention` visibly animate the pet using the correct spritesheet rows for all built-in, installed catalog, and imported Codex pets that use the shared spritesheet format. + +## Non-goals + +- No new sprite art generation. +- No remote runtime art fetch. +- No broad pet format redesign. +- No new public MCP tools. +- No broad agent hook redesign. A narrow hook/reaction adjustment is allowed if needed to make every universal spritesheet row reachable. +- No physics/drag architecture rewrite beyond preserving existing drag left/right behavior. +- No support for arbitrary custom spritesheet layouts without explicit future metadata. + +## User-visible/manual outcome + +When Claude or MCP sends a reaction, the pet visibly changes animation row: + +- prompt/thinking shows the thinking/review animation, +- edit/write activity shows an active work animation, +- bash test activity shows a waiting/testing animation, +- permission requests show waiting, +- notifications/attention can wave, +- successful completion jumps/celebrates, +- failures show the failed/error animation, +- dragging still uses left/right run animations. + +Speech bubbles still work, but they are no longer the only visible feedback. + +## Acceptance criteria + +- A single universal spritesheet contract is documented and encoded in desktop code: + - 1536×1872 WebP, + - 8 columns × 9 rows, + - 192×208 frames, + - rows matching the Codex/OpenPets state layout below. +- The desktop renderer supports these universal rows: + + | Universal row | Codex state | Frames | Duration | Intended use | + | --- | --- | --- | --- | --- | + | 0 | `idle` | 6 | 5500ms | Neutral idle. | + | 1 | `running-right` | 8 | 1060ms | Drag/move right. | + | 2 | `running-left` | 8 | 1060ms | Drag/move left. | + | 3 | `waving` | 4 | 700ms | Friendly attention/click/optional greeting. | + | 4 | `jumping` | 5 | 840ms | Success/celebration. | + | 5 | `failed` | 8 | 1220ms | Error/failure/warning. | + | 6 | `waiting` | 6 | 1010ms | Waiting/permission/testing if no dedicated testing row. | + | 7 | `running` | 6 | 820ms | Working/editing/running active work. | + | 8 | `review` | 6 | 1030ms | Thinking/reviewing. | + +- Every universal animation row is reachable either through drag, hook behavior, or a public reaction value: + + | Universal state | Reachability requirement | + | --- | --- | + | `idle` | Default/no active reaction, and message-only speech. | + | `running-right` | Drag/move right via existing `run-right` motion IPC. | + | `running-left` | Drag/move left via existing `run-left` motion IPC. | + | `waving` | Reachable through a `waving` reaction and used for Claude `Notification`/attention. | + | `jumping` | Reachable through `success` and `celebrating`. | + | `failed` | Reachable through `error`. | + | `waiting` | Reachable through `waiting` and `testing`. | + | `running` | Reachable through `working`, `editing`, and `running`. | + | `review` | Reachable through `thinking`. | + +- Public reaction values should be expanded only as needed to make universal rows properly addressable: + - add `waving` so row 3 is directly usable, + - keep `warning` out of this phase because it maps to `failed` and does not unlock a new row, + - do not add `sleeping` in this phase because the universal sheet has no unique sleeping row and v1 maps it to `idle`. +- Current and new OpenPets reactions map to universal spritesheet states: + + | Reaction | Spritesheet state | + | --- | --- | + | `idle` | `idle` | + | `thinking` | `review` | + | `working` | `running` | + | `editing` | `running` | + | `running` | `running` | + | `testing` | `waiting` | + | `waiting` | `waiting` | + | `waving` | `waving` | + | `success` | `jumping` | + | `error` | `failed` | + | `celebrating` | `jumping` | + +- Claude hook reactions are updated only where needed for row reachability: + - `Notification` maps to `waving` instead of `waiting`, because notification is an attention event and row 3 must be used, + - `PermissionRequest` remains `waiting`, because permission is a blocking/waiting state. + +- Drag motion remains higher-priority while dragging: + - the existing motion IPC values stay `run-right` and `run-left`, + - `run-right` maps to universal spritesheet state `running-right`, + - `run-left` maps to universal spritesheet state `running-left`, + - stopping drag returns to the current reaction state if one is active, otherwise idle. +- Reaction-only calls no longer only show the reaction word in a bubble; they also switch the sprite animation for the transient display lifetime. +- Message + reaction calls show the message in the bubble while still switching sprite animation to the reaction-mapped row. +- Message-only calls show the message while the sprite remains idle unless drag motion overrides it. +- One-shot states (`waving`, `jumping`, `failed`) run 2 loops and then stop instead of repeating for the full 4-second bubble lifetime. +- Long-running states (`idle`, `waiting`, `running`, `review`, `running-left`, `running-right`) keep looping while active. +- Hook speech still displays safe short text, but the paired hook reaction controls the animation row. +- Built-in/prefilled speech text must use consistent sentence-style capitalization. The first letter should be uppercase, and the phrase should read as a short proper sentence/status, not a mix of lowercase/title-case styles. +- All installed pets, imported Codex pets, and the built-in default pet use the same universal mapping. +- If an installed pet is missing or invalid, existing broken/fallback behavior remains unchanged. +- `prefers-reduced-motion` still disables sprite animation loops where practical. +- Tests/contract checks cover: + - universal row constants, + - exhaustive `reactionToSpriteState satisfies Record` mapping, + - every universal row has at least one reachable trigger, + - `waving` is accepted by desktop IPC, the client protocol, and MCP `openpets_react`, + - Claude `Notification` maps to `waving`, + - built-in hook speech pools use consistent sentence-style capitalization, with every phrase matching at least `^[A-Z]`, + - derived universal spritesheet dimensions equal `frameWidth * columns = 1536` and `frameHeight * rows = 1872`, + - generated HTML/CSS includes all mapped reaction states for both `.sprite` and `.installed-sprite`, + - existing `run-left`/`run-right` motion states still override reaction state and map to `running-left`/`running-right`, + - reduced-motion selectors cover both built-in and installed sprite elements, + - `docs/mapping.md` is updated to no longer claim reactions are bubble-only. + +## Proposed files/directories + +- `apps/desktop/src/pet-window.ts` + - Add universal spritesheet state constants for all nine rows. + - Add reaction-to-sprite-state mapping. + - Render CSS selectors for reaction animation states, not only motion states. + - Preserve drag left/right motion publisher behavior. +- `apps/desktop/pet-preload.cjs` + - If needed, extend the existing narrow bridge to handle reaction state separately from drag motion state. +- `apps/desktop/src/default-pet-controller.ts` + - Ensure transient reaction state survives refresh/reload and clears after `transientDisplayMs`. +- `apps/desktop/src/agent-pet-controller.ts` + - Same for explicit/agent pet windows. +- `apps/desktop/src/check-packaging-contract.ts` or a new focused check file + - Add mapping/contract assertions and wire the focused check into `apps/desktop/package.json` `test` if new. +- `packages/client/src/protocol.ts` and `apps/desktop/src/local-ipc-protocol.ts` + - Add `waving` to allowed reactions so the waving row is reachable. +- `packages/claude/src/hooks.ts` + - Map Claude `Notification` to `waving` instead of `waiting`. +- `packages/claude/src/hook-messages.ts` + - Normalize all prefilled hook speech capitalization. +- `packages/mcp/src/tools.ts` + - Verify MCP reaction schema exposes any newly allowed reaction values. +- `docs/mapping.md` + - Update from “bubble-only” behavior to the new animation mapping. +- `docs/phases/phase-18-reaction-sprite-animation-mapping.md` + - This spec, Oracle review, and feedback disposition. + +## Technical approach + +1. **Make the spritesheet contract explicit in code.** + - Replace the current partial `defaultPetSprite.states` with a universal constant matching the Codex/OpenPets v1 mapping. + - Use clear names: `idle`, `running-right`, `running-left`, `waving`, `jumping`, `failed`, `waiting`, `running`, `review`. + - Keep frame sizes/columns/rows unchanged. + - This phase assumes all installed catalog/Codex pets are known-good universal-format spritesheets; it does **not** add WebP dimension parsing/validation. Future arbitrary pet formats should add strict metadata/dimension validation in a separate phase. + +2. **Separate sprite state from bubble text.** + - `PetTransientDisplay` already has `reaction?: string` and `message?: string`. + - Narrow `PetTransientDisplay.reaction` to `OpenPetsReaction` if practical; otherwise validate/fallback unknown strings to `idle` before mapping. + - Continue showing explicit `message` text when provided. + - For reaction-only events, show a stable randomized short status line from a dedicated reaction message pool instead of the raw lowercase reaction id. + - Additionally derive a sprite state from `reaction`. + - If no reaction is active, sprite state is `idle` unless drag motion overrides it. + +3. **Make all rows reachable.** + - Add `waving` as an allowed reaction so row 3 is available through `openpets_react` and hook notifications. + - Remap Claude `Notification` from `waiting` to `waving`, document it in `docs/mapping.md`, and update Claude hook tests. + - Do not add fake use of `sleeping`; it has no unique universal row. + - Do not add `warning`; it does not unlock a new sprite row. + +4. **Normalize built-in speech text.** + - All prefilled hook speech in `hook-messages.ts` should start with an uppercase letter and use consistent short sentence/status style. + - Add a direct test over all hook speech pools requiring every phrase to match at least `^[A-Z]`. + - Examples should be like `Thinking it through`, `Approval needed`, `Something failed`, not a mixed set of lowercase/title-case fragments. + +5. **Render data attributes for both reaction state and drag motion.** + - Use something like: + + ```html + + ``` + + - Prefer keeping `pet-preload.cjs` motion-only. Initialize reaction state in generated HTML with `data-reaction-state` or CSS variables. + - CSS chooses drag state when `data-motion-state` is `run-left`/`run-right`; otherwise it uses reaction state. + - If preload must handle reaction state, it must whitelist valid universal sprite states and ignore anything else. + +6. **Preserve existing drag behavior.** + - Keep main-process movement detection because `-webkit-app-region: drag` makes renderer pointer events unreliable. + - Do not regress the previous fix where explicit pets animate while dragged. + - Drag should temporarily override reaction animation, then settle back to reaction state until the transient display clears. + +7. **Keep transient lifetime unchanged.** + - Reaction/message display still clears after 4 seconds. + - When it clears, animation returns to idle unless the pet is being dragged. + +8. **Use universal mapping for every pet path.** + - Built-in fallback spritesheet and installed pet spritesheets use the same renderer code path or same generated CSS rules. + - Codex-imported pets are already installed as `spritesheet.webp`; no separate Codex code path should be required. + +9. **Update docs and tests.** + - Update `docs/mapping.md` so it reflects the new truth. + - Add a contract check that would fail if reactions remain bubble-only. + - Add concrete checks against the generated CSS/source so built-in and installed pet paths cannot drift. + +## Risks and tradeoffs + +- The universal mapping assumes all current catalog/Codex pets share the Codex/OpenPets 8×9 layout. This is a product decision for now; arbitrary future pet formats need metadata and validation in a later phase. +- Because this phase does not parse WebP dimensions, a malformed manually-installed spritesheet can still render incorrectly; existing missing/oversized-file protections remain the safety boundary. +- `testing -> waiting` is imperfect but follows the existing v1 universal mapping. We can later add distinct test art only if the spritesheet contract changes. +- Success/error animations are temporary and will clear after 4 seconds. This is consistent with current transient display behavior, but if users expect success/error to persist longer, that should be a separate product decision. +- CSS selector precedence between drag state and reaction state must be simple and tested to avoid subtle bugs. +- Reloading pet HTML to change transient display is simple but can restart sprite animation. That is acceptable for this phase unless visual flicker is severe. + +## Security/privacy notes + +- No new external input is trusted beyond existing validated reaction/message values. +- Message safety rules remain unchanged. +- Renderer remains sandboxed/context-isolated with strict CSP. +- No remote script or image fetch is added. +- Installed pet file validation remains unchanged; this phase only changes how already-installed spritesheets are animated. + +## Test/check plan + +Run focused checks during implementation: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +pnpm --filter @open-pets/claude test +pnpm --filter @open-pets/mcp test +``` + +If shared reaction constants move or are added to a shared package, also run affected package build/tests. + +Before implementation review, run at least: + +```bash +pnpm --filter @open-pets/desktop build +pnpm --filter @open-pets/desktop test +``` + +## Manual verification guide + +After implementation: + +1. Run `pnpm dev:desktop`. +2. Show the default pet. +3. Trigger each MCP reaction and confirm animation row changes visibly. Use available smoke commands if present, for example `pnpm --filter @open-pets/client smoke:react thinking`; otherwise trigger through Claude MCP tools: + - `thinking` -> review/thinking row, + - `working` -> active running/work row, + - `editing` -> active running/work row, + - `running` -> active running/work row, + - `testing` -> waiting row, + - `waiting` -> waiting row, + - `waving` -> waving row, + - `success` -> jumping row, + - `error` -> failed row, + - `celebrating` -> jumping row. +4. Trigger Claude `Notification`; confirm the pet waves on both default and project/agent pets, and confirm any generated text is properly capitalized. +5. Trigger `openpets_say` with both a message and reaction; confirm bubble shows the message while sprite uses the reaction animation. Also trigger message-only speech and confirm the bubble appears while the sprite stays idle. +6. Drag the pet left/right while a reaction is active; confirm drag overrides to `running-left`/`running-right`, then returns to the active reaction until it clears. +7. Set an installed/Codex pet as default and repeat representative reactions (`thinking`, `success`, `error`, `waving`). +8. Configure a project pet and confirm explicit/non-default pet reactions animate too. +9. Verify reactions clear back to idle after about 4 seconds. +10. Review all built-in/hook-generated speech phrases and confirm they start with uppercase letters and use a consistent short sentence/status style. + +## Oracle plan review + +Reviewed by Oracle. + +Blockers: none. + +Should-fix feedback: + +- Clarify universal sprite state naming versus existing motion IPC names (`run-left`/`run-right`). +- Require exhaustive typed reaction-to-sprite mapping and safe fallback if `PetTransientDisplay.reaction` remains a string. +- Clarify that this phase assumes known-good universal spritesheets and does not add WebP dimension validation. +- Make the test harness concrete and wire any new check into desktop `test`. +- Ensure built-in and installed sprite CSS paths both get all mapped states. +- Cover reduced-motion behavior for installed sprites as well as built-in sprites. +- Specify message-only behavior. +- Prefer keeping the preload motion-only; if expanded, whitelist reaction states. +- Fix the “Phase 18/previous fix” typo. + +Follow-up review after user requested all rows reachable and speech capitalization: + +- Make `Notification` → `waving` non-optional. +- Keep `warning` out of scope because it does not unlock a new row. +- Add protocol-level acceptance criteria for `waving` across desktop IPC, client, and MCP. +- Make speech capitalization test precise: all hook speech pool phrases should start with `[A-Z]`. +- Assert derived universal spritesheet dimensions equal `1536×1872`. + +Nice-to-have feedback: + +- Factor universal constants/CSS generation to avoid drift. +- Add concrete smoke-command manual verification examples. +- Consider future WebP dimension checks if non-universal pets become possible. +- Document `waving` as defined but currently unused unless deliberately added. + +## Oracle feedback disposition + +Fixed: + +- Added explicit naming guidance: motion IPC remains `run-left`/`run-right`, mapped to universal rows `running-left`/`running-right`. +- Added exhaustive typed mapping acceptance criterion using `Record`. +- Clarified validation scope: no WebP dimension parsing in this phase; known-good universal catalog/Codex format is assumed. +- Required concrete desktop contract check wiring if a new check file is added. +- Required generated CSS/source checks for both `.sprite` and `.installed-sprite`. +- Added reduced-motion coverage for installed sprite elements. +- Added message-only behavior criterion. +- Added preference to keep preload motion-only; any reaction preload handling must whitelist state values. +- Fixed the “Phase 18/previous fix” wording. +- Made `Notification` → `waving` explicit and required. +- Kept `warning` out of scope. +- Added protocol/MCP acceptance criteria for `waving`. +- Added precise hook speech capitalization test requirement. +- Added derived spritesheet dimension assertion requirement. + +Accepted: + +- Implementation should factor constants/CSS generation where practical to avoid drift. +- Manual verification now includes concrete `smoke:react` examples where available. +- Future WebP dimension validation remains deferred. +- `waving` is now explicitly used by `Notification` and by public `openpets_react`. + +## Oracle implementation review + +Reviewed by Oracle after implementation. + +Blocking feedback: + +- Commit must include untracked `docs/mapping.md` because desktop packaging contract checks now require it. + +Non-blocking feedback: + +- Fix docs wording that still implied `waiting` covers notification. +- Clarify `openpets_react` docs so it says reactions drive animation, not only bubbles. +- Add base `background-position: 0 var(--sprite-row-y)` so reduced-motion still shows the selected reaction row instead of always showing idle. + +Verdict: safe to commit after including docs and fixing the small docs/reduced-motion issues. + +## Oracle implementation feedback disposition + +Fixed: + +- `docs/mapping.md` is part of this phase output and must be committed. +- Updated `waiting` wording in `docs/mapping.md` so notification maps to `waving` only. +- Updated `openpets_react` wording to say it drives animation and may show reaction text. +- Added base sprite `background-position` for built-in and installed sprite elements. +- Reran desktop build/test after fixes. diff --git a/docs/phases/phase-19-opencode-integration.md b/docs/phases/phase-19-opencode-integration.md new file mode 100644 index 00000000..5d609771 --- /dev/null +++ b/docs/phases/phase-19-opencode-integration.md @@ -0,0 +1,305 @@ +# Phase 19 — OpenCode Integration Plan + +## Goal + +Add full OpenPets support for OpenCode with parity to the current Claude Code integration, without over-splitting implementation work. + +Target parity means: + +- OpenPets MCP tools available in OpenCode. +- OpenPets instructions installed into OpenCode instructions. +- OpenCode activity drives pet reactions and short safe speech. +- CLI project setup can route a selected pet to a project. +- Desktop Integrations can detect/configure/remove/doctor OpenCode setup. + +## Current Claude integration to mirror + +Claude support has four layers: + +1. **MCP tools** + - Public tools stay exactly `openpets_status`, `openpets_say`, `openpets_react`. + - MCP server: `packages/mcp/src/server.ts`. + - CLI wrapper: `packages/cli/src/index.ts` → `openpets mcp --pet `. + - Claude command/config helpers: `packages/claude/src/claude-code.ts`. + - Desktop setup: `apps/desktop/src/agent-setup.ts`. + +2. **Instructions/memory** + - Claude writes `~/.claude/openpets.md` and imports it from `~/.claude/CLAUDE.md`. + - Implementation: `apps/desktop/src/claude-memory.ts`. + - Safety pattern: managed markers, preserve user content, private file modes, no symlink writes, max file size. + +3. **Hooks/events** + - Claude hooks write managed command entries to `~/.claude/settings.json` or project-local `.claude/settings.local.json`. + - Implementation: `packages/claude/src/hook-settings.ts`, `packages/claude/src/hooks.ts`, `packages/claude/src/hook-messages.ts`. + - Current mapping: + - `UserPromptSubmit` → `thinking` + throttled speech. + - `PreToolUse Edit/Write/MultiEdit` → `editing`. + - `PreToolUse Bash` test command → `testing`, otherwise `running`. + - other `PreToolUse` → `working`. + - `PermissionRequest` → `waiting` + forced short speech. + - `Notification` → `waving`. + - `Stop` → `success` + throttled speech. + - `StopFailure` → `error` + throttled speech. + +4. **CLI project setup** + - `openpets configure --agent claude --pet --cwd ` configures project-local Claude MCP and hooks. + - Explicit `--pet` works without desktop app; omitted `--pet` uses local IPC `pets.list`. + +## OpenCode source findings + +OpenCode has enough native extension surface for parity, but OpenCode support should use config + plugin, not Claude-style hooks. + +- **MCP config** + - OpenCode config has `mcp` at `v1/opencode/packages/opencode/src/config/config.ts` lines 220-229. + - Local MCP shape is in `v1/opencode/packages/opencode/src/config/mcp.ts` lines 5-19: + - `{ type: "local", command: string[], environment?, enabled?, timeout? }`. + - `opencode mcp add` is interactive, so automated OpenPets setup should directly edit JSON/JSONC config with the same shape. + +- **Config locations** + - Global config uses OpenCode global config dir, with `OPENCODE_CONFIG_DIR` override support. + - Project configs include `opencode.json`, `opencode.jsonc`, `.opencode/opencode.json`, `.opencode/opencode.jsonc`. + - OpenCode's own MCP add path resolution checks `opencode.json` before `opencode.jsonc`, then `.opencode/*`: `v1/opencode/packages/opencode/src/cli/cmd/mcp.ts` lines 399-415. + - OpenCode writes config with `jsonc-parser`: `v1/opencode/packages/opencode/src/cli/cmd/mcp.ts` lines 417-431. + +- **Instructions** + - OpenCode config supports `instructions: string[]`: `v1/opencode/packages/opencode/src/config/config.ts` lines 238-240. + - OpenCode config merge concatenates instruction arrays without duplicates: lines 54-59. + +- **Plugins/events** + - OpenCode plugin hook surface: `v1/opencode/packages/plugin/src/index.ts` lines 222-333. + - Useful hooks include `event`, `chat.message`, `tool.execute.before`, `tool.execute.after`, `command.execute.before`. + - Do **not** rely on `permission.ask`; permissions should be handled through plugin `event` for bus event `permission.asked`. + - OpenCode awaits plugin hooks directly, so plugin hooks must return immediately and run OpenPets calls fire-and-forget. + +## Non-goals + +- Do not fork or modify `v1/opencode/`. +- Do not add new public MCP tools. +- Do not expose pet install/remove/default controls through MCP or OpenCode plugin tools. +- Do not add a network listener or external SSE watcher unless plugin-based events prove insufficient. +- Do not send prompts, raw commands, code, logs, tool output, URLs, secrets, or file paths to pet speech. +- Do not write project-local absolute local/bundled paths by default. + +## Recommended subphase sequence + +This should be **4 subphases**, not 6. That keeps risk separated without making the project feel fragmented. + +### Phase 19A — OpenCode Foundation + +**Goal:** Add OpenCode config helpers, previews, safe write primitives, and shared speech/event safety. No plugin runtime or UI yet. + +**Scope:** + +- Add `packages/opencode` or equivalent module. +- Build helpers for: + - best-effort OpenCode detection; + - global/project config path discovery; + - JSON/JSONC read/write; + - MCP/instructions/plugin previews; + - installed/missing/stale/error status classification. +- Extract shared speech categories, message picking, speech validation, and throttling from Claude into a neutral reusable module. +- Keep Claude behavior unchanged. +- Define exact config target behavior: + - follow OpenCode's own existing file order: `opencode.json`, `opencode.jsonc`, `.opencode/opencode.json`, `.opencode/opencode.jsonc`; + - if no project config exists, create `.opencode/opencode.jsonc`; + - published mode is default for project config; + - local/bundled absolute paths are explicit dev/global-only, never default project config. +- Add safety primitives: + - max config size; + - reject symlinked file and parent dirs; + - no writes on invalid JSON/JSONC; + - backup before update/replace/remove; + - temp-file + rename atomic writes. + +**Acceptance criteria:** + +- OpenCode MCP preview shape is: + +```json +{ + "mcp": { + "openpets": { + "type": "local", + "command": ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], + "enabled": true + } + } +} +``` + +- Tests cover JSON/JSONC parsing, candidate ordering, idempotency, stale entries, invalid config, backups, max size, symlink rejection, and speech safety. +- Claude checks still pass unchanged. + +**Checks:** + +- `pnpm --filter @open-pets/opencode check` +- `pnpm --filter @open-pets/claude check` + +### Phase 19B — OpenCode Plugin Runtime + +**Goal:** Add the OpenCode plugin that reacts to OpenCode activity. No desktop UI yet. + +**Scope:** + +- Implement a valid OpenCode server plugin package/entry. +- Package contract must satisfy OpenCode loader expectations: + - npm package export/main compatible with OpenCode; + - default export exposes the OpenCode plugin shape; + - file/local plugin has a stable `id`; + - local/bundled dynamic import smoke test exists. +- Plugin hooks must return immediately. +- OpenPets calls run fire-and-forget with internal `.catch()` and debug-only logging. +- Use short client timeouts, but do not await them in OpenCode hooks. +- Lease strategy: + - acquire a lease when configured with `pet`; + - pass `leaseId` to `say`/`react`; + - prefer cached lease with safe fallback, or per-event acquisition if simpler and non-blocking. +- Event mapping: + - `chat.message` → `thinking` + throttled speech. + - `tool.execute.before` edit/write/patch tool names → `editing`. + - `tool.execute.before` shell/bash tool with test-like category → `testing`. + - `tool.execute.before` shell/bash tool otherwise → `running`. + - other tools → `working`. + - plugin `event` with `permission.asked` → `waiting` + approval-needed speech. + - stable session completion/error events, if verified during implementation → `success` / `error`. + - avoid raw prompt/command/output text in speech. + +**Acceptance criteria:** + +- Plugin can be imported from built output. +- Plugin hook functions return without awaiting OpenPets IPC. +- Unit tests cover event classification and fire-and-forget failure swallowing. +- Manual OpenCode config can load the plugin and trigger reactions. + +**Checks:** + +- `pnpm --filter @open-pets/opencode check` +- Manual plugin load smoke test. + +### Phase 19C — CLI Project Setup for OpenCode + +**Goal:** Extend `openpets configure` to support project-local OpenCode setup. + +**Scope:** + +- Add `--agent opencode` alongside existing `--agent claude`. +- Keep Claude CLI behavior unchanged. +- With explicit `--pet`, configuration can run without desktop app. +- Without `--pet`, use local IPC pet picker as Claude does. +- Write project config entries for: + - `mcp.openpets`; + - OpenPets instructions file, e.g. `.opencode/openpets.md`; + - OpenPets plugin spec/options. +- Print exact files changed and restart guidance. +- Warn that `.opencode/opencode.jsonc` can be committed and may contain the selected pet id. +- Do not require `opencode` binary on PATH to write project config; warn if not found. + +**Acceptance criteria:** + +- `openpets configure --agent opencode --pet fixer --local-dev --cwd ` writes expected project config offline. +- Re-running is idempotent. +- `--force` replaces only OpenPets-managed entries. +- Unknown agents still fail clearly. +- Claude project setup tests still pass. + +**Checks:** + +- `pnpm --filter @open-pets/cli check` +- `pnpm --filter @open-pets/opencode check` +- `pnpm --filter @open-pets/claude check` + +### Phase 19D — Desktop Integration, Packaging, Docs, Hardening + +**Goal:** Add OpenCode to Desktop Integrations and close out docs/packaging/cross-platform hardening. + +**Scope:** + +- Add OpenCode card next to Claude Code. +- Desktop OpenCode setup target is explicitly **global OpenCode config**, not project config. +- If project setup is desired from desktop, defer to a later phase with a project directory selector. +- Global setup can: + - detect OpenCode best-effort; + - install/replace/remove global MCP entry; + - install/update global OpenPets instructions; + - install/update/remove global OpenPets plugin; + - show previews and copy manual snippets; + - show clear status and backups. +- Preserve Claude UI/actions. +- Package bundled OpenCode plugin/CLI resources safely: + - no true `app.asar` paths; + - no symlinked bundled entry; + - dynamic-import smoke test for bundled plugin path. +- Update README and mapping docs. +- Manual verification covers: + - invalid config; + - custom `OPENCODE_CONFIG_DIR`; + - OpenCode absent; + - removal safety; + - packaged bundled plugin; + - project/global precedence; + - macOS/Windows/Linux path differences where available. + +**Acceptance criteria:** + +- Desktop UI clearly says OpenCode desktop setup is global. +- No global config write occurs without explicit user action. +- Remove only removes OpenPets-managed entries. +- OpenCode absent on PATH does not prevent showing config status/previews. +- Packaged app can locate bundled OpenCode plugin and CLI resources. +- Docs explain exact files touched and CLI project setup vs desktop global setup. +- `pnpm check` passes. + +**Checks:** + +- `pnpm --filter @open-pets/desktop check` +- `pnpm --filter @open-pets/opencode check` +- `pnpm check` + +## Security/privacy requirements for every subphase + +- Never include prompt text, command text, file paths, tool output, code, logs, URLs, or secrets in pet speech. +- Classify tools using tool names and coarse categories only. +- Validate pet ids with the same strict regex as Claude. +- Reject symlinked config/instruction/plugin write targets. +- Keep writes inside the selected project or OpenCode config dir. +- Back up before update/replace/remove once writes are implemented. +- No new TCP/HTTP surface. +- Plugin failures must never break or delay OpenCode; hooks must return immediately. + +## Oracle plan review + +Oracle reviewed the first all-in-one Phase 19 plan and found the architecture viable but too broad and not implementation-ready. + +### Blockers found + +- Desktop target scope was ambiguous: global vs project setup. +- `permission.ask` assumption was wrong; use `event` hook for `permission.asked`. +- Plugin hooks are awaited by OpenCode; OpenPets work must be fire-and-forget, not merely timeout-bounded. +- Plugin package/path contract was underspecified. +- Config precedence and write targets needed tightening. +- Data-loss protections needed hard requirements. +- `.opencode` is not private; project config can be committed. +- Manual verification was too happy-path-only. + +## Oracle feedback disposition + +- **Fixed:** Split one large phase into 4 subphases, not 6. +- **Fixed:** Desktop setup is global-only unless a later project picker is added. +- **Fixed:** Permission mapping uses `event`/`permission.asked`, not `permission.ask`. +- **Fixed:** Plugin hooks must return immediately and run OpenPets calls fire-and-forget. +- **Fixed:** Added plugin package/path contract and bundled import smoke requirement. +- **Fixed:** Aligned existing config candidate order with OpenCode's own `mcp add` order. +- **Fixed:** Added invalid JSONC, max size, symlink, backup, and atomic write requirements. +- **Fixed:** Removed “private-ish” wording for `.opencode` and added commit warning. +- **Fixed:** Combined desktop, packaging, docs, and hardening into one closeout phase to avoid oversplitting. + +## Implementation closeout + +Phase 19A–19D are implemented in the v2 workspace: + +- `packages/opencode` provides OpenCode config helpers, strict managed-entry classification, safe global/project writes, and the OpenCode plugin runtime. +- `packages/cli` supports `openpets configure --agent opencode` for project-local setup. +- Desktop Integrations supports global OpenCode setup/removal/preview/copy, with packaged CLI resource checks and published plugin configuration. +- README and mapping docs explain OpenCode project-local vs desktop-global setup and safe speech constraints. + +Validation completed with `pnpm check` after @oracle implementation review. diff --git a/docs/phases/phase-19a-opencode-foundation.md b/docs/phases/phase-19a-opencode-foundation.md new file mode 100644 index 00000000..8ec5f447 --- /dev/null +++ b/docs/phases/phase-19a-opencode-foundation.md @@ -0,0 +1,283 @@ +# Phase 19A — OpenCode Foundation + +## Goal + +Add the non-UI foundation for OpenCode integration: + +- OpenCode config discovery and safe JSON/JSONC helpers. +- OpenCode MCP/instructions/plugin previews and status classification. +- Shared speech safety utilities reusable by Claude hooks and the future OpenCode plugin. + +This phase should not install a working OpenCode plugin, change Desktop Integrations UI, or extend `openpets configure --agent opencode` yet. It prepares the safe primitives for those later phases. + +## Non-goals + +- No OpenCode runtime plugin implementation. +- No Desktop Integrations OpenCode card. +- No CLI `--agent opencode` user-facing command yet. +- No writes to real user OpenCode config during tests. +- No changes to public MCP tools; they remain exactly `openpets_status`, `openpets_say`, `openpets_react`. +- No fork or modification of `v1/opencode/`. + +## User-visible/manual outcome + +No direct user-visible feature is expected yet. + +Developers should be able to run checks and see that OpenPets can safely build and classify OpenCode config previews in isolated temp fixtures. + +## Acceptance criteria + +- Add an OpenCode integration package/module, likely `packages/opencode`, with build/check scripts. +- Provide pure helpers for: + - best-effort OpenCode executable detection data shape; + - global/project OpenCode config candidate paths; + - JSON/JSONC parsing and update planning; + - OpenPets MCP config preview; + - OpenPets instruction config preview; + - OpenPets plugin config preview; + - installed/missing/stale/error status classification. +- OpenCode project config candidate order for existing files follows OpenCode's own MCP add behavior: + 1. `opencode.json` + 2. `opencode.jsonc` + 3. `.opencode/opencode.json` + 4. `.opencode/opencode.jsonc` +- If no project config exists, helpers should plan creation of `.opencode/opencode.jsonc`. +- Status helpers must scan all relevant project config files, not only the chosen write target, because OpenCode can merge top-level and `.opencode` configs. +- Multiple or conflicting OpenPets entries must be classified explicitly instead of silently choosing one. +- Global config discovery is read/status-only in 19A and must define: + - `OPENCODE_CONFIG_DIR` override support; + - default config directory derived from platform/XDG conventions; + - candidate files `config.json`, `opencode.json`, and `opencode.jsonc`; + - no global writes by default in this phase. +- Published mode is the default for project config previews: + +```json +{ + "mcp": { + "openpets": { + "type": "local", + "command": ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], + "enabled": true + } + } +} +``` + +- Local-dev previews may use `node /.../cli/dist/index.js`, but project-local absolute paths must not be the default. +- The CLI package version must be an injected parameter to preview builders. `packages/opencode` must not import `@open-pets/cli`, so the later CLI dependency on `@open-pets/opencode` does not create a cycle. +- No-pet MCP preview is valid and means the default OpenPets MCP target: + +```json +{ + "type": "local", + "command": ["npx", "-y", "@open-pets/cli@0.0.0", "mcp"], + "enabled": true +} +``` + +- Config safety helpers must support: + - max config size cap; + - rejecting symlinked config files; + - rejecting symlinked relevant parent directories where practical; + - no write plan on invalid JSON/JSONC; + - no write plan on invalid OpenCode field types such as `mcp: []`, `instructions: "x"`, or `plugin: {}`; + - backup-before-write path planning; + - temp-file + rename write planning. +- Write planning must require a validated project root and reject project-root symlink/escape cases. +- Backup and temp paths must use unique names, avoid overwrite, use exclusive temp-file creation, and keep temp files in the same directory as the target. +- File mode should be private where meaningful on the current platform. +- Existing unrelated OpenCode config keys are preserved by update helpers. +- Existing non-OpenPets MCP/plugin/instruction entries are preserved. +- Managed ownership rules must be explicit: + - current managed MCP entry = exact expected OpenPets command shape for the selected mode/pet; + - stale managed MCP entry = recognizable OpenPets package/path/command but outdated; + - custom/foreign `mcp.openpets` = present but not managed; classify separately and do not overwrite/remove by default; + - current managed instruction entry = expected OpenPets instruction path plus managed file block; + - stale managed instruction entry = recognizable OpenPets path/block but outdated; + - custom/foreign OpenPets-like instruction/plugin entries = classify separately and do not overwrite/remove by default. +- Existing OpenPets-managed entries are idempotently recognized. +- Stale OpenPets-managed entries can be classified as `needs_update` without overwriting in this phase's public surface. +- Shared speech utilities are extracted or introduced so Claude and OpenCode can share: + - speech categories; + - message picking; + - validation rules. +- Throttling extraction is optional in 19A. If included, it must include exact parity tests for Claude state paths, categories, cooldowns, and OpenCode namespacing. Otherwise, defer throttling to Phase 19B. +- Claude hook behavior remains unchanged after extraction/introduction. +- Speech validation still rejects: + - empty or >140 character messages; + - newlines; + - code-like content; + - URLs; + - path-like content; + - secret-looking assignments. +- Tests must not mutate real Claude settings, real OpenCode config, or real OpenPets user data. + +## Proposed files/directories + +Likely new files: + +- `packages/opencode/package.json` +- `packages/opencode/tsconfig.json` +- `packages/opencode/src/index.ts` +- `packages/opencode/src/opencode-config.ts` +- `packages/opencode/src/opencode-previews.ts` +- `packages/opencode/src/opencode-status.ts` +- `packages/opencode/src/check-opencode-foundation.ts` + +Possible new shared files/package: + +- `packages/agent-events/package.json` +- `packages/agent-events/src/index.ts` +- or a smaller shared module inside an existing package if adding a package is unnecessary. + +If a shared package is added, it must not depend on Claude, OpenCode, CLI, desktop, or MCP packages. + +Likely changed files: + +- `pnpm-workspace.yaml` if a new package is added. +- `packages/claude/src/hooks.ts` +- `packages/claude/src/hook-messages.ts` +- `packages/claude/src/check-claude-hooks.ts` +- root/package check wiring if needed. + +## Technical approach + +### OpenCode config facts from `v1/opencode/` + +- `Config.Info.mcp` exists in `v1/opencode/packages/opencode/src/config/config.ts` lines 220-229. +- Local MCP config shape is in `v1/opencode/packages/opencode/src/config/mcp.ts` lines 5-19: + - `type: "local"` + - `command: string[]` + - optional `environment`, `enabled`, `timeout`. +- OpenCode's interactive `mcp add` resolves project config candidates in `v1/opencode/packages/opencode/src/cli/cmd/mcp.ts` lines 399-415. +- OpenCode's `mcp add` uses `jsonc-parser` update edits in `v1/opencode/packages/opencode/src/cli/cmd/mcp.ts` lines 417-431. +- OpenCode config supports `instructions: string[]` in `v1/opencode/packages/opencode/src/config/config.ts` lines 238-240. +- OpenCode config supports `plugin` array in `v1/opencode/packages/opencode/src/config/config.ts` line 159. + +### Config helpers + +Use OpenCode-specific config shapes, not Claude shapes. + +MCP preview should produce: + +```ts +{ + type: "local", + command: ["npx", "-y", "@open-pets/cli@", "mcp", "--pet", petId], + enabled: true, +} +``` + +Instructions preview should plan: + +- project: `.opencode/openpets.md` plus `instructions: [".opencode/openpets.md"]`; +- global: a safe OpenCode config dir path decided in later desktop phase. + +Plugin preview should be intentionally minimal in 19A because the runtime contract is finalized in Phase 19B. It may build the planned config slot and preserve existing entries, but installed/stale plugin classification should be limited to exact/recognizable OpenPets specs already known. Ambiguous plugin entries must be classified as custom/foreign and left untouched. + +### Safe write model + +This phase can implement actual helper functions for isolated fixture writes, but tests must only write to temp directories. + +Rules: + +- Refuse to parse/write oversized config files. +- Refuse symlinked config files. +- Refuse symlinked relevant parent directories, including top-level config parents and `.opencode`, when creating or updating config. +- Refuse symlinked or escaping project roots. +- On parse errors, return an error status and do not produce a write operation. +- On invalid known field types, return an error status and do not produce a write operation. +- For update helpers, create backups before replacing/removing/updating. +- Use an exclusive temp file in the same directory and rename for final write. +- Generate backup/temp names that do not overwrite existing files. + +### Shared speech utilities + +Keep Claude behavior equivalent. Move pure validation and message selection first; avoid over-refactoring hook runtime. + +The shared module should be neutral, not named Claude-specific, so Phase 19B can import it from the OpenCode plugin without circular dependencies. + +If throttling is moved in this phase, throttle storage must remain namespaced by agent/integration so Claude and OpenCode do not overwrite each other's cooldown state. If this makes 19A too broad, leave throttling in Claude for now and add a clear Phase 19B follow-up. + +## Risks and tradeoffs + +- Adding a new package increases workspace wiring but keeps OpenCode code isolated. +- Direct JSONC editing is necessary because OpenCode's `mcp add` is interactive, but it creates data-loss risk; mitigate with parse guards, backups, and atomic writes. +- Plugin config shape may need adjustment in Phase 19B after runtime smoke tests; keep plugin preview centralized so future correction is one-file. +- Shared speech extraction can accidentally change Claude behavior; keep tests focused on parity. + +## Security/privacy notes + +- Do not read or write real user OpenCode/Claude files in tests. +- Do not expose prompt text, command text, code, logs, file paths, URLs, secrets, or tool output through shared speech utilities. +- Validate pet ids with the same strict rules as Claude. +- Treat config paths as untrusted; reject symlinks and oversized files. +- Preserve unrelated user config. + +## Test/check plan + +- `pnpm --filter @open-pets/opencode check` +- `pnpm --filter @open-pets/claude check` +- `pnpm --filter @open-pets/desktop check` if packaging/check contracts are touched. + +Specific tests/checks: + +- Project candidate selection with each possible existing config file. +- No existing config plans `.opencode/opencode.jsonc`. +- Status scanning sees duplicate/conflicting OpenPets entries across top-level and `.opencode` configs. +- Global discovery covers `OPENCODE_CONFIG_DIR`, platform/XDG default path, `config.json`, `opencode.json`, and `opencode.jsonc`. +- MCP preview with and without selected pet. +- Local-dev preview uses `node` command only when explicitly requested. +- JSONC update preserves unrelated fields and comments where practical. +- Invalid known field types return error and no write plan: `mcp: []`, `instructions: "x"`, `plugin: {}`. +- Existing matching OpenPets entries classify as installed. +- Existing stale OpenPets entries classify as needs update. +- Custom/foreign `mcp.openpets` classifies separately and is not treated as managed. +- Non-OpenPets entries are preserved. +- Invalid JSONC returns error and no write plan. +- Oversized config returns error. +- Symlinked config, symlinked top-level parent, symlinked `.opencode`, or symlinked/escaping project root returns error. +- Backup and temp names are unique and do not overwrite existing files. +- Temp writes use exclusive creation in the same directory as the target. +- Backup/temp write helpers write only inside temp fixtures. +- Shared speech validator parity with Claude hook expectations. +- If throttling is extracted, Claude throttle path/category/cooldown parity is covered. +- Cross-platform path fixtures cover POSIX paths, Windows-style paths, spaces in paths, `XDG_CONFIG_HOME`, and `OPENCODE_CONFIG_DIR`. +- Claude hook checks still pass. + +## Manual verification guide + +After implementation, manually verify: + +1. Run `pnpm --filter @open-pets/opencode check`. +2. Run `pnpm --filter @open-pets/claude check`. +3. If desktop/package files changed, run `pnpm --filter @open-pets/desktop check`. +4. Run any fixture/manual check with temp `HOME`, `XDG_CONFIG_HOME`, and `OPENCODE_CONFIG_DIR`. +5. Inspect generated fixture outputs from tests, if any, and confirm OpenCode config shape matches the expected MCP/instructions/plugin previews. +6. Confirm no real `~/.config/opencode`, `~/.claude`, or OpenPets user state changed. + +## Oracle plan review + +Oracle reviewed the initial Phase 19A spec and found the subphase cut good, but not fully implementation-ready until config ownership, precedence, and write contracts were tightened. + +Blockers raised: + +- Global config scope was contradictory. +- Write target order and full load/status scanning were underspecified. +- Managed ownership rules were missing. +- JSON/JSONC write contract needed invalid type, symlink, atomicity, backup, and mode details. +- No-pet MCP preview behavior was undefined. +- Package dependency/version source could create cycles. +- Shared speech throttling extraction was too broad. +- Plugin preview/status was premature without a finalized plugin runtime contract. + +## Oracle feedback disposition + +- **Fixed:** Defined global config discovery/status as read-only in 19A with `OPENCODE_CONFIG_DIR`, default path, and candidate files. +- **Fixed:** Required status helpers to scan all relevant project config files and classify multiple/conflicting entries. +- **Fixed:** Added explicit managed/current/stale/custom ownership rules for MCP, instructions, and plugin-like entries. +- **Fixed:** Added invalid known field type errors, project-root checks, parent symlink rejection, unique backups/temp files, exclusive same-directory temp writes, and private mode requirement where meaningful. +- **Fixed:** Defined no-pet MCP preview as default OpenPets MCP target without `--pet`. +- **Fixed:** Required package version injection so `packages/opencode` does not import `@open-pets/cli`. +- **Fixed:** Narrowed shared speech extraction to categories/messages/validation; throttling is optional only with parity tests, otherwise deferred. +- **Fixed:** Limited plugin preview/status to minimal exact/recognizable specs and custom/foreign preservation until Phase 19B finalizes runtime contract. diff --git a/docs/phases/phase-19b-opencode-plugin-runtime.md b/docs/phases/phase-19b-opencode-plugin-runtime.md new file mode 100644 index 00000000..89cd5210 --- /dev/null +++ b/docs/phases/phase-19b-opencode-plugin-runtime.md @@ -0,0 +1,254 @@ +# Phase 19B — OpenCode Plugin Runtime + +## Goal + +Add the OpenCode runtime plugin that turns OpenCode activity into OpenPets reactions and short safe speech. + +This phase builds on Phase 19A's foundation package and shared speech validation. It should make the plugin importable/testable and ready for manual OpenCode config, but it should not add Desktop UI or `openpets configure --agent opencode` yet. + +## Non-goals + +- No Desktop Integrations OpenCode card. +- No CLI `configure --agent opencode` setup flow. +- No writes to real user OpenCode config. +- No OpenCode source changes under `v1/opencode/`. +- No new public MCP tools. +- No external SSE watcher or new TCP/HTTP listener. +- No pet install/remove/default controls. + +## User-visible/manual outcome + +Developers can manually add the plugin to an OpenCode config and see OpenPets react to OpenCode activity. + +Expected manual plugin spec shape: + +```jsonc +{ + "plugin": [ + ["@open-pets/opencode", { "pet": "fixer" }] + ] +} +``` + +For local development, a file URL or absolute built plugin path can be used after build, but app/desktop setup is still deferred. + +## Acceptance criteria + +- `@open-pets/opencode` exposes an OpenCode-compatible server plugin entrypoint. +- Package export contract supports OpenCode's loader expectations: + - npm package can resolve a server plugin entrypoint through an explicit package export such as `./server` without replacing the helper `.` export; + - default export is an object with `server()`; + - file/local plugin entry includes a stable `id`; + - built output can be dynamically imported in tests; + - package-level resolution of `@open-pets/opencode/server` is covered by tests. +- Plugin options accept: + - optional `pet` id using the same strict pet id validation as Claude/OpenCode foundation; + - optional debug flag or rely on `OPENPETS_DEBUG=1`. +- Plugin hooks must return immediately. OpenPets IPC work must run fire-and-forget and never be awaited by OpenCode plugin hooks. +- The `event` hook must be a synchronous non-throwing wrapper. OpenCode calls `event` with `void hook.event(...)` and does not await/catch it, so `event` must catch synchronous errors and schedule async work internally. +- OpenPets calls must be best-effort: + - catch all errors internally; + - debug-only sanitized logging; + - short client timeouts; + - never throw back into OpenCode. +- If `pet` is configured, plugin reactions/speech should acquire or reuse an OpenPets lease and pass `leaseId` to `react`/`say`. +- Lease handling must not block OpenCode hooks. It can be a cached in-flight/background lease or per-event fire-and-forget acquisition, but hook functions themselves must remain synchronous or already-resolved async functions. +- Event mapping must cover: + - `chat.message` → `thinking` + throttled speech. + - `tool.execute.before` edit/write/patch tool names → `editing`. + - `tool.execute.before` shell/bash tool names with test-like command/category when safely inferable → `testing`. + - `tool.execute.before` shell/bash tool names otherwise → `running`. + - other non-OpenPets tools → `working`. + - plugin `event` with `permission.asked` → `waiting` + approval-needed speech. + - plugin `event` with `session.status` idle, if stable and useful → `success` sparingly. + - plugin `event` with `session.error` → `error`. +- The plugin must ignore OpenPets MCP tool calls to avoid self-reaction loops, including likely OpenCode MCP tool names such as: + - `openpets_openpets_status` + - `openpets_openpets_say` + - `openpets_openpets_react` +- Speech must use shared `@open-pets/agent-events` validation and message pools. +- Speech must not include prompt text, command text, tool args, tool output, code, logs, file paths, URLs, or secrets. +- Throttling for OpenCode speech must be namespaced separately from Claude, e.g. `opencode-hook-throttle.json` or equivalent. +- Tests cover event classification, speech safety, self-tool suppression, fire-and-forget behavior, import shape, and failure swallowing. + +## Proposed files/directories + +Likely changed/new files: + +- `packages/opencode/package.json` +- `packages/opencode/src/plugin.ts` +- `packages/opencode/src/opencode-plugin-runtime.ts` +- `packages/opencode/src/check-opencode-plugin.ts` +- `packages/opencode/src/index.ts` +- `packages/opencode/src/check-opencode-foundation.ts` + +Possible shared utility additions: + +- `packages/agent-events/src/index.ts` for reusable throttling primitives, if needed. + +## Technical approach + +### OpenCode plugin contract + +From `v1/opencode`: + +- Plugin config specs are strings or `[string, options]`: `v1/opencode/packages/opencode/src/config/plugin.ts` lines 12-17. +- Plugin loader imports the resolved module and reads the default export: `v1/opencode/packages/opencode/src/plugin/loader.ts` lines 118-128. +- A server plugin must default-export an object with a `server()` function: `v1/opencode/packages/opencode/src/plugin/shared.ts` lines 272-303. +- File plugins need an `id`: `v1/opencode/packages/opencode/src/plugin/shared.ts` lines 306-316. +- Hook type surface includes `event`, `chat.message`, `tool.execute.before`, `tool.execute.after`, and `command.execute.before`: `v1/opencode/packages/plugin/src/index.ts` lines 222-333. + +Implementation should export something compatible with: + +```ts +export default { + id: "open-pets-opencode", + server: async (_input, options) => ({ + "chat.message": () => { /* schedule, return immediately */ }, + "tool.execute.before": () => { /* schedule, return immediately */ }, + event: () => { /* sync non-throwing schedule wrapper */ }, + }), +}; +``` + +The exact TypeScript types can be local structural types to avoid adding a heavy dependency on OpenCode internals. If `@opencode-ai/plugin` is added as a dev/type dependency, it must not introduce runtime/package issues. + +### Hook latency rule + +OpenCode awaits plugin hooks in several paths: + +- `Plugin.trigger` awaits hook promises: `v1/opencode/packages/opencode/src/plugin/index.ts` lines 258-269. +- Tool execution calls `tool.execute.before` before running tools: `v1/opencode/packages/opencode/src/session/prompt.ts` lines 428-433. + +Therefore every plugin hook must schedule OpenPets work and then return immediately. Do not `await client.react`, `await client.say`, or `await client.acquireLease` directly inside a hook. + +Use a small scheduler/helper such as: + +```ts +function fireAndForget(work: () => Promise): void { + void work().catch(debugLog); +} +``` + +Hook functions may be `async` for OpenCode compatibility, but they must not await the scheduled work. + +Exception: the `event` hook should not be `async`, because OpenCode does not await/catch it. + +### OpenPets client behavior + +Use `createOpenPetsClient({ connectTimeoutMs: 500, responseTimeoutMs: 500 })` or a similarly short timeout. + +When `pet` is configured: + +- Acquire a lease in the background. +- Cache the lease id while valid if simple. +- Use the lease id for `say`/`react` once available. +- If lease acquisition fails, fall back to default target or no lease without surfacing errors. + +### Event classification + +Keep classification pure and testable. + +Proposed pure functions: + +- `classifyOpenCodeToolReaction(toolName, args): OpenPetsReaction | undefined` +- `classifyOpenCodeBusEvent(event): { reaction?, speechCategory?, forceSpeech? } | undefined` +- `shouldIgnoreOpenPetsTool(toolName): boolean` + +Tool classification should rely on tool names and safe coarse categories. It may inspect a shell command only to decide whether it looks test-like, and must never send the command text to speech. + +Expected tool name patterns: + +- edit/write/patch: names containing `edit`, `write`, `patch`, `apply_patch`. +- shell/bash: names containing `bash`, `shell`, `terminal`, or OpenCode's shell tool id if known. +- OpenPets MCP tools: suppress names ending in or equal to `openpets_status`, `openpets_say`, `openpets_react`, including server-prefixed forms. + +Bus event classification: + +- `permission.asked` from permission bus → `waiting`, `permission` speech. +- `session.error` → `error` speech category. +- `session.status` with idle may map to `success`, but avoid noisy success spam by throttling. + +### Speech/throttling + +Use shared messages and validator from `@open-pets/agent-events`. + +OpenCode speech categories should match Claude categories for now: + +- `thinking` +- `success` +- `error` +- `permission` + +Throttle storage must be separate from Claude. If file-backed throttling is added in this phase, it must use only OpenCode-specific path names and best-effort writes. + +## Risks and tradeoffs + +- OpenCode plugin APIs may evolve; keep plugin-specific runtime isolated in `packages/opencode`. +- Fire-and-forget scheduling avoids blocking OpenCode but means pet reactions may be dropped if Node exits immediately. +- Lease caching adds state; if too complex, prefer simple background per-event lease acquisition for correctness. +- Mapping session idle to success may be noisy. It should be throttled or omitted if unstable during implementation. +- Adding runtime client dependency to `@open-pets/opencode` is expected in this phase; avoid depending on CLI or desktop. + +## Security/privacy notes + +- Never send prompt text, command text, tool args, tool output, code, logs, file paths, URLs, or secrets to pet speech. +- Debug logging must sanitize paths and secrets. +- Plugin must ignore OpenPets MCP tools to avoid loops. +- Plugin must catch all OpenPets client errors. +- No new local server, TCP listener, or HTTP endpoint is added. +- `pet` option must be strictly validated before use. + +## Test/check plan + +- `pnpm --filter @open-pets/opencode check` +- `pnpm --filter @open-pets/agent-events check` +- `pnpm --filter @open-pets/claude check` +- `pnpm check` after implementation review fixes. + +Specific tests: + +- Dynamic import of built plugin entry returns default object with `id` and `server()`. +- Dynamic import of package export `@open-pets/opencode/server` returns default object with `id` and `server()`. +- `server()` returns hooks for `chat.message`, `tool.execute.before`, and `event`. +- Hook calls schedule work and return before a deliberately unresolved fake client promise completes. +- `event` hook is synchronous, non-throwing, and does not produce unhandled rejections when classification/scheduling fails. +- OpenPets client errors are swallowed. +- Configured pet id is validated; invalid pet option fails plugin setup safely. +- `chat.message` maps to `thinking` without using prompt text. +- edit/write/patch tools map to `editing`. +- shell/bash test-like tools map to `testing`; non-test shell maps to `running`. +- OpenPets MCP tools are ignored. +- `permission.asked` maps to `waiting` + permission speech. +- `session.error` maps to `error`. +- Speech validator rejects unsafe generated messages. +- Throttle state is OpenCode-namespaced if implemented. + +## Manual verification guide + +After implementation and review: + +1. Run `pnpm --filter @open-pets/opencode check`. +2. Run `pnpm check`. +3. Start OpenPets desktop locally. +4. Build packages. +5. Manually add the local built OpenCode plugin to a test OpenCode project config. +6. Start OpenCode in that test project. +7. Submit a prompt and confirm the selected/default pet reacts with `thinking`. +8. Run an edit/write action and confirm `editing`. +9. Run a test-like shell action and confirm `testing`. +10. Trigger a permission request if practical and confirm `waiting` / approval speech. +11. Confirm OpenPets MCP tool calls do not trigger recursive reactions. +12. Confirm no prompt text, command text, file path, or tool output appears in pet speech. + +## Oracle plan review + +Oracle reviewed the initial Phase 19B spec and found two plan blockers: + +- Package export contract needed to explicitly support OpenCode's `./server` entry resolution while preserving helper exports. +- The `event` hook must not be `async`/rejecting because OpenCode invokes it with `void hook.event(...)` and does not await/catch it. + +## Oracle feedback disposition + +- **Fixed:** Added explicit `@open-pets/opencode/server` export requirement and package-level import test. +- **Fixed:** Required `event` to be synchronous, non-throwing, and internally catch/schedule async work. diff --git a/docs/phases/phase-19c-opencode-cli-project-setup.md b/docs/phases/phase-19c-opencode-cli-project-setup.md new file mode 100644 index 00000000..aa63db48 --- /dev/null +++ b/docs/phases/phase-19c-opencode-cli-project-setup.md @@ -0,0 +1,274 @@ +# Phase 19C — OpenCode CLI Project Setup + +## Goal + +Extend the OpenPets CLI so users can configure a project for OpenCode with one command: + +```bash +npx @open-pets/cli configure --agent opencode --pet fixer +``` + +This writes project-local OpenCode config for OpenPets MCP, OpenPets instructions, and the OpenPets OpenCode plugin. + +## Non-goals + +- No Desktop Integrations OpenCode UI. +- No global OpenCode setup from desktop. +- No project directory picker UI. +- No OpenCode runtime plugin changes beyond using Phase 19B's plugin package/export. +- No new public MCP tools. +- No OpenCode source changes under `v1/opencode/`. +- No real user config writes in tests. + +## User-visible/manual outcome + +From a project directory, users can run: + +```bash +npx @open-pets/cli configure --agent opencode --pet fixer +``` + +Expected result: + +- OpenCode project config contains `mcp.openpets`. +- OpenCode project config includes OpenPets instruction file `.opencode/openpets.md`. +- OpenCode project config includes OpenPets plugin spec/options targeting `fixer`. +- Starting OpenCode from that project gives OpenPets MCP tools and plugin-driven reactions for `fixer`. + +If `--pet` is omitted, the CLI uses the same installed-pet picker as Claude setup and therefore requires OpenPets desktop to be running. + +## Acceptance criteria + +- `parseConfigureArgs` accepts `--agent opencode` and still accepts/keeps `--agent claude` behavior unchanged. +- Unsupported agents still fail clearly. +- `openpets configure --agent opencode --pet --cwd ` runs without requiring OpenPets desktop. +- `openpets configure --agent opencode` without `--pet` uses local IPC pet listing/picker like Claude. +- OpenCode setup does not require `opencode` binary on `PATH`; if detection is added, it is warning-only. +- Project path validation rejects symlinked project roots. +- OpenCode config writes use Phase 19A helpers: + - project config candidate selection; + - all existing project config candidate scanning before writing; + - JSON/JSONC parsing/updating; + - backup/temp/atomic write safety; + - symlink and escape rejection. +- If no project OpenCode config exists, create `.opencode/opencode.jsonc`. +- Existing unrelated OpenCode config keys are preserved. +- Existing non-OpenPets MCP/plugin/instruction entries are preserved. +- Existing matching OpenPets entries are idempotent. +- Existing stale managed OpenPets entries are updated. +- Custom/foreign `mcp.openpets` or OpenPets-like plugin/instruction entries must not be overwritten. In this phase, fail clearly and tell the user to edit/remove the custom entry manually. +- `--force` may replace stale managed OpenPets entries, but must not overwrite custom/foreign entries. +- Written project config uses published mode by default: + +```jsonc +{ + "mcp": { + "openpets": { + "type": "local", + "command": ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], + "enabled": true + } + }, + "instructions": [".opencode/openpets.md"], + "plugin": [["@open-pets/opencode@0.0.0", { "pet": "fixer" }]] +} +``` + +- With `--local-dev`, generated MCP config may use `node mcp --pet fixer`, but the plugin spec should remain package-based unless a safe local plugin file path policy is implemented in a later phase. +- The package-based plugin spec must be version-pinned to the same package version used for generated MCP commands, e.g. `@open-pets/opencode@`. +- The managed instruction file `.opencode/openpets.md` is written with OpenPets managed markers. +- Instruction file writes must be safe: + - reject symlinked `.opencode/openpets.md`; + - reject oversized instruction files; + - preserve user content outside managed markers; + - upsert the managed OpenPets block if the expected path exists without a managed block; + - backup before destructive update; + - temp-file + rename atomic write; + - no instruction write if config planning fails. +- CLI output prints: + - configured agent (`OpenCode`); + - target project path; + - selected pet id/name; + - config file path changed; + - instruction file path changed; + - a warning that `.opencode/opencode.jsonc` and `.opencode/openpets.md` can be committed and contain the selected pet id; + - restart guidance for OpenCode. +- Tests cover offline explicit-pet setup, idempotency, preserving unrelated config, custom/foreign conflict refusal, symlink rejection, and Claude regression. + +## Proposed files/directories + +Likely changed files: + +- `packages/cli/package.json` +- `packages/cli/src/index.ts` +- `packages/cli/src/check-cli-contract.ts` +- `packages/opencode/src/opencode-config.ts` +- `packages/opencode/src/opencode-previews.ts` +- `packages/opencode/src/opencode-status.ts` +- `packages/opencode/src/check-opencode-foundation.ts` + +Possible new file: + +- `packages/opencode/src/opencode-project-setup.ts` + +## Technical approach + +### CLI flow + +Keep existing Claude flow intact and branch in `configureProject` by `options.agent`: + +```ts +if (options.agent === "claude") return configureClaudeProject(options) +if (options.agent === "opencode") return configureOpenCodeProject(options) +``` + +Update `ConfigureOptions.agent` to `"claude" | "opencode"`. + +### OpenCode project setup helper + +Prefer putting most OpenCode-specific write logic in `packages/opencode`, not in the CLI, so desktop Phase 19D can reuse the same primitives. + +Potential API: + +```ts +prepareOpenCodeProjectSetup({ + projectDir, + petId, + cliVersion, + commandMode, + cliEntryPath, +}): PreparedOpenCodeProjectSetup + +writePreparedOpenCodeProjectSetup(prepared): OpenCodeProjectSetupResult +``` + +The helper should: + +1. Validate project root. +2. Select config write target. +3. Read and classify **all existing project config candidates** because OpenCode can merge top-level and `.opencode` configs. +4. Fail on custom/foreign/conflicting OpenPets entries anywhere in those candidates. +5. Read the selected write target or `{}`. +6. Classify selected-target OpenPets entries for idempotent updates. +7. Add/update: + - `mcp.openpets`; + - `instructions` containing `.opencode/openpets.md` once; + - `plugin` containing version-pinned `@open-pets/opencode@` once with `{ pet }`. +8. Plan `.opencode/openpets.md` managed block upsert. +9. Plan safe config writes via Phase 19A helpers. +10. Execute writes only after all config and instruction write plans have succeeded. + +The setup must be two-phase: validate/classify/plan all writes first, then execute. If any plan fails, write nothing. + +### Instruction file content + +Use the same guidance as Claude memory, adapted for OpenCode: + +- OpenPets MCP tools may be available. +- Use `openpets_say` for meaningful short status/personality messages. +- Keep messages brief, user-facing, and non-sensitive. +- Do not include code, logs, secrets, URLs, or file paths. +- Use `openpets_react` for visual feedback. +- Use `openpets_status` only when checking availability or target pet. +- Do not spam every internal step. + +### Conflict policy + +Status helpers from Phase 19A distinguish `installed`, `needs_update`, `custom`, and `conflict`. + +For Phase 19C: + +- `installed`: leave as-is unless generated content differs only in managed block, then refresh instruction block. +- `needs_update`: update managed entries. +- `not_installed`: install entries. +- `custom` / `conflict`: fail clearly and do not write config. + +This avoids overwriting user-owned `openpets` entries. + +If the expected instruction path is present but lacks the managed block, treat it as an instruction `needs_update`: upsert the managed block while preserving existing file content outside managed markers. + +### Offline behavior + +Reuse existing `resolveConfiguredPet` behavior: + +- explicit `--pet` validates syntax only and does not require desktop; +- omitted `--pet` queries installed pets through local IPC. + +## Risks and tradeoffs + +- Project `.opencode/opencode.jsonc` and `.opencode/openpets.md` can be committed. CLI must warn clearly. +- Direct JSONC editing risks data loss. Use existing parse guards, backups, temp writes, and no-write-on-error policy. +- Package-based plugin spec assumes `@open-pets/opencode` is published alongside CLI. This is correct for published mode; local plugin path setup is deferred. +- `--local-dev` only affects MCP command in this phase. Plugin local-dev path is deferred to avoid unsafe path/config churn. + +## Security/privacy notes + +- Do not write outside the project root. +- Reject symlinked project roots and unsafe config paths. +- Preserve unrelated OpenCode config. +- Do not overwrite custom/foreign OpenPets-like entries. +- Do not perform partial writes; if any plan fails, no config or instruction file should be written. +- Do not expose prompts, code, logs, URLs, paths, or secrets in instruction text beyond generic warnings. +- Tests must use temp directories only. + +## Test/check plan + +- `pnpm --filter @open-pets/opencode check` +- `pnpm --filter @open-pets/cli check` +- `pnpm --filter @open-pets/claude check` +- `pnpm check` after implementation review fixes. + +Specific tests: + +- `parseConfigureArgs(["--agent", "opencode", "--pet", "fixer"])` works. +- Unsupported agent still throws. +- Offline explicit-pet OpenCode setup writes config without calling local IPC. +- Missing `--pet` still calls pet picker/listing. +- New project creates `.opencode/opencode.jsonc` and `.opencode/openpets.md`. +- Existing `opencode.json` is preferred over `.opencode/opencode.jsonc` as write target. +- Existing unrelated config keys/MCP/plugin/instructions are preserved. +- Conflicts across multiple project config candidate files are detected before writing. +- Re-running setup is idempotent. +- Stale managed OpenPets entries are updated. +- Custom `mcp.openpets` refuses without writing. +- Custom OpenPets-like plugin/instruction refuses without writing. +- Existing `.opencode/openpets.md` without managed block gets managed block added while preserving user text. +- Instruction symlink/oversized file is rejected without config writes. +- Symlink project/config paths are rejected. +- Claude CLI tests still pass. + +## Manual verification guide + +After implementation and review: + +1. Run `pnpm --filter @open-pets/cli check`. +2. Run `pnpm check`. +3. In a temporary project, run: + +```bash +node /path/to/packages/cli/dist/index.js configure --agent opencode --pet fixer --cwd /tmp/openpets-opencode-test --local-dev +``` + +4. Confirm `.opencode/opencode.jsonc` contains `mcp.openpets`, `.opencode/openpets.md` instruction path, and `@open-pets/opencode` plugin spec. +5. Confirm `.opencode/openpets.md` contains OpenPets managed markers. +6. Re-run the command and confirm config remains idempotent. +7. Add a custom `mcp.openpets` entry and confirm setup refuses without overwriting. +8. Confirm real user OpenCode config was not touched. + +## Oracle plan review + +Oracle reviewed the initial Phase 19C spec and found blockers: + +- Must scan all project config candidates before writing, not only selected write target. +- Instruction file write safety was under-specified. +- Partial-write/data-loss sequencing was undefined. +- Published plugin spec should be version-pinned. +- Existing expected instruction path without managed block needed a preserve-and-upsert policy. + +## Oracle feedback disposition + +- **Fixed:** Required scanning/classifying all existing project config candidates before selecting a write target. +- **Fixed:** Added safe instruction file write requirements: symlink/size rejection, preserve user content, backup, temp+rename, no write if config planning fails. +- **Fixed:** Required two-phase plan-all-then-execute sequencing to avoid partial writes. +- **Fixed:** Required version-pinned `@open-pets/opencode@` plugin spec. +- **Fixed:** Clarified expected instruction path without managed block is `needs_update` and should upsert the managed block while preserving existing content. diff --git a/docs/phases/phase-19d-opencode-desktop-hardening.md b/docs/phases/phase-19d-opencode-desktop-hardening.md new file mode 100644 index 00000000..b37b13b7 --- /dev/null +++ b/docs/phases/phase-19d-opencode-desktop-hardening.md @@ -0,0 +1,305 @@ +# Phase 19D — OpenCode Desktop Integration, Packaging, Docs, Hardening + +## Goal + +Add OpenCode to the Desktop Integrations window for global OpenCode setup, package the OpenCode runtime safely, and finish OpenCode docs/hardening. + +This is the final OpenCode integration phase after: + +- 19A: config foundation; +- 19B: plugin runtime; +- 19C: CLI project setup. + +## Non-goals + +- No desktop project directory picker. +- No desktop project-local OpenCode setup. Desktop setup is explicitly global. +- No OpenCode source changes under `v1/opencode/`. +- No new public MCP tools. +- No new network listener or external SSE watcher. +- No pet install/remove/default controls via OpenCode. + +## User-visible/manual outcome + +The Integrations window shows an OpenCode card next to Claude Code. + +Users can open OpenCode details and: + +- See best-effort OpenCode detection/status. +- Select pet routing. +- Install/update/remove global OpenPets OpenCode setup. +- Inspect/copy global MCP/instructions/plugin config preview. +- See exact global files that would be touched. + +Desktop copy must clearly state that OpenCode desktop setup is **global**. Users who want per-project setup should use: + +```bash +openpets configure --agent opencode --pet +``` + +## Acceptance criteria + +- Integrations hub includes an enabled OpenCode card with status and Configure/Install actions. +- Claude integration UI/actions continue to work unchanged. +- OpenCode detail view clearly says setup is global, not project-local. +- OpenCode global setup uses Phase 19A/19C primitives where possible: + - global config path discovery; + - safe JSON/JSONC update planning; + - managed instruction block upsert; + - custom/foreign conflict refusal; + - backup/temp/atomic writes. +- Global setup must have its own explicit helper contract because Phase 19C helpers are project-root scoped: + - validate global config dir/candidate parents before reading; + - scan all global candidates before writing; + - refuse custom/foreign entries anywhere; + - preserve the effective owner file for global `plugin`/`instructions` arrays because higher-precedence arrays can shadow lower arrays; + - if managed OpenPets entries live in a stale higher-precedence overlay while user arrays live lower, migrate managed entries to the user array owner and clean the stale managed overlay; + - refuse if user `plugin` and `instructions` arrays live in different global config files, or if a higher-precedence empty array shadows lower user entries; + - otherwise choose the single managed owner file if one exists; + - fail if managed entries span multiple global files; + - otherwise write to the highest-precedence existing global config file; + - only create `opencode.jsonc` when no global config exists. +- No global OpenCode config write happens without explicit user action. +- OpenCode absent on `PATH` does not block preview/status; it only affects the detection message. +- Desktop global setup writes/updates: + - global config `mcp.openpets`; + - global OpenPets instructions file; + - global `plugin` spec for version-pinned `@open-pets/opencode@`. +- Global setup uses bundled command mode when packaged and local mode in dev where appropriate. +- Published plugin specs use the `@open-pets/opencode` package version, or the shared release version if the workspace moves to one synchronized release version. Do not derive the plugin package version from an unrelated Electron app-only version. +- Dev/local absolute-path command mode is developer-only and must only be used behind the existing local-dev toggle. Real/default global setup uses published packages in dev and bundled CLI command mode in packaged desktop. +- Bundled MCP command is explicit: `node /node_modules/@open-pets/cli/dist/index.js mcp --pet `. +- Desktop packaged dependencies must include `@open-pets/cli` for bundled global MCP setup. +- Because OpenCode will spawn `node`, bundled setup must warn/block clearly if `node` is unavailable on PATH, matching the Claude packaged command policy. +- Plugin config remains published/version-pinned `@open-pets/opencode@` in this phase. The packaged desktop may contain/import `@open-pets/opencode` for previews/smoke checks, but global OpenCode itself will resolve the published plugin package unless a future bundled plugin path policy is added. +- UI/docs must explain that OpenCode may need npm/network access to resolve the published OpenCode plugin package unless it is already cached/installed. +- Bundled command paths must point outside true `app.asar` into `app.asar.unpacked` resources. +- Packaged resources include `@open-pets/opencode`, `@open-pets/agent-events`, `@open-pets/client`, CLI/MCP dependencies, and plugin server export. +- Packaged smoke checks verify: + - `@open-pets/opencode/dist/plugin.js` exists; + - `@open-pets/opencode/package.json` exists; + - `@open-pets/agent-events/dist/index.js` exists; + - dynamic import of the packaged OpenCode plugin server works. +- Remove action removes only OpenPets-managed global entries/blocks and preserves unrelated OpenCode config. +- Removal writes config first, then cleans the now-unused instruction block/file. If instruction cleanup fails after config removal, stale unused OpenPets text is safer than leaving config pointing at missing instructions. +- Managed-entry signatures are: + - MCP: `mcp.openpets` with `type: "local"`, `enabled: true`, and command matching the OpenPets CLI published/local/bundled command shapes for `mcp` plus optional `--pet `; + - instructions: exactly `/openpets.md` for desktop global setup and a file containing the OpenPets managed markers; + - plugin: `@open-pets/opencode` or `@open-pets/opencode@`, optionally as `[spec, { pet }]`. + - Any OpenPets-like entry that does not match these signatures is custom/foreign and must be refused rather than overwritten or removed. +- Config, instruction, temp, and backup files use private `0600` modes where supported; created config/instruction directories use private `0700` modes where supported. +- Docs explain: + - CLI project setup vs desktop global setup; + - files touched; + - how to remove/reconfigure; + - privacy/speech constraints. +- `pnpm check` passes. + +## Release checklist + +- Confirm the version-pinned `@open-pets/opencode@` written by desktop global setup has been published to npm before shipping a packaged desktop release that advertises OpenCode setup. + +## Proposed files/directories + +Likely changed files: + +- `apps/desktop/package.json` +- `apps/desktop/src/agent-setup.ts` +- `apps/desktop/src/windows.ts` +- `apps/desktop/preload.cjs` +- `apps/desktop/src/check-packaging-contract.ts` +- `packages/opencode/src/opencode-project-setup.ts` +- `packages/opencode/src/opencode-config.ts` +- `packages/opencode/src/check-opencode-foundation.ts` +- `README.md` +- `docs/mapping.md` + +Possible new files: + +- `apps/desktop/src/opencode-global-setup.ts` + +## Technical approach + +### Desktop scope + +Desktop setup is global only. + +Use OpenCode global config discovery from Phase 19A: + +- `OPENCODE_CONFIG_DIR` if present; +- platform/XDG default config dir; +- candidate files `config.json`, `opencode.json`, `opencode.jsonc`. + +If existing global `plugin` or `instructions` arrays are present, write OpenPets into the effective owner file for those arrays so OpenPets does not create a higher-precedence array that shadows user entries. If those user arrays are split across files, or if a higher-precedence empty array already shadows lower user entries, refuse with a manual consolidation message. If no array owner exists, update an existing managed owner, otherwise write the highest-precedence existing global config file (`opencode.jsonc`, then `opencode.json`, then `config.json`). If no global config exists, create global `opencode.jsonc` in the OpenCode config dir. + +### Global setup data model + +Add OpenCode status/action data alongside existing Claude snapshot, without breaking Claude fields. + +Possible approach: + +- keep `getAgentSetupSnapshot()` returning Claude fields for compatibility; +- add `opencodeStatus`, `opencodePreview`, `opencodeInstructionStatus`, `opencodePluginStatus` fields; +- add OpenCode-specific actions such as: + - `opencode-install`; + - `opencode-remove`; + - `opencode-refresh` handled by snapshot reload; + - `opencode-copy-config` in preload only. + +Avoid overloading Claude `configure` / `remove` semantics if it makes state ambiguous. + +### Global config writes + +Use a two-phase plan-all-then-execute model: + +1. Validate global config dir/path safety. +2. Read/classify global candidates. +3. Refuse custom/foreign OpenPets-like entries. +4. Plan config update. +5. Plan instruction file upsert. +6. Execute instruction write before config write. + +Instruction upsert must preserve content outside managed markers. + +### Removal + +Removal should: + +- remove `mcp.openpets` only if managed; +- remove OpenPets instruction path from `instructions` only if managed; +- remove OpenPets plugin spec only if managed; +- remove only OpenPets managed block from instruction file; +- preserve unrelated config and user text. + +If entries are custom/foreign, show a warning and do not remove. + +Removal must also use two-phase destructive write safety: + +1. Validate/read all global candidates safely. +2. Classify exact managed entries. +3. Refuse custom/foreign entries. +4. Fail if managed entries span multiple global files. +5. Plan all config/instruction writes before executing. +6. Backup + atomic-write config and instruction changes. +7. Preserve user text outside OpenPets managed instruction markers. + +### UI + +Add enabled OpenCode card in the integrations grid. + +OpenCode detail can be simpler than Claude's initial UI but must include: + +- status card; +- pet routing select; +- global scope warning; +- install/update button; +- remove button; +- refresh button; +- config preview JSON; +- instruction file path/details; +- action result. + +### Packaging + +Desktop `package.json` should include workspace dependencies needed at runtime: + +- `@open-pets/cli`; +- `@open-pets/opencode`; +- `@open-pets/agent-events` if not pulled transitively in packaged output. + +Packaging checks should assert these are built and present. + +### Docs + +Update docs with OpenCode support: + +- `openpets configure --agent opencode --pet fixer` for project setup. +- Desktop OpenCode setup is global. +- OpenPets speech safety and MCP tool usage remain unchanged. + +## Risks and tradeoffs + +- Desktop global config can affect all OpenCode projects. UI must make this explicit. +- Global config path conventions may vary; use Phase 19A helpers and avoid guessing beyond tested defaults. +- Removal must not delete user-owned OpenCode settings. +- Packaging plugin imports can fail if `exports`/asar paths are wrong; add smoke checks. +- Adding OpenCode fields to the existing Claude-focused snapshot can make preload code complex; keep integration-specific DOM code separated where practical. + +## Security/privacy notes + +- Never write global config without explicit user action. +- Preserve unrelated global OpenCode config. +- Do not overwrite custom/foreign OpenPets-like entries. +- Do not create network listeners. +- Keep speech guidance: no code, logs, secrets, URLs, or file paths in pet speech. +- Packaged paths must not point into true `app.asar` for executable/plugin resources. + +## Test/check plan + +- `pnpm --filter @open-pets/opencode check` +- `pnpm --filter @open-pets/desktop check` +- `pnpm check` + +Specific checks: + +- Agent Setup HTML contains enabled OpenCode card/details and global warning. +- Preload binds OpenCode install/remove/refresh without breaking Claude bindings. +- Desktop backend reports OpenCode status when binary is absent. +- Global setup uses temp fixtures in tests/checks only. +- Temp `OPENCODE_CONFIG_DIR` global install/update/remove. +- All global candidates are scanned before writing. +- Managed owner in lower-priority candidate is updated, not duplicated. +- Custom/foreign conflict refusal. +- Symlinked global config dir/candidate/instruction file rejection. +- Remove preserves unrelated config and user instruction text. +- Managed entries spanning multiple global candidate files fail safely. +- Invalid JSON/JSONC or oversized global candidates block setup/removal writes. +- Stale managed MCP/plugin/pet/version entries update cleanly. +- Packaged generated MCP command contains `app.asar.unpacked`, never true `app.asar`. +- Packaged Node-on-PATH block/warning path exists in desktop install handling and remains a manual packaged-app verification item. +- Global removal creates backups and uses temp/atomic writes. +- Copy preview action copies the OpenCode config preview without requiring writes. +- Packaging contract checks built `@open-pets/opencode` and `@open-pets/agent-events` resources. +- Packaged smoke imports OpenCode server plugin export. +- Docs mention CLI project setup vs desktop global setup. + +## Manual verification guide + +After implementation and review: + +1. Run `pnpm check`. +2. Run `pnpm dev:desktop`. +3. Open Integrations. +4. Confirm Claude still works as before. +5. Confirm OpenCode card is enabled. +6. Open OpenCode detail. +7. Confirm it says desktop setup is global. +8. Install OpenCode global integration in a temp `OPENCODE_CONFIG_DIR` environment if practical. +9. Confirm global config has OpenPets MCP/instructions/plugin entries. +10. Confirm remove preserves unrelated config and removes only managed OpenPets entries. +11. Package dir build if practical and confirm packaged smoke checks pass. + +## Oracle plan review + +Oracle reviewed the initial Phase 19D spec and found blockers: + +- Global setup safety contract was under-specified. +- Removal needed a two-phase destructive-write contract. +- Bundled MCP command/package path was ambiguous. +- Packaged plugin behavior was unclear: published plugin spec vs bundled desktop copy. +- Tests/checks needed explicit global setup/removal fixture coverage. + +## Oracle feedback disposition + +- **Fixed:** Added explicit global helper contract for safe all-candidate scanning, owner selection, custom refusal, and `opencode.jsonc` creation. +- **Fixed:** Added two-phase removal safety contract with backups/atomic writes and user text preservation. +- **Fixed:** Defined bundled MCP command via packaged `@open-pets/cli` and Node-on-PATH requirement. +- **Fixed:** Clarified plugin config remains published/version-pinned while packaged plugin resources are for desktop imports/smoke checks in this phase. +- **Fixed:** Added explicit global setup/removal fixture coverage requirements. + +## Implementation closeout + +- Desktop OpenCode global setup, removal, preview, and copy actions are implemented in the Integrations window. +- Automated checks now cover OpenCode global install/remove status transitions, JSONC preview planning, bundled `app.asar.unpacked` command shape, strict managed-entry classification, packaged resource presence, and plugin smoke import. +- `pnpm check` passed after implementation review and strict managed-entry hardening. +- Remaining release-time manual item: confirm the version-pinned `@open-pets/opencode@` is published before shipping a desktop build that advertises OpenCode global setup. diff --git a/docs/release.md b/docs/release.md new file mode 100644 index 00000000..127a4b97 --- /dev/null +++ b/docs/release.md @@ -0,0 +1,291 @@ +# OpenPets Desktop Release Guide + +This guide is for an AI agent creating a new OpenPets desktop release from a local macOS machine. The release flow builds Electron artifacts locally, creates a draft GitHub Release, and uploads the assets. + +## Repository and app + +- GitHub repo: `alvinunreal/openpets` +- Desktop app: `apps/desktop` +- Release script: `apps/desktop/scripts/release-local.mjs` +- Root command: `pnpm release:desktop` +- Update checker expects GitHub release tags like `v2.0.0`. + +## What the release script does + +`pnpm release:desktop -- --yes` performs these checks/actions: + +1. Requires macOS. +2. Requires `pnpm` and `gh`. +3. Requires GitHub CLI auth for `github.com`. +4. Requires `origin` to point to `alvinunreal/openpets`. +5. Requires a clean git working tree. +6. Requires the current branch to have an upstream. +7. Requires local `HEAD` to match the upstream branch. +8. Requires desktop version to be stable semver and not `0.0.0`. +9. Requires tag/release `v` to not already exist. +10. Runs build/checks. +11. Builds release artifacts. +12. Generates `SHA256SUMS`. +13. Creates a draft GitHub Release. +14. Uploads top-level whitelisted artifacts only. + +Draft releases are not visible to the app update checker until published. + +## Default release assets + +Default command: + +```bash +pnpm release:desktop -- --yes +``` + +Default build matrix: + +- macOS DMG: x64 + arm64 +- Windows NSIS installer: x64 +- Linux AppImage: x64 + +Expected main artifacts look like: + +```txt +OpenPets--mac-x64.dmg +OpenPets--mac-arm64.dmg +OpenPets--win-x64-setup.exe +OpenPets--linux-x86_64.AppImage +SHA256SUMS +``` + +Optional flags: + +```bash +pnpm release:desktop -- --yes --include-mac-zip +pnpm release:desktop -- --yes --include-win-portable +pnpm release:desktop -- --yes --include-linux-deb +pnpm release:desktop -- --yes --include-linux-targz +pnpm release:desktop -- --yes --include-optional +pnpm release:desktop -- --yes --include-experimental-arm +``` + +`--include-optional` includes mac zip, Windows portable, Linux deb, and Linux tar.gz x64 targets. + +`--include-experimental-arm` adds Windows ARM64 and Linux ARM64 artifacts. Only use this if those artifacts can be tested. + +## Full release procedure + +### 1. Choose the next version + +Use stable semver only: + +```txt +2.0.0 +2.0.1 +2.1.0 +3.0.0 +``` + +Do not use `0.0.0` or prerelease tags unless the release script is intentionally changed. + +### 2. Bump package versions + +Update the workspace package versions together so bundled packages report the same release version. + +Files to update: + +```txt +package.json +apps/desktop/package.json +packages/agent-events/package.json +packages/claude/package.json +packages/cli/package.json +packages/client/package.json +packages/mcp/package.json +packages/opencode/package.json +packages/pet-format/package.json +``` + +Set each top-level `version` field to the chosen version, for example: + +```json +"version": "2.0.1" +``` + +### 3. Install/update lockfile if needed + +Run: + +```bash +pnpm install +``` + +If `pnpm-lock.yaml` changes, include it in the version bump commit. + +### 4. Run checks before committing + +Run: + +```bash +pnpm build +pnpm --filter @open-pets/desktop check +``` + +Fix any failures before continuing. + +### 5. Commit and push the version bump + +Check status: + +```bash +git status --short +``` + +Commit the version bump and any intentional release changes: + +```bash +git add package.json apps/desktop/package.json packages/*/package.json pnpm-lock.yaml +git commit -m "release desktop v" +git push +``` + +Only add files that are intentionally part of the release. Do not accidentally include unrelated worktree changes. + +### 6. Confirm GitHub CLI auth + +Run: + +```bash +gh auth status --hostname github.com +``` + +If not authenticated: + +```bash +gh auth login +``` + +### 7. Run a dry run first + +Run: + +```bash +pnpm release:desktop -- --dry-run +``` + +This should pass preflight, build artifacts, generate checksums, and stop before creating the GitHub Release. + +If it fails because the tree is dirty, inspect: + +```bash +git status --short +``` + +The release script requires a clean tree before release creation. + +### 8. Create the draft GitHub Release and upload assets + +For the recommended default release: + +```bash +pnpm release:desktop -- --yes +``` + +For a fuller x64 release with optional artifacts: + +```bash +pnpm release:desktop -- --yes --include-optional +``` + +The script creates a draft release named/tagged: + +```txt +v +``` + +Example: + +```txt +v2.0.1 +``` + +### 9. Smoke test before publishing + +Before publishing the draft release, manually test at least: + +- macOS DMG on the current Mac. +- Windows installer on a Windows machine or VM. +- Linux AppImage on a Linux machine or VM. + +Unsigned release warnings are expected until code signing/notarization is configured: + +- macOS may show Gatekeeper warnings. +- Windows may show SmartScreen warnings. + +### 10. Publish the draft release + +After smoke testing, publish the draft release on GitHub. + +The app update checker will only see the release after it is published. + +## Common failure modes + +### Version is `0.0.0` + +Fix `apps/desktop/package.json` and the other workspace package versions. + +### Dirty working tree + +The release script refuses to create releases from a dirty checkout. Commit, stash, or revert changes first. + +### HEAD is not pushed + +Push the current branch before releasing: + +```bash +git push +``` + +### Tag or release already exists + +Use a new version, or manually inspect GitHub releases/tags before proceeding. + +### Partial GitHub upload failure + +If the script creates the draft release but upload fails: + +1. Inspect the draft release on GitHub. +2. Upload missing artifacts manually with: + +```bash +gh release upload v --repo alvinunreal/openpets +``` + +3. Or delete the draft release/tag and rerun after fixing the issue. + +## Manual packaging smoke commands + +These do not create a GitHub Release: + +```bash +pnpm --filter @open-pets/desktop build +node apps/desktop/scripts/clean-package-output.cjs +pnpm --dir apps/desktop exec electron-builder --mac dmg --x64 --publish never +pnpm --dir apps/desktop exec electron-builder --mac dmg --arm64 --publish never +pnpm --dir apps/desktop exec electron-builder --win nsis --x64 --publish never +pnpm --dir apps/desktop exec electron-builder --linux AppImage --x64 --publish never +``` + +Artifacts are written to: + +```txt +apps/desktop/dist-electron/ +``` + +## Important notes for future agents + +- Do not publish from an uncommitted local state. +- Do not use `--skip-checks` with `--yes`; the script rejects this. +- Do not upload the entire `dist-electron` directory manually. Upload only final top-level artifacts and `SHA256SUMS`. +- Keep the tag format as `v`. +- Keep `publish: null` in `electron-builder.yml`; GitHub release upload is handled by the local script. +- Windows icon is `apps/desktop/assets/app-icon.ico`. +- macOS icon is `apps/desktop/assets/app-icon.icns`. +- The Windows/macOS artifacts are currently unsigned unless signing config is added later. diff --git a/docs/testing.md b/docs/testing.md new file mode 100644 index 00000000..1c3cbc89 --- /dev/null +++ b/docs/testing.md @@ -0,0 +1,57 @@ +# OpenPets testing + +OpenPets currently uses lightweight Node contract checks instead of a full test framework. + +## Commands + +```bash +pnpm test +pnpm check +``` + +- `pnpm test` builds the workspace and runs deterministic regression tests. +- `pnpm check` is the full pre-commit/phase gate: typecheck, build, then package tests/checks. + +Package-level `pnpm test` commands generally run built `dist` artifacts and assume the package was built first. Use root `pnpm test` or package `pnpm check` when you need a fresh build included automatically. + +Package-level `check` scripts should include package tests after typecheck/build so regression coverage cannot drift away from validation. + +## Package expectations + +Packages with runtime contract coverage should expose `test` scripts: + +- `apps/desktop` +- `packages/client` +- `packages/mcp` +- `packages/claude` + +Packages without meaningful runtime checks yet may omit `test` until they gain behavior beyond type/build validation: + +- `packages/cli` +- `packages/pet-format` + +## Isolation rules + +Tests must not require: + +- a running Electron app +- a real Claude installation +- network access +- writes to real `~/.claude/settings.json` +- writes to real OpenPets user data + +Use temp directories/files for settings and fixtures. Clean them up after the test. Do not depend on the process current working directory except for explicit repo-relative fixture paths. + +## What belongs in tests + +Good fits for the current harness: + +- IPC protocol contracts +- MCP tool contracts +- lease manager behavior +- Claude MCP command previews +- Claude hook event mapping and speech safety +- Claude settings merge/install/uninstall against temp files +- zip safety and catalog validation + +Electron tray/window behavior remains manually verified until a later UI automation phase. diff --git a/docs/workflow.md b/docs/workflow.md new file mode 100644 index 00000000..f374b7fb --- /dev/null +++ b/docs/workflow.md @@ -0,0 +1,214 @@ +# OpenPets 2.0 workflow + +This document defines the day-to-day working workflow for OpenPets 2.0. + +The goal is to build in clear phases with excellent DX, strong review, and manual confirmation after every meaningful checkpoint. + +## Source of truth documents + +- `task.txt` — product decisions, agreed scope, architecture direction, and discussion history. +- `docs/implementation-process.md` — high-level implementation phases and process rules. +- `docs/workflow.md` — practical working workflow for each phase. +- `docs/phases/phase-XX-name.md` — detailed spec for one phase. + +## Core rule + +Do not jump straight from product notes to code. + +For each implementation phase: + +1. Write a dedicated phase spec in `docs/phases/`. +2. Send the phase spec to Oracle for plan review. +3. Fix or disposition Oracle feedback in the spec. +4. Ask the user to approve the phase spec. +5. Implement only the approved phase. +6. Run relevant automated checks. +7. Send the implementation diff to Oracle for code/maintainability review. +8. Fix or disposition Oracle feedback. +9. Give the user exact manual verification steps. +10. Wait for user confirmation before continuing. + +## Phase spec location + +Phase specs should live here: + +```text +docs/phases/ +``` + +Naming pattern: + +```text +docs/phases/phase-00-workspace-foundation.md +docs/phases/phase-01-tray-desktop-shell.md +docs/phases/phase-02-default-pet-window.md +docs/phases/phase-03-local-state-pet-manager-basics.md +``` + +Use two-digit phase numbers so files sort naturally. + +## Phase spec template + +Each phase spec should use this structure: + +```md +# Phase XX: Name + +## Goal + +## Non-goals + +## User-visible/manual outcome + +## Acceptance criteria + +## Proposed files/directories + +## Technical approach + +## Risks and tradeoffs + +## Security/privacy notes + +## Test/check plan + +## Manual verification guide + +## Oracle plan review + +## Oracle feedback disposition +``` + +The spec should be concrete enough that implementation can proceed without rediscovering the whole plan, but not so detailed that it becomes fake certainty. + +## Oracle plan review packet + +When sending a phase spec to Oracle for review, include: + +- The phase spec path. +- The relevant product context from `task.txt` if needed. +- What decision or plan should be reviewed. +- Known uncertainties. +- Specific risks where Oracle should focus. + +Oracle should review for: + +- Architecture fit. +- Maintainability. +- Security/privacy issues. +- Data-loss risks. +- Cross-platform risks. +- Scope size. +- Missing acceptance criteria. +- Missing manual verification steps. + +## Oracle feedback disposition + +After Oracle reviews a phase spec or implementation, record feedback disposition. + +Use these categories: + +```text +Fixed +Deferred +Rejected +Needs user decision +``` + +Do not silently ignore Oracle feedback. + +If feedback expands scope significantly, ask the user before expanding the phase. + +## User approval before implementation + +After Oracle plan review and spec updates, ask the user to approve the phase spec. + +Do not start implementation until the user approves the phase spec. + +The approval question should be direct: + +```text +Approve Phase XX for implementation? +``` + +## Implementation rules + +During implementation: + +- Implement only the approved phase. +- Do not add unrelated refactors. +- Do not silently expand scope. +- If the phase becomes too large, stop and propose a split. +- Keep changes aligned with `task.txt`, `docs/implementation-process.md`, and the approved phase spec. +- Prefer simple, reliable, cross-platform behavior over cleverness. +- Preserve v1 as reference material only; do not blindly copy v1 assumptions. + +## Implementation review packet + +After implementation, send Oracle: + +- Summary of implemented changes. +- Changed file list or diff summary. +- Test/check results. +- Known limitations. +- Deviations from the approved spec. +- Specific concerns where Oracle should focus. + +Then fix or disposition Oracle feedback before asking the user to manually confirm. + +## Manual user verification + +After Oracle implementation review is resolved, give the user: + +- What changed. +- Commands to run. +- Manual actions to take. +- Expected results. +- Known limitations. +- A clear confirmation question. + +Example: + +```text +Please verify Phase 01: + +1. Run `pnpm dev:desktop`. +2. Confirm the OpenPets tray icon appears. +3. Open Manage Pets, Configure Agents, and Settings from the tray. +4. Confirm each placeholder window opens. +5. Quit from the tray and confirm the app exits cleanly. + +Does Phase 01 pass on your machine? +``` + +Do not proceed to the next numbered phase, or any meaningful user-visible sub-phase, until the user confirms. + +## Recommended initial phase sequence + +Start with these phase specs: + +1. `phase-00-workspace-foundation.md` +2. `phase-01-tray-desktop-shell.md` +3. `phase-02-default-pet-window.md` +4. `phase-03-local-state-pet-manager-basics.md` +5. `phase-04-v2-pet-catalog-installation.md` +6. `phase-05-local-ipc-client.md` +7. `phase-06-mcp-integration.md` +8. `phase-07-claude-detection-configuration.md` +9. `phase-08-claude-enhanced-hooks.md` +10. `phase-09-first-run-onboarding.md` +11. `phase-10-mvp-hardening-packaging.md` + +Phases can be split later if they become too large. + +Likely split candidates: + +- Phase 04: catalog browsing vs zip install/validation. +- Phase 08: Claude hook reactions vs speech/polish. +- Phase 10: hardening vs packaging/release validation. + +## Current phase tracking + +Track the active phase in the relevant `docs/phases/phase-XX-name.md` file and in conversation with the user. + +Do not hardcode the current next action in this workflow document; it should stay reusable across phases. diff --git a/package.json b/package.json new file mode 100644 index 00000000..413b6b61 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "openpets-v2-workspace", + "version": "2.0.0", + "private": true, + "description": "OpenPets 2.0 workspace", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git" + }, + "type": "module", + "packageManager": "pnpm@11.0.8", + "engines": { + "node": ">=20" + }, + "scripts": { + "dev:desktop": "pnpm --filter @open-pets/desktop dev", + "package:desktop:dir": "pnpm build && pnpm --filter @open-pets/desktop package:dir", + "package:desktop": "pnpm build && pnpm --filter @open-pets/desktop package", + "release:desktop": "node apps/desktop/scripts/release-local.mjs", + "test": "pnpm build && pnpm -r --if-present test", + "check": "pnpm -r check", + "typecheck": "pnpm -r typecheck", + "build": "pnpm -r build" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/packages/agent-events/package.json b/packages/agent-events/package.json new file mode 100644 index 00000000..9ad1a9de --- /dev/null +++ b/packages/agent-events/package.json @@ -0,0 +1,35 @@ +{ + "name": "@open-pets/agent-events", + "version": "2.0.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "packages/agent-events" + }, + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "test": "node dist/check-agent-events.js", + "check": "pnpm typecheck && pnpm build && pnpm test", + "typecheck": "tsc --noEmit", + "build": "tsc" + }, + "devDependencies": { + "@types/node": "^25.6.2", + "typescript": "^6.0.3" + } +} diff --git a/packages/agent-events/src/check-agent-events.ts b/packages/agent-events/src/check-agent-events.ts new file mode 100644 index 00000000..135f92c4 --- /dev/null +++ b/packages/agent-events/src/check-agent-events.ts @@ -0,0 +1,19 @@ +import assert from "node:assert/strict"; + +import { hookSpeechPools, pickHookSpeech, validateHookSpeech } from "./index.js"; + +assert.equal(pickHookSpeech("thinking", () => 0), "Thinking it through"); +assert.equal(pickHookSpeech("success", () => 0.99), "Nice, finished"); + +for (const [category, messages] of Object.entries(hookSpeechPools)) { + for (const message of messages) { + assert.match(message, /^[A-Z]/, `${category} hook speech must start with uppercase: ${message}`); + assert.equal(validateHookSpeech(message), message); + } +} + +for (const unsafe of ["", "a".repeat(141), "line\nbreak", "const x = 1", "https://example.com", "/Users/alvin/project", "api_key=secret"]) { + assert.throws(() => validateHookSpeech(unsafe)); +} + +console.error("Agent event speech validation passed."); diff --git a/packages/agent-events/src/index.ts b/packages/agent-events/src/index.ts new file mode 100644 index 00000000..a805e286 --- /dev/null +++ b/packages/agent-events/src/index.ts @@ -0,0 +1,23 @@ +export type HookSpeechCategory = "thinking" | "success" | "error" | "permission"; + +export const hookSpeechPools: Record = { + thinking: ["Thinking it through", "Let me check", "On it", "Working it out"], + success: ["Done", "That worked", "All set", "Nice, finished"], + error: ["Something failed", "Needs another look", "Hit a snag", "Not quite there"], + permission: ["Approval needed"], +}; + +export function pickHookSpeech(category: HookSpeechCategory, random: () => number = Math.random): string { + const pool = hookSpeechPools[category]; + return pool[Math.max(0, Math.min(pool.length - 1, Math.floor(random() * pool.length)))] ?? pool[0] ?? "Working"; +} + +export function validateHookSpeech(message: string): string { + if (message.length < 1 || message.length > 140) throw new Error("Hook speech length is invalid."); + if (/\r|\n/.test(message)) throw new Error("Hook speech must be single line."); + if (/```|\b(function|const|let|var|class|import|export)\b|[{};]/.test(message)) throw new Error("Hook speech looks code-like."); + if (/https?:\/\/|www\./i.test(message)) throw new Error("Hook speech must not contain URLs."); + if (/(^|\s)(?:~|\.{1,2}|[A-Za-z]:)?[\\/][^\s]+/.test(message)) throw new Error("Hook speech must not contain paths."); + if (/\b(api[_-]?key|secret|password|token)\s*[:=]/i.test(message)) throw new Error("Hook speech must not contain secrets."); + return message; +} diff --git a/packages/agent-events/tsconfig.json b/packages/agent-events/tsconfig.json new file mode 100644 index 00000000..762e7118 --- /dev/null +++ b/packages/agent-events/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/claude/package.json b/packages/claude/package.json new file mode 100644 index 00000000..454c3e17 --- /dev/null +++ b/packages/claude/package.json @@ -0,0 +1,42 @@ +{ + "name": "@open-pets/claude", + "version": "2.0.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "packages/claude" + }, + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "bin": { + "open-pets-claude": "dist/cli.js" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "test": "node dist/check-claude-code.js && node dist/check-claude-hooks.js", + "check": "pnpm typecheck && pnpm build && pnpm test", + "typecheck": "tsc --noEmit", + "build": "tsc" + }, + "devDependencies": { + "@types/node": "^25.6.2", + "typescript": "^6.0.3" + }, + "dependencies": { + "@open-pets/agent-events": "workspace:*", + "@open-pets/client": "workspace:*" + } +} diff --git a/packages/claude/src/check-claude-code.ts b/packages/claude/src/check-claude-code.ts new file mode 100644 index 00000000..d5527882 --- /dev/null +++ b/packages/claude/src/check-claude-code.ts @@ -0,0 +1,68 @@ +import assert from "node:assert/strict"; + +import { buildClaudeMcpGetCommand, buildClaudeMcpPreview, classifyClaudeMcpStatus, formatCommandForDisplay, getBundledMcpEntryPath, getLocalMcpEntryPath, mapAsarPathToUnpacked, parseClaudeMcpGetOutput, parseClaudeMcpListOutput, validateOpenPetsPetArg } from "./claude-code.js"; + +const defaultPreview = buildClaudeMcpPreview(); +assert.deepEqual(defaultPreview.add.args, ["mcp", "add", "--scope", "user", "openpets", "--", "npx", "-y", "@open-pets/mcp"]); +assert.deepEqual(defaultPreview.remove.args, ["mcp", "remove", "--scope", "user", "openpets"]); +assert.deepEqual(defaultPreview.mcpJson.mcpServers.openpets.args, ["-y", "@open-pets/mcp"]); +assert.equal(formatCommandForDisplay(defaultPreview.add), "claude mcp add --scope user openpets -- npx -y @open-pets/mcp"); + +const petPreview = buildClaudeMcpPreview("snoopy"); +assert.deepEqual(petPreview.add.args, ["mcp", "add", "--scope", "user", "openpets", "--", "npx", "-y", "@open-pets/mcp", "--pet", "snoopy"]); +assert.deepEqual(petPreview.mcpJson.mcpServers.openpets.args, ["-y", "@open-pets/mcp", "--pet", "snoopy"]); +assert.deepEqual(buildClaudeMcpGetCommand().args, ["mcp", "get", "openpets"]); + +const localPreview = buildClaudeMcpPreview("snoopy", "local"); +assert.deepEqual(localPreview.add.args, ["mcp", "add", "--scope", "user", "openpets", "--", "node", getLocalMcpEntryPath(), "--pet", "snoopy"]); +assert.equal(localPreview.mcpJson.mcpServers.openpets.command, "node"); +assert.deepEqual(localPreview.mcpJson.mcpServers.openpets.args, [getLocalMcpEntryPath(), "--pet", "snoopy"]); + +assert.throws(() => validateOpenPetsPetArg("Bad Pet")); +assert.throws(() => validateOpenPetsPetArg("bad/pet")); +assert.equal(validateOpenPetsPetArg("snoopy"), "snoopy"); + +assert.equal(parseClaudeMcpListOutput("openpets: npx -y @open-pets/mcp").present, true); +assert.equal(parseClaudeMcpListOutput("No MCP servers configured").present, false); + +const jsonGet = parseClaudeMcpGetOutput(JSON.stringify({ command: "npx", args: ["-y", "@open-pets/mcp", "--pet", "snoopy"] }), "snoopy"); +assert.equal(jsonGet.present, true); +assert.equal(jsonGet.verified, true); +assert.equal(jsonGet.matchesExpected, true); + +const localGet = parseClaudeMcpGetOutput(JSON.stringify({ command: "node", args: [getLocalMcpEntryPath(), "--pet", "snoopy"] }), "snoopy", "local"); +assert.equal(localGet.matchesExpected, true); + +const bundledPreview = buildClaudeMcpPreview("snoopy", "bundled"); +assert.deepEqual(bundledPreview.add.args, ["mcp", "add", "--scope", "user", "openpets", "--", "node", getBundledMcpEntryPath(), "--pet", "snoopy"]); +assert.equal(bundledPreview.mcpJson.mcpServers.openpets.command, "node"); +assert.deepEqual(bundledPreview.mcpJson.mcpServers.openpets.args, [getBundledMcpEntryPath(), "--pet", "snoopy"]); +const bundledGet = parseClaudeMcpGetOutput(JSON.stringify({ command: "node", args: [getBundledMcpEntryPath(), "--pet", "snoopy"] }), "snoopy", "bundled"); +assert.equal(bundledGet.matchesExpected, true); + +const spacedPath = "/Applications/OpenPets Test.app/Contents/Resources/app/node_modules/@open-pets/mcp/dist/index.js"; +assert.equal(formatCommandForDisplay({ command: "node", args: [spacedPath, "--pet", "snoopy"] }), 'node "/Applications/OpenPets Test.app/Contents/Resources/app/node_modules/@open-pets/mcp/dist/index.js" --pet snoopy'); +const spacedTextGet = parseClaudeMcpGetOutput(`openpets\nCommand: node\nArgs: "${getBundledMcpEntryPath()}" --pet snoopy`, "snoopy", "bundled"); +assert.equal(spacedTextGet.matchesExpected, true); +assert.equal(formatCommandForDisplay({ command: "node", args: ["C:\\Program Files\\OpenPets\\resources\\app\\node_modules\\@open-pets\\mcp\\dist\\index.js"] }), 'node "C:\\\\Program Files\\\\OpenPets\\\\resources\\\\app\\\\node_modules\\\\@open-pets\\\\mcp\\\\dist\\\\index.js"'); +assert.equal(mapAsarPathToUnpacked("/Applications/OpenPets.app/Contents/Resources/app.asar/node_modules/@open-pets/mcp/dist/index.js"), "/Applications/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js"); +assert.equal(mapAsarPathToUnpacked("C:\\Program Files\\OpenPets\\resources\\app.asar\\node_modules\\@open-pets\\mcp\\dist\\index.js"), "C:\\Program Files\\OpenPets\\resources\\app.asar.unpacked\\node_modules\\@open-pets\\mcp\\dist\\index.js"); +assert.equal(mapAsarPathToUnpacked("/Applications/app.asarish/OpenPets.app/Contents/Resources/app.asar/node_modules/@open-pets/mcp/dist/index.js"), "/Applications/app.asarish/OpenPets.app/Contents/Resources/app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js"); +assert.equal(mapAsarPathToUnpacked("/tmp/app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js"), "/tmp/app.asar.unpacked/node_modules/@open-pets/mcp/dist/index.js"); + +const textGet = parseClaudeMcpGetOutput("openpets\nCommand: npx\nArgs: -y @open-pets/mcp --pet snoopy", "snoopy"); +assert.equal(textGet.present, true); +assert.equal(textGet.verified, true); +assert.equal(textGet.matchesExpected, true); + +const different = parseClaudeMcpGetOutput(JSON.stringify({ command: "node", args: ["server.js"] }), "snoopy"); +assert.equal(different.present, true); +assert.equal(different.verified, true); +assert.equal(different.matchesExpected, false); + +const unverifiable = classifyClaudeMcpStatus("openpets", "Name: openpets\nTransport: stdio", "snoopy"); +assert.equal(unverifiable.present, true); +assert.equal(unverifiable.verified, false); +assert.equal(unverifiable.matchesExpected, false); + +console.error("Claude Code setup validation passed."); diff --git a/packages/claude/src/check-claude-hooks.ts b/packages/claude/src/check-claude-hooks.ts new file mode 100644 index 00000000..8b3f371c --- /dev/null +++ b/packages/claude/src/check-claude-hooks.ts @@ -0,0 +1,176 @@ +import assert from "node:assert/strict"; +import { spawnSync } from "node:child_process"; +import { mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; + +import { addOpenPetsHooks, claudeHookEvents, createOpenPetsHookCommand, createOpenPetsHookSettingsPreview, doctorClaudeHooks, getBundledClaudeCliPath, getLocalClaudeCliPath, installClaudeHooks, openPetsHookMarker, removeOpenPetsHooks, uninstallClaudeHooks } from "./hook-settings.js"; +import { hookSpeechPools } from "./hook-messages.js"; +import { handleClaudeHookPayload, hasProjectLocalOpenPetsHook, mapClaudeHookEvent, validateHookSpeech } from "./hooks.js"; + +assert.equal(mapClaudeHookEvent({ hook_event_name: "UserPromptSubmit" })?.reaction, "thinking"); +assert.equal(mapClaudeHookEvent({ hook_event_name: "UserPromptSubmit" })?.speechCategory, undefined); +assert.equal(mapClaudeHookEvent({ hook_event_name: "PreToolUse", tool_name: "Write" })?.reaction, "editing"); +assert.equal(mapClaudeHookEvent({ hook_event_name: "PreToolUse", tool_name: "Bash", tool_input: { command: "pnpm test" } })?.reaction, "testing"); +assert.equal(mapClaudeHookEvent({ hook_event_name: "PreToolUse", tool_name: "Bash", tool_input: { command: "ls" } })?.reaction, undefined); +assert.equal(mapClaudeHookEvent({ hook_event_name: "PreToolUse", tool_name: "Read" })?.reaction, undefined); +assert.equal(mapClaudeHookEvent({ hook_event_name: "PermissionRequest" })?.speechCategory, "permission"); +assert.equal(mapClaudeHookEvent({ hook_event_name: "Notification" })?.reaction, undefined); +assert.equal(mapClaudeHookEvent({ hook_event_name: "Stop" })?.reaction, "success"); +assert.equal(mapClaudeHookEvent({ hook_event_name: "Stop" })?.speechCategory, undefined); +assert.equal(mapClaudeHookEvent({ hook_event_name: "StopFailure" })?.reaction, "error"); +assert.equal(mapClaudeHookEvent({ hook_event_name: "Unknown" })?.reaction, undefined); + +validateHookSpeech("Thinking it through"); +for (const [category, messages] of Object.entries(hookSpeechPools) as Array<[string, readonly string[]]>) { + for (const message of messages) { + assert.match(message, /^[A-Z]/, `${category} hook speech must start with an uppercase letter: ${message}`); + validateHookSpeech(message); + } +} +for (const unsafe of ["", "a".repeat(141), "line\nbreak", "const x = 1", "https://example.com", "/Users/alvin/project", "api_key=secret"]) { + assert.throws(() => validateHookSpeech(unsafe)); +} + +const calls: Array<{ readonly kind: string; readonly value: string; readonly leaseId?: string; readonly requestedPetId?: string }> = []; +const client = { + hello: async () => ({}), + status: async () => ({ ok: true, appRunning: true }), + listPets: async () => ({ ok: true as const, pets: [], defaultPetId: "builtin" }), + acquireLease: async (options?: { readonly requestedPetId?: string }) => { + calls.push({ kind: "lease", value: "acquire", requestedPetId: options?.requestedPetId }); + return { leaseId: "lease-fixer", requestedPetId: options?.requestedPetId, targetKind: "explicit" as const, actualTargetPetId: options?.requestedPetId ?? "builtin", actualTargetPetName: "Fixer", usingDefaultPet: false, expiresAt: Date.now() + 15_000, leaseActive: true }; + }, + heartbeatLease: async () => { throw new Error("unused"); }, + releaseLease: async () => { throw new Error("unused"); }, + react: async (reaction: string, options?: { readonly leaseId?: string }) => { calls.push({ kind: "react", value: reaction, leaseId: options?.leaseId }); }, + say: async (message: string, options?: { readonly leaseId?: string }) => { calls.push({ kind: "say", value: message, leaseId: options?.leaseId }); }, +}; +const dir = mkdtempSync(join(tmpdir(), "openpets-hooks-")); +try { +await handleClaudeHookPayload(JSON.stringify({ hook_event_name: "UserPromptSubmit", prompt: "never shown" }), { client, configuredPetId: "fixer", throttlePath: join(dir, "throttle.json"), now: () => 100_000, random: () => 0 }); +assert.deepEqual(calls[0], { kind: "lease", value: "acquire", requestedPetId: "fixer" }); +assert.deepEqual(calls[1], { kind: "react", value: "thinking", leaseId: "lease-fixer" }); +await handleClaudeHookPayload(JSON.stringify({ hook_event_name: "PreToolUse", tool_name: "Bash", tool_input: { command: "npm test -- --secret" } }), { client, throttlePath: join(dir, "throttle.json"), now: () => 101_000 }); +assert.deepEqual(calls[2], { kind: "react", value: "testing", leaseId: undefined }); +const beforeSilentBash = calls.length; +await handleClaudeHookPayload(JSON.stringify({ hook_event_name: "PreToolUse", tool_name: "Bash", tool_input: { command: "ls" } }), { client, throttlePath: join(dir, "throttle.json"), now: () => 102_000 }); +assert.equal(calls.length, beforeSilentBash); +await handleClaudeHookPayload(JSON.stringify({ hook_event_name: "PreToolUse", tool_name: "Bash", tool_input: { command: "npm test" } }), { client, throttlePath: join(dir, "throttle.json"), now: () => 102_000 }); +assert.equal(calls.length, beforeSilentBash, "duplicate testing reaction should be throttled"); +await handleClaudeHookPayload("not json", { client, throttlePath: join(dir, "throttle.json") }); + +const projectDir = join(dir, "project-with-local-hook"); +mkdirSync(join(projectDir, ".claude"), { recursive: true }); +writeFileSync(join(projectDir, ".claude", "settings.local.json"), JSON.stringify({ hooks: { UserPromptSubmit: [{ hooks: [{ type: "command", command: "openpets hook --openpets-managed --project-local --pet fixer" }] }] } }), "utf8"); +assert.equal(hasProjectLocalOpenPetsHook(projectDir), true); +const beforeSkippedGlobal = calls.length; +const previousProjectDir = process.env.CLAUDE_PROJECT_DIR; +process.env.CLAUDE_PROJECT_DIR = projectDir; +try { + await handleClaudeHookPayload(JSON.stringify({ hook_event_name: "PermissionRequest" }), { client, throttlePath: join(dir, "project-skip-throttle.json"), now: () => 102_000, debug: true, random: () => 0 }); + assert.equal(calls.length, beforeSkippedGlobal); + await handleClaudeHookPayload(JSON.stringify({ hook_event_name: "PermissionRequest" }), { client, projectLocal: true, configuredPetId: "fixer", throttlePath: join(dir, "throttle.json"), now: () => 103_000, random: () => 0 }); + assert.deepEqual(calls.at(-2), { kind: "lease", value: "acquire", requestedPetId: "fixer" }); + assert.deepEqual(calls.at(-1), { kind: "say", value: "Approval needed", leaseId: "lease-fixer" }); +} finally { + if (previousProjectDir === undefined) delete process.env.CLAUDE_PROJECT_DIR; + else process.env.CLAUDE_PROJECT_DIR = previousProjectDir; +} + +const preview = createOpenPetsHookSettingsPreview(); +const hooks = (preview.hooks ?? {}) as Record; +for (const event of claudeHookEvents) { + const entries = hooks[event] as Array<{ hooks: Array<{ command: string; timeout: number; async: boolean; asyncRewake: boolean }> }>; + const hook = entries[0]?.hooks[0]; + assert.ok(hook?.command.includes(openPetsHookMarker)); + assert.equal(hook.timeout, 3); + assert.equal(hook.async, true); + assert.equal(hook.asyncRewake, false); +} +const localPreview = createOpenPetsHookSettingsPreview("local"); +const localHook = (((localPreview.hooks as Record).Stop as Array<{ hooks: Array<{ command: string }> }>)[0]?.hooks[0]); +assert.ok(localHook?.command.includes(getLocalClaudeCliPath())); +assert.ok(localHook?.command.includes(openPetsHookMarker)); +const bundledPreview = createOpenPetsHookSettingsPreview("bundled"); +const bundledHook = (((bundledPreview.hooks as Record).Stop as Array<{ hooks: Array<{ command: string }> }>)[0]?.hooks[0]); +assert.ok(bundledHook?.command.includes(getBundledClaudeCliPath())); +assert.ok(bundledHook?.command.includes(openPetsHookMarker)); +assert.ok(createOpenPetsHookCommand("published", "fixer").endsWith("--openpets-managed --pet fixer")); +const petPreview = createOpenPetsHookSettingsPreview("published", "fixer"); +const petHook = (((petPreview.hooks as Record).UserPromptSubmit as Array<{ hooks: Array<{ command: string }> }>)[0]?.hooks[0]); +assert.ok(petHook?.command.includes("--pet fixer")); + +const settings = { theme: "dark", hooks: { PreToolUse: [{ matcher: "Bash", hooks: [{ type: "command", command: "echo safe" }] }] } }; +const installed = addOpenPetsHooks(settings); +assert.equal(doctorStatus(installed), "installed"); +const installedForFixer = addOpenPetsHooks(settings, "published", "fixer"); +assert.equal(doctorStatus(installedForFixer, "fixer"), "installed"); +assert.equal(doctorStatus(installedForFixer), "needs_update"); +assert.ok(doctorClaudeHooks(doctorStatusPath(installedForFixer), "published", "fixer").message.includes("Hook events target fixer.")); +const reinstalled = addOpenPetsHooks(removeOpenPetsHooks(installed)); +assert.deepEqual(reinstalled, installed); +const uninstalled = removeOpenPetsHooks(installed); +assert.deepEqual(uninstalled, settings); +assert.throws(() => addOpenPetsHooks({ hooks: { UserPromptSubmit: { bad: true } } })); + +const stale = addOpenPetsHooks({}); +((stale.hooks as Record).Stop as unknown[]).push({ hooks: [{ type: "command", command: "npx -y @open-pets/claude hook --openpets-managed --old" }] }); +const stalePath = join(dir, "stale-settings.json"); +writeFileSync(stalePath, JSON.stringify(stale), "utf8"); +assert.equal(doctorClaudeHooks(stalePath).status, "needs_update"); +assert.equal(installClaudeHooks(stalePath).status, "installed"); + +const settingsPath = join(dir, "settings.json"); +writeFileSync(settingsPath, JSON.stringify(settings), "utf8"); +assert.equal(doctorClaudeHooks(settingsPath).status, "not_installed"); +assert.equal(installClaudeHooks(settingsPath).status, "installed"); +assert.equal(installClaudeHooks(settingsPath).changed, false); +assert.equal(uninstallClaudeHooks(settingsPath).status, "not_installed"); +assert.equal(uninstallClaudeHooks(settingsPath).changed, false); + +writeFileSync(settingsPath, JSON.stringify({ hooks: [] }), "utf8"); +assert.equal(doctorClaudeHooks(settingsPath).status, "error"); +writeFileSync(settingsPath, JSON.stringify({ hooks: { Stop: { bad: true } } }), "utf8"); +assert.equal(doctorClaudeHooks(settingsPath).status, "error"); +const symlinkPath = join(dir, "settings-link.json"); +symlinkSync(settingsPath, symlinkPath); +assert.equal(doctorClaudeHooks(symlinkPath).status, "error"); + +process.env.OPENPETS_DISABLE_CLAUDE_ASYNC_HOOKS = "1"; +assert.throws(() => installClaudeHooks(join(dir, "async-disabled.json"))); +delete process.env.OPENPETS_DISABLE_CLAUDE_ASYNC_HOOKS; + +const isolatedEnv = { ...process.env, OPENPETS_DISCOVERY_FILE: join(dir, "missing-ipc.json") }; +const normalHook = spawnSync(process.execPath, [new URL("./cli.js", import.meta.url).pathname, "hook", "--openpets-managed"], { input: JSON.stringify({ hook_event_name: "Notification", message: "safe" }), encoding: "utf8", env: isolatedEnv }); +assert.equal(normalHook.status, 0); +assert.equal(normalHook.stdout, ""); + +const petHookRun = spawnSync(process.execPath, [new URL("./cli.js", import.meta.url).pathname, "hook", "--openpets-managed", "--pet", "fixer"], { input: JSON.stringify({ hook_event_name: "Notification", message: "safe" }), encoding: "utf8", env: isolatedEnv }); +assert.equal(petHookRun.status, 0); +assert.equal(petHookRun.stdout, ""); + +const invalidPetHook = spawnSync(process.execPath, [new URL("./cli.js", import.meta.url).pathname, "hook", "--openpets-managed", "--pet", "bad/pet"], { input: JSON.stringify({ hook_event_name: "Notification", message: "safe" }), encoding: "utf8", env: isolatedEnv }); +assert.equal(invalidPetHook.status, 1); +const missingPetHook = spawnSync(process.execPath, [new URL("./cli.js", import.meta.url).pathname, "hook", "--openpets-managed", "--pet"], { input: JSON.stringify({ hook_event_name: "Notification", message: "safe" }), encoding: "utf8", env: isolatedEnv }); +assert.equal(missingPetHook.status, 1); + +const malformedHook = spawnSync(process.execPath, [new URL("./cli.js", import.meta.url).pathname, "hook", "--openpets-managed"], { input: "not json", encoding: "utf8", env: isolatedEnv }); +assert.equal(malformedHook.status, 0); +assert.equal(malformedHook.stdout, ""); + +} finally { + rmSync(dir, { recursive: true, force: true }); +} +console.error("Claude hooks validation passed."); + +function doctorStatus(value: Record, selectedPetId?: string) { + const path = doctorStatusPath(value); + return doctorClaudeHooks(path, "published", selectedPetId).status; +} + +function doctorStatusPath(value: Record) { + const path = join(dir, `settings-${Math.random()}.json`); + writeFileSync(path, JSON.stringify(value), "utf8"); + return path; +} diff --git a/packages/claude/src/claude-code.ts b/packages/claude/src/claude-code.ts new file mode 100644 index 00000000..f9ddbef8 --- /dev/null +++ b/packages/claude/src/claude-code.ts @@ -0,0 +1,265 @@ +import { dirname, isAbsolute, join, relative } from "node:path"; +import { fileURLToPath } from "node:url"; +import { lstatSync, realpathSync, statSync } from "node:fs"; + +export const claudeMcpServerName = "openpets"; +export const openPetsMcpPackageName = "@open-pets/mcp"; +export type OpenPetsCommandMode = "published" | "local" | "bundled"; + +export type ClaudeMcpScope = "user"; + +export interface ClaudeCommandSpec { + readonly command: string; + readonly args: readonly string[]; +} + +export interface ClaudeMcpPreview { + readonly commandMode: OpenPetsCommandMode; + readonly add: ClaudeCommandSpec; + readonly remove: ClaudeCommandSpec; + readonly mcpJson: { + readonly mcpServers: { + readonly openpets: { + readonly type: "stdio"; + readonly command: "npx" | "node"; + readonly args: readonly string[]; + }; + }; + }; + readonly displayCommand: string; +} + +export interface ParsedClaudeMcpEntry { + readonly present: boolean; + readonly command?: string; + readonly args?: readonly string[]; + readonly source: "none" | "list" | "get"; + readonly verified: boolean; + readonly matchesExpected: boolean; +} + +export function buildClaudeMcpPreview(selectedPetId?: string, commandMode: OpenPetsCommandMode = "published"): ClaudeMcpPreview { + const server = buildOpenPetsMcpServerCommand(selectedPetId, commandMode); + const addArgs = ["mcp", "add", "--scope", "user", claudeMcpServerName, "--", server.command, ...server.args] as const; + const removeArgs = ["mcp", "remove", "--scope", "user", claudeMcpServerName] as const; + const add: ClaudeCommandSpec = { command: "claude", args: addArgs }; + + return { + commandMode, + add, + remove: { command: "claude", args: removeArgs }, + mcpJson: { + mcpServers: { + openpets: { + type: "stdio", + command: server.command, + args: server.args, + }, + }, + }, + displayCommand: formatCommandForDisplay(add), + }; +} + +export function buildOpenPetsMcpArgs(selectedPetId?: string): readonly string[] { + if (selectedPetId === undefined) return ["-y", openPetsMcpPackageName]; + validateOpenPetsPetArg(selectedPetId); + return ["-y", openPetsMcpPackageName, "--pet", selectedPetId]; +} + +export function buildOpenPetsMcpServerCommand(selectedPetId?: string, commandMode: OpenPetsCommandMode = "published"): { readonly command: "npx" | "node"; readonly args: readonly string[] } { + if (commandMode === "local" || commandMode === "bundled") { + const entryPath = commandMode === "bundled" ? getBundledMcpEntryPath() : getLocalMcpEntryPath(); + commandMode === "bundled" ? assertBundledMcpEntryPath() : assertLocalMcpEntryPath(); + if (selectedPetId === undefined) return { command: "node", args: [entryPath] }; + validateOpenPetsPetArg(selectedPetId); + return { command: "node", args: [entryPath, "--pet", selectedPetId] }; + } + return { command: "npx", args: buildOpenPetsMcpArgs(selectedPetId) }; +} + +export function assertLocalMcpEntryPath(): void { + assertSafeLocalDistFile(getLocalMcpEntryPath(), "MCP entry"); +} + +export function getLocalMcpEntryPath(): string { + return getSiblingMcpEntryPath(); +} + +export function getBundledMcpEntryPath(): string { + return mapAsarPathToUnpacked(getSiblingMcpEntryPath()); +} + +export function mapAsarPathToUnpacked(path: string): string { + return path.replace(/(^|[\\/])app\.asar(?=$|[\\/])/, "$1app.asar.unpacked"); +} + +function getSiblingMcpEntryPath(): string { + const here = dirname(fileURLToPath(import.meta.url)); + return join(here, "..", "..", "mcp", "dist", "index.js"); +} + +export function assertBundledMcpEntryPath(): void { + assertSafeBundledDistFile(getBundledMcpEntryPath(), "MCP entry"); +} + +export function buildClaudeMcpGetCommand(): ClaudeCommandSpec { + return { command: "claude", args: ["mcp", "get", claudeMcpServerName] }; +} + +export function validateOpenPetsPetArg(value: string): string { + const trimmed = value.trim(); + if (trimmed !== value || trimmed.length < 1) throw new Error("Invalid OpenPets pet id."); + if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(trimmed)) throw new Error("Invalid OpenPets pet id."); + return trimmed; +} + +export function parseClaudeMcpListOutput(output: string): ParsedClaudeMcpEntry { + const normalized = output.toLowerCase(); + const present = /(^|\s|[•*-])openpets(\s|$|:|-)/m.test(normalized) || normalized.includes("openpets:"); + return { + present, + source: present ? "list" : "none", + verified: false, + matchesExpected: false, + }; +} + +export function parseClaudeMcpGetOutput(output: string, expectedPetId?: string, commandMode: OpenPetsCommandMode = "published"): ParsedClaudeMcpEntry { + const text = output.trim(); + if (!text) return { present: false, source: "none", verified: false, matchesExpected: false }; + + const parsed = tryParseJson(text); + const expected = buildOpenPetsMcpServerCommand(expectedPetId, commandMode); + const jsonEntry = parsed ? extractJsonEntry(parsed) : null; + if (jsonEntry) { + const matchesExpected = jsonEntry.command === expected.command && arraysEqual(jsonEntry.args, expected.args); + return { present: true, command: jsonEntry.command, args: jsonEntry.args, source: "get", verified: true, matchesExpected }; + } + + const command = extractTextCommand(text); + const args = extractTextArgs(text); + if (command && args) { + const matchesExpected = command === expected.command && arraysEqual(args, expected.args); + return { present: true, command, args, source: "get", verified: true, matchesExpected }; + } + + if (/openpets/i.test(text) || /@open-pets\/mcp/i.test(text)) { + return { present: true, source: "get", verified: false, matchesExpected: false }; + } + + return { present: false, source: "none", verified: false, matchesExpected: false }; +} + +export function classifyClaudeMcpStatus(listOutput: string, getOutput: string | undefined, expectedPetId?: string, commandMode: OpenPetsCommandMode = "published"): ParsedClaudeMcpEntry { + if (getOutput) { + const parsedGet = parseClaudeMcpGetOutput(getOutput, expectedPetId, commandMode); + if (parsedGet.present) return parsedGet; + } + return parseClaudeMcpListOutput(listOutput); +} + +export function formatCommandForDisplay(spec: ClaudeCommandSpec): string { + return [spec.command, ...spec.args].map(quoteArg).join(" "); +} + +function quoteArg(value: string): string { + if (/^[a-zA-Z0-9_@%+=:,./-]+$/.test(value)) return value; + if (/[\r\n"]/.test(value) || value.includes("\0")) throw new Error("Command argument contains unsupported shell characters."); + return `"${value.replaceAll("\\", "\\\\").replaceAll("$", "\\$").replaceAll("`", "\\`")}"`; +} + +function tryParseJson(value: string): unknown { + try { + return JSON.parse(value) as unknown; + } catch { + return null; + } +} + +function extractJsonEntry(value: unknown): { readonly command: string; readonly args: readonly string[] } | null { + const record = isRecord(value) ? value : null; + const maybeEntry = record && isRecord(record.mcpServers) && isRecord(record.mcpServers.openpets) + ? record.mcpServers.openpets + : record; + + if (!isRecord(maybeEntry) || typeof maybeEntry.command !== "string" || !Array.isArray(maybeEntry.args)) return null; + if (!maybeEntry.args.every((arg) => typeof arg === "string")) return null; + return { command: maybeEntry.command, args: maybeEntry.args as string[] }; +} + +function extractTextCommand(value: string): string | undefined { + const match = value.match(/(?:^|\n)\s*Command\s*:\s*([^\s\n]+)/i) ?? value.match(/(?:^|\n)\s*command\s+([^\s\n]+)/i); + return match?.[1]; +} + +function extractTextArgs(value: string): readonly string[] | undefined { + const jsonArgs = value.match(/(?:^|\n)\s*Args\s*:\s*(\[[^\n]+\])/i); + if (jsonArgs?.[1]) { + const parsed = tryParseJson(jsonArgs[1]); + if (Array.isArray(parsed) && parsed.every((arg) => typeof arg === "string")) return parsed as string[]; + } + + const textArgs = value.match(/(?:^|\n)\s*Args\s*:\s*(.+)$/im); + if (!textArgs?.[1]) return undefined; + return splitSimpleArgs(textArgs[1]); +} + +function splitSimpleArgs(value: string): readonly string[] { + const args: string[] = []; + let current = ""; + let quote: '"' | "'" | null = null; + for (let index = 0; index < value.length; index += 1) { + const char = value[index]; + if (quote) { + if (char === quote) quote = null; + else current += char; + continue; + } + if (char === '"' || char === "'") { + quote = char; + continue; + } + if (/\s/.test(char)) { + if (current) { + args.push(current); + current = ""; + } + continue; + } + current += char; + } + if (current) args.push(current); + return args; +} + +function arraysEqual(a: readonly string[], b: readonly string[]): boolean { + return a.length === b.length && a.every((value, index) => value === b[index]); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} + +function assertSafeLocalDistFile(path: string, label: string): void { + const expectedPrefix = join(dirname(fileURLToPath(import.meta.url)), "..", ".."); + if (!path.startsWith(expectedPrefix)) throw new Error(`Local ${label} path is outside the OpenPets workspace.`); + const stat = statSync(path); + if (!stat.isFile()) throw new Error(`Local ${label} path is not a regular file.`); +} + +function assertSafeBundledDistFile(path: string, label: string): void { + if (isTrueAsarPath(path)) throw new Error(`Bundled ${label} path must be unpacked outside app.asar.`); + if (path.includes("\n") || path.includes("\r") || path.includes("\0")) throw new Error(`Bundled ${label} path contains unsupported characters.`); + if (lstatSync(path).isSymbolicLink()) throw new Error(`Bundled ${label} path must not be a symlink.`); + const stat = statSync(path); + if (!stat.isFile()) throw new Error(`Bundled ${label} path is not a regular file.`); + const expectedRoot = realpathSync(mapAsarPathToUnpacked(join(dirname(fileURLToPath(import.meta.url)), "..", ".."))); + const realPath = realpathSync(path); + const rel = relative(expectedRoot, realPath); + if (rel.startsWith("..") || isAbsolute(rel)) throw new Error(`Bundled ${label} path is outside the packaged OpenPets resources.`); +} + +function isTrueAsarPath(path: string): boolean { + return /app\.asar(?:$|[\\/])/.test(path) && !/app\.asar\.unpacked(?:$|[\\/])/.test(path); +} diff --git a/packages/claude/src/cli.ts b/packages/claude/src/cli.ts new file mode 100644 index 00000000..8fe031e0 --- /dev/null +++ b/packages/claude/src/cli.ts @@ -0,0 +1,51 @@ +#!/usr/bin/env node +import { runClaudeHookFromStdin } from "./hooks.js"; +import { doctorClaudeHooks, installClaudeHooks, uninstallClaudeHooks } from "./hook-settings.js"; +import { validateOpenPetsPetArg } from "./claude-code.js"; + +async function main(): Promise { + const [command, ...args] = process.argv.slice(2); + if (command === "hook") { + const code = await runClaudeHookFromStdin(process.stdin, { configuredPetId: readPetArg(args), projectLocal: hasProjectLocalArg(args), debug: process.env.OPENPETS_DEBUG === "1" }); + process.exitCode = code; + return; + } + if (command === "doctor-hooks") { + process.stderr.write(`${JSON.stringify(doctorClaudeHooks(readPathArg(args), undefined, readPetArg(args)), null, 2)}\n`); + return; + } + if (command === "install-hooks") { + process.stderr.write(`${JSON.stringify(installClaudeHooks(readPathArg(args), undefined, readPetArg(args)), null, 2)}\n`); + return; + } + if (command === "uninstall-hooks") { + process.stderr.write(`${JSON.stringify(uninstallClaudeHooks(readPathArg(args)), null, 2)}\n`); + return; + } + process.stderr.write("Usage: open-pets-claude [--settings ] [--pet ]\n"); + process.exitCode = 1; +} + +function readPathArg(args: readonly string[]): string | undefined { + const index = args.indexOf("--settings"); + const value = index >= 0 ? args[index + 1] : undefined; + return value && value.length > 0 ? value : undefined; +} + +function readPetArg(args: readonly string[]): string | undefined { + const equals = args.find((arg) => arg.startsWith("--pet=")); + if (equals) return validateOpenPetsPetArg(equals.slice("--pet=".length)); + const index = args.indexOf("--pet"); + const value = index >= 0 ? args[index + 1] : undefined; + if (index >= 0 && (!value || value.startsWith("--"))) throw new Error("Missing value for --pet."); + return value && value.length > 0 ? validateOpenPetsPetArg(value) : undefined; +} + +function hasProjectLocalArg(args: readonly string[]): boolean { + return args.includes("--project-local"); +} + +main().catch((error: unknown) => { + process.stderr.write(`OpenPets Claude CLI failed: ${error instanceof Error ? error.message : String(error)}\n`); + process.exitCode = 1; +}); diff --git a/packages/claude/src/hook-messages.ts b/packages/claude/src/hook-messages.ts new file mode 100644 index 00000000..8765968a --- /dev/null +++ b/packages/claude/src/hook-messages.ts @@ -0,0 +1 @@ +export { hookSpeechPools, pickHookSpeech, type HookSpeechCategory } from "@open-pets/agent-events"; diff --git a/packages/claude/src/hook-settings.ts b/packages/claude/src/hook-settings.ts new file mode 100644 index 00000000..a8f0718c --- /dev/null +++ b/packages/claude/src/hook-settings.ts @@ -0,0 +1,248 @@ +import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync } from "node:fs"; +import { dirname, isAbsolute, join, relative } from "node:path"; +import { homedir } from "node:os"; +import { fileURLToPath } from "node:url"; + +import { mapAsarPathToUnpacked, validateOpenPetsPetArg, type OpenPetsCommandMode } from "./claude-code.js"; + +export const openPetsHookMarker = "--openpets-managed"; +export const claudeHookEvents = ["UserPromptSubmit", "PreToolUse", "PermissionRequest", "Notification", "Stop", "StopFailure"] as const; + +export type ClaudeHookInstallStatus = "not_installed" | "installed" | "needs_update" | "error"; + +export interface ClaudeHookDoctorResult { + readonly status: ClaudeHookInstallStatus; + readonly settingsPath: string; + readonly exists: boolean; + readonly valid: boolean; + readonly message: string; + readonly backupPath?: string; + readonly preview: Record; + readonly asyncSupported: boolean; +} + +export interface ClaudeHookWriteResult extends ClaudeHookDoctorResult { + readonly changed: boolean; +} + +export function getClaudeUserSettingsPath(): string { + return join(homedir(), ".claude", "settings.json"); +} + +export function createOpenPetsHookCommand(commandMode: OpenPetsCommandMode = "published", selectedPetId?: string): string { + const petArgs = selectedPetId === undefined ? "" : ` --pet ${shellQuote(validateOpenPetsPetArg(selectedPetId))}`; + if (commandMode === "local" || commandMode === "bundled") { + const cliPath = commandMode === "bundled" ? getBundledClaudeCliPath() : getLocalClaudeCliPath(); + commandMode === "bundled" ? assertBundledClaudeCliPath() : assertLocalClaudeCliPath(); + return `node ${shellQuote(cliPath)} hook ${openPetsHookMarker}${petArgs}`; + } + return `npx -y @open-pets/claude hook ${openPetsHookMarker}${petArgs}`; +} + +export function getLocalClaudeCliPath(): string { + return join(dirname(fileURLToPath(import.meta.url)), "cli.js"); +} + +export function getBundledClaudeCliPath(): string { + return mapAsarPathToUnpacked(getLocalClaudeCliPath()); +} + +export function assertLocalClaudeCliPath(): void { + const path = getLocalClaudeCliPath(); + const expectedPrefix = dirname(fileURLToPath(import.meta.url)); + if (!path.startsWith(expectedPrefix)) throw new Error("Local Claude hook path is outside the OpenPets package."); + const stat = statSync(path); + if (!stat.isFile()) throw new Error("Local Claude hook CLI path is not a regular file."); +} + +export function assertBundledClaudeCliPath(): void { + const path = getBundledClaudeCliPath(); + if (isTrueAsarPath(path)) throw new Error("Bundled Claude hook CLI path must be unpacked outside app.asar."); + if (path.includes("\n") || path.includes("\r") || path.includes("\0")) throw new Error("Bundled Claude hook CLI path contains unsupported characters."); + if (lstatSync(path).isSymbolicLink()) throw new Error("Bundled Claude hook CLI path must not be a symlink."); + const stat = statSync(path); + if (!stat.isFile()) throw new Error("Bundled Claude hook CLI path is not a regular file."); + const expectedRoot = realpathSync(mapAsarPathToUnpacked(join(dirname(fileURLToPath(import.meta.url)), "..", ".."))); + const realPath = realpathSync(path); + const rel = relative(expectedRoot, realPath); + if (rel.startsWith("..") || isAbsolute(rel)) throw new Error("Bundled Claude hook CLI path is outside the packaged OpenPets resources."); +} + +function isTrueAsarPath(path: string): boolean { + return /app\.asar(?:$|[\\/])/.test(path) && !/app\.asar\.unpacked(?:$|[\\/])/.test(path); +} + +export function createOpenPetsHookSettingsPreview(commandMode: OpenPetsCommandMode = "published", selectedPetId?: string): Record { + const hooks: Record = {}; + for (const event of claudeHookEvents) { + hooks[event] = [{ hooks: [createHookCommandEntry(commandMode, selectedPetId)] }]; + } + return { hooks }; +} + +export function doctorClaudeHooks(settingsPath = getClaudeUserSettingsPath(), commandMode: OpenPetsCommandMode = "published", selectedPetId?: string): ClaudeHookDoctorResult { + const preview = createOpenPetsHookSettingsPreview(commandMode, selectedPetId); + const asyncSupported = isClaudeHookAsyncSupported(); + try { + const settings = readClaudeSettings(settingsPath); + const status = getHookInstallStatus(settings, commandMode, selectedPetId); + return { + status, + settingsPath, + exists: existsSync(settingsPath), + valid: true, + message: `${asyncSupported ? status === "installed" ? "OpenPets Claude hooks are installed. Async hook install is enabled by OpenPets." : status === "needs_update" ? "OpenPets Claude hooks need update. Async hook install is enabled by OpenPets." : "OpenPets Claude hooks are not installed. Async hook install is enabled by OpenPets." : "Async hook install is disabled by OpenPets."} ${selectedPetId ? `Hook events target ${selectedPetId}.` : "Hook events target the default pet."}`, + preview, + asyncSupported, + }; + } catch (error) { + return { status: "error", settingsPath, exists: existsSync(settingsPath), valid: false, message: error instanceof Error ? error.message : "Claude hook settings are invalid.", preview, asyncSupported }; + } +} + +export function installClaudeHooks(settingsPath = getClaudeUserSettingsPath(), commandMode: OpenPetsCommandMode = "published", selectedPetId?: string): ClaudeHookWriteResult { + if (!isClaudeHookAsyncSupported()) throw new Error("Claude async hook support is not enabled for this OpenPets build."); + const settings = readClaudeSettings(settingsPath); + const status = getHookInstallStatus(settings, commandMode, selectedPetId); + if (status === "installed") return { ...doctorClaudeHooks(settingsPath, commandMode, selectedPetId), changed: false }; + const backupPath = backupSettings(settingsPath); + const next = addOpenPetsHooks(removeOpenPetsHooks(settings), commandMode, selectedPetId); + writeClaudeSettings(settingsPath, next); + return { ...doctorClaudeHooks(settingsPath, commandMode, selectedPetId), backupPath, changed: true }; +} + +export function uninstallClaudeHooks(settingsPath = getClaudeUserSettingsPath(), commandMode: OpenPetsCommandMode = "published"): ClaudeHookWriteResult { + const settings = readClaudeSettings(settingsPath); + const status = getHookInstallStatus(settings, commandMode); + if (status === "not_installed") return { ...doctorClaudeHooks(settingsPath, commandMode), changed: false }; + const backupPath = backupSettings(settingsPath); + const next = removeOpenPetsHooks(settings); + writeClaudeSettings(settingsPath, next); + return { ...doctorClaudeHooks(settingsPath, commandMode), backupPath, changed: true }; +} + +export function addOpenPetsHooks(settings: Record, commandMode: OpenPetsCommandMode = "published", selectedPetId?: string): Record { + const next = structuredClone(settings) as Record; + assertSelectedHookEventsAreArrays(next); + const hooks = isRecord(next.hooks) ? { ...next.hooks } : {}; + for (const event of claudeHookEvents) { + const existing = Array.isArray(hooks[event]) ? hooks[event].filter((entry) => !containsOpenPetsHook(entry)) : []; + hooks[event] = [...existing, { hooks: [createHookCommandEntry(commandMode, selectedPetId)] }]; + } + next.hooks = hooks; + return next; +} + +export function removeOpenPetsHooks(settings: Record): Record { + const next = structuredClone(settings) as Record; + if (!isRecord(next.hooks)) return next; + assertSelectedHookEventsAreArrays(next); + const hooks: Record = { ...next.hooks }; + for (const [event, entries] of Object.entries(hooks)) { + if (!Array.isArray(entries)) continue; + const cleaned = entries.map(removeOpenPetsHooksFromMatcher).filter((entry) => entry !== null); + if (cleaned.length > 0) hooks[event] = cleaned; + else delete hooks[event]; + } + if (Object.keys(hooks).length > 0) next.hooks = hooks; + else delete next.hooks; + return next; +} + +function getHookInstallStatus(settings: Record, commandMode: OpenPetsCommandMode, selectedPetId?: string): ClaudeHookInstallStatus { + if (settings.hooks !== undefined && !isRecord(settings.hooks)) throw new Error("Claude settings hooks field is not an object."); + const hooks = isRecord(settings.hooks) ? settings.hooks : {}; + let foundAny = false; + let staleManaged = false; + for (const event of claudeHookEvents) { + const entries = hooks[event]; + if (!Array.isArray(entries)) return foundAny ? "needs_update" : "not_installed"; + const currentCount = entries.filter((entry) => containsCurrentOpenPetsHook(entry, commandMode, selectedPetId)).length; + const managedCount = entries.filter((entry) => containsOpenPetsHook(entry)).length; + const hasCurrent = currentCount === 1; + if (managedCount > 0) foundAny = true; + if (managedCount !== currentCount || currentCount > 1) staleManaged = true; + if (!hasCurrent) return foundAny ? "needs_update" : "not_installed"; + foundAny = true; + } + return staleManaged ? "needs_update" : "installed"; +} + +function createHookCommandEntry(commandMode: OpenPetsCommandMode, selectedPetId?: string): Record { + return { type: "command", command: createOpenPetsHookCommand(commandMode, selectedPetId), timeout: 3, async: true, asyncRewake: false }; +} + +function containsCurrentOpenPetsHook(value: unknown, commandMode: OpenPetsCommandMode, selectedPetId?: string): boolean { + if (!isRecord(value) || !Array.isArray(value.hooks)) return false; + const command = createOpenPetsHookCommand(commandMode, selectedPetId); + return value.hooks.some((hook) => isRecord(hook) && hook.type === "command" && hook.command === command && hook.timeout === 3 && hook.async === true && hook.asyncRewake === false); +} + +function containsOpenPetsHook(value: unknown): boolean { + if (isRecord(value) && typeof value.command === "string" && value.command.includes(openPetsHookMarker)) return true; + if (isRecord(value) && Array.isArray(value.hooks)) return value.hooks.some(containsOpenPetsHook); + return false; +} + +function removeOpenPetsHooksFromMatcher(value: unknown): unknown | null { + if (!isRecord(value) || !Array.isArray(value.hooks)) return containsOpenPetsHook(value) ? null : value; + const hooks = value.hooks.filter((hook) => !containsOpenPetsHook(hook)); + if (hooks.length === 0) return null; + return { ...value, hooks }; +} + +function readClaudeSettings(path: string): Record { + assertSafeSettingsPath(path); + if (!existsSync(path)) return {}; + const parsed = JSON.parse(readFileSync(path, "utf8")) as unknown; + if (!isRecord(parsed) || Array.isArray(parsed)) throw new Error("Claude settings must be a JSON object."); + if (parsed.hooks !== undefined && !isRecord(parsed.hooks)) throw new Error("Claude settings hooks field is not an object."); + assertSelectedHookEventsAreArrays(parsed); + return parsed; +} + +function assertSelectedHookEventsAreArrays(settings: Record): void { + if (!isRecord(settings.hooks)) return; + for (const event of claudeHookEvents) { + if (settings.hooks[event] !== undefined && !Array.isArray(settings.hooks[event])) { + throw new Error(`Claude settings hooks.${event} must be an array.`); + } + } +} + +function isClaudeHookAsyncSupported(): boolean { + return process.env.OPENPETS_DISABLE_CLAUDE_ASYNC_HOOKS !== "1"; +} + +function shellQuote(value: string): string { + if (/^[a-zA-Z0-9_@%+=:,./-]+$/.test(value)) return value; + if (/[\r\n"]/.test(value) || value.includes("\0")) throw new Error("Local Claude hook path contains unsupported shell characters."); + return `"${value.replaceAll("\\", "\\\\").replaceAll("$", "\\$").replaceAll("`", "\\`")}"`; +} + +function writeClaudeSettings(path: string, settings: Record): void { + assertSafeSettingsPath(path); + mkdirSync(dirname(path), { recursive: true, mode: 0o700 }); + const tempPath = `${path}.${process.pid}.tmp`; + writeFileSync(tempPath, `${JSON.stringify(settings, null, 2)}\n`, { encoding: "utf8", mode: 0o600 }); + renameSync(tempPath, path); +} + +function backupSettings(path: string): string | undefined { + if (!existsSync(path)) return undefined; + assertSafeSettingsPath(path); + const backupPath = `${path}.openpets-backup-${new Date().toISOString().replace(/[-:]/g, "").replace(/\.\d{3}Z$/, "Z")}.json`; + writeFileSync(backupPath, readFileSync(path), { mode: 0o600 }); + try { chmodSync(backupPath, 0o600); } catch { /* best effort */ } + return backupPath; +} + +function assertSafeSettingsPath(path: string): void { + if (!existsSync(path)) return; + const stat = lstatSync(path); + if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("Claude settings path must be a regular file."); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} diff --git a/packages/claude/src/hooks.ts b/packages/claude/src/hooks.ts new file mode 100644 index 00000000..5ae960e5 --- /dev/null +++ b/packages/claude/src/hooks.ts @@ -0,0 +1,229 @@ +import { lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync } from "node:fs"; +import { dirname, isAbsolute, join, relative } from "node:path"; +import { homedir, tmpdir, userInfo } from "node:os"; + +import { createOpenPetsClient, type OpenPetsClient, type OpenPetsReaction, OpenPetsClientError } from "@open-pets/client"; +import { validateHookSpeech as validateSharedHookSpeech } from "@open-pets/agent-events"; + +import { pickHookSpeech, type HookSpeechCategory } from "./hook-messages.js"; + +export type ClaudeHookEventName = "UserPromptSubmit" | "PreToolUse" | "PermissionRequest" | "Notification" | "Stop" | "StopFailure"; + +export interface ClaudeHookDecision { + readonly eventName?: string; + readonly reaction?: OpenPetsReaction; + readonly speechCategory?: HookSpeechCategory; +} + +export interface ClaudeHookOptions { + readonly client?: OpenPetsClient; + readonly configuredPetId?: string; + readonly projectLocal?: boolean; + readonly now?: () => number; + readonly random?: () => number; + readonly throttlePath?: string; + readonly debug?: boolean; +} + +const maxHookInputBytes = 64 * 1024; +const maxProjectLocalSettingsBytes = 256 * 1024; +const speechCooldownMs = 20_000; +const permissionCooldownMs = 3_000; +const reactionCooldownMs = 10_000; + +export async function runClaudeHookFromStdin(stdin: NodeJS.ReadStream = process.stdin, options: ClaudeHookOptions = {}): Promise { + try { + const raw = await readLimitedStdin(stdin, maxHookInputBytes); + await handleClaudeHookPayload(raw, options); + return 0; + } catch (error) { + if (options.debug || process.env.OPENPETS_DEBUG === "1") { + process.stderr.write(`OpenPets Claude hook ignored error: ${sanitizeDebugError(error)}\n`); + } + return 0; + } +} + +export async function handleClaudeHookPayload(raw: string, options: ClaudeHookOptions = {}): Promise { + let parsed: Record; + try { + parsed = parseHookPayload(raw); + } catch { + return null; + } + const decision = mapClaudeHookEvent(parsed); + if (!decision?.reaction) return decision; + if (!options.projectLocal && hasProjectLocalOpenPetsHook()) return decision; + + const shouldSpeak = decision.speechCategory ? shouldSendSpeech(decision.speechCategory, options) : false; + const shouldReact = shouldSendReaction(decision.reaction, options); + if (!shouldSpeak && !shouldReact) return decision; + + const client = options.client ?? createOpenPetsClient({ connectTimeoutMs: 500, responseTimeoutMs: 500 }); + const lease = options.configuredPetId ? await acquireHookLease(client, options.configuredPetId, options.debug) : undefined; + try { + if (decision.speechCategory && shouldSpeak) { + const message = validateHookSpeech(pickHookSpeech(decision.speechCategory, options.random)); + await client.say(message, { reaction: decision.reaction, leaseId: lease?.leaseId }); + } else { + await client.react(decision.reaction, { leaseId: lease?.leaseId }); + } + } catch (error) { + if (!(error instanceof OpenPetsClientError) && options.debug) { + process.stderr.write(`OpenPets Claude hook client error: ${sanitizeDebugError(error)}\n`); + } + } + return decision; +} + +export function hasProjectLocalOpenPetsHook(projectDir = process.env.CLAUDE_PROJECT_DIR): boolean { + if (!projectDir || /[\0\r\n]/.test(projectDir)) return false; + try { + const projectReal = realpathSync(projectDir); + const settingsPath = join(projectReal, ".claude", "settings.local.json"); + const settingsReal = realpathSync(settingsPath); + const rel = relative(projectReal, settingsReal); + if (rel.startsWith("..") || isAbsolute(rel)) return false; + const settingsLstat = lstatSync(settingsPath); + if (settingsLstat.isSymbolicLink()) return false; + const settingsStat = statSync(settingsPath); + if (!settingsStat.isFile() || settingsStat.size <= 0 || settingsStat.size > maxProjectLocalSettingsBytes) return false; + const settings = JSON.parse(readFileSync(settingsPath, "utf8")) as unknown; + return containsProjectLocalOpenPetsHook(settings); + } catch { + return false; + } +} + +function containsProjectLocalOpenPetsHook(value: unknown): boolean { + if (typeof value === "string") return value.includes("--openpets-managed") && value.includes("--project-local"); + if (Array.isArray(value)) return value.some(containsProjectLocalOpenPetsHook); + if (isRecord(value)) return Object.values(value).some(containsProjectLocalOpenPetsHook); + return false; +} + +async function acquireHookLease(client: OpenPetsClient, requestedPetId: string, debug = false): Promise<{ readonly leaseId: string } | undefined> { + try { + return await client.acquireLease({ requestedPetId }); + } catch (error) { + if (debug) process.stderr.write(`OpenPets Claude hook lease unavailable: ${sanitizeDebugError(error)}\n`); + return undefined; + } +} + +export function parseHookPayload(raw: string): Record { + if (Buffer.byteLength(raw, "utf8") > maxHookInputBytes) throw new Error("Claude hook payload is too large."); + const parsed = JSON.parse(raw || "{}") as unknown; + return isRecord(parsed) ? parsed : {}; +} + +export function mapClaudeHookEvent(payload: Record): ClaudeHookDecision | null { + const eventName = typeof payload.hook_event_name === "string" ? payload.hook_event_name : undefined; + if (eventName === "UserPromptSubmit") return { eventName, reaction: "thinking" }; + if (eventName === "PermissionRequest") return { eventName, reaction: "waiting", speechCategory: "permission" }; + if (eventName === "Notification") return { eventName }; + if (eventName === "Stop") return { eventName, reaction: "success" }; + if (eventName === "StopFailure") return { eventName, reaction: "error", speechCategory: "error" }; + if (eventName === "PreToolUse") return { eventName, reaction: classifyToolReaction(payload) }; + return eventName ? { eventName } : null; +} + +export function validateHookSpeech(message: string): string { + return validateSharedHookSpeech(message); +} + +export function getDefaultThrottlePath(): string { + if (process.platform === "win32") { + const base = process.env.LOCALAPPDATA || join(homedir(), "AppData", "Local"); + return join(base, "OpenPets", "claude-hook-throttle.json"); + } + const stateHome = process.env.XDG_STATE_HOME || join(homedir(), ".local", "state"); + if (stateHome) return join(stateHome, "openpets", "claude-hook-throttle.json"); + const uid = safeUid(); + return join(tmpdir(), `openpets-${uid}`, "claude-hook-throttle.json"); +} + +function classifyToolReaction(payload: Record): OpenPetsReaction | undefined { + const toolName = typeof payload.tool_name === "string" ? payload.tool_name : ""; + if (toolName === "Edit" || toolName === "Write" || toolName === "MultiEdit") return "editing"; + if (toolName === "Bash") { + const command = extractBashCommand(payload.tool_input); + return /\b(test|vitest|jest|pytest|npm\s+test|pnpm\s+test|yarn\s+test|cargo\s+test|go\s+test)\b/i.test(command) ? "testing" : undefined; + } + return undefined; +} + +function extractBashCommand(value: unknown): string { + return isRecord(value) && typeof value.command === "string" ? value.command.slice(0, 300) : ""; +} + +function shouldSendSpeech(category: HookSpeechCategory, options: ClaudeHookOptions): boolean { + const now = options.now?.() ?? Date.now(); + const cooldown = category === "permission" ? permissionCooldownMs : speechCooldownMs; + return shouldSendThrottleKey(category, cooldown, now, options.throttlePath ?? getDefaultThrottlePath()); +} + +function shouldSendReaction(reaction: OpenPetsReaction, options: ClaudeHookOptions): boolean { + const now = options.now?.() ?? Date.now(); + return shouldSendThrottleKey(`reaction:${reaction}`, reactionCooldownMs, now, options.throttlePath ?? getDefaultThrottlePath()); +} + +function shouldSendThrottleKey(key: string, cooldown: number, now: number, path: string): boolean { + const state = readThrottleState(path); + const previous = typeof state[key] === "number" ? state[key] : 0; + if (now - previous < cooldown) return false; + state[key] = now; + writeThrottleState(path, state); + return true; +} + +function readThrottleState(path: string): Record { + try { + const parsed = JSON.parse(readFileSync(path, "utf8")) as unknown; + if (!isRecord(parsed)) return {}; + const state: Record = {}; + for (const [key, value] of Object.entries(parsed)) { + if ((key === "thinking" || key === "success" || key === "error" || key === "permission" || key.startsWith("reaction:")) && typeof value === "number" && Number.isFinite(value)) state[key] = value; + } + return state; + } catch { + return {}; + } +} + +function writeThrottleState(path: string, state: Record): void { + try { + mkdirSync(dirname(path), { recursive: true, mode: 0o700 }); + const tempPath = `${path}.${process.pid}.tmp`; + writeFileSync(tempPath, `${JSON.stringify(state)}\n`, { encoding: "utf8", mode: 0o600 }); + renameSync(tempPath, path); + } catch { + // Best effort only; throttling must never break hooks. + } +} + +function readLimitedStdin(stdin: NodeJS.ReadStream, maxBytes: number): Promise { + return new Promise((resolve, reject) => { + let buffer = ""; + stdin.setEncoding("utf8"); + stdin.on("data", (chunk: string) => { + buffer += chunk; + if (Buffer.byteLength(buffer, "utf8") > maxBytes) reject(new Error("Claude hook stdin is too large.")); + }); + stdin.on("error", reject); + stdin.on("end", () => resolve(buffer)); + }); +} + +function sanitizeDebugError(error: unknown): string { + const message = error instanceof Error ? error.message : String(error); + return message.replace(/(?:[A-Za-z]:)?[\\/][^\s"']{2,}/g, "").slice(0, 200); +} + +function safeUid(): string { + try { return String(userInfo().uid); } catch { return "user"; } +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} diff --git a/packages/claude/src/index.ts b/packages/claude/src/index.ts new file mode 100644 index 00000000..64cd3d33 --- /dev/null +++ b/packages/claude/src/index.ts @@ -0,0 +1,6 @@ +export const claudePackageName = "@open-pets/claude"; + +export * from "./claude-code.js"; +export * from "./hooks.js"; +export * from "./hook-settings.js"; +export * from "./hook-messages.js"; diff --git a/packages/claude/tsconfig.json b/packages/claude/tsconfig.json new file mode 100644 index 00000000..762e7118 --- /dev/null +++ b/packages/claude/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/cli/package.json b/packages/cli/package.json new file mode 100644 index 00000000..ccfeaf77 --- /dev/null +++ b/packages/cli/package.json @@ -0,0 +1,44 @@ +{ + "name": "@open-pets/cli", + "version": "2.0.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "packages/cli" + }, + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "bin": { + "openpets": "dist/index.js" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "test": "node dist/check-cli-contract.js", + "check": "pnpm typecheck && pnpm build && pnpm test", + "typecheck": "tsc --noEmit", + "build": "tsc" + }, + "devDependencies": { + "@types/node": "^25.6.2", + "typescript": "^6.0.3" + }, + "dependencies": { + "@open-pets/client": "workspace:*", + "@open-pets/claude": "workspace:*", + "@open-pets/mcp": "workspace:*", + "@open-pets/opencode": "workspace:*" + } +} diff --git a/packages/cli/src/check-cli-contract.ts b/packages/cli/src/check-cli-contract.ts new file mode 100644 index 00000000..06e90e24 --- /dev/null +++ b/packages/cli/src/check-cli-contract.ts @@ -0,0 +1,182 @@ +import assert from "node:assert/strict"; +import { spawnSync } from "node:child_process"; +import { chmodSync, mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { realpathSync } from "node:fs"; +import { tmpdir } from "node:os"; + +import { assertSafeProjectHookPath, cliPackageName, configureProject, createClaudeMcpAddJsonArgs, createLocalDevCliCommand, createVersionPinnedCliCommand, installProjectLocalHooks, parseConfigureArgs, resolveConfiguredPet, runClaudeMcpAddJson } from "./index.js"; + +const parsed = parseConfigureArgs(["--agent", "claude", "--pet", "fixer", "--cwd", "/tmp/project", "--yes"]); +assert.equal(parsed.agent, "claude"); +assert.equal(parsed.petId, "fixer"); +assert.equal(parsed.cwd, "/tmp/project"); +assert.equal(parsed.yes, true); +assert.equal(parseConfigureArgs(["--pet", "fixer", "--force"]).force, true); +assert.equal(parseConfigureArgs(["--pet", "fixer", "--replace"]).force, true); +assert.equal(parseConfigureArgs(["--pet", "fixer", "--local-dev"]).localDev, true); +assert.equal(parseConfigureArgs(["--pet=fixer"]).petId, "fixer"); +assert.equal(parseConfigureArgs(["--agent", "opencode", "--pet", "fixer"]).agent, "opencode"); +assert.throws(() => parseConfigureArgs(["--agent", "cursor"])); +assert.throws(() => parseConfigureArgs(["--pet", "bad/pet"])); + +const pinned = createVersionPinnedCliCommand("1.2.3", ["mcp", "--pet", "fixer"]); +assert.deepEqual(pinned, { command: "npx", args: ["-y", `${cliPackageName}@1.2.3`, "mcp", "--pet", "fixer"] }); +const localDev = createLocalDevCliCommand(["mcp", "--pet", "fixer"]); +assert.equal(localDev.command, process.execPath); +assert.deepEqual(localDev.args.slice(-3), ["mcp", "--pet", "fixer"]); + +let listPetsCalled = false; +const offlineExplicitPet = await resolveConfiguredPet({ + listPets: async () => { + listPetsCalled = true; + throw new Error("desktop unavailable"); + }, +}, "fixer"); +assert.deepEqual(offlineExplicitPet, { id: "fixer", displayName: "fixer" }); +assert.equal(listPetsCalled, false); + +const mcpArgs = createClaudeMcpAddJsonArgs({ type: "stdio", command: pinned.command, args: pinned.args, env: {} }); +assert.deepEqual(mcpArgs.slice(0, 3), ["mcp", "add-json", "openpets"]); +assert.equal(mcpArgs.at(-2), "--scope"); +assert.equal(mcpArgs.at(-1), "local"); +const mcpJson = JSON.parse(mcpArgs[3] ?? "{}") as { readonly command?: string; readonly args?: readonly string[] }; +assert.equal(mcpJson.command, "npx"); +assert.deepEqual(mcpJson.args, ["-y", `${cliPackageName}@1.2.3`, "mcp", "--pet", "fixer"]); + +const dir = mkdtempSync(join(tmpdir(), "openpets-cli-")); +try { + const project = join(dir, "project"); + const settingsDir = join(project, ".claude"); + mkdirSync(project); + writeFileSync(join(dir, "placeholder"), "x", "utf8"); + assert.throws(() => assertSafeProjectHookPath(join(dir, "missing"))); + installProjectLocalHooks(project, "npx -y @open-pets/cli@1.2.3 hook --openpets-managed --project-local --pet fixer"); + const settingsPath = join(settingsDir, "settings.local.json"); + const settings = JSON.parse(readFileSync(settingsPath, "utf8")) as { readonly hooks?: Record }>> }; + assert.ok(settings.hooks?.UserPromptSubmit?.[0]?.hooks[0]?.command.includes("--project-local --pet fixer")); + + writeFileSync(settingsPath, JSON.stringify({ hooks: { Stop: [{ hooks: [{ type: "command", command: "echo keep" }] }, { hooks: [{ type: "command", command: "npx -y @open-pets/cli@old hook --openpets-managed" }] }] } }), "utf8"); + installProjectLocalHooks(project, "npx -y @open-pets/cli@1.2.3 hook --openpets-managed --project-local --pet fixer"); + const updated = JSON.parse(readFileSync(settingsPath, "utf8")) as { readonly hooks?: Record }>> }; + const stopCommands = updated.hooks?.Stop?.flatMap((entry) => entry.hooks.map((hook) => hook.command)) ?? []; + assert.ok(stopCommands.includes("echo keep")); + assert.equal(stopCommands.some((command) => command.includes("@old")), false); + assert.ok(stopCommands.some((command) => command.includes("--project-local --pet fixer"))); + assert.equal(updated.hooks?.UserPromptSubmit?.[0]?.hooks[0]?.timeout, 10); + + const badSettingsProject = join(dir, "bad-settings-project"); + mkdirSync(join(badSettingsProject, ".claude"), { recursive: true }); + mkdirSync(join(badSettingsProject, ".claude", "settings.local.json")); + assert.throws(() => assertSafeProjectHookPath(badSettingsProject)); + + const malformedHooksProject = join(dir, "malformed-hooks-project"); + mkdirSync(join(malformedHooksProject, ".claude"), { recursive: true }); + writeFileSync(join(malformedHooksProject, ".claude", "settings.local.json"), JSON.stringify({ hooks: { Stop: { bad: true } } }), "utf8"); + assert.throws(() => installProjectLocalHooks(malformedHooksProject, "npx -y @open-pets/cli@1.2.3 hook --openpets-managed --project-local --pet fixer")); + + const symlinkProject = join(dir, "symlink-project"); + const outside = join(dir, "outside-claude"); + mkdirSync(symlinkProject); + mkdirSync(outside); + symlinkSync(outside, join(symlinkProject, ".claude")); + assert.throws(() => assertSafeProjectHookPath(symlinkProject)); + + const binDir = join(dir, "bin"); + const logPath = join(dir, "claude-log.json"); + mkdirSync(binDir); + const fakeClaude = join(binDir, "claude"); + writeFileSync(fakeClaude, `#!/usr/bin/env node\nconst fs = require('fs'); let log = []; try { log = JSON.parse(fs.readFileSync(${JSON.stringify(logPath)}, 'utf8')); } catch {} log.push({ cwd: process.cwd(), argv: process.argv.slice(2) }); fs.writeFileSync(${JSON.stringify(logPath)}, JSON.stringify(log)); process.exit(0);\n`, "utf8"); + chmodSync(fakeClaude, 0o700); + const oldPath = process.env.PATH; + process.env.PATH = `${binDir}:${oldPath ?? ""}`; + try { + runClaudeMcpAddJson(project, { type: "stdio", command: "npx", args: ["-y", "@open-pets/cli@1.2.3", "mcp", "--pet", "fixer"], env: {} }, true); + } finally { + process.env.PATH = oldPath; + } + const claudeLog = JSON.parse(readFileSync(logPath, "utf8")) as Array<{ readonly cwd: string; readonly argv: readonly string[] }>; + assert.equal(claudeLog.at(-1)?.cwd, realpathSync(project)); + assert.deepEqual(claudeLog.at(-2)?.argv, ["mcp", "remove", "openpets", "--scope", "local"]); + assert.deepEqual(claudeLog.at(-1)?.argv.slice(0, 3), ["mcp", "add-json", "openpets"]); + const loggedMcpJson = JSON.parse(claudeLog.at(-1)?.argv[3] ?? "{}") as { readonly command?: string; readonly args?: readonly string[]; readonly env?: Record }; + assert.equal(loggedMcpJson.command, "npx"); + assert.deepEqual(loggedMcpJson.args, ["-y", "@open-pets/cli@1.2.3", "mcp", "--pet", "fixer"]); + assert.deepEqual(loggedMcpJson.env, {}); + assert.equal(claudeLog.at(-1)?.argv.at(-2), "--scope"); + assert.equal(claudeLog.at(-1)?.argv.at(-1), "local"); + + const opencodeProject = join(dir, "opencode-project"); + mkdirSync(opencodeProject); + await configureProject({ agent: "opencode", petId: "fixer", cwd: opencodeProject, yes: true, force: false, localDev: false }); + const opencodeConfigPath = join(opencodeProject, ".opencode", "opencode.jsonc"); + const opencodeInstructionPath = join(opencodeProject, ".opencode", "openpets.md"); + const opencodeConfig = JSON.parse(readFileSync(opencodeConfigPath, "utf8")) as { readonly mcp?: Record; readonly instructions?: readonly string[]; readonly plugin?: readonly unknown[] }; + assert.deepEqual(opencodeConfig.mcp?.openpets?.command, ["npx", "-y", "@open-pets/cli@2.0.0", "mcp", "--pet", "fixer"]); + assert.deepEqual(opencodeConfig.instructions, [".opencode/openpets.md"]); + assert.deepEqual(opencodeConfig.plugin, [["@open-pets/opencode@2.0.0", { pet: "fixer" }]]); + assert.match(readFileSync(opencodeInstructionPath, "utf8"), /OPENPETS:START/); + await configureProject({ agent: "opencode", petId: "fixer", cwd: opencodeProject, yes: true, force: false, localDev: false }); + const opencodeConfigAgain = readFileSync(opencodeConfigPath, "utf8"); + assert.equal((opencodeConfigAgain.match(/@open-pets\/opencode/g) ?? []).length, 1); + + const existingTopLevel = join(dir, "opencode-existing-top"); + mkdirSync(existingTopLevel); + writeFileSync(join(existingTopLevel, "opencode.json"), JSON.stringify({ theme: "x", mcp: { other: { type: "local", command: ["other"] } }, plugin: ["other-plugin"], instructions: ["README.md"] }, null, 2), "utf8"); + await configureProject({ agent: "opencode", petId: "fixer", cwd: existingTopLevel, yes: true, force: false, localDev: true }); + const existingConfig = JSON.parse(readFileSync(join(existingTopLevel, "opencode.json"), "utf8")) as { readonly theme?: string; readonly mcp?: Record; readonly plugin?: readonly unknown[]; readonly instructions?: readonly string[] }; + assert.equal(existingConfig.theme, "x"); + assert.deepEqual(existingConfig.mcp?.other?.command, ["other"]); + assert.equal(existingConfig.mcp?.openpets?.command?.[0], "node"); + assert.ok(existingConfig.instructions?.includes("README.md")); + assert.ok(existingConfig.instructions?.includes(".opencode/openpets.md")); + assert.ok(existingConfig.plugin?.includes("other-plugin")); + + const lowerOwnerProject = join(dir, "opencode-lower-owner"); + mkdirSync(join(lowerOwnerProject, ".opencode"), { recursive: true }); + writeFileSync(join(lowerOwnerProject, "opencode.json"), JSON.stringify({ theme: "top" }, null, 2), "utf8"); + writeFileSync(join(lowerOwnerProject, ".opencode", "opencode.jsonc"), JSON.stringify({ mcp: { openpets: { type: "local", command: ["npx", "-y", "@open-pets/cli@0.0.1", "mcp", "--pet", "helper"], enabled: true } } }, null, 2), "utf8"); + await configureProject({ agent: "opencode", petId: "fixer", cwd: lowerOwnerProject, yes: true, force: false, localDev: false }); + const lowerTop = readFileSync(join(lowerOwnerProject, "opencode.json"), "utf8"); + const lowerOwned = JSON.parse(readFileSync(join(lowerOwnerProject, ".opencode", "opencode.jsonc"), "utf8")) as { readonly mcp?: Record }; + assert.equal(lowerTop.includes("@open-pets/cli"), false); + assert.deepEqual(lowerOwned.mcp?.openpets?.command, ["npx", "-y", "@open-pets/cli@2.0.0", "mcp", "--pet", "fixer"]); + + const customProject = join(dir, "opencode-custom"); + mkdirSync(customProject); + writeFileSync(join(customProject, "opencode.json"), JSON.stringify({ mcp: { openpets: { type: "local", command: ["my-openpets-wrapper"] } } }), "utf8"); + await assert.rejects(() => configureProject({ agent: "opencode", petId: "fixer", cwd: customProject, yes: true, force: false, localDev: false })); + assert.equal(readFileSync(join(customProject, "opencode.json"), "utf8").includes("@open-pets/cli"), false); + + const instructionProject = join(dir, "opencode-instruction"); + mkdirSync(join(instructionProject, ".opencode"), { recursive: true }); + writeFileSync(join(instructionProject, ".opencode", "openpets.md"), "User text\n", "utf8"); + await configureProject({ agent: "opencode", petId: "fixer", cwd: instructionProject, yes: true, force: false, localDev: false }); + const instructionText = readFileSync(join(instructionProject, ".opencode", "openpets.md"), "utf8"); + assert.match(instructionText, /User text/); + assert.match(instructionText, /OPENPETS:START/); + + const symlinkOpenCodeProject = join(dir, "opencode-symlink"); + const outsideOpenCode = join(dir, "outside-opencode"); + mkdirSync(symlinkOpenCodeProject); + mkdirSync(outsideOpenCode); + writeFileSync(join(outsideOpenCode, "opencode.jsonc"), "{}\n", "utf8"); + writeFileSync(join(outsideOpenCode, "openpets.md"), "outside\n", "utf8"); + symlinkSync(outsideOpenCode, join(symlinkOpenCodeProject, ".opencode")); + await assert.rejects(() => configureProject({ agent: "opencode", petId: "fixer", cwd: symlinkOpenCodeProject, yes: true, force: false, localDev: false })); +} finally { + rmSync(dir, { recursive: true, force: true }); +} + +const invalidHook = spawnSync(process.execPath, [new URL("./index.js", import.meta.url).pathname, "hook", "--openpets-managed", "--pet", "bad/pet"], { input: JSON.stringify({ hook_event_name: "Notification" }), encoding: "utf8" }); +assert.equal(invalidHook.status, 1); +const missingPetHook = spawnSync(process.execPath, [new URL("./index.js", import.meta.url).pathname, "hook", "--openpets-managed", "--pet"], { input: JSON.stringify({ hook_event_name: "Notification" }), encoding: "utf8" }); +assert.equal(missingPetHook.status, 1); + +for (const args of [["--help"], ["-h"], ["configure", "--help"], ["configure", "-h"], ["mcp", "--help"], ["hook", "--help"]]) { + const help = spawnSync(process.execPath, [new URL("./index.js", import.meta.url).pathname, ...args], { encoding: "utf8" }); + assert.equal(help.status, 0); + assert.match(help.stdout, /Usage:/); +} + +console.error("CLI contract validation passed."); diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts new file mode 100644 index 00000000..472b5f98 --- /dev/null +++ b/packages/cli/src/index.ts @@ -0,0 +1,371 @@ +#!/usr/bin/env node +import { spawn, spawnSync } from "node:child_process"; +import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, writeFileSync } from "node:fs"; +import { dirname, isAbsolute, join, relative, resolve } from "node:path"; +import { createRequire } from "node:module"; +import { createInterface } from "node:readline/promises"; +import { stdin as input, stdout as output } from "node:process"; +import { fileURLToPath } from "node:url"; + +import { createOpenPetsClient, OpenPetsClientError, type OpenPetsPetListItem } from "@open-pets/client"; +import { claudeHookEvents, openPetsHookMarker, removeOpenPetsHooks, runClaudeHookFromStdin, validateOpenPetsPetArg } from "@open-pets/claude"; +import { prepareOpenCodeProjectSetup, writePreparedOpenCodeProjectSetup } from "@open-pets/opencode"; + +export const cliPackageName = "@open-pets/cli"; + +interface ConfigureOptions { + readonly agent: "claude" | "opencode"; + readonly petId?: string; + readonly cwd: string; + readonly yes: boolean; + readonly force: boolean; + readonly localDev: boolean; +} + +interface CommandSpec { + readonly command: string; + readonly args: readonly string[]; +} + +interface PreparedHooks { + readonly settingsPath: string; + readonly settings: Record; +} + +interface ConfiguredPet { + readonly id: string; + readonly displayName: string; +} + +const require = createRequire(import.meta.url); + +async function main(): Promise { + const [command, ...args] = process.argv.slice(2); + if (!command || command === "--help" || command === "-h") { + printUsage(); + return; + } + if (command === "configure") { + if (hasHelp(args)) { + printConfigureUsage(); + return; + } + await configureProject(parseConfigureArgs(args)); + return; + } + if (command === "mcp") { + if (hasHelp(args)) { + printMcpUsage(); + return; + } + await runMcp(args); + return; + } + if (command === "hook") { + if (hasHelp(args)) { + printHookUsage(); + return; + } + const code = await runClaudeHookFromStdin(process.stdin, { configuredPetId: readPetArg(args), projectLocal: hasProjectLocalArg(args), debug: process.env.OPENPETS_DEBUG === "1" }); + process.exitCode = code; + return; + } + throw new CliError(`Unknown command: ${command}`); +} + +export async function configureProject(options: ConfigureOptions): Promise { + const projectDir = resolveProjectDir(options.cwd); + if (options.agent === "opencode") { + await configureOpenCodeProject(options, projectDir); + return; + } + assertClaudeAvailable(); + assertSafeProjectHookPath(projectDir); + const client = createOpenPetsClient(); + const selectedPet = await resolveConfiguredPet(client, options.petId); + const petId = selectedPet.id; + const packageVersion = getPackageVersion(); + const mcpCommand = options.localDev ? createLocalDevCliCommand(["mcp", "--pet", petId]) : createVersionPinnedCliCommand(packageVersion, ["mcp", "--pet", petId]); + const hookCommand = formatShellCommand(options.localDev ? createLocalDevCliCommand(["hook", openPetsHookMarker, "--project-local", "--pet", petId]) : createVersionPinnedCliCommand(packageVersion, ["hook", openPetsHookMarker, "--project-local", "--pet", petId])); + const mcpConfig = { type: "stdio", command: mcpCommand.command, args: mcpCommand.args, env: {} }; + const preparedHooks = prepareProjectLocalHooks(projectDir, hookCommand); + runClaudeMcpAddJson(projectDir, mcpConfig, options.force); + writePreparedHooks(preparedHooks); + process.stdout.write(`OpenPets configured for Claude in ${projectDir}.\nPet: ${sanitizeTerminalText(selectedPet.displayName)} (${selectedPet.id})\n`); +} + +async function configureOpenCodeProject(options: ConfigureOptions, projectDir: string): Promise { + const client = createOpenPetsClient(); + const selectedPet = await resolveConfiguredPet(client, options.petId); + const packageVersion = getPackageVersion(); + const prepared = prepareOpenCodeProjectSetup({ projectDir, petId: selectedPet.id, cliVersion: packageVersion, commandMode: options.localDev ? "local" : "published", cliEntryPath: options.localDev ? fileURLToPath(import.meta.url) : undefined }); + writePreparedOpenCodeProjectSetup(prepared); + process.stdout.write(`OpenPets configured for OpenCode in ${projectDir}.\nPet: ${sanitizeTerminalText(selectedPet.displayName)} (${selectedPet.id})\nConfig: ${prepared.configPath}\nInstructions: ${prepared.instructionPath}\nWarning: .opencode config/instructions can be committed and include the selected pet id.\nRestart OpenCode in this project to load OpenPets.\n`); +} + +export async function resolveConfiguredPet(client: Pick, "listPets">, petId?: string): Promise { + if (petId) { + const id = validateOpenPetsPetArg(petId); + return { id, displayName: id }; + } + + const petList = await getInstalledPets(client); + const id = validateOpenPetsPetArg(await pickPet(petList.pets)); + const selectedPet = petList.pets.find((pet) => pet.id === id); + if (!selectedPet || selectedPet.broken) throw new CliError(`Pet is not installed or usable: ${id}`); + return { id: selectedPet.id, displayName: selectedPet.displayName }; +} + +export function parseConfigureArgs(args: readonly string[]): ConfigureOptions { + let agent = "claude"; + let petId: string | undefined; + let cwd = process.cwd(); + let yes = false; + let force = false; + let localDev = false; + for (let index = 0; index < args.length; index += 1) { + const arg = args[index]; + if (arg === "--yes" || arg === "-y") yes = true; + else if (arg === "--force" || arg === "--replace") force = true; + else if (arg === "--local-dev") localDev = true; + else if (arg === "--agent") { agent = readRequiredArg(args, index, "--agent"); index += 1; } + else if (arg.startsWith("--agent=")) agent = arg.slice("--agent=".length); + else if (arg === "--pet") { petId = validateOpenPetsPetArg(readRequiredArg(args, index, "--pet")); index += 1; } + else if (arg.startsWith("--pet=")) petId = validateOpenPetsPetArg(arg.slice("--pet=".length)); + else if (arg === "--cwd") { cwd = readRequiredArg(args, index, "--cwd"); index += 1; } + else if (arg.startsWith("--cwd=")) cwd = arg.slice("--cwd=".length); + else throw new CliError(`Unknown configure option: ${arg}`); + } + if (agent !== "claude" && agent !== "opencode") throw new CliError(`Unsupported agent: ${agent}. Supported agents: claude, opencode.`); + return { agent, petId, cwd, yes, force, localDev }; +} + +export function createVersionPinnedCliCommand(version: string, args: readonly string[]): CommandSpec { + return { command: "npx", args: ["-y", `${cliPackageName}@${version}`, ...args] }; +} + +export function createLocalDevCliCommand(args: readonly string[]): CommandSpec { + return { command: process.execPath, args: [fileURLToPath(import.meta.url), ...args] }; +} + +export function createClaudeMcpAddJsonArgs(config: unknown): readonly string[] { + return ["mcp", "add-json", "openpets", JSON.stringify(config), "--scope", "local"]; +} + +export function installProjectLocalHooks(projectDir: string, hookCommand: string): void { + writePreparedHooks(prepareProjectLocalHooks(projectDir, hookCommand)); +} + +export function prepareProjectLocalHooks(projectDir: string, hookCommand: string): PreparedHooks { + assertSafeProjectHookPath(projectDir); + const settingsPath = getProjectLocalSettingsPath(realpathSync(projectDir)); + const current = readJsonObject(settingsPath); + const cleaned = removeOpenPetsHooks(current); + const hooks = isRecord(cleaned.hooks) ? { ...cleaned.hooks } : {}; + for (const event of claudeHookEvents) { + if (hooks[event] !== undefined && !Array.isArray(hooks[event])) throw new CliError(`Claude local settings hooks.${event} must be an array.`); + const existing = Array.isArray(hooks[event]) ? hooks[event] : []; + hooks[event] = [...existing, { hooks: [createHookCommandEntry(hookCommand)] }]; + } + return { settingsPath, settings: { ...cleaned, hooks } }; +} + +function writePreparedHooks(prepared: PreparedHooks): void { + writeJsonFile(prepared.settingsPath, prepared.settings); +} + +function createHookCommandEntry(command: string): Record { + return { type: "command", command, timeout: 10, async: true, asyncRewake: false }; +} + +export function runClaudeMcpAddJson(projectDir: string, config: unknown, force = false): void { + if (force) runClaudeMcpRemove(projectDir); + const result = spawnSync("claude", createClaudeMcpAddJsonArgs(config), { cwd: projectDir, encoding: "utf8", shell: false, stdio: ["ignore", "pipe", "pipe"], timeout: 10_000 }); + if (result.error) throw new CliError(`Claude Code is unavailable on PATH: ${result.error.message}`); + if (result.status !== 0) throw new CliError(`Claude MCP configuration failed: ${(result.stderr || result.stdout || "unknown error").trim()}`); +} + +function runClaudeMcpRemove(projectDir: string): void { + const result = spawnSync("claude", ["mcp", "remove", "openpets", "--scope", "local"], { cwd: projectDir, encoding: "utf8", shell: false, stdio: ["ignore", "pipe", "pipe"], timeout: 10_000 }); + if (result.error) throw new CliError(`Claude Code is unavailable on PATH: ${result.error.message}`); + const output = `${result.stderr || ""}\n${result.stdout || ""}`; + if (result.status !== 0 && !/not found|does not exist|no server|unknown/i.test(output)) { + throw new CliError(`Claude MCP remove failed: ${(result.stderr || result.stdout || "unknown error").trim()}`); + } +} + +async function runMcp(args: readonly string[]): Promise { + const entry = require.resolve("@open-pets/mcp"); + await new Promise((resolvePromise, rejectPromise) => { + const child = spawn(process.execPath, [entry, ...args], { stdio: "inherit" }); + const forwardSigint = (): void => { child.kill("SIGINT"); }; + const forwardSigterm = (): void => { child.kill("SIGTERM"); }; + process.once("SIGINT", forwardSigint); + process.once("SIGTERM", forwardSigterm); + child.on("error", rejectPromise); + child.on("exit", (code, signal) => { + process.off("SIGINT", forwardSigint); + process.off("SIGTERM", forwardSigterm); + if (signal) { process.kill(process.pid, signal); return; } + process.exitCode = code ?? 1; + resolvePromise(); + }); + }); +} + +async function getInstalledPets(client: Pick, "listPets">) { + try { + return await client.listPets(); + } catch (error) { + if (error instanceof OpenPetsClientError && error.code === "unknown_method") throw new CliError("OpenPets desktop app is too old for project setup. Update/restart OpenPets and try again."); + throw new CliError("OpenPets desktop app is not running. Open OpenPets, then run this command again."); + } +} + +async function pickPet(pets: readonly OpenPetsPetListItem[]): Promise { + const usable = pets.filter((pet) => !pet.broken); + if (usable.length === 0) throw new CliError("No usable installed pets found. Open OpenPets and install a pet first."); + if (!process.stdin.isTTY) throw new CliError("Missing --pet . Non-interactive shells must pass --pet."); + process.stdout.write("Pick pet for this project:\n"); + usable.forEach((pet, index) => process.stdout.write(` ${index + 1}. ${sanitizeTerminalText(pet.displayName)} (${pet.id})\n`)); + const rl = createInterface({ input, output }); + try { + const answer = await rl.question("Pet number: "); + const index = Number(answer.trim()) - 1; + if (!Number.isInteger(index) || !usable[index]) throw new CliError("Invalid pet selection."); + return usable[index].id; + } finally { + rl.close(); + } +} + +function sanitizeTerminalText(value: string): string { + return value.replace(/[\x00-\x1F\x7F]/g, "").slice(0, 100); +} + +function resolveProjectDir(cwd: string): string { + const resolved = resolve(cwd); + const stats = lstatSync(resolved); + if (stats.isSymbolicLink()) throw new CliError("Project directory cannot be a symlink."); + if (!stats.isDirectory()) throw new CliError("Project path must be a directory."); + return realpathSync(resolved); +} + +function assertClaudeAvailable(): void { + const result = spawnSync("claude", ["--version"], { shell: false, stdio: "ignore", timeout: 5_000 }); + if (result.error || result.status !== 0) throw new CliError("Claude Code is unavailable on PATH. Install Claude Code, then try again."); +} + +export function assertSafeProjectHookPath(projectDir: string): void { + const projectReal = realpathSync(projectDir); + const claudeDir = join(projectReal, ".claude"); + if (existsSync(claudeDir)) { + const claudeStats = lstatSync(claudeDir); + if (claudeStats.isSymbolicLink()) throw new CliError("Project .claude directory cannot be a symlink."); + if (!claudeStats.isDirectory()) throw new CliError("Project .claude path must be a directory."); + const rel = relative(projectReal, realpathSync(claudeDir)); + if (rel.startsWith("..") || isAbsolute(rel)) throw new CliError("Project .claude directory escapes the project."); + } + const settingsPath = getProjectLocalSettingsPath(projectReal); + if (existsSync(settingsPath)) { + const settingsStats = lstatSync(settingsPath); + if (settingsStats.isSymbolicLink()) throw new CliError("Project Claude local settings file cannot be a symlink."); + if (!settingsStats.isFile()) throw new CliError("Project Claude local settings path must be a file."); + } + const settingsRel = relative(projectReal, resolve(settingsPath)); + if (settingsRel.startsWith("..") || isAbsolute(settingsRel)) throw new CliError("Project Claude local settings path escapes the project."); +} + +function getProjectLocalSettingsPath(projectDir: string): string { + return join(projectDir, ".claude", "settings.local.json"); +} + +function readJsonObject(path: string): Record { + if (!existsSync(path)) return {}; + const parsed = JSON.parse(readFileSync(path, "utf8")) as unknown; + if (!isRecord(parsed) || Array.isArray(parsed)) throw new CliError("Claude local settings must be a JSON object."); + if (parsed.hooks !== undefined && !isRecord(parsed.hooks)) throw new CliError("Claude local settings hooks field must be an object."); + return parsed; +} + +function writeJsonFile(path: string, value: Record): void { + mkdirSync(dirname(path), { recursive: true, mode: 0o700 }); + const parentStats = lstatSync(dirname(path)); + if (parentStats.isSymbolicLink() || !parentStats.isDirectory()) throw new CliError("Project .claude directory is unsafe after creation."); + const tempPath = `${path}.${process.pid}.tmp`; + writeFileSync(tempPath, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf8", mode: 0o600 }); + renameSync(tempPath, path); + try { chmodSync(path, 0o600); } catch { /* best effort */ } +} + +function readPetArg(args: readonly string[]): string | undefined { + const equals = args.find((arg) => arg.startsWith("--pet=")); + if (equals) return validateOpenPetsPetArg(equals.slice("--pet=".length)); + const index = args.indexOf("--pet"); + const value = index >= 0 ? args[index + 1] : undefined; + if (index >= 0 && (!value || value.startsWith("--"))) throw new CliError("Missing value for --pet."); + return value && value.length > 0 ? validateOpenPetsPetArg(value) : undefined; +} + +function hasProjectLocalArg(args: readonly string[]): boolean { + return args.includes("--project-local"); +} + +function readRequiredArg(args: readonly string[], index: number, flag: string): string { + const value = args[index + 1]; + if (!value || value.startsWith("--")) throw new CliError(`Missing value for ${flag}.`); + return value; +} + +function formatShellCommand(command: CommandSpec): string { + return [command.command, ...command.args].map(shellQuote).join(" "); +} + +function shellQuote(value: string): string { + if (/^[a-zA-Z0-9_@%+=:,./-]+$/.test(value)) return value; + if (/[\r\n"]/.test(value) || value.includes("\0")) throw new CliError("Command argument contains unsupported shell characters."); + return `"${value.replaceAll("\\", "\\\\").replaceAll("$", "\\$").replaceAll("`", "\\`")}"`; +} + +function getPackageVersion(): string { + const parsed = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")) as unknown; + if (!isRecord(parsed) || typeof parsed.version !== "string") throw new CliError("Cannot read OpenPets CLI package version."); + return parsed.version; +} + +function printUsage(): void { + process.stdout.write("Usage:\n openpets configure [--agent claude|opencode] [--pet ] [--cwd ] [--yes] [--force]\n openpets mcp [--pet ]\n openpets hook --openpets-managed [--pet ]\n\nRun `openpets --help` for command options.\n"); +} + +function printConfigureUsage(): void { + process.stdout.write("Usage:\n openpets configure [--agent claude|opencode] [--pet ] [--cwd ] [--yes] [--force]\n\nOptions:\n --pet Pet id to use for this project. If omitted, prompts with installed pets.\n --agent Agent to configure: claude or opencode. Defaults to claude.\n --cwd Project directory to configure. Defaults to current directory.\n --yes, -y Accepted for scripts; no confirmation prompt is shown.\n --force Replace supported managed entries where applicable.\n --replace Alias for --force.\n --local-dev Use local development command paths where supported.\n -h, --help Show this help.\n"); +} + +function printMcpUsage(): void { + process.stdout.write("Usage:\n openpets mcp [--pet ]\n\nStarts the OpenPets MCP server wrapper. This command is written into Claude MCP config by `openpets configure`.\n"); +} + +function printHookUsage(): void { + process.stdout.write("Usage:\n openpets hook --openpets-managed [--pet ]\n\nRuns one Claude hook event from stdin. This command is written into Claude project hooks by `openpets configure`.\n"); +} + +function hasHelp(args: readonly string[]): boolean { + return args.includes("--help") || args.includes("-h"); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} + +class CliError extends Error {} + +if (isMainModule()) { + main().catch((error: unknown) => { + process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`); + process.exitCode = 1; + }); +} + +function isMainModule(): boolean { + return process.argv[1] ? resolve(process.argv[1]) === fileURLToPath(import.meta.url) : false; +} diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json new file mode 100644 index 00000000..762e7118 --- /dev/null +++ b/packages/cli/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/client/package.json b/packages/client/package.json new file mode 100644 index 00000000..a3102657 --- /dev/null +++ b/packages/client/package.json @@ -0,0 +1,40 @@ +{ + "name": "@open-pets/client", + "version": "2.0.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "packages/client" + }, + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "test": "node dist/check-client-protocol.js", + "check": "pnpm typecheck && pnpm build && pnpm test", + "typecheck": "tsc --noEmit", + "build": "tsc", + "smoke": "pnpm build && node dist/smoke.js", + "smoke:status": "pnpm smoke status", + "smoke:react": "pnpm smoke react", + "smoke:say": "pnpm smoke say", + "smoke:invalid-token": "pnpm smoke invalid-token" + }, + "devDependencies": { + "@types/node": "^25.6.2", + "typescript": "^6.0.3" + } +} diff --git a/packages/client/src/check-client-protocol.ts b/packages/client/src/check-client-protocol.ts new file mode 100644 index 00000000..d6b64a7b --- /dev/null +++ b/packages/client/src/check-client-protocol.ts @@ -0,0 +1,44 @@ +import assert from "node:assert/strict"; + +import { validateDiscovery } from "./discovery.js"; +import { parsePetListResult } from "./index.js"; +import { OpenPetsClientError, parseIpcResponse, validateReaction } from "./protocol.js"; + +const baseDiscovery = { + protocolVersion: 1, + protocol: "openpets-ipc", + endpoint: process.platform === "win32" ? "\\\\.\\pipe\\openpets-abc-123" : "/tmp/openpets-501/openpets-123.sock", + token: "x".repeat(32), + appVersion: "0.0.0", + pid: 123, + platform: process.platform, +}; + +validateDiscovery(baseDiscovery); +assertRejects(() => validateDiscovery({ ...baseDiscovery, protocol: "http" })); +assertRejects(() => validateDiscovery({ ...baseDiscovery, protocolVersion: 2 })); +assertRejects(() => validateDiscovery({ ...baseDiscovery, endpoint: "127.0.0.1:1234" })); +assertRejects(() => validateDiscovery({ ...baseDiscovery, platform: "freebsd" })); +assertRejects(() => validateReaction("bad")); +assert.equal(validateReaction("waving"), "waving"); + +const ok = parseIpcResponse<{ value: number }>({ id: "1", ok: true, result: { value: 1 } }); +if (!ok.ok || ok.result.value !== 1) throw new Error("Failed to parse ok response."); + +const err = parseIpcResponse({ id: "1", ok: false, error: { code: "invalid_token", message: "Invalid" } }); +if (err.ok || err.error.code !== "invalid_token") throw new Error("Failed to parse error response."); + +assertRejects(() => parseIpcResponse({ ok: true })); +assert.deepEqual(parsePetListResult({ ok: true, defaultPetId: "builtin", pets: [{ id: "fixer", displayName: "Fixer", builtIn: false, broken: false }] }), { ok: true, defaultPetId: "builtin", pets: [{ id: "fixer", displayName: "Fixer", builtIn: false, broken: false }] }); +assertRejects(() => parsePetListResult({ ok: true, pets: [{ id: "fixer" }], defaultPetId: "builtin" })); + +console.log("Client protocol validation passed."); + +function assertRejects(callback: () => unknown): void { + try { + callback(); + } catch (error) { + if (error instanceof OpenPetsClientError || error instanceof Error) return; + } + throw new Error("Expected validation to reject."); +} diff --git a/packages/client/src/discovery.ts b/packages/client/src/discovery.ts new file mode 100644 index 00000000..48803b40 --- /dev/null +++ b/packages/client/src/discovery.ts @@ -0,0 +1,125 @@ +import { existsSync, lstatSync, readFileSync, statSync } from "node:fs"; +import { homedir } from "node:os"; +import { basename, dirname, join } from "node:path"; + +import { isRecord, maxIpcMessageBytes, openPetsIpcProtocol, openPetsIpcVersion, OpenPetsClientError } from "./protocol.js"; + +export interface OpenPetsDiscoveryFile { + readonly protocolVersion: 1; + readonly protocol: "openpets-ipc"; + readonly endpoint: string; + readonly token: string; + readonly appVersion: string; + readonly pid: number; + readonly platform: NodeJS.Platform; +} + +export function getDiscoveryFilePath(): string { + if (process.env.OPENPETS_DISCOVERY_FILE) { + return process.env.OPENPETS_DISCOVERY_FILE; + } + + if (process.platform === "darwin") { + return join(homedir(), "Library", "Application Support", "OpenPets", "runtime", "ipc.json"); + } + + if (process.platform === "win32") { + return join(process.env.APPDATA ?? join(homedir(), "AppData", "Roaming"), "OpenPets", "runtime", "ipc.json"); + } + + const xdg = getSecureXdgRuntimeDir(); + if (xdg) { + return join(xdg, "openpets", "ipc.json"); + } + + return join(process.env.XDG_CONFIG_HOME ?? join(homedir(), ".config"), "OpenPets", "runtime", "ipc.json"); +} + +export function readDiscoveryFile(path = getDiscoveryFilePath()): OpenPetsDiscoveryFile { + let raw: string; + try { + const stat = statSync(path); + if (!stat.isFile()) throw new OpenPetsClientError("invalid_discovery", "OpenPets discovery path is not a file."); + if (stat.size > maxIpcMessageBytes) throw new OpenPetsClientError("invalid_discovery", "OpenPets discovery file is too large."); + raw = readFileSync(path, "utf8"); + } catch (error) { + if (error instanceof OpenPetsClientError) throw error; + throw new OpenPetsClientError("unavailable", `OpenPets discovery file is unavailable: ${error instanceof Error ? error.message : "unknown error"}`); + } + + if (Buffer.byteLength(raw, "utf8") > maxIpcMessageBytes) { + throw new OpenPetsClientError("invalid_discovery", "OpenPets discovery file is too large."); + } + + try { + return validateDiscovery(JSON.parse(raw) as unknown); + } catch (error) { + if (error instanceof OpenPetsClientError) throw error; + throw new OpenPetsClientError("invalid_discovery", "OpenPets discovery file is malformed JSON."); + } +} + +export function validateDiscovery(value: unknown): OpenPetsDiscoveryFile { + if (!isRecord(value)) throw new OpenPetsClientError("invalid_discovery", "Discovery must be an object."); + if (value.protocol !== openPetsIpcProtocol) throw new OpenPetsClientError("invalid_discovery", "Discovery protocol is invalid."); + if (value.protocolVersion !== openPetsIpcVersion) throw new OpenPetsClientError("invalid_discovery", "Discovery protocol version is invalid."); + if (value.platform !== process.platform) throw new OpenPetsClientError("invalid_discovery", "Discovery platform does not match this client."); + if (typeof value.endpoint !== "string") throw new OpenPetsClientError("invalid_discovery", "Discovery endpoint is invalid."); + if (typeof value.token !== "string" || value.token.length < 16 || value.token.length > 256) throw new OpenPetsClientError("invalid_discovery", "Discovery token is invalid."); + if (typeof value.appVersion !== "string") throw new OpenPetsClientError("invalid_discovery", "Discovery app version is invalid."); + if (typeof value.pid !== "number" || !Number.isInteger(value.pid) || value.pid <= 0) throw new OpenPetsClientError("invalid_discovery", "Discovery pid is invalid."); + + validateEndpoint(value.endpoint); + + return { + protocolVersion: openPetsIpcVersion, + protocol: openPetsIpcProtocol, + endpoint: value.endpoint, + token: value.token, + appVersion: value.appVersion, + pid: value.pid, + platform: value.platform as NodeJS.Platform, + }; +} + +export function validateEndpoint(endpoint: string): void { + if (endpoint.length < 1 || endpoint.length > 240) throw new OpenPetsClientError("invalid_discovery", "Discovery endpoint length is invalid."); + if (endpoint.includes("\0")) throw new OpenPetsClientError("invalid_discovery", "Discovery endpoint contains NUL."); + + if (process.platform === "win32") { + if (!endpoint.startsWith("\\\\.\\pipe\\openpets-") || endpoint.includes("/")) { + throw new OpenPetsClientError("invalid_discovery", "Discovery endpoint is not an OpenPets named pipe."); + } + return; + } + + if (!endpoint.startsWith("/") || endpoint.includes("://") || endpoint.includes("..")) { + throw new OpenPetsClientError("invalid_discovery", "Discovery endpoint is not an absolute Unix socket path."); + } + + if (!basename(endpoint).startsWith("openpets-") || !basename(endpoint).endsWith(".sock")) { + throw new OpenPetsClientError("invalid_discovery", "Discovery endpoint filename is not an OpenPets socket."); + } + + const parent = dirname(endpoint); + const parentName = basename(parent); + const isTmpRuntime = parent.startsWith("/tmp/") && parentName.startsWith("openpets-"); + const isXdgRuntime = parentName === "openpets"; + if (!isTmpRuntime && !isXdgRuntime) { + throw new OpenPetsClientError("invalid_discovery", "Discovery endpoint is outside an expected OpenPets runtime directory."); + } +} + +function getSecureXdgRuntimeDir(): string | null { + const dir = process.env.XDG_RUNTIME_DIR; + if (!dir || !existsSync(dir)) return null; + try { + const stat = lstatSync(dir); + if (!stat.isDirectory() || stat.isSymbolicLink()) return null; + if (typeof process.getuid === "function" && stat.uid !== process.getuid()) return null; + if ((stat.mode & 0o777) !== 0o700) return null; + return dir; + } catch { + return null; + } +} diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts new file mode 100644 index 00000000..2c86b5db --- /dev/null +++ b/packages/client/src/index.ts @@ -0,0 +1,169 @@ +import net from "node:net"; +import { randomUUID } from "node:crypto"; + +import { readDiscoveryFile, type OpenPetsDiscoveryFile } from "./discovery.js"; +import { connectTimeoutMs, maxIpcMessageBytes, openPetsIpcVersion, parseIpcResponse, responseTimeoutMs, validateReaction, OpenPetsClientError, type OpenPetsIpcMethod, type OpenPetsIpcRequest, type OpenPetsReaction } from "./protocol.js"; + +export { getDiscoveryFilePath, readDiscoveryFile, validateDiscovery, validateEndpoint, type OpenPetsDiscoveryFile } from "./discovery.js"; +export { allowedReactions, OpenPetsClientError, type OpenPetsReaction } from "./protocol.js"; + +export interface OpenPetsClientOptions { + readonly discoveryPath?: string; + readonly connectTimeoutMs?: number; + readonly responseTimeoutMs?: number; +} + +export interface OpenPetsStatusResult { + readonly ok: boolean; + readonly appRunning: boolean; + readonly unavailableReason?: string; + readonly [key: string]: unknown; +} + +export interface OpenPetsLeaseResult { + readonly leaseId: string; + readonly requestedPetId?: string; + readonly targetKind: "default" | "explicit"; + readonly actualTargetPetId: string; + readonly actualTargetPetName: string; + readonly usingDefaultPet: boolean; + readonly fallbackReason?: string; + readonly expiresAt: number; + readonly leaseActive: boolean; +} + +export interface OpenPetsPetListResult { + readonly ok: true; + readonly pets: readonly OpenPetsPetListItem[]; + readonly defaultPetId: string; +} + +export interface OpenPetsPetListItem { + readonly id: string; + readonly displayName: string; + readonly builtIn: boolean; + readonly broken: boolean; +} + +export interface OpenPetsClient { + hello(): Promise; + status(options?: { readonly leaseId?: string }): Promise; + listPets(): Promise; + acquireLease(options?: { readonly requestedPetId?: string }): Promise; + heartbeatLease(leaseId: string): Promise<{ readonly leaseId: string; readonly expiresAt: number }>; + releaseLease(leaseId: string): Promise<{ readonly released: boolean }>; + react(reaction: OpenPetsReaction, options?: { readonly leaseId?: string }): Promise; + say(message: string, options?: { readonly reaction?: OpenPetsReaction; readonly leaseId?: string }): Promise; +} + +export function createOpenPetsClient(options: OpenPetsClientOptions = {}): OpenPetsClient { + return { + hello: () => sendDiscoveredRequest("hello", {}, options), + status: async (statusOptions) => { + try { + return await sendDiscoveredRequest("status", { leaseId: statusOptions?.leaseId }, options); + } catch (error) { + return { + ok: false, + appRunning: false, + unavailableReason: error instanceof Error ? error.message : "OpenPets is unavailable.", + }; + } + }, + listPets: async () => parsePetListResult(await sendDiscoveredRequest("pets.list", {}, options)), + acquireLease: (leaseOptions) => sendDiscoveredRequest("lease.acquire", { requestedPetId: leaseOptions?.requestedPetId }, options), + heartbeatLease: (leaseId) => sendDiscoveredRequest("lease.heartbeat", { leaseId }, options), + releaseLease: (leaseId) => sendDiscoveredRequest("lease.release", { leaseId }, options), + react: (reaction, reactOptions) => sendDiscoveredRequest("pet.react", { reaction: validateReaction(reaction), leaseId: reactOptions?.leaseId }, options), + say: (message, sayOptions) => sendDiscoveredRequest("pet.say", { message, reaction: sayOptions?.reaction, leaseId: sayOptions?.leaseId }, options), + }; +} + +export function parsePetListResult(value: unknown): OpenPetsPetListResult { + if (!isRecord(value) || value.ok !== true || !Array.isArray(value.pets) || typeof value.defaultPetId !== "string") { + throw new OpenPetsClientError("invalid_response", "OpenPets pet list response is invalid."); + } + return { + ok: true, + defaultPetId: value.defaultPetId, + pets: value.pets.map(parsePetListItem), + }; +} + +function parsePetListItem(value: unknown): OpenPetsPetListItem { + if (!isRecord(value) || typeof value.id !== "string" || typeof value.displayName !== "string" || typeof value.builtIn !== "boolean" || typeof value.broken !== "boolean") { + throw new OpenPetsClientError("invalid_response", "OpenPets pet list item is invalid."); + } + return { id: value.id, displayName: value.displayName, builtIn: value.builtIn, broken: value.broken }; +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} + +async function sendDiscoveredRequest(method: OpenPetsIpcMethod, params: unknown, options: OpenPetsClientOptions): Promise { + const discovery = readDiscoveryFile(options.discoveryPath); + return sendRequest(discovery, method, params, options); +} + +export function sendRequest(discovery: OpenPetsDiscoveryFile, method: OpenPetsIpcMethod, params: unknown, options: OpenPetsClientOptions = {}): Promise { + const request: OpenPetsIpcRequest = { + id: randomUUID(), + version: openPetsIpcVersion, + token: discovery.token, + method, + params, + }; + + const requestLine = `${JSON.stringify(request)}\n`; + if (Buffer.byteLength(requestLine, "utf8") > maxIpcMessageBytes) { + return Promise.reject(new OpenPetsClientError("request_too_large", "OpenPets IPC request is too large.")); + } + + return new Promise((resolve, reject) => { + const socket = net.createConnection(discovery.endpoint); + let buffer = ""; + let settled = false; + + const connectTimer = setTimeout(() => finish(new OpenPetsClientError("connect_timeout", "Timed out connecting to OpenPets.")), options.connectTimeoutMs ?? connectTimeoutMs); + const responseTimer = setTimeout(() => finish(new OpenPetsClientError("response_timeout", "Timed out waiting for OpenPets response.")), options.responseTimeoutMs ?? responseTimeoutMs); + + const finish = (error?: unknown, result?: T): void => { + if (settled) return; + settled = true; + clearTimeout(connectTimer); + clearTimeout(responseTimer); + socket.destroy(); + if (error) reject(error); + else resolve(result as T); + }; + + socket.setEncoding("utf8"); + socket.once("connect", () => { + clearTimeout(connectTimer); + socket.write(requestLine); + }); + socket.on("data", (chunk) => { + buffer += chunk; + if (Buffer.byteLength(buffer, "utf8") > maxIpcMessageBytes) { + finish(new OpenPetsClientError("response_too_large", "OpenPets IPC response is too large.")); + return; + } + + const newline = buffer.indexOf("\n"); + if (newline === -1) return; + + try { + const parsed = parseIpcResponse(JSON.parse(buffer.slice(0, newline)) as unknown); + if (parsed.ok) finish(undefined, parsed.result); + else finish(new OpenPetsClientError(parsed.error.code, parsed.error.message)); + } catch (error) { + finish(error); + } + }); + socket.once("error", (error) => finish(new OpenPetsClientError("unavailable", error.message))); + socket.once("end", () => { + if (!settled) finish(new OpenPetsClientError("connection_closed", "OpenPets closed the IPC connection before responding.")); + }); + }); +} diff --git a/packages/client/src/protocol.ts b/packages/client/src/protocol.ts new file mode 100644 index 00000000..6cbdd9b6 --- /dev/null +++ b/packages/client/src/protocol.ts @@ -0,0 +1,79 @@ +export const openPetsIpcProtocol = "openpets-ipc"; +export const openPetsIpcVersion = 1; +export const maxIpcMessageBytes = 16 * 1024; +export const connectTimeoutMs = 2_000; +export const responseTimeoutMs = 3_000; + +export const allowedReactions = [ + "idle", + "thinking", + "working", + "editing", + "running", + "testing", + "waiting", + "waving", + "success", + "error", + "celebrating", +] as const; + +export type OpenPetsReaction = typeof allowedReactions[number]; +export type OpenPetsIpcMethod = "hello" | "status" | "pets.list" | "lease.acquire" | "lease.heartbeat" | "lease.release" | "pet.react" | "pet.say"; + +export interface OpenPetsIpcRequest { + readonly id: string; + readonly version: 1; + readonly token: string; + readonly method: OpenPetsIpcMethod; + readonly params?: unknown; +} + +export interface OpenPetsIpcOkResponse { + readonly id: string | null; + readonly ok: true; + readonly result: T; +} + +export interface OpenPetsIpcErrorResponse { + readonly id: string | null; + readonly ok: false; + readonly error: { + readonly code: string; + readonly message: string; + }; +} + +export type OpenPetsIpcResponse = OpenPetsIpcOkResponse | OpenPetsIpcErrorResponse; + +export function parseIpcResponse(value: unknown): OpenPetsIpcResponse { + if (!isRecord(value)) throw new OpenPetsClientError("invalid_response", "IPC response must be an object."); + if (typeof value.id !== "string" && value.id !== null) throw new OpenPetsClientError("invalid_response", "IPC response id is invalid."); + + if (value.ok === true) { + return { id: value.id, ok: true, result: value.result as T }; + } + + if (value.ok === false && isRecord(value.error) && typeof value.error.code === "string" && typeof value.error.message === "string") { + return { id: value.id, ok: false, error: { code: value.error.code, message: value.error.message } }; + } + + throw new OpenPetsClientError("invalid_response", "IPC response shape is invalid."); +} + +export function validateReaction(value: string): OpenPetsReaction { + if (!allowedReactions.includes(value as OpenPetsReaction)) { + throw new OpenPetsClientError("invalid_reaction", "Invalid OpenPets reaction."); + } + return value as OpenPetsReaction; +} + +export class OpenPetsClientError extends Error { + constructor(readonly code: string, message: string) { + super(message); + } +} + +export function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} diff --git a/packages/client/src/smoke.ts b/packages/client/src/smoke.ts new file mode 100644 index 00000000..4dcd4acb --- /dev/null +++ b/packages/client/src/smoke.ts @@ -0,0 +1,30 @@ +import { createOpenPetsClient } from "./index.js"; +import { validateReaction, type OpenPetsReaction } from "./protocol.js"; + +const client = createOpenPetsClient(); +const [command = "status", first, second] = process.argv.slice(2); + +try { + const result = command === "hello" + ? await client.hello() + : command === "status" + ? await client.status() + : command === "react" + ? await client.react(validateReaction(first ?? "idle")) + : command === "say" + ? await client.say(first ?? "Working on it", second ? { reaction: validateReaction(second) as OpenPetsReaction } : undefined) + : command === "invalid-token" + ? await runInvalidTokenCheck() + : await client.status(); + + console.log(JSON.stringify(result, null, 2)); +} catch (error) { + console.error(error instanceof Error ? error.message : String(error)); + process.exitCode = 1; +} + +async function runInvalidTokenCheck(): Promise { + const { readDiscoveryFile, sendRequest } = await import("./index.js"); + const discovery = readDiscoveryFile(); + return sendRequest({ ...discovery, token: "invalid-token-value" }, "hello", {}); +} diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json new file mode 100644 index 00000000..762e7118 --- /dev/null +++ b/packages/client/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/mcp/package.json b/packages/mcp/package.json new file mode 100644 index 00000000..bd420018 --- /dev/null +++ b/packages/mcp/package.json @@ -0,0 +1,43 @@ +{ + "name": "@open-pets/mcp", + "version": "2.0.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "packages/mcp" + }, + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "bin": { + "open-pets-mcp": "./dist/index.js" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "test": "node dist/check-mcp-contract.js", + "check": "pnpm --filter @open-pets/client build && pnpm typecheck && pnpm build && pnpm test", + "typecheck": "tsc --noEmit", + "build": "tsc && node dist/ensure-executable.js" + }, + "devDependencies": { + "@types/node": "^25.6.2", + "typescript": "^6.0.3" + }, + "dependencies": { + "@modelcontextprotocol/sdk": "^1.29.0", + "@open-pets/client": "workspace:*", + "zod": "^4.4.3" + } +} diff --git a/packages/mcp/src/args.ts b/packages/mcp/src/args.ts new file mode 100644 index 00000000..814db3eb --- /dev/null +++ b/packages/mcp/src/args.ts @@ -0,0 +1,57 @@ +export interface McpCliOptions { + readonly petId?: string; + readonly help: boolean; + readonly version: boolean; +} + +export function parseMcpArgs(argv: readonly string[]): McpCliOptions { + let petId: string | undefined; + let help = false; + let version = false; + + for (let index = 0; index < argv.length; index += 1) { + const arg = argv[index]; + if (arg === "--help" || arg === "-h") { + help = true; + continue; + } + if (arg === "--version" || arg === "-v") { + version = true; + continue; + } + if (arg === "--pet") { + const next = argv[index + 1]; + if (!next) throw new Error("--pet requires a pet id."); + petId = validateRawPetArg(next); + index += 1; + continue; + } + if (arg.startsWith("--pet=")) { + petId = validateRawPetArg(arg.slice("--pet=".length)); + continue; + } + throw new Error(`Unknown argument: ${arg}`); + } + + return { petId, help, version }; +} + +export function validatePetId(value: string): string { + if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(value) || value === "builtin") { + throw new Error(`Invalid pet id: ${value}`); + } + return value; +} + +export function validateRawPetArg(value: string): string { + const trimmed = value.trim(); + if (trimmed.length < 1) throw new Error("--pet requires a non-empty pet id."); + if (Buffer.byteLength(trimmed, "utf8") > 128 || /[\x00-\x1F\x7F/\\]/.test(trimmed)) { + throw new Error("--pet value is outside OpenPets CLI bounds."); + } + return trimmed; +} + +export function createHelpText(): string { + return `OpenPets MCP server\n\nUsage:\n open-pets-mcp [--pet ]\n\nOptions:\n --pet Request an installed OpenPets pet for this MCP process; missing pets fall back to default.\n --help Show this help.\n --version Show package version.\n`; +} diff --git a/packages/mcp/src/check-mcp-contract.ts b/packages/mcp/src/check-mcp-contract.ts new file mode 100644 index 00000000..0c116b12 --- /dev/null +++ b/packages/mcp/src/check-mcp-contract.ts @@ -0,0 +1,129 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; + +import { Client } from "@modelcontextprotocol/sdk/client/index.js"; +import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; +import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js"; +import { CallToolResultSchema } from "@modelcontextprotocol/sdk/types.js"; + +import { parseMcpArgs } from "./args.js"; +import { createOpenPetsMcpServer } from "./server.js"; +import { createMcpStatus, sanitizeUnavailableReason, type OpenPetsMcpStatus } from "./tools.js"; + +parseMcpArgs(["--pet", "snoopy"]); +parseMcpArgs(["--pet=snoopy"]); +parseMcpArgs(["--pet", "Bad Pet"]); +parseMcpArgs(["--help"]); +assertRejects(() => parseMcpArgs(["--pet", "bad/pet"])); +assertRejects(() => parseMcpArgs(["--agent", "claude"])); + +const unavailableStatus = createMcpStatus({ ok: false, appRunning: false, unavailableReason: "/Users/alvin/.config/OpenPets/runtime/ipc.json ENOENT" }, "snoopy"); +if (unavailableStatus.routingImplemented !== true || unavailableStatus.configuredPetId !== "snoopy") { + throw new Error("MCP status did not preserve configured pet during degraded status."); +} +if (unavailableStatus.unavailableReason?.includes("/Users/")) { + throw new Error("Unavailable reason leaked a local path."); +} +if (sanitizeUnavailableReason("/tmp/openpets-501/openpets-1.sock ENOENT")?.includes("/tmp")) { + throw new Error("Sanitizer leaked socket path."); +} + +await checkMcpServerContract(); +await checkStdioServerContract(); +const builtEntrypoint = readFileSync(join("dist", "index.js"), "utf8"); +if (!builtEntrypoint.startsWith("#!/usr/bin/env node")) { + throw new Error("Built MCP entrypoint is missing a Node shebang."); +} + +console.error("MCP contract validation passed."); + +async function checkMcpServerContract(): Promise { + const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair(); + const fakeClient = { + status: async () => ({ ok: true, appRunning: true, defaultPet: { id: "snoopy", displayName: "Snoopy" } }), + listPets: async () => ({ ok: true as const, pets: [], defaultPetId: "builtin" }), + acquireLease: async () => ({ leaseId: "lease-1", requestedPetId: "snoopy", targetKind: "explicit" as const, actualTargetPetId: "snoopy", actualTargetPetName: "Snoopy", usingDefaultPet: false, expiresAt: Date.now() + 15_000, leaseActive: true }), + heartbeatLease: async (leaseId: string) => ({ leaseId, expiresAt: Date.now() + 15_000 }), + releaseLease: async () => ({ released: true }), + react: async (reaction: string, options?: { readonly leaseId?: string }) => ({ ok: true, reaction, leaseId: options?.leaseId }), + say: async (message: string, options?: { readonly leaseId?: string }) => ({ ok: true, message, leaseId: options?.leaseId }), + hello: async () => ({ ok: true }), + }; + const server = createOpenPetsMcpServer({ configuredPetId: "snoopy", client: fakeClient, lease: { lease: await fakeClient.acquireLease() }, leaseReady: Promise.resolve() }); + const client = new Client({ name: "openpets-contract", version: "0.0.0" }); + + await Promise.all([server.connect(serverTransport), client.connect(clientTransport)]); + try { + const tools = await client.listTools(); + const names = tools.tools.map((tool) => tool.name).sort(); + if (names.join(",") !== "openpets_react,openpets_say,openpets_status") { + throw new Error(`Unexpected MCP tool list: ${names.join(",")}`); + } + + const status = await client.callTool({ name: "openpets_status", arguments: {} }, CallToolResultSchema); + const structured = status.structuredContent as unknown as OpenPetsMcpStatus; + if (!structured.ok || structured.configuredPetId !== "snoopy" || structured.routingImplemented !== true || structured.actualTargetPetId !== "snoopy") { + throw new Error("Status tool returned unexpected structured content."); + } + + const react = await client.callTool({ name: "openpets_react", arguments: { reaction: "waving" } }, CallToolResultSchema); + if (react.isError) throw new Error("Valid reaction unexpectedly failed."); + const reactStructured = react.structuredContent as { readonly result?: { readonly leaseId?: string } } | undefined; + if (reactStructured?.result?.leaseId !== "lease-1") throw new Error("Reaction did not pass lease id to client."); + + const invalidReact = await client.callTool({ name: "openpets_react", arguments: { reaction: "bad" } }, CallToolResultSchema); + if (!invalidReact.isError) throw new Error("Invalid reaction was not rejected."); + + const invalidSay = await client.callTool({ name: "openpets_say", arguments: { message: "const secret = 1" } }, CallToolResultSchema); + if (!invalidSay.isError) throw new Error("Unsafe say message was not rejected."); + + const stale = createMcpStatus({ ok: false, appRunning: true, leaseId: "missing", leaseActive: false, staleReason: "unknown_lease" }, "snoopy", undefined, "missing", "missing"); + if (stale.leaseActive !== false || stale.staleReason !== "unknown_lease" || stale.ok !== false) { + throw new Error("Stale MCP lease status was not preserved."); + } + } finally { + await client.close(); + await server.close(); + } +} + +async function checkStdioServerContract(): Promise { + const transport = new StdioClientTransport({ + command: process.execPath, + args: [join("dist", "index.js"), "--pet", "snoopy"], + env: { ...process.env, OPENPETS_DISCOVERY_FILE: join(process.cwd(), ".missing-openpets-discovery.json") }, + stderr: "pipe", + }); + const client = new Client({ name: "openpets-stdio-contract", version: "0.0.0" }); + await client.connect(transport); + try { + const tools = await client.listTools(); + const names = tools.tools.map((tool) => tool.name).sort(); + if (names.join(",") !== "openpets_react,openpets_say,openpets_status") { + throw new Error(`Unexpected stdio MCP tool list: ${names.join(",")}`); + } + + const status = await client.callTool({ name: "openpets_status", arguments: {} }, CallToolResultSchema); + const content = Array.isArray(status.content) ? status.content : []; + const first = content[0] as { readonly type?: unknown; readonly text?: unknown } | undefined; + const text = first?.type === "text" && typeof first.text === "string" ? first.text : ""; + if (!text.includes("Configured --pet snoopy") || !text.includes("actual target is unavailable")) { + throw new Error("Unavailable stdio status did not explain configured pet and unavailable target."); + } + const structured = status.structuredContent as unknown as OpenPetsMcpStatus; + if (structured.appRunning !== false || structured.configuredPetId !== "snoopy" || structured.routingImplemented !== true) { + throw new Error("Unavailable stdio status returned unexpected structured content."); + } + } finally { + await client.close(); + } +} + +function assertRejects(callback: () => unknown): void { + try { + callback(); + } catch { + return; + } + throw new Error("Expected validation to reject."); +} diff --git a/packages/mcp/src/ensure-executable.ts b/packages/mcp/src/ensure-executable.ts new file mode 100644 index 00000000..bae027cd --- /dev/null +++ b/packages/mcp/src/ensure-executable.ts @@ -0,0 +1,9 @@ +import { chmodSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const entrypoint = join(dirname(fileURLToPath(import.meta.url)), "index.js"); + +if (process.platform !== "win32") { + chmodSync(entrypoint, 0o755); +} diff --git a/packages/mcp/src/index.ts b/packages/mcp/src/index.ts new file mode 100644 index 00000000..82897f09 --- /dev/null +++ b/packages/mcp/src/index.ts @@ -0,0 +1,99 @@ +#!/usr/bin/env node +import { readFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; + +import { createHelpText, parseMcpArgs } from "./args.js"; +import { createOpenPetsMcpServer } from "./server.js"; +import { createToolContext, type LeaseContext } from "./tools.js"; + +async function main(): Promise { + const options = parseMcpArgs(process.argv.slice(2)); + + if (options.help) { + process.stdout.write(createHelpText()); + return; + } + + if (options.version) { + process.stdout.write(`${readPackageVersion()}\n`); + return; + } + + const lease: LeaseContext = {}; + const context = createToolContext(options.petId); + const leaseReady = acquireStartupLease(context.client, lease, options.petId); + const server = createOpenPetsMcpServer({ ...context, lease, leaseReady }); + let heartbeatTimer: NodeJS.Timeout | null = null; + let closing = false; + leaseReady.then(() => { + if (!lease.lease) return; + heartbeatTimer = setInterval(() => { + if (!lease.lease) return; + void context.client.heartbeatLease(lease.lease.leaseId).catch((error: unknown) => { + lease.staleLeaseId = lease.lease?.leaseId; + lease.degradedReason = sanitizeMcpRuntimeError(error); + lease.lease = undefined; + if (heartbeatTimer) clearInterval(heartbeatTimer); + heartbeatTimer = null; + }); + }, 5_000); + heartbeatTimer.unref?.(); + }).catch(() => {}); + const transport = new StdioServerTransport(); + const close = async (): Promise => { + if (closing) return; + closing = true; + if (heartbeatTimer) clearInterval(heartbeatTimer); + heartbeatTimer = null; + const leaseId = lease.lease?.leaseId; + lease.lease = undefined; + if (leaseId) { + try { await context.client.releaseLease(leaseId); } catch { /* best effort */ } + } + try { await server.close(); } catch { /* ignore shutdown errors */ } + }; + transport.onclose = () => { void close(); }; + + process.on("SIGINT", () => { void close().finally(() => process.exit(0)); }); + process.on("SIGTERM", () => { void close().finally(() => process.exit(0)); }); + + await server.connect(transport); +} + +async function acquireStartupLease(client: ReturnType["client"], lease: LeaseContext, requestedPetId: string | undefined): Promise { + try { + lease.lease = await client.acquireLease({ requestedPetId }); + lease.staleLeaseId = undefined; + lease.degradedReason = undefined; + } catch (error) { + lease.lease = undefined; + lease.staleLeaseId = undefined; + lease.degradedReason = sanitizeMcpRuntimeError(error); + } +} + +function sanitizeMcpRuntimeError(error: unknown): string { + const message = error instanceof Error ? error.message : "OpenPets lease operation failed."; + if (/\/|\\|\.sock|pipe|token|ipc\.json|ENOENT|ECONNREFUSED|EACCES/i.test(message)) { + return "OpenPets desktop app or local IPC is unavailable."; + } + return message.slice(0, 160); +} + +main().catch((error: unknown) => { + process.stderr.write(`OpenPets MCP server failed: ${error instanceof Error ? error.message : String(error)}\n`); + process.exit(1); +}); + +function readPackageVersion(): string { + try { + const here = dirname(fileURLToPath(import.meta.url)); + const packageJson = JSON.parse(readFileSync(join(here, "..", "package.json"), "utf8")) as { version?: unknown }; + return typeof packageJson.version === "string" ? packageJson.version : "0.0.0"; + } catch { + return "0.0.0"; + } +} diff --git a/packages/mcp/src/server.ts b/packages/mcp/src/server.ts new file mode 100644 index 00000000..919a97d8 --- /dev/null +++ b/packages/mcp/src/server.ts @@ -0,0 +1,32 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +import { handleReact, handleSay, handleStatus, reactSchema, saySchema, type ToolContext } from "./tools.js"; + +export function createOpenPetsMcpServer(context: ToolContext): McpServer { + const server = new McpServer({ name: "open-pets", version: "0.0.0" }, { + instructions: "Interact with the user's OpenPets desktop companion. Use openpets_status first. Use openpets_say only for short status/personality messages, never code, logs, secrets, URLs, or file paths.", + }); + + server.registerTool("openpets_status", { + title: "OpenPets Status", + description: "Check whether OpenPets is reachable and which pet MCP events currently target.", + inputSchema: {}, + annotations: { readOnlyHint: true, idempotentHint: true }, + }, async () => handleStatus(context)); + + server.registerTool("openpets_react", { + title: "OpenPets React", + description: "Set a short coding-oriented reaction on the OpenPets desktop pet.", + inputSchema: reactSchema, + annotations: { readOnlyHint: false, idempotentHint: false }, + }, async (input) => handleReact(input, context)); + + server.registerTool("openpets_say", { + title: "OpenPets Say", + description: "Show a short safe message on the OpenPets desktop pet. Do not send code, logs, secrets, URLs, or file paths.", + inputSchema: saySchema, + annotations: { readOnlyHint: false, idempotentHint: false }, + }, async (input) => handleSay(input, context)); + + return server; +} diff --git a/packages/mcp/src/tools.ts b/packages/mcp/src/tools.ts new file mode 100644 index 00000000..6bc8465c --- /dev/null +++ b/packages/mcp/src/tools.ts @@ -0,0 +1,181 @@ +import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; +import { allowedReactions, createOpenPetsClient, OpenPetsClientError, type OpenPetsClient, type OpenPetsLeaseResult, type OpenPetsReaction, type OpenPetsStatusResult } from "@open-pets/client"; +import { z } from "zod"; + +export const reactionSchema = z.enum(allowedReactions); + +export const saySchema = z.object({ + message: z.string().trim().min(1).max(140) + .refine((value) => !/[\r\n]/.test(value), "Message must be single-line.") + .refine((value) => !/```||\b(class|import|export|const|let|var)\b/.test(value), "Message looks like code.") + .refine((value) => !/https?:\/\/|www\.|\/[\w.-]+\/[\w./-]+|[A-Za-z]:\\/.test(value), "Message contains URL or path-like content.") + .refine((value) => !/(api[_-]?key|secret|token|password|passwd|BEGIN [A-Z ]+PRIVATE KEY)/i.test(value), "Message looks secret-like."), + reaction: reactionSchema.optional(), +}); + +export const reactSchema = z.object({ reaction: reactionSchema }); + +export interface OpenPetsMcpStatus { + readonly [key: string]: unknown; + ok: boolean; + appRunning: boolean; + configuredPetId?: string; + actualTargetPetId?: string; + actualTargetPetName?: string; + usingDefaultPet: boolean; + routingImplemented: boolean; + unavailableReason?: string; + fallbackReason?: string; +} + +export interface LeaseContext { + lease?: OpenPetsLeaseResult; + staleLeaseId?: string; + degradedReason?: string; +} + +export interface ToolContext { + readonly configuredPetId?: string; + readonly client?: OpenPetsClient; + readonly lease?: LeaseContext; + readonly leaseReady?: Promise; +} + +export function createToolContext(configuredPetId?: string): ToolContext & { readonly client: OpenPetsClient } { + return { + configuredPetId, + client: createOpenPetsClient(), + }; +} + +export async function handleStatus(context: ToolContext): Promise { + await context.leaseReady; + const client = context.client ?? createOpenPetsClient(); + const leaseId = context.lease?.lease?.leaseId ?? context.lease?.staleLeaseId; + const status = await client.status({ leaseId }); + const structured = createMcpStatus(status, context.configuredPetId, context.lease?.lease, context.lease?.degradedReason, context.lease?.staleLeaseId); + const configuredText = context.configuredPetId + ? `Configured --pet ${context.configuredPetId}; actual target is ${structured.actualTargetPetId ?? "unavailable"}.` + : "No --pet configured; actual target is the desktop default pet."; + + if (!structured.appRunning) { + return { + content: [{ type: "text", text: `OpenPets is unavailable. ${configuredText} ${structured.unavailableReason ?? "Open the OpenPets desktop app and try again."}` }], + structuredContent: structured, + }; + } + + return { + content: [{ type: "text", text: `OpenPets is running. ${configuredText}` }], + structuredContent: structured, + }; +} + +export async function handleReact(input: unknown, context: ToolContext): Promise { + await context.leaseReady; + const parsed = reactSchema.safeParse(input); + if (!parsed.success) return toolError("Invalid reaction. Use one of: " + allowedReactions.join(", ")); + if (!context.lease?.lease) return toolError(`OpenPets lease is unavailable. ${sanitizeUnavailableReason(context.lease?.degradedReason) ?? "Open OpenPets and try again."}`); + + try { + const client = context.client ?? createOpenPetsClient(); + const result = await client.react(parsed.data.reaction, { leaseId: context.lease.lease.leaseId }); + return { + content: [{ type: "text", text: `OpenPets reaction sent: ${parsed.data.reaction}` }], + structuredContent: { ok: true, reaction: parsed.data.reaction, result }, + }; + } catch (error) { + return toolError(`OpenPets desktop app is not running or local IPC is unavailable. ${sanitizeError(error)}`); + } +} + +export async function handleSay(input: unknown, context: ToolContext): Promise { + await context.leaseReady; + const parsed = saySchema.safeParse(input); + if (!parsed.success) return toolError("Invalid message. Keep it short, single-line, and avoid code, secrets, URLs, and file paths."); + if (!context.lease?.lease) return toolError(`OpenPets lease is unavailable. ${sanitizeUnavailableReason(context.lease?.degradedReason) ?? "Open OpenPets and try again."}`); + + try { + const client = context.client ?? createOpenPetsClient(); + const result = await client.say(parsed.data.message, { reaction: parsed.data.reaction, leaseId: context.lease.lease.leaseId }); + return { + content: [{ type: "text", text: "OpenPets message sent." }], + structuredContent: { ok: true, result }, + }; + } catch (error) { + return toolError(`OpenPets desktop app is not running or local IPC is unavailable. ${sanitizeError(error)}`); + } +} + +export function createMcpStatus(status: OpenPetsStatusResult, configuredPetId?: string, lease?: OpenPetsLeaseResult, degradedReason?: string, staleLeaseId?: string): OpenPetsMcpStatus { + if (status.leaseActive === false || staleLeaseId) { + return { + ok: false, + appRunning: status.appRunning === true, + configuredPetId, + usingDefaultPet: true, + routingImplemented: true, + unavailableReason: sanitizeUnavailableReason(degradedReason ?? status.unavailableReason ?? status.staleReason), + leaseId: typeof status.leaseId === "string" ? status.leaseId : staleLeaseId, + leaseActive: false, + staleReason: typeof status.staleReason === "string" ? status.staleReason : "unknown_lease", + } as OpenPetsMcpStatus; + } + if (lease) { + const statusTargetPetId = typeof status.actualTargetPetId === "string" ? status.actualTargetPetId : undefined; + const statusTargetPetName = typeof status.actualTargetPetName === "string" ? status.actualTargetPetName : undefined; + const statusUsingDefault = typeof status.usingDefaultPet === "boolean" ? status.usingDefaultPet : undefined; + const statusFallbackReason = typeof status.fallbackReason === "string" ? status.fallbackReason : undefined; + return { + ok: status.appRunning === true && status.ok !== false, + appRunning: status.appRunning === true, + configuredPetId, + actualTargetPetId: statusTargetPetId ?? lease.actualTargetPetId, + actualTargetPetName: statusTargetPetName ?? lease.actualTargetPetName, + usingDefaultPet: statusUsingDefault ?? lease.usingDefaultPet, + routingImplemented: true, + fallbackReason: statusFallbackReason ?? lease.fallbackReason, + leaseId: lease.leaseId, + leaseActive: lease.leaseActive, + }; + } + const defaultPet = isRecord(status.defaultPet) ? status.defaultPet : undefined; + const actualTargetPetId = typeof defaultPet?.id === "string" ? defaultPet.id : undefined; + const actualTargetPetName = typeof defaultPet?.displayName === "string" ? defaultPet.displayName : undefined; + const appRunning = status.appRunning === true; + + return { + ok: appRunning && status.ok !== false, + appRunning, + configuredPetId, + actualTargetPetId, + actualTargetPetName, + usingDefaultPet: true, + routingImplemented: true, + unavailableReason: appRunning ? undefined : sanitizeUnavailableReason(degradedReason ?? status.unavailableReason), + fallbackReason: undefined, + }; +} + +export function toolError(message: string): CallToolResult { + return { content: [{ type: "text", text: message }], isError: true }; +} + +export function sanitizeUnavailableReason(value: unknown): string | undefined { + if (typeof value !== "string" || value.length === 0) return "OpenPets desktop app is unavailable."; + if (/\/|\\|\.sock|pipe|token|ipc\.json|ENOENT|ECONNREFUSED|EACCES/i.test(value)) { + return "OpenPets desktop app or local IPC is unavailable."; + } + return value.slice(0, 160); +} + +function sanitizeError(error: unknown): string { + if (error instanceof OpenPetsClientError) return sanitizeUnavailableReason(error.message) ?? "OpenPets is unavailable."; + return "Open OpenPets and try again."; +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} + +export type { OpenPetsReaction }; diff --git a/packages/mcp/tsconfig.json b/packages/mcp/tsconfig.json new file mode 100644 index 00000000..762e7118 --- /dev/null +++ b/packages/mcp/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/opencode/package.json b/packages/opencode/package.json new file mode 100644 index 00000000..6a24ce7e --- /dev/null +++ b/packages/opencode/package.json @@ -0,0 +1,44 @@ +{ + "name": "@open-pets/opencode", + "version": "2.0.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "packages/opencode" + }, + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./server": { + "types": "./dist/plugin.d.ts", + "default": "./dist/plugin.js" + } + }, + "scripts": { + "test": "node dist/check-opencode-foundation.js && node dist/check-opencode-plugin.js", + "check": "pnpm typecheck && pnpm build && pnpm test", + "typecheck": "tsc --noEmit", + "build": "tsc" + }, + "dependencies": { + "@open-pets/agent-events": "workspace:*", + "@open-pets/client": "workspace:*", + "jsonc-parser": "^3.3.1" + }, + "devDependencies": { + "@types/node": "^25.6.2", + "typescript": "^6.0.3" + } +} diff --git a/packages/opencode/src/check-opencode-foundation.ts b/packages/opencode/src/check-opencode-foundation.ts new file mode 100644 index 00000000..ac7a120e --- /dev/null +++ b/packages/opencode/src/check-opencode-foundation.ts @@ -0,0 +1,268 @@ +import assert from "node:assert/strict"; +import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; + +import { hookSpeechPools, validateHookSpeech } from "@open-pets/agent-events"; + +import { createOpenCodeExecutableDetection, executePlannedWrite, getGlobalOpenCodeConfigDir, getGlobalOpenCodeConfigPaths, getProjectOpenCodeConfigPaths, parseOpenCodeConfig, planOpenCodeConfigWrite, selectProjectOpenCodeConfigPath, updateOpenCodeConfigText } from "./opencode-config.js"; +import { buildOpenCodeInstructionPath, buildOpenCodeMcpEntry, buildOpenCodePluginPreview, formatOpenCodeMcpConfig } from "./opencode-previews.js"; +import { doctorOpenCodeGlobalSetup, prepareOpenCodeGlobalRemove, prepareOpenCodeGlobalSetup, writePreparedOpenCodeGlobalRemove, writePreparedOpenCodeGlobalSetup } from "./opencode-global-setup.js"; +import { classifyOpenCodeInstructionsStatus, classifyOpenCodeMcpStatus, classifyOpenCodePluginStatus } from "./opencode-status.js"; + +const root = mkdtempSync(join(tmpdir(), "openpets-opencode-")); +try { + const project = join(root, "project"); + mkdirSync(project); + const paths = getProjectOpenCodeConfigPaths(project); + assert.deepEqual(paths.candidates.map((path) => path.slice(project.length + 1)), ["opencode.json", "opencode.jsonc", ".opencode/opencode.json", ".opencode/opencode.jsonc"]); + assert.equal(selectProjectOpenCodeConfigPath(project), join(project, ".opencode", "opencode.jsonc")); + mkdirSync(join(project, ".opencode")); + writeFileSync(join(project, ".opencode", "opencode.jsonc"), "{}\n"); + assert.equal(selectProjectOpenCodeConfigPath(project), join(project, ".opencode", "opencode.jsonc")); + writeFileSync(join(project, "opencode.json"), "{}\n"); + assert.equal(selectProjectOpenCodeConfigPath(project), join(project, "opencode.json")); + + assert.equal(getGlobalOpenCodeConfigDir({ OPENCODE_CONFIG_DIR: join(root, "custom") }, root, "linux"), join(root, "custom")); + assert.equal(getGlobalOpenCodeConfigDir({ XDG_CONFIG_HOME: join(root, "xdg") }, root, "linux"), join(root, "xdg", "opencode")); + assert.equal(getGlobalOpenCodeConfigDir({ APPDATA: join(root, "appdata") }, root, "win32"), join(root, "appdata", "opencode")); + assert.deepEqual(getGlobalOpenCodeConfigPaths({ OPENCODE_CONFIG_DIR: join(root, "global") }, root, "linux").candidates.map((path) => path.slice(join(root, "global").length + 1)), ["config.json", "opencode.json", "opencode.jsonc"]); + assert.deepEqual(createOpenCodeExecutableDetection({ platform: "win32" }).command, "opencode.cmd"); + assert.deepEqual(createOpenCodeExecutableDetection({ platform: "darwin" }).command, "opencode"); + + assert.deepEqual(formatOpenCodeMcpConfig({ cliVersion: "0.0.0", petId: "fixer" }), { mcp: { openpets: { type: "local", command: ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], enabled: true } } }); + assert.deepEqual(buildOpenCodeMcpEntry({ cliVersion: "0.0.0" }), { type: "local", command: ["npx", "-y", "@open-pets/cli@0.0.0", "mcp"], enabled: true }); + assert.deepEqual(buildOpenCodeMcpEntry({ cliVersion: "0.0.0", commandMode: "local", cliEntryPath: join(root, "cli.js"), petId: "fixer" }), { type: "local", command: ["node", join(root, "cli.js"), "mcp", "--pet", "fixer"], enabled: true }); + assert.throws(() => buildOpenCodeMcpEntry({ cliVersion: "0.0.0", commandMode: "local", cliEntryPath: "relative.js" })); + assert.throws(() => buildOpenCodeMcpEntry({ cliVersion: "0.0.0", petId: "bad/pet" })); + assert.equal(buildOpenCodeInstructionPath("project"), ".opencode/openpets.md"); + assert.equal(buildOpenCodeInstructionPath("global", join(root, "global")), join(root, "global", "openpets.md")); + assert.deepEqual(buildOpenCodePluginPreview("fixer"), ["@open-pets/opencode", { pet: "fixer" }]); + assert.deepEqual(buildOpenCodePluginPreview("fixer", "0.0.0"), ["@open-pets/opencode@0.0.0", { pet: "fixer" }]); + + const jsonc = `{ + // keep this comment + "theme": "dark", + "mcp": { "other": { "type": "local", "command": ["x"] } }, + }`; + const parsed = parseOpenCodeConfig(jsonc); + assert.equal(parsed.ok, true); + const updated = updateOpenCodeConfigText(jsonc, [{ path: ["mcp", "openpets"], value: buildOpenCodeMcpEntry({ cliVersion: "0.0.0", petId: "fixer" }) }]); + assert.equal(typeof updated, "string"); + assert.match(String(updated), /keep this comment/); + assert.match(String(updated), /"openpets"/); + assert.match(String(updated), /"other"/); + assert.equal(parseOpenCodeConfig("{").ok, false); + assert.equal(parseOpenCodeConfig("[]").ok, false); + assert.equal(parseOpenCodeConfig(JSON.stringify({ mcp: [] })).ok, false); + assert.equal(parseOpenCodeConfig(JSON.stringify({ instructions: "x" })).ok, false); + assert.equal(parseOpenCodeConfig(JSON.stringify({ plugin: {} })).ok, false); + assert.equal(parseOpenCodeConfig(JSON.stringify({ instructions: [1] })).ok, false); + assert.equal(parseOpenCodeConfig(`{"x":"${"a".repeat(1024 * 1024)}"}`).ok, false); + + const expected = { cliVersion: "0.0.0", petId: "fixer" }; + assert.equal(classifyOpenCodeMcpStatus([], expected).status, "not_installed"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: buildOpenCodeMcpEntry(expected) } }], expected).status, "installed"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: { command: ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], enabled: true, type: "local" } } }], expected).status, "installed"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: buildOpenCodeMcpEntry({ cliVersion: "0.0.0", petId: "helper" }) } }], expected).status, "needs_update"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: buildOpenCodeMcpEntry({ cliVersion: "0.0.0", commandMode: "local", cliEntryPath: join(root, "cli.js"), petId: "helper" }) } }], { cliVersion: "0.0.0", commandMode: "local", cliEntryPath: join(root, "cli.js"), petId: "fixer" }).status, "needs_update"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: { type: "local", command: ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], enabled: false } } }], expected).status, "custom"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: { type: "remote", command: ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], enabled: true } } }], expected).status, "custom"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: { type: "local", command: ["npx", "-y", "@open-pets/cli@file:../cli", "mcp", "--pet", "fixer"], enabled: true } } }], expected).status, "custom"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: { type: "local", command: ["npx", "-y", "@open-pets/cli@workspace:*", "mcp", "--pet", "fixer"], enabled: true } } }], expected).status, "custom"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: { type: "local", command: ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], enabled: true, timeout: 10 } } }], expected).status, "custom"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: { type: "local", command: ["my-openpets-wrapper"] } } }], expected).status, "custom"); + assert.equal(classifyOpenCodeMcpStatus([{ mcp: { openpets: buildOpenCodeMcpEntry(expected) } }, { mcp: { openpets: buildOpenCodeMcpEntry({ cliVersion: "0.0.0", petId: "helper" }) } }], expected).status, "conflict"); + assert.equal(classifyOpenCodeInstructionsStatus([{ instructions: [".opencode/openpets.md"] }], "project", undefined, { ".opencode/openpets.md": "\nHi\n\n" }).status, "installed"); + assert.equal(classifyOpenCodeInstructionsStatus([{ instructions: [".opencode/openpets.md"] }], "project").status, "needs_update"); + assert.equal(classifyOpenCodeInstructionsStatus([{ instructions: [".opencode/openpets.md"] }, { instructions: ["old-openpets.md"] }], "project", undefined, { ".opencode/openpets.md": "\nHi\n\n" }).status, "conflict"); + assert.equal(classifyOpenCodeInstructionsStatus([{ instructions: ["old-openpets.md"] }], "project").status, "custom"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode", { pet: "fixer" }]] }], "fixer").status, "installed"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode@0.0.0", { pet: "fixer" }]] }], "fixer", "0.0.0").status, "installed"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: ["@open-pets/opencode"] }], "fixer").status, "needs_update"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode@old", { pet: "helper" }], "./openpets-custom-plugin.js"] }], "fixer", "0.0.0").status, "conflict"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode@0.0.0"]] }], "fixer", "0.0.0").status, "custom"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode@0.0.0", {}]] }], "fixer", "0.0.0").status, "custom"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode@0.0.0", { pet: "fixer" }, "extra"]] }], "fixer", "0.0.0").status, "custom"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode@0.0.0", { pet: "fixer", extra: true }]] }], "fixer", "0.0.0").status, "custom"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: ["./openpets-custom-plugin.js"] }], "fixer").status, "custom"); + assert.equal(classifyOpenCodePluginStatus([{ plugin: [["@open-pets/opencode", { pet: "fixer" }], "./openpets-custom-plugin.js"] }], "fixer").status, "conflict"); + + const writeTarget = join(root, "write", "opencode.jsonc"); + const writePlan = planOpenCodeConfigWrite(root, writeTarget, "{\"mcp\":{}}\n"); + if ("targetPath" in writePlan) { + executePlannedWrite(writePlan); + assert.equal(existsSync(writeTarget), true); + const second = planOpenCodeConfigWrite(root, writeTarget, "{\"mcp\":{}}\n"); + assert.equal("backupPath" in second && Boolean(second.backupPath), true); + if ("targetPath" in second && second.backupPath) { + writeFileSync(second.backupPath, "already exists"); + assert.throws(() => executePlannedWrite(second)); + } + assert.throws(() => executePlannedWrite({ ...writePlan, rootPath: join(root, "missing-root") })); + assert.throws(() => executePlannedWrite({ ...writePlan, tempPath: join(tmpdir(), "openpets-unsafe.tmp") })); + assert.throws(() => executePlannedWrite({ ...writePlan, backupPath: join(tmpdir(), "openpets-unsafe.backup") })); + } + const outsidePlan = planOpenCodeConfigWrite(root, join(tmpdir(), "outside-opencode.jsonc"), "{}\n"); + assert.equal("ok" in outsidePlan ? outsidePlan.ok : true, false); + const linkTarget = join(root, "link-target"); + mkdirSync(linkTarget); + symlinkSync(linkTarget, join(root, "link-parent")); + const linkParentPlan = planOpenCodeConfigWrite(root, join(root, "link-parent", "opencode.jsonc"), "{}\n"); + assert.equal("ok" in linkParentPlan ? linkParentPlan.ok : true, false); + const linkedFile = join(root, "linked-file.jsonc"); + writeFileSync(join(root, "real-file.jsonc"), "{}\n"); + symlinkSync(join(root, "real-file.jsonc"), linkedFile); + const linkedFilePlan = planOpenCodeConfigWrite(root, linkedFile, "{}\n"); + assert.equal("ok" in linkedFilePlan ? linkedFilePlan.ok : true, false); + symlinkSync(project, join(root, "project-link")); + assert.throws(() => getProjectOpenCodeConfigPaths(join(root, "project-link"))); + + const globalDir = join(root, "global-missing"); + const globalPrepared = prepareOpenCodeGlobalSetup({ configDir: globalDir, petId: "fixer", cliVersion: "0.0.0" }); + writePreparedOpenCodeGlobalSetup(globalPrepared); + assert.equal(existsSync(join(globalDir, "opencode.jsonc")), true); + assert.equal(doctorOpenCodeGlobalSetup(globalDir).status, "installed"); + const globalConfig = readFileSync(join(globalDir, "opencode.jsonc"), "utf8"); + assert.match(globalConfig, /@open-pets\/opencode@0\.0\.0/); + assert.match(readFileSync(join(globalDir, "openpets.md"), "utf8"), /OPENPETS:START/); + const globalRemove = prepareOpenCodeGlobalRemove(globalDir); + writePreparedOpenCodeGlobalRemove(globalRemove); + assert.equal(doctorOpenCodeGlobalSetup(globalDir).status, "not_installed"); + + const globalLower = join(root, "global-lower"); + mkdirSync(globalLower); + writeFileSync(join(globalLower, "config.json"), JSON.stringify({ theme: "keep" }), "utf8"); + writeFileSync(join(globalLower, "opencode.jsonc"), JSON.stringify({ plugin: [["@open-pets/opencode@old", { pet: "helper" }]] }), "utf8"); + writePreparedOpenCodeGlobalSetup(prepareOpenCodeGlobalSetup({ configDir: globalLower, petId: "fixer", cliVersion: "0.0.0" })); + assert.equal(readFileSync(join(globalLower, "config.json"), "utf8").includes("@open-pets/opencode"), false); + assert.match(readFileSync(join(globalLower, "opencode.jsonc"), "utf8"), /@open-pets\/opencode@0\.0\.0/); + + const globalExistingJson = join(root, "global-existing-json"); + mkdirSync(globalExistingJson); + writeFileSync(join(globalExistingJson, "opencode.json"), JSON.stringify({ plugin: ["user-plugin"], instructions: ["USER.md"] }, null, 2), "utf8"); + const existingJsonPrepared = prepareOpenCodeGlobalSetup({ configDir: globalExistingJson, petId: "fixer", cliVersion: "0.0.0" }); + assert.equal(existingJsonPrepared.configPath, join(globalExistingJson, "opencode.json")); + writePreparedOpenCodeGlobalSetup(existingJsonPrepared); + assert.equal(existsSync(join(globalExistingJson, "opencode.jsonc")), false, "desktop global setup must not create a higher-precedence opencode.jsonc over an existing opencode.json"); + const existingJsonConfig = JSON.parse(readFileSync(join(globalExistingJson, "opencode.json"), "utf8")) as { readonly plugin?: readonly unknown[]; readonly instructions?: readonly string[] }; + assert.deepEqual(existingJsonConfig.plugin?.[0], "user-plugin"); + assert.ok(existingJsonConfig.instructions?.includes("USER.md")); + + const globalExistingMultiple = join(root, "global-existing-multiple"); + mkdirSync(globalExistingMultiple); + writeFileSync(join(globalExistingMultiple, "config.json"), JSON.stringify({ theme: "base" }, null, 2), "utf8"); + writeFileSync(join(globalExistingMultiple, "opencode.json"), JSON.stringify({ plugin: ["user-plugin"] }, null, 2), "utf8"); + const existingMultiplePrepared = prepareOpenCodeGlobalSetup({ configDir: globalExistingMultiple, petId: "fixer", cliVersion: "0.0.0" }); + assert.equal(existingMultiplePrepared.configPath, join(globalExistingMultiple, "opencode.json")); + assert.equal(readFileSync(join(globalExistingMultiple, "config.json"), "utf8").includes("openpets"), false); + + const globalLowerPluginOwner = join(root, "global-lower-plugin-owner"); + mkdirSync(globalLowerPluginOwner); + writeFileSync(join(globalLowerPluginOwner, "config.json"), JSON.stringify({ plugin: ["user-plugin"] }, null, 2), "utf8"); + writeFileSync(join(globalLowerPluginOwner, "opencode.json"), JSON.stringify({ theme: "dark" }, null, 2), "utf8"); + const lowerPluginPrepared = prepareOpenCodeGlobalSetup({ configDir: globalLowerPluginOwner, petId: "fixer", cliVersion: "0.0.0" }); + assert.equal(lowerPluginPrepared.configPath, join(globalLowerPluginOwner, "config.json")); + writePreparedOpenCodeGlobalSetup(lowerPluginPrepared); + const lowerPluginConfig = JSON.parse(readFileSync(join(globalLowerPluginOwner, "config.json"), "utf8")) as { readonly plugin?: readonly unknown[] }; + assert.deepEqual(lowerPluginConfig.plugin?.[0], "user-plugin"); + assert.equal(readFileSync(join(globalLowerPluginOwner, "opencode.json"), "utf8").includes("openpets"), false); + + const globalSplitArrayOwners = join(root, "global-split-array-owners"); + mkdirSync(globalSplitArrayOwners); + writeFileSync(join(globalSplitArrayOwners, "config.json"), JSON.stringify({ plugin: ["user-plugin"] }, null, 2), "utf8"); + writeFileSync(join(globalSplitArrayOwners, "opencode.json"), JSON.stringify({ instructions: ["USER.md"] }, null, 2), "utf8"); + assert.throws(() => prepareOpenCodeGlobalSetup({ configDir: globalSplitArrayOwners, petId: "fixer", cliVersion: "0.0.0" }), /different config files/); + + const globalEmptyPluginShadow = join(root, "global-empty-plugin-shadow"); + mkdirSync(globalEmptyPluginShadow); + writeFileSync(join(globalEmptyPluginShadow, "config.json"), JSON.stringify({ plugin: ["user-plugin"] }, null, 2), "utf8"); + writeFileSync(join(globalEmptyPluginShadow, "opencode.json"), JSON.stringify({ plugin: [] }, null, 2), "utf8"); + assert.throws(() => prepareOpenCodeGlobalSetup({ configDir: globalEmptyPluginShadow, petId: "fixer", cliVersion: "0.0.0" }), /higher-precedence config shadows user plugin/); + + const globalEmptyInstructionShadow = join(root, "global-empty-instruction-shadow"); + mkdirSync(globalEmptyInstructionShadow); + writeFileSync(join(globalEmptyInstructionShadow, "config.json"), JSON.stringify({ instructions: ["USER.md"] }, null, 2), "utf8"); + writeFileSync(join(globalEmptyInstructionShadow, "opencode.json"), JSON.stringify({ instructions: [] }, null, 2), "utf8"); + assert.throws(() => prepareOpenCodeGlobalSetup({ configDir: globalEmptyInstructionShadow, petId: "fixer", cliVersion: "0.0.0" }), /higher-precedence config shadows user instructions/); + + const globalEmptyArrayOwner = join(root, "global-empty-array-owner"); + mkdirSync(globalEmptyArrayOwner); + writeFileSync(join(globalEmptyArrayOwner, "opencode.json"), JSON.stringify({ plugin: [] }, null, 2), "utf8"); + const emptyArrayOwnerPrepared = prepareOpenCodeGlobalSetup({ configDir: globalEmptyArrayOwner, petId: "fixer", cliVersion: "0.0.0" }); + assert.equal(emptyArrayOwnerPrepared.configPath, join(globalEmptyArrayOwner, "opencode.json")); + + const globalStaleOverlay = join(root, "global-stale-overlay"); + mkdirSync(globalStaleOverlay); + writeFileSync(join(globalStaleOverlay, "opencode.json"), JSON.stringify({ plugin: ["user-plugin"], instructions: ["USER.md"] }, null, 2), "utf8"); + writeFileSync(join(globalStaleOverlay, "opencode.jsonc"), JSON.stringify({ plugin: [["@open-pets/opencode@0.0.0", { pet: "helper" }]], instructions: [buildOpenCodeInstructionPath("global", globalStaleOverlay)] }, null, 2), "utf8"); + const stalePrepared = prepareOpenCodeGlobalSetup({ configDir: globalStaleOverlay, petId: "fixer", cliVersion: "0.0.1" }); + assert.equal(stalePrepared.configPath, join(globalStaleOverlay, "opencode.json")); + assert.equal(stalePrepared.cleanupConfigWrites.length, 1); + writePreparedOpenCodeGlobalSetup(stalePrepared); + const staleOwnerConfig = JSON.parse(readFileSync(join(globalStaleOverlay, "opencode.json"), "utf8")) as { readonly plugin?: readonly unknown[]; readonly instructions?: readonly string[] }; + assert.deepEqual(staleOwnerConfig.plugin?.[0], "user-plugin"); + assert.ok(staleOwnerConfig.instructions?.includes("USER.md")); + const staleOverlayText = readFileSync(join(globalStaleOverlay, "opencode.jsonc"), "utf8"); + assert.doesNotMatch(staleOverlayText, /plugin/); + assert.doesNotMatch(staleOverlayText, /instructions/); + + const globalStaleRemove = join(root, "global-stale-remove"); + mkdirSync(globalStaleRemove); + writeFileSync(join(globalStaleRemove, "opencode.json"), JSON.stringify({ plugin: ["user-plugin"] }, null, 2), "utf8"); + writeFileSync(join(globalStaleRemove, "opencode.jsonc"), JSON.stringify({ plugin: [["@open-pets/opencode@0.0.0", { pet: "fixer" }]] }, null, 2), "utf8"); + writePreparedOpenCodeGlobalRemove(prepareOpenCodeGlobalRemove(globalStaleRemove)); + assert.doesNotMatch(readFileSync(join(globalStaleRemove, "opencode.jsonc"), "utf8"), /plugin/); + assert.match(readFileSync(join(globalStaleRemove, "opencode.json"), "utf8"), /user-plugin/); + + const globalPublishedToBundled = join(root, "global-published-to-bundled"); + mkdirSync(globalPublishedToBundled); + writeFileSync(join(globalPublishedToBundled, "opencode.jsonc"), JSON.stringify({ mcp: { openpets: buildOpenCodeMcpEntry({ cliVersion: "0.0.0", petId: "helper" }) } }), "utf8"); + const bundledCli = join(root, "app.asar.unpacked", "node_modules", "@open-pets", "cli", "dist", "index.js"); + const migrated = prepareOpenCodeGlobalSetup({ configDir: globalPublishedToBundled, petId: "fixer", cliVersion: "0.0.1", pluginVersion: "0.0.2", commandMode: "bundled", cliEntryPath: bundledCli }); + assert.equal(migrated.configPath, join(globalPublishedToBundled, "opencode.jsonc")); + assert.match(migrated.configWrite.content, /app\.asar\.unpacked/); + assert.doesNotMatch(migrated.configWrite.content, /app\.asar(?!\.unpacked)/); + assert.match(migrated.configWrite.content, /@open-pets\/opencode@0\.0\.2/); + + const globalNoInstructionMarkers = join(root, "global-no-instruction-markers"); + mkdirSync(globalNoInstructionMarkers); + writeFileSync(join(globalNoInstructionMarkers, "opencode.jsonc"), JSON.stringify({ instructions: [buildOpenCodeInstructionPath("global", globalNoInstructionMarkers)] }), "utf8"); + writeFileSync(join(globalNoInstructionMarkers, "openpets.md"), "user owned\n", "utf8"); + const noMarkerRemove = prepareOpenCodeGlobalRemove(globalNoInstructionMarkers); + assert.equal(noMarkerRemove.instructionWrite, undefined); + + const globalCustomPluginOptions = join(root, "global-custom-plugin-options"); + mkdirSync(globalCustomPluginOptions); + writeFileSync(join(globalCustomPluginOptions, "opencode.jsonc"), JSON.stringify({ plugin: [["@open-pets/opencode@0.0.0", { pet: "fixer", extra: true }]] }), "utf8"); + assert.throws(() => prepareOpenCodeGlobalSetup({ configDir: globalCustomPluginOptions, petId: "fixer", cliVersion: "0.0.0" })); + + const globalCustom = join(root, "global-custom"); + mkdirSync(globalCustom); + writeFileSync(join(globalCustom, "opencode.jsonc"), JSON.stringify({ mcp: { openpets: { type: "local", command: ["custom", "mcp"] } } }), "utf8"); + assert.throws(() => prepareOpenCodeGlobalSetup({ configDir: globalCustom, petId: "fixer", cliVersion: "0.0.0" })); + assert.throws(() => prepareOpenCodeGlobalRemove(globalCustom)); + + const globalCustomMcpFields = join(root, "global-custom-mcp-fields"); + mkdirSync(globalCustomMcpFields); + writeFileSync(join(globalCustomMcpFields, "opencode.jsonc"), JSON.stringify({ mcp: { openpets: { type: "local", command: ["npx", "-y", "@open-pets/cli@0.0.0", "mcp", "--pet", "fixer"], enabled: true, environment: { OPENPETS_DEBUG: "1" } } } }), "utf8"); + assert.throws(() => prepareOpenCodeGlobalSetup({ configDir: globalCustomMcpFields, petId: "fixer", cliVersion: "0.0.0" })); + + const globalSymlink = join(root, "global-symlink"); + const globalOutside = join(root, "global-outside"); + mkdirSync(globalOutside); + writeFileSync(join(globalOutside, "opencode.jsonc"), "{}\n", "utf8"); + symlinkSync(globalOutside, globalSymlink); + assert.equal(doctorOpenCodeGlobalSetup(globalSymlink).status, "error"); + + for (const [category, messages] of Object.entries(hookSpeechPools) as Array<[string, readonly string[]]>) { + for (const message of messages) { + assert.match(message, /^[A-Z]/, `${category} hook speech must start uppercase`); + validateHookSpeech(message); + } + } +} finally { + rmSync(root, { recursive: true, force: true }); +} + +console.error("OpenCode foundation validation passed."); diff --git a/packages/opencode/src/check-opencode-plugin.ts b/packages/opencode/src/check-opencode-plugin.ts new file mode 100644 index 00000000..188b1709 --- /dev/null +++ b/packages/opencode/src/check-opencode-plugin.ts @@ -0,0 +1,121 @@ +import assert from "node:assert/strict"; +import { mkdirSync, mkdtempSync, rmSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; + +import type { OpenPetsClient, OpenPetsReaction } from "@open-pets/client"; + +import plugin, { openPetsOpenCodePluginId } from "./plugin.js"; +import { classifyOpenCodeBusEvent, classifyOpenCodeToolReaction, createOpenPetsOpenCodeHooks, getDefaultOpenCodeThrottlePath, shouldIgnoreOpenPetsTool } from "./opencode-plugin-runtime.js"; + +assert.equal(plugin.id, openPetsOpenCodePluginId); +assert.equal(typeof plugin.server, "function"); +const packagePlugin = await import("@open-pets/opencode/server"); +assert.equal(packagePlugin.default.id, openPetsOpenCodePluginId); +assert.equal(typeof packagePlugin.default.server, "function"); + +assert.equal(classifyOpenCodeToolReaction("edit", {}), "editing"); +assert.equal(classifyOpenCodeToolReaction("apply_patch", {}), "editing"); +assert.equal(classifyOpenCodeToolReaction("bash", { command: "pnpm test" }), "testing"); +assert.equal(classifyOpenCodeToolReaction("shell", { command: "ls" }), undefined); +assert.equal(classifyOpenCodeToolReaction("read", {}), undefined); +assert.equal(shouldIgnoreOpenPetsTool("openpets_openpets_status"), true); +assert.equal(shouldIgnoreOpenPetsTool("openpets_openpets_say"), true); +assert.equal(shouldIgnoreOpenPetsTool("openpets_openpets_react"), true); +assert.equal(shouldIgnoreOpenPetsTool("openpets_status"), true); +assert.deepEqual(classifyOpenCodeBusEvent({ type: "permission.asked" }), { reaction: "waiting", speechCategory: "permission" }); +assert.equal(classifyOpenCodeBusEvent({ type: "permission.asked", properties: { permission: "openpets_openpets_say" } }), undefined); +assert.equal(classifyOpenCodeBusEvent({ payload: { type: "permission.asked", properties: { patterns: ["openpets_openpets_react"] } } }), undefined); +assert.deepEqual(classifyOpenCodeBusEvent({ type: "session.error" }), { reaction: "error", speechCategory: "error" }); +assert.deepEqual(classifyOpenCodeBusEvent({ type: "session.status", properties: { status: { type: "idle" } } }), { reaction: "success" }); +assert.ok(getDefaultOpenCodeThrottlePath().includes("opencode-hook-throttle.json")); + +assert.throws(() => createOpenPetsOpenCodeHooks({ pet: "bad/pet" })); + +const dir = mkdtempSync(join(tmpdir(), "openpets-opencode-plugin-")); +try { + const calls: Array<{ readonly kind: string; readonly value: string; readonly leaseId?: string; readonly requestedPetId?: string }> = []; + let releaseBlockedReact: (() => void) | undefined; + const blocked = new Promise((resolve) => { releaseBlockedReact = resolve; }); + const client: OpenPetsClient = { + hello: async () => ({}), + status: async () => ({ ok: true, appRunning: true }), + listPets: async () => ({ ok: true, pets: [], defaultPetId: "builtin" }), + acquireLease: async (options?: { readonly requestedPetId?: string }) => { + calls.push({ kind: "lease", value: "acquire", requestedPetId: options?.requestedPetId }); + return { leaseId: "lease-fixer", requestedPetId: options?.requestedPetId, targetKind: "explicit", actualTargetPetId: options?.requestedPetId ?? "builtin", actualTargetPetName: "Fixer", usingDefaultPet: false, expiresAt: Date.now() + 15_000, leaseActive: true }; + }, + heartbeatLease: async () => ({ leaseId: "lease-fixer", expiresAt: Date.now() + 15_000 }), + releaseLease: async () => ({ released: true }), + react: async (reaction: OpenPetsReaction, options?: { readonly leaseId?: string }) => { + calls.push({ kind: "react", value: reaction, leaseId: options?.leaseId }); + await blocked; + }, + say: async (message: string, options?: { readonly leaseId?: string }) => { + calls.push({ kind: "say", value: message, leaseId: options?.leaseId }); + }, + }; + + const scheduled: Array<() => Promise> = []; + const hooks = createOpenPetsOpenCodeHooks({ pet: "fixer", clientFactory: () => client, schedule: (work) => { scheduled.push(work); }, throttlePath: join(dir, "opencode-hook-throttle.json"), now: () => 100_000, random: () => 0 }); + hooks["chat.message"]({}, { message: { text: "do not use this prompt" } }); + assert.equal(scheduled.length, 1); + const thinkingWork = scheduled.shift(); + const thinkingPromise = thinkingWork?.(); + await Promise.resolve(); + await Promise.resolve(); + assert.deepEqual(calls[0], { kind: "lease", value: "acquire", requestedPetId: "fixer" }); + assert.deepEqual(calls[1], { kind: "react", value: "thinking", leaseId: "lease-fixer" }); + releaseBlockedReact?.(); + await thinkingPromise; + releaseBlockedReact = undefined; + + hooks["tool.execute.before"]({ tool: "bash" }, { args: { command: "pnpm test -- --secret" } }); + assert.equal(scheduled.length, 1); + const work = scheduled.shift(); + const promise = work?.(); + await Promise.resolve(); + await Promise.resolve(); + assert.deepEqual(calls.at(-1), { kind: "react", value: "testing", leaseId: "lease-fixer" }); + await promise; + + hooks["tool.execute.before"]({ tool: "shell" }, { args: { command: "ls" } }); + assert.equal(scheduled.length, 0); + hooks["tool.execute.before"]({ tool: "bash" }, { args: { command: "pnpm test" } }); + assert.equal(scheduled.length, 1); + const beforeDuplicateTesting = calls.length; + await scheduled.shift()?.(); + assert.equal(calls.length, beforeDuplicateTesting, "duplicate testing reaction should be throttled without lease/client work"); + + const beforeIgnored = scheduled.length; + hooks["tool.execute.before"]({ tool: "openpets_openpets_say" }, { args: {} }); + assert.equal(scheduled.length, beforeIgnored); + + hooks.event({ event: { type: "permission.asked", properties: { prompt: "never speak this" } } }); + assert.equal(scheduled.length, 1); + await scheduled.shift()?.(); + assert.deepEqual(calls.at(-1), { kind: "say", value: "Approval needed", leaseId: "lease-fixer" }); + + hooks.event({ event: { type: "session.status", properties: { status: { type: "idle" } } } }); + assert.equal(scheduled.length, 1); + await scheduled.shift()?.(); + assert.deepEqual(calls.at(-1), { kind: "react", value: "success", leaseId: "lease-fixer" }); + + const errors: string[] = []; + const failingHooks = createOpenPetsOpenCodeHooks({ clientFactory: () => { throw new Error("api_key=secret /tmp/path"); }, schedule: (work) => { void work(); }, debug: true, debugLog: (message) => errors.push(message), throttlePath: join(dir, "fail-throttle.json"), now: () => 200_000 }); + assert.doesNotThrow(() => failingHooks.event({ event: { type: "session.error" } })); + await new Promise((resolve) => setTimeout(resolve, 0)); + assert.match(errors.join("\n"), /|/); + + const throwingSchedule = createOpenPetsOpenCodeHooks({ schedule: () => { throw new Error("schedule failed"); }, debug: true, debugLog: (message) => errors.push(message) }); + assert.doesNotThrow(() => throwingSchedule.event({ event: { type: "session.error" } })); +} finally { + rmSync(dir, { recursive: true, force: true }); +} + +const loaded = await plugin.server({}, { pet: "fixer" }); +assert.equal(typeof loaded.event, "function"); +assert.equal(typeof loaded["chat.message"], "function"); +assert.equal(typeof loaded["tool.execute.before"], "function"); + +console.error("OpenCode plugin validation passed."); diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts new file mode 100644 index 00000000..0de757cc --- /dev/null +++ b/packages/opencode/src/index.ts @@ -0,0 +1,6 @@ +export * from "./opencode-config.js"; +export * from "./opencode-global-setup.js"; +export * from "./opencode-project-setup.js"; +export * from "./opencode-plugin-runtime.js"; +export * from "./opencode-previews.js"; +export * from "./opencode-status.js"; diff --git a/packages/opencode/src/opencode-config.ts b/packages/opencode/src/opencode-config.ts new file mode 100644 index 00000000..2fc82e68 --- /dev/null +++ b/packages/opencode/src/opencode-config.ts @@ -0,0 +1,221 @@ +import { randomUUID } from "node:crypto"; +import { chmodSync, closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs"; +import { dirname, isAbsolute, join, relative } from "node:path"; +import { homedir } from "node:os"; + +import { applyEdits, modify, parse, type ParseError } from "jsonc-parser"; + +export interface OpenCodeConfigPaths { + readonly candidates: readonly string[]; + readonly defaultCreatePath: string; +} + +export interface ParsedOpenCodeConfig { + readonly ok: true; + readonly value: Record; +} + +export interface OpenCodeConfigError { + readonly ok: false; + readonly message: string; +} + +export interface PlannedWrite { + readonly rootPath: string; + readonly targetPath: string; + readonly backupPath?: string; + readonly tempPath: string; + readonly content: string; +} + +export interface OpenCodeExecutableDetection { + readonly command: "opencode" | "opencode.cmd"; + readonly platform: NodeJS.Platform | string; + readonly available: boolean; + readonly version?: string; + readonly error?: string; +} + +export const maxOpenCodeConfigBytes = 1024 * 1024; + +export function getProjectOpenCodeConfigPaths(projectDir: string): OpenCodeConfigPaths { + const root = assertSafeProjectRoot(projectDir); + return { + candidates: [join(root, "opencode.json"), join(root, "opencode.jsonc"), join(root, ".opencode", "opencode.json"), join(root, ".opencode", "opencode.jsonc")], + defaultCreatePath: join(root, ".opencode", "opencode.jsonc"), + }; +} + +export function selectProjectOpenCodeConfigPath(projectDir: string): string { + const paths = getProjectOpenCodeConfigPaths(projectDir); + return paths.candidates.find((candidate) => existsSync(candidate)) ?? paths.defaultCreatePath; +} + +export function getGlobalOpenCodeConfigDir(env: NodeJS.ProcessEnv = process.env, homeDir = homedir(), platform = process.platform): string { + if (env.OPENCODE_CONFIG_DIR) return env.OPENCODE_CONFIG_DIR; + if (platform === "win32") return join(env.APPDATA || join(homeDir, "AppData", "Roaming"), "opencode"); + return join(env.XDG_CONFIG_HOME || join(homeDir, ".config"), "opencode"); +} + +export function getGlobalOpenCodeConfigPaths(env: NodeJS.ProcessEnv = process.env, homeDir = homedir(), platform = process.platform): OpenCodeConfigPaths { + const configDir = getGlobalOpenCodeConfigDir(env, homeDir, platform); + return { + candidates: [join(configDir, "config.json"), join(configDir, "opencode.json"), join(configDir, "opencode.jsonc")], + defaultCreatePath: join(configDir, "opencode.jsonc"), + }; +} + +export function createOpenCodeExecutableDetection(input: Partial & { readonly platform?: NodeJS.Platform | string } = {}): OpenCodeExecutableDetection { + const platform = input.platform ?? process.platform; + return { + command: input.command ?? (platform === "win32" ? "opencode.cmd" : "opencode"), + platform, + available: input.available ?? false, + version: input.version, + error: input.error, + }; +} + +export function readOpenCodeConfigFile(path: string): ParsedOpenCodeConfig | OpenCodeConfigError { + const safety = assertSafeExistingConfigFile(path); + if (!safety.ok) return safety; + return parseOpenCodeConfig(readFileSync(path, "utf8")); +} + +export function parseOpenCodeConfig(text: string): ParsedOpenCodeConfig | OpenCodeConfigError { + if (Buffer.byteLength(text, "utf8") > maxOpenCodeConfigBytes) return { ok: false, message: "OpenCode config is too large." }; + const errors: ParseError[] = []; + const parsed = parse(text || "{}", errors, { allowTrailingComma: true, disallowComments: false }) as unknown; + if (errors.length > 0) return { ok: false, message: "OpenCode config JSONC is invalid." }; + if (!isRecord(parsed) || Array.isArray(parsed)) return { ok: false, message: "OpenCode config must be a JSON object." }; + const fields = validateKnownFieldTypes(parsed); + if (!fields.ok) return fields; + return { ok: true, value: parsed }; +} + +export function updateOpenCodeConfigText(text: string, updates: readonly { readonly path: readonly (string | number)[]; readonly value: unknown }[]): string | OpenCodeConfigError { + const parsed = parseOpenCodeConfig(text); + if (!parsed.ok) return parsed; + let next = text.trim() ? text : "{}\n"; + for (const update of updates) { + const edits = modify(next, [...update.path], update.value, { formattingOptions: { tabSize: 2, insertSpaces: true } }); + next = applyEdits(next, edits); + } + return next.endsWith("\n") ? next : `${next}\n`; +} + +export function planOpenCodeConfigWrite(rootPath: string, targetPath: string, content: string): PlannedWrite | OpenCodeConfigError { + const root = assertSafeProjectRoot(rootPath); + const rel = relative(root, targetPath); + if (rel.startsWith("..") || isAbsolute(rel)) return { ok: false, message: "OpenCode config target must stay inside the validated root." }; + const parent = dirname(targetPath); + const parentSafety = assertSafeParentDirectory(parent); + if (!parentSafety.ok) return parentSafety; + const existing = assertSafeExistingConfigFile(targetPath, true); + if (!existing.ok) return existing; + const parsed = parseOpenCodeConfig(content); + if (!parsed.ok) return parsed; + const stamp = `${process.pid}-${Date.now()}-${randomUUID()}`; + return { + rootPath: root, + targetPath, + backupPath: existsSync(targetPath) ? uniquePath(`${targetPath}.openpets-backup-${stamp}.json`) : undefined, + tempPath: uniquePath(join(parent, `.openpets-${stamp}.tmp`)), + content, + }; +} + +export function executePlannedWrite(plan: PlannedWrite): void { + const root = assertSafeProjectRoot(plan.rootPath); + const rel = relative(root, plan.targetPath); + if (rel.startsWith("..") || isAbsolute(rel)) throw new Error("OpenCode write target escaped validated root."); + for (const path of [plan.backupPath, plan.tempPath].filter((value): value is string => typeof value === "string")) { + const pathRel = relative(root, path); + if (pathRel.startsWith("..") || isAbsolute(pathRel)) throw new Error("OpenCode write support path escaped validated root."); + if (dirname(path) !== dirname(plan.targetPath)) throw new Error("OpenCode write support path must stay next to target."); + } + const parentSafety = assertSafeParentDirectory(dirname(plan.targetPath)); + if (!parentSafety.ok) throw new Error(parentSafety.message); + const targetSafety = assertSafeExistingConfigFile(plan.targetPath, true); + if (!targetSafety.ok) throw new Error(targetSafety.message); + const parsed = parseOpenCodeConfig(plan.content); + if (!parsed.ok) throw new Error(parsed.message); + mkdirSync(dirname(plan.targetPath), { recursive: true, mode: 0o700 }); + if (plan.backupPath && existsSync(plan.targetPath)) { + const backupFd = openSync(plan.backupPath, "wx", 0o600); + try { + writeFileSync(backupFd, readFileSync(plan.targetPath)); + } finally { + closeSync(backupFd); + } + } + const fd = openSync(plan.tempPath, "wx", 0o600); + try { + writeFileSync(fd, plan.content, "utf8"); + } finally { + closeSync(fd); + } + renameSync(plan.tempPath, plan.targetPath); + try { chmodSync(plan.targetPath, 0o600); } catch { /* best effort */ } +} + +export function assertSafeProjectRoot(projectDir: string): string { + if (!isAbsolute(projectDir)) throw new Error("OpenCode project path must be absolute."); + if (!existsSync(projectDir)) throw new Error("OpenCode project path does not exist."); + const stat = lstatSync(projectDir); + if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error("OpenCode project path must be a safe directory."); + return projectDir; +} + +function assertSafeExistingConfigFile(path: string, allowMissing = false): OpenCodeConfigError | { readonly ok: true } { + if (!existsSync(path)) return allowMissing ? { ok: true } : { ok: false, message: "OpenCode config does not exist." }; + const stat = lstatSync(path); + if (stat.isSymbolicLink() || !stat.isFile()) return { ok: false, message: "OpenCode config path must be a regular file." }; + if (stat.size > maxOpenCodeConfigBytes) return { ok: false, message: "OpenCode config is too large." }; + return { ok: true }; +} + +function assertSafeParentDirectory(path: string): OpenCodeConfigError | { readonly ok: true } { + const existing = nearestExistingParent(path); + const rel = relative(existing, path); + if (rel.startsWith("..") || isAbsolute(rel)) return { ok: false, message: "OpenCode config parent escapes target directory." }; + let current = existing; + while (current !== dirname(current)) { + if (existsSync(current) && lstatSync(current).isSymbolicLink()) return { ok: false, message: "OpenCode config parent must not be a symlink." }; + if (current === path) break; + current = dirname(current); + } + if (existsSync(path)) { + const stat = lstatSync(path); + if (stat.isSymbolicLink() || !stat.isDirectory()) return { ok: false, message: "OpenCode config parent must be a safe directory." }; + } + return { ok: true }; +} + +function nearestExistingParent(path: string): string { + let current = path; + while (!existsSync(current)) current = dirname(current); + if (!statSync(current).isDirectory()) current = dirname(current); + return current; +} + +function validateKnownFieldTypes(config: Record): OpenCodeConfigError | { readonly ok: true } { + if (config.mcp !== undefined && !isRecord(config.mcp)) return { ok: false, message: "OpenCode config mcp field must be an object." }; + if (config.instructions !== undefined && !Array.isArray(config.instructions)) return { ok: false, message: "OpenCode config instructions field must be an array." }; + if (Array.isArray(config.instructions) && !config.instructions.every((entry) => typeof entry === "string")) return { ok: false, message: "OpenCode config instructions entries must be strings." }; + if (config.plugin !== undefined && !Array.isArray(config.plugin)) return { ok: false, message: "OpenCode config plugin field must be an array." }; + return { ok: true }; +} + +function uniquePath(path: string): string { + if (!existsSync(path)) return path; + for (let index = 1; index < 1000; index += 1) { + const candidate = `${path}.${index}`; + if (!existsSync(candidate)) return candidate; + } + throw new Error("Unable to allocate unique OpenCode temp path."); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} diff --git a/packages/opencode/src/opencode-global-setup.ts b/packages/opencode/src/opencode-global-setup.ts new file mode 100644 index 00000000..6cdeded0 --- /dev/null +++ b/packages/opencode/src/opencode-global-setup.ts @@ -0,0 +1,354 @@ +import { chmodSync, closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs"; +import { dirname, isAbsolute, join, relative } from "node:path"; +import { randomUUID } from "node:crypto"; + +import { parseOpenCodeConfig, readOpenCodeConfigFile, updateOpenCodeConfigText, type OpenCodeConfigPaths, type PlannedWrite } from "./opencode-config.js"; +import { buildOpenCodeInstructionPath, buildOpenCodeMcpEntry, buildOpenCodePluginPreview, validateOpenPetsPetArg, type OpenCodeCommandMode } from "./opencode-previews.js"; +import { classifyOpenCodeInstructionsStatus, classifyOpenCodeMcpStatus, classifyOpenCodePluginStatus, isManagedOpenPetsMcpEntry, isManagedOpenPetsPluginEntry, isOpenPetsLikePluginEntry } from "./opencode-status.js"; +import { createOpenPetsInstructionBlock } from "./opencode-project-setup.js"; + +export interface PrepareOpenCodeGlobalSetupOptions { + readonly configDir: string; + readonly petId?: string; + readonly cliVersion: string; + readonly pluginVersion?: string; + readonly commandMode?: OpenCodeCommandMode; + readonly cliEntryPath?: string; +} + +export interface PreparedOpenCodeGlobalSetup { + readonly configDir: string; + readonly petId?: string; + readonly configPath: string; + readonly instructionPath: string; + readonly configWrite: PlannedWrite; + readonly cleanupConfigWrites: readonly PlannedWrite[]; + readonly instructionWrite: GlobalPlannedTextWrite; +} + +export interface GlobalPlannedTextWrite { + readonly targetPath: string; + readonly backupPath?: string; + readonly tempPath: string; + readonly content: string; +} + +export interface OpenCodeGlobalState { + readonly status: "not_installed" | "installed" | "custom" | "conflict" | "error"; + readonly message: string; +} + +const maxInstructionBytes = 1024 * 1024; +const openPetsStart = ""; +const openPetsEnd = ""; + +export function getExplicitGlobalOpenCodeConfigPaths(configDir: string): OpenCodeConfigPaths { + assertSafeDirectoryRoot(configDir, true); + return { candidates: [join(configDir, "config.json"), join(configDir, "opencode.json"), join(configDir, "opencode.jsonc")], defaultCreatePath: join(configDir, "opencode.jsonc") }; +} + +export function prepareOpenCodeGlobalSetup(options: PrepareOpenCodeGlobalSetupOptions): PreparedOpenCodeGlobalSetup { + const petId = options.petId === undefined ? undefined : validateOpenPetsPetArg(options.petId); + const paths = getExplicitGlobalOpenCodeConfigPaths(options.configDir); + const existingConfigs = readExistingGlobalConfigs(options.configDir, paths.candidates); + const configs = existingConfigs.map((entry) => entry.config); + const instructionPath = buildOpenCodeInstructionPath("global", options.configDir); + assertSafeGlobalPath(options.configDir, instructionPath, "OpenCode instruction"); + const instructionContent = existsSync(instructionPath) ? readSafeInstructionFile(instructionPath) : ""; + const mcpStatus = classifyOpenCodeMcpStatus(configs, { cliVersion: options.cliVersion, petId, commandMode: options.commandMode, cliEntryPath: options.cliEntryPath }); + const instructionStatus = classifyOpenCodeInstructionsStatus(configs, "global", options.configDir, { [instructionPath]: instructionContent }); + const pluginStatus = classifyOpenCodePluginStatus(configs, petId, options.pluginVersion ?? options.cliVersion); + for (const status of [mcpStatus, instructionStatus, pluginStatus]) { + if (status.status === "custom" || status.status === "conflict" || status.status === "error") throw new Error(`${status.message} Edit or remove the custom OpenPets OpenCode entry, then rerun setup.`); + } + const selectedPath = selectWriteTarget(options.configDir, paths.candidates, existingConfigs, paths.defaultCreatePath); + const selectedText = existsSync(selectedPath) ? readFileSync(selectedPath, "utf8") : "{}\n"; + const parsed = parseOpenCodeConfig(selectedText); + if (!parsed.ok) throw new Error(parsed.message); + const nextConfig = buildNextGlobalConfig(parsed.value, petId, options); + const nextText = updateOpenCodeConfigText(selectedText, [ + { path: ["mcp"], value: nextConfig.mcp }, + { path: ["instructions"], value: nextConfig.instructions }, + { path: ["plugin"], value: nextConfig.plugin }, + ]); + if (typeof nextText !== "string") throw new Error(nextText.message); + const configWrite = planGlobalConfigWrite(options.configDir, selectedPath, nextText); + const cleanupConfigWrites = planSetupCleanupWrites(options.configDir, selectedPath, existingConfigs); + const instructionWrite = planTextWrite(options.configDir, instructionPath, upsertOpenPetsBlock(instructionContent)); + return { configDir: options.configDir, petId, configPath: selectedPath, instructionPath, configWrite, cleanupConfigWrites, instructionWrite }; +} + +export function writePreparedOpenCodeGlobalSetup(prepared: PreparedOpenCodeGlobalSetup): void { + executeTextWrite(prepared.instructionWrite); + for (const write of prepared.cleanupConfigWrites) executeGlobalConfigWrite(write); + executeGlobalConfigWrite(prepared.configWrite); +} + +export function prepareOpenCodeGlobalRemove(configDir: string): { readonly configWrites: readonly PlannedWrite[]; readonly instructionWrite?: GlobalPlannedTextWrite } { + const paths = getExplicitGlobalOpenCodeConfigPaths(configDir); + const existingConfigs = readExistingGlobalConfigs(configDir, paths.candidates); + const state = classifyGlobalState(configDir, existingConfigs); + if (state.status === "custom" || state.status === "conflict" || state.status === "error") throw new Error(state.message); + const owners = existingConfigs.filter((entry) => hasManagedOpenPetsEntry(configDir, entry.config)); + if (owners.length === 0) return { configWrites: [] }; + if (owners.length > 1) throw new Error("OpenCode has OpenPets entries in multiple global config files. Remove duplicates manually."); + const owner = owners[0]; + if (!owner) return { configWrites: [] }; + const text = readFileSync(owner.path, "utf8"); + const next = removeManagedConfig(configDir, owner.config); + const nextText = updateOpenCodeConfigText(text, [ + { path: ["mcp"], value: next.mcp }, + { path: ["instructions"], value: next.instructions }, + { path: ["plugin"], value: next.plugin }, + ]); + if (typeof nextText !== "string") throw new Error(nextText.message); + const configWrite = planGlobalConfigWrite(configDir, owner.path, nextText); + const instructionPath = buildOpenCodeInstructionPath("global", configDir); + const instructionContent = existsSync(instructionPath) ? readSafeInstructionFile(instructionPath) : ""; + const instructionWrite = hasManagedInstructionBlock(instructionContent) ? planTextWrite(configDir, instructionPath, removeOpenPetsBlock(instructionContent)) : undefined; + return { configWrites: [configWrite], instructionWrite }; +} + +export function writePreparedOpenCodeGlobalRemove(prepared: { readonly configWrites: readonly PlannedWrite[]; readonly instructionWrite?: GlobalPlannedTextWrite }): void { + for (const write of prepared.configWrites) executeGlobalConfigWrite(write); + if (prepared.instructionWrite) executeTextWrite(prepared.instructionWrite); +} + +export function doctorOpenCodeGlobalSetup(configDir: string): OpenCodeGlobalState { + try { + const paths = getExplicitGlobalOpenCodeConfigPaths(configDir); + return classifyGlobalState(configDir, readExistingGlobalConfigs(configDir, paths.candidates)); + } catch (error) { + return { status: "error", message: error instanceof Error ? error.message : "OpenCode global setup status is unavailable." }; + } +} + +function readExistingGlobalConfigs(configDir: string, candidates: readonly string[]): Array<{ readonly path: string; readonly config: Record }> { + return candidates.flatMap((path) => { + if (!existsSync(path)) return []; + assertSafeGlobalPath(configDir, path, "OpenCode config"); + const parsed = readOpenCodeConfigFile(path); + if (!parsed.ok) throw new Error(parsed.message); + return [{ path, config: parsed.value }]; + }); +} + +function buildNextGlobalConfig(config: Record, petId: string | undefined, options: PrepareOpenCodeGlobalSetupOptions): { readonly mcp: Record; readonly instructions: readonly string[]; readonly plugin: readonly unknown[] } { + const mcp = isRecord(config.mcp) ? { ...config.mcp } : {}; + mcp.openpets = buildOpenCodeMcpEntry({ cliVersion: options.cliVersion, petId, commandMode: options.commandMode, cliEntryPath: options.cliEntryPath }); + const instructionPath = buildOpenCodeInstructionPath("global", options.configDir); + const instructions = [...new Set([...(Array.isArray(config.instructions) ? config.instructions.filter((entry): entry is string => typeof entry === "string") : []), instructionPath])]; + const plugin = [...(Array.isArray(config.plugin) ? config.plugin.filter((entry) => !isManagedOpenPetsPluginEntry(entry)) : []), buildOpenCodePluginPreview(petId, options.pluginVersion ?? options.cliVersion)]; + return { mcp, instructions, plugin }; +} + +function removeManagedConfig(configDir: string, config: Record): { readonly mcp?: Record; readonly instructions?: readonly string[]; readonly plugin?: readonly unknown[] } { + const mcp = isRecord(config.mcp) ? { ...config.mcp } : {}; + if (isManagedOpenPetsMcpEntry(mcp.openpets)) delete mcp.openpets; + const instructionPath = buildOpenCodeInstructionPath("global", configDir); + const instructions = Array.isArray(config.instructions) ? config.instructions.filter((entry) => typeof entry === "string" && entry !== instructionPath) : []; + const plugin = Array.isArray(config.plugin) ? config.plugin.filter((entry) => !isManagedOpenPetsPluginEntry(entry)) : []; + return { mcp: Object.keys(mcp).length > 0 ? mcp : undefined, instructions: instructions.length > 0 ? instructions : undefined, plugin: plugin.length > 0 ? plugin : undefined }; +} + +function selectWriteTarget(configDir: string, candidates: readonly string[], existing: readonly { readonly path: string; readonly config: Record }[], fallback: string): string { + const owners = existing.filter((entry) => hasManagedOpenPetsEntry(configDir, entry.config)).map((entry) => entry.path); + const uniqueOwners = [...new Set(owners)]; + if (uniqueOwners.length > 1) throw new Error("OpenCode has OpenPets entries in multiple global config files. Remove duplicates manually."); + const arrayOwner = selectArrayFieldOwner(configDir, candidates, existing); + if (arrayOwner) return arrayOwner; + if (uniqueOwners.length === 1) return uniqueOwners[0] ?? fallback; + const highestPrecedenceExisting = [...candidates].reverse().find((candidate) => existing.some((entry) => entry.path === candidate)); + if (highestPrecedenceExisting) return highestPrecedenceExisting; + return fallback; +} + +function planSetupCleanupWrites(configDir: string, selectedPath: string, existing: readonly { readonly path: string; readonly config: Record }[]): readonly PlannedWrite[] { + return existing.flatMap((entry) => { + if (entry.path === selectedPath || !hasManagedOpenPetsEntry(configDir, entry.config)) return []; + const source = readFileSync(entry.path, "utf8"); + const next = removeManagedConfig(configDir, entry.config); + const nextText = updateOpenCodeConfigText(source, [ + { path: ["mcp"], value: next.mcp }, + { path: ["instructions"], value: next.instructions }, + { path: ["plugin"], value: next.plugin }, + ]); + if (typeof nextText !== "string") throw new Error(nextText.message); + return [planGlobalConfigWrite(configDir, entry.path, nextText)]; + }); +} + +function selectArrayFieldOwner(configDir: string, candidates: readonly string[], existing: readonly { readonly path: string; readonly config: Record }[]): string | undefined { + const pluginOwner = findEffectiveArrayOwner(candidates, existing, "plugin", (entry) => !isManagedOpenPetsPluginEntry(entry), isManagedOpenPetsPluginEntry); + const instructionPath = buildOpenCodeInstructionPath("global", configDir); + const instructionOwner = findEffectiveArrayOwner(candidates, existing, "instructions", (entry) => typeof entry === "string" && entry !== instructionPath, (entry) => entry === instructionPath); + const owners = [...new Set([pluginOwner, instructionOwner].filter((value): value is string => typeof value === "string"))]; + if (owners.length > 1) throw new Error("OpenCode global plugin and instruction arrays live in different config files. Consolidate them before installing OpenPets."); + return owners[0]; +} + +function findEffectiveArrayOwner(candidates: readonly string[], existing: readonly { readonly path: string; readonly config: Record }[], field: "plugin" | "instructions", isUserEntry: (entry: unknown) => boolean, isManagedEntry: (entry: unknown) => boolean): string | undefined { + const entries = [...candidates].reverse().flatMap((candidate) => { + const entry = existing.find((item) => item.path === candidate); + const value = entry?.config[field]; + return entry && Array.isArray(value) ? [{ path: entry.path, values: value as readonly unknown[] }] : []; + }); + for (let index = 0; index < entries.length; index += 1) { + const entry = entries[index]; + if (!entry) continue; + if (entry.values.some(isUserEntry)) return entry.path; + const lowerUserOwner = entries.slice(index + 1).find((item) => item.values.some(isUserEntry))?.path; + if (entry.values.some(isManagedEntry)) return lowerUserOwner ?? entry.path; + if (lowerUserOwner) throw new Error(`OpenCode global ${field} array in a higher-precedence config shadows user ${field} entries in a lower-precedence config. Consolidate them before installing OpenPets.`); + return entry.path; + } + return undefined; +} + +function hasManagedOpenPetsEntry(configDir: string, config: Record): boolean { + if (isRecord(config.mcp) && isManagedOpenPetsMcpEntry(config.mcp.openpets)) return true; + if (Array.isArray(config.instructions) && config.instructions.some((entry) => entry === buildOpenCodeInstructionPath("global", configDir))) return true; + if (Array.isArray(config.plugin) && config.plugin.some(isManagedOpenPetsPluginEntry)) return true; + return false; +} + +function hasCustomOpenPetsEntry(configDir: string, config: Record): boolean { + if (isRecord(config.mcp) && config.mcp.openpets !== undefined && !isManagedOpenPetsMcpEntry(config.mcp.openpets)) return true; + if (Array.isArray(config.instructions) && config.instructions.some((entry) => typeof entry === "string" && /openpets\.md$/i.test(entry) && entry !== buildOpenCodeInstructionPath("global", configDir))) return true; + if (Array.isArray(config.plugin) && config.plugin.some((entry) => isOpenPetsLikePluginEntry(entry) && !isManagedOpenPetsPluginEntry(entry))) return true; + return false; +} + +function classifyGlobalState(configDir: string, existing: readonly { readonly path: string; readonly config: Record }[]): OpenCodeGlobalState { + if (existing.some((entry) => hasCustomOpenPetsEntry(configDir, entry.config))) return { status: "custom", message: "OpenCode has custom OpenPets-like global entries. Edit or remove them manually." }; + const owners = existing.filter((entry) => hasManagedOpenPetsEntry(configDir, entry.config)); + if (owners.length > 1) return { status: "conflict", message: "OpenCode has OpenPets entries in multiple global config files. Remove duplicates manually." }; + if (owners.length === 1) return { status: "installed", message: "OpenCode global OpenPets setup is installed." }; + return { status: "not_installed", message: "OpenCode global OpenPets setup is not installed." }; +} + +function planTextWrite(root: string, targetPath: string, content: string): GlobalPlannedTextWrite { + assertSafeGlobalPath(root, targetPath, "OpenCode instruction"); + if (existsSync(targetPath)) { + const stat = lstatSync(targetPath); + if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("OpenCode instruction path must be a safe regular file."); + if (stat.size > maxInstructionBytes) throw new Error("OpenCode instruction file is too large."); + } + const stamp = `${process.pid}-${Date.now()}-${randomUUID()}`; + return { targetPath, backupPath: existsSync(targetPath) ? `${targetPath}.openpets-backup-${stamp}.md` : undefined, tempPath: join(dirname(targetPath), `.openpets-${stamp}.tmp`), content }; +} + +function executeTextWrite(plan: GlobalPlannedTextWrite): void { + const parent = dirname(plan.targetPath); + if (existsSync(parent)) { + const parentStat = lstatSync(parent); + if (parentStat.isSymbolicLink() || !parentStat.isDirectory()) throw new Error("OpenCode instruction directory is unsafe."); + } + if (existsSync(plan.targetPath)) { + const targetStat = lstatSync(plan.targetPath); + if (targetStat.isSymbolicLink() || !targetStat.isFile()) throw new Error("OpenCode instruction path must be a safe regular file."); + if (targetStat.size > maxInstructionBytes) throw new Error("OpenCode instruction file is too large."); + } + if (plan.backupPath && dirname(plan.backupPath) !== parent) throw new Error("OpenCode instruction backup path is unsafe."); + if (dirname(plan.tempPath) !== parent) throw new Error("OpenCode instruction temp path is unsafe."); + mkdirSync(dirname(plan.targetPath), { recursive: true, mode: 0o700 }); + if (plan.backupPath && existsSync(plan.targetPath)) { + const backup = openSync(plan.backupPath, "wx", 0o600); + try { writeFileSync(backup, readFileSync(plan.targetPath)); } finally { closeSync(backup); } + } + const fd = openSync(plan.tempPath, "wx", 0o600); + try { writeFileSync(fd, plan.content, "utf8"); } finally { closeSync(fd); } + renameSync(plan.tempPath, plan.targetPath); + try { chmodSync(plan.targetPath, 0o600); } catch { /* best effort */ } +} + +function planGlobalConfigWrite(rootPath: string, targetPath: string, content: string): PlannedWrite { + assertSafeGlobalPath(rootPath, targetPath, "OpenCode config"); + const parsed = parseOpenCodeConfig(content); + if (!parsed.ok) throw new Error(parsed.message); + const stamp = `${process.pid}-${Date.now()}-${randomUUID()}`; + return { rootPath, targetPath, backupPath: existsSync(targetPath) ? `${targetPath}.openpets-backup-${stamp}.json` : undefined, tempPath: join(dirname(targetPath), `.openpets-${stamp}.tmp`), content }; +} + +function executeGlobalConfigWrite(plan: PlannedWrite): void { + const parent = dirname(plan.targetPath); + assertSafeGlobalPath(plan.rootPath, plan.targetPath, "OpenCode config"); + if (existsSync(plan.targetPath)) { + const targetStat = lstatSync(plan.targetPath); + if (targetStat.isSymbolicLink() || !targetStat.isFile()) throw new Error("OpenCode config path must be a safe regular file."); + } + if (plan.backupPath && (dirname(plan.backupPath) !== parent || existsSync(plan.backupPath))) throw new Error("OpenCode config backup path is unsafe."); + if (dirname(plan.tempPath) !== parent || existsSync(plan.tempPath)) throw new Error("OpenCode config temp path is unsafe."); + const parsed = parseOpenCodeConfig(plan.content); + if (!parsed.ok) throw new Error(parsed.message); + mkdirSync(parent, { recursive: true, mode: 0o700 }); + if (plan.backupPath && existsSync(plan.targetPath)) { + const backup = openSync(plan.backupPath, "wx", 0o600); + try { writeFileSync(backup, readFileSync(plan.targetPath)); } finally { closeSync(backup); } + } + const fd = openSync(plan.tempPath, "wx", 0o600); + try { writeFileSync(fd, plan.content, "utf8"); } finally { closeSync(fd); } + renameSync(plan.tempPath, plan.targetPath); + try { chmodSync(plan.targetPath, 0o600); } catch { /* best effort */ } +} + +function readSafeInstructionFile(path: string): string { + const stat = lstatSync(path); + if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("OpenCode instruction path must be a safe regular file."); + if (stat.size > maxInstructionBytes) throw new Error("OpenCode instruction file is too large."); + return readFileSync(path, "utf8"); +} + +function upsertOpenPetsBlock(source: string): string { + const withoutBlock = source.replace(new RegExp(`${escapeRegExp(openPetsStart)}[\\s\\S]*?${escapeRegExp(openPetsEnd)}\\n?`, "g"), "").replace(/\n{3,}/g, "\n\n").replace(/\s*$/u, ""); + const block = createOpenPetsInstructionBlock(); + return withoutBlock ? `${withoutBlock}\n\n${block}` : block; +} + +function removeOpenPetsBlock(source: string): string { + return source.replace(new RegExp(`${escapeRegExp(openPetsStart)}[\\s\\S]*?${escapeRegExp(openPetsEnd)}\\n?`, "g"), "").replace(/\n{3,}/g, "\n\n").replace(/\s*$/u, (match) => (match.includes("\n") ? "\n" : "")); +} + +function hasManagedInstructionBlock(value: string): boolean { + return new RegExp(`${escapeRegExp(openPetsStart)}[\\s\\S]*?${escapeRegExp(openPetsEnd)}`).test(value); +} + +function assertSafeDirectoryRoot(root: string, allowMissing: boolean): void { + if (!isAbsolute(root)) throw new Error("OpenCode global config directory must be absolute."); + if (!existsSync(root)) { + if (allowMissing) return; + throw new Error("OpenCode global config directory does not exist."); + } + const stat = lstatSync(root); + if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error("OpenCode global config directory is unsafe."); +} + +function assertSafeGlobalPath(root: string, targetPath: string, label: string): void { + assertSafeNearestExistingRoot(root); + const rel = relative(root, targetPath); + if (rel.startsWith("..") || isAbsolute(rel)) throw new Error(`${label} path escapes global config directory.`); + let current = root; + for (const part of rel.split(/[\\/]+/).filter(Boolean).slice(0, -1)) { + current = join(current, part); + if (!existsSync(current)) continue; + const stat = lstatSync(current); + if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error(`${label} parent directory is unsafe.`); + } +} + +function assertSafeNearestExistingRoot(root: string): void { + if (!isAbsolute(root)) throw new Error("OpenCode global config directory must be absolute."); + let current = root; + while (!existsSync(current)) current = dirname(current); + const stat = statSync(current); + if (!stat.isDirectory()) throw new Error("OpenCode global config parent is unsafe."); + if (lstatSync(current).isSymbolicLink()) throw new Error("OpenCode global config parent must not be a symlink."); +} + +function escapeRegExp(value: string): string { + return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} diff --git a/packages/opencode/src/opencode-plugin-runtime.ts b/packages/opencode/src/opencode-plugin-runtime.ts new file mode 100644 index 00000000..18a68656 --- /dev/null +++ b/packages/opencode/src/opencode-plugin-runtime.ts @@ -0,0 +1,229 @@ +import { homedir, tmpdir, userInfo } from "node:os"; +import { dirname, join } from "node:path"; +import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs"; + +import { createOpenPetsClient, type OpenPetsClient, type OpenPetsReaction } from "@open-pets/client"; +import { pickHookSpeech, type HookSpeechCategory, validateHookSpeech } from "@open-pets/agent-events"; + +import { validateOpenPetsPetArg } from "./opencode-previews.js"; + +export interface OpenCodePluginOptions { + readonly pet?: string; + readonly debug?: boolean; +} + +export interface OpenCodePluginRuntimeOptions extends OpenCodePluginOptions { + readonly clientFactory?: () => OpenPetsClient; + readonly schedule?: (work: () => Promise) => void; + readonly now?: () => number; + readonly random?: () => number; + readonly throttlePath?: string; + readonly debugLog?: (message: string) => void; +} + +export interface OpenCodePluginDecision { + readonly reaction?: OpenPetsReaction; + readonly speechCategory?: HookSpeechCategory; +} + +export type OpenCodeHooks = { + readonly event: (input: { readonly event: unknown }) => void; + readonly "chat.message": (input: unknown, output: unknown) => void; + readonly "tool.execute.before": (input: { readonly tool?: string }, output: { readonly args?: unknown }) => void; + readonly "tool.execute.after": (input: { readonly tool?: string }, output: unknown) => void; +}; + +const speechCooldownMs = 20_000; +const permissionCooldownMs = 3_000; +const reactionCooldownMs = 10_000; + +export function createOpenPetsOpenCodeHooks(options: OpenCodePluginRuntimeOptions = {}): OpenCodeHooks { + const pet = options.pet === undefined ? undefined : validateOpenPetsPetArg(options.pet); + const clientFactory = options.clientFactory ?? (() => createOpenPetsClient({ connectTimeoutMs: 500, responseTimeoutMs: 500 })); + const schedule = options.schedule ?? defaultSchedule; + const debug = options.debug === true || process.env.OPENPETS_DEBUG === "1"; + const debugLog = options.debugLog ?? ((message) => { if (debug) process.stderr.write(`${message}\n`); }); + let client: OpenPetsClient | undefined; + let lease: { readonly leaseId: string; readonly expiresAt?: number } | undefined; + + const run = (decision: OpenCodePluginDecision | undefined): void => { + if (!decision?.reaction) return; + const reaction = decision.reaction; + try { + schedule(async () => { + try { + const shouldSpeak = decision.speechCategory ? shouldSendSpeech(decision.speechCategory, options) : false; + const shouldReact = shouldSendReaction(reaction, options); + if (!shouldSpeak && !shouldReact) return; + + client ??= clientFactory(); + const leaseId = pet ? await getLeaseId(client, pet) : undefined; + if (decision.speechCategory && shouldSpeak) { + await client.say(validateHookSpeech(pickHookSpeech(decision.speechCategory, options.random)), { reaction, leaseId }); + return; + } + await client.react(reaction, { leaseId }); + } catch (error) { + debugLog(`OpenPets OpenCode plugin ignored error: ${sanitizeDebugError(error)}`); + } + }); + } catch (error) { + debugLog(`OpenPets OpenCode plugin scheduling ignored error: ${sanitizeDebugError(error)}`); + } + }; + + const getLeaseId = async (hit: OpenPetsClient, requestedPetId: string): Promise => { + if (lease && (!lease.expiresAt || lease.expiresAt - Date.now() > 2_000)) return lease.leaseId; + try { + const next = await hit.acquireLease({ requestedPetId }); + lease = { leaseId: next.leaseId, expiresAt: next.expiresAt }; + return next.leaseId; + } catch (error) { + debugLog(`OpenPets OpenCode lease unavailable: ${sanitizeDebugError(error)}`); + return undefined; + } + }; + + return { + event(input) { + try { + run(classifyOpenCodeBusEvent(input.event)); + } catch (error) { + debugLog(`OpenPets OpenCode event ignored error: ${sanitizeDebugError(error)}`); + } + }, + "chat.message"() { + run({ reaction: "thinking" }); + }, + "tool.execute.before"(input, output) { + const tool = typeof input.tool === "string" ? input.tool : ""; + if (shouldIgnoreOpenPetsTool(tool)) return; + run({ reaction: classifyOpenCodeToolReaction(tool, output.args) }); + }, + "tool.execute.after"() { + // Intentionally quiet for now; session.error/session.status events provide less noisy completion signals. + }, + }; +} + +export function classifyOpenCodeToolReaction(toolName: string, args?: unknown): OpenPetsReaction | undefined { + const normalized = toolName.toLowerCase(); + if (/edit|write|patch|apply_patch/.test(normalized)) return "editing"; + if (/bash|shell|terminal/.test(normalized)) return isTestLikeToolArgs(args) ? "testing" : undefined; + return undefined; +} + +export function classifyOpenCodeBusEvent(event: unknown): OpenCodePluginDecision | undefined { + const type = getEventType(event); + if (type === "permission.asked") return shouldIgnoreOpenPetsTool(getEventPermission(event) ?? "") ? undefined : { reaction: "waiting", speechCategory: "permission" }; + if (type === "session.error") return { reaction: "error", speechCategory: "error" }; + if (type === "session.status" && getEventStatusType(event) === "idle") return { reaction: "success" }; + return undefined; +} + +export function shouldIgnoreOpenPetsTool(toolName: string): boolean { + const normalized = toolName.toLowerCase().replace(/[^a-z0-9_:-]+/g, "_"); + return /(?:^|[_:-])openpets_(?:openpets_)?(?:status|say|react)$/.test(normalized) || /^openpets_(?:status|say|react)$/.test(normalized); +} + +export function getDefaultOpenCodeThrottlePath(): string { + if (process.platform === "win32") return join(process.env.LOCALAPPDATA || join(homedir(), "AppData", "Local"), "OpenPets", "opencode-hook-throttle.json"); + const stateHome = process.env.XDG_STATE_HOME || join(homedir(), ".local", "state"); + if (stateHome) return join(stateHome, "openpets", "opencode-hook-throttle.json"); + return join(tmpdir(), `openpets-${safeUid()}`, "opencode-hook-throttle.json"); +} + +function shouldSendSpeech(category: HookSpeechCategory, options: OpenCodePluginRuntimeOptions): boolean { + const now = options.now?.() ?? Date.now(); + const cooldown = category === "permission" ? permissionCooldownMs : speechCooldownMs; + return shouldSendThrottleKey(category, cooldown, now, options.throttlePath ?? getDefaultOpenCodeThrottlePath()); +} + +function shouldSendReaction(reaction: OpenPetsReaction, options: OpenCodePluginRuntimeOptions): boolean { + const now = options.now?.() ?? Date.now(); + return shouldSendThrottleKey(`reaction:${reaction}`, reactionCooldownMs, now, options.throttlePath ?? getDefaultOpenCodeThrottlePath()); +} + +function shouldSendThrottleKey(key: string, cooldown: number, now: number, path: string): boolean { + const state = readThrottleState(path); + const previous = typeof state[key] === "number" ? state[key] : 0; + if (now - previous < cooldown) return false; + state[key] = now; + writeThrottleState(path, state); + return true; +} + +function isTestLikeToolArgs(args: unknown): boolean { + const command = isRecord(args) && typeof args.command === "string" ? args.command.slice(0, 300) : ""; + return /\b(test|vitest|jest|pytest|npm\s+test|pnpm\s+test|yarn\s+test|cargo\s+test|go\s+test)\b/i.test(command); +} + +function getEventType(event: unknown): string | undefined { + if (!isRecord(event)) return undefined; + if (typeof event.type === "string") return event.type; + if (isRecord(event.payload) && typeof event.payload.type === "string") return event.payload.type; + return undefined; +} + +function getEventStatusType(event: unknown): string | undefined { + if (!isRecord(event)) return undefined; + const properties = isRecord(event.properties) ? event.properties : isRecord(event.payload) && isRecord(event.payload.properties) ? event.payload.properties : undefined; + const status = isRecord(properties?.status) ? properties.status : undefined; + return typeof status?.type === "string" ? status.type : undefined; +} + +function getEventPermission(event: unknown): string | undefined { + if (!isRecord(event)) return undefined; + const properties = isRecord(event.properties) ? event.properties : isRecord(event.payload) && isRecord(event.payload.properties) ? event.payload.properties : undefined; + if (typeof properties?.permission === "string") return properties.permission; + if (Array.isArray(properties?.patterns)) { + const hit = properties.patterns.find((pattern) => typeof pattern === "string" && shouldIgnoreOpenPetsTool(pattern)); + if (typeof hit === "string") return hit; + } + return undefined; +} + +function readThrottleState(path: string): Record { + try { + const parsed = JSON.parse(readFileSync(path, "utf8")) as unknown; + if (!isRecord(parsed)) return {}; + const state: Record = {}; + for (const [key, value] of Object.entries(parsed)) { + if ((key === "thinking" || key === "success" || key === "error" || key === "permission" || key.startsWith("reaction:")) && typeof value === "number" && Number.isFinite(value)) state[key] = value; + } + return state; + } catch { + return {}; + } +} + +function writeThrottleState(path: string, state: Record): void { + try { + mkdirSync(dirname(path), { recursive: true, mode: 0o700 }); + const tempPath = `${path}.${process.pid}.tmp`; + writeFileSync(tempPath, `${JSON.stringify(state)}\n`, { encoding: "utf8", mode: 0o600 }); + renameSync(tempPath, path); + } catch { + // Best effort only; throttling must never break hooks. + } +} + +function defaultSchedule(work: () => Promise): void { + queueMicrotask(() => { void work(); }); +} + +function sanitizeDebugError(error: unknown): string { + const message = error instanceof Error ? error.message : String(error); + return message + .replace(/(?:[A-Za-z]:)?[\\/][^\s"']{2,}/g, "") + .replace(/\b(api[_-]?key|secret|password|token)\s*[:=]\s*\S+/gi, "$1=") + .slice(0, 200); +} + +function safeUid(): string { + try { return String(userInfo().uid); } catch { return "user"; } +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null; +} diff --git a/packages/opencode/src/opencode-previews.ts b/packages/opencode/src/opencode-previews.ts new file mode 100644 index 00000000..65d42ddd --- /dev/null +++ b/packages/opencode/src/opencode-previews.ts @@ -0,0 +1,52 @@ +import { isAbsolute, join } from "node:path"; + +export const openCodeMcpServerName = "openpets"; +export const openPetsCliPackageName = "@open-pets/cli"; +export type OpenCodeCommandMode = "published" | "local" | "bundled"; + +export interface OpenCodeMcpEntry { + readonly type: "local"; + readonly command: readonly string[]; + readonly enabled: true; +} + +export interface OpenCodePreviewOptions { + readonly cliVersion: string; + readonly petId?: string; + readonly commandMode?: OpenCodeCommandMode; + readonly cliEntryPath?: string; +} + +export function validateOpenPetsPetArg(value: string): string { + const trimmed = value.trim(); + if (trimmed !== value || trimmed.length < 1) throw new Error("Invalid OpenPets pet id."); + if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(trimmed)) throw new Error("Invalid OpenPets pet id."); + return trimmed; +} + +export function buildOpenCodeMcpEntry(options: OpenCodePreviewOptions): OpenCodeMcpEntry { + const petArgs = options.petId === undefined ? [] : ["--pet", validateOpenPetsPetArg(options.petId)]; + const mode = options.commandMode ?? "published"; + if (mode === "local" || mode === "bundled") { + if (!options.cliEntryPath || !isAbsolute(options.cliEntryPath)) throw new Error("OpenCode local MCP preview requires an absolute CLI entry path."); + return { type: "local", command: ["node", options.cliEntryPath, "mcp", ...petArgs], enabled: true }; + } + return { type: "local", command: ["npx", "-y", `${openPetsCliPackageName}@${options.cliVersion}`, "mcp", ...petArgs], enabled: true }; +} + +export function buildOpenCodeInstructionPath(scope: "project" | "global", configDir?: string): string { + if (scope === "project") return ".opencode/openpets.md"; + if (!configDir) throw new Error("Global OpenCode instruction path requires config directory."); + return join(configDir, "openpets.md"); +} + +export type OpenCodePluginSpec = string | readonly [string, { readonly pet?: string }]; + +export function buildOpenCodePluginPreview(petId?: string, packageVersion?: string): OpenCodePluginSpec { + const spec = packageVersion ? `@open-pets/opencode@${packageVersion}` : "@open-pets/opencode"; + return petId === undefined ? spec : [spec, { pet: validateOpenPetsPetArg(petId) }]; +} + +export function formatOpenCodeMcpConfig(options: OpenCodePreviewOptions): Record { + return { mcp: { [openCodeMcpServerName]: buildOpenCodeMcpEntry(options) } }; +} diff --git a/packages/opencode/src/opencode-project-setup.ts b/packages/opencode/src/opencode-project-setup.ts new file mode 100644 index 00000000..e822bf7b --- /dev/null +++ b/packages/opencode/src/opencode-project-setup.ts @@ -0,0 +1,182 @@ +import { chmodSync, closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, writeFileSync } from "node:fs"; +import { dirname, isAbsolute, join, relative } from "node:path"; +import { randomUUID } from "node:crypto"; + +import { executePlannedWrite, getProjectOpenCodeConfigPaths, parseOpenCodeConfig, planOpenCodeConfigWrite, readOpenCodeConfigFile, updateOpenCodeConfigText, type PlannedWrite } from "./opencode-config.js"; +import { buildOpenCodeInstructionPath, buildOpenCodeMcpEntry, buildOpenCodePluginPreview, validateOpenPetsPetArg, type OpenCodeCommandMode } from "./opencode-previews.js"; +import { classifyOpenCodeInstructionsStatus, classifyOpenCodeMcpStatus, classifyOpenCodePluginStatus, isManagedOpenPetsMcpEntry, isManagedOpenPetsPluginEntry } from "./opencode-status.js"; + +export interface PrepareOpenCodeProjectSetupOptions { + readonly projectDir: string; + readonly petId: string; + readonly cliVersion: string; + readonly commandMode?: OpenCodeCommandMode; + readonly cliEntryPath?: string; +} + +export interface PreparedOpenCodeProjectSetup { + readonly projectDir: string; + readonly petId: string; + readonly configPath: string; + readonly instructionPath: string; + readonly configWrite: PlannedWrite; + readonly instructionWrite: PlannedTextWrite; +} + +export interface PlannedTextWrite { + readonly targetPath: string; + readonly backupPath?: string; + readonly tempPath: string; + readonly content: string; +} + +const maxInstructionBytes = 1024 * 1024; +const openPetsStart = ""; +const openPetsEnd = ""; + +export function prepareOpenCodeProjectSetup(options: PrepareOpenCodeProjectSetupOptions): PreparedOpenCodeProjectSetup { + const petId = validateOpenPetsPetArg(options.petId); + const paths = getProjectOpenCodeConfigPaths(options.projectDir); + const existingConfigs = paths.candidates.flatMap((path) => { + if (!existsSync(path)) return []; + assertSafeProjectLocalPath(options.projectDir, path, "OpenCode config"); + const parsed = readOpenCodeConfigFile(path); + if (!parsed.ok) throw new Error(parsed.message); + return [{ path, config: parsed.value }]; + }); + const configs = existingConfigs.map((entry) => entry.config); + const instructionRelPath = buildOpenCodeInstructionPath("project"); + const instructionPath = join(options.projectDir, instructionRelPath); + assertSafeProjectLocalPath(options.projectDir, instructionPath, "OpenCode instruction"); + const instructionContent = existsSync(instructionPath) ? readSafeInstructionFile(instructionPath) : ""; + const mcpStatus = classifyOpenCodeMcpStatus(configs, { cliVersion: options.cliVersion, petId, commandMode: options.commandMode, cliEntryPath: options.cliEntryPath }); + const instructionStatus = classifyOpenCodeInstructionsStatus(configs, "project", undefined, { [instructionRelPath]: instructionContent }); + const pluginStatus = classifyOpenCodePluginStatus(configs, petId, options.cliVersion); + for (const status of [mcpStatus, instructionStatus, pluginStatus]) { + if (status.status === "custom" || status.status === "conflict" || status.status === "error") throw new Error(`${status.message} Edit or remove the custom OpenPets OpenCode entry, then rerun setup.`); + } + + const selectedPath = selectWriteTarget(paths.candidates, existingConfigs, paths.defaultCreatePath); + const selectedText = existsSync(selectedPath) ? readFileSync(selectedPath, "utf8") : "{}\n"; + const parsedSelected = parseOpenCodeConfig(selectedText); + if (!parsedSelected.ok) throw new Error(parsedSelected.message); + const nextConfig = buildNextConfig(parsedSelected.value, petId, options); + const nextText = updateOpenCodeConfigText(selectedText, [ + { path: ["mcp"], value: nextConfig.mcp }, + { path: ["instructions"], value: nextConfig.instructions }, + { path: ["plugin"], value: nextConfig.plugin }, + ]); + if (typeof nextText !== "string") throw new Error(nextText.message); + const configWrite = planOpenCodeConfigWrite(options.projectDir, selectedPath, nextText); + if ("ok" in configWrite) throw new Error(configWrite.message); + const instructionWrite = planInstructionWrite(options.projectDir, instructionPath, upsertOpenPetsInstructionBlock(instructionContent)); + return { projectDir: options.projectDir, petId, configPath: selectedPath, instructionPath, configWrite, instructionWrite }; +} + +export function writePreparedOpenCodeProjectSetup(prepared: PreparedOpenCodeProjectSetup): void { + executeTextWrite(prepared.instructionWrite); + executePlannedWrite(prepared.configWrite); +} + +export function createOpenPetsInstructionBlock(): string { + return `${openPetsStart}\n## OpenPets\n\nOpenPets MCP tools may be available.\n\nUse OpenPets as a short visible status channel for meaningful coding progress:\n- Use \`openpets_say\` when starting, completing, blocking, or needing review on non-trivial work.\n- Keep messages brief, user-facing, and non-sensitive.\n- Do not include code, logs, secrets, URLs, or file paths.\n- Use \`openpets_react\` for small visual or emotional feedback.\n- Use \`openpets_status\` only when checking availability or the targeted pet.\n- Do not spam every internal step.\n${openPetsEnd}\n`; +} + +function buildNextConfig(config: Record, petId: string, options: PrepareOpenCodeProjectSetupOptions): { readonly mcp: Record; readonly instructions: readonly string[]; readonly plugin: readonly unknown[] } { + const mcp = isRecord(config.mcp) ? { ...config.mcp } : {}; + mcp.openpets = buildOpenCodeMcpEntry({ cliVersion: options.cliVersion, petId, commandMode: options.commandMode, cliEntryPath: options.cliEntryPath }); + const instructionPath = buildOpenCodeInstructionPath("project"); + const instructions = [...new Set([...(Array.isArray(config.instructions) ? config.instructions.filter((entry): entry is string => typeof entry === "string") : []), instructionPath])]; + const pluginSpec = buildOpenCodePluginPreview(petId, options.cliVersion); + const plugin = [...(Array.isArray(config.plugin) ? config.plugin.filter((entry) => !isManagedOpenPetsPluginEntry(entry)) : []), pluginSpec]; + return { mcp, instructions, plugin }; +} + +function selectWriteTarget(candidates: readonly string[], existing: readonly { readonly path: string; readonly config: Record }[], fallback: string): string { + const owners = existing.filter((entry) => hasManagedOpenPetsEntry(entry.config)).map((entry) => entry.path); + const uniqueOwners = [...new Set(owners)]; + if (uniqueOwners.length > 1) throw new Error("OpenCode has OpenPets entries in multiple config files. Remove duplicates, then rerun setup."); + if (uniqueOwners.length === 1) return uniqueOwners[0] ?? fallback; + return candidates.find((candidate) => existing.some((entry) => entry.path === candidate)) ?? fallback; +} + +function planInstructionWrite(projectDir: string, targetPath: string, content: string): PlannedTextWrite { + assertSafeProjectLocalPath(projectDir, targetPath, "OpenCode instruction"); + if (existsSync(targetPath)) { + const stat = lstatSync(targetPath); + if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("OpenCode instruction path must be a safe regular file."); + if (stat.size > maxInstructionBytes) throw new Error("OpenCode instruction file is too large."); + } + const parent = dirname(targetPath); + if (existsSync(parent)) { + const stat = lstatSync(parent); + if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error("OpenCode instruction directory is unsafe."); + } + const stamp = `${process.pid}-${Date.now()}-${randomUUID()}`; + return { targetPath, backupPath: existsSync(targetPath) ? `${targetPath}.openpets-backup-${stamp}.md` : undefined, tempPath: join(parent, `.openpets-${stamp}.tmp`), content }; +} + +function executeTextWrite(plan: PlannedTextWrite): void { + const parent = dirname(plan.targetPath); + if (existsSync(parent)) { + const parentStat = lstatSync(parent); + if (parentStat.isSymbolicLink() || !parentStat.isDirectory()) throw new Error("OpenCode instruction directory is unsafe."); + } + if (existsSync(plan.targetPath)) { + const targetStat = lstatSync(plan.targetPath); + if (targetStat.isSymbolicLink() || !targetStat.isFile()) throw new Error("OpenCode instruction path must be a safe regular file."); + if (targetStat.size > maxInstructionBytes) throw new Error("OpenCode instruction file is too large."); + } + if (plan.backupPath && dirname(plan.backupPath) !== parent) throw new Error("OpenCode instruction backup path is unsafe."); + if (dirname(plan.tempPath) !== parent) throw new Error("OpenCode instruction temp path is unsafe."); + mkdirSync(dirname(plan.targetPath), { recursive: true, mode: 0o700 }); + if (plan.backupPath && existsSync(plan.targetPath)) { + const backup = openSync(plan.backupPath, "wx", 0o600); + try { writeFileSync(backup, readFileSync(plan.targetPath)); } finally { closeSync(backup); } + } + const fd = openSync(plan.tempPath, "wx", 0o600); + try { writeFileSync(fd, plan.content, "utf8"); } finally { closeSync(fd); } + renameSync(plan.tempPath, plan.targetPath); + try { chmodSync(plan.targetPath, 0o600); } catch { /* best effort */ } +} + +function readSafeInstructionFile(path: string): string { + const stat = lstatSync(path); + if (stat.isSymbolicLink() || !stat.isFile()) throw new Error("OpenCode instruction path must be a safe regular file."); + if (stat.size > maxInstructionBytes) throw new Error("OpenCode instruction file is too large."); + return readFileSync(path, "utf8"); +} + +function assertSafeProjectLocalPath(projectDir: string, targetPath: string, label: string): void { + const rel = relative(projectDir, targetPath); + if (rel.startsWith("..") || isAbsolute(rel)) throw new Error(`${label} path escapes the project.`); + const parts = rel.split(/[\\/]+/).filter(Boolean); + let current = projectDir; + for (let index = 0; index < parts.length - 1; index += 1) { + current = join(current, parts[index] ?? ""); + if (!existsSync(current)) continue; + const stat = lstatSync(current); + if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error(`${label} parent directory is unsafe.`); + } +} + +function upsertOpenPetsInstructionBlock(source: string): string { + const withoutBlock = source.replace(new RegExp(`${escapeRegExp(openPetsStart)}[\\s\\S]*?${escapeRegExp(openPetsEnd)}\\n?`, "g"), "").replace(/\n{3,}/g, "\n\n").replace(/\s*$/u, ""); + const block = createOpenPetsInstructionBlock(); + return withoutBlock ? `${withoutBlock}\n\n${block}` : block; +} + +function hasManagedOpenPetsEntry(config: Record): boolean { + if (isRecord(config.mcp) && isManagedOpenPetsMcpEntry(config.mcp.openpets)) return true; + if (Array.isArray(config.instructions) && config.instructions.some((entry) => entry === buildOpenCodeInstructionPath("project"))) return true; + if (Array.isArray(config.plugin) && config.plugin.some(isManagedOpenPetsPluginEntry)) return true; + return false; +} + +function escapeRegExp(value: string): string { + return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} diff --git a/packages/opencode/src/opencode-status.ts b/packages/opencode/src/opencode-status.ts new file mode 100644 index 00000000..1672d48c --- /dev/null +++ b/packages/opencode/src/opencode-status.ts @@ -0,0 +1,136 @@ +import { buildOpenCodeInstructionPath, buildOpenCodeMcpEntry, buildOpenCodePluginPreview, openCodeMcpServerName, type OpenCodePreviewOptions } from "./opencode-previews.js"; + +export type OpenCodeEntryStatus = "not_installed" | "installed" | "needs_update" | "custom" | "conflict" | "error"; + +export interface OpenCodeStatusResult { + readonly status: OpenCodeEntryStatus; + readonly message: string; + readonly matches: readonly string[]; +} + +export function classifyOpenCodeMcpStatus(configs: readonly Record[], expected: OpenCodePreviewOptions): OpenCodeStatusResult { + const entries = configs.flatMap((config, index) => { + const mcp = isRecord(config.mcp) ? config.mcp : undefined; + const entry = mcp?.[openCodeMcpServerName]; + return entry === undefined ? [] : [{ source: String(index), entry }]; + }); + if (entries.length === 0) return { status: "not_installed", message: "OpenCode OpenPets MCP is not installed.", matches: [] }; + const expectedEntry = buildOpenCodeMcpEntry(expected); + const current = entries.filter(({ entry }) => isSameMcpEntry(entry, expectedEntry)); + const managed = entries.filter(({ entry }) => isManagedOpenPetsMcpEntry(entry, expectedEntry.command)); + if (current.length === 1 && entries.length === 1) return { status: "installed", message: "OpenCode OpenPets MCP is installed.", matches: [entries[0]?.source ?? "0"] }; + if (current.length > 0 || managed.length > 0) return { status: entries.length > 1 ? "conflict" : "needs_update", message: "OpenCode OpenPets MCP needs update.", matches: entries.map((entry) => entry.source) }; + return { status: "custom", message: "OpenCode has a custom openpets MCP entry.", matches: entries.map((entry) => entry.source) }; +} + +export function classifyOpenCodeInstructionsStatus(configs: readonly Record[], scope: "project" | "global", configDir?: string, instructionFiles: Record = {}): OpenCodeStatusResult { + const expected = buildOpenCodeInstructionPath(scope, configDir); + const allEntries = configs.flatMap((config, index) => Array.isArray(config.instructions) ? config.instructions.filter((entry): entry is string => typeof entry === "string" && isOpenPetsLikeInstruction(entry)).map((entry) => ({ source: String(index), entry })) : []); + const managedEntries = allEntries.filter(({ entry }) => entry === expected); + const customEntries = allEntries.filter(({ entry }) => entry !== expected); + if (allEntries.length === 0) return { status: "not_installed", message: "OpenCode OpenPets instructions are not installed.", matches: [] }; + if (managedEntries.length > 1 || (managedEntries.length > 0 && customEntries.length > 0)) return { status: "conflict", message: "OpenCode has conflicting OpenPets instruction entries.", matches: allEntries.map((entry) => entry.source) }; + if (managedEntries.length === 1 && hasManagedInstructionBlock(instructionFiles[expected])) return { status: "installed", message: "OpenCode OpenPets instructions are installed.", matches: managedEntries.map((entry) => entry.source) }; + if (managedEntries.length === 1) return { status: "needs_update", message: "OpenCode OpenPets instruction file needs managed block.", matches: managedEntries.map((entry) => entry.source) }; + return { status: "custom", message: "OpenCode has custom OpenPets-like instruction entries.", matches: customEntries.map((entry) => entry.source) }; +} + +export function classifyOpenCodePluginStatus(configs: readonly Record[], petId?: string, packageVersion?: string): OpenCodeStatusResult { + const expected = buildOpenCodePluginPreview(petId, packageVersion); + const pluginEntries = configs.flatMap((config, index) => Array.isArray(config.plugin) ? config.plugin.map((entry) => ({ source: String(index), entry })) : []); + const current = pluginEntries.filter(({ entry }) => isExpectedPlugin(entry, expected)); + const recognizable = pluginEntries.filter(({ entry }) => isManagedOpenPetsPluginEntry(entry)); + const custom = pluginEntries.filter(({ entry }) => !isManagedOpenPetsPluginEntry(entry) && isOpenPetsLikePluginEntry(entry)); + if (current.length === 1 && recognizable.length === 1 && custom.length === 0) return { status: "installed", message: "OpenCode OpenPets plugin is installed.", matches: current.map((entry) => entry.source) }; + if (recognizable.length > 0 && custom.length > 0) return { status: "conflict", message: "OpenCode has conflicting OpenPets plugin entries.", matches: [...recognizable, ...custom].map((entry) => entry.source) }; + if (recognizable.length > 0) return { status: recognizable.length > 1 ? "conflict" : "needs_update", message: "OpenCode OpenPets plugin needs update.", matches: recognizable.map((entry) => entry.source) }; + if (custom.length > 0) return { status: "custom", message: "OpenCode has custom OpenPets-like plugin entries.", matches: custom.map((entry) => entry.source) }; + return { status: "not_installed", message: "OpenCode OpenPets plugin is not installed.", matches: [] }; +} + +export function isManagedOpenPetsMcpEntry(value: unknown, expectedCommand?: readonly string[]): boolean { + if (!isRecord(value) || value.type !== "local" || value.enabled !== true || !Array.isArray(value.command)) return false; + const keys = Object.keys(value).sort(); + if (keys.length !== 3 || keys[0] !== "command" || keys[1] !== "enabled" || keys[2] !== "type") return false; + return isManagedOpenPetsMcpCommand(value.command, expectedCommand); +} + +function isManagedOpenPetsMcpCommand(command: readonly unknown[], expectedCommand?: readonly string[]): boolean { + if (!command.every((part) => typeof part === "string")) return false; + const parts = command as readonly string[]; + if (expectedCommand && isSameCommand(parts, expectedCommand)) return true; + if (expectedCommand && isExpectedNodeOpenPetsMcpCommand(parts, expectedCommand)) return true; + return isPublishedOpenPetsMcpCommand(parts) || isNodeOpenPetsMcpCommand(parts); +} + +function isExpectedNodeOpenPetsMcpCommand(command: readonly string[], expected: readonly string[]): boolean { + return expected[0] === "node" && command.length >= 3 && command[0] === "node" && command[1] === expected[1] && command[2] === "mcp" && hasValidPetArgs(command.slice(3)); +} + +function isPublishedOpenPetsMcpCommand(command: readonly string[]): boolean { + return command.length >= 4 && command[0] === "npx" && command[1] === "-y" && /^@open-pets\/cli@\d+\.\d+\.\d+(?:-[A-Za-z0-9.-]+)?(?:\+[A-Za-z0-9.-]+)?$/.test(command[2] ?? "") && command[3] === "mcp" && hasValidPetArgs(command.slice(4)); +} + +function isNodeOpenPetsMcpCommand(command: readonly string[]): boolean { + return command.length >= 3 && command[0] === "node" && isOpenPetsCliEntryPath(command[1] ?? "") && command[2] === "mcp" && hasValidPetArgs(command.slice(3)); +} + +function isOpenPetsCliEntryPath(path: string): boolean { + return /(?:^|[\\/])node_modules[\\/]@open-pets[\\/]cli[\\/]dist[\\/]index\.js$/u.test(path) || /(?:^|[\\/])packages[\\/]cli[\\/]dist[\\/]index\.js$/u.test(path); +} + +function hasValidPetArgs(args: readonly string[]): boolean { + if (args.length === 0) return true; + return args.length === 2 && args[0] === "--pet" && /^[a-z0-9][a-z0-9_-]{0,63}$/.test(args[1] ?? ""); +} + +function isSameCommand(command: readonly string[], expected: readonly string[]): boolean { + return command.length === expected.length && command.every((part, index) => part === expected[index]); +} + +function isExpectedPlugin(value: unknown, expected: string | readonly [string, { readonly pet?: string }]): boolean { + if (typeof expected === "string") return value === expected; + return Array.isArray(value) && value.length === 2 && value[0] === expected[0] && isSamePluginOptions(value[1], expected[1]); +} + +export function isManagedOpenPetsPluginEntry(value: unknown): boolean { + if (typeof value === "string") return /^@open-pets\/opencode(?:@[^/]+)?$/.test(value); + return Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && /^@open-pets\/opencode(?:@[^/]+)?$/.test(value[0]) && isPetPluginOptions(value[1]); +} + +export function isOpenPetsLikePluginEntry(value: unknown): boolean { + if (typeof value === "string") return /openpets|open-pets/i.test(value); + if (Array.isArray(value)) return value.some(isOpenPetsLikePluginEntry); + return false; +} + +function isPetPluginOptions(value: unknown): boolean { + if (!isRecord(value)) return false; + const keys = Object.keys(value); + return keys.length === 1 && keys[0] === "pet" && typeof value.pet === "string" && /^[a-z0-9][a-z0-9_-]{0,63}$/.test(value.pet); +} + +function isSameMcpEntry(value: unknown, expected: { readonly type: "local"; readonly command: readonly string[]; readonly enabled: true }): boolean { + if (!isRecord(value) || value.type !== expected.type || value.enabled !== expected.enabled || !Array.isArray(value.command)) return false; + const keys = Object.keys(value).sort(); + if (keys.length !== 3 || keys[0] !== "command" || keys[1] !== "enabled" || keys[2] !== "type") return false; + return value.command.length === expected.command.length && value.command.every((part, index) => part === expected.command[index]); +} + +function isSamePluginOptions(value: unknown, expected: { readonly pet?: string }): boolean { + if (!isRecord(value)) return Object.keys(expected).length === 0; + const keys = Object.keys(value); + return keys.length === Object.keys(expected).length && value.pet === expected.pet; +} + +function isOpenPetsLikeInstruction(value: string): boolean { + return /openpets\.md$/i.test(value) || /@open-pets\/opencode/i.test(value); +} + +function hasManagedInstructionBlock(value: string | undefined): boolean { + return typeof value === "string" && /[\s\S]*?/.test(value); +} + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} diff --git a/packages/opencode/src/plugin.ts b/packages/opencode/src/plugin.ts new file mode 100644 index 00000000..fcd13154 --- /dev/null +++ b/packages/opencode/src/plugin.ts @@ -0,0 +1,10 @@ +import { createOpenPetsOpenCodeHooks, type OpenCodePluginOptions } from "./opencode-plugin-runtime.js"; + +export const openPetsOpenCodePluginId = "open-pets-opencode"; + +const plugin = { + id: openPetsOpenCodePluginId, + server: async (_input: unknown, options?: OpenCodePluginOptions) => createOpenPetsOpenCodeHooks(options ?? {}), +}; + +export default plugin; diff --git a/packages/opencode/tsconfig.json b/packages/opencode/tsconfig.json new file mode 100644 index 00000000..762e7118 --- /dev/null +++ b/packages/opencode/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/pet-format/package.json b/packages/pet-format/package.json new file mode 100644 index 00000000..69afd25e --- /dev/null +++ b/packages/pet-format/package.json @@ -0,0 +1,28 @@ +{ + "name": "@open-pets/pet-format", + "version": "2.0.0", + "private": true, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/alvinunreal/openpets.git", + "directory": "packages/pet-format" + }, + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "check": "pnpm typecheck", + "typecheck": "tsc --noEmit", + "build": "tsc" + }, + "devDependencies": { + "typescript": "^6.0.3" + } +} diff --git a/packages/pet-format/src/index.ts b/packages/pet-format/src/index.ts new file mode 100644 index 00000000..36dda072 --- /dev/null +++ b/packages/pet-format/src/index.ts @@ -0,0 +1,5 @@ +export interface PetFormatPackageMarker { + readonly packageName: "@open-pets/pet-format"; +} + +export const petFormatPackageName = "@open-pets/pet-format"; diff --git a/packages/pet-format/tsconfig.json b/packages/pet-format/tsconfig.json new file mode 100644 index 00000000..df59da57 --- /dev/null +++ b/packages/pet-format/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + }, + "include": ["src/**/*.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..61479fa8 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2983 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + apps/desktop: + dependencies: + '@open-pets/agent-events': + specifier: workspace:* + version: link:../../packages/agent-events + '@open-pets/claude': + specifier: workspace:* + version: link:../../packages/claude + '@open-pets/cli': + specifier: workspace:* + version: link:../../packages/cli + '@open-pets/mcp': + specifier: workspace:* + version: link:../../packages/mcp + '@open-pets/opencode': + specifier: workspace:* + version: link:../../packages/opencode + yauzl: + specifier: 3.3.0 + version: 3.3.0 + devDependencies: + '@types/node': + specifier: ^25.6.2 + version: 25.6.2 + '@types/yauzl': + specifier: 2.10.3 + version: 2.10.3 + electron: + specifier: ^42.0.0 + version: 42.0.0 + electron-builder: + specifier: ^26.8.1 + version: 26.8.1(electron-builder-squirrel-windows@26.8.1) + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + packages/agent-events: + devDependencies: + '@types/node': + specifier: ^25.6.2 + version: 25.6.2 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + packages/claude: + dependencies: + '@open-pets/agent-events': + specifier: workspace:* + version: link:../agent-events + '@open-pets/client': + specifier: workspace:* + version: link:../client + devDependencies: + '@types/node': + specifier: ^25.6.2 + version: 25.6.2 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + packages/cli: + dependencies: + '@open-pets/claude': + specifier: workspace:* + version: link:../claude + '@open-pets/client': + specifier: workspace:* + version: link:../client + '@open-pets/mcp': + specifier: workspace:* + version: link:../mcp + '@open-pets/opencode': + specifier: workspace:* + version: link:../opencode + devDependencies: + '@types/node': + specifier: ^25.6.2 + version: 25.6.2 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + packages/client: + devDependencies: + '@types/node': + specifier: ^25.6.2 + version: 25.6.2 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + packages/mcp: + dependencies: + '@modelcontextprotocol/sdk': + specifier: ^1.29.0 + version: 1.29.0(zod@4.4.3) + '@open-pets/client': + specifier: workspace:* + version: link:../client + zod: + specifier: ^4.4.3 + version: 4.4.3 + devDependencies: + '@types/node': + specifier: ^25.6.2 + version: 25.6.2 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + packages/opencode: + dependencies: + '@open-pets/agent-events': + specifier: workspace:* + version: link:../agent-events + '@open-pets/client': + specifier: workspace:* + version: link:../client + jsonc-parser: + specifier: ^3.3.1 + version: 3.3.1 + devDependencies: + '@types/node': + specifier: ^25.6.2 + version: 25.6.2 + typescript: + specifier: ^6.0.3 + version: 6.0.3 + + packages/pet-format: + devDependencies: + typescript: + specifier: ^6.0.3 + version: 6.0.3 + +packages: + + 7zip-bin@5.2.0: + resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + + '@develar/schema-utils@2.6.5': + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + + '@electron/asar@3.4.1': + resolution: {integrity: sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==} + engines: {node: '>=10.12.0'} + hasBin: true + + '@electron/fuses@1.8.0': + resolution: {integrity: sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==} + hasBin: true + + '@electron/get@3.1.0': + resolution: {integrity: sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==} + engines: {node: '>=14'} + + '@electron/get@5.0.0': + resolution: {integrity: sha512-pjoBpru1KdEtcExBnuHAP1cAc/5faoedw0hzJkL3o4/IJp7HNF1+fbrdxT3gMYRX2oJfvnA/WXeCTVQpYYxyJA==} + engines: {node: '>=22.12.0'} + + '@electron/notarize@2.5.0': + resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} + engines: {node: '>= 10.0.0'} + + '@electron/osx-sign@1.3.3': + resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==} + engines: {node: '>=12.0.0'} + hasBin: true + + '@electron/rebuild@4.0.4': + resolution: {integrity: sha512-Rzc39XPdk/+/wBG8MfwAHohXflep0ITUfulb6Rgz3R0NeSB1noE+E9/M/cb8ftCAiyDD9PPhLuuWgE1GaInbKg==} + engines: {node: '>=22.12.0'} + hasBin: true + + '@electron/universal@2.0.3': + resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==} + engines: {node: '>=16.4'} + + '@electron/windows-sign@1.2.2': + resolution: {integrity: sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==} + engines: {node: '>=14.14'} + hasBin: true + + '@hono/node-server@1.19.14': + resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@malept/cross-spawn-promise@2.0.0': + resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} + engines: {node: '>= 12.13.0'} + + '@malept/flatpak-bundler@0.4.0': + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} + + '@modelcontextprotocol/sdk@1.29.0': + resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==} + engines: {node: '>=18'} + peerDependencies: + '@cfworker/json-schema': ^4.1.1 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@cfworker/json-schema': + optional: true + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + + '@types/fs-extra@9.0.13': + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node@24.12.2': + resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} + + '@types/node@25.6.2': + resolution: {integrity: sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==} + + '@types/plist@3.0.5': + resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/verror@1.10.11': + resolution: {integrity: sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@xmldom/xmldom@0.8.13': + resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==} + engines: {node: '>=10.0.0'} + + '@xmldom/xmldom@0.9.10': + resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} + engines: {node: '>=14.6'} + + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} + + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + app-builder-bin@5.0.0-alpha.12: + resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} + + app-builder-lib@26.8.1: + resolution: {integrity: sha512-p0Im/Dx5C4tmz8QEE1Yn4MkuPC8PrnlRneMhWJj7BBXQfNTJUshM/bp3lusdEsDbvvfJZpXWnYesgSLvwtM2Zw==} + engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 26.8.1 + electron-builder-squirrel-windows: 26.8.1 + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + body-parser@2.2.2: + resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} + engines: {node: '>=18'} + + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + brace-expansion@1.1.14: + resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + + brace-expansion@2.1.0: + resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} + + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + builder-util-runtime@9.5.1: + resolution: {integrity: sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==} + engines: {node: '>=12.0.0'} + + builder-util@26.8.1: + resolution: {integrity: sha512-pm1lTYbGyc90DHgCDO7eo8Rl4EqKLciayNbZqGziqnH9jrlKe8ZANGdityLZU+pJh16dfzjAx2xQq9McuIPEtw==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + content-disposition@1.1.0: + resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} + engines: {node: '>=18'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} + engines: {node: '>= 0.10'} + + crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + + cross-dirname@0.1.0: + resolution: {integrity: sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + dir-compare@4.2.0: + resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} + + dmg-builder@26.8.1: + resolution: {integrity: sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==} + + dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + engines: {node: '>=8'} + os: [darwin] + hasBin: true + + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + engines: {node: '>=12'} + + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-builder-squirrel-windows@26.8.1: + resolution: {integrity: sha512-o288fIdgPLHA76eDrFADHPoo7VyGkDCYbLV1GzndaMSAVBoZrGvM9m2IehdcVMzdAZJ2eV9bgyissQXHv5tGzA==} + + electron-builder@26.8.1: + resolution: {integrity: sha512-uWhx1r74NGpCagG0ULs/P9Nqv2nsoo+7eo4fLUOB8L8MdWltq9odW/uuLXMFCDGnPafknYLZgjNX0ZIFRzOQAw==} + engines: {node: '>=14.0.0'} + hasBin: true + + electron-publish@26.8.1: + resolution: {integrity: sha512-q+jrSTIh/Cv4eGZa7oVR+grEJo/FoLMYBAnSL5GCtqwUpr1T+VgKB/dn1pnzxIxqD8S/jP1yilT9VrwCqINR4w==} + + electron-winstaller@5.4.0: + resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} + engines: {node: '>=8.0.0'} + + electron@42.0.0: + resolution: {integrity: sha512-in5jnW/Ywy3Rh3FPr4MR80exPEkywKYAmDJRZ/gIKlr8VXEi3zXgiAZbf0Si7KRccHTF2y8euVMRz7M6HqTjMA==} + engines: {node: '>= 22.12.0'} + hasBin: true + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eventsource-parser@3.0.8: + resolution: {integrity: sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==} + engines: {node: '>=18.0.0'} + + eventsource@3.0.7: + resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} + engines: {node: '>=18.0.0'} + + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + + express-rate-limit@8.5.1: + resolution: {integrity: sha512-5O6KYmyJEpuPJV5hNTXKbAHWRqrzyu+OI3vUnSd2kXFubIVpG7ezpgxQy76Zo5GQZtrQBg86hF+CM/NX+cioiQ==} + engines: {node: '>= 16'} + peerDependencies: + express: '>= 4.11' + + express@5.2.1: + resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + engines: {node: '>= 18'} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-uri@3.1.2: + resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + filelist@1.0.6: + resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} + + finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.3.5: + resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.3: + resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} + engines: {node: '>= 0.4'} + + hono@4.12.18: + resolution: {integrity: sha512-RWzP96k/yv0PQfyXnWjs6zot20TqfpfsNXhOnev8d1InAxubW93L11/oNUc3tQqn2G0bSdAOBpX+2uDFHV7kdQ==} + engines: {node: '>=16.9.0'} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ip-address@10.2.0: + resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + engines: {node: '>= 12'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isbinaryfile@5.0.7: + resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.5: + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} + engines: {node: '>=18'} + + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + + jake@10.9.4: + resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} + engines: {node: '>=10'} + hasBin: true + + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + + jose@6.2.3: + resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema-typed@8.0.2: + resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + node-abi@4.31.0: + resolution: {integrity: sha512-Erq5w/t3syw3s4sDsUaX4QttIdBPsGKTT1DTRsCkTonGggczhlDKm/wDX3o+HPJpQ41EjXCbcmXf0tgr5YZJXw==} + engines: {node: '>=22.12.0'} + + node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + + node-api-version@0.2.1: + resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==} + + node-gyp@12.3.0: + resolution: {integrity: sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + nopt@9.0.0: + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + + pe-library@0.4.1: + resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==} + engines: {node: '>=12', npm: '>=6'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + pkce-challenge@5.0.1: + resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} + engines: {node: '>=16.20.0'} + + plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + + plist@3.1.1: + resolution: {integrity: sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==} + engines: {node: '>=10.4.0'} + + postject@1.0.0-alpha.6: + resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==} + engines: {node: '>=14.0.0'} + hasBin: true + + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.15.1: + resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} + engines: {node: '>=0.6'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@3.0.2: + resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + engines: {node: '>= 0.10'} + + read-binary-file-arch@1.0.6: + resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resedit@1.7.2: + resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} + engines: {node: '>=12', npm: '>=6'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sanitize-filename@1.6.4: + resolution: {integrity: sha512-9ZyI08PsvdQl2r/bBIGubpVdR3RR9sY6RDiWFPreA21C/EFlQhmgo20UZlNjZMMZNubusLhAQozkA0Od5J21Eg==} + + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} + engines: {node: '>=11.0.0'} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + tar@7.5.15: + resolution: {integrity: sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==} + engines: {node: '>=18'} + + temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + + temp@0.9.4: + resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} + engines: {node: '>=6.0.0'} + + tiny-async-pool@1.3.0: + resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==} + + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + + tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + + tmp@0.2.5: + resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + engines: {node: '>=14.14'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + + undici@6.25.0: + resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==} + engines: {node: '>=18.17'} + + undici@7.25.0: + resolution: {integrity: sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==} + engines: {node: '>=20.18.1'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + verror@1.10.1: + resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + engines: {node: '>=0.6.0'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yauzl@3.3.0: + resolution: {integrity: sha512-PtGEvEP30p7sbIBJKUBjUnqgTVOyMURc4dLo9iNyAJnNIEz9pm88cCXF21w94Kg3k6RXkeZh5DHOGS0qEONvNQ==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + +snapshots: + + 7zip-bin@5.2.0: {} + + '@develar/schema-utils@2.6.5': + dependencies: + ajv: 6.15.0 + ajv-keywords: 3.5.2(ajv@6.15.0) + + '@electron/asar@3.4.1': + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.5 + + '@electron/fuses@1.8.0': + dependencies: + chalk: 4.1.2 + fs-extra: 9.1.0 + minimist: 1.2.8 + + '@electron/get@3.1.0': + dependencies: + debug: 4.4.3 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@electron/get@5.0.0': + dependencies: + debug: 4.4.3 + env-paths: 3.0.0 + graceful-fs: 4.2.11 + progress: 2.0.3 + semver: 7.7.4 + sumchecker: 3.0.1 + optionalDependencies: + undici: 7.25.0 + transitivePeerDependencies: + - supports-color + + '@electron/notarize@2.5.0': + dependencies: + debug: 4.4.3 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@electron/osx-sign@1.3.3': + dependencies: + compare-version: 0.1.2 + debug: 4.4.3 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@electron/rebuild@4.0.4': + dependencies: + '@malept/cross-spawn-promise': 2.0.0 + debug: 4.4.3 + node-abi: 4.31.0 + node-api-version: 0.2.1 + node-gyp: 12.3.0 + read-binary-file-arch: 1.0.6 + transitivePeerDependencies: + - supports-color + + '@electron/universal@2.0.3': + dependencies: + '@electron/asar': 3.4.1 + '@malept/cross-spawn-promise': 2.0.0 + debug: 4.4.3 + dir-compare: 4.2.0 + fs-extra: 11.3.5 + minimatch: 9.0.9 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@electron/windows-sign@1.2.2': + dependencies: + cross-dirname: 0.1.0 + debug: 4.4.3 + fs-extra: 11.3.5 + minimist: 1.2.8 + postject: 1.0.0-alpha.6 + transitivePeerDependencies: + - supports-color + optional: true + + '@hono/node-server@1.19.14(hono@4.12.18)': + dependencies: + hono: 4.12.18 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 + + '@malept/cross-spawn-promise@2.0.0': + dependencies: + cross-spawn: 7.0.6 + + '@malept/flatpak-bundler@0.4.0': + dependencies: + debug: 4.4.3 + fs-extra: 9.1.0 + lodash: 4.18.1 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color + + '@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)': + dependencies: + '@hono/node-server': 1.19.14(hono@4.12.18) + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.8 + express: 5.2.1 + express-rate-limit: 8.5.1(express@5.2.1) + hono: 4.12.18 + jose: 6.2.3 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.4.3 + zod-to-json-schema: 3.25.2(zod@4.4.3) + transitivePeerDependencies: + - supports-color + + '@sindresorhus/is@4.6.0': {} + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.2.0 + '@types/keyv': 3.1.4 + '@types/node': 25.6.2 + '@types/responselike': 1.0.3 + + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + + '@types/fs-extra@9.0.13': + dependencies: + '@types/node': 25.6.2 + + '@types/http-cache-semantics@4.2.0': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 25.6.2 + + '@types/ms@2.1.0': {} + + '@types/node@24.12.2': + dependencies: + undici-types: 7.16.0 + + '@types/node@25.6.2': + dependencies: + undici-types: 7.19.2 + + '@types/plist@3.0.5': + dependencies: + '@types/node': 25.6.2 + xmlbuilder: 15.1.1 + optional: true + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 25.6.2 + + '@types/verror@1.10.11': + optional: true + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 24.12.2 + + '@xmldom/xmldom@0.8.13': {} + + '@xmldom/xmldom@0.9.10': + optional: true + + abbrev@4.0.0: {} + + accepts@2.0.0: + dependencies: + mime-types: 3.0.2 + negotiator: 1.0.0 + + agent-base@7.1.4: {} + + ajv-formats@3.0.1(ajv@8.20.0): + optionalDependencies: + ajv: 8.20.0 + + ajv-keywords@3.5.2(ajv@6.15.0): + dependencies: + ajv: 6.15.0 + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + app-builder-bin@5.0.0-alpha.12: {} + + app-builder-lib@26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1): + dependencies: + '@develar/schema-utils': 2.6.5 + '@electron/asar': 3.4.1 + '@electron/fuses': 1.8.0 + '@electron/get': 3.1.0 + '@electron/notarize': 2.5.0 + '@electron/osx-sign': 1.3.3 + '@electron/rebuild': 4.0.4 + '@electron/universal': 2.0.3 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + builder-util: 26.8.1 + builder-util-runtime: 9.5.1 + chromium-pickle-js: 0.2.0 + ci-info: 4.3.1 + debug: 4.4.3 + dmg-builder: 26.8.1(electron-builder-squirrel-windows@26.8.1) + dotenv: 16.6.1 + dotenv-expand: 11.0.7 + ejs: 3.1.10 + electron-builder-squirrel-windows: 26.8.1(dmg-builder@26.8.1) + electron-publish: 26.8.1 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + isbinaryfile: 5.0.7 + jiti: 2.7.0 + js-yaml: 4.1.1 + json5: 2.2.3 + lazy-val: 1.0.5 + minimatch: 10.2.5 + plist: 3.1.0 + proper-lockfile: 4.1.2 + resedit: 1.7.2 + semver: 7.7.4 + tar: 7.5.15 + temp-file: 3.4.0 + tiny-async-pool: 1.3.0 + which: 5.0.0 + transitivePeerDependencies: + - supports-color + + argparse@2.0.1: {} + + assert-plus@1.0.0: + optional: true + + astral-regex@2.0.0: + optional: true + + async-exit-hook@2.0.1: {} + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + body-parser@2.2.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.2 + on-finished: 2.4.1 + qs: 6.15.1 + raw-body: 3.0.2 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + + boolean@3.2.0: + optional: true + + brace-expansion@1.1.14: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.1.0: + dependencies: + balanced-match: 1.0.2 + + brace-expansion@5.0.5: + dependencies: + balanced-match: 4.0.4 + + buffer-crc32@0.2.13: {} + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + optional: true + + builder-util-runtime@9.5.1: + dependencies: + debug: 4.4.3 + sax: 1.6.0 + transitivePeerDependencies: + - supports-color + + builder-util@26.8.1: + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.13 + app-builder-bin: 5.0.0-alpha.12 + builder-util-runtime: 9.5.1 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + fs-extra: 10.1.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + js-yaml: 4.1.1 + sanitize-filename: 1.6.4 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + tiny-async-pool: 1.3.0 + transitivePeerDependencies: + - supports-color + + bytes@3.1.2: {} + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chownr@3.0.0: {} + + chromium-pickle-js@0.2.0: {} + + ci-info@4.3.1: {} + + ci-info@4.4.0: {} + + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + optional: true + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@5.1.0: {} + + commander@9.5.0: + optional: true + + compare-version@0.1.2: {} + + concat-map@0.0.1: {} + + content-disposition@1.1.0: {} + + content-type@1.0.5: {} + + cookie-signature@1.2.2: {} + + cookie@0.7.2: {} + + core-util-is@1.0.2: + optional: true + + cors@2.8.6: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + crc@3.8.0: + dependencies: + buffer: 5.7.1 + optional: true + + cross-dirname@0.1.0: + optional: true + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + optional: true + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + optional: true + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + detect-node@2.1.0: + optional: true + + dir-compare@4.2.0: + dependencies: + minimatch: 3.1.5 + p-limit: 3.1.0 + + dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1): + dependencies: + app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) + builder-util: 26.8.1 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.1 + optionalDependencies: + dmg-license: 1.0.11 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + + dmg-license@1.0.11: + dependencies: + '@types/plist': 3.0.5 + '@types/verror': 1.10.11 + ajv: 6.15.0 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.1 + smart-buffer: 4.2.0 + verror: 1.10.1 + optional: true + + dotenv-expand@11.0.7: + dependencies: + dotenv: 16.6.1 + + dotenv@16.6.1: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + ee-first@1.1.1: {} + + ejs@3.1.10: + dependencies: + jake: 10.9.4 + + electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1): + dependencies: + app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) + builder-util: 26.8.1 + electron-winstaller: 5.4.0 + transitivePeerDependencies: + - dmg-builder + - supports-color + + electron-builder@26.8.1(electron-builder-squirrel-windows@26.8.1): + dependencies: + app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) + builder-util: 26.8.1 + builder-util-runtime: 9.5.1 + chalk: 4.1.2 + ci-info: 4.4.0 + dmg-builder: 26.8.1(electron-builder-squirrel-windows@26.8.1) + fs-extra: 10.1.0 + lazy-val: 1.0.5 + simple-update-notifier: 2.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + + electron-publish@26.8.1: + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 26.8.1 + builder-util-runtime: 9.5.1 + chalk: 4.1.2 + form-data: 4.0.5 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + + electron-winstaller@5.4.0: + dependencies: + '@electron/asar': 3.4.1 + debug: 4.4.3 + fs-extra: 7.0.1 + lodash: 4.18.1 + temp: 0.9.4 + optionalDependencies: + '@electron/windows-sign': 1.2.2 + transitivePeerDependencies: + - supports-color + + electron@42.0.0: + dependencies: + '@electron/get': 5.0.0 + '@types/node': 24.12.2 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + + emoji-regex@8.0.0: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + env-paths@2.2.1: {} + + env-paths@3.0.0: {} + + err-code@2.0.3: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.3 + + es6-error@4.1.1: + optional: true + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@4.0.0: + optional: true + + etag@1.8.1: {} + + eventsource-parser@3.0.8: {} + + eventsource@3.0.7: + dependencies: + eventsource-parser: 3.0.8 + + exponential-backoff@3.1.3: {} + + express-rate-limit@8.5.1(express@5.2.1): + dependencies: + express: 5.2.1 + ip-address: 10.2.0 + + express@5.2.1: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.2 + content-disposition: 1.1.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.3 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.1 + merge-descriptors: 2.0.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.15.1 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.1 + serve-static: 2.2.1 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extract-zip@2.0.1: + dependencies: + debug: 4.4.3 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + extsprintf@1.4.1: + optional: true + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-uri@3.1.2: {} + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + filelist@1.0.6: + dependencies: + minimatch: 5.1.9 + + finalhandler@2.1.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.3 + mime-types: 2.1.35 + + forwarded@0.2.0: {} + + fresh@2.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fs-extra@11.3.5: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.3 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@5.2.0: + dependencies: + pump: 3.0.4 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.5 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.7.4 + serialize-error: 7.0.1 + optional: true + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + optional: true + + gopd@1.2.0: {} + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + optional: true + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.3: + dependencies: + function-bind: 1.1.2 + + hono@4.12.18: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + http-cache-semantics@4.2.0: {} + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + iconv-corefoundation@1.1.7: + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + optional: true + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: + optional: true + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ip-address@10.2.0: {} + + ipaddr.js@1.9.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-promise@4.0.0: {} + + isbinaryfile@4.0.10: {} + + isbinaryfile@5.0.7: {} + + isexe@2.0.0: {} + + isexe@3.1.5: {} + + isexe@4.0.0: {} + + jake@10.9.4: + dependencies: + async: 3.2.6 + filelist: 1.0.6 + picocolors: 1.1.1 + + jiti@2.7.0: {} + + jose@6.2.3: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema-typed@8.0.2: {} + + json-stringify-safe@5.0.1: + optional: true + + json5@2.2.3: {} + + jsonc-parser@3.3.1: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.2.1: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + lazy-val@1.0.5: {} + + lodash@4.18.1: {} + + lowercase-keys@2.0.0: {} + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + optional: true + + math-intrinsics@1.1.0: {} + + media-typer@1.1.0: {} + + merge-descriptors@2.0.0: {} + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + + mime@2.6.0: {} + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.5 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.14 + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.0 + + minimatch@9.0.9: + dependencies: + brace-expansion: 2.1.0 + + minimist@1.2.8: {} + + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + ms@2.1.3: {} + + negotiator@1.0.0: {} + + node-abi@4.31.0: + dependencies: + semver: 7.7.4 + + node-addon-api@1.7.2: + optional: true + + node-api-version@0.2.1: + dependencies: + semver: 7.7.4 + + node-gyp@12.3.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.3 + graceful-fs: 4.2.11 + nopt: 9.0.0 + proc-log: 6.1.0 + semver: 7.7.4 + tar: 7.5.15 + tinyglobby: 0.2.16 + undici: 6.25.0 + which: 6.0.1 + + nopt@9.0.0: + dependencies: + abbrev: 4.0.0 + + normalize-url@6.1.0: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: + optional: true + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + p-cancelable@2.1.1: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + parseurl@1.3.3: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-to-regexp@8.4.2: {} + + pe-library@0.4.1: {} + + pend@1.2.0: {} + + picocolors@1.1.1: {} + + picomatch@4.0.4: {} + + pkce-challenge@5.0.1: {} + + plist@3.1.0: + dependencies: + '@xmldom/xmldom': 0.8.13 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + + plist@3.1.1: + dependencies: + '@xmldom/xmldom': 0.9.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + optional: true + + postject@1.0.0-alpha.6: + dependencies: + commander: 9.5.0 + optional: true + + proc-log@6.1.0: {} + + progress@2.0.3: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + punycode@2.3.1: {} + + qs@6.15.1: + dependencies: + side-channel: 1.1.0 + + quick-lru@5.1.1: {} + + range-parser@1.2.1: {} + + raw-body@3.0.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.7.2 + unpipe: 1.0.0 + + read-binary-file-arch@1.0.6: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resedit@1.7.2: + dependencies: + pe-library: 0.4.1 + + resolve-alpn@1.2.1: {} + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + retry@0.12.0: {} + + rimraf@2.6.3: + dependencies: + glob: 7.2.3 + + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + optional: true + + router@2.2.0: + dependencies: + debug: 4.4.3 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.4.2 + transitivePeerDependencies: + - supports-color + + safer-buffer@2.1.2: {} + + sanitize-filename@1.6.4: + dependencies: + truncate-utf8-bytes: 1.0.2 + + sax@1.6.0: {} + + semver-compare@1.0.0: + optional: true + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.7.4: {} + + send@1.2.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + optional: true + + serve-static@2.2.1: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + simple-update-notifier@2.0.0: + dependencies: + semver: 7.7.4 + + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + optional: true + + smart-buffer@4.2.0: + optional: true + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + sprintf-js@1.1.3: + optional: true + + stat-mode@1.0.0: {} + + statuses@2.0.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + sumchecker@3.0.1: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + tar@7.5.15: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 + + temp-file@3.4.0: + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + + temp@0.9.4: + dependencies: + mkdirp: 0.5.6 + rimraf: 2.6.3 + + tiny-async-pool@1.3.0: + dependencies: + semver: 5.7.2 + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + tmp-promise@3.0.3: + dependencies: + tmp: 0.2.5 + + tmp@0.2.5: {} + + toidentifier@1.0.1: {} + + truncate-utf8-bytes@1.0.2: + dependencies: + utf8-byte-length: 1.0.5 + + type-fest@0.13.1: + optional: true + + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.2 + + typescript@6.0.3: {} + + undici-types@7.16.0: {} + + undici-types@7.19.2: {} + + undici@6.25.0: {} + + undici@7.25.0: + optional: true + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unpipe@1.0.0: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + utf8-byte-length@1.0.5: {} + + vary@1.1.2: {} + + verror@1.10.1: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + optional: true + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@5.0.0: + dependencies: + isexe: 3.1.5 + + which@6.0.1: + dependencies: + isexe: 4.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + xmlbuilder@15.1.1: {} + + y18n@5.0.8: {} + + yallist@4.0.0: {} + + yallist@5.0.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yauzl@3.3.0: + dependencies: + buffer-crc32: 0.2.13 + pend: 1.2.0 + + yocto-queue@0.1.0: {} + + zod-to-json-schema@3.25.2(zod@4.4.3): + dependencies: + zod: 4.4.3 + + zod@4.4.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..85c017f6 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,5 @@ +packages: + - "apps/*" + - "packages/*" +allowBuilds: + electron-winstaller: false diff --git a/task.txt b/task.txt new file mode 100644 index 00000000..23a1edee --- /dev/null +++ b/task.txt @@ -0,0 +1,1190 @@ +Look, I'm working in this folder on project OpenPets 2.0 +It's electron based, cross platform app, which is only showed in tray. +To simplify, idea is this: you can install pets, and connect coding agents suchs as Claude, +Opencode, Vscode Copilot, Windsurf, Cursor, Antigravity to those pets. + + +Here are few featus I'd like it to have: +- Want to be able to launch multiple pets in parallel and connect coding agent to its own pen. +- When launching pet, coding agent should be able to choose it's pet. +- I want it to work well with npx, nodejs - shouldn't reuqire bun! +- I want it to be cross platform. + + +I have here in v1 folder: +- v1/openpet/ contains old v1 version of openpet; so pets itself dragin stuff works fine, but has many issues like confifugirn ai agnest is broke, etc, don't blindly assume sutff there are true; putting here just for idea collection, feature collection, reference; But wee need to always think solution ourselves, not relay to code there; +- v1/claude-pets/ - is like separate repo i build which is special plugin for claude to integrate with openpets +- v1/chatty-claude-pet - is like someone sent me this repo and told me made claude more responsive, chatty pets for claude, we need to take lots of learnings from this, incorporate in our v2 claude integration, claude is one of the critical tool we want to do extra effort it's integrated really really well, people are pleased etc - thats why I included this here too. + +# Write below here our discussion notes + +## Working process + +For each topic/problem we discuss: +- Start from the problem description and desired outcome. +- Scout the current codebase to understand what already exists. +- Check relevant up-to-date library/tool documentation via librarian when APIs, Electron/Node behavior, agent integrations, or platform details matter. +- Compare current code, v1 references, and latest docs; do not blindly copy v1 assumptions. +- Come up with the final implementation approach. +- Write the agreed problem description, reasoning, and final solution plan back into this task file so the decision history stays clear. + +## High-level user flow + +- User installs OpenPets and opens it. +- User sees an onboarding wizard where they can choose which coding agents to auto-configure OpenPets for. +- User sees a grid/catalog of pets and can install any pet. +- Once configured, the app is ready to use. +- When a coding agent is launched, for example Claude, that agent has its selected pet running. +- The coding agent communicates with its pet and the pet provides visible status updates / feedback. + +## Current initial focus + +The first target is to make the core experience rock solid before expanding scope. Current focus areas: + +- User onboarding flow. +- Multiple pets management. +- Claude integration. +- Installing and managing pets. + +These are the priority areas for initial design, code scouting, documentation research, implementation planning, and validation. + +## Agreed app product surface + +OpenPets 2.0 should be tray-first, not dashboard-first. + +The app should feel like a lightweight companion app that lives in the tray/menu bar with floating pets, not like a heavy full desktop dashboard. + +Initial product surface: + +- Tray/menu bar app. +- Floating pet windows. +- First-run onboarding window. +- Pet manager window. +- Agent setup/configuration window. +- Small settings window. + +Do not build a full dashboard as the main v2 experience. + +The main persistent UI is: + +```text +Tray/menu bar + floating pets +``` + +Task-specific windows are opened when needed: + +```text +Onboarding +Pet Manager +Agent Setup +Settings +``` + +Suggested tray menu items: + +```text +OpenPets +Default Pet: +Manage Pets +Configure Agents +Show/Hide Default Pet +Pause All Pets +Settings +Quit +``` + +Suggested first-run onboarding shape: + +```text +Welcome +Optional pet catalog installs +Agent setup +Done +``` + +Because OpenPets ships with a bundled default pet, onboarding does not need to force pet installation before the app is usable. + +## Agreed agent setup/onboarding behavior + +Agent setup should be detection-first and confirmation-based. + +Onboarding should show supported coding agents as cards/rows, for example: + +```text +Claude Code +OpenCode +Cursor +VS Code Copilot +Windsurf +Antigravity +``` + +Each agent should show clear status: + +```text +Detected +Not detected +Configured +Needs setup +Error / needs attention +``` + +Core principle: + +```text +Auto-detect where possible, but never silently edit agent config without user confirmation. +``` + +Agent setup flow: + +1. Detect supported coding agents where possible. +2. Show what was found and what is already configured. +3. Let user choose which agents to configure. +4. Explain what OpenPets will change. +5. Show config diff/preview when practical. +6. Apply configuration only after confirmation. +7. Make backups before editing user config files. +8. Verify setup with a doctor/check step. +9. Let user skip any agent and configure later from the Agent Setup window. + +Initial per-agent behavior: + +- Claude Code: configure MCP + install global OpenPets Claude hooks for enhanced status/speech. +- Other MCP-capable agents: configure MCP first. +- Agent-specific enhanced integrations can come later if useful. + +Agent setup actions: + +```text +Configure +Skip +Doctor / Check +Uninstall / Remove integration +``` + +For Claude specifically: + +```text +Configure MCP +Install global Claude hooks +Doctor +Uninstall hooks +``` + +Per-project pet selection still happens through project MCP config using `--pet`. The global onboarding/config flow gives users a working default integration first, and advanced per-project pet choices can be documented and supported after the core flow is solid. + +## Agreed initial pet window behavior + +Initial v2 pet windows should prioritize stability, predictability, and cross-platform behavior over complex desktop physics. + +Pet window behavior: + +- Pets render in small transparent frameless windows. +- Pet windows should be always-on-top by default. +- Pet windows should not steal focus from the user's editor/terminal. +- Pets should be draggable by the user. +- Pets should remember their last position. +- The default initial position should be near the bottom-right of the screen. +- Multiple pets should auto-offset from each other so they do not fully overlap. +- Tray/menu should allow showing/hiding pets. +- Tray/menu should allow pausing all pets. + +Initial v2 should avoid overcomplicated behavior: + +- No complex physics requirement. +- No elaborate desktop-edge/running behavior requirement. +- No advanced multi-monitor behavior beyond basic safe positioning. +- No fragile platform-specific hacks unless truly necessary. + +The goal is that pets feel alive and useful without interfering with coding work. + +## Agreed bundled default pet behavior + +OpenPets 2.0 should ship with one built-in default pet. + +Bundled default pet rules: + +- The built-in pet is available immediately after install, without network access. +- The built-in pet is the initial default pet. +- The built-in pet should use the same pet manifest/spritesheet format as downloaded pets so rendering/install logic stays unified. +- The built-in pet acts as the fallback pet when a requested `--pet` is missing or not installed. +- User can set any installed pet as the default later. +- User should not be able to fully uninstall/delete the built-in fallback pet from the app. +- User can stop using it by choosing another default pet, hiding pets, disabling open-default-pet-on-launch, or pausing pets. + +This ensures OpenPets always has a working pet even before catalog fetch/install succeeds. + +## Agreed persisted state + +OpenPets should persist user preferences and installed pets, but not transient agent session state. + +Persist across app restarts: + +- Installed pets. +- Default pet id. +- Default pet last position. +- Open-default-pet-on-launch setting. +- Pet scale / size preference. +- Speech enabled/disabled preference. +- Onboarding completed state. +- Agent configuration status/check results where useful. +- Last fetched pet catalog cache where useful. + +Do not persist as durable state: + +- Active MCP leases. +- Temporary non-default agent pets after their owning agents exit. +- Transient reactions/states. +- Speech bubbles. +- In-progress agent session status. + +Restart rule: + +- On app restart, OpenPets starts clean from persisted user preferences. +- Default pet opens if open-default-pet-on-launch is enabled. +- Active MCP leases are not restored from disk. +- Coding agents reconnect and create fresh leases when they launch their MCP servers again. + +## Agreed privacy/safety rules for speech and messages + +`openpets_say` and automatic hook speech are for short visible status/personality messages, not for code, logs, secrets, or large content. + +Initial speech/message rules: + +- Keep messages short. +- Enforce a max message length, around 140 characters. +- Reject or truncate multiline content. +- Reject obvious code blocks. +- Reject obvious secret-looking content where practical. +- Avoid URLs and long file paths in speech bubbles by default. +- Rate limit speech so pets do not spam the screen. +- Provide a global setting to disable speech bubbles. +- Claude hook speech should use local message pools/templates, not model-generated long content. + +Product rule: + +```text +Pets can be playful and informative, but they must not become a place where private code, secrets, or noisy logs are displayed. +``` + +## Agreed initial v2 MVP scope + +The initial OpenPets 2.0 target is a rock-solid core experience, not every possible feature. + +Initial v2 should include: + +1. Tray-first Electron app. +2. Floating pet windows. +3. One bundled built-in default pet. +4. Default pet opens on app launch by default. +5. Pet manager window: + - Browse v2 pet catalog. + - Search pets. + - Install pets. + - Show installed state. + - Remove installed pets. + - Set default pet. +6. New v2 pet catalog endpoint: + - `https://openpets.dev/pets/catalog.v2.json` +7. MCP integration through `@open-pets/mcp`: + - Node/npm/npx based. + - No Bun runtime requirement. + - Auto-launch OpenPets app if needed. + - Support `--pet`. + - Fallback to default pet if requested pet is missing. + - Immediate lease/pet open on MCP startup. + - Automatic cleanup on MCP shutdown. + - Short TTL/heartbeat fallback for crashed MCP servers. + - Minimal tools: `openpets_status`, `openpets_say`, `openpets_react`. +8. Claude integration through `@open-pets/claude`: + - Global hooks install by default. + - Hook-driven automatic reactions. + - Hook-driven short speech message pools. + - Safe install/uninstall/doctor. +9. `@open-pets/client` local IPC client package. +10. `@open-pets/cli` for website/manual commands such as: + - `npx -y @open-pets/cli install snoopy` +11. Detection-first onboarding: + - Welcome. + - Optional extra pet installs from catalog. + - Agent detection/configuration. + - Done. +12. Cross-platform support: + - macOS. + - Windows. + - Linux. + +Explicitly not initial v2 scope: + +- Full dashboard as main app experience. +- Categories/tags/favorites for pet browsing. +- Advanced sorting/ratings/popularity UI. +- Pet update system. +- Remote HTTP MCP server. +- Plugin marketplace. +- Advanced pet physics. +- Elaborate desktop-edge/running behavior. +- Complex multi-monitor behavior beyond safe positioning. +- Agent-specific enhanced integrations beyond Claude hooks. +- Letting agents install/remove/change pets directly without user confirmation. +- Analytics-heavy flows. + +Guiding MVP principle: + +```text +Make onboarding, pet management, MCP integration, Claude integration, and default-pet behavior reliable before expanding scope. +``` + +## Agreed local IPC protocol/security direction + +OpenPets local IPC is the private control plane between the Electron app and adapters such as `@open-pets/mcp`, `@open-pets/claude`, and `@open-pets/cli`. + +IPC direction: + +- Use local-only per-user IPC. +- macOS/Linux: Unix domain socket. +- Windows: named pipe. +- Do not expose TCP/HTTP by default. +- IPC is internal/private, not a remote API. + +Discovery: + +- When the OpenPets app is running, it writes a small user-owned discovery file. +- `@open-pets/client` reads this file to find the current IPC endpoint. +- Discovery file contains endpoint, protocol version, app version, and a random startup token. + +Example discovery shape: + +```json +{ + "version": 1, + "protocol": "openpets-ipc", + "endpoint": "/run/user/1000/openpets/openpets.sock", + "token": "random-session-token", + "appVersion": "2.0.0" +} +``` + +Windows endpoint example: + +```json +{ + "version": 1, + "protocol": "openpets-ipc", + "endpoint": "\\\\.\\pipe\\openpets-abc123", + "token": "random-session-token", + "appVersion": "2.0.0" +} +``` + +Security: + +- The app generates a random IPC token on startup. +- Every IPC request includes protocol version and token. +- Invalid token/version requests are rejected. +- Use restrictive per-user runtime directory/file permissions where the platform supports it. + +IPC message style: + +```json +{ + "id": "uuid", + "version": 1, + "token": "random-session-token", + "method": "pet.say", + "params": { + "petId": "doggo", + "message": "On it!" + } +} +``` + +Initial internal IPC methods: + +```text +hello +status +lease.acquire +lease.heartbeat +lease.release +pet.say +pet.react +``` + +Later internal IPC methods can cover pet install/remove/default/catalog actions, but initial integration work should keep IPC focused on app status, leases, speech, and reactions. + +## Agreed initial integration architecture + +For OpenPets 2.0, the agreed direction is: + +- MCP is the primary public integration path for coding agents. +- Local IPC is the private/internal bridge between adapters and the Electron tray app. +- Claude hooks are an enhanced Claude-specific layer for richer automatic status and speech updates. +- Pet selection is configured simply through MCP arguments, mainly `--pet`; no need for extra `--agent` or `--workspace` arguments. +- If no pet is configured, the integration uses the user's default pet. +- Multiple agents/projects are allowed to point at the same default pet; the pet should simply display/say the events it receives. +- npm packages should use the existing organization name `@open-pets`, not `@openpets`. +- OpenPets must work with Node/npm/npx and must not require Bun at runtime. + +Universal routing decision: + +- Do not depend on agent-specific hidden metadata for core MCP routing. +- Across agents, stdio MCP does not reliably provide chat session id, agent id, project id, or stable workspace metadata. +- Universal OpenPets routing is MCP-process-based. +- Each `@open-pets/mcp` process has exactly one target pet: + - explicit `--pet`, or + - the user's default pet if `--pet` is omitted. +- All MCP tools from that process affect that process's target pet. +- This applies consistently across Claude, Cursor, OpenCode, VS Code/Copilot, Windsurf, Antigravity, and other MCP-capable agents. +- No universal session/project/agent routing is required for MCP. +- Claude hooks are the only Claude-specific enhanced side channel; they can best-effort route to active Claude MCP leases using Claude hook metadata, but if no reliable match exists they fall back to the default pet. +- Keep user-facing MCP config simple: `--pet` is the main routing control. +- Do not add user-facing `--agent` or `--workspace` unless a later real need appears. + +Proposed package shape: + +```bash +@open-pets/client +@open-pets/mcp +@open-pets/claude +@open-pets/cli +``` + +Example per-project MCP config: + +```json +{ + "mcpServers": { + "openpets": { + "command": "npx", + "args": ["-y", "@open-pets/mcp", "--pet", "doggo"] + } + } +} +``` + +Behavior: + +- If `--pet doggo` is passed, that MCP server/session targets the installed pet with id `doggo`. +- If `--pet` is omitted, OpenPets uses the configured default pet. +- If the requested pet is missing or not installed, OpenPets should fall back to the default pet, keep the MCP server usable, notify the user in the app, and report the fallback in `openpets_status`. +- The project/workspace context naturally comes from where the MCP config lives, so we do not need to pass a workspace argument. + +Architecture shape: + +```text +Claude / Cursor / Copilot / VS Code-style agent + ↓ + MCP server: @open-pets/mcp + ↓ + @open-pets/client + ↓ + Local OpenPets IPC bridge + ↓ + Electron tray app / pet manager +``` + +For Claude enhanced integration: + +```text +Claude Code hooks + ↓ + @open-pets/claude + ↓ + @open-pets/client + ↓ + Local OpenPets IPC bridge + ↓ + Electron tray app / pet manager +``` + +The Electron app owns the real state and product logic: + +- Installed pets. +- Default pet. +- Pet assignment and fallback behavior. +- Active sessions / leases. +- State arbitration when multiple agents send events to the same pet. +- Tray UI. +- Onboarding. +- Pet installation, update, and removal. + +The MCP server should stay thin. It should expose tools and forward requests/events to the running OpenPets app, but it should not own pet installation, pet lifecycle, UI state, or long-term configuration. + +## Agreed MCP session lifecycle and tools + +The MCP server should manage the pet session lifecycle automatically. The model/agent should not need to call a release tool for normal cleanup. + +Desired flow: + +```text +User launches Claude/Cursor/etc with OpenPets MCP configured + ↓ +Agent starts `@open-pets/mcp` as a stdio MCP server + ↓ +If OpenPets app is not already running, `@open-pets/mcp` attempts to auto-launch it + ↓ +`@open-pets/mcp` connects to the OpenPets app through local IPC + ↓ +OpenPets creates/acquires a temporary lease for the configured pet + ↓ +The pet appears and reacts to events/tool calls + ↓ +User closes the agent / MCP process exits / stdin closes / parent dies + ↓ +`@open-pets/mcp` automatically releases its lease through IPC + ↓ +OpenPets closes that pet if it was only opened for that lease and no other lease/user pin needs it +``` + +Important lifecycle rules: + +- `@open-pets/mcp --pet doggo` means this MCP server owns a temporary lease for `doggo`. +- If `--pet` is omitted, the lease uses the default pet. +- If multiple agents point to the same pet, the pet remains open until all active leases are gone. +- When `@open-pets/mcp` starts, it immediately acquires a lease and opens/shows the configured pet. Do not wait for the first tool call. +- If `--pet` is missing, it immediately connects to the default pet. +- If the requested `--pet` is not installed, it immediately falls back to the default pet, notifies the user, and reports the fallback in `openpets_status`. +- If the OpenPets desktop app is not running, `@open-pets/mcp` should auto-launch it on startup, wait briefly for IPC to become available, then connect/open the configured/default pet. +- If auto-launch or IPC connection fails, the MCP server should remain alive in degraded mode and `openpets_status` should report the failure clearly. +- Cleanup should be driven by adapter/process lifecycle, not by the model deciding to call a tool. +- `openpets_release` should not be part of the initial public MCP tool set. + +Automatic cleanup mechanisms for `@open-pets/mcp`: + +- Listen for stdio `end` / `close`. +- Listen for process signals such as `SIGTERM` and `SIGINT` where available. +- Watch the parent process as a fallback, because coding agents may not shut down MCP servers gracefully. +- Send lease heartbeat while alive. +- Use short lease TTL fallback in the OpenPets app so crashed/orphaned MCP processes are cleaned up automatically. + +Keep pet lifetime rules simple for v2: + +- OpenPets has one default pet. +- By default, the default pet opens when the OpenPets app launches and keeps running. +- User can later disable "open default pet on app launch" if they do not want a persistent default pet. +- If an agent starts without `--pet`, it uses the already-running default pet. +- Agent shutdown never auto-closes the default pet. +- If an agent starts with an explicit non-default `--pet`, OpenPets opens that pet as a temporary agent pet. +- Explicit non-default agent pets close when the last active lease using them ends. +- If multiple agents use the same explicit non-default pet, that pet stays open until all those agents are gone. +- If an explicit `--pet` is missing and OpenPets falls back to the default pet, that fallback default pet is treated like the normal persistent default and does not close when the agent exits. + +Simplified close rule: + +```text +Default pet: persistent; never auto-close due to agent lifecycle. +Explicit non-default pet: temporary; close after last active lease ends. +``` + +Initial MCP tools should stay intentionally minimal. Final agreed initial tool set: + +```text +openpets_status +openpets_say +openpets_react +``` + +Tool meanings: + +- `openpets_status`: checks that OpenPets is reachable and reports the active configured/default pet session. This combines health/start-style usefulness without needing separate `health`, `start`, or `list_pets` tools. +- `openpets_say`: shows a short speech bubble, optionally with a related state/reaction. This is the clearest agent-facing value. +- `openpets_react`: silently changes the pet reaction/state, such as thinking, working, testing, waiting, success, error, or celebrating. + +`openpets_status` should report degraded startup/connection state, for example: + +```json +{ + "ok": false, + "appRunning": false, + "attemptedLaunch": true, + "message": "OpenPets is not running or could not be launched." +} +``` + +Initial public `openpets_react` reactions: + +```text +idle +thinking +working +editing +running +testing +waiting +success +error +celebrating +``` + +Initial input shape: + +```json +{ + "reaction": "testing" +} +``` + +OpenPets can map these public reactions to internal animation/state names. Keep the public reaction list simple and coding-agent-oriented. + +Tools intentionally excluded from initial MCP: + +- `openpets_release`: cleanup is automatic through MCP process lifecycle and lease TTL fallback. +- `openpets_start`: starting/acquiring the pet session happens when the MCP server starts. +- `openpets_list_pets`: pet browsing/management belongs in the OpenPets app UI, not the initial MCP tool surface. +- Pet install/remove/default-setting tools: agents should not install/remove/change pets without explicit user confirmation in the app. + +## Claude enhanced status/speech lessons + +From comparing `v1/claude-pets` and `v1/chatty-claude-pet`, the useful lesson is that Claude integration should not only change pet animation state; it should also support automatic short speech bubbles triggered by Claude hook events. + +The valuable part of `chatty-claude-pet` is the product behavior: + +- Zero-token automatic speech from hooks. +- Message pools per event. +- Random short messages to avoid repetition. +- Mood-specific messages for thinking, success, error, etc. +- No speech on very noisy events like every tool use. +- Clear, fixed functional messages for permission/approval requests. + +The implementation details from `chatty-claude-pet` should not be copied directly: + +- No shell-script-based core integration. +- No `nc -U` Unix-socket-only implementation. +- No hardcoded `/tmp` socket paths. +- No manual JSON socket writes. +- No Unix-only assumptions. + +Instead, Claude hooks should call a Node-based `@open-pets/claude` package, which uses `@open-pets/client` and the official local IPC bridge. + +Claude hook installation scope: + +- `@open-pets/claude` should install hooks globally by default. +- Global install means configuring the user's Claude Code settings so OpenPets enhanced status/speech works across projects. +- Project-specific MCP config can still choose different pets with `--pet`; global Claude hooks provide the passive lifecycle/speech layer. +- The installer must be safe: show/understand existing config, make backups, avoid blindly overwriting user settings, support doctor/uninstall. + +Desired Claude hook mapping: + +```text +UserPromptSubmit → thinking + short speech from message pool +PreToolUse → working/editing/testing animation, usually no speech +PermissionRequest → waiting/attention + clear approval message +Notification → attention/waiting reaction, no speech by default +Stop → success + short speech from message pool +StopFailure → error + short speech from message pool +``` + +Important product rule: + +- Animation/state updates can happen often. +- Speech must be throttled/selective so the pet feels alive but not annoying. +- Claude `Notification` hooks should not create speech by default. They can trigger attention/waiting animation only. +- Claude `PermissionRequest` is the important interruption case and should use a clear fixed approval message. + +## Integration principles + +- Build agent-neutral first through MCP. +- Make Claude feel extra polished through hooks, but do not make the core architecture Claude-only. +- Keep local IPC as the stable internal control plane for all adapters. +- Keep package/runtime requirements simple: Node/npm/npx, cross-platform. +- Avoid Bun runtime dependency. +- Avoid brittle shell scripts as the foundation. +- Avoid putting core pet management inside MCP. +- Avoid agents installing arbitrary pets without user confirmation. + +## Agreed pet browsing and installation direction + +The existing `web/` app already acts like a pet catalog/registry for `openpets.dev`. + +Current useful files: + +```text +web/public/pets/manifest.json +web/public/pets/install.json +web/app/lib/pets.generated.js +web/scripts/sync-pets.js +``` + +Current catalog shape: + +- `manifest.json` contains richer browsing metadata: `petId`, `installId`, `slug`, `displayName`, `description`, `spritesheetPath`, `zipPath`, `sourceUrl`, `xHandle`, `createdAt`, etc. +- `install.json` is a smaller install index with `installId`, `displayName`, and `zipPath`. +- Pet zip files are served from URLs like: + +```text +https://zip.openpets.dev/pets/{slug}/{petId}.zip +``` + +Example: + +```text +https://zip.openpets.dev/pets/snoopy-23e05847/snoopy.zip +``` + +Current web install command is: + +```bash +bunx install-pet snoopy +``` + +For OpenPets 2.0, the app onboarding should not depend on `bunx install-pet`. The better native app flow is: + +```text +OpenPets app → fetch pet catalog → show pet grid → user selects pets → download zip files → validate → install locally → optionally set default pet +``` + +Onboarding pet install flow: + +1. OpenPets ships with a bundled default pet. +2. The bundled default pet is available immediately and can run without downloading anything. +3. Fetch the remote pet catalog from `openpets.dev`. +4. Show a nice native grid of pets with preview sprites, names, and descriptions. +5. Each catalog pet has an easy Install button. +6. User may install zero, one, or many extra pets. +7. User can continue without installing any extra pets. +8. Download selected pet zips from `zipPath`. +9. Validate each zip structure before installing. +10. Install selected pets into the local OpenPets pet directory. +11. Continue to coding-agent setup. + +The onboarding flow should not force the user to choose or install a default pet. The bundled default pet remains the default unless the user changes it later in pet management. + +The app should also have a pet management area after onboarding: + +- Browse available pets. +- Search pets. +- See installed pets. +- Install new pets. +- Remove pets. +- Set default pet. +- Later: categories, tags, sorting, favorites, updates. + +Important: keep an easy command-line install option for website users. Users browsing `openpets.dev` should still be able to copy one command and install a pet they like. + +For v2, use the official `@open-pets/cli` package for website/manual install commands: + +```bash +npx -y @open-pets/cli install snoopy +``` + +The rule is: + +- App onboarding installs pets directly from catalog/zip. +- Website/manual install remains available through an easy `npx` command. +- Runtime pet installation should not require Bun. +- Do not create a separate `@open-pets/install-pet` package initially; keep install/doctor/list/uninstall commands under `@open-pets/cli`. + +V2 catalog decision: + +Create a new app-friendly catalog for OpenPets 2.0. The desktop app should fetch the new v2 catalog instead of depending on the old `manifest.json` or minimal `install.json` shape. + +Target URL: + +```text +https://openpets.dev/pets/catalog.v2.json +``` + +Existing `manifest.json` / `install.json` can remain for the current website/current install flow, but the v2 desktop app should use the clean v2 catalog contract so old structures do not drag the new app design. + +Initial v2 catalog shape: + +```json +{ + "version": 2, + "generatedAt": "...", + "pets": [ + { + "id": "snoopy", + "displayName": "Snoopy", + "description": "...", + "preview": "https://openpets.dev/pets/snoopy-23e05847/spritesheet.webp", + "zip": "https://zip.openpets.dev/pets/snoopy-23e05847/snoopy.zip", + "format": { + "type": "spritesheet", + "columns": 8, + "rows": 9, + "frameWidth": 192, + "frameHeight": 208 + } + } + ] +} +``` + +Do not add categories/tags to the initial v2 catalog yet. Keep it minimal until the product needs those fields. + +Initial v2 pet browsing UI: + +- Grid of available pets. +- Search. +- Preview sprite. +- Install button. +- Installed state. +- Remove installed pet. +- Set installed pet as default. +- Basic loading/error states. + +Not initial scope: + +- Categories. +- Tags. +- Favorites. +- Advanced sorting. +- Ratings/popularity UI. +- Pet update system. + +Do not prioritize backward compatibility over a better v2 flow, but understand and reuse what already exists where useful: the catalog metadata, sprite previews, zip URLs, and install IDs are already enough to make native onboarding pet browsing technically possible. + +## Agreed first-run user experience + +OpenPets onboarding should optimize for emotional clarity first and technical configuration second. + +Problem: + +A new user may not know what MCP is, what Claude hooks are, what pet leases are, or why coding-agent setup matters. The first-run experience should make OpenPets feel immediately understandable, alive, and useful instead of feeling like a configuration chore. + +Desired first 5 minutes: + +- User launches OpenPets. +- User quickly understands that OpenPets lives in the tray/menu bar. +- User sees that a default pet is already available. +- User understands that pets can react to coding agents. +- User understands that agent setup is optional but recommended. +- User understands that Claude Code gets the most polished enhanced integration. +- User sees that OpenPets will not edit agent configuration without confirmation. + +Recommended first-run flow: + +1. User launches OpenPets. +2. The bundled default pet appears early, before agent setup. +3. Welcome explains the product in one short sentence: + + ```text + OpenPets gives your coding agents tiny desktop companions. + ``` + +4. User can optionally install more pets from the catalog. +5. User can configure coding agents. +6. Claude Code is highlighted as the best-supported integration. +7. User finishes onboarding with one clear success state: + + ```text + OpenPets is ready. Your pet will react when your coding agent connects. + ``` + +Decision: + +The default pet should be shown early in onboarding, before agent configuration. + +Reasoning: + +- It proves the app works immediately. +- It makes the product feel alive before any technical setup. +- Agent setup becomes easier to understand: make this visible pet react to your coding tools. +- Users can skip agent setup and still understand what OpenPets is. +- The product should feel like a companion app first, not an MCP configuration utility. + +## Agreed tray/menu behavior + +OpenPets should use a small tray/menu bar menu focused on quick control, not deep management. + +Initial tray menu: + +```text +OpenPets +──────────────── +Default Pet: +Show Default Pet / Hide Default Pet +Pause All Pets / Resume All Pets +──────────────── +Manage Pets... +Configure Agents... +Settings... +──────────────── +Quit OpenPets +``` + +Behavior: + +- `OpenPets` is a disabled title row. +- `Default Pet: ` opens Pet Manager. +- `Show Default Pet / Hide Default Pet` controls only the persistent default pet. +- Temporary explicit agent pets are not hidden by the default-pet show/hide item. +- `Pause All Pets / Resume All Pets` is a global quiet mode. +- Pausing all pets does not close pet windows. +- When paused, pets should stay visible but become quiet: no speech bubbles, reduced reactions, and idle/static or subtle animation. +- `Manage Pets...` opens Pet Manager. +- `Configure Agents...` opens Agent Setup. +- `Settings...` opens a small settings window. +- `Quit OpenPets` fully exits the app and closes all pet windows. + +Decision: + +Keep the tray menu simple. Pet catalog browsing, install/remove, default changes, and agent setup belong in dedicated windows, not directly in the tray menu. + +## Agreed app windows and responsibilities + +OpenPets should have a small set of single-purpose windows. Do not let the app turn into a full dashboard. + +Initial app windows: + +```text +1. Onboarding +2. Pet Manager +3. Agent Setup +4. Settings +5. Floating Pet windows +``` + +### Onboarding window + +Appears on first run. It may also be reopened later from Settings if useful. + +Purpose: + +- Welcome the user. +- Show the default pet early. +- Offer optional pet installs. +- Offer agent setup. +- End with a clear done/ready state. + +Not for: + +- Full catalog management. +- Advanced settings. +- Deep troubleshooting. + +### Pet Manager window + +The main place for pet ownership and catalog browsing. + +Purpose: + +- Browse the pet catalog. +- Search pets. +- Install pets. +- Remove installed pets. +- Set the default pet. +- Show installed/default state. + +Not for: + +- Agent configuration. +- App-wide settings. +- Turning into a general dashboard. + +### Agent Setup window + +The main place for coding-agent integrations. + +Purpose: + +- Detect supported agents. +- Show configured / not configured / needs attention / error states. +- Configure selected agents. +- Preview config changes where practical. +- Run doctor/check. +- Uninstall integrations. + +Not for: + +- Pet browsing. +- Pet installation. +- Detailed per-project pet routing UI beyond basic guidance. + +### Settings window + +A small preferences window for app-level behavior. + +Purpose: + +- Open default pet on app launch. +- Enable/disable speech bubbles. +- Pet size/scale. +- Start OpenPets on login. +- Reset pet position. +- Optionally reopen onboarding. + +Not for: + +- Pet catalog management. +- Agent installation details. + +### Floating Pet windows + +Tiny transparent always-on-top companion windows. + +Purpose: + +- Render pets. +- Show reactions. +- Show short speech bubbles. +- Allow dragging and repositioning. + +Not for: + +- Menus. +- Forms. +- Configuration. +- Management flows. + +Decision: + +Keep each window single-purpose. The product should remain tray-first with task-specific windows, not dashboard-first. + +## Agreed local-first/account-free behavior + +OpenPets 2.0 should not require an account. + +The app should work as a local-first desktop companion: + +- No login required. +- Bundled default pet works offline. +- Pet windows work offline. +- MCP and Claude integrations work locally. +- Installed pets and user preferences are stored locally. +- Remote catalog fetch is optional for discovering/installing extra pets. +- If catalog fetch fails, the app remains usable with the bundled default pet and already-installed pets. +- No cloud sync in the initial v2 scope. +- No paid/account-gated features in the initial v2 scope. + +Decision: + +OpenPets v2 is local-first and account-free. + +## Deferred start-at-login behavior + +Start-at-login behavior is not important for the initial planning focus. + +Decision: + +- Do not prioritize start-at-login for the initial MVP. +- Do not make auto-start a core onboarding decision yet. +- This can be added later as a Settings option if users want OpenPets to launch automatically. + +## Agreed desktop app missing behavior for MCP + +If `@open-pets/mcp` runs while the OpenPets desktop app is not running, it may try to auto-launch the installed desktop app. + +If the desktop app is not installed or cannot be found, `@open-pets/mcp` should not try to install it automatically. + +Behavior: + +- If OpenPets is installed but not running, MCP tries to launch it. +- If OpenPets is not installed or cannot be found, MCP stays alive in degraded mode. +- `openpets_status` explains the problem clearly. + +Example status message: + +```text +OpenPets desktop app is not installed or could not be found. Install and open OpenPets to enable pet reactions. +``` + +Reasoning: + +- Hidden app installers are risky and annoying. +- MCP should not make system-level desktop changes. +- Agent integration should remain predictable. +- User remains in control of installing the desktop app. + +Decision: + +MCP can auto-launch an installed OpenPets desktop app, but it cannot auto-install the app. + +## Agreed agent control boundaries + +Coding agents should not be able to install, remove, change, or manage pets directly through the initial MCP integration. + +Agents may interact with their assigned/current pet through the minimal public MCP tool set: + +- `openpets_status` +- `openpets_say` +- `openpets_react` + +Agents should not be able to: + +- Install pets. +- Remove pets. +- Set the default pet. +- Change user preferences. +- Browse the full pet catalog through MCP. +- Silently switch themselves to another pet. + +Reasoning: + +- Pet ownership should stay user-controlled. +- OpenPets should avoid surprising or annoying changes caused by agents. +- The MCP surface should stay small and predictable. +- Avoid confirmation flows inside coding agents for initial v2. +- Pet management belongs in the OpenPets app UI or explicit user-run CLI commands. + +Important nuance: + +Manual CLI commands are allowed because the user explicitly runs them, for example: + +```bash +npx -y @open-pets/cli install snoopy +``` + +Decision: + +Agents can express status/personality through pets, but pet ownership and configuration stay user-controlled. + +## Agreed MVP done definition + +The initial OpenPets 2.0 MVP should be judged by a polished end-to-end Claude Code experience plus the core tray/pet management experience. + +MVP is not just a partial MCP demo. MVP should include the full Claude integration designed in this plan. + +A successful MVP demo is: + +1. User installs/opens OpenPets. +2. OpenPets runs as a tray/menu bar app. +3. Bundled default pet appears early and works immediately. +4. First-run onboarding completes. +5. User can browse/install pets from the v2 catalog. +6. User can manage installed pets and change the default pet. +7. Claude Code integration is configured with user confirmation. +8. Claude Code MCP integration works through `@open-pets/mcp`. +9. Claude enhanced hooks are installed through `@open-pets/claude`. +10. A real Claude Code session can start with OpenPets connected. +11. The pet reacts when Claude thinks, works, edits, tests, waits, succeeds, errors, or celebrates. +12. The pet shows short, safe, throttled speech from Claude hooks/message pools. +13. Speech/privacy rules are enforced so code, secrets, large logs, and noisy content are not displayed. +14. Temporary explicit non-default agent pets open/close according to MCP lease lifecycle. +15. The default pet remains persistent and does not close because an agent exits. +16. Quitting Claude or the MCP process cleans up temporary leases reliably. +17. Quitting OpenPets closes all pet windows and exits cleanly. + +Decision: + +Initial MVP success should be measured by the complete Claude Code experience plus reliable core pet management, not by equal polish for every supported coding agent on day one. + +Other MCP-capable agents should still work through the agent-neutral `@open-pets/mcp` path where possible, but the highest-polish MVP integration target is Claude Code. + +## Agreed implementation process + +Implementation should happen in meaningful, manually verifiable phases with strong developer experience. + +The detailed implementation process lives in: + +```text +docs/implementation-process.md +``` + +Core process rules: + +- Each phase has a clear goal and manual acceptance criteria. +- Each phase plan is reviewed by Oracle before implementation. +- Oracle feedback is fixed or explicitly dispositioned. +- Implementation happens after the reviewed plan is accepted. +- The implemented diff is reviewed by Oracle before user confirmation. +- Actionable Oracle feedback is fixed before asking the user to verify. +- The user gets exact commands/actions for manual verification. +- Do not proceed to the next numbered phase, or any meaningful user-visible sub-phase, until the user confirms the current checkpoint is acceptable. +- If a phase becomes too large, stop and split it instead of silently expanding scope. + +Decision: + +OpenPets 2.0 should be built iteratively with Oracle-reviewed phase plans, Oracle-reviewed implementations, fixes, and then user confirmation at each meaningful checkpoint. diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 00000000..6f8f7da0 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2022"], + "module": "NodeNext", + "moduleResolution": "NodeNext", + "strict": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "rootDir": "src", + "outDir": "dist" + } +}

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�)~)DUwedm=hBeMR&rd| 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