From 0a9cb8fd97761b2b76b238fff0327a6b6f6b8ea8 Mon Sep 17 00:00:00 2001 From: Jeremy Anderson Date: Sun, 28 Jun 2026 12:21:06 -0400 Subject: [PATCH] Fester: a distributed build orchestrator with thermal-aware scheduling, live DAG, event replay, and failure analysis --- .github/funding.yml | 64 ++ .gitignore | 139 ++++ CHANGELOG.md | 134 ++++ CHEATSHEET.md | 153 ++++ CONTRIBUTING.md | 145 ++++ DISCLAIMER | 47 ++ Dockerfile | 77 ++ LICENSE | 679 +++++++++++++++++ NOTES.text | 187 +++++ README.md | 322 ++++++++ add-to-grafana-config.json | 148 ++++ add-to-prometheus-config.yml | 4 + analysis/failure_autopsy.py | 98 +++ analysis/failure_propagation.py | 93 +++ analysis/timeline_store.py | 64 ++ backend/analysis/cause_graph.py | 160 ++++ backend/analysis/failure_autopsy.py | 106 +++ backend/analysis/failure_propagation.py | 80 ++ backend/analysis/timeline_store.py | 199 +++++ backend/api/api.py | 107 +++ backend/api/autopsy.py | 76 ++ backend/api/build.py | 85 +++ backend/api/build_spec.py | 34 + backend/api/cause.py | 51 ++ backend/api/debugger.py | 100 +++ backend/api/metrics.py | 158 ++++ backend/api/nodes.py | 211 ++++++ backend/api/pipeline_control.py | 127 ++++ backend/api/replay.py | 119 +++ backend/api/state_stream.py | 15 + backend/api/timeline.py | 50 ++ backend/api/ws.py | 25 + backend/build.py | 94 +++ backend/cache_local.py | 80 ++ backend/compiler_env.py | 43 ++ backend/config.py | 38 + backend/distcc.py | 8 + backend/events/bus.py | 25 + backend/events/clock.py | 23 + backend/events/emitter.py | 74 ++ backend/events/failure_stream.py | 21 + backend/events/journal.py | 52 ++ backend/events/replay.py | 75 ++ backend/events/schema.py | 49 ++ backend/events/stream.py | 42 ++ backend/events/types.py | 38 + backend/executor/action_runner.py | 36 + backend/executor/adapters.py | 16 + backend/executor/router.py | 48 ++ backend/executor/runtime_router.py | 121 +++ backend/governor.py | 23 + backend/graph/actions.py | 19 + backend/graph/build_graph.py | 106 +++ backend/graph/critical_path.py | 64 ++ backend/graph/plan.py | 123 +++ backend/graph/target_dag.py | 60 ++ backend/integrations/forgejo.py | 68 ++ backend/integrations/libvirt.py | 19 + backend/integrations/lxc.py | 18 + backend/integrations/mosh.py | 141 ++++ backend/integrations/tmux.py | 204 +++++ backend/main.py | 945 ++++++++++++++++++++++++ backend/metrics/cluster_state.py | 41 + backend/metrics/collector.py | 17 + backend/metrics/fester_intelligence.py | 147 ++++ backend/metrics/node_state.py | 39 + backend/metrics/observability.py | 48 ++ backend/metrics/profile_store.py | 9 + backend/metrics/prometheus.py | 22 + backend/metrics/target_labeler.py | 30 + backend/metrics/target_profile.py | 60 ++ backend/metrics/target_scoring.py | 27 + backend/nodes/__init__.py | 31 + backend/nodes/probe.py | 126 ++++ backend/nodes/roles.py | 31 + backend/nodes/roles_store.py | 79 ++ backend/nodes/state_model.py | 54 ++ backend/nodes_cli.py | 42 ++ backend/pipeline/engine.py | 226 ++++++ backend/pipeline/feedback.py | 34 + backend/pipeline/runner.py | 357 +++++++++ backend/pipeline/state.py | 19 + backend/policy/api.py | 26 + backend/policy/engine.py | 94 +++ backend/policy/rules.py | 47 ++ backend/recommend.py | 115 +++ backend/recommend_api.py | 20 + backend/release-scheduler.py | 29 + backend/release.py | 58 ++ backend/scheduler/__init__.py | 15 + backend/scheduler/cache_aware.py | 52 ++ backend/scheduler/metrics.py | 22 + backend/scheduler/optimizer.py | 35 + backend/scheduler/target_optimizer.py | 52 ++ backend/scheduler_legacy.py | 42 ++ backend/session/db.py | 184 +++++ backend/session/replay.py | 42 ++ backend/session/session.py | 46 ++ backend/snapshot.py | 114 +++ backend/storage/btrfs_cas.py | 164 ++++ backend/storage/config.py | 92 +++ backend/storage/qcow2_freeze.py | 195 +++++ backend/storage/router.py | 124 ++++ backend/storage/sqlite_db.py | 419 +++++++++++ backend/storage/tmpfs.py | 19 + backend/targets/catalog.py | 46 ++ backend/targets/router.py | 28 + backend/targets/spec.py | 20 + backend/targets/target.py | 15 + backend/utils.py | 0 bootstrap.sh | 225 ++++++ cli/fester.py | 577 +++++++++++++++ cockpit/fester-module/targets.js | 169 +++++ cockpit/fester-module/ui.html | 113 +++ config.test.yaml | 20 + config.yaml | 23 + debugger/interactive_engine.py | 124 ++++ docker-compose.yml | 87 +++ docs/screenshots/01_dashboard.png | Bin 0 -> 114955 bytes docs/screenshots/02_live_dag.png | Bin 0 -> 31447 bytes docs/screenshots/03_replay.png | Bin 0 -> 45394 bytes docs/screenshots/04_sessions.png | Bin 0 -> 57476 bytes docs/screenshots/05_metrics.png | Bin 0 -> 44539 bytes docs/screenshots/06_cause.png | Bin 0 -> 43675 bytes docs/screenshots/07_timeline.png | Bin 0 -> 49148 bytes docs/screenshots/08_debugger.png | Bin 0 -> 43614 bytes donate.md | 101 +++ fester.js | 48 ++ index.html | 618 ++++++++++++++++ install-fester.sh | 250 +++++++ install-fester2.sh | 251 +++++++ manifest.json | 10 + optimizer.py | 12 + project.schema.json | 170 +++++ pyproject.toml | 177 +++++ quickstart.md | 320 ++++++++ release.js | 18 + run.sh | 168 +++++ scheduler/optimizer.py | 96 +++ style.css | 424 +++++++++++ ui/app.js | 314 ++++++++ ui/cause.html | 292 ++++++++ ui/debugger.html | 244 ++++++ ui/live_dag.html | 403 ++++++++++ ui/metrics.html | 257 +++++++ ui/replay.html | 573 ++++++++++++++ ui/sessions.html | 347 +++++++++ ui/timeline.html | 194 +++++ 148 files changed, 16909 insertions(+) create mode 100644 .github/funding.yml create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 CHEATSHEET.md create mode 100644 CONTRIBUTING.md create mode 100644 DISCLAIMER create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 NOTES.text create mode 100644 README.md create mode 100644 add-to-grafana-config.json create mode 100644 add-to-prometheus-config.yml create mode 100644 analysis/failure_autopsy.py create mode 100644 analysis/failure_propagation.py create mode 100644 analysis/timeline_store.py create mode 100644 backend/analysis/cause_graph.py create mode 100644 backend/analysis/failure_autopsy.py create mode 100644 backend/analysis/failure_propagation.py create mode 100644 backend/analysis/timeline_store.py create mode 100644 backend/api/api.py create mode 100644 backend/api/autopsy.py create mode 100644 backend/api/build.py create mode 100644 backend/api/build_spec.py create mode 100644 backend/api/cause.py create mode 100644 backend/api/debugger.py create mode 100644 backend/api/metrics.py create mode 100644 backend/api/nodes.py create mode 100644 backend/api/pipeline_control.py create mode 100644 backend/api/replay.py create mode 100644 backend/api/state_stream.py create mode 100644 backend/api/timeline.py create mode 100644 backend/api/ws.py create mode 100644 backend/build.py create mode 100644 backend/cache_local.py create mode 100644 backend/compiler_env.py create mode 100644 backend/config.py create mode 100644 backend/distcc.py create mode 100644 backend/events/bus.py create mode 100644 backend/events/clock.py create mode 100644 backend/events/emitter.py create mode 100644 backend/events/failure_stream.py create mode 100644 backend/events/journal.py create mode 100644 backend/events/replay.py create mode 100644 backend/events/schema.py create mode 100644 backend/events/stream.py create mode 100644 backend/events/types.py create mode 100644 backend/executor/action_runner.py create mode 100644 backend/executor/adapters.py create mode 100644 backend/executor/router.py create mode 100644 backend/executor/runtime_router.py create mode 100644 backend/governor.py create mode 100644 backend/graph/actions.py create mode 100644 backend/graph/build_graph.py create mode 100644 backend/graph/critical_path.py create mode 100644 backend/graph/plan.py create mode 100644 backend/graph/target_dag.py create mode 100644 backend/integrations/forgejo.py create mode 100644 backend/integrations/libvirt.py create mode 100644 backend/integrations/lxc.py create mode 100644 backend/integrations/mosh.py create mode 100644 backend/integrations/tmux.py create mode 100644 backend/main.py create mode 100644 backend/metrics/cluster_state.py create mode 100644 backend/metrics/collector.py create mode 100644 backend/metrics/fester_intelligence.py create mode 100644 backend/metrics/node_state.py create mode 100644 backend/metrics/observability.py create mode 100644 backend/metrics/profile_store.py create mode 100644 backend/metrics/prometheus.py create mode 100644 backend/metrics/target_labeler.py create mode 100644 backend/metrics/target_profile.py create mode 100644 backend/metrics/target_scoring.py create mode 100644 backend/nodes/__init__.py create mode 100644 backend/nodes/probe.py create mode 100644 backend/nodes/roles.py create mode 100644 backend/nodes/roles_store.py create mode 100644 backend/nodes/state_model.py create mode 100644 backend/nodes_cli.py create mode 100644 backend/pipeline/engine.py create mode 100644 backend/pipeline/feedback.py create mode 100644 backend/pipeline/runner.py create mode 100644 backend/pipeline/state.py create mode 100644 backend/policy/api.py create mode 100644 backend/policy/engine.py create mode 100644 backend/policy/rules.py create mode 100644 backend/recommend.py create mode 100644 backend/recommend_api.py create mode 100644 backend/release-scheduler.py create mode 100644 backend/release.py create mode 100644 backend/scheduler/__init__.py create mode 100644 backend/scheduler/cache_aware.py create mode 100644 backend/scheduler/metrics.py create mode 100644 backend/scheduler/optimizer.py create mode 100644 backend/scheduler/target_optimizer.py create mode 100644 backend/scheduler_legacy.py create mode 100644 backend/session/db.py create mode 100644 backend/session/replay.py create mode 100644 backend/session/session.py create mode 100644 backend/snapshot.py create mode 100644 backend/storage/btrfs_cas.py create mode 100644 backend/storage/config.py create mode 100644 backend/storage/qcow2_freeze.py create mode 100644 backend/storage/router.py create mode 100644 backend/storage/sqlite_db.py create mode 100644 backend/storage/tmpfs.py create mode 100644 backend/targets/catalog.py create mode 100644 backend/targets/router.py create mode 100644 backend/targets/spec.py create mode 100644 backend/targets/target.py create mode 100644 backend/utils.py create mode 100755 bootstrap.sh create mode 100755 cli/fester.py create mode 100644 cockpit/fester-module/targets.js create mode 100644 cockpit/fester-module/ui.html create mode 100644 config.test.yaml create mode 100644 config.yaml create mode 100644 debugger/interactive_engine.py create mode 100644 docker-compose.yml create mode 100644 docs/screenshots/01_dashboard.png create mode 100644 docs/screenshots/02_live_dag.png create mode 100644 docs/screenshots/03_replay.png create mode 100644 docs/screenshots/04_sessions.png create mode 100644 docs/screenshots/05_metrics.png create mode 100644 docs/screenshots/06_cause.png create mode 100644 docs/screenshots/07_timeline.png create mode 100644 docs/screenshots/08_debugger.png create mode 100644 donate.md create mode 100644 fester.js create mode 100644 index.html create mode 100755 install-fester.sh create mode 100644 install-fester2.sh create mode 100644 manifest.json create mode 100644 optimizer.py create mode 100644 project.schema.json create mode 100644 pyproject.toml create mode 100644 quickstart.md create mode 100644 release.js create mode 100755 run.sh create mode 100644 scheduler/optimizer.py create mode 100644 style.css create mode 100644 ui/app.js create mode 100644 ui/cause.html create mode 100644 ui/debugger.html create mode 100644 ui/live_dag.html create mode 100644 ui/metrics.html create mode 100644 ui/replay.html create mode 100644 ui/sessions.html create mode 100644 ui/timeline.html diff --git a/.github/funding.yml b/.github/funding.yml new file mode 100644 index 0000000..e09faad --- /dev/null +++ b/.github/funding.yml @@ -0,0 +1,64 @@ +# .github/funding.yml +# ============================================================ +# GitHub Sponsors "Sponsor this project" button configuration. +# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository +# +# Each key below corresponds to a sponsored-developer account or platform +# that will appear as a "Sponsor" button on the repo's main page. +# +# Replace the placeholder values with your actual usernames/addresses. +# Comment out or delete any platforms you don't want to use. +# ============================================================ + +# --- GitHub Sponsors --- +# Your GitHub Sponsors username (the part after github.com/sponsors/) +github: REPLACE_WITH_YOUR_GITHUB_USERNAME + +# --- Patreon --- +# Your Patreon username (the part after patreon.com/) +patreon: REPLACE_WITH_YOUR_PATREON_USERNAME + +# --- Open Collective --- +# Your Open Collective slug (the part after opencollective.com/) +open_collective: REPLACE_WITH_YOUR_OPENCOLLECTIVE_SLUG + +# --- Ko-fi --- +# Your Ko-fi username (the part after ko-fi.com/) +ko_fi: REPLACE_WITH_YOUR_KOFI_USERNAME + +# --- Tidelift --- +# Your Tidelift package name (e.g. "npm/foo" or "pypi/bar") +tidelift: REPLACE_WITH_YOUR_TIDELIFT_PACKAGE + +# --- CommunityBridge --- +# Your CommunityBridge project name +community_bridge: REPLACE_WITH_YOUR_COMMUNITYBRIDGE_PROJECT + +# --- Liberapay --- +# Your Liberapay username (the part after liberapay.com/) +liberapay: REPLACE_WITH_YOUR_LIBERAPAY_USERNAME + +# --- IssueHunt --- +# Your IssueHunt username +issuehunt: REPLACE_WITH_YOUR_ISSUEHUNT_USERNAME + +# --- LFX Crowdfunding --- +# Your LFX project name +lfx_crowdfunding: REPLACE_WITH_YOUR_LFX_PROJECT + +# --- Polar --- +# Your Polar repository (e.g. "owner/repo") +polar: REPLACE_WITH_YOUR_GITHUB_ORG/fester + +# --- Custom platforms / direct links --- +# A list of up to 4 custom {label, url} entries that appear as buttons. +# Use these for crypto donation links, your own donate page, etc. +custom: + - label: "Donate" + url: "https://git.dcos.net/dcosnet/fester/src/branch/main/donate.md" + # - label: "Bitcoin" + # url: "https://your-blockchain-explorer/address/YOUR_BTC_ADDRESS" + # - label: "Monero" + # url: "https://your-xmr-explorer/address/YOUR_XMR_ADDRESS" + # - label: "PayPal" + # url: "https://www.paypal.com/paypalme/YOUR_PAYPAL_ME" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..77aa5d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,139 @@ +# ============================================================ +# Fester .gitignore +# ============================================================ + +# ---- Python ---- +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# ---- Virtual environments ---- +.venv/ +venv/ +env/ +ENV/ +env.bak/ +venv.bak/ +.python-version + +# ---- Testing / coverage ---- +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ +.mypy_cache/ +.ruff_cache/ + +# ---- Fester runtime data ---- +*.db +*.db-journal +*.db-wal +*.db-shm +*.sqlite +*.sqlite-journal +*.sqlite-wal +*.sqlite-shm + +# Fester storage dirs (local dev) +.fester/ +fester-data/ +/var/lib/fester/ +snapshots/ +cas/ +cache/ +*.qcow2 +*.tar.gz + +# Config with secrets (keep config.yaml.example in git, ignore actual config) +config.local.yaml +config.runtime.yaml +storage.json +node_roles.json +.env +.env.local +.env.*.local + +# ---- Logs ---- +*.log +logs/ +fester.log +fester_backend.log +mock_agent.log + +# ---- IDE / Editor ---- +.idea/ +.vscode/ +*.swp +*.swo +*~ +.project +.classpath +.settings/ +*.sublime-project +*.sublime-workspace +.atom/ +.brackets.json + +# ---- OS ---- +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db +desktop.ini + +# ---- Docker ---- +docker-compose.override.yml + +# ---- Node (if you ever add a JS build step) ---- +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# ---- Build artifacts ---- +*.o +*.a +*.so +*.dylib +build.tar.gz +build/ + +# ---- Screenshots (keep in git, but ignore ad-hoc captures) ---- +# docs/screenshots/ is tracked — these are ad-hoc: +/tmp/ +*.tmp + +# ---- Misc ---- +*.bak +*.orig +*.rej +*.diff +*.patch diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..398d331 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,134 @@ +# Changelog + +All notable changes to Fester are documented here. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added +- Documentation: README.md, quickstart.md, CONTRIBUTING.md, CHANGELOG.md +- Tooling: bootstrap.sh, run.sh, pyproject.toml, .gitignore +- Docker support (Dockerfile) +- Screenshots for all 8 UI pages + +## [0.3.0] — 2026-06-28 + +### Added — Storage layer +- SQLite-backed persistence for builds, sessions, events, and node states +- Btrfs CoW reflink snapshots (`backend/storage/btrfs_cas.py`) +- QCOW2 workspace freezing with real mount + rsync (`backend/storage/qcow2_freeze.py`) +- tmpfs workspace acceleration +- Storage status + config + freeze + reflink + snapshots endpoints + +### Added — tmux integration (E9) +- TmuxManager with session create/list/inspect/capture-output/kill +- `runtime: "tmux"` action runtime — runs actions in detached tmux sessions +- Live output viewer in Sessions page UI +- `/api/actions/active`, `/api/actions/{name}/tmux/output`, `/tmux/kill` endpoints + +### Added — mosh/ssh shell attach (E10) +- MoshManager with command builder (mosh-via-SSH-bootstrap) +- `/api/nodes/{name}/shell` GET + POST endpoints +- "⌘ Shell" button on Dashboard node rows (copies command to clipboard) + +### Added — Real engine wiring +- BuildRunner wraps PipelineEngine with build lifecycle + persistence +- Real DAG execution with proper cwd + env passing +- Failure propagation: skipped actions on failed deps +- Critical path computation + tagging in events +- Debugger pause/resume/step actually controls running engines + +### Added — Cause graph + blast radius +- `/api/propagation/{action}` — forward blast radius computation +- `/api/cause/explain/{node}` — causal chain for a node +- Blast Radius panel in Cause Graph UI page +- Failure autopsy with proper session ID correlation + +### Added — Storage + target catalog +- `/api/targets` reads from `backend/targets/catalog.py` (6 systems: Gentoo, Buildroot, OpenWrt, ALFS, SourceMage, Lunar) +- `/api/targets/arches` + `/api/targets/runtimes` endpoints + +### Added — Health + metrics +- `/api/health` endpoint (version, bus_subscribers, ws_clients, builds_known, timeline_events) +- Live health indicator in topbar (all pages) +- Prometheus metrics aligned with grafana config names (`fester_node_cpu`, `fester_pipeline_actions_total`, etc.) +- Pipeline action counters + cache hit counters wired via bus subscriber + +### Added — UI enhancements +- New Timeline page (per-node event drill-down) +- Node policy dropdowns (preferred/avoid/neutral) on Dashboard +- Per-node "Probe" buttons + "Probe All" button +- Build cancel + replay buttons on Sessions page +- Event filter chips on Dashboard (toggle by event type) + +### Added — CLI overhaul +- 35+ subcommands (was 11) +- Nested subcommands: `node {list,set-policy,probe,probe-all}`, `cause {explain,trace,events}`, `replay {start,step,reset}`, `debugger {state,pause,resume,step}` +- New: `build`, `builds`, `build-info`, `cancel`, `release`, `targets`, `toggle-target`, `blast`, `timeline`, `rewind`, `autopsy`, `policy-list`, `health` +- `--watch` flag on `build` command (streams events via WebSocket) + +### Fixed — Critical backend bugs +- `api/api.py` order bug (`bus.subscribe()` before `bus = EventBus()`) +- 7 broken `_endpoint` symbol imports +- `cause_graph.attach_bus` + `emit_debug` defined at module scope (zero indentation) +- Three missing files: `timeline_store.py`, `failure_autopsy.py`, `failure_propagation.py` +- Two Python module/package name collisions (`scheduler.py` vs `scheduler/`, `nodes.py` vs `nodes/`, `cache.py` vs `cache/`) +- `execute_action` passing empty `{}` as cwd → `TypeError` +- Build env never reaching subprocess +- Debugger/pipeline-control `_ENGINE` always `None` +- `failure_propagation` looking for `event.data.deps` (legacy shape) +- Autopsy session ID mismatch +- `/api/release` was a pure stub +- `/api/policy/set` didn't persist +- `/ws-debugger` returned canned data, ignored commands +- `forgejo.on_push_event` wrong PipelineEngine arity +- `pipeline/feedback.py` PolicyEngine() with no args + +### Fixed — Standardization +- ~20 bare imports converted to `backend.*` prefix +- Two parallel event taxonomies unified (`types.py` re-exports from `schema.py`) +- `MinioCache.__init__` made lazy (was crashing on import if MinIO unreachable) +- `cache.py` graceful fallback for non-writable paths +- `roles_store.py` graceful fallback for non-writable `/etc/fester/` +- `FesterEvent` made `node`/`action`/`state` truly optional (had `Optional[str]` type but no default) + +## [0.2.0] — 2026-06-27 + +### Added — Real FastAPI backend +- `backend/main.py` — FastAPI app with 50+ routes +- All routers wired: replay, autopsy, timeline, debugger, pipeline_control, nodes, metrics, cause +- WebSocket hub with `/ws`, `/ws-targets`, `/ws-debugger` +- Ambient loop for node probing + drift +- SQLite storage layer (`backend/storage/sqlite_db.py`) +- Node probe module (`backend/nodes/probe.py`) +- BuildRunner (`backend/pipeline/runner.py`) + +### Added — UI overhaul (7 pages) +- Dashboard (`index.html`) — 3-column layout with cluster stats, live stream, quick actions +- Live DAG (`ui/live_dag.html`) — layered Sugiyama-lite layout, SVG edges, click-to-inspect +- Replay (`ui/replay.html`) — timeline scrubber, play/pause/step, structured inspector +- Sessions (`ui/sessions.html`) — build history + replay links +- Metrics (`ui/metrics.html`) — live charts + per-node cards +- Cause Graph (`ui/cause.html`) — radial graph visualization +- Debugger (`ui/debugger.html`) — step-through execution control + +### Added — Shared infrastructure +- `style.css` — full design system (dark theme tokens, panels, badges, buttons, scrollbars) +- `ui/app.js` — shared shell (WS auto-reconnect, FesterTargets global, toasts, topbar nav) +- `cockpit/fester-module/targets.js` — fixed to expose `FesterTargets` global + +### Fixed +- `live_dag.html` was broken (referenced undefined `FesterTargets`) +- `style.css` was 0 bytes +- `index.html` was a 30-line throwaway + +## [0.1.0] — Initial commit + +### Added +- Basic project structure +- Backend modules (many stubbed) +- Cockpit module +- Install scripts +- CHEATSHEET.md diff --git a/CHEATSHEET.md b/CHEATSHEET.md new file mode 100644 index 0000000..8c14ec2 --- /dev/null +++ b/CHEATSHEET.md @@ -0,0 +1,153 @@ +# Fester Cluster Build System — Cheatsheet + +## 🧠 Core Concept + +A distributed, DAG-driven build execution system with: + +- real-time scheduling +- node-aware load balancing +- thermal + policy constraints +- cache-aware execution +- deterministic replay/debugging + +--- + +## 🧩 System Components + +### 1. Scheduler +Chooses best node per action using: + +- CPU load +- temperature +- policy rules +- historical intelligence feedback + +--- + +### 2. Pipeline Engine +Executes DAG actions sequentially or step-debugged. + +Supports: +- live execution +- interactive stepping +- replay mode + +--- + +### 3. Timeline Store +Immutable event log of entire system. + +Used for: +- replay +- debugging +- autopsy analysis + +--- + +### 4. Failure System +Detects and propagates failure: + +- backward → root cause candidates +- forward → downstream impact + +--- + +### 5. Critical Path Analyzer +Identifies bottleneck chain in DAG execution. + +--- + +### 6. Cache Layer +Supports: +- distributed artifact reuse +- MinIO backend +- future: Btrfs/QCOW2 snapshot acceleration + +--- + +### 7. Debugger Mode +Interactive execution control: + +- pause +- step +- resume +- scheduler preview before execution + +--- + +## 🧭 Execution Flow + +1. Build graph generated from spec +2. Scheduler selects node per action +3. Timeline records decision +4. Executor runs action on node +5. Events streamed to UI +6. Failures propagate through DAG +7. Optional debugger intercepts execution + +--- + +## 📡 Event Types + +- `node` +- `pipeline` +- `schedule_decision` +- `failure_propagation` +- `debugger_preview` + +--- + +## 🖥 UI Modes + +### Live Mode +- real-time DAG rendering +- node state updates + +### Debug Mode +- step execution +- scheduler inspection +- manual control + +### Autopsy Mode +- failure root cause analysis +- dependency tracing +- critical path overlay + +--- + +## ⚙️ Node Selection Model + +Score-based weighted system: + +- CPU availability +- thermal headroom +- policy constraints +- historical instability penalties + +--- + +## 🧪 Execution Backends (planned) + +- distcc +- LXC +- libvirt +- native execution +- cross-compilation toolchains + +--- + +## 📦 Cache Strategy + +- local ccache +- shared MinIO cache +- future: Btrfs/QCOW2 snapshot acceleration + +--- + +## 🔐 Design Principle + +> The system must always be replayable, explainable, and deterministic. + +No hidden state. +No opaque scheduling. +Everything is observable. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..2970579 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,145 @@ +# Contributing to Fester + +Thanks for your interest in improving Fester! This document covers the basics. + +## 🚀 Quick Start for Contributors + +```bash +# 1. Fork + clone +git clone https://git.dcos.net/dcosnet/fester.git +cd fester + +# 2. Bootstrap dev environment (creates venv, installs deps + dev tools) +./bootstrap.sh --dev + +# 3. Run the backend in dev mode (auto-reload on changes) +./run.sh --dev + +# 4. Run tests (when we have them) +pytest + +# 5. Lint + format +ruff check . +ruff format . +``` + +## 🏗️ Architecture Overview + +Read **[README.md](README.md)** first — it has the full architecture diagram and project layout. + +The key insight: Fester has a strict separation between: +- **EventBus** — the singleton message bus (all events flow through it) +- **Subscribers** — bus listeners that index/journal/broadcast events (TimelineStore, cause_graph, FailurePropagator, the WS broadcaster) +- **Routers** — FastAPI APIRouters under `backend/api/` that expose REST endpoints +- **UI** — vanilla HTML/JS pages under `ui/` that subscribe to the WS stream and call REST endpoints + +When you add a new feature, ask: +1. Does this emit events? → Use `bus.emit(EventType.X, ...)` from `backend/events/schema.py` +2. Does this need persistence? → Add a method to `backend/storage/sqlite_db.py:Storage` +3. Does this need a UI? → Add a page under `ui/` and a nav entry in `ui/app.js:Fester.mountShell()` +4. Does this need a CLI command? → Add a subcommand to `cli/fester.py` + +## 📝 Coding Standards + +### Python + +- **Python 3.12+** — use modern syntax (match statements, type hints, etc.) +- **Type hints** — add them to new code; don't worry about retrofitting old code +- **Imports** — use `from backend.X.Y import Z` (not bare `from X.Y import Z`) +- **EventBus** — always emit events via `bus.emit()`, never mutate state directly from a request handler +- **Pydantic** — use `BaseModel` for request bodies in routers +- **Async** — use `async def` for endpoints that touch the DB or do I/O + +### JavaScript (UI) + +- **Vanilla JS** — no frameworks (React, Vue, etc.). Keep it dependency-free. +- **Shared shell** — every page calls `Fester.mountShell('page-id')` to get the topbar + WS connection +- **API calls** — use `Fester.api(path, opts)` (returns parsed JSON) +- **Toasts** — use `Fester.toast(msg, kind)` for user notifications +- **No build step** — pages load directly via ` + + + + + + +
+
+
+

Debugger

+
+ + + +
+
+

