From 3c2e9c25c96eabe32e3bf256d94d83144ef1b05e Mon Sep 17 00:00:00 2001 From: Ahmed Alaa <46384841+BenAlaa@users.noreply.github.com> Date: Mon, 24 Aug 2026 13:23:50 +0300 Subject: [PATCH] chore(repo): bootstrap public book engine --- .github/CODEOWNERS | 3 + .github/ISSUE_TEMPLATE/bug.yml | 63 + .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature.yml | 42 + .github/ISSUE_TEMPLATE/source-correction.yml | 49 + .github/PULL_REQUEST_TEMPLATE.md | 36 + .github/REPOSITORY_SETUP.md | 151 + .github/dependabot.yml | 27 + .github/workflows/quality.yml | 91 + .gitignore | 11 + CODE_OF_CONDUCT.md | 38 + LICENSE | 29 + LICENSE-CODE | 21 + LICENSE-CONTENT | 22 + NOTICE.md | 58 + SECURITY.md | 45 + astro.config.mjs | 27 + cover.png | Bin 0 -> 1838530 bytes package-lock.json | 7411 ++++++++++++++++++ package.json | 39 + public/favicon.svg | 32 + scripts/build-search-index.mjs | 16 + scripts/export-source-lock.mjs | 9 + scripts/inventory-source.mjs | 65 + scripts/lib/change-metadata.mjs | 34 + scripts/lib/git-source.mjs | 24 + scripts/lib/html-document.mjs | 11 + scripts/sync-source-excerpts.mjs | 65 + scripts/validate-book.mjs | 74 + scripts/validate-built-site.mjs | 56 + scripts/validate-change-metadata.mjs | 25 + scripts/validate-sources.mjs | 101 + sources/excerpts.manifest.json | 1474 ++++ sources/references.manifest.json | 4178 ++++++++++ sources/t3code.lock.json | 14 + src/components/AccessTransportLab.astro | 173 + src/components/AcpForkLab.astro | 42 + src/components/AdapterContractLab.astro | 266 + src/components/ArtifactFactoryLab.astro | 167 + src/components/BookCover.astro | 28 + src/components/Callout.astro | 13 + src/components/CheckpointGraphLab.astro | 135 + src/components/ClaudeSdkStreamLab.astro | 47 + src/components/ClientConvergenceLab.astro | 162 + src/components/CodexRpcBoundaryLab.astro | 63 + src/components/CommandBoundaryLab.astro | 664 ++ src/components/ConnectPlaneLab.astro | 116 + src/components/ContextOwnershipLab.astro | 268 + src/components/DecisionGrid.astro | 16 + src/components/DecisionLedgerLab.astro | 352 + src/components/DeliveryGapLab.astro | 357 + src/components/DesktopProcessLab.astro | 104 + src/components/EvidenceClaim.astro | 26 + src/components/Figure.astro | 25 + src/components/FlowLab.astro | 256 + src/components/LayerMap.astro | 20 + src/components/Mermaid.astro | 140 + src/components/MobileContinuityLab.astro | 329 + src/components/OpenCodeRecoveryLab.astro | 41 + src/components/PermissionFlowLab.astro | 90 + src/components/ProjectDiscoveryLab.astro | 66 + src/components/ProjectionCursorLab.astro | 223 + src/components/ProviderRoutingLab.astro | 216 + src/components/ReachabilityRecoveryLab.astro | 176 + src/components/ReceiptWindowLab.astro | 595 ++ src/components/RecoveryMatrixLab.astro | 240 + src/components/ReleaseOperationsLab.astro | 286 + src/components/ScenarioLab.astro | 124 + src/components/SourceExcerpt.astro | 61 + src/components/SourceList.astro | 17 + src/components/SourceSnapshot.astro | 10 + src/components/Stats.astro | 10 + src/components/SynchronizedTraceLab.astro | 266 + src/components/ThreadProjectionLab.astro | 240 + src/components/TraceLab.astro | 158 + src/components/TurnLifecycleLab.astro | 162 + src/components/UsageAccountingLab.astro | 259 + src/components/WorkLogLab.astro | 68 + src/components/WorkbenchCapabilityLab.astro | 176 + src/components/WorktreeTopologyLab.astro | 58 + src/content.config.ts | 27 + src/generated/excerpts.json | 1842 +++++ src/layouts/BaseLayout.astro | 52 + src/layouts/BookLayout.astro | 365 + src/lib/book.ts | 30 + src/lib/diagram-explorer.ts | 247 + src/lib/lab-motion.ts | 54 + src/lib/sources.ts | 40 + src/pages/404.astro | 13 + src/pages/[slug].astro | 19 + src/pages/index.astro | 14 + src/styles/components.css | 371 + src/styles/global.css | 515 ++ tsconfig.json | 9 + 94 files changed, 25255 insertions(+) create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature.yml create mode 100644 .github/ISSUE_TEMPLATE/source-correction.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/REPOSITORY_SETUP.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/quality.yml create mode 100644 .gitignore create mode 100644 CODE_OF_CONDUCT.md create mode 100644 LICENSE create mode 100644 LICENSE-CODE create mode 100644 LICENSE-CONTENT create mode 100644 NOTICE.md create mode 100644 SECURITY.md create mode 100644 astro.config.mjs create mode 100644 cover.png create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.svg create mode 100644 scripts/build-search-index.mjs create mode 100644 scripts/export-source-lock.mjs create mode 100644 scripts/inventory-source.mjs create mode 100644 scripts/lib/change-metadata.mjs create mode 100644 scripts/lib/git-source.mjs create mode 100644 scripts/lib/html-document.mjs create mode 100644 scripts/sync-source-excerpts.mjs create mode 100644 scripts/validate-book.mjs create mode 100644 scripts/validate-built-site.mjs create mode 100644 scripts/validate-change-metadata.mjs create mode 100644 scripts/validate-sources.mjs create mode 100644 sources/excerpts.manifest.json create mode 100644 sources/references.manifest.json create mode 100644 sources/t3code.lock.json create mode 100644 src/components/AccessTransportLab.astro create mode 100644 src/components/AcpForkLab.astro create mode 100644 src/components/AdapterContractLab.astro create mode 100644 src/components/ArtifactFactoryLab.astro create mode 100644 src/components/BookCover.astro create mode 100644 src/components/Callout.astro create mode 100644 src/components/CheckpointGraphLab.astro create mode 100644 src/components/ClaudeSdkStreamLab.astro create mode 100644 src/components/ClientConvergenceLab.astro create mode 100644 src/components/CodexRpcBoundaryLab.astro create mode 100644 src/components/CommandBoundaryLab.astro create mode 100644 src/components/ConnectPlaneLab.astro create mode 100644 src/components/ContextOwnershipLab.astro create mode 100644 src/components/DecisionGrid.astro create mode 100644 src/components/DecisionLedgerLab.astro create mode 100644 src/components/DeliveryGapLab.astro create mode 100644 src/components/DesktopProcessLab.astro create mode 100644 src/components/EvidenceClaim.astro create mode 100644 src/components/Figure.astro create mode 100644 src/components/FlowLab.astro create mode 100644 src/components/LayerMap.astro create mode 100644 src/components/Mermaid.astro create mode 100644 src/components/MobileContinuityLab.astro create mode 100644 src/components/OpenCodeRecoveryLab.astro create mode 100644 src/components/PermissionFlowLab.astro create mode 100644 src/components/ProjectDiscoveryLab.astro create mode 100644 src/components/ProjectionCursorLab.astro create mode 100644 src/components/ProviderRoutingLab.astro create mode 100644 src/components/ReachabilityRecoveryLab.astro create mode 100644 src/components/ReceiptWindowLab.astro create mode 100644 src/components/RecoveryMatrixLab.astro create mode 100644 src/components/ReleaseOperationsLab.astro create mode 100644 src/components/ScenarioLab.astro create mode 100644 src/components/SourceExcerpt.astro create mode 100644 src/components/SourceList.astro create mode 100644 src/components/SourceSnapshot.astro create mode 100644 src/components/Stats.astro create mode 100644 src/components/SynchronizedTraceLab.astro create mode 100644 src/components/ThreadProjectionLab.astro create mode 100644 src/components/TraceLab.astro create mode 100644 src/components/TurnLifecycleLab.astro create mode 100644 src/components/UsageAccountingLab.astro create mode 100644 src/components/WorkLogLab.astro create mode 100644 src/components/WorkbenchCapabilityLab.astro create mode 100644 src/components/WorktreeTopologyLab.astro create mode 100644 src/content.config.ts create mode 100644 src/generated/excerpts.json create mode 100644 src/layouts/BaseLayout.astro create mode 100644 src/layouts/BookLayout.astro create mode 100644 src/lib/book.ts create mode 100644 src/lib/diagram-explorer.ts create mode 100644 src/lib/lab-motion.ts create mode 100644 src/lib/sources.ts create mode 100644 src/pages/404.astro create mode 100644 src/pages/[slug].astro create mode 100644 src/pages/index.astro create mode 100644 src/styles/components.css create mode 100644 src/styles/global.css create mode 100644 tsconfig.json diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..99799f6 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,3 @@ +# Repository-wide stewardship. Required review remains a branch rule rather than +# a CODEOWNERS-only rule so knowledgeable contributors can review one another. +* @BenAlaa diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..ebed74e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,63 @@ +name: Book engine bug +description: Report a reproducible problem in navigation, rendering, interaction, search, accessibility, or build behavior. +title: "fix(engine): " +labels: [bug] +body: + - type: markdown + attributes: + value: Use the source-correction form for an inaccurate architectural claim and the upstream tracker for a T3 Code product bug. + - type: input + id: page + attributes: + label: Page or route + placeholder: /runtime-topologies/ + validations: + required: true + - type: textarea + id: observed + attributes: + label: Observed behavior + description: Explain what happened and include the exact error when available. + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behavior + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Reproduction + description: Give the shortest reliable sequence, including diagram controls or keyboard input when relevant. + placeholder: | + 1. Open … + 2. Select … + 3. Observe … + validations: + required: true + - type: input + id: environment + attributes: + label: Environment + description: Browser and version, operating system, input method, and deployed or local build. + placeholder: Firefox 145, macOS, trackpad, GitHub Pages + validations: + required: true + - type: textarea + id: accessibility + attributes: + label: Accessibility or reduced-motion impact + description: Note keyboard, screen-reader, focus, contrast, motion, zoom, or print impact if relevant. + validations: + required: false + - type: checkboxes + id: checks + attributes: + label: Report checks + options: + - label: This is a T3 Code Decoded book/engine issue, not an upstream T3 Code product issue. + required: true + - label: I checked for an existing report. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3a2b430 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Upstream T3 Code support + url: https://github.com/pingdotgg/t3code/issues + about: Report T3 Code product bugs to the upstream project, not this study guide. diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..3d76f22 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,42 @@ +name: Book or engine proposal +description: Propose a chapter, visualization, simulator, accessibility, or engine improvement. +title: "feat(book): " +labels: [proposal] +body: + - type: textarea + id: problem + attributes: + label: Reader problem + description: What is currently difficult to understand or use? + validations: + required: true + - type: textarea + id: outcome + attributes: + label: Proposed outcome + description: Describe the chapter, figure, lab, or engine behavior—not only an implementation. + validations: + required: true + - type: textarea + id: sources + attributes: + label: Likely source anchors + description: List relevant T3 Code paths or this repository's engine files. + validations: + required: false + - type: textarea + id: alternatives + attributes: + label: Alternatives and scope + description: What smaller explanation or existing component could solve it? + validations: + required: false + - type: checkboxes + id: checklist + attributes: + label: Proposal checks + options: + - label: I checked BOOK_PLAN.md for an existing chapter or planned artifact. + required: true + - label: This is about the study guide, not an upstream T3 Code product bug. + required: true diff --git a/.github/ISSUE_TEMPLATE/source-correction.yml b/.github/ISSUE_TEMPLATE/source-correction.yml new file mode 100644 index 0000000..60381b7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/source-correction.yml @@ -0,0 +1,49 @@ +name: Source correction +description: Report a factual, source-link, or evidence-class problem in the book. +title: "fix(book): " +labels: [source-correction] +body: + - type: markdown + attributes: + value: Thank you for helping keep the book grounded. Please cite the pinned source when possible. + - type: input + id: chapter + attributes: + label: Chapter or page + placeholder: Chapter 10 · Events, receipts, and idempotency + validations: + required: true + - type: textarea + id: current + attributes: + label: Current claim + description: Quote or summarize the claim that needs correction. + validations: + required: true + - type: textarea + id: evidence + attributes: + label: Source evidence + description: Add repository paths, line ranges, tests, or immutable links. + placeholder: apps/server/src/...:120-150 + validations: + required: true + - type: dropdown + id: classification + attributes: + label: Suspected problem + options: + - Incorrect verified behavior + - Documented intent presented as behavior + - Inference not labeled + - Future or latent capability presented as shipped + - Stale or broken source reference + - Other evidence problem + validations: + required: true + - type: textarea + id: correction + attributes: + label: Suggested correction + validations: + required: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..2ff1e7d --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,36 @@ +## Outcome + + + +## Scope + + + +### Non-goals + + + +## Evidence + +- Canonical source lock: `sources/t3code.lock.json` (read and verified by CI) +- Primary anchors: + - +- Claim class notes: +- Discrepancies or uncertainty: + +## Visuals and interaction + + + +## Validation + +- [ ] `npm test` +- [ ] `npm run build` +- [ ] `npm run source:check` when source excerpts changed +- [ ] Internal routes, source links, and headings checked +- [ ] Claims reviewed at the pinned revision +- [ ] Accessibility and static print state checked for changed visuals + +## Review focus + + diff --git a/.github/REPOSITORY_SETUP.md b/.github/REPOSITORY_SETUP.md new file mode 100644 index 0000000..4014cd0 --- /dev/null +++ b/.github/REPOSITORY_SETUP.md @@ -0,0 +1,151 @@ +# Public repository launch runbook + +This is the owner checklist for publishing T3 Code Decoded. It deliberately keeps +repository creation, policy activation, branch publication, and Pages deployment +as separate checkpoints. Completing one checkpoint does not authorize the next. + +## Fixed decisions + +- Owner: personal GitHub account [`BenAlaa`](https://github.com/BenAlaa), never the + EasyGenerator organization. +- Visibility: public. +- Repository and Pages project name: `t3code-decoded`. +- Default branch: `main`; do not create or retain `master`. +- Authored changes: pull requests only. Never push project commits directly to + `main`. +- Merge method: rebase merge, preserving the fine-grained Conventional Commits. +- Solo-owner escape hatch: `BenAlaa` may bypass rules **for pull requests only**. + The bypass may merge an existing owner PR; it must not become a direct-push path. +- Pages source: a GitHub Actions artifact, never a committed `dist/` branch. + +## 1. Local preflight + +- [ ] `git status` contains only the intended milestone. +- [ ] `npm ci` succeeds from the lockfile. +- [ ] `npm run source:check` succeeds against the locked T3 Code checkout. +- [ ] `npm test` succeeds. +- [ ] `npm run build` succeeds with `/`. +- [ ] `BASE_PATH=/t3code-decoded/ SITE_URL=https://benalaa.github.io npm run build` + succeeds. +- [ ] Every local commit that will be replayed follows Conventional Commits. +- [ ] The GitHub CLI or browser session is visibly authenticated as `BenAlaa`. + +## 2. Create the inert public remote + +Create `BenAlaa/t3code-decoded` as public with GitHub's generated README. That one +placeholder commit establishes remote `main`; do not initialize another license or +`.gitignore`, and do not push the local repository during creation. + +- [ ] Confirm the owner is exactly `BenAlaa` and visibility is **Public**. +- [ ] Confirm the default branch is `main` and no `master` branch exists. +- [ ] Add the description, Pages URL, and topics such as `t3code`, `architecture`, + `astro`, `effect`, `reverse-engineering`, and `interactive-book`. +- [ ] Add the remote locally and fetch the placeholder branch read-only. + +## 3. Protect `main` before publishing authored work + +In **Settings → Rules → Rulesets**, create an active branch ruleset named +`protected-main` targeting the default branch. + +Bypass list: + +- [ ] Add the `BenAlaa` user actor. +- [ ] Change its bypass mode from **Always allow** to **For pull requests only**. +- [ ] Do not grant the bypass to write/maintain roles or automation generally. + +Rules: + +- [ ] Restrict deletions. +- [ ] Require a pull request before merging. +- [ ] Require one approving review. +- [ ] Dismiss stale approvals when new commits are pushed. +- [ ] Require review from Code Owners. +- [ ] Require approval of the most recent reviewable push. +- [ ] Require all review conversations to be resolved. +- [ ] Require linear history. +- [ ] Block force pushes. + +Repository merge settings: + +- [ ] Enable **rebase merging**. +- [ ] Disable merge commits and squash merging so reviewed fine-grained commits + survive on `main`. +- [ ] Automatically delete head branches after merge. + +The first publication PR introduces the workflows, so the status-check contexts do +not exist when the initial ruleset is created. Open that PR, wait for both checks to +run, then edit the ruleset before merging: + +- [ ] Require `Validate and build`. +- [ ] Require `Conventional changes`. +- [ ] Require branches to be up to date before merging. +- [ ] Verify the ruleset is **Active**, then inspect Rule Insights after the first + owner bypass. + +## 4. Replay the local milestones through PR branches + +The local history and GitHub placeholder have unrelated roots. Do not merge those +roots and do not force the local branch onto remote `main`. For each publication +milestone, create a clean branch from the latest `origin/main`, then cherry-pick +the already-reviewed local commits in their original order. + +Recommended PR sequence: + +1. `bootstrap/initial-edition` — book engine, source pipeline, front matter, + Chapters 1–4, and the public governance/CI foundation. The opening maps link + into Part I, so this is the smallest complete milestone that passes the + built-site link gate; +2. `docs/part-02-boot-connect` — Chapters 5–8 and their evidence; +3. one branch and PR per later coherent part or review milestone. + +For every branch: + +- [ ] Branch from the latest protected remote `main`. +- [ ] Replay only the intended fine-grained commits; resolve no unrelated changes. +- [ ] Run the full local preflight again. +- [ ] Push the named feature/docs/chore branch, never `main`. +- [ ] Use a Conventional Commit title for the PR and complete every template + section with outcome, scope, evidence, validation, and review focus. +- [ ] Review the Files changed and commit list as `BenAlaa`. +- [ ] Resolve conversations and wait for required checks. +- [ ] For owner-authored PRs, choose the explicit ruleset bypass in the merge box; + do not disable or edit protection merely to self-merge. +- [ ] Rebase-merge, verify `main`, and delete the remote head branch. + +## 5. Configure GitHub Pages + +After the CI foundation reaches `main`: + +- [ ] In **Settings → Pages**, select **GitHub Actions** as the source. +- [ ] Keep the `github-pages` environment restricted to deployments from `main`. +- [ ] Confirm the Pages workflow build job has only `contents: read` and the deploy + job alone has `pages: write` plus `id-token: write`. +- [ ] Confirm every external action is pinned to an immutable full commit SHA. +- [ ] Confirm Pages checks out the T3 revision read from + `sources/t3code.lock.json` and runs `npm run source:check` before upload. +- [ ] Verify canonical URLs, assets, search, favicon, internal links, diagrams, and + expanded zoom/pan at `https://benalaa.github.io/t3code-decoded/`. + +## 6. Community and security settings + +- [ ] Enable Issues and preserve the bug, source-correction, and proposal forms. +- [ ] Create labels `bug`, `proposal`, `source-correction`, `accessibility`, + `documentation`, `engine`, and `dependencies`. +- [ ] Enable the dependency graph, Dependabot alerts, and Dependabot security + updates. +- [ ] Enable private vulnerability reporting so the link in `SECURITY.md` works. +- [ ] Confirm `CODEOWNERS` resolves `@BenAlaa` and the PR template loads. +- [ ] Confirm the repository displays the mixed-license notice and upstream T3 + Code attribution. + +## 7. Launch evidence + +Record the final URLs or screenshots in the launch PR: + +- [ ] public repository; +- [ ] active `protected-main` ruleset and pull-request-only bypass; +- [ ] required checks on a real PR; +- [ ] successful Pages deployment; +- [ ] live book route and search result; +- [ ] private vulnerability reporting enabled; +- [ ] no `master`, no published `dist/`, and no authored direct commit to `main`. diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..cfc2756 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,27 @@ +version: 2 +updates: + - package-ecosystem: npm + directory: / + schedule: + interval: weekly + day: monday + groups: + astro-book-engine: + patterns: + - astro + - "@astrojs/*" + search-and-diagrams: + patterns: + - pagefind + - mermaid + commit-message: + prefix: chore + include: scope + + - package-ecosystem: github-actions + directory: / + schedule: + interval: monthly + commit-message: + prefix: chore + include: scope diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml new file mode 100644 index 0000000..fa700a4 --- /dev/null +++ b/.github/workflows/quality.yml @@ -0,0 +1,91 @@ +name: Book quality + +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: quality-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + metadata: + name: Conventional changes + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + timeout-minutes: 5 + permissions: + contents: read + + steps: + - name: Check out pull request history + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Validate title, body, and every commit subject + run: node scripts/validate-change-metadata.mjs + env: + PR_TITLE: ${{ github.event.pull_request.title }} + PR_BODY: ${{ github.event.pull_request.body }} + BASE_SHA: ${{ github.event.pull_request.base.sha }} + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + + book: + name: Validate and build + runs-on: ubuntu-latest + timeout-minutes: 20 + permissions: + contents: read + + steps: + - name: Check out the book + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Read the canonical source lock + id: source-lock + run: node scripts/export-source-lock.mjs >> "$GITHUB_OUTPUT" + + - name: Fetch the pinned T3 Code source + env: + T3CODE_COMMIT: ${{ steps.source-lock.outputs.commit }} + run: | + git init .source/t3code + git -C .source/t3code remote add origin https://github.com/pingdotgg/t3code.git + git -C .source/t3code fetch --depth=1 --no-tags origin "$T3CODE_COMMIT" + git -C .source/t3code checkout --detach "$T3CODE_COMMIT" + test "$(git -C .source/t3code rev-parse HEAD)" = "$T3CODE_COMMIT" + + - name: Set up Node.js + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: 24.13.1 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Verify generated excerpts against the source lock + run: npm run source:check + env: + T3CODE_SOURCE_DIR: ${{ github.workspace }}/.source/t3code + + - name: Run tests + run: npm test + + - name: Build the root-hosted shape + run: npm run build + env: + SITE_URL: https://benalaa.github.io + + - name: Build the GitHub Pages shape + run: npm run build + env: + BASE_PATH: /t3code-decoded/ + SITE_URL: https://benalaa.github.io diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5414b69 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +node_modules/ +dist/ +.astro/ +.DS_Store +*.log + +# Local source checkout pointers and authoring caches. +.source/ +.source-cache/ +.env +.env.local diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..fa79833 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,38 @@ +# Community code of conduct + +T3 Code Decoded is a technical learning project. Participation should make it +safer and easier for people with different backgrounds to inspect evidence, ask +questions, and change their minds. + +## Expected behavior + +- Be respectful, specific, and patient. +- Critique claims and evidence rather than people. +- Distinguish facts, interpretations, preferences, and uncertainty. +- Welcome corrections and credit the people who surface them. +- Respect privacy, source licenses, and upstream maintainers' time. +- Keep product support requests in the upstream project's channels. + +## Unacceptable behavior + +- Harassment, discrimination, threats, sexualized attention, or personal attacks. +- Publishing another person's private information or credentials. +- Deliberately misleading source attribution or fabricated evidence. +- Sustained disruption, spam, or bad-faith demands. + +## Enforcement + +Repository maintainers may edit or remove contributions and may temporarily or +permanently restrict participation when behavior harms the community. Report +conduct concerns privately to Ahmed Alaa through the contact methods on +[`@BenAlaa`'s GitHub profile](https://github.com/BenAlaa). Do not open a public +issue containing sensitive details. + +Maintainers will consider context, protect reporter privacy as far as practical, +and communicate consequences proportionately. Good-faith disagreement about an +architectural interpretation is not misconduct. + +## Scope + +This policy applies in repository spaces and when someone is publicly representing +the project. Upstream T3 Code spaces have their own governance. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ccf6a27 --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +T3 Code Decoded — software license and content notice + +This is a mixed-license repository. The MIT License below applies to the site +engine, components, styles, scripts, tests, workflows, and other original software. +Original book prose and diagrams are licensed separately under CC BY 4.0 as +described in LICENSE-CONTENT. Third-party excerpts, marks, and the supplied cover +artwork are excluded from both grants; see NOTICE.md. + +MIT License + +Copyright (c) 2026 Ahmed Alaa and T3 Code Decoded contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the software portions of this repository and associated software 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/LICENSE-CODE b/LICENSE-CODE new file mode 100644 index 0000000..e0d91c5 --- /dev/null +++ b/LICENSE-CODE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Ahmed Alaa and T3 Code Decoded contributors + +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/LICENSE-CONTENT b/LICENSE-CONTENT new file mode 100644 index 0000000..d60dea1 --- /dev/null +++ b/LICENSE-CONTENT @@ -0,0 +1,22 @@ +Creative Commons Attribution 4.0 International — license notice and summary + +Copyright (c) 2026 Ahmed Alaa and T3 Code Decoded contributors + +Original book prose and original diagrams in this repository are licensed under +the Creative Commons Attribution 4.0 International License (CC BY 4.0). + +You are free to share and adapt that material for any purpose, including +commercially, provided that you give appropriate credit, provide a link to the +license, and indicate if changes were made. You may not apply legal terms or +technological measures that legally restrict others from doing anything the +license permits. + +This file summarizes the grant for repository navigation; it is not a substitute +for the license. The complete CC BY 4.0 legal code governs and is available at: +https://creativecommons.org/licenses/by/4.0/legalcode + +Suggested attribution: “T3 Code Decoded” by Ahmed Alaa and contributors, +https://github.com/BenAlaa/t3code-decoded, licensed under CC BY 4.0. + +This license does not cover third-party source excerpts, trademarks, logos, or the +supplied cover artwork. See NOTICE.md for attribution and scope. diff --git a/NOTICE.md b/NOTICE.md new file mode 100644 index 0000000..5fdcba0 --- /dev/null +++ b/NOTICE.md @@ -0,0 +1,58 @@ +# Notices and attribution + +## T3 Code + +This repository contains short excerpts from T3 Code solely to explain its +architecture. The upstream project is available at: + +https://github.com/pingdotgg/t3code + +The source snapshot used by this edition is commit +`fa219001dc2f14cfd9c7774c2c03c153359144be`. T3 Code is licensed under the MIT +License. The following upstream notice and permission terms remain applicable to +every included excerpt: + +> MIT License +> +> Copyright (c) 2026 T3 Tools Inc. +> +> 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. + +The excerpt manifest, generated checksums, and immutable source links make the +boundary between upstream code and original commentary inspectable. + +## Original material + +The site engine, scripts, and original software in this repository are available +under `LICENSE-CODE`. Original prose and diagrams by Ahmed Alaa and project +contributors are available under `LICENSE-CONTENT`, unless a file states +otherwise. The root `LICENSE` routes these scopes. + +## Cover + +The project owner supplied `cover.png` and authorized its inclusion in this public +repository and published book. It is a project asset excluded from both the MIT +and CC BY 4.0 grants. Its inclusion does not grant reuse rights or broader rights +to third-party names, logos, or marks depicted in the artwork. + +## Independence + +T3 Code Decoded is an independent, unofficial study guide. It is not maintained, +sponsored, or endorsed by Ping Labs, T3 Code, or the vendors of the provider +harnesses it documents. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..3897970 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,45 @@ +# Security policy + +## Supported version + +The current `main` branch and deployed GitHub Pages edition are supported. Older +source-lock editions are historical snapshots and do not receive security fixes. + +## Reporting a vulnerability + +Use [GitHub's private vulnerability reporting +form](https://github.com/BenAlaa/t3code-decoded/security/advisories/new) for this +repository. If the form is unavailable, contact Ahmed Alaa privately through the +contact information on [`@BenAlaa`'s GitHub profile](https://github.com/BenAlaa). + +Please include: + +- the affected page, component, workflow, or dependency; +- reproduction steps and realistic impact; +- whether the issue affects local development, contributors, or public readers; +- any suggested mitigation; +- whether and when disclosure has occurred elsewhere. + +Do not open a public issue for a vulnerability before the maintainer has had a +reasonable chance to investigate. + +## Scope + +In scope: + +- script injection or unsafe rendering in book content, diagrams, or search; +- dependency or GitHub Actions compromise affecting contributors or deployment; +- source-extraction path traversal or unsafe file handling; +- accidental publication of credentials or private material; +- a deployed-site configuration that creates a meaningful security risk. + +Out of scope: + +- vulnerabilities in T3 Code itself—report those to `pingdotgg/t3code`; +- missing security headers that have no practical impact on this static site; +- automated scanner output without a reproducible attack; +- social engineering, denial of service, or attacks on GitHub infrastructure. + +The book is an independent architecture study and is not a security advisory for +the upstream project. Findings about upstream code are presented as source-grounded +design analysis, not exploit claims. diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..e9d1e50 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,27 @@ +import { defineConfig } from "astro/config"; +import mdx from "@astrojs/mdx"; + +const base = process.env.BASE_PATH || "/"; +if (process.env.CI && !process.env.SITE_URL) { + throw new Error("SITE_URL is required for CI builds so canonical and social URLs cannot silently disappear."); +} + +export default defineConfig({ + output: "static", + site: process.env.SITE_URL, + base, + trailingSlash: "always", + build: { + format: "directory", + }, + integrations: [mdx()], + markdown: { + shikiConfig: { + themes: { + light: "github-light", + dark: "github-dark", + }, + wrap: true, + }, + }, +}); diff --git a/cover.png b/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..ab4796f5b2d913a5633ed80cf62075f6c95bd892 GIT binary patch literal 1838530 zcmV)8K*qm`P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR950H6Z^1ONa40RR97000000G<^~761T107*naRCoc*y*;vS$+9F=xB4}h z^#D-N83Y)p2#g5<0R$${i~*4WpkoFjXap1#3tFTecq2X24E^-Hbc%Jm0>brC`&ZfQ)!C+!ICUNL_DE`K~)u1r`;p7+`4O$ zMm}cfGE({F>Hg`fXoG>UkcnBUN`y*`6!A{B729V^;2(cjGcnxRrNLSDxGCBqXP%J) z$xergk*$qRfhXxe>z^?_C%_As=g^5N(z!WVR$DxRdQ0fx#agvVIwR&B%nJrio*$w~ zFO`+L&K3M9>9q>5&fk{WP9&nUC?OSey1S(p?qF3eDpy;W~6_$d@ToCaTf*q{t z0+dE7R2`fLfwkg-e$HU@Rm^lVFPy~UA9f-iTcvHkv#d~vqFGthBC68L$y5~`9VZuG z1_A-(b1>RqfZ0@bl822Hq^ocT)e0#P!(BK6!zmAyHl$b%BoXVX4#ZD2SbH|9Qdp2_ z3Yr?3wOT&sD$5zE!c1`bpVrSR_y;@I`h}?-M251+RC4@C^{%gHjfvApRf{N(yvlChV-5{!(4FSg=_5Fca=pxJ5K6 zc<`2}6x>P^@KQ)OT%fi^Z=D|^`?RPI8xEf*}tqBF5Y~n7>R_lT!Q&~LP zkG17U-y&s6m8W4<;x}4KNLNvR1dw(yFbWaYWc^A&3NvwOhIqPhE86lIt3D_KcByR? zo)#yh)No9xz#7V7eb&Q$U0IbLO-X8maYe)1PQQY2HU6PmYT&~skV;rZZlODa7-B6y zO5i5PVkH@&;@oOk*t{Fq9=;qfGb~+0JYsH-kxdVDr!q-d*3oW1SC!SB@JyjhcBNgA zZg`4CXG7E?>L|0+<&ve4_E9Q~banNzNRZ=^SCkK*TREbCWNdq(+Rh!2nuI!qn>Ck) za5_!xHj>pdZSSvLxEteF3NieL*JRd$72yxhaUMkL8@HI31~^)gv*%!p*lMH-uS_hx zr@Tv*6rg7TK`ul5HErWv#^qbHeN31b_u~6Mxo^HMT!7EEno>_!oJ4B03L=F|Ue12x zV7Ot+pcmJmu%qu&(4q|wh?d1{ED7^1ZS0IRXD{+$Q7~;F%F&(V?WY_}f zesKZ|O5O+aNUB#w)nZ_(b=Ql{@lJPceYY`#?;b?ijozk1V#O(I=O=!?R%hPS*1V!J zmt37I?be_IcW&vQN2Yi3C1TFkI3paHO$U>RukJA<1=;1LX>Mh1hCzXk?Z$U-jAz@mRF7t#(!tFr=MNB z8R@r=-!ww>4Wk(dZ3d?;P7VE)t4|m3`hL+s%jjr(@l=^v7rtorXB`IZ)8w>731mzp zP7_-k8-9^`Jtm+n(C!j@# zHKg{#*-C00f!z%72ydy-?2ALDAJ6iQ5HhklsPpatfb+@6Zum=&x%JQ&U+xv8@*$Ms z&Xn0}KF^B!^atg9wYDwF;+*>>O(F$?@$8hGa6u%`1Fk~Y(jdsXuHNgLvvZ9%UFGf+ zBI~JK%yK}>l~Wn(>(3Kt(YYP0yRV_Bn>AWI-11u!l9kS`X+l)-dSmsCxja=`8(TJe zxcaD=m?~(7AY&N1^V1gqjoP?i6TFay^nJt0IXtL2R*aU4!wZx=3x5I@^X%gRMOW|9 z2rtvWFp6*903h?iF*sH>w<#%IyN#1DW&QHE-+uf3P8R<8hIAjB`Bs%_C1+N-kJ)

JT`vT(lh_kfWE&#JFP6heAoE*Q zGl<~6vB6C$=)9L3mX(%Ubt_IUYk8@8$)oiI8j!m}55>smYgz5_Q>Cij9=TUjfX4+) zYwg*#lypHJz7=WoOz4bbPl>yBp}`uXcA|$Ocy8d_J0!NRr=WC$BQ8}?atN57X{(1WJ#u&E^mQVszqdmo3aM5JHjgKx!B93b(U1GN~!MNiQ{gq7peW1PH%ekEcU#6 zn7r$8RWLQRm|Mg_1-EjIuH4mivW%MwIy9bOQitrq3D(+@1{8qOJUKHTBd*OVyn@lE34Ld+TDZv^eeHeXIo1%xF~>_Ja$+ywEg8*$3S zqn@2AKekHKuqwWftG>K*O5{zx=)LTUAl;@a{GsjaXmGX$l@Ptua)}Uuyru?wc%N0; zE9B5N{B1r&IomNMi4mOR;9P2N@SsQ6R=qfv&P10>UBu6(TvB}P7knvXu~yU1?t@SH z2p7qW44WLy5BG%LoE2qGDi5xh-kV^wk6I0a>TecIbz)h4DBp1YFwz%K`q^XGMku?` zKJfTgi=(3?nPVp+W$?6Tm1chSk9i)P%+oZwViT!@lw00d8>hV`XzC<6{_%Xaxr7LY z>mcvE7S+@4oan5{r-U{6Egyp&vSm4=oL(i4%UQiB|YGu`kgUcQisbi1Vq?u=%Y2>G&(=>SAUt`wLY9 zvO!$lRNK5O^>%LaVekI&$G8V8j%^~Rj5^9)rcP3}q5Q~NiOZtXtK~a&LdYg`AUSp^ z)NLJ>Cbhc}Gj89aYE1cizsjBZl`x7Xk)ez~UUY|p;hzq7Fs$v+6DmzJi%fe%Yq9@= zzcku=&a@$n|(AkvaeX@(%-l|A+H#j_#tp5v@}W|F=cRYbo1on=KL zRYPGL^)uS^hFV1zn98T!@%d!6Pp{L3wXUVE&x{ev?}}Yl{5oCjS&YM~bYRx|cG_P! zz*eE~*qf!ybx9F4$I{Xy#PZFfv^ZT4OioZV0 zLcP0mZ#)x)&RC2eG&;px$dQ6gQ;y!AjZrZlClT&QH zTJH+lG2vXxJO`U;m$UZC^x$k-KUdX6M8IK$>KSPqU5`@pxkdfXQQIpM}E;L{1DUQ}gw8>_)JyjowI+PV)g{oLY3o=g^g48BO zw82x4?uf;e>yT~h_vo38EEX;`GL=^v6dl1rZXP6iO5`@1JSB}o(u_&&ixp+Zza_<;mzo$ zNQYAhop%zSU2HIQ0fwi`v8(21P?&OQYdeW}0+idm(1A<+@@=Rpf(fb)y1x)3UM_2}f93=rHR>2QGe z{oEe4%r~9zJYH$?jB=RpVMuzf@QAn~4^J+7T+(e!9(#}x^fc=H&_(JQiv6T5!QHqBHYHQC@;n}6PzBlAoImid z0R09p@qko-M?;RQ$gZJQT@3wC5sEGbzrZHJ1iN#+{G8YOSwpQF0Z=o2U3>CA*}@-S z4dDWBs#sym(tC+L!)y{xwuQrI+pRT(&)J37WGq%Z*3jUV@(!OtX1`zNF|W6GVWYvW zh+O)49x7OAUQTsGPrWvIh$=0`YS7%uZ9V{GVoX{u@8w@4IzYk4e;da1+!Bwfl7oPy zcFSzcyJvr8E;!@dCo}OygH(Pea>vRgiHOfm%dH$?m`rF0)W8P>MQ;$F;?X5ma+ml$-Tull96xKyW?@}tyZa2oFAV|y&iV^Ta)K|lHN zkfD}AWU0Ed!=Cn0LRoe5G`!es6N7?<@&`3*NQ`tvrL%E$BryQ?go|7()fZwq`CXB2 zdkmg;_}OU>jW|^@hD7s{Sl-5k)J9R@OfhRk6>tm8_7bfZoeP;^us@oWTO$EK9AQ?F zY4OBB2$z>Ct5b){UMPo|?E#p}{elmDxiv&s-AARSc#KDg@+H&-Tv=SBR*F)o`B`wh z67Ao0X+D^xT4jc3EzwBNJ_9J=Xj8{_WH{1il|v4@vs13t%1YVU#-bcBuYtg9i3)% z9@{7x3=nSsn(Y?hBbYo+GJ@27wxwA;b!>l@Hg&dWcZ|pD=p6fw;;K3tftjTV2v%)_Wqu7*d6&B#zE!B2&V8Hqv&6C}B*Zr~h!n$R{16=4MXjE%0%1 z_jT1`7vzvuSpHq$%bk5JTjNlydw&2Py*TRweo`3Lg{XH%v8tC68(C zy>DCU$Azl!6lSY0I7`hk3jps7v>kM{(48F1#q-I6upUZaAnIE2-9}_6M4pwUSNlj| ziG2d_>;#S8rx6_>Kk(#BnAzK+>G16N4A%tT^Oxsj%MK#ijE(8%R-r-VL|#)Ws zS7c9HkbO`KKP;wtBr9!%WBT3Z!0gMSN{WwIX}F=p?ZT7!k2P3y6>ee6^F{S1;PNf& z3!0w{f5p#uxAa(IoQcWRHlJ;S=_A!6|HvNiF^lpGdC#2onq*SRpE42aFK(4|;Xjq& z?83(v|Hk==>WU>Z^#IWq_BagTXLYh;EE$0>W8vYu3keve<86JhEK48v;YsEIeDfqU z$LQ#xyOv*t0B+A~*B|O{pF2x(x@b+?pzg0>DP4FybZe%F>>?fLHJ=5l(2KU2Q1(H7 zEY~h;5IUFXYq4pPRXQ`hjg`<=Fzw(I&ZU2Cz(ZYU9iPm}U8#$`N7siFr1)2W_~t=+ zXYjXJUhv?@A>KWLYeK>TNdjN$svY{KJCiORSL?% zF2B+*JM?ZROQug%T#ka7B%Nl$dv_8cGVg5gDq;<;1?2f_A*q~ZhE2}7Xy(P)o`tl>3QMQ?xn%|G zD3{*x8k0uZ6I-0O)$?~>z7u8Uo}mANK-qk^z(3~%toG<4%hvDu%+*h|(Oq=)uAOwe zQ2G=B!M^4(R z`f)0#YtpOA^yFTS%$`A@x&E(VVK_~sHV4$cEH^ZJg&!NIEm)l5wWHnNMb?b~$gN7vdLJjvDh*Yx=&?*ta_L-e?*(Z*$;ZXbN(;B1fjmr)Xgh2N;;W^0=>_D| z;w_jE`!Pv4xy99uA9Ut|Yg=pj>9nW8-f>~so@T6P@i_{l*5t;e)cO_(zdaGK8=Wec zL#{hvs=^Z9Wi{(2aBo2@UP(PA=1E#%Qp^CpsgAckCp*PtZ^{Qxmz;8CXAk_=J>o;? z@b2cqObwchfoUyy_Ee|Niq7O*Y^7h!2x9MmEs{`oRP$$?0DyHTN)8!)_8g_lSLU>H zdn2-QD1k~{ew4H6i` z?6KWc5Rjd%yvy_1&!|TS!zEJ4dxT|*%HxXcJxH=VT}TAR(2xXJ(f$~Xe^#8f0kr%IF<(}fbJ5lp;-ZLD2=f;Y8hPEPRP#Aa~3`xPZgnQ=RB zj6FxKnFzabQBze9sssGx@=vCR|JFP`uA;3-hL1K+KK~VXb))GSZ;3{MknuerSb z5Oq}`V@w|VLvn=X@-1B$48C@}-by?3V7^Iq4@gS;SBWc+RvI2{!heuJRH+;=I^*R$ z*PwRdZt3Im+NcdZ3vGe1kMKiwl*c&m`x0d{H$+B1JMLvge3Z*D13A~A_vAb`R>)(#Tdm&JCg6L>6!L=?R-zwhoYnYpEWmyO$Mi{CmN$6_w&PP+rZzT8hE0= z#T;52wahU)D7}0bFP7 zJQM!hIDaTxN9?T6ldyct()6~a2lx4&gdY<21?RqtZ!eVbR`!YSNPpYk#daio;zle3 zc*lJtjGh=I;_qzVny672SoFsr%_~RAP8A^cslT@~BTrus_V}jYXG%=EWzVlCau6G*@pkkvbvdJ? zYvDkzXz{g62l3&Y1y&^bh;KsZW52$FJZe}iF!uYCBn)sKuYoA?Fq3E=Ob$QzWdXlo z^~{fgSQ2At_Y9kdSs{<{z$HOP)(f6Jy0sfWCp@Ej#l`SaVux$xiYaY`(m5etcA}LY zFC2(sjEqc-kmZ-X0KJEHYZtf|B+{j^tAIV+BmFomNj39bvl6{)B@rG<4Gc@C%g_0R zv;A(Ov=Gr4eB#(_hf{e*cuf3I6Q&qpRINf`oBL>_5h}>P3&FA_HB);+f`I1684f4K z&#zj}H(LqOOn@0#M3H50Z(oU6bd6N4nwHckYKwC~6IiS**Rbg1i|?pK_E2F_Gow49 zyvZt;ZCG@pnNyk-!IIasu~ZdlqefrC2`U+IK6#{x%`-TLW39a7tU7VfR;THABpO>I z3ZT5}QDO$?6=jY%CQG0CQqn)Tf^YI-A?3vFP4yl6?IzS?#$;!OceA zF>_Ly&3M~zdMSgL*UQvnl*3fZRkjGkzx9(scL{_X^*w-yw2>tMwvC^D=g#Q#gqemq ziU%pa;)wzOqa7yjWtcbUOO@@~!fgaq&_yLBU`eMBMS zQ_)4D3gx50Y?B{BEbR%*3?f`ni6Lu8E6aX6aW@rSPu4U24#g92dlqwh_)Nv=Ya}(M%f>g2e^#S_*8_EYb8q({L^FmpuLwr;Zd0} zwYw_yc!VqVxBM$W@Ik8!<8IyYtc=6L;d|=vKxGOCe_#g8w!bc&t+hg9Q3eq!%QeSrr&+h> z0l2q)mP4k?*%_h(6aNPzb!Q8)9|<2ze<<-d{K9+g`xd)s2we`#>5nro8^P51+t0*o zCymcUIB`wSBY!Z7f;rAv1pxaa%rED>X*n9q%@c;ydNW3@-rTzp;JMZpzB_khRS;s} z#N{=XxJV)o?p}uK_H-h9ecOGr;j>3ti%g|z{&pFbTIJ+#iNqp$@Ed0l3O)(GOJG>v}1<&2PC)@)9))t z*mmH7n>@Obn`J@|X+6SVVt{Aj;s4-qv^4iwom8~v7EbERHqYhW91}BbgQnW=*pqtV zr~k0oQC|?iEn1Ea>`&|b%x{eIVjn3tk4mpEFiwv`rNg&v=#&OREQ5FGvAU5nH(9|a z%6UlHowYE1u5Qd^jygLH_C2t0zWD<VD9WTM2YfouY2i>Zmsb8+b9f%hC3i+mJ3R+U07p9BYvxCo7~BlrVE2Co=*R?g z)<}UV0`HmI@?~)|8~El&^h4-Sl4XoT1*pOX<9m`1j&q4xlk*JsdSLqFr9<=i_1on{ z%YJJ%z?6nZU4Lt*l71LhIi8`*xjc6$gdajT<_6F0n>{A?-FTb;_VLj#n)gUm`Euvp z)%f$^j=RCxCNSvq2b;Z#H%~gdC%oab04De=s&|vi`_XZx@QdDlVST!Gz+bm|@9e|Z zgr6<{y-iH(F@Cn*k@vEVpSJg4`1bM>=g+tGX|uj9?Jod+Zy&!X^qpqj3Vj;y7iCxY zjeH@#VLg#R-FKSf=fzX{s(SDMe0UagSr3?9&a1Ys$QSch$n{ZJx_fN4M`T%G70rOS}xgWAVgj{qECo(=5A7mseU!Z68*f73B5;hpg zole`2RKdfT_66sM~MdA-G8!$ z3MHq1+DkDobMayqXPql%(i`vlt2R}9#VC+m8anM=)jIhSD9rxq zh?r_iYYr2J5?r@DMmLlgZ;Ct|LVH|m0g4QiKuBRusj`gUstjhADNa#Xm8#Xt9ro(c zfxaVg;>}aJjcH{hfzS7ebkp{PjfMlv!5___Je~&|&RAd*udIUBc8&K10yHGk@$Yw1 z#hi|l3>P#^opu&3+6Iz%EEPK1sVq|vQomA54s%#d4-w=uNn;p)LA4~Yb5`riHoZGf zfk@QX(bQbVjzL1@P6pe+z~EgS8R_cwdq=3ug36&v>TRHwFEm3i!+$Z5~0#Y~=7GBapT|Fln>*0aO`n7M{cu%oxf z0^)};d0ZmVqawlh#-Uf4ZomA~BNUAB$GFQJ?2pTtHK}YTie>DB=kVXi(0)!#^kzV4 zy^nW2jKC?xCwUkE&eCu8$jJN1GG-LEIbB)z(%?6*2_EGNgX93Hc`WT8DRkTz1Cn^) zLw*>+oAZuNo@oc^uCt6W{YZ47FxYeZo!+}QU#{BZ{=zX{1&kZRK5eG4?c6oXSNbg#p1ETSwg*$|(=W`+ixK z<8uzM;Y@Vaf#1=S6`Qq)yAjB|$B${<^ zZPsa?xoaqG*)T}bJd?p$W^ffsV}h!yyfw2C`S3YZ(#Qz}Be+ZpqyCp``Q5i6w#kOW z!wd@YQzo=GSG>Dng%h@HQL+7(E0vN$XyfOEgG8M6emvY==FDnglnE+a@xj27unoAj z#(pKu%1YQ%%B4s6?M#*FPhDVQ+nBIPdmsVB^_GIr%uNY9kL7_pa%a?`xAf>i%4Z}P zjw+A%y$K4LiH|AP_NLGbBzn2PS-E~8^zi`P1HG9aWe_j*6F=?LhZ9I#FmT0hkC)RQ zz^mb@;Vwe(0O=P?r}(W)PW1(#VFn-}uL_XZX$=$BY!A-~`(~nH;3~nYdkA}|bh(le z!f?Wv&ZHjBTfC9*8#w_EX}mN&to^?NWQgvei0`Ovf1EKM@i!YhxB`X&hInF3K2+kfDlkIk6=d!(S+*e3c%>`U%S z{t#LqTKdLrqXS>&-W~P(v?WuxU=bN;E9qC8n+a?~cA6Ymw>%Z>6;9X zv~lMAoS#>=E?d{Mq7Ol>T!%Lr#NO@xznqxiT8KX|^$;FLp2ir9Zd!|dFEW8D6m z=h&pAgdA*lR!Y1XNeSQ}jQ=nI!(|z^4KSf?_>Zi)bS^xH5r*48(`jexyUzOlQS;)d zG3+=$p{jCteahuLrD?6+%#aisDsAxQ*TTms?c1n!#%sr(8MTeOjmdm?x?>2TS<4!D z>B;~Nz+c7SM=xH8IJMiud#G7{khAHIVe1ieFN9&mABTNUbs3D>6TyPrZ;PTL7RI`| zusoE%MLE96foG(}o*MM>Z@h@_;oR@7`ji16=)dIk?vxRD0zb(*s!NN>ux;#7`&k zTpa@7PlFS~UWSqxvW-jvN{P;jUf`+M>Q?F;;L065U6F5k`{@%|xoAs2<|DgxniF?x z=;sn(Yf>9CJ;1QIF5Ag}BQ(I#+z)UFZ_XfL#4ZJ63Xb~jioi^5&JDvXG^>BeMd*v#kkxA*n|5t4tWRuAaw3bu_yN z^Ndz4z3Ks4KMEK*%T;b4{(2=gJ)>^&k>qe@9I9V^9T;@xK!h1EbFBdWIBggihEwRvI)xtNllc+w=*<4C z&BMTZ+otj(-7VOe?jD`M-2SA5c4F*=ComX~03eMC;4N$V!*3&1yqtH>=h$chAFbi2So|iH9x_Q4 zHCzgfk34k5J??`+WjqMQU~ulpIwz2rwn-XScRozcVqzjZhP)0oDrv&9#Yi8Z*>`o< zz#n+JyCjg&i#};H1bJD)$kJIIBLzFzd%+SZ{@(v#XPpHK<5O;WzJqb1vkt0+LLMVX z_MiddemK4K-LPrfGqVmm0QhI<@H;yB?TLTNh|>l_PP{okWC85xECkzrhi<|NPTfPs z2aNfHhcOF1N=lVFsN)6Vbc>u)$%&sn+AjCu?p$Qynmiv;X2`<&4e z-&QMG{{Z9I1yr~_f4=N}8Yky>o9&q=_Zx}dfQ0Vb#v=8wdZU;Bor;*o8}*&67rrg^ zJc{QUpH3V8h4Xa(OwP$M*4HME*q3IsT)lmn`VnxS&)ahlc;~-_C2Jz59l(6uO~AAR z{!5HmF@%rKME^m?V~!Vy{!KD=m~7SV-l=Lc%+#l%nh!!~^&oT1X$ zGR}!jD7PbV8M^%%K|6RgIsE_!5A|ta`VahE!VWS#6JSo??GOH5J~9M`(ac?(oWRVG zQ;vIDga6QgwHYSHuu0-9i=4=lZRSAOeBq6wHc{0YWMtz-Y77_-lG_tDhYmcVw_gS(<8ZIslE43xv3qcaD9ONEZOJBJRxN zl@N?lYp3p8M=g~pNwmm#w6sL?`_7c+chTv$#~8w7;XcI~Q_KQHLK55H7kYHC(U%8Dvloi8?^GqOm1*_@R0aaw4d%+Pj<8g<{@|) zC*Dgjs3~YUW;Afl>@CZ^AmHLO2Qb0@(QYOK?RY z5poji?hJ!$Gm)Na3tSoy4QC9efZ;GgMIG--W|NP|54kCE8_{!zZcpl_mOY36;0)#< zy!|r~QQ(R3{e3bAZI))>@<(&EM=L#y|x<@s|~M&SvRysly;xF7qdVN^!O@+M>gW^2=a%ia8?O7ApVU|ZBy zmXH16zXG%&yojtrNBnorW9ZR|+&6#91rXz|7|*Ay-YtLwo9{RwxsBi*I+XZDoDSTc5&$1FgCx3)(y6SK2w z^+>JxKd_DSy+)J*7dyE}3ghxn?IRc+wIBSqeTX%NI?cT2B0YG1<=U0FyQ9b8o2i~| zF?x<@mVIX9C;>;6gz*L=<}J^)fT5V7dGpsGc>t#7Wizqfzf`4a8Xu~qq`!*A6Jvri z0Th~kfbH?!Rl)$n;LShseU?Z*`gIlv&FOmqu$b(l`f_V}9s%om8vJd5cCocEWKBw+ ztIZ`|^bBW2u2U!3>0)YIT`D(K$`3Y4u>kE^9edl|4i$Me?%XOCdBVtMdG%|}+fF&V zwvnWAOu=kW7s##FRid2i3YAB)O3BDIN$yAb^l$w2&amG9DKco2~z)TNk3`ETkLZ=^DhciWwUPv;e29|UiuI^mh z0o*bYf^iVuU~|qC*m2(YAU}kRDZuE?%#I$y<}%e&D+XaHJad8=hU0-FGVKAZnW_c+x;sAvq5^VDv*2mMRQj(l4^%&aMDTvLx^Z|^qE+eznZ zVe(JA^VSp5NfJ8-pr0AYHAbf;Z{N8*Xa6feteD-I$y3VozuCdZn8>f2Y4jXT`@VkO zS&^}A;nC`vV4b~Wq2#T3y+{;ZVDZf3i%_C5zHUQ^yO-C*tL`fjr{zQJ$3u@z-OhMo zxKw5v1O5ZEiCR0=Zf)gkYNg*`Cao_+P4V65_PIVjkLzeb$vjun-YWpVoyLw%=Nw4K z*AqQ{1}x~)0j}t(x88oKb+R*cJ@9iKNEJAks}xFruFC4N&eIJO+D&vtV0`L8x@POVLvS{{-)ZK z@TM>vL*{i<2JA03x0b)bjn{;Y~LX{7-q_}-vqq* zor^8cuE%i7u{?M_lwOH1rwAP#O&#QK%XwH2kwvR0ChOUj?z2P21VFLLcouArE%a~$P*F&G= zQDNDyyf zyS(m>Rr#rNrkfw$PA|Z$>s(8B7#HIp?%I^;))(Z<8)L}ra^ zcM?uu?Z5hDw{Cde7sZsYypWc~r~$B97?e^xmnSK0AoVR;{wof@cZhd=lrAOeP246X zM_0h_;SuctxWWes&7|k5qPp^}Td8e_cZsVWf;|NrP0jIAN{6N&H1Tuy)Cb>2cm_P) zI<&pBhGdVZ9e+eWAn_oq3)Cre8-T=V+e_S6zwCI8%Cxv2PNd)p;So(%00!Uw>G^E4 z#4ZdTI$N7d*aK%O9{%8M1dpXXHgHFxbA6Bh(U?je0d@kG%N`Y}V^xWI4RR~-e%>+WOPik|$7A=@-;JF%QjziDDUhG0Rzm zOTlF+0kiM~7QZym*`r_;XIF>6;Qte_o$YAysiuAPOz6!&_aKzO1@x8InF zM0A1GSM{d7vn*nSD=I(wepdv42TiU%;KHDB^@-~qs#A#4Zf&`1+9t|X_r)5k zum`k}RCSfz{6`*zIb<-x$+F)7+goxk!qAR-&XhM2V{iu`>9OI*6~B$op5(gXk&9&j z2_2qeIa5%2MzfWsLWpt)CN_*RV+bPKv9`32SZ;~Cl*0koVr$^dePVth}p|IV0_Rs=$G$}DCufZDw7VS@i@f^siGV#+M6FBr7JXvPT z4(3BZU`_=1@BqI$4g2^4Ief3?YX2270^2+#f65x8NY2#!{9ggG0^DsN6J0$v7E%}! zZ~yc>GQ4r7E_t-Io5$>`s3yypHmk3lU~ zRy$4){2P^VeV=n^Up0 z7>A^5T(fBGEz8WK1vyGk*?9Emd?Y}%*bp6c<5v=eALZ8j1!8r%KP~{Cc-SUnJyfxb zPV@P}eM>=f=t-y;IycW*B2F9CtWT+2Wb0WyjG{wblwY9?JD9bR2)zb@_Zg$XKii1B zJd!ydT`|0TzV~47lonrHc%-&NM_oq|auoONAPRj-%9qR07l3A%lEP^x#f+4RoF!~e zx5(y)wI4$Vt#8Vn!|^UQlnI65&-^xY`| zdl_(yFmIkA$eQCYp}|{6`gD%tyI(bn3|QC6?TrpNtotvJWCH-7m}& z19ERo!wkSZDdux8_NTAF;xRb)+dn<9jdanO_2{>=a%yqDA|eTK*P0&NoR!lX(!;15+^ zlCVoS@kXx3fEX;pq_C=Wv2A)ZF^fk!t~4_1!Y^G?*Ua`fGy&yznSDn%Fuy-LLGn`( zKH3qC^_fmmU~nCw=|M;kV&)!Mk?#{9d)po1NDx&K1BGHH#7c&ke+iVxS ztx&dOJ!kInw&iHLXg8ncjJg{$nGHr(@RRDzzBwN}BE>Bw%vRMsrHps4bfh@=rNUxX zFJ_2m${-JZRGPb=J!*`^~K)UaQVex52LGbo9ieW?Q~ z1ZUw#G5cN0MH961?LHMc#rLYxX>d*?+-xlU9^xhPSpZU;+nsJaU9O(Mn0fj&nE*Hu zm5awI98tOY-EwCu8A|rqr4n6_1I$<&^^?y`a#kVvoNv@Gl~wL}s=xeF{|b;%2iq4) zf!1|UXBlHEeB?X;NrVx5)yme!I7qXB^kb2Aj3eRG@WMxY6nga4;t!t3qQGR5kAR1w zT`r>zW>str36%l=Tj+#x4Z=rNk51s<{7>BU{V4v8Co_Bl{Drk1OWb=w*m#9LX8n+J zdr3I+N4D}qt;sy?4=H!(bK>Xd%?8gGXG5=o&j)@*9}5hpNE zRf#icz(X&`hgw%TXpYvP=cF1uCA*8Fe78H2P^kUONYxGJ}HovLmA^k z$QbCa7RDRzk##JKeAkwW+o4?E-I8?v0x-*C`CMtwt<})|7@tni9?bR}&Y2Rs6!syY za&?Z~;`vc0{_B4t>q|dQOz$Q^=S5(8XVQjAbf(2=!x|p-7hopuHUJ+mp3I)XZJM5K zfkyPR06UoeJ}XD!O8JH*)u-}9*g^9ceRg(cM#@TV#8x-u`4HB>{8anhV>8vWNW9%1 z6sY9&H2g9SY|h_+ZD=hccpjd1rgWlF%PIp#{r1F}oMtJ^cvTu=f8a5kmn_jENcjiG zN+$9{u0vt)xX9QqNdjPx`Palo=|eL!@CRP)BN@6)`KpNhxC5+$MT{^Lec>3$-img} z&kAV)9y~WTm4wrri`mKZKGXu8h&eY>#q1C5BlBWu!l}(wkmy|BQx^t2=*K@;!niTU zuR>~nlDyd@@AJ8gfj(*h1CO1!uSP;*sS1dOdyy+8;90hgnZ=tq_!tDU>}XLH?eX1& zursTq9|n+s4KAHk3|6>eP(?Zf+}b$k&`LaQ(qkp^Ses!BoGk5W6d8u@K_npst=LaV)~8^%J1YwPBlyDZ{|Ff)e)VuCZux0R@(&$cj287#n+$ z6TBB0eaq?$K9OG(i)qE#3Emnty7GE>0^@BC{|XSz zDb%<_4VJ+GfSlqPegI}xmQI`@mw59#`r)2VsbTiB#2Av8jgxXVWqFo#;O^2y8LiOZl8o5C6cK4_JX3P z&+>%94hhQP%F?jusp`VmChe|d;?0mOFXNocX@|L}ExYG1k#F|YFuS%N{7AIyLc*gi zCLuxEUrt*#Hk*bskzyiy_L&g2UtzO5Gl5~d;8Nm>ET<|6A>Cz5=aH3Kz~chc`)Ian zPYov_cskc6ox1QqXw&9^GOQ;I1|y#ILF}}32PV-s{HpG}R&^(CY$+mqz;VMk@M(Wy zZksSQj`YcJBc}%f0G^&{GwO9?CVovo6t_<1?vt#3y`?VvG6y3MZL@mo;!fFbFzmEo z`yfda{(v8I-xAeU4F(Lj07^i$zktMLJHiMP6n;AsDi8b~ERr1?$Sns^h2ShKG6s0^ zThE&(Q40oa6t9{P11rc-+3#g$M@b9OrnPljiBH2raCP59<XfaHIT+BLaK-q?UMgi)*;CR{Ot6v1 zF2(`1EIPFliEe^gnWLeKk*omTLI?73dF&{DW!pq9odv`F-@L?#&i*-X6&(;I!u}>WuX|)mOhA8qcM6IANx*7<>F@R-uY93%xPk!#Ve6W~S@u zgx&tIJ&=q+&9O|i2kVb5%|ELASo#Y(9Ubw=j`0RK{9e9gJ%Uf?U)y8v9ja8bIR9tK zwVr#oys&;s)hpXZJr+Z)y(RUrdcZLT(>Kj|0DegA4}rfa=Fh?&r*x5i*!>Ip$uTD| z?N2$1-2(p9>*c8TCl15Gh|s z!C7-kH_xm1Dfmv4=U{%LI$$^1eM(OZ#`UfT>7Pn`%$SJT+xi@wmwke zzXC+GYd=#jwqYRwnNF7b%iJ#kgPo=-us}|aJq5#t^`6;-b%mJRW(+&_zZ2|jYH&Xz zb*rdodAj#i5{Jo7AXJ}~r4SephO>)&dYX3TOeG?#${R*Q^Wefh>r%;6&yzffFr~NJw%xzGcH6y0h%tQaUD$$tXhv`rO61wIvyI@WL z5}iC79IvDs<}U29TCh2^cq((vn-x=K7BI6s3oXJAY=smd>_X}@gCW1P#|IvrsUD;E z2vIk+bPWuhChXI)V2J4F@L)On<*aZ`q^LMILbvzoNo8B9<(~G9#2iRy+F4HS4hlf1 zi}znyLDFonr?<%#dEF!%QC#eNz!_;?Hex%sQS8krbGy~I5Rz|OJVjn!+z(4>Hu$yX?*iOFUaFcy3blka4)sgNR#o1&wLWK z@kLhZ^@hX2l%6MN?$&$~gpaoD$e>|*G!&c2k@bk5xkyBM7`!ye2^w}zC)as>IZo}t)<@m_0D`!zhq%zZTZ zB-x5pLir{PkqtRiIjK%vE$ZEfXA63KbzhSQCy$Bas_4c4c@D?|3u*yodr+2tdOQbs zERRK9QPZnhW0GW6J`=kUIB}VF5*lg0!HJf$>tg9zH;?@x4}jxp0bvWziMKrAj~-X9 zsHei%tLQ>+)&w96S3J|+aQ?yAQgQt&Kr?LnU_nVwe?wa3=6YSc5Of2gdMMGm4&FrTi~dn6 z;quowR$c>EC+$H-`i(K^BR&RG8WE!%=QErOiGG(3;j`=yKWIuh7?Z@p<8i&w%@VLG zF5k0tuo*O+)1DL&Y3H#lB)S`?(Iqe`}VPlxA_dh>rdoUO#uVlqto3H$TDL%DZ6eCXN_U8xKE`5BwwNO5pdT zxtex{R)~XnK+kzP)XbIM%gi>$VA{>S;&YWf<5;DI*IKRWNPJs@Fr3D`j&J`8`Utx^ z+ECBmir4%u1L6x`aL?-hqRcv-(NZwbpRf$v=Akl{N>9QQ`3+Dp6 zh3Fh9s6wHw93F-WX-ZG2)zlX9-$8;zgjL!^327Sc zLck#k0=3;LUXbW0wpLzG;QizEJS~kp6T3vmsTOu5Ek7dqfrmqNAmzGN@HYdqIxn!p z$eis*l^$4HKQgYJY$aBRifp-^?ru>GJqwd?XU$$b1m6Rk#=+y|<^-+Qq=kUi0H3eP zw&}MX<7Z#ZfJ88GBEu85>70cG*OUU)7MqQPbAYn#gnx26+iboE5WF$-K9zicIR#Q4 zC-1#3S_!^|G1^{Fo>}s6iN17)rwluHwxcg+YFkc#!M0Ck86&aeL@AqFC*!M!G}7{rA%;AuGe+(Vc5(3i}a z|8A3+4dNXE|9fI*y9KQ1khA3iKV|5^FgBg8Hk&%K2zE=FLsw-U*vUq#OVYhA7wT;K zZ7%^Hh?VVX!=nDWk>ID|K!;&L*s6IN5?=z^HAS|so{yz~H%W}Zsq)((=&HJXh}dI!1*!|#l_j0cjo%wFD;L_02pJBPeiq;tQj{oX+) zdxpw28+=fOE6d4I4027|n9b9ZWatuh^KZGPW8P?RIFa5fK9fuDP>$pcr>Mo4!Th8c zgq;5_m`edRHi5|F+&zVy^V-urdBnkS_u@SJt0TL*#366hK^0+2RpS?+tvMNY$F4C3 zq_~|%f(if%)&-b7?HJFlK3vOmm0CY_4cf`PY*oiHT%O+aAOzIm$u1uLC|Qi6-ez*2 zoRrs~)~5Gt%;rI%A}$GEY4%K=2f&6x;oFJ9R1?@K=+ZT`oM|Apyn}Lw$P^Vi7H7J9O%# z9pygrILj%%_slrqgI_hrt#<*gt;+BZ^nP?Fw`3DJcBuXppbllTVoYY*Z(7k$8i{cx zAM36P$%%mf*r9|LC@vVtebSUKhV?5!C-awtITX%x(rtE>u*i;Ms6EuY<#CbREAkLJ z$nTVAPYbB1SZ*bE?sqWG`XCGq-qCnsoYlu(e^KJ-?j)-0a_^gX51;X?v~vTFQJnMf zDCSebOn$d7NqZla_&UsY;zU9SBQ~Nx&3Pw&9>ez!+h?A1^vQVKrcVh!6Z?KgWWTof zXG;EcIe)>BA?7{=f1ScNrg?hbFkkwAlH|iC{_K(au~YPAV*~JWoAY=u9-X7qGA9xO z(p`)N{R!)7{%>1(w|{u%a>*Vg;G7ufU9gD9zK@i+KO1uz({>iBq)?2z3L97Tw+Y-S z;XgvR267wiSNY!KF_s2$KxgRbb@5nkk+cQaBa$UTs|h#*vpTCc)$zQM^aM2d+qt6l zybmNAVlX3un-CRo_3G;n2u`E%Fc$fEl`S^!TGpMIeOK*O{Z|24A}KKl?R->Sg@tg! z#K3*S!gd?1sseXyy8Yv{!tuc@IQ>wjcSzs(@#|gk)>+9GGFvGi_`cNCyjxf^p|Yl) zxE7@NhOvM!*eECDHAw*Np!A$7kHMj&1Zg%eEg+bvotPxTn1IP(o*+x`b;<*P;TBLj z)#IEnj<28%9JJPRRA1?u{TVfzL82ncJE8-WGFW-{x;~y2oCbVZR>Bz65)(_LrAm*g z?qa66U&i(TAD%W+eRZn$FJlX@1#JF+!;MJ#LFf+aj-pnpT4^3D6wPHJShgaS=zX&j zJh*_sJsucx|BYqZPi?9@g%x?10MDdKT^jw~ZFv>yd6HB7<=0~&n?KRCWC05q#OMe< z;ytn1k-*l>ySa$&uS9#@RYiVk24~NwmI|3oOxs^#v4R1*t3C*n>cvYmRgB`j>&hg9 z4L33G4D^Aa{dARv!AaB*nWQ=oQ?p|9Cmo4BL--jQ*S3KFsS4c8(!@t9O}A!eY;U5S z;7zfxRmj!3z7r*SWlHS2aNpND@gZD$n8nix1| zkHOHthmu7xIDeW^za!KXTkiq)8$`XyZ|Oi9lVc(!B?|h zyWgp>{TzrVlgt=*7edah$r#O3sX~NC#Y_9l4Zy~t%6bY`cpWf=I!exiYk#33tI9j2 z6P`XUGmkXA_{00uB^NU{FAode012d_EB_TBtV=ncod=wUg?n7;<{ZyZsk z>p7yyjh{$RIp7f`)+IRGo}PUf>BKIop1+CVXGjbYfDoL;)@RRnI}NBp+Jcn}s?OaQ zv~UXUy$3vaWxEj-UTm#oc}Bk$xk5KMaxY_cZ615TmSvJsB3a&)i43MX8al%RBm8CK zp>eG_>=@@di-Yo!z_ZVVeB1kvQ@(khdYqCTSIB#+j-V4gxbdw-_I<>_K)lrAZky|J z(;RRvk87ofB-+UEG`E@l%?wB&K|$JBwWXsybk-a-~ec zQ&mao+*F1?DG_FH`~e3rJ*6bB7}2I)mfEg(vKjBjr>#w|7kJ2DjI`rTzq3+w>Dj-L zy7xL#+qi0+DUtsQ5MM{7XWtP!ixG>tscE2{fHg~EPliU5#>znI?(fV7dZ6unc!B_4 zfBOfRKUlY-&(eTwpqZU)K70K7IDXlx5OL!ZsB7Kl@56*naQCaGczd{1XcOL958yrY z!uXK)eV4mCdOVhA-6Py@LnylS#iMsPtP6Z6W%dq;GxqIfvK^D{)^PIgLw>DB(n?(n zox42Bzl*-nVnCkJVt5|f13~(IoH7!=FN5HR3UYOiZ}B_Pp3l`kM`x|?Ba^j;8P`YS zZXxiS>L>JsZ5mtAuZBDmKifGKpJCsOMr7s?;|qp)jDNN})QSL>o19;iU*SK$Uz>(S zJggsY@K$wuMu7+OaibrdPOi{*q`qJ_g^fAR!-g5Ezn88*_y~C0m(YHPjo?fFv-tkyoGDk=&nbjHT%VPn=jwQi zxYV9(z$aze-y1LFf^fF;JjRshP2+coQ+mf17>MFS34f2R{|b-_vo-|ir}kw^vA7EF zgQatoQ4EvnVKIcR_7p}3W(A#v!n&6K$=Wawp(`y)0OtY$w}M?Sk~k3pO+sxpduUn$ zW52<{H0IM`CX^yO6ht+{$f`K|>FBNHM?F@UnU6*m)8U-e znTQ7TC$Q)Xa<)dhU-<>_C|r>9>)lxrG-0t!Dh(74{-nCc%r$5g=vgBFrjk?UbP=IZJvQRO213d$kw$S~bXTxnr)Lt^HjcvX=YwT}A&Nbtxc zGNqhmC8)~6^JVU44bt71s)23gdyqEpLN2MDZcj>A(Vmr2cNYFW5F!2%vP#n>lZ^?` z16cqw5-6Y2(`j*e)Vo0084H?jOs z*dpzjdb&n9+Cb60?$Xl`0^)Uv6l#M5l3jP@^33R*6w@d)$5NRo2ZOE}xZPZ~hrO7V z!|TpsOrEw6HsvXCWMR#!uF|!ZM^s&`_q0`QTD$0nr_Z(ls|Bq~z(_tcB=U%K)S-hp ziS`?FlK@t2Y6#rKWTsz*)))iu>jG2l!A=dOYJ#WTDZ^Li?y(SHAT+1%mDtY7vussa z9j(A-ZGg$%699U{C|i|zc79QJ@f>b+5AY=#N4SkIQ5131olYM2^g5dM0ZP%S5_QzbCLfUDuveCxLzz zG9C*a0S;e3*@aEK#2J3*9CIr=6~I_QKy1%&}8dUTA-~G76_Yb+Ek!=2o(Si61fgzT<9vfum!-=>CQFA_Y{h= z$iXLe)8d}oJB8$}gr>kqAOU`QOoZX;8QPuzh1ac0cX|R50DfFq767h5TU9VHm=eI~ zYxqvHvNV$t97bTf$23Tv{mmbEN?Yb)?wVUiW8rCV8ye}lbt3JQ5;Iq{r=6@>H_A7) zt-N@|%(5DFkTcrFYcCLTU-tVR0XYE6!x64c%Yk8HcF>b-kCj^$e3{Bo_fakCRiDAflqI3(EZ`&F2xLlvuqTLUqomQBl$h|K|kA4B0lXTRcso8As z$N2#n%wz_GQ*L1n)f_aLG{U}gkRsqA-6<;OZA$tEHjlupsBJRf5H{P~7_>ORq_Th; z`s6YBO%k4!CDj602+2KmSJ_3W3!BKYp@T&brc5;%~9nUu;X3v zZF;H5-5f2r{hev7qCxG4goq4ez^6&(q|d;xt@d$N%Q*@a=kOHSDD*n3&dOPJbui?F zqiF1#c?jIRoWIM(;9P0txIs?`aH1 zGXT1=&z!~s5RAUM3N)flO6Xi{yS_ z+}R}mk6nYi&Gi)IsX0Rm_;A=}H&6MAgMwdZ=5;J*Xt&X3ORd08w4<+;bD8o{A@ja1 z=_*3Um*Z4jk>|yEjQs^w?w_u5(5|ANyGs<`Sr3Y9`6XZ#y>cCT z2Kc~y=h#H;#s612jw-t_pU)4cG*gOE+CJp`l=|=UeMa7IfKeU;0%;$U`61c+7$@^* z8p{hlYGXX6e{OlE5c$;C#{UGEB(Upj59DGP&dO>}`g+u`O6=3KAN*&V^HuzmQi;vG zs<$W1yJKHLeCtObFX~gwo|IJ;9SjK3xqHI4_=(#k4<&)6&|$3Y5Xp&e=DmP8IYwLt7DR*;Rr^LCFTNf>U0e8JmWdkkG0(06P&v5KQ=2KK$46mOJGwBVHBRj5;(pmbG(&wz*vrT@nD^1-blyb< zkii;FIFE1>!+k_*dH9>Bx){n;Y;8n3nhFs%0<05Y8+RL+fU7S$v2f{4?`1q5(X2J? zqU~l80)9DLl~Y{WQQW5z*j^e*%yeDf%plJ#pxh3mUZj&j*QABR%S3GuExhk$aC$sm z#yRoDsTlp3(H<^ zbt08WCCxC&<77qyWOl`N66v2w-c6M+fX>=DM+xc)&uqNU41$MFOJ$bZ9$8_UhPNpm z_S32+a{w?VCKF565I^Ge1$O%^vZtN;Ex+y52+ZPUN~>;LLM|L6bFfBNtI z$NwQ51qPuwy|mg8(on$ul_fo+@RAEUWwEAtHfH#$6QhQDMi_HPB~M#tp6$N#Y@uFI zEo|#2GaTLZp&u})eV+q_QB@ZOCA;fo7kqfmig&nr)S!6tWVEyxq)>NdvL-#Pv(^qf zmtb@a2-l@q>GX`X;%vIF&gYt5gj~nVBJ2b&D|gaDZ=1}%W*e8DKOxvba?|9N#xG}U|0?A2AjboCZtDf zx^3bSDu$j>6=FbNGQ4h87404?7;l5813XJis|{dMXphM_go-Oyu2a7W0aET8zLc{9 z8*)=ErC&Xx`s6Y5n;!dppUCM)Ay@EjL=$@Sf`f6X-s~vE4+&Y3>54__er-H zDw7YMPYuB-X<0M`P@4c=EPv);gWI{E!rXo3YaV9VZz5)r4bklcRjc4xm>CKkg33Dx2jI8g ze*gP#*wx?vxBvZr{jdL<|Kq>-FMs(r{{|ZV`0ck}@blFbNgseWhTjRFuEYNf8j0_- z`XY6PWlzVxyDoR`>DE)p-hAkA;~c8LXD&8cV>L~FnQyun?eKHBDe0rAd_C968ksvK zR$aE}-Zx@O7t2QhK(xeXTp#&p!+Sb@N?)t;GMI`!KBW9x$j9{QY!zd(W_W)U&XTZ` zyJu+CJwJqo>l4F({gAnF4jEJYO}GxjNGaIux$_UtPox|SAD3H?1Nr73kY)Z5c%}Wg zbr+hSVUzF8KQRyXSJU>^e>ecQ!iOqfxqeRkcS^6r`IUyx@i(6G`?0?t72(T-=SUwK z*|WZ!&t$`!^#ftQ=QxD>!HMNtkDn*=^U=LW@Z_*P>aPzWXJOP=`k~~Db{;oN6f5zo z5=X^jq>er~LmT5DI%Kre+T~s*>7hho2bKM*yM}zoIHF2PiS4ABZRlB?K0KG^w$=d|c^r+6&8Dc6&|eGfvlt}BH!A7N!;{K^J=#PhyX7|NkuP^=lUgx7>{~jMi-4LTc1?(IdbV65*KY-k zcG&G_2-ZAH2s{!fj#vCLyyRUol~02XGedh8mwe%A@05X?_J#`^GsRR@2?4XU)+5n; z1UJAQ+z*CX!cha1s$|^i*`KLWPQtw-dOYgg!0MsO$gL?|QrGlSQTh)yRqI=5V|2t% zbcb0T3~*N0mj?TDFWAnx<`e&@&Mwl)^b4Gg%T5_v{(%oS3`F@e)WXgZ-MK;BAN|e^ z9)!kET+zCT@n_klTP7$gC+3ev@39#^lsVO`5g5UQx&uCrwu zCl+I*rI2MgfiTFyn+a{SrF z4X1ca-Q(hl6qCaU-Y1D|--B0b*vbuCCG2;bjiCno znZ2j*^aF1U?h@qDZ3CQ%uvG#8{^)XC&291>73-o{vgHdy!G?auvAjKttQ5SqIgzl{ zVczN4!6khHI!8-peGfRQbN*Dzla~ zp%Per>A#woN$I6W(i12U+&DPD<6oQ6RP`D!J>E#(lcQ3nP%{DNHumaYuaH$8kl00& z<>gip6X;$lYBZ$tjQ#fe|MT}>|Mu(O|Cj&yU;QWl*}wbSzxn&$|Nh6n_wWA)|HFU( z%fI*+{0{Zc{@E|T^8YgUfw`(OvQ>;9#+<)opk~E6>h%`<#6Td}6T$)92*qGFQxWff z8%JJihG_-~MfoMbxz~M-tcJZDW8gXI7F?)3sXUDeWB)~a<7A7Kf0(|ox^1sXyqNO zXYHnN8$T1NhL2LE2mIsk0C1d#gI~+7b|kT!C}#>a_h!s_PJ7~~U1g+j+Qw`sUX*4q0F_f}PRL-KyVcf0!DbM~nTObBSL5AZoqeMm}%rVT}Egj%u_+yPng`<*$6QW29R0L=-PVR4BUhiNb7}WimDsb1~+NyT4yYZT@oazXGJwxlj%oYNK?*2@@=Q zCRqhtSULb9fCRHN|3sMAe)J6l`B}qBN1m^}VkCe@;a%?#YB&|faWXdLHehZMf$LQ)7W0wQu zeOMx)lD&kKn`LZ(bSX}nfjMZo?Eu6}{_Nns|G}VEulKILddGiU(43j>;RAs|uil=% z?L+@E*tQK92CT2XB^*J?imXlG2g-uTEu~5Eisn9S$(xwzA!7iRF&(;aaGMN@5<@E( z8YsD2OG%Kl5fAkFssP$n>tI|4g4P~T$kE;;rqwbEFIZftjJ1`j!{s_nP{1p14_aWrh-vuq==zzCc)ksMl9~lQAo~+65??) zIUQA*Xkk!999J=Ov=B^8wX!Y&?P1`OnuI}v5ud5zhIZ`6wgom1(`uJh_GtCW(cBeX_|~Fu-FhTJCG^*k|cxC|Pqf zP~>cl9HA69M$GWMS+a}<5!@u+Efygfmm8=_e5eRzgM;j=wpK}a6e)oUGbYkFR-@(e zn8A2IH8D$~2jfW+$IK3+aSM`swiLk)gT_2Dd{T{{TUof+L^ar^ugmy@IZ=%UI#J@B z^zMQ}2B+LXB%qC3u8ac=EnXo~BnFMW(8y()5b(;;tQ+cW&n*6Y$I<2OJ(cbM@Q;I~ zF8>I?pgJ53YxTx(_x#RxoyFHDi<1#0I{#Z>DlBXs)Y?>qhXcSf5--;f{qT@V$gFG$ zS&)vWLrIUAHqvFe_ic6?eeUhQ`ijLJbAkq~Y-84i&3piXfWEQNMK2{BFlonj$s~C5 zD3xG}M(Bx^N=Vg+4I`I>3weZ+q-jSqtF{f8AxC_lE=bZCX|EC+x~GKTPD-DfBm-EP zV~mJIXv>Uzu%aq7jC14=#5`I7jj;NJqJ1ff`{>$CrJHEsRWpC?Eqbxxp>RNG4y3lw zO1?a0St?0{Y&zyjUti}106&U9*H|&MCBi6&!j-F`sZ`FC+wCY(Y=B0>1b_LSf)* zF5Ejfy=bsBLi#P)>%ya0Cg&qJcF8Nk%1iY6ZZCHX^8z_QEuLH_C7q3;}k1!<`LDgKr+`HQ&wIX zFDmV#uOZmJK(eSHf1ft%`P>6?vGT^+}?7vK{2G zj?KJ5PBta8%D|vRBgQgJM%P2`SrmgVLXD!0m6+>Y+UF$6L|a54XC>`*2nIMtn@J7T zL>bB={UI=PsT-|kzzj$FS&eLF2IrUtkjh$@&5>Ql3~oqJyA@+)D&lMM*jjX(-v&($d!qXeF)bzasGP!lk9{I8@j3Tu)m-(QpooX5J18=bL+1>xw+ zK`zNLbGbw4WhTN+BwI8aO*~1)J;eckA~NhJxI|Xom|!-V)Wle2!~mSh^Kxb4@y(R= zc>QE)v7Tl(25rPF(uw(WXIRUi(gCwj=p+! zH6i(~d4wKCQ+UMymKF-Z9HGPOM>29KPCmtkC!Isr)t&*6Y`E+l0w)sF1FC=nW;`Ya z67laC46Atie=ykbcki$E`n5XRX00!s)@$|tVEdVWT^aTn(8vhdiYGy6iZ+}{j@G4M zkwj`3VeH4720$watqPV_9^-^su_5U3U@0nEW*9`~D|g>TLKaY=-MWyMg^Jc1E`Uo+ zy6%H;vBQ!$GK%b=-;V$q+Qvyv7P4sx&~ zs6Sj3G)9TumX-QYDtu59k`4xFme{kA+ZiS$jxLJ;V#k=I!O=1yy9v0)TqIHu$Bf`+ z%)O0>?S)2}x@4%$nG2V!bU}-~Y28MLC^M}rjHLG2Qx7n$EJzrIC}0KLJOu5rg@l8N zxU%C3vI)1ygMAY)LX-zEskIX}O>z<1lrt<_*cl27WbLAsW?>6}DY|K*JOd!I(4D05 z#NHyCqmyT7JhCToBN^fn!k~l1`G>9*yjZz>D@&}rGBXv!MTerh zskG+~n;F6}gvs6#I@q~EjNl#vtC4YIwY4!;h(-dUVN6)V42l|YD1x%*SUJN{qfCn^ zF=#Y&Ngx9`nPuI`*<1>$fRYl|6bfPld#M0xE(K$%+!W8>8491+jR`F1I|4{Q&kBtJ*8Sj6 zZPZt`+;a2poZ6i4_3*o&{PSjge`SDnSnV$DIqtJxn10-2_*DViAf)?+0tFE*?qb|X zrl>FXkfYUv6V|2+kCCd`>tzegys!+QnMyZ4@d?4~)1KAytYN|!u^WwC9?+uP8lzq& z$;}Lt>|DyRV_u3F>{Db&QYQyeJJ=_xCJ8PAC4QPj3Z?8!$f4Cg0R~5}KyVEe3w4Zu ztmXuUMJ7ZyiQ*)})-COGOQ<3%Yk27_xiDlz@N~xqf^P}df?D=5gbCw5WKKcMI%-E7 z9zs>6OHMCXCmO1!5eP~i>BT7$5_O%=6zdg6R4xft76t1d;c?t}nJ+PoaNu3SDGlQjU5E72rOoXfQg*26;StdYWX^RL2VPq_54l}cwu(yb#%2D~Kq~Mj0PS#G$Lv~1kj&UG>TL7Be$*|1D zYZ8$&*T~ii#vm3bL^pZT3IqVDz#)s^7o%litQjl~V-$JBVSfV8GVrkIu|%91N+Gcc z(W4E}qgLkX1v3B}W+V|MCJ&KW3%3~=A}48)^1u-^HnJy>DC6iya1M+ybbW}*ZsHb_ zilL3CsEuJ@B0|MLN{>&AQQ`r!gQ*Nuks=wgG;MUZdIe$`3Y!Ic0Tv7d0&v4fY_pUJ zG6B2*m32Z*437%u9H?ftp;<^dbCq6?Bepx2~` zljOw+2kwo>$>!bx8QN(@j}le}GWuE&ZPQp|`0n}$PNbJXF_w2dY>a;30!^?eAY>$X zRh)GhIU-~Qq0A^nb<`3fN~80*Msz7EM~9-QPrV}3MBL3rU&@ z8TsTw+t`bZfK)yfkfYMwB7SC-CR?;dBU+9KGuNQQs0Djy$5KR&arUY0R!JJb;&Du% zq#L_#p~rZyjG?CZ@#-};v2+JJxDxH{yXaC~lszS^GI_2Vmd|LeK9Sx7_}m!UKAipnTb z6ylURV^TIIcWDn$vnN$tu4t*PNI3MIw(6-$ z=^EYhP{BEjf(Ra?M-F6O=bWuuN46dhprIuTg`y})i$SeuoER*#9ci6vOHI+oWBWl~ z4(~NA8lY#mFbVr8VP+D8BfH3pY>-|yfn6o%ln8yOfpI~YI+C+QXjmX#ZHc9+08pG&RPs4MV!CAD zbdk5f6eZKLA1DjlustouQC@Dz5VncGc0LP202x?FL9)DPNUW2=>>Sv{Z!9R_g4G+J`jE6e%V!iBZCCiRSKXbLz(s zoRW%|fPLR66Re+qfg2WI3M@QJo+=cMUut}PauvyE2ENNv5iH8e8%rbcr z0X-U`6}h1SnAi<*BoTg&fH`5Q8!4#5qkJA~Rw-mwD+@&eEVr>QCU0VCV9d}ev~eib zoD8u=!fZssMR8t0vll5tmB90g0nIAxOHqP29b?=iVoUryQ9#EmI0l9}&e1Ygz%pYGp6AZC&3k&Ylg%Y`$V5cVH;q~VhqJ~cfff)17$uG-EC_8&#WxHYu`;2m zFe69&6COb`c_EKzV?`*BL5O8q8EbjQl(88f!zget`?&A*Xj^aK z?|i{*^Ru4WyYQ>c)=aHp?n-U#>JzT~QT32@aKY~%;YJ`%gg_vV zVsT3x3SGVw=jo~!pv-;D-VId9SP%%Y`p1TEFVt#&zJ;l2AcfF+;TZ#76v4$Zvb`Y? zJPct8lV=(cd_JfNL7*Dg#wtbk7)S_d!sKy{TJ*Ir7SB{dqdvDW6^)C9bsHnBgv30e zV!(@1x#LBYfQq4GC?DIG^QGFAlVQiwI$VKRj>#JNLTo;$$+875Pkc;abPoqz?f+yjA_ z%V_jMc2dI_!cw9!gjHE%&jLqokywF-^xTEPVFXpu;)WqYw6rXkMu9ghjZB(Sh`C7{ z0bzhmJiOlM8h{s=q>90c{b&zyY-bdd8u?mUf(ra$ACh(t#!hDnBN?WV(Ez%r$cbi= zm$zZTqULf9i=`9NWZ;-!E|kKDovg|=w|sMadMGA%n${$_Gwdm3VzLbuLYGPs=3*HJ za}!4kCKnNusUf*Rp0&<#0@B5NG>s|Xf0L@ko(2q~?*GKo9i5e87?i=fSAsBHDm~v2 z8X^EAyj&t#&A^PI>I2s_c5*200O9~CO5~H%gV4HWp3!tb$Rk+PmZJOVkm^#d8%nDT zyr?W=loW|ukAbq3OX1wZ*n~7A4AYS+%n~a_jAsc&^UyGUngc9dOf~3BN0`Gl5rcik z1ezE{n#HwB<=O)YNSHh<=O zSU`Se0EHe0iU$2?LEu>!G#fyY(F5Nx-~-nfK@wF8hbJVz;Ri>2MuAHa{jaE2$7cGX9MPi897|Wac2aJ;oT1ikQXt z&E)w$*hOynnMi&<3HXYpZG;=8(z$_|-IaZeEhrKolnsmNu#XKPPmEQ-x+^61YkTmh z2XE;CN9I7D=zh)sJyQU~XYa&E1=J$>&yvR%#ZX4GD`mJ}x2%htsSCF~X2fHKp`MTud0aov7fl%eS$^6qJ0P@+^`EmEhoVbdqZ9<@?Sxz$@fd2a9OYp@ujgOuDM zPu9y}Gexv;EAI;s)=EY)B;kvG`-ZU)@oi)O!ZFpJyO5AHH!;BPlj4_(@K?-4f>JD1 zjhn}zDIFLt)`~(SZdkDfQUq=4s6{}79#uesHKM6$gHT+v+D7wi1?g5gz<^q9)}~98 zh_x{dvhl~{Q`GZGDr`i~?8>>w&<)f!Pu2|&SaaF!EAPygR#}(92oiIk05%534mM6e zNi^@!=T)XOn$L7c{Zv3jr;9=0;!`)Rv71WDVDP{u5cbe#I}6Lc5j8t+(+ZoMa|9DJ zinU_H6*wgD!U+*Pd4v}oqoqhEFCij^Su(whU%17KvNFr&pB7gSN<75vjCCun_=cLF#e}1Z#Uj zSWKC^%6zq#*2)JrP6kM9?Bwfcv^AZ)@?D4~&wu~}5N3ilY65kyPy->lRRUzbfo8HK z9D59g>e-f@B=@eyiN)fq@Tv(h5S3j*&|rCu;G@k<4A6W{p0omEt=x#zV!p=G>J|4e zv|8xM5_?4nQhJa){}WvCEsFLbr0OBQ@(yC2<6(Z;3vk&$k#oXeFR%GgC z6q-wLWLiuE}EOf!J9jZHQ5Hv3Xb7%?fvR!%tpv5cW@mbOo`&icksRj`aivh3lu zL@eNHK6#R`8I5S=_dy^ZPup{$j~}y6HE(8o7y;ljTR zR;||>)y2Js{Qjd3`{HMWrg4B*ASoj8DGxD6*)khu%%h6LL$%WF440RA4-bD?l?5dq zTWey$*Vk7ZGB>*fWwh1D2qialGmY|{0@)3zvY{(gkfS8mFONEyH@lAJr*pdyp ziXtOA!rWp2jg3eHZNVAUj4+pn_VL1SewRMRsq;fA1FF}mjb^3Us2;k6kTpj?7H3Q>6EOp~3NhelGiTHZBSdYO!x}KRf;=EnY&9S_ z|7TMdRupk_dYJ@5%gFZ3eOwBr6-Ks;I0`8`qy#3w08Zuwi`Yw5D%ud)@(nQz7r=zY zX51o>2~8e_^5HH@q8TmyiO(^WD~+kiqPQ;uC$=*4opOx%o4?^OZox|+4B&-zvsh*g z9Q5=v8xAMgc-BIvIf1iH9711Ql$}f95bZ-~mk=e!VknLjHki>;L1J`BpbBBqanv&C zJTMv4h+BrhJc6Z;3}Av7Mm7+dbHUoZt->r+ZX=wWc^(RKLJHR1p zfnqMB6$t6(`HFA>DCNV{W70`XCP~ggr9b(nQIlkxZ-lWN$5#X1Rx2O`ZbshYN~`MH z^A9LFFg?`HOK)HtZ}AKq)C--_V@#){DljSPOvPGQ0@CL8#^232gPf-470{vq_=YN4 zhL(!^6{2YFgu*#=ZeZA@oO5m=c;Og}kWosUqA3W087Uggs8A#3AU!R@h`3!TN^b8K z;o$WOT~AQ4#eu+}nj;t^D#GM|By?%+U~;3C_o)bGv~fF4uN=Q2C7)L4XijFUx#;4| z&G_X7<;)D^EV{uEPmTs`D%F@x)q^hnSFw)AUmieVV8AtB9~UDG$F+YA zi^1hyZMf<3pSIU;T=>?vmoL6(x>=w4&EKxPg|K|1y0AhGu}6T!>o`@_dpo0yr#!3c>` z$e0?}f=ZAE!bU*(S=08xjHsN^xz5`_pqQl?qs>LKG;10QFrO-B3!pGsxwE$sV}#@w zvs?t)DGHq<{#`|4mUlJ0#y=YlV`ilaM8E?Al_V#AfOa7-w>6{#I8yC~tN{O8UoG~? zr#Lf$!?^r2H*+rRQ|(LQ*qt!3g5GMLDsQ!$Fceg}LGX`9@SLE6cw!P0T!313DfUbC z8)GkG9-6+R9m;xudIf~mCiA0e7H6nn4<)%>;g^0+>I#PfFt!Q0rV9rk( zg`%PNO6GYt4+punTyN!a#i%w{jJ69vqiRXAGd3SPrZ{%XjY>mCd*xH8_6UhgkY}Gq zQ*b_sCR;bvvyjxmo{FMibWnpW=jQ>=)MT2q=v5r?@vkG%WnyBQb>-6}(3clGXard} z^31|mLASs3B7wWqh%v@_c`C5+me`BRIP(J5*eZoY3f}$_lgmQHm~U*jRh+tkOd)nW zbE32q*xZ9}9@*OXwM;h5AXR}wLu$+|IOloB*9y10RgwsUv)_Fc6l=7lr0dC1xU*4fjm zJM9(;AQ6ABn)<|mt-@w%CuRc)y|HAM3tDDE3~P?b%S5!MBX>OccJ18ppI`0o9rovY zm8HSXFJ9Q+wiDxFCKduN=4%s!LB?*87_QErkkHIc7Zlqsg_l7r@=zE< zi|AeV5+HE3C4(e^9TH)|(D2;N*R3UIx@-_G1Tzd+LCT?%!ip;6I1Q5vY@!!=YO{ub z1GGXjSb<4FOOr6B5l4Q^BijmI<>-O7fx*B$EYSs)DsuKlFe^fgWfDR|rA^u(Y~Rl7#97NfHy6vBcIm zqvy|)gbLN5Avep{o7B?+2m~SL3_3)UF?We1Ewhb@xMM6!re>2l1vX0Cvn-j>(l}&9 z#@GO?$Uy@_k%>!6Lr|KoA-q_NIE0b-NMI3<$b^Ck9&{oGCD}$)f!f|R;43fcq|H1^ zO%8^zOY#tRL_AhN2q!ANA;y6oA0U)3M;yyGCCxAeHw8AS!$=a^BIO-^2Y|^2gESy$ zsSLJD7Umc$n8FlUMgz0A5FttkUYbEh#puwKtoZPOV}mPWJg`-(^B?-h#m%=4=i0rw zRXe|S(b88hsWuvjJM8x0e8juY>dnpJ&jR2I!0u$PS1Y)y1`EN)^xXWD4xwf+j;_9qtBg?<5`C>@a5FTy^DcHqs8*J~cG2R_UG|^v zJ5R)1@Y}EEHQ+5(-5YPX`I&#b?OA_(`)QBgcfl9Qm><#5nO6o5WmkiNAuuUdYN|7z zZHgOBtqgjBtIp2y2dNtM;mq{HRBK^sx-&JiQmd}i20avV)!Lcn%<^TI{`$$!=w173 zu9%D}S*VDpZMa(uHMFk~qydt#DAU>>^d&={8f<9`LXeNIgc@zVFb?!bCo~*32E6Z! z35JVd%hF(t5850t#pI50EQk%GqWaDzl`+vcQyvFgW0+ZTNXD3=NAL-RBKi?mcbc%l!Rc3jEH3rq>g4&3_#!}Hy9P?LxSB; z%UIGt>{COPO?ijt`+=IEGTewBW^xJ~{4$Bx-RB6a)d*I0gh610V;I_^4ZU*-ssxGK zN(TuHN@lrBXcGruvAz=m26G(yef}xmdSh_YuW$XgkG0y|-B2 ztT!v&?x5SP-Q$RRzVek@&pK;rc5Tr&ZUk!ODqG zuAxjt4#l3>W^9xsK4hp?r%pcQu=l;Y(r#61gG#I3>kRN|#NJPTeDT6>w1%~AyS4Ez z-&jB9D123*vceTKNYoBLw7F)r%G~E3OE_JRaUF(LmrAI)7yd**cFVX|jqA4Xx=vc& zuJRHI^BMH;N74A*;sWOh9juc1(Tctvz3u$ZVnNtj=`0Qg(^E4T-CgH?a`m&GAU^2T zg-syG*4mVdNR|;-HHfS!0eV_ivI7>O$cYjvkA*lL_2udC9Rp4wj!W<&9-}cY7~712 z)>6)ImtyIdKSKZ$7QH@64hFlv^6gdpb=XS#w5QEMq?JAHb`ohk-ws$eI`OK^81h$g zv0S$4k=Gx%wm}81-17%#aUF?2Lbu%QZg|==k9^bVh=8fk-@T`M`z^aJ{OYbRTrfRs zv}e~XY`N)!in$J}XM+D0WXFrgySJT&}?BDsLbD5R^Cl}C&M zxOdh$xF-5{m)_WO`P%22Fz%+r;Ipwg&fES*R{;UeIJju;SSi0ZXpd z)wx(?klA^X<8sZc*u-g|gZBB(5-@F%n5;}4nmA^HQe|kAYvqI;%8BQ-G$bq@EEQ5a z^$WW^p}g%z;28jd8-ZXMpQdOKbkVCMm?SrX(Kv^VLTezeqNI3MjiFvNM-Kp{c$tZn z&INf&7MA(CGv{m(%Be(xW>~ag{H$mxa`Z|f+K%Z7c1)s0TR0xzwV(h!t~0`%Mg?Ii zkQXI`*?)AA#S~3`sTDzDtQZHyAI-cdG<_H)Vwv|C{1|AY(J=NghjBp(IPs|@#Aga& zik6H4J`y(pTckZgq&ft0g@0wO;SMC1A&lb-6%-jo~ z)9>iso@R6X>t225dFKtc+*WH(TWJ7Q$D*cRt+(3U9k=c}=Y8wneI{?z$7-pDFA0N( z5%HKtd>ns&(qmm^g+(oFVQGn_bo3aLCM3Z%@D5om&G1j4^l|dVC>U8zK^fpfwDUHbl{bp~9e>Mv~Y> zgR%JQv%F&HZ`#y4;eH}lX;v!j!C>~Zr>;8nv)8}zO|$rd_w>5m-@9<*RljPTasp}8 za6!d&yprNxwPJ2|$C7gZ0ccPu@G+-71R>+o#X|bnFxrqb2lt?TjO#({TGbN9O zE!rqRoJ9a3rLalK3Nc6PuwnIcBaC&hFkfn+i}nG`gsu%X7G4nWVvnJ64(`s{yKex@ zj|9h-1vNDIcuj>EI+C9?@;>1by!a%ICR#)4wAeZd70 znXh}Bfp>5qpCn5yd5shjdIBZ>0X6}$H6pcw6pd^q2#zU~l!AdUF@nUykD3}$AAYL+ z*%+-j(?-3h9SK~b%0U!Ix#uj&%;SzuT4_e0#!!gyZJH~9Ma+y-9VS+QV;r`~DhR?+ zHWAD#6Z^p`9>?$(U6Yrz@QS$@LdJ*!ycXMNDo1ZBIFrI8^?&9Z_Q@D<3J`~kK6wl& za)}A-ED7}yo=U~HIztp5BUFTdLCGe!XIltFgHQA?8+l(AX^>1>U@*>+UR(!r-G`s@ zS-SknJ3sfO*3=9aPs|J-0`!~h>091?_Hge$zI%!dzoj!hbHtfv^t#;!-sXj)osop# zHA8KB?v9WAYj5+-yzfR;Oz(p#6XcU~8B+(VjHOS4*!Tej-blwA%{Y<+-U4nk2e=7j zc@Y;H`txM8~86zkP3ac4mmT zjQ8!^ef}53LhDHZvOeHU236epGN{)F4gWDyh9kBZDi$~aolt_9NG+DYP$IY?}CFtIUA zh7j5sYDA$4wvvs4W)ZDKd~y&mQAg2e=44D1_7VytNOV+c3K_+tmImmsO2H`VS)P7S zxmGA@vs}_iBvRv>EBFnPNpIz}IL} z#27P-O-?Sa2*nwmZ)Sl&S*#e;8xyqjC~Yp1gBS?Gjl4F&O*M(K ztimvN&PdP=9HQv!1xPf!C1gySbQ;H4p)9eSY?ysYMNtSIw-7f9T&I8vgsK)#VXro6 zq%FiU<6NFbvKUL;IA9Q)CQ5Q(xMOZ}a1&^;W&RPRsPta2@hVxoqGg^=C??0NV5Kg! zQO*Qt0kil(m#LVTP_WiUFK@A=<`(>ln9>S@FmYozZBa6|K@;GTdxE8Q4Bc3a-K{kzMI8?}{du35R^+V0k^{aUqs{0Xa1`OO-xb};!Fg8wZXQ%6At zgU+w7+4tRV_inkR+UeIe9Xa!`hfP25q1CB2Em1nGo_Ph7wpe?PrsvChKXB23-!R(o zAOA5k)$T4Wt$FOzn-6|a`^4iqmwc~2JG<-aUq9rpPOnWhh>2Vf8f?(UhKm-&s@I0S z&f-t6So---y0_k5pItTgpog{|a7wk+qT%hgRO&4T+;lj+nFkQ?kS{P6e|gp3%YWG4 zu^oil_dIs?lm|~8bu5^Rtv(IlmpH2U@^^J%anS2j)~~NNTa{j?d-au_U;M1QbN6t~ zhM9*w6cyvmFrtSz{X1{(EO&?h{flOgtN2!RIJb3k@77yzO@=GS%G%YnbsG>7*BHoW zxVUfmnjbCy;_CjwVr|1=?fafM{lJIRre{@mtAC-A%w01P2Tm=%(Ow;(j?D(YkKXC& zo9DwCuBI@7+wHY~@aWq=_Az{*!+E=tzp`4vpx?2zveLze7sEpiug|Tj!Su?@yPJQt zaLbmt$33xq!u@&E4&#vEVEfj^D=uBW@djK&*4Av8KJhnZPI^$ajgJ|i)b*G(#0$;d ztv4_H__FTyZG%>;b@YAa9&mDVLFWi2&m@YaSKe{_Gs9wY3=R#vR0``$L8oF`El`R`|0_KN z(Ht1bH%C7RrSZ3#n5&IfsAmqB>qq6|C77VL-W#vBx@EJ)%xoBKA5R}gn7rUFgqVPw z<0I^T!K@Mm)CnC{(MH4?6U+|E#(b^*!iB)`*|}T@baWLw+Z7CpHBn= z7|!2<<4AYZz#@z%!O;2ZZh?dqh3Gk9cSM7y~oV)mpM80h{Y#Tfbm0s?VtbLy1#fs`@ts-ySymi-{JKMYP_&7 zY~g8Ba?&-5vH_%ca;|W##<||-O)2<-Fn{!2h)R)8LtfJG{b_tfSOW)w&3bit@6BhP zvFGFG*Y_;cmO7Pwr{8GYe$pvNzT+=fJ?0PLghXvFGLLGtv-zeiXTM|LMPHj*SZEI_ z4SWg}8_s@b^W>9B)Yj`7N3tqywBVdWeQDpf{fBoCDPk1y#g9_aEpDnoKvGDb8-14q>tz7fp)uqKoe~8aC zcH-}w-S4C${{Ecisx>z~`gf-Km3^J+F+aJoea}r8Fcp)umao3*mb2fz@6zwLmsV=s z4nBO?Q>$)Ud+79|9(|89-rBgw5yKwuN6}oY-u|+eRsQQ@-aqwkVlze=sT0#SQfM`B(fwI$VAA@#ly6Mf1k0wfN>YbBFotG~dY| z40pcyO`S`=+nt%2KK=BKe{$N^*POn5$v5%mES5S;)g8<2cbtg3mg@K%Y3uEG{>z7U z{l^8>+iz*~d%Rd1ROe@>8~1*|p>KTc^b;S?5}{6DMMC(Qti?Ot`~KZu_hkx0u~d?JULpSEG6F$1B+q4!c~7FZ!P6==!L?WJJpmFlHea!#B^8O@fnsW+Qeb%w(Oliq(#MEIF^IPf||Q#EQI&l8_6` zIA=oij1}Qs9&DtATw9ifOLR!A#_uSh=OT1oX1f=!{6m2%Nge z2Q|*WG6$P2qN+Jo3>>tj3b>K5lq1K2HgOxN7&VzbAke26GD2AOpvEM2t3s@BMod7K zSd_>u-*D1^OLl5dFH2gXVGc!!aW5g2yt4c}-YD{@jhpIF7$84if`^EOPQrIdoNB?$ zsVa+5H&wDY4~rRD?ktU}E^MnqR>bkh94IZyG{y9agz}X5qAPEav>fmW0F7a)y$K6$ zIf~(W_VExr1)`U*pc1D7nxCUq7o(E}i1?WgPDnjqj8)9i;?}=;Z=*TI3h|C@D$&G0 zu4GzGEa`TfbIzgfKgZJ=3};R}an%c+zw)7fYfjJM*Z3i~GT`cfx8hf;JKp++Bfs($ zqF5l5f_SWyXoh5TG_sK=ZDNu{U^!{X25v6bz0^4J9t^(63bCSFFm%wv#+!e*Qrx@u z_S4_E=d+)ksnzi-^8H$6w!IGT3orcSr<QrNBOFb(&nJBU-bJfT$-ZigOcAWpY z)&OroFU_2A-?@iB2!Fv~%^&_j^`7_WZr@j{HTRu&-t6Na#rhZo{B?H;`tzUs^yb(6 z`CNanW_oS~zl1Yf;h($e^gCBvcIyjXw&_Vvt?lmh>+NQ5sfG-&PGwNuo3;4G&tLav zr#Bb&%+&B(Io&?)(m^IztnS#p_^FTI@Po_m^_h=1?|U5Y0^+AD^>(ARu++yFgd11= z>drIXz5Cxkg?GPk>wUf1Xg8*(R)+h|J@>}zHXr-7FYA+sO6|t2s}@m%6%16h&Tsmz zY~O}=yzBLPZ|{6#<`5<^tS)@xTQ|P=Wz$P5xF*KEJH2KLU(J}V40=~zwf*Ilggl%4L^L;rfAJ z76BgTQf;u({mGR#Joov>y#4L7ulsY3tDXYz`NK^wdDWgTe|~KX7lyc8z^63)fTzB7 z+v0~myzTox-1w=F)sEN%YcN>4@T)gJ|HV^#7F*RyXRx@8G;m8@ZMpj6D{p_%D-VC$ zTUxJrIS1TQrH}H&=NOV`_E;6nf_t!ly;~-+O*}_37*gP@#*Q27tEaNeiOmpQN4dD9 zWS2}c#YEH0hE2o|5;i=CTr8<<%wPiBK$n&g(w?FBho-#b1E=wIQ0$4j7z5Pmm@V z@X?`fCJSb)A-156HnCxbv1<)GDNv*gG9t#tNJg|)rZ6eSjXnp}81=Qxc#;(X3f)4d zXvbbsTdRmRs+Et#p?Z#)OkFT~h$j9tP(px%S@0>N;H_sqR*{=$J7#S%e^CwK2$nv=-KLL}#r1ez?U7hjIm5u_tXb_%t2pS|j9=@l@6G zS>d|C4b0-m5Hfmnx79fGNl%(S{(hCIcIQ{uEPdtT{=!0I=Z>u}eZ`R%f4O$=WAI)vQ^VWR z#nDwQSYeJk?hc>7bJsU6UfpgjFE6cs)T6KkDc;k9csc(eB)E)BN{-uzdZsyUstq z*Iw0WH#_@!xJ?K}##KhW-Rl1Q>g!+qn%RW~d`)6;rnUZYPoBH)iCEz7`|(wKzK$PI znjT;+|I$|-ck!1iQ&W)R(xG3gE!JzT+0`r8-8i`7irU<4>oJd-KIW+2&A0FU#&@dS z-l}y+%>VGxoges@4X=L<2zEDZT3W()o2!jmZ*QX7_{&_!9N(L6_ba`@&YitOR&&O8 zm$sjCPHU-y_sBa(-)r5|pIlo#JJ@o|;2W1!=65#s?797%cekJM^v1fie1|;_FY^x@ zP99uHX!x=I$Ms0H)vmX&qSo9T^y;0?zKbv3`hkB~-2cFT)O@jt#)NChNio4(;MEjbm^t5TP^&I?D{`^!rUVs zhM$-1TzkXr3olvPx)sUX_>MF0bH5X&{@~I00t&uSu<)@@&VT9i8>Xha)o$~YhaB>h z({O`X=SNp}et79rZ}q;P{;+w$R}Ojki}4ZJaQFOeZ+?4YVY$+3?pwd^kmom|07IRXpIDz+TGaC8sm;7Mr8Ck`^2UlTc zib?4BjFe4WN`Kx62Gu1qDk!a$F-B>1?RDye8gj$NsY74>68qjZ#MK^n3Cl< z-~-Ei97l&ru0^d^BV%%4d{}5OX_?BdIwX0h%4kMb8OYi2wL1-d`Pj z22Nl&ZZvaRVah9Q>PeY0rp6g2`$UUzKr5Tqo z75EPovXC9`ILDH=-W+V-e#Zy?sW~%)8&H74854q$0B)wBuu@y;Ry$pOUVx=EeFu%T z>kfI-o918h+E#t_pxWm>Ih^Eh#@f8nZZ>a!=UeanxZlV6m^?ZAje$`y-aNY~RUH^E zZIpAvSfXhUF)<4G6aa5gL&vPZ&&myZ799-f!eu2^p?mi%OwVn4!#nTs+85$>94HsB z`o*<>`pnKP+gh`0mw*0~#UKBC_8|}88_fO6mNVW_{q=3_YHelB+WUO=OEagQEE3$U zTzSRjr$2l8&b_tUZrOeI2iJb&z0L}69%~o^WA|Wu)D7?AU-+fo?OSK-&0c$I-P4{7 zZdKg7QfaOGqtmv3DPIwgS+;{hk4)f)-x(Qb~P&1m3tq5{Kq~v z^PmS9r}ZFn?zuO=`E6@z>lc1<`TV(`Sog}8@~ay|+zo^Q9yal(74U6=b!(6Qrw`3N z>ftOO{s7!%mu>#DSK<<6y3wBhc{*xF0}B5{ouM^-FDhDms_h3 zdGFsg)~(@Kfgk@XAV*Lg^)Wa2ePYd`?j5%;{P0qIA%cGrc=vqwrW+Q%|GmX;{Rp=q zHE1f%M;$?H+@|%nXK(+=Ct44C(we9I5vbSd^~G;}yL0^w?N)n! zYWApq`rz8f{T^p>qqgRcPuudc*L5q?>t6QK>f9WB?c~KAwi8cN$%=uRa0X*z43z{s zb~MK!QK=}t*Mf6)EZ|5!$ue`g3(ftb<=Rmu z2Mm+D(>T?Fm08z7MoxNV#p}IZ3H`-X{su-1 zs@OBFzkrUW4+%`AHhX_z)iNok6u$(_*XFD+7K~)Ct}3LpT2AYq$T!Ursk?w_o_RnJss;58psu_)lUmyFI^K0t$ z{_?`?Z~b2Llm`wMm+@XQXzPB*ul(e?sYY|_7rwme?QgA3wJQ9BYj|h9v2f`R z_x<4e8>Z)WEzHk6>8VHj~SAE{PL$heRgT3U2FDnj}LYDIhxwa zB^U3w_#1~+ntSW@qu&31to~V_u&sT;3l^@qdhuUBIahD)__zOe&5NGLTf8uq!$D^V zpykDO^WGo)$Js~ymIjMgG1I?&>ZUincKd7oYPQkp-2Cg6n{S#v=Gf{qe*|{0dL6F) zFe5s>{t7;AsWsv=1 z%Fm8C&wOJFnqJ0PMa3E(pU>18p{`l%@z1!=w zpZ2HgPJb2PKtjVktQ~v&k?(rzbOxIG8^2 zu(6@Tpn9Qa|Y-_q_N5{D^H0 ztAEWL%@rle0W=Cavgw6MCyt#N%nwRx39OSY_~k2T zg$Y@SiOhphl4QPwOcg;3pr2?3z?*T`Xh#DKFPl|#UI~kx^dGTdPm;{AN zmzc@OcV?GM&>pcjf#a%!U36s|ogfE*sU#R5hfjnCksFn0ST`V#RVHE4%utO+vQaAr z9H%YM#e#7$Lk0z(Tf;k+$L(G5Q7oP+TU|AC#NWIVKP*FH_S1^k5C|Dud3IVe)Qu#m;PW?YihAsU-z1qRa;ZlnQ1Kk@Jl<@snv%)?^(V6 za-%)HaPzO1F1m#NxB$Sjj{_{&URKDNuu3mM-U%eF)@aJ#fAT@l^x!Y}>bke<2peMTN?6>V*3a)~&&1(5mIV+y3IUd%o~rLwrv__ntM6KfZb72HaP}FZJ>> z2!5u-8nSdMpBEOaaVdcTs5UWSSC;1bowdXM>Pl@*qqYifwXX~ochAoc25X=DoO}J} zC#$R1a9Zjr1Je*+>BW^%{l51<^o7r1>G0`9U-wE?2A!W>v-qpc_&jT0qj~rXpMyM^ zg+gmToPFe@R~>sSu7B$IwbAch#tG7B){Z^`pOdukwV5j~-SMW^cYcOBz=?qkf3pJB zw`wDi`e8@(Tlmg%qjkrYTb}#;eHUC@*}IpYFo4$D^_T!kRMW=N&6767d_Sr!OIRpw zm;;zAJb_tH=7rM_-yXqlHSvc~^@t7Y@_sYPv4^qmLxW#O(SzT(!NY7ap=lL~m%Qj= zZx0ArICQNMk7gY}@Tm}?xeo*alNi*g%FxW9GO7-aZV49Q@NR`+2BjZEDPlUQVfNxI zUuJ+Uq+q?cXNYue`AO!+?g`tm9E3qwG7mgMbSh(;2F1|p zLhq+hqQr3uUa=9~qp=#1TV&uAqhr=kacIcK0UwN5V8WXL_^W6Tdn1By{@5e(h>}9X zip;&uY793$0BEy9@(AmMfe^OD+$01~B-zvn2n6xuUT8);c2h%kfqa3gG#O5u)kY89 z2u=yMxVH(Aofnae8vFp0zBW;VYqT+Zoo=i%Kl!$@Sc$T|T&;q%geKIJWLQ&;l=d-4 zm4Ygr@_cg8ph#jIj6mcQ8)k{F4B!(qi{xdVrHX(BaJW$X5*Ft)4W20s-axU{PT3OObvg3#&E=zyN5Q} zQWa|$%rbl@mP>NxAvG4k@|9)YX1*5DK%zl#Q30*OoCfk`o%tHqkX)~ZVclr2ih6Y{ z?2t+9$98N)6&vBz77n2q^Z>~MnbdCq3MK@=%=SfM24KPXY7GnRA+Zj9#m_i$y&EK; zKr^%FYY(@GYIc&b3ArH}n&fcxJJ)Z2=ULU2UVUz=Kjar0wQ>DJszk(_t<}!rzD+Os zi`H>RLxNfpM>$vVTkPH5^g|!I{#j4j{gF@1Os&D%3Ql<7JjT19Sl2FZ+dlt}cddK> zdk7~)hF~t_rEuDXrXM|9s>mYWz>cRhI0%MgZ%!1ExNQi}ukTiIUDIB(zJ?zK!h#h` zKui(*K4!C7!D4P^w%WfF&*@x}f^fgT_|vQK=fm(5GgI~2_P4)fxMr@}U*X3Y{QCpd zl~%pc9W<+rl}2N*ywtt!#>(S3uH?vU&|-8Fq>L3tx$ZpgQ*Er{@q6?eHna{qymQm_ z_%WX*T| z5P$m&>sJ8d(*wHZs`_pVs;4C+6Di{?$L)_1tIe zJM@t1NhdcR`N-KvK5FJcCu5@6JVW)cX-3#+G6FZK`4IztSroM$;_7R8-CU)KZyHad z4ufg@E$H=Y?|;8lfB3}qZ`=>&_~QVWdARffS`Xh%#<#e;xL0i>eoGZq2U)v9Zr z`|KT`{ak->89#r!{BIv#`1EI|9(cdzBYt=04<6e--#_a!5z=~&it{*)=quc)Z-t&>bHNVb&tcDEtB%iT0B)_0Z*Ew}7_)t@(}XL>b!{~f-%a&})BfhjC;Bc;07xVoBSVXSTKjOA|VA@5W`#6qsUTV zWsEIkdhQ}6opCsQJar*k{1}l+!T^{>cDbkJIv%8;rI$zW6h;M=jF5uS)Xh~WaV3^9 z4PAIyVi8JC!XbicD4_IOVz`<>9AzSe^u=AfM1>HdXGiZqPcqn>IeRQPEtww=I%*zC z;q%-JWd^kKErbbuJ6bq|Q9R1numHx}xd$46u_}6Wgtk`TBVq+7>j+mQ41j<-a~LuN z6$|SqAafQO$&42HSqmnVgMj>;yP3+0!1!kpi!Dz$C_K(V(MAjl11}jfOLt85goaX& zilcl)k+!Z@U|Kp<=n~;!F+vo>wip?wum%&L@__^SYaFe1wigky zP!1wQ%Au!Jm>g4LCMpLPlmbMl1u8kz{9CSkr<(VIV-W{6ZVKr2rq6j#yzVY?EeFDBXW3lGLhGmu}ALJX~ddBuIUNE(fivEZJzD&@9AKudL?%avBAs)5mrJY~9m_NFM-~S;PZ|2}N zO@Gj;;)WUgqEBbAV;kP}#snlAf(qPN^Wzk(LhJqc`Q2an@?4{dpC+B!yZq~?JQ-6N zE7RIa2dnv&P8V0JbCsDvt1{J^-uuJL20OOfd)T<4f4K8beCM^-@6H^u5jk@BY`tXz zp^`M#u5aM4ap5$;0+*x1ztpxeKVPXetL;{2=eFM0F2Ns5Si#?*Hr=fA4Ke{e7SR96qKPPS19C@9AHBN%f+y@18lQ`HZJ+I_nIq=}AoKFi>b& z!$uT0(%^2M&S3elm%L==l`r8WXg5(hEbHBme7IpKxO(MiXkhfIR1=pv8XpyigAen; zJiiuuIT zE-%!l^$EmJe!BdFAJ6~uzqamk;>LHL(f+N6vs9Rnvulp{z~A2VqSN>N>KgpQ68=bb z@3t-dPi4J#5X(UwqgbUWY$bK})>|T1}0oC1Uw-@5yO^%N1hIut472XzLY3 zn^jm?+4s$FBU64tqjMNClt@1k@4^uZ|S6AW^@5S21!P_)m(#>7IEWQ)mUF3cokgQNAx0y9fwWS#@&p|dO_1=_}r z_}NaNf($iN86k0s%!8)b6xwVlDrP4O8ij^?iM?dhhz5;JEJWgH9+(x(XlZ#$#GP2c zkf>6-hV=Mk%GaqNvX*!0!2jl!&5~dq$K0%79b8PHeb5OAJ1dI6W}@roi=qfPWM~fV zZWW_G1(yNz<`sQK15uy}nFS6!N=#Rb7GoDMDb_z4gp6s&e~uCWEQHgs2_lxMp3=ES zfy2-QCu2d}IA#_EPL?rwI3W%+XqYAWa8os9t(KH*84N$VRvxnTospz}Y}p(V4;m5L z;y5iwvyhISDiir3gb$V*o3}MiJVB@)6#nvvXcHST ztK8nkNv!DzhE}79lBq~Peh0v;v%vsg<*HqDPYpt&$LwrFBiOPT+Cd!$M5H9mZ5%FI z!<;8R*LK~`ZD+ibpF`niB6$x61Dg&n=X|e_0{mI0y~mvXy82=32g}P^EZ_$*eTnZb z-Cpgm!#BS26+8dtoHgyaF5VT!CTA`K8}-3rcgN|cZ@TzG{t6J}rcMc(B-_(Q{+TQ` zQ3KvZVWWRK5B5^;|9DM!rRPT!VxkK6&8@V z^Q2PUd%;&bH*cM5O?7k)JB2&K5rAvHHr{}rsdQ^tm-p}|ZR_<`qqBY6-cO&u`qi)I zd$+uY2?yLXj&CF^@GdOQa9-;896-PtzY2>Df2V*?;y&(Z^A;EkLwo(E>d{A6R?jqB z%?7_m%bx?S;kW-6SGxE<_e!U_FyA=x5UVX~imb51D51?YA~$M@j`!j5_W;1k<8w4Q zL3pPXt|(|_L+=-gM1Z!wdd)pQ@!>tse(J(U&R@Rt+m-pPC@=o9L}k#NKlh_cH*CJw zXU=P^SgmaxH`;D;^d$cBhx4KMap ze7u4UxlzRelG%U*hk&@DXKLntzuCiI7{ezFm?Etzz7AdQ^am@b7OoI`)otz8y^aF7 zjqlp${9khqe(=tJKX2)hZ>?>eNRVsi~75blf+; zIRA;ytz7cWr7JG4?peZTW{t*lV{!SGcbz@lddJ~^e-6Gf0sbnL%|T1zVD?Hb8v2>V z$W#Ck6CQK_n4>p*?OTJ!^nf!!wc<`8X)CvU&+2IG2%@U08)m})Veif3B}=O+(Y$ls zn^R@hNKw>4X^E7G&lZrO8W0r)qy-v9ZJ!LU0iQx^E2y9?!&82ai1K_QqCks43!(@j z$RtQ1qM!^)Aw@wIQ1g&;-nrM>Ywvyb`Ob-(Hm|&IsK`h*2{a7x}!57>t>X&$Px+ z)4%JXQ4vYOV<~|4;$#?ZS%rq!(eA$@no(`UiyNPkU&L zfyEk_^d?y6z4?6Uj(?UG2|SL#F=E#J1Z+q;<0LaABQc~T%P9Giz>P{q^>AM%3nt$z zf@CO_CWpr1@f?~5yM+MDI~?UiAbqV;8!&+XXNXSjSgbU{1n`5|GY=-pu0dgUYyMD! zp+gwM$ra8NRLMdDL*Ph}2hCSkEfZJfyfH%NYXH!w=gfc7(SC`9VD z2z#}GVDsX^T&eJlaTy8!lmPXhHa(RZ*rTgyjUw`4O3Viv^N>Uy^EADwnYraJN78a5 zkfB+x)gc2!yx;?FzKF=ob@K&Ue|Bd@8HsBH29GrMXD^MZOr%2s1+l_Y&rVqAJOTxN z%SlmeAe{xVLP19yHlI53+Xk)5Hx__3GFMot&Aesk?>i@?;KZC9TjU-VM1b*gbk-K` z?NLCPgOAx*ODWrb!}yYbf9NAyK7KjVej=bV`j(+sxON;ojdz|+| z?KdGTd_*H2CyXmAi|3wq;2BTn%rY+A0Y_Vzlivog^w-wUe&&zf_WN&G`{EbzNY0-U zBOB|)M=)o0@4fYdA2{$oU$^rIz7KQ7hkgd2lo^*wsWbMTkVptd&AVToHsDe^;-NEI zyF+H7wgJ1rQ$wEV^ZRFDSAfG>bq+r-)P+A6M!!KE-bRp&`$gl8cZp4g3z!>@boEW*cW)@byc-`i)V>{*+ zn5Q+3zHG$Q>SsQ;jwfI{XK-%L8y<_og+Y7yYW~{F(tW=E{MY>+zUY(s-e&pYvk-U= zfQzGWOJfD-4|)aGxDE3R(r!h#R|E#v)-$G^LxT;u^96WZWQBh)@7TcG8rbNL%{r^e zo|@YG$VcsYP8pe?GguvAFB3 zL2fY2%;Gb+xVQ)xAmNz?o?h|0mtv_PKBkqAUO<{a78T=-0W}=>pZ6G3xJDn#Vt#Yu z;LPl0|L-r)-uoWBT#SM6y-_&t$2$(oe6EQE4zJAYTVhePF~8Y+Tz<|k{QQp96UYDh zL(6}4<*jdh=N(slV(j$edk;7wWqemH>daQKk!5Ub?OJ7y#CqGt^LD4 z-1^@4-}=XI#Sc^Lo8NQO>;7=>cYoL772k*m)A&Gp7M=nkq4ZuySb^mz5F67&uvIce zvh#C`_v^mN3U~tS;af;iNNqNTDld>=aaPE)E%_>bgwm>i-E48Shez--DQ;BZ?dd7J?ez;A#1Ea2c%MQbyOz z%Ol!M)2tq5F>v-EB)~?Cg7!nhTDoUo%OmHMdIm}t=ck>zQh;1?Pd6Z}97h$Bghe+}L0YdQj!_t~ zJr1i*(+B^?O9>j@l3;t|zCbf?w(i!PL`KyGf_HC_fjVtS76_Gdqip$F^`^`8O~u8P z8gqeD*H8s@zcBMyX3bZyS^HG*gHeTd9467plG9YP0Sv4VcF4RqlBH`-Ac;2yIdX4s z3XEg1d|!3XUV}mRSd&tKLJlt`TaN@+#OMm&7r_VZoa}<06n9r#249t4~GMj3=s=2-~ zy}0XwXFuoqXFPTH>>{tl;syX-dL{ex+~OBr@c-QXagV{5Fj|rt|GLT$w(bZ^!@-Lb7th^GTk;^N9fynwi~o z`DMr7_1=Yr`7eF+L+5<yIK?J(0AkLp{e;LoTFQl_?k5{N>;8mJjG(z(y|K4IT?K6+{m-()|BQ*E5`;WQK%nQ!2u2s>wQ`IA4n^(8OeKfm+n zKmOCP5B~M8E3N?Ft_R%zjz53Lo`pTfulfAJKYQE0$2^t`(4M{6GY5Wj;igx;64&eC zY@5lT4yG})=d!O{`O6Q^&+NJRV;|Xn^|gzaU&h7Df^9YM$b5Iq;u*(0Ug75C;tZb8 zNdV+YG&as28-+h|+fzrrl8&bfl*whRIGJAKwL~~2Ups;Kjo^VNRQQ0w4EN?wto_Yg zddbqo7cGAG6L!Dz-Cum-(-#h(nAtJ6`jLOw#Q8rW#N-KYd%l>&cNjS3yk;DE+Wm|Y zqasUUTyEN%$fqclj}{3AoM`~LW_I55@~J&LaplX*;X{Y6{J??#<8p)mz$kG-&iprz z9+_HLoIMvGIW}M8Giuw-?OeR#!T8(zsKQ({(<%ok1 zdhyK)6ancgE}g&oCFec*(fgkM16Tj2?_dAY?bEBvCqDdlcmiNtmX}H>cg8f?iZYCL zMCwKqO6wead1U!^0E`>S>?INneQ$jLj}J41>pQGbW5|_Z0n8+BQ(HE8O%dQ0Y+-V7m61&1UPPPa8fZ zsyTv51cGBvZlSDG)E6fX>(+!-RSjzJ3&j~SZmQs)ZEycCK+17k-`w#OcIn05f1!4DpXqat$1W-<}4 zh^pR(Y8nrZk|@h3L2dN`>-dF-zVO#hxC6n32$vP#F`;6lifPmXJwtAKiPYnVmA|;|O#w zZuGjc5W>xMA)r1}_8vVuSf9a1Q7^)KdrBgH7Z?2I;z7H!QfRvvkrJWd)>)0GAuX z^u3ntG+qv$+PRaz0*g=3@VgtGMEP zV`FCL(y{BWJNV+4u#G&2qdhxNOJ;{^m(12vAQYZcfF2|`6ScG6Ar;v1QH6C}B!d@m z@eS^F-b}JGe@K(hXpkZtR>yzT*CS?sM;5_qzPdANYY2yJlC>w)K_6ul)n%xc{+_JH9lJ zi-u-qXFm6$Upn#ePx2$G_>eok@qTU|wSV!ao`38;?>l2|7ryXx&K`1^<>rnvzU`aw zJY#lxX4efjAAb37DRY&sJdgavTd#ZOGmiiD2Y0Nm@*W6tfwSuke5DU$e;NU~+xWZ@ z&$dt&$Z)ccpN8X%;}56joA|W#jwz_t5AoZ9@RkC;A(RV)PaQUI`Gep8%wr#S>~BAW zPT~djmCcRi9aH-r_OLzoym)SLEz*Ep4Ub^(5L z1AlY2w{@7atOl9~{g}Rr@dMY+;=S%M{U7diY~>g}MREHt{mSYmKEdYTY?*Io*ry#n z_xUe8?g=;jw;$fT?KU#cprd?BbNg@qe>Xn&+5ARN7PtdHzOZ9%_c=fEjJbWg)|XE# ztSqnI_yy=TSB@_K&)+@tU!J(~vA>5q7}qxN&83@*m)&dM<#%6STgJ-SJaijtWGm~| zAC24~Dp+z^fq~atW6wX`yd`T04ce~1R&RI$_{R(l20XKZJ-1BBrU`Ebv^w~75IY5(a zL!r8NGi8Mj!KtZUF2jZAB;_yWowT7($EuNBOtu(GT?wdOz}tH0^`y2ay~N!3(!KxJ zhxs}*C7Rry%`!*w>g@;1CIjW_O-)}Inaw^x#i~Eduot%s(<=c5?6;uAOcK&J*WM^H zVBRGR1q(eFMqL}ySE{P9hdI_ofUTU4#|!M=1H|p328HaLVYMOe#cJG?J%m5p4DyeP z5-%YWYlhHQWWrJy;%(j5B^UXt3G74P8n-EXZL%&-hW0?Jee1QFU<%#xo0xxD+f6wG z7p{k@l+1+r+L*_x03(D;nO}Qc1tw!rh>9TdWlpnlZ+cU9{ZBjv|Le*O4NaK|mA$xV zy{%#9?0@#P^@?a~iYqHOETep|jpqYt1T~_St$SGR9+4sSP`yFtn=d(cDo98R|MX0P zp-@W~!;wm%3rMv_{p4H?f9c)I{76h@2J1Fh7!0pPE`Q{2Z}{!kEG+E8i4{(d?Zk?C z(G{1t@7uRHKeKWD%?tOu*F`V*`SpXh!--#;Gc%8`L7c)bC^a?X3>s&>xMX5>_S~O) z!Dk-v$T@tqroC3nn+T_mzs5AZxcmB-{Q92n`Rcxa2k)3N|eX1;lc+-t<~bPrX$cC8iZ#r_{a0Z>D7(3J@@7X!ObokHSdf>Y2=I(a4rAxlzuHW;$xBkv659~c~?Ap(N?g`&_<`ceq z@58?ZZ?+u2`qMYR@>Q!J_{hHL1>Df^#saSKM`KVFF2~>d&~ILRzu>t8|FL-D$jz^O?ff&IdhYXnmigc^_SMbVX?~{< zy22^Ovap%4b%E*JF^A^>c>8C44b#b|UTh|RNDkk~gQ)nJ?cqQ9)4dP-rs;i)8#muF zb^ZmjyZ3zQ*MI%ypZVFnGqX3{cJRF4efiG2UxIUJoX{Wn@ZTQ$`;X1e%`LC5>^SFK zJj3DQ^LSc_IgxzEfp0j%hjF2rwr`%r>f&cV>;-!$k)|&sq+|o8hW8<+_|2hsj=^t@ zWksrok+3H5>5j9X@k5{g;1g%@36C4T^!dks&s|>nlErWMhN+zknTE{=-#gzvT@(?{faek(;mo(H~!b<6Bnn?DCv*&-`!y9e0TM2sVCF;Pw~) z#?(!>&+nKyf%m2Mo{d#-!;d~=`qgjRIlFkrp(FcW`MYyx?ZH+>_m1RzBN9 z4Hzc4Q9Z#_DFD%9U_5}@8J{8IVX)H#rV^Y)_OlG0YhYtSeBjmtF^Mt4$4q;V(}wh& zOf>^z=;58(P7NYVSGh4L62pYSDPtHhbzXqHz=m_RjkW84`gv2!E7SPtUtG9>Gder_ z0?W+W#E+|I3rlNwopmR!LB}`B;41U!>4mvj zoOT{LeD2S@VDZ}?&eul~e06Q+8}4()6CQu?w_iQCup8&;>o~pU_09YgCSJ7OICRIY zFL>eEzxO*hk0c(iv%=9fI(;E7nWc1svF+= z#`y~_#&1on-gMLEbvG^H)1I@_hj*-=agVRT**`Lbo01nN_K1Uz8{F~k_pW^MQ@eNV zJGOT8z_))J;@IolOxUK+;27Zv%EmOlYx2zRef;$weE)8I9Qnx6;Q=+PUxhzQ>jU-vr>q<;H2WwP5ckaq)82@#|lF#>(5EHBt`R+k#;S#DUJ@ zcK~p)6)woP`Gwjhi|<)+0q%Xoqt1Bd|9!(te)G(^`PpkebMqq~HGkfDQ)lj9zV+6X zFWtJdwubKoI<`4A|21Dbf7V%WUO#mB(0ksC_RP;N-1_q`I{wPn%%6AW=J6wIS6{n+ zayZp&d9{tEC_ifIu z;hFR~=k395M+<_LvWWQ4@-WoKCkVV-p~i3I=7k}Y(8S({gcWxqF$zjX>>cuh!qS6^ zR0fz{eKm&6B{ugeDOZj_ZR=QR;ZS)Rljtfynyw0SNG~8$9;T8!730dj4FD>N(lrB8 zQ60Do+DQ=PBFp-gn2I{d5 z3Tv%!fhu5WRXB#oFa^`;<(}yDZ@>cd_lbpCLHc%%64L;nAJ3ssbeM80gT0~ZJkk*O zI#bFdA@Ulgmzs{&q;wq3idG?pVcfx3Ca_m^rD<{)4n1zxJ494Xp{@}tBxPsDIG}Ny zSg3pjQ>bL4FrqSh@&>wN7`jBIf#uOrI8-WW2Y9N(B$DbR&FEfEZt626zRSGi(nbv5 z8n?rMs~T+7S*@Jreo4{ODetB-s}S^vsgWK)DfihB3QS5d{0wD!1_^%2U263+0QrDj zDH>T1?Ii3QnqgzKGf(Q&iN3WPfrOdix)i+LKQoQ*r8)B6_b)E)wr{|M0cRIDr^6d4 z(>snI-Sc(#Kk%Qw1E=nH|E*uY_E&y$`J;cgb79xU^kJTK;q(iy`0`>5yaGRmueDiU zJ$B=>pMB9o9=c;;9={32kkd0~{n)b)zu`|eZ#}Y!Uy8LS9oR9z)W*!xp43DOd3kmLAythKdOe7&W8F_BH2PQ(c$il?wMtLqDE zygFqHpVj57#o*#g{cMbq|KK8!%?%AA~$GQ3P^33{STy=DOV|DRc9&*mNKKh2|Ja2wu$HFY$b>N3z zF-v#`vh+1y|J84J{XhR-&)WF-$L4U-e#61F>u*6EyiSh<4x#dW=biJ?m+pQ1!%+o3 z{>+S5*71p0yaRwwd)V_Op5=2xK{)ls?~mapweT|!cv`orCjfZzhIe7+&wAFguKUE3 zXKp>bb7pSG9mh5g9>o)sWAFXQ`ZIT&`J|_8UUTiOzw>*@Y4(m|t5<%Qzst71W6$O+ zez)xS0)D9Y#k=owZ{7m!gW6gF)>UgLcYM!bZh2*H1E=$A8_Rmn2RZ4F*xWb~Ily9E z#cz1=D|$FnytS})KI7C1!Lz>29d~=d3#WGNy8V}4ys$B~u)eu`?Uy#My$;VWaEaRy zTn#k4bk2`H=j`V{3%@*oz;ox{{jztz`_td`#N(g-Z?!u^Jk{kHt_ACcp`Uj zb$R|iSDgRqm*I^vEWZnW_xGnCq})oYjV37Ie4xO(juu-Nc(40~smj^i7(_RL-M zi@!K~$wgK>6Jz2v`>qhxIBx4u@aB_*RB)BK59@`VPn%4zJr`=C1u%#`b&w;q1>)4z zPbxkYMCgQyCnvKw1f-WLI%)SpU92nuc(;NxoYUG9EM;LVA9tuuRqpvR;gJnWHG*cV zLNMnyr-&F29zhgGXJ!=zk6^AT9fs241hQmAz0GFA4OtNV5;A%ZaVmqB0ns_3>PMMt z)1wJ)C?SaUQbKFPmN|?=ebtaHiw~DP(y9R@8w^*Asg;o5P`bI3f8npOsth2uT2_^n zg7%55!<23IG4eDSKXOQngxtGbyrGpcM&%f=I3kof)HOz?vHV@v`4(b`RZqE&IqKaT zbd?I`=04-(QJ;G<&a!A`s$G61Q{I}`@tA1J@{Fo8RM)bug< zG~5Ho)a^txoTw)!#t35-ZX7*){qtWmiz~=cJg?KiKN{dSy|%uxxqjE@{WQP0b7gJU zcRcpu^Y8jk-~6aGyq=7YMB-ahaQ4qjW*{;Gz7b}6=dP7&uDQy1@XG15YBYp#-!08YZ!ZocLA>pp+r(y!WFSX}zr%NH)Y2-N}(E5H56 zpsXE|z4L%6SUmf{{--?cw%5FV?u-Mgw|#N>Q=h;$5#hvg_P|+R^(SvQ_@=j<_@lS3 ze*Dv$8%I|+Hs>!m|G;A&x&OaDdHv=arl0d%u<(2F7w{$k&T#QO1@8##Si09YT>ckt zzUeiuzvK0Py87wQtl<+K=*_O((-)k#_`q*G=gCi5`r6C*>sq)l1^H}Ftz2@q6PMn| z-w)ouhbd-p_HMxP#`5v6y*Ix#XXO~)4}sNQw#W0zjolCarVHQn$2b4Ni;sQy?_k~7 zwKTu)jNOlTFs_%!n-OQf@aLBv`(3xb{I`}r@Habdy=``R8BZEc?B758^-;gEz#3jiYYLX<+Bbf z-~B7O&dxcLeU_HqhKC+s`Z_&x!E>Iw?}~@q^4qUi{m@77+Y3`GE1NqPH_knK>HhaS z^C?eTy6?R<@%#szWZyA!;iX^ku0Ox|<*zvW=C>_h^V!Wq2d8G&m+=49I* zdXW_?wK7-_3c^BVZTL?nj%@MJ=$jQA132^O0fNQr&Q7T@&2 ztVUawjuT!;7Gg<=fy@@(1KU`sWLBt782VDe~JsuQ52k0@SjC zUxm_hY|9)CKxSwnf2T8zIonJCDYn#Wg0PPnf!!9Zuv_?8cd3ZJoi9w_yFIRNdGWpq!t*orxszFs= zq~`;#SP;V~(JRZG{MJ-fMcJ#fxMX7s@GoxpMi+H(AbhVP@)()AO@G^@wmrizTG97L z;X)K~1Y*}^?enYD8zyuu|o6T8#xt zpBKxd7sdvH)7PpHiH(v-=?dLVHUf6OW~7%1$%au9(&GIgYEmu1LC2bT$LyT6lhY0! z#rSRINMU!Ljw0G&avR(04k=fSL)aPl7LK5eEIeDT{WK{#W6@fYNV32vTThqfUe1Q^ zrLCS=C*joPBYp3dCudaM+<>ZEVA`WEO;dNLB0UuD_xVyKbi=5c2 zC}_K0?KT!&>k<(oKbDHFvaPqh>}5AR`?*UycjG%->>FF`yv9z`ajpOEM?LQR*S;Jp z7he~TpHx2jzQ6p`qaM4kup3{Djw>l0bkJjyp8aJtDaCQ=p_S9S69l*ys<8$5kqIWaxY@9wnf@%ai|vd+&I@4(wE z_&sA#F74dp%gocq-uuokKI$=h7WW=Ku>Ybf-#3TvYr>T^{6s8X_U0Gna7nGM9{<7( z%eUNyYkg+-AJ}=pxigCk=n1RfC!jqabOXQRjBj-1hbMOOf_tTe960Oz=1rbiQ?Qe1 zq+y=~V80LrU(Andd)AK~n>q9BxwFrhS>)3V_~MUG(RS=uzW#>Q&t8MIF|}*Y>|HOM zJMT>Eq|Si(48SsB#SF++a?x^(={R&8xo+Y!wDYsmJ9qLotKh-BynmLg`I?8!`0Zr8 z{Lk;<*|9#ev}nx6ZIV^Q9(ac9>nk_iwsPGUHtx86diNP~7hO1i&VJU5K(kz>K0y`< zGHxR$KKuC-*L)VAOP)XT-1$o`#@YZC7Bk<9!T0~5X}EX^u{JhVZn=H+rknA0(A476 z%vop69oXxgNB$sY71(pKSZ-9M>OJi^KpA#dC5-Lh?bG@YcpasOfmPstK;qcyt9SbL zlx)5$GGeMyll+3(l<5XX1sH%7Mr6q#d>A##>}{xCRZGZu1am|r8X;H<&2gt>t)~X| z5<4*_&>?CyDYdj1rx(G#c1SY;Fs!kyODvWJ8DkrESoGF6f;`U%$`uq-8`VUp7zei> z$q==>92Ja3@4T&(9xbYl(sdl`NgyL*M#q15RK&=bu`+A*5IAXwNgFF53$~75W5bv& z8zV#P!B~nAe~p#QaLCY#f?-99QFzZLg3veo87*?5l6p0PVmkIrsv>IiGzt$rCv48s zS%cV)pu|7jMg&n1bu6I}JTaM-fjQLvs6jnV7nhPc*6At_LU2kArf}H{1lI|UnUxid zbg+NKM^8%>Q+W{z+8bCDYDyY{kvk*+JXR=0!dgnufa~aKIY16zu|SQN0u@e%!9Qt| zw!)w!nTN`oDf?ljo^Rtww{(^bKG6YJSYyS-y|zrKc+sM$k&dyuNAJK8WoamD`9^f% zN$;Fdq#}Cv!Ws-PW@=;*EEz)OH_UkS1gd0Xpoyu|+S@=LIpe`t*{ZJz!^tOK>czMT z15IR3u&lvG&33jX`?dv1q2zSRI6J#}_~2Fdd*JMix6I7W`Ohe!3w(8d8kc`8Z?0c< z<&|^yxP;e)Y^+ajY<%HKPrdnnyoDx=kVpZieL7x$x{?{6O$_Yn$=# zEEWh5;T)aQz)vP1D{MTK#|a$I&v0(a3TWi-RpGT{yVxc;#mBwJ1tC)5$ux6dldTD0 z_tRYR!33>IOp8c9b+P9j2!RjFl4i&1HCHcx`l_V|Kg`avwWzp?0iBtfzxBUAJz=qooi&Na6FHXJX&oEq3SR>5PW9n%n z3*oh4{8Wdr6KvCjAwOe|M!|vKREkUL_?=W-NYF!I0en7*1IuLdtsMYE4;61w_D5#X zGg*LQro1B6r9I+X8#^5|^k+csHSEl$<#B|EU zGKa1J`ns0|^`S9S-}BedQ;tC%*&`=T{-!QrEvEOR%E<(wc5FiabRFdyoG76A@xjK_~2G4l~BbIx^A^X#lh&nveEl@JwQ)IE`|=#|k4ubhXzRny2~ zRQ|fDcnq5bfH^-VGnyvS5#7Nup)Fe}8)MOpyBe3{tv0_WDG*yf8Z#XyV0yM$6i7W{ zi`Y|kcw+$C{lycs;>>+!Uh#5-hbw)YPM%3vJ<*yuT^(iJVV^kWKI#&kCmGxgXQ+8h zerFJ2DKpZ}z}4I4sAiSML4Q040Ia7GCmkrLn1J+59K>XFITr|&VK3Scn+}XJ1hzYd z7c{w~v$ah2q#IWPKvr$$pI(#FP$9CCLGI}$fgLXEp>KtYNG7_2v%h9YUAZ$v z!EFu}+9K*jPc9=w!e&Y_ouol{V*`DdEi>%gaa4d(zY9?|CUSRL;z-fAsHsx-Y&w z9jA)x_|6l2ymxl#@Vnl1{4d^zm-9)96RXV~yTAPrdms5N>&Fk{dr@%C21@%5DZUyy zv#|5MiLz05D;@vHvvOW*pq+aLF&<#)e_ z&vtkk=>hTC9T=uPqJ?qMHL7KW^QVr95^%`cTo^RM&?qgR|X-bTBWQ2XfPzJNQU@)1krqm|+}HG42AHi`_QK+fZ7 zI4t{?QQS}t#PF}EQe?WKr`@Hr4uyy=q~AmfgL$wVu1Zi+@@BH59)J$`1DPx6=J}b1 zzJ~FZ(55OnBy{@2!R$1pObte2i~6awiY;SvQUkq$s7}7U5y?y)yX-tIwwXl{17yeS zu(YLQhb0yJX{l_1aT39-7->kNjN81KUSd-A*p~dLOeH1=uE{K1Ve^RTAA;JR9YavX z#a^Y=p3vlf77=rl8s@<1r9T91th)3$)Q0r|qWGMWAbe@G|DnOrIdup`20oAtH*UVi_4*w^#tO zNw@RGB%=Uza(3?kz)%8%%rV(ySkq15IwbMf229d|N-kQBmN28T-FPW`b(N{zdh=EH zeZbt2WxO(r3q4>&R9+Gf-<6fA^X_`-2j4rjf1g=!`TWY~AO6@||MKnl9z{$YFaAMo zalVER%;J36{_s8kPdgV@kMFwltIm7-I~VVIre%dwx2d&julw|UA25$^ZQ++Zas@DD z@XX-HZ#Q;cc*zBS`Su;V_aH-EVu57U2+JRMEhKxaV}Z_%C`BT(NZJ>&g86jd?D5@MslN_yW3elobB~yFvAmi-~nb_+e^>r zis};2fN?^p^G+h|${$USA<=d?SW2vm8CgC!1!be~4Mq!S>XCoE-vjpl^ELR4@A1X? zy+8F6yC3n0xeM`a$0U+a(0?vOoT>MFbB-LPJ9?Jzx@$chbPzQcfvzt~9@jy-~6PhSM1 zR`00Lgg^8FFpJ0(KnE(v<2@X{_hP+Z_lP8mZ|aOc(=!I1Xaf%r8Awy`T0!Q^xX2k# zX0UvHozTtVl9p?qpUg(`(e`{j-ll^{i)9%iMQB+IXz6Y>@M6i`9ko=_7UcCq^MmJ=yb*W58 z;e~XbQed&h8nb>kU6rFFB5sBNxp<(d2@I=C7Yd?dRUB}Ba75X*C1=S{mTq5Tg%do3K4Ef!mbmM=lk)y5=eQ+n0s#jg`OlRi9u9jY)VGk{$D+ENkw1)o8)N3k9mK zni#$Y)WbQit%DMhqD)0emu3h|)#T8GXnVwpkdYD2Z1AEfE;X2*y5(12if?D1+p~Xl z6W@sg0P4gm!ML;sR|uWB>kFSZb>Iw~+;F~-+4S_8Klb$f-~FH0_#0Pv zjbK=I&}&kyB-O&%vokhYwE>ArS&4*bQIWyRdh5 z=lqcqhc5WpU%}ZwEq43C0*>~*0 z)>Rdn{~sJt^sp0c-6uo9zD4u46+#QX4g4=NRzh02b=7sz`UU0k(|ttKjk-`fhC5r* zt#y=j(oL{m8q>@|$TPTIG~_*SW1BRzEc?yt2c6_Ns;_IRAq{+6l<76US$Jl9-o4-4tH7cZg}L*bG*=I&1IISD0Ji|aaUVm(`V(e^&NPND0br4 zG&A8@Y-;*KbTQ+~Y?B(uz{FVV7P)C_C$5Z(XxRRAB!lj{+Ay^(_GlFWw>+Ac;&%Mz z-X_zh*`iV7rlw5*l;4(`wW04Qn}WQr60JvqIyYHHQtUvR<6JT!et*g zlfm^opS|X@_q*@RD!y+XzZZpP1u6+w|Ie;1pV;-#``-n>S&Ncz5|0h9@A7gJ+l-6n zEByx|zGBK}7f^?h9z6SDzi=4|qT{2eD&Run<-1HHU*e|E>x z!i8^p$J|%n9hXw@YH^%I+WDnLBLUgDWO-l)wxFzP+EOLK0R3Hp!qW;jPLUb6-;dgv z7z#)X0*M)Wrh-j5u|`tc8US7va&Zvr8zZ@S7IBZ{4wk=WP!!L$ItqypWuvO`pWwlpz&IG`3`Df z9Gs;h0iLTyY(=wlSco^-uX|CL{OdD9k z1eJmoH8DHMz?Ll$N*BSXG!_dCI!{vcKC~FN1D0VsdXY7!*_?6lDUdfw6Gu;|xM5*;elO&wND6J*~D+o)p6B1X_#Ahk;-=sQg*%7`51H6v+U$_@YUC zVv>iU2eB%r(Rf`IIpmZ^nDkN^8j2+~M6#Jw3?o7XgU^?dx@=t4*U9Zrd6Y>{Q=wHZ zIaE9#AdyCF)oCavvdi2+Bbiu4F~}=@p=40(YXB==7#R!`D6JoBmlh?Fw(dcszA1-c zCN;<;xq3Buri=8|DibtJ)ovG)a*#f$D8%guy-<-u24U*@8NnE-^gaGMD7mRu&SMy_ zz3@z`qEfn7RuQ*l%#J36lgkP6C0_BBhcybymJmLSUiI>=8sV#6R%wQ8Ri9p3&)QRI znaHYjYCKwnyisE~jN)102|##?s#jHYtFT4}tQH0V+1pfjf??sQgnEN?Df^oBPse#?I(vkJBg9_(YCM0!Z@T3}`fB`$k569$$c zPA&0DDnIwhR1lYDUL$e%O>eyZ`=7LDX)mtDfd+wbGK$}wnx3AYT0VBx$oF@=yK6heB)G{v11%a0i)AoO%$?h!HczOc;# z@=z1*TTEVrvl~UpBkU{&nK;a1DHE=*jrHSKe(>P$ykhyvzuUk!`S5Er@zYidQ|F#L z|A4PM@U*AlM}O&vo@2>%PXIUrM#w!1i+Qr^-GPtTM3pYcB~t0?Fnx5u`$3&zxWPC* z)-h!^002M$Nkl+v@j0((!ow?#oSA&@ z_T_8MiubI705fMA?ws3%j!Q$CnQR2h;H=dCMHSA212*;p!8qaJ!J~$eMYT|tUYK-j zz|c1uu~cRN(!GrlQJ|lMNvfKUc*G09@z~=jv9e$?bIF84JT|no$KbF_4v^);g<}z7MBG>sDsarg z47JrfrBOu;9~eJcGLW|>B)}eW%!@uzv#g>7$VC}NW0*`2fU)63Vobfe6p=VpL~*6L!o5dmwi*;QT0Onc z9xfPa6cW}kWa}Q3Sw)DxYKy+}L{?E;r<62qVxo+!Y#~@0F-1NrEfsSkw3qTYf4C~E zY?_2&s?bzS1vLB_d(a0YO{0f^2u>SUHUXruD^L1~#;85YAyZ6qrOre%Mdr}WW0x@7 zX!+rYy75}?$~)e^^3He7;|1g8!@R=8Hhcjm-yB$9Kld@;zx1&G$oDItNB0rQZfTqd zE*CG_SPAhBmoZovq>zq$4j?mL$meH9`3z*wqrda^2fymrd)~c)>xKBP2){uHKLLv; z0CPKLj=br$i{JWyxyODd4fs<;ql`!_lPfC5gdmKxq14gTeHGimKJ>Ny0BIY*V3B7= zry>WmwaiIYZ2+ZH3IKR5l(fL)ZE%zcC9mV(TzcRGmmc__)i2$+cJ1dk4&J^wH#c+U zIkOjDG=Jt^c=GFXw8ZV1n<$`HmoOw9)AYy`OQj}K=bLpb1~>|eRH*B2NjA>>eH8$c zOetd>+v0}BGbrp^i|In4O{{fgGSKlq_ZB~sFr^IKTOtEObFEru31?AvC1R`qq{}s$ zEL^iW3G{M0=`4j)?ntDP$CI`tk$1Y#-6>6egt*g#ZlBN=-8ftmH*PcS7QS0}{fn7w zNpS^fxixX5)OvE092y*kr&E{i0ES#;$&VSUE_2HpNwrRv?Y6je&T;S3kpQ1J3I?t> z=nmCN@~XZq;#9{-gDq;eRBAd~^Qn)sxudR))tiw?6rWz7PcgaSEEM9N*o$J8CPV77 zYr{0O8vA;zs$Psqv^~&>OWLys1GW9+!v{?yZ1M->QDM>~4e zb=|TMij}t!Mivi_Tjt!g1u#pukaP)i{<@IVGop@mB2uB999g6W5hm~(SEQO*Rd6Z+ z6;HOe(pDEBBhO5ssU!8#aO*>Dnodi($JI9xscS|i!C*0wN0E@uV_DPGWhrZc z_bYM(9TnZmN4ch<6{~2I-};X|J{y3kF&7KKQi-r>@+Wlw#5ae!NdWW8owD-G{brfQ zUWPp+0>$ROMPoDobO~0YZrAkkClQ=m6swulUYv-4VU5cs^yf5?h`=Qx7wi$6Pzxqm z`BuE=SG|O{y+SJ=V}>g|?EX|_xo2E%?U4zH!Fkja%T#R6S#z)_dTE8De3J@sWVMhM zHo7E@@M*2!G>L6!l1BRm+z`sD{iql44No$_3npw3Qic_>FcJWeQbOXPlqMY#=>|BG z*w{=C2OXjB&C76wD3+3``!0~>;2{h#>LP$l^6ipWy{2WNQ9Ck2mR<4)Br6KBhS)k| z$^i1Ag>XU)6(vWDCS;iO?kHcQfrjM9=gdGWguB^L2qs_&h6fXJjZ)-*QNUnjlGtyn z6nmLuGiabS3by75n#HCwG}vUV7$_4nNpCSu;tPym*w-kg_MKuWjT*ON=qsDGSZpYh zS+Z2i*5q6aGDwHL7-S8mG&+wmjLy+2jo}f(Cc*kC2Fy;}6Gska6>nr^v%y`=NX~c3 zoa`}E9x1G1>v5JSrq51rRE-MhnedL@w@e#jt+A+`fWT+w#BjNKpQ#T#)*~GFSZiqF zItGd(Tc!b*LY(SJtFW`eZ0(X-&tt|u_*pA zce_spHKX{&LVN;{_23M?RArOJ(4s(2y?7d8Z-2BQVLgS=lL}JNmH!FGk(*K>m~v<> zzZ_Y+J%E%z`&b8Y!B!IvWjz9*0=YM|;*!oY0-RD`-`U`3L1>T1Ai%vF4Qqz3&{Rsu zTD&AxOB*D9nu2@&uopkMOC$cV&3wKE48L?$-!+uKr2s8}zIh#15LB6`3l@eB1}7mk z7_vd_20hfWln^b9W2TAC36o2{v?z)sA5tep!b0exg~mNQgDdI*Y+giqB_2X5Q!wX% zgm+rQ(CdvdF1<=rmx)y3;l2;4R{5koLvw<%i5)RB0a$p+or`t28NwABY}G6Ipl=dL zQwkXinu>=$he-krHn}8&gsPtes4k-z0GM&44UyAfi&^>-1!C9uVYcuyS6|@(2t&6C z8vwE-l0Ko7X$$v`HC(vjB3wr87Ff($nml@XS%pxN$82I7rX-E+Ga#FjgVwQRsGtDg z{s*`6jK#PHQX|kUcW+ud8P)jbFPI}MQ?|aL$GTLGYKc4s6W=ECg3dQQO zbRZ6#>#{;R!(=J(YEcIAJd2~5gkl(%w6K|s_qADXBydaNvc7T2>7QA=B~}I1+6uD~ zF}&yNQTYk(d(54tZ5C+7DxBhdI&;K%wrhifMOVhodisbk+b}u({vC} z(i7fP%AoBpw0^1-y`n}e{Yo>0MX=dmAe#!Cnw%5?a-WVVI78%|$Ss7riU9LsBT+ER zSNaNuL2b@f2qSzfo|tXZHhBu!y97w8Q`<+1>~5}x$rK|=*!4f?G7GSC@#uI=7ncUU zU&Vjcs&canFl7#~S;=4sXC8fZNL9dwweMg-Xk5guua@UZfm3bP*+nRz2%(akamYYc{t!{u5sH^%Ed%pdO+SR<}(ytkvL>??Yq_o9kMH|PL`1Z@G zS;Yfn)irXa#JHyurOeBCf!5Ecj?qswN<%wz-=eEswY(P`?`?-UnRN0%Z3r$d{_inE z-^BR0({gX?&~c)Md{xr>WGzCzkzKmb`g*8J>Ojpw=c(aCuhIOsh3X%n4~} z{>{d=hCO;|%@+CS4z54%6CXJ0ytgj(Ze%zUHVgf}cYUo?4B=oL%Y2{)(sGK`_gn+2 zE_16D1=AJ{=$XXX+t$r-IEnfC;M|-6$s#*uA`d zESBGf&M%3_OVwP};wKjACqls ztE-NdV9>G2Co^yKeW%Hz<|d)VZB=_C(p5K&ayc73x@r7&`NRx*hPO2)EcP=*hA=)9BM?u3}S_Jv|_P;7>&1T4g= zu^`4{P*2Bm=H9SXy`qxXxKMtYT;ED1Iv%T zRVx$dZAzKh)k2sE)5bQ=qbM1IIEyHKFG3mAtfUqmtw#oyr-ikfTF$#AqWroXyP|3m zmPQHaVjt4khuLO^;!j5jX%$761LGzw&qbhs3%11A@}mVxPBjeHF#)LT&ps$}%}|cn z>_S__)H@G|Gm*ZR05Yam$7UH-eaaA&Y7$qfBur%k1|X>*%PMfyC;3pQu#|@kVg?{X zRE=6+y@VWwOLqXUB|yFyrZP29rdI_>PE!hr5mn`Zscvb?pe)2@8Je`FK;N>KIxqUz z(#SpB%`BcCk}TXnTlLK_0g5gj^XpoqVW#I8yBUyOX6%tOV%ZQ%CzL*hVYC%)H3G); zP>4-R@~Htf9xlm_;|5N#zuz}#D5w%QAqYDsHhaxt1gZ*qE1XoXzy)l~H{%Ds>==irhL25E=x8p&*A}cUz;c@`%igo=RVjB;qzuWKTSO(XcID zJswg0CqNk(p?5D*%ql{`!c%D;R)b63!AdZ0CfVE4T|IU#W>~yi& zk+n-SAkdE}Wz9ZVA%Y>B421LPx`gP&RqC|}Z)dv^?DUT6a?ckf#kdoq-AzeI(Jjaf zSK8oW68_Ed>-q6b|JY;5pLF%#ei9+Nl8zZ7V)l-_6ORp2{Miu^5nJIiI^$+&ON05~ z5+G}w@X-R$|LDX*}R>fhDmnG?g9A!Y=Is#Wv`NI47FX|okCKBopxOy$=gmx zQWi{&GAd_hV6E~fxKo}=h|X(!QddaDXPs4fav5a04;t~eKqLCz9j6`zi0b84-6r*I ze4U7}WS+dv*$24wR2n`hpAxeZ0nR)#lg|sBBduWR&$w@`~lxGF+j+y9E0T2 z&4gY82FhveQtc$C!6BAIr=c>CIaw+6a4|?c6zo#y$B)H4Oq(wKTXcRSCex~s8um1$ zK&l3WhHg14)win|EbIt;d7XVc0f68#zgPx(yZDFIqb%F!EahY|9hkVc+PU{JQ!|76 zLtRrP+@F3hoIMF)P|Lv+D0onnkwv7&6G54^Qa29{iI=6iz@%;9sYUN z%+vB}b3>p8I}B}(*3`l-$M9C4F`_rS!}ESVXR}^eh`77fNLVAIm z{9|nyx~ErWlEM(&Xj`$H&m@9cN z$sl$>zM9wrWkB8A@J3>IyQ`!QLgwR{3!n$cOfi(nE(`V&q{ozT7#*lHn2u5s22M{V zjV?rOKCC=du5QdDHs~QvLdpwPY@7vq6oFEj%9%3QQqJmJWhJB)Bq>Xfuj?bLjHQ(? zOfSkHD>2kW$ZvOg60DivtACb4->1t^{U0Q3KE6|)nJu(T694TCjNLPG?VZ^d6#H4J zI@#2=O2~svCW~TcE}^Msd4sAraqcV62#|!KP`->p6BnH)hM}}DI5>z#gr#CjE|09ardS})bm3DZZsb*1NL)hLbZ zFKDx$W=h5i0ZLhwEGSyCH8t1tz&UY^vxZtU#ncq*4MaWlhrlwqUZld3BKUDP<1DGQ z)RUyBM?{3^BduV*tZ%mjP{Bz>s+FFT1I#Mg;uCSA`D}aEk_&*^$Xz)^DV$%+!*VEb z&4oK{;;i`($_c0)fdrspAj1;TN8aV>`A;5zrAuo7JH06K5?QTLa#|}nz|liCylIzp zm6^u8c%m35Tjox8+foBz2&>kV<%^*rje4b081qHGP+M>K#n8cw1&%mEiA}P| zbD#P|rb&)b#l{tx5i1geb=b-9i~*xk?ovxr zKYs+L?XhPRf1E<^vG}jQUeSb>e$?dnJ}Df>8JHsz`)s?sg}lx5T;5Vs1sCj^85=!7;I*u7U82o?36Ug z1A??VS^8pZD>gCJw|X&jAf2RtfMdne7@4U5-YnD88f8+hTjbW$sa;i-@)$mijgZZ$ zdQ5`apOf!>wnZhRO7oT?qP8r-%(7+^Mmw1a4BM5O6l#(Y(4OPzd@!=0$ud^jsa66o z_AUX+oW*#O{TMoH=zI}sTS(*4ff9^2*k6 znN(pi4K)ndEs{>I%7#|ME#i*iPgOZgfc+_{HVHJtQw_Hre2p&rP&3N&uaH}fs})q& zQMESm_H)}lQX#g+Z*6Uo{MQ+7b2d*inaTHrd0*5qPX+_i;CsVz10iyZXRt5^iY|{) z3HV;jQBXM-asJU{hDlDM-a5-kUgNoa8QLz;SZ_~CEO+dOF!Pf&s;Q3dnHmT1-#Q53Lx4S)(j8mZu^~=~y6*+Ah6%Fc zw^8W?0;&(!a%^V6Hfn~;6nOO?d#UOH!W9soETY;dZX{NwtV2!l;zOzsQN#zkH zAq+roZmEh`Er*uS3+346rltgX*+po(*>;>txNQku7gh5&L8rD7BD?>HOacCWCGF+z3m1dnz!g$#t72^UJw51ut zl&iqJ>k916)<}N@215#!O;IA2FRtWIYXIC8!_)vQJZx28qokZ(DacEJR7yx%VbW>= zJyj@EU#Tjl@+eTVuYgH%x+t7r*r$+yQ9&@7EamaZ1)xKkltXx_X5aVc9gejRJsyi% ztyPwzG>tw(8^Op90Jx-=grOHSQevOrN>`OarnMQS9&M7`0{XX_YE_iszVcK&^tv%; z(8fwYghMttqd84kcYX8_4YHU7vL3p>^}M}~){)&e=RVtzrQK-i}suf!x$`a~v7f)5cT#th$I z-eD=nNHV=T!7@}<#bHbg64^S2KDK7w6xFS~;*uRGI;+lzJXU~6h%|}`04k%;iSO79 zFR#uTF7zz~DoWkZ10qknSh&jaxsG%gybDCJw-}U^*a+3wLU(RjQ8EQr^1DmunMcSp zRWHqs_JOI#al9csL$b&EPo9iYV9ZT!2sanUTMh*Gqi_PC z@m*(35;Jys_a>WhS)Vb8$p4rY|uxFovYS~sMD&fs&6_dNM<6WtmIeb5k1K*Bj)7* zOSsEN`5Q~8G&FU|768{+tjw9Qlvcli(kU*p9S~A6=!|K^O^?xyY?fOMVMu7{YyZbr z9jx*q%nDKd=01{-^vzzGbsb2v2rYoDnQB5#DzF2=BXB0nR7=O8cckIGUuD+34`Y4K z#70RhdF)6@Bo2kvqIr^CZq``kGvZ>Ivoxb}K}5NasziGFT!<2 zxx}X_`e)?;MX%6w5%Ez?m}E|p4B6pK>OzKL5;E-DJ!WliI0>gs>5!L`oCUBV7FD+< zdC^od_D3^kYo+=oa|+cuDks&bwNY+OJ4%(x^i825&tbYiNN@@XI}IU8AY_yw&laX3 zI5k^yChXr_P!qBhO+Hn>or)^HQk`B8PtU8yog|->`J@0ax3|?v!6xV@^=bmVr~Yz$ zMYJ`;cFGseD6-x`_43vuP^h-fVQ3v{f@#80kDX?0Qfh|P|I3`#O7*WT+e1n3?B5zb zT5MBhGtA6K=NI5n&h$Dx;gsk1^uqMLhJ~QyCX-kgl#SC0A(@B5&=+xsp@*kjV5C$M+{xltp>C-+iOfo z(Y2sP=*hs=F-M`XK>gNKXjvrAqm;yZSq%v*XL?nbcd4o-$ThddOG5!h zqf}qf3)bi>&x9=eRv|~>v6ql8ji!kLSfjx(H<5?|N`WOLzranK+UHvHOa6FpuJowN$M>xu3iYKtjP3jlnG7- zk{G()Vv<2Epb4#mCkz&)x+{tj&a@$9 zZsruDL|8aQ)Sd|B(_b^`3oBgZt$nX}Wu*=TLpu?wTs(?i$`9k%v1BDP6R;%M8T%W$ zsZojdoclOc7pMjqdIP?jRjT>T=mavbNWuOkWo^Ak}cBh-xo|*dxce=E#ypf=sU~`7*J_1&WfoFRnF+C%%E~l z!e*F`Rmh0xRjsM4ROwQYkTah~f7-(&tkD&y;T%n=x@RHjo-Q(JhL#}H|87)_=jKs?Z^_{7U4 zqcj=9n)%C>Z4YI~8F@nEFoJqpGQ*#VY74g17&~pE5?iJRy}O6mX^d082~J^BO7bPA zrIGm5K#)@VjwjMi25*avnW4>E7DYmt27$x?d`E67_wBE3foryq84G_(Nr>2Yw2?4q zGZQ75aWxEAKPE#BN*f4OW6j*6^k!i~VqKI-BI6miI8w)EWS*{#13Qp%bUqYzj2yC- zp0y6FsB94}>YFfDZ-q;)ovA&{gfnhxg0ELs`c^_m;$YE}0Yc)FAE?ypyx;oRYi93T zfPhzkQslx z+&E6s3%0ejp*p4EN$VN~Ov-1Heo{)Ogl{szu+a>ofPecTwvWs}LzlYR6E+lvnGdOk zUR!8R!yR{KN!UrL>I!IAG{Y?t7&T>-p|vwbCd5>E=rgK`%o`*4x6`-k)um+G+Q|xo z+?pcoWJsZL+aF|a1GajdYE zlR;kTQllhcBgnU5NKC`9bzurVyjUic}P7 zu$PeOC5d1STZPG#02lIx8Mm6`2Y_2pq-ZI0%OmVv!=W+HbWMma!p52rozw!zM-(*} z9soPKF)7((Y=%%~A&s~6nOnjv9e)vJ$Oe+3vTCZF5i?3^QpmWesSL8#eZo?x42^Ho zyNXQrQDG8N{58s`JC!G!xSpedCj}J}Yoo3(%3~pr8>{BQs>dFSx?9&qRy9F_mBtW; z)E*3V2+zzALdqVBFdsQi!keF$<_VM>WX(O^k?1W_4ybSupPp*R7|y3&c9V?1(6N8#l@s?3{1_7E-&GJ`e(U_xr&STStU7J5?c zw3hPW-f8-J1wz7}v#fz3i9AD-i77PuW}EZGa@COTWmBKkC57{#hDk7e3Qy__)3~S> zHH{jFo{F~8dNQo5R@0~J6&*hW2A5J49kQ@3G6se{3QxJXCj2X)pUA|KA_f6r(9~gi zR%OjI^;MZ(5^5CS6DeN}u}>;^B~1E?Y{<7W+`_%at@4mIQyQ9}X{?}4qi>fA2Fv?S286s0^G#aLL>sUju@`1i#s7PV9 zW|nn`tX_?bxz}yKdMPfD$|n=681ba3(xy`GiL3%lY32H}t-HOYrrZWIRT!0_7?MX$ zFf~>UgL2~iM!HKF(n5nR*&wG2lxFPTkD5900#DkDLDpo}5GHJp8$GR-L*}GTA_+&D z+azD;M+oD76(#_%W!%(^dNG-kZD4DBt491oj;gORk(vUg*)lggECZNuQKNbqWfl)x zjk|`3A^})zIZQB=kcavN^n^%0m2#{}B8JzPpi>mUX~~imTg`2>1mS^9Yo~#`ktiiF zRyL8V1C)g{Eq1AwTI9fZS_$5UP`xrY_+>IptQxV>D+g(kCzYclfDMtAb5yPg_W)V| zP=VA8qur2km`^zQtw6pBlXYU~E+zxJmmNATsNi0Gn_&aSa9E3L(8jo7 z%4;;S%3lGVdMT=YLgk6q`alazlJe0 zNdZx-+$520m%bS`;5y`V#+p7=-^w$Tx0%B>VGaMJRt)t+O+&Sv;WkOKmK3%_-e88l z&(iylNvIbXQOO<8|#--NW)yI?!+jS_TNz6qN2Q0ZSJh^lx(+% zd#CWEAJSUfY(ol|yA4i&$q>rh$AhSp3> z0`^~KRyEv2xlRxsyT)**w?t83I;N0Sr!W?fx|0Irc=9fdt$`+JrdRbN&5vHSxfTB+ zR=|I9q&LZBsYRFQ4(hrlvYb;~eSsZ_WRqH0aq!y$6C6)yBT zl`Zi|Z#2WL>F8e8pCS)k#609z^tuN_g*9>=3JHz2EIKP{XcGVdCT&s%$H>gW1PuP` zuOq=NtsA)HV56f~xi!iJWsO@2%xNTn1|x={vT7t}#Gxqx3Yy51=9b9hOwG_28o&~e zE+-Y_2w3HmvT7=iq6j0oYAR9~X@C(-`-GX=?@2RaI?7tXDMQezAUJP{ar3OO)0074 zqt~>Dt5G2m?`zAFA=nB_Op}j_O@0W{jKUgaGpvq~le2-14y$iELP$BiwxdZf1mTCb zx8BV>CQj{2aLsDSDb1;3Dt=f?<*dj?FH-}U#MaB)?%z_=F!YAGstYYTBQcqN zGcywi#D|q72Q~CG+2+wp5(#rac#%2eWT+Y$#hlm-1Z#SwGBxr|uZYtfm98fp>IPrg zWI}pfh7luYR(NnWv}#&qlPfe4d2sA{W2R=9A*8qDn&cbCOdI+kvgQVB0;*iIO*sXH zt2_#nR82lDGR!q1b)`ift7u@K#2f+z&?|y%nnPH-5$6!fychw zJho;KL1rl0!n)O2(IjTMdxn+?_#5W5j*_G@g-N{sTsc=0FO zFpYGtUNunqCbDWOVbxbK5+FX*POy$8IEIt@(o3AmQ$ISOs|?`ZA>HCT6KWcqTri33{7cO2yrGJN^PT#VRZf+ z`fb@*x=c#P&=Fu{k_=x3O_Cf6=HUKP5xC~og)>`{2nj1R*dSno60%H^rG!i&Y>o%G zk55MlxePcgcV!6^4~+#7K}hXhmc)oYqAO75U32cdENVu~9I61v1}`hL$|OTnFL9=C z8zLAps}_*+UOHd-J%`IvSLt>I+%JOuGl@ocrg{LMxWV9qm~0 zo+viuAeoxUBsaoPNVGIz4IA{m>Z~VnOqUcIJr^71!YKYXb?+Lq>y}*w?Y+Of_qlba zyVHol7;*um2$#fw2@nubOpII%YP1x~f)b0eN=2)X65)rXe?*h2poRns${5Y9f<)0G zAy^P30hCJ8&;g|q(w%gt6VkD}Pfp)XpR@ONj5+2UYp%7P=l$NjPY2~W-+7+7<{Wd( zG3Q$E`@P>j-#Nz^8K@%K#h=Rv!&dIn&r;=>A-rd$5%h=_8B?=Gz0X9gRh-X-r-y9k zKy=LPl@a+??`UTsd&^-N0rQ>Y2sw@?RdVd*v1_Hd%9YN{zRQw)@ zjjQz3MquVS_GVnga0GfP#^v+{yf5EK`kAD?O7~pO zdLw#zl?(P|0T&W~mO@vyd;xYLB+Z}PmftAb_WpS`Siknq0PGT-b+$tdo?V7v2&t|yUb;FAJ9n5pGCK1TT9)SD z{qS_2ZcE9bp4};)o_^>#6krWqCrTVv5raYvc78%MkVI&P<02|+paA$EUbCn2)(|9e< z?uOZr26HO0FT0H>66L{N#-2jX_+lv3uA@`Vd>2Od&fKMTyJI?2$8>+UFXxJ3=h;2t z99!6H)C798GuXC~+4@M)K3G7l1q%d(svdcd;OYjPx!s0O%Ksx~LyiQQBEr7KBg9aHmWu0Uefh zgk)p5CTB{8My<+MiQS((m58N~Xa0qu53MJ5J0-Ld(uqMW6ONg(BhD?pGPm|l)vZBQ zx`xE-p)A$y)g#JUQC`?pNvkNpC-H9mmpCP;DYQ-){fs3^odk38IBn^UYIIrxW&h&Y zLja&UzvAkNmp!3nEu{1=W+Bv4GP;;vtJ@}&)6CB8hHY1AgI$8D3$M7xm}?x529BtT zInRbgBuDIv?H<*h$%DHY3|@>K(AgHSm%=Q$y&OUd&+ai>=UK9VxsYgvYmCm*?aR5+ zwyRCOW3DSy}2t6PJdz%NJxWEkcW!W$+AN6)eZKy)W`uBgOt zE7DnAznm^1Dmi641n2HC=b^C_T9!){7wQ^Jt6YQ(bLi0M$YBSy7{b)sEML1?ifSp* zL%o(6x>Gunrv>t?h6nZXpz7^gXV}g-VB$dui|HO$u?9z5O}$F;F64qwogqV^o(_+z zJ8?;IR!4RlcrRu26xg^7pdAU8flxpO#-Ygw3L%3a-v-Sr0{}!>C9aO2*yh)G4=Gok zZtosM;Z$ARwd_=j4Mcjh9qmkt1W{GgQiSvr5%RNKoh30EfP7+g>Nfsfr6}{+E6QcC zmgKemxr+Q!0@RYI^pPv&1wz&k?-xtvASw4z4h^J&ECkQuRJ7=m!6`H#J_@NW1c<>Y zGE58D+L~h#0w6KvPpUR0)~XZYa)4FFBv1>4#ABEfjb1|X!)ZS}=5dyc^kWp>)@}#L zy%SvdBrghWw&zoj^?6XsLo2K_gUW>}!sqCywy#HfkKGe%tMp$1Nv$KQrOE}4C2>byPqpOk ziMwY>S(eb|6dMcX%->DpB68kXUjU%F!`^TM^$bSwv+6h_Km~eLBx$+z;JO+E7VL0)E z!pnOHork&W3##g_{-$yXS(_jS11ZkNk>;VK9kwtpB|6El>*Z!oIf}mN<_`cpycA%= zplJx?0<*x1cz!CY(T*4t3y&RSc*cIh> z)W%4OL1Ex|$f66A`{ZeA_ID++JG0)Kn0r1GQQ@x3gjm9!*c>ZE7~RV^27=r@-5wiG zJTwgJRl2P#cy^~kX27!BXLu9t>GCW*7huLK<*>S(xXW4yvLE*;rtGIlUdkYk>@fnAEnH#=<#b2noeqRptb(v@t$A0a!^ zXbcXykUXP`|Jc>gMT6gL8(?8;ku(M9FjQ1g-ItWfDgD)jcQ*5TW?|qv-O3md2ip^m zZ1Ok4E?#gb5zm0>BWysa6Y0UAT4sP@n_K3E%as8V^{aboo_ARqMy+_ciBfmTbCDEZ zB#VFa(q?k#blkOe*n!8BuZ`dluYOaTsX4-oEi-HoVz4YAEzOO0g!B~&ZkF>*Vg^`6 z%i6(!^D_WbbdOc~>!B>%0}|j0>B;m;l-=W5G+eN~WDc&7)cxh2`wg$jH7FsCH?ut* z0J~Q))#6`Lu;hf}i=j5>9XXaty$!rX}L9wbZ@vhDP+48UB%2p+@lK(0GF$Dz*)tGb6GA~ zoe;>&%Y_Qd+?qBwFc{`uy3^4!Lt92Eq37@zg88X90k)W)E2pSBrjt7ng0I1-uU=*E z)SSK00&~b<8w(OkgB6m_U4uLeSScn~)XTkAFLwdv&|x`~7}g6(zdc?8Y_@J23FFL< zkaGpQfD{-2zXRku4gzsyE)FR{Lsf>upY|JjNHa?8G<#hQ%6{j{)7uA|IhD2ZcTdNd z%?v^gzup<3Ib`cCw6kfd)|0)>JtE6JtB~-zFQq~5>au$|+r0}p?Qse6&+J^OY7xnk zE9^cjzFkpp+QC4(UGRYhPWPqY%smwsTaY!P%>)B5hOtWXz(xk5;ZA$u=uv^Qm%w#9 z6E&rN^22iwHBzw(-FY__s0_(E7y}+g=aP`7Fta2?+kaqCpjwTI%-!6K;OA}|IW#5;qpQYvX zMXyI*mTDdwm+?#V@F*^rPx|tWNIlGb#xCmh*cW4mrxVodE&JZ9}F9F=Jm}w?^cBuI2qce#35`> zmzxZ9u{5GY+!ufB&YF8(W#0(pqS?cK51mLk^G`~S7KbnVL+4TU?8Eox+2NJv?>%zk zHUvInP_(B%bIVC}vMClY@%LTswmW>*EpQbZpj>9MEJw{viRYt(J(eRUt>ZRZY3B~Z z6Ki#?4Tf8=v6Y=2CT#AN$3lg%8Z0a1{}EUZCM7Thi{_S+v0N~moxYG!U!ogSvDVTf z5C+S|gK=D*hycdy3}7~=z^(;DiQVt$S(f~c3coNQs_QH&f4@@+exQe1-D`UAXvmW4 z6!XKdlSa)yosNbfl2jXKG3`dNdlbx;W}cR}nyS^komp%CUuYkMvR%dEFTl>7J9adAb&) zz_|_Lsz$Jy{QZ2+HaEUy&0=%Kx;j+V_3b$)oKltAinFw*TY9EuXU(}yRwW*N5S%%M z9NQX|z@L89Sn!)?ABa){NScKl%gGbpk~#?z(dXgJ<;*D{M>Dj-Hd0oxzp)R0fs-?q zu(fO%lc}g13<=Yw1i=tEC5NP*>*%2q(LN|(@(w&nVLu1cf z^sxH&wqq)$m)cHcz-r7hcNDo!zf!q!4eqCC31L~}`5ZmM(m3nb-hK4wQK2m_4f?B~ zo*fB~sBlj;=(eU~t_~Z{vKWmN+*P6?>_HwI3JJe}odv_3-D%rw9VSj;#H_pgPU!&H zJxjK-T&tJ3?98a9*IuRebI9TMv=7N$MK5*ii}q;v!%F2P*A0qu@5O+H2TO;n$DSRm zg5vK{rIZ{-7K}NKSpc0)wgFCoVdsMB>Be`bZ82QN7;GaqqSj7d^w?iOJ{OEaKz9H2 zs*LOmN!7~B>?KC9ym-oqyL=V#+eW_4^mi*CV78`aibo!U&E~_*LY1Otze|jjXi3h_ z-|UX>Jl$r+?LEz$y@awBymC8?-RT7$@0MyuEemG-CX{hFH->^OOH_9N6F)1rwyw%W z;e?G#Q56mP)nh=%n-fmu!h>rp;SD|ZxJ2Udh?xL3n2}P1B;eoU7lf3UfVtTWwFh%i zLHFVmVfaA9PP=CLZ@GtNWw|vhdzP5xK_Caz5!$arFqsnwC#gd1Sr(FxL!qHdvfb*? zlppsl8+(xZC3L_#fJG}s{)L~i=Q(8WhjL_j$x&C zJ_Us5knPOxticS1*e`_WbY}4`Gm#s26?WJ1YhvKpXwoBqN1e-F%X&hhcyO0sGuvZ5 zmksfV1jt*`Bb_shh(B~r(>_G#B-Ekmki&jE zpxd4^oR|92D+@oQ@Lw3=Q6d;W_xZ)NDPDgC$W{qJHM`ni5cMfc zyz|17o!w8p(ggN7?4C2~L*$_|8PIZdJ#jW?4iKKBQ#ECI(bDOwMDK+Mdr6zwX2ZF5 z+hfC_L*tsFpt=UO^Ixf9PdxK1glDQ&*x~7|jX0}yy?-gUCmLYm05iMJTH{;id;xiZ zme@~Tr*q|Xb*6d6)%t1im3QrP84F)=^0v;T z6P`1_;X}Dyw;FLiaO<6oPya~Ys*WE3P%lQLGgc?<;!sw$00$4#NvFF=A|MS2j3``j z$pbThB_M-*7+@dHhc7#2z%OHA>wW;1s7X{ycc%bQK(D_zDnq3gCzhRa!JJVoB+BZ! znTV$Jg({KLYjqMd@73e0Kg5X8p^ofS0?1?k*$(!jzYvri;mJgv4v*kc$oAbN;z!w{zz|@k4_A#o91kSEmsJqvQLf~IsK#!;s* z7MDEtdjKP;U>gPq7Wft@xEQyhf>z>>ar%#c5};%#&L zU}H>YHm#%Z*j8!bfbybmx1zw^BGC!(IiP$ou{9MAWT8auU2=@JPf( zBZ}kJ?Z^ww0!U9G&z_SE5ymt;ZFbkMXf|d?ujYe0K|%&#jghx&%b}@qC4vYbbFA6*-m91GN3YfF4 znTRAqq#%d(VmKE|xrOXSt<4#`X9+C=mZiXOn&%K;P8hrRTT`6g3w5V#XgH)A&X`Oe zNSFa-x5fJp-IgYGjr*N|$GU-iomd8#~FN2l!jbop=F>&{Vo!*f^=4 z=L9h6Y_LRaN=C43#~sdVcxKkIx{$ksmS!EbF-YIAb;fz-KQ6e;?HF{?`vw@EPHL!d ziVe8ev0v0H@RG7*`1mbvsS|8IU{mOD@s#-9Ao#kHLwY%tW&H!$tM6OZqD$TDOOINc zb&L32&&KfgrQ?&-*S?$k9v#o81WfZUCsHoI3XVC;d#J&MY#3e!pG$OaQ19M=EyzxC zyWKiH1CP=GpO0g}&WOr?0qKwpwOOg-c{tk<4(nX(0(^?)HJppKgAKx)$=T$O{3ML` zpD`9mZf{Byw&(7itBH{PQQ2pMfFEBT zSreS5wc0?>OWVs5nE_$VJ>(K5v`5B;lm&3cun=O|k=@>r-6Lez({0l(gc|kY?6e0q z(Ab08O>Rn^iEDU-AxAN&gqEVhT}H3I;CpCi=uuLs&zLQEIysiOR(xNV-LvFVVh{`l zvjOiEg^k=X_Sis)!4U5h8g<@-nr%UR=(hs(>eAw&;JM9kP!U6Qab2Fp@KRVVYm!4} z@#rZHJ@E|bJOWC9o!t-{?rA6%DQvt-Y6w%yjaH~AmFD=f=k(V~NqwTeV=#k*~`Np?;1vK6%t;QN=^!$8I=<)?$xrHB~K}qY7K_TLwP}!Iz#!AWj%+68)U_kbXVCK zsHb{iUD<)dQcC2{Lh%NrE_Anm$o8nfH0)m26M!LG_l~h05UC)cuftl0Y)CO%H(V6q zMAWe{xymuCNIF}$7v@ylkBX`UkNbf^8+D`4FrC^d4{TLG)3Ez@PbcLNsz>>;^d(Q< z3+Dm@TX#DbL!<5(GHW0m+63f|M07`rs^2>e>?Or}jnK98<+fbHvU&+VoXjFgqL3pE z5>NZ2O#Y9+f`t$#Y`h#l&(MCI`FG^G$91g}hMmd_c`JqS3wXtC>z%)Hz z|Ki*#(6Q$p!Y(^i4w%ao&pJwSZ&MlQ(=UKs=NVh?U6>`;iM#B?$U~N zw7O<6rwsXB5leX%7?!{wwEOoLvIebp4ObCEPZt|#J2RbgBR$1zNZI{Lq`&EuVxU>2 z^6R<2CoHt?7l~O|q`U-vjmO0X108njfX_{K9ab5jf}0lk|pFy?_<8srg*cb^LVY^LdL)9Ct>A^0i1 z^h>3fOU^j|Mk2(haG_j@c@H*%>&kQJD#~5x^Jf!K!iX%z_c1GmvXOl7IGiQ<^)#t;7;q zmZfxL+0(@zIy=?UiMx-8a_Yt*6wH8i0k2Rc}WRNdocaICdmpeeE zRTp3*eWxmk<}$-r;$RAeXY>7M}1xmHz1D_^d7E~oHt+*1M*?lk z?t;|PqKrR;9XjiCDBpt)0T-NyDR3V8&v-6__l~S`3R(QJUvW$?mpBu4=%0%6HI{Nv zB184Ez|v9|Drf06)H$z_%AX(HZ&6p-T5r!iWrJMh=uM&Mv(RqhRd}IVmKVg`+B~T787~7V6Kv7im&MS1wA-jb)y~lh ze1`R+_K?AtJ=#O;v`O8;S9)$CxlrOlsMUUE{>%HgoQ*yWR|LZ#Ios}dQ_WqTJ2KDc z2DoBG^j_fQsB_XN7yznypiLABt>#pmEA?MRNYjSKd+r!lim2kO%r9c&%Nius)orBs zIA)_`!Ak_EON0W(sA z8&Zy}6wtDa5|7#7&-s)RB6W%?$KcE@KcAH~hFl&5H5tM8y7KqCF=9g($LES7}VJ)@VhuJw3nfcQ;7TNg|dMqh47fteD*=u#81?dp{DL7qj z8E)H#>jY*w)@phLLXHU&hX9JSjUIl4ib2I(669Sobv6bI0t}ay0vN}oLbw-(4Vb6) zJyaBrk*-mv!i9wQUBDooI)mS}di0Q|I~Qj03xK~HY5$GM@)Ew zoIZ?ziLLjw(nb42RSb5J*PI8S;k$FERq3QEo*i~Zf<)ymDZ(#Vhsd4?{F0)m5?N_h zC=cgcEEv1L%ExUO_H2ov`?`jSA4fgJ@mz+Tq##cm9WXmvw|i@X0lJ_`-uBMvJFRLO z5NWXr3TVP2t2}=Ec*0d6ouLcRu5ZC}3EmKkF_7Q@5iY$WL>z=&xA;@jTn*1N%jaXuM}=Hz4MIm?M{uUQ_x zTg1yB`j{F1&>eE~97sGp=a=V`5UgY1{KOaeq{mf9OHr1O!U`^TU_w-;IvU$DHdOLL zbt**yC*y=}WMNjt7cls80otXINjfud)z}AT>{=&2v$KmR1Wa%RR!Uq>2Apxa0aJX? zN=#4;C#(_~5w@blC7pGHQ~Y8O27WEYFcKqygoW0Vb89KnE35lOr*x2({$5Uy2xbvS ziT6T<&+dWj!4O`AApmS7lRPPDS&KH6l`2axMuqI}b%(7II$1SczSg)oB@7gyCq3m) zku~ii(8D$=Iql%<)V9C?(>`;w@11%?f)(qZsmgs{x*IwL1L zpYo^0QgmNN!KqQ@t4CEgqn+aM(ttAq$c5?*X@%@vph$+vW$a6H*8sF%t%?=0Zp&hB zTe1Z#;frRnL=@KA~%YCn_tcBlMJAU%C z`8Z`UCVa$pPuGCxXk_7EmP@6!91QK-it6SjZd6DafO=(3Vv4Ghqvkk%)g1uSuK=Ym zl++alUrC#Y1SBlD({=E|Lj+z1Ah#*bjP0@N9&cs!`VrMpVvc5ns+aO?fDFW|W(8ML zKF8>n0GFe2TW7USvMaAfw7?M7SNg}Flr6wErHU-)qpJmEi&h2i`zC4GqevLj+u%v) zPjWV9B{>1kEy-#oNiaR|`Wtmeaba3w!sgs*74LVm=la!J`HD;*jHWUU(2-Q~IiZnr z*J@17%~$Jy_W~10Z!hWcxD6RQIJd`|PFjtMT=z85E%0k`8_hP%^I@#H*CYLgwo*LP z`k?OEiFhA=CR!#no}(A-t3@qu={u5Q#xu`R_UGWFDR4OUby82K3$)pX(WA zEOOac7aDekj>&KFR;LFrw9vcoOlS9+7@t8YG7LniE_g72{NfMVbvfVs_Q-I%$XYN# z8(j5XFXl?r*zl)WRG}$#^1&7{iq>yU2w#PzbZ|yzBbQx;5IkT2SBXlINY~Xe#T-rF zc$VlNA!&z3wvrM(Q$p)1)`Vf%)KVZWp{JaPMD?hOti&pyyx7Yspmr+|PgI)QXRY#p zoL8O);sc&x_)|~egE7-1Pma2SNnYz|wOo`{@OS02x(M)rK8#$-nfJ(06p4*rYIsg& zC$Ktacn1ji>`ct8*ugFo+ZluycuS$IbAnGCQQIfWx+f+=Kg z8L3=ss^lMAah79AVU3T~#tqIrvn1 zzdK42HM_M8yix?ld)6S&K2j|F3gK>f$l`>RT;#)3s*>D;(VH6z+hYrN_Q8VnIt z@Ara_C!)6kfL8B9irID_i+C50k&0qzj}3+Lt}fa}2&Vf)9`lh$_av+dPqfXc4bpZX zQMnVi7QJ-&#%Z_5#sw;4Z1j#&xnp50&Se?G)yhcgm~I=fCR9MmJ15c)87hO%j_-aY z27ymKvBKnWtprywz(zs%JaE<_aZ@sIuS!upzNwR;)0OS&`gYY(_^$vx>g!4wPcWjw zu56GppLOx-9BD;5xq5iBLAY1hP~8z_}$rORbEX%<f*k1L9(lQsT)t^TB^Lj zA_-2F9?-IaZ29KIGNFB9Q|}TKO_4HSn@*-vy)O0&1vMHg3BooWuAu~fCDcfcRh6hL zT1x8l0~v`2oemPD6f@0W>SUtSorF@6TEY!)$uQGERz5?Sk1^>OG*T z&K`B`4FGwM*F4!O|H_LS<2{D0!00HVUM3)vM-ybJDCbwav^mvTLm}yRD4j7|I=Owy zCOIzlKl8}n@12csrsXRt?a-O>&e_Zp@?$c+OxWyA&Vi00)LtVRk`bl`U=v?dgP{gK zb*+?zT%}3LCNwlvDONsRR{)3XmuHEBGgOAmimkJ1jWE#M3=OiUc-7_So)hyNy{WN24&6kRFXUB>gDV4s-v8 zEe72e4TsJ_*u)tr0}*%aklSCjiXCqhh5-Ds3(d|9y3^*JWIud@s*_+^WGVZ zw;xeKGq(alF6D$tkyuof^wb$1RI%ghhAJGnleX}8a2$!ap^Nw+qf}~+^u{zg#jgNm zj>3ocLqsRdtX2k|F7A+abyk^)rkpDn>-J&9Dd@J>h2I3mOs|jwUhb5$j^gyO&R`69 z6|QHFU?E$VMWQ$OV9uJolR{+(kNot{1PIymS_FCLC|0v$kRq~C0ZTIeeVT@#3kF-R zqJ=5K&zg0yRHqz~M99HAMYQlFGUG)>sPa2^)vRYDE7$bmw{tg~Y9leB@VMwCc&9w} zG^#8$pKdpLkiJiT1$FghuSX?v`j#yuQ0Om&iiW6eE6XQb%XTNW@bzrrX10;o8?(){ zen<>>!^Tn7XCWQEeR6eP&8G9So}y=IrRB8hw+_k^=jh@NQoTL*i0sr`kQ& zkRM_Wojd=b=lXe$^tN$G_XfdOy6(}D4y!THUwh36*Zm6mnP{ofvYE(#2S5niWx#_O zjWMD8P+whYu-HU9$482**N&a3^7DCc}0OXTWNy zcEpuAT<8jiN_Rd0)CcclIE08+(Ut}Yt zFi~h=D$CF6U4qJO9`0s-egi@v2Mf(7n+PoLamk?DE_RZIw229A59!G*Zho1SOcd+n zdf=KP{;UY4L(kA4Ed9}!wFOM_q=EFMb`*$1fLs?s86wStl*n3g$vIe}*v#*^4Zy(~ zc=JA-fLCPt+~*qAvrCL1Ctq1edHXgooA(mU(xYTZQp5oWMq%dI) z?njb1y7^ky5jFLqq^By;$SJf{>Cs_VU&DiG^xOiV)?uNZc)=EDXGUMWHHU0~4Yro} zen9dPGmKIzm<4oZ@~inm^t*332xQya~-ohmvE2VWCXk@@g)9p02ze|Bi` zFc5O0{757tYAKq0SVf^&+O~^4g~*i8P|HJ6k6a zkM3lfFMDL*E(0i$;4Z^?%hG-s0oPo47n|-%WP!LGbz=9JM^0pPSk58#PJT|HFz~3h zLRzM5?h!`{fJlKxl)P~4>542sx90TZNu>8j6;S)XHPLe&2V}S zH-pZY>S442FPYAD(O_jOG^%vM{OYqIv?|1ogJ)2+O&5fB=f++SKP;<>;SZh(R12Jx zCr|KS0UAk4(A^F2Jh^1$vQ~-9L$+YFEDZ33>6`u_NsfshDUnNAX+|x6);T=SgKoA! zApAiUxfaP$`Jlws%3LSPpjdGh1D+T$hAbJeR3_cH*xdv!UMnZ3F)P35QN1c;y0b^c z*oIy%s&k_+PQR=~DI(N;C*ipby4;&;4M;1Q zs?5VtRvs_Q+Kh=|>v30Q0&9Rrunu;#tL?UVx?wRkdQ|*oR;Y6xX7NAiKnNHX3agT-yH0qy24%->{$=yG(yvR*RK)Hr_h8!r$Zvp+r&({maCH ziBNt5xXXV6&}lPTkE&9P<EP z5bpfKHA1Zb4#tqu{4!BJX_gSU{OL(`I-pltqhswM_te!M@Q5r+`ocB*%W~yAYL;^Q zVan~ORCjas>X>qC!{Xp%Mh7%j5KpBE8|f4^sZDqh)H7;~{@ZyaxdU9Z>+awm8##Fx8d?a{!K*J3<|w&&#=Jv(MoWJdI-hVA_Y=d7kziU@hDssthJv|6aB=Kqrl%|B8JJRz|wi?9B2-Y zBBE11Fan&jf*k`pBw(;*bvyDRN%G^K0L`Dp7F6; zgUnwU16!2fk~`Zc5@r1=Q|yjjOTgLnWh3L@4pfvS2NVh%YZ` zFlow~q7f%5y;N(GiCk7W==_pF1zmvVHrGf#L^xPuA66@$(y zNM9I)5iIRgDiI5s_OgVxB`bte)wehuAu1yUAHeLTO<=)X zBgrZ5&W0*2%T!fG52Kl=M|6o}(2=&$f&~bk_nZw^*=F+?iQJw}ThwuPqTcwOrFRJ@ z+7JN8I}>MZjX0SITaxRjEbd$eaSze969sCjmLRbGDU63Sp$?^{dbovhjHdR1)3&VZ~Q0N7gU4x(`63yS4MC2!-jo)teNuNG3A6~wG!Pv;3>-gXvwoM?a&yreM> z1^c2W%IFz!A_kS3B`z<*Gbv{x@JK1-HP5Hbl4jk_zmP1;4(@hO?Q;pyfy*iKN>)7C_$U|yU117}Zq!mFg;JJAGm)B9 zOrJ0OSAfR<2n@|DGe3T6}BzAtL)N2LgdWu;7)|1h(iswL0&p(YMJTrKv`YHmQ7ES%1QPmqN=D`%FjC} zLL2a66l<28pjjfR_+zw)d345HqSjPBdJ}nVU`#~)1V_#%YEQXh>oS7E8WgGSI0f>> zU`7iSRxAL_TME&oD+J3#s$nq1gitTh{m!DHZk1pAM#2cSB1-D_9E4mvY0TlJS_*R+ zPT%@@z?Q4>h=zv6iKv@0ayCYWr*W7Bc%1qPDTbYRoO7rop2 z2BKh(L{$k?7Boq%bDG6HyWtJ4>}v#BIb%nK5OUG9BcTxtGdr~-`pQ+e4PbLjatTLV zw~s~BAUI}du#J!=)Sx{qVSZH?#ys6A&W;yMhh#~#fKDabNb29NY*SlM2=-7TQbt8` zV&+tIxp&Ro?l24PRIUP~{dPJ9Q9C=*{I?cWRwq%eJT7fQ8_T$czaNa4vq(DCUM|y@ zBifeO2)o3fiVQqLASxX+od{GM)%A5X2V0a_xKxbTI zK<=D7uej4EG*pNf-qZ@9xpPH-x-ka$8%Z;}J4uLjNxct7q-O;`%MPbhSP3Nr%RnT5 zWX)ceD+&3mN3zC)nN@{K3p2d-j9`u8C}iJiu%oIp$2^}tR#ej|+H-s&lO{yRH=lI4 zv(XMLFF-AuPJ5Z_MHVG;o=Q|$8p$mFE*sCDNo=I7i;tzvXeWG2;Dp4easK@xJV-H| zF#}s)6X1ZLpATRge4c0?+e3zMGE*r&2Jkc`Qz}cX+dl!GdEw3K-L$q^BarKnJ!QR4 zI8vX1t$msqJhxd<{aC_nsR!{lPSkhO^Is};f5$Jd|6eWpN$$dWFS4_v^?O!NI<}|b z-+F#-1?)wZmvI2Peq~HDOmdWa`jR=)hC*k19TnG4Fs@AFh!F1MO|euP6W4e%pWVl+ zTS~;Y2Fh}HP+ir zw|_kkkzr7i$0Jps@f zFBp}&7{e8xY9U|{^NbQn{t8ff$>0;jW`dBxv=p+z9Nd5Iy zH3iHr(uoJHqP9??%2|1%RhLjLs zX?apI;~4Co-JZ$?_#kDxHYWn)vLkjLZ!@kXp28AVm&mPYgq&MQJ&nYYELo93hUP4i zmq&?%pBZ@_IxDz7EqIJYJ1jjRYRMVMC7@*~ba3ji%}M~M?Svg{hBIUDba=KxAQ{m! zMvi<)==OO=MoezQDLaom-H)uE=+Nq{0G={^_@rCTQQB4?NVi+R#?lDPs2*j;XaK0U zCSsY8SI5BCsph@mu^P-VbID%BC*z_dy~)sd6zQH}_m+!6&$YA%vZaWPcZK5Uj((9? zxg9f9#Vbq0(m;TJtnx?*PC$s~TP};lLIl&q(slk2+uB;-6>_R)eh4Dy-p)L2ie17&?%FkZ`LLf!+kYHqy z!YbbT}9iD{NryJ%3jr?JU7;(d-OBl^%Vo5fE$9=;il!)^sL$=f+f3Z%j#p3#MdN938cWf(-oJfaE~}o6fQ&z)-uucXv}%Ec$R`fkf4!_q@q8VlcP~M z#oEwnCg&7#r{H9fq@dFt7_=*-r?CWm9I_mmRr!(1Udp>ttS!1Nx{gU@24kOz+ZUe|s(y;PZW zV$tSvs9@KeRc1y`HN^CCZS>qlZfMNhwmi}RzGQAXR0Mupqo8*=TnGhsk}DevRmYuy zx_XsiZ$}026kqdE75KXnOLA0o&iti%=&x5EIe6JJFkZmUbpIHJ%zfp3>Q?FlA> z`Tfj?KJ=Eieu~~s+d0X1QBdOjOW#b!xNa|W39<0p`f}EYLdDr;PJNBqrQ9BsR-20q zW8S!NYey(?h}k7Ao@IGis@gombOD!$J>{|0=ld^SJ-KrQPh^kYxl*37U0Gd2FQfY_@l1KsA z7yrRG|3*}LBa4}to4qr!d}NBhJ0*Q)h-U8IZCeugjZ0YEv!i8BfkZvSSiYxo?v_lg z(vlKl(ecF23=}k9eORKO<58|@V3cEzyeOO%d*K|36xO`x^f1Yw(s?GRlf?0dFs#8s zfhdKH6c>Zz3O$@!a4s06N8x}6vVem?Rw?32nCNf7q=ffnAas<>0Z)s1r0|5cXMkrd z8q9L)-fO|rm!0aV?9L-X)e_0Bs*@85+1;g?M=xjc#GfPW(+jq7#)4J?Or?=}IalUt z*$j8rn<6Y^>*T1SdO#ls9o|VdieIB6`QAd#g@n)srgK z4FSonUYs7em0`#*r0|tjUipsi{I1{fTfXegZ+;UB>&2&+sF*NEsv3FEZXM60^>|3F z7L;2vNT5<9WKVwU<2oCl_?Rg-MYuyH3aQf_kEnM_$bRo3S1~{yVbo5y1$!z6q;yUf zx?t?80PbRX?gHjg#|fZ_ot+1Dq4b<}@b-DSs121)&e|h5^;+mWXLVIk)vZAW$;FA6 zj4F|Om~}en(aEoGQAFQwdXk6keyMo(gq_tex+yfjWMdB$2aP9^Cp*vWV2D|OFZW|2 zenX2{BdK=JUO-!O4RX)@|JWnZ?TA26Z8i5l;;pl>$+0(Mi9EviHmN5Y15|eUTJw;0|qKD0z+(qf1AejPW4~XHBnL-0>A00Cw>?fsLz*ke5Nq zt$g~%YRpjXfFg%~jmz!Q8KM}Q83&r7T8RgmSqRw z@f`+VWF;00b*rAHJ5!mLtjfp=)ld{c)^s6_IlNS!HGssLIDVpy*5s9lL<&b&luijI zV)lrLoUKd=L=YCwRKmLLvrAPQNS2_qiQh2ff=x2Ao_bM-Di;N+G*QY5A<>Xvv5qq1 zHK6J^yWE^$&eC{L6uame!kv0F)=?#dGAD+DXi6#))?(k3fJ;l+a`Il75e>YSxC`lM zE-5yzwR%(p9+$u>eaIsUAcetQFx-23L~m(CBw}!`c;Likr;**?k<#F(lE+Gu@@(E=-myApA~B28D=sgh`Jcz5eL+*H|K6Y{z-d4)XIoL_UPd}aMlT1?t+|JIJCSbNh0J+4IO7d-BK2qy zr<&$A2X3n{^WC(wJ6D-y+Gu=AVd47LfI}}K@yK5RI^+$(@$S~c5}2(pu!wGvi27(3 ziN-p;5Gs^UcM?;~iP&jy6$W4_Iy|Z#!w8Ik$+cu9F}%G;+QpY4h2dWahQtW0QS!@Y z0=je=JV+{Zoa6+@rU#`H+OMI0KWxv zmw)ukkp~Y9+V@JEeoYAVAVWQX8lP1OAWZ7W%qnr0IMt#v>Joe}Quyc5YzQ751DqO$Us5u^{(%H+($-U&4J59|^@seRe{ys0hVv&VDtZ3g z&8p4$AW3<5o;-fUS<=Bojvsq?gF7w`mbV-HXu)M&pdc=SVKDUQ5yarXCY+rHo*<>w zvnWDjEkf?%8L{0W6ccTV)GxK{=*hDIkZ?`qTVb~Xx(t5exV`FAQEK;k5zgfHB2&h? zzyVub7uT5o)25iOCtldczJV8Drd^E73ZcQAHWr3uIbbKV8h|a+4on%F)vsl#P={T= zxe(B2+pD}$yKhEu-Ev}LN{Km2C(W7v{C%Pqv?qvrT|IJLeh;gEPd#dmJ%(wvpY@( zxlm#+v1C|GP1*6NHp1fPUE8WstU`X?Sd4#K5Z6#5M*xZ= z^E*!-J$d!jM?d|6*M9U}kACvUAHDzmuYchGdGvt~Jo?bjJpRbX9>4bblShxacMl%i zec`!#Z+`Rrx4-S?Q{Q&~AN;xZKjY^={LIh3|Ms7A?}Zoc+{B045X2j6v>yPly19W8 zxIyLSiQ^F6DsW7V*KfUtDyTbY1A%+|Sqx`W?-b$zqnrWdji-+vhxr#*^6~B$l%%an z29T20@6ht>erEBKRx&^4U;O+I9k}oVS&Go-cy0u~9>4nP$KU@`@Bh(v|JaYd=Y8*a z&riJPC*JpyfA^oY$6=l{b$@3TMiGd}I-ecIdK{&DYy0=&SE32FezikFqCx$4kjYyoh=m%E<{UyiqSrV#H5zH_3Ok!x5Zf*;G^q$@H!Iw_u6%K71r-<#>|&X= ztRt;ZPA1M%t%j-$p4x)oXNkZsSw@Ri%f4BC9}N~8?m~9F8C*!wUfrQicxZQ3EY}9L zkO-M$+>VpLE89GuE}(bav!)@}LFuYQvJb@m&L&l^+l$&Myh1y`{*E^c2K>4wpiRd9 zT|dA)^L3bS-#GFwGyRv}Nu$nJ4> zh>DpdiaZRx^4J#KxXUOuE2^x}SkS z$1Dful3k1=ER#*OGOoYX5`NRD2Lw(7aD)4{NDF|?En0$AN{`Xd;Le=_3{7f zhd%MXpM3PnE7=k0Ve-KaAd-LO3Vh(epJU&>fA8M&FWvt+pZf4KKmGY%^ow8kqF?p! z^FIIPvwp$d`wu7>DX}B$SO3r;sPGXqltc?zBH&SgJeQ(C1_|?p zDzQSwU1O#hWnsjn1?i?4;{Am+c(IAH)6+g1^(;m8Jq$8N2o@)g&Ui&F{NX*RUw`z8 zANk>Tec$)J;~nq(TkrbOcmMDY{hc5GiNE{dmw)EbqfcN;;K1KFE?~yI^?{u~w{b(D z3qM%!=ZYs!9!0yTh_8D$&prR9x4h-EKlA7R!q52yzw~o|(HDH)FZ<=c;&VUk(?0Ft z!{=BMAZAJ)M1;7I7Rpm;RAh*S;?f+@hSKH49dY);ze(>=kti?D&kGYGC};O{Th-wq z6=m}pfG7+G`lFWY!3k%H7b>8vn#@5+a*#$9P!0ZyqF?nzq^`&iNqP$0m$F4zsbpA6 zoTbP=imHd+wM6gvoJUISB0F3gWf(bPR(vBxZl#Bt^Ph5s3`{ZTIFY6*vVv^&TgYr* zON10vA?DWwzc30C9jLLZKLw|WKooZj3$dMm#|T#suQnF!9q#6I>$UH2&3lDUSFxjNwqqP3MO=#F-sVxUdImAc#~#GHRO}uaPaHTZ zBY<4xHz50)A-c+`aqWGz6z+GhjzTOSIm?a!QMv{}wuy&DkKparA*a&R%w-B~$AvjN zT}Ur&q<*jC80@|5Fkw_WyNC&Jj`7CTD2Hig!s7A-sIZ)PCcivpZh(Q82&Js0JEcnn zi}s6me&1oa(sc1xfPyfRQkv76wq~w^T8N6LB^M!*O4JoTlRUZe{y*^h9{=DwU%&U_ zYmZ*L^C&*m2^k~fD^$Pn5o~<#BX4}s!$q|g-(vAQBz2((>%h@PVJ|Qr5XKiK&p$L)3H+Aj zJKy=?@Axwx{ocR)vG0H9Yxu+d*B|lUF2Dca=D~9ho_{m{M3{dd&F*73991lNFG?!I z7l-$;*FN#?AAj|S-}TC$`%6#0_D?)`%bQ;O++Xsh-|)pR{4-y6|5tqe-RGW1jylqw z;4?27`SZX{_BguKJXz?r3+Xwh+mI3p)G0ZdQjeXA?CdbUhQbbE``J{v;fc@WkJw^d zAm_nA34VZo5IUZ```z#Qi{JfM{=#4Sp1=Or|K<<<(7QhI@sHqG@K59ML)F6vH~6}X z59{6l7OD!dr*$&u#YXF=7m5LrKQesyLmzy{Pk-?H|Jo1m?BCpf>)YS{i~o^d_-nuD zSN?`y_eHK&j@$qtsZIC{nol>JDAvYud;(gklvchhUcdF z7N!e+UBiX-;YJklAbN)116>6}uFPzOwv zLeF?55>HuhA6$oCu^pg~TyC(MVE3JNVmnvDtUjxwTJjlY!zFB-XEOp=0yaGrmOmsdEH#6qK(U;p7szpAkdTp^v`cvA~{ z9BT9pS?nAG@Y#P(z%#6p%q7EAgLOg_P$Ll2j1awSX}bg-DFDQt!GkdlKcvM13K=3* z{1y#&_1=@a_wT&^>T|#J3s?gm7y+oyTU)_$G@-qY!m68k!5P1Bf{$|e(8;$7e40Z$ zA9(*q|K$Jp^0)n|kNm(pUVY^w`1F1M;R_F5cr*Tm0OIjCS@7`@f9%YmiVb)2MH6U` zp9(`W9_&kB_wPM<@Z#e;H%NW$Bd@*uJ%8@VUSIEno55Ui^xG>E<&( zhk2yupIGC5_s-3odnm)-KVpCfnm0h=!ujE!X5$vMWA_{+Vp?FWnaC^c@|3^h*=N71 zSCXU+xP*0FvjGz`d`_3m9|3T&AMQI~{9u0%zrXkRJ@0+bpZ@mm{L|m@XTSHaeE&yZ zem}do_x!zwFWkKN7T~y7{MDe><4E9l{y{>sAYLF#A7z$&+dIPOb_Mgi^P$GyD+Xo zcfD%hTnbGvF^F?R2F;odw$32_?g`52)&*Gegs4StmW9gCH%ix#+6oO!dBzh+ObnNe z5v!BXJ-LZUsl-etD2U?wEdDD%y{a%Xk1G<$Z(`akbzfvl3X#zpn{ATWfhVDX+W00Ps}G?{@n+ZUg0c)D0JtU5g(jM1lc?h@khfCUj4|E zM-Lu?sGqUUYdZi@yIfH+7q+>Hq_3*n1FU#G{)zXz{B?iygWvq^kAM8f@y`YBKljqj zOK-tPetZ~zbO(P{9lt;l(wU5I_#;WXv=VWP=-5PA{V6mm-o-Bk-Q2u%@5zfG`N%u| z#z)`zjtBqc*L>=4|IKguUBC0@^MAEIk;TpiKR>)uAs4()HRPq9_$vjmt2D>MT|>=$ z_3_%4asb5?*);9%B~o6a?H;7?vwnM{2wG55i9YRTc<`B@KQXX6XYm+6V$si@!^b;fkXJ`9TZ9Kz_yeo62M^!Du({mE$9M4q z1^)%?dp9rgzpVH8(c}01*n7X>8@~Pf8 zu5q%p$J{aMiQ&MIu8>M6E2AF*Vu{K*3NFJ%6abzrN#b&pZA1xp)ROK(W~j12#u9-f zb5s|GS~=Ws7iU1|RJnKwrWo>+uwEqxog!E%)Ro9c$%;`fB}CmM4C-)XR@#y+I^|NC z)`D;q88&uy%mi#$ZENa$>)aW)*TuR6SKnVyi4; zQkaC1saq&Ye!H#E9vFvC`9&gdx1Hj;-Q!$G?U5luh-2+KDsT$Fcm#%%Mu>nFbB~RK zUrz8CPy>=9bHyL7y=QYG-Y;-QVftv);W37q%O65A(z{57p^73csF@31EUuo+Em1V` ztML(BMVcnH~XfDX=l6Bu#$Iln46RRm|` zF)UC*10HtPidG22MT_-(KM)KA^NcmMwLFFv|=FaCQn*fqDRYRRwp zR56aSs^CfS3Q+?7;+iHtXMzuRT=?h-2{-re-aLE}|C+#)4}J9S{_$`6z&C#Tr+&$A zeChZ8J2zkOg~1cN`~e_-{R#g9F)p4JK7x|vV%ct4ym@vr+VYDEaR}om=62^i7P=Il z(OA{KfE7FW2tNbxKaCV#aN)x=e$5Mx_rB-HzU|xor*Ha}Z-3_x{tf(E|NVzAK77-s zpk@Ap5d4eRI3YX@{3kGMHZ)FK%Om8TH4WTlP(?)JpBzwOBIA_azwwn{{dK?nH-G8x{x|;BU-^Z<>bd70a!ORd?TCMn@tFVg z;`|>^X|NVV71V)3n@_R0E2}vUOz1a-jS0s$M-OL;94?%Dl0~F*kLxnryEOb-V{ed* zx4fvYB{%M@DFEF1d4s08!sr_jdy45CZP*o5hG@UAwBZnp+(+($3ms0i1D<8iPKJ1L za+|~~rdQBBj|h#)Z?aBm@`SVkGzUop_?S>MJc|z)-rN|-NQ!C;_I+RT zb&uZrzUQ8M@bFDTB=&Q~%4I@BH(h_AmdoxBS6Bbob|d1_!`@S0N_F zDOR6B6}6)p3xmPy;je0FYNj>xyG%I5+tgoDb3~)GF5R=vFH?Q>ztUCHm0HV z0OxvsbOu$-VpVH~a}+%VQ7v)rNRasAG)fhmeBpPn-eiK7QNE^`JNTHYml zR(P%5g=O0)$apSFdcO+kF2B;mKPZ}&>CKa-)kp8v)5|$Y4eFQ)xrij8@e-7w~pwqR8$o)(=UVZy--YBSex;144XKty%x zI@tsJCRSM@yI-tW7EicZG85adU{v=0=?;7P}zn1%o!Va{dbmao!BrQvB= zX`(K+mEUM_#mC>Upp%@q7>)N~+8in`90lAX9=AGr{N}AIaws9NpLoaLeDA;eZ-3+m zzW@Hi=U;l$oAH|;cOJdYpE?AudyFGz&OYU5Rg!9jXBpB^D?)O>;X)cz((4N=em%yo zwR{}^k!)c@Uo_z!>efB!B2 z^G9EK|J~=_bpOq7$In6dJdGcB?%jD5e1VU27APrra$aPLqFQ@@;G?HNwU9yv6F`mi z`l~&SG?G$3p8(*eFZ_IV_rd*}=imDJ>#zUWKl7dc+jo7}m;R>T`1^m~zyGVh_zQu= zoZ1(ENlESNt|bp=5>i}*@UwGBM<^vBGA>|rn3Js{^6QR#rq%(lp%i7viMvvYCPjJ) zgAK>V;mItnH(04clvSjFz%fJ1pgS*Cr->Muvt#yu+eJ(!N3+2J$6h6wscItbU}ez* z+JcE*ce*2ldnm>tjL<)LRV8{c70ClJX2I-(YZgx(sE&z-qM(R!$TZUO;FRqI!Ib3`!9u7xC{-yv-QgaBbIBERVk8Xr7>5`%BFSKSb;oFf zO?KbGHU|-^B1Wkt?{mfB53B2EjuWFgJtZTVE8k6JrMZeaQahC~J<({JR@8|&s#U=W z-xnV8B1xFuQP0xL?1H2Lra1n^-C-Io*6fPISvNsADrWd)f|bS@Jdtn0N)d&|)!T7y z)#yNqiEE%nUo2k$ZVG|$Oa;BmYLBv^Y=Y3EYZNI@OeZSBqbyMnfVIlk=qf9oRAhC9 zROu?uVbBgen#@EoFFZ6M`_i^DOf~$~aw$U1rmqs}U4AND!O4lmAdmCVm!tE*Ri@q^ zxk~VqQz(4i?gO=breoyImRn`LITUs2^A64Np31G`C(5MYf8WMzz||MOA?b@$Ms#P@ zC}i$_xp{KUU<1*@Plo;Q8lb|N8{Z;LP9t90sW+oXP!OUA|E`Nndzr{2t(mEZ&gp7L4vk7W3y&Kkx zUxABNIyokRe~$9#wbx&Vfh=73&+Xsbzxm(?fBHZA1OM^oe%?Rv$Nrl?{_4j+{P0b0 zy}AD&em@SsoyC7o9{&aZM^ElQesTi?|0>8hZ!uc{peSU!T&&?*n*l&yh{QWPfmBjW zCV*ObJn)6T@egY7OM4LT0QVlW? zZ*~D=EcT?rlIL=VqjNhpcEO7W#MU*)$032wZl)g8jkn5$_SR**nHGw2L-JILQ8?Io z1mhMdDJovY2b}Sc+fBOK%N*xieD+Rd* z4gAdyl%_~&Q2{X`@@stVRHbMGnucHP;9e;ywERKE9|c$>>QWJ_M60YBK^j?IQ!!7sjyz-$R|JQ%_kNm#>@b0Ux-8}yS*%<+bpDpp5Irue|{JfrQoWF{2 zMzmw8Ck61!7*!LVHourB0PR^b>tpiN&R-J(5+5D#Ve-Ml=bwM@rl0!OZ~c)k`7N)% z`$zaI=BNXq{RaT*9#1QMHwZ8PFOa&Va-QC6a_~8Lgt^;Et4I1P@iatlu^48K@8-|3P%%(po#+ z0C1dQ;yol=)CflUyypBU2g>;s{Z2(74LE;7H)KmK=jZ)nG}`^*#zpUbOq?S z;EzyX^9`0@>tQbc=5gm=zDg52DmyZXKn9a^gbLoy3m73$dkR1a;`&Fe4!?J5SfnfSUNA&UE z%mW>!q>o*&afvtXT!jyBH?5KI#lC7|5zBbw2Lnl^H3@?tNrdi|LP<<3Aj-yFGGfDF zSBA{ES4HZM@3JgAA)!qz)yd|$)fWOp<53>1s%kt5;;|c~MDr?rQ@TRB2Y)%p5Ldoc zgdA!iTZ}zuOGz}8g>oB+(so3Wkm3Y6HW8nOwd9j#EZP76%iDVZ$W~P8<1^h8U*J9P zfkZ_G#ej&SxF{luiA59)C;7wc?yWj?&Ue0Zs&4Gt-6;oy*yz4?` z`1VU{d(+Mpo1$Q`v=jLfRk?&vDoS9CRLUXy@Cry#bnFa_KD1;s;apX^LBWayH~}dd>iJF$D@mciHzWypGYCG$VW+cIxMmlj(ZhwE zv#pv}SemUA>zIw`V3ojurDRsIFtkG7nB@|xwz81kRiatgLK8ja!(KVT()xj;QL=5Y zvKcK^a21$e6c8X@0%tu})Mb1wnJy=cYZ|9glD8ZZm!wjyEvIuKpou;=bKR1>v^=X> zxzU?-Aa^}W?8sKx7HTN&LWRosS7C>zU$U{LMhZPjQECK25sQ^GGMf@%p~A6?fQuZu zFI#~~sLLGk%q==>tEH`KCIxZCjJA3j7#8z(d~yiyfVBOKG4vig@8RmUe&yG^d=b0*zH6rKD2Z z0(wV_#;#O!GEyaC4iZL^>ezt$~3IP%30iR2pjTYA6Riv86)gid9|!SXfJ_rNuG_iAv?5z$$d3ilAcGuLv`O zX8~Dt;&#t}<)xQg(m!`W|Ih#~x*(k5ZyexZ8@#+#!MdVe)hGlP<|^e) ze4^2$={|SX^o1Uh0$uuCK&EM(+)$N*%7h2C-l@r69@jv6a;(39YGBU%8?U`;mt9|X z+;Lw80v;#h^uwD-$^(`ezgs2qaHYYwvdDVmlsA{EpS5b*7doY3sLx=I-bYYwb{Fk# z#7jQmde&7J{jOu1L1yo@+RVXbn5Yz*Ihra$^~UsIqOwZtZa|(V|NJ4rRDlR3XlNw? z)LbY+H|IY5=vATGES9D*)411EXKlc5*Z!I0GkI*Jr7Pwm2s@b+`Jcr$4}oa%(CTZRwY3oyAcn+pO#g6JB{wsA&zatQw^dN}k)fQju(oV|H3;s0PcX zW;zxM|3fWA-*m0~5VD!2~HhHZU7F-J1!k;U$UrgvjTXP~=k}ycMq?kI=!jdYp*J%K?C_-MP_fLFWN%8TwKi+z0;jwvLYwaE>sz^e>275+lC!+7xjQ=dBcZEt)3(ubGea}Ma| zHA3Ve9D0n(k%A+Yv_=Dw6C5SHN1ueLOZ`}M4mu|S5+_@%0*aa_G|MLF%Dw6je+j$m znmR%Vv`Q)PB`?CM6j&>*DsFYTEvz|H>?Ka=%$Oyz(K;oLy|lGvJtw4GWXxkCBTimT z3z>mW6l$kB&-4W#7)QxIT>)s$2?{yoM6J>#8UsHWReEvQDlf3vcfY5Oe~W;GKn3Lt69gMA9Uztc9pb3^byfict*( z^jSA{L6sr(ke4#&CFl(GS@Z=ad|@^tVObGKDMrmNha41=i?#HDmYgi1|U6fo@tLnJm7 z5x&6*_x*?Feg6mFf9b3Cy5;7@ZQKXe{a|?XWq_=Mfa|d-GU61ns3yK#dpN?S9T&@T zM`+DbLSq%;$cin2VnLT~B`0TQnQSxlxM5#ni7sW zhO8oNe8gh?tZXODriDO2w!&Kx~YU5)4eE(R&8y4FA1fBN-6K` z4PT7j6Sc^K=1-2f#3>zTh8~Vu64L-#hgKSEZCNQ+`DIu3M2S;FF$*_nNkqxATm><6 zvpjrhMM!bbnysvfeivI=&AlO)VX2=%!X&L?7}bQWQ(xwRLX{#eIsrLNQs|;vFlJos z)ojOQW}U4xAKtCloTDhem^= zO(I0FGzo>1kz(XXnRA-WY88RZwt|6SO^bET&@3jR6%tClMKefj9V#}_vaT$oLY0P! zk%n2WiZQi}$(;JJRoD+!hG!en&~qo3QqaVc1r0g5D}}0NRkdrQ270^#w`bYX zTVJ==)ZO>#BfmKCMnFWB3j&~#AVQWrvYAYvN6Lwf0u9FG4HP4)PFPfgQ*%`XWb6i< z4eXwd`HyRW>50CbpHwbcVq;-7L8*d0xs z=0aQ3Ucau^I`4bu?fae&t{z#_H-Ft}J`{x1@Rom>3egSDnL6n)=Atm`ZYuZDqKevB z!a}|wqNYQn0$LSRZWv8X%WO~>)>M-sBeVl@#5)*0_>LfU!gs4R)tnq=W z&bj}+&9=|t8Q>%zh{8wDaY+C&wIW){4I9BzQ!#5op)8?OiW+sD3pNIbD$HrqI(ctE zJaUu4cc3M+2IVAH%Bn_DYp~7Dl3tB^w^)ETGo`|rt22?W%WFSjPHqtKv&yYK4I6Q|sBV?YqM2^$CMqWB?86@X=ITq0*geO56jJ(QRE|lMj1v(x^wN=>W}C=$<&K4P{j+;O(_( zJdq92-EZ4>{DvF*=FHcj*td+qgoA+wlo?5yVn)!CVs^5Df5|FWu31NYVgogDl3gs& zP(Fdih?HG)m4GQ3#7Xva&OdU)yIM@{)Z|!eU}*gQd+&bBJ2(C5MLokqILF|y+Ft%l zi%a>anx=0Z;YK`UWWMx~jjFAKgelJR2bHQf9FRCqc<`;6$a&B7=MO&Yup^Ic4bE-P znLj-~!TiQgdg%#0WXKSd13b|Znu&R-oP~gi)EuL}?9`EFfVFY}MSk4_Y>g%JC5NF( z3b_=SQFru3Jq8v+BH;rJJiMXB$2we}=pP!o{oXrve$|_Pbk3>I-|+?b$N&mmB5PH4 zvp+}9`~!tZ{AV35N_~i3T%ihFds&AK1&Zry zQsr*xM~rv>4HBgO6#XFmt?#8@23(qmZejZueqov?_`+ zKUPjlYo=CnZ4V_+jejhXA6hYQO>4I!GBlXQq+`s~iZz5~Ol-5FZUa3^I%3IVtV>Jn^MM2Jsl)`T^&AGDNBr{cLWd&Q5O_-pWC8#9SN4IX6p_xPM z#EhIvDSESZ!>wjW!s2}7hww_oP~a*|(d$GsplVH-g+=HGESaEJMUHADxg51meskzm4!{aREq*BPZf)2YhV3LynEyA#@L^u)!gx-CpA3kln zn=QkFEeiI7TgAZq%j zPS%&Zq--p-6h-c0OVh-9kUL7O=vaHO44AP(r!cg{no3he8&*~<(Ue8Akg2LwQnM%V zfuU^+ae#J_OR0cPIROc{f`L)e+RVK~4|>Thw~Z#{kSR0bp8`|Ec}%fGWIv9H_3$e| zFYsBHRvW+IHy7{rpj%4dhq>Urj-L*)D@+zu7zFCGwt_LWi3=qh(5S1*?LMv1*Nlpa_vMrJAi{0ui(Lycxi#0>CR_IzD z%Jv0+$fTkmELunxyDH{_kq+}i1tE}#OCE|O0C$-?52_2=$kZ|i)2bT2rLYqfuRS0!6#sWz;VQ=uQ$r@Hw)6p>(%o$pQV*!d{EanEJbx`IPdXBo@mGZ`3 zAtz(98y{PG^l?kRaZ3Nv6?ngMy4^dyV&&uocRl!%OXq$3qYMAzKXkCv^%;~|yzM4x zmXQp>?I7ZCSFJ(wrXbrUC@U!oRg7sgA>n1Zb+}Ta0g9$GV0qQcfRQDwSY^q%s?^+} zt`Jr`tk4Gt4Y5+#$sz$3>1n{$eA|pE7NE5Ix)VmtBqCkP3vfE#YIhG|Vz5zd`0M0EHy9Xgkk-#8#n4cRn)OmB zXjlNE7vy?%F{z2dzE}aEob}P;scX!rn@F4#C05L16jyRHiOY4>i5he3A~6qHXk!0X zT2RtxrzZ4rS5zufK~a-gR*qD+o-(gZLk|}wtBgiFp({G@LaL>NQ&JpxarWPCkNo=b zJB~c2Z)omRtCv49B{F$Q1k($TZiS~x7D`k`;ap2x(W06WC1rxrE9B}8-_>-HRQ!d? zMZiSHtGQ<{K;?H&;xeYUr*C-PU8nr_*rh+mt!JEO;CUxZ&fskt8MI!3i-51oySFmE z1fA82Wa~SBfQnISw?;=t-?aC;PyhCr{c{%ji*QJrkIDpA-iQLqLssCEp$8?F7KD1W zDoi9qn=hroeKJgN5?P117!LGkioqIk(4=*RUx3E+Ono&aCj$FK3`BgRQ5(;7_YU;0 z86A7go8SAZpZ}U?hjI^qGW_H{;XcZBf~?F;%<|6OO7H)qRyr)}m>9L@BRc0y?rPFi zD7c1xPI7IeW^s(+o27Rxx_W!~#a#ReIDB9quSvZ0z(0N#ZgOHOUgNkJo|?o95_~lQ zl<^A~tl*;nm<)<95y?5rl|-XMkUIVk)}^n+tm&qa{ARb>B~GP~q)mjhVWfUq&^!N2 z8Rah8npG`XBB5n7DVOUST=Hv$%nCYPU}~d9i_ouwl)k9bXctYG=XvXMx!jrMk{Cm7 zx=mYl7j&(iHyuNjzOt9BLx9<$5Tq37r?+RtNngM3$fM^hT`@7#JNWXKJ?2C2o3qPH zCI$uudU}^1dF1NvoW*c5B^u_2szocvm^3<5C6k11$urBlS9m9ogk6mSSgRHR`G;6O<03|LiW7`4i_7+K(#@(QG= z&7=T1x&KScOuo3yq>yLQiT=b0&lohR*)q1Pj^35vR$eq}YZD}*XH4Nbxtmxij<6UjJZ=tQFXBKg*bF7ePstA+az zw}0?}*4X%TyT$LFF*x-iahVbrMcf%%?ckO56rogrVyeUn_B5fKC9R2EfYZ4KFNYdH z*+zaDEmaeg>c)XP?85k)x|6;49rW3rku^*jt^pEBY}e*43 z%pm+$J1IQ7+!`4f*?aGIUwqMpeRCG#oeDqUKwpYPiBik1Qv%^zT~w>{No><}h}i)} z7A;*hXQ|sJECpHlag@{P!SC}vQDlfKFM=lr_r21J3=d z6bWH+D*{QYkU0DbGpRVWRcn@-**Xd4R^WGu1)3G4EdQRYd7CF(&K2?FJ8IxAmAk{+KKzSf}|Xf+W5&lP=j1@2(f!A z0Tn|%3B3kvDX)1cKrF}76{Fb@ONIea?oAoU$gCt`-G8l>^(|F&l|t29)zoX`5}(YS zBq~@v28UUVY-Ic@s>+)T%ck(NN$v>=dX*aI0lkoSD#y5V5?1nZiey`}E+ZCO`iW9h zDUn@6mQbEdE?wPLjs&Jm+KgTS@;b4uV1-^m9aSaQlY=1onl>T50f z!k0EW_uO?3Ibx&pE?ED|UtWb@vTXG)`_l1K4?f6;cymeYMK7e1c|l;l=&~7YM#-H{ ztx#x{Vhu&Oh|_4F{__HW5?v4Isl3dpR-t)d)#P0oMFOK2h8?!l!ar9ks;OPcYT(oi z-58@9W=@haMa87-Y37z47+0jKv}9+cJPT*4lpM&gqm&-Y&Y9$;_fm(Bf-I*3psIF> zi+U}1_URpfWK0F6GVCEQx~Q%~9lB%zAe*z6(4iV$Mx5EiV=q-3&=;-TN~d;ex+6I! zCLead5(~B{AfAmWW1Ui&tE!esK}bY~ri#h(B$54EiHnX#fhu!(B)CiAR5;0hWg?jelw>#nRRGi55}4{AX-9Q6+(3LV6#Y1NT1&c{&CeSGqtGq(&pj=_441NIA$0^#(iF<<+cZOS7UF4m1@b zV^$KiR$VpG4jIs)mLV)H2(UMbFe_EqL`dxS&{38=T9TWNo_Z>@nW+$1I8rcXsSAMI zj9y7B_cB|tf*3U~WtQed3BrkxAycDJV4ruUr0F;XMRII7VmWd^L5R09Z zp`}T|MuM$y^+fIT=+)P>Zog|_YI2>|zHa_|-fBB2&3*IU3*Pw#T<^B;xo6_)Yk*IL zB3IH37Lb<%r0hW57BcIw1y+iM+&v&7k0yP&z>Ax@4A47tzNgN>oRUbI6!Id4DVBiB z9j+w!ST}mnL`S3|-i07SX@y=k!#O`Kl#A3f0eEkKB(tH~k|=zI;A2veAef|<%@dPa zP!^V51WzT)lOWcltl~DR=4N5;Dw~h04p{4V!sc9M4hgv#7cT(v=muQgAd*p+b&8GY zQ-RA;t%jL&N`>xq9T<$6;20g0Q!_TlY@U)pLCHaNS$Ym+g9HV@^zvCqp^>_{hPnF* zhF2tAaz|N83J_R1oNN-X$t`q?G(jqNc~}dm&Z<)y!yC+a$IN^CntqTdWl+OL#`pYi zW1_D;cH`gfKlxB3^5R@0(rCvPdg2Er6a@8XPqqj+CvYY{Eg`)%kii^&&ToG2KH3p zsz$gdmD>tB^?6+=ThMjzpoJ4$yr9ExA?oSb=iMK>>__Jh&YRye#ot)tV?Q}t1R`kx zGIYGyXmCJN66vZ^HHx>?*v}$`iqZ%@#i?Ebdnw(uqu6p zqZ%u!l-ppT<1sYpWE1@L^A*#*6O;S_hui-4r+2*TKgP!6%S2hn;A`* zWi2VszOF!L(Ca#;Gw9ALCeQzE>4b2O8n|78`lq~SoKC+DkI|G~j83P9;IPoVOtT!* zUxGBg+~V}y_ByCLJ*yU)$fQK>?-*L3(-GS4IJgLn00|Qi9k(E&&`rX`iSEy;9BW)Rk3XxS_?Zc1>GDK?E7ZJw}} zA|73eQg5jP>NSf(d-iI^>Y9PN?Tjj53&z^TkKb_<>f`O!+*j;^AOD(Kvu1j9ls}cy z(=+EqJB{}7^G{Rv+^t={eFtw~6!@7I85Hxs3Q}85!H-IfJQckQi&bagz(h&l5#&K5gfh`BuFZZypM9 zWR7BWfCs)3$-crCE#v_2sH>1atRSqc=sWfqs+kLy;g?2{(p+J03aTDlSCj1_-McWP*0^3cb7l zz%?Jgg|oW-ulxPF7~q=#JoQg!|JIkAw1Bz!5Y0Z&Wn%QlVCY!In#lqN5NN`I4x3FY2v;>EA&k!dJ|7HOSyYXNr_z6tr^SGOVKf-exXyVW*k&fJ*6eBZ6Jzu z5j#3PVq4&@hqnV9sga#VZ3sO32a@X^In?<}*plb%M2_p}H zejNv6?1%`NoERO$r&#dn9b1K;{>9n<^ynBX_-ydQ4^2$9#-Y^Z`JZ5pdU%?%C(8Su=vCXlcX3 zWjd4By9Acn6T7r|Ck?D=qasBvica-P!CY&7>}0VymTuY{b%PfQjF>vQrm{YkN`rXA zN0E{YTUKaZcr3e6pQWpzSvHw?k?^wY%5}M|BF*x(sfe*`69A$WSM>-YhfWnG!I|LK zfI^GRY+NLWn^w{6LM3I2TKWf+)!@IYu@#hvL^k1~4GexsAnC`brA`w`eyBi6hDdcP zbScye6=}GRrCOyy&I5&VB3+*NN|$M(7;APYOlv~OM50%Uw08!S*(|f%OPH&ZEfkyw z!6IUE5+o1XSQYqoV1a1Ky=?MAa9q$CyotP_V1h5wUiJGwJbd0oLxXeiORae9mdAyl zpdq9_V}gmr77)jvS|`@f#S3SU7-8agKg72hCdVhn$FS!4K2AZ~e#eg6FfIciXtn3? zdx*$W9tg`FDmxV+bE`tnRAH0<<{L&xA@yJsT3E5AFE#3EE&bM+!|&XuXK;|>u7&6- z1PE*kQafwdebvdBK|YvB9c>8c98!Mi=P4(idh}68wFlS5kH6!#e=^pQ10Jcyq7B4V zlBf#d(MIrGO3vIfUYe`Mq@e~Z>_Mf%Gi)X?)F^`ow5X<;3_Lbem~|*9-y~*W+Ry>S z#D^FSDRC`Bd1F;gC_;ry(~{1tNg&kR2LlBKwn)i1t^tny(ieB!ar;;O`^#|nzz%^5 z!j>0ON7E@XOQ4}x9?0@bdGc<@u|zMOR>f%1wyg~%vO9AKzaDG!IzXujRKdDg@PvTw z7I$ciSd=^oHw+`8+j|ruZhv6-#r_je3}~QZ$0Iy*{~Q@5yiq&pDjtGO2TMDz;RZ+ zg5bz2_Zk{e3FQ=^brBnm#m9Z|gkz5T>avIL8=AXd-a6|nU$XT7op#34w%O*G!$1F$ zm+hQg0>((NlH62JI=>b|4D)H^xR8Xju# zWQ#k z@JXAs=gx1>9j3F9@$vf~7{BS}m4Cfd^s9O;8qA`6DUR?M0X-t zOJrD8kF~_zRVFZ|j|?W-LxU^-cHQ{Tf7QS1%fkwx#2^qSiesjSR6|F^-qfi~>{M3t zoQgj~1t$Xo{g?jqe?It;16#xMnJnBr;n$&XUzX67MYJkwrn+iLm2GZ>War39(5QQ--QJUyy41CEiOf%f*+^k4{_niFzjb> z<-)TypRvJ;3B@fczUvBDj57#`3W=afE)0Tem8fu^Afjd}ZQzQpLIf-eKeUY>$K>4E zXTJmfa@Ef_+;}6*frQq5T@F+1phO^>fkdu%hxk8`BAVD%*AAS~&s=gssZ!UBkY}}> z4SHt7N83{)Ss3U1J4Q@=UJ~=9UoVU=BQnR#)L>Zh<%S@oP%S*G3TLT0dp?s^wVquc z4$UF+vn8w=qntG>=(VfOVwhc&iC8;SYJqu!_FCE&Y45P;2)sjsg4wf5V%+E%)><;` zqFGN|SC5Un#U5jx^~JOR06+jqL_t)x@S4mE-J)8>9K0Him;s3JYPayL=kN=6So*B3 zrmnnh?596pe(-;jpPIukFDzklXDr_}uOIcq%M)np=6Ojbm`& z{#ZNQ88-vkrv#<_MmcG*ZwG>(pZU+v9&*Hyhd*tb?M^=NOFO=3hq?3S-FM&pr+@o9 zM;>wbYxmgW^2>j_^)sK!^x{ue8aLjs1vOkeh_X-3kv%-v$!Chtg#(WVB_#*qknk=b z4oRuQa{x9>S}G-5YhvjFOKSD@-gWn#+dXIdr#<5tzx?GT=!&_dsbv_apaKnWx{CCu zDzMNZjxvTysL!y<46P5XT$#b55@#=!hyl&)QIzb$YT0{6U`P!B0NOC+glie#sgKx& zaWe4_;)ZobPL;Ah5rQo8uK24Mc;u(SS|o)4Jng{Q38yvBCuE70+~_>h(XkJm0h&E0 z?s6H_&`BWt7nxy;a4IP~Xiz!L33`aGSO9E5lfMgtVkyd23|Y$@2sX%_w{=|xNzQ5kTzXB#P?@2gKjzq|_SMz|$6n^#ybk(`4+!D}C2o?ple3x`` zvVWlewp$jz{;eOF?(Jv))Hu%m@zf>sVmE^ti6m%6M90GPf-NZo17v~0a~!2^zidJ5 zCwZoO`xrf#fyCJOWDkF502=Lff4gsBaPHiJfk8Z#gxxUq>0{#)_-4}4k&!7pf4)&MUC`tZ%`Fy#dS;WXJy4_=)jaU;57pg7Za7#=CQXO|UJXW~FuFoYi&9BMDS z|CSFO@Y!?DIaO%vgB>H(g2<5!`C-Rw1*VB4{bW_vNTHIH`1a~v6Uc_LOPCRA>I7OM zS@}(!<$CsBYgWu0ezGt5bmCCAu@gv!To()_uBER;PQ7FiOj2m-B2?);wkdk2h5h6Z z&_==b;EJAq!^mssOHZtul5kK3AO)sDYlcwaTD=-aDio!jxuPRi>-t$-Re-2C!30E% zj-^>bEt24sbjYxttIW#gwpCc(k`w3I$i$Sh2Q5iV7CLqV4zGkn{^CGhNy^=0NnPWF z{FwvAZ9KM9jI!%8)&&=wMxTnkteV$Yj99V%qb@jW58XLslIs&*89ZA9@zW6_z~=7 zU;N67GtX_UH-G%T`};>H2U|VM=MHZE*@N+&$T)CDj5IU^Fyt!Qlsm2zB|A`T;kuWh zR*F&`QRso4X*~4*^Pm6x=wpxD=Gi;^=)!Y1+-MO}fO|2If83`3`RPw=zS+h<{mCWs z)|tz^;Nk@D*7J!V95ir9zyTIN=fc8s`PxN`a|o)~Pr#6e2?h0-6zZvSQ3iKFpz%ehFCJK65fe zN>jFrifMt6-Dj4W4ZY^Pl18nNP{+Qe)POmRuw`)~#8w_F5srmS=o8AZLOnQ1Vsl6c z=ML7BiiNTF;dEAFoG(t7;N<-dyDJcleaTt%3R<>UFj5Tx13}4QByhp9M}y?-GaPRm z;hLs0Cw0=$LJ+2jL~;9qIqY~t7xjpX*eFV=s~8#*O>_65(@yUlS>2ku4!4VcuW1Va&Bstd??iCjVtPi6?cP*xBaLYl$^9&ruEbdTcK zW>$erhK;s7XV|+m#=v6 z!3XcS;~%%*ap!f{{q3e(ZvOji|5&+f>D0t1t{K_`{NRR0lPopQxT$IeV>HPpO*h9O zHR{2GwgzQ{{@fyGM29vCmRR@Vfw6(P>t1x>**`dEw>P|LPkhqMaUw1$MK&TCG~?t) zai!GBb@b*sDkzqq5^!pZr+Oi`Mlx)GqZ6glmzsm2eVvsh5h~2w25osaveDcHN)SSe zO{g<543ZUjK zVn^e50Jy{9K0$rR15p%e_C}c|N#Pw5S=bB)RFT`Hl-3r4Uk;XFRj)ajuhCG4f+f~; zGpt0_^VYT`pY$n7HkLy`*pyZG8@%EXZH8c9);Cfo6Mz`U6)4D%dn-8O5+$d`n50mM zq}WBx(G|I(j(B8ax|2ds&77$kCF{T{=p-v^WLq>tC*`p0vLouyJ^zUY?+S)2D5FSA zG#sUyl0}#6)(jhpq?lmXNOgAR;&9!x1J_NDa5?P_8(D@-bn(r{xP3D3WxMu%>F~P` z{o?d}|L9w`WO&)K;nwtMe|uu14L3dN*um|#jszxixJXqoCZZ}yn%$;Ks0B`v&a~Ev zJ59cJ(y6#ZcFf_2E?Ts3Y;+6<1vtjmin90KZ+g?4_QEYY)Nu-qTUy^c`@&0qamniC zD>i@p=C6DG9?yH;b1_Uf`G4TP`_DM*ySwl9>YHy~{OvQo{qT|{JMFmR``^F+0vv67 zdT#mqZ6};~((Crz6F>2B#u@+b;Uy0}{pnAC&pY4w_{TqvX~aBf_5S0IJ5Mox#t2xFD8XFVgd8A*|pxO1EbE7 zfzR4*Fkw{;lcZc5JVGctRHxhwJN%U<3|Apn!Kj(>_)EaikV-|gvdGG+K%Oje$4t6e zp{jHi56z z!v}vSCji7$6)}LIqiJ~T)?}C(ouGjg@Eifpjxnnd(R6!!&FZPik@=6=Wc%kn=OsJs z_`(tFW}%j8oI2f(J!5HG9;ZCjIvwx zQm3OcQq(E`7f6)VS#UH`v-GE~MoyCWQLGD3nsnGIbP2%U{pBa%Rl4P`Fr*Hf_}6PK z)CF5D@;t0W|7@+n%P{3Y2RqD-8AhQ=Kh2_G)MyqwOE2LUGgGhJEYww~#oYISifB^kk$*mj^+Di!sadzjbY7OTRHJu^Xu8g@_V0N2I7#Cn9f{gBO! zIGK%ZUEscEd+yub{{oMDBH5$F0#mppXk@2=TsvnM`x`)$^YjKE2&J*53V-oc*4 zce2SCZv(eS){N}8|A)@{?wP}L)?2vl!t*b<_-iMfeE4Bs_|OOU$8qN`H~jU#{_Dtd z&%N+Z*IYGc?z%Y3_}QhGoPXhuFS_vikKN!g*Ij?Z*S`GKU;pN}x8AfEKmLcO11`Sc z!qdL_ouB;pyr)0?X&`*%Z+`!(*S%r+gAZ=8)l*lFtohkxmwoTti+*<5#gAQo5eWSG zkJr9wpLhKI<{LNJWb<}^@A>DQcgE>woqzuKe|7og=bnAxs*yFTSFbqZ>t`<9U?DD8 zZ~?%)R3!peAWlWIn z2Cl(p`I^}Y6)H@IksjgUpX%JGT5%zCZ_9r6>&d(B#6$OKL}Is^LQ|C7*@m1s zz@8K60)`v5`CN#m1TI0Qr^iNDx3}JYi_5Q^gR_4mV`37I2P$E-BNvkbDoz^l9bS4t z2M>Pr;oP;C&+7CH4sCqwQJa44#MS+npBNX~hy-`sdeJ3=ixN~7uZ9kOihjneCNIkH zEX);GY5G-gW zN(TocxYx+x$XM`|OhTvAha}~k56onkElRefz7zt!Q>WBauW)NDvxlP6pquq`g#(I+ zqm7l`0l+4Xt557U^dg?r5-`;`s1hdIm>V$UfG1V0qun5bE(ehivJDl{<0#%!6K$RH-yKIWy@DAU$$hEjW)pdf8xPi z92~HHvKKF&EbzOFXy4oW#pAzx)_1@C?svcM#vA|qw;TU-%^$AZ_SxGW^r_GM^5?(8 zkq%l=|Jz^xdg4hZ-MsiOf4J(G|NiPd|8&jo&N=&BSo6z82j~3l`oDhi)1SQl#=l&5 z!_^--@U!>aecLIgo(}TMm#^CQJ@3W0(_Q?d3$OdrmAC!vFJCz9=$mf1`U{61j(ps6 z_r1Hn;m!Bmb?>=9IOp2yufFE$D^ED#Yb!@q-*^9g#~gj+?|%EMcJI`4w}0;SH~r<( z|M|(rn`|ty#ZW2(kpuKG$xK8P1`7&he^s|m?rn4gOiEWmj5TLen&EU%xM*nRX4cOV zROlt)SWfPe6hTzfq?~#>oq84ssLv?1DVz-L=@FN+MI}mUGZPZ0WX%B@)S`?%8ys^? z&jU*)`tg;|oP8P>-S&kNBH!IjelQ_uY&Gc$Lmh?{hIFinE^So~4JTB6i#B-Dk;hE7r(5IxqFP@1_q1_} z3l&*278acQ>Y$cllw)N?{z;Um`~x-ASs>#+f(`6f@R3=x`UZQJFYABO6R662z$9)6 zv5%Nw!hJTNrl*≤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±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 ^)|OGuz{IF4VFlLtP%)A_*C5o*UM$JL>qe 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

?FNYE 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

3NNKmvggZcaGpJ1NT!M1q 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

$0U*AvM>y6i|E6-Ge#p(@3HB3Mm%rPxrIi@wf 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�iZJtC=jP1#T!UaB5FemSr-df44mAh`Wt3zc~ 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%0A5*N`)#_il{u{45;?QED zfV6z>dGCGZ>8HN^oo^HA&-eUwd~E!|haSdF`j=kz$spO-NJ-&78CLq(9^a0EEd+zxaT;jZF_eB?9ddctq@JAN;malkv{rZi&?Kbzr zANauUe{=U={`TjM8`o{xxE_jN&NsgK?b&l?aSuGSiEUnfjdbrN(v>CaYm_@d@oR!F zLPR){ZB7^Z*G&wMA#Oy{8Lp{<*V=Pw*aGm88RNuGF<8GYMHQ7g2;SzW5FYpG-0nTi zr}5J;8A|mNLD@CNR-d49Q?gzX(}FAcJj<(uB1LJklN%3BaP&4;Z)u6|u{Ro`I_}D% zJH#UIn+$3LKNa3MgMv46NF+OngNUHHp5xwLAKo4v7>YJ!Y(*SZ@d-*R)i=AmV@o2f zD}2%BknGMOV$?9O0l#6mv~84229o>i6`Rvt*tjLOacw9+fr55w?i_4oRMx)~*AX40 zITn9e2A4oA8xiUy5k+LmofU2tYtbr~hz>uHJBh%eJEA$;?OfLiA0V0aC9=cNZ)+*& zdXq6L1P&MgZ^w3Pr9@wMD3c0}_1m1mjnGUsbWa(x7wN+@TS8uEH6Wph2(u2Ug|KId ziA`kHfl*9GvcNA>_^2vzFpgOi6%do7wuCQu^f}YX5Edj^%Vz?h2}}tcf!c7fs>_%w zVYJdIJ}hpsR1LN&hmVz4_EL~uX}w7I${liWf+HNPR3NoW%;%4_e=Br6AWtku%uw$V zsV6uFt?Li5Z3F^I#Oe(c32m-Ql!JHlqFS5RL1g8;UMq~|>gi1D!3R~hYz++$#4tJp zC)xI4A)fldm=0^$|3F2juLGo&(Fw?+g;6}5wIyjT`a;lQ-iTsZS7&QBo2g>vlT(pn zc?2O)s1)H4(sH>6ICDWtm`g1)Jpe6r2tpy6dc=mIK6Mm<9T=t@ zx;2c(#Pq-_sT!I<+2X(f2eoaW^X`>+qHE6V{`D_$@;nkxjBMM~J8SOfAZr}OBvunp z6QZ6<@ep!|N(EO($)D~L%jLKOf))>hs5x3!$;9jZd9;+GOLwnqT3g?~DLiKZT%>c< zol3Mn4nae+|5&Z_KN^06HY-2Cl@&QG50h{X5h30KIv}R?Azo^#`)*`WIlBm6ko61= zaa9spKZj`^Wt&R;=JG4Hu4IamCeFT=faY5e^c$n0xKD_wVlh{qpBlzV5I?H7lSR zXmdEeal?jt|MJ((n>SH0X3v`S#-rXiZ|-hTP4T$yk-i-a_x|;-Pd)xPixW$hEPdPC z-cI!*b+XT#Qgwk%#6*%o=H9>D_w>_G=0=BS^!2^|$Rl@~zkoRpMbAXkkwF#=Eni-K zlo$U?4DdfejJJAGbCFD2bMpkp(o4D4P_FjUqlIXDY0f^;CZ+}GBB1@ih#`$8RsM$L z9MeGMC+$2O8J^qy7-9dy$Hs<97{9{kSN};RmX7UpbZF0`T)E&w23UVj?E6-gDqV)Q z^MZ=wMIzf=5fFLpSyTY4QU(JypC+geCtFho{fD0oH6g`P!tj>Wlg{{IXRB)RsU#wa zeU9Tp^(oaFJ>YZz;b=775kBN>-1NJy?y?P<-1BIKvQWUWJ;7%H;QV)f2at_H&U2S>3EJ5|@DX#|GZn8D zzPM@sd>ESmOn%^+8VmORKYO6VBi+Tb@{_DG-+1JX zd)7R?ddEvIZRN)Jrdd5RPuSzw)0Z4|Q1|XslyoHdt+!k}yQlZ&NB;E3mG{y)cDHwa z;`EQb?VvYOHBx9&cXp&0DrpbuOG54OWU`~JHKGf@PTljE(AnXu|8mRkp1OmTxmZi~ zZEtwT#fP2V9?h&TZ)|FAozc|HDi}R7nOfLB`zvRD`V+tY$_;mXD^|}Ow9g?uea(M( z=pPw2bL;gP*{;vL`2$zp`-2Cc{(GdJJoAWCnz`LRoal&i@kG5V)_n7cpZa|3k8gkJ zkw2{b3kJX!_b&eUA*Y?O*P94M@xP_Hts~vSDpL!#Q^deXtcmMqIyDNa!B8m1Bi^r6 z9)Z7e7(B?u@>hC<_vU*s0=kVHJy6efBg4%zr);NXsCbPy7m17x+n+Y-+J;}h>{!6 zu^z*2z`?J54cXBI1KR4LwQJWIU8tJmk2&rbkw>eD$GKP@8u*yV71piYFn``0hOzH_ z_uH?3;~Tec+l~-Mt}nm*ijz)y^Y}RW+)4=Y9ID1Q_}m{fs3X*{ua|xpOt1{t(h{pq zjBZ%XvU4q!=ISZTH9~-LEq!WnsS)9%yTKcbK=R-S0Qd~t&at!4Gyw0@)s0<;$+sbq z=|GkI1au?eumX#uQo|}Jx2+D2hG)+YH@D}Wc${U|@}_aLAW9?SO$BVpC#vHUh@{Mx z&7g^HZ`FEpI5s{q8d|g@`M^WmyrIt1awxl z+0&n>m4>(1*eTzCPb8`GOD}PbCz4EuTU+b7vEoz9lS>wd`es!&uj8mNyycEzI z*@fki^jdF9N7^#6OjDJq%XqHXkAe!qD-}j{Mhe+1D`}!>{q0;8^EZd<$2UW zB*&0`lzWk5vwFB~tG01#B%9D?1p+#nLZqn^&m?MPjD$47(P!zvNG*ztfDU1L^GJn_ zEG!z$*)6`?!el0k0Lz?;U4`nvV0CP;HZYQC=AauQXe@-)OY~XLaHQ6aO~{%glOpCO zX!&bqozuPp_bO2HSPWo2Q zi7W;JIWj`tLz#)<=-}|^Xr8MZuw5*+Xla?!U}DMn0j6q*n~XD2%&4;#gJ?<^yA7mk zBATuDNU9St&@n!mZ_P9p^JVsOIFLZ`t08M2fR`E_F+qza6sJ5=y}hOUXnA}*%!wXy z!R2>@qkVH0Y<%fC?vGYi&ZC_!tqeuDV}NN4T2#z-2XmZJsWI;=782-g$?ilw#tC>1 zr7)B0nZ+(gW&OHD&urnKID}ot8VsYc4ALea+%B<6um20KU1RkVY6uOS5C#9KS6ZBo zS2-feFj9^sa?w%u~Ji0x2n-X)fqRORt-^3yq7gt z>rZWC=dXYH3uRL(m-gRx+2xmCMxmFP;8E~2Noj!B+S@x{|Ar&LNhumx(OYl*$+cHs zvmK2=)hq%+*_M{mPCxCdU;a-<8HNdJ(7Fv9&O7Jazu)(F8?vY;k$0SW+O};QRYTY> zqVtjTpLpbv$3AxHrB6Ki7-py(h0WP^P9uEsipwZ3>H7I)1lh`#WkQ+Z)BPwv%8njZ zA5_(Ntj^VH>1-Qhj}4DDao=eF%89M3a|_>6<-R~>sOabV%m0j(!uJ2;qui*Jc%T)^ zZ5PzCry^5JvTl>CA&zV1z~==1E+QzDSNcqcg}1GMvT|$7FF;XdU=}+(7#g=wS=tVf zQm1`eyHrxbN80RX;;)Voa4m3Xb%TW6r6l^+SPW(kJEA5Ux%c+S@M!&oyJ`oV$qsht zZ#PA;RsD|h!wU{pEXQ6Y$baJc^!TDL-hrnhb>}w#7JKIqAq;{7hX+T3mfXKc0vM6@ z3J>&JporH5z|X)g!5z@9gDee~)mO@}ctd_HLBFUQk%^F9`dfVoEo)o&gX1pUkl+5| z;MSpXp*@+|r+fCyM5jZ+{yIh77H$60;pcyNzqhO&>4%JYZC$gQIDRg)A3XFw-uapn zI^x`_OI1;;c=x`?y?N2=IuosiA$;oY$GmB`gP+>=GUkTnwskGa&SFOxBzv|leD;Fx zAcAyZ_YzE2BkdsPuMejO5XU$Htm?yJ41Cb%kNwV|Q@P}N|a z_2HTU=&Wj`(ps*}Otrl5}K3Sq|)-zxnm2uemarNFdYG^FkH#4&aRd9Yn@mDCmeV*Amm|K|f~BIUYb) zo~TyS=?onU13cY*2_qg(>i{HNLL`AlkCCZSM0wZB8)oQpmV^d!CVQzAcdl}uXgN1F zM%Ha{x?U*d!9ce@Z~pv+iQi!}Qr<1_)Qjm20=~&hG>SPGJ@}c|~GI6w{r#>;p4Nu`F6unSyh*t*z zs-R*H{}>&`Z4Q}|x-!er;nG-BY~k7O%B_AW!M(^ywFQzuGKMRda%J5*(bH4fvOZdq zd3zJwK&a4aCYo8c7dkW5&07G(Tn{x<9Lr>*!^71ro3WEq8yTz@M{Eff(ZH5rDG>&p zY)ho8Bf@RLn!wbg3f~t=?-8x6-B5h-MON8F9k##Fr9s(*X{54Ebd*{!nN)}zZ9;FM>^Vdau+=l8VaKJP#!#NiD;P2 zbLzJwD+7qpq|-m5J(&3mBVF_AO|6L1_0j&yhSe;bG6QAJo}C%SNG+kW{K38f;x)!b zVZVA&hDnjGwQ`RCrjks_ifh*rCEneR9&%*n92A*CgM&KEN>#`oeRB4iQGuNS zJlL>O!Klv!PE8Z3!o)%LvdA|zirxl|9XfNFC!$5FE}Cc~4J=wBR|jxua5kB39^bN( zUb1ZK!z`CnMu#%T-lq{p>-*AMYTQ=YR@#kX8+-b?oX5^B01J} z-Oc@_^6F~kpwm6 z0TP0s$fDTW?=ci)@qBDvDvHrSf``r}N?cJS&Z`gBdV4HhOCpCSx$Lcqy4Hr3p^CAU z3ba%6M~W08RawE)v*Ko6aK{~Ye)vNlpacP95NS#^<#W`W(Hp<}-R;}A-*(F_EI*Bo zkG=KHZ(hD~r3S)qxV^1oqE!6lFMgJwY9-?AAhF{Jwii~dI^`XwY~Q*K{H?8R*`{>= z(8$>M&=e=iK!YF$EFLINdcV?RS@fGg1JKTKEk_>j8$%muciGnoCF6wf1#~;)?$hCF zNKRw|3f=&I5~eW)L#U#)Oa(uas4QvE-}z3>zV)%8IjNpG9J#Z^h`}JH-c@BMFQU_Q z=45(jb32vtYA-9{mS~zkfCOni=}3BRR`=)W5oo9**7~Md`>UOqKxQK|oB6SsNli0c z5{j*Y2`_A(=@?$T002M$Nklase2Z44}kTAm$c2|$8m`_ zwSKoWM;VM7W(D*_28qNxGs!l$Q6nh^?DhFgUGz1E$oml@!)v(pGRVN&!5W0Y0c})U zg|))6F#qKRTUM+GcSI}LkM4u=%g`+O8^eJzf?la+tCbmv=56uOr?#w{)7IOV>t92>ciE+n z=6Uwn=PteElG9H+~b073t z&U*6HLk~av$ew%e0sWLQkSm{m0os%u#?^AA1F^}9mz|+|{&?@Kd2_jAjzVegXrXf- z9vSK1KCooz?rh=`_qs29>B0N&gR^WVfcwIaeQe+TmK|`w{_I0gRiL@?QR2$19*Wz0 zSQN)o!hf|?54W^7BYTy%tuIFsn3s>GIIxKjr4HSVQd9%wLIq{z!zc@D6zp(N9Zg9J0x3F$J|F#tPR1RImY~lM#xws&-=`9^G+XqhmELsA+32tlt#l zV8D0@dox@Vz)C-29Cy*e5;R0u7G>uM^C#?r(VRwijIVe=AmiRd!3#8W8MIrenBB6{sInM1?V@nrQSFh6@v>e#QD!)z>bIz4zc$v7z zh9#YWn8-l_0N6>ujW~;anQ%0D_#2}0b_~VCQqOI-d&1hpm#{MCuUgsPwvz&b!2h8qWKX_0xn!C2`?bc# zo%^r}kU~ z<>l@Dvj4iRKg_I;URtveDM2M>bVM_W^49)PGS>Rq18dkmTfHU`O@T=T%LYRX!#g_v z$^?&gij1x~p{7Nw8dr0J94tX%iBD}|ZIOCgOCV6HJ-;BkX>1E-gZ) zB;b%uzF`k6r8lD}SwW&_prJ*_w`U&y@0K-x;B<(z;L6cjQ+w&qvoo)|V1lV7lT0;r z=%*oRy++B3T=jYSG%EG7KY=ngtCY8G+m38N3X2yl6sXUNfMh5!WSRqP*}Ub_OFl+i zit@0-UU${ipPfB-<~{%Wr%zt_sX{*Y>)UVt@tcl3@BQb0<105H{Zl_UP5$xAK6S>s zPG7rj-Bq9Z)blG>uvW!Qgvj3{^!0CiYp{O@xjgZtldrw{Gu=HME1p|^>E)k%7RA(W zee<2Cy<^Wk_NIDJqXO1=^qCyR=sv}5JXdo zDj>aG>h`uOVxER1AT5Z8H}I5>D>sL*At{#^34X#tG>Ls)!VXvyP0M(I(;QyjfdQivyqdH zBu)cs3<}&q+yL0v7=$-C#A!zr%$O`YAc80X5^^+I9fM$pY!b-6r)1kt&KTl<@Vl#e z1~slo#XkR;Ov@wHuc`)s9{@Zsm^Ofz$l_}S8Iw0lvaVqSFf6J_NtR*4RP7{sNO*SX z(xQ|R!-#`s1`@3Q7yShV!OVC)hoR9Lv2{L_rpvS!g4CM3h@&swU01@-iHG*L<4~KACwuub@OCO}}{AuVe&rk@MP+5+we-dW-IKmx0KI>lTw}HD;K)j5Y z-!96>D;pOKkyGNjB2%AfJvd@1>(e}31Jo8y&dYXg8XbJPe*^p9pwVb3)>vMw{}NO5 z7{QATbPyGAe@B7FF zA9~+=-h0q%58^@q)>K&ezvkMjAqESf=n-w&y!F%9Uge7E=r{-t}_xz`? zx%Q4bem!g69CFRb@z6t$UUTiWD2G!W=Fi`a;)8}ye(G{c3IH%zW+z`(f?n>OuN5jU zvZXVMn5;>KsuLStDq`}Hv*S%!C^3~Mn*h+Ai}iY@mdezxMutue`M>-1DpaV1>5zdy z5<@M4bv`MSBW$7Vn`5!Omds$DvW~3ADM0C^NHK-lZ5OpFmZUf2F&0@RSRr!UITf>lkLyks!QP9(!!y`gNjJ~9}}4eJsQj+3HZ&zOpUvUyAO z<$op?F9^3}YaCogF@WX?JuC+Ej~xkQR+Ro&;@9S~v<+A_=j21EtGk|Ts*Mam2ZxJc z2>?w0RPo6QQYmo}kwv0%$D((bJ4IM5Y-vfJa6+i9v;Ok)^|dUN4zP;KZBR@Kkjc4E z7};I(aug;ut_zil@qPEEAK}a>R&Qjt2eF!S$;d)+e)JorS)4vgFBE`lwkkFIL#nC~z;t&_j=9m+W0_&7vk1DU@`oKx@|=-Y95uiF!COF5^L9P<7$0dgC7d z*ZT~9NJws8_AB=*fhuhJGo`dgDBy)!}Pbc7zt z!sCE_IX~zBt6%+c^X4spELybiSHHUBH3#lDd&Z0pe)t1l{OlLp@b$wV{-jta{pyZi zDORn1$t55E%xA9JW9ja1KK{5L-*QW5Pd8%$$eXk2VyXPsd;Ub%&F#F`TzS>rdoRK9 z`XgU|!9^b-Du%5eeBfcSF49%Gyi6H?47bL5tHqX6033w2deq(`nQTj?T*L%fPQA`7kpym~Vg$J4%+m#V zZ=-=0>JeiV(kP@a2~Z2IEFU<&(e6;#o3USb={rNaogB)}S4l~hd!ho(@dRnO|tYEjfnTcY%vj6^`ubE>siiW-sBdW2uioj>{Otv{TG zR0svBv6uaJYhPN1brHRe)F2(v7T@ZJP#H=?@4kdhpY{^TR1cvt@<_$HE{Dy_v3>BG z1Qxg+FT{QD7E(*l3km`n9RQigU>Ln58pGwD&g~!<1~@r#2$f@%kHKOJwP>^Apl9Ks z|7LhY*rlJ%MB;tX%)E5Vlj~mGR2X6{Q_{cYR_fn03Gg~Gal>Jf!;%nEM}#)9tGzva z-}}M$>AzT32jaG${?DO@9&-Hg$G`2Ax4-t_*S_nFGcXmJ;12m(ee1UE7<5A&6UiGb z>finLHzyo_+>PJA`TFaxKla$8w{DST)!v@2OF#YzGIha)A9bmq!GF||M_hIFXFmId z>kc{ekX8SD!3p#*1oi#i-oB4qaIwlY6u$5yAN}mLpS}I|Uw`d}|2pIJ)4%hrZ+-mZ zAHV){*FhVQAN;_1%;3Oz*=3)2;2;0!?CB-a1AqU=x4!w`7z}}j;+s9{!6&ot`N_*3 zgfm7CR8?BCO@%Elmq&*&)mU!IG9Q4sngF2TghXPG%R=xLE?2Vdmtq#-lS#Y8lpXx- z!^PES@Tk6fmCO)&0T#*7S*uZ94Wg(%@!?fGK1fwx?s1?*)mkzu*GvFtcZlreYCf-} z@kEAG_1yK#O4Y<@k;OnHWY&9&W84U)c3t7-uSlfCQa$G^E1|K0v3f^)B+*pcxGj#b zE3{aylnr=^xmLO9v&$pniIz4dju?O!KT7q&NIue(;ewTA>FksR9&Rz?bSwi823S~`&dan8tMw7C6v&O#w{1!E%_^hn z!yF%p5C%gGr-#A9=#JJl0-e^OVNbQXxnKG{GiIQaA78W^7d=$R@+=^$yW$K0q9`?l zRe$KQqG6NFU5Owie(Jz$UJGMtD;|-|$3bV5q}ec%(E)^Yrj5{Mhh((F5wCCC3QJ=1 z7nb`6p-E-UG=qZ#W0;E1*G9&58^CaWtQcy)_{Qv;-;Me+(-cNIcam4bDxc&i(cJZc zuVl{r&=9vRQb$=GnJ6Qil1-*GEL2mVn&FV^a;cUdFLO!4ZVMy3FRYTBR_s)8rLIn?a<4)?&y9%aam6{TSX#R-!VzlP0}t+r38^pA%Tai0O6o8*g^Z5u z7-m0{dQe*RVs&&lzF=_?iJw~_G}mHg8$}C?9W$nw9O{s5D5!(2v@h483Y(e)USgv) zRP%5F3N&63i<)YlywtJ3;?s!7fF@CSai(}Udeo)x_yCg-cv7aU>5zRaK36v`&%E#} znPr7f?1NU(pVG%7ykJ?X~MEIPJI{m1fw9zvJx@gciwx@CI$F~mCrx*)YBU_ zZN@Xz)bze{&LK6X1S}ivz4u-pJojAiC@7KIv}yB}&6^n}@Ok%p&p!CjLk~af@Iwwe z{QB$ulY9fSVf`lKk>jiXMqq$kdmzkmC&J~};F`e~msjQ; zRBG;GlwjpwW3pz+Hiwl=YmZ+CyifbF!tq85=WYxQ+>jHvog?ruN^Rf>N_h&XDn7w9 zPp#KTn)l!IFt*~ObX6cz>YiE*f0Tuj=@rqF@6|OCq+;YP%z}}p?+^iQK4Cimjd2|T zBM44xS!_sG%LVEKl5lte_&!Un-oT#37!U@0m&7Busbn%O; zRzbjyfq}pN?Qf0}7VGI8G4*ruiEq8>=I`No)iqbW{PLQg|MF)@~V+YEbuu=nsv9-Iq=bi6*7rpX@7hSl5jbLnu&6|7GRaYYMf8)zvIqSXeW(c|F zv)6FB*kOmiZo>2p)TP^hvS}IjhAU7CDJ;@(ho(uUI=H#izh$fxE+kViu5m>6NAlAu z8DphZ|4B||!9Ob=x!vQJssAlFv9{siQ;ZIxG`jJe3hc%6JS|LX2%t;AEa<({yWLhofa=F$c zUYA}lo1?m@WfF`mP3y5d>bkBdyY7gH2t(Y`)Y?|wu|0T3FslDBY`n-B`0P2?rH(jRLL&>-sMq&z8h-q~ zS~1tuH@D+}BhZ(G{nWbFQ?Dp)TQ~CiUpFU_DpZVCbf#{O#*|J4lr$@7ZA%_<0G2-M zPd$riqi|cB_8+tgf_@iDN?L+Nrq<+*JD6D@;E*n7C0mP}S(^ zYMYoSj}PaVhbr&6yws17v2xxvt@45Fl=AzL%FWaTf?48Yu8EmhtugXRf{_q)@N z;(EP-AEt_@2UIFKKdNDLAqsLXKRJClKq6=XiA*q;UvpogkP9`T|0a0VX@bS>cr-Us zeCZ$I?gi4z!rKN+h~XieCL(x06=AoBP%uz4IpF*IKm37c_ul*GOFns-UCpkeEJ{T4 zbZ%U>{TUbtVU(N^*WK4gePjLrefV<{puN3qY;2@dE^OJl1r;zn-6}g>w_<@Q6zZTw z^MeS5bt7htbQo%pHOvq(#ZXAYBZE^$wom)y2ic)2xX1lk)q^xfMsC5)B%4y4YY&$T z*@^z)7aps2Ee&@qK}bIE}~ZtT>>t|%bMdSP>zyDvCJbJaO)icQUfv@ z94@+#lNch>s)q8`r3Y?p={guwf^$o10#J1O^C@$m!b2#3L^RCWZNgJyjz)fd zoZE71`Es7XxFif-R2d%8Eo|C1(l#8Uo=CDm%t)OKWkdmtKj4*3i)hKYDkfCW41n{T z#%f29mvh1D@u>7OX_eOb8!HW_u@0F>@S0X=f&UbTvI*Hd^mg<)DAl68A5FA|lM7pW zw+!uge#ZumX~HVHNLKH7(~D_0KtsHJ@a=bV4mEXvO!83JXign_>~Rk~aQ~H`zGC6x zg-#9tj6}KWYrlQ>z3Iju-u~-fwzjpiPJ`!ZmS7LN~c=+5X@A?)T@+oJ}7+f8MwoG#icrLo|5=QDmq5O{1 zPJP=+Ct-Yz41enKOSkP9q}Y_pAiL(`1tqpG!mmC`m3kHfG|O6p5&uSh$240a0k0CJUj) z0&av^NrgN}Z&<_RfI+;S3qV3uF4WF(#VhB*Bh{f%JCPCw03lBM2Ivb>&`2Ms<;P_d zvWA`YrZh7Y_F^JT#*k<^gh1ENGBXcX1Ym=O{-3!D1qK6HG-OyW7GfQp7>!ZmMW+P8 z5f}J#Tq#i1$zaq?Fy+2*kH~)eS4T!U_sog)+Scv0Ed!Ch?)Z{Dt6{FtDo7ECdXE(t zZ1vzEQFQ(>WRxedNT{WwKGYvcW5}PyFfLIxd4k*0#yNak4vkM>QXY07Sd%HKKWU}B zUfVtp?(1W{U6)pl7daFG&nx*7hb~I_O6-WYG`;yfh_HyQG}P_Cx%scB9=78053c## zrO$onv?t#4hWyG$NJ>I&DAakzCyLn?Oy5v6l>){!OXZ>|Sx%G+J4U#EDzfLki31O+ zkBrtd(96u{F#^nzzmD8s?Ke`7jSP(Bhx07@VM>Vgd+HTcmC{g$Mdx7+79Uu_Dm}i| zpD>$Kmu8JYW`Y1##gl9arP0F371}8)Y8}+X zXf!`MMkQys05OJtit9HqDGg&#axABuFbg7pQl`dIcvLrPnkFr_cuXq6W6p-}AmHC} zcrAQq*q|3`3<{D79LjLR1Hbrc@G>;8If@=rbZjHivV#yey+8QK@EZvYtfe&RmbFw5 z3rw+8EnXEv{b%q;T~R&JqXCznliqSN{Ke1$>y+`J2BQ;8yQ>iU@_iSow+Cb5jI$u@{bM5k~O?um>f*u zynTBwact^Cq@6t*L0&x+NKj6e^Q23~>VNsa@(A3MiMYx#`Q7L;f~V9$2W|Oi%#4Rx z%+r7U1&&69ujCdk!$D$hBSMrK9#Yhl+td1U2!Jxu^aYCo-Uki`*2uj^w+o&2Zj3w4 z9mL(4eN$5xF_UODf3XK&-ygnA0%&R-0 zD{Z4wL4L}H*HXmSg}S^LKMfb@2(`Q|Ev4%hfB+QH{+U~85z6F1hoJnt;MwpPjKeLb zF!(9S<@-%~l6gm!Lt?ZEumO>UOk(i}^60br0WIRB?b;%uR#{9%5va_7R_=~vhqG-@ zZeGh>3NxEBm@=eOqu(Y`dL_Cs5ox`%94>iF&^hr@=f^l*u5@;EUh|pHeDvarmOuO4 z>b2{T_1oLqmn>Sm$DVtzDnleXU*0Z9AO7eCXTA5mPdxV6>NV?-r}x}*>Egvp=nR1Y zC&)odkAL|UpMK9d=RW()vj`C#tzG-q*#|NwzdIKFT_NHcQDc=!<-SSti$%1ma*l z0#^hfo5X}uH)e8`NGzI4%3MzYZE~y$p=-ffFV&3rC?`j2<4hr#?`tBD^n&V37zr|y z(&h%5EiUg;8DS@@qNA&&a%}1Dp}v`w70+_56KV~#8WEEpt8bkMwRUotxUzb6WvD-z zjB!(eY6V*XtUMw}LT9baWnPRmFaoRpQcKmj1>5^TcEnsMsA$nHN7@9DN()Gg^VQJs zSfsBvl*`wXiAcI#w+f7nSGR7fc62ts<)dJuA~K=s|I2Tl{KQ9RcDJTx^&m--bYa!1 zXFhoHfw%rGx!XQe+-T>5);FCncH2+lQPgil8N~!~7&A>T**!jM4uWaz#TC-x>g^3@ zo2nakz&fTLQ4SuMGL6g-L6-Evtmf;C1UmN=TRo9&Dvy^SIEF1z^-h$r`eBtcwk=tS z*YN?J93ii9=5MyINJOSmIu^tntT~PJuS!TP;AO>ARoau7C6vRW2>M&B$XI=*g))Jo zQ;N{gqS>bKM7cOoh@yS2X@hi8s1p=B)j`bHo)nK&a~Ld}1bC=YPz&kKq_HHMLcA`T;0AxkOt!=Y$!lBZ9t}?s> z=Ad;HZ%V4xlTDq;Rt8nwfY^zBnWP#_c*Yx1S9ab+{ebF77Vg4#)+#7+L5-gd56L&AH}%VhHb{a*sy%A7 z^a?@hE=6mT8hLm;u6Y3}5HB(gqBSIG;ELh-IRMXhD&wZd^Fv)s-n3<-%-)T?iJwUD zYkXH(IUh%!dKJT^P(QPd9)0=$ak+Rth;TUC2;jj@e9_`V;OQX{tbn})0&hQEC@>5H zbFnOfkIN%bsSyfR=djelMet;0^k5a=9-qVh_pX0k&n*hoHBNt&r2kl=9+8%|xu>Tp zX!$ifhQjff9^Cc;v=N{_C{<2m%GJ54_Cme?(G4#gzvw`YaG|#dG{-qbm9(%JFJ%Im zxD03f8tzHboC`QD`qZjzEp3M%{`$iYcN}v|;aYbgx<`Z+E&Xdtw)w~-k2>;5$@-*a zU9P8lM83rk*3PQ68GSQm&X`GT{j*aC^XJVE@`n$K_vDe8Kv!q?Ti^axf{4h2g*Taz z4oBw9p2sI#nKPR+g2<}6k$_REIoq=DzRMgc9ZN1^h~C6~k-~_r;+2Px@ksh-tZz*v z@*7rh7IwT)DWS%h^h|%6{BIpPS+yyXior^DvJ~;LY6Lo$L4x>m1%{6!Mlk-Pgo6jS z1qGfCkHaZ6K}0W>!y^n0$dxaZ1>P1eY(#Xh*!9;XPO_4ZM8zr=Vi60s$o{MZvrwxQ zVpc|p98DA^ibYK2plgn@N+?_yoq*w-{6cIh59Jb4I1iOk#E+>)Nz6kfM|aI45Gi$% zVEPsr%_o}D>wm6C=X3WsFf`^$_MU#7tu z*GE{^<%~D7<4B(TGFw0fsd4DAtv$AQetmmOY2DgHy%P4yw)r93}q}wWLKPc{_ z_JbTNGeO)(mgQJ5Ys;wDOZ6X5ILQRm8ie*Vh%17jo&(lWnBg8x=?!BvH;g5Iwqf=- zAUuCh%7gW3&PlBJ&KG(*Fvf{NBkj$=+t%Lp;r0D%zIxG;|GGy*MI@3r==iNazdc>d zGa=;!YNES6-rE`L>R~n_6G_7Z+{PHnwA48+Fg!xpNV?{V0IoV78;fzdhbDi_{xFeb zk}5L^?th{z5CP-yJcU{)qVa)RKQau(qT;GBV@I^rgh3^(oeGZFR&|+bwVrNmE{;)! zLXmtikxA2`a2P|`Vcninys>DBxwNvvY_rCF#+u-TqD5{ZEOX_u>z0D&>(2i zVNkA_TXma^)!-5V^m_ucglsqwOEF$cf560Vw?j)$|BQ(^b1Mb|D3GxqB`j69dgl^u zY=p}!IH@DC5muF1(>G;Z_#JLJTsH`)iU=H^zwYzPpMCcJ2OpToRWJYar*FFXru`0B z#zOjr^=lt~=pnXnGA)^HJBIK0#V>#N$GZQkR4!9V}`&nKO5!Ur$B;GZjB`1)7Biaif*pW)oVnC^iI zzvs+%J^AEgl-Q*o``EzN?TeP~zH-&dZ-4!UmtJ1I|2}))@w?w=nlPYkGj^k%HVeT# z8Y%Q6>dBfq00oWCwqB{+AtjlmC652=lHV zQgD33F%81wr|-KnfFH7pUzNmU{SjvW%gV@);p5b=pIiW74x;)o$v*J_o%HbWIRA#P z09&Kq6i<@#Qx{GjE=XM-BxE5Cp-S6>maj+3E@OGgH74YzGKG@BbDG0)I*ECgc!DSa ziTD^%lMx+^&t5NvvO&w+C9pMNHv#aV9VrcL^88=@CrHu~6KrE1re$w317fdFz50mB zkSWPc1{ivaq^1(YRSp@lyezu7!sXZaNo-yzDuVYIHvi+*ej8KVnLj>a53jHqfs?d@ zI|%d~O3omscfl6!L;JaCWNAR?E-G7rtI6>3;-3&N<57?T&*q6 zcCQ-U_RQ9o5AIp0^(q7|MoH1f=%^9UcF`#_dATGhe?D;QZPf6~@BltI%p-AKfl5@P zxbFjUdoUEkrmMtjA<;I2Bz%JS1eO>7@j*tUdle$216KHS1XKnTrD|`>?FuoZm}_X< zWWW<40*Rj^s+JuMQ>@C`s6h8y9N-@f25#nP)x-oFp41KcvFHV)YH8okxb5l1m5XV6|7*XYb z9pWKUK{OE#6(_LUQ=&X!EEtixj5)~@f@&d1v%sKW7*@$ZFBrtDfE)nHA zf~kY0|wY2DH#WK*bA#I(7%Z963DDJT@?cnHksR&p0R z_mk=HPbuEUHS0;8)t22;6$DYJTwrF>PE&*Dpdk%PO6PIuZzu)kcuqv7wYuvi)K=6N z$vSPl*4o>ZFL1wy<{KbH@<&V;J4$3llSUylEg;$?5&0rM^r>Qyy44+awa5jBo~Xjf zOe+&EDj1NOAwa7{T2hoGkC0F4plJ>wu%ZD)wJML5R8#4N$bl6GkW>Q^!tKz=%h<^! z!xX4He$9ys*sDHNGX#u5!3)Us+x4^-FRK5)Jpn><_{o41=8*0bS}Zv5_P zr=9lv^Dk`Oy8Uxs_?&937I-MV@D-oD>co?dr+!^I3 zj9D{Auo{D>oO9mCd9{nYiZ@u86i|{wnIAR{}nK6%hdL0e$#W9Dp?4Oc^ zPSt1SQhgCMF_p*mQqtSK8uQ_LAMiL-0UGx?iA!mE zj~Aqv9yks^x}~CM5-)hBWkg=~c<_qnA!&p(Z~0GR_95kC>DrrAG@=-!Bf=4&cjIGe zdM^@sl}|sG7vDiP($*N)0n29!N)Nv+UyP|P6%D`!qh47E)TuEX0>YPY zYV`IWLja8XCN&pVv0MtE(&#Lj92i3=k4p<+eb}-+Zan#K7{mo0%`VK3Zkq=T_CSDw zHO6}xbU}iF1rlKZh7)|1>m6KKnj52A=Q7rDRz?%4DB7H2p&9?N{aj0EvQ)$brQq^4 z=`Sx;DE&FdlrVz*vUQ<)%gbfTFghRk3YT6U3YV7ix0LZmJ`*WZp9X9}K%L8v-~rZ7 zkg`zUk0!XhmnBRtI;~(Z2azsUL`q|4n{#*QmE?11Ve9JKp|L#L{OO*)iF%X^a4Yy% zBl(@^22c1HJk*tbIlE<6%a^y=E!i&}7j8UczFXNwA4q~XHYFMAq=q+ zdpi~%rEIOeu~dt|!5nO~P{B4o;#{tT0LuC>wj0G#WJJJ9;9(h_^PN&~r;Mfc!DYA1 z({zDxQH#_VWkGyPr$dQU4Yh5S>ap3vv=Bv7fCt7j`C-muE5e9vI!l06{tcU`G_gJQ z2(@=fDGKv70KoVr7Ku4gP(XPZ37}>R|9VqEWCtY^Xk%Z3RdX`WC*N)bkyuSxKIB6PX zT9QD&xrA+>$fnK) zV2PAE0AsjpqDc9YEzUga!~s6EJ=`W-DdUtTFj6h&g5y$cIG3-aVoiO$qxn3VVwy+D z*eK^5B#mj+fVEKP}SM!lUJK^O8MU7A!(Yr#BxTD3Lhv*Dlkmoq)IALqyFUC zE@Wz=^%0`bRyEC*v6|o!eXd24U)=oXPt{)D`jv0+0OP>yEpPK7eLZ}TZT(mz9QFm2 zLlvNzbO5h(1Y(bV44#*z1YjvQPgG^=P*4x9_qa{pi+fue}m|MXEpE zx83^l3og2_rM=x@YVYW{?D8uMdK_wzmZYs{K_xd4FO6Tk%!eu&C(=SKzJ@CSfC z?f=dZ9nJuW0}watzf~KDAOLwahhq6pBk`)7!Jh^AP)f)>fsZ*PRQNs$cb@jP!ty*O ze}JJFCnGt~soy>xNYUftpZrxy{uB7_4D3KO?le3BJdT~Ccz~`QYA{f%SD6^BTztFS z7$O~c^f3yOB>m6H-v$_Y?gGMKgSY`kyaRU-Do=Gr`saepWhfe6QwT9Eymn5yfwsvM z8azFW4%;MzP|?MC)EPXueS#Xuz!^XW(RaoV7fAyD0LJ0i6{Mdi5auLGK#BZ>%FF1^ z(H&a%o(5*0UPR$EVt9LeGx|g&sk$`eCoY)x18hCpoBpv;y?=# zK_w9#kYvG=*%ydKaWA=j<|+dXLA!Jck*nyAKMtLXW{D`!GT*>*1&BF8Lg3I{KeqNy z5Yj(lV5X&(+ge3D)!qyCtjkz4DdbDs(TeQMavPEp>QnJdYv;U~`H@i=!DuQ8E15#r z;a>%$~W5pd(Qk><@>qtN< zE+Lp$Fapa){GgmISy;ODtQB&GSOBmHwD=^b!HnD0+NQ1H?w;7<-Rh&G<&7J#Oi9`i zjN}MEs!p8wHNAOwF50APge++2nPYI46vY#1oMRVKrGT;x$k`{*5+WKDETF3LC}~I+ zkN5x=7YU@$dIwzPW^CYYU}%?H^#bo4UZJTVGl~|DbBOX5-3s-#M5X@ z?W4{tk-}@)eI^sCv5h;5V`xN4C8Wk?Lpnuep!I7*i8+SmJLm_J^DyUqsZq>p5V^?- z9TfRTpM;!|Ijblbk?yQy+C6FoZdnx+|EB8dZ^r9OXi7w5=iZxJqmgV7*F(rm9Tw zL9uf=r+q7qirqbGCc)zdEc=wV7^VkuoWnlk??>`~3BcI^6~LR{ltjEB;edC-0GrFp z?+!nDPd(BzvEa!1*qSgW-;^C0J-Re;2hsVB^#jygE6}(|rb6;4_FGcl13qt7dm;)-|Ju--6x(-pn zPSH`-5L%E0=(RM~%JzmNcvlGE5pMg>Ym#OXlMv%Q^s~;Tp3nByMUx`C*j}g)&aZs@ ziVaph=pc}&bAwRv?Nd4ch6-#Bp`sgoj>w?GOomEU)T0RY;;m2I+NO}Y3kRkP$U8}P z{PRPoy|cU*i6hKmX{yFBhj;7szFB?T zEipDeQNom}7Ve{^Tq)fdj(2s9Zrjn;(LxPI$(vyk8NJG~D1sCM79v#{Er}Av8SZGx z^tKg8(wM%nFCwt9 zijTP-qNn4m;>$oka~{d-OluH@L!sgRDi$rfyW$HMghs|no40ZoLWG@&R&iV6NB%rl>fHpi1Q7f~VDf2fZRg+~XZz!j<|vq>ESu19L)dDh91 zWq}brOm!sG!Zh1skpwR~Wd|6xgPj4>>=YrkVH^n`>VVdL#ey($Q8u1d{Uf^t4gdfZ zD(6bfvtpg?$!s%suH`oMYl{Ggs6=@p(wa)6BQ}@N-6L#QAfkyJt;|dM1fD|!SV`10 z3wNTq`|m-olMfJ`x|#$67M~hqX5WwlvA=`|iGPZ>d*%b$2bjP0w`C!p!u{ zG(rYuSOgLR3lIvMz@b2L*vOW{OPFvtEQ^p3gu@YpZ3RRitN?_Bz$}tLBN#>l)6>)4 zGt<>;^-|Tf*W2H_@9w*Q|C8UB_q+GLSKUnT)vNF3mwEE!$&=g3%#$a_7>92RGE2*) z)wSlWYwFy<6Ha(Yk_j-HXH3!19Va{Dos8JBkWZ#ltnXJ&pYHE(!r@_Om`Y>@2klY4 znW`)en_W8EShvI32{?rYTOysE4C~~O6E9@NTB0%zapsP^7CdId)M-&75zoV%hFSsU zQ2t3sd|7;)uS3XN$PFGPCitt_*<}0m(ZBqe#6hd^%#Rm-{2w>#`-3h>}ijW0n0*^HjE-9u8YvotZ4Llg9`nQZ+~8BS>C`DWC<(7W9q>>INy_NxLQUosV34 z_;K9`Nla0NIw%&UQDDW#^3Hsgu3`Mh!;kRi@&gQ02(bpz!L9ilclvc6dhnr37cQxe z+TC8LZCyBjfl#Uz=fRZd1Pj0|2zvC<#~!DT<5&<-3)bqXEo_6Q(dGwAM z1U?DxaKZl5IqpNGM+YQeK}2{P<+cYhhXr~%T$ zoJ<$jhn<)1-Tc6bGi-7*+@%s|OQY2(rCJ_@89G9B+%kYp$EO@BFLJpAg5MzL7R`|- zcs}`Wo+L`AuRfHBMxNsdpQgu+oKw{gxj zQ4PHgQ1ZU}XCsk%cPXnNG>vw~z2E)DfBee5s~kLhYVF*oD#w?`9OmRY<$Sh~=UPnd z062RN%xP>r2TFxmsp&D&ozs1*&xK_!NNj zQ)!36_8X=ERVD}cKxi;vmhG|Z$to;tM6m(mCz)aeb2p<-2Z6iU$Tyb z$`CP`p&0u@6e409C5d2)K+H5i6B1PeWK&zWmQ7N|Pu?&b6F->APca$MKEoIV8!b>v zB9>XnahHR+T&iW#1#-D+pRO;W2Bokei!6>UPE>(L2i@HclrafGg+_`COchv&780f` z(kWLfL|CWBGPPjJf)E3?CblEH@oE_xMCocJUMj>`P-i)ubI&vtWJGAj;tet=I|Im1 z%m-*dn!th%$=%FRp}3-s9J!lGf=)jti&@Q)m<*6XtS#MnOYpLelqg(yy!xT1IxjuD zw3=rT-KqyHAMNcl&isuZPA#7ztHc@HdTX-1mnyM@uQh(Q`jTAht8=}Or3TD_1W>AW zs4G?iu@4vP=xPi3=ucYJ)C}%>KBQU2cVAHzr@mWy|GMq0rsg z?d>$c4eQ7j?Tg*Ue5J@*zif=+LkFU%mSk2HP9CbdfnmR;Qxaf@owpAP%r=$U$F6Ow~XxJjQejQz^1cBLE%3ECs-< zgER0M8Hd)R?>+qnCc`GKFT3XUP* z2}lt+^N;Z)AjXG@VHV3dyuWieY>Pqo1Q}C(^NG*IR`qhIL+?dAVTkd_z@5(=P9=9l zDjtJ(%%$QZ&iQ+I@9>bJkH|No-dE~J;dlNZKMKH7nPHU!_G}Ft#sSBqkQs{Q9uFLP zsJ`Kj#HD4}m-7;eiKfCh0G-n3VZubf;s8AALmd$e4uwlc6a-`%!YRq3PH9K61w0C( z1|fl`&y0DC?(p#dp@)8*XEbO^p-_cApd(h=0lIaeB$?;Tvqu+ad z{q94{OQ~TmI~-wWk>M7SG}43H7Oh+=>cy-pA?1KD`vIGXu?8@ zE@nuhMZ(h(a&?8+L=O_uhhd}tC1#M6^9|~x5E?Jsufl{~`q-8SC85~*w6}Ha>ii|< z#)enB^`H6Dzj|@=)p0QutB?Nloj?79+J&F~@OPh2*RuHni#<{S3YY&GSd=SeR*AZF z9brl|!UW5i0k~|1z~ljX42O%McSwKWwhXvX*BQ7JBrF6eS{?%=k;o1+%nbM}HaOlY z5#NlHg+hP3E>Vva<765UIdg2enJsr3jdDKA4gf!gvhUUJXC7>nIuOzhOO?TT#i@D$qVIFr83&P zn`n1{(NgnZf^i|Ol(W=}fR3BJ1vn_ZdqjDzt2GNnfNt$1GC9uv#(PE7iYBct_faqn z5KN9^$4<$I<#F9itmS#w$Grhovo*bOwGzwsy0EN(InK$T&02DwdjpVOvgziPS1KE~ zlBX|P zvTc6`9#SQ8C`9Qhl}Ts2G1*_IQ6cd3THHCTSqhku5!a3_bLJb{|7c>N8BbL~=0e2| zc^Jkp@1y=uJ0w;~+a75-M-os(9T;@AaYX8@B7+rcq{kjS)xw++TRy!$jq!M)z|7>J z-elvU(b7`1wD*au`4ow*>@eQb7ix-bXRUQ9|^<$w}q zs=+`*Ru!w_>vK73z6E@5)e0|-9Sji{Q1 ztv=Er2p6BELa=ZD`fvdXS1=R`28iMK-~Dv#t*9I!nb#DZ{*>*<~uv5o(cXW?~`H@~M?1M}iT7AO4iTLJh#OWmKtq zRM(ApUHi+56lIp)E05V*`(1o z8Y1qn$MPjO@934rzaDrRZWPSrVm8uyf4v`q!SX)AAo5U15g%<=VG+#IN6x01Q;^SFkW>8x5FsGF zo0dUX2;s02OA~HwLfezsd?KA6CXS^rls>$^v)@T4I@rXMJf?LqEsR?SXnmlBh3Jv4 zNZLlDB)xzfAQv9%RL$3*RGU?h?w=zXx6gG*JpHd>7kh<2V38s6FD2{10$`#5Xn*cS zHY_jt4IP#@KFB2<{qAJ+^I!h07q?!Dmso|yMq)BqO1`sm<@2{*$t{(+TRz7ez#jn6 zs**-BYd+IN9jS-D0djc?b9N|H#52fg#0RGn``<5$nYas)L^jK}nBUe)9XBGeik(hl zASYE@Yqwh6W)DFKaez~f-9DNQ@wEpoums3mn+QD^HR049+2_VE%&f8sh+Hqz90?r}Hf<2Nt_EU!r7q~+ zF*MVt7_8Fb$x1y-vq+*_&EcK>;a)GswY$_1lijG_szIvgmRG%WGE^)2q|sEdW`WTKrV=d=r8-HXyc5e5rlFI7DyoiC4NE~fJkmU zKtW1Y|1qh_mAABMrjRCZkd!2Bdxw&@ra-DHI^LkVr9J@FqkJKL`uHRj@7>w%?KYT& zQYA6Dlic3h|F^${c9yMwk8_WF z@x3>0{~l(}%?cyd^w|lKTuYfk5RBH|2#G?IBtta|S8r8;nG^*p(=5))=oY;Y*BelB z5~gV^XmG({c0|zB={7Ls70aGJS$*`8{JFC!?eiqk#X`1L<~$}90qI|ht|$zSM!8xU z|9-1wpBR!-Q-%T^4`925#aAnFJjteHZsw3uAEJOctwdc+QdJZMRkX?I^u_Z`{+he{ z_3iq>Zhi0G#>UM%`+NIzX2(`mY8a14Bt?IZ*_xd_F`17$Dh88m^~}RhZryylR>D3~ z4lAL_e7>@}itQ>a2$}bqs^snagGmV*=v;w3x%j!i0)Z+nF6scN#*bt^+Yg5oDRErhzy?KXX
Ch-lCj3G{QBh2{!j(^%#Y@t`4Rd}NwPM6NVe4=;$&Q0+7eBsG8_chZpAsr zUgho$H1?V2sYF$YnDy}^+p)eMR`;tXT!je&)FJa{{I(9BIe_ozaZt`8bJlY@xJ*G+ z(fuQEFo)xpOWEEg;|EEahtA2l5UM{hP*$^F{GeWzzw*UWsv95e$FuRRTesG?_Xo9; zvEnie!2p&f05-y6bi>*GwE6|rFk64VC|t?-cUTI6hr!Ej`JD^&k(5XO5rv%k`rwG; zC>j>2o5y3xdCwU<^cayOaQZA*rBYaw+F985_*#tUk$cA+iYPbcf)4%kcorQFevt-` zhoEV!(ARV6(CE=n&o^`E<$VHVd|L#q=D^G__y?`(WX@$*72wjs18b?6i>%DF3Y*Sp61Gd+-(>=s~s!a?NKz4Pd0@ zGNPolXD}r+bjv3!DBKQUhJhhwzkV+~zM3>G=YE&1zl zv^Xb3<6-XT%e(^*M|9!F`}z>f{MLQdjrssjKf z)sgl$_Oi)L|ITi5wY2uwBinCZ<$N)Q@Q{#@{QzD-p}){3!dylwop0^dnJ%z=*zYkU zr@Ng=P9k8c-x+b;7%~RK?Xb)3VA$)FX&@w5R?0Q*4=0`7<|sAEWC|=oB7h*K$1u)X z%=HnlkU+Tb3(G~Yh$<&Vb1m#?^Fo>c6C}1txso`sHeSCM=iV-qd78WFO0|DuFiD~0 zC4Cz$-)7RxWUyx$$5>1%l_;cSxu2zd?h#{3fF2#wB5H@^>BM+rhdYv4pNusy1SDIf zF*|;&%?I3U3joXdG3r1>!J&zPv~fT+Vl{nj4b7<0)+X9eTzRD|!YLNQtC?HB`pxljwUpBmyR(tcoUY8- zQ#Kj23&H9;)=RZl03W5IL+zG^4VxaUW@6C=ts&`Z!E-W;@J&_Y7qc!BnmE{v5R@oC z`iK-}nq7p$!QS5B-KGRwxRy<)xHY#@=(iIX0)kzX8>(XuK6Q~J6a9TI@Jh3>!=kth z{7SEzYOEb0JMXKd_ddHWlCxnF{Ru`{5z3j4k~pU56Rm!`xU^C(m+rjr8Y)OIM4LLA za&gh~uyL@<^rlv+l;SMaYhuYR7LzPg#adMC^2$R`K7HfWmqx8dzEEuK?{jICbRo+n zrinavzDjVOq18Q+U;Ra5a2ooVg-%}C@F@X zN?ZkP?OZ9k;ljEGeG+67K}$;Ugoa-wuZM_}_2*;1_4D!OsC)4f#UK1%$($xH1To2` zli|>`>F8*K4?pTHr*E<3M8tT0m&3W^-pXnc1H4C?6LK zJUmf6e9lC%Fuc?^@z~ozyl1*FZU&bk7$)JFCK5~l<`VW~1^)H}2Jb&b@IG8h)`3}R zMPmf`qh7eJXrnkYdno!dQm@ zTF?|#1ai)kxXvev#QE@!dWJak>tZd2I{zr7b3^w`CdEz5ivoP67UP9JR)54N>ku7z zngh_0vn9%-v22uLu;a`cYqQ*wg(h*ki@6*6ISe^+EvZ(<5C+sQNee>F7nd*~))Qt9 ztLCn)eG>LH46T!a2yifb>sZZ0&bOgUffX4Dv{g2mu;Qn8YZ1nPhXID;=2t(7Chng@lT@ zU^y^S9e+v07m6q`I$SMvwDESIMyDXcY=$25zd@FwIrkWp+zbX^H*i?m^VnP|5ERfB zhG%OP&O;)cF|=!_rG|9-nUxxY2$P&uqlMQGS8<_^c zynZi^DZ^@MbmQiv-bhsn$y!i8G zxiGHpOHm45)3S8vpNNxDn@JbBH#Nb@r23H$X3v}&-n=o~-Ige%?GUZyBLR2n9Fl0G zz6GC3g-m-qXvJd3Kk`Ioxzc*|4wo{pb;v#iJTOIi36nHXJGDi)(NDxKKK^iHZ)e=qb_d%O==~#|N%CZqgOk&kZ{4f2_FBy5nQ~DwOoUqf zUitV#mGh5Xd*#JgtBGQEx7VWLp`yV=wq0+ea|KTIaGV&mC#s2SXXJ|pPW7WmwU=PM z9Cejq1VVj<=1tU6RS%e^0)^e2_r*p&TO~knoTA2LWISrM(EpJ?@w(mggKHEA&5&#f zpB_;1w*LWg^NzkOii1&vkj^NG_Y`@vPw?%2cq?svsFzUMmZKmFjlddZG8G%vC%^eW zOzQjH7{{cJ4F3>~^@iXxr9kGwN@@SC6wAo=sKOGlwGT(I<$h{OE;-QBfgoE0k9 z+dcLJyQ85LVk~VPEVJ|>g_>Ypup`k(5kHhu$RSPJ&QWVNf}ub>2ZUGxvX(#z=);iX zA+-FnV8dumQ5ihWleiAX&VU_4vA@`km)Y%N!k;T5&qyO0)ui@C34Q0@~{jkgfOcp&J8Wmo0 zcz97AK2dk*H~o!)^PQ>NXv+{EZxl|YNs$4_jTzo;!c|{PrO5=!&(i4EpqVfnm zKJOqXU_=yo#O*^xVZ?vNX&IdHiF_<()(1w(@SZsE_vuF6QJDAdb{OW z*NZACflp(Zf1pRgpaXNh_6Y|F(IOt}c9UUy$Z1Zd7OeLKBq;Or;Ye<_u!Bk`d_xJ? z8l7N-)ABoC7Ds;*jTrZNzzORd1#@8ck2nQhB+1Z4k`{!+mZ?^{EXBhv&hx2USa*jd zSf43(_IEMAhzQxy$vkBJ2`UkkJT=2?Wpd1pwOowm4~w}Hcco!T7M-RRf zRbch8OPjC0y_79#BxK>c%cc|eDM*AOhe(9*8v}_s77xd~&%*iO?K_!|KNVZ8bzXTXU(RaMiU}8F z6b>kxd_hhr-FOzEKRw>7tL~cq$z=Zko2OXK93Rw^Wpp+sv8J?oz#yF{mi$?dZ}fHR zFrpq?3KHcdCsBmsR-f5&`us)RA{^^W+rG`>e>|2=BYUzNU~)FVHXBi$S1n`~A#Da0(cL?=sl?hbrdgxs3Z{$sVRmne`|tc)TngEm$u8IHDst-qkJ>Q9#fjr z%*=lp9d1HMWH{`rHC!o8=|TYVih28SztK;hJ(<1uQ1|sKlkFXiK&%vS`xPA4L>qCC z4UTvZb3jPH_>3pjv!`p9E;e6%WylR^vhk0hBdzM%VlihE078yuo)qUQKXE99%}t%+ zrZr2^5QF+mv}k+SitYEYL!U|K_wK!gtgi#&`(Ckmuk$> z_Z!{H+QqetkG=BMFC>}JW-~0;v!x&vF{RA~XY6A1bx4D_)a}ub#ab5h%~Y!@JQY^j zL~1x3{g7z{2vcks9U74Y+3bs5>}3s5lE(@vhltdCxCbC#WHYU^U1!FI@mHoYOes^R zPls*JNQP=d?#uN3JJdhGq`#O)HB0}&NO96kLH-|pK6drSC|^wf(EpKGdz3k#JO!nM z#RIWH^#Eqd=^kcMOaxH!kwGbLagMLA?^VkA%2KslN;cbFtOrrn%!xGJwz)Mu9hFwy zuss?w6jgsZaiU7h0+gB#)VTr0y&b&kfQfGyj3dENVEIur_fL^QVeJ|hp6(GB`OhO1 z;agt(ca+)kKkFXl^l-KF_1K^O>S(*(IrpjCYoFY&oYHAut@NARkKnI;06qAz9|>1T zM#&jzL7M)D0Hefy1K*G^4`eW5-e-Ib?JPIu!r%MTB^M>&s5pZ0wa%D1g%n3;pD@2< z910K5{%j2QHJ6>a&u9!EGi#g@zeJITycrnxm35f;c!xM$%Ge{!jlM4;~Ekjnt#D^ez>iB$}bMSObta2gBrV#?L z`!XJ8baxXAlZ@b6tz;*?kRd?Z0$Ta^XPCrVYAC}kqdEO49h}Ai2&TJqr3%YMcE}6B zSy53vbA*_`@*$eS?1aD~n@7Y8f$(?--_x$d#te{3pIDCrHm7|`NMlq{Cr*(1b|G`G z5LiJhA0q)Imsgh!5&CH=FgL(UBun1jcTp9x8-*yp26G7(z%T;Mi;9th|XJ3d8il zm4sHbw497q2Y z>DVgz&{~wmkSKG=-k?~kHaIC;$dyi?+P!`+o6Mnof)N`o2!jyqDzRXQP?$>hJIouH zWiTV9UTVdU;TAELRYp}e2GLP`&=dvv^B20;ZVjJ%9)*wuhE` zr-s|Rqn#TGZn_h9+=8=~n)#rD>OL&)0YET8%2Dad$|sW&t_T?I@4^qkK?*fFL#|o4 zrS1+nWQ?bzf2?*&MP3sZnd?C+)HQs^H=^!;>|nDOH9&a{!`XIX{-nyI?9Y~PARkioi1>m z#iTU}*Rpmm9VDbZqX`luTL2Up-#B>SG8U!CKhoZncSbv8gY&fr_7b{DP;BJ+EcO$lVN^Q zK6Waza`KJmz69!2F4rH)l&ua#m^2T`q{MUqZ6s#()-PywhEPk#$Yg+7PpP!rJ7R<6z`Dzu~F-QiLO#-p9tBOER{Ibo$YU~b5{lzQlxY%1=}gD^tsb2 zI+&ySp(p%RB=X|C@Kh2(pz}092OwUnE&3=yL__Fa&PMX!@hyOFgkkB{XPbNCgIYJd$pqgxoWIQsJxc*ykH2Q3v9Yq7-VS z&2GEBSt=DvwMr>pIG|$mdl;NTJ%$37gzq|O5*JcE^0#ctPk&Gf^A*I0%7b8g8I&fR zdaP^nzYat279w??R6pTUd_9V2vD6r7)HY;Tf<_jB_~4sJmMg`j-reTq7su%j9DMNM z{p#rsxBO;O$o%|g`QJTS`?rU2f=3jq6qGaGK`~g;5FsB+-Tj0_nXk%1WEzZo<{o9! z&^mwc<8YpHkn(q476qr!iXauHPhuWn1e;KYkHr%{hts_sfTJMBxHbop3wU;(YO8D2ylqS3Dl^_j#cz-c)Ns$B>+jp!5p^Q7gF zN9l>WMT}#&wFI$L>FMQDlSkyi-(vuNnhR?f4)CbBM2rSGw|je>k))3l3oYIL`3NmA1KTp<1o7=8g64W1~#Gh49B>sfmZu zJBg1vtxtUD1Ixv#1QV(Lzyzx;l`B69gU)C}a{&NvQ zzuo6}GKx3pUOThQ6?VmV1%W#@K0ui0#jB+Ry4`QRm4Ebu?LWDmZ1%{Jme?hjpqs;V z0?CxML^QoPsi2#QQ9WX6Cz+;xfHiN`7j)&R<*f7*O410&9A`yu9@TJU02w2)83j}_ zV@3;lX(?YTcbBIl* z%du2$)ZG2zk9|k__U1}1mR-ux7K3GQl{B|l$li|THWZRAY2zk+7?RBCwz5IJfqD;e z7Dteo{BU1s?veAbo?^wq3-u%2?oC?F?#9lr-s?Aph4aS~#cc1!ZQb09F;Kf70G9SS z1R@0?U8bf=X3Y+b9cZ6$UoVW6X1}I$P{=uQwmmSXgE&bBX-L#HkgySeu^?vM$cP9NkS?pjsY+?lS*EKt*2rpr?czLRz5$7 z?bj2ia$$v&X&AJ*iJ8oi@~An0!KSk*Xv?M&98yQVPhhEbGA!1Xbl2~GmrWz8Kg<7A zSj`R0UI2R_%w9N+&g7wWaFEQV`x_ftsm^5Bkl?fs&59`ylci*~z|@DEuGl(Do<5<@ z#~$*b->^|akn?wqQp^kJOIYWN+#mn69HyxfZL8? z1KYp{^%Pd~YfGHhrkmK^KcFU3N!f9*v`GTo{BgWU4N-kNDeAFABX7|W65<93k?;SB z2l}tK{qx-Q=zy1}1>hnrYL|<}7F0NfXrF>L{(QAuOeXeU-`%Wzd~oJ?k6ZI3Ai#%u%%tLowB!W;K9Y9CdmI)i$XC?UyWcY}0LG3zX{q0*Sc4)|98;7$geht}hdzhW;XR2oS3W+-`{S6y z4UFfGcX$e>IAKJDEFe8{N2>pvBAJbHRE|8nb2vPXPDl2Xh7g5MEA&u9@Ob3u$#XPV zDSF^T9W&9baUKe`=t;yydKSUvDKrRQ7T&QK(KEpXxz8vVi#kZNZVtfOwrM9w)tj+U ztFs(nYc!XZSL5Xzwp_Ak2qoj)c85VgVaE+#nXxA9Q#9Xt*l9yCPIr52Yt(IjX!U`WVPOY*kp)!QMLwhW!>i|h_+#Hy)X+Y%US07GjmE2h zKIaFihTVOA6K@~enD*WX9MgIL9VF+8}N*^jJ`UGN#j5TsDr%8rU8~QN4aV(TPaQU zca!-9*Oh5Kn@NJyS|of@bDA8)N|*;OMtwb3ryvPDJa7COaCjUzgX zfvf`~I5VNct~t^$QVH76e6sCBHViD#o2N2BYZpoqF^&-*t7a&C)C<*n&8BF?sw%JXb{fJl1Y%;!#G+|2VaMvc19Wv)XppxJzmrO16dN zffn#FS%V6Gj=2+DPqlh2^sCZ|(Q-A3y;M%3a;ugy#pM88L{%wr{Fo!J;Ms2fpbISW8drlGQx(dqT;%`w(&A2^#@TZIvb!IOg)xf|{6A*yr0mu(6f z7D^4-YLOzxN^ACs4`M<+4YM?dvQrIG@ZdgTst_ys&hidSlO!pQLoqWcYKt_*X^rUf zFzW$3CCSVyna!$N$^IsiG?z6eleM*#(sKD=uiZW9HJcsEpM?i5QZ1LNRD#Vr_i7kd zRfcGTq^h=0Qpoc3SLA}SlDsIbqEwezMr@QE4Uj{r*dkgJNs@wiReH5-2+p#Ij?JVzopJivjO zOoki9kO2$JtEp-gY?DSE(=n-&C)D7e#Li$nPQ;M zCC1PH^VpSFC*@r72mfI_Q{qIkfZ(tLhFEb=95a;o@+VKX48#_cmj5ZEzKp1%55+7z zfhtjDDV2pS<8pg%`0N)F2kjFd{d8;TwO+wsh~f=^}BdGHg020ns!(aj<9 z4|{+)GziZyi}MjZT8GclJsh>;Pf$@E8x8Q#6c0o3P5OD_kILOqc;~X_z`W-i*?(T- zo~p&vj|_^GAhDtZgeC5O!(uwDprfQJf(#Jb6AdsACE+sc-VRK@VdBm|{8D%T??CMx z4Gk)R3$^@EV*rTakHWb66b)6*fOnW39(ylR5(&JYGm0EIPwkW{gYf>t~IBf3ilY2joDa{dR$16ueSTBNXDhVSi%5$O`SkOK(9vteIwEtTk$f!AuXW(&d%1#@zdxbY`*$pE*UGIyx8H&8g`)|H*Z+E|6 zZ6WeA zckp(h4l;O$%;6Klh-My^vc4Uu5QUF$2B8)i%q#$Nh9GM(>k02 zLC6|ou4k0Zr`Zkab|`&rzS7~*cs9Gcv)AcQs>Ky$u2eG-9}b#^uNH_|P0KQ`Kt+S?7RrX&C&e?C`^O^=7H0~@^6@Ie zY^>Am-dZnRJVjARxacAc%hZcj^x3!Jj#YF`u3yWpthVoNNXSbkF-F7A1zJWJ5yF-w zHZ`T)j&NK^##jPJAO?PGn00}!)2!#10_)r>OK9qAr93`> z81&|)1y?NgFm`nOWajaYjb3^#UP#2wT}YgNB$ms?ZeN{np>Kz215!F0DC{l7VucEd zB8d`5jT@u-eyUcEl}cl-j-rtu{YW2;m3vAcg9V<-@p8A`IasgL-VmiT<(kb`m?rc= ziG;5ubnRJ47n|)6P0neQHd7s;#m-@6CRY>$VDPim9&pCsp@(v3PjHR#Xk&BIY^u4c zdB)J?Vh4bu)y${{ok3@>fu;_&byoh`_s1GL{cpU5utVK2i~hPLmvYi7K9^*rQ5-@p zS2d;qGUbP>PD=+N9dj_~h;*79D`A$$syb*A%p$e=PO7rlGt8Cpl+LZU?~rk>1}hf| z&}7OL8FX>>TL-Dpu$n5PamL~-eU{ZpF%{J@+1dvUcL>;81A^#5r=gAwMJB2#4VL=O zevN>5)RB;`oVMnn8f(^Fm_X=&0r$=hxx*^I$$eo7?v;kGYE!n5p&F}bu{fIS)bpis zW$*Ugv=m@Q{nkP0#1bl#>2hI{pKzMNR85*=)!Kxp|t*DK>C zHiq4X(JH^gp0LAlIda(}s>f}lh7qmT2z(S#+!Ha55L`5Ji0RiSpZ{f@X?Wxc8GQ~EUUep*`9N1N@Nrrl?62++u8n={;@dr{xk$tH^1mhlg zIUh$jzCsrGYK{uZfJp>s7O9AW;SCp<0g`sUu(G;R;;Q3*yS{OY`{3&bJ??R%rO^9P zfzkS>SJ5$FCIH$g*Woa}86(sL)www)^LBJ9ogf#Xho}mksh1HGdPjZ_^`9b-K;i^g zEDCGaY+&$3sB<}oi!y~I)cA;xv2Pmk=XD)Q`5cl%VLXLVU5^H5p~SaGc9nB=17MXg)lh`Qx%|S44)F7o*);&m){Hp(a53uJ^%_L4XYEl zqsggB%|0Ga6f6ofk0Ffi{C#x1qZpKtuu{4hK2%YR!r&buoc>OcMhUSzd7!Yt0I`^s zhl)C82nYl4oTe6fF8=zsGeMDtC&n79J+^2+IF02B1zt_PB=(VosE^AkYzmJpQ3O&E4C>#)}(oy>RR0 zKe_hW-+p}WVr~WOh&N1oG}KMGXj!z(&!ngirEFzjne%|NaErCYqB)?5GmM4TwB{&* z@KMgJfhH6 zKqbT0%V8viKguM|KJu|{n}u~$pfg+z#&9SNY8Wa3OIk3M>eA+|t+N--lu(#y^*A2~ z8zp7K^TC**RHJ4A&0)#h+^vcgd^n9*iTujV%OsS@#)s`r480WY1nBhf9k)BW<`!Nc z0dgD@ktH`uu#wehuq}|SR=JH!OVE2Q5+N@Lgj!!GP01B#rAUyJZV$2=bfE2a;Zpad z7dV^C`W|G^479BUA7BTjhf3w-+L|u?<@CpXgDC_nrs@n~BXaq2Ve-!Fi4T5kxba}@ z)S1M&v*R1rV_UZ%kCH-EAqi&5;s|;^J6q_?q_8#AX&|H~R#)L70)v!})S8mX0x{CV zPM>r7K+-Dn#SHr?gAcE>-!swvY z?~Dr{e4Kev|BW{}TC3JCCSwwZ1z>W5bdPqH*)5e)7yCc5{u$q|4{zP%ZU~TSHl^Bw zQnb$Xa$<;`LCH1LC72;`3bzzL=uLPKr(gl4iIB}M1u{Jev6RlF(g{f*lP>;n+&*ZN zee`Fz3V1N;q9MdC%i#h z&@~!%GL%kFHM*BiJaTFIR6d)0>4okqZxlZAvDDeehP5-JRDQr@jpE@S3RmK{s57x# z86-hGNW>m^ZD|`vltH5~c!g1e+))h$t9TBF`%;H)34j|1UsPPo$zlh(^XjwLZ*C@5 zmj}gCtIcL+o)v#6LaR#$d^x|)z-gNP`ZO<^p<1F#!V<(8JfcS*YAjQ~;0w|f%N~A= z_7G_H*Ms35jWr8pf_$W{!vY^epJmn5JN=!8RUx?e&a1=I|x&vFJ zh;juZ9|TJ5R9CHWK@SlaE#%Tr zA3nnBqR9b~NQ#UsZ0KXGnd8k`%x-Y8YO9G|ODJT~o6eh#9GH{E@&l`9@}xs&8?STicJ^ym*#Ic_AEToLii~?0}R!>?Qh>}c4Q$x^BwCL=knz|gE?1A0$ljYN*KD}&@pF};#t!XN`QEC!>=-y0?KQd>ek zOcYTE!n9DI>49wUf8fd3)@JAGwfss&tb#lQ(^gm0!c(W?mV9k-V?U^7?$I|SOa9b?~YBI@OF_#+k z(&Is5%s~!>=Qy(kt^J$DT6P0igD;`Ulg)MCd=1UzL?$nJl=)nH0Dd-Yu+vZ5A7GP* z9TJ@%(B%o-Fu{I?29#L-r@nw35nhFhnnVU`mm*2C18ongigC6ZbrK8-=;kl8 zmCpicoEre-mg0@oOPj7sZHM_+8mmXDh>|lACAG$nf)Eo5$fwn@pxWzTsF*nsRZBNQ zu%Te~j1mxm${48wooBgS)7g9>o$um_PQS!`W)tF)NwR7KL_ya}7W}2;mh4eC=sno{ zWRHT081*WhURpbG>-rnzA-iM5?W5?;p#!F1It;)z31*H8m3udDlu}tXnb@2GFXvnG zTtmUkvQW}a4o8_s=)1=;@H+BA!*u+EAvkI};?p;4A5cL>`bqmpeumdrqL3bCp z=YPcSc|Z3J5!MAT51Vwi$6xxjI66O{{(*SyjHbsbY)!EotQDJDB%jum5LfcEasv$2 z$VwmItv6rW`uES4?sZD-L3_7dL215nte?a-?9Sco`sSVHja%EbT(oqX-9 zu`8D+t0xl2PUcRYAC-=eb5*XP84fxWo{iO-Y*+@!2x;k$x~hXTxD}*+3;-J!T!z%; zi?lGCMw&+65`2c4_e>l^*p#nYK@eWv*66KplH zJ%O$lV+XrSJWK#g-e*W*;NX#Rqf2e!J@ps&jAmd+9vWRNN2=v9q}i}oCKm989zJ^L zq2D<&`1D}T;oozy@Q?b)?Wi^1X&&6?Y-Z;YH4wcH!Rf=kS%;(F#g3-y-9FJMq$9?` zcmRjQgU$Iz3G^^g&%k{chY9lZI4~G!wK&SS8HNMDNWj!5gmq^C4k2UC%f)o>IZ`}v zR^o@xhk)^E<5e zD7N8l{Kl^rf4G)Be~Gm^CC6H-(P>x$a)i&m)yK&pVw?wV<_`Mezv`I!cK#G0%!hJk z*(Qp}wCblUYNEklt%on~rr&pNAP6UjNBD(OE22mT4FB0;F<&Yg%&6IDHrtI}pDTd` zL}yOFP6XB?*~HJVi{Fbsv~uc4Kk~Vk_OAZ&i(mMOM?QP5e8N%zlPFf5QofW#P)YF& z#vRdY{x&{Y6($))A}@+6m*p6j9tZE-(YMRO{e6Tg%&egfzEZ45O{_U; z{)L={&i`n@va&R+wR|XZpX21XR4MN6?KN8MVzqS8ZgcDuCSsd%oE?@%7D$#*#^C;{oazNz3`hZ*#HrpBkxQ}=>l5Xo)D3RjC_M4e#>U2=-OS_*)M~B= zP99rMudc*Ox!8Uy*5dGhtl~CrH9fUubiIouF+MnEdM^i*L$na&69AM_Q zEt&uTKmbWZK~$2WPI9;wc~I6eSzV7!*fe1sn%i@^Tn#*GLI|o51~8;@41Yl0v5T6o z=K7o;7{rpDUSt9=B4ZdS)uN=1@_=lJ6vNz>e4)dKzBMIFwP4oN-*5L@z2b+SKr-&X zaV1kIsGyN^rBS2v%|mzd7jp*Mg00QdUZ_)P<{lv4+hJ>r!o_%z(`?|3hiX1WfGFJO zzBZ0xXaybiT6JaZ7G|jSNyr`!(TqSB3DKI%+^9v`kI)=|tg85sp5UOJ_hs7$zA2)D zSz*Y)DWR^QD24SX8I7fe>I^ZzE6{F`;CpPDjF=J z?n=KOoKoedq$oq|^HhsW3kE%zxMkU1J6G(t#IrlM@08b0lu9eTekU8_Oofi6@<15m za1lnnTHD>-hJBPf^Wv=LOE!sM0>tL&a;?*7=gNiAek-xOOteA$p#0!D!(k28x`N=- zdI9)gzw#sN`jMCYSPWdQD^T|l04NGD&O?2GqF5wF4B%ZX^Kh@ggRIy$G2kV|6(7Cu z8?jrPv14nAPyJ^K8gU>9?#Zx}BPd8Opo@sM31DoAb=rfQw$w*D%f}zgKJl6O>VvEwuu9PHa+|ZXu2jD?{Z!>(Wq~jLhuNUI>wzi}s6Xg6T5;2A zajQ;}CwejVw{)90mWJa8_j>huvA`uSsrZeZ%`ZLQd-qPPKUu1+<`aW%z5mv)eZKP9 z#_4CC$t_n?gDw+7j3w}BpNE-))-$wtqzQ=;Ce}HcR5Dgvd^?{=d4({LseV$_T2VSc zWyDHQLH0Nw=YBtL7tzP^4jxLv2!1`} z9Dw)tIOihr8HI77b4a}BA|ycoNBvz~`H*)j0+pq~;W-U8q%J6m!NCYDEIt8-Y!tUG zV)PYFJ?g*cHkHR&a$RIk*qPhHd4 z&M(T2IYtBsr!iF2o|Q9LLprCKnZ~kC6mA@SZqaLLPDS(}VfY zsl!ngDct*zN;ac>i+qHPfK4vns-cc6E=J%M9|52rl!&5HfVy@0cYb^C&DTG2@mzds zzqz^9y0$)Oqa2)j<&~}GcIU#A51+~v>x|dZ{pF~i-Tb0nRh=>&vRVmvdD)VS7K#;M zfl6E;e2H4M4tW6_<&U^w;rt>C=`(x)bB|;_dx(i!U;GJ;kSP`SAN>K_)@9YdS}mg! z+}hb2?rt@AcCm+&IabRQi+EyWGRK)wvahp=bnU2ga;i)E7T!WM}fDTNy-_>GkuCm%sYJ;T1f-k zgr%7a1CqT1&MKgop$ls@M`0n)sku{G*vQeU{CKc+z=+)6X~p_n6p$SCI%snz!me#$ik*Kg_8>fUu9=KQw50UTu;V z)#uvaBz8*E@&2&Cy2&YPOCs(8Rezpo`^J zFjK5-nPB>J$R%es*>Q{dOz!kB(;+=33TQM*{fr!_n32t-D1=}yPpT8jNHh}u+x!a} z5dqNxn#iE2$kHM5T&@(Oyi-~9&XY;*Qe!&GjAMctK9~?!p*Yw0l)CH~X!8UcO8tYat>x8|TX(NkXgLrSbXyo28gkDAdf=Peo3%ojBcYsch9gX! zx%!Jeo*cKiAzQMJp21+%AaTBo)vQ6goqqITYi}w*UgTDv)Z>2m+YZ;Uq984NNU`hM-*L^<8Nb9=nm>|MSV<1jUQU_1Nq#y+<+XPKrl zLm&2;STa|_%5tkYxcrSpm21V+c>SG0Z-03FJeCJWnOw4PBEEcj zkjzm_m>biaNL;mqa<>gQ+%#`g{HPCrP^D>flsH6dbsr5bicf1i*t3nNx~sPkXmD}58&ONNuip%+Ob)4M&H(%Jjy7Bbi{qd!f zYuta%1c15Vmo9k+g*}ka!*R*t;m)LJlz;TLC%_vfeF8GMIE1*Si zUvR|pq23e6)YGLN@tH;m>e~@%t1ekJIx>8kbQHuVjl*H^K2b2|c0p0dLla%}^iiTX z=MtLxJOnZVp>kR%7MF^9`{+|*j^NJ}z{PQOCj^e9=}}G{ngH;46jA6oIvnJY@AoLX zBjXX^6M_s!fOp(4S|rS4z|RxnP(`3-oYN>_F?c3;IFHIZe2@w+WbxGVXxChh4yA2M zQi$hJurToG-@|D0xf3Ns4RU=*&OBZh=6Vzj4t&$WI7Aj*1Z(w-03p?~7@sVT=!%@g z#+BDQZ@m7k-}~*O8}Ht`@=jyDh4J3+S$V^v@P$5A;MAu4o>yUy`{$WnKpI3axpyP}@CWjj9&KH|TzTxF#F^uht*uz2!ICq3|2iv- z+B|fK7Vl*VD;3gPiP8@evxL_CbdXmf+m4IP_CU~ zC0+*(%@1i>tMaUP#zY>Kk2l6-XqcQ&7$tgnY%ZZe5vTwm@UW~7t5bF=K;~NzNwOHn zw5!vYoukg83z@jMZJ5A@`I)nwje9J{W4lB$IPDYOF?%9YQr=@0p=!+r3i>b@BqfJv zIKX~QbC@ddD`8xX&t@F7VMJW24Dxj%Q!Qj-x(k(MZ?+mFEyHXQK;H@Rh$F&-F*iLR z=tH)q)hx$SSQ6g!ug^`&ntW?9l{ta#-ZEqV7*!!HCZUB=zLd|^_xCYO#5_S)07C^w z#zhjPuRe_YU^%J0yhMHL?Hn`@I=NCImCbc}4NjquuxgGnNw*a5afSfRvNy_?l%jdWy*OA_}tH*_-`>RXgrDm7pl((92B zYs(3a1Te+RRkNnHOR?Qg`^UmYe(@iX5tsGb{S7`Q~Sw#Q^pxR>bMi`{yAeB+JD%^O_* z7aPRWxnee19gg!`Z*OnhdTVE+!GMMhStgWhIWP%tZXaX{y@wuLTbhht{-ZB`B_98t z|LyPRD;4S=JkZ#sAyhn!Jd}|ygG0+p03IIt<(~1A#}qo(|%;e_i!JO;_V`o|M(yK*U?!WlLna_R4`A>eF z6;U#Y`cFQKB}b_ZDDBbs2QEJSE9V}5_R2T@>E%E8*{A=OOGyhp$_XITw&Ez9^%GgH zj38c*%Y``&L*Nq>kcB$T=A2@eCkcQ{tC{r=>SlB60J}V`Ry$KHsQ|R_~Nb`o!LY9fYt%W*cBT3H^x_6lTTm_6+Vm#PHOxIxpRxK&INx!EGNAr;qJSB}}nZ&ee z2TM!6asL3zlXX{w9K31w1}v$LIHV9mCyTZ`j-$yUX+DnSeh3N7-cMrX)nxb9yX~8s zH1uIUi?Wc`Enz16U3f8fVo}{>8gwmC+=mpI07pQ$zckEZ{t_%~!VI(gXDy#JIB~(z z32Z_kS)Dz-bm|1sI;O*1 z43=ukoNZ``k|8q_CP!KeM)pI`i8BdO8G*UFn+#Feg;Q6q)^n&@2ZOEkmR7oW2~a&Azd^9-hYQ7F zU4erUY>3dc<-ngGi{au~P|zy`m|UnqPe#4*bN@Py`QyLzZSl3om|DXJW^sblBuhX6 zK59G?{4f7v`?;4^o_H+rVrJ2dcgEE}6-CzBP(S-;)8clSLE03;L@7%pLX}40PRqZ=cNVIDVm>OS#LLxm43NsH($4e{}6X!#xpo$xSc_gkt zgJLsK=k^6XjUKuPaxhWIIXnb8usJ*~N{A`=UBpAcTq+K94%-}_#m_}}=d(zLhs5EC zpTp*(%s~R?gM1VZGw0(V7vUY4i*;z|p;Sd7RqD}-p%$(h;cy;Cj{^B`)kd&E>Kdg& zGoS=VpJ;l{KZp}F_b9AG9uP4bFfH0S|D!$^sRwe-(|>v*z2i`{(NG`PLHeMhTT*~> zp6TW-Y_kjj;an1Y`cxLl^Fc0_|C}Rl5$znnB4&J|nTleLP-xi-aD_O0G<7h1xExyL z@zqWNhLS+g1$jj79}o8HcV7HTwU`^dc`f~Wzdz}AFgjSPl?EtMXXE)H3%ao!h8h|C z8KUX#8A)&7-TIB+D7^l1`Qx9gJ^W}to$g=-h8|RU02(_<#I4Y4Et7#)qZ_h>OWBbP zolF;0SAuVII1u71f@;1b%-}=(QPF6Qp|wa7WN-@INCzB{$A(I=z_l!#^(9un-AFX{ zmU?^f`knUcufO@FulM(MT6Gq>lg-Xxb)|Z~P#E00eeLIdar~d&edLF}KUb|V(xb@2 z1~2$o1B3*wO8UDW`QEQzdF8ji`tSeqN1l0X>8$paVW7rl&w9sP%ZmAlR0H7cAzeyqXJ}}G8qohrW&33V61wEMR~C|l^Pea z1MC>Zxf;Q)umxD!IZUU(i5;diCjZ$8!1_|6-A(rg1?;qb^4qBV63%kD<-h#hnPD4| z7iQDKG-;Dk)j+cdjvz~g2s9?Gy-gfh@D4k8NNyaT2FbFJF8Ri-`U0_2#WxoMx7_BD*9D zJ)XkF2dWRAoz#cz^*U?3Y0RN2Rd~a6W1Pw%U9*r+iZ+h#bUFyuX799yRlUXYu-%mm>vz2oPJRUMnA^nGhHY$ zUrDBN<;qgK)rQHK{jVNB%TC3p+fP*JG4rElufMfZTsy%{VEIzD{mQG^bLU{IDvZ|^ zA*I=NYVF_Zx~uRcs$Np4KR@1X#7db|4&$2H1WJ0S05MIy*P!Mnmr7V2sP8bl z&F{CkFKxiNb{cADIB9Hlwr}oVVSzuBtX4U|Mc>XTwM6pvRw4UtcJvyY+R^q@W1-Po)XU-afu(j>|fYvyH8&}uv3M|1EYIg5Cv zJ`m=*2C7%+>oB`7&ov(^fA1SQd?=2<&;9UiBdx|uf=FdF-ubgHuYc+DD<`-Kb-ep) zf4CA)lpkDS)g+NmAxj_)^Ph2%Gf$<}a<9c&2|{<4WwS~q)qnksjkm59AHP)n@KZ|< zUmO*y80z3gUCjUxHY`zwe1t-|`S0qlQr0)LGye#_9JmHwiDLHH=tS=-78t#XLl|zn zwCKmfFApKiGqME~yg84@1+oaBjQqp=s2<M3c}cMiBGSZYNCArm(56UbTO^il31G-Os8qj+F+C2{voU$rnAKlKAtMqhFcr$8@Je3L5GJ+kth}BNZoD^b*ScR z@9qxXEgwHoedPT5)tj~fg5h1v=jc{BdKJWX(=$S7q?@3h!DNtD>yiFdnV17Xp)ABA zf76wW%K0*8cQ7Ce)B5aEBK^luNsOB@C$)Tz1Z)16%GM7W92Z5an_dXXHkD<~p6ex& zXhhKrvlP&1#KM0^hY`lbY=ONAX8W9{AXYJ{%MeKzhB1T4vVp(}4AhpADRkE9T0p5O z6o-R2FqA9O6QU%?p#<7Ox>R9rVTc8$j8>3)8yh-ZozLm6v~;esv7Z0f$1GzeSO;Yj zmh<%2ipRg4sO~>Qhx$NOjc@)@Z2qf8kzEw%VuP>$L2UaV{?ya)b049!EgT3-M!mHh zoYUxDd$;v3ekXqUrP4>A9NoCpf9Klx-J3E3#T4p;m*UlGEKAMrjo#hhI7M=~5L?a0 zcAM0<=yPC*|kcZDe-Q%l;Tos?p{%&>~y#iddx(Y zt+GyQa1&e2Ou6A7xu->AudT3&H84yOWSJP`m@9MAoZ3Pg)bKRuaDQNTgjr&=57`Xl zPxp&+qDIPgi2Rv&k{k2LBhwAlC!Mf~qsx{VPjXodL($pwDg`Vdr~A~fY^=MvTR{`) z<~m*DD4!cYa4z%7j~D*RXX7hXu#iVh?ZT1?e_aPVQ&KR~aag|O6OtFiK^MWeKNHt~ zs5e*`1$=1KaVVst;eBFo*bc?xf@X50YNh&fpJx%(q7TtMc~Sfh(j^h~pG(dG;2Fj2 z;62*KDEC3=fmPP_aU?d%CFH=7C1@}{)KlwI!C_UywZOn_q4EwU0MWcDLYOM zJ9#{Pc4f5PNNn#_1_g|y5z_4q_cxnp5TsbyeCgF&UwftY_{G8ppR7LhHaAK7n$^Q(>L4QYFR^<>>O!n7mCF_n1 z1}v1ajEK0Rty#AqI%zfQZ@pQ6>Baix*T>D>KH_FPwz5*-NF?eMm2y6NEX}#U_C~!_ z?xmN?4}JLQjc)AafB64g`jPKh{`PM*&S@14>4!gri@)>qU;FZFFaGY!&;Hm)zVE|J z=Un+1`{%f88B=`KZa0WWOPRb7=zLsEeX5`$kJXt7-v6JtHvy95IuA25>&&{Vy81q5 zdd{8`n87i`Ns8c2Nfb$mqDXPIA!{Ytx>hU6E3ajT?XcEst-`UkcD1qV&|zySfoM(VO2}M;t}~%odavt}?5Q zASXUhU8Sl&6sU;Wy;-Rce@oB_-XOIhuU*)P)F7QY(01tTgB9eaXzhq%2~IqqBZa~i z*Z$Q?+nAn6o;}r^yWZZ+HL?{%&h8L{A%Vt#L$f%0_V=U#s}K#TQCsKOs9V!6JR@|)NZ zqSY`{f)a_$QP4$CV?piOY^&Px9GcbwnpPynL9Mfvfn?0ivnBdNRYbrLrMLKihV#ct8M!dV&SsUNR&)w)ErTy-4~WgZBl`#$#*7tAh!|K< zBMdn>!gfaHn#xqUvP|TbUjc(&hohA=cWQ3%SFD49fn#CX^G_C%JXQy7;2(NRYL@23 z?wA&+O|3HI`g9CcmeDD9bhJ`w211}oJb0pTIXMqm3-fi5f(uK%1W^MCSdt|_Uq3OE>R@qvsck@YF)U7vY0Uv=^URj zrbihA5xH!vW0$WF$J{4I^rGUOaPJg|Yw0`&Iub=Y=+Qy}ZF0iPu%yy@Dy4^z*?V1+ z13|o}zO{-|DLWZG+!(F}YMqvtoulXlGpM1=Z@oXS zgR!sro)AS2m&US05oCFZ=Y{PrVgw&YYn(rDro{Xfvl*1|&&a_fzk{SQ9m|K!I}RkX%jjh_9} zn@HVN%T$yxw=ThjeJQj#b1XdC&z%V#0m zpjSyZvv(_C_Jnt2T1mT!?I*jSyE~4fKX)vv=AvEI9+j(S-C?ugNYKNb2-ww&F0?b> zN>iIP>U}TX2iez|KH%-XsG;v}^u1p3w7)&GahN7oyE&N zA2Ft+18mXKbLqM$Ak!Z>0FkN7GZ9^?x1`G!=`T__^(m9b^4Ug}oc^IC4MoT41fOZ7 zY;5lsNVc2BVkx!0HG8|ZFmJ9db+%HCEzAMU_)u6c*2;zIU?SM8G^*)xY$$>&2RyWg z46V9wyD~5`{=Oe;96qr2_S21IJFjH23zOUw!t>BflUY zPHTwiaPP7*oSVGrvb>L6J$#U9Wl+6fM$H84VGpGHT$PksWr9dAWQ=;%35*n1k9##b zT9NkDt^DbMs&SX9tS71~RwW|`rY?N_1{9VL9R@sVV4az-VC)N#TdUN)-XQMIp{{Z5 z(nk43JU8Mn$p^JZV1-(vY`{uF#Wy+u9~$jK%`-%>59o7aR)_o-G$JL7`oqg#e%f5z zz}mVce4Jj-w>*Y~4Q^E1p-2Fi|6atwt*YAygyRF5%|+z;e9k#)sMKos*a;`c>Ahdq zDlfc%#~0MS+IXi71tUNDq4LyZ^_$NHm?DiTv>FW>`zLWiS(smn45FEU`n&iks%5MG zp;)U>b+y_ah!Q2Um!Yf^PS~rJnS;8vxTFQ4g2{<$LBIRRK_L&xK<=9_YSm(MZQTQl zgSavj({cqk7$Lr0=zuF_9A-5qUj&!}2@uAZ6<)hg`Pv`1us48IqD6?;I`n6)-KZ-Q z90)K}lOY$Oe&sj>@iOM<>Z^yX}>Rx?hYoBH@?q$9=L&42X|sWxDQSglNbRsp5a z%|cDSQ!k6Y4$A|xtJ=h%apoSl z5Lh*D#OEWPhgZym3R^|D=?VM21+gh-d;x)C7jqPZJ=k|K0p*ZL))Hmq9D`X$$KeN< ziZE`Rtg$+XW{L7x0M3@3hE2?hdT>#%rV%;(nG*C^_8>R;buyPbo4NZsqaesL} z?Wti;AM?ip;p7nh#Dx3o_=}qbU#*qCF+cLDbK#@!YF@lhfA(AT=g)`##c#R~j>-3e z_L*~xo`r7d4_6m&GW=GCg`-}&3$D=BoeAoZ)U(&6P_OW4eL<+rk#Lr<^PQQ_v^6(u zFzfa%?NZhTcGh$Ev|Yri|L(xfr}SiZkvnzIS&;PZf_BcGYOwQnw`)DJYp~j~Zk?qR z-upTtNVg`2^>lBfIt!_J)NR79y$2u+K(C5!&AmrI)L+>Vdi~i|pjYv(2YbHQZYV2< zak0DYOmFX2jyLQUxl>*Lb@?(tc4vBx-uWee=*H|NyQ_pXCw67uIpYphsqEgy(c3}n zT6S*h+vC~;*flZKR$@{A7;LS6>2qW6Jm*bDw1pe`^*8n94Xs>t#XPQwfR=$Q(!B3` zr|X`35P&pqt+`6A)`c5h3?d;QM&coVh!fRXajTjsKubXpBC2uw5R_H&uU%Yy>Ef+u z#5+7RdhVXYy)*IAk%mjFwdL!KjV*gHpKZSW@&_FezCS`~2pb@gh@n)Nn!Fo7(Eo}B zfO>$EQ?fWI-K-Y!8@WI*5{~2X1A+w!TO9##c4a*?KbOBX-^irRVkPEt4<=m6vs0qzVpjxf8v-i#AdEKt8hcV)d+XTf7kF^Q_nf^ zwx?weXVza(zN@r6vGVtP)UCjRutB@IJN|U%6M3pDQlhsgh7a$%6+BeKr zV0_r0jAEcrTU@DUJ179SFzxl$C6Q0pUV9~Y?y>UAuMor&xu01oXl<;7!`_K;LVGq= zR~xB9FdFm{Fbheo&gmnq@+z83Wt9E6CB*Ca;EADaa84*nYtqj)?uzjL1A)!qgB-*m>0}i#zN|KAM^u?WI|#(~*%ver z+e5NT^aix#p@h((VhxH8jZ0IJ!h91W;iHEe%Zr`O41#W<*`*QjZHk~3WSCa_ddRUb#`lhxml@ELoAvIMUxw8@#c$$87CJ3BNz%8l|q*N0Ai3$LppI);wkv|o`Ge6ywZx2NtC6`XFD;vloJe5Dfq;OZ7Jh%NM6Q>k2_rEe z#x9kLPa*`{$(M{Hf*vr5tVoWT8BGxpx zmbuFtaH@me5mY{WEwTofIu4BBvttqB#p(4*%V)Y01`E-Li4cBo+qJqU*dBP|i1ER5 zo^QYHy}eSK%XsSE`f@saV#*lD2bX3ncsjXyqnK@c`zgKni2wL;@6QaBKL6Fsul#oM z|N0NELnG2OObNrtit1h4DM5s__4c0a{JRagGoN|M2#~iEk1}7KITp;$qWwj9DzjW& zPIzZMeKqX9wSb+)cf<7M^wr;Y>jdt5WcSvB+4I)f6D!>Z=B%G|UlVt!nMYLRtlzH6 z&a`T?Z*2f6D=ShiXF_Fc=g8)?Yf|i<30<67HUQQ-RWG?cGo+b2^wnxoepNNJM|V|^ zWwlsUbK9F3J#aPW0N}pcAz)N1lB3c*<&mnYR|PfGi9@r1}*D7WGI$Lqp z=FGQx+gEoNfR52089VEZ1h!q#)cVV<)qT0O`@da7w<$HJBy9mp6RJQ*TmAf#!;e1TogOtWo$tKyvYySj z!afs`EMi|m^+ZteHd=Vcd*KD7km1v(2#nd-NNe~_NDw^~5m_U9dAYop;T!I4n$eKA zNGMjVC2n329lJW^Tp_ofU3%-P8HtRYI5KqPz~J!%vEgBNB8t-lq&)cGW4~_UYX#k0 z92$yrhR=0dBT`JIKtL#l0>T^7C3eUB3gN|MgFI|k_0m=wXAUD{UVNkE3YFC6*3E^~ z++1O03ms2nlelhXH!u6x=p#h7J$Q1gxLM3C7SQ;CC`G9kBhq->7l|4eN!H3(H+mxn z1`x;U>sLIHR=yn>Ja?utd;P|*{<8!B_Mdv=F+ME9jA-T)haP?K*x6UFz4Aww{^oyw z;2$usf8jUSu8^l*YK0*FgC6z?xr}ZAB69{1pFfzv`26rFT7@vcNHOQl zH4iohS|se995<`wPI?n693edl(4u#MII>Di1ffZU{D(NE6|-g_*rroHgX~VBSXrtz z(3KKVIO9d|S?RLO6i8S&aBAU(9$=dQfx}yhDvsz{Nlyd?X0V9@1d?a0RB&>`;enI| zotznvg8dOR%MXhUp*YJ&s+2b92UH58d0Ys&oAdzo4GJ0Ue5h0?Z)k7)a>AdBnnl1L zz4uIQX|bIy5G9XyXn;NrHsrhzr44-TBV3pB9VQwiF~WW#F9TVt)|*&$nw>K4@ZoHb z$tp!A*c}WgB(SdVJa9A8LzqBO`xfE9Fq1MOre5zfPv3hcef`GL>lcWhOav}Cw%S$} z75qpfj^*Y`HiH+k@qqyh3yLTy(L5uA=DkZy3&cgKKh&&nsv_qqsEJqDBE;^(Q$so& z3UUBY&ZP`dK;nczRu=e&(B!R=_rs844S<_ZY!m1_)du|GQZ@%WN+nDd9||*!v`lFg z6-t*42uP-71qL9ycQPtmF29~q#6QiC6cSM_0O2(f1R!qW0XkUDa&F*VgYpTwCAtA>dzLGuN`7$x&^1P@f(o+(hT~ zH_f>P(WgH#<2rmy-#_Ih<_6~H>uKLuLQAb_*KVQJ)w#Z?jZ6fOO`Ed|I-AKto)(!c zya_?R+bkR$4*1}q(EY)mRXq$og051tRl#K~+X+k3bSclkCf#KKG1Q{la$GC_cmX-M zgCCPA1)u4|^DR7r1k2zUfFl8sNwl)Gp|3!kMPX-C^vuEJ$vxR_@-G^Qp5rXWFj0 zFViaP%2H}j$PrM@`18pq~OkaWLS1KYTb6h9FOcutP1RUq)rD| zuX?)O1L>xEw>AU`g%#B+se>_4gCu?GqD_FMVD4+r`Vvv!^hE3WMg8s9T&04JuoE@c ztwL)dWfp4QsP4M&5FfbC#kbux4DqUZgsANeSJ*`{`6}`IE)jA(V4MT(dVP9kZ!Kf!@c%!&; z7DZZ|inps3vs!T1%cy}PoJCs~F)m7-Y^O~Oxo{U(ZzE{y)NA;xTmSy`+10hpjTE0- zB+Q|R5yyRJDA4FM2p|<52twZEQdJ~CVo}Z0ujG|FyJX7 z^CZG)%NPoIW3Eo0w4=85+k(?eH(?Vrs2+u!w#j)EBeabocs4}9!Xx6l7S z7ryno_x|*_F9LbTz<0mu*7Q)LFZ13x^JU@hz?!=2}*m2G)g;Iqy!KTa&a^zA? z?3gW%+AX|Wkk%ZfwDiX!0=hL=^nbSn=^S|WdWQ~->H2wzDQED*qAq(=x^h$M(hu!uw&9T8<0 z;=(wxnI%*bICfPUov?u#hHws)LiS&+HE;uh^(2PFnRQO1khsdsY5%U+Tra~^kPPjh7d#Y*~cOQCqHPcnZzpM&_9_B;kc$bnS1+kt(?WJ zqc0wD=e+26z_YSOXq}N|RG}L@L2ujeA>J11f}Zgj$ZoL{5GOw(?nPSO+1L>9p_s12 za+EbABEoyl5D@7j7l!yifrNvve4$=yG;mIuOhi8XzQBR|J!6wN%4`)g{*BdkrQEKS z_s?)W<%j(A-`PTSy}h+jbr zEb+gDA*4D1Xw}61d=qa!6|4oC#k!DHgTwwvLUhxy?uAHimRkAE`r1NmZk}fGgCZ0v zT_L)aoXxTJ5QJ;~gHxV~WP9<37u7q4LRbf86J$Kn06dX$j-rTo%5a7tQyn#XNPL`q ziX$R;NXRh@xy(K_!ZO{}nFXSMnf!A2fW)8U7vYsq`w@18bvb!(zqi)7{mNSbf2fK^ z4y%yY^SH|`A8AK65uP?zF6%36=CONSGY<($U}!S=>gT_dyS5mA z_|f3$qn)?js$IG4KX<}?e9WAkugxv_PE6~o8%!A2iE+Tq?0S3dhMem%Yp17O=gzqg z9qY{BZoPfcjpAiEplxk-R&Q(PFY33~#IY47L1taV_1K!v-- zXoQsqo^f(zuuS<_8O#yhL>(Q3!ag4{$QCl%H^0|8xZgc>IQX7NToVHW_pO@GzpC9@ zMMtfT;$XB_!!AV#C`o&ZkypUn^E- zAK0GFSul1JcH&NL?FO(Roe5{t&UT%}Njt$P?tI$!=uVYe`8M$GI{N^m6=z*{NK2oc zfHGgVK^^_<&4cbknG#(iV3lLdsO^${DMv-yPaLzwk;%&0HC~R#-MQG;Uf->=IXi79 z>_MbjUe+$_%-?SDPN_Y6-3->gnr@ObZ7CsaDma#+m-|R~7@_H`e~<*+ZZHFdF}r@4gV+ z+R#T6olFtQqKM)TkF}TbuKJc|V%T%$v^(b3(p&B2jaF$%TPx}nHv58BYFzT5M!{ht?}`n?A}gZz@AmG7pS#4_yal1&|isBu@LZ$Ie*biwTDV4=u<2<~>w za~sZvxJ#n1E)c(CtC5n@Ke?>A#*~8qg7}*_GWF`)=OL_JMgY(2zF4BNzKMdk9F^3Y z_*Ai87n&abnO;o!2+UN1gvAUu2!;Fr06+jqL_t&!Z>vSZ0$>nOEtb&u;e|QSua|1# zf1OB4B3i~1K2xQN-abm^==AUvXWsDD4+edh89>B0CG;?EIMA*)3x#Ua@Fwp+?OI>2 z-dy5S-E1KdZer8Nd49FnKt`xZqaM=`mxatd4h=Xufb5`aum=c?Arj~(Lk2Tb zX^NeINORHeY1LOYj1vhaqbpbTL_^F3tX_nQhx@5kv$b~UM}IML>^>}CgC`#H4qz?` zn}OmDe<2~Uei6qwNGA8%R1}6lkqF@%O1VfOQobCTCmen7bI%B=D`w47=k5zI3(G=G ziB}xvDl@_Q$Fxnapk&$#; zjLzF^BUKcM@b~Wb5!Xz-RvEaNCxDn`GYoN$QGmZ*W$IQH_eY)7D?E*L+=oyCCqJ;U za(Klcy1X25`J*AsFqrKI>@ltQ{2&Dnlb%SZRVuIxfy;U>>kDE$O5glG+VnKi!$wF1WjhyrrtCHwECj+H02>DgFMR@`dCS z#r*Dz<)@!-#mB~e>A%x5>DFI;!Q9*kJa!I&dF%WYPC|^w&X{XU=E5TUJl#?xe3-GT)lluCC|-SX{;+(0cVodp(Q3 z6j%f+o*45?_DfL$gXo8WZELj>j^9W z#Fdw!FO)mWSM*b*=F)=i)J%JExpU*TCyzl78bXE(4`SJ>$1wDPARi!Yajo^#Q=Xsr zWb$W!cH`Nn_kZ*WwVbUDTG-M3N|so5$MR25NA zRV~(g?`}&bG?%@h*tMxrKg^Gl&UKEj)n}`I=Nt8UyS<{iy`m4Yy5s_e%PO@;pRH~= z5z~7MfGOzgw$!G^&6#gO*l-qrvlMBob?5k409HLxc4tG@81_}7pj1187~V@VEF5(w zjdS>Vh3$7&8QtDVQPn4Foa)!-TN^1Yn`tgCdRNxm2S&8P0P-&P)QP~w-0 z-#5zzy`JSe%W=A1u6QBXA&tZCdb-MY+aESOI7csX*6T0j%h+kPJ)XhQVW{{<-FV9#?Hw(=SssZ8M+(hAxD*+{1s{Z#&`qcp zT%~+|H%NKIlVux@}Zf(Hr9%%Z)e3cswuN!Uw5A;Z8p(Ob{Ge+*rX4QkL5Go-k zmH2&;5DvJ}J;#7iFKOHht7JmW#X z>8lhQV@IRD!M1B8dh91Zviu+az4@LGL_hXP(Khz@f9}MO{@&*K&;Q_Szjfy0Q4d~F z7~1Z111;dUI|tMkTg6|yD-X}j!> zS=Y_CU>(0|8d*(rb5*-mS*zWNlLxE+`8ilD4@6Zq=M6^mK(JP=88LiyV-n|sZe_fA zLrDMNKtjwqgl_ZUWu2(7b#a7`LWt;0pqz^!9|{rW3#4rH8M+Z7u#hcAqe1cFf@ZuN zmb)M?u_1tf5M6bw2+B1`V)(q!&`|i`{_xCnXl!J2t6a#4>p(e+fU@I{_zP;gYE29P zKmlKKA6^~PTft*9rK>?TI1+;vU}!~85Uq|Dv7;aoAlJf)fkM58;Mx}o*0N!&S$uDvSP$us zC^m38fOjOf9|&oRXrBr|LKjBfi?UQ7j17P4w_Wve`ak@81MO&J|8!Jbg7OkDGp^FY zI)3{Nk;{u<6%q|5hXBI{@qcCcNtGCc$jd41XDXFfqjE1Ad4e(yL*Ovs)nuhW-zl%1 za12oYtUBIHvaN3cgMgmBOo376KFXc!$ZCY5_Ii~&0Qi8~Z% zrc($-eD@p`2HP4Fdf-^iv?mC(rh@$TK0G9Qml{viFAGqioTlvxcg%tAhfB4gkZrwF z_szO3Nkx?E6ta!)|D}5*aAc$#DrB+I(GtEi`|HBgU4vx?(I({(xI&uU;!X-JlsJPZEa5$}{ zl()<|SIgYL&;RcG^;T8;!8Hx3*;)=G86D$h&P@L53&EfLbR^;~f9Lh^dmfazBzRW; z7#SIDHMJB*EW|3D%f4>i3X}z6;fQI`y|tg;En&}rE}~^t-R-jAopWP1v=e6c)4SwQ ztyR|U6~Mi>+q>Lu$lWzqmF&*9Yqk?s8$en;u@ZfKux0Ni16^mW?4-C0Gq(QYqk$(n-l zN6lJ${wcs69qnPU`|{nI`YWVnyXl=E+jo7{+7BqmBf*=Ur4qX`q|@EZ9;_3_*#T$% z9z*8@Rc&o&^lIMO7suT$L~NG@O3lA6G*vl(cfXxo&`wa0$za{u@G>}pPRG8{n=##n zdhK{s2GcUZN7Zwx8hV)}oXfV6)Kc*#z8|Y$|n!bYvwe*~M^-XPV zwmrLMZe%>eVGesc8+_}8{z1&o7qC?(8Y^zW%jJ$Mc5q)f7|)m6v&-4}wL&KpKlT0} znLK$6Q$5UcvkR%{#j9^!y?J$Ey;bv7HE-Roqv@N7#_l;%`ZN=GIwL-SAWYLi~rRAbN@%=aB6Ac3s=AM z+0!2e6-+QuTIeFCyN<{d+&R}?H_aa#pW8E?TzT%8Br?Gj`lWziSzXTgq2PB+Z-Ep* zsY)c4JEl7VaYTeLf2-CeN)wsRuD;uNHLrCV)2S;rP z6%Ejb$G>PafT9;i2PlW<^HongGI(UVRxED*^|OhY1M#CrR$o4kW;&!o4G}x&_KQ&| zxWfkyHt0qG!&SYuw&^={${ZZ6EiS_Z;(7+zH0%eSYAB0h50d-(X5Q;Z>%d!F&&N0f zaJhKOL;#IU8!yJ*0dEVTwYP>^lAsikwR8;4c!)aaPDp#)P`dGW2+4c2Otbp@{u1Eh5`9|b}9G9OL)(P%tDBbJ0&F0=qbSnF{t9{5MPlu zE-t_LjmW-(hd=Slo>)@+=)!$8n*=jx;^!3KDCJ^s-_enCj|y>9EwB9bldKuTi^Em? zloLiR02Kpmiu_a5>coDRARg6bA>GJqlveT6;`59h42(`{J{XlC+AMAk-4X-AkrDb3 zf8Qrp{`8M)r4rU3Vtpfu(rDpf69j(5F%*uEDg}hB9DRuPKiblWV4Y0KNb!4T4V)K|+iMsEXqlsgp&fK0spm52wIH2}LDt0d5gg4C8vK3O52R z&l|zfVq}pVA1kb`<`(8-v4n&xZflW1SmL<_UC4*SVhztlxNl=<`+m{BuiZ?U)I0m_cE=&+qY_eppM4HR|}iDO;@X-CCe z9RW|PhOM{eiv}1LLU2?o1QOHDSlEAXC=iVKl1U;zGEy0T={k@ zjVEBAyNHV_IS+6P+1_p*n%wuHkALXIyYDlCe%2y)gp2}J(U=8f7A~g^Ne6jvn&VvMs-><{Ap=HGmM~ z5i&mh5p!frFK>Ac9>wuj=jyyx%3)K~xw53sFE>8-WWXKi*vc29V^ z10Rm1+E;LUdCF3kJF7M;ZQrT{3_!0|t2fqTyVX1O53oJ2?klNE`^xs(*|Xe^O#9{S z1dr|RS)lgq-K$kAXGi6G+&G)r{cfQjYy&;%EI-4z3a9|jSM9v-=jt|xHwF?*K zmgdrhN-I1u^?{%N^vDB;Teyqg$RZI;P9`6je0b)}%+ud^?WLV#LPE`m>hX}9P%-c|RFSVVRyOryBeXB+YWv%ndh_O`&gS^g&we`d z^izxf?tj?#>%V^_IsDMz*>7gozIx?_UpVz46xfkLA>u^3C2~XyLDul^iAzUj|19op z5Z%(fTStjIC+`B>6AIdex2KcJk{K=nPzjAQIy0VHTs?YtA1>bO`AR4@(Dp6Yt99r_ zUQaaTQ6EPS7h)J~YTSEE*e{f7@dw(fp$4Xhn-HMQddTPH$Q=c1RJ9lurXLB;5O936 zRjlbokSJZ$*KUG$94WRi9S)!&Kz~4Cz(`Dv)+%K@PR4N_cw;Ga_(1%?M0S1wKQ|!^ z2N`jQNy4si@jTbv8h2}qxIEi^im zxxV1Z6g?i)@oCqC87xX5!ZT>*`WOH3?SJ)0$t1c4EG1!G6uT$~3-nNo5OC$+)(8_| z-kO_z`FXd2n^U^et`<;*Xx6G|?CaG+J8|FW2mbat6Rp0!{QB?wTF9+O@M(kru^&QK zD0Y#6GukNAyLC)u@PvZBHG^NT^5KG}lA{v2H;`X@I@Lz>#LVNLe_jto^k}jji#GC* zX><@gpn9a&8y)O=BKya@VWSDH0~yC$QJ9Bks4J}-Y7|``nL_x?kvMR|^Ps`sX^jkx zwQF*&BVFS24+#(HjFTm?(-nOj9K2JEm?6y2!95yk;agARCs zZ55u-G2hG=0!KgNAB$K1 z@{6t4UkM+cc1@3Hl}$6B^X!|D55cu-=E{g1~C(IcLjeS(=%4bKf)F^5?- zED=nxHZ|^g~-H8e5?GVSC7Y3fJa zIZ$jBwCCl{4X9iB-}g_qPBoMII%ZWRnd)h`pQ@A2QqC4F80md4cQ+(C^3>6yRjON7 z-d#pnf!Nj9gD3SmA?1Eoj#b>wS0M7E2DIC>JeB|VULgXldMF7lH3(MEoSom@b1TOx zWc@m;>E^3`^xl!Y?z|yeeaF@7tH!E?SPF;gbzgpV^T=mEWJbcZH!ctXrMYH$PY?T! zO`46Wd269_VcF#|B?J;)7n&Y(RlaJ-y{vXhTcvs=898^qCpHKtaO3sa%a`U-g%VVo z+aG!2(?2!((23IWnqF-X`;+}0CEt3k81;ES_L0Z=CjafL*HEwE(}^@Vx0wN`#1n;VM0YybHE@zIUV z&8n8bQHL7|8afsF3!Fy(2e)3hEmU{!C zVkhhM1>Nz1!um$i7=)6A$dfXB9yPO?$0vBjF#IU(K)RWoD#jUJri@Ee`Jrj~k`gxp z?J=Byqu$NQ0p=F@Tp^Xs4Mszd<2a?~BMqfWhfuE8-7T#1Q0l^;C0oqJt6(4bl^*=g6p;#IPRiVqw5fu&S`j z4-VNnFdaqxSSU#pUvQkm@q(B!i$1+fU>p?2<2b9WXNiO5$B{Y8RQ{^Bf*2b=okBcy z8qhYlFgN^|RpO0a9FF3A2}VcgZ4e4M&hZH676#MC)rz~&PpP0WgQkW0deAut_xdfd ztM&w=FhETgK^wFdu?O(sgF-(M&+-lbU?j0`xS7sWGZp3wxM8eBuHO{v2)sXW{Kn#i z5G04=0*G%I_;Ri8GW^kGa^>2*=>Nc(h@F6p2F#c+A%qEp8-uNKwS(AwhJ#qx*BecA zH`-Mq(A6gnjW+6ye6Hkk1>qrJnHWqq2Ie4h7Ob$`uxsG#V|4hy#=9~hEn1rgu20%RgaE#+Y zF07SGd4t0&IKw)_Dd?0%fPqI7))CW{!1}dIVRW>D28BVN#|U83EXEODUkk5B%~tT? zGiu$*pi2w#0OHRMKKM&3v57xG<~QBo^aZ4gqFgeqzkR`60w_fkbw38`I`R3K#a zDpJh=r&^-6&eFBk7k)dG;J6F@N?sM^o3>UdyEku_pZbD!`)2smQP<2=>*`IJdB-Nf zmU(%WA<_>WFb4*kx3jK$W;`d3w90sFtN4)OEM?8rG;@Pc+pS!~opiIcRxT_U^C?## z+}R{Pv{J5P0j*c%5Q*`@aI4zRRg3y)Way#e#365FYI85lmNu%{BEp@mp?glfm7&uY6|k%%S$BTV}4vfj}!m z*vEo+E#TyFB$S`eVv!a-Jo?dJ|5V}+ztZr8XFm8~a5R>_y7bCdzxC#euibZa=Dy>n z+~s0=_FB18z#Unz&1XoKQZs|YyOKBP@+6|oxy|a6Ukd%y6P?*ht%WV^!;fgeh!z>C zRMX+4;r-D^T&BPLjSK!(D>^ym!w=TqekJ|w7sEgP!SLB*vP(17Eab2gE7Zv(kc1){ z6hhU!ux5bFaP>?cI6oy;+3sU0zW3E@tozhi!`=mYxfY~V{7!x7!OGw5hI((~Y|B}L zv()bNc0Ijk&U$)z-M;|ue(LPG1$QSHXKl`Qcf;>lk6q;M@HW_Xb0B!vWxb1_wL5@2 zAt=E!*%yS+1%x`>|MFk{3u`lQ_F(U{RjI18ySX^(mm<_EKdNWekCm&^4%q&rvpM@2 znRdQ2Z2?$0szJMi)v(-J1?^u+*i%Y@TT@^9}wMs4!yH1|*={Z?wA=Rm!fPH*)qv@>LOM4Nib=D{7FWtse09s8PQH>OGY^Yu}ew z;2#1o^;<=jrfHdPyS;Z@L{ zSuSfOk+o4dwGkUNTc`z&91k2gp1!qq=_}uV<2!HOyp<}o@C@!pCVcMw?>zqT$I2UN zO!(Zy23TIpUcFse*~G&p-|kS%h(^M1T%Rws^^{ib7(r9$}DeWP_139ROZro%@Y_M8#%ClJcOP}E{~c- zDCmtPqS3(+iKZJ=V0uAMMRV(gJ1EH$v_tr1G=`I&s_dcpk95J=JmR{45 z@D@jYKdjkJFCw!2aAO~;$fmN7il-nhMT>+%Ed{n&F0Z*Alkg8sl0 z`|oGW8EZ&Pg&;wNg*d?lX(p)r>18VvIY4Y!M?%0U=YUdGTJ=)VUFN40QcYRwLMpXd zrc^i8ZAfLS-Uy89CYlR=|M#AHY3leJ%E9W z61l!m>h3rZD&Qx|oIOeZl|d@1V*XNg3uuZceQ#=lAX8f-V=sbSq{me~8gWO1&Gi+y z)*69?L`e({5^-LHvJFd61sBC6Sq?H>@lZPy(BqM|Kj0oty7o;59(%}m=ponWX!F`N zaZZCe0Ru-juu(xR2hIjcNMSF0#z^?z-bVcrr1m~Xfk>d^QhxT zFZ$y@@A4as^uody{&N^UMm!G*OU+}Uy%|a&lQGf=h_VhR5sVc&NSth_dExcAajV2= ziLO6VQnzQ{r$6h7Ch)Gg_P2lG&gRgiq5@>Jj6Gr7#*R*-C0NfCu*#*6V&{Pr9NeN3 z1G6HLvpCaZ_K56UlyamMxc?J#TXN-zW%n~WVgF?H-{X?`g+duw_2 zc5EPlJ$Qu>R48Y$Ewo!u^Na@PBd{7?e~_TRuyf$F$T=rRUWzY7|A%UYagx4^P8Ql- z?f_l{Fl4R z507YL<61cE+BdFGjkfZ{-|)F|DecC*xsk>d7Ea;xQj5c6an9dr`m~Cx*whNGCgO7p zW03dbDWZzv7=EJjcm%EwgcFaPN#1|5({f*V{`zY#Tw7kRqzlc>PUX}ue)NIg|HbHo z2eekDb8D&f`sK#=-mboOy)(ClRY&CDxTmgNoL`}1A9>H?$Dg>Tb8E4)oH4WI+*?ce z*;E^cuowr_YKSke^I^@l@?~$SooKtKP97P2@K9hpI&$XF;ZrlSmls~R@aC=CsmMTb z>VZ@2F!^)_Kh*3P2sPka#V1s|$!QrOM>?w;W-i46C}+hw5g}f`?jA|_k4-mLHuTMc z`;n6_gE6goj*NT9MtlQNFFLX>y`c{zeUrno3ChJL+)Z`w71Jg-6C?@tr<3q)hO9d5k=mnO zM=K<)hHUtq5C0x_j)Cb8rB$c>B74?#r|wB@>T|NAlymfVJlMXmC%RRTuicyr9vtr6UUhSbkAHFY@iGoiJbZW&)Rl55-3Mc5?}H+_{`7O2 zE7FXHQJQG35=A(Uq4w8)U>oj=pwccS6_hIjrNrxuWvCgExP9&g-- zPj|wi8F)UunXY{OMdRUzJBhKx(fiY{y!htJPaT|yZgqmM&OZC6M*Qa<_!x9t4_^*6 z^pe7)?m{CE`_@zsTwsOfwD7BPx7X(O#IV67(YFemov~ZC6Lv|}kQ7!k25P($KQtB| z4yTt>(XnA~C{)Pg!h;Fl@Mvx=HJZQ`r zq|ih`GrK8ak@$AfUnnPJ#`sLlZgbCg4sqT zQ*w)=8I5xT0@vcjvhB);N0J$@AD#ra9jMK>&}fm5op_jMd}=6hqidW~NXHMkN z5w1!+U@Qcn^sxf1*DLNC${Kvl#dVIj95p0UA)-7385s4MYg?$xw3im$14Cvo z(aNtt2+G#TfZ|FB%LVaggt#1GW~-U4cqYg6@nKIP-&k1n9rVVIOcZad!6gwtOJvHT z`@~@2N)ks&uq$Z#5MT`_w^-F6VkRJl8})uDB*h5`FxK)7j9_R3@qCHMv%+pbf%1s8 z4ACr@me&=%deA4rYd|_?z+l0cV*c1c9iwcFj*m=@FTZiotTsYm2z7i6Y0DVcw~2hm zOTZ_f^MKnQUQVh)ISFn}`R#$@5eo#rZ+vFI?(S69@@-;@5il5}YKU}2Z<}|-y$?$A z93$WYUNrYv1H3Z9Jn9W278;!1xBBKa$UVjujzsuCQSLWU|K=Qp7#;C&0EbaU#C`#K94;3YKsY7YE@c&9MIkbA zEQ&E>s1-f9KJp9W!DF~c&RbCCXU7{zCaOgoyp{*YrmB?^mfvD}0gK}`II`gd1OCYB zjW?1XctX&_tAl&6CP~TIaqZ6Gv2(3D0Kk>=qbz_9s-;_qKaL{ZwiF*MCwRD&TD>J+ ziez;vP7#x!|)Ac5SD>#U$;eVmsAZTQ%Qi&LW zGe<{H-Qx}fiz{0{`0Ay_+nX7}egqR73soB%@BQ^p-}68HBphFR1*3ww=7ojM;-;8x zgNbmkwpG!BrJ3pd(?hdM8!HpTgPqxx(yb+Jt6o~&!sI)Y409xix?d?&)@VuaZKa0SZZ`u3fiR`dcxx$AFN%vfLOuv&a>{5 zN6XK@78sv*-+#(KHDXq(rN4O69sR6tW{O!LxacCOix#=vjjZ0o|9}6=KC{=gCrxF~ z!~cS}*|S1gR?BX?2X+%ymh;w`-Y(Ef-TmqA+Ir=r1C+IIoe4X?uaiy~(l%H(pY^}1 zLPpGL!y39h+9OLnvuYE63sk~QU)y_jSHbiu=RtKc+&_9P+O1e447B`HU(4F^a`m~V zBSynJXcm9)qQB!dCr2B(l51lXO2H)T)m!H)%NZjX@DIe@L&44k33J1D0^*6LOdOQg zI+bd(l^7p5`|!#e7q?2~)4%iIhfW`bK5j0o-G255Z$A54qtu+7o`@xa?NXt5@%GyH z-e%K8Lx8ej!&l3cH!dv%{K44F^hi8>EsNyP8;-`O$HT+J`ry$qZz8tw-7A=5%^W?B zl<=+V*C!8+4i1D?ZY(d|*gSl4AMpT8`cP@0hS}_(u`ll2d_G^*^u4{7zjAxw$Ux-L zciwyAv;Q#r#t#-=`@!H~Z1C_{d;ld;KKJcl#8PFWm5z#CD_S}YNBJ9~es#R8- z-~PPo%)8x3AAqd$tX)IZKzAFO!PgoEh-zo8>=_FC_9t8$)!O;D0*?j!WBU(3^6(cf zzC3Fz#X?@ba)0*XA1$w5|D7NEAAKIE6Ke&@PA@pKP^)fwa}1oRZ1ot-cJV6cB1_P$ zu&>H1B-+T8gjGsGI^k`Y?HcU0CVjB_Lgz?Yty`5zi`HeOptMlon7(IvZEkH~|0E`+ z9)B=jZ6*#LP37`vm$*GXew27H`6Gak{ zTMP9D2`F0c$VIVJ<#4D~snz{xuOJ4;o)z^Mv|%92L938TsBXDS*;2@dYe;&B9uerr z_Xc*g)#SwJ#_a_>HsK+hk%UJ;y+`OBDY$xhaYqYeC1cZkH>br#7gk3bWyLjT(z1$nfISQQGan$$2n#+f~cFJ z!}Xw${!M69EQZVO-T+oFhX@W3RjRedvurjrEa6-5}@7gh<$IA?eCStRRH5sL?vD3Nf3Ds*o~ z5fayG<@KCIS##rX9r-(CeH(!@+8@by3~ySsQU&J0Ql67jB2EcANZzGmX3!TuvA<>3 za)lzulA{C2ekzAFmo9ci*#he76l?^nbxR$G!TRHP@pL0F@ zj=;g;){B?TOxcr+1;PdfzOAe4u8p#|%}x3`TeVgRt$*DU_7iQQR%qsOTa9QS{=|c$ zkG=y>PwAI0T=>qVRG!5{6pMHh=R7VqN4yW*bK>+begF=%eertZl}pVlYi1FBLN}&9 z*-}aK6m$-a0;VS!Jh^XbE4{9BoU~GCrR&wTVzF4OqO-GAyP3)mJb1H|-)a>9n^T9* zyesP2ET!hQax1xfzUH1?Ir7dU{um#E<>9fx!-w~$uH4Yv;ny}d-g;*3bYki~XHFb_ z=X4a*oYQLxzuC; z#=21nHIGzX4!k=jfHSSCkan%i-JcIDM^(S~j}yS2Y0lbq7whZ5ZUAze)!w}}fB~@J zElBIuN;@le<~Zwj!dPi1q?NN9zOO~VcEj}5+y`J`tq;a=YjgENBnw*A-01dAO%?~R ziUZ(mVD~#Xp?S(=B4>LiaXfa`vm@JaV<+zbY(JMoA57nE7gXMH`*QZbAAWn0^x##F zl;2s2%Gj>fS!b{0f6?E+tD@~DcU9m2E&y1sv#aM$R`7;hM}FcQ zaWtR(;Qbs+Z5U$| zy!WB|-u1zUMh}hoBZ2Z}Vd>Qi-+$&Cm*0NtL!bQk@qcjk%9lQ0y>@%@*iu)aj4@PvN!0LexqOTU}Aetw?V%~VJ<{1v2duRJr)O`KBdb#F;JRnNcVSoGj zdMDc;X02z$@NYIs=ifF?8NtId?OUmGyBcvBNP%NRiKnl94T0|Oe(ax%BvE~#1u5HT zw9w1WwT)Vt8y2E^@D@g`;?^S;EVo=zl>**@X-EBg&$Qk&Q-7`UG$IMBZ~S&Em$sQi zUBH?9W-h$&?1}aRke#7uXlrG4V0bFHe}8r<6;BKltF5Lt6o~qB>8v|oK%2OXTU7aBNY58&TE5Hz3MLQJ5>d?v%5I=y2Q@3UP*jv>1X_419rt{wKnfxt?Nt ze20!#-g-UYu0RpO9!Q)hC{X+zZdKi*quw(|JBu48`ae;hI~vyUT)wgC5p6S3`^ROH z?vd!eTy!5VMYtG6bjU;0Q($s1t>(yt9tER*Kh`g3y9cqXhsJ0i?k?pSxQ-C{Vr+nD z9s#-1X@{K>aWXb6WFRQ#ln!@3UZmpiYof;D(jpNfoi1!%yD@y~P&*N-F0Gf+d0|3` z&1HBhHEbF13FJjj1A^#G6U{^qx2xRh5(^RAB;c&$8`bxPH_slui z7tWoeU1A78`V;(>p@W#m>{xt4in~p^C%R$qOKQG~M89nsMm!l$u3ouZSl@Kv&llPp z(i5+s?I!N4qMl$CYEX2N=sRqQY?l~;uLf6?ExU5wu`?ZylJl;3%u|7qXr$0JYmI09l;d#lgQ#G)QTlTGdF= zzDuf8nWCc)=V~@mxj=^?26fgYa|&beTEQ28$AipTyKR5OGBaKYv*5|%<Goo3HD6?MjU)!o+$=20n{l*0?I2t{BYV)}ls$YI4_}_k%wQ23);G>Imkfl-z zi4OjaOdFE|E$Fo~EM!YLg;{F~?SXp7OaR6Lvl?<=3v<%CT?lgw>E;+*!nWbSKEZg3b=_uEhD2^fuz;X8X?3R&Nq0 zHr^_3camF0y>|;b1A$qPd;e0qRfUuE?`|Bj!E6uK-sM%U{chX6R{3`2cPaZ{`^ehT z)QoYCMPE<4@7M#rOQZI?IAQk8bOP*=28F7*9X;t~?g77NRu7&^oPD<^!j3|YT-7M| zI~o_@-WX9aL`G%qTK3t$n*PAUTCJ$vSk%+A!FL=B-usw->GiT%O6$p(>(og^ z^XB?;joYO&f0zT*+k@V?id{MyRR#V7vYpL)jz+KUVN`f77_ z87aAEFfleW9Uo54E-as1%li$Y#|BXB2@b`BQ^|rWTiYs)-!l_FIL7xL?|7&mL;s7) zZ>eq=#9ue6sfK@`G;v_x)IT{^Sj=v%XZRAo@yx4lyt(}7AfuBas>(+&}rzGv|KuBNzYpufF`bFP?qif%|^zHx|D9#g&WK zC(j%S4i0r{MO^Y}gs{iniHel+BvDRiq_hI!L!iz;`tV`b!>0NAOClrP zD!?lEPK-6LY~Z}Y6_QZ(eiX`=XU)MtsZnubB#lc!aX{)FJ}~n9+h70G*`Gdq@Pr@% zn#$hP9awZ?*^#{ykun>$A9h#kc7~+>zgc=RokXWZGxyzhSTmn0=Zom5v{28{^kShD zJ9IdUdIkocgGp=xB?=N}J5XK0NXwgnT4(Q7-d9AK1C8Q3f_4<%84FbZA+dziLs|^^ zFRB!X20MPwR9 zf`^zA1f9n29KB)DjEC++5bidYmi2p21nz&Jdf`n^tK>t448j@J2b|~}I-rk_X{nT} zQKS=QxlVL2BM~MpH9@NpjiX#GG@qyz$%Sq{&ElmBclns`vc5R&sMYJNQ^@!rDoDaV zp*rsJ;@Jlq(@IkgH(+aEqP*CoHlT}9LWgP>6?TdLC3OMn_j&Mqh!-Z#Ch+;gCIFL# zdQddtFR!i?#JZqUTuI^Z2QfB|K*d`wwgnjJAZ$lGE<>wmQxF9Dp^G`AAc#`XKpUe~ zuE1EK^didn%0vODo)Ea;T7q+-*Ce$u;yTJYkirnzFi=u@AmENgi>XQnwgKy2V6faE z;D*oO6kw}f1Tj9|3z}L;e_=eJ(>Wy|a0sCXc>TAYdAWpP4;-GXCRr7X1zZFv#vj*C zW4IV9mp7M})c68LNLjo{(Nz-_LwulO0L+W>0H*?&^}y6Y*;5x&f|q8h@EW`>367t< z@tC_2DAh8&2R=_*9B_1+9C9&fp_++50We$`DqX1k5J4;yjQIyf(8lc)OK=rlIAM-o zf`MRsfa8wX=+x@--%33G4ml;0Lq%cO)a6*)R>mEE9Si?1MRq>gxpl}#g}sRVh+i(a zG6@vz%0KtbYNpK23qCn{`hR(Q4=72pv(7goz4ujF-gH&_o_1q3M&qQ>4AMvl2@n!S zfN&4a1F_2j2NtnsS>9RpoyYEhWr4+8fea zSy?^9?s@0D=<3KD_kP#Jy*DDh``z#Rf3OI(V#~efI37RhXRkPp?`bDCvF5Qo{)lOL zrS|-HtcMPp-~awbJZs7%&DiX2tm5dPd2PMnZ`n%4=H;zsrfEXk4{**v0Gu3IVP(sh zfV0_9P84wDQk$OK|H#9v?-&01OV{6i+cCcH&`V?%cw{acFd)&pGYUPyg%>58c17JU4Imn5}*n$gkH|bJ(`jvW<;r zuO2>Hp2bo{Jcc&#q)TQb8N}U`cm1UfS}(J%dl+RJfxeb>3HyJI+Itg>LV6Gv9ts+v9DR zU2VJD8uXa6>&@%SuovxOqW=0BM@b~*&8@sJC}3!$im8@0_}HT@%fRb@{*AS(i<8H1 zo&25$adz3fawYkd7joy9Dx2BN)pZyK;DuhjIOh+9XHM=1$%i%<3$1DiR6Mf%7+hW}edD!@K>zTTYn1C@w=eATBSWc`s+ski-DAhbF)$Jsn2C)H#s&ulCTE8{ zFjI(UBcZqEHcqXj^R41{-*w`<9ypp?SXSrOT5Fq)jd&ebL5Piqf+HWiYwEy(Xa4jb zl2;dR{ju*yc(-xxg3s%+hC=Of#q6*&GbK~5DBzXVHg=+5zBD%qCU?l>a5NJM%W%wu z@Ft&9wziaTu$|1CybepqS6R)nkqvS^zU!O$YPnE)+nl}Z1KzF$SfKDv@DbVa9?$H7 zJ%_RWlxIhVQJXCE1$V1IPI^T5N=8^8egd5=l22l_yq!#hB|UFQz zgM)&KTETrN3^au^;YIKa^dv@x#j>ar<`ID zN@tLon;hm=sw6!MBaK3QwINy~IGs|={_puIv)#oVrJwm*=tB{gnB;1HkujnGaR|M1 z5iZwixD93yt12ujvQUKCBFaauFS<`K-`qc#{@ln&Ec)Tk;)S$cNUiO9;B(M{ zqIWPomUTZXA>oq6nNb^9)S6N?`ML$*A<>zlV6%DT2Y$xt3nFb# z{PUl-(|NRsJOLNG6lzu#k$$TM94l_qV8GeKL2nB{Sk_n~`)9>qwN$`pF9Xkjy7 zQ#kC7MuK3mTd<+TR3Kks$$`ocXW0%iDS5Su4hr{#gMmsDM}L4Hkk@`887d=Zc$ZB&cA zV$8T)@R%IlBCaJW8D@+;Q!;Tl&>nJdYhW&6DU8jE!{sSea)>L?C1=gb7~rZTUoMwg zIE`|_DY6a=k4!lOLGW3XqDqrpg9BJt*qko+z!3J$p4h;RS6-O>H$Uy1h>6Jp^)P#x zBKm`@1v?KM(?&b=2fF(#8o#7MowaQKZvH7Ise2H z@u#1N968y_Cd`d0OP6N8T~%W4LnlmNsf`BN^+l#(`>u!E%S(WP+76#I-+E7dBd+99 zW;F6opEnmv437y&r9FeDbg6wKX&(x(RbuhF+pL~4aMvcq=VEiE5-+S3i-G$e7{333 z#ObrI|J@fGUjNBo{dWg{=NBR$ywfo?Y{TV7EHHA<{u9Ud`O2mnn{k`PcKg23`r?AR zl16NRCHw0a7QS-rV%Fi@v+vOH!?!>B*!vI8Ovu98Wy7h!bLTH^dvQ&o+B#;^6euop;~9_XEe0r{`RLTjuQ2jW?Hpf${`AO)H>qmSVjTiF&6PJe*A-QcgeAZp6js^?Y(cs3Gg`6Bg=jppeKNYEPDRCRgFb@y#z zYa~NsoVBquMy)e;`XI_kGI-tb?v8F}%IKr6owYLhPTgsu7bRp;r7^LB z5EHm*q{M4P`cQSk+DBQ>+sQ@ecU!N=aF&4f*9q$xy4j#7S+4X#wX^I1bjy*X-mqNv z#7OBqhxYz73hZn(>et!~r2TRwZxQXfC+q)4kV0q@hfzCWJ-;4fTpES$jxmyM5}=Vi zg&PDrZnYcx9wi&i>(X|9Z*uF}{O%-cwfAO`dX0XT0qgI)n>0+Tn~H?E+c|omQ(A8+ zyT(IWsOQp)=+r25yydytc>bAK%nzWADZXY(teY~MrbF*Tl2v{C6~_lZ1qump>L#Dv zVyl^!=NkE%quNw_wst&&3w27U#4{C7IQGb6xvQ(^{^D;;HP=vh$b+7Tz1~cuQ!kt@ zU5N{#VwpX9t1p@wjQZ>@|8uWj9Gsore{jkk3@B?kwh&sF4ZVl?@*SJ5rV5Gmv_BX^a(jLa zrPS)-vEloU9*SREX%vd0Wst+9rUo5{rXnA_^^^bQ*Z$_0zL5LB{^c>LmS`x)@W0)4)}n(wjsn#XPQenlL~;`0IVCMWsZ5x5j!X(?UnOwd&GR`q$!hW zm$S<3NOOMOGBe`Z6RECd90Pu9Kxrr1mU?*{Mh?eEfE^**2Ko^6QNN?yD0IdXRz;+$ zo#B(p-CCS~{BDsvPG5s_Oy_C)j(Q4znH+R)7I1EL^+caQRyfQ42wUN)51L4S0WH>`?Mnka>gJDQYVo4-!JN)iHeh zSfNpE`P{)n2jb_?<8A_GQ3Uy7S_(5x)5W5|2EPIdQArI3{adAy+NfE@vX~nX5j6&e z_!|r7T%Op61o7ma%d7Z716YRUC$be%Q|B+DliVW_cn?B%B)D*-vQKeGYrT zk4hApTLRs0N4-Lph^)L63@qJvdB!fBHv{%QCR3(X!5^{Z^`(EF{Ok`}&`?S(wpVkq&~4j1Gl#fGwlv$A;V=+)-_gFl)I9%=?UobD z$vdlOF4??IY(d)Bm(3t}0?G-{R>%kJS8Fq89SgG@YHyX;H)adS91hA%G&RdhYw1>d z>W4l9FzVZX_;>O3g#(}a@!5a#{U}GZiuvZsqB)Z{t*n}Is_0mTL$`nQF4bZ`b#|_> zp7ONvpin4mQ?s$<2)NC`gA=!W@`pb@gzuW7T3ydDDE6Rd@!IMd;J+>9U(TNY^n>@? zy?t8{hvZuG&m@k?lp@u(b8y^~Y?8b|HrIFprv%O_`X~BbKlUGrem(+CD`M%rS2M?vMeW(8RnZSXWwR3NI zuddo|nb2O_+Q{;Dlpz$R!5BGx(7Gea4C)TImQ9}nGPK&IMl55l54JHwv~-EUP@AXlei?+ zAdrFJ(5{WhPBZ9Ft)t`t?e?uvltdD(ojGmi)jGC2x}9Xp7ryWXeSU1yb#wOr>iM;1 z8N|j^(_{2YX+f95Aka(GlO(L)!#1IwF6VC6PE4odZtZ%kLDLs7E{*Q!rSB_>OTDu? zHNDGEAC*yZUunI$`?7S}z>kq&)Z7hpTGGAjEzJmbX`~?jYo7!O8+SqR-8mzf^!V*M zcYHjApzkm!wW$Z=WL6W&%=2FxJTPU-XO#37EPm5JXu0))`dcs87ng0f-3x*`O9JK0 zt7e>?U>T{lm7oLjM^l5QSSlN76_1G@`tZ`XU!8mUrLo%|4DZ{UkEejqjLnSIS67l} z=GzS`$_M@-zs2dT6k9k>o!cxdrR#Io6JYOq!y&94@&B1GH7afER<3pWYW&MDo<6gZ zY%74bBNRs9htOQTvA$VVTcJ<{55I_D%lTR*Q!U1;rFb#Bm@OsB!J&ZF<$3P({0sAI z^R*oA^=L={KW-`(DT+v_TVI~fX2+iK z%Te)=U_;LY69L$8*mMlot`gVm4X9dh-GI7dUZoo;B9Yig=mLDTu@$$>{d zjq(p~g&R-&6^^U@7&eG15N{S19oz#dCm7b$Dry}|ZEwI!4eSvB;#n!;1GfcF4igT` zuNKk2X}b6AiGB35ird|;sp(5+%K3a98*K#Ju(p*(wbTHT2;)~8O4D$+OlQJ5p;g5= zs_bCcK#a5xgvC)vvw}r|iM0oIk_hb)$AN0pbhz=(gr#())hf#V07HfPM}(zOE?>g1n}?6L zo-~qki-((~BFrycqLdi&KG@50W2C^E1+9_ADr<}Fcjg4fl_jVfn6^TLPX-8HIOSd`HkVY(KnTq=#ZR9(+J$QI z%2M9#9{t=871E_=|Ht1ZlF8ftkDuA|A3m#i?2Q|1N<3jsY$=ylTBmL_ucs?ZY75sZ zIsAJEZmeuYT{f4zKF#?4MGtRacxYy1_UQ3jh6eoAOitY>lrt&|E_}58^$V}gCGsYl zdpWsfZ<%K%$9M#a8Fpz+YN1}rsMSK5>Dnwbmd`BVL@zQF7Ij2ZGndS>QVm5AG6kN0 z^TO%H^yuJ^sNvw=OQf^V+G|V@I8CYkp(P zjtLERF97AD@a9Dl;w-Ed%7`Qir6w9;xDH?)vXTG`%^vYvtL^;Ons4uP;lhnvu@!va zHW@DA24w(bK%2kq$`Hyhc1KtnPC0cZiiEU7iz7rPx$bh1T3R=Amp#)XJ4rgdmeJsX zdI@%u^~G!xcPs6*L7Lrd&oC4sI+MckUNr;VVw2ZxDBrVug8X5ISd2vff>wEpd(}I$xFPCvC9Y{X&m2W;Z zWNSFlN{nwP>x*pex9@lmo599&U$=w?EO$L<24`gRymI9n0!<)SL^8~GK9Az3qk4U- z4EKM}1M^Qjmr+}X|Ly08KlO-r?9zHGJdKDG6H0F^8rVPS+dG0bGnm*Fld_an z*NUxlrE&J+^@aKMm9^CJW_DpSd-~e?)9+k);o6PmLRpmQJ=WMj+v#hsFPejVYP_wjqHsn0A`2Mbm!E;K`%!N7)(ng0|Cs?o#el-u3)+5AAuCUeJeElK8LnNq6*h(hmQx zWftP@Gu|y|`&TQhQ%C1VOYF=yZ5DOvlS)}|O7e~j60J8xLXL><{L`n+4iDBHRb*Z0 zaFmLeY`_mkv zANtJCTU=P5u$ku`dH;9SUCqSeQafLQ#TQvVia&s_AZD-D{eDk)IBa(TcUWWFM0$^% z5EemZ6M9BzweGwB!I@wF?eU-cEps493)wdr`S7PkKJi)S(fjj7HF@P4dj!%UqD-UN z;VOy;NPJU^r4*|#@D{<;8H%we!0AyF+lN}EZDSp7wyQV~0noA8^!VMJQR6{yjvya1 z5tbfw^`O_YXE;=^s`1TqE?>=qG*AIjwT5T8T&13`wQ|)a?hk+rV!6)7hTGu?xxG%S zt5~n+u-{i~A%~a6ObK->g#6-1LLMsqqc(#6PeZfg1%tobHb)QMGW+O*%jeHmGkI6g znM$v-FUeAY@zh>LvIj^%bD$aKbo;QBD5x2>Rm8+vdz}gplhdvv7NMTTGZ7t*u?oc~ zw3OPy=UreRDozbNJ{MXa_%L_77G8T{@2~y59V1a5CjFI11@eFiZ!3|smiM1bJFV{R zM_Y)Dmw}c?D71%HJ8S90$fK>1N~#vp16uKttSy4%B??vb=@&D9`{m(JegfMarII%- zUQ;iew&MA1$Zz%!D7dO%H5v+9_Dq=ah5C&f)+4u=5ASQmH%-gS%Er2BbrXROuSZ4j zvv8uOvcsm}<8~|GPN>#s5Is`H4_Q)kE0dpFs>cQffBXlNSFeBl&;KE-*7o21zFYp| z=h}G3zOig6=9F}<`RcXeOV`SqSzFL)^*Zy3axz|ahQgbroV8tpGv|?S;7gmQRID=s z0C;8jz^rFk81oH@P7S?&ZvJmxeuL+WJH%@Ia$>bws7{ZM2O>d>omCrHZdT8TztwiX zbLNIxZ3n_WkKe^C&7?}MfNL22C9C7Y!sZuWd2Qd=p6`0-XnXBOBVAOg&HQS%o-SiG zj0#&5AS2x5Ij!R-ZaMeLsja2O*?k8=C_<0SDgK^it%@zaIp~w!tLaGK_&80jtfvtW zup@*XTlq%9);8zX)Ai+4rO?U-f`gCVE1x%QOj%fO51t+)FX!%v%lOLZ?*0&H37wNp zB_l4xohySt=9pfx5v2uWM%^q)kK9QsS9+`T_-&e9)j_bGs#Cvbj6tjij57f}+%4l> ze<3q^tdHp3O3>pu>j82ZB@oafjTllj!p^C$3O&`JkwBM1%IW6Rx3^>@8-GkTIn-yzd)PrJ}cm$u54acC8FPL$jEBUvha z*Tbk{H$`8PUUV;+5On`~QweXkwkLy5(|0z~`*Im%IzeBmk;_Qkrq}ORI}_PYsa+Fm zBnV9>vrH?}wIojZNJ+9mZ4{{I==SY4L2q@u6ZN8dBc*)lA1w~PlXrc&w*1_;rY9nb znl`O2BmS?CAFv#~yZZKP%9Tr&2R>pN-)kzawBLM2Nu@!w1_`AdFDhzXoH#Be3N5?; z?uT!@{!S${a_Coo(Q|TN4cx>;K0G~Ys+upnejbNV(W#hgECvt=NTIkf^$Z274eP~~ z{8m|%K+3h&dNzA$dHurD#yi*7uC6CHK}SJE3ipQ9EMHDx21Tz~I4x0%XvfvU#nqK7 zD{HIiY_L5DsXsQy{=p)hb1UL^2KDviDR#ND~WgyjHeR&1=V0|xC(xg*q#bp45ELe zjRUj$BV%Lfc$^gz1_Wk@4Ub~QaydFPUe9INdMX#I#d0MW4PXEY6Up>IPzwvG-<8O> z@gmx6=hafV)r9vPorq10j|`7Rz-X*x@<7Vd00nE!Vxf)a-CK_#NG_uu2K&oBz!ZsS z7y&czLBjskQYpN)*7GX!2NfoC+N;GH`Zj3Yz!sKPH|uJ}H8CL`j&Nu|$w9yh;h@FQ zQ5&}da35g5;**YPp#U3LYTo`>;Q#z%>&Xu(;bDCRsEq|GH}a`>3=9o?*Y`DG2hN`J zxKQ2!ho0rL6*PTE$Yb@mAR-nWb{1SPzv$f;Gqpk>y#K#^W$=eTZy%XP)x;QoTObm> z^U>&IpUSMx=g(agb(Cryd>U>uhEnukz=Wl9LB()c)=R+LisrpJgK#wD-}{9>9Q&Cs zIHr!EJFg8n-NMovR@d#GoQi(n@wP9x`pOIV3==zH);=gKp`(NTJ=+4cHqeXc;tUS4 z-fEQ#HB}|P?ZB4Wq~Jpd%L~NL@cV^42BHm6 zZU8F{!q{%0x@2_)6syl>^J3z=ac$m?jYzpJ4WZ4&9Dg4D32S5I3J68bsp}ja)KKll%Hs^SxoUAwohfUT1p69F+z#^-S zYu8K@v*yFc8|$0q3vZiqX%ia-L2qL+QYMk)Qa1^r?$q`tvUrn>HMy-TQ-&d+*v?ySi-2=ghf${pE|vGYi>9V?JNI zx>f*Ew^{_T)#i+ZFRg9Ot#6DB4>B$w4&VaPn0Vn5`CDsnI;Wv3hxVEmv&tw!&JYsF;>A#pm9ce`8@SUaq+PUit$BilNDfFYIL_ z?5Wo-ef`vx&2sevw;rAe*;dZXmy^}RVrFe2Ugv#*MM_$AVwAwMm`K|(?`~S3dgd8- z+c7palrOT!S3|qd=5y5&WjyUGA?C7MZf{;ag>xsDMyQw5 z&7|ernO84C&eYW@yE8MlleBpKQZIt=?l$z+)tgr*?xQydZW^!GVw~Tj&{J(m%$Q|fKFX)Q*i5uoF?he^xd=_ajj3Co`zuXo_h#zJp~ro(C!+zl8vMxeK$ z-SqA+3rgM%JqI=Kxb8_Zf}PgWCV8)D4b{^A)r?S4ozXUQhM*p2;a1J zBXws1?{d|1zc;7Y*(ZH8bdfIS(E?gxH>9_1M`QFJ?!MBEqU2k$D^gNB14D`0Cq*%B z-dJlVljdUsrlmxCX|d_`nD2Riqf)3{dewR2r1`eHT58gC>S<+pUhxJ1>|oE{1S42>XwP}wWaliym*Cm zT2@<)#dv8i;(26IEK923hnVXQKq}prR+7#?`SN3*{^;m;J-+(YFO6AR_UWj-)P_BQ zp=oXvEM7!SO$<6wRAA>;DP)=}?vtyup61xwVWa8+5 zSZ+4Ey2DN>|H`2~-P+vfCG6yvC~0Q*kRboH8jn4A^to@HDVOl3=|b~DH2&l1f!S%B z+g?)hP9L7ySnSn3Zs3)&rF_IIu@7$0^IzH!6N zT)|#AJ4UP04}MUT{~ent?%CVE05JL^L)~8+Wk0L@lLSa)v$o z4$ipRRR;isg;HU?jBjG>F+gQPWQ>%P9f0Ds#daYV9q=ea(ehSG_&mYBWS58_8(Q!H zHhhmYL7K;#70TXXK`e+u=#w`JHSw8+7vwzymYKm;B92B6!an>%1B))+@$kBZ`T^iP zEy4fc4O-6?T1W2>{@m~LC<*Y3fG5G+$`lYKeeGc3fs}Ogm;M_pO6qH08^jg{x4Vb~ zVXbZGN&#=fG9Se!*c}X@Ex0zTMg|W4*C(B`d-Wld0(%a|${C6s_)mYmQ2$K&$#0;c zhBy*QCwpZ|xl~7$zQOayMjDDJSQ1##a%sfEhyLqV+(%CGKuUWw8v>@B9NfBKG_m}% zjQ$|z%a-fE`FYj{3;=jU2>*GHkq9r(V?Q_oHYRo#aP^idY8RL+dl&)uCSaLbF!WgT z!j-Ef5SJK1=!BkgB}1Xd2LTejFlFwM}gkYQT@#hY9e z0MbT5Y5MGKpW8nh9&zQ1sZue~%6O~-td2?*f`4J}1jfqB;*6fJE0$<%%-pi3HC+r)`8=_<^f-MOiC5|sULrDdf)#|f2>@h$bql+w4Htm2 z7CYNkwOXBpC9g)70iKYbg(GI!u)0;H?eh6=Tsl4eeLo=TLTHr923XH)pgVq4+B1w2 zqz!#B-Am$ym|N6nxH~;Un_3zX$&y)qD40dE_DoZtqEw%KG4bYd_=%}e4VHefn8!*pIv6-d#{ZhczCP=i(^f+b%wPf14x`8pPY0_^h*2S?`*wf0Y z#3*K`sba2OT(h?94Hl@WtSb;|rt_Qe&A^>UgO5KHfANif{`+sH>hfHS`W%tzNPBJ> z_X3KgTz`9Mt`crFo>2lq-cbaVg%thD* zbGz7HG5h>po5zPS_cu>p_~HvM#7k|TGr)cz_lWmFaHm*=U&yCUzx6!GvwVg4ssJ&p zvb-0qCD&Vtl>86TkzOkF`bwFZGGfqygC|U+cQE^wRf;aqn~toZ5s5% zYUAF$?o5O3W#6wnB0WdnWlu^c*k4+Ae$u$^RNT&_M{Zve((gfjcYgS87PBK`&xO%Q zqedfOQ0*?Cq}^mXJ;X-F_XzAR(`d==!i~E0Krdx)6@9%g{i7d7pqF|_7)r@)G~V)? zVgt~B=*b3=k!-{hkYmT3(F&z}`Rg{w$k`2OnRcdX#L_5j`J&~Pvh|x6`tGqiMo$sy z9x@_#$86uRKB9UzbUUIid$+uP z*%(lvrRUy?fAf?nSKc_gh7PF1>3{v~+-gdV#n8faneFzK1@%i$y#38ruVNjBog$x4 zz_jy~e5r78Eej?&nj1iLpj!`K$jne|*zeD!(vesQC&8&)Y9pHm2%>IoJ8kB%Aru1| zI4%IFD!O{Mn=|OdBbC=vu)i@mRh)cf?06mWvtrTDzU*W zoIt6qEG@OJUv5}!_QS_5o}gY95X zd9jbfM?h80mx11cycBfk|r#eiJ2n6luhQ7X=g)U8*)zcrhHul?3|zpy-Hgfb<&7sX6LF z|EG~GVgcMPl~qr~{|mow4i4et002rD;o_-RHvaj~x1Rk*b#u)yAYOi@sGXb+Q}r8IgAnU;C)Z~vY1;89_a;nWpV@%pumr=Qq( z<%L>0>6@O>HyPl2Lw7xxeB;}7wpQ>bz-t&ee3^|l!BArVL~uGWhpn^|<@WS%{J!t* z4+xK_v!~5^>eTBS&pnksdm3bSS1g8l4E!|dfrG~?TMM~2&H}f{HUJ`XX0!@gfTbOY zVufL<0Rq)fO4+7t5wSoJR}j_`Ubd=AgnO8{0fx+T29vi9`$~AMa(gqS zEQ=yLR;_Ko;l(Tgc}6fikjtgY)iT;mUT?(b_al&I0aMB5ctM5+2H3#x4I#94n9)CJ z)z;oQci=z&k~QSgweaOWYaA=F<67tH1o~gZJFS_}8yqwzO;3L6;4vA9^KMbsX5|y!)8RLYSWwpEt1n$^daUV8<2&b9mXwA! z?7wsG;gd&3)MN=*fNx&AdMdHCkjm!E6&oM{UYG1pd7O2dHKjIQI(O|azV+Nw?_9*b zJmd=7S>}O3fweySgjl7BUqZ}l!1QkyO?CbX>=FUj0|bE5N~`LYnw#I)x^QFd%;M6f zS^8Gi@Yg*cs36OJ0UlXQqt#Ajv&PFT0{gck}KbGjeD%L#~W~k)%iJ z6&b0$UI{hqe*(bI)PE(P3cMPBj~#{a=lypj(e2CI){Z^szz8IreeadbZtA(Tu#vzq- zsCo<0!}{4E=qsmFi`GHWJI83EL8iwW_oDT$-pk#- zhEx^>Qf;@;ZrNIYN?zgVI}H;ujO|z4 zPUqoU*g$P9pKpKV3GdT*;*$iIAk z{cERDRyH+EYPtcR6!81!*Afe<;%d6GwW_}Q=8b>+_L-~eMSue_`pl{zv6Z|w`}AP! z;PCj&kXR0=)hc4#6JvWHI($pe}RhR`3?FN z2qT-I)S)9JcZfk2io~!86?~80vS+5HRCpec%Woj4=ltytPqlz&rqHZVSs^ zRGDh3IljmjPf4Vel|^MOfufXjHYyP=(cM6xD87Y~SsVu2r>9XnX*U zm#y!AOqcs=1E&w33|nVWAOou}?Rtk*o^1|emP%fU=$s|cduZ_x7&LlfhZoQ;`m=N< zoHnntY({w+We+(l5!&aQ>8t0Kr}pow*2{2!V9Tn-LTq?+bNM>n$g!*_szuzyvIIar zPe0r3R(K0;9HzWduiAV8nPBBAUuQe>5;nHl@VM-aatRA=wtZ*X?9wsM}(bviW0vVZ3M?8nDMA70N{JjDow@f}dxz z+hH9ZQUE2v?UA+{p-GuBPC%<2a2f>mD7826Y;5`HPuOmKR93ubMP;|@lrKSYs2ie)9K2< zXMZvD$oKIQVl0~Z`1xP?sY}28@3Y_ddhv}H*1!7Y_)Fi2p19o>8It#i-DL|0H(q$k zg(m~KBeAll3lQZJph9jmlP)WF-97gC-=+y{%CX)qTt4^e&-~EE-~FBSC!UNy{jG(6 z`Wx(kqj%h62b@<6b**QCZ`Ut##t%GwJxO(VCY#1Aj)M}9lqFj zZ2w^vmo<2Lh1F0olTWclq^&jR0K8O*Wv;G=!Czr4Fd&XXBQE0mbQ5*e*_# zK(uTO_$`A0Hd0KB>B8wHOO-u3PdQt3I6SRdeJ!yz{)va&2lrh0v#-AVoi{dXraU;h z3j0xR40*=A?%+_U7Efju(}{EeYw5Wg$+>iaA^gdo_~?m=aBVFCJX6!-_@@i+Brtuk zD2uto)%DHgRQB>l;?%;@a~Cc>`PS)I7Ovxs+~ITwFx3Eg3ji&=V7+Te*j zq2XXPRZMJU!aW4<*%CGdP_;AOalYH2X433>gDBC57R$3aO&^A==b?O<7^anhfT&@ zMomsK_S%=C=Uc$@*fWbXVj=I0xt?1qV0#wmM18ZUlk;Euk&?Tm>tV^!txiud&c+9; zuT-5tPkp!c8-?h3^~;-vNzzk|b6>rBd|w;5?2GTc><#y2B*{oM0=*6EjqD8@snr+(ErQX7}`#(Mlb1-*gcF|clNWMA4-vy)!J8{ ze9e_FL-qs43UD_?&LoO`?5v9(dKxZMtq2RC8M>*0D+qIcWmFrwZzt90l!WgTgAnVOtD%mG)e~#Or1D+#A$PvRQ1vu zZ|%MBUiV-)@#dSppv&xY3aB_6+&*B!t<8+s0JNs|ncRV9JZW{AO`DtT^%Y+K=D~=9 ztJeWaYkRBslTdz`+@}6}4PKIoIL$v!4#$JKt(l zTu=wXXai*um~xTwS}p7?;QNb)R0^t#Z@bf>W{~2ur*A_uN7e-*LIzq>$yQX8-8MZr z)ySptTbm|i%(~et1|>AW??D9b40?m35&uxsHx;w*nQ-25!ggeT%jIn3b9i%h_`RO} zleRtMfamk&Mp2CY9#~YM@u|id^}CNBvV{V8Augv2=ybr@n1H7_G>iFTD_=rBit-Ow zHoO_kerFr?by!3;y3+Ydc+mBO{~kaRI9?==?|l9zHlKJ3C|ife$=-qkr&`(UjVJ#p zbmA`0)LxixETA2OvG{Xevu1Ownvj2+@kGXSFW`*~RTeW)hJ|2c@|XWWj4v6`X7#ln z{qEE^o{5D#fshMdx?YbHeq!yJuZ}$YA!`sJblW*Hl{)i+I={qv8=fDvA~rk_fy0AR zBS$9RjQ;emdJi6JsJQpC6s}+W_NPA5zIZJ{X+D=&Lz^ud=PxEMzB&HLN6~3vDdGr5 zi;LGvr_Op2_|s}UeA~?afCpuz63gpG8%e)fx2Q7m^cI^R4VT-|z?m=@qiD&aj%Be_ z(dKrVhu?Q-_QS`c(;)}C-D({ro(AeQHYeS=5?43!7~r&WbyHSt7HaKsLqX(^4mhA> zsD}7lptpy>cdf$HvAuzVvT`XhFg!Z3x2`r;3hNjc!RCoSF|-n$e&n|3rpKlyP$5jN zFR7J6rjTayj>*Z)=6MvZoG+1>Ac?AyMM0O_%f2PX0}iW`PbOY|S>r)4Ff^RbCdDhT z#pUq?y#YUaO+ZCq^pa1fn6Q|Xdk3R{p|P9l@p~8EdiCJ1|Ga%N%nMEQe?)*mW!)!D z*!t}UtuI8wc6Ex3a3$a}id1&eP?q@6gpMDe9hmoKBkrt>sO*|ns zt1EFfN35d*_QQLW$&vb65f5f&zeiy!Xa2h7z;R`Gs<{@ow#x05^;#is+dHX&3LRQ)<-_^0o!2s%vQ{z2n2RjJkRwiFQ{$U$%wVO1`2dt7)F0K~Lbo==gzw@qGhh2L>jl z{4s0OoK@M^!x1ppu`K%V2Zx#`i*2z85_cJLt~bi+;i<8J+gaQ!7uT`_!@=S4STlza zFbf5wUoD5nH@}{F_TpU8+}txcG&VZ4l1QYtHbj_1FnoCLsXzLQus`J5GcM!H8l9$S8%5lc zK0&tUOm~)Olc9T|{ob5r2g&x_gLpUnPTKyfPD_mF-r3llmPX?40M+%faJy?aVhHqx z^`i6`BfdAXw=ScKKFVI2-XtSz1bQiN8t$bu!n*@E%}XSd2H&gG?2g%y*C@Itw)f4z z0^kchNu8k45nS&sL67;@;^p=DZZx}V+#Pe%yhfzn!p^1sp6Z=OT1+RkH-1+&I*n1R zkxtC+NF%j3&`YUjF=AxW_tvhrN`EZ1_};tFpAfy|9gLahPzK6U8DufJ8Z1P^`mp|-V|dgD_0O4{f1 z74iI{SjP@d!B`-a%NNUMS62&WYZLE}E*DA=#ZvLW*w9CAzw@@K*^t`>25B~@CKClJ zL2HN2+{uxV$$`+y^49W3c6lQi&tx{!DQo~Tg(5N-_>Qf77J1_X2anxzaNkHc;J3PG zN5*DRvciNxOV@yV%S-rmWLWO^O1^{Pp&SGMw{t%ApmPKtFi znM>qraW!}R#GxPir5`%<_#Jys9vGjQhG#kRt?%rA@L{;D+T{zbfdCL97@LY6Ai50* zN=Kr~;bYd>8B-1m>4qsfr0hMaOwKAJ5hdbPh5`am%_oQr6xIx&i-VKTM}qBwfZsg6 zr?q%dR2Uw3y!uyvYzd4hv$OhK5^h7rurq=5L6w2)44@36o+u$1P!foclQuPE78nG? zbgs4Xpx37XBtoT?pq+)V8==K&*PRfx=%$F0L;lDt|2hQ-l_%=E^v0!H*&H1jtW?m* zchvH^)Mk9o;X_L|F1tVj4f$1Z421GJh#lrCiz3)2LHGd>1X%C}3jmlZIBZP#kipwI zf&L>JCVY6CxQl}QLMA6ILGxa%dAx4+6N*KZ@1fJ-WN}*OyN!o03OBW;#-|$jteQyC zT*UG0?jZd0jYea$W08qyXe{XVU`}hpK2^N7A^aPTxo$rZIC;#xvC>K=U4sGlk$s*M zC%q3nhpa5^(WZeh7IC7W16l1O zpZ||mkDuii#IO9yFPJV|hz8y460kfFH7hIJpd&ed!;T}qAxu1up{JF_I~WHkq;hklnSPF zL0!x8G&A_QQe$-^mn`5?Nhvff7|vqpkE=C&>!|{Q%2KOQs>9*qAp&O48jTFaVq+*! zsVdgxY*3b>k>R1S>2xNSE~jz*z-rFs2nM2qYytsw>hp)v8;kLcWpoi6Xh4D|g!^IH zQm`^N*T@5DIAFnF<6PMRTd0r68iiBZoa0Ly#rx% z%F3y%lLdg)8Ho+Dm<>!%78b6-2~PaVr{%6WH1WSY4>CO36Uj+`p0z9ENhBc89*6d9 z@A$-!k(8YerjTlsdNEp&n&gErz5b>no0MWB#VIp98< zTcyU8joRF%Td>lwv#MBF7MLxGB;5aFCco#c-~F?Ax-|aShwu5>&)oNuAA8?N-hc1C zw~d5i$$0iga%;d7im^;$E3MoNM}bia&E7HHOcx60*X{TX_h91fIkmF+^o<4acOiF- zLj_T%mGz7!}4YUP#ju4;;SjWAA(Lf&I508J*cXI586%n{daD z49y&$Iy@d6%9V=ga?WW5&(ni}3omdc0L(p$45Cf zT^>8wvMyh+WU_tb)zc=A|FfU_flvS3Cm#I12XDLgHdI}&oxKzZM*MC^DW5|`;c&Ov z`ZO^`4o{o1o66fnLoAvNbTfUo&7z#1Yy9wUA96fJuuH7+uYVW=4&3^A( zyUUSWy?JgH*8Kq7ETtQ#7h;@^GAUYrSwKkScD!Dxyk)vY7{3OQ5z`mw=~+zbs<4mh16)4@pcnm-HHc-TT_^ z!Y)xarBm=Wfkfy9@!Lt&it2`S0zFA1)FL{mdbHdI-x}VnH#QSreQxx_51IxdH{Lww zOJsm{VDsKuSZO}}Ez9Y*te~5r__&rWm8za26X2Sg@|fB+Gs$vb&;CT(^8AaJec_Rr z`%mzG-+c3msni6y3<#FtLsO=fvzRLSW8O?I_xk)o0x=!TS*_}{m_Ks-!~@5U`5lhM zrM2a?WVup@wJZTEBwRLtEoHd*QC|9?!02dfC>jZcy?Ezk8vwzr;FYUt2H~#Rdi&nJ zYC+vdWIzlAEC|it;c#gG#Dw4G+sdX&*!ChQwb*hcbz@~S5)6(_jD&DF(6Z##3z_+3 z;d;s=K3&Zzlr$Trt7}PC0-ycq?~NXa;VRe+lE+AB`oUY3Oyl(@pE~y850#d0Sk{)U z;Q%Ao!a3=nM}Pn^^b7@?i46;e(EyPjJ+7R*uN59fXV#R=qE3P4k2zp#Z57P;D1yOq z0)v9tV!fUzTE`|7lvXdjqs+`&r>5(F^(PjL0bFi*=5$WKGt`V5AvqfZX^gENqosBe zduN|sf_&t)SSd)3-o>X(2l;P2XF|{^Yv+#^FKPVONu*xwA2sk<62s4W^{r>m%{nm2A3demX)d1$NoYAqTa`l(-~ zK?vvTnFN|YU?<6LfvC{43gG?)m=wo$c!-^R{F6ipx>2LH{-rOv>R_IT006t1Amf`; zRq%pb$mAZ6KSKY+i%FJ- zgM;G^Utn!xm5##3((VX4T;8h6o2yYS7K#N_8#8Dpu@GXl$l%#54mK-fhXgKIpor;A zyVvDWD_A$wu?0c5#A|m~DpjQWL4R;FzTBu+$mL`K;Py01vPBb_n5^cD*u>k>5pj9F z{vfht-^lR%E8m{|=^ybNn?wOihDbPZ?ZJ}Tgrnn*v}=jgLo{GJn%SbgEaVx~>9hxy zuyh5FB>%ec62&!7ua-;7C(wP*)GwZPqM7v2eU0ayaYQ1fbgF*sy8Zn}F}`oEC2do~ zwYj)C5;g~Xt!r1=s`M8yd_f}9*qshMlR1SZ)URl zhR2v}l@j{&sD~j7&tdZc02DHKyVsMdDS!0*%PYl_JYeXAF%K~*;TwbYXRXewhgS+F zC9Ke_xE4YC5|y%ME$Z`q`koIyaOf5sZzn+@1)V3SmWvgkM)y;#4SAybM%buS6Iqs> zCj2*QE&sS|+B}r`=-v?$F5E8_?UJ*GFUYfJAmn>m}}ldz194 zZ$h*qiqd);({~B!O(%g~#Ew?&D0TZnZ}#@}yN9}^Nyi(_kPA5^QEsSvEpa?$(zDtj z=>$4ILb#Jy$TV7E|51;5<#c#_q>T_X>K?uOu)s}q@lC+qVA&Cg z1;fY{QSuk{e0&B~%7Ua(SZr(*3al2=$?PVkb*(0Hd>D(c-#Z+Rp4_w7?sk6b+)JrS z5nU9;<-AcY{>8sMcgOYRJC7Wg7#<1*gK%5GwY8cx6}vO5b0L8%giM>iOxeA51?2z&J(sJO)K*0WZJd>d10*T< zV8n%|G8K$KGb;Q9n-Atv#aV7z-*~oq@onquJ~uuBB7qtlPrKptV9MJ}=)myhM=RPcYnmErKdF2<)O_mFPj%VGt(~f35 zWy;edcJi2_vlm7C>j*82_E4D5C@$5|l%U6eD8=_K-w9;U1Q371li_X4YImaT1Y6%M zm+%dSc@In$15VYTXVOZ>gWu{EX~x~ z7SGm z_SFr%3)g4|^|KJegqqRDFE3UcRzQ9Mc`S$z;o7yutGQx%=HSr-fyn&awYB()(=#x9 zWcI+`!2L+XlCR{GRKqd@ju25W zHrO^6{EC^u#d|q7>kow!**LmJto#r{yU@kLI=tTW#)e$pKw|!?*qd6czDSTI8ccR! zD~<>3$S3bM9z~H;%j>-N@ir3W;p#awN{vu^?6gxiS^sbdx34{u+eJX7Kda0=?wSN{ zovmQH>zU`n4?SR7X05B558TrH*4x%tz!V8rUq9=aj+m-RYs6!Y#Z0AKQ!O~|en7uhJW@4m9VdwNSSeVHMgd|vsT4Ezts$n4c&S2#FMYTd~Rvu*zBk)OwWrbfo&GH zyzuR8@rAQB(|`NU(`OSYJ4mwfs^rcss)|`zBWQOG`lDg6q8zsMd@5Nk^Jc*c#e$>p zO7)ICGY2O|7uVOzt(IzHFGGxvWV67`1}(nrTEI%Xyv~#3hwvFvVke1`n}7urz~<+T z&+a09=5@KMR^{cz>nq9RvDt~qftU|ZAuV?7%-5FF&!0ZOQ7QlOPyGxYuB$Jf<)dc` zd)o<*b0T*5haaoQ6IWh6d-A|!S;fCtZg9Yg!)f)|H|!y&G8n;nt-YLXQ_zrCNoUZr zatw_{hu!Kk-)5Z~-ghAJ`kT$%CoKV&jHxgs@`dj^BxZMPAJPBkOQx38-+OSWPq^O5 zZdjj_-K)-Trk2 zK_@ea^}PDImvVQR)TlQ@?mJ82CSb9N% zdM*0>8vUeIBB^@)q|$CkwReWT)m{b2(i*L77C>83%O+d07OtD!gDz7X?Fn;xIfDVD zvTxe8e?l4eHy7h(0G&%fKes*OqlHxS%JrPZ9!+J-g{6!yjE_^0yjvrC2i0^vxs-IG zV;u~B@heZibonY9yQ8u2>Q;WWRNhJ!-+AY{olkeu3S3)gI1um#gW(_o!MV$L2Tp$W zH-0ReNqy&UUz&&w2g5!eZ0#E!o`^;UJYFZ9M5B=?7B+Il z`9xyS8yF7-)wz}YdMZ2|a7_9Eteengeixf`IO1{Z6*Zfe?kmq-hK^@;ZydUdIQpm=v4risD9ZEfTwPN=Q zsSRs_k-%uAmd>_|+2+z#Bay6^8%}IIZRTpK1lEUhIN%Kd=hv(v{;$=%Cq~+BI~M0K zJIVmIp6s&0-U6Cpcc2#pOlLM*if0kpTXC(bJ&UlO&Jc6B#U~x+R&Gz{+X%v;VcF~p zO0+gc;$}z#%Y?bc3Lc&qOGw#ifCqvc09^gG!?u^tUzPQTaCsc;R0*}1#Wzf0?B9b# z%CKRbio(5^>I%#y+zm=Q)CD*WMPmJlKF|M4*?WLVa$I+wRhi|zH{I2KOpiAJ2Ebt8 zK@cG5jVMxvD^dES(`oN?I^ON>X|?XO`n25d_OvJM(rCYx?)1qnDMuqhBmk1&4D4XM zZ*R+cZ|@hGRoT_uGaxpnCo3}Ig~@RFBI3ROV-p<79wQ)5SpO|lS?W+kfuJL17DPkP z)acqhL0U!V55Q73TA=k}@&NvuW!LEJOn6VU98cue66nmp|8uOu>Hv8R7A542)g%Wq z0p_%74Mh}7s-;VH6hDL%l}>V5T^`wHGPJ9lEJ}49VE;W1C$LJ4C=p&Qj$H%{01{p@ z;`pp6!~P)WmbrX`Ss_=eWpkOv)hm;;ho@%`Hm~b9606>c@YwX!()R_n@L&^~dI}TI%)WldM7iA!-1cUKQbt?tv4@vQ(^dRM#6li6fB5|d$6mQ`pdK8VVen8rt z!XJFa77QZR()i|gOeaqC7M7Yz^Oh%`ZZ9WoGa+5B+=->ZO$i=eUxw!ji9>*%OPIEuL>(ylHi~#sUs!$ZTO5hI+k> z0bk?AmE@nCeeLa3oSGEY*u=_KE>|m)4(GG8Cl1A?!d?%!5wgjgu9siFasB%@Zy9uG zq;%aTyU*yEn_EqkN-Ozvu8`?;YP35?O4z9OSZs$U_Ij&$r4Z*>a_nzjZzzvN?iYx7lDS)#@9C0y|>A`uwLxgP!@9 z-qsbf{-9NKcAv}ew9XI<9QxqXFJ8FLZc}V(Ds%g0u~flYMQY z`cmp$3)Dk%;I9;$qSsZVpihj}SCFQxS=1Icg4t@~$^E zQ#EKuQAOgrQ_#Aj5-cXNVH)*u*k@O+;x!bq;jA^P;nY+zHE1}BN+Z%CY)}(}22d(w zIO#!Qgx|nDoQsyV=6Lr|G7xzxO`&!LQ4*~fnnTo{(p>#a#fm^}az2}wW(2*&X4J2K z|9t-P+*Hhs?x1cVrz@7*Yw=znD4#wi?H_Gr%7$7+U$0>YzMe;))olt!-aNNnm8?FG zt60t7dgI3ZkIi}lmTI9}*eH@;XvAME_5SN0fBPRUzccEN9g0K)K5NYEU&smz=(R>G z3OJ|J<#gKIK~Fwc+T7f@H9yyI+JEMYzjW+*`qJx*2cqMEassTDNary2&D4cStZ|psA=uk6JyS<*UbbHmC8)Iw*o!)CjZakZ{ zhrO`_NB`!pfAGs+_>44rxVC=PhC~vYn&mDMu~OKhcbIzRPA^|J`W?M`R#&y@jBZ_M zvX@%XHwx^K^%`}Z-zFgoE(T>sZ%0JkY~0K=E}S<%_5^xhz3Xr2d@;kB= z^{C;;K}zD6WR+eezB)?2`bVFC==ab41%_!+qh*^7Ry{nn=hnrGCmufKjRX;hN2CHh zT#Fq!iW(MbC3~}x&%>S~V?ipFa?$R!SVtpl)f?G_!>}B}AqFFd0m!EaAqip6r;7%s zFzC~2+F;XUGgwZ>rp^L(rVrU~58xi?jM}|{POYjl$fL89UazCHywEG<3{3&{4a|ql z>##d5$R-)BMp{sZT3$4W-6kmy((Y3A?I=i@a18d%Po`3 z+Qx=fUNS}9Vi=ZcLO~%mqO-INz-qGZSTSG*jj0#qW46N)Su(l+ta72b+AWn^bJvwE zbHtRT;F%{^zy9A`tcevdC0>wU5-H^>z6VZPW0P$8gEYgLLv3jRmJ=zm=z;Mzwh`dc z>vaSB{hR6f+yEkaEy1Q&Z*gSSUOUquZgdR3aP60N=;S~Zx z*!d#&%}j!dVsK!sdgylBoo+8jQTBkhS;*IlmFPeEfEcNw zfyBJ9HAMRZOBq>xH$=*%a(Dd)B8tgDMD34OWt3|}U5z0K#HD5>MmK-TY7OD8+VA~m zL#twa{zKib|2HG8#u4aW{w4Y}`l%4M_w?104r}PLTW@l9FI=QsN_!@HwS4>1jo#wA z8Du7xLBLxnGZpe|tRi|$s3<`*N1v02)MCaSb=EiAvj zx|&0|+~Veyu`tNO8=aIF_8$54gZBsQ&eiqY;^Hdjx*Um3OpJc$?dy|MW6qICd2I!Q;2x`M2{r4r6}{_#E$VMxIInx|A<>#NtLQm{rd7O@2jLp@2i1e8LCD}&cqqQZlq#Jv zjf*Y?iRvCi+V;CG(Ln~Hn~FZ&Ph5>4C{<7OS-EQ^QmBQOc%wl&JPx~+81LzJ*I1h8 zkImw)@2f@MT>>p=cf@z`(PF*JYpT(?ZxO2lnUOwRj_nnz5R1uV__~V-&{m>Dgj$Ko zpr69_gve{VM?bPkzq43_Rwv4~pzS%{wIo9%Th47+D;;HbzJg|`4{b%hhl|{`w^pKV zdsHJ06YNfA+uMl>Qi`dyisqxmR9f`i)6{5jsBg4`e&}(l4%BzqRi8rz9CDJfd1`9) zl`Fv;3yE{Do7OjK)}pY9mCBldS~$61cl=-v@V47L%H zb=Xb0Mx|$w)9FGZxmJ<8k%ObpeEMU@KXA~5BsB5$`uz`2&YqcKN?^~GEyG5YKkP1H ztxNXBTo#vU^r6rfU%6DOHb;FitI-nl`BpcR@pPJs)D-@1HM*R|e1fzf#s z|6(&^-~GW4&b@Ns$tRx3{q3fHC1cwc6HV>3cgj88T3PRNv=(!w`>ncm6~4cbbC@C# zqIKRrD_iAWyd`$f7 zd{)@35wbD#0AUtNS?g*2LTyOyyRO}ST31wPm2`%Pc!vSOwn0h{dvD{21nF|>l*5KI zY}44$X?NJPwzLwBM&a1YwT2@+X0YAbSY3(CjHfqKsOTZ!?ewzwW#fpz?Dhz=0BHGQ zs1-c`_<70b4MaK8FJ)Rt)&SmavmjCc*VuL-2Gi=Ix63!4&HGMMm(7>$Q5Tr}=+(vN zHh_S!x|~bbu8q2brBb11upEBqn6X)2zjn*orqR(XwmSVmgs~kKutI_IYt&LDsfZv- zQ(9la@UtNm&~e&;O}kq+1uV^drwqsUNm&1R`7DxXU06ehjegmwv{^9g&Df5!^YNEQ zLLD}R>%ga2I@lPdMnFqMBZjSVxFV_so|{F1+Xl{Q@zxD*a#N0sQFs2QKNf!G>!}yN z=L@@Fp&+D5s>O20qTm1PzfCj1kjmIVSih0FaA8COO{!T)q|N1MDv7dv}hAlt(KmW$LAHIyhozr8%$O2*?s0NgiwUMVz z`Cs@LZ%0o>Mn3(@cO~%tje4IS418m5ZM{)yfDO;MY_&1BC61$608$m6pxZMOvIH!J z>l=+MmJ@m%11OCkP0HSoCww#}xooAC#M<0yFW39l22Lmf6OJi8S@rHj5^YWBT}E=Vo^P+G0AB#u)L~zR6&~zc#mIvAdA-L7lkK zC>u(w(vTg;U|hM`gPR2J)W||WEN84Xm)qMY)N;Lw#~-$~Dy8(A7%$>D1@R*e|5_Hz zSXixV*$qy#NQk)z;8?5Gj$BC_p)Fq!sG~|U<#c-O4v$ffhL7xyMsC0Oow3KCG(?;z zf-B%Z)Np@%?i$kf@PK}3#42BezSkCCxH~F^XAP!u|IJqEU;hqAHm=Wqx_AC!XYQ8# z(1X3Jm%6aar|!dM1?O?yqE0vBk;X=QYisS>w~RA00{(v^Zox8|lfJ?^k**7i-Dnw& z77pojfHWbFHtxgTF3V9gy2@(_{h|G~4?VN^AO1MEwD#b?`VBoMITD-FTC$fcqU~B@ zzsaJ@=bQ13oHyV@Ww%xB0FYGb87}0?SF_gx*B9*U@i&_okWjQgP_JOA(G#oZPIGU- ze`kdmXAp3gt1c!W_d^seu&Tc-rXJ#J=&RBgz zD65T#7ay)3y^bR^P8ZiV);DvRM~cN(oBwF-r|irqccjML)wqU5a1vub-E252E7Pcf&QWU0coHm}@TG#3rcyzFFz`;Z`KbOlTPM z>m&AFx!6l)41O~hjlH!}JBd{ut8HxZ#`(1icQTHVz@Z0bq9egfp>lC)EuJc;fagos zUU}pCi|<@#lQd*?><{|J0v>n@3lL@&7t^m{#Bu854|O~`dBoyAF@F3fPd)khM^Ak4 zKUqTFPe-1Q)18MsqLQC;AzaS%6kr%{_^XV7e0n52DoV?D`+md*0$a?)T6dqS!q@tRZ4YKD*ZvdsqN1! zEFQ(fU?V~4M2b(Jy6+x5iQY!1Q73OUozxt)KB%PDk3!byR>HqySnBofUD&&CKbCju z2m+XmW{Z^DT;)?|b~&51awA{FU@MT9K(|vN43ugOoJfv$LT&I~?ZIYqApc?WxQnTrC+GskQKknVnbGSUJo5-LMez&o z*jhdIdJTRTcFL?aAZ6>tWCnzyVy;vx)aqE2EmR~74$ZH2=N8*H<_xInCeyuQN`{B# z{NcjI_QDGG;4EiOTONH_3VB=EoK9$`*5L*bjki8{R3Gu`3PpI6PA<;|KSB}MEYo2f zTI}g}a40H@@cdFOnbn7))?@7C!CITbPruN~W)e4VR!bFB5`|jISopr*`9t%uM_`s2 z3GllMU;6FxtFHw>#pgr;Nq}sz#kTlHrWVh23g9#9Gv&Phk>`#6uvn6r?BNH_lyAIK zxV_j08Mjs|cRIc&-hb%dd|3{TvKkO#R4X^G{`-IFHFc4*5<9qTW+M%R@Ou@;z5^H6 zW-R13q96Y`F(Sc9@<*a)&g3t>U0R8^%QcWS5l0&N@cZ}w+dq(8KIDj4PIoh#@BGF; zakNqT1VqKmDg|@g96&QB5k%r;8Qww+Ns^r*NBB_G>@`+bKs-%1^Hr0}7(O``9P@#L zVn!mc+uOLhw0wQNTBx}lj`5g37Iiv}I)@1aA(O{$Hlq63>sZlNKo0@9MxzDEB>~l9 zF#Ev+8=1gzc{*G61j0^-r(7t3GYd8hxJ1cR8pv2%z?H9Lkl+{H$sm;*#X9?}dTbIK z#U#X*zHGHQymCh>=Sv(!1bnVkd=Vui#K~=TJCaWF5=jsK~dYVc*YwGWXr{XaCZMX+d^BRSS-@q!k;$E3*#L=w-p_$gp8kXFYc|C(@+%w7 zdcE6dp0YcioZ0_@lPAHY%H#@H=i>=1jxo$Rpt16OupqxfFlWo&)8BkfvkA~+HagtA3Wo=a>anOTc-CfSjFcKfk?({`&F%O=s;F!Fw-e5He-^K5~y znAvTWO68kpFQ6WT4l$sz%ITHP?6H?C-AbaGOw_U{D3#c-(xvaD^~IX5Py+3j1-Ucq zrK9xHS!r@w9>WBR=%&gMvC_1nABzU&zt$y0i!0Z#&%Hh+1KMrBT0|UN!*Pe{2&ajCJ?)YMqwKDbnx;d}pMr+8^`RR@0eD(!Fz8nNbi zuQb(CsARiS9*(6Yr8(4GcE{2PG{ggqECmfN0C3A44Rfalk{N`0uVPEys5c)e7_9>mXV6(jxMxxpC}x z91halD$Vd+3(`{PhpGW&u|1c8w_0Ia1=yW?-v<)44hK02kAYj%`_NpEx0a%opyKGa zn~11T2+y7_hb-iLI{EUeo#N{LU-)S7^PjUk@Q~@)eO&~C7q7||gdn@{;hf6%a<%Si zwUX_c+`*2~_wtW!c0#ca{0|>_;3rOxd4UNurgQb%o8_fsaVeSJ$XD!67hl0qt9?2e z#)bgO0RGW16YP!k#n|IVp7@o=_CI;x;8O?po|+8AT!1hlMl9Y+)Rrh3{}qX42^UVD~IGmzA?zJ`#NCdhuK-T`k-no4tR}>`Z86 z|Hzcn>?~Gl@B-ujXT`21U-6kp@DtBJT1*vD<}*9Yt1G!2C(>pqnMwP>k~Si{4-Zg( z^Um6Qu82s>@kb8n+l|`%k_nqWDAC!407-YF1biXifKIBcxALLybkM7?1@(42mI3rg znwHyoGy9@04nGWTz88R!mch*c8?CetqEPPpQ3aRi#E0p(=%_RW&ZPH#`7^KYxsRHNHxxq^i*KtTc(}GD9i2olR7 zz0GZbYd5$pi0(*ebm%&Awb;ISr@K5aCF63j3QnH^A?aYmFg9x0GotI%YD+104$=0M z170Z_t}m{$@!Tm^8ifjnSz=8~Ph}0DaM%dXuvaQ%Y;?MfYnOdz-Y@$CJRzJGc;>^g z7e3)Re9V95$=IiUe&4VCmTCGh+#ywppiA+cm*4p}zZrmgMd*R^5jO2H3C8LNseN`P z5i2q30Ntu}JApIL!xJz@3@(58xsSOfCrx8h?#G{*{JAg0e*V`bcR=tBf^Fzs`K|w@ zb@{5#0k2N73^)w>3jGuaSXZ?L$0f&at=q@O9EVP-UBeh2kAC*&gQp&LojBot_PMcN z{6gq+zoxUhQKk^_CH>`p@rC>kU&nASa6<^fV_=D#P$Nc6h_qR-)r3l@#qDGF7#LX2 z6`T3_Y$aXpa;EqG`@K&dkt&5&ssyG=awVP5R^Y`WVb8?=FleIPdX2e)s;gAc-AClh z#EAg_UX_kMod;vH%DI}(gw?HXCQ~#y?V|_w+E`DbaqD)VnVL+2`cgGpta-4ZTFsHE z>9zPKwg})AYuzRiISn1)vDB_uJSuAnV0@g}T&^wmMrOuyiDk@)LjZRP;B31IgV%IB z+@&Tfl#-}ZodhO~sVh5JIGC9W%m$QK%(nGgHy!SPCma?+LpE!0YW(uqmqs3ac=Q*a zMEYOMWy(&6I*7zbR>razO(dyKcIqfo2B=D=kce>YA{p^dp;Vpf2o^rXQ3kjeMKm8GOpMLnC z{v535lRxz-%L50xORLSBD<-?KnW_BA|M%jRR3X#Q-&~H*>=~aLA1Rk>VBud_+qkl} zPFt8b{gQ-&Jqt7Xi;+`Xy*y@f+#el(_Q4a=BcngMa4nHa*K~#rj)~~M9Q+13C9+tt zwifUQqLHO``4hkP!n2<_edYSCRH|sOTETYZ$PO7e1iJv~<;a;+RuG>Tlj}>J%rl>Q zLN9mY$aG;9WTl6H$lb`r(e zzYY6{-Y`r(OgH4#XcY1-)?f1V>~jF!7`i z40mz-hI7>1Ls8Xw=$Aw#P-ERIu9nCShnl7qOLJ&sDglqfL8|9)kmj@VgR3R9%R!WP zA>L61JZf3sP!rP};!*JvCji@gx96(0ndZHlSS?fEUraySN}}aV3R-I0D72*eMH0{2 zdurKfjv?}GPA&0mzCZ5a$0n;L@LtHEQOj^wV$D-?Xhj>Y4K-AIeQ54Nuhy_SPP9~p zYESd)PyK3B3j&eVR)R`8%=pTOMMM%oz223ty5_p1o9h<;7A^bTW{W?>B`g4K!5&sD!1z*H*`hzDulaX6@R+i@16d7hhX=Qs@?J7IRZB_r$U3=0*a0nP$IBk30igb7-TrL9wLNhz?^U*`Uj2bzY7L zMtZe^J`)!jgDj}V{qRA+!|Tdr8D#+WkAIfX zIj_=FL~Zn|M5&m5<%kwluU#I4fI;}6K1pY1kn-I3y?g4r5*bQEYbl6?TaT2Dsj!*8 zd46$f|Gs()zLafFkQ!~JT#oHDyTehfln^jz)N1UYv0-O)*x;67(9oE4c)f|GIk^K8 zjTHbvY)2tijaY?16YsWbSmQFt2()102Xme+p@Z71bef}6(?CiYti5Wbz}|nRS{$7{ z2phBb#yJm?Mj^j%Jd9dtW??bAvQa~2+#p-*@P!7m#e_|0chK&PxSg|OrXy3vJuGs$;t6ZhS!(MVql*w&geJ%9Z2P6lhOwh?LuYLbf=ivuz)3X93 zyu-2w@q1l;{?ZSB_2;a)qRR$Ak{*c#lg-3uR)7++kQ7$I1VfJ+?E3YaavtiTFfzuQz~57upa#wT-ha6Ir7wq_*c9lv z7&Ht*3=rthfPl{xf+uXCn!~QKqf_jdmf{5>wNcwoR~ZA5GY3469jRTPPoBG3PNJj% zONNjUf*HDK%whH;s=+ExVzCTH6V}fP4R9md*=i?`#&xw-Y4uoTRy#dR|Dqv{YIQbM zimx*00wrWl?){{;vDuAL(*n#mJk#ssr@a)Yhfr^1ewO zX!HQ`vaeyW>V1gAq5YMWkDW#*y)}2!M7N(D)tT9aXK%;Y_Ij-MAL%6v^|!7|U}yO} zSm&Ti(%Y-$s`IJGXWKJoPaY$^FCfANh|kKCVGTEl#S*X^^IjaIYC7xH7z zfo+IzGCLpNjE2K|4voUD zFW*?Xy#^FOHyZXj(b5qrOr~bH4Kglbf@sL;Y=*3^n{0B9DX~_`vt@v}!vv2YO0>^5~@Ufx42re+PiB$ICi9b*PtCVJ06FlXbIjm zFKy)BHB`LAP$lem)KVVKj`={?0oYvyDv{c9yNf&QqtK{%i8_t;go_vBBk;fQxlTqPKOi``@@jh2)$+48jQb$JwHNV&G902!X! zyu`x}za5X;$}?yHHI|?pB&WI5=>4ojd-cb&a4BQEk;taM_U-*=9&&mNZv95^XWyqc zN$uNLq++gTaY#;IC$TK8+(L}Em#LC`FI%pzS2}jTB`|vB?WM^l9y#>chs*C=OMdfQ zbFknQ9CfW?9qod=^^@7%iVI=1&`fA^;>b_4tne|)7V zrzm^>jzjSgypZB8K4i*2ZtxLIkW{v~p3H2ZyM~Tq zx%tBB2f%<|-7HjU-Ao}1=Mi-a_~ulxh!_P2{cJJT>*X^i4~GNJYOYo)HrWH-T+Y_& zu=A`^x_glA&bJme^Vd?@WV2drcT%hA2lh?EH5TTV5r#$@xm{==-6ZrZGgaAd?G|ci zgraKD1i(H#2AH*OZC>v%=t>P;sm9rZZZnOIVqwfRSHsYZU}`K#VLN)6N_{CQqoL~X zWX_&7xGT=VtsgKH2cLd3 zD6J%-4VtS@rBV!{s97sdg3BD^5a7>V9EnXMoC91wlIkXhgWc|8DuZ+^>XP|%-i&BX zt=_2BCFHt{wqibyQP|+fNGX|YRvO-55UG-UN|;li63R##U^^3i&t{v?aI+(<1(zCC zx(Qe|HjC384%ZrmPO+FzWsF|m==AjBJLfFzo+mcui-lVGZ1VaIF!%*JxXW&IICVy| zE97!I%=%gbn`DTE!}qeyj5s{nCSbW54(v1RoiU7sWK<1m-~;KKz;xvDa=s`ximka7 z)Xz-^rdZiEl3C6vj5aHVp=#@SQ`FNdRT`Ul!NCJh&damb1t*GjYjnUMXI+O#LjKP3 z(i^Y%W{;Yq82Ci{clc5owA;%4;G1Xvk6-OBZuqdRg%v#H(}i%g9+4L|tJ%#JLz)GK zK&2G>y9;N3XtX*!hmNrqDtZMquKqzL<^gePu=vMcy7q7XdB}v}QTi!c^=O$OT);tq zkbV&hRrneTNt&|0maE^D#D*UBf-B3V{7q=8dq^~ctKxezWkSy~8Xk&yAPgkzpOulqkUut_I ze(KfZHM1*gHArA?fyY`ew{zLX+D18@MO>>@Z3+v^=vIJU#3@4)S#(JUQY^-25&UCo z6pLexb|CMgy_UbOIF|j2fh}DMUfw{!ua#ODf5TEoqsx zq0NiD88AVCk#MzEjIS@E-=wH#gN5T~xs%Cf*}Gt7L&=)WX-tnhv1kjjDMCIDAyv{f z0P*EoyLAUWb6+Sdu|aG%`^QEv{pjWBBM(mf!job#hPW6D05N97XQV$c#i+wisciKw z0wC%W^n(WBV%jG}nGi&a<51#@23O-Ll%k&~EF+H0|Med|p^)Ttb(!bc!MJc)a!H+= zOH#zIpA74&809ePz_#^!v1`@2eoYsh)=wX4U%6mNY=UdtU0*}mr&q>UN7v|g_VT61 zYnSEq3=4nBZm$=F8HDm$K|=KZeUB#o;-$C0^LDBwcTC3nKJYlbt9vKjV2n5&#bW*J zwHw7wJ>&>}^3%_c1OZD;8r_zr#rE}cuX7Ab#TuwmBsCF&<5aHMop5{ZpB_Jca$hoC z`P1*cyjdX7|KKJZ>u% z2AlzB!0nov8FkpqrBwCJOADLjcD{wYP;c*;uUo0|5d-O%=&ZMkg+iiHb06Qo@2SVf zj~rp4!$C&6(pX&1)JeahTZHQ3{e^`#b3SmgOzvazsC@z z8oDEQC4oV*+smc}X%00m)SA!kGzro|HOE#4ifg!XlT!cyKmbWZK~%TDh@%vB2j#sU z??t@h?X>8_^lCNs^CMHG3YE;Y*n$Lt{sKUIZ8bTyoFcyJ8f3D~XE29Ag1?sVfL8qW z>7k$_D* zv#oLowKqOBfC80rWyJFL&PGsN$N>u7>)b+-uuwpy7$yU7%44SvAg)kNWsyGzvj=EE z$$=Os$b=m|$PVDZxG^?rfl1NF*Sbsd`eH>Q&o#cw#cPaFb>s!}Ut;M}SR>S60rYEwL_4iRl|DbwjzDq0-E)d>AK zN@U?f1SPIg%bLd^Wq$jA{V#!_;8I$REq{yKzPYqIe|2@{z}`BFc_^*2&uli;%LuG@ z9X@xtgn&l}kq-2J;SrsFKkGs^z#RSnU5>*6&U5T87m~l6wgYwvMv&2FhMDBB9^R94 zd-@OnmuPXoejys;jYimRE+O&2YA^lZdxgvAZNab^Y)3_hgyA73fL^C?lNs z*RKXmIy+K&2tmNFi<299W7y&UW}U*YS^ee8(p1 zz&@_!F-uH&IM`wS;8m*g%jH|^{;`06|CoIms~L!xi}ez1T*y=t8^zVtLKX}lwp~p^ zyTD;Zn1V$Rr-^I~Q+BHZ(Qe_eSS=U_v(a_*c54;&)J`k05zodmv6+d;=-AxiA}xX8 z-i}ERo>DTEu$nEoMu8<7D;d~l+Q)8nwO|+xIyRBBxfD{3w3#x^VBx?L@r9E`?3R~X zuxv~REF1MYi^*ii;GBejiPi0Nu?8_aT;)QcS||pC5$r>uW?&0>S*=`o`?Y7j`kTg} zovIegF?Hdm3^jG|2>-$8raWTUE6;+pS1-j&IQt`1^n!j6Nhq}@euP{3Aw?*~!a#V` zzy0mTKYZ8u+>^a4SEMnYF1x8Oqvz%#WShvgG1AFXx>v(khg^xZvHtA1ZTLtXFJr%va8vpi%i(O8oBsQjy z-V?%N$O4TxZ4VsSH@kl-U8wxck6v$sRb;hqrqh1AXLMu)O%IPh7>q^T;ZU|#y*Rg! zwDdmnPoI12nejnY^lOPqP?i*oAhmWyBPjJouNMD!aAVEJZH*m_9)9*PLO%0z%Pa`Z zRtx2}+kPV0Iuh1p<+0@aJKC^biqYx2Iz!J2+@(ta#aUdF8w7F<#afye1PY{)$xN#^n;+IQM?YcBi&7qPE zKdSB>K3k7UvOJQyU_lgznp3|Y59O=IQvC(JRvr;wL{jg=j@{+aB57n=tl=OvRHQq^ zXyLwBtYNYp>Fj<~)7kB>`VhL~x)-HJzk`72TRymz=YGA3q=&!7TNTNCy%jJtzid%# zCAz~klpP`4vfn|e1dC3o`761Kr-5TAYmG<=Ri4BoHE{fxjJCz@XGoO0r$0n|*Yw{d zuX_cld1(pXwH~($GkASb4@1|EM214PoEnYl*ov=A{abWfBc|^+pzQYzF{W_BYa%_5 z0nx>E8+%kMtF?D7SWiZE;43ez>uxLnw%DFtHH;h(VxsJAvBzUH=$O#qSdhr}jwI(d z+%djqrpo0T^*ecBF8mXrRHonzx{BZ!6kFi6O-}^J_m07(EGIKLhvDg8{m8**_pyxw z->)>WV11Q6M^V&4!NspqW?r=K5GMhTLuFMq>eteiiGWlXPyZuO2asN1Ps?)ltkR5zIwJ`LE8t`OtlbCPH2g0V2tlg$w4%^x{F1E8t{nQbGx>744E6`13dWB4PJu8HztfpSBj&49FS?q-| zB5C0Oy=yXopf~ml|7iJ3zq|LbNAy7t%%XTtwF*QX@WTJS*P!NpY&=on+liG&we5av zY(YS5C4uKZ^UVMG`QI;>PB`4o8c2Uwo3dL>UQc>60s5wIbY%TX&1`j{Rss8s=r(wZ zm1;V*7Pr`hC8a!Sf;y7}%tSO(E5&-Ab8;XQBb{6Z*2*dw>YX~r3z%#|Vx&+4lBz7X zb*VzhGa9p6ovW+wjE+wFM@Ev1S4%64Hlw5Kce`drbtc5G${q*1itYSn)l_GPx85t& z`J`g`N?_}k8~RS#xNpSB@j@Zp&R6Q!mZWr1zkk2=eNXfZkJR2gTfcn8z#3pB-dN69 zXD7i=Gz7hkbfGi1jID}p5i_DK`aFDOHCM8FP*r7(*v3q$o`VZ`XY6+&G_04xZo8#Y zTm9;PUi|Yv@gCl9aECcGLmjeR%A{`00b-BDGe)vdlZHnzp#wl~6_PycPGdJz=Jkc1 zJQnNpQWaLa-gdJXFzb>pee2D$FI)B;^d31bc_T&;XcO_&<+nH9x?nCh0&aw^#7cuL zOlpCSiM)!C(#M{5t%k-0%zL9E4B#?k0TvB_PE=~%{K_BB|Mg#CjmR@O+2gFBRWEF; zC+;ld7UFif7qDVSTZ~4!kH>9v*-aI+Ln{n8l1AD1nK`**mtF>z=fy#&$8X{hY$!W6MEF7Al4BBfM zIM&NorKV(V_GARWx&}Z7EGYOG5F^_+Ya5$bURs~Oey1F-rxW>?{{EHI?|4#r? ziES%uQ3yZ)z^w{^K{*%OMcudUf^cBCMI1~AwRZeQTstKZu9f#>aq z!eX7lVo$qv4rs=Y;-&nG=}jF`D*Yf(i`^e@{bw~TWdtfdV&t;^BtL`PO~jYJ{N?>0 z`B?AfZQ7gDpWd}~U9q66H{_`plVNwWEX4x4R9QD3MF_2VXH9qf8J#y)d+Yn=N>d;4 z=+Xt&bvmB~u^$$e-Sxad9LLlfDBi}#8}Y2Z4rWBdcJc&l_S=8{;%2VNBwOVWr`bzi zTO4VkaZqVuFL5d7wzwYq(EBjA+bmVq-(Ig3y9TdavN&J8a;wTQ9fCi=1q&vfB^F{< z(!uGmeS0FHy1x9@bzR5lb6KlzTB({JVCRoTSutaeDu^z z%rO1XFTF3g*CSGbM`KRK#Z=CGOok+?_8D>SbNNci`)f$*ObKV}2-5x&1jNE$lxbV7 zD)XU|DvS$kjVI>L)Uypf6iz2L%En{ijZ8L;ZPI3MaV@cDVk{c;Zo>Kr1MKGYTK;$b z_-p_Cr$6bB1{(EtA)Al-ymGHm$yBT^>z(D)we|doW2c_~a zG4qLsEaT(N)nywfz%cn{HNSMd@cLM|HuFDep3Mg6%{6k zw_j=sDIJt7zd`{SGs_ z;NVcEOF|9?)(~ZwiAXbB+z02D@1$6gaL22U3Lht`9=zuszw7Sb>s?K9k4~l zycVz-lW)GU{MzfN2Gf7Y%WTpIYzCvpA_gDZ^H{p2H`4pCvcSTE^-v8!D^4`T$pSK2 zLW{Qn-_pTUhRckwkX$X5HqX5gf9*{KpauKN@&FUqPINRF;37>{`7W!$<1^b4Xin7{ zZKT`SJJ+}M-C)EkJ5AY(3&8P;?OdRFX^dv8nyr||y@BT*l;F904PCz7N!Qc25+$I5 z8$Gkt6dZBeJwmVFB=n1rE;51clqq#L)A@3v+vpk_fDHkeD;v=eK>4|il>#|y-Ykxu ztj#`sdhF=lH^1{nW+k60mo8qm_57%^aspN59D?nCVJ*1_pgmGg zyg4QUvY8Z8OH4k355)4Zu7~tL(pM{)O>*P7M6`tvk{^6Y z)`Cp@0B1m$znJvO7>=BfA2L=1RDNU3Z`ZHg8S#b=?%U^Zx?Z2Z z+UWL{>cyoS7u}ozfST0lv{ArUX7l%4X5 zqH`DhMtu3zg@Fj~cL+h=zjk*TC8a^INENrJgYA@>zeb5e%R-c(Uyq7QyQzunF2;ah zM=k^J{;ygLHJ5u)YDHCFRwYyK!#=8e*k?yxJPv08%|BWQRF?p#{dn&YmXTErcpyB~Mdj}~$3#dpNfGFBV}-ZcdgeS356 zrW6VDfACVuyNL-RkF5fVS64liy9gCT%B8;AmRqDJ z{6y>_LNx+2H|q<+Ilx6A^9O(P{k?nkaDtpo7XXDQA^BfxV*J$QG#9GXwOk$z#g1Oc zlrN`~7q8w5csM}z!UA;~HC~;)t?P@4%S(yq#Ga3R@X5)evCsq44}atlOQn1Ml~?uz z!oi7HHIa}TZRJe1)hN~sY)KdMy=oaDV1qyc4N1|7t}DPkV|(sxIkTznR(lAVJI#8J z4axE@iUB}^8hiC}op%K324R@zLjOAu~ui7zht(u_iCtA%6!h*CWL=w6B|a=N!LS$zt!4*@bL2O>)~J+_IhpZ zrp4m4jgODaPU;aAUS2J)#|ulV)zyT#-EmbaV6ao(a=q59^Eh#+z3SYqxc`ms;_>@zAXC@h2;tMq^@ez)(C2VSh?!#*6$-1VQ*G7@l{#9noHf8#3#Jr-3BmHPYfZ8O7R4wz z>_8r39@oT{zM$YR0pTC@4`pbF1rZ{M(Ev6gav^|8f$V}4#`+&B7ae6S(?dEAMOT1Z zQ5-g#C7TsgRSaseJuXH!V_FC`>ASIz-C~x|a{vMecB>70USo9VW=`!zza@Sri|#Bq zjwBAp4F;<)bNQF(t*5By8KSi7{Cy0TWz*VsA-z%x4ScR9=!r$E@{P$HKsrBkJi zRB1h3EwOtq8^9E0)dT0xti{>|xo9@?(K$!zZ+&GoxwJVkJ-zqj!CWC%$X2qYJXR?t z56;dnFEr{+IQ#WHz&>)lBMd7uM4H`>*})LPSiK?`#wih{FtUsn9hYJE(69MFO75YPF5+Xio3|+Tv)*Az4Q~ z;YtlvDw@t%L5hmCRJqdz9ID;5`s{7V{FT4^ySaQqp!w(}miZ>BHyfP-n3jCX)yCR- z)@}*ROziR5-0^J6GZp+FfBz?KBSzb#>%Na3|L`xLe&$n0MkcXb#yg8cGr`)63KrK; zZHdZJ{}h_OQ<+`+WJ(NiQ#7ufQRVEc*V$wI51Z8oy4iqmR)^6>EwJ^si;?|&dLI}!?d!U4(DnTf|b_>Rk!hiqQ`eMb9*|Fs{U%6VK+WR*X}C84j++$a%s5?lWCriyn8xoEbXq+^C-I0t^)5S zgGS3s4aG;hG@l(b_(QX!-YBT{*C!aN2SI<2Yq+Q?SziZ0rN?WSVki;q4R$KxRXet*&)cQ|&((tL1`<2HJ= zad zqwK{rXLdU|NPhMFT)fZ#C}G6!33&o`mu)SPe(-aT*+UK`Q*x)={cFcOLl=woO9FeLF`vl1acgNIRq_OaPds|kZ#9(W*1IKaP?6VGeuF%e_F$B-|7H(5 zHx?4tFE1Q8Fk1!nGgqM-Vt*GAcMJf9qTx!Z3Pz;WWNmi4_E4bRX_oUvlMz0bomj!j z!r2>ihI}Chs{o`_wO-{+fHeTggUSu-&l?Fer(O>|VpB(Q`#nCtKfbgQi;X2$R*Yur z$l-%vu;dq)*REXcVBVTQ#7NO88nhq#V!3EMu!S3ND5ww#e8{#~ermi*vUaQXr6AntD zY>{=y7I30q!PI~vSPx4=odb9d*ip0GU^#(6j}1wBY7J~qDo)5wfSdv}5dvlGfePgT zB>G|fX-qh8sNmya+>ILp&oL8So{?zHv&Nj5hnCL zk>=xc0-1139@9>|wUV+pX7Jby9=m8ej5_c=r!It~bGsQkI%XU7CN3`5%4`~7IgLC- z@eCeQFxZjO>4mI_S$?wyTvY3+-j~;Ntd#lC037Sy9wbO$}S8` z$YRmWnUB+oNi?H?FY5MeW~0~ZiN?Zy|A^P&ORR3*zI?;w@*I8qLAKvhDe&Tpu7HOU zt|vB7V$RlbpiRN?(=0G=oP;n>mg{9vQ$WvBW4uDQja~sdzPU2!EIl*JA2iktLiiu# zAH*ub4np|cY_yaz`BJ$W7#&4NBcI3y13{-7)p8TkZpqAAs#JLPkG?=ls7S1&F9x-8 z-F+0PK?53XbPW$cJhzWO5hy-TDiIDgeUwHer^46%h9h2!-_^T*S>C%B%j&&_n-cm+ zqd~pPf;2xTGkTYa{Rqsz=s0c}9q+EJH{U!b^j$*{>}>1uIdK97z%i3pzRu=_0pQbY zMIZE;XC}JqnfBbOabn7J|MA6dzjER7V#R2p_5kgrpCK<=uGJ&%fZOA#m00k1#iABN zftecWJ%Hy*4#yw8^u6!jxg;A|{xVtC5BkS`{gXfSQy=_btJv9yr`;y!Ol?fbSed?6$S;Ic9YBG%$CcU zdcMu_2V=#p#%yThgC`z3IX1zv28k)mkh`OSg?DZj(wW)Oh)D)erMv;ao4ef7-hqng6H_O!YYVPp!9=5cT!$S`D|*v zM(q)Of_@NhHF)_gx*-?uuU3ubr}}7*eaFDJpZd;VHR~Z?g_#~iqHYJAr{+*zXv<%T z3jMqLXbGx04HIiYszZBJDR(>$6;wF2P|fi!1Z27+bjKr!?4a3J&H?p~npB&CzBcgX}ISK%_{ma}#Ouqm+9`G&R57o;%7h9G9f{Q!gd`!J|T?1qlMBZz*%tk9jM# z0NhnaKlSZD_X-;JSIeo!+u_gS@LQ-f!#)tG*Y<2h$<}_O&TL#c}cplz5-kW948aBh$pP$U{ADjCl$Z4 zvU+DDc`Kes*BWlSH{$oZZB`Hai^;rIYRD*T`R%bl=*_?TcF6A!Oik9}D<<|_5vavR z?8u1a^l@p=G=_pO6eU1H`6R*a+gy@AB2?}g6}UNFxus|0pU;dF3z~JnBBWDij0f*) zt*mr5JgDzFTqQ~kDBenSh(WGWYDCni zaBDR=H0N&7h>BMJDP+Q>=7kHNp*fC6cqtqjb9p@l zjK<|E?3p6`y)nOLFqlH&FemBQ>wzc3JS-d-VmX~=!*1tTpkuXIF&4o247RHZwIZuc zc;ylz@|`XgSQ~Y~g*f6DcEkYIK@Pjy?2L?K5TMvWsJ78X?_m1mQCPdRix-;lICA7z zi_-TRoUcfolFbfOxY6PT?;pit#NVsJC|kQ}ZIpGl?&#;Q>oN&xYF2*X1M;Y^@!IQh zdd=|cbH@Gqn)$50R_?{~oy~b^bliICw7!w4%x{29WR180d#&fHR5NNM?OMS+8o;zb z@zx5$O>pOe5l2@Xi8#b&l)966J5k?yt6A?bO1u+7IT)uCA~szC`(q-Cp5+ZvdPu2= zwqp%TWO!2~aIjnfBC1#{VImAI197~-QUsgKEI@cKm@6z$15jk_w#E7c-c*!9uY>s# zs?~78KZ}?{NqI{02h;`2>{j0ka zFa15zN;UV>r)=R6YSx^URC3ikX9BF4Zg+1L8IjpC#zDdK_l2 z)9kY%KyGnat&L){ny)+D_Sn=!C>X17sBrnR!Dv2w>UbiNT3p|RcXc@I>&cBG%ak5# z9#N%iQZpw|H$Z;^Fa@lqqRyaibek@Wiy2y=x8~YgHsIp!?cn&612Nr-+%2N9{J@DxJ zi(yA|3L??)>JU@LW1moj2m&QNe)vbH;!*;{Q00#mrjkqUtN+Dju<38lA^I=Rz}(OG z78cQ@6;n{Pj#Lllkf?U(P`POt^+z6&o_rqAQ%->8$f(|F@2#ek9qpDb1)f2poo@h` z*3CA{iL!3gFWa2m+sj}u*-xKt=S#1C{d?(_u3?02W>RIBzg6mV^T4E)%3*KN?Y7rz z%}N!qpbilDm`=#GdVl)rkG^~Rg3Q`VHnHRX@aXd(4tNmnuUx`Q@mKkKl~~lCQa^+U zw^Dh6P>F?)NSZl9G@PhxB`3wN+r^r}t*fi+i|faa9|#1z*<69sr+Tg~wPlOhyqewM zB%GOGIu!ZXLr=tPo=UEqS(6|V4(Cp&NJJ3=y_-a#+LnP5bE{NpnTE+k*pAmwUQE!akq1eL0w|Q~UCU;eN(<5)8ky=){f9$w zYmb^^N37vTl}5zbUF<;#HToSi`1k8#D6W!{m^Oy1qVK6CG?el%nMiO~o%G`>KWYLh zji_h!Pl>h_S1pyA&R`m#!wJ@a6M#gjer>@C?j$B};_LQfQ|PMdGHHDkphJYw<=&k; zm2+1Rn~_?GC~yMMV27LyQpx7Ob)~SDEoYL+J>w&6zJg&>>zdwJ+SqI$fGHoEnK^!X z9~+9GYCQW-KVb2)P0OWxpVY$lD@(j1mk1oZukx#Ut9S8c+91K9(Qn1-cPP;WN;UMO zD^DT|m2&pv6m#hLAN>EMy$6sb$$2JLRnL3x`n5MR-93J0XJ^)7cfmCTc7Y|9z%5Ad z01y;$N70G81l6YKkxl} zRr>zSs_N?3Jqt2a(^D@i^Upss|IDoVGxIk$Mu&!>s3@5rjvRu8xb^JbR4jfxG31ae zP1p#67zY$Hajq>05Duup8jqw*Cx%91@tss5mur5BvkcP@MwT!=bp+Y6!I~EjGZz;mcKr ziWlw5O09ZrWld-_%&nRQ1`I1L>)7$$#x2YAgtb`{gK^W?Fvb)Al2L1cnf+JWto@0F-JqpVtR=zye7#$VgQx$cbHE!l_8u1+&0> zP^;1CG@V!jNTy1y0@HgSEf@tX=CF9c;ufMYV6YQo$xgG0Z8KPmnLK+EZpIegdQ*gn z9n}&}h zq!GojGJxqHS#jGfZacF^L=#DFL$Lx23WqfF{70aIkbd57m!vErD9S>hDeebpM-EEj(g1nJC?)QyE9LZp>*3EBairJzq;0lgH z@|t$>QCX+~)O%tHuE9Fw_!T?NZodyFMWwyQ?grd+I1@8dwMzSg+qdmj*VO#X%H~SF z-Uvlv#b!QN%V`q|=O~cpv4h=*01=1_B5}4FE+YIMU!jtR?F2|jIn1!eWDfa)I1z$Z zI;;R(9uI`gvZ-7jLf;lMlski7UoN#5@CH0CNG~~(V`IyA-nYhv9{IhW+MkP_QyXZJVAqDzZ{ZaXe5!yH_Js~bs0brwAq1_>Nmbq`_|ukhLcJ* zYaUOC5cR)t6^9Y9MTU0~j&CHVg{&gC1aW%I^x$P_{(=HgEvE=aT*UY`>Ude9*Pt$} z6za6R?7~%txnD*nD{|P6Q>fnRhLlL!&YoHR`ggHU1hrs@_Q3uZWbTx{Zt&pdCDtyga@r_yzY$%YlZ z-wTIop>QbL?zi5*d+$sC%S%olY~8ZP)9B_5I}r`5Yep8H1ak0zN+_Zai{Ru@@5n`z zRI{)!15~3mSPp^0*wDc}IvV}PUw;oOM8ohi=yWI$qv{Jzk2T`iEdYjfYq+>H@F6_HZyga2W7I@E9=+WaPO%Bro7U zB=tzlhv5$pMoXr=e25Ix$?(Wwd3J<#Jd{_Xi2+;-8X4H(l^47L3?6Hgll&y?Xs7PUxkj>SYNLP)~1{W~L|Hk?`Ahw%%IZtIN`4EdIc$Ia}9KD&;4hn45n37`=i}3)-Skhn(I( zmZIKxo%dfNdK%BKKk@)?sg6kf=+O&^UUl@3l|>~I5bc#J!p!N>TB~*K-S?Bj2}qus zEY|P8e<$h=JahTN$+5AKKuqe2xk?eA^G>$|mI(Y6gqUX|Bafdw11a;Rtz5d^!UoW= z-`~rYoe(@$;Ly}%%@wY`_SWS52~WV;+1appZP*fnb5qD7$e9LYLM$O~ztR^S*cFxf z70A6hO+nXXxznQG{-KuSD2DTu3`HF35qIze+ z@%ZD!h_QC5y-X8XrSTw<=vk)`!u!w82A}=!q^K*6)X7c#0%#iHxnBkffj1D+<>>>22?Msc4*YK z8!bquFlN-$YWH9_qu=W`U{(ez3NOqoLO`JHu-RxExd(%Rj6LlOc8e_>j`SP7LcTaM zGo6S>Z@u+uAJ#eD?x|D9C#FY6T-H#pY=isYY8B37>#0I7U4jR=ZZ^}&6yaFFJT`7V zangM5yy@6+*k}^+1?AQUVs%S8eolJ)8R7N~`SsTzG9jJ6Bnb^=dCSynn96&d8+WYd z&sdL*HMTQyscLasl`8B`(aw4s=7V5hv?I4m9f#KjrV%1&D2F-^bSAkKa*9hb@nGD+ zQbRVn+Q1{^%V8R+*Xj}rPF7F3qzyX;z_va7N7L|z^a=!5=!66!dC)oq5?~_F0QiH- zrUFd_c(aD}M(pR)K0V$7kWv5$Sa#R~g2Fz^M#dgAX`ww2>SM>-?||MS7A4SUKqmqk zR*0ZxfaO_qERosTEx;cF4i=mimlG;4F#1ZBfv`S&XfZhnSaHQtN5)DvFckJq4eh;p zRZiFa9$R1{h{;vWlWYPGw^-}IDm|zIJtUXk z)#$Z+(O7bFs$8vIyYoRZIpT0QuP-h{0`W?#yi?wV%^%DTaIhGy*c)iW|C!PQ4@zH2 zlX*BY0=cs7+zv)GM66)uA16%#mmez`bWOck$IBuZh(OG#R;rt@I*d5bOY!cOL<>*Qzh*9Ge;a*4Mt< zZwUP=Bup{(;gybFK>?o^GGV1g3o>JuXXflZp{?LGU7NqW@ z<>LSV9O1znEDljTjdJm!s?C3TO(1dgof|=X=VLLUkTDAl^C+xA=OsHys?@&uLGf-D zCRTzcM=WQPB6jgA*b9e|4eV_Pme#R<0iIe~Dde{HDp(r4y|z;5bo?&YBWI6|B_o|0 z-faEHfAtxNL8DMovEouI)C8&yZ;@6(YA27`Z=lw8K6VdJCu$qdM+nsreyG_TFF`QY zlSwV(69=iyW9P!L~tA0V93L)h8x zbUikIdL-h5kq_AJfL)|kS2=xb6fC{ehoC3wnnGHm*`l5v)X|6_J@FqkXe1TA7xpieoGgNoQ0)=^ngdEc zo{+A;_z-3^<^@sXa@w<}POjd)xx2m+o0yq<;FQm8E-Wrp?k)9GS)8|1UKXLq0cqXK4~i$|6qtfpSyDC@q)<|P`e`w~v#Nn6M*=!zFCoV|Ji@ z&;&;3&=CL{0VAFkD^woAefxqQY(#@@SQ$Vj3iAjQ#@IwIwNnrS^ORtyNx7da3!zaE zQpRpSSW?VaSeF7pz{{H@?C}$m3x`=K4cq=;`k^z6wK+~CP&_Q^dt*U&B8V+{$mnB{ zAwz(z+e1fywsbHC%&`1pHbYviQK&jClGkbV!sd-h!W#mc*;rJNtrK*VD0RB9r-UK| zH@Id<1i|m=cF8RX;qjo!2^Udm+f>AJ2|Axj z;?eCY*#f+UbsPD5zF3RQ49{PFU@w)qb?eTt>G{2EMsk{(y;iEU>$EsfXY>O$Wx+K; zs)>d12vfo1IFni1TfqzhTit-i zbnyaamRKrCn5QjrRw!?$B)MW1TQF@Vuk4ZCPgDzUFt{+sYpmWu5KC2fiRoiG8+Lg{ zhr8>`;>f7|%&FBs`it_`uI!1O`^0n4e&x%*ai^ z(b%X~QgF5o%s6YJktV{yH6$&cn!hj=P3Efg)pTwvmkS1bp`gFh?w2~{zF!!Abo`(G z?x%(?gg`x1g9yPc7GMP8TTc81$jHHI!byWW|FW>R79$pA;&kPJM0uT*gc|_VYpfes z$1xJCFi4LM2d7R=z5CkLHtclTtV{Pcw$u4ku83neuhUb23FLnJq1ls3pSPGVz`7AF z^Ub0s;+!};-fUI+_3}g{D8dIkd_Y18yVI(rQjQP|mpS@NJB>vweLFUXO-UC`br?{x z^<#!%KDT5bl`e5Y#Gs{jL zpk17rdM=f?N8v}3HuPD2)Vk|A2qW$x7E({Yr%(Dz+97xq45dfrq z@%Y2oK0KbM0tpY?_YMeFPb!X6Y#uB|ufxzKh z0{~P#UK8!Ekwnc(0NRDHPD3q@e)nMzqPLPtDvR=U(7Vy4u@UoC|=1O@VIw#mHAIRF!D%}Ub1*;vP-3vftBP{ zQBx0gE4`@Dw?sd~#AOZOZKM>+NdVMV3b8h`D4xK;kh`HsXROZ%#I{Rd{)R% z`6JeDI&JB8HrKO@Td4~VodNgXP3>CY2ghpZ!wyWq2G2OemBqZ+ErWUh7%sV7gPn31 z`({F#d3J5Q2e5DRe73Sd{^9v)!@TASwgSiYiI<7KKD~sL|{WO^rh+ zWZ}Jc#wU&)pFdIFSXqDTO21r+cyKBsc_LPPLt(!Mx{MYVgyZ{kZZi}zC8JU>fbk&a zQ^L{>d1FnSoRKa+B2G>ziwok7E8tnhkA6(-l;!WeBNnsb;~y1=hx)fyBuig%dit;5 zkdoLES1NZ>_`sX|4)Dbe>_b<(?FM$1!L3MvsU$>98s#P?2bPIUI)n8WIA-vLAQeQo zu(99mx`Qrz$O(OVC)`}YU75|w5D2{%v`WB5Kwggw^;C`fC7&$Y+`4$11p zRwYx%dLuCsu!IAZyIVrQ*XQM z*KABEd#_z_&tH7tH~y=MU;ZRcRjOZqcl+Dd)0@>=g-kO+PHT32 z>c;M7olGa;6dIZ%Gz(A^WF#>PXM@QL6Z4HuH&d?O-dIH&hhoEFf3(~!oqO@ZfAI%D zdE%)lhaXy8G~MYHgf_AlAtMAMFK!e||7dCvAYD9){c-@EY&@Oc`HO_#SuUE98V(H= zO8`Pv97_zveJ3x^ZLjR)Q+b%ws8kzGxRkbtupCv!N48d;i6<}49j}!N1L{M94Y7P=0;B`cl$NGqw&G* zH;XmP>0|EcI69iWMp#p+;{1({=F$*gRM2Q)Y$yx!mg((793fyA4;ynJ+W1Ie7PU_Y zqALL%J&IXohMT}>I%qK*6aS##K2Xq+j~tj|Fyb-B7{hA0#;Ai~UdljO068+|Ffd~H zbz~O3D8LxQS|*}~nqUA>ArW&Zk~g1Y+sDWM<%b!=^_LAo$0{YZcRx+%LNh@IwdFV4V*Yp`*GlB(iWG2M{cP-~Ec+ z2O$Ay6F}`<4bOc`WC=%1Ev*Q>P(7fdLSGORhZM!w%xD3UvpyI6!`ym%5z2Y(-Aa9_ zT+hp?UhDXCr|b`nh;kKgf3d5;o;{tf+iWIRXmP2Lt2NGCI{n-ipBf)Y-d15sKb}W0|nWyR%g~hEJ3d;e|TaQSeSLd+Bp#m|ZEvnxZIbAB z$-RyQ$;=KMdznQS4$f&Jf#-ssV9_j#U=Few5l+Fd9o+7Kr-ktiXxiay9fn9yIFrP% zK_OL$#AUm^w{q7Wi%UwUm#^6#yhvu-A=*Lh0>60hLgc{+deUgFrW`SV7$vowMjU*E z8e=#T-iIneHH!UcNbsQN;sMz8fh_f3fA!nPXXn5UlKm*F9n#nypSxBn!V#0l=KvLmmU$kW?bdltc(* zyP;T+h+Tj0J&y#L=aHR-8|Ced$z*JPE;c^v4o%t|F)Jx@MgyYL-l?~+@rmVGA3ltl z*!Yi0UZ3aZGu7PkH?c_-^sBr=buozjIwEt&20Kq_gwA zn;%GCv*h#iZ>_+csu@;GD|L&JtmVyLm1>NmP@1Yl?0 zvrujDk;M87(CY>FjwKC@c)}bMnfgJyaGqdx+wB1l?1Pd$o;KFxE%Z(oTq|^fA-4{t zgfLB?X>pFEFsO#PJ~D64t z{5NmUEVo)su=BD7J{E$0Fk>Gq-`!cyKt4yZo6Aj{AHeTibFY?iNHA?fD;a7o zeS=Bx$zgRx1F`M&D$Gp5_Zl1vLq7n~?S(Tb6b!lvZuQaBL`& zNNuiSYc?87`s?3+;=lj-=%b^k40@SZUE=-?^Mp?yHed89qs8gJsF)!O z1^FZ8z~BCy=9sl-l+`a37k~5jj(_=|!}>$x)mI$3ynqEjrwLo1LaWljxycJZK?ac4 zJ}|+%Stu@@c|e#ui#`=|IkDD(PP6Egpcaf>e`uS~{xs-R!`-AnC=v@*v&A!cymIrd zb!OHQPptmoUwEd@&;8qf<$P>LUe7hZ^M3WldO6oe&i7$PDM2V51+P7&AB_g%;Xn^EJd%`e)UZwV^e;J~QJzK7^@?k)>8q zZLijB?e~aAYEhghc+vw}%3#c40D?R~ETZ>5k=Q%Ln9InI>G3?EKOR{Vy-J5ub(}^F zMtC09Q}uumMvp{559oetpm`D#=N{@h~WSXP>&-(wemV0bO?rrW7G5M zmA=uxO5x*N26T*tFdAYd~gLP;PZn&;h_F0>T85#pPO0uwMMgMYr4JkwlNxzP`QV9 z$YZv<;(<#)^JM6lpO?lovDg_T%B6QGHI(1^kAc8QBHow1JP3>_Cld2P`SHj$GYlBi z!H6VW`|(r|s7Q|Xl=Znow2VPH4tW?)P-D3<8r>tF~6tm3!$jypo=N;8-t{ zQ7UC~+z;t~1snV*x78E_UeRur!Q8v7#Dc+so(byLQh#qp>h!S3N?aHCKR75$Rd5at zheOy^MR!07r3IHpiHXkYk}VK0C&%~Rd?)ak&w@&1MvyoOeE~ouq6>te*7FA*qedH| z_$V_(@EnF*Y9A5E0brHRtao|e8B3$EI?4za)rEaHc~>EIXgYrT?YnC$>DlAQ@|m13 z;A>Rj%nQ4Va(Xu%izb>~eC_0Vp-{-|Vb8o)fpmZjmz$931_RoxwZP#*s0Q5&*?5u| zfS@}#GaQ(ZBtnm@XhL?&8%&NSGwHqJ%C6hw+S|T69CSYW+^PA8qP}R?BsF0D(B!h% zhTJBY+KIZY$*|Dwn|(HO!Yj6$LZK{%?2va6cJk82vtlA7eCuUl;55PH7>kO{Ry$X- zx~&el)s1^CtyU{jhBzHqG%))7#fVXg3#=#wJdwemN*$I6t5_a%pyP{fz(64j{~#6d;*gdi=cW)b^2L0S z*-5jt-(BAps&yKfY>yv((S7DI# zb3KEzGPogd1iZn~Xka4Yjs+ki4s-FrL?}KJiws4A!*ORM6hApJbN*Ds7hk%!vbeYE zb_QXMYBjY1%ZzXo2=g-h7={GNm^mp7*LYy4T*+4(6&nh`0RWtQ3GkohfnhFq34mMc zI$j#3BA8H{*&)ehuRAb4I+@v7ujUHTNEF@xF#N}-r|;ao8kn8F^t+#?R}bD{{LqKJ z2KmG?%sHAb`Xfk2lZ?$|1ps=Lw)OYs+9-2U3%%h}H4Z~ZIlCiT6ESiTgr-tyr2}bl{l+yw#g|uWw=6za&Q0!gCGBcVI zxhW63BgDQy#ta-W6-;2r%_b~q!oXKucqsDjH?K}ahwTvLClM(TJ4fYat57UHaBOB` zX0%7!>E$j(MNL&(Q63+h&Y^jrf0wFZN@7!-yh%?%nqbT?jz z;TIwi;P?G161>(p{>z~E0W@433GV9r)8Y^R5c*8q=HadD(gfB z&H7~V2Ulv`6M_Mdjj;RrJ6Q zk7iM<=lPAnp~Cb&1%r7YBI zqK!8EvAc#XA8huRpsguFs9k_ACTtSIDvNdcn7Lb*I!*KFOk?$)H92J&9|xC4+&^zQ z5s`xQ#0Y3?I}abY8|b4#9!Msl>Jf~*`!^My=BZke3ab97EC|m4V0A*XR1A20rN+jG z|MWk84O@CnyS-7X!Awf2TndU2b;=GVwT5F~fqtOjd2MfetrbBpk2AqVYsLvT=8*Stwhr{U={|@QEKk?ebOS zX3A`;IbtTO55BL=;71_LAUe&k`D2O&g?5(=wg&9*+aO{cGCu?Xo!*<*Bv|f0I}05E z`K@bWGAVxKaj~$c+`K8m3+Lr$#F0er`c>iff;2mio#Nh|yXK42Vy+C4a%&>gFH}es z1S)$8FANPywI+1@n((ibEy2#e1(HILQ^&#@LiVtVL+wK|;Fp3Li4zGcOajrT9V|Sy zN3jG}devIL-L(u2S*J(D9(kXTt0lNeQ?NE@!<>{PdF<|(7t$Q%LIZNu80{tq^kaoV zb~j}h93eA5?H){D`Nm`Y&0Qgr2UAMr(nb2g7>3A&%8=VHGO~pIdpR&1f??5Sx(uhR zs0qZ3pfn625OB1ZRV|1lNs7n`j<^Ff4DrLnl^wszjS2K({Wr_VXQ^mFhvTmO@P-~Rq>N5bp**b}CJuk+rm*5VdK z!aOIYEJNXLCR4w=Va0w$GHf4;*oQ*aL;wyH+C?nLWoHbwKObIX+n~W^$=rzb6>N*^x+2Ei#&PN0y5vDu)ujZpv zTtH4dB%6%Y>dycCzmGltg1EgT-&?ZIO(<)(V1$-jeYGlZb!VO$>%RNCd2QM3_lY6D z5Q+3VCR5ZewhPMQT@qY`0&%vC@d+n$IHeSEtkj2>6v&_pUD!pCWDnZDu;iGZw+H=e zfBM&>&%NmW{F6$tB3#?(-`(o9+gBEsZA149R_nDf@FiJt zh}Pji+-0+289x(=L+xiZl`6KHXQodLM~D07-aGf+|C!(YTy(;Rg+7frT1wGbirQqN z3?~T1s81}oA7+#S-5HTUD8svwM*@@rbP-)OIEHusd(D#!Fe=SKaTY1ML$1xc>rzcj zM8htZvskS5@D31^YQ1jmi;B1tu~aB z$P8~EzA<2%R_rLS%?DdRPDQe878>cA?DL0BHg}=bb${fncPxx5ffBrZ{D)T$@%n`r zR#8OIdS?GghhUNV$TUO~@R9L43?WzF^?Dqkqnzx{V<~*7XdY?EMnN6&$W$Ge*UAWE z4C`P#pySlzjljk*00tiQEcXj=c%4f3%YHbXV)VBG$F2b#i4BPZ7iHoYIH_q|^Px|^oj zogaPd!ZVMZn2x&oN+(}vz$6~t=FM`W`u1l3t#zr6O~Hn|U4UQ#%&)Xdb*MsuU+UER z&QJ*Q8<~6QR!gpI6>T*sVs(v;$HMWz@|Al{@*BVk!(AN}^lWI?eHwxK(#9u!yJ&|8 zP$&j}sIno)Q9WY7O(oOlWCg16$W0S~nb0AkFl?~?4G&;GhZCGAIa@L-YdgCreJB_J z2S!SzlKEb0rv(!u~`?-{Btv2K$3fojN=G+=~zY;PoFwhhm*x53Hrwcq&E|-QW9r8U3&rc9YAaAeObA&@TaLS;9h%ILeX|fLk?!0wx7eml{W&*NCa-&~eh3TP+J?w&*Q?)La zs~A~wvksP^k6m`K-{5i(WTyS0P(X76#~oPez|M~2)SSuZlUG)h?HvgQxyUl7B35Br zwyvb}{f!hq!3>~0$L4y zW$^vj&V<1qVzXc}xZShCUp3elxPXPTUG#omZo_F;zmG))gwb$H#SSZQre&_wTUMKp z91AP0PHn3QP6I|oAwEAepNPyxX%k_spp?2egOg5AVet*lzJKkukgo{yQ`VpSX_VLg zlmD&%#x>`3*!8)Wgv4;??JM$j#(iqc`Sc|z;A*X|bqgi;%!u{$gg7@Mog5NJz1>m; z$~KOvm~ASow5#p4m3F*0v$vtR!77e4d+UTO_SfuM5T zBSXBf&jg7QQl`LC2eTet#fsG;M6oRJl`LTHJK?uLGFj~|FGMlQ%|O93m^%i zDDk18cDu2?vu$;_e1RY|yqyl0KM{QEjn^Lk^`CJ}`pNJ=sIRTqkDOfUtLn(Ke@rCd z!Suti3&xM4)Lwg6YSiHSqW1F3_PNRa+KRlFm;4SWsmo2tG%+l%-;*{r%^u?Zl@^wL zW+~`Xs@49TC8bz~;1d?cI1LhEyJ}%eDb;#=Wq9osoDK}ET7mgCaX4$0rvIT!+uwi3 zYVmoVc^GR&VXx4;y)E~;%e$$sZY+FbZ{y|NwKA#&?_y?akF;NGHj4|ZUueZ(cn$?3 zQEw3PV=atC8Kzz7VDR+h{K(JYB}1PeDZ<8yXNDg+(cRg-R`Pv)JG4 zn6nPwwSw?+rui!Lr)#Z_%MNM7a!+t1g7l?CkF%PiB1hHnU>wos0GR%|)&s^2AkLBT zMi_*TggHI&NZz1Qtz^rE>{_O^k?${O1UPK6LDsyB%|M80^jb~1 z1p$m+y-~LXoZwU{**f@S3rvi|x?ds$OC8%wJ4}{VuOM|j>ntL^Mi>eotQS2qI#Fww zHXgoV2r)R7EDQrfthJPWc}YfWJP%uo@tk-!vcq=(Q!Moxa=An9Qn3bu9u+wG3cVs0~^v%B1ooq(IwvGGVK?5ef;m9DiW+qTNeoxNJQ4S{Pr zT%)dlVo>yR!D?YgG(-CnhvYW$DF9Vq@Mlnpz=1AVtL!VgYu)vg#!jibTWD?Mu)(I# z#;OQ2d=PfWo(~ydhw~>V%$z_pC@=ZK2aTKhcNIY+suy2rFgSb2lT!P>|35LsUxoqb8om(IM^fO=jAHFy?Ywm2^kV<>@9;~vqp)7#v z;Y6!ngGF?TpWtR!VuAm_BCbk*o64dIXE^_ZoV(vykUCodDHVR^vbeu;so~B zdw=`4LS{$&SHe$-GYM`(d}`-GTZhqB7;KWg<6+ZOM0A<@*gpny84OxaPC$UX zQ^@ynmG-?oDeQE9>}iO`b^rW7$gjL>8x1?Y@Fm#b?EK}QiTR@a>5HbvFDsCMUc3uy zt#KWlwx&U_+ijX38FOq2fT6RPYQ*sjAm=6k81#YR z|Gm7}XezLlTdE4^V3<7exom-ucWk<~w(XvqgfoH653UD>;6?*|QC04y*3y>+~;&DP<>$Y^xLmAB3h|Q{D&xy3ovve+OTe50i9aZF@&Bj4ond$ z9v-dUc`AG0tQ4EAY=en5s}$k*xv5&eL_YWwGnDvY7sw)+Ltc-`WdEy|-+KG4+cGpy zyuMdnz4EQ^z3%r!Tuu*!^w^pW2Q6kNXlt|j{XW>$Dp_qetL^XYmi}(H@U2qw?PmX; zBCb|?8`V~4eB3(`raB*0Nn?$9y4pBadp(EoyTG#`MvpYK)QE2|ti!XchH~_703t0s zm|1()k!TUr3;g0S2=f3h1?J@<=DRi1!xZpoAz+j zF95KTqW2NIjPMBSk9y!J93K{^XVe1&(0V)qdUyclevd|YgnxJ+>lrix5@t?MB(X>x z1Sx#xq8n7|=)jbX4F!%zqaKH6iIhsH2rKJt{z!=UBkx2WrnM}d**lLmq96iXeeX`7 zXR7Sw9X?kO&PVt1h3%BdB^`h9@z{@?mlB~`wk(w@Qcn`=irB#CP-&K$_MwSPuD7s| znxC7l?d({TJ|r1#UAecjS4s>I?JVxKot{fSb=l&V|*3 zrL0BZP1w+3xmioqhEro$yLjVREDs`DBNZbID_4VJxi|%BvVl3bz5ewp!=WL3{Tr=z zp;%$No^m7*-puFg?T*!IgJg5LR5>v@1)(NvH#ch?aOiM#3@xKgb_!Iw-e*6QSQ6#~-W4#54d+#}yrmp^8?@HF%U$@*Te z)7r_Kp%RK9OpE6#lE;U&7R*zEYiO6-mf^|H+B%F!nqUOcVy^8LoDW~7cH^W(r-pHG za7wWu!D+=BuM$lk34r3M{6`J5ya?;PV~ppC96h>=CsA*(9$}AE3hy7C{3-@E3b31P zby|m#(LetEzqx$*LJOj<^`_V7&ZM&8Xt3RAl&dA5(+mAJoSuU%#sU-j)6F)vvcZ6v zn{XA|Y~nx$`_0(3Z?)PsuxJpog^Ub#$gz11^R*%G=YHvPKk`#gDtotk_paEhdt#xi z6w1(ngn1gM9YTm)a@(PU3nvUv(H5ftNL+yR<+85ehfD5COvEDpeW| zSg;?C_4f996&yw}Z^YC|D1$Lm%m@y+G8_hAY+(+A-veXk^1JKllH8#+InD>L)sL4* zpB+~~?HG~ZY~eQ-R@zbDU^vikH0woJ*-<);p5%1|W`{xcexVA_XVP$7jK`ot+P-!V zu4iF+2TKpz`E%0TbpP9bE5CU~93Qg1^wUbU)A@@(HMP2y=bjQDyd-~ctG{sDoQzs7 zoE1mMuufBeZEF|fO7aDurHT_aGC?$yFinn2ZdVT{bQ>GOW?IOXKo6MWHIK$bUqCV2 zVP&b;$7>AN`o!yAD1|4|ds<}y2L@ZJseDBAwV+=hQN>;S+fRUg({ z>U{|Qku4^_!wX|USQfy)`1a-+6gonIfJbsdjdOH(RIzklzy9XuzxvyjpdIu9foc06 z>m)V>_`E>niSRV{=!ad}vl_#b=w(Iu&=UN^rDbDb{%&V+3e^AzenYpxLqz2}*wWZmUSJz2pr+S3ZAbDe&=UYMZI8@4Oj1{ebg{GjgFKUxPoB zX1?C|ySq1cU_nY!{5HqqLni}f7ko!Uz7c+7zPo%2IzJeFG2!f`4Z095Ky45OzZiIG{$ zK=hA~tmunlj=`-)-a@*~O?16pWXujRwtk-&E=gU?u z_bfBx5C769oe@axsGb~U>#BiL(D*nbQnEeM{A7HBY9Q$(S+tEUbIEy9qMmq7_El4_*Z zNdrFkyARLi$^IjKiVS$QT>Ai84FBcv_e(tpJNTsM(gQ{aW27+*7~Z=Bk$PTZJi?sN zdg{>uL!SM{8|Yw2R}t)k@dzXEKn(9p9Y7CgRT=12eMG2*BALHE@zpd*nRjpay4Vfv zLt5P*^)#|O4Y_;iSAIJ3{3S7DwM-4$rl-N0fv166BFT!67rrTqDHajUo|UyNH+Ia0 zZYb^nFSE3|Ug@^{fgre-xgWbc{nP}>dVo8l3TZbsWVM%i_m@>B}0v9}mV!5j;WH(w(i+W+54lTAijs0eieM zcHHC9aJo_|w_4ag1oxRL724hA%;-3zeL)2e?c$g+_4@nkD~q|^V!H&hE1)N=h_>6c z*@<{~D$!ZHXN`Gas7)?bCGha@pa~;C;ODH^_|7SXyfAaY^2jG-=m&Qz7OP|)AA!+N zrBLdniX`}PY{oHnvc0)$h3jPt)X2J~M5LR}IRlP6w5Q5 z$-osW*eb~UVA~vrD~(Qh{_M$L`JG=r{?JtW&Rg>06>}*o)@ov>2_F|y1lIY;FD~q~ z3SK+RTfFQ$rN_NX#toUYs?E9`*3{V@K}4*js*r| zux{%?_JmUL(CNT?FA=8OgheBgsfYUqvQt8Is9q3v}0h{CL2TZ4q%Wu5e zzj{-e9JYMnXN6p~^`HMx>a;B{{S$FwQhD!f<=zL<$gp(btT3JwDivjULn)U;zgJ4c zrDTLwIRU!~5_eEdPVJF!-A)=VH86j1grd}1a;FJ@$WkaIg}fFYlgcROaPaccPk*eq z)wr^D)r##{9ODTVuhom=nhxAflLurvd4UO4sGz_WP`OdTA&3LKnh7klE9i1tO{S5d z(MG+T%VxbEPtXsMBa_D;7@Z&g#;ad@>R@Oq1iz1Fm?9OWWu!J z7lqXsv>!td9ELVSjGrJvrCo*)K-gyjV*z6z{~!N+=kLEcJeGhxF~{+Uu)79TBAhE? z%wcOEy4MnxzR-bzyLNPy)h>j5SO!a2+T=43nj+@J=M*Y6Azh}a*X(vMm>xRc&r~}1 zvL?lDibR_0yFJP5efr6zul~Q~^-SX2IoHKw3gmz8?!r#xX1?%)y|q-k6>|E1>Y*oQ zJrUTZlJLfJ+EVq}_ttLoB^h*vcu}oUDc7szW~IH`;S^yMr+n1`!NSY9J!$g6)9#R zN5?w@Cr8H~IKI8IRVh`W{*WnDAk+kFynPtc6?zc}iuwIG7l;P~SR6s(4?}e_=z~2n zo0-J#EN0l46ZXUKSuKtOsMB0a zV~@uAAgqmVdTX1$@|CY>$s7TS)~ccXYRHfP7%f)&MFdSGTkaxlhi`gA0CN1P&HUy zLSZC}25+pV5uut_1EXJ7t}%imWQbW`sU3z+QZe!Jk!7G{mPOjWvEaxRvEK{>BXB;o z@W!?1rAuR<`($x_qrL4sQC1~2rwQ&vYeswu(;wp`Fh=P8z(~X*SzZoHcRojSBnU9t zYXsCXa{T*?5^$wEo_pZbM-d1McwDh1oy)gTICG#8@F&UAhsz8T`&~%0BQrlxGyxNjVJU)p z2TNqaHXrCDL75&VKI;&H3k?~;iO6eJ{Dt~ zP9A9e?yxx{4yW6Jqb|1h4+jV&u!G?PE+4-*NW#ifutNKs_T;f3z;Yj=LFg$@)Zfe$ zdkuK?g5x`x922*C;LxyIhJ6w@^o<1p+6y?lz)HgHwzrz?3XH^~g0K%{kpiPJfgCv1 zJEbP(hYiwJ&@5Wpl=G!F^phXDV14wGvbNa2^1hIaSw8(Gq1@^Gr{9;VE$d645#~=R z-~Fa?cR`w(79V_2@C1aN9bp>=>`fw0V5X+vhE^%ppudkHB0!}+T>z5`_T1$2O3@&u zG&+LVo>INBvI|WMGu#3|Gn(8mn_BDeJlp!wpM9~u-h6H42R<>3q319;;FGSW^s(|L zGAfG0?&`EVEwo$`T{g(jfcg+w3Ur#?cr*rW_0{!NmmOy$9w^q@ZH}q=;~y;FfJDtF z|J|2q%Y^i#nWzgJ_Lx_Ewy6_Hn@=?5*j!Y9XqF7duvta9*&L!tMHk^?QECbe3^4N& zyv}W>uYcv&k3aQnC!2!dDV&q_7VhDdCcw{$%_`@rT@13RQ7owNUL^&n1B0}C=>lAaj0gR;THPl0pce*B zhmF*l^ZeZGmtXSFjfm+S#6H8L(U{G7{jGN&KXcyabEPu1tc=*F>dnBI2kwA51B;t*=HI~jRt>>agZTK3&D2z_g|JWmd_j{8=v%JJ? zX&1+=;%A*t696Xwzx7+crNhu5K%~Ax*w3zlsQC$o#pnT)uU!X9;!udvtHP_U0qei} z0ER4x-0u$^gP!My1qN^e95MREACJUggwX*|6U6I}0|8?a!W>w~!vj1EQ0UY$h6fN1 zJnHx<3;Iv538SZ85VcUtNs(-%=*1yL17{t`Kv|cod5|Ly(>I$t9+Rz>&UbUgOeQn@ z@uwWa(eBQczg3g=_7s;>iYKhY@%F-9Q>`I+Y*GgdM$Zo8A$6s&TdU`)u&#|yWu{cJ zxJ-d)EH*w4BYlzi0F_RRDSi7`?Wjg-t@w{x5&pyWp9FFJ*6!>7_M4M6WzH8Ia(l+Y zpVwOGNl zT44$gW-&T#@B}W02b?NgZ<+;jv)>pS8~bnmr(X)YE8TZrwN_H*b^{)>Om0zffWxOP zSh%rOLILy4q=@b0kPk}jQm-Wxil{Gbi^gJNbV3NndYQ5WGf+wB28@7r6u?AUY1stf zcW{{ycA+&xsiLH_q>7C*G34hn)X$eq$$$jYkvI?_(~_cXderQ-clL7F zQ3rztSzpX;G!txh71{_;@D;F+Zb_UN3XF$3m3kLiCXgNSlkPb&qVVz6>RYjOjX4Fa zUp@)wNDeCIIKjh-0;)%zfWXURPJs0%W1m>lV%HX|9f<%*mY7?C@WEaMCO!$&>$XOM z@XKJ2`C*R*+KM)^;%kK{4YI+`I+Wlsw20=lR=WbmUxE1`Xat~Lq`zr5d;JcqRRP(6 z?=5)RmPCgG{&(eC9UdBF?4M%{c|$Ho$N`N`Aiq9JYaqAhy)_=VC{E$LDrxz zFdUC>?W~JE#qaY0-U7R_LrE+VU%UFsm;U&-T?rRSVqu10_=3ab(}so`O+x*TLh5v5 zAwHuB0ROZY`lbIEH-vycs)-!0mW@p|I^GeKwcq$3VI6Da%b#g2e&C)M?k?Sy>JY+* z3n^d&IfULjI4GH$nYSxUA-|IL1Vf#m) zD8KrieY0$Kdrc;5Ctt_n&iC9isatp6e(gO)a*m7+`6owu=~5M{Os9QO(;$UPg`#}wfro$Yb1yaTKlibh ze&dCa6Jh>_qd^WxefwX1@lnH7iZIGDa!?LNK$R>M2JHw?rJ980(LrKTMCp;TT1%V4&dD~tI;rkYG9F?V4HxF>W!_K^pkc;xiL`yXIh+DL@VJK6IK6vWX=boK9GmE|3(q75s@m&4J`<*H_%doA3lChO8YT3_;)g&u@*wf39Fnt)&;=y_;WLadaA^vB0Abo|bkq-~OGy=~U?? zpAcwmCw#1xxEbRpo))+?lBhhbOch4Lwj8)G+MIjpCm&m_?B!Z@Fkz99D;|XjKQmPQ zh$I{Rh!?M zs#G@@HcgRux7t#63SuY-tvBcdgENEiYzTJ?&5E*g7tVRa=$PP&3fSR>9w#hY;M35< z=NU#|ptjgDgV%yYMYUq~+8`GT8G`D@W;L6~rg33u1)ofuR@C3TL2X2nSchs&WKAEq zF%k{L(IfI4m2_0x5xG?iN2X}C;U8Wd1hb4*hSXc=FXe^LJv=<&d*iM5hR23!yP9qA zJKUaX6^kTg^!S9yZL2_d2I3Z0CyWB2Q#vhZV}nzHv`@3vs6!A4%Z6I7;`Q2p{?~pw z?5bDZ_@2d7m2f`gw?Q+Q4!AJnOW;9!rpdTv{+M+7yyf&oY4((9epUp>2EIS&Rd67% zbX#Z^#OS!?_yrhW?dGaNC@h5B%JmyUy(>I$Qam;-H-+Bn21br_Yyxa_e{D-B<;7$W z{B*C`g)K`F&UP!!-dY;MEhbnLwVT`7YU|b#+HCVVJCzo8+B*<%ueaJT<E z|JZK^mtNxAWEiLrm2zPd+3*^oacK8_MzxY3_vh*b^eOPH(?26jQ>)m^gb<2u8r3DzIV% zd81RuVFk6fy49<9gs@+5IptIZDhHy^1p7n~M8TR_bi#u<+;4*~u9~`;?#60+`JPhG zxrh8Np|$tM_22xRUwLHcY^qZv&0~_LB8eEhAmHQ+yS60X1jCq-WU*Ss>Ids9s0Ixs z6I)yB)qK_G^}=Q-RzT274<&}a_5E)?{|i4GJ{zND1HNV8Z%O!PaH4(q6axYEDZ>MX zPon;!I|>JJc(hI4{Qf)TH{YH4{1;#{)gJK4@Sw4|3u~sGe5G5gLjOq$`W4thwS>A| zlTc|2ZkLdSLum*CnH0FG%EPv7N0H&m*>3iE;D<`CDp1_%@22H@Taww`hov{DNTusG zUqJM@7jG=4`vPQ!3h-aMlM{*!(7q1IIzc&Z51kJWXFo_4GgVl(gsbRKB6@vqb19di zqXyW=gi?tj{arUWcxci0OD&Am_5i2S7MjxQfk&gxv z;ti>i>L`loxdEkiJmwMmL%;9m1suJ-bnt-yd$CbEFBtjo06b7_@;Y3n<|iM1;AFt# zv|&|jw?UCSmo2&69>}JJW8r`Yt|Fm32I)p@Q<%z?Lc=PJ{=|-k4PU0Q!jtrhC1tX3j-YG&M6DNuiMYoiK%e~#@8UniuJJCySlo&s;ln%GpnoX84Q-v)x7D-`t#2}Gylx2O7okraB@6WxpWglp5CNX zPDkymViM>hOT4oJcGc_v;)yJ)HV^Df@smA$G{^Q$kBsaBAn;M)eao{i(3#7}A~=!% zMq#_0_es^mVLSn69Syc8os(~91^W>JyP@rX-NrQhcU*STt|KtyiXPfcV2=zW;^lLc zat9&DgOzwUJ|7=8X_f#uz;>3YN54yPUx*Fl0sFC=XvckT>|O{@;Oqf5WdwNGNz@79 zshp6#n5br#sT81auX(y{#+c)b-6vxt+?5kgMX1)bPwo!3^EL&l6OB`~fcUtHLLeHs z`u^)7Zlg2BNX{!isitArzMM)TSHf_5A}lw{OkOyJ5mS6vVz7cC>tQ zSSd6o&OJQ&x1Wt19fLSy<=zIY6rMhRwqDBzMu%f#B%4Uf0P1Y4Bvf{bCG^}a9lf_O z?}Hh`Lhb6;-tBAn)|OYVEv&4hOD(P8g11)~Ao7S~vy+A8jnuk2`S=tiMVBJ7Hf`cI zx+;ihUgE>(f9(8 zcJK%MbeH1jhO_Ow_9_ zSeJ!``A9MVqd=8(#Rt(lLwEZ;iTDbE4LT0MSVS16 zT1Xa%x;Z4Qu_~a2Ed*^;IP&tJJrsHFjF>65GF5V!9QC`BQP`nU*HcC&)4_BN&Y4NXcS4j%T51am&M#2D7Tf)$)H=tV`J~Rnc zY_+aE_2iS^di6(47lZ18B{t-F$iNhoH3VaHc!H{|s3Cu_X=(?jW*W6}E|rOfqM?8v zlQz604<0&ld+};$Ao=p|f0d?=s4V&{lss5Np{>|p;lqkOvG1bwY>gH^VyIzpv6mc; zPJ4v%A%!SwTu}&U^hrnSQyS1gH*Ra2|Lpe$PMq)`JJ7m#!KYNT?N#_;Fp7DI(YVHj zT|<3Rz-RdU@{yx(94+NDkX{lnJH@~OMy4Qar=h4T9X}}n2X7d-o`p4tXtces<=HY2q>cNvogn`8C|L^O|^_C)-1A)Noz_8wE*J|*|ro#cm_|V``ELKic0 zx_CdMdNO8FZF`r^5DM^k#zpp~0e9%-nKRB>F&1rhqoNQB z{qb@V5}JaR;@BUM;KTdNp=xG-|f8=mGY^Ng9A93xXV`Bl% zqil#X;Edws!)?a#Fie*|EFeyB>M(;#u+}G?k%# z)Vr+7jiX?83le5GCzizeh_i9h>jM})6ibngs!&RH*;ygdzHH#m0Qr#)q$ViM3Ut|Md_O+&=R&pa15~Ti=~u zN`?HDj!@03?hyQeg*Ub;ddH=1Rcf$S1{3R%s5~_T59Lr)rO!MJ^9{SEjwNaGEBRJF z+zQT4KK{yQs+DqOb^GYi$!p)Zf(aa(pLC15e~DOq7z(ul+P|8aiM-LrntZyv7naeH@rd5!u)@v$C3L`jDhlI&J z;gBJ?o0=*14d-s$!e@rP_j&zz4N)(v`8gl>gT-dXC&I=Bx`481-e>5u=pc9nQWp|b_L2*%9D~6X1fo1BYn`=?yP5wduwn3CWHf>R9+~+ z$`dq5WegTQ+2{Gvml|WE<&83q9ptFr6ZJPsYGr;M4egEvU>Oq@+U3)S5}!Qd8;_91 zo+j1;Mr1Sw(;pgUtCdy<$_cs-ftiUDlde#xRBqSnZFq=-IyhW$khniK?BVbhEk$Nf ziI-3vpqVk_E)G55f7cx9i+%AK|A8_6<{bmR2H?;aKxj{Fq|8zovq3lw!x|R`h2WD5 z?d`!i0F;wenDXqPkg)X*|5+lG5XiZL-YhpD@`oHdu*O8zGND5X$r_Au$R^-COM>g* zCd7^;Y$fA>M(C*RAQT}=^)}Q4njN*#^28%;K~hzmPYCfxPfLkl>-tSIT^FF}|M26+ z^$+x0>#k${(r3OXsa?91;$nglxNz+ZJHtbo8)r>H%{D zZUjD*V=>pcN5$EhR=KUE%2=q2q*G5i(2)Gmi!}jtDm9d~yt-AYuH@?3f||}(=hw>D z?$qDA0`sJ1YIE$w@c;J9U(IS+2>!u)AM|}unPywBX-XoJz`0YQUVziORK3vG-;dVb zT-)+`aO4@*a0FsX!(-#MwlcrI{N;cD53sQSe$ptR@j*SFUOCh>G+5ZMqH#daY>40n zAiD?-WV$Gcbted;z=swQBoNUcL`uRgJmB>q2(3%kJEc##)CllNQsQx10#4)rC<~mH}&9 zRy1lib`crtqLNBDTxnLTE%-@TUr#HLq{Zq$l5+5H22FZ6n1l~_thjXOszCL^4KvVq z)x+9Bcxuq7mpfbA#!9Nbl7sa!s7On}a6MP>hGTFh*v?m>xz}mZLDi1S>QR7E_oB*m zi{?b*MdU^0aAL(rU)?(OXmOVC6c#nku{}iWw06LWV$*RJz!`QTBkYUt5^!y_@zptoCt)NkwMt!lQK4iNX&co*$2j_Ct$TLm(5G21j{o%SP7MV za73@eVvCNCV_R~yzx0VGA){F=6k((yTd4X&zED`7hRayIxMdw8)Dgpb`9~KI%npR& zE`4i5#<6bPOJ+1MQ44vbhmN{trUj27HXG0xm2?GWENO0va$*?(qa)bLt-+-$z6o3k zftpe9`z5y@-j1-}3s0o(u@V0xC#A$t<@)W=!_Rn=A*zsL`^T;y=SjEn?1^#2h7f2s z5`*n%Bpbbly)#j_c{w?1kRGNp1KtZ9eZhL0A3Hhq-doo)Tb1L750+i*|&3o~6xm49RwzYJz zv7RNjYxurG_zDO57KRav1@!=yuqkurubIxZePDB>$k&R#LmMH|IvK~*jag|wj7 z#A+S$Na6UT2!WGIRh%3U@+C3ggJQR~yeWqRkR38MvY3%$IxB=-5c1VW`vU*NZ}}!C zl`9wAN*m+D<#lUiSe9>Me(j2d;Z_e)zgTHYhbDYMx4xB!usLu%F<%FY1Q6*Dzy}3v zGLm4A81nfh2ZLch&Oo40i)oyow@L0FJJo18^j%E&&}~Reh-{=l>ZSt|DlS*x+$qoW z7|t&AyGt^3D&U5ci3xe&hO7m9nQ+VtwE+0>q7>+4m~xR$Fp2WhJP1AB7YSgZUt7&V zI0@V45I}-x97IIWe3kvVSg7!-|N`6 z9E~QQJR-sOme%qepYlHWfKbT@i>o+`@ILuCBzd$8uess@`P`?#($1wHhz&)0?j_;i zY4hGyVd<*WKO#PG7Arqt`yLJ(#1jt*Fq3laVrOw4D{Y9Uliyj>aP`SjTM;1WUsXw{ zyxQs%6r+jdOS@5l!O4!^z*3}B%(W_b1g|x-l&V070=8|`T=m3D=kL8ccQ?Nhl!IU< zPCnFDGvGyg2e6JAO!UJOcqAN}93I(RUGvMnFxEPBS|ueCeWR0Ouf6)+SN`dLKlS`9 z7GuODrml)Ry>Qrc3aa?}fDr0VUP!Ka^g!M5AwOE^|Vk0mv8wITSTx=Yl`1#&q857xPqR@Yol zo)-uDjLWxWxcVYrV00)clr#wo1K9)B7a8^mDoQ6B@;`Fw?uR#CzdKiyO*pndubM~< zK$)pU6J1(kk_MH_?FxEaL0@cq^xAsn_g{atsI_2p3A16GbA9EBXAX>veCySB&^xBb zrz4>tYym~aLyx?23QdhAC59xwsPa26>s8a`3?lLRLFcqDdK)3ufnZ00VfaHV?a}ZI zNXm%*=zo_0SU{)0&%DJjL|8(*AViUow&_v8nGa3?Tz=2$)s14hj?Mi{4quEi?CG64 zc{t?q7V-tyI_)1#6jP<``D`K__sgz0T!xgh?Rq(W_MjOMu{=TW4KxgiptR2e(&PQH6pzTeyt4Q?N<&QJU zYAM!$`?MNwSgR8{(;>V&jh);sA^IgmfPUMV4smp`p0fi^BWO3ffne9r%FpiWykv}o z181LBq1?I`$E0Vr@L+fT#7fjf>)m-0y$A%CMi!yHfua~eJa+a+Nql8vTx)kgv z9^jO1vXl)#JCUtNRv!B$(M6;bJ1(SUm^+9#>f%J+fx{v!at;c>!9`yfsyl_d6s*EB zmJkdW97GRYyuSYEv9rgLk+2T450!T8z?3WM3wnjZ2X{KEl6>@_I6i>M6C47V`6Axr zMx!D7{4F>Hm>hH)-jz331ASo_Gi>G>*?ak$7w4&d+wRX!hYX&Itw2_ z@pzD?{$w+WEsaC2k*g4l+SKqh_+uuXe z32l2_g767)X+f@7gQH)_K?wc*Qhd0xoyKy4gf}p!!S@w*&9N^G(QU6wY#Ul$!3+(? z2r(7LO2hDYByXrytl@MXh9CXoqirk$BFXmLa$R*NFqdMrBMz`@2frO#OtA zsQ!$D7LabZ2uidV0)839`X!E1j75P(@@EENL59F^sA(Cy36Ih+DBTgTnge-35%Bl} z2fqF%f1QZ;4fMxTTbY1AtSB%usbLaT$mX#f9gRkjq)^JE4Ixeg>0wNCp`KCEs-JoJ z6QBOvqq(nt-B{jg7Hid16+7;j^EInltptNf2JG&)ig4bhy5Q9ov%^A-)?HpV%($C1 z4c?K&ks)mNciOPK?-B;!2U-zQ+hnG5Vv^2n3U#QKibX7dD`Gfeuk zVPd4G^RSR3z#b0lIAQh|@%xUPG}Eiv?KL+Rtr5tX>zV>1u`M{8gFL+kKMyd_8HhYtjrGGZ~*>d+dA zLKqSd9|9ks)NBR^;%dI$Q9FJd%|VzOeYZstMzY(5B?I(Rs10>d#Sx54oSGf>4To?> zMkfq7vm#j}9i0?Yzj{IGxW(aTPD)<0J-6;oM%@n{$12CTz0g_C%Eu4N$4)ihc}v!s zt|y)p;2L)RhFr@^6Vt-@F`=9jmfw|PeZuK;I5ja+YvRD5IC22vMZfa8UT%6`_%bYc z2@nA)7DN{exfac>tO?6Y;9FJI3Js+Mr@(r-(83Xjs!FAbQLJ?o-KBI~5KV$e~|!pZKYN{zWXJuqvZTB>FDBnXNvLJ0BfvD0GJd8wVUhW3CrRuSN#I zFD0d4K5Q%`HqB*`7Fo0=-cv9pyP7I}{oC;~r%kvUzj@8jRQE`t@!?g?=Z}8jbG0|# z@svvLSQO;U3PisQXqN;&|FZk=X>20sS8ofxkn0oY#lfM@)!Q;$#o8fgkKcr-oAP1Ti4C1p1HNPaA_kL z3HxInY6*sFG2SBC&6j1&o2naQH4R_4R5vS&H#TZztx~I0>y3umIy^BIl*H||H2g?- zUGAmZtBpcqxGyF(+R3ogN^N%3s(&~pgk-$#TXQMM-PKH^|Cxu~fl&5?+wtLHh!kq| zPD#<#Bh#a2r|AvA>p=4vRM;vGzoYOJyOS~W$ZNh6-sO!|72H@->xVz?i(>;BuPBwB zmPc_CHX4t$ADyWJm<|W0~OQq1AzX)3)an}N7RBin%s(Gg(4bOri8(1 zqoY~mc)onRK7JZaIx=Xu$`HUck+ z{b&a`d`G!=<^@bEE#QnUPirN#OUUtdKK9af)9ixmC1RC?)3K@X0Ari8r!cUi>{inQ zLO}Mapwh!)$mWkPk(uR83a>o9(~eCK22FVJQKOF^F=6-)#u;2YXY%z(l;1#1A0}?N+ z%%~I$f&Ea>j%06Z6j6Nj&)(a*lbRkLiAB8UpL-Ny+{H>I91WGKHQEBxnuE#E3+Eod z{$?Rx_6Iy$xe~0KV0M3ECK(@t^P?u2Qf~=!mu`7Xb^6q>w!I8bMmX7kt5rCJl*VBh zMljQPoV>{WeP($}#J(Cfo}meV&ks}vVSXg+#%H5bRH$xrwhKdqh6&N_NW4|9LQfNB zVZ6}@?ZdX3!9XZ;_twCtUy!_TS42ES#aP`?C&tq5qs@JqkZ=_C%eX-R@XJm@bZq`v zWC)QyBP_}Rq#r_N8GsJnh6qA%A)3Svq3^H0`TFsrM?j!h zEP;P6=7y?kRT6NAiCYnq!8nY^gWH(JV%~zi_93Znl5|%KYhnr8 z|L_`C7d##jijvia*dG+*eiPylP@o)3n9wnGyUgvpps3Q+FsPX@;uH>w0|T;BZ{NC% zDYnn!HnuhmrRfg(-F}x|#WY_>*Y+gC*vZBuo~Gtv#|5jIWipxx>rk+3ibD=4pJN#a z;b<~;N#%o|FWntvTDnRT3K9%P+NEG04nSxi!;V-wh} zQwQXe(_+3T+?$75h5Lyo&D@5$aNBd_sF3V87H-NdRf7M!6SS|XzxNKw&pr64kQk!r ztS=-@9>Ot)e(`%kC?P-d^U{H{g1aGBw&+yH138wGnJUA5RR<2eG4-#sm6lMfbm}ch z1)lDL7p11`Z;0Ne&C+F!9mIA?!5Ya5$^3KCZz{)y5bd9R-{T( zY_szqP*&mWgvp*^^{B&$F?`!;EwvSV;8;~@{N-C0Haa@29V2%L7U7s^AQ%h7yn%!@ zSqE;ST_K-89$l}h|M8u7ucX((coPaVdh>Aq=yYTxRjSsDZOFhR;ev4>UTIbe?b?@r z^94^3C8Pxa>dE=QDoYinK1eVGyD(OFdbU_%y;}g;b6FG^=NM&KDs5JN{HJdhK3ogs zp{>XoK#oCWH4i9iTh~0G|mLu?A9?M|#W9QBxyVCA`1R8++cW>;z zQJnI=^!KG>19`x%7pK5~_h!u-Wp6CtJjyB?CyJ)AyVriz0hX07jSuQ_HW3Q3Y^V%u z?BI@9JHNUErTdI~H%AIOz!W4pHqa4?;68-x#3-B{=0n7O{OAC(>ZM|6HfNoQEF9L% zfKvhOEbPEXCwG$iuL7dD<8=D zK=Rpanjv4XQg5wg%7tRfD7G*YYj0KBMFqCW^J%OZL`cDsKxYxV(H(iDPtakO1m-z9 z!s;Tq+l)-Y>Oa1O*ta7uR5TltJ4h$HAx#eZEi?zzX-f|#O<=$fyTvUP%L%Ero%XjH z#S0guTDi|{r2gn@#8@;XaoDO}x3(6`_deSFgray`FeC=I(RT)H;&vwc^sAj98b776n-%B*VeCg*NpFK46?vJmGj*o)TFqsz#Mj)^OR{$=_)u=U6=~M_JS^l63 z^>7$XlD(z2a{k#T2jiZ#@4a1z+&~i+;k67j9?SYxsgtR~E0!A?-4Q>_`L zoT@^0d9$X!5BFZT1Z7jmt_h1vLUmKnbE29O))&pCb((o&ntt`V&?rDV&&-r*R)kh7 z)rDLU<`Fw+iDB5xEno{@8XbTfKbcm9;CLV?t>?9G{gs%9@%28n)JFD##|0O>7!C?# zuUon+6jW<1h+A})Q_wJlfEl_$i%dm9Nzz>@sN^CH+O%X2)r2!Gy{cjn;`4jea=TrD z>;&w7!r~`+MM83FddyGZOAH&X{r#|xWaM)m*f0%*fn#8Ay9F!IaQ@A0nvepq1j!W~ zIzjyaXHaN=MA42udLS}2Adl=F?Q3Is!%PjqjVVNWU2~rkmiv zv{S7sIRzV&Se3&<4jcsp;vxLjVb1lj z;Ro)C5%^rw=jX&mO`aMwJz-3@&5c_wNfAdUV0pB2>#pdJ$j2Tu%Vq7tw}r^4{M;{y z6UQ5Ki=Ep`CM4G*UZGMo*RuwSQBq){0K5L!soySXd0nbXp0egDb=+mio9oD_hP+u9 z^QM$-iW}v2UNbjKjdZ4vU)U&Ly8X)Mo{LBxr9+y_@O%Ylv@kQ3$z|a2P=)0tMRP$` z2G!SPND=i9510Y@JMX>r-~IDn3yubGv;ub0-ajp<5Trvk$B=LYDV9)hb?^M?e!uqk zv5;(f?5#;3g-%Dge$$6;P|6#3=SX-_meu(MX?VmvJ+5B80)HaFG8;_+<{Xf`Ruk^c zwZHb~IQx=jPDlq1m}N!#a6!ZY5&8x&aZuDoJ@Ce(eToh|U_ciIcDM3%c;JKdPv3>Ufu#O&sj(qApie~>QbA#i8PRY5Kp^6N`m|LTnk@2A#a!vHLSXN3n6qrdUl zSAON?m*T--398{EGwxVE%aFRL{L2U9qJgReP1Y)!$iY8z_i zSi;Hfda5War*PsaMSUg-ock_1MuZz@9rX z#BmWHcJc?&HjW*zaqNJDMvnqw?Id>KqcELt8+mVlqXBM5ITP*;JIk;)b}wY#8adH+ z<+~Rjki9^gf;0IJ)-#NcsntjHUYmF?-(H9AMmiP)e4>L0+PUe*JMOF(;F*^dnRWv^ zi`OeY>m*JB!~u&krLj91gWFM#6uW~wm6ec@;z@Vl*<=~iu1POD)|)xpjs@<%1>iaE zp#Kv*fNYO4%Gs^8m6Q>+$?TgiVtb6_sJn=Kbb;+$_)xd#bdy`z@gmZ%6;BO{l-+V$ z=qwUpJ|n1O>#mS@M?>+60d;X%+Su~c%0{u|hKWFk{c7;T1p9k+oVTxU!vv7aH53-y z26iH~d`^@~BS+#B2SVjSUQyZ=MS*$tijwy=s^|~#h~Bm^3irKCRq3Y;=PK=n`CO9fCo(Jz=9A&5_HAgRNDDeY-)V_ z``_$9a+j*GtC@KPL5Rbt0qCENX2r7`V*_TDc;I}a_TashK72@Hz2A9qyY&d4VG>oI zPxofs8D-98Lb1~Gysb=-6TtY4{ZGIBbE*8s`bK(cW&*1jx6c=jMh!vs2Z9iuQ5*GK zKIiw+<}21?aFqrb>`#97T=~Om%JMptgt34v!rxTKRh7LpPoUuqV*9;rddf}mdXy<+ zIoVb^Vok-8s?*3dTes52rMp6DTWDp3wOhi%JLb}dV!JG2BMuYFL_{122`dYNq~T!4 zSTBpoIK0?)vamhhf=Nx7b#nJbTMHYQXUmaj2V!!tjq626@wy;_k}pcppeycIYYm+3 zc#^Q}1MLNv{((s%50(Uaxen2wPOaq*z}O;9w!xoZ)DQPc4eX<$-Dr!QByF(Pz`Psn z0^ikwOjZ$TiitkLKm0(&IKXiN90d%91-0&qM{yj{sWu?@4-tGc1djKB47m&RKq=^x zf*u*&EaY{CeR6<~LGXv62bpad;$}mAaFJ#d8?Z(NAjTAgk*G8{M`q#}C?_cnpw%Rp zv2|m6w1vEIzG0$}7?-Bo>kh{Jl}xo>Yj~zcJ^dl*=E7{e)E|QxBDm>=3N;3WJT_^p z-IE~JHU-`5rdiC%u$mR}OHscGM*;A90X2r9xR6>E6j)p82+#-ExGWAImY@2fAw&f| z?+<1nfCXKB0rKZCaZ{;xly*JS%xBw~vYyk0qTnqFzI@xA);%f1U6lN7sCmSb?qr`o z(N88U{rrIB9xqWA1c;Jb{$IFnKf?sf`qWk^D3bZgAcm?=;KANP$`7tav zi6WL{Q?paw`|)?5f8~oOUpdbAQ)mDoj=lG2*jR&t4HWA27z)Hm3i1)dkO*o+Sir_% zPaI^C>%QGBJR1QNj6%&=-w1}h#+~b8J`Z^jToG*y^R9I2h%VM> zK-8^Mt;$b7Bmd$r3h2X28}L^MDNs5n!`TrX{$TDPlMEPa@M0%N6XZx(is4X82+a%# zasT|vN)I8LoooV zEvl~ed%eH>#PcD|2)p$!yzn#>d#b9@P>gp!`0&AJA9?B*PNGu8Mw>6})d3)Xf7r|+ z1dGF6Msq$grT_$%IS?o{`_B%#=mR3&dFS4}zrOzPfn$CC=+d3##l@A4eDUVu+O3t9 zwe4&yo?O4Ra_z4cEhbYYAV4(ij2XxgZw0#$6JmqDvyUE&^@Xv+KtHS<(_7SLNH23LBI_`$tSB|2cA#-Ms}D~_7`t$IME95FWBu5eoEIEr2mNj; z=iQ0ygzpO589Ct`$RX4M-SXQI8~Ogl*p<+k%9-yjBF5aJ0{H+9c7qZ{Dar5_Hga05VoUpU|P`9JbXBCqb7OX*e@Y06}5N14N%DU7luB<`? z3Cf^G+icZp707gVT7zQ|p#gnRwt4BSD66Lpume_oIV0HHvd00M-XLFs!k%}d)`A`` zZ11eDr11@p1%t!M7;X3A)Eh?MA^0qiYb3Y_f<4N3G*WNZ6$#qG5I~SBt2JzG!ssE^ z51DF1DXWq%05KHI;>dn|wg&r%La8Y<$)KLOp21F=bl?#kj(%a%k@UCl2_>gaCM3?u z9yKP7Fx-N<8*Gf5_%^!20hAS1BlMPz{bOwERyMb>4Jj6il^?!^#%2AYS64g4_{!Rv zfqGr5*BLEb#v8^&Y8m36jl8>~QG|ury;F;_KPm|&cc4(1=icp&UHWV?18Ue@)H{8X zkze`8Uw-rLccD4hm*}h1>Nr!9Vb&3{8val)6j2&5JXpi_HFQMa1Yl-rY-%F5{-d`I z#Z**CoA}+sW1ZoNN^*2FGO!lxONR!UiLv0wOnh)E5FTji?tHbKtHC@EEdv^bmU=5| zTw4}W>%z*sFn?WGT7Y|NAs#cUa%Wq?($7?M6ntQY|)y*5Ve&ph;r#7o!d9p3gC<%ZggP=2kj+8k=uh+P8~u-Sh%`fHJl7!4h9RM z0rH;(K_pda`C&pwhHElZhPLg&H%u#GE(Dw0_;U@$I)Ya%)G>{sSlWrlk{ruJ+L#v; zA($|Nj{rz08QVDnPQDdVF^7j$?AgOZ8MgT$T?ALbq!JD9W_~z@?cnT!=Jg-~388w6 z7OO$Ox<*pkCS+uySawRVfrA!B?V$sJi}GS?53SX~c^JG4H%stWfaQX$wqTV=3WfbR z!ZKlBG~a69SrYPPy{efWFOI@Qm~UNJf#H869ESN+eetdwPoVP~8*A=}A9GM+IV<=e zq@;?$h!Bh$mzOXTm7;U6xMaEGGqK%m~# zD)oAPBhy&je(JG@VCxg+cLV+)q|b^lSm~AgKG;8?O>y|5h9-8s)tEhc=*q&4U?}m^ z|Kb;jFIW>%Pv)bhJ34lbBlgN8Od2Z~3+%@l9c+yBl5uK8kuHWqH>Be@){p`PY8!T* z3sJ9oo3M*2mGkX8bMTr6*HMkN6=`t5JwBvfyWt{Ru^mHcp!tjjHj`_@1IJwF&P&IS zn~j#XwkB?Fp^c^4Q5-r^AHyO6IZ{)?s!|7UBr_SoG8noB5bW{J%%~OR?%Ec{quy5F z_u?OZ?(={6oBzk}|N8&(bB{fTHS5Lv;)U(Cchf6Zvs(o?48sS5tW_C$yZPB;PYwoR zE9<#Zp>}v?{KU*8iZ+)?Pd_;Gi@*CK|73Kl&F=j5vGdpBfCXe+vDwGCLi}R?h~pN^ zDFPQ`sqlk8`|$Pu@cIMOhnt1^(v^ES)n{}{mLKSyl>=WDi`2f4cJh5=cL8|;SQ}6b@tsq~M-+Y+edi-5 z?ySBY%QB&^Pu?RP*N*%g@Ltd^UJpcdusV=+>weCGvoFPc%j6`8@V*(@IG}KU1jO1n zJn-M1DOIQ2Botu7X5R|h<>Ucg02{dL(PkO~>_y%s+0DyNhyYJZx$k?SNc%;hD^V`H z5_PMaCMjo??@W#eTJiE zyOr8*&J6nGM8sv(&4$pfbj)fwkno>8+3%?t6Q4RAJ(Osbl)^i!reaF@^2+xq7LQEF3gs5OscQK~J<|vWy}5J&aw+LHd^#zSK(s>}flwth z%yLt3BP(nkdSF&j^7+iod*a#i!r%dO>kh=QVbcxr7lKAJGvWalfR2rZlpzJ=!spi& z3Ay`X?Q99cF_?1sBW|^nZI!Z6oGZQicKpjP?PztYZoPUtncailH$*Mc>q(%xSDb?CxXs?(;wj0&+FbCPz6TU4zLHTm$25AQtr$vrVNAyf$KC8T(j++nS?cdeRCUT*lCzxz7E+8*x|(V9I6P4PP>|*MkfTMzlk{quppC<$p|*` z=^OxmK@Z8cAxl`Dg0?Hd8WbeznDhD`dt5p=1m6mx(!{PTny%BTnk1hL@e(9Jp5)mI zO90Fdq3a5e23aXcD?wphA`?fUfe^fjmDh_<9tgN)IxsObZ^TEc z)XO4tA;u@6ZefK27 zjQWN7JLcw=)aNp)C4If9m363xq>3Hbs!>gMT@#C%RC4>|^Ns&o4#8mw{LNt@(-r=q_nD*HvrzzQ`&^DOwohyqWR0PHkZJIc z_BK&B)f;z%IJntZlCWM4!-&3)bK2l$o=zoig!t5al7Opx~(hkQKj#4F!b3=xfg?Ds7ba~X(Eoj#SW~R1p-_12D zrrA0>GVz4%Q@kHD`<;j6#gTX7P}OyGQ%N36 zdVJ6d%2k^M98%T`%?bpvV00H2B%+BZO!QrQfBE7@sToPEisFhP!PTIA>YQb8mZ;9cWkt8Vo)kHhmK6ozVbM{o@OpD#g9(V+mJU3s*G2# zT}H+T&P&2z5~6tAzLmTEmv2rgs^8O$&crZ#PAwKw6)0yK%Zs^AAadfR6L?GV)KqWI ze^y&oKM-SU1FE2P0nX6uya^5lfuDfqHcQ)gwnv8s7nk57xi!#_>IQSU>bWjZ83o_t7#Os>YLg8m6gSeS~@ir8y^hoTU(u` z<_=(c6}xC1IRb+!WJFzXd*DV@936!rn$E%W?3~6PO`c>|xvhfL}z*3fhENGWNq`x{S8)(4B~zM3u9e?))F?=ZrRiSUgL_azWpq zE{#7Hck;}^?|l6&uQxE*-w=^B{Kd|Sn!NQHlr8E?H0fP!*tyTHT7hZ6!EEaFh zb>K6r(|L1w@!~dGOM?kZ7wm)@4b{MwxSnb?Zr6(!vfFoyWg+ID934bvr8;)zNfXk8 zg>JnCWnmFBf3+p#Avt3T(}(4Q$1xK%wzuTL06CT_7GX`u&}7W^$Smeco@Uq~FZ@hl z0*xAAQKyv@tlhBf3aj}Y*vBzC7#GlDR&ublixU7B1pV8X#6y47XdBS( zfHB@?s{`e780smdYSo%1W7LccbSf2Cqyg8+jwi&zU}te=6v8N`(r9MN2K+5m>Ka_i z1p`=U>M%HqsRxz;YdDXdYt_ddv`fO}!@4@Q^Wppt&)6X#MP)d*@cLo_ zSQ?cAa)T^cL2m_?bUiT21OYcJ75sxy=x2akG~O_?!5(#~?3x@m;AWu)wd|M)b?w2Z z0TD8@ZPAtU6{kU1ANGTL0qsOm})ddON% z6`{Lb)}%~ZtOfd9+y_diGGmri9V>k~a zj~p1-d;!467IpC6hm|@#A5b*zXlxNTt+Bv@G;nPs!oh`ShR(ta!hd!kqB_K1>LIy* z_lF@x5%OuR+3*Y`^kNCCz`)tl^()uK5YK{G5hyE^_bY-Z{D~rRI<|aj2MlX zo2w$6RAeeJK!v3n8O&`%tg)y~Ps*`AV;dUb60E`MFhH3uxA7i4b@Jxh7v5dEe57ys zpZwe39eCkk6Gvgt;Qx#F-~5YrqW-?89ytqpmsi&3FrKh11()D%4t5Y;I{L_PBvvR@ z$A^dE^5YwCzGq6F0|%xTS5^)`F&>5(8w!aFm82hj=k>P1R^-m_2;(WSwui>U-Ct@L zYJ4n=Tl)9@^up8U9%*MQQq%DHys1p-_C|J2DWCuR6aVO+eP#N@#LS7Y>zD5Q=!aKd z`0Df1Cx@scSUfZOtY~(@C`Yukl`-W(+yCec)s4!9zj$vnF!I6WJLyVcdSK+y)5oz& zUie@>wUELm1_Fa(Qyq`Hq-v!&f3I3EXv5*enPZ8QN8p*~_GV^Dk#06R-&;%Njesu{ zgSc9zr5VHhU;gc%4uoN-itK<ueoy-}<5W5`WnKBSZ=4InyXDS=+1lshS0gm8AbEb9H9jTmXHj!OG`*By= zkHWX%JiwFNMC{nT5If2a?8Vs^vJ1G2xi&Q(*mVNHy8?@%9=#*&u9Wm>#arFQ>gwIz zgLvZ6&f?(7ZU9b@Lq3X|lnL*|yAnF6AjpYWm@Hoo;aPAZl!9T}KqUQ(`2YYw07*na zR6D>a*pED5Q?ubth@F48@(jxwZxrsqyA0t)vJ={5dB92B8O2lWf;bTvu)(*s0zaLree*{%7?hEE88Fb#XE-}HSKN1CPPvzP`kOE&o}RE z*3CO=Vti=wR1(&xiT6AEZtsam^)lMaF5))Z;ij(vy(fjiiR4wx@7!WI9Lkj{rAmFY zKL+@F0N5bR^ z+}2`J`p_ZY*hKY>8`5^U;*SlSJ-71x@4zAujs~!y+bX4^p@;mi=KbLZo|(^+tOzmJ z-iD+)S{;tHfg z`ru8>KFezB;^xLmv+cu2G7^K|<&E5CtKGmE0M@i#?4iL6uwha*z4RX1qIFli&uNVH3I+?uCAMri=n9$IgSFXUI zt2^!^yONM=kNNa^ootMTeDJGfs4Z6*`iw5v!NftnsW&|dpPYfQpSCODhO|$+jpZbH zS%r-srV`L`!?i?Bg?Ug>#caG4IX*KI4CS-=;h+6E=osYwWy#)p>Ufa>8y*ag-Be@uNv7Z$N?5fVf2bq0T4 zLq|uUS5V$6s};2g5fCg`B{AF=GO^L`fw&Y?RB%i141kpn)M8LaxNbmO=oJM<;Tttf zAR%bpqFrY<^pX`3?tw83;Zxac(OCm_skd`74hJBn(y9oFICZ^DN<2D=Nxzw0fy)H} z(t#TVeJ%@gmRe26(Oa=8)=gKjWo9wuOb(gRp=;&z)vc9uvjPu>usP(S4+vDNk)=_^ zL5kKMi9r=0md|9@>Sf5LM8Yw@Qa6{QWpG@oCtKPu&Ej+1thho%})D2^O^d8_=c<0aJd6|qYm4yI12Gi^kX-F zs#9eB?-&C5{zkSY6WU$bg>H3jn~n7?6QL6p!S@5cC5t@B>K2( z^KNQ;z3fppe3|0W(x(5BQ07L2iAO#09Y>v|7p^eq042l-48$cE|zLi}!mGgd| zD4;osI8*Hn@5;-5v@!3K5l6=FeQVzTe zTmW>NlThrw(8J$d=xzt=VK|b3RyW=%kX?Tsz^|Rqj@k=xqS>*|z)#K^%Eg(|5w>&L zTM`?~#sPmnijIxk3v|Z@AiIi6`~;NI-Ak~?z#gsph8$y$m zFDn>+NKF61pZ)CnzxA*Dl7Db~HeQxiN?JzIQ`weFgKh8XSN`@VPyWhz7x{y~lzA?)UxW_h7Bcj1<@m4|&0IiK_P$$^<<`R3;BHx>+E z-@sV320!#cZ*nl=Xq-JY-2<=~MU3fjh2@Q`sdI)V%#hFGFIl6moA@w{Nau5%}h3zOvJFG3?*}@U`SFOlZ%Pjey?bx*VCA#FBa0pmhN{)Wq%m9 zRde}b12*x=c1b%S7(o?sS^&Wh{bceL<8$t^!Is-!nU-(u=@ePDw8%nFGE|`+^ zVvoNG+c7SW3m&v#kFuSwdy-M;E!T22v>1HL)nMDIp+O55=K#$*HrSn@VgAqwX2n_h^>lGb`0WFx!)uLX1r&xd%GW;ud$_>|O zKlldG6tkp>@fi8eLo0a9&il8dWE^5A#;rBchh@6otivf`O31*rl3PzhQ`u0f?K~{~ zw**CZ7n^3b)A0?A6n()9D|hCrIgE&;+YQU>KJtVh)C~ws@H~~Y*LeyOlfRjP!@5hNv2AnG>cmZsu3_RREE2{qZOsHo>}>wfA@dMIN*Wm z4*G6S_{Z+r2(YnX-<&Z#eBWV0ug8zQP(9GcJG7&3{J|f^hsIk>d~Kr!>#2VK zi!auH^nr1AQ^xEczDyz^L4|fnJ1{(^Ze>!bxo3|)Ir}r85V8dkCl5{W#y8*3XVs23 zB*8>%sn)r*^zws`-`rfip4)<<1a!iYU>{yn^=flyVgO22bL$)MFcI{7X^?rzZ3bf* ze<|!&d7C9b*>kaE^g8M?eisHJ*r(4F-uc1Jx$F76mGsYl`WPfC^V=nO;e*23nbT9j zfEQ~#FyC|wXU-j`S1K+>lF0U2r5nLND!^a?ng(IdNS5*one1vYC?_smy6%>xryn^J z#U6m%7#@l?>;Bo&s5 zaCTnyGh<9Ij`L<0uowORN2tgCzacdwM8WnZw}Jod#pYR{Tzm7f`p@5_%r-Tih+1n` z+oFw}&1Z-AtEqDVKm>W4(l006?L$8a7wqOILM*{9wmOS$^Oul!Ub|B5jI^FuC*>oI zAe@@BkapNfZAS_B(A|N_8NqNkDIUvzZQ?c!Cyou=H?TV`Yb`1m%aOJ6+8~KsXpqCX*9hW4?axox8Aw*@}iv{>&rojuC>n325JrhhXNixLUgV zy*bFZ2Yuqt*F&5<`O%)7-$0aF6c6b_z~?7gpvVOsV9@MV9KLQI;Jj=q=3>cs9`n)^M7+I z8|0E*gjG;%4w_>lL&?DaghXNA4QB=ERJmMJNMJ*P^~oj_fCJ%}T*zU11krz4!1_WG z+fBhAB!ys1=z^mE>E~cJUcC8wXnG2|jQWjL$e%#i7?Vy{GA74@#rJNAsTz3`bD5E# zod4j$@F$*^qxiblWY~?TLx60cKc2pEP0yF)z9?-AVS|oc);pZtcaXK0)_!Pz5=ww9`hqU`aH{z!cG z=l{VAzy5dr&C=$^v7?9HdguLGqv7#;+Z~7knf_oPUoMQmdzV^+Zf?Hb$kv;(JLvI+ zS}?V#YYkH>w;Fv?>zSngpuZD_g&8tpZbF`_Vi@a&ywqs_!Od%_!oE_7{x?qM$g2~x29;#Tvf)_Ys4eMJUwKSf^d*4H|niW0`ey^%z{I!0e&95@sL_> z#;^p1{g!;zC|1ZZR-qz5U_D4VY37Gyj-+S9wTPF!9 zvEsk1=gj)zu%yPBA*I5b!{cyHkYS z!!XGKVj>9pTlsBiARtao2+^Rpx*^tz=4Bj!XwqOv6ci&}m$0r;HSkk`7?tT#nrL4$ zIySj#2tQo7lhx{ROn2SpuuC8I$U_0NSV$4WcdOFvdNU7GT2cswpHsF)Y4}h)UeD&U z&1xbfsg+`1ax&l!kctG>Kd}Al_rW1JmYwnbfq{{MAHMPZpZ$la zF_3qC8UuKf(;%Qu&c*`WaPgi`cvf%c;4Zw2L+LD33!yudC>M5tJVHDZocT59SB#bU z#BusM3>B)s=pb;>BDu%L*Dk&fsiQMrcv*@Ejk!gk zqAK&%+xIr3(-W~+{Knn2vEi|Nxjdi_JTi6kRxSluF`OMFLJ_F%V|^J42h-K+My?q4 z`QUF6erMe9q}Law$}vu|8>=Aw^ccsh@BAfJb`gjn^g#FwPOl(~X*^C4vP-!SF3cSm z9m%=!2M>(X5*ZHiV2a4=8J>zE6*Is9?H;CN&&$Ec?)>5GXVXfnbyx<-4qppFc>kN1 zW=6(uFRfJ6#=+UCr@nG#^X6vM?;4)zucoV;%iB2O9UD$S#iEu?c_xx0Uw&GKXTl#} zFTHt7OIP7YBsM#B{((bxYI&idPr9VAr#&2T-G1xp?9<2a!KL;jS0TNcQkD7pmIWw^ z^|Ef4*;RacYwrYs@#vTAVrdv@t5O8zg!ZKBrXX}&M1=Q#_RCAiqxdh6wb7hW_Yd2o z>;Uk4?R)>kEOr+%FNrgqT{b7s8Qz=38SAVR&&wj{L}Dxg;Qpk5U{Pc3XgvZ*z1?v! zB})qVwH9 z3r^`{e;E(yHL;^ejskovg?$lrlntao(9uFjvIAjHhX6hhcH!6=0nQPK?ENoCrr;#U z?~$dKCBY7V`k`>df9;zWCXB#?ephyF{r0VSxmAAR!3SXGp>}D`l}f`LL}qCzboOlM z08~J$zv;(Bt-ks1|8!jTcq0)U-0Lug32n-9MZ11m9?kR*j1GKpFuS2IUR_o4>&k~( zdpR+Hqx6WcmR2g?pD*O#tfyY7)W#p1#=*L%sjfjT zeJC;HHa(3hM9m=+j-y~W7Q(yMgb%LGOn&~}#?i@vHU!8UdN3F$twS$W$6Q6NGztX; z3c3&tf(B;2*~BC%931EfD@Mp0e)g$iLFk-THoq=j4!OlHm58sx;bE0_i%F0fyg@^%Zi|O59DzE-6aZ? zoDt>UU_9-W`)u-PbL z|0{-7kWz>9sX|53pnK?n?REkC%N0{wSJqC4T>t3o;Tb(!EfvsnNbZU**f$prn&y<> zwNRJdPp!Zt%8Q3bYN<`Lpu+1HDdeV`uA~b~EHt?Ud+LD*%u@>KWvNm3!i;w$01Z6M z2}ziuuE41ltj68|KT z1Bvrspj=Sum1bZd0grlKh|9OzMy3QiEgrwCO_o?-TM-HlE;&HPsEh`b4P=^9_r*l0 z94xIsszZd$98BXNLW43vE!QVQ2cWaIE!Ly1k>LOw*X4?x7L-k(c;JGWf1FXcrbdF# zKV?Ee<%27b;>Xd7DSJ$8p~KWwnF+1H+fyQ%mw68FqhV9d_F*x>u zUj`N0wOZl-Bknz*BstDA!E}}7eO3GE>7E|%0SpY`L69Iw(Lo|*N$Mo7bka&Et+cC? z^j6|ZyKjwFYxM3`M`^X9>^+IxBSj~W1VDiBzzhcCP0#f7O#ANgzOu41EARUwGPAO) zdq7C<-n*QhtjLHz{)qS^GV+gz-&C>C1&d?m%g}X}M-pbKA;Fn8d@XN?@;%3}0JCPV ziS4E^H6m1WY#<1bGJ>;&LYwfHw3bGG)v9fwWLSwE6X$i~J2&THRceSd7DMCH2}pD z3U=8q2!$EvMgd@^A5Xx3i6Y^y!pkT9fuI$RY0VatPr$~v3YGAYJ>3oHS7>-U zuvWoc3p;aDKx^TXI0%-+Dg;o{;tw2_C0)3GS5Eww_iU~D9Y=HL&FW`rd|crPUK6o&|X z+5r#`4mg8y9(XjKi1L>3t#6zfP9*P|nf~qzr64pSU_6$zRN%2u#8(WjFv+yh5)IP^ zLrQ%~0oKd(OPCNt0r!DL;1R!;aO#U^=1;E%roxxbUDMm*=*Yyvsg*!d&dpa#i$(bD zfXlpWDvqUnWj)_+)kYt`*FQ6)ow-{2=IP#Q6WjYWSnKV;7I8Y-LzhSs2&7W!U?2~J z6s%~cd@p(WVSCt6T^Wfm_w^I|Gd9(K^8oYmKvaZt0gN8)RywhsUrrG>!X^+yK9JvOZxby#0$@1LgJ?0ECfK!GZC%*3H%jvnxmi4_sR!2GaYF1K5z!DV$(< zQz_&$iNfB?Z4U=<9tYYvPzp!TNA5+)#yxMi7l}7)gL6V}&g(w8$lapdfD2;>Zr3!P z>~_lLY%c!I(VL#A&YntwupsY1#%qR=EMOzwj5zSTo7Ar z4X(k~YT)r8oiD+9ct@|-o5FZD14AQ1*aFK1K?&{Z4Hcgj@T+mZw11ZYsoeENYzYex zOV%JAB#1bI@3i3(7KVT1BK%sleE4Xpg4Tj`KTO37!BC)l>t^Wg2Zcxo+n)Y#M2JL! z!_(P)yQ*)UPW-?_*nOh6lE2{SUG|zeW0E}#yn7yM&@k{kZW{y*`TWyQb@I>%axbS8 z!uf9SvW%#$iyynfhfYj9^5mVbyn61zW5-qtxq7D+g$Lk35DXuVV*+Z(s%xz(dH03O zRtTcO(I$kgmYR!C?4A09|K+HE{_X1JjX)f>Pau8;8o+s$(d`&Jb#qb^Cd1O%eBg2} z5BB!GQ%SvAs(~+oM0!MpWlX8jhKv??dGp*VjL=JpDPR|0hVv{P2G1>MBP3xwrzZdm zd%$q>98k4p)2~B^M23hc6Nb2}yx%hB4nxPlmX6I*h$%bb;jSg<(l46Ev4sWt@XGVG2p}rAJ67 zq0xpQkO1}5yaAuSB778NM)6)4FTI3?h&(a`XJ`qt5GU$6o2)vejT33Nu(Y< z!lb?3fxk_Fy>@QA=Oy8T-buO5YqIIJa$xOWq+ta}vRa~XYas$Y8=kP64HzmFB{KP{ zsD5od2Z=892zKxxaK&G7tg^}A56q6?ycPTX`EvrPgX18RP17LZLumy@iirAn3z{i^VOD z!O&{@QsN)`V_!|+rgHEf7q1cSd}0KVT1)kpzx2xV_|)S3I*h<2hJ$I_~!)q!e5zqh{t?46%)2e>T^B3(9=;o(hoabOsFE91tykqErgFm^M% zW57k?1^`Yq*$(+YaofVYV`;)@Q_?0zi4A7} z5(_nOp-KE2h$mpD@u(KAEdX|eH`PJrslJm9`RzY1Dz;7q^gsq4(~sw6I2qre6keJG ze%m?&3`m@+v0skdDPmKS^Dsb!0lIO7-biXM%j0I`sdRU6{)2wqe0|KGiNGzzi_?vy zfI|=ZMHTp0A8L4#n7c3!O|m;baOeJgL72fel!jE0Wpok;v(c7T`P#SJS1)EB zKG9Oc%ja%^M}amZ9K=ZY%F8{-5386vmsa%)=Zv{aQGe;s`-Toal%6`~AKz<^%~-<| z!qAu&3syo_Eh@H;oyhDw8c$A}nJH^*cQ`!c>n^UYK6|z}Ul!y@;X?V9|N5N^PhX1# z;!qijPfcf!Ci`QUYHqKRdFxoqSnJR*Mp-<#4X2*oL~r)YViF^QE|*?;*Yc zWYrTg&Tzd7Qzt?Xoc*Q6!!(4t-__!8+ZY`Nr1EjUT-HsjOND=)rAGQQy0cx#=`b=%sf zfM-AuU7SJAf1P|Bh&?fc&NGYgj8|q*k?2bR^p)`-pb5r#bbblU8|IIci+x3?y7WgG zMd3$(_VKROUM*F3&&+v6#1R%uAiB1Q%2tm}ElBWUB(R`Uc9SjXn*6Yc1@{>$y6-G+;n< zVK);q7-_|W-R}9v##-}>t6zM&b@D9y$H5Lyt%gGYIJW3DDlI7*ZfiOW|HDX5ucgD% zd z2MyH zAtH$f0>Tl$F&z{p{ML9(f{@ElN=zksaCN1q4K-08IT%ib^e2w&_=QK_5B+eVr@%DO z)ke+-o?nOK?XJ{;y&5>}L)`;XPp-E*sU!|C(yzb$`lo;Ev)Lm|c!q{C9hUUx6VJfr zBcG3E21l^;$G9nH#zG2R3#gKp$xOfDgq3qPnKL7zzvr=zdyB3PZtJf|{>9jgF zhQn33EWv2hD|J*6g<@-fn0`zr_#@l0f(3JUcOl@!WUxK$YEOq4$UE; zsF^-hf$s;5CP)sEHJkme9=ngWRxaa7t_2Sd7UpswkuKG$1LPbFseT_23DtKY4K+5D|ElzWSfPor$D(>>k#1SdoQpLkQkI6v>=>W3Ht& zhNp(xrDh0@5K68gnJA=L|_Ai(fDxq57-Xg6f!KiA*#*1lhUe zMt$nu{b&Y_I#~N<7b}{LAg7}Er4D6xJK#w|kkQg^8|7qI9|WyqgAWi}h(6dkJQoA^ zBCwJ7qqc+wvbgDkm2ne1&FROnjzAV3L$zgBAHWH57#Grs-u{;;ynV{1SQNGCdCS8# zm0`3cz%6-s!?&*?^~5&V3CSQHHryF5Zw3+pBp2R`#SQaRmqy-P zNOB($7{Fscx|K$)oQm1ibIV`>w3^k^j-?VAJVm-l5MYu07!ML}eR#AB#w+7KdNK`A zrJpj8#cmF(%s^5<4??IOBL#ILTjbcOZWA16-d=B$S&n|^69w4itu_@6R2&;4g#)$y zFY?+oXQPGV!>6BZsDp8kR<7Tg!XE2TeCNFf^WS=9`TWAvdk+|Us*S7j!JZ7irwOs% znZFu1I5o0+=E~cz7-yEox+7{b3Q0;S29w#;Oerk%Btu(W@8*k;rB#B#u8&0{XAd&6OLCnV})YlA+Cp+L6|Vm1mv^WLphvT?2un}KSIFhB%-&59|76*=XHIeBdT!hk!>zq0{@ z{vtaz=pu-!wsWhg%y2sZ-P2-FPq*i8#%A^|y!ChO+2!DY9kg==W)2kcG|v-sTFZVn z$1}1z^rUo7VKzuSWCQn0QMla5J{}fNY1^jq1P=^>u}B_A1+qB_2;puvl2CvAr{4eH z{_|I#e9uE;W8=A8E)v2j48jfpY!rf1>|q-jXF&?So4r+SV|vHXfBO8d1=hdYxOzF6 zhD}YM9P!ENAoh46xG#i)0`ybMP5-baUo8qNtw(l*Us&p$&y`cY)UhZGz-Wzv7Kx)v zr@3&vOYibsH@*mkCut90$SpI!=USD;R;b z90Qh5p;XXro0=$r3&$yjnuY}`tSOt=l!agh1ejr$1HV#6|#H3}B-hZvcd^ z;3xpww}8M>2e`q5P;EsBZwsAkIrst#KzkCp1myMt%L5Asdf=p?JRDA9{~gj-I?SO8 z*iMf_+^BApG$Bs@!u-%4#?cH`0-zoiBvME6qeY5Us`XZD;@FsU0`?^rg(lo~2?8{R z7n%?R5_M={n3^FsbUD{Bb+c_mAvZEVaIH;kz*OS?M=nR`U2L?oacqB!D9qj)7D@9Ey~yl=rQnhO(o1H)4-AH)-Pej9 z*u`V|kTxpD1Q8|EtS*|o7 z5j31lB@?l(Zo*j5^sx!Fb@SX{H=j4$o5TphCJP3_NzLg?v3*i+M#&&{9~h3r{ke@s zv1NVbt!oEnroyqPTJNB@OEv8)fAadT{l_OM8!L};aJ)d;FVL)d{!RJz=H0*nUa z<~PX|0qQrIz;1tSU-jF=BgLgYCyh%2JD!g}FNV!+=-14F*;+ruxL}0V?R!Q)C*R;N zuMc7esQeFVql;t^yYu`G*!p$mJ;|!F%{XwI}&s z&u@vDF@1i?+-L>Dv5D!Or@#DiWGs{3y}Q>mt4kZPR3MOv6;|>Q-x_!bO;cyD7nT~0 zojZr|@sEs#{Vc!#60ih|1=}cK8zO=3 zdbM?Zxv^ZWm6}i#PCR%xk{K($d81dT4`YTNOW#_|r|;gAIShLv;Qr{c2RWNryp8|9 zo#mkubq+W(G=E}uCNLD9U0NB3TlSuG^4#2Np$H3FuuuUdXPEMt8XsD#m)G;%EBWGl zu^0r;j+q)8nC-?V_wTy@@k4@MpZd`8r)D4fAK&;=sY#+L5Pvq?So?&8Ske$Wy}YKr zeM^~1LkSNoATnP`|@2H&`?nY0-+M z4kU|YrJ=R`TBmXK=E$RyutK@|e}8%AU;h$XLqmZUVf=DOpA&K0XqplLjjKP{II#Eb z5PIuC+649PMx!^29kzQF3?>PpJoeFJ-~Q?=7q48~zh}4B(b}yB8V*T<1{7YU1kBLF zUlSziYxtF{fA%vgOrXD{Fg`8_A;IStszveo^;9(0(r+30 z#{DDy7nj;+R?Df$^lqQ8yio_69E2w-_#a3`dsQ9WJQiZT)gsnjVk$(Gfkc*OVsqH2 z!GCN=h^U}hZf%e2c04jAIj5Z!_u{VuW3W)rHZ22|eHN*d&ZVC*0LNVc=cl!pw- z2?+3nU@a6|{*`tlD0YioHSWiLJjR>`_rS0js!Elb(Ozw(M}skc01EdwG?4rldXm}b zqM0ywM4g6nst}9{!gr{N1tg?*z`cR(g&>Y~^%lGY$TOo>w}p=ZxhBP+hfocz6S41# zvppOFpa<}srY&QT6w3+d44@9Q1q>&_LeC!nHw+$<#-Y)&G_4C|-%hDnG4)6ySkG%6 z_y!KiPy@!o2!~s3^bu^Hsy-9y6SCAOwA4%h+yDAT2`-9_wy!Iia2srvFw}c8-VxOg z^E_6*B0!!igm+6Z)|aJO7-ck!^$O0!gj(Aub;M4uo@+Ny0mEOeV?O~p5|QVY)>>BY zK+w87NOqq_V=~;6WA`AGBCGZ|#zWhn?SR(@q}Nx@h-2f4hd)IJ%0Z1(f(Z!Vq> zNx_X~XEYc#4H-VsEu475;HwDN(AFdlbM#uFR{WR0|JzWOCFy@mG1!G=EA4H@Frqk5 z$kUux22cF`+CIy6vA3Pds16vIirHwaeD#}q_Z`F-upqLSUv4a|L=@CqhS62B;_8D@ z+FlT>JUB~eyJFGU(jlQ`VGvp}sa3$y9+YFqxrBxjAuE~?LlJno=rp=k%Yf}FvNsQn z4onX?Zo(=xovB=#BTsT@K6Eb%Ex98!sttIuQe^+JeZykYfQpC;aeopR3ls`Pj5R;> z;&pSWSdJxwU8v*Nv`{FTiKP|MS8p^EqcJ#ZCi-B_`VXbi?dL1ZQS_Oh3wKbASR)Ms z*EGYb@5F&g=&i%XR=}?YRTbt0Qo;1X+2wEi$@!1`%u$RMTIwSkwVeKO6u`t#(gelP z(lF==mGgzuPoE)282-?67f!+PuPO%aIyTuZwsI@^a40Z+a7DBo@Qg+`t{-@ZRBxB{Gi(=f+r)+|4R?aV z78wI3Qg8^ni#cM7wl7|FZQ1};R?hs0r}*=eyL?0Dk7OW%Gu zvYZbj#Ia0fX}ePxZ*?VY$1~NQ9z7t+RAt4Nf78z1rygcZ~kvBYLe? zzj|fyjmyC+-65!SO{8R4?1Z~R$T1MRYeBx9ezg`h+7uX6fr&k>uFY>Wa(Vbl498QA zLQ_vfcYgW_^~fZoAm?AbnJ-$2v_CnVXr+7i{;&6;uJ{1cSHh(cQKH{8)+B1C^A6aJ z=TUY%A2SRGva-J(j(tD;(~tf4-}vH{Ha`FD)qD*ER^TfNTcj{6X&QTXPfiOH-+tvS zs7h+02_;R%!p^Xe=$hqHtvJ6FnTV;e$RqE6;G5rjAqOrELe!yfx9n3j6PB~PMQk$G zELbX8u1cdY_H3ZqkSwP?Hds?dHKC$sw5@s*x^g}kn9ph8Ch?U9L&Y}r@fpS557;Dd zid7|y?`Y4|ns9ohm)3`m9l7=VGtPTh&IxABjSG+y}Eik^}J7T5c3q>S&>`De9a0P}& z7@rbS(?V!M@CStUx{#g_6BkDyX7kFdB(~~l->H1()Ji!z8i%!d4a$o_u;ZdttP8Oq z(G%*fssi6z0*v-RvLY73Aw70qVIUp@MTOcx15z|PHpsCbicv(Zz#o`w=1LVE2v@-}LqoKK4y?eS!;u`8+>GDBngna4b{q8)AevOHV(BeL zRERLqApqF8x{eWsK7y+OlKi2?Bi0j0!7!3B#6)-$2>VPdR9aXtfJK9V8r&z4`?FLA z3l%w*3U|BEGQcLjK<5b%2O%*f*=%b;2tQze>pi^zuVXz}L4oBX$V%a~16EMPq#sMI zUPr@hASc6OCITx#y-tVJhp`@j?bb?3nA2!Mg&k`ga~K93-Rg}V3_HQtQnlHG&*exe z@x5aGdb71BAm8iPXJm6C>zmx82I4&#PQ+6|0ot)xCN{eyUWGRfT_$Rs*;nLU2SRt= zH#sT&RP*Bt|7E3KCo{cmd@GdzWLU8DQI$})XT;<2$%(0Np8V#I{o-d*(=lQSL0O^~ z-JH=(zaSdXoPCkl2)2hjOJV733U>0~m%UD26x5fSBE63Y+a>Y=#yHUBr(X(n%*d`C z?YG|$m)6Y^^leENjC?A9!esUd>jX&hFe!eJ5ro9ijjl^WQ2|;3)rJ6zxv=n>%Uh9* zbZox_T2G~~AD z|A|(-?KVL`B+lM&YI35p$;>6EOFG_5jDIKSGpFZ^h4vl0$0m10a3XkdY5ktvyCxuZ zw+452%Fdy&*S~dncvt$K$H(z%k#80BIQ0oDqyG)XBhoonAS^$B^Y8!r^JC*<8@1x8 z(-&1W@PQ9MP+za8iGW^d438(KcaLI$1zT{jkgs&@R$-%5sJ26i2)-~_!{!$%{w~C& zV2nsHLy885#q4@z@Bo8%?#N`fVDGtnn1X z$BZMFv1x2klk5mW>%ee|x{pLpMnN7=kI2aHEITik;3UM%k3|_Tn6LThcI*cIC*(-187`$H=dWo zo8U$|0VMJYBi*hN$1qS9;5TDt_&8Dw68j|)$P+L_P1)^wav;Qdnv7(E*mAv_NDj00 z?jqw!cHP(mN}@kjqFWuRA9@I}>~gyVPgGfFnA&JrY(FoHW%=w@xVg4Qx)tMS>2Ux# zgK#mhC;P@DSq{4(Z>k%=xo;d0Ruw9XHJ>WaMkHc51b%pnyr`)}_m9Inq;o4n*&QSt z6}uBM77cu?Z1zBPV?)HrV?O{IHbbO|kqck`d%4-uYxoof7Z(c`PR#}6P%52-hLlh5 zfp@t1!u;&H4T#H{QR%K<_<`tq_AA55__0Ij!+V;A%KVv|kercwR%J0?-pJRBwem&< z+fO+3l!M?>aPHh`U74?(znouQ?`8twonzHit+3WC=+gLu2h?on(%-yt<=KUJd}3(t z#9LRcCXeqr_S8{(vct!Zre8)nx5=nF5sBh?JK3W{O@gM&C6^mu)TX_sD2+ zd*vnsE1)mXYv@J;!tHQG3qy6-cNBFdVS=Loob9WT5X3_b-3rBGmE}Tm_x|NqUe6xC z-#;@#O$2?21i0}Q(*wUiKnhR_`(-p?bfFu4S{RAkp-Twdi_$2Y8^HrShS0HVAk~H; z#FX1jr7&TmSQ_z8ii4g~F-YUtNI;UG`PS=ucFv&JYw*RYb)c91(1G0-UwgA833Hvw z@c6{P`Qv}%TYt0h{8vKQqzwC@2rG_ctyEe_kBiwoLh7Ip-X;2yq;vsS){&rWHN%a% zUab0HnMV^A+F)XPaLc2bT@V}lmGFWGO-k_SHD(hHRVu>vq*nwsuF*pLkVFHA0f|*DhXBuz`2AZ_sd>dQz$buyVR;S>`vB;*K zX(A`FEm&id?mkr*ay9S*77Ur?Cf2yUKnRBa;gW)g4QrcNf8fH#I5iW#u*m3;0k?F# zFM4vN27z!j6!Ys$MFGu#)_?|I7NQu7`Js~#iIJn?dbtC~%UHDp;k~cb0rwdW1abwK zb_w~gm2X+))fP|aSkHgxMU=-U}l8D(Dc8PnH1~#OzVzM->0enPi zu#+T`By@940Xo=?UcIQp;%K8K7Hg(25?UA4?`)K!l6gEOYbJd>1m z3`vlB3WUUDSc2v~jOl`(L-&A6O|4U}`wku#Lh12+Q{6mV4xCM58(a|fO&wg<#Y^)m z5lEZ))cw=D7mF*wMDiE^ub<*`4p9sz3A9&D*QW7o&)hVs=^q=^JV4VeLGvdT_U3iM z1mj#TX1t7uqetBErr?>ZC+Ja+t69=tYM}aD^)`g-HB=0eP zuyLTog6J=j|G{4ey9tUoF^p||VWrs1m4(cdc<^p9nG$ZT3vk%1>+0TVvDxXYS7E^z zg(?0}x2|>kO6cA@uYT|3^6Ex9JGyJ{9%uj?weGF8Y6Es~1EEGimn}7wiNZXZ>QfS# z_%r7(73z(MFGv=ZMH#9*lZl~-8VdO%kmgeY;(EFC*grWD&XSERo0=dJYcHn+Ycp#- zi=-Kh1KQ9wo#@FSBMVY)JB@!fSRb4_ee=SZ_36>!8%wzt&n=&y%ZDSrLo?%WmjSf| zxPriE>%uFyuu6gVI=s$UyWpMU2&wlldhk8KN}JUIBkIk+IrH4#z83N)*7McNbMp^B zcKq>2kEf%))!BvIjl#rm_Q;`0rCC>+4T!&$E?vvrx>;&fTY}uc`b<)*P(RW-6GKVZ zAgY#4B^n;tHC1hyFP)k#b$a_JcVC^o7Cf@|{lEKh82n`wVC_QFxGW}q*=5(zZZP|C zn(xwq<>a)pDeML3h};;C)}f#qZD)6%UF1B5Kl0BT5j|lK`-58#QKjO{BkZBsR!NP=SZ;Q=1~&h>G#x>XuzjtlVa11_p} zpJh{zy4gS_w5OZ$qzpm7|#~3E?&Pd>$|eCb8-T{lS<3$ouo4K#N89SrqwK@ zlbfrTznw2=#fo+MuU}72r7t{l)##-Qt@`zoXSAW}l~5R|KH zt%-2phwi)Q-hHA-O6vdsKmbWZK~#Hgy?LR$v{G9yXUAj4@@mW{S2e5AswZPX7+aTA zwN=(4Nq=B6F1B?G1`CT#A>k7n4FT?r@F~G5yavTkKV(!yu%@Ew9I3`791(I>ZSMlqKfA1=T6V)XIj4x2))a_HmyI&Y2LTKpiz zy@;kX7TgE~?3}kBa$aCJ4Dx>e_t8^MzkUn_>m4>W(b1yt)Mp=i^}A;mmX;?*N0aSF ztyM3UN+x7r((!6_wIpc2`P;ve9uDN5{ySf%qr{>@Q0xswt!PXf+98hY6;k^}WfEjV z>%{1kV9X1djClB{QmH0tm2R)JUlV|Cw%y5;g$I+qZVTfWi-lmX+LB*93BgtUxd1;D8*7Hpxw|5l@- zkfxX|^5wb@ug?dcks48jsr(>rhoI2sFdde{i4*36DB zLB|sV*RfCm=QorckrV30YuA4F3!j4w5)p^^Ki1doSl|2(InkcM z?L^VP5B2NoFA zI9jGY(`UtgI|&LlFsBj_TUc<`T*XkbFvLK8{{Ag70&>SWvk3^00I zSOLO)4;^^!>B}(Q45fU$rVrhB?2U!hY&vpqXF3p9Yi+Yp72#y?%vZ0x^0f;)_N0E| z*B*gv8g_gbS{!Xb6WVALVFJ#aKe<>~D@6j~={@^jefey?*|_(f10Q(mu8k{8FMaJb zNb5at@8N7V-YFJ(^*Yx4OBb(~a?8qiV*kB&g@;DZzj*obx%o)KztCw;YE}YE>L`5C z$Exk#i|4M+mWv1W9J$fVr4LPg==XnIh7J$C(KLjp<#gFU{DI$*XwRGU+^1rHLPlmx zKHfY|cp#E8yKD)E8F+Lu4*Y)qnSUU|_j?3F@An$usH)rb6mTlGsc0wCMc*ff8|4JN z*aqm}fNb;Y)~Zils*8(kn=Ez|VDKWj>Fkl7-c4S&e%k>voHi@OhCM;cpZnbBcwOo4 z3?E)PVh9BPogW^-Q(c&WfH&2fMA$at_ojMtQE8j6J~>dAEl9jEoWxsWI6fYaJ1!Rz zVQ*>PM{n2*Gl0!a;_z-R3gEv7KO{ITVg1hs0Zk!r(KS5!@SV4At}m}tcI?@+@4$++6W`4n8%d-Q!cAeJb|Q9qrZi;^iwwrI?OHb4zs?PRQk2*UqoQzpxle2nki1 z2tW1PpBUOp#y2>vd0o*0P??4erye~~h&ORdOQ}cfNd80b2g}V6@whj>eD>{cotv53 zof^(`;l8L++qYw?SS{3B5VMdWwOOiGH3OyswQMNxlMg?Ct)07eW0KhJg~T^Ld(8$kHNjZW=29ex zg#`}itqR;4b-OU5;lrM558rRtVuy7I92nr^Zr}q8DQ_jvZMCsIYe71`rUiEHC|#1Q!Pd>|}5ud-sg}-QT{HfoVuVYB6st0Y;x#YK3|V>MY=lt58C1!;%k}W_Y0j znY#_>Z9r<=fZPn27%1#wfrxE#tl99nhMbqyHlP6vCd%jtI0V1~G8)Dj10q9Y3A57B z;U5fTfpddo5Cm-k2Pb8C2!dJ6bUg9VCt$u^TUduTTy=aHwy3~y&9^F7+ zLmZyQ6{?3(L>xSRXbED#)_yjo?%xfaT64Kz9oQ!y*#l2kWPS?#IU0iIVZR@*0r>YC zME6yS;DF-Si9tdKf< zbOPe~8}sE@$PY)f5CKo8BYIoMdT1lph$Z~-lwWV)+)C=yG&QFB;X|!qbgQ}yeQPlK z7~tg^Eqz8aa6D|5ni%U~`+H3td_U9=td>2=_)r zWABk@Uxy`vXP%APyA!J)+T zkXbQad->&r8l9Rs@b>k&rrsG(kB(35yts7f;62BG=%2qIlMm=auL0Zsrx8ov7dCK- zx3pgiqCC4O#>2SK=x1Y_;_2dd7Ua(y1)|wo;D9;&gy*dzsT3xu)wr?Lc>dL7Dy=Wh z8M%TI48W#64wVe}n8qZ~H9C-|!WvUnAj>2SrImY*W9i!|*WtaH{4JPpPu{drW6H66 z%(pH|?Y0z-u-ykNTdi)fX;zvL<{~BDKnQYYI!>;3WYo#Yx1W1`z10dvqkD%ZjXXSb z>r0hpLF@Wp%OAeR;BKM~Yd=D=cCNZ`Wqv%9-M4QhosH!$FG8o>=(HEkTq@`CsUy4h zee99!eS3q+SjY-qy}Z2KYM0u*m3%86%fNEn_2v5a-oA0RR(R-CmZ}>Y8Z2_XTUVH@#cWnC@)u^|D*3b z_4xbzW_M!m@FPEX@0n*#rNhy%>W80SoveY1wRWqew?c~bBM(13mB`#!T*_B!2afNL z3ew{I4cMwbJvUcqX&~D4P;7J}Y}AU-t_!3>29z=(s14iFV86f)>Rlf+0kk?cc8ODg zjg5`681Yfn0fc>G2!@ksMKEfqsx zbLTP-z0W@myXQcrb8J}f{s30a%*$lv*813v1AZR699isFq+yv2a z5EY6S#82YgJq^cC4VW;pMpEigP{0Dcs4crDdzF%Tbr$0bd*P%p+|oO+R||b#*wXR& zOqc~S&32=Wm8KF=qC+t-kzm2$_6{EL48JdN=Por7?kwf>QUhD+kV#Ygav~jqD~7;0 zTt}%|sZlSsqp(%ghRs%AG#N1AeW5Fq8v4k1Bp4O3rfoxrU+>1!@U17qj4n)<`qM!r z0U@P^1YZiNxCp&%Qd(dm5`u6VOrrZhZAkw&swS3BSh+yiqM-)9U93TI{*jb4DeIF% z^7x%;`N1coJ3l2x$1Hyu%B+@Iz}`R3NN|2a8Vx?2%fJ*RR$5({S~B4P3vbcHE+vwl z97(?LrDtL6H55$GE-uC+$;qLeg5R9W&Hwu6ewBJ_#LeP+87b^<$)!J9S8!hI;I4oMeWi@JQBnb5? zLBnAY`Fx=B92|%-=1rVTM}Oqw^6p(yJf@`6g5)=HC96>BWk;3AAMc(#C(hoKN3%jQ zW|ga?(+a(53}p1a0LSN&FA3Q#pH{C%j_wx2(Niy;%y+x+MZPaJ2A%kZ-pLz!S??9g zCiJIKF-%gh5E_lAzk2#~r3IA_tW8mQ1;%o*DE=p({m~D6@?ldk^40uje*2TV?;fQI z!J+B^HS9;;@;;qd2x*KY9vZT#iC7s5crN<^kXW=sW%v;M#xQ;}f!`|NNu76|G&y}Hs|xV*l2ty<5w@m(7m9fMq+*3?&St*$JuUp{*c zl$uBaOzn=t3I&me4u5%zX>b7# zf56?HNGX#2S4ee{OCc)jrmdoO$B zGib!~TpYlQ;T^&*Ha9N?Si^Z>D>hyXFAjHJ2mXjGo?%7^wqDx;xY!2ZU9|mpr}-GCL-X(c}T`c;1+-Y${3)LH`NVu zFmHw2B;qP=(`>hP0|2~k9K)tcvZ#Kpei{AHwmsBO{(d31z1sk~+|TV>v?-Sh=8i~~ zO!RbP-11ytPpX~B$m;DcqQGrPx~T%&JP;a}fFh2N!D!0TU7vn*|5sfg}4w+?;mT`l=-imJ9ijz^DOoxS+Ya~DgsY7mOKosI^vY135TB??>jU=+!4rv~ju!Gv}5fS~xnKEj@= z45zErMo*Jq^ieu9i!%YZT%}D}NIv_0kb*Ga-$ygj@4ZXVgyz~g?B$Uq7OfLXM!TJM z+t8B3L&n;gS#3Zea^vY|A}4l}F;LE`#E(77T9RN%~v%iG?hdt9^ z-I~Mut=gJu$DrB{V}z~*?}b&)r+)77*Iv0$saK+rNHiS0I)7tFZ~f53u1B9d@y37o zw`(uV_6{ey0VSCY%gLlLIVlc}!{i|w(%3C0p$T-dXqLqCRmmv86`ffZM5v>rec`l{ zEgL)i)`l)F>BgC&mKuezopz`Pkrmw+i%Mxf#Ie9Qk}n1Y#t#iTx`8@v$CQQ>A^?;e zG#Fp>&JqObwfxUnX-$Pg-4pD?6gC{!bo!m3$?wg46_ttNDYp$08OOa%*oTGN1l4;&ohm<0wP6%Z7QV2H-S!2(R6 zLWi|bp;a-w5f|Gyd4McX4-RPICcBD-0}Mcs-#qvin`>$tdi_4XI?-t*Q{woZusjwL zhDSkp$i_&rD#UkLwecP_?}Om_Fy|nf){DyG4j8%#8D*gKR(2u4o`gWhkxdm zKlA&)^WSD?Z}qxTGMoO8Ku!w#!=as=&hn-A4{mb{`yoTYLrSH_#ITBwW4>LEx)QjAHxSdb$D{Xc@Df5 zn%&IZcYu@Ezx+R;(JlDG^5H{)sTp&AML2p4KA5fLC7cpiD=>8x5duDQqlU#Ntt}yY zg`Iq8yTcp2N!}pkRHj?4;s{Qcr9!<~D3()tu-<~=Fs#r@Rrq>TeP#5TsvI~tGMCTY z%;$XYY=z@02})9RI9Nud_8!}H$Afzx`tTj7h=Qdy8bs%xv?j9WBKG=oLU?C#qz=p; zF4YMM?-Zg{zk4_VU3|cXn2E_a6!Ed~U#%ElfA%^CShLc(rPs=Z_Fac3MoO%7n2Hhqn+&55fR0{74kn z%3X-5$-U*};?=7+VKU;8_uRSf(L?5HdG?jljiq)vG2}CG;G&EtN6Xq8T#eK^SYr38 zLihOi1lIR|_Qzj2`o0r8?iz-p6KW5!{;XZB%`P2y12+vC=fQ?|9tVE=G#W@4cm!qn z<)P{T$n74t*3H|Sx69>}HppAPb8`l;-4@twPJhG z(E7w%b%5D#6ExS5z+N5#ASe#Whk!Gv>>3aVyEqA1uWv%^q`Oc91-t1Sft!i|V!R~- zl2wM{-CQg3oJis*T%;=T-N%(OZhQ&ODx1kmq)Cu>u_mkh~2N zaF>Pg!_z->c#8HjVLW>1!NQsIlhflPF?G+bsfm%%)0ZxO;Say_#QjI!^PZX5^jJvm zmDbGb1vpWPG|R0_sXi1>L+uHkAQQ28H4k~ zQA0yx(|6o?_mwjj%y{@?zd~~Vu*1n(&05@V6@{FdBMF4}5{!WDR7BIez(x>@>f>N2 zi3lvPabtaIWVl)_wVR#dTCH?ub=M<%)vvwO)!GS|Z>-_08>*u96H~k2bLe2DSS67O z$!GQSR<|Wj2ah~@*SG%TA4il>ScFkZ%;7D_F2h(T>H*X35_}#BaDpJT9=#?>#a5-Dh|G`p*c=xH}(J)OsQf|7GoTDPuozD$oex-xW?b zP7^-r&;&0m!XCYHn#US@-w0qBC5g&-Dqs0Oql#CFSo!Z9@%XBQ@UIL4+m9mYUG z8hm~LJE8Eb+<_f>3GP8)Js4JTafktLsBqC5R4oI7|3bZlQxBt3vsl2(` zy4eXB;pJqk8mPW-|JTlZ;DaAa#*^!{QaF@KVajTj{gL1g|BEMS1&S?LXi6|9%x*m1 z01Qv|lJIu}cl(vu{6g?2Hd)yT{4Kx(P*D~3}M~;+5w0cMLWUGYm2>wTmHj` z^>P7cKJfgjHyY3Z!09RZDTMr17w3(TH|z!u&M0FU{ki8>f{rqIjVr5CSB}aAt2P8y_1@kR@EG z<`~w_(IGe(kHuld+Sh5qDS{4f9W-6h;5AwetoQ}k6Xe1LUs};yt}pfzVL2A-xu;92Vl3?^9s9dcLTuehQ0N1BmZ$l^IUE(ZpG}4;RBv`1@(n< zu{z+<9T${9^9q|;;B1IM``}JC24%lDc2By!pHY@Rshvpc*{PQ{6`wz#HIo_QHEp5hh%oHqsM^*n-!M7_61&m7}b9 zL=D;9Tl%IjFM{1|vam2PyQOdtw=Bft;s9Q~G^uO`awMM=* zb7UfNWC%KHN+9;^bFbz*fv7+B>i2RuzK0vo)qJ&W%GkFQ6Ozw_cckE}r_T)Eb@Vg; z;YoiS91-Mh>|R3^P&fO5hw#v^K1F#Nh!!{*>6eH5UkTnKe#ed)3R5cjnHzpnB6)MdB0{tpCO#yHZ5T#d>x5&;-1X~; zIF#I!>Ln8kdnwElc?@zX>3bt5I(^^v~Q#A9}SUc55C3_0>UR5((VS_^@`9)fSU^#tLdr4 z%frz^<^1Y0gr*w-tp_ev$QP%=IuLUCY!NSqi7Lg`sGdZ%AA z-d<7m?2~rHt=VO$D?nz9eCq;xz5vce*}Vt)%T}XI?w_!`2yeTp3ZGE^@iC0>&h>d~ zc|(Z=ped^dgYl0)A?R)GrMKaR3n~hD6HOgLJqAXx2CvB&V}e|3U~!{pwQgy#(S~CX zQ$%TSV*pDs=sai**XppRBtx zgX1sgS#~Rpo}{!JMh%u}Oz74NP2l$_H@oIWw|!Jq;+B?3OUZGcFrMxuc3R;HoDP8d zr=G$VKkSD33<(+@VX>F@U3+%@&z{YH@w$ zwQ?on8-bnG3yYUN`>%gS4J+tr;=R~~VToVrL4@!huMvgl^1M+*YzD@l>@dObcsmQQ za2)nJf&hS>{qPrd6MllFf+-iEa^E`@!+}<<(p+1|nMl3U@Wo?7IMOk?a#GS^iodOg zRZ;iJsiOyat1A*D3{xpuzQP<3M#aji5DZI7MLK?m84g z8&E|+KVaKrS33JkpZA!gS;E7L0hw$cL;`UO3XkgQdk%Ndy z5v=W?G!e;5Zz70GPRv0>Do$m}VPD9Gc^=t@#?v4C$cg{?=Pv}Ji9k3A(j6QdnivVC zL%zaD>a{nnRShkn`iBzS%J#sfzmKGd#OUw`HNsrjNWtOnCDsQ#?XR>L^Ki7Ni4 z24e)tP<+?K@WY=vap+@*p>BkW>W%#aR2f0uT&Fqi=yDo|wr%?M@pw0q=cY)9Qg%jO z3V&eq?L%^48;*YLBySccm3IxE5U^{`l6cro#lz;jE->O<3=T?a5${wU;{_PN<7U}5 zuq|?ebVdx%MXlRhJs$7g-9o)JVVO43%!MBa4CLCB>Z0BhyIr3WO#tMK0|(wg;MBxT zXA!OyAP(*(I=NkRo7)dK_VHz4AQnr#9W~KBUI_}gh&_SZW%Pj9_1Ki1l}j~o8oeo% z$ibS!Cs|%oXQaAW5bajaTior!ZdEDZVDkcR+n1~!fZkL=Z?3^GuQ_6Q<=saXV`F1^ zD7+c1w`mN7ZoG}S^T0qnf8>4SCb7=Tl0w*)hN^;gdr>107A&nB=tKdld%b z4SlH~1x#UVOuhezkzW-ry&8aBPo<;oJ1krrkzr~k5DQMVm6q1qsI{)Ggs}w&bACW1 z2~ebjKvY-ngaSST=4RlhK$c;prhMuA=)UQd7r&c+>?nOv`?D%1mOYNV0}aGL-|{c& z7Q+006M<5T5NBNf0_%KGlpsv2Sk% zV~{16nk|S$V9|*PY)A)TE>i7fWMR1{pKIv%q{9j9ze7eJ8}`L|hd5B3ySbvC1S5sx z88i({J8>N3x|rr>2taqO0Mry9`vP-|VA&;XpyQOr@?*6Cv24l&w7Lq5G^BqEuU!z& zC(&fQIUoCJUxWO)Q^mn6WFX3z%*(s=iNOcd3!|1OD~cmYF%hyBZkgxa z6cSnWCw>~r#nzQGuz@4M1uTq2=ISuKBOThK9NKNQYrSh%#ST^!R7v;|gT#!mp0hUc zX4}BRRZ2wg8uXe?8KzX>1njj_Dw-tvP!}>Vij@voqe4sJ72Jwt!qD<4 zRR~l-wH?NaV29T*6<8!{!Syd>-(;z&C|4?Vzt9`?naQA)9rZ=_#f7O+D?TBFNAQM$ zX@xg2GS;YuV4c#c3D>@UatX!Nm%rXGwb zXFm1bzx=H~J{US&ZWqU3OSQYs!=zkJ;%)&o(W98={?)VMGYEfe~P zknkB+pD?cre|MPPprYLrV^H5}05c8MMw{e|aOf)eps0jOf?nmlM_&a`rhS>Slpor=uzx{eDL0f;Gp8<$qNVe z?JZTyJBG$a(?jj0`Gxaqhu=4aX^~zF{P8(~M)j6!6TLXx78usVf%(k^!rMm`Vt=3g zrN@sR82{5hdkOWwF~9!u8}reg?~eW1(W%sp)%fguq0_1k#p^iIfPtWqWNac!W=b*9 zqM|sq!k~a&19`;;Hntwb$ydAGTUak_6e=Zb{a}DYxGflJmMcqj4I0wx8^vednrrj| zVMUtkMQ*NXf$>myD0%J5a=r*zIqja~#~0QYa^=Qh1@i;u35e;jbpTs@q7{q)eJarF zzxmo4gLFjFw;RBWF1IDzW>nihZ7Feku-n8AR+q6o1F(F~ABe;wHR0V{PBRB!UCO*e z^HIP+DlgQ{>*C}j-5SpUc&ZD`1Mgh_LCS2(Y$x{7vRV>3wj z-u39=l^-l?OEc^U24{B;3%kYP$)*FZzo(uY`8Icu4)sJvw-ws}ZHgjzR*bh?UN^uY zKooF#1Tp+^6AFhiteOPkq!LPSE123Sh8KW4XB9zaNqqDdKR$kJ=i7hr%*|^{NnbFe zgwoLrYyn-pIWL8x3 zdimVVIc0kK2Y>I!BWY|kQcn_B#LhkOgqov7RwcVKNV4n7>qfOi?P!hzEPHa>Yd^Cu zjNLCBhGK~7yxk(H8GuX2ek8FbI;0!QSOByQ2=sTf4)_%8cVg2w8i=Zj(g1@_u)P@U zoHUFZH}ks!LUcF){{F+i`I++PiZ7mgv(brQQ_~j$e~1q@`}|_p6ABOptgv?>J?-C} z6%xVjLOBY8Ud2s&qH?hM%UEm6pRv#S~d-d zwmc(crOa%g@ViTA%H~{%9>9Dr9b`R z--rI{Z+`g~o=P5^5REWob$e1sfP$VuRKkWh7Jw736*Z*=y|dizMf`HJfh|@A;=6g$*C&L zK?#sx0S5(l&#(nWYXe9Jkt`T6U=adX*sFnQSBjyXd$b!SpPD+l+-N|43_hEH6eY5) zK^!Ro3&!x=O>1thmn%x6!_q?^vE5GL^T*T?aC3D${};2Ukgo)ds3868A~sY&Z;|(?l$EaQx9|n9Z(`z@i2Q zh)7DxfV5582>>$#29pa0cgf%q6!K03(+rnl0oqIh$w?Tq<;(qHxDipz}^DN%w9wOPH-5GopO?3lhj(uwdQa7;?YJS zCqf&f(+TaFF+`=Yv>HyNG)N{!VnZ{N`obdQftY>;Gq;NA0&c%>hLZ3>)?aMs7U;QL z75-o5-UMor<2cOhs;<7f|NifD?h7-6`#wmBheUvYD2q0^q$TU1Y}#w>N|r1ilI+KQ zdVYSAC2K7|)22?!t6iF;D2lR3K@v%k06`MKfWQDC26NB+^Ur^uec#u9ky({p-TluH zq`mKL&p+K+k&%&^kx^BVnUN8RRNKy4rG}Lbw^-C*{{*pO23MB-9yDF1J~(dbB%MI6 zUg9K_45h?X-f1?!uyW~2qkQ+CgJToJ!D@YIY_b*#{>AAR*O@?uBS-9qG{*L)UpjaF;??bPr+nY-M-Ltz z|JJov=5ExStM{JRA6XX((G{wsUH`j zYf;F3^$ICp0hhkQhrW!XSB0+BhuckdOKIfZ_Jb#+bnRStIJ#}7cRFE+>UR43WiSnn z%RNQ9uOnR?o$K{T!@KQKjWJd43fC>~66{TxvVe7Q4bi3aw;u;Ij{!mm1f8q7VTkA~ zxs)41e!AnNm?Ap>lINClA6EMQ=|z{~yL@Pc77OzH4KzSiqiNPI6cotM9ls<&k}Lz! zbhz}vZbZ`Ssb-C@J^lhWqT}xh`2NfOB3>TwzAP`tU!gm?eh{U=)Zc!1AJa_VHI6PK zQs8wB1URF=4aY!sF@2={5YoOJH)()Ez89wZC@(NmP*nz8XMuk7(Yuel^^S#?E-gHN z?%MO`cNVX5VD<2m4}b8T_b$GCe)IWrbLmNz_b|T2iU(_X-YEIP_L)q6&(Y(kOobAD z6t;7l`K?m+z+?A4{!iZn!L-&6i}8&Wh=e1w5OZ!KKt+k#7`EqER}1Tf zTXz!20>Q>+E;2Fvfe*j`;^lL>N?x4Ai1T*T0G3;^GD67<1Uc3@m1^v8L^#l1+a_wO z6(*oC3&vQG)C0LK2|t5kw~oh?n!Md9ifcNtx4^1|m8VWJ>EQAmD_=F2K+~61VLOos zY^>R(Tri){ymD#uf#YJS!k@fq(b{ycg)!#FGCYwdg2!Zy=i`+wDH7OISm7B8TJ(_U-M>3UefMY8Zh> zop>_QDlh$q-we&4`}6<%qqiQ%d5-mg55E6D{@Z{3o)7%mFa6}bPyWaw&Qv_mSVxT| zShKjC4|O=oL2&{>#hvy@z@D!LFH~Dc5J-H_V{=k#Ti9Y9+V4zHv=^5f*nJUTiy5G- z`okH_xrEb%h~OJdp3$SNytvVImFmmraRyb)vRHma&PS%gl^uNRuu3Q$16!g3BLuiB zLJMaRog0S@05KpUU&fb}b%tN=2(0z_P)hycP@i1{OgQk>Xg~Ns=gP(Q^^5ipXFX#U z4jjc^zY~}lkL*9zzIwT{JkL6=*c631UtSlnl@8x2$#d<`)t z;kJ;Y%BmIgne}0sh?O-B5EV}0 z4hA>-I4hDF3agwdPA#_vvmm|!Vry5F4FM+-Vi$xPjfN0Hfit^!wQL6MOKiXenj^tZ z!VW~@L~IBVZy~_Vl3fk7m#mRV+fKKuEBRNx_`;`t?|1)V<(oTB)ky~8Ol<0yW$pac z$1d#Kf7?I$v0S5*&*zv`W4CoNTe#k+JU%u3$oIeH)aSl&^46nodH>zgW5iBAK6#Ye zK$t2({)^Tlcpe60r0+2`O2E50Qce+5AeGjo019(G65#17RV}8xu0$@kPrV*%)Pn7J zbtB8o?YYEh9 zhg;TIs+8!PrKX%L5@Ni^pBYWHJ`}f^4`ycV*06j>;E=5nuIQ{zlApFbEkGvQREqv{A8dU==n7A-RyQ)?)LHquH_JO;8=;Xp{m%sUmXE3GQ z|HSQYzyJ8$NwGg>)sR;cT#>qjx!g;GZSf#|JQ8rX2VJ(iux^%De&84OqEVrLh=L`C z+L#cxuII3eAj}Pi>sScGK0+#CiB@9iglpx->2p^%vjx_1SF`vRM`y8G*Eb_a=H7Du zLofZ!Gv!JnkwC+TSB##;S>4$9SfgBSWjXY~!O14;toBr@oy`SUNov~Se`9Gq(7>TY z%VICS!fPf{UeB{Q%90f!X<348)SCEL39)0rLYA0hH1ThU9B@FHb7|QN7bo`|yZD*U zJ@ml85+=0KtI#TCX+X4 zS7(0ZpWZj~NUXC;5dt=db5;p$ZR70*$0?l{5p9Fc8@cLR)6oQ8L&c-NRn63#0&Cjq z&DAaO#E+{FLPO9dae%@oh{b<{P_=c&2y-$q0SG$8W^G}jkNpV8U&VVXHtFqlD9i(y zdjg+AvaKY8NDlZRW*T&`8PWF|Mm4PW<0&v5Vy?p85vCczSeua!KtY`_=35MS_^NiS zz58(N*vTy0@g#>aH!W8v;*M*vjF~zgFF@5@eSp;|A-XH5^tUlp<*u z`eOk>oMS4dD&$j~nc$MMDYGCN(5UG>50(d5AZTNEhXWZT9P5AF*kg1a3Wf4)A21i` z*u_GV&{GAbPsAQ+cP>?HK!=0O#@Y2j8D(A(us61Y;Uy8TE^cnahX9-kD51@Z`Hb z^{LPN;*b0s`$^m&67y9g4+gl;5Pr`RNPuDLkQE(l(DB92IK^off`YN?fGBa+o2{IE;_Mov4tTO1+r zF~C6K`v7ME_;I~rj2A-cUG@I@!1`r})XyHC*>hm*+QQQPcivJimtMQLlo}f1_AC@R z*%eq?EI#-ArRScXf9Kooxb4J|^XHyh-mX6S;IRiEJQR))TA@=ZH7;IS|KigxFA`F4 zIR4JJKa@(uzx0=;LP=Ft5*q|Sz;NX zG&48x=smYiPp6-H`jj&~^3(tBN04WkoG`VP*B~vG&imTl)2SPFwg*ctTn;KZ?q>G# zs!I)cA7;0Vn-YSa#7YZ2Qf@^9_y#bDaKqP-ZU!Y)!e5J_rZR8Do-UTI)ZoeGZXN8l z&Ffm1#G6iOA=I6MEjN)#oqHp~nx#F=@!Ds&y-QgS$DieN8=>W?ABk(1IR>+*4#f_^ zFwODC8<;#Dm4tynN>Eg;zSM;@HMb6ptZ)oHp~HWbrGDkBrws-=m{9ToxZ4dMjv?Z& z%a`vabuP#xOp!h`xBWU>b<vQQ>JE(fVa{s9u;u4&Sm;PEs@%+0W+)V`_@+byl-ws~=O0hyU>p zTs*ON{n8q{#T=FmCs`R!K77}KiT%S+*njU4{<@8Uj1X1~fG4~i^p#+ATO^gs)SwGd zr38tO=9T_7?G(6&uiGzjCv;R9NlL}4Thbe}DJCJPRI=dO3N_Y?<$RUbqCN(ogyH_Fn@umn27S-X87= zzudwu1sCGpCPpd*&HHEy`pQ2dKy+yjQDn*AI0F|kG%21 zYvEYr+|tf+3HOd-Y0S!TY-Ftbna@|h@af3pfww*O5Jga!B;IYnzIJ_Wv)pclM*sMw z&1XOSg@5yR5Bx7bcEBEWTGvH4XXZwLXJVD&FNc$~3CCHh$pm4)6~v_nx-2jJ(uL~; zX6D#6DhWe|B%*2&^NX{;EUz+@a+f;6I>zv_#L6&AL^kGUYPt;n(N>wKGz;014b5;M zjB$=FG2qxoLP@qbJ`Wb}e)=kRM2EcsMx8}h3r8ww1`=fq^D)$K;_@P&!cBy+gIC6x zq;+t-o!!EbPA81JDNNKl7UIMMpKxHs5`oMlyfl?z%)>%2YHb|#%n|pXdLKZo@WXU= z>eys}ww(&g+=HXSvU4RfBr4}XXEPceKfJeiZ50bA)-qeAc3~Tzq-~b!*~gFrk@Df- zF-~q}iv$7YgL2RA9yZhp`ugUm=cNnkg&tkBltm;dtAeDv|3{Aa1*H1)nadEh_% z>8U31T^S$soRM3;US9ab$HPaCO&=JpW{Nd}OV{hz^|u@V06+jqL_t(yP{zcj;56C*9N-_`bzx~dmC$Fz(p1yFFjU=A-g#2Z6@e3pofrH_p zcxq!U%eo2oZzfk{LXMJ+Fv+7#q+L2L98w9n@IHRdxX&-m22o>rUIdD7!Y)3ll=@ak zz~mJ`LAN3`qu^m8dUo(9KK!nq`I$c?wDujhpM3G9v*il@Xah;+OYP=ZI<ufr*u zYQwElJ}XrLhi)a#K;*7qaTnU62+gPLsNiN5exXR^EOQdOIVneG7T`Dio|80kgd z$589*vcA;cradGK8VLjMqv>8!uZOQO4L?x1j!YAfU3uuk|`^f{RRB= zy7>?>rA$Io<9o1PlcjV0mnPj)vnJsUn89%qzD`N|j7a(6s_%m>>F~`Eh{E5LDb*`qV>HG2BG}Vx&vf%?n6x=NYL{jPloD20t7aQ~w@4D^8W4CiH zAU2>irjkv;R8)kTyf)S2984_~3PQfFNf6x>OPBI6*B>S3LZ}OJbKD=PuuDRKstG-s{F{RCds)fSY|<2hmGM1-~IB?Q{UG?(>$PIktUVOG@IDsU1n zk9M_EUEi2Uq|W`}r|UozMJC` z(OEKrH~44-ohdZbN8xvixMSyyX+I^6C_)VE>Wz!XW~M~5x2;+=^E)5^Ty|pzN1V13S*Zj*{0C=0@zvEo_$T{E zC*y&IJmxAWH<&swl?b<+ga=p&SQkpo$)v*(3(S3SN68)oi=<96#1Rqk0i-;-Vj~`n zMwlZaJWLOocwc0J9OZ{fImu@Sv6zDGDO8wZ1X;Mg zMl9e?bHw3LwHRG-SIHEYa}kxY6`DBp>2v??ugbst(f^zrPB#M$G|`RC47*@(PL5hL z#_n{a+}_z<|JKWs@C08~!I<@lR+Q^k+{r=I^==ivpuIopWJZ`v&I zG6L&Cw17$>g{z7wne_x;;9A=Gc5gQzzHGO!qOIuoUXff2NG4C&GnYD>Yr&a=Ys(w4 za2P4W60w=d$ub1a!OG21C%ARtN+J?&Acal4y0H^EIM+$x0JMf;8X&~-n8c3gV2e+@ zJoNlk3{ireT(w?lSkrQfx>>5QGenr@k=yo!M^mkGmJO~JZtd|cM1*O06J#cUB-KCi zW54i&KlpfUerIhnd*A-sKJoH5uV!~b$#E2H9{G$TuHW#HpV`ht6Hz<`m5N1ti!#K7 zDB$tK!5D5&mMIh?yoZ5eZugG&7^?XueB=W^_@|Q$3JLGO0ZPIh4sTR+o~}$i{f?fT z{qlSAq8p;unLSSVMgX2w^y3eTN- zHOCqBSd4gK4?l1>16a%#nANXuWCK=sC^hDULma0?Ltw+aa>G~`C@@xx77KhV%20bJS!KhHb+#_$F?5&Kc~ttk>VaLs@b}YgoYx+ImXxBdU0Y%( zdWoCV=%Ki^o6GMmpeams^AhD;5c+9($-hqs%oU$C%;K0p?Ky!rVLx-9$1=n7bv@H z8>uT)4AeplihLB@C7~g^e(O3se1k$ony?3vn)%Qe+ztj(cCA|Bj4!%1ok@iJZFSmc&k%DS7GVb5lAd(V@9=*2xKbQaAOhfIIKXkxQSgv zkXJ7@)~G@#i!_=QEYWLFJ#kKlie?kwC|cTBnSRIPXP)`etv~(aL0q6{`*g-jxOTJ8 zpinawHy5p&=iaQcH=EZTAo{CBNP3aUW@qO61*wNf4J{`zz1(UPb z*Zk}M^y%|gS06eyb^GysfBI*C^M$9r$qr3}#q172tk8dkzH~YFz`s2Admos2>(SA` z+BPbS&_^-0IuS|RS1ZkXQy9&ly~{yfgdT$jOnOk52@63KUBY;=V24U6-$A=r#9bn0 zamv^yC}uDy@o2Fu@T0e5y1@jIKWu%7!G*4m9?ls6y!}%zXFbZf8v73{hDRT~Epp%S z(6`Ps&R-54I~+c?Kf1KixOg@H(v?_;S)g93Wj&kwiU~I>{UMRMOj+(qUMlbm)t{RW zeGcD4D!Md#L@c;+%9bU6CY;JNsMRiFpwmDo#Y_x2g`qH+4#egC>M%4>EUQ6U)w2F7z<{_TZI<$ltfIn1h5vDhXCp* z+)($X*gm0`bFauMvaqIABY+yyoIo*KVJ(`&Hl+-+6I^rIoTV<&*-)5e5T#)|< zKZ>e|ch5%y6cZV31a$40Q$vh15v(^gKAc-v#Ha_?{wV5l zpa?^>V%eUaZ7f8(#$ zs~im=d>D^=rk^oxf?}Z@i<4j_q)JG*FwGJNp{-a#8px|cJso@cEf>46R557)@jE`; zdP{IGtNkq5@Mzz8-=2?t?5AEmy>#{J#<_1Vw`;d;X9^dtEI;+^sbny|Z{HjnCfQ7m z%`S}oXJ*H74*JHq`AW4hIWr!Ohc|Y1xR>*UyKA(krY4v~VLufcmJk8Ui>r%ED~Kus z6b=$fieMkmfBD@$hYb@c z=)Q1$Rfq#dJWT!F_)Tr-=zln+oMZq_~5r6b1+v!{>LfwQSMFv^ayHJ>Yn&-F&DDy zlgtdiN89CNA6)a!6BOa8M@0{l^j!}p{#+PEc$CSwMapO?L^L|mhr)|Dw^!L|fY0Bo(Bp~HIDm6`i+YHvO2^U}TAfmK+S1I?Q zt9s>DS1i=*mlb{g<5`IjS!z*Hl@&!_&kq!JsexI5Y8r%in8-t4nvUY3UgKbNSwc!O zr7}fLed%odt=<@vkamH^N3lWGqAuOrU8?eZ1icregh48?0;5MKHZEijPR&LfJdQW) zNMN;C*sNBu0=5_I42^Q8asA=dyyYkV4qX!)4>^nM|7b=C?_6n70O5mhLU`tKSW(VTDb0O)r#Vh8k&;{uNs&Tp@>uZ~b_v~XCd3z^|O3u8JnuUzAG)RA#Xhf*OmQ*wzH&%cbgj|Le7nJTm&BTN9R@#}ZnO z;RXWnPBRp6@HUfUd9`DeBq&v|RA@va(OLzgA2C^BeY94U2>=3&v!7BP^&NLYK~(-~ zjm39|nU~rG2;l;##Y!!nbJ{jb+NEk|A{8#@#hEKs{w!o;V4dH=`$`OE;AP527@8F; zg&A0_xxC%Ftyu#_F~?-)q3rU+ zbc}{_ij$@?M+xF|6X&NCVHzM>Bci744VbHQ-xARpS4C__vAw}I7lNFQwX!9egdJKn z+h)BZ+7%y0N}}Qp)h3Uh=0u@m{@To*{qMcwk>7ja%PqXi!fM_Ewp}PmEOWTQ z`C;~N*#BhGf#n?gVX2Y0<_z6dtfAM^UH_v)SfoC1Pr=+u`a-zoR&$0`6qv@@3;)mz0enK_Xm2~ z2d7iIlwk-7kB;zx|C)nRnfC#~&+R@6{wyP!E>Vxdclb4Z(41FQOZ8q&x(ZVf37w
qf28)Ff9U>sD#(-HQ7w>Z7Ua^#e_l3{XQfW*@#m_E%wmP|)}u z#LqJ!-$zY7PrPcoofHT%<=qAzf`0sXS8|JqaQJwtv-;~$Xd(xL)$1$|t}!&GCZ*fJ zpt*ck&_Vhd+5b&JgJu$b1pTz23*=I-bcAnJ%HT`wx&>ZIljQ;ASEKl|dJFk+CGGOf z4@QP4Gr;gSPt#AVKkZQw_L`5XOG9-2VC@EX_k@yr@9Ai`-CKz_vbukYjv#n7!V2~F z5|#)b6@p4AfMS&kbJ->+S`1y}zGjoBnxsl;MtcN2Hc-1Rq-ZHJlBM1xx()JBRi$(t z(nR^VHF{})f_B&A_dNB+7i0Nt7EJ(tK!Lv-*cFGZh3rnIL2Sno=As1WVmUsGYSO44 zIWSkx=f%N$wLLpFGCeuWs!t(bjt$wIlCxrVW_cYa9XSc|WCuBlm*3%FL0b;eCEA6U zxJKf(OorMuG*yQfnyhECMPkoR1k-YY6Zd?guMkQpikc%DSR@sSrbD#??|h4JuwfQl ziD8RHX|{|p5NoaBWIURPSIbn}Y?L+++;!X8FaGthAA2thl3f|qLo+OD5Z$p;Oz>Eu zS*Q7;?jYeWJXHn!TysmQA96tx92xK~Ru9}?z#Rn-B%>n#^alz)8UiCn6IJ3O*vz+r z;V^IRRxT@!&1(_66|bFrqf;ydqvO2P30oz>x-!deJiq>WZM(d5O_r{if6CzwX{fCB z%YhGvGZr8D#@52d@Q3!rTY(}vqJw3Eh5P@|POG!i?u-UQ81=A*&4jB7^W^{tramm4 zvjgLx>$AgCM}uWa6?2`21olNy!`4O0VA6xBw76118xoa>jRN%kM!mthKTC#$c;j3E zJsLeU6`vY!u5L89w*qVH?MBU7+YC`(A!}`J$Wia%X!^G4${E6xH8>!S9Y!RQMpwov zs2X;L9(#Lhb*;0uC=Tn>F|>J9d+YP5&l${Zb z(}>~Qtg*Pul0Qyz1K2W;CBqZx(4~s_(Zu;AhCoc5YGM>F+bQq|foC3*puN1M7 zOK_5=Q@5_2d41{pIreKXEy7ewjINki({~Xj_vyfBG`2PanT_`PmFZE;zSiK0I!BC{IP2se@q#JyA{dPQAV1nqwMniL{b z+T6)3TtAeYsARVBb{ZZZEnHv3=_yA?8`XMZe7K$~U~&UzWzcB={=w{UyTGB7kagb! z)zhzrvIPqx!~KWCKluHa9 z782}mh?;{R9PR$mC;r~sf9Z!hS2DSm=OZZloOQujRM5&4a|b3S50B2gvAq%vC&P?p zkkKr0uQC0`J}w!H@?c|mT*Al&1H6+3@)jcj>^2kyDB(45&<$g?t%2IsxvU-0t ztA)1yc)tcqo-+FVA-`+|$h7du_ujFSseSgdFCE;s=fugQk#Kx{d#jYIuwPMcaoDKx z)fY~kdLtYbmymv&AAu9jcYe-kFg{?!4vb{=IRw zV(suNubzGP2k##}8mDId@Gpi)vZKobLl3->DIqH#7c40yVEs=5FQwCi6#@4*&lJ(kc6*^k zMI$Qg?hXJ2Xi)#d3vLSm!BxLT1vK<~6McR1GNpPmoVuajrH9fl69&FZLNP{Hr5Uk1 zr#v~(6r}wgEyKQD3+@W^ioWSzI@sF)DQSRY4RGL1lm4H8XgKg@X^C(c{&lswUHa&w zD7DC?$d!7#dV?U86g5xe6q=GW{ajbiLBTPYKC%LI3v{7gT>|mMP*u@I(J9|M#A}XZ z^y5k$x)MyFhbEJc{q(zD`r}iHnRI4x>C&}T);X_c7H85EGvl+1YlUD4N2Q(B_02~g zIk7oUxXpTYy)ZUCGC7=BKfjpU8cIh3wQSjmTIH=gE1wzcnCp1_PgS?pWdeX>jYc54 ze@|&~9sMjF3N<<5h)o1RPq!8#&Lnh*?HM~A5C_yZFGv&;Ak{Ck|?a?I5^4j zY9taQ>g~^BSXxAlqtk~uaOsXzr(LhHA}qG%k!%JR`S|L$Ie1qnpq=1( z#Nr?<%5JUFELKa^96sko*QYRA5vr>qE0!ZdPFCR&fsbFxFKhlYaTXs4K~S1WRe5DV&Rv4u@DlLMAyqfrh%GRj!Qql3}O zAlpYAFTuQmy&j^3Dm54V7r%z zkO?MIh;E0Izyxg#2ZQ_fb26ct+i|vNM=SN7w*`;vwWA@nB}Sly`x z5A6x>o33BJYHwp@hCPD{aEecUPChWvU>cLaD-rX~I+`fQmNzTy;kZ4P3^rOd;UmgD zQ#H;2u;kCY2#uc|0FKzGM7_!yEOO1U)3$}F4pEeuQv}2HO1o5PvFu+Y&{&OQ&yi*z zv{J*Yzmw)90*B|B*@l82zhHm#YCg|Ugu*xzQbs=PG$82AA=sK>y2q+Hb;A(#=L!`l zZM%@+7;7xQx<73Pn;Y|+i=A9aO`O^+S-XhpDPyG71%AgLDPSa9i|uzT<35SZ+d~&{ zsqiE6YUQphF-ExzPoAam**VUFlnGiQ=Jj$m$>FdN+A4>5QMX|uC1k6ElPGrmjZ2BY z^JM41p}=L(3GTrAg|M6!f)(pvMx-h(f#Ty>nv%<%Be zR(8YQnHm}^6>HHJC(on!!RIDxFz{A`6F6c~$MCy5lx}wipZp#-Ku{m|SM%A0>7VWc zicwHEx%b@n${KY28sd_rcTQKUs2xA~;RhzCW1swQFI-+&AP{{rnVc9I!O0IN!#1~f zE?ikGRtuXu+hOFbN|cy*EJC#4VWvl=N_BfXpNPeH2;6?lfxT1Hhxbi3%a}iv<~Np? z*4A&kZVBur;b4xAnYl55DCgelUO z0HF`U}D>b6f+W*X$;s~+kX zro7a=kDpo(7j$Jl%${7$aaEC23N;_5rfs@pS|V^&L?h^LGk9+2y?UYPLVVa=nre7_ zIp0gt^j*3z(0)x(cTHpJZ;km~wWLd5_fCE5Dxo7BP;Alk{XMx+tH9~f^cT=+U5f`7 zBD%(2xFXUsZalq2u@KIy$EvE{9SGr%B;~)fR_-oy+er;loysuv3LQan`$b80DL=mU zs7eH;uvNm))mMD0vieF(g%98&(K5358{0cHc62ULvK~ptfB(Pz>EhUo{J9@r zIlu8IpFdT@GTDwUtgblmP-;9`Sk6?dMf^n{y=`xKZIc&3A%inWIUHQ6mMVc}9`AXr zMk<-YG8`KSCmCjGEjTfaW4KOn2cS6jQ3fj*fI297xmtT|iMw-%Ukq+8Z9V8l+~R5~~~7biYAhsQRYsI!?)y(kGW`4BFPD5#1siDJH|h8&w8 zS&42~@uzYQ5llZA3&esrON1D%Se<1KvM|GFa3q^oJjN<*ESQl>-q!LC4+l}Kv1VyG z76t)0j*KP3kp{jm*~AgM8u2kNqAvFCFbFdU7H3)ej}cRhGXbPgY}w?Av6^19t9FpO z<9KK(qch{L9UVP@tu?Mmaod7NprNXBXsR~9hJG5m^LRU3XkT9q;Ub7-^3yLvDztAj z*sioQIRV93dhN)B1AC{a3K_<KNm-`c9ucI?avg~Sn2ytERL z4Biqc4~Jrzb^|{uNlFF-#bEG{t_S`kgH=4rSew9wEyB|IXUQk=1rf9j^t z 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 #y>P88Um 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 z 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�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 z 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�XoUeug_>j@UN?Va>e70 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

`78`Wk!fe&}h#zCvN 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

7D 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�I>q(8ODsZCDLCoUI+?B{?Q{aCn% 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Ν}p$~5DkEoL)Nxtw56dS7*lgc zuvC0&V zNn{Zfb7^eSAU0maOl={fHvW;Vu+x^D3a75wiSZ?7q#`MhIER65Z%GdXz)=AG4uG9t zJOB&71K=E(ot;X#T$69rvENLW3eb-L)W9O&rh^&Zsms|l(&jt{tb~UYCSIxsxA{wY z>hQu^w1|@-Xj8<#g}NexiUQ!hE;6EE+{F>$OVdsV2QA3BR%^gMm(P`O=l^mw77ZhD zT>DGM0CWMcJp9YK^$*-gX}P`{5{aF3+^)3ENbz`y#FfkR;1MY- z$_&41gOuc;Wqb%}C_vVzJz^MX;PHt%TTM2uS}qcwKwOkV`T^d7Sn=#?leJT_{Bg zjO%LObL}~tASNd=1?f^6d0)rgOZZEF|6{4q(AU5HYAlo8yLUXBz}H7zx`-?pJ9gyI z?DRB_0dUO;o(z!9;?7*X%n)9CxeFIp8^u~-G=mFu@T$a9%J9K~V^Q2oG&Y(~%uQdb z*4B!(Djo)$YFE4Ms|!1CzP)tz(rPc7h^6ACMyuF>E>f+vYL%}2RP^$f7G-1?NsoHA z9{gr4DO(VwNouMxH_%oRX{cOao~5+JTp6fp#vcX1i)&&ec1pV{uDA)ta&uUg&Gn30>GgyvNS10i@1E=?8lf8w?mwBTw$MG#HA6{%EmV z8UqI_g?BS%FdO(_+;MU0r5|P_*1O*yd8Ge+i-~X-t-#f(rXzAB6_7}mTuZ)au}_wZ zcUk+Q^GGa2W)bA2BJTNrYb>AHxp50mgu!_}7q2ZHKD9Si+UTvUN3vPEXMZ~0Sh#)T z`)Bjxqv@$!qu!2Z(v4Plsg*9aQ=Mc2R|H==Ki_F=O^qfVJ~cHo5?{Hs)(a)Ojq)cS zpLz1kh;-ZH!_I2oGMW5ibxOCj}mB?sqeaO(UAafMlBcXA@5}@cGFG|X@vQ9{5*xh-n zLJd{JF}1N)9>96M5SS^HM;am*6KPAF(5iQ|u~-77H;qAg8I@S=W*8(=w4)%ew%8^J z+f|g>xeeZtVSz+WEJWsxQ*aPX0mUcL(>Oy2fiV*XQbCBX#&H2`G|oT9(ko8>2r92X zVxT>B+7cHp=!4PJ)`}q%J@BCBHSr0Iw4}Bh17%W@abJ8g%<@|u^YC$q95+ytjs|#* z2A#Zw{XU%RABoi)EgbjchH|*-7Y6{*a43a)p{8&}0RH0=VEF+6cm2n%mz?Aw)5>Jm zzmY+4*OUprcZpEjXc%)esO)AuBzdETZ)eqdd zFt<%%F(IWRE!azhk{3s=nt|jtWTW))i_E4hMKf%>k#a5l7*O(Ue`ssDOo`BEDLGQl z)WAC$G^CRlcr9I$v(zDTKx9H{A*LUB!@XoW@z_UCU%Yhdg_qBDJ9sE>a&@bWd;VZ% zJ@UZGW~;Zjypc*oKlb6%$wcV(?af#+RjW2)t;Rh^#-IPz8#k{P5A2<3;cdOs&F9ng zdLx!h=EsIFUtQQ(tu%Yl^=kW8v3a>zn=iN4tDRIKOE;HDg>gYzyA^u-`qi07PM!Mj zK8lJ0qX7GYcLXwfyd*duwv{{u>aHnUozhM*$epPLOYN+1Al#IKS}?z|%@lURvcbE? zlnZ%~#d}$C-?g<6Cvn%-AyK3>!0x@86sES;N5D1NGT2mrxh&SylPac!;*5;EbkKIY zt`6=*p`<|%)y$cYIsW}C! zp+4Tux$D|P;KXCmb}P=jLACP#KemX99BD!QKD2@aapoBcey8~DCkmPO5sE-_3{osKqyFxcMZ?f1o9r{rBq*QOK@m$$ytV|p}tsn`F z&Cb62%3H0%(D3AN<>q{T|EZN5x3_L>PK}I*##VccW+amdRqGpPuN1dB`!hMb!{S*p zxHufl1L_uOz?+YCN|88=7R-^M307NDR@i~2YW`O*6ta)q zGFqolN?KO2`?l}Z7tF7JuIx@0%$n=q!TWr9Du2r@>ff$nKR^ZiuBAss;6E-S9VFsw zNZeHfx2mNiI3}zp&Tt67c2#S29JA6%@zE&D>0UpqjbP65J%OOdpa70NY|J`3^5la8 zg7b7Eyk%xnh{@Q9fsxpBWGN6*5{lbQBN9=Ng?H#dfl!aX{+A84$qoMKCyQPWS>gtc zNC&6);D+tnTiZAQK>FC>rvm_N=t>B4@(*4Vb(zPbtn7(*Nv#|EZV0b^g!(;MG#4cKFEHt))n{ z-pvN*r7v{4DiyXkDa)oev$y;vmF zY*fb&PLCbhzxdkK@>;9bY}Grxoo2Y3jD&OPRwT5(QW_geR7*RH>l;Tt@z^JS;X}4y z6}Zg+06+jqL_t(^CO55v>GSw`CE%{V3s6VJn(?tqm1NJN&iB?_$_AvgI zn+R!asr@J~Uj(m_`)YgV#Qj=RF(=x9y8+!hg7FK$Zy*!e!{g|Fp4xXVW< zb%eH?>27jiHbW(xY$}K{20l726E-7%ijtSInRMqHgoapxsg~n-R&0VSL2DHH?FT;pI^Io&uA>t z3gM^Jc(ia4v18w&9m3thx9hR>PG++giRE$&3kzoskN(0>K3v_w z1%<7Xhv&Zg=FRPmaxxWv7=lRMs(W^1 z%IOFNDW~yB8%olH0d&mcv7w600|~(h!~di$hP-AHp`kSvfF(R;6#~(Ci4%-vOwWVQ z0T`U!2!nuyNboYm#-Dg}*u>iPZmd|LoJ4D#Y6Du8d%ghUj#m@zO4@{HW~>EZ7=U4Z zcTN1l#!^D?!USdo0WmNOZ7nZJC=Rnwj~7Bf$5s-*?9i~lLa-Hkj*(!zCoN~gQ`kJd zoIOnk?Bc+jx<+SqUJXCziMHU$mIw*Y7Dh}`UL**1Vrs-#w3)~_CltYXEu6IP&pZ6) z>>uh8g1`Ikpb(Kr4A(EYdrVykQr)&Zx{}*#=5;=pY;b~2WHqIhITH{Faz|o11K7Aq@ zYG*U4tC!YGrPk?_drFn^X1P(XG@H%ZQ;!`V%A^;rt!!`BP9G`6!krh-UN1HxBSS-z zqeGo84ghecpJ=1m&JGVHL(%msiz~O6cG}yWXtUO=VRlz`@cTdvrwldQjaVUZ=2IVj z;>VttIX*<+Ihm+AB!tL^F(w9+0d$e^WGDBR6*uvhW5GzWQ10#%16`~|g-hS|kd`TA8#7sFh-Hpe`ZVkm55%LRP zXsP3mqEBGd{eFo@E9@shkC^S!r!*B1J!#Pr5EDx2L?Rkj3ov1wvY<~U{Msk24NF;t zo7NDKmKajEm5MQ{dhGa6`Y!l0PlWGN;r{U#!0rPAB#55l_) z9^r0CNA7`L3T{JX3rjV@e+u2!Q4DE4hypT=n~lsz0-K9~O5veI#xs?gs$jXl=P6b0 z#R-vmww$sxYneuz4n=7HsA&zQ?du|U&7bPvMQ&)>+}Z!9QsHEPm6c-S=F05ENNu^; ziDur}Y<=h5#dxc?CxPd8MVBsbz4*fA`IXA_%=p1$V~H5{_i^q&&QMFXW6AY;d_9`M zZ@ult_UV)3_uV_azEN4Yy@@M>*0GHQN;)=~N*bJvIH>v$$;4GN6K%0~@_xhj`f0S4^Gz%GQ&TdPn5=xb;M;z(ad z(luIVBm;O24|T*p+V^$}!vVvkO^A%?k4|A=BKq>Yhx?u5d-5b2keM&uNlaWshLya- z+u%vZV*0Jt^Cu?I$YSC!8!M%)6>+S-fLSSy$v+l}5WlwZ-aiWvbBONt0~)%LHxk8D z`nLl*vpBPU5p+zbp^?_4vP-wDnon*yjQaM*Z zzyT8ru?!AUMQFgv@Y-Uk;Xp#dD^eSMHXcS*l9V-J8k>uQ77^AG6-P}^C2 z64?U~b6x|Dw`K=U95mp}hOMjfQMop@je%wi8G#iX-a_-8#JqyS5c{3eTmu7yR<3+% zK>($dHoX$?-|^>S)Kb3i!4!=qV@L0qEp3#R*BbYn+%q>dgbQp|i#w56Y-wd}W@7At zdk?nijc})Z-?7Q}FWc$dk8gUq;oE25%O-oD`O?Qf z{o_wO{@C$j`=;CFYBY|!k*3<6*2sa8pZoQnIQ!lAdcDlp-V8-9W#QL3Cqku>*d-5} zy(jnb<@ykZldNiq1(`ebfy(WBh0~%~e87r0nav}&tsoNaI2Z{jpw%w92GSoJQ7Xdn z%hnB5tiZ2Woj{P7a{8Ge$Fdu}A@7SvOvp+snL+p^s@(`RcXsQGT@3>b^`%3pw&I=e z2*3`s7c&!yxsrHVj@j4>1LMs~wARdSJp@Vc$8@e%PXXfTE8cVvJoCG1eV`p2YfnHV|a{6RUMwMsHvJZpo5 zHa3_^kZ267fSEuJJvG@krLRG7NPg6S@-PaoObW-dbUUl` zy>BkjORTI_i*;~yWM8FipRf? z$6E1b9XI5fgw#X>MYu{VR0r@Jq`e!E&vJonn|OE;FI;Wi#VnJ;8A(a85+oqy!SY_DFc6q`Tu zv(J3(_x}7B|CcW%GZ9>{2@)L(Du7dZy!gbCBeOp3RxGsW-t@csWGq!+8yqP+uLS0g zG+=7F!k{6M)K3yH^C2A_O%I!ni`h-?mp z_Iq(nFj2^4pnCK|tya5Huj8q>sdNgr1frYg@(DLM-v>6>*`}T4F7Aa(1w<1IF%TWj zm!k%!1ukB&%g#e&LWU1|O?sa?G<@Wj@x)|a2SScDDQIoJ=Eo}nG2lFZh|GyV)Fetg zn;Wfay^dS`kB*JtyVj+pl}5dWJA7jAAHSZ_Zok~|KS9s&mLEDeV0LWZ$|!-r(k}@B zIK}~n40Gv_j@$LoaN&HC-8#D<4YL#No!s%LNr89sBXS-a3qgq;ek;A(tyiMI9f{4y z@;ISk63`BFb+4n@%SHp^`)t?(Y-Tc$xi6PrPWu@E^St0IG-~c!8PjbbR1tr z(V3j>I)29Lb+@XyNb{**cxL9ar+aIgp;~i%dU#?u_2OThJNN!(CL39~G{3!2o{q=g z|1a+zee@~ZjsmX`&fd+yAFEIE0UcyS)po1dXCbw~x_=o^&JUVG;!#SiZiSp8@h>Jk zJ01gK*u|ZT1Sxg<$RU$3$R~LEmq8}|s5?jkq?(=y$+7Iu-BIq^^y0S=pNn0RQj9g) zWsCH+ytbi{e-Me)Gl^UT43SF7C35D^3z~ltg2@MRn^~YPWCF0K_d+MR|CIp_h7*}; zr2!-ft#v@F7}29Ei-pq`wj`9f<@c*rk{6@c#HNXk%`YhLpNL{EzJ%G>kO+&zz-^i9 zQ20+6H>P4>%se_@%cpg!s%2C(kUlUJz{|ALWVy~hq{E3O|L@~rA2LSJ*_rH(Be~Kz zXedaKFXUc-@y(;LIPS%8bD{Xwc6&3_!<{>qishRt%dw&8V^5!c{L>Gd{@8t;RCaOc zR%LZFKRO&s#v_SXJCs~$^tMCM++?9xuGe=Ot#V~(G_!whWZ&M&@4R|tWxWzlCva!z z{d2=#eCi19>3~whEyZuA0Y`-o6pqFVk6N|@q{4zPGppsspM2xWcD22}T_2xFCll@Y z+iT04rEWY~@5M8z*h8le&M(}Yo){la#jamnKY9jFf~4wNDtsvN-jVbr4kovsmR7;l zA&tC@Su8+VLx6^^rJ(>L=VS>cxv&9NyUk>iC$q@=prK`7V&yt=C5i-z;nzuJ{h6pV zH5)(2Wtt=u7amF0ivdtZ>skgw!RXR|Cm2jwD!bH;6*7r!9uRR!Y0DFe zV~18;iAZUSae&ORkww~p z@{3E_5fUIfBqTT3kSwgNv>_&dXr&=`;)vGdoi-c@efy95sZ*OS_eHfL_&UGUY}Xsj zOg1|-G=x+BS60_s%|7r0c8|BMlP?Hf-XHQwZ6+5||WhU#!p*d*dEd zHUNrBz^=ranRi&rrdzUNj2IDvaB?lg8f&QxVip%Wz9N9xm4!^S4%G-PH0@@%^i}mK)WzTIEAe9LZ%vxoBh( zcjIlhaAR8BL}+?!ytO(%JCi&3rN>*HdhOyuXKAOiUd|pF&sIC7m2x7TTw1w(>ddLh zLVn@R#i=v1>5(K}6bJ3U~58%hzxO4h<-oUw@7ekycj zmKsA=3kDK*tkn<=X&VzKLL+gefgst!1ZZZ3KMeKd;?;|rn%h=)ZbKOYLWx0=Rc6JA zR@Zh;89n6kSwP+yB#J;T(719lnh@DK3P5234y=9JLA3=Q7=?*Tk(f0AmekD`LX`&+ z6izX+NdQcI(ck>d-?VHlfhV(O?A;NguRU%1W}8)uRxwJ5MnLGPEV~9x^-=lnvyez_DC)rrdBqtF!u}(1Pqk5;%vk9W@XAO4OqH@I3dC2%foA?y)c@DFH)Bkw|7_-9SB^8d-lPyFmpJoU(@PK*@NvBGHK=)vKG`>(xwsaC~p+D34*&rUd9>qQrf z&2T*3?nbX&Uz(X6di=3N$!O}kFJFJ|rOS!3!YR9N zo=Wf(CL7=@rFbm-jqhHWzqPafK;d8ii_iV+Pd)OfkDOR3Zl66rpDK*jYTZP)`QYif z=l}A};llKdE7zv??irp;YsTb`yz@WtZA4UR4N8k^QU5ix?4+DI_ zBmmZ~3o|y**?36ecddrhfXb@5X9C!59=f*H&Nqie=)#0HAlE7wB-A!wjhs{}h1S06 zMJ9m~g#Sw-iZQgjF*C>VJDxn0#ds35d_s;`T=Px>(O~aiLgWtp^whxK3Z8=z4&!Dy z{N;KN57I+ah#h}shun5)i-k1&$1hTru!V>n8#$gZSX&Kw1CY3d2X0`G9U5AAcVBKu z%I37E1ua6y2B-bt{EB>j7-#jYt*vbpw~+&#_Ji{z=ypH&>Yva1kz*R1WR07%&~6~5 ztCe!wrW_oT)Py7owGB1tZ&(Ozl_4N>yMeY4B5!H9Yek9>T@#r089}z9;v5O%Br7ES z8KI;BSODX9A~ZGt0F4#Y-DxoPzae$w`ZUvUUP7IBYOKOo^C) zz@E~!nS_W~r2u~aCXvN~j^hEsiC3)IRD5A}W%KFlS606J{P}vTd-dA#^7>Azjo-*{ zG!m&cLfhqDqZ8h$cNTY6Kl9YF|Lz}s;?|AjTCuTbY^>dAgxZm6skLWfw7YzB=Kh1J zBh!^jOWA0+v$z$CC)$l@4_`m6S5hOxkz{i3fjzNOx4F@b&E-cA=5YLh2<-uYiHQ>8 zI#8dp<1DC$c|tOqpf*Uyi%PUARzur6YXv|K^kvQlPVF3qJH%iedF~i2U9)CqSn(Dz zFW!M|5lZ@EMTXk44SfxYK&+I|Yml+eT2+?G%M=o=iSh$a_E_~<_6f}76BG3+4NGGW zww>1+MM5?V^hZm6cVCRI9|MWLXjluRH@FU7qmmeWuEHU{1^_b3-KW~MV{s-KKW-q0 zF9OE9wmJ-cCew3~{eU}b1@FVy;QOgW5}cG4FLEzCD_0&;-QgXaE$w(2BVS-Fb0ru{ zac7vtNd0QVkeQ9l0GG#$$}thJ?E|m(YixMI8BTi_{xEzP#0vvVU5jb1Al8{1oLfQPf0J#$0jqgT(q9SSFgM+!Lc zA)Za{G&+r5v@kcmRjt2q_R{5B8-MxT^Uwap*=jSCF60x5P<|-CXLe$BWA)6j=>+cP zVB@lpcwu@OvCgJUVzg<&^^DQpoA2Iy?9n|RfBYbV8l4z^=HsU>%&(unzB)8I5em2O z-8b4Q;!`0zF`Rzodlw#f>O?$YetDqeh1r(DdbF|l{raQ=^?x=-ZMhYA9WUVNLiF_0dP3g|y>@6+y7aVlH8gPrG8DuqkZ`Ac`4ZBIkb ze>6Y1Tv(wkYuWJBu~OcLrw1otL7VsKv1J-EGnTApDev49n0NMh&0qYRLk9{0TG-btEyu8w=)#y=Qbh}U9`=>pB`UQZ$`^N!7jCTH!o*wjog%_l6o3z!g zl*LtPyI&<%LUd;a()vBRwEb;m8=zv*0DwT*3x%ZaP&(W8K5}H{;^o^HuFT(FSgBTOEj+O+9>YyS@zqWwn@J82mmAesqWO>i!6)XX^3T6; zJ{HPM7lv`pX|vM7wK;nyM>^}PGf$qtZM$NnN~~6IURp>Und*iT-JMqT=F0e~i4#wr zYTVw87CW&-sxy+DJXOF8j56hedybFBnzAsNn1;wC0c~qT+v%Jh+nleNqo^`4G4ly7|q=b)s!;C?TH$ z#MbmWa%dDG4Oj+@16>!-ShIp$kaxhVZ9m49$On(dhL(t|3+3TdIH7)(1-Wb@leq;} zT`WDb@b5%W0ZahPBlAfl-rCVCP#R>)=9tJvMRg~sy!EjIXz2G-L5c~1)x=nujphPd zHm8*a&))n7yYvKU4M9Q?`OPU-M~DtZ&L|4bzI&^P&?KjC#llBU?>qL;@#gC4OsaM7 zq0!3f%AQ=}sgEA-;k2GowY;#16EKrwqvdk9aBvn+V!v_WdSPS)4;8{$oH+Alqg2B= zo|%01^2N1x-ny}TYkO>B{NSO9^|j49?j#fnJ@uiZ@4j>H)%R9D{rDjXTVkRhByKN4 zj+Ex2j*$57tgzZtz3Gd6)RVQHVN@(!_!xs zr7_&=P}-$7c10=3&>9JhHH_E@t&y}5TFQ`1 zg;q<3NGu@$f*%Ypeg-o=Gwpp>m-p^_yXW5f-p!YpziJvoD62d3y?f6+*Swei=l?$q z1ayE*9SMQrFm!fH3NjXzNa>ImN5&*(wH!j=K|?rpK{~jn4$h^40Ue3cbArtR6+aXe z5txMz_jz>qxSx*rRl%mVi!FU9ARa5yhI~$7xLE;Ww3yxC#32q&?a$+8E4fUyQe9YB z+S=Si^l84^53csbcmG)E@Sjin;WK~u=s$4ik8HUR5(d^%8w$&5Lx>1aDUO#S5ty#g zz(P^78LfGNP#Z>TH0+4ADrXMDi$rXd0YbE06_AFV8}LnCJGP=VoFY`bMg@>v$lT>; z$K*~4#Y%G2AlaO-td;r*r36C(u!*RsD?IEDNWe(NiLuVuk&2s)F;*NT1QaS3QBmKr zNgHh7rT+xfm3G*e<1#HEiHsL+aJ2NoDaP{RLK-IJty!5cm zZ!O{@~)?fw2Kh-*~IIT+L*1 z!`WD;xjp#k0X$?Twz}PT>*n_S_U6KN{@|Y0dUf&AY=3CvrSqu~al zZ5JTzT~r>4&2ASkR9%A!%Uu|>Slp-rU00=T!H^|8#adNp1o)*3c>ty+3Q!Co87;iD zc3c1tB^GIjmAtCKd{mg1Snu3ez2yt-+^}3JU|=n3J>IJs~D9Cn+B^5MUpvFxDvMwDh)~6 zO76m_Z55Ixx{&!iO3Ioz>rhQwSU(>RCqeAEQr(#vD~HzK<1h>n99dhXwlS)JqSgdG zX}HB~@XH~X9fMIO7MH}NXfyQ%LU4|P?Uaziz)Ld@R&dY}>Fdvp4yH~$bz<~Wk39di zH~-zAe1G-M+VH+i2Io*t*B4%SH=4`l9(*9uD(}1h(CoX{H&!+#jtt_?3?s?*;r{qk zb*q2R$cZBpD+_BA6aByTYacstsPBLKm*08$-NkCWF*clh;?Wa-_U(7;jdm)@-^a^) zh6I5TktBU(HX>gxoc}1F)x%AkD;Gy&Vo(3Ry+ie8v{+3n7F+l2$sRmXNaf-Md^nlk zjCA%gm_|{K{HdmH`Pi>5p21>c3eCk6sWyGq4jJTxk!cWUu!Df1OG~z%bDiBRvXhel zHc+7=iE|jlJ@2T9jR~MuOyK%4j>3WQ;BY#I#cU)&QykaK2IhxT&!Di;nlQ+aI0h~s z#VjU%D-TZg_88RWq@%`J6V~kSP}m54UI@YpJG$neA6@?P5=#1p+%7m*9-jd=*Vjwi z+kO3gy*+sxSXc4buzDRAJ7VVsoW3NWt9|JYB=+FLx~GuXtBI96Bm*Kp;1rIyHMa;<19fjdCN+Wo!R#>RGGq$e7| z6Z+c4OViuuXKSras~H*DuEsmfNT!t<%+@z6)zxZbIF9$VXuU39{YdepEKb2FTVxb0 z0SE35NB4|aD$HJO{UrxPMnGNY^nhas-SIJ0erGzSezEE8sCDPFjF~q#c*eSbuGD^^ zge_}t5=x(up3pJW8j99|8&Fv8@`UjYH@#8;AZy426?VrZU?trEo`l}yb}hWN`eLj* zbRNcOsRx$X7j%E&yNx-^=xe8YS-RAS(;!>h_`pcRj=Ip=$*Loyjj*{V`JfnF5-pf3 z^r%8D#ft`A&6MJIE3JwU30@RJvMvJkrHwF1RbKpV3?YNAj=NXhmNCS^qa5}k)ZH9t zkffwZ2?6Y*Ys(wAuFuA6oyJ@5A31y9(eeDnw=Usqf@lX11ZWiRu57(?G1pmYUAcJk zYcFihZQi&s-)yw-jK+ASJd%y&>ecA>=7aYQ9y~Gl(AoW;dgkE7NcOjXj}g zMkL;wEp}q1O1qHGy!s#BKmYpd)mLw~@d$cyBIV!$_$y;H;#&)3x`BSz0R2KAonQ6g zdVa!P0uoga;5YwpAq1_$Q!a?OhyFbW7Rbmydb9%v0RC-qwQQ1SxEvaQN?KVioQdN6Y{y z#;QaX66>oj5z}v2v~NY5Z2%LIdL$o@ADyIcXRrrg_HM1u?Hh_`GtC#@zIJD+l1b%T zje4b0Uz}NwX7E71*viaeJ{^y&6)SH~wN}<6x%k5Jda5VeDL2+;RyK2BnarZf(Zd?|I(qoKFUQFQvc4~_c;@mk#;oMnI+@9;5ncSMY?VVyH z+Agmf1c$kahlv8QsaCuMw8oyvsm%k>1w%Tc+UiP>l z!z*h$#c)}U0K_AatNnMfSO%U&RjxTQ~mjbAk(I3?5+n9FX1tAN6OVw zo9hWX&ct-RZz{mg=?E-nEAem)#<$%_R3Aqm>Gxoaoij>(2JuP{2qW`1aK5DUieFPv!ij~6ek*TcNBanpNuDPNKYoXX*%8SRti8l znXfPzPi8cYqj6k@oJ`<|9$>iJ+@ikR36%On9u0Hs-UrzO*YnJ7kfBx>Dad1I5znPNOir63*69G^c|7lF9!GptHixgWJ3Jf}FC?}zJ zSQH}>3d#_2$43Q^{F;dHcf*QilOsvwCAVDTE z5LO&$ix7rT%581QLKZmU1|<}0<9ncZG8t<|@TobL!n1tiwaWH$pFH{Nzx>3)()!oG z^WJN3-^gTo`}>piQh9o6b$Gl#o+!81*V`-U$XqgZXSK0b=^4vT<|hXyN4M6t@7`T3 zMWa0fnU$$U%x`?lRI4^~JsHP8$IOMJSdlG-!fP8XwlauN*`yuaE=|r;OQ%@}NdzHk z^6u%?R-8}(j+TTJvn?hU9ui_=n1szJkJH5qE!GZ&gH(05Mlced2?3zwc86Nxi$K>8fuo7XRY`OAW)HA7vZu5H&PtjN$Vt^-$Y^}(%Th{fRv;+%dL7{d13 zhB1)nz_@K8b~AEZnP!m9`XaesXEd_$s)C{u)YP8jgiup$Sl0~pI$q=&&@Llo+;R+H z*2VI9Td2H_(~^m3v=ocsav*5ZP(x>4Z@V**1zGb9#SsQjID2^d`kg-9Dx{N~y>xqQ zxc}<)d8D&fA*=P^~&b)iP26n`@J7t-`p&vvia}4bbfX_{;^ZzIIN5aK|+Xv2XpiQiTNAX_IA*93Cu62K}54LOHSYP2oPLUv18G16cz zPe#mkA(eDx!)tjF-_;fnS_osvJc(vuoiK{flm$Mh^7+F!uHZvw$mOOvd>Ad?qvLCO z+&gP)Ya8bRL5a%)^0_R2Ho)YBKl<*TzrRO$u%L&DjIaLl>0GB8o4vX|eSNjE)hzV& zCX-S87QkV0lzehOOel05*r!tX@c~!&V!=1~l}crKc?JLQWMBM}fLkTfX9+&;him?^ zf=>CT2bnn^0PMlP`H>mqk~O8vi*1-LWL9EEP)%Hw*s4TLR4xt3l~219J5%Rw03{DepmqXA2o< zF@b9lnjB~*`dGCq4bd4P8GH5+(oD7oB#%ol*s-orJp@za)rbOk%LH4!wl9RMqt3!qvs&edvL7z7_)la}{1B_u;T z2V6Xfttudg7>hfvsBb~a)&)a2T6AZJk+malDrXc?ibQ=Gu&AB2OX7&Bsg*%P{*jPV zmURH{b)mME5utQlVL(E@V8T-M>)I-L&=7rIm>^*43^&CiP6+L>K`6Z)ybIEM5SSKP zD@zF3!?`*FfDc8gGq1rqi6a0D7((lY>oIUkY!#rkDgjD`o^9y$M!mSfxb5yd9%Hu_ zM{XjN3F?ML7I@+IN~aWBOO;T=8#3s{$^s=vlJdgu2Sn_oDb^%$#vW+#Zw&1wSTQAJ zKu~L~u;s|SzO{p#HC_rH#%qZ&1xSZ+$!v1+^s$AvE*vcsGKK8M*2cbx;hR%4$B*?b z&KK+TWd88s+a|afBhpktrI^5(?G+V6%pW)NQK{+0Mjb90Hn;;yf)5$`)9N6#-G5lPB1xM;QqX*6YTw(6w#y9@? zkLRwh;tZfzGJfdP_?Ld`@xjS-wTVk1Q{<4&)WKJ!w8nzK>kT|?16Lmu%jI&D9+FCr z`_16F9K0{UFQ4Qur}@z7{$$Hv{L`-&{7VE<@e=RS+Fjel;6sS+b-L0{{vRQpFs+Pt zI1^`Lgq1#t<=lzM2X;F%*gI z8ntGTTVxcvh~z(okxfnvMY*D)8Vm3PY_Y5Nj()%>o5*A&0ZU)7M7;ttF} z_aMhN2k5oVl-`jC+__nZ3MRprSkW~{WuvM(OPE%aU6~y_+YG0v8ryKUyT|4t18s`a z<|`zDG*In(jTtYcB2ne+*J`#AQVe2>1nDv6;8)* zcQ0zL4RtMs;V{hfwc)vjffNE=mrBSL0F}{l#c4#H(nICpRW1RbOFIeunWI6B0AxHG zG8n`x2$>1qbbyqMmEdEwS-xpn&N>E6>P zB7?c&Vyj(m;3UjQbmhz^KX&1bYZtH19X&eP-rDMq=C;?XwdC5tq2bEWJ>UD@)U}IC zrytn+JHcT2MvmjU; z@*@pIjAu=vy|}#nqxWX|`UlG!l~fk@K2Kk`aHF_d+$`5#_}aUvT>7cU4>P-t5*Gt} zTw8ukkYO~Hw64U6tc-gqk|A-YnT!jOvKC;DpEm3Sx!KooaMQPPBSd)U;(=he%ofwp96;l+ zycLVJS~&8?{YjefIF9~tTu&$Sx6n2x^W$Rx?!t-ri7(*sVE`WlaNA9sv;)p&q=oBY z)~Aa9`uAVlxLYaYdT?xyhYDPNZ7~)*_c#8>XU2wm`Ai_3eH6v#iU#h2SSsNRAKZi# zrxw8vGQ+14oZ?TPfBEN#I6cM~m-X^b0Q`Z0J_=BXbWRYq0LnrMN*OtC2qD3mYeFLF z63o8{M&yD~i8KT*D$f+mmY;-d54?=EGKh)-gNP{z%j1iN4`#=dO#IPWQ^|$av~VJn z48p*g;~^pYAp!nlk+KNJ(Xxh1K_Q#zZK=tQ773YCvjR#2i$w0mPh8xm`6=!=3o8}^ zvzB0Oh&~l}xI(nz;3x-ro!9Wp={=r3K>@;IVgnR5klGkRJ}emwtd6{i7*!+!`p1ji zIz1AJDH%~&a{0`!{l@42{9k`*-f&8p*_y?N(xbyRuO2tTbY+bh^@PuPv90TlI82 zU2ZhW>1b{wBY~J`B}APD+(j-#%6RKq6 zAsg-PL|~029jWS0Siu+z-uUoV4Rg2bBHoF!yBsO-aAOTW)U+%%USmf)0-79$>y%|A zO;|%~Kx6M9Z3e>2&a8+d0MzzP16{|SXvNBn3{Ksy@ohJOkgV979KJAA%?$}g0|-!c zG1OAp8g>bcGbLszx+JJG)sg#Su|0V`vUQb;IbQ5oS~zb_T^$&SH7~`6C8`QE+}ypg z*o*>Tbj3Ag&6Ze)F+BK2E@LXpoUwsJ&83qynjPG7t#EX5_VV=Mol>AULO$B5B~y`SpMNlu zOTGWr+?}oV#Ie0(%rlBAK>XywuFaeej43Rd)u*c&6U%$+M(4INom@sU?**?NiOL-b5#?R;sTEbtsM*tc3hcJ z3E_8QF!f?S@g+?@)WkGzSWnX3Fy-ZeF(rQKsemT zg23d^9|$@6mjWOHw`iIyYlHiO473<_T}z1sCT+l^OO6mW4MK1f0s#=fj)+VEFVUp_Lq?(TpYg)4m1gV!;)_wb#ZC!H&6w9lqp=b%3n^&v z)4@5J_dl@zmDjG};2*z})f;tuNL`%Y#6>glY&x2X;wQ398qc51Z*OhYi`8Zs`&tdB z_-FTw&z0)0uU6`%Eqt(Ub&~CLPa~IT##(sz-SlcPl1nF3nXOtaG1{9c;08kE+YMXW z-2%0#JHw&lq75%IP)O0G;V_y!siY=nu|kz)45+K2c#PC?9T^Do%TPk=+IehjDNFz; zi3?U+)e3&6wQH*wv302wrVW4v=1SbQF96igDIGb|s#>ouUU+UfAb}rY_ws|kHzW~S%X-a8l4uk~qFTkKKZlL0wa5g=6 z0Q}ZoFMttRPtC0WCZG*;DJm=KY8Z@J$3q(a+I3|RdUB*-C4tVSZ=>KX4~(yjQZFAU z&@mOod@%}jCzNggep74UlWJ|H;RUZK8@Vqv)uQ1KKs7pzyZTia(xAFWW^SO6TbV5vneM70qQZfEVe|BZ~$jD&6 z@q2&x=F<-!{438K&fua)n!OYk5~6<+A~u{LcWH&wfA9eS4f@YFX#c}+TzvgbG22t9 zmv9Mksg#U1isecq6KNIGxxO42>GDeWpveepqL%E1OdNJ!Yc<)-Os5?x z-<`p_+(|3)E)yVRu*>|HS>#&m0(M~^*xqUSNgaLWD2oiFPx@gyekvKcu3R)Z?BYd5 zQZF8wGofV{PKz~Dkc&Xc(YZ8uC>VYGq;J;oaRA5ri8f9F!Vdw7R+0|?@wFu{bUPpZ zFo3&PNrUbK)TmYQP_ZrCs|RQI&>c%~7?Gfp+MtlN231FT4GSi0_88I*8^ z;Z;<|jN|Z0y7T?VkxI%k(_{@lXmE*kap~nHV6}2=q-auS5mUu?T9n5DP^p9UVl~Zc zLl)+gmp0GNUtD|8>bOCZUU=D;GI=GRTp2dB)@F+h&2o+g zjYcDzjAoM2B=)98XMT2TZz0tz)v+hE>g^j>r|^`SMh%~zo6SlKSFzNatOq6xu2e zM;kzDR|j2fg~w#=)WMajd7u%F4YY19fy%phLWWBO$qvZ|TzBmnPGJa>J2sNO2>^I* zNf~`HYcSeyNYLax6kAGKhs=eTi-2jDgAad9EHLGA19IiU1(5!8*~9ICivU2hUHJWh z!79u{R(?8{$Bkd=C}1&ik-`xolk%_&^}|IcTaJead8phd0z81SghF5}83iywi43hc z$KqCX=kTBh^~8*=Z&c&9SjUPj414+_=W;z*ujpQ-A!C{e5G(_b$zE zl{@89;^t!Um78s*J_ooY^BZG&>pZL@fJhF`P#XAB2*^TwcxiddWq%7n>7O5$> zjaoIf5!lLzh@GsB#K9>m8nQS_UkqX^S|HI-ymTQ6cvP6kU9FhACSi>5s~0sv0}Jp* zWrOkLXt8fIUaTOnAZ(n#SfI%TefsCf4Ug<)!XqTW*csyHWu34$=J8?>S~h1PF)$uJ z1!V=|LW05C@ot^7rCrfcHZSy{fWCFde_F6bA2;{$MAWA)PS3&7OfHv=wPTmwoX$m3 z5!@h`K3Cu?{dT;!`P46*>>JJSwY+>Pf08flrPKMT3priXOA9^8*Q`m34*k)I|Mt6o z3XOg%pv7ipwjy!m)V44wtfq_xv;?q=+qN>=s-XhBhOH`jVVtP2#u&)x>v)I+glY~8 zx9zE{OK4@GIM~o?xWhV7m`t2p1Wc|uFt+BEU=+y>&`|usX5Rv+$0-mM(|II@iNx+A zCa#2NIZ_caB{eO%wU8NXz@+uk$m5loz}CTd*Yer9y;*P_LGMCjOuy7LChbJyQq)t-?rSBUcxs zrB^tLob;iW49ds}yDPa02`u;!k7$fmFrG-nps@rdPSf=RrAH$`2G)e7gdaUHzFe&Q z__cQ<$=r`GF3yxA+x6(1@7>%#x%a-46QzyqTCDeti9-ayO&os8~05P_N2_Y3J6MHjjf2H#XASO+vUcK@6Y||%h$hkZYh??$8oxJqk7^{ z|4<}y{k3-nBlRzS@-%+FSXyrmjqh#edq4WzLF7eaBnvvskF73T2c&QIaL8F=^u9VG zxLrnvE!0*V`X`|J^csR!D=5MeLAw}%xe~YSvD?H061S^V^wP$QYP)h8jJ^(9v?-K3 zso0)oo4fd3K;u=|wRKGti34ne&ePHyZ1d*; z`qrHe{rU3%9gowIKcAr^NANgHClMPT9o(F+E=;Y&Xjka8I`!@L*0X>0^drw6Zgv_t z-p7XsSYa{8{d|zmp8)vKpO5%iONah)p)k3k@BC%qXldnD*JkgV-eF<4q&*W?tF~@~ z{MjMsE;pgsz$~LTPk0^@jYDNoL>XvH7i-Bg?SIW>2AetdWk zKW|;Vxv*7g6f1Q4TrN{c_7q-x?efM(?cw_m;V}Sfi^Z{#{#XmAc1G4`=g&O*5KbRT zZ$ha9+CSGkj1F#-@@ zD)cpMzKYo~T*pjlwcwt_!om`(@wS990mu%6(GU9PCjr}CN9#osg)LR$vAQju2P6R4 zl89azqzkqHRTvOPhA{yWF~K^R7E5&U1$fko8k&NQU#S8y@8p^|x&c-D*Cwy0Fk$oB6B1^~HnF-v7uG zV{;d0UilB_+U3&Zu?JGE)_SRdXR#!z+XsjHo9+D6X6qYoES;O$UYM_zi_ugfy|!Nb z{&%lF^vGm3p8Yr9x>AWpK5={m*LEG++t-tlFY9?Xp)lz^39*$M&9A(C^D8gj!rc&y zrFJ@zE96qW`E-9O+Z$=DT))*@-u}dy!+Vbw+MVL@<9qx1d$toDoOq2JuFH!w5mBOD zmOxRxu_pg^KXO4_L?TkH!>Y5?8%@PKu-%)U?G88qcw+9L{>zEGl2b@-5!i*+$}KLn z{YZuF5*JNEM;+)o8lJ0ef0wq6c?UKp>TW{`Vll*87ix2MxKKBOr%_`da2`KyKu*U| zI4g)w4dOOEx{lBOp*1`q7FuGRWF+=W|HYFp^;~)7+ZS8yNY6;(Gr#!MlV3Vji*I6& zz!4W6tDu7P0Rx9!rkeB#m>2nKUwZIsg|yWHl4BhcHstJ^MsVi^=DP!SHvJ%t_@zwD z0!I{WXfg2t@7L~xHw1pLk2OT)(*_JfaVq!&0@GZrqulUMd#$4(vIy|DjJml#AdlQLuFb{^%31(P<-?eg#q90*!9rg)m&#PDxO-c!Ct0bLFHcR+%&rgI>aVn_ z$0x?K+2q=GIh&`SwR$tDr5ke-dj}6cyf3=CQGfk<{qkJ2(_UTJ7=HTf7oI+I@y3<) za-_dE^YM?~|7-u?a|v9ghUbCNEqoE3Q(O~rD88SPKM2VG?_99DeQkH>{wcnQNV7xPd@UtWkiCaDB16oLY0P!V4>@aLV z7{7N&Xkn>hD1N($7t(7+j@F`rTVroc5G+Yp>c-`d*p?0Rj$Wm4iEZrZpZ|FCQ?<2Q z%U}K1Kj=;M;~s_Ic>7dy|*nnb}@l z++JxE_7>j1Q@-&2`=<}|pFBSP@*6h?hI&4JYW(D({@e4VZ@)g(ibS4!;_x?Ly!_(( zv!i39xpbkky*<>I#{bX9!%Eh!i6YUEwgv#O!E-2RQ&nXr;(7wlNwS*RWj>40*mBlV zH^TEmJe;QH&(<<^sj#FKR$DY>gIMDfApvD9*hIW=)4UuBn~4fC?weeYh>c2uC%+Oi z=SV%FHvzGC4iLxSe8nqPI3UMofHuJ3mWu@F^8o#qK7BVCu*F>b~dbMJa zv2x~*U=*ocVGwhy#gP2innUDuZPARCRF6ACXc#m$G}we_(UvZ26)#j+lN;KYEt(R8 zSV`OPGticX>6lq8dHl&(P^Qk(;k5xcl0eh=l8`tak!W#%HxeP_x`~8TQWl#gB$BKI zO!3%gZJSsEzNfDlBu4^U4q{1}obZ%amx%%T9&AH9{_Z%rC@ewrIKara_ zkis3DXRj~*#XDd7ng8l@J)^j70|ku#G>Ool#hC`I6e(-mChuz$RA*skwZD}u7b~}K z&TVcK*Va}?h6g_TnKP>k<#X@f%;YoU!vl>{qqbh{&1I6!cD&YXu5TXv*nmMuwUoB$;s} zbY@hjTqa{76$Twgmr&ZSIl16a427b}AvA%)8Fg23juu9|7dz3)FogLXSJae9X#7OM zfstIgJFMMYT!=(yf^ikx4#yvWQ05cBno#v$Bp@LX%kb*Fq?u$UV{?x<5$ zQA51z4#8vE9cj%l8xSJ@nMgDXNa+IrI2}T^BbyJXm>a!Duv4n+MG9gduDK1BW{kGG zHUQ{q=z*C*eURMG8E~QgwBb>8YXN2g;HqgbK97Dww~hpJBlIJsr;&hMqjlS6z}%@| z_jw!D_*cJr zers)b;=t%uv9@0B;C3dFQhB@=*91qZ$=GNrTj|7?=PP~Vy^sIOgRxZf?YHMk?auYr z?mYOwNKc`^+)S(&6PKq~-#E8CabR$Mp}dZJ`L`Ok7TfEa^^uXG3=WSri^uom$NF*K z|M*BD*SL14^4{g~NV`?6ymoVXxmG@U^k}*#UGIrL{Ny1i1->LTd#SBkc>j{Bn4QwX z%vPp{Gj@=3DS04N&S>AP5PScu2t-0umR|>2r-Kj#)(TVk?vh>DpbFb|6$(t}j-(G` zF9vPNE1-XtiaD*3tYalc#1@EB-l7E0An_>paLgk2t;LJqmxPNoC*pfS?V2?adJOa# z*>yoC1fW0sLx+-}d(_H7Jaus{PzN{v=fi&()7SNU$c1Yn(?htOCvJUMNo0~8oI)3m zBx862fV?-ON=(b%VMGD5GqdJ6AV=3sK*5ll@?(XB>%~k$|Kdt0cwQ(k>r92J@)MYz z@RH;1YAKDU0FBz=(HXOpV*^ul>>2rf;l# z!I0K3^rnVw`Aw+cVkMU7dtGKEHy^Zs)5jCSLmTiLfQWflm>Ylqj5~yiR>-yBA%_c1 zM!M>>t0UEh8wL+fu8$j%f|V0m^=q_Z=meo)HSgXC495;#L+sZE2*VyB5lkQ*NL50) zXh#)f7kaZ}Hjac0tP#E1^FlWA3jhSvk;M%Q#u^i8ZMhBf!)~~NBuTViA1W#bKl5QbcIvDsY|-p?&(FeJ!rz&b8r zZbS$}UA%xTt*V0jtRNxRmki+!b2%DG74r2&bZN6Txj&011V8)egFT7(+;(NVQat-ddSIcfGS+9J+tc#tU!v_TlE9`LBQTl}DcW$jI1m8b1xhJ4M{YtyS(c zTj@-4Um8a|$%$AdmT6`BA|s={6Uo?8seR-21}61O-@DYpqa9P3vHslFN@?ltMzkI~ zG?1^iTG3h*my8YMvm^QR*iaTP`#38Vm;WZFXE)zDms?wV^5>tbFE8Es^H)+mIlQ&} z=+!&>&OUVCW8*YSk(#ZJ-EzXFvLx&BmMJAuOX>dQ)-+6h!a&!hhpOu?wu^~tF72NP zyxabcuw@>GKs0&6jv?X7ch&4J)U1Ws8!|Sd8e03^va@yGF+5AseH+?CnWxJ%k=!LD zT9aSgamthg1~K|Nmd*~M!1?cnGMC-LLr0X}uXR?jeV z`2ls)H<24xZqJHfj0i&SLETgSX-k7M#g52N+fRs(6SgG?X}bxis?P34-EOd*WM;^s{()<=4^%ASp@oe{G zV{Y@tt(6BJI8iQbUVQb|gC9GLkFv1BpIb4FfHdJng27azAI2h?T=uPZZr~w#mu{}j z&8qyI&$OU^!~}Q`ws8Bb$Kq;N^~0KRIHQ7hlOUdxU|;apG(9em79yDyKDFg zsDejgv?7g8teuE0F02(ds)q*q5|Pxz{yoK&E!ux5GqX5NEBeW|Zn8A7|AyneJ~w)G$H{A3NS&%K)=NQn>?@mqDz z(Wc{JmBAC;bIWh**47;$uTb{&!Bp7zK?;rnLOUDm*5DN7#AlKg7x(}`7B&rHD0_B*_C3&(e(Xfw?YZ(BTa8pIJvoUd zzb7kWJRP&by1eP1$tqsL4^Apvc6`0Uj@mFICi; z7U&a!)k0(DfEwDOtF1U99-b{~Yk`JMyUHm@m7^gl;R(pm6}-vXMkrPamQ;Wgu*lI? zxwsHHwYlY`jIKasEjYU-9vg-S6s=5DjtT-QqZuDEun>yfbXX*BVgJ9uKI!U1k3ME?Nr(K0tDO>YT?jfI4?4TEA|>|T5dlO|-)0EAtr#EYKN z_G|@U7+KEYm~sIJ6|Jp%>hgjH#mOs?P@5-}Xe2E13{3rySjdD3Z+8=E;IvZs?@G%pO zG;6Io&Q(n(Qu*}F3s+Og?D*JToP3ub=t<}3aeL$pRWfsj{L&)BLqgLMF=?F0B`G&G zSF0w5C7^T6Tn)g`xDt=Y%6HNV($%Vy?wpznH{d$F7$HwB8WN`hCND?Q#as+k0S23e z%G8C_+KoSmkv=#zaz*Uk5IhG%?lcCKTdz_v2`M=CJA2nU6GS-~4-!of4fru#Pa(W) z=r0%HmC&NF<@5HaPrm@z$N?2<%kR9n(C{;qjGRTLg{&R1$LR`xDs3-XJA`5HR6#8S z)PBbyfp0er^ZTu-=X!M8WUK6cw@Pb<#32=x+Cc+}+a;`Dq->I=a8jDqDGgR=Q7a+y zx||UeO%_&%tZilrV}z-#OplS;IHI|Ta>pcF6Q?I`G_IF--=~JKhXsuk? z*j(rz9NS#H`^qcVzx0WT*k-g@sq8&Eg!7x1Z?5-`_2lxKt1Hz?rMU0N_;X+QXnG)f z=i2SNH>Uc=N3;3)!Vt#nBB4+@PS=)%wm89B?aZYnNLAZnu14N;gb04E zcLlf&vXx?DjW*ZN0PN5hN4D!`AxM!(NW|a_ilIWV93{EH!d}elup2$MWpLdD)d#-0B81}ywKPe=Z$GI-p*ct62^4>>&OGH|2 z#~hq$<-=S?*+y(Lm)$=F$+VW3!y6! z6Cv^B{6Yb*@H;lEq=BjC>kEKrE(>LbS31@*@?71LM867 zRugRqmBdLL+&2k}4r|E{Ya6y`1kC!Ng#oa~uy@jG#hg$mLa`)(M8i&`%>k%W1qPxb zIn7T4G`|3NXcU(mt122B9cc&9y~*xXr6g$Vve=RIAfWL&{+6e3rY1o+BR|&3 zLKHR^kHki%!(@O;Ll zaBlUf`v>EA5X;(jPdIwP$<(qe}-mGn{KXPO&GupR2wN$OvzWdL<)2=sePi-{gy+g-`nti!v ze(sq6mBA|jC#nM_X$QJm3tuBZ;nUr7=bol3v+Xh^?%A6G{!}6d*FBYqeSQG4+tlrv z6e0)JPixUvq#&Ua57laSmpfE5EdGGt=~Dq+f{7cJkjou|3k1ur6ugVdfQ0=93<6zu z2HvAjftd-p!zlXFU9i&kurF8)M6RF`)?Gh*WWz%sZTz>^yb}ctFuum zZ#F7()yjOmeS2f$$xlD^pa0G$`-Zc)%KQ^Q|M1`Wwg2_4E9;+rqKW(K+-q)9 z33jSqAVecq&rdBZY%DBoCEBThzCxxqS8qhNR?4?(ODjto4;(w#DB^1PP61!+$0DU- zsaC45Ep6ckig-N|@6BzmmulE=h6mDn$KSqiXJxhd@O=|mJccF{S>4_~^3Z;huoEPI zdZ(x{%eobXEVOhwjzAg?9UV!%>!28~AAV!G$)`I9?uAjNqCtj+$4mKx_A-xwcXKVF z#^ZCedt~?MOGwz=E__}5a!eYb&o)#6|QnFRt|B6PIzi z&hP&IZ~ohV{>?WoUrDx-^{saQ;K)*?_Q&6!+1SiIbGpBfkG0Bc*|DCrQta}T`3uv_ z&wuvWkwRkjdvBClk+Gu_$3A*`a&qL#%kN#iJay~Jt&Kvq7Rl~Eajb7-9QX0*&8K47 zc)1=+9Dj6l z`S$$G%H~$RS)ST%Y}b2+3lBej`qEZ&=+Jn!S8iHI2~lD@EJz({nKkm(VA0-0B2%6a z*jg>qk+CQ6<_v!&;MJ5%D#aHDnG8%pE8keKR3yPU1F1}4#)#IHpbd>$QAZ@g$%D&H z7FXiV5HSXT=-EKPM#7~8-m448phqzjutP0PPoR!DQ{mJ~nvA6EycPgO zVsi&Z@G61Uuv(0fFwz8It%T6n0*^jtDlQN?r-r%VCP7Mef(9*OF70k>qO`0;gbRa- zf#)AP)QpX_g8gg~1}v$%CK1|oO};jADw`};V*9)mAA(AXpHC$5#B2I&+CN%2 z`7zv;KlXFK{uE59BwQAzp{#r!Mdd^V7{AIIC*7E)%Bf`0vxSi3_ zfu>35%85R-Fo`kY;)qA0r4e=_3z_aN@NAipf?+lpU*+{0t}m(rX*7Q_cl?>WIA9ff z9yxI`cR1a=OulN_wc*%mkQBqtPL)Re2EtZAu+hyIyK1p}P1ob$78H07Nas@j z*?;}T^RHg{cmMRedkUkEKX!aJrBtMev>+8oY{9Em2tc?3n+}K!Nsh6rf*~rrL(!zGRe`Nd%zw(LxcxB_p zOixey>@$a6d+GM(O1XD(;P`__*E^|eGo}Cbzk8GlMxS9MV@b=cy=glNOfz|N6`7XA z6b|**>ai%ea<#4}#Q}h_2UM<=B6n#hUf6)tM$pR6C?`h)(OIO8fUSBla-p)pV+&3s zLJd|~4a4o6R8D#O6%!IVXk`$v6bEaG*@Pi@p8rBZTJ|fsyV08R+T4ZKtR2597hl~p z6oX;2XqC7gp_KPh)mk`fNXzGTnp%-7a|?Dkl;dZkiU|IoCIlCN(}cv~qb7-|h$cEl z*?f6m$bd-<&MK+<;TEt3QU(t>MiiFa0Jtk5i>f@j0Gq1avN5m15)vaYUWibuL}DWs zEfpPl)A5R61%&tUD^w5?Tr|?EH*a3LyK!?hS!_J~Gy7Y`as%J&CsTMJ-O%{xZ~mR< z5=q?47B^ZTdl>zfzx&scsW@)QPy8hGc)gYe!D@}$+%*W_C&i-G?b^5h{cE3m`s}+` z7h>snA)9WsBGYqQ^;&uFNZ&|r?(pbfV|lX>Y4ygV`Bc2qXsm8ki?~oG7QL}rYDW5U z`9h+n(21umZkArUc%j*doERQ2m5VEj#pTZWZ~peL;HrAMt6t;mR8xAi?U2 zm7_5AcLv4F%MP+zaH+qs6348@s5s^Enox>~ihQ;zwZ0qyO)&urHLW!iP645+S86*k zs39l}XEwwae(4g<63+hVNu41T!;waEn@1~^M_cwe_{VK0#cS{Y% zQ}M96U9@+qe<0t06?KuUyGZ&hzo$4U81MTeH*tUU@LXT~=o>lxiL}hzCUpsOC$jJC$D-o@f)~>vBA=f)JmMP55 z-e@*z4?T9@p78@C`+Kka@WNNV_D&;FiEI~}wbj`-?~WbBiA0g=Rs|nC#?u3LmfPp= z&j0e?``q|wy3MznkclR1w^ZDAGZv-4o;!d-JohSat133T4->Ru6W7^J07_$roL%#s zVsNAC;=(`c;A@wO8ZPK=ct3L&*Bo(p*nCO(NuUbXP@?J2u?DJeOT#Go+?W z^cqD5w4%p`;qF+tj0Lwvq~k0S(LZWoF&`Z~U&6sUPxw=8?Nsv*aDmCjLGK0=fZZW? zDikFM*)05J9~Q4AN|6^YnP`Z#TveGZ?;-^@^pQzvhVQN@GxBzAoNt^PA8p7K!T@R zfLX|8O`shX6THl4y7?8Nh`#pSEB8HcwB1Sl@Wl&}TH>*@$3}bm<`y@nXKQ1Fx#JUq zmAQ@9N@a9BlZixnGWlCmH zOO@16OKK&~R^2);i66x29fsMm(gy(AU1<1FYb&N!aMDJ%3BbaME$-zx za%}I<{>~S_`j7tn{=G-fNd0TB%-a0B}H$zs92FXsq6ewqu>b zQ1ARoaq{r!=wL2Vt<^Tl7vEaAd~0oJa`3^&>c=O?P8?Z#_xDF@~QaqzPc+u)egb4T7P=j>SOug~x>G z5J}T`3Gq8XYpO|!Bld-rM5aMf0lA{WV7zb={F@gk3ByS#SOUjd7U2|_m3dpkZyiyZ z>_+4+gGjK3o*^bS9T&2d`g6?2hk@GM3_aWG@X4z&*;6uPL4VB0GENOEJpvO~%<1}K zbNnvQY2toB(Rd`@Z1Qga_}Gg5kjI7gM{{L9ZBa%Ra1q%T6_z=}6_8XIMJpX=-o;s< zA_Z~2puz%kEP=KFMN58xApbn!{b4|^E*a(dKsm_D0iY=)N<}8@U2V}2Lje<#Nw5}- zYRMC)rgAbNsYU820LE?C3xPQ!n1~e_lC`1bY#9WJ8&B9HW6jF= zx`j&s&PW-s)l&{!Da}PSt8=THOQo&YdULa!*gKrc#3G3}4z07e$O})R zp!-mnyv3Gc<{1f2I+!=(&m|-TMd^75+Ll*50)n%B%A2(}UcQ-XrC(mUgp1$5`0S%k zJT=*qkDot36KQPs;B8~Q6sb3JI0ZBs&nFYJ)3oIfHnqwT9Aq%z#nAUm$HD`z^t z71I-AXi-B~LoU$gIZSe$HtbGayC%|>*i^2usRRuXY6EQKOQj4I88@Ak#4q`ZiPp$L zY11W^y&w>tB7Kd}oOQMSFs()lYi+y3EL^v~2(7KB)fUPlZ8q?cOYvBXnL%5wiQt7_ z)J?e4yVBz1;LDjM-0rgZ}H;03y=Y^s*8J3!=uM*XcR0v0f6^1X1tURh`e9Sr1$1#$A~X_z#R8Ea z8JYo{2nFNBqs*qEfpx=(FC|Ae&~_zInb@ok%7mr`FC32!C56O`SP`v_gcRHsL-A+~ zt(Dm7T4$ac4{J$a*`oLcXynMmC;rCgzy8m@IvnXec66fEY()E7#|H+ds--{q{@b(5 zYv*pPojJB|aIC+vQ9OO$_|Q;)W2G`by}sS(+**mQ#s`bFp31eYqp?D=-fEZDpMK`Z zndc4{*Or&&X6tKPxSsgbsqyIgi9cO=^YkP4?cZ0Je(}xq>vJ>j-`uxv==h$#`P;Y` z(NZJc$dC8E{NCJbDcR}Wzjq@4*Z=P451-mYKT_j1)wqoiEv9m&0=7ct@WH${%8ujJ zl?`cSt?XoGg$NbXyY#+u zP+RIUa~HYQak9PwSPdJ&L8u(;ROAvl3Eagdgpk>oZuW`uA#jy@r(KHRU#Aw|TCKwb zU%`T(?v>6Qbj(EoV=H{#I|Lzueh9;8(-0f1HDoj}S}G4WLYW64?x1+goR`=J090_B zwauTl-C{R0(>Gr1pCoJ&2wjpDDlc(6!Q9Y|p)>mKOrS*kA#tHx0u+w?c-hGg=!X!A z<3ih>l}-ibB1Xnbf<%TcmrIh8w#bcyIwTfytUYobXcuONnx+xkuq_*QQnBO<-+a4} z$elSgaiGzRCZZ)=N)^xMvT0myh5K#dxfJw5O1GtwnMMNYo=E<9(fCGa7B@Gx0>d zeP`}=ExG;3FFiFpJ`^dnHddRjzc>HFxtq(I&3H0itksY09s9X6r|(?3Gc=qV7|G#* zVLfBGY5=9-Xq;H2R+K#nd2y=d*3cb6k*lqAH9NJ^hNbpxNecmwsVE%J5G$Y0D%=52 zSm;Sat85N$*YGG!81K%>>}n1?VkKe@W!GrDxX6*~1#JzI*@V_Ju!+EzxbOn-PjxkM z89ZMcr(i_rl*F2PXd@A)W=J$n&OyW0cq|KV-B$w*orj&WkfdyC_fq!wm%sdFp98LX zAO|UsfeE|X1iE$@0x2t@$OBrA+~-8-!!UKL4aI0f)Al5aM#C8}BX&~ois+hrP@4zN z7r!gfFkGQhs+J@Y39o}-7W#ZRVY8{kZXhl#+S0|^r4^x0I3nqwAF(MnzSZHGyeq!A(-es`m9BqIA>vKV))o&$8X=dd*}9iESkxuvN8NPFx;2z zADZ51++C^Uld*|HY9N_PCF7k+z1eJJ`ZHIT8aFp%1IPAcMg~?k8$G@G`PHpNr~K*D z6V)3xXMTKf^ZNAKmD$+~Q;m(yiSd!EvrGFA;WFXo%@@wiUYt+HG6yF|tDVSuch^$G zLo@5;tIOr;@WCfO_eneu=J?s8Pkrem&M`$jVt5J@EtC;$oW<)JF*f{$!7po`mg?%& z0diO6@a@R&dPUo3-ZdouI4a(q7~)p~>l%>jl)wZE%0#Sdg89Sq_ye|DkbvA$$aaS{ z1>%Onp?Tp2;uNh%<#-GrJ&eEQ!rV4$;s+vmZ!aK~)%&chjZbKiVnut9WpbPl$o{9f z1{h|k@SJ~P>M#EB>vyg$Cljfun{(4w*K)m?k$nYbvhUEAi{>&2jHwNXw+wNkk%$b& zo5w5$*p-MGM`#!{M{=d!oi=DZXBHsN6mNVJR03y#0|tZZuZy8a;cHPKYAdXcp0w7B z%Woj6^D{_66fa=Yb;!M@c+ow=7?1^Pl*!K_cpDxWNn4`w%T1&ZTDg+4A*P2%F5!@z z1AxZWid@#n6ySEVxiz(%-fZ;sq)vYHQ14(Cx7S?Xu9xxB8BcAMYY(11-ZzM|^X17D z_SGM(G%Llg%uix-`6&RTNgowROwr@_0-o{H7pC8OdL+>Afbcd?wbV52-?HA_DiF z%Omk)C=6>J-kJ!liATav?HUGqh$}oIR7`-}m~>+%m6Zpqv!H&9R)@1t^JCdd8-R(^r6cQ2gcOL)R;koaO|dZOi0i!;3HpwY#a)n+&xwbK*= z-#V-nNq4zFeNzi(pZ8fgar!FE{*5g#lpFrr!12<}Z4rZz8fJLWG(fcQ86e-Ed*I2F zse#@Lm+#Il6f=dsb|+nKWLGMwjSdu1w8D?U1&U%Yf3TAwdODU)+h44NghFbw<E}LuRwgtl$hS}#=`Gt^uX#}Pk?2N+DNNBnlREVGCAalJ)Jgx**Sj=RV z$}qno1t4n(U0dSkNX(i+rfv}NXF%a04?O895i*k%t+~fZFh;CMPXosQS+NL0TIh(K zee{76Fmi_ik8vAEutU#X^hdp3&YOkv>o=}~!vA|6XeE@$PZzRM$f%?<>hZ(TbyewE)_R6wja5F v$mDS?VzWzHm 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

0_8k4EK5wb<9(kYlmXPe4aS0|M0)Etdy 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 z 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.10.0" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@astrojs/compiler-binding": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding/-/compiler-binding-0.3.2.tgz", + "integrity": "sha512-8w/9CWmYrAJJ8N0SY3O43ws2BgxoW6u3QsD8u2mE140lMYAlwh+tlNoUeSBq22wVheFuiBbR212l6ixZ2IIgCQ==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@astrojs/compiler-binding-darwin-arm64": "0.3.2", + "@astrojs/compiler-binding-darwin-x64": "0.3.2", + "@astrojs/compiler-binding-linux-arm64-gnu": "0.3.2", + "@astrojs/compiler-binding-linux-arm64-musl": "0.3.2", + "@astrojs/compiler-binding-linux-x64-gnu": "0.3.2", + "@astrojs/compiler-binding-linux-x64-musl": "0.3.2", + "@astrojs/compiler-binding-wasm32-wasi": "0.3.2", + "@astrojs/compiler-binding-win32-arm64-msvc": "0.3.2", + "@astrojs/compiler-binding-win32-x64-msvc": "0.3.2" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-arm64": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-arm64/-/compiler-binding-darwin-arm64-0.3.2.tgz", + "integrity": "sha512-MM8tn8CSimcfytaOla4b6acN8mKWiL/rlAA1fpT3/Wl7dNGSE4y8FjTN/zJVNnb63CsLWG5zZwCt01TXtDKh9g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-x64": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-x64/-/compiler-binding-darwin-x64-0.3.2.tgz", + "integrity": "sha512-2lXOlzf8xb7jLomRsf/aswh61/NnGusynB2OwFkK6k4pmOtpfXMYnG0PLfXrEvxXYj69NdCnmUYXtHDd+JOOag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-gnu": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-gnu/-/compiler-binding-linux-arm64-gnu-0.3.2.tgz", + "integrity": "sha512-BmU3kWj7qnLrd4vzm49zFEPJ5oFnn1tCT4Vt9hZbqdU5Cmb8GZl7fn6VFsnNfe7B18a2gIFtVzbLINtYl5kBjQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-musl": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-musl/-/compiler-binding-linux-arm64-musl-0.3.2.tgz", + "integrity": "sha512-f0heT9ZZEseSu5bHCeb80eL2DH07ArE6U9xi1WT/PEusNjzPmEr3GJsjG1tRLo5VYUUYX7h3ScaqGmGrMOVGmw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-gnu": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-gnu/-/compiler-binding-linux-x64-gnu-0.3.2.tgz", + "integrity": "sha512-M8fOUt0itRpqiGyoEA/ij184s8O+hqbCz3+YozRusOOM3osgGljpDThhbKAJjqh82wOo6FioQ4w8PBvU1XMD5Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-musl": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-musl/-/compiler-binding-linux-x64-musl-0.3.2.tgz", + "integrity": "sha512-/Kebk8sO6HnLeSd691JkaAPfN7CqR9/KEXmWvyNPkaKNGmj8rTZ/lf2uXtnPu92Lan84UrKdIKVPy1fSo2encQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-wasm32-wasi": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-wasm32-wasi/-/compiler-binding-wasm32-wasi-0.3.2.tgz", + "integrity": "sha512-pUA6xbcOSB7DhfzIArB8BCAkFfAIqriiR7zl5zOStd6oU2G0kIKj+GUdGnyXyhfiv881Hffyk5tC0mR18sDjDw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@astrojs/compiler-binding-win32-arm64-msvc": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-arm64-msvc/-/compiler-binding-win32-arm64-msvc-0.3.2.tgz", + "integrity": "sha512-ESruf+6Qkl1trHUFxI6GSf6t52j8yN2kCNSzMWdzt7V/T09tFHrYzrVaJQohb2C9bJUH76pNvX6Zb51+xCQc9Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-win32-x64-msvc": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-x64-msvc/-/compiler-binding-win32-x64-msvc-0.3.2.tgz", + "integrity": "sha512-wzzVrEbOwbsLWOdEbocskjMRx2aZPxJ7ZbmL+jnpBamFwmigm+2M/wzuM6JWncocgYwLic1csSpalBh96kQKXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-rs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-rs/-/compiler-rs-0.3.2.tgz", + "integrity": "sha512-xlx/T7JovIKduu4ucbTQUxQ5+Q8wxkHxhLjnZk3VlJbhbQ9RLvvuDk1p2YYFYFQ5y14dVm3FGGO4isQXa4F+Tg==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-binding": "0.3.2" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.10.4.tgz", + "integrity": "sha512-nozZSy/mKYLqe4YrqbKtdOszedAfXYCtw3wZ0d+CAjz4GqQ4L9rl1ltIL5BlgwmYVinJg/RZ0MgGuWOdlyRZlA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4", + "@types/mdast": "^4.0.4", + "js-yaml": "^4.3.0", + "picomatch": "^4.0.4", + "retext-smartypants": "^6.2.0", + "shiki": "^4.0.2", + "smol-toml": "^1.6.0", + "unified": "^11.0.5" + } + }, + "node_modules/@astrojs/markdown-remark": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-7.2.4.tgz", + "integrity": "sha512-MvspGMynWKAjTe4/lTUdmBPHIFKNVLTCF6UlyWGogTGzNrTvjD+D4n48k7h8swxsEPKHK2TwxkZO7uoaCv1Pow==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.10.4", + "@astrojs/prism": "4.0.2", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.1", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-smartypants": "^3.0.2", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.1.0", + "unist-util-visit-parents": "^6.0.2", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/markdown-satteri": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.3.7.tgz", + "integrity": "sha512-NHcHbrKW/opbZnTZQ5nH293BdcK2VV0tjuzI88CLnvy2njiEJVwUQ5KFnYd4NoWgHJCY/I1CyjGWCR4Vv3khXQ==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.10.4", + "@astrojs/prism": "4.0.2", + "github-slugger": "^2.0.0", + "satteri": "^0.10.3" + } + }, + "node_modules/@astrojs/mdx": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-7.0.7.tgz", + "integrity": "sha512-hv+NJh2s+/KDrjXaYNOaS344e3M2ekMXHBR7x9EwBwE3VvE1y/9Ifh1rhR1H2zK2sMgXoUnakI9e9ZeCKPX9/Q==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.10.4", + "@astrojs/markdown-remark": "7.2.4", + "@mdx-js/mdx": "^3.1.1", + "acorn": "^8.16.0", + "es-module-lexer": "^2.0.0", + "estree-util-visit": "^2.0.0", + "hast-util-to-html": "^9.0.5", + "piccolore": "^0.1.3", + "rehype-raw": "^7.0.0", + "remark-gfm": "^4.0.1", + "remark-smartypants": "^3.0.2", + "source-map": "^0.7.6", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" + }, + "engines": { + "node": ">=22.12.0" + }, + "peerDependencies": { + "@astrojs/markdown-satteri": "^0.3.1", + "astro": "^7.0.0" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-satteri": { + "optional": true + } + } + }, + "node_modules/@astrojs/prism": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-4.0.2.tgz", + "integrity": "sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.30.0" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.3.tgz", + "integrity": "sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^4.4.0", + "dset": "^3.1.4", + "is-docker": "^4.0.0", + "package-manager-detector": "^1.6.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz", + "integrity": "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==", + "license": "MIT" + }, + "node_modules/@bruits/satteri-darwin-arm64": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.10.5.tgz", + "integrity": "sha512-27KTVl4TJkVahMy/ohyA7qd4938G5UNneFUz/PsScYfpIhj0IVAS23mpcJXdPF44sa6nva198lmV/cKIb2YPyA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@bruits/satteri-darwin-x64": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.10.5.tgz", + "integrity": "sha512-IjnLe3nKspq6qaeqGgjT7MT8VrTV74yWRlaag7ZdNsI8TDAYZ0iPxMCo+9KQZHUk5EyVB+reBI/PFWL5KuFw9Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@bruits/satteri-linux-arm64-gnu": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.10.5.tgz", + "integrity": "sha512-glkYXZCJywjP13v67eAyAMSJdF+ncvEbYvgi/wOtffL9tQ27lr/zsyzUfgs+ovjJ9d8JNQKiXeiArJcX8PJL9w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-arm64-musl": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.10.5.tgz", + "integrity": "sha512-yWdgG1g17Nh2QyGVlFUxGRa3FEFwiMcpZEyMNWkbM3deC94cmVc+/i9OuyFpdKuWo3GkgoCtYVOoxk1uCnCZIA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-x64-gnu": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.10.5.tgz", + "integrity": "sha512-FVaLoPT1fBgGl0J+AYebyyXJYBachGl8Oyyrf1lye4RTqCB4S0Gwkj1uM9RJyThUOvx5VUmAT1CnNh1SFHA+kw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-x64-musl": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.10.5.tgz", + "integrity": "sha512-EHpVAx2bqW3GINHTKkljtxVfQmVDGWIuwOYOP5YghTj+0PkBa2o8oKPRtQ9Kbsr1Fye8jtUcDjhwj2jMNugZKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-wasm32-wasi": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.10.5.tgz", + "integrity": "sha512-ypz8c/Zmipxp4IoeDa228Gstv6TLzVmNs3yC6wKCoNSOjx1iwpgzu87Y3hTkXFdwChVGU85qeUDuOIarGUZQLw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.2.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-win32-arm64-msvc": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.10.5.tgz", + "integrity": "sha512-siTV88nb0LRqNpkL2gXboqCwVdq95sLtzMHS1/3eONV2gLbB3NAK46wmSMvCO/yquBvI2lvaFIfd8P12ecsxBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@bruits/satteri-win32-x64-msvc": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.10.5.tgz", + "integrity": "sha512-C3IfPvfvMXmlzBxaMPKFS1XiuV9pu2mC7YqkPk7PSvTgPZ8gbdASIpHpztDLvTTQjqZ0z1Ol8tK5X+V6XXC0wQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@capsizecss/unpack": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz", + "integrity": "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@chevrotain/types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.1.2.tgz", + "integrity": "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==", + "license": "Apache-2.0" + }, + "node_modules/@clack/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.3.tgz", + "integrity": "sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==", + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@clack/prompts": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.7.0.tgz", + "integrity": "sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==", + "license": "MIT", + "dependencies": { + "@clack/core": "1.4.3", + "fast-string-width": "^3.0.2", + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.4.tgz", + "integrity": "sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/types": "^2.0.0", + "import-meta-resolve": "^4.2.0" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.3.tgz", + "integrity": "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.3.tgz", + "integrity": "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz", + "integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.2.tgz", + "integrity": "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.2.tgz", + "integrity": "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.2.tgz", + "integrity": "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.2.tgz", + "integrity": "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.2.tgz", + "integrity": "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.2.tgz", + "integrity": "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.2.tgz", + "integrity": "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.2.tgz", + "integrity": "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.2.tgz", + "integrity": "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.3.tgz", + "integrity": "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.3.tgz", + "integrity": "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.3.tgz", + "integrity": "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.3.tgz", + "integrity": "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.3.tgz", + "integrity": "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.3.tgz", + "integrity": "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.3.tgz", + "integrity": "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.3.tgz", + "integrity": "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz", + "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.3.tgz", + "integrity": "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.3.tgz", + "integrity": "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.3.tgz", + "integrity": "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.3.tgz", + "integrity": "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mermaid-js/parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.2.1.tgz", + "integrity": "sha512-n12NohV3mrUyUL2o93IgG/ifeW9FTyeJn3zDxkhwa8MJ9Fxg3HQMlA3RiGmD/3UnJvheztkjjQAjA2T4LmUcpw==", + "license": "MIT", + "dependencies": { + "@chevrotain/types": "~11.1.2" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz", + "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" + } + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@oxc-project/types": { + "version": "0.146.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.146.0.tgz", + "integrity": "sha512-XC0QsnnhVe7sLIWmYmdPw7x5P0h4W8vUU3Nv1ySgWXtvCz8NizoAEpGXA0sOYoJQV2Rl13LgURAHQ5cI5ILCSA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@pagefind/darwin-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz", + "integrity": "sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/darwin-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz", + "integrity": "sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/freebsd-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz", + "integrity": "sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@pagefind/linux-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz", + "integrity": "sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/linux-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz", + "integrity": "sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/windows-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz", + "integrity": "sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@pagefind/windows-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz", + "integrity": "sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.5.tgz", + "integrity": "sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.5.tgz", + "integrity": "sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.5.tgz", + "integrity": "sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.5.tgz", + "integrity": "sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.5.tgz", + "integrity": "sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.5.tgz", + "integrity": "sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.5.tgz", + "integrity": "sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.5.tgz", + "integrity": "sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.5.tgz", + "integrity": "sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.5.tgz", + "integrity": "sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.5.tgz", + "integrity": "sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.5.tgz", + "integrity": "sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.5.tgz", + "integrity": "sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.5.tgz", + "integrity": "sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.5.tgz", + "integrity": "sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "license": "MIT" + }, + "node_modules/@shikijs/core": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.3.tgz", + "integrity": "sha512-QCR4q2ZO/ILJEuwiBMel4wdcTDb1JGwfjKTxPDF6x8ixOaluPrVqIn06C99AcRPhmYlBR56d/Fb+GN58GzExpg==", + "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.4.3", + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.4.3.tgz", + "integrity": "sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.4.3.tgz", + "integrity": "sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/langs": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.4.3.tgz", + "integrity": "sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.3.tgz", + "integrity": "sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/themes": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.4.3.tgz", + "integrity": "sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.4.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/types": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.3.tgz", + "integrity": "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.4.tgz", + "integrity": "sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz", + "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", + "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==", + "license": "ISC" + }, + "node_modules/@upsetjs/venn.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@upsetjs/venn.js/-/venn.js-2.0.0.tgz", + "integrity": "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==", + "license": "MIT", + "optionalDependencies": { + "d3-selection": "^3.0.0", + "d3-transition": "^3.0.1" + } + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/am-i-vibing": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.4.0.tgz", + "integrity": "sha512-MxT4XZL7pzLHpuvhDKdMaQHMGGkJDLluKBLsbstn+8wv9sWcFT6h+0ve9qkml95amVTZtZV83gQe2hY+ojgHLg==", + "license": "MIT", + "dependencies": { + "process-ancestry": "^0.1.0" + }, + "bin": { + "am-i-vibing": "dist/cli.mjs" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/astro": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/astro/-/astro-7.2.4.tgz", + "integrity": "sha512-+cuLsBns2wwUHI9a10xZMbjrF91m7+QNwqTVeljTx0B8Lf+8h0LgVGjdVIL2FALDKD2I565lczeeS3BFC+KdZg==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-rs": "^0.3.2", + "@astrojs/internal-helpers": "0.10.4", + "@astrojs/markdown-satteri": "0.3.7", + "@astrojs/telemetry": "3.3.3", + "@capsizecss/unpack": "^4.0.0", + "@clack/prompts": "^1.1.0", + "@oslojs/encoding": "^1.1.0", + "am-i-vibing": "^0.4.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "ci-info": "^4.4.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^2.0.0", + "cookie": "^2.0.1", + "devalue": "^5.8.1", + "diff": "^8.0.3", + "dset": "^3.1.4", + "es-module-lexer": "^2.0.0", + "esbuild": "^0.28.0", + "find-process": "^2.1.1", + "flattie": "^1.1.1", + "fontace": "~0.4.1", + "get-tsconfig": "5.0.0-beta.4", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.2.0", + "js-yaml": "^4.3.0", + "jsonc-parser": "^3.3.1", + "magic-string": "^1.0.0", + "magicast": "^0.5.2", + "mrmime": "^2.0.1", + "neotraverse": "^1.0.1", + "obug": "^2.1.1", + "p-limit": "^7.3.0", + "p-queue": "^9.1.0", + "package-manager-detector": "^1.6.0", + "piccolore": "^0.1.3", + "picomatch": "^4.0.4", + "semver": "^7.7.4", + "shiki": "^4.0.2", + "smol-toml": "^1.6.0", + "svgo": "^4.0.1", + "tinyclip": "^0.1.12", + "tinyexec": "^1.0.4", + "tinyglobby": "^0.2.15", + "ultrahtml": "^1.6.0", + "unifont": "~0.7.5", + "unstorage": "^1.17.5", + "vite": "^8.0.13", + "vitefu": "^1.1.2", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^22.0.0", + "zod": "^4.3.6" + }, + "bin": { + "astro": "bin/astro.mjs" + }, + "engines": { + "node": ">=22.12.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.34.0 || ^0.35.0" + }, + "peerDependencies": { + "@astrojs/markdown-remark": "7.2.4" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/common-ancestor-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-2.0.0.tgz", + "integrity": "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">= 18" + } + }, + "node_modules/cookie": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-2.0.1.tgz", + "integrity": "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==", + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cookie-es": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", + "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", + "license": "MIT" + }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", + "dependencies": { + "layout-base": "^1.0.0" + } + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/cytoscape": { + "version": "3.34.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.34.1.tgz", + "integrity": "sha512-Lr0RvH9H75y9ar8h9Toy6u4lxRSCcxUq+hHcQ26sVWo6BnaQp1gwEZOYqwuYTZhyW7npyKnNLP8oJ2p1/3OZ7g==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "license": "MIT", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz", + "integrity": "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==", + "license": "MIT", + "dependencies": { + "d3": "^7.9.0", + "lodash-es": "^4.17.21" + } + }, + "node_modules/dayjs": { + "version": "1.11.23", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.23.tgz", + "integrity": "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/delaunator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz", + "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.1.tgz", + "integrity": "sha512-+17vil3EVQRzvtDJSFuTWEb8XJRvXqAiV3qZyQWD398QeXUa6CxsUyMdD1fxzEhUrd4FojitFz7lhIHBTlV4fw==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.14.tgz", + "integrity": "sha512-dVoH9z+MY+C9IilgGCk3YfFqjLi3fChm2OiKJMzh6axrJ5qwxqWaZamgmHrpv22CN/KdbZJuGEGgfQoL00LTdg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", + "license": "MIT" + }, + "node_modules/es-toolkit": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.51.0.tgz", + "integrity": "sha512-zC2lQGkM7QX+Gm6iM3+WIdZJzthsEd14LvRNJneSO2hzyz/zNBENR8+YXWo1cKxgPBtV6ksPYHELbcwBRzmdCw==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks", + "tests/types", + "tests/browser-compat" + ] + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-string-truncated-width": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", + "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", + "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", + "license": "MIT", + "dependencies": { + "fast-string-truncated-width": "^3.0.2" + } + }, + "node_modules/fast-wrap-ansi": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", + "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==", + "license": "MIT", + "dependencies": { + "fast-string-width": "^3.0.2" + } + }, + "node_modules/fastdom": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastdom/-/fastdom-1.0.12.tgz", + "integrity": "sha512-LB+xjSTEbjHE1cWsxu+tN2Xqr1kpi+V9aADI7sVM5ZMaXyYGPHULQMzpJMYqOTULK/73pUkWVzzObFRBkPr+hg==", + "license": "MIT", + "dependencies": { + "strictdom": "^1.0.1" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/find-process": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-2.1.1.tgz", + "integrity": "sha512-SrQDx3QhlmHM90iqn9rdjCQcw/T+WlpOkHFsjoRgB+zTpDfltNA1VSNYeYELwhUTJy12UFxqjWhmhOrJc+o4sA==", + "license": "MIT", + "dependencies": { + "chalk": "~4.1.2", + "commander": "^14.0.3", + "loglevel": "^1.9.2" + }, + "bin": { + "find-process": "dist/cjs/bin/find-process.js" + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fontace": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", + "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.2" + } + }, + "node_modules/fontkitten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz", + "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==", + "license": "MIT", + "dependencies": { + "tiny-inflate": "^1.0.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "5.0.0-beta.4", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.4.tgz", + "integrity": "sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "engines": { + "node": ">=20.20.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/h3": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", + "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.3", + "crossws": "^0.3.5", + "defu": "^6.1.6", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + } + }, + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-4.0.0.tgz", + "integrity": "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/katex": { + "version": "0.16.47", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", + "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" + }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/magic-string": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.2.2.tgz", + "integrity": "sha512-veT/+7iXrXzT39XnEN4lOxtNl72dMgJ8Lp+5Bd6YcMSWpb0n0MjBM8Uuooi6jgJr8dhUW2swQgBmoZVMni5SVg==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.4.tgz", + "integrity": "sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "source-map-js": "^1.2.1" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/marked": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "license": "CC0-1.0" + }, + "node_modules/mermaid": { + "version": "11.17.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.17.0.tgz", + "integrity": "sha512-Jo9N377Wb4MSnHFPTbLi2SxFpsQl4eVHoxnW5U1Md9EazvgMp3s+4ohDxr81YNTgbn5Kj7HJ3yslrSJ52kwpbA==", + "license": "MIT", + "dependencies": { + "@braintree/sanitize-url": "^7.1.2", + "@iconify/utils": "^3.0.2", + "@mermaid-js/parser": "^1.2.1", + "@types/d3": "^7.4.3", + "@upsetjs/venn.js": "^2.0.0", + "cytoscape": "^3.34.0", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.14", + "dayjs": "^1.11.21", + "dompurify": "^3.3.3", + "es-toolkit": "^1.45.1", + "fastdom": "1.0.12", + "katex": "^0.16.47", + "khroma": "^2.1.0", + "marked": "^16.3.0", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neotraverse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", + "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.5.tgz", + "integrity": "sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.12.tgz", + "integrity": "sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==", + "license": "MIT" + }, + "node_modules/oniguruma-parser": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/p-limit": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.1.tgz", + "integrity": "sha512-0trZaiG7Y7kN/Egy9a8j47t9osC0Tch4PaIWd9yGF6bvmlk7muExRvGNYb8sXBwEKMoNKsbNN9P8EefuQekE4Q==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.2.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.3.tgz", + "integrity": "sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.4", + "p-timeout": "^7.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz", + "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==", + "license": "MIT" + }, + "node_modules/pagefind": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.5.2.tgz", + "integrity": "sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==", + "dev": true, + "license": "MIT", + "bin": { + "pagefind": "lib/runner/bin.cjs" + }, + "optionalDependencies": { + "@pagefind/darwin-arm64": "1.5.2", + "@pagefind/darwin-x64": "1.5.2", + "@pagefind/freebsd-x64": "1.5.2", + "@pagefind/linux-arm64": "1.5.2", + "@pagefind/linux-x64": "1.5.2", + "@pagefind/windows-arm64": "1.5.2", + "@pagefind/windows-x64": "1.5.2" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "license": "MIT" + }, + "node_modules/piccolore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "license": "MIT" + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "license": "MIT", + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-ancestry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/process-ancestry/-/process-ancestry-0.1.0.tgz", + "integrity": "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/property-information": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.3.tgz", + "integrity": "sha512-gCaK+ndZ0hYezlqFegHFCVh2CQemsi0Npdh1qVM9bxlUFknjkbP6VmojWhddOCrbK0PbbacmYLWfTULRiT1eWA==", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", + "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", + "license": "Unlicense" + }, + "node_modules/rolldown": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.5.tgz", + "integrity": "sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.146.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.5", + "@rolldown/binding-android-arm64": "1.2.5", + "@rolldown/binding-darwin-arm64": "1.2.5", + "@rolldown/binding-darwin-x64": "1.2.5", + "@rolldown/binding-freebsd-x64": "1.2.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.5", + "@rolldown/binding-linux-arm64-gnu": "1.2.5", + "@rolldown/binding-linux-arm64-musl": "1.2.5", + "@rolldown/binding-linux-ppc64-gnu": "1.2.5", + "@rolldown/binding-linux-s390x-gnu": "1.2.5", + "@rolldown/binding-linux-x64-gnu": "1.2.5", + "@rolldown/binding-linux-x64-musl": "1.2.5", + "@rolldown/binding-openharmony-arm64": "1.2.5", + "@rolldown/binding-win32-arm64-msvc": "1.2.5", + "@rolldown/binding-win32-x64-msvc": "1.2.5" + } + }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "license": "MIT", + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/satteri": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.10.5.tgz", + "integrity": "sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.5", + "@types/hast": "^3.0.5", + "@types/mdast": "^4.0.4", + "@types/unist": "^3.0.3" + }, + "optionalDependencies": { + "@bruits/satteri-darwin-arm64": "0.10.5", + "@bruits/satteri-darwin-x64": "0.10.5", + "@bruits/satteri-linux-arm64-gnu": "0.10.5", + "@bruits/satteri-linux-arm64-musl": "0.10.5", + "@bruits/satteri-linux-x64-gnu": "0.10.5", + "@bruits/satteri-linux-x64-musl": "0.10.5", + "@bruits/satteri-wasm32-wasi": "0.10.5", + "@bruits/satteri-win32-arm64-msvc": "0.10.5", + "@bruits/satteri-win32-x64-msvc": "0.10.5" + } + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz", + "integrity": "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.3", + "@img/sharp-darwin-x64": "0.35.3", + "@img/sharp-freebsd-wasm32": "0.35.3", + "@img/sharp-libvips-darwin-arm64": "1.3.2", + "@img/sharp-libvips-darwin-x64": "1.3.2", + "@img/sharp-libvips-linux-arm": "1.3.2", + "@img/sharp-libvips-linux-arm64": "1.3.2", + "@img/sharp-libvips-linux-ppc64": "1.3.2", + "@img/sharp-libvips-linux-riscv64": "1.3.2", + "@img/sharp-libvips-linux-s390x": "1.3.2", + "@img/sharp-libvips-linux-x64": "1.3.2", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", + "@img/sharp-libvips-linuxmusl-x64": "1.3.2", + "@img/sharp-linux-arm": "0.35.3", + "@img/sharp-linux-arm64": "0.35.3", + "@img/sharp-linux-ppc64": "0.35.3", + "@img/sharp-linux-riscv64": "0.35.3", + "@img/sharp-linux-s390x": "0.35.3", + "@img/sharp-linux-x64": "0.35.3", + "@img/sharp-linuxmusl-arm64": "0.35.3", + "@img/sharp-linuxmusl-x64": "0.35.3", + "@img/sharp-webcontainers-wasm32": "0.35.3", + "@img/sharp-win32-arm64": "0.35.3", + "@img/sharp-win32-ia32": "0.35.3", + "@img/sharp-win32-x64": "0.35.3" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/shiki": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.4.3.tgz", + "integrity": "sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "4.4.3", + "@shikijs/engine-javascript": "4.4.3", + "@shikijs/engine-oniguruma": "4.4.3", + "@shikijs/langs": "4.4.3", + "@shikijs/themes": "4.4.3", + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/smol-toml": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz", + "integrity": "sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strictdom": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strictdom/-/strictdom-1.0.1.tgz", + "integrity": "sha512-cEmp9QeXXRmjj/rVp9oyiqcvyocWab/HaoN4+bwFeZ7QzykJD6L3yD4v12K1x0tHpqRqVpJevN3gW7kyM39Bqg==", + "license": "MIT" + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/stylis": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz", + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.2.tgz", + "integrity": "sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==", + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tinyclip": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.15.tgz", + "integrity": "sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==", + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, + "node_modules/tinyexec": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-dedent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.3.0.tgz", + "integrity": "sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==", + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz", + "integrity": "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unifont": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.5.tgz", + "integrity": "sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg==", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "ohash": "^2.0.11", + "undici": "^8.0.0" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unstorage": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", + "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.10", + "lru-cache": "^11.2.7", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/uuid": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.2.tgz", + "integrity": "sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "license": "MIT" + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..823acc1 --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "t3code-decoded", + "version": "0.1.0", + "private": true, + "type": "module", + "description": "A source-grounded, interactive architecture book for pingdotgg/t3code.", + "author": "Ahmed Alaa (https://github.com/BenAlaa)", + "license": "SEE LICENSE IN LICENSE", + "repository": { + "type": "git", + "url": "git+https://github.com/BenAlaa/t3code-decoded.git" + }, + "homepage": "https://benalaa.github.io/t3code-decoded/", + "bugs": { + "url": "https://github.com/BenAlaa/t3code-decoded/issues" + }, + "scripts": { + "dev": "ASTRO_TELEMETRY_DISABLED=1 astro dev", + "build": "npm run validate && ASTRO_TELEMETRY_DISABLED=1 astro build && node scripts/build-search-index.mjs && node scripts/validate-built-site.mjs", + "preview": "ASTRO_TELEMETRY_DISABLED=1 astro preview", + "validate": "node scripts/validate-book.mjs && node scripts/validate-sources.mjs", + "source:sync": "node scripts/sync-source-excerpts.mjs", + "source:check": "node scripts/sync-source-excerpts.mjs --check && node scripts/inventory-source.mjs --check", + "test": "node --test tests/*.test.mjs", + "check": "npm run test && npm run build" + }, + "dependencies": { + "@astrojs/mdx": "7.0.7", + "astro": "7.2.4", + "mermaid": "11.17.0" + }, + "devDependencies": { + "pagefind": "1.5.2", + "typescript": "6.0.3" + }, + "engines": { + "node": ">=24.10.0" + } +} diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..a319b93 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,32 @@ + + T3 Code Decoded octopus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/build-search-index.mjs b/scripts/build-search-index.mjs new file mode 100644 index 0000000..d8a00ad --- /dev/null +++ b/scripts/build-search-index.mjs @@ -0,0 +1,16 @@ +import { spawnSync } from "node:child_process"; +import path from "node:path"; +import process from "node:process"; + +const executable = path.resolve( + "node_modules", + ".bin", + process.platform === "win32" ? "pagefind.cmd" : "pagefind", +); + +const result = spawnSync(executable, ["--site", "dist"], { + stdio: "inherit", +}); + +if (result.error) throw result.error; +if (result.status !== 0) process.exit(result.status ?? 1); diff --git a/scripts/export-source-lock.mjs b/scripts/export-source-lock.mjs new file mode 100644 index 0000000..9dfac82 --- /dev/null +++ b/scripts/export-source-lock.mjs @@ -0,0 +1,9 @@ +import { readFile } from "node:fs/promises"; + +const lock = JSON.parse(await readFile(new URL("../sources/t3code.lock.json", import.meta.url), "utf8")); + +if (!/^[0-9a-f]{40}$/.test(lock.commit)) { + throw new Error("The source lock does not contain a valid immutable commit"); +} + +process.stdout.write(`commit=${lock.commit}\n`); diff --git a/scripts/inventory-source.mjs b/scripts/inventory-source.mjs new file mode 100644 index 0000000..b0d3841 --- /dev/null +++ b/scripts/inventory-source.mjs @@ -0,0 +1,65 @@ +import { execFileSync } from "node:child_process"; +import { readFile } from "node:fs/promises"; +import path from "node:path"; +import process from "node:process"; +import { fileURLToPath } from "node:url"; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const lock = JSON.parse(await readFile(path.join(root, "sources/t3code.lock.json"), "utf8")); +const sourceRoot = path.resolve(process.env.T3CODE_SOURCE_DIR || path.join(root, lock.sourceDirHint)); +const commit = execFileSync("git", ["-C", sourceRoot, "rev-parse", "HEAD"], { encoding: "utf8" }).trim(); +if (commit !== lock.commit) throw new Error(`T3 Code source mismatch: expected ${lock.commit}, found ${commit}`); + +const extensions = new Set([ + ".astro", ".bash", ".c", ".cc", ".cjs", ".cpp", ".css", ".cts", ".h", ".hpp", + ".java", ".js", ".jsx", ".kt", ".kts", ".m", ".mjs", ".mm", ".mts", ".ps1", + ".rs", ".scss", ".sh", ".sql", ".swift", ".ts", ".tsx", ".zsh", +]); +const excludedPrefixes = [".repos/", "assets/"]; +const testPattern = /(?:^|\/)(?:__mocks__|__tests__|fixtures|test|tests)(?:\/|$)|(?:\.|_)(?:spec|test)\.[^.]+$|Tests?\.swift$/i; +const tracked = execFileSync("git", ["-C", sourceRoot, "ls-tree", "-r", "--name-only", "-z", lock.commit], { + encoding: "utf8", + maxBuffer: 32 * 1024 * 1024, +}).split("\0").filter(Boolean); +const sourceFiles = tracked.filter((file) => !excludedPrefixes.some((prefix) => file.startsWith(prefix)) && extensions.has(path.extname(file))); +const testFiles = sourceFiles.filter((file) => testPattern.test(file)); +const productionFiles = sourceFiles.filter((file) => !testPattern.test(file)); + +const countLines = (files) => { + let count = 0; + for (let index = 0; index < files.length; index += 100) { + const chunk = files.slice(index, index + 100); + let output = ""; + try { + output = execFileSync("git", ["-C", sourceRoot, "grep", "-I", "-c", "-e", "^", lock.commit, "--", ...chunk], { + encoding: "utf8", + maxBuffer: 16 * 1024 * 1024, + }); + } catch (error) { + if (error.status !== 1) throw error; + output = error.stdout?.toString() ?? ""; + } + for (const line of output.trim().split("\n").filter(Boolean)) { + const separator = line.lastIndexOf(":"); + count += Number(line.slice(separator + 1)); + } + } + return count; +}; + +const report = { + inventoryRulesVersion: 1, + productionFiles: productionFiles.length, + productionLines: countLines(productionFiles), + testFiles: testFiles.length, + testLines: countLines(testFiles), +}; + +if (process.argv.includes("--check")) { + for (const [key, value] of Object.entries(report)) { + if (lock[key] !== value) throw new Error(`Source inventory drift for ${key}: lock=${lock[key]}, actual=${value}`); + } + process.stdout.write(`Verified ${report.productionFiles} production and ${report.testFiles} test source files.\n`); +} else { + process.stdout.write(`${JSON.stringify(report, null, 2)}\n`); +} diff --git a/scripts/lib/change-metadata.mjs b/scripts/lib/change-metadata.mjs new file mode 100644 index 0000000..28d54e3 --- /dev/null +++ b/scripts/lib/change-metadata.mjs @@ -0,0 +1,34 @@ +const conventionalHeader = /^(?:build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(?:\([a-z0-9][a-z0-9._/-]*\))?!?: \S(?:.*\S)?$/; + +export const validateConventionalHeader = (header, label = "change") => { + if (typeof header !== "string" || !conventionalHeader.test(header)) { + return `${label} must use '(): ' Conventional Commits syntax`; + } + if (header.length > 100) return `${label} must be at most 100 characters`; + return undefined; +}; + +const requiredSections = ["Outcome", "Scope", "Evidence", "Validation", "Review focus"]; + +export const validatePullRequestBody = (body) => { + if (typeof body !== "string" || !body.trim()) return ["pull request body is required"]; + + const withoutComments = body.replace(//g, ""); + const failures = []; + for (const section of requiredSections) { + const heading = new RegExp(`^## ${section.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s*$`, "m"); + const match = heading.exec(withoutComments); + if (!match) { + failures.push(`pull request body is missing '## ${section}'`); + continue; + } + const contentStart = match.index + match[0].length; + const nextHeading = withoutComments.slice(contentStart).search(/^##\s+/m); + const content = withoutComments + .slice(contentStart, nextHeading === -1 ? undefined : contentStart + nextHeading) + .replace(/^#{3,6}\s+.*$/gm, "") + .trim(); + if (!content) failures.push(`pull request section '## ${section}' needs a concrete entry`); + } + return failures; +}; diff --git a/scripts/lib/git-source.mjs b/scripts/lib/git-source.mjs new file mode 100644 index 0000000..fac28b4 --- /dev/null +++ b/scripts/lib/git-source.mjs @@ -0,0 +1,24 @@ +import { execFileSync } from "node:child_process"; +import path from "node:path"; + +export const assertSafeGitPath = (value) => { + if (!value || path.isAbsolute(value) || value.split(/[\\/]/).includes("..") || value.includes("\0")) { + throw new Error(`Unsafe Git source path: ${value}`); + } + return value.replaceAll("\\", "/"); +}; + +export const readGitBlob = (repository, commit, file) => { + const safe = assertSafeGitPath(file); + return execFileSync("git", ["-C", repository, "show", `${commit}:${safe}`], { + encoding: "utf8", + maxBuffer: 64 * 1024 * 1024, + }); +}; + +export const gitObjectType = (repository, commit, sourcePath) => { + const safe = assertSafeGitPath(sourcePath); + return execFileSync("git", ["-C", repository, "cat-file", "-t", `${commit}:${safe}`], { + encoding: "utf8", + }).trim(); +}; diff --git a/scripts/lib/html-document.mjs b/scripts/lib/html-document.mjs new file mode 100644 index 0000000..57a4774 --- /dev/null +++ b/scripts/lib/html-document.mjs @@ -0,0 +1,11 @@ +export const collectHtmlIds = (html) => [...html.matchAll(/\sid=["']([^"']+)["']/g)].map((match) => match[1]); + +export const findDuplicateHtmlIds = (html) => { + const seen = new Set(); + const duplicates = new Set(); + for (const id of collectHtmlIds(html)) { + if (seen.has(id)) duplicates.add(id); + seen.add(id); + } + return [...duplicates].sort(); +}; diff --git a/scripts/sync-source-excerpts.mjs b/scripts/sync-source-excerpts.mjs new file mode 100644 index 0000000..ef614f3 --- /dev/null +++ b/scripts/sync-source-excerpts.mjs @@ -0,0 +1,65 @@ +import { createHash } from "node:crypto"; +import { execFileSync } from "node:child_process"; +import { readFile, writeFile } from "node:fs/promises"; +import path from "node:path"; +import process from "node:process"; +import { fileURLToPath } from "node:url"; +import { gitObjectType, readGitBlob } from "./lib/git-source.mjs"; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const lock = JSON.parse(await readFile(path.join(root, "sources/t3code.lock.json"), "utf8")); +const manifest = JSON.parse(await readFile(path.join(root, "sources/excerpts.manifest.json"), "utf8")); +const references = JSON.parse(await readFile(path.join(root, "sources/references.manifest.json"), "utf8")); +const sourceRoot = path.resolve(process.env.T3CODE_SOURCE_DIR || path.join(root, lock.sourceDirHint)); +const destination = path.join(root, "src/generated/excerpts.json"); + +const actualCommit = execFileSync("git", ["-C", sourceRoot, "rev-parse", "HEAD"], { encoding: "utf8" }).trim(); +if (actualCommit !== lock.commit) { + throw new Error(`T3 Code source mismatch: expected ${lock.commit}, found ${actualCommit} at ${sourceRoot}`); +} + +const output = {}; +for (const item of manifest) { + if (output[item.id]) throw new Error(`Duplicate excerpt id: ${item.id}`); + const raw = readGitBlob(sourceRoot, lock.commit, item.path); + const lines = raw.replace(/\r\n/g, "\n").split("\n"); + if (!Number.isInteger(item.start) || !Number.isInteger(item.end) || item.start < 1 || item.end < item.start || item.end > lines.length) { + throw new Error(`Invalid range for ${item.id}: ${item.path}:${item.start}-${item.end} (file has ${lines.length} lines)`); + } + const code = lines.slice(item.start - 1, item.end).join("\n"); + output[item.id] = { + ...item, + code, + checksum: createHash("sha256").update(code).digest("hex"), + }; +} + +const referenceIds = new Set(Object.keys(output)); +for (const item of references) { + if (referenceIds.has(item.id)) throw new Error(`Duplicate source reference id: ${item.id}`); + referenceIds.add(item.id); + if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(item.id)) throw new Error(`Invalid source reference id: ${item.id}`); + const objectType = gitObjectType(sourceRoot, lock.commit, item.path); + if (item.kind === "directory") { + if (objectType !== "tree") throw new Error(`Expected source directory: ${item.path}`); + if (item.start || item.end) throw new Error(`Directory reference cannot have line numbers: ${item.id}`); + continue; + } + if (item.kind !== "file" || objectType !== "blob") throw new Error(`Expected source file: ${item.path}`); + if (item.start !== undefined || item.end !== undefined) { + const lines = readGitBlob(sourceRoot, lock.commit, item.path).replace(/\r\n/g, "\n").split("\n"); + if (!Number.isInteger(item.start) || !Number.isInteger(item.end) || item.start < 1 || item.end < item.start || item.end > lines.length) { + throw new Error(`Invalid reference range for ${item.id}: ${item.path}:${item.start}-${item.end}`); + } + } +} + +const serialized = `${JSON.stringify(output, null, 2)}\n`; +if (process.argv.includes("--check")) { + const current = await readFile(destination, "utf8").catch(() => ""); + if (current !== serialized) throw new Error("Generated excerpts are stale. Run npm run source:sync."); + process.stdout.write(`Verified ${manifest.length} excerpts and ${references.length} references against ${lock.shortCommit}.\n`); +} else { + await writeFile(destination, serialized); + process.stdout.write(`Wrote ${manifest.length} excerpts and verified ${references.length} references from ${lock.shortCommit}.\n`); +} diff --git a/scripts/validate-book.mjs b/scripts/validate-book.mjs new file mode 100644 index 0000000..ff34c95 --- /dev/null +++ b/scripts/validate-book.mjs @@ -0,0 +1,74 @@ +import { readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const contentRoot = path.join(root, "src/content/book"); +const generated = JSON.parse(await readFile(path.join(root, "src/generated/excerpts.json"), "utf8")); +const excerptManifest = JSON.parse(await readFile(path.join(root, "sources/excerpts.manifest.json"), "utf8")); +const referenceManifest = JSON.parse(await readFile(path.join(root, "sources/references.manifest.json"), "utf8")); +const sourceIds = new Set([...excerptManifest, ...referenceManifest].map((item) => item.id)); +const files = (await readdir(contentRoot, { recursive: true })) + .filter((file) => /\.mdx?$/.test(file)) + .sort(); +const slugs = new Map(); +const orders = new Map(); +let sourceUses = 0; +let referenceUses = 0; + +for (const file of files) { + const raw = await readFile(path.join(contentRoot, file), "utf8"); + const slug = raw.match(/^slug:\s*["']?([^\n"']+)/m)?.[1]?.trim(); + const orderRaw = raw.match(/^order:\s*(\d+)/m)?.[1]; + const status = raw.match(/^status:\s*([^\n]+)/m)?.[1]?.trim(); + const gatesRaw = raw.match(/^gates:\s*\[([^\]]*)\]/m)?.[1] ?? ""; + const gates = new Set(gatesRaw.split(",").map((gate) => gate.trim()).filter(Boolean)); + if (!slug || orderRaw === undefined) throw new Error(`${file} is missing slug or order frontmatter.`); + const order = Number(orderRaw); + if (slugs.has(slug)) throw new Error(`Duplicate slug '${slug}' in ${slugs.get(slug)} and ${file}`); + if (orders.has(order)) throw new Error(`Duplicate order '${order}' in ${orders.get(order)} and ${file}`); + slugs.set(slug, file); + orders.set(order, file); + if (status === "source-checked" && !gates.has("sources")) throw new Error(`${file} is source-checked without the sources gate.`); + if (status === "verified" && ["sources", "links", "interaction", "editorial"].some((gate) => !gates.has(gate))) { + throw new Error(`${file} is verified without every review gate.`); + } + for (const match of raw.matchAll(/]*id=["']([^"']+)["']/g)) { + sourceUses += 1; + if (!generated[match[1]]) throw new Error(`${file} references unknown source excerpt '${match[1]}'.`); + } + for (const match of raw.matchAll(/sourceId:\s*["']([^"']+)["']/g)) { + referenceUses += 1; + if (!sourceIds.has(match[1])) throw new Error(`${file} references unknown source id '${match[1]}'.`); + } + for (const block of raw.matchAll(/sourceIds:\s*\[([\s\S]*?)\]/g)) { + const idsInBlock = [...block[1].matchAll(/["']([^"']+)["']/g)].map((source) => source[1]); + if (idsInBlock.length === 0) throw new Error(`${file} has an empty sourceIds list.`); + for (const id of idsInBlock) { + referenceUses += 1; + if (!sourceIds.has(id)) throw new Error(`${file} references unknown source id '${id}'.`); + } + } + for (const list of raw.matchAll(//g)) { + const idsInList = [...list[1].matchAll(/["']([^"']+)["']/g)].map((match) => match[1]); + if (idsInList.length === 0) throw new Error(`${file} has an empty SourceList.`); + for (const id of idsInList) { + referenceUses += 1; + if (!sourceIds.has(id)) throw new Error(`${file} references unknown source id '${id}'.`); + } + } + for (const component of ["EvidenceClaim", "Figure"]) { + const pattern = new RegExp(`<${component}\\s+[\\s\\S]*?(?:refs|sources)=\\{\\[([\\s\\S]*?)\\]\\}[\\s\\S]*?>`, "g"); + for (const match of raw.matchAll(pattern)) { + const idsInComponent = [...match[1].matchAll(/["']([^"']+)["']/g)].map((source) => source[1]); + if (idsInComponent.length === 0) throw new Error(`${file} has ${component} without source references.`); + for (const id of idsInComponent) { + referenceUses += 1; + if (!sourceIds.has(id)) throw new Error(`${file} references unknown source id '${id}'.`); + } + } + } +} + +if (!slugs.has("cover")) throw new Error("Book content must include slug: cover."); +process.stdout.write(`Validated ${files.length} book entries, ${sourceUses} excerpts, and ${referenceUses} source references.\n`); diff --git a/scripts/validate-built-site.mjs b/scripts/validate-built-site.mjs new file mode 100644 index 0000000..4bac13b --- /dev/null +++ b/scripts/validate-built-site.mjs @@ -0,0 +1,56 @@ +import { access, readdir, readFile } from "node:fs/promises"; +import path from "node:path"; +import process from "node:process"; +import { fileURLToPath } from "node:url"; +import { collectHtmlIds, findDuplicateHtmlIds } from "./lib/html-document.mjs"; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const dist = path.join(root, "dist"); +const rawBase = process.env.BASE_PATH || "/"; +const base = `/${rawBase.replace(/^\/+|\/+$/g, "")}${rawBase === "/" ? "" : "/"}`; +const siteUrl = process.env.SITE_URL?.replace(/\/+$/, ""); +const htmlFiles = (await readdir(dist, { recursive: true })) + .filter((file) => file.endsWith(".html")) + .sort(); +const failures = []; + +const targetFor = (url) => { + const clean = url.split(/[?#]/, 1)[0]; + if (!clean.startsWith("/")) return undefined; + if (!clean.startsWith(base)) { + failures.push(`root-relative URL escapes BASE_PATH '${base}': ${url}`); + return undefined; + } + const relative = clean.slice(base.length); + if (!relative) return "index.html"; + return relative.endsWith("/") ? `${relative}index.html` : relative; +}; + +for (const file of htmlFiles) { + const raw = await readFile(path.join(dist, file), "utf8"); + const ids = new Set(collectHtmlIds(raw)); + for (const id of findDuplicateHtmlIds(raw)) failures.push(`${file} repeats id '${id}'`); + for (const match of raw.matchAll(/\s(?:href|src)=["']([^"']+)["']/g)) { + const url = match[1]; + if (/^(?:https?:|mailto:|tel:|data:|javascript:)/i.test(url)) continue; + if (url.startsWith("#")) { + if (url.length > 1 && !ids.has(decodeURIComponent(url.slice(1)))) failures.push(`${file} has missing local anchor ${url}`); + continue; + } + const target = targetFor(url); + if (!target) continue; + await access(path.join(dist, target)).catch(() => failures.push(`${file} links to missing ${url}`)); + } + if (siteUrl && file !== "404.html") { + const canonical = raw.match(/ failures.push("Pagefind runtime is missing")); +if (!htmlFiles.includes("404.html")) failures.push("404.html is missing"); + +if (failures.length) throw new Error(`Built-site validation failed:\n- ${[...new Set(failures)].join("\n- ")}`); +process.stdout.write(`Validated ${htmlFiles.length} built pages at base '${base}'.\n`); diff --git a/scripts/validate-change-metadata.mjs b/scripts/validate-change-metadata.mjs new file mode 100644 index 0000000..bd7c466 --- /dev/null +++ b/scripts/validate-change-metadata.mjs @@ -0,0 +1,25 @@ +import { execFileSync } from "node:child_process"; +import { validateConventionalHeader, validatePullRequestBody } from "./lib/change-metadata.mjs"; + +const { PR_TITLE, PR_BODY, BASE_SHA, HEAD_SHA } = process.env; +const failures = []; + +if (!BASE_SHA || !HEAD_SHA || !/^[0-9a-f]{40}$/i.test(BASE_SHA) || !/^[0-9a-f]{40}$/i.test(HEAD_SHA)) { + failures.push("pull request base and head revisions must be available"); +} else { + const subjects = execFileSync("git", ["log", "--format=%s", `${BASE_SHA}..${HEAD_SHA}`], { encoding: "utf8" }) + .split("\n") + .filter(Boolean); + if (!subjects.length) failures.push("pull request must contain at least one commit"); + for (const subject of subjects) { + const failure = validateConventionalHeader(subject, `commit '${subject}'`); + if (failure) failures.push(failure); + } +} + +const titleFailure = validateConventionalHeader(PR_TITLE, "pull request title"); +if (titleFailure) failures.push(titleFailure); +failures.push(...validatePullRequestBody(PR_BODY)); + +if (failures.length) throw new Error(`Change-metadata validation failed:\n- ${[...new Set(failures)].join("\n- ")}`); +process.stdout.write("Validated the pull request title, body, and commit subjects.\n"); diff --git a/scripts/validate-sources.mjs b/scripts/validate-sources.mjs new file mode 100644 index 0000000..899bd38 --- /dev/null +++ b/scripts/validate-sources.mjs @@ -0,0 +1,101 @@ +import { createHash } from "node:crypto"; +import { readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const lock = JSON.parse(await readFile(path.join(root, "sources/t3code.lock.json"), "utf8")); +const manifest = JSON.parse(await readFile(path.join(root, "sources/excerpts.manifest.json"), "utf8")); +const references = JSON.parse(await readFile(path.join(root, "sources/references.manifest.json"), "utf8")); +const generated = JSON.parse(await readFile(path.join(root, "src/generated/excerpts.json"), "utf8")); +const ids = new Set(); +const idPattern = /^[a-z0-9]+(?:-[a-z0-9]+)*$/; +const commitPattern = /^[0-9a-f]{40}$/; +const shortCommitPattern = /^[0-9a-f]{7,12}$/; + +const isSafeSourcePath = (value) => + typeof value === "string" && + value.length > 0 && + !path.isAbsolute(value) && + !value.split(/[\\/]/).includes("..") && + !value.includes("\\") && + !/[\0\r\n]/.test(value); + +const validateRange = (item, kind = "excerpt") => { + if (!Number.isInteger(item.start) || !Number.isInteger(item.end) || item.start < 1 || item.end < item.start) { + throw new Error(`Invalid source ${kind} range: ${item.id}`); + } +}; + +if (!/^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/?$/.test(lock.repository)) { + throw new Error(`Invalid source repository URL: ${lock.repository}`); +} +if (!commitPattern.test(lock.commit)) throw new Error(`Invalid locked source commit: ${lock.commit}`); +if (!shortCommitPattern.test(lock.shortCommit) || !lock.commit.startsWith(lock.shortCommit)) { + throw new Error(`shortCommit does not match the locked source commit: ${lock.shortCommit}`); +} +if (typeof lock.branch !== "string" || !lock.branch.trim() || /[\0\r\n]/.test(lock.branch)) { + throw new Error("Invalid locked source branch"); +} +if (typeof lock.capturedAt !== "string" || !Number.isFinite(Date.parse(lock.capturedAt))) { + throw new Error(`Invalid source capture timestamp: ${lock.capturedAt}`); +} +if (typeof lock.sourceDirHint !== "string" || !lock.sourceDirHint.trim() || path.isAbsolute(lock.sourceDirHint) || /[\0\r\n]/.test(lock.sourceDirHint)) { + throw new Error("Invalid local source directory hint"); +} +for (const key of ["inventoryRulesVersion", "productionFiles", "productionLines", "testFiles", "testLines"]) { + if (!Number.isInteger(lock[key]) || lock[key] < 1) throw new Error(`Invalid source lock count: ${key}`); +} +if (typeof lock.notes !== "string" || !lock.notes.trim()) throw new Error("Source lock notes must explain the inventory boundary"); + +if (!Array.isArray(manifest)) throw new Error("Excerpt manifest must be an array"); +if (!Array.isArray(references)) throw new Error("Reference manifest must be an array"); +if (!generated || Array.isArray(generated) || typeof generated !== "object") { + throw new Error("Generated excerpts must be an object keyed by source id"); +} + +for (const item of manifest) { + if (!idPattern.test(item.id)) throw new Error(`Invalid source excerpt id: ${item.id}`); + if (ids.has(item.id)) throw new Error(`Duplicate source id: ${item.id}`); + ids.add(item.id); + if (!isSafeSourcePath(item.path)) throw new Error(`Unsafe source path: ${item.path}`); + validateRange(item); + if (typeof item.language !== "string" || !item.language.trim() || typeof item.label !== "string" || !item.label.trim()) { + throw new Error(`Invalid source excerpt metadata: ${item.id}`); + } + const record = generated[item.id]; + if (!record) throw new Error(`Missing generated excerpt: ${item.id}`); + for (const key of ["id", "path", "start", "end", "language", "label"]) { + if (record[key] !== item[key]) throw new Error(`Generated metadata drift for ${item.id}.${key}`); + } + if (typeof record.code !== "string" || !/^[0-9a-f]{64}$/.test(record.checksum)) { + throw new Error(`Invalid generated excerpt payload: ${item.id}`); + } + const checksum = createHash("sha256").update(record.code).digest("hex"); + if (checksum !== record.checksum) throw new Error(`Checksum mismatch for ${item.id}`); + const lineCount = record.code.split("\n").length; + if (lineCount !== item.end - item.start + 1) throw new Error(`Line count mismatch for ${item.id}`); +} + +const extras = Object.keys(generated).filter((id) => !ids.has(id)); +if (extras.length) throw new Error(`Generated excerpts not in manifest: ${extras.join(", ")}`); + +for (const item of references) { + if (ids.has(item.id)) throw new Error(`Duplicate source id across manifests: ${item.id}`); + ids.add(item.id); + if (!idPattern.test(item.id)) throw new Error(`Invalid source reference id: ${item.id}`); + if (!isSafeSourcePath(item.path)) throw new Error(`Unsafe source path: ${item.path}`); + if (typeof item.label !== "string" || !item.label.trim() || !["file", "directory"].includes(item.kind)) { + throw new Error(`Invalid source reference metadata: ${item.id}`); + } + if (item.kind === "directory" && (item.start !== undefined || item.end !== undefined)) { + throw new Error(`Directory reference has line numbers: ${item.id}`); + } + if (item.kind === "file" && (item.start !== undefined || item.end !== undefined)) { + validateRange(item, "reference"); + } +} + +process.stdout.write( + `Validated source lock ${lock.shortCommit}, ${manifest.length} excerpts, and ${references.length} pinned source references.\n`, +); diff --git a/sources/excerpts.manifest.json b/sources/excerpts.manifest.json new file mode 100644 index 0000000..f39f958 --- /dev/null +++ b/sources/excerpts.manifest.json @@ -0,0 +1,1474 @@ +[ + { + "id": "architecture-boundary", + "path": "docs/internals/overview.md", + "start": 5, + "end": 28, + "language": "markdown", + "label": "The execution boundary" + }, + { + "id": "orchestration-rpc-methods", + "path": "packages/contracts/src/orchestration.ts", + "start": 27, + "end": 36, + "language": "typescript", + "label": "Orchestration RPC surface" + }, + { + "id": "turn-start-command", + "path": "packages/contracts/src/orchestration.ts", + "start": 847, + "end": 864, + "language": "typescript", + "label": "Client turn-start command" + }, + { + "id": "provider-adapter-core", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 47, + "end": 71, + "language": "typescript", + "label": "Provider adapter lifecycle contract" + }, + { + "id": "provider-adapter-interactions", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 73, + "end": 94, + "language": "typescript", + "label": "Provider approval and input contract" + }, + { + "id": "provider-adapter-stream", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 126, + "end": 134, + "language": "typescript", + "label": "Canonical provider event stream" + }, + { + "id": "orchestration-transaction", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 197, + "end": 259, + "language": "typescript", + "label": "Atomic command commit" + }, + { + "id": "orchestration-dispatch", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 331, + "end": 368, + "language": "typescript", + "label": "Serialized command dispatch and event fan-out" + }, + { + "id": "server-runtime-core", + "path": "apps/server/src/server.ts", + "start": 353, + "end": 416, + "language": "typescript", + "label": "Authentication, remote endpoint, provider, and server dependency assembly" + }, + { + "id": "dispatch-result", + "path": "packages/contracts/src/orchestration.ts", + "start": 1580, + "end": 1583, + "language": "typescript", + "label": "Successful client dispatch result" + }, + { + "id": "rejected-receipt-best-effort", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 287, + "end": 325, + "language": "typescript", + "label": "Best-effort invariant-rejection receipt" + }, + { + "id": "hot-reactor-no-replay", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1405, + "end": 1409, + "language": "typescript", + "label": "Hot post-commit stream has no pending-work replay" + }, + { + "id": "cli-entry-command", + "path": "apps/server/src/bin.ts", + "start": 23, + "end": 71, + "language": "typescript", + "label": "Root CLI and subcommand dispatch" + }, + { + "id": "cli-config-precedence", + "path": "apps/server/src/cli/config.ts", + "start": 244, + "end": 280, + "language": "typescript", + "label": "Mode, port, and base-directory precedence" + }, + { + "id": "cli-serve-semantics", + "path": "apps/server/src/cli/server.ts", + "start": 21, + "end": 35, + "language": "typescript", + "label": "Start and headless serve semantics" + }, + { + "id": "startup-readiness-order", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 514, + "end": 548, + "language": "typescript", + "label": "Prepared, activated, command-ready, and ready order" + }, + { + "id": "command-readiness-middleware", + "path": "apps/server/src/server.ts", + "start": 431, + "end": 437, + "language": "typescript", + "label": "Global route-execution readiness barrier" + }, + { + "id": "rpc-stream-contracts", + "path": "packages/contracts/src/rpc.ts", + "start": 933, + "end": 948, + "language": "typescript", + "label": "Typed shell and thread streaming RPC contracts" + }, + { + "id": "thread-resume-race", + "path": "apps/server/src/ws.ts", + "start": 1394, + "end": 1521, + "language": "typescript", + "label": "Attach-before-read and bounded thread replay" + }, + { + "id": "auth-credential-precedence", + "path": "apps/server/src/auth/EnvironmentAuth.ts", + "start": 592, + "end": 632, + "language": "typescript", + "label": "Cookie, Bearer, and DPoP authentication precedence" + }, + { + "id": "websocket-ticket-verification", + "path": "apps/server/src/auth/SessionStore.ts", + "start": 785, + "end": 851, + "language": "typescript", + "label": "WebSocket ticket verification reloads session state" + }, + { + "id": "command-union-boundary", + "path": "packages/contracts/src/orchestration.ts", + "start": 913, + "end": 1057, + "language": "typescript", + "label": "Client-dispatchable, normalized, and trusted internal command unions" + }, + { + "id": "normalizer-staging-boundary", + "path": "apps/server/src/orchestration/Normalizer.ts", + "start": 18, + "end": 179, + "language": "typescript", + "label": "Pre-transaction timestamp, workspace, and attachment staging" + }, + { + "id": "turn-atomic-batch", + "path": "apps/server/src/orchestration/decider.ts", + "start": 926, + "end": 1036, + "language": "typescript", + "label": "Existing-thread turn plans a two-to-four-event batch" + }, + { + "id": "engine-commit-publication", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 197, + "end": 259, + "language": "typescript", + "label": "SQL commit followed by in-memory fold and hot publication" + }, + { + "id": "command-receipt-schema", + "path": "apps/server/src/persistence/Services/OrchestrationCommandReceipts.ts", + "start": 25, + "end": 33, + "language": "typescript", + "label": "Durable command receipt fields" + }, + { + "id": "projection-transaction-cursor", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1609, + "end": 1678, + "language": "typescript", + "label": "Ordered projectors, transactional cursor updates, and attachment side effects" + }, + { + "id": "snapshot-safe-watermark", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 195, + "end": 258, + "language": "typescript", + "label": "Snapshot watermark is the minimum required projector cursor" + }, + { + "id": "provider-reactor-forked-send", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1060, + "end": 1174, + "language": "typescript", + "label": "Volatile turn dedupe and forked provider send" + }, + { + "id": "sqlite-runtime-pragmas", + "path": "apps/server/src/persistence/Layers/Sqlite.ts", + "start": 24, + "end": 66, + "language": "typescript", + "label": "SQLite runtime selection, pragmas, migrations, and scoped layers" + }, + { + "id": "provider-instance-identity-contract", + "path": "packages/contracts/src/providerInstance.ts", + "start": 4, + "end": 32, + "language": "typescript", + "label": "Driver kind and configured instance identity" + }, + { + "id": "provider-driver-instance-spi", + "path": "apps/server/src/provider/ProviderDriver.ts", + "start": 55, + "end": 117, + "language": "typescript", + "label": "Scoped provider driver and instance records" + }, + { + "id": "provider-driver-instance-records", + "path": "apps/server/src/provider/ProviderDriver.ts", + "start": 4, + "end": 20, + "language": "typescript", + "label": "Plain provider driver and instance record contracts" + }, + { + "id": "codex-app-server-client-typed-stdio", + "path": "packages/effect-codex-app-server/src/client.ts", + "start": 140, + "end": 211, + "language": "typescript", + "label": "Typed Codex notifications, requests, and transport calls" + }, + { + "id": "codex-adapter-session-runtime", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1642, + "end": 1693, + "language": "typescript", + "label": "Codex session replacement and runtime configuration" + }, + { + "id": "codex-adapter-runtime-events", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1000, + "end": 1084, + "language": "typescript", + "label": "Codex usage, turn, and plan event normalization" + }, + { + "id": "claude-adapter-query-config", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4138, + "end": 4196, + "language": "typescript", + "label": "Claude permission mapping and query option assembly" + }, + { + "id": "claude-query-invocation", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4223, + "end": 4235, + "language": "typescript", + "label": "Claude SDK query invocation" + }, + { + "id": "claude-adapter-interaction-handlers", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4497, + "end": 4529, + "language": "typescript", + "label": "Claude approval and structured-input deferreds" + }, + { + "id": "acp-client-typed-surface", + "path": "packages/effect-acp/src/client.ts", + "start": 40, + "end": 134, + "language": "typescript", + "label": "Typed ACP session command surface" + }, + { + "id": "cursor-session-mode-selection", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 217, + "end": 294, + "language": "typescript", + "label": "Cursor negotiated mode and model selection" + }, + { + "id": "grok-acp-runtime-support", + "path": "apps/server/src/provider/acp/GrokAcpSupport.ts", + "start": 31, + "end": 108, + "language": "typescript", + "label": "Grok ACP launch, authentication, and model selection" + }, + { + "id": "opencode-runtime-ownership", + "path": "apps/server/src/provider/opencodeRuntime.ts", + "start": 140, + "end": 177, + "language": "typescript", + "label": "Local and external OpenCode server ownership" + }, + { + "id": "opencode-turn-and-revert", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1430, + "end": 1509, + "language": "typescript", + "label": "OpenCode prompt and steering path" + }, + { + "id": "usage-live-contract", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 309, + "end": 331, + "language": "typescript", + "label": "Live thread token-usage snapshot contract" + }, + { + "id": "usage-codex-normalization", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 159, + "end": 190, + "language": "typescript", + "label": "Codex live token-usage normalization" + }, + { + "id": "usage-codex-emission", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1000, + "end": 1018, + "language": "typescript", + "label": "Codex live usage event emission" + }, + { + "id": "usage-claude-emission", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 2051, + "end": 2088, + "language": "typescript", + "label": "Claude live usage event emission" + }, + { + "id": "usage-live-activity", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 766, + "end": 784, + "language": "typescript", + "label": "Live usage becomes context-window activity" + }, + { + "id": "usage-web-context-meter", + "path": "apps/web/src/lib/contextWindow.ts", + "start": 50, + "end": 96, + "language": "typescript", + "label": "Latest valid context-window snapshot derivation" + }, + { + "id": "usage-summary-contract", + "path": "packages/contracts/src/usage.ts", + "start": 1, + "end": 101, + "language": "typescript", + "label": "Historical usage version, providers, tokens, and cost buckets" + }, + { + "id": "usage-home-discovery", + "path": "apps/server/src/usage/UsageService.ts", + "start": 187, + "end": 225, + "language": "typescript", + "label": "Claude and Codex transcript home resolution" + }, + { + "id": "usage-transcript-parsers", + "path": "apps/server/src/usage/usageTranscripts.ts", + "start": 78, + "end": 137, + "language": "typescript", + "label": "Claude transcript usage normalization" + }, + { + "id": "usage-dedup-buckets", + "path": "apps/server/src/usage/usageAggregation.ts", + "start": 109, + "end": 178, + "language": "typescript", + "label": "Global deduplication, bounds, bucketing, and pricing fold" + }, + { + "id": "usage-pricing-cache", + "path": "apps/server/src/usage/usagePricing.ts", + "start": 85, + "end": 148, + "language": "typescript", + "label": "Historical usage rate lookup and pricing arithmetic" + }, + { + "id": "usage-rpc-contract", + "path": "packages/contracts/src/rpc.ts", + "start": 260, + "end": 284, + "language": "typescript", + "label": "Typed usage summary RPC" + }, + { + "id": "usage-environment-merge", + "path": "packages/shared/src/usageMerge.ts", + "start": 102, + "end": 163, + "language": "typescript", + "label": "Deterministic physical-source ownership across environments" + }, + { + "id": "usage-reader-failure-policy", + "path": "apps/server/src/usage/usageTranscriptReader.ts", + "start": 92, + "end": 140, + "language": "typescript", + "label": "Streaming transcript read and null-on-read-failure policy" + }, + { + "id": "usage-source-status", + "path": "apps/server/src/usage/UsageService.ts", + "start": 352, + "end": 408, + "language": "typescript", + "label": "Current historical source status and session accounting" + }, + { + "id": "project-root-normalization", + "path": "apps/server/src/workspace/WorkspacePaths.ts", + "start": 161, + "end": 200, + "language": "typescript", + "label": "Workspace-root resolution, validation, and opt-in creation" + }, + { + "id": "project-create-normalization", + "path": "apps/server/src/orchestration/Normalizer.ts", + "start": 55, + "end": 90, + "language": "typescript", + "label": "Project creation normalization before dispatch" + }, + { + "id": "project-root-uniqueness", + "path": "apps/server/src/orchestration/commandInvariants.ts", + "start": 75, + "end": 97, + "language": "typescript", + "label": "Active project workspace-root uniqueness invariant" + }, + { + "id": "project-t3-file-schema", + "path": "packages/contracts/src/t3ProjectFile.ts", + "start": 7, + "end": 94, + "language": "typescript", + "label": "Checked-in t3.json project configuration contract" + }, + { + "id": "project-t3-file-loader", + "path": "apps/server/src/project/T3ProjectFileLoader.ts", + "start": 42, + "end": 105, + "language": "typescript", + "label": "Best-effort t3.json loading and validation" + }, + { + "id": "project-t3-file-loader-tests", + "path": "apps/server/src/project/T3ProjectFileLoader.test.ts", + "start": 29, + "end": 88, + "language": "typescript", + "label": "t3.json JSONC, missing-file, and invalid-input tests" + }, + { + "id": "project-thread-env-precedence", + "path": "packages/shared/src/threadEnvMode.ts", + "start": 3, + "end": 35, + "language": "typescript", + "label": "Project, t3.json, and global thread-environment precedence" + }, + { + "id": "project-settings-inherited-default", + "path": "apps/web/src/components/settings/ProjectSettingsPanel.tsx", + "start": 475, + "end": 482, + "language": "tsx", + "label": "Inherited project environment default in web settings" + }, + { + "id": "project-settings-project-override", + "path": "apps/web/src/components/settings/ProjectSettingsPanel.tsx", + "start": 866, + "end": 905, + "language": "tsx", + "label": "Project environment override controls" + }, + { + "id": "project-repository-identity", + "path": "apps/server/src/project/RepositoryIdentityResolver.ts", + "start": 48, + "end": 166, + "language": "typescript", + "label": "Best-effort Git remote repository identity resolution" + }, + { + "id": "project-identity-read-projection", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 313, + "end": 388, + "language": "typescript", + "label": "Snapshot-time repository identity enrichment" + }, + { + "id": "project-durable-projection", + "path": "apps/server/src/orchestration/decider.ts", + "start": 227, + "end": 298, + "language": "typescript", + "label": "Project creation and metadata event decisions" + }, + { + "id": "project-projector", + "path": "apps/server/src/orchestration/projector.ts", + "start": 207, + "end": 263, + "language": "typescript", + "label": "Durable project read-model projection" + }, + { + "id": "project-logical-grouping", + "path": "packages/client-runtime/src/state/projectGrouping.ts", + "start": 67, + "end": 140, + "language": "typescript", + "label": "Client-side physical and logical project grouping" + }, + { + "id": "project-environment-label", + "path": "apps/web/src/sidebarProjectGrouping.ts", + "start": 53, + "end": 115, + "language": "typescript", + "label": "Environment labels retained in grouped sidebar projects" + }, + { + "id": "project-setup-script-selection", + "path": "packages/shared/src/projectScripts.ts", + "start": 11, + "end": 37, + "language": "typescript", + "label": "Worktree setup-script selection and environment construction" + }, + { + "id": "project-setup-script-runner", + "path": "apps/server/src/project/ProjectSetupScriptRunner.ts", + "start": 123, + "end": 183, + "language": "typescript", + "label": "Setup script launched in the linked worktree terminal" + }, + { + "id": "worktree-non-git-fallback", + "path": "apps/web/src/components/ChatView.logic.ts", + "start": 322, + "end": 327, + "language": "typescript", + "label": "Non-Git projects fall back from worktree to local mode" + }, + { + "id": "worktree-ref-occupancy", + "path": "apps/server/src/vcs/GitVcsDriverCore.ts", + "start": 2463, + "end": 2559, + "language": "typescript", + "label": "Git worktree listing decorates occupied branch references" + }, + { + "id": "worktree-create-remove-contract", + "path": "packages/contracts/src/git.ts", + "start": 124, + "end": 165, + "language": "typescript", + "label": "Worktree creation and removal RPC inputs" + }, + { + "id": "worktree-result-contract", + "path": "packages/contracts/src/git.ts", + "start": 264, + "end": 294, + "language": "typescript", + "label": "Worktree and pull-request preparation results" + }, + { + "id": "worktree-bootstrap-path", + "path": "apps/server/src/ws.ts", + "start": 979, + "end": 1022, + "language": "typescript", + "label": "Origin-aware worktree bootstrap saga" + }, + { + "id": "worktree-origin-base-test", + "path": "apps/server/src/vcs/GitVcsDriverCore.test.ts", + "start": 1505, + "end": 1565, + "language": "typescript", + "label": "Remote base reference worktree creation test" + }, + { + "id": "worktree-create-command", + "path": "apps/server/src/vcs/GitVcsDriverCore.ts", + "start": 2763, + "end": 2799, + "language": "typescript", + "label": "Git worktree add command and default linked path" + }, + { + "id": "worktree-setup-runner", + "path": "apps/server/src/project/ProjectSetupScriptRunner.ts", + "start": 123, + "end": 183, + "language": "typescript", + "label": "Post-creation setup script runner" + }, + { + "id": "worktree-setup-test", + "path": "apps/server/src/project/ProjectSetupScriptRunner.test.ts", + "start": 93, + "end": 152, + "language": "typescript", + "label": "Setup terminal cwd and environment test" + }, + { + "id": "worktree-remove-command", + "path": "apps/server/src/vcs/GitVcsDriverCore.ts", + "start": 2982, + "end": 2994, + "language": "typescript", + "label": "Git worktree removal command" + }, + { + "id": "worktree-create-remove-test", + "path": "apps/server/src/vcs/GitVcsDriverCore.test.ts", + "start": 1377, + "end": 1403, + "language": "typescript", + "label": "Worktree create and remove integration test" + }, + { + "id": "worktree-bootstrap-failure-cleanup", + "path": "apps/server/src/ws.ts", + "start": 1025, + "end": 1053, + "language": "typescript", + "label": "Bootstrap failure compensation for a newly created thread" + }, + { + "id": "turn-lifecycle-start-decider", + "path": "apps/server/src/orchestration/decider.ts", + "start": 926, + "end": 1036, + "language": "typescript", + "label": "Turn start intent and atomic lifecycle-reset event batch" + }, + { + "id": "turn-lifecycle-command-reactor", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1060, + "end": 1174, + "language": "typescript", + "label": "Committed turn intent forwarded to the provider" + }, + { + "id": "turn-lifecycle-runtime-correlation", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 195, + "end": 213, + "language": "typescript", + "label": "Provider runtime event identity validation" + }, + { + "id": "turn-lifecycle-runtime-guards", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1505, + "end": 1656, + "language": "typescript", + "label": "Runtime lifecycle correlation and durable session folding" + }, + { + "id": "turn-lifecycle-buffering", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1659, + "end": 1750, + "language": "typescript", + "label": "Buffered assistant delivery and pause-boundary flush" + }, + { + "id": "turn-lifecycle-interrupt", + "path": "apps/server/src/orchestration/decider.ts", + "start": 1039, + "end": 1058, + "language": "typescript", + "label": "Durable turn interrupt intent" + }, + { + "id": "turn-lifecycle-checkpoint-completion", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 356, + "end": 458, + "language": "typescript", + "label": "Post-turn checkpoint capture and placeholder replacement" + }, + { + "id": "permission-runtime-mode-contract", + "path": "packages/contracts/src/orchestration.ts", + "start": 120, + "end": 143, + "language": "typescript", + "label": "Canonical runtime modes and approval decisions" + }, + { + "id": "permission-codex-mode-map", + "path": "apps/server/src/provider/Layers/CodexSessionRuntime.ts", + "start": 268, + "end": 340, + "language": "typescript", + "label": "T3 runtime modes mapped into Codex approval and sandbox settings" + }, + { + "id": "permission-request-contract", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 430, + "end": 469, + "language": "typescript", + "label": "Canonical approval and structured-input request payloads" + }, + { + "id": "work-task-usage-contract", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 471, + "end": 543, + "language": "typescript", + "label": "Typed per-task usage and agent-versus-background classification" + }, + { + "id": "work-task-latest-activities", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 569, + "end": 646, + "language": "typescript", + "label": "Separate stable task progress and usage activity snapshots" + }, + { + "id": "work-subagent-usage-merge", + "path": "packages/client-runtime/src/state/subagentRuntime.ts", + "start": 149, + "end": 225, + "language": "typescript", + "label": "Tolerant field-wise task usage parsing and max merge" + }, + { + "id": "context-provider-binding-shape", + "path": "apps/server/src/persistence/ProviderSessionRuntime.ts", + "start": 35, + "end": 110, + "language": "typescript", + "label": "Persisted provider-instance binding and opaque continuation state" + }, + { + "id": "context-memory-compaction-ingestion", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 744, + "end": 763, + "language": "typescript", + "label": "Provider compaction observation becomes durable thread activity" + }, + { + "id": "context-window-reducer-retention", + "path": "packages/client-runtime/src/state/threadReducer.ts", + "start": 562, + "end": 592, + "language": "typescript", + "label": "Latest resolvable context-window snapshot retained per turn id" + }, + { + "id": "workbench-terminal-attach-order", + "path": "apps/server/src/terminal/Manager.ts", + "start": 2351, + "end": 2402, + "language": "typescript", + "label": "Terminal attach buffers races, emits a snapshot, then delivers live events" + }, + { + "id": "workbench-asset-token-verification", + "path": "apps/server/src/assets/AssetAccess.ts", + "start": 410, + "end": 451, + "language": "typescript", + "label": "Asset URL signing followed by signature and expiry verification" + }, + { + "id": "workbench-mcp-credential-issue", + "path": "apps/server/src/mcp/McpSessionRegistry.ts", + "start": 112, + "end": 168, + "language": "typescript", + "label": "Random MCP bearer credential and registry-generated scoped session identity" + }, + { + "id": "workbench-pr-write-gates", + "path": "apps/server/src/pullRequest/PullRequestService.ts", + "start": 1300, + "end": 1367, + "language": "typescript", + "label": "Pull-request host capability checks followed by fresh viewer authorization" + }, + { + "id": "project-script-import-flow", + "path": "apps/web/src/components/ProjectScriptsControl.tsx", + "start": 80, + "end": 150, + "language": "tsx", + "label": "Checked-in t3.json actions are deduplicated import suggestions" + }, + { + "id": "web-main-runtime-entry", + "path": "apps/web/src/main.tsx", + "start": 1, + "end": 61, + "language": "tsx", + "label": "Electron-aware history and authenticated React entry" + }, + { + "id": "web-app-root-providers", + "path": "apps/web/src/AppRoot.tsx", + "start": 1, + "end": 23, + "language": "tsx", + "label": "Shared atom registry and route-persistent renderer hosts" + }, + { + "id": "web-router-composition", + "path": "apps/web/src/router.ts", + "start": 1, + "end": 20, + "language": "typescript", + "label": "Generated route-tree router construction" + }, + { + "id": "web-environment-atom-catalog", + "path": "apps/web/src/connection/catalog.ts", + "start": 1, + "end": 5, + "language": "typescript", + "label": "Web environment catalog uses the shared atom runtime" + }, + { + "id": "web-environment-session-atoms", + "path": "apps/web/src/state/session.ts", + "start": 7, + "end": 41, + "language": "typescript", + "label": "Per-environment prepared connection and session atoms" + }, + { + "id": "web-timeline-list-virtualization", + "path": "apps/web/src/components/chat/MessagesTimeline.tsx", + "start": 570, + "end": 648, + "language": "tsx", + "label": "Keyed virtualized message timeline configuration" + }, + { + "id": "web-timeline-row-structural-sharing", + "path": "apps/web/src/components/chat/MessagesTimeline.tsx", + "start": 2095, + "end": 2113, + "language": "tsx", + "label": "Timeline row structural sharing for virtualized memo boundaries" + }, + { + "id": "web-sidebar-row-locality", + "path": "apps/web/src/components/Sidebar.tsx", + "start": 2200, + "end": 2252, + "language": "tsx", + "label": "Sidebar streaming row locality and callback references" + }, + { + "id": "web-client-tracing-export", + "path": "apps/web/src/observability/clientTracing.ts", + "start": 15, + "end": 96, + "language": "typescript", + "label": "Primary-environment OTLP client tracing lifecycle" + }, + { + "id": "web-sidebar-optimistic-pinning", + "path": "apps/web/src/components/Sidebar.tsx", + "start": 2554, + "end": 2610, + "language": "tsx", + "label": "Optimistic pin-order override and canonical surrender rules" + }, + { + "id": "mobile-app-root-composition", + "path": "apps/mobile/src/App.tsx", + "start": 61, + "end": 106, + "language": "tsx", + "label": "Mobile root Atom, provider, navigation, and native host composition" + }, + { + "id": "mobile-connection-runtime-layer", + "path": "apps/mobile/src/connection/runtime.ts", + "start": 1, + "end": 45, + "language": "typescript", + "label": "Shared connection and snapshot layers with mobile platform services" + }, + { + "id": "mobile-persistence-schema", + "path": "apps/mobile/src/persistence/mobile-database.ts", + "start": 242, + "end": 275, + "language": "typescript", + "label": "SQLite client cache and preference schema with versioned migration" + }, + { + "id": "mobile-draft-update-flush", + "path": "apps/mobile/src/state/use-composer-drafts.ts", + "start": 212, + "end": 229, + "language": "typescript", + "label": "Draft persistence flush before JavaScript runtime teardown" + }, + { + "id": "mobile-outbox-optimistic-durability", + "path": "apps/mobile/src/state/thread-outbox-manager.ts", + "start": 91, + "end": 124, + "language": "typescript", + "label": "Optimistic enqueue, durable rollback, and pre-delivery confirmation" + }, + { + "id": "mobile-outbox-delivery-policy", + "path": "apps/mobile/src/state/thread-outbox-model.ts", + "start": 145, + "end": 226, + "language": "typescript", + "label": "Outbox existence guards, capped backoff, and failure classification" + }, + { + "id": "mobile-share-commit-boundary", + "path": "apps/mobile/src/features/sharing/incoming-share-inbox.ts", + "start": 46, + "end": 124, + "language": "typescript", + "label": "Durable share inbox write before native handoff acknowledgement" + }, + { + "id": "mobile-native-surface-probe", + "path": "apps/mobile/src/features/terminal/nativeTerminalModule.ts", + "start": 48, + "end": 100, + "language": "typescript", + "label": "Optional native terminal resolution and compiled revision probe" + }, + { + "id": "mobile-update-restart-guard", + "path": "apps/mobile/src/features/updates/app-updates.ts", + "start": 417, + "end": 480, + "language": "typescript", + "label": "Deferred OTA flush and foreground-handoff safety gate" + }, + { + "id": "desktop-preload-bridge", + "path": "apps/desktop/src/preload.ts", + "start": 30, + "end": 103, + "language": "typescript", + "label": "Curated renderer bridge for local, SSH, exposure, WSL, and file operations" + }, + { + "id": "desktop-bootstrap-order", + "path": "apps/desktop/src/app/DesktopApp.ts", + "start": 142, + "end": 218, + "language": "typescript", + "label": "Endpoint selection, desktop protocol, IPC, primary start, and parallel WSL reconciliation" + }, + { + "id": "desktop-primary-platform-choice", + "path": "apps/desktop/src/backend/DesktopBackendConfiguration.ts", + "start": 689, + "end": 728, + "language": "typescript", + "label": "Host-local primary label with the Windows-only WSL override" + }, + { + "id": "desktop-pool-scope-lifecycle", + "path": "apps/desktop/src/backend/DesktopBackendPool.ts", + "start": 327, + "end": 419, + "language": "typescript", + "label": "Per-instance child scopes and primary-protected unregister lifecycle" + }, + { + "id": "desktop-process-channels", + "path": "apps/desktop/src/backend/DesktopBackendManager.ts", + "start": 451, + "end": 526, + "language": "typescript", + "label": "Bootstrap, telemetry, diagnostics-control, and WSL stdin process channels" + }, + { + "id": "desktop-http-readiness-loop", + "path": "apps/desktop/src/backend/DesktopBackendManager.ts", + "start": 566, + "end": 591, + "language": "typescript", + "label": "Repeated HTTP readiness budgets while the local child remains alive" + }, + { + "id": "desktop-updater-quit-boundary", + "path": "apps/desktop/src/app/DesktopLifecycle.ts", + "start": 198, + "end": 227, + "language": "typescript", + "label": "Updater-controlled quit bypasses the ordinary before-quit hold" + }, + { + "id": "desktop-all-instance-shutdown", + "path": "apps/desktop/src/app/DesktopApp.ts", + "start": 295, + "end": 315, + "language": "typescript", + "label": "Application finalizer gracefully stops every registered local backend" + }, + { + "id": "distribution-cli-contract", + "path": "apps/server/package.json", + "start": 1, + "end": 22, + "language": "json", + "label": "The t3 npm executable and published dist payload" + }, + { + "id": "distribution-cli-bundles-web", + "path": "apps/server/scripts/cli.ts", + "start": 143, + "end": 176, + "language": "typescript", + "label": "CLI build copies the web renderer into the server package" + }, + { + "id": "distribution-desktop-artifact-contract", + "path": "scripts/build-desktop-artifact.ts", + "start": 2059, + "end": 2107, + "language": "typescript", + "label": "Desktop artifact naming, packed resources, update feed, and macOS target" + }, + { + "id": "distribution-desktop-linux-windows-targets", + "path": "scripts/build-desktop-artifact.ts", + "start": 2133, + "end": 2174, + "language": "typescript", + "label": "Linux and Windows desktop target configuration" + }, + { + "id": "distribution-release-matrix", + "path": ".github/workflows/release.yml", + "start": 342, + "end": 397, + "language": "yaml", + "label": "The four desktop artifacts actually shipped by release CI" + }, + { + "id": "distribution-cli-before-release", + "path": ".github/workflows/release.yml", + "start": 709, + "end": 791, + "language": "yaml", + "label": "Exact CLI publication gates GitHub Release publication" + }, + { + "id": "distribution-mobile-fingerprint-publish", + "path": ".github/workflows/mobile-eas-production.yml", + "start": 263, + "end": 286, + "language": "yaml", + "label": "Production OTA publication requires a matching native fingerprint" + }, + { + "id": "distribution-download-resolution", + "path": "apps/marketing/src/pages/download.astro", + "start": 89, + "end": 132, + "language": "typescript", + "label": "Marketing download links resolve against latest GitHub Release assets" + }, + { + "id": "distribution-aur-selection", + "path": "packaging/aur/scripts/release.sh", + "start": 9, + "end": 44, + "language": "bash", + "label": "Stable and nightly tags select separate checksum-pinned AUR packages" + }, + { + "id": "release-channel-resolution", + "path": ".github/workflows/release.yml", + "start": 103, + "end": 155, + "language": "bash", + "label": "Stable and nightly releases derive different versions, tags, and latest policy" + }, + { + "id": "release-exact-version-invariant", + "path": "docs/operations/release.md", + "start": 174, + "end": 187, + "language": "markdown", + "label": "npm exact-version publication precedes every released client" + }, + { + "id": "desktop-update-check-download", + "path": "apps/desktop/src/updates/DesktopUpdates.ts", + "start": 334, + "end": 458, + "language": "typescript", + "label": "Desktop channel selection, update checks, and user-triggered download" + }, + { + "id": "desktop-update-install-boundary", + "path": "apps/desktop/src/updates/DesktopUpdates.ts", + "start": 465, + "end": 575, + "language": "typescript", + "label": "Desktop install stops every backend before updater-controlled restart" + }, + { + "id": "server-update-exact-preflight", + "path": "apps/server/src/cloud/selfUpdate.ts", + "start": 64, + "end": 169, + "language": "typescript", + "label": "Server self-update accepts only an exact version that passes staged preflight" + }, + { + "id": "server-update-launcher-handoff", + "path": "apps/server/src/cloud/selfUpdate.ts", + "start": 171, + "end": 191, + "language": "typescript", + "label": "Prepared server runtime is handed to the stable launcher by update id" + }, + { + "id": "mobile-ota-fingerprint-policy", + "path": "apps/mobile/app.config.ts", + "start": 159, + "end": 180, + "language": "typescript", + "label": "Mobile runtime compatibility is keyed by native fingerprint" + }, + { + "id": "analytics-posthog-controls", + "path": "apps/server/src/telemetry/AnalyticsService.ts", + "start": 31, + "end": 44, + "language": "typescript", + "label": "PostHog destination, opt-out, and bounded buffer configuration" + }, + { + "id": "analytics-posthog-boundary", + "path": "apps/server/src/telemetry/AnalyticsService.ts", + "start": 69, + "end": 134, + "language": "typescript", + "label": "Installation-scoped analytics payload and PostHog batch boundary" + }, + { + "id": "analytics-identity-ladder", + "path": "apps/server/src/telemetry/Identify.ts", + "start": 248, + "end": 299, + "language": "typescript", + "label": "Hashed Codex, Claude, then anonymous analytics identity ladder" + }, + { + "id": "observability-local-remote-lanes", + "path": "apps/server/src/observability/Layers/Observability.ts", + "start": 19, + "end": 93, + "language": "typescript", + "label": "Local trace sink remains active while OTLP traces and metrics are optional" + }, + { + "id": "observability-browser-ingest", + "path": "apps/server/src/http.ts", + "start": 146, + "end": 199, + "language": "typescript", + "label": "Authenticated browser traces land locally before optional OTLP forwarding" + }, + { + "id": "resource-telemetry-demand-history", + "path": "docs/internals/resource-telemetry.md", + "start": 129, + "end": 170, + "language": "markdown", + "label": "Bounded native history and diagnostics-driven telemetry streaming" + }, + { + "id": "connect-oauth-hosted-handoff", + "path": "packages/shared/src/connectAuth.ts", + "start": 19, + "end": 104, + "language": "typescript", + "label": "Hosted OAuth handoff and loopback versus out-of-band callbacks" + }, + { + "id": "connect-oauth-cli-pkce", + "path": "apps/server/src/cloud/CliTokenManager.ts", + "start": 266, + "end": 323, + "language": "typescript", + "label": "CLI PKCE, state validation, and authorization-code exchange" + }, + { + "id": "connect-browser-dpop-key", + "path": "apps/web/src/cloud/dpop.ts", + "start": 24, + "end": 143, + "language": "typescript", + "label": "Browser P-256 DPoP key storage, generation, and thumbprint" + }, + { + "id": "connect-environment-link-handshake", + "path": "apps/web/src/cloud/linkEnvironment.ts", + "start": 402, + "end": 493, + "language": "typescript", + "label": "Client-side relay challenge, environment proof, link, and runtime setup" + }, + { + "id": "connect-relay-linker-provision", + "path": "infra/relay/src/environments/EnvironmentLinker.ts", + "start": 227, + "end": 341, + "language": "typescript", + "label": "Relay challenge verification, replay defense, link, and endpoint provisioning" + }, + { + "id": "connect-managed-tunnel-provision", + "path": "infra/relay/src/environments/ManagedEndpointProvider.ts", + "start": 604, + "end": 855, + "language": "typescript", + "label": "Cloudflare tunnel allocation, ingress, DNS, and connector runtime" + }, + { + "id": "connect-environment-runtime-tunnel", + "path": "apps/server/src/cloud/ManagedEndpointRuntime.ts", + "start": 187, + "end": 287, + "language": "typescript", + "label": "Environment-owned managed tunnel child supervision" + }, + { + "id": "connect-relay-environment-mint", + "path": "infra/relay/src/environments/EnvironmentConnector.ts", + "start": 541, + "end": 670, + "language": "typescript", + "label": "Proof-key-bound relay mint request and environment bootstrap credential" + }, + { + "id": "dpop-validation", + "path": "packages/shared/src/dpop.ts", + "start": 1, + "end": 175, + "language": "typescript", + "label": "DPoP signature, target, token hash, and time validation" + }, + { + "id": "managed-relay-dpop-authorization", + "path": "packages/client-runtime/src/authorization/service.ts", + "start": 180, + "end": 299, + "language": "typescript", + "label": "Managed relay bootstrap becomes a distinct DPoP-bound environment session" + }, + { + "id": "reconnect-environment-registry", + "path": "packages/client-runtime/src/connection/registry.ts", + "start": 156, + "end": 289, + "language": "typescript", + "label": "Environment-scoped runtime registry and lease replacement" + }, + { + "id": "reconnect-scoped-environment-refs", + "path": "packages/contracts/src/environment.ts", + "start": 31, + "end": 130, + "language": "typescript", + "label": "Environment descriptors and scoped project and thread references" + }, + { + "id": "reconnect-supervisor-active-lease", + "path": "packages/client-runtime/src/connection/supervisor.ts", + "start": 490, + "end": 615, + "language": "typescript", + "label": "Active prepared connection and RPC session lease lifecycle" + }, + { + "id": "reconnect-supervisor-generation-loop", + "path": "packages/client-runtime/src/connection/supervisor.ts", + "start": 643, + "end": 755, + "language": "typescript", + "label": "Environment supervisor generation, offline, retry, and backoff loop" + }, + { + "id": "reconnect-shell-authoritative-refresh", + "path": "packages/client-runtime/src/state/shell.ts", + "start": 138, + "end": 254, + "language": "typescript", + "label": "Shell cache, authoritative refresh, cursor, and synchronization boundary" + }, + { + "id": "reconnect-thread-snapshot-epoch", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 212, + "end": 338, + "language": "typescript", + "label": "Thread snapshot replacement and stale history epoch guard" + }, + { + "id": "reconnect-mobile-background-demand", + "path": "apps/mobile/src/connection/background-activity.ts", + "start": 44, + "end": 115, + "language": "typescript", + "label": "Mobile background activity reports and retained environment demand" + }, + { + "id": "reconnect-mobile-background-scopes", + "path": "apps/mobile/src/connection/background-activity-scopes.ts", + "start": 24, + "end": 84, + "language": "typescript", + "label": "Reference-counted environment background scopes" + }, + { + "id": "awareness-relay-signal-filter", + "path": "apps/server/src/relay/AgentAwarenessRelay.ts", + "start": 69, + "end": 133, + "language": "typescript", + "label": "Awareness event filtering and projected-state sanitization" + }, + { + "id": "awareness-relay-projected-publish", + "path": "apps/server/src/relay/AgentAwarenessRelay.ts", + "start": 345, + "end": 426, + "language": "typescript", + "label": "Signed awareness publish and unchanged-state suppression" + }, + { + "id": "awareness-apns-delivery-policy", + "path": "infra/relay/src/agentActivity/ApnsDeliveries.ts", + "start": 143, + "end": 326, + "language": "typescript", + "label": "APNs alert gating and Live Activity delivery cadence" + }, + { + "id": "awareness-mobile-registration-gate", + "path": "apps/mobile/src/features/agent-awareness/remoteRegistration.ts", + "start": 69, + "end": 90, + "language": "typescript", + "label": "Relay-accepted mobile registration and replay repair boundary" + }, + { + "id": "awareness-notification-navigation", + "path": "apps/mobile/src/features/agent-awareness/notificationPayload.ts", + "start": 37, + "end": 105, + "language": "typescript", + "label": "Notification payload normalization, deduplication, and navigation" + }, + { + "id": "reconnect-capability-descriptor", + "path": "packages/contracts/src/environment.ts", + "start": 31, + "end": 92, + "language": "typescript", + "label": "Environment version and optional capability descriptor" + }, + { + "id": "reconnect-version-skew-guidance", + "path": "apps/web/src/versionSkew.ts", + "start": 21, + "end": 130, + "language": "typescript", + "label": "Exact client-server version comparison and update guidance" + }, + { + "id": "reconnect-exact-version-update", + "path": "apps/server/src/cloud/selfUpdate.ts", + "start": 30, + "end": 190, + "language": "typescript", + "label": "Exact-version staging, preflight, and launcher activation handoff" + } +] diff --git a/sources/references.manifest.json b/sources/references.manifest.json new file mode 100644 index 0000000..c68320b --- /dev/null +++ b/sources/references.manifest.json @@ -0,0 +1,4178 @@ +[ + { + "id": "rpc-group", + "path": "packages/contracts/src/rpc.ts", + "kind": "file", + "label": "complete typed RPC group" + }, + { + "id": "server-composition", + "path": "apps/server/src/server.ts", + "start": 123, + "end": 472, + "kind": "file", + "label": "server layer and route composition" + }, + { + "id": "provider-adapter-contract", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 28, + "end": 134, + "kind": "file", + "label": "provider normalization boundary" + }, + { + "id": "client-connection-directory", + "path": "packages/client-runtime/src/connection", + "kind": "directory", + "label": "shared client connection runtime" + }, + { + "id": "rpc-authorization-scopes", + "path": "apps/server/src/auth/RpcAuthorization.ts", + "start": 18, + "end": 139, + "kind": "file", + "label": "exhaustive RPC method-to-scope map" + }, + { + "id": "decider-command-sequence", + "path": "apps/server/src/orchestration/decider.ts", + "start": 181, + "end": 213, + "kind": "file", + "label": "compound-command planning against an evolved temporary read model" + }, + { + "id": "provider-turn-reactor", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1060, + "end": 1174, + "kind": "file", + "label": "committed turn intent to provider send" + }, + { + "id": "provider-runtime-event-union", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 1139, + "end": 1193, + "kind": "file", + "label": "canonical provider runtime event union" + }, + { + "id": "provider-runtime-ingestion", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1490, + "end": 1874, + "kind": "file", + "label": "runtime lifecycle, buffering, and internal command ingestion" + }, + { + "id": "orchestration-event-catalog", + "path": "packages/contracts/src/orchestration.ts", + "start": 1059, + "end": 1504, + "kind": "file", + "label": "durable orchestration event catalog" + }, + { + "id": "checkpoint-diff-dispatch", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 270, + "end": 316, + "kind": "file", + "label": "checkpoint result re-enters the command engine" + }, + { + "id": "checkpoint-runtime-triggers", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 842, + "end": 937, + "kind": "file", + "label": "provider and domain stream checkpoint triggers" + }, + { + "id": "maintainer-product-constraints", + "path": "AGENTS.md", + "start": 3, + "end": 31, + "kind": "file", + "label": "maintainer product boundaries" + }, + { + "id": "thread-state-runtime", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 534, + "end": 645, + "kind": "file", + "label": "HTTP snapshot followed by resumable event subscription" + }, + { + "id": "turn-normalizer", + "path": "apps/server/src/orchestration/Normalizer.ts", + "start": 46, + "end": 178, + "kind": "file", + "label": "timestamp, workspace, and attachment normalization before dispatch" + }, + { + "id": "existing-turn-decider", + "path": "apps/server/src/orchestration/decider.ts", + "start": 926, + "end": 1036, + "kind": "file", + "label": "atomic event batch for a turn on an existing thread" + }, + { + "id": "bootstrap-command-path", + "path": "apps/server/src/ws.ts", + "start": 1000, + "end": 1053, + "kind": "file", + "label": "multi-step bootstrap and compensating cleanup" + }, + { + "id": "command-receipt-handling", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 142, + "end": 170, + "kind": "file", + "label": "accepted receipt replay and aggregate conflict handling" + }, + { + "id": "runtime-receipt-bus", + "path": "apps/server/src/orchestration/Layers/RuntimeReceiptBus.ts", + "start": 1, + "end": 34, + "kind": "file", + "label": "test receipt bus and production no-op" + }, + { + "id": "event-engine-runtime", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 83, + "end": 96, + "kind": "file", + "label": "in-memory read model, queue, and event PubSub" + }, + { + "id": "ws-thread-subscription", + "path": "apps/server/src/ws.ts", + "start": 1394, + "end": 1521, + "kind": "file", + "label": "attach-before-snapshot thread subscription" + }, + { + "id": "provider-event-routing", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 356, + "end": 409, + "kind": "file", + "label": "adapter runtime events routed through ProviderService" + }, + { + "id": "client-environment-registry", + "path": "packages/client-runtime/src/connection/registry.ts", + "start": 128, + "end": 165, + "kind": "file", + "label": "one client registry supervises several environments" + }, + { + "id": "ephemeral-agent-liveness", + "path": "apps/server/src/orchestration/ThreadBackgroundLiveness.ts", + "start": 1, + "end": 14, + "kind": "file", + "label": "background-agent liveness is intentionally ephemeral" + }, + { + "id": "cli-web-bundle", + "path": "apps/server/scripts/cli.ts", + "start": 143, + "end": 176, + "kind": "file", + "label": "server distribution copies the built web client" + }, + { + "id": "cli-build-dependency", + "path": "apps/server/vite.config.ts", + "start": 26, + "end": 55, + "kind": "file", + "label": "server bundle depends on the web build" + }, + { + "id": "web-runtime-selection", + "path": "apps/web/src/main.tsx", + "start": 21, + "end": 59, + "kind": "file", + "label": "hosted, browser, and Electron web runtime selection" + }, + { + "id": "desktop-app-assembly", + "path": "apps/desktop/src/app/DesktopApp.ts", + "start": 142, + "end": 291, + "kind": "file", + "label": "Electron app and managed backend assembly" + }, + { + "id": "mobile-app-distribution", + "path": "apps/mobile/app.config.ts", + "start": 159, + "end": 180, + "kind": "file", + "label": "mobile runtime version and distribution configuration" + }, + { + "id": "marketing-site-runtime", + "path": "apps/marketing/package.json", + "start": 1, + "end": 20, + "kind": "file", + "label": "independent Astro marketing package boundary" + }, + { + "id": "desktop-native-boundary", + "path": "apps/desktop/src/preload.ts", + "start": 30, + "end": 185, + "kind": "file", + "label": "curated desktop-native API boundary" + }, + { + "id": "mobile-local-state-cleanup", + "path": "apps/mobile/src/connection/platform.ts", + "start": 212, + "end": 229, + "kind": "file", + "label": "mobile owns durable drafts and outbox cleanup" + }, + { + "id": "connection-target-model", + "path": "packages/client-runtime/src/connection/model.ts", + "start": 9, + "end": 54, + "kind": "file", + "label": "Primary, Bearer, Relay, and SSH target union" + }, + { + "id": "desktop-preview-gate", + "path": "apps/web/src/routes/_chat.tsx", + "start": 111, + "end": 150, + "kind": "file", + "label": "preview is restricted to the desktop runtime" + }, + { + "id": "mobile-notification-capability", + "path": "apps/mobile/src/features/settings/SettingsRouteScreen.logic.ts", + "start": 1, + "end": 8, + "kind": "file", + "label": "remote notification settings are iOS-only" + }, + { + "id": "mobile-offline-outbox", + "path": "apps/mobile/src/state/use-thread-outbox-drain.ts", + "start": 285, + "end": 424, + "kind": "file", + "label": "durable mobile task outbox drain" + }, + { + "id": "environment-descriptor", + "path": "packages/contracts/src/environment.ts", + "start": 31, + "end": 92, + "kind": "file", + "label": "environment capability and version descriptor" + }, + { + "id": "orchestration-entities", + "path": "packages/contracts/src/orchestration.ts", + "start": 235, + "end": 432, + "kind": "file", + "label": "project, thread, message, plan, session, and checkpoint entities" + }, + { + "id": "orchestration-shell-summary", + "path": "packages/contracts/src/orchestration.ts", + "start": 434, + "end": 507, + "kind": "file", + "label": "shell summary with durable and ephemeral thread state" + }, + { + "id": "orchestration-command-catalog", + "path": "packages/contracts/src/orchestration.ts", + "start": 637, + "end": 1057, + "kind": "file", + "label": "external and internal command catalog" + }, + { + "id": "provider-session-vocabulary", + "path": "packages/contracts/src/provider.ts", + "start": 26, + "end": 66, + "kind": "file", + "label": "canonical provider session lifecycle contract" + }, + { + "id": "provider-runtime-vocabulary", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 52, + "end": 197, + "kind": "file", + "label": "canonical provider turn, message, content, and activity vocabulary" + }, + { + "id": "provider-session-binding", + "path": "apps/server/src/persistence/ProviderSessionRuntime.ts", + "start": 147, + "end": 236, + "kind": "file", + "label": "persisted provider binding and continuation cursor" + }, + { + "id": "provider-session-recovery", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 411, + "end": 544, + "kind": "file", + "label": "lazy adapter-session creation and recovery" + }, + { + "id": "startup-provider-reconciliation", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 296, + "end": 377, + "kind": "file", + "label": "orphaned provider-session startup reconciliation" + }, + { + "id": "provider-adapter-capabilities", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 28, + "end": 35, + "kind": "file", + "label": "common adapter capability declaration" + }, + { + "id": "root-workspace-manifest", + "path": "package.json", + "start": 1, + "end": 61, + "kind": "file", + "label": "monorepo scripts, build graph entrypoints, and toolchain" + }, + { + "id": "pnpm-workspace", + "path": "pnpm-workspace.yaml", + "start": 1, + "end": 160, + "kind": "file", + "label": "workspace packages, catalogs, and dependency policy" + }, + { + "id": "contracts-package", + "path": "packages/contracts/package.json", + "start": 1, + "end": 34, + "kind": "file", + "label": "shared contract package boundaries" + }, + { + "id": "client-runtime-package", + "path": "packages/client-runtime/package.json", + "start": 1, + "end": 172, + "kind": "file", + "label": "shared client runtime package boundary" + }, + { + "id": "desktop-package", + "path": "apps/desktop/package.json", + "start": 1, + "end": 39, + "kind": "file", + "label": "Electron package and native dependencies" + }, + { + "id": "mobile-package", + "path": "apps/mobile/package.json", + "start": 1, + "end": 147, + "kind": "file", + "label": "React Native/Expo package and independent version domain" + }, + { + "id": "resource-monitor-crate", + "path": "native/resource-monitor/Cargo.toml", + "start": 1, + "end": 17, + "kind": "file", + "label": "native resource-monitor crate" + }, + { + "id": "cli-package-surface", + "path": "apps/server/package.json", + "start": 1, + "end": 52, + "kind": "file", + "label": "published t3 package, executable, files, and runtime constraints" + }, + { + "id": "cli-root-dispatch", + "path": "apps/server/src/bin.ts", + "start": 23, + "end": 71, + "kind": "file", + "label": "root command, cloud gate, and subcommand dispatch" + }, + { + "id": "cli-service-preflight-command", + "path": "apps/server/src/cli/servicePreflight.ts", + "start": 7, + "end": 16, + "kind": "file", + "label": "hidden internal service preflight command" + }, + { + "id": "cli-command-semantics", + "path": "apps/server/src/cli/server.ts", + "start": 8, + "end": 35, + "kind": "file", + "label": "start and headless serve handoff" + }, + { + "id": "cli-config-channels", + "path": "apps/server/src/cli/config.ts", + "start": 20, + "end": 191, + "kind": "file", + "label": "CLI flags and environment configuration channels" + }, + { + "id": "cli-config-resolver", + "path": "apps/server/src/cli/config.ts", + "start": 210, + "end": 392, + "kind": "file", + "label": "resolved server configuration precedence and defaults" + }, + { + "id": "available-port-selection", + "path": "packages/shared/src/Net.ts", + "start": 194, + "end": 200, + "kind": "file", + "label": "preferred port followed by OS-assigned ephemeral fallback" + }, + { + "id": "desktop-backend-port-selection", + "path": "apps/desktop/src/app/DesktopApp.ts", + "start": 69, + "end": 103, + "kind": "file", + "label": "desktop parent sequential port selection helper" + }, + { + "id": "desktop-bootstrap-envelope", + "path": "apps/desktop/src/backend/DesktopBackendConfiguration.ts", + "start": 366, + "end": 414, + "kind": "file", + "label": "desktop parent bootstrap port and process metadata envelope" + }, + { + "id": "server-path-layout", + "path": "apps/server/src/config.ts", + "start": 99, + "end": 155, + "kind": "file", + "label": "development and userdata path derivation" + }, + { + "id": "static-dir-resolution", + "path": "apps/server/src/config.ts", + "start": 206, + "end": 225, + "kind": "file", + "label": "bundled and monorepo static-client lookup" + }, + { + "id": "cli-bundle-policy", + "path": "apps/server/vite.config.ts", + "start": 8, + "end": 75, + "kind": "file", + "label": "CLI bundling policy, native external boundary, and build metadata" + }, + { + "id": "cli-publish-assertions", + "path": "apps/server/scripts/cli.ts", + "start": 225, + "end": 304, + "kind": "file", + "label": "publish-time client and launcher artifact assertions" + }, + { + "id": "cli-native-dependency-boundary", + "path": "scripts/lib/cli-external-packages.ts", + "start": 1, + "end": 102, + "kind": "file", + "label": "native packages kept outside the bundled executable" + }, + { + "id": "service-launcher-trial-handoff", + "path": "apps/server/src/serviceLauncher.ts", + "start": 353, + "end": 600, + "kind": "file", + "label": "managed service update trial, handoff, commit, and rollback" + }, + { + "id": "static-and-dev-serving", + "path": "apps/server/src/http.ts", + "start": 233, + "end": 322, + "kind": "file", + "label": "development redirect, static fallback, and missing-client response" + }, + { + "id": "startup-browser-target", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 257, + "end": 288, + "kind": "file", + "label": "startup browser and pairing target resolution" + }, + { + "id": "startup-headless-access", + "path": "apps/server/src/startupAccess.ts", + "start": 71, + "end": 147, + "kind": "file", + "label": "actual listening address and fragment-based headless pairing output" + }, + { + "id": "server-platform-layers", + "path": "apps/server/src/server.ts", + "start": 123, + "end": 240, + "kind": "file", + "label": "Bun or Node platform and HTTP server layer selection" + }, + { + "id": "server-service-composition", + "path": "apps/server/src/server.ts", + "start": 242, + "end": 429, + "kind": "file", + "label": "server persistence, runtime, provider, workspace, and operational layer composition" + }, + { + "id": "server-route-readiness-barrier", + "path": "apps/server/src/server.ts", + "start": 431, + "end": 437, + "kind": "file", + "label": "global route-execution readiness barrier" + }, + { + "id": "server-route-composition", + "path": "apps/server/src/server.ts", + "start": 447, + "end": 472, + "kind": "file", + "label": "HTTP API, assets, WebSocket RPC, and MCP route composition" + }, + { + "id": "server-activation-barrier", + "path": "apps/server/src/server.ts", + "start": 474, + "end": 689, + "kind": "file", + "label": "prepared roots, activation, routes, and scoped server ownership" + }, + { + "id": "startup-command-gate", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 94, + "end": 136, + "kind": "file", + "label": "command readiness deferred and failure propagation" + }, + { + "id": "startup-authoritative-sequence", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 385, + "end": 583, + "kind": "file", + "label": "authoritative startup ordering and failure path" + }, + { + "id": "activation-fork-parked", + "path": "apps/server/src/serverActivation.ts", + "start": 11, + "end": 25, + "kind": "file", + "label": "parked child fiber activation semantics" + }, + { + "id": "sqlite-acquisition", + "path": "apps/server/src/persistence/Layers/Sqlite.ts", + "start": 19, + "end": 41, + "kind": "file", + "label": "SQLite pragmas and migration acquisition" + }, + { + "id": "sqlite-migration-manifest", + "path": "apps/server/src/persistence/Migrations.ts", + "start": 15, + "end": 152, + "kind": "file", + "label": "ordered static SQLite migration manifest" + }, + { + "id": "orchestration-reactor-start", + "path": "apps/server/src/orchestration/Layers/OrchestrationReactor.ts", + "start": 14, + "end": 31, + "kind": "file", + "label": "production orchestration reactor startup surface" + }, + { + "id": "drainable-worker-semantics", + "path": "packages/shared/src/DrainableWorker.ts", + "start": 1, + "end": 70, + "kind": "file", + "label": "serialized worker drain semantics and test synchronization intent" + }, + { + "id": "stale-startup-overview", + "path": "docs/internals/overview.md", + "start": 124, + "end": 130, + "kind": "file", + "label": "stale documented startup sequence" + }, + { + "id": "orchestration-snapshot-contracts", + "path": "packages/contracts/src/orchestration.ts", + "start": 501, + "end": 635, + "kind": "file", + "label": "shell and thread snapshots, cursors, and pagination contracts" + }, + { + "id": "orchestration-thread-stream-contract", + "path": "packages/contracts/src/orchestration.ts", + "start": 1506, + "end": 1519, + "kind": "file", + "label": "thread snapshot, event, and synchronized stream union" + }, + { + "id": "orchestration-rpc-schema-map", + "path": "packages/contracts/src/orchestration.ts", + "start": 1680, + "end": 1713, + "kind": "file", + "label": "orchestration RPC input and output schema map" + }, + { + "id": "rpc-orchestration-definitions", + "path": "packages/contracts/src/rpc.ts", + "start": 885, + "end": 948, + "kind": "file", + "label": "typed orchestration unary and streaming RPC definitions" + }, + { + "id": "environment-http-contracts", + "path": "packages/contracts/src/environmentHttp.ts", + "start": 486, + "end": 531, + "kind": "file", + "label": "typed environment HTTP orchestration contracts" + }, + { + "id": "orchestration-http-snapshots", + "path": "apps/server/src/orchestration/http.ts", + "start": 22, + "end": 108, + "kind": "file", + "label": "HTTP shell and thread snapshot implementations" + }, + { + "id": "ws-authenticated-session", + "path": "apps/server/src/ws.ts", + "start": 385, + "end": 538, + "kind": "file", + "label": "authenticated WebSocket session and per-method authorization wrapper" + }, + { + "id": "ws-shell-coalescing", + "path": "apps/server/src/ws.ts", + "start": 644, + "end": 819, + "kind": "file", + "label": "shell invalidation coalescing and refetch behavior" + }, + { + "id": "ws-advertised-capabilities", + "path": "apps/server/src/ws.ts", + "start": 1077, + "end": 1116, + "kind": "file", + "label": "server configuration and synchronization capability advertisement" + }, + { + "id": "ws-dispatch-handler", + "path": "apps/server/src/ws.ts", + "start": 1124, + "end": 1221, + "kind": "file", + "label": "authorized command normalization and dispatch handler" + }, + { + "id": "ws-shell-resume", + "path": "apps/server/src/ws.ts", + "start": 1270, + "end": 1375, + "kind": "file", + "label": "bounded shell replay and snapshot fallback" + }, + { + "id": "ws-resume-gap-cap", + "path": "apps/server/src/ws.ts", + "start": 308, + "end": 315, + "kind": "file", + "label": "one-thousand-event shell and thread resume gap limits" + }, + { + "id": "ws-command-entry-policy", + "path": "apps/server/src/ws.ts", + "start": 821, + "end": 1074, + "kind": "file", + "label": "WebSocket bootstrap compensation and startup command queue" + }, + { + "id": "command-commit-acknowledgement", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 197, + "end": 260, + "kind": "file", + "label": "transactional event commit before sequence acknowledgement" + }, + { + "id": "ws-route-json-protocol", + "path": "apps/server/src/ws.ts", + "start": 2398, + "end": 2468, + "kind": "file", + "label": "WebSocket upgrade, authenticated RPC handler, and JSON serialization layer" + }, + { + "id": "client-rpc-session", + "path": "packages/client-runtime/src/rpc/session.ts", + "start": 68, + "end": 145, + "kind": "file", + "label": "one WebSocket RPC attempt with internal retries disabled" + }, + { + "id": "client-rpc-subscriptions", + "path": "packages/client-runtime/src/rpc/client.ts", + "start": 178, + "end": 280, + "kind": "file", + "label": "session-aware dynamic subscription replacement" + }, + { + "id": "client-shell-convergence", + "path": "packages/client-runtime/src/state/shellReducer.ts", + "start": 1, + "end": 45, + "kind": "file", + "label": "shell sequence watermark and overlapping event de-duplication" + }, + { + "id": "client-thread-convergence", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 316, + "end": 365, + "kind": "file", + "label": "thread snapshot replacement and sequence de-duplication" + }, + { + "id": "auth-contracts", + "path": "packages/contracts/src/auth.ts", + "start": 29, + "end": 202, + "kind": "file", + "label": "authentication policy, session, method, and scope contracts" + }, + { + "id": "auth-policy-derivation", + "path": "apps/server/src/auth/EnvironmentAuthPolicy.ts", + "start": 16, + "end": 47, + "kind": "file", + "label": "runtime mode and bind-host authentication policy derivation" + }, + { + "id": "auth-session-exchange", + "path": "apps/server/src/auth/EnvironmentAuth.ts", + "start": 655, + "end": 744, + "kind": "file", + "label": "browser and token session exchange with scope subset checks" + }, + { + "id": "auth-request-precedence", + "path": "apps/server/src/auth/EnvironmentAuth.ts", + "start": 592, + "end": 632, + "kind": "file", + "label": "cookie, Bearer, and DPoP request credential precedence" + }, + { + "id": "auth-pairing-ticket-upgrade", + "path": "apps/server/src/auth/EnvironmentAuth.ts", + "start": 769, + "end": 961, + "kind": "file", + "label": "pairing issue, WebSocket ticket, and upgrade authentication" + }, + { + "id": "pairing-grant-ttls", + "path": "apps/server/src/auth/PairingGrantStore.ts", + "start": 241, + "end": 330, + "kind": "file", + "label": "standard, startup, and desktop bootstrap grant lifetimes" + }, + { + "id": "pairing-grant-consumption", + "path": "apps/server/src/auth/PairingGrantStore.ts", + "start": 379, + "end": 568, + "kind": "file", + "label": "pairing grant issuance and one-use consumption" + }, + { + "id": "pairing-sqlite-consumption", + "path": "apps/server/src/persistence/AuthPairingLinks.ts", + "start": 125, + "end": 180, + "kind": "file", + "label": "atomic SQLite pairing-link consumption" + }, + { + "id": "session-default-ttls", + "path": "apps/server/src/auth/SessionStore.ts", + "start": 410, + "end": 434, + "kind": "file", + "label": "normal session and WebSocket ticket default lifetimes" + }, + { + "id": "session-issue-verification", + "path": "apps/server/src/auth/SessionStore.ts", + "start": 603, + "end": 747, + "kind": "file", + "label": "signed session issue and SQLite-backed verification" + }, + { + "id": "websocket-ticket-session", + "path": "apps/server/src/auth/SessionStore.ts", + "start": 749, + "end": 851, + "kind": "file", + "label": "WebSocket ticket issue and current session reload" + }, + { + "id": "session-revocation", + "path": "apps/server/src/auth/SessionStore.ts", + "start": 876, + "end": 929, + "kind": "file", + "label": "session revocation persistence and access events" + }, + { + "id": "auth-http-exchange", + "path": "apps/server/src/auth/http.ts", + "start": 164, + "end": 319, + "kind": "file", + "label": "HTTP credential exchange and cookie behavior" + }, + { + "id": "auth-delegated-scopes", + "path": "apps/server/src/auth/http.ts", + "start": 335, + "end": 432, + "kind": "file", + "label": "pairing delegation and client-session scope enforcement" + }, + { + "id": "server-secret-store", + "path": "apps/server/src/auth/ServerSecretStore.ts", + "start": 152, + "end": 310, + "kind": "file", + "label": "secret file permissions and atomic persistence" + }, + { + "id": "dpop-replay-record", + "path": "apps/server/src/auth/dpop.ts", + "start": 29, + "end": 87, + "kind": "file", + "label": "durable exclusive DPoP replay marker" + }, + { + "id": "startup-pairing-fragment", + "path": "apps/server/src/startupAccess.ts", + "start": 92, + "end": 97, + "kind": "file", + "label": "pairing token encoded in the URL fragment" + }, + { + "id": "client-pairing-fragment-strip", + "path": "apps/web/src/environments/primary/auth.ts", + "start": 156, + "end": 176, + "kind": "file", + "label": "browser pairing fragment extraction and immediate removal" + }, + { + "id": "hosted-static-auth-boundary", + "path": "apps/web/src/routes/__root.tsx", + "start": 61, + "end": 129, + "kind": "file", + "label": "hosted static and hosted pairing routes bypass the primary-server auth gate" + }, + { + "id": "hosted-pairing-url", + "path": "apps/web/src/hostedPairing.ts", + "start": 47, + "end": 80, + "kind": "file", + "label": "hosted pairing backend query and credential fragment" + }, + { + "id": "hosted-pairing-registration", + "path": "apps/web/src/components/auth/PairingRouteSurface.tsx", + "start": 166, + "end": 231, + "kind": "file", + "label": "hosted pairing fragment removal and remote-environment registration" + }, + { + "id": "hosted-bearer-onboarding", + "path": "packages/client-runtime/src/connection/onboarding.ts", + "start": 86, + "end": 118, + "kind": "file", + "label": "direct hosted pairing exchanges a grant for a Bearer environment registration" + }, + { + "id": "hosted-clerk-provider", + "path": "apps/web/src/main.tsx", + "start": 31, + "end": 59, + "kind": "file", + "label": "Clerk and managed-relay auth wrap the configured cloud client" + }, + { + "id": "managed-relay-auth-provider", + "path": "apps/web/src/cloud/managedAuth.tsx", + "start": 39, + "end": 115, + "kind": "file", + "label": "Clerk account state activates the managed-relay session" + }, + { + "id": "auth-session-row-shape", + "path": "apps/server/src/persistence/AuthSessions.ts", + "start": 34, + "end": 55, + "kind": "file", + "label": "SQLite session row fields exclude the DPoP key thumbprint" + }, + { + "id": "auth-doc-ticket-overclaim", + "path": "docs/internals/environment-auth.md", + "start": 95, + "end": 111, + "kind": "file", + "label": "documentation claim that WebSocket tickets carry scopes" + }, + { + "id": "decider-effect-dependencies", + "path": "apps/server/src/orchestration/decider.ts", + "start": 18, + "end": 173, + "kind": "file", + "label": "clock, UUID, and event-envelope dependencies in decision logic" + }, + { + "id": "bootstrap-saga-full", + "path": "apps/server/src/ws.ts", + "start": 821, + "end": 1053, + "kind": "file", + "label": "WebSocket-only thread bootstrap and compensating delete saga" + }, + { + "id": "event-envelope-fields", + "path": "packages/contracts/src/orchestration.ts", + "start": 1323, + "end": 1355, + "kind": "file", + "label": "public durable event envelope" + }, + { + "id": "event-store-versioning", + "path": "apps/server/src/persistence/Layers/OrchestrationEventStore.ts", + "start": 70, + "end": 157, + "kind": "file", + "label": "actor classification, global sequence, and internal stream version assignment" + }, + { + "id": "engine-rejected-receipt", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 287, + "end": 325, + "kind": "file", + "label": "best-effort persistence of invariant rejection receipts" + }, + { + "id": "engine-failure-reconciliation", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 109, + "end": 130, + "kind": "file", + "label": "same-process durable-tail reconciliation after dispatch failure" + }, + { + "id": "engine-receipt-publication-boundary", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 142, + "end": 259, + "kind": "file", + "label": "receipt short-circuit, atomic commit, and post-commit publication" + }, + { + "id": "projection-registration-order", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1609, + "end": 1646, + "kind": "file", + "label": "nine projectors in synchronous application order" + }, + { + "id": "projection-bootstrap-cursors", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1681, + "end": 1727, + "kind": "file", + "label": "sequential projector catch-up from independent cursors" + }, + { + "id": "projection-read-cap", + "path": "apps/server/src/persistence/Layers/OrchestrationEventStore.ts", + "start": 67, + "end": 267, + "kind": "file", + "label": "default one-thousand-event total read limit and pagination loop" + }, + { + "id": "thread-detail-turn-limit", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 2669, + "end": 2700, + "kind": "file", + "label": "thread detail bounds pathological fan-out at 150 raw turns per page" + }, + { + "id": "checkpoint-projector-noop", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1477, + "end": 1487, + "kind": "file", + "label": "named checkpoint projector currently performs no writes" + }, + { + "id": "turn-checkpoint-projection", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1404, + "end": 1448, + "kind": "file", + "label": "checkpoint completion fields are written into projected turn rows" + }, + { + "id": "projection-snapshot-shapes", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 1738, + "end": 1940, + "kind": "file", + "label": "optimized command model excludes message, activity, and checkpoint collections" + }, + { + "id": "projection-attachment-cleanup", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 330, + "end": 468, + "kind": "file", + "label": "projected attachment reference collection and filesystem cleanup" + }, + { + "id": "reactor-composite-start", + "path": "apps/server/src/orchestration/Layers/OrchestrationReactor.ts", + "start": 14, + "end": 31, + "kind": "file", + "label": "independent orchestration reactor roots" + }, + { + "id": "provider-reactor-hot-subscription", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1377, + "end": 1439, + "kind": "file", + "label": "hot stream subscription, worker wiring, and partial drain surface" + }, + { + "id": "provider-turn-dedupe-cache", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 89, + "end": 325, + "kind": "file", + "label": "bounded volatile turn-start duplicate suppression cache" + }, + { + "id": "provider-send-binding-order", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 771, + "end": 801, + "kind": "file", + "label": "adapter send precedes local running-binding persistence" + }, + { + "id": "provider-runtime-publish", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 286, + "end": 295, + "kind": "file", + "label": "best-effort runtime log write before hot PubSub publication" + }, + { + "id": "runtime-ingestion-buffer-dispatch", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 884, + "end": 1162, + "kind": "file", + "label": "randomized internal command IDs and buffer invalidation before dispatch" + }, + { + "id": "runtime-ingestion-worker", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 2040, + "end": 2082, + "kind": "file", + "label": "hot runtime and no-op domain inputs feed one failure-isolating worker" + }, + { + "id": "drainable-worker-close", + "path": "packages/shared/src/DrainableWorker.ts", + "start": 31, + "end": 69, + "kind": "file", + "label": "serialized queue, test drain, and interrupting scope finalizer" + }, + { + "id": "startup-parked-reactors", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 385, + "end": 535, + "kind": "file", + "label": "parked reactor roots, pre-activation reconciliation, and command-ready gate" + }, + { + "id": "agent-awareness-recovery", + "path": "apps/server/src/relay/AgentAwarenessRelay.ts", + "start": 337, + "end": 631, + "kind": "file", + "label": "volatile confirmation state and delayed active-thread snapshot publication" + }, + { + "id": "migration-runner", + "path": "apps/server/src/persistence/Migrations.ts", + "start": 15, + "end": 152, + "kind": "file", + "label": "static migration manifest and automatically tracked runner" + }, + { + "id": "checkpoint-diff-blob-migration", + "path": "apps/server/src/persistence/Migrations/003_CheckpointDiffBlobs.ts", + "start": 1, + "end": 22, + "kind": "file", + "label": "checkpoint diff blob table and index migration" + }, + { + "id": "service-update-recovery", + "path": "apps/server/src/serviceLauncher.ts", + "start": 73, + "end": 600, + "kind": "file", + "label": "durable update state, SQLite backup, restore marker, trial, and rollback" + }, + { + "id": "settings-secret-order", + "path": "apps/server/src/serverSettings.ts", + "start": 427, + "end": 642, + "kind": "file", + "label": "secret mutations precede settings JSON, cache, and publication" + }, + { + "id": "settings-load-fallbacks", + "path": "apps/server/src/serverSettings.ts", + "start": 302, + "end": 408, + "kind": "file", + "label": "missing and malformed settings fallbacks plus secret materialization" + }, + { + "id": "settings-atomic-write", + "path": "apps/server/src/atomicWrite.ts", + "start": 5, + "end": 24, + "kind": "file", + "label": "same-directory temporary settings write and rename" + }, + { + "id": "secret-store-atomic-boundary", + "path": "apps/server/src/auth/ServerSecretStore.ts", + "start": 187, + "end": 302, + "kind": "file", + "label": "secret temp-file rename, exclusive creation, and removal semantics" + }, + { + "id": "attachment-projection-cleanup", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1648, + "end": 1678, + "kind": "file", + "label": "projector SQL and cursor step precede best-effort attachment cleanup" + }, + { + "id": "attachment-path-safety", + "path": "apps/server/src/attachmentPaths.ts", + "start": 4, + "end": 27, + "kind": "file", + "label": "attachment path normalization and root-containment check" + }, + { + "id": "terminal-history-persistence", + "path": "apps/server/src/terminal/Manager.ts", + "start": 1355, + "end": 1496, + "kind": "file", + "label": "coalesced direct-overwrite terminal history persistence and restore" + }, + { + "id": "terminal-history-defaults", + "path": "apps/server/src/terminal/Manager.ts", + "start": 77, + "end": 84, + "kind": "file", + "label": "terminal history cap and persistence debounce defaults" + }, + { + "id": "terminal-output-persistence-order", + "path": "apps/server/src/terminal/Manager.ts", + "start": 1630, + "end": 1726, + "kind": "file", + "label": "terminal output updates memory, queues persistence, then publishes" + }, + { + "id": "terminal-explicit-close", + "path": "apps/server/src/terminal/Manager.ts", + "start": 1963, + "end": 2000, + "kind": "file", + "label": "explicit terminal close persists and drains one history key" + }, + { + "id": "terminal-scope-finalizer", + "path": "apps/server/src/terminal/Manager.ts", + "start": 2116, + "end": 2160, + "kind": "file", + "label": "manager finalizer kills sessions without a global history drain" + }, + { + "id": "terminal-lazy-history-open", + "path": "apps/server/src/terminal/Manager.ts", + "start": 2145, + "end": 2203, + "kind": "file", + "label": "first open loads saved text before starting a new terminal process" + }, + { + "id": "provider-event-log-contract", + "path": "apps/server/src/provider/Layers/EventNdjsonLogger.ts", + "start": 1, + "end": 49, + "kind": "file", + "label": "best-effort provider log defaults and omitted transient events" + }, + { + "id": "provider-event-log-drain", + "path": "apps/server/src/provider/Layers/EventNdjsonLogger.ts", + "start": 340, + "end": 615, + "kind": "file", + "label": "provider log buffer drain, retention failures, and no-op setup fallback" + }, + { + "id": "observability-runtime", + "path": "apps/server/src/observability/Layers/Observability.ts", + "start": 19, + "end": 93, + "kind": "file", + "label": "local trace sink with optional OTLP trace and metrics delegates" + }, + { + "id": "server-logger-sinks", + "path": "apps/server/src/serverLogger.ts", + "start": 8, + "end": 16, + "kind": "file", + "label": "pretty console and tracer logger composition" + }, + { + "id": "checkpoint-git-capture-restore", + "path": "apps/server/src/vcs/GitVcsDriver.ts", + "start": 708, + "end": 828, + "kind": "file", + "label": "hidden-ref capture and content restore with index reset" + }, + { + "id": "checkpoint-revert-saga", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 690, + "end": 818, + "kind": "file", + "label": "Git restore, provider rollback, ref cleanup, and durable completion ordering" + }, + { + "id": "checkpoint-capture-dispatch-order", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 221, + "end": 351, + "kind": "file", + "label": "hidden-ref capture and diff precede durable checkpoint metadata dispatch" + }, + { + "id": "projection-tombstones", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 490, + "end": 857, + "kind": "file", + "label": "project and thread deletion update projection tombstones" + }, + { + "id": "revert-derived-pruning", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 948, + "end": 1475, + "kind": "file", + "label": "thread revert prunes and rebuilds selected derived projection rows" + }, + { + "id": "event-store-api-surface", + "path": "apps/server/src/persistence/Services/OrchestrationEventStore.ts", + "start": 22, + "end": 55, + "kind": "file", + "label": "event store append and ordered read API surface" + }, + { + "id": "receipt-repository-api-surface", + "path": "apps/server/src/persistence/Services/OrchestrationCommandReceipts.ts", + "start": 25, + "end": 63, + "kind": "file", + "label": "command receipt schema plus upsert and lookup API surface" + }, + { + "id": "provider-binding-delete-surface", + "path": "apps/server/src/persistence/ProviderSessionRuntime.ts", + "start": 70, + "end": 103, + "kind": "file", + "label": "provider runtime repository includes an explicit delete operation" + }, + { + "id": "thread-deletion-side-effects", + "path": "apps/server/src/orchestration/Layers/ThreadDeletionReactor.ts", + "start": 40, + "end": 97, + "kind": "file", + "label": "hot post-delete provider and terminal cleanup" + }, + { + "id": "provider-session-contract", + "path": "packages/contracts/src/provider.ts", + "start": 34, + "end": 86, + "kind": "file", + "label": "canonical provider session identity and runtime state" + }, + { + "id": "provider-session-directory", + "path": "apps/server/src/provider/Layers/ProviderSessionDirectory.ts", + "start": 60, + "end": 148, + "kind": "file", + "label": "live provider session directory registration and lookup" + }, + { + "id": "provider-service-session-recovery", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 411, + "end": 544, + "kind": "file", + "label": "binding-led provider session recovery and adoption" + }, + { + "id": "provider-adapter-error-taxonomy", + "path": "apps/server/src/provider/Errors.ts", + "start": 5, + "end": 203, + "kind": "file", + "label": "typed provider boundary and recovery error taxonomy" + }, + { + "id": "provider-runtime-event-base", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 148, + "end": 265, + "kind": "file", + "label": "canonical runtime event identity and base fields" + }, + { + "id": "provider-service-runtime-correlation", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 195, + "end": 409, + "kind": "file", + "label": "provider-instance correlation, optional event logging, and hot publication" + }, + { + "id": "provider-command-control-forwarding", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1176, + "end": 1316, + "kind": "file", + "label": "interrupt, approval, input, stop, and rollback forwarding" + }, + { + "id": "codex-adapter-capabilities", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1984, + "end": 2000, + "kind": "file", + "label": "Codex adapter capability declaration" + }, + { + "id": "claude-adapter-capabilities", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4577, + "end": 4596, + "kind": "file", + "label": "Claude adapter capability declaration and shutdown" + }, + { + "id": "cursor-adapter-capabilities", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 1165, + "end": 1186, + "kind": "file", + "label": "Cursor adapter capability declaration and shutdown" + }, + { + "id": "grok-adapter-capabilities", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 1455, + "end": 1467, + "kind": "file", + "label": "Grok adapter capability declaration" + }, + { + "id": "opencode-adapter-capabilities", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1718, + "end": 1737, + "kind": "file", + "label": "OpenCode adapter capability declaration and shutdown" + }, + { + "id": "opencode-steer-behavior", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.test.ts", + "start": 733, + "end": 810, + "kind": "file", + "label": "OpenCode active-turn steering behavior tests" + }, + { + "id": "provider-runtime-schema-tests", + "path": "packages/contracts/src/providerRuntime.test.ts", + "kind": "file", + "label": "canonical provider runtime schema compatibility tests" + }, + { + "id": "provider-service-routing-tests", + "path": "apps/server/src/provider/Layers/ProviderService.test.ts", + "kind": "file", + "label": "provider routing, binding, recovery, and event-correlation tests" + }, + { + "id": "server-provider-routing-identity", + "path": "packages/contracts/src/server.ts", + "start": 161, + "end": 198, + "kind": "file", + "label": "server provider snapshot with stable instance routing identity" + }, + { + "id": "built-in-provider-drivers", + "path": "apps/server/src/provider/builtInDrivers.ts", + "start": 42, + "end": 53, + "kind": "file", + "label": "five shipped provider driver registrations" + }, + { + "id": "provider-instance-settings-contract", + "path": "packages/contracts/src/settings.ts", + "start": 664, + "end": 733, + "kind": "file", + "label": "explicit provider instance settings and legacy provider fields" + }, + { + "id": "provider-instance-hydration", + "path": "apps/server/src/provider/Layers/ProviderInstanceRegistryHydration.ts", + "start": 65, + "end": 134, + "kind": "file", + "label": "explicit instance map precedence and legacy default hydration" + }, + { + "id": "provider-instance-enabled-precedence", + "path": "apps/server/src/provider/Layers/ProviderInstanceRegistryLive.ts", + "start": 97, + "end": 111, + "kind": "file", + "label": "provider instance enabled-state precedence" + }, + { + "id": "provider-instance-build-shadow", + "path": "apps/server/src/provider/Layers/ProviderInstanceRegistryLive.ts", + "start": 118, + "end": 214, + "kind": "file", + "label": "scoped instance construction and unavailable shadow fallback" + }, + { + "id": "provider-instance-registry-reconcile", + "path": "apps/server/src/provider/Layers/ProviderInstanceRegistryLive.ts", + "start": 228, + "end": 320, + "kind": "file", + "label": "live registry remove, retain, replace, and publication sequence" + }, + { + "id": "provider-unavailable-shadow", + "path": "apps/server/src/provider/unavailableProviderSnapshot.ts", + "start": 45, + "end": 78, + "kind": "file", + "label": "diagnostic snapshot for unavailable provider instances" + }, + { + "id": "provider-adapter-registry-live", + "path": "apps/server/src/provider/Layers/ProviderAdapterRegistry.ts", + "start": 36, + "end": 100, + "kind": "file", + "label": "live adapter facade excludes unavailable instances" + }, + { + "id": "provider-registry-boot-cache", + "path": "apps/server/src/provider/Layers/ProviderRegistry.ts", + "start": 209, + "end": 331, + "kind": "file", + "label": "provider discovery aggregation and boot cache" + }, + { + "id": "provider-registry-live-sync", + "path": "apps/server/src/provider/Layers/ProviderRegistry.ts", + "start": 511, + "end": 693, + "kind": "file", + "label": "per-instance snapshot refresh and live registry synchronization" + }, + { + "id": "provider-managed-snapshot-lifecycle", + "path": "apps/server/src/provider/makeManagedServerProvider.ts", + "start": 27, + "end": 228, + "kind": "file", + "label": "serialized provider discovery and streaming snapshot lifecycle" + }, + { + "id": "provider-instance-environment-contract", + "path": "packages/contracts/src/providerInstance.ts", + "start": 97, + "end": 139, + "kind": "file", + "label": "plain and secret-backed provider environment value contract" + }, + { + "id": "provider-instance-secret-materialization", + "path": "apps/server/src/serverSettings.ts", + "start": 365, + "end": 525, + "kind": "file", + "label": "provider instance secret persistence and materialization" + }, + { + "id": "provider-instance-settings-redaction", + "path": "apps/server/src/serverSettings.ts", + "start": 620, + "end": 650, + "kind": "file", + "label": "provider instance environment re-redaction for clients" + }, + { + "id": "provider-instance-environment-overlay", + "path": "apps/server/src/provider/ProviderInstanceEnvironment.ts", + "start": 1, + "end": 16, + "kind": "file", + "label": "instance environment overlay including blank overrides" + }, + { + "id": "opencode-password-settings", + "path": "packages/contracts/src/settings.ts", + "start": 500, + "end": 521, + "kind": "file", + "label": "OpenCode external server password setting" + }, + { + "id": "opencode-password-persistence-test", + "path": "apps/server/src/serverSettings.test.ts", + "start": 636, + "end": 687, + "kind": "file", + "label": "OpenCode password plaintext persistence regression test" + }, + { + "id": "opencode-external-basic-auth", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1204, + "end": 1233, + "kind": "file", + "label": "external OpenCode endpoint Basic authentication wiring" + }, + { + "id": "opencode-process-ownership", + "path": "apps/server/src/provider/opencodeRuntime.ts", + "start": 477, + "end": 666, + "kind": "file", + "label": "local OpenCode process acquisition, health, and scope-owned release" + }, + { + "id": "provider-service-start-session", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 581, + "end": 813, + "kind": "file", + "label": "instance-routed provider session start and turn send" + }, + { + "id": "provider-reactor-session-continuity", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 469, + "end": 782, + "kind": "file", + "label": "continuation compatibility, restart, and model selection decisions" + }, + { + "id": "codex-continuation-identity", + "path": "apps/server/src/provider/Drivers/CodexDriver.ts", + "start": 122, + "end": 146, + "kind": "file", + "label": "Codex continuation compatibility identity" + }, + { + "id": "claude-continuation-identity", + "path": "apps/server/src/provider/Drivers/ClaudeDriver.ts", + "start": 128, + "end": 165, + "kind": "file", + "label": "Claude continuation compatibility identity" + }, + { + "id": "provider-instance-registry-tests", + "path": "apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts", + "start": 152, + "end": 290, + "kind": "file", + "label": "live provider instance registry replacement tests" + }, + { + "id": "provider-settings-secret-tests", + "path": "apps/server/src/serverSettings.test.ts", + "start": 691, + "end": 752, + "kind": "file", + "label": "provider environment secret persistence and redaction tests" + }, + { + "id": "codex-app-server-child-process", + "path": "packages/effect-codex-app-server/src/client.ts", + "start": 212, + "end": 268, + "kind": "file", + "label": "Codex app-server child process and stdio client construction" + }, + { + "id": "codex-app-server-protocol-lifecycle", + "path": "packages/effect-codex-app-server/src/protocol.ts", + "start": 154, + "end": 342, + "kind": "file", + "label": "pending JSON-RPC requests, notifications, and transport termination" + }, + { + "id": "codex-app-server-errors", + "path": "packages/effect-codex-app-server/src/errors.ts", + "start": 119, + "end": 409, + "kind": "file", + "label": "typed Codex app-server transport and protocol errors" + }, + { + "id": "codex-adapter-event-consumer", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1694, + "end": 1764, + "kind": "file", + "label": "session-scoped Codex event consumer started before adapter return" + }, + { + "id": "codex-adapter-error-mapping", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1508, + "end": 1566, + "kind": "file", + "label": "Codex native error and stderr classification" + }, + { + "id": "codex-adapter-model-reroute", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1321, + "end": 1328, + "kind": "file", + "label": "Codex native model reroute projection" + }, + { + "id": "codex-adapter-error-events", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1515, + "end": 1546, + "kind": "file", + "label": "Codex native errors normalized as runtime warning or error events" + }, + { + "id": "codex-adapter-tests", + "path": "apps/server/src/provider/Layers/CodexAdapter.test.ts", + "kind": "file", + "label": "Codex adapter lifecycle and canonical event behavior tests" + }, + { + "id": "claude-adapter-resume", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 656, + "end": 689, + "kind": "file", + "label": "Claude native session resume metadata validation" + }, + { + "id": "claude-adapter-runtime-events", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 2051, + "end": 2112, + "kind": "file", + "label": "Claude usage observations projected to canonical runtime events" + }, + { + "id": "claude-adapter-task-normalization", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 916, + "end": 1031, + "kind": "file", + "label": "Claude task and tool observations normalized for the product model" + }, + { + "id": "claude-adapter-permission-tests", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.test.ts", + "start": 338, + "end": 401, + "kind": "file", + "label": "Claude permission-mode and deferred interaction tests" + }, + { + "id": "claude-adapter-tests", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.test.ts", + "kind": "file", + "label": "Claude adapter stream, task, approval, input, resume, and usage tests" + }, + { + "id": "claude-driver-capability-probe", + "path": "apps/server/src/provider/Drivers/ClaudeDriver.ts", + "start": 63, + "end": 168, + "kind": "file", + "label": "Claude CLI discovery and capability snapshot construction" + }, + { + "id": "claude-skills-scanner", + "path": "apps/server/src/provider/Drivers/ClaudeSkills.ts", + "kind": "file", + "label": "Claude skill discovery and precedence scanner" + }, + { + "id": "acp-runtime-startup", + "path": "apps/server/src/provider/acp/AcpSessionRuntime.ts", + "start": 332, + "end": 418, + "kind": "file", + "label": "ACP session runtime construction, initialization, and queues" + }, + { + "id": "acp-runtime-prompt-cancel", + "path": "apps/server/src/provider/acp/AcpSessionRuntime.ts", + "start": 720, + "end": 783, + "kind": "file", + "label": "ACP prompt and cancellation operations" + }, + { + "id": "acp-runtime-event-queue", + "path": "apps/server/src/provider/acp/AcpSessionRuntime.ts", + "start": 691, + "end": 870, + "kind": "file", + "label": "ACP native and canonical event queue consumption" + }, + { + "id": "cursor-acp-spawn", + "path": "apps/server/src/provider/acp/CursorAcpSupport.ts", + "start": 34, + "end": 86, + "kind": "file", + "label": "Cursor ACP child launch and initialization options" + }, + { + "id": "cursor-extension-callbacks", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 479, + "end": 780, + "kind": "file", + "label": "Cursor ACP extension callbacks and canonical projections" + }, + { + "id": "cursor-steering-and-rollback", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 916, + "end": 1145, + "kind": "file", + "label": "Cursor steering, interruption, transcript rollback, and session stop" + }, + { + "id": "cursor-adapter-tests", + "path": "apps/server/src/provider/Layers/CursorAdapter.test.ts", + "kind": "file", + "label": "Cursor ACP adapter lifecycle and behavior tests" + }, + { + "id": "grok-extension-callbacks", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 530, + "end": 740, + "kind": "file", + "label": "Grok ACP and XAI extension callbacks" + }, + { + "id": "grok-interrupt-race", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 918, + "end": 1362, + "kind": "file", + "label": "Grok prompt, steering, and interruption race handling" + }, + { + "id": "grok-rollback-unsupported", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 1400, + "end": 1421, + "kind": "file", + "label": "explicitly unsupported Grok native rollback" + }, + { + "id": "grok-interrupt-tests", + "path": "apps/server/src/provider/Layers/GrokAdapter.test.ts", + "kind": "file", + "label": "Grok steering and interruption race tests" + }, + { + "id": "opencode-session-scope", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1139, + "end": 1426, + "kind": "file", + "label": "OpenCode scoped session construction and adoption" + }, + { + "id": "opencode-local-server-startup", + "path": "apps/server/src/provider/opencodeRuntime.ts", + "start": 477, + "end": 639, + "kind": "file", + "label": "scope-owned OpenCode child startup and stdout URL announcement" + }, + { + "id": "opencode-resume-adoption", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1204, + "end": 1387, + "kind": "file", + "label": "OpenCode resume lookup, cwd comparison, adoption, and fork" + }, + { + "id": "opencode-resume-cursor-codec", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 63, + "end": 83, + "kind": "file", + "label": "OpenCode current-version resume cursor decoder" + }, + { + "id": "opencode-resume-tests", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.test.ts", + "start": 304, + "end": 545, + "kind": "file", + "label": "OpenCode adoption, missing-session, and cwd-fork tests" + }, + { + "id": "opencode-event-pump", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 900, + "end": 1202, + "kind": "file", + "label": "session-filtered OpenCode event pump and normalization" + }, + { + "id": "opencode-interrupt-history-revert", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1510, + "end": 1701, + "kind": "file", + "label": "OpenCode abort, message history read, and counted session revert" + }, + { + "id": "opencode-adapter-tests", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.test.ts", + "kind": "file", + "label": "OpenCode adapter ownership, recovery, steering, and rollback tests" + }, + { + "id": "usage-live-admission", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 250, + "end": 257, + "kind": "file", + "label": "positive-used-token admission rule for live context telemetry" + }, + { + "id": "usage-window-validation", + "path": "apps/server/src/usage/UsageService.ts", + "start": 293, + "end": 350, + "kind": "file", + "label": "daily and bounded hourly usage window validation" + }, + { + "id": "usage-codex-transcript-parser", + "path": "apps/server/src/usage/usageTranscripts.ts", + "start": 200, + "end": 298, + "kind": "file", + "label": "Codex transcript model tracking, token deltas, and fork-copy suppression" + }, + { + "id": "usage-rate-table-acquisition", + "path": "apps/server/src/usage/UsageService.ts", + "start": 137, + "end": 184, + "kind": "file", + "label": "memory, disk, and remote LiteLLM rate-table acquisition" + }, + { + "id": "usage-scan-cache", + "path": "apps/server/src/usage/usageScanCache.ts", + "start": 1, + "end": 255, + "kind": "file", + "label": "per-file transcript scan cache, validation, pruning, and persistence" + }, + { + "id": "usage-merge-totals", + "path": "packages/shared/src/usageMerge.ts", + "start": 200, + "end": 416, + "kind": "file", + "label": "cross-environment bucket, source, session, and cost total reconstruction" + }, + { + "id": "usage-web-environment-queries", + "path": "apps/web/src/state/usage.ts", + "start": 40, + "end": 122, + "kind": "file", + "label": "web usage fan-out across connected environments and merge" + }, + { + "id": "usage-mobile-environment-queries", + "path": "apps/mobile/src/state/usage.ts", + "start": 43, + "end": 125, + "kind": "file", + "label": "mobile usage fan-out across connected environments and merge" + }, + { + "id": "usage-transcript-listing", + "path": "apps/server/src/usage/usageTranscriptReader.ts", + "start": 35, + "end": 74, + "kind": "file", + "label": "best-effort recursive transcript discovery" + }, + { + "id": "codex-followup-turn-queue", + "path": "apps/server/src/provider/Layers/CodexSessionRuntime.ts", + "start": 1806, + "end": 1864, + "kind": "file", + "label": "Codex turn/start follow-up queue and active interrupt target" + }, + { + "id": "codex-task-normalization", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 503, + "end": 750, + "kind": "file", + "label": "Codex multi-agent observations normalized to task lifecycle events" + }, + { + "id": "claude-task-event-lifecycle", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 2985, + "end": 3318, + "kind": "file", + "label": "Claude coordinator and member activity normalized to task events" + }, + { + "id": "cursor-plan-updates", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 414, + "end": 840, + "kind": "file", + "label": "Cursor plan and todo extensions normalized to product plan events" + }, + { + "id": "grok-plan-updates", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 464, + "end": 850, + "kind": "file", + "label": "Grok ACP plan observations normalized to product plan events" + }, + { + "id": "codex-provider-skills", + "path": "apps/server/src/provider/Layers/CodexProvider.ts", + "start": 400, + "end": 420, + "kind": "file", + "label": "Codex provider discovery requests native skills and models" + }, + { + "id": "codex-provider-feedback-command", + "path": "apps/server/src/provider/Layers/CodexProvider.ts", + "start": 600, + "end": 620, + "kind": "file", + "label": "Codex snapshot exposes discovered skills and a feedback slash command" + }, + { + "id": "claude-provider-skills-commands", + "path": "apps/server/src/provider/Layers/ClaudeProvider.ts", + "start": 920, + "end": 962, + "kind": "file", + "label": "Claude snapshot combines discovered skills and initialization commands" + }, + { + "id": "cursor-provider-snapshot", + "path": "apps/server/src/provider/Layers/CursorProvider.ts", + "start": 625, + "end": 650, + "kind": "file", + "label": "Cursor snapshot exposes models and probe state without skills or commands" + }, + { + "id": "grok-provider-snapshot", + "path": "apps/server/src/provider/Layers/GrokProvider.ts", + "start": 294, + "end": 311, + "kind": "file", + "label": "Grok snapshot exposes models and probe state without skills or commands" + }, + { + "id": "opencode-provider-skills", + "path": "apps/server/src/provider/Layers/OpenCodeProvider.ts", + "start": 445, + "end": 480, + "kind": "file", + "label": "OpenCode provider inventory flattened into models and skills" + }, + { + "id": "claude-local-rollback", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4480, + "end": 4494, + "kind": "file", + "label": "Claude adapter-local turn snapshot rollback and cursor refresh" + }, + { + "id": "turn-lifecycle-command-contract", + "path": "packages/contracts/src/orchestration.ts", + "start": 800, + "end": 872, + "kind": "file", + "label": "Turn start and interrupt command contracts" + }, + { + "id": "turn-lifecycle-runtime-contract", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 121, + "end": 170, + "kind": "file", + "label": "Canonical provider runtime lifecycle event kinds" + }, + { + "id": "turn-lifecycle-turn-completion-payload", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 358, + "end": 375, + "kind": "file", + "label": "Provider turn completion payload" + }, + { + "id": "turn-lifecycle-engine-commit", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 197, + "end": 259, + "kind": "file", + "label": "Atomic event, projection, and receipt commit" + }, + { + "id": "turn-lifecycle-hot-reactor", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1405, + "end": 1409, + "kind": "file", + "label": "Hot command reactor stream without pending-work replay" + }, + { + "id": "turn-lifecycle-start-dedupe-cache", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 89, + "end": 325, + "kind": "file", + "label": "Bounded in-memory suppression cache for recently handled turn starts" + }, + { + "id": "turn-lifecycle-runtime-publication", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 286, + "end": 354, + "kind": "file", + "label": "Correlated runtime event publication" + }, + { + "id": "turn-lifecycle-runtime-adapter-subscription", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 372, + "end": 400, + "kind": "file", + "label": "Provider adapter event subscription" + }, + { + "id": "turn-lifecycle-runtime-fanout", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 1234, + "end": 1239, + "kind": "file", + "label": "Provider runtime hot-stream fan-out" + }, + { + "id": "turn-lifecycle-completion-finalization", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1840, + "end": 1874, + "kind": "file", + "label": "Turn-completion message and plan finalization" + }, + { + "id": "turn-lifecycle-interrupt-reactor", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1176, + "end": 1196, + "kind": "file", + "label": "Session-scoped provider interruption" + }, + { + "id": "turn-lifecycle-checkpoint-baseline", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 482, + "end": 530, + "kind": "file", + "label": "Pre-turn checkpoint baseline capture" + }, + { + "id": "turn-lifecycle-checkpoint-triggers", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 820, + "end": 937, + "kind": "file", + "label": "Runtime and domain stream checkpoint triggers" + }, + { + "id": "turn-lifecycle-runtime-receipts", + "path": "apps/server/src/orchestration/Layers/RuntimeReceiptBus.ts", + "start": 1, + "end": 39, + "kind": "file", + "label": "Test-only runtime milestone receipt bus" + }, + { + "id": "turn-lifecycle-client-liveness", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 255, + "end": 271, + "kind": "file", + "label": "Client thread connection liveness derivation" + }, + { + "id": "turn-lifecycle-client-turn-reducer", + "path": "packages/client-runtime/src/state/threadReducer.ts", + "start": 319, + "end": 425, + "kind": "file", + "label": "Client assistant-message and session turn reduction" + }, + { + "id": "turn-lifecycle-settlement-guards", + "path": "packages/client-runtime/src/state/threadSettled.ts", + "start": 286, + "end": 312, + "kind": "file", + "label": "Thread settlement eligibility guards" + }, + { + "id": "turn-lifecycle-waiting-ui-test", + "path": "apps/web/src/components/chat/ComposerPrimaryActions.test.tsx", + "start": 214, + "end": 219, + "kind": "file", + "label": "Stop action retained while provider waits for input" + }, + { + "id": "turn-lifecycle-runtime-tests", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts", + "start": 848, + "end": 920, + "kind": "file", + "label": "Lifecycle correlation and stale-event ingestion tests" + }, + { + "id": "turn-lifecycle-checkpoint-tests", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.test.ts", + "start": 457, + "end": 515, + "kind": "file", + "label": "Checkpoint trigger and capture tests" + }, + { + "id": "permission-runtime-mode-command", + "path": "packages/contracts/src/orchestration.ts", + "start": 784, + "end": 798, + "kind": "file", + "label": "Thread runtime-mode and interaction-mode commands" + }, + { + "id": "permission-runtime-mode-event", + "path": "packages/contracts/src/orchestration.ts", + "start": 1222, + "end": 1225, + "kind": "file", + "label": "Durable thread runtime-mode event payload" + }, + { + "id": "permission-claude-mode-map", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4138, + "end": 4412, + "kind": "file", + "label": "Claude runtime mode and permission callback mapping" + }, + { + "id": "permission-cursor-mode-routing", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 217, + "end": 733, + "kind": "file", + "label": "Cursor ACP session mode and permission routing" + }, + { + "id": "permission-grok-request-routing", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 666, + "end": 727, + "kind": "file", + "label": "Grok ACP permission request routing" + }, + { + "id": "permission-opencode-mode-map", + "path": "apps/server/src/provider/opencodeRuntime.ts", + "start": 371, + "end": 405, + "kind": "file", + "label": "OpenCode permission rules derived from T3 runtime mode" + }, + { + "id": "permission-opencode-request-routing", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 958, + "end": 1034, + "kind": "file", + "label": "OpenCode permission and question request normalization" + }, + { + "id": "permission-opencode-response-routing", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1579, + "end": 1618, + "kind": "file", + "label": "OpenCode permission and question replies" + }, + { + "id": "permission-runtime-activities", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 299, + "end": 539, + "kind": "file", + "label": "Canonical approval and input requests mapped to durable activities" + }, + { + "id": "permission-assistant-pause-flush", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1707, + "end": 1749, + "kind": "file", + "label": "Assistant buffer flush before provider interaction pauses" + }, + { + "id": "permission-response-reactor", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1199, + "end": 1285, + "kind": "file", + "label": "Approval and structured-input response intents forwarded to providers" + }, + { + "id": "permission-approval-projection", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1540, + "end": 1601, + "kind": "file", + "label": "Pending approval projection and stale-response recovery" + }, + { + "id": "permission-pending-storage", + "path": "apps/server/src/persistence/Layers/ProjectionPendingApprovals.ts", + "start": 16, + "end": 136, + "kind": "file", + "label": "SQLite-backed projected pending-approval upsert and query" + }, + { + "id": "permission-web-resolution", + "path": "apps/web/src/session-logic.ts", + "start": 410, + "end": 562, + "kind": "file", + "label": "Web pending approval and structured-input derivation" + }, + { + "id": "permission-mobile-resolution", + "path": "apps/mobile/src/state/use-selected-thread-requests.ts", + "start": 68, + "end": 191, + "kind": "file", + "label": "Mobile request derivation, drafts, and response commands" + }, + { + "id": "work-thread-record", + "path": "packages/contracts/src/orchestration.ts", + "start": 379, + "end": 423, + "kind": "file", + "label": "Durable thread record and lifecycle overlays" + }, + { + "id": "work-thread-shell", + "path": "packages/contracts/src/orchestration.ts", + "start": 449, + "end": 475, + "kind": "file", + "label": "Thread shell summary exposed to clients" + }, + { + "id": "work-thread-lifecycle-events", + "path": "packages/contracts/src/orchestration.ts", + "start": 1126, + "end": 1204, + "kind": "file", + "label": "Thread archive, settlement, snooze, and pin event payloads" + }, + { + "id": "work-thread-lifecycle-decisions", + "path": "apps/server/src/orchestration/decider.ts", + "start": 408, + "end": 810, + "kind": "file", + "label": "Archive, settle, snooze, pin, and reorder decision rules" + }, + { + "id": "work-task-linkage-ingestion", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 316, + "end": 359, + "kind": "file", + "label": "Server-stamped task identity and agent classification fields" + }, + { + "id": "work-task-activities", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 541, + "end": 742, + "kind": "file", + "label": "Task lifecycle and agent tool progress converted to activities" + }, + { + "id": "work-task-live-services", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1957, + "end": 2026, + "kind": "file", + "label": "Ephemeral plan progress and background liveness updates" + }, + { + "id": "work-subagent-fold", + "path": "packages/client-runtime/src/state/subagentRuntime.ts", + "start": 449, + "end": 679, + "kind": "file", + "label": "Order-tolerant activity fold into retained subagent state" + }, + { + "id": "work-agent-panel-model", + "path": "packages/client-runtime/src/state/subagentRuntime.ts", + "start": 680, + "end": 839, + "kind": "file", + "label": "Source-neutral Agents panel view model and rollups" + }, + { + "id": "work-web-agent-panel", + "path": "apps/web/src/components/AgentsPanel.tsx", + "start": 1, + "end": 190, + "kind": "file", + "label": "Web agent row states, activity, elapsed time, and task metrics" + }, + { + "id": "work-web-agent-summary", + "path": "apps/web/src/components/AgentsPanel.tsx", + "start": 490, + "end": 540, + "kind": "file", + "label": "Web Agents roster and aggregate footer" + }, + { + "id": "work-web-quiet-timeline", + "path": "apps/web/src/session-logic.ts", + "start": 783, + "end": 1115, + "kind": "file", + "label": "Web quiet-timeline filtering and agent spawn grouping" + }, + { + "id": "work-mobile-quiet-timeline", + "path": "apps/mobile/src/lib/threadActivity.ts", + "start": 283, + "end": 470, + "kind": "file", + "label": "Mobile work-log filtering and terminal task retention" + }, + { + "id": "work-mobile-work-log", + "path": "apps/mobile/src/features/threads/thread-work-log.tsx", + "start": 123, + "end": 274, + "kind": "file", + "label": "Mobile compact work-log presentation" + }, + { + "id": "work-background-liveness", + "path": "apps/server/src/orchestration/ThreadBackgroundLiveness.ts", + "start": 1, + "end": 173, + "kind": "file", + "label": "In-memory thread background liveness registry" + }, + { + "id": "work-plan-progress", + "path": "apps/server/src/orchestration/ThreadPlanProgress.ts", + "start": 1, + "end": 76, + "kind": "file", + "label": "In-memory current plan-step projection" + }, + { + "id": "work-provider-skill-contract", + "path": "packages/contracts/src/server.ts", + "start": 76, + "end": 97, + "kind": "file", + "label": "Provider slash-command and skill inventory contracts" + }, + { + "id": "work-provider-inventory-contract", + "path": "packages/contracts/src/server.ts", + "start": 180, + "end": 195, + "kind": "file", + "label": "Provider snapshots carry commands and skills as default-empty arrays" + }, + { + "id": "work-provider-skill-menu", + "path": "packages/client-runtime/src/providerSkills.ts", + "start": 19, + "end": 70, + "kind": "file", + "label": "Skill display, slash-menu inclusion, collision filtering, and source labels" + }, + { + "id": "work-web-skill-composer", + "path": "apps/web/src/components/chat/ChatComposer.tsx", + "start": 1108, + "end": 1165, + "kind": "file", + "label": "Web provider commands and skills composed into searchable menus" + }, + { + "id": "work-mobile-skill-composer", + "path": "apps/mobile/src/features/threads/ThreadComposer.tsx", + "start": 420, + "end": 530, + "kind": "file", + "label": "Mobile provider command and skill search composition" + }, + { + "id": "context-current-turn-payload", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 724, + "end": 760, + "kind": "file", + "label": "T3 constructs the visible turn payload and attachment paths" + }, + { + "id": "context-codex-turn-input", + "path": "apps/server/src/provider/Layers/CodexSessionRuntime.ts", + "start": 367, + "end": 423, + "kind": "file", + "label": "Codex native turn input assembled from the T3 request" + }, + { + "id": "context-codex-session-resume", + "path": "apps/server/src/provider/Layers/CodexSessionRuntime.ts", + "start": 466, + "end": 503, + "kind": "file", + "label": "Codex thread start or resume selection" + }, + { + "id": "context-codex-native-resume", + "path": "apps/server/src/provider/Layers/CodexSessionRuntime.ts", + "start": 1749, + "end": 1769, + "kind": "file", + "label": "Codex native continuation thread id returned as resume state" + }, + { + "id": "context-claude-resume-choice", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4170, + "end": 4254, + "kind": "file", + "label": "Claude native session resume and cursor selection" + }, + { + "id": "context-memory-codex-compaction", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 945, + "end": 975, + "kind": "file", + "label": "Codex compacted notification normalized as thread state" + }, + { + "id": "context-memory-claude-compaction", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 3122, + "end": 3143, + "kind": "file", + "label": "Claude compact boundary normalized as usage and thread state" + }, + { + "id": "context-client-snapshot-cache", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 129, + "end": 210, + "kind": "file", + "label": "Client thread snapshot cache hydration and persistence" + }, + { + "id": "context-client-event-cursor", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 619, + "end": 637, + "kind": "file", + "label": "Cached shell sequence seeds event-subscription catch-up" + }, + { + "id": "context-mobile-drafts", + "path": "apps/mobile/src/state/use-composer-drafts.ts", + "start": 146, + "end": 280, + "kind": "file", + "label": "Environment-scoped mobile composer draft persistence" + }, + { + "id": "context-mobile-outbox-storage", + "path": "apps/mobile/src/state/thread-outbox-storage.ts", + "start": 21, + "end": 145, + "kind": "file", + "label": "Mobile offline thread-command outbox persistence" + }, + { + "id": "context-thread-activity-limit", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 68, + "end": 76, + "kind": "file", + "label": "Thread detail snapshots cap recent activities at 500" + }, + { + "id": "context-thread-activity-query", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 1028, + "end": 1044, + "kind": "file", + "label": "Recent thread activities selected under the detail-window limit" + }, + { + "id": "checkpoint-model-contract", + "path": "packages/contracts/src/orchestration.ts", + "start": 312, + "end": 332, + "kind": "file", + "label": "Projected checkpoint identity, status, file summary, and completion fields" + }, + { + "id": "checkpoint-command-event-contract", + "path": "packages/contracts/src/orchestration.ts", + "start": 892, + "end": 1035, + "kind": "file", + "label": "Checkpoint revert, diff completion, and revert completion command payloads" + }, + { + "id": "checkpoint-event-discriminants", + "path": "packages/contracts/src/orchestration.ts", + "start": 1470, + "end": 1476, + "kind": "file", + "label": "Durable checkpoint-revert-requested and thread-reverted event discriminants" + }, + { + "id": "checkpoint-ref-naming", + "path": "apps/server/src/checkpointing/Utils.ts", + "start": 1, + "end": 24, + "kind": "file", + "label": "Base64url thread-scoped hidden checkpoint reference naming" + }, + { + "id": "checkpoint-git-capture", + "path": "apps/server/src/vcs/GitVcsDriver.ts", + "start": 708, + "end": 787, + "kind": "file", + "label": "Isolated-index workspace capture into a hidden Git ref" + }, + { + "id": "checkpoint-git-restore", + "path": "apps/server/src/vcs/GitVcsDriver.ts", + "start": 794, + "end": 828, + "kind": "file", + "label": "Checkpoint or HEAD fallback content restore, clean, and index reset" + }, + { + "id": "checkpoint-git-diff-delete", + "path": "apps/server/src/vcs/GitVcsDriver.ts", + "start": 830, + "end": 907, + "kind": "file", + "label": "Hidden-ref patch comparison and best-effort ref deletion attempts" + }, + { + "id": "checkpoint-status-derivation", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 65, + "end": 75, + "kind": "file", + "label": "Provider turn runtime state mapped to checkpoint status" + }, + { + "id": "checkpoint-diff-query-modes", + "path": "apps/server/src/checkpointing/CheckpointDiffQuery.ts", + "start": 37, + "end": 276, + "kind": "file", + "label": "Turn and full-thread hidden checkpoint diff queries" + }, + { + "id": "checkpoint-web-review-modes", + "path": "apps/web/src/components/DiffPanel.tsx", + "start": 203, + "end": 390, + "kind": "file", + "label": "Web selection of working-tree, branch, latest-turn, and prior-turn review modes" + }, + { + "id": "checkpoint-live-review-diffs", + "path": "apps/server/src/vcs/GitVcsDriverCore.ts", + "start": 2166, + "end": 2290, + "kind": "file", + "label": "Tracked plus untracked working-tree diff and merge-base branch-range diff" + }, + { + "id": "checkpoint-revert-preconditions", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 690, + "end": 770, + "kind": "file", + "label": "Revert read-model, bound-session, Git, turn-count, and target-ref preconditions" + }, + { + "id": "checkpoint-revert-effects", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 758, + "end": 838, + "kind": "file", + "label": "Ordered restore, workspace refresh, provider rollback, ref pruning, and completion dispatch" + }, + { + "id": "provider-rollback-interface", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 106, + "end": 117, + "kind": "file", + "label": "Provider adapter conversation rollback interface" + }, + { + "id": "provider-rollback-service", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 1080, + "end": 1119, + "kind": "file", + "label": "Bound provider session resolution and rollback delegation" + }, + { + "id": "codex-rollback-adapter", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1869, + "end": 1891, + "kind": "file", + "label": "Codex adapter rollback validation and runtime delegation" + }, + { + "id": "codex-rollback-native-request", + "path": "apps/server/src/provider/Layers/CodexSessionRuntime.ts", + "start": 1907, + "end": 1919, + "kind": "file", + "label": "Codex thread rollback native request and local session-state reset" + }, + { + "id": "cursor-rollback-local-history", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 1123, + "end": 1141, + "kind": "file", + "label": "Cursor adapter-local turn history truncation" + }, + { + "id": "opencode-rollback-native-revert", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1678, + "end": 1702, + "kind": "file", + "label": "OpenCode counted message-boundary session revert" + }, + { + "id": "workbench-terminal-contract", + "path": "packages/contracts/src/terminal.ts", + "start": 1, + "end": 234, + "kind": "file", + "label": "Terminal identity, commands, snapshots, metadata, and attach event schemas" + }, + { + "id": "workbench-terminal-manager-interface", + "path": "apps/server/src/terminal/Manager.ts", + "start": 123, + "end": 198, + "kind": "file", + "label": "Server terminal lifecycle and subscription service boundary" + }, + { + "id": "workbench-terminal-history-persistence", + "path": "apps/server/src/terminal/Manager.ts", + "start": 1355, + "end": 1496, + "kind": "file", + "label": "Debounced capped terminal history persistence and reload" + }, + { + "id": "workbench-terminal-history-reopen", + "path": "apps/server/src/terminal/Manager.ts", + "start": 2120, + "end": 2203, + "kind": "file", + "label": "Manager finalization and persisted-history restoration before PTY start" + }, + { + "id": "workbench-terminal-cleanup", + "path": "apps/server/src/orchestration/Layers/ThreadDeletionReactor.ts", + "start": 45, + "end": 65, + "kind": "file", + "label": "Thread deletion stops provider session and closes terminal history best-effort" + }, + { + "id": "workbench-terminal-web", + "path": "apps/web/src/components/ThreadTerminalDrawer.tsx", + "start": 337, + "end": 527, + "kind": "file", + "label": "Web terminal drawer subscribes to shared terminal state and renders Ghostty" + }, + { + "id": "workbench-terminal-mobile", + "path": "apps/mobile/src/features/terminal/ThreadTerminalPanel.tsx", + "start": 31, + "end": 210, + "kind": "file", + "label": "Mobile terminal lifecycle and native surface integration" + }, + { + "id": "workbench-project-file-rpc-contract", + "path": "packages/contracts/src/rpc.ts", + "start": 629, + "end": 656, + "kind": "file", + "label": "Authorized project entry search, list, read, and write RPC contracts" + }, + { + "id": "workbench-project-file-server", + "path": "apps/server/src/ws.ts", + "start": 1850, + "end": 1931, + "kind": "file", + "label": "Server workspace search, list, read, and write RPC handlers" + }, + { + "id": "workbench-project-file-client", + "path": "packages/client-runtime/src/state/projectCommands.ts", + "start": 42, + "end": 106, + "kind": "file", + "label": "Environment-scoped project file queries and serialized writes" + }, + { + "id": "workbench-mobile-files", + "path": "apps/mobile/src/features/files/FileTreeBrowser.tsx", + "start": 1, + "end": 145, + "kind": "file", + "label": "Mobile workspace tree and file preview surface" + }, + { + "id": "workbench-asset-contract", + "path": "packages/contracts/src/assets.ts", + "start": 1, + "end": 180, + "kind": "file", + "label": "Typed workspace file, attachment, and favicon asset resources" + }, + { + "id": "workbench-asset-claims", + "path": "apps/server/src/assets/AssetAccess.ts", + "start": 45, + "end": 97, + "kind": "file", + "label": "One-hour token TTL, preview extension allow-list, and narrow asset claims" + }, + { + "id": "workbench-asset-containment", + "path": "apps/server/src/assets/AssetAccess.ts", + "start": 133, + "end": 183, + "kind": "file", + "label": "Canonical real-path workspace containment checks" + }, + { + "id": "workbench-asset-issue", + "path": "apps/server/src/assets/AssetAccess.ts", + "start": 186, + "end": 425, + "kind": "file", + "label": "Scoped asset resolution, inspection, claim construction, and URL signing" + }, + { + "id": "workbench-asset-resolve", + "path": "apps/server/src/assets/AssetAccess.ts", + "start": 430, + "end": 523, + "kind": "file", + "label": "Signed asset signature, expiry, path, extension, and containment enforcement" + }, + { + "id": "workbench-asset-client", + "path": "packages/client-runtime/src/state/assets.ts", + "start": 38, + "end": 79, + "kind": "file", + "label": "Client asset URL refresh and expiry-aware state" + }, + { + "id": "workbench-mobile-workspace-asset", + "path": "apps/mobile/src/features/files/workspaceFileAssetUrl.ts", + "start": 1, + "end": 31, + "kind": "file", + "label": "Mobile workspace-file signed asset URL request" + }, + { + "id": "workbench-preview-contract", + "path": "packages/contracts/src/preview.ts", + "start": 145, + "end": 289, + "kind": "file", + "label": "Preview session snapshots, revisioned event stream, and navigation commands" + }, + { + "id": "workbench-preview-manager", + "path": "apps/server/src/preview/Manager.ts", + "start": 44, + "end": 442, + "kind": "file", + "label": "Server preview state, revision, event publication, and refresh coordination" + }, + { + "id": "workbench-preview-web-gate", + "path": "apps/web/src/routes/_chat.tsx", + "start": 111, + "end": 152, + "kind": "file", + "label": "Web runtime rejects in-app preview outside desktop" + }, + { + "id": "workbench-desktop-preview-preload", + "path": "apps/desktop/src/preload.ts", + "start": 167, + "end": 272, + "kind": "file", + "label": "Curated renderer-to-main preview IPC surface" + }, + { + "id": "workbench-desktop-preview-ipc", + "path": "apps/desktop/src/ipc/methods/preview.ts", + "start": 51, + "end": 92, + "kind": "file", + "label": "Desktop main-process preview IPC dispatch to PreviewManager" + }, + { + "id": "workbench-desktop-preview-manager", + "path": "apps/desktop/src/preview/Manager.ts", + "start": 1875, + "end": 2028, + "kind": "file", + "label": "Electron PreviewManager validates and owns guest WebContents" + }, + { + "id": "workbench-preview-automation-contract", + "path": "packages/contracts/src/previewAutomation.ts", + "start": 20, + "end": 113, + "kind": "file", + "label": "Preview automation host identity and operation vocabulary" + }, + { + "id": "workbench-preview-automation-broker", + "path": "apps/server/src/mcp/PreviewAutomationBroker.ts", + "start": 420, + "end": 587, + "kind": "file", + "label": "Environment-compatible desktop selection and sticky provider-session host lease" + }, + { + "id": "workbench-mcp-provider-preparation", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 237, + "end": 300, + "kind": "file", + "label": "Agent browser access setting gates MCP credential issue and revocation" + }, + { + "id": "workbench-mcp-session-start", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 645, + "end": 670, + "kind": "file", + "label": "MCP session is prepared before the provider adapter starts" + }, + { + "id": "workbench-mcp-registry", + "path": "apps/server/src/mcp/McpSessionRegistry.ts", + "start": 59, + "end": 201, + "kind": "file", + "label": "Hashed bearer registry, scoped preview capability, liveness, and eager revocation" + }, + { + "id": "workbench-mcp-http-auth", + "path": "apps/server/src/mcp/McpHttpServer.ts", + "start": 26, + "end": 97, + "kind": "file", + "label": "Provider-scoped bearer authentication supplies MCP invocation scope" + }, + { + "id": "workbench-mcp-http-toolkit", + "path": "apps/server/src/mcp/McpHttpServer.ts", + "start": 130, + "end": 226, + "kind": "file", + "label": "Authenticated preview toolkit registration on the MCP HTTP route" + }, + { + "id": "workbench-mcp-codex-injection", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1662, + "end": 1692, + "kind": "file", + "label": "Codex t3-code MCP URL and bearer-token environment injection" + }, + { + "id": "workbench-mcp-claude-injection", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4149, + "end": 4195, + "kind": "file", + "label": "Claude t3-code MCP HTTP server configuration injection" + }, + { + "id": "workbench-mcp-cursor-injection", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 534, + "end": 558, + "kind": "file", + "label": "Cursor ACP t3-code MCP server injection" + }, + { + "id": "workbench-mcp-grok-injection", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 572, + "end": 596, + "kind": "file", + "label": "Grok ACP t3-code MCP server injection" + }, + { + "id": "workbench-mcp-opencode-injection", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1234, + "end": 1249, + "kind": "file", + "label": "OpenCode t3-code MCP registration only for T3-owned local servers" + }, + { + "id": "workbench-vcs-contract", + "path": "packages/contracts/src/vcs.ts", + "start": 1, + "end": 36, + "kind": "file", + "label": "VCS driver identity, freshness, and capability flags" + }, + { + "id": "workbench-git-worktree-contract", + "path": "packages/contracts/src/git.ts", + "start": 76, + "end": 165, + "kind": "file", + "label": "Server-addressed VCS reference and worktree operation inputs" + }, + { + "id": "worktree-local-selected-path", + "path": "apps/mobile/src/lib/projectThreadStartTurn.ts", + "start": 50, + "end": 88, + "kind": "file", + "label": "Mobile local bootstrap retains a supplied existing workspace path" + }, + { + "id": "worktree-runtime-cwd-resolution", + "path": "apps/server/src/checkpointing/Utils.ts", + "start": 12, + "end": 27, + "kind": "file", + "label": "Runtime workspace resolution prefers thread worktreePath before project root" + }, + { + "id": "worktree-setup-launch-outcome", + "path": "apps/server/src/ws.ts", + "start": 846, + "end": 959, + "kind": "file", + "label": "Bootstrap setup launch records failure or started activity outcomes" + }, + { + "id": "worktree-thread-deletion-effects", + "path": "apps/server/src/orchestration/Layers/ThreadDeletionReactor.ts", + "start": 45, + "end": 65, + "kind": "file", + "label": "Thread deletion stops provider session and closes terminal history" + }, + { + "id": "worktree-web-orphan-cleanup", + "path": "apps/web/src/hooks/useThreadActions.ts", + "start": 308, + "end": 453, + "kind": "file", + "label": "Web-confirmed orphaned-worktree removal follows durable thread deletion" + }, + { + "id": "workbench-pr-rpc-contract", + "path": "packages/contracts/src/rpc.ts", + "start": 289, + "end": 603, + "kind": "file", + "label": "Pull-request list, detail, action, review, and invalidation RPC surface" + }, + { + "id": "workbench-pr-http-contract", + "path": "packages/contracts/src/environmentHttp.ts", + "start": 533, + "end": 547, + "kind": "file", + "label": "Authenticated HTTP endpoint for large pull-request diff payloads" + }, + { + "id": "workbench-pr-project-resolution", + "path": "apps/server/src/pullRequest/PullRequestService.ts", + "start": 585, + "end": 740, + "kind": "file", + "label": "Eligible repository resolution, worktree de-duplication, and alternate viewer roots" + }, + { + "id": "workbench-pr-invalidation", + "path": "apps/server/src/pullRequest/PullRequestService.ts", + "start": 2110, + "end": 2145, + "kind": "file", + "label": "Successful PR mutations invalidate reference and listing epochs" + }, + { + "id": "workbench-pr-web-capability", + "path": "apps/web/src/routes/_chat.pull-requests.tsx", + "start": 223, + "end": 274, + "kind": "file", + "label": "Web PR route selects connected environments advertising pull-request capability" + }, + { + "id": "workbench-mobile-external-pr", + "path": "apps/mobile/src/features/threads/ThreadGitControls.tsx", + "start": 149, + "end": 188, + "kind": "file", + "label": "Mobile Git controls open an existing pull request externally" + }, + { + "id": "workbench-mobile-vcs-state", + "path": "apps/mobile/src/state/vcs.ts", + "start": 1, + "end": 9, + "kind": "file", + "label": "Mobile re-exports shared server-backed VCS state" + }, + { + "id": "permission-runtime-mode-decider", + "path": "apps/server/src/orchestration/decider.ts", + "start": 878, + "end": 900, + "kind": "file", + "label": "Runtime-mode command validation and durable event creation" + }, + { + "id": "permission-turn-start-stored-mode", + "path": "apps/server/src/orchestration/decider.ts", + "start": 926, + "end": 995, + "kind": "file", + "label": "Turn-start event takes runtime and interaction modes from stored thread state" + }, + { + "id": "permission-response-intent-decider", + "path": "apps/server/src/orchestration/decider.ts", + "start": 1061, + "end": 1110, + "kind": "file", + "label": "Approval and structured-input responses become durable requested events" + }, + { + "id": "permission-claude-special-input", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 3966, + "end": 4000, + "kind": "file", + "label": "Claude AskUserQuestion and ExitPlanMode are intercepted before full-access shortcut" + }, + { + "id": "permission-grok-full-access", + "path": "apps/server/src/provider/Layers/GrokAdapter.ts", + "start": 182, + "end": 203, + "kind": "file", + "label": "Grok full-access selects allow-always or allow-once when offered" + }, + { + "id": "permission-pinned-activities", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 1256, + "end": 1342, + "kind": "file", + "label": "Unresolved approval and user-input request activities are pinned outside the recent window" + }, + { + "id": "work-task-stable-streams", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 541, + "end": 742, + "kind": "file", + "label": "Only task progress, typed usage, and agent tool heartbeats use stable latest-state activity ids" + }, + { + "id": "work-subagent-legacy-classification", + "path": "packages/client-runtime/src/state/subagentRuntime.ts", + "start": 112, + "end": 120, + "kind": "file", + "label": "Legacy activity without server-stamped agentKind falls back to background classification" + }, + { + "id": "work-mobile-skill-search", + "path": "apps/mobile/src/features/threads/composerSlashSkillSearch.ts", + "start": 1, + "end": 16, + "kind": "file", + "label": "Mobile skill search matches enabled inventory without web collision filtering" + }, + { + "id": "work-web-skill-insertion", + "path": "apps/web/src/components/chat/ChatComposer.tsx", + "start": 1807, + "end": 1823, + "kind": "file", + "label": "Web skill selection inserts provider-facing dollar-prefixed prompt syntax" + }, + { + "id": "work-mobile-skill-insertion", + "path": "apps/mobile/src/features/threads/ThreadComposer.tsx", + "start": 601, + "end": 617, + "kind": "file", + "label": "Mobile skill selection inserts provider-facing dollar-prefixed prompt syntax" + }, + { + "id": "turn-lifecycle-web-mode-persist", + "path": "apps/web/src/components/ChatView.tsx", + "start": 5549, + "end": 5563, + "kind": "file", + "label": "Web persists selected model and modes on the thread before sending the turn" + }, + { + "id": "turn-lifecycle-domain-baseline", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 629, + "end": 680, + "kind": "file", + "label": "Durable turn-start or user-message events trigger the early checkpoint baseline" + }, + { + "id": "project-cli-add", + "path": "apps/server/src/cli/project.ts", + "start": 444, + "end": 491, + "kind": "file", + "label": "CLI project add normalizes one explicit root and dispatches project.create" + }, + { + "id": "project-startup-cwd-bootstrap", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 196, + "end": 249, + "kind": "file", + "label": "Optional startup flag registers the configured cwd and creates an initial local thread" + }, + { + "id": "project-client-add-path", + "path": "packages/client-runtime/src/operations/projects.ts", + "start": 256, + "end": 316, + "kind": "file", + "label": "Client validates one chosen add-project path and builds project.create" + }, + { + "id": "project-clone-registration", + "path": "apps/web/src/components/CommandPalette.tsx", + "start": 1950, + "end": 1980, + "kind": "file", + "label": "Web resolves one clone destination and registers the returned checkout through the normal add-project flow" + }, + { + "id": "project-script-durable-save", + "path": "apps/web/src/components/ChatView.tsx", + "start": 3188, + "end": 3252, + "kind": "file", + "label": "Imported or edited scripts are saved into the durable project scripts list" + }, + { + "id": "project-script-setup-selection", + "path": "packages/shared/src/projectScripts.ts", + "start": 31, + "end": 37, + "kind": "file", + "label": "Setup selects the first opted-in durable project script" + }, + { + "id": "client-connection-resolver", + "path": "packages/client-runtime/src/connection/resolver.ts", + "start": 51, + "end": 280, + "kind": "file", + "label": "Target-specific preparation into a prepared connection" + }, + { + "id": "client-connection-driver", + "path": "packages/client-runtime/src/connection/driver.ts", + "start": 15, + "end": 61, + "kind": "file", + "label": "Resolver, session factory, and staged connection lease" + }, + { + "id": "client-registry-supervisor-lease", + "path": "packages/client-runtime/src/connection/registry.ts", + "start": 171, + "end": 334, + "kind": "file", + "label": "Per-environment supervisor lease lock and scoped lifecycle" + }, + { + "id": "client-connection-supervisor-state", + "path": "packages/client-runtime/src/connection/supervisor.ts", + "start": 198, + "end": 247, + "kind": "file", + "label": "Supervisor service state and initial lifecycle" + }, + { + "id": "client-connection-supervisor-retry", + "path": "packages/client-runtime/src/connection/supervisor.ts", + "start": 678, + "end": 753, + "kind": "file", + "label": "Transient retry, backoff, and blocked retry policy" + }, + { + "id": "client-rpc-dynamic-subscription", + "path": "packages/client-runtime/src/rpc/client.ts", + "start": 170, + "end": 280, + "kind": "file", + "label": "Session-aware dynamic subscription replacement" + }, + { + "id": "client-state-runtime-families", + "path": "packages/client-runtime/src/state/runtime.ts", + "start": 480, + "end": 567, + "kind": "file", + "label": "Environment-keyed Atom query, subscription, and command families" + }, + { + "id": "client-shell-reconnect", + "path": "packages/client-runtime/src/state/shell.ts", + "start": 52, + "end": 254, + "kind": "file", + "label": "Shell cache persistence and session-aware snapshot/resume" + }, + { + "id": "client-thread-race-guards", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 134, + "end": 530, + "kind": "file", + "label": "Thread cache, cursor, epoch, and older-page race guards" + }, + { + "id": "client-thread-subscription", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 534, + "end": 693, + "kind": "file", + "label": "Thread session subscription, capability gating, and older-page request queue" + }, + { + "id": "mobile-stack-continuity-workers", + "path": "apps/mobile/src/Stack.tsx", + "start": 338, + "end": 405, + "kind": "file", + "label": "Route-persistent outbox drain, share presentation, and adaptive workspace layout" + }, + { + "id": "mobile-platform-connection-services", + "path": "apps/mobile/src/connection/platform.ts", + "start": 29, + "end": 229, + "kind": "file", + "label": "Mobile connectivity, wakeups, capabilities, and environment-owned cleanup" + }, + { + "id": "mobile-environment-cache-store", + "path": "apps/mobile/src/connection/environment-cache-store.ts", + "start": 1, + "end": 247, + "kind": "file", + "label": "Schema-versioned SQLite adapters for environment client caches" + }, + { + "id": "mobile-persistence-layer", + "path": "apps/mobile/src/persistence/layer.ts", + "start": 1, + "end": 16, + "kind": "file", + "label": "Mobile database, secure storage, preferences, and cache layer composition" + }, + { + "id": "mobile-secure-connection-catalog", + "path": "apps/mobile/src/connection/catalog-store.ts", + "start": 1, + "end": 121, + "kind": "file", + "label": "Locked and migrated connection catalog in mobile secure storage" + }, + { + "id": "mobile-storage-domain", + "path": "apps/mobile/src/persistence/mobile-storage.ts", + "start": 16, + "end": 264, + "kind": "file", + "label": "Saved connections, device registration identity, and shortcuts storage domain" + }, + { + "id": "mobile-outbox-model", + "path": "apps/mobile/src/state/thread-outbox-model.ts", + "start": 24, + "end": 227, + "kind": "file", + "label": "Versioned queued-turn model, delivery decision, and retry classification" + }, + { + "id": "mobile-outbox-manager", + "path": "apps/mobile/src/state/thread-outbox-manager.ts", + "start": 40, + "end": 227, + "kind": "file", + "label": "Serialized optimistic and durable mobile outbox manager" + }, + { + "id": "mobile-share-config", + "path": "apps/mobile/app.config.ts", + "start": 111, + "end": 153, + "kind": "file", + "label": "iOS widget and cross-platform incoming-share capability configuration" + }, + { + "id": "mobile-share-provider", + "path": "apps/mobile/src/features/sharing/IncomingShareProvider.tsx", + "start": 1, + "end": 316, + "kind": "file", + "label": "Native payload ingestion, persisted inbox projection, and app-active refresh" + }, + { + "id": "mobile-share-inbox", + "path": "apps/mobile/src/features/sharing/incoming-share-inbox.ts", + "start": 31, + "end": 193, + "kind": "file", + "label": "Serialized incoming-share ingestion, reservation, release, and consumption" + }, + { + "id": "mobile-share-storage", + "path": "apps/mobile/src/features/sharing/incoming-share-storage.ts", + "start": 1, + "end": 80, + "kind": "file", + "label": "One persisted JSON document per incoming mobile share" + }, + { + "id": "mobile-thread-feed", + "path": "apps/mobile/src/features/threads/ThreadFeed.tsx", + "start": 1475, + "end": 2165, + "kind": "file", + "label": "Virtualized native thread feed, visible-position preservation, and keyboard-aware end following" + }, + { + "id": "mobile-native-review-adapter", + "path": "apps/mobile/src/features/review/nativeReviewDiffAdapter.ts", + "start": 1, + "end": 526, + "kind": "file", + "label": "Parsed review diff to cached native row and theme model" + }, + { + "id": "mobile-hardware-keyboard", + "path": "apps/mobile/src/features/keyboard/hardwareKeyboardCommands.ts", + "start": 1, + "end": 78, + "kind": "file", + "label": "Route-scoped most-recent-first hardware keyboard command dispatch" + }, + { + "id": "mobile-agent-activity-widget", + "path": "apps/mobile/src/widgets/AgentActivity.tsx", + "start": 21, + "end": 381, + "kind": "file", + "label": "iOS Agent Activity widget and Live Activity projection" + }, + { + "id": "mobile-update-flow", + "path": "apps/mobile/src/features/updates/app-updates.ts", + "start": 253, + "end": 539, + "kind": "file", + "label": "OTA check, download, deferral, persistence flush, and reload coordination" + }, + { + "id": "mobile-foreground-handoff", + "path": "apps/mobile/src/lib/foreground-handoff.ts", + "start": 1, + "end": 22, + "kind": "file", + "label": "Reference-counted app-initiated native foreground handoff guard" + }, + { + "id": "desktop-primary-platform-selection", + "path": "apps/desktop/src/backend/DesktopBackendConfiguration.ts", + "start": 677, + "end": 743, + "kind": "file", + "label": "Host-local primary configuration with optional Windows WSL-only resolution" + }, + { + "id": "desktop-backend-pool-lifecycle", + "path": "apps/desktop/src/backend/DesktopBackendPool.ts", + "start": 139, + "end": 440, + "kind": "file", + "label": "Primary lifetime, per-instance child scopes, registration, and unregister protection" + }, + { + "id": "desktop-backend-process-supervision", + "path": "apps/desktop/src/backend/DesktopBackendManager.ts", + "start": 626, + "end": 1150, + "kind": "file", + "label": "Independent instance state, readiness, restart scheduling, and graceful stop" + }, + { + "id": "desktop-backend-process-wiring", + "path": "apps/desktop/src/backend/DesktopBackendManager.ts", + "start": 440, + "end": 610, + "kind": "file", + "label": "Child-process bootstrap channels, diagnostics demand, and repeated HTTP readiness" + }, + { + "id": "desktop-wsl-reconciliation", + "path": "apps/desktop/src/wsl/DesktopWslBackend.ts", + "start": 97, + "end": 265, + "kind": "file", + "label": "Serialized WSL secondary reconciliation and WSL-only primary exclusion" + }, + { + "id": "desktop-ssh-gateway", + "path": "apps/desktop/src/ssh/DesktopSshEnvironment.ts", + "start": 51, + "end": 166, + "kind": "file", + "label": "Desktop SSH discovery, managed remote environment, and password-prompt gateway" + }, + { + "id": "desktop-lifecycle-quit", + "path": "apps/desktop/src/app/DesktopLifecycle.ts", + "start": 190, + "end": 254, + "kind": "file", + "label": "Ordinary, updater-controlled, window, activation, and signal quit paths" + }, + { + "id": "desktop-app-pool-shutdown", + "path": "apps/desktop/src/app/DesktopApp.ts", + "start": 295, + "end": 315, + "kind": "file", + "label": "Concurrent graceful shutdown of every registered local backend instance" + }, + { + "id": "distribution-root-build-scripts", + "path": "package.json", + "start": 21, + "end": 45, + "kind": "file", + "label": "Monorepo build and desktop artifact entrypoints" + }, + { + "id": "distribution-cli-package", + "path": "apps/server/package.json", + "start": 1, + "end": 52, + "kind": "file", + "label": "Published t3 package metadata, executable, payload, and runtime dependencies" + }, + { + "id": "distribution-cli-build-publish", + "path": "apps/server/scripts/cli.ts", + "start": 143, + "end": 304, + "kind": "file", + "label": "CLI bundle composition and temporary npm publication metadata" + }, + { + "id": "distribution-cli-bundle-config", + "path": "apps/server/vite.config.ts", + "start": 23, + "end": 75, + "kind": "file", + "label": "Server bundling policy and release-time public configuration" + }, + { + "id": "distribution-desktop-build-config", + "path": "scripts/build-desktop-artifact.ts", + "start": 2038, + "end": 2177, + "kind": "file", + "label": "Electron-builder platform, artifact, update, protocol, and signing configuration" + }, + { + "id": "distribution-desktop-stage-pipeline", + "path": "scripts/build-desktop-artifact.ts", + "start": 2650, + "end": 3070, + "kind": "file", + "label": "Desktop staging, dependency closure, sidecars, and artifact build pipeline" + }, + { + "id": "distribution-release-workflow", + "path": ".github/workflows/release.yml", + "start": 1, + "end": 1156, + "kind": "file", + "label": "Stable and nightly release graph" + }, + { + "id": "distribution-release-artifact-matrix", + "path": ".github/workflows/release.yml", + "start": 342, + "end": 397, + "kind": "file", + "label": "Desktop release artifact matrix and latent Windows arm64 entry" + }, + { + "id": "distribution-release-publish-dag", + "path": ".github/workflows/release.yml", + "start": 709, + "end": 1035, + "kind": "file", + "label": "CLI, GitHub Release, AUR, and hosted-web dependency graph" + }, + { + "id": "distribution-mobile-production-workflow", + "path": ".github/workflows/mobile-eas-production.yml", + "start": 1, + "end": 290, + "kind": "file", + "label": "Store-build reconciliation and fingerprint-gated production OTA workflow" + }, + { + "id": "distribution-mobile-eas-profiles", + "path": "apps/mobile/eas.json", + "start": 1, + "end": 63, + "kind": "file", + "label": "Development, preview, production, and store submission profiles" + }, + { + "id": "distribution-mobile-app-config", + "path": "apps/mobile/app.config.ts", + "start": 159, + "end": 235, + "kind": "file", + "label": "Native identities, runtime fingerprint, OTA source, and platform configuration" + }, + { + "id": "distribution-hosted-router", + "path": "apps/web/vercel.ts", + "start": 1, + "end": 66, + "kind": "file", + "label": "Release-controlled hosted channel router and disabled Git deploys" + }, + { + "id": "distribution-marketing-release-fetch", + "path": "apps/marketing/src/lib/releases.ts", + "start": 1, + "end": 30, + "kind": "file", + "label": "Latest GitHub Release lookup and session cache" + }, + { + "id": "distribution-marketing-download-page", + "path": "apps/marketing/src/pages/download.astro", + "start": 1, + "end": 132, + "kind": "file", + "label": "Desktop asset and mobile store download resolution" + }, + { + "id": "distribution-aur-workflow", + "path": ".github/workflows/publish-aur.yml", + "start": 1, + "end": 65, + "kind": "file", + "label": "Containerized AUR validation and publishing workflow" + }, + { + "id": "distribution-aur-release-script", + "path": "packaging/aur/scripts/release.sh", + "start": 1, + "end": 91, + "kind": "file", + "label": "Release asset digest verification, package build, and AUR push" + }, + { + "id": "distribution-aur-stable-package", + "path": "packaging/aur/t3code-bin/PKGBUILD", + "start": 1, + "end": 104, + "kind": "file", + "label": "Stable AppImage extraction and Arch package layout" + }, + { + "id": "distribution-aur-nightly-package", + "path": "packaging/aur/t3code-nightly-bin/PKGBUILD", + "start": 1, + "end": 105, + "kind": "file", + "label": "Nightly AppImage extraction and channel-isolated Arch package layout" + }, + { + "id": "release-operations-guide", + "path": "docs/operations/release.md", + "start": 1, + "end": 281, + "kind": "file", + "label": "Release triggers, artifacts, hosted channels, exact-version invariant, and updater assets" + }, + { + "id": "release-desktop-update-service", + "path": "apps/desktop/src/updates/DesktopUpdates.ts", + "start": 151, + "end": 760, + "kind": "file", + "label": "Desktop updater state, channel, polling, download, install, and IPC ownership" + }, + { + "id": "release-desktop-update-reducers", + "path": "apps/desktop/src/updates/updateMachine.ts", + "start": 1, + "end": 209, + "kind": "file", + "label": "Pure desktop updater state transitions" + }, + { + "id": "release-server-update-capability", + "path": "packages/contracts/src/environment.ts", + "start": 31, + "end": 92, + "kind": "file", + "label": "Server version and self-update capability negotiation" + }, + { + "id": "release-server-self-update", + "path": "apps/server/src/cloud/selfUpdate.ts", + "start": 30, + "end": 199, + "kind": "file", + "label": "Exact-version preparation, preflight, and stable-launcher handoff" + }, + { + "id": "release-server-update-client", + "path": "packages/client-runtime/src/state/server.ts", + "start": 517, + "end": 683, + "kind": "file", + "label": "Client update progress, reconnect nudging, and ready-event correlation" + }, + { + "id": "release-server-update-architecture", + "path": "docs/internals/server-updates.md", + "start": 1, + "end": 99, + "kind": "file", + "label": "Stable launcher, reversible trial, database snapshot, and client correlation" + }, + { + "id": "release-mobile-update-runtime", + "path": "apps/mobile/src/features/updates/app-updates.ts", + "start": 1, + "end": 480, + "kind": "file", + "label": "Expo update check, download, foreground deferral, flush, and safe reload" + }, + { + "id": "telemetry-analytics-service", + "path": "apps/server/src/telemetry/AnalyticsService.ts", + "start": 1, + "end": 186, + "kind": "file", + "label": "Best-effort bounded PostHog product analytics" + }, + { + "id": "telemetry-identity-resolution", + "path": "apps/server/src/telemetry/Identify.ts", + "start": 1, + "end": 300, + "kind": "file", + "label": "Hashed account or installation-scoped analytics identity selection" + }, + { + "id": "telemetry-server-observability", + "path": "apps/server/src/observability/Layers/Observability.ts", + "start": 1, + "end": 94, + "kind": "file", + "label": "Server logs, local traces, optional OTLP traces, and optional metrics" + }, + { + "id": "telemetry-browser-client-tracing", + "path": "apps/web/src/observability/clientTracing.ts", + "start": 16, + "end": 133, + "kind": "file", + "label": "Web tracer delegates OTLP batches through the selected primary environment" + }, + { + "id": "telemetry-browser-ingest-route", + "path": "apps/server/src/http.ts", + "start": 141, + "end": 199, + "kind": "file", + "label": "Operate-scoped browser trace ingestion and optional remote forwarding" + }, + { + "id": "telemetry-resource-architecture", + "path": "docs/internals/resource-telemetry.md", + "start": 1, + "end": 352, + "kind": "file", + "label": "Native resource telemetry topology, demand, retention, and packaging" + }, + { + "id": "telemetry-resource-server", + "path": "apps/server/src/resourceTelemetry", + "kind": "directory", + "label": "Resource-monitor supervision, merge, history, and attribution services" + }, + { + "id": "telemetry-resource-native", + "path": "native/resource-monitor/src", + "kind": "directory", + "label": "Standalone Rust resource monitor implementation" + }, + { + "id": "access-target-model", + "path": "packages/client-runtime/src/connection/model.ts", + "start": 4, + "end": 54, + "kind": "file", + "label": "Primary, Bearer, Relay, and SSH target union" + }, + { + "id": "access-connection-catalog", + "path": "packages/client-runtime/src/connection/catalog.ts", + "start": 19, + "end": 105, + "kind": "file", + "label": "Persisted target, profile, credential, and registration catalog" + }, + { + "id": "access-connection-resolver", + "path": "packages/client-runtime/src/connection/resolver.ts", + "start": 51, + "end": 277, + "kind": "file", + "label": "Route-specific target resolution into a common prepared connection" + }, + { + "id": "access-desktop-exposure", + "path": "apps/desktop/src/backend/DesktopServerExposure.ts", + "start": 101, + "end": 133, + "kind": "file", + "label": "Loopback versus network bind and LAN endpoint advertisement" + }, + { + "id": "access-environment-auth-policy", + "path": "apps/server/src/auth/EnvironmentAuthPolicy.ts", + "start": 16, + "end": 47, + "kind": "file", + "label": "Runtime-mode and reachability-derived authentication policy" + }, + { + "id": "access-pairing-grant", + "path": "apps/server/src/auth/PairingGrantStore.ts", + "start": 379, + "end": 567, + "kind": "file", + "label": "Time-bounded one-time pairing issuance and atomic consumption" + }, + { + "id": "access-pairing-delegation", + "path": "apps/server/src/auth/http.ts", + "start": 335, + "end": 355, + "kind": "file", + "label": "Access-write and delegated-scope subset enforcement" + }, + { + "id": "access-bearer-registration", + "path": "packages/client-runtime/src/connection/onboarding.ts", + "start": 73, + "end": 211, + "kind": "file", + "label": "Pairing exchange to associated bearer target, profile, and credential" + }, + { + "id": "access-tailscale-endpoints", + "path": "apps/desktop/src/backend/tailscaleEndpointProvider.ts", + "start": 19, + "end": 145, + "kind": "file", + "label": "Tailnet IP and MagicDNS HTTPS advertised endpoints" + }, + { + "id": "access-tailscale-serve", + "path": "packages/tailscale/src/tailscale.ts", + "start": 278, + "end": 365, + "kind": "file", + "label": "Tailscale HTTPS URL and Serve proxy lifecycle" + }, + { + "id": "access-desktop-ssh-gateway", + "path": "apps/desktop/src/ssh/DesktopSshEnvironment.ts", + "start": 127, + "end": 155, + "kind": "file", + "label": "Desktop-owned SSH ensure and disconnect gateway" + }, + { + "id": "access-ssh-forward", + "path": "packages/ssh/src/tunnel.ts", + "start": 942, + "end": 1442, + "kind": "file", + "label": "Remote server launch, local SSH forwarding, readiness, and finalization" + }, + { + "id": "access-ssh-registration", + "path": "packages/client-runtime/src/connection/onboarding.ts", + "start": 213, + "end": 243, + "kind": "file", + "label": "SSH environment target and profile registration" + }, + { + "id": "connect-relay-control-plane", + "path": "infra/relay/README.md", + "start": 6, + "end": 29, + "kind": "file", + "label": "Relay responsibility and direct post-launch environment traffic" + }, + { + "id": "connect-maintainer-doc", + "path": "docs/internals/t3-connect.md", + "start": 1, + "end": 33, + "kind": "file", + "label": "Maintainer-documented Clerk application and OAuth configuration" + }, + { + "id": "remote-explicit-future-work", + "path": "docs/internals/remote.md", + "start": 223, + "end": 229, + "kind": "file", + "label": "Explicitly unbuilt remote endpoint-provider, callback-broker, and multi-environment work" + }, + { + "id": "plan-ui-transition", + "path": "apps/web/src/planAgentSelectionHeal.tsx", + "start": 10, + "end": 51, + "kind": "file", + "label": "Web legacy plan-mode selection healing after settings hydration" + }, + { + "id": "plan-ui-capability-filter", + "path": "apps/web/src/providerModels.ts", + "start": 80, + "end": 112, + "kind": "file", + "label": "Legacy plan-mode capability filtering before model dispatch" + }, + { + "id": "plan-ui-mobile-legacy", + "path": "apps/mobile/src/persistence/mobile-preferences.ts", + "start": 34, + "end": 45, + "kind": "file", + "label": "Device-local mobile legacy plan-mode preference" + } +] diff --git a/sources/t3code.lock.json b/sources/t3code.lock.json new file mode 100644 index 0000000..58584c2 --- /dev/null +++ b/sources/t3code.lock.json @@ -0,0 +1,14 @@ +{ + "repository": "https://github.com/pingdotgg/t3code", + "commit": "fa219001dc2f14cfd9c7774c2c03c153359144be", + "shortCommit": "fa219001d", + "branch": "main", + "capturedAt": "2026-08-24T00:00:00+03:00", + "sourceDirHint": "../t3code", + "inventoryRulesVersion": 1, + "productionFiles": 1844, + "productionLines": 533213, + "testFiles": 881, + "testLines": 247766, + "notes": "Recomputed from pinned Git objects by scripts/inventory-source.mjs. Counts include tracked implementation/build source extensions, exclude assets and .repos, and classify test/spec/fixture paths separately; generated protocol source remains included." +} diff --git a/src/components/AccessTransportLab.astro b/src/components/AccessTransportLab.astro new file mode 100644 index 0000000..9d7bfeb --- /dev/null +++ b/src/components/AccessTransportLab.astro @@ -0,0 +1,173 @@ +--- +interface Props { + id: string; +} + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("AccessTransportLab requires a stable kebab-case id."); +} + +const labId = `access-transport-${id}`; +const routes = { + primary: { + label: "Host-local primary", + target: "Primary connection target", + launch: "Desktop launches the host-local backend; a browser may already be on its same origin.", + access: "Loopback HTTP and WebSocket bases are used directly. Primary auth is supplied by the platform when it has one.", + boundary: "A loopback bind is a reachability limit. It does not make every renderer or process on the machine an authority holder.", + registration: "Platform registration reconciles the primary; it is not a user-saved bearer profile.", + }, + bearer: { + label: "Paired bearer over LAN or HTTPS", + target: "Bearer connection target", + launch: "The server is already running. Pairing is an enrollment action, not a process-launch protocol.", + access: "The client uses the saved HTTP/WebSocket profile and a saved bearer credential, then obtains the scoped session material required by the environment.", + boundary: "The advertised route determines who can attempt enrollment; scopes and credential lifecycle decide what the enrolled client may do.", + registration: "A bearer registration binds one connection id to both a profile and credential. The resolver checks the profile before it prepares the route.", + }, + tailscale: { + label: "Paired bearer through Tailnet", + target: "Bearer connection target — not a Tailscale target", + launch: "The server is already running. Tailscale may provide an IP endpoint or a MagicDNS HTTPS endpoint through Tailscale Serve.", + access: "Pairing and subsequent bearer access use the selected Tailnet endpoint just as they use another reachable endpoint.", + boundary: "Tailscale changes endpoint provisioning and private-network reachability. It does not add a fifth connection-target kind or replace application authorization.", + registration: "The saved connection remains Bearer. An endpoint provider advertises candidate routes; it does not become the durable connection model.", + }, + ssh: { + label: "Desktop-managed SSH", + target: "SSH connection target", + launch: "Electron main asks the SSH manager to start or reuse the remote server, then reserves a local loopback port and opens an SSH forward.", + access: "The renderer connects to the forwarded local HTTP/WebSocket endpoint. The remote host still owns the environment and its work.", + boundary: "The desktop gateway owns SSH processes and password prompts. Renderer code receives a prepared environment path, not arbitrary SSH authority.", + registration: "Provisioning produces an SSH profile with its target. At connection time the gateway refreshes the bootstrap path before normal environment access continues.", + }, +} as const; + +const initial = routes.primary; +const payload = JSON.stringify(routes).replaceAll("<", "\\u003c"); +--- + +
+
+ Interactive route explorer +

Separate how an environment starts from how a client reaches it

+

Choose a route. This is a reading aid, not a live connection test: it performs no network action and has no automatic transitions.

+
+ +
+ Route to inspect +
+ {Object.entries(routes).map(([key, route], index) => ( + + ))} +
+
+ +

{initial.label}. {initial.target}.

+ +
+
{initial.target}{initial.label}
+
+
Launch transport
{initial.launch}
+
Access transport
{initial.access}
+
Trust boundary
{initial.boundary}
+
Registration fact
{initial.registration}
+
+
+ +
+

All four routes at a glance

+
+ {Object.values(routes).map((route) => ( +
+
{route.label}
+

{route.target}

+

Launch: {route.launch}

+

Access: {route.access}

+

Boundary: {route.boundary}

+
+ ))} +
+
+ + + +
+ + + + diff --git a/src/components/AcpForkLab.astro b/src/components/AcpForkLab.astro new file mode 100644 index 0000000..3bd394d --- /dev/null +++ b/src/components/AcpForkLab.astro @@ -0,0 +1,42 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("AcpForkLab requires a stable kebab-case id."); +} +const labId = `acp-fork-${id}`; + +const rows = [ + { label: "Model & mode", cursor: "Sets a base model, then resolves a mode through returned configuration/mode aliases.", grok: "Uses the setup result’s current model and calls session/set_model only if the requested model differs.", boundary: "Both call into ACP, but their selection policies are adapter code—not a generic negotiated product feature." }, + { label: "Question", cursor: "cursor/ask_question parks a Deferred and maps answers to canonical user-input events.", grok: "x.ai/ask_user_question (including an underscore variant) has its own response and cancellation mapping.", boundary: "Deferred callback waits are in-process. Durable requests exist only after later runtime ingestion." }, + { label: "Interrupt race", cursor: "Cancels ACP and resolves pending waits; prompt-in-flight counting prevents a superseded prompt from settling too early.", grok: "Marks target id before a thread lock and suppresses late notifications for interrupted turns.", boundary: "A cancel notification crosses a process boundary; neither path is a durable stop proof." }, + { label: "Rollback", cursor: "Truncates the adapter’s local read snapshot; no Cursor native revert call appears in this method.", grok: "Returns an explicit unsupported provider request error.", boundary: "Neither row is an orchestration-event rollback or a transaction with provider history." }, +]; +const payload = JSON.stringify(rows).replaceAll("<", "\\u003c"); +--- + +
+
Interactive semantic fork

One shared ACP rail, four distinct product decisions

Select a concern to compare concrete adapter behavior and the boundary it does not cross.

+
+
{rows.map((row, index) => )}
+

Selected {rows[0].label}

+

{rows[0].label}

Cursor
{rows[0].cursor}
Grok
{rows[0].grok}
Boundary
{rows[0].boundary}
+
+
All comparisons
    {rows.map((row) =>
  1. {row.label}

    Cursor: {row.cursor}

    Grok: {row.grok}

    Boundary: {row.boundary}

  2. )}
+ +
+ + diff --git a/src/components/AdapterContractLab.astro b/src/components/AdapterContractLab.astro new file mode 100644 index 0000000..0916078 --- /dev/null +++ b/src/components/AdapterContractLab.astro @@ -0,0 +1,266 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("AdapterContractLab requires a stable kebab-case id."); +} + +const stages = [ + { label: "Durable intent", short: "intent", owner: "Orchestration", boundary: "The product command has committed. No native call is part of that SQL transaction." }, + { label: "Resolve route", short: "route", owner: "ProviderService", boundary: "The persisted binding selects one configured instance and its current live adapter." }, + { label: "Invoke SPI", short: "call", owner: "ProviderAdapter", boundary: "A typed method crosses into provider-owned behavior." }, + { label: "Native runtime", short: "native", owner: "Harness", boundary: "Process, SDK query, RPC request, and native session state remain outside SQLite." }, + { label: "Canonical event", short: "event", owner: "Hot stream", boundary: "The adapter translates selected observations into ProviderRuntimeEvent values." }, + { label: "Domain update", short: "commit", owner: "Runtime ingestion", boundary: "A selected canonical event becomes durable only after an internal command commits." }, +] as const; + +const scenarios = { + start: { + label: "Start an absent session", + state: "No live adapter session", + method: "startSession(input)", + immediate: "Returns ProviderSession after native start/resume setup; this is not assistant output.", + native: "Create or adopt the provider-native session and begin its event consumer.", + event: "session.started / thread.started may follow on the hot stream.", + durable: "ProviderService can upsert the thread → instance binding and opaque cursor separately.", + caveat: "A process crash can still lose native state or an event between hot boundaries.", + tone: "success", + sourceIds: ["provider-adapter-contract", "provider-service-start-session", "provider-runtime-event-union"], + }, + send: { + label: "Send on a ready session", + state: "Live session, no active turn", + method: "sendTurn(input)", + immediate: "Returns ProviderTurnStartResult with threadId, turnId, and optional cursor—not generated text.", + native: "Submit a prompt/turn through the adapter's native transport.", + event: "turn.started, content/item activity, requests, and turn completion can arrive later.", + durable: "Runtime ingestion dispatches separate internal commands for selected events.", + caveat: "The original sequence acknowledgement proves durable intent, not native acceptance or completion.", + tone: "success", + sourceIds: ["provider-adapter-contract", "provider-turn-reactor", "provider-runtime-ingestion"], + }, + running: { + label: "Send while a turn is running", + state: "Live session with active turn", + method: "sendTurn(input) again", + immediate: "The generic SPI still exposes sendTurn; it has no steer return type or steer capability.", + native: "Concrete adapters may steer, queue, start another native turn, or reject according to their implementation.", + event: "Any accepted behavior must still be expressed through canonical runtime events.", + durable: "The durable product command does not make the provider-specific concurrency rule universal.", + caveat: "OpenCode has tested steering behavior; the ProviderAdapter contract alone does not promise it.", + tone: "warning", + sourceIds: ["provider-adapter-contract", "opencode-steer-behavior"], + }, + approve: { + label: "Resolve an approval", + state: "Pending native request", + method: "respondToRequest(threadId, requestId, decision)", + immediate: "Returns void when the adapter accepts the response operation.", + native: "Resolve the provider-native pending request or deferred handler.", + event: "request.resolved can describe the observed resolution.", + durable: "The pending/resolved product activity is durable only through ingestion commands.", + caveat: "Not every provider originates the same approval shapes or policies.", + tone: "neutral", + sourceIds: ["provider-adapter-interactions", "provider-command-control-forwarding", "provider-runtime-event-union"], + }, + input: { + label: "Answer structured input", + state: "Pending native input request", + method: "respondToUserInput(threadId, requestId, answers)", + immediate: "Returns void when the adapter accepts the answers.", + native: "Resolve an SDK deferred, ACP elicitation/extension, or native question as implemented.", + event: "user-input.resolved can describe the observed resolution.", + durable: "Request state enters the domain through separate ingestion dispatches.", + caveat: "A method in the shared interface is not proof that every native runtime can originate the request.", + tone: "neutral", + sourceIds: ["provider-adapter-interactions", "provider-runtime-event-union"], + }, + interrupt: { + label: "Interrupt an active turn", + state: "Live session with active turn", + method: "interruptTurn(threadId, turnId?)", + immediate: "Returns void after the adapter's interruption request path succeeds.", + native: "Send cancellation/interrupt through the provider-specific transport.", + event: "turn.aborted, turn.completed, warning, or error explains later observed state.", + durable: "The domain settles only when the corresponding runtime observation is ingested.", + caveat: "A successful interrupt call is not proof that no late native event can race it.", + tone: "warning", + sourceIds: ["provider-adapter-contract", "provider-command-control-forwarding", "provider-runtime-ingestion"], + }, + rollback: { + label: "Roll back provider history", + state: "Routable session or recoverable binding", + method: "rollbackThread(threadId, numTurns)", + immediate: "Returns a provider-thread snapshot when implemented successfully.", + native: "Apply the adapter's own rollback/revert semantics.", + event: "No universal canonical rollback event is guaranteed by this method.", + durable: "T3's checkpoint/revert workflow remains a separate cross-store saga.", + caveat: "Grok explicitly rejects provider rollback; Cursor and other adapters differ in what is actually reverted.", + tone: "failure", + sourceIds: ["provider-adapter-contract", "grok-rollback-unsupported", "checkpoint-revert-saga"], + }, +} as const; + +const resolved = Object.fromEntries(Object.entries(scenarios).map(([key, scenario]) => [key, { + ...scenario, + sources: scenario.sourceIds.map((sourceId) => { + const source = getSourceReference(sourceId); + return { href: sourceReferenceHref(source), label: sourceReferenceLabel(source) }; + }), +}])); +const initial = resolved.start; +const labId = `adapter-contract-${id}`; +const payload = JSON.stringify({ stages, scenarios: resolved }).replaceAll("<", "\\u003c"); +--- + +
+ + + + diff --git a/src/components/ArtifactFactoryLab.astro b/src/components/ArtifactFactoryLab.astro new file mode 100644 index 0000000..5adf0df --- /dev/null +++ b/src/components/ArtifactFactoryLab.astro @@ -0,0 +1,167 @@ +--- +interface Props { id?: string; } +const { id = "artifact-factory" } = Astro.props; +const labId = `artifact-factory-${id}`; +const routes = { + npm: { + label: "npm CLI", + artifact: "t3 package", + boundary: "The published package contains dist only; publishing first proves the exact server version clients will invoke.", + steps: [ + ["Build server", "The server bundle emits dist/bin.mjs and the service launcher.", "Bundled code is not yet a complete product surface."], + ["Embed renderer", "The CLI build copies apps/web/dist into dist/client when it is present.", "A missing web build logs a warning during build, but publication later requires client/index.html."], + ["Assert publish inputs", "The publish command requires the executable, launcher, and bundled client entry.", "The temporary npm manifest resolves workspace/catalog dependencies before npm sees it."], + ["Publish exact version", "Release CI publishes the CLI before it is allowed to create the GitHub Release.", "The release is held if npm publication fails."], + ], + }, + desktop: { + label: "Desktop release", + artifact: "DMG · AppImage · NSIS", + boundary: "The build script describes broad platform targets, but release.yml decides which jobs actually run and ship.", + steps: [ + ["Build inputs", "Desktop, server, web, and branded client assets must exist before staging begins.", "The artifact builder validates emitted bundles rather than trusting configuration alone."], + ["Stage closure", "Electron output, server dist, resources, production dependencies, native sidecars, and platform assets form a temporary app tree.", "Windows splits the server tree into a server.asar sidecar; macOS/Linux keep one merged tree."], + ["Package per matrix", "electron-builder creates platform-specific payloads and updater metadata.", "Builder code can target more combinations than CI has elected to ship."], + ["Release four lanes", "Current CI runs macOS arm64 DMG, macOS x64 DMG, Linux x64 AppImage, and Windows x64 NSIS.", "Windows arm64 is commented out in the release matrix: capability is not a published artifact."], + ], + }, + hosted: { + label: "Hosted + mobile", + artifact: "Channel deploy · store build · OTA", + boundary: "Web channels are release-controlled aliases; mobile JavaScript can move only to native binaries with a matching fingerprint.", + steps: [ + ["Select channel", "Stable and nightly releases derive separate versions, tags, and hosted channel names.", "Vercel Git-triggered deploys are disabled so an arbitrary commit does not become a product channel."], + ["Deploy web", "Release CI builds, deploys, and aliases one immutable deployment to latest or nightly.", "The public router uses a cookie to select a channel, then rewrites the app route."], + ["Reconcile stores", "Mobile CI compares the declared app version with finished production builds and creates/submits builds when needed.", "Store approval remains an external store process, not an OTA operation."], + ["Gate OTA", "An EAS production update is published only where a completed production build matches the current native fingerprint.", "Native drift skips OTA instead of shipping JavaScript into an incompatible binary."], + ], + }, + aur: { + label: "AUR bridge", + artifact: "Arch package metadata", + boundary: "AUR repackages a published Linux AppImage; it does not build an independent desktop artifact from the source tree.", + steps: [ + ["Accept a release tag", "The release script accepts only stable semver tags or the nightly tag shape.", "Other tag shapes exit before an AUR package is changed."], + ["Choose package lane", "Stable tags select t3code-bin; nightly tags select t3code-nightly-bin.", "The package names preserve channel separation for Arch users."], + ["Pin upstream", "The script reads the named GitHub Release asset digest and the LICENSE at that tag.", "A missing or malformed SHA-256 stops packaging."], + ["Validate then publish", "namcap and makepkg validate the updated PKGBUILD before an optional authenticated AUR push.", "Without the AUR SSH key, validation completes but publication is skipped."], + ], + }, +}; +const initialRoute = "npm"; +--- + +
+
+ Interactive artifact factory · Chapter 37 +

Choose a delivery lane, then inspect its gates

+

Each lane has a different output and failure boundary. Advance manually; no state progresses on its own.

+
+
+
+ Delivery lane +
+ {Object.entries(routes).map(([key, route]) => )} +
+
+
+ +
+
+

{routes[initialRoute].label} · Gate 1 of 4

+
    + {routes[initialRoute].steps.map((step, index) =>
  1. {index + 1}{step[0]}
  2. )} +
+
+

{routes[initialRoute].label}

+

{routes[initialRoute].steps[0][0]}

+

{routes[initialRoute].steps[0][1]}

+
Output
{routes[initialRoute].artifact}
Failure boundary
{routes[initialRoute].steps[0][2]}
Lane rule
{routes[initialRoute].boundary}
+
+
+ Static artifact map +
{Object.values(routes).map((route) => )}
LaneOutputLast gate
{route.label}{route.artifact}{route.steps.at(-1)?.[0]} — {route.steps.at(-1)?.[2]}
+
+ +
+ + + + diff --git a/src/components/BookCover.astro b/src/components/BookCover.astro new file mode 100644 index 0000000..70c2e1e --- /dev/null +++ b/src/components/BookCover.astro @@ -0,0 +1,28 @@ +--- +import { Image } from "astro:assets"; +import cover from "../../cover.png"; +import lock from "../../sources/t3code.lock.json"; +const base = import.meta.env.BASE_URL.endsWith("/") ? import.meta.env.BASE_URL : `${import.meta.env.BASE_URL}/`; +--- + +
+
+
+ T3 Code Decoded book cover: an octopus connecting Codex, Claude Code, Cursor, Grok, OpenCode, and tools +
+
+ Source-level field guide +

Follow the control plane all the way down.

+

From a tap on a phone to a provider subprocess, persisted event, hidden Git checkpoint, and streamed UI update—every layer is explained against one pinned source revision.

+ +
+ pingdotgg/t3code · commit {lock.shortCommit} + Local/hosted web · Electron · iOS/Android + Codex · Claude · Cursor · Grok · OpenCode +
+
+
+
diff --git a/src/components/Callout.astro b/src/components/Callout.astro new file mode 100644 index 0000000..0405a3e --- /dev/null +++ b/src/components/Callout.astro @@ -0,0 +1,13 @@ +--- +interface Props { + title: string; + tone?: "info" | "warning" | "success"; +} +const { title, tone = "info" } = Astro.props; +--- + + + diff --git a/src/components/CheckpointGraphLab.astro b/src/components/CheckpointGraphLab.astro new file mode 100644 index 0000000..24cf096 --- /dev/null +++ b/src/components/CheckpointGraphLab.astro @@ -0,0 +1,135 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("CheckpointGraphLab requires a stable kebab-case id."); +} +const labId = `checkpoint-graph-${id}`; +const states = [ + { + id: "before", + label: "Before turn", + eyebrow: "Baseline · turn 0", + detail: "The current workspace is captured as the baseline hidden ref. The branch still points at its ordinary commit; the checkpoint is a separate content snapshot.", + ref: "refs/t3/checkpoints//turn/0", + files: ["README.md · unchanged", "src/app.ts · unchanged"], + consequence: "A later turn diff can compare this baseline to the next checkpoint.", + }, + { + id: "after", + label: "After turn", + eyebrow: "Checkpoint · turn 1", + detail: "After the turn, T3 builds a tree with an isolated Git index, stores it under a hidden ref, then derives a changed-file summary before it records checkpoint metadata.", + ref: "refs/t3/checkpoints//turn/1", + files: ["README.md · 3 additions, 1 deletion", "src/app.ts · 12 additions"], + consequence: "The visible summary is derived from the checkpoint diff; it is not an independent file watcher.", + }, + { + id: "diff", + label: "Inspect a diff", + eyebrow: "Read-only comparison", + detail: "A turn view compares checkpoint 0 → 1. A full-thread view compares the baseline → a selected checkpoint. Working-tree and branch views are separate live Git comparisons.", + ref: "turn 0 → turn 1", + files: ["- const title = \"old\";", "+ const title = \"new\";", "+ export const ready = true;"], + consequence: "Inspecting a patch does not restore files or alter the provider conversation.", + }, + { + id: "revert", + label: "Revert to turn 0", + eyebrow: "Ordered destructive saga", + detail: "The reactor restores worktree and index content, cleans untracked paths, refreshes workspace entries, asks the bound provider to roll back counted turns, attempts best-effort deletion of newer hidden refs, then records a completed revert.", + ref: "restore turn 0; prune turn 1", + files: ["README.md · baseline restored", "src/app.ts · baseline restored", "turn 1 hidden ref · delete attempted"], + consequence: "This is a content restore plus a provider-history operation, not a Git branch reset or an undo of a remote push.", + }, + { + id: "failure", + label: "Provider rollback fails", + eyebrow: "Partial failure boundary", + detail: "Filesystem restore happens before provider rollback. If the live provider cannot roll back, the reactor appends a failure activity and does not dispatch thread.reverted; the working tree may already be restored while durable history and stale refs remain.", + ref: "filesystem restored; completion withheld", + files: ["README.md · baseline restored", "provider conversation · not rolled back", "turn 1 ref · still present"], + consequence: "The user must treat this as a mismatched partial state, not as a completed revert.", + }, +] as const; +const payload = JSON.stringify(states).replaceAll("<", "\\u003c"); +--- + +
+
+ Interactive checkpoint graph +

Walk one turn through capture, review, and a partial rollback failure

+

Each button is a discrete state. Nothing plays by itself, and the full ledger stays available without JavaScript.

+
+
+ {states.map((state, index) => )} +
+

State: {states[0].label}. {states[0].detail}

+
+ +
+ {states[0].eyebrow} +

{states[0].label}

+

{states[0].detail}

+
+
Reference / operation
{states[0].ref}
+
Observed files
    {states[0].files.map((file) =>
  • {file}
  • )}
+
Boundary
{states[0].consequence}
+
+
+
+
+ Complete state ledger +
    + {states.map((state) =>
  1. {state.label}

    {state.detail}

    Boundary: {state.consequence}

  2. )} +
+
+ + +
+ + + + diff --git a/src/components/ClaudeSdkStreamLab.astro b/src/components/ClaudeSdkStreamLab.astro new file mode 100644 index 0000000..530171c --- /dev/null +++ b/src/components/ClaudeSdkStreamLab.astro @@ -0,0 +1,47 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ClaudeSdkStreamLab requires a stable kebab-case id."); +} +const labId = `claude-sdk-${id}`; + +const messages = [ + { label: "Query configured", native: "The SDK query receives cwd, model, effort, permission mode, and optional resume metadata.", product: "A ProviderSession records a live Claude binding and a resumable cursor shape.", caveat: "The SDK session and query stream are provider-owned runtime state; a stored cursor is not a replay of every transient message." }, + { label: "Assistant + tool", native: "Assistant text and tool-use/result messages stream from the Agent SDK.", product: "Content and item lifecycle events are normalized for thread projections.", caveat: "The canonical item taxonomy is T3’s contract; it is not an assertion that all SDK message fields persist." }, + { label: "Permission / question", native: "A tool request or structured input pauses on an SDK-side deferred response.", product: "request.opened or user-input.requested gives clients a canonical action.", caveat: "The deferred is volatile. The durable record appears only after runtime ingestion’s internal command commits." }, + { label: "Todo / task", native: "TodoWrite and agent/task-shaped SDK messages provide planning and work signals.", product: "turn.plan.updated and task/activity events drive product work views.", caveat: "These are adapter normalizations, not a cross-provider task scheduler or durable execution queue." }, + { label: "Result / error", native: "A terminal SDK result carries success, cancellation, error, and sometimes usage fields.", product: "turn completion plus optional thread token usage or runtime error reaches T3.", caveat: "Live context telemetry is not transcript accounting, and an SDK result still crosses a hot delivery bridge before durable projection." }, +]; +const payload = JSON.stringify(messages).replaceAll("<", "\\u003c"); +--- + +
+
Interactive stream classifier

Classify one Claude SDK observation

Choose an event family to see the native message, its product projection, and the point where durable truth begins.

+
+
{messages.map((message, index) => )}
+

Selected {messages[0].label}

+

{messages[0].label}

Native SDK meaning
{messages[0].native}
Canonical product meaning
{messages[0].product}
Boundary to keep honest
{messages[0].caveat}
+
+
All message families
    {messages.map((message) =>
  1. {message.label}

    {message.native}

    {message.product}

    {message.caveat}

  2. )}
+ + +
+ + + + diff --git a/src/components/ClientConvergenceLab.astro b/src/components/ClientConvergenceLab.astro new file mode 100644 index 0000000..ced79da --- /dev/null +++ b/src/components/ClientConvergenceLab.astro @@ -0,0 +1,162 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +--- + +
+
+ Interactive convergence lab +

Reject what cannot still be true

+

Advance one race at a time. The first render is a still, authoritative snapshot at sequence 10.

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

+ Snapshot at sequence 10 is loaded. No page request is in flight. +

+ +
+
SessionA
+
Live cursor10
+
History epoch0
+
Older pageidle
+
+ +
    +
  1. Snapshotauthoritative window: turns 8–10
  2. +
+ +
+ Static race reference +
    +
  • A snapshot replaces loaded history and establishes its cursor.
  • +
  • An event at or below that cursor is ignored as overlap or a duplicate.
  • +
  • An invalid or oversized resume gap receives a new snapshot, not a partial replay.
  • +
  • A new session refreshes authority before reusing a cursor.
  • +
  • A revert increments history epoch, so a pre-revert older page is discarded.
  • +
  • An older page ahead of live cursor waits for its watermark; a stale page does not merge.
  • +
+
+ +
+ + + + diff --git a/src/components/CodexRpcBoundaryLab.astro b/src/components/CodexRpcBoundaryLab.astro new file mode 100644 index 0000000..84035f9 --- /dev/null +++ b/src/components/CodexRpcBoundaryLab.astro @@ -0,0 +1,63 @@ +--- +interface Props { id: string; } +interface Step { label: string; native: string; canonical: string; durable: string; } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("CodexRpcBoundaryLab requires a stable kebab-case id."); +} +const labId = `codex-rpc-${id}`; + +const steps: Step[] = [ + { label: "Start / resume", native: "Spawn codex app-server, initialize it, then start or resume a provider thread.", canonical: "session.started and thread.started identify a live adapter session.", durable: "Only the orchestration binding and any saved resume cursor can survive; the child process and event consumer are live state." }, + { label: "Turn request", native: "turn/start carries the prompt plus selected model, reasoning effort, and service tier.", canonical: "turn.started and item/content events describe the product-visible turn.", durable: "The earlier turn-start command is durable intent. Native request completion is not a SQL commit." }, + { label: "Server asks", native: "The app-server sends an incoming approval or user-input JSON-RPC request.", canonical: "request.opened or user-input.requested becomes a pending product request.", durable: "The pending native handler waits in process; its durable counterpart arrives only after runtime ingestion dispatches an internal command." }, + { label: "Notifications", native: "Items, plan deltas, token usage, reroutes, and errors arrive as app-server notifications.", canonical: "The adapter maps selected shapes into ProviderRuntimeEvent values.", durable: "The adapter queue and hot provider stream are volatile until ingestion commits a derived internal command." }, + { label: "Stop / failure", native: "Close the runtime or observe child stdio/process/protocol failure.", canonical: "session.exited, runtime.warning, or runtime.error explains the observed outcome.", durable: "Stopping a process does not retroactively prove a provider result was projected; a prior accepted intent may outlive delivery." }, +]; +const payload = JSON.stringify(steps).replaceAll("<", "\\u003c"); +--- + +
+
Interactive transport ledger

Move one Codex observation across the boundary

The labels deliberately separate upstream JSON-RPC from T3’s stable runtime vocabulary and from durable orchestration state.

+
+
+ + + +
+

Position 1 of {steps.length}: {steps[0].label}

+

{steps[0].label}

Native app-server
{steps[0].native}
Canonical T3 event
{steps[0].canonical}
Durability boundary
{steps[0].durable}
+
+
All boundary positions
    {steps.map((step) =>
  1. {step.label}

    Native: {step.native}

    Canonical: {step.canonical}

    Durable: {step.durable}

  2. )}
+ + +
+ + + + diff --git a/src/components/CommandBoundaryLab.astro b/src/components/CommandBoundaryLab.astro new file mode 100644 index 0000000..87ff9f7 --- /dev/null +++ b/src/components/CommandBoundaryLab.astro @@ -0,0 +1,664 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Props { + id: string; +} + +interface BoundaryStage { + label: string; + shortLabel: string; + position: string; + durable: string; + external: string; + client: string; + retry: string; + provider: string; + guarantee: string; + tone: "neutral" | "warning" | "failure" | "success"; + sourceIds: string[]; +} + +interface BoundaryPath { + label: string; + description: string; + stages: BoundaryStage[]; +} + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("CommandBoundaryLab requires a stable kebab-case id."); +} + +const paths: Record<"existing" | "bootstrap", BoundaryPath> = { + existing: { + label: "Turn on an existing thread", + description: + "One normalized command is decided, then its two-to-four-event batch, projections, and accepted receipt share one SQL transaction.", + stages: [ + { + label: "Before normalization", + shortLabel: "wire", + position: "The client command has crossed schema and authorization checks, but normalization has not produced the dispatchable command.", + durable: "No orchestration event or command receipt exists.", + external: "No attachment staging or provider work has begun.", + client: "The request can fail without a durable orchestration result.", + retry: "The same command id enters the normal path again because there is no receipt to find.", + provider: "No provider intent exists.", + guarantee: "No durable intent", + tone: "neutral", + sourceIds: ["command-union-boundary", "normalizer-staging-boundary"], + }, + { + label: "After normalization and staging", + shortLabel: "stage", + position: "The server has supplied timestamps and workspace context and may have created attachment directories or written attachment bytes.", + durable: "The event store and receipt table are still unchanged.", + external: "Filesystem staging can already exist outside the later SQL transaction.", + client: "A later failure returns an error even though staged files may remain.", + retry: "The command is normalized and staged again; receipt deduplication has not started yet.", + provider: "No provider intent exists.", + guarantee: "External work, no receipt", + tone: "warning", + sourceIds: ["normalizer-staging-boundary", "turn-normalizer"], + }, + { + label: "Invariant rejection", + shortLabel: "reject", + position: "The serialized decider has read the authoritative in-memory model and refuses the command before opening the SQL transaction.", + durable: "No event is appended. A rejected receipt is attempted afterward on a best-effort path.", + external: "Any earlier normalization-time staging is outside that rejection bookkeeping.", + client: "The caller receives an invariant error.", + retry: "After client normalization runs again, a saved rejected receipt keeps the same id rejected without re-evaluation; if that receipt was not saved, the command can be decided again.", + provider: "No provider intent is published.", + guarantee: "Best-effort sticky rejection", + tone: "failure", + sourceIds: ["existing-turn-decider", "engine-rejected-receipt"], + }, + { + label: "SQL transaction failure", + shortLabel: "rollback", + position: "Decision has already allocated event data, but an event append, projection, or receipt write fails inside the transaction.", + durable: "Events, transactional projections, and the accepted receipt roll back together.", + external: "Pre-transaction staged files are not part of the SQL rollback.", + client: "The caller receives a persistence failure; no sequence is acknowledged.", + retry: "With no accepted receipt, the same id is normalized and decided again; clock and UUID-derived values may differ.", + provider: "No committed event reaches the hot event bus.", + guarantee: "SQL all-or-none", + tone: "failure", + sourceIds: ["decider-effect-dependencies", "engine-commit-publication"], + }, + { + label: "Hard crash after commit", + shortLabel: "gap", + position: "The SQL transaction committed, but the process dies before the in-memory fold and PubSub loop can publish the batch.", + durable: "The complete event batch, projections, and accepted receipt are durable.", + external: "The hot reactor saw none of this batch in the failed process.", + client: "No acknowledgement reaches the caller.", + retry: "After any client normalization work, a same-id retry returns the stored last sequence and does not republish the missing hot events.", + provider: "Durable turn intent can exist without the provider reactor receiving its trigger.", + guarantee: "Durable but not delivered", + tone: "failure", + sourceIds: ["engine-commit-publication", "command-receipt-handling", "engine-failure-reconciliation", "hot-reactor-no-replay"], + }, + { + label: "Sequence acknowledged", + shortLabel: "ack", + position: "The engine committed the batch, updated its in-memory model, and offered every committed event to the hot PubSub before returning.", + durable: "Two to four events, their synchronous projections, and one accepted receipt are committed.", + external: "Publication wakes asynchronous reactors; provider execution is outside this transaction.", + client: "The RPC result contains the last committed event sequence.", + retry: "The same id and aggregate return that stored sequence without deciding or appending again.", + provider: "The acknowledgement proves durable intent, not that a harness accepted, ran, or completed the turn.", + guarantee: "Durable intent acknowledged", + tone: "success", + sourceIds: ["turn-atomic-batch", "command-commit-acknowledgement", "provider-turn-reactor"], + }, + ], + }, + bootstrap: { + label: "Full first-turn WebSocket bootstrap", + description: + "The full WebSocket path creates a thread, prepares a worktree, launches setup, and starts the turn through separate durability boundaries.", + stages: [ + { + label: "After normalization, before the saga", + shortLabel: "stage", + position: "The WebSocket turn-start command still carries its bootstrap payload after normalization; the ordinary command engine has not received a subcommand.", + durable: "No bootstrap step has committed.", + external: "Attachment staging may already exist, but no worktree or setup process has been requested.", + client: "The WebSocket request can still fail without creating the thread.", + retry: "The same outer id has no saga-level receipt that can replay the whole result.", + provider: "No provider intent exists.", + guarantee: "No saga-level idempotency", + tone: "neutral", + sourceIds: ["command-union-boundary", "bootstrap-saga-full"], + }, + { + label: "Thread creation committed", + shortLabel: "thread", + position: "A server-generated id dispatched thread.create through the ordinary engine as the first saga step.", + durable: "The thread event and that subcommand's receipt are committed independently of the final turn.", + external: "No worktree is guaranteed yet.", + client: "The outer request is still pending.", + retry: "Repeating the outer request tries the creation path again; it does not retrieve one receipt for the whole saga.", + provider: "The thread exists, but no turn-start request has been committed.", + guarantee: "First independent commit", + tone: "warning", + sourceIds: ["bootstrap-saga-full", "bootstrap-command-path"], + }, + { + label: "Worktree prepared and metadata committed", + shortLabel: "Git + meta", + position: "Git remote/worktree operations run outside SQLite, then thread.meta.update commits with another server-generated id.", + durable: "Thread metadata can point at the newly prepared worktree in a separate event and receipt.", + external: "A branch and worktree now exist outside the event-store transaction.", + client: "The outer request remains pending and can still fail later.", + retry: "An identical outer retry can collide with already-created thread, branch, or worktree state.", + provider: "No final turn intent is guaranteed yet.", + guarantee: "Mixed durable and Git state", + tone: "warning", + sourceIds: ["bootstrap-saga-full"], + }, + { + label: "Setup launch fails", + shortLabel: "setup", + position: "The setup runner rejects the launch. The handler attempts to append failure activity, logs a warning, and continues the saga.", + durable: "Failure activity is best effort; the earlier thread and metadata commits remain.", + external: "No setup process started, but the prepared worktree remains.", + client: "Setup-launch failure alone does not fail the outer turn-start request.", + retry: "The saga continues to the final turn; this is not a rollback boundary.", + provider: "The eventual provider turn may run against a worktree whose setup did not launch.", + guarantee: "Recorded warning, saga continues", + tone: "warning", + sourceIds: ["bootstrap-saga-full"], + }, + { + label: "Final turn fails; compensate", + shortLabel: "delete", + position: "A non-interruption failure reaches compensation after the thread was created, so thread.delete is dispatched uninterruptibly.", + durable: "Successful compensation tombstones the thread in another independent commit; prior history is not erased.", + external: "The Git worktree and branch are not removed by this compensation.", + client: "The caller receives the original dispatch failure, annotated as deleted only when cleanup succeeds.", + retry: "Retrying the outer request is a new saga attempt, not a replay of an atomic transaction.", + provider: "No successful final turn acknowledgement exists.", + guarantee: "Domain compensation only", + tone: "failure", + sourceIds: ["bootstrap-saga-full", "bootstrap-command-path"], + }, + { + label: "Final turn acknowledged", + shortLabel: "ack", + position: "The last saga step strips bootstrap data and dispatches the normalized turn-start through the ordinary engine.", + durable: "Earlier saga commits plus the final two-to-four-event turn transaction are durable, each with its own receipt boundary.", + external: "Git/setup effects remain outside SQL and provider work begins asynchronously from hot events.", + client: "The WebSocket RPC returns the final turn transaction's last sequence.", + retry: "The outer bootstrap is not end-to-end idempotent even though each dispatched subcommand has receipt semantics.", + provider: "The acknowledgement proves durable turn intent only.", + guarantee: "Successful saga, not one transaction", + tone: "success", + sourceIds: ["bootstrap-saga-full", "turn-atomic-batch", "provider-turn-reactor"], + }, + ], + }, +}; + +const resolvedPaths = Object.fromEntries( + Object.entries(paths).map(([key, path]) => [ + key, + { + ...path, + stages: path.stages.map(({ sourceIds, ...stage }) => ({ + ...stage, + sources: sourceIds.map((sourceId) => { + const source = getSourceReference(sourceId); + return { + label: sourceReferenceLabel(source), + href: sourceReferenceHref(source), + }; + }), + })), + }, + ]), +); +const initial = resolvedPaths.existing.stages[0]; +const payload = JSON.stringify(resolvedPaths).replaceAll("<", "\\u003c"); +const labId = `command-boundary-${id}`; +--- + +
+
+ Interactive boundary explorer +

Where can a command fail?

+

Switch paths and move the failure position. Watch which state is durable, which state is external, and what an identical retry can actually recover.

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

{resolvedPaths.existing.description}

+ + + + +

+ Existing-thread path, position 1 of 6: {initial.label}. {initial.guarantee}. +

+ +
+
+
Position 1 of 6

{initial.label}

+ {initial.guarantee} +
+

{initial.position}

+
+
Durable state
{initial.durable}
+
External state
{initial.external}
+
Client sees
{initial.client}
+
Identical retry
{initial.retry}
+
Provider implication
{initial.provider}
+
+
+ {initial.sources.map((source) => {source.label})} +
+
+ +
+ Static boundary ledger + {Object.entries(resolvedPaths).map(([, path]) => ( +
+

{path.label}

+

{path.description}

+
+ + + + {path.stages.map((stage, index) => ( + + + + + + ))} + +
PositionDurable / external stateRetry and provider meaning
{index + 1}. {stage.label}{stage.durable} {stage.external}{stage.retry} {stage.provider}
+
+
+ ))} +
+ + +
+ + + + diff --git a/src/components/ConnectPlaneLab.astro b/src/components/ConnectPlaneLab.astro new file mode 100644 index 0000000..394a22e --- /dev/null +++ b/src/components/ConnectPlaneLab.astro @@ -0,0 +1,116 @@ +--- +interface Props { id: string; } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ConnectPlaneLab requires a stable kebab-case id."); +} +const labId = `connect-plane-${id}`; +--- + +
+
+ Interactive credential ladder · Chapter 35 +

Launch the connection, then move the work on a different path

+

Choose a manual step. The lab distinguishes the short setup exchange from the HTTP and WebSocket traffic that follows it.

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

Control plane · account and endpoint authorization

+

Clerk session reaches the relay

+

A signed-in client presents its Clerk credential to list or link environments. This authorizes relay control-plane work; it is not an environment WebSocket credential.

+
+
Sender → receiver
Client → relay
+
Proof in use
Clerk bearer credential
+
What becomes possible
Discovery, link challenge, or relay DPoP token exchange
+
+ +
+

Step 1 of 6. Control plane.

+
+ + +
+ Static credential ladder and plane boundary +
+ + + + + + + + + + +
StepPathCredential or proofResult
1Client → relayClerk bearer credentialAccount-scoped relay operations
2Client → relayDevice P-256 DPoP proof; relay issues DPoP-bound access tokenProof-bound relay request authority
3Relay → managed environmentRelay-signed short-lived mint request, bound to the client key thumbprintEnvironment bootstrap credential returned through the brokered connection flow
4Client → managed environmentBootstrap credential plus DPoP proofEnvironment DPoP access token
5Client → managed environmentEnvironment DPoP access token plus fresh proofWebSocket ticket
6Client ↔ managed environmentTicketed WebSocket and direct API authorizationNormal T3 HTTP and WebSocket traffic; it does not traverse the relay
+
+
+
+ + + + diff --git a/src/components/ContextOwnershipLab.astro b/src/components/ContextOwnershipLab.astro new file mode 100644 index 0000000..f8702f6 --- /dev/null +++ b/src/components/ContextOwnershipLab.astro @@ -0,0 +1,268 @@ +--- +interface Props { id: string; } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ContextOwnershipLab requires a stable kebab-case id."); +} +const labId = `context-ownership-${id}`; +--- + +
+
+ Interactive ownership ledger +

Ask what survives before calling it memory

+

Select a teaching event. The ledger identifies authority, durable records, and the narrow recovery claim; it never simulates a model or invents a provider prompt.

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

Event 1 of 5 · live provider work begins

+

A provider receives a turn in its own native session

+

T3 constructs the visible current-turn payload. The provider-native session owns the accumulated conversation context and private compaction state.

+
+ +
+ + + + + + + + + +
RecordAuthoritative ownerThis eventAfter server restart
Accumulated native contextprovider-native sessionT3's explicit request enters provider-owned historyprovider-specific resume only
T3 thread historyT3 orchestrationmessage/activity projection may commitdurable product record reloads
Resume cursorprovider shape; T3 persists bindingadapter may return/update itsame adapter receives opaque cursor
Context telemetryprovider emits; T3 latest-selectsonly if a usable event arriveslatest retained activity may render
Client cache/draft/outboxclient surfacesurface-specific local statenot a provider prompt or server authority
+
+ +
+ Boundary statement +

T3 constructs and records the visible request around a turn. It does not own or serialize the provider's accumulated hidden conversation context.

+
+ +
+ context-current-turn-payloadprovider-session-contract +
+
+ +

Selected event: Send a turn.

+ + +
+ Static ownership and restart reference +
+ + + + + + + + + + +
QuestionAnswer at the pinned revision
Who owns exact model prompt context?T3 constructs the visible current-turn request; the selected provider's native session owns accumulated conversation context and hidden provider state.
What does T3 persist to attempt continuation?A provider/instance-bound runtime record with an opaque resume cursor, runtime/session metadata, plus separate thread projections.
What does compaction add to T3?A normalized context-compaction activity when an adapter reports a compacted provider thread; no generic T3 summary/prompt replacement is established.
What is the context meter?The newest valid provider-reported context-window activity available in the bounded thread snapshot, not a prompt archive, aggregate usage total, or cost ledger.
Is there universal long-term memory?No such cross-provider T3 subsystem is established by the inspected generic contracts/service paths. This is an audited inference, not a claim about native provider features.
What about local drafts/outbox/cache?Client-owned resilience/presentation state. It is deliberately deferred to Chapter 33 and cannot replace provider-session recovery.
+
+
+
+ + + + diff --git a/src/components/DecisionGrid.astro b/src/components/DecisionGrid.astro new file mode 100644 index 0000000..6cc393b --- /dev/null +++ b/src/components/DecisionGrid.astro @@ -0,0 +1,16 @@ +--- +interface Decision { label: string; title: string; text: string; } +interface Props { items: Decision[]; } +const { items } = Astro.props; +--- + +
+ {items.map((item) => ( +
+ {item.label} +

{item.title}

+

{item.text}

+
+ ))} +
+ diff --git a/src/components/DecisionLedgerLab.astro b/src/components/DecisionLedgerLab.astro new file mode 100644 index 0000000..d5d88a9 --- /dev/null +++ b/src/components/DecisionLedgerLab.astro @@ -0,0 +1,352 @@ +--- +interface Props { + id?: string; +} + +const { id = "architecture-decision-ledger" } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("DecisionLedgerLab requires a stable kebab-case id."); +} + +const decisions = [ + { + category: "domain", + classification: "Shipped", + title: "Server authority", + pressure: "Remote clients must control one workspace without becoming competing owners of provider processes, Git, terminals, or files.", + choice: "One environment server owns product authority; clients use authenticated RPC and projections.", + benefit: "Authorization, orchestration, workspace effects, and durable product history meet at one address.", + cost: "Availability and recovery depend on that environment; clients reconcile rather than write authoritatively.", + alternative: "Client-owned or peer-to-peer workspaces with a separate conflict and credential model.", + trigger: "Concurrent offline editing or multi-writer workspace authority becomes a core requirement.", + }, + { + category: "domain", + classification: "Shipped", + title: "Transactional event core", + pressure: "A command needs a durable acceptance boundary and a retry answer before external work completes.", + choice: "Decide, append events, fold projections, and write a receipt in one SQLite transaction.", + benefit: "Accepted intent and its receipt survive together; failed transactions leave no acceptance result.", + cost: "Files, provider calls, and later delivery remain outside the transaction; projections require maintenance.", + alternative: "Direct CRUD where replayable history and independently shaped read models are not valuable.", + trigger: "Immutable command history and projection diversity stop paying for their operational complexity.", + }, + { + category: "delivery", + classification: "Shipped", + title: "Hot post-commit reactors", + pressure: "Do not call a harness while the domain transaction could still roll back.", + choice: "Publish committed events to scoped, hot reactor workers; keep failures isolated from acceptance.", + benefit: "Rollback cannot have caused provider work, and one consumer failure does not undo durable history.", + cost: "A crash after commit can lose pending observation; sends and runtime ingestion are not a durable outbox.", + alternative: "Durable outbox with attempts, idempotency keys, and a policy for ambiguous external acceptance.", + trigger: "An accepted turn must eventually imply an attempted provider send across process loss.", + }, + { + category: "delivery", + classification: "Shipped", + title: "Snapshot + cursor", + pressure: "Clients need rebuildable read state and bounded resume without calling every page one global snapshot.", + choice: "Each projection advances its own cursor; composed snapshots use a safe watermark and subscriptions repair gaps.", + benefit: "Read models evolve independently and can rebuild from committed events.", + cost: "Several watermarks, order-sensitive projectors, replay limits, and client race guards must remain intelligible.", + alternative: "One authoritative document per thread with fewer projections and less independent fan-out.", + trigger: "Projection lag, cross-view joins, or replay operations exceed the current cursor model's operating envelope.", + }, + { + category: "integration", + classification: "Shipped", + title: "Provider adapters", + pressure: "Harnesses disagree about sessions, approvals, streams, context, and process ownership.", + choice: "A narrow adapter contract emits canonical runtime facts while ProviderService owns product policy and routing.", + benefit: "One product model preserves native provenance without inventing false provider parity.", + cost: "Adapter maintenance and capability differences remain explicit; no universal conformance proof exists.", + alternative: "A stricter generic protocol that may discard native features or push product policy into every driver.", + trigger: "Important native lifecycles require pervasive escape hatches that the canonical contract cannot express.", + }, + { + category: "connectivity", + classification: "Shipped", + title: "One reconnect owner", + pressure: "Several views and devices can observe an environment without independent retry loops or merged authorities.", + choice: "An environment-scoped supervisor owns generations and one active lease; caches synchronize separately.", + benefit: "Transport lifecycle has one owner while shell and thread views keep precise refresh boundaries.", + cost: "Leases, generations, and surface-specific reconciliation add client-runtime complexity.", + alternative: "A global connection manager that would need another way to preserve environment ownership.", + trigger: "The product adds a real cross-environment write model, not just combined presentation.", + }, + { + category: "connectivity", + classification: "Shipped", + title: "Durable mobile intent outbox", + pressure: "A user can send while the phone loses connectivity or foreground time.", + choice: "Optimistically enqueue, persist durably, then confirm and deliver through a serialized mobile outbox.", + benefit: "User intent can survive locally before the environment can accept it.", + cost: "Backoff, existence guards, confirmation, and delivery choices become a separate lifecycle.", + alternative: "Always-online direct send, sacrificing the local recovery contract.", + trigger: "Intent becomes multi-device collaborative work needing server-issued identities or all clients need the same queue.", + }, + { + category: "operations", + classification: "Shipped", + title: "Exact-version updates", + pressure: "A visible client must not request a server runtime that is unavailable or incompatible.", + choice: "Publish the exact CLI first; stage and preflight the exact server runtime before launcher activation.", + benefit: "An update target is reproducible and the managed-server trial has a defined rollback boundary.", + cost: "Release order, launcher compatibility, and platform-specific update state machines remain necessary.", + alternative: "Floating channel updates paired with a stronger compatibility negotiation protocol.", + trigger: "Compatibility proof becomes sufficient without requiring equal client and server versions.", + }, + { + category: "connectivity", + classification: "Shipped", + title: "Scope-driven background work", + pressure: "Mobile should remain useful in the background without keeping every environment permanently active.", + choice: "Reference-counted scopes retain declared per-environment background demand.", + benefit: "Continuation has an owner and can end when that owner releases its interest.", + cost: "Scope cleanup and platform scheduling constraints remain part of correctness; it is not a durable job queue.", + alternative: "An always-on global worker with higher resource use and leak risk.", + trigger: "The product needs OS-managed durable jobs with explicit completion receipts.", + }, +]; + +const payload = JSON.stringify(decisions).replaceAll("<", "\\u003c"); +const first = decisions[0]; +--- + +
+
+ Interactive decision ledger +

Trace the trade-off, then test its reversal trigger

+

Filter the ledger, select a decision, and move through its six-step path. No animation advances on its own.

+
+ +
+
+ Category +
+ + + + + + +
+
+ +
+ + +
+
+

{first.classification} {first.category}

+

{first.title}

+
+
    +
  1. 1Pressure

    {first.pressure}

  2. +
  3. 2Choice

    {first.choice}

  4. +
  5. 3Benefit

    {first.benefit}

  6. +
  7. 4Cost

    {first.cost}

  8. +
  9. 5Alternative

    {first.alternative}

  10. +
  11. 6Reversal trigger

    {first.trigger}

  12. +
+
+ +

1 of 6 · Pressure

+ +
+
+
+

+ Server authority selected. Step 1 of 6: Pressure. +

+
+ +
+ Complete static ledger +
+ + + + {decisions.map((decision) => ( + + + + + + + + + + ))} + +
DecisionPressureChoiceBenefitCostAlternativeReversal trigger
{decision.classification}{decision.title}{decision.pressure}{decision.choice}{decision.benefit}{decision.cost}{decision.alternative}{decision.trigger}
+
+
+ + +
+ + + + diff --git a/src/components/DeliveryGapLab.astro b/src/components/DeliveryGapLab.astro new file mode 100644 index 0000000..d18bcfb --- /dev/null +++ b/src/components/DeliveryGapLab.astro @@ -0,0 +1,357 @@ +--- +import { + getSourceReference, + sourceReferenceHref, + sourceReferenceLabel, +} from "../lib/sources"; + +interface Props { + id?: string; +} + +const { id = "post-commit-delivery-gap" } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("DeliveryGapLab requires a stable kebab-case id."); +} + +const phases = [ + { + label: "Before commit", + boundary: "The SQL transaction has not committed.", + durable: "No accepted intent is durable yet.", + volatile: "Only the command worker and transaction-local writes exist.", + external: "No provider work has started.", + retry: "After restart, the client can retry and the command can execute normally.", + sourceId: "engine-receipt-publication-boundary", + }, + { + label: "Transaction open", + boundary: "Events, projections, and the accepted receipt have been written inside one SQL transaction.", + durable: "A process crash rolls the uncommitted transaction back as a unit.", + volatile: "The proposed in-memory command model has not replaced the live model.", + external: "The event has not reached the hot bus.", + retry: "No accepted receipt survives, so the retry can decide and commit again.", + sourceId: "engine-receipt-publication-boundary", + }, + { + label: "Commit returned", + boundary: "The event, SQL projections, and accepted receipt are durable; publication has not happened yet.", + durable: "Intent and its command sequence survive restart.", + volatile: "No durable outbox row or per-reactor cursor records pending delivery.", + external: "The provider has not seen the intent.", + retry: "The same command id returns the stored sequence and does not republish, so that retry leaves this delivery gap unrepaired.", + sourceId: "engine-receipt-publication-boundary", + }, + { + label: "Hot publish", + boundary: "The committed event is offered to current PubSub subscribers.", + durable: "The domain event remains durable in SQLite.", + volatile: "Subscriber queues live only in this process; publication is not a recoverable job record.", + external: "A reactor may or may not have dequeued the event.", + retry: "A receipt hit still returns success without replaying reactor work.", + sourceId: "provider-reactor-hot-subscription", + }, + { + label: "Turn-start observed", + boundary: "For a turn-start event, the provider reactor handles the event and marks its derived turn key in a volatile dedupe cache.", + durable: "The original intent is durable, but reactor progress is not.", + volatile: "The dedupe mark is made before the provider effect and disappears on restart.", + external: "The adapter call has not necessarily begun.", + retry: "Within the same process a duplicate can be suppressed even after a later failure; after restart the hot event itself is gone.", + sourceId: "provider-reactor-forked-send", + }, + { + label: "Send forked", + boundary: "The serialized handler forks providerService.sendTurn and can return to its queue.", + durable: "There is still no durable side-effect attempt record.", + volatile: "The child fiber is outside the worker's outstanding counter.", + external: "Two provider sends can overlap even though handler bodies were dequeued serially.", + retry: "Closing the scope may interrupt the child; the worker drain does not prove that the send completed.", + sourceId: "provider-reactor-forked-send", + }, + { + label: "Provider accepted", + boundary: "The external harness may have accepted the turn before local binding/state persistence finishes.", + durable: "The original intent survives, but acceptance by the harness is outside SQLite's transaction.", + volatile: "Local knowledge of the provider result may still be only in a running fiber.", + external: "The turn can continue in the harness after the server loses its exact completion point.", + retry: "Recovery is ambiguous: blindly repeating can duplicate work, while doing nothing can strand it.", + sourceId: "provider-send-binding-order", + }, + { + label: "Runtime publish", + boundary: "ProviderService logs a canonical runtime event and then publishes it to another hot PubSub.", + durable: "The diagnostic log is best-effort and is not the orchestration recovery ledger.", + volatile: "Runtime ingestion has not necessarily consumed the event.", + external: "The harness action has occurred; its canonical result is in transit inside the process.", + retry: "A crash before ingestion loses this delivery; no durable runtime-event cursor replays it.", + sourceId: "provider-runtime-publish", + }, + { + label: "Buffer released", + boundary: "Runtime ingestion invalidates a buffered entry before dispatching its internal command.", + durable: "No new orchestration result is durable until that internal command commits.", + volatile: "Dispatch interruption or failure can lose the released batch; the removed value is not restored on this path.", + external: "The provider result already exists outside the domain model.", + retry: "Re-delivery is not generally idempotent: internal command ids include a random UUID suffix.", + sourceId: "runtime-ingestion-buffer-dispatch", + }, + { + label: "Result committed", + boundary: "The internal command re-enters the same engine and commits the provider result as domain events.", + durable: "The projected result and its receipt now survive restart.", + volatile: "Any new downstream reactor work again crosses the same commit-before-publish seam.", + external: "The durable model has caught up with the observed harness result.", + retry: "The internal command receipt protects only that generated command id; it does not repair an earlier missed hot event.", + sourceId: "engine-receipt-publication-boundary", + }, +]; + +const resolved = phases.map(({ sourceId, ...phase }) => { + const source = getSourceReference(sourceId); + return { + ...phase, + source: { + label: sourceReferenceLabel(source), + href: sourceReferenceHref(source), + }, + }; +}); +const payload = JSON.stringify(resolved).replaceAll("<", "\\u003c"); +const first = resolved[0]; +--- + +
+
+ Crash-timing lab +

Move the crash across the delivery seam

+

Each position means “the process disappears immediately after this boundary.”

+
+ +
+
+ + + +
+ +

+ Use the arrow keys to move the simulated crash through the ordered phases. +

+ +
+
    + {resolved.map((phase, index) => ( +
  1. + +
  2. + ))} +
+
+ +

+ Position 1 of {resolved.length}: {first.label} +

+
+
+ Crash after +

{first.label}

+
+

{first.boundary}

+
+
Durable
{first.durable}
+
Volatile
{first.volatile}
+
External
{first.external}
+
Retry
{first.retry}
+
+ {first.source.label} +
+
+ + +
+ All crash positions +
    + {resolved.map((phase) => ( +
  1. + {phase.label} +

    {phase.boundary}

    +
    +
    Durable
    {phase.durable}
    +
    Volatile
    {phase.volatile}
    +
    External
    {phase.external}
    +
    Retry
    {phase.retry}
    +
    + {phase.source.label} +
  2. + ))} +
+
+ +
+ + + + diff --git a/src/components/DesktopProcessLab.astro b/src/components/DesktopProcessLab.astro new file mode 100644 index 0000000..3c7a51d --- /dev/null +++ b/src/components/DesktopProcessLab.astro @@ -0,0 +1,104 @@ +--- +interface Props { id?: string; } +const { id = "desktop-process" } = Astro.props; +const labId = `desktop-process-${id}`; +const modes = { + local: { label: "Host-local primary", process: "Electron main → primary local server child on macOS, Linux, or Windows → renderer window", transport: "fd3 bootstrap; fd4 host telemetry; fd5 diagnostics-demand control; HTTP / WebSocket", authority: "Electron main selects the child configuration and owns native APIs; renderer receives only curated IPC.", boot: "Main resolves the primary configuration, starts the host-local child, and probes its HTTP endpoint.", ready: "The ready callback gives the primary URL to the window service; the renderer is then served from the desktop target.", shutdown: "The pool stops the primary with SIGTERM and grace; an unexpected exit may instead enter the instance restart loop." }, + wsl: { label: "Windows + WSL", process: "Electron main → either a WSL-only primary, or a Windows primary plus optional WSL secondary → renderer connections", transport: "A Windows host-local primary uses fd3/fd4/fd5. WSL receives bootstrap on stdin because wsl.exe drops forwarded extra descriptors.", authority: "The pool owns these local child instances. WSL is a distinct Linux environment, not a replacement for the SSH gateway.", boot: "WSL-only resolves the primary as WSL. Dual mode starts Windows primary first, then forks reconciliation for a distro-specific secondary on a distinct port.", ready: "A WSL-only primary opens the window after its probe. In dual mode, Windows primary opens it while the WSL secondary reaches readiness independently.", shutdown: "Unregistering a WSL secondary closes its child scope; application finalization stops every registered instance concurrently." }, + ssh: { label: "SSH gateway", process: "Electron main → SSH environment manager → remote t3 process / tunnel → renderer connection", transport: "Curated renderer IPC asks main to discover, ensure, bootstrap, or disconnect an SSH environment; the remote endpoint is reached through the SSH path.", authority: "SSH is a remote environment gateway owned by the desktop SSH service. It is not an entry in the local backend-process pool.", boot: "The renderer requests a target; main delegates to the SSH environment manager, which can launch or connect to the remote environment.", ready: "A remote descriptor, bearer bootstrap, and WebSocket token establish a normal environment connection; primary-child readiness is unrelated.", shutdown: "Disconnecting the SSH environment tears down the gateway path. It is distinct from stopping local pool children during app shutdown." }, +} as const; +type ModeKey = keyof typeof modes; +const stages = ["boot", "ready", "shutdown"] as const; +type StageKey = typeof stages[number]; +const initialMode: ModeKey = "local"; +const initialStage: StageKey = "boot"; +--- + +
+
Interactive process lab · Chapter 32

Choose a delivery path, then advance its lifecycle

The same renderer can observe different transports; native and process authority stays in Electron main.

+
+
Delivery path
{Object.entries(modes).map(([key, mode]) => )}
+
+
+

{modes[initialMode].label} · Boot

+
    {stages.map((stage, index) =>
  1. {index + 1}{stage === "boot" ? "Boot" : stage === "ready" ? "Readiness" : "Shutdown"}
  2. )}
+

Boot

{modes[initialMode].label}

{modes[initialMode][initialStage]}

Process
{modes[initialMode].process}
Transport
{modes[initialMode].transport}
Authority
{modes[initialMode].authority}
+
Static process map{Object.values(modes).map((mode) => )}
PathProcess / transportBoundary
{mode.label}{mode.process}
{mode.transport}
{mode.authority}
+ +
+ + + + diff --git a/src/components/EvidenceClaim.astro b/src/components/EvidenceClaim.astro new file mode 100644 index 0000000..fc54ea0 --- /dev/null +++ b/src/components/EvidenceClaim.astro @@ -0,0 +1,26 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Props { + kind: "verified" | "documented" | "inference" | "future"; + title?: string; + refs: string[]; +} +const { kind, title, refs } = Astro.props; +if (refs.length === 0) throw new Error("EvidenceClaim requires at least one source reference."); +const labels = { + verified: "Verified behavior", + documented: "Documented intent", + inference: "Inference", + future: "Future / proposed", +}; +const sources = refs.map(getSourceReference); +--- + + diff --git a/src/components/Figure.astro b/src/components/Figure.astro new file mode 100644 index 0000000..1caa68a --- /dev/null +++ b/src/components/Figure.astro @@ -0,0 +1,25 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Props { + number: string; + title: string; + hint?: string; + caption: string; + textEquivalent: string; + sources: string[]; +} +const { number, title, hint, caption, textEquivalent, sources } = Astro.props; +if (sources.length === 0) throw new Error(`Figure ${number} requires at least one source reference.`); +const sourceRefs = sources.map(getSourceReference); +--- + +
+
Figure {number} · {title}{hint && {hint}}
+
+
Text equivalent

{textEquivalent}

+
Figure {number}. {caption}
+
+ {sourceRefs.map((source) => {sourceReferenceLabel(source)})} +
+
diff --git a/src/components/FlowLab.astro b/src/components/FlowLab.astro new file mode 100644 index 0000000..74ec7be --- /dev/null +++ b/src/components/FlowLab.astro @@ -0,0 +1,256 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface FlowStep { + label: string; + title: string; + detail: string; + actor?: string; + sourceIds: string[]; + tone?: "client" | "transport" | "durable" | "runtime" | "side-effect" | "failure" | "neutral"; +} +interface Props { + id: string; + title: string; + prompt: string; + steps: FlowStep[]; +} +const { id, title, prompt, steps } = Astro.props; +if (steps.length < 2) throw new Error(`FlowLab '${title}' requires at least two steps.`); +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) throw new Error(`FlowLab '${title}' requires a stable kebab-case id.`); +const labId = `flow-${id}`; +const toneLabels = { + client: "Client state", + transport: "Transport boundary", + durable: "Durable state", + runtime: "Runtime work", + "side-effect": "External side effect", + failure: "Failure state", + neutral: "Flow state", +} as const; +const resolved = steps.map(({ sourceIds, ...step }) => ({ + ...step, + toneLabel: toneLabels[step.tone ?? "neutral"], + sources: sourceIds.map((id) => { + const source = getSourceReference(id); + return { label: sourceReferenceLabel(source), href: sourceReferenceHref(source) }; + }), +})); +const payload = JSON.stringify(resolved).replaceAll("<", "\\u003c"); +--- + +
+
+ Interactive flow +

{title}

+

{prompt}

+
+
+ + + + 1 / {steps.length} +
+
+
+ + +
    + {resolved.map((step, index) => ( +
  1. + +
  2. + ))} +
+
+
+

Step 1 of {steps.length}: {resolved[0].label}

+
+
{resolved[0].actor ?? "Flow step"}{resolved[0].toneLabel}{resolved[0].label}
+

{resolved[0].title}

+

{resolved[0].detail}

+
+ {resolved[0].sources.map((source) => {source.label})} +
+
+ +
    + {resolved.map((step, index) => ( +
  1. + {index + 1}. {step.label} · {step.title} ({step.toneLabel}) +

    {step.detail}

    + {step.sources.map((source) => {source.label})} +
  2. + ))} +
+
+ + diff --git a/src/components/LayerMap.astro b/src/components/LayerMap.astro new file mode 100644 index 0000000..081b54e --- /dev/null +++ b/src/components/LayerMap.astro @@ -0,0 +1,20 @@ +--- +interface Node { label: string; slug?: string; } +interface Layer { label: string; nodes: Node[]; boundary?: boolean; tone?: "client" | "transport" | "durable" | "runtime" | "external"; } +interface Props { layers: Layer[]; } +const { layers } = Astro.props; +const base = import.meta.env.BASE_URL.endsWith("/") ? import.meta.env.BASE_URL : `${import.meta.env.BASE_URL}/`; +--- + +
+ {layers.map((layer) => ( +
+
{layer.label}
+
+ {layer.nodes.map((node) => node.slug + ? {node.label} + : {node.label})} +
+
+ ))} +
diff --git a/src/components/Mermaid.astro b/src/components/Mermaid.astro new file mode 100644 index 0000000..a206c51 --- /dev/null +++ b/src/components/Mermaid.astro @@ -0,0 +1,140 @@ +--- +interface Props { id: string; chart: string; label: string; } +const { id, chart, label } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error(`Mermaid '${label}' requires a stable kebab-case id.`); +} +const explorerId = `diagram-${id}`; +--- + +
+
+
+
+ {label} + + Diagram loading +
+
+ +
+

+ Zoom with the controls, +/, or Ctrl/ + trackpad scroll. Enable Pan to drag, use two-finger scrolling, or use the arrow keys. 0 fits the diagram; Esc leaves Pan or expanded view. +

+
+
+ + +
+
+ {label} + +
+
+
+
+
+ + diff --git a/src/components/MobileContinuityLab.astro b/src/components/MobileContinuityLab.astro new file mode 100644 index 0000000..5332bd4 --- /dev/null +++ b/src/components/MobileContinuityLab.astro @@ -0,0 +1,329 @@ +--- +interface Props { id: string; } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("MobileContinuityLab requires a stable kebab-case id."); +} +const labId = `mobile-continuity-${id}`; +--- + +
+
+ Interactive continuity lab · Chapter 33 +

Protect intent before crossing a lifecycle boundary

+

Switch tracks and failure cases, then step through the exact guard that keeps an offline command or downloaded update from outrunning its durable state.

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

Outbox · offline creation

+

The local queue becomes visible before its file write settles

+

The immediate queued row is optimistic. Delivery cannot begin until the serialized mutation queue confirms that the atomic file write survived.

+
+ +
    + +
    +
    Guard in forceConfirm the exact queued object after its durable write
    +
    Authority after this stepmobile outbox file; server has received nothing
    +
    +
    + +

    Offline command outbox. Step 1 of 7.

    +
    + + +
    + Static mobile continuity ledger +
    + + + + + + + +
    BoundaryDurable prerequisiteSafety decisionRecovery
    Offline turn dispatchExact queued message confirmed after atomic-file writeWait for a connected environment; creations also wait for a live shellTransient/interrupted failures back off while the file remains
    Creation replayLive shell establishes whether the deterministic thread id already existsIf it exists, remove the queued creation without sending it againA failed cleanup can be retried without duplicating the thread
    Automatic OTA restartComposer drafts and outbox writes flushRestart only while truly backgrounded and no foreground handoff is activeFailed flush or unsafe handoff keeps the runtime alive and rearms the next background
    +
    +
    +
    + + + + diff --git a/src/components/OpenCodeRecoveryLab.astro b/src/components/OpenCodeRecoveryLab.astro new file mode 100644 index 0000000..9230521 --- /dev/null +++ b/src/components/OpenCodeRecoveryLab.astro @@ -0,0 +1,41 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("OpenCodeRecoveryLab requires a stable kebab-case id."); +} +const labId = `opencode-recovery-${id}`; + +const branches = [ + { label: "No valid cursor", result: "Create", detail: "An absent, malformed, or wrong-version cursor supplies no recognized native session id, so the adapter creates a new OpenCode session without a session.get probe.", durable: "The resulting id is returned as a current-version resume cursor for the outer provider-binding persistence path." }, + { label: "Confirmed missing", result: "Create", detail: "session.get reports a structured 404 / NotFoundError, so the stored native session is gone and a fresh session is permitted.", durable: "This is a native-context loss that is explicitly recognized, not a successful replay of old hot events." }, + { label: "Transient probe error", result: "Fail", detail: "Authentication, transport, server, or non-404 failures propagate instead of silently creating an empty conversation.", durable: "No new cursor is minted; the existing durable binding remains the recovery clue for a later retry." }, + { label: "Same directory", result: "Adopt", detail: "The existing session is reused after lexical/real-path comparison and its permission rules are reasserted for the current runtime mode.", durable: "The existing session id remains the cursor; upstream history remains provider-owned." }, + { label: "Different directory", result: "Fork", detail: "The adapter asks OpenCode to fork the adopted session into the requested cwd, preserving upstream conversation history, then updates permissions.", durable: "The new fork id replaces the returned resume cursor; T3 is not copying native history into its own event log." }, +]; +const payload = JSON.stringify(branches).replaceAll("<", "\\u003c"); +--- + +
    +
    Interactive recovery decision

    What does an OpenCode resume cursor actually do?

    Choose an observed condition; the outcome distinguishes provider-native recovery from durable product binding.

    +
    +
    +

    Selected {branches[0].label}: {branches[0].result}

    +
    {branches[0].result}

    {branches[0].label}

    Adapter decision
    {branches[0].detail}
    Durability boundary
    {branches[0].durable}
    +
    +
    All resume outcomes
      {branches.map((branch) =>
    1. {branch.label} → {branch.result}

      {branch.detail}

      {branch.durable}

    2. )}
    + +
    + + diff --git a/src/components/PermissionFlowLab.astro b/src/components/PermissionFlowLab.astro new file mode 100644 index 0000000..82a0500 --- /dev/null +++ b/src/components/PermissionFlowLab.astro @@ -0,0 +1,90 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) throw new Error("PermissionFlowLab requires a stable kebab-case id."); + +const modes = ["approval-required", "auto-accept-edits", "auto", "full-access"] as const; +const providers = { + codex: { label: "Codex", modes: { "approval-required": "untrusted · read-only · user reviewer", "auto-accept-edits": "on-request · workspace-write · user reviewer", auto: "on-request · workspace-write · auto_review", "full-access": "never · danger-full-access · user reviewer" }, approval: "native approval request → decision", input: "native tool request → answer map" }, + claude: { label: "Claude", modes: { "approval-required": "no explicit base-map entry", "auto-accept-edits": "acceptEdits", auto: "auto", "full-access": "bypassPermissions + allowDangerouslySkipPermissions; AskUserQuestion still routes to structured input" }, approval: "canUseTool callback → decision", input: "AskUserQuestion → answer map" }, + cursor: { label: "Cursor (ACP)", modes: { "approval-required": "prefer native approval-mode alias; permission callbacks still wait", "auto-accept-edits": "prefer implement-mode alias; permission callbacks still wait", auto: "prefer implement-mode alias; permission callbacks still wait", "full-access": "prefer implement-mode alias; auto-select offered allow option or wait" }, approval: "session/request_permission → selected/cancelled", input: "Cursor question extension → answer map" }, + grok: { label: "Grok (ACP)", modes: { "approval-required": "no session-mode mapping; raised callbacks wait", "auto-accept-edits": "no session-mode mapping; raised callbacks wait", auto: "no session-mode mapping; raised callbacks wait", "full-access": "auto-select offered allow-always/allow-once; otherwise wait" }, approval: "session/request_permission → selected/cancelled", input: "Grok question extension → answer map" }, + opencode: { label: "OpenCode", modes: { "approval-required": "broad operations ask; question is allowed", "auto-accept-edits": "broad operations ask; question is allowed", auto: "broad operations ask; question is allowed", "full-access": "allow all permission rules" }, approval: "permission.asked → permission.reply", input: "question.asked → question.reply" }, +} as const; +const initial = providers.codex; +const labId = `permission-flow-${id}`; +const payload = JSON.stringify({ providers, modes }).replaceAll("<", "\\u003c"); +--- + +
    +
    Interactive request router

    Trace a mode and a request without flattening provider behavior

    Choose a provider, stored T3 mode, and request shape. The panel distinguishes durable response intent from a live native reply.

    +
    + +
    Stored T3 mode
    {modes.map((mode, index) => )}
    +
    Request shape
    +
    +

    Codex, approval-required, approval.

    +
    +
    {initial.label}approval-required
    +

    Native starting behavior: {initial.modes["approval-required"]}

    +
      +
    1. 1Provider emits{initial.approval}
    2. +
    3. 2Runtime ingestioncanonical request activity; pauses the active assistant segment
    4. +
    5. 3Client commandthread.approval.respond records response intent
    6. +
    7. 4Reactor and serviceresolve the bound session and call the adapter
    8. +
    9. 5Provider replynative resolution later returns as activity
    10. +
    + +
    +
    Static provider × mode matrix
    {modes.map((mode) => )}{Object.values(providers).map((provider) => {modes.map((mode) => )})}
    Provider{mode}
    {provider.label}{provider.modes[mode]}
    + + +
    + + + + diff --git a/src/components/ProjectDiscoveryLab.astro b/src/components/ProjectDiscoveryLab.astro new file mode 100644 index 0000000..55b3d37 --- /dev/null +++ b/src/components/ProjectDiscoveryLab.astro @@ -0,0 +1,66 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ProjectDiscoveryLab requires a stable kebab-case id."); +} +const labId = `project-discovery-${id}`; +const cases = [ + { label: "Existing directory, valid t3.json", root: "Normalize the supplied path and verify it is a directory.", project: "A project.create command can claim this normalized root if no active project already uses it.", config: "Decode t3.json at that root; its defaultThreadEnvMode can participate only after a project-level override is absent.", identity: "If Git has a fetch remote, resolve a canonical repository identity for projection and cross-environment grouping." }, + { label: "Missing directory, creation not requested", root: "Normalization reports that the workspace root does not exist.", project: "No project is created because the command cannot pass root validation.", config: "There is no root at which to load t3.json.", identity: "No repository identity is derived." }, + { label: "Missing directory, creation requested", root: "The root service creates the directory recursively, verifies it, then returns the normalized path.", project: "The create command still must satisfy the one-active-project-per-normalized-root invariant.", config: "A missing t3.json is an ordinary absence, not an error.", identity: "A newly created empty directory has no Git-remote identity until it becomes a qualifying repository." }, + { label: "Existing regular file", root: "Normalization rejects it: a workspace root must be a directory.", project: "No project projection changes.", config: "t3.json is never consulted as project configuration for this invalid root.", identity: "No identity is derived." }, + { label: "Directory with invalid t3.json", root: "The workspace root itself remains valid.", project: "The durable project record can still exist at the root.", config: "The best-effort loader logs the read/decode problem and presents no usable file configuration, so defaults fall through.", identity: "Repository identity is independent of t3.json validity." }, +]; +const payload = JSON.stringify(cases).replaceAll("<", "\\u003c"); +--- + +
    +
    Filesystem decision explainer

    What becomes a T3 project?

    Choose one observed filesystem state. The four answers keep root validation, durable projection, checked-in configuration, and Git identity separate.

    +
    + + +
    +

    Selected: {cases[0].label}

    +
    +
    1. Root
    {cases[0].root}
    +
    2. Project
    {cases[0].project}
    +
    3. t3.json
    {cases[0].config}
    +
    4. Identity
    {cases[0].identity}
    +
    +
    All filesystem outcomes
      {cases.map((item) =>
    1. {item.label}

      Root: {item.root}

      Project: {item.project}

      t3.json: {item.config}

      Identity: {item.identity}

    2. )}
    + + +
    + + + + diff --git a/src/components/ProjectionCursorLab.astro b/src/components/ProjectionCursorLab.astro new file mode 100644 index 0000000..9e9403d --- /dev/null +++ b/src/components/ProjectionCursorLab.astro @@ -0,0 +1,223 @@ +--- +const lanes = [ + { id: "projects", label: "Projects", table: "projection_projects", role: "project fields", required: true }, + { id: "messages", label: "Messages", table: "projection_thread_messages", role: "message bodies", required: true }, + { id: "plans", label: "Plans", table: "projection_thread_proposed_plans", role: "proposed plans", required: true }, + { id: "activities", label: "Activities", table: "projection_thread_activities", role: "activity log", required: true }, + { id: "sessions", label: "Sessions", table: "projection_thread_sessions", role: "runtime session", required: true }, + { id: "turns", label: "Turns", table: "projection_turns", role: "turns + checkpoint metadata", required: false }, + { id: "checkpoints", label: "Checkpoints", table: "no table", role: "registered no-op", required: true }, + { id: "approvals", label: "Approvals", table: "projection_pending_approvals", role: "approval state", required: false }, + { id: "threads", label: "Threads", table: "projection_threads", role: "shell summary (last)", required: true }, +] as const; + +const events = [ + "project.created", + "thread.created", + "thread.message-sent", +] as const; +--- + +
    +
    + Interactive fold lab +

    One event stream, nine projector cursors

    +

    + Step through three durable events. Every registered projector is considered in + order, including no-ops; the safe snapshot watermark is the slowest required + cursor, not the event-store head. +

    +
    + +
    + + + + +
    + +

    + No sample event has been folded. All projector cursors are at 0. +

    + +
    +
    Event-store head0
    +
    Safe snapshot sequence0
    +
    Current eventnone
    +
    + +
    + Normal command control flow + outer SQL begins → append → projector SQL + cursor → optional filesystem cleanup → accepted receipt → outer commit + Cleanup runs before commit but is not enlisted in SQL rollback. +
    + +
    +
      + {lanes.map((lane, index) => ( +
    1. + +
      + {lane.label} + + {lane.table} · {lane.role} · + {lane.required ? " snapshot-required" : " auxiliary cursor"} + +
      + 0 +
    2. + ))} +
    +
    + +
    + Start with the cursor, not a promise of eventual consistency. +

    On a normal command, all nine folds run sequentially before the command transaction commits.

    +
    + + + +
    +

    Static reference: the normal third event leaves every required cursor at 3, so the safe snapshot sequence is 3.

    +

    1,001-event bootstrap case: the default total read limit stops every lane at 1,000 while the event-store head is 1,001.

    + + + + {lanes.map((lane, index) => )} + +
    OrderProjectorRead sideWatermark roleAt sequence 3
    {index + 1}{lane.label}{lane.table}{lane.required ? "required" : "auxiliary"}3
    +
    + + +
    + + + + diff --git a/src/components/ProviderRoutingLab.astro b/src/components/ProviderRoutingLab.astro new file mode 100644 index 0000000..02c4a88 --- /dev/null +++ b/src/components/ProviderRoutingLab.astro @@ -0,0 +1,216 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ProviderRoutingLab requires a stable kebab-case id."); +} + +const stages = [ + { label: "Settings", short: "settings", question: "What was authored?" }, + { label: "Hydration", short: "merge", question: "Does explicit or legacy config win?" }, + { label: "Construction", short: "scope", question: "Can the driver decode and create it?" }, + { label: "Discovery", short: "view", question: "Is it live or only a shadow snapshot?" }, + { label: "Binding", short: "route", question: "Which exact instance does the thread name?" }, + { label: "Operation", short: "recover", question: "Can the current adapter adopt or resume?" }, +] as const; + +const scenarios = { + legacy: { + label: "Legacy Codex default", + authored: "providers.codex exists; providerInstances.codex is absent.", + hydration: "Synthesize the default instance id `codex` from the legacy typed blob.", + construction: "Registered Codex driver decodes config and creates one scoped live instance.", + discovery: "UI snapshot and routable adapter both use instanceId `codex`.", + binding: "Thread binding names `codex`; driver kind verifies `codex`.", + operation: "Exact adapter lookup succeeds; an active session routes immediately.", + outcome: "Routable default instance", + secret: "Only marked sensitive environment values are split/redacted.", + tone: "success", + sourceIds: ["provider-instance-hydration", "provider-driver-instance-spi", "provider-adapter-registry-live"], + }, + explicit: { + label: "Explicit work account", + authored: "providerInstances.codex_work uses driver `codex`; a legacy default may coexist.", + hydration: "Keep `codex_work` exactly as authored. It does not overwrite the default `codex` key.", + construction: "The same driver factory creates independent adapter, snapshot, and text-generation closures.", + discovery: "Both instances can expose different health, model, and auth observations.", + binding: "A work thread persists `providerInstanceId: codex_work`.", + operation: "Lookup cannot fall back to `codex`; it routes the work instance only.", + outcome: "Two same-driver instances stay isolated", + secret: "Sensitive per-instance environment can point each process at different homes or credentials.", + tone: "success", + sourceIds: ["provider-instance-identity-contract", "provider-instance-registry-tests", "provider-service-start-session"], + }, + override: { + label: "Explicit default overrides legacy", + authored: "Both providers.codex and providerInstances.codex are present.", + hydration: "The explicit `providerInstances.codex` envelope wins; no legacy copy is synthesized for that id.", + construction: "Decode the explicit opaque config and compute enabled state; nested false dominates.", + discovery: "Exactly one default-id snapshot is produced from the explicit entry.", + binding: "Existing default bindings still name `codex`, now resolving the replacement configuration.", + operation: "If the object changed, the old scope closes first; later work may need cursor recovery.", + outcome: "Explicit configuration wins, without live-session handoff", + secret: "A redacted sensitive patch preserves the prior secret rather than writing an empty value.", + tone: "warning", + sourceIds: ["provider-instance-hydration", "provider-instance-enabled-precedence", "provider-instance-registry-reconcile"], + }, + shadow: { + label: "Unknown fork driver", + authored: "providerInstances.research names valid slug `forkAgent`, absent from this build.", + hydration: "The open driver slug parses successfully and remains in the effective map.", + construction: "No registered driver exists, so construction yields an unavailable shadow.", + discovery: "The UI sees disabled/error/unavailable with its exact reason.", + binding: "A persisted binding can still name `research`, but no live adapter is listed.", + operation: "getByInstance fails; the service does not silently choose another account or driver.", + outcome: "Visible configuration, intentionally unroutable", + secret: "Unknown opaque config is preserved; the contracts layer does not attempt driver-specific decoding.", + tone: "failure", + sourceIds: ["provider-instance-identity-contract", "provider-instance-build-shadow", "provider-unavailable-shadow"], + }, + rebuilt: { + label: "Changed instance with cursor", + authored: "codex_work config changes while a thread binding and resume cursor remain persisted.", + hydration: "The same instance id now carries a different entry.", + construction: "Close the old child scope before creating the replacement instance and stream.", + discovery: "Registries re-pull the replacement object after the change tick.", + binding: "SQLite still maps the thread to codex_work and retains opaque resume data.", + operation: "No active replacement session: an eligible operation calls startSession with saved cursor/mode/cwd/model.", + outcome: "Lazy resume attempt; not zero-downtime migration", + secret: "Changed sensitive values are materialized before the new driver scope is created.", + tone: "warning", + sourceIds: ["provider-instance-registry-reconcile", "provider-registry-live-sync", "provider-service-session-recovery"], + }, + stranded: { + label: "Removed instance binding", + authored: "The thread still names codex_work, but settings removed that instance.", + hydration: "codex_work disappears from the effective map.", + construction: "The old child scope closes and no replacement is created.", + discovery: "The snapshot is pruned and live adapter lookup excludes the id.", + binding: "The durable thread binding is not automatically reassigned or deleted.", + operation: "Exact route lookup fails; another Codex instance cannot claim the thread implicitly.", + outcome: "Durable binding stranded until explicit repair/configuration", + secret: "Removing a sensitive environment entry also removes its named secret through settings logic.", + tone: "failure", + sourceIds: ["provider-instance-registry-reconcile", "provider-adapter-registry-live", "provider-service-session-recovery"], + }, + nocursor: { + label: "Live instance, no resume state", + authored: "The configured instance is healthy; the thread binding exists after its live session was lost.", + hydration: "No settings change is required.", + construction: "The current instance and adapter are live.", + discovery: "Health does not imply ownership of this thread's native session.", + binding: "The route is exact but its resume cursor is null/absent.", + operation: "Recovery-capable operations return validation failure instead of starting an unrelated fresh conversation.", + outcome: "Routable instance, unrecoverable conversation", + secret: "Credentials may be healthy and still cannot reconstruct missing provider continuation state.", + tone: "failure", + sourceIds: ["provider-service-session-recovery", "provider-session-directory"], + }, + opencode: { + label: "External OpenCode password", + authored: "An external serverUrl and serverPassword live in the OpenCode config blob.", + hydration: "The explicit config is decoded by the OpenCode driver.", + construction: "No local server scope is owned for an external URL; the client uses supplied Basic auth.", + discovery: "Connection/auth health belongs to this instance snapshot.", + binding: "Threads still route by instance id, never by server URL or password.", + operation: "The adapter calls the external server for that configured instance.", + outcome: "Routable external instance with a plaintext-settings exception", + secret: "serverPassword is documented and tested as plaintext in settings; password UI styling is not encryption.", + tone: "warning", + sourceIds: ["opencode-password-settings", "opencode-password-persistence-test", "opencode-external-basic-auth"], + }, +} as const; + +const resolved = Object.fromEntries(Object.entries(scenarios).map(([key, scenario]) => [key, { + ...scenario, + sources: scenario.sourceIds.map((sourceId) => { const source = getSourceReference(sourceId); return { href: sourceReferenceHref(source), label: sourceReferenceLabel(source) }; }), +}])); +const initial = resolved.legacy; +const labId = `provider-routing-${id}`; +const payload = JSON.stringify({ stages, scenarios: resolved }).replaceAll("<", "\\u003c"); +--- + +
    +
    Interactive fleet router

    Which configured runtime receives the thread?

    Walk from authored settings to one exact route. Discovery visibility, live behavior, and resume eligibility are different checks.

    + +
    +
    + + +
    +
    + + +

    {initial.label}; stage 1 of {stages.length}: {stages[0].label}. {initial.outcome}.

    + +
    +
    {stages[0].question}

    {stages[0].label}

    {initial.outcome}
    +

    {initial.authored}

    +
    +
    Authored

    {initial.authored}

    Effective map

    {initial.hydration}

    +
    Live construction

    {initial.construction}

    Discovery

    {initial.discovery}

    +
    Durable binding

    {initial.binding}

    Operation result

    {initial.operation}

    +
    + +
    {initial.sources.map((source) => {source.label})}
    +
    +
    + +
    Static fleet-routing matrix
    {Object.values(resolved).map((scenario) => )}
    ScenarioHydration / constructionBinding / operationOutcome and secret boundary
    {scenario.label}{scenario.hydration} {scenario.construction}{scenario.binding} {scenario.operation}{scenario.outcome} {scenario.secret}
    + + +
    + + + + diff --git a/src/components/ReachabilityRecoveryLab.astro b/src/components/ReachabilityRecoveryLab.astro new file mode 100644 index 0000000..6252ce9 --- /dev/null +++ b/src/components/ReachabilityRecoveryLab.astro @@ -0,0 +1,176 @@ +--- +interface Props { id: string; } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ReachabilityRecoveryLab requires a stable kebab-case id."); +} +const labId = `reachability-recovery-${id}`; +--- + +
    +
    + Interactive boundary lab · Chapter 36 +

    A signal can wake recovery; it cannot replace synchronization

    +

    Choose a track and a deliberate event. The ledger shows which owner acts, what may be inferred, and the next authoritative read.

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

    Connection supervision

    +

    One environment lease has closed

    +

    The environment-scoped supervisor clears its old session, records a new generation only after establishment, and owns any retry.

    + +
    +
    Owner
    Environment supervisor for this environment
    +
    Signal means
    The active RPC lease is no longer usable.
    +
    Do not infer
    That shell or thread projections are current.
    +
    Authoritative next step
    Obtain a replacement session, then refresh/subscribe the scoped projections.
    +
    +
    +

    Connection supervision: session closes.

    +
    + + +
    + Static recovery ledger +
    + + + + + + + + + + +
    TrackEventOwnerSafe conclusionRequired follow-up
    ConnectionSocket closesOne environment supervisorThe old lease is unusable; retry policy belongs to the supervisor.A replacement session changes generation; shell and thread synchronize independently.
    ConnectionDevice goes offlineOne environment supervisorRelease the active lease and wait for an external signal; do not spend retry attempts.Reconnect only after online/wakeup input permits it.
    ConnectionForeground wakeupOne environment supervisorA healthy lease can be probed instead of discarded.A failed probe leads into the same owned recovery path.
    NotificationApproval push arrivesMobile navigation and the selected environment stateThe notification names a route-worthy event, not a thread snapshot.Navigate, connect if needed, then reconcile shell/thread state from the environment.
    NotificationRelay registration is acceptedRelay/device-registration boundaryThe relay can replay its aggregate; a local permission alone was never delivery proof.Use normal synchronization to repair state and remove stale UI assumptions.
    NotificationAPNs delivery is delayed or absentNormal connection and synchronization pathThere is no promised notification receipt or durable state transfer.The app later converges through its environment supervisor and projections.
    +
    +
    +
    + + + + diff --git a/src/components/ReceiptWindowLab.astro b/src/components/ReceiptWindowLab.astro new file mode 100644 index 0000000..016c80a --- /dev/null +++ b/src/components/ReceiptWindowLab.astro @@ -0,0 +1,595 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Props { + id: string; +} + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ReceiptWindowLab requires a stable kebab-case id."); +} + +const sourceIds = [ + "command-receipt-schema", + "command-receipt-handling", + "engine-rejected-receipt", + "engine-commit-publication", + "turn-atomic-batch", + "hot-reactor-no-replay", + "command-commit-acknowledgement", + "provider-turn-reactor", +]; +const sources = Object.fromEntries(sourceIds.map((sourceId) => { + const source = getSourceReference(sourceId); + return [sourceId, { label: sourceReferenceLabel(source), href: sourceReferenceHref(source) }]; +})); +const payload = JSON.stringify({ sources }).replaceAll("<", "\\u003c"); +const labId = `receipt-window-${id}`; +--- + +
    +
    + Interactive retry laboratory +

    What does this command id remember?

    +

    Configure the durable receipt and the original delivery window, then replay the id. The result separates SQL deduplication from hot delivery and provider execution.

    +
    + +
    + + + + +
    + +

    The delivery window describes the accepted attempt whose receipt is being replayed.

    + + +
      +
    1. 1Accepted SQLcomplete
    2. +
    3. 2Hot publishcomplete
    4. +
    5. 3RPC responsereceived
    6. +
    7. 4Providernot proven
    8. +
    + +

    + Accepted receipt, same aggregate, same intent: return the stored sequence without new events. Provider execution is not proven. +

    + +
    +
    +
    Engine decision

    Replay the accepted sequence

    + deduplicated +
    +

    The engine finds the accepted row before the decider and returns its stored resultSequence.

    +
    +
    Durable record
    The original event batch, projections, and accepted receipt remain committed.
    +
    Events and delivery
    The retry appends zero events and republishes zero events.
    +
    Client result
    The retry receives the stored last sequence.
    +
    Payload binding
    The receipt checks aggregate kind and id, not command type or a payload fingerprint.
    +
    Provider meaning
    The sequence acknowledges durable intent only; provider acceptance or completion is outside the receipt.
    +
    +
    + {sourceIds.slice(0, 2).map((sourceId) => {sources[sourceId].label})} +
    +
    + +
    + Static receipt and crash-window matrices +
    +

    Receipt decision matrix

    +
    + + + + + + + + + +
    Stored rowRetry targetDecisionDoes body matter?
    acceptedsame aggregatereturn stored sequence; no decide, append, or republishno type or payload comparison
    accepteddifferent aggregatecommand-id conflictconflict occurs before status replay
    rejectedsame aggregatereturn previously-rejected error; no re-evaluationno type or payload comparison
    rejecteddifferent aggregatecommand-id conflictconflict occurs first
    noneany aggregatedecide the normalized command nowthe supplied body is the new candidate
    +
    +
    +
    +

    Accepted-attempt delivery windows

    +
    + + + + + + + + + +
    WindowDurable SQLHot deliverySame-id retry
    ordinary response receivedcomplete batch + receiptall events offeredstored sequence
    hard crash after commitcomplete batch + receiptnone in failed processstored sequence; no republish
    hard crash during publicationcomplete batch + receiptsome prefix; exact prefix depends on the crash pointstored sequence; no missing-suffix replay
    response lostcomplete batch + receiptall events offeredstored sequence
    provider later failscomplete batch + receiptall events offeredstored sequence; no new provider request
    +
    +
    +
    + + +
    + + + + diff --git a/src/components/RecoveryMatrixLab.astro b/src/components/RecoveryMatrixLab.astro new file mode 100644 index 0000000..593ef80 --- /dev/null +++ b/src/components/RecoveryMatrixLab.astro @@ -0,0 +1,240 @@ +--- +import { + getSourceReference, + sourceReferenceHref, + sourceReferenceLabel, +} from "../lib/sources"; + +interface Props { + id?: string; +} + +const { id = "cross-store-recovery" } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("RecoveryMatrixLab requires a stable kebab-case id."); +} + +const rows = [ + { + label: "Service update", + pair: "SQLite + WAL + SHM", + order: "Persist pending update → stop old child → stage and sync triplet backup → run trial; marker is written only before rollback restore", + residue: "Pending service state identifies the unfinished trial. A restore marker inside the backup identifies an interrupted rollback restore.", + startup: "Conditional. Pending state resumes the trial when no restore marker exists; a restore marker makes startup retry the rollback restoration first.", + boundary: "Strongest recovery path, but it covers the SQLite triplet only—not attachments, settings, logs, or Git refs.", + verdict: "Journaled", + tone: "safe", + sourceIds: ["service-update-recovery"], + }, + { + label: "Settings update", + pair: "settings.json + secret files", + order: "Write/remove secrets → normalize redacted settings → rename settings JSON → update cache", + residue: "A failed JSON write can leave a new orphan secret or a redacted pointer whose old secret was removed.", + startup: "No pair reconciler. Missing or malformed settings fall back to defaults; missing secret materializes as empty.", + boundary: "Each file operation has local safeguards, but the group is not one transaction.", + verdict: "Saga gap", + tone: "warning", + sourceIds: ["settings-load-fallbacks", "settings-secret-order", "settings-atomic-write", "secret-store-atomic-boundary"], + }, + { + label: "Attachments", + pair: "image files + SQL references", + order: "Normalize and write file before dispatch; projector commits cursor before post-transaction cleanup", + residue: "Rejected/retried commands can orphan files; failed cleanup after cursor advance is not retried from that event; a delete can precede a later outer rollback.", + startup: "The pinned production-code audit found no repository-wide orphan collector. Cursor advancement can prevent the same cleanup from replaying.", + boundary: "Path validation is strong; lifecycle atomicity across filesystem and SQLite is not.", + verdict: "Unreconciled", + tone: "failure", + sourceIds: ["attachment-path-safety", "normalizer-staging-boundary", "attachment-projection-cleanup", "engine-commit-publication"], + }, + { + label: "Terminal history", + pair: "memory/PTY + history file", + order: "Update memory → coalesce for 40 ms → overwrite history; explicit close persists and drains", + residue: "A hard crash can lose the coalescing window. Direct overwrite creates partial-write risk; saved text cannot reconstruct PTY process state.", + startup: "The saved text is loaded on first open, then a new PTY starts. General scope cleanup does not prove a history drain.", + boundary: "Useful continuity of text, not a transactional terminal replay.", + verdict: "Best effort", + tone: "warning", + sourceIds: ["terminal-history-defaults", "terminal-history-persistence", "terminal-output-persistence-order", "terminal-explicit-close", "terminal-scope-finalizer", "terminal-lazy-history-open"], + }, + { + label: "Checkpoint", + pair: "hidden Git ref + SQL checkpoint metadata", + order: "Build isolated-index tree → update hidden ref → dispatch checkpoint metadata", + residue: "A crash can orphan the ref. Revert mutates workspace, provider state, and newer refs before recording completion.", + startup: "The pinned production-code audit found no ref/SQL reconciler. Capture also collapses staged and unstaged content; restore resets the index toward HEAD.", + boundary: "File content is recoverable on a successful restore, but staging boundaries and cross-store saga progress are not.", + verdict: "Unjournaled", + tone: "failure", + sourceIds: ["checkpoint-git-capture-restore", "checkpoint-capture-dispatch-order", "checkpoint-revert-saga"], + }, +]; + +const resolved = rows.map(({ sourceIds, ...row }) => ({ + ...row, + sources: sourceIds.map((sourceId) => { + const source = getSourceReference(sourceId); + return { label: sourceReferenceLabel(source), href: sourceReferenceHref(source) }; + }), +})); +const payload = JSON.stringify(resolved).replaceAll("<", "\\u003c"); +const first = resolved[0]; +--- + +
    +
    + Recovery matrix +

    Select a persistence boundary

    +

    The table stays complete; selection expands one crash story without hiding the comparison.

    +
    + +
    + + + + + + {resolved.map((row, index) => ( + + + + + + + ))} + +
    BoundaryWrite orderCrash residueStartup repair
    + + {row.order}{row.residue}{row.startup}
    +
    + +

    + Selected {first.label}: {first.verdict} +

    +
    +
    {first.verdict}

    {first.label} · {first.pair}

    +

    {first.boundary}

    + +
    + + +
    + + + + diff --git a/src/components/ReleaseOperationsLab.astro b/src/components/ReleaseOperationsLab.astro new file mode 100644 index 0000000..af3e1e3 --- /dev/null +++ b/src/components/ReleaseOperationsLab.astro @@ -0,0 +1,286 @@ +--- +interface Props { id: string; } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("ReleaseOperationsLab requires a stable kebab-case id."); +} +const labId = `release-operations-${id}`; +--- + +
    +
    + Interactive operations lab · Chapter 38 +

    One release, three replacement boundaries, four signal lanes

    +

    Choose a lens, select a teaching case, and move the marker yourself. The model shows the point at which each owner may proceed—and the boundary that keeps it from doing so.

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

    Release graph · stable exact-version path

    +

    Publishing the CLI unblocks every client that can request a server update

    +

    The graph does not update a machine. It only makes a matching, exact runtime available before a client can advertise itself.

    +
    +
    +
    +
    Guard
    publish `t3@V` before a client at V is exposed
    +
    Owner now
    release workflow
    +
    Failure boundary
    a client cannot target a package that has not published
    +
    +
    + +

    Release graph. Step 1.

    +
    + + +
    + Static operations ledger +
    + + + + + + + + + +
    FlowProceed only afterOwnerIf it cannot proceed
    Exact server update`t3@<version>` publishes before client releaserelease workflow, then service launcherclient version cannot be offered before the matching runtime exists
    Desktop applicationuser chooses download and then install; pooled backends stopdesktop updaterstate records an error or remains downloaded for a later install
    Boot-service serverexact runtime preflight, SQLite snapshot, target reports preparedstable launcherrollback restores snapshot and selects the old runtime
    Mobile OTAfingerprint-compatible bundle, flushed intent, safe true backgroundmobile update coordinatordefer to a later lifecycle transition
    Diagnosticsdestination and authorization vary by laneanalytics/tracer/resource serviceslocal traces can remain local; resource history stays bounded in memory
    +
    +
    +
    + + + + diff --git a/src/components/ScenarioLab.astro b/src/components/ScenarioLab.astro new file mode 100644 index 0000000..11f0337 --- /dev/null +++ b/src/components/ScenarioLab.astro @@ -0,0 +1,124 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Scenario { + label: string; + title: string; + summary: string; + facts: string[]; + sourceIds: string[]; + tone?: "safe" | "warning" | "failure" | "neutral"; +} +interface Props { + id: string; + title: string; + prompt: string; + scenarios: Scenario[]; +} +const { id, title, prompt, scenarios } = Astro.props; +if (scenarios.length < 2) throw new Error(`ScenarioLab '${title}' requires at least two scenarios.`); +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) throw new Error(`ScenarioLab '${title}' requires a stable kebab-case id.`); +const labId = `scenario-${id}`; +const toneLabels = { safe: "Expected path", warning: "Caveat", failure: "Failure path", neutral: "Alternative" } as const; +const resolved = scenarios.map(({ sourceIds, ...scenario }) => ({ + ...scenario, + toneLabel: toneLabels[scenario.tone ?? "neutral"], + sources: sourceIds.map((id) => { + const source = getSourceReference(id); + return { label: sourceReferenceLabel(source), href: sourceReferenceHref(source) }; + }), +})); +const payload = JSON.stringify(resolved).replaceAll("<", "\\u003c"); +--- + +
    +
    Interactive lab

    {title}

    {prompt}

    +
    + {resolved.map((scenario, index) => ( + + ))} +
    +

    Scenario 1 of {scenarios.length}: {resolved[0].label}

    +
    +
    {resolved[0].label}{resolved[0].toneLabel}
    +

    {resolved[0].title}

    +

    {resolved[0].summary}

    +
      {resolved[0].facts.map((fact) =>
    • {fact}
    • )}
    +
    + {resolved[0].sources.map((source) => {source.label})} +
    +
    +
      + {resolved.map((scenario) => ( +
    1. {scenario.label} · {scenario.title} ({scenario.toneLabel})

      {scenario.summary}

        {scenario.facts.map((fact) =>
      • {fact}
      • )}
      {scenario.sources.map((source) => {source.label})}
    2. + ))} +
    + +
    + + diff --git a/src/components/SourceExcerpt.astro b/src/components/SourceExcerpt.astro new file mode 100644 index 0000000..de11f77 --- /dev/null +++ b/src/components/SourceExcerpt.astro @@ -0,0 +1,61 @@ +--- +import excerpts from "../generated/excerpts.json"; +import lock from "../../sources/t3code.lock.json"; + +interface SourceRecord { + id: string; + path: string; + start: number; + end: number; + language: string; + label?: string; + code: string; + checksum: string; +} + +interface Props { + id: string; + focus?: number[]; + note?: string; +} + +const { id, focus = [], note } = Astro.props; +const record = (excerpts as Record)[id]; +if (!record) throw new Error(`Unknown source excerpt '${id}'. Run npm run source:sync.`); +const lines = record.code.replace(/\n$/, "").split("\n"); +const sourceUrl = `${lock.repository}/blob/${lock.commit}/${record.path}#L${record.start}-L${record.end}`; +--- + +
    +
    + + + {record.path}:{record.start}–{record.end} ↗ + + verbatim · {record.language} · {record.checksum.slice(0, 8)} + +
    +
    +
    {lines.map((line, index) => {
    +      const lineNumber = record.start + index;
    +      return {line || "\u00a0"}{index < lines.length - 1 ? "\n" : ""};
    +    })}
    +
    + {note &&
    Read this as: {note}
    } +
    + + diff --git a/src/components/SourceList.astro b/src/components/SourceList.astro new file mode 100644 index 0000000..a9e7230 --- /dev/null +++ b/src/components/SourceList.astro @@ -0,0 +1,17 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Props { ids: string[]; title?: string; } +const { ids, title = "Source trail" } = Astro.props; +const refs = ids.map(getSourceReference); +--- + + diff --git a/src/components/SourceSnapshot.astro b/src/components/SourceSnapshot.astro new file mode 100644 index 0000000..506fdd2 --- /dev/null +++ b/src/components/SourceSnapshot.astro @@ -0,0 +1,10 @@ +--- +import lock from "../../sources/t3code.lock.json"; +import Stats from "./Stats.astro"; +--- + + diff --git a/src/components/Stats.astro b/src/components/Stats.astro new file mode 100644 index 0000000..93514cc --- /dev/null +++ b/src/components/Stats.astro @@ -0,0 +1,10 @@ +--- +interface Stat { value: string; label: string; } +interface Props { items: Stat[]; } +const { items } = Astro.props; +--- + +
    + {items.map((item) =>
    {item.value}{item.label}
    )} +
    + diff --git a/src/components/SynchronizedTraceLab.astro b/src/components/SynchronizedTraceLab.astro new file mode 100644 index 0000000..fe7f04b --- /dev/null +++ b/src/components/SynchronizedTraceLab.astro @@ -0,0 +1,266 @@ +--- +interface Props { id: string; } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("SynchronizedTraceLab requires a stable kebab-case id."); +} +const labId = `synchronized-trace-${id}`; +--- + +
    +
    + Interactive synthesis lab · Chapter 39 +

    Move one trace through the owner that acts next

    +

    Select a complete trace, then advance deliberately. The marker crosses the owner that acts next; its final boundary says what does—and does not—converge.

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

    Step 1 of 6

    + + +
    + +
    +

    Trace 1 · Local first turn

    +

    Client sends one existing-thread command

    +

    The user action enters the environment through an authorized RPC method; no provider work has happened yet.

    + + + +
    +
    Owner now
    client and RPC entry policy
    +
    Handoff / evidence
    typed turn command reaches the selected environment
    +
    Durable fact now
    none yet
    +
    Boundary if it stops here
    an RPC failure is not a provider failure and does not create an accepted turn
    +
    +
    +

    Local first turn. Step 1 of 6.

    +
    + + +
    + Static six-trace ledger +
    + + + + + + + + + + +
    TraceOwner sequenceDurable evidenceConvergence or failure boundary
    Local first turnclient → RPC/engine → SQLite → provider reactor/adapter → engine → client stateaccepted event, projections, and receipt commit togetherhot reactor delivery is not replayed after a crash; later projections only show committed facts
    Relay-connected mobile turnphone → relay control plane → selected environment → relay bootstrap return → direct mobile session → environment statedevice-held DPoP-bound environment session material and environment projectionsrelay launch authorization is not thread synchronization; ordinary traffic bypasses the relay
    Approval round-tripprovider → runtime ingestion → pending projection → client → response intent → provider reactorpending request and response-requested event are separate durable factsnative provider reply is a later hot handoff where a stale or unknown request can fail; runtime-mode labels do not equal provider semantics
    Offline mobile drainmobile atom → atomic outbox file → live shell → environment receipt/result → phone cleanup → later projection reconciliationconfirmed phone file, then remote command receiptthere is no transaction shared by phone storage and server SQLite; cleanup follows the command result, while projections reconcile separately
    Checkpoint diff / revertcompletion → Git hidden ref/diff → checkpoint projection → durable revert request → ordered saga → engine completionhidden ref precedes checkpoint metadata; the request and later completion are separate orchestration factsrestore can happen before provider rollback; later failure can leave a real partial state
    Stable exact updaterelease automation → exact npm runtime → client exposure → connected-client request → server preflight → stable launcher trialexact package publication, then launcher pending/trial/commit statepublish does not replace a machine; launcher can roll back a failed trial before commit
    +
    +
    +
    + + + + diff --git a/src/components/ThreadProjectionLab.astro b/src/components/ThreadProjectionLab.astro new file mode 100644 index 0000000..7e99363 --- /dev/null +++ b/src/components/ThreadProjectionLab.astro @@ -0,0 +1,240 @@ +--- +interface Props { id?: string; } +const { id = "thread-projection" } = Astro.props; +const labId = `thread-projection-${id}`; +const scenarios = { + active: { + label: "Active turn", + fields: ["threadId", "messages", "session.status", "activities", "draft", "pinnedAt"], + note: "A running session and a local draft coexist; the draft is not a durable message yet.", + }, + review: { + label: "Review pending", + fields: ["threadId", "messages", "turn.diff", "checkpoint", "review.comments", "pinnedAt"], + note: "The review surface reads the turn diff and comments; chat keeps the conversational context.", + }, + quiet: { + label: "Quiet work log", + fields: ["threadId", "messages", "activities", "task.latest", "session.status", "orderedAt"], + note: "A quiet thread can still retain activity and ordering metadata without becoming a scheduler record.", + }, +} as const; + +const projections = { + chat: { + label: "Chat timeline", + consumes: ["messages", "session.status", "activities"], + suppresses: ["task.latest", "review.comments", "orderedAt"], + server: "Send message · interrupt turn", + local: "Scroll position · collapsed activity", + copy: "Conversation first: lifecycle details remain compact activity affordances.", + }, + composer: { + label: "Composer + optimistic state", + consumes: ["draft", "messages", "session.status"], + suppresses: ["turn.diff", "pinnedAt", "task.latest"], + server: "Submit message · cancel turn", + local: "Draft text · optimistic pending row", + copy: "The composer can feel immediate while the canonical message waits for the accepted receipt.", + }, + log: { + label: "Quiet work log", + consumes: ["activities", "task.latest", "session.status"], + suppresses: ["draft", "review.comments", "turn.diff"], + server: "Open thread · resume eligible work", + local: "Expanded rows · filter", + copy: "A compact activity projection preserves useful lifecycle signals without replaying every token.", + }, + agents: { + label: "Agents / subagents", + consumes: ["task.latest", "activities", "session.status"], + suppresses: ["draft", "pinnedAt", "review.comments"], + server: "Interrupt agent · open thread", + local: "Roster grouping · selected agent", + copy: "The roster is derived from task lifecycle evidence; it is not a second canonical transcript.", + }, + review: { + label: "Review / diff", + consumes: ["turn.diff", "checkpoint", "review.comments"], + suppresses: ["draft", "task.latest", "orderedAt"], + server: "Post review comment · restore checkpoint", + local: "Selected lines · diff mode", + copy: "Review narrows attention to changed files and anchored comments while retaining the thread identity.", + }, + sidebar: { + label: "Ordered / pinned sidebar", + consumes: ["threadId", "pinnedAt", "orderedAt", "messages"], + suppresses: ["draft", "turn.diff", "task.latest"], + server: "Pin / unpin thread · archive", + local: "Sort choice · collapsed groups", + copy: "Pinning and ordering are thread metadata; the sidebar does not own conversation content.", + }, +} as const; +type ProjectionKey = keyof typeof projections; +type ScenarioKey = keyof typeof scenarios; +const initialProjection: ProjectionKey = "chat"; +const initialScenario: ScenarioKey = "active"; +--- + +
    +
    + Interactive projection lab · Chapter 31 +

    One canonical thread, six product surfaces

    +

    Change the durable scenario, then choose a projection to see what it reads, leaves out, and can mutate.

    +
    + +
    + + + +
    + +

    {scenarios[initialScenario].label} · {projections[initialProjection].label}

    + +
    +
    Canonical threadthread_31 / durable fields
    +
    + {scenarios[initialScenario].fields.map((field) => {field})} +
    +

    {scenarios[initialScenario].note}

    +
    + +
    + {Object.entries(projections).map(([key, projection], index) => ( + + ))} +
    + +
    +
    {projections[initialProjection].label}{projections[initialProjection].copy}
    +
    +

    Consumes

      {projections[initialProjection].consumes.map((field) =>
    • {field}
    • )}
    +

    Intentionally suppresses

      {projections[initialProjection].suppresses.map((field) =>
    • {field}
    • )}
    +
    +
    Server-state controls{projections[initialProjection].server}
    Local-view controls{projections[initialProjection].local}
    +
    + +
    + Static projection map + + + {Object.entries(projections).map(([, projection]) => )} +
    SurfaceCanonical fields it consumesLocal view state
    {projection.label}{projection.consumes.join(" · ")}{projection.local}
    +
    + +
    + + + + diff --git a/src/components/TraceLab.astro b/src/components/TraceLab.astro new file mode 100644 index 0000000..bad50ae --- /dev/null +++ b/src/components/TraceLab.astro @@ -0,0 +1,158 @@ +--- +import { getSourceReference, sourceReferenceHref, sourceReferenceLabel } from "../lib/sources"; + +interface Step { stage: string; title: string; detail: string; sourceId?: string; } +interface Props { id: string; steps: Step[]; label?: string; prompt?: string; } +const { id, steps, label = "End-to-end request trace", prompt = "Move through the ordered stages or play the trace once." } = Astro.props; +if (steps.length === 0) throw new Error("TraceLab requires at least one step."); +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) throw new Error(`TraceLab '${label}' requires a stable kebab-case id.`); +const resolvedSteps = steps.map(({ sourceId, ...step }) => { + if (!sourceId) return step; + const reference = getSourceReference(sourceId); + return { + ...step, + source: sourceReferenceLabel(reference), + sourceHref: sourceReferenceHref(reference), + }; +}); +const payload = JSON.stringify(resolvedSteps).replaceAll("<", "\\u003c"); +--- + +
    +
    Interactive trace

    {label}

    {prompt}

    +
    + + + + 1 / {steps.length} +
    + +
      + {resolvedSteps.map((step, index) =>
    1. )} +
    +

    Step 1 of {steps.length}: {resolvedSteps[0]?.stage}

    +
    + {resolvedSteps[0]?.stage} +

    {resolvedSteps[0]?.title}

    +

    {resolvedSteps[0]?.detail}

    + +
    + +
      + {resolvedSteps.map((step) => ( +
    1. + {step.stage} · {step.title} +

      {step.detail}

      + {step.source && {step.source}} +
    2. + ))} +
    +
    + + diff --git a/src/components/TurnLifecycleLab.astro b/src/components/TurnLifecycleLab.astro new file mode 100644 index 0000000..ff2d3d5 --- /dev/null +++ b/src/components/TurnLifecycleLab.astro @@ -0,0 +1,162 @@ +--- +interface Props { id: string } + +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("TurnLifecycleLab requires a stable kebab-case id."); +} +const labId = `turn-lifecycle-${id}`; +--- + +
    +
    + Interactive state-machine lab +

    One durable request, several live outcomes

    +

    Choose an illustrative control for the current teaching state. A step flashes once, then rests; this is neither a live provider simulator nor the server's complete legality matrix.

    +
    + +
    +
    +

    Current state

    +

    Resting

    +

    No active provider turn is projected. A new user message can create durable start intent.

    +
    + +
      +
    1. Restingno active turn
    2. +
    3. Startingintent awaits runtime
    4. +
    5. Runningcorrelated live turn
    6. +
    7. Approvalwaiting on a decision
    8. +
    9. Inputwaiting on answers
    10. +
    11. Interruptedstop intent recorded
    12. +
    13. Readyturn ended
    14. +
    15. Errornew intent required
    16. +
    + +
    +

    Durable record

    Nothing new is being committed for this simulated turn.

    +

    Hot provider liveness

    No provider liveness is claimed.

    +
    + +
    +

    Teaching paths

    +
    +
    +
    + +

    State is Resting.

    + + +
    + Static transition table and boundary notes +
    + + + + + + + + + + +
    StateIllustrative controlsDurable meaningHot meaning
    Resting / ready / errorStart a new intentnew user message + start request + receipt can commitno provider start is proven yet
    StartingProvider starts; interruptpending start/session projection can be presentreactor may be preparing or sending
    RunningStream; request approval; request input; steer*; interrupt; complete; failcorrelated runtime facts can update session/messagesprovider liveness remains hot
    Approval / inputRespond; interruptpending request is visible; the turn can remain runningprovider waits for a response
    InterruptedStart a new intenta matching projected turn can be marked interruptednative abortion or session-state facts may still arrive later
    Completed / readyStart a new intentcompletion may settle session; checkpoint is separatenative session may still exist or later exit
    +
    +

    * “Steer” is provider-specific. The generic adapter contract has no steer method; this lab models its guarded superseding-turn case. The table is intentionally selective: the start decider itself does not enforce a “must be ready” state guard.

    +
    +
    + + + + diff --git a/src/components/UsageAccountingLab.astro b/src/components/UsageAccountingLab.astro new file mode 100644 index 0000000..8aa625d --- /dev/null +++ b/src/components/UsageAccountingLab.astro @@ -0,0 +1,259 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("UsageAccountingLab requires a stable kebab-case id."); +} + +const rows = [ + { file: "claude/a.jsonl", record: "C-1a", provider: "Claude", key: "m-1:r-1", tokens: 160, state: "first copy" }, + { file: "claude/a.jsonl", record: "C-1b", provider: "Claude", key: "m-1:r-1", tokens: 160, state: "within-file duplicate" }, + { file: "claude/b.jsonl", record: "C-1c", provider: "Claude", key: "m-1:r-1", tokens: 160, state: "cross-file copy" }, + { file: "codex/x.jsonl", record: "X-1", provider: "Codex", key: "none · parser-local suppression", tokens: 58, state: "distinct record" }, +]; +const labId = `usage-accounting-${id}`; +--- + +
    +
    + Interactive accounting laboratory +

    A file-derived total is built in stages

    +

    Move through the historical lane. The live context sample stays visible as a deliberately excluded operational signal.

    +
    + +
    + Live lane, not an input: thread T-9 currently reports 88,000 / 200,000 context tokens. It changes the composer meter only; it contributes 0 tokens and $0 to the historical total below. +
    + +
    + + + + + + +
    + + + +
    +

    Stage 1 of 6 · parse records

    +

    Four candidate records arrive from three files

    +

    The scanner streams provider JSONL. These are candidate usage records, not yet a total.

    +
    + + + + {rows.map((row) => )} + +
    FileRecordDedupe identityTokensStatus
    {row.file}{row.record}{row.key}{row.tokens}{row.state}
    +
    +
    +
    Candidate tokens
    538
    +
    Historical total
    not calculated
    +
    Live meter input
    excluded
    +
    +
    + +
    +

    Formulas used by the lab

    +

    processed = uncached input + cached input + cache creation + output

    +

    cost = uncached×inputRate + cached×cacheReadRate + creation×creationRate + output×outputRate

    +

    historical total = Σ kept, in-range records after source-fingerprint ownership

    +

    reasoning ⊆ output; do not add it a second time

    +
    + +
    + Static walkthrough and no-JavaScript reference +
      +
    1. Parse. Candidate rows total 538 tokens: three 160-token Claude copies and one 58-token Codex record.
    2. +
    3. Normalize. Claude's usage maps to 100 uncached + 30 cached + 10 creation + 20 output = 160. Codex's input includes cache, so it maps to 40 uncached + 10 cached + 0 creation + 8 output = 58.
    4. +
    5. Within-file dedupe. Keep C-1a; drop C-1b, which repeats the same Claude message/request key in a.jsonl.
    6. +
    7. Cross-file dedupe. Keep the first surviving Claude key; drop C-1c from the copied/resumed file. Codex has no global key here: its parser-local delta/fork suppression has already accepted distinct record X-1. The subtotal is 218 tokens.
    8. +
    9. Bucket and price. Place the two retained records in their day/provider/model buckets. The displayed formula applies model rates only when no finite provider-reported cost exists; price provenance remains part of the result.
    10. +
    11. Merge environments. Environment A owns the Claude source fingerprint. Environment B reports the identical fingerprint and is a shadow copy, so its Claude bucket is excluded. Environment C owns a different Codex fingerprint. The merged historical total remains 218 tokens.
    12. +
    +

    Still excluded: the live 88,000 / 200,000 thread context snapshot. It answers a capacity question, not this historical file-accounting question.

    +
    +
    + + + + diff --git a/src/components/WorkLogLab.astro b/src/components/WorkLogLab.astro new file mode 100644 index 0000000..b328024 --- /dev/null +++ b/src/components/WorkLogLab.astro @@ -0,0 +1,68 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) throw new Error("WorkLogLab requires a stable kebab-case id."); +const views = { + web: { label: "Web · chat work log", lead: "Illustrative projection, not live data: a quiet parent narrative collapses agent lifecycle into a spawn-batch call to action.", rows: [["Parent", "thread.message-sent", "durable thread narrative"], ["Spawn batch", "direct agents", "grouped by spawn turn"], ["Spawn batch", "workflow members", "grouped under the coordinator; CTA opens Agents"]], note: "Web's separate Agents surface carries detailed per-agent state. Progress and usage use stable latest-state streams, but the parent log is not one row per task." }, + agents: { label: "Web · Agents panel", lead: "Illustrative projection, not live data: a derived roster updates retained agent state in place.", rows: [["Agent", "task.progress", "working state when the payload identifies an agent"], ["Agent", "task.updated", "idle is resumable when reported"], ["Workflow", "task progress", "provider-derived members when present"]], note: "Token, tool, and duration fields are task-local rollups only when typed usage supplies them. They are not Chapter 20 totals." }, + mobile: { label: "Mobile · thread work log", lead: "Illustrative projection, not live data: compact rows keep a terminal signal because this path has no matching Agents roster.", rows: [["Work log", "task.completed", "terminal agent signal"], ["Work log", "terminal task.updated", "Codex child terminal signal"], ["Work log", "retained activity", "only source-backed activity is shown"]], note: "A mobile work log derives from the same activities; it does not create a mobile-only task store." }, +} as const; +const initial = views.web; +const labId = `work-log-${id}`; +const payload = JSON.stringify({ views }).replaceAll("<", "\\u003c"); +--- + +
    +
    Interactive work-log projector

    One thread, three surface projections

    Switch views to see what a surface may derive from durable thread activity without inventing a scheduler record.

    +
    {Object.entries(views).map(([key, view], index) => )}
    +

    {initial.label}. {initial.lead}

    +
    +
    {initial.label}thread: durable

    {initial.lead}

    +
      {initial.rows.map(([kind, title, detail]) =>
    1. {kind}
      {title}{detail}
    2. )}
    + +
    +
    Durable threadmessages · activities · lifecycle overlays
    Derived rostertask/subagent fold when evidence exists
    Ephemeral live stateliveness clears on restart/session death; plan progress clears at settlement/session death
    +
    Static projection rules
    • Web chat groups agent lifecycle into spawn-batch CTAs that open Agents: direct agents by spawn turn, workflow members by coordinator.
    • Web Agents renders a derived roster, including task-local typed usage when supplied.
    • Mobile retains compact terminal/task signals because this path has no equivalent Agents roster.
    • Pin, snooze, and lifecycle organize the thread; they do not schedule provider tasks.
    + + +
    + + + + diff --git a/src/components/WorkbenchCapabilityLab.astro b/src/components/WorkbenchCapabilityLab.astro new file mode 100644 index 0000000..6bc6153 --- /dev/null +++ b/src/components/WorkbenchCapabilityLab.astro @@ -0,0 +1,176 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("WorkbenchCapabilityLab requires a stable kebab-case id."); +} + +const services = { + terminal: { + label: "Terminal", + owner: "Server PTY manager", + transport: "RPC command + attach stream", + path: ["Client names thread + terminal id", "Server opens or restores PTY history", "Attach receives snapshot, then live output / exit / activity events"], + boundary: "The client renders a terminal; the process and its environment stay with the server.", + surfaces: { web: "Ghostty web surface", desktop: "web renderer inside Electron", mobile: "native terminal surface", provider: "No provider terminal endpoint" }, + }, + files: { + label: "Files", + owner: "Server workspace services", + transport: "Authenticated project RPC", + path: ["Client asks for bounded entries, search, read, or write", "Server resolves the workspace operation", "Client renders a tree, source/file preview, or editor state"], + boundary: "A file pane is not a local filesystem mirror; operations address the selected server environment.", + surfaces: { web: "tree, preview, and editor paths", desktop: "same web renderer path", mobile: "tree and file-preview paths", provider: "Provider tools are a separate harness contract" }, + }, + assets: { + label: "Assets", + owner: "Server asset access", + transport: "RPC URL issue → signed HTTP GET", + path: ["Client requests a URL for an attachment, workspace file, or favicon", "Server validates scope/type and signs expiring claims", "Browser or native image/web view fetches the relative asset URL"], + boundary: "A signed URL grants only the claimed resource/path until expiry; it is not a filesystem browse token.", + surfaces: { web: "uses shared asset URL state", desktop: "uses the web renderer path", mobile: "workspace-file asset hook", provider: "May receive attachment paths through its own adapter flow" }, + }, + preview: { + label: "Preview & browser", + owner: "Desktop Electron host + server preview metadata", + transport: "Server RPC/event model + desktop IPC/webview", + path: ["Server records per-thread tab metadata and revisions", "Desktop renderer requests actions through curated preload IPC; Electron's preview manager owns the guest Chromium WebContents", "Status/navigation are reported back and fan out to subscribers"], + boundary: "The server tracks collaboration state; it does not itself render or automate a browser page.", + surfaces: { web: "explicitly unavailable", desktop: "native webview host", mobile: "no matching in-app browser host", provider: "can request automation only through an available desktop host" }, + }, + mcp: { + label: "MCP preview toolkit", + owner: "Provider-session credential registry + MCP HTTP server", + transport: "Provider-scoped bearer HTTP + broker stream", + path: ["Provider service optionally issues one thread-scoped credential carrying a registry-generated MCP session id", "Provider adapter receives t3-code MCP configuration", "MCP request is authenticated, scoped, then brokered to a compatible desktop host"], + boundary: "This is T3's preview toolkit, not a universal inventory or controller for every MCP server a provider may know.", + surfaces: { web: "not an automation host", desktop: "can register an automation host", mobile: "not an automation host", provider: "uses t3-code only when the session is configured and authorized" }, + }, + vcs: { + label: "VCS & worktrees", + owner: "Server VCS driver", + transport: "Authenticated RPC commands and snapshots", + path: ["Client selects a project/thread workspace", "Server driver reads Git/VCS state or performs a requested operation", "Clients render the returned state; worktree creation remains a server-side saga"], + boundary: "VCS capability is environment-local. A UI view is not a promise that a remote checkout, branch, or worktree exists everywhere.", + surfaces: { web: "server-backed source-control views", desktop: "same web renderer path", mobile: "server-backed VCS state/actions", provider: "provider changes files through its own session cwd" }, + }, + pullRequests: { + label: "Pull requests", + owner: "Server host-provider service", + transport: "RPC controls + authenticated HTTP diff slices", + path: ["Web selects a capable environment and repository", "Server validates project/host/capability and fresh viewer permissions for writes", "Large diff slices travel over HTTP; mutations invalidate server-side listing epochs"], + boundary: "A visible action is never the authorization decision. The server re-checks host capability and current viewer permission before writes.", + surfaces: { web: "dedicated capability-gated route", desktop: "same web renderer route", mobile: "no matching pull-request route in this pinned mobile source audit", provider: "No provider turn-control path implied" }, + }, +} as const; + +const serviceEntries = Object.entries(services); +const initialKey = "terminal" as const; +const initial = services[initialKey]; +const labId = `workbench-capability-${id}`; +const payload = JSON.stringify({ services }).replaceAll("<", "\\u003c"); +--- + +
    +
    + Interactive capability and path matrix +

    Choose a workbench service; then inspect its owner, transport, and surface edge

    +

    Each path is an architecture summary of the pinned source, not a live T3 environment.

    +
    + +
    + {serviceEntries.map(([key, service], index) => ( + + ))} +
    + +
    +

    {initial.label}. {initial.owner}. {initial.transport}.

    +
    + {initial.label} +
    +
    Primary owner
    {initial.owner}
    +
    Transport model
    {initial.transport}
    +
    +
    +
      + {initial.path.map((step, index) =>
    1. {index + 1}{step}
    2. )} +
    + +
    +

    Surface edge

    +
    + {Object.entries(initial.surfaces).map(([surface, detail]) =>
    {surface === "provider" ? "Provider" : surface}
    {detail}
    )} +
    +
    +
    + +
    + Static matrix and reading rules +
    + + + {serviceEntries.map(([, service]) => )} +
    ServiceOwnerTransportImportant edge
    {service.label}{service.owner}{service.transport}{service.boundary}
    +
    +

    “Desktop uses the web renderer path” does not erase Electron-only authority: preview’s actual webview and automation host are desktop-owned. “No matching route” records this source audit; it is not a product roadmap claim.

    +
    + + +
    + + + + diff --git a/src/components/WorktreeTopologyLab.astro b/src/components/WorktreeTopologyLab.astro new file mode 100644 index 0000000..bc42757 --- /dev/null +++ b/src/components/WorktreeTopologyLab.astro @@ -0,0 +1,58 @@ +--- +interface Props { id: string; } +const { id } = Astro.props; +if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(id)) { + throw new Error("WorktreeTopologyLab requires a stable kebab-case id."); +} +const labId = `worktree-topology-${id}`; +const modes = [ + { label: "Local request: no new worktree", nodes: ["No Git worktree creation", "Stored thread path, if present", "Otherwise project root", "Thread runs there"], detail: "This mode creates no linked worktree. A newly local thread commonly runs at the project root, but a local request can retain an already-selected workspace path; runtime resolution uses that stored thread path before the project root.", recovery: "If the path is not a Git repository, this is the only effective thread workspace mode. “Local” describes creation, not a ban on an existing workspace path." }, + { label: "New worktree from local base", nodes: ["Project root", "Chosen local base", "New branch + linked worktree", "Thread runs in linked tree"], detail: "The bootstrap asks Git to create a new branch at the selected base and checks it out in a separate path. The thread is then updated with that branch and worktree path.", recovery: "A Git creation failure aborts the bootstrap; the server cleans up a thread it created during that bootstrap, but does not promise to remove every filesystem side effect Git may already have made." }, + { label: "New worktree from origin", nodes: ["Project root", "Fetch origin", "Resolve origin base commit", "New branch + linked worktree", "Thread runs in linked tree"], detail: "When the option is enabled and origin exists, T3 fetches origin and resolves the requested base to a remote-tracking commit before creating the local branch/worktree.", recovery: "If origin is absent, the bootstrap falls back to the local selected base instead of failing solely because origin is unavailable." }, + { label: "Delete thread + optional orphan cleanup", nodes: ["Durably delete thread", "Stop provider + close terminal history", "Offer worktree cleanup when orphaned", "Forced Git removal only if confirmed"], detail: "Thread deletion is not a worktree deletion. The server stops the provider session and closes terminal history; the web client may then offer to force-remove a worktree only when this was its sole linked thread and a local API is available.", recovery: "If the optional Git removal or refresh fails, the thread remains deleted and the worktree can remain. The web client surfaces that partial failure for inspection or later cleanup." }, + { label: "Remove linked worktree", nodes: ["Project root", "Target linked path", "git worktree remove", "Path no longer present"], detail: "Removal calls Git with the selected linked path. The optional force flag is forwarded only when requested.", recovery: "Git remains the authority: a dirty or otherwise protected worktree can make removal fail, so inspect its state before retrying or forcing cleanup." }, +]; +const payload = JSON.stringify(modes).replaceAll("<", "\\u003c"); +--- + +
    +
    Animated topology lab

    Choose where a thread will run

    Each activation advances only once. There is no autonomous playback: you control the topology and the motion.

    +
    + {modes.map((mode, index) => )} +
    +

    Selected topology: {modes[0].label}

    +
      {modes[0].nodes.map((node, index) =>
    1. {node}
    2. )}
    +

    {modes[0].label}

    {modes[0].detail}

    Recovery boundary: {modes[0].recovery}

    +
    All topology outcomes
      {modes.map((mode) =>
    1. {mode.label}

      {mode.detail}

      Recovery boundary: {mode.recovery}

    2. )}
    + + +
    + + + + diff --git a/src/content.config.ts b/src/content.config.ts new file mode 100644 index 0000000..8d3e0ad --- /dev/null +++ b/src/content.config.ts @@ -0,0 +1,27 @@ +import { defineCollection } from "astro:content"; +import { glob } from "astro/loaders"; +import { z } from "astro/zod"; + +const book = defineCollection({ + loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/content/book" }), + schema: z.object({ + slug: z.string(), + order: z.number().int().nonnegative(), + number: z.string().optional(), + kind: z.enum(["front", "chapter", "appendix"]), + part: z.string(), + partOrder: z.number().int().nonnegative(), + title: z.string(), + shortTitle: z.string().optional(), + summary: z.string(), + status: z.enum(["draft", "source-checked", "verified"]), + gates: z.array(z.enum(["sources", "links", "interaction", "editorial"])).default([]), + objectives: z.array(z.string()).default([]), + keywords: z.array(z.string()).default([]), + sourceAreas: z.array(z.string()).default([]), + visuals: z.array(z.string()).default([]), + updatedAt: z.coerce.date(), + }), +}); + +export const collections = { book }; diff --git a/src/generated/excerpts.json b/src/generated/excerpts.json new file mode 100644 index 0000000..f3625fc --- /dev/null +++ b/src/generated/excerpts.json @@ -0,0 +1,1842 @@ +{ + "architecture-boundary": { + "id": "architecture-boundary", + "path": "docs/internals/overview.md", + "start": 5, + "end": 28, + "language": "markdown", + "label": "The execution boundary", + "code": "T3 Code is a server runtime that owns agent sessions, workspaces, and version control, plus clients\n(web, desktop, mobile) that talk to it over one authenticated Effect RPC WebSocket. The server is the\nexecution boundary: every provider process, terminal, git operation, and filesystem read happens\nthere, never in the client.\n\n```\n┌────────────────────────────────────────────────┐\n│ Clients: apps/web, apps/desktop, apps/mobile │\n│ shared runtime: packages/client-runtime │\n│ connection supervisor, RPC session, Atom state│\n└──────────────────┬─────────────────────────────┘\n │ Effect RPC over WebSocket (/ws)\n │ contract: packages/contracts\n┌──────────────────▼─────────────────────────────┐\n│ apps/server │\n│ orchestration engine (event-sourced) │\n│ provider driver registry (5 built-in drivers) │\n│ checkpointing, VCS, terminals, filesystem │\n└──────────────────┬─────────────────────────────┘\n │ per-driver transport\n┌──────────────────▼─────────────────────────────┐\n│ Agent CLIs: Codex, Claude, Cursor, Grok, │\n│ OpenCode │\n└────────────────────────────────────────────────┘", + "checksum": "fd6effc6bfb1e04275e59190badc87399e6298b077fe3d05e7eb0f8544afd698" + }, + "orchestration-rpc-methods": { + "id": "orchestration-rpc-methods", + "path": "packages/contracts/src/orchestration.ts", + "start": 27, + "end": 36, + "language": "typescript", + "label": "Orchestration RPC surface", + "code": "export const ORCHESTRATION_WS_METHODS = {\n dispatchCommand: \"orchestration.dispatchCommand\",\n getWorkflowScript: \"orchestration.getWorkflowScript\",\n getTurnDiff: \"orchestration.getTurnDiff\",\n getFullThreadDiff: \"orchestration.getFullThreadDiff\",\n searchThreads: \"orchestration.searchThreads\",\n getArchivedShellSnapshot: \"orchestration.getArchivedShellSnapshot\",\n subscribeShell: \"orchestration.subscribeShell\",\n subscribeThread: \"orchestration.subscribeThread\",\n} as const;", + "checksum": "654f6e0acadb65856a7b1267a314ba5d501fdb7bb2b44847ec54d2a77e034e7c" + }, + "turn-start-command": { + "id": "turn-start-command", + "path": "packages/contracts/src/orchestration.ts", + "start": 847, + "end": 864, + "language": "typescript", + "label": "Client turn-start command", + "code": "const ClientThreadTurnStartCommand = Schema.Struct({\n type: Schema.Literal(\"thread.turn.start\"),\n commandId: CommandId,\n threadId: ThreadId,\n message: Schema.Struct({\n messageId: MessageId,\n role: Schema.Literal(\"user\"),\n text: Schema.String,\n attachments: Schema.Array(UploadChatAttachment),\n }),\n modelSelection: Schema.optional(ModelSelection),\n titleSeed: Schema.optional(TrimmedNonEmptyString),\n runtimeMode: RuntimeMode,\n interactionMode: ProviderInteractionMode,\n bootstrap: Schema.optional(ThreadTurnStartBootstrap),\n sourceProposedPlan: Schema.optional(SourceProposedPlanReference),\n createdAt: IsoDateTime,\n});", + "checksum": "2a356b9b8badac1a1eda578900fc6847c5095057aaa4bc34c9ab057b352c64ec" + }, + "provider-adapter-core": { + "id": "provider-adapter-core", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 47, + "end": 71, + "language": "typescript", + "label": "Provider adapter lifecycle contract", + "code": "export interface ProviderAdapterShape {\n /**\n * Provider kind implemented by this adapter.\n */\n readonly provider: ProviderDriverKind;\n readonly capabilities: ProviderAdapterCapabilities;\n\n /**\n * Start a provider-backed session.\n */\n readonly startSession: (\n input: ProviderSessionStartInput,\n ) => Effect.Effect;\n\n /**\n * Send a turn to an active provider session.\n */\n readonly sendTurn: (\n input: ProviderSendTurnInput,\n ) => Effect.Effect;\n\n /**\n * Interrupt an active turn.\n */\n readonly interruptTurn: (threadId: ThreadId, turnId?: TurnId) => Effect.Effect;", + "checksum": "a75847d120df17015de3fdcd97ab0f5a3b5d3f7c8b19f950e0c0d484441e17cf" + }, + "provider-adapter-interactions": { + "id": "provider-adapter-interactions", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 73, + "end": 94, + "language": "typescript", + "label": "Provider approval and input contract", + "code": " /**\n * Respond to an interactive approval request.\n */\n readonly respondToRequest: (\n threadId: ThreadId,\n requestId: ApprovalRequestId,\n decision: ProviderApprovalDecision,\n ) => Effect.Effect;\n\n /**\n * Respond to a structured user-input request.\n */\n readonly respondToUserInput: (\n threadId: ThreadId,\n requestId: ApprovalRequestId,\n answers: ProviderUserInputAnswers,\n ) => Effect.Effect;\n\n /**\n * Stop one provider session.\n */\n readonly stopSession: (threadId: ThreadId) => Effect.Effect;", + "checksum": "67b4610571f49faa99826588c7af37dafaf379bc25f4e9d012a429cc31f5858d" + }, + "provider-adapter-stream": { + "id": "provider-adapter-stream", + "path": "apps/server/src/provider/Services/ProviderAdapter.ts", + "start": 126, + "end": 134, + "language": "typescript", + "label": "Canonical provider event stream", + "code": " /**\n * Stop all sessions owned by this adapter.\n */\n readonly stopAll: () => Effect.Effect;\n\n /**\n * Canonical runtime event stream emitted by this adapter.\n */\n readonly streamEvents: Stream.Stream;", + "checksum": "4a95ebce476cfbf3fd22ef7f508d1ef5b55ac49db91548ed4b3ab8fdd482d443" + }, + "orchestration-transaction": { + "id": "orchestration-transaction", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 197, + "end": 259, + "language": "typescript", + "label": "Atomic command commit", + "code": " const committedCommand = yield* sql\n .withTransaction(\n Effect.gen(function* () {\n const committedEvents: OrchestrationEvent[] = [];\n let nextCommandReadModel = commandReadModel;\n\n for (const nextEvent of eventBases) {\n const savedEvent = yield* eventStore.append(nextEvent);\n nextCommandReadModel = yield* projectEvent(nextCommandReadModel, savedEvent);\n yield* projectionPipeline.projectEvent(savedEvent);\n committedEvents.push(savedEvent);\n }\n\n const lastSavedEvent = committedEvents.at(-1) ?? null;\n if (lastSavedEvent === null) {\n return yield* new OrchestrationCommandInvariantError({\n commandType: envelope.command.type,\n detail: \"Command produced no events.\",\n });\n }\n\n yield* commandReceiptRepository.upsert({\n commandId: envelope.command.commandId,\n aggregateKind: lastSavedEvent.aggregateKind,\n aggregateId: lastSavedEvent.aggregateId,\n acceptedAt: lastSavedEvent.occurredAt,\n resultSequence: lastSavedEvent.sequence,\n status: \"accepted\",\n error: null,\n });\n\n return {\n committedEvents,\n lastSequence: lastSavedEvent.sequence,\n nextCommandReadModel,\n } as const;\n }),\n )\n .pipe(\n Effect.catchTag(\"SqlError\", (sqlError) =>\n Effect.fail(\n toPersistenceSqlError(\"OrchestrationEngine.processEnvelope:transaction\")(sqlError),\n ),\n ),\n );\n\n commandReadModel = committedCommand.nextCommandReadModel;\n for (const [index, event] of committedCommand.committedEvents.entries()) {\n yield* PubSub.publish(eventPubSub, event);\n if (index === 0) {\n yield* Metric.update(\n Metric.withAttributes(\n orchestrationCommandAckDuration,\n metricAttributes({\n ...baseMetricAttributes,\n ackEventType: event.type,\n }),\n ),\n Duration.millis(Math.max(0, (yield* Clock.currentTimeMillis) - envelope.startedAtMs)),\n );\n }\n }\n return { sequence: committedCommand.lastSequence };", + "checksum": "24e00da0c432e501172e3847817fde311d8656b07e3b8261c657ecf6b4c35d4c" + }, + "orchestration-dispatch": { + "id": "orchestration-dispatch", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 331, + "end": 368, + "language": "typescript", + "label": "Serialized command dispatch and event fan-out", + "code": " yield* projectionPipeline.bootstrap;\n commandReadModel = yield* projectionSnapshotQuery.getCommandReadModel();\n\n const worker = Effect.forever(Queue.take(commandQueue).pipe(Effect.flatMap(processEnvelope)));\n yield* Effect.forkScoped(worker);\n yield* Effect.logDebug(\"orchestration engine started\").pipe(\n Effect.annotateLogs({ sequence: commandReadModel.snapshotSequence }),\n );\n\n const readEvents: OrchestrationEngineShape[\"readEvents\"] = (fromSequenceExclusive, limit) =>\n eventStore.readFromSequence(fromSequenceExclusive, limit);\n\n const dispatch: OrchestrationEngineShape[\"dispatch\"] = (command, options) =>\n Effect.gen(function* () {\n const result = yield* Deferred.make<{ sequence: number }, OrchestrationDispatchError>();\n yield* Queue.offer(commandQueue, {\n command,\n origin: options?.origin,\n result,\n startedAtMs: yield* Clock.currentTimeMillis,\n });\n return yield* Deferred.await(result);\n });\n\n return {\n readEvents,\n dispatch,\n // Each access creates a fresh PubSub subscription so that multiple\n // consumers (wsServer, ProviderRuntimeIngestion, CheckpointReactor, etc.)\n // each independently receive all domain events.\n get streamDomainEvents(): OrchestrationEngineShape[\"streamDomainEvents\"] {\n return Stream.fromPubSub(eventPubSub);\n },\n // The command read model's snapshotSequence tracks the latest committed\n // event sequence (updated on the worker fiber). A plain property read is a\n // consistent, committed value — reassignment of `commandReadModel` is\n // atomic on the single-threaded event loop.\n latestSequence: Effect.sync(() => commandReadModel.snapshotSequence),", + "checksum": "85e20350d344ef6e865480addc97f37638fb833acbee999092d2a1b537019bfa" + }, + "server-runtime-core": { + "id": "server-runtime-core", + "path": "apps/server/src/server.ts", + "start": 353, + "end": 416, + "language": "typescript", + "label": "Authentication, remote endpoint, provider, and server dependency assembly", + "code": "const AuthLayerLive = EnvironmentAuth.layer.pipe(\n Layer.provideMerge(PersistenceLayerLive),\n Layer.provide(ServerSecretStore.layer),\n);\n\nconst CloudManagedEndpointRuntimeLive = Layer.mergeAll(\n RelayClientLive,\n CloudManagedEndpointRuntime.layer.pipe(\n Layer.provide(ServerSecretStore.layer),\n Layer.provide(RelayClientLive),\n ),\n);\n\nconst ProviderRuntimeLayerLive = ProviderSessionReaperLive.pipe(\n Layer.provideMerge(ProviderLayerLive),\n Layer.provideMerge(OrchestrationLayerLive),\n);\n\nconst RuntimeCoreDependenciesLive = ReactorLayerLive.pipe(\n // Core Services\n Layer.provideMerge(ServerSettingsLayerLive),\n Layer.provideMerge(CheckpointingLayerLive),\n Layer.provideMerge(SourceControlProviderRegistryLayerLive),\n Layer.provideMerge(GitLayerLive),\n Layer.provideMerge(VcsLayerLive),\n Layer.provideMerge(ProviderRuntimeLayerLive),\n Layer.provideMerge(Layer.mergeAll(TerminalLayerLive, PreviewLayerLive)),\n Layer.provideMerge(PersistenceLayerLive),\n Layer.provideMerge(Keybindings.layer),\n Layer.provideMerge(ProviderRegistryLive),\n // The instance registry is the new routing keystone — text generation,\n // adapter lookup, and runtime ingestion all resolve `ProviderInstanceId`\n // through this layer. Built-in drivers come from `BUILT_IN_DRIVERS`;\n // `providerInstances` hydration merges `settings.providers.`\n // with explicit `providerInstances` entries on boot.\n Layer.provideMerge(ProviderInstanceRegistryHydrationLive),\n // Shared native/canonical NDJSON writers used by both the per-instance\n // drivers (native stream, written from inside each `Adapter`) and\n // `ProviderService` (canonical stream, written after event normalization).\n // Provided once at the runtime level so every consumer sees the same\n // logger instances.\n Layer.provideMerge(ProviderEventLoggers.layer),\n // `OpenCodeDriver.create()` yields `OpenCodeRuntime`; previously the old\n // `ProviderRegistryLive` pulled `OpenCodeRuntimeLive` in for itself, but\n // the rewritten registry reads snapshots off the instance registry and\n // no longer transitively provides it. Exposing it at the runtime level\n // keeps a single Live for all opencode consumers.\n Layer.provideMerge(OpenCodeRuntime.OpenCodeRuntimeLive),\n Layer.provideMerge(WorkspaceLayerLive),\n Layer.provideMerge(ProjectFaviconResolverLayerLive),\n Layer.provideMerge(RepositoryIdentityResolver.layer),\n Layer.provideMerge(ServerEnvironment.layer),\n Layer.provideMerge(AuthLayerLive),\n Layer.provideMerge(ServerSecretStore.layer),\n Layer.provideMerge(\n Layer.mergeAll(\n CloudCliTokenManager.layer.pipe(\n Layer.provide(ServerSecretStore.layer),\n Layer.provide(ExternalLauncher.layer),\n ),\n CloudManagedEndpointRuntimeLive,\n ),\n ),\n);", + "checksum": "11cc88459d4db7e4b29b6b738dcdaba486d8385f6cec6e7dde0d7851c7ada9c5" + }, + "dispatch-result": { + "id": "dispatch-result", + "path": "packages/contracts/src/orchestration.ts", + "start": 1580, + "end": 1583, + "language": "typescript", + "label": "Successful client dispatch result", + "code": "export const DispatchResult = Schema.Struct({\n sequence: NonNegativeInt,\n});\nexport type DispatchResult = typeof DispatchResult.Type;", + "checksum": "151b83cdd47b9a449a38bb64d9f7b37ccd31ab6f109753cb6535214e12bf98de" + }, + "rejected-receipt-best-effort": { + "id": "rejected-receipt-best-effort", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 287, + "end": 325, + "language": "typescript", + "label": "Best-effort invariant-rejection receipt", + "code": " if (Exit.isSuccess(exit)) {\n yield* Deferred.succeed(envelope.result, exit.value);\n return;\n }\n\n const error = Cause.squash(exit.cause) as OrchestrationDispatchError;\n if (\n !isOrchestrationCommandPreviouslyRejectedError(error) &&\n !isOrchestrationCommandIdConflictError(error)\n ) {\n yield* reconcileReadModelAfterDispatchFailure.pipe(\n Effect.catch(() =>\n Effect.logWarning(\n \"failed to reconcile orchestration read model after dispatch failure\",\n ).pipe(\n Effect.annotateLogs({\n commandId: envelope.command.commandId,\n snapshotSequence: commandReadModel.snapshotSequence,\n }),\n ),\n ),\n );\n\n if (isOrchestrationCommandInvariantError(error)) {\n yield* commandReceiptRepository\n .upsert({\n commandId: envelope.command.commandId,\n aggregateKind: aggregateRef.aggregateKind,\n aggregateId: aggregateRef.aggregateId,\n acceptedAt: yield* nowIso,\n resultSequence: commandReadModel.snapshotSequence,\n status: \"rejected\",\n error: error.message,\n })\n .pipe(Effect.catch(() => Effect.void));\n }\n }\n\n yield* Deferred.fail(envelope.result, error);", + "checksum": "baa86ecd4a4a583386c539189ea6d26d3b4c6377201a660a9d22b2eb52a7645b" + }, + "hot-reactor-no-replay": { + "id": "hot-reactor-no-replay", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1405, + "end": 1409, + "language": "typescript", + "label": "Hot post-commit stream has no pending-work replay", + "code": " yield* forkParked(Stream.runForEach(orchestrationEngine.streamDomainEvents, processEvent));\n\n // The domain event stream is hot, so work pending before this reactor\n // starts cannot be resumed. Correlated completions only clear the request\n // captured here, leaving any newer request untouched.", + "checksum": "fe4e62df9690c497361768207b76ed48bb65364abc5ef5b123321deb6c0277ee" + }, + "cli-entry-command": { + "id": "cli-entry-command", + "path": "apps/server/src/bin.ts", + "start": 23, + "end": 71, + "language": "typescript", + "label": "Root CLI and subcommand dispatch", + "code": "const connectPublicConfigMissingMessage =\n \"T3 Connect commands are unavailable: this build is missing T3 Connect public configuration.\";\n\nclass ConnectPublicConfigMissingError extends CliError.UserError {\n override get message() {\n return connectPublicConfigMissingMessage;\n }\n}\n\nconst connectUnavailableCommand = Command.make(\"connect\", {\n command: Argument.string(\"command\").pipe(Argument.variadic),\n}).pipe(\n Command.withDescription(\"T3 Connect is unavailable in builds without public configuration.\"),\n Command.withHidden,\n Command.withHandler(() =>\n Effect.fail(\n new CliError.ShowHelp({\n commandPath: [\"t3\", \"connect\"],\n errors: [new ConnectPublicConfigMissingError({ cause: connectPublicConfigMissingMessage })],\n }),\n ),\n ),\n);\n\nexport const makeCli = ({ cloudEnabled = hasCloudPublicConfig } = {}) =>\n Command.make(\"t3\", { ...sharedServerCommandFlags }).pipe(\n Command.withDescription(\"Run the T3 Code server.\"),\n Command.withHandler((flags) => runServerCommand(flags)),\n Command.withSubcommands([\n startCommand,\n serveCommand,\n pairCommand,\n authCommand,\n projectCommand,\n serviceCommand,\n servicePreflightCommand,\n triageCommand,\n cloudEnabled ? connectCommand : connectUnavailableCommand,\n ]),\n );\n\nexport const cli = makeCli();\n\nif (import.meta.main) {\n Command.run(cli, { version: packageJson.version }).pipe(\n Effect.scoped,\n Effect.provide(CliRuntimeLayer),\n NodeRuntime.runMain,\n );", + "checksum": "4cbb1e2584966a2f8399dbdf57f860033d79e1da2aba843e49a008d4a4cdc2ab" + }, + "cli-config-precedence": { + "id": "cli-config-precedence", + "path": "apps/server/src/cli/config.ts", + "start": 244, + "end": 280, + "language": "typescript", + "label": "Mode, port, and base-directory precedence", + "code": " const mode: ServerConfig.RuntimeMode = Option.getOrElse(\n resolveOptionPrecedence(\n normalizedFlags.mode,\n Option.fromUndefinedOr(env.mode),\n Option.fromUndefinedOr(bootstrap?.mode),\n ),\n () => \"web\",\n );\n\n const port = yield* Option.match(\n resolveOptionPrecedence(\n normalizedFlags.port,\n Option.fromUndefinedOr(env.port),\n Option.fromUndefinedOr(bootstrap?.port),\n ),\n {\n onSome: (value) => Effect.succeed(value),\n onNone: () => {\n if (mode === \"desktop\") {\n return Effect.succeed(ServerConfig.DEFAULT_PORT);\n }\n return findAvailablePort(ServerConfig.DEFAULT_PORT);\n },\n },\n );\n const devUrl = Option.getOrElse(\n resolveOptionPrecedence(normalizedFlags.devUrl, Option.fromUndefinedOr(env.devUrl)),\n () => undefined,\n );\n const explicitBaseDir = resolveOptionPrecedence(\n normalizedFlags.baseDir,\n Option.fromUndefinedOr(env.t3Home),\n ).pipe(Option.filter((value) => value.trim().length > 0));\n const baseDir = yield* resolveBaseDir(\n Option.getOrUndefined(\n resolveOptionPrecedence(explicitBaseDir, Option.fromUndefinedOr(bootstrap?.t3Home)),\n ),", + "checksum": "f772af33c3c09ffd6b1641fe1391724758215ae054421feba0e93fc83f736d87" + }, + "cli-serve-semantics": { + "id": "cli-serve-semantics", + "path": "apps/server/src/cli/server.ts", + "start": 21, + "end": 35, + "language": "typescript", + "label": "Start and headless serve semantics", + "code": "export const startCommand = Command.make(\"start\", { ...sharedServerCommandFlags }).pipe(\n Command.withDescription(\"Run the T3 Code server.\"),\n Command.withHandler((flags) => runServerCommand(flags)),\n);\n\nexport const serveCommand = Command.make(\"serve\", { ...sharedServerCommandFlags }).pipe(\n Command.withDescription(\n \"Run the T3 Code server without opening a browser and print headless pairing details.\",\n ),\n Command.withHandler((flags) =>\n runServerCommand(flags, {\n startupPresentation: \"headless\",\n forceAutoBootstrapProjectFromCwd: false,\n }),\n ),", + "checksum": "114413115c5143f5873145eb904d38d5ad2b7316516f397de0514fa0b41d8bf8" + }, + "startup-readiness-order": { + "id": "startup-readiness-order", + "path": "apps/server/src/serverRuntimeStartup.ts", + "start": 514, + "end": 548, + "language": "typescript", + "label": "Prepared, activated, command-ready, and ready order", + "code": " yield* Effect.logDebug(\"startup phase: waiting for http listener\");\n yield* runStartupPhase(\"http.wait\", Deferred.await(httpListening));\n yield* runStartupPhase(\n \"auxiliary-roots.parked\",\n options?.awaitAuxiliaryParked ?? Effect.void,\n );\n\n // This is the prepared boundary. Every dependency has been acquired and\n // every runtime root has confirmed that it is parked before this request.\n const updateOutcome = yield* launcher.prepareTrial;\n yield* runStartupPhase(\n \"welcome.publish\",\n lifecycleEvents.publish({\n version: 1,\n type: \"welcome\",\n payload: { environment, ...welcomeBase },\n }),\n );\n yield* options?.activate ?? Effect.void;\n\n yield* Effect.logDebug(\"Accepting commands\");\n yield* commandGate.signalCommandReady;\n yield* runStartupPhase(\n \"ready.publish\",\n lifecycleEvents.publish({\n version: 1,\n type: \"ready\",\n payload: {\n at: DateTime.formatIso(yield* DateTime.now),\n environment,\n ...(updateOutcome === undefined ? {} : { updateOutcome }),\n },\n }),\n );\n yield* Effect.logDebug(\"startup phase: complete\");", + "checksum": "8ed6988b351036573a062e87716f4a1154d4d3e69710d8041f6b849965ced364" + }, + "command-readiness-middleware": { + "id": "command-readiness-middleware", + "path": "apps/server/src/server.ts", + "start": 431, + "end": 437, + "language": "typescript", + "label": "Global route-execution readiness barrier", + "code": "const commandReadinessLayer = HttpRouter.middleware(\n (httpEffect) =>\n Effect.flatMap(ServerRuntimeStartup.ServerRuntimeStartup, (startup) =>\n startup.awaitCommandReady.pipe(Effect.orDie, Effect.andThen(httpEffect)),\n ),\n { global: true },\n);", + "checksum": "656843f40a4ec8a4e2b1a5dca6671d9264c33edd92731693262a960972ff770f" + }, + "rpc-stream-contracts": { + "id": "rpc-stream-contracts", + "path": "packages/contracts/src/rpc.ts", + "start": 933, + "end": 948, + "language": "typescript", + "label": "Typed shell and thread streaming RPC contracts", + "code": "export const WsOrchestrationSubscribeShellRpc = Rpc.make(ORCHESTRATION_WS_METHODS.subscribeShell, {\n payload: OrchestrationRpcSchemas.subscribeShell.input,\n success: OrchestrationRpcSchemas.subscribeShell.output,\n error: Schema.Union([OrchestrationGetSnapshotError, EnvironmentAuthorizationError]),\n stream: true,\n});\n\nexport const WsOrchestrationSubscribeThreadRpc = Rpc.make(\n ORCHESTRATION_WS_METHODS.subscribeThread,\n {\n payload: OrchestrationRpcSchemas.subscribeThread.input,\n success: OrchestrationRpcSchemas.subscribeThread.output,\n error: Schema.Union([OrchestrationGetSnapshotError, EnvironmentAuthorizationError]),\n stream: true,\n },\n);", + "checksum": "efb34f4d793fed351ef25bd2e61b7c448bea8748c2edede590ba9a0f72336b0b" + }, + "thread-resume-race": { + "id": "thread-resume-race", + "path": "apps/server/src/ws.ts", + "start": 1394, + "end": 1521, + "language": "typescript", + "label": "Attach-before-read and bounded thread replay", + "code": " [ORCHESTRATION_WS_METHODS.subscribeThread]: (input) =>\n observeRpcStreamEffect(\n ORCHESTRATION_WS_METHODS.subscribeThread,\n Effect.gen(function* () {\n const isThisThreadDetailEvent = (event: OrchestrationEvent) =>\n event.aggregateKind === \"thread\" &&\n event.aggregateId === input.threadId &&\n isThreadDetailEvent(event);\n\n const liveStream = orchestrationEngine.streamDomainEvents.pipe(\n Stream.filter(isThisThreadDetailEvent),\n Stream.map((event) => ({\n kind: \"event\" as const,\n event: projectActivityEvent(event),\n })),\n );\n\n // Attach live delivery before reading either replay or snapshot state.\n // Otherwise an event published while the snapshot is loading is lost.\n const liveBuffer = yield* Queue.unbounded();\n yield* Effect.forkScoped(\n liveStream.pipe(Stream.runForEach((item) => Queue.offer(liveBuffer, item))),\n );\n const bufferedLiveStream = Stream.fromQueue(liveBuffer);\n\n // When the client already loaded the snapshot over HTTP it passes\n // that snapshot's sequence, and we resume the live subscription by\n // replaying persisted events after it instead of re-sending the\n // (potentially multi-KB) snapshot frame over the socket.\n //\n // The live PubSub subscription must be attached *before* draining\n // the catch-up replay, otherwise events published during the replay\n // window are dropped (they are past the persisted tail the replay\n // read, but the live stream is not yet subscribed). So fork the\n // live stream into a buffer bound to this stream's scope, then emit\n // catch-up followed by the buffered/ongoing live events. Overlapping\n // events are deduped by sequence on the client.\n //\n // The replay is bounded to the projection head captured below. The\n // catch-up range is normally tiny (a fresh HTTP snapshot sequence),\n // but a stale cached cursor can sit hundreds of thousands of global\n // events behind — replaying that decodes every intervening event\n // (including every other thread's tool payloads) only to discard\n // almost all of them, which has OOM-killed servers on large\n // databases. A truncated replay would silently drop this thread's\n // events, so past the gap cap we reset the client with a fresh\n // thread snapshot instead, exactly like subscribeShell above.\n if (input.afterSequence !== undefined) {\n const afterSequence = input.afterSequence;\n const headSequence = yield* orchestrationEngine.latestSequence;\n const replayGap = headSequence - afterSequence;\n if (replayGap >= 0 && replayGap <= THREAD_RESUME_MAX_GAP) {\n const catchUpStream = orchestrationEngine\n .readEvents(afterSequence, replayGap)\n .pipe(\n Stream.filter(isThisThreadDetailEvent),\n Stream.map((event) => ({\n kind: \"event\" as const,\n event: projectActivityEvent(event),\n })),\n Stream.mapError(\n (cause) =>\n new OrchestrationGetSnapshotError({\n message: `Failed to replay thread ${input.threadId} events`,\n cause,\n }),\n ),\n );\n const afterCatchUp =\n input.requestCompletionMarker === true\n ? Stream.concat(\n Stream.fromEffect(\n Queue.offer(liveBuffer, { kind: \"synchronized\" as const }),\n ).pipe(Stream.drain),\n bufferedLiveStream,\n )\n : bufferedLiveStream;\n return Stream.concat(catchUpStream, afterCatchUp);\n }\n // Gap too large (or cursor ahead of authoritative state): fall\n // through to the snapshot path so the client converges from a\n // fresh thread detail instead of an unbounded replay.\n }\n\n const snapshot = yield* projectionSnapshotQuery\n .getThreadDetailSnapshot(\n input.threadId,\n // Windowing the fallback snapshot is opt-in per subscription:\n // clients that don't send turnLimit (including all\n // pre-pagination clients) get the full thread, since they\n // have no way to load older pages.\n input.turnLimit === undefined ? undefined : { turnLimit: input.turnLimit },\n )\n .pipe(\n Effect.mapError(\n (cause) =>\n new OrchestrationGetSnapshotError({\n message: `Failed to load thread ${input.threadId}`,\n cause,\n }),\n ),\n );\n\n if (Option.isNone(snapshot)) {\n return yield* new OrchestrationGetSnapshotError({\n message: `Thread ${input.threadId} was not found`,\n cause: input.threadId,\n });\n }\n\n const afterSnapshot =\n input.requestCompletionMarker === true\n ? Stream.concat(\n Stream.fromEffect(\n Queue.offer(liveBuffer, { kind: \"synchronized\" as const }),\n ).pipe(Stream.drain),\n bufferedLiveStream,\n )\n : bufferedLiveStream;\n return Stream.concat(\n Stream.make({\n kind: \"snapshot\" as const,\n snapshot: projectThreadDetailSnapshot(snapshot.value),\n }),\n afterSnapshot,\n );\n }),\n { \"rpc.aggregate\": \"orchestration\" },", + "checksum": "0f57dcc6b6815e4cd36c8eca74f696252ba35e6d8446a41d66f413eb214f54f3" + }, + "auth-credential-precedence": { + "id": "auth-credential-precedence", + "path": "apps/server/src/auth/EnvironmentAuth.ts", + "start": 592, + "end": 632, + "language": "typescript", + "label": "Cookie, Bearer, and DPoP authentication precedence", + "code": " const authenticateRequest = (\n request: HttpServerRequest.HttpServerRequest,\n ): Effect.Effect => {\n const cookieToken = request.cookies[sessions.cookieName];\n const bearerToken = parseBearerToken(request);\n const dpopToken = parseDpopToken(request);\n const credential = cookieToken ?? bearerToken ?? dpopToken;\n if (!credential) {\n return Effect.fail(new ServerAuthMissingCredentialError({}));\n }\n return authenticateToken(credential).pipe(\n Effect.flatMap((session) => {\n if (session.proofKeyThumbprint) {\n if (!dpopToken || dpopToken !== credential) {\n return Effect.fail(\n new ServerAuthInvalidCredentialError({\n diagnostic: \"DPoP-bound access token requires DPoP authorization.\",\n }),\n );\n }\n return verifyRequestDpopProof({\n request,\n expectedThumbprint: session.proofKeyThumbprint,\n expectedAccessToken: dpopToken,\n }).pipe(\n Effect.provideService(ServerSecretStore.ServerSecretStore, secretStore),\n Effect.provideService(Crypto.Crypto, crypto),\n Effect.as(session),\n );\n }\n if (dpopToken) {\n return Effect.fail(\n new ServerAuthInvalidCredentialError({\n diagnostic: \"DPoP authorization requires a proof-bound access token.\",\n }),\n );\n }\n return Effect.succeed(session);\n }),\n );\n };", + "checksum": "d18c91b8d4ceaa79bc875630b87a342328ced1fc8a43556643ea32431af3232d" + }, + "websocket-ticket-verification": { + "id": "websocket-ticket-verification", + "path": "apps/server/src/auth/SessionStore.ts", + "start": 785, + "end": 851, + "language": "typescript", + "label": "WebSocket ticket verification reloads session state", + "code": " const verifyWebSocketToken: SessionStore[\"Service\"][\"verifyWebSocketToken\"] = Effect.fn(\n \"SessionStore.verifyWebSocketToken\",\n )(function* (token) {\n const [encodedPayload, signature] = token.split(\".\");\n if (!encodedPayload || !signature) {\n return yield* new MalformedWebSocketTokenError({});\n }\n\n const expectedSignature = signPayload(encodedPayload, signingSecret);\n if (!timingSafeEqualBase64Url(signature, expectedSignature)) {\n return yield* new InvalidWebSocketTokenSignatureError({});\n }\n\n const claims = yield* decodeWebSocketClaims(base64UrlDecodeUtf8(encodedPayload)).pipe(\n Effect.mapError((cause) => new InvalidWebSocketTokenPayloadError({ cause })),\n );\n\n const observedAt = yield* DateTime.now;\n const expiresAt = DateTime.make(claims.exp);\n if (Option.isNone(expiresAt)) {\n return yield* new InvalidSessionExpirationClaimError({\n sessionId: claims.sid,\n expirationClaim: claims.exp,\n });\n }\n if (claims.exp <= observedAt.epochMilliseconds) {\n return yield* new WebSocketTokenExpiredError({\n sessionId: claims.sid,\n expiresAt: expiresAt.value,\n observedAt,\n });\n }\n\n const row = yield* authSessions\n .getById({ sessionId: claims.sid })\n .pipe(\n Effect.mapError(\n (cause) => new WebSocketTokenVerificationError({ sessionId: claims.sid, cause }),\n ),\n );\n if (Option.isNone(row)) {\n return yield* new UnknownWebSocketSessionError({ sessionId: claims.sid });\n }\n if (row.value.expiresAt.epochMilliseconds <= observedAt.epochMilliseconds) {\n return yield* new WebSocketSessionExpiredError({\n sessionId: claims.sid,\n expiresAt: row.value.expiresAt,\n observedAt,\n });\n }\n if (row.value.revokedAt !== null) {\n return yield* new WebSocketSessionRevokedError({\n sessionId: claims.sid,\n revokedAt: row.value.revokedAt,\n });\n }\n\n return {\n sessionId: row.value.sessionId,\n token,\n method: row.value.method,\n client: toClientMetadata(row.value.client),\n expiresAt: row.value.expiresAt,\n subject: row.value.subject,\n scopes: row.value.scopes,\n } satisfies VerifiedSession;\n });", + "checksum": "dcb5b1a1fbdbcb3efae560e941aeed24343450e553fb345e55b71c1707bd0f9f" + }, + "command-union-boundary": { + "id": "command-union-boundary", + "path": "packages/contracts/src/orchestration.ts", + "start": 913, + "end": 1057, + "language": "typescript", + "label": "Client-dispatchable, normalized, and trusted internal command unions", + "code": "const DispatchableClientOrchestrationCommand = Schema.Union([\n ProjectCreateCommand,\n ProjectMetaUpdateCommand,\n ProjectDeleteCommand,\n ThreadCreateCommand,\n ThreadDeleteCommand,\n ThreadArchiveCommand,\n ThreadUnarchiveCommand,\n ThreadSettleCommand,\n ThreadUnsettleCommand,\n ThreadSnoozeCommand,\n ThreadUnsnoozeCommand,\n ThreadPinCommand,\n ThreadUnpinCommand,\n ThreadPinReorderCommand,\n ThreadMetaUpdateCommand,\n ThreadRuntimeModeSetCommand,\n ThreadInteractionModeSetCommand,\n ThreadTurnStartCommand,\n ThreadTurnInterruptCommand,\n ThreadApprovalRespondCommand,\n ThreadUserInputRespondCommand,\n ThreadCheckpointRevertCommand,\n ThreadSessionStopCommand,\n]);\nexport type DispatchableClientOrchestrationCommand =\n typeof DispatchableClientOrchestrationCommand.Type;\n\nexport const ClientOrchestrationCommand = Schema.Union([\n ProjectCreateCommand,\n ProjectMetaUpdateCommand,\n ProjectDeleteCommand,\n ThreadCreateCommand,\n ThreadDeleteCommand,\n ThreadArchiveCommand,\n ThreadUnarchiveCommand,\n ThreadSettleCommand,\n ThreadUnsettleCommand,\n ThreadSnoozeCommand,\n ThreadUnsnoozeCommand,\n ThreadPinCommand,\n ThreadUnpinCommand,\n ThreadPinReorderCommand,\n ThreadMetaUpdateCommand,\n ThreadRuntimeModeSetCommand,\n ThreadInteractionModeSetCommand,\n ClientThreadTurnStartCommand,\n ThreadTurnInterruptCommand,\n ThreadApprovalRespondCommand,\n ThreadUserInputRespondCommand,\n ThreadCheckpointRevertCommand,\n ThreadSessionStopCommand,\n]);\nexport type ClientOrchestrationCommand = typeof ClientOrchestrationCommand.Type;\n\nconst ThreadSessionSetCommand = Schema.Struct({\n type: Schema.Literal(\"thread.session.set\"),\n commandId: CommandId,\n threadId: ThreadId,\n session: OrchestrationSession,\n createdAt: IsoDateTime,\n});\n\nconst ThreadMessageAssistantDeltaCommand = Schema.Struct({\n type: Schema.Literal(\"thread.message.assistant.delta\"),\n commandId: CommandId,\n threadId: ThreadId,\n messageId: MessageId,\n delta: Schema.String,\n turnId: Schema.optional(TurnId),\n createdAt: IsoDateTime,\n});\n\nconst ThreadMessageAssistantCompleteCommand = Schema.Struct({\n type: Schema.Literal(\"thread.message.assistant.complete\"),\n commandId: CommandId,\n threadId: ThreadId,\n messageId: MessageId,\n turnId: Schema.optional(TurnId),\n createdAt: IsoDateTime,\n});\n\nconst ThreadProposedPlanUpsertCommand = Schema.Struct({\n type: Schema.Literal(\"thread.proposed-plan.upsert\"),\n commandId: CommandId,\n threadId: ThreadId,\n proposedPlan: OrchestrationProposedPlan,\n createdAt: IsoDateTime,\n});\n\nconst ThreadTurnDiffCompleteCommand = Schema.Struct({\n type: Schema.Literal(\"thread.turn.diff.complete\"),\n commandId: CommandId,\n threadId: ThreadId,\n turnId: TurnId,\n completedAt: IsoDateTime,\n checkpointRef: CheckpointRef,\n status: OrchestrationCheckpointStatus,\n files: Schema.Array(OrchestrationCheckpointFile),\n assistantMessageId: Schema.optional(MessageId),\n checkpointTurnCount: NonNegativeInt,\n createdAt: IsoDateTime,\n});\n\nconst ThreadActivityAppendCommand = Schema.Struct({\n type: Schema.Literal(\"thread.activity.append\"),\n commandId: CommandId,\n threadId: ThreadId,\n activity: OrchestrationThreadActivity,\n createdAt: IsoDateTime,\n});\n\nconst ThreadRevertCompleteCommand = Schema.Struct({\n type: Schema.Literal(\"thread.revert.complete\"),\n commandId: CommandId,\n threadId: ThreadId,\n turnCount: NonNegativeInt,\n createdAt: IsoDateTime,\n});\n\nconst ThreadTitleRegenerationCompleteCommand = Schema.Struct({\n type: Schema.Literal(\"thread.title.regeneration.complete\"),\n commandId: CommandId,\n threadId: ThreadId,\n requestId: CommandId,\n title: Schema.optional(TrimmedNonEmptyString),\n});\n\nconst InternalOrchestrationCommand = Schema.Union([\n ThreadSessionSetCommand,\n ThreadMessageAssistantDeltaCommand,\n ThreadMessageAssistantCompleteCommand,\n ThreadProposedPlanUpsertCommand,\n ThreadTurnDiffCompleteCommand,\n ThreadActivityAppendCommand,\n ThreadRevertCompleteCommand,\n ThreadTitleRegenerationCompleteCommand,\n]);\nexport type InternalOrchestrationCommand = typeof InternalOrchestrationCommand.Type;\n\nexport const OrchestrationCommand = Schema.Union([\n DispatchableClientOrchestrationCommand,\n InternalOrchestrationCommand,\n]);\nexport type OrchestrationCommand = typeof OrchestrationCommand.Type;", + "checksum": "318896f2aa24bd67ad6b1e40f4fd3b7ac6b7f29240f9290046af5135c8048721" + }, + "normalizer-staging-boundary": { + "id": "normalizer-staging-boundary", + "path": "apps/server/src/orchestration/Normalizer.ts", + "start": 18, + "end": 179, + "language": "typescript", + "label": "Pre-transaction timestamp, workspace, and attachment staging", + "code": "export const canonicalizeClientCommandTimestamps = (\n command: ClientOrchestrationCommand,\n receivedAt: IsoDateTime,\n): ClientOrchestrationCommand => {\n const canonicalCommand =\n \"createdAt\" in command\n ? {\n ...command,\n createdAt: receivedAt,\n }\n : command;\n\n if (canonicalCommand.type !== \"thread.turn.start\" || !canonicalCommand.bootstrap?.createThread) {\n return canonicalCommand;\n }\n\n return {\n ...canonicalCommand,\n bootstrap: {\n ...canonicalCommand.bootstrap,\n createThread: {\n ...canonicalCommand.bootstrap.createThread,\n createdAt: receivedAt,\n },\n },\n };\n};\n\nexport const normalizeDispatchCommand = (command: ClientOrchestrationCommand) =>\n Effect.gen(function* () {\n const receivedAt = DateTime.formatIso(yield* DateTime.now);\n const canonicalCommand = canonicalizeClientCommandTimestamps(command, receivedAt);\n const fileSystem = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const serverConfig = yield* ServerConfig;\n const workspacePaths = yield* WorkspacePaths.WorkspacePaths;\n\n const normalizeProjectWorkspaceRoot = (workspaceRoot: string) =>\n workspacePaths.normalizeWorkspaceRoot(workspaceRoot).pipe(\n Effect.mapError(\n (cause) =>\n new OrchestrationDispatchCommandError({\n message: cause.message,\n }),\n ),\n );\n\n const normalizeProjectWorkspaceRootForCreate = (\n workspaceRoot: string,\n createIfMissing: boolean | undefined,\n ) =>\n workspacePaths\n .normalizeWorkspaceRoot(workspaceRoot, {\n createIfMissing: createIfMissing === true,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new OrchestrationDispatchCommandError({\n message: cause.message,\n }),\n ),\n );\n\n if (canonicalCommand.type === \"project.create\") {\n return {\n ...canonicalCommand,\n workspaceRoot: yield* normalizeProjectWorkspaceRootForCreate(\n canonicalCommand.workspaceRoot,\n canonicalCommand.createWorkspaceRootIfMissing,\n ),\n createWorkspaceRootIfMissing: canonicalCommand.createWorkspaceRootIfMissing === true,\n } satisfies OrchestrationCommand;\n }\n\n if (\n canonicalCommand.type === \"project.meta.update\" &&\n canonicalCommand.workspaceRoot !== undefined\n ) {\n return {\n ...canonicalCommand,\n workspaceRoot: yield* normalizeProjectWorkspaceRoot(canonicalCommand.workspaceRoot),\n } satisfies OrchestrationCommand;\n }\n\n if (canonicalCommand.type !== \"thread.turn.start\") {\n return canonicalCommand as OrchestrationCommand;\n }\n\n const normalizedAttachments = yield* Effect.forEach(\n canonicalCommand.message.attachments,\n (attachment) =>\n Effect.gen(function* () {\n const parsed = parseBase64DataUrl(attachment.dataUrl);\n if (!parsed || !parsed.mimeType.startsWith(\"image/\")) {\n return yield* new OrchestrationDispatchCommandError({\n message: `Invalid image attachment payload for '${attachment.name}'.`,\n });\n }\n\n const bytes = Buffer.from(parsed.base64, \"base64\");\n if (bytes.byteLength === 0 || bytes.byteLength > PROVIDER_SEND_TURN_MAX_IMAGE_BYTES) {\n return yield* new OrchestrationDispatchCommandError({\n message: `Image attachment '${attachment.name}' is empty or too large.`,\n });\n }\n\n const attachmentId = createAttachmentId(canonicalCommand.threadId);\n if (!attachmentId) {\n return yield* new OrchestrationDispatchCommandError({\n message: \"Failed to create a safe attachment id.\",\n });\n }\n\n const persistedAttachment = {\n type: \"image\" as const,\n id: attachmentId,\n name: attachment.name,\n mimeType: parsed.mimeType.toLowerCase(),\n sizeBytes: bytes.byteLength,\n };\n\n const attachmentPath = resolveAttachmentPath({\n attachmentsDir: serverConfig.attachmentsDir,\n attachment: persistedAttachment,\n });\n if (!attachmentPath) {\n return yield* new OrchestrationDispatchCommandError({\n message: `Failed to resolve persisted path for '${attachment.name}'.`,\n });\n }\n\n yield* fileSystem.makeDirectory(path.dirname(attachmentPath), { recursive: true }).pipe(\n Effect.mapError(\n () =>\n new OrchestrationDispatchCommandError({\n message: `Failed to create attachment directory for '${attachment.name}'.`,\n }),\n ),\n );\n yield* fileSystem.writeFile(attachmentPath, bytes).pipe(\n Effect.mapError(\n () =>\n new OrchestrationDispatchCommandError({\n message: `Failed to persist attachment '${attachment.name}'.`,\n }),\n ),\n );\n\n return persistedAttachment;\n }),\n { concurrency: 1 },\n );\n\n return {\n ...canonicalCommand,\n message: {\n ...canonicalCommand.message,\n attachments: normalizedAttachments,\n },\n } satisfies OrchestrationCommand;\n });", + "checksum": "a6b4f3d074784de7397eed20ee1bfb7fa2de4eca5f62c5443b1962f1cdb5d6db" + }, + "turn-atomic-batch": { + "id": "turn-atomic-batch", + "path": "apps/server/src/orchestration/decider.ts", + "start": 926, + "end": 1036, + "language": "typescript", + "label": "Existing-thread turn plans a two-to-four-event batch", + "code": " case \"thread.turn.start\": {\n const targetThread = yield* requireThread({\n readModel,\n command,\n threadId: command.threadId,\n });\n const sourceProposedPlan = command.sourceProposedPlan;\n const sourceThread = sourceProposedPlan\n ? yield* requireThread({\n readModel,\n command,\n threadId: sourceProposedPlan.threadId,\n })\n : null;\n const sourcePlan =\n sourceProposedPlan && sourceThread\n ? sourceThread.proposedPlans.find((entry) => entry.id === sourceProposedPlan.planId)\n : null;\n if (sourceProposedPlan && !sourcePlan) {\n return yield* new OrchestrationCommandInvariantError({\n commandType: command.type,\n detail: `Proposed plan '${sourceProposedPlan.planId}' does not exist on thread '${sourceProposedPlan.threadId}'.`,\n });\n }\n if (sourceThread && sourceThread.projectId !== targetThread.projectId) {\n return yield* new OrchestrationCommandInvariantError({\n commandType: command.type,\n detail: `Proposed plan '${sourceProposedPlan?.planId}' belongs to thread '${sourceThread.id}' in a different project.`,\n });\n }\n const userMessageEvent: Omit = {\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"thread.message-sent\",\n payload: {\n threadId: command.threadId,\n messageId: command.message.messageId,\n role: \"user\",\n text: command.message.text,\n attachments: command.message.attachments,\n turnId: null,\n streaming: false,\n createdAt: command.createdAt,\n updatedAt: command.createdAt,\n },\n };\n const turnStartRequestedEvent: Omit = {\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n causationEventId: userMessageEvent.eventId,\n type: \"thread.turn-start-requested\",\n payload: {\n threadId: command.threadId,\n messageId: command.message.messageId,\n ...(command.modelSelection !== undefined\n ? { modelSelection: command.modelSelection }\n : {}),\n ...(command.titleSeed !== undefined ? { titleSeed: command.titleSeed } : {}),\n runtimeMode: targetThread.runtimeMode,\n interactionMode: targetThread.interactionMode,\n ...(sourceProposedPlan !== undefined ? { sourceProposedPlan } : {}),\n createdAt: command.createdAt,\n },\n };\n // Real activity resets ANY override: it wakes an explicitly settled\n // thread, and it clears a keep-active pin back to neutral so the\n // thread can auto-settle again after this burst of work goes stale.\n // A snooze clears the same way — sending a message to a snoozed\n // thread is the user re-engaging, so the return ticket is spent.\n const lifecycleResetEvents: Array> = [];\n if (targetThread.settledOverride !== null) {\n lifecycleResetEvents.push({\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"thread.unsettled\",\n payload: {\n threadId: command.threadId,\n reason: \"activity\",\n updatedAt: command.createdAt,\n },\n });\n }\n if (targetThread.snoozedUntil != null) {\n lifecycleResetEvents.push({\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"thread.unsnoozed\",\n payload: {\n threadId: command.threadId,\n reason: \"activity\",\n updatedAt: command.createdAt,\n },\n });\n }\n return [...lifecycleResetEvents, userMessageEvent, turnStartRequestedEvent];", + "checksum": "0d0fe115f9ae7b07e903de3cca6dfd815044b54aa8a56b75417acb4a17410c4d" + }, + "engine-commit-publication": { + "id": "engine-commit-publication", + "path": "apps/server/src/orchestration/Layers/OrchestrationEngine.ts", + "start": 197, + "end": 259, + "language": "typescript", + "label": "SQL commit followed by in-memory fold and hot publication", + "code": " const committedCommand = yield* sql\n .withTransaction(\n Effect.gen(function* () {\n const committedEvents: OrchestrationEvent[] = [];\n let nextCommandReadModel = commandReadModel;\n\n for (const nextEvent of eventBases) {\n const savedEvent = yield* eventStore.append(nextEvent);\n nextCommandReadModel = yield* projectEvent(nextCommandReadModel, savedEvent);\n yield* projectionPipeline.projectEvent(savedEvent);\n committedEvents.push(savedEvent);\n }\n\n const lastSavedEvent = committedEvents.at(-1) ?? null;\n if (lastSavedEvent === null) {\n return yield* new OrchestrationCommandInvariantError({\n commandType: envelope.command.type,\n detail: \"Command produced no events.\",\n });\n }\n\n yield* commandReceiptRepository.upsert({\n commandId: envelope.command.commandId,\n aggregateKind: lastSavedEvent.aggregateKind,\n aggregateId: lastSavedEvent.aggregateId,\n acceptedAt: lastSavedEvent.occurredAt,\n resultSequence: lastSavedEvent.sequence,\n status: \"accepted\",\n error: null,\n });\n\n return {\n committedEvents,\n lastSequence: lastSavedEvent.sequence,\n nextCommandReadModel,\n } as const;\n }),\n )\n .pipe(\n Effect.catchTag(\"SqlError\", (sqlError) =>\n Effect.fail(\n toPersistenceSqlError(\"OrchestrationEngine.processEnvelope:transaction\")(sqlError),\n ),\n ),\n );\n\n commandReadModel = committedCommand.nextCommandReadModel;\n for (const [index, event] of committedCommand.committedEvents.entries()) {\n yield* PubSub.publish(eventPubSub, event);\n if (index === 0) {\n yield* Metric.update(\n Metric.withAttributes(\n orchestrationCommandAckDuration,\n metricAttributes({\n ...baseMetricAttributes,\n ackEventType: event.type,\n }),\n ),\n Duration.millis(Math.max(0, (yield* Clock.currentTimeMillis) - envelope.startedAtMs)),\n );\n }\n }\n return { sequence: committedCommand.lastSequence };", + "checksum": "24e00da0c432e501172e3847817fde311d8656b07e3b8261c657ecf6b4c35d4c" + }, + "command-receipt-schema": { + "id": "command-receipt-schema", + "path": "apps/server/src/persistence/Services/OrchestrationCommandReceipts.ts", + "start": 25, + "end": 33, + "language": "typescript", + "label": "Durable command receipt fields", + "code": "export const OrchestrationCommandReceipt = Schema.Struct({\n commandId: CommandId,\n aggregateKind: OrchestrationAggregateKind,\n aggregateId: Schema.Union([ProjectId, ThreadId]),\n acceptedAt: IsoDateTime,\n resultSequence: NonNegativeInt,\n status: OrchestrationCommandReceiptStatus,\n error: Schema.NullOr(Schema.String),\n});", + "checksum": "264f74e9b17b136921f154402d8dc87dd27cb86328043769f9293f1d8a8b451b" + }, + "projection-transaction-cursor": { + "id": "projection-transaction-cursor", + "path": "apps/server/src/orchestration/Layers/ProjectionPipeline.ts", + "start": 1609, + "end": 1678, + "language": "typescript", + "label": "Ordered projectors, transactional cursor updates, and attachment side effects", + "code": " const projectors: ReadonlyArray = [\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.projects,\n apply: applyProjectsProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.threadMessages,\n apply: applyThreadMessagesProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.threadProposedPlans,\n apply: applyThreadProposedPlansProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.threadActivities,\n apply: applyThreadActivitiesProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.threadSessions,\n apply: applyThreadSessionsProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.threadTurns,\n apply: applyThreadTurnsProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.checkpoints,\n apply: applyCheckpointsProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.pendingApprovals,\n apply: applyPendingApprovalsProjection,\n },\n {\n name: ORCHESTRATION_PROJECTOR_NAMES.threads,\n apply: applyThreadsProjection,\n },\n ];\n\n const runProjectorForEvent = Effect.fn(\"runProjectorForEvent\")(function* (\n projector: ProjectorDefinition,\n event: OrchestrationEvent,\n ) {\n const attachmentSideEffects: AttachmentSideEffects = {\n deletedThreadIds: new Set(),\n prunedThreadRelativePaths: new Map>(),\n };\n\n yield* sql.withTransaction(\n projector.apply(event, attachmentSideEffects).pipe(\n Effect.flatMap(() =>\n projectionStateRepository.upsert({\n projector: projector.name,\n lastAppliedSequence: event.sequence,\n updatedAt: event.occurredAt,\n }),\n ),\n ),\n );\n\n yield* runAttachmentSideEffects(attachmentSideEffects).pipe(\n Effect.catch((cause) =>\n Effect.logWarning(\"failed to apply projected attachment side-effects\", {\n projector: projector.name,\n sequence: event.sequence,\n eventType: event.type,\n cause,\n }),\n ),\n );", + "checksum": "ec226c4bd720884378ba5cb08e9527043641bfaac002455052b75f36ee02daa0" + }, + "snapshot-safe-watermark": { + "id": "snapshot-safe-watermark", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 195, + "end": 258, + "language": "typescript", + "label": "Snapshot watermark is the minimum required projector cursor", + "code": "const REQUIRED_SNAPSHOT_PROJECTORS = [\n ORCHESTRATION_PROJECTOR_NAMES.projects,\n ORCHESTRATION_PROJECTOR_NAMES.threads,\n ORCHESTRATION_PROJECTOR_NAMES.threadMessages,\n ORCHESTRATION_PROJECTOR_NAMES.threadProposedPlans,\n ORCHESTRATION_PROJECTOR_NAMES.threadActivities,\n ORCHESTRATION_PROJECTOR_NAMES.threadSessions,\n ORCHESTRATION_PROJECTOR_NAMES.checkpoints,\n] as const;\n\nfunction maxIso(left: string | null, right: string): string {\n if (left === null) {\n return right;\n }\n return left > right ? left : right;\n}\n\nfunction escapeLikePattern(value: string): string {\n return value.replaceAll(\"!\", \"!!\").replaceAll(\"%\", \"!%\").replaceAll(\"_\", \"!_\");\n}\n\nfunction foldAsciiCase(value: string): string {\n return value.replace(/[A-Z]/g, (character) => character.toLowerCase());\n}\n\nfunction buildSearchSnippet(text: string, query: string): string {\n const normalizedText = text.replace(/\\s+/g, \" \").trim();\n if (normalizedText.length <= 240) {\n return normalizedText;\n }\n\n const normalizedQuery = foldAsciiCase(query.replace(/\\s+/g, \" \").trim());\n const matchIndex = foldAsciiCase(normalizedText).indexOf(normalizedQuery);\n const bodyLength = 236;\n const idealStart = Math.max(0, matchIndex - 72);\n const start = Math.min(idealStart, normalizedText.length - bodyLength);\n const end = Math.min(normalizedText.length, start + bodyLength);\n return `${start > 0 ? \"…\" : \"\"}${normalizedText.slice(start, end)}${\n end < normalizedText.length ? \"…\" : \"\"\n }`;\n}\n\nfunction computeSnapshotSequence(\n stateRows: ReadonlyArray>,\n): number {\n if (stateRows.length === 0) {\n return 0;\n }\n const sequenceByProjector = new Map(\n stateRows.map((row) => [row.projector, row.lastAppliedSequence] as const),\n );\n\n let minSequence = Number.POSITIVE_INFINITY;\n for (const projector of REQUIRED_SNAPSHOT_PROJECTORS) {\n const sequence = sequenceByProjector.get(projector);\n if (sequence === undefined) {\n return 0;\n }\n if (sequence < minSequence) {\n minSequence = sequence;\n }\n }\n\n return Number.isFinite(minSequence) ? minSequence : 0;", + "checksum": "1e59d916d6fd2d68ce72a50afe86973454487d7b5b81d8215e632767ef82f3a4" + }, + "provider-reactor-forked-send": { + "id": "provider-reactor-forked-send", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1060, + "end": 1174, + "language": "typescript", + "label": "Volatile turn dedupe and forked provider send", + "code": " const processTurnStartRequested = Effect.fn(\"processTurnStartRequested\")(function* (\n event: Extract,\n ) {\n const key = turnStartKeyForEvent(event);\n if (yield* hasHandledTurnStartRecently(key)) {\n return;\n }\n\n const thread = yield* resolveThread(event.payload.threadId);\n if (!thread) {\n return;\n }\n\n const message = thread.messages.find((entry) => entry.id === event.payload.messageId);\n if (!message || message.role !== \"user\") {\n yield* appendProviderFailureActivity({\n threadId: event.payload.threadId,\n kind: \"provider.turn.start.failed\",\n summary: \"Provider turn start failed\",\n detail: `User message '${event.payload.messageId}' was not found for turn start request.`,\n turnId: null,\n createdAt: event.payload.createdAt,\n });\n return;\n }\n\n const isFirstUserMessageTurn =\n thread.messages.filter((entry) => entry.role === \"user\").length === 1;\n if (isFirstUserMessageTurn) {\n const project = yield* resolveProject(thread.projectId);\n const generationCwd =\n resolveThreadWorkspaceCwd({\n thread,\n projects: project ? [project] : [],\n }) ?? process.cwd();\n const generationInput = {\n messageText: message.text,\n ...(message.attachments !== undefined ? { attachments: message.attachments } : {}),\n ...(event.payload.titleSeed !== undefined ? { titleSeed: event.payload.titleSeed } : {}),\n };\n\n yield* maybeGenerateAndRenameWorktreeBranchForFirstTurn({\n threadId: event.payload.threadId,\n branch: thread.branch,\n worktreePath: thread.worktreePath,\n ...generationInput,\n }).pipe(Effect.forkScoped);\n\n if (canReplaceThreadTitle(thread.title, event.payload.titleSeed)) {\n yield* maybeGenerateThreadTitleForFirstTurn({\n threadId: event.payload.threadId,\n cwd: generationCwd,\n ...generationInput,\n }).pipe(Effect.forkScoped);\n }\n }\n\n const handleTurnStartFailure = (cause: Cause.Cause) => {\n if (Cause.hasInterruptsOnly(cause)) {\n return Effect.void;\n }\n const detail = formatFailureDetail(cause);\n return setThreadSessionErrorOnTurnStartFailure({\n threadId: event.payload.threadId,\n detail,\n createdAt: event.payload.createdAt,\n }).pipe(\n Effect.flatMap(() =>\n appendProviderFailureActivity({\n threadId: event.payload.threadId,\n kind: \"provider.turn.start.failed\",\n summary: \"Provider turn start failed\",\n detail,\n turnId: null,\n createdAt: event.payload.createdAt,\n }),\n ),\n Effect.asVoid,\n );\n };\n\n const recoverTurnStartFailure = (cause: Cause.Cause) =>\n handleTurnStartFailure(cause).pipe(\n Effect.catchCause((recoveryCause) =>\n Effect.logWarning(\"provider command reactor failed to recover turn start failure\", {\n eventType: event.type,\n threadId: event.payload.threadId,\n cause: Cause.pretty(recoveryCause),\n originalCause: Cause.pretty(cause),\n }),\n ),\n );\n\n const sendTurnRequest = yield* buildSendTurnRequestForThread({\n threadId: event.payload.threadId,\n messageText: message.text,\n ...(message.attachments !== undefined ? { attachments: message.attachments } : {}),\n ...(event.payload.modelSelection !== undefined\n ? { modelSelection: event.payload.modelSelection }\n : {}),\n interactionMode: event.payload.interactionMode,\n createdAt: event.payload.createdAt,\n }).pipe(\n Effect.map(Option.some),\n Effect.catchCause((cause) => handleTurnStartFailure(cause).pipe(Effect.as(Option.none()))),\n );\n\n if (Option.isNone(sendTurnRequest)) {\n return;\n }\n\n yield* providerService\n .sendTurn(sendTurnRequest.value)\n .pipe(Effect.catchCause(recoverTurnStartFailure), Effect.forkScoped);\n });", + "checksum": "e612e2a0295ab2afbf9d9b7a9d4c7da0578c4adf5b052b24892d929ec9995f00" + }, + "sqlite-runtime-pragmas": { + "id": "sqlite-runtime-pragmas", + "path": "apps/server/src/persistence/Layers/Sqlite.ts", + "start": 24, + "end": 66, + "language": "typescript", + "label": "SQLite runtime selection, pragmas, migrations, and scoped layers", + "code": "const makeRuntimeSqliteLayer = Effect.fn(\"makeRuntimeSqliteLayer\")(function* (\n config: RuntimeSqliteLayerConfig,\n) {\n const runtime = process.versions.bun !== undefined ? \"bun\" : \"node\";\n const loader = defaultSqliteClientLoaders[runtime];\n const clientModule = yield* Effect.promise(loader);\n return clientModule.layer(config);\n}, Layer.unwrap);\n\nconst setup = Layer.effectDiscard(\n Effect.gen(function* () {\n const sql = yield* SqlClient.SqlClient;\n // CLI and server write from separate processes; wait rather than fail with SQLITE_BUSY.\n yield* sql`PRAGMA busy_timeout = 5000;`;\n yield* sql`PRAGMA foreign_keys = ON;`;\n yield* sql`PRAGMA journal_mode = WAL;`;\n yield* runMigrations();\n }),\n);\n\nexport const makeSqlitePersistenceLive = Effect.fn(\"makeSqlitePersistenceLive\")(function* (\n dbPath: string,\n) {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n yield* fs.makeDirectory(path.dirname(dbPath), { recursive: true });\n\n return Layer.provideMerge(\n setup,\n makeRuntimeSqliteLayer({\n filename: dbPath,\n spanAttributes: {\n \"db.name\": path.basename(dbPath),\n \"service.name\": \"t3-server\",\n },\n }),\n );\n}, Layer.unwrap);\n\nexport const SqlitePersistenceMemory = Layer.provideMerge(\n setup,\n makeRuntimeSqliteLayer({ filename: \":memory:\" }),\n);", + "checksum": "82fedbba97c179c80bcbcc9e8ae8dc674681b57716267f1b03717e76fcaa5ee3" + }, + "provider-instance-identity-contract": { + "id": "provider-instance-identity-contract", + "path": "packages/contracts/src/providerInstance.ts", + "start": 4, + "end": 32, + "language": "typescript", + "label": "Driver kind and configured instance identity", + "code": " * Splits the historical \"provider kind\" concept into two:\n *\n * - `ProviderDriverKind` is the implementation kind selector (e.g. codex,\n * claudeAgent, a fork's `ollama`, …). It picks which driver package\n * handles the protocol, the probe, the adapter, and text generation.\n *\n * - `ProviderInstanceId` is the routing key (a user-defined slug).\n * Threads, sessions, runtime events, and persisted bindings reference\n * instance ids — never driver kinds — so a user can configure multiple\n * instances of the same driver (e.g. `codex_personal` + `codex_work`),\n * each with independent driver-specific configuration.\n *\n * Forward/backward compatibility invariant\n * ----------------------------------------\n * `ProviderDriverKind` is intentionally an **open** branded slug, not a closed\n * literal union. The server hosts forks, ships in PRs that add drivers, and\n * users frequently roll between branches and forks. Any of those paths can\n * leave `ServerSettings`, persisted thread state, or session bindings\n * referencing a driver that the currently-running build does not know about.\n *\n * The rule: parsing any of those payloads must always succeed, and the\n * runtime is responsible for marking the unknown driver/instance as\n * \"unavailable\" rather than crashing. Built-in drivers shipped by the core\n * product happens to register in a given build is not part of the contract\n * layer. Driver availability is discovered through the runtime registry.\n *\n * Driver-specific configuration is similarly opaque at the contracts layer:\n * drivers live in (or will be extracted to) their own packages and own their\n * config schemas. The contracts package only knows the envelope.", + "checksum": "c407854da6ce483f2fa76dd285ed7e16f5708176e172140e34c28cc8248e9176" + }, + "provider-driver-instance-spi": { + "id": "provider-driver-instance-spi", + "path": "apps/server/src/provider/ProviderDriver.ts", + "start": 55, + "end": 117, + "language": "typescript", + "label": "Scoped provider driver and instance records", + "code": "/**\n * One materialized provider instance. Held by the registry, looked up by\n * `instanceId`, torn down by closing the scope it was created in.\n *\n * The three \"shape\" fields are captured closures owned by this instance —\n * stopping one instance cannot affect another, and starting a second\n * instance of the same driver does not reach into the first instance's\n * state.\n */\nexport interface ProviderInstance {\n readonly instanceId: ProviderInstanceId;\n readonly driverKind: ProviderDriverKind;\n readonly continuationIdentity: ProviderContinuationIdentity;\n readonly displayName: string | undefined;\n readonly accentColor?: string | undefined;\n readonly enabled: boolean;\n readonly snapshot: ServerProviderShape;\n readonly adapter: ProviderAdapterShape;\n readonly textGeneration: TextGeneration.TextGeneration[\"Service\"];\n}\n\nexport interface ProviderContinuationIdentity {\n readonly driverKind: ProviderDriverKind;\n readonly continuationKey: string;\n}\n\nexport function defaultProviderContinuationIdentity(input: {\n readonly driverKind: ProviderDriverKind;\n readonly instanceId: ProviderInstanceId;\n}): ProviderContinuationIdentity {\n return {\n driverKind: input.driverKind,\n continuationKey: `${input.driverKind}:instance:${input.instanceId}`,\n };\n}\n\n/**\n * Inputs the registry passes to a driver's `create` function.\n *\n * `config` is the typed payload — already decoded by the registry through\n * `driver.configSchema`. Drivers never decode their own raw envelope.\n */\nexport interface ProviderDriverCreateInput {\n readonly instanceId: ProviderInstanceId;\n readonly displayName: string | undefined;\n readonly accentColor?: string | undefined;\n readonly environment: ProviderInstanceEnvironment;\n readonly enabled: boolean;\n readonly config: Config;\n}\n\n/**\n * Driver SPI — registered as a plain value, not a Layer.\n *\n * `Config` is whatever the driver decoded from\n * `ProviderInstanceConfig.config`. `R` is the union of infrastructure\n * services the driver depends on; the registry layer aggregates `R` across\n * all registered drivers and the runtime supplies them.\n *\n * `create` is responsible for *all* per-instance state — process handles,\n * pubsub topics, refs, file watchers — and must release them when its\n * scope closes. Two calls to `create` with different `instanceId` /\n * `config` MUST yield instances with no shared mutable state.", + "checksum": "d6fe18a1ab845da33fc05cb2ef822ef1057706345468a8b485daa76abaa9fce6" + }, + "provider-driver-instance-records": { + "id": "provider-driver-instance-records", + "path": "apps/server/src/provider/ProviderDriver.ts", + "start": 4, + "end": 20, + "language": "typescript", + "label": "Plain provider driver and instance record contracts", + "code": " * `ProviderDriver` is a record, not a Context.Service. The thing it produces\n * (`ProviderInstance`) is also a record — three captured closures\n * (`snapshot`, `adapter`, `textGeneration`), an id, and a driver kind. There\n * are intentionally no per-driver Context tags because tags are\n * singleton-per-runtime and we need many instances of the same driver.\n *\n * The only Effect service involved is `ProviderInstanceRegistry`, which\n * owns the live `Map` and is itself a\n * singleton.\n *\n * Driver factories are functions of `(typed config, env)` where:\n * - `typed config` is decoded once by the registry via `configSchema`,\n * so drivers never deal with raw `unknown`.\n * - `env` flows through Effect's R channel. Each driver declares the\n * subset of infrastructure services it needs (FileSystem,\n * ChildProcessSpawner, …) on its `create` return type; the registry\n * layer's R is the union of those, and the runtime layer satisfies it.", + "checksum": "930d8e1e57ebe1e79b5e332f52c8b90908310361e4c752ca17ed828f405b7d22" + }, + "codex-app-server-client-typed-stdio": { + "id": "codex-app-server-client-typed-stdio", + "path": "packages/effect-codex-app-server/src/client.ts", + "start": 140, + "end": 211, + "language": "typescript", + "label": "Typed Codex notifications, requests, and transport calls", + "code": " const dispatchNotification = (\n notification: CodexProtocol.CodexAppServerIncomingNotification,\n ): Effect.Effect => {\n const schema =\n notification.method in CodexRpc.SERVER_NOTIFICATION_PARAMS\n ? CodexRpc.SERVER_NOTIFICATION_PARAMS[\n notification.method as CodexRpc.ServerNotificationMethod\n ]\n : undefined;\n const handlers = notificationHandlers.get(notification.method) ?? [];\n\n if (schema) {\n return decodeNotificationPayload(notification.method, schema, notification.params).pipe(\n Effect.flatMap((decoded) =>\n Effect.forEach(handlers, (handler) => handler(decoded), { discard: true }),\n ),\n Effect.catch(() => Effect.void),\n );\n }\n\n return unknownNotificationHandler\n ? unknownNotificationHandler(notification.method, notification.params).pipe(\n Effect.catch(() => Effect.void),\n )\n : Effect.void;\n };\n\n const dispatchRequest = (\n request: CodexProtocol.CodexAppServerIncomingRequest,\n ): Effect.Effect => {\n if (request.method in CodexRpc.SERVER_REQUEST_PARAMS) {\n const method = request.method as CodexRpc.ServerRequestMethod;\n const payloadSchema = getServerRequestParamSchema(method);\n const responseSchema = getServerRequestResponseSchema(method);\n const handler = requestHandlers.get(method);\n\n return decodeOptionalPayload(method, payloadSchema, request.params).pipe(\n Effect.flatMap((decoded) => runHandler(handler, decoded, method)),\n Effect.flatMap((result) => encodeOptionalPayload(method, responseSchema, result)),\n );\n }\n\n return unknownRequestHandler\n ? unknownRequestHandler(request.method, request.params)\n : Effect.fail(CodexError.CodexAppServerRequestError.methodNotFound(request.method));\n };\n\n const transport = yield* CodexProtocol.makeCodexAppServerPatchedProtocol({\n stdio,\n ...(terminationError ? { terminationError } : {}),\n ...(options.logIncoming !== undefined ? { logIncoming: options.logIncoming } : {}),\n ...(options.logOutgoing !== undefined ? { logOutgoing: options.logOutgoing } : {}),\n ...(options.logger ? { logger: options.logger } : {}),\n onNotification: dispatchNotification,\n onRequest: dispatchRequest,\n });\n\n const request = (\n method: M,\n payload: CodexRpc.ClientRequestParamsByMethod[M],\n ): Effect.Effect =>\n encodeOptionalPayload(method, getClientRequestParamSchema(method), payload).pipe(\n Effect.flatMap((encoded) => transport.request(method, encoded)),\n Effect.flatMap(\n (\n raw,\n ): Effect.Effect<\n CodexRpc.ClientRequestResponsesByMethod[M],\n CodexError.CodexAppServerError\n > => decodeOptionalPayload(method, getClientRequestResponseSchema(method), raw),\n ),\n );", + "checksum": "296b35c49fcafff9f8d6d65ab7403039c19f08f7c8e6f0a9350e22dfc01a1cf1" + }, + "codex-adapter-session-runtime": { + "id": "codex-adapter-session-runtime", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1642, + "end": 1693, + "language": "typescript", + "label": "Codex session replacement and runtime configuration", + "code": " const startSession: CodexAdapterShape[\"startSession\"] = (input) =>\n Effect.scoped(\n Effect.gen(function* () {\n if (input.provider !== undefined && input.provider !== PROVIDER) {\n return yield* new ProviderAdapterValidationError({\n provider: PROVIDER,\n operation: \"startSession\",\n issue: `Expected provider '${PROVIDER}' but received '${input.provider}'.`,\n });\n }\n\n const existing = sessions.get(input.threadId);\n if (existing && !existing.stopped) {\n yield* Effect.suspend(() => stopSessionInternal(existing));\n }\n\n const serviceTier =\n input.modelSelection?.instanceId === boundInstanceId\n ? getCodexServiceTierOptionValue(input.modelSelection)\n : undefined;\n const mcpSession = McpProviderSession.readMcpProviderSession(input.threadId);\n const runtimeInput: CodexSessionRuntimeOptions = {\n threadId: input.threadId,\n providerInstanceId: boundInstanceId,\n cwd: input.cwd ?? process.cwd(),\n binaryPath: codexConfig.binaryPath,\n launchArgs: resolveCodexLaunchArgs(codexConfig.launchArgs, options?.environment),\n ...(options?.environment ? { environment: options.environment } : {}),\n ...(codexConfig.homePath ? { homePath: codexConfig.homePath } : {}),\n ...(isCodexResumeCursorSchema(input.resumeCursor)\n ? { resumeCursor: input.resumeCursor }\n : {}),\n runtimeMode: input.runtimeMode,\n ...(input.modelSelection?.instanceId === boundInstanceId\n ? { model: input.modelSelection.model }\n : {}),\n ...(serviceTier ? { serviceTier } : {}),\n ...(mcpSession\n ? {\n environment: {\n ...(options?.environment ?? process.env),\n T3_MCP_BEARER_TOKEN: mcpSession.authorizationHeader.replace(/^Bearer\\s+/, \"\"),\n },\n appServerArgs: [\n \"-c\",\n `mcp_servers.t3-code.url=${mcpSession.endpoint}`,\n \"-c\",\n 'mcp_servers.t3-code.bearer_token_env_var=\"T3_MCP_BEARER_TOKEN\"',\n ],\n }\n : {}),\n };", + "checksum": "6dd08ac4e760401826162f8d3a0d739b58ed890361c817cb7b726329818dee33" + }, + "codex-adapter-runtime-events": { + "id": "codex-adapter-runtime-events", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1000, + "end": 1084, + "language": "typescript", + "label": "Codex usage, turn, and plan event normalization", + "code": " if (event.method === \"thread/tokenUsage/updated\") {\n const payload = readPayload(\n EffectCodexSchema.V2ThreadTokenUsageUpdatedNotification,\n event.payload,\n );\n const normalizedUsage = payload ? normalizeCodexTokenUsage(payload.tokenUsage) : undefined;\n if (!normalizedUsage) {\n return [];\n }\n return [\n {\n type: \"thread.token-usage.updated\",\n ...runtimeEventBase(event, canonicalThreadId),\n payload: {\n usage: normalizedUsage,\n },\n },\n ];\n }\n\n if (event.method === \"turn/started\") {\n const turnId = event.turnId;\n if (!turnId) {\n return [];\n }\n return [\n {\n ...runtimeEventBase(event, canonicalThreadId),\n turnId,\n type: \"turn.started\",\n payload: {},\n },\n ];\n }\n\n if (event.method === \"turn/completed\") {\n const payload = readPayload(EffectCodexSchema.V2TurnCompletedNotification, event.payload);\n if (!payload) {\n return [];\n }\n const errorMessage = trimText(payload.turn.error?.message);\n return [\n {\n ...runtimeEventBase(event, canonicalThreadId),\n type: \"turn.completed\",\n payload: {\n state: toTurnStatus(payload.turn.status),\n ...(errorMessage ? { errorMessage } : {}),\n },\n },\n ];\n }\n\n if (event.method === \"turn/aborted\") {\n return [\n {\n ...runtimeEventBase(event, canonicalThreadId),\n type: \"turn.aborted\",\n payload: {\n reason: event.message ?? \"Turn aborted\",\n },\n },\n ];\n }\n\n if (event.method === \"turn/plan/updated\") {\n const payload = readPayload(EffectCodexSchema.V2TurnPlanUpdatedNotification, event.payload);\n if (!payload) {\n return [];\n }\n return [\n {\n ...runtimeEventBase(event, canonicalThreadId),\n type: \"turn.plan.updated\",\n payload: {\n ...(trimText(payload.explanation) ? { explanation: trimText(payload.explanation) } : {}),\n plan: payload.plan.map((step) => ({\n step: trimText(step.step) ?? \"step\",\n status:\n step.status === \"completed\" || step.status === \"inProgress\" ? step.status : \"pending\",\n })),\n },\n },\n ];\n }", + "checksum": "4b82fdd81df8d8a061c9f7f0b036c32d5f5bf061f9511189548f386a038f4d9f" + }, + "claude-adapter-query-config": { + "id": "claude-adapter-query-config", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4138, + "end": 4196, + "language": "typescript", + "label": "Claude permission mapping and query option assembly", + "code": " const runtimeModeToPermission: Record = {\n \"auto-accept-edits\": \"acceptEdits\",\n auto: \"auto\",\n \"full-access\": \"bypassPermissions\",\n };\n const permissionMode = runtimeModeToPermission[input.runtimeMode];\n const settings = {\n ...(typeof thinking === \"boolean\" ? { alwaysThinkingEnabled: thinking } : {}),\n ...(fastMode ? { fastMode: true } : {}),\n ...(ultracode ? { ultracode: true } : {}),\n };\n const mcpSession = McpProviderSession.readMcpProviderSession(input.threadId);\n // The attachments dir grant lets the agent Read/copy pasted images at\n // the paths ProviderService injects into the turn text, without an\n // approval prompt. It is a leaf directory holding only attachment\n // files; siblings like secrets/ and state.sqlite stay ungranted.\n const additionalDirectories = [\n ...(input.cwd ? [input.cwd] : []),\n serverConfig.attachmentsDir,\n ];\n const queryOptions: ClaudeQueryOptions = {\n ...(input.cwd ? { cwd: input.cwd } : {}),\n ...(apiModelId ? { model: apiModelId } : {}),\n pathToClaudeCodeExecutable: claudeBinaryPath,\n systemPrompt: { type: \"preset\", preset: \"claude_code\" },\n settingSources: [...CLAUDE_SETTING_SOURCES],\n // `ultracode` is a Claude Code setting, not an API effort level. It is\n // normalized to `xhigh` above and paired with `settings.ultracode`.\n ...(effectiveEffort\n ? {\n effort: effectiveEffort as unknown as NonNullable,\n }\n : {}),\n ...(permissionMode ? { permissionMode } : {}),\n ...(permissionMode === \"bypassPermissions\"\n ? { allowDangerouslySkipPermissions: true }\n : {}),\n ...(Object.keys(settings).length > 0 ? { settings } : {}),\n ...(existingResumeSessionId ? { resume: existingResumeSessionId } : {}),\n ...(newSessionId ? { sessionId: newSessionId } : {}),\n includePartialMessages: true,\n canUseTool,\n env: claudeEnvironment,\n additionalDirectories,\n ...(Object.keys(extraArgs).length > 0 ? { extraArgs } : {}),\n ...(mcpSession\n ? {\n mcpServers: {\n \"t3-code\": {\n type: \"http\",\n url: mcpSession.endpoint,\n headers: {\n Authorization: mcpSession.authorizationHeader,\n },\n },\n },\n }\n : {}),\n };", + "checksum": "0b8c0d482fc624fb131e748d735394497afa9d437867ad9c1bee9f2f2119de08" + }, + "claude-query-invocation": { + "id": "claude-query-invocation", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4223, + "end": 4235, + "language": "typescript", + "label": "Claude SDK query invocation", + "code": " const queryRuntime = yield* Effect.try({\n try: () =>\n createQuery({\n prompt,\n options: queryOptions,\n }),\n catch: (cause) =>\n new ProviderAdapterProcessError({\n provider: PROVIDER,\n threadId,\n detail: \"Failed to start Claude runtime session.\",\n cause,\n }),", + "checksum": "293fa0c20180cf51eb8c621ce2d48809cb91db55d182270896f857d245b8a7a1" + }, + "claude-adapter-interaction-handlers": { + "id": "claude-adapter-interaction-handlers", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 4497, + "end": 4529, + "language": "typescript", + "label": "Claude approval and structured-input deferreds", + "code": " const respondToRequest: ClaudeAdapterShape[\"respondToRequest\"] = Effect.fn(\"respondToRequest\")(\n function* (threadId, requestId, decision) {\n const context = yield* requireSession(threadId);\n const pending = context.pendingApprovals.get(requestId);\n if (!pending) {\n return yield* new ProviderAdapterRequestError({\n provider: PROVIDER,\n method: \"item/requestApproval/decision\",\n detail: `Unknown pending approval request: ${requestId}`,\n });\n }\n\n context.pendingApprovals.delete(requestId);\n yield* Deferred.succeed(pending.decision, decision);\n },\n );\n\n const respondToUserInput: ClaudeAdapterShape[\"respondToUserInput\"] = Effect.fn(\n \"respondToUserInput\",\n )(function* (threadId, requestId, answers) {\n const context = yield* requireSession(threadId);\n const pending = context.pendingUserInputs.get(requestId);\n if (!pending) {\n return yield* new ProviderAdapterRequestError({\n provider: PROVIDER,\n method: \"item/tool/respondToUserInput\",\n detail: `Unknown pending user-input request: ${requestId}`,\n });\n }\n\n context.pendingUserInputs.delete(requestId);\n yield* Deferred.succeed(pending.answers, answers);\n });", + "checksum": "e41de225714771b18fce1f2bcaff53bc79bfff542df321078c5ab4d1ff8086d2" + }, + "acp-client-typed-surface": { + "id": "acp-client-typed-surface", + "path": "packages/effect-acp/src/client.ts", + "start": 40, + "end": 134, + "language": "typescript", + "label": "Typed ACP session command surface", + "code": " {\n readonly raw: AcpClientRaw;\n readonly agent: {\n /**\n * Initializes the ACP session and negotiates capabilities.\n * @see https://agentclientprotocol.com/protocol/schema#initialize\n */\n readonly initialize: (\n payload: AcpSchema.InitializeRequest,\n ) => Effect.Effect;\n /**\n * Performs ACP authentication when the agent requires it.\n * @see https://agentclientprotocol.com/protocol/schema#authenticate\n */\n readonly authenticate: (\n payload: AcpSchema.AuthenticateRequest,\n ) => Effect.Effect;\n /**\n * Logs out the current ACP identity.\n * @see https://agentclientprotocol.com/protocol/schema#logout\n */\n readonly logout: (\n payload: AcpSchema.LogoutRequest,\n ) => Effect.Effect;\n /**\n * Starts a new ACP session.\n * @see https://agentclientprotocol.com/protocol/schema#session/new\n */\n readonly createSession: (\n payload: AcpSchema.NewSessionRequest,\n ) => Effect.Effect;\n /**\n * Loads a previously saved ACP session.\n * @see https://agentclientprotocol.com/protocol/schema#session/load\n */\n readonly loadSession: (\n payload: AcpSchema.LoadSessionRequest,\n ) => Effect.Effect;\n /**\n * Lists available ACP sessions.\n * @see https://agentclientprotocol.com/protocol/schema#session/list\n */\n readonly listSessions: (\n payload: AcpSchema.ListSessionsRequest,\n ) => Effect.Effect;\n /**\n * Forks an ACP session.\n * @see https://agentclientprotocol.com/protocol/schema#session/fork\n */\n readonly forkSession: (\n payload: AcpSchema.ForkSessionRequest,\n ) => Effect.Effect;\n /**\n * Resumes an ACP session.\n * @see https://agentclientprotocol.com/protocol/schema#session/resume\n */\n readonly resumeSession: (\n payload: AcpSchema.ResumeSessionRequest,\n ) => Effect.Effect;\n /**\n * Closes an ACP session.\n * @see https://agentclientprotocol.com/protocol/schema#session/close\n */\n readonly closeSession: (\n payload: AcpSchema.CloseSessionRequest,\n ) => Effect.Effect;\n /**\n * Selects the active model for a session.\n * @see https://agentclientprotocol.com/protocol/schema#session/set_model\n */\n readonly setSessionModel: (\n payload: AcpSchema.SetSessionModelRequest,\n ) => Effect.Effect;\n /**\n * Updates a session configuration option.\n * @see https://agentclientprotocol.com/protocol/schema#session/set_config_option\n */\n readonly setSessionConfigOption: (\n payload: AcpSchema.SetSessionConfigOptionRequest,\n ) => Effect.Effect;\n /**\n * Sends a prompt turn to the agent.\n * @see https://agentclientprotocol.com/protocol/schema#session/prompt\n */\n readonly prompt: (\n payload: AcpSchema.PromptRequest,\n ) => Effect.Effect;\n /**\n * Sends a real ACP `session/cancel` notification.\n * @see https://agentclientprotocol.com/protocol/schema#session/cancel\n */\n readonly cancel: (\n payload: AcpSchema.CancelNotification,\n ) => Effect.Effect;\n };", + "checksum": "7df29bfbf9bbea09d570a845e6123253b3cee19ee9af1f4837fbf6d050040856" + }, + "cursor-session-mode-selection": { + "id": "cursor-session-mode-selection", + "path": "apps/server/src/provider/Layers/CursorAdapter.ts", + "start": 217, + "end": 294, + "language": "typescript", + "label": "Cursor negotiated mode and model selection", + "code": "function resolveRequestedModeId(input: {\n readonly interactionMode: ProviderInteractionMode | undefined;\n readonly runtimeMode: RuntimeMode;\n readonly modeState: AcpSessionModeState | undefined;\n}): string | undefined {\n const modeState = input.modeState;\n if (!modeState) {\n return undefined;\n }\n\n if (input.interactionMode === \"plan\") {\n return findModeByAliases(modeState.availableModes, ACP_PLAN_MODE_ALIASES)?.id;\n }\n\n if (input.runtimeMode === \"approval-required\") {\n return (\n findModeByAliases(modeState.availableModes, ACP_APPROVAL_MODE_ALIASES)?.id ??\n findModeByAliases(modeState.availableModes, ACP_IMPLEMENT_MODE_ALIASES)?.id ??\n modeState.availableModes.find((mode) => !isPlanMode(mode))?.id ??\n modeState.currentModeId\n );\n }\n\n return (\n findModeByAliases(modeState.availableModes, ACP_IMPLEMENT_MODE_ALIASES)?.id ??\n findModeByAliases(modeState.availableModes, ACP_APPROVAL_MODE_ALIASES)?.id ??\n modeState.availableModes.find((mode) => !isPlanMode(mode))?.id ??\n modeState.currentModeId\n );\n}\n\nfunction applyRequestedSessionConfiguration(input: {\n readonly runtime: AcpSessionRuntime.AcpSessionRuntime[\"Service\"];\n readonly runtimeMode: RuntimeMode;\n readonly interactionMode: ProviderInteractionMode | undefined;\n readonly modelSelection:\n | {\n readonly model: string;\n readonly options?: ReadonlyArray | null | undefined;\n }\n | undefined;\n readonly mapError: (context: {\n readonly cause: import(\"effect-acp/errors\").AcpError;\n readonly method: \"session/set_config_option\" | \"session/set_mode\";\n }) => E;\n}): Effect.Effect {\n return Effect.gen(function* () {\n if (input.modelSelection) {\n yield* applyCursorAcpModelSelection({\n runtime: input.runtime,\n model: input.modelSelection.model,\n selections: input.modelSelection.options,\n mapError: ({ cause }) =>\n input.mapError({\n cause,\n method: \"session/set_config_option\",\n }),\n });\n }\n\n const requestedModeId = resolveRequestedModeId({\n interactionMode: input.interactionMode,\n runtimeMode: input.runtimeMode,\n modeState: yield* input.runtime.getModeState,\n });\n if (!requestedModeId) {\n return;\n }\n\n yield* input.runtime.setMode(requestedModeId).pipe(\n Effect.mapError((cause) =>\n input.mapError({\n cause,\n method: \"session/set_mode\",\n }),\n ),\n );\n });", + "checksum": "496d6f291b2b479eb2836b32aeafe501dcc9f66a5d207cb94adf592c9f4a6a78" + }, + "grok-acp-runtime-support": { + "id": "grok-acp-runtime-support", + "path": "apps/server/src/provider/acp/GrokAcpSupport.ts", + "start": 31, + "end": 108, + "language": "typescript", + "label": "Grok ACP launch, authentication, and model selection", + "code": "\nexport function buildGrokAcpSpawnInput(\n grokSettings: GrokAcpRuntimeGrokSettings | null | undefined,\n cwd: string,\n environment?: NodeJS.ProcessEnv,\n): AcpSessionRuntime.AcpSpawnInput {\n return {\n command: grokSettings?.binaryPath || \"grok\",\n args: [\"agent\", \"stdio\"],\n cwd,\n env: {\n ...environment,\n [GROK_OAUTH2_REFERRER_ENV]: T3_CODE_OAUTH_REFERRER,\n },\n };\n}\n\nfunction resolveGrokAuthMethodId(environment: NodeJS.ProcessEnv | undefined): string {\n return environment?.[GROK_API_KEY_ENV]?.trim()\n ? GROK_AUTH_METHOD_API_KEY\n : GROK_AUTH_METHOD_CACHED_TOKEN;\n}\n\nexport const makeGrokAcpRuntime = (\n input: GrokAcpRuntimeInput,\n): Effect.Effect<\n AcpSessionRuntime.AcpSessionRuntime[\"Service\"],\n EffectAcpErrors.AcpError,\n Crypto.Crypto | Scope.Scope\n> =>\n Effect.gen(function* () {\n const acpContext = yield* Layer.build(\n AcpSessionRuntime.layer({\n ...input,\n spawn: buildGrokAcpSpawnInput(input.grokSettings, input.cwd, input.environment),\n authMethodId: resolveGrokAuthMethodId(input.environment),\n }).pipe(\n Layer.provide(\n Layer.succeed(ChildProcessSpawner.ChildProcessSpawner, input.childProcessSpawner),\n ),\n ),\n );\n const runtime = yield* Effect.service(AcpSessionRuntime.AcpSessionRuntime).pipe(\n Effect.provide(acpContext),\n );\n return yield* makeXAiPromptCompletionRuntime(runtime);\n });\n\nexport function resolveGrokAcpBaseModelId(model: string | null | undefined): string {\n const trimmed = model?.trim();\n const base = trimmed && trimmed.length > 0 ? trimmed : \"grok-build\";\n return normalizeModelSlug(base, GROK_DRIVER_KIND) ?? \"grok-build\";\n}\n\nexport function currentGrokModelIdFromSessionSetup(\n sessionSetupResult:\n | EffectAcpSchema.LoadSessionResponse\n | EffectAcpSchema.NewSessionResponse\n | EffectAcpSchema.ResumeSessionResponse,\n): string | undefined {\n return sessionSetupResult.models?.currentModelId?.trim() || undefined;\n}\n\nexport function applyGrokAcpModelSelection(input: {\n readonly runtime: Pick;\n readonly currentModelId: string | undefined;\n readonly requestedModelId: string | undefined;\n readonly mapError: (cause: EffectAcpErrors.AcpError) => E;\n}): Effect.Effect {\n const shouldSwitchModel =\n input.requestedModelId !== undefined && input.requestedModelId !== input.currentModelId;\n if (!shouldSwitchModel) {\n return Effect.succeed(input.currentModelId);\n }\n return input.runtime\n .setSessionModel(input.requestedModelId)\n .pipe(Effect.mapError(input.mapError), Effect.as(input.requestedModelId));\n}", + "checksum": "d76d1518eb9e2c11e37e359f1d1324099034f92d77f9e6f5af7a3d167bcd168a" + }, + "opencode-runtime-ownership": { + "id": "opencode-runtime-ownership", + "path": "apps/server/src/provider/opencodeRuntime.ts", + "start": 140, + "end": 177, + "language": "typescript", + "label": "Local and external OpenCode server ownership", + "code": "export interface OpenCodeRuntimeShape {\n /**\n * Spawns a local OpenCode server process. Its lifetime is bound to the caller's\n * `Scope.Scope` — the child is killed automatically when that scope closes.\n * Consumers that want a long-lived server must create and hold a scope explicitly\n * (see {@link Scope.make}) and close it when done.\n */\n readonly startOpenCodeServerProcess: (input: {\n readonly binaryPath: string;\n readonly environment?: NodeJS.ProcessEnv;\n readonly port?: number;\n readonly hostname?: string;\n readonly timeoutMs?: number;\n }) => Effect.Effect;\n /**\n * Returns a handle to either an externally-managed OpenCode server (when\n * `serverUrl` is provided — no lifetime is attached to the caller's scope) or a\n * freshly spawned local server whose lifetime is bound to the caller's scope.\n */\n readonly connectToOpenCodeServer: (input: {\n readonly binaryPath: string;\n readonly serverUrl?: string | null;\n readonly environment?: NodeJS.ProcessEnv;\n readonly port?: number;\n readonly hostname?: string;\n readonly timeoutMs?: number;\n }) => Effect.Effect;\n readonly runOpenCodeCommand: (input: {\n readonly binaryPath: string;\n readonly args: ReadonlyArray;\n readonly environment?: NodeJS.ProcessEnv;\n readonly cwd?: string;\n }) => Effect.Effect;\n readonly createOpenCodeSdkClient: (input: {\n readonly baseUrl: string;\n readonly directory: string;\n readonly serverPassword?: string;\n }) => OpencodeClient;", + "checksum": "846dada188ac95cfa4616580a5fa9aacefea446eb2542ea69ed44236f20b6dea" + }, + "opencode-turn-and-revert": { + "id": "opencode-turn-and-revert", + "path": "apps/server/src/provider/Layers/OpenCodeAdapter.ts", + "start": 1430, + "end": 1509, + "language": "typescript", + "label": "OpenCode prompt and steering path", + "code": " const sendTurn: OpenCodeAdapterShape[\"sendTurn\"] = Effect.fn(\"sendTurn\")(function* (input) {\n const context = yield* ensureSessionContext(sessions, input.threadId);\n // A sendTurn while a turn is active is a steer: OpenCode queues the\n // prompt into the busy session and the work continues as one turn, so\n // the active turn id is reused instead of opening a new turn.\n const steeringTurnId = context.activeTurnId;\n const turnId = steeringTurnId ?? TurnId.make(`opencode-turn-${yield* randomUUIDv4}`);\n const modelSelection =\n input.modelSelection ??\n (context.session.model\n ? { instanceId: boundInstanceId, model: context.session.model }\n : undefined);\n if (modelSelection !== undefined && modelSelection.instanceId !== boundInstanceId) {\n return yield* new ProviderAdapterValidationError({\n provider: PROVIDER,\n operation: \"sendTurn\",\n issue: `OpenCode model selection is bound to instance '${modelSelection?.instanceId}', expected '${boundInstanceId}'.`,\n });\n }\n const parsedModel = parseOpenCodeModelSlug(modelSelection?.model);\n if (!parsedModel) {\n return yield* new ProviderAdapterValidationError({\n provider: PROVIDER,\n operation: \"sendTurn\",\n issue: \"OpenCode model selection must use the 'provider/model' format.\",\n });\n }\n\n const text = input.input?.trim();\n const fileParts = toOpenCodeFileParts({\n attachments: input.attachments,\n resolveAttachmentPath: (attachment) =>\n resolveAttachmentPath({\n attachmentsDir: serverConfig.attachmentsDir,\n attachment,\n }),\n });\n if ((!text || text.length === 0) && fileParts.length === 0) {\n return yield* new ProviderAdapterValidationError({\n provider: PROVIDER,\n operation: \"sendTurn\",\n issue: \"OpenCode turns require text input or at least one attachment.\",\n });\n }\n\n const agent = getModelSelectionStringOptionValue(modelSelection, \"agent\");\n const variant = getModelSelectionStringOptionValue(modelSelection, \"variant\");\n\n context.activeTurnId = turnId;\n context.activeAgent = agent ?? (input.interactionMode === \"plan\" ? \"plan\" : undefined);\n context.activeVariant = variant;\n yield* updateProviderSession(\n context,\n {\n status: \"running\",\n activeTurnId: turnId,\n model: modelSelection?.model ?? context.session.model,\n },\n { clearLastError: true },\n );\n\n if (steeringTurnId === undefined) {\n yield* emit({\n ...(yield* buildEventBase({ threadId: input.threadId, turnId })),\n type: \"turn.started\",\n payload: {\n model: modelSelection?.model ?? context.session.model,\n ...(variant ? { effort: variant } : {}),\n },\n });\n }\n\n yield* runOpenCodeSdk(\"session.promptAsync\", () =>\n context.client.session.promptAsync({\n sessionID: context.openCodeSessionId,\n model: parsedModel,\n ...(context.activeAgent ? { agent: context.activeAgent } : {}),\n ...(context.activeVariant ? { variant: context.activeVariant } : {}),\n parts: [...(text ? [{ type: \"text\" as const, text }] : []), ...fileParts],\n }),", + "checksum": "bd23ad46a4ad8ad0613a82192a06a3329c10808cfda57391fd77f2ba14fcccf9" + }, + "usage-live-contract": { + "id": "usage-live-contract", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 309, + "end": 331, + "language": "typescript", + "label": "Live thread token-usage snapshot contract", + "code": "export const ThreadTokenUsageSnapshot = Schema.Struct({\n usedTokens: NonNegativeInt,\n totalProcessedTokens: Schema.optional(NonNegativeInt),\n maxTokens: Schema.optional(PositiveInt),\n inputTokens: Schema.optional(NonNegativeInt),\n cachedInputTokens: Schema.optional(NonNegativeInt),\n outputTokens: Schema.optional(NonNegativeInt),\n reasoningOutputTokens: Schema.optional(NonNegativeInt),\n lastUsedTokens: Schema.optional(NonNegativeInt),\n lastInputTokens: Schema.optional(NonNegativeInt),\n lastCachedInputTokens: Schema.optional(NonNegativeInt),\n lastOutputTokens: Schema.optional(NonNegativeInt),\n lastReasoningOutputTokens: Schema.optional(NonNegativeInt),\n toolUses: Schema.optional(NonNegativeInt),\n durationMs: Schema.optional(NonNegativeInt),\n compactsAutomatically: Schema.optional(Schema.Boolean),\n});\nexport type ThreadTokenUsageSnapshot = typeof ThreadTokenUsageSnapshot.Type;\n\nconst ThreadTokenUsageUpdatedPayload = Schema.Struct({\n usage: ThreadTokenUsageSnapshot,\n});\nexport type ThreadTokenUsageUpdatedPayload = typeof ThreadTokenUsageUpdatedPayload.Type;", + "checksum": "d63a433efcb36c6017efca4dfa4c29f8e8186b060316152534c0befba263d700" + }, + "usage-codex-normalization": { + "id": "usage-codex-normalization", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 159, + "end": 190, + "language": "typescript", + "label": "Codex live token-usage normalization", + "code": "function normalizeCodexTokenUsage(\n usage: EffectCodexSchema.V2ThreadTokenUsageUpdatedNotification[\"tokenUsage\"],\n): ThreadTokenUsageSnapshot | undefined {\n const totalProcessedTokens = usage.total.totalTokens;\n const usedTokens = usage.last.totalTokens;\n if (usedTokens === undefined || usedTokens <= 0) {\n return undefined;\n }\n\n const maxTokens = usage.modelContextWindow ?? undefined;\n const inputTokens = usage.last.inputTokens;\n const cachedInputTokens = usage.last.cachedInputTokens;\n const outputTokens = usage.last.outputTokens;\n const reasoningOutputTokens = usage.last.reasoningOutputTokens;\n\n return {\n usedTokens,\n ...(totalProcessedTokens !== undefined && totalProcessedTokens > usedTokens\n ? { totalProcessedTokens }\n : {}),\n ...(maxTokens !== undefined ? { maxTokens } : {}),\n ...(inputTokens !== undefined ? { inputTokens } : {}),\n ...(cachedInputTokens !== undefined ? { cachedInputTokens } : {}),\n ...(outputTokens !== undefined ? { outputTokens } : {}),\n ...(reasoningOutputTokens !== undefined ? { reasoningOutputTokens } : {}),\n ...(usedTokens !== undefined ? { lastUsedTokens: usedTokens } : {}),\n ...(inputTokens !== undefined ? { lastInputTokens: inputTokens } : {}),\n ...(cachedInputTokens !== undefined ? { lastCachedInputTokens: cachedInputTokens } : {}),\n ...(outputTokens !== undefined ? { lastOutputTokens: outputTokens } : {}),\n ...(reasoningOutputTokens !== undefined\n ? { lastReasoningOutputTokens: reasoningOutputTokens }\n : {}),", + "checksum": "fec887f108f8d86e020a989334ff325a8b42f40bb30b26f61e69fe87041df522" + }, + "usage-codex-emission": { + "id": "usage-codex-emission", + "path": "apps/server/src/provider/Layers/CodexAdapter.ts", + "start": 1000, + "end": 1018, + "language": "typescript", + "label": "Codex live usage event emission", + "code": " if (event.method === \"thread/tokenUsage/updated\") {\n const payload = readPayload(\n EffectCodexSchema.V2ThreadTokenUsageUpdatedNotification,\n event.payload,\n );\n const normalizedUsage = payload ? normalizeCodexTokenUsage(payload.tokenUsage) : undefined;\n if (!normalizedUsage) {\n return [];\n }\n return [\n {\n type: \"thread.token-usage.updated\",\n ...runtimeEventBase(event, canonicalThreadId),\n payload: {\n usage: normalizedUsage,\n },\n },\n ];\n }", + "checksum": "b5443e4a9d8358ced1bc548a51227ab8796667482f262f5ebc6513cda5220cf1" + }, + "usage-claude-emission": { + "id": "usage-claude-emission", + "path": "apps/server/src/provider/Layers/ClaudeAdapter.ts", + "start": 2051, + "end": 2088, + "language": "typescript", + "label": "Claude live usage event emission", + "code": " const emitThreadTokenUsage = Effect.fn(\"emitThreadTokenUsage\")(function* (\n context: ClaudeSessionContext,\n usage: ThreadTokenUsageSnapshot | undefined,\n options?: {\n readonly rawMethod?: string;\n readonly rawPayload?: unknown;\n },\n ) {\n if (!usage) {\n return;\n }\n\n context.lastKnownTokenUsage = usage;\n context.lastKnownTotalProcessedTokens =\n usage.totalProcessedTokens ?? context.lastKnownTotalProcessedTokens;\n\n const turnState = context.turnState;\n const stamp = yield* makeEventStamp();\n yield* offerRuntimeEvent({\n type: \"thread.token-usage.updated\",\n eventId: stamp.eventId,\n provider: PROVIDER,\n createdAt: stamp.createdAt,\n threadId: context.session.threadId,\n ...(turnState ? { turnId: turnState.turnId } : {}),\n payload: {\n usage,\n },\n providerRefs: nativeProviderRefs(context),\n ...(options?.rawMethod || options?.rawPayload\n ? {\n raw: {\n source: \"claude.sdk.message\" as const,\n ...(options.rawMethod ? { method: options.rawMethod } : {}),\n payload: options.rawPayload,\n },\n }\n : {}),", + "checksum": "1358344a9ecfbb8fb89639a941e39879abdeb0f8da803ccfa6e9b66cb69478f1" + }, + "usage-live-activity": { + "id": "usage-live-activity", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 766, + "end": 784, + "language": "typescript", + "label": "Live usage becomes context-window activity", + "code": " case \"thread.token-usage.updated\": {\n const payload = buildContextWindowActivityPayload(event);\n if (!payload) {\n return [];\n }\n\n return [\n {\n id: event.eventId,\n createdAt: event.createdAt,\n tone: \"info\",\n kind: \"context-window.updated\",\n summary: \"Context window updated\",\n payload,\n turnId: toTurnId(event.turnId) ?? null,\n ...maybeSequence,\n },\n ];\n }", + "checksum": "32de8fdc5bf965dcd67f6e3ebef7b896b6605e8c2a5d2d0a5544a915dccf9c1e" + }, + "usage-web-context-meter": { + "id": "usage-web-context-meter", + "path": "apps/web/src/lib/contextWindow.ts", + "start": 50, + "end": 96, + "language": "typescript", + "label": "Latest valid context-window snapshot derivation", + "code": "export function deriveLatestContextWindowSnapshot(\n activities: ReadonlyArray,\n): ContextWindowSnapshot | null {\n for (let index = activities.length - 1; index >= 0; index -= 1) {\n const activity = activities[index];\n if (!activity || activity.kind !== \"context-window.updated\") {\n continue;\n }\n\n const payload = asRecord(activity.payload);\n const usedTokens = asFiniteNumber(payload?.usedTokens);\n if (usedTokens === null || usedTokens < 0) {\n continue;\n }\n\n const maxTokens = asFiniteNumber(payload?.maxTokens);\n const usedPercentage =\n maxTokens !== null && maxTokens > 0 ? Math.min(100, (usedTokens / maxTokens) * 100) : null;\n const remainingTokens =\n maxTokens !== null ? Math.max(0, Math.round(maxTokens - usedTokens)) : null;\n const remainingPercentage = usedPercentage !== null ? Math.max(0, 100 - usedPercentage) : null;\n\n return {\n usedTokens,\n totalProcessedTokens: asFiniteNumber(payload?.totalProcessedTokens),\n maxTokens,\n remainingTokens,\n usedPercentage,\n remainingPercentage,\n inputTokens: asFiniteNumber(payload?.inputTokens),\n cachedInputTokens: asFiniteNumber(payload?.cachedInputTokens),\n outputTokens: asFiniteNumber(payload?.outputTokens),\n reasoningOutputTokens: asFiniteNumber(payload?.reasoningOutputTokens),\n lastUsedTokens: asFiniteNumber(payload?.lastUsedTokens),\n lastInputTokens: asFiniteNumber(payload?.lastInputTokens),\n lastCachedInputTokens: asFiniteNumber(payload?.lastCachedInputTokens),\n lastOutputTokens: asFiniteNumber(payload?.lastOutputTokens),\n lastReasoningOutputTokens: asFiniteNumber(payload?.lastReasoningOutputTokens),\n toolUses: asFiniteNumber(payload?.toolUses),\n durationMs: asFiniteNumber(payload?.durationMs),\n compactsAutomatically: asBoolean(payload?.compactsAutomatically) ?? false,\n updatedAt: activity.createdAt,\n };\n }\n\n return null;\n}", + "checksum": "f414738aaad3b6f8526e5760a436944757fefe35662bb9ce36fe9375f1c0c35b" + }, + "usage-summary-contract": { + "id": "usage-summary-contract", + "path": "packages/contracts/src/usage.ts", + "start": 1, + "end": 101, + "language": "typescript", + "label": "Historical usage version, providers, tokens, and cost buckets", + "code": "/**\n * Usage reporting contract.\n *\n * Each environment scans the provider CLIs' own on-disk session transcripts\n * (`~/.claude/projects/**\\/*.jsonl`, `~/.codex/sessions/**\\/*.jsonl`) rather than\n * relying on T3 Code's own orchestration projections, so usage stays complete\n * even for turns that were never driven through T3 Code. This mirrors the\n * approach `ccusage` takes.\n *\n * Environments return pre-aggregated `(day, hourStart?, provider, model)`\n * buckets. Raw transcript records never cross the wire.\n *\n * @module usage\n */\nimport * as Schema from \"effect/Schema\";\n\nimport { NonNegativeInt, TrimmedNonEmptyString } from \"./baseSchemas.ts\";\n\n/**\n * Bumped whenever the shape of {@link UsageSummary} changes incompatibly. The\n * client renders partial coverage when an environment reports an older version\n * rather than failing the whole page.\n */\nexport const USAGE_CONTRACT_VERSION = 4 as const;\n\nexport const UsageProviderKind = Schema.Literals([\"claude\", \"codex\"]);\nexport type UsageProviderKind = typeof UsageProviderKind.Type;\n\n/**\n * A calendar day in the reporting time zone, formatted `YYYY-MM-DD`.\n *\n * Days are bucketed server-side so that a turn always lands on the day the user\n * experienced it, not the UTC day.\n */\nconst USAGE_DAY_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nexport const UsageDay = TrimmedNonEmptyString.check(Schema.isPattern(USAGE_DAY_PATTERN)).pipe(\n Schema.brand(\"UsageDay\"),\n);\nexport type UsageDay = typeof UsageDay.Type;\n\nexport const UsageResolution = Schema.Literals([\"day\", \"hour\"]);\nexport type UsageResolution = typeof UsageResolution.Type;\n\n/**\n * Why a bucket's cost is what it is.\n *\n * - `providerReported` - the transcript carried an explicit cost figure.\n * - `modelPriced` - we matched the model against the LiteLLM rate table.\n * - `unpriced` - tokens are known, rates are not. Counted in totals, excluded\n * from cost.\n */\nexport const UsageCostSource = Schema.Literals([\"providerReported\", \"modelPriced\", \"unpriced\"]);\nexport type UsageCostSource = typeof UsageCostSource.Type;\n\n/**\n * Token counts for a bucket.\n *\n * `cachedInputTokens` and `cacheCreationTokens` are disjoint from\n * `uncachedInputTokens`; summing all three gives total input. `reasoningTokens`\n * is a *subset* of `outputTokens` (Codex reports it that way, and Anthropic\n * folds thinking into output), so it must never be added on top.\n */\nexport const UsageTokenTotals = Schema.Struct({\n uncachedInputTokens: NonNegativeInt,\n cachedInputTokens: NonNegativeInt,\n cacheCreationTokens: NonNegativeInt,\n outputTokens: NonNegativeInt,\n reasoningTokens: NonNegativeInt,\n});\nexport type UsageTokenTotals = typeof UsageTokenTotals.Type;\n\n/**\n * One `(day, hourStart?, provider, model)` cell. `hourStart` is the UTC start\n * instant of a rolling bucket and is present only for hourly requests.\n *\n * `costUsd` is the raw API-equivalent cost of these tokens. It is not money\n * spent: subscription plans bill separately. `unpricedRecords` counts records\n * whose tokens are included in the token totals but which contributed nothing\n * to `costUsd`.\n */\nexport const UsageBucket = Schema.Struct({\n day: UsageDay,\n hourStart: Schema.optional(TrimmedNonEmptyString),\n provider: UsageProviderKind,\n model: TrimmedNonEmptyString,\n totals: UsageTokenTotals,\n costUsd: Schema.Number,\n /**\n * What the cached input would have cost at full input rates minus what it\n * actually cost. Requires the rate table, so it is computed alongside cost\n * rather than derived on the client.\n */\n cacheSavingsUsd: Schema.Number,\n costSource: UsageCostSource,\n /** Distinct assistant responses, after de-duplication. */\n records: NonNegativeInt,\n unpricedRecords: NonNegativeInt,\n /** Distinct transcript sessions that contributed to this cell. */\n sessions: NonNegativeInt,\n});", + "checksum": "f93dd8ada5db38b9c283d950acc7da22def26fa5c8ae2352aca8ab2aa31b3040" + }, + "usage-home-discovery": { + "id": "usage-home-discovery", + "path": "apps/server/src/usage/UsageService.ts", + "start": 187, + "end": 225, + "language": "typescript", + "label": "Claude and Codex transcript home resolution", + "code": " /**\n * Claude's config dir is the home itself when overridden, but a default\n * install nests transcripts under `~/.claude/projects`. Probe both.\n */\n const resolveClaudeTranscriptDir = (homePath: string) =>\n Effect.gen(function* () {\n const nested = path.join(homePath, \".claude\", \"projects\");\n const nestedExists = yield* fileSystem\n .exists(nested)\n .pipe(Effect.catchCause(() => Effect.succeed(false)));\n return nestedExists ? nested : path.join(homePath, \"projects\");\n });\n\n /** Resolves the transcript directory for each provider. */\n const resolveTranscriptDirs = Effect.fn(\"UsageService.resolveTranscriptDirs\")(function* () {\n // A settings failure must surface as an error: swallowing it here would\n // present \"zero usage from every provider\" as a valid answer.\n const settings = yield* settingsService.getSettings.pipe(\n Effect.catchCause(\n (cause) =>\n new UsageReadError({\n reason: \"scanFailed\",\n // Bounded description; the squashed failure travels as the cause.\n // Squashed, not the Cause tree: a full tree in a Defect field is\n // the unbounded wire payload the bounded detail exists to avoid.\n detail: \"Server settings could not be read.\",\n cause: Cause.squash(cause),\n }),\n ),\n );\n\n const claudeHome = yield* resolveClaudeHomePath(settings.providers.claudeAgent);\n const claudeDir = yield* resolveClaudeTranscriptDir(claudeHome);\n const codexLayout = yield* resolveCodexHomeLayout(settings.providers.codex);\n\n return [\n { provider: \"claude\" as const, dir: claudeDir },\n { provider: \"codex\" as const, dir: path.join(codexLayout.sharedHomePath, \"sessions\") },\n ];", + "checksum": "d6526ea3f89bb7c8877e0d60c06a6f36809be5b51834b133045a40debecabafd" + }, + "usage-transcript-parsers": { + "id": "usage-transcript-parsers", + "path": "apps/server/src/usage/usageTranscripts.ts", + "start": 78, + "end": 137, + "language": "typescript", + "label": "Claude transcript usage normalization", + "code": "/**\n * Parses one line of a Claude Code transcript.\n *\n * T3 Code writes one record per assistant *content block*, and every one of\n * those records repeats the same complete `usage` object for the parent\n * message. Summing them overcounts by roughly 2.4x on a real workload, so the\n * caller must drop repeats by `dedupeKey` and keep the first.\n */\nexport function parseClaudeLine(line: string): UsageRecord | null {\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n if (typeof parsed !== \"object\" || parsed === null) return null;\n\n const record = parsed as Record;\n if (record[\"type\"] !== \"assistant\") return null;\n\n const message = record[\"message\"];\n if (typeof message !== \"object\" || message === null) return null;\n const messageRecord = message as Record;\n\n const usage = messageRecord[\"usage\"];\n if (typeof usage !== \"object\" || usage === null) return null;\n const usageRecord = usage as Record;\n\n const timestampMs = parseTimestampMs(record[\"timestamp\"]);\n if (timestampMs === null) return null;\n\n const model = typeof messageRecord[\"model\"] === \"string\" ? messageRecord[\"model\"] : \"\";\n if (model.length === 0) return null;\n\n const messageId = typeof messageRecord[\"id\"] === \"string\" ? messageRecord[\"id\"] : null;\n const requestId = typeof record[\"requestId\"] === \"string\" ? record[\"requestId\"] : null;\n // Matches ccusage: prefer the message/request pair, fall back to whichever\n // half exists. Records with neither cannot be de-duplicated.\n const dedupeKey =\n messageId === null && requestId === null ? null : `${messageId ?? \"\"}:${requestId ?? \"\"}`;\n\n const cost = record[\"costUSD\"];\n\n return {\n provider: \"claude\",\n timestampMs,\n model,\n sessionId: typeof record[\"sessionId\"] === \"string\" ? record[\"sessionId\"] : \"\",\n totals: {\n uncachedInputTokens: int(usageRecord[\"input_tokens\"]),\n cachedInputTokens: int(usageRecord[\"cache_read_input_tokens\"]),\n cacheCreationTokens: int(usageRecord[\"cache_creation_input_tokens\"]),\n outputTokens: int(usageRecord[\"output_tokens\"]),\n // Anthropic folds thinking tokens into output and does not break them out.\n reasoningTokens: 0,\n },\n reportedCostUsd: typeof cost === \"number\" && Number.isFinite(cost) ? cost : null,\n dedupeKey,\n };\n}", + "checksum": "98addede4c92886630a8f69b8ec46e776ac775bbb00896814ba7a17e244c4531" + }, + "usage-dedup-buckets": { + "id": "usage-dedup-buckets", + "path": "apps/server/src/usage/usageAggregation.ts", + "start": 109, + "end": 178, + "language": "typescript", + "label": "Global deduplication, bounds, bucketing, and pricing fold", + "code": " /**\n * Folds one record in. Returns whether it actually contributed, so callers\n * can derive per-window facts (distinct sessions, for one) from the records\n * that landed rather than everything the mtime prefilter happened to admit.\n */\n add(record: UsageRecord): boolean {\n if (record.dedupeKey !== null) {\n if (this.#seen.has(record.dedupeKey)) {\n this.#duplicatesDropped += 1;\n return false;\n }\n this.#seen.add(record.dedupeKey);\n }\n\n if (\n this.#hourlyWindow !== null &&\n (record.timestampMs < this.#hourlyWindow.sinceTimeMs ||\n record.timestampMs >= this.#hourlyWindow.untilTimeMs)\n ) {\n this.#outOfWindow += 1;\n return false;\n }\n\n const day = this.#toDay(record.timestampMs);\n if (\n this.#hourlyWindow === null &&\n (day < this.#options.sinceDay || day > this.#options.untilDay)\n ) {\n this.#outOfWindow += 1;\n return false;\n }\n\n const hourStart =\n this.#hourlyWindow === null\n ? \"\"\n : new Date(\n this.#hourlyWindow.sinceTimeMs +\n Math.floor((record.timestampMs - this.#hourlyWindow.sinceTimeMs) / HOUR_MS) * HOUR_MS,\n ).toISOString();\n const key = `${day}\\u0000${hourStart}\\u0000${record.provider}\\u0000${record.model}`;\n let bucket = this.#buckets.get(key);\n if (bucket === undefined) {\n bucket = {\n totals: EMPTY_TOTALS,\n costUsd: 0,\n cacheSavingsUsd: 0,\n records: 0,\n unpricedRecords: 0,\n providerReportedRecords: 0,\n sessions: new Set(),\n };\n this.#buckets.set(key, bucket);\n }\n\n const priced = priceUsage(\n this.#options.rates,\n record.model,\n record.totals,\n record.reportedCostUsd,\n );\n\n bucket.totals = addTotals(bucket.totals, record.totals);\n bucket.costUsd += priced.costUsd;\n bucket.cacheSavingsUsd += cacheSavingsUsd(this.#options.rates, record.model, record.totals);\n bucket.records += 1;\n if (priced.costSource === \"unpriced\") bucket.unpricedRecords += 1;\n if (priced.costSource === \"providerReported\") bucket.providerReportedRecords += 1;\n if (record.sessionId.length > 0) bucket.sessions.add(record.sessionId);\n return true;\n }", + "checksum": "ca4bb237d353ca5cbf384f3e91c0d802c24e1764b19871add182ac894cc19677" + }, + "usage-pricing-cache": { + "id": "usage-pricing-cache", + "path": "apps/server/src/usage/usagePricing.ts", + "start": 85, + "end": 148, + "language": "typescript", + "label": "Historical usage rate lookup and pricing arithmetic", + "code": "/**\n * Models we never price, regardless of the table.\n *\n * `` marks locally generated messages that were never billed. Bare\n * family names (\"opus\", \"sonnet\") are genuinely ambiguous across generations,\n * so we report them as unpriced instead of guessing a generation.\n */\nconst UNPRICEABLE_MODELS = new Set([\n \"\",\n \"synthetic\",\n \"opus\",\n \"sonnet\",\n \"haiku\",\n \"fable\",\n]);\n\nexport function lookupRate(table: RateTable, model: string): ModelRate | null {\n const normalized = normalizeModelName(model);\n if (normalized.length === 0 || UNPRICEABLE_MODELS.has(normalized)) return null;\n return table.get(normalized) ?? null;\n}\n\nexport interface PricedUsage {\n readonly costUsd: number;\n readonly costSource: UsageCostSource;\n}\n\n/**\n * Prices a bucket's tokens.\n *\n * `reasoningTokens` is intentionally not charged separately: it is already\n * counted inside `outputTokens`.\n */\nexport function priceUsage(\n table: RateTable,\n model: string,\n totals: UsageTokenTotals,\n reportedCostUsd: number | null,\n): PricedUsage {\n if (reportedCostUsd !== null && Number.isFinite(reportedCostUsd)) {\n return { costUsd: reportedCostUsd, costSource: \"providerReported\" };\n }\n\n const rate = lookupRate(table, model);\n if (rate === null) return { costUsd: 0, costSource: \"unpriced\" };\n\n const costUsd =\n totals.uncachedInputTokens * rate.inputCostPerToken +\n totals.cachedInputTokens * rate.cacheReadCostPerToken +\n totals.cacheCreationTokens * rate.cacheCreationCostPerToken +\n totals.outputTokens * rate.outputCostPerToken;\n\n return { costUsd, costSource: \"modelPriced\" };\n}\n\n/**\n * What the cached input would have cost at full input rates, minus what it\n * actually cost. Drives the \"cache savings\" figure.\n */\nexport function cacheSavingsUsd(table: RateTable, model: string, totals: UsageTokenTotals): number {\n const rate = lookupRate(table, model);\n if (rate === null) return 0;\n return totals.cachedInputTokens * (rate.inputCostPerToken - rate.cacheReadCostPerToken);\n}", + "checksum": "c1d6f1e6a20765222fbbd5c94a90766711a846430088f37c1242011fd9ec1518" + }, + "usage-rpc-contract": { + "id": "usage-rpc-contract", + "path": "packages/contracts/src/rpc.ts", + "start": 260, + "end": 284, + "language": "typescript", + "label": "Typed usage summary RPC", + "code": " previewAutomationFocusHost: \"previewAutomation.focusHost\",\n\n // Server meta\n serverProbe: \"server.probe\",\n serverGetConfig: \"server.getConfig\",\n serverRefreshProviders: \"server.refreshProviders\",\n serverUpdateProvider: \"server.updateProvider\",\n serverUpdateServer: \"server.updateServer\",\n serverUpdateServerWithProgress: \"server.updateServerWithProgress\",\n serverUpsertKeybinding: \"server.upsertKeybinding\",\n serverRemoveKeybinding: \"server.removeKeybinding\",\n serverGetSettings: \"server.getSettings\",\n serverUpdateSettings: \"server.updateSettings\",\n serverDiscoverSourceControl: \"server.discoverSourceControl\",\n serverGetTraceDiagnostics: \"server.getTraceDiagnostics\",\n serverGetProcessDiagnostics: \"server.getProcessDiagnostics\",\n serverGetProcessResourceHistory: \"server.getProcessResourceHistory\",\n serverGetResourceTelemetryHistory: \"server.getResourceTelemetryHistory\",\n serverRetryResourceTelemetry: \"server.retryResourceTelemetry\",\n serverSignalProcess: \"server.signalProcess\",\n serverReportClientActivity: \"server.reportClientActivity\",\n serverReportHostPowerState: \"server.reportHostPowerState\",\n serverGetBackgroundPolicy: \"server.getBackgroundPolicy\",\n serverGetUsageSummary: \"server.getUsageSummary\",\n", + "checksum": "a9bdb475c42adc730d43788b4336aa36b6c0de90e60fc9dcd2139b1f929e9ea6" + }, + "usage-environment-merge": { + "id": "usage-environment-merge", + "path": "packages/shared/src/usageMerge.ts", + "start": 102, + "end": 163, + "language": "typescript", + "label": "Deterministic physical-source ownership across environments", + "code": "/**\n * Decides which environment owns each physical transcript directory.\n *\n * Several environments on one machine (worktree servers, for instance) resolve\n * the same provider home and would otherwise double count every token. The\n * first environment in a stable order claims a fingerprint; the rest have that\n * provider's buckets dropped. Environments are sorted by id so the winner does\n * not change between renders.\n */\nfunction claimSources(environments: readonly EnvironmentUsage[]): {\n readonly ownerByFingerprint: ReadonlyMap;\n readonly duplicates: readonly string[];\n} {\n const ownerByFingerprint = new Map();\n const duplicates: string[] = [];\n\n const ordered = [...environments].sort((a, b) => a.environmentId.localeCompare(b.environmentId));\n\n for (const environment of ordered) {\n for (const source of environment.summary.sources) {\n if (source.status === \"missing\") continue;\n const key = fingerprintKey(source.fingerprint);\n if (ownerByFingerprint.has(key)) {\n duplicates.push(`${environment.label}: ${source.fingerprint.resolvedHomePath}`);\n continue;\n }\n ownerByFingerprint.set(key, environment.environmentId);\n }\n }\n\n return { ownerByFingerprint, duplicates };\n}\n\n/** Sources this environment owns after fingerprint claims, plus their buckets. */\nfunction ownedContribution(\n environment: EnvironmentUsage,\n ownerByFingerprint: ReadonlyMap,\n): {\n readonly buckets: readonly UsageBucket[];\n readonly sessionsByProvider: ReadonlyMap;\n} {\n const ownedProviders = new Set();\n const sessionsByProvider = new Map();\n for (const source of environment.summary.sources) {\n if (source.status === \"missing\") continue;\n const key = fingerprintKey(source.fingerprint);\n if (ownerByFingerprint.get(key) === environment.environmentId) {\n const provider = source.fingerprint.provider;\n ownedProviders.add(provider);\n // Distinct within a directory. Summing per-bucket session counts instead\n // would count a session once per day and model it spans.\n sessionsByProvider.set(\n provider,\n (sessionsByProvider.get(provider) ?? 0) + source.distinctSessions,\n );\n }\n }\n return {\n buckets: environment.summary.buckets.filter((bucket) => ownedProviders.has(bucket.provider)),\n sessionsByProvider,\n };\n}", + "checksum": "2ef3c27f0875e553cc334289b2ffa24682b812e8a15f401be76eb06240ccfb98" + }, + "usage-reader-failure-policy": { + "id": "usage-reader-failure-policy", + "path": "apps/server/src/usage/usageTranscriptReader.ts", + "start": 92, + "end": 140, + "language": "typescript", + "label": "Streaming transcript read and null-on-read-failure policy", + "code": "/**\n * Streams one transcript and returns the usage records it contains, or `null`\n * when the file could not be read.\n *\n * The distinction matters to the caller's cache: a genuinely empty transcript\n * is a stable fact worth memoising, while a transient read failure memoised\n * under the same `(size, mtime)` key would silently drop that file's usage\n * until the file next changes.\n *\n * Codex carries the active model on `turn_context` lines that hold no usage of\n * their own, so those still have to pass through the reducer to keep model\n * attribution correct.\n */\nexport async function readTranscriptRecords(\n filePath: string,\n provider: UsageProviderKind,\n): Promise {\n const records: UsageRecord[] = [];\n const codexState = initialCodexScanState();\n\n try {\n const lines = NodeReadline.createInterface({\n input: NodeFS.createReadStream(filePath, { encoding: \"utf8\" }),\n crlfDelay: Infinity,\n });\n\n for await (const line of lines) {\n if (provider === \"codex\") {\n if (\n !mightCarryUsage(line, provider) &&\n !line.includes('\"turn_context\"') &&\n !line.includes('\"session_meta\"')\n ) {\n continue;\n }\n const record = parseCodexLine(line, codexState);\n if (record !== null) records.push(record);\n continue;\n }\n\n if (!mightCarryUsage(line, provider)) continue;\n const record = parseClaudeLine(line);\n if (record !== null) records.push(record);\n }\n } catch {\n return null;\n }\n\n return records;", + "checksum": "a4603871e61cae2e5575a2df75f84ff9f5684262b1cb59e638f3009e66fdfa58" + }, + "usage-source-status": { + "id": "usage-source-status", + "path": "apps/server/src/usage/UsageService.ts", + "start": 352, + "end": 408, + "language": "typescript", + "label": "Current historical source status and session accounting", + "code": " const sources: UsageSource[] = [];\n const livePaths = new Set();\n const walkedRoots: string[] = [];\n\n for (const { provider, dir } of dirs) {\n const volumeId = yield* Effect.promise(() => readDirectoryVolumeId(dir));\n const exists = yield* fileSystem\n .exists(dir)\n .pipe(Effect.catchCause(() => Effect.succeed(false)));\n\n if (!exists) {\n sources.push({\n fingerprint: { hostId, provider, resolvedHomePath: dir, volumeId },\n status: \"missing\",\n scannedFiles: 0,\n skippedFiles: 0,\n malformedRecords: 0,\n distinctSessions: 0,\n message: \"No transcript directory on this environment.\",\n });\n continue;\n }\n\n walkedRoots.push(dir);\n const files = yield* Effect.promise(() => listTranscriptFiles(dir, windowStartMs));\n let scannedFiles = 0;\n let skippedFiles = 0;\n // Distinct per directory. Buckets carry per-cell session counts, but a\n // session spans days and models, so clients total this figure instead.\n const sessionIds = new Set();\n\n for (const file of files) {\n livePaths.add(file.path);\n const records = yield* readFileRecords(file.path, file.size, file.mtimeMs, provider);\n if (records.length === 0) {\n skippedFiles += 1;\n continue;\n }\n scannedFiles += 1;\n for (const record of records) {\n // Only sessions that contributed in-window count: the mtime slack\n // admits boundary files whose records fall outside the range.\n if (aggregator.add(record) && record.sessionId.length > 0) {\n sessionIds.add(record.sessionId);\n }\n }\n }\n\n sources.push({\n fingerprint: { hostId, provider, resolvedHomePath: dir, volumeId },\n status: \"ok\",\n scannedFiles,\n skippedFiles,\n malformedRecords: 0,\n distinctSessions: sessionIds.size,\n message: null,\n });", + "checksum": "619a5fb4c66a09b2bf6abed238f22779341b997262bc48736bd927aa19f042f1" + }, + "project-root-normalization": { + "id": "project-root-normalization", + "path": "apps/server/src/workspace/WorkspacePaths.ts", + "start": 161, + "end": 200, + "language": "typescript", + "label": "Workspace-root resolution, validation, and opt-in creation", + "code": " const normalizeWorkspaceRoot: WorkspacePaths[\"Service\"][\"normalizeWorkspaceRoot\"] = Effect.fn(\n \"WorkspacePaths.normalizeWorkspaceRoot\",\n )(function* (workspaceRoot, options) {\n const normalizedWorkspaceRoot = path.resolve(expandHomePath(workspaceRoot.trim(), path));\n let workspaceStat = yield* statWorkspaceRoot(\n workspaceRoot,\n normalizedWorkspaceRoot,\n \"validate-existing\",\n );\n if (!workspaceStat && options?.createIfMissing) {\n yield* fileSystem.makeDirectory(normalizedWorkspaceRoot, { recursive: true }).pipe(\n Effect.mapError(\n (cause) =>\n new WorkspaceRootCreateFailedError({\n workspaceRoot,\n normalizedWorkspaceRoot,\n cause,\n }),\n ),\n );\n workspaceStat = yield* statWorkspaceRoot(\n workspaceRoot,\n normalizedWorkspaceRoot,\n \"verify-created\",\n );\n }\n if (!workspaceStat) {\n return yield* new WorkspaceRootNotExistsError({\n workspaceRoot,\n normalizedWorkspaceRoot,\n });\n }\n if (workspaceStat.type !== \"Directory\") {\n return yield* new WorkspaceRootNotDirectoryError({\n workspaceRoot,\n normalizedWorkspaceRoot,\n });\n }\n return normalizedWorkspaceRoot;\n });", + "checksum": "dc1befa9f427fd48c5c9988360c52a9532a82d89a2e243b0dee2c25f2794fc12" + }, + "project-create-normalization": { + "id": "project-create-normalization", + "path": "apps/server/src/orchestration/Normalizer.ts", + "start": 55, + "end": 90, + "language": "typescript", + "label": "Project creation normalization before dispatch", + "code": " const normalizeProjectWorkspaceRoot = (workspaceRoot: string) =>\n workspacePaths.normalizeWorkspaceRoot(workspaceRoot).pipe(\n Effect.mapError(\n (cause) =>\n new OrchestrationDispatchCommandError({\n message: cause.message,\n }),\n ),\n );\n\n const normalizeProjectWorkspaceRootForCreate = (\n workspaceRoot: string,\n createIfMissing: boolean | undefined,\n ) =>\n workspacePaths\n .normalizeWorkspaceRoot(workspaceRoot, {\n createIfMissing: createIfMissing === true,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new OrchestrationDispatchCommandError({\n message: cause.message,\n }),\n ),\n );\n\n if (canonicalCommand.type === \"project.create\") {\n return {\n ...canonicalCommand,\n workspaceRoot: yield* normalizeProjectWorkspaceRootForCreate(\n canonicalCommand.workspaceRoot,\n canonicalCommand.createWorkspaceRootIfMissing,\n ),\n createWorkspaceRootIfMissing: canonicalCommand.createWorkspaceRootIfMissing === true,\n } satisfies OrchestrationCommand;", + "checksum": "6b0a20d1e9548a92779defd07120ed3e684de23de08d6de2f159a36edf6b1f57" + }, + "project-root-uniqueness": { + "id": "project-root-uniqueness", + "path": "apps/server/src/orchestration/commandInvariants.ts", + "start": 75, + "end": 97, + "language": "typescript", + "label": "Active project workspace-root uniqueness invariant", + "code": "export function requireActiveProjectWorkspaceRootAbsent(input: {\n readonly readModel: OrchestrationReadModel;\n readonly command: OrchestrationCommand;\n readonly workspaceRoot: string;\n readonly exceptProjectId?: ProjectId;\n}): Effect.Effect {\n const normalizedWorkspaceRoot = normalizeProjectPathForComparison(input.workspaceRoot);\n const existingProject = input.readModel.projects.find(\n (project) =>\n project.deletedAt === null &&\n normalizeProjectPathForComparison(project.workspaceRoot) === normalizedWorkspaceRoot &&\n project.id !== input.exceptProjectId,\n );\n if (existingProject === undefined) {\n return Effect.void;\n }\n return Effect.fail(\n invariantError(\n input.command.type,\n `Active project '${existingProject.id}' already exists for workspace root '${normalizedWorkspaceRoot}'.`,\n ),\n );\n}", + "checksum": "deb6be62e500f8c6488c70dc0a2563c7f313722d5a4dc04e4c5e9aab21b4c134" + }, + "project-t3-file-schema": { + "id": "project-t3-file-schema", + "path": "packages/contracts/src/t3ProjectFile.ts", + "start": 7, + "end": 94, + "language": "typescript", + "label": "Checked-in t3.json project configuration contract", + "code": "/** File name of the checked-in T3 project file, resolved at the workspace root. */\nexport const T3_PROJECT_FILE_NAME = \"t3.json\";\n\n/** Public URL of the published JSON Schema for {@link T3ProjectFile}. */\nexport const T3_PROJECT_FILE_SCHEMA_URL = \"https://t3.codes/schema/t3.json\";\n\nconst T3_PROJECT_FILE_PATH_MAX_LENGTH = 512;\nconst T3_PROJECT_FILE_MAX_SCRIPTS = 50;\n\n// Annotations go on the encoded (string) side so they survive into the\n// published JSON Schema; decoding still trims and re-validates non-emptiness.\nconst trimmedNonEmpty = (annotations: { readonly description: string }, maxLength?: number) => {\n const annotated = Schema.String.annotate(annotations);\n const encoded =\n maxLength === undefined\n ? annotated.check(Schema.isNonEmpty())\n : annotated.check(Schema.isNonEmpty(), Schema.isMaxLength(maxLength));\n return encoded.pipe(Schema.decodeTo(encoded, SchemaTransformation.trim()));\n};\n\nexport const T3ProjectFileScript = Schema.Struct({\n name: trimmedNonEmpty({\n description: \"Display name for the script, shown in the T3 Code scripts menu.\",\n }),\n command: trimmedNonEmpty({\n description: \"Shell command executed in a T3 Code terminal at the project root.\",\n }),\n icon: Schema.optionalKey(\n ProjectScriptIcon.annotate({\n description: 'Icon shown next to the script in the scripts menu. Defaults to \"play\".',\n }),\n ),\n runOnWorktreeCreate: Schema.optionalKey(\n Schema.Boolean.annotate({\n description:\n \"When true, the script runs automatically after a worktree is created for a new thread.\",\n }),\n ),\n previewUrl: Schema.optionalKey(\n trimmedNonEmpty({\n description:\n \"URL opened in the in-app browser preview when this script runs. Only honored on the desktop build.\",\n }),\n ),\n autoOpenPreview: Schema.optionalKey(\n Schema.Boolean.annotate({\n description:\n \"When true, automatically open the preview panel at `previewUrl` the moment the script starts.\",\n }),\n ),\n}).annotate({\n description: \"A project script that team members can import into T3 Code.\",\n});\nexport type T3ProjectFileScript = typeof T3ProjectFileScript.Type;\n\nexport const T3ProjectFile = Schema.Struct({\n $schema: Schema.optionalKey(\n Schema.String.annotate({\n description: `URL of the JSON Schema for this file, typically \"${T3_PROJECT_FILE_SCHEMA_URL}\".`,\n }),\n ),\n iconPath: Schema.optionalKey(\n trimmedNonEmpty(\n {\n description:\n 'Workspace-relative path to the project icon (e.g. \"assets/logo.svg\"). Checked before T3 Code\\'s built-in icon locations.',\n },\n T3_PROJECT_FILE_PATH_MAX_LENGTH,\n ),\n ),\n defaultThreadEnvMode: Schema.optionalKey(\n ThreadEnvMode.annotate({\n description:\n 'Where new threads start for this repository: \"worktree\" for a fresh git worktree, \"local\" for the current checkout. A per-project setting in T3 Code overrides this; when neither is set, the global default applies.',\n }),\n ),\n scripts: Schema.optionalKey(\n Schema.Array(T3ProjectFileScript)\n .annotate({\n description: \"Project scripts shared with everyone who opens this repository in T3 Code.\",\n })\n .check(Schema.isMaxLength(T3_PROJECT_FILE_MAX_SCRIPTS)),\n ),\n}).annotate({\n title: \"T3 project file\",\n description:\n \"Checked-in project configuration for T3 Code (t3.json at the repository root). See https://t3.codes for documentation.\",\n});", + "checksum": "9b60c876a679d515b8a414916f3f37d5b8e502a68d55df9d21ee476d8cb4e379" + }, + "project-t3-file-loader": { + "id": "project-t3-file-loader", + "path": "apps/server/src/project/T3ProjectFileLoader.ts", + "start": 42, + "end": 105, + "language": "typescript", + "label": "Best-effort t3.json loading and validation", + "code": " /**\n * Load and decode `t3.json` at the workspace root.\n *\n * Never fails: missing, unreadable, or invalid files resolve to\n * `Option.none` (invalid files are logged as warnings).\n */\n readonly load: (workspaceRoot: string) => Effect.Effect>;\n }\n>()(\"t3/project/T3ProjectFileLoader\") {}\n\nconst logT3ProjectFileLoadError = (error: T3ProjectFileLoadError) =>\n Effect.logWarning(error).pipe(\n Effect.annotateLogs({\n operation: error.operation,\n workspaceRoot: error.workspaceRoot,\n filePath: error.filePath,\n errorTag: error._tag,\n }),\n );\n\nexport const make = Effect.gen(function* () {\n const fileSystem = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n\n const load: T3ProjectFileLoader[\"Service\"][\"load\"] = Effect.fn(\"T3ProjectFileLoader.load\")(\n function* (workspaceRoot) {\n const filePath = path.join(workspaceRoot, T3_PROJECT_FILE_NAME);\n const raw = yield* fileSystem.readFileString(filePath).pipe(\n Effect.map(Option.some),\n Effect.catchTags({\n PlatformError: (error) =>\n error.reason._tag === \"NotFound\"\n ? Effect.succeed(Option.none())\n : logT3ProjectFileLoadError(\n new T3ProjectFileLoadError({\n operation: \"read\",\n workspaceRoot,\n filePath,\n cause: error,\n }),\n ).pipe(Effect.as(Option.none())),\n }),\n );\n if (Option.isNone(raw)) {\n return Option.none();\n }\n return yield* decodeT3ProjectFileJson(raw.value).pipe(\n Effect.map(Option.some),\n Effect.catchTags({\n SchemaError: (error) =>\n logT3ProjectFileLoadError(\n new T3ProjectFileLoadError({\n operation: \"decode\",\n workspaceRoot,\n filePath,\n cause: error,\n }),\n ).pipe(Effect.as(Option.none())),\n }),\n );\n },\n );\n\n return T3ProjectFileLoader.of({ load });", + "checksum": "1a2c82901fba9d86213563abdee2569b7f48283533b7c7cc23b5bfd46b7df753" + }, + "project-t3-file-loader-tests": { + "id": "project-t3-file-loader-tests", + "path": "apps/server/src/project/T3ProjectFileLoader.test.ts", + "start": 29, + "end": 88, + "language": "typescript", + "label": "t3.json JSONC, missing-file, and invalid-input tests", + "code": "it.layer(TestLayer)(\"T3ProjectFileLoader\", (it) => {\n describe(\"load\", () => {\n it.effect(\"loads and decodes a valid t3.json\", () =>\n Effect.gen(function* () {\n const loader = yield* T3ProjectFileLoader.T3ProjectFileLoader;\n const cwd = yield* makeTempDir;\n yield* writeProjectFile(\n cwd,\n `{\n // JSONC is tolerated\n \"iconPath\": \"assets/logo.svg\",\n \"scripts\": [{ \"name\": \"Dev\", \"command\": \"pnpm dev\" }],\n }`,\n );\n\n const loaded = yield* loader.load(cwd);\n\n expect(Option.isSome(loaded)).toBe(true);\n if (Option.isSome(loaded)) {\n expect(loaded.value.iconPath).toBe(\"assets/logo.svg\");\n expect(loaded.value.scripts).toEqual([{ name: \"Dev\", command: \"pnpm dev\" }]);\n }\n }),\n );\n\n it.effect(\"returns none when t3.json is missing\", () =>\n Effect.gen(function* () {\n const loader = yield* T3ProjectFileLoader.T3ProjectFileLoader;\n const cwd = yield* makeTempDir;\n\n const loaded = yield* loader.load(cwd);\n\n expect(Option.isNone(loaded)).toBe(true);\n }),\n );\n\n it.effect(\"returns none for malformed JSON without failing\", () =>\n Effect.gen(function* () {\n const loader = yield* T3ProjectFileLoader.T3ProjectFileLoader;\n const cwd = yield* makeTempDir;\n yield* writeProjectFile(cwd, \"{ not json\");\n\n const loaded = yield* loader.load(cwd);\n\n expect(Option.isNone(loaded)).toBe(true);\n }),\n );\n\n it.effect(\"returns none for schema-invalid files without failing\", () =>\n Effect.gen(function* () {\n const loader = yield* T3ProjectFileLoader.T3ProjectFileLoader;\n const cwd = yield* makeTempDir;\n yield* writeProjectFile(cwd, '{ \"scripts\": [{ \"name\": \"Dev\" }] }');\n\n const loaded = yield* loader.load(cwd);\n\n expect(Option.isNone(loaded)).toBe(true);\n }),\n );\n });", + "checksum": "e86ba3069d84308153516d912b05407d54ea3630b7ad2b1a21efb1fe37fb344f" + }, + "project-thread-env-precedence": { + "id": "project-thread-env-precedence", + "path": "packages/shared/src/threadEnvMode.ts", + "start": 3, + "end": 35, + "language": "typescript", + "label": "Project, t3.json, and global thread-environment precedence", + "code": "/**\n * Canonical priority order for a project's default thread env mode:\n * per-project setting > checked-in t3.json > global server setting.\n *\n * An explicit composer pick outranks all of these; callers apply it before\n * consulting the defaults. Web resolves the sources imperatively at draft\n * creation, mobile reactively — both must route through this function so the\n * platforms cannot disagree on the order.\n */\nexport function resolveDefaultThreadEnvMode(sources: {\n readonly projectSetting: ThreadEnvMode | null | undefined;\n readonly projectFile: ThreadEnvMode | null | undefined;\n readonly globalDefault: ThreadEnvMode;\n}): ThreadEnvMode {\n return sources.projectSetting ?? sources.projectFile ?? sources.globalDefault;\n}\n\n/**\n * True once the resolved default can no longer change: an explicit pick or a\n * source that outranks t3.json decided, or the file read settled. While\n * false, nothing may persist the provisional default (for example into a\n * draft's workspace selection) — it could differ from the final value.\n */\nexport function isDefaultThreadEnvModeSettled(sources: {\n readonly explicitMode: ThreadEnvMode | undefined;\n readonly projectSetting: ThreadEnvMode | null | undefined;\n readonly projectFilePending: boolean;\n}): boolean {\n return (\n sources.explicitMode !== undefined ||\n sources.projectSetting != null ||\n !sources.projectFilePending\n );", + "checksum": "f92aec71fc3a12aa186ad667b7a2e1adb8ac4e560f6f6376511e4b0765ee7851" + }, + "project-settings-inherited-default": { + "id": "project-settings-inherited-default", + "path": "apps/web/src/components/settings/ProjectSettingsPanel.tsx", + "start": 475, + "end": 482, + "language": "tsx", + "label": "Inherited project environment default in web settings", + "code": " const t3File = useT3ProjectFileState(\n selectedCheckout.environmentId,\n selectedCheckout.workspaceRoot,\n );\n // What the \"Default\" option resolves to while no override is set: the\n // repo's t3.json value when present, otherwise the global setting.\n const inheritedEnvMode = t3File.file?.defaultThreadEnvMode ?? settings.defaultThreadEnvMode;\n const inheritedEnvModeSource = t3File.file?.defaultThreadEnvMode != null ? \"t3.json\" : \"global\";", + "checksum": "7ab6370096f28cd8e0175e8d2a40f3e7e4e29a087f725975228b5ffdff9f68a2" + }, + "project-settings-project-override": { + "id": "project-settings-project-override", + "path": "apps/web/src/components/settings/ProjectSettingsPanel.tsx", + "start": 866, + "end": 905, + "language": "tsx", + "label": "Project environment override controls", + "code": " setDefaultThreadEnvMode(null)}\n />\n ) : null\n }\n control={\n {\n if (value === \"worktree\" || value === \"local\") {\n setDefaultThreadEnvMode(value);\n } else if (value === \"inherit\") {\n setDefaultThreadEnvMode(null);\n }\n }}\n >\n \n \n {storedEnvMode === null\n ? group.memberProjects.length > 1\n ? \"Default (per checkout)\"\n : `Default (${resolveEnvModeLabel(inheritedEnvMode).toLowerCase()})`\n : resolveEnvModeLabel(storedEnvMode)}\n \n \n \n \n {group.memberProjects.length > 1\n ? \"Default (each checkout's t3.json or global setting)\"\n : `Default (${inheritedEnvModeSource}: ${resolveEnvModeLabel(inheritedEnvMode).toLowerCase()})`}\n \n {resolveEnvModeLabel(\"worktree\")}\n {resolveEnvModeLabel(\"local\")}\n ", + "checksum": "8bfa93d2fed3d5a4362c1c30abedf00d2d1811052808a02f9ec63ed3338c8d35" + }, + "project-repository-identity": { + "id": "project-repository-identity", + "path": "apps/server/src/project/RepositoryIdentityResolver.ts", + "start": 48, + "end": 166, + "language": "typescript", + "label": "Best-effort Git remote repository identity resolution", + "code": "function pickPrimaryRemote(\n remotes: ReadonlyMap,\n): { readonly remoteName: string; readonly remoteUrl: string } | null {\n for (const preferredRemoteName of [\"upstream\", \"origin\"] as const) {\n const remoteUrl = remotes.get(preferredRemoteName);\n if (remoteUrl) {\n return { remoteName: preferredRemoteName, remoteUrl };\n }\n }\n\n const [remoteName, remoteUrl] =\n [...remotes.entries()].toSorted(([left], [right]) => left.localeCompare(right))[0] ?? [];\n return remoteName && remoteUrl ? { remoteName, remoteUrl } : null;\n}\n\nfunction buildRepositoryIdentity(input: {\n readonly remoteName: string;\n readonly remoteUrl: string;\n readonly rootPath: string;\n}): RepositoryIdentity {\n const canonicalKey = normalizeGitRemoteUrl(input.remoteUrl);\n const sourceControlProvider = detectSourceControlProviderFromGitRemoteUrl(input.remoteUrl);\n const repositoryPath = canonicalKey.split(\"/\").slice(1).join(\"/\");\n const repositoryPathSegments = repositoryPath.split(\"/\").filter((segment) => segment.length > 0);\n const [owner] = repositoryPathSegments;\n const repositoryName = repositoryPathSegments.at(-1);\n\n return {\n canonicalKey,\n locator: {\n source: \"git-remote\",\n remoteName: input.remoteName,\n remoteUrl: input.remoteUrl,\n },\n rootPath: input.rootPath,\n ...(repositoryPath ? { displayName: repositoryPath } : {}),\n ...(sourceControlProvider ? { provider: sourceControlProvider.kind } : {}),\n ...(owner ? { owner } : {}),\n ...(repositoryName ? { name: repositoryName } : {}),\n };\n}\n\nconst resolveRepositoryIdentityCacheKey = Effect.fn(\"RepositoryIdentityResolver.resolveCacheKey\")(\n function* (cwd: string) {\n const processRunner = yield* ProcessRunner.ProcessRunner;\n let cacheKey = cwd;\n\n // git is a real executable on every platform — no cmd.exe shell mode, which\n // would split paths containing spaces during cmd's re-tokenization.\n const topLevelResult = yield* processRunner\n .run({\n command: \"git\",\n args: [\"-C\", cwd, \"rev-parse\", \"--show-toplevel\"],\n timeoutBehavior: \"timedOutResult\",\n })\n .pipe(Effect.option);\n if (topLevelResult._tag === \"None\" || topLevelResult.value.code !== 0) {\n return cacheKey;\n }\n\n const candidate = topLevelResult.value.stdout.trim();\n if (candidate.length > 0) {\n cacheKey = candidate;\n }\n\n return cacheKey;\n },\n);\n\nconst resolveRepositoryIdentityFromCacheKey = Effect.fn(\n \"RepositoryIdentityResolver.resolveFromCacheKey\",\n)(function* (\n cacheKey: string,\n): Effect.fn.Return {\n const processRunner = yield* ProcessRunner.ProcessRunner;\n const remoteResult = yield* processRunner\n .run({\n command: \"git\",\n args: [\"-C\", cacheKey, \"remote\", \"-v\"],\n timeoutBehavior: \"timedOutResult\",\n })\n .pipe(Effect.option);\n if (remoteResult._tag === \"None\" || remoteResult.value.code !== 0) {\n return null;\n }\n\n const remote = pickPrimaryRemote(parseRemoteFetchUrls(remoteResult.value.stdout));\n return remote ? buildRepositoryIdentity({ ...remote, rootPath: cacheKey }) : null;\n});\n\nexport const make = Effect.fn(\"RepositoryIdentityResolver.make\")(function* (\n options: RepositoryIdentityResolverOptions = {},\n) {\n const processRunner = yield* ProcessRunner.ProcessRunner;\n\n const repositoryIdentityCache = yield* Cache.makeWith(\n (cacheKey) =>\n resolveRepositoryIdentityFromCacheKey(cacheKey).pipe(\n Effect.provideService(ProcessRunner.ProcessRunner, processRunner),\n ),\n {\n capacity: options.cacheCapacity ?? DEFAULT_REPOSITORY_IDENTITY_CACHE_CAPACITY,\n timeToLive: Exit.match({\n onSuccess: (value) =>\n value === null\n ? (options.negativeCacheTtl ?? DEFAULT_NEGATIVE_CACHE_TTL)\n : (options.positiveCacheTtl ?? DEFAULT_POSITIVE_CACHE_TTL),\n onFailure: () => Duration.zero,\n }),\n },\n );\n\n const resolve: RepositoryIdentityResolver[\"Service\"][\"resolve\"] = Effect.fn(\n \"RepositoryIdentityResolver.resolve\",\n )(function* (cwd) {\n const cacheKey = yield* resolveRepositoryIdentityCacheKey(cwd).pipe(\n Effect.provideService(ProcessRunner.ProcessRunner, processRunner),\n );\n return yield* Cache.get(repositoryIdentityCache, cacheKey);", + "checksum": "4a4f8be0eeff3ff2856b99be1dc3e109597f73ef9dfb6c89fb54aef34a4f6fff" + }, + "project-identity-read-projection": { + "id": "project-identity-read-projection", + "path": "apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts", + "start": 313, + "end": 388, + "language": "typescript", + "label": "Snapshot-time repository identity enrichment", + "code": "function mapProjectShellRow(\n row: Schema.Schema.Type,\n repositoryIdentity: OrchestrationProject[\"repositoryIdentity\"],\n): OrchestrationProjectShell {\n return {\n id: row.projectId,\n title: row.title,\n workspaceRoot: row.workspaceRoot,\n repositoryIdentity,\n defaultModelSelection: row.defaultModelSelection,\n defaultThreadEnvMode: row.defaultThreadEnvMode,\n faviconPath: row.faviconPath ?? null,\n scripts: row.scripts,\n createdAt: row.createdAt,\n updatedAt: row.updatedAt,\n };\n}\n\nfunction mapProposedPlanRow(\n row: Schema.Schema.Type,\n): OrchestrationProposedPlan {\n return {\n id: row.planId,\n turnId: row.turnId,\n planMarkdown: row.planMarkdown,\n implementedAt: row.implementedAt,\n implementationThreadId: row.implementationThreadId,\n createdAt: row.createdAt,\n updatedAt: row.updatedAt,\n };\n}\n\nfunction toPersistenceSqlOrDecodeError(sqlOperation: string, decodeOperation: string) {\n return (cause: unknown): ProjectionRepositoryError =>\n Schema.isSchemaError(cause)\n ? toPersistenceDecodeError(decodeOperation)(cause)\n : toPersistenceSqlError(sqlOperation)(cause);\n}\n\nconst makeProjectionSnapshotQuery = Effect.gen(function* () {\n const threadBackgroundLiveness = yield* ThreadBackgroundLivenessService;\n const threadPlanProgress = yield* ThreadPlanProgressService;\n const sql = yield* SqlClient.SqlClient;\n const repositoryIdentityResolver = yield* RepositoryIdentityResolver.RepositoryIdentityResolver;\n const repositoryIdentityResolutionConcurrency = 4;\n const resolveRepositoryIdentitiesForProjects = Effect.fn(\n \"ProjectionSnapshotQuery.resolveRepositoryIdentitiesForProjects\",\n )(function* (\n projectRows: ReadonlyArray>,\n options?: {\n readonly includeDeleted?: boolean;\n },\n ) {\n const filteredProjectRows =\n options?.includeDeleted === true\n ? projectRows\n : projectRows.filter((row) => row.deletedAt === null);\n const uniqueWorkspaceRoots = [...new Set(filteredProjectRows.map((row) => row.workspaceRoot))];\n const repositoryIdentityByWorkspaceRoot = new Map(\n yield* Effect.forEach(\n uniqueWorkspaceRoots,\n (workspaceRoot) =>\n repositoryIdentityResolver\n .resolve(workspaceRoot)\n .pipe(Effect.map((identity) => [workspaceRoot, identity] as const)),\n { concurrency: repositoryIdentityResolutionConcurrency },\n ),\n );\n\n return new Map(\n filteredProjectRows.map((row) => [\n row.projectId,\n repositoryIdentityByWorkspaceRoot.get(row.workspaceRoot) ?? null,\n ]),\n );\n });", + "checksum": "7d141cd37e227fc76fc88c9537c8bb8dd65842f91b9e2ec7fdec540a2913c122" + }, + "project-durable-projection": { + "id": "project-durable-projection", + "path": "apps/server/src/orchestration/decider.ts", + "start": 227, + "end": 298, + "language": "typescript", + "label": "Project creation and metadata event decisions", + "code": " case \"project.create\": {\n yield* requireProjectAbsent({\n readModel,\n command,\n projectId: command.projectId,\n });\n yield* requireActiveProjectWorkspaceRootAbsent({\n readModel,\n command,\n workspaceRoot: command.workspaceRoot,\n exceptProjectId: command.projectId,\n });\n\n return {\n ...(yield* withEventBase({\n aggregateKind: \"project\",\n aggregateId: command.projectId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"project.created\",\n payload: {\n projectId: command.projectId,\n title: command.title,\n workspaceRoot: command.workspaceRoot,\n defaultModelSelection: command.defaultModelSelection ?? null,\n faviconPath: null,\n scripts: [],\n createdAt: command.createdAt,\n updatedAt: command.createdAt,\n },\n };\n }\n\n case \"project.meta.update\": {\n yield* requireProject({\n readModel,\n command,\n projectId: command.projectId,\n });\n if (command.workspaceRoot !== undefined) {\n yield* requireActiveProjectWorkspaceRootAbsent({\n readModel,\n command,\n workspaceRoot: command.workspaceRoot,\n exceptProjectId: command.projectId,\n });\n }\n const occurredAt = yield* nowIso;\n return {\n ...(yield* withEventBase({\n aggregateKind: \"project\",\n aggregateId: command.projectId,\n occurredAt,\n commandId: command.commandId,\n })),\n type: \"project.meta-updated\",\n payload: {\n projectId: command.projectId,\n ...(command.title !== undefined ? { title: command.title } : {}),\n ...(command.workspaceRoot !== undefined ? { workspaceRoot: command.workspaceRoot } : {}),\n ...(command.defaultModelSelection !== undefined\n ? { defaultModelSelection: command.defaultModelSelection }\n : {}),\n ...(command.defaultThreadEnvMode !== undefined\n ? { defaultThreadEnvMode: command.defaultThreadEnvMode }\n : {}),\n ...(command.faviconPath !== undefined ? { faviconPath: command.faviconPath } : {}),\n ...(command.scripts !== undefined ? { scripts: command.scripts } : {}),\n updatedAt: occurredAt,\n },\n };", + "checksum": "e788184b10630834970883f5f18d9c6b555e7ecc2993eaedf944acaf4afddf0b" + }, + "project-projector": { + "id": "project-projector", + "path": "apps/server/src/orchestration/projector.ts", + "start": 207, + "end": 263, + "language": "typescript", + "label": "Durable project read-model projection", + "code": " switch (event.type) {\n case \"project.created\":\n return decodeForEvent(ProjectCreatedPayload, event.payload, event.type, \"payload\").pipe(\n Effect.map((payload) => {\n const existing = nextBase.projects.find((entry) => entry.id === payload.projectId);\n const nextProject = {\n id: payload.projectId,\n title: payload.title,\n workspaceRoot: payload.workspaceRoot,\n defaultModelSelection: payload.defaultModelSelection,\n defaultThreadEnvMode: null,\n faviconPath: payload.faviconPath ?? null,\n scripts: payload.scripts,\n createdAt: payload.createdAt,\n updatedAt: payload.updatedAt,\n deletedAt: null,\n };\n\n return {\n ...nextBase,\n projects: existing\n ? nextBase.projects.map((entry) =>\n entry.id === payload.projectId ? nextProject : entry,\n )\n : [...nextBase.projects, nextProject],\n };\n }),\n );\n\n case \"project.meta-updated\":\n return decodeForEvent(ProjectMetaUpdatedPayload, event.payload, event.type, \"payload\").pipe(\n Effect.map((payload) => ({\n ...nextBase,\n projects: nextBase.projects.map((project) =>\n project.id === payload.projectId\n ? {\n ...project,\n ...(payload.title !== undefined ? { title: payload.title } : {}),\n ...(payload.workspaceRoot !== undefined\n ? { workspaceRoot: payload.workspaceRoot }\n : {}),\n ...(payload.defaultModelSelection !== undefined\n ? { defaultModelSelection: payload.defaultModelSelection }\n : {}),\n ...(payload.defaultThreadEnvMode !== undefined\n ? { defaultThreadEnvMode: payload.defaultThreadEnvMode }\n : {}),\n ...(payload.faviconPath !== undefined\n ? { faviconPath: payload.faviconPath }\n : {}),\n ...(payload.scripts !== undefined ? { scripts: payload.scripts } : {}),\n updatedAt: payload.updatedAt,\n }\n : project,\n ),\n })),\n );", + "checksum": "729a2f33d9502369b95c9f126893ba31605baac1c1ae7f5ecfabadb71399f48e" + }, + "project-logical-grouping": { + "id": "project-logical-grouping", + "path": "packages/client-runtime/src/state/projectGrouping.ts", + "start": 67, + "end": 140, + "language": "typescript", + "label": "Client-side physical and logical project grouping", + "code": "export function derivePhysicalProjectKeyFromPath(environmentId: string, cwd: string): string {\n return `${environmentId}:${normalizeProjectPathForComparison(cwd)}`;\n}\n\nexport function derivePhysicalProjectKey(\n project: Pick,\n): string {\n return derivePhysicalProjectKeyFromPath(project.environmentId, project.workspaceRoot);\n}\n\nexport function deriveProjectGroupingOverrideKey(\n project: Pick,\n): string {\n return derivePhysicalProjectKey(project);\n}\n\nexport function getProjectOrderKey(\n project: Pick,\n): string {\n return derivePhysicalProjectKey(project);\n}\n\nexport function resolveProjectGroupingMode(\n project: Pick,\n settings: ProjectGroupingSettings,\n): SidebarProjectGroupingMode {\n return (\n settings.sidebarProjectGroupingOverrides?.[deriveProjectGroupingOverrideKey(project)] ??\n settings.sidebarProjectGroupingMode\n );\n}\n\nfunction deriveRepositoryScopedKey(\n project: Pick,\n groupingMode: SidebarProjectGroupingMode,\n): string | null {\n const canonicalKey = project.repositoryIdentity?.canonicalKey;\n if (!canonicalKey) {\n return null;\n }\n\n if (groupingMode === \"repository\") {\n return canonicalKey;\n }\n\n const relativeProjectPath = deriveRepositoryRelativeProjectPath(project);\n if (relativeProjectPath === null) {\n return canonicalKey;\n }\n\n return relativeProjectPath.length === 0\n ? canonicalKey\n : `${canonicalKey}::${relativeProjectPath}`;\n}\n\nexport function deriveLogicalProjectKey(\n project: Pick<\n EnvironmentProject,\n \"environmentId\" | \"id\" | \"workspaceRoot\" | \"repositoryIdentity\"\n >,\n options?: {\n readonly groupingMode?: SidebarProjectGroupingMode;\n },\n): string {\n const groupingMode = options?.groupingMode ?? \"repository\";\n if (groupingMode === \"separate\") {\n return derivePhysicalProjectKey(project);\n }\n\n return (\n deriveRepositoryScopedKey(project, groupingMode) ??\n derivePhysicalProjectKey(project) ??\n scopedProjectKey(scopeProjectRef(project.environmentId, project.id))\n );", + "checksum": "5dba3332ba0509524b5efd5bf70acdb14f099330583ae7878ae53a7bde32ed95" + }, + "project-environment-label": { + "id": "project-environment-label", + "path": "apps/web/src/sidebarProjectGrouping.ts", + "start": 53, + "end": 115, + "language": "typescript", + "label": "Environment labels retained in grouped sidebar projects", + "code": "export function buildSidebarProjectSnapshots(input: {\n projects: ReadonlyArray;\n settings: ProjectGroupingSettings;\n primaryEnvironmentId: EnvironmentId | null;\n resolveEnvironmentLabel: (environmentId: EnvironmentId) => string | null;\n // Returns true when an env id maps to a desktopLocal saved-env\n // record (today: the WSL backend). Defaults to \"false for every\n // env\" so callers that don't care about the distinction get the\n // legacy behavior.\n isDesktopLocalEnvironment?: (environmentId: EnvironmentId) => boolean;\n}): SidebarProjectSnapshot[] {\n return buildProjectGroups({\n projects: input.projects,\n settings: input.settings,\n preferredEnvironmentId: input.primaryEnvironmentId,\n }).map((group): SidebarProjectSnapshot => {\n const members = group.members.map(\n ({ physicalProjectKey, project }): SidebarProjectGroupMember => ({\n ...project,\n physicalProjectKey,\n environmentLabel: input.resolveEnvironmentLabel(project.environmentId),\n }),\n );\n const representative =\n members.find(\n (member) =>\n member.environmentId === group.representative.environmentId &&\n member.id === group.representative.id,\n ) ?? members[0]!;\n\n const hasLocal =\n input.primaryEnvironmentId !== null &&\n members.some((member) => member.environmentId === input.primaryEnvironmentId);\n const hasRemote =\n input.primaryEnvironmentId !== null\n ? members.some((member) => member.environmentId !== input.primaryEnvironmentId)\n : false;\n const remoteMembers = members.filter(\n (member) =>\n input.primaryEnvironmentId !== null && member.environmentId !== input.primaryEnvironmentId,\n );\n const remoteEnvironmentLabels = remoteMembers\n .flatMap((member) => (member.environmentLabel ? [member.environmentLabel] : []))\n .filter((label, index, labels) => labels.indexOf(label) === index);\n const isDesktopLocal = input.isDesktopLocalEnvironment ?? (() => false);\n const allRemoteMembersAreDesktopLocal =\n remoteMembers.length > 0 &&\n remoteMembers.every((member) => isDesktopLocal(member.environmentId));\n\n return {\n ...representative,\n projectKey: group.key,\n displayName: group.label,\n groupedProjectCount: members.length,\n environmentPresence:\n hasLocal && hasRemote ? \"mixed\" : hasRemote ? \"remote-only\" : \"local-only\",\n allRemoteMembersAreDesktopLocal,\n memberProjects: members,\n memberProjectRefs: group.memberProjectRefs,\n remoteEnvironmentLabels,\n };\n });\n}", + "checksum": "991d462dd85ddad3333fca1606c7beac65a41aa4b90282ba4794991ef9e2fb6e" + }, + "project-setup-script-selection": { + "id": "project-setup-script-selection", + "path": "packages/shared/src/projectScripts.ts", + "start": 11, + "end": 37, + "language": "typescript", + "label": "Worktree setup-script selection and environment construction", + "code": "export function projectScriptCwd(input: {\n project: {\n cwd: string;\n };\n worktreePath?: string | null;\n}): string {\n return input.worktreePath ?? input.project.cwd;\n}\n\nexport function projectScriptRuntimeEnv(\n input: ProjectScriptRuntimeEnvInput,\n): Record {\n const env: Record = {\n T3CODE_PROJECT_ROOT: input.project.cwd,\n };\n if (input.worktreePath) {\n env.T3CODE_WORKTREE_PATH = input.worktreePath;\n }\n if (input.extraEnv) {\n return { ...env, ...input.extraEnv };\n }\n return env;\n}\n\nexport function setupProjectScript(scripts: readonly ProjectScript[]): ProjectScript | null {\n return scripts.find((script) => script.runOnWorktreeCreate) ?? null;\n}", + "checksum": "78e76784914a8a10cc610f1b31943af278b003d98790ddffe5243b8ddeb8f7d8" + }, + "project-setup-script-runner": { + "id": "project-setup-script-runner", + "path": "apps/server/src/project/ProjectSetupScriptRunner.ts", + "start": 123, + "end": 183, + "language": "typescript", + "label": "Setup script launched in the linked worktree terminal", + "code": " if (!project) {\n return yield* new ProjectSetupScriptProjectNotFoundError(errorContext);\n }\n\n const script = setupProjectScript(project.scripts);\n if (!script) {\n return {\n status: \"no-script\",\n } as const;\n }\n\n const terminalId = input.preferredTerminalId ?? `setup-${script.id}`;\n const cwd = input.worktreePath;\n const env = projectScriptRuntimeEnv({\n project: { cwd: project.workspaceRoot },\n worktreePath: input.worktreePath,\n });\n\n yield* terminalManager\n .open({\n threadId: input.threadId,\n terminalId,\n cwd,\n worktreePath: input.worktreePath,\n env,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ProjectSetupScriptOperationError({\n ...errorContext,\n operation: \"openTerminal\",\n cause,\n }),\n ),\n );\n yield* terminalManager\n .write({\n threadId: input.threadId,\n terminalId,\n data: `${script.command}\\r`,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ProjectSetupScriptOperationError({\n ...errorContext,\n operation: \"writeCommand\",\n cause,\n }),\n ),\n );\n\n return {\n status: \"started\",\n scriptId: script.id,\n scriptName: script.name,\n terminalId,\n cwd,\n } as const;\n });", + "checksum": "cff81f3c6730404adcbbfda69be3407b3d365eda8730a8f780e36b80a0fe2395" + }, + "worktree-non-git-fallback": { + "id": "worktree-non-git-fallback", + "path": "apps/web/src/components/ChatView.logic.ts", + "start": 322, + "end": 327, + "language": "typescript", + "label": "Non-Git projects fall back from worktree to local mode", + "code": "export function resolveSendEnvMode(input: {\n requestedEnvMode: DraftThreadEnvMode;\n isGitRepo: boolean;\n}): DraftThreadEnvMode {\n return input.isGitRepo ? input.requestedEnvMode : \"local\";\n}", + "checksum": "f7e6d7316e8bb7115262ee669771235b851a046fb5943c03ae99edc63a2d8cbd" + }, + "worktree-ref-occupancy": { + "id": "worktree-ref-occupancy", + "path": "apps/server/src/vcs/GitVcsDriverCore.ts", + "start": 2463, + "end": 2559, + "language": "typescript", + "label": "Git worktree listing decorates occupied branch references", + "code": " const readGitRefsSnapshot = Effect.fn(\"readGitRefsSnapshot\")(function* (gitCommonDir: string) {\n const fetchCwd =\n path.basename(gitCommonDir) === \".git\" ? path.dirname(gitCommonDir) : gitCommonDir;\n const gitDirArgs = [\"--git-dir\", gitCommonDir] as const;\n const [refsResult, defaultRefResult, worktreeListResult, remoteNamesResult] = yield* Effect.all(\n [\n executeGitWithStableDiagnostics(\n \"GitVcsDriver.listRefs.snapshotRefs\",\n fetchCwd,\n [\n ...gitDirArgs,\n \"for-each-ref\",\n \"--format=%(refname)%09%(committerdate:unix)%09%(symref)\",\n \"refs/heads\",\n \"refs/remotes\",\n ],\n {\n timeoutMs: 30_000,\n maxOutputBytes: 16 * 1024 * 1024,\n fallbackErrorDetail: \"Git ref snapshot enumeration failed.\",\n },\n ),\n executeGit(\n \"GitVcsDriver.listRefs.defaultRef\",\n fetchCwd,\n [...gitDirArgs, \"symbolic-ref\", \"refs/remotes/origin/HEAD\"],\n {\n timeoutMs: 5_000,\n allowNonZeroExit: true,\n },\n ),\n executeGit(\n \"GitVcsDriver.listRefs.worktreeList\",\n fetchCwd,\n [...gitDirArgs, \"worktree\", \"list\", \"--porcelain\", \"-z\"],\n {\n timeoutMs: 30_000,\n allowNonZeroExit: true,\n maxOutputBytes: 16 * 1024 * 1024,\n },\n ),\n executeGit(\"GitVcsDriver.listRefs.remoteNames\", fetchCwd, [...gitDirArgs, \"remote\"], {\n timeoutMs: 5_000,\n allowNonZeroExit: true,\n }),\n ],\n { concurrency: 2 },\n );\n\n const remoteNames =\n remoteNamesResult.exitCode === 0 ? parseRemoteNames(remoteNamesResult.stdout) : [];\n if (remoteNamesResult.exitCode !== 0 && remoteNamesResult.stderr.trim().length > 0) {\n yield* Effect.logWarning(\n `GitVcsDriver.listRefs: remote name lookup returned code ${remoteNamesResult.exitCode} for ${gitCommonDir}: ${remoteNamesResult.stderr.trim()}. Falling back to an empty remote name list.`,\n );\n }\n const defaultBranch =\n defaultRefResult.exitCode === 0\n ? defaultRefResult.stdout.trim().replace(/^refs\\/remotes\\/origin\\//, \"\")\n : null;\n const parsedWorktreeEntries =\n worktreeListResult.exitCode === 0\n ? [...parseWorktreeBranchPaths(worktreeListResult.stdout)].map(\n ([branchName, worktreePath]) =>\n [branchName, path.normalize(path.resolve(worktreePath))] as const,\n )\n : [];\n const existingWorktreeEntries = yield* Effect.filter(\n parsedWorktreeEntries,\n ([, worktreePath]) =>\n fileSystem.stat(worktreePath).pipe(\n Effect.as(true),\n Effect.orElseSucceed(() => false),\n ),\n { concurrency: 16 },\n );\n const worktreeMap = new Map(existingWorktreeEntries);\n const localBranches: Array<{ readonly ref: VcsRef; readonly lastCommit: number }> = [];\n const remoteBranches: Array<{ readonly ref: VcsRef; readonly lastCommit: number }> = [];\n\n for (const line of refsResult.stdout.split(\"\\n\")) {\n if (line.length === 0) continue;\n const [fullRefName, lastCommitRaw, symbolicTarget] = line.split(\"\\t\");\n if (!fullRefName || symbolicTarget) continue;\n const parsedLastCommit = Number.parseInt(lastCommitRaw ?? \"0\", 10);\n const lastCommit = Number.isFinite(parsedLastCommit) ? parsedLastCommit : 0;\n\n if (fullRefName.startsWith(\"refs/heads/\")) {\n const name = fullRefName.slice(\"refs/heads/\".length);\n localBranches.push({\n ref: {\n name,\n current: false,\n isRemote: false,\n isDefault: name === defaultBranch,\n worktreePath: worktreeMap.get(name) ?? null,\n },", + "checksum": "0d568abc710d939aac21b967910cb9bd479b61ebd13ad26bcbc87c919cac7743" + }, + "worktree-create-remove-contract": { + "id": "worktree-create-remove-contract", + "path": "packages/contracts/src/git.ts", + "start": 124, + "end": 165, + "language": "typescript", + "label": "Worktree creation and removal RPC inputs", + "code": "export const VcsListRefsInput = Schema.Struct({\n cwd: TrimmedNonEmptyStringSchema,\n query: Schema.optional(TrimmedNonEmptyStringSchema.check(Schema.isMaxLength(256))),\n cursor: Schema.optional(NonNegativeInt),\n includeMatchingRemoteRefs: Schema.optional(Schema.Boolean),\n refKind: Schema.optional(Schema.Literals([\"all\", \"local\", \"remote\"])),\n refresh: Schema.optional(Schema.Boolean),\n limit: Schema.optional(\n PositiveInt.check(Schema.isLessThanOrEqualTo(GIT_LIST_BRANCHES_MAX_LIMIT)),\n ),\n});\nexport type VcsListRefsInput = typeof VcsListRefsInput.Type;\n\nexport const VcsCreateWorktreeInput = Schema.Struct({\n cwd: TrimmedNonEmptyStringSchema,\n refName: TrimmedNonEmptyStringSchema,\n newRefName: Schema.optional(TrimmedNonEmptyStringSchema),\n baseRefName: Schema.optional(TrimmedNonEmptyStringSchema),\n path: Schema.NullOr(TrimmedNonEmptyStringSchema),\n});\nexport type VcsCreateWorktreeInput = typeof VcsCreateWorktreeInput.Type;\n\nexport const GitPullRequestRefInput = Schema.Struct({\n cwd: TrimmedNonEmptyStringSchema,\n reference: GitPullRequestReference,\n});\nexport type GitPullRequestRefInput = typeof GitPullRequestRefInput.Type;\n\nexport const GitPreparePullRequestThreadInput = Schema.Struct({\n cwd: TrimmedNonEmptyStringSchema,\n reference: GitPullRequestReference,\n mode: GitPreparePullRequestThreadMode,\n threadId: Schema.optional(ThreadId),\n});\nexport type GitPreparePullRequestThreadInput = typeof GitPreparePullRequestThreadInput.Type;\n\nexport const VcsRemoveWorktreeInput = Schema.Struct({\n cwd: TrimmedNonEmptyStringSchema,\n path: TrimmedNonEmptyStringSchema,\n force: Schema.optional(Schema.Boolean),\n});\nexport type VcsRemoveWorktreeInput = typeof VcsRemoveWorktreeInput.Type;", + "checksum": "38f837fcc1bd73ea692ff819c248771f4eba476d0336357698d09ffdfa20bad2" + }, + "worktree-result-contract": { + "id": "worktree-result-contract", + "path": "packages/contracts/src/git.ts", + "start": 264, + "end": 294, + "language": "typescript", + "label": "Worktree and pull-request preparation results", + "code": "export const VcsListRefsResult = Schema.Struct({\n refs: Schema.Array(VcsRef),\n isRepo: Schema.Boolean,\n hasPrimaryRemote: Schema.Boolean,\n nextCursor: NonNegativeInt.pipe(Schema.NullOr),\n totalCount: NonNegativeInt,\n});\nexport type VcsListRefsResult = typeof VcsListRefsResult.Type;\n\nexport const VcsCreateWorktreeResult = Schema.Struct({\n worktree: VcsWorktree,\n});\nexport type VcsCreateWorktreeResult = typeof VcsCreateWorktreeResult.Type;\n\nexport const GitResolvePullRequestResult = Schema.Struct({\n pullRequest: GitResolvedPullRequest,\n});\nexport type GitResolvePullRequestResult = typeof GitResolvePullRequestResult.Type;\n\nexport const GitPreparePullRequestThreadResult = Schema.Struct({\n pullRequest: GitResolvedPullRequest,\n branch: TrimmedNonEmptyStringSchema,\n worktreePath: TrimmedNonEmptyStringSchema.pipe(Schema.NullOr),\n /**\n * False when the checkout could not be brought to the pull request head — a reused worktree\n * holding local commits or uncommitted changes keeps its own state, so the code being handed\n * over is older than the pull request.\n */\n isOnPullRequestHead: Schema.Boolean,\n});\nexport type GitPreparePullRequestThreadResult = typeof GitPreparePullRequestThreadResult.Type;", + "checksum": "be9e1709dcb7b1c171e5a679852c15f2b5e16949f1bde705f05f5d01086a63ee" + }, + "worktree-bootstrap-path": { + "id": "worktree-bootstrap-path", + "path": "apps/server/src/ws.ts", + "start": 979, + "end": 1022, + "language": "typescript", + "label": "Origin-aware worktree bootstrap saga", + "code": " if (bootstrap?.prepareWorktree) {\n let worktreeBaseRef = bootstrap.prepareWorktree.baseBranch;\n // \"Start from origin\" is a stored default; repos without an\n // origin remote fall back to the local base branch instead of\n // failing the whole bootstrap on `git fetch origin`.\n const startFromOrigin =\n bootstrap.prepareWorktree.startFromOrigin === true &&\n (yield* gitWorkflow.remoteExists({\n cwd: bootstrap.prepareWorktree.projectCwd,\n remoteName: \"origin\",\n }));\n if (startFromOrigin) {\n yield* gitWorkflow.fetchRemote({\n cwd: bootstrap.prepareWorktree.projectCwd,\n remoteName: \"origin\",\n });\n const resolvedRemoteBase = yield* gitWorkflow.resolveRemoteTrackingCommit({\n cwd: bootstrap.prepareWorktree.projectCwd,\n refName: bootstrap.prepareWorktree.baseBranch,\n fallbackRemoteName: \"origin\",\n });\n worktreeBaseRef = resolvedRemoteBase.commitSha;\n }\n const worktree = yield* gitWorkflow.createWorktree({\n cwd: bootstrap.prepareWorktree.projectCwd,\n refName: worktreeBaseRef,\n newRefName: bootstrap.prepareWorktree.branch,\n baseRefName: bootstrap.prepareWorktree.baseBranch,\n path: null,\n });\n targetWorktreePath = worktree.worktree.path;\n yield* dispatchFromClient({\n type: \"thread.meta.update\",\n commandId: yield* serverCommandId(\"bootstrap-thread-meta-update\"),\n threadId: command.threadId,\n branch: worktree.worktree.refName,\n worktreePath: targetWorktreePath,\n });\n yield* refreshGitStatus(targetWorktreePath);\n }\n\n yield* runSetupProgram();\n\n return yield* dispatchFromClient(finalTurnStartCommand);", + "checksum": "d243bf017c0fece3cfeca6fcec59f80633bae6e4358beecd85c6afdff52e31c1" + }, + "worktree-origin-base-test": { + "id": "worktree-origin-base-test", + "path": "apps/server/src/vcs/GitVcsDriverCore.test.ts", + "start": 1505, + "end": 1565, + "language": "typescript", + "label": "Remote base reference worktree creation test", + "code": " it.effect(\"creates a worktree from the latest fetched remote commit\", () =>\n Effect.gen(function* () {\n const cwd = yield* makeTmpDir();\n const remote = yield* makeTmpDir(\"git-remote-\");\n const peer = yield* makeTmpDir(\"git-peer-\");\n const { initialBranch } = yield* initRepoWithCommit(cwd);\n yield* git(remote, [\"init\", \"--bare\"]);\n yield* git(cwd, [\"remote\", \"add\", \"origin\", remote]);\n yield* git(cwd, [\"push\", \"-u\", \"origin\", initialBranch]);\n yield* git(remote, [\"symbolic-ref\", \"HEAD\", `refs/heads/${initialBranch}`]);\n const beforeFetch = yield* git(cwd, [\"rev-parse\", `refs/remotes/origin/${initialBranch}`]);\n\n yield* git(peer, [\"clone\", remote, \".\"]);\n yield* git(peer, [\"config\", \"user.email\", \"test@test.com\"]);\n yield* git(peer, [\"config\", \"user.name\", \"Test\"]);\n yield* writeTextFile(peer, \"remote-change.txt\", \"remote\\n\");\n yield* git(peer, [\"add\", \"remote-change.txt\"]);\n yield* git(peer, [\"commit\", \"-m\", \"remote change\"]);\n yield* git(peer, [\"push\", \"origin\", initialBranch]);\n const remoteHead = yield* git(peer, [\"rev-parse\", \"HEAD\"]);\n assert.notEqual(beforeFetch, remoteHead);\n\n const driver = yield* GitVcsDriver.GitVcsDriver;\n yield* driver.fetchRemote({ cwd, remoteName: \"origin\" });\n\n const resolvedBase = yield* driver.resolveRemoteTrackingCommit({\n cwd,\n refName: initialBranch,\n fallbackRemoteName: \"origin\",\n });\n const explicitlyResolvedBase = yield* driver.resolveRemoteTrackingCommit({\n cwd,\n refName: `origin/${initialBranch}`,\n fallbackRemoteName: \"origin\",\n });\n\n assert.deepEqual(resolvedBase, {\n commitSha: remoteHead,\n remoteRefName: `origin/${initialBranch}`,\n });\n assert.deepEqual(explicitlyResolvedBase, resolvedBase);\n assert.equal(yield* git(cwd, [\"rev-parse\", initialBranch]), beforeFetch);\n\n const pathService = yield* Path.Path;\n const worktreePath = pathService.join(\n yield* makeTmpDir(\"git-fetched-worktrees-\"),\n \"fetched-origin\",\n );\n yield* driver.createWorktree({\n cwd,\n path: worktreePath,\n refName: resolvedBase.commitSha,\n newRefName: \"t3code/fetched-origin\",\n baseRefName: resolvedBase.remoteRefName,\n });\n\n assert.equal(yield* git(worktreePath, [\"rev-parse\", \"HEAD\"]), remoteHead);\n assert.equal(\n yield* driver.readConfigValue(worktreePath, \"branch.t3code/fetched-origin.gh-merge-base\"),\n initialBranch,\n );", + "checksum": "3079485524aec02260b358299da023b6dda92f6b257cd7abe203530cca242022" + }, + "worktree-create-command": { + "id": "worktree-create-command", + "path": "apps/server/src/vcs/GitVcsDriverCore.ts", + "start": 2763, + "end": 2799, + "language": "typescript", + "label": "Git worktree add command and default linked path", + "code": " const createWorktree: GitVcsDriver.GitVcsDriver[\"Service\"][\"createWorktree\"] = Effect.fn(\n \"createWorktree\",\n )(function* (input) {\n const targetBranch = input.newRefName ?? input.refName;\n const sanitizedBranch = targetBranch.replace(/\\//g, \"-\");\n const repoName = path.basename(input.cwd);\n const worktreePath = input.path ?? path.join(worktreesDir, repoName, sanitizedBranch);\n const args = input.newRefName\n ? [\"worktree\", \"add\", \"-b\", input.newRefName, worktreePath, input.refName]\n : [\"worktree\", \"add\", worktreePath, input.refName];\n\n yield* executeGit(\"GitVcsDriver.createWorktree\", input.cwd, args, {\n fallbackErrorDetail: \"git worktree add failed\",\n timeoutMs: WORKTREE_ADD_TIMEOUT_MS,\n });\n\n if (input.newRefName && input.baseRefName) {\n const remoteNames = yield* listRemoteNames(input.cwd).pipe(Effect.orElseSucceed(() => []));\n const parsedBaseRef = parseRemoteRefWithRemoteNames(\n input.baseRefName,\n remoteNames.toSorted((left, right) => right.length - left.length),\n );\n const baseBranch = parsedBaseRef?.branchName ?? input.baseRefName;\n yield* runGit(\"GitVcsDriver.createWorktree.configureBaseRef\", input.cwd, [\n \"config\",\n `branch.${input.newRefName}.gh-merge-base`,\n baseBranch,\n ]);\n }\n\n return {\n worktree: {\n path: worktreePath,\n refName: targetBranch,\n },\n };\n });", + "checksum": "4c15353dd8e82554c229e870a3625673d90574db5b6c7ae4396b332f837f61c3" + }, + "worktree-setup-runner": { + "id": "worktree-setup-runner", + "path": "apps/server/src/project/ProjectSetupScriptRunner.ts", + "start": 123, + "end": 183, + "language": "typescript", + "label": "Post-creation setup script runner", + "code": " if (!project) {\n return yield* new ProjectSetupScriptProjectNotFoundError(errorContext);\n }\n\n const script = setupProjectScript(project.scripts);\n if (!script) {\n return {\n status: \"no-script\",\n } as const;\n }\n\n const terminalId = input.preferredTerminalId ?? `setup-${script.id}`;\n const cwd = input.worktreePath;\n const env = projectScriptRuntimeEnv({\n project: { cwd: project.workspaceRoot },\n worktreePath: input.worktreePath,\n });\n\n yield* terminalManager\n .open({\n threadId: input.threadId,\n terminalId,\n cwd,\n worktreePath: input.worktreePath,\n env,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ProjectSetupScriptOperationError({\n ...errorContext,\n operation: \"openTerminal\",\n cause,\n }),\n ),\n );\n yield* terminalManager\n .write({\n threadId: input.threadId,\n terminalId,\n data: `${script.command}\\r`,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ProjectSetupScriptOperationError({\n ...errorContext,\n operation: \"writeCommand\",\n cause,\n }),\n ),\n );\n\n return {\n status: \"started\",\n scriptId: script.id,\n scriptName: script.name,\n terminalId,\n cwd,\n } as const;\n });", + "checksum": "cff81f3c6730404adcbbfda69be3407b3d365eda8730a8f780e36b80a0fe2395" + }, + "worktree-setup-test": { + "id": "worktree-setup-test", + "path": "apps/server/src/project/ProjectSetupScriptRunner.test.ts", + "start": 93, + "end": 152, + "language": "typescript", + "label": "Setup terminal cwd and environment test", + "code": " it.effect(\n \"opens the deterministic setup terminal with worktree env and writes the command\",\n () => {\n const open = vi.fn(() =>\n Effect.succeed({\n threadId: \"thread-1\",\n terminalId: \"setup-setup\",\n cwd: \"/repo/worktrees/a\",\n worktreePath: \"/repo/worktrees/a\",\n status: \"running\" as const,\n pid: 123,\n history: \"\",\n exitCode: null,\n exitSignal: null,\n label: \"setup-setup\",\n updatedAt: \"2026-01-01T00:00:00.000Z\",\n }),\n );\n const write = vi.fn(() => Effect.void);\n const project = makeProject([\n {\n id: \"setup\",\n name: \"Setup\",\n command: \"bun install\",\n icon: \"configure\",\n runOnWorktreeCreate: true,\n },\n ]);\n\n return Effect.gen(function* () {\n const runner = yield* ProjectSetupScriptRunner.ProjectSetupScriptRunner;\n const result = yield* runner.runForThread({\n threadId: \"thread-1\",\n projectCwd: \"/repo/project\",\n worktreePath: \"/repo/worktrees/a\",\n });\n\n expect(result).toEqual({\n status: \"started\",\n scriptId: \"setup\",\n scriptName: \"Setup\",\n terminalId: \"setup-setup\",\n cwd: \"/repo/worktrees/a\",\n });\n expect(open).toHaveBeenCalledWith({\n threadId: \"thread-1\",\n terminalId: \"setup-setup\",\n cwd: \"/repo/worktrees/a\",\n worktreePath: \"/repo/worktrees/a\",\n env: {\n T3CODE_PROJECT_ROOT: \"/repo/project\",\n T3CODE_WORKTREE_PATH: \"/repo/worktrees/a\",\n },\n });\n expect(write).toHaveBeenCalledWith({\n threadId: \"thread-1\",\n terminalId: \"setup-setup\",\n data: \"bun install\\r\",\n });\n }).pipe(Effect.provide(testLayer(project, { open, write })));", + "checksum": "97cc43e347199b1d18b1a9e4c57bc8933996c2e29b4db41a3d8b700fbf69ffaf" + }, + "worktree-remove-command": { + "id": "worktree-remove-command", + "path": "apps/server/src/vcs/GitVcsDriverCore.ts", + "start": 2982, + "end": 2994, + "language": "typescript", + "label": "Git worktree removal command", + "code": " const removeWorktree: GitVcsDriver.GitVcsDriver[\"Service\"][\"removeWorktree\"] = Effect.fn(\n \"removeWorktree\",\n )(function* (input) {\n const args = [\"worktree\", \"remove\"];\n if (input.force) {\n args.push(\"--force\");\n }\n args.push(input.path);\n yield* executeGit(\"GitVcsDriver.removeWorktree\", input.cwd, args, {\n timeoutMs: 15_000,\n fallbackErrorDetail: \"git worktree remove failed\",\n });\n });", + "checksum": "af8c3225d2530ef3532d7840a4f688233911c75f8750cb1287777d8a7b4dbf98" + }, + "worktree-create-remove-test": { + "id": "worktree-create-remove-test", + "path": "apps/server/src/vcs/GitVcsDriverCore.test.ts", + "start": 1377, + "end": 1403, + "language": "typescript", + "label": "Worktree create and remove integration test", + "code": " it.effect(\"creates and removes a worktree for a new refName\", () =>\n Effect.gen(function* () {\n const cwd = yield* makeTmpDir();\n const { initialBranch } = yield* initRepoWithCommit(cwd);\n const pathService = yield* Path.Path;\n const worktreePath = pathService.join(\n yield* makeTmpDir(\"git-worktrees-\"),\n \"feature-worktree\",\n );\n const driver = yield* GitVcsDriver.GitVcsDriver;\n\n const created = yield* driver.createWorktree({\n cwd,\n path: worktreePath,\n refName: initialBranch,\n newRefName: \"feature/worktree\",\n });\n\n assert.equal(created.worktree.path, worktreePath);\n assert.equal(created.worktree.refName, \"feature/worktree\");\n assert.equal(yield* git(worktreePath, [\"branch\", \"--show-current\"]), \"feature/worktree\");\n\n yield* driver.removeWorktree({ cwd, path: worktreePath });\n const fileSystem = yield* FileSystem.FileSystem;\n assert.equal(yield* fileSystem.exists(worktreePath), false);\n }),\n );", + "checksum": "7a00307d552baf90ff2b75e89cf5b2578a924b5f13fef6b4784fbf9f03a92160" + }, + "worktree-bootstrap-failure-cleanup": { + "id": "worktree-bootstrap-failure-cleanup", + "path": "apps/server/src/ws.ts", + "start": 1025, + "end": 1053, + "language": "typescript", + "label": "Bootstrap failure compensation for a newly created thread", + "code": " return yield* bootstrapProgram.pipe(\n Effect.catchCause((cause) => {\n const dispatchError = toBootstrapDispatchCommandCauseError(cause);\n if (Cause.hasInterruptsOnly(cause)) {\n return Effect.fail(dispatchError);\n }\n return Effect.uninterruptible(cleanupCreatedThread()).pipe(\n Effect.matchCauseEffect({\n onFailure: (cleanupCause) =>\n Effect.logWarning(\"bootstrap thread cleanup failed\", {\n threadId: command.threadId,\n detail: Cause.pretty(cleanupCause),\n }).pipe(Effect.flatMap(() => Effect.fail(dispatchError))),\n onSuccess: (threadDeleted) =>\n Effect.fail(\n threadDeleted\n ? new OrchestrationDispatchCommandError({\n message: dispatchError.message,\n ...(dispatchError.cause !== undefined\n ? { cause: dispatchError.cause }\n : {}),\n bootstrapThreadDisposition: \"deleted\",\n })\n : dispatchError,\n ),\n }),\n );\n }),\n );", + "checksum": "d2c16f4de66195ff88ab5b79da7e0944fd287f3bc58ca2743d12e972a780cd57" + }, + "turn-lifecycle-start-decider": { + "id": "turn-lifecycle-start-decider", + "path": "apps/server/src/orchestration/decider.ts", + "start": 926, + "end": 1036, + "language": "typescript", + "label": "Turn start intent and atomic lifecycle-reset event batch", + "code": " case \"thread.turn.start\": {\n const targetThread = yield* requireThread({\n readModel,\n command,\n threadId: command.threadId,\n });\n const sourceProposedPlan = command.sourceProposedPlan;\n const sourceThread = sourceProposedPlan\n ? yield* requireThread({\n readModel,\n command,\n threadId: sourceProposedPlan.threadId,\n })\n : null;\n const sourcePlan =\n sourceProposedPlan && sourceThread\n ? sourceThread.proposedPlans.find((entry) => entry.id === sourceProposedPlan.planId)\n : null;\n if (sourceProposedPlan && !sourcePlan) {\n return yield* new OrchestrationCommandInvariantError({\n commandType: command.type,\n detail: `Proposed plan '${sourceProposedPlan.planId}' does not exist on thread '${sourceProposedPlan.threadId}'.`,\n });\n }\n if (sourceThread && sourceThread.projectId !== targetThread.projectId) {\n return yield* new OrchestrationCommandInvariantError({\n commandType: command.type,\n detail: `Proposed plan '${sourceProposedPlan?.planId}' belongs to thread '${sourceThread.id}' in a different project.`,\n });\n }\n const userMessageEvent: Omit = {\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"thread.message-sent\",\n payload: {\n threadId: command.threadId,\n messageId: command.message.messageId,\n role: \"user\",\n text: command.message.text,\n attachments: command.message.attachments,\n turnId: null,\n streaming: false,\n createdAt: command.createdAt,\n updatedAt: command.createdAt,\n },\n };\n const turnStartRequestedEvent: Omit = {\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n causationEventId: userMessageEvent.eventId,\n type: \"thread.turn-start-requested\",\n payload: {\n threadId: command.threadId,\n messageId: command.message.messageId,\n ...(command.modelSelection !== undefined\n ? { modelSelection: command.modelSelection }\n : {}),\n ...(command.titleSeed !== undefined ? { titleSeed: command.titleSeed } : {}),\n runtimeMode: targetThread.runtimeMode,\n interactionMode: targetThread.interactionMode,\n ...(sourceProposedPlan !== undefined ? { sourceProposedPlan } : {}),\n createdAt: command.createdAt,\n },\n };\n // Real activity resets ANY override: it wakes an explicitly settled\n // thread, and it clears a keep-active pin back to neutral so the\n // thread can auto-settle again after this burst of work goes stale.\n // A snooze clears the same way — sending a message to a snoozed\n // thread is the user re-engaging, so the return ticket is spent.\n const lifecycleResetEvents: Array> = [];\n if (targetThread.settledOverride !== null) {\n lifecycleResetEvents.push({\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"thread.unsettled\",\n payload: {\n threadId: command.threadId,\n reason: \"activity\",\n updatedAt: command.createdAt,\n },\n });\n }\n if (targetThread.snoozedUntil != null) {\n lifecycleResetEvents.push({\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"thread.unsnoozed\",\n payload: {\n threadId: command.threadId,\n reason: \"activity\",\n updatedAt: command.createdAt,\n },\n });\n }\n return [...lifecycleResetEvents, userMessageEvent, turnStartRequestedEvent];", + "checksum": "0d0fe115f9ae7b07e903de3cca6dfd815044b54aa8a56b75417acb4a17410c4d" + }, + "turn-lifecycle-command-reactor": { + "id": "turn-lifecycle-command-reactor", + "path": "apps/server/src/orchestration/Layers/ProviderCommandReactor.ts", + "start": 1060, + "end": 1174, + "language": "typescript", + "label": "Committed turn intent forwarded to the provider", + "code": " const processTurnStartRequested = Effect.fn(\"processTurnStartRequested\")(function* (\n event: Extract,\n ) {\n const key = turnStartKeyForEvent(event);\n if (yield* hasHandledTurnStartRecently(key)) {\n return;\n }\n\n const thread = yield* resolveThread(event.payload.threadId);\n if (!thread) {\n return;\n }\n\n const message = thread.messages.find((entry) => entry.id === event.payload.messageId);\n if (!message || message.role !== \"user\") {\n yield* appendProviderFailureActivity({\n threadId: event.payload.threadId,\n kind: \"provider.turn.start.failed\",\n summary: \"Provider turn start failed\",\n detail: `User message '${event.payload.messageId}' was not found for turn start request.`,\n turnId: null,\n createdAt: event.payload.createdAt,\n });\n return;\n }\n\n const isFirstUserMessageTurn =\n thread.messages.filter((entry) => entry.role === \"user\").length === 1;\n if (isFirstUserMessageTurn) {\n const project = yield* resolveProject(thread.projectId);\n const generationCwd =\n resolveThreadWorkspaceCwd({\n thread,\n projects: project ? [project] : [],\n }) ?? process.cwd();\n const generationInput = {\n messageText: message.text,\n ...(message.attachments !== undefined ? { attachments: message.attachments } : {}),\n ...(event.payload.titleSeed !== undefined ? { titleSeed: event.payload.titleSeed } : {}),\n };\n\n yield* maybeGenerateAndRenameWorktreeBranchForFirstTurn({\n threadId: event.payload.threadId,\n branch: thread.branch,\n worktreePath: thread.worktreePath,\n ...generationInput,\n }).pipe(Effect.forkScoped);\n\n if (canReplaceThreadTitle(thread.title, event.payload.titleSeed)) {\n yield* maybeGenerateThreadTitleForFirstTurn({\n threadId: event.payload.threadId,\n cwd: generationCwd,\n ...generationInput,\n }).pipe(Effect.forkScoped);\n }\n }\n\n const handleTurnStartFailure = (cause: Cause.Cause) => {\n if (Cause.hasInterruptsOnly(cause)) {\n return Effect.void;\n }\n const detail = formatFailureDetail(cause);\n return setThreadSessionErrorOnTurnStartFailure({\n threadId: event.payload.threadId,\n detail,\n createdAt: event.payload.createdAt,\n }).pipe(\n Effect.flatMap(() =>\n appendProviderFailureActivity({\n threadId: event.payload.threadId,\n kind: \"provider.turn.start.failed\",\n summary: \"Provider turn start failed\",\n detail,\n turnId: null,\n createdAt: event.payload.createdAt,\n }),\n ),\n Effect.asVoid,\n );\n };\n\n const recoverTurnStartFailure = (cause: Cause.Cause) =>\n handleTurnStartFailure(cause).pipe(\n Effect.catchCause((recoveryCause) =>\n Effect.logWarning(\"provider command reactor failed to recover turn start failure\", {\n eventType: event.type,\n threadId: event.payload.threadId,\n cause: Cause.pretty(recoveryCause),\n originalCause: Cause.pretty(cause),\n }),\n ),\n );\n\n const sendTurnRequest = yield* buildSendTurnRequestForThread({\n threadId: event.payload.threadId,\n messageText: message.text,\n ...(message.attachments !== undefined ? { attachments: message.attachments } : {}),\n ...(event.payload.modelSelection !== undefined\n ? { modelSelection: event.payload.modelSelection }\n : {}),\n interactionMode: event.payload.interactionMode,\n createdAt: event.payload.createdAt,\n }).pipe(\n Effect.map(Option.some),\n Effect.catchCause((cause) => handleTurnStartFailure(cause).pipe(Effect.as(Option.none()))),\n );\n\n if (Option.isNone(sendTurnRequest)) {\n return;\n }\n\n yield* providerService\n .sendTurn(sendTurnRequest.value)\n .pipe(Effect.catchCause(recoverTurnStartFailure), Effect.forkScoped);\n });", + "checksum": "e612e2a0295ab2afbf9d9b7a9d4c7da0578c4adf5b052b24892d929ec9995f00" + }, + "turn-lifecycle-runtime-correlation": { + "id": "turn-lifecycle-runtime-correlation", + "path": "apps/server/src/provider/Layers/ProviderService.ts", + "start": 195, + "end": 213, + "language": "typescript", + "label": "Provider runtime event identity validation", + "code": "const correlateRuntimeEventWithInstance = (\n source: {\n readonly instanceId: ProviderInstanceId;\n readonly provider: ProviderDriverKind;\n },\n event: ProviderRuntimeEvent,\n): ProviderRuntimeEvent => {\n if (event.provider !== source.provider) {\n throw new Error(\n `ProviderService.streamEvents: provider instance '${source.instanceId}' is backed by driver '${source.provider}' but emitted driver '${event.provider}'.`,\n );\n }\n if (event.providerInstanceId !== undefined && event.providerInstanceId !== source.instanceId) {\n throw new Error(\n `ProviderService.streamEvents: provider instance '${source.instanceId}' emitted event for instance '${event.providerInstanceId}'.`,\n );\n }\n return { ...event, providerInstanceId: source.instanceId };\n};", + "checksum": "43acc45594b4f0975e8a79e5f7a2dd9f0ce5233962b23cbf441038991a1f3082" + }, + "turn-lifecycle-runtime-guards": { + "id": "turn-lifecycle-runtime-guards", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1505, + "end": 1656, + "language": "typescript", + "label": "Runtime lifecycle correlation and durable session folding", + "code": " const now = event.createdAt;\n const eventTurnId = toTurnId(event.turnId);\n const activeTurnId = thread.session?.activeTurnId ?? null;\n const pendingTurnStart = yield* projectionTurnRepository.getPendingTurnStartByThreadId({\n threadId: thread.id,\n });\n const hasPendingTurnStart =\n Option.isSome(pendingTurnStart) && thread.session?.status === \"starting\";\n\n const conflictsWithActiveTurn =\n activeTurnId !== null && eventTurnId !== undefined && !sameId(activeTurnId, eventTurnId);\n const missingTurnForActiveTurn = activeTurnId !== null && eventTurnId === undefined;\n\n // A turn.started that conflicts with the active turn is legitimate when\n // the server itself has a turn start pending for this thread AND the\n // provider session already tracks the event's turn as its active turn:\n // steering a running turn makes some providers (e.g. opencode) open a\n // new turn without ever completing the superseded one. A stale\n // turn.started for some other turn id still gets rejected.\n const conflictingTurnStartIsPendingTurnStart =\n event.type === \"turn.started\" && conflictsWithActiveTurn\n ? sameId(yield* getExpectedProviderTurnIdForThread(thread.id), eventTurnId) &&\n Option.isSome(pendingTurnStart)\n : false;\n\n const shouldApplyThreadLifecycle = (() => {\n if (!STRICT_PROVIDER_LIFECYCLE_GUARD) {\n return true;\n }\n switch (event.type) {\n case \"session.exited\":\n return true;\n case \"session.started\":\n case \"thread.started\":\n return true;\n case \"turn.started\":\n return !conflictsWithActiveTurn || conflictingTurnStartIsPendingTurnStart;\n case \"turn.completed\":\n if (conflictsWithActiveTurn || missingTurnForActiveTurn) {\n return false;\n }\n // Only the active turn may close the lifecycle state.\n if (activeTurnId !== null && eventTurnId !== undefined) {\n return sameId(activeTurnId, eventTurnId);\n }\n // No active turn tracked: accept only completions that name their\n // turn (covers a real completion whose turn.started was lost). An\n // untargeted completion cannot prove it belongs to any turn this\n // thread ran — the known emitter was the Claude resume handshake\n // (system/init + result(num_turns: 0)), which is not a turn at\n // all — and applying it here stomps the \"starting\" lifecycle\n // state while a turn start is pending.\n return eventTurnId !== undefined;\n default:\n return true;\n }\n })();\n const acceptedTurnStartedSourcePlan =\n event.type === \"turn.started\" && shouldApplyThreadLifecycle\n ? yield* getSourceProposedPlanReferenceForAcceptedTurnStart(thread.id, eventTurnId)\n : null;\n\n if (\n event.type === \"session.started\" ||\n event.type === \"session.state.changed\" ||\n event.type === \"session.exited\" ||\n event.type === \"thread.started\" ||\n event.type === \"turn.started\" ||\n event.type === \"turn.completed\"\n ) {\n const status = (() => {\n switch (event.type) {\n case \"session.state.changed\": {\n const runtimeStatus = orchestrationSessionStatusFromRuntimeState(event.payload.state);\n return hasPendingTurnStart && runtimeStatus === \"ready\" ? \"starting\" : runtimeStatus;\n }\n case \"turn.started\":\n return \"running\";\n case \"session.exited\":\n return \"stopped\";\n case \"turn.completed\":\n return normalizeRuntimeTurnState(event.payload.state) === \"failed\"\n ? \"error\"\n : \"ready\";\n case \"session.started\":\n case \"thread.started\":\n // Provider thread/session start notifications can arrive during an\n // active or pending turn; preserve that lifecycle state.\n return activeTurnId !== null ? \"running\" : hasPendingTurnStart ? \"starting\" : \"ready\";\n }\n })();\n const nextActiveTurnId =\n event.type === \"turn.started\"\n ? (eventTurnId ?? null)\n : event.type === \"turn.completed\" || event.type === \"session.exited\"\n ? null\n : event.type === \"session.state.changed\" &&\n !sessionStatusAllowsActiveTurn(\n orchestrationSessionStatusFromRuntimeState(event.payload.state),\n )\n ? null\n : activeTurnId;\n const lastError =\n event.type === \"session.state.changed\" && event.payload.state === \"error\"\n ? (event.payload.reason ?? thread.session?.lastError ?? \"Provider session error\")\n : event.type === \"turn.completed\" &&\n normalizeRuntimeTurnState(event.payload.state) === \"failed\"\n ? (event.payload.errorMessage ?? thread.session?.lastError ?? \"Turn failed\")\n : status === \"ready\"\n ? null\n : (thread.session?.lastError ?? null);\n\n if (shouldApplyThreadLifecycle) {\n if (event.type === \"turn.started\" && acceptedTurnStartedSourcePlan !== null) {\n yield* markSourceProposedPlanImplemented(\n acceptedTurnStartedSourcePlan.sourceThreadId,\n acceptedTurnStartedSourcePlan.sourcePlanId,\n thread.id,\n now,\n ).pipe(\n Effect.catchCause((cause) =>\n Effect.logWarning(\n \"provider runtime ingestion failed to mark source proposed plan\",\n {\n eventId: event.eventId,\n eventType: event.type,\n cause: Cause.pretty(cause),\n },\n ),\n ),\n );\n }\n\n yield* orchestrationEngine.dispatch({\n type: \"thread.session.set\",\n commandId: yield* providerCommandId(event, \"thread-session-set\"),\n threadId: thread.id,\n session: {\n threadId: thread.id,\n status,\n providerName: event.provider,\n ...(event.providerInstanceId !== undefined\n ? { providerInstanceId: event.providerInstanceId }\n : {}),\n runtimeMode: thread.session?.runtimeMode ?? \"full-access\",\n activeTurnId: nextActiveTurnId,\n lastError,\n updatedAt: now,\n },\n createdAt: now,\n });\n }", + "checksum": "c7bc77bba03bd67251974ffa4e634dad8af26720466ddde046f4be45c4110947" + }, + "turn-lifecycle-buffering": { + "id": "turn-lifecycle-buffering", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 1659, + "end": 1750, + "language": "typescript", + "label": "Buffered assistant delivery and pause-boundary flush", + "code": " const assistantDelta =\n event.type === \"content.delta\" && event.payload.streamKind === \"assistant_text\"\n ? event.payload.delta\n : undefined;\n const proposedPlanDelta =\n event.type === \"turn.proposed.delta\" ? event.payload.delta : undefined;\n\n if (assistantDelta && assistantDelta.length > 0) {\n const turnId = toTurnId(event.turnId);\n const assistantMessageId = yield* getOrCreateAssistantMessageId({\n threadId: thread.id,\n event,\n ...(turnId ? { turnId } : {}),\n });\n if (turnId) {\n yield* rememberAssistantMessageId(thread.id, turnId, assistantMessageId);\n }\n\n const assistantDeliveryMode: AssistantDeliveryMode = yield* Effect.map(\n serverSettingsService.getSettings,\n (settings) => (settings.enableLegacyTokenStreaming ? \"streaming\" : \"buffered\"),\n );\n if (assistantDeliveryMode === \"buffered\") {\n const spillChunk = yield* appendBufferedAssistantText(assistantMessageId, assistantDelta);\n if (spillChunk.length > 0) {\n yield* orchestrationEngine.dispatch({\n type: \"thread.message.assistant.delta\",\n commandId: yield* providerCommandId(event, \"assistant-delta-buffer-spill\"),\n threadId: thread.id,\n messageId: assistantMessageId,\n delta: spillChunk,\n ...(turnId ? { turnId } : {}),\n createdAt: now,\n });\n }\n } else {\n yield* orchestrationEngine.dispatch({\n type: \"thread.message.assistant.delta\",\n commandId: yield* providerCommandId(event, \"assistant-delta\"),\n threadId: thread.id,\n messageId: assistantMessageId,\n delta: assistantDelta,\n ...(turnId ? { turnId } : {}),\n createdAt: now,\n });\n }\n }\n\n const pauseForUserTurnId =\n event.type === \"request.opened\" || event.type === \"user-input.requested\"\n ? toTurnId(event.turnId)\n : undefined;\n if (pauseForUserTurnId) {\n const detailedThread = yield* getLoadedThreadDetail();\n const assistantDeliveryMode: AssistantDeliveryMode = yield* Effect.map(\n serverSettingsService.getSettings,\n (settings) => (settings.enableLegacyTokenStreaming ? \"streaming\" : \"buffered\"),\n );\n const flushedMessageIds =\n assistantDeliveryMode === \"buffered\"\n ? yield* flushBufferedAssistantMessagesForTurn({\n event,\n threadId: thread.id,\n turnId: pauseForUserTurnId,\n createdAt: now,\n commandTag:\n event.type === \"request.opened\"\n ? \"assistant-delta-flush-on-request-opened\"\n : \"assistant-delta-flush-on-user-input-requested\",\n })\n : new Set();\n yield* finalizeActiveAssistantSegmentForTurn({\n event,\n threadId: thread.id,\n turnId: pauseForUserTurnId,\n createdAt: now,\n commandTag:\n event.type === \"request.opened\"\n ? \"assistant-complete-on-request-opened\"\n : \"assistant-complete-on-user-input-requested\",\n finalDeltaCommandTag:\n event.type === \"request.opened\"\n ? \"assistant-delta-finalize-on-request-opened\"\n : \"assistant-delta-finalize-on-user-input-requested\",\n hasProjectedMessage:\n detailedThread !== null &&\n hasAssistantMessageForTurn(detailedThread.messages, pauseForUserTurnId, {\n streamingOnly: true,\n }),\n flushedMessageIds,\n });\n }", + "checksum": "e91fb7e11d5c75dc5a834b75c111d8805a0342d7807a62d1977cd0542a51508c" + }, + "turn-lifecycle-interrupt": { + "id": "turn-lifecycle-interrupt", + "path": "apps/server/src/orchestration/decider.ts", + "start": 1039, + "end": 1058, + "language": "typescript", + "label": "Durable turn interrupt intent", + "code": " case \"thread.turn.interrupt\": {\n yield* requireThread({\n readModel,\n command,\n threadId: command.threadId,\n });\n return {\n ...(yield* withEventBase({\n aggregateKind: \"thread\",\n aggregateId: command.threadId,\n occurredAt: command.createdAt,\n commandId: command.commandId,\n })),\n type: \"thread.turn-interrupt-requested\",\n payload: {\n threadId: command.threadId,\n ...(command.turnId !== undefined ? { turnId: command.turnId } : {}),\n createdAt: command.createdAt,\n },\n };", + "checksum": "78ab7a9c85d8c101f2136c38a88c3cef91b00adf35fb3731e56f8537cced4278" + }, + "turn-lifecycle-checkpoint-completion": { + "id": "turn-lifecycle-checkpoint-completion", + "path": "apps/server/src/orchestration/Layers/CheckpointReactor.ts", + "start": 356, + "end": 458, + "language": "typescript", + "label": "Post-turn checkpoint capture and placeholder replacement", + "code": " function* (event: Extract) {\n const turnId = toTurnId(event.turnId);\n if (!turnId) {\n return;\n }\n\n const thread = yield* resolveThreadDetail(event.threadId);\n if (!thread) {\n return;\n }\n\n // When a primary turn is active, only that turn may produce completion checkpoints.\n if (thread.session?.activeTurnId && !sameId(thread.session.activeTurnId, turnId)) {\n return;\n }\n\n // Only skip if a real (non-placeholder) checkpoint already exists for this turn.\n // ProviderRuntimeIngestion may insert placeholder entries with status \"missing\"\n // before this reactor runs; those must not prevent real git capture.\n if (\n thread.checkpoints.some(\n (checkpoint) => checkpoint.turnId === turnId && checkpoint.status !== \"missing\",\n )\n ) {\n return;\n }\n\n const projects = yield* resolveThreadProjects(thread.projectId);\n const checkpointCwd = yield* resolveCheckpointCwd({\n threadId: thread.id,\n thread,\n projects,\n preferSessionRuntime: true,\n });\n if (!checkpointCwd) {\n return;\n }\n\n // If a placeholder checkpoint exists for this turn, reuse its turn count\n // instead of incrementing past it.\n const existingPlaceholder = thread.checkpoints.find(\n (checkpoint) => checkpoint.turnId === turnId && checkpoint.status === \"missing\",\n );\n const currentTurnCount = thread.checkpoints.reduce(\n (maxTurnCount, checkpoint) => Math.max(maxTurnCount, checkpoint.checkpointTurnCount),\n 0,\n );\n const nextTurnCount = existingPlaceholder\n ? existingPlaceholder.checkpointTurnCount\n : currentTurnCount + 1;\n\n yield* captureAndDispatchCheckpoint({\n threadId: thread.id,\n turnId,\n thread,\n cwd: checkpointCwd,\n turnCount: nextTurnCount,\n status: checkpointStatusFromRuntime(event.payload.state),\n assistantMessageId: undefined,\n createdAt: event.createdAt,\n });\n },\n );\n\n // Captures a real git checkpoint when a placeholder checkpoint (status \"missing\")\n // is detected via a domain event. This replaces the placeholder with a real\n // git-ref-based checkpoint.\n //\n // ProviderRuntimeIngestion creates placeholder checkpoints on turn.diff.updated\n // events from the Codex runtime. This handler fires when the corresponding\n // domain event arrives, allowing the reactor to capture the actual filesystem\n // state into a git ref and dispatch a replacement checkpoint.\n const captureCheckpointFromPlaceholder = Effect.fn(\"captureCheckpointFromPlaceholder\")(function* (\n event: Extract,\n ) {\n const { threadId, turnId, checkpointTurnCount, status } = event.payload;\n\n // Only replace placeholders; skip events from our own real captures.\n if (status !== \"missing\") {\n return;\n }\n\n const thread = yield* resolveThreadDetail(threadId);\n if (!thread) {\n yield* Effect.logWarning(\"checkpoint capture from placeholder skipped: thread not found\", {\n threadId,\n });\n return;\n }\n\n // If a real checkpoint already exists for this turn, skip.\n if (\n thread.checkpoints.some(\n (checkpoint) => checkpoint.turnId === turnId && checkpoint.status !== \"missing\",\n )\n ) {\n yield* Effect.logDebug(\n \"checkpoint capture from placeholder skipped: real checkpoint already exists\",\n { threadId, turnId },\n );\n return;\n }\n", + "checksum": "e341d79b8fcb4969bed1f9f6a7ad0b5d032de516eabaa59661d2f8ce698bd3b7" + }, + "permission-runtime-mode-contract": { + "id": "permission-runtime-mode-contract", + "path": "packages/contracts/src/orchestration.ts", + "start": 120, + "end": 143, + "language": "typescript", + "label": "Canonical runtime modes and approval decisions", + "code": "export const RuntimeMode = Schema.Literals([\n \"approval-required\",\n \"auto-accept-edits\",\n \"auto\",\n \"full-access\",\n]);\nexport type RuntimeMode = typeof RuntimeMode.Type;\nexport const DEFAULT_RUNTIME_MODE: RuntimeMode = \"full-access\";\nexport const ProviderInteractionMode = Schema.Literals([\"default\", \"plan\"]);\nexport type ProviderInteractionMode = typeof ProviderInteractionMode.Type;\nexport const DEFAULT_PROVIDER_INTERACTION_MODE: ProviderInteractionMode = \"default\";\nexport const ProviderRequestKind = Schema.Literals([\"command\", \"file-read\", \"file-change\"]);\nexport type ProviderRequestKind = typeof ProviderRequestKind.Type;\nexport const AssistantDeliveryMode = Schema.Literals([\"buffered\", \"streaming\"]);\nexport type AssistantDeliveryMode = typeof AssistantDeliveryMode.Type;\nexport const ProviderApprovalDecision = Schema.Literals([\n \"accept\",\n \"acceptForSession\",\n \"decline\",\n \"cancel\",\n]);\nexport type ProviderApprovalDecision = typeof ProviderApprovalDecision.Type;\nexport const ProviderUserInputAnswers = Schema.Record(Schema.String, Schema.Unknown);\nexport type ProviderUserInputAnswers = typeof ProviderUserInputAnswers.Type;", + "checksum": "2ec2b0f6d38c3c832ef4494cbe97a899fe4f4b83fe808ef16a1356580e935479" + }, + "permission-codex-mode-map": { + "id": "permission-codex-mode-map", + "path": "apps/server/src/provider/Layers/CodexSessionRuntime.ts", + "start": 268, + "end": 340, + "language": "typescript", + "label": "T3 runtime modes mapped into Codex approval and sandbox settings", + "code": "function runtimeModeToThreadConfig(input: RuntimeMode): {\n readonly approvalPolicy: EffectCodexSchema.V2ThreadStartParams__AskForApproval;\n readonly sandbox: EffectCodexSchema.V2ThreadStartParams__SandboxMode;\n // Always explicit: omitting the field on resume keeps the thread's previous\n // reviewer, which would leave auto_review sticky after switching modes.\n readonly approvalsReviewer: EffectCodexSchema.V2ThreadStartParams__ApprovalsReviewer;\n} {\n switch (input) {\n case \"approval-required\":\n return {\n approvalPolicy: \"untrusted\",\n sandbox: \"read-only\",\n approvalsReviewer: \"user\",\n };\n case \"auto-accept-edits\":\n return {\n approvalPolicy: \"on-request\",\n sandbox: \"workspace-write\",\n approvalsReviewer: \"user\",\n };\n case \"auto\":\n return {\n approvalPolicy: \"on-request\",\n sandbox: \"workspace-write\",\n approvalsReviewer: \"auto_review\",\n };\n case \"full-access\":\n default:\n return {\n approvalPolicy: \"never\",\n sandbox: \"danger-full-access\",\n approvalsReviewer: \"user\",\n };\n }\n}\n\nfunction buildThreadStartParams(input: {\n readonly cwd: string;\n readonly runtimeMode: RuntimeMode;\n readonly model: string | undefined;\n readonly serviceTier: CodexServiceTier | undefined;\n}): EffectCodexSchema.V2ThreadStartParams {\n const config = runtimeModeToThreadConfig(input.runtimeMode);\n return {\n cwd: input.cwd,\n approvalPolicy: config.approvalPolicy,\n sandbox: config.sandbox,\n approvalsReviewer: config.approvalsReviewer,\n ...(input.model ? { model: input.model } : {}),\n ...(input.serviceTier ? { serviceTier: input.serviceTier } : {}),\n };\n}\n\nfunction runtimeModeToTurnSandboxPolicy(\n input: RuntimeMode,\n): EffectCodexSchema.V2TurnStartParams__SandboxPolicy {\n switch (input) {\n case \"approval-required\":\n return {\n type: \"readOnly\",\n };\n case \"auto-accept-edits\":\n case \"auto\":\n return {\n type: \"workspaceWrite\",\n };\n case \"full-access\":\n default:\n return {\n type: \"dangerFullAccess\",\n };\n }\n}", + "checksum": "bf3d7a104fb45d37eee289512fb96dc72046d830c24c5eda45fdd42346b519d9" + }, + "permission-request-contract": { + "id": "permission-request-contract", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 430, + "end": 469, + "language": "typescript", + "label": "Canonical approval and structured-input request payloads", + "code": "const RequestOpenedPayload = Schema.Struct({\n requestType: CanonicalRequestType,\n detail: Schema.optional(TrimmedNonEmptyStringSchema),\n args: Schema.optional(Schema.Unknown),\n});\nexport type RequestOpenedPayload = typeof RequestOpenedPayload.Type;\n\nconst RequestResolvedPayload = Schema.Struct({\n requestType: CanonicalRequestType,\n decision: Schema.optional(TrimmedNonEmptyStringSchema),\n resolution: Schema.optional(Schema.Unknown),\n});\nexport type RequestResolvedPayload = typeof RequestResolvedPayload.Type;\n\nconst UserInputQuestionOption = Schema.Struct({\n label: TrimmedNonEmptyStringSchema,\n description: TrimmedNonEmptyStringSchema,\n});\nexport type UserInputQuestionOption = typeof UserInputQuestionOption.Type;\n\nexport const UserInputQuestion = Schema.Struct({\n id: TrimmedNonEmptyStringSchema,\n header: TrimmedNonEmptyStringSchema,\n question: TrimmedNonEmptyStringSchema,\n options: Schema.Array(UserInputQuestionOption),\n multiSelect: Schema.optional(Schema.Boolean).pipe(\n Schema.withConstructorDefault(Effect.succeed(false)),\n ),\n});\nexport type UserInputQuestion = typeof UserInputQuestion.Type;\n\nconst UserInputRequestedPayload = Schema.Struct({\n questions: Schema.Array(UserInputQuestion),\n});\nexport type UserInputRequestedPayload = typeof UserInputRequestedPayload.Type;\n\nconst UserInputResolvedPayload = Schema.Struct({\n answers: UnknownRecordSchema,\n});\nexport type UserInputResolvedPayload = typeof UserInputResolvedPayload.Type;", + "checksum": "6b1a92d91a1044987815a33034c9d57cf408dde2c10b3b0d1a518d7c63094277" + }, + "work-task-usage-contract": { + "id": "work-task-usage-contract", + "path": "packages/contracts/src/providerRuntime.ts", + "start": 471, + "end": 543, + "language": "typescript", + "label": "Typed per-task usage and agent-versus-background classification", + "code": "/**\n * Typed per-task usage rollup. Field names match the orchestration-v2 subagent\n * usage vocabulary (#4779) so the eventual migration is a rename, not a remap.\n * Claude reports per-activation deltas; Codex reports cumulative totals — the\n * merge strategy is provider-specific and lives in client-runtime.\n */\nexport const RuntimeTaskUsage = Schema.Struct({\n totalTokens: NonNegativeInt,\n inputTokens: Schema.optional(NonNegativeInt),\n cachedInputTokens: Schema.optional(NonNegativeInt),\n outputTokens: Schema.optional(NonNegativeInt),\n reasoningOutputTokens: Schema.optional(NonNegativeInt),\n toolUses: Schema.optional(NonNegativeInt),\n durationMs: Schema.optional(NonNegativeInt),\n});\nexport type RuntimeTaskUsage = typeof RuntimeTaskUsage.Type;\n\nexport const TaskWorkflowPhase = Schema.Struct({\n index: NonNegativeInt,\n title: TrimmedNonEmptyStringSchema,\n});\nexport type TaskWorkflowPhase = typeof TaskWorkflowPhase.Type;\n\nexport const TaskRunHandles = Schema.Struct({\n runId: Schema.optional(TrimmedNonEmptyStringSchema),\n scriptPath: Schema.optional(TrimmedNonEmptyStringSchema),\n transcriptDir: Schema.optional(TrimmedNonEmptyStringSchema),\n /** Only http/https URLs may be stored here — sanitized at the adapter. */\n sessionUrl: Schema.optional(TrimmedNonEmptyStringSchema),\n});\nexport type TaskRunHandles = typeof TaskRunHandles.Type;\n\n/**\n * Watch-loop task types: Monitor-tool tasks plus background shells (a shell\n * that outlives its turn is in practice a watch loop). Canonical single copy —\n * the server liveness registry, ingestion's agentKind stamp, and the client\n * fold's legacy fallback all classify with these sets.\n */\nexport const MONITOR_TASK_TYPES: ReadonlySet = new Set([\n \"monitor\",\n \"monitor_mcp\",\n \"local_bash\",\n \"shell\",\n]);\n/** Task types that are neither agents nor watch loops (plan-mode bookkeeping). */\nexport const INERT_TASK_TYPES: ReadonlySet = new Set([\"plan\", \"dream\"]);\n\n/**\n * Agent-vs-background classification, stamped by ingestion as `agentKind` so\n * persisted rows are self-describing. A deliberate denylist: the SDK's\n * agent-flavored type names drift (subagent, local_agent, local_workflow, …)\n * and an allowlist silently dropped real subagents when \"local_agent\"\n * appeared. A task launched from inside a subagent (agentId set) is\n * agent-internal background work UNLESS it is itself agent-flavored — a\n * nested agent can outlive its parent and stays in the roster.\n */\nexport function classifyTaskAgentKind(input: {\n readonly taskType?: string | undefined;\n readonly agentId?: string | undefined;\n}): \"agent\" | \"background\" {\n const { taskType, agentId } = input;\n const nonAgentType =\n taskType !== undefined && (MONITOR_TASK_TYPES.has(taskType) || INERT_TASK_TYPES.has(taskType));\n if (agentId !== undefined && agentId.trim().length > 0) {\n return taskType === undefined || nonAgentType ? \"background\" : \"agent\";\n }\n return nonAgentType ? \"background\" : \"agent\";\n}\n\n/**\n * Optional agent-identity linkage carried on every task lifecycle payload.\n * Repeated on progress and terminal rows (not just start) so client folds can\n * reconstruct an agent even when its start row aged out of activity retention.", + "checksum": "9c7794660442c1d9a47d1553b18d8e593f52d0f6f4ded9f377c395421336aab5" + }, + "work-task-latest-activities": { + "id": "work-task-latest-activities", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 569, + "end": 646, + "language": "typescript", + "label": "Separate stable task progress and usage activity snapshots", + "code": " const linkage = taskLinkageActivityFields(event.payload as Record);\n // Usage and activity are independent latest-state streams. Keeping them\n // under separate stable ids prevents a command/reasoning update from\n // replacing the last known token count (and prevents a usage-only tick\n // from blanking the last meaningful activity).\n const identityLinkage = { ...linkage };\n delete identityLinkage.typedUsage;\n delete identityLinkage.status;\n delete identityLinkage.error;\n const title =\n event.payload.description.trim().length > 0\n ? { title: truncateDetail(event.payload.description, 120) }\n : {};\n const hasProgressState =\n event.payload.typedUsage === undefined ||\n event.payload.summary !== undefined ||\n event.payload.lastToolName !== undefined ||\n event.payload.status !== undefined ||\n event.payload.error !== undefined;\n return [\n ...(hasProgressState\n ? [\n {\n // Stable per-task id: activity is \"latest state\", not\n // history, so each meaningful tick replaces the last. This\n // bounds a large fleet to one activity row per task.\n id: EventId.make(`task-progress:${event.threadId}:${event.payload.taskId}`),\n createdAt: event.createdAt,\n tone: \"info\" as const,\n kind: \"task.progress\" as const,\n summary:\n event.payload.description.trim().length > 0\n ? truncateDetail(event.payload.description, 120)\n : \"Reasoning update\",\n payload: {\n taskId: event.payload.taskId,\n ...title,\n detail: truncateDetail(event.payload.summary ?? event.payload.description),\n ...(event.payload.summary\n ? { summary: truncateDetail(event.payload.summary) }\n : {}),\n ...(event.payload.lastToolName\n ? { lastToolName: event.payload.lastToolName }\n : {}),\n ...(event.payload.status ? { status: event.payload.status } : {}),\n ...(event.payload.error ? { error: event.payload.error } : {}),\n ...(event.payload.usage !== undefined ? { usage: event.payload.usage } : {}),\n ...identityLinkage,\n },\n turnId: toTurnId(event.turnId) ?? null,\n ...maybeSequence,\n },\n ]\n : []),\n ...(event.payload.typedUsage !== undefined\n ? [\n {\n id: EventId.make(`task-usage:${event.threadId}:${event.payload.taskId}`),\n createdAt: event.createdAt,\n tone: \"info\" as const,\n kind: \"task.progress\" as const,\n summary: \"Task usage updated\",\n payload: {\n taskId: event.payload.taskId,\n ...title,\n ...identityLinkage,\n usageSnapshot: true,\n typedUsage: event.payload.typedUsage,\n },\n turnId: toTurnId(event.turnId) ?? null,\n ...maybeSequence,\n },\n ]\n : []),\n ];\n }\n\n case \"task.updated\": {", + "checksum": "11d184eb4842e6907a766a04a86a1b355065eb1ae64b2891b58d24d836acd812" + }, + "work-subagent-usage-merge": { + "id": "work-subagent-usage-merge", + "path": "packages/client-runtime/src/state/subagentRuntime.ts", + "start": 149, + "end": 225, + "language": "typescript", + "label": "Tolerant field-wise task usage parsing and max merge", + "code": "function asUsage(value: unknown): SubagentUsage | undefined {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n const record = value as Record;\n const totalTokens = asCount(record.totalTokens);\n if (totalTokens === undefined) {\n return undefined;\n }\n const usage: {\n totalTokens: number;\n inputTokens?: number;\n cachedInputTokens?: number;\n outputTokens?: number;\n reasoningOutputTokens?: number;\n toolUses?: number;\n durationMs?: number;\n } = { totalTokens };\n const inputTokens = asCount(record.inputTokens);\n if (inputTokens !== undefined) usage.inputTokens = inputTokens;\n const cachedInputTokens = asCount(record.cachedInputTokens);\n if (cachedInputTokens !== undefined) usage.cachedInputTokens = cachedInputTokens;\n const outputTokens = asCount(record.outputTokens);\n if (outputTokens !== undefined) usage.outputTokens = outputTokens;\n const reasoningOutputTokens = asCount(record.reasoningOutputTokens);\n if (reasoningOutputTokens !== undefined) usage.reasoningOutputTokens = reasoningOutputTokens;\n const toolUses = asCount(record.toolUses);\n if (toolUses !== undefined) usage.toolUses = toolUses;\n const durationMs = asCount(record.durationMs);\n if (durationMs !== undefined) usage.durationMs = durationMs;\n return usage;\n}\n\n/**\n * Provider-specific usage merge (#4779 semantics, verbatim):\n * - max-merge (Codex-style cumulative frames): field-wise maximum, idempotent\n * under duplicate or late frames. Cumulative totals never shrink.\n * - accumulate (Claude-style activation deltas): not needed at this layer —\n * Claude's task_progress usage is itself cumulative per task, so the fold\n * also max-merges. The distinction matters when v2 sums activations.\n * Field-wise: a terminal payload carrying only totalTokens must not wipe a\n * known breakdown.\n */\nfunction mergeUsageMax(\n current: SubagentUsage | null,\n incoming: SubagentUsage | undefined,\n): SubagentUsage | null {\n if (!incoming) {\n return current;\n }\n if (!current) {\n return incoming;\n }\n const pick = (a: number | undefined, b: number | undefined): number | undefined =>\n a === undefined ? b : b === undefined ? a : Math.max(a, b);\n const merged: {\n totalTokens: number;\n inputTokens?: number;\n cachedInputTokens?: number;\n outputTokens?: number;\n reasoningOutputTokens?: number;\n toolUses?: number;\n durationMs?: number;\n } = { totalTokens: Math.max(current.totalTokens, incoming.totalTokens) };\n const inputTokens = pick(current.inputTokens, incoming.inputTokens);\n if (inputTokens !== undefined) merged.inputTokens = inputTokens;\n const cachedInputTokens = pick(current.cachedInputTokens, incoming.cachedInputTokens);\n if (cachedInputTokens !== undefined) merged.cachedInputTokens = cachedInputTokens;\n const outputTokens = pick(current.outputTokens, incoming.outputTokens);\n if (outputTokens !== undefined) merged.outputTokens = outputTokens;\n const reasoningOutputTokens = pick(current.reasoningOutputTokens, incoming.reasoningOutputTokens);\n if (reasoningOutputTokens !== undefined) merged.reasoningOutputTokens = reasoningOutputTokens;\n const toolUses = pick(current.toolUses, incoming.toolUses);\n if (toolUses !== undefined) merged.toolUses = toolUses;\n const durationMs = pick(current.durationMs, incoming.durationMs);\n if (durationMs !== undefined) merged.durationMs = durationMs;\n return merged;", + "checksum": "0c82d5cb0342b54d4564be5359be4c6368ac86bfeb618d455edd558a5e3645a7" + }, + "context-provider-binding-shape": { + "id": "context-provider-binding-shape", + "path": "apps/server/src/persistence/ProviderSessionRuntime.ts", + "start": 35, + "end": 110, + "language": "typescript", + "label": "Persisted provider-instance binding and opaque continuation state", + "code": "export const ProviderSessionRuntime = Schema.Struct({\n threadId: ThreadId,\n providerName: Schema.String,\n /**\n * User-defined routing key for the configured provider instance that\n * owns this session. Nullable only at the storage/migration boundary:\n * rows persisted before the driver/instance split carry only\n * `providerName`. Repository consumers must materialize a concrete\n * instance id before routing.\n */\n providerInstanceId: Schema.NullOr(ProviderInstanceId),\n adapterKey: Schema.String,\n runtimeMode: RuntimeMode,\n status: ProviderSessionRuntimeStatus,\n lastSeenAt: IsoDateTime,\n resumeCursor: Schema.NullOr(Schema.Unknown),\n runtimePayload: Schema.NullOr(Schema.Unknown),\n});\nexport type ProviderSessionRuntime = typeof ProviderSessionRuntime.Type;\n\nexport const GetProviderSessionRuntimeInput = Schema.Struct({ threadId: ThreadId });\nexport type GetProviderSessionRuntimeInput = typeof GetProviderSessionRuntimeInput.Type;\n\nexport const DeleteProviderSessionRuntimeInput = Schema.Struct({ threadId: ThreadId });\nexport type DeleteProviderSessionRuntimeInput = typeof DeleteProviderSessionRuntimeInput.Type;\n\n/**\n * ProviderSessionRuntimeRepository - Service tag for provider runtime persistence.\n */\nexport class ProviderSessionRuntimeRepository extends Context.Service<\n ProviderSessionRuntimeRepository,\n {\n /**\n * Insert or replace a provider runtime row.\n *\n * Upserts by canonical `threadId`, including JSON payload/cursor fields.\n */\n readonly upsert: (\n runtime: ProviderSessionRuntime,\n ) => Effect.Effect;\n\n /**\n * Read provider runtime state by canonical thread id.\n */\n readonly getByThreadId: (\n input: GetProviderSessionRuntimeInput,\n ) => Effect.Effect<\n Option.Option,\n ProviderSessionRuntimeRepositoryError\n >;\n\n /**\n * List all provider runtime rows.\n *\n * Returned in ascending last-seen order.\n */\n readonly list: () => Effect.Effect<\n ReadonlyArray,\n ProviderSessionRuntimeRepositoryError\n >;\n\n /**\n * Delete provider runtime state by canonical thread id.\n */\n readonly deleteByThreadId: (\n input: DeleteProviderSessionRuntimeInput,\n ) => Effect.Effect;\n }\n>()(\"t3/persistence/ProviderSessionRuntime/ProviderSessionRuntimeRepository\") {}\n\nconst ProviderSessionRuntimeDbRowSchema = ProviderSessionRuntime.mapFields(\n Struct.assign({\n resumeCursor: Schema.NullOr(Schema.fromJsonString(Schema.Unknown)),\n runtimePayload: Schema.NullOr(Schema.fromJsonString(Schema.Unknown)),\n }),\n);", + "checksum": "b92dc6c01460eee6a905a51d0d848df3b28fd4410a9403789699bc459815cadd" + }, + "context-memory-compaction-ingestion": { + "id": "context-memory-compaction-ingestion", + "path": "apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts", + "start": 744, + "end": 763, + "language": "typescript", + "label": "Provider compaction observation becomes durable thread activity", + "code": " case \"thread.state.changed\": {\n if (event.payload.state !== \"compacted\") {\n return [];\n }\n\n return [\n {\n id: event.eventId,\n createdAt: event.createdAt,\n tone: \"info\",\n kind: \"context-compaction\",\n summary: \"Context compacted\",\n payload: {\n state: event.payload.state,\n ...(event.payload.detail !== undefined ? { detail: event.payload.detail } : {}),\n },\n turnId: toTurnId(event.turnId) ?? null,\n ...maybeSequence,\n },\n ];", + "checksum": "84f0ec54be712d09ef6dc181bcd36318a26e36de8def7182a8377454dd21fcdd" + }, + "context-window-reducer-retention": { + "id": "context-window-reducer-retention", + "path": "packages/client-runtime/src/state/threadReducer.ts", + "start": 562, + "end": 592, + "language": "typescript", + "label": "Latest resolvable context-window snapshot retained per turn id", + "code": " // ── Activities ──────────────────────────────────────────────────\n case \"thread.activity-appended\": {\n const activity = event.payload.activity;\n // A resolvable context-window update supersedes earlier resolvable ones\n // for the same turn: consumers only read the latest value (walking the\n // array backwards), and providers stream these updates continuously, so\n // retaining the history grows the thread by thousands of rows over a\n // long session. Mirrors the server-side snapshot rule in\n // dropStaleContextWindowActivities; retention stays per turn so a\n // thread.reverted that discards turns can still resolve a value from\n // the turns that survive.\n const supersedesContextWindow = isResolvableContextWindowActivity(activity);\n const activities = pipe(\n thread.activities,\n Arr.filter(\n (entry) =>\n entry.id !== activity.id &&\n !(\n supersedesContextWindow &&\n entry.turnId === activity.turnId &&\n isResolvableContextWindowActivity(entry)\n ),\n ),\n Arr.append(activity),\n Arr.sort(activityOrder),\n );\n\n return {\n kind: \"updated\",\n thread: { ...thread, activities, updatedAt: event.occurredAt },\n };", + "checksum": "ae9a3e3858741dd9a80e70b34a5ab36dca52539d93e1b199f9572b7113f6c995" + }, + "workbench-terminal-attach-order": { + "id": "workbench-terminal-attach-order", + "path": "apps/server/src/terminal/Manager.ts", + "start": 2351, + "end": 2402, + "language": "typescript", + "label": "Terminal attach buffers races, emits a snapshot, then delivers live events", + "code": " const attachStream: TerminalManager[\"Service\"][\"attachStream\"] = (input, listener) => {\n let unsubscribe: (() => void) | null = null;\n\n return Effect.gen(function* () {\n const bufferedEvents: TerminalEvent[] = [];\n let deliverLive = false;\n\n unsubscribe = yield* subscribe((event) => {\n if (event.threadId !== input.threadId || event.terminalId !== input.terminalId) {\n return Effect.void;\n }\n\n if (!deliverLive) {\n bufferedEvents.push(event);\n return Effect.void;\n }\n\n const attachEvent = terminalEventToAttachEvent(event);\n return attachEvent ? listener(attachEvent) : Effect.void;\n });\n\n const initialSnapshot = yield* openOrAttachForStream(input);\n\n yield* listener({\n type: \"snapshot\",\n snapshot: initialSnapshot,\n });\n\n for (const event of bufferedEvents) {\n if (isDuplicateAttachSnapshotEvent(event, initialSnapshot)) {\n continue;\n }\n\n const attachEvent = terminalEventToAttachEvent(event);\n if (attachEvent) {\n yield* listener(attachEvent);\n }\n }\n\n deliverLive = true;\n return () => {\n unsubscribe?.();\n unsubscribe = null;\n };\n }).pipe(\n Effect.catchCause((cause) =>\n Effect.flatMap(\n Effect.sync(() => {\n unsubscribe?.();\n unsubscribe = null;\n }),\n () => Effect.failCause(cause),", + "checksum": "b271e39c3ccce7f5ba8015d4dc72f7ca64041d9d6ec6d4c91bdbbba668800ba9" + }, + "workbench-asset-token-verification": { + "id": "workbench-asset-token-verification", + "path": "apps/server/src/assets/AssetAccess.ts", + "start": 410, + "end": 451, + "language": "typescript", + "label": "Asset URL signing followed by signature and expiry verification", + "code": " cause,\n }),\n ),\n );\n if (claims.kind === \"project-favicon\" || claims.kind === \"project-favicon-external\") {\n const issuedAt = yield* Clock.currentTimeMillis;\n expiresAt =\n (Math.floor(issuedAt / PROJECT_FAVICON_TOKEN_BUCKET_MS) + 2) *\n PROJECT_FAVICON_TOKEN_BUCKET_MS;\n claims = { ...claims, expiresAt };\n }\n const encodedPayload = base64UrlEncode(encodeAssetClaims(claims));\n const token = `${encodedPayload}.${signPayload(encodedPayload, signingSecret)}`;\n return {\n relativeUrl: `${ASSET_ROUTE_PREFIX}/${token}/${encodeURIComponent(fileName)}`,\n expiresAt,\n ...(sourcePath !== undefined ? { sourcePath } : {}),\n };\n});\n\nexport const resolveAsset = Effect.fn(\"AssetAccess.resolveAsset\")(function* (\n token: string,\n relativePath: string,\n) {\n const [encodedPayload, signature] = token.split(\".\");\n if (!encodedPayload || !signature) return null;\n\n const secretStore = yield* ServerSecretStore.ServerSecretStore;\n const signingSecret = yield* secretStore.getOrCreateRandom(SIGNING_SECRET_NAME, 32).pipe(\n Effect.tapError((cause) => Effect.logError(\"Failed to load the asset signing key.\", { cause })),\n Effect.orElseSucceed(() => null),\n );\n if (!signingSecret) return null;\n if (!timingSafeEqualBase64Url(signature, signPayload(encodedPayload, signingSecret))) return null;\n\n const claims = decodeClaims(encodedPayload);\n if (!claims || claims.expiresAt <= (yield* Clock.currentTimeMillis)) return null;\n\n if (claims.kind === \"attachment\") {\n const config = yield* ServerConfig.ServerConfig;\n const attachmentPath = resolveAttachmentPathById({\n attachmentsDir: config.attachmentsDir,", + "checksum": "27cc3e4c869c07078758c87260ae1f162edb77abdb33fd820bf5a612faef5e3a" + }, + "workbench-mcp-credential-issue": { + "id": "workbench-mcp-credential-issue", + "path": "apps/server/src/mcp/McpSessionRegistry.ts", + "start": 112, + "end": 168, + "language": "typescript", + "label": "Random MCP bearer credential and registry-generated scoped session identity", + "code": " const next = new Map(\n Array.from(records).filter(\n ([, record]) => timestamp - record.lastAliveAt <= livenessWindowMs,\n ),\n );\n return next.size === records.size ? records : next;\n };\n\n const issue: McpSessionRegistryShape[\"issue\"] = Effect.fn(\"McpSessionRegistry.issue\")(\n function* (request) {\n const issuedAt = yield* currentTimeMillis;\n const providerSessionId = yield* crypto.randomUUIDv4.pipe(Effect.orDie);\n const rawToken = yield* crypto.randomBytes(32).pipe(Effect.map(tokenFromBytes), Effect.orDie);\n const tokenHash = yield* hashToken(rawToken);\n const scope: McpInvocationContext.McpInvocationScope = {\n environmentId,\n threadId: ThreadId.make(request.threadId),\n providerSessionId,\n providerInstanceId: ProviderInstanceId.make(request.providerInstanceId),\n capabilities: new Set([\"preview\"]),\n issuedAt,\n };\n yield* SynchronizedRef.update(state, ({ records }) => {\n const next = new Map(pruneDead(records, issuedAt));\n next.set(tokenHash, { tokenHash, scope, lastAliveAt: issuedAt });\n return { records: next };\n });\n return {\n config: {\n environmentId,\n threadId: scope.threadId,\n providerSessionId,\n providerInstanceId: scope.providerInstanceId,\n endpoint,\n authorizationHeader: `Bearer ${rawToken}`,\n },\n };\n },\n );\n\n const resolve: McpSessionRegistryShape[\"resolve\"] = Effect.fn(\"McpSessionRegistry.resolve\")(\n function* (rawToken) {\n if (rawToken.length === 0) return undefined;\n const tokenHash = yield* hashToken(rawToken);\n const timestamp = yield* currentTimeMillis;\n return yield* SynchronizedRef.modify(state, ({ records }) => {\n const current = pruneDead(records, timestamp);\n const record = current.get(tokenHash);\n if (!record) return [undefined, { records: current }] as const;\n const next = new Map(current);\n next.set(tokenHash, { ...record, lastAliveAt: timestamp });\n return [record.scope, { records: next }] as const;\n });\n },\n );\n\n const touch: McpSessionRegistryShape[\"touch\"] = Effect.fn(\"McpSessionRegistry.touch\")(", + "checksum": "1c72aab293661e234f0a570d76f7c90b77c75b4982796ae2258b258060022cb0" + }, + "workbench-pr-write-gates": { + "id": "workbench-pr-write-gates", + "path": "apps/server/src/pullRequest/PullRequestService.ts", + "start": 1300, + "end": 1367, + "language": "typescript", + "label": "Pull-request host capability checks followed by fresh viewer authorization", + "code": " const runAction: PullRequestService[\"Service\"][\"runAction\"] = (input) =>\n requireProject(input).pipe(\n Effect.flatMap((project): Effect.Effect => {\n // The surface hides what a host cannot do, and this refuses it as well: a request that\n // reached here anyway must not be handed to a provider that never claimed the action.\n if (!project.api.capabilities.actions.includes(input.action)) {\n return Effect.fail(\n new PullRequestOperationError({\n operation: \"runAction\",\n detail: `This host cannot ${input.action} a change request.`,\n }),\n );\n }\n // A strategy the host does not offer must be refused rather than passed on: every\n // provider maps an unrecognised method to its own default, so asking Azure DevOps to\n // rebase would quietly merge instead of failing.\n if (\n input.mergeMethod !== undefined &&\n !project.api.capabilities.mergeMethods.includes(input.mergeMethod)\n ) {\n return Effect.fail(\n new PullRequestOperationError({\n operation: \"runAction\",\n detail: `This host cannot merge with the ${input.mergeMethod} strategy.`,\n }),\n );\n }\n // The same for the way a stale branch is brought up to date: a host that only merges\n // must not be asked to rebase and left to pick something else.\n if (\n input.updateMethod !== undefined &&\n !(project.api.capabilities.updateMethods ?? []).includes(input.updateMethod)\n ) {\n return Effect.fail(\n new PullRequestOperationError({\n operation: \"runAction\",\n detail: `This host cannot update a branch by ${input.updateMethod}.`,\n }),\n );\n }\n // What the host can do and what this account may ask of it are two questions, and both\n // have to say yes. The second is asked last, because it costs a request and the checks\n // above do not.\n return viewerPermissionsOf(project, input, \"runAction\").pipe(\n Effect.flatMap((viewer): Effect.Effect => {\n if (!viewer.actions.includes(input.action)) {\n return Effect.fail(\n new PullRequestOperationError({\n operation: \"runAction\",\n detail: ACTION_ACCESS_REFUSALS[input.action],\n }),\n );\n }\n if (\n input.updateMethod !== undefined &&\n !(viewer.updateMethods ?? []).includes(input.updateMethod)\n ) {\n return Effect.fail(\n new PullRequestOperationError({\n operation: \"runAction\",\n detail: ACTION_ACCESS_REFUSALS[\"update-branch\"],\n }),\n );\n }\n return project.api\n .runAction({\n cwd: project.project.workspaceRoot,\n repository: project.repository,", + "checksum": "a76b545059b2edbfff26945859bf1c0085707d87b6d1d2ee395be300619adc6a" + }, + "project-script-import-flow": { + "id": "project-script-import-flow", + "path": "apps/web/src/components/ProjectScriptsControl.tsx", + "start": 80, + "end": 150, + "language": "tsx", + "label": "Checked-in t3.json actions are deduplicated import suggestions", + "code": " const importableScripts = useMemo(\n () =>\n fileScripts.filter(\n (fileScript) =>\n !scripts.some(\n (script) =>\n script.command === fileScript.command ||\n script.name.toLowerCase() === fileScript.name.toLowerCase(),\n ),\n ),\n [fileScripts, scripts],\n );\n const dropdownItemClassName =\n \"data-highlighted:bg-transparent data-highlighted:text-foreground hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground data-highlighted:hover:bg-accent data-highlighted:hover:text-accent-foreground data-highlighted:focus-visible:bg-accent data-highlighted:focus-visible:text-accent-foreground\";\n\n const openAddDialog = () => {\n setEditorRequest({ scriptId: null, initial: EMPTY_PROJECT_SCRIPT_INPUT });\n };\n\n const openEditDialog = (script: ProjectScript) => {\n setActionsMenuOpen({ scripts: false, imports: false });\n setEditorRequest(editorRequestForScript(script, keybindings));\n };\n\n const submitScript = useCallback(\n (scriptId: string | null, input: NewProjectScriptInput) =>\n scriptId === null ? onAddScript(input) : onUpdateScript(scriptId, input),\n [onAddScript, onUpdateScript],\n );\n\n const importFileScript = async (fileScript: T3ProjectFileScript) => {\n const payload: NewProjectScriptInput = {\n name: fileScript.name,\n command: fileScript.command,\n icon: fileScript.icon ?? \"play\",\n runOnWorktreeCreate: fileScript.runOnWorktreeCreate ?? false,\n keybinding: null,\n previewUrl: fileScript.previewUrl ?? null,\n autoOpenPreview: fileScript.previewUrl ? (fileScript.autoOpenPreview ?? false) : false,\n };\n const result = await onAddScript(payload);\n if (result._tag === \"Failure\" && !isAtomCommandInterrupted(result)) {\n // Surface the failure through the regular add dialog, prefilled so the\n // user can adjust and retry.\n const error = squashAtomCommandFailure(result);\n setEditorRequest({\n scriptId: null,\n initial: payload,\n error: error instanceof Error ? error.message : \"Failed to import action.\",\n });\n }\n };\n\n const importMenuItems = importableScripts.length > 0 && (\n <>\n {primaryScript && }\n \n From t3.json\n {importableScripts.map((fileScript) => (\n void importFileScript(fileScript)}\n >\n \n {fileScript.name}\n \n \n \n \n ))}", + "checksum": "a21e41ea3772e4d8fafeaae8d60da9b9101bcc26a4891e02ec8283b31351b603" + }, + "web-main-runtime-entry": { + "id": "web-main-runtime-entry", + "path": "apps/web/src/main.tsx", + "start": 1, + "end": 61, + "language": "tsx", + "label": "Electron-aware history and authenticated React entry", + "code": "import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { ClerkProvider } from \"@clerk/react\";\nimport { passkeys } from \"@clerk/electron/passkeys\";\nimport { ClerkProvider as ElectronClerkProvider } from \"@clerk/electron/react\";\nimport { createHashHistory, createBrowserHistory } from \"@tanstack/react-router\";\n\nimport \"./index.css\";\n\nimport { isElectron } from \"./env\";\nimport { ManagedRelayAuthProvider } from \"./cloud/managedAuth\";\nimport { hasCloudPublicConfig } from \"./cloud/publicConfig\";\nimport { getRouter } from \"./router\";\nimport {\n syncDocumentElectronPlatformClasses,\n syncDocumentWindowControlsOverlayClass,\n} from \"./lib/windowControlsOverlay\";\nimport { AppRoot } from \"./AppRoot\";\nimport { clerkAppearance } from \"./components/clerk/clerkAppearance\";\n\n// Electron loads the app from a file-backed shell, so hash history avoids path resolution issues.\nconst history = isElectron ? createHashHistory() : createBrowserHistory();\n\nconst router = getRouter(history);\n\nif (isElectron) {\n syncDocumentElectronPlatformClasses(navigator.platform);\n syncDocumentWindowControlsOverlayClass();\n}\n\nconst clerkPublishableKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY as string | undefined;\n\n// First Clerk UI build containing https://github.com/clerk/javascript/pull/9500.\nconst electronClerkUI = {\n __internal_clerkUIVersion: \"1.30.5-canary.v20260819050620\",\n};\n\nconst app = ;\n\nReactDOM.createRoot(document.getElementById(\"root\") as HTMLElement).render(\n \n {clerkPublishableKey && hasCloudPublicConfig() ? (\n isElectron ? (\n \n {app}\n \n ) : (\n \n {app}\n \n )\n ) : (\n app\n )}\n ,\n);", + "checksum": "469fcbadd4accb57b28f26730ae794e728586908360a345a42ebe3d8dd708f4d" + }, + "web-app-root-providers": { + "id": "web-app-root-providers", + "path": "apps/web/src/AppRoot.tsx", + "start": 1, + "end": 23, + "language": "tsx", + "label": "Shared atom registry and route-persistent renderer hosts", + "code": "import { RouterProvider } from \"@tanstack/react-router\";\n\nimport { ElectronBrowserHost } from \"./browser/ElectronBrowserHost\";\nimport { PreviewAutomationHosts } from \"./components/preview/PreviewAutomationHosts\";\nimport { QuitHoldOverlay } from \"./components/QuitHoldOverlay\";\nimport { AppAtomRegistryProvider } from \"./rpc/atomRegistry\";\nimport type { AppRouter } from \"./router\";\n\n/**\n * Owns renderer-wide providers. The Electron browser host intentionally sits\n * outside the router so its webviews survive route transitions, but it must\n * share the same atom registry as routed UI.\n */\nexport function AppRoot({ router }: { readonly router: AppRouter }) {\n return (\n \n \n \n \n \n \n );\n}", + "checksum": "73f37a466b15084db5148de417c21c833ee135b61b66e955032c4d47d8537b48" + }, + "web-router-composition": { + "id": "web-router-composition", + "path": "apps/web/src/router.ts", + "start": 1, + "end": 20, + "language": "typescript", + "label": "Generated route-tree router construction", + "code": "import { createRouter, RouterHistory } from \"@tanstack/react-router\";\n\nimport { routeTree } from \"./routeTree.gen\";\n\nexport function getRouter(history: RouterHistory) {\n return createRouter({\n routeTree,\n history,\n context: {},\n });\n}\n\nexport type AppRouter = ReturnType;\n\ndeclare module \"@tanstack/react-router\" {\n interface Register {\n router: AppRouter;\n }\n}\n", + "checksum": "0327fd93597b643fc4e5addbe87d4d74fa8a7310fca94e256569285cf8836979" + }, + "web-environment-atom-catalog": { + "id": "web-environment-atom-catalog", + "path": "apps/web/src/connection/catalog.ts", + "start": 1, + "end": 5, + "language": "typescript", + "label": "Web environment catalog uses the shared atom runtime", + "code": "import { createEnvironmentCatalogAtoms } from \"@t3tools/client-runtime/state/connections\";\n\nimport { connectionAtomRuntime } from \"./runtime\";\n\nexport const environmentCatalog = createEnvironmentCatalogAtoms(connectionAtomRuntime);", + "checksum": "94a883ffc47ef7abafabccb826775bb943383795beb4b3e65b75c15604ce5124" + }, + "web-environment-session-atoms": { + "id": "web-environment-session-atoms", + "path": "apps/web/src/state/session.ts", + "start": 7, + "end": 41, + "language": "typescript", + "label": "Per-environment prepared connection and session atoms", + "code": "import { connectionAtomRuntime } from \"../connection/runtime\";\nimport { appAtomRegistry } from \"../rpc/atomRegistry\";\n\nexport const environmentSession = createEnvironmentSessionAtoms(connectionAtomRuntime);\n\nconst EMPTY_PREPARED_CONNECTION_ATOM = Atom.make(Option.none()).pipe(\n Atom.withLabel(\"web-prepared-connection:empty\"),\n);\n\nexport function usePreparedConnection(environmentId: EnvironmentId | null) {\n return useAtomValue(\n environmentId === null\n ? EMPTY_PREPARED_CONNECTION_ATOM\n : environmentSession.preparedConnectionValueAtom(environmentId),\n );\n}\n\nexport function readPreparedConnection(environmentId: EnvironmentId) {\n return Option.getOrNull(\n appAtomRegistry.get(environmentSession.preparedConnectionValueAtom(environmentId)),\n );\n}\n\n/**\n * This client's authenticated session on one environment, as reported by that\n * environment's `/api/auth/session` endpoint. `data` stays populated across\n * SWR revalidations; `isPending` is only meaningful before the first resolve.\n */\nexport function useEnvironmentSessionState(environmentId: EnvironmentId) {\n const result = useAtomValue(environmentSession.sessionStateAtom(environmentId));\n return {\n data: Option.getOrNull(AsyncResult.value(result)),\n hasError: result._tag === \"Failure\",\n isPending: result.waiting,\n };", + "checksum": "cb1d832614b303c2cfbc77120eda1b5f34b9de30e2027c19db0b0e98dfae198e" + }, + "web-timeline-list-virtualization": { + "id": "web-timeline-list-virtualization", + "path": "apps/web/src/components/chat/MessagesTimeline.tsx", + "start": 570, + "end": 648, + "language": "tsx", + "label": "Keyed virtualized message timeline configuration", + "code": " if (rows.length === 0 && !isWorking) {\n if (hideEmptyPlaceholder) {\n return null;\n }\n return (\n
    \n

    Send a message to start the conversation.

    \n
    \n );\n }\n\n return (\n \n \n
    \n \n ref={listRef}\n data={rows}\n keyExtractor={keyExtractor}\n getItemType={getItemType}\n renderItem={renderItem}\n estimatedItemSize={90}\n initialScrollAtEnd\n {...(anchoredEndSpace ? { anchoredEndSpace } : {})}\n contentInsetEndAdjustment={contentInsetEndAdjustment}\n maintainScrollAtEnd={\n anchoredEndSpace || !liveFollowEnabled || disclosureToggleSettling\n ? false\n : TIMELINE_MAINTAIN_SCROLL_AT_END\n }\n maintainVisibleContentPosition={maintainVisibleContentPosition}\n onScroll={handleScroll}\n className={cn(\n \"scrollbar-gutter-both h-full min-h-0 overflow-x-hidden overscroll-y-contain px-3 [overflow-anchor:none] sm:px-5\",\n topFadeEnabled && \"topbar-scroll-fade\",\n )}\n ListHeaderComponent={\n loadEarlier !== null ? (\n \n ) : topFadeEnabled ? (\n TIMELINE_LIST_FADE_HEADER\n ) : (\n TIMELINE_LIST_HEADER\n )\n }\n ListFooterComponent={TIMELINE_LIST_FOOTER}\n />\n {\n onManualNavigation();\n void listRef.current?.scrollToIndex({\n index: item.rowIndex,\n animated: true,\n viewOffset: 24,\n });\n }}\n />\n
    \n
    \n
    \n );\n});\n\nfunction keyExtractor(item: MessagesTimelineRow) {\n return item.id;\n}\n\nfunction getItemType(item: MessagesTimelineRow) {\n return item.kind === \"message\" ? `message:${item.message.role}` : item.kind;\n}\n", + "checksum": "ad64d1e19d070fdd16b99a02269619f65b85df48b309607f10b58fb156a6832e" + }, + "web-timeline-row-structural-sharing": { + "id": "web-timeline-row-structural-sharing", + "path": "apps/web/src/components/chat/MessagesTimeline.tsx", + "start": 2095, + "end": 2113, + "language": "tsx", + "label": "Timeline row structural sharing for virtualized memo boundaries", + "code": "// so LegendList (and React) can skip re-rendering unchanged items.\n// ---------------------------------------------------------------------------\n\n/** Returns a structurally-shared copy of `rows`: for each row whose content\n * hasn't changed since last call, the previous object reference is reused. */\nfunction useStableRows(rows: MessagesTimelineRow[]): MessagesTimelineRow[] {\n const prevState = useRef({\n byId: new Map(),\n result: [],\n });\n\n return useMemo(() => {\n const nextState = computeStableMessagesTimelineRows(rows, prevState.current);\n prevState.current = nextState;\n return nextState.result;\n }, [rows]);\n}\n\n// ---------------------------------------------------------------------------", + "checksum": "74026e988767cb072249b769001abbf35b59542f6245e824e2fefdb2fbbe8ffc" + }, + "web-sidebar-row-locality": { + "id": "web-sidebar-row-locality", + "path": "apps/web/src/components/Sidebar.tsx", + "start": 2200, + "end": 2252, + "language": "tsx", + "label": "Sidebar streaming row locality and callback references", + "code": " SNOOZED_SHELF_EXPANDED_KEY,\n false,\n Schema.Boolean,\n );\n const toggleSnoozedShelf = useCallback(\n () => setSnoozedShelfExpanded((value) => !value),\n [setSnoozedShelfExpanded],\n );\n const visibleSnoozedThreads = useMemo(() => {\n if (snoozedShelfExpanded) return snoozedThreads;\n // The open thread must never vanish behind the collapsed shelf: a\n // snoozed thread reached by route (deep link, open before snoozing\n // elsewhere) keeps its row — with highlight and wake affordance — same\n // exception the settled tail's \"Show more\" makes.\n if (routeThreadKey === null) return [];\n const routeThread = snoozedThreads.find(\n (thread) =>\n scopedThreadKey(scopeThreadRef(thread.environmentId, thread.id)) === routeThreadKey,\n );\n return routeThread === undefined ? [] : [routeThread];\n }, [routeThreadKey, snoozedShelfExpanded, snoozedThreads]);\n\n const orderedThreads = useMemo(\n () => [...pinnedThreads, ...activeThreads, ...visibleSnoozedThreads, ...renderedSettledThreads],\n [pinnedThreads, activeThreads, visibleSnoozedThreads, renderedSettledThreads],\n );\n const orderedThreadKeys = useMemo(\n () =>\n orderedThreads.map((thread) =>\n scopedThreadKey(scopeThreadRef(thread.environmentId, thread.id)),\n ),\n [orderedThreads],\n );\n // Rows call back into the click handler without carrying the ordered list as\n // a prop — a fresh array identity per shell update would defeat every row's\n // memoization. The ref keeps shift-range-select working against the list as\n // rendered at click time.\n const orderedThreadKeysRef = useRef(orderedThreadKeys);\n orderedThreadKeysRef.current = orderedThreadKeys;\n const threadByKey = useMemo(\n () =>\n new Map(\n orderedThreads.map(\n (thread) =>\n [scopedThreadKey(scopeThreadRef(thread.environmentId, thread.id)), thread] as const,\n ),\n ),\n [orderedThreads],\n );\n // Handlers read these through refs: depending on per-update Map/Set\n // identities would give every row a fresh callback prop on each shell\n // event and defeat row memoization during streaming.\n const threadByKeyRef = useRef(threadByKey);", + "checksum": "0ca7fefcf227ef98a2738f7ce0001d6889c5b1e1e7a76701cdaab7ad1d3ed2ae" + }, + "web-client-tracing-export": { + "id": "web-client-tracing-export", + "path": "apps/web/src/observability/clientTracing.ts", + "start": 15, + "end": 96, + "language": "typescript", + "label": "Primary-environment OTLP client tracing lifecycle", + "code": "\nconst DEFAULT_EXPORT_INTERVAL_MS = 1_000;\nconst CLIENT_TRACING_RESOURCE = {\n serviceName: \"t3-web\",\n attributes: {\n \"service.runtime\": \"t3-web\",\n \"service.mode\": isElectron ? \"electron\" : \"browser\",\n \"service.version\": APP_VERSION,\n },\n} as const;\n\nconst delegateRuntimeLayer = Layer.mergeAll(\n primaryEnvironmentHttpLayer,\n OtlpExporter.layerFlusher,\n OtlpSerialization.layerJson,\n Layer.succeed(HttpClient.TracerDisabledWhen, () => true),\n);\n\nlet activeDelegate: Tracer.Tracer | null = null;\nlet activeRuntime: ManagedRuntime.ManagedRuntime | null = null;\nlet activeScope: Scope.Closeable | null = null;\nlet activeConfigKey: string | null = null;\nlet configurationGeneration = 0;\nlet pendingConfiguration = Promise.resolve();\n\nexport interface ClientTracingConfig {\n readonly exportIntervalMs?: number;\n}\n\nexport const ClientTracingLive = Layer.succeed(\n Tracer.Tracer,\n Tracer.make({\n span(options) {\n return activeDelegate?.span(options) ?? new Tracer.NativeSpan(options);\n },\n }),\n);\n\nexport function configureClientTracing(config: ClientTracingConfig = {}): Promise {\n if (config.exportIntervalMs === undefined && activeConfigKey !== null) {\n return pendingConfiguration;\n }\n pendingConfiguration = pendingConfiguration.finally(() => applyClientTracingConfig(config));\n return pendingConfiguration;\n}\n\nasync function applyClientTracingConfig(config: ClientTracingConfig): Promise {\n const otlpTracesUrl = resolvePrimaryEnvironmentHttpUrl(\"/api/observability/v1/traces\");\n const exportIntervalMs = Math.max(10, config.exportIntervalMs ?? DEFAULT_EXPORT_INTERVAL_MS);\n const nextConfigKey = `${otlpTracesUrl}|${exportIntervalMs}`;\n\n if (activeConfigKey === nextConfigKey && activeDelegate !== null) {\n return;\n }\n\n activeConfigKey = nextConfigKey;\n const generation = ++configurationGeneration;\n\n const previousRuntime = activeRuntime;\n const previousScope = activeScope;\n\n activeDelegate = null;\n activeRuntime = null;\n activeScope = null;\n\n await disposeTracerRuntime(previousRuntime, previousScope);\n\n const runtime = ManagedRuntime.make(delegateRuntimeLayer);\n const scope = runtime.runSync(Scope.make());\n\n const delegateResult = await settleAsyncResult(() =>\n runtime.runPromiseExit(\n Scope.provide(scope)(\n OtlpTracer.make({\n url: otlpTracesUrl,\n exportInterval: `${exportIntervalMs} millis`,\n resource: CLIENT_TRACING_RESOURCE,\n }),\n ),\n ),\n );\n if (delegateResult._tag === \"Failure\") {", + "checksum": "ea79ca0af49221763e5a8a63f3964a422be6f57b8bf234cea9115c51800954d5" + }, + "web-sidebar-optimistic-pinning": { + "id": "web-sidebar-optimistic-pinning", + "path": "apps/web/src/components/Sidebar.tsx", + "start": 2554, + "end": 2610, + "language": "tsx", + "label": "Optimistic pin-order override and canonical surrender rules", + "code": " // and holding it would launder a stale order into later drags.\n const pinnedDndSensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 6 } }),\n );\n const [optimisticPinnedOrder, setOptimisticPinnedOrder] = useState<{\n readonly order: readonly string[];\n /** pinOrderKey per thread as of the drop — the baseline that tells a\n concurrent client's write apart from one of our own landing. */\n readonly keysAtDrop: ReadonlyMap;\n /** The keys this drop writes (one per planned assignment). The\n override holds until all of them appear in canonical state. */\n readonly assignedKeys: ReadonlyMap;\n } | null>(null);\n const orderedPinnedThreads = useMemo(() => {\n if (optimisticPinnedOrder === null) return pinnedThreads;\n return orderItemsByPreferredIds({\n items: pinnedThreads,\n preferredIds: optimisticPinnedOrder.order,\n getId: (thread) => scopedThreadKey(scopeThreadRef(thread.environmentId, thread.id)),\n });\n }, [optimisticPinnedOrder, pinnedThreads]);\n useEffect(() => {\n if (optimisticPinnedOrder === null) return;\n const canonical = pinnedThreads.filter((thread) =>\n reorderablePinnedKeys.has(scopedThreadKey(scopeThreadRef(thread.environmentId, thread.id))),\n );\n const canonicalKeys = canonical.map((thread) =>\n scopedThreadKey(scopeThreadRef(thread.environmentId, thread.id)),\n );\n // The override represents one drop against one snapshot of the world.\n // Release it when the world moves on: membership changed (pin/unpin/\n // snooze/wake — the override can't say where members it never saw\n // belong), a key changed to something we did NOT write (a concurrent\n // client's reorder that must win), every key we wrote has landed, or\n // canonical already matches. Releasing on the FIRST landed key instead\n // of the last exposes the half-written order mid-materialization and\n // the block visibly reshuffles once per write.\n const membershipChanged =\n canonicalKeys.length !== optimisticPinnedOrder.order.length ||\n canonicalKeys.some((key) => !optimisticPinnedOrder.order.includes(key));\n const foreignKeyLanded = canonical.some((thread, index) => {\n const threadKey = canonicalKeys[index]!;\n const currentKey = thread.pinOrderKey ?? null;\n if (currentKey === optimisticPinnedOrder.keysAtDrop.get(threadKey)) return false;\n return currentKey !== optimisticPinnedOrder.assignedKeys.get(threadKey);\n });\n const currentKeyByThreadKey = new Map(\n canonical.map((thread, index) => [canonicalKeys[index]!, thread.pinOrderKey ?? null]),\n );\n const allAssignmentsLanded = [...optimisticPinnedOrder.assignedKeys].every(\n ([threadKey, orderKey]) => currentKeyByThreadKey.get(threadKey) === orderKey,\n );\n const orderConfirmed =\n !membershipChanged &&\n canonicalKeys.every((key, index) => key === optimisticPinnedOrder.order[index]);\n if (membershipChanged || foreignKeyLanded || allAssignmentsLanded || orderConfirmed) {\n setOptimisticPinnedOrder(null);", + "checksum": "587d2e08f3d5f4a8193054fcd9c8afa66b3c80d57456718f2adcdee4ffa71836" + }, + "mobile-app-root-composition": { + "id": "mobile-app-root-composition", + "path": "apps/mobile/src/App.tsx", + "start": 61, + "end": 106, + "language": "tsx", + "label": "Mobile root Atom, provider, navigation, and native host composition", + "code": "export default function App() {\n return (\n \n \n \n \n \n \n \n );\n}\n\nfunction AppContent() {\n const { themeAppearance } = useAppearancePreferences();\n const statusBarBg = useThemeColor(\"--color-status-bar\");\n const navigationTheme = useMobileNavigationTheme(themeAppearance);\n\n return (\n <>\n \n \n \n \n \n {/* The navigation theme drives the NATIVE header appearance: native-stack\n forwards `dark` as the nav bar's overrideUserInterfaceStyle. Without\n this, React Navigation defaults to its light theme and every native\n header (glass buttons, title, materials) is forced light even when\n the system is in dark mode. */}\n {/* Blur target for Android dropdown backdrops — see appBlurTarget.ts. */}\n \n \n \n \n \n \n {/* Anchored-menu overlays render here — in-window, so the\n keyboard stays up while a dropdown is open. */}\n \n \n \n ", + "checksum": "46115b33d72272b987a9b97658d848d7e5fd73e991f885c285a6c2ff369725fd" + }, + "mobile-connection-runtime-layer": { + "id": "mobile-connection-runtime-layer", + "path": "apps/mobile/src/connection/runtime.ts", + "start": 1, + "end": 45, + "language": "typescript", + "label": "Shared connection and snapshot layers with mobile platform services", + "code": "import { Connection } from \"@t3tools/client-runtime/connection\";\nimport { shellSnapshotLoaderLayer } from \"@t3tools/client-runtime/state/shell\";\nimport { threadSnapshotLoaderLayer } from \"@t3tools/client-runtime/state/threads\";\nimport * as Layer from \"effect/Layer\";\nimport { Atom } from \"effect/unstable/reactivity\";\n\nimport { runtimeContextLayer } from \"../lib/runtime\";\nimport {\n mobileBackgroundActivityObserverLayer,\n mobileBackgroundActivityReporterLayer,\n} from \"./background-activity\";\nimport { connectionPlatformLayer } from \"./platform\";\n\nconst providedConnectionPlatformLayer = connectionPlatformLayer.pipe(\n Layer.provide(runtimeContextLayer),\n);\n\nconst snapshotLoaderLayer = Layer.merge(threadSnapshotLoaderLayer, shellSnapshotLoaderLayer);\n\ntype ConnectionLayerSource =\n | typeof Connection.layer\n | typeof snapshotLoaderLayer\n | typeof runtimeContextLayer\n | typeof connectionPlatformLayer\n | typeof mobileBackgroundActivityObserverLayer\n | typeof mobileBackgroundActivityReporterLayer;\n\nconst providedClientConnectionLayer = Layer.merge(Connection.layer, snapshotLoaderLayer).pipe(\n Layer.provideMerge(\n Layer.mergeAll(\n runtimeContextLayer,\n providedConnectionPlatformLayer,\n mobileBackgroundActivityObserverLayer,\n ),\n ),\n);\n\nconst connectionLayer = mobileBackgroundActivityReporterLayer.pipe(\n Layer.provideMerge(providedClientConnectionLayer),\n);\n\nexport const connectionAtomRuntime: Atom.AtomRuntime<\n Layer.Success,\n Layer.Error\n> = Atom.runtime(connectionLayer);", + "checksum": "b65580b503a79da712a1398f7ef6988f434ec21193c7223eca5edbf597857db4" + }, + "mobile-persistence-schema": { + "id": "mobile-persistence-schema", + "path": "apps/mobile/src/persistence/mobile-database.ts", + "start": 242, + "end": 275, + "language": "typescript", + "label": "SQLite client cache and preference schema with versioned migration", + "code": " yield* Effect.tryPromise({\n try: async () => {\n await database.execAsync(\"PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;\");\n const schema = await database.getFirstAsync<{ readonly user_version: number }>(\n \"PRAGMA user_version\",\n );\n await database.withExclusiveTransactionAsync(async (transaction) => {\n await transaction.execAsync(`\n CREATE TABLE IF NOT EXISTS client_cache (\n environment_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n cache_key TEXT NOT NULL,\n schema_version INTEGER NOT NULL,\n payload TEXT NOT NULL,\n updated_at INTEGER NOT NULL,\n PRIMARY KEY (environment_id, kind, cache_key)\n ) WITHOUT ROWID;\n\n CREATE INDEX IF NOT EXISTS client_cache_environment_updated\n ON client_cache (environment_id, updated_at DESC);\n\n CREATE TABLE IF NOT EXISTS client_preferences (\n singleton INTEGER PRIMARY KEY NOT NULL CHECK (singleton = 1),\n payload TEXT NOT NULL,\n updated_at INTEGER NOT NULL\n );\n `);\n });\n if ((schema?.user_version ?? 0) < DATABASE_SCHEMA_VERSION) {\n const migrated = await migrateLegacyFileCaches(database);\n if (migrated) {\n await database.execAsync(`PRAGMA user_version = ${DATABASE_SCHEMA_VERSION};`);\n }\n }", + "checksum": "4c4f4137e909027a14ac1ec6e1724cfb765961790354b87747351df46910ecb0" + }, + "mobile-draft-update-flush": { + "id": "mobile-draft-update-flush", + "path": "apps/mobile/src/state/use-composer-drafts.ts", + "start": 212, + "end": 229, + "language": "typescript", + "label": "Draft persistence flush before JavaScript runtime teardown", + "code": "/**\n * Lands any debounced or in-flight draft write before the JS runtime is torn\n * down (app update restart), so the freshest draft state survives it. A write\n * failure propagates so the caller can decide whether the restart may proceed.\n */\nexport async function flushComposerDrafts(): Promise {\n // An edit during an awaited write schedules another debounced write, so\n // keep landing snapshots until no debounce is pending after a queue drain.\n do {\n while (persistTimer !== null) {\n clearTimeout(persistTimer);\n persistTimer = null;\n await persistenceQueue.run(() =>\n writePersistedComposerDrafts(appAtomRegistry.get(composerDraftsAtom)),\n );\n }\n await persistenceQueue.run(() => Promise.resolve());\n } while (persistTimer !== null);", + "checksum": "eae8cd0dee12f66549b90f8f01a1eca248189e6b8a1c0c5d7af1bc9ea281c576" + }, + "mobile-outbox-optimistic-durability": { + "id": "mobile-outbox-optimistic-durability", + "path": "apps/mobile/src/state/thread-outbox-manager.ts", + "start": 91, + "end": 124, + "language": "typescript", + "label": "Optimistic enqueue, durable rollback, and pre-delivery confirmation", + "code": " // The queued atom drives the composer's immediate \"queued\" feedback, so it\n // is published synchronously; the durable write happens behind it and rolls\n // the message back out if it fails (durability only matters for crash\n // recovery, not for the in-session queue).\n const enqueue = (message: QueuedThreadMessage): Promise => {\n setMessages([\n ...currentMessages().filter((candidate) => candidate.messageId !== message.messageId),\n message,\n ]);\n return serialize(async () => {\n try {\n await options.storage.write(message);\n } catch (cause) {\n // Roll back by reference, not messageId: a retry enqueue with the same\n // id may have optimistically replaced this attempt while the write was\n // in flight, and its entry must survive this attempt's failure.\n setMessages(currentMessages().filter((candidate) => candidate !== message));\n throw new ThreadOutboxManagerError({\n operation: \"enqueue\",\n environmentId: message.environmentId,\n threadId: message.threadId,\n messageId: message.messageId,\n cause,\n });\n }\n });\n };\n\n // Resolves once all pending mutations (including any in-flight enqueue\n // write) have settled, reporting whether the message is still queued. The\n // drain awaits this before dispatching so a message whose durable write\n // later fails can never have been delivered first.\n const confirmQueued = (message: QueuedThreadMessage): Promise =>\n serialize(async () => currentMessages().some((candidate) => candidate === message));", + "checksum": "616baa8c3ce65855265d73b8db622400fa95ca5b49951b6aa112a214a55dc21c" + }, + "mobile-outbox-delivery-policy": { + "id": "mobile-outbox-delivery-policy", + "path": "apps/mobile/src/state/thread-outbox-model.ts", + "start": 145, + "end": 226, + "language": "typescript", + "label": "Outbox existence guards, capped backoff, and failure classification", + "code": "export function threadOutboxRetryDelayMs(attempt: number): number {\n return Math.min(1_000 * 2 ** Math.max(0, attempt - 1), THREAD_OUTBOX_MAX_RETRY_DELAY_MS);\n}\n\nexport type ThreadOutboxDeliveryAction = \"wait\" | \"remove\" | \"send\";\n\nexport function resolveThreadOutboxDeliveryAction(input: {\n readonly isCreation: boolean;\n readonly threadExists: boolean;\n readonly shellStatus: EnvironmentShellStatus;\n readonly environmentConnected: boolean;\n readonly threadBusy: boolean;\n}): ThreadOutboxDeliveryAction {\n if (input.isCreation) {\n // A pending task creates its thread on delivery. If the thread already\n // exists the creation command went through and only cleanup remains.\n if (input.threadExists) {\n return \"remove\";\n }\n // Wait for the shell to be live before sending: until the thread list has\n // synchronized, a previously delivered creation whose cleanup failed would\n // look missing and get re-issued, duplicating the thread.\n return input.environmentConnected && input.shellStatus === \"live\" ? \"send\" : \"wait\";\n }\n if (!input.threadExists) {\n return input.shellStatus === \"live\" ? \"remove\" : \"wait\";\n }\n return input.environmentConnected ? \"send\" : \"wait\";\n}\n\n/**\n * A queued creation can only be dispatched once its payload would pass server\n * validation; incomplete payloads stay pending until the user edits them.\n */\nexport function isQueuedThreadCreationSendable(message: QueuedThreadMessage): boolean {\n if (!message.creation) {\n return false;\n }\n if (message.text.trim().length === 0 || message.modelSelection === undefined) {\n return false;\n }\n return message.creation.workspaceMode !== \"worktree\" || Boolean(message.creation.branch);\n}\n\nfunction errorMessage(error: unknown): string | null {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === \"object\" && error !== null && \"message\" in error) {\n return typeof error.message === \"string\" ? error.message : null;\n }\n return typeof error === \"string\" ? error : null;\n}\n\nexport function shouldRetryThreadOutboxDelivery(error: unknown): boolean {\n if (\n typeof error === \"object\" &&\n error !== null &&\n \"_tag\" in error &&\n error._tag === \"ConnectionTransientError\"\n ) {\n return true;\n }\n return isTransportConnectionErrorMessage(errorMessage(error));\n}\n\nexport type ThreadOutboxCommandStage = \"settings-sync\" | \"start-turn\";\nexport type ThreadOutboxFailureAction = \"retry\" | \"discard\";\n\nexport function resolveThreadOutboxFailureAction(input: {\n readonly stage: ThreadOutboxCommandStage;\n readonly error: unknown;\n readonly interrupted: boolean;\n}): ThreadOutboxFailureAction {\n if (\n input.stage === \"settings-sync\" ||\n input.interrupted ||\n shouldRetryThreadOutboxDelivery(input.error)\n ) {\n return \"retry\";\n }\n return \"discard\";", + "checksum": "d2969b0b428827e9c62ee69aaa4353ae90a097d523872d145dc0650edd68d6cf" + }, + "mobile-share-commit-boundary": { + "id": "mobile-share-commit-boundary", + "path": "apps/mobile/src/features/sharing/incoming-share-inbox.ts", + "start": 46, + "end": 124, + "language": "typescript", + "label": "Durable share inbox write before native handoff acknowledgement", + "code": "/**\n * Serializes every durable inbox mutation. This prevents a stale storage load\n * or a foreground refresh from restoring an item after it has been consumed.\n */\nexport class IncomingShareInbox {\n private readonly operations = new SerializedAsyncQueue();\n\n constructor(private readonly dependencies: IncomingShareInboxDependencies) {}\n\n private runExclusive(operation: () => Promise): Promise {\n return this.operations.run(operation);\n }\n\n private clearNativePayloads(): void {\n try {\n this.dependencies.clearPayloads();\n } catch (error) {\n this.dependencies.onClearError?.(error);\n }\n }\n\n private async cleanup(operation: () => Promise): Promise {\n try {\n await operation();\n } catch (error) {\n this.dependencies.onCleanupError?.(error);\n }\n }\n\n refresh(options: { readonly ingestNative: boolean }): Promise> {\n return this.runExclusive(async () => {\n const loaded = await this.dependencies.loadDrafts();\n const persisted = sortAndDedupeIncomingShares(loaded);\n if (!options.ingestNative) {\n return persisted;\n }\n\n const payloads = this.dependencies.getPayloads();\n if (payloads.length === 0) {\n return persisted;\n }\n\n // A share extension payload remains available until the containing app\n // acknowledges it. Use a content-derived id so a crash after the durable\n // write but before acknowledgement reuses the same inbox item.\n const shareId = await this.dependencies.idForPayloads(payloads);\n if (loaded.some((draft) => draft.id === shareId)) {\n if (this.dependencies.cleanupReplayedPayloads) {\n await this.cleanup(() => this.dependencies.cleanupReplayedPayloads!(payloads));\n }\n this.clearNativePayloads();\n return persisted;\n }\n\n const built = await this.dependencies.buildDraft({\n payloads,\n id: shareId,\n createdAt: this.dependencies.now(),\n });\n const { draft } = built;\n if (!hasIncomingShareContent(draft)) {\n // Unsupported native payloads cannot become actionable on retry and\n // would otherwise reopen the project picker on every foreground.\n await this.cleanup(built.cleanup);\n this.clearNativePayloads();\n throw new Error(\n draft.warnings[0] ?? \"The shared content is not supported by the composer.\",\n );\n }\n\n // The durable inbox write is the transaction boundary. Never clear the\n // native handoff first: a process termination must leave one recoverable\n // copy on one side of the boundary.\n await this.dependencies.writeDraft(draft);\n await this.cleanup(built.cleanup);\n this.clearNativePayloads();\n return sortAndDedupeIncomingShares([draft, ...persisted]);\n });\n }", + "checksum": "0677f4b5f578d272ee74ec62dbb82f10bfbf9f0a1e7fb08a7aebd371b20e891e" + }, + "mobile-native-surface-probe": { + "id": "mobile-native-surface-probe", + "path": "apps/mobile/src/features/terminal/nativeTerminalModule.ts", + "start": 48, + "end": 100, + "language": "typescript", + "label": "Optional native terminal resolution and compiled revision probe", + "code": "export function resolveNativeTerminalSurfaceView(): ComponentType | null {\n if (cachedNativeTerminalSurfaceView) {\n return cachedNativeTerminalSurfaceView;\n }\n\n if (nativeTerminalSurfaceViewResolutionFailed) {\n return null;\n }\n\n if (getExpoViewConfig(NATIVE_TERMINAL_MODULE_NAME) == null) {\n return null;\n }\n\n try {\n cachedNativeTerminalSurfaceView = requireNativeView(\n NATIVE_TERMINAL_MODULE_NAME,\n );\n } catch (cause) {\n nativeTerminalSurfaceViewResolutionFailed = true;\n console.error(\n new NativeViewResolutionError({\n nativeModuleName: NATIVE_TERMINAL_MODULE_NAME,\n cause,\n }),\n );\n return null;\n }\n\n return cachedNativeTerminalSurfaceView ?? null;\n}\n\n/**\n * Revision of the native hardware-keyboard handling compiled into the installed binary,\n * or `null` when the binary predates the revision constant (or the module is missing).\n * Used in terminal debug logs to detect stale native builds.\n */\nexport function getNativeTerminalHardwareKeyRevision(): number | null {\n try {\n if (typeof requireOptionalNativeModule !== \"function\") {\n return null;\n }\n const module = requireOptionalNativeModule<{ readonly hardwareKeyRevision?: number }>(\n NATIVE_TERMINAL_MODULE_NAME,\n );\n return module?.hardwareKeyRevision ?? null;\n } catch {\n return null;\n }\n}\n\nexport function hasNativeTerminalSurface() {\n return resolveNativeTerminalSurfaceView() !== null;\n}", + "checksum": "daf96c0c42f44f5c8c887398b2a5433dad5ca64c2e1095a57da203bcce82c4d6" + }, + "mobile-update-restart-guard": { + "id": "mobile-update-restart-guard", + "path": "apps/mobile/src/features/updates/app-updates.ts", + "start": 417, + "end": 480, + "language": "typescript", + "label": "Deferred OTA flush and foreground-handoff safety gate", + "code": "async function applyDeferredAppUpdateInstall(\n client: AppUpdateClient,\n environment: AppUpdateEnvironment,\n deferral: AppUpdateDeferral,\n): Promise {\n if (!deferral.pendingInstall || deferral.installInProgress) return;\n deferral.installInProgress = true;\n const flushed = await settlePromise(() => environment.flushPendingWrites());\n const safe = await settlePromise(() => environment.isSafeToRestartInBackground());\n if (flushed._tag === \"Failure\" || safe._tag !== \"Success\" || !safe.value) {\n if (flushed._tag === \"Failure\") {\n // Nothing is lost yet: keep the state-bearing runtime alive and retry\n // the flush at the next backgrounding instead of restarting over it.\n reportUpdateFailure(flushed, \"Could not save pending state.\", undefined);\n }\n deferral.installInProgress = false;\n // This attempt already ran in the current background session; retrying\n // before a fresh transition would just loop over the same failure.\n scheduleDeferredAppUpdateInstall(client, environment, deferral, false);\n return;\n }\n const reloaded = await settlePromise(() => client.reloadAsync());\n if (reloaded._tag === \"Failure\") {\n reportUpdateFailure(reloaded, \"Downloaded, but could not restart the app.\", undefined);\n deferral.installInProgress = false;\n // Let later checks re-arm the install; the downloaded update still\n // applies at the next cold start regardless.\n deferral.pendingInstall = false;\n }\n}\n\nasync function defaultConfirmInstallNow(): Promise {\n const { Alert } = await import(\"react-native\");\n return new Promise((resolve) => {\n Alert.alert(\n \"Update ready\",\n \"A new version has been downloaded and installs automatically the next time you leave the app. Install it now instead?\",\n [\n { onPress: () => resolve(false), style: \"cancel\", text: \"Later\" },\n { onPress: () => resolve(true), text: \"Install Now\" },\n ],\n { cancelable: true, onDismiss: () => resolve(false) },\n );\n });\n}\n\nasync function defaultFlushPendingWrites(): Promise {\n // Attempt every flush before surfacing the first failure, so one broken\n // store cannot keep the others from landing.\n const results = await Promise.allSettled([\n import(\"../../state/use-composer-drafts\").then((drafts) => drafts.flushComposerDrafts()),\n import(\"../../state/thread-outbox\").then((outbox) => outbox.flushThreadOutbox()),\n ]);\n const failed = results.find(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (failed) throw failed.reason;\n}\n\nasync function defaultIsSafeToRestartInBackground(): Promise {\n const { isForegroundHandoffActive } = await import(\"../../lib/foreground-handoff\");\n if (isForegroundHandoffActive()) return false;\n const { AppState } = await import(\"react-native\");\n return AppState.currentState === \"background\";", + "checksum": "c7202351a95153093f1dd5607987e399683888e4ca03628c4aef7bc2afd51cc2" + }, + "desktop-preload-bridge": { + "id": "desktop-preload-bridge", + "path": "apps/desktop/src/preload.ts", + "start": 30, + "end": 103, + "language": "typescript", + "label": "Curated renderer bridge for local, SSH, exposure, WSL, and file operations", + "code": "contextBridge.exposeInMainWorld(\"desktopBridge\", {\n getAppBranding: () => {\n const result = ipcRenderer.sendSync(IpcChannels.GET_APP_BRANDING_CHANNEL);\n if (typeof result !== \"object\" || result === null) {\n return null;\n }\n return result as ReturnType;\n },\n getSystemLocale: () => {\n const result = ipcRenderer.sendSync(IpcChannels.GET_SYSTEM_LOCALE_CHANNEL);\n return typeof result === \"string\" ? result : null;\n },\n getLocalEnvironmentBootstraps: () => {\n const result = ipcRenderer.sendSync(IpcChannels.GET_LOCAL_ENVIRONMENT_BOOTSTRAPS_CHANNEL);\n if (!Array.isArray(result)) {\n return [];\n }\n return result as ReturnType;\n },\n getLocalEnvironmentBearerToken: () =>\n ipcRenderer.invoke(IpcChannels.GET_LOCAL_ENVIRONMENT_BEARER_TOKEN_CHANNEL),\n getClientSettings: () => ipcRenderer.invoke(IpcChannels.GET_CLIENT_SETTINGS_CHANNEL),\n setClientSettings: (settings) =>\n ipcRenderer.invoke(IpcChannels.SET_CLIENT_SETTINGS_CHANNEL, settings),\n getConnectionCatalog: () => ipcRenderer.invoke(IpcChannels.GET_CONNECTION_CATALOG_CHANNEL),\n setConnectionCatalog: (catalog) =>\n ipcRenderer.invoke(IpcChannels.SET_CONNECTION_CATALOG_CHANNEL, catalog),\n clearConnectionCatalog: () => ipcRenderer.invoke(IpcChannels.CLEAR_CONNECTION_CATALOG_CHANNEL),\n discoverSshHosts: () => ipcRenderer.invoke(IpcChannels.DISCOVER_SSH_HOSTS_CHANNEL),\n ensureSshEnvironment: async (target, options) =>\n unwrapEnsureSshEnvironmentResult(\n await ipcRenderer.invoke(IpcChannels.ENSURE_SSH_ENVIRONMENT_CHANNEL, {\n target,\n ...(options === undefined ? {} : { options }),\n }),\n ),\n disconnectSshEnvironment: (target) =>\n ipcRenderer.invoke(IpcChannels.DISCONNECT_SSH_ENVIRONMENT_CHANNEL, target),\n fetchSshEnvironmentDescriptor: (httpBaseUrl) =>\n ipcRenderer.invoke(IpcChannels.FETCH_SSH_ENVIRONMENT_DESCRIPTOR_CHANNEL, { httpBaseUrl }),\n bootstrapSshBearerSession: (httpBaseUrl, credential) =>\n ipcRenderer.invoke(IpcChannels.BOOTSTRAP_SSH_BEARER_SESSION_CHANNEL, {\n httpBaseUrl,\n credential,\n }),\n fetchSshSessionState: (httpBaseUrl, bearerToken) =>\n ipcRenderer.invoke(IpcChannels.FETCH_SSH_SESSION_STATE_CHANNEL, { httpBaseUrl, bearerToken }),\n issueSshWebSocketTicket: (httpBaseUrl, bearerToken) =>\n ipcRenderer.invoke(IpcChannels.ISSUE_SSH_WEBSOCKET_TOKEN_CHANNEL, { httpBaseUrl, bearerToken }),\n onSshPasswordPrompt: (listener) => {\n const wrappedListener = (_event: Electron.IpcRendererEvent, request: unknown) => {\n if (typeof request !== \"object\" || request === null) return;\n listener(request as Parameters[0]);\n };\n\n ipcRenderer.on(IpcChannels.SSH_PASSWORD_PROMPT_CHANNEL, wrappedListener);\n return () => {\n ipcRenderer.removeListener(IpcChannels.SSH_PASSWORD_PROMPT_CHANNEL, wrappedListener);\n };\n },\n resolveSshPasswordPrompt: (requestId, password) =>\n ipcRenderer.invoke(IpcChannels.RESOLVE_SSH_PASSWORD_PROMPT_CHANNEL, { requestId, password }),\n getServerExposureState: () => ipcRenderer.invoke(IpcChannels.GET_SERVER_EXPOSURE_STATE_CHANNEL),\n setServerExposureMode: (mode) =>\n ipcRenderer.invoke(IpcChannels.SET_SERVER_EXPOSURE_MODE_CHANNEL, mode),\n setTailscaleServeEnabled: (input) =>\n ipcRenderer.invoke(IpcChannels.SET_TAILSCALE_SERVE_ENABLED_CHANNEL, input),\n getAdvertisedEndpoints: () => ipcRenderer.invoke(IpcChannels.GET_ADVERTISED_ENDPOINTS_CHANNEL),\n getWslState: () => ipcRenderer.invoke(IpcChannels.GET_WSL_STATE_CHANNEL),\n setWslBackendEnabled: (enabled) =>\n ipcRenderer.invoke(IpcChannels.SET_WSL_BACKEND_ENABLED_CHANNEL, enabled),\n setWslDistro: (distro) => ipcRenderer.invoke(IpcChannels.SET_WSL_DISTRO_CHANNEL, distro),\n setWslOnly: (enabled) => ipcRenderer.invoke(IpcChannels.SET_WSL_ONLY_CHANNEL, enabled),\n pickFolder: (options) => ipcRenderer.invoke(IpcChannels.PICK_FOLDER_CHANNEL, options),", + "checksum": "f1c239b62a4b38550da29b44ca8086edd3b2f76df4483787b6628674fe980daf" + }, + "desktop-bootstrap-order": { + "id": "desktop-bootstrap-order", + "path": "apps/desktop/src/app/DesktopApp.ts", + "start": 142, + "end": 218, + "language": "typescript", + "label": "Endpoint selection, desktop protocol, IPC, primary start, and parallel WSL reconciliation", + "code": "const bootstrap = Effect.gen(function* () {\n const pool = yield* DesktopBackendPool.DesktopBackendPool;\n const primaryBackend = yield* pool.primary;\n const state = yield* DesktopState.DesktopState;\n const environment = yield* DesktopEnvironment.DesktopEnvironment;\n const desktopSettings = yield* DesktopAppSettings.DesktopAppSettings;\n const serverExposure = yield* DesktopServerExposure.DesktopServerExposure;\n const wslBackend = yield* DesktopWslBackend.DesktopWslBackend;\n const desktopWindow = yield* DesktopWindow.DesktopWindow;\n yield* logBootstrapInfo(\"bootstrap start\");\n\n if (environment.isDevelopment && Option.isNone(environment.configuredBackendPort)) {\n return yield* new DesktopDevelopmentBackendPortRequiredError();\n }\n\n const backendPortSelection = yield* resolveDesktopBackendPort(environment.configuredBackendPort);\n const backendPort = backendPortSelection.port;\n yield* logBootstrapInfo(\n backendPortSelection.selectedByScan\n ? \"selected backend port via sequential scan\"\n : \"using configured backend port\",\n {\n port: backendPort,\n ...(backendPortSelection.selectedByScan ? { startPort: DEFAULT_DESKTOP_BACKEND_PORT } : {}),\n },\n );\n\n const settings = yield* desktopSettings.get;\n if (settings.serverExposureMode !== environment.defaultDesktopSettings.serverExposureMode) {\n yield* logBootstrapInfo(\"bootstrap restoring persisted server exposure mode\", {\n mode: settings.serverExposureMode,\n });\n }\n const serverExposureState = yield* serverExposure.configureFromSettings({ port: backendPort });\n const backendConfig = yield* serverExposure.backendConfig;\n const electronProtocol = yield* ElectronProtocol.ElectronProtocol;\n const rendererTarget = environment.isDevelopment\n ? Option.getOrThrow(environment.devServerUrl)\n : backendConfig.httpBaseUrl;\n yield* electronProtocol.registerDesktopProtocol({\n scheme: ElectronProtocol.getDesktopScheme(environment.isDevelopment),\n targetOrigin: rendererTarget,\n backendOrigin: backendConfig.httpBaseUrl,\n clerkFrontendApiHostname: DesktopClerk.desktopClerkFrontendApiHostname,\n });\n yield* logBootstrapInfo(\"bootstrap resolved backend endpoint\", {\n baseUrl: backendConfig.httpBaseUrl.href,\n });\n if (serverExposureState.endpointUrl) {\n yield* logBootstrapInfo(\"bootstrap enabled network access\", {\n endpointUrl: serverExposureState.endpointUrl,\n });\n } else if (settings.serverExposureMode === \"network-accessible\") {\n yield* logBootstrapWarning(\n \"bootstrap fell back to local-only because no advertised network host was available\",\n );\n }\n\n yield* installDesktopIpcHandlers();\n yield* logBootstrapInfo(\"bootstrap ipc handlers registered\");\n\n if (!(yield* Ref.get(state.quitting))) {\n // In wsl-only mode the renderer is served by the WSL backend, which can be\n // slow to cold-boot — show a \"Connecting to WSL\" splash immediately so the\n // app feels responsive instead of presenting no window until WSL is ready.\n // (Dual mode opens fast off the Windows primary, so no splash there.)\n if (settings.wslOnly === true && settings.wslBackendEnabled === true) {\n yield* desktopWindow.showConnectingSplash;\n }\n yield* primaryBackend.start;\n yield* logBootstrapInfo(\"bootstrap backend start requested\");\n // Bring up the WSL backend if the user previously enabled it. The\n // primary is already starting; reconcile fires off the WSL register\n // in parallel rather than blocking primary readiness on a possibly\n // slow first wsl.exe spawn.\n yield* Effect.forkScoped(wslBackend.reconcile);\n }", + "checksum": "3382a448d70b84c155daa8b98ea9f42a42702152d451cb49be7ba0608c948342" + }, + "desktop-primary-platform-choice": { + "id": "desktop-primary-platform-choice", + "path": "apps/desktop/src/backend/DesktopBackendConfiguration.ts", + "start": 689, + "end": 728, + "language": "typescript", + "label": "Host-local primary label with the Windows-only WSL override", + "code": " // Single source of truth for what the primary actually runs as. Both\n // the start-config dispatch and the renderer-facing label derive from\n // this, so they can't disagree — e.g. the label reading \"WSL\" while the\n // config silently fell back to Windows because WSL is unavailable.\n // Dispatch happens at resolve time so toggling wsl-only between restarts\n // is picked up on the next start cycle (the pool's primary instance is\n // created once at layer init, but configResolve fires on each restart).\n const describePrimary = Effect.gen(function* () {\n const persistedSettings = yield* settings.get;\n const wslRequested = persistedSettings.wslOnly && persistedSettings.wslBackendEnabled;\n // Only honor wsl-only when WSL is actually usable. If the user\n // persisted wsl-only but WSL has since become unavailable (wsl.exe\n // removed, no distro), fall back to the Windows primary instead of\n // looping forever on preflight failures: the Connections backend\n // control is hidden while WSL is unavailable, so a stuck WSL primary\n // would otherwise leave no in-app way back to Windows.\n const useWsl = wslRequested && (yield* wslEnvironment.isAvailable);\n return { useWsl, wslRequested, distro: persistedSettings.wslDistro };\n });\n\n return DesktopBackendConfiguration.of({\n resolvePrimary: Effect.gen(function* () {\n const { useWsl, wslRequested } = yield* describePrimary;\n if (useWsl) {\n return yield* buildWslPrimaryConfig;\n }\n if (wslRequested) {\n yield* Effect.logWarning(\n \"WSL-only backend requested but WSL is unavailable; starting the Windows primary instead.\",\n );\n }\n return yield* buildWindowsPrimaryConfig;\n }).pipe(Effect.withSpan(\"desktop.backendConfiguration.resolvePrimary\")),\n resolvePrimaryLabel: Effect.gen(function* () {\n const { useWsl, distro } = yield* describePrimary;\n if (!useWsl) {\n return environment.platform === \"win32\" ? \"Windows\" : \"Local environment\";\n }\n return distro ? `WSL (${distro})` : \"WSL\";\n }).pipe(Effect.withSpan(\"desktop.backendConfiguration.resolvePrimaryLabel\")),", + "checksum": "58261db624128a02030dd25fb009fc7f141e0d8e67cf9b57cfab3735e468550d" + }, + "desktop-pool-scope-lifecycle": { + "id": "desktop-pool-scope-lifecycle", + "path": "apps/desktop/src/backend/DesktopBackendPool.ts", + "start": 327, + "end": 419, + "language": "typescript", + "label": "Per-instance child scopes and primary-protected unregister lifecycle", + "code": " return Effect.fail(\n new DesktopBackendPoolInstanceAlreadyRegisteredError({ id: spec.id }),\n );\n }\n if (existing?._tag === \"Closing\") {\n return Effect.succeed([\n { _tag: \"Wait\", done: existing.done } as const,\n current,\n ] as const);\n }\n return Effect.gen(function* () {\n // Provide the captured factory services first, then the child scope\n // last so instance finalizers are owned by the unregisterable scope.\n const instanceScope = yield* Scope.fork(layerScope, \"sequential\");\n const instance = yield* DesktopBackendManager.makeBackendInstance(spec).pipe(\n Effect.provide(factoryContext),\n Scope.provide(instanceScope),\n );\n const next = new Map(current);\n next.set(spec.id, {\n _tag: \"Active\",\n instance,\n scope: Option.some(instanceScope),\n });\n return [\n { _tag: \"Registered\", instance } as const,\n next as ReadonlyMap,\n ] as const;\n });\n },\n ).pipe(\n Effect.flatMap((result) =>\n result._tag === \"Registered\"\n ? Effect.succeed(result.instance)\n : Deferred.await(result.done).pipe(Effect.andThen(register(spec))),\n ),\n ),\n );\n\n const unregister: DesktopBackendPool[\"Service\"][\"unregister\"] = (id) =>\n Effect.gen(function* () {\n if (id === DesktopBackendManager.PRIMARY_INSTANCE_ID) {\n return yield* new DesktopBackendPoolCannotUnregisterPrimaryError();\n }\n const done = yield* Deferred.make();\n const action = yield* SynchronizedRef.modifyEffect(\n instancesRef,\n (\n current,\n ): Effect.Effect<\n readonly [UnregisterAction, ReadonlyMap]\n > => {\n const entry = current.get(id);\n if (entry === undefined) {\n return Effect.succeed([{ _tag: \"Absent\" } as const, current] as const);\n }\n if (entry._tag === \"Closing\") {\n return Effect.succeed([\n { _tag: \"Wait\", done: entry.done } as const,\n current,\n ] as const);\n }\n const next = new Map(current);\n next.set(id, { _tag: \"Closing\", done });\n return Effect.succeed([\n { _tag: \"Close\", entry } as const,\n next as ReadonlyMap,\n ] as const);\n },\n );\n\n if (action._tag === \"Absent\") return;\n if (action._tag === \"Wait\") {\n yield* Deferred.await(action.done);\n return;\n }\n\n const finish = SynchronizedRef.modifyEffect(instancesRef, (current) => {\n const closing = current.get(id);\n if (closing?._tag !== \"Closing\" || closing.done !== done) {\n return Effect.succeed([undefined, current] as const);\n }\n const next = new Map(current);\n next.delete(id);\n return Effect.succeed([\n undefined,\n next as ReadonlyMap,\n ] as const);\n }).pipe(Effect.andThen(Deferred.succeed(done, undefined)), Effect.asVoid);\n yield* Option.match(action.entry.scope, {\n onNone: () => Effect.void,\n onSome: (scope) => Scope.close(scope, Exit.void).pipe(Effect.ignore),\n }).pipe(Effect.ensuring(finish));", + "checksum": "6cc62e74d59a260508a4457eaed647f2bcf1ff9b77a41fd4d41276af7f22aab0" + }, + "desktop-process-channels": { + "id": "desktop-process-channels", + "path": "apps/desktop/src/backend/DesktopBackendManager.ts", + "start": 451, + "end": 526, + "language": "typescript", + "label": "Bootstrap, telemetry, diagnostics-control, and WSL stdin process channels", + "code": " const onOutput = options.onOutput ?? (() => Effect.void);\n const bootstrapStream = Stream.encodeText(Stream.make(`${bootstrapJson}\\n`));\n const additionalFds: Record<`fd${number}`, ChildProcess.AdditionalFdConfig> = {};\n if (options.bootstrapDelivery === \"fd3\") {\n additionalFds.fd3 = {\n type: \"input\",\n stream: bootstrapStream,\n };\n if (options.bootstrap.desktopTelemetryFd !== undefined) {\n additionalFds[`fd${options.bootstrap.desktopTelemetryFd}`] = {\n type: \"input\",\n stream: options.desktopTelemetryStream,\n };\n }\n if (options.bootstrap.desktopTelemetryControlFd !== undefined) {\n additionalFds[`fd${options.bootstrap.desktopTelemetryControlFd}`] = {\n type: \"output\",\n };\n }\n }\n const command = ChildProcess.make(options.executablePath, options.args, {\n cwd: options.cwd,\n env: options.env,\n extendEnv: options.extendEnv,\n // In Electron main, process.execPath points to the Electron binary.\n // Run the child in Node mode so this backend process does not become a GUI app instance.\n stdin: options.bootstrapDelivery === \"stdin\" ? bootstrapStream : \"ignore\",\n stdout: options.captureOutput ? \"pipe\" : \"inherit\",\n stderr: options.captureOutput ? \"pipe\" : \"inherit\",\n killSignal: \"SIGTERM\",\n forceKillAfter: DEFAULT_BACKEND_TERMINATE_GRACE,\n // wsl.exe drops additional file descriptors when forwarding to the Linux\n // side, so the WSL spawn path delivers the bootstrap envelope via stdin\n // (`--bootstrap-fd 0`) instead.\n ...(options.bootstrapDelivery === \"fd3\" ? { additionalFds } : {}),\n });\n\n const handle = yield* spawner.spawn(command).pipe(\n Effect.mapError(\n (cause) =>\n new BackendProcessSpawnError({\n executablePath: options.executablePath,\n entryPath: options.entryPath,\n cwd: options.cwd,\n httpBaseUrl: options.httpBaseUrl,\n cause,\n }),\n ),\n );\n const outputFibers: Array> = [];\n\n yield* options.onStarted?.(handle.pid) ?? Effect.void;\n if (\n options.bootstrap.desktopTelemetryControlFd !== undefined &&\n options.onDesktopTelemetryControl !== undefined\n ) {\n const controlFd = options.bootstrap.desktopTelemetryControlFd;\n const handleControl = options.onDesktopTelemetryControl;\n yield* handle.getOutputFd(controlFd).pipe(\n Stream.decodeText(),\n Stream.splitLines,\n Stream.filter((line) => line.trim().length > 0),\n Stream.runForEach((line) =>\n decodeDesktopTelemetryControlLine(line).pipe(\n Effect.flatMap(handleControl),\n Effect.catchCause((cause) =>\n logBackendProcessWarning(\"ignored invalid desktop telemetry control message\", {\n fd: controlFd,\n cause: Cause.pretty(cause),\n }),\n ),\n ),\n ),\n Effect.catchCause((cause) =>\n logBackendProcessWarning(\"desktop telemetry control stream stopped\", {\n fd: controlFd,", + "checksum": "9a38b54eef1d5d1bb2e4a11a70cac83f681b4d8369b8d44c0548c7efd93119de" + }, + "desktop-http-readiness-loop": { + "id": "desktop-http-readiness-loop", + "path": "apps/desktop/src/backend/DesktopBackendManager.ts", + "start": 566, + "end": 591, + "language": "typescript", + "label": "Repeated HTTP readiness budgets while the local child remains alive", + "code": " // Probe readiness in a loop while the backend process is still alive\n // instead of giving up after the first budget. A slow cold boot (the\n // WSL bundle loading across /mnt/c, or a first launch right after an\n // update) can exceed the initial readiness budget while the backend is\n // about to come up moments later; a one-shot probe left the app stuck\n // on \"Connecting to WSL…\" forever even though the backend kept running\n // and became healthy. Each round gets a fresh budget, and the forked\n // loop is torn down with the run scope once the child exits.\n const probeReadiness = Effect.fn(\"desktop.backendProcess.probeReadiness\")(() =>\n waitForHttpReady({\n executablePath: options.executablePath,\n entryPath: options.entryPath,\n cwd: options.cwd,\n httpBaseUrl: options.httpBaseUrl,\n timeout: options.readinessTimeout ?? DEFAULT_BACKEND_READINESS_TIMEOUT,\n }).pipe(\n Effect.flatMap(() => options.onReady?.() ?? Effect.void),\n Effect.as(true),\n Effect.catchTags({\n BackendReadinessTimeoutError: (error) =>\n (options.onReadinessFailure?.(error) ?? Effect.void).pipe(Effect.as(false)),\n }),\n ),\n );\n\n yield* probeReadiness().pipe(Effect.repeat({ while: (ready) => !ready }), Effect.forkScoped);", + "checksum": "cb8c41817f08f82de4211db178fdc26c0f9686235c75cd46ff75bf53e8c0f476" + }, + "desktop-updater-quit-boundary": { + "id": "desktop-updater-quit-boundary", + "path": "apps/desktop/src/app/DesktopLifecycle.ts", + "start": 198, + "end": 227, + "language": "typescript", + "label": "Updater-controlled quit bypasses the ordinary before-quit hold", + "code": " let updaterQuitAllowed = false;\n yield* electronTheme.onUpdated(() => {\n void runEffect(\n desktopWindow.syncAppearance.pipe(Effect.withSpan(\"desktop.lifecycle.themeUpdated\")),\n );\n });\n yield* electronApp.onBeforeQuitForUpdate(() => {\n // Electron's updater owns the remaining quit/install/relaunch sequence.\n // Cancelling the following app \"before-quit\" event breaks that sequence,\n // most visibly on macOS where the native updater performs the relaunch.\n updaterQuitAllowed = true;\n void runEffect(\n logLifecycleInfo(\"allowing updater-controlled quit\").pipe(\n Effect.withSpan(\"desktop.lifecycle.beforeQuitForUpdate\"),\n ),\n );\n });\n yield* electronApp.on(\"before-quit\", (event: Electron.Event) => {\n handleBeforeQuit(\n event,\n runEffect,\n () => quitAllowed || updaterQuitAllowed,\n () => {\n quitAllowed = true;\n },\n );\n });\n yield* electronApp.on(\"activate\", () => {\n void runEffect(\n Effect.gen(function* () {", + "checksum": "cc836843d91d37f40a435053ead939e6c9ce439e4fd7860cf814e0497261be6f" + }, + "desktop-all-instance-shutdown": { + "id": "desktop-all-instance-shutdown", + "path": "apps/desktop/src/app/DesktopApp.ts", + "start": 295, + "end": 315, + "language": "typescript", + "label": "Application finalizer gracefully stops every registered local backend", + "code": " const runId = yield* makeDesktopRunId;\n yield* Effect.annotateLogsScoped({ scope: \"desktop\", runId });\n yield* Effect.annotateCurrentSpan({ scope: \"desktop\", runId });\n\n const shutdown = yield* DesktopShutdown.DesktopShutdown;\n\n yield* Effect.addFinalizer(() =>\n Effect.gen(function* () {\n const pool = yield* DesktopBackendPool.DesktopBackendPool;\n // Stop every backend in the pool, not just the primary. The\n // electronApp.quit() path can race ahead of the layer-scope\n // cascade, so leaving the WSL instance for its parent scope\n // finalizer means it gets hard-killed by the OS instead of\n // receiving SIGTERM + grace. Stops run concurrently.\n const instances = yield* pool.list;\n yield* Effect.forEach(instances, (instance) => instance.stop(), {\n concurrency: \"unbounded\",\n });\n }).pipe(Effect.ensuring(shutdown.markComplete)),\n );\n", + "checksum": "cd58d3b5122f8a81ad2f1f2f27e43a2e7c188f6e8a354df6ce67585070d496a9" + }, + "distribution-cli-contract": { + "id": "distribution-cli-contract", + "path": "apps/server/package.json", + "start": 1, + "end": 22, + "language": "json", + "label": "The t3 npm executable and published dist payload", + "code": "{\n \"name\": \"t3\",\n \"version\": \"0.0.33\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/pingdotgg/t3code\",\n \"directory\": \"apps/server\"\n },\n \"bin\": {\n \"t3\": \"./dist/bin.mjs\"\n },\n \"files\": [\n \"dist\"\n ],\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"node --watch src/bin.ts\",\n \"build:bundle\": \"vp pack && vp pack src/service-launcher.ts --out-dir dist --no-clean\",\n \"start\": \"node dist/bin.mjs\",\n \"typecheck\": \"tsgo --noEmit\",\n \"test\": \"vp test run\"", + "checksum": "d17e2567fc16fd9ca3b5640c87befcc259679127fb33e96434ef58249f1288f3" + }, + "distribution-cli-bundles-web": { + "id": "distribution-cli-bundles-web", + "path": "apps/server/scripts/cli.ts", + "start": 143, + "end": 176, + "language": "typescript", + "label": "CLI build copies the web renderer into the server package", + "code": "const buildCmd = Command.make(\n \"build\",\n {\n verbose: Flag.boolean(\"verbose\").pipe(Flag.withDefault(false)),\n },\n (config) =>\n Effect.gen(function* () {\n const path = yield* Path.Path;\n const fs = yield* FileSystem.FileSystem;\n const repoRoot = yield* RepoRoot;\n const serverDir = path.join(repoRoot, \"apps/server\");\n\n yield* Effect.log(\"[cli] Running tsdown...\");\n yield* runCommand(\n ChildProcess.make(process.execPath, [\"--run\", \"build:bundle\"], {\n cwd: serverDir,\n stdout: config.verbose ? \"inherit\" : \"ignore\",\n stderr: \"inherit\",\n shell: false,\n }),\n );\n\n const webDist = path.join(repoRoot, \"apps/web/dist\");\n const clientTarget = path.join(serverDir, \"dist/client\");\n\n if (yield* fs.exists(webDist)) {\n yield* fs.copy(webDist, clientTarget);\n yield* applyDevelopmentIconOverrides(repoRoot, serverDir);\n yield* Effect.log(\"[cli] Bundled web app into dist/client\");\n } else {\n yield* Effect.logWarning(\"[cli] Web dist not found — skipping client bundle.\");\n }\n }),\n).pipe(Command.withDescription(\"Build the server package (tsdown + bundle web client).\"));", + "checksum": "4ad46f56921042886a21ff4b2de66dd2eacebe0eb7e55c6c38cd083469e4ef47" + }, + "distribution-desktop-artifact-contract": { + "id": "distribution-desktop-artifact-contract", + "path": "scripts/build-desktop-artifact.ts", + "start": 2059, + "end": 2107, + "language": "typescript", + "label": "Desktop artifact naming, packed resources, update feed, and macOS target", + "code": " const buildConfig: Record = {\n appId: DESKTOP_APP_ID,\n productName: resolveDesktopProductName(version),\n artifactName: \"T3-Code-${version}-${arch}.${ext}\",\n electronLanguages: [...DESKTOP_ELECTRON_LANGUAGES],\n files: [...DESKTOP_FILE_EXCLUSIONS],\n directories: {\n buildResources: \"apps/desktop/resources\",\n },\n // All platforms keep app.asar fully packed; electron-builder's default\n // smart unpack extracts native libraries, which loaders find in\n // app.asar.unpacked. Windows additionally ships the server tree as the\n // hand-packed server.asar sidecar (see WINDOWS_SERVER_ASAR_RESOURCE).\n extraResources: [\n ...DESKTOP_EXTRA_RESOURCES,\n ...(platform === \"win\" ? WINDOWS_SERVER_EXTRA_RESOURCES : []),\n ],\n };\n const updateChannel = resolveDesktopUpdateChannel(version);\n const publishConfig = yield* resolveGitHubPublishConfig(updateChannel);\n if (publishConfig) {\n buildConfig.publish = [publishConfig];\n } else if (mockUpdates) {\n buildConfig.publish = [\n {\n provider: \"generic\",\n url: resolveMockUpdateServerUrl(mockUpdateServerPort),\n },\n ];\n }\n\n if (platform === \"mac\") {\n buildConfig.mac = {\n target: target === \"dmg\" ? [target, \"zip\"] : [target],\n icon: \"icon.icns\",\n category: \"public.app-category.developer-tools\",\n protocols: [\n {\n name: \"T3 Code\",\n schemes: [\"t3code\", \"t3code-dev\"],\n },\n ],\n ...(macPasskeySigning\n ? {\n entitlements: macPasskeySigning.entitlementsPath,\n provisioningProfile: macPasskeySigning.provisioningProfilePath,\n }\n : {}),\n };", + "checksum": "d86868659c92e31e0c84c37ffc43eb5d126a3dfdaa6d14e97fa9cc076312ff89" + }, + "distribution-desktop-linux-windows-targets": { + "id": "distribution-desktop-linux-windows-targets", + "path": "scripts/build-desktop-artifact.ts", + "start": 2133, + "end": 2174, + "language": "typescript", + "label": "Linux and Windows desktop target configuration", + "code": " if (platform === \"linux\") {\n buildConfig.linux = {\n target: [target],\n executableName: \"t3code\",\n icon: \"icons\",\n category: \"Development\",\n // electron-builder turns these into MimeType=x-scheme-handler/;\n // in the .desktop entry (Exec already gets %U), so browsers can hand\n // t3code:// OAuth callbacks to the app.\n protocols: [\n {\n name: \"T3 Code\",\n schemes: [\"t3code\", \"t3code-dev\"],\n },\n ],\n desktop: {\n entry: {\n StartupWMClass: \"t3code\",\n },\n },\n };\n }\n\n if (platform === \"win\") {\n buildConfig.npmRebuild = false;\n // Keep blockmap-based differential downloads enabled while changing the\n // installed file topology. The optimization is in the payload shape, not\n // in trading update bandwidth for install speed.\n buildConfig.nsis = { differentialPackage: true };\n const winConfig: Record = {\n target: [target],\n icon: \"icon.ico\",\n // Resource editing applies the product metadata and icon independently\n // of code signing. Disabling it for local unsigned builds leaves the\n // packaged executable with Electron's stock icon.\n signAndEditExecutable: true,\n };\n if (signed) {\n winConfig.azureSignOptions = yield* AzureTrustedSigningOptionsConfig;\n }\n buildConfig.win = winConfig;\n }", + "checksum": "86c6ea4e376e5cce7355d8e2c5e0471d8cfbb17be0975ca8ad5233c0ad82f39d" + }, + "distribution-release-matrix": { + "id": "distribution-release-matrix", + "path": ".github/workflows/release.yml", + "start": 342, + "end": 397, + "language": "yaml", + "label": "The four desktop artifacts actually shipped by release CI", + "code": " build:\n name: Build ${{ matrix.label }}\n # build_wsl_node_pty stays in `needs` so it runs first and its artifact is\n # available to download, but only the Windows matrix entry consumes it. We\n # therefore gate the job on preflight + relay (must succeed) WITHOUT requiring\n # build_wsl_node_pty, so a failed Linux prebuild doesn't skip the macOS/Linux\n # builds. `!cancelled()` (not `!failure()`) lets the job run even when\n # build_wsl_node_pty failed; the Windows-only download step below then fails\n # that single platform if the prebuild is missing.\n needs: [preflight, relay_public_config, build_wsl_node_pty]\n if: ${{ !cancelled() && needs.preflight.result == 'success' && needs.relay_public_config.result == 'success' }}\n runs-on: ${{ matrix.runner }}\n timeout-minutes: 30\n env:\n T3CODE_CLERK_PUBLISHABLE_KEY: ${{ needs.relay_public_config.outputs.clerk_publishable_key }}\n T3CODE_CLERK_JWT_TEMPLATE: ${{ needs.relay_public_config.outputs.clerk_jwt_template }}\n T3CODE_CLERK_CLI_OAUTH_CLIENT_ID: ${{ needs.relay_public_config.outputs.clerk_cli_oauth_client_id }}\n T3CODE_RELAY_URL: ${{ needs.relay_public_config.outputs.relay_url }}\n strategy:\n fail-fast: false\n matrix:\n include:\n - label: macOS arm64\n runner: blacksmith-12vcpu-macos-26\n platform: mac\n target: dmg\n arch: arm64\n rust_target: aarch64-apple-darwin\n resource_key: darwin-arm64\n - label: macOS x64\n runner: blacksmith-12vcpu-macos-26\n platform: mac\n target: dmg\n arch: x64\n rust_target: x86_64-apple-darwin\n resource_key: darwin-x64\n - label: Linux x64\n runner: blacksmith-32vcpu-ubuntu-2404\n platform: linux\n target: AppImage\n arch: x64\n rust_target: x86_64-unknown-linux-gnu\n resource_key: linux-x64\n - label: Windows x64\n runner: blacksmith-32vcpu-windows-2025\n platform: win\n target: nsis\n arch: x64\n rust_target: x86_64-pc-windows-msvc\n resource_key: win32-x64\n # - label: Windows arm64\n # runner: windows-11-arm\n # platform: win\n # target: nsis\n # arch: arm64\n steps:", + "checksum": "e7a92ff379e65dc8c67d6b2cbe3d5f834a4ff4a6a48fca09f395ac33d93a6dde" + }, + "distribution-cli-before-release": { + "id": "distribution-cli-before-release", + "path": ".github/workflows/release.yml", + "start": 709, + "end": 791, + "language": "yaml", + "label": "Exact CLI publication gates GitHub Release publication", + "code": " publish_cli:\n name: Publish CLI to npm\n needs: [preflight, relay_public_config, quality, build]\n if: ${{ !failure() && !cancelled() && needs.preflight.result == 'success' && needs.relay_public_config.result == 'success' && needs.quality.result == 'success' && needs.build.result == 'success' }}\n runs-on: ubuntu-24.04 # blacksmith-8vcpu-ubuntu-2404\n timeout-minutes: 10\n permissions:\n contents: read\n id-token: write\n env:\n T3CODE_CLERK_PUBLISHABLE_KEY: ${{ needs.relay_public_config.outputs.clerk_publishable_key }}\n T3CODE_CLERK_JWT_TEMPLATE: ${{ needs.relay_public_config.outputs.clerk_jwt_template }}\n T3CODE_CLERK_CLI_OAUTH_CLIENT_ID: ${{ needs.relay_public_config.outputs.clerk_cli_oauth_client_id }}\n T3CODE_RELAY_URL: ${{ needs.relay_public_config.outputs.relay_url }}\n steps:\n - name: Checkout\n uses: actions/checkout@v6\n with:\n ref: ${{ needs.preflight.outputs.ref }}\n sparse-checkout: |\n /*\n !/.repos/\n sparse-checkout-cone-mode: false\n\n - name: Setup Vite+\n uses: voidzero-dev/setup-vp@v1\n with:\n node-version-file: package.json\n cache: true\n run-install: |\n args:\n - --filter=t3...\n - --filter=@t3tools/web...\n - --filter=@t3tools/scripts...\n\n - name: Download relay client tracing config\n uses: actions/download-artifact@v8\n with:\n name: relay-client-tracing-config\n path: ${{ runner.temp }}/relay-client-tracing\n\n - name: Load relay client tracing config\n shell: bash\n run: |\n config_path=\"$RUNNER_TEMP/relay-client-tracing/relay-client-tracing.env\"\n tracing_token=\"$(sed -n 's/^T3CODE_RELAY_CLIENT_OTLP_TRACES_TOKEN=//p' \"$config_path\")\"\n echo \"::add-mask::$tracing_token\"\n cat \"$config_path\" >> \"$GITHUB_ENV\"\n\n - name: Align package versions to release version\n run: node scripts/update-release-package-versions.ts \"${{ needs.preflight.outputs.version }}\"\n\n - name: Build web package\n run: vp run --filter @t3tools/web build\n\n - name: Build CLI package\n run: vp run --filter t3 build\n\n - name: Download resource monitors\n uses: actions/download-artifact@v8\n with:\n pattern: resource-monitor-*\n path: ${{ runner.temp }}/resource-monitors\n\n - name: Bundle resource monitors into CLI package\n shell: bash\n run: |\n set -euo pipefail\n for artifact_dir in \"$RUNNER_TEMP\"/resource-monitors/resource-monitor-*; do\n resource_key=\"${artifact_dir##*/resource-monitor-}\"\n target_dir=\"apps/server/dist/resource-monitor/${resource_key}\"\n mkdir -p \"$target_dir\"\n cp \"$artifact_dir\"/t3-resource-monitor* \"$target_dir/\"\n chmod +x \"$target_dir\"/t3-resource-monitor 2>/dev/null || true\n done\n\n - name: Publish CLI package\n run: node apps/server/scripts/cli.ts publish --tag \"${{ needs.preflight.outputs.cli_dist_tag }}\" --app-version \"${{ needs.preflight.outputs.version }}\" --verbose\n\n release:\n name: Publish GitHub Release\n needs: [preflight, build, publish_cli]\n if: ${{ !failure() && !cancelled() && needs.preflight.result == 'success' && needs.build.result == 'success' && needs.publish_cli.result == 'success' }}", + "checksum": "08174e0cfbd9d1a218a3690cdd7f77f0de1d49b01cf5289c2ef9097b5c164af6" + }, + "distribution-mobile-fingerprint-publish": { + "id": "distribution-mobile-fingerprint-publish", + "path": ".github/workflows/mobile-eas-production.yml", + "start": 263, + "end": 286, + "language": "yaml", + "label": "Production OTA publication requires a matching native fingerprint", + "code": " - name: Publish fingerprint-gated OTA\n if: steps.expo-token.outputs.present == 'true' && github.event_name == 'push'\n working-directory: apps/mobile\n env:\n EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}\n run: |\n message=\"$(git log -1 --pretty=%s | head -c 120) ($(git rev-parse --short=9 HEAD))\"\n for platform in ios android; do\n # eas-cli prints an environment-loaded notice to stdout before the\n # JSON even with --json, so discard everything before the document.\n hash=\"$(eas fingerprint:generate --platform \"$platform\" --environment production --json --non-interactive | sed -n '/^{/,$p' | jq -er '.hash | select(type == \"string\" and length > 0)')\"\n matching=\"$(eas build:list --platform \"$platform\" --build-profile production --status finished --fingerprint-hash \"$hash\" --limit 1 --json --non-interactive | jq 'length')\"\n if [ \"$matching\" -gt 0 ]; then\n eas update \\\n --channel production \\\n --environment production \\\n --platform \"$platform\" \\\n --message \"$message\" \\\n --non-interactive\n echo \":white_check_mark: $platform: OTA published to production (fingerprint \\`$hash\\`)\" >> \"$GITHUB_STEP_SUMMARY\"\n else\n echo \":warning: $platform: no finished production build matches fingerprint \\`$hash\\` — OTA skipped; JS changes reach $platform only once a matching build ships\" >> \"$GITHUB_STEP_SUMMARY\"\n fi\n done", + "checksum": "fe28375e5fe7f07cc02a0734c5be7cbf132acec9b52a32a9ae2b98139c8e4f31" + }, + "distribution-download-resolution": { + "id": "distribution-download-resolution", + "path": "apps/marketing/src/pages/download.astro", + "start": 89, + "end": 132, + "language": "typescript", + "label": "Marketing download links resolve against latest GitHub Release assets", + "code": "", + "checksum": "2797f24449eb4c2753ee4fc82674f127d1cd273af1aa0b25d2f7cc769b4367d0" + }, + "distribution-aur-selection": { + "id": "distribution-aur-selection", + "path": "packaging/aur/scripts/release.sh", + "start": 9, + "end": 44, + "language": "bash", + "label": "Stable and nightly tags select separate checksum-pinned AUR packages", + "code": "if [[ \"$tag\" =~ ^v[0-9]+\\.[0-9]+\\.[0-9]+$ ]]; then\n pkgname='t3code-bin'\nelif [[ \"$tag\" =~ ^v[0-9]+\\.[0-9]+\\.[0-9]+-nightly\\.[0-9]{8}\\.[0-9]+$ ]]; then\n pkgname='t3code-nightly-bin'\nelse\n echo \"Release $tag does not publish an AUR package.\"\n exit 0\nfi\n\nversion=\"${tag#v}\"\npkgver=\"${version//-/_}\"\nasset_name=\"T3-Code-${version}-x86_64.AppImage\"\nrelease_json=\"$(gh api \"repos/$repo/releases/tags/$tag\")\"\nasset_digest=\"$(jq -r --arg name \"$asset_name\" \\\n '.assets[] | select(.name == $name) | .digest' <<<\"$release_json\")\"\nappimage_sha256=\"${asset_digest#sha256:}\"\n\nif [[ ! \"$appimage_sha256\" =~ ^[0-9a-f]{64}$ ]]; then\n echo \"Release $tag is missing $asset_name or its SHA-256 digest.\" >&2\n exit 1\nfi\n\nwork_dir=\"$(mktemp -d)\"\ntrap 'rm -rf -- \"$work_dir\"' EXIT\ngh api -H 'Accept: application/vnd.github.raw' \\\n \"repos/$repo/contents/LICENSE?ref=$tag\" > \"$work_dir/LICENSE\"\nlicense_sha256=\"$(sha256sum \"$work_dir/LICENSE\" | awk '{print $1}')\"\n\npackage_dir=\"$repo_root/packaging/aur/$pkgname\"\ncd \"$package_dir\"\nsed -Ei \\\n -e \"s/^pkgver=.*/pkgver=$pkgver/\" \\\n -e \"s/^pkgrel=.*/pkgrel=$pkgrel/\" \\\n -e \"/# AppImage$/s/'[0-9a-f]{64}'/'$appimage_sha256'/\" \\\n -e \"/# upstream license$/s/'[0-9a-f]{64}'/'$license_sha256'/\" \\\n PKGBUILD", + "checksum": "fc2a09bb70266affc8b9779eb18da4d303cefb2ffad79934ddd803286cda7299" + }, + "release-channel-resolution": { + "id": "release-channel-resolution", + "path": ".github/workflows/release.yml", + "start": 103, + "end": 155, + "language": "bash", + "label": "Stable and nightly releases derive different versions, tags, and latest policy", + "code": " - id: release_meta\n name: Resolve release version\n shell: bash\n env:\n DISPATCH_CHANNEL: ${{ github.event.inputs.channel }}\n DISPATCH_VERSION: ${{ github.event.inputs.version }}\n NIGHTLY_DATE: ${{ github.run_started_at }}\n NIGHTLY_SHA: ${{ github.sha }}\n NIGHTLY_RUN_NUMBER: ${{ github.run_number }}\n run: |\n if [[ \"${GITHUB_EVENT_NAME}\" == \"schedule\" || ( \"${GITHUB_EVENT_NAME}\" == \"workflow_dispatch\" && \"${DISPATCH_CHANNEL:-stable}\" == \"nightly\" ) ]]; then\n nightly_date=\"$(date -u -d \"$NIGHTLY_DATE\" +%Y%m%d)\"\n\n node scripts/resolve-nightly-release.ts \\\n --date \"$nightly_date\" \\\n --run-number \"$NIGHTLY_RUN_NUMBER\" \\\n --sha \"$NIGHTLY_SHA\" \\\n --github-output\n\n echo \"release_channel=nightly\" >> \"$GITHUB_OUTPUT\"\n echo \"cli_dist_tag=nightly\" >> \"$GITHUB_OUTPUT\"\n echo \"is_prerelease=true\" >> \"$GITHUB_OUTPUT\"\n echo \"make_latest=false\" >> \"$GITHUB_OUTPUT\"\n else\n if [[ \"${GITHUB_EVENT_NAME}\" == \"workflow_dispatch\" ]]; then\n raw=\"${DISPATCH_VERSION}\"\n if [[ -z \"$raw\" ]]; then\n echo \"workflow_dispatch stable releases require the version input.\" >&2\n exit 1\n fi\n else\n raw=\"${GITHUB_REF_NAME}\"\n fi\n\n version=\"${raw#v}\"\n if [[ ! \"$version\" =~ ^[0-9]+\\.[0-9]+\\.[0-9]+([.-][0-9A-Za-z.-]+)?$ ]]; then\n echo \"Invalid release version: $raw\" >&2\n exit 1\n fi\n\n echo \"release_channel=stable\" >> \"$GITHUB_OUTPUT\"\n echo \"version=$version\" >> \"$GITHUB_OUTPUT\"\n echo \"tag=v$version\" >> \"$GITHUB_OUTPUT\"\n echo \"name=T3 Code v$version\" >> \"$GITHUB_OUTPUT\"\n echo \"cli_dist_tag=latest\" >> \"$GITHUB_OUTPUT\"\n if [[ \"$version\" =~ ^[0-9]+\\.[0-9]+\\.[0-9]+$ ]]; then\n echo \"is_prerelease=false\" >> \"$GITHUB_OUTPUT\"\n echo \"make_latest=true\" >> \"$GITHUB_OUTPUT\"\n else\n echo \"is_prerelease=true\" >> \"$GITHUB_OUTPUT\"\n echo \"make_latest=false\" >> \"$GITHUB_OUTPUT\"\n fi\n fi", + "checksum": "14a9355c1c509245042afe02fcfb4fd155578c5b31615b9440e1ca4a7375c4e7" + }, + "release-exact-version-invariant": { + "id": "release-exact-version-invariant", + "path": "docs/operations/release.md", + "start": 174, + "end": 187, + "language": "markdown", + "label": "npm exact-version publication precedes every released client", + "code": "## Server self-update release invariant\n\nConnected servers update to the client's exact version, not to an npm dist-tag. Every released\ndesktop or hosted client version must therefore have a matching `t3@` package available on\nnpm before users can receive that client.\n\nThe workflow enforces this ordering:\n\n1. `publish_cli` publishes the exact stable or nightly version to npm.\n2. `release` depends on `publish_cli` before exposing desktop artifacts in GitHub Releases.\n3. `deploy_web` depends on `release` before moving the hosted channel to the new client.\n\nPreserve these dependencies when changing the release graph. Publishing a client first would leave\nthe **Update server** action targeting a package version that does not exist yet.", + "checksum": "22eb4423a30d49b23f50117b70459bc87aacfafc9f766b8fe75d0083df4377f8" + }, + "desktop-update-check-download": { + "id": "desktop-update-check-download", + "path": "apps/desktop/src/updates/DesktopUpdates.ts", + "start": 334, + "end": 458, + "language": "typescript", + "label": "Desktop channel selection, update checks, and user-triggered download", + "code": " const applyAutoUpdaterChannel = Effect.fn(\"desktop.updates.applyAutoUpdaterChannel\")(function* (\n channel: DesktopUpdateChannel,\n ) {\n yield* Effect.annotateCurrentSpan({ channel });\n const allowsPrerelease = channel === \"nightly\";\n yield* electronUpdater.setChannel(channel);\n yield* electronUpdater.setAllowPrerelease(allowsPrerelease);\n yield* electronUpdater.setAllowDowngrade(allowsPrerelease);\n yield* electronUpdater.setFullChangelog(allowsPrerelease);\n yield* logUpdaterInfo(\"using update channel\", {\n channel,\n allowPrerelease: allowsPrerelease,\n allowDowngrade: allowsPrerelease,\n fullChangelog: allowsPrerelease,\n });\n });\n\n const shouldEnableAutoUpdates = resolveDisabledReason.pipe(Effect.map(Option.isNone));\n\n const checkForUpdates = Effect.fn(\"desktop.updates.checkForUpdates\")(function* (\n reason: string,\n actionReservation: \"acquire\" | \"held\" = \"acquire\",\n ) {\n yield* Effect.annotateCurrentSpan({ reason });\n if (yield* Ref.get(desktopState.quitting)) return false;\n if (!(yield* Ref.get(updaterConfiguredRef))) return false;\n\n const state = yield* Ref.get(updateStateRef);\n if (state.status === \"downloading\") {\n yield* logUpdaterInfo(\"skipping update check while update is active\", {\n reason,\n status: state.status,\n });\n return false;\n }\n\n if (actionReservation === \"acquire\" && !(yield* tryStartUpdateAction(\"check\"))) return false;\n\n const check = Effect.gen(function* () {\n const checkedAt = yield* currentIsoTimestamp;\n yield* setState(reduceDesktopUpdateStateOnCheckStart(state, checkedAt));\n yield* logUpdaterInfo(\"checking for updates\", { reason });\n\n return yield* electronUpdater.checkForUpdates.pipe(\n Effect.as(true),\n Effect.catchTags({\n ElectronUpdaterCheckForUpdatesError: Effect.fn(\n \"desktop.updates.handleCheckForUpdatesFailure\",\n )(function* (error) {\n const failedAt = yield* currentIsoTimestamp;\n yield* updateState((current) =>\n reduceDesktopUpdateStateOnCheckFailure(current, error.message, failedAt),\n );\n yield* logUpdaterError(error.message, {\n errorTag: error._tag,\n channel: error.channel,\n });\n return true;\n }),\n }),\n );\n });\n\n return yield* actionReservation === \"held\"\n ? check\n : check.pipe(Effect.ensuring(finishUpdateAction(\"check\")));\n });\n\n const downloadAvailableUpdate = Effect.gen(function* () {\n const state = yield* Ref.get(updateStateRef);\n if (!(yield* Ref.get(updaterConfiguredRef)) || state.status !== \"available\") {\n return { accepted: false, completed: false };\n }\n\n if (!(yield* tryStartUpdateAction(\"download\"))) {\n return { accepted: false, completed: false };\n }\n\n return yield* Effect.gen(function* () {\n yield* setState(reduceDesktopUpdateStateOnDownloadStart(state));\n yield* electronUpdater.setDisableDifferentialDownload(\n isArm64HostRunningIntelBuild(environment.runtimeInfo),\n );\n yield* logUpdaterInfo(\"downloading update\");\n yield* electronUpdater.downloadUpdate;\n return { accepted: true, completed: true };\n }).pipe(\n Effect.catchTags({\n ElectronUpdaterDownloadUpdateError: Effect.fn(\"desktop.updates.handleDownloadFailure\")(\n function* (error) {\n yield* updateState((current) =>\n reduceDesktopUpdateStateOnDownloadFailure(current, error.message),\n );\n yield* logUpdaterError(error.message, {\n errorTag: error._tag,\n channel: error.channel,\n });\n return { accepted: true, completed: false };\n },\n ),\n }),\n Effect.onInterrupt(() =>\n updateState((current) => (current.status === \"downloading\" ? state : current)).pipe(\n Effect.asVoid,\n ),\n ),\n Effect.catchCause((cause) => {\n if (Cause.hasInterruptsOnly(cause)) {\n return Effect.failCause(cause);\n }\n const error = new DesktopUpdateUnexpectedActionError({ action: \"download\", cause });\n return Effect.gen(function* () {\n yield* updateState((current) =>\n reduceDesktopUpdateStateOnDownloadFailure(current, error.message),\n );\n yield* logUpdaterError(error.message, {\n errorTag: error._tag,\n action: error.action,\n });\n return { accepted: true, completed: false };\n });\n }),\n Effect.ensuring(finishUpdateAction(\"download\")),\n );\n }).pipe(Effect.withSpan(\"desktop.updates.downloadAvailableUpdate\"));", + "checksum": "446f64f027ab1d89316bef75ed8f588b90ca57499d539bc7843dbab3994a2393" + }, + "desktop-update-install-boundary": { + "id": "desktop-update-install-boundary", + "path": "apps/desktop/src/updates/DesktopUpdates.ts", + "start": 465, + "end": 575, + "language": "typescript", + "label": "Desktop install stops every backend before updater-controlled restart", + "code": " const installDownloadedUpdate = Effect.gen(function* () {\n const state = yield* Ref.get(updateStateRef);\n const hasInstallableDownload =\n state.downloadedVersion !== null &&\n (state.status === \"downloaded\" ||\n (state.status === \"error\" &&\n (state.errorContext === null || state.errorContext === \"install\")));\n if (\n (yield* Ref.get(desktopState.quitting)) ||\n !(yield* Ref.get(updaterConfiguredRef)) ||\n !hasInstallableDownload\n ) {\n return { accepted: false, completed: false };\n }\n\n if (!(yield* tryStartUpdateAction(\"install\"))) {\n return { accepted: false, completed: false };\n }\n\n yield* Ref.set(desktopState.quitting, true);\n\n return yield* Effect.gen(function* () {\n // Stop every backend in the pool, not just the primary. With\n // parallel WSL + Windows backends, leaving the WSL instance up\n // means quitAndInstall's app.quit() exits before the pool's\n // scope cascade has a chance to run its stop finalizer, so the\n // WSL child gets hard-killed by the OS instead of receiving\n // SIGTERM + grace. Stops run concurrently with the same 5s\n // budget the primary had on its own.\n const instances = yield* pool.list;\n yield* Effect.forEach(\n instances,\n (instance) => instance.stop({ timeout: Duration.seconds(5) }),\n { concurrency: \"unbounded\" },\n );\n yield* electronWindow.destroyAll;\n yield* electronUpdater.quitAndInstall({\n isSilent: true,\n isForceRunAfter: true,\n });\n return { accepted: true, completed: false };\n }).pipe(\n Effect.catchTags({\n ElectronUpdaterQuitAndInstallError: Effect.fn(\"desktop.updates.handleInstallFailure\")(\n function* (error) {\n yield* resetInstallAction;\n yield* updateState((current) =>\n reduceDesktopUpdateStateOnInstallFailure(current, error.message),\n );\n yield* logUpdaterError(error.message, {\n errorTag: error._tag,\n channel: error.channel,\n isSilent: error.isSilent,\n isForceRunAfter: error.isForceRunAfter,\n });\n return { accepted: true, completed: false };\n },\n ),\n }),\n Effect.onInterrupt(() => resetInstallAction),\n Effect.catchCause((cause) =>\n Effect.gen(function* () {\n if (Cause.hasInterruptsOnly(cause)) {\n return yield* Effect.failCause(cause);\n }\n yield* resetInstallAction;\n const error = new DesktopUpdateUnexpectedActionError({ action: \"install\", cause });\n yield* updateState((current) =>\n reduceDesktopUpdateStateOnInstallFailure(current, error.message),\n );\n yield* logUpdaterError(error.message, {\n errorTag: error._tag,\n action: error.action,\n });\n return { accepted: true, completed: false };\n }),\n ),\n );\n }).pipe(Effect.withSpan(\"desktop.updates.installDownloadedUpdate\"));\n\n const startUpdatePollers: Effect.Effect = Effect.gen(function* () {\n yield* Effect.sleep(AUTO_UPDATE_STARTUP_DELAY).pipe(\n Effect.andThen(checkForUpdates(\"startup\")),\n Effect.catchCause((cause) => {\n if (Cause.hasInterruptsOnly(cause)) {\n return Effect.void;\n }\n const error = new DesktopUpdatePollerError({ poller: \"startup\", cause });\n return logUpdaterError(error.message, {\n errorTag: error._tag,\n poller: error.poller,\n });\n }),\n Effect.forkScoped,\n );\n yield* Effect.sleep(AUTO_UPDATE_POLL_INTERVAL).pipe(\n Effect.andThen(checkForUpdates(\"poll\")),\n Effect.forever,\n Effect.catchCause((cause) => {\n if (Cause.hasInterruptsOnly(cause)) {\n return Effect.void;\n }\n const error = new DesktopUpdatePollerError({ poller: \"poll\", cause });\n return logUpdaterError(error.message, {\n errorTag: error._tag,\n poller: error.poller,\n });\n }),\n Effect.forkScoped,\n );\n }).pipe(Effect.withSpan(\"desktop.updates.startPollers\"));", + "checksum": "c192a6561381eb1d602b20151a6d027ae2bbbf6a34ec901d4b37a3f1421d8e95" + }, + "server-update-exact-preflight": { + "id": "server-update-exact-preflight", + "path": "apps/server/src/cloud/selfUpdate.ts", + "start": 64, + "end": 169, + "language": "typescript", + "label": "Server self-update accepts only an exact version that passes staged preflight", + "code": " const update: ServerSelfUpdate[\"Service\"][\"update\"] = Effect.fn(\n \"cloud.server_self_update.update\",\n )(function* (input, reportProgress = () => Effect.void) {\n if (capability === \"desktop-managed\") {\n return yield* failWith(\n \"This server is managed by the T3 Code desktop app on its machine; update the desktop app to update it.\",\n );\n }\n if (capability === null) {\n return yield* failWith(\n \"Remote updates require the T3 Code background service. Run `t3 service install` on the server machine.\",\n );\n }\n\n const targetVersion = input.targetVersion.trim();\n if (!isExactServiceVersion(targetVersion)) {\n return yield* failWith(`'${targetVersion}' is not an exact t3 version.`);\n }\n if (yield* Ref.getAndSet(inFlight, true)) {\n return yield* failWith(\"A server update is already in progress.\");\n }\n\n return yield* Effect.gen(function* () {\n yield* reportProgress(\"downloading\");\n const paths = yield* ensurePinnedRuntimeInstalled({\n baseDir: serverConfig.baseDir,\n version: targetVersion,\n fs,\n path,\n runner,\n validate: (runtime) =>\n runner\n .run({\n command: execPath,\n args: [\n runtime.entryPath,\n \"__service-preflight\",\n \"--database-path\",\n serverConfig.dbPath,\n \"--launcher-protocol\",\n String(SERVICE_LAUNCHER_PROTOCOL),\n ],\n timeout: PREFLIGHT_TIMEOUT,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new PinnedRuntimeInstallError({\n step: \"running the staged service preflight\",\n cause,\n }),\n ),\n Effect.flatMap(\n (\n result,\n ): Effect.Effect<\n void,\n PinnedRuntimeInstallError | PinnedRuntimePreflightBlockedError\n > => {\n if (result.code !== 0) {\n return Effect.fail(\n new PinnedRuntimeInstallError({\n step: \"running the staged service preflight\",\n exitCode: Number(result.code),\n stdoutLength: result.stdout.length,\n stderrLength: result.stderr.length,\n }),\n );\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(result.stdout.trim());\n } catch (cause) {\n return Effect.fail(\n new PinnedRuntimeInstallError({\n step: \"decoding the staged service preflight\",\n cause,\n }),\n );\n }\n const preflight = decodeServicePreflightResult(parsed);\n if (preflight === undefined || preflight.version !== targetVersion) {\n return Effect.fail(\n new PinnedRuntimeInstallError({\n step: \"verifying the staged service preflight\",\n }),\n );\n }\n return preflight.status === \"ready\"\n ? Effect.void\n : Effect.fail(\n new PinnedRuntimePreflightBlockedError({\n version: targetVersion,\n reason: preflight.reason,\n }),\n );\n },\n ),\n ),\n }).pipe(\n Effect.mapError((error) =>\n error._tag === \"PinnedRuntimePreflightBlockedError\"\n ? failWith(error.reason, error)\n : failWith(`Could not prepare t3@${targetVersion}.`, error),\n ),\n );", + "checksum": "2024b45fe781d2feca6c8eb96b8b543c146198449303cc50ed7d838efa3e3ab3" + }, + "server-update-launcher-handoff": { + "id": "server-update-launcher-handoff", + "path": "apps/server/src/cloud/selfUpdate.ts", + "start": 171, + "end": 191, + "language": "typescript", + "label": "Prepared server runtime is handed to the stable launcher by update id", + "code": " yield* reportProgress(\"installing\");\n const updateId = yield* launcher\n .requestUpdate({ targetVersion, dbPath: serverConfig.dbPath })\n .pipe(\n Effect.mapError((error) =>\n failWith(\n error._tag === \"ServiceLauncherRejectedError\"\n ? error.reason\n : \"Could not ask the service launcher to activate the prepared update.\",\n error,\n ),\n ),\n );\n\n yield* Effect.logInfo(\"Server update prepared; handing off to the service launcher.\", {\n updateId,\n targetVersion,\n runtimePath: paths.entryPath,\n });\n return { targetVersion, method: \"boot-service\" as const, updateId };\n }).pipe(Effect.onError(() => Ref.set(inFlight, false)));", + "checksum": "ce552ec0f0f18d4a12f7a90044b4492a886c4e35c1044f3bedf158442e4ec62b" + }, + "mobile-ota-fingerprint-policy": { + "id": "mobile-ota-fingerprint-policy", + "path": "apps/mobile/app.config.ts", + "start": 159, + "end": 180, + "language": "typescript", + "label": "Mobile runtime compatibility is keyed by native fingerprint", + "code": "const config: ExpoConfig = {\n name: variant.appName,\n slug: \"t3-code\",\n platforms: [\"ios\", \"android\"],\n scheme: variant.scheme,\n version: \"1.0.4\",\n runtimeVersion: {\n // Fingerprint (not appVersion) so an OTA only reaches binaries whose native\n // project — native deps, config plugins, AND patches/ — matches the update.\n // With appVersion, every 0.1.0 build shares a runtime version, so a JS update\n // could land on a binary missing the native changes it needs and crash.\n policy: process.env.MOBILE_VERSION_POLICY ?? \"fingerprint\",\n },\n orientation: \"portrait\",\n icon: variant.assets.appIcon,\n userInterfaceStyle: \"automatic\",\n updates: {\n enabled: true,\n url: \"https://u.expo.dev/d763fcb8-d37c-41ea-a773-b54a0ab4a454\",\n checkAutomatically: \"ON_LOAD\",\n fallbackToCacheTimeout: 0,\n },", + "checksum": "8fca9ce8ca5fe7a6a1fa27d63f6bef643e0df47b68108ea3c1bbb3d29227b3a2" + }, + "analytics-posthog-controls": { + "id": "analytics-posthog-controls", + "path": "apps/server/src/telemetry/AnalyticsService.ts", + "start": 31, + "end": 44, + "language": "typescript", + "label": "PostHog destination, opt-out, and bounded buffer configuration", + "code": "const TelemetryEnvConfig = Config.all({\n posthogKey: Config.string(\"T3CODE_POSTHOG_KEY\").pipe(\n Config.withDefault(\"phc_XOWci4oZP4VvLiEyrFqkFjP4CZn55mjYYBMREK5Wd6m\"),\n ),\n posthogHost: Config.string(\"T3CODE_POSTHOG_HOST\").pipe(\n Config.withDefault(\"https://us.i.posthog.com\"),\n ),\n enabled: Config.boolean(\"T3CODE_TELEMETRY_ENABLED\").pipe(Config.withDefault(true)),\n flushBatchSize: Config.number(\"T3CODE_TELEMETRY_FLUSH_BATCH_SIZE\").pipe(Config.withDefault(20)),\n maxBufferedEvents: Config.number(\"T3CODE_TELEMETRY_MAX_BUFFERED_EVENTS\").pipe(\n Config.withDefault(1_000),\n ),\n wslDistroName: Config.string(\"WSL_DISTRO_NAME\").pipe(Config.option),\n});", + "checksum": "f3c3ac2e572cef41e21529c9b74a5142da3d04ae2b8f5b948096e8eb497141c9" + }, + "analytics-posthog-boundary": { + "id": "analytics-posthog-boundary", + "path": "apps/server/src/telemetry/AnalyticsService.ts", + "start": 69, + "end": 134, + "language": "typescript", + "label": "Installation-scoped analytics payload and PostHog batch boundary", + "code": "export const make = Effect.gen(function* () {\n const telemetryConfig = yield* TelemetryEnvConfig;\n const httpClient = yield* HttpClient.HttpClient;\n const serverConfig = yield* ServerConfig.ServerConfig;\n const identifier = yield* getTelemetryIdentifier;\n const bufferRef = yield* Ref.make>([]);\n const clientType = serverConfig.mode === \"desktop\" ? \"desktop-app\" : \"cli-web-client\";\n const hostPlatform = yield* HostProcessPlatform;\n const hostArchitecture = yield* HostProcessArchitecture;\n\n const enqueueBufferedEvent = (event: string, properties?: Readonly>) =>\n Effect.flatMap(DateTime.now, (now) =>\n Ref.modify(bufferRef, (current) => {\n const appended = [\n ...current,\n {\n event,\n ...(properties ? { properties } : {}),\n capturedAt: DateTime.formatIso(now),\n } satisfies BufferedAnalyticsEvent,\n ];\n\n const next =\n appended.length > telemetryConfig.maxBufferedEvents\n ? appended.slice(appended.length - telemetryConfig.maxBufferedEvents)\n : appended;\n\n return [\n {\n size: next.length,\n dropped: next.length !== appended.length,\n } as const,\n next,\n ] as const;\n }),\n );\n\n const sendBatch = Effect.fn(\"AnalyticsService.sendBatch\")(function* (\n events: ReadonlyArray,\n ) {\n if (!telemetryConfig.enabled || !identifier) return;\n\n const payload = {\n api_key: telemetryConfig.posthogKey,\n batch: events.map((event) => ({\n event: event.event,\n distinct_id: identifier,\n properties: {\n ...event.properties,\n $process_person_profile: false,\n platform: hostPlatform,\n wsl: Option.getOrUndefined(telemetryConfig.wslDistroName),\n arch: hostArchitecture,\n t3CodeVersion: packageJson.version,\n clientType,\n },\n timestamp: event.capturedAt,\n })),\n };\n\n yield* HttpClientRequest.post(`${telemetryConfig.posthogHost}/batch/`).pipe(\n HttpClientRequest.bodyJson(payload),\n Effect.flatMap(httpClient.execute),\n Effect.flatMap(HttpClientResponse.filterStatusOk),\n );\n });", + "checksum": "80a1888ab4ce1d23e1388a370d7d82c5313eeb46c325eb8d74c5609a55b8a82a" + }, + "analytics-identity-ladder": { + "id": "analytics-identity-ladder", + "path": "apps/server/src/telemetry/Identify.ts", + "start": 248, + "end": 299, + "language": "typescript", + "label": "Hashed Codex, Claude, then anonymous analytics identity ladder", + "code": "/**\n * getTelemetryIdentifier - Users are \"identified\" by finding the first match of the following, then hashing the value.\n * 1. ~/.codex/auth.json tokens.account_id\n * 2. ~/.claude.json userID\n * 3. ~/.t3/telemetry/anonymous-id\n */\nexport const getTelemetryIdentifierForHome = Effect.fn(\"getTelemetryIdentifierForHome\")(\n function* (homeDirectory: string) {\n const codexAccountId = yield* getCodexAccountId(homeDirectory).pipe(\n Effect.catchTags({\n TelemetryIdentityReadError: (error) =>\n logTelemetryIdentityError(error).pipe(Effect.as(Option.none())),\n TelemetryIdentityDecodeError: (error) =>\n logTelemetryIdentityError(error).pipe(Effect.as(Option.none())),\n }),\n );\n if (Option.isSome(codexAccountId)) {\n return yield* hash(\"codex\", codexAccountId.value);\n }\n\n const claudeUserId = yield* getClaudeUserId(homeDirectory).pipe(\n Effect.catchTags({\n TelemetryIdentityReadError: (error) =>\n logTelemetryIdentityError(error).pipe(Effect.as(Option.none())),\n TelemetryIdentityDecodeError: (error) =>\n logTelemetryIdentityError(error).pipe(Effect.as(Option.none())),\n }),\n );\n if (Option.isSome(claudeUserId)) {\n return yield* hash(\"claude\", claudeUserId.value);\n }\n\n const anonymousId = yield* upsertAnonymousId.pipe(\n Effect.map(Option.some),\n Effect.catchTags({\n TelemetryIdentityReadError: (error) =>\n logTelemetryIdentityError(error).pipe(Effect.as(Option.none())),\n TelemetryAnonymousIdGenerationError: (error) =>\n logTelemetryIdentityError(error).pipe(Effect.as(Option.none())),\n TelemetryAnonymousIdPersistenceError: (error) =>\n logTelemetryIdentityError(error).pipe(Effect.as(Option.none())),\n }),\n );\n if (Option.isSome(anonymousId)) {\n return yield* hash(\"anonymous\", anonymousId.value);\n }\n\n return null;\n },\n Effect.tapError(logTelemetryIdentityError),\n Effect.orElseSucceed(() => null),\n);", + "checksum": "faea0eb8f89de6534789b7d542ee9f8ca43255aea1750edd5948f682e9a41018" + }, + "observability-local-remote-lanes": { + "id": "observability-local-remote-lanes", + "path": "apps/server/src/observability/Layers/Observability.ts", + "start": 19, + "end": 93, + "language": "typescript", + "label": "Local trace sink remains active while OTLP traces and metrics are optional", + "code": "export const ObservabilityLive = Layer.unwrap(\n Effect.gen(function* () {\n const config = yield* ServerConfig.ServerConfig;\n const attribution = yield* ResourceAttribution.ResourceAttribution;\n\n const traceReferencesLayer = Layer.mergeAll(\n Layer.succeed(Tracer.MinimumTraceLevel, config.traceMinLevel),\n Layer.succeed(References.TracerTimingEnabled, config.traceTimingEnabled),\n httpHeaderRedactionLayer,\n );\n\n const tracerLayer = Layer.unwrap(\n Effect.gen(function* () {\n const sink = yield* makeTraceSink({\n filePath: config.serverTracePath,\n maxBytes: config.traceMaxBytes,\n maxFiles: config.traceMaxFiles,\n batchWindowMs: config.traceBatchWindowMs,\n onFlush: (stats) =>\n attribution.record({\n component: \"server-trace\",\n operation: \"append\",\n logicalWriteBytes: stats.logicalWriteBytes,\n count: stats.count,\n durationMs: stats.durationMs,\n }),\n });\n const delegate =\n config.otlpTracesUrl === undefined\n ? undefined\n : yield* OtlpTracer.make({\n url: config.otlpTracesUrl,\n exportInterval: `${config.otlpExportIntervalMs} millis`,\n resource: {\n serviceName: config.otlpServiceName,\n attributes: {\n \"service.runtime\": \"t3-server\",\n \"service.mode\": config.mode,\n },\n },\n });\n\n const tracer = yield* makeLocalFileTracer({\n filePath: config.serverTracePath,\n maxBytes: config.traceMaxBytes,\n maxFiles: config.traceMaxFiles,\n batchWindowMs: config.traceBatchWindowMs,\n sink,\n ...(delegate ? { delegate } : {}),\n });\n\n return Layer.mergeAll(\n Layer.succeed(Tracer.Tracer, tracer),\n BrowserTraceCollector.layer(sink),\n );\n }),\n ).pipe(Layer.provide(OtlpExporter.layerFlusher), Layer.provideMerge(otlpSerializationLayer));\n\n const metricsLayer =\n config.otlpMetricsUrl === undefined\n ? Layer.empty\n : OtlpMetrics.layer({\n url: config.otlpMetricsUrl,\n exportInterval: `${config.otlpExportIntervalMs} millis`,\n resource: {\n serviceName: config.otlpServiceName,\n attributes: {\n \"service.runtime\": \"t3-server\",\n \"service.mode\": config.mode,\n },\n },\n }).pipe(Layer.provideMerge(otlpSerializationLayer));\n\n return Layer.mergeAll(ServerLoggerLive, traceReferencesLayer, tracerLayer, metricsLayer);\n }),", + "checksum": "17644127b1a5444891920976b4f660fd3be2843d14f8d933394aad5b5c24f390" + }, + "observability-browser-ingest": { + "id": "observability-browser-ingest", + "path": "apps/server/src/http.ts", + "start": 146, + "end": 199, + "language": "typescript", + "label": "Authenticated browser traces land locally before optional OTLP forwarding", + "code": "export const otlpTracesProxyRouteLayer = HttpRouter.add(\n \"POST\",\n OTLP_TRACES_PROXY_PATH,\n Effect.gen(function* () {\n yield* authenticateRawRouteWithScope(AuthOrchestrationOperateScope);\n const request = yield* HttpServerRequest.HttpServerRequest;\n const config = yield* ServerConfig.ServerConfig;\n const otlpTracesUrl = config.otlpTracesUrl;\n const browserTraceCollector = yield* BrowserTraceCollector.BrowserTraceCollector;\n const httpClient = yield* HttpClient.HttpClient;\n const bodyJson = cast(yield* request.json);\n\n yield* Effect.try({\n try: () => decodeOtlpTraceRecords(bodyJson),\n catch: (cause) => new DecodeOtlpTraceRecordsError({ cause, bodyJson }),\n }).pipe(\n Effect.flatMap((records) => browserTraceCollector.record(records)),\n Effect.catch((cause) =>\n Effect.logWarning(\"Failed to decode browser OTLP traces\", {\n cause,\n bodyJson,\n }),\n ),\n );\n\n if (otlpTracesUrl === undefined) {\n return HttpServerResponse.empty({ status: 204 });\n }\n\n return yield* httpClient\n .post(otlpTracesUrl, {\n body: HttpBody.jsonUnsafe(bodyJson),\n })\n .pipe(\n Effect.flatMap(HttpClientResponse.filterStatusOk),\n Effect.as(HttpServerResponse.empty({ status: 204 })),\n Effect.tapError((cause) =>\n Effect.logWarning(\"Failed to export browser OTLP traces\", {\n cause,\n otlpTracesUrl,\n }),\n ),\n Effect.orElseSucceed(() =>\n HttpServerResponse.text(\"Trace export failed.\", { status: 502 }),\n ),\n );\n }).pipe(\n Effect.catchTags({\n EnvironmentAuthInvalidError: HttpServerRespondable.toResponse,\n EnvironmentInternalError: HttpServerRespondable.toResponse,\n EnvironmentScopeRequiredError: HttpServerRespondable.toResponse,\n }),\n ),\n);", + "checksum": "220e35097ba87ab35826ac3da655a6551055a457378aba8aaa77c21f843990c0" + }, + "resource-telemetry-demand-history": { + "id": "resource-telemetry-demand-history", + "path": "docs/internals/resource-telemetry.md", + "start": 129, + "end": 170, + "language": "markdown", + "label": "Bounded native history and diagnostics-driven telemetry streaming", + "code": "### Native history and streaming\n\nEvery native sample is appended to a one-hour in-memory ring bounded to 3,600\nsnapshots, 20,000 retained process rows, and 64 MiB of retained history bytes.\nHistory stays in the sidecar until a `readHistory` request and is returned in\nbounded chunks. The first bound reached wins, so high process counts or large\nprocess names and command lines shorten the effective history window.\n\nPeriodic snapshot streaming is disabled by default. The server enables it only\nwhile at least one diagnostics subscription is retained. `sampleNow` remains\navailable for explicit refreshes and identity validation.\n\nThe server adjusts native sampling without restarting the sidecar:\n\n- suspended, locked, low-power, or serious/critical thermal state: 15 seconds;\n- battery: 5 seconds;\n- normal AC: 1 second;\n- unknown or stale power: 5 seconds in the background and 1 second while live\n diagnostics is open.\n\n### Sampling limits\n\nThis is counter sampling, not syscall tracing.\n\n- A process that starts and exits entirely between samples may not be observed.\n- Cumulative CPU and I/O counters still provide accurate deltas for processes\n that survive across samples.\n- Exact file paths, individual write syscalls, ETW events, eBPF events, and\n Endpoint Security events are outside this implementation.\n\nThose deeper tracing systems can be added later as opt-in diagnostic modes\nwithout changing the public `ResourceTelemetry` model.\n\n## I/O semantics\n\nThe monitor preserves platform semantics instead of presenting all counters as\nequivalent:\n\n- Unix-like platforms report storage I/O counters exposed by `sysinfo`.\n- Windows reports all process I/O bytes, not only disk bytes.\n- Operating-system caches can prevent logical application reads or writes from\n appearing as physical storage bytes.", + "checksum": "5bc90ad0498b5f6e9b3dfc618b9d6f42d05938c26dfb3dcdc8b98d01446d89f7" + }, + "connect-oauth-hosted-handoff": { + "id": "connect-oauth-hosted-handoff", + "path": "packages/shared/src/connectAuth.ts", + "start": 19, + "end": 104, + "language": "typescript", + "label": "Hosted OAuth handoff and loopback versus out-of-band callbacks", + "code": "/**\n * Requested at authorize time by the hosted page and honored by the CLI's\n * token exchange; keep both sides on this single definition.\n */\nexport const CONNECT_OAUTH_SCOPES = [\"openid\", \"profile\", \"email\"] as const;\n\nexport interface ConnectAuthorizeRequest {\n readonly state: string;\n readonly challenge: string;\n /**\n * Present when a loopback CLI initiated the request: the hosted /connect\n * page then asks Clerk to redirect the authorization code straight to\n * `http://127.0.0.1:/callback` instead of the hosted callback page.\n */\n readonly loopbackPort?: number;\n}\n\n/**\n * The URL the CLI prints for the user to open in a browser. `state` and\n * `code_challenge` ride the fragment so they never reach the hosted app's\n * server or CDN logs; neither is a secret.\n *\n * Both CLI flows route through the hosted /connect page rather than hitting\n * Clerk's /oauth/authorize directly: a signed-out browser sent straight to\n * /oauth/authorize goes through Clerk's sign-in redirect, which does not\n * reliably preserve the authorize query parameters (state, response_type,\n * code_challenge). The hosted page waits for a Clerk session first, then\n * forwards the request with the parameters intact.\n */\nexport function buildConnectAuthorizeRequestUrl(input: {\n readonly hostedAppUrl: string;\n readonly state: string;\n readonly challenge: string;\n readonly loopbackPort?: number;\n}): string {\n const url = new URL(CONNECT_AUTHORIZE_PATH, input.hostedAppUrl);\n url.hash = new URLSearchParams([\n [CONNECT_AUTH_STATE_PARAM, input.state],\n [CONNECT_AUTH_CHALLENGE_PARAM, input.challenge],\n ...(input.loopbackPort === undefined\n ? []\n : [[CONNECT_AUTH_PORT_PARAM, String(input.loopbackPort)] as [string, string]]),\n ]).toString();\n return url.toString();\n}\n\nexport function readConnectAuthorizeRequest(url: URL): ConnectAuthorizeRequest | null {\n const params = readHashParams(url);\n const state = params.get(CONNECT_AUTH_STATE_PARAM)?.trim() ?? \"\";\n const challenge = params.get(CONNECT_AUTH_CHALLENGE_PARAM)?.trim() ?? \"\";\n if (!state || !challenge) {\n return null;\n }\n const port = params.get(CONNECT_AUTH_PORT_PARAM);\n if (port === null) {\n return { state, challenge };\n }\n // A present-but-invalid port means the link was corrupted; reject the whole\n // request rather than silently downgrading a loopback flow to the\n // out-of-band one, which would strand the waiting CLI.\n const loopbackPort = parseLoopbackPort(port.trim());\n if (loopbackPort === null) {\n return null;\n }\n return { state, challenge, loopbackPort };\n}\n\nfunction parseLoopbackPort(value: string): number | null {\n if (!/^\\d{1,5}$/.test(value)) {\n return null;\n }\n const port = Number(value);\n return port >= 1 && port <= 65535 ? port : null;\n}\n\n/**\n * Redirect URI for the CLI's local callback listener. Must stay in sync with\n * the redirect URI registered on the Clerk CLI OAuth application.\n */\nexport function connectLoopbackRedirectUri(port: number): string {\n return `http://127.0.0.1:${port}${CONNECT_LOOPBACK_CALLBACK_PATH}`;\n}\n\nexport function connectCallbackUrl(hostedAppUrl: string): string {\n return new URL(CONNECT_CALLBACK_PATH, hostedAppUrl).toString();\n}", + "checksum": "019508052e9e226164594a9bd72a85bf869819e0c3de33c5d0f4865e25decbbb" + }, + "connect-oauth-cli-pkce": { + "id": "connect-oauth-cli-pkce", + "path": "apps/server/src/cloud/CliTokenManager.ts", + "start": 266, + "end": 323, + "language": "typescript", + "label": "CLI PKCE, state validation, and authorization-code exchange", + "code": "const makePkceRequest = Effect.gen(function* () {\n const crypto = yield* Crypto.Crypto;\n const verifier = Encoding.encodeBase64Url(yield* crypto.randomBytes(32));\n const challenge = Encoding.encodeBase64Url(\n yield* crypto.digest(\"SHA-256\", new TextEncoder().encode(verifier)),\n );\n const state = Encoding.encodeBase64Url(yield* crypto.randomBytes(16));\n return { verifier, challenge, state };\n});\n\nexport interface OutOfBandOAuthPromptInput {\n readonly authorizeUrl: string;\n readonly validate: (value: string) => Effect.Effect;\n}\n\n/**\n * Out-of-band OAuth for machines without a local browser (SSH). The user\n * opens the hosted /connect URL elsewhere, signs in, and enters the displayed\n * code in this terminal. The PKCE verifier never leaves this process, so the\n * authorization code is useless to an observer, and the state bundled into\n * the blob preserves the loopback flow's CSRF check.\n */\nexport const outOfBandOAuthLogin = Effect.fn(\"cloud.cli_token.out_of_band_oauth_login\")(function* <\n E,\n R,\n>(promptForCode: (input: OutOfBandOAuthPromptInput) => Effect.Effect) {\n const metadata = yield* cloudCliOAuthConfig;\n const hostedAppUrl = yield* hostedAppUrlConfig;\n const { verifier, challenge, state } = yield* makePkceRequest;\n\n const authorizationCode = yield* promptForCode({\n authorizeUrl: buildConnectAuthorizeRequestUrl({ hostedAppUrl, state, challenge }),\n validate: (value) => {\n const checked = checkConnectAuthCode(value, state);\n return typeof checked === \"string\" ? Effect.fail(checked) : Effect.succeed(value);\n },\n }).pipe(\n // Clerk authorization codes expire on this horizon anyway; matching the\n // loopback flow's timeout turns an abandoned prompt into a clear error.\n Effect.timeout(CLOUD_CLI_OAUTH_CALLBACK_TIMEOUT),\n Effect.catchTag(\"TimeoutError\", (cause) =>\n Effect.fail(new CloudCliAuthorizationTimeoutError({ cause })),\n ),\n );\n // promptForCode is caller-supplied, so re-check the returned value rather\n // than trusting that the prompt ran validate.\n const authCode = checkConnectAuthCode(authorizationCode, state);\n if (typeof authCode === \"string\") {\n return yield* new CloudCliAuthorizationError({ cause: authCode });\n }\n\n return yield* exchangeToken(metadata, {\n grant_type: \"authorization_code\",\n code: authCode.code,\n redirect_uri: connectCallbackUrl(hostedAppUrl),\n client_id: metadata.clientId,\n code_verifier: verifier,\n });", + "checksum": "0c0afa4526b464e06018e6ceb78ba3bbcfd588ced7303dbd9b515a9a5f7cedd8" + }, + "connect-browser-dpop-key": { + "id": "connect-browser-dpop-key", + "path": "apps/web/src/cloud/dpop.ts", + "start": 24, + "end": 143, + "language": "typescript", + "label": "Browser P-256 DPoP key storage, generation, and thumbprint", + "code": "const DPOP_DATABASE_NAME = \"t3code:cloud-auth\";\nconst DPOP_DATABASE_VERSION = 1;\nconst DPOP_KEY_STORE_NAME = \"keys\";\nconst DPOP_KEY_ID = \"relay-dpop-proof-key\";\nconst decodeDpopPublicJwk = Schema.decodeUnknownEffect(DpopPublicJwk);\n\nexport const browserCryptoLayer = Layer.succeed(\n Crypto.Crypto,\n Crypto.make({\n randomBytes: (size) => globalThis.crypto.getRandomValues(new Uint8Array(size)),\n digest: (algorithm, data) =>\n Effect.promise(async () => {\n const input = new Uint8Array(data.length);\n input.set(data);\n return new Uint8Array(await globalThis.crypto.subtle.digest(algorithm, input.buffer));\n }),\n }),\n);\n\nfunction dpopError(message: string, cause?: unknown) {\n return new BrowserDpopError({ message, ...(cause === undefined ? {} : { cause }) });\n}\n\nfunction openDpopDatabase(): Effect.Effect {\n return Effect.callback((resume) => {\n const request = indexedDB.open(DPOP_DATABASE_NAME, DPOP_DATABASE_VERSION);\n request.addEventListener(\"error\", () =>\n resume(\n Effect.fail(dpopError(\"Could not open DPoP key storage.\", request.error ?? undefined)),\n ),\n );\n request.addEventListener(\"upgradeneeded\", () => {\n if (!request.result.objectStoreNames.contains(DPOP_KEY_STORE_NAME)) {\n request.result.createObjectStore(DPOP_KEY_STORE_NAME);\n }\n });\n request.addEventListener(\"success\", () => resume(Effect.succeed(request.result)));\n });\n}\n\nexport function readStoredBrowserDpopKey(): Effect.Effect {\n if (typeof indexedDB === \"undefined\") {\n return Effect.succeed(null);\n }\n return Effect.acquireUseRelease(\n openDpopDatabase(),\n (database) =>\n Effect.callback((resume) => {\n const request = database\n .transaction(DPOP_KEY_STORE_NAME, \"readonly\")\n .objectStore(DPOP_KEY_STORE_NAME)\n .get(DPOP_KEY_ID);\n request.addEventListener(\"error\", () =>\n resume(Effect.fail(dpopError(\"Could not read DPoP key.\", request.error ?? undefined))),\n );\n request.addEventListener(\"success\", () =>\n resume(Effect.succeed((request.result as BrowserDpopKey | undefined) ?? null)),\n );\n }),\n (database) => Effect.sync(() => database.close()),\n );\n}\n\nexport function writeStoredBrowserDpopKey(\n key: BrowserDpopKey,\n): Effect.Effect {\n if (typeof indexedDB === \"undefined\") {\n return Effect.void;\n }\n return Effect.acquireUseRelease(\n openDpopDatabase(),\n (database) =>\n Effect.callback((resume) => {\n const transaction = database.transaction(DPOP_KEY_STORE_NAME, \"readwrite\");\n transaction.addEventListener(\"error\", () =>\n resume(\n Effect.fail(dpopError(\"Could not write DPoP key.\", transaction.error ?? undefined)),\n ),\n );\n transaction.addEventListener(\"complete\", () => resume(Effect.void));\n transaction.objectStore(DPOP_KEY_STORE_NAME).put(key, DPOP_KEY_ID);\n }),\n (database) => Effect.sync(() => database.close()),\n );\n}\n\nexport const generateBrowserDpopKey = Effect.gen(function* () {\n const generated = yield* Effect.tryPromise({\n try: () =>\n crypto.subtle.generateKey({ name: \"ECDSA\", namedCurve: \"P-256\" }, true, [\n \"sign\",\n \"verify\",\n ]) as Promise,\n catch: (cause) => dpopError(\"Could not generate DPoP proof key.\", cause),\n });\n const privateJwk = yield* Effect.tryPromise({\n try: () => crypto.subtle.exportKey(\"jwk\", generated.privateKey),\n catch: (cause) => dpopError(\"Could not export DPoP private key.\", cause),\n });\n const publicJwk = yield* Effect.tryPromise({\n try: () => crypto.subtle.exportKey(\"jwk\", generated.publicKey),\n catch: (cause) => dpopError(\"Could not export DPoP public key.\", cause),\n }).pipe(\n Effect.flatMap((jwk) => decodeDpopPublicJwk(jwk)),\n Effect.mapError((cause) =>\n cause instanceof BrowserDpopError\n ? cause\n : dpopError(\"Generated DPoP public key is invalid.\", cause),\n ),\n );\n const privateKey = yield* Effect.tryPromise({\n try: () => importJWK(privateJwk as JWK, \"ES256\", { extractable: false }) as Promise,\n catch: (cause) => dpopError(\"Could not import DPoP private key.\", cause),\n });\n return {\n privateKey,\n publicJwk,\n thumbprint: computeDpopJwkThumbprint(publicJwk),\n };\n});", + "checksum": "6a8194ca1a98d84a004e00c32168993c56318488d07f4c377c7ecfebf192d7c5" + }, + "connect-environment-link-handshake": { + "id": "connect-environment-link-handshake", + "path": "apps/web/src/cloud/linkEnvironment.ts", + "start": 402, + "end": 493, + "language": "typescript", + "label": "Client-side relay challenge, environment proof, link, and runtime setup", + "code": "export function linkPrimaryEnvironmentToCloud(input: {\n readonly target: CloudLinkTarget;\n readonly clerkToken: string;\n readonly mode?: CloudLinkMode;\n}): Effect.Effect<\n void,\n CloudEnvironmentLinkError,\n EnvironmentRegistry | HttpClient.HttpClient | ManagedRelay.ManagedRelayClient\n> {\n return Effect.gen(function* () {\n const configuredRelayUrl = relayUrl();\n if (!configuredRelayUrl) {\n return yield* new CloudEnvironmentLinkError({\n message: \"T3CODE_RELAY_URL is not configured.\",\n });\n }\n const managedTunnelsEnabled = (input.mode ?? \"managed\") === \"managed\";\n const providerKind = managedTunnelsEnabled\n ? MANAGED_ENDPOINT_PROVIDER_KIND\n : PUBLISH_ONLY_PROVIDER_KIND;\n const relayClient = yield* ManagedRelay.ManagedRelayClient;\n const environmentClient = yield* makeEnvironmentHttpApiClient(input.target.httpBaseUrl);\n if (managedTunnelsEnabled) {\n yield* ensureRelayClientAvailable(EnvironmentId.make(input.target.environmentId));\n }\n\n const challenge = yield* relayClient\n .createEnvironmentLinkChallenge({\n clerkToken: input.clerkToken,\n payload: {\n notificationsEnabled: true,\n liveActivitiesEnabled: true,\n managedTunnelsEnabled,\n },\n })\n .pipe(\n Effect.mapError(\n decodedRelayClientError(\n `${configuredRelayUrl}/v1/client/environment-link-challenges failed`,\n ),\n ),\n );\n const proof = yield* environmentClient.connect\n .linkProof({\n headers: {},\n payload: {\n challenge: challenge.challenge,\n relayIssuer: configuredRelayUrl,\n endpoint: {\n httpBaseUrl: input.target.httpBaseUrl,\n wsBaseUrl: input.target.wsBaseUrl,\n providerKind,\n },\n origin: endpointOrigin(input.target.httpBaseUrl),\n },\n })\n .pipe(Effect.mapError(environmentApiError(\"Could not obtain environment link proof.\")));\n const link = yield* relayClient\n .linkEnvironment({\n clerkToken: input.clerkToken,\n payload: {\n proof,\n notificationsEnabled: true,\n liveActivitiesEnabled: true,\n managedTunnelsEnabled,\n },\n })\n .pipe(\n Effect.mapError(\n decodedRelayClientError(`${configuredRelayUrl}/v1/client/environment-links failed`),\n ),\n );\n yield* ensureLinkedEnvironmentMatches({\n expectedEnvironmentId: input.target.environmentId,\n expectedProviderKind: providerKind,\n link,\n });\n\n yield* environmentClient.connect\n .relayConfig({\n headers: {},\n payload: {\n relayUrl: configuredRelayUrl,\n relayIssuer: link.relayIssuer,\n cloudUserId: link.cloudUserId,\n environmentCredential: link.environmentCredential,\n cloudMintPublicKey: link.cloudMintPublicKey,\n endpointRuntime: link.endpointRuntime,\n },\n })\n .pipe(Effect.mapError(environmentApiError(\"Could not configure environment relay access.\")));\n }).pipe(Effect.provide(primaryEnvironmentHttpLayer));", + "checksum": "205bb065dd80ce2f8b9cc5b0a127f436a52d7654918dbe64c11a55556a788dd1" + }, + "connect-relay-linker-provision": { + "id": "connect-relay-linker-provision", + "path": "infra/relay/src/environments/EnvironmentLinker.ts", + "start": 227, + "end": 341, + "language": "typescript", + "label": "Relay challenge verification, replay defense, link, and endpoint provisioning", + "code": " const challenge = yield* relayTokens.verifyLinkChallenge({\n token: verified.challenge,\n userId: input.userId,\n request: {\n notificationsEnabled: input.request.notificationsEnabled,\n liveActivitiesEnabled: input.request.liveActivitiesEnabled,\n managedTunnelsEnabled: input.request.managedTunnelsEnabled,\n },\n nowEpochSeconds: nowSeconds,\n });\n if (challenge === null) {\n return yield* new EnvironmentLinkProofInvalid({\n userId: input.userId,\n environmentId: verified.environmentId,\n reason: \"challenge_invalid\",\n stage: \"verify_challenge\",\n });\n }\n const expiresAt = DateTime.make(verified.exp * 1_000);\n if (expiresAt._tag === \"None\") {\n return yield* new EnvironmentLinkProofInvalid({\n userId: input.userId,\n environmentId: verified.environmentId,\n reason: \"invalid_signature_or_scope\",\n stage: \"validate_expiration\",\n });\n }\n const consumedNonce = yield* proofReplay.consume({\n thumbprint: verified.environmentPublicKey,\n jti: verified.jti,\n iat: verified.iat,\n expiresAt: expiresAt.value,\n });\n if (!consumedNonce) {\n return yield* new EnvironmentLinkProofInvalid({\n userId: input.userId,\n environmentId: verified.environmentId,\n reason: \"replayed_nonce\",\n stage: \"consume_proof_nonce\",\n });\n }\n const consumedChallenge = yield* proofReplay.consume({\n thumbprint: \"relay-environment-link-challenge\",\n jti: challenge.jti,\n iat: challenge.iat,\n expiresAt: expiresAt.value,\n });\n if (!consumedChallenge) {\n return yield* new EnvironmentLinkProofInvalid({\n userId: input.userId,\n environmentId: verified.environmentId,\n reason: \"challenge_invalid\",\n stage: \"consume_challenge_nonce\",\n });\n }\n if (input.request.managedTunnelsEnabled && !isLoopbackManagedTunnelOrigin(verified.origin)) {\n return yield* new EnvironmentLinkProofInvalid({\n userId: input.userId,\n environmentId: verified.environmentId,\n reason: \"origin_not_allowed\",\n stage: \"validate_origin\",\n });\n }\n // Downgrading a managed link to publish-only must release the tunnel and\n // DNS that were provisioned for it — nothing else cleans them up until a\n // full unlink. Best effort: a cleanup failure must not block the link\n // itself, and the provider treats an absent allocation as already\n // deprovisioned, so retrying on every non-tunnel link is cheap.\n if (!input.request.managedTunnelsEnabled) {\n yield* managedEndpointProvider\n .deprovision({\n userId: input.userId,\n environmentId: verified.environmentId,\n })\n .pipe(\n Effect.tapError((error) =>\n Effect.logWarning(\"managed endpoint deprovision on publish-only link failed\", {\n environmentId: verified.environmentId,\n errorTag: error._tag,\n }),\n ),\n Effect.ignore,\n );\n }\n const provisioned = input.request.managedTunnelsEnabled\n ? yield* managedEndpointProvider.provision({\n userId: input.userId,\n environmentId: verified.environmentId,\n origin: verified.origin,\n })\n : null;\n const endpoint = provisioned?.endpoint ?? verified.endpoint;\n // The secure-endpoint requirement only matters when the relay advertises\n // this endpoint for other devices to reach (managed tunnel). Publish-only\n // links are reached out of band (e.g. Tailscale) and their stored endpoint\n // is never used for routing, so a nominal endpoint is acceptable.\n if (input.request.managedTunnelsEnabled && !isSecureManagedEndpoint(endpoint)) {\n return yield* new EnvironmentLinkProofInvalid({\n userId: input.userId,\n environmentId: verified.environmentId,\n reason: \"endpoint_not_secure\",\n stage: \"validate_endpoint\",\n });\n }\n yield* links.upsert({ ...input, proof: verified, endpoint });\n const environmentCredential = yield* credentials.create({\n environmentId: verified.environmentId,\n environmentPublicKey: verified.environmentPublicKey,\n });\n return {\n environmentId: verified.environmentId,\n endpoint,\n endpointRuntime: provisioned?.runtime ?? null,\n environmentCredential,\n };", + "checksum": "34db35e5e050fa71891b31226f004cdc587587676000e7a21ed897494fe0fcf0" + }, + "connect-managed-tunnel-provision": { + "id": "connect-managed-tunnel-provision", + "path": "infra/relay/src/environments/ManagedEndpointProvider.ts", + "start": 604, + "end": 855, + "language": "typescript", + "label": "Cloudflare tunnel allocation, ingress, DNS, and connector runtime", + "code": " provision: Effect.fn(\"relay.managed_endpoint_provider.provision\")(function* (input) {\n yield* Effect.annotateCurrentSpan({\n \"relay.user_id\": input.userId,\n \"relay.environment_id\": input.environmentId,\n \"relay.managed_endpoint.origin_host\": input.origin.localHttpHost,\n \"relay.managed_endpoint.origin_port\": input.origin.localHttpPort,\n });\n if (!isLoopbackOrigin(input.origin)) {\n return yield* new ManagedEndpointOriginNotAllowed({\n userId: input.userId,\n environmentId: input.environmentId,\n host: input.origin.localHttpHost,\n port: input.origin.localHttpPort,\n });\n }\n const cf = yield* requireCloudflareSettings(config, input);\n const environmentHash = yield* crypto\n .digest(\n \"SHA-256\",\n new TextEncoder().encode(\n managedEndpointDigestInput(cf.namespace, input.userId, input.environmentId),\n ),\n )\n .pipe(\n Effect.map(Encoding.encodeHex),\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"derive-environment-hash\",\n cause,\n }),\n ),\n );\n const requestedHostname = managedEndpointHostname(\n cf.namespace,\n cf.baseDomain,\n environmentHash,\n );\n const requestedTunnelName = managedEndpointTunnelName(cf.namespace, environmentHash);\n yield* tunnelLimits\n .ensureCapacity({\n userId: input.userId,\n environmentId: input.environmentId,\n })\n .pipe(\n Effect.catchTags({\n ManagedTunnelLimitPersistenceError: (cause) =>\n Effect.fail(\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"check-tunnel-limit\",\n hostname: requestedHostname,\n tunnelName: requestedTunnelName,\n cause,\n }),\n ),\n }),\n );\n const allocation = yield* allocations\n .reserve({\n userId: input.userId,\n environmentId: input.environmentId,\n hostname: requestedHostname,\n tunnelName: requestedTunnelName,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"reserve-allocation\",\n hostname: requestedHostname,\n tunnelName: requestedTunnelName,\n cause,\n }),\n ),\n );\n const { hostname, tunnelName } = allocation;\n\n const tunnelResponse = yield* tunnels.list({ name: tunnelName, isDeleted: false }).pipe(\n Effect.map((tunnels) => tunnels.result),\n Effect.map(Arr.findFirst((tunnel) => tunnel.name === tunnelName)),\n Effect.flatMap(\n Option.match({\n onSome: (tunnel) => Effect.succeed(tunnel),\n onNone: () => tunnels.create({ name: tunnelName, configSrc: \"cloudflare\" }),\n }),\n ),\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"ensure-tunnel\",\n hostname,\n tunnelName,\n cause,\n }),\n ),\n );\n if (!tunnelResponse.id || tunnelResponse.name !== tunnelName) {\n return yield* new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"validate-tunnel-response\",\n hostname,\n tunnelName,\n ...(tunnelResponse.id ? { returnedTunnelId: tunnelResponse.id } : {}),\n ...(tunnelResponse.name ? { returnedTunnelName: tunnelResponse.name } : {}),\n });\n }\n const tunnel = { id: tunnelResponse.id, name: tunnelResponse.name };\n yield* allocations\n .recordTunnel({\n userId: input.userId,\n environmentId: input.environmentId,\n tunnelId: tunnel.id,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"record-tunnel\",\n hostname,\n tunnelName,\n tunnelId: tunnel.id,\n cause,\n }),\n ),\n );\n\n yield* tunnels\n .putConfiguration(tunnel.id, {\n ingress: [\n {\n hostname,\n service: formatOriginService(input.origin),\n },\n { service: \"http_status:404\" },\n ],\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"configure-tunnel\",\n hostname,\n tunnelName,\n tunnelId: tunnel.id,\n cause,\n }),\n ),\n );\n\n const dnsRecord = {\n type: \"CNAME\",\n name: hostname,\n content: `${tunnel.id}.cfargotunnel.com`,\n ttl: 1,\n proxied: true,\n } as const;\n\n const dnsRecordId = yield* ensureDnsRecord(hostname, allocation.dnsRecordId, dnsRecord).pipe(\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"ensure-dns-record\",\n hostname,\n tunnelName,\n tunnelId: tunnel.id,\n ...(allocation.dnsRecordId === null ? {} : { dnsRecordId: allocation.dnsRecordId }),\n cause,\n }),\n ),\n );\n yield* allocations\n .recordDns({\n userId: input.userId,\n environmentId: input.environmentId,\n dnsRecordId,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"record-dns\",\n hostname,\n tunnelName,\n tunnelId: tunnel.id,\n dnsRecordId,\n cause,\n }),\n ),\n );\n\n const connectorToken = yield* tunnels.getToken(tunnel.id).pipe(\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"get-tunnel-token\",\n hostname,\n tunnelName,\n tunnelId: tunnel.id,\n dnsRecordId,\n cause,\n }),\n ),\n );\n yield* allocations\n .markReady({\n userId: input.userId,\n environmentId: input.environmentId,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new ManagedEndpointProvisioningFailed({\n userId: input.userId,\n environmentId: input.environmentId,\n stage: \"mark-allocation-ready\",\n hostname,\n tunnelName,\n tunnelId: tunnel.id,\n dnsRecordId,\n cause,\n }),\n ),\n );\n\n return {\n endpoint: managedEndpointForHostname(hostname),\n runtime: {\n providerKind: \"cloudflare_tunnel\",\n connectorToken,\n tunnelId: tunnel.id,\n tunnelName: tunnel.name,\n },\n } satisfies ManagedEndpointProvisioningResult;", + "checksum": "d9dfb0d6ddc6c065244090282008cc23ad237b8f854c37b6ae395981feaef571" + }, + "connect-environment-runtime-tunnel": { + "id": "connect-environment-runtime-tunnel", + "path": "apps/server/src/cloud/ManagedEndpointRuntime.ts", + "start": 187, + "end": 287, + "language": "typescript", + "label": "Environment-owned managed tunnel child supervision", + "code": " reconcileConfig = Effect.fn(\"CloudManagedEndpointRuntime.reconcileConfig\")(function* (config) {\n if (!config || config.providerKind !== \"cloudflare_tunnel\") {\n yield* stopActive;\n return config\n ? { status: \"unsupported\", providerKind: config.providerKind }\n : { status: \"disabled\" };\n }\n\n const nextConfigKey = runtimeConfigKey(config);\n const active = yield* Ref.get(activeRef);\n if (active?.configKey === nextConfigKey) {\n const isRunning = yield* active.child.isRunning.pipe(Effect.orElseSucceed(() => false));\n if (isRunning) {\n return {\n status: \"running\",\n providerKind: \"cloudflare_tunnel\",\n pid: Number(active.child.pid),\n ...(active.config.tunnelId ? { tunnelId: active.config.tunnelId } : {}),\n ...(active.config.tunnelName ? { tunnelName: active.config.tunnelName } : {}),\n } satisfies CloudManagedEndpointRuntimeStatus;\n }\n }\n\n yield* stopActive;\n\n const executable = yield* relayClient.resolve;\n if (executable.status !== \"available\") {\n return {\n status: \"failed\",\n providerKind: \"cloudflare_tunnel\",\n reason:\n executable.status === \"unsupported\"\n ? `Relay client is unsupported on ${executable.platform}-${executable.arch}.`\n : \"The relay client is not installed.\",\n ...(config.tunnelId ? { tunnelId: config.tunnelId } : {}),\n ...(config.tunnelName ? { tunnelName: config.tunnelName } : {}),\n } satisfies CloudManagedEndpointRuntimeStatus;\n }\n\n const connectorScope = yield* Scope.make(\"sequential\");\n const child = yield* spawner\n .spawn(\n ChildProcess.make(executable.executablePath, [\"tunnel\", \"run\"], {\n detached: false,\n env: {\n ...process.env,\n TUNNEL_TOKEN: config.connectorToken,\n },\n shell: false,\n stderr: \"pipe\",\n stdout: \"pipe\",\n }),\n )\n .pipe(\n Effect.provideService(Scope.Scope, connectorScope),\n Effect.tap((child) =>\n Effect.logInfo(\"Relay client process started; waiting for tunnel connection\", {\n pid: Number(child.pid),\n tunnelId: config.tunnelId,\n tunnelName: config.tunnelName,\n }),\n ),\n Effect.catch((cause) =>\n Effect.logWarning(\"Failed to start relay client\", {\n cause,\n tunnelId: config.tunnelId,\n tunnelName: config.tunnelName,\n }).pipe(\n Effect.andThen(Scope.close(connectorScope, Exit.void).pipe(Effect.ignore)),\n Effect.as({\n status: \"failed\",\n providerKind: \"cloudflare_tunnel\",\n reason: String(cause),\n ...(config.tunnelId ? { tunnelId: config.tunnelId } : {}),\n ...(config.tunnelName ? { tunnelName: config.tunnelName } : {}),\n } satisfies CloudManagedEndpointRuntimeStatus),\n ),\n ),\n );\n\n if (\"status\" in child && child.status === \"failed\") {\n return child;\n }\n\n if (!(\"status\" in child)) {\n const connector = {\n child,\n scope: connectorScope,\n configKey: nextConfigKey,\n config,\n } satisfies ActiveConnector;\n yield* Ref.set(activeRef, connector);\n yield* Effect.forkIn(observeConnectorOutput(connector), connectorScope);\n yield* Effect.forkIn(superviseConnector(connector), connectorScope);\n return {\n status: \"running\",\n providerKind: \"cloudflare_tunnel\",\n pid: Number(child.pid),\n ...(config.tunnelId ? { tunnelId: config.tunnelId } : {}),\n ...(config.tunnelName ? { tunnelName: config.tunnelName } : {}),\n } satisfies CloudManagedEndpointRuntimeStatus;", + "checksum": "15a5736f8e3481d7117acb0331cf0d9969a2bf86bf2755734a1f3af6036df8b2" + }, + "connect-relay-environment-mint": { + "id": "connect-relay-environment-mint", + "path": "infra/relay/src/environments/EnvironmentConnector.ts", + "start": 541, + "end": 670, + "language": "typescript", + "label": "Proof-key-bound relay mint request and environment bootstrap credential", + "code": " connect: Effect.fn(\"relay.environment_connector.connect\")(function* (input) {\n yield* Effect.annotateCurrentSpan({\n \"relay.environment_id\": input.environmentId,\n \"relay.operation\": \"connect\",\n \"relay.connect.has_device_id\": input.deviceId !== undefined,\n ...(input.deviceId ? { \"relay.mobile.device_id\": input.deviceId } : {}),\n });\n if (input.clientProofKeyThumbprint.trim().length === 0) {\n return yield* new EnvironmentConnectNotAuthorized({\n environmentId: input.environmentId,\n operation: \"connect\",\n reason: \"client_proof_key_thumbprint_missing\",\n });\n }\n const { link, allocation } = yield* Effect.all(\n {\n link: links.getForUser(input),\n allocation: allocations.get(input),\n },\n { concurrency: 2 },\n );\n if (!link) {\n return yield* new EnvironmentConnectNotAuthorized({\n environmentId: input.environmentId,\n operation: \"connect\",\n reason: \"environment_link_not_found\",\n });\n }\n const endpoint = yield* resolveManagedEndpoint({\n operation: \"connect\",\n link,\n allocation,\n });\n const now = yield* DateTime.now;\n const expiresAt = DateTime.add(now, { minutes: 2 });\n const nonce = yield* crypto.randomUUIDv4.pipe(\n Effect.mapError(\n (cause) =>\n new EnvironmentMintRequestFailed({\n environmentId: input.environmentId,\n operation: \"connect\",\n cause,\n }),\n ),\n );\n const payload = {\n iss: relayIssuer,\n aud: `t3-env:${link.environmentId}`,\n sub: input.userId,\n jti: yield* crypto.randomUUIDv4.pipe(\n Effect.mapError(\n (cause) =>\n new EnvironmentMintRequestFailed({\n environmentId: input.environmentId,\n operation: \"connect\",\n cause,\n }),\n ),\n ),\n iat: Math.floor(now.epochMilliseconds / 1_000),\n exp: Math.floor(expiresAt.epochMilliseconds / 1_000),\n environmentId: link.environmentId,\n clientProofKeyThumbprint: input.clientProofKeyThumbprint,\n cnf: { jkt: input.clientProofKeyThumbprint },\n ...(input.deviceId ? { deviceId: input.deviceId } : {}),\n nonce,\n scope: [\"environment:connect\"],\n } satisfies RelayCloudMintCredentialProofPayload;\n const proof = yield* signRelayJwt({\n privateKey: Redacted.value(settings.cloudMintPrivateKey),\n typ: RELAY_MINT_REQUEST_TYP,\n payload,\n }).pipe(\n Effect.mapError(\n (cause) =>\n new EnvironmentMintRequestFailed({\n environmentId: input.environmentId,\n operation: \"connect\",\n cause,\n }),\n ),\n );\n const environmentClient = yield* makeEnvironmentClient(endpoint.httpBaseUrl);\n const decoded = yield* environmentClient.connect\n .t3MintCredential({ payload: { proof } })\n .pipe(\n withoutRedirects,\n Effect.mapError(\n (cause) =>\n new EnvironmentMintRequestFailed({\n environmentId: input.environmentId,\n operation: \"connect\",\n cause,\n }),\n ),\n Effect.timeoutOption(Duration.millis(ENVIRONMENT_MINT_REQUEST_TIMEOUT_MS)),\n Effect.flatMap(\n Option.match({\n onNone: () =>\n Effect.fail(\n new EnvironmentMintRequestTimedOut({\n environmentId: input.environmentId,\n timeoutMs: ENVIRONMENT_MINT_REQUEST_TIMEOUT_MS,\n }),\n ),\n onSome: Effect.succeed,\n }),\n ),\n );\n const verified = yield* verifyEnvironmentResponse({\n response: decoded,\n environmentId: input.environmentId,\n requestNonce: nonce,\n clientProofKeyThumbprint: input.clientProofKeyThumbprint,\n environmentPublicKeys: [link.environmentPublicKey],\n relayIssuer,\n nowEpochSeconds: Math.floor(now.epochMilliseconds / 1_000),\n });\n if (!verified) {\n return yield* new EnvironmentMintResponseInvalid({\n environmentId: input.environmentId,\n operation: \"connect\",\n });\n }\n return {\n environmentId: link.environmentId,\n endpoint,\n credential: decoded.credential,\n expiresAt: decoded.expiresAt,\n };", + "checksum": "87e768757d71f7890b3a25324faae60572ccb16545a28d7fe42df583c9eebd6b" + }, + "dpop-validation": { + "id": "dpop-validation", + "path": "packages/shared/src/dpop.ts", + "start": 1, + "end": 175, + "language": "typescript", + "label": "DPoP signature, target, token hash, and time validation", + "code": "import { p256 } from \"@noble/curves/nist\";\nimport { sha256 } from \"@noble/hashes/sha2\";\nimport * as Encoding from \"effect/Encoding\";\nimport * as Option from \"effect/Option\";\nimport * as Result from \"effect/Result\";\nimport * as Schema from \"effect/Schema\";\n\nimport { DpopPublicJwk as DpopPublicJwkSchema, normalizeDpopHtu } from \"./dpopCommon.ts\";\nimport type { DpopPublicJwk as DpopPublicJwkType } from \"./dpopCommon.ts\";\nimport { stableStringify } from \"./relaySigning.ts\";\n\nconst DPOP_TYP = \"dpop+jwt\";\nconst DPOP_ALG = \"ES256\";\nconst DEFAULT_MAX_AGE_SECONDS = 300;\n\nexport const DpopPublicJwk = DpopPublicJwkSchema;\nexport type DpopPublicJwk = DpopPublicJwkType;\nexport { normalizeDpopHtu };\n\nconst DpopJwtHeaderPublicJwk = Schema.Struct({\n ...DpopPublicJwkSchema.fields,\n d: Schema.optionalKey(Schema.Never),\n});\n\nconst DpopJwtHeaderJson = Schema.fromJsonString(\n Schema.Struct({\n typ: Schema.Literal(DPOP_TYP),\n alg: Schema.Literal(DPOP_ALG),\n jwk: DpopJwtHeaderPublicJwk,\n }),\n);\nconst decodeDpopJwtHeaderJson = Schema.decodeUnknownOption(DpopJwtHeaderJson);\n\nconst DpopJwtPayloadJson = Schema.fromJsonString(\n Schema.Struct({\n htm: Schema.String.check(Schema.isNonEmpty()),\n htu: Schema.String.check(Schema.isNonEmpty()),\n jti: Schema.String.check(Schema.isNonEmpty()),\n iat: Schema.Int,\n ath: Schema.optionalKey(Schema.String),\n }),\n);\nconst decodeDpopJwtPayloadJson = Schema.decodeUnknownOption(DpopJwtPayloadJson);\n\nexport type DpopVerificationResult =\n | {\n readonly ok: true;\n readonly thumbprint: string;\n readonly jti: string;\n readonly iat: number;\n }\n | {\n readonly ok: false;\n readonly reason: string;\n };\n\nfunction base64UrlToBytes(value: string): Uint8Array {\n return Result.getOrThrow(Encoding.decodeBase64Url(value));\n}\n\nfunction decodeBase64UrlDpopJwtHeader(value: string) {\n return decodeDpopJwtHeaderJson(Result.getOrThrow(Encoding.decodeBase64UrlString(value)));\n}\n\nfunction decodeBase64UrlDpopJwtPayload(value: string) {\n return decodeDpopJwtPayloadJson(Result.getOrThrow(Encoding.decodeBase64UrlString(value)));\n}\n\nfunction dpopThumbprintInput(jwk: DpopPublicJwkType): string {\n return stableStringify({\n crv: jwk.crv,\n kty: jwk.kty,\n x: jwk.x,\n y: jwk.y,\n });\n}\n\nexport function computeDpopJwkThumbprint(jwk: DpopPublicJwkType): string {\n return Encoding.encodeBase64Url(sha256(new TextEncoder().encode(dpopThumbprintInput(jwk))));\n}\n\nexport function computeDpopAccessTokenHash(accessToken: string): string {\n return Encoding.encodeBase64Url(sha256(new TextEncoder().encode(accessToken)));\n}\n\nfunction publicKeyBytesFromJwk(jwk: DpopPublicJwkType): Uint8Array {\n const x = base64UrlToBytes(jwk.x);\n const y = base64UrlToBytes(jwk.y);\n if (x.length !== 32 || y.length !== 32) {\n throw new Error(\"Invalid P-256 public key coordinate length.\");\n }\n const publicKey = new Uint8Array(65);\n publicKey[0] = 0x04;\n publicKey.set(x, 1);\n publicKey.set(y, 33);\n return publicKey;\n}\n\nexport function verifyDpopProof(input: {\n readonly proof: string | null | undefined;\n readonly method: string;\n readonly url: string;\n readonly nowEpochSeconds: number;\n readonly expectedThumbprint?: string;\n readonly expectedAccessToken?: string;\n readonly maxAgeSeconds?: number;\n}): DpopVerificationResult {\n if (!input.proof?.trim()) {\n return { ok: false, reason: \"Missing DPoP proof.\" };\n }\n\n const parts = input.proof.split(\".\");\n if (parts.length !== 3 || !parts[0] || !parts[1] || !parts[2]) {\n return { ok: false, reason: \"Invalid DPoP compact JWT.\" };\n }\n\n try {\n const header = decodeBase64UrlDpopJwtHeader(parts[0]);\n const payload = decodeBase64UrlDpopJwtPayload(parts[1]);\n if (Option.isNone(header)) {\n return { ok: false, reason: \"Invalid DPoP JWT header.\" };\n }\n if (Option.isNone(payload)) {\n return { ok: false, reason: \"Invalid DPoP JWT payload.\" };\n }\n\n const thumbprint = computeDpopJwkThumbprint(header.value.jwk);\n if (input.expectedThumbprint && thumbprint !== input.expectedThumbprint) {\n return { ok: false, reason: \"DPoP key thumbprint mismatch.\" };\n }\n if (payload.value.htm.toUpperCase() !== input.method.toUpperCase()) {\n return { ok: false, reason: \"DPoP method mismatch.\" };\n }\n const normalizedHtu = normalizeDpopHtu(input.url);\n if (normalizedHtu === null || payload.value.htu !== normalizedHtu) {\n return { ok: false, reason: \"DPoP URL mismatch.\" };\n }\n if (input.expectedAccessToken) {\n const expectedAth = computeDpopAccessTokenHash(input.expectedAccessToken);\n if (payload.value.ath !== expectedAth) {\n return { ok: false, reason: \"DPoP access token hash mismatch.\" };\n }\n }\n\n const maxAgeSeconds = input.maxAgeSeconds ?? DEFAULT_MAX_AGE_SECONDS;\n if (\n payload.value.iat > input.nowEpochSeconds + 5 ||\n input.nowEpochSeconds - payload.value.iat > maxAgeSeconds\n ) {\n return { ok: false, reason: \"DPoP proof is outside the allowed time window.\" };\n }\n\n const signature = base64UrlToBytes(parts[2]);\n const signatureInputHash = sha256(new TextEncoder().encode(`${parts[0]}.${parts[1]}`));\n const verified = p256.verify(\n signature,\n signatureInputHash,\n publicKeyBytesFromJwk(header.value.jwk),\n {\n prehash: false,\n format: \"compact\",\n },\n );\n return verified\n ? {\n ok: true,\n thumbprint,\n jti: payload.value.jti,\n iat: payload.value.iat,\n }\n : { ok: false, reason: \"Invalid DPoP signature.\" };\n } catch {\n return { ok: false, reason: \"Invalid DPoP proof.\" };\n }\n}", + "checksum": "a201cbe8739a6da8f782df3f52c70e27b8ff61b5dcdf9de50075955966c8bf43" + }, + "managed-relay-dpop-authorization": { + "id": "managed-relay-dpop-authorization", + "path": "packages/client-runtime/src/authorization/service.ts", + "start": 180, + "end": 299, + "language": "typescript", + "label": "Managed relay bootstrap becomes a distinct DPoP-bound environment session", + "code": " const authorizeDpop = Effect.fn(\"clientRuntime.connection.remote.authorizeDpop\")(\n function* (input: {\n readonly expectedEnvironmentId: Parameters<\n RemoteEnvironmentAuthorization[\"Service\"][\"authorizeDpop\"]\n >[0][\"expectedEnvironmentId\"];\n readonly obtainBootstrap: Parameters<\n RemoteEnvironmentAuthorization[\"Service\"][\"authorizeDpop\"]\n >[0][\"obtainBootstrap\"];\n }) {\n const thumbprint = yield* signer.thumbprint.pipe(\n Effect.mapError(\n () =>\n new ConnectionBlockedError({\n reason: \"configuration\",\n detail: \"Could not load the environment authorization key.\",\n }),\n ),\n Effect.withSpan(\"environment.authorization.dpopKey.resolve\"),\n );\n const now = yield* Clock.currentTimeMillis;\n const cached = yield* tokenStore\n .get(input.expectedEnvironmentId)\n .pipe(Effect.withSpan(\"environment.authorization.accessToken.cache\"));\n if (\n Option.isSome(cached) &&\n cached.value.environmentId === input.expectedEnvironmentId &&\n cached.value.dpopThumbprint === thumbprint &&\n cached.value.expiresAtEpochMs > now + TOKEN_EXPIRY_SAFETY_MARGIN_MS\n ) {\n yield* Effect.annotateCurrentSpan({\n \"connection.remote_token_cache\": \"hit\",\n });\n const cachedSocket = yield* createDpopSocketUrl(\n cached.value,\n CACHED_ENDPOINT_SOCKET_TIMEOUT_MS,\n ).pipe(Effect.result);\n if (Result.isSuccess(cachedSocket)) {\n return {\n environmentId: cached.value.environmentId,\n label: cached.value.label,\n httpBaseUrl: cached.value.endpoint.httpBaseUrl,\n socketUrl: cachedSocket.success,\n httpAuthorization: {\n _tag: \"Dpop\" as const,\n accessToken: cached.value.accessToken,\n },\n };\n }\n if (cachedSocket.failure._tag === \"ConnectionBlockedError\") {\n return yield* mapDpopSocketError(cachedSocket.failure);\n }\n yield* tokenStore\n .remove(input.expectedEnvironmentId)\n .pipe(Effect.withSpan(\"environment.authorization.accessToken.remove\"));\n }\n\n yield* Effect.annotateCurrentSpan({\n \"connection.remote_token_cache\": \"miss\",\n });\n const bootstrap = yield* input.obtainBootstrap;\n const descriptor = yield* fetchDescriptor(bootstrap.endpoint.httpBaseUrl).pipe(\n Effect.provideService(HttpClient.HttpClient, httpClient),\n Effect.withSpan(\"environment.authorization.descriptor\"),\n );\n if (descriptor.environmentId !== input.expectedEnvironmentId) {\n return yield* environmentMismatchError({\n expected: input.expectedEnvironmentId,\n actual: descriptor.environmentId,\n });\n }\n const bootstrapProof = yield* signer\n .createProof({\n method: \"POST\",\n url: environmentEndpointUrl(bootstrap.endpoint.httpBaseUrl, \"/oauth/token\"),\n })\n .pipe(\n Effect.mapError(\n () =>\n new ConnectionBlockedError({\n reason: \"configuration\",\n detail: \"Could not create the environment authorization proof.\",\n }),\n ),\n );\n const access = yield* exchangeRemoteDpopAccessToken({\n httpBaseUrl: bootstrap.endpoint.httpBaseUrl,\n credential: bootstrap.credential,\n dpopProof: bootstrapProof,\n scopes: presentation.scopes,\n clientMetadata: presentation.metadata,\n }).pipe(\n Effect.mapError(mapRemoteEnvironmentError),\n Effect.provideService(HttpClient.HttpClient, httpClient),\n Effect.withSpan(\"environment.authorization.accessToken.exchange\"),\n );\n const issuedAt = yield* Clock.currentTimeMillis;\n const token = new TokenStore.RemoteDpopAccessToken({\n environmentId: descriptor.environmentId,\n label: descriptor.label,\n endpoint: bootstrap.endpoint,\n accessToken: access.access_token,\n expiresAtEpochMs: issuedAt + access.expires_in * 1_000,\n dpopThumbprint: thumbprint,\n });\n const socketUrl = yield* createDpopSocketUrl(token).pipe(Effect.mapError(mapDpopSocketError));\n yield* tokenStore\n .put(token)\n .pipe(Effect.withSpan(\"environment.authorization.accessToken.persist\"));\n return {\n environmentId: descriptor.environmentId,\n label: descriptor.label,\n httpBaseUrl: bootstrap.endpoint.httpBaseUrl,\n socketUrl,\n httpAuthorization: {\n _tag: \"Dpop\" as const,\n accessToken: token.accessToken,\n },\n };\n },\n );", + "checksum": "6815918aa0e64771f373da90aa947033e4b180c8a4d9c6308afdacebd6880dbb" + }, + "reconnect-environment-registry": { + "id": "reconnect-environment-registry", + "path": "packages/client-runtime/src/connection/registry.ts", + "start": 156, + "end": 289, + "language": "typescript", + "label": "Environment-scoped runtime registry and lease replacement", + "code": " const entries =\n yield* SubscriptionRef.make>(initialEntries);\n const networkStatus = yield* SubscriptionRef.make(yield* connectivity.status);\n const serviceScopes = yield* SubscriptionRef.make<\n ReadonlyMap\n >(new Map());\n const platformEnvironmentIds = yield* Ref.make>(new Set());\n const persistedTargetsByEnvironment = yield* Ref.make<\n ReadonlyMap\n >(new Map(persistedTargets.map((target) => [target.environmentId, target])));\n interface LeaseLock {\n readonly semaphore: Semaphore.Semaphore;\n readonly users: number;\n }\n\n const leaseLocks = yield* Ref.make>(new Map());\n const leaseLocksGuard = yield* Semaphore.make(1);\n const started = yield* Ref.make(false);\n\n const withLeaseLock = (\n environmentId: EnvironmentId,\n effect: Effect.Effect,\n ): Effect.Effect =>\n Effect.acquireUseRelease(\n leaseLocksGuard.withPermits(1)(\n Effect.gen(function* () {\n const current = yield* Ref.get(leaseLocks);\n const existing = current.get(environmentId);\n if (existing !== undefined) {\n yield* Ref.set(\n leaseLocks,\n new Map(current).set(environmentId, {\n semaphore: existing.semaphore,\n users: existing.users + 1,\n }),\n );\n return existing.semaphore;\n }\n const semaphore = yield* Semaphore.make(1);\n yield* Ref.set(leaseLocks, new Map(current).set(environmentId, { semaphore, users: 1 }));\n return semaphore;\n }),\n ),\n (semaphore) => semaphore.withPermits(1)(effect),\n (semaphore) =>\n leaseLocksGuard.withPermits(1)(\n Ref.update(leaseLocks, (current) => {\n const existing = current.get(environmentId);\n if (existing === undefined || existing.semaphore !== semaphore) {\n return current;\n }\n const next = new Map(current);\n if (existing.users === 1) {\n next.delete(environmentId);\n } else {\n next.set(environmentId, {\n semaphore,\n users: existing.users - 1,\n });\n }\n return next;\n }),\n ),\n ).pipe(Effect.withSpan(\"EnvironmentRegistry.withLeaseLock\"));\n\n const getEntry = Effect.fn(\"EnvironmentRegistry.getEntry\")(function* (\n environmentId: EnvironmentId,\n ) {\n const entry = (yield* SubscriptionRef.get(entries)).get(environmentId);\n if (entry === undefined) {\n return yield* new EnvironmentNotRegisteredError({\n environmentId,\n });\n }\n return entry;\n });\n\n const closeServiceScope = Effect.fn(\"EnvironmentRegistry.closeServiceScope\")(function* (\n environmentId: EnvironmentId,\n ) {\n const current = yield* SubscriptionRef.get(serviceScopes);\n const lease = current.get(environmentId);\n if (lease === undefined) {\n return;\n }\n const next = new Map(current);\n next.delete(environmentId);\n yield* SubscriptionRef.set(serviceScopes, next);\n yield* Scope.close(lease.scope, Exit.void);\n });\n\n const createServiceScope = Effect.fn(\"EnvironmentRegistry.createServiceScope\")(\n (entry: ConnectionCatalogEntry) =>\n Effect.uninterruptible(\n Effect.gen(function* () {\n const environmentId = entry.target.environmentId;\n const scope = yield* Scope.make();\n const supervisor = yield* EnvironmentSupervisor.make(entry, {\n initiallyDesired: false,\n }).pipe(\n Effect.provideService(Connectivity.Connectivity, connectivity),\n Effect.provideService(ConnectionDriver.ConnectionDriver, driver),\n Effect.provideService(ConnectionWakeups.ConnectionWakeups, wakeups),\n Scope.provide(scope),\n Effect.onError(() => Scope.close(scope, Exit.void)),\n );\n yield* supervisor.connect;\n yield* SubscriptionRef.update(serviceScopes, (current) => {\n const next = new Map(current);\n next.set(environmentId, { entry, supervisor, scope });\n return next;\n });\n return supervisor;\n }),\n ),\n );\n\n const acquireSupervisor = Effect.fn(\"EnvironmentRegistry.acquireSupervisor\")(function* (\n environmentId: EnvironmentId,\n ) {\n return yield* withLeaseLock(\n environmentId,\n Effect.gen(function* () {\n const entry = yield* getEntry(environmentId);\n const existing = (yield* SubscriptionRef.get(serviceScopes)).get(environmentId);\n if (existing !== undefined) {\n if (Equal.equals(existing.entry, entry)) {\n return existing.supervisor;\n }\n yield* closeServiceScope(environmentId);\n }\n return yield* createServiceScope(entry);\n }),\n );", + "checksum": "12b74a7bf02c25c818e09218075f7ada2c45fbc08ff74ec48531c05611264fd3" + }, + "reconnect-scoped-environment-refs": { + "id": "reconnect-scoped-environment-refs", + "path": "packages/contracts/src/environment.ts", + "start": 31, + "end": 130, + "language": "typescript", + "label": "Environment descriptors and scoped project and thread references", + "code": "/** How a server can replace itself with another version when asked over RPC.\n New servers only advertise the stable launcher-backed \"boot-service\" path;\n \"respawn\" remains decodable for compatibility with older servers. */\nexport const ServerSelfUpdateMethod = Schema.Literals([\"boot-service\", \"respawn\"]);\nexport type ServerSelfUpdateMethod = typeof ServerSelfUpdateMethod.Type;\n\n/** What update path a client should offer for a server: one of the RPC\n self-update methods above, or \"desktop-managed\" when the backend's\n version belongs to the T3 Code desktop app supervising it — updating the\n app on that machine is the only way to update the server. */\nexport const ServerSelfUpdateCapability = Schema.Literals([\n \"boot-service\",\n \"respawn\",\n \"desktop-managed\",\n]);\nexport type ServerSelfUpdateCapability = typeof ServerSelfUpdateCapability.Type;\n\nexport const ExecutionEnvironmentCapabilities = Schema.Struct({\n repositoryIdentity: Schema.Boolean.pipe(Schema.withDecodingDefault(Effect.succeed(false))),\n connectionProbe: Schema.optionalKey(Schema.Boolean),\n /** Server exposes the pull-request list, detail, activity, diff, and mutation APIs. Absent on\n servers from before the pull-request workspace shipped, so clients must not probe them. */\n pullRequests: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.settle / thread.unsettle commands. Absent on\n pre-settlement servers, so clients treat missing as unsupported and\n never send the commands under version skew. */\n threadSettlement: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.snooze / thread.unsnooze commands. Same\n version-skew contract as threadSettlement. */\n threadSnooze: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.pin / thread.unpin commands. Same\n version-skew contract as threadSettlement. */\n threadPinning: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.pin.reorder (and orderKey on thread.pin).\n Same version-skew contract as threadSettlement. */\n threadPinReorder: Schema.optionalKey(Schema.Boolean),\n /** Server understands regenerateTitle on thread.meta.update. Absent on\n older servers, so clients hide the action instead of sending it. */\n threadTitleRegeneration: Schema.optionalKey(Schema.Boolean),\n /** The update path clients should offer for this server. Absent on\n servers that must be relaunched manually (dev checkouts, Windows\n foreground runs, pre-update servers). */\n serverSelfUpdate: Schema.optionalKey(ServerSelfUpdateCapability),\n /** Server can stream self-update progress before acknowledging the\n restart. Clients fall back to server.updateServer when absent. */\n serverSelfUpdateProgress: Schema.optionalKey(Schema.Boolean),\n /** Agent-activity publishes (push notifications and Live Activities)\n currently leave this environment: the publish opt-in is enabled and the\n relay link credentials exist. Clients skip seeding a Live Activity when\n this is false — no update would ever repaint it. Absent on older\n servers, which may still publish, so only an explicit false skips. */\n agentActivityPublishing: Schema.optionalKey(Schema.Boolean),\n});\nexport type ExecutionEnvironmentCapabilities = typeof ExecutionEnvironmentCapabilities.Type;\n\nexport const ExecutionEnvironmentDescriptor = Schema.Struct({\n environmentId: EnvironmentId,\n label: TrimmedNonEmptyString,\n platform: ExecutionEnvironmentPlatform,\n serverVersion: TrimmedNonEmptyString,\n capabilities: ExecutionEnvironmentCapabilities,\n});\nexport type ExecutionEnvironmentDescriptor = typeof ExecutionEnvironmentDescriptor.Type;\n\nexport const EnvironmentConnectionState = Schema.Literals([\n \"connecting\",\n \"connected\",\n \"disconnected\",\n \"error\",\n]);\nexport type EnvironmentConnectionState = typeof EnvironmentConnectionState.Type;\n\nexport const RepositoryIdentityLocator = Schema.Struct({\n source: Schema.Literal(\"git-remote\"),\n remoteName: TrimmedNonEmptyString,\n remoteUrl: TrimmedNonEmptyString,\n});\nexport type RepositoryIdentityLocator = typeof RepositoryIdentityLocator.Type;\n\nexport const RepositoryIdentity = Schema.Struct({\n canonicalKey: TrimmedNonEmptyString,\n locator: RepositoryIdentityLocator,\n rootPath: Schema.optionalKey(TrimmedNonEmptyString),\n displayName: Schema.optionalKey(TrimmedNonEmptyString),\n provider: Schema.optionalKey(TrimmedNonEmptyString),\n owner: Schema.optionalKey(TrimmedNonEmptyString),\n name: Schema.optionalKey(TrimmedNonEmptyString),\n});\nexport type RepositoryIdentity = typeof RepositoryIdentity.Type;\n\nexport const ScopedProjectRef = Schema.Struct({\n environmentId: EnvironmentId,\n projectId: ProjectId,\n});\nexport type ScopedProjectRef = typeof ScopedProjectRef.Type;\n\nexport const ScopedThreadRef = Schema.Struct({\n environmentId: EnvironmentId,\n threadId: ThreadId,\n});", + "checksum": "8adc3eeb2048647115e388b4fc57aea27ff94e4eeb613ad4a0bd5727d0c63d7e" + }, + "reconnect-supervisor-active-lease": { + "id": "reconnect-supervisor-active-lease", + "path": "packages/client-runtime/src/connection/supervisor.ts", + "start": 490, + "end": 615, + "language": "typescript", + "label": "Active prepared connection and RPC session lease lifecycle", + "code": " const runAttempt = Effect.fnUntraced(function* (\n attempt: number,\n generation: number,\n lastFailure: ConnectionAttemptError | null,\n pendingRetry: Option.Option,\n ) {\n yield* SubscriptionRef.set(prepared, Option.none());\n const establishment = yield* Effect.raceAllFirst([\n exitUnlessInterrupted(\n establishTracedConnection(attempt, generation, lastFailure, pendingRetry),\n ).pipe(\n Effect.map(\n (exit): EstablishmentEvent => ({\n _tag: \"Completed\",\n exit,\n }),\n ),\n ),\n waitForEstablishmentInterrupt().pipe(\n Effect.map(\n (resetRetry): EstablishmentEvent => ({\n _tag: \"Interrupted\",\n resetRetry,\n }),\n ),\n ),\n Effect.sleep(CONNECTION_ESTABLISHMENT_TIMEOUT).pipe(\n Effect.as({ _tag: \"TimedOut\" }),\n ),\n ]);\n\n if (establishment._tag === \"Interrupted\") {\n return {\n _tag: \"Interrupted\",\n established: false,\n stable: false,\n resetRetry: establishment.resetRetry,\n } satisfies AttemptOutcome;\n }\n if (establishment._tag === \"TimedOut\") {\n return {\n _tag: \"Failure\",\n established: false,\n stable: false,\n failure: {\n error: new ConnectionTransientError({\n reason: \"timeout\",\n detail: `${target.label} did not respond during connection setup.`,\n }),\n attemptSpan: Option.none(),\n },\n } satisfies AttemptOutcome;\n }\n if (Exit.isFailure(establishment.exit)) {\n const isUnexpectedDefect =\n !Cause.hasInterruptsOnly(establishment.exit.cause) &&\n !establishment.exit.cause.reasons.some(Cause.isFailReason);\n const outcome = failureFromExit(target, establishment.exit, false, false);\n if (isUnexpectedDefect) {\n const defect = establishment.exit.cause.reasons.find(Cause.isDieReason)?.defect;\n yield* Effect.logError(\"Connection attempt failed with an unexpected defect.\").pipe(\n Effect.annotateLogs({\n \"environment.id\": target.environmentId,\n \"environment.label\": target.label,\n \"cause.reason_count\": establishment.exit.cause.reasons.length,\n ...safeErrorLogAttributes(defect),\n }),\n );\n }\n return outcome;\n }\n\n const active = establishment.exit.value;\n const currentIntent = yield* Ref.get(intent);\n if (!currentIntent.desired || currentIntent.network === \"offline\") {\n return {\n _tag: \"Interrupted\",\n established: false,\n stable: false,\n resetRetry: false,\n } satisfies AttemptOutcome;\n }\n\n const connectedAt = yield* Clock.currentTimeMillis;\n yield* SubscriptionRef.set(prepared, Option.some(active.lease.prepared));\n yield* SubscriptionRef.set(session, Option.some(active.lease.session));\n yield* setState({\n desired: true,\n network: currentIntent.network,\n phase: \"connected\",\n stage: null,\n attempt,\n generation,\n lastFailure: null,\n retryAt: null,\n });\n\n const connectedExit = yield* Effect.raceFirst(\n active.lease.session.closed.pipe(\n Effect.mapError(\n (error): TracedAttemptFailure => ({\n error,\n attemptSpan: active.attemptSpan,\n }),\n ),\n ),\n monitorConnectedLease(active.lease).pipe(\n Effect.mapError(\n (error): TracedAttemptFailure => ({\n error,\n attemptSpan: active.attemptSpan,\n }),\n ),\n ),\n ).pipe(exitUnlessInterrupted);\n const connectedForMs = (yield* Clock.currentTimeMillis) - connectedAt;\n if (Exit.isSuccess(connectedExit)) {\n return {\n _tag: \"Interrupted\",\n established: true,\n stable: connectedForMs >= BACKOFF_RESET_AFTER_MS,\n resetRetry: connectedExit.value,\n } satisfies AttemptOutcome;\n }\n return failureFromExit(target, connectedExit, true, connectedForMs >= BACKOFF_RESET_AFTER_MS);\n }, Effect.ensuring(clearLease));", + "checksum": "8c24ef212e1baf658eabc67c2a00996ebc7dae1354bb2d441368ff58e4b90f15" + }, + "reconnect-supervisor-generation-loop": { + "id": "reconnect-supervisor-generation-loop", + "path": "packages/client-runtime/src/connection/supervisor.ts", + "start": 643, + "end": 755, + "language": "typescript", + "label": "Environment supervisor generation, offline, retry, and backoff loop", + "code": " const run = Effect.fnUntraced(function* () {\n let failureCount = 0;\n let generation = 0;\n let latestFailure: ConnectionAttemptError | null = null;\n let pendingRetry = Option.none();\n const resetRetryLadder = () => {\n failureCount = 0;\n pendingRetry = Option.none();\n };\n\n for (;;) {\n if (yield* Ref.getAndSet(resetRetryState, false)) {\n failureCount = 0;\n latestFailure = null;\n pendingRetry = Option.none();\n }\n const currentIntent = yield* Ref.get(intent);\n if (!currentIntent.desired) {\n resetRetryLadder();\n latestFailure = null;\n yield* clearLease;\n yield* setState(availableState(currentIntent, generation));\n yield* waitForSignal;\n continue;\n }\n if (currentIntent.network === \"offline\") {\n yield* clearLease;\n yield* setState(offlineState(currentIntent, generation, failureCount + 1, latestFailure));\n const applicationActivated = yield* waitForSignal;\n if (applicationActivated) {\n resetRetryLadder();\n }\n continue;\n }\n\n const attempt = failureCount + 1;\n const nextGeneration = generation + 1;\n const outcome: AttemptOutcome = yield* Effect.scoped(\n runAttempt(attempt, nextGeneration, latestFailure, pendingRetry),\n );\n // Consumed on every iteration so a stale marker can never leak into a\n // later, unrelated failure.\n const failedWakeProbe = yield* Ref.getAndSet(wakeProbeFailed, false);\n if (outcome.established) {\n generation = nextGeneration;\n if (outcome.stable) {\n resetRetryLadder();\n latestFailure = null;\n }\n }\n if (outcome._tag === \"Interrupted\") {\n if (outcome.resetRetry) {\n resetRetryLadder();\n }\n continue;\n }\n\n const attemptSpan: Option.Option = outcome.failure.attemptSpan;\n const error: ConnectionAttemptError = outcome.failure.error;\n latestFailure = error;\n if (error._tag === \"ConnectionBlockedError\") {\n const blockedIntent = yield* Ref.get(intent);\n yield* setState({\n desired: blockedIntent.desired,\n network: blockedIntent.network,\n phase: \"blocked\",\n stage: null,\n attempt,\n generation,\n lastFailure: error,\n retryAt: null,\n });\n const applicationActivated = yield* waitForSignal;\n if (applicationActivated) {\n resetRetryLadder();\n }\n continue;\n }\n\n if (failedWakeProbe) {\n // The wake probe found a dead transport while the user is returning to\n // the app, so reconnect immediately instead of sleeping the first\n // backoff rung. Only this first attempt skips the ladder; if it fails\n // too, normal backoff resumes.\n resetRetryLadder();\n yield* setState(connectingState(yield* Ref.get(intent), generation, 1, error));\n continue;\n }\n\n failureCount += 1;\n const delayMs = retryDelayMs(failureCount - 1);\n pendingRetry = Option.map(attemptSpan, (previousAttempt) => ({\n previousAttempt,\n failureCount,\n delayMs,\n reason: error.reason,\n }));\n const failedIntent = yield* Ref.get(intent);\n yield* setState({\n desired: failedIntent.desired,\n network: failedIntent.network,\n phase: \"backoff\",\n stage: null,\n attempt,\n generation,\n lastFailure: error,\n retryAt: (yield* Clock.currentTimeMillis) + delayMs,\n });\n const applicationActivated = yield* waitForRetrySignal(delayMs);\n if (applicationActivated) {\n resetRetryLadder();\n }\n }", + "checksum": "c05d5d84a1e4a46eb365fbb096528c45b5defa3f110b2d0e7c7a56f19d0e21e5" + }, + "reconnect-shell-authoritative-refresh": { + "id": "reconnect-shell-authoritative-refresh", + "path": "packages/client-runtime/src/state/shell.ts", + "start": 138, + "end": 254, + "language": "typescript", + "label": "Shell cache, authoritative refresh, cursor, and synchronization boundary", + "code": " const applyItem = Effect.fn(\"EnvironmentShellState.applyItem\")(function* (\n item: OrchestrationShellStreamItem,\n ) {\n if (item.kind === \"synchronized\") {\n yield* Ref.set(awaitingCompletion, false);\n yield* SubscriptionRef.update(state, (current) =>\n Option.isSome(current.snapshot)\n ? { ...current, status: \"live\" as const, error: Option.none() }\n : current,\n );\n return;\n }\n\n const current = yield* SubscriptionRef.get(state);\n const nextSnapshot =\n item.kind === \"snapshot\"\n ? item.snapshot\n : Option.match(current.snapshot, {\n onNone: () => null,\n onSome: (snapshot) =>\n item.sequence > snapshot.snapshotSequence\n ? applyShellStreamEvent(snapshot, item)\n : snapshot,\n });\n if (nextSnapshot === null) {\n return;\n }\n\n const waiting = yield* Ref.get(awaitingCompletion);\n yield* SubscriptionRef.set(state, {\n snapshot: Option.some(nextSnapshot),\n status: waiting ? \"synchronizing\" : \"live\",\n error: Option.none(),\n });\n if (item.kind === \"snapshot\") {\n const session = yield* Ref.get(activeSubscriptionSession);\n if (session !== null) {\n yield* Ref.set(lastAuthoritativeSession, session);\n }\n }\n yield* Queue.offer(persistence, nextSnapshot);\n });\n\n const foregroundResubscriptions = Option.match(wakeups, {\n onNone: () => Stream.never,\n onSome: (service) =>\n service.changes.pipe(Stream.filter(ConnectionWakeups.shouldResubscribeAfterWakeup)),\n });\n\n yield* setSynchronizing;\n yield* Effect.forkScoped(\n subscribeDynamic(\n ORCHESTRATION_WS_METHODS.subscribeShell,\n Effect.fn(\"EnvironmentShellState.makeSubscribeInput\")(function* (session) {\n yield* Ref.set(activeSubscriptionSession, session);\n const supportsCompletionMarker = yield* session.initialConfig.pipe(\n Effect.map((config) => config.shellResumeCompletionMarker === true),\n Effect.orElseSucceed(() => false),\n );\n yield* Ref.set(awaitingCompletion, supportsCompletionMarker);\n yield* setSynchronizing;\n\n // Foreground resubscriptions on the same live session can resume from\n // the in-memory cursor. A new session reloads the authoritative HTTP\n // snapshot so a valid cursor cannot preserve incomplete cached data.\n const hasAuthoritativeSnapshot = (yield* Ref.get(lastAuthoritativeSession)) === session;\n let canResume = hasAuthoritativeSnapshot;\n let current = yield* SubscriptionRef.get(state);\n if (!hasAuthoritativeSnapshot || Option.isNone(current.snapshot)) {\n const prepared = yield* SubscriptionRef.get(supervisor.prepared).pipe(\n Effect.flatMap(\n Option.match({\n onSome: Effect.succeed,\n onNone: () =>\n SubscriptionRef.changes(supervisor.prepared).pipe(\n Stream.filter(Option.isSome),\n Stream.map((value) => value.value),\n Stream.runHead,\n Effect.map(Option.getOrThrow),\n ),\n }),\n ),\n );\n const httpSnapshot = yield* snapshotLoader.load(prepared);\n if (Option.isSome(httpSnapshot)) {\n yield* applyItem({ kind: \"snapshot\", snapshot: httpSnapshot.value });\n canResume = true;\n current = yield* SubscriptionRef.get(state);\n }\n }\n\n // If the authoritative refresh failed, omit the cached cursor so the\n // socket fallback sends a complete snapshot for this new session.\n if (!canResume || Option.isNone(current.snapshot)) {\n return supportsCompletionMarker ? { requestCompletionMarker: true as const } : {};\n }\n if (!supportsCompletionMarker) {\n // Without a completion marker there is no synchronized signal for a\n // resumed subscription, so report live immediately, like threads.\n yield* SubscriptionRef.update(state, (value) => ({\n ...value,\n status: \"live\" as const,\n error: Option.none(),\n }));\n }\n return {\n afterSequence: current.snapshot.value.snapshotSequence,\n ...(supportsCompletionMarker ? { requestCompletionMarker: true as const } : {}),\n };\n }),\n {\n onExpectedFailure: (cause) => setStreamError(Cause.squash(cause)),\n retryExpectedFailureAfter: \"250 millis\",\n resubscribe: foregroundResubscriptions,\n },\n ).pipe(Stream.runForEach(applyItem)),\n );", + "checksum": "1d9311e98f9edc09e36d4c35e425a45c477d9c51739b382efed42b285d41f19d" + }, + "reconnect-thread-snapshot-epoch": { + "id": "reconnect-thread-snapshot-epoch", + "path": "packages/client-runtime/src/state/threads.ts", + "start": 212, + "end": 338, + "language": "typescript", + "label": "Thread snapshot replacement and stale history epoch guard", + "code": " const setSynchronizing = SubscriptionRef.update(state, (current) =>\n current.status === \"deleted\"\n ? current\n : {\n ...current,\n status: \"synchronizing\" as const,\n error: Option.none(),\n },\n );\n const setReady = SubscriptionRef.update(state, (current) =>\n current.status === \"live\" || current.status === \"deleted\"\n ? current\n : {\n ...current,\n status: \"synchronizing\" as const,\n error: Option.none(),\n },\n );\n const setDisconnected = Effect.gen(function* () {\n yield* Ref.set(awaitingCompletion, false);\n // The capability belongs to the session that advertised it. During a\n // reconnect, a new prepared connection can exist before the new session's\n // config arrives; leaving the old value would let loadOlderTurns send\n // window parameters to a server that may not accept them (review\n // finding). makeSubscribeInput re-sets it from the next session's config.\n yield* Ref.set(paginationSupported, false);\n yield* SubscriptionRef.update(state, (current) => ({\n ...current,\n status: current.status === \"deleted\" ? current.status : statusWithoutLiveData(current.data),\n }));\n });\n const setStreamError = (cause: Cause.Cause) =>\n Ref.set(awaitingCompletion, false).pipe(\n Effect.andThen(\n SubscriptionRef.update(state, (current) => ({\n ...current,\n status:\n current.status === \"deleted\" ? current.status : statusWithoutLiveData(current.data),\n error: Option.some(formatThreadError(cause)),\n })),\n ),\n );\n\n const setThread = Effect.fn(\"EnvironmentThreadState.setThread\")(function* (\n thread: OrchestrationThread,\n // \"keep\" preserves the current page state (live events touch only loaded\n // recent turns); a snapshot or merged page passes its own page state.\n page: Option.Option | \"keep\",\n ) {\n const waiting = yield* Ref.get(awaitingCompletion);\n yield* SubscriptionRef.update(state, (current) => ({\n data: Option.some(thread),\n status: waiting ? (\"synchronizing\" as const) : (\"live\" as const),\n error: Option.none(),\n page: page === \"keep\" ? current.page : page,\n }));\n // Active threads can update many times per second and retain large tool\n // payloads. The server remains the source of truth while a turn is active;\n // persist once it settles so cache encoding stays off the streaming path.\n if (shouldPersistThread(thread)) {\n const snapshotSequence = yield* SubscriptionRef.get(lastSequence);\n const currentPage = yield* SubscriptionRef.get(state).pipe(Effect.map((value) => value.page));\n yield* Queue.offer(persistence, {\n snapshotSequence,\n thread,\n // Persist the window boundary with the window's content so a cache\n // restore can keep paging from where the loaded history ends.\n ...Option.match(currentPage, {\n onNone: () => ({}),\n onSome: (value) =>\n ({\n page: {\n beforeCursor: value.beforeCursor,\n hasMore: value.hasMore,\n snapshotSequence,\n },\n }) as const,\n }),\n });\n }\n });\n\n const setDeleted = Effect.fn(\"EnvironmentThreadState.setDeleted\")(function* () {\n yield* Ref.set(awaitingCompletion, false);\n yield* Ref.update(historyEpoch, (epoch) => epoch + 1);\n yield* SubscriptionRef.set(state, {\n data: Option.none(),\n status: \"deleted\",\n error: Option.none(),\n page: Option.none(),\n });\n yield* cache.removeThread(environmentId, threadId).pipe(\n Effect.catch((error) =>\n Effect.logWarning(\"Could not remove the cached thread.\").pipe(\n Effect.annotateLogs({\n environmentId,\n threadId,\n error: error.message,\n }),\n ),\n ),\n );\n });\n\n // Body of applyItem, running under applyLock.\n const applyItemLocked = Effect.fn(\"EnvironmentThreadState.applyItemLocked\")(function* (\n item: OrchestrationThreadStreamItem,\n ) {\n if (item.kind === \"synchronized\") {\n yield* Ref.set(awaitingCompletion, false);\n yield* SubscriptionRef.update(state, (current) =>\n Option.isSome(current.data) && current.status !== \"deleted\"\n ? { ...current, status: \"live\" as const, error: Option.none() }\n : current,\n );\n return;\n }\n\n if (item.kind === \"snapshot\") {\n // A fresh snapshot replaces all loaded history, including older\n // pages: a turn reverted while disconnected would otherwise survive\n // in the preserved history with no event left to remove it. The\n // epoch bump discards any older-page fetch racing this snapshot.\n yield* Ref.update(historyEpoch, (epoch) => epoch + 1);\n yield* SubscriptionRef.set(lastSequence, item.snapshot.snapshotSequence);\n yield* setThread(item.snapshot.thread, pageStateFromSnapshot(item.snapshot.page));\n return;", + "checksum": "a0068277d9fe46a387efaa9dbd9414d8eb43bb6f0d99cc1a8e353269d62d4838" + }, + "reconnect-mobile-background-demand": { + "id": "reconnect-mobile-background-demand", + "path": "apps/mobile/src/connection/background-activity.ts", + "start": 44, + "end": 115, + "language": "typescript", + "label": "Mobile background activity reports and retained environment demand", + "code": "export const mobileBackgroundActivityReporterLayer = Layer.effectDiscard(\n Effect.gen(function* () {\n const registry = yield* EnvironmentRegistry;\n const storage = yield* MobileStorage.MobileStorage;\n const clientId = yield* storage.loadOrCreateAgentAwarenessDeviceId.pipe(\n Effect.map((deviceId) => `mobile-${deviceId}`),\n Effect.orElseSucceed(() => \"ephemeral-mobile-client\"),\n );\n const reportRequests = yield* Queue.sliding(1);\n const requestReport = () => Queue.offerUnsafe(reportRequests, undefined);\n let appState = AppState.currentState;\n\n const report = Effect.gen(function* () {\n const observedAtMs = yield* Clock.currentTimeMillis;\n const active = appState === \"active\";\n const entries = yield* SubscriptionRef.get(registry.entries);\n yield* Effect.forEach(\n entries.keys(),\n (environmentId) =>\n registry\n .run(\n environmentId,\n request(WS_METHODS.serverReportClientActivity, {\n environmentId: environmentId as EnvironmentId,\n clientId,\n clientKind: \"mobile\",\n visible: active,\n focused: active,\n recentlyInteracted: active,\n appState: normalizeAppState(appState),\n scopes: [\n ...BASELINE_SCOPES,\n ...retainedMobileBackgroundScopes(environmentId as EnvironmentId),\n ],\n ttlMs: LEASE_TTL_MS,\n observedAt: DateTime.makeUnsafe(observedAtMs),\n }),\n )\n .pipe(Effect.ignore),\n { concurrency: \"unbounded\", discard: true },\n );\n }).pipe(Effect.withSpan(\"mobile.backgroundActivity.report\"));\n\n yield* Effect.acquireRelease(\n Effect.sync(() => {\n const removeScopeListener = onRetainedMobileBackgroundScopesChange(requestReport);\n const subscription = AppState.addEventListener(\"change\", (nextState) => {\n appState = nextState;\n requestReport();\n });\n return { removeScopeListener, subscription };\n }),\n ({ removeScopeListener, subscription }) =>\n Effect.sync(() => {\n removeScopeListener();\n subscription.remove();\n }),\n );\n yield* SubscriptionRef.changes(registry.entries).pipe(\n Stream.runForEach(() => Effect.sync(requestReport)),\n Effect.forkScoped,\n );\n yield* Stream.fromQueue(reportRequests).pipe(\n Stream.debounce(\"250 millis\"),\n Stream.runForEach(() => report),\n Effect.forkScoped,\n );\n yield* Effect.sync(requestReport).pipe(\n Effect.repeat(Schedule.spaced(`${REPORT_INTERVAL_MS} millis`)),\n Effect.forkScoped,\n );\n }),", + "checksum": "1ee6a99a5ee47b441952a1ce0fcd1ed9ae24e67ae35ce7d3af3ece7bc5e91b20" + }, + "reconnect-mobile-background-scopes": { + "id": "reconnect-mobile-background-scopes", + "path": "apps/mobile/src/connection/background-activity-scopes.ts", + "start": 24, + "end": 84, + "language": "typescript", + "label": "Reference-counted environment background scopes", + "code": "function stableScopeKey(environmentId: EnvironmentId, scope: BackgroundScope): string {\n switch (scope.type) {\n case \"server-config\":\n case \"diagnostics\":\n return JSON.stringify([environmentId, scope.type]);\n case \"provider-status\":\n return JSON.stringify([environmentId, scope.type, scope.instanceId ?? null]);\n case \"vcs-status\":\n case \"git-refs\":\n return JSON.stringify([environmentId, scope.type, scope.cwd]);\n case \"thread\":\n return JSON.stringify([environmentId, scope.type, scope.threadId]);\n }\n}\n\nfunction scopeForSubscription(\n observation: EnvironmentRpcSubscriptionObservation,\n): BackgroundScope | null {\n if (observation.method === WS_METHODS.subscribeResourceTelemetry) {\n return { type: \"diagnostics\" };\n }\n if (observation.method !== WS_METHODS.subscribeVcsStatus) {\n return null;\n }\n const input = observation.input as { readonly cwd?: unknown };\n return typeof input.cwd === \"string\" ? { type: \"vcs-status\", cwd: input.cwd } : null;\n}\n\nexport function retainedMobileBackgroundScopes(\n environmentId: EnvironmentId,\n): ReadonlyArray {\n return Array.from(retainedScopes.values(), (entry) =>\n entry.environmentId === environmentId ? entry.scope : null,\n ).filter((scope): scope is BackgroundScope => scope !== null);\n}\n\nexport function observeMobileBackgroundActivitySubscription(\n observation: EnvironmentRpcSubscriptionObservation,\n): Effect.Effect> {\n const scope = scopeForSubscription(observation);\n if (scope === null) return Effect.succeed(Effect.void);\n return Effect.sync(() => {\n const environmentId = observation.environmentId as EnvironmentId;\n const key = stableScopeKey(environmentId, scope);\n const current = retainedScopes.get(key);\n if (current) {\n current.refCount += 1;\n } else {\n retainedScopes.set(key, { environmentId, scope, refCount: 1 });\n notify();\n }\n return Effect.sync(() => {\n const retained = retainedScopes.get(key);\n if (!retained) return;\n retained.refCount -= 1;\n if (retained.refCount <= 0) {\n retainedScopes.delete(key);\n notify();\n }\n });\n });", + "checksum": "068d56fe85a7b15f425609c38d6f76e6cbb5077ff55cbafe0cba73903a029f7e" + }, + "awareness-relay-signal-filter": { + "id": "awareness-relay-signal-filter", + "path": "apps/server/src/relay/AgentAwarenessRelay.ts", + "start": 69, + "end": 133, + "language": "typescript", + "label": "Awareness event filtering and projected-state sanitization", + "code": "export function shouldPublishAgentAwarenessEvent(event: OrchestrationEvent): boolean {\n switch (event.type) {\n case \"thread.message-sent\":\n case \"thread.turn-start-requested\":\n // These events express intent to start work, but the shell still contains\n // the previous turn's terminal state until the provider acknowledges the\n // new turn. Publishing that snapshot can queue a fresh \"Done\" alert just\n // before the real running state arrives. Provider lifecycle events publish\n // the authoritative starting/running state instead.\n return false;\n case \"thread.proposed-plan-upserted\":\n case \"thread.runtime-mode-set\":\n case \"thread.interaction-mode-set\":\n return false;\n case \"thread.activity-appended\":\n return (\n event.payload.activity.kind === \"approval.requested\" ||\n event.payload.activity.kind === \"approval.resolved\" ||\n event.payload.activity.kind === \"provider.approval.respond.failed\" ||\n event.payload.activity.kind === \"user-input.requested\" ||\n event.payload.activity.kind === \"user-input.resolved\" ||\n event.payload.activity.kind === \"runtime.error\"\n );\n default:\n return true;\n }\n}\n\nexport function agentAwarenessPublishIdentity(state: RelayAgentActivityState | null): string {\n if (state === null) {\n return \"null\";\n }\n const { updatedAt: _updatedAt, ...meaningfulState } = state;\n return JSON.stringify(meaningfulState);\n}\n\nexport function isAgentActivityPublishingEnabled(value: string | null): boolean {\n return isAgentActivityPublishingEnabledValue(value);\n}\n\nexport function resolveAgentActivityPublishingStartupState(input: {\n readonly relayConfigured: boolean;\n readonly publishEnabled: boolean;\n}): \"waiting-for-link\" | \"disabled\" | \"enabled\" {\n if (!input.relayConfigured) {\n return \"waiting-for-link\";\n }\n return input.publishEnabled ? \"enabled\" : \"disabled\";\n}\n\nconst RELAY_AGENT_ACTIVITY_DETAIL_MAX_LENGTH = 160;\nconst REDACTED_RELAY_AGENT_FAILURE_DETAIL = \"The agent run failed.\";\n\nexport function sanitizeRelayAgentActivityState(\n state: RelayAgentActivityState | null,\n): RelayAgentActivityState | null {\n if (state === null) {\n return null;\n }\n const { detail: _detail, ...rest } = state;\n const detail = (state.phase === \"failed\" ? REDACTED_RELAY_AGENT_FAILURE_DETAIL : state.detail)\n ?.trim()\n .slice(0, RELAY_AGENT_ACTIVITY_DETAIL_MAX_LENGTH)\n .trim();\n return detail ? { ...rest, detail } : rest;", + "checksum": "cf128f94bb354ee125fea15b45caa64e3fd9014530925e9164bc6530d11d9818" + }, + "awareness-relay-projected-publish": { + "id": "awareness-relay-projected-publish", + "path": "apps/server/src/relay/AgentAwarenessRelay.ts", + "start": 345, + "end": 426, + "language": "typescript", + "label": "Signed awareness publish and unchanged-state suppression", + "code": " const publishThreadUnsafe = Effect.fn(\"publishThreadUnsafe\")(function* (threadId: ThreadId) {\n const publishAgentActivity = yield* readPublishAgentActivityEnabled.pipe(\n Effect.orElseSucceed(() => false),\n );\n if (!publishAgentActivity) {\n yield* Effect.logDebug(\"agent activity publish skipped; publication disabled\", {\n threadId,\n });\n return;\n }\n const relayConfig = yield* readRelayConfig.pipe(Effect.orElseSucceed(() => null));\n if (!relayConfig) {\n yield* Effect.logDebug(\"agent activity publish skipped; relay link credentials unavailable\", {\n threadId,\n });\n return;\n }\n const relayClient = yield* makeRelayClient(relayConfig);\n const environmentId = yield* serverEnvironment.getEnvironmentId;\n\n const publishState = (input: {\n readonly projectId: string | null;\n readonly state: RelayAgentActivityState | null;\n readonly reason: string;\n }) =>\n Effect.gen(function* () {\n const proof = yield* makePublishProof({\n privateKey: cloudLinkKeyPair.privateKey,\n relayIssuer: relayConfig.issuer,\n environmentId,\n threadId,\n state: input.state,\n jti: yield* crypto.randomUUIDv4,\n });\n\n yield* Effect.logInfo(\"publishing agent activity for thread\", {\n environmentId,\n threadId,\n projectId: input.projectId,\n statePhase: input.state?.phase ?? null,\n hasState: input.state !== null,\n reason: input.reason,\n });\n\n const response = yield* relayClient.server.publishAgentActivity({\n params: {\n environmentId,\n threadId,\n },\n payload: {\n state: input.state,\n proof,\n },\n });\n\n yield* Effect.logInfo(\"agent activity publish completed\", {\n environmentId,\n threadId,\n ok: response.ok,\n deliveries: deliveryStats(response.deliveries),\n });\n });\n\n const thread = yield* snapshotQuery.getThreadShellById(threadId);\n const project = Option.isSome(thread)\n ? yield* snapshotQuery.getProjectShellById(thread.value.projectId)\n : Option.none();\n const snapshot = resolveAgentAwarenessRelayPublishSnapshot({\n environmentId,\n threadId,\n thread,\n project,\n });\n const publishIdentity = agentAwarenessPublishIdentity(snapshot.state);\n const publishedStateByThread = yield* Ref.get(publishedStateByThreadRef);\n if (publishedStateByThread.get(threadId) === publishIdentity) {\n // The projection is back at (or never left) the last published state, so\n // any pending deferred confirmation is moot. Leaving the deadline in\n // place would let a much later transient null find it already expired\n // and publish a tombstone immediately, skipping the deferral window.\n publishConfirmDeadlines.delete(threadId);\n yield* Effect.logDebug(\"agent activity publish skipped; projected state unchanged\", {", + "checksum": "6d030e7bb0a96b730ec457746e28f39d9a868e1065b4e67bc59a0e5329c576f5" + }, + "awareness-apns-delivery-policy": { + "id": "awareness-apns-delivery-policy", + "path": "infra/relay/src/agentActivity/ApnsDeliveries.ts", + "start": 143, + "end": 326, + "language": "typescript", + "label": "APNs alert gating and Live Activity delivery cadence", + "code": "function aggregateNeedsAttention(aggregate: RelayAgentActivityAggregateState): boolean {\n return aggregate.activities.some(\n (row) => row.phase === \"waiting_for_approval\" || row.phase === \"waiting_for_input\",\n );\n}\n\nfunction isAttentionPhase(phase: string): boolean {\n return phase === \"waiting_for_approval\" || phase === \"waiting_for_input\";\n}\n\n// Honors the same per-event notification switches the push channel uses; a\n// missing/corrupt preferences blob only disables nothing (matching how the\n// liveActivitiesEnabled check treats it), since every registration writes one.\nfunction alertAllowedForPhase(\n preferences: RelayAgentAwarenessPreferences | null,\n phase: string,\n): boolean {\n if (preferences === null) {\n return true;\n }\n switch (phase) {\n case \"waiting_for_approval\":\n return preferences.notifyOnApproval;\n case \"waiting_for_input\":\n return preferences.notifyOnInput;\n case \"completed\":\n return preferences.notifyOnCompletion;\n case \"failed\":\n return preferences.notifyOnFailure;\n default:\n return false;\n }\n}\n\n// Alert copy for an update whose aggregate contains threads that were NOT in an\n// attention phase in the previously delivered aggregate. A null previous\n// aggregate means there is no known baseline (fresh registration, replay after\n// data loss) — alerting there would buzz on reconnect, not on a transition.\nexport function alertForAttentionTransition(input: {\n readonly previousAggregate: RelayAgentActivityAggregateState | null;\n readonly nextAggregate: RelayAgentActivityAggregateState;\n readonly preferences: RelayAgentAwarenessPreferences | null;\n}): ApnsLiveActivityAlert | null {\n if (input.previousAggregate === null) {\n return null;\n }\n const previouslyAttention = new Set(\n input.previousAggregate.activities\n .filter((row) => isAttentionPhase(row.phase))\n .map((row) => row.threadId),\n );\n const newlyAttention = input.nextAggregate.activities.filter(\n (row) =>\n isAttentionPhase(row.phase) &&\n !previouslyAttention.has(row.threadId) &&\n alertAllowedForPhase(input.preferences, row.phase),\n );\n const first = newlyAttention[0];\n if (!first) {\n return null;\n }\n if (newlyAttention.length === 1) {\n return { title: first.threadTitle, body: `${first.status}: ${first.projectTitle}` };\n }\n return {\n title: `${newlyAttention.length} agents need attention`,\n body: newlyAttention.map((row) => row.threadTitle).join(\", \"),\n };\n}\n\n// Alert copy for an update whose aggregate contains threads that finished\n// (Done/Failed) since the previously delivered aggregate — the mid-flight\n// completion buzz while other agents keep the activity alive. Requires the\n// thread to have been present and non-terminal before, so a baseline-less\n// replay or a row that merely fell off the display cap never rings.\nfunction newlyTerminalRows(\n previousAggregate: RelayAgentActivityAggregateState | null,\n nextAggregate: RelayAgentActivityAggregateState,\n): ReadonlyArray {\n if (previousAggregate === null) {\n return [];\n }\n const previousPhases = new Map(\n previousAggregate.activities.map((row) => [row.threadId, row.phase]),\n );\n return nextAggregate.activities.filter((row) => {\n if (row.phase !== \"completed\" && row.phase !== \"failed\") {\n return false;\n }\n const previousPhase = previousPhases.get(row.threadId);\n return (\n previousPhase !== undefined && previousPhase !== \"completed\" && previousPhase !== \"failed\"\n );\n });\n}\n\nfunction isFreshTerminalRow(\n row: RelayAgentActivityAggregateState[\"activities\"][number],\n nowMs: number,\n): boolean {\n const updatedAtMs = Option.match(DateTime.make(row.updatedAt), {\n onNone: () => null,\n onSome: (dt) => dt.epochMilliseconds,\n });\n return updatedAtMs !== null && nowMs - updatedAtMs <= TERMINAL_NOTIFICATION_FRESHNESS_MS;\n}\n\nexport function alertForNewlyTerminal(input: {\n readonly previousAggregate: RelayAgentActivityAggregateState | null;\n readonly nextAggregate: RelayAgentActivityAggregateState;\n readonly preferences: RelayAgentAwarenessPreferences | null;\n readonly nowMs: number;\n}): ApnsLiveActivityAlert | null {\n const newlyTerminal = newlyTerminalRows(input.previousAggregate, input.nextAggregate).filter(\n (row) =>\n alertAllowedForPhase(input.preferences, row.phase) &&\n // Replays of old aggregates (server restarts, redeliveries) repaint\n // state without ringing; only fresh completions buzz.\n isFreshTerminalRow(row, input.nowMs),\n );\n const first = newlyTerminal[0];\n if (!first) {\n return null;\n }\n if (newlyTerminal.length === 1) {\n return { title: first.threadTitle, body: `${first.status}: ${first.projectTitle}` };\n }\n return {\n title: `${newlyTerminal.length} agents finished`,\n body: newlyTerminal.map((row) => row.threadTitle).join(\", \"),\n };\n}\n\n// Alert copy for an end event carrying a terminal (Done/Failed) aggregate.\nexport function alertForTerminalAggregate(input: {\n readonly aggregate: RelayAgentActivityAggregateState | null;\n readonly preferences: RelayAgentAwarenessPreferences | null;\n}): ApnsLiveActivityAlert | null {\n const row = input.aggregate?.activities[0];\n if (!row || (row.phase !== \"completed\" && row.phase !== \"failed\")) {\n return null;\n }\n if (!alertAllowedForPhase(input.preferences, row.phase)) {\n return null;\n }\n return { title: row.threadTitle, body: `${row.status}: ${row.projectTitle}` };\n}\n\nfunction shouldUpdateLiveActivity(input: {\n readonly previousAggregate: RelayAgentActivityAggregateState | null;\n readonly nextAggregate: RelayAgentActivityAggregateState;\n readonly lastDeliveryAt: string | null;\n readonly nowMs: number;\n}): boolean {\n if (!input.previousAggregate) {\n return true;\n }\n if (JSON.stringify(input.previousAggregate) === JSON.stringify(input.nextAggregate)) {\n return false;\n }\n if (input.previousAggregate.activeCount !== input.nextAggregate.activeCount) {\n return true;\n }\n if (aggregateNeedsAttention(input.nextAggregate)) {\n return true;\n }\n // A thread finishing must never be throttled away: when a completion and a\n // new start land in the same window, activeCount is unchanged and the Done\n // transition (and its alert) would otherwise be suppressed.\n if (newlyTerminalRows(input.previousAggregate, input.nextAggregate).length > 0) {\n return true;\n }\n const lastDeliveryAtMs =\n input.lastDeliveryAt === null\n ? null\n : Option.match(DateTime.make(input.lastDeliveryAt), {\n onNone: () => Number.NaN,\n onSome: (dt) => dt.epochMilliseconds,\n });\n return (\n lastDeliveryAtMs === null ||\n Number.isNaN(lastDeliveryAtMs) ||\n input.nowMs - lastDeliveryAtMs >= MIN_LIVE_ACTIVITY_UPDATE_INTERVAL_MS\n );", + "checksum": "50723205408ac50c442297f150778cbc2e74d222107af1646291a50932203a8e" + }, + "awareness-mobile-registration-gate": { + "id": "awareness-mobile-registration-gate", + "path": "apps/mobile/src/features/agent-awareness/remoteRegistration.ts", + "start": 69, + "end": 90, + "language": "typescript", + "label": "Relay-accepted mobile registration and replay repair boundary", + "code": "const environmentConnections = new Map();\nconst activityPushTokenListeners = new WeakSet>();\n// Activity tokens the relay recently accepted, by acceptance time. The refresh\n// runs on sign-in, every app foreground, and every environment-connection\n// update, which arrive in bursts and spammed identical registrations. But the\n// registration is not a pure no-op: the relay replays the current aggregate to\n// this device on every accepted registration, and that replay is the\n// foreground reconciliation that repairs drifted or orphaned activities. So\n// dedupe only within a short window — bursts collapse to one request, while a\n// foreground after real time away still triggers a replay. Cleared on\n// sign-out/identity change alongside the device registration state.\nconst ACTIVITY_TOKEN_REREGISTER_INTERVAL_MS = 60_000;\nconst registeredActivityPushTokens = new Map();\nlet pushTokenSubscription: { remove: () => void } | null = null;\nlet appStateSubscription: { remove: () => void } | null = null;\n\n// Whether the relay has actually accepted this device's registration. The\n// notification/Live Activity settings toggles must reflect this rather than\n// only local iOS permission or saved preferences: if the registration request\n// never succeeded, the device cannot receive anything, so the switches must\n// not read as enabled.\nexport type AgentAwarenessRegistrationStatus = \"unknown\" | \"pending\" | \"registered\" | \"failed\";", + "checksum": "20d6bf8e2a049ae450c3958d6c8e90cdbcaff94bb0cc90602bed5aeee8b0b3a1" + }, + "awareness-notification-navigation": { + "id": "awareness-notification-navigation", + "path": "apps/mobile/src/features/agent-awareness/notificationPayload.ts", + "start": 37, + "end": 105, + "language": "typescript", + "label": "Notification payload normalization, deduplication, and navigation", + "code": "function encodeThreadDeepLink(input: {\n readonly environmentId: string;\n readonly threadId: string;\n}): string | null {\n if (input.environmentId.length === 0 || input.threadId.length === 0) {\n return null;\n }\n return `/threads/${encodeURIComponent(input.environmentId)}/${encodeURIComponent(input.threadId)}`;\n}\n\nfunction normalizeThreadDeepLink(value: string): string | null {\n if (\n value.trim() !== value ||\n value.startsWith(\"//\") ||\n value.includes(\"?\") ||\n value.includes(\"#\")\n ) {\n return null;\n }\n\n const parts = value.split(\"/\");\n if (parts.length !== 4 || parts[0] !== \"\" || parts[1] !== \"threads\") {\n return null;\n }\n\n try {\n return encodeThreadDeepLink({\n environmentId: decodeURIComponent(parts[2] ?? \"\"),\n threadId: decodeURIComponent(parts[3] ?? \"\"),\n });\n } catch {\n return null;\n }\n}\n\nexport function extractAgentNotificationDeepLink(response: unknown): string | null {\n const data = dataFromNotificationResponse(response);\n const deepLink = data?.deepLink;\n if (typeof deepLink === \"string\") {\n const normalizedDeepLink = normalizeThreadDeepLink(deepLink);\n if (normalizedDeepLink) {\n return normalizedDeepLink;\n }\n }\n\n const environmentId = data?.environmentId;\n const threadId = data?.threadId;\n if (typeof environmentId === \"string\" && typeof threadId === \"string\") {\n return encodeThreadDeepLink({ environmentId, threadId });\n }\n return null;\n}\n\nexport function routeAgentNotificationResponseOnce(input: {\n readonly handledResponseIds: Set;\n readonly response: unknown;\n readonly navigate: (deepLink: string) => void;\n}): void {\n const responseId = identifierFromNotificationResponse(input.response);\n if (responseId && input.handledResponseIds.has(responseId)) {\n return;\n }\n if (responseId) {\n input.handledResponseIds.add(responseId);\n }\n const deepLink = extractAgentNotificationDeepLink(input.response);\n if (deepLink) {\n input.navigate(deepLink);\n }", + "checksum": "2fad0a887c90a1d5575437758a8f2935fae5c4d77aba4e728221391123165783" + }, + "reconnect-capability-descriptor": { + "id": "reconnect-capability-descriptor", + "path": "packages/contracts/src/environment.ts", + "start": 31, + "end": 92, + "language": "typescript", + "label": "Environment version and optional capability descriptor", + "code": "/** How a server can replace itself with another version when asked over RPC.\n New servers only advertise the stable launcher-backed \"boot-service\" path;\n \"respawn\" remains decodable for compatibility with older servers. */\nexport const ServerSelfUpdateMethod = Schema.Literals([\"boot-service\", \"respawn\"]);\nexport type ServerSelfUpdateMethod = typeof ServerSelfUpdateMethod.Type;\n\n/** What update path a client should offer for a server: one of the RPC\n self-update methods above, or \"desktop-managed\" when the backend's\n version belongs to the T3 Code desktop app supervising it — updating the\n app on that machine is the only way to update the server. */\nexport const ServerSelfUpdateCapability = Schema.Literals([\n \"boot-service\",\n \"respawn\",\n \"desktop-managed\",\n]);\nexport type ServerSelfUpdateCapability = typeof ServerSelfUpdateCapability.Type;\n\nexport const ExecutionEnvironmentCapabilities = Schema.Struct({\n repositoryIdentity: Schema.Boolean.pipe(Schema.withDecodingDefault(Effect.succeed(false))),\n connectionProbe: Schema.optionalKey(Schema.Boolean),\n /** Server exposes the pull-request list, detail, activity, diff, and mutation APIs. Absent on\n servers from before the pull-request workspace shipped, so clients must not probe them. */\n pullRequests: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.settle / thread.unsettle commands. Absent on\n pre-settlement servers, so clients treat missing as unsupported and\n never send the commands under version skew. */\n threadSettlement: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.snooze / thread.unsnooze commands. Same\n version-skew contract as threadSettlement. */\n threadSnooze: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.pin / thread.unpin commands. Same\n version-skew contract as threadSettlement. */\n threadPinning: Schema.optionalKey(Schema.Boolean),\n /** Server understands thread.pin.reorder (and orderKey on thread.pin).\n Same version-skew contract as threadSettlement. */\n threadPinReorder: Schema.optionalKey(Schema.Boolean),\n /** Server understands regenerateTitle on thread.meta.update. Absent on\n older servers, so clients hide the action instead of sending it. */\n threadTitleRegeneration: Schema.optionalKey(Schema.Boolean),\n /** The update path clients should offer for this server. Absent on\n servers that must be relaunched manually (dev checkouts, Windows\n foreground runs, pre-update servers). */\n serverSelfUpdate: Schema.optionalKey(ServerSelfUpdateCapability),\n /** Server can stream self-update progress before acknowledging the\n restart. Clients fall back to server.updateServer when absent. */\n serverSelfUpdateProgress: Schema.optionalKey(Schema.Boolean),\n /** Agent-activity publishes (push notifications and Live Activities)\n currently leave this environment: the publish opt-in is enabled and the\n relay link credentials exist. Clients skip seeding a Live Activity when\n this is false — no update would ever repaint it. Absent on older\n servers, which may still publish, so only an explicit false skips. */\n agentActivityPublishing: Schema.optionalKey(Schema.Boolean),\n});\nexport type ExecutionEnvironmentCapabilities = typeof ExecutionEnvironmentCapabilities.Type;\n\nexport const ExecutionEnvironmentDescriptor = Schema.Struct({\n environmentId: EnvironmentId,\n label: TrimmedNonEmptyString,\n platform: ExecutionEnvironmentPlatform,\n serverVersion: TrimmedNonEmptyString,\n capabilities: ExecutionEnvironmentCapabilities,\n});", + "checksum": "5dbb79216344a256d038ab70c0befe0773721b63fa7d60caef52901ed5fa7cca" + }, + "reconnect-version-skew-guidance": { + "id": "reconnect-version-skew-guidance", + "path": "apps/web/src/versionSkew.ts", + "start": 21, + "end": 130, + "language": "typescript", + "label": "Exact client-server version comparison and update guidance", + "code": "function normalizeVersion(version: string | null | undefined): string | null {\n const trimmed = version?.trim();\n return trimmed && trimmed.length > 0 ? trimmed : null;\n}\n\nexport function resolveVersionMismatch(\n serverVersion: string | null | undefined,\n): VersionMismatch | null {\n const normalizedClientVersion = normalizeVersion(APP_VERSION);\n const normalizedServerVersion = normalizeVersion(serverVersion);\n if (\n !normalizedClientVersion ||\n !normalizedServerVersion ||\n normalizedClientVersion === normalizedServerVersion\n ) {\n return null;\n }\n\n return {\n clientVersion: normalizedClientVersion,\n serverVersion: normalizedServerVersion,\n hint: \"Version mismatch. Try syncing the client and server to the same T3 Code version.\",\n };\n}\n\nexport function resolveServerConfigVersionMismatch(\n serverConfig: Pick | null | undefined,\n): VersionMismatch | null {\n return resolveVersionMismatch(serverConfig?.environment.serverVersion);\n}\n\n/** The update path the connected server offers, or null when it only\n supports a manual relaunch (older servers, dev checkouts, Windows). */\nexport function resolveServerSelfUpdateCapability(\n serverConfig: Pick | null | undefined,\n): ServerSelfUpdateCapability | null {\n return serverConfig?.environment.capabilities.serverSelfUpdate ?? null;\n}\n\n/** The command to hand users whose server cannot update itself. */\nexport function manualServerUpdateCommand(targetVersion: string): string {\n return `npx t3@${targetVersion}`;\n}\n\n/** One sentence telling the user how to resolve version skew for a server,\n matched to the update path it offers. */\nexport function serverUpdateGuidance(\n capability: ServerSelfUpdateCapability | null,\n serverLabel: string,\n): string {\n switch (capability) {\n case \"boot-service\":\n case \"respawn\":\n return `Update the ${serverLabel} so they stay in sync.`;\n case \"desktop-managed\":\n return `Update the desktop app that runs the ${serverLabel}.`;\n default:\n return `Relaunch the ${serverLabel} with the copied command to sync them.`;\n }\n}\n\nexport function buildVersionMismatchDismissalKey(\n environmentId: EnvironmentId,\n mismatch: Pick,\n): string {\n return `${environmentId}:${mismatch.clientVersion}:${mismatch.serverVersion}`;\n}\n\nfunction readVersionMismatchDismissals(): VersionMismatchDismissals {\n try {\n return (\n getLocalStorageItem(\n VERSION_MISMATCH_DISMISSALS_STORAGE_KEY,\n VersionMismatchDismissalsSchema,\n ) ?? { keys: [] }\n );\n } catch (error) {\n console.error(\"Could not read version-mismatch dismissals.\", error);\n return { keys: [] };\n }\n}\n\nfunction writeVersionMismatchDismissals(document: VersionMismatchDismissals): void {\n try {\n setLocalStorageItem(\n VERSION_MISMATCH_DISMISSALS_STORAGE_KEY,\n document,\n VersionMismatchDismissalsSchema,\n );\n } catch (error) {\n console.error(\"Could not persist version-mismatch dismissals.\", error);\n }\n}\n\nexport function isVersionMismatchDismissed(dismissalKey: string | null | undefined): boolean {\n if (!dismissalKey) {\n return false;\n }\n return readVersionMismatchDismissals().keys.includes(dismissalKey);\n}\n\nexport function dismissVersionMismatch(dismissalKey: string | null | undefined): void {\n if (!dismissalKey) {\n return;\n }\n const document = readVersionMismatchDismissals();\n if (document.keys.includes(dismissalKey)) {\n return;\n }\n writeVersionMismatchDismissals({", + "checksum": "493e23986ed26727ea268f4e5ebc7a939ca984654515b3fccfad44cc899386f0" + }, + "reconnect-exact-version-update": { + "id": "reconnect-exact-version-update", + "path": "apps/server/src/cloud/selfUpdate.ts", + "start": 30, + "end": 190, + "language": "typescript", + "label": "Exact-version staging, preflight, and launcher activation handoff", + "code": "export function resolveServerSelfUpdateCapability(input: {\n readonly desktopManaged: boolean;\n readonly launcherManaged: boolean;\n}): ServerSelfUpdateCapability | null {\n if (input.desktopManaged) return \"desktop-managed\" as const;\n return input.launcherManaged ? (\"boot-service\" as const) : null;\n}\n\nexport class ServerSelfUpdate extends Context.Service<\n ServerSelfUpdate,\n {\n readonly update: (\n input: ServerSelfUpdateInput,\n reportProgress?: (stage: ServerSelfUpdateProgressStage) => Effect.Effect,\n ) => Effect.Effect;\n }\n>()(\"t3/cloud/selfUpdate/ServerSelfUpdate\") {}\n\nexport const make = Effect.fn(\"cloud.server_self_update.make\")(function* () {\n const serverConfig = yield* ServerConfig.ServerConfig;\n const launcher = yield* ServiceLauncherClient.ServiceLauncherClient;\n const runner = yield* ProcessRunner.ProcessRunner;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const execPath = yield* HostProcessExecutablePath;\n const inFlight = yield* Ref.make(false);\n\n const capability: ServerSelfUpdateCapability | null =\n serverConfig.mode === \"desktop\" ? \"desktop-managed\" : launcher.managed ? \"boot-service\" : null;\n const failWith = (reason: string, cause?: unknown) =>\n cause === undefined\n ? new ServerSelfUpdateError({ reason })\n : new ServerSelfUpdateError({ reason, cause });\n\n const update: ServerSelfUpdate[\"Service\"][\"update\"] = Effect.fn(\n \"cloud.server_self_update.update\",\n )(function* (input, reportProgress = () => Effect.void) {\n if (capability === \"desktop-managed\") {\n return yield* failWith(\n \"This server is managed by the T3 Code desktop app on its machine; update the desktop app to update it.\",\n );\n }\n if (capability === null) {\n return yield* failWith(\n \"Remote updates require the T3 Code background service. Run `t3 service install` on the server machine.\",\n );\n }\n\n const targetVersion = input.targetVersion.trim();\n if (!isExactServiceVersion(targetVersion)) {\n return yield* failWith(`'${targetVersion}' is not an exact t3 version.`);\n }\n if (yield* Ref.getAndSet(inFlight, true)) {\n return yield* failWith(\"A server update is already in progress.\");\n }\n\n return yield* Effect.gen(function* () {\n yield* reportProgress(\"downloading\");\n const paths = yield* ensurePinnedRuntimeInstalled({\n baseDir: serverConfig.baseDir,\n version: targetVersion,\n fs,\n path,\n runner,\n validate: (runtime) =>\n runner\n .run({\n command: execPath,\n args: [\n runtime.entryPath,\n \"__service-preflight\",\n \"--database-path\",\n serverConfig.dbPath,\n \"--launcher-protocol\",\n String(SERVICE_LAUNCHER_PROTOCOL),\n ],\n timeout: PREFLIGHT_TIMEOUT,\n })\n .pipe(\n Effect.mapError(\n (cause) =>\n new PinnedRuntimeInstallError({\n step: \"running the staged service preflight\",\n cause,\n }),\n ),\n Effect.flatMap(\n (\n result,\n ): Effect.Effect<\n void,\n PinnedRuntimeInstallError | PinnedRuntimePreflightBlockedError\n > => {\n if (result.code !== 0) {\n return Effect.fail(\n new PinnedRuntimeInstallError({\n step: \"running the staged service preflight\",\n exitCode: Number(result.code),\n stdoutLength: result.stdout.length,\n stderrLength: result.stderr.length,\n }),\n );\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(result.stdout.trim());\n } catch (cause) {\n return Effect.fail(\n new PinnedRuntimeInstallError({\n step: \"decoding the staged service preflight\",\n cause,\n }),\n );\n }\n const preflight = decodeServicePreflightResult(parsed);\n if (preflight === undefined || preflight.version !== targetVersion) {\n return Effect.fail(\n new PinnedRuntimeInstallError({\n step: \"verifying the staged service preflight\",\n }),\n );\n }\n return preflight.status === \"ready\"\n ? Effect.void\n : Effect.fail(\n new PinnedRuntimePreflightBlockedError({\n version: targetVersion,\n reason: preflight.reason,\n }),\n );\n },\n ),\n ),\n }).pipe(\n Effect.mapError((error) =>\n error._tag === \"PinnedRuntimePreflightBlockedError\"\n ? failWith(error.reason, error)\n : failWith(`Could not prepare t3@${targetVersion}.`, error),\n ),\n );\n\n yield* reportProgress(\"installing\");\n const updateId = yield* launcher\n .requestUpdate({ targetVersion, dbPath: serverConfig.dbPath })\n .pipe(\n Effect.mapError((error) =>\n failWith(\n error._tag === \"ServiceLauncherRejectedError\"\n ? error.reason\n : \"Could not ask the service launcher to activate the prepared update.\",\n error,\n ),\n ),\n );\n\n yield* Effect.logInfo(\"Server update prepared; handing off to the service launcher.\", {\n updateId,\n targetVersion,\n runtimePath: paths.entryPath,\n });\n return { targetVersion, method: \"boot-service\" as const, updateId };", + "checksum": "1cde992413bb70e3aa3870a47b638f195f71bea15ad23b31c52f713e142bcc06" + } +} diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..51bc38e --- /dev/null +++ b/src/layouts/BaseLayout.astro @@ -0,0 +1,52 @@ +--- +import cover from "../../cover.png"; +import "../styles/global.css"; +import "../styles/components.css"; + +interface Props { + title: string; + description: string; + canonicalPath?: string; +} + +const { title, description, canonicalPath = "" } = Astro.props; +const pageTitle = title === "T3 Code Decoded" ? title : `${title} · T3 Code Decoded`; +const canonical = Astro.site ? new URL(canonicalPath, Astro.site) : undefined; +const socialImage = Astro.site ? new URL(cover.src, Astro.site) : cover.src; +--- + + + + + + + + + + + + + + + + + + {canonical && } + {pageTitle} + + + + + + + diff --git a/src/layouts/BookLayout.astro b/src/layouts/BookLayout.astro new file mode 100644 index 0000000..b1391ee --- /dev/null +++ b/src/layouts/BookLayout.astro @@ -0,0 +1,365 @@ +--- +import type { MarkdownHeading } from "astro"; +import type { BookEntry } from "../lib/book"; +import { chapterLabel, entryHref, groupBookEntries, sortBookEntries } from "../lib/book"; +import lock from "../../sources/t3code.lock.json"; +import BaseLayout from "./BaseLayout.astro"; + +interface Props { + entry: BookEntry; + entries: BookEntry[]; + headings: MarkdownHeading[]; +} + +const { entry, entries, headings } = Astro.props; +const sorted = sortBookEntries(entries); +const groups = groupBookEntries(sorted); +const index = sorted.findIndex((candidate) => candidate.id === entry.id); +const previous = index > 0 ? sorted[index - 1] : undefined; +const next = index >= 0 && index < sorted.length - 1 ? sorted[index + 1] : undefined; +const sectionHeadings = headings.filter((heading) => heading.depth === 2 || heading.depth === 3); +const base = import.meta.env.BASE_URL; +const searchIndex = sorted.map((item) => ({ + title: item.data.title, + summary: item.data.summary, + part: item.data.part, + number: item.data.number ?? "", + keywords: item.data.keywords, + sourceAreas: item.data.sourceAreas, + url: entryHref(item, base), +})); +const readProgress = sorted.length === 0 ? 0 : ((index + 1) / sorted.length) * 100; +const snapshotDate = new Intl.DateTimeFormat("en-GB", { day: "numeric", month: "short", year: "numeric" }).format(new Date(lock.capturedAt)); +const tocIcon = (item: BookEntry) => { + if (item.data.kind === "front") return "↗"; + if (item.data.kind === "appendix") return "+"; + return "●"; +}; +const tocLabel = (item: BookEntry) => `${chapterLabel(item)}: ${item.data.title}`; +--- + + + +
    + + + + +
    +
    + +
    {entry.data.part}{entry.data.shortTitle ?? entry.data.title}
    +
    + + +
    +
    + +
    +
    +
    +
    + {chapterLabel(entry)} + {entry.data.status.replace("-", " ")} +
    +

    {entry.data.title}

    +

    {entry.data.summary}

    + {entry.data.objectives.length > 0 && ( +
    + What this chapter resolves +
      {entry.data.objectives.map((objective) =>
    • {objective}
    • )}
    +
    + )} +
    + +
    + +
    + +
    +
    + T3 +
    Source-locked editionRead against {lock.shortCommit} · {snapshotDate}
    +
    +
    +
    + + {sectionHeadings.length > 0 && ( + + )} +
    +
    +
    + + + + + +
    +
    + Book search +

    Find a concept, module, or source path

    +
    + +
    + +

    Type two or more characters.

    +
    +
    + + + +
    diff --git a/src/lib/book.ts b/src/lib/book.ts new file mode 100644 index 0000000..85a7530 --- /dev/null +++ b/src/lib/book.ts @@ -0,0 +1,30 @@ +import type { CollectionEntry } from "astro:content"; + +export type BookEntry = CollectionEntry<"book">; + +export const sortBookEntries = (entries: BookEntry[]) => + [...entries].sort((a, b) => a.data.order - b.data.order || a.data.title.localeCompare(b.data.title)); + +export const groupBookEntries = (entries: BookEntry[]) => { + const groups = new Map(); + for (const entry of sortBookEntries(entries)) { + const existing = groups.get(entry.data.part); + if (existing) existing.entries.push(entry); + else groups.set(entry.data.part, { order: entry.data.partOrder, entries: [entry] }); + } + return [...groups.entries()] + .sort((a, b) => a[1].order - b[1].order) + .map(([part, value]) => ({ part, ...value })); +}; + +export const entryHref = (entry: Pick, base = import.meta.env.BASE_URL) => { + const prefix = base.endsWith("/") ? base : `${base}/`; + return entry.data.slug === "cover" ? prefix : `${prefix}${entry.data.slug}/`; +}; + +export const chapterLabel = (entry: BookEntry) => { + if (entry.data.kind === "front") return "Start here"; + if (entry.data.kind === "appendix") return `Appendix ${entry.data.number ?? ""}`.trim(); + return `Chapter ${entry.data.number ?? ""}`.trim(); +}; + diff --git a/src/lib/diagram-explorer.ts b/src/lib/diagram-explorer.ts new file mode 100644 index 0000000..55d4bb3 --- /dev/null +++ b/src/lib/diagram-explorer.ts @@ -0,0 +1,247 @@ +const MIN_SCALE = 0.55; +const MAX_SCALE = 3; +const SCALE_STEP = 0.2; +const KEYBOARD_PAN_STEP = 48; + +const clamp = (value: number, minimum: number, maximum: number) => + Math.min(maximum, Math.max(minimum, value)); + +export function initDiagramExplorer(root: HTMLElement) { + if (root.dataset.diagramReady === "true") return; + root.dataset.diagramReady = "true"; + + const viewport = root.querySelector("[data-diagram-viewport]"); + const content = root.querySelector("[data-diagram-content]"); + const status = root.querySelector("[data-diagram-status]"); + const panButton = root.querySelector("[data-diagram-action='pan']"); + const zoomOutButton = root.querySelector("[data-diagram-action='zoom-out']"); + const zoomInButton = root.querySelector("[data-diagram-action='zoom-in']"); + const expandButton = root.querySelector("[data-diagram-action='expand']"); + const dialog = root.querySelector("[data-diagram-dialog]"); + const dialogHost = root.querySelector("[data-diagram-dialog-host]"); + const origin = root.querySelector("[data-diagram-origin]"); + const closeButton = root.querySelector("[data-diagram-close]"); + const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)"); + if (!viewport || !content || !origin) return; + + let scale = 1; + let translateX = 0; + let translateY = 0; + let panEnabled = false; + let activePointer: number | null = null; + let pointerX = 0; + let pointerY = 0; + let resizeObserver: ResizeObserver | undefined; + + const constrainPan = () => { + const viewportWidth = viewport.clientWidth; + const viewportHeight = viewport.clientHeight; + const scaledWidth = content.offsetWidth * scale; + const scaledHeight = content.offsetHeight * scale; + const expanded = root.dataset.diagramExpanded === "true"; + // A diagram often fits completely inside the larger dialog at 100%. Give + // that canvas bounded travel so Pan still means something before zooming. + const expandedTravelX = expanded && panEnabled ? viewportWidth * 0.45 : 0; + const expandedTravelY = expanded && panEnabled ? viewportHeight * 0.45 : 0; + const maxX = Math.max(expandedTravelX, (scaledWidth - viewportWidth) / 2); + const maxY = Math.max(expandedTravelY, (scaledHeight - viewportHeight) / 2); + translateX = clamp(translateX, -maxX, maxX); + translateY = clamp(translateY, -maxY, maxY); + }; + + const paint = (announce = false) => { + constrainPan(); + content.style.setProperty("--diagram-x", `${translateX}px`); + content.style.setProperty("--diagram-y", `${translateY}px`); + content.style.setProperty("--diagram-scale", String(scale)); + viewport.dataset.panEnabled = String(panEnabled); + panButton?.setAttribute("aria-pressed", String(panEnabled)); + panButton?.setAttribute("aria-label", panEnabled ? "Stop panning diagram" : "Pan diagram"); + zoomOutButton?.toggleAttribute("disabled", scale <= MIN_SCALE + 0.001); + zoomInButton?.toggleAttribute("disabled", scale >= MAX_SCALE - 0.001); + if (status) { + const value = `${Math.round(scale * 100)}% · pan ${panEnabled ? "on" : "off"}`; + status.value = value; + status.textContent = value; + if (!announce) status.setAttribute("aria-live", "off"); + else status.setAttribute("aria-live", "polite"); + } + }; + + const setPanEnabled = (enabled: boolean, announce = true) => { + panEnabled = enabled; + paint(announce); + }; + + const zoomTo = ( + requestedScale: number, + anchor?: { readonly clientX: number; readonly clientY: number }, + ) => { + const nextScale = clamp(requestedScale, MIN_SCALE, MAX_SCALE); + if (nextScale === scale) return; + if (anchor) { + const bounds = viewport.getBoundingClientRect(); + const pointX = anchor.clientX - bounds.left - bounds.width / 2; + const pointY = anchor.clientY - bounds.top - bounds.height / 2; + const ratio = nextScale / scale; + translateX = pointX - ratio * (pointX - translateX); + translateY = pointY - ratio * (pointY - translateY); + } + scale = Number(nextScale.toFixed(2)); + if (scale > 1) panEnabled = true; + paint(true); + }; + + const reset = () => { + scale = 1; + translateX = 0; + translateY = 0; + panEnabled = false; + paint(true); + }; + + const panBy = (x: number, y: number) => { + translateX += x; + translateY += y; + paint(false); + }; + + const restoreFromDialog = () => { + if (!origin.contains(viewport.closest("[data-diagram-surface]"))) { + const surface = root.querySelector("[data-diagram-surface]"); + if (surface) origin.append(surface); + } + root.dataset.diagramExpanded = "false"; + expandButton?.setAttribute("aria-expanded", "false"); + expandButton?.setAttribute("aria-label", "Expand diagram"); + requestAnimationFrame(() => paint(false)); + }; + + const toggleExpanded = () => { + if (!dialog || !dialogHost || typeof dialog.showModal !== "function") return; + if (dialog.open) { + dialog.close(); + return; + } + const surface = root.querySelector("[data-diagram-surface]"); + if (!surface) return; + dialogHost.append(surface); + root.dataset.diagramExpanded = "true"; + expandButton?.setAttribute("aria-expanded", "true"); + expandButton?.setAttribute("aria-label", "Exit expanded diagram"); + dialog.showModal(); + requestAnimationFrame(() => { + paint(false); + closeButton?.focus(); + }); + }; + + root.querySelectorAll("[data-diagram-action]").forEach((button) => { + button.addEventListener("click", () => { + switch (button.dataset.diagramAction) { + case "pan": + setPanEnabled(!panEnabled); + break; + case "zoom-out": + zoomTo(scale - SCALE_STEP); + break; + case "reset": + reset(); + break; + case "zoom-in": + zoomTo(scale + SCALE_STEP); + break; + case "expand": + toggleExpanded(); + break; + } + }); + }); + + viewport.addEventListener("wheel", (event) => { + if (event.ctrlKey || event.metaKey) { + event.preventDefault(); + const direction = event.deltaY > 0 ? -SCALE_STEP : SCALE_STEP; + zoomTo(scale + direction, { clientX: event.clientX, clientY: event.clientY }); + return; + } + const expanded = root.dataset.diagramExpanded === "true"; + if (!panEnabled || (scale <= 1 && !expanded)) return; + event.preventDefault(); + panBy(-event.deltaX, -event.deltaY); + }, { passive: false }); + + viewport.addEventListener("pointerdown", (event) => { + if (!panEnabled || event.button !== 0) return; + activePointer = event.pointerId; + pointerX = event.clientX; + pointerY = event.clientY; + viewport.setPointerCapture(event.pointerId); + viewport.dataset.dragging = "true"; + event.preventDefault(); + }); + viewport.addEventListener("pointermove", (event) => { + if (activePointer !== event.pointerId) return; + const x = event.clientX - pointerX; + const y = event.clientY - pointerY; + pointerX = event.clientX; + pointerY = event.clientY; + panBy(x, y); + }); + const endPointer = (event: PointerEvent) => { + if (activePointer !== event.pointerId) return; + activePointer = null; + viewport.dataset.dragging = "false"; + if (viewport.hasPointerCapture(event.pointerId)) viewport.releasePointerCapture(event.pointerId); + }; + viewport.addEventListener("pointerup", endPointer); + viewport.addEventListener("pointercancel", endPointer); + + viewport.addEventListener("keydown", (event) => { + if (event.key === "+" || event.key === "=") { + event.preventDefault(); + zoomTo(scale + SCALE_STEP); + } else if (event.key === "-" || event.key === "_") { + event.preventDefault(); + zoomTo(scale - SCALE_STEP); + } else if (event.key === "0") { + event.preventDefault(); + reset(); + } else if (event.key === "Enter" || event.key === " ") { + event.preventDefault(); + setPanEnabled(!panEnabled); + } else if (event.key === "Escape") { + if (dialog?.open) dialog.close(); + else setPanEnabled(false); + } else if (panEnabled && event.key.startsWith("Arrow")) { + event.preventDefault(); + const x = event.key === "ArrowLeft" ? KEYBOARD_PAN_STEP : event.key === "ArrowRight" ? -KEYBOARD_PAN_STEP : 0; + const y = event.key === "ArrowUp" ? KEYBOARD_PAN_STEP : event.key === "ArrowDown" ? -KEYBOARD_PAN_STEP : 0; + panBy(x, y); + } + }); + + dialog?.addEventListener("close", () => { + restoreFromDialog(); + expandButton?.focus(); + }); + closeButton?.addEventListener("click", () => dialog?.close()); + + const updateMotionPreference = () => { + content.dataset.reducedMotion = String(reduceMotion.matches); + }; + reduceMotion.addEventListener("change", updateMotionPreference); + updateMotionPreference(); + + if ("ResizeObserver" in window) { + resizeObserver = new ResizeObserver(() => paint(false)); + resizeObserver.observe(viewport); + } + + window.addEventListener("pagehide", () => { + resizeObserver?.disconnect(); + reduceMotion.removeEventListener("change", updateMotionPreference); + }, { once: true }); + + paint(false); +} diff --git a/src/lib/lab-motion.ts b/src/lib/lab-motion.ts new file mode 100644 index 0000000..4217d90 --- /dev/null +++ b/src/lib/lab-motion.ts @@ -0,0 +1,54 @@ +export const LAB_MOTION = { + detail: 220, + playbackLead: 760, + playbackStep: 1050, +} as const; + +export const animateLabPanel = ( + target: HTMLElement | null, + direction: number, + reduced: boolean, +) => { + if (!target || reduced) return undefined; + return target.animate( + [ + { opacity: 0.35, transform: `translateX(${direction * 12}px)` }, + { opacity: 1, transform: "translateX(0)" }, + ], + { duration: LAB_MOTION.detail, easing: "cubic-bezier(.2,.8,.2,1)" }, + ); +}; + +export const setPlaybackState = (button: HTMLButtonElement | null, playing: boolean, label: string) => { + if (!button) return; + button.setAttribute("aria-pressed", String(playing)); + button.textContent = playing ? `Pause ${label}` : `Play ${label}`; +}; + +export const handleRovingKeys = ( + event: KeyboardEvent, + nodes: HTMLButtonElement[], + currentIndex: number, + select: (index: number) => void, +) => { + const requested = (() => { + switch (event.key) { + case "ArrowLeft": + case "ArrowUp": + return Math.max(0, currentIndex - 1); + case "ArrowRight": + case "ArrowDown": + return Math.min(nodes.length - 1, currentIndex + 1); + case "Home": + return 0; + case "End": + return nodes.length - 1; + default: + return undefined; + } + })(); + if (requested === undefined || requested === currentIndex) return; + event.preventDefault(); + select(requested); + nodes[requested]?.focus(); +}; diff --git a/src/lib/sources.ts b/src/lib/sources.ts new file mode 100644 index 0000000..d1abee6 --- /dev/null +++ b/src/lib/sources.ts @@ -0,0 +1,40 @@ +import excerptManifest from "../../sources/excerpts.manifest.json"; +import lock from "../../sources/t3code.lock.json"; +import referenceManifest from "../../sources/references.manifest.json"; + +export interface SourceReference { + id: string; + path: string; + start?: number; + end?: number; + kind: "file" | "directory"; + label: string; +} + +const references = [ + ...excerptManifest.map((entry) => ({ ...entry, kind: "file" as const })), + ...referenceManifest, +] satisfies SourceReference[]; + +const catalog = new Map(references.map((reference) => [reference.id, reference])); + +export const getSourceReference = (id: string) => { + const reference = catalog.get(id); + if (!reference) throw new Error(`Unknown source reference: ${id}`); + return reference; +}; + +export const sourceReferenceLabel = (reference: SourceReference) => { + const lines = reference.start + ? `:${reference.start}${reference.end ? `–${reference.end}` : ""}` + : ""; + return `${reference.path}${lines}`; +}; + +export const sourceReferenceHref = (reference: SourceReference) => { + const route = reference.kind === "directory" ? "tree" : "blob"; + const lines = reference.kind === "file" && reference.start + ? `#L${reference.start}${reference.end ? `-L${reference.end}` : ""}` + : ""; + return `${lock.repository}/${route}/${lock.commit}/${reference.path}${lines}`; +}; diff --git a/src/pages/404.astro b/src/pages/404.astro new file mode 100644 index 0000000..d7c18e2 --- /dev/null +++ b/src/pages/404.astro @@ -0,0 +1,13 @@ +--- +import BaseLayout from "../layouts/BaseLayout.astro"; +const base = import.meta.env.BASE_URL; +--- + + +
    +

    404 · Outside the map

    +

    This chapter is not in the source tree.

    +

    The book may have moved while its evidence was being updated.

    + Return to the cover +
    +
    diff --git a/src/pages/[slug].astro b/src/pages/[slug].astro new file mode 100644 index 0000000..5f8166b --- /dev/null +++ b/src/pages/[slug].astro @@ -0,0 +1,19 @@ +--- +import { getCollection, render } from "astro:content"; +import BookLayout from "../layouts/BookLayout.astro"; + +export async function getStaticPaths() { + const entries = await getCollection("book"); + return entries + .filter((entry) => entry.data.slug !== "cover") + .map((entry) => ({ params: { slug: entry.data.slug }, props: { entry, entries } })); +} + +const { entry, entries } = Astro.props; +const { Content, headings } = await render(entry); +--- + + + + + diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..a183b95 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,14 @@ +--- +import { getCollection, render } from "astro:content"; +import BookLayout from "../layouts/BookLayout.astro"; + +const entries = await getCollection("book"); +const entry = entries.find((candidate) => candidate.data.slug === "cover"); +if (!entry) throw new Error("The book requires a cover entry."); +const { Content, headings } = await render(entry); +--- + + + + + diff --git a/src/styles/components.css b/src/styles/components.css new file mode 100644 index 0000000..214af29 --- /dev/null +++ b/src/styles/components.css @@ -0,0 +1,371 @@ +.callout { + position: relative; + margin: 30px 0; + padding: 19px 21px 19px 54px; + border: 1px solid var(--line); + border-radius: 11px; + background: var(--paper-raised); + color: var(--ink-soft); + font-size: 16px; + line-height: 1.58; +} +.callout::before { + position: absolute; + top: 18px; + left: 18px; + display: grid; + width: 23px; + height: 23px; + place-items: center; + border-radius: 7px; + background: var(--signal-soft); + color: var(--signal-deep); + content: "i"; + font: 800 12px/1 var(--font-ui); +} +.callout.warning::before { background: color-mix(in srgb, var(--yellow) 18%, transparent); color: var(--yellow); content: "!"; } +.callout.success::before { background: color-mix(in srgb, var(--green) 16%, transparent); color: var(--green); content: "✓"; } +.callout strong.callout-title { display: block; margin-bottom: 5px; color: var(--ink); font: 750 11px/1.2 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; } +.callout > :last-child { margin-bottom: 0; } + +.source-excerpt { margin: 32px 0; overflow: hidden; border: 1px solid var(--navy-line); border-radius: 11px; background: var(--navy); color: var(--navy-text); box-shadow: 0 18px 45px rgb(5 9 16 / 17%); } +.source-caption { display: flex; gap: 12px; align-items: center; min-height: 48px; padding: 9px 13px; border-bottom: 1px solid var(--navy-line); background: var(--navy-raised); font-family: var(--font-ui); } +.source-dots { display: flex; gap: 5px; flex: none; } +.source-dots i { width: 8px; height: 8px; border-radius: 50%; background: #5e6879; } +.source-dots i:first-child { background: var(--signal); } +.source-path { min-width: 0; overflow: hidden; color: var(--navy-muted) !important; font: 550 10px/1.3 var(--font-mono); text-overflow: ellipsis; white-space: nowrap; text-decoration: none; } +.source-path:hover { color: #fff !important; } +.source-kind { flex: none; margin-left: auto; padding: 4px 7px; border: 1px solid #43516a; border-radius: 999px; color: #b8c4d7; font: 700 8px/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; } +.source-copy { flex: none; border: 0; background: transparent; color: var(--navy-muted); cursor: pointer; font: 650 9px/1 var(--font-ui); } +.source-copy:hover { color: #fff; } +.source-scroll { overflow-x: auto; padding: 13px 0; } +.source-excerpt pre { margin: 0; min-width: max-content; font: 400 12px/1.68 var(--font-mono); tab-size: 2; } +.source-excerpt code { display: block; } +.source-line { display: grid; grid-template-columns: 54px minmax(0, 1fr); min-height: 20px; padding: 0 18px 0 0; } +.source-line::before { padding-right: 15px; color: #607088; content: attr(data-line); text-align: right; user-select: none; } +.source-line.is-focus { background: rgb(227 27 35 / 14%); box-shadow: inset 3px 0 var(--signal); } +.source-note { padding: 13px 17px 14px; border-top: 1px solid var(--navy-line); color: #c4cedc; font: 400 12px/1.5 var(--font-ui); } +.source-note strong { color: #fff; } + +.source-list { margin: 27px 0; border-top: 1px solid var(--line); } +.source-list h3 { margin: 18px 0 9px; color: var(--ink-faint); font: 750 10px/1 var(--font-ui); letter-spacing: .11em; text-transform: uppercase; } +.source-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 13px; padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); font: 500 12px/1.4 var(--font-ui); text-decoration: none; } +.source-list a:hover { color: var(--signal-deep); } +.source-list code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.source-list span { color: var(--ink-faint); font-size: 10px; } + +.figure { margin: 34px 0; overflow: hidden; border: 1px solid var(--navy-line); border-radius: 12px; background: var(--navy); color: var(--navy-text); } +.figure-head { display: flex; gap: 14px; justify-content: space-between; align-items: baseline; padding: 11px 15px; border-bottom: 1px solid var(--navy-line); background: var(--navy-raised); font-family: var(--font-ui); } +.figure-head strong { font-size: 10px; letter-spacing: .09em; text-transform: uppercase; } +.figure-head span { color: var(--navy-muted); font-size: 9px; } +.figure-body { padding: 18px; } +.figure figcaption { padding: 12px 16px 14px; border-top: 1px solid var(--navy-line); color: var(--navy-muted); font: 400 11px/1.5 var(--font-ui); } +.figure figcaption strong { color: var(--navy-text); } +.figure-text { padding: 10px 16px; border-top: 1px solid var(--navy-line); color: var(--navy-muted); font: 400 11px/1.5 var(--font-ui); } +.figure-text summary { color: var(--navy-text); cursor: pointer; font-weight: 700; } +.figure-text p { margin: 8px 0 2px; } +.figure-sources { display: flex; flex-wrap: wrap; gap: 7px 14px; padding: 10px 16px 13px; border-top: 1px solid var(--navy-line); font: 500 9px/1.35 var(--font-ui); } +.figure-sources a { color: var(--navy-muted) !important; text-decoration: none; } +.figure-sources a:hover { color: var(--navy-text) !important; } +.diagram-explorer { min-width: 0; } +.diagram-surface { min-width: 0; } +.diagram-toolbar { + display: none; + grid-template-columns: minmax(0, 1fr) auto auto; + gap: 12px; + align-items: center; + margin-bottom: 10px; + color: var(--navy-muted); + font-family: var(--font-ui); +} +.js .diagram-explorer[data-diagram-state="ready"] .diagram-toolbar { display: grid; } +.diagram-toolbar > strong { overflow: hidden; color: var(--navy-text); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } +.diagram-actions { display: flex; gap: 5px; align-items: center; } +.diagram-actions button, +.diagram-close { + display: inline-flex; + gap: 6px; + align-items: center; + justify-content: center; + min-width: 44px; + min-height: 44px; + padding: 0 10px; + border: 1px solid var(--navy-line); + border-radius: 8px; + background: var(--navy-raised); + color: var(--navy-text); + cursor: pointer; + font: 700 10px/1 var(--font-ui); +} +.diagram-actions button:hover, +.diagram-close:hover { border-color: var(--signal); background: #1b2537; } +.diagram-actions button[aria-pressed="true"] { border-color: var(--signal); background: color-mix(in srgb, var(--signal) 18%, var(--navy-raised)); } +.diagram-actions button:disabled { cursor: not-allowed; opacity: .42; } +.diagram-status { min-width: 92px; color: var(--navy-muted); font: 650 9px/1 var(--font-mono); text-align: right; } +.diagram-viewport { + min-width: 0; + min-height: 220px; + overflow: hidden; + border: 1px solid color-mix(in srgb, var(--navy-line) 78%, transparent); + border-radius: 9px; + background: color-mix(in srgb, var(--navy-raised) 36%, transparent); + cursor: default; + outline: none; + touch-action: pan-y pinch-zoom; +} +.diagram-viewport:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; } +.diagram-viewport[data-pan-enabled="true"] { cursor: grab; touch-action: none; } +.diagram-viewport[data-dragging="true"] { cursor: grabbing; user-select: none; } +.mermaid { + --diagram-scale: 1; + --diagram-x: 0px; + --diagram-y: 0px; + display: flex; + min-width: 100%; + min-height: 218px; + align-items: center; + justify-content: center; + margin: 0; + padding: 12px; + overflow: visible; + box-sizing: border-box; + background: transparent; + transform: translate3d(var(--diagram-x), var(--diagram-y), 0) scale(var(--diagram-scale)); + transform-origin: center; + transition: transform var(--motion-fast) var(--motion-ease); +} +.mermaid[data-reduced-motion="true"], +.diagram-viewport[data-dragging="true"] .mermaid { transition: none; } +.mermaid svg { max-width: 100%; height: auto; } +.diagram-help { display: none; margin: 9px 2px 0; color: var(--navy-muted); font: 500 10px/1.45 var(--font-ui); } +.js .diagram-explorer[data-diagram-state="ready"] .diagram-help { display: block; } +.diagram-help kbd { padding: 1px 4px; border: 1px solid var(--navy-line); border-radius: 4px; background: var(--navy-raised); color: var(--navy-text); font: 650 9px/1.2 var(--font-mono); } +html:not(.js) .diagram-viewport, +.diagram-explorer[data-diagram-state="error"] .diagram-viewport { overflow: auto; } +html:not(.js) .mermaid, +.diagram-explorer[data-diagram-state="error"] .mermaid { display: block; min-width: max-content; white-space: pre; } +.diagram-dialog { + width: calc(100vw - 32px); + max-width: 1500px; + height: calc(100dvh - 32px); + max-height: 1000px; + padding: 0; + overflow: hidden; + border: 1px solid var(--navy-line); + border-radius: 14px; + background: var(--navy); + color: var(--navy-text); + box-shadow: 0 28px 90px rgb(0 0 0 / 45%); +} +.diagram-dialog::backdrop { background: rgb(4 8 15 / 76%); backdrop-filter: blur(4px); } +.diagram-dialog-shell { display: flex; height: 100%; min-height: 0; flex-direction: column; } +.diagram-dialog-shell > header { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 10px 12px 10px 18px; border-bottom: 1px solid var(--navy-line); background: var(--navy-raised); font: 700 12px/1.2 var(--font-ui); } +.diagram-close { flex: none; } +.diagram-dialog-host { min-height: 0; flex: 1; padding: 14px; } +.diagram-dialog-host > .diagram-surface { display: flex; height: 100%; min-height: 0; flex-direction: column; } +.diagram-dialog-host .diagram-viewport { min-height: 0; flex: 1; } +.diagram-dialog-host .diagram-help { flex: none; } + +.layer-map { display: grid; gap: 8px; } +.layer-row { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: stretch; } +.layer-label { display: flex; align-items: center; justify-content: flex-end; color: var(--navy-muted); font: 700 9px/1.2 var(--font-ui); letter-spacing: .1em; text-align: right; text-transform: uppercase; } +.layer-nodes { display: flex; flex-wrap: wrap; gap: 7px; } +.layer-node { flex: 1 1 120px; min-width: 105px; padding: 10px 11px; border: 1px solid #3a485f; border-radius: 8px; background: var(--navy-raised); color: var(--navy-text) !important; font: 650 11px/1.28 var(--font-ui); text-align: center; text-decoration: none; } +.layer-node:hover, .layer-node:focus-visible { border-color: var(--signal); background: #1b2537; } +.layer-row.boundary .layer-nodes { padding: 6px; border: 1px dashed #6b3340; border-radius: 10px; background: rgb(227 27 35 / 7%); } +.layer-row.tone-client .layer-node { border-color: #336b9c; } +.layer-row.tone-transport .layer-node { border-color: #2d79a7; background: #0d2538; } +.layer-row.tone-durable .layer-node { border-color: #a87822; background: #2a2111; } +.layer-row.tone-runtime .layer-node { border-color: #9c4f57; background: #291719; } +.layer-row.tone-external .layer-node { border-color: #387d65; background: #10261f; } + +.stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 28px 0; } +.stat { padding: 18px; border-top: 3px solid var(--signal); background: var(--paper-raised); box-shadow: inset 0 0 0 1px var(--line); } +.stat strong { display: block; color: var(--ink); font: 760 26px/1 var(--font-display); letter-spacing: -.04em; } +.stat span { display: block; margin-top: 6px; color: var(--ink-faint); font: 600 10px/1.3 var(--font-ui); letter-spacing: .07em; text-transform: uppercase; } + +.comparison { width: 100%; margin: 27px 0; border-collapse: collapse; font-family: var(--font-ui); font-size: 13px; line-height: 1.45; } +.comparison th, .comparison td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; } +.comparison th { color: var(--ink-faint); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; } +.comparison td:first-child { color: var(--ink); font-weight: 700; } +.table-scroll { overflow-x: auto; } +.table-scroll:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; } + +.decision-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 29px 0; } +.decision { padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper-raised); } +.decision .decision-label { color: var(--signal-deep); font: 750 9px/1 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; } +.decision h3 { margin: 9px 0 8px; font-size: 18px; } +.decision p { margin: 0; color: var(--ink-soft); font: 400 13px/1.55 var(--font-ui); } + +.book-cover { margin-top: -18px; } +.cover-stage { position: relative; display: grid; grid-template-columns: minmax(240px, 420px) minmax(220px, 1fr); gap: 44px; align-items: center; } +.cover-art { overflow: hidden; border-radius: 4px; background: #fff; box-shadow: 0 28px 80px rgb(16 19 26 / 20%); } +.cover-art img { width: 100%; height: auto; } +.cover-copy .cover-mark { color: var(--signal-deep); font: 750 10px/1 var(--font-ui); letter-spacing: .17em; text-transform: uppercase; } +.cover-copy h2 { margin: 14px 0 16px; font-size: clamp(36px, 5vw, 58px); } +.cover-copy p { color: var(--ink-soft); font-size: 19px; line-height: 1.55; } +.cover-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; } +.cover-meta { display: grid; gap: 7px; margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--ink-faint); font: 550 10px/1.35 var(--font-ui); } + +.trace-lab { margin: 34px 0; border: 1px solid var(--line); border-radius: 13px; background: var(--paper-raised); overflow: hidden; } +.trace-head { padding: 18px 20px 14px; } +.trace-head > span { color: var(--signal-deep); font: 800 9px/1 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; } +.trace-head h3 { margin: 8px 0 5px; } +.trace-head p { margin: 0; color: var(--ink-soft); font: 400 13px/1.5 var(--font-ui); } +.trace-controls { display: none; flex-wrap: wrap; gap: 10px; align-items: center; padding: 12px; border-bottom: 1px solid var(--line); } +.js .trace-controls { display: flex; } +.trace-controls button { min-height: 44px; padding: 0 13px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); cursor: pointer; color: var(--ink-soft); font: 700 11px/1 var(--font-ui); } +.trace-controls button:hover { border-color: var(--signal); color: var(--ink); } +.trace-controls button:disabled { cursor: not-allowed; opacity: .45; } +.trace-counter { margin-left: auto; color: var(--ink-faint); font: 650 10px/1 var(--font-mono); } +.trace-progress { display: none; height: 4px; overflow: hidden; background: var(--paper-muted); } +.js .trace-progress { display: block; } +.trace-progress span { display: block; width: var(--trace-progress); height: 100%; background: var(--signal); transition: width var(--motion-flow) var(--motion-ease); } +.trace-track { display: none; grid-template-columns: repeat(6, 1fr); gap: 4px; margin: 0; padding: 15px; border-bottom: 1px solid var(--line); list-style: none; } +.js .trace-track { display: grid; } +.trace-track > li { min-width: 0; } +.trace-node { position: relative; display: grid; width: 100%; min-height: 70px; padding: 10px 6px; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink-faint); cursor: pointer; font: 650 10px/1.3 var(--font-ui); text-align: center; transition: border-color var(--motion-fast) ease, background var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) ease; } +.trace-node.passed { border-color: color-mix(in srgb, var(--signal) 40%, var(--line)); color: var(--ink-soft); } +.trace-node.passed::after { position: absolute; top: 6px; right: 7px; color: var(--signal-deep); content: "✓"; font-size: 9px; } +.trace-node.active { transform: translateY(-2px); border-color: var(--signal); background: var(--signal-soft); color: var(--ink); box-shadow: inset 0 -3px var(--signal); } +.trace-detail { display: none; min-height: 185px; padding: 22px; } +.js .trace-detail { display: block; } +.trace-detail .step { color: var(--signal-deep); font: 750 10px/1 var(--font-ui); letter-spacing: .11em; text-transform: uppercase; } +.trace-detail h3 { margin: 10px 0; font-size: 23px; } +.trace-detail p { margin-bottom: 0; color: var(--ink-soft); font-size: 15px; } +.trace-detail code { font-size: 11px; } +.trace-detail [data-trace-source] { display: inline-block; margin-top: 14px; color: var(--signal-deep); font: 600 11px/1.4 var(--font-ui); text-decoration: none; } +.trace-print { display: block; margin: 0; padding: 18px 28px 18px 42px; } +.js .trace-print { display: none; } + +.evidence-claim { margin: 30px 0; overflow: hidden; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 10px; background: var(--paper-raised); } +.evidence-claim.is-documented { border-left-color: var(--purple); } +.evidence-claim.is-inference { border-left-color: var(--orange); } +.evidence-claim.is-future { border-left-color: var(--ink-faint); border-style: dashed; } +.evidence-claim-head { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; padding: 12px 15px; border-bottom: 1px solid var(--line); font-family: var(--font-ui); } +.evidence-claim-head span { color: var(--blue); font-size: 9px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; } +.evidence-claim.is-documented .evidence-claim-head span { color: var(--purple); } +.evidence-claim.is-inference .evidence-claim-head span { color: var(--orange); } +.evidence-claim.is-future .evidence-claim-head span { color: var(--ink-faint); } +.evidence-claim-head strong { font-size: 13px; } +.evidence-claim-body { padding: 15px; color: var(--ink-soft); font-size: 15px; } +.evidence-claim-body > :last-child { margin-bottom: 0; } +.evidence-claim-sources { display: grid; gap: 5px; padding: 10px 15px 13px; border-top: 1px solid var(--line); font: 500 9px/1.35 var(--font-ui); } +.evidence-claim-sources a { overflow-wrap: anywhere; color: var(--signal-deep); text-decoration: none; } + +.scenario-lab { margin: 34px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: var(--paper-raised); } +.scenario-head { padding: 18px 20px 13px; } +.scenario-head > span { color: var(--signal-deep); font: 800 9px/1 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; } +.scenario-head h3 { margin: 8px 0 5px; } +.scenario-head p { margin: 0; color: var(--ink-soft); font: 400 13px/1.5 var(--font-ui); } +.scenario-tabs { display: none; gap: 7px; overflow-x: auto; padding: 10px 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } +.js .scenario-tabs { display: flex; } +.scenario-tabs button { flex: none; min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink-soft); cursor: pointer; font: 700 10px/1 var(--font-ui); transition: border-color var(--motion-fast) ease, background var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) ease; } +.scenario-tabs button[aria-selected="true"] { transform: translateY(-1px); border-color: var(--signal); background: var(--signal-soft); color: var(--ink); } +.scenario-detail { display: none; padding: 20px; border-left: 4px solid var(--blue); transition: border-color var(--motion-detail) ease; } +.js .scenario-detail { display: block; } +.scenario-detail.tone-safe { border-left-color: var(--green); } +.scenario-detail.tone-warning { border-left-color: var(--orange); } +.scenario-detail.tone-failure { border-left-color: var(--signal); } +.scenario-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; } +.scenario-meta > span { color: var(--signal-deep); font: 800 9px/1 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; } +.scenario-meta > strong { color: var(--ink-faint); font: 750 9px/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; } +.scenario-detail h4 { margin: 7px 0 8px; font: 740 21px/1.2 var(--font-display); } +.scenario-detail > p, .scenario-detail li { color: var(--ink-soft); font-size: 14px; } +.scenario-detail > p { margin-bottom: 10px; } +.scenario-detail ul { margin-bottom: 12px; } +.scenario-sources { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid var(--line); font: 500 9px/1.35 var(--font-ui); } +.scenario-sources a { overflow-wrap: anywhere; color: var(--signal-deep); text-decoration: none; } +.scenario-print { display: block; padding: 18px 28px 18px 42px; } +.js .scenario-print { display: none; } + +.flow-lab { margin: 34px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: var(--paper-raised); } +.flow-head { padding: 18px 20px 14px; } +.flow-head > span { color: var(--signal-deep); font: 800 9px/1 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; } +.flow-head h3 { margin: 8px 0 5px; } +.flow-head p { margin: 0; color: var(--ink-soft); font: 400 13px/1.5 var(--font-ui); } +.flow-controls { display: none; flex-wrap: wrap; gap: 9px; align-items: center; padding: 11px 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } +.js .flow-controls { display: flex; } +.flow-controls button { min-height: 44px; padding: 0 13px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); color: var(--ink-soft); cursor: pointer; font: 700 10px/1 var(--font-ui); } +.flow-controls [data-flow-play] { border-color: var(--signal); color: var(--signal-deep); } +.flow-controls button:hover { border-color: var(--signal); color: var(--ink); } +.flow-controls button:disabled { cursor: not-allowed; opacity: .45; } +.flow-counter { margin-left: auto; color: var(--ink-faint); font: 650 10px/1 var(--font-mono); } +.flow-viewport { display: none; overflow-x: auto; overscroll-behavior-inline: contain; padding: 0 10px; scrollbar-width: thin; } +.js .flow-viewport { display: block; } +.flow-track-shell { position: relative; min-width: max(100%, calc(var(--flow-count) * 110px)); } +.flow-track { display: grid; grid-template-columns: repeat(var(--flow-count), minmax(98px, 1fr)); gap: 9px; margin: 0; padding: 27px 0 14px; list-style: none; } +.flow-track > li { min-width: 0; } +.flow-rail { position: absolute; top: 48px; height: 2px; background: var(--line-strong); } +.flow-rail span { display: block; width: 0; height: 100%; background: var(--signal); transition: width var(--motion-flow) var(--motion-ease); } +.flow-token { position: absolute; z-index: 3; top: 41px; left: -7px; width: 14px; height: 14px; border: 3px solid var(--paper-raised); border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 1px var(--signal); transition: transform var(--motion-flow) var(--motion-ease); } +.flow-token i { position: absolute; inset: 3px; border-radius: 50%; background: var(--paper-raised); } +.flow-node { position: relative; z-index: 2; display: grid; gap: 8px; justify-items: center; min-height: 74px; padding: 7px 6px 8px; border: 0; background: transparent; color: var(--ink-faint); cursor: pointer; font-family: var(--font-ui); } +.flow-node > span { display: grid; width: 28px; height: 28px; place-items: center; border: 2px solid var(--line-strong); border-radius: 50%; background: var(--paper-raised); color: var(--ink-faint); font: 800 9px/1 var(--font-mono); transition: border-color var(--motion-detail) ease, background var(--motion-detail) ease, color var(--motion-detail) ease, transform var(--motion-detail) ease; } +.flow-node strong { max-width: 14ch; color: inherit; font: 700 10px/1.25 var(--font-ui); text-align: center; } +.flow-node.passed > span { border-color: var(--signal); color: var(--signal-deep); } +.flow-node.active { color: var(--ink); } +.flow-node.active > span { transform: scale(1.12); border-color: var(--signal); background: var(--signal-soft); color: var(--signal-deep); } +.flow-node.tone-durable.active > span { border-color: var(--green); background: color-mix(in srgb, var(--green) 13%, var(--paper-raised)); color: var(--green); } +.flow-node.tone-transport.active > span, .flow-node.tone-client.active > span { border-color: var(--blue); background: color-mix(in srgb, var(--blue) 12%, var(--paper-raised)); color: var(--blue); } +.flow-node.tone-runtime.active > span, .flow-node.tone-side-effect.active > span { border-color: var(--orange); background: color-mix(in srgb, var(--orange) 12%, var(--paper-raised)); color: var(--orange); } +.flow-node.tone-failure.active > span { border-color: var(--signal); color: var(--signal-deep); } +.flow-detail { display: none; min-height: 190px; padding: 20px; border-top: 1px solid var(--line); border-left: 4px solid var(--blue); transition: border-color var(--motion-detail) ease; } +.js .flow-detail { display: block; } +.flow-detail.tone-durable { border-left-color: var(--green); } +.flow-detail.tone-runtime, .flow-detail.tone-side-effect { border-left-color: var(--orange); } +.flow-detail.tone-failure { border-left-color: var(--signal); } +.flow-detail-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; } +.flow-detail-meta span { color: var(--signal-deep); font: 800 9px/1 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; } +.flow-detail-meta strong { color: var(--ink-faint); font: 750 9px/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; } +.flow-detail-meta code { color: var(--ink-faint); font-size: 10px; } +.flow-detail h4 { margin: 9px 0 8px; font: 740 21px/1.2 var(--font-display); } +.flow-detail > p { margin: 0 0 12px; color: var(--ink-soft); font-size: 14px; } +.flow-sources { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid var(--line); font: 500 9px/1.35 var(--font-ui); } +.flow-sources a { overflow-wrap: anywhere; color: var(--signal-deep); text-decoration: none; } +.flow-print { display: block; padding: 18px 28px 18px 42px; } +.js .flow-print { display: none; } + +@media (max-width: 720px) { + .cover-stage { grid-template-columns: 1fr; } + .cover-art { width: min(100%, 360px); } + .stat-grid, .decision-grid { grid-template-columns: 1fr; } + .layer-row { grid-template-columns: 1fr; } + .layer-label { justify-content: flex-start; text-align: left; } + .trace-track { grid-template-columns: repeat(3, 1fr); } + .flow-controls button { flex: 1 1 auto; } + .flow-counter { width: 100%; margin-left: 0; text-align: right; } + .source-caption { flex-wrap: wrap; } + .source-kind { margin-left: 0; } + .diagram-toolbar { grid-template-columns: 1fr auto; } + .diagram-status { grid-column: 1 / -1; min-width: 0; text-align: left; } + .diagram-actions { max-width: 100%; overflow-x: auto; padding: 2px; } + .diagram-actions button span + span { display: none; } + .diagram-help { font-size: 9px; } +} + +@media print { + .figure, .source-excerpt { break-inside: avoid; box-shadow: none; } + .figure-body, .source-excerpt, .source-caption, .source-note { background: #fff !important; color: #000 !important; } + .figure-head, .figure-text, .figure figcaption, .figure-sources { background: #fff; color: #000; } + .figure-text { display: block; } + .figure-text summary { list-style: none; } + .figure-text summary::after { content: ":"; } + .figure-sources a, .source-path, .source-kind, .source-note, .source-note strong { color: #000 !important; } + .diagram-toolbar, .diagram-help, .diagram-dialog { display: none !important; } + .diagram-viewport { min-height: 0; overflow: visible; border: 0; background: #fff; } + .mermaid { min-height: 0; padding: 0; transform: none !important; transition: none !important; } + .source-copy, .trace-controls, .trace-progress, .trace-track, .trace-detail { display: none !important; } + .source-line::before { color: #555; } + .source-line.is-focus { background: #eee; } + .js .trace-print { display: block; margin: 0; padding: 18px 28px 18px 42px; } + .trace-print li { break-inside: avoid; margin-bottom: 12px; } + .trace-print p { margin: 3px 0; } + .scenario-tabs, .scenario-detail { display: none !important; } + .js .scenario-print { display: block; padding: 18px 28px 18px 42px; } + .scenario-print > li { break-inside: avoid; margin-bottom: 14px; } + .flow-controls, .flow-viewport, .flow-detail { display: none !important; } + .js .flow-print { display: block; padding: 18px 28px 18px 42px; } + .flow-print > li { break-inside: avoid; margin-bottom: 14px; } + details:not([open]) > :not(summary) { display: block !important; } +} diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 0000000..c19fc88 --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,515 @@ +:root { + color-scheme: light dark; + --paper: #f7f4ee; + --paper-raised: #fffdf8; + --paper-muted: #eee9df; + --ink: #10131a; + --ink-soft: #4b505b; + --ink-faint: #616671; + --line: #d9d3c8; + --line-strong: #b9b0a2; + --signal: #e31b23; + --signal-deep: #b51219; + --signal-soft: #fde6e4; + --navy: #091222; + --navy-raised: #111d30; + --navy-line: #2c3a51; + --navy-text: #f3f6fb; + --navy-muted: #aab5c6; + --blue: #075fae; + --orange: #e46f18; + --green: #08724e; + --purple: #7652c6; + --yellow: #d8a619; + --shadow: 0 18px 60px rgb(20 18 14 / 10%); + --motion-fast: 180ms; + --motion-detail: 220ms; + --motion-flow: 300ms; + --motion-ease: cubic-bezier(.2,.8,.2,1); + --font-display: "Avenir Next", "Segoe UI", system-ui, sans-serif; + --font-body: Charter, "Bitstream Charter", "Iowan Old Style", Georgia, serif; + --font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace; + --sidebar-expanded: 304px; + --sidebar-collapsed: 76px; + --sidebar: var(--sidebar-expanded); + --outline: 224px; + --measure: 780px; + --chapter-dock-reserve: 114px; +} + +:root[data-sidebar="collapsed"] { --sidebar: var(--sidebar-collapsed); } + +:root[data-theme="dark"] { + --paper: #0d1118; + --paper-raised: #151a23; + --paper-muted: #1d2430; + --ink: #f3f1ea; + --ink-soft: #c5c8ce; + --ink-faint: #9da3ad; + --line: #303744; + --line-strong: #4b5565; + --signal: #ff454b; + --signal-deep: #ff6c70; + --signal-soft: #391a1d; + --blue: #73baff; + --green: #63d4aa; + --shadow: 0 18px 60px rgb(0 0 0 / 32%); +} + +@media (prefers-color-scheme: dark) { + :root[data-theme="system"] { + --paper: #0d1118; + --paper-raised: #151a23; + --paper-muted: #1d2430; + --ink: #f3f1ea; + --ink-soft: #c5c8ce; + --ink-faint: #9da3ad; + --line: #303744; + --line-strong: #4b5565; + --signal: #ff454b; + --signal-deep: #ff6c70; + --signal-soft: #391a1d; + --blue: #73baff; + --green: #63d4aa; + --shadow: 0 18px 60px rgb(0 0 0 / 32%); + } +} + +*, *::before, *::after { box-sizing: border-box; } +html { scroll-behavior: smooth; scroll-padding-top: 84px; } +body { + margin: 0; + min-width: 320px; + background: var(--paper); + color: var(--ink); + font-family: var(--font-body); + font-size: 18px; + line-height: 1.72; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} +body.drawer-open { overflow: hidden; } +a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .15em; } +button, input { font: inherit; } +button { color: inherit; } +img { display: block; max-width: 100%; } +code, kbd, pre { font-family: var(--font-mono); } +code { font-size: .88em; } +::selection { background: var(--signal); color: #fff; } + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.skip-link { + position: fixed; + z-index: 200; + top: 10px; + left: 10px; + transform: translateY(-140%); + padding: 9px 14px; + border-radius: 8px; + background: var(--ink); + color: var(--paper); + font: 600 13px/1 var(--font-ui); + text-decoration: none; +} +.skip-link:focus { transform: none; } + +:focus-visible { outline: 3px solid color-mix(in srgb, var(--signal) 70%, transparent); outline-offset: 3px; } + +.reading-progress { + position: fixed; + inset: 0 0 auto 0; + height: 3px; + z-index: 140; + background: transparent; +} +.reading-progress span { display: block; height: 100%; background: var(--signal); transition: width .2s ease; } + +.book-shell { min-height: 100vh; } +.book-sidebar { + position: fixed; + inset: 0 auto 0 0; + z-index: 80; + width: var(--sidebar); + display: flex; + flex-direction: column; + background: var(--paper-raised); + border-right: 1px solid var(--line); + transition: width var(--motion-fast) var(--motion-ease); +} +.sidebar-head { padding: 27px 24px 22px; border-bottom: 1px solid var(--line); } +.sidebar-head-row { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; } +.sidebar-identity { min-width: 0; } +.imprint { + display: inline-flex; + color: var(--signal-deep); + font: 700 10px/1 var(--font-ui); + letter-spacing: .16em; + text-decoration: none; + text-transform: uppercase; +} +.book-title { + display: block; + margin-top: 11px; + color: var(--ink); + font: 750 25px/.98 var(--font-display); + letter-spacing: -.04em; + text-decoration: none; +} +.book-title-mark { display: none; } +.book-title-copy { color: var(--ink); } +.book-title-copy > span { color: var(--signal); } +.source-lock { + display: flex; + align-items: center; + gap: 7px; + margin-top: 11px; + color: var(--ink-faint); + font: 500 10px/1.3 var(--font-ui); + letter-spacing: .05em; + text-transform: uppercase; +} +.source-lock span { width: 7px; height: 7px; border-radius: 50%; background: var(--green); } +.source-lock code { font-size: 10px; text-transform: none; } +.sidebar-toggle { + flex: none; + width: 44px; + min-height: 44px; + padding: 0; + border: 1px solid var(--line); + border-radius: 8px; + background: var(--paper-raised); + color: var(--ink-faint); + cursor: pointer; + font: 700 22px/1 var(--font-ui); +} +.sidebar-toggle:hover { border-color: var(--signal); color: var(--signal-deep); } +.book-toc { flex: 1; overflow-y: auto; padding: 12px 12px 38px; scrollbar-width: thin; } +.toc-part { margin: 0; } +.toc-part h2 { + margin: 18px 11px 7px; + color: var(--ink-faint); + font: 700 10px/1.2 var(--font-ui); + letter-spacing: .13em; + text-transform: uppercase; +} +.toc-link { + display: grid; + grid-template-columns: 37px minmax(0, 1fr); + gap: 7px; + align-items: baseline; + margin: 2px 0; + padding: 7px 10px; + border-left: 2px solid transparent; + border-radius: 7px; + color: var(--ink-soft); + font: 500 13px/1.35 var(--font-ui); + text-decoration: none; +} +.toc-link:hover { background: var(--paper-muted); color: var(--ink); } +.toc-link.active { border-left-color: var(--signal); background: var(--signal-soft); color: var(--ink); font-weight: 700; } +.toc-marker { display: inline-flex; gap: 5px; align-items: center; color: var(--ink-faint); font: 500 10px/1.3 var(--font-mono); } +.toc-icon { color: var(--signal-deep); font: 700 9px/1 var(--font-ui); } +.toc-number { font: inherit; } +.toc-link.active .toc-marker { color: var(--signal-deep); } +.toc-title { overflow: hidden; text-overflow: ellipsis; } +.sidebar-foot { padding: 13px 23px 18px; border-top: 1px solid var(--line); } +.sidebar-foot a { color: var(--ink-faint); font: 600 11px/1 var(--font-ui); text-decoration: none; } +.sidebar-foot a:hover { color: var(--signal-deep); } + +.sidebar-scrim { display: none; } +.sidebar-tooltip { + position: fixed; + z-index: 160; + max-width: min(300px, calc(100vw - 24px)); + padding: 7px 9px; + border: 1px solid var(--line-strong); + border-radius: 7px; + background: var(--ink); + color: var(--paper); + box-shadow: var(--shadow); + font: 650 11px/1.3 var(--font-ui); + pointer-events: none; +} +.book-main { min-width: 0; margin-left: var(--sidebar); transition: margin-left var(--motion-fast) var(--motion-ease); } +.book-toolbar { + position: sticky; + top: 0; + z-index: 60; + min-height: 58px; + display: flex; + align-items: center; + gap: 12px; + padding: 10px 24px; + border-bottom: 1px solid color-mix(in srgb, var(--line) 80%, transparent); + background: color-mix(in srgb, var(--paper) 88%, transparent); + backdrop-filter: blur(12px); +} +.toolbar-crumb { min-width: 0; display: flex; gap: 8px; align-items: baseline; font: 500 12px/1.2 var(--font-ui); } +.toolbar-crumb span { flex: none; color: var(--ink-faint); } +.toolbar-crumb strong { overflow: hidden; color: var(--ink-soft); text-overflow: ellipsis; white-space: nowrap; } +.toolbar-actions { display: flex; gap: 8px; align-items: center; margin-left: auto; } +.icon-button, .search-trigger { + min-height: 36px; + border: 1px solid var(--line); + border-radius: 8px; + background: var(--paper-raised); + color: var(--ink-soft); + cursor: pointer; + font: 650 12px/1 var(--font-ui); +} +.icon-button { width: 38px; padding: 0; font-size: 17px; } +.search-trigger { display: flex; gap: 9px; align-items: center; padding: 0 10px; } +.search-trigger kbd { padding: 3px 6px; border: 1px solid var(--line); border-radius: 5px; color: var(--ink-faint); font-size: 9px; } +.icon-button:hover, .search-trigger:hover { border-color: var(--line-strong); color: var(--ink); } +.mobile-only { display: none; } + +.reading-grid { + display: grid; + grid-template-columns: minmax(0, var(--measure)) var(--outline); + gap: 64px; + justify-content: center; + padding: 68px 44px calc(110px + var(--chapter-dock-reserve)); +} +.chapter { min-width: 0; } +.chapter-head { margin-bottom: 44px; } +.chapter-kicker { display: flex; gap: 11px; align-items: center; margin-bottom: 15px; color: var(--signal-deep); font: 700 11px/1 var(--font-ui); letter-spacing: .14em; text-transform: uppercase; } +.verification { padding: 4px 7px; border: 1px solid currentColor; border-radius: 999px; color: var(--ink-faint); font-size: 9px; letter-spacing: .08em; } +.verification.is-verified { color: var(--green); } +.verification.is-source-checked { color: var(--blue); } +.chapter h1 { + max-width: 16ch; + margin: 0; + font: 760 clamp(38px, 5vw, 64px)/.98 var(--font-display); + letter-spacing: -.055em; + text-wrap: balance; +} +.chapter-summary { + max-width: 700px; + margin: 23px 0 0; + color: var(--ink-soft); + font-size: clamp(20px, 2.1vw, 25px); + line-height: 1.46; +} +.objectives { margin-top: 28px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } +.objectives summary { padding: 11px 0; color: var(--ink-soft); cursor: pointer; font: 700 12px/1.4 var(--font-ui); } +.objectives ul { margin: 0 0 17px; padding-left: 22px; color: var(--ink-soft); font-size: 16px; } + +.chapter-body h2 { + position: relative; + margin: 64px 0 18px; + font: 740 clamp(27px, 3.2vw, 36px)/1.08 var(--font-display); + letter-spacing: -.035em; + text-wrap: balance; +} +.chapter-body h3 { position: relative; margin: 37px 0 12px; font: 730 21px/1.2 var(--font-display); letter-spacing: -.02em; } +.chapter-body p { margin: 0 0 21px; } +.chapter-body > p:first-child { font-size: 21px; line-height: 1.58; } +.chapter-body strong { font-weight: 700; } +.chapter-body a { color: var(--signal-deep); } +.chapter-body ul, .chapter-body ol { margin: 0 0 24px; padding-left: 25px; } +.chapter-body li { margin: 6px 0; padding-left: 3px; } +.chapter-body > table { + display: block; + width: 100%; + max-width: 100%; + margin: 0 0 28px; + overflow-x: auto; + border-collapse: collapse; + font: 500 14px/1.45 var(--font-ui); + scrollbar-width: thin; +} +.chapter-body > table th, +.chapter-body > table td { padding: 9px 10px; border: 1px solid var(--line); text-align: left; vertical-align: top; } +.chapter-body > table thead th { background: var(--paper-muted); color: var(--ink); font-weight: 750; } +.chapter-body > table tbody th { color: var(--ink); font-weight: 700; } +.chapter-body blockquote { margin: 32px 0; padding: 3px 0 3px 22px; border-left: 4px solid var(--signal); color: var(--ink-soft); font-size: 21px; font-style: italic; } +.chapter-body :not(pre) > code { padding: .14em .34em; border: 1px solid var(--line); border-radius: 4px; background: var(--paper-muted); color: var(--ink); } +.chapter-body hr { margin: 55px 0; border: 0; border-top: 1px solid var(--line); } +.heading-anchor { position: absolute; right: 100%; padding-right: 10px; color: var(--ink-faint) !important; opacity: 0; font: 500 17px/1 var(--font-ui); text-decoration: none; } +.anchored-heading:hover .heading-anchor, .heading-anchor:focus { opacity: 1; } + +.page-outline { position: sticky; top: 90px; align-self: start; max-height: calc(100vh - 115px); overflow: auto; padding-top: 4px; font-family: var(--font-ui); } +.page-outline > strong { color: var(--ink); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; } +.page-outline nav { display: flex; flex-direction: column; gap: 9px; margin-top: 14px; } +.page-outline nav a { border-left: 1px solid var(--line); padding-left: 12px; color: var(--ink-faint); font-size: 11px; line-height: 1.35; text-decoration: none; } +.page-outline nav a:hover { border-left-color: var(--signal); color: var(--ink); } +.page-outline nav a.nested { padding-left: 23px; } +.outline-source { display: block; margin-top: 24px; color: var(--signal-deep); font-size: 10px; font-weight: 700; text-decoration: none; } + +.chapter-footer { margin-top: 82px; padding-top: 28px; border-top: 1px solid var(--line); } +.evidence-stamp { display: flex; gap: 12px; align-items: center; color: var(--ink-faint); font-family: var(--font-ui); } +.stamp-mark { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 9px; background: var(--signal); color: #fff; font-size: 12px; font-weight: 800; } +.evidence-stamp div { display: flex; flex-direction: column; gap: 2px; } +.evidence-stamp strong { color: var(--ink-soft); font-size: 11px; } +.evidence-stamp span { font-size: 10px; } +.chapter-dock { + position: fixed; + z-index: 65; + right: 0; + bottom: 0; + left: var(--sidebar); + padding: 10px 28px calc(10px + env(safe-area-inset-bottom)); + pointer-events: none; + transition: left var(--motion-fast) var(--motion-ease); +} +.chapter-dock-inner { + display: grid; + grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); + gap: 12px; + align-items: center; + width: min(100%, calc(var(--measure) + var(--outline) + 64px)); + min-height: 74px; + margin: 0 auto; + padding: 8px; + border: 1px solid color-mix(in srgb, var(--line-strong) 80%, transparent); + border-radius: 13px; + background: color-mix(in srgb, var(--paper-raised) 92%, transparent); + box-shadow: 0 12px 38px rgb(20 18 14 / 15%); + backdrop-filter: blur(14px); + pointer-events: auto; +} +.chapter-dock-link { + display: flex; + gap: 10px; + align-items: center; + min-width: 0; + min-height: 56px; + padding: 8px 10px; + border: 1px solid transparent; + border-radius: 9px; + color: var(--ink); + text-decoration: none; +} +.chapter-dock-link:hover { border-color: var(--line-strong); background: var(--paper-muted); } +.chapter-dock-link > span[aria-hidden="true"] { flex: none; color: var(--signal-deep); font: 700 18px/1 var(--font-ui); } +.chapter-dock-link-copy { min-width: 0; } +.chapter-dock-link-copy small { display: block; margin-bottom: 4px; color: var(--ink-faint); font: 700 9px/1 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; } +.chapter-dock-link-copy strong { display: block; overflow: hidden; color: var(--ink); font: 700 12px/1.3 var(--font-ui); text-overflow: ellipsis; white-space: nowrap; } +.chapter-dock-link.next { justify-content: flex-end; text-align: right; } +.chapter-dock-context { display: grid; gap: 4px; min-width: 102px; padding: 0 12px; border-right: 1px solid var(--line); border-left: 1px solid var(--line); color: var(--ink-faint); font-family: var(--font-ui); text-align: center; } +.chapter-dock-context > span { max-width: 16ch; overflow: hidden; font-size: 9px; font-weight: 650; letter-spacing: .07em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; } +.chapter-dock-context strong { color: var(--ink-soft); font: 650 11px/1 var(--font-mono); } +.chapter-dock-context b { color: var(--signal-deep); font-weight: 800; } +.chapter-dock-spacer { min-height: 56px; } + +.search-dialog { width: min(720px, calc(100vw - 30px)); max-height: min(780px, calc(100vh - 30px)); padding: 0; border: 1px solid var(--line-strong); border-radius: 16px; background: var(--paper-raised); color: var(--ink); box-shadow: var(--shadow); } +.search-dialog::backdrop { background: rgb(7 10 15 / 56%); backdrop-filter: blur(3px); } +.search-head { display: flex; gap: 20px; align-items: start; justify-content: space-between; padding: 23px 24px 15px; } +.search-eyebrow { color: var(--signal-deep); font: 700 9px/1 var(--font-ui); letter-spacing: .15em; text-transform: uppercase; } +.search-head h2 { margin: 7px 0 0; font: 750 21px/1.15 var(--font-display); letter-spacing: -.025em; } +.search-field { display: flex; gap: 9px; align-items: center; margin: 0 24px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--paper); } +.search-field input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font: 500 15px/1.3 var(--font-ui); } +.search-status { margin: 11px 25px; color: var(--ink-faint); font: 500 11px/1.4 var(--font-ui); } +.search-results { max-height: 520px; overflow-y: auto; padding: 0 14px 16px; } +.search-result { display: block; padding: 13px 11px; border-top: 1px solid var(--line); color: inherit; text-decoration: none; } +.search-result:hover { background: var(--paper-muted); } +.search-result > span { color: var(--signal-deep); font: 700 9px/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; } +.search-result strong { display: block; margin-top: 5px; font: 730 15px/1.25 var(--font-ui); } +.search-result p { margin: 5px 0 0; color: var(--ink-soft); font: 400 12px/1.45 var(--font-ui); } +.search-result mark { background: var(--signal-soft); color: inherit; } + +.not-found { width: min(720px, calc(100% - 40px)); margin: 12vh auto; } +.not-found .eyebrow { color: var(--signal-deep); font: 700 11px/1 var(--font-ui); letter-spacing: .15em; text-transform: uppercase; } +.not-found h1 { max-width: 14ch; margin: 15px 0; font: 760 clamp(40px, 8vw, 72px)/.98 var(--font-display); letter-spacing: -.05em; } +.button { display: inline-flex; padding: 11px 16px; border: 1px solid var(--line-strong); border-radius: 8px; font: 700 12px/1 var(--font-ui); text-decoration: none; } +.button.primary { border-color: var(--signal); background: var(--signal); color: #fff; } + +@media (max-width: 1220px) { + .reading-grid { grid-template-columns: minmax(0, var(--measure)); } + .page-outline { display: none; } +} + +@media (min-width: 901px) { + :root[data-sidebar="collapsed"] .sidebar-head { padding: 12px; } + :root[data-sidebar="collapsed"] .sidebar-head-row { flex-direction: column; gap: 9px; align-items: center; } + :root[data-sidebar="collapsed"] .sidebar-toggle { order: -1; } + :root[data-sidebar="collapsed"] .imprint, + :root[data-sidebar="collapsed"] .source-lock { display: none; } + :root[data-sidebar="collapsed"] .book-title { + display: grid; + width: 44px; + height: 44px; + margin: 0; + place-items: center; + border: 1px solid var(--line); + border-radius: 8px; + background: var(--paper-muted); + font-size: 0; + } + :root[data-sidebar="collapsed"] .book-title-mark { display: block; width: 34px; height: 34px; } + :root[data-sidebar="collapsed"] .book-title-copy { display: none; } + :root[data-sidebar="collapsed"] .book-toc { padding: 12px 10px 30px; } + :root[data-sidebar="collapsed"] .toc-part h2 { display: none; } + :root[data-sidebar="collapsed"] .toc-link { grid-template-columns: 1fr; justify-items: center; min-height: 44px; margin: 5px 0; padding: 6px; border-left-width: 2px; } + :root[data-sidebar="collapsed"] .toc-marker { flex-direction: column; gap: 2px; align-items: center; line-height: 1; } + :root[data-sidebar="collapsed"] .toc-icon { font-size: 8px; } + :root[data-sidebar="collapsed"] .toc-number { font-size: 10px; } + :root[data-sidebar="collapsed"] .toc-title { display: none; } + :root[data-sidebar="collapsed"] .sidebar-foot { padding: 14px 10px 18px; text-align: center; } + :root[data-sidebar="collapsed"] .sidebar-foot a { font-size: 0; } + :root[data-sidebar="collapsed"] .sidebar-foot a::before { color: var(--signal-deep); content: "↗"; font: 700 17px/1 var(--font-ui); } +} + +@media (max-width: 900px) { + :root { --chapter-dock-reserve: 102px; } + :root[data-sidebar="collapsed"] { --sidebar: var(--sidebar-expanded); } + .book-sidebar { visibility: hidden; transform: translateX(-102%); transition: transform .2s ease, visibility .2s; box-shadow: var(--shadow); } + .book-sidebar.open { visibility: visible; transform: none; } + .sidebar-toggle { display: none; } + .sidebar-scrim { position: fixed; inset: 0; z-index: 70; display: block; visibility: hidden; background: rgb(7 10 15 / 58%); opacity: 0; transition: opacity .2s ease, visibility .2s; } + .sidebar-scrim.open { visibility: visible; opacity: 1; } + .book-main { margin-left: 0; } + .mobile-only { display: inline-grid; place-items: center; } + .reading-grid { padding: 54px 28px calc(85px + var(--chapter-dock-reserve)); } + .chapter-dock { left: 0; padding-right: 18px; padding-left: 18px; } +} + +@media (max-width: 560px) { + :root { --chapter-dock-reserve: 78px; } + body { font-size: 17px; } + .book-toolbar { padding: 9px 13px; } + .toolbar-crumb span, .search-trigger span:not(:first-child), .search-trigger kbd { display: none; } + .search-trigger { width: 38px; justify-content: center; padding: 0; font-size: 18px; } + .reading-grid { padding: 42px 19px calc(72px + var(--chapter-dock-reserve)); } + .chapter h1 { font-size: 39px; } + .chapter-summary { font-size: 19px; } + .chapter-body h2 { margin-top: 50px; font-size: 28px; } + .chapter-dock { padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); } + .chapter-dock-inner { gap: 3px; min-height: 54px; padding: 4px; border-radius: 10px; } + .chapter-dock-link { gap: 5px; min-height: 44px; padding: 6px; } + .chapter-dock-link-copy small { margin: 0; font-size: 8px; } + .chapter-dock-link-copy strong { display: none; } + .chapter-dock-context { min-width: 46px; padding: 0 7px; } + .chapter-dock-context > span { display: none; } + .chapter-dock-spacer { min-height: 44px; } + .heading-anchor { display: none; } +} + +@media (prefers-reduced-motion: reduce) { + *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } +} + +@media print { + :root { --paper: #fff; --paper-raised: #fff; --paper-muted: #f4f4f4; --ink: #000; --ink-soft: #222; --ink-faint: #444; --line: #bbb; --navy: #fff; --navy-raised: #fff; --navy-line: #777; --navy-text: #000; --navy-muted: #333; } + .book-sidebar, .book-toolbar, .page-outline, .reading-progress, .chapter-dock, .sidebar-tooltip, .search-dialog { display: none !important; } + .book-main { margin: 0; } + .reading-grid { display: block; padding: 0; } + .chapter { max-width: none; } + .chapter-head { break-after: avoid; } + .chapter-body > table { display: table; width: 100%; max-width: none; overflow: visible; table-layout: fixed; font-size: 8pt; } + .chapter-body > table th, .chapter-body > table td { overflow-wrap: anywhere; } + a { color: #000 !important; text-decoration: none; } + .chapter-body p > a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; word-break: break-all; } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b5b5783 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "astro/tsconfigs/strict", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "resolveJsonModule": true + } +} +
    +
    + Interactive contract tracer +

    What does one adapter call actually prove?

    +

    Choose a call, then move from durable intent to native work and back. The return boundary and the event boundary stay visibly separate.

    +
    + +
    + +
    + Static adapter-operation ledger +
    + + + {Object.values(resolved).map((scenario) => )} +
    CallImmediate/native meaningEvent/durable meaningCaveat
    {scenario.label}
    {scenario.method}
    {scenario.immediate} {scenario.native}{scenario.event} {scenario.durable}{scenario.caveat}
    +
    +
    + + +