From ea45d635e4c1ec508294c63ebef9a0098a354748 Mon Sep 17 00:00:00 2001 From: Ashley Venn Date: Fri, 26 Jun 2026 19:38:39 -0700 Subject: [PATCH] docs: reset plan around sqlite workflow --- AGENTS.md | 206 ++++------ .../PLAN_REVIEW_SUMMARY.md | 0 Codex Documentation/Archived plans/README.md | 70 +++- .../V1_BACKEND_COMPLETION_GAP_MATRIX.md | 0 .../V1_BLOCK_16_MongoDB_Runtime_Adapter.md | 0 ...1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md | 0 .../V1_BLOCK_17_Backend_Acceptance_Handoff.md | 0 .../V1_BLOCK_18_UI_Foundation_Design_Spike.md | 0 .../Current Software Plan/README.md | 66 ---- .../V1_ADR_002_MongoDB_Document_Schema_V1.md | 366 ------------------ .../V1_ADR_002_SQLite_Document_Schema_V1.md | 35 ++ .../V1_ADR_003_MongoDB_Runtime_Topology.md | 177 --------- ...ADR_003_Runtime_Topology_Embedded_Local.md | 26 ++ .../V1_ADR_004_Repository_Domain_Boundary.md | 9 + .../V1_ADR_005_Export_Backup_Boundary.md | 9 + .../V1_ADR_006_Schedule_Snapshot_Policy.md | 8 + .../V1_ADR_007_Test_Strategy.md | 8 + .../V1_ADR_008_Notification_Abstraction.md | 8 + ...19_Repository_&_Persistence_Abstraction.md | 74 ++++ ...K_20_SQLite_Persistence_Adapter_Package.md | 77 ++++ ...BLOCK_21_Notification_Abstraction_Layer.md | 40 ++ .../V1_BLOCK_22_OS-Notification_Package.md | 46 +++ .../V1_BLOCK_23_Export_Abstraction_Layer.md | 40 ++ ...LOCK_24_Backup_&_Export_Library_Package.md | 73 ++++ ...V1_BLOCK_25_Scheduler_Integration_Tests.md | 37 ++ ...K_26_Verification_&_Contract_Test_Suite.md | 37 ++ ...V1_BLOCK_27_Deployment_&_Dev_Experience.md | 69 ++++ ...OCK_28_Project-wide_Documentation_Sweep.md | 36 ++ .../V1_BLOCK_29_Flutter_UI_Foundation.md | 131 +++++++ .../V1_PUBLIC_API_BASELINE.md | 186 ++++++++- .../V1_REQUIREMENTS_TRACEABILITY_MATRIX.md | 14 +- README.md | 151 +++----- adhd_scheduling_starter_project.7z | Bin 74361 -> 0 bytes archive/Codex Documentation.7z | Bin 0 -> 60054 bytes archive/adhd_scheduling_starter_project.7z | Bin 0 -> 142768 bytes 35 files changed, 1145 insertions(+), 854 deletions(-) rename Codex Documentation/{Current Software Plan => Archived plans}/PLAN_REVIEW_SUMMARY.md (100%) rename Codex Documentation/{Current Software Plan => Archived plans}/V1_BACKEND_COMPLETION_GAP_MATRIX.md (100%) rename Codex Documentation/{Current Software Plan => Archived plans}/V1_BLOCK_16_MongoDB_Runtime_Adapter.md (100%) rename Codex Documentation/{Current Software Plan => Archived plans}/V1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md (100%) rename Codex Documentation/{Current Software Plan => Archived plans}/V1_BLOCK_17_Backend_Acceptance_Handoff.md (100%) rename Codex Documentation/{Current Software Plan => Archived plans}/V1_BLOCK_18_UI_Foundation_Design_Spike.md (100%) delete mode 100644 Codex Documentation/Current Software Plan/README.md delete mode 100644 Codex Documentation/Current Software Plan/V1_ADR_002_MongoDB_Document_Schema_V1.md create mode 100644 Codex Documentation/Current Software Plan/V1_ADR_002_SQLite_Document_Schema_V1.md delete mode 100644 Codex Documentation/Current Software Plan/V1_ADR_003_MongoDB_Runtime_Topology.md create mode 100644 Codex Documentation/Current Software Plan/V1_ADR_003_Runtime_Topology_Embedded_Local.md create mode 100644 Codex Documentation/Current Software Plan/V1_ADR_004_Repository_Domain_Boundary.md create mode 100644 Codex Documentation/Current Software Plan/V1_ADR_005_Export_Backup_Boundary.md create mode 100644 Codex Documentation/Current Software Plan/V1_ADR_006_Schedule_Snapshot_Policy.md create mode 100644 Codex Documentation/Current Software Plan/V1_ADR_007_Test_Strategy.md create mode 100644 Codex Documentation/Current Software Plan/V1_ADR_008_Notification_Abstraction.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_19_Repository_&_Persistence_Abstraction.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_20_SQLite_Persistence_Adapter_Package.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_21_Notification_Abstraction_Layer.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_22_OS-Notification_Package.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_23_Export_Abstraction_Layer.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_24_Backup_&_Export_Library_Package.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_25_Scheduler_Integration_Tests.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_26_Verification_&_Contract_Test_Suite.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_27_Deployment_&_Dev_Experience.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_28_Project-wide_Documentation_Sweep.md create mode 100644 Codex Documentation/Current Software Plan/V1_BLOCK_29_Flutter_UI_Foundation.md delete mode 100644 adhd_scheduling_starter_project.7z create mode 100644 archive/Codex Documentation.7z create mode 100644 archive/adhd_scheduling_starter_project.7z diff --git a/AGENTS.md b/AGENTS.md index cd77f0f..9abd7b4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,164 +1,114 @@ -# AGENTS.md — Codex Project Rules +# AGENTS.md — Codex Project Rules (SQLite‑First, July 2026) -This file is persistent project guidance. Codex must treat it as standing instructions for this repository. +This document supersedes all previous agent rule files. Treat it as the single source of truth. -## User and product context +--- -The product owner is a software engineer building a personal scheduling app for difficult ADHD/executive-dysfunction scheduling problems. The app must reduce planning friction, preserve task order, prevent forgotten tasks, and recover gracefully when the user misses work, burns out, or cannot manually reorganize a plan. +## 0. Quick‑start for Codex -Design priorities: +* Blocks live in `Codex Documentation/Current Software Plan/`. +* Work strictly in numerical order (Block 19 → 20 … 29). +* Each block contains numbered `XHIGH` / `HIGH` chunks. +* Stop at every `BREAKPOINT` in a chunk; wait for confirmation before continuing. +* Before coding, run `scripts/bootstrap_dev.sh` to set up the local dev DB. -1. Low-friction interactions. -2. Reliable scheduling behavior. -3. No shame, guilt, punishment, or productivity-slogan framing. -4. Preserve flexible task order unless the user explicitly chooses otherwise. -5. Never move locked or inflexible time during automatic rescheduling. -6. Keep hidden locked time hidden by default. -7. Make every scheduling rule testable. -8. Prefer explicit state transitions over vague magic behavior. -9. Do not add non-MVP features unless the active plan asks for them. -10. Update documentation when behavior changes. +--- -The user prefers practical, concrete implementation work. Avoid broad redesigns unless the active plan calls for them. +## 1. Persistence -## Documentation structure rules +| Element | Rule | +|---------|------| +| Local storage | **SQLite via Drift**, schemaVersion 1 | +| Abstraction | Domain‑only repository interfaces (`scheduler_persistence`) | +| Swappable | New adapters must pass repository conformance tests | +| Backup | AES‑256‑GCM encrypted SQLite file (`Backup library`, Block 24) | +| Migrations | Drift migrations with tests (Block 20, Block 26) | -Human-facing design/product documentation belongs in: +No MongoDB runtime in V1. -```text -Human Documentation/ -``` +--- -Codex execution planning belongs in: +## 2. Repository & Adapter Rules -```text -Codex Documentation/ -``` +1. Interfaces expose domain objects only. +2. Optimistic `revision` on every mutable save. +3. Owner scope parameter now for future multi‑user. +4. Adapters implement compare‑and‑set; core never overwrites stale revision. -Current, active implementation plans belong in: +--- -```text -Codex Documentation/Current Software Plan/ -``` +## 3. Notification Rules -Completed plans must be moved to: +* Use `NotificationAdapter` (Block 21). +* Desktop implementation (Block 22), fake adapter for tests. +* Core never imports platform APIs directly. -```text -Codex Documentation/Archived plans/ -``` +--- -This is firm. New plans may be uploaded, generated, or pointed at from elsewhere, but once Codex completes a plan, it must move the completed plan document into `Codex Documentation/Archived plans/`. Do not leave completed plans in `Current Software Plan/`. +## 4. Backup / Export Rules +* Backup: encrypted SQLite (`.sqlite.aes`) via Backup library. +* Readable exports: JSON + CSV via `ExportController` (Block 23). -## Persistence target rules +--- -MongoDB is the committed persistence target for this project. Treat MongoDB document storage as the future database direction when designing repository interfaces, serialization helpers, and persistence boundaries. +## 5. Testing Hierarchy -Rules: +| Layer | Folder | Purpose | +|-------|--------|---------| +| Unit | `test/unit` | pure domain logic | +| Contract | `test/contract` | repository conformance | +| Migration | `test/migration` | Drift schema upgrades | +| Integration | `test/integration` | full stack InMemory + SQLite + fake notifications | -- Do not introduce alternative database assumptions unless the user explicitly reverses this decision. -- V1 planning may prepare MongoDB-friendly repository interfaces and document-shaped model mappings without adding a MongoDB driver yet. -- Do not add MongoDB connection strings, Atlas/cloud setup, local server requirements, sync behavior, accounts, or network/background behavior unless an active plan explicitly calls for that implementation work. -- Keep the scheduling core independent from MongoDB APIs; persistence adapters should sit behind repository interfaces. +CI fails below **80 % line coverage**. -## Planning document execution rules +--- -Planning documents are organized into blocks, chunks, and optional stages. +## 6. Dev Scripts (Block 27) -- Blocks are groups of related work. -- Chunks are actionable pieces of work inside a block. -- Stages may be used inside larger chunks when helpful. -- Blocks do **not** receive a Codex thinking-level classification. -- Chunks and stages must include one of these classifications: - - `low` - - `medium` - - `high` - - `extra high` +| Script | Description | +|--------|-------------| +| `bootstrap_dev.sh` | install deps, create dev DB | +| `dev.sh` | hot‑reload desktop run | +| `test.sh` | all tests + coverage | +| `package_release.sh` | build OS binaries | -Codex should rely on the planning documents as much as possible to avoid excess token use. Before doing exploratory work, check whether the current plan already answers the question. +Flutter UI work starts in Block 29 under `apps/focus_flow_flutter/`. Keep it +out of the root Dart workspace until the Flutter toolchain gate is fully +integrated. -## Break point rules +--- -Planning documents may contain `BREAKPOINT` markers. +## 7. Branch, Commit & CI -When the user says to do the next chunk: +* Start each new block from `main` on a block branch named + `block-XX-simple-name` (for example, `block-20-sqlite-adapter`). +* Keep all chunk work for that block on the block branch. +* Commit every completed chunk before moving to the next chunk or breakpoint. +* Use conventional commits (`feat`, `fix`, `docs`, `test`, `refactor`, + `chore`, `ci`). +* Do not leave completed chunk work only in the working tree. +* When the block is complete and verified, merge the block branch back into + `main`. +* CI matrix: ubuntu‑latest, windows‑latest, macos‑latest. +* `dart analyze` and `dart test` must pass. -1. Execute only the next permitted chunk or stage. -2. Do not proceed past a `BREAKPOINT`. -3. If the next chunk or stage has a different recommended thinking level, stop and tell the user the next required level. -4. Wait for user confirmation that the mode has been switched before continuing. +--- -A breakpoint is a hard stop. Do not skip it because the next task seems small. +## 8. MVP Boundaries -## Commit rules +* Today + Backlog only. +* Task types: flexible, inflexible, critical, locked, surprise, free slot. +* No week/month views, sync, or shield in V1. -When finishing a work block or a clearly bounded chunk that leaves the project in a working state: +--- -1. Run relevant formatting/analyze/tests when possible. -2. Commit the work. -3. Use a descriptive conventional commit message. +## 9. UX Language -Examples: +* Use calm terms: missed, pushed, backlog, archived. +* Avoid blame language. -```text -feat(scheduling): add flexible task push behavior -fix(backlog): preserve stale age marker after task update -test(engine): cover locked block overlap rules -docs(plan): archive completed foundation block -``` +--- -Do not make vague commits such as `update files`, `changes`, or `work`. - -## Engineering rules - -- Keep scheduling/domain logic separate from UI. -- Start with pure Dart domain logic and tests. -- Add Flutter UI only when the plan calls for it. -- Avoid network/sync/background behavior unless explicitly planned. -- Use MongoDB as the committed future persistence target; do not add alternative database assumptions. -- Prefer immutable models or copy/update patterns. -- Avoid hidden side effects in scheduling functions. -- Every rule that changes task placement should have tests. -- Use clear names over clever abstractions. -- If a rule is ambiguous, add a TODO comment and a small safe default rather than inventing broad behavior. - -## MVP boundaries - -MVP includes: - -- Today view data model. -- Backlog/wishlist model. -- Quick capture to backlog. -- Optional quick-capture scheduling into next available flexible slot. -- Flexible/inflexible/critical/locked/surprise task types. -- Recurring locked blocks, hidden by default. -- One-day overrides for locked blocks. -- Flexible task push behavior. -- Push options: next available slot, tomorrow/top of queue, backlog. -- End-of-day rollover notice. -- Manual compact mode state. -- Task actions: done, push, backlog, break up. -- Child task ownership and parent auto-completion logic. -- Internal statistics needed for future reporting. - -MVP excludes unless explicitly added: - -- Week view. -- Month view. -- Weekly reports. -- Overwhelm shield. -- Drag-and-drop reordering. -- Per-task history panel. -- Task dependencies. -- Context tags. -- Full sync. -- Long-running task auto-extension behavior. - -## UX language rules - -Use calm, non-punitive terminology: - -- Prefer: `missed`, `pushed`, `moved to backlog`, `no longer relevant`, `cancelled`. -- Avoid: `failed`, `late again`, `bad`, `unproductive`, `overdue pile`, `punishment`. - -The app should treat disruption as expected, not exceptional. +_Last updated: 2026-06-27_ diff --git a/Codex Documentation/Current Software Plan/PLAN_REVIEW_SUMMARY.md b/Codex Documentation/Archived plans/PLAN_REVIEW_SUMMARY.md similarity index 100% rename from Codex Documentation/Current Software Plan/PLAN_REVIEW_SUMMARY.md rename to Codex Documentation/Archived plans/PLAN_REVIEW_SUMMARY.md diff --git a/Codex Documentation/Archived plans/README.md b/Codex Documentation/Archived plans/README.md index f02bd2b..748094c 100644 --- a/Codex Documentation/Archived plans/README.md +++ b/Codex Documentation/Archived plans/README.md @@ -1,10 +1,66 @@ -# Archived plans +# Current Software Plan -Completed Codex implementation plans go here. +Blocks 01–12 are complete and remain historical records in +`Codex Documentation/Archived plans/`. The active path resumes at Block 13. -Rules: +The backend sequence is Blocks 11–17. Block 18 is a deliberately limited UI +foundation block and is blocked until the backend completion gate in Chunk 17.4 +passes. -- Move completed plans here from `Codex Documentation/Current Software Plan/`. -- Do not delete completed plans. -- Commit the archive move with a conventional commit message. -- If a completed plan later needs revision, create a new current plan rather than editing archived history unless the user explicitly asks. +## Execution rules + +1. Read `AGENTS.md` first. +2. Read `V1_BACKEND_COMPLETION_GAP_MATRIX.md` before starting Block 11. +3. Execute active block documents in numeric order. +4. Execute only the next chunk or stage requested by the user. +5. Respect every `BREAKPOINT` as a hard stop. +6. When the next chunk changes recommended Codex level, stop and ask the user to + confirm the mode switch before continuing. +7. Run the relevant formatter, analyzer, unit tests, contract tests, and + integration tests before claiming a chunk is complete. +8. Commit completed bounded work with a descriptive conventional commit. +9. Mark a completed plan `Complete`, move it to + `Codex Documentation/Archived plans/`, and commit the archive move. +10. Do not rewrite archived Blocks 01–10 to make new work appear previously + complete. Add errata or new active work instead. + +## Scope guardrails + +Backend V1 includes the application-facing use cases, persistence schema, +MongoDB adapter boundary, deterministic scheduling behavior, internal statistics, +and UI-independent read models required by Today, Backlog, quick capture, locked +time, rollover, surprise logging, child tasks, free slots, project defaults, and +reminder policy decisions. + +Backend V1 does not include week/month views, reports, overwhelm shield, +burnout catch-up, drag-and-drop, a visible task-history panel, task dependencies, +context tags, advanced sync, user accounts, production authentication, or +flexible-task overrun behavior. + +The UI must never receive a MongoDB connection string or database credentials. +Block 16 must choose and document a trusted runtime boundary before adding a +runtime database dependency. + +## Active plan index + +| Order | Plan | Status | Backend/UI | +|---|---|---|---| +| 11 | `../Archived plans/V1_BLOCK_11_Backend_Baseline_Domain_Contracts.md` | Complete, archived | Backend | +| 12 | `../Archived plans/V1_BLOCK_12_Occupancy_Scheduling_Correctness.md` | Complete, archived | Backend | +| 13 | `V1_BLOCK_13_Lifecycle_Statistics_Project_Reminders.md` | Planned | Backend | +| 14 | `V1_BLOCK_14_Application_Use_Cases_Read_Models.md` | Planned | Backend | +| 15 | `../Archived plans/V1_BLOCK_15_Persistence_Schema_Codecs_Repositories.md` | Complete, archived | Backend | +| 16 | `V1_BLOCK_16_MongoDB_Runtime_Adapter.md` | In progress | Backend | +| 17 | `V1_BLOCK_17_Backend_Acceptance_Handoff.md` | Planned | Backend gate | +| 18 | `V1_BLOCK_18_UI_Foundation_Design_Spike.md` | Planned, blocked | UI foundation | + +## Recommended mode labels + +Chunks and stages use only: + +- `low` +- `medium` +- `high` +- `extra high` + +Blocks do not receive a Codex thinking-level classification. diff --git a/Codex Documentation/Current Software Plan/V1_BACKEND_COMPLETION_GAP_MATRIX.md b/Codex Documentation/Archived plans/V1_BACKEND_COMPLETION_GAP_MATRIX.md similarity index 100% rename from Codex Documentation/Current Software Plan/V1_BACKEND_COMPLETION_GAP_MATRIX.md rename to Codex Documentation/Archived plans/V1_BACKEND_COMPLETION_GAP_MATRIX.md diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_16_MongoDB_Runtime_Adapter.md b/Codex Documentation/Archived plans/V1_BLOCK_16_MongoDB_Runtime_Adapter.md similarity index 100% rename from Codex Documentation/Current Software Plan/V1_BLOCK_16_MongoDB_Runtime_Adapter.md rename to Codex Documentation/Archived plans/V1_BLOCK_16_MongoDB_Runtime_Adapter.md diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md b/Codex Documentation/Archived plans/V1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md similarity index 100% rename from Codex Documentation/Current Software Plan/V1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md rename to Codex Documentation/Archived plans/V1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_17_Backend_Acceptance_Handoff.md b/Codex Documentation/Archived plans/V1_BLOCK_17_Backend_Acceptance_Handoff.md similarity index 100% rename from Codex Documentation/Current Software Plan/V1_BLOCK_17_Backend_Acceptance_Handoff.md rename to Codex Documentation/Archived plans/V1_BLOCK_17_Backend_Acceptance_Handoff.md diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_18_UI_Foundation_Design_Spike.md b/Codex Documentation/Archived plans/V1_BLOCK_18_UI_Foundation_Design_Spike.md similarity index 100% rename from Codex Documentation/Current Software Plan/V1_BLOCK_18_UI_Foundation_Design_Spike.md rename to Codex Documentation/Archived plans/V1_BLOCK_18_UI_Foundation_Design_Spike.md diff --git a/Codex Documentation/Current Software Plan/README.md b/Codex Documentation/Current Software Plan/README.md deleted file mode 100644 index 748094c..0000000 --- a/Codex Documentation/Current Software Plan/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# Current Software Plan - -Blocks 01–12 are complete and remain historical records in -`Codex Documentation/Archived plans/`. The active path resumes at Block 13. - -The backend sequence is Blocks 11–17. Block 18 is a deliberately limited UI -foundation block and is blocked until the backend completion gate in Chunk 17.4 -passes. - -## Execution rules - -1. Read `AGENTS.md` first. -2. Read `V1_BACKEND_COMPLETION_GAP_MATRIX.md` before starting Block 11. -3. Execute active block documents in numeric order. -4. Execute only the next chunk or stage requested by the user. -5. Respect every `BREAKPOINT` as a hard stop. -6. When the next chunk changes recommended Codex level, stop and ask the user to - confirm the mode switch before continuing. -7. Run the relevant formatter, analyzer, unit tests, contract tests, and - integration tests before claiming a chunk is complete. -8. Commit completed bounded work with a descriptive conventional commit. -9. Mark a completed plan `Complete`, move it to - `Codex Documentation/Archived plans/`, and commit the archive move. -10. Do not rewrite archived Blocks 01–10 to make new work appear previously - complete. Add errata or new active work instead. - -## Scope guardrails - -Backend V1 includes the application-facing use cases, persistence schema, -MongoDB adapter boundary, deterministic scheduling behavior, internal statistics, -and UI-independent read models required by Today, Backlog, quick capture, locked -time, rollover, surprise logging, child tasks, free slots, project defaults, and -reminder policy decisions. - -Backend V1 does not include week/month views, reports, overwhelm shield, -burnout catch-up, drag-and-drop, a visible task-history panel, task dependencies, -context tags, advanced sync, user accounts, production authentication, or -flexible-task overrun behavior. - -The UI must never receive a MongoDB connection string or database credentials. -Block 16 must choose and document a trusted runtime boundary before adding a -runtime database dependency. - -## Active plan index - -| Order | Plan | Status | Backend/UI | -|---|---|---|---| -| 11 | `../Archived plans/V1_BLOCK_11_Backend_Baseline_Domain_Contracts.md` | Complete, archived | Backend | -| 12 | `../Archived plans/V1_BLOCK_12_Occupancy_Scheduling_Correctness.md` | Complete, archived | Backend | -| 13 | `V1_BLOCK_13_Lifecycle_Statistics_Project_Reminders.md` | Planned | Backend | -| 14 | `V1_BLOCK_14_Application_Use_Cases_Read_Models.md` | Planned | Backend | -| 15 | `../Archived plans/V1_BLOCK_15_Persistence_Schema_Codecs_Repositories.md` | Complete, archived | Backend | -| 16 | `V1_BLOCK_16_MongoDB_Runtime_Adapter.md` | In progress | Backend | -| 17 | `V1_BLOCK_17_Backend_Acceptance_Handoff.md` | Planned | Backend gate | -| 18 | `V1_BLOCK_18_UI_Foundation_Design_Spike.md` | Planned, blocked | UI foundation | - -## Recommended mode labels - -Chunks and stages use only: - -- `low` -- `medium` -- `high` -- `extra high` - -Blocks do not receive a Codex thinking-level classification. diff --git a/Codex Documentation/Current Software Plan/V1_ADR_002_MongoDB_Document_Schema_V1.md b/Codex Documentation/Current Software Plan/V1_ADR_002_MongoDB_Document_Schema_V1.md deleted file mode 100644 index d7505f9..0000000 --- a/Codex Documentation/Current Software Plan/V1_ADR_002_MongoDB_Document_Schema_V1.md +++ /dev/null @@ -1,366 +0,0 @@ -# V1 ADR 002: MongoDB Document Schema V1 - -Status: Accepted during Block 15.1 - -Date: 2026-06-25 - -## Context - -MongoDB is the committed persistence target for this project. Blocks 11-14 added -the pure Dart domain model, repository boundaries, application unit of work, -Today/Backlog read models, management commands, notice acknowledgement, and -app-open rollover recovery. - -Block 15 needs one versioned document contract before codecs, migrations, or a -runtime MongoDB adapter are implemented. This ADR defines that contract without -adding a database client, connection string, sync behavior, accounts, or -background services. - -## Decision - -V1 stores application data in MongoDB-friendly documents behind repository -interfaces. The core scheduling logic remains independent from MongoDB APIs. - -Every top-level document uses: - -- `schemaVersion`: integer, `1` for this contract. -- `_id`: stable document id, unique within its collection. -- `ownerId`: authorization-neutral owner scope. This is a data boundary, not an - account/auth implementation. -- `revision`: positive integer for mutable authoritative documents. Starts at - `1` and increments on compare-and-set saves. Append-only documents use - `revision: 1`. -- `createdAt`: UTC instant string. -- `updatedAt`: UTC instant string. Append-only documents set this equal to - `createdAt`. - -The adapter may use BSON dates internally later, but the core V1 codec contract -uses the existing string conventions: - -- Instant: UTC ISO-8601 string from `DateTime.toUtc().toIso8601String()`. -- Civil date: `YYYY-MM-DD` string with no timezone conversion. -- Wall time: `HH:MM` string with no date or timezone conversion. -- Time zone: IANA-style string chosen by the application boundary. -- Interval: embedded object `{start, end, label?}` where `start` and `end` are - UTC instant strings. -- Optional fields: V1 writers include known optional fields with `null` when - cleared. Decoders tolerate unknown extra fields and ignore them. - -## Collections - -### `tasks` - -Authoritative task documents. - -Required fields: - -- common fields -- `title` -- `projectId` -- `type` -- `status` -- `priority` -- `reward` -- `difficulty` -- `durationMinutes` -- `scheduledStart` -- `scheduledEnd` -- `actualStart` -- `actualEnd` -- `completedAt` -- `parentTaskId` -- `backlogTags` -- `reminderOverride` -- `stats` -- `backlogEnteredAt` -- `backlogEnteredAtProvenance` - -`backlogEnteredAt` is nullable in V1. V0 migration may set it from `createdAt` -with provenance `approximated_from_created_at`; new V1 backlog transitions should -set provenance `recorded`. - -Task documents do not embed history, children, scheduling changes, or notice -lists. Child ownership is represented by `parentTaskId`. - -### `projects` - -Authoritative project configuration documents. - -Required fields: - -- common fields -- `name` -- `colorKey` -- `defaultPriority` -- `defaultReward` -- `defaultDifficulty` -- `defaultReminderProfile` -- `defaultDurationMinutes` -- `archivedAt` - -Archiving a project sets `archivedAt` and increments `revision`. It never deletes -or rewrites task history. - -### `project_statistics` - -Project-level aggregate documents derived from internal activities. - -Required fields: - -- common fields -- `projectId` -- `completedTaskCount` -- `durationMinuteCounts` -- `completionTimeBucketCounts` -- `totalPushesBeforeCompletion` -- `completedAfterPushCount` -- `rewardCounts` -- `difficultyCounts` -- `reminderProfileCounts` -- `appliedActivityIds` - -`appliedActivityIds` is bounded by compaction policy in future adapter work. It -prevents double-application of completion activities. - -### `locked_blocks` - -Authoritative recurring or one-off locked-time definitions. - -Required fields: - -- common fields -- `name` -- `startTime` -- `endTime` -- `date` -- `recurrence` -- `hiddenByDefault` -- `projectId` -- `archivedAt` - -Archiving a locked block sets `archivedAt`, increments `revision`, and stops base -occurrence expansion. It does not delete one-day overrides. - -### `locked_overrides` - -Date-scoped locked-time override documents. - -Required fields: - -- common fields -- `lockedBlockId` -- `date` -- `type` -- `name` -- `startTime` -- `endTime` -- `hiddenByDefault` -- `projectId` - -Override `type` is one of `remove`, `replace`, or `add`. Overrides are -append/update records, not edits to the recurring block. - -### `task_activities` - -Append-only internal activity facts. - -Required fields: - -- common fields with `revision: 1` -- `operationId` -- `code` -- `taskId` -- `projectId` -- `occurredAt` -- `metadata` - -Activities are internal application data. They are not a visible per-task history -panel in V1. - -### `owner_settings` - -One owner settings document per owner. - -Required fields: - -- common fields -- `timeZoneId` -- `dayStart` -- `dayEnd` -- `compactModeEnabled` -- `backlogStaleness` - -Changing `timeZoneId`, `dayStart`, or `dayEnd` can reinterpret local dates. The -application layer must return typed warnings or run an explicit migration path; -codecs must not silently shift existing instants. - -### `notice_acknowledgements` - -Owner-scoped consumed-notice records. - -Required fields: - -- common fields with `revision: 1` -- `noticeId` -- `acknowledgedAt` - -The unique key is `(ownerId, noticeId)`. Acknowledgement hides a notice from -Today state without mutating the original operation/snapshot record. - -### `operation_records` - -Exactly-once operation records. - -Required fields: - -- common fields with `revision: 1` -- `operationId` -- `operationName` -- `committedAt` - -The unique key is `(ownerId, operationId)`. These records support application -idempotency and are not a replacement for task/activity facts. - -### `scheduling_snapshots` - -Bounded diagnostics and pending-notice carrier documents. - -Required fields: - -- common fields with `revision: 1` -- `operationName` -- `sourceDate` -- `targetDate` -- `window` -- `tasks` -- `lockedIntervals` -- `requiredVisibleIntervals` -- `notices` -- `changes` -- `overlaps` -- `retentionExpiresAt` - -Full scheduling snapshots remain in V1 as bounded diagnostics and as the carrier -for pending rollover notices. They are not the authoritative source of task -state, project state, locked-time definitions, or activity/statistics facts. - -Production adapters should keep snapshots compact: - -- retain no more than 100 embedded tasks per snapshot; -- retain no more than 100 changes or overlaps per snapshot; -- retain no more than 20 notices per snapshot; -- omit or redact hidden locked names from `lockedIntervals`; -- set `retentionExpiresAt` after all notices are acknowledged or after the - configured diagnostic retention window. - -If an operation needs more diagnostic data than these bounds allow, it should -store the authoritative entity changes and a truncated snapshot with a typed -`truncated: true` marker. - -## Stable Codes - -V1 documents must not depend on Dart enum source `.name` values. Codecs will use -explicit encode/decode tables. Unknown codes fail closed with typed mapping -errors. - -Initial code values: - -| Domain enum | Codes | -|---|---| -| `TaskType` | `flexible`, `inflexible`, `critical`, `locked`, `surprise`, `free_slot` | -| `TaskStatus` | `planned`, `active`, `completed`, `missed`, `cancelled`, `no_longer_relevant`, `backlog` | -| `PriorityLevel` | `very_low`, `low`, `medium`, `high`, `very_high` | -| `RewardLevel` | `not_set`, `very_low`, `low`, `medium`, `high`, `very_high` | -| `DifficultyLevel` | `not_set`, `very_easy`, `easy`, `medium`, `hard`, `very_hard` | -| `ReminderProfile` | `silent`, `gentle`, `persistent`, `strict` | -| `BacklogTag` | `wishlist` | -| `LockedWeekday` | `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday` | -| `LockedBlockOverrideType` | `remove`, `replace`, `add` | -| `TaskActivityCode` | `completed`, `missed`, `cancelled`, `no_longer_relevant`, `manually_pushed`, `automatically_pushed`, `moved_to_backlog`, `restored_from_backlog`, `activated` | -| `SchedulingNoticeType` | `info`, `moved`, `overlap`, `no_fit`, `overflow` | -| `SchedulingIssueCode` | `task_not_found`, `invalid_task_state`, `missing_duration`, `missing_scheduled_slot`, `non_positive_duration`, `no_available_slot`, `unfinished_tasks_could_not_fit`, `no_unfinished_flexible_tasks`, `duplicate_surprise_log` | -| `SchedulingMovementCode` | `backlog_task_inserted`, `flexible_task_moved_to_make_room`, `flexible_task_pushed_to_next_available_slot`, `flexible_task_moved_to_tomorrow`, `unfinished_flexible_tasks_rolled_over`, `flexible_task_moved_to_backlog`, `required_commitment_scheduled` | -| `SchedulingConflictCode` | `flexible_task_overlaps_blocked_time`, `surprise_task_overlaps_required_visible_time`, `required_commitment_overlaps_protected_free_slot` | -| `ProjectCompletionTimeBucket` | `overnight`, `morning`, `afternoon`, `evening`, `night` | - -Codec tables may add newer codes in later schema versions. They must not remap -an existing code to a different semantic meaning. - -## Indexes And Uniqueness - -Required index specifications are adapter-neutral in V1 and are created in -Block 16. - -| Collection | Index | Purpose | -|---|---|---| -| all collections | unique `(_id)` | Stable document identity | -| all owner-scoped collections | `(ownerId, _id)` | Owner boundary lookup | -| `tasks` | `(ownerId, status, scheduledStart, scheduledEnd)` | Today/window and lifecycle queries | -| `tasks` | `(ownerId, status, projectId)` | backlog/project filters | -| `tasks` | `(ownerId, parentTaskId)` | child task lookup | -| `tasks` | `(ownerId, status, backlogEnteredAt, createdAt)` | backlog candidate ordering | -| `projects` | `(ownerId, archivedAt, name)` | active project pickers | -| `project_statistics` | unique `(ownerId, projectId)` | aggregate lookup | -| `locked_blocks` | `(ownerId, archivedAt, date)` | one-off locked expansion | -| `locked_blocks` | `(ownerId, archivedAt, recurrence.weekdays)` | recurring locked expansion | -| `locked_overrides` | `(ownerId, date, lockedBlockId, type)` | date-scoped override expansion | -| `task_activities` | unique `(ownerId, _id)` | append-only activity identity | -| `task_activities` | `(ownerId, operationId)` | command idempotency/debug lookup | -| `task_activities` | `(ownerId, taskId, occurredAt)` | task activity loading | -| `task_activities` | `(ownerId, projectId, code, occurredAt)` | project-stat aggregation | -| `owner_settings` | unique `(ownerId)` | one settings document per owner | -| `notice_acknowledgements` | unique `(ownerId, noticeId)` | notice consume idempotency | -| `operation_records` | unique `(ownerId, operationId)` | exactly-once command boundary | -| `scheduling_snapshots` | unique `(ownerId, sourceDate, operationName)` for rollover-style operations | source-day idempotency | -| `scheduling_snapshots` | `(ownerId, window.start, window.end)` | Today pending notice lookup | -| `scheduling_snapshots` | `(retentionExpiresAt)` | bounded diagnostic cleanup | - -Partial indexes should prefer active records where applicable, such as -`archivedAt: null` for project and locked-block picker/expansion queries. - -## Archive, Delete, And Retention - -Normal user-facing removal uses lifecycle state or archive fields: - -- Tasks are not hard-deleted by automatic scheduling. `cancelled`, - `no_longer_relevant`, and `backlog` preserve history. -- Projects use `archivedAt`; task `projectId` values remain unchanged. -- Locked blocks use `archivedAt`; overrides remain independent. -- Scheduling snapshots are bounded diagnostics and may expire after retention - rules once they are no longer carrying pending notices. - -Hard delete is reserved for explicit adapter/admin operations outside the normal -V1 app flow. - -Operation records and task activities are internal operation data. V1 retains -them long enough to preserve idempotency, statistics, and migration safety. -Adapter-level pruning must not remove authoritative task/project/locked state or -break exactly-once guarantees for active retry windows. - -## Privacy Boundaries - -Documents must not contain credentials, database connection strings, OAuth -tokens, sync tokens, or platform-notification secrets. - -Hidden locked-time details are sensitive. They may live in the owner-scoped -`locked_blocks` and `locked_overrides` documents, but they should not be copied -into denormalized notices, public summaries, or unnecessary snapshot labels. -When snapshots need locked intervals for diagnostics, hidden labels should be -redacted or replaced with source IDs and `hiddenByDefault: true`. - -Internal statistics and activity records are implementation data for future -reports and scheduling correctness. They should remain behind repository/use-case -boundaries and should not become a visible task-history UI in V1. - -## Consequences - -- Chunk 15.2 must replace the current enum `.name` mapping helpers with explicit - stable code tables. -- Chunk 15.2 must add codecs for every collection listed above, including - owner-scoped notices and bounded scheduling snapshots. -- Chunk 15.3 must migrate V0 task documents to V1 with explicit provenance for - approximated backlog entry time. -- Chunk 15.4 must expand repository contracts so Block 14 use cases can use - owner-scoped, indexed query methods instead of broad `findAll()` loading. -- Chunk 15.5 must turn the index table in this ADR into tested adapter-neutral - index specifications. diff --git a/Codex Documentation/Current Software Plan/V1_ADR_002_SQLite_Document_Schema_V1.md b/Codex Documentation/Current Software Plan/V1_ADR_002_SQLite_Document_Schema_V1.md new file mode 100644 index 0000000..d5d918d --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_ADR_002_SQLite_Document_Schema_V1.md @@ -0,0 +1,35 @@ +# V1 ADR 002: SQLite Document Schema V1 + +Status: **Accepted** +Date: 2026-06-26 + +## Context +The project pivoted from MongoDB to **SQLite‑first** persistence. +We need a stable, versioned relational schema that maps cleanly to the domain +objects while staying behind the repository abstraction. Drift will manage +migrations. + +## Decision +* **Database file**: `adhd_scheduler.sqlite` in the user data directory. +* **Schema version**: `1` (managed by Drift). +* **Tables** + +| Table | Purpose | Key fields | +|-------|---------|------------| +| `tasks` | Authoritative task rows | `id TEXT PRIMARY KEY`, `owner_id TEXT`, `project_id`, `parent_id`, `type`, `status`, `priority`, `reward`, `difficulty`, `scheduled_start_utc`, `scheduled_end_utc`, `actual_start_utc`, `actual_end_utc`, `completed_at_utc`, `revision INT`, `created_at_utc`, `updated_at_utc`, `backlog_entered_at_utc`, `backlog_entered_provenance TEXT` | +| `projects` | Project configuration | `id TEXT PRIMARY KEY`, `owner_id`, `name`, `color_key`, config defaults …, `archived_at_utc`, `revision` | +| `locked_blocks` | Recurring / one‑off locked time | `id TEXT PRIMARY KEY`, `owner_id`, `name`, `date TEXT`, `start_time TEXT`, `end_time TEXT`, `recurrence_json`, `hidden_by_default INT`, `archived_at_utc`, `revision` | +| `locked_overrides` | Date‑scoped overrides | `id TEXT PRIMARY KEY`, `owner_id`, `locked_block_id`, `date TEXT`, `type`, JSON fields | +| `settings` | One row per owner | `owner_id TEXT PRIMARY KEY`, `timezone_id`, `day_start_minutes`, `day_end_minutes`, `compact_mode INT`, `revision` | +| `activities` | Append‑only internal events | `id TEXT PRIMARY KEY`, `owner_id`, `task_id`, `code`, `occurred_at_utc`, `metadata_json` | +| `snapshots` | Bounded diagnostic schedule snapshots | `id TEXT PRIMARY KEY`, `owner_id`, `operation_name`, `source_date TEXT`, `window_json`, `notice_json`, `changes_json`, `retention_expires_utc` | + +* All timestamps are stored as **UTC**. +* Optimistic concurrency: every mutable row carries `revision`. Updates must + include `WHERE revision = :expected` and increment on success. +* Drift migrations are generated and tested; downgrades are not supported. + +## Consequences +* Domain objects remain unchanged; adapters translate. +* Backup library (Block 24) can copy and encrypt this single file. +* Repository contract tests assert schema integrity via Drift introspection. \ No newline at end of file diff --git a/Codex Documentation/Current Software Plan/V1_ADR_003_MongoDB_Runtime_Topology.md b/Codex Documentation/Current Software Plan/V1_ADR_003_MongoDB_Runtime_Topology.md deleted file mode 100644 index 37354cb..0000000 --- a/Codex Documentation/Current Software Plan/V1_ADR_003_MongoDB_Runtime_Topology.md +++ /dev/null @@ -1,177 +0,0 @@ -# V1 ADR 003: MongoDB Runtime Topology - -Status: Accepted during Block 16.1 - -Date: 2026-06-25 - -## Context - -MongoDB is the committed persistence target for V1, but the Flutter UI and pure -Dart scheduling core must not own production database credentials. Block 15 -completed the adapter-neutral document schema, codecs, repository contracts, -index catalog, payload limits, and migration contracts. - -Before adding a MongoDB dependency, Block 16 needs a runtime decision that keeps -credentials inside a trusted boundary, supports transactions, and avoids -deprecated MongoDB client-access products. - -Sources checked on 2026-06-25: - -- MongoDB official client libraries list: - `https://www.mongodb.com/docs/drivers/` -- MongoDB Node.js driver docs: - `https://www.mongodb.com/docs/drivers/node/current/` -- MongoDB Node.js transaction docs: - `https://www.mongodb.com/docs/drivers/node/current/crud/transactions/` -- MongoDB transaction manual: - `https://www.mongodb.com/docs/manual/core/transactions/` -- MongoDB Atlas App Services EOL notice: - `https://www.mongodb.com/docs/api/doc/atlas-app-services-admin-api-v3/` -- Deprecated Atlas Data API docs: - `https://www.mongodb.com/docs/api/doc/atlas-data-api-v1/` -- Dart package checks: - `https://pub.dev/packages/mongo_dart` and - `https://pub.dev/packages/mongo_db_driver` - -## Decision - -V1 selects a trusted service boundary for MongoDB persistence. - -The MongoDB-owning runtime is a separate Node.js/TypeScript service using the -official MongoDB Node.js driver. This service owns: - -- MongoDB connection strings and credentials; -- TLS/SRV driver configuration; -- client lifecycle and health checks; -- index bootstrap from the Block 15 index catalog; -- document reads/writes against the V1 collection contract; -- sessions and transactions for multi-record scheduling writes; -- redacted diagnostics and failure mapping. - -The Flutter UI never connects directly to MongoDB and never receives connection -strings, database credentials, raw MongoDB documents, driver clients, -collections, sessions, or cursors. - -The pure Dart package remains dependency-free with respect to MongoDB. Dart -domain and application code continue to use repository interfaces and typed use -case results. The trusted service exposes a narrow versioned application API -that maps to the Block 14 use cases and Block 15 document contract. - -During the UI foundation/design spike, the first Flutter UI should use the -existing in-memory application composition by default. Persisted development -flows may use a local trusted service process, but that process remains outside -the Flutter binary and reads secrets only from runtime configuration. - -## Rejected Options - -### Direct MongoDB from Flutter or mobile Dart - -Rejected. It would place database credentials in an untrusted binary and force -the UI to own network/database failure modes. It also couples the UI to driver -types and makes owner-scope/security mistakes harder to contain. - -### Pure Dart MongoDB adapter as the production V1 foundation - -Rejected for now. MongoDB's official client library list does not include Dart. -`mongo_dart` is active and useful for experiments, but it is community-supported -rather than an official MongoDB driver. `mongo_db_driver` advertises sessions and -transactions, but its package page explicitly identifies it as pre-alpha and not -suitable for production. Neither should become the V1 persistence foundation -without a later ADR reversing this decision. - -### Atlas Data API, Atlas Device SDKs, App Services, GraphQL, Functions, or -Custom HTTPS Endpoints - -Rejected. MongoDB's App Services notice says these paths reached end-of-life on -September 30, 2025, with database triggers remaining available. They are not a -stable V1 foundation. - -### SQLite or another local fallback - -Rejected. MongoDB remains the committed persistence target. A disconnected -fallback would add an unplanned sync/reconciliation problem and violate the -current persistence target rules. - -## Driver and Deployment Requirements - -The selected service must use the official MongoDB Node.js driver current major -line at implementation time. - -Mandatory capabilities: - -- `mongodb+srv://` and TLS-capable connections for Atlas; -- BSON fidelity at the adapter edge; -- sessions and multi-document transactions; -- explicit transaction retry handling for documented retryable categories; -- bounded connection and operation timeouts; -- graceful startup/shutdown and health checks; -- idempotent index creation; -- redacted logging; -- no raw driver values in public service DTOs. - -MongoDB deployment requirements: - -- Multi-document scheduling writes require MongoDB Server 4.0 or later. -- Transaction acceptance requires a transaction-capable deployment. V1 local and - CI testing must use a replica set or supported sharded deployment, not a - standalone server. -- If the service cannot verify transaction capability at startup for a - production Mongo-backed configuration, it must fail closed instead of falling - back to untracked in-memory writes. - -## Configuration Boundary - -Development configuration: - -- Uses environment variables or a local secret file excluded from git. -- May point to a disposable local replica set or scoped Atlas development - database. -- Must use a database name or prefix that is safe for destructive test cleanup. - -Test configuration: - -- Uses uniquely named disposable databases/collections. -- Fails if the configured target does not match the expected test scope. -- Redacts connection strings and credentials from test output. - -Production configuration: - -- Secrets come from deployment secret storage. -- The Flutter/mobile app receives only service endpoint configuration and - application-layer auth/session material once that future work is explicitly - planned. -- Production authentication, account management, cross-device sync, Atlas - provisioning, network allowlists, and cluster creation remain out of scope for - this block. - -## Threat and Safety Checklist - -- No MongoDB connection string is committed to source control. -- No MongoDB credential is embedded in Flutter, mobile, desktop, or web UI - assets. -- Normal logs do not include task titles, hidden locked-block names, full - documents, connection strings, or credential fragments. -- Every repository query and write includes owner scope. -- Hidden locked-time details remain hidden by default in service responses. -- Duplicate operation IDs are enforced by a unique owner-operation index. -- Revision predicates are required for authoritative updates. -- Transaction retries are bounded and observable. -- A production Mongo connection failure fails closed. -- In-memory composition remains available only as explicit local/design-spike - wiring, not as a silent production persistence fallback. - -## Consequences - -Block 16.2 must add any MongoDB dependency only in the trusted service/runtime -module, not in the pure Dart core package. - -The implementation path should provide two composition roots: - -- in-memory Dart application wiring for tests and UI design work; -- trusted service-backed persistence for MongoDB-backed development and future - deployment. - -If a later chunk cannot implement the selected service boundary without -duplicating scheduling rules unsafely, it must stop and record the blocker -rather than embedding credentials in Flutter or adopting an unmaintained driver -as a shortcut. diff --git a/Codex Documentation/Current Software Plan/V1_ADR_003_Runtime_Topology_Embedded_Local.md b/Codex Documentation/Current Software Plan/V1_ADR_003_Runtime_Topology_Embedded_Local.md new file mode 100644 index 0000000..ae69a84 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_ADR_003_Runtime_Topology_Embedded_Local.md @@ -0,0 +1,26 @@ +# V1 ADR 003: Embedded Local Runtime Topology + +Status: **Accepted** +Date: 2026-06-26 + +## Context +With SQLite as the local persistence engine, V1 no longer requires a separate +service process. The entire stack can run inside a single Flutter/Dart desktop +binary. + +## Decision +* **Embedded DB** – The application opens an on‑disk SQLite file via Drift. +* **No background daemon** – starting the desktop app is enough; automated tests + use an in‑memory or temporary‑file database. +* **Dev hot‑reload** – `scripts/dev.sh` launches Flutter desktop and watches + Drift files. +* **Pluggable adapters** – A future remote/sync adapter will satisfy the same + repository interfaces; switching happens at composition root. + +## Rejected +* Running a local Node.js or Go service to host SQLite – unnecessary complexity. +* Direct file writes bypassing Drift – loses migration guarantees. + +## Consequences +* Deployment simplifies to one executable per platform. +* CI can run integration tests without Docker or external DB. \ No newline at end of file diff --git a/Codex Documentation/Current Software Plan/V1_ADR_004_Repository_Domain_Boundary.md b/Codex Documentation/Current Software Plan/V1_ADR_004_Repository_Domain_Boundary.md new file mode 100644 index 0000000..61a7bc7 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_ADR_004_Repository_Domain_Boundary.md @@ -0,0 +1,9 @@ +# V1 ADR 004: Repository & Domain Boundary + +Status: **Accepted** +Date: 2026-06-26 + +Repository interfaces (`packages/scheduler_persistence`) expose **domain objects only**. +Adapters must implement optimistic revision, immutable returns, and pass the Repository Conformance Suite (Block 26). + +No open questions remain. diff --git a/Codex Documentation/Current Software Plan/V1_ADR_005_Export_Backup_Boundary.md b/Codex Documentation/Current Software Plan/V1_ADR_005_Export_Backup_Boundary.md new file mode 100644 index 0000000..d469568 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_ADR_005_Export_Backup_Boundary.md @@ -0,0 +1,9 @@ +# V1 ADR 005: Export & Backup Boundary + +Status: **Accepted** +Date: 2026-06-26 + +* **Backup** – passphrase‑encrypted SQLite copy (`.sqlite.aes` via AES‑256‑GCM, PBKDF2 200 k rounds). +* **Readable export** – JSON and CSV via `ExportController`. + +No open questions remain. diff --git a/Codex Documentation/Current Software Plan/V1_ADR_006_Schedule_Snapshot_Policy.md b/Codex Documentation/Current Software Plan/V1_ADR_006_Schedule_Snapshot_Policy.md new file mode 100644 index 0000000..cb33034 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_ADR_006_Schedule_Snapshot_Policy.md @@ -0,0 +1,8 @@ +# V1 ADR 006: Schedule Snapshot Policy + +Status: **Accepted** +Date: 2026-06-26 + +Persist committed diagnostic snapshots only; bounded retention 30 days or until notices acknowledged. + +No open questions remain. diff --git a/Codex Documentation/Current Software Plan/V1_ADR_007_Test_Strategy.md b/Codex Documentation/Current Software Plan/V1_ADR_007_Test_Strategy.md new file mode 100644 index 0000000..bb3d47d --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_ADR_007_Test_Strategy.md @@ -0,0 +1,8 @@ +# V1 ADR 007: Test Strategy + +Status: **Accepted** +Date: 2026-06-26 + +Four layers: Unit, Contract, Migration, Integration. CI fails below 80 % line coverage. + +No open questions remain. diff --git a/Codex Documentation/Current Software Plan/V1_ADR_008_Notification_Abstraction.md b/Codex Documentation/Current Software Plan/V1_ADR_008_Notification_Abstraction.md new file mode 100644 index 0000000..4a7afbe --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_ADR_008_Notification_Abstraction.md @@ -0,0 +1,8 @@ +# V1 ADR 008: Notification Abstraction + +Status: **Accepted** +Date: 2026-06-26 + +`NotificationAdapter` interface abstracts scheduling/cancellation and feedback stream. Desktop implementation in `scheduler_notifications_desktop`; Fake adapter for tests. + +No open questions remain. diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_19_Repository_&_Persistence_Abstraction.md b/Codex Documentation/Current Software Plan/V1_BLOCK_19_Repository_&_Persistence_Abstraction.md new file mode 100644 index 0000000..9a4ee96 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_19_Repository_&_Persistence_Abstraction.md @@ -0,0 +1,74 @@ +# V1 Block 19 — Repository & Persistence Abstraction + +**Purpose**: Define repository interfaces and memory adapter. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 19.1 — Define repository interfaces +Recommended level: **XHIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Create Dart library **`packages/scheduler_persistence/lib/persistence.dart`** and declare abstract classes `TaskRepository`, `ProjectRepository`, `LockedBlockRepository`, `SettingsRepository`, `ScheduleSnapshotRepository`. +2. Each repository must expose **only** domain objects from `packages/scheduler_core` (import that package). +3. Add shared value objects in `scheduler_core` if missing (e.g., `Revision`, `OwnerId`, `PageRequest`, `Page`). +4. Document every method with triple‑slash Dart doc. +5. Publish typedef `RepoResult` = `Either` (use sealed class). + +### Acceptance criteria +1. `dart analyze` shows 0 hints in `scheduler_persistence`. +2. Running `dart test` passes new autogenerated stub tests in `packages/scheduler_persistence/test/repo_contract_smoke_test.dart`. + +### Completed implementation +1. Rehomed the core package to `packages/scheduler_core` with package name `scheduler_core`. +2. Added shared repository value objects in `scheduler_core`: `OwnerId`, `Revision`, `PageRequest`, and `Page`. +3. Added package `packages/scheduler_persistence` with domain-only repository contracts for tasks, projects, locked blocks, settings, and schedule snapshots. +4. Added sealed repository failure types, sealed `Either`, and `RepoResult`. +5. Added `packages/scheduler_persistence/test/repo_contract_smoke_test.dart`. + +### Verification +1. `dart format test/scheduler_core_test.dart packages/scheduler_core packages/scheduler_persistence`: passed. +2. `dart analyze`: passed, no issues found. +3. `cd packages/scheduler_persistence && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_persistence && dart test`: passed, 3 tests. +5. `cd packages/scheduler_core && dart test`: passed, 298 tests. +6. `dart test`: passed, 301 tests. + +--- + +## Chunk 19.2 — Memory adapter & conformance tests +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Implement **`packages/scheduler_persistence_memory`** with class `InMemoryTaskRepository` etc. They must implement optimistic revision (increment int). +2. Add conformance test suite in `scheduler_persistence/test/repo_conformance.dart` with shared `runRepositoryComplianceTests()`. +3. Ensure cloning (deep copy) on return values using `jsonEncode/jsonDecode` for simplicity. + +### Acceptance criteria +1. In‑memory adapter passes conformance suite covering CRUD, paging, optimistic revision conflict. +2. 100% statement coverage > 80% lines in this package. + +### Completed implementation +1. Added package `packages/scheduler_persistence_memory` and workspace wiring. +2. Added in-memory implementations for task, project, locked block, settings, and schedule snapshot repository contracts. +3. Implemented owner scoping, duplicate-id checks, compare-and-set saves/deletes/archives, stale-revision failures, and deterministic offset paging. +4. Added JSON round-trip defensive cloning through the existing core document mappers. +5. Added shared conformance suite `packages/scheduler_persistence/test/repo_conformance.dart`. +6. Added `packages/scheduler_persistence_memory/test/memory_repository_conformance_test.dart` and root test wrapper wiring. + +### Verification +1. `dart pub get`: passed. +2. `dart format test/scheduler_core_test.dart packages/scheduler_persistence/test/repo_conformance.dart packages/scheduler_persistence_memory`: passed. +3. `dart analyze`: passed, no issues found. +4. `cd packages/scheduler_persistence && dart analyze`: passed, no issues found. +5. `cd packages/scheduler_persistence_memory && dart analyze`: passed, no issues found. +6. `cd packages/scheduler_persistence && dart test`: passed, 3 tests. +7. `cd packages/scheduler_persistence_memory && dart test`: passed, 7 tests. +8. `cd packages/scheduler_core && dart test`: passed, 298 tests. +9. `dart test`: passed, 308 tests. +10. `cd packages/scheduler_persistence_memory && dart test --coverage=coverage`: passed; generated LCOV line coverage is 93.79% (302/322). + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_20_SQLite_Persistence_Adapter_Package.md b/Codex Documentation/Current Software Plan/V1_BLOCK_20_SQLite_Persistence_Adapter_Package.md new file mode 100644 index 0000000..dbe1e86 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_20_SQLite_Persistence_Adapter_Package.md @@ -0,0 +1,77 @@ +# V1 Block 20 — SQLite Persistence Adapter Package + +**Purpose**: Implement Drift-based SQLite storage backend. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 20.1 — SQLite schema & Drift setup +Recommended level: **XHIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Create new Dart package **`packages/scheduler_persistence_sqlite`** with Drift as dependency. +2. Define Drift database `SchedulerDb` with tables: `tasks`, `projects`, `locked_blocks`, `settings`, `snapshots`. +3. Fields: follow domain model; include `revision INT`, `owner_id TEXT`. +4. Add drift migrations using drift_dev build runner; start at schemaVersion=1. +5. Generate DAO classes via build_runner. + +### Acceptance criteria +1. `dart run build_runner build --delete-conflicting-outputs` completes with zero errors. +2. Generated drift files checked in. + +### Completed implementation +1. Added package `packages/scheduler_persistence_sqlite` with Drift, `drift_dev`, and `build_runner` wiring. +2. Added `SchedulerDb` in `lib/src/scheduler_db.dart` with `schemaVersion = 1` and `MigrationStrategy(onCreate: createAll)`. +3. Added tables for `tasks`, `projects`, `locked_blocks`, `locked_overrides`, `settings`, and `snapshots`. +4. Included owner scope and optimistic revision columns on mutable rows. +5. Added generated Drift data classes/accessor mixins in `lib/src/scheduler_db.g.dart`. +6. Added a schema smoke test that opens an in-memory Drift database and checks the expected table names. + +### Verification +1. `dart pub get`: passed. +2. `cd packages/scheduler_persistence_sqlite && dart run build_runner build --delete-conflicting-outputs`: passed, exit 0; current build_runner warned that the option is ignored. +3. `dart format packages/scheduler_persistence_sqlite`: passed. +4. `cd packages/scheduler_persistence_sqlite && dart analyze`: passed, no issues found. +5. `dart analyze`: passed, no issues found. +6. `cd packages/scheduler_persistence_sqlite && dart test`: passed, 1 test. +7. `dart test`: passed, 308 tests. + +--- + +## Chunk 20.2 — SQLite adapter implementation & tests +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Implement `SqliteTaskRepository` etc mapping domain objects to Drift rows with explicit converters. +2. Use transaction for multi‑record save; ensure optimistic revision by `WHERE revision = ?` clause. +3. Add repository conformance tests reused from block19 suite pointed at SQLite adapter (use `sqflite_ffi` in tests). + +### Acceptance criteria +1. SQLite adapter passes full conformance suite with `sqflite_ffi` on Linux/Windows/mac. +2. Average write latency in test ≤50ms. + +### Completed implementation +1. Added `SqliteTaskRepository`, `SqliteProjectRepository`, `SqliteLockedBlockRepository`, `SqliteSettingsRepository`, and `SqliteScheduleSnapshotRepository`. +2. Mapped Drift rows to domain objects through the existing core document mappers and explicit row/JSON converters. +3. Implemented duplicate-id checks, owner isolation, deterministic paging, archive behavior, snapshot retention deletion, and typed repository failures. +4. Implemented optimistic compare-and-set writes/deletes/archives with `WHERE revision = expected` clauses. +5. Added SQLite conformance tests using the Block 19 shared suite and an in-memory Drift SQLite executor. +6. Added a write-latency test for task inserts and wired SQLite tests into the root test wrapper. + +### Notes +1. Tests use Drift `NativeDatabase.memory()` instead of `sqflite_ffi`. A sqflite-backed Drift executor would require `drift_sqflite`, which pulls Flutter SDK dependencies into this pure Dart adapter package. +2. The current repository contracts expose single-record writes. No multi-record repository save method exists yet; future multi-record SQLite writes should use `SchedulerDb.transaction`. + +### Verification +1. `dart pub get`: passed. +2. `dart format test/scheduler_core_test.dart packages/scheduler_persistence_sqlite`: passed. +3. `cd packages/scheduler_persistence_sqlite && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_persistence_sqlite && dart test`: passed, 9 tests. +5. `dart analyze`: passed, no issues found. +6. `dart test`: passed, 316 tests. +7. `scripts/test.sh`: not present or not executable. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_21_Notification_Abstraction_Layer.md b/Codex Documentation/Current Software Plan/V1_BLOCK_21_Notification_Abstraction_Layer.md new file mode 100644 index 0000000..d63d09c --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_21_Notification_Abstraction_Layer.md @@ -0,0 +1,40 @@ +# V1 Block 21 — Notification Abstraction Layer + +**Purpose**: Define NotificationAdapter contract. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 21.1 — NotificationAdapter contract +Recommended level: **XHIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Add package **`packages/scheduler_notifications`**. +2. Declare sealed class `NotificationRequest` with fields: `id`, `title`, `body`, `scheduledDateTimeUtc`, `payloadJson`. +3. Declare enum `NotificationFeedbackType` (clicked,dismissed,action). +4. Define abstract `NotificationAdapter` with methods `Future schedule(NotificationRequest)`, `Future cancel(String id)`, `Stream`. +5. Add stub `FakeNotificationAdapter` for tests emitting events via StreamController. + +### Acceptance criteria +1. Package compiles and `dart test` passes stub test `fake_adapter_test.dart`. + +### Completed implementation +1. Added package `packages/scheduler_notifications` with public entry points `notifications.dart` and `scheduler_notifications.dart`. +2. Added sealed `NotificationRequest` with factory construction and fields `id`, `title`, `body`, `scheduledDateTimeUtc`, and `payloadJson`. +3. Added `NotificationFeedbackType` with `clicked`, `dismissed`, and `action`. +4. Added `NotificationFeedback` event model. +5. Added abstract `NotificationAdapter` with `schedule`, `cancel`, and `feedback`. +6. Added `FakeNotificationAdapter` backed by a broadcast `StreamController`. +7. Wired fake adapter tests into the root test wrapper. + +### Verification +1. `dart pub get`: passed. +2. `dart format test/scheduler_core_test.dart packages/scheduler_notifications`: passed. +3. `cd packages/scheduler_notifications && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_notifications && dart test`: passed, 2 tests. +5. `dart analyze`: passed, no issues found. +6. `dart test`: passed, 318 tests. +7. `scripts/test.sh`: not present or not executable. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_22_OS-Notification_Package.md b/Codex Documentation/Current Software Plan/V1_BLOCK_22_OS-Notification_Package.md new file mode 100644 index 0000000..fd85ca6 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_22_OS-Notification_Package.md @@ -0,0 +1,46 @@ +# V1 Block 22 — OS-Notification Package + +**Purpose**: Desktop notification implementation. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 22.1 — Desktop notification adapter +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Create package **`packages/scheduler_notifications_desktop`**. +2. Implement adapters per platform with conditional import using `dart:io` Platform. +3. For Linux use `notify-send` via `Process.run`; for macOS use `osascript`; for Windows use `win32` Toast via `windows_notification` package. +4. Implement fallback to write to stdout if unsupported. +5. Add adapter factory `DesktopNotificationAdapter.defaultInstance()`. +6. Write integration test using `FakeNotificationAdapter` mocks to assert scheduling logic; skip on CI if platform not supported. + +### Acceptance criteria +1. Desktop adapter compiles on all OS; tests skip rather than fail on unsupported. +2. Adapter passes NotificationAdapter contract tests. + +### Completed implementation +1. Added package `packages/scheduler_notifications_desktop` with public entry points `desktop_notifications.dart` and `scheduler_notifications_desktop.dart`. +2. Added `DesktopNotificationAdapter.defaultInstance()` and injectable backend support. +3. Added conditional export for IO vs non-IO environments. +4. Added Linux `notify-send` backend via `Process.run`. +5. Added macOS `osascript` backend via `Process.run`. +6. Added stdout/log fallback backend for unsupported platforms and Windows. +7. Added desktop adapter tests covering delegation, Linux/macOS command selection, fallback behavior, fake-adapter scheduling workflow, and default adapter construction. +8. Wired desktop adapter tests into the root test wrapper. + +### Notes +1. Windows currently uses the stdout fallback. Adding `windows_notification` would pull Flutter SDK dependencies into this pure Dart package; a true Windows toast adapter should be revisited if the desktop packaging layer already depends on Flutter. + +### Verification +1. `dart pub get`: passed. +2. `dart format test/scheduler_core_test.dart packages/scheduler_notifications_desktop`: passed. +3. `cd packages/scheduler_notifications_desktop && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_notifications_desktop && dart test`: passed, 6 tests. +5. `dart analyze`: passed, no issues found. +6. `dart test`: passed, 324 tests. +7. `scripts/test.sh`: not present or not executable. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_23_Export_Abstraction_Layer.md b/Codex Documentation/Current Software Plan/V1_BLOCK_23_Export_Abstraction_Layer.md new file mode 100644 index 0000000..1ca597c --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_23_Export_Abstraction_Layer.md @@ -0,0 +1,40 @@ +# V1 Block 23 — Export Abstraction Layer + +**Purpose**: Define Export controller and writer interface. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 23.1 — Export controller contract +Recommended level: **XHIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Add package **`packages/scheduler_export`**. +2. Define abstract class `ExportWriter` with `Future begin(ExportContext)`, `Future writeTask(Task)`, `Future end()`, plus factory registry. +3. Define `ExportController` orchestrating repository queries and writer. +4. Provide context object with `ownerId`, `timezone`, `version`. + +### Acceptance criteria +1. JSONWriter and CSVWriter stubs compile and implement interface. +2. Unit test writes small set and verifies output. + +### Completed implementation +1. Added package `packages/scheduler_export` with public entry points `export.dart` and `scheduler_export.dart`. +2. Added `ExportContext` carrying `ownerId`, `timezone`, and `version`. +3. Added `ExportWriter`, `ExportWriterFactory`, and `ExportWriterRegistry` with default `json` and `csv` mappings. +4. Added `ExportController` that reads owner-scoped paged tasks through `TaskRepository` and streams them to a writer. +5. Added compiling `JsonExportWriter` and `CsvExportWriter` implementations backed by `StringSink`. +6. Added unit tests for owner-scoped JSON export, CSV output, and custom writer factory registration. +7. Wired export tests into the root test wrapper. + +### Verification +1. `dart pub get`: passed. +2. `dart format test/scheduler_core_test.dart packages/scheduler_export`: passed. +3. `cd packages/scheduler_export && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_export && dart test`: passed, 3 tests. +5. `dart analyze`: passed, no issues found. +6. `dart test`: passed, 327 tests. +7. `scripts/test.sh`: not present or not executable. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_24_Backup_&_Export_Library_Package.md b/Codex Documentation/Current Software Plan/V1_BLOCK_24_Backup_&_Export_Library_Package.md new file mode 100644 index 0000000..a07393c --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_24_Backup_&_Export_Library_Package.md @@ -0,0 +1,73 @@ +# V1 Block 24 — Backup & Export Library Package + +**Purpose**: Encrypted backup and readable exports. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 24.1 — Encrypted backup implementation +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Within `packages/scheduler_backup`, implement function `Future createEncryptedBackup({required String passphrase})` which copies SQLite file then AES-256 encrypts with `encrypt` package. +2. Implement `Future restoreEncryptedBackup(File backup, String passphrase)`. +3. Store backup in `~/ADHD_Scheduler/backups/yyyymmdd_hhmm.db.enc`. +4. Add CLI script `bin/backup.dart` for manual backups. + +### Acceptance criteria +1. Round‑trip backup/restore integration test passes using temp directory. +2. Wrong passphrase throws `BackupDecryptionException`. + +### Completed implementation +1. Added package `packages/scheduler_backup` with public entry points `backup.dart` and `scheduler_backup.dart`. +2. Added `createEncryptedBackup({required String passphrase})` with optional test-path overrides. +3. Added `restoreEncryptedBackup(File backup, String passphrase)` with optional target-file override. +4. Added default source path `~/ADHD_Scheduler/scheduler.sqlite` and default backup directory `~/ADHD_Scheduler/backups/`. +5. Added backup naming as `yyyymmdd_hhmm.db.enc`, with collision suffixes when needed. +6. Added authenticated encrypted backup envelope using PBKDF2-HMAC-SHA256 with 200,000 iterations and AES-256-GCM. +7. Added `BackupDecryptionException` and `BackupException`. +8. Added CLI script `bin/backup.dart` for manual encrypted backups. +9. Added temp-directory round-trip and wrong-passphrase tests. + +### Verification +1. `dart pub get`: passed. +2. `dart format .` in `packages/scheduler_backup`: passed. +3. `cd packages/scheduler_backup && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_backup && dart test`: passed, 2 tests. +5. `dart analyze`: passed, no issues found. +6. `dart test`: passed after Chunk 24.2, 332 tests. +7. `scripts/test.sh`: not present or not executable. + +--- + +## Chunk 24.2 — Readable export writers +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Implement `JsonExportWriter` and `CsvExportWriter` in `scheduler_export_json` package. +2. Hook into `ExportController` factory mapping. + +### Acceptance criteria +1. Export command `bin/export.dart --json` outputs valid JSON verified by jsonDecode. + +### Completed implementation +1. Added package `packages/scheduler_export_json` with public entry points `export_json.dart` and `scheduler_export_json.dart`. +2. Added concrete `JsonExportWriter` and `CsvExportWriter` implementations. +3. Added `readableExportWriterRegistry()` that maps `json` and `csv` writer factories for `ExportController`. +4. Added CLI script `bin/export.dart` supporting `--json`, `--csv`, `--owner`, and `--timezone`. +5. Added tests for JSON export, CSV quoting, and `bin/export.dart --json` output validated with `jsonDecode`. +6. Wired export-json tests into the root test wrapper. + +### Verification +1. `dart pub get`: passed. +2. `dart format test/scheduler_core_test.dart packages/scheduler_export_json`: passed. +3. `cd packages/scheduler_export_json && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_export_json && dart test`: passed, 3 tests. +5. `dart analyze`: passed, no issues found. +6. `dart test`: passed, 332 tests. +7. `scripts/test.sh`: not present or not executable. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_25_Scheduler_Integration_Tests.md b/Codex Documentation/Current Software Plan/V1_BLOCK_25_Scheduler_Integration_Tests.md new file mode 100644 index 0000000..0ff7ecd --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_25_Scheduler_Integration_Tests.md @@ -0,0 +1,37 @@ +# V1 Block 25 — Scheduler Integration Tests + +**Purpose**: End‑to‑end tests. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 25.1 — Integration test harness +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Add test file `integration/scheduler_flow_test.dart` in `packages/scheduler_integration_tests`. +2. Spin up InMemory repos, schedule engine, fake notification adapter. +3. Create tasks, invoke scheduler, assert placements, save via SQLite adapter, reload and assert persistence. + +### Acceptance criteria +1. Test passes on CI in < 2s runtime. + +### Completed implementation +1. Added package `packages/scheduler_integration_tests`. +2. Added required integration test file `integration/scheduler_flow_test.dart`. +3. Added test wrapper `test/scheduler_flow_test.dart` so package-level `dart test` runs the integration flow. +4. Integration flow seeds `InMemoryTaskRepository`, invokes `SchedulingEngine.insertBacklogTaskIntoNextAvailableSlot`, asserts task placement, schedules through `FakeNotificationAdapter`, saves through `SqliteTaskRepository`, reloads, and asserts persisted schedule/status. +5. Added an in-test runtime guard asserting the flow completes in under 2 seconds. +6. Wired integration test into the root test wrapper. + +### Verification +1. `dart pub get`: passed. +2. `dart format test/scheduler_core_test.dart packages/scheduler_integration_tests`: passed. +3. `cd packages/scheduler_integration_tests && dart analyze`: passed, no issues found. +4. `cd packages/scheduler_integration_tests && dart test`: passed, 1 test. +5. `dart analyze`: passed, no issues found. +6. `dart test`: passed, 333 tests. +7. `scripts/test.sh`: not present or not executable. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_26_Verification_&_Contract_Test_Suite.md b/Codex Documentation/Current Software Plan/V1_BLOCK_26_Verification_&_Contract_Test_Suite.md new file mode 100644 index 0000000..2398ac4 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_26_Verification_&_Contract_Test_Suite.md @@ -0,0 +1,37 @@ +# V1 Block 26 — Verification & Contract Test Suite + +**Purpose**: Repository contract tests. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 26.1 — Coverage & adapter verification +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Extend repo conformance tests to compute coverage report using `dart run coverage`. +2. Fail CI if coverage < 80%. +3. Ensure desktop notification adapter passes mock contract tests. + +### Acceptance criteria +1. Coverage report generated in CI artifacts; threshold met. + +### Completed implementation +1. Added root dev dependency `coverage`. +2. Added executable `scripts/test.sh` running `dart analyze`, `dart test`, `dart run coverage:test_with_coverage`, and an 80% coverage threshold check. +3. Added `tool/check_coverage.dart` to parse `coverage/lcov.info`, scope coverage to package `lib/` code, exclude generated `.g.dart`, and fail below threshold. +4. Added shared notification adapter contract test helper `packages/scheduler_notifications/test/notification_adapter_contract.dart`. +5. Ran the contract against `FakeNotificationAdapter`. +6. Ran the same contract against `DesktopNotificationAdapter` using a recording backend. +7. Normalized desktop adapter cancellation ids before passing them to the backend. + +### Verification +1. `dart pub get`: passed. +2. `dart format ...`: passed for touched Dart files. +3. `cd packages/scheduler_notifications && dart analyze && dart test`: passed, 4 tests. +4. `cd packages/scheduler_notifications_desktop && dart analyze && dart test`: passed, 8 tests. +5. `scripts/test.sh`: passed. +6. Coverage result: 83.31% package `lib/` line coverage, above the 80% threshold. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_27_Deployment_&_Dev_Experience.md b/Codex Documentation/Current Software Plan/V1_BLOCK_27_Deployment_&_Dev_Experience.md new file mode 100644 index 0000000..ed8c8b5 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_27_Deployment_&_Dev_Experience.md @@ -0,0 +1,69 @@ +# V1 Block 27 — Deployment & Dev Experience + +**Purpose**: Dev scripts and packaging. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 27.1 — Dev/test scripts & CI +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Create `scripts/dev.dart` which executes `dart run build_runner watch` and launches Flutter desktop with hot reload pointing to local SQLite file. +2. Create `scripts/test.dart` running `dart pub global activate coverage`, `dart test --coverage=coverage`, then combine reports. +3. GitHub Actions YAML to run tests matrix {ubuntu-latest, windows-latest, macos-latest}. + +### Acceptance criteria +1. Running `dart run scripts/dev.dart` starts app and prints sqlite path. +2. CI green on all platforms. + +### Completed implementation +1. Added `scripts/dev.dart` that prints the SQLite path, starts `dart run build_runner watch --delete-conflicting-outputs`, and launches `flutter run` for the current/selected desktop device with `SCHEDULER_SQLITE_PATH`. +2. Added `scripts/test.dart` that runs `dart pub global activate coverage`, `dart test --coverage=coverage`, combines LCOV with `coverage:format_coverage`, and enforces the 80% threshold. +3. Updated `scripts/test.sh` to run analyzer plus `scripts/test.dart`. +4. Added GitHub Actions workflow `.github/workflows/ci.yml` with test matrix `ubuntu-latest`, `windows-latest`, and `macos-latest`. +5. Added `scripts/bootstrap_dev.sh` and `scripts/dev.sh` wrappers so the + agent rule file has concrete shell entry points for setup and development. + +### Verification +1. `dart pub get`: passed. +2. `dart format scripts/dev.dart scripts/test.dart`: passed. +3. `dart analyze`: passed, no issues found. +4. `dart run scripts/test.dart`: passed, coverage 83.27%. +5. `bash -n scripts/bootstrap_dev.sh scripts/dev.sh`: passed. +6. `scripts/test.sh`: passed. +7. `dart run scripts/dev.dart` and `scripts/dev.sh`: not executed locally because they launch a long-running Flutter desktop session and require the Flutter app/toolchain. + +--- + +## Chunk 27.2 — Packaging scripts +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Add `scripts/build.dart` building Flutter macOS .app, Windows .exe + msix, Linux AppImage. +2. Document prerequisites in README. + +### Acceptance criteria +1. Artifacts upload step in CI produces release binaries. + +### Completed implementation +1. Added `scripts/build.dart` with platform targets `current`, `macos`, `windows`, and `linux`. +2. macOS target runs `flutter build macos --release` and copies `.app` artifacts. +3. Windows target runs `flutter build windows --release`, copies the release bundle, and runs `dart run msix:create`. +4. Linux target runs `flutter build linux --release` and `appimage-builder --recipe AppImageBuilder.yml --skip-test`. +5. Added tagged CI packaging job with matrix `linux`, `windows`, and `macos`, plus artifact upload from `build/releases/`. +6. Replaced README with workspace test, development, packaging, and prerequisite instructions. +7. Added `scripts/package_release.sh` wrapper for the release packaging runner + named in the agent rule file. + +### Verification +1. `dart format scripts/build.dart`: passed. +2. `dart analyze`: passed, no issues found. +3. `bash -n scripts/package_release.sh`: passed. +4. `scripts/test.sh`: passed. +5. Packaging commands were not executed locally because they require Flutter desktop toolchains, platform-specific packaging tools, and app packaging config. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_28_Project-wide_Documentation_Sweep.md b/Codex Documentation/Current Software Plan/V1_BLOCK_28_Project-wide_Documentation_Sweep.md new file mode 100644 index 0000000..2aaa479 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_28_Project-wide_Documentation_Sweep.md @@ -0,0 +1,36 @@ +# V1 Block 28 — Project‑wide Documentation Sweep + +**Purpose**: JavaDoc-style commenting. + +> **Note for Codex**: Follow tasks exactly; avoid exploratory calls when tasks specify names/files/tests. + +## Chunk 28.1 — Documentation sweep +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Enable `dart doc` in CI; fail build if undocumented public members. +2. Add docs to all public symbols across packages using triple‑slash style. +3. Document build scripts and CI YAML with comments at top describing purpose. + +### Acceptance criteria +1. `dart doc` generates site without warnings. +2. CI passes doc coverage gate. + +### Completed implementation +1. Added `tool/check_docs.dart` to generate docs for every package with a `lib/` directory under `doc/api/packages/`. +2. The doc gate fails on any `dart doc` warning or nonzero doc generation exit. +3. Added doc generation to `scripts/test.dart`, so `scripts/test.sh` and CI run the docs gate. +4. Updated CI artifact upload to include generated docs under `doc/api/`. +5. Added `.gitignore` entry for generated `doc/api/` output. +6. Fixed unresolved documentation references in `scheduler_core`, `scheduler_export`, and `scheduler_export_json`. +7. Added top-of-file purpose comments to `scripts/dev.dart`, `scripts/test.dart`, `scripts/build.dart`, `tool/check_coverage.dart`, `tool/check_docs.dart`, and `.github/workflows/ci.yml`. + +### Verification +1. `dart run tool/check_docs.dart`: passed; docs generated for all public-library packages with 0 warnings and 0 errors. +2. `dart analyze`: passed, no issues found. +3. `scripts/test.sh`: passed. +4. Coverage result in final gate: 83.27% package `lib/` line coverage, above the 80% threshold. + +--- diff --git a/Codex Documentation/Current Software Plan/V1_BLOCK_29_Flutter_UI_Foundation.md b/Codex Documentation/Current Software Plan/V1_BLOCK_29_Flutter_UI_Foundation.md new file mode 100644 index 0000000..c1e71c4 --- /dev/null +++ b/Codex Documentation/Current Software Plan/V1_BLOCK_29_Flutter_UI_Foundation.md @@ -0,0 +1,131 @@ +# V1 Block 29 — Flutter UI Foundation + +**Purpose**: Restart the V1 Flutter UI foundation after the SQLite-first backend +refresh, without moving scheduling or persistence rules into widgets. + +> **Note for Codex**: Keep the scheduler core Flutter-free. UI code may depend +> on public package APIs and read models only. + +## Chunk 29.1 — Flutter app shell and in-memory composition +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Add `apps/focus_flow_flutter` as a Flutter application outside the root Dart + workspace for now. +2. Wire a minimal in-memory composition root using public scheduler packages. +3. Render provisional Today and Backlog shells from application/read-model data. +4. Add app startup, theme/token placeholders, and a widget test harness. +5. Document UI-specific analyze/test commands without changing `scripts/test.sh` + until Flutter CI gating is intentionally added. + +### Acceptance criteria +1. `cd apps/focus_flow_flutter && flutter analyze` passes. +2. `cd apps/focus_flow_flutter && flutter test` passes. +3. Core packages remain Flutter-free and `scripts/test.sh` still passes. +4. UI code does not import Drift, SQLite, platform notification APIs, or core + `lib/src/` paths directly. +5. Today and Backlog screens render from read-model objects, not duplicated + scheduling rules. + +BREAKPOINT: Stop here. Confirm `high` before adding navigation/controllers and +component contracts. + +### Completed implementation +1. Added `apps/focus_flow_flutter` as a Flutter desktop app outside the root + Dart workspace. +2. Added a local path dependency on `packages/scheduler_core`. +3. Replaced the starter counter template with `FocusFlowApp`, a seeded + `DemoSchedulerComposition`, and Today/Backlog tabs rendered from + `TodayState` and `BacklogQueryResult`. +4. Added a widget test that verifies Today and Backlog read-model data renders + through the Flutter shell. +5. Documented app-local Flutter analyze/test commands in the README. + +### Verification +1. `flutter pub get` in `apps/focus_flow_flutter`: passed. +2. `dart format apps/focus_flow_flutter/lib/main.dart apps/focus_flow_flutter/test/widget_test.dart`: passed. +3. `cd apps/focus_flow_flutter && flutter analyze`: passed, no issues found. +4. `cd apps/focus_flow_flutter && flutter test`: passed, 1 widget test. + +--- + +## Chunk 29.2 — UI controllers and component contracts +Recommended level: **HIGH** + +Status: Complete on 2026-06-26. + +### Tasks +1. Split seeded composition, read controllers, and widgets into focused files + under `apps/focus_flow_flutter/lib/`. +2. Add controller states for loading, empty, typed failure, and retry paths for + Today and Backlog. +3. Add provisional component contracts for timeline rows, compact panels, + backlog rows, notice banners, and staleness markers. +4. Centralize token-to-visual mapping for project color, task type background, + reward icon, and difficulty icon. +5. Add widget tests for compact rendering, backlog empty state, and typed failure + state. + +### Acceptance criteria +1. `cd apps/focus_flow_flutter && flutter analyze` passes. +2. `cd apps/focus_flow_flutter && flutter test` passes. +3. `scripts/test.sh` still passes. +4. Widgets import app controllers/read models, not persistence adapters or + scheduler internals. +5. Component contracts satisfy the remaining MVP-AC-05 token-mapping gap without + locking final visual design. + +BREAKPOINT: Stop here. Confirm `high` before adding command flows and a vertical +quick-capture smoke slice. + +### Completed implementation +1. Split `lib/main.dart` into app shell, seeded composition, read controllers, + visual-token mapping, and focused widgets under `apps/focus_flow_flutter/lib/`. +2. Added `UiReadController` and `ApplicationReadController` with loading, + data, empty, typed-failure, and retry states. +3. Added provisional component contracts for compact panels, timeline rows, + backlog rows, notice banners, staleness markers, empty state, and failure + state. +4. Centralized project color, task-type background, reward icon, difficulty + icon, and staleness-marker visual mapping in `SchedulerVisualTokens`. +5. Added widget tests for seeded Today/Backlog rendering, compact rendering, + Backlog empty state, and typed failure retry. + +### Verification +1. `dart format lib test` in `apps/focus_flow_flutter`: passed. +2. `cd apps/focus_flow_flutter && flutter analyze`: passed, no issues found. +3. `cd apps/focus_flow_flutter && flutter test`: passed, 4 widget tests. +4. Forbidden-import scan for app `lib/` and `test/`: no persistence adapters, + scheduler `src/` imports, Drift, or SQLite imports found. + +--- + +## Chunk 29.3 — Command flows and vertical quick-capture slice +Recommended level: **HIGH** + +Status: Open. + +### Tasks +1. Add UI controllers for quick capture, schedule-from-backlog, and mark-done + commands using public application command use cases. +2. Add forms/actions for title-only quick capture, duration entry, and done. +3. Refresh Today and Backlog controllers after successful commands. +4. Add typed conflict/failure states for command attempts. +5. Add a widget/integration smoke test for quick capture → Backlog → schedule → + Today → done using in-memory composition. + +### Acceptance criteria +1. `cd apps/focus_flow_flutter && flutter analyze` passes. +2. `cd apps/focus_flow_flutter && flutter test` passes. +3. `scripts/test.sh` still passes. +4. Widgets continue to call public app controllers/use cases only. +5. No scheduling rules are implemented in Flutter widgets. + +BREAKPOINT: Stop here. Confirm `high` before adding persistent SQLite-backed UI +composition or broader screen expansion. + +--- + +--- diff --git a/Codex Documentation/Current Software Plan/V1_PUBLIC_API_BASELINE.md b/Codex Documentation/Current Software Plan/V1_PUBLIC_API_BASELINE.md index 0fc6b91..fc231bc 100644 --- a/Codex Documentation/Current Software Plan/V1_PUBLIC_API_BASELINE.md +++ b/Codex Documentation/Current Software Plan/V1_PUBLIC_API_BASELINE.md @@ -7,7 +7,7 @@ Starting commit: `775c2ed406f03a73a9b0ca621dea5b4482468616` Public import: ```dart -import 'package:adhd_scheduler_core/scheduler_core.dart'; +import 'package:scheduler_core/scheduler_core.dart'; ``` The public library entry point is `lib/scheduler_core.dart`. It exports the @@ -398,23 +398,185 @@ Chunk 15.5 intentionally changed the public API: `PersistencePayloadGuard`. - Added repository integrity failure codes for invalid revisions and owner mismatches. -- Added `V1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md` for MongoDB adapter - implementation prerequisites. +- Added `V1_BLOCK_16_REPOSITORY_ADAPTER_CHECKLIST.md` for the former document + adapter implementation prerequisites, archived after the SQLite-first pivot. + +Chunk 19.1 intentionally changed the public/package API: + +- Rehomed the core library under `packages/scheduler_core` with public import + `package:scheduler_core/scheduler_core.dart`. +- Added shared repository value objects exported from `scheduler_core`: + `OwnerId`, `Revision`, `PageRequest`, and `Page`. +- Added `packages/scheduler_persistence` with domain-only repository + interfaces for tasks, projects, locked blocks, settings, and schedule + snapshots. +- Added `RepositoryFailure` variants, sealed `Either`, and + `RepoResult` for expected repository success/failure paths. + +Chunk 19.2 intentionally changed the public/package API: + +- Added `packages/scheduler_persistence_memory` with + `InMemoryTaskRepository`, `InMemoryProjectRepository`, + `InMemoryLockedBlockRepository`, `InMemorySettingsRepository`, and + `InMemoryScheduleSnapshotRepository`. +- Added package entry points + `package:scheduler_persistence_memory/persistence_memory.dart` and + `package:scheduler_persistence_memory/memory.dart`. +- Added shared adapter conformance test surface + `runRepositoryComplianceTests()` and `RepositoryComplianceFactories` under + `packages/scheduler_persistence/test/repo_conformance.dart`. + +Chunk 20.1 intentionally changed the public/package API: + +- Added `packages/scheduler_persistence_sqlite` with Drift-backed schema + package entry point `package:scheduler_persistence_sqlite/sqlite.dart`. +- Added `SchedulerDb` with schema version 1 and generated Drift table/data + classes for `tasks`, `projects`, `locked_blocks`, `locked_overrides`, + `settings`, and `snapshots`. +- Added generated accessor classes: `TaskDao`, `ProjectDao`, `LockedBlockDao`, + `SettingsDao`, and `SnapshotDao`. + +Chunk 20.2 intentionally changed the public/package API: + +- Added SQLite repository implementations exported from + `package:scheduler_persistence_sqlite/sqlite.dart`: + `SqliteTaskRepository`, `SqliteProjectRepository`, + `SqliteLockedBlockRepository`, `SqliteSettingsRepository`, and + `SqliteScheduleSnapshotRepository`. +- Added SQLite adapter conformance and write-latency tests under + `packages/scheduler_persistence_sqlite/test/`. + +Chunk 21.1 intentionally changed the public/package API: + +- Added `packages/scheduler_notifications` with package entry points + `package:scheduler_notifications/notifications.dart` and + `package:scheduler_notifications/scheduler_notifications.dart`. +- Added notification abstraction types: `NotificationRequest`, + `NotificationFeedbackType`, `NotificationFeedback`, `NotificationAdapter`, + and `FakeNotificationAdapter`. + +Chunk 22.1 intentionally changed the public/package API: + +- Added `packages/scheduler_notifications_desktop` with package entry points + `package:scheduler_notifications_desktop/desktop_notifications.dart` and + `package:scheduler_notifications_desktop/scheduler_notifications_desktop.dart`. +- Added desktop notification types: `DesktopNotificationPlatform`, + `DesktopNotificationBackend`, `DesktopNotificationAdapter`, + `StdoutNotificationBackend`, and the IO backends for Linux/macOS. + +Chunk 23.1 intentionally changed the public/package API: + +- Added `packages/scheduler_export` with package entry points + `package:scheduler_export/export.dart` and + `package:scheduler_export/scheduler_export.dart`. +- Added readable export contracts and orchestration types: `ExportContext`, + `ExportWriter`, `ExportWriterFactory`, `ExportWriterRegistry`, + `ExportController`, `ExportException`, and `ExportRepositoryException`. +- Added sink-backed writer implementations `JsonExportWriter` and + `CsvExportWriter`. + +Chunk 24.1 intentionally changed the public/package API: + +- Added `packages/scheduler_backup` with package entry points + `package:scheduler_backup/backup.dart` and + `package:scheduler_backup/scheduler_backup.dart`. +- Added encrypted backup functions `createEncryptedBackup`, + `restoreEncryptedBackup`, `defaultSchedulerSqliteFile`, and + `defaultSchedulerBackupDirectory`. +- Added backup constants `defaultSchedulerDirectoryName`, + `defaultSchedulerDatabaseFileName`, and + `defaultSchedulerBackupDirectoryName`. +- Added backup exceptions `BackupException` and + `BackupDecryptionException`. + +Chunk 24.2 intentionally changed the public/package API: + +- Added `packages/scheduler_export_json` with package entry points + `package:scheduler_export_json/export_json.dart` and + `package:scheduler_export_json/scheduler_export_json.dart`. +- Added readable writer factory `readableExportWriterRegistry`. +- Added concrete readable export writers `JsonExportWriter` and + `CsvExportWriter`. +- Added CLI export command `bin/export.dart`. + +Chunk 25.1 intentionally changed the workspace test surface: + +- Added test-only package `packages/scheduler_integration_tests`. +- Added integration harness `integration/scheduler_flow_test.dart` covering + scheduler placement, fake notification scheduling, SQLite save, and reload. + +Chunk 26.1 intentionally changed the verification surface: + +- Added executable `scripts/test.sh` as the required analyze/test/coverage gate. +- Added `tool/check_coverage.dart` for LCOV threshold enforcement. +- Added shared notification adapter contract test helper + `packages/scheduler_notifications/test/notification_adapter_contract.dart`. +- Desktop notification adapter cancellation now normalizes ids before backend + cancellation. + +Chunk 27.1 intentionally changed the dev/CI surface: + +- Added `scripts/dev.dart` for local build-runner watch plus Flutter desktop + launch with a SQLite path define. +- Added `scripts/test.dart` for cross-platform coverage collection and LCOV + combination. +- Added `scripts/bootstrap_dev.sh` and `scripts/dev.sh` shell entry points for + agent-compatible setup and desktop development. +- Added GitHub Actions test matrix in `.github/workflows/ci.yml`. + +Chunk 27.2 intentionally changed the packaging surface: + +- Added `scripts/build.dart` for platform-specific Flutter desktop packaging. +- Added `scripts/package_release.sh` shell entry point for release packaging. +- Added tagged CI release artifact upload steps. +- Replaced README content with workspace test, dev, packaging, and prerequisite + instructions. + +Chunk 28.1 intentionally changed the documentation verification surface: + +- Added `tool/check_docs.dart` to generate package docs and fail on warnings. +- Added generated docs upload under the CI artifact step. +- Added generated `doc/api/` output to `.gitignore`. +- Fixed unresolved public API documentation references in core and export + packages. + +Chunk 29.1 intentionally changed the UI surface: + +- Added provisional Flutter app `apps/focus_flow_flutter` outside the root Dart + workspace. +- Added app-local path dependency on `packages/scheduler_core`. +- Added `FocusFlowApp`, `DemoSchedulerComposition`, `SchedulerHome`, + `TodayPane`, and `BacklogPane` in the Flutter app. +- Added widget test coverage for rendering Today and Backlog read-model data. + +Chunk 29.2 intentionally changed the UI surface: + +- Split the Flutter shell into `app.dart`, `composition/`, `controllers/`, + `theme/`, and `widgets/`. +- Added `UiReadController`, `ApplicationReadController`, and + `SchedulerReadState` variants for loading, data, empty, and typed failure + states. +- Added `SchedulerVisualTokens` for centralized project/task/reward/difficulty + and staleness visual mappings. +- Added component widgets for Today, Backlog, compact panels, timeline rows, + backlog rows, notice banners, empty states, and failure retry states. +- Expanded Flutter widget coverage to 4 tests. ## Repository contracts -The current repository surface is pure Dart and in-memory only: +The current repository surface is pure Dart and adapter-backed: -- Task repository behavior is represented by `InMemoryTaskRepository`. -- Project repository behavior is represented by `InMemoryProjectRepository`. -- Locked block repository behavior is represented by - `InMemoryLockedBlockRepository`. -- Snapshot repository behavior is represented by - `InMemorySchedulingSnapshotRepository`. +- Core legacy repository fakes remain in `scheduler_core` for existing domain + services and tests. +- The Block 19 repository abstraction lives in `scheduler_persistence`. +- The Block 19 conformance-tested memory adapter lives in + `scheduler_persistence_memory`. +- The Block 20 conformance-tested SQLite adapter lives in + `scheduler_persistence_sqlite`. - Application transaction behavior is represented by `InMemoryApplicationUnitOfWork`. - Application read-query behavior uses `ApplicationUnitOfWork.read`, which stages repository access without committing operation records. -Future MongoDB adapter work must remain behind repository interfaces and must -not import MongoDB APIs into the scheduling core. +Future SQLite adapter work must remain behind repository interfaces and must not +import storage APIs into the scheduling core. diff --git a/Codex Documentation/Current Software Plan/V1_REQUIREMENTS_TRACEABILITY_MATRIX.md b/Codex Documentation/Current Software Plan/V1_REQUIREMENTS_TRACEABILITY_MATRIX.md index e69530b..56270e3 100644 --- a/Codex Documentation/Current Software Plan/V1_REQUIREMENTS_TRACEABILITY_MATRIX.md +++ b/Codex Documentation/Current Software Plan/V1_REQUIREMENTS_TRACEABILITY_MATRIX.md @@ -99,19 +99,19 @@ Status values: | ID | Acceptance criterion | Production API surface | Representative tests | Status | Active-plan reference or issue | |---|---|---|---|---|---| | MVP-AC-01 | Create a task through quick capture with only a title. | `V1ApplicationCommandUseCases.quickCaptureToBacklog`, `Task.quickCapture`, `QuickCaptureRequest`, `QuickCaptureService.capture` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart`, `test/application_commands_test.dart` | complete | Chunk 14.3 adds the atomic application command boundary. | -| MVP-AC-02 | Store quick-capture tasks in Backlog with neutral defaults. | `Task.quickCapture`, `QuickCaptureService.capture`, `TaskStatus.backlog`, `PriorityLevel.medium`, `RewardLevel.notSet`, inbox project default | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart` | complete | Backlog-entered timestamp remains incomplete; see Blocks 11 and 15. | +| MVP-AC-02 | Store quick-capture tasks in Backlog with neutral defaults. | `Task.quickCapture`, `QuickCaptureService.capture`, `TaskStatus.backlog`, `PriorityLevel.medium`, `RewardLevel.notSet`, inbox project default, `TaskDocumentFields.backlogEnteredAt` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart`, `test/document_mapping_test.dart`, `packages/scheduler_persistence_sqlite/test/sqlite_repository_conformance_test.dart` | complete | Backlog-entered timestamp fields are covered by document mapping and SQLite persistence. | | MVP-AC-03 | Optionally schedule a quick-capture task into the next available slot after entering duration. | `V1ApplicationCommandUseCases.quickCaptureToNextAvailableSlot`, `QuickCaptureRequest.scheduleImmediately`, `QuickCaptureService.capture`, `SchedulingEngine.insertBacklogTaskIntoNextAvailableSlot` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart`, `test/scheduling_invariants_test.dart`, `test/application_commands_test.dart` | complete | Block 12 covers scheduling rules; Chunk 14.3 adds the atomic application command boundary. | | MVP-AC-04 | Create recurring hidden locked blocks and one-day overrides. | `LockedBlock`, `LockedBlockRecurrence.weekly`, `LockedBlockOverride.remove`, `LockedBlockOverride.replace`, `LockedBlockOverride.add`, `expandLockedBlocksForDay` | `test/scheduling_engine_test.dart`, `test/timeline_state_test.dart`, `test/edge_case_regression_test.dart` | complete | Date-only/time-zone hardening remains in Chunk 11.4 and Block 15. | -| MVP-AC-05 | Render Today as a timeline with project border, task-type background, task name, reward icon, and difficulty icon. | `GetTodayStateQuery`, `TodayState`, `TodayTimelineItem`, `TimelineItemMapper`, `TimelineItem`, timeline token enums | `test/timeline_state_test.dart`, `test/today_state_test.dart` | incomplete | Backend Today read model and tokens are complete; actual Flutter rendering is Block 18. | -| MVP-AC-06 | Use compact Today mode manually. | `GetTodayStateQuery`, `TodayCompactState`, `TimelineItemMapper.compactStateForTasks`, `CompactTimelineState` | `test/timeline_state_test.dart`, `test/today_state_test.dart` | complete | Complete at backend/read-model level, including current/next deduplication; Flutter UI remains Block 18. | +| MVP-AC-05 | Render Today as a timeline with project border, task-type background, task name, reward icon, and difficulty icon. | `GetTodayStateQuery`, `TodayState`, `TodayTimelineItem`, `TimelineItemMapper`, `TimelineItem`, timeline token enums, `TodayPane`, `TimelineRow`, `SchedulerVisualTokens` | `test/timeline_state_test.dart`, `test/today_state_test.dart`, `apps/focus_flow_flutter/test/widget_test.dart` | complete | Backend Today read model and provisional Flutter token-driven rendering are complete through Block 29.2; final visual design remains intentionally open. | +| MVP-AC-06 | Use compact Today mode manually. | `GetTodayStateQuery`, `TodayCompactState`, `TimelineItemMapper.compactStateForTasks`, `CompactTimelineState`, `CompactPanel` | `test/timeline_state_test.dart`, `test/today_state_test.dart`, `test/application_management_test.dart`, `packages/scheduler_persistence_sqlite/test/sqlite_repository_conformance_test.dart`, `apps/focus_flow_flutter/test/widget_test.dart` | complete | Complete at backend/read-model and settings-persistence level, including current/next deduplication; Block 29.2 renders compact state through a component contract, while a user-facing toggle remains a later UI command/control task. | | MVP-AC-07 | Push flexible tasks to next available slot, tomorrow, or backlog. | `V1ApplicationCommandUseCases.pushFlexibleToNextAvailableSlot`, `V1ApplicationCommandUseCases.pushFlexibleToTomorrowTopOfQueue`, `V1ApplicationCommandUseCases.moveFlexibleToBacklog`, `FlexibleTaskActionService.applyPushDestination`, `SchedulingEngine` push methods, `TaskActivityCode` | `test/scheduling_engine_test.dart`, `test/required_task_actions_test.dart`, `test/task_lifecycle_test.dart`, `test/application_commands_test.dart` | complete | Chunk 14.3 adds atomic application commands with persisted activities and operation records. | | MVP-AC-08 | Move backlog items into the soonest flexible slot where they fit and shift later flexible tasks. | `V1ApplicationCommandUseCases.scheduleBacklogItemToNextAvailableSlot`, `SchedulingEngine.insertBacklogTaskIntoNextAvailableSlot` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart`, `test/occupancy_policy_test.dart`, `test/free_slots_test.dart`, `test/scheduling_invariants_test.dart`, `test/application_commands_test.dart` | complete | Block 12 covers scheduling rules; Chunk 14.3 adds the atomic application command boundary. | -| MVP-AC-09 | Automatically roll unfinished flexible tasks to tomorrow/top of queue with a small notice. | `SchedulingEngine.rolloverUnfinishedFlexibleTasks`, `SchedulingNotice`, `TodayPendingNotice`, `GetTodayStateQuery` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart`, `test/scheduling_invariants_test.dart`, `test/today_state_test.dart` | incomplete | Domain movement, structured rollover notices, and Today pending-notice read model exist; explicit durable app-open rollover orchestration remains in Chunk 14.5. | +| MVP-AC-09 | Automatically roll unfinished flexible tasks to tomorrow/top of queue with a small notice. | `SchedulingEngine.rolloverUnfinishedFlexibleTasks`, `SchedulingNotice`, `TodayPendingNotice`, `GetTodayStateQuery`, `V1AppOpenRecoveryUseCases` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart`, `test/scheduling_invariants_test.dart`, `test/today_state_test.dart`, `test/application_recovery_test.dart` | complete | Domain movement, durable app-open recovery orchestration, scheduling snapshots, and Today pending-notice lifecycle are complete. | | MVP-AC-10 | Log unplanned completed tasks and push overlapping flexible tasks normally. | `V1ApplicationCommandUseCases.logSurpriseTask`, `SurpriseTaskLogRequest`, `SurpriseTaskLogService.log`, `SurpriseTaskLogResult`, `Task.completedAt` | `test/surprise_task_logging_test.dart`, `test/scheduling_invariants_test.dart`, `test/task_lifecycle_test.dart`, `test/application_commands_test.dart` | complete | Chunk 14.3 adds atomic surprise logging use case with flexible repair, activity persistence, project stats, and operation records. | | MVP-AC-11 | Break a large task into child tasks with row-level priority, reward, and duration. | `V1ApplicationCommandUseCases.breakUpTask`, `ApplicationChildTaskDraft`, `ChildTaskEntry`, `ChildTaskBreakUpRequest`, `ChildTaskBreakUpResult`, `ChildTaskBreakUpService`, `ChildTaskView` | `test/child_tasks_test.dart`, `test/application_commands_test.dart` | complete | Chunk 14.3 adds atomic child break-up command wiring. | | MVP-AC-12 | Auto-complete parent tasks when all children are done and allow force-completing all children from the parent or a child. | `V1ApplicationCommandUseCases.completeChildTask`, `V1ApplicationCommandUseCases.completeParentTask`, `V1ApplicationCommandUseCases.completeParentFromChild`, `ChildTaskCompletionService`, `ChildTaskCompletionResult`, parent-child helpers, `TaskActivity` | `test/child_tasks_test.dart`, `test/application_commands_test.dart` | complete | Chunk 14.3 adds atomic parent/child completion command wiring. | -| MVP-AC-13 | Display backlog staleness icons without per-task stale prompts. | `BacklogStalenessMarker`, `BacklogStalenessSettings`, `BacklogView` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart` | incomplete | Backend marker exists; settings persistence and UI display remain in Blocks 14, 15, and 18. | -| MVP-AC-14 | Track baseline internal statistics needed for later reports and filtering. | `TaskStatistics`, `ProjectStatistics`, `TaskActivity`, `TaskActivityApplicationResult`, `TaskActivityAccountingService`, `ProjectStatisticsAggregationService`, `ApplicationUnitOfWork`, `V1ApplicationCommandUseCases`, selected action services | `test/scheduling_engine_test.dart`, `test/required_task_actions_test.dart`, `test/document_mapping_test.dart`, `test/task_lifecycle_test.dart`, `test/child_tasks_test.dart`, `test/project_statistics_test.dart`, `test/application_layer_test.dart`, `test/application_commands_test.dart` | complete | Chunks 13.1-13.4 add canonical statistics/accounting; Chunk 14.3 persists command activities and project aggregate updates atomically in memory. MongoDB adapter persistence remains tracked separately under MVP-SUP-07. | +| MVP-AC-13 | Display backlog staleness icons without per-task stale prompts. | `BacklogStalenessMarker`, `BacklogStalenessSettings`, `BacklogView`, `OwnerSettings`, `BacklogPane` | `test/scheduling_engine_test.dart`, `test/edge_case_regression_test.dart`, `test/application_management_test.dart`, `packages/scheduler_persistence_sqlite/test/sqlite_repository_conformance_test.dart`, `apps/focus_flow_flutter/test/widget_test.dart` | complete | Backend marker, settings persistence, and provisional Flutter backlog icon rendering are complete without per-task stale prompts. | +| MVP-AC-14 | Track baseline internal statistics needed for later reports and filtering. | `TaskStatistics`, `ProjectStatistics`, `TaskActivity`, `TaskActivityApplicationResult`, `TaskActivityAccountingService`, `ProjectStatisticsAggregationService`, `ApplicationUnitOfWork`, `V1ApplicationCommandUseCases`, selected action services | `test/scheduling_engine_test.dart`, `test/required_task_actions_test.dart`, `test/document_mapping_test.dart`, `test/task_lifecycle_test.dart`, `test/child_tasks_test.dart`, `test/project_statistics_test.dart`, `test/application_layer_test.dart`, `test/application_commands_test.dart` | complete | Chunks 13.1-13.4 add canonical statistics/accounting; Chunk 14.3 persists command activities and project aggregate updates atomically in memory. Blocks 19-20 add repository contracts and SQLite adapter conformance. | ## Additional MVP backend requirements @@ -123,7 +123,7 @@ Status values: | MVP-SUP-04 | Cancelled and no-longer-relevant are separate calm lifecycle outcomes. | `TaskStatus.cancelled`, `TaskStatus.noLongerRelevant`, `RequiredTaskAction`, `TaskActivityCode` | `test/required_task_actions_test.dart`, `test/task_lifecycle_test.dart` | complete | Chunk 13.1 centralizes both transitions and emits distinct activity codes. | | MVP-SUP-05 | Free Slot is intentional rest that blocks normal flexible placement and suppresses normal flexible reminders. | `V1ApplicationCommandUseCases.createProtectedFreeSlot`, `V1ApplicationCommandUseCases.updateProtectedFreeSlot`, `V1ApplicationCommandUseCases.removeProtectedFreeSlot`, `TaskType.freeSlot`, `OccupancyPolicy`, `FreeSlotService`, `ReminderPolicyService`, timeline tokens | `test/timeline_state_test.dart`, `test/occupancy_policy_test.dart`, `test/free_slots_test.dart`, `test/scheduling_invariants_test.dart`, `test/reminder_policy_test.dart`, `test/application_commands_test.dart` | complete | Blocks 12 and 13 cover scheduling/reminder policy; Chunk 14.3 adds atomic protected Free Slot commands. | | MVP-SUP-06 | Project defaults apply, learned suggestions stay optional, and task reminder overrides are possible. | `ProjectProfile`, `ProjectStatistics`, `ProjectSuggestionService`, `ProjectDefaultResolution`, `ReminderPolicyService`, `Task.reminderOverride`, `ReminderProfile` | `test/scheduling_engine_test.dart`, `test/domain_invariants_test.dart`, `test/project_statistics_test.dart`, `test/reminder_policy_test.dart` | complete | Chunk 13.5 adds effective reminder resolution without using learned suggestions as silent configuration. | -| MVP-SUP-07 | Repository boundaries prepare for MongoDB without coupling the scheduler to MongoDB APIs. | Repository interfaces, in-memory repositories, `ApplicationUnitOfWork`, `V1ApplicationCommandUseCases`, document mapping helpers | `test/repositories_test.dart`, `test/document_mapping_test.dart`, `test/persistence_edge_cases_test.dart`, `test/application_layer_test.dart`, `test/application_commands_test.dart` | incomplete | Chunks 14.1-14.3 add pure Dart transaction/read/command contracts; complete codecs, durable revisions, and runtime adapter remain in Blocks 15 and 16. | +| MVP-SUP-07 | Repository boundaries prepare for swappable persistence without coupling the scheduler to database APIs. | Repository interfaces, in-memory repositories, SQLite repositories, `ApplicationUnitOfWork`, `V1ApplicationCommandUseCases`, document mapping helpers | `test/repositories_test.dart`, `test/document_mapping_test.dart`, `test/persistence_edge_cases_test.dart`, `test/application_layer_test.dart`, `test/application_commands_test.dart`, `packages/scheduler_persistence_memory/test/memory_repository_conformance_test.dart`, `packages/scheduler_persistence_sqlite/test/sqlite_repository_conformance_test.dart` | complete | Blocks 19-20 add domain-only repository contracts, in-memory conformance, SQLite adapter conformance, durable revisions, and compare-and-set saves. | | MVP-SUP-08 | Hidden locked time remains hidden by default, with explicit reveal as an overlay. | `LockedBlockOccurrence.hiddenByDefault`, `TimelineItemMapper.fromLockedOccurrence`, `GetTodayStateQuery`, `TodayTimelineItem` | `test/timeline_state_test.dart`, `test/edge_case_regression_test.dart`, `test/today_state_test.dart` | complete | Chunk 14.2 adds hidden-by-default Today omission, explicit reveal mode, and date-stable locked overlay IDs. | | MVP-SUP-09 | Push/backlog/restore movement should be activity/stat data, not shame language. | `TaskStatistics`, `ProjectStatistics`, `TaskActivity`, `TaskActivityCode`, `SchedulingChange`, `SchedulingMovementCode`, `ApplicationUnitOfWork`, `V1ApplicationCommandUseCases`, action result objects | `test/scheduling_engine_test.dart`, `test/required_task_actions_test.dart`, `test/scheduling_invariants_test.dart`, `test/task_lifecycle_test.dart`, `test/project_statistics_test.dart`, `test/application_layer_test.dart`, `test/application_commands_test.dart` | complete | Chunk 14.3 adds atomic command persistence for movement activities, task stats, project stats, and operation records. | | MVP-SUP-10 | The human spec lists `pushed` and `skipped` as statuses. | `TaskStatus` excludes both; movement and burnout compatibility are modeled as activity/stat metadata. | `test/domain_contracts_test.dart` | contradictory | Resolved by `V1_ADR_001_Lifecycle_Metadata_Reminder_Semantics.md`; the contradiction is kept visible so later chunks do not add movement labels as statuses. | diff --git a/README.md b/README.md index 6cba90c..70dc3a8 100644 --- a/README.md +++ b/README.md @@ -1,106 +1,75 @@ -# ADHD Scheduling App Core +# ADHD Scheduler Workspace -This is a pure Dart scheduling-core project for an ADHD-focused scheduling -application. +SQLite-first Dart workspace for the ADHD scheduler backend, persistence +adapters, notifications, exports, backups, integration tests, and CI scripts. -The repository intentionally keeps the scheduling core **pure Dart** before -adding a full Flutter UI. The hardest part of the product is the scheduling -behavior: flexible task shifting, locked time, backlog recovery, recurring -availability blocks, and task-state correctness. Keeping that logic independent -makes it easier to test and safer to hand off to Codex. +## Test -## Current V1 core status - -- Implemented V1 core: Today timeline view models, backlog/wishlist behavior, - quick capture, flexible task insertion/pushing, recurring hidden locked blocks, - one-day locked-block overrides, required task state transitions, surprise task - logging, child task ownership/completion, internal statistics, and - persistence-preparation helpers. -- V2.0: Week/month views, reports, overwhelm shield, drag-and-drop, task history panels. -- Persistence direction: MongoDB is the committed database target. Current V1 - work prepares repository interfaces and document-shaped mappings only; it does - not add a MongoDB adapter, connection string, Atlas setup, local server - requirement, accounts, sync, or background service. -- Wishlist/future: Dependencies, context tags, advanced sync, actual MongoDB - adapter/runtime setup, long-running task behavior decisions. - -## Repository layout - -```text -. -├── AGENTS.md -├── README.md -├── pubspec.yaml -├── analysis_options.yaml -├── lib/ -│ ├── scheduler_core.dart -│ └── src/ -│ ├── backlog.dart -│ ├── child_tasks.dart -│ ├── document_mapping.dart -│ ├── locked_time.dart -│ ├── models.dart -│ ├── persistence_contract.dart -│ ├── quick_capture.dart -│ ├── repositories.dart -│ ├── scheduling_engine.dart -│ ├── task_actions.dart -│ ├── task_statistics.dart -│ └── timeline_state.dart -├── test/ -│ ├── child_tasks_test.dart -│ ├── document_mapping_test.dart -│ ├── edge_case_regression_test.dart -│ ├── persistence_edge_cases_test.dart -│ ├── repositories_test.dart -│ ├── required_task_actions_test.dart -│ ├── scheduling_engine_test.dart -│ ├── surprise_task_logging_test.dart -│ └── timeline_state_test.dart -├── Human Documentation/ -│ ├── Original Chat-Compiled Design Spec.md -│ ├── Overall App Design Spec.docx -│ ├── Starter Architecture Notes.md -│ └── Unified Product Design Summary.md -└── Codex Documentation/ - ├── README.md - ├── Current Software Plan/ - └── Archived plans/ +```sh +scripts/test.sh ``` -## Basic commands +The test gate runs analyzer, tests with coverage, combines LCOV output, and +fails below 80% package `lib/` coverage. -Install a Dart SDK that satisfies `pubspec.yaml` first. This is a pure Dart -package, so Flutter is not required for the current core/test loop. MongoDB is -the planned persistence target, but no MongoDB service, Atlas account, -connection string, network access, or sync/background process is required for the -current in-memory domain/test loop. +## Development -```bash -dart pub get -dart format lib test -dart analyze -dart test -git diff --check +```sh +scripts/bootstrap_dev.sh +scripts/dev.sh ``` -Run these before committing changes whenever the local environment has Dart -available. +The shell scripts prepare the default SQLite path and delegate to the Dart +development runner. -## Documentation +```sh +dart run scripts/dev.dart +``` -Product and design context belongs in `Human Documentation/`. Codex execution -plans belong in `Codex Documentation/`, with active work under -`Codex Documentation/Current Software Plan/` and finished plans moved to -`Codex Documentation/Archived plans/`. +The dev script prints the SQLite path, starts `dart run build_runner watch`, and +launches Flutter desktop with `SCHEDULER_SQLITE_PATH` passed as a dart define. -## Codex handoff +Prerequisites: -Codex should begin by reading: +- Dart stable SDK +- Flutter stable SDK with desktop support enabled +- platform desktop toolchain: Xcode for macOS, Visual Studio Build Tools for + Windows, and Linux desktop build dependencies for Linux -1. `AGENTS.md` -2. `Human Documentation/Overall App Design Spec.docx` or the Markdown companion -3. `Codex Documentation/Current Software Plan/README.md` -4. The next numbered block document in `Codex Documentation/Current Software Plan/` +Optional flags: -Each completed work block should be committed with a conventional commit message. +```sh +dart run scripts/dev.dart --device linux --sqlite /tmp/scheduler.sqlite +``` + +## Flutter UI + +The provisional UI app lives outside the root Dart workspace at +`apps/focus_flow_flutter` so backend package gates can stay Dart-only while the +Flutter foundation settles. + +```sh +cd apps/focus_flow_flutter +flutter analyze +flutter test +``` + +## Packaging + +```sh +scripts/package_release.sh --platform current --output build/releases +``` + +```sh +dart run scripts/build.dart --platform current --output build/releases +``` + +Packaging prerequisites: + +- macOS: Flutter desktop support and Xcode; produces a `.app` +- Windows: Flutter desktop support, Visual Studio Build Tools, and `msix` + package configuration available to `dart run msix:create` +- Linux: Flutter desktop support plus `appimage-builder` and + `AppImageBuilder.yml`; produces an AppImage + +Tagged CI runs upload release artifacts from `build/releases/`. diff --git a/adhd_scheduling_starter_project.7z b/adhd_scheduling_starter_project.7z deleted file mode 100644 index 5d4c631f66e220cd2143ca7a32ba92920a74586a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74361 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 diff --git a/archive/Codex Documentation.7z b/archive/Codex Documentation.7z new file mode 100644 index 0000000000000000000000000000000000000000..3ccc8d2159f38f5a0f62ac8c05f22295dcd5735d GIT binary patch literal 60054 zcmV(sK<&Rbdc3bE8~_9*EH6A#>Hq)$0000a000000001eC!!bQgss2?T>ue?1gRNm zwt^mEoW;gbT_;l=P)r8n*I$#5?e%y_;UkRLan?P0hl<8rHOwkX64k==p4$?GB1wi* zKVwG`tz=U1^tt<6HP&;IVWKXlM0B`GE(+e|FgGpCn@nF`lvXX|m@7WofrJSj^oM{^ zJDvFzz+k zk*J1=mSXq1My1{E-0xtZFK$vYjKuyBOxkj@*L#4>D6IU}P=6=fzQZp@BS*BH{h}9T zpc8?L4y=FOHm=k2xY5$@sxODQ^Z-o|xFQdNd})_+5+uqi3()nLuG@dwbY@j3rEScM z^-WgHX`LjNXg9LcQHI`%+YjoYY5#b`o6h!pH+Fb< z@hd>+RTmYpW~&Nn@t5^@+0zGb@&APhvOy5r-$$I{F@6^f=~SG}fMs0m7Ugl59K}(a zqhWvZ!}=^U4At8uv}93gVi(A1RVRCK8J@@M#E`VPuKF};`zQTe3!}p5orPaBbY9C0B6aErcV}(;+TACaI=ILCt)B=D$BrN@o zF4U9zBfz-*=)U(w5M;!m(WC&`XALGau*{$eDGAiB&0UyLSuS$!|NM7g^0<~_&AAU$ zjs6U~`?6I9c$j7y^suku-iEwLLyC8Nu{3~aAFqLwZJN|SntJ`j^{U3KAo-2_?|Jk@ zp_4@%*wXY>iEJ#bx@$LUXwElF*g1P~jY6s%l-gJ9X`q^|%LyD4_z+fNrH{&)I?2`RH@=Lma_MqG+$+;z%usnv)rk!I|eTiV`jO;&!msy-57r=Zb?bysv29VUIdrh4K#NAvc$*}1ax z-;G=>?1*0UulFOj*;@yX>T`@l16@gCdnx#G7)>fE?iV5>tzk-qd3o=!?Iao_*ozpo zxpM#is?Qq<{|(v9jlRVV58EV6!|UYi-*ZmW&_#WcB_Bx8ha%0UMVXm4ZA*Z%=6@SF z5r8W_rAq$y3#YsgpDRl1arDFE{qTZgW3*2jM3VSR@AN?dV|=X_En0K7;mkTmvc{&e zPjlvP&+Fz?)HB$mO(w=ttX=7D{@m|G7ug2L5m(uCiMT3x<#1c&84GEt7g@2I9y7D? zsh>EuPMdByo#@#~nbl!ck7F&h(=4vrtX142B(13pkz?qFbTvCFkztbWb#}4M8EzWC z1CS`~Q?5cF1iour8~sf}KDy_6EQtaHfKRb72m(Z8E(Tn7FyE5<;PKVN}S z1%(Hjp`FM@fssG4s97HGczwz+Qj)IyHP%g$ETVt0pTjP{Mx4q#0*?o>pMW1DHe6Se z5;SvLZa+Y7)p|kX9Cce&RgUIxxnCHum5<9BukUE4%jwNWNv3E;gU#ht-V#%spZjQp zNF-Ile(V0C!`$=fJe($Tbzrh}L3$Q~agk(JOJ-iA>%t|CHN*^`J(Cd`24V@+fE#=h zKu`@1#x;HPK>_^p8|#NyFqTj9F0{{w5r5vmuU@{K%!#jK{nhFd)NN5|G>ucrS*=b^ zvckWYOG0=lWdD7fFGZf&YTP2RjDW@sVN+J^cMW9<*UVy8SQdOghKG=Hi}=YDd`*>f zmLt6_52h^Vdu`OL?>40pr!>K&q_0mo%S60}8mgd2=UWn9PoR&TNj54Er4gFlixpthrSIoI(R)k4EvY;+aJk%v z{RJzm`1RH90m{$|SA8A1ipd^TjU26D=y6R7w7_jeIjO%IEsG}kPJ^ZFj%Y;i**7A5 zkcC|~!P7QK`f~Es7iC)Ta1RV!VV1)W(gM-!d}R*nVM$k(KT50%6_7V%`qQO3U31a* zmKy|vpA!25QiCyDDpV;8=yM0vOwsyu;}InBQjeqRB9|EFg|*r;Mbh&kc-7-h5&-&y zo&Fviw5bkef*!X|&3v^g5KLE5UiGn4Oxz}LsGO6&I@D1ggEN#zP&dRk+KdYmgEsrN zeAnQbzm?kaSkM(+_;c!cKqu2gLe49&| zIf`Gjxm3M2kCT{vFsLLvG^fSh4uKTpI`9$5L`_*X-RL^GUVy3Gdc3X`e}R zU9(8%c7I%>C+xtPYiHm{^B~K0eR%D)!bqF0_*zGUc=&b~9M7+L=pd3{bAn*B6*LWv zn{drBIO~dmJJ}WOyx8e|Eqq8AcIkVhn_Z4k`;PP=CZ)J8EIv%C>N&#r8zEc!qNALT zm1;^)C6R|^(Nt*x8Sf_|h|`PPFOa9BO7$IJlJtGJ${7uJe~F`QF=T0(BhsKvq6 zS7-GITsWvx7Z*P@f8@Las^XA0m?2Q;Y~}Ys@+VE7@j_alGJ-o%0E}%)sc}YV!<3FVxBwX+!CReKu1J&TZ0b}#rY;n-tU|e1R zs~?Rm@dx97p+2*Nfykil=yx4a4q{1}SxwM0i-qtP1r5fU_;<2?5N)qY8D5$FbSVxM zJOsII+UNpAINrIh!pxKW^1@!uG#Bx&PcQttP=JNYcr-q_a$kG_>Khb)w8K&%qb<<9 zBi0&bV|FHIGdRZEY!cqJAUMWp`)r-+867g9OdH`($xT}Z`BGC#@6UYeZj2vz{0jl6 zf7e>-ol5=1lAX00%0x4-#(yNfUtn3N zbH^Dr9hyo@AB_OBoQj~2oI}NZ0VA3 z)OHyMklHz}Ey35tTy#}B{Y&#FkppHGQf0fDaYmg~lf;*2l7AW14wIMD@JV2s?{A$l zx1%X^$SbiVoY!}NMXLr2#`8=-WE)k68Q^=?H7uB+YD4(Sqro~~Ae7QsqdqF!4WT6( zFx;)C2Vi<~mu9;B^(ZZco0BCu9t& z34oTCsHjzPXm9jqWoD?f)BEObYGal`ygl8KQ9f+PA+*nOdA+3TyW9#YFiE3@23}t` zutCK*;eF8d^(m&E#Yet0Xxe;%TZCwQAm#w_0!r3TU2^?_JxOS9bt+ER;3iMdY4lD zyoDhcX9JJB&gz{PR6rl>BQ#n-F#M;JKq-2#BK`V*&N_EjzhcCxU7Y7)DRNK^K%}}i zC4;SY^!yqSgi2+3{I*Lf9b$8S7mX;6;-q-BA9#<>BHDF|p=%Gq@g9k_XNb6E z%H?~XHIkiNnef->-PcFWIX#wKE`J2S6c`@S7!J9|d(z5~3R;9}|vgK65FeE0nfAS?~GX_65!?)s3sQWv#xpIz*9D^@NRG z4BrCj%xktk@*gCpF5-663^@*TcXh`z6ldDS}XqM6Q~R> zBobZ4qRFF~!@AN_=K^N+^LSbq-2f@Ga|Cu^sI1rHH315Lyg z`z2Q#>B?Dd$^-NoHr-XTJp|r_)y9cV?)`GP`#I6tX=J)gJx=~|MGbf4eh15aoQneD z4n|Xx;%yszqb}VW(OYgIYDyDE&Mc!VnK)gULxH`d53z`ktLU&mV3;vho<8S%j%ph| zS-20-*6VY=0D$|vok9p5s&5sQIK3G`iMuq0gWlA|9;$okefwfzuWx;%uDu6#&E(7fLjLZ@D$8zi#L%tM6$tOSO#OTge%*%hta-HcgqvgkErx3x$T~bLJFbcKzo} z-ZzWE8N2CkPDUAq^(z~f++5mRU|-T%npjDZ_HcD6df{|6UY`BdZZ4vb6pzL?rfXlX zaS5;S^J)PE9$jfyWgxKbXMl4k^#EPd#PT*XWaz+v`te2iRvqGc-jlim3P4$6{88C5 zDJl^<)*bR5Btt<28(+jrNOkc*6yz0{uycZh_UDbq6O z^Em`a8ndFam@Ya8xYllcsa?8?2XIG%Z8!gG3*{JKkO}MA-*Pf0$$^xZ|pL zReUB5hRQZ{Axk2N@UR_~X7~Uhw3w%~ns|#RwUG+jv1MWhrKS{jKcr|V=S%5|3O$dL zX&OS6*qNpgd@s2=C{W3+YLcG%y=$MH+_oqc2f2`QN224L36@3oD&@%lAFy@t5vyAQp_urF$2n zvyJ`W@#{KzF@ewGm3sSVgAQq02#DGilzlDQbkkX{&!`=BHFX)GU|f^msX$`2);SG) z(@p*!=N*#HCkY|87k>P4Y@w>T;~*G;(zT4aX17-d_#}-hsY!J|VM;lonJX&mCeoSY zIhMAp)o%kFLZ;B`gnY1@C8}enM@Os3Y|n0KZI5a;g6ev9sC97`gq*YX99QlYeicKW z6h<}~cMUC_1`keF`l}6+gvj!$0m};wrJob0^M@=EtsHC|@8#_UtO}3PLym^?QBo6p z^tvLR;J!1nF(!R<#@N{oY?-8gM=uZSp4CzMLY%&O50%@DSFj)J6?Pj>%$6O)Gx^BP z^)1^s27ccikoqgZ*+}>+W~1-M$`s%UTxu*fgb6<)ah`E_vA>dtVG1)BtQ6?x3`uJ_ zjBh~pI8SKL=1gB*D+)5Y^BxSmDoL+CS)zLzZ1(S#Y?d*Ph#ZuEd2QiRA%Hiwz|5R+B}g51C153a8&cX(cL2ae!d zY{WOLptrwcYEC4G$j$DpJimP_IwOhY>ExWRct*uRT8FZ>CA?6pzQm^^yNfv=UEB$1 zusl4ICd*?%NP>sR+6J_IK!^78?mUZiBWXHTX|ScJN0QhCoaVKu~In7S{}})6{v@xLoW`b{ZY~G#54K-+5ja z%`7;_GG2_@5G_+gd8LH?xu>doV-c=JAj^ zy2CbT{V)e?Ke>8-kYYEbQT*lWCIVaHOFdxZIiT;F-ZNaM8u$up=$LfT3Li+gVE-E% zSCPvyemxr{QVWz!z#Gxur+prXXdHgCjeBvv% z7%NMDrSkB>A6)0K#QqnEZ8gF-GIc|Rt4jkB*g$h>&wa}6rnjd#ct;?GacYEOfEhy( zj7Hear`2clBFT(rPVZlplzUQs=xYd$vM80@5Ub(yr5>!iS|zF3rpwOQB8SwHLqFqI z7f54jF&aREQ@3V}qxHH%*dB+q4^$FgdKFw?PekTd!!*mF?`k^8T80 z=B|7JGmP~s>T~0Ull{{siqxE&Ak}fW4BE1%`1KgJqj=>8Mxw`p7j=_tU@<~|J+rcp zkI5!SuLSZze{&M>-1&V1{o}z)et7)xFmyeHygRtoAaV(nWTangYMJ6BnNZ%R+JJaQLkC{rt5fj1ZtI;1E!MWOXE7p|($!!P_92Y(X_ zkQ)xvOGmYse7lyAAAF|_zIlaWm~}XDw-4^i}>hK z{*XRVy|qtM=S7uxrPSLjdu|C1IKsiK@I8Flr-Zbx-nO+T-{513i4%@`^DNwJiLOVH zPO-PQLbs*x#b&n0(Z99Xpo%{)-ego*XgOSA`@1d}uqIw*K4QKtrX2&)J%i)WiY7>) zxN&XgLN(!VnjQ^EEHzt({j;NHBeSpHK+9^~Dhi(r{6Ew-9;d};jyraizQ_yn;OKwx zI4EN>Ca$sL);xkUWV2F9t&`RK;63cT+iy1N*F-L4f_2U0ahdPQx%3ccrKsfv#Np%u zeQbhs3pTb*?hOqCy;{G#ux_%`?VfRcv!_v%qQrH8qWpS}MUk{^ohbC`98{v}UR*v& z>!E&0qyY}0ZlCEH?C&^BkvZWbrv((?pY`s>)wpl@{LF^dpKbi`Q9{J`*0+XuS_$DY z=K^!JP7U|A2ge;ZUmhkPol-uyJ|7bSeLP7TI+982j7xoYbV4vlHkYh}(2SSPV`EBD z`yf2QrR%?UTySe3j5>tw_I_JGNP?Xy5ky>to3PI0hii zD8kQ?xu`^&Kfz@3sQWL)>Rjzs^hu}FkrPv%ik0RH=cb|NtQ zT06HQz3f|RF;-ykX)x3@C`h9Y9Nt2T_3+DI295niCYJ8mr$~Rq2S zR5$@VKpQ4~8{`CjQP65js~t=_JB^T`JU$Jw>3Y8da`w(}$Of9_8NbzikLUz_Dd58- zs)*hN+|Ta{Q1EOLHWi}ZUlWgYcjnWxf;Dj>;JH{PVd5u&X%#?{~Z87weCQ}2GsvulzcV{L@G?Ha9K_)I2=oOs+Z zxni_}hTuCQH1w*XRJSrTZsmrECHG|u8mPz8Bm{*mrsjnMaYoWNUN;!vs?c+ z$&{Uxuy6KpoNWXsJ@(T`z)%2B9eNN|fE>zXBe(AOBBK-@QvFfYY$d;n;^<%ssx_e} zP@hzewcXlo#0OSQF)quk&tr?M#kq3k`@8>HZklU_gJ_nqMsoni!V+PfqVT*}up|QV zy}UxTsfe&4ZdMx@F@A?8)y|3=6R{c0AMjxo7)Yf>%%3>jP*xyX@{C-j8nL!0t zY>9U+{^U|is5O8~Ms)A#p83cq*9bm5&HHwbH~!gJaQ11WFK&1~v42&$haSb7dM_Bh zmtc#MH!tPJ0HyxMg(MBa{f0h2`9uF0^aSl`lUjom4eVGN2Isx0(+a_#d5BEx0w7-^ z!REAo%lV~-6ADP%-)Wo&_G6s<4)8A$&So&eyU8$s@fNgAoPTxOzmcC@5 zohQ=o=aNED;?ooPj_m&V>4RIU&2GR$99orF>M>D2dz^tW*@)#mjLReVwG&YS9Fs!W z0UN{2OIfGxKW*&0*SU6J)RFy!%Dpg3tbBVP*=8L-YxML(!i$kO69orAYqTUew7yfMdA zm>(K}T=jhKC3w16$aXPq2<7rbbQrNcb17_%5c)yGnN9Vn6ez4=5PRBdnQKP2Jy06X z)RM&T?Dlf({{AKt+P1_iSASu~oeqVFAH@#rl&I@nSQ(h(i~{X&($Q-XP25%-IOC2m zzs8sbHNbrvXbGbmZD1vNTI0M|A@pQC#*|(RO*93((NG}aXr{zjSQSR@#A=I9# z;cymWn;{gp9VVBHJMd|vs*NI036I&dq-e=vne{8A8wKp6_!&OvJaTc%E)N&@HtjiO zZ(o?XKZb$P#<$)VLwB_WUFC6J7sxPv5eGtjf1`QPR1E0L3A`;VQ^BDZv@cN?0zz!1 zG79#PbD_2WH*@pM{s&!S$t?_1Q|e~2UF~l9aCv~`juK7T&Qqo;hxn}-nzCKjzyWae zn&&F$n~9VMEHtca92)l(sawG*boo~H(t|z6N-mi_^7p%y>W;S;&ES;L>jFB<5k&<1 z1N@J+GuWlYbpP*_C82#uCzvj`9~SVSJcdROFvx{yYbe7tRPs5R!y>&=3q3%R15RWLqV=;YfFbP@o=y{Q+W%%oq&Cvr}(3=u3zw8G6A=QVwx%LsD zS56pFcxua}{+xL32?4*AapqMdEpd0~G_-|uH_6|ayXnm;5r2Wfgc##dM{ndNF_>Te zcOfcy9(tGy?ET)F^V@LiDda6cPi;nCpl*eyPYXy-VvJ~Em@SVnPhbXG81Es-ws@@_ z2tVVWDD0zTyQ-^9?R{;v4n}rSu~nviB8WJ2&iz=JSKkf=DjI#JVQX=wzA0!N7kNc3 z#U7=cOPX57iP#vS8!QfC#hDvKLt}n2=aLEFcJ%#&8r`507p5wWh|8on@(l*?mcj#xK$ub|+;pP^ zIFBXX!|2vC{>N0kt0X8+u#Ps0MSQt-Cn2yBlGaKP%f6d65dO)T*nU8KZ|mLTohZ~&yycdxz8=GS`w5BrFvx7*%=Om!Bw0nfdnNjIGb0+U86mN3q&U!VWK z4x@E;rx}Y)UUMe`J8(b+;}q(%i||Vu#>ZaA_j-4d(KUjj>cvk)4u50gbdks|1orspI7p zse)b39DFxVib6t4$3enlTfb8+U)j9q{BHo7wS-YWokMH_&(HYhb~%wRXh8;BcVm2) zfiKo#41T2oLFo3>l-}rfsCIMdhfZ8{aj@ZWOnmOiQaSY9DO7l*y4GiA&=T#{DAOss zXVt9abs_?suMYp%QipgcekF~YRCh>fKjmsuBv5lC{IE`Dx(#!;5TITxLvy2qEkb5O z3HNO3r`;o_V-=T2D)m|y# zU@y?dL{HA>Yf%FR5ru7hRQE!2VKlLDB`t=bx2OZ#(99*d(-D zipj)E+`VlLC1lRA@NpMjqbpwtRS~3;^znth+tJKOJ7V{X6`rqS_!q9}i>Y&2E=3-( zX*dghjH(uGkd=A>c-XyKU~TEW3gYgo4EdZ$)DIj>H|ept0T|D+uk$XEj|X?>sS zHtq@xBYyXM=wI9@4~J^myGGbe?9UDtj*q)d)gZ0*Cnj~J?rr9&p2pUQiwdYkw9%fg zRf%X<+ILs33oqoQdEhbvgk!xyN0)vGhKvFyf2pc!!9I=%rsP?$@m#K1oS-YR5!xB^ zzgJawzPXO>3vpI^Hq??F5yV3NWA#otQLT1(ED$`1@oiik9cNU~$YRa>fL^^Gws2)5 zLBs*L(=wJc(J9&;48*G1I6l*Y1zhLTSJ(iubibjpL)mIQB6n5_SKvngG9Dh3wo|m4 zADW}uCrl(Wvr2nfJJoWzil$FBjvqZgo?%}l4kcSuO9*6Hkh2!84L2`i(0SHsN9x{% zK(k%&oFsmYP|1oIh%?TiSW#d+T_l1`_=Qag{uMjL@PA zRQiG1+>41n9@NGE}vfIXBBzakzHELkwofApVWQq+mVPrvlHaYMEsao82T$8IkdA{A)YddR(F zPN~??Yic>)(_bun{ko@W-~IEU z39+M)3s3qEqO6UyI zs==`}0Ww{$vMFuWuk4?7CD5+A0sFi~xjvccGeCPY0Pz0UY{#D3^mq(xISA`l!f*g7 zB9U9y8GCekFr?xbq3LuQ(D3R$0KQF=N2*nL@wTrJ5TRrSo5(^hl|+5QRP&x720z{^K@&PoMXzFBdrX2rbWK$gQe zsC(;c@6snU@&e&Hwqn5D$Af(91VGmCCQcSf?z7bDmAP)onY&kon_w4s@9Z&2Acg^O z*H`h^_4&dM{O&L}7&`3xIM5DYu^Xe1p5Fnu8xBsmxzHZxV!A~gF)pM=?gLogI_b9NWOD~MeRM;E~>G~TN6@HtA zlJoJ}m7y}HND}yIWE}L;*Lmia)fUoVuIf?E4oU^_cy<=Uu^U2zWt{{Y>VP;McbZB$ zZSev%@Xn)etG-NHziSC645DL=obIbIw@AvP`t11xn4TRXe{Uree6XhkCoMOPnbLH1Ns`Pw2u6={)DFPrc%>WWBG(NjYj)Qn#4 z7Y6dRK_wB~|6)P_Hf07ccKxruTC0hZ&6V%p`O}1(t5AO-9l#P83zUX2@jf(qr;c8N zp$yiTS5Bj>f?y-9>Ca^PWDQdwI(J57RJU@8w68$vG-h%{B zo_1^*TmJxj_W%BmuDu?)>VhJ;qI>^L)5;Z+%x+FWK z?ZzSBvriqlZ|!b@aMrardnc2frqUF`0ZjmeRR?;zv}=@+^MUsbxSvpf;k;(pE-vYX zWc!)CR3P8qHxe0WVLR0=afT+xW}(SC{J*I!X$YVXi@p}^p!a*awCNNJbCQo-V0${fGs_Q$}R z5u=fTcTy?l(1>oi5L$!nS-608jU|n!=7gb+99X?I*MHM{`gfdH);BL zKAq_hM={!o4%pY@0e9qUcv2L6o9;YSiwZ;kl0@GK)5(2_A?DP^a44Eh9cX0R%0mL< z25Ng1VF)%t9rB&PIu;;k7%DdQr^!VPa%m^&7HlnyvJwz8kgUGNwSXv2H#A8PKxAAQ7`g(0Fd_1j#0$KNPqj+p|3q-v9 zspXG&$*-2z3kwYYo6bIWdK}0tn5hWU_zh~9U1kSHJ4O0yCRL_Y(;+lh5{=k4*gb11 zpYNeN%0b_lc5x+=%97z}#;6AoWrv#B4_Ob7=216MY>-;zQ}quO9bbX#E-=|dDgs7B zTP|`-5Lm;P!(o%nLO<4(g4vrPo{}IeAianp&_c~mzW7LI{>qdR1@(uff&hbdg!(xho|>X*^XkuPI%k4xt`+UBYcl_NYGZ(PES03=Zov% zPA>ynks&oFax1$Pve)Qqcu-p&4Ojk$F?Lx=UB={#TybqCY_dj~XCjX7fUDuKA`9gm zN><>#>@#K^{`UL#M%F!=+Sv>P8T!65`F0oUUR(Rl7xh=%i|DX=04*kv+HyG-+U!X5|D^FD7MU0)~ z8w)TIA7~NK{Kgsm9lztmK-Gi+rv|z%mlBnYuyjkTYReu+I6hr(J3Hg6(Lhz5r-r6lzJIWUj0I5dz6XqZXzt$Zy zQ8H%jLlFarFZPdyO83lalzheg5B0P_&BV;_9!-JYGh7_P$V(d2ty}URnq2-WIo|-n zHn8#1Mobh~KCHK)uy;y$S8=Zo-GG4}en^=Nc()LEsr@dWo`Ka=Dv`IP!MWfC!CSFY`Dj^F7EOhdGun7oWb zyM)0j-`Z}$0Mc6&gdLofWO+;khkKwNn+TO$o{Y`KLAw$GV64LOt&~Y_r11Kx1`}w2 zx`H`PnC)TttyVz}N+dzj%T65KOH-N6PXdPh!;ms=>6m8V;<{4;$CsaMx``id;4qc>MS{{`X8EMX#^Rj8rQKb2ssC7N$O1cp*5qrRcs zfg$~dqd!b{N;(Sb32%JnySdjml2a=>p9cnVZPgdOJDui=zK2R^5W?=gN*@~fqQ|@d zWqPU(t!L7yVSpUwCO_k%RwfoLQQznd#Xk?k9Ltk3K`k!v&JXMyu}ZdRTyA8yfAtj9 z^)*k#2iFt`1leCLn#>9IX?tIatr7nGUW&#Nq7V~Y{DR*!+pPTl29Fp1bja{b(g-_I zu4BU!TJC8_8IQJ=$0W^&$+~Q)Wn}mRjxijXhf%5>fCB|7emQs(8)}gx!`OJA2r12} z$@fRmGGiePMU5-ca~m*0j@XbVx^x=!sCQ}7C{omKS~+VXqS-cN%#t0BB9jTAp`jXb zjN^dcq{><)SU+cyRVjq;aulJWp_$PqXCSUl8*$6K*EYRli|m+I8T3%lKwPPNEhWId zTDFz)Bp{Ik_7DFeo}$(5a(@MnDHU_Ha5H!3alY#%W2R$dJ_@zkGz>eaE@sd^uZOn- ziIRzrG|Pi^K=xw@wL~BY4gE|c?(GKEVodRo2hhEJVKYlIOieAjAp7{d)4#8Tio(dm z0Y1Aiw>+fb)fOL;*Qn*K8NBboPOoLVmZA>+RU1E!GN0mKZ#L2GjZ4{tw#iD1J>Mfg zO_#d*tXVN$SaC@8%V7PRLw7g1dA%L8V5Zf|G=h$&5EOKBU2{W{sF$KOjKpboDgBBj zPmWhS2p*&6^sOT;GJXHk6IYuKh)(XF4;|e^c3<7o^|j@l7e}s<-FMs`ET&nAE*dnk z#7U`XN<^dEqI&|-+eS=eu~cWk9B%&UHd1M7AdV6-4bT7$Wrlx`&oi@8?Bb09~ zB?;G~K?0$4)+FKV+StY1qW#c!Hu40hYz1JzG3hm<>yPemMe3#o%yUi=T#9C2c?~g1 zri{HP8{xG;_V^85XgP9>L0E}6je(jjMoT2-Moj(f-sBm5Q@^9K?;k{XXG;ap&yYr* z^cL@B_P5}vRi+NbcD7548_WMmjJcvO(=wd!unwuMMF>t!Tr+?$>LbtPkIY&bg4vQ` zi^ra6IP`0)A^K0ISY_Nf%r^awD)9IdJ+pIF~ye8N41oPzBzuS&mCdVF0c+Qm?7 z?6}n@SNe|M$ak>%o@emms&Qd<$e{7&Y;OhTtESc$>GH^I?uMcgHGPxWbZ_$yKpD|k zZq8(j!V;ilhc@3V1qzAx%{d;EVdK0jt#YothAsX%lCQ8IV4F) zZYu9L*Q*?gnN`nlS#h$n(wyH@1m*z3kExTzNPX#>sz|tx?u%i{iT5rw?{fDzA{0J^ zGikZx_9)+-XNmM9&io4+?M8!s(Gu^ljG;nC^wvJNwiu`wWYhh#fo*my6j;JO3UL3t z$1hKQAoKk+TvTM`<_{nB$fSeHx2lnc$gHre{A5X|dZ`*8re)D_z%|jtG;VAU%-J-U zW|Z%c;fM(!!!rcM*{}af%1|Nr=WUu%p?GD$78dV+jW@!%IZZ)jK6;CN)r;p*TgVat zrwu0Er|0D$73p3op5VVj-Frl<(0plv-&i9#5T^sX8wMW;&0sbn6&<15*E++)bA715 zuApL23eoxkN(Xv5I z_*yauS>U=B(k?Y!LTHFn3bJ}*37xKUxEf;))!LCqSO2fEc25>AsV{&6inv2?ZmP~u zn=-j`!{zndZc>0ioyg>nzB~O_ThdJb9@x#|2blY;)7MOa_Y!m2Hkpy&oGcTYlscb0 zs>4kVHtVj)V^Y*9{z}y>jPieUaFTDX+~|7UqTww^%NxnTrAIE%!@6#i@)f`~9C= zUY5%i!V*%{IdWDhO(psU>3NcR+v32GWv0Kd1zdhW457h5oLx;TkUxxI1u|SN(w77k z9h$B}PaiEujV5gFiE8(S^I4B#;D8?g%Ftk$++qEmKS%fDH)>i8S~9A-DlP3IVbB`xf2^Vm1pcP7hl^f{FC2TTGvpM$*2-b&cozNnF$Fdkc_KaQyW z&AV3({?`hOdDoX9gClGK&nI=v(zuF)>^m% zIn;wwTbjx|2=4i2LD5NmLkIckO_V>$Jso9iS^#6GngWhYB4lzw_T)8nWE7s|MHm@b z8tYYqOQ-4#8~Tve@m`W=CZ5z}XNIt8-1vi{ML`@l0 zCbgSi(jN%#sbC-eM&aaTie`##pci91ktl8uIwe3M`4Cb@`zEwWIF-(iAy#Gq`$a`` zhDpU6O4fo}Ey007!+_L{xEOV_E1nA!=HPN5%=JCfMmB;;PsR&$^?=C5in&!b z7WdE2q$cuh8R5H9YD{h6u$a!NJWF+S>B`S_aKTWJFltsQG^+LQe&B{T(EDT&O}Acu z^GfEnYYc%A^?YdXIC9JN^nrtdbM@e~!_BrY5OmdQ0wt?2z^Cs#u5gOA|-+>GGl@ z)LZ6w2^!QOez=^;wm`JQporC(w^hb-k&jOs2&O%Nlf7%Pg*-*dLvcy)XP0W%$at%( zk7jZ6dleJTMi7_a!PlT$XH{9falRMYp* zrUF{kyn7goE@KS_WW`KxAqJz9(+;l0xFIwvca&2(Fh%YVE~%GfS3~C>=p*kw$SPAg zcPnk#PkFQ<&tf_+Kj}34q4vhxkX_F~eB0#9iBu~K4kpfx9Qv&3%YA+LNAvrK9!H`I zl(KUy0d93!Pp#yTn8&cbB|D*9vX8YwbJqmJ)!hS)o)lU={8ldXR=uy-)AB4Vo{YdX zMamhxw%8jMpw9&CWG|;M1g0T?IS^>;iCV}m$U=S3sQAjn6ylIXRl2yKj(>Yzg_Yw9 z+-Jcmjw&o@lXXzz>VUfg3<47#azl6fPCeyyh+bcV7$DY>IGgSYTng`pYjaU;M2(AA z9m3!a^68($=wJ3V$~}Y{Di>-KQ3#CbLkc&B*ljD-PO7}i>KXI-VQ|iY>sd~03oljD z8j`m;L`lWD(GpP%;XTQ!;Rk4xd==9Nrc2mivMyt_P>GTq8f&r1u_(-%AKqO=Z84=t z#2c&NdaXgoNk7<+M=GVHOC86^I^s`#z@BJN4exj~jz5ZXUJaJMt<#?TFyM6O@|Qisk+FOjSe;^0mbK2#$i%9T4;YHv@gDdhP+@6kTkFp1tfRmbO!ExOi5 zu!Q=`?JT{;UKqJ52-!TXOq|d!9-(Rfks=RK=p^ z7DteoZg+THo3$V{F$1)vH?Qc^;nLR?Ex^OPLWg{h%seKiGg1fMO62kUM1Tm;sBfUW z9<#c^dZc?_#GeznU$^|ows}3jTX}RG?yI{OE>d6q4M4nN)0LropE?E+T?#Cq!`<;k z5@YtFg)%e#!wX&Gfg`~Ez9AUJY!a#-ROUX_xsYztx1ntWXnuToEey>Q8HOQ39Y2Zk zZNMe}`rpxgqP89w`ncDvN|Wd~z)>jZl2foBb_u{bVIU^lZ2I9rL=0F^nk1cUvvy)~n10)(#GoYVt?(L7p%ndoZ_% zJ}@NWL?dR29FYaiRqolF{J_r(PcwcW!fb?VLCVg>?!*e-fCMEb;yz(ry!ZyA1xII; zK$pNTOvRRSec~7E&fRW>d#+#{tVr!}xTxSdVrO1WsfU z_Boi36}}J{$~2) z&$p!0zUb}$S$^5ij*G0zk?w6JA7t(}D{l2m!Y6cozz4TOgtq6j#UUEgGq0CT^t0I6 zelk%>YJ=999tn}{(87^0NTr@#Kn*AK1;d5jg~t7SeP)G*9MI^Lw2N0*-nW2L^PPzh zoWcGVM?M%^hk&-Wo*7<-d$=2ijT7-h@|X(;UwC8S7oMO0-#yVb<2^z%aQ*aehvDr7 z#08+hATFBVdt5bw63Zs?F0cMcdM3IvOfwwau52)A)mUhKCs*9b#L)4$4)tJskdtP@=}~` z3fw9)7_>b(wZJP+@tL!}xvuZ0ZL~eyQ=8|ufnYG}0a!(cDf|wiO9#hYGQk9^7Jb?q zNF*$XppChSv|;7wFm+bWw*S81b|9698d3c&bV5;Iy1(GBaU<;B&7~P&GL(9Bsce@U z1H%*x+#pQ!Qs8)izTegiUsazxc=vBj=pThA-K+ow2*aLzsR>&vwmUa^?bJ%t4|%#_ zwW=cr`i{S7(8ivXz!%O+{?z=k(1i}mfxN=Mn9DF&;xrKMFxD-vn^eJsgCr$bZeGu+ zr6ch(8~VIs6iegQ?+r!PyjqX{Y}eq#!F*a znJ5!Qct_Z#7c@&i%V%A~BqHP6?Fc%iHtW~xS6SYN=(e(a*mw5eNw{BMv{D6Wc-VSi z8+mzC1Nx6OY>NrIkj4hmHXkd4;J?xi83dc@D*PJ^Y6V1_W3YXO>FKHpnQ#~>+zg7> z_ZtXqRRQEzIZB_z5vWqy|Gd+ag3m3-*$g&*zMOPDjf%>jVIb2*)6E(0I8NULFQgX0 zF$V-%W>uRdII?yx1CMBC0&m+Y%p7$iMR*v(~5@D8h@&d|t_ zvp`O>JmH!6sL})z0MT~+uU8kwi~BUroT+`;Yh>USxz;HW#LKh93@T9#Lp!wIk-7sTnfeMze0s)D!|6V$g%96*zNu}DJ=cz_&=NxIaIv47 zOz$Pm@>pwJVB73o?jrGp4e1UN_M&~Ttjxalqd?QYc!0o`5&pZrwC@juHDX@FO(kV{ zVh>5UfWHESL#jL}sy}lOVd_ugidDt|@gRR0E9fMI$#$DEmH{7ZEBmG-bFqpuiTTqe z^AkS|eiWKGPT?ur+nk+|pt{JR)mp>ppXjl979)4~yMe8~=GFw(dj!+{!KWL0#yqkv zj#Q9OJWIxAaJe%xp2L32(|qYYaY1T92F}tx*9zG<{9n8&=UD0Loz*Z`GCS;GWG|wJ zI=zk%M0X3NgxiYs-G%vwQI0xZb^z!^o_yFBa@AnR%KcsuBSn%xT-=eSkRFMYfO<;R zD+fdNh|B%m4*zpQU}0a#qQo(`M|-O;qt8!q1_1DohEn3>A31aqvfS;kVN2Ga=ifb} z(b^?^aVr=Z#|g`YhsFKqZ%h}tRixrGCfS;DZe2Fy9;Yc-Lf=&y!+j>kF00$h@p{|X zP(a(AjRab`ZxK?{e*w^EbNomj5~~Y?u}Z@{dR~*FcbI#FO&HY4vL2@)M*HHEXZQ5o!qxkKnX8E-lFLc>5Od z#;znu0Xu{-mAq!bSp;E0-PM*{KQk+oZRr|HLKlhE4n^bYeLTC9f-(rT?5s4x1Q&;) zpe8k+>>rLcZIpvF1yk1eGXGtMlgit~sUyiRACL;E#9=NvXNbKsSjXJ^O9vdSqpgcZ~U57(Iz5bFwx=2Qp*W( z^PFvi)LjZFReKpACktEafDKR7T2Xz2J&Z*(@QcX8kBzYi30_Dc6 zH0l*h?6?N<%mVb_4*8IV7A#l_-rKvBF450A^M1^FQp&e7(%FuSeRbrxEkgvfxlN$n zc$Q(?Rggff23sV`lx*W*iXW+V+OLCI_0!cF#Y0aU>2N6JzqWFgdDj4+gbo6^;#RuY zx&XE7Ce)}em066la+Qb9CHOSINd2r`COQb?8$!G4(+Mi-37xDD1wZ3uCy3WDZ1s^Z zUJJ~rabJOm?7?b$0sFh_HVI}5w$#u_`Nz?lWnV_IL;zO+*47l@G>BFb@TZTKUsAJ( z33J9nU*9Q*q9(Pm-C`)KGA1zT0?+Y&``$MDr$CB_R@+V_E5`=2TrHeVD`%umHe2G< zT~Ykb#BZpw_sc8{v?#w)gqT#S&bzr?>`@}UARG{meWI2WP6#EOy9_UD*r-Bgof8Bx z$!vBJ=;nW8ph*&)t{?y`*$^tx9PlcD=HQ6BO;hoowk!%44w^hDfOibBMtt6AorOHU z2H)o*0=@A?d1q*m!h*y;^;Z)$EuLWe6NrhIzgHr1Q8jd-ikPg+=oDUI0bs5B$%7N8 zzfu{c{MPrdWhAuXT>a%aozZG;-UTKr(cZ!091X-wuYp6TV0|W$Y)k6AWDL&ZY?Us! zj|ncVxhHQ#gb>y0h4?9ez)b?z4N-CrAAx$hbH7VDfGHtHdVge@wmhS>USBvqTG z%W!4$t^jK`Tg3`*uZ6=EQt+u z;8T31X?{~~9g`)&WXXdUz?%6(mC=smc}I|R|29Ej+b4m87GMget)CD^Py$Lmo~T<; zazUCnxQuUk9$(9ijzIR0WOzh_A*Xl|@I0&D_k;{^`&9Ynb;M&WcY^)ud%Nxsg;!Fb zO7|Pmw-6NiNc=;PZnwT&;s{I$GhQLecNh^!T%f%<$#<8M#EbZng9OZ`=x~D!shXCf zJ=yC-_1OqV^`RojC{r)k1Y4%e4EtCRlgYf@yIESsTHFbLxx3O@bhcQW=Jkx;BF3>=5PjLwNRr%9M*9x5qy^tn}Tu%x5#~_n5zD{$P zWH%*=s;nItZ8W+b>y3WchnEtIqPaj5e02g+pm8*@JXX*(6Z!ra+^m`6F9@JI1Y!>P>R zG!n{UFJRkRNh2R2L&5hhyq|O4_lE;!wq(SqkZd#FTiwD%oc2FjQ3wP#ulcg!a4Z}7 zzM{qwn*35QHS?LyLyPdbBrgLn%KmA1Gx^~UT$O0c37xx;`it1t`LL8$t1#^Uzdk7h<6P zpl4qxnHAgO$pnG0R}6A|nmzOu2u(S~#d9Ej9)&0(89MdHnVylg?MjP+baw2|X|F^V zc;qRWB`v`v!8F?mmrWGFID}HEdz0j*$~;4FA{(6UYrcb4DLL|Tl7gi=Ss-}wz~mgQ zm#?KcrfHbllk7CT&L~rQak%AbK(1xx<2}>edi7?2-!;T#E%lt+1Jlqr0IQ^qDMFYa zm6R+?SZeX3ppzN9ss3Q_-@CbJ$3HbiXp~I?z974q9%GDo&yEV~0(E-FM@$5Hi&ygy z&N@#{%6oBuyvTid5xDVGWT;L20k*_s^Nf(a2LwUirVFc3ScEvyb%WPBhnFc3?&?de z6&E5F7Rv~fENJGCvNBEm4Uvp-3R|0MB1O*)TDx7fZdddkqbG}m;WWg;0aJeu;0Nz7 zqHzFzYfOsPF0uRBve7!MpWP{2N`+x;J zWhWKnmzbGAN(-CPwTu42@9fjlnHh!>5GistowXYJlLA8(R?WebQ`*F0$u1xyo%Sm= z*f#(KYc@x>yK{YDJVjRIukX*2I=VeLLPNKwWdX&1Op~3@a>r$FW4<}K=@bLqz0s}3 zs07dCrp1R0?wk6L>V_se=;-jjdk@kAf80?d#`K&|3~0YE?OFaEjWfnmoxrvJm&Wld zqUui#HM9+`}uwz;mq460Fq61m}WrBq(6}JH} zNc4kgQ8u@Cd^ycCv&n+wf}gV^0*bAP)|af1{;+x)Eg61p2$|1>2Yg?r!}x(?0x#3O zJW)+gMIuv+iFQunu4{Pkv2ZLT^Z^`hBF#+*`h$xq#LQqMnT>cC5tkp%Y1JNf%+&*mM9#V?oW5R{emmMy0w{fjvukaK zl$<7}*%b-s0o1dpT(G)RdLstpQ$binU2r0Gr*py4_`L;S$gT%`e6nT#y=g&nyE4G| z2H$7)u18&y!C&*c;>Gp{F3@V&8=VDnX%F9_M3+IyD%SXL=7Fx646h-UDmH1j6ruE8 z`i$nJ1;-2V6yOud022>81fzvduKK?)%e8)#c6Sa|RP}fVEwbmBYARE9+DyY3gn9QG zI`qIchNg30a~{kHROFxA(tEJCs$j7Mq*Prt<*6Jm80M5*#l+;>6}{{aPs$r3)&H3^ zXSEN5$x2Pu0JTWM`lu-?4-fA-T;%E8yD#URqY9Tr?JE_z+Ar(sZ=Gg|keYq>02Y{7 z>tQTF^<0XLsNHug9a--zWK}ZtX#Yzf7XZeNrfmKzLtJ`3pcL5|Wu#zP@VUxdgEwzg z_BOS@=SDjOy^A*WLn)*ntFe8v)n5(WPOCLKqs6g3?s3?ig!aT7>qNxw<&I7xabUDy zX1t2g_?q$si20!I7Ts-f=%KT5HOu9HYP3!u-XwEY7TFraS#2z}qh~U74E&9vU}V&7 zRlQdbYg(<`%?<_-umhNY>L9%8!{>V0K%aO^5I$rTCP0%U+IdQvd|C?R7a0Z?Fy}2? zaH+rCUoWLWr|J?|MEaM}95syh96ld93T3?G8e;jc4gV+-#Q`EW{`-2hOo~TgZfiG zVwez`6R^>SX)KfX9L+cAF4liom?hU`EtR&1KzZv~cQ-lwRhh5Iidt@39RR^F&?a~ z)Gz5eAh6w`#Usj12zpi+3GxEE428^iN!xJt<*t`J0dH^AmrSn1pKc}PUXYu)khMp) zlqgsvrrni!AL`Z+{FFYUFGU?_t%m!qh(%Q?C`qdtg|CNC3G|Ny45eI0RWvnRM%2w`{?W0t@sbM3y8WkogJKxZB6YZdsPrihA2h86S|(?S?PWo>Uk~h zcl|l-PPQ!Yq=&>}qRw=qqVULXw1~*{%x1ZDHzl{C>i7^)SUeQ@C&B2J1pBy^GXg8` zWAUTxyZ!?tQr+wn_$QF5X!WyiIjMT_DbbEsafXp8U^=zE`0~9hQUm_uX@Fu}`OO9k zCDo(XH^uZwl!3gXy$CjYHz#jY_<1$=pqc?L1Z^TXb6(hXDuzifr%u77R!5MZn|pJ6 z_&KKU^QeRPxw_E+i=_DJVJ+6=8K6s+)JlC>zd7^aZCn`y-@DJd%zcMNlniGExNuzQZ?&?oby9o zq$yLiyN&;}p%P@J3Pu1dxg_KO{R*Lp(LMHoZ#ZeP`|=nbJ_;u zhk(9*-8H~b%5IeGdD~V>p<2n;-Z1l1wYVkH2d%_y_n8H_q)J1?L*sn9Z$MH+Ov4{O z1~!&}jns0e-yRkrmj{~=Y`ZwdSyTWLS59vA$HE8kDQ;A7yHimZ(przz%LtY_wp6LV z+I-$6^dKa7-w<)@lD$I$8QOt`J@?v9`%cdsFvH>g1Id^m71?W)!(Ck_JKbiuhyLgY zH68Or*J(LQvit}Wga}TKVL=I!L{p+h@|qN(^@v#$?PL|V#5d+q-fM#&pbSKN*wU8d zTRAsWGlR;QhJ6y-H!q^9Ixci9!0zwN7>SV}dz-;NUp<4}8niW}>n7V{X(n52>V?^x zB-JAEg*3@(lJ3uetuFSZvfWK*EmIRPGPgq(fU2DMvc)L{AB-yMTCm^{b>qd$)rP>p zT+u6Ny+kxw3jy)iGq1w6rUCgl506IN&ZNa#z@#3t=)>}{=oPdz8g(}$s-YWk zmCbGzR3HJSxM;ot*n;V7RGJjfUiC&2XpIgKV_=e^L$e?THUYLJ1t)S4FZp%Sxr)Rh zd`5BLZO;zahzK(K5k)clm-eILZ<2zmCL0PECQYeTdiV<)1 zw+0hkOxL+foLR<{mZ*ZQ#hsr^hj+SbXbRL_Usgn=JxTs80-w+DoG$dyQKq~GD)K4l zxRstfFp{`mAZg~GOad9i;|4*f*~Y}BMfpHsMjw*TK#p(m$1E?8#p1~k)a&Sp;wQg$ z#LPNVg>Kq(_*X9h@yb~~qU5|>^E(~Fns~Z$5T)Tzu~9_q)_$T(T5k0QFq#6LvuUyO zWisa`E_d+xJ(l!>1^whRLzSKkxSf@#B@N#?Nz_JL_})%*C+%D*Wo{`66B={Gc2Xj5 zp0L@Y6>vV;0av$dw9KP4w7%=dD;^qM(1Rx+_+?49q&T1NrbH?% zFX#I~XyVx5I1=h16?3FfZk0Q|EErYA=64!~dZR=Yh(fl-U#cl*-a~eI z78cXtW=hb*t-W9}fIPafp6fPLnYMJmvQ}xQ7hQc=oMA*E%a!lr`}9Pzh#7cD;(utM zmBjJ6J+6hKCN3dD)W_o359h`<7R5*JpV*BeLWckx8O=g-nG`t_be1^#@@=m*QzEo3 zB+VrGbH*nHjBPl0D)4^slpyi+l?0{24sc3X7^%XO7)B#Q$L1pb<+A0VOv(pza%?yQ z$SDC!n1)6P-*Z$n#T>8VukMgYKkUwUI6~*NDF_x(l)wl7C#V+RniDk0A!)ahO z(2`rq{a=q%1yKMz|+NWC<+ZL~})nST`lZ_P8igzkpf z86c)FO-!@}C{IQ;9zgAqzfBxN8FZz8+8K%C;PTdV%ZqH8ZVfwEc*~QGlanABIPOn1 zIlZszb)`{29$DaYIClsX_}5rHT*-Gao61y9J#}(Z3ag3>zXN{u(Prxa94|b^bp|sh zoebRl^-RYnqReWJ_)wTD-uq)cBgeMjg@7bGTZvzuUc$McAbNqNt;FXH!=)db1hU?j zf4f4XD5!3A#574cV*%w^hlkvt}Iu6$>tHEN=0r5d6Z%l#oZFH^Dp8`%{V!k7L>Z zk`0kU= z-K`BR2W*Gf$`PzDO?cmS*P{f+$!@JkaSFZASV$YIl9Ygjr>0qu52P_)>_yk8n}?aL z+#=QR1Z7g8#n?Zv%&(d>&OxC--*e>EoLHI@3{wL=#m9X6{+S)&))bM7Vs*l^*9&8n z$taFMMsP#x zZIA{x^hcKwTTefhJ~7drb7&)=JHun!GP9uxiVUHi5VSmHGwkm!*%@(G+@%*QLX+Jx zHZy$zD}x=^M*cm-Z)3?pBuTfV5fZhN7ls8$`?AD3WI$9o3q^ZmrNC(tgOt6 zb6>h--aw=szL}H+j>39Mwbw{%3kn+sD_o|%(5DAOdYp-?x?r<-=kv$Wa#WzHXe&8p zr3Z&q9Fbb%R%4dXVmS=JkXFb))ilKDB{yq3Q1NG8NUL79+|$=8hM4y+;08b6{xI#C z2v`X5`45nu1@ag0JHjx6wZBJGtbCCv>KX2-?nNTgKCgS}PZNgpL-Rtx$Sc9MD0|L= zj+8Yf44W%)PL+_){5R%F)AIO@ykZkpE7_V~QJFoCy>|Ou=xML6LrGzq?jMZ~s@{u= z?XP3{3f@gI7pl9J?qlQOkjPi$!vVq+PIja;SN3F1}j21DQhEptG}DZekM z=;$D-nWy9o=^;*Ii{VX>Zc9m7qPE#xDjPqEeqHhgmw@0`B%6K(DARH-&2aYbFjEa) zo?O9BU_Y&P$b5&W>okDvEaAFAYiBr2gSn5i3~v-xwow;S>7k>E`wj-!-U>=8N$JEU zVC9#%8s;StWANagUN=h5Fed*dI_PtaRY~h@)Q?fO6Xz1eRS~A|dq)HYPt}Hj-%tT^ zp*ND)0&}>>0@*}B8xA2XqqrA<&mLCRhu6KU?c`9k@vl4^r4dx1eb!NnRul~`)yJ^;6|2g2p7*Oq>Cf_dz zu=t0{&FjgLAHutuR(2a(e!%xzlauoF82U!e3I(7P|D_$Kjr@CK$=JdgP1vhiUG$ph zRoKD>ZxmSc^iJFAVvz#TS{Fu<&7DoQ>i3&hU@S%%YDP_Ml?r!G)KWYpJ~2(9q_{-X zhl2biV@nN5ocDx3eeuat9Ed>j%sNo{qBRO*~*Z-!>$WicOD>M%BZ1N)xziY88or1vq8;~4hgOON!a zR;=8S1?95zo>pC=tFDDBqSJ)m_ScsS7Ck8|-s^da*;S^@AIug1Tx|ytbk@(_IU)Mg zt>dqE!&i~_E^5gWlj(6XS$z^qUzAnds9__x{zF<~8(TmiH2sit8;dyuk&;J0{W3%; z73jPJ+*lbkmwb)Je z`29MSy!F@spAfE*?TGd<}Z#;m;#W_3`Bc7ZNAar4PFe9$$g(?7-)juZa=8 z3#aOQUNs2ZWJ9?Dx4YriGf5>}p1kg)85VYj9v2y6N<*+Hv1P_@8K+OyYT?xKUmOyo zNG3riYiR(v71=;1PERwI=Jp`lna?67XtUf3xdJ5_x(*zAaKzE+N}u0xNQV{ip(Up! z@LFqO`?uIuFSJ|mK&M0gw+UZw8(#6TdxkM4;h@2S>+-^0(+{2*M%rGXk(K8d`MMD? z0@b`$3kG$KPP{8u1!m!dqYZO?OC;TZ$ABBNoI-2_2mhpcq|6r8##!B}CD02`G`XtZ z=7Rfz!2=4r2n9aK#`cXJck}DcgZu2nEE@C;llMFwMRX?SzwB{!tFy@MmD}-%ofMKSw;7+ptAM*DLwn?)22WtRSd(r&V4|z?W(11=s1Sm9X z*;)OClw;A!^GrZ1s_gi8bKL?Nnv=#hg@DKIyZQOGU&gn zOcUkQe5}52$>~Dg`iT}_o{C$^fQBf_0$P{tn?T3nW)h08^QD3&NlfcwqCsRTpUO+i z&f^jcdaTQ?TN0#;sIyrDvaOE^I(VKQj@moJtR(;ri4C4+=y?!|qH`buF5vVgJFV#C z$g>M{5~{-IOGb4twxsff;e9QQ!|)&SojY78@0Ij@-VlS*9Hkm4X<|*`RaoW2)*XkM zU36obVV=5MnLz$hqzbi8}&YB?25>a^ixNE@9hmz-w0#HtEv# z{C4+KUX0rxFAUiQaoG#5+O$lR*%?!|5!4*%JAE#}C*8pz8>vu3k7;hsI?v0%1QWgr z7xGe6=y^evOP~aL{FL~v`8p6)ALGqHEbCHSy-xgf;uWy5(ZL9{^3aDQ(k_;H%VsgM zIx1@muLdMQ6MoF!AvPUs>jY8#I<+u7c6$A3NX1p_9HGgtuHg-s%i%bLb=|mX!G}(l zvDn-}ICXuL=&_ZzOhv_3zX6O19;&`s@I#*KsxFdrKXiMry%OA(t+Ue5q;Dy}aBI|K zM8>B7r)?x6JuN}UJzON{nBdMML%!rleHqLzCmM);%IE!F$!n&^I*}|FYne(FvZ!$w zna)`b^IP&Ll=Hb@x-Oh@#jpaPz;jp+4@;wEDI5Y-J9za`PKrEA+=`S{^I;Y~n9-Xl zz&`b#bT?Z013oB7xtyT4_nq*Xsgt#epW4Nkoj^$^af)x~x!)6yaQZX%1s_*bY*Xu) zoH=L8GFhJC(ni;`kD_HA&z=SzT7=N7?4FJ8#yCY!$uz7H^nG9?h*kf0pJ!5-8T;R* zC+l-*628Cb>p}H_47VWc#yIg5kB(TR**3Egmd6lzG1T(I&sgtyx!b~XXF@8PiCQri9Ey0|XCk(}p7tyiR75`7;$=FpM!Ka3gbF?r&(SNq=>}u1R$=5i8 zCYLG!8riIm4iK~71syCTj_94mY^q|$movL=3!axwk<^R3l2wIE`ybO^NSsb#p$J*n zdgy)dK)F5>LlW#G%Kb*B(|zk%kLDCytDaeqx*|Avnqj_}>JddXvCp2`e7^rgVLKa4 zy&@Uw5jj%{-|=H8p}INYf_oNeAs=ipB7 z_~gp{#0(~Lljal3h)6hxZk<2&jvmU8o`~yxW@tUvqjigjQv<%O0TVdi&mtAKZ&ys_ zxkxDTm=P_tN=txB(AJjYRZH4IpO4FT>9b#We;Cibb^G~?@$39PbIv@)>g-1^khzwCH(YY)w9$7rPAO%$#9!J z`O*H5=9q^5Z|)Dw_zLUTLp{_O)kg>#0P$0Q50%`MG(R#V9srz^6txlX-s4)C1B_7($7!GbZK7)IL=xhe+dfeN z9~j6AD3P?@d4D3j7u@Al?yRMoKc8pa0x(rJ9;PMZ<-rilsCen+?V7I34ZnS>^G#%H z1XnVnAtCqldu(I+p`y~>SyCqncJGORA8*hF)?88!(hLt7Zb?bUnlA2b$f|-gqDh0C z%h`60+AS&3fe0(v)VS(2!@nvI$_=UYPEPmatvhF5QvN!`jnTJDjF+B9ck#g$7F94m ze+4&cBOX5fpw*)s2d|%c_1I2Z9k`0DA?k94uR@4cWCnD1!O-dlIv{?LP|t+&#-DWh z7emBEJwuZ?gV2kcnNhY0m9E;_;;qGM=ab;7ut)(JL)`+8_^NsTOp~lpc67E@EQqJM z&CN(CYjQ?3Rqu$ zC#`Jp3V)Nu5S{bE)Ob|lo-uGQzMCh6iBif>eTJjLeACpTA*6KZQ)bsY*gEfn7IQq1wUgi){%wvM*AJwW8v37bn$Ch9DXK|a{4yd zz;wh^JcPBg2Fc%>{l`1B&S;kWAwY%3)ycYfb8hf|LEI*T*8|mb2MUf!FTF!?oGLMi z%k{upDW)`T;RGUdd%gs<54y%+8Pgu+g!zyx`y*;@mf4h|DY{1X1;=C#l)ORbZy~x> zWn9OEn^bN+ks5a;0`b9m;jh{TXFi6Xx^1^?Y`3{(_y;cbtfT&O@fVig=Fb`mm${Cy zox=S=qvR3qiY*oT5nE_PIZ8w5t%v*+!9@zNi`9PQI~NZ}0Gn|=amX6X5vGQ*s}Zgf~}Nv7Gu8dJ9gQ8=dLZhQ}tjM7&l#4l4hGyz+5JUhTWY!$>J@q6>u=A z!}z+%c3}XChU5OSjPz$Qn;X1V_NPusfxqK=om4i(oF{Nwx+%q49Xc-{d_-WH$g0>uBOlA6DVA=2AH!)X?mcYd_s|VWoUdBfHky- z&E7tP&*n$$p_6|O{2X*2j>3`ku1SC*yd%>gQJ~)m_HDiFTdic#o)Y|nmCI9QE?@tl zpRY@yBiqWj|B#vUBQJ(cNc4zTDt%A5S4xGp$ECgIA)mi`jjf(+Z@lx7PzaYbX2tM@ zBJ91)wz}wFf)6+RgT}!v39ccWjH+`kh^R+;Yz|YqJ^)OIG)){tE4x4rMhaj->P1$Z zpL+t4Xv=O>ug+B&r`E#(pd+94yT@)u8`6%0F zyDX?+X%nJL-Xc|OM_x*o>&oFyu6B)}?lcVf1U%Xx`Eh9;7z{-JNa%+9V^$B&P&!X% zoA0$BCObgO7Bys_6`5ukrL$RZwo|K&P>em^435DstTtJ!ts5=rKXJyNZu1mY?hTFJ z8+f=!U@FFh%C)_3WwG@-Q~s@=Rd36w4-K6+ zzlB(**Xd5YvIbE71`+Fch!!2_D}09QqQ8x1(eEh~*EZY}$O?A>cTk&@`u25L{HwCD z*(|7nE;h%fgI3vrEL+s{EN-Z-`T4AyC1tiOUR=#8Z?^Rte zrBIFT+dZgE7uA2JLIivph;zR&&Ve;$o#~o7w$lBC{2p3BmFN4G!~4Ah8ym>d#PPw> zTu=DM`R!VQJmaO{s${l~d;uY(+#Mjzi8<|Ju82nVy7Rf&d$ZT~>B^SF+VpdhPY{ck zS(d@x`eOfh=curX9$_6AkZh4)HjmGG4678?6{0XBE_ zN;ii;&pY?O+!}Cx9ZCSV!@%VI884 z1mz$oj*2h?8{a6@PFK)exlmniVQFGA(3*HF&@7@1Jtp29R8KdEtPQn2wd;d_sb)@} z%FfejrAiBbai$}UrXT40?&rPxy}9hj}u)a zp8QWc{QbUpPZIL|G2<~u<9?E`JZR&m&HI(MTqpe)%v$BJ>L_=8P`(!^;YYKd!qu}E zzB->qAW-vOhs}(61CKwsr1Re((T*0bAMQI625dllUum1^6(7B-cN-56kDH>wx7LEa z*n;fz**G}@S4CqVMpodW6*-`v;hm6~A@02FOZCo{Y!wiMi|xG3{oJLjY7-RTjo@<8 zgrT0$VnxEeGvyk^uc6jOt9BWNjOW%2Z=iCR_QVrHGIxdy{ycOTuF*i;b@rsc%9dL` zijHSH8a}BAr_#aUREg19MvH849Db&hf^>kJ=`-SMoBDYVCx{T#A)h&b8Z=h>S54cu zR%gIlC-2+iHrxg+L}{00t@9St+ALHJdFC!#i}YiPy3;A!g8&%NY(ldIyv11LD`;rf z0B#y{T|RnD42wbj&WooC1VJ92Gi=W5hi3csB83i_C?w+3RUn|d$jil#F@QBF7BTGQ zrw2l42gM3p;HXytb%`C&1_)Tdcj^cGq1An9V>2@m@`UAZ_P$oPE21@~5R^0)e+j*=6qEhR}U?fh8U@T0(B*sU(^v$WL`=e{$0Ae%Pee9ik^#Wa(Vl7NQR-p=r>(@% zasm7@JT?(_C8=eQ?mYmVcT==N@9y|`F<9Ell%P={?}TO1Xl(ft~lG? z;_fh|1!RX~vO<`9rQJ*2+CT%@h?#907sqkwq=B&ZwRCRK%A z(Lfj&{{#T)Dn{)pZ4_}9(6oSb6uIT+6OG;zZXj2wnyw&r!9@so zMwEkny(BgUQB4#dQR9Q+;_%4O6|ze4x!wvsEJD@I3#}0taTTHvUb{|zSzQk}Dy=pX z=&&dEUMq6=Ys3o*4ziTJFcn8}9Bd4FW&?MPUG`}%-DdU+3LSE-EpW8)1cvQi0zOxd zS}6Y`PLnGJg72A|p7Tc>L?HA!R+6JOCV5eZWTNrnFk>88LD#nywiNCJ$22|B{& z2_*%@|D6D51jr8v?bHiWEGkf8)c^6B&6G>JXr^z#u^efZY|ps~KOJHwu=aTab2c;g zNu1pwL=Qw^FR{wfC1;o;K)7yYoF?FGbdpQgEMpDe^Jgthxqgr=(}u^72wRSh+`ar_ z`F5CtN&$u~@R4nVxV7wtt{>lHt|XjWt*_4}BKgj-K%KBu9Je13PRMtfa*KtdGpVB6 z2K+6qQp$a_5O(Qndi|)u!4L&;l3Cb^n^sbZl;pzQgHb8mJ!z#9$mQ+fl^V3Aw{(sC z$NLS6BUwi392wHw0;DK6i<^btP=mhGtc`5OKRcN*#1A<=3xgiNB?n77&gpl`MA0|nSt#El57jr&quiN+Zm3o{Ylh)&{ znhU{{ER`x>Z(hd;fA{ybya;Mz@IKsc?vwdIhDw+{E9@%6b3?MUUmPiu!oH8ey z(^*I#QjsRN(tA`cTipI!I&lb55=T@Ap<0UmX5|eqHTs~$pS~mR(lt5@H5dw!`eTa8 zLSt(j3*JDrIF&M#vh;dT0a*j3b~}|WDo)=DGv{Lp;YKZgW%VK4Fc>k(F6*(QPV#C% z`{cy_P4a=oAdNId`V#^+h0~jotw?+IhDet&0Z1c-{zd%`Jx{vluqiGl9SaU^=NxAU zj1NvHECpdaDDzJe?9wJJ>QEZ0G+mIBEnL5_nwip<52YGebS-C^?lmJxL_VyonZDFr zq(Nr!oi@fsVrz3KbU6!?;HX3jh48Pi{vFD$SsGgw5Upq5F>71wT`UqQj&EhS92l1Q zzB8-AWwv2{x%0TAx*tUr?JIJ)AiQ-P0grlUebM3c^0}ItN#kZhRWNmG%O+zKxV2H3 zdXy67(yD(d0M7bjKZqZwd~RrZf5%~H~`~DWie?qby2#C>ow&nscDRgPG64| z0ZKUL4jlBEZby`regr%<${K` zipM|A3o%-mz}+-Wda&`$IsIeHW!*>@olj1>N)#+!tPJxmDog8yTSC@~tvnC9tUEC+ z452qVM&?ho+`$t6KeTnNl8+UpE=VfICqJsI?DDO{fLvmSwLKXkFag?>i{>{4LB@JGl*(Y-Hc>DvJY3Jb>SMKWeGr*jkvtB%I&` zg3Q+X8v&AuxqJpeV(UM4sF@VT4KXrfSbJA`Kl9t6Ip~M#On&_GHL{G}S)5D)OaQaa zwL=1|HHZwii_<52Br@6t3-*E~w~eFK@lVA<2uwjZIgU$dng_`uK0~`qpGdt#F#wt0 zEVzJrG~?J3vA8UW*o~{N>@SbS-Y@;;k&^~rR&Dtr5K){`KCg_TM$KISfDLzNrp;BW zC(gir2^*Ml-1nEFID=|ZEz$N?19J@~D*-z-L;SpN0#^qcd74LlpZ0(;*pd;n05oNu z`a ziYU49)+9LyeygZXqL!4cpzLct-=vx?ygS^#4NO4+lb(3 zmZ4z;V9I%02}9r!sb{msaAGDsN6Ib2ZPR54H~xMCj7%WEc;WQ76vtA{&Dj$`?NSoh zieVd{pHV*g9d(1)yJy|nfT<9FKl9MIzqs3 zGi>dzI3{A5gNe84gpyj%be08` z7YE6k;B%VE`qZEQz>edi`l@wY9xAmd7`i`(_DzBrX0qG>(AbdDN~ zB$>@K8h^a5|1&$yGE6$$@_Q?enj2RC#!x|zawdCazN~L|&q{?sk?aBFLO#{8JcF(Z z-0kViW@3ZqqVP{yRk>|G%hgmEg9(HuBo;Tqi5zpF{M&McVLIq8mqx&RQZETh5e2@| zP7r0T9$c&8W6&X;;%|JxDons12FS4JJnctRcfg{?vEp+#@MF8YRgT(ROc_@D%R0?V zKF0r|Y-Us+1{kls)&rx58erq`satBy`2VhH6{4%AiXpMCEGj;u7D1jf!faGEN$@+~ z3RnYW%E)w~>ndik!bVpvSnQKm*68(Pi zwOV8OD^duMi5lJ8z2qm`4Y>Zb3R}8c2qD6s%~(^2wB?DR8*Z)1bW;GH!C{GuLu92+ z-x2t)Vd@>mL=WY?bj){M743bR>pxU{liP2wE85nH{!=cx4n5UbvmxHTytVSYGqimX z@uwH?^XXm6&3gub+WqI_xv4?$9tTUI!iw1$4$+_b(H%vgEl_3SO777BH9*S0d7+Z0>Cgy=C~i`=0`Fkfyukh4e|AIUXm21)s+ZHRC+ic{KNCb5u`62t%w)`J zikD`nXvWlZiF)&REFvYZhP^k|qY~=x?Nj)3wY=Cx4lv>G($z%JOtnB3k}p4jxU82T zY49pl#Oh8(7{OLrad*v=zrYAFz*JG+E+G!z4RID3P&<;))+^S&5ucC=2_r8#pTU7d z5mR$XK7?;#Id>K%)ASYA%e7?ltsy)YApFhs8H`W!W+)^P!%9!B8;s=MV$#fqA)oA2 z{#+yudEfy%3^j{EVVm$^qr;cyd2=(cC*gPhda$U7D@CU=-wm$f8gjZ!LO(Whr-50E zc{$4O@Bp<)DVBQsh&)S2xnV-L>_a09D}P4KS{YzPrtpMi`$?Mx19Z8g@^M%B;m(F& z)15~`_!SXL&vqI?9Lj@(HB&1z$zu?qWryS%-m2u3sV1>f6}W0I!(CW_0q3!Ew7J22 zOqe~}IpHLwpUnubSu1Ct^X8~v_lbH`^pXM@HmkQ95+psD^R zpsi5YgCpXyhX80^bw-}}ypS0)X?_$X;U$3BAVPN1+QR>LwRYl1hHn0hiL*Sa>~q$r zsdzL{#rt)@GMM*Wn?=Ld&J7i6Z6gp&^=VHzMb9o(rlZk;ZK}IuvA0fNtBOrzZY0n& zqTH1DqS@Cw&+>v0re}qV4|w2j7yFH#>&AeUt7sR zq9RT1l+89u5EowVuX1mm)@(UEGUt(c5e9(FDFAuD{$JHMUU_!#B zK2EC7Hs|psbHI-;{y8=%aHJ0aSAcISxn{!D|vsE)?@+v_;}K4j#ydBl*#xv z%orNvF$OQYXw3;Q*Jb4q&R&YaQV+^Rn`4#u+S4v-RE5uqJ;{iQbkvYXjLn!Zl(R`C za@Ec$DdN`5_MZYmZCkY*T4F4S zpY}uN6Yn_z|4Nr=yTMPae2qL)Z{(AN?+O7yui_8hm8j@IfyBZ7rt2w-`%~KgrCq z&aC{2i}9LjbA433q@akQ7+e4q8Guyf)8BsQwaH@Z6!`xTLd`qSWBC9%F}{bMGJq{U z;SVCt;shVOyOOt=A5i%J?g9fNC{s$D49@)C4^L89=p>XHVU5dQ)51VTrxrafn^SD5T2B1KlJKDYq^hcmZR}Vrw8%#} zF{YqqrFgGZOVo zd1%?UPC0nI7XM(0chuVL{q-@6U|zK&D7nrOu}Bh-p;YQ*7+R+2In$-AoBfp7 zN$mtc0YCpx>1!fbBLVsI^RDeyNeqCjrkSNih^7r_?Wwx4k;Ec~{!|2m>j3Azy_N`_0)QTZ(kwNesLh{4v8iHt>zFzEV zpZHFAU$ChDT1G!H#DKrW9};^XOiMlYTzP=MOf$PkXJMy{cTP$F1tTVn^si$a{#{Oz zjNEzG@2O4943_IqpmA7R{QhF!o2KtE1PiFI$!@bdUT0DeYXufAsy<2(11)o_bc&Ep z;bZYFx6!lV!%&&YEmeBBHB=RjK7K4t=oM3R3 zrLMttS!bvZOVe@(589t+^nKf+02J_60h8jL(QNVz_L^#3!U;0DZkfZUBM%=0RSXMqjFt zwmc)3il7T8^mth4hX^2jbDLLg=p~8rN#sLJh_j#ltR+5$e5vu0@lZ8yJI*qmgIe@} zbbSD%2QMqCyDHSMG$!9ovcEcyNq2UBlRcs9EIp8bPP@wI~BK{I)>RzZKSY}BIAp=o-qxfHLYf;D|Fz*#`8JDV8Vn)qZB=QifV4Cd}N3^N!v z)10Cpd4=R~)$?dsEG`re<>XPcH(=o@s-8gDox26NCz)uCQ9%-bD8-RO%S8OA$*Vj{ z_*tjYa>UAOI@26N_1PlsAE4zaT+b!dG$_xNT+Q`2?|X~Nsned|h<+v7n6l@Lk!4=V zQ85g2r;N$l0O3K@F_VVG{qG+qE{|+w58@+d(?wlK+LP0=G7krFWgwyt1IXOBfdG-N zvW)p-Ut+`WL?lvdgT;T3{BuVJr=dP9)yap0$Q^vc8*9Pv>p9Pk6~Z(|_--wtEctMp zTA5^)rr~X;=j7m`;UV2sfwi-=*HvMr{?mqLdu~@C9qP9rgW#I8bSRoH^0qr024_t% zi^1dZHPrD4|2R<3cibmaYD`Vd;hoNmV}*#Bvq3conHbNs4#$~%v{Y{-H%}8hw9QT* zAt?fwpVnfg{E0#D+yQYB9{hDZJ)G*$s&%9DJeJGfU}(y&aFpJbpUH}y75-3T9n3|% z`6pGY+RFF|Z+oo+l$Bz2WDPU9veg|#Tsa;d#sf^3l2qT*5NC9iRSR80Y2~8+-zPi}#-x<^Pg-%ys;5jPM3UxlnY!FCo%@ zOHq~Jn&p(vSgWIhQ5;m@nf&I0(Nh7UvS3bxGTX5NnWS5D%|I9FO5O#1h0xnZ) z1Qg&J@=#bMqW<+}a7LH>+n(92R`7_22psrO&;6<-igs{F}_BTc5mV1QWCI8YH*9xmk zBss4UXcrgT^j+GiFQRiu3-Bn^N%3p^vyPYDlB31M%Tr6XDhSMOtrO zM$2%Y2j^lW`S2K~$6bLOW{LWG)q>!0+W>iwPZ`b6*OyvADR~$m%eI^Zg@8;H|E<`r z7leN*mbwTowq7KFCaJ@U|foQ-Jf#)~R*-SNDJyJ}DDr zNIHOWnKhl~9qD^ygZ*y4UFrG^%_Oh275#G1)KzmePIr||Y?wr(I!N83UrvHOTtiKP zj6L9l&Z9O&PUbgCGIj&lX^fH$1MP#t9=zl)waAOKL36IZ{&O=Y7FJlPgjw~gu@TC; z`jvg*{fW$OitCbJ1caQZ)+ADSecBuu+9Zrfs1K?pWDK5M_R2Vy)*l$ zGtk-M4d^r%3BdPZ*Zc~%Z8_}F(H@KSB$Rw}EH<3nL zQPWAHLYU+M4rhbK_b?PTiX|f7F2HfCRMcOua3z~Ryr9znN_y2TB){AQg8Z=7>rUC{ zzi3C!kIsO4iH}lam9jOM7PpsE<=xxr3}OQ%z7e-{MP2nftK0#YORoQJ;Sj!XOl0h3hpunMbqC?NHfi9k|AQz|}-e;O!TYBA;5hpr`!>%nNCBef_EW4^gcA;we) zju?#BZQ~Uc5)9)k_#O2rQ+(}BuxjlG`Ak1#>b5v9mz`!x1cvF3vg>#eNOMS$D}~q& zF~_7~xz%p@Uy`=mx^?$$u9~o2FC?e#)1oV~7N3|vc()kOXl%&n{URmfD0x3;vu>N5 zKk4Qp7DzRiAll9yVl0*hd2he4M0DgCdN()~9-?wn1%GZ~ys5*XO^bAche=N5^?C2} zK9Y`UTnOM?=oqc-Iz$?AqaYE6qkp`Du`AY%+9B#GK%Trc3;%Z{sl;ywFhiO|+`hL1 zLZIpwwps7KVq-Qs0y)f(8~@Qi7-lG>fDuBZE5Ud9rR-OpB8aYVJ-Q9mUM`KHxab;9 zkcGu--QIA|JHDFLAet$x&%PrZ-JF1C$V!6A8NA_y{q+iM#r^F6Lm#XdH&J&i${%O~ z{hF6^!EYh9nQ1zy_Ex`ReVGdk!pe+=9r!_(9@XIFuH`!W7s5C>IvtqBVs#E=2X-Z2 z{is<8n2C3R`(k~iZoi>VHmpIhyoM?gkjv^kViatc|C?l8{u+Tn+xrcRnKQhJ9`*@W zj7@md@KN&zz{ilYQP2IU)saiRL|B{wbD~e2Orqa}W})@UBFNrN)4!`#^4us&;76^o zWi?gm5oU?FE-vDZc3{-I5u>wsuFEI;l1pf#oay7P;n!OtfEunLsqV)!4@GFBI*o^j zLFA1GoRCskVQtGb0>Ic2Dzu}u7PqFcKx)$7FFZH11o*I+>TKv_)M$R^|8}|BE<2AvFF3zWd$p)A7h4L7~}Y1K-j-pwNFJJjTMe{?LQ3yvDRh?HQiuJe7%Pvo)XBhsXRV?CtM4NfWpF>QW^xgp zV!=C1wqyYoGKF`zgVm6IVIlfDtE*n@; zy&1a=3q?Y5brEl@d6F-C-Ru!I9l_m&!pr|0!PwFb(&6}p1j$i5ynzhix94^rZq@UD z@k%misB615aAcTzG((mjm+;*qRnR)cNGN6VgW)NJ?Q6Q1_`;65%x727qeN)~u%Xk& zEi>|94NN@c`K6BAzSn^e>}(j<9p_EE1rYgJ=Oam2jmt&bbllb<0Q-pdddyi>7iZj` z9~zv^oj`whF-X&)W${v%YR7&)%m#A-kXx1GrGhs8FlA-`wI6hpXGcfl&n{F2Uwqg2 z|H4Sm_DBUuNp; zhqFyRF%Dn*G8$-5q}(i7RK@#SdAVLJqOlZ&)5Z68Sk?7S)I@X4%NaNry~)eMxB+C@2cJy%uo7DNOLAxztesR)#xVZAIQ%i9dBF)?MxJ zLeUYzYt}px^iU}}(d)k}=B6unIjW372`-r>Z|YQjDs`F4!3^SSfbzxfo+Pix*H^Dx zsX&9quhj^F-F4d-J6A};j8Fv`F1OA#``!K}=HRg!LY5r(Dvke-dhTyc50&U_kSq`TwDLr&~B*cafV+^K7hoj$jGNI?rnmC(xVku_H8Uvi9ra%Qdw*@9+Y zqflv=@?lCmSxnknaIzqS0B>mUtH24I;J|I3vn3n001FuKMTz zKt+DCy?0f?jx8?K5K?xWRaJtz?iMz+TC|sv*B{U$EW3x?2)kt5pDTY_GO<3#w?4)U?uOKVsaS#4w=Pn!d|;*eeAh!`o7(8C^f)WM>qbK!Ah_F|CjP z#utA6>$U)A+M0Iq?PnPJ)0qsv)166c+@I0@(N5ghKIeT3NfP1Nwz~R3!Pl7NvkDy` zZD2igA7N}+^~F*Vi-`#FS>(6CVv%QotG`1ky@9i&@mHD!&Us>^&4w^)eFzW`7(8Fm z4O(6+JE<7(0s~0!b?PguS84WHCDq$~mS!R=gbDl9cT#xZS~Uyw%ToobesG!X9se8R zzVUa4=CO0P5TyVrYC<#_(R7msRQ{`bXHpv8ok#hF+2^{ACVY3IEn;MOt~m%n3Kxxe zK4_qwY*rV{LS9CeO#*O|ye$-L+Drsh%1vHa-Skj%@{wtrz>78*1Hm>`;LO3fZj^t7 z#1j8M;#h5`W%5ys>sZwVI$-=mI30MLMQ-*5=$zy1a(@k>KpAtnWb2W4@!%ZQ?cv#U z6SUG;s$*K2dVRzKCqj$%XkIfPR;v8Cuqs9wHg48*7IW&1J0-GbwkYligJ+@h_8zO8 zytRnud9i{4fkIeFUYk9uy>*scR}qQRuvai*d+tk-t0NybNeH*+}r(zh!KMZk{)i{CVGeRmcLA#xlar8;{L1oXH4Qok{-R9&u# z;8`i%=rEj*26DUTj}~EN`KZkT66;D>qUfX!^6W*LVDhObDL-x)x0%(I#yxfF-=+@_ zDw-S)pc(o>(A}Q(Cq*U8|74W>VeKR_^Wj%cQ!s1%!FEc+z9>`}& =}V)`jeG8X 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.y9?;v0suP?(YFZ>n5H~P( zvm0Xwkq}GjLLTV~+Lf!k5Zrq0*n8-Z2y5Xf5u%|U9kPr1;dj|8Qpv@k6(WIU0z=W0 zl&?y0)H(ipRpF#)8X!!VoFiMpHmiVFZuZnal}uM|flIz3Ge{YqG@_gN4{Q0}(-*3k z*vsu(gY!=brSaOn5|s%|vk%B+&o24?;yyWHNl;rn&@dLA4*NQNvs2c7oiVo+JWTxZ zxZe1A(7t>|O05YNulwE6rqww&yVzKT{S1g^T+dqO#xfo;x@QA4HD-`n=PQ3WYfPPV z)CzSn*q@*D$?hDthD!(MfM5QJ^pBV4UbSPHLdlvBKARC`*#!Wp3hDPcuckh zwy4X1AiyQ4L%8Kb9n;kYEJk^bEqI!5fs=A+2y8#=+w$qdhlc~ z9!9fK^EChqQ@33U|B$v}H^tIjIXp;o((u#~as*0`6m1m!7McF52H3z}&N1$HXEA`Vn{k zIPO$keK^f+U|VGS#P!c}n#ISpT=`+20_}os4^JhccD$i*vC@I#380?&6l8#u|sr>j@$;C4##>!?QJMW8e%u&J<&c?x@x z5%Y*?H;KZ_#LveAi&T&iq2hc&o2TLxW9b`Y`i6GVB6w9q-V-EOahJCZxm`F>Py{gF zUsq8fldeWj1V@TIaK}FhF5F~C9$GFr^nm%Q8L3bWR}a6D)Fypm&S9^Ju5S#!gwSo5*A^qytL>(A2JLHM8g_y{R_nviG0xX0m@YsEM*x8yjX&4 z{X0XQDVs6|)?2&awRI}QpphIB*A8|Pz~M7wVTYIRmr{hc2%~oAFfi&) ztoXSl!+w$GiR#BJ4g^X2Lm}7fVe0Wmwctm?pA>_#q()1VX3CiBR3gEXUJXBE8bVYP zGn-Nj-c4ctY)*6V%HA0o;4p=8?GhNZ>AxaG{EOxSoGh}DLJ~)$h4uG=Si^^=P%?P~ z8jno)>;=Y8yxB<0%7C{o3%sbgbvh&?fvZK=w0ZbR$`z__3zkp{%vIRWO6}dL1XcDXixP}FC~*BQfNmXt z!MMzFn%uOiF;hr1{JoadvvJL;_6*_d61zzR0BMCP+I|E&-zKx*dPpUfP`@?&^E|j^d4;#I zu(7yQksqO+v&AO2YE$VVZL-}0pH*r!%9hhgv1%w|7H9qeMT(vEZJx{OfPPh6oZ9$Z zVr03N8nYM~>r6c?ZpY{0$o1ck_ALEi0WhMWl4%-e#J?f9fKEc`OE_8^8w9RWt**S5 zWfo5BF}S2y78e>j71_e+%) zAyAv;=8>6yY}qG$7_Xf9XZK(&mbwX;Itw_NAzcrz*Iu(zQnLwi1r#Nyb0k)xk3&J7 z3LC8a@P?EcE0{GpeFdu1L0;Ip>jaOq5cX3Blz?MvOZllJFP7i@CL?h+&C4@F5kK4H zlX(rnWnT(GG6THom`c~TW?vSI68zQF5E;^tRtN=nrxGxJJW5DH8n+-uMBb>Hv3nj$0#wd+Qo; z4>;dX)XcB2?qIWaT+_yaz1BpKaOIpqZl5mzc)`ZP3V6T@j}m8XE$I4Pg9~~OGdh0P z;{0-2R!n=i+0MX2wxt&@=E&1|WuQg0LhjJvS#oV7v(C0Wu>Fr{yp*ca1qNHT#De!{ zg$|(P(SWsO`j39*vPtBTwV6%iqI(qhA=W9375r?zzFGPkQe*tbIF!c{ftsy%4uu+U z(pkoA$OVP%Z<+40 zzzX`V+3UmpSUixdoe!U5ir0v1u`l{7z2_{~g6gEIeNsmtc z_`Z)Dvw@e()~tV!VJ9Rc`T=|LCVZaX00ppPNVMmbwfd*Z{)0=!91Nf)ot#io&=>r= z?RneFR#-XJgkk;79obaBubY{o6)vabTx?0wlF(oK7C{O#b@rQb;ze3lrJ?5Q67H8^ zfpisnt9T#$vaA-b;t_8pjm$=ECpgRcTFmE#Ku|6}Prl=*md4zei4~t&Yyd_C{xVCc z5nzNf;URwO@<$+J6=Ds;VOhOGbBMQJCBlCgK*wY^e5-3oyA2s@MCp6P7DQe`NsXrK zAwl&JHKiSbm3{*vxRvYM<6T|}57><=^zXcYS_mlB2VKpwBrjb_nt+AsA%6Zwu1cWqI=et&U_QTy+dHaLQg13+f5JU&Wx z{T#!Ypn)AQ`Mmp2ga>&_;-rOLXkSodi_7s8k^2MzSQHfYv`H2=dPbB;KG@?;Pzo$F z+Uo|aG!Cs6ayHWz9RExgZf<)I(;zn;MBZuV;#@_xl)~H6v`RUs(RJ%WL|4tzf>h_8 z=ACPelnq~#2~mt+KLGe`$BxItHRlF5{E-+{`r5N{7#2Ox0&|XdOgxjmET%&hy;&Vm z;s{h|X}U@LW|3w=VpPg&KM8CxSS@>`IgYx5G0=4{6p6y{HB*yfdtlRJYm>@*j|8c% zadEj-d^{yHc_@3^Wex zyM}+U%JzQX)#hK2Q?&S91S z!EYPl9WpVF8S3ZLrfS>kHcmNj*Kj6*fI$?b_90~7z!bxDXI;FaT;ifkCxMA-L%R4n z@!ZIL_AqiZ{TH=KJ|GV~Nm`{S3oOg5I?Ee4UiasL*+16m?;ue$nmf?K{;~+pHdMbu zb!a%4`P#roNuLkdwl~0y`zogHZ|EE80T%=u*?u%q;bZJf>_$Pm#?FJ=_55!H#L5GD ze4WQs6`b1$EU?D zg?Y{>ge%!vp5J9Fi_d110{ma|*ldAty6@Q?ms)WkXWGT@I0^Ho5fUBH9XE($1xbi2 zr&xMZsSNa^4tqcKwmxHG2*Dq5f=29I4TgHN8=UUF;XD>t(55RTxYkM5q(bik^?tGj z(qdFe9#S*c+`0Zd$S4-0UR{-!2j-&=Jl1=>X=f_fj>Um|^gTmauU;-vRGo(>00}s@ zy!JBkIyWNdz({AQ50b?wrk@s0v6&Te?-iK1!Rgn_3O-ZA4e)ye!fN8zaMa8 z;L<jS<;gyfHn#^^Mb&?&~)(SnPBN1$-u}A>)s|*`;p)|~s85o6g zk=oX5zTu7=k-DNA7h{AbAx+wf(3CxsU6#|4Gn&7oEdl@}V5p5Kfyzc%ay<{43Bve$ zNS4!7Ux;wgFd5jknuk4y1De+z-WX?i;h`vCMoz?>42v9Fr^k#gzxj|UGmUAa&NGr^I zYJIQJT=K9iQGnuuLSfsx(}+LIu|fH@UWk&%IGv0HMCZS!-_it_f=nyPDx?XwX(B2sP6W+c^M~E>AK4wDVMgAV68D4*E_4%DF|f8Ml@QCkEmQrP4S_nNWw>bc)pLBA zXO%{qD_J3erj9t*QrTPfs(9)rP+Y$lsWLn876sm3%^H)$UIuMk3*ytPnTX6bbf81> z`od~LM9}z}%if#4Cg?Y7Foazdtz;OPd2P@IGktu`Gz47sA5r=sSBys-x=&zcrg`(^ z>zsw0XjJn$greG)&ACMl6u-laIpTK1jOC`zD=mY;j)jB{Ae{dKx&o14Zi`|b)2ZXE+N z-XI#o&EWyNO+BnPp_Pn5{dut3@*0Rt)gtj%ASV{2it!2ZNQVr2bk@3SNb6rS>x-W8 z>c+cZ^E}dpsIg_Hza-f5V{9lm4F$i=ysO!D6-5b`v!f$1-iWa)4IsbjnY;gSbs(a| zTV{5&y#2#Lm81@g(IK~MB^6J~=1LL~esZOg-+`lV51i(aiFW}lDPqi^D-4FRif@qT zrw>AiTdwF@X)C<1F3aTK5>wCy*9ye!TXv#T;;N@I%XxGdbVaxh$-NzqVd?F67kPU0 zf6)Rsi}!{cxm5N=6?Dfs^?AU^!C<|;xq@Mv5!>d2n5q9=Bb%X(g`PRYff?fMk&Vwh5Hf!C+~wH<8tdbq zoFftwQI$qGt2!IJvblm{=8<_7(t^Q+za2B>%pgz5uu3de=x1&^6{ zRJZ!J{|l-u;da00@`9wW6y|+R7%5&~Wyt=@>438r7v`3+sKptyKkZjzMah#W%TvsR z0gKrfcv6|!;9|b7@lf_u#dBXt?l7e$b_Q*YdN1+L=hgjjS)OKQ1gIvxb2q8QR)mgPKbY(&rUR{Kh=^1g;a7%B?)q^N+^D z`z^&Bx)`X%qc=9QH=Dtjm6)1uI|2kKaJCi1y`%O3uO_M3mej1NHCiL{P6|wg+hxw8 zY_H$@Jq#w$EPoUeSrA5&ZP~E(4DD5(TMm_63BU9x)>lO?w*7ZDN|q(upTQQYwx^SYtR6*67?!He0O zR}WPjMM&Tna-{s1dKXX*50x45p7ZUej6&5m?#cIV{wb_5kx6#)3Og zPOnTe$322oOuY$;0wTFvA&I-=H_j2QuS}iNsRH=;I z_oHP(;^)`93^YEU`_nnw8cuZ~eOC3zKA#YZ*tRF_gB0gnQ1 zv1aS^8CjlXM(QQ*0>843h(KWH2&K5!Y&zsDqSs=}3NoJRtzNxi*YP!^z@O>436^tt z``(RK&SAWN!Nqo6Aqa~EO1=^QvdV9IJgjt*H)R9pJJVG4J6K zBs6s2B#e;z(1mT5hMA^3^ZPF$oA84&FULH*NoHVR@>p=hAgHcgXxaEV)EU)2BR; zrcYM=?PRhS@t99krVgBh2S}U_-?!Ogx*T?^4uJ8hr}34>yX7vW+nhrIpr{>3$I;7U zD}&c<^hn@Kq-`&~Dd?a?AofVNh@Yuh!COJSW-IM5fG{OnhV9!v*PfnlertEZIq@`P zEZi{Yzg|&i{+|bXrjjJ2h4L0!*J!F6gm!HQVdRYhLs5~C{0c=lgPdEOT7}qrG?V>WG?c8K8DdZpRnBn806D zu(;Z-$aV|}SgUn^TEBZeSqg`S5EJmUm~6F~105qQ<5@N&Xh+UE+V~E`nKkl4vBmP- zygL8`@j$^Iyb;fyD5d>-AWUwJ-3>j2e>`hGOiue%@=sswXOwRsY17QxpoB(i!3Av1qc|1H4A*grmY;_NBsc>K!SomqGQq76tVDm%B zG!meMdQl*qH1AHe;xR!c5SFjN$MCyVkOD{N4$%-wm3yIZg7*`z<*gBMaQuGoY8Iqx zGk{H_S#sH%2j_*N48E_v99u6=Y>L(~@1_nF%fB96>hmPyb318crV7ICF?)5j;T=QZ zg0?=q zZX!6H-NPxu+41OnByH4gB7mV87+QX()c$k=>_4`V)C0bws7ke}2>G^Q7m7Z=L3J>$ zPC) z!r&QdJtU0#r~8H1*=%GAZ+-HXHUwS7u0CqNnt1uevn>wm$=tz^#<708Tj}acnh@`r zyKPeSZZ@AlU>FZ`Sm4B)4y~+wZ5<=v^~78nS0`X$z3?EbaJ(KO=}~mb=TT%Ux&RJlAIxbc;qPU$ z2m;x6}G7VS*)gABtsMMHwap#5-L zOk4HJapp(P&DP$`Cn1^`Urc*X+MFFDbd*LeC!q8*VP=fpM5H^27($OOAuRY{N>=A_ z3M%~P28*A2ZBRAGxOoafyPkd59}WN<=z?|#lhV!d};g*kY3sWAP9qwE3O zV1{wYxwjL(q*E{$6}Xgqwe{~i7+PwGhf6R5K6E2|!4@MjqA2#(+L+$ODqQthCRf&k zI06LpQZUbu44XhtT-@HR7mUiRFXCFLEAp3HYH%8>Jx)Kd-h8i{djzD^cBBP7yxb|u zvYPSrwIn=W88Pq*?~*f%r1*Mo8^SE+q|BSHf~Z`oQ_sNKYNv0D%uKZ0EM@3g0p0d}|~ zPk}=nrJhF}%R?-hFt=uN?GJ9O^A;O-1ek*u1*m1_T_YBBhiT8&n>6v+#X7Z0>amET zqyz5=`nhvXs7cR$hAptkq!OvhjwgroE;49R?kJx&H1cf*1`c&PC(j)T=^8j~bQSln zs^sA#A?;5wmu;4v;$1q&yj-3-7wBl+$w#1i+pxpj4M?2uXpsC0^|m86lY&6~DyR4! zZqERIPAps8$(4&CC>R6o5T7N-ahIWqL;}UU>7BP>w{%=F-1p{Q_Ju47Z|8K>7#D8v zJygb#eb$>B6m12tuaI2vSgf5^kZ*yN$8n1yA)*#nj2paPcV2M2is)d&xO*WujzELW z)FZ-@XN!4O0@Fu@L6s4fJq^U3b4u@h2<1Mv#Zeup{hWqEMerErif2!s@b(+j>r2-i z8^IiPCU+30H(NTfl0?no4}gghk9ZOk*u+~gHBJ%{Bm$4Z5>Z0db*G|qzzb`}PY+v? z?F*rUvaa%+yn`aj;}I9x^$WBL6PNfRQTW0h&8g%)Gq( zXR_}S2~{QyR^y(ej!EEGV zP@4pXPsD3dI{yD^ghL8h)KG5^ue1M<*FT$l7xz|0X@J6+(|cY`Cx&BX==f8D_OPzH+gIVgBrasr69iC)e2`m_){`=1fv+Ln5A z7)8Y@W%KoiUtl!Fv&CL3jp^?t`9QpUZ2gjqFp(u;Oj~Rvk4-4RGx(ixTF~~y`GlfK zyM4k4S>2_|x@1iS<+gKn-0OB{bPvY7B$*^EA4&Y~J<4uqU{;C6>tUJ*MDVou~e01TMc3IXbWRY(8;hC_V! literal 0 HcmV?d00001 diff --git a/archive/adhd_scheduling_starter_project.7z b/archive/adhd_scheduling_starter_project.7z new file mode 100644 index 0000000000000000000000000000000000000000..5c0b6226a8ff1dacad3da2da78a8e3f58610410f GIT binary patch literal 142768 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 =}V)`jeG8X z06HYtzQh%I##k(sr64B3e1mT|rVNVj>%I~tg8oS}Ozv{3hYhOQ<=Mv{U?H2{(fWJ3 zidusquOlE=-jB~x>BTcNnw>Uy=`~ z?ywTOtxND67NGdBQ7g{AQ|CGq#yM8r9UOO%Tn9`6pbRCvK{D>~;3kj#wLpin7bvk; z;Yii0`}|6Y;x3?%jm%|B%xj*a2ih=^?=|nTc5m3$=O-YdOg-~go@+|fQ`Z`1 z0ArJeLGB|+&C&#T+~#*;x9an4En^)=sson>OKG~-bk3LaxP*ivsDa zvPk@`WrU?N70J4=_1fO>MK+}XE%_P%j>t2qiUxuYL2uk51b6Wx69@ZDk>CymuT#*_ z^Zs0}*mXP3tV+$h#3q*Q^_~2N75y4C=j)_G2+(xgA!C^*S^m3y&oI@fiJ@pw9gIS1 z86!!m#Ry1?blW4K+d*=Z$Ve&i%{R_Xb~u4+HMx)Zu-Y2JyEMRU;@j;Bkd)8jpV+hE zCFM#Hw2!OC*pqc{qbC18%^a3EkDN~W3D>G0+dUO)swMbB8)bX!dCyv18l3WzEU6hE zQa|KZiR=tCrl_-d>Blr7cBiVWW@Aa`c1w*z{nPOFJm(cy&li#;-Utf#MBtHfe3V+f z@Xa}W5F-YeP+CIvPnRAX$Y^%Tf@W~%NQF~|h)n*&t)0^lSP({WjZwViBcePcQ|L%v zVH;PLrrH`J#|o$G)VsWjhpc8wPUM#dX&c)B7F*!Dzi0HY>I8qJuc+hh1Lp+{lDCe9 zcKCnzECCX3yYmco!c?~34v8AbiO(=Nu8hUt0E6MIchP0U@bNzm^C=g+6t32z~4^`H+#bp~lx)8HD8B9$Do z4Lb~?@^X5G&u7prm|=ex2$t!@?YLprN!_CLZOibiNleV$c%SMDhB#`D5g5 z&^?EG5NR5SugZw+;VRIQnyQC1-$PaDf4?IW&`0zhLHoEtvSP%=#wfqr!J0h3kTSIh zCt(GT`8!w|HK9@^QKX+alge*SU(G}az0AzL8+`a|FU7htuNzhw@;*&qwNYhqe}=LV z(RXqd;tq#$&ClJ>5lh~31I2q%{`u}I4*LKG{`zo(WP>)^8pj6_3IlPR=*-}sR2 zD!Ga_{unUdUmLaPgU<9i&SXiCxFQ}*IVOo4Kxtus5iE=HRm_P6*6uFYZ?IOH9% z7Ydfh9Am&p(&~Kww*Zth&|Cqk?Rg|NgSgG|1h)#h%-~U)o?Qaa{Ps4`%PYW_0D4w6 z1gC$uu9LaQMDdCd4&P8WlAY0KV^vo4>sit8M1c_^WB;hdJrICzv8C^At~u916VWiu zr2X|eG4X!+de{1CaYxU!moHt!I6f?HScnr=Z#77I`0yW0ET`Guip7bS6#Qwg*e^oX zZ8!>i%YEF?`-6kro(!#EODkiS4fY^0-=X$+jO<5{H<6Y{*V11pf3$O11qH4}ZbJ+Q z0@msf&~~2|kKP6eX%$M4UiAvtkV%UrzYLe)mKE~Hk4vX4__e= z^v!^8-5v2EKx{JXJyT(zy&k;R!_zYhfBtyDO~WG1IZI+lFekl%zdjl0TE!)dD9fc1 z`-#0x9z;CPnOSoi{Q;kZrm?RH!z>oLiy#aFNWOZjv2Oj(10fi>p{o!qDr8i>SsW#D z;rmd=VgjSlwR&+_c<%e%l`Wk#(n>me_xA>dM)wJR;{EhO-Qc6FufTgLb?oc*L3cT7 z5W|wTuF{44-}AArP=Qir&HgBP^H>O5g;pYXlUb5m=py9T25nH-S+#86x_mzZPM&Cr z$HjK+|JI~4Fj`vBY&~f~#j{HjQ#5T4lax>a<(F|kkLh=7cBH|;3vYej#y3x^0FiqI zNb&4xzDQnw4=z0!FtNFCPGSqXFFWu>r5nkKLd1?t9n^+HM-Vlbml{M%{MO;)N`)55 zBJCXa?H|;_&V41|Xah;pFpugSAV(mas)|iNR-afNXN3$TL?2;$~Bc4Z@$O z?q3Q+9QGjB`UcpbI2`B~PDHwp50IO1B-L}IS+B(*nxGJXcw>sk-K`TPaI3;x_!7TyGugYhW#axT}{h;fbqIj}=)`AC#f5z@Ss)vHZEj(zv0- zDC)}Ptu7CPKReGh+u$$WHLQ}*DGy7>-qyEzcAUIjQh(S|K6%vfz-R!ar=mQ9kZ+Bf z{L6k&ujVqoBwusOi3*sy%DvhKAOEIS40KtuXNxt{j0y=W?FffN=UJK8Vpkc6r2iu^ zFkyOAj|)osHNafWs@Qp!gI8G9UWE53UtMj$q&{^_d))qE0p4RXTU89beRw_$n0kwb z&$u^;6D?GI<}}^cV06d0-E~0QbFxsa0LJOu)_xVacq6=m95U-h7UDoTPW9r;=~~?9 z|1eT^vss6w$S$OvlIQhFE%E+S%Mtf|zi)QyGk43Fhr#0qGatzy|iGT-yBp*YDU% z@p$&>??b#T;U3;j6-zJFtdhX40qj6HPNS*CV7cGVa=1JBfJ(8B?m418^AMxGU@Kzs z?9;RPnbK7J$&RS%uLE`0iXo3ayA&3qtq%VS1|WJ7wuiM0Mj$_=W6*CBvdS&GZJ2n# zh=@5tpTs4EV9bFQ%^jVwzUCeZY|X58$@%%;t(W+v%-LHNZOjKd!Ao-7;t59`lF_;9 zHy1;JGAnOXZ-A7nnvee{!`YgQ*fqJSL|s0U6Z^s}WQf?oIk5+?n_&U| zoJfe9z81uKBRgabhVq9gK1V{1rl_RbK{FPeF-v`jJkemSmjyrw8Pg1~Y+S1)=26ZY z^$BuAAf;d=zr4%haLmMG>gv0!810pH^U6(y*;tKQGXJ5U-gqnV$0uYF-^4;AeVF37 z-8!5)^Qq@PFabSYc|1@`JhJXyf?-sbNFzRgjF^Z)sGk@7x8&2#G?}I;^k)QQeIA*i>ObGs<3cEKtQF znU$hJj%n9#$vK&8)@BUN9ngHpY40<|K_ncTx($97BxtXRuqcVv{4{hR+a^AkNW>zL z=K|OKCOOhcwcKS-G933P6Y=N7BPI}9;w3{zD(xXx%I5oeiy|TsX-UVR($C6iUy$q` z)2tZqR+4s~08t`CefY7azEeDAJOZ#U3+DE9zq*IsJ!$Enw!_5&l zv1lt0tc=#~$n5au$vN^2!n`tyBQ-Dpi>>SiDRfL0=o!%38(N6GVUqvM&8topg7(`- zzJ2tWyH@Ywe=bWZ>nMkI)TV6*$-^|pPDzkeZugcbCoG(gTQ0r}z=?0hY+&GLK?qn( z<@3iYGy0{D$^leQAvQpMvWc?H4&B0$WQ^>i$`%W@WRDrbbsj}HH*1wNZ|lcrs?h78 z3Pl7eD}1NeH$t33VR=*BJRp%*Lyy6Wfo;O|m6l}I#~Mh!1f^Sta*Osx{vt+VFFe3Y zAy#Buzg7CB&2o=({Gv5Ib?725-e&EU)v2-aE@#Bh!J;K0EyJx9wuUSk4L86Gz#~?k zNT84GdyBqPE2U^URx%mu%=Bn~9Ek&$*#N0<^8rj44KrCWLsNv|Y{3&DTck1SA38qK zhbo3xEnJx~+o1wU1OGmeTYmG8epK1kD;gmms{cnejhssw*79W~AxfRsLN+*QIp%Vi zQ99wubrZN;DnT+h@i~U1GhStHqtjyb+_Qa(3^gm;xh=*A6=a;2av3A+AAs8=PWP;oCN6u`Ui%Lq}0gqmiMisLbfGaUc%PJo`;H)i7fTI$?Y@c2E?cQ290Ofc(JUu zQ?1;_3mZ2E^NG~N=uq6Vs#HWAd1NuK(o7na*#*9kU6lLzRL@uPCVDQ;{xHT58k!w& z%*!|4@%zc}OZX6mno2$|zAADvb}Y73BWXy}Noi&Bj{~y4KWKVih&8x*wc@UBQoqPu8L(Q(;dFOdZ8OkeEu{x-ynux9suw8cbP)!MQqk zuy={0mVJ^)ternmPZRXt7mh!Mjb>FoMFZQ;ykFhqTY)kq+DM8_Oz3u$#}aD{ZpBxS zOEYWR2HxCxFe5N>jp>;wmd*ME#z62dADqu6c$&Z4o{PB>N1#Q1kiF|y?j?o|M2Bcs zqe!59MxC}kVie-5m_kWyyiAPaDagSJ(5TW?!8h>2Z%qv+0%Ub89P%J6$>!x zLy7Oa>Xku$>z<(2?GMe0QZt>X0OH|icEBVy~*NH?79)0E8Dl{ z*8#Up>?kqHnU^xfICHexEAVD>4x@FVc6e`-2oVRy4CI?hU4LKv$b z$r}<#y)TP=akk+d^0aM(eIJ}@UI_!lFbLEmbQ45ulZI1eY`1I9qK*P$SnlF4I$iIZ z3CpozPR%az#;2`HSej$}@R!b5>-Ln?Dluq6)o?k<4G4O#s)exG8kZ>g8%Mx~q&_k8 z&hQPTS&S+6;k>jX4Vp-di%TuXL!e}X*wLNw(KQ8+XjkNB03%kFuT4$C%XZCl5l1Tg5r@f(ZW0MDkU*zdo zi%f+(vccw-b69}%uO@wiY74hW7bme?0GrXrp2xFH;2SIqu}Iw`GF>zi$7yyq(fO}f zL*H_&PfBuGG;>T$zTCWFE@Y5SK3+(n;XVMcy|pftw;0qANr9#ck+lfxJ^|~_qA}2!c!niBi(5HaGhK|%svM{FCIJ_Dzv#W`1D0J0e*w;$TkqK_{!2H;r-WRQ#OPmnWHavh zctN}8sHgrjh{m@GN@||jUBvqEQm1WoFdX{$YrgR5P?NOCzzHR+n_n4c%x%B8e^xXc zU!C43EMGc2S5qtNZS*NoR>9Y75(nX~e;8t0_J65y|08YtVO+qxA1?63S>TmJ z^+_c{V|eDX3y z5ik)KcEdUF4E3i|EE%;BWsOLiK}!Fc&0E&Z%3t~;J?6QyRa&p*lsYWP=S>3LL28H? zk^PyfDcN?jD_paLOmp=e2-F6#1s=*HnB7IvQ>$9Z#p-p|!<>P?>LBmE>3vtC_gGNq zq#Dm6aMg>I04=Yt9rDc@wD;cRkYw~T9ccJ?jz$+vfAwl9rP6m`!uj-wJ?;h?&^-Co zNJ1+{XRhg2*uwc(AzvY7jmcW2jWH%t(O#nH-c;1r_gqcb*-&GFl>hSuqBIbf{1~4@ zAZK~xD(HGow(+jK0osbsPj;qMzP^v)%O7!MrG9m68K#EDu&A{S-wbdW>r`uVDp50< zH4r+MxmXhydU}5{2VV{-#Rg-BFnvNZHzw{tVB8Z6e$v~{WXGV?Y`E}vZ7EDwC8Vgj z+Ts~O4?MWqD{j9v&w7X#C#c)xdhj0voM9)0x-uNNx?)zunxh zO-o6pBP_%mr-z(~HB@N(c5Dxq3vhijQ`JL~uzQTCsHB?9@czvGmUL#pcq6w(E=nTW zG4ID4eGcYNKFAJq5xboMh1=t>N?fV)!~#92L@d};9e6l6=}Nblls$9o;(cG5c-&tO z%}abb**tL7Tb)plAZjN`q0>Kl_@O7EM7pl}DM#$Ej9Y*9f?W<6_k{9Fm7^clV(^-= zbjT)Zit$X7{we&;MFXqwYC59;KTE9@2zSqp;Zkq~WsSb05e!9H&<6#Z{YCNU*PS4B?pLW zWD?vbH@jWZV>bs5ccjbwD`glSp50Fzrypz(Y{fl#^afESa@b|i7=kTg=|o_{(^>z- zXi4WDwymL#^2!U&Q3d~8o)PhC3CnZ<40jLD}@z<>{S22~KTs)uY3?}=EfvqLbu z=0~T_pdPGYGJ8GTSc!RK2Jn;icY4HEAQ6oaxS9REg|HD;Y3vJR|EvqbH+@Joc6)_2}7)xQdtZB zrd{d!jKu*h3Xm2ao?XDn7NKT#Jyv0=u`7}Ju=@>4U>llk#L`KwKazyG7R(`V*k}X& z?^7&}x2@5Mgqs$CI5iuM9h3^y9gfxlbLY9~06WQa}B8z&dwJizy&m?$s(W8Tq z)4P?&hVU7C68vI}X<1PIVO?AjW}ygVC1!}5i7i0Np|pMMkIiP(ye=fs!6v{~-#ufO zEj8ew;(BHnl3G_}{im9L6+x`s-qxoHJRq~`OFh7kj=>EXQ~gG@?%#n)(_q=$UgWI= zBMSx&qR{}BIntDtEB+<(ztMMi5tsC-G0CAE%H;C9d~oqYr^(IGJB|i_F)P02$vCT( z1h3m5_|OH)G*5(k(`9?;(3zR8HAj(?eC;YtI_E%r~CwNfE(KD_;oc{nfr9*wQuF1h{Iqu&Yf= z@)xDA>cG6>+JEIff3sunXh1N~mgT3Fkz+JXxGq;3viuJ>Nk;{r&>+fA^Z>Cm&`U;a zmz>21Vlj=8B$4neMR|jX76{bx{9P&gd;W&i&n3a7!f%b~aUKt{C(?H-)_M!03sw7c ze4b7XzK~J~XT+Pm3;+X&m!8C?Lzma_V0}zCX3azK6B-_YYX@LHq0Z+VgkIV!laYDP z1Q!4T@ms%H9CrBqX$wTrdRbK^n46>o<}bR=QN4A_-FbP)2}O%4nGUH!*3Ik;*ufq} zy_)Oo&r$X#CdjQCe6Bg|Ccaavd+(o<9LkbY9E>DtbF7lfDmh#Peojg?4Zzc?)1DjQ zWKPFuh41qY?55S`Kp+#37t2h)1`+fn1$Pp-0&>eYHS&CWYYOwB2p_Lc7oR!$ zL+y`0&tq6IE9$SFvb!~o2FsybE9~qO02daP``Qc9XaWB}Nf9(Vj9<*h3#}(*D3P>O zaD75HSAKgs@VgHaU3NTVs)oyY459~Rh@^HnW&<(Ou@KJ6Q~kv2TMY$mQNULw!=|#? zhSH*4uXNb4f6&wpSItunVf(c7E**b)i~4!k%FL5vuZ zLWSXR*N^@$7#l)VLlX#~$>QLb%(J)67P3R5wg0F)rjDT*&Wc&Db^Br(>Br zGny=gZl!cF%JF7YSsMV4(u!onEYbkwBFsc$KTTxU-AZAjS~OEoB9+2}#!IfFkPb0I zhyD!ay0`DJGxCLr$ayi_ht9xLZ4yAaieGjgDg+f-|7`1+Pe|l!F3w!jl!DiX{M2P< zwa8D#fH*S7>}bj}f!O7O`_K-K^uNgaK$9I!TAAg4Q5rXHEyRo1kQ{kglSd&<31Ctr zg$m^4ogJSSPu>EoM55zS^npz}G6sdtn;r;eZUGypvmS%d0i+#TNf85=lMOe?vn2(y zAOB}Gn6HqpHa&4g<*WCfeL3(${m7Fh>ZRrBe5{ce&vrRWbfBf`kF*egTVPv0Kk#utUvkEwO@7^so&+XnNZpBLJMKOmxUIg0=2q@gG$* z3(@LCO+jdkrE(|;R4FWWG4~G6T3EOY0DLNIf+55wrh^`?+NpBdb z=(Fwnym(TH;$5|w9^1H0LIEF7ia)%eZyrE<#eo^fY6we`96%vbEa~6tP&spl(bD6v zttCM&F$JJKmBCL+*Gp{U>t}m?^hky)ITYIcRZ(#-SSjQaLKJ5e>Ck+6D+&ZC8t=4% zH1zx$pdsR;D)RV)5?22)Y$sVf^R`nB#61f5J>89=>=1VEy9-Wtuvf3+=^$=3h$+7f z)OUguP;o>uFyyZd;9%;H8;h(BqV5b^C`jn5X(xvG%0(DMm^;MU$XRt#!VmHeV0YH7 zxBz_!NjVTNCMGKKU4uCVsp#RLwqKz<*5KG7&I+>3rM>fH4^EJ6 zHYkX${0k4tQM8FYTmz-68bnh&F#^_QirV+jD@Uw}N=>9%DxTRGyI-B0m)K6bWOkcO zUxjO6*+$P-iv9(~@QOrkc{RQ$vSnQEAh6pXEzIn(%1M*c3ao3mFLO9Vu3bb^^maVy zC1r7vtZV)EIIzMBc{pr4$<1Nqtte-}5$v+#Vs@9IG5oMNYb~Q}yFgWxs6wiA70X+k zR>v|>`WT?3#jtuTcErvg#}^F=8`zY$Z|6P-+lF9-82He6-C)s`+6w!Tq1O2yT-%HN z(NsJYLJ>6+rZ{K>j;Lqdf~NeOlsuNh)Sn z<8ZyNGHM*JhSFIz$RY2sN<4{KYfOBWn6_;x>8m)Q@Bg}icU5a*sGbHtJw1OPTl&w7 z{P{&Z%qtY);HdgAmPAN<3(Fz^@iH3n_;Em_LTn{r43f~3>-iHNelC|lC?EJ*)#O+4 z=e&PBT)gzKzn%@)1ZZZw8@5ezIqHErPzOi0iS*A;XX_w`{qb$CPuW?=WXUx5Rg~c0WkFz&RTuC9$8Ebk zx4`d0T+c?se+$Jikjbz^Ks1cKtT>VC{kL~?(VN-+wea_STdu-djS@x%`vB1dhW;Mg zwwn;gAtkj+7$v*L2eNDPih_HlWDX;{;$l+C%24qC^t=-IO84r0-!`Z^gzV{-whmJd zYgCt@Q;Co#5G$Vr6?cSzsp;)gDkUt}u5`ta8oz2^C$;Shlm-4C4#o;mM;qt<2}^r+ zYP&Q;K#Ea>S=C@FmGpEFW{dA+&qVjk+_;S-k~k9Pvs=wjRE{n zH$ce0O`pmkta#n(85JvszPN0x1i)R?3Trt84Iwo3_f21R3qz|&mb9w?g=}xbO9rsQ z1RH|wq=BgFgWG-WLE-Fy%xOgO_uooXT|A#K&7VH*dp7j9WNll%GK-?QR_d$8TxaC^sV@>T=GcE<&V^371g+8_S8akmRE*es*$QRj zOZ2coc~I{$=3cVE?5Y|SnII8VH_juy1Y)!RwrX;yw?bLzjB^`Wxg!W*>AZj;}O>8h=@w9_*2x+ei*y9-o;VeeQ z6JLi~^v{voo%4e0+1(3q8E9~^2;T}ALX{N*EyD}HVKS|x0}TT>jt=; zfc0v1gV7s=uR*UtO3;&qU>zF!=_lx*C5nSJQZzf9AS@Z%NZk83H7n9?{P{CW)|*Ku z{zs}(3G7167VFX3n!n=!<*`(!0`^_w4JCWQiv=okk9_=d2&>GDb8nV^Z&uS3aHwj? zoH`W{y5(0)84^C*MH&)T=(^A4ixE7i--$B3dOtc&HOT4`@ zu4)X(#;ktSqKlspp>gmSVV`V`?$(Sc&h^?S^E`a$zcRvwN7f#f#=@?BarIU_?zWq8 z)gXy*7U#Aesw16fU*Hxoc*}mrUzM`?l@|iDjo9jY?GXKl3AVE%!DeVclB(? zrPw5nb1jD4`|A&^-Q@T2zayK)EQx#Y69&>@Evfh6;n6~oVXA#x0#E1NBUGb}%uOQn z9-W8r1q(I9#wEk&&geQNSL_{yyjusX9C%Q)`$i4qOYYWDT3?1FR3B~S(n-2C(M^xfr2~^PR zSTc0|l)z6N(H&%t&NL$O*(SRbcfm8(A`PS&sl&0j&>ycHOXYRHn+*g_I54y!kZ4tj zTus6F>=3HySrc#Q$%r49@60ugzJeCtnDja%Fa%lS3qO%Y5zNsrTW*wS3mocH-R>h5 zSgk0;8CD2-M|Jl>sQh_6t^tOjQT>H>iS<>Ga$EXSHHumZX!Tm` z8TV%Y1@op{L2c;8o@0*iC>(2nE=!ZmzbPOI z(O)zH>=iaPO5EA%k8u*fX2O2_Uz9)@YkqMDA&L=DvQ+Bga#L{L9>eYmzzfUVwbRET z`XMj0mx#R(4$S2t5L$9`u3XP6IyIt(mm=q;sHE{A;OpQg^sc4eAP*B+!?sOI?x3~W zDM@r)i`YEM41xZ<6o$!|D)HhJ$Sc9<^%WddBZvn-Un2pVl_G^zuAYM<#W0(_N9ww* zqNd?A95yJ!&bAt1t&-J`W>jx_VcvLDE#;Ff273(B>~b!&2C8ZQwy zP0-`$HFUT~6l-AE_QX9D9OGZ(8N)xjr82lCP6PDqi2+b?Q0no{pxkIKJ1HcN_>c;n zDT8c_*EyMsbx5K$_}4r9xC0zK&BSQy6}J$mXC}Fp|1uGwqU>A9Y|y?$U+rBBeB6`A zaEGu86L^deg$?NrR3>-ay}!+j*();~(d7S9vOzO0@n_3oa}q)*;I^rt4oF+l7?VLn zQU!uorbm@97NdmowX@zp8L%j(1Mfoy?2ASvXO)M%wi`L|un2r;qg0d82!xcM!W%vC z-#i;K+BFi)+%E.y9?;v0suP?(YFZ>n5H~P( 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

v+JzrF^A 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 a00AQd0RaVF05AXm44`rf0V61wQvd*BO4B|7 literal 0 HcmV?d00001