+    
+
+ + + + diff --git a/config.test.yaml b/config.test.yaml new file mode 100644 index 0000000..6ab2114 --- /dev/null +++ b/config.test.yaml @@ -0,0 +1,20 @@ +master: + name: fester-master + role: control + +nodes: + - name: x99-v3 + host: 127.0.0.1 + max_jobs: 24 + + - name: x99-v4 + host: 127.0.0.1 + max_jobs: 30 + +projects: + - name: linux-tool + repo: https://forgejo.local/linux-tool.git + targets: + debian: "make clean && make debian" + arch: "make clean && make arch" + fedora: "make clean && make fedora" diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..5e87db2 --- /dev/null +++ b/config.yaml @@ -0,0 +1,23 @@ +master: + name: fester-master + role: control + +nodes: + - name: x99-v3 + host: 192.168.1.10 + max_jobs: 24 + + - name: x99-v4 + host: 192.168.1.11 + max_jobs: 30 + + +projects: + + - name: linux-tool + repo: https://forgejo.local/linux-tool.git + + targets: + debian: "make clean && make debian" + arch: "make clean && make arch" + fedora: "make clean && make fedora" diff --git a/debugger/interactive_engine.py b/debugger/interactive_engine.py new file mode 100644 index 0000000..cf0195f --- /dev/null +++ b/debugger/interactive_engine.py @@ -0,0 +1,124 @@ +# debugger/interactive_engine.py + +import asyncio + +class InteractiveDebuggerEngine: + + def __init__(self, nodes, graph, scheduler, timeline, ws): + + self.nodes = nodes + self.graph = graph + self.scheduler = scheduler + self.timeline = timeline + self.ws = ws + + self.paused = True + self.step_mode = True + self.current_index = 0 + self.actions = [] + + # ----------------------------- + # LOAD EXECUTION PLAN + # ----------------------------- + def load_plan(self, actions): + self.actions = actions + self.current_index = 0 + + # ----------------------------- + # CONTROL + # ----------------------------- + def pause(self): + self.paused = True + + def resume(self): + self.paused = False + + def step(self): + self.paused = False + + # ----------------------------- + # MAIN EXECUTION LOOP + # ----------------------------- + async def run(self): + + while self.current_index < len(self.actions): + + action = self.actions[self.current_index] + + # ----------------------------- + # SCHEDULER PREVIEW (NO EXECUTION YET) + # ----------------------------- + decision = self.scheduler.choose_best_node( + self.nodes, + action + ) + + preview_event = { + "type": "debugger_preview", + "data": { + "action": action["name"], + "selected_node": decision["best_node"]["name"], + "alternatives": decision["explanation"]["top_candidates"], + "state": "awaiting_step" + } + } + + await self.ws.broadcast(preview_event) + self.timeline.record(preview_event) + + # ----------------------------- + # WAIT FOR USER STEP + # ----------------------------- + while self.paused: + await asyncio.sleep(0.05) + + # auto-pause again after step + self.paused = True + + # ----------------------------- + # EXECUTE ACTION + # ----------------------------- + node = decision["best_node"] + + exec_event = { + "type": "node", + "data": { + "action": action["name"], + "node": node["name"], + "state": "running", + "mode": "debug_step" + } + } + + await self.ws.broadcast(exec_event) + self.timeline.record(exec_event) + + # simulate execution hook (replace with real executor) + rc = await self.execute(action, node) + + final_state = "done" if rc == 0 else "failed" + + final_event = { + "type": "node", + "data": { + "action": action["name"], + "node": node["name"], + "state": final_state, + "mode": "debug_step" + } + } + + await self.ws.broadcast(final_event) + self.timeline.record(final_event) + + self.current_index += 1 + + # ----------------------------- + # EXECUTION HOOK + # ----------------------------- + async def execute(self, action, node): + """ + Replace with distcc / lxc / libvirt execution layer + """ + await asyncio.sleep(0.2) + return 0 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9ce2b39 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,87 @@ +# docker-compose.yml for Fester +# ============================================================ +# Quick start: +# docker-compose up -d +# +# Then open http://localhost:8080 +# +# Volumes: +# fester-db — SQLite database (builds, sessions, events) +# fester-storage — snapshots, cache, CAS +# fester-config — config.yaml, storage.json, node_roles.json +# ============================================================ + +version: "3.8" + +services: + fester: + build: . + image: fester:latest + container_name: fester + restart: unless-stopped + ports: + - "8080:8080" + volumes: + - fester-db:/var/lib/fester + - fester-storage:/var/lib/fester/storage + - fester-config:/etc/fester + - ./config.yaml:/app/config.yaml:ro + environment: + - FESTER_DB_PATH=/var/lib/fester/fester.db + - FESTER_CONFIG=/app/config.yaml + - FESTER_NO_DRIFT=0 + - FESTER_AUTOBUILD=0 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 10s + + # Optional: MinIO for distributed cache + # Uncomment to enable + # minio: + # image: minio/minio:latest + # container_name: fester-minio + # restart: unless-stopped + # ports: + # - "9000:9000" + # - "9001:9001" + # volumes: + # - minio-data:/data + # environment: + # - MINIO_ROOT_USER=minioadmin + # - MINIO_ROOT_PASSWORD=minioadmin + # command: server /data --console-address ":9001" + + # Optional: Prometheus scraper + # prometheus: + # image: prom/prometheus:latest + # container_name: fester-prometheus + # restart: unless-stopped + # ports: + # - "9090:9090" + # volumes: + # - ./add-to-prometheus-config.yml:/etc/prometheus/prometheus.yml:ro + # - prometheus-data:/prometheus + + # Optional: Grafana dashboard + # grafana: + # image: grafana/grafana:latest + # container_name: fester-grafana + # restart: unless-stopped + # ports: + # - "3000:3000" + # volumes: + # - grafana-data:/var/lib/grafana + # - ./add-to-grafana-config.json:/etc/grafana/provisioning/dashboards/fester.json:ro + # environment: + # - GF_SECURITY_ADMIN_PASSWORD=admin + +volumes: + fester-db: + fester-storage: + fester-config: + # minio-data: + # prometheus-data: + # grafana-data: diff --git a/docs/screenshots/01_dashboard.png b/docs/screenshots/01_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..d1a6f4f7f4cbd488dc764a944575a87e3d71e06b GIT binary patch literal 114955 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 U_j75GUTEt|a_X|h(&oYc1D9U?w*UYD literal 0 HcmV?d00001 diff --git a/docs/screenshots/02_live_dag.png b/docs/screenshots/02_live_dag.png new file mode 100644 index 0000000000000000000000000000000000000000..eb107ef0a3b651a953489bb206dbd61fd5d82ee6 GIT binary patch literal 31447 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

Master

+
${JSON.stringify(parsed.master, null, 2)}
+

Nodes

`; + + parsed.nodes.forEach(n => { + + html += ` +
+ ${n.name}
+ state: ${n.state}
+ heat: ${n.heat}
+
+ `; + }); + + document.getElementById("nodes").innerHTML = html; + }) + .catch(err => { + document.getElementById("nodes").textContent = err.toString(); + }); + }); + +}); diff --git a/index.html b/index.html new file mode 100644 index 0000000..11cd491 --- /dev/null +++ b/index.html @@ -0,0 +1,618 @@ + + + + + +Fester — Dashboard + + + + + +
+ + +
+
+

Cluster

+
+ + +
+
+
+
+
+
Nodes Online
+
+
+
+
Avg Heat
+
+
+
+
Active Jobs
+
+
+
+
Cache Hit %
+
+
+
+ +

Nodes

+
+ +

Scheduler Mode

+ +
+
+ + +
+
+

Live Event Stream

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

Quick Actions

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

Targets

+
+ +
+ +

Pipeline Control

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

Release Control

+
+
+
+ +
+ + + + + diff --git a/install-fester.sh b/install-fester.sh new file mode 100755 index 0000000..5a6229f --- /dev/null +++ b/install-fester.sh @@ -0,0 +1,250 @@ +#!/usr/bin/env bash +# ============================================================ +# Fester Bootstrap Installer +# ============================================================ +# Deploys the Fester codebase to a target directory, runs the +# first-run config wizard, and writes the systemd unit + cockpit +# manifest. Does NOT overwrite the real CLI with a stub. +# +# Usage: +# ./install-fester.sh # interactive +# BASE_DIR=/opt/fester ./install-fester.sh # custom target +# NONINTERACTIVE=1 ./install-fester.sh # CI mode (defaults) +# ============================================================ +set -euo pipefail + +# Resolve the repo root (directory containing this script) +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +BASE_DIR="${BASE_DIR:-/usr/share/cockpit/fester}" +NONINTERACTIVE="${NONINTERACTIVE:-0}" + +echo "============================================================" +echo " Fester Bootstrap Installer" +echo " Source: $REPO_ROOT" +echo " Target: $BASE_DIR" +echo "============================================================" + +# ------------------------------------------------------------ +# Dependency checks +# ------------------------------------------------------------ +echo "" +echo "🔍 Checking dependencies..." + +check_dep() { + if command -v "$1" >/dev/null 2>&1; then + echo " ✓ $1" + return 0 + else + echo " ✗ $1 NOT FOUND" + return 1 + fi +} + +MISSING=0 +check_dep python3 || MISSING=1 + +# Python packages +PYTHON_OK=1 +python3 -c "import fastapi" 2>/dev/null && echo " ✓ python: fastapi" || { echo " ✗ python: fastapi missing"; PYTHON_OK=0; } +python3 -c "import uvicorn" 2>/dev/null && echo " ✓ python: uvicorn" || { echo " ✗ python: uvicorn missing"; PYTHON_OK=0; } +python3 -c "import websockets" 2>/dev/null && echo " ✓ python: websockets" || { echo " ✗ python: websockets missing"; PYTHON_OK=0; } +python3 -c "import prometheus_client" 2>/dev/null && echo " ✓ python: prometheus_client" || { echo " ✗ python: prometheus_client missing"; PYTHON_OK=0; } + +if [ "$MISSING" -eq 1 ]; then + echo "" + echo "❌ Required system tools missing. Install them first." + exit 1 +fi + +if [ "$PYTHON_OK" -eq 0 ]; then + echo "" + echo "⚠️ Some Python packages missing. Installing..." + pip3 install --break-system-packages fastapi uvicorn websockets prometheus_client minio pydantic 2>/dev/null || true +fi + +# ------------------------------------------------------------ +# Create directory structure +# ------------------------------------------------------------ +echo "" +echo "📁 Creating directory structure at $BASE_DIR..." +sudo mkdir -p "$BASE_DIR" +sudo chown -R "$USER":"$USER" "$BASE_DIR" 2>/dev/null || true +mkdir -p "$BASE_DIR"/{backend,ui,cockpit/fester-module,cli,docs,config} + +# ------------------------------------------------------------ +# Copy code from repo +# ------------------------------------------------------------ +echo "📦 Copying code from repo..." + +# Backend +cp -r "$REPO_ROOT/backend/"* "$BASE_DIR/backend/" + +# UI +cp "$REPO_ROOT/style.css" "$BASE_DIR/" +cp "$REPO_ROOT/index.html" "$BASE_DIR/" +cp -r "$REPO_ROOT/ui/"* "$BASE_DIR/ui/" + +# Cockpit module +cp -r "$REPO_ROOT/cockpit/"* "$BASE_DIR/cockpit/" + +# CLI (the REAL one, not a stub) +cp "$REPO_ROOT/cli/fester.py" "$BASE_DIR/cli/fester.py" +chmod +x "$BASE_DIR/cli/fester.py" + +# Top-level files +cp "$REPO_ROOT/manifest.json" "$BASE_DIR/" +cp "$REPO_ROOT/project.schema.json" "$BASE_DIR/" +cp "$REPO_ROOT/CHEATSHEET.md" "$BASE_DIR/docs/" +cp "$REPO_ROOT/README" "$BASE_DIR/LICENSE" 2>/dev/null || true + +# ------------------------------------------------------------ +# Config wizard +# ------------------------------------------------------------ +echo "" +echo "⚙️ Configuration" + +if [ "$NONINTERACTIVE" = "1" ]; then + CLUSTER_NAME="fester-cluster" + LIBVIRT="y" + LXC="y" + DISTCC="y" + MINIO="y" +else + read -rp "Cluster name [fester-cluster]: " CLUSTER_NAME + CLUSTER_NAME=${CLUSTER_NAME:-fester-cluster} + + read -rp "Enable libvirt integration? (y/n) [y]: " LIBVIRT + LIBVIRT=${LIBVIRT:-y} + + read -rp "Enable LXC integration? (y/n) [y]: " LXC + LXC=${LXC:-y} + + read -rp "Enable distcc integration? (y/n) [y]: " DISTCC + DISTCC=${DISTCC:-y} + + read -rp "Enable MinIO cache backend? (y/n) [y]: " MINIO + MINIO=${MINIO:-y} +fi + +# Write the canonical config.yaml — aligned with the project.schema.json +cat > "$BASE_DIR/config.yaml" </dev/null && sudo chown "$USER":"$USER" /etc/fester 2>/dev/null || true +echo '{}' > /etc/fester/node_roles.json 2>/dev/null || true + +# ------------------------------------------------------------ +# Cache dir +# ------------------------------------------------------------ +mkdir -p /var/lib/fester/cache 2>/dev/null && sudo chown "$USER":"$USER" /var/lib/fester 2>/dev/null || true + +# ------------------------------------------------------------ +# Prometheus scrape config (drop-in) +# ------------------------------------------------------------ +cat > "$BASE_DIR/add-to-prometheus-config.yml" <<'EOF' +scrape_configs: + - job_name: 'fester' + static_configs: + - targets: ['localhost:8080'] + metrics_path: /metrics +EOF + +# ------------------------------------------------------------ +# Grafana dashboard stub +# ------------------------------------------------------------ +cat > "$BASE_DIR/add-to-grafana-config.json" <<'EOF' +{ + "dashboard": { + "title": "Fester Cluster Overview", + "panels": [ + { "type": "stat", "title": "Nodes Online", "targets": [{ "expr": "fester_nodes_online" }] }, + { "type": "stat", "title": "Active Jobs", "targets": [{ "expr": "fester_cluster_active_jobs" }] }, + { "type": "graph", "title": "Avg Heat", "targets": [{ "expr": "fester_cluster_avg_heat" }] } + ] + } +} +EOF + +# ------------------------------------------------------------ +# Systemd unit (optional) +# ------------------------------------------------------------ +if command -v systemctl >/dev/null 2>&1; then + cat > /tmp/fester.service < "$BASE_DIR/config.yaml" < "$BASE_DIR/LICENSE" <<'EOF' +Fester Distributed Build System + +Licensed under GNU AGPL v3 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License. + +This software is provided "AS IS", without warranty of any kind. +EOF + + +# ============================================================ +# CHEATSHEET +# ============================================================ + +cat > "$BASE_DIR/CHEATSHEET.md" <<'EOF' +# 🧠 Fester Cheatsheet + +## Build +fester build + +## Node Control +fester node list +fester node set-policy preferred|avoid + +## Debug +/api/autopsy/ +/api/replay/ + +## UI +- Live DAG: /ui/live_dag.html +- Replay: /ui/replay.html +EOF + + +# ============================================================ +# INDEX PAGE (COCKPIT ENTRY) +# ============================================================ + +cat > "$BASE_DIR/index.html" <<'EOF' + +Fester Control Plane + +

Fester Cluster Control

+
+ + +EOF + + +# ============================================================ +# UI: LIVE DAG (FULL FILE) +# ============================================================ + +cat > "$BASE_DIR/ui_live_dag.html" <<'EOF' + + + + + + +
+ + + + + +EOF + + +# ============================================================ +# PROMETHEUS CONFIG +# ============================================================ + +cat > "$BASE_DIR/add-to-prometheus-config.yml" <<'EOF' +scrape_configs: + - job_name: 'fester' + static_configs: + - targets: ['localhost:9100'] +EOF + + +# ============================================================ +# GRAFANA CONFIG +# ============================================================ + +cat > "$BASE_DIR/add-to-grafana-config.json" <<'EOF' +{ + "dashboard": { + "title": "Fester Cluster Overview" + } +} +EOF + + +# ============================================================ +# CLI TOOL (FULL FILE) +# ============================================================ + +mkdir -p "$BASE_DIR/cli" + +cat > "$BASE_DIR/cli/fester.py" <<'EOF' +#!/usr/bin/env python3 + +import argparse + +def main(): + parser = argparse.ArgumentParser() + sub = parser.add_subparsers(dest="cmd") + + build = sub.add_parser("build") + build.add_argument("project") + + node = sub.add_parser("node") + node.add_argument("action") + node.add_argument("target", nargs="*") + + args = parser.parse_args() + + if args.cmd == "build": + print("Building:", args.project) + + elif args.cmd == "node": + print("Node action:", args.action, args.target) + + else: + print("Fester CLI ready") + +if __name__ == "__main__": + main() +EOF + +chmod +x "$BASE_DIR/cli/fester.py" + + +# ============================================================ +# SIMPLE COCKPIT MANIFEST +# ============================================================ + +cat > "$BASE_DIR/manifest.json" <<'EOF' +{ + "version": 1, + "name": "fester", + "label": "Fester Cluster Control", + "entrypoint": "index.html" +} +EOF + + +# ============================================================ +# FINAL OUTPUT +# ============================================================ + +echo "" +echo "------------------------------------------------" +echo "✅ Fester installation complete" +echo "📍 Installed at: $BASE_DIR" +echo "" +echo "Next steps:" +echo " 1. Open Cockpit" +echo " 2. Select Fester module" +echo " 3. Open Live DAG" +echo "------------------------------------------------" diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..fbd6430 --- /dev/null +++ b/manifest.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "name": "fester", + "tools": { + "fester": { + "label": "Fester", + "path": "index.html" + } + } +} diff --git a/optimizer.py b/optimizer.py new file mode 100644 index 0000000..902caa1 --- /dev/null +++ b/optimizer.py @@ -0,0 +1,12 @@ +from prometheus_client import Gauge + +target_score_thermal = Gauge("fester_target_score_thermal", "Thermal score", ["target"]) +target_score_cost = Gauge("fester_target_score_cost", "Cost score", ["target"]) +target_score_instability = Gauge("fester_target_score_instability", "Instability score", ["target"]) + + +def export_scores(target, score): + + target_score_thermal.labels(target=target).set(score["thermal"]) + target_score_cost.labels(target=target).set(score["cost"]) + target_score_instability.labels(target=target).set(score["instability"]) diff --git a/project.schema.json b/project.schema.json new file mode 100644 index 0000000..5ecdc40 --- /dev/null +++ b/project.schema.json @@ -0,0 +1,170 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Fester Project Definition", + "type": "object", + "required": ["name", "source", "targets"], + "additionalProperties": false, + + "properties": { + + "name": { + "type": "string", + "description": "Human-readable project name" + }, + + "version": { + "type": "string", + "description": "Optional project version tag (release tracking)", + "default": "0.0.0" + }, + + "source": { + "type": "object", + "required": ["type", "url"], + "additionalProperties": false, + + "properties": { + + "type": { + "type": "string", + "enum": ["git", "hg", "svn", "cvs"], + "description": "Source control system type (normalized into snapshot)" + }, + + "url": { + "type": "string", + "description": "Repository URL or path for checkout/export" + }, + + "ref": { + "type": "string", + "description": "Optional branch/tag/revision reference (git branch, svn rev, hg changeset)", + "default": "HEAD" + } + } + }, + + "targets": { + "type": "object", + "description": "Build targets mapped to shell commands", + "additionalProperties": { + "type": "string" + } + }, + + "resources": { + "type": "object", + "description": "Optional resource hints for scheduler optimization", + + "properties": { + + "max_parallel_builds": { + "type": "integer", + "minimum": 1, + "maximum": 256, + "default": 64 + }, + + "thermal_priority": { + "type": "string", + "enum": ["low", "balanced", "high_safety"], + "default": "high_safety" + }, + + "preferred_nodes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional node names preferred for this project" + }, + + "avoid_nodes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Nodes to exclude from scheduling" + } + } + }, + + "build_env": { + "type": "object", + "description": "Environment variables injected into build runtime", + + "additionalProperties": { + "type": "string" + } + }, + + "artifacts": { + "type": "object", + "description": "Output packaging configuration", + + "properties": { + + "enabled": { + "type": "boolean", + "default": true + }, + + "format": { + "type": "string", + "enum": ["tar", "tar.gz", "tar.zst", "deb", "rpm"], + "default": "tar.zst" + }, + + "output_dir": { + "type": "string", + "default": "./dist" + }, + + "naming": { + "type": "string", + "description": "Artifact naming template", + "default": "{name}-{version}-{target}-{hash}" + } + } + }, + + "cache": { + "type": "object", + "description": "Build cache behavior control", + + "properties": { + + "enabled": { + "type": "boolean", + "default": true + }, + + "reuse_snapshots": { + "type": "boolean", + "default": true + }, + + "skip_if_unchanged": { + "type": "boolean", + "default": true + } + } + }, + + "logging": { + "type": "object", + "properties": { + + "verbose": { + "type": "boolean", + "default": true + }, + + "stream_to_ui": { + "type": "boolean", + "default": true + } + } + } + } +} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..6312395 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,177 @@ +[build-system] +requires = ["setuptools>=68", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "fester" +version = "0.3.0" +description = "Distributed, DAG-driven build execution system with real-time scheduling, observability, and deterministic replay" +readme = "README.md" +license = { text = "AGPL-3.0-or-later", file = "LICENSE" } +authors = [ + { name = "Fester Contributors" }, +] +requires-python = ">=3.12" +keywords = ["build", "distributed", "scheduler", "dag", "compile", "distcc", "observability"] +classifiers = [ + "Development Status :: 4 - Beta", + "Environment :: Console", + "Environment :: Web Environment", + "Framework :: FastAPI", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", + "Operating System :: POSIX :: Linux", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Software Development :: Build Tools", + "Topic :: System :: Distributed Computing", +] + +# Core runtime dependencies +dependencies = [ + "fastapi>=0.128", + "uvicorn[standard]>=0.30", + "websockets>=12", + "pydantic>=2", + "aiohttp>=3.9", + "minio>=7.2", + "prometheus-client>=0.20", + "PyYAML>=6", + "requests>=2.31", + "websocket-client>=1.7", +] + +[project.optional-dependencies] +# Install with: pip install -e ".[dev]" +dev = [ + "ruff>=0.5", + "mypy>=1.10", + "pytest>=8", + "pytest-asyncio>=0.23", + "httpx>=0.27", # for FastAPI TestClient + "respx>=0.21", # for mocking aiohttp in tests +] +# Install with: pip install -e ".[docker]" +docker = [ + "gunicorn>=22", +] + +[project.scripts] +# After `pip install -e .`, you can run `fester` from anywhere +fester = "cli.fester:main" + +[project.urls] +Homepage = "https://git.dcos.net/dcosnet/fester" +Repository = "https://git.dcos.net/dcosnet/fester" +Documentation = "https://git.dcos.net/dcosnet/fester/blob/main/README.md" +Issues = "https://git.dcos.net/dcosnet/fester/issues" + +# ------------------------------------------------------------ +# Setuptools package discovery +# ------------------------------------------------------------ +[tool.setuptools] +# We're not a pure-Python package — just expose the CLI + backend modules +py-modules = [] + +[tool.setuptools.packages.find] +where = ["."] +include = [ + "backend*", + "cli*", + "cockpit*", +] +exclude = [ + "tests*", + "docs*", + "scripts*", +] + +[tool.setuptools.package-data] +# Include non-Python files in the package +"*" = ["*.html", "*.css", "*.js", "*.yaml", "*.json", "*.md"] + +# ------------------------------------------------------------ +# Ruff (linter + formatter) +# ------------------------------------------------------------ +[tool.ruff] +line-length = 100 +target-version = "py312" +extend-exclude = [ + "docs", + "scripts/mock_agent.py", +] + +[tool.ruff.lint] +# Enable common rule sets +select = [ + "E", # pycodestyle errors + "W", # pycodestyle warnings + "F", # pyflakes + "I", # isort + "B", # flake8-bugbear + "C4", # flake8-comprehensions + "UP", # pyupgrade + "RUF", # ruff-specific +] +ignore = [ + "E501", # line too long (we use 100 but don't want to fail on it) + "B008", # do not perform function calls in argument defaults (FastAPI does this) + "B904", # raise from (we have a lot of legacy code) + "RUF001", # ambiguous unicode (we use emojis) + "RUF002", # ambiguous unicode in docstring + "RUF003", # ambiguous unicode in comment +] + +[tool.ruff.lint.per-file-ignores] +"__init__.py" = ["F401"] # re-exports +"cli/fester.py" = ["E402"] # module-level imports after argparse helpers + +[tool.ruff.format] +quote-style = "double" +indent-style = "space" + +# ------------------------------------------------------------ +# Mypy (type checking) +# ------------------------------------------------------------ +[tool.mypy] +python_version = "3.12" +warn_return_any = false # too noisy for this codebase +warn_unused_configs = true +disallow_untyped_defs = false # we have legacy untyped code +disallow_incomplete_defs = false +check_untyped_defs = true +disallow_untyped_decorators = false +no_implicit_optional = true +warn_redundant_casts = true +warn_unused_ignores = true +warn_no_return = true +warn_unreachable = true +strict_equality = true +show_error_codes = true + +[[tool.mypy.overrides]] +module = [ + "minio.*", + "aiohttp.*", + "websocket.*", + "prometheus_client.*", +] +ignore_missing_imports = true + +# ------------------------------------------------------------ +# Pytest +# ------------------------------------------------------------ +[tool.pytest.ini_options] +minversion = "8.0" +testpaths = ["tests"] +asyncio_mode = "auto" +filterwarnings = [ + "ignore::DeprecationWarning", + "ignore::PendingDeprecationWarning", +] +markers = [ + "slow: marks tests as slow (deselect with '-m \"not slow\"')", + "integration: marks tests that require external services (minio, etc.)", +] diff --git a/quickstart.md b/quickstart.md new file mode 100644 index 0000000..f014fd0 --- /dev/null +++ b/quickstart.md @@ -0,0 +1,320 @@ +# 🚀 Fester Quickstart + +**5 minutes to your first distributed build.** + +--- + +## 1. Prerequisites + +You need: +- **Python 3.12+** (`python3 --version`) +- **pip** (usually ships with Python) +- **git** (to clone the repo) +- **curl** (to test the API) + +Optional (features activate automatically when installed): +- `tmux` — live action output viewer +- `mosh` + `ssh` — "Shell into node" UI button +- `qemu-utils` + `rsync` — QCOW2 workspace snapshots +- `btrfs-progs` — CoW reflink snapshots (requires btrfs partition) + +On Ubuntu/Debian: +```bash +sudo apt install python3 python3-pip git curl tmux mosh openssh-client qemu-utils rsync +``` + +## 2. Clone + Bootstrap + +```bash +git clone https://git.dcos.net/dcosnet/fester.git +cd fester + +# One-shot: creates venv, installs Python deps, sets up config +./bootstrap.sh +``` + +The bootstrap script will: +1. Create a Python virtualenv at `.venv/` +2. Install all Python dependencies (FastAPI, uvicorn, websockets, minio, aiohttp, etc.) +3. Create a default `config.yaml` if one doesn't exist +4. Initialize the SQLite database at `~/.fester/fester.db` +5. Print next steps + +## 3. Start the Backend + +```bash +./run.sh +``` + +You should see: +``` +🧠 Fester backend starting... + Config: config.yaml + DB: /home/user/.fester/fester.db + URL: http://0.0.0.0:8080 + Press Ctrl+C to stop +INFO: Uvicorn running on http://0.0.0.0:8080 +``` + +Verify it's up: +```bash +curl http://localhost:8080/api/health +# → {"status":"ok","version":"0.2.0","bus_subscribers":6,...} +``` + +## 4. Open the UI + +Open **http://localhost:8080** in your browser. + +You'll see the **Dashboard** with: +- **Cluster panel** (left): node list with heat bars, job counters, policy dropdowns, probe buttons +- **Live Event Stream** (center): real-time events with type-filter chips +- **Quick Actions** (right): build form, release form, target toggles, pipeline controls + +The topbar shows a live health indicator (version + WS clients + builds count + timeline events). + +## 5. Trigger Your First Build + +### Via the UI + +In the **Quick Actions** panel (right side of the dashboard): +1. **Build Command**: `make -j$(nproc)` (or any shell command) +2. **Working Directory**: `/tmp/test-build` (or your project dir) +3. Click **▶ Run Build** + +Watch the **Live Event Stream** populate with `task_update` events as actions execute. + +### Via the CLI + +```bash +# Activate the venv first (or use the full path) +source .venv/bin/activate + +# Kick off a build +fester build --cmd "make -j4" --dir /tmp/test-build --watch + +# The --watch flag streams events as they happen +``` + +### Via curl + +```bash +curl -X POST http://localhost:8080/api/build \ + -H "Content-Type: application/json" \ + -d '{"cmd":"make -j4","dir":"/tmp/test-build","target":"linux-gnu"}' +``` + +## 6. Explore the UI + +### Live DAG (`/ui/live_dag.html`) + +Real-time visualization of the build DAG. Each action becomes a node; dependency edges are drawn as arrows. Node colors: +- 🟡 **yellow border** = running +- 🟢 **green border** = done +- 🔴 **red border** = failed +- 🔵 **blue border** = cache hit +- 🟠 **yellow outline** = critical path + +Click any node to inspect its details. Use the search box to filter, and the toggles to show/hide critical-path and failed nodes. + +### Replay (`/ui/replay.html`) + +Scrub through past builds event-by-event: +1. Click **Load Replay** to snapshot the current timeline +2. Use the timeline slider, or **▶ Play** / **⏭ Step** / **⏮ Back** buttons +3. Jump to the end with **⏭ End** to see the full DAG +4. Click any node to see its state, deps, scheduler decision, and raw event + +### Sessions (`/ui/sessions.html`) + +Build history + active tmux sessions + qcow2 snapshots: +- **Replay sessions** — click "▶ Open in Replay" to scrub through any past session +- **Recent Builds** — cancel running builds, or replay completed ones +- **Active Action Sessions** — view live tmux output of running actions +- **Storage Snapshots** — list of qcow2 freeze images + +### Metrics (`/ui/metrics.html`) + +Live cluster metrics with two trend charts (heat + jobs) and per-node cards showing CPU/memory/heat/jobs/instability bars. Refreshes every 2 seconds. + +### Cause Graph (`/ui/cause.html`) + +Post-hoc reasoning: enter a node name, see its causal chain as a radial graph. The **Blast Radius** panel computes the downstream impact if any action fails. + +### Timeline (`/ui/timeline.html`) + +Per-node event drill-down: pick a node from the left, see every event that touched it. + +### Debugger (`/ui/debugger.html`) + +Step-through execution control: pause/resume/step a running build. Shows the live tmux timeline and the next action preview. + +## 7. Configure Your Cluster + +Edit `config.yaml`: + +```yaml +master: + name: fester-master + role: control + +nodes: + - name: x99-v3 + host: 192.168.1.10 + max_jobs: 24 + - name: x99-v4 + host: 192.168.1.11 + max_jobs: 30 + - name: rpi-1 + host: 192.168.1.20 + max_jobs: 4 + +projects: + - name: linux-tool + repo: https://forgejo.local/linux-tool.git + targets: + debian: "make clean && make debian" + arch: "make clean && make arch" +``` + +Restart `./run.sh` to pick up changes. + +## 8. Set Node Policies + +Via the UI (Dashboard → node row → policy dropdown): +- **preferred** — scheduler gives this node a +20 score bonus +- **neutral** — default +- **avoid** — scheduler subtracts 50 from this node's score + +Via the CLI: +```bash +fester node set-policy x99-v3 preferred +fester node set-policy rpi-1 avoid +``` + +Via the API: +```bash +curl -X POST http://localhost:8080/api/nodes/x99-v3/policy \ + -H "Content-Type: application/json" \ + -d '{"policy":"preferred"}' +``` + +## 9. Probe Node Agents (Optional) + +If you run a fester-agent on each node (port 8787), Fester will probe it every 4 seconds for real metrics instead of drifting synthetic values. + +A mock agent for testing: +```bash +python3 scripts/mock_agent.py 8787 & +``` + +Manual probe via the UI (Dashboard → node row → "Probe" button) or CLI: +```bash +fester node probe x99-v3 +fester node probe-all +``` + +## 10. Shell Into a Node + +Click the **⌘ Shell** button next to any node in the Dashboard. Fester builds the correct mosh or ssh command and copies it to your clipboard: + +```bash +mosh --ssh "ssh -p 2222 -i ~/.ssh/id_ed25519" build@192.168.1.10 +``` + +Paste into your terminal to attach. + +## 11. Run a Release Build + +Via the UI (Dashboard → Quick Actions → Run Release Build) or CLI: +```bash +fester release --repo https://forgejo.local/project.git --project my-proj +``` + +This kicks off a longer release-shaped pipeline: `fetch_source → configure → build_kernel → build_modules → package → release`. + +## 12. Investigate a Failure + +When a build fails: + +1. **Sessions page** → find the failed build → click **▶ Replay** +2. In Replay, scrub to the failed action (red node) +3. Click the failed node → see the failure reason in the inspector +4. Switch to **Cause Graph** page → enter the node name → see the causal chain +5. Use **Blast Radius** to see which downstream actions were impacted + +Via the CLI: +```bash +# Start a replay session +SID=$(curl -sX POST http://localhost:8080/replay/start \ + -H "Content-Type: application/json" \ + -d '{"journal":"latest"}' | jq -r .session_id) + +# Run autopsy on the failed action +fester autopsy $SID build_fedora +``` + +## 🎯 Next Steps + +- Read the **[CHEATSHEET.md](CHEATSHEET.md)** for the operator survival guide +- Browse the **[full API](http://localhost:8080/docs)** (FastAPI auto-docs) +- Set up **Prometheus + Grafana** using the configs in `add-to-prometheus-config.yml` and `add-to-grafana-config.json` +- Install **tmux**, **mosh**, and **qemu-utils** to activate the advanced features +- Configure **MinIO** for distributed cache (set the endpoint in `backend/cache/minio_cache.py`) + +## 🆘 Troubleshooting + +### Backend won't start + +```bash +# Check the log +tail -f /tmp/fester_backend.log + +# Common issues: +# - "No module named 'fastapi'" → run ./bootstrap.sh again +# - "Permission denied: /var/lib/fester" → use FESTER_DB_PATH=/tmp/fester.db +# - "Address already in use" → another process is on port 8080 +``` + +### UI shows "CONNECTING" forever + +The WebSocket can't reach the backend. Check: +```bash +curl http://localhost:8080/api/health +# If this fails, the backend isn't running +``` + +### No events in the Live Event Stream + +Trigger a build: +```bash +curl -X POST http://localhost:8080/api/build \ + -H "Content-Type: application/json" \ + -d '{"cmd":"demo","dir":"/tmp"}' +``` + +### Nodes show 0° heat / 0 jobs + +No agent is running on the nodes. Either: +- Start a mock agent: `python3 scripts/mock_agent.py 8787` +- Or accept synthetic drift (default behavior when agents are unreachable) + +### Build fails immediately + +Check the build details: +```bash +fester builds +fester build-info +``` + +Common causes: +- Working directory doesn't exist → create it first +- Command not found → check PATH +- Permission denied → check file permissions + +## 📚 More Info + +- **[README.md](README.md)** — full project overview +- **[CHEATSHEET.md](CHEATSHEET.md)** — operator cheatsheet +- **[CONTRIBUTING.md](CONTRIBUTING.md)** — how to contribute +- **[API docs](http://localhost:8080/docs)** — interactive OpenAPI spec diff --git a/release.js b/release.js new file mode 100644 index 0000000..480be98 --- /dev/null +++ b/release.js @@ -0,0 +1,18 @@ +document.addEventListener("DOMContentLoaded", function () { + + function runRelease() { + + const repo = document.getElementById("repo").value; + + cockpit.spawn( + ["python3", "/usr/share/cockpit/fester/backend/release.py", repo], + { superuser: "require" } + ) + .stream(function (data) { + document.getElementById("release_output").textContent += data; + }); + } + + document.getElementById("run_release").addEventListener("click", runRelease); + +}); diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..17a85a6 --- /dev/null +++ b/run.sh @@ -0,0 +1,168 @@ +#!/usr/bin/env bash +# ============================================================ +# Fester Backend Runner +# ============================================================ +# Starts the FastAPI backend with sensible defaults. +# +# Usage: +# ./run.sh # default: host=0.0.0.0, port=8080 +# ./run.sh --dev # dev mode with auto-reload +# ./run.sh --mock-agent # also start a mock fester-agent on :8787 +# ./run.sh --port 9000 # custom port +# ./run.sh --help +# ============================================================ +set -euo pipefail + +# Resolve repo root +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$REPO_ROOT" + +# Defaults +HOST="${FESTER_HOST:-0.0.0.0}" +PORT="${FESTER_PORT:-8080}" +DEV_MODE=0 +START_MOCK_AGENT=0 + +# Parse args +while [[ $# -gt 0 ]]; do + case "$1" in + --dev) + DEV_MODE=1 + shift + ;; + --mock-agent) + START_MOCK_AGENT=1 + shift + ;; + --port) + PORT="$2" + shift 2 + ;; + --host) + HOST="$2" + shift 2 + ;; + --help|-h) + cat </dev/null; then + echo "❌ FastAPI not installed. Run ./bootstrap.sh first." + exit 1 +fi + +# ------------------------------------------------------------ +# Optionally start a mock fester-agent +# ------------------------------------------------------------ +MOCK_PID="" +if [ "$START_MOCK_AGENT" = "1" ]; then + echo "🤖 Starting mock fester-agent on :8787..." + MOCK_SCRIPT="$REPO_ROOT/scripts/mock_agent.py" + if [ ! -f "$MOCK_SCRIPT" ]; then + # Fall back to the global scripts dir + MOCK_SCRIPT="/home/z/my-project/scripts/mock_agent.py" + fi + if [ -f "$MOCK_SCRIPT" ]; then + python3 "$MOCK_SCRIPT" 8787 & + MOCK_PID=$! + echo " ✓ Mock agent started (PID $MOCK_PID)" + sleep 1 + else + echo " ⚠ mock_agent.py not found — skipping" + fi +fi + +# ------------------------------------------------------------ +# Print startup banner +# ------------------------------------------------------------ +CONFIG_PATH="${FESTER_CONFIG:-config.yaml}" +DB_PATH="${FESTER_DB_PATH:-$HOME/.fester/fester.db}" + +echo "" +echo "🧠 Fester backend starting..." +echo " Config: $CONFIG_PATH" +echo " DB: $DB_PATH" +echo " URL: http://$HOST:$PORT" +echo " Mode: $([ "$DEV_MODE" = "1" ] && echo "development (auto-reload)" || echo "production")" +echo " Drift: $([ "${FESTER_NO_DRIFT:-0}" = "1" ] && echo "disabled" || echo "enabled (fallback)")" +echo " Autobuild: $([ "${FESTER_AUTOBUILD:-0}" = "1" ] && echo "enabled" || echo "disabled")" +echo "" +echo " Press Ctrl+C to stop" +echo " UI: http://localhost:$PORT" +echo " API docs: http://localhost:$PORT/docs" +echo " Health: http://localhost:$PORT/api/health" +echo "" + +# ------------------------------------------------------------ +# Cleanup on exit +# ------------------------------------------------------------ +cleanup() { + echo "" + echo "🛑 Shutting down..." + if [ -n "$MOCK_PID" ]; then + kill "$MOCK_PID" 2>/dev/null || true + echo " ✓ Mock agent stopped" + fi + echo " ✓ Backend stopped" +} +trap cleanup EXIT INT TERM + +# ------------------------------------------------------------ +# Start uvicorn +# ------------------------------------------------------------ +if [ "$DEV_MODE" = "1" ]; then + exec python3 -m uvicorn backend.main:app \ + --host "$HOST" \ + --port "$PORT" \ + --reload \ + --log-level info +else + exec python3 -m uvicorn backend.main:app \ + --host "$HOST" \ + --port "$PORT" \ + --log-level info +fi diff --git a/scheduler/optimizer.py b/scheduler/optimizer.py new file mode 100644 index 0000000..4b70ab0 --- /dev/null +++ b/scheduler/optimizer.py @@ -0,0 +1,96 @@ +# scheduler/optimizer.py + +def choose_best_node(nodes, action, intelligence=None): + + best_node = None + best_score = -10**9 + + ranked = [] + + # ----------------------------- + # SCORE EACH NODE + # ----------------------------- + for node in nodes: + + breakdown = { + "cpu": 0, + "thermal": 0, + "policy": 0, + "intelligence": 0, + "final": 0 + } + + # CPU availability + cpu_score = (100 - node.get("cpu_load", 0)) + breakdown["cpu"] = cpu_score + + # Thermal penalty + thermal_penalty = node.get("temp", 0) + breakdown["thermal"] = -thermal_penalty + + # Policy rules + policy_score = 0 + + if node.get("policy") == "preferred": + policy_score += 20 + elif node.get("policy") == "avoid": + policy_score -= 50 + + breakdown["policy"] = policy_score + + # Intelligence feedback + intel_score = 0 + + if intelligence: + stats = intelligence.profiles.get(action["target"]) + + if stats: + latest = stats.finalize() + + intel_score -= latest["score"].get("thermal", 0) * 0.3 + intel_score -= latest["score"].get("instability", 0) * 0.2 + + breakdown["intelligence"] = intel_score + + # Final score + final = cpu_score + policy_score + intel_score + breakdown["thermal"] + breakdown["final"] = final + + ranked.append({ + "node": node, + "score": breakdown + }) + + if final > best_score: + best_score = final + best_node = node + + # ----------------------------- + # SORT FOR EXPLANATION + # ----------------------------- + ranked_sorted = sorted( + ranked, + key=lambda x: x["score"]["final"], + reverse=True + ) + + # ----------------------------- + # EXPLANATION OBJECT + # ----------------------------- + explanation = { + "selected": best_node["name"] if best_node else None, + "top_candidates": [ + { + "node": r["node"]["name"], + "final_score": r["score"]["final"], + "breakdown": r["score"] + } + for r in ranked_sorted[:5] + ] + } + + return { + "best_node": best_node, + "ranked": ranked, + "explanation": explanation + } diff --git a/style.css b/style.css new file mode 100644 index 0000000..0bb89a2 --- /dev/null +++ b/style.css @@ -0,0 +1,424 @@ +/* ============================================================ + Fester UI — Shared Design System + Used by: index.html, ui/live_dag.html, ui/replay.html, + cockpit/fester-module/ui.html + ============================================================ */ + +/* ---------- Design Tokens ---------- */ +:root { + /* surfaces */ + --bg-0: #07090d; + --bg-1: #0b0f14; + --bg-2: #0e141d; + --bg-3: #131c28; + --bg-4: #1a2432; + + /* lines */ + --line: #1f2a38; + --line-2: #2c3b4d; + + /* text */ + --fg-0: #f4f6fa; + --fg-1: #d0d6df; + --fg-2: #8a95a5; + --fg-3: #5a6573; + + /* status */ + --ok: #66bb6a; + --ok-bg: rgba(102, 187, 106, 0.12); + --warn: #ffb300; + --warn-bg: rgba(255, 179, 0, 0.12); + --err: #ef5350; + --err-bg: rgba(239, 83, 80, 0.12); + --info: #42a5f5; + --info-bg: rgba(66, 165, 245, 0.12); + --accent: #ffd54f; + --accent-bg: rgba(255, 213, 79, 0.12); + + /* heat ramp */ + --heat-0: #2ecc71; + --heat-1: #f1c40f; + --heat-2: #e67e22; + --heat-3: #e74c3c; + + /* layout */ + --radius: 6px; + --radius-lg: 10px; + --gap: 12px; + --pad: 12px; + --topbar-h: 48px; + + /* type */ + --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-mono: "JetBrains Mono", "SF Mono", "Cascadia Code", Menlo, Consolas, monospace; +} + +/* ---------- Reset ---------- */ +*, *::before, *::after { box-sizing: border-box; } +html, body { margin: 0; padding: 0; height: 100%; } +body { + font-family: var(--font-sans); + font-size: 13px; + color: var(--fg-1); + background: var(--bg-1); + line-height: 1.45; + -webkit-font-smoothing: antialiased; +} +a { color: var(--info); text-decoration: none; } +a:hover { text-decoration: underline; } +pre, code, .mono { font-family: var(--font-mono); } +button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; } +h1, h2, h3, h4 { margin: 0 0 8px; font-weight: 600; color: var(--fg-0); } +h1 { font-size: 18px; } +h2 { font-size: 15px; } +h3 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.6px; color: var(--fg-2); } +hr { border: 0; border-top: 1px solid var(--line); margin: 12px 0; } + +/* ---------- Topbar / Shell ---------- */ +.topbar { + height: var(--topbar-h); + background: var(--bg-2); + border-bottom: 1px solid var(--line); + display: flex; + align-items: center; + padding: 0 16px; + gap: 16px; + position: sticky; + top: 0; + z-index: 50; +} +.topbar .brand { + font-weight: 700; + color: var(--fg-0); + letter-spacing: 0.5px; + display: flex; + align-items: center; + gap: 8px; +} +.topbar .brand .mark { + width: 22px; height: 22px; + border-radius: 4px; + background: linear-gradient(135deg, var(--info), var(--accent)); + display: inline-block; +} +.topbar nav { display: flex; gap: 4px; flex: 1; } +.topbar nav a { + color: var(--fg-2); + padding: 6px 12px; + border-radius: var(--radius); + font-size: 12px; + text-decoration: none; + transition: background 0.15s, color 0.15s; +} +.topbar nav a:hover { background: var(--bg-3); color: var(--fg-0); text-decoration: none; } +.topbar nav a.active { background: var(--bg-4); color: var(--fg-0); } + +/* connection pill */ +.conn { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 4px 10px; + border-radius: 999px; + background: var(--bg-3); + border: 1px solid var(--line-2); + font-size: 11px; + font-family: var(--font-mono); + color: var(--fg-2); +} +.conn .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--fg-3); } +.conn.connecting .dot { background: var(--warn); animation: pulse 1.2s infinite; } +.conn.online .dot { background: var(--ok); box-shadow: 0 0 6px var(--ok); } +.conn.offline .dot { background: var(--err); } +@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } } + +/* ---------- Buttons ---------- */ +button, .btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 6px; + padding: 6px 12px; + background: var(--bg-4); + color: var(--fg-1); + border: 1px solid var(--line-2); + border-radius: var(--radius); + cursor: pointer; + transition: background 0.12s, border-color 0.12s, transform 0.05s; + font-size: 12px; + white-space: nowrap; +} +button:hover, .btn:hover { background: var(--bg-3); border-color: #3a4a5e; } +button:active, .btn:active { transform: translateY(1px); } +button:disabled { opacity: 0.4; cursor: not-allowed; } +button.primary { background: var(--info); color: #061018; border-color: var(--info); } +button.primary:hover { filter: brightness(1.1); } +button.danger { background: var(--err); color: #1a0606; border-color: var(--err); } +button.ghost { background: transparent; } +button.full { width: 100%; } + +/* ---------- Form inputs ---------- */ +input[type="text"], input[type="number"], input[type="search"], +input[type="url"], input[type="password"], select, textarea { + width: 100%; + padding: 7px 10px; + background: var(--bg-0); + border: 1px solid var(--line-2); + border-radius: var(--radius); + color: var(--fg-0); + font-family: var(--font-mono); + font-size: 12px; + outline: none; + transition: border-color 0.12s; +} +input:focus, select:focus, textarea:focus { border-color: var(--info); } +label { display: block; font-size: 11px; color: var(--fg-2); margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.4px; } +.field { margin-bottom: 10px; } + +/* range slider */ +input[type="range"] { + width: 100%; + -webkit-appearance: none; + background: transparent; + height: 24px; +} +input[type="range"]::-webkit-slider-runnable-track { + height: 4px; + background: var(--bg-4); + border-radius: 2px; +} +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 14px; height: 14px; + border-radius: 50%; + background: var(--info); + margin-top: -5px; + cursor: pointer; +} + +/* ---------- Panels / Cards ---------- */ +.panel { + background: var(--bg-2); + border: 1px solid var(--line); + border-radius: var(--radius-lg); + overflow: hidden; +} +.panel > .head { + padding: 10px 14px; + border-bottom: 1px solid var(--line); + display: flex; + align-items: center; + justify-content: space-between; + background: var(--bg-3); +} +.panel > .head h3 { margin: 0; } +.panel > .body { padding: var(--pad); } + +/* ---------- Badges / Pills ---------- */ +.badge { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 2px 8px; + border-radius: 999px; + font-size: 10px; + font-family: var(--font-mono); + text-transform: uppercase; + letter-spacing: 0.5px; + border: 1px solid var(--line-2); + background: var(--bg-3); + color: var(--fg-2); +} +.badge.ok { color: var(--ok); background: var(--ok-bg); border-color: rgba(102,187,106,0.3); } +.badge.warn { color: var(--warn); background: var(--warn-bg); border-color: rgba(255,179,0,0.3); } +.badge.err { color: var(--err); background: var(--err-bg); border-color: rgba(239,83,80,0.3); } +.badge.info { color: var(--info); background: var(--info-bg); border-color: rgba(66,165,245,0.3); } +.badge.accent { color: var(--accent); background: var(--accent-bg); border-color: rgba(255,213,79,0.3); } + +/* ---------- Tables ---------- */ +table { width: 100%; border-collapse: collapse; font-size: 12px; } +th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); } +th { color: var(--fg-2); font-weight: 500; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; } +tbody tr:hover { background: var(--bg-3); } + +/* ---------- Lists ---------- */ +.list { list-style: none; padding: 0; margin: 0; } +.list > li { padding: 8px 10px; border-bottom: 1px solid var(--line); } +.list > li:last-child { border-bottom: 0; } + +/* ---------- Event Stream ---------- */ +.stream { + font-family: var(--font-mono); + font-size: 11px; + height: 100%; + overflow-y: auto; + padding: 8px; + background: var(--bg-0); + border-radius: var(--radius); + border: 1px solid var(--line); +} +.stream .row { + padding: 3px 6px; + border-radius: 3px; + display: grid; + grid-template-columns: 70px 80px 1fr; + gap: 8px; + align-items: baseline; + border-bottom: 1px dashed rgba(255,255,255,0.04); +} +.stream .row:hover { background: var(--bg-2); } +.stream .ts { color: var(--fg-3); } +.stream .tag { font-weight: 600; } +.stream .tag.node { color: var(--info); } +.stream .tag.pipeline { color: var(--warn); } +.stream .tag.failure { color: var(--err); } +.stream .tag.cache { color: var(--accent); } +.stream .tag.debug { color: var(--fg-2); } +.stream .tag.policy { color: #ab47bd; } +.stream .tag.session { color: var(--ok); } +.stream .msg { color: var(--fg-1); word-break: break-word; } + +/* ---------- DAG Node (shared) ---------- */ +.dag-node { + position: absolute; + min-width: 120px; + padding: 6px 10px; + font-size: 11px; + text-align: center; + border-radius: var(--radius); + background: var(--bg-3); + border: 1px solid var(--line-2); + color: var(--fg-0); + cursor: pointer; + user-select: none; + transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s; + z-index: 2; +} +.dag-node:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.4); } +.dag-node .label { font-weight: 600; } +.dag-node .meta { font-family: var(--font-mono); font-size: 10px; color: var(--fg-2); margin-top: 2px; } + +.dag-node.pending { border-color: var(--fg-3); } +.dag-node.running { border-color: var(--warn); box-shadow: 0 0 12px rgba(255,179,0,0.35); } +.dag-node.done { border-color: var(--ok); } +.dag-node.failed { border-color: var(--err); background: var(--err-bg); } +.dag-node.cache { border-color: var(--info); } +.dag-node.critical { outline: 2px solid var(--accent); outline-offset: 2px; } +.dag-node.heat { box-shadow: 0 0 0 2px var(--heat-2); } +.dag-node.active { outline: 2px solid var(--accent); outline-offset: 2px; } + +/* SVG edges */ +svg.edges { + position: absolute; + top: 0; left: 0; + width: 100%; height: 100%; + pointer-events: none; + z-index: 1; +} +svg.edges line, svg.edges path { + stroke: var(--line-2); + stroke-width: 1.5; + fill: none; +} +svg.edges line.critical, svg.edges path.critical { + stroke: var(--accent); + stroke-width: 2.5; +} +svg.edges marker path { fill: var(--line-2); stroke: none; } + +/* ---------- Inspector / JSON viewer ---------- */ +pre.json { + margin: 0; + padding: 10px; + background: var(--bg-0); + border-radius: var(--radius); + border: 1px solid var(--line); + font-family: var(--font-mono); + font-size: 11px; + color: var(--fg-1); + overflow: auto; + white-space: pre-wrap; + word-break: break-word; +} + +/* ---------- Scrollbars ---------- */ +::-webkit-scrollbar { width: 8px; height: 8px; } +::-webkit-scrollbar-track { background: var(--bg-0); } +::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 4px; } +::-webkit-scrollbar-thumb:hover { background: #3a4a5e; } + +/* ---------- Utility ---------- */ +.row { display: flex; gap: var(--gap); } +.col { display: flex; flex-direction: column; gap: var(--gap); } +.flex-1 { flex: 1; } +.grow { flex-grow: 1; } +.muted { color: var(--fg-2); } +.dim { color: var(--fg-3); } +.right { text-align: right; } +.center { text-align: center; } +.mono { font-family: var(--font-mono); } +.nowrap { white-space: nowrap; } +.hidden { display: none !important; } +.spacer { flex: 1; } + +/* heat meter */ +.heat-meter { + height: 6px; + border-radius: 3px; + background: linear-gradient(90deg, var(--heat-0) 0%, var(--heat-1) 50%, var(--heat-2) 80%, var(--heat-3) 100%); + position: relative; +} +.heat-meter::after { + content: ""; + position: absolute; + top: -2px; bottom: -2px; + left: var(--heat, 0%); + width: 2px; + background: var(--fg-0); +} + +/* progress bar */ +.progress { + height: 8px; + background: var(--bg-0); + border-radius: 4px; + overflow: hidden; + border: 1px solid var(--line); +} +.progress > .bar { + height: 100%; + background: linear-gradient(90deg, var(--info), var(--ok)); + transition: width 0.3s ease; +} + +/* toasts */ +#toasts { + position: fixed; + bottom: 16px; + right: 16px; + z-index: 1000; + display: flex; + flex-direction: column; + gap: 8px; + max-width: 360px; +} +#toasts .toast { + background: var(--bg-3); + border: 1px solid var(--line-2); + border-left: 3px solid var(--info); + border-radius: var(--radius); + padding: 10px 14px; + font-size: 12px; + box-shadow: 0 8px 24px rgba(0,0,0,0.5); + animation: slide-in 0.2s ease; +} +#toasts .toast.ok { border-left-color: var(--ok); } +#toasts .toast.err { border-left-color: var(--err); } +#toasts .toast.warn { border-left-color: var(--warn); } +@keyframes slide-in { from { transform: translateX(20px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } + +/* responsive */ +@media (max-width: 900px) { + .topbar nav a { padding: 6px 8px; font-size: 11px; } + .topbar .brand .label { display: none; } +} diff --git a/ui/app.js b/ui/app.js new file mode 100644 index 0000000..370fcde --- /dev/null +++ b/ui/app.js @@ -0,0 +1,314 @@ +/* ============================================================ + Fester UI — Shared application shell & utilities + Used by: index.html, ui/live_dag.html, ui/replay.html + Exposes a single global: window.Fester + ============================================================ */ + +(function () { + 'use strict'; + + const Fester = { + ws: null, + wsUrl: (location.protocol === 'https:' ? 'wss://' : 'ws://') + location.host + '/ws', + wsDebuggerUrl: (location.protocol === 'https:' ? 'wss://' : 'ws://') + location.host + '/ws-debugger', + wsTargetsUrl: (location.protocol === 'https:' ? 'wss://' : 'ws://') + location.host + '/ws-targets', + wsState: 'connecting', + _subs: new Set(), + _reconnectTimer: null, + _reconnectDelay: 800, + }; + + /* ---------- Event subscription ---------- + callback(event) — event is the parsed JSON object from /ws + returns an unsubscribe function */ + Fester.subscribe = function (cb) { + Fester._subs.add(cb); + return () => Fester._subs.delete(cb); + }; + + function dispatch(event) { + Fester._subs.forEach(cb => { + try { cb(event); } catch (e) { console.error('subscriber error', e); } + }); + } + + /* ---------- WebSocket with auto-reconnect ---------- */ + function setConnState(state) { + Fester.wsState = state; + document.querySelectorAll('[data-conn]').forEach(el => { + el.classList.remove('online', 'offline', 'connecting'); + el.classList.add(state); + const txt = el.querySelector('[data-conn-text]'); + if (txt) txt.textContent = state.toUpperCase(); + }); + } + + function connect() { + setConnState('connecting'); + try { + const ws = new WebSocket(Fester.wsUrl); + Fester.ws = ws; + + ws.onopen = () => { + setConnState('online'); + Fester._reconnectDelay = 800; + Fester.toast('Connected to Fester event stream', 'ok'); + }; + + ws.onmessage = (msg) => { + try { + const event = JSON.parse(msg.data); + dispatch(event); + } catch (e) { + console.error('bad ws payload', e, msg.data); + } + }; + + ws.onerror = (e) => { + console.warn('ws error', e); + }; + + ws.onclose = () => { + setConnState('offline'); + if (!Fester._reconnectTimer) { + Fester._reconnectTimer = setTimeout(() => { + Fester._reconnectTimer = null; + connect(); + }, Fester._reconnectDelay); + Fester._reconnectDelay = Math.min(Fester._reconnectDelay * 1.6, 8000); + } + }; + } catch (e) { + setConnState('offline'); + console.error('ws connect failed', e); + } + } + + Fester.connect = connect; + + Fester.send = function (obj) { + if (Fester.ws && Fester.ws.readyState === WebSocket.OPEN) { + Fester.ws.send(JSON.stringify(obj)); + return true; + } + return false; + }; + + /* ---------- REST helpers ---------- */ + Fester.api = async function (path, opts = {}) { + const res = await fetch(path, { + headers: { 'Content-Type': 'application/json' }, + ...opts, + }); + if (!res.ok) throw new Error(`${res.status} ${res.statusText}`); + const ct = res.headers.get('content-type') || ''; + return ct.includes('application/json') ? res.json() : res.text(); + }; + + /* ---------- State → color helpers (mirrors backend fester.js logic) ---------- */ + Fester.heatColor = function (heat) { + if (heat == null) return 'var(--fg-3)'; + if (heat < 30) return 'var(--heat-0)'; + if (heat < 60) return 'var(--heat-1)'; + if (heat < 80) return 'var(--heat-2)'; + return 'var(--heat-3)'; + }; + + Fester.stateColor = function (state) { + switch ((state || '').toLowerCase()) { + case 'done': case 'ok': case 'success': return 'var(--ok)'; + case 'running': case 'active': return 'var(--warn)'; + case 'failed': case 'error': return 'var(--err)'; + case 'cache': case 'hit': return 'var(--info)'; + default: return 'var(--fg-3)'; + } + }; + + Fester.stateBadge = function (state) { + const s = (state || 'pending').toLowerCase(); + const map = { + done: 'ok', ok: 'ok', success: 'ok', + running: 'warn', active: 'warn', + failed: 'err', error: 'err', + cache: 'info', hit: 'info', + pending: '', queued: '', + }; + const cls = map[s] || ''; + return `${state || 'pending'}`; + }; + + /* ---------- Toasts ---------- */ + Fester.toast = function (msg, kind = 'info', ms = 3200) { + let host = document.getElementById('toasts'); + if (!host) { + host = document.createElement('div'); + host.id = 'toasts'; + document.body.appendChild(host); + } + const el = document.createElement('div'); + el.className = `toast ${kind}`; + el.textContent = msg; + host.appendChild(el); + setTimeout(() => { + el.style.transition = 'opacity 0.3s'; + el.style.opacity = '0'; + setTimeout(() => el.remove(), 300); + }, ms); + }; + + /* ---------- Time formatting ---------- */ + Fester.fmtTime = function (ts) { + if (!ts) return '—'; + const d = new Date(ts * 1000 || ts); + const pad = n => String(n).padStart(2, '0'); + return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`; + }; + + Fester.fmtRel = function (ts) { + if (!ts) return '—'; + const diff = Math.max(0, (Date.now() - (ts * 1000 || ts)) / 1000); + if (diff < 60) return Math.floor(diff) + 's ago'; + if (diff < 3600) return Math.floor(diff / 60) + 'm ago'; + return Math.floor(diff / 3600) + 'h ago'; + }; + + /* ---------- Topbar shell ---------- + Injects shared topbar so every page has consistent nav + WS status. + Call Fester.mountShell('dashboard') etc. */ + Fester.mountShell = function (active) { + const pages = [ + { id: 'dashboard', href: '/index.html', label: 'Dashboard' }, + { id: 'live', href: '/ui/live_dag.html', label: 'Live DAG' }, + { id: 'replay', href: '/ui/replay.html', label: 'Replay' }, + { id: 'sessions', href: '/ui/sessions.html', label: 'Sessions' }, + { id: 'metrics', href: '/ui/metrics.html', label: 'Metrics' }, + { id: 'cause', href: '/ui/cause.html', label: 'Cause Graph' }, + { id: 'timeline', href: '/ui/timeline.html', label: 'Timeline' }, + { id: 'debugger', href: '/ui/debugger.html', label: 'Debugger' }, + ]; + const links = pages.map(p => + `${p.label}` + ).join(''); + + const shell = document.createElement('div'); + shell.className = 'topbar'; + shell.innerHTML = ` +
+ + FESTER +
+ +
+ + CONNECTING +
+
+ +
+ `; + document.body.prepend(shell); + + // Start health polling + Fester._startHealthPolling(); + }; + + /* ---------- Health polling ---------- */ + Fester._healthTimer = null; + Fester._startHealthPolling = function () { + if (Fester._healthTimer) return; + const tick = async () => { + try { + const h = await Fester.api('/api/health'); + const el = document.querySelector('[data-health]'); + if (el) { + const subs = h.bus_subscribers || 0; + const ws = h.ws_clients || 0; + const builds = h.builds_known || 0; + const events = h.timeline_events || 0; + el.innerHTML = ` + + v${h.version} + · + ${ws}ws + · + ${builds}b + · + ${events}e + `; + el.style.color = 'var(--fg-1)'; + } + } catch (e) { + const el = document.querySelector('[data-health]'); + if (el) { + el.innerHTML = `unreachable`; + } + } + }; + tick(); + Fester._healthTimer = setInterval(tick, 5000); + }; + + /* ---------- FesterTargets global ---------- + The missing API referenced by live_dag.html. + Maintains an in-memory snapshot of nodes + edges, + notifies subscribers on update. */ + const snapshot = { nodes: [], edges: [], byId: {} }; + const targetSubs = new Set(); + + Fester.targets = { + get() { return snapshot; }, + + onUpdate(cb) { + targetSubs.add(cb); + // immediately emit current snapshot + try { cb(snapshot); } catch (e) { console.error(e); } + return () => targetSubs.delete(cb); + }, + + update(patch) { + if (patch.nodes) { + patch.nodes.forEach(n => { + const existing = snapshot.byId[n.id]; + snapshot.byId[n.id] = existing ? { ...existing, ...n } : n; + }); + snapshot.nodes = Object.values(snapshot.byId); + } + if (patch.edges) { + // merge by from+to + const seen = new Set(snapshot.edges.map(e => e.from + '→' + e.to)); + patch.edges.forEach(e => { + const k = e.from + '→' + e.to; + if (!seen.has(k)) { snapshot.edges.push(e); seen.add(k); } + }); + } + targetSubs.forEach(cb => { + try { cb(snapshot); } catch (e) { console.error(e); } + }); + }, + + reset() { + snapshot.nodes = []; + snapshot.edges = []; + snapshot.byId = {}; + targetSubs.forEach(cb => cb(snapshot)); + }, + }; + + // legacy alias used by live_dag.html + window.FesterTargets = Fester.targets; + + /* ---------- Auto-init on DOMContentLoaded ---------- */ + document.addEventListener('DOMContentLoaded', () => { + // mount shell if a marker exists + const marker = document.querySelector('[data-fester-shell]'); + if (marker) { + Fester.mountShell(marker.getAttribute('data-fester-shell')); + } + // auto-connect WS unless page opts out + if (!document.body.hasAttribute('data-no-ws')) { + connect(); + } + }); + + window.Fester = Fester; +})(); diff --git a/ui/cause.html b/ui/cause.html new file mode 100644 index 0000000..073701a --- /dev/null +++ b/ui/cause.html @@ -0,0 +1,292 @@ + + + + + +Fester — Cause Graph + + + + + +
+ + +
+

Lookup

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

Blast Radius

+
+ + +
+
+ +
+ +

Causal Chain

+
    +
  • Enter a node name and click Explain
  • +
+ +
+ +

Recent Events

+ +
+
+
+ + +
+
+

Cause Graph

+ idle +
+
+
+ +
+
+
+ +
+ + + + + diff --git a/ui/debugger.html b/ui/debugger.html new file mode 100644 index 0000000..06376ee --- /dev/null +++ b/ui/debugger.html @@ -0,0 +1,244 @@ + + + + + +Fester — Debugger + + + + + +
+ + +
+
+

Debugger

+ idle +
+
+
+ + + + +
+ +
+ +

State

+
+ +
+ +

Next Action Preview

+
+
+
+ + +
+
+

Execution Timeline

+ step 0 +
+
+
+
+
+ + +
+

Inspector

+
+
Click a timeline row to inspect.
+
+
+ +
+ + + + + diff --git a/ui/live_dag.html b/ui/live_dag.html new file mode 100644 index 0000000..7682881 --- /dev/null +++ b/ui/live_dag.html @@ -0,0 +1,403 @@ + + + + + +Fester — Live DAG + + + + + +
+
+ + + + + + + + +
+ + + + + + +
+ + + +
+
Pending
+
Running
+
Done
+
Failed
+
Cache hit
+
Critical path
+
+
+ + + + + diff --git a/ui/metrics.html b/ui/metrics.html new file mode 100644 index 0000000..8b816d3 --- /dev/null +++ b/ui/metrics.html @@ -0,0 +1,257 @@ + + + + + +Fester — Metrics + + + + + +
+
+
+
Nodes Online
+
+
+
+
+
Avg Heat
+
+
+
+
+
Active Jobs
+
+
+
+
+
Instability
+
+
+
+
+ +
+
+

Heat Trend (last 60s)

+ +
+
+

Active Jobs Trend (last 60s)

+ +
+
+ +
+
+

Per-Node Breakdown

+ +
+
+
+
+
+
+ + + + + diff --git a/ui/replay.html b/ui/replay.html new file mode 100644 index 0000000..dcaaf3c --- /dev/null +++ b/ui/replay.html @@ -0,0 +1,573 @@ + + + + + +Fester — Replay Observatory + + + + + +
+ + +
+

Replay Controls

+
+
+ + +
+ + +
+ +
+ + + + + + +
+ + +
+
+
+ +
+ 0 / 0 + +
+ + +
+ + + + +
+ +
+ + +
+
+ + +
+
+

Execution Graph

+
+ idle +
+
+
+
+ + + + + + + +
+
+
+ + +
+

Inspector

+
+
Click a node to inspect.
+
+
+ +
+ + +
+ Failure Autopsy: + + + + Traces dependency chain backward + last scheduler decision +
+
+
+
+ + + + + diff --git a/ui/sessions.html b/ui/sessions.html new file mode 100644 index 0000000..74fae08 --- /dev/null +++ b/ui/sessions.html @@ -0,0 +1,347 @@ + + + + + +Fester — Sessions + + + + + +
+
+

Sessions

+ + +
+ +
+
+

Replay Sessions

+ +
+
+ + + + + + + + + + + + + +
Session IDSourceEventsCreated
Loading…
+
+
+ +
+

Recent Builds

+
+ + + + + + + + + + + + + + + +
Build IDCommandDirStatusStartedDurationActions
Loading…
+
+
+ +
+
+

Active Action Sessions (tmux)

+ +
+
+ + + + + + + + + + + + + +
SessionStartedCurrent CmdAttachedActions
Loading…
+
+
+ +
+
+

Storage Snapshots (qcow2)

+ +
+
+ + + + + + + + + + + + +
NameSizeCreatedVirtual Size
Loading…
+
+
+
+ + + + + + + + diff --git a/ui/timeline.html b/ui/timeline.html new file mode 100644 index 0000000..61423f0 --- /dev/null +++ b/ui/timeline.html @@ -0,0 +1,194 @@ + + + + + +Fester — Timeline + + + + + +
+ + +
+
+

Nodes

+ +
+
+
+
Loading…
+
+
+
+ + +
+
+

Events for

+
+ 0 + +
+
+
+
+
Select a node
+
+
+
+ +
+ + + + +

bRlw1EA9vvK7o3M3ramr^8 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/03_replay.png b/docs/screenshots/03_replay.png new file mode 100644 index 0000000000000000000000000000000000000000..bf9513a3160611901b40a10f1b8d1829bc9f1fdc GIT binary patch literal 45394 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/04_sessions.png b/docs/screenshots/04_sessions.png new file mode 100644 index 0000000000000000000000000000000000000000..d9bd1077dc9f800fe2cf7ed3237e70dec6bb6573 GIT binary patch literal 57476 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 K%4JGcZ~qT&duX8m literal 0 HcmV?d00001 diff --git a/docs/screenshots/06_cause.png b/docs/screenshots/06_cause.png new file mode 100644 index 0000000000000000000000000000000000000000..9292c822183b52d974fa29461f5e75202dbc6091 GIT binary patch literal 43675 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%0AIiLkxsUp`ujEQXU68LWz7Y)dr0zl;{bfNe*4CFJ zjpNfl(&WVLN_6H=j1rFGFfJL+Galx zpB>8hi+%qVD=H#VZBpOay^AIZeO#oR^q|#o`Y;tvJ1*PWbTIrpcnkHN@G8K}0(XND zbA64+2<&`);dZ4eNuuze)&FV%{f353-Cm&`*++GdY98L7pgYby`#QFR__*f|(Tj>| zF<}`Qv9oW6#g13@jEtgixE=jizD8$2w}JEIqoRZS_B?Pk6V8i8#$0lGFPEqV=2{iz zZ1+GW)T{Hdw<0Z1vlIF?T0mUiO;+FG&Cp`n)uc_w4eQ4>X%eZ`0hjwv8-I zp=Z`rMiBl>M}IyU42(+3>8xKM9=OcIO!o+DQxTC(Sl6PN?4@+MEW0}pq5F643%bjq zHBs&+cZ)Kk_+=XU21mn zCG_Tb@gV|tnKaLmk3?xWBNooKiyZQK`1!37F&zP{Ym`rv9qdc=wpFT5WJ4dTBr(_N zb2l~$F)}iShG5v$GhFPQ{5CFhY;!++xW4X`R^w5lpr~`4W=%|J7GW7=+-Ar(Oi7=D z@X}q?bL3HxM5)*&z1lBfLF9!#eta3STARE4Ap9&c`sR2j`ZcS2eo)lL30%!m0Ed_D zqj%j(rj}BEzunaHomQfx60j(^zc4S})3$zbMKlHBdL28Eh2Lbt?|UX_#mCnrOsyXW z^eKN@>O$6~@#t2jcxu$VR@YE`@dD4EOl1ePk&vJmHzQx`5fDUZ_7Bq1Z7nY>oF%bX zIUgRaRJt#Pj@F2+OIFCr`gnMRgp8SqW&5&8Rh6|ww_v(4MF-4G;@4QUWpSQ+Bq5=g z0j-P@Tb}`ha75eF{<4VXMrG5H+_&B07H4~#hVa=0R_q&v#>a$FmYu&pn^v#V=t(`E zdOItZ^R=P21ipup4aGEIzTN(nXzS}jC+zu|>!39ceV7oCZhkC>lEB?en^P#`fxf33z1kHF#6c5rZc%FvS-iYXuE zAQM+tvh4mX4~eV+KiP3V@pT>B0WWZl1|tvzSkOM1_+(52*KNqMIc;%I`>?~M2kHQW zTS>xyNjVPZ}?w-xqHD=7mEkPzvr)6ABVDC4#gUrM8lIG`vf>c>e&D6zq6xCGb7=4G! zTU6%Vi^uku<3eZs&p%&&OxE~2itpvgKdkF`ZPGt8^GV>IzJZaS{(AzeWGPSThho_> z-UEsv^`6OLBQE;-KR#Ob$zGz6iF?~{_+Y-QsLRiLebXxTveIFH-l#gUuewd zW3Q`wlI99De)HxU?1+&%>;^vOm*o^ZIyJJyZdBPt-#xNzv=6)r$jnkLPt>hI|B0_V zIXMZ6iRo%X1%lPnvhoUNoieYs$5_+qcYqp$Wj@z39uroDuV%bztFp7@IXiv07VlxG zQdLt^0^XB{bajO;wUp^|kL9XOjGrEN9S2oaRqb4?_9Y7q2;;eu*nakuPwih*`vFZ3 zdnI?I{0=U6(=CUGhnaJk7J1WNR4|G8`~tm0hW6Y8C+&Qc19M92$WiU|HpeA!Zp%eVEwPxav}e(cT)cg#Rku`aL>t|K>?bgM8?N2skl*cd zz)oyNu2(-U=TODkjGHoIORrsfiTCQmSzcC6imm<;8Tod!>f_=UL4xG@ zoj-rR5EB)J{pNRyS83VUsZ>;A@Vl4egREg|J8K>hc2}rfnV{c4dB9*1nRgRCyLzBb z)R1$0Ug+xJviDNTFM29!{1FsKL;aWeGfk)h3$)_s=g$`O)XAUt-uW&a9evZ1y|S6K z!93r7O+Bc04?8Yyfy2h+=b56tlmer6(6^6SI!qr}iDfqfVR?b1c@L!D?SPRE3Eq6X zyqQ%`SQ1J!wD@Y4Aj_#uhOkf@yFgbrRQP+8pzKQ1u0M$nej&imi^CsviZO%)y9#h6 zr6~MzesbdVAY2S8BO@;A8}S9XJw6`xwyYJj%_9KG$juF1x1pL2ZEI`8ZjJ&O^BJ^S zw7PPHf>6)pBwq_A&BV3W5_p=Knb{rDSX*0b*KAS|=2Kr7;K+2=NIiTKis3|B{`l_nc+yL9iW}uZVS<~ z%gFce$hcVCO#`xgU45AOH@E`|6MVTS^ZlUs0*E`^UUmnW^M)!%JdpL-`Ecn?#-^#6 z2&=g^31H<=`J*Wi8tOVzYW=yfBGY(SX(TI;p|)*0Ei;M;!{h!eJxfEq(~r~A zMAs#wK-A3)$2je?SaWo=T4=paA#?q+!Orqs$8v#T8!`9LaA;_kR_+`{M*8r+C2rd^ z|N4+{PdN~I;GZ(o5mx_Rs=TwBmwhYz*wNJ$nMvT(EcxU~f@DPGi!Vt@mUc=?zh?RR z*M6=?u(6d6fM_s6^DUO_kJfz-S9NFz^ChUqeLkqOOSJ(7WYpE4-gvKoL6hAVc6;Gy z?5Ja{usl>FW}T|bHoI$Uj^F1@n;pq6+CZbxE$)6BC0r?`qB(~XwQLlox+pbjHP-qi z&(6Tk*9ykAkV~U73Q^zsO=cMZ*h#FZk_NH@jKdUeSbYe2)z)SLnxG1$_&p7xLyl@_9Id3gyo43uYnYi@3?MaF+}d0AXUg!fX{OWDN9 zPAPEYJ0>v^HSI-tM`>Vv4xl_^cbb2`s-do~sy>x(DJj^FgJ3ZhHBDFMHAba|%_~fI zzkU_Cb?bDGnbOhP@j-COsYELc#;@sNF>8CVgx6F1y{4EC1d6C}_Y6o=LlcYOI}cxt z(^%X3Ca{i~)8l8ci7am&ttZ_8P(NxzZd!xcR6I$TXR$h~1WbmX?TRYtjxIPvOho>*C$o;ztcp7;F+6K8BJw_;Bd*O}H5_l)%Q|132J|7wi4 z3^4{)>}4%29YQS6uLct4n=>NF)zR_O0_LZOc$hz$&k^kjE$2^8bK&JRL;O`pFC z_g)1CgE|-i!*6{Z#@SK(tTn)*X@|6(p7VEq*4LjXk6T{2_!*Wd7ayM;mzssx+Xoph zHY=(diMKvdRM7?})#b;=zW%!-oMSpFDr-<>aO}ykvxYz5G`}(|wKy7K<02It92drA z8M#Bhl$w@zJjsDO$9CZO`MFXvGG=CH*>YqCeH88O?fJxsz1SbEeirTenyLiBb%$OF zqxC*eoASM4Rz@IL20*m%()3z6O14ukRaiIXu3}a;RUdQZmpN^By}Gq~JZe=Yjy0*N zwEgvaw|p())ns5Zh+HX_Tp5S0CykAb!p_c4D>BkGH8uNtC9(9&mljk4d7yJzDykqX zG&4<#IAT0~Ne_LFKX&K9&&5ub(kU}V%$b5FDR-1pl(fk)rMgnnu= zIT)zg#(as4Y(%wvZ;->CUAgavF^Rl;2!EgSgC+NBCVAQa@aycaGWD!-eeQGCPp{S0 zb0h<8f=q51l-)&+#DFZ@J_l^hCuf5o??~BlG=KDKWeZ(mEqu-pw|XLlURYbN^9e-x zqV+?3eNV&RM|5?DmJ^1b^wihKjER^Z4E*emqB^bpBr8xN9e91ezx7~D^z$%Wzp%2w zX7CK6{E3N{@`2I~4+A@c-rWmBQi7(J<~CZ=qOC^S_YRmjDWC_nI2S8>`_+>WldoUD zzGV^%xztsCs}F%fnHEn$^Ir{H2{g63LMld6@1Ls)0*!DxCBnGLm)m8kwk=~s`ir?{j?x(-<-4#X7v~a%jXOKfZ z=elocmQMg7Dx@lHU9g+i)?U1Q%G%rEJOl|{Ifjfc$edSThp<@0hn;(#zUG^;KhWp% zX^ie?YGfl1+$R^xM+IE3ooxF-5JSH$QASNd`&zjh875)tl>1ihh5BU@nI#unNtH;) ze>B~oPq$Lz2I>810Mnks4Rx{|j!&e!3lvuR6+hy=U3!agcC(+vW$b+t8cujhxjZNkcXK*@D@dKzM>F}+N{T-ChE3Of#|g?MKB zWMGz~$qu`bbss+T+72e^X{L;}yPyBG`YV_=eNAXgQeVO#l1OBdi#yys-EMiGuS~@~ zwWp(v$`r4O{zug-=%7{`k&w19_a*XX9N~3kWY8xu-uLO1k(vv=2Tj;?h2~P>KT*6^ zpIF$FD%3M_P1T#N&l-}`|E1h zRg~6HPa8DxHuv8tg=Sj6wB_Ty&d_OI@i$DNblD_8ACsrnJ7JAAay1#+a-TZ z#%+L?=N1Y!PHswfhjZLJ3Ls!EuHq6v{ARN+nT2Z%w)<5EJrMN;CHk`7^y$>dkJaX# z+-qtLd;(8=h;KHIC4nO)cJ?wlGalL2UCEQyB)``QWKMzR_+#yV%}oUQ+%+~f>7l+2 zmi~Xly>(Pv+qUjYJb?rf+*t`BIE3Jy;O_1cq=3R*V?claA-D(E!rh%f;a0c?D;x^9 zH|p??{`@bHKTVbR=$*q=5vL57e6JbWJpSIv zh1^&^6a8Pw0BRbO+%B2K{}*~6RS(e|=`&4N482k{7^3p!+!r<>iE^v+KNlC4jSUS| zm6hFS*Hg4+vIrjzpQ{ z>kMq`bg~4&L#_%GrHIy&5)yPrkbZ&tLlvbWM#Vuv9%5%ED}AxG23-yHyduvO=dM1E zUGLv==x5YCn*;{1{DOkF)?}fbB%F4+Y2g@K{6N>C7LzRPJ9x|A@6(}au_o{cCUcXy zEaA6Mrr!K01kTB$qpJRxn*{~AM&M4@pc5Iqvwo3k<7gqZSloJ#=I#;dC=Jx^ZZEFd z8g#V}910W|CI>$d2Xin|L9PoLnG(3ku*nUdv1GJ-Yx&?+Td_6Kz|Oy=q#>g3XINgF z|C;6@Iwr5%=5D|^p^H4TgM+j%w}0#5gZsJRV@St`j^CO(dfgVKNsDQ3&8QX5zeGw~ zxZsO6&Nf{2=zfh1^VUzDn_@FxlZe#11VIEGR~6PR=@6C0uO;~SmqbKZ?-@!$1Q zqSVwlH4<8`vKwx3T+~=^<(fE^v){TGY5;yG>sH+!G>@w4hVwB?FL!^u=%}lm;X>ok z#Pk+`d>d;V1ERCEr7X?_=dR?fz28u4msXa})EFiP2RoUl9{RSW7dBopu``C>STk&U zfi0k~pr|J{4CEiUXv(iDYD!vOR#s&fxv2Owy#B71L+G{WyR*C`eySzv#m^r(I!c_Y z7^tDg%*k2#6^^7Kv7!O^>usqfYQW;Km?0ww*m8%NsYzCp;wp1m|&E72DGBsyW)y-&#jfUSBBMcFz z*axTD0!r$5f&4A}rkDO^hWbva0*Fl6>UqOyNm^yaL`sY+8Ya#Q>H|)Y%^GW#PNJpAyE) z%GDG>5ANzWHlpB9VgBHe^+g5g!gz4XoY?O?%NaH+(7C!3->P>p4cF#?RaQDkaHaL{4QZ#5 zg?vm4um5Q5?JXxPd)BbA# z?Gp3Z^Xse5;UK*=&yQKyeTn=&gFQW{2~md}-qQ@kRXZB$rBI3jObzI`{ZJu%P8Zp) zpIdMvhNmj)^4lI?zLKTH^1Ah*8!r9uMp0OGMx@5`Os=urk33Y>laCaS)&$@ zd`(6o$xX;pB1v5d61 zjIo_s6K6w*?E5cytuVU8qNI@Or4F18s{$MKZO7sk$PJ-c!4co`R(^caS@9gDOH`{x zAR6Vln0{AZ54`@{w}hB5Z*Cec$Ma+#TmpiVJGT|tsun7pvX$H&Qn_}Si$XMg*a z+E`(gijOaNEd^pqYy@G@(UNz}F?`St7y5>%u5_=odsr0w+l7Lh$THB&zO1nh4u)L{ zvzn3IGDxeydm-m$em$EA%(}o~TW6M}e{?F&=`Frh_R`J0WxWbc8*mgN$4ZfS&>NjB zf<>zIHQD84UXM<*%9WOJ)TimI+Ro?M7yMf6NwG;{Px(XPveL3C@|h(i(^GIxdj4R& z_>9PM-wahzH{cj!W{S=mG*8r>$)zg{&R3(u^>uT@MP_B`?PJ{U>4z)Qpb{M^#X>1w znwzVco?X@R{*v5G*_z#)zw)9)cvV^@v-tPZD=Ryzg93c4CgjL^ zR19~U);1GJ9ax9?&y6^2W+tflJkKKbgx>ejiKARZf2^l;n)QX93Cz~ks zJ{Y_9Jeh!BpK$g%IoWx;_gPivC*4@f3Byfn-#t#J7oO98U0G)>P>UI@9AXbKnVK!pv6QPoHpW_v)zF~TnS6W z6~7Z-l-o;{=T@qbCI~%&m6x7OL2%B)U^PU9TGFgkX?hMd&EhC~dmi3id}RB&NpYlH zT5^i!i|uBeluxN9?gPVOnumqbYsNuX z=LdJMIq=k?%XBU{5SYg@&Zh1X5+^Zs;TRYPa(dVCg*40nr7<_w^Ml zy^vw)dBu`aE{R-zWxT9D=jpNq@_7myd0yw?lP2oY=w&9$6c{Y>5EEk^kMO1Qh;8oDyn)L~%bjlKU{a1XRBY*Gs=EUhsTo0M zetv=)OfmK3q)VC7?@_9R>&d_ym96=dv|f6i5=3|R;&glZwbv2*t$_oYNGSpR*HfR% zDmt16H8ae~o2;P52zmy-g`X^~*)1XWMN_k{J}N6Sjj8Cn;1MOtNeAe36DoUW&U|5l zAx5T!U_%sH=(mM@g(PW>q^0xh!m~)|6!wuiLY|7vUL?(V&;hLevD}|$)MpEEJl(a# zrgm+nXET8fHo?75ko|Qg#qlm)HJN*}nu7IOUe<`Kjq}Y;A>Mw zkU$mTjYk>~xiP{iW$Yt2u^)C^w`^4Tbpw9~HMx_q43Dm)<96Ae4i&umfih5y#1kyg zUD#S8n5CwBmV4bVn9tGYZq;|u8}Cj31D;YHu@5buPq}rjrS~Xr>+u?E))I)n`i@}f z9rp9iCNWoi-)?$cVjZkDe5DkRxPE5&1gmoDW;{=&md?%ZX{Be{^=TEt-=lr@fYCuI zXF|P@=DQN@_4G+zO3Sy5LZZHTE>BwuesiOt2!CnmT$+-tVcZLw6DM5|#`MIv!@-RY zX*pG4LV4#vZ&siyfB^UKP?Dg(KY`sJ-2AFXE>`zZtNMk6ud=V3Zd|GrXu7aS&IMg; zA$J5%=M!Nh2t54t&Kt2`jE|T zS7CERa_LM|Q~_C4l6&?RxNNj$PY~yNN!!x+y&kK*h*{Tjue;yPv*48?o#7Wdq zW;@^~*z4x*0x*OE8l;d7VI2MXmQ5BB9!r*?G9UXLh}t zn|?YjyHFyY5+?d)I?n{_M$PQMS%6>7v%sN^ASGHnt1(LrVcCFzj^J-ieys1yAJJ*$ zjF%I{!_y>0vnWdQ{{BxlPh^NtLeqh8Qu!N!;sxWtjW3s0{zC<Rn_0*325Q$?JNe(xNFSNTG}q9tjudr5~Vp=2`7Inkjf)Qc*(6Y1$SZ+S}bb zte{`E$h_`|dSjDRjbv=fC*mg+ih14k7Vk*Wox=3Vj7&cQSvmFHAniQbW~Z?1E- zLcb!@%eg1cq?_H`&n2IK3p0-Ix8!#|K@$a03=Z!Sb*5#WgV4Q)EGo4Tjx4;ay^~`N zJMWsUIKBLBr{5g)U!p#yQoGM7rVzw+STzAc|2)U;^7V#m3XeX4(Se<~F- zd-mv5yn8QAM8@VZjy!Yf<@nXi6rQ?x2_Y4AlF!>C<;JTrzf4PuT;Ms@KG_`V?hZsE zbNP8ISwJaQ`QF6H+F@9Vqfda_hiz`B+0Eh{5p{t|I~IFLf&wN{g1$u7or!1~Gier> z215iKPdb_bH^6r(vnN&f6SZkS10y3R%ai)cQ1uXU-cw}!j&s?N2{;qZ?`$lr)ckDs zA>||GeXD?)zj67h)E+pR89k^tZN_jg2;W(Mu+PHty$h{pNu;cw+#)68(! z!$o1-@e-}08J z6wc2Bcx_xP&a7V}L&ZlvH!-n%F;TkOpIlj9iSxjBt73TId*&HkWZ=5S6pw&_fSX&j z88&u)e*SZ8cKuFeVRIIwi zE@WY85gQND?gTO(ZcPerbyd}gaShPak%^9pi&bRkHFZcYFDD{eSHXTlB$@o~N1Mp- zc+9tm{87jhlc?@pxsVVBj;WX%nPRRt0ckXF7>DHKjPSlrj&DqElwh#38cEO0q{BnM zd!@&)l|c0S^H*VPYoJX_)$44ptn`@{bL%kODZ6=Nj!=4XVxsG3NeAXlgxYPP_iA}T znA)qyi7}5TN~I*TUvyqj9gTdpM@!8 zCnP5$6z}->2zE0n6TB|eYp$qpUY3p33%nQ}8oGJw79#^AO_O!4ilm*Ls)>n&xj9@& zHtk5L+buA7i)^#Bv;<_fWjGB*M7))zrxz3ylqzD~Jyz0H`|E4qH)0X@onswX zX4x}+Xz4eQ$d2g&*$owhissZ>c;1-W7#<#;48i({MMl-SjH!de!K4;M{E+QYa73@E zwJ6jHR$F_;sNg;^-IDO<>hi9y+L&m5{_Eqww-BT8-Gyi-T{?Qkt>LWDfPjGf0wyZj z*ul^l5IYn3>60HJk~%>^_EbBrsG``gR0D5$nXEiKGIpZY#U@csTSrGlzfeD2j*jf5 z0pReBkCbGG?;8Sp>sxfkdapW&(ZKiSc2QA?Y_wVfB(dj9Pt*55w0HVnskxKyAO~s^G&_`gF82iC1iG@_1-=8neC3;WT4P*{QTp7 z%4-b`jqzAZufLW`!@nCc@_iIXevs9iQ{bq1MxLy%7~?i>yEGG@V3u#U9ag@w(p;<9{Ej{e2K)EOx)lywVN26W0wM` zH9WjDNNWa=%t_}c2?l37yMBqro@s6e0)~l77k`Q8$SI!zz>^KOtEr^*wXfl!qoa{M zu%$iMr5AEej`k^uquYs7=m!otFWu({z81|gaBOU@pMYY@ET1Oew#J>?1&mBSTsCk;0nhI>} zWg+q}CgD?@e-t4?EgMEzdW_|J;N3E{Z)BtmeN^UdSgJE-@%Mn5|1KtZ@j+qlfBYVD ze}dpaM;ln`2Tx%%9o-4fevm-hGOKubdh-Sqgy>HU9334G%P!2yDydnCH&u*N|ILBF zqgADu(CS+4tR;AJSF;v&&kVCtGDcR*_uRaD#((a$_kM@LBh>8RcDsjqMDldgBDzjy zy&=)7K*q&_&>55hM8)L{sXc8CE@KJ6u%p+@R`j z)^(hmAS+1Uj*((M&Mup-W6^VUO>w!E-S#`R4f$Nv0hXpqd*jsDg|?bUZus%W8c}LU zwj=HUbsG~q)8@YZQB~2W*R%4=DLWnMOdcN?UskVAE;Qhve=??)D=sR+4Q!Vr=o{?7 z#vb!eo$m1Sa~Hi#&%w%xq;vXsCed@%ybGMYr_`n0-BqIfR!^FhI*)Lb6qI_N# zo`iSC30j1$RTJo6BZot?)k9hr8c=82^bJ=LMy6su#~z?52+Pei084@Ot(yk#wnb=g zb4Tf@2@qdr!?Hps@IH$$uDZLQgT06FnMNk$XNt{h1vj^Vr)V6nD$B5g+DtO2I5oz4 zT3R}pzncJ)Q&5Mzn}#BDzl=Qnk6I%JPL{CG?cYkiJ!^fsU!OH>zNTNS{JH~a=DEV` zkaY6wPE$x4{y3KRMYoL&UEq)>KFmJ((7U7ijy3C5`wIF{RBv%$jJZY>CEI~J@?d|7 zWJsM6m2jD|fvS9kVAvj!D(|J2y>>3>G`@C7ymB6$mpDRTjoq2-CB7^gOb7P4if`-P%E(}KlUk%fwqyn!dQz>YQfngi{ z;K2JF0?muMk1qw0{Lw$*{|NpqfzXB-d*IS!l=fXY9EW37+lN&E5O-C}Q&{mgqc&-ZG+H^An$V^t{3i$Esd{-oq1P$+58oOs9W>6rJ!+ zW9`1&e`2H}&+Oou1>5A<0nh(<8I##=gd*Q5LRIZbKG@uEG z;|ZtnoR?}}qlF!4m!~Y6h3_4e^AT13Nh#xfL}eXi4uBc%bMvFJ+$N(^AI(a!Jcv(D z?}krU`Dgzr==)w%Wx10{`oZ!kr45%6=liIAW`Rr~^=5~@^jlG(TTUkNVOP;8L9w?I zk%E0Z?H)M4?At;l@kA@U;yzqIYAlehPvA4^ab*f!U0f-K!o|>6fSBnU4l@mMBb+HI zncET*lz+A)zwbcAsA8TfQ29ANUSC_((oz!fMX_=5?T-X#_%7C@^Z|^6k1jg+(J$k9 z5;JqH^Kw#16x0dxWoResr_Pbj8RdtO`45Gw!-L|>Dx#Endv1xvk+1R@<_rvmQnH1) zic1YIj(?F;Ot41cP!%1rVUe3=t0gB7Wk+b<4*jafgFM@v$_<=e^rD}t7*kNEbw(}4 zO-wwh-kzU&<@i=t?StwG*CQuU+zbRkh7#R)KBCAk4m%~7gzEhxvzwMADrHK=mdqT{ z;$eYu2nk<4hg!LUOLC6|Ujo7^J&j}uh%8ji)ZJNa1zy-Fo2a0b7&SaXEtDt))CFu$ za7ib1w53Z?a~|G$n4;ExwsxrT0Dt47a^BmM(>*$WJXVTWTi*&#j&F5*0D~hCf{cgX zz?qJK|Kvx?CFAPK%G{ya=i4{DQKo7;L!aIt1uBGc#AV8q%Eo zUn}QcSPAik!iiYD_qWNkTiwM$P9k)6H>gnmyA~`;$}*=pwsiFZbt%OZy-M&H*TJAt zDCIM+UD+}QIk$z5ni#P!%9Gq?zl^Be*Ea%sbch8AjOpK7qxH%^A-mWwS14V<0FhVr zRtIjdPE3mLe2l{@qz33}vj2(L!O~2$6K`!UZcorZpZ@A5CoP#l^oKwdJZ zO2sngAPc)p(uFTR0KFje3NIO7H*EoXpPw^L(caA5B_V^N8xG(t1S3Y+1rDMi5#dzLMisut33g#WNFNNeC`uh{!>la zeM2`r^wt$NDL8%KrY#}M+z2n-ap;eMGT-+2Rj}6jbqn)4{fd+6mhD_*bd&(! zh8;w<99Z-C9pCY!*q4;}JtP5jeF#}V?7@gouo#X9h|U#Hz90IzyT5-+(0mOXJ!#O% zcn!PLLiu4T^vu-M92^`KP|Xart=VemWNRtSd9F%MjpqmY_SjbO;0>~gLOmuMc8S_j z#?5IStDoaw_5*vIA5@z|L2^0(bmql87+L z$wowwnK9N@ng#-a;9c0PoLbJs=N zDG=p`Q=|h9&YpB(U5ZkUg=Ko!6E7j*57faF;!dQAr1W`tKm}P3D zetwGZ-9nxEl?&e>mHlM|T$U=+!{u_BVqRR{NeilKGP-Z0u2gf&N)`ckDvQMx_z`k;Iy{;gzmw^``^EEJ-v!a*`pXMAQo`< z)Y9Vl>zxN4fL6)X+Q(z46_lp=e7dxsG=N`>TRRZa{=%qQ=4z6jS+}bznBP4CQWL0Z zXBQCA_Vy?(baT319keeNE`0kdEMO@q3lf`yk~kf;)in*rSNS$ zi@>L2!GT|5cubT;MVG@UJFhOc&pFKx40;UF-&tB%8ppkAB8rVg4Kx}RT(N_6$Aa*# z|9G4Kz$sYUvgo$F07BBEv)X7qnj!|<0orQ<$9>oHkVo(DzVm4PKL|*6T`y+CE>CX0 zS4-n|d7+o1@N(w1xYg{rPZqk1muj64o`cKnO9u~Os3s_pw)&h%ORF~5c8D_~-fwqx zO^Cv*vuT*2ywcC{Ypbfv()CTZffGGybE;POIrbq~p)Z*QUmj0`&MWMCxf6+$S{d7O zt+T_);^CCB5gjn`)X-v&KTICpQoK+j_+>NfS~lz(Xof5d>?){kbnF-8XMs}NM;6q zx3qNtN6_DaB+OiT`iBldLFgXhhglH}RFK%rhp^~SeLd@n)P|&_ZluMdQJP-*!sz&T z?H?viWQ@}5Mjqm;D0mmAE6Wk4T-H*^kciXW;L=Yl15k8W!l*bkStdQs!v z@03e0GBl*c4GL#UNDHQVo{uG39sKCgVc?mhGKCVoD)R1OSj=VQvPoK}{Ni4feJo04 zdT%d0b5QAFkkgfw(4ucC7(3H64DTGbvLEsV8E+?NcQDCVwDN|>5M4msNf$XLz`YZj z+TwXn+$>nkVL_*5IpVpnmyN!l@ZBot9eT@nmZcXDZhsJi9qqoaXFKlL$%bN#aX90= zkX_w(`=UnTU@NcJho`Ju3SlK*-ai?Nvp`y>Wt{xa)Nsmlcp#$i2s7mLlpBC{l^6#q zxZrp7i>?)IJ|N>*)$_arBTt6RiMdI)r3)L&7dPYqdy4~D2263&R#j~VOThG9AU>Z7 zP@qxCQ>PbNtBI6$lK5Ou`JOwS@xBs2U&c<$Zz{e5gauj_^+8?!O8nYsd_*}rS{cDG;8?5Cn1;`C*+JWB4lj63^lp77FE6KC`&Mo z!+Ym#zITV&)hqC=P(s_}vUq(Vv(H}nuS6-ir+u6O>fBjhWBZ;@R z3(wW3;NY3!abaPi!S-EH#D>KRIzPmfP zbam#CCMTUJnXiw46&IKLn6FqFqgjnqw6xJ;ZOzq|mQ_hSV~IcRIe-gXuYu<$5&wm} zJQtY@H`U)Yq2Y8teC@q3`u+hX#k4dP1_5(M#u*mj5Rz(WGHvcX4(K1(sohvIe~dhmA}%xcz?z zoH(iCEq}QRF+nc*V}XoH)?;na7By8(=dER9%+}QsVAq^8canuHufy1+lWNr1{@r%_;fw*EwKmx|Irg&ehhHR z`3`bi{-!4iN2*%dOF+b1<32-cNm8q4xbT2Flt>KES%d~#^pGMU&b~PFY*O_tPiekd z+UP5-xbGU3xv3xQxke-L=rWZ4csw$q;!w?pA0%5CTa)D>#i?Kzshq5<$t(Y4s-A_)o0rJf z$!bs}K6mJj3awjZB&hY(sdUXkcr!EVH`J+iRXePDU+jrz-pk9)Ke5|Fx1neR<1L;j zUiw@amfMYiyiJ=~l=d4v%-)O$o4h+%WaEf^3k|6MYaqOzyP&s7t#!wK|6gO2E)z~` zKv7Bw$I8`*nkOE@W)-KN4!|2vV&ar?MyxWcxg(`cS3C3{;YBfc_1fO;1ksFZZ*amh z`E<0DM8lxTne#rag&RuD)S-l|N${oWDmSaClCTeM%r?nC+b{yp&eDTc&HCb6e=WCu zy!dG6cWzgEoMn@Y6yG~0mg4ie05PTOp=%jGG4M<>gi>f;a*d4jy)RJ$BC%05b*BbN?!E`ldu3fkG+)h<{>z*uX8sJL5R6Yj)QI+8f# zGoS#DC+-$faK8B0e;|1c27t4G@ZFJunm9~tVtjJ&O?q08B}DQG-q7&;?hj>ZBfP*3 zKb}gSdodNwYj0YWu=}HnZ&Z*A2u?K&HisWD%=)<&8!h!<#Wc&b-OojAuu*@Xkj_M-7@`s z-JYk1l{q+4dBgT`XCm3kIq4cc8zlgOuS{yiWn9k!HcVsB`Y9-_Q;v_cv~cF>z>4Y0 z&G%nZMdWRgFQ!Q|rOkC48m=HY(ZKi7xYjI=xn;x6$w_^l$q3f=Y7bW>>#?!Eq_c{j zB{f5fMp6uB8CjazQ*m)|mFFRoWH)7V_Ddh^@iCe8oOIQ?SUuVxTiBo|b8BU8@P2Pm zu0;pSxNFvzbTE8OpR@DjYORxW9Hu}6MlnK9KZu7AM@NPMO>%N)JReld&hV*8yw~L| zY3U$PpaE5J=goPZ9MnbZiJqa?LwQ<1N2dcm@1K7}!@)GY@r92bG}wJIjh;+TXD2&2 zN_O7Gc=7TMV>$&ZFVjyD*@XA}n83(ntPa&(k%|8%QL5QR^ z5D$h2ksMZ|$X>Q7Y$*-3Z}yb^=72>(wPuB1ZG~638L4tI!8}|@^fz!krC_s)5KBwx zjdJ@M(dOCDUVh}^%os%dH8Y83{D=i_1$z49GR)>%o7LeC7B!^i)aW`i3OFTn1A?)N&)E z!*M_=!&F7SQXV)$a%?SVMtG^_s^|(dM=pYN<&MLUO?BqzO5*gH34CX3G7fvIxwU3u z+13h1lI-W(BAabFtVs#yGE|3^idY2F1U`#vvU5+iIP;-a&eqrAnX63hA+Khmzv1xL zdEzs=1=K`VawbN+NntQ)Om=mDvekLCGh1NpaIgGl+d*iLHxiLNHsB~L>(uk!3nN)q zOH)%(SGU}3mE*TZqDZC(YOU4PF_Bf1zneMQhW&u-AqnsrG8H%g<_*#>ThkYW2mA=}r@v<;aa)8cj^hWrZphJ_o~*L-dBS z_ri^gkLI|drz+&kqH0(ir1R##+JdRVnj2tpY4%%iHUgF|Y*tpOv_yU-yrLmV5bektcCJib80eD-{*$jt-w$4KC?!MIH=lt5a0^$a#_Jh!K$k4CfB7X55JoRSYXt|Ed%^J7pMnC8u{J(ucYZWR?w=}yD6kZ>lJ8> zcwi-|keoAj5)xi9pZaIorDD<^9^zuxT`??Zw&JR7&~2IWnlC4;%y)nPVFzH-?Rl@2 zJGRAG-;mCTftKf8IQA`&p#Z(v$N5*8rrQ>4bW8>m-M=e?h=6E2% z<-v(h>*}J>_wCmPySh8_Ec9x#Uj(i5E!`1vQjeDX%qs`6{Y&a&eJ8%!a-5VSzISi; zXxWxK0y87)^6tZ4iFy@X&B2m5&>Z?0E-fBBqN4ubM2I|D9vU03En%4<6*&ZgoF~)$ zt9>I`E~Pa!nJIi${CJdCfD@ywsHwNTk=4(u=swZC zva)LPCo+0>!=D*BAMjusz zQl9D7U_;@6>qQ z>b$56Z$3gJYyK;Pb2~|n+-9!*>A)|n1THMhzdgw>a^oS_Q+ zx0;8#}duj^l?cK(;)nT|&s5>=eEzh42((Gu8P?QE3ZO}%IOom%+rJOo5u z+Gt5ynPx;FSisEhXE>#2HM#L>8$A`K7N)bD?nSj(mF2-uh~1M&F0Sg^{)Z1Rw~UR= zs9`YGoQN$Zb8AB)Tx{}55OmWE7KScldZPZA`R*iPro}b^=H)}ZEmeUom8tY-*HH3IIJRBi)$6>>jZx&RJAY>y` z{%zyX&^I0kBc2!*DUabk>WB9rgP*F3hV5?yDwvsy@M$uTx0(C4crzoFo*6vTS4ZHM z20MVljwp~@Ss6Q&OrXiAn6Lga`%~%|>mK#d)?{3=0~MXSg7{xDq08E<8ru~|3D-{n zZDj{=V%PICdfZn_!(ZT%wH237O3lomvQ7#TgtrnYi|l|z0$bdw`*r0gJy*|IU&D+h z6VrBC#>?Lb?3d!{pF~3CdzDTAlcZrY+suJU2Z9BsM<7A^_91$CSxHUv;)BFL5FUC7%A91$e#@bt94`!279;mXH{$=EaUs z(NP)a%@x%DsW zjUQd44OIq+Xgq38yIw0k@^g_zJSMn6f6dwZ0jb0e0qQ*@jG>QV{It3zm*(f(c@7_H zCT7G$zUa;iPF>z<7oqoH{2nbRC4`E()?2tIHNe895HU4Apir2d%y#&+Tq(m^fg)f+ zUsI36{o*-!D1Ee~d^;J1AcUB)y+~uV|HX4XuJaRR48D5LFTF3Qb-{$okA?d415eV* zd7xg2R>yrXCCFCzK@u%pkBhD2m^m9kAC-=rz^`QD3@;D1;>(>Mw63`K>lYL-W%5)EhMMCJ{lw}#@6q0VwH`TAXu4|c z+3z*x5wH_FGJ^1}^U21r^!H%kstZ-hI9vB0#l0bR6x{GFF*e$Rii(?s^3qhFoVdm@CDL?_vI6|)-$IWViN6hf73pWyG>$HdYOd%0pOvO4hnjXUFz1) z*SL8QY7InZ5U`?s8n%m8#s)TSQvsgUcxJ%>a<2401b23u>s3l@_ms49uirg|%|5A@ zbuY8v1JhH4+{vTkqvC{;WlT(}E2C}H+==Tsr0Fd&r1QY28W3==!vuOcJhe5ds%pg1 zs{f0#lkJf!Ig9(nyEnq6uZE9zX8u7=B{Wn1va%DkPRq+kclG=@3 zU)HQ|%n1&MyN*uB`9LwZogDZHmRqtp3GXEJ>o>7G&1@J%#tn53YeS;g4sVOr)nvMs zKl3gv;i_k-7=oZ!+2C#bG4v4%WinXqlQgyEl?wky^+Tx}1vv}I?WbW9Af7We^9F8+ zTpuoag~h~Jb8%)xT&jMn)-%d;qHb2!p>=&J%J>+GNiRtl9T#tHNc_w8m+-bvV=r=| z^?9`yMmgtnYZoo0`e(o25jP_UREK;>H7Adz29~<2z@EjNvG%S|K|WqoF!=w0!Wsb zTqoysVBA{F3Isa*_~ZZ9?%11|uv@O4YFU{vwv!F?N6Y%2GO{@;7Lx`KdvjE}!AxL_ z?4q~pmVT^UfH;d|#l^5KFARO73$!|CyK_zAtsCvm?FI(>>5%ug_Zm+{1>^R3xSc9ZkQ0wvuI*gJ2E-wE7nq)beyfn2uARS!$V`#9wyiCLg&)l7ul-vy|k}qU8qp+&B ziiY8v`ZtG)B;If=v&wULC*MiNE;G){b$a`DBA5NwOppokNEQr5b=ul5atUSQ?{jNW zN=c&-H-EMl5|P@}4}?)Y!%Hj(Lw8$oPSiQ)KWf2Xera1@BoHTZcJN$yo{?9mttGL`Z+ge%90W*SHn=(DVPb-B&9f4_ehBcqY zmNzz%queDy^D~It^XI@-l!HS&)0DUI-yXw^Ev*cdZWE`B_Vx&kJ}LQ9FpY|x-R77K zNR#4}md$V$-E{h5_QG9u#)-#xTM&Zg2Y&iM{X1$=uA(LVs4szkHET!RzM8M`-S?PV zwRq^F(*bFW`nx|Amr7m@(WI{)xQ1u-(l9ZkTa_027(gH_;2ZU)9*h-4oA@3Eq*|H& zVnMv&gUJmW)L{~0Ay9$B!|{b%euF=NB+S{~jx{Xi=s(jS4@_I_S?~9kcQG>_@aQzy z9^oGRK^t(IWNEQ=ys3pR|A#EUV$qf{UC-2h*g56S-3F9LSD4cm0Z7LnO@_L+_Y9GBZXgk&J=L){DF4yi zxzW{c@eK=pphU=#rKqK6XX@Yj`80D@vD&9@wbnM{xX#44HX1S_bxq(csn1f#YUzJo zP*;Xp&D6Wk^PzEE3AsJe3+}y?Bg2L&_f3>KG$&*AU)H9?;mvMAx`$z>WbasAtAKJU+ zy_rme8m^8RQg$8%ljjez0hIh+YEiCDE`evMtGZuB$wwRVpmnG{nah3HMdbXEB}shZ z)OGrLbx=~;m*b3|B3R7HqSAU63VHt}|ItqSpYortH{KPLlsOd8^wdGvtt@AJb8LLB zR}m)pZUr3Ne!nWTcjvJ1&MDA^M$<9I;s3~3w=JY!vgvSGP4HVwvUc^${idV*q_UcI z6!~hgzmBl!S5@}9vc>e*zu?0S{Kh~0CZr7tp2Jc`tn?XmA>i+Y9UC)>P@O5$GOJ(*@E!=lX87x2P%Chl z$!=@zqT76A;pK%uVNw}ZE^iz#;NQRQ4$MC3v);Cdlv1Ov_cdXJ`GpYT5R$H} zZMLi)wUj7a>(*E=%pQp5b zraHtJpB{bKDVXkV4K=kH!FvT2eP)|qvI-CPGs226UX$$)R3;`=&PSNQU?MBW*FWtb z9n}yOn*`LOG1{F=d%wap#y_)oJv)z#iW-r${B1mW5S}G|6lBVhpW5<)r1CNO6L!y$ zs;gUfJ%G9%mw*OO*A3kD-AY8)5|rr{+KiOQ+!_FTAcpizpaSlpe4d>?Z@aa7X z5K;8Hm#HH|LRg)tUcrqqzPr zZWJwHcA#6X(~~Qvzti+ja*O|`z4MNW@=UlmVz2;0gaJYiDAJ3Rp@S&B7wIq*rT5-P zQ2{|=R0O08NE3$M%YX_Z41MTDq$5>&9rzw}<7U52HpynQ`|bI{A07@ea}LbQnfE^T z-ro(bJa^7kHhIlLAZwG9CIa3+zBmtGZe_hDkqP6vu}u2MFo+n^Bm9n5u8-&CPgN?w zl~CM6buA*Uydm6N1Dh6&%_>HG)QBdD$KFBcqK@JLnm0uynwfu*hJak5HX(Qdyce4!|=rPl73k;O9x_!VhgMnW;p z!c5KTW5fOVPDfG;w{}yG0~pl!M0mJTX?zl?m>aoZJ> z%?TH-VCJ3;%g!Dwp+va)_}i!mIPCwH-pYhESFJz`gQ$?mps3Ky>?}V&zq(m_6vxqR z*eWwZ;8qV~mm4?gus4%lBcEo;3g(MNl9}96yv&E;p8_pT9qrNP9uXXzjVqsTQB%~x zR7Zl5(KTPWBoX-a?@3A%7CtT+!gS2Htm*=>Iur6 z9!RDxIryO#T8oYz0iDq>~JL=0^8xSH>_>tB^se;Ix{S2w?q=$wwY81 za)-(u_G$E8EH9erBerA9M=ZM8vrXFCM|YC;bGJ#x=(Dr)34D&!Df)=E^_;!w(-k){ z#5t_E4;QHem_+%ww-ps#8Pk3KmB9;i!FPT63w;9vLz4V%WtVZFwuWXCVDEBeRNuhp z;^Sv+elxqEqV5hZ7FB}COy-1$>VzlOD|7toUBYAjy9&Sn!Q1r#ar*QpK@VcOH39P4 z25ee7bf;-g#(uPcbgx&8l=MLMZnCkXYis=h_hGJ7-$36`&j3UW_D^q3xK>hy_YL*} zt=CW!5i%7MpU%%fqd76+aE($Crt`L2_afbg5+9yG?$fYTd z_F-Q?+RJgY$5x*!M5#IF-p*ur_&Gs6sN^iZxB-_ua%rHbt93-|qS#f&%Tdi6vurs} z!=8zYaw3rz_KAcFGO_E%E8)LOc;=v@Jb0td4zpMp2DsE^d)<52th-2_%TaeVKhToW zt+J(CIsOD9_^3R)V6RFwWY|b_gl{nRBLl-YSUTn6XchGlE1S*@TPx};xc{M(=kb8_ z#j52vs;|`*n|VoBch?N{0&R2|QG`HgF9b`~M?yK+p`J9z-xCYyKC}r&oiFbc7cW$t z)gmlbRGZ5^{-hN}> z+a!~LQm-I5r%wf4G_L6!nF$nkVK!&IL@(~yjT*gmTvs;^!ujsGs0LepGEG7PUc0Tc~!1GUwEMjZVrm$Pcwylyi)d}B1;3K2h(YpDG0i%(VzF& zP0l+0l#QLX>l=bz=3ufms{z*rOTvJgdodj|XH+)V2ivM85~C-~FD+#1=5#Dox$JX9 z9LDY1Cly$vpn7L|jgd_J)gtL8cyi{`BAeme1Ib!t{!`*kl>?kpRgI#xTYfgXYtu-@ z_C(R`NrWV?xSqB}Bf?JCdw(ZrJ2dS6{LwmbPIxh0Jm0PLj4|NZSaYTO8*+Nj)uW=B zPnOf-2F$qoujgllM%X0vLC;;T2-G3dv)|%g=(84B;x6^Uau-3FSxapHv-OqKI(&Zd zb3_O+4@RAo3dbxrATe35gn!1~h&ATC6`|!E2ACTH0wu7uah?~^QC?OEILlH&7U_*; zoaBnBko+a7bO``c0O@Y_I1Fz$WUcLs-kV?NmEqQ zpG;hhJM(+Br(2QJ&{beDRfjN7TLJ;Dt(b14qibNK96Fu5!Ea}0sHL^;Ii^v4?K!J9 z9LkW?H2siL(q}sYX;yo|AA1+-wA0wn4ZwL?6jTC2Zd(b-D3j*twFBHc=0uA+ED#sw zh%*0I7v#dxE%IrPk~$_;lAvi71&@l_P=|r(>5ZTVQ11X#KxZ2WDNuk)Gb^QGd}Lzt zoZ8rCr2NGTP0-|i-^EXXLsVGPA#jW!T3Hb*ue?w6oq3ig>qm1>OM}me7Cjbd3LdBp zW87DfH5px9*{q?p7t*rzkr}J4A0u1uzPLE!mzP~SR&1v)7RbLT{i+O+&EtfYTSnAS z?{u#)$@N{{dqF9e_7t|e>ydd@>DqhIiz?zUPy2vsWE9BH5emDf@4 z*Q3dnVHq0iSd$&5fX15kT-xR8weIc^D{(Glb~JjrFoZ~*`MRo3AE<5)+P4>8xa^i> z0PdvCiRquM&XJCv*Vx^y#GXD!%jZZUlLDq%eKra+qimA7x7DhwJ>RQ`;QEpOAJ)^6qDw+%mX^5fJFT ze0q!1-_ypzLdL_RHz^TRN`bLc&wIJN(uRrJDtW%>Drlt~_x@9P)-!qwkRB8nC@ePF zB&Kkta%k$i&$4W}92k)o0ExvpTxEmM6XWw*_Wzj_H3GjRG9Wq&Bs4h4m4K3T-YQYe zbaQrH{j>%e=7vaRv{=2ZcxxXE&dxGbRAZeGN z$nHcXxV4bbz>3!bW*P>RB4c+*sZ`P;i|s(J|5>f*u(5htS4R59M78^ZeC2bJ&RN$D z*kgJ%eBjGbYegh}a+%cmx-eaUj!cSX5-oS+RTirD6%rEhh?(0)kq%S{tNCZIwF1w3 zRQHSe^gL-A1_#n}#U95V5Or0FGpZ^1-Crmo4;>qIf%#udcgwe}B_H%GPvZJvD`pI7 z--vBB)a167P&br7w&XTx3p{&Whu#2}?C)f!v_0eaIvxbu?XDq(V!+AE%jIe1$XR{cqI7c*=JCIR=U91Pp@^<~S+5xAZPDXf7xIyy?7C@@IpVC8amS+_1_RHPUd z70EPFU2b?_4n|?XDpc%#1BdDJvEnfb`knToZEvWWdX1ONZu2>gyn2fv>S%_v0bC7Z z%d3ach#u`AbA&TO|7cu)0Hm!w99EyFw3EUhLw?P!?XwR4y4sKXJ;|Q7YwN~X=E1C$ zY0++x2hsi}CAXqHrfw3M7!@p_!y@A=ETMFW0LE4P7>i`9Lg8Qwn{?G1$&uchI^~*?5N9Fk<<^kNu_&nNW(UdDfo)Zx8ww$7u;66^{V9j6_z|!JiZ=I#v zqZYUK$RJx&Fbgb_=W}pVi^E9}O;P9!Tg%8u zF8kq{S70i5?tYg+Vi`)c%x_j_KGxUuJ)ca_E>T1~Rrt*7%6n*5h2XvSD0ncT^Dw?n z9~44^|C=KIo$fCj40~ zGxRyg!LF;0w)Sx(ryQJ8UGZXs;P=`_MLw{TUwNn1gus_hjdl~S4PcG2yAS_4RVniY zP0M-GG)0de-ts2Q*T>S=KAW*?#5ApNF@CMC9CD>;UK>=DW~ zWps!m6`i7VY;}^tlRaR9!n;(#s zOx2K&l%!eVbE-tY(ABJqORQcM2Mq!yl%%GX3B}rB3Kw|CEd20ELNRJSlRiZB*5cQ* z0IhGn8x-7A^t6O6M?IaAR$M=Y7vgxdj+mIht-Jkw*eSt-vSs&!v((hpHwr^QV^mvH zbEBUednL57qfYZ#^7gQrona}*2ZBp#@vDH5ZNX~;(t2;?5c>-q;Ub)G%=JJ*0l>D7 zI$HMyDFyEreRv;X8qTv znE^N)GBrypQ4ym^&IMCc+N9@s(JPu-u7J=9$8g>G4Q?ikS|53x1%G{wrAJMzc8cQL zXUQ>X>MU9Q4Rfm}Pn`oH*|9pW(_fGCB^!hAimF7QA($d{bKB*`c{;Dfp;y)cwIf1` zgZI(nnrmzfhu$}Cyg8@yIN2=-tcxhhU;{@*S(tBFI-VcA_1p+%r7Y^_y-PkdJCZ-w zpT%gF^OB=_YwdE#xSPHaD%+`~Dx+j=Lnn?&MO^B9ejY0fd4DXILzVjh(wz!R*v9KZ zJcG{!;l$icg0{SLvPe|6cnxhC)G-+WNInMFHL_|vc65HH-E;l7MtMd27|Z&!@goPe zTvQ%r{O^gebO;CGoYWc)ehx+`RKmkh!}X7f>1s(AEZgihD&^o@&9iZlP~$-663%5 z0l-%~5+a-q$ppFpvUMnf;gn$KOWX%-hZdt$$P8>cH2+AZkCD!?91j|=B0O%FFWv8` zgdF>EjKAd7cX3+TPj5LM^s1YI*c73aGmS(Af{y>PP0O2fCT+;zmJR-);6WAFrt8}M z%afI2Ne|+iK=zjP+4kC&f@;n4tbDa9Z}?2E@K*tn_{&*(Jr;-zF;(;vZ&Xe0Mh3g> zUr-2rf1(inNECvd3z@I)ua%HL1lfr8rRPTKkhiTI9;|E$w(aEiDjl=>@}*T4yz6UH;lxCD=+`AGfWM* zVw&hgt|Y1p>+6I5nq{$YQ$$0nk8O%Dx55dvem#v$I?D{O*5Pq&+H{hr{?F zG)*u-u4D}4zy>R^YH>-`bHXj&CW@*XpVstCrqWN9`ubrMC?PGHTl=Az6kTxpqvfTr zoD2F7{}htHFDv_dJx%FM%qB=Jcd|E(VlrVcFoWn+=Ms8zvB3r&SUWd9J{<|FEI~x7 zT(8Um?p)gkNlI`Qs?BCmjgB+aI~8;XZDoQRiorAYqk|@eIMgdz}=rKytQo- zOcLhZ(U3e)Zf6H?kII^pqUHSJd~U7mExeA!Kvv`Al{bUJ<4Tm8f%G68!T$o;6EfF2 zRfUATG6Q0LsomAZ1%xTBmha>~+}Nx;sCO5<8ys;xyLSw^V>{`za7j5%mI?MAbt149 zZnVC%ol|#qp3K(9!sBkE45J1>?18LKxo2-t)lgjEUAfO9ArOsoWt#!|_|xtku+19B z#r6*D9RpDF`>x6gz2vKp(en`epr}#@iy#y(qG@|=6^(Aw>FM|CG2QGH({|BdNOwC% z@Oj5(JmnUMhYJt#=z=uuvqyb>?-r(KX2?tOz_tpTi;J7pGW-7*Kl3t2-)`~QP>Obm z!ya5UZu%R=%?cD{4(~rKPzbp`&ELWtlYpl%EMX`FGThU{vxlSE$iiONh~aNyw77TizL}YwW{Eo`_RGM%q)U&;WU@IpVh_otyF^&xTOm>iv0Pcjt~f zRx!LHmTfOBHa6xSKU2V1s_P}iMk~@&Y!+EqSyWV1a{6vD%}YI>(?z0|yHEb3g%V@& zyWn)-#|82qtMaRXNo%*g!P3u$Lc)v$>Or+dH%8uz(qY<$(he7#QH8JICt`m4N0Ri2O z>wH#iWGh`+KLOqsfoqVV{p=1>LsXjr5XPS}gk%?A(g@D6zc-YaGbj)5Mu# z50{OuCR|SG0oF5xR|kw?Jb2N?Kv7er^sq+sYu8%1@EF&3z;lf2W2O)c%R9C>y?w!E z;^BlLk?LClx&6~YG(+V%X`(!%et!b`em9^`UflgbbWP859VaId*1K2rTi}wb8;nDU zrLkJ$F3V0u*NI&@OUcazH9PC7j0};PdQ?yc7cw_DD=%-T*p2%0A*cnwyKYs~qP@F$b;U0hdmJN!(=59amf_hzHiQAXR z?guX5z<)B${_9StJ8$^CAL^e!)A{`Cll?-7_b2aL{NXv6LIAv60^Ei($FXW-h-5*qJAZ#L<$of57&qQIT-;0Orim%|0+fdt_YhwBoo@7h5(sDqbVXZD&@;f%b>Z#Goy3 z5BClS4xPnlA~25SWAsq$`mRa7)$xPws*RQBpZOq(+z#Jv;zkJO6F0?gGAq~n&U%LT z?3N@X#b726#5N#@aq15Rndvbd+8KQbT|c5UHWJ z5UL0Xy@nQ&z{&Hx*ZV&o&ULPH@@3}3p4of$o>{ZjZ{3qvU2RobYF26h06?p*_F4}B zprTYSEB$ksQh>P=R{?-q0QJ{O2Jf@C=BcdHj<|aES8e8jLZzbxEo@3ZBN+@{zkRA( z!*&r6cdwMs`a9o4wZOohh}*LfOq(z(R>-CR&rE=Xbcns1X|5wR+0l4;WW%}ynC;yi1Jhvh){acaz0HFD|{CVT5^}l6= z)_uU0e=BYujVKpLWOolKxjI&l&Xi5E7DbC^d{v2D$Vamr5h%k;|3Yc|g0@(%j3ayg zF#B~js=TSAYinEO2I4`|rY`X+d629;NWt*%;P9Z4Kzdz8NnA-HB69gi<`Lrj z-k_i=7V>~wN)QMa5(r$>rM%sV7p$gE{@(gku5e6-N@(uod_9cx^Wf{B`XUN%^f3kl zb7}Y{Qz~!P)dkkqN$swEFHI9K(e9lPNbiunZ}7J40PjQF9Fp2sn$M$KAz@}}yR>2> z#;V7-oTeEleQCPI8TL7>K<;B_PIgYcK%|j-8Zto4y6xUD?Y*r+V6r*w0Xhki!N83C zn^#0^+%^UPUf6qi?f+~^kPH(^w*(K?iTX+?M(72dQc1VGFXYJ)W2L3i_)zq=NRMe- zU)QS&_?CY%TBYLX;AVf{8yy{mA`2FEWbtKg+2yYvGyA$a%?)+ESXfM!|7>}y2kymg zU`XE+EfAp`?9Vdm_>DaSC9j|seLGzWy2q-%#pG<=QB;Hl05fyt!UUG=YAI8q>RV(% zoJMF)-iXpI;a)eG($TguK_oF;NVFiyQ^VJ(KW zv!9lg0i99V7ZveAPLDc)lx^FiF|Q zXn4NcHn#0+|I(2O8a_5yFVe7hU-9mbFb5L=pvy9m$r?Ve8dn>&`i}u+j2UJ87?v^y z*I@@B!Ky&d^-hD)d2Y+M7$#>$NTT7?OK<=C<9X@1toKHB;TBb#Z3MV9waas$M?w}P z(I-|!8qjh*TBCT9Z`B0}hUN%2Ec%)&Xl@&WL>_4BKsQ3P>7dx6e`j;48E04r9Aiod zk_I0N3hNz6s9N!pTqam$8)mc%YD7t{CE&aMOVBY@em&|co&(=H?B6A}LW{eg>%5T( zjL^yV!N9iG^nUK<6~NZo)_Y0J-7<16s=dnvx$0Xj&88_}#4>MTl6aGHF9UvA%A7W) zFUv7AA7GPn9T+ucsGd^#QLVDc#|$M&(91d%0zD*7-WnIoM?h=GhM%_t&0u5&Ale0! zJ`)w25v{Qh@6#Pk1==x8fn|m(($TlN*z4x1@6iIj6ReQ=5HqbOCE_|j%lcZxiey#O zJdsZ34JhTG>4wpKSq%-0c@*=sS z0xT*(;1hQ^m)R#U!`v;I@7^k}?Mo2&QVByxrLtnIzSZZriBbUyfw zE7-&0u(|5$rVVbR$(^H2NKi`x&~=hJM}BklN4$>W#RkkOEHl?Kqa>k;b-6wXvk_NK z-o+;_@XH(w0YPV{XJkBjm+}_ZHiLGrBu-;6p?EB>GMjm$2fEFcnV!D7{!o0sriN__ zs-dl6P?caA>bW*i)M7uKkIws=Xx?b2WU;mXC2^_hT>;(JVx2G12s`6ESsYqddN=HY zl4%CZehu$bm8CZi_8@SVOXi?06ck`N>u8XI%@H{3^Yixwk;<5-s(}razX$qXDyYrE zJOrjpIC6oMahSoJcXyUDf_bHkt3K%>azBQ8K|Oa}=W3l_8N?Y`h3}8r51h#a?BG_p_J*zMc-l_8vGLy-5Tv+5CqfeYg*4g17nvug5{}mK zMn#SKSvQeUY>Lb~fmYUHnW8E=>P4bYSg8{~8(NF7WL=bL_x#q-l38cE2Y&yT0i0cZ z?Z%@VnfhTA8iC&d)p+l7%htP$+N_PVuu6WOLpbinT7 zkJGdJ)b$zkIqHf^x^wRAfNsrncFqCm&VokBds=}jxkWxPa@%@5=I8xP>v&_*%?Jp z?haqQ2;5j9Txr{$hHIWHJPQ~Q6qQH15&Cya$Sa%6;x?xvI*RAk7aftY>V1paWJ{T= zSFh5r$no*u*2e5n*bT7zEY$X=-_MkmJ0PJ3GY%G0s{=38-9cHuop;YHp-jrY7rERw zdptaLmKrvXx%|ez6x}@8#uQCAHdH_aAr;wZeXy#puWxPb*M?sY|7x?>J=2g}n}E-@ zhM&uX33Yc3HfUwh73_f4@QI6v;2ZDI3GQGw(YLMI^JjsyToQ!klY;}-fgpv}&=BG= z(tD~}QT@FG_~9p$_LA_nnK1|lCBxaZx=?LK*u{) zVgM_=Bl^2Oj4r2ni0F76Yy0%wZU5$z4N%Wdkb^eS2=4Onl?&xw4ur8NP~fgX#f1MR z8o6DyBwic}QWp#^{}w{#MVw{R)O*afy<2t=50}fLXC5G$!^L(HM_=@42dtW2i$NhU z$62uO4u^yg-~B&P=mkB%^fk(!OK^RbYei>lN*8P|a#7wu#}IK-Dr_oK6G5eCBK~b) z-MHvZwABrLDgl3`rKfdiQ|>boo(p={=(xUEHuSgFONOjCsq&WWwq-o*ge`=jlV8OI z?93gvzoHj4`}x8FI;DDeLf>?9j^AXt$UfR!>Ws+^J;&zAHVU5(x9(j`GwNJC+it0^ zpWw|6>F(Hf14{8f-6!t0iEIY3&|b?>1F1R!7bIrC!<6jEjqYZOdn1p4GJ(N%b4{z3 zLiXG5v^{oYcM*B%>He!6u*C4w@92g1n+M(c;1k6&6A`hI@1aDcE7uKz&k!ljf_(rt!G2~Dc3Tw!Y;RJp?SuC8lFiJAXd#N{`X$=PGnIA4zBHQhrTvb~FTN-(}x#y%0bIG8S z-mT(y%f+?R8-M;JB`4QdpJz{`-MPUjAAI5)5Rj~MoI5WY=)PzJuTHzly~UmVB~Nx$ zNAp3I(o$#x>ozXl)wtS%N7#Q;`FKmb-ARn)=#2a3g?!Lht4*1C;=<7*HjMOi-j_sT z;E-E}xWW;sf(;GbnJDVv-9<9py7SCw4;mB%=Ux6={vJlJN%dS*O4Zd-DtyOk?C;9f z!Re<}g)q+)L}aHHY#wX9dq4hyOoU)#(+m!d(z@>o&-OCFD^X6PKN`3Jv$L{(+oR?W z`}>+q;N_ZqR;^wO3ESp=hP95LEvpsZTU&)A9^B_M348pq^U>Mjlh;Po4vvn)8Dw)0 z?M8$9uR0%2u*O$ZWVPPDILDWS&{PJB9^dF2>_jI~@`Z8HJrFjLCLw?ByZtiama0yqZq`lK&S7e>6 zr7SHWTLJ0oNq+gxev54fST0ZF1S4?mD^u4XB&Vq5Pk_uS%Q-dx@FbaX`8tUuIL zZ(T9Qm21eSHae|;IbwqiTo56}@oYPozx*Z0}q+h%;Pyt&s+^P-2pDo!NkR| z(b}N#(ChSw^C=LKo;{P$X?!tcb&3+g&rQpa+7XXbXj&c#ODrRmHDeb1HBZ{4Fc{~> zpk-`nDGv)vhB<8ekbW=p?>Zzqn|<*;0nQW8+WX^p7&&&k{+za-WqnncT_z-$&`8@F!retPyhA6|M2JV@I>B1j*ku5xhp%Y zh+RmLS-|ie?es9Z`c;p%J~G4R$-Nzx&~S?ow}IREzcuiUTW^V{H3ir=uWW37wRj>i zMXrJCq(u^Z>bUu6W7c{5koj7!Co(q#_a;hP_wjIr&y}BXNZXZmFJ{G(?84SHs-8M+ zE3Z3eR*vV-c1C;j^v7FU<#@x7`+g=DaQk{-nzg_K=&HrNt=}b@9IGE9uM1zvlJeZ1 ztaB_26%fmf+Zb!Q9*7M{DpC0&kdS5`m;&HYNf7zts{TCIJ3s2T?T{m%|@`TiZ zuU|!ggNxvVoM!dA=`Z_5$HPCnjr1~HwkPg64xsaYG>x}H|V?X?fd5$59M-{_YE=SrcS@CC&!<(8z z56&N}N5JM3{MLV56l>+A3u{Zj19x|Nuf+>@#dQrQ{^JnelO36#;W{~Iv_h(PY3ZucAz7~KNF(*w8ye|J_J0#{S}?NH zC69SgD3Q3+6zVqO8GhyWC$?+zg?Bt$4Fu)>4lg={$YS-&VKLa0ZQP`y)!Vyy?ZXSXdyp|<@NE9)^C zmTFHGQ-o|qzVc|Z-4DOeCj5ORD#~@^n3hd)|8Or`VcV5ovOn?5V?L}vl1@{rk}~@C z%Id0mRa#eu-YS4QJ$pz`vBIdg;INliQsCr#B=+G4T zW_PruT8M!^s-!6?BT)`Ku=Y3)b+aPvDWpQmYkDLKJBCj%cQ8#ZYCnaCwhsTEaZ{XFa)UgVeK=z zmd)eOpMSD>vK((@?Jhh!y@tB&%cFg7cXL}}ZR*`}w<3P+)d`A2OQj$!pF3<(#;^YJ zpABCxzp*^?y71!=B<`TPeDA&qj)r~eLB2<|F0&PHd`>rJwnqCT>GM#BqwBAYx)N2r z0g#ZSOaRFwEUb;Rz#;APT&#BQ`2ZD_p0m?rdAyG)9hc0V$sa{N@PQa5A3r03*vJ;( zFl4rOoZe{**aGrOWH#5-9Hpy3SJge9_Ly(>n6?u^2E7lqD=fKqa+GB`-=fa{Yka&e zd!L?tI(%@Zp=iM%dH<8@gm<7Q{!U|xg;~8*o6ltCa!(?WNL1G(2OnkUOzdyCa#GAl8UX|JMxsr;svyjLOh*h}w@sjE+%+(yGos)8MK>tr#oL=Js zBADW`yqV(Z{Ray>D&yq}5B|lt?(Dp$1Ik!rRr8lXSOiy7w2%#?oidbGlSr&8bPK^?ZNxkn}6a)NQVY3<^Yz8QT2f zNB`nhs|g~rmci7bmJa(;KPV}sfR}A`3Jbp(!`v2YM`veMHC*&8iCdi)eXIY5r!p+7 z*ll>B8DB>3OAsAH~q& zR#&H}X+^^ygVFl@7E@p2qg$==?6BF@cg!>-j}y0CLbLU2RM$!=X}$-=m4%7}VKdG%3I*vrDU z`9f3QA}?D{^>f~SATtQ#mR=M!)6Jd0AVT%-_)UV?w8l1{E`|H{KZb3&q+wd0+6h(B_>?m=kxDg)1mh zMGIZ^)L4jnXJ-~xVHYgtw`LtYL$Hm%(}wic!w>Wgf!9PPhvrBYWh4}bec8(cl3{S& z3S+MS4x{B8Q{M<14Q)r$Jj0uW?X;tYDWGMK0_hWWJnZD>DERKC;3LtGztu9bii(R1 zOG-e5Z28m=_RE+12E>RdCZ+!x5t~|p-v|DhNqt}9(wViU673uunp#@YFFu;A(?&mv z`Ej$ytABEmBx|@~T%lma|P21|79AwscTx+Om zVxCEJ$RsT}STIT%=h;SF-`F<4n$IWe3s69oq;G5`v^rk-Svc2@YwOx!n4VLenRLO< zC3N6G@Mbs;n+XqnqG@hG_<=EA)Be7t@ST^8Eb>-H?ck;$0uInwz4L=Awhq(-9))gIz zJ@c63lY8bilQ^!4Xn44MAz3*w@^gGY-M(h5P|$-j)EX{X2t zfeT@?7Yjj)GUr?+!`a8JE* zG`*&Lsz8|u{2Q@b&W=NScz`cB6Rns9eK6wqawCwHMU zX4Ln45;K_-AR@Vo#i1o(9kCa{361Sn2ICrH{6Hkfp@E5=nvvx>{j8N^~&)#H@~ z;-`RbxS#h`I4&g2IBh9qv}LrL7=S;XngMJ31MIWW@p`_YlxLV0|pf)nWslmD>#`|qx~Y>N`#tlfT_ zQhVNZHqT}tJhPGrIN|b3jfsh|FPoX{f(GOSr!ZE|3n2yJt3&#{sjF-6JHFFthP^!A zofVEUbxuB_0-acP$@g(fr~}QOdcJdAtXQNCq+vVi1EppIEwUs$ClP2&=aX#yIWr=f zWifDL%=T2?wzf_jB5ZmKL^A2Ss~OI03`xn;!_Gl~{0BEgU1^LXL)3QIWWz>3hObom zBb-$f?Jkya$A_}ezqSSz4PE-eFP&2qW+Xm5s4Sdk;u>ea>P4`A=InD^;TUSa5-Gq) z@k~6dnqH0vTc^)$)#U}@w<^52)yjO~0uJ+XIv=ww!#%=G?lTsOY@*CVXjT`jSR$ME zlFEz1?8~DQ6VXeLR6|=4GmRd%5t||W_bb6c@vl@Iim@)iD$y0b>qSgDfhSwOyKzVN zSvfg9GBO;En;vtQG&N@`f-G}$7j>k=zea?wX3@XR$jN~MN(E|r9Y>h0lJv`{>D>%X z7XAGM+rH-^>h6RO_Vm{twoX6dlWp{L4Kh{!GvHUZcT*~|`IA=u5h4A(oFkE;I&wLR z=??;QLUo<$?CebCld9X|J4@kQa3;_9r?|DJ@kW9uXT4z||AE0Q)%fuDbH7(D`CPlK zl)LMKC#j3v^fJ#kck5clUUSJzRJmt;`(`Vgr8)^^e83_hD(X29N#EeK5Hdo0Wv0QI zJSn9wsBoS#j`Mz}Eh169ivi*SJ}W3JTx1>MjIF{`P2P`SC{A~v6ne!DuM=BRqN>r) zVik_m%4%#q>4@n!^kTVm>O)zJl>p{kc@zI+dM6{JfIf~;;m65$Thza_?;`Qw)VlG` zM1|x`@Hw$kQCwUMNes|{CfzE!+#h^@(^eSR_CqJnvS5d0f0iqJXEyLf8AE*LHTGCE+wqaw^pn8 zV^UHbM%|S+9SAA|`mHaRI|S<~8)(FZ=#`{+{I}Zl!du>r4ECwV_9Sv9Ltd6Qz=Pmi zZRB98U5`+C`y%7lInAEP{S@p!x5l0?!Ho;|f7jgO51~R+3pX>_5_ZLlajj zY$#D?z$MdUMQzh{_B>a%4f)1hdx!wE&>(+OGu-ex{7^h-HWBak^As7LUh&FOq`}M< z6KgiM{xN*@S-i{oI#yVa6)cnudpA$jvy)od>Ngq!?=_%h3%VeBB8_Uh#>8a>TUJWy zCvNabUmG_pdz2A=YR@`U__$B75`|{U;S8!(4853K*XM-_GsL1;jEw>uO34@~(_;?x zDou?y&+j0tL~5yVL*F0Wd{b;F2tPwDDwrR_SunH z>O|-IUh>cRHm&(-jJ8Y+mq&#>F8qb5^`EU}XqeQ3&B5Jgc~DBfIK#F`=h|HkRvtUK z8b?M`kdq%8dn0BXvi0QPjYO@?XJ&N)ouSLQd{Z4{3l`P8-Ycty{Bi*a8leG` zk#(sAP-b$5;mMqUbU3oEq2TM+H_Yg|518Q-H+4k``OsgHiJtReVd|xZcn9hTfx;=L z`hepuF)yVL{UK|ym+{(d&Fql{L@Lc-LWT@JnV*_o`<=qE@At|9p<&;wo9Z8Sw#tWp zS;f20HqI&HIzD~+q^SV>sez$H4ECN%&<5WmdxoNv$J>hfO?7z8s$l00qF&q)=BG10 zHBqrS2nF^vmXar&o^lnFC*Za*2+*-<3vJ70)wXQlj-s{pt=qS6Gv;OPku*i~)DhNh z%EUB@TEWZ82S_~&U{zyunc(~*KB=a#@Mpkyy?@TKTMu~+I*`Jd1 zx`Ai)gtN1&R8+Y#{>|?quU(wWBLCW^{zKlmSjbesJEB;x);R7e@Z*C)8Bz{3H2+LD zI9BK74U-F0qheyX6vJ8rwm)ZYWquWsQVr zcB0w`?kCSp{^kj_Mt_Pi*NAeT3HY2S|9u=wBoOjsoV7!1pIeq#7GfV%>ZJ^t|CoX< zzId94FYauZ(bf6_(nESI)E>1VaAd^zm|l?@!{iug%Wj=S5z{pE1dbBAEQfjC3MY24 z*Kl6w;+&qw&`Ek?R5aem!aO--NS3kvbjNgN(AF8~BQ^Ge`Yj(cs6*I~Uc}c3D&2fUwpj=EUOolyF*NFXn z5J3&c9pz+Nq;Vk3_U@P{|P{WO1 z%bSG}mrU01K5@CCCvy*&2Qg?nF)qBcx97f(>%o#=K}X2*cd0e`d%Yt#5QkioqMXpn zu#fiY`Ihr%qob>vubN3D#v0yVzaEJ!%c;lEa~<6Lr@rNov6)&HbR8I0rKc{YgLC`V z$}2kGdYTORKKtC>(;;Mk(9o#ba-5PBm~@>ot>TosCtP+gTg|iR-{Wo-LMUpO%~z5# zk(%3{ErDHaa}dd@e~PIVnojKnG7j3V0!iztZjbcc|J z^4r_PS4o7Uv_9B;@MaOGe))v6=9@R{vbgg^#SqVN+#tlS^iQdSmMc2pJ+_E>Wim-K zviD33lUfpj?*Q$FoSwH>g&j3?+ubRF|}#_oJq`KWTVNuU@M9LkJTl zk~N0wgrh)oR)>5eSiS&(KV6#Oa}sKISpFiVAo5jpuDsc6iBum#$E%oykj)%S_=SG* zZG|Vewjai+Df&~DK;z0pgLM0&SDQw{yKS4tR^csXEv$5H1Ufih)OB^MX0P)hcbuUH zC}7)ZzLAWu<(yjgHF5L@!bAOH)pqLl~2_FG6qb`CHshY(rsW`V@vW_LX1>VrHy64D-mj@V2N zosJl87e)A@f4=4Ki)8@VVPLKEtX0#eH-=4P!n1;u9$rfKWVJ7vv$pVj5gA@mlEd=+)Pa|GwXpD0({c~x z>ue^!x}Gjj<1zSU%3W5CTmNp9YX5#x@Dsm9tpbA$V6hTe;IcoDT-->YF-Cy?!hG!u>JAwyu@xEMuWvS!rfdl;U4(~ zbi~W_gHPq&bgpcphk#_x!QHeo(}onZ#@({!qpjJBVE}(tPww+Z`|&f5*)QQd=xS5x zt=y;1W&Afvw0GueiZ0r-!p=HE0s>7le1=2m`z?lKh~+q++PeO5rGC8w!2%13E5wuJ zIK5NaGtkaQ^kT5i)1H~};kLu>tZF%4#`}uJd0|1vD<%~AIQ%H8#D2St^s|i=9W=gU zT6aMRI8c47#kRZ9626RcKk)q-whUI*1YanGx_E>wSoz|jVkT2OkV9t`_IQUl+)#gC zU;5nUwtdwC@?xLavz0W5taB_baqQLEPM8PvwZC9O4Wk+YeT=@mmd0mU54wynFpCx{~M2kKg`X|4J!~{@Mm59 zLz)vRI>?^Oyn~b&6`Ygbe(g}!?9AF=Kql|pF;T%jFIGn@x#ON>8r~!e>T=j46aDcKerxOyB+Dt z^|s!7tYVl=tJruk#29X4>a0#3A^7Ld%HMS^AD)g@Yu)^BQu~I^2CVUBMTV|hgR7UO zWSk}g1mc5WR`?r<0}WQ8A08}P_e$m6YHAN5>FR$NWsejsXa^YvU7yg<`iz(uzaJ&x zD~q431-y!!B7EDqXtd3OS!`HDxrl*jXqVZ_L3V46f0x;ZHmj352ue=H_}2ObC8z zn>xbfzM_=5OIzlT+2p(5=+CTECJnBo7FvYnD&@IO*s~qf9UT}))539wu2uAGgB+s% zJqzXEM`!x*<-bz_op&t`ct(^@i1JoM;WxilkBRc;yXh#x_77nS^RQJ0Xma5UBRR*b z5PL)+a54?RV5IERr?PPejSOSxTQ0@h#N+FE{5at$qXzf!jUG=$NH=ABGN(JG$(MQV zD>Efk7;wOkPi7vN70;rkx8$}5BFbL;g_gZ2l4Q!=?;WtKcjExwUx#@S9lM&D{2KmZ znbYoY6#yWAQ=~qGg?2MLo)8VqPl%Jum|f%W^Qk&%_$l=0Ovs2r{xMbXWWBI*ce_k$ zKuy1RKiw=fC)ouwP8cIY9Poi^n}?{czlTu-2CvuUAf~mLe(z zLnO4E8)g@6pfz4Cck{aHDoPXih45`sdd9cp?A4%uP!9mP0?76eJGUW{Sv7V}T%lLE z;s*`>rSG1wR9_rK3CpSG_h%~vj0|>~yOe-wLXJ&Fx-aubWe$YLSqkl+x>au&5&iv7 zWI{;?I@8JN;J<%XD)Xa#{Q}Zqdhpi}_6Xxapiu{&oLfQ8t)|f&=11o0{@49X`!T3- zkNrcr-^TQ%0;OHHJH?YTOtBrS+JS!OK9a%tzx`SDWAc}|%EQYAZ$H+5 zWJOJO_E?YfnU`5SjE}7A;hul6Z>Kjm`d(4dSc(~%N+#IaINw2#3Cp%Qv#(Aq(x1x; z?zS)0Gb_s1djZQSET4e#hrXeOxA3ZUA8~sni%Yse6k6@Tx3-n^GTTCai-TRl1^Q{u z#@xJgpr=;`^tOs0niCnB8dsOq64wGtbJy4AX!$yzuV)z$om$aS5SK;xtsCWRrKFW_ zkz_2jwXiCcCXP}=#pm)l@DBS;H zHX)D-6spD|O#{2Ov5s4}wY-_%ps&k#kM;nS1W5;f%ks}?nPQ+&r==YRF7b6)5Nt#h znuWi2#V-3P*N^Lf2o0aU)k_pgbyD?1-?yCH${OF18H^^?E9exTM7H{d?lnZ^U#Sf| z1tSz-x^xc^!KzdH(EBzZBCdI*;KhH;sxIU0|1YZbGNmQuXU+Kk0Arz$@X!BC&r;yO zihnNycp+>Vo&K%--(2kfdk_D=(c1shMSZ`0O`zZCjI7HxJ0%u&8MIHh+BEd->$ONr z$B|Vwzo6z;w<57U;1$3$YnaZZG;IGWy#O=)qGn5^1{TLrh+d~&S<>QBE-E!lOTHwo z|3RH!cjD!gFlN><736nyEgoxEYIvBeZ+iua@3#P$?K+p9{IX za?@ZRv`-mJKHq<15yR0lK>;nqPb*kl?-f3PNK_@n$Iqu~MJOm8@@Wn3b1MK02 zgjZ3=ml^~8l1nYxEg9SGb<3!!S7r;o(VWE{V_U8PUabH3pqd$q22PAll-WKir-HlR z&YdcnP?rC~b=4$!=)dlmkR^bAA9Z}p7b8kk^dUL2-Y~j*NvA@!yxp&*Fiw< z@Yp*3E8&K8v|OqW)H!FuOch!Hi&QOj4bZck*{4bU5c=i6Rq|<|k;|OIQ{QrO$X$+H@aE=t7FlgbH4(Sj7yXOzBR$(wfoIR$x(}WAy=x+4 z=Ej=T$87>FTAex?p;=7$*olex=98~()9v$d z6J@D!%p$!*L$z}*>u&IZBJ5}n4<&5YzF3d>Ve4^sGUQMG18y$w<2)oU50Bh4j}VKk z*bMQo`h>m1vQ$NF;?P)0XiS29@Nx2oyfD)FMBgcH(46+(^U~?}Kj^nEHmendM13qQ zwg%S6zxX$K?+t2YN)nGCEIo-F4PTY2(cwqfRcUFAk88!0J68JqoH(qS$jHW70&H%U8;px0k>oUW@P)1oI`Vi@#zY#0UKktuySa*P(NVOrQoMe> z=W+7;U_vc7fv^fQigz3NXM=}nG8 zk8UM!Ie(p~GJ7~J1WlFPcIvKDOeno$Sn#01U%L5`=HH@Mi|X581bp(F=aytml;11? z^^VswCcu`hI>Zs=CAf%twJDlaFQEuThd3ctUa{<(Gq5e(vn)~lY`>yvoHKJVJgV1H z_6(=GU$yPhE0tpsezwxMV#8RBdWv&gZ{2JvVb?Y;zZ6>xI@zkRoLnE^I<2f6u-9Z> ze6rVFHQ$Vay$CbnCR0Ks;8=CTY8wJHHa@IKrT!iKVRomf&SU=UfRcoFjY&BY>km6&jlbtuSQg{{1fWcsn)+Qa#k-i#;qy8Rx zz@*ZAaPqqII)o#FgPlF|wZvkJqwz+D_|nqtLG#9xpCty0l(|aV>aEtP5>H7Ib8&GA zqOv(;0w{V630EOn$swdzotw*9JB@+u(gwkU#%$nam0TYKwq*~uCXK_cVoS!ICSsyg zdtEk>7iY`5haKCqlCm-~f>9M7v?`rbgE*#<4AYDQsV7gIPJ2O$k=igdxrz%fNW0wm#b;`J@Ccz^u-8a05G&Q&> z>X~QdaBjD5P4Q2#SdMtnaf0ze^%pl zx~*MIOLe7#S)<=56-U6fT$oVtG~)4DKlXIr7D*N>$Zxm!OGiz|;xi6aqG&1Ct$|@} z_F@!{@$R)hg?c3#ej8(kW7R@3l_qV!#~vz9%Y%;A7YbHCUf@j4?B*L`Fr8fmGDRmb zH%;UVUHNfms))k0Dunc!L5}%qYAuZ3Q(ZkpJw)NO*s`;;KSsVPywA?ASK-7(*nvn4 zGIRT0De}5DR_|Ol$c9GA)TV@1*^vNVTJM8`VpJ!lW@eebQB%?#J?zqRLgnzdI86gQ z`03LaMn-KS)zyh=bi18cCN=f()HX+q?X*N8pWVm|erO1aCmjEpq`uOqar z4tGM&jvx|n8XD%Fc>RInM1x@y|X;WIA$?%k45+plgQ0uXXcq#TIy zL~IWQA8ksxPg&r;c6kV=AMx=2Jzk%+a(JOZb+|420(TinmcdVt)}aoC%^L%JPm(ZS z2J}~|g)C8S%H?mSgoW+fc!HYN)cQ?d+SB<+JP)2;Edtsx)jk;hb{m3SvpnWcrcPT~ zt52G0>!YZn8S10XAKoq~r@EJE1l)AS!W;v>8f4iwt^Fe!^4iccdSP^4ftOpStQ$8- zbR3wDiJ@cTPgf`0K(G5TBQ&>V{IR=~%|vM3SS{yxlRr-|y+nKIRi!y>W~SC2RqQbj znkX|Lp0Rm$PttSl{#(;FdtPmJV*#a(zEs{vkJ!`zUy5Bj#Yp4vh(r&&O*a@N?7_Y=>0fwnkIL(yPBGl zkKPXn@)u~9qy_-YgyAmHSZKLM%hvy5)V%{R>o<9F3G5$MTPS$Rq%CO*U~#*4tj5yr zN=E!$;XZKJLWh!uj2QFJVyl`^qS5BhAe_zaPxo2y5Byw_=3N0ug0vcU3c#&bDs54f z8k&$xSF#E@dHQ+&+qAW{$!M!U1BSAdEvhB@^Z+%auG13-KE>^Rwd)<1ZNeDF04yqu z*6N0lZU}*!4+V{d8fdakv^1Uz3!$xdL2G+Ij2A(x!i2_V&^N0uUk_=p<@;VI zN$aCb7^x1sXBr=7=I38cL2{rBr4tmW%Xzfif47Yse!9a}#88^RE;E5}6y?8|O8hDp zB&MK~E zFU(Wih2kuZ9FstCz;_IO7$)+G=%|2?X_?A5jbT1lRqr?B$%;j zk{>+T%``qug<4SShXRK3DAi|a?N%hm+(EC>9VZA{Y zNm-aYTWZnNEAnNb-g)_KnKyx-d3oKL6YeiEQtv#G-yvlhUBpxOel#4Mq3O_#={jS( zMwj5S@JozzVinFQ_j6dxVu(S&H>sjyVO|06r)>(Gk#@NrHlltl;KKW{;=CS0C}6Iv z&KN(2FS1@=+15Qgo*s<-zI`Pvj-$NXL@Hgw&{`nr?NP{gf6HhO44b(I0`g#St`SWSpXqotOPP6Hi^S!v8uL*q+gqRwvHl`q>_%{GLT@seTB6;JhCj44jyb=8hX zf0-U9%EyAX;fz#O#|jPNw0UA_C#>?;)HI_l>^vbsd#WI}RDzY68BHREY)bkZh}@%z zrsRa_?>*-$57JCs*N~Ec+~$1VRIOUQpf~sreKo>kP{3JWN_7gdJL4b54g9sP&%{Z_ zQ2+eugU4x6Y*9K*t34`OgIy6|!B~5XiIa1*$=enL>Y11j7h@A=A{eIsVZC+lo}Qg6 ztD_^cCZKU=p2t-#Cp$YXLBAU9ygeiu?y}u5rdsCEPhjcq?>DP;`e3mFsd!h=y*(Sa zA!Tj-(&ks+X&pau?F>6T&3M3SRt-LTm1IxA`uppPD61^Jm7ALrX@aOOCHwjK42hbW zGBaG8fBt)D$YT?%MQx2Qe+U2tXQJPxpSjobHTQ~y3D23ERE)l!klY;7%IzEp2vvqqQs=Iy05Crx(Rn>Uf(d%~M& zD0p(VEK0DBbmej-`IT!_-{Q)z0xP2tiUsBdpfZcGsG*%JbH!S+@hXgr`mOBEzN?Lm z+cSaNQ^0EErwAbUu)hBH?@x`}vb`rK?H|as6MC($f`iMdSGbe?uL>FoA=Yu`Y*H=` zZI-%y%hw~yA9v`0%T^xtHQHxM)?VIsO4iygY!{4LBojrS>&B7JD7ho5diJP^g`u`J z9>s@Jyy&C3%jOi|vm&m-e%@8W;J~qW7FD7TsXB0N3OMTD+7dEl_4D>$pRS36l$1yS z%+aDKvj~0O<+y~O6I>t1OSJnp=Ssa(8(fV{>8`DBZOMhKterMB5%A~yt}}Mr2N@H0 z2=Y*1NtM6g+SK+8YLRl%!?cAmJ*Fxx`8B)bgO7wa)#4+zOTPf-+Fq$*e+j?nH?xEN zT<}}z{m!G6CFwTtn;}AcY>Y%A&&$h+j}2a5zL8ie96p>aUGOdNexJIICTxhx4*VGM zL-y3vK_s3{!W0?M@M%e$zt86e9i7PW2v+F3*mXGTA^ci=WcN3#g&Rpj?0wJS@^H&t zvz9P7lRuvjW%db(*D!st zIbk(U%>u)8al_hfGak#bYjgASE&jWP_4X(nZEc%#dxTPgwszeG33yi*M>#x+ukT6Qg-$;LOICu>q}co?VsAExew}bh+c1RUYi7V zk$my%}M-YReDn7D_J}%;Joo z30#UiFq!AiRV1D21BWpJFQFq(2z^NmH9}e2NU!jT<(i(yPbueaR>8FiPZgKwtab zor%bzfl^ET5|~;%*otT!7av0)5cYj_UWx^HS(o(YFwBn$uFL#T%`!N}_StfUoc1Pn z*0!^}ZE1Y$j_=mMW?t;hwZtT}E)RXDxS#e*n_x>^%z0y(fBq3r!fGq*AT;s~=vWNouEf~88IgzqR*2m;)-xfFwW}*Z_)LY~34ndeyz63cw z=^S7g4?f;u=Dhu2QH!t*Ia1mbecFY^;=(S-XdE686Ws?h0spWwL}wZb>OdORe+s=~ zm%aO_?skzF`|~EN%RjLa{AET^U5bO!f7vP-5YiFX>K_M`zGNa~)@nUbN)%KG1C&M= z$_Z{NZz@YBu{2Eh*NKVS+72RHOLTHP7R$!JU%9TG{k+X{F&8InzCn8}UW18?*>m2& zbM*C>CH_fW1{jK)?nF2q?Wr zWeWn*o6-g8y-Of~vX!lX2qA=Cr1#zl0Z}mY7Ha6dgwR9JUBUhCbME(^^OpO3H~+u` zNq%jux#k*kj4^4M4v+c@@&c>R+I?>M-bnls?<2cpZm#7vYfw}&r}!0z_9HAIcm&Q9 zTlu%8>P>;dI_(Z8y)<3nlgD4Jxk!3f>z*9_paT2v_03H&>^Xf>{wzR+H9q zA9;K4iTliLSx4@y{V5?pt)QY}O6&3t_co5D_IfdoQ&-kflW-Ro;hFDTR@}!OPvWyr z5T9-bLTlXOKOcp>gE7gGX_bX}6Fl~dM!a)2q05xS39?Yu6 zcz@10tCThjPg-T2in$)I(=ikazKlXkRoj{APLhu}#*4D)G-02$`W{Tj^pi%CM)pnZ zH@5yk0Xc>n4gbJXWhvy!ZiH?0mETF+PpAtsdT$UQ)11`WzwAQ8J*)SA@-)|;g!PIc zU@4dCS=y_(tYY%AIL^enlifCiFP*xEeRsAs^(c$UyDXpvWe^9uE^Ua{9&o#TbQ*r^ z$>QNNLls3G-}fDvW+j&36G>FJDN>+epQGV%oD5_@7t}te8&1j;{|hURzv~TRbobRz zmDS$d6ciIJYoI8gb=D*as-PT9wydzOJ(T4hgpX_1_iKUY)lJc+CqzEt!w{X5-zOBc zd_n+BPT`;PM}WzRdx+iN-~6A-DgWbQ$cfJgg6w_s*fg!|oJ;=H z2hfo0*@3R_L&`boYF+{~O-DoGy;GOw*)t4FOLSWw`5FdR{qeia_0cO@tY$_Q9)}Iz z5Q04(eB{!e^4!9d#gEpGj;HDrTFk}Viby0cgC!k=nxW!wmM=v@Po;_^ovyLB zBqc&w=WgkyQ_l3v>wv_8l!MU7-jW?uVs*d0Enz87gZ^%&7L&YgMYa9)BU|sX6;HR} zvt+lDXL^#<@JFiql-YT4TX%E`H}c|9j|w!o71-I%F6T74Q|&^-eG9m~yr}oQl&uYF za%sy52W>pr1p%?C##QMWYM8cy98_$mZV{7^^+a1%5uf4!ZQ}eovDVJQA zcnTf>`h4KvDYXw5s}1(Dxe*xxW<5VlAfl3=vbCS!@Iomzdq_LtvedKXiR>grD;C3} z8d^>l40!pA-~-`_}xiOp4N8hKD!X4ZdRZ z7_gDt-;?Psd=zDC&Z@|qCcsFu%xY_bT3TS39C3L#nAD6NZjlORCVz$2XJsw_<;v<+ z7AZA8viS?3U01l*pP!QObIUU_d{8VwPKfi zu5dNH>i@nO9EJa=Nbk|O+iUBGQ5IXejLq1|>r|=;jd< zexLlUthXaIJtOTT)EIEmPgs^apkcF1{IqhSiIV8U1a8D$K~a*4A9SCMbE?j20BSLy zLfs=687E<7KwLeEGRK_K1JW0Jf zwvWlZro#}wa$Uk5zc{mEmxtR~@s>S$uM86Ne#Z%A`(aPoEc*UB*NQsPi`KZ(s@YHZ z4y*A%VT?;rtr$Bx{q}8;^cQofOL>mheDv|qFqUdJ!jPj$P(S`&g-w|U5S=d!mlX76 z0%|NGTED0UxiZ1<>!4#-dp~X2vYf~2SWO@1?)Ia!Z!FiY>j8>xu(HKlnph#YzNFh? zcdta@G2W-CS249>*rFM=&1(A7rx*O?1GG(@z0I(i~ zZfWrag@$&%W#>U~6DKO=SMWJXn67f#xAe&PBYg60JV>3(hUHjUH72%8D?IzGn7pCi z=4T?H3|SNe)z0V8rP5b()VG%_Hg=4VaX4J7((0{>PuYh0;jS3U8_dZX=QYaPM|O6S z0wB_G`0Lz08GWPG;<>PDTeiFkLJqYQlLsx^MyXKx%JVC@Wf_Fx>;(P70JP9R+ggZ{ zs&P>m&9qSr`vRqQXEy2&urZXv-TIJ8fn~TzRC4Ob}DAg*r^Xan@^l+Ys>%jd@ z0k@|G-kKhKr9%}|nbum~9u5~mGVxQ;h7Y(>ro20-g@A+p+~>vSjl+LdhlN|@Rm23R zAJup+ZSO7X@OSb`(DADQ#ieMTei`)pB~twjeztKSk;ykiJ$su5$Qr>VW=K}fPb`Kt zrkGE8v3h0rg&Bhu^_#EelDk`MRG+NYKo@V3>P^PKx{X%D zfXkyfoF)8H8|3owsW*|d4P}p~%|a0pjA=5NeHA4FJ!Z7>@`Ul*FC=c<{oP@-(BfTb z;6Q!`#ltk{9##~~z1=10h)Oo@ObfdDw6&N$s5zL`YiR}(9#109Ejt%ED`J^vv8_G*4|V~#3C z`3L1Bv*O~ID?0BDFVMZ+*3%MX?09fZ2Ipz=uwuF?;`7Ii0Sm$ zSP9|NTGwRRZH!eL6`G{!KS&VDSqPZ#`5!8iP>E z6WyhzWOS1__gNqgiHv={pNcGS^uc`y`t+b^jju|4Xm4-N#q-5zBpks`H@UDfGc{!^ z#5ApP9YM=zZT%rb6?^^y#LdJwYr04(vcU?Ju)}Ya#G_D&eiOifD2AD4KjlH-CiC65!V_C2C9TV-*+D=`cuawb55^OGD1JQwCj zl6#w~xko866+U}q1Bo!`Fy_U5^zC5hQswz#->fu7#brt4lLRK=!?tCELpZ~3Tf zXfPdJ&@Z&Kj1s0Z8|+FJ9lPqoX*B6i-RNW`?S`r1-)9 z9^|m=D4LNGY+RTQK3CC3CnOwqq>7rh?h145^#OtMHZG_jE;w|1XI&Z|eu(>);kFSl zHM6xP*r{+8Yt`p^oFIMF%oZWA#e9ElM{>1i*__J3$O+}R^(UzPambLuV}o*x3J!Kt z=sXC+>x8#yDeuRl!^2Ihg8Gy|VN>Q{CdD)*ochSLMO3D)&O`42!2eANV#h#Up>PmY zG`+utH&!zlF1GG%WEY;ScgEiN7*1JFYpj$c{P{=|C*o;`wuK& z%*?tk8=L+$Cb{EPizKmo@zMl8veaj^cceUrUfUl&?VnUnH&Uvh_J^KrMv-gy4Ly*L zrqV2m?=P&7gjpODREKKzgngzMka`Su?F*N*&|_Vq%2Y?|ellVktxC$Qdt-5t7upDK zF-bgKvqo-AD~2eT9*vzFY5u%F)51cSY%-XWOMUGfEyblz8+0;SD?C0Mo1gnk&xq)@ zD!llk=V937=`uz3X*Un&s`W@oB@aGK62udZN!97wIN%LH9gJJyZ!nfwk%}e0eP?wX zSMYr=68OhE&NvxfB`HuDFQVp^@KvYhcgXdlh>XmnwWw~zZ?c5X^giLaZOW8$UXIHm_KAM$2+n4RhR$5X&;fG+ z%I)rc(nU0}Ap-^7j)pioU>q*RrCvS4%xlhd?Ab1cKk4_tpw3X!tPbTkc6XSq)>wA; zXiu}&I`*N=^h)i@yyrjZ8pUq4X@(L;OT4>6WQ|^LmpRknbk{RDtk)Jfn_GD{zehNN z3P-KY_l<*Qsk`T#W(pid4bbEN2g)Cut=^kud3 z6ri1(d1ZH2$FSAPHQG5keFY3v-o%dgAu)&B^91(h+sl+Q^w(hHXMB&3$tt`wb)&K4 zGgQIXeJc)qo*gfZFjI|*5yt%#PlS4{+a$UptO{_!Rlhf#2Nin#KTtD;&>J<=mN9O4f2UF;P&YTPD zZ_jczCo`(;UKW+ozVeTD!}utnR2^RHi|!s05n+rIGo>OoyYrnqC!-(83vRy;Wa=Zj z6&B!^mP|A7Qv~7=kSGWWE>~5twEcMQwz0MQ9_vQ;COg@~iFU=!GtbwIeKxX}H+3K? z&v8qp#1Y{+?NFEJAXWvnK-G*#43GxL343KVLs5yB560(}S&voTmV)fHR%`QCe2VJx z9ZUdi!YRw0d<`LwmhZ1cR(%i0Rb5nAU1;+YSt=l2&2QJ36SXM%eie`%tb(})s*HLP za2D2>&d#z5&q9ySiGzo=K?N6h5`zV$dF{71o**#9iYQ2wF_L*Bb6?nIX)?L-Jtk64ZW=Y(9qua=rEGh+c z+ZmCBRJM0~ZyjqK7ysdN=L`{wr#s$_kh!gZL<~i^0M2{|DgDT-!%lz=X=y#pLk%u_A` z(;0=bxUCCGm%cZ#db+#1dJ=#9c&f{%)ZOmUQ9d(|KK%NPggR)*M)2Gd9t+>!M!)Qu zh&?9G**1S-g)PSu%Z7QB?^1GXK2FK1e^nQCUWjRv|9eFzY>%&dwJFGJA!at_zZYZg3 zWGT4AM#_0LMEtC9Db#>4w-KbOB!wHIzPC+(cex^Wzw(%;USp28>ZrtOdbuREb8k9> z=3JgRVo!ymjXG6aB}~F&>8R zhxp_kw;gc)kY{!0BNU)ryj*c8eH;vc>)!^c6r#+K!~LhQGZvLVibzs#RJ2uFEZvy3gAcGR~OI*ww5(%pY=`nnjD5JCrd&hhvSlj zkZT^gzLO1}AG0(oR^Px5?i^KDR+igfo2oUPvx-Yfe2(~xpj;Nj4wje6lOX#uC^M}J z2#{Uwx97$13i7lzJhI6Al&11rJhflKv=22>;RyfY0JvO0!#y?41MSKMB6YWgKJzi0 zxW@0w&&1gI-JyDVR#vY)bawa!GgP4ms10Ixdq;=e0?b$bD}JP0hWJ(K(#EX0BR0Jq z;@7T|A3Wm}ojR+89JIz$jk^Vv!G0)Lbi~QngCExi9r-RG_s`o67dj07*?r+^8{$@B zUny~A%-tcz^_9CvkrrgX4se{tYhE5nq}dFua&%SNC2ULXqJ1^RyBR3B`R3LrDNn(> zOLx(mBM#;ksbo9P+=HuEqIB-PFkviDKzr_m1Cxc134H?+dLLqz6@z<+dnMKg#`8pU zu}VNg(zwS<`s%1+2|zr)%JMP`9+sG>zZ9ToS01r{LT^Y?7Z<%ccnRK_yt9x{ltK#m%TQneg^Wroru3>ig(Yq^A)Xmas^_58z z6GMI-#b-@Y8rA^U&EoJ-A1c?BGTqctTRo%6<1SDayT5IwDzy#v))~Vrbs7(C5f}P2LZc;m`qR;yUZBm-LEf7J?yi-(A^xcW>@ua`LSuZO( z>av_5T?6bk>-IMei`t_1|+xN>R2M<;8UmtFE5570sFut-iHM zJt9H((-GT3+k&D);2OPFa$Ap)lbKPvIklkHDX(OjD(uwjRRAQ`YxiUsw%TeR=eZ#m z{pn^67KgZ;6uy)wc{RAIG+()U{YvS_%<~aA&A=;U+)?-uKtQvK&S9{}g#!a2f)Yo4 zmA&jEs{Fuc?U}Y3yW3FKIi7Sb@>^}*wp^?yab)DFwhCP>Ji=>p@^7^C1@B?f;=b_0 zn*E{!`=if4JD*>CTJurU8?3b?13=ZtA5)b1r5~WqdXO$W%h3reE`J>+O7(bdM?H|_m#a{?jPRt~KJo6?uNvhtA_#MYMA;|p=@)gsd zO$N-1FE*J~?Tt6b?+ZT2J4|>m9!hlZ(||HA)OeF zXNm)=aM1W=jhQbKF%l)~s#SN%NAQ0fNBz%oi^3;zDUZ@D{G^lgG;M`8w6(eEPUINn zKQae~fCDl`_JceW+(#SHB1^U__vdZtYV7ht+reTd5~odFV@AP)}# z^o226+K$=_2&FMVSdLrii@>b}p@DC6l0<83yNi>D>*l$ZPK?lk3vl^5JwZNEJ#S8L zOV2XBcqBYaE4w9BZtPUDO;l;SSaODS{R-g0+yR#N_xCnH1mVWyAW zMF~S+506Ku2#?J*vVhgJDREnwQOhJVp)9cu_)DZkFHjOy+xTS2hz)QPnK%d2>sy%9dC30lBGeZoIRF zG#&XHe1o&Ipwb}m;^nDrP#!--5??I%VydHpKnL#kbNVl@Fj|4C-^7N4+ex0b|Q?Mcv+ zymybCS6E`d%dy0wxv41&yL1fmCRI2Uz0Jv$JrF6V-K{m>oyqE@rjt_zTOdG6JwJBT zK44^2;d_Qao{at~+X-rlHg=__uV1aes1Mez?qm#Z%yT-q^x^uyhDIu9K%HwX-IxDsyCDqZe~h zF*GmvaK13&D)69u*&T^G*vZk(=4^uC(zRQYlIp=tgJ-B(&d(g~jIcd;AkTiZzx$e; zRbn*j7)jqWIZdZoy{vL^t*^MP`Z62HXz|+aIW8{CRYsX-kA4fFqTQVw;ZmHOn;nNq zdp$(gF_l%nDB&LM+anH@*U4c{{h|GCmzGoVy}5ShB_SoH_2{?kuOwDBhyyObYzF^15){R20eDmP_^~3MZGr$H zB|>I54mu%e8Rog;g$hhWw&1$?G3uV)UcfXC{dS$^my2rW$3Ka?9wQ=ZOlPxe8X|6q(9$&CCME5C_ZZ|nv^9(T%eXniX|H*H+K||2#vFQ{b4{^QI1}S7E@ZU=C zUc`#d;;#`Wj)0%)#@c=Pg>h0;-j)2(A3xgeL5&fL?gK0p3REget)MUp;^XQ3M2cLE z*qkAovTCLIPf(OmUe6D#MA>at-?cY+BNYtGxKwAe5IGbW%#4vAS1pZwuqY+uXCT1} zEG^vv;sKB_>3?5cm|8JqbaHj&yNWRp_8jwT)yb^|(;%3m7s#pEpfl%MW$MktvI$6I z<)ih3f>-fh3zI#wwU?4_6A(M+RD&zrK7T|-EYr_MT&(!hrW_)nM-_QbKjHJ|-K{^G zSz%MwDGf>F6Mk5gUjg$sGn)oJ58J>Tx=+ib<;Rb>jqM6L>HXd0#s}Za!?8BPq0$n3 zQum&5wY8nuCxTtK_;1V^y^F$nn~HC?nMJV$x)~1f5(3v>pvMLe2xYh;UsQG3e~HpM8ONJU&A?(Yk7SC%&c$2hl5jq2kdYpQxgv z_6>~2S&jAMNSMF*4IUov&M{a)os7bJQo;eDS2dW>lcs4Q*HnOR4|l4uB#dQ24!8QI zLpzR-EX(BB%S=ITed*opy$N_HdUq?peYu}4SSI!4Sqy3MvDPu*XP7nkh1aL%56;zuzY7KIPgra=Gr#Ai)n@25kH=ay{NSYgns_^ zKSg+AeuW=;Z;&Sw#eeiQ`D59VZGwAkBo}fLu^+Z;Mbm?f*hHM+w`~8~zO;mc=0m>B z*9_Tz*7gB)<or*1-wf%0(aqUYJUs;C6L!7F^iaEEZH8i?H-% zaHH+WKc6qaX{npSSJ3B4KK4UlEsSJPI>)z|i%?5lPvBs(L!Ixo5#DlPd1dZp*D`25 z(z3)M8hw$9Q`a*~wHV@*21jZcJ@@jWp^~1zb{2ev&F2=#`K{ke^gb5pSQ(q?hy5qU`v#%Q0* zta@SXqVA+TYo395a&k|vm>vM#?>{fb{}*T;e}6@(;w;G0)hR~cCy5Za!#m&(Up^7= zQedyf{*?0m-(Z&feaQbgIYlo`!wU*^$9GFgeaX+sv2}6L08&Bop!sFD>YEifM(h`D z%rWrT&sIV5p8*BjAikUCl+rCG0k=DbV^QMV2*F`E_eoLg)i#o4 zYm+-5CxKU5RvU<-S@L7VBzQ{ihItSusMri-ji(z@dwbXT9mmkaoQ&nwO|Ja z&H4jJO1$OuY_hkPFuTuBk~Mz;EendBO(L=dKN&!ss=}iSwt2A$9vlzWOE0nwR><=S z{HnpDb$TtGW;q;wDc94kzc}PkK_ZdJ2J9D~X>IB(_vf~CcIp?oCF8Vs?tQ)F&#McV z%l6CNQL;a;jb1JKfFe;rp##&AZ&+|_?@0^%M5{`ImiNnYK3)IFM>66@WGlckZ_CrB zrKL4B$6GOBHBN?HQn9uL<)F#^w%zp+nKM+vHa*YydM>ds)Yz^2HHUtWa4mptGfUJ| zu8fpuzNcFm@2wz(08R!lW@dm@PNuB#L$~t=jPBmOf3lyVh)55ody9y2+Mj1b!%rEb z{dMw2%B`?FpOSAwppM~LPR8RJFK9oxx8h}IO|7lFi`%E(ZSw6uS7K;~z?LGmxlf2@ z6l$NqzHIvzv!cf+%J!h)$Qus7bd`5kRP0Wv&htt*+|@(JBFodc&@+>5=sw3>*FHAq z9xv)(v@6qk^W#|)1@y|9ljcg9N#J|3EIaxfy9zx}`@q*qm@)YH(VKAJG!6ruefp4C z;ep{Hmcf!{CUZKL+|e@m0txr!=Id2YD?tYd_t$ud{v6D?4B{0BdGe}2@lXL|=$he| zfmc2eFbm6V$1zqysdqRX4Jx4c82VXU+Kb7X1+>=(ZSBR~tk7pCEZX&rgeVv!>DS)C zynoIH|KdyoDIfk}jA*KnjcM)a2^X)uz&p)sbylKvwiFZ*0c7oU*2H15fNB6a+)z9$ zdqUon{jYjR{m*CMqZ|WDJxO_LPGFdfl5^E=qBD^FCkhyOeEG+uY@EqXDXHnsY*ke5 zTi!VTOpda$F0-%Lq4^&aF!C9Kovk>9WOXIu25`01xH2KZp5yN3HRR&Fv*zmL+}haz zJR-n8=PaU%uCTwO;Z+yh_vLMu9{4k=fc}oZ*9Hm?Czp=SWF{)+FRkrvPA=;I@u732 zO&vy^FW;Cb0g4n2y$Sex()-Llirj9OKAyoV@a`YU9bi=Z$GqJn?^Z!Ct^fIb_`4m~ zzzqspp%{Mj-toW-Kf3Ee&wtJnMJoh1!xaM_se7hf{zgBio%Sr#SrbmqKwRzhpEI4? zjpnpd096Q}!Je#!6xnLp)DuLR-Bi~B2UUpp$t6-Go!8!eRA>Z!IpsO->rOZ#Zymvl z{9coIl?n$ulcS^K-(R?MO61zsN5!<0_o%(ge?+08qUhr43Ydf7mHAj3b*}WOl2WYX zd_gGWz-1z-;jfdMV$$;e&X5QL^fK@wf0FV96Y$TL|8K_=R+NHYzf9%0BOX22+pC%7 z;z`4D+_DV6*O=%dlct%$=ZM<$MV~r@P#VZ^BoWfvqa^I1sQqmvd{>UDah3Z|^2$j} z@XwhZj-$e)o&edMnI$pAM+I@$6Qg*q2e?_-~C5WMXoZx#8sE&&#?}ReO1e@mpPwK8#c;q zEey4G4yc-Cpk|wxQ`2;;b~RO1FJ3$^vak(D@4jk;x;E@Z>N~QDY$OD41xL(82 zq{}b$+?E@aobQB~O{+v;=bIWt$9+cZlV48q*RCnn$&lhJ#>9LUx>^fRLuIza%E8Nv zi;HZqU89u`(`jR(cT)RPLZun6UAc0V^%#px?A*ueTCa2!^$rHI7FARr59$OLLtI#a zQv-Mk&$emmQPu9@=m6@SvhuT3XJvNQ0ytHh$W_sbac3eBx~s&0Wb-Cu_MXe=v)RV& zDILcWRTUK#G3wT39@DI>jtbv_koh^2vDZ)m7fXwew@j%>79CV^aJB#;i<8sRn9Vrtz6*L|I2F(fdf%r{y?T{buiC4!rm}i> zk2-?MpN8tFDCGfv?QTom(ZSr|c1Ed~nAq=6%DOUzVf#Dq96r7d_ocq=^-XD)yZb*T zWqXS47N-E}>cS!S*yW%fS<;%Hl9Ccpyo}8u%+7jE?XDMBQp;)jo31NPdWg7-5`eTVIX`D=3{4q;nG=j7n)c?t#Wob2uK=;t}SJ`$9a zkuppnO~Za$Kaznm>!aPERsTv=iaZX1K$r_eH+^EX7rK@U6D>*rAjeOQ0Ca1~{yrmb zBiNl)oj-m0w6XUlo*@AS9j}wFz(Ku{`J=5%Rc@Fsz(cdtYG^6hITUE#NUi)bh^E^Q z0s+-0i#$Fk_zaaLXf$5`j!$p@a;JX>FKW`6FxqqJ>TiIR164rxtg`)TvgpCF9X#`l z5qQSMr#)Fh0agmAB^=<9K)lVEoIDArFWw#m=uCI>Jr*EN9!Gh51ipJxSy|aqc&BrN zvk7dSyPFd)=Fz7ceC#SL1QMGXPyFYJ(JG~iFQT(Eue`mz6WP#6vi7_c$rml^sgly9 zoNE4eU87VgMJ2xaxn$?zcBo~7xB5wdjL4I-KMgzF{Ud{;x~hgn%*mvmfPUIqN~rT% zM-0e+s@8QVW>sG5e1TR?*s#~r8~$*)`5v#s>T1b+o2rV61axL?Nt?%WWsoDp5g^uP z06*Du^n)JkvVN4QG#%P46UG0nmCj=jLt1t6;Aq!*{++EYt^6#1|N5H1P%XYz1ddp2d}@)j2+9VXhp?s6 z#hW+FPEc_Q`iYNgn?yFLU5?pe0}PCRq;Wb?>d zyKjd|PcBX}{(5bzgEaQM&J6>M{k3&13jAIml-M?GjK30vY7VU zJO+*w57RVI+jF)+ECt;TQ3wm8N&Cc&)mmIzs4ViTs!CHC`_Iw6@4#bW(0WBSbZ}%O zBO?P1qU>PhWgxu!90mP97m*kIk9#fDN4>XV4)-``Yt?|-)oUNKE^yy(4A-3KqnCnZ zqMWwxtFAe zCMb_?|40dak-xKmt%)P!oJK}tidC{yYY9xEZ(0nK2ErKdREol#as(jOZ6+spl1c*sL4z!`eAnI6*rnbhXW z-*LE2_j3$tfasu62wShRl<-{K?`<1DKK6W>*QI7{Q0}Gxf^oVs>B$#6&>x9CWUXD- zn3g7Fcdr7%aPNiJ2;LLXyZLS13<%gsfR>V>61%!Eqh-UERmNvf?Xm;egdFacU~_a< z2aEFh4${-oP=`|`x8+AAVRMAdtM}}?v$v}pnmIudG4P^f_C?$N5z>XDshF-%BcC5a zN`2Yb)a#dk&2U5$#}Z!I)6t$ED>wfc#6%Q;dzW{&O5M$EfTHjZx3@xOwz^U0`P6H6 zSXiO24`C_qd31+xdqIKYFmJHae%o^Sd5r=kngz2S$UmI-mTc!_cbV)JrO~h_t2|77 zO*eD!R2q4CsZamapZ^6&IFF9bd@P@tdqvu7CbY~BmpTUkx+VDy*xxDYUIkrk`vaaa8lXs^RkDVwTqXHvv>=(xhbzcI$*HjSngZ+OaWdpH!Dc z8E`XMQBdO^!#UpP9CVh9b>X^>psEgpXU60c^j{95(e@X$AHKgm!Ug&=4s=a^KV6uJ zCQUSmatSLI$Q<3eWy3>0A17FrLdK(N+rd9?$~yGh;DMLr(dr0%V{@Y^7zUP;3qVGE z?OLVJP!A^2@7Ab8)%MOLF<1s39v&GJgNWa5%HdZ?>GQq4^!xQ7@g2a0d(p(f-Va3L zb#=Zjdppbg4E%aGLjGcRevJK#-3by~33gAMJ8_Vj?L%m2@1lEe9mxUA<3{=5rJ;<_ zl$2fo8=GsKuLBV>vOU%aW~TA#RpaN+dYT!^NN;Hg2RkE&)qiBb8^8XQ0J~@gybodZ zS~;gm*XduMp27q>LeG&>7V*0VvSL5KFiCO~At( zH85-yH+POL$Fo9T`MiGqyOYz8uHSAW`CkaQHibq?j`=nlLQ!LwZuR^zQRpAFP*ArY z`Dm_`HV5(m2pv;b&Qt*_`JNhF##Wrh<>+(nNxn82FD(^fv>H#I2Ae0)kitntq zI5~-v)C5289$Ub*3eN$Q-hx_@#YW;dDz5w$@hIN_XI^hdl*Cb;m7Aj_B?8Gq0>403Sx4kP^}^%9!8~eiIBCF`F$| z&lep~hMGU(jTIRaJj{=ESn(5(8QZuEPM9vFiWtiUCzFSBG0dCwmAJS#(9`sJna#V< z0>>8x2~UWu((EnV=5S2pBCf`>a{xG|o>JN``!m??1|2W_=tpHy+E~Tkw@NtuG!FPq zSTZ0zAwmPMM-4_*6J^Y;L7Iq+cx!$`SXg_h{BrXd^w-4eMP z(HDlPQW{*aCif#Ck5d*`VA$*u#2U!3(>AgU+Pv9(q|Ek#Ni;F9BD6D9&{v)N-i;e; zWuoK0lS3K6jKCF`%y=#iAFZS^g@n5Yx%V?~ZB#tuy6d-b5sESg207fi$|^gQRl4ad z0!i2e(l6R;STfS!Z~LX``dQo2Vd0|#x{EXybkB$0!`{n&k~In}J6NtVtuD=RG^(qs zx1{ z{L2BYS#{0JsLt1SmKbI^sXLfqHqSTvEa7{bG3oVO6~oC+s50H=8O2zsb7L?gr0!^y z8baEcR~7W#+~k)|W@qP60r~=JHou)Aq%m^{W#la=8Vtolw)S&aw%`;|ApLn+G ztgWrd#F!uIM3uz7gIY=@-iBf=W52!coh8SI8_R@R6yM;n*Rbcfl=Qln*DqebE46-@ zZq~_vempBWu9T7j?*$$>moHzMRSFe_H;!z=ifXX8hhC8o^ZscBQ>R zE35k1L91u%)|(yCZmYxiSc30$8B?tnu(`J5&9Q@~mb0Q(gPC!dl3y;KAFj0yI7zk# zBK~z^Z`%%#j;~R2DPFLik#1_bLm|93<-n)DrNp?kEl|I{JCOBX z1pv%iz|p4L79re~>3{_9%#vYD9`8hao2sg+rU_iUF0^|@2hq&d zdH8T*v{C-5?biDGi^5lFE{icDK`{WTv3kDCk0zxVR0FRhKXA(df?k89;V_*-BSIkJi?bv^=Z6b>bc1P#eJ zDMpCJ)(>nBKW7|yYCIIyg{uU(4HW(+`yQ8z9mbE=9E?_Q&d$$@(@?B6$`R6Gcz)W6Gs5;fcktDyyPz}Ep6;&-y^6hUFX@k`bd=4YZ5!qB<*CJ z)mv`A+}{weuiy}2vbR&i_LM^BUu=?k@Y}jZHpBOp_85%AinF)tj8&r#LDt`KXkT77 zi{2xtKjCP7e4}gRXExNsj_!zKRj=uo;nF13+CTO1=ua4}xtGEOo#%a$ zF<(AHhzN^-Kc-`oxZ~+FyRAT`yaL!GvPm;zs(DOu$?Ypw^lsHA@=%nJ7!eT>PDBXP z0?2F}t?Kz=TJ2>BWoe1GQGTDo0X{UrXcBeJnIW)muKi-+xFOE6chjw5lPLPGY^uWG!@pN z!fv1okq@op;o-?S|8wYa>w=8Dzq-tJpU8HN>1zHJ))(0TJJG075Ei~Cgu}Kgzfbw{ zB|@pld!Dw+v4T|^@%5G^*hRH0F|w+A4~2gR`)Cw2kr&m}{N2Lbd`#HxkJ-9@<#)iQ zueP=p5k!WmLdRfG;$n@{u~bz|Vj|j-m@m&NT~p%%q*txzgM|aug{~sF%ZIPGZi(0% z@Gn+am)s@!Q`mZYc)ZsQyY1N8>+Iq(RtFn#M7OoIwEaRugYLtetnN!mOa>8fP7TDzk{ct|oxodA!hJw9ipd z{JI;!y#5pB)SsuXxs(D3uMCjR{Y|YyjO_f*gUF8yL7mc@Kg?7wG6@ZKLMBk294|x~ zWt<`k@hLqnCGi2-_isdX<^>o4Oz z+q2CHKKt|I$6Gt=2=%<@XMOh~L(y$&HOi<~#NdQdBubKYY}ydxdFZ zga9b7GeHm{F21-B)|jK4hbuB00S}lwgS4p0hR8u48#GzSm}`FB4o1f}GeTFj^M%10 z^r4t3WNur*QJzg|t+$jwKaqVdcQp0w_@|lOMh3i21KGE@{KRFLTT`K1nK zXF6-PSCYxsNUoYRSbr`qDF#gBzp6A{!h_Ue($b@l8(qNd?F9Qw$~Fj~@BuiAy}oGY zo@Yb-qkzBO{7rc9Y_-ZLltsdgNz$S(dBN&rgYVDnOmn(0w4xIOUr#+r4IXM&Q=NLA zrV|}3_t!hfr6dqiG&MR-)?o^*X=_=}#Q zw*7C@gbJZ#?NGkK`27JX{aq|27&I(@x`6`q9#8c%*Q zWE%mBxI{Q0Rs#Re#%}Cw2){h}Zm3<>vY~vQn4w{9Aa!)5p6Z9ZVOl0l^YN!r}n zMk?tkz!Y8e^F`n>vBLUcITYY;!;%u!l{s2AdvPbbWSc(~Y3mhVQuPmuS3>u#@hj}y zck8#G=qz8`sy>Xf3wVR_0|)bunaMt@6(D2G_wyNIsZNZ{|9>l$YO(T@ex)pw&ib%U zKA^u%fxwyj55RBWvh9n`36X!P=lHib7+9>3-|_#YDtXp~{K@~q3?1CqP$aVRwyM$85I^yY@kth!Et0Ta1bqCPL}%E)H3qu~2c-y{!wHN@w@+y{3~$-AIV6xgi78qj`@ zL$%2Zm$~*Abb!3p)nt5?Gr{+P%+4R?ZAS($6<`ZDe`_Yb3w-xHF+pVs3OZ40N zbP{%i$pqURP~v~WhBH=EQ`_Lc#MO8@R2Ts@(T1p?pc&??mndx&u-mCqy4vB$gnisY z*vX3p`eMNacUv7^q)c-1Z$M?mCVm|T8pIkXtEljaZ%j=5s(_XcWj#kHYT1|D_H0?% zlcpxa=v5;q!GI2i?k+A7cW_BBrwQozd)*xZzUP|MdG$b93iR61&2MUAhoiyw`0 z4h5(H&=j&tRPx`rTd6*s{_^E-fbS_L$~iKer#-U6ESihJz|w zCX}nhtAHmk*Uq;hVD#AHpMlhU70`5BE@aPQBZG@e;k!fGQx!2@zgcYr1+aq?w55pT zyt@e14b!ceNzpGz2o6Ocm)oKv>L-4E@j^|_B)p>DMf3IVESN#i2uz3x|6yAGB-U82eX$SZi|sGq8{)hzZU4RJ9s7u<-6*b7L2G0ueg{7~T0y#zb&=m_ zt)Mhf#$AI?psUQA|6G0G7dpG4%KY4OR)7q1<@5Z}QFCJ`u*%qQCm`Tz#5~(d5~!$gLV*e0EyUoW36L_wLUi)f=G> zI%6eAdTzm&rl$u8@0tBbpdMiA;V=Rfn)`gQ)Oy^yzW!!d2$TMq!WsSLR~N7QDCLOY zZQljzpK0NnvXhYt)}1#Uv}G@g+SGTaR9(im7nHyRSr&< zef^aql{fJaD60>E`ArFb$$?tmg^1_FB0vU(p{4X~mBn9R4h>Pm_+zt1H9 ziFJ8uNd$BfGH0(4U^7g!>AAD?BTUxXI!lAno(bCn)r^ORZFqv-p8a38FqMOt#9Ge9 zimB-WeX($19^?ysklgUF_g9C}HTZ8tho8f$wjtb@9L&W@cMb;2eS>%E7c*k89r9U8S(7w7Jd7p_vSlY*~edJ z9NQ*;a*q0*A&gJy$RM(b)rYzQfM(LmOlad$9?T=?16hR8^x3fuFf;5XP#l zr6s)0ddOlBm#R}>h{|;z**S8!c8HHqH^bF-2g|^fK+wFci>ms3#02PDyC0g^6 zuGVND3QQk>p2OxQ#839^U-U$5uCr$e7r%t#YHR z?p)`(&dcN7JTv3I=Xvh?dA`eM0a~v9D>Q!es&OA+cO8)5+V25%dt38Y{k9H6wHYr7 zpC;d37Zk+v96e~Yt^<-vr5@-QD^rhxZDmsNJYai0%sOZ`rWsIPBmlPj=1_a{7B2In;U=B6@#1@ODhuux+x1XWoso|26rI#a0Jw39UpqfmxpYn&mYG_Gigh+UDy!#~z`O1ie;di><&9+$CN!PV~)+16ak+>5Hx zAlEDp-W1Z%SPQ;+!vXV)Ido=5v)o~@(Roj^|0K~g!NT``M!HK~z)IIs;5CptsRUHp z9#EwWEG0zPZ5?wNX)II80vVW9N#Vil(C@M9C z7aDTz(~7DEQ0MWQAjeKq4NRG1089*<&I)H3t*}Ygk@lO{QFULof0*vgy*LE9U@R*o zrEIy)f+=6HYFzkhO!4r^ocj%KK-K%>$7ucYp!QxYJtD7gWtAsW-hWFR<1zS3>J}P( z=rA@rdwVGr>RC&=6+)6G#v&%1=$E{p%ygfbhO>gRCYxCA6ohnKd`@pVU=K?6w&6gIx zw`TqY&?^iGXUR06YGP7KXx{MAleQ&1sNm+X%lk3=fWXhYg1XqKBG4_`!1?kpoAbu{x=1ZK-&)LM6*P0li`@nR zhQ(NOB|Rab+ADzo|(K8uK~mvyy5RLu2#-e(R4JA*^lsEXwLyBvH> z+5uDU7cK4W?G0RG$@_ag>h523p48OTOla=>4CI+y#{ip4t%9M*ET%%U%GsZJI+X<} zw!(AsvR;eAhF9c-J!W22WXz>)Ag7QuA*Sb*S}uvS=gE!$W9-m5zYJLpUKXxWzZML> z-E3K}iP=Z=*l0rM9J)1ACZH`V@lQ!+riJA1FLnWkPx{dFs{gNRg|ON(Zu)(M$Fr<| z*$cc_LfsG5+C*4CD(d}y{tkQrtdh$AJhcALBfmpjp7&`@Vyvb~QHBWxmv;r=s{5Ak z?i)LPN8#rYE-x_};PO!FkFL$)(kQsRrwy^;Sy|DrtTIy&Y99sbuX1OBXV7%c$lNm+ zzhIM>y1`P1otcEM=rmlE;f1 z5;ZJ<3(;r{=_BJwRe^tI2kCblE4*n>Gn_EB?wbRV`cVvUNW!xMb}iZnE8T}G$0KD= zf)O0(dnvfgV!D4D&;Ao%e&XNi+4TwOPZ#7VvN)oFWXMlQ&Og$nH$wDHpmkz+l%Y*x zp8OZ>g#MQ(9qxmFNyPp8OZ1;F|9`^qaA0)^0_;54-!bFzB29_`T{ z4eeI#QwFjFHr{#P-h-YyxN+plFpK9iEx}4Y^(hms9Z^o3TH^z>_l*^^pYlJUd`%J@ zIGddOlCJ4+RjJ?IX!UBsOH{U5QQl_wJIF1gF(b>W+6{xWIZlW$E*!ZDmB62&=Z{)CgA) z@H6JZ-sbvfzFbbEcV(SF1$es4^)VZTF-Z*8uE!`qG_B`d50NzLVbM^Jx|1f=5!Kvj zA&VW0qtxNr$KbTdCIx_YiwC%FS&!Y9KteM^{D4jGD_bEjIs_**Mp%BYKVol{jm2VZ z!+z=0?}J^D{r(C8aPgw(AJPT|J4_3PYp$KuGX);U?o*NYOS}-u8OF29U0p*9r#O1~ zzub}9h!4vW);#ZZg{HboPe|XOjbmqNdaCH-m_#*+ugsW&luOF0-w>3kv4F@Tq^k{*EdnWDfIu^wV8bro0$t<-=pUTU|Sz4o9)WRo%M_ zk7%Bb`)m75_yssQEdx5QQ;qCq9q*Scrn%p9ovv!G9p7P4An@@{c9yq{Y*B9S7ET*~ z7U~b=l&98sxjH%(RhRyF+Z#gxHWB{9cMwY@6!GCw0Uk4J#rER29z8T;tsjxkN zwgzxd3AhEt@!+j%>;kFQsH$1VI_JI0H)jQW{d_h3XDU)H{CZ^n%ssSIQ&YR|YlM~c z@?Jp`(7434`k6}3-7WE}S4SJ{)?m<(Cz5HiIVCo$TbrA`-6Q*?C5Yn)yzI8i#^)C1 z%52<5n&O0vy;ae>$xTk_AUqn^l^y^1Q~vs2eKb$8Ml45^3o2GEzdDk1T$D+}Gw1#k z{elrLVD5dKxsFZ5gw)qE0{~`&Kblo#FYsn9wm$X{H z7q~0x^+VVYvC!9;F*m%5tzE@5$jJ%U%@Ra+FkSW`nLA5>)vP=S*%<_;ofY=|(*$vt z+V09gHbL~}srcrDQMb6^0@JOe7Ox+aF!94K z$DQ-uiWWx-4fY`*&?tzoMHKxqRP%_Rp>hXzfxE?f^z2`e(K+S`NnRN+~?SH}4^r}$K3)dgk5#l>&k+5v)H z!Htbw{KC0+2GO+AVTUX!S2}n-Ge~DwRu+s)vF+^w0s>?HQrGzgTd?w)+5kX=lJ^c% z_o{rAnw}T{@A(>Uji`#t3UB$c<5A?pM0XmGCw6u93VEGZUs+pSeb$o#9NE-4)H8am zgA@*C%R+Eu!}3;a%M5^lRahi*0eqcUtBxT20JKk;FCh1xU^)|FT?-J7cZP^jn`Dd! z(;79<4x~$eaR07e&j+szIiILo{^i;;Du_q^1)BF)5>Q(m@$Ypk$E>@cn%UQSOla$G zgM!22MSah1eT|!)IAB{C^ZKt52jJ$}@1Cd$D`R|5PcLGMOpknY<*iDV*(31uX(FTR z_9kVzsAFeP9(Ad|E%fwv3oVl02@N$4XeC;V0 zInThFAmC9{u+OZuIqLt61}&G@CPRT6R0~x zv;a!MhpP^~vqD$~eLxpU`M-r>H-7E3ai%XR6518z?S^kiJFW3@1s2rRRacJ|iU^By zp64N=VG_PF5)vg1e;9_l#;UO1Et_6%@E9pabqx(w6_wkV2|v{tRYiC6FJ{`tQ$!Ob zC8b;Ss6Se{&+R;{bE+14;PAD;wUceziz7(yiQb%(yiS-o?05)DoJ-MV0}VJ0m;$>i z0#~@n0XLlsSr2^c9~bnOlvGw`A!WUP6iSGlT6S>ox5vTZ1Z;sJB6v5C&-zIZcCG*h z&$;=&g~k3baJeGyQL&oU0Grr9VDj=BsakfiKnCwijTAQER>iSfLjeG1E>@3~lacXU z8WvSa=UiNLaB$FsuCAl)AW(^4+r5?BTU$vehw$Zj1?MD=jG9`!vDkBBLGScT)1zer1YhJCT#EK@bGvb zq5bs1`rak!cB6oXGJtsSDt0N4r4dY#`UCiY4?M zi~a;d4amMzzCrsijc)a~c${LD^O9(KL4JPu>*0NaIPJmWeean;-JcQM5mK<3C7!yx zH)pI4&%uFcQ(18@bj@WP>%L~V`dlth?K_Xi?Y`ZWwMKjw@-3b(ZWS^<QTJDI8$J8Uln;!974+ZoQ~I=0ob^inTF9M?WlhVHB*0SHQKbXLD0DfLI%( z5Zk~3ZMw-*OL=}=GN}NG&o3m5tH* zrjL)s>PXEqgzYm}Im1Yz|><(dXV$R=nUD>$~dl~b{P0X^yyBsMX zjr9v|F8e5K!glPaN};*&P>Nw|NbQbTDfT!e9ny(+bYqQL8K#7ow=N3IsK4t8Ry%q? zP|eaD#d}m2#3@nP?0x!4eD^a&N;s*eT-vJt8gciq05qxjEdQe548F^oiSlO0>)dFj zbM5BChE$nvRcu3Z8D~3W0%O8E9&5x(QBnPJRcNptwQ2o1@A>5un;^B3P*^B)fBAj1 z%xYo zplV3f)@DZV$W^CNoh$}(s%S)^wXz<=Qt z8SA$FJ;!dlsRZa8@b$t{!^%aAl+#46(1y(+V?FP;^xp|{A0)n|QI4QC;yR`*DkN%Y zTmi4Hcb~_ueka-S8(IByye`PzF#r$a_dzE_={GY88XB12lwFUddiS<#Xyo)}Ls~2C z;UvFK1=e2h#NyTqGi%G8QbZP;xt4}{HV2~gTUmuuSd&kL|6+_${``C@Ew3~B^VFOE zyJ_`*>sDI#7?EkZy*Ms1clyHL*RFGhzGZ-XYo5j@Cw_i%tO=TcXJuDXIs>SC4-ZE% za#JwBT0=XzQ|#E;{6|Nfc6cyd?nYU|yZ!8Usyf&6yL;*+Yt)=M$Tx{ux#iaW)*|Nv zs8d}3YFfB88bZZZ(kYpzlB`Z(5e(h|2(kW170H2Eywe*Y*IDd|<(=owJ6 z46b4#K3TtC?fa+%-x<;K{TpcGV;2tgZKBTW4OuOR>iz7~f>vJ!zaup8`;O-yTkg<^ z5fS?-$upQ;4M#}cle8EH)!w|DHAy8%rYHvzAGHo$ZlcZcOU}pRc2JjKR9w1RMujJ$ zU(j^_+&q*ixOM=`SZiUCF@TYKtt%-tEW3M1RytO-g=tu>q zmkn!ev4M%nSEuRqD>`jy@i1GAwL+8n^WNB4c00SQe*4S$&$XS~Bqi=+8q+b(2W1_% zjuN+RtIlU9e1rL5*`h5NS|6`C&5aoGm$xsOJIX&(*BIk&5nC9^K1-VfHezVK731fp z(6BkP8x`W*n9J;cisSM3ev23c!N1CRzo<{SxJ3_($Cf`EUobq{)S;w!U0Uz?X9_f9 z&5(K*F(7fJ zoAiH7kewsLET`TFUq4Nzr`$A$BNbtVbOh5NtcrgpvP08kH3LC3 rdAy|nelwYDuI_Vqd1w#AwBuAx8!=-9`^(MX2-O2+&HM0sRxkb!K*AU3 literal 0 HcmV?d00001 diff --git a/donate.md b/donate.md new file mode 100644 index 0000000..5aa870b --- /dev/null +++ b/donate.md @@ -0,0 +1,101 @@ +# 💚 Support Fester + +Fester is free, open-source software released under the AGPL-3.0. It's built and maintained by contributors on their own time and hardware. + +If Fester has saved you time, helped you ship a build, or just made your cluster more observable — **thank you for considering a donation**. Every contribution helps cover: + +- ⚡ **Build cluster electricity** (the test cluster runs 24/7) +- 🖥️ **Hardware replacements** (fans, SSDs, thermal paste — builds are hard on hardware) +- 🌐 **Domain + git hosting** (git.dcos.net, forgejo instances) +- ☕ **Caffeine** (the fuel that keeps DAGs flowing) + +--- + +## 💰 Ways to Donate + +### Cryptocurrency (preferred — no platform fees) + +| Currency | Network | Address | +|----------|---------|---------| +| **Bitcoin** | BTC (mainnet) | `REPLACE_WITH_YOUR_BTC_ADDRESS` | +| **Bitcoin** | Lightning | `REPLACE_WITH_YOUR_LIGHTNING_ADDRESS_OR_LNURL` | +| **Monero** | XMR (mainnet) | `REPLACE_WITH_YOUR_XMR_ADDRESS` | +| **Ethereum** | ERC-20 | `REPLACE_WITH_YOUR_ETH_ADDRESS` | +| **USDC** | ERC-20 | `REPLACE_WITH_YOUR_USDC_ADDRESS` | +| **USDC** | Polygon | `REPLACE_WITH_YOUR_USDC_POLYGON_ADDRESS` | +| **SOL** | Solana | `REPLACE_WITH_YOUR_SOL_ADDRESS` | + +### Fiat / Card + +| Platform | Link | +|----------|------| +| **GitHub Sponsors** | `REPLACE_WITH_YOUR_GITHUB_SPONSORS_URL` | +| **Ko-fi** | `REPLACE_WITH_YOUR_KOFI_URL` | +| **Liberapay** | `REPLACE_WITH_YOUR_LIBERAPAY_URL` | +| **Open Collective** | `REPLACE_WITH_YOUR_OPENCOLLECTIVE_URL` | +| **Patreon** | `REPLACE_WITH_YOUR_PATREON_URL` | + +### Other + +| Method | Details | +|--------|---------| +| **PayPal** | `REPLACE_WITH_YOUR_PAYPAL_EMAIL_OR_ME_LINK` | +| **Bank transfer (SEPA)** | `REPLACE_WITH_YOUR_SEPA_IBAN` (or email for details) | +| **Hardware donations** | Email `REPLACE_WITH_YOUR_CONTACT_EMAIL` — we always need more nodes! | + +--- + +## 🎯 Sponsorship Tiers + +If you'd like ongoing sponsorship with visibility, get in touch: + +| Tier | Suggested Monthly | Perks | +|------|-------------------|-------| +| ☕ **Coffee** | $5 | Your name in `DONORS.md` | +| 🖥️ **Node** | $25 | Above + priority issue triage | +| 🏗️ **Cluster** | $100 | Above + logo on README + input on roadmap | +| 🚀 **Sustaining** | $500+ | Above + co-branded release notes + dedicated support channel | + +Sponsors are listed in **[DONORS.md](DONORS.md)** (with their permission). + +--- + +## 🏢 Corporate Sponsorship + +If Fester is critical to your business and you want dedicated support, SLAs, or custom features: + +- 📧 Email: `REPLACE_WITH_YOUR_BUSINESS_EMAIL` +- We can invoice monthly/quarterly/annually +- Custom feature development is available +- On-prem deployment assistance + +--- + +## 🛠️ Non-Financial Contributions + +Money isn't the only way to help: + +- ⭐ **Star the repo** on [git.dcos.net/dcosnet/fester](https://git.dcos.net/dcosnet/fester) +- 🐛 **File bug reports** with clear reproduction steps +- ✨ **Submit PRs** — see **[CONTRIBUTING.md](CONTRIBUTING.md)** +- 📣 **Spread the word** — write a blog post, mention us on forums +- 🧪 **Test on your hardware** — especially non-x86_64 arches (arm64, riscv64) +- 📖 **Improve docs** — quickstart, cheatsheet, architecture notes + +--- + +## 📋 Transparency + +- All donations are tracked publicly in **[DONORS.md](DONORS.md)** (unless you request anonymity) +- Quarterly reports will be posted showing how funds were used +- Donations do **not** grant special access or priority on the issue tracker (that's what sponsorship tiers are for) + +--- + +## 🙏 Thank You + +To everyone who has donated, starred, contributed, or just tried Fester out — **you're the reason this project exists**. The build must flow. + +--- + +*Donation addresses last updated: 2026-06-28. Always check this file for the most current addresses.* diff --git a/fester.js b/fester.js new file mode 100644 index 0000000..dc1db9e --- /dev/null +++ b/fester.js @@ -0,0 +1,48 @@ +document.addEventListener("DOMContentLoaded", function () { + + function color(heat) { + if (heat < 30) return "#2ecc71"; + if (heat < 60) return "#f1c40f"; + if (heat < 80) return "#e67e22"; + return "#e74c3c"; + } + + document.getElementById("load").addEventListener("click", function () { + + cockpit.spawn( + ["python3", "/usr/share/cockpit/fester/backend/nodes_cli.py"], + { superuser: "require" } + ) + .then(data => { + + const parsed = JSON.parse(data); + + let html = `