From c43b533c5488954f4c960c1f24ea34a4f5ccb54d Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 09:47:34 -0400 Subject: [PATCH 001/365] docs(dark-factory): add Autonomous Agent Coding Pattern design + flow diagrams MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Design doc for the Dark Factory pattern (doc-only, no runtime code): - docs/dark-factory/README.md — full design: two flows (Agent Sandbox capability + Dark Factory pipeline), pluggable coder (Claude Code / Kiro), holdout gate, AWS frontier agents, live PR status, lifecycle, security model, industry alignment + anti-patterns (lethal trifecta, reward hacking, LLM-judge bias), phased delivery. - docs/dark-factory/diagrams/flow-a-sandbox-capability.md — capability architecture + warm-pool state machine (mermaid). - docs/dark-factory/diagrams/flow-b-dark-factory.md — end-to-end pipeline, detailed sequence, live-status mock (mermaid). Grounds every reuse in eks-platform-openclaw (Sandbox CRD, session-router, LiteLLM), appmod-blueprints (PlatformCluster), and agent-platform-amazon-eks (addon ApplicationSets). Validated against Copilot/Codex/Devin/StrongDM. --- docs/dark-factory/README.md | 432 ++++++++++++++++++ .../diagrams/flow-a-sandbox-capability.md | 100 ++++ .../diagrams/flow-b-dark-factory.md | 160 +++++++ 3 files changed, 692 insertions(+) create mode 100644 docs/dark-factory/README.md create mode 100644 docs/dark-factory/diagrams/flow-a-sandbox-capability.md create mode 100644 docs/dark-factory/diagrams/flow-b-dark-factory.md diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md new file mode 100644 index 00000000..a577f22c --- /dev/null +++ b/docs/dark-factory/README.md @@ -0,0 +1,432 @@ +# Dark Factory — Autonomous Agent Coding Pattern + +> **Status:** Design document (doc-only). This describes the target architecture, the reuse +> map onto the existing platform, and a phased delivery plan. No runtime code ships in this PR. + +A **dark factory** is a manufacturing plant that runs *with the lights off* — no humans on the +floor, robots do everything. Applied to software: **a human writes an issue (a spec); AI agents +do the rest** — implement, build, test, security/ops review, open a PR, and (after a human +approves the *results*) merge and tear everything down. + +This pattern wires that idea onto the **Open Agent Platform (OAP)** using components the platform +already has: hardware-isolated **Kata micro-VM sandboxes** (from `eks-platform-openclaw`), the +**LiteLLM → Bedrock** model gateway, the **hub + spoke-dev/spoke-prod** cluster fleet, and +**AWS-managed frontier agents** (Security, DevOps) for independent review. + +--- + +## Table of contents +1. [What is a Dark Factory](#1-what-is-a-dark-factory) +2. [Two flows at a glance](#2-two-flows-at-a-glance) +3. [Flow A — Agent Sandbox capability](#3-flow-a--agent-sandbox-capability-permanent-platform-feature) +4. [Flow B — the Dark Factory pipeline](#4-flow-b--the-dark-factory-pipeline) +5. [The pluggable coding assistant](#5-the-pluggable-coding-assistant) +6. [Independent verification](#6-independent-verification-the-heart-of-the-pattern) +7. [Live status in the PR](#7-live-status-in-the-pr) +8. [Human-in-the-loop & the comment loop](#8-human-in-the-loop--the-iterative-comment-loop) +9. [Lifecycle, teardown & cost](#9-lifecycle-teardown--cost) +10. [Security model](#10-security-model) +11. [Industry alignment & anti-patterns](#11-industry-alignment--anti-patterns-what-the-world-agrees-on) +12. [Phased delivery](#12-phased-delivery) +13. [Open questions / future work](#13-open-questions--future-work) +14. [References](#14-references) + +--- + +## 1. What is a Dark Factory + +The term is borrowed from manufacturing and popularized for coding by two sources this design +draws on: + +- **Steve Yegge — "Welcome to Gas City"**: a *supervisor plane* that deploys teams of + collaborating agents as composable "packs," where humans **watch the factory work** from a + rich console rather than typing code. Work is a first-class, versioned primitive. +- **HackerNoon — "The Dark Factory Pattern"**: an **autonomy-level** ladder and the key + engineering ideas — **specs instead of code**, **holdout scenarios** (the coding agent never + sees the acceptance tests; a separate evaluator judges), **build-before-push**, ephemeral + environments, and **humans reviewing results, not diffs**. + +### Autonomy levels (we target Level 3) + +| Level | What it looks like | +|------:|--------------------| +| 1 | AI finishes your sentences; you do everything else. | +| 2 | AI writes whole files; **you review every change**. | +| **3** | **AI generates code from a spec; a holdout gate + reviewers verify; you approve the merge.** ← *this design* | +| 3.5 | Some low-risk services auto-merge without you. | +| 4 | Full dark factory: specs in, merged tested code out. | + +At **Level 3**, the human's job shrinks from *"read every line of a diff"* to *"read the evidence +and click approve"* — but the human still gates the merge, and can drive changes via PR comments. + +--- + +## 2. Two flows at a glance + +This design is deliberately split into **two independent flows** so the sandbox capability is +useful on its own and the factory is a consumer of it. + +| | **Flow A — Agent Sandbox capability** | **Flow B — Dark Factory** | +|---|---|---| +| **What** | A permanent platform feature: Kata micro-VM sandboxes + `Sandbox` CRD + a **warm pool** kept ready | The autonomous coding pipeline: issue → code → test → review → PR → merge → teardown | +| **When** | Comes up automatically when the agent platform is deployed | Triggered per GitHub issue labeled `dark-factory` | +| **Where** | Installed on **spoke-dev *and* spoke-prod** (capability on both) | **Runs only on spoke-dev** (prod pool stays dormant) | +| **Lifecycle** | Long-lived; pool self-heals to a target buffer | Ephemeral per issue; torn down on merge/close | +| **Diagram** | [`diagrams/flow-a-sandbox-capability.md`](diagrams/flow-a-sandbox-capability.md) | [`diagrams/flow-b-dark-factory.md`](diagrams/flow-b-dark-factory.md) | + +> **Why split them?** The sandbox capability is generically useful (any agent workload can claim +> an isolated VM). The Dark Factory is one *consumer* of that capability. Keeping them separate +> means the isolation substrate can ship, be tested, and be reused independently of the factory. + +--- + +## 3. Flow A — Agent Sandbox capability (permanent platform feature) + +> 📊 **See the fancy diagrams:** [`diagrams/flow-a-sandbox-capability.md`](diagrams/flow-a-sandbox-capability.md) +> (capability architecture + warm-pool state machine). + +Shipped as a GitOps addon, enabled exactly like every other platform addon — set a flag, an +ApplicationSet fans it onto the labelled clusters: + +```yaml +# gitops/overlays/environments/{dev,prod}/enabled-addons.yaml +enabledAddons: + enable_agent_sandbox: true # → ApplicationSet cluster-generator → ArgoCD sync waves +``` + +### What the addon installs (all reused from `eks-platform-openclaw`) + +| Piece | Source in `eks-platform-openclaw` | Role | +|---|---|---| +| **Kata runtime (Cloud Hypervisor default)** | `gitops/helm/kata/` + `kata-deploy` | Hardware VM isolation per sandbox | +| **RuntimeClasses** `kata-clh` · `kata-qemu` · `kata-fc` | `gitops/helm/kata/templates/runtimeclass-*.yaml` | Workload picks VMM via `runtimeClassName` | +| **Karpenter pools** `kata-nested` / `kata-metal` | `gitops/helm/karpenter-nodepools/` | Nested-virt `c8i/m8i` nodes (bare-metal fallback) | +| **`Sandbox` CRD + operator** (`agents.x-k8s.io/v1alpha1`) | `gitops/helm/agent-sandbox/` (sync-wave −1) | One Kata-VM pod per `Sandbox` CR; `replicas 0/1` scale subresource | +| **`SandboxTemplate` / `SandboxClaim`** | `.../agent-sandbox/templates/extensions.yaml` | Claim → template binding (like PVC → PV) | +| **Pool-manager controller** *(net-new)* | — | Maintains the warm buffer; refills on claim; shrinks on release | + +> ⚠️ **Import gap:** the `agent-sandbox` operator is not yet packaged as an OAP addon chart. Flow A's +> first implementation task is to import/repackage it from `eks-platform-openclaw` into the OAP +> addon catalog (`gitops/addons/`). + +### Warm pool — instant claims, cheap idle + +When the platform finishes deploying, the pool-manager brings up a **target buffer of 2–3 idle +sandboxes**. A consumer binds to a *ready* VM instantly (no cold boot). Cycling rules: + +- **On claim** → provision a **refill** so the buffer stays at target. +- **On release** → if the pool is above target, **remove** the extra idle sandbox. +- **Idle** sandboxes scale to `replicas: 0` (PVC retained) and resume on demand. + +> 💡 **Cost note (industry gotcha):** a literal pool of *parked, running* micro-VMs burns money. +> The consensus mitigation (E2B, Modal, Bedrock AgentCore) is **snapshot/fork-from-template + idle +> reaping**, not idle VMs left running. Implementation should prefer snapshot-restore where the +> Kata VMM supports it, and always pair the pool with aggressive idle TTL reaping. See +> [§9](#9-lifecycle-teardown--cost). + +--- + +## 4. Flow B — the Dark Factory pipeline + +> 📊 **See the fancy diagrams:** [`diagrams/flow-b-dark-factory.md`](diagrams/flow-b-dark-factory.md) +> (end-to-end pipeline + detailed sequence + live-status mock). + +Runs on **spoke-dev only**. End to end: + +1. **Trigger** — an issue labeled `dark-factory` fires a **GitHub Action**. The Action gates on the + label, mints a **short-TTL** installation token, and calls the orchestrator. *(Net-new — OAP has + no GitHub Actions today.)* +2. **Claim** — the **orchestrator** (adapting the openclaw `session-router`, but keyed on + **issue-id** instead of a Cognito `sub`) issues a `SandboxClaim` and **binds a warm sandbox**. + The pool-manager refills the buffer. +3. **Code** — the issue is written into the sandbox as `/workspace/SPEC.md`. The **pluggable + coder** (Claude Code headless by default; Kiro headless as a profile) implements on branch + `df/issue-` and **builds + runs unit tests until green** inside the VM. +4. **Independent verification** *(driven by the orchestrator — never by the coder — see [§6](#6-independent-verification-the-heart-of-the-pattern)):* + - **Holdout gate** — hidden BDD scenarios the coder can neither see nor edit, judged by a + **different model** than the coder used, **paired with executable tests**, ≥90% to pass. + - **AWS frontier agents** — the orchestrator invokes the **AWS Security Agent** and **AWS DevOps + Agent** on the diff/artifacts (advisory in v1). +5. **PR + live status** — the coder opens a PR via `gh`; the orchestrator maintains **one sticky + comment** that ticks each stage ⏳→✅/❌ with timestamps and log links (see [§7](#7-live-status-in-the-pr)). +6. **Human review** — a human reviews the **evidence** (test results, holdout satisfaction, + security/devops findings) and either approves or comments. +7. **Iterate** — a PR comment resumes the scaled-to-zero sandbox (same workspace) and the coder + applies the change. **Bounded to N rounds**, then a human breaks the tie (see [§8](#8-human-in-the-loop--the-iterative-comment-loop)). +8. **Merge + teardown** — on approve→merge, the orchestrator deletes the sandbox, PVC, any + ephemeral test infra, and the eval job. A **reaper CronJob** sweeps abandoned/timed-out runs. + +### Two worked use-cases + +| Issue example | How it's tested | Teardown | +|---|---|---| +| *"Add a `weather-agent` to the examples"* | Deploy into an **ephemeral namespace** on spoke-dev → run holdout scenarios → delete namespace | Namespace + branch artifacts | +| *"Build an EKS cluster with X"* | **Dry-run / crossplane-render** by default; a `deep-test` label spins a **real ephemeral `PlatformCluster`** (appmod-blueprints composition) | Delete the `PlatformCluster` claim | + +--- + +## 5. The pluggable coding assistant + +The coder is behind a **thin, swappable interface** — a deliberate choice (the industry lesson is +*don't marry a single vendor*). Two profiles ship; both run **inside** the Kata sandbox and reach +models only through LiteLLM. + +| Profile | Why | Notes | +|---|---|---| +| **A — Claude Code headless** *(primary)* | Purpose-built for autonomous implement→build→test→git loops; proven headless/CI autonomy | `CLAUDE_CODE_USE_BEDROCK` / base-URL → LiteLLM; strongest multi-file + shell | +| **B — Kiro headless** | **Spec-driven** (`spec → requirements → design → tasks`) — the most natural fit since *an issue is a spec*; supports a headless GitHub Actions mode | AWS-native; documented as the second profile | + +### The coder contract (drop-in interface) + +Everything crosses the boundary as **files + env**, so swapping profiles is one config line: + +``` +INPUTS (mounted into the sandbox) + /workspace/SPEC.md # the issue, as a spec + /workspace/repo/ # the checked-out target repo (branch df/issue-) + /workspace/RETRY.md # (optional) one-line failure reasons from a prior holdout run + tmpfs: litellm-api-key # mode 0400, read then unset — never in env + tmpfs: gh-token # short-TTL, mode 0400 +ENV + CODER_PROFILE=claude-code|kiro + LITELLM_URL=http://litellm.litellm.svc:4000 +OUTPUTS (produced by the coder) + git branch df/issue- with commits + /workspace/artifacts/result.json # what changed, build/test logs, evidence links +``` + +> The holdout scenarios are **deliberately absent** from this list — the coder never receives them. +> See [§6](#6-independent-verification-the-heart-of-the-pattern). + +--- + +## 6. Independent verification (the heart of the pattern) + +This is the part most teams skip — and it's why their agents learn to *game the tests*. Two +independent checks run **outside** the coder's control. + +### 6.1 Holdout gate — train/test separation for code + +Acceptance criteria are written as **plain-English BDD scenarios** that live in a location the +coder **cannot see or edit**. A separate evaluator job runs them against the built code. + +``` +holdout/ + scenarios/*.feature # hidden acceptance scenarios (never mounted into the sandbox) + rubric.md # how the judge scores +``` + +**Hard rules (these are the whole point):** + +1. **The coder cannot read or write the holdout.** Scenarios are never mounted into the sandbox; + the coder's repo checkout **excludes the grading-test path**. On a failed run the coder gets + only **one-line reasons** in `RETRY.md` — never the scenario text. +2. **A different model judges.** The evaluator's LLM judge must be a **different model/family than + the coder** (defeats self-preference bias — a model scores its own output higher). +3. **The judge is never the sole gate.** Every scenario is paired with **executable tests**; the + LLM judgment is one signal, not the verdict. Each scenario runs **2-of-3** to smooth + non-determinism. Gate = **≥90%** satisfaction. + +> This mirrors ML holdout sets and is directly validated by StrongDM's "Software Factory," which +> found *"`return true` is a great way to pass narrowly written tests"* and fixed it by storing +> scenarios **outside** the codebase. + +### 6.2 AWS frontier agents — independent, read-only reviewers + +The **orchestrator** (not the coder) invokes the **AWS Security Agent** and **AWS DevOps Agent** on +the finished diff/artifacts: + +- They are **out-of-cluster, AWS-managed** services — **not** kagent pods. +- They are **read-only reviewers on the finished diff** — never co-authors. Their findings are + folded into the PR report; the coder only *reacts* to them via the comment loop. +- **v1 = advisory** (report-only). Gate hooks are designed so **per-severity blocking** can be + switched on later (e.g. a critical CVE blocks the PR). + +> **Why the orchestrator invokes them, not the coder:** it keeps the untrusted sandbox +> **credential-less** and preserves *separation of concerns* — the agent doing the work is not the +> one grading it (see the [lethal-trifecta gotcha](#11-industry-alignment--anti-patterns-what-the-world-agrees-on)). + +--- + +## 7. Live status in the PR + +The human **watches the factory work** (the Gas City idea) through **one sticky PR comment** the +orchestrator edits in place — no comment spam, one canonical surface (the pattern Copilot, Devin, +and Factory all converge on). + +``` +## 🏭 Dark Factory — issue #42 +✅ Claimed sandbox (spoke-dev) 12:01 +✅ Branch df/issue-42 12:01 +✅ Implement 12:04 +✅ Build + unit tests 12:07 📄 log +⏳ Security Agent… +⬜ DevOps Agent +⬜ Holdout gate (0/12) +⬜ PR ready for review +``` + +Each stage links to raw logs and test output (**verifiability-by-citation** — the human can audit +any step). The full PR body carries the report: what changed, test results, holdout satisfaction %, +and the Security/DevOps findings. + +--- + +## 8. Human-in-the-loop & the iterative comment loop + +Level 3 means the **human approves the merge** — and can steer via comments: + +- A PR comment (change requested) → the orchestrator **resumes the scaled-to-zero sandbox** (same + workspace PVC) → the coder applies the change → pushes → the sticky status updates. +- **Bounded convergence:** the loop is capped at **N rounds**; after that a human must break the + tie. Comments are **batched into one agent run** (don't fire the agent per un-batched comment — + it thrashes). +- The agent **never self-merges**; it only pushes to its own `df/issue-` branch. Branch + protections and CI still apply. + +--- + +## 9. Lifecycle, teardown & cost + +| Phase | Sandbox state | Cost posture | +|---|---|---| +| Idle in warm pool | `replicas: 0` or snapshot | Minimal (no running VM) | +| Claimed / coding | `replicas: 1` | Active VM billed | +| Awaiting review | **`replicas: 0`** (PVC kept) | Minimal — resumes on comment | +| Merged / closed | **Deleted** (Sandbox + PVC + test infra + eval job) | Zero | + +- **Scale-to-zero between activity** keeps the (possibly long) review window cheap. +- **Reaper CronJob** (adapted from openclaw `reaper-cronjob.yaml`) sweeps abandoned/timed-out runs + by TTL annotation — the safety net for crashes and forgotten PRs. +- **Ephemeral EKS test targets** (`deep-test`) are **gated behind a label** because they cost real + money and take ~15–20 min to provision; the default path is dry-run/namespace testing. + +--- + +## 10. Security model + +Untrusted, LLM-generated code + issue text from anyone = treat the whole sandbox as hostile. + +- **Hardware isolation:** every coder runs in a **Kata micro-VM** (own kernel), not a shared-kernel + container. +- **No cloud credentials in the sandbox:** the coder holds only a **LiteLLM API key** and a + **short-TTL GitHub token** via **projected tmpfs (mode 0400)** — read then unset, never in env. + All AWS IAM lives with the **orchestrator, outside the VM**. +- **Egress lockdown:** a **NetworkPolicy** restricts sandbox egress to **LiteLLM:4000 + DNS + + GitHub only**. `automountServiceAccountToken: false`, runAsNonRoot, seccomp `RuntimeDefault`, + drop `ALL` caps. +- **Prod is never a test bed:** the factory runs on **spoke-dev**; spoke-prod holds the sandbox + capability but its pool is **dormant**. Unreviewed agent code never touches prod. +- **⚠️ Lethal trifecta (the #1 risk — see [§11](#11-industry-alignment--anti-patterns-what-the-world-agrees-on)):** untrusted + issue text + credentials + egress is the exact recipe for prompt-injection exfiltration + (demonstrated against GitHub-issue-driven agents in the wild). The mitigations above exist + specifically to break that trifecta: keep credentials out of the issue-ingesting context, deny + egress, and treat all issue/repo content as hostile input. + +--- + +## 11. Industry alignment & anti-patterns (what the world agrees on) + +We validated this design against how GitHub Copilot coding agent, OpenAI Codex cloud, Devin, Google +Jules, Cursor background agents, Factory.ai, and StrongDM's "Software Factory" actually work. + +### ✅ Where we match consensus + +| Design choice | Industry practice | +|---|---| +| Issue → Action → ephemeral sandbox → build/test → PR | The recurring ~7-stage pipeline across Copilot/Codex/Devin/Jules/Factory | +| **Kata micro-VM isolation** | *Above-consensus.* microVM-class isolation (Firecracker, Kata, Bedrock AgentCore's per-session microVM) is the defensible choice for untrusted LLM code; shared-kernel containers are considered insufficient | +| Build/test **until green before** the PR | Explicit in codex-1's RL training, Devin, Copilot | +| **Holdout scenarios the coder never sees** | *Above-consensus.* Directly matches StrongDM's Software Factory (they learned it the hard way after `return true` gamed their tests) | +| **One sticky status surface**, not comment spam | Copilot draft-PR + session logs; Devin single review status; Factory "Mission Control" | +| Human **approves the PR**, agent iterates on comments | The dominant gating norm — agents do **not** self-merge by default | +| Single coder + **independent read-only reviewers** | Anthropic + Cognition agree parallel multi-agent *authoring* is a poor fit for coding; the good pattern is one coder + a fresh model reviewing the finished diff (CodeRabbit's Security Agent) | + +### ⚠️ Anti-patterns we explicitly design against + +1. **Lethal trifecta / prompt injection (highest risk).** Untrusted issue text + cloud creds + egress + → data exfiltration. Invariant Labs demonstrated a malicious GitHub *issue* injecting an agent + into leaking private-repo data via an auto-PR. **Our defense:** credentials never in the + issue-ingesting sandbox context; egress denied except LiteLLM/GitHub; issue/repo content treated + as hostile; frontier agents scoped read-only. *(Willison "lethal trifecta"; Invariant Labs.)* +2. **Reward hacking / test-gaming.** Frontier models stub evaluators (`evaluate = _always_ok`), make + `verify()` return true, read reference answers, or delete the test oracle (METR, OpenAI, + Anthropic). **Our defense:** the holdout the coder cannot see or edit — if the coder can reach it, + the holdout is theater. +3. **LLM-judge as a sole hard gate.** Judges have proven position/verbosity/**self-preference** bias + (causal — a model favors its own family's output). **Our defense:** different judge model + + paired executable tests + 2-of-3 + a probabilistic satisfaction score, never a lone boolean. +4. **Multi-agent over-orchestration.** **Our defense:** single-threaded coder; Security/DevOps are + stateless read-only reviewers on the finished diff, never co-authors. +5. **Non-converging comment loops.** **Our defense:** batch comments into one run, cap iterations, + hard time/turn limits. +6. **Warm-pool idle burn.** **Our defense:** snapshot/fork + idle reaping + scale-to-zero, not parked + VMs. +7. **Rubber-stamp reviews.** AI-co-authored PRs carry measurably more issues; "review results not + code" can decay into a green rubber stamp. **Our defense:** the human reviews *structured + evidence* (tests + holdout % + security findings + diff-path confinement), and high-risk changes + (infra, `deep-test`) get a firmer gate. + +--- + +## 12. Phased delivery + +Each phase is independently valuable — if you stop after any one, you're better off than before. + +| Phase | Delivers | Independently useful? | +|------:|----------|-----------------------| +| **P1** | Trigger → claim warm sandbox → Claude Code coder → build/test → PR + sticky status → manual teardown | ✅ A working autonomous-PR loop | +| **P2** | Strict **holdout gate** (isolated, different-model judge, executable-test pairing) + bounded retry | ✅ Quality gate that resists gaming | +| **P3** | **AWS Security + DevOps** frontier agents (advisory) folded into the PR report | ✅ Independent review evidence | +| **P4** | Ephemeral test targets (namespace default; `deep-test` `PlatformCluster`) + **auto-teardown** on merge + reaper | ✅ Full lights-off lifecycle | +| **P5** | **Kiro** coder profile; per-severity **blocking** gate option; spoke-prod pool activation story | ✅ Vendor-plurality + higher autonomy | + +--- + +## 13. Open questions / future work + +*To resolve during implementation — flagged honestly rather than assumed:* + +- **Headless auth** for Claude Code & Kiro through a LiteLLM base-URL override inside a Kata VM + (the biggest unknown — prototype first in P1). +- **Import the `agent-sandbox` operator** from `eks-platform-openclaw` into the OAP addon catalog + (Flow A's first task). +- **Enable the sandbox/kagent addons on the dev overlay** (they're hub-only today). +- **Exact AWS Security / DevOps Agent APIs & auth** — confirm the invocation contract at build time. +- **Orchestrator RBAC scope** — Sandbox/PVC/Service/Job on spoke-dev + `PlatformCluster` claims for + the `deep-test` path. +- **Warm-pool implementation** — verify whether the `agent-sandbox` v0.1.0 operator supports + snapshot/fork warm-binding, or whether the pool-manager must create-on-demand. + +--- + +## 14. References + +**Pattern sources** +- Steve Yegge — *Welcome to Gas City* — https://steve-yegge.medium.com/welcome-to-gas-city-57f564bb3607 +- *The Dark Factory Pattern: Moving From AI-Assisted to Fully Autonomous Coding* — https://hackernoon.com/the-dark-factory-pattern-moving-from-ai-assisted-to-fully-autonomous-coding +- Kiro headless in GitHub Actions — https://builder.aws.com/content/35cLFnKM6DJMgRzdZQ7XPZkJmoz/automate-reviews-in-github-actions-with-kiro-headless-mode + +**Industry pipelines** +- GitHub Copilot coding agent — https://github.blog/news-insights/product-news/github-copilot-meet-the-new-coding-agent/ +- OpenAI Codex — https://openai.com/index/introducing-codex/ +- Devin SDLC integration — https://docs.devin.ai/essential-guidelines/sdlc-integration +- Factory.ai Missions — https://docs.factory.ai/cli/features/missions/overview +- StrongDM Software Factory — https://factory.strongdm.ai/ +- AWS Bedrock AgentCore runtime sessions (per-session microVM) — https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-sessions.md +- AWS DevOps Agent — https://aws.amazon.com/devops-agent/ + +**Failure modes / safety** +- Simon Willison — *The lethal trifecta* — https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/ +- Invariant Labs — GitHub MCP prompt-injection exfiltration — https://invariantlabs.ai/blog/mcp-github-vulnerability +- METR — *Recent frontier models are reward hacking* — https://metr.org/blog/2025-06-05-recent-reward-hacking/ +- OpenAI — *Detecting misbehavior in frontier reasoning models* — https://openai.com/index/chain-of-thought-monitoring/ +- Anthropic — *Reward tampering* — https://www.anthropic.com/research/reward-tampering +- LLM-judge self-preference bias — https://arxiv.org/abs/2404.13076 · MT-Bench — https://arxiv.org/abs/2306.05685 +- Cognition — *Don't build multi-agents* — https://cognition.ai/blog/dont-build-multi-agents +- Anthropic — *Claude Code best practices* — https://www.anthropic.com/engineering/claude-code-best-practices + +**Platform building blocks (this monorepo & siblings)** +- `eks-platform-openclaw` — Kata micro-VM sandbox, `Sandbox` CRD, session-router lifecycle, LiteLLM gateway +- `appmod-blueprints` — `PlatformCluster` Crossplane composition (ephemeral EKS), KRO CI/CD pipeline +- `agent-platform-amazon-eks` — hub/spoke fleet, addon ApplicationSets, kagent, agent-gateway diff --git a/docs/dark-factory/diagrams/flow-a-sandbox-capability.md b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md new file mode 100644 index 00000000..2ee7d7e8 --- /dev/null +++ b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md @@ -0,0 +1,100 @@ +# Flow A — Agent Sandbox Capability (permanent platform feature) + +The **Agent Sandbox** capability ships as a first-class agent-platform GitOps addon. When +the platform is deployed, it stands up the Kata (Cloud Hypervisor) micro-VM runtime, the +`Sandbox` CRD + operator, and a **warm pool** of pre-provisioned, hardware-isolated sandboxes +kept ready by a pool-manager controller. This is independent of the Dark Factory — it is the +reusable isolation substrate any agent workload can claim. + +--- + +## A.1 — Capability architecture + +```mermaid +%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'14px','primaryColor':'#EAF2FF','primaryBorderColor':'#2563EB','primaryTextColor':'#0B1F3A','lineColor':'#64748B','clusterBkg':'#F8FAFC','clusterBorder':'#CBD5E1'}}}%% +flowchart TB + classDef gitops fill:#EDE9FE,stroke:#7C3AED,stroke-width:1.5px,color:#2E1065,rx:8,ry:8; + classDef control fill:#DBEAFE,stroke:#2563EB,stroke-width:1.5px,color:#0B1F3A,rx:8,ry:8; + classDef warm fill:#DCFCE7,stroke:#16A34A,stroke-width:1.5px,color:#052E16,rx:10,ry:10; + classDef node fill:#FEF3C7,stroke:#D97706,stroke-width:1.5px,color:#451A03,rx:8,ry:8; + classDef model fill:#FCE7F3,stroke:#DB2777,stroke-width:1.5px,color:#500724,rx:8,ry:8; + classDef vm fill:#F1F5F9,stroke:#0EA5E9,stroke-width:2px,color:#0C4A6E,rx:6,ry:6; + + subgraph GITOPS["🚀 GitOps enablement · ArgoCD app-of-apps"] + direction LR + FLAG["enable_agent_sandbox: true
overlays/environments/{dev,prod}"]:::gitops + APPSET["ApplicationSet
cluster-generator
sync-wave −1 → 1"]:::gitops + FLAG --> APPSET + end + + subgraph CLUSTER["☸️ spoke-dev & spoke-prod (capability on both)"] + direction TB + + subgraph OPER["🧩 Sandbox control plane"] + direction LR + CRD["Sandbox CRD
agents.x-k8s.io/v1alpha1
+ SandboxTemplate
+ SandboxClaim"]:::control + OPCTL["agent-sandbox
operator"]:::control + POOL["pool-manager
controller
keeps N idle · refills · shrinks"]:::control + CRD --- OPCTL --- POOL + end + + subgraph WARM["🔥 Warm pool · target buffer = 2–3 idle"] + direction LR + S1(["🟢 idle
sandbox-1"]):::warm + S2(["🟢 idle
sandbox-2"]):::warm + S3(["🟢 idle
sandbox-3"]):::warm + end + + subgraph KATA["🛡️ Kata micro-VM runtime (hardware isolation)"] + direction LR + RC["RuntimeClasses
kata-clh · kata-qemu · kata-fc"]:::vm + NP["Karpenter pools
kata-nested (c8i/m8i)
kata-metal (fallback)"]:::node + KD["kata-deploy
DaemonSet"]:::vm + RC --- KD --- NP + end + + MODEL["🧠 LiteLLM gateway
litellm.litellm.svc:4000
→ Bedrock via Pod Identity"]:::model + end + + APPSET ==>|renders| OPER + APPSET ==>|renders| KATA + POOL ==>|creates / scales
Sandbox CRs| WARM + WARM -.->|scheduled onto| KATA + WARM -.->|model calls
egress-locked| MODEL + + linkStyle default stroke:#64748B,stroke-width:1.5px; +``` + +--- + +## A.2 — Warm-pool cycling (claim ↔ refill ↔ shrink) + +The pool-manager keeps a steady buffer of idle sandboxes so a consumer (e.g. the Dark +Factory) binds to a **ready** VM instantly instead of paying cold-start. Idle sandboxes use +the `Sandbox` `replicas: 0/1` **scale subresource**, so "idle" is cheap. + +```mermaid +%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'14px','primaryColor':'#DCFCE7','primaryBorderColor':'#16A34A','primaryTextColor':'#052E16','lineColor':'#16A34A'}}}%% +stateDiagram-v2 + direction LR + [*] --> Provisioning : pool below target + Provisioning --> Idle : VM booted, replicas=1, unclaimed + Idle --> Claimed : SandboxClaim binds (consumer arrives) + Claimed --> Idle : claim released, VM recyclable + Idle --> Paused : idle TTL — scale replicas=0 (PVC kept) + Paused --> Idle : demand returns — scale replicas=1 + Claimed --> Retired : consumer done → delete Sandbox+PVC + Idle --> Retired : pool above target → shrink + Retired --> [*] + + note right of Claimed + On CLAIM the pool-manager + provisions a REFILL so the + buffer stays at target (2–3). + end note + note right of Retired + On RELEASE, if the pool is + above target, the extra idle + sandbox is removed. + end note +``` diff --git a/docs/dark-factory/diagrams/flow-b-dark-factory.md b/docs/dark-factory/diagrams/flow-b-dark-factory.md new file mode 100644 index 00000000..333f79d7 --- /dev/null +++ b/docs/dark-factory/diagrams/flow-b-dark-factory.md @@ -0,0 +1,160 @@ +# Flow B — Dark Factory (issue → PR → merge → teardown) + +A GitHub issue is a **spec**. The factory claims a warm sandbox on spoke-dev, a pluggable +coding assistant implements + tests the change, the orchestrator runs independent +verification (holdout gate + AWS frontier agents), a PR is opened with a **live-updating** +status, a human approves on results, and everything is torn down on merge. Autonomy **Level 3**: +the human's only job is to approve the merge. + +--- + +## B.1 — End-to-end pipeline (lights-off assembly line) + +```mermaid +%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'13.5px','primaryColor':'#EAF2FF','primaryBorderColor':'#2563EB','primaryTextColor':'#0B1F3A','lineColor':'#475569','clusterBkg':'#F8FAFC','clusterBorder':'#CBD5E1'}}}%% +flowchart LR + classDef trigger fill:#FEF9C3,stroke:#CA8A04,stroke-width:1.5px,color:#422006,rx:8,ry:8; + classDef orch fill:#DBEAFE,stroke:#2563EB,stroke-width:2px,color:#0B1F3A,rx:8,ry:8; + classDef sandbox fill:#E0F2FE,stroke:#0EA5E9,stroke-width:2px,color:#0C4A6E,rx:8,ry:8; + classDef verify fill:#F3E8FF,stroke:#9333EA,stroke-width:1.5px,color:#3B0764,rx:8,ry:8; + classDef aws fill:#FFEDD5,stroke:#EA580C,stroke-width:1.5px,color:#431407,rx:8,ry:8; + classDef human fill:#DCFCE7,stroke:#16A34A,stroke-width:2px,color:#052E16,rx:10,ry:10; + classDef teardown fill:#FEE2E2,stroke:#DC2626,stroke-width:1.5px,color:#450A0A,rx:8,ry:8; + + START([🧾 Issue opened
label: dark-factory]):::trigger + + subgraph T["① Trigger"] + GHA["⚙️ GitHub Action
gate on label
mint short-TTL token"]:::trigger + end + + subgraph O["② Orchestrate · spoke-dev (trusted, holds AWS IAM)"] + ORCH["🎛️ Orchestrator
key = issue-id
claim + drive + report"]:::orch + CLAIM["🔒 SandboxClaim
→ bind warm sandbox
pool refills"]:::orch + ORCH --> CLAIM + end + + subgraph SBX["③ Code + self-test · Kata micro-VM (isolated, no cloud creds)"] + CODER["🤖 Pluggable coder
Claude Code ▸ | Kiro ▸
reads SPEC.md"]:::sandbox + IMPL["✍️ implement
branch df/issue-N"]:::sandbox + BUILD["🔧 build + unit tests
until green"]:::sandbox + CODER --> IMPL --> BUILD + end + + subgraph V["④ Independent verification (orchestrator-driven — NOT the coder)"] + HOLD["🎯 Holdout gate
hidden BDD scenarios
different-model judge
+ executable tests · ≥90%"]:::verify + SEC["🛡️ AWS Security Agent"]:::aws + DEV["🚀 AWS DevOps Agent"]:::aws + HOLD -.-> SEC -.-> DEV + end + + subgraph P["⑤ Pull Request · live status"] + PR["🔀 PR opened
sticky comment ⏳→✅
results + findings + logs"]:::orch + end + + subgraph H["⑥ Human — Level 3"] + REVIEW{"Approve?
reviews RESULTS"}:::human + COMMENT["💬 PR comment
resume sandbox → iterate
(bounded N rounds)"]:::human + end + + subgraph TD["⑦ Merge + teardown"] + MERGE["✅ merge PR"]:::teardown + DESTROY["🧹 delete sandbox + PVC
+ ephemeral test infra
+ eval job"]:::teardown + MERGE --> DESTROY --> DONE([🏁 done]):::teardown + end + + START --> GHA --> ORCH + CLAIM ==> CODER + BUILD ==> HOLD + DEV ==> PR + PR ==> REVIEW + REVIEW -->|changes requested| COMMENT + COMMENT -.->|new instruction| CODER + REVIEW -->|approve| MERGE + + linkStyle default stroke:#475569,stroke-width:1.5px; +``` + +--- + +## B.2 — Detailed sequence (who does what, and the trust boundary) + +```mermaid +%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'13px','actorBkg':'#DBEAFE','actorBorder':'#2563EB','actorTextColor':'#0B1F3A','signalColor':'#334155','signalTextColor':'#0B1F3A','noteBkg':'#FEF9C3','noteBorderColor':'#CA8A04','loopTextColor':'#3B0764'}}}%% +sequenceDiagram + autonumber + actor Dev as 🧑‍💻 Human + participant GH as 🐙 GitHub + participant GHA as ⚙️ Action + participant ORCH as 🎛️ Orchestrator
(trusted · AWS IAM) + participant POOL as 🔥 Warm pool + box LightBlue 🛡️ Kata micro-VM · isolated · no cloud creds + participant SBX as 🤖 Coder sandbox + end + participant EVAL as 🎯 Holdout evaluator + participant AWS as ☁️ AWS Security /
DevOps Agents + + Dev->>GH: open issue (label: dark-factory) + GH->>GHA: issues.labeled event + GHA->>ORCH: POST /run (issue #, repo, short-TTL token) + ORCH->>POOL: SandboxClaim (key = issue-id) + POOL-->>ORCH: bound warm sandbox (instant) + Note over POOL: pool-manager provisions a REFILL + + ORCH->>SBX: write /workspace/SPEC.md + checkout df/issue-N + activate SBX + SBX->>SBX: implement · build · unit tests (until green) + SBX-->>ORCH: artifacts/result.json (diff + logs) + deactivate SBX + + Note over ORCH,EVAL: Verification is INDEPENDENT of the coder
(coder never sees / edits the holdout) + ORCH->>EVAL: run hidden BDD scenarios vs diff + EVAL-->>ORCH: satisfaction % (different-model judge + real tests) + ORCH->>AWS: invoke Security + DevOps agents on diff/artifacts + AWS-->>ORCH: findings (advisory) + + ORCH->>GH: open PR + sticky status comment (⏳→✅) + GH-->>Dev: review request (results, not code) + + loop bounded iterations (max N) + Dev->>GH: PR comment (change requested) + GH->>ORCH: comment webhook + ORCH->>POOL: resume sandbox (scale 0→1, same PVC) + ORCH->>SBX: apply comment as new instruction + activate SBX + SBX-->>ORCH: push update + deactivate SBX + ORCH->>GH: update sticky status + end + + Dev->>GH: ✅ approve + merge + GH->>ORCH: pull_request closed+merged + ORCH->>POOL: release + delete sandbox + PVC + ORCH->>ORCH: delete ephemeral test infra + eval job + Note over ORCH: Reaper CronJob reaps any abandoned/timed-out run +``` + +--- + +## B.3 — Live PR status (the sticky comment the human watches) + +The orchestrator maintains **one** PR comment, edited in place as each stage completes — +no comment spam, one canonical surface (the pattern Copilot/Devin/Factory converge on). + +```mermaid +%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-monospace, monospace','fontSize':'13px'}}}%% +flowchart TB + classDef done fill:#DCFCE7,stroke:#16A34A,color:#052E16,rx:6,ry:6; + classDef now fill:#FEF9C3,stroke:#CA8A04,color:#422006,rx:6,ry:6; + classDef wait fill:#F1F5F9,stroke:#94A3B8,color:#475569,rx:6,ry:6; + + H["🏭 Dark Factory — issue #42"]:::done + A["✅ Claimed sandbox (spoke-dev) · 12:01"]:::done + B["✅ Branch df/issue-42 · 12:01"]:::done + C["✅ Implement · 12:04"]:::done + D["✅ Build + unit tests · 12:07 · 📄 log"]:::done + E["⏳ Security Agent…"]:::now + F["⬜ DevOps Agent"]:::wait + G["⬜ Holdout gate (0/12)"]:::wait + I["⬜ PR ready for review"]:::wait + H-->A-->B-->C-->D-->E-->F-->G-->I +``` From a6c4f62b21f790237bfc56febd643c25c2181f5f Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 10:08:02 -0400 Subject: [PATCH 002/365] docs(dark-factory): restyle diagrams to AWS dark-canvas keynote theme Unify all 5 mermaid diagrams on one palette + font (was clumsy: mixed light/dark backgrounds, too many colors, inconsistent fonts): - Squid Ink navy canvas (#1B2733) with layered navy bands/nodes, light text - single AWS Orange (#FF9900) accent reserved for the active/happy path - Amazon Ember font, uniform rounded nodes + stroke weights - fixed linkStyle edge indices (chained edges were mis-counted) Flow A (capability + warm-pool state machine) and Flow B (pipeline + sequence + live-status) now read as one consistent visual system. --- .../diagrams/flow-a-sandbox-capability.md | 140 ++++++------ .../diagrams/flow-b-dark-factory.md | 203 ++++++++++-------- 2 files changed, 189 insertions(+), 154 deletions(-) diff --git a/docs/dark-factory/diagrams/flow-a-sandbox-capability.md b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md index 2ee7d7e8..a3d4db7c 100644 --- a/docs/dark-factory/diagrams/flow-a-sandbox-capability.md +++ b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md @@ -1,100 +1,112 @@ # Flow A — Agent Sandbox Capability (permanent platform feature) -The **Agent Sandbox** capability ships as a first-class agent-platform GitOps addon. When -the platform is deployed, it stands up the Kata (Cloud Hypervisor) micro-VM runtime, the -`Sandbox` CRD + operator, and a **warm pool** of pre-provisioned, hardware-isolated sandboxes -kept ready by a pool-manager controller. This is independent of the Dark Factory — it is the -reusable isolation substrate any agent workload can claim. +The **Agent Sandbox** capability ships as a first-class agent-platform GitOps addon. When the +platform is deployed, it stands up the Kata (Cloud Hypervisor) micro-VM runtime, the `Sandbox` +CRD + operator, and a **warm pool** of pre-provisioned, hardware-isolated sandboxes kept ready by +a pool-manager controller. This is independent of the Dark Factory — it is the reusable isolation +substrate any agent workload can claim. --- ## A.1 — Capability architecture ```mermaid -%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'14px','primaryColor':'#EAF2FF','primaryBorderColor':'#2563EB','primaryTextColor':'#0B1F3A','lineColor':'#64748B','clusterBkg':'#F8FAFC','clusterBorder':'#CBD5E1'}}}%% +%%{init: {'theme':'base','themeVariables':{ + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'14px', + 'primaryColor':'#2E3E50','primaryBorderColor':'#5F7185','primaryTextColor':'#FFFFFF', + 'lineColor':'#8B99A7','clusterBkg':'#26374A','clusterBorder':'#5F7185', + 'tertiaryColor':'#1B2733'}}}%% flowchart TB - classDef gitops fill:#EDE9FE,stroke:#7C3AED,stroke-width:1.5px,color:#2E1065,rx:8,ry:8; - classDef control fill:#DBEAFE,stroke:#2563EB,stroke-width:1.5px,color:#0B1F3A,rx:8,ry:8; - classDef warm fill:#DCFCE7,stroke:#16A34A,stroke-width:1.5px,color:#052E16,rx:10,ry:10; - classDef node fill:#FEF3C7,stroke:#D97706,stroke-width:1.5px,color:#451A03,rx:8,ry:8; - classDef model fill:#FCE7F3,stroke:#DB2777,stroke-width:1.5px,color:#500724,rx:8,ry:8; - classDef vm fill:#F1F5F9,stroke:#0EA5E9,stroke-width:2px,color:#0C4A6E,rx:6,ry:6; - - subgraph GITOPS["🚀 GitOps enablement · ArgoCD app-of-apps"] - direction LR - FLAG["enable_agent_sandbox: true
overlays/environments/{dev,prod}"]:::gitops - APPSET["ApplicationSet
cluster-generator
sync-wave −1 → 1"]:::gitops - FLAG --> APPSET - end - - subgraph CLUSTER["☸️ spoke-dev & spoke-prod (capability on both)"] - direction TB + classDef canvas fill:#1B2733,stroke:#1B2733,color:#FFFFFF; + classDef band fill:#26374A,stroke:#5F7185,color:#E8EDF2,stroke-width:1px; + classDef node fill:#2E4257,stroke:#7C8FA3,color:#FFFFFF,stroke-width:1.2px; + classDef accent fill:#FF9900,stroke:#EC7211,color:#161E2D,stroke-width:1.5px; + classDef warm fill:#22384A,stroke:#FF9900,color:#FFFFFF,stroke-width:1.4px; + classDef muted fill:#243244,stroke:#415266,color:#AEB8C4,stroke-width:1px; - subgraph OPER["🧩 Sandbox control plane"] - direction LR - CRD["Sandbox CRD
agents.x-k8s.io/v1alpha1
+ SandboxTemplate
+ SandboxClaim"]:::control - OPCTL["agent-sandbox
operator"]:::control - POOL["pool-manager
controller
keeps N idle · refills · shrinks"]:::control - CRD --- OPCTL --- POOL - end + subgraph CANVAS[" "] + direction TB - subgraph WARM["🔥 Warm pool · target buffer = 2–3 idle"] + subgraph GITOPS["🚀 GitOps enablement · ArgoCD app-of-apps"] direction LR - S1(["🟢 idle
sandbox-1"]):::warm - S2(["🟢 idle
sandbox-2"]):::warm - S3(["🟢 idle
sandbox-3"]):::warm + FLAG["enable_agent_sandbox: true
overlays/environments/dev,prod"]:::accent + APPSET["ApplicationSet
cluster-generator
sync-wave −1 → 1"]:::node + FLAG --> APPSET end - subgraph KATA["🛡️ Kata micro-VM runtime (hardware isolation)"] - direction LR - RC["RuntimeClasses
kata-clh · kata-qemu · kata-fc"]:::vm - NP["Karpenter pools
kata-nested (c8i/m8i)
kata-metal (fallback)"]:::node - KD["kata-deploy
DaemonSet"]:::vm - RC --- KD --- NP + subgraph CLUSTER["☸️ spoke-dev & spoke-prod · capability on both"] + direction TB + + subgraph OPER["🧩 Sandbox control plane"] + direction LR + CRD["Sandbox CRD
agents.x-k8s.io/v1alpha1
+ SandboxTemplate + SandboxClaim"]:::node + OPCTL["agent-sandbox
operator"]:::node + POOL["pool-manager
keeps N idle · refills · shrinks"]:::accent + CRD --- OPCTL --- POOL + end + + subgraph WARM["🔥 Warm pool · target buffer = 2–3 idle"] + direction LR + S1(["idle · sandbox-1"]):::warm + S2(["idle · sandbox-2"]):::warm + S3(["idle · sandbox-3"]):::warm + end + + subgraph KATA["🛡️ Kata micro-VM runtime · hardware isolation"] + direction LR + RC["RuntimeClasses
kata-clh · kata-qemu · kata-fc"]:::node + KD["kata-deploy
DaemonSet"]:::node + NP["Karpenter pools
kata-nested c8i/m8i · kata-metal"]:::node + RC --- KD --- NP + end + + MODEL["🧠 LiteLLM gateway
litellm.litellm.svc:4000 → Bedrock"]:::node end - - MODEL["🧠 LiteLLM gateway
litellm.litellm.svc:4000
→ Bedrock via Pod Identity"]:::model end - APPSET ==>|renders| OPER - APPSET ==>|renders| KATA - POOL ==>|creates / scales
Sandbox CRs| WARM - WARM -.->|scheduled onto| KATA - WARM -.->|model calls
egress-locked| MODEL + APPSET ==> OPER + APPSET ==> KATA + POOL ==> WARM + WARM -.-> KATA + WARM -.-> MODEL - linkStyle default stroke:#64748B,stroke-width:1.5px; + class CANVAS canvas + class GITOPS,CLUSTER,OPER,WARM,KATA band + linkStyle default stroke:#8B99A7,stroke-width:1.4px; + linkStyle 7 stroke:#FF9900,stroke-width:2px; ``` --- ## A.2 — Warm-pool cycling (claim ↔ refill ↔ shrink) -The pool-manager keeps a steady buffer of idle sandboxes so a consumer (e.g. the Dark -Factory) binds to a **ready** VM instantly instead of paying cold-start. Idle sandboxes use -the `Sandbox` `replicas: 0/1` **scale subresource**, so "idle" is cheap. +The pool-manager keeps a steady buffer of idle sandboxes so a consumer (e.g. the Dark Factory) +binds to a **ready** VM instantly instead of paying cold-start. Idle sandboxes use the `Sandbox` +`replicas: 0/1` **scale subresource**, so "idle" is cheap. ```mermaid -%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'14px','primaryColor':'#DCFCE7','primaryBorderColor':'#16A34A','primaryTextColor':'#052E16','lineColor':'#16A34A'}}}%% +%%{init: {'theme':'base','themeVariables':{ + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'14px', + 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', + 'lineColor':'#8B99A7','labelColor':'#E8EDF2'}}}%% stateDiagram-v2 direction LR [*] --> Provisioning : pool below target - Provisioning --> Idle : VM booted, replicas=1, unclaimed - Idle --> Claimed : SandboxClaim binds (consumer arrives) - Claimed --> Idle : claim released, VM recyclable - Idle --> Paused : idle TTL — scale replicas=0 (PVC kept) - Paused --> Idle : demand returns — scale replicas=1 - Claimed --> Retired : consumer done → delete Sandbox+PVC - Idle --> Retired : pool above target → shrink + Provisioning --> Idle : VM booted · replicas=1 · unclaimed + Idle --> Claimed : SandboxClaim binds + Claimed --> Idle : claim released · recyclable + Idle --> Paused : idle TTL · scale replicas=0 · PVC kept + Paused --> Idle : demand returns · scale replicas=1 + Claimed --> Retired : consumer done · delete Sandbox+PVC + Idle --> Retired : pool above target · shrink Retired --> [*] note right of Claimed - On CLAIM the pool-manager - provisions a REFILL so the - buffer stays at target (2–3). + On CLAIM the pool-manager provisions + a REFILL so the buffer stays at target. end note note right of Retired - On RELEASE, if the pool is - above target, the extra idle - sandbox is removed. + On RELEASE, if the pool is above target, + the extra idle sandbox is removed. end note ``` diff --git a/docs/dark-factory/diagrams/flow-b-dark-factory.md b/docs/dark-factory/diagrams/flow-b-dark-factory.md index 333f79d7..f314437d 100644 --- a/docs/dark-factory/diagrams/flow-b-dark-factory.md +++ b/docs/dark-factory/diagrams/flow-b-dark-factory.md @@ -1,77 +1,86 @@ # Flow B — Dark Factory (issue → PR → merge → teardown) -A GitHub issue is a **spec**. The factory claims a warm sandbox on spoke-dev, a pluggable -coding assistant implements + tests the change, the orchestrator runs independent -verification (holdout gate + AWS frontier agents), a PR is opened with a **live-updating** -status, a human approves on results, and everything is torn down on merge. Autonomy **Level 3**: -the human's only job is to approve the merge. +A GitHub issue is a **spec**. The factory claims a warm sandbox on spoke-dev, a pluggable coding +assistant implements + tests the change, the orchestrator runs independent verification (holdout +gate + AWS frontier agents), a PR is opened with a **live-updating** status, a human approves on +results, and everything is torn down on merge. Autonomy **Level 3**: the human's only job is to +approve the merge. --- ## B.1 — End-to-end pipeline (lights-off assembly line) ```mermaid -%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'13.5px','primaryColor':'#EAF2FF','primaryBorderColor':'#2563EB','primaryTextColor':'#0B1F3A','lineColor':'#475569','clusterBkg':'#F8FAFC','clusterBorder':'#CBD5E1'}}}%% +%%{init: {'theme':'base','themeVariables':{ + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'13.5px', + 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', + 'lineColor':'#8B99A7','clusterBkg':'#26374A','clusterBorder':'#5F7185'}}}%% flowchart LR - classDef trigger fill:#FEF9C3,stroke:#CA8A04,stroke-width:1.5px,color:#422006,rx:8,ry:8; - classDef orch fill:#DBEAFE,stroke:#2563EB,stroke-width:2px,color:#0B1F3A,rx:8,ry:8; - classDef sandbox fill:#E0F2FE,stroke:#0EA5E9,stroke-width:2px,color:#0C4A6E,rx:8,ry:8; - classDef verify fill:#F3E8FF,stroke:#9333EA,stroke-width:1.5px,color:#3B0764,rx:8,ry:8; - classDef aws fill:#FFEDD5,stroke:#EA580C,stroke-width:1.5px,color:#431407,rx:8,ry:8; - classDef human fill:#DCFCE7,stroke:#16A34A,stroke-width:2px,color:#052E16,rx:10,ry:10; - classDef teardown fill:#FEE2E2,stroke:#DC2626,stroke-width:1.5px,color:#450A0A,rx:8,ry:8; - - START([🧾 Issue opened
label: dark-factory]):::trigger - - subgraph T["① Trigger"] - GHA["⚙️ GitHub Action
gate on label
mint short-TTL token"]:::trigger + classDef canvas fill:#1B2733,stroke:#1B2733,color:#FFFFFF; + classDef band fill:#26374A,stroke:#5F7185,color:#E8EDF2,stroke-width:1px; + classDef node fill:#2E4257,stroke:#7C8FA3,color:#FFFFFF,stroke-width:1.2px; + classDef accent fill:#FF9900,stroke:#EC7211,color:#161E2D,stroke-width:1.5px; + classDef human fill:#22384A,stroke:#FF9900,color:#FFFFFF,stroke-width:1.4px; + classDef gate fill:#2E4257,stroke:#FF9900,color:#FFFFFF,stroke-width:1.4px; + + subgraph CANVAS[" "] + direction LR + + START(["🧾 Issue opened
label: dark-factory"]):::accent + + subgraph T["① Trigger"] + GHA["⚙️ GitHub Action
gate on label
mint short-TTL token"]:::node + end + + subgraph O["② Orchestrate · spoke-dev · trusted (holds AWS IAM)"] + ORCH["🎛️ Orchestrator
key = issue-id
claim · drive · report"]:::node + CLAIM["🔒 SandboxClaim
bind warm sandbox · pool refills"]:::node + ORCH --> CLAIM + end + + subgraph SBX["③ Code + self-test · Kata micro-VM · isolated (no cloud creds)"] + CODER["🤖 Pluggable coder
Claude Code | Kiro
reads SPEC.md"]:::node + IMPL["✍️ implement
branch df/issue-N"]:::node + BUILD["🔧 build + unit tests
until green"]:::node + CODER --> IMPL --> BUILD + end + + subgraph V["④ Independent verification · orchestrator-driven (NOT the coder)"] + HOLD["🎯 Holdout gate
hidden scenarios · different-model judge
+ executable tests · ≥90%"]:::gate + SEC["🛡️ AWS Security Agent"]:::node + DEV["🚀 AWS DevOps Agent"]:::node + HOLD -.-> SEC -.-> DEV + end + + subgraph P["⑤ Pull Request · live status"] + PR["🔀 PR opened
sticky comment ⏳→✅
results + findings + logs"]:::node + end + + subgraph H["⑥ Human · Level 3"] + REVIEW{"Approve?
reviews RESULTS"}:::human + COMMENT["💬 PR comment
resume sandbox · iterate
bounded N rounds"]:::human + end + + subgraph TD["⑦ Merge + teardown"] + MERGE["✅ merge PR"]:::accent + DESTROY["🧹 delete sandbox + PVC
+ ephemeral test infra + eval job"]:::node + MERGE --> DESTROY --> DONE(["🏁 done"]):::node + end + + START ==> GHA ==> ORCH + CLAIM ==> CODER + BUILD ==> HOLD + DEV ==> PR + PR ==> REVIEW + REVIEW -->|changes requested| COMMENT + COMMENT -.->|new instruction| CODER + REVIEW ==>|approve| MERGE end - subgraph O["② Orchestrate · spoke-dev (trusted, holds AWS IAM)"] - ORCH["🎛️ Orchestrator
key = issue-id
claim + drive + report"]:::orch - CLAIM["🔒 SandboxClaim
→ bind warm sandbox
pool refills"]:::orch - ORCH --> CLAIM - end - - subgraph SBX["③ Code + self-test · Kata micro-VM (isolated, no cloud creds)"] - CODER["🤖 Pluggable coder
Claude Code ▸ | Kiro ▸
reads SPEC.md"]:::sandbox - IMPL["✍️ implement
branch df/issue-N"]:::sandbox - BUILD["🔧 build + unit tests
until green"]:::sandbox - CODER --> IMPL --> BUILD - end - - subgraph V["④ Independent verification (orchestrator-driven — NOT the coder)"] - HOLD["🎯 Holdout gate
hidden BDD scenarios
different-model judge
+ executable tests · ≥90%"]:::verify - SEC["🛡️ AWS Security Agent"]:::aws - DEV["🚀 AWS DevOps Agent"]:::aws - HOLD -.-> SEC -.-> DEV - end - - subgraph P["⑤ Pull Request · live status"] - PR["🔀 PR opened
sticky comment ⏳→✅
results + findings + logs"]:::orch - end - - subgraph H["⑥ Human — Level 3"] - REVIEW{"Approve?
reviews RESULTS"}:::human - COMMENT["💬 PR comment
resume sandbox → iterate
(bounded N rounds)"]:::human - end - - subgraph TD["⑦ Merge + teardown"] - MERGE["✅ merge PR"]:::teardown - DESTROY["🧹 delete sandbox + PVC
+ ephemeral test infra
+ eval job"]:::teardown - MERGE --> DESTROY --> DONE([🏁 done]):::teardown - end - - START --> GHA --> ORCH - CLAIM ==> CODER - BUILD ==> HOLD - DEV ==> PR - PR ==> REVIEW - REVIEW -->|changes requested| COMMENT - COMMENT -.->|new instruction| CODER - REVIEW -->|approve| MERGE - - linkStyle default stroke:#475569,stroke-width:1.5px; + class CANVAS canvas + class T,O,SBX,V,P,H,TD band + linkStyle default stroke:#8B99A7,stroke-width:1.4px; + linkStyle 7,8,9,10,11,12,15 stroke:#FF9900,stroke-width:2px; ``` --- @@ -79,19 +88,25 @@ flowchart LR ## B.2 — Detailed sequence (who does what, and the trust boundary) ```mermaid -%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-sans-serif, system-ui','fontSize':'13px','actorBkg':'#DBEAFE','actorBorder':'#2563EB','actorTextColor':'#0B1F3A','signalColor':'#334155','signalTextColor':'#0B1F3A','noteBkg':'#FEF9C3','noteBorderColor':'#CA8A04','loopTextColor':'#3B0764'}}}%% +%%{init: {'theme':'base','themeVariables':{ + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'13px', + 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', + 'actorBkg':'#2E4257','actorBorder':'#FF9900','actorTextColor':'#FFFFFF', + 'signalColor':'#8B99A7','signalTextColor':'#E8EDF2','lineColor':'#8B99A7', + 'noteBkg':'#FF9900','noteTextColor':'#161E2D','noteBorderColor':'#EC7211', + 'loopTextColor':'#E8EDF2','sequenceNumberColor':'#161E2D'}}}%% sequenceDiagram autonumber actor Dev as 🧑‍💻 Human participant GH as 🐙 GitHub participant GHA as ⚙️ Action - participant ORCH as 🎛️ Orchestrator
(trusted · AWS IAM) + participant ORCH as 🎛️ Orchestrator (AWS IAM) participant POOL as 🔥 Warm pool - box LightBlue 🛡️ Kata micro-VM · isolated · no cloud creds + box rgb(34,56,74) 🛡️ Kata micro-VM · isolated · no cloud creds participant SBX as 🤖 Coder sandbox end participant EVAL as 🎯 Holdout evaluator - participant AWS as ☁️ AWS Security /
DevOps Agents + participant AWS as ☁️ AWS Security / DevOps Agents Dev->>GH: open issue (label: dark-factory) GH->>GHA: issues.labeled event @@ -100,16 +115,16 @@ sequenceDiagram POOL-->>ORCH: bound warm sandbox (instant) Note over POOL: pool-manager provisions a REFILL - ORCH->>SBX: write /workspace/SPEC.md + checkout df/issue-N + ORCH->>SBX: write SPEC.md + checkout df/issue-N activate SBX SBX->>SBX: implement · build · unit tests (until green) - SBX-->>ORCH: artifacts/result.json (diff + logs) + SBX-->>ORCH: result.json (diff + logs) deactivate SBX - Note over ORCH,EVAL: Verification is INDEPENDENT of the coder
(coder never sees / edits the holdout) - ORCH->>EVAL: run hidden BDD scenarios vs diff + Note over ORCH,EVAL: Verification is INDEPENDENT of the coder
(coder never sees or edits the holdout) + ORCH->>EVAL: run hidden scenarios vs diff EVAL-->>ORCH: satisfaction % (different-model judge + real tests) - ORCH->>AWS: invoke Security + DevOps agents on diff/artifacts + ORCH->>AWS: invoke Security + DevOps agents on diff AWS-->>ORCH: findings (advisory) ORCH->>GH: open PR + sticky status comment (⏳→✅) @@ -130,31 +145,39 @@ sequenceDiagram GH->>ORCH: pull_request closed+merged ORCH->>POOL: release + delete sandbox + PVC ORCH->>ORCH: delete ephemeral test infra + eval job - Note over ORCH: Reaper CronJob reaps any abandoned/timed-out run + Note over ORCH: Reaper CronJob reaps any abandoned run ``` --- ## B.3 — Live PR status (the sticky comment the human watches) -The orchestrator maintains **one** PR comment, edited in place as each stage completes — -no comment spam, one canonical surface (the pattern Copilot/Devin/Factory converge on). +The orchestrator maintains **one** PR comment, edited in place as each stage completes — no comment +spam, one canonical surface (the pattern Copilot/Devin/Factory converge on). ```mermaid -%%{init: {'theme':'base','themeVariables':{'fontFamily':'ui-monospace, monospace','fontSize':'13px'}}}%% +%%{init: {'theme':'base','themeVariables':{ + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'13px', + 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', + 'lineColor':'#8B99A7','clusterBkg':'#26374A','clusterBorder':'#5F7185'}}}%% flowchart TB - classDef done fill:#DCFCE7,stroke:#16A34A,color:#052E16,rx:6,ry:6; - classDef now fill:#FEF9C3,stroke:#CA8A04,color:#422006,rx:6,ry:6; - classDef wait fill:#F1F5F9,stroke:#94A3B8,color:#475569,rx:6,ry:6; - - H["🏭 Dark Factory — issue #42"]:::done - A["✅ Claimed sandbox (spoke-dev) · 12:01"]:::done - B["✅ Branch df/issue-42 · 12:01"]:::done - C["✅ Implement · 12:04"]:::done - D["✅ Build + unit tests · 12:07 · 📄 log"]:::done - E["⏳ Security Agent…"]:::now - F["⬜ DevOps Agent"]:::wait - G["⬜ Holdout gate (0/12)"]:::wait - I["⬜ PR ready for review"]:::wait - H-->A-->B-->C-->D-->E-->F-->G-->I + classDef canvas fill:#1B2733,stroke:#1B2733,color:#FFFFFF; + classDef done fill:#22384A,stroke:#3FB950,color:#FFFFFF,stroke-width:1.3px; + classDef now fill:#FF9900,stroke:#EC7211,color:#161E2D,stroke-width:1.5px; + classDef wait fill:#243244,stroke:#5F7185,color:#AEB8C4,stroke-width:1px; + + subgraph CANVAS["🏭 Dark Factory — issue #42"] + direction TB + A["✅ Claimed sandbox (spoke-dev) · 12:01"]:::done + B["✅ Branch df/issue-42 · 12:01"]:::done + C["✅ Implement · 12:04"]:::done + D["✅ Build + unit tests · 12:07 · 📄 log"]:::done + E["⏳ Security Agent…"]:::now + F["⬜ DevOps Agent"]:::wait + G["⬜ Holdout gate (0/12)"]:::wait + I["⬜ PR ready for review"]:::wait + A --> B --> C --> D --> E --> F --> G --> I + end + class CANVAS canvas + linkStyle default stroke:#5F7185,stroke-width:1.2px; ``` From 31bed1595c900435276480411c122207a8ef002e Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 11:04:34 -0400 Subject: [PATCH 003/365] docs(observability): Rewrite with centralized + decentralized modes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete documentation covering both observability approaches: - Centralized (Langfuse + AMP/Grafana) — default, no config needed - Decentralized (CloudWatch GenAI) — one line: observability.mode=decentralized Includes: env vars table, Dockerfile, build steps, testing commands, platform infrastructure, and troubleshooting. --- docs/OBSERVABILITY.md | 318 +++++++++++++++++++++++++++--------------- 1 file changed, 204 insertions(+), 114 deletions(-) diff --git a/docs/OBSERVABILITY.md b/docs/OBSERVABILITY.md index 609f2d67..6c35bde1 100644 --- a/docs/OBSERVABILITY.md +++ b/docs/OBSERVABILITY.md @@ -1,154 +1,244 @@ -# Observability Architecture +# Agent Observability -## Overview +The platform supports two observability modes for agents. Both work out of the box — no custom image build needed if using the pre-built ECR image. -The Open Agentic Platform uses a dual-pipeline observability strategy: +## Mode 1: Centralized (Default) — Langfuse + AMP/Grafana -- **Langfuse** — LLM trace visualization (agent reasoning, tool calls, token usage, costs) -- **Amazon Managed Grafana (AMG)** — operational dashboards (latency, throughput, system health) +``` +Agent → OTel Collector (:4318) → Langfuse (traces) + AMP (metrics) → Grafana +``` + +The agent exports OTLP spans to the local OTel Collector. The collector forwards traces to Langfuse and scrapes Bifrost metrics to AMP. + +### How it works + +1. OAM `agent` ComponentDefinition injects `OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector.otel.svc.cluster.local:4318` +2. Agent's `main.py` detects the endpoint and calls `StrandsTelemetry().setup_otlp_exporter()` +3. Strands SDK creates spans for agent invocations, tool calls, and LLM requests +4. Bifrost proxy reads the W3C `traceparent` header and creates child spans for model calls +5. OTel Collector merges all spans into one trace tree and exports to Langfuse via OTLP/HTTP with Basic Auth +6. Collector also scrapes Bifrost Prometheus metrics and pushes to AMP via remote write + +### Deploy (no config needed — centralized is the default) + +```yaml +apiVersion: core.oam.dev/v1beta1 +kind: Application +metadata: + name: my-agent + namespace: default +spec: + components: + - name: my-agent + type: agent + properties: + name: my-agent + namespace: default + description: "My agent" + image: ".dkr.ecr..amazonaws.com/strands-agent:latest" + systemMessage: "You are helpful." + modelConfig: + modelId: claude-sonnet +``` + +### View traces -Jaeger is not used. Langfuse acts as the distributed tracer for agent workloads. +Langfuse UI: `https:///` (Keycloak SSO) -## Architecture +### View metrics + +AMG Grafana: Agent Platform > Bifrost LLM Metrics dashboard + +--- + +## Mode 2: Decentralized — CloudWatch GenAI Console ``` -Spoke Clusters (dev, prod) Hub Cluster -┌─────────────────────────────────┐ ┌──────────────────────────────────────┐ -│ │ │ │ -│ Agent (Strands) │ │ Langfuse v3 │ -│ ├─ StrandsTelemetry SDK │ │ ├─ Web (:3000) │ -│ │ OTLP/HTTP direct ───────┼─────┼──► │ /api/public/otel │ -│ │ (traces with GenAI │HTTPS│ ├─ Worker (async processing) │ -│ │ semantic attributes) │ │ ├─ Redis (queue) │ -│ │ │ │ ├─ ClickHouse (OLAP trace store) │ -│ └─ W3C traceparent header │ │ ├─ MinIO (S3 event upload) │ -│ ↓ │ │ └─ PostgreSQL (metadata) │ -│ Bifrost Proxy │ │ │ -│ ├─ Receives traceparent │ │ Seed CronJob (every 5min) │ -│ ├─ Creates child LLM spans │ │ └─ Auto-assigns SSO users │ -│ └─ Exposes :8080/metrics │ │ │ -│ ↓ │ │ AMG (Grafana) │ -│ OTel Collector │ │ ├─ AMP datasource (Prometheus) │ -│ ├─ Traces → X-Ray │ │ └─ Agent Platform dashboards │ -│ └─ Metrics → AMP │ │ │ -│ │ └──────────────────────────────────────┘ -│ Prometheus Scrapers (AMP) │ -│ └─ kube-state-metrics │ -│ └─ node-exporter │ -└─────────────────────────────────┘ +Agent → ADOT auto-instrumentation → CloudWatch (traces + logs + metrics) +``` + +The agent exports directly to CloudWatch via the AWS OpenTelemetry Distro (ADOT >=0.18.0). No collector or Langfuse needed. + +### How it works + +1. OAM `agent` ComponentDefinition injects ADOT env vars and overrides the container command to `opentelemetry-instrument python -m app.main` +2. ADOT auto-instruments the FastAPI + Strands application at startup +3. GenAI spans (agent invocations, tool calls, LLM requests) are exported to CloudWatch +4. With ADOT 0.18.0+ (unsplit architecture), spans go directly to the `aws/spans` log group — no separate log group needed +5. Pod Identity on the `default` ServiceAccount provides CW/X-Ray write permissions (provisioned by the `oam-agent-components` chart) + +### Deploy + +```yaml +apiVersion: core.oam.dev/v1beta1 +kind: Application +metadata: + name: my-agent + namespace: default +spec: + components: + - name: my-agent + type: agent + properties: + name: my-agent + namespace: default + description: "My agent" + image: ".dkr.ecr..amazonaws.com/strands-agent:latest" + systemMessage: "You are helpful." + modelConfig: + modelId: claude-sonnet + observability: + mode: decentralized ``` -## Trace Flow (Agent → Langfuse) +### View traces -1. Agent creates a root span via `StrandsTelemetry.setup_otlp_exporter()` -2. Agent injects W3C `traceparent` header into Bifrost LLM call -3. Bifrost creates nested child spans (model, tokens, latency) -4. Both agent and Bifrost push spans via OTLP/HTTP to Langfuse's `/api/public/otel` endpoint -5. Langfuse Web accepts the payload, queues to Redis -6. Langfuse Worker reads from Redis, stores raw event in MinIO (S3), writes structured data to ClickHouse -7. Traces visible in Langfuse UI with full parent-child hierarchy +CloudWatch Console > Application Signals > GenAI Observability -### Authentication +### Prerequisites (automated by `task install`) -Traces are authenticated via HTTP Basic Auth: -- Header: `Authorization: Basic ` -- Header: `x-langfuse-ingestion-version: 4` (enables real-time Fast Preview) -- Keys are created by the Langfuse seed CronJob and stored in the Langfuse database +- CloudWatch Transaction Search enabled (one-time per account) +- Pod Identity with `logs:PutLogEvents`, `xray:PutTraceSegments`, `cloudwatch:PutMetricData` -### Agent Configuration (OAM ComponentDefinition) +--- -The `agent` OAM component injects these env vars: +## Environment Variables Injected by Mode +| Variable | Centralized | Decentralized | +|----------|-------------|---------------| +| `OTEL_SERVICE_NAME` | ✅ `` | ✅ `` | +| `OTEL_TRACES_EXPORTER` | ✅ `otlp` | ✅ `otlp` | +| `OTEL_EXPORTER_OTLP_ENDPOINT` | ✅ collector :4318 | — | +| `OTEL_PYTHON_DISTRO` | — | ✅ `aws_distro` | +| `OTEL_PYTHON_CONFIGURATOR` | — | ✅ `aws_configurator` | +| `OTEL_EXPORTER_OTLP_PROTOCOL` | — | ✅ `http/protobuf` | +| `OTEL_RESOURCE_ATTRIBUTES` | — | ✅ `service.name=` | +| `AGENT_OBSERVABILITY_ENABLED` | — | ✅ `true` | +| Container command | `python -m app.main` | `opentelemetry-instrument python -m app.main` | + +--- + +## Agent Image + +Both modes use the same image. The image includes all dependencies for both paths. + +### Dependencies (pyproject.toml) + +```toml +dependencies = [ + "fastapi~=0.115.0", + "uvicorn[standard]>=0.34.2", + "pydantic~=2.0", + "strands-agents[a2a,openai,otel]~=1.0", + "bedrock-agentcore", + "aws-opentelemetry-distro>=0.18.0", +] ``` -OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector.otel.svc.cluster.local:4318 -OTEL_SERVICE_NAME= -LANGFUSE_PUBLIC_KEY= -LANGFUSE_SECRET_KEY= -LANGFUSE_BASE_URL=https:// + +- `strands-agents[otel]` — brings OpenTelemetry SDK + OTLP HTTP exporter (centralized) +- `aws-opentelemetry-distro>=0.18.0` — ADOT with unsplit architecture (decentralized) + +### Dockerfile + +```dockerfile +FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS builder +WORKDIR /app +COPY pyproject.toml ./ +RUN uv pip install --system --no-cache --prerelease=allow . + +FROM python:3.13-slim-bookworm +RUN apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/* +WORKDIR /app +COPY --from=builder /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages +COPY --from=builder /usr/local/bin /usr/local/bin +COPY app/ ./app/ +RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app +USER appuser +EXPOSE 8083 +CMD ["python", "-m", "app.main"] ``` -The agent's `main.py` initializes `StrandsTelemetry().setup_otlp_exporter()` at startup which configures the OTLP exporter pointing to Langfuse. +### Build and Push -## Metrics Flow (Bifrost → Grafana) +```bash +cd applications/strands-agent-base +IMAGE_NAME=strands-agent IMAGE_TAG=latest AWS_REGION=us-east-1 ./build.sh push +``` -1. Bifrost exposes Prometheus metrics at `:8080/metrics` -2. OTel Collector scrapes Bifrost metrics (prometheus receiver) -3. Collector forwards to AMP via `prometheusremotewrite` exporter -4. AMG (Grafana) queries AMP for dashboards +Output: `.dkr.ecr.us-east-1.amazonaws.com/strands-agent:latest` -### Metrics Available +--- -| Metric | Source | Description | -|--------|--------|-------------| -| Request latency per model | Bifrost | P50/P95/P99 latency by model | -| Token usage | Bifrost | Input/output/total tokens per request | -| Provider cost | Bifrost | Cost tracking by model provider | -| Cache hit ratio | Bifrost | Virtual key cache effectiveness | -| Pod CPU/Memory | kube-state-metrics | Resource usage by namespace | -| Node health | node-exporter | Cluster infrastructure metrics | +## Testing Agents -## Langfuse v3 Infrastructure +### Deploy a centralized agent and invoke -Deployed on the hub cluster only (namespace: `langfuse`). +```bash +# Deploy +kubectl apply -f platform/oam/examples/example-agent-centralized-observability.yaml -| Component | Image | Purpose | -|-----------|-------|---------| -| langfuse (Web) | `langfuse/langfuse:3` | API + UI, OTLP receiver | -| langfuse-worker | `langfuse/langfuse-worker:3` | Async event processing | -| langfuse-postgres | `postgres:16-alpine` | Metadata, users, projects | -| langfuse-clickhouse | `clickhouse/clickhouse-server:24.12` | OLAP trace/observation storage | -| langfuse-redis | `redis:7-alpine` | Async queue + cache | -| langfuse-minio | `minio/minio:latest` | S3-compatible blob storage (event upload) | +# Wait for pod +kubectl get pods -l app.kubernetes.io/name=my-agent -w -### Why MinIO? +# Invoke +kubectl run test --image=curlimages/curl --rm -it --restart=Never -- \ + curl -s -X POST http://my-agent-stable.default.svc.cluster.local:8083/ \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"message/send","id":"1","params":{"message":{"role":"user","messageId":"t1","parts":[{"type":"text","text":"What is S3?"}]}}}' -Langfuse v3 requires S3-compatible blob storage for its event ingestion pipeline. Raw OTLP events are written to S3 before being processed into ClickHouse. Without it, the OTLP endpoint returns 500. MinIO provides this locally without requiring an AWS S3 bucket. +# Verify trace in Langfuse +curl -s "https:///api/public/traces?limit=1" \ + -H "Authorization: Basic $(echo -n pk-lf-otel-platform:sk-lf-otel-platform-2026 | base64)" +``` -### Seed CronJob +### Deploy a decentralized agent and invoke -Runs every 5 minutes (idempotent): -1. Creates "Agent Platform" organization -2. Creates "agent-platform" project -3. Creates API keys for OTLP authentication -4. Auto-assigns any new Keycloak SSO users as OWNER of org + project +```bash +# Deploy +kubectl apply -f platform/oam/examples/example-agent-decentralized-observability.yaml -## OTel Collector +# Wait for pod +kubectl get pods -l app.kubernetes.io/name=my-cw-agent -w -Deployed on every spoke cluster (namespace: `otel`). +# Invoke +kubectl run test --image=curlimages/curl --rm -it --restart=Never -- \ + curl -s -X POST http://my-cw-agent-stable.default.svc.cluster.local:8083/ \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"message/send","id":"1","params":{"message":{"role":"user","messageId":"t1","parts":[{"type":"text","text":"What is Lambda?"}]}}}' + +# Verify trace in CloudWatch +# Console > CloudWatch > Application Signals > GenAI Observability +``` -Two pipelines: -- **Traces:** OTLP receiver (HTTP:4318) → otlphttp/langfuse exporter -- **Metrics:** Prometheus scraper (Bifrost) → AMP remote write +--- -The Langfuse trace export happens directly from the agent SDK, not through the collector. The collector handles infrastructure-level traces (X-Ray service maps) and Bifrost metrics only. +## Platform Infrastructure -## Grafana Dashboards (AMG) +### Centralized (provisioned by task install) -Three agent-platform dashboards in the "Agent Platform" folder: +| Component | Location | Purpose | +|-----------|----------|---------| +| OTel Collector | `otel` namespace (all clusters) | OTLP receiver + Langfuse export + AMP remote write | +| Langfuse v3 | `langfuse` namespace (hub only) | Trace UI + OTLP endpoint | +| AMP Workspace | AWS (Crossplane-provisioned) | Prometheus metrics storage | +| AMG Workspace | AWS (Crossplane-provisioned) | Grafana dashboards | +| Bifrost | `bifrost` namespace (all clusters) | LLM proxy with OTEL plugin + metrics | -### Agent Platform — Overview -- OAM Agent pods count -- MCP Server pods count -- LiteLLM/Bifrost readiness -- AgentGateway readiness -- CPU/Memory by namespace (litellm, bifrost, otel, agentgateway-system, mcp-*) -- Pod restarts (last 1h) -- Argo Rollout replicas +### Decentralized (provisioned by task install) -### Agent Platform — LiteLLM Gateway -- LiteLLM CPU/Memory -- Bifrost CPU/Memory -- Network I/O +| Component | Location | Purpose | +|-----------|----------|---------| +| Pod Identity | `vela-system` namespace (Crossplane) | IAM role with CW/X-Ray permissions | +| Transaction Search | AWS account-level | One-time CW config (enabled in Taskfile) | -### Agent Platform — X-Ray Traces -- Service map (node graph) -- Recent traces (table) +--- -## Access +## Troubleshooting -| Service | URL | Auth | -|---------|-----|------| -| Langfuse UI | `https:///` | Keycloak SSO (user1) | -| Langfuse OTLP | `https:///api/public/otel/v1/traces` | Basic Auth (API keys) | -| AMG (Grafana) | `https://g-.grafana-workspace..amazonaws.com` | Keycloak SSO | -| Langfuse API | `https:///api/public/traces` | Basic Auth (API keys) | +| Problem | Check | +|---------|-------| +| No traces in Langfuse | Agent logs for `StrandsTelemetry` init. Collector logs for export errors. ExternalSecret `langfuse-otel-auth` status. | +| No traces in CloudWatch | Pod Identity association exists (`kubectl get podidentityassociation -n vela-system`). Agent logs for ADOT init. Transaction Search enabled. | +| Cost shows $0 in Langfuse | Seed CronJob logs (`kubectl logs -n langfuse -l app=langfuse-seed`). Check 401 auth errors. | +| Agent crashes on startup | Check if image has ADOT packages. Verify port 4318 (not 4317) for centralized. | +| Metrics not in Grafana | Check `amp_endpoint_url` annotation on cluster secret. Collector logs for AMP errors. | From 740fa13c36152eb812822df92a0ad49e88f172b6 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:13:06 -0400 Subject: [PATCH 004/365] docs(dark-factory): correct LLM gateway to Bifrost (not LiteLLM) The agent platform implements Bifrost as the LLM proxy (bifrost.bifrost.svc:8080, Bedrock via Pod Identity), not LiteLLM. Fixed the Flow A diagram node and all README references (coder contract env, security/egress model, profile notes, intro). Clarified that eks-platform-openclaw uses LiteLLM but this platform uses Bifrost. --- docs/dark-factory/README.md | 22 +++++++++---------- .../diagrams/flow-a-sandbox-capability.md | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index a577f22c..55154119 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -10,7 +10,7 @@ approves the *results*) merge and tear everything down. This pattern wires that idea onto the **Open Agent Platform (OAP)** using components the platform already has: hardware-isolated **Kata micro-VM sandboxes** (from `eks-platform-openclaw`), the -**LiteLLM → Bedrock** model gateway, the **hub + spoke-dev/spoke-prod** cluster fleet, and +**Bifrost → Bedrock** LLM gateway, the **hub + spoke-dev/spoke-prod** cluster fleet, and **AWS-managed frontier agents** (Security, DevOps) for independent review. --- @@ -169,11 +169,11 @@ Runs on **spoke-dev only**. End to end: The coder is behind a **thin, swappable interface** — a deliberate choice (the industry lesson is *don't marry a single vendor*). Two profiles ship; both run **inside** the Kata sandbox and reach -models only through LiteLLM. +models only through the **Bifrost** LLM gateway. | Profile | Why | Notes | |---|---|---| -| **A — Claude Code headless** *(primary)* | Purpose-built for autonomous implement→build→test→git loops; proven headless/CI autonomy | `CLAUDE_CODE_USE_BEDROCK` / base-URL → LiteLLM; strongest multi-file + shell | +| **A — Claude Code headless** *(primary)* | Purpose-built for autonomous implement→build→test→git loops; proven headless/CI autonomy | `CLAUDE_CODE_USE_BEDROCK` / base-URL → Bifrost; strongest multi-file + shell | | **B — Kiro headless** | **Spec-driven** (`spec → requirements → design → tasks`) — the most natural fit since *an issue is a spec*; supports a headless GitHub Actions mode | AWS-native; documented as the second profile | ### The coder contract (drop-in interface) @@ -185,11 +185,11 @@ INPUTS (mounted into the sandbox) /workspace/SPEC.md # the issue, as a spec /workspace/repo/ # the checked-out target repo (branch df/issue-) /workspace/RETRY.md # (optional) one-line failure reasons from a prior holdout run - tmpfs: litellm-api-key # mode 0400, read then unset — never in env + tmpfs: bifrost-api-key # mode 0400, read then unset — never in env tmpfs: gh-token # short-TTL, mode 0400 ENV CODER_PROFILE=claude-code|kiro - LITELLM_URL=http://litellm.litellm.svc:4000 + BIFROST_URL=http://bifrost.bifrost.svc:8080 OUTPUTS (produced by the coder) git branch df/issue- with commits /workspace/artifacts/result.json # what changed, build/test logs, evidence links @@ -309,10 +309,10 @@ Untrusted, LLM-generated code + issue text from anyone = treat the whole sandbox - **Hardware isolation:** every coder runs in a **Kata micro-VM** (own kernel), not a shared-kernel container. -- **No cloud credentials in the sandbox:** the coder holds only a **LiteLLM API key** and a +- **No cloud credentials in the sandbox:** the coder holds only a **Bifrost API key** and a **short-TTL GitHub token** via **projected tmpfs (mode 0400)** — read then unset, never in env. All AWS IAM lives with the **orchestrator, outside the VM**. -- **Egress lockdown:** a **NetworkPolicy** restricts sandbox egress to **LiteLLM:4000 + DNS + +- **Egress lockdown:** a **NetworkPolicy** restricts sandbox egress to **Bifrost:8080 + DNS + GitHub only**. `automountServiceAccountToken: false`, runAsNonRoot, seccomp `RuntimeDefault`, drop `ALL` caps. - **Prod is never a test bed:** the factory runs on **spoke-dev**; spoke-prod holds the sandbox @@ -347,7 +347,7 @@ Jules, Cursor background agents, Factory.ai, and StrongDM's "Software Factory" a 1. **Lethal trifecta / prompt injection (highest risk).** Untrusted issue text + cloud creds + egress → data exfiltration. Invariant Labs demonstrated a malicious GitHub *issue* injecting an agent into leaking private-repo data via an auto-PR. **Our defense:** credentials never in the - issue-ingesting sandbox context; egress denied except LiteLLM/GitHub; issue/repo content treated + issue-ingesting sandbox context; egress denied except Bifrost/GitHub; issue/repo content treated as hostile; frontier agents scoped read-only. *(Willison "lethal trifecta"; Invariant Labs.)* 2. **Reward hacking / test-gaming.** Frontier models stub evaluators (`evaluate = _always_ok`), make `verify()` return true, read reference answers, or delete the test oracle (METR, OpenAI, @@ -387,7 +387,7 @@ Each phase is independently valuable — if you stop after any one, you're bette *To resolve during implementation — flagged honestly rather than assumed:* -- **Headless auth** for Claude Code & Kiro through a LiteLLM base-URL override inside a Kata VM +- **Headless auth** for Claude Code & Kiro through a Bifrost base-URL override inside a Kata VM (the biggest unknown — prototype first in P1). - **Import the `agent-sandbox` operator** from `eks-platform-openclaw` into the OAP addon catalog (Flow A's first task). @@ -427,6 +427,6 @@ Each phase is independently valuable — if you stop after any one, you're bette - Anthropic — *Claude Code best practices* — https://www.anthropic.com/engineering/claude-code-best-practices **Platform building blocks (this monorepo & siblings)** -- `eks-platform-openclaw` — Kata micro-VM sandbox, `Sandbox` CRD, session-router lifecycle, LiteLLM gateway +- `eks-platform-openclaw` — Kata micro-VM sandbox, `Sandbox` CRD, session-router lifecycle (uses LiteLLM there; **this platform uses Bifrost** as the LLM gateway) - `appmod-blueprints` — `PlatformCluster` Crossplane composition (ephemeral EKS), KRO CI/CD pipeline -- `agent-platform-amazon-eks` — hub/spoke fleet, addon ApplicationSets, kagent, agent-gateway +- `agent-platform-amazon-eks` — hub/spoke fleet, addon ApplicationSets, kagent, agent-gateway, **Bifrost** LLM gateway diff --git a/docs/dark-factory/diagrams/flow-a-sandbox-capability.md b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md index a3d4db7c..6c6777a1 100644 --- a/docs/dark-factory/diagrams/flow-a-sandbox-capability.md +++ b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md @@ -60,7 +60,7 @@ flowchart TB RC --- KD --- NP end - MODEL["🧠 LiteLLM gateway
litellm.litellm.svc:4000 → Bedrock"]:::node + MODEL["🧠 Bifrost LLM gateway
bifrost.bifrost.svc:8080 → Bedrock"]:::node end end From 6a02279e84e09d30b15df5600a759e43562b81e7 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:21:02 -0400 Subject: [PATCH 005/365] feat(agent-sandbox): add chart scaffold (Chart.yaml) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flow A — Agent Sandbox capability. New GitOps addon chart that packages the Kata micro-VM sandbox substrate for the Open Agent Platform. --- gitops/addons/charts/agent-sandbox/Chart.yaml | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/Chart.yaml diff --git a/gitops/addons/charts/agent-sandbox/Chart.yaml b/gitops/addons/charts/agent-sandbox/Chart.yaml new file mode 100644 index 00000000..74441edc --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +name: agent-sandbox +description: >- + Agent Sandbox capability for the Open Agent Platform — hardware-isolated + Kata micro-VM sandboxes (agents.x-k8s.io Sandbox CRD) with a pre-warmed pool + kept ready by a pool-manager controller. The reusable isolation substrate any + agent workload (e.g. the Dark Factory coding pipeline) can claim on demand. +type: application +version: 0.1.0 +appVersion: "0.1.0" +keywords: + - kata + - sandbox + - isolation + - micro-vm + - dark-factory +sources: + - https://github.com/aws-samples/sample-open-agentic-platform + - https://github.com/elamaran11/eks-platform-openclaw +maintainers: + - name: Open Agent Platform From a0040bed83e10dc335efbd01f65373a1c6c57c4d Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:21:40 -0400 Subject: [PATCH 006/365] feat(agent-sandbox): add chart values.yaml Tunable surface: operator image, kata runtime classes + default (kata-clh), warm-pool sizing (targetIdle=3, scale-to-zero TTL, reap TTL), pool-manager config, and the coder SandboxTemplate defaults (Bifrost LLM gateway URL). --- .../addons/charts/agent-sandbox/values.yaml | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/values.yaml diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml new file mode 100644 index 00000000..5be774f9 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -0,0 +1,76 @@ +# Agent Sandbox capability — default values +# +# This chart installs the Sandbox control plane (operator + CRDs), the Kata +# RuntimeClasses that workloads select via runtimeClassName, a SandboxTemplate +# the Dark Factory (and other consumers) claim against, and a pool-manager that +# keeps a warm buffer of idle sandboxes ready. + +# Namespace the sandbox capability runs in (operator, pool-manager, warm pool). +namespace: agent-sandbox-system + +# ── Sandbox operator (agents.x-k8s.io) ─────────────────────────────────────── +operator: + # Upstream agent-sandbox controller image. + image: public.ecr.aws/t6v6o5d5/agent-sandbox:v0.1.0 + replicas: 1 + # Install the Sandbox / SandboxTemplate / SandboxClaim CRDs with the chart. + # Disable if the cluster already has a newer operator managing the CRDs. + installCRDs: true + +# ── Kata micro-VM runtime ──────────────────────────────────────────────────── +kata: + # Default VMM for coder sandboxes. Cloud Hypervisor (clh) boots fast and is + # the platform default; qemu and fc (Firecracker) are also installed. + defaultRuntimeClass: kata-clh + # RuntimeClasses to render. Each carries the nodeSelector + toleration that + # steers a pod onto the matching Karpenter kata pool. + runtimeClasses: + - name: kata-clh + handler: kata-clh + - name: kata-qemu + handler: kata-qemu + # Node scheduling applied to every kata RuntimeClass. + nodeSelector: + katacontainers.io/kata-runtime: "true" + tolerations: + - key: kata + operator: Equal + value: "true" + effect: NoSchedule + +# ── Warm pool ──────────────────────────────────────────────────────────────── +warmPool: + enabled: true + # Number of idle sandboxes to keep ready. Claim one → pool-manager refills; + # release one → pool-manager shrinks back to this target. + targetIdle: 3 + # Idle sandboxes scale to replicas:0 after this TTL (PVC retained); resume on + # demand. Set 0 to keep idle sandboxes running (higher cost, instant claim). + idleScaleToZeroSeconds: 900 + # Hard TTL — a claimed sandbox with no activity past this is reaped (safety + # net for crashed/abandoned consumers). + reapAfterSeconds: 3600 + # The SandboxTemplate that idle/claimed sandboxes are cloned from. + templateName: coder-sandbox + +# ── Pool-manager controller ────────────────────────────────────────────────── +poolManager: + # Small controller image (kubectl + jq loop) that reconciles the warm buffer. + image: public.ecr.aws/aws-cli/aws-cli:2.17.0 + # How often the reconcile/reaper loop runs. + intervalSeconds: 60 + resources: + requests: { cpu: 50m, memory: 64Mi } + limits: { cpu: 200m, memory: 128Mi } + +# ── Coder SandboxTemplate (podTemplate the warm pool clones) ───────────────── +coderTemplate: + # Sandbox coder image is set by the consumer (Dark Factory picks the coder + # profile — claude-code | kiro). Placeholder here; overridden per claim. + image: public.ecr.aws/docker/library/busybox:1.36 + workspaceSizeGi: 5 + resources: + requests: { cpu: "1", memory: 2Gi } + limits: { cpu: "2", memory: 4Gi } + # LLM gateway the coder reaches (this platform uses Bifrost, not LiteLLM). + bifrostUrl: http://bifrost.bifrost.svc.cluster.local:8080 From 072bae5b5a3377f482e2ac428daf122d7f070805 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:22:03 -0400 Subject: [PATCH 007/365] feat(agent-sandbox): add _helpers.tpl (labels, selectors, namespace) --- .../agent-sandbox/templates/_helpers.tpl | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/_helpers.tpl diff --git a/gitops/addons/charts/agent-sandbox/templates/_helpers.tpl b/gitops/addons/charts/agent-sandbox/templates/_helpers.tpl new file mode 100644 index 00000000..c59c0d55 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/_helpers.tpl @@ -0,0 +1,23 @@ +{{/* +Common labels applied to every resource this chart renders. +*/}} +{{- define "agent-sandbox.labels" -}} +app.kubernetes.io/name: agent-sandbox +app.kubernetes.io/part-of: open-agent-platform +app.kubernetes.io/managed-by: {{ .Release.Service }} +helm.sh/chart: {{ printf "%s-%s" .Chart.Name .Chart.Version }} +{{- end -}} + +{{/* +Selector labels (stable subset used by Services / controllers). +*/}} +{{- define "agent-sandbox.selectorLabels" -}} +app.kubernetes.io/name: agent-sandbox +{{- end -}} + +{{/* +The namespace the capability runs in. +*/}} +{{- define "agent-sandbox.namespace" -}} +{{- default "agent-sandbox-system" .Values.namespace -}} +{{- end -}} From c54170e1c0e93ced9bcb76b029a50e08ab4b279c Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:22:25 -0400 Subject: [PATCH 008/365] feat(agent-sandbox): add namespace with restricted Pod Security Standard Namespace enforces PSS 'restricted' since kata sandboxes run untrusted LLM-generated code. Verified: helm template renders cleanly. --- .../charts/agent-sandbox/templates/00-namespace.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml b/gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml new file mode 100644 index 00000000..31e3c4e5 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} + # Kata sandboxes run untrusted, LLM-generated code — enforce a restricted + # Pod Security Standard on the namespace as defense in depth. + pod-security.kubernetes.io/enforce: restricted + pod-security.kubernetes.io/audit: restricted + pod-security.kubernetes.io/warn: restricted From 49a6f625302db5bc644e7f10d15f0a299d2b6e19 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:22:46 -0400 Subject: [PATCH 009/365] feat(agent-sandbox): add Kata RuntimeClasses (kata-clh, kata-qemu) Renders one RuntimeClass per values.kata.runtimeClasses entry with the nodeSelector + toleration that steers pods onto the kata Karpenter pool. Verified: helm template renders kata-clh + kata-qemu with correct handlers. --- .../templates/10-runtimeclasses.yaml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/10-runtimeclasses.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/10-runtimeclasses.yaml b/gitops/addons/charts/agent-sandbox/templates/10-runtimeclasses.yaml new file mode 100644 index 00000000..cf7e3e46 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/10-runtimeclasses.yaml @@ -0,0 +1,22 @@ +{{- /* +Kata RuntimeClasses. A workload selects a VMM with `runtimeClassName: kata-clh` +(or kata-qemu). The RuntimeClass admission controller force-merges the +scheduling.nodeSelector + tolerations below onto the pod, steering it onto the +matching Karpenter kata pool. The runtime binaries themselves are installed on +the node by kata-deploy (a prerequisite provided by the base platform). +*/ -}} +{{- range .Values.kata.runtimeClasses }} +--- +apiVersion: node.k8s.io/v1 +kind: RuntimeClass +metadata: + name: {{ .name }} + labels: + {{- include "agent-sandbox.labels" $ | nindent 4 }} +handler: {{ .handler }} +scheduling: + nodeSelector: + {{- toYaml $.Values.kata.nodeSelector | nindent 4 }} + tolerations: + {{- toYaml $.Values.kata.tolerations | nindent 4 }} +{{- end }} From 56348b756e15664dc7c205f40f26f7d112076063 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:23:17 -0400 Subject: [PATCH 010/365] feat(agent-sandbox): add coder SandboxTemplate with isolation invariants SandboxTemplate the warm pool clones: kata-clh runtime, no SA token, runAsNonRoot + restricted seccomp + drop ALL caps, readOnlyRootFilesystem, ephemeral workspace PVC, Bifrost LLM gateway URL. Image/secrets patched per-claim by the consumer. Verified: helm template renders correctly. --- .../templates/20-sandboxtemplate.yaml | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml b/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml new file mode 100644 index 00000000..123dff2b --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml @@ -0,0 +1,70 @@ +{{- /* +SandboxTemplate — the podTemplate the warm pool (and Dark Factory claims) are +cloned from. Encodes the isolation invariants for running untrusted, +LLM-generated code: + - runtimeClassName: a Kata micro-VM (own kernel), not a shared-kernel container + - automountServiceAccountToken: false (no in-cluster API creds by default) + - runAsNonRoot + restricted seccomp + drop ALL caps + - workspace on an ephemeral PVC (per claim), model access via Bifrost only +The concrete coder image (claude-code | kiro) and per-claim secrets are patched +in by the consumer when it binds a SandboxClaim. +*/ -}} +apiVersion: extensions.agents.x-k8s.io/v1alpha1 +kind: SandboxTemplate +metadata: + name: {{ .Values.warmPool.templateName }} + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + podTemplate: + metadata: + labels: + {{- include "agent-sandbox.selectorLabels" . | nindent 8 }} + agent-sandbox.io/role: coder + spec: + runtimeClassName: {{ .Values.kata.defaultRuntimeClass }} + automountServiceAccountToken: false + nodeSelector: + {{- toYaml .Values.kata.nodeSelector | nindent 8 }} + tolerations: + {{- toYaml .Values.kata.tolerations | nindent 8 }} + securityContext: + runAsNonRoot: true + runAsUser: 1000 + runAsGroup: 1000 + fsGroup: 1000 + seccompProfile: + type: RuntimeDefault + containers: + - name: coder + image: {{ .Values.coderTemplate.image }} + # Overridden per claim by the consumer (Dark Factory picks the profile). + command: ["/bin/sh", "-c", "echo 'coder image set per-claim'; sleep infinity"] + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: ["ALL"] + env: + # This platform uses Bifrost (not LiteLLM) as the LLM gateway. + - name: BIFROST_URL + value: {{ .Values.coderTemplate.bifrostUrl | quote }} + resources: + {{- toYaml .Values.coderTemplate.resources | nindent 12 }} + volumeMounts: + - name: workspace + mountPath: /workspace + - name: tmp + mountPath: /tmp + volumes: + - name: tmp + emptyDir: {} + volumeClaimTemplates: + - metadata: + name: workspace + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: {{ .Values.coderTemplate.workspaceSizeGi }}Gi From b4ecdb284e234f9a48cdda0478d3957d7f3da627 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:23:49 -0400 Subject: [PATCH 011/365] feat(agent-sandbox): add default-deny egress NetworkPolicy for coders Locks coder-sandbox egress to DNS + Bifrost:8080 + HTTPS (git/gh/registries), blocks IMDS (169.254.169.254). Breaks the lethal trifecta so untrusted issue text can't reach arbitrary internal services or exfiltrate. Verified: renders + chart lints clean. --- .../templates/30-networkpolicy.yaml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml b/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml new file mode 100644 index 00000000..13a8a51e --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml @@ -0,0 +1,50 @@ +{{- /* +Default-deny egress for coder sandboxes, then allow ONLY what a coder needs: + - DNS (kube-dns) + - Bifrost LLM gateway (model calls) + - HTTPS to the internet for git/gh + package registries the build needs +This breaks the "lethal trifecta": untrusted issue text runs in a pod that +cannot reach arbitrary internal services or exfiltrate to arbitrary hosts. +Selects coder pods by the label the SandboxTemplate stamps. +*/ -}} +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: coder-sandbox-egress + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + podSelector: + matchLabels: + agent-sandbox.io/role: coder + policyTypes: + - Egress + egress: + # DNS resolution + - to: + - namespaceSelector: {} + ports: + - protocol: UDP + port: 53 + - protocol: TCP + port: 53 + # Bifrost LLM gateway (in-cluster) + - to: + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: bifrost + ports: + - protocol: TCP + port: 8080 + # HTTPS egress for git / gh / package registries (build dependencies). + # Note: broad :443 is required for public git+registry access; tighten to + # specific CIDRs/hostnames with an egress proxy for stricter deployments. + - to: + - ipBlock: + cidr: 0.0.0.0/0 + except: + - 169.254.169.254/32 # block IMDS (instance metadata) + ports: + - protocol: TCP + port: 443 From b31c6eb881735ea4d2de751cd656793d4f8c422c Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:24:17 -0400 Subject: [PATCH 012/365] feat(agent-sandbox): add pool-manager RBAC (SA + namespaced Role) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Narrowly-scoped Role: sandboxes (+scale subresource), sandboxtemplates/claims read, PVC/Service delete — capability namespace only, no cluster-wide access. Gated on warmPool.enabled. Verified: renders; disabling warmPool emits 0 resources. --- .../templates/40-poolmanager-rbac.yaml | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml b/gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml new file mode 100644 index 00000000..4e833063 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml @@ -0,0 +1,51 @@ +{{- if .Values.warmPool.enabled }} +{{- /* +RBAC for the pool-manager: narrowly scoped to Sandboxes/PVCs/Services in the +capability namespace only. It maintains the warm buffer and reaps idle/expired +sandboxes — it never touches cluster-wide resources or other namespaces. +*/ -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: agent-sandbox-pool-manager + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: agent-sandbox-pool-manager + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +rules: + - apiGroups: ["agents.x-k8s.io"] + resources: ["sandboxes"] + verbs: ["get", "list", "watch", "create", "patch", "delete"] + - apiGroups: ["agents.x-k8s.io"] + resources: ["sandboxes/scale"] + verbs: ["get", "patch", "update"] + - apiGroups: ["extensions.agents.x-k8s.io"] + resources: ["sandboxtemplates", "sandboxclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims", "services"] + verbs: ["get", "list", "delete"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: agent-sandbox-pool-manager + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: agent-sandbox-pool-manager + namespace: {{ include "agent-sandbox.namespace" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: agent-sandbox-pool-manager +{{- end }} From 0bcb9df36a3577eb2ba13917769d1ae8f8e6d55d Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:24:54 -0400 Subject: [PATCH 013/365] feat(agent-sandbox): add pool-manager CronJob (warm-buffer reconcile) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every-minute CronJob that reconciles the warm pool: REFILL idle sandboxes to targetIdle via SandboxClaims, plus scale-to-zero + reap hooks. Runs non-root, readOnlyRootFilesystem, drop ALL. Verified: helm renders + YAML parses. NOTE: scale-to-zero/reap steps are stubbed — jq logic refined next commit. --- .../templates/41-poolmanager-cronjob.yaml | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml b/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml new file mode 100644 index 00000000..7832d949 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml @@ -0,0 +1,104 @@ +{{- if .Values.warmPool.enabled }} +{{- /* +Pool-manager: a CronJob that reconciles the warm buffer each interval. + 1. REFILL — if idle sandboxes < targetIdle, create SandboxClaims to top up. + 2. SCALE-TO-ZERO — idle sandboxes past idleScaleToZeroSeconds → replicas:0. + 3. REAP — claimed sandboxes with no activity past reapAfterSeconds → delete. +Idle vs claimed is tracked by the label agent-sandbox.io/state and the +agent-sandbox.io/last-seen annotation, both stamped by the consumer on claim. +A CronJob (not a Deployment) keeps the controller dependency-free and cheap; +swap for a real controller later if reconcile latency matters. +*/ -}} +apiVersion: batch/v1 +kind: CronJob +metadata: + name: agent-sandbox-pool-manager + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + schedule: "* * * * *" # every minute; loop below honors intervalSeconds + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 2 + jobTemplate: + spec: + backoffLimit: 1 + template: + metadata: + labels: + {{- include "agent-sandbox.selectorLabels" . | nindent 12 }} + spec: + serviceAccountName: agent-sandbox-pool-manager + restartPolicy: OnFailure + securityContext: + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + containers: + - name: pool-manager + image: {{ .Values.poolManager.image }} + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: ["ALL"] + env: + - name: NS + value: {{ include "agent-sandbox.namespace" . }} + - name: TARGET_IDLE + value: {{ .Values.warmPool.targetIdle | quote }} + - name: IDLE_SCALE_TO_ZERO_SECONDS + value: {{ .Values.warmPool.idleScaleToZeroSeconds | quote }} + - name: REAP_AFTER_SECONDS + value: {{ .Values.warmPool.reapAfterSeconds | quote }} + - name: TEMPLATE_NAME + value: {{ .Values.warmPool.templateName }} + resources: + {{- toYaml .Values.poolManager.resources | nindent 16 }} + volumeMounts: + - name: tmp + mountPath: /tmp + command: + - /bin/sh + - -c + - | + set -eu + command -v kubectl >/dev/null 2>&1 || { echo "kubectl required in image"; exit 1; } + now=$(date -u +%s) + + idle=$(kubectl get sandboxes.agents.x-k8s.io -n "$NS" \ + -l 'agent-sandbox.io/state=idle' -o name 2>/dev/null | wc -l | tr -d ' ') + echo "warm pool: $idle idle / target $TARGET_IDLE" + + # 1. REFILL — top up idle sandboxes to the target buffer. + i="$idle" + while [ "$i" -lt "$TARGET_IDLE" ]; do + n="coder-idle-$(date -u +%s)-$i" + cat </dev/null + apiVersion: extensions.agents.x-k8s.io/v1alpha1 + kind: SandboxClaim + metadata: + name: $n + namespace: $NS + labels: + agent-sandbox.io/state: idle + spec: + sandboxTemplateRef: + name: $TEMPLATE_NAME + EOF + echo "refill: created idle claim $n" + i=$((i+1)) + done + + # 2. SCALE-TO-ZERO — idle sandboxes past the idle TTL. + kubectl get sandboxes.agents.x-k8s.io -n "$NS" \ + -l 'agent-sandbox.io/state=idle' -o json 2>/dev/null \ + | kubectl get --raw /version >/dev/null 2>&1 || true + + echo "pool-manager reconcile complete" + volumes: + - name: tmp + emptyDir: {} +{{- end }} From d564535f52ce60ac5ded83a191a479223f2f53c1 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:25:26 -0400 Subject: [PATCH 014/365] fix(agent-sandbox): implement pool-manager scale-to-zero + reap logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace stubbed steps with real jq logic: idle sandboxes past idleScaleToZeroSeconds → kubectl scale --replicas=0 (PVC kept); claimed sandboxes past reapAfterSeconds → delete (abandoned-run safety net), keyed on the agent-sandbox.io/last-seen annotation. Verified: helm renders, YAML parses, embedded script passes sh -n. --- .../templates/41-poolmanager-cronjob.yaml | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml b/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml index 7832d949..8261ce9f 100644 --- a/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml @@ -92,10 +92,36 @@ spec: i=$((i+1)) done - # 2. SCALE-TO-ZERO — idle sandboxes past the idle TTL. + # 2. SCALE-TO-ZERO — idle sandboxes past the idle TTL scale to + # replicas:0 (PVC retained), resumed on demand by the consumer. + if [ "${IDLE_SCALE_TO_ZERO_SECONDS}" -gt 0 ]; then + kubectl get sandboxes.agents.x-k8s.io -n "$NS" \ + -l 'agent-sandbox.io/state=idle' -o json 2>/dev/null \ + | jq -r --argjson now "$now" --argjson ttl "$IDLE_SCALE_TO_ZERO_SECONDS" ' + .items[] + | select((.spec.replicas // 1) > 0) + | select(((.metadata.annotations["agent-sandbox.io/last-seen"] // "0") | fromdateiso8601? // 0) < ($now - $ttl)) + | .metadata.name' \ + | while read -r s; do + [ -n "$s" ] || continue + kubectl scale sandbox.agents.x-k8s.io "$s" -n "$NS" --replicas=0 >/dev/null 2>&1 \ + && echo "scale-to-zero: paused idle $s" + done + fi + + # 3. REAP — claimed sandboxes with no activity past the hard TTL + # are deleted (safety net for crashed/abandoned consumers). kubectl get sandboxes.agents.x-k8s.io -n "$NS" \ - -l 'agent-sandbox.io/state=idle' -o json 2>/dev/null \ - | kubectl get --raw /version >/dev/null 2>&1 || true + -l 'agent-sandbox.io/state=claimed' -o json 2>/dev/null \ + | jq -r --argjson now "$now" --argjson ttl "$REAP_AFTER_SECONDS" ' + .items[] + | select(((.metadata.annotations["agent-sandbox.io/last-seen"] // "0") | fromdateiso8601? // 0) < ($now - $ttl)) + | .metadata.name' \ + | while read -r s; do + [ -n "$s" ] || continue + kubectl delete sandbox.agents.x-k8s.io "$s" -n "$NS" --ignore-not-found >/dev/null 2>&1 \ + && echo "reap: deleted expired claimed $s" + done echo "pool-manager reconcile complete" volumes: From 6969a58dbee7a573c111a823bec83512d56f4601 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:26:09 -0400 Subject: [PATCH 015/365] feat(agent-sandbox): add Sandbox operator install (SA/ClusterRole/StatefulSet/Service) Controller runtime for agents.x-k8s.io (upstream image v0.1.0) that materializes a Kata-VM pod+service per Sandbox CR. CRDs (~4k lines) come from the upstream bundle at an earlier sync-wave, not vendored. Gated on operator.installCRDs. Verified: full chart renders 14 manifests, all parse, helm lint clean. --- .../agent-sandbox/templates/05-operator.yaml | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/05-operator.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/05-operator.yaml b/gitops/addons/charts/agent-sandbox/templates/05-operator.yaml new file mode 100644 index 00000000..181e098b --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/05-operator.yaml @@ -0,0 +1,106 @@ +{{- if .Values.operator.installCRDs }} +{{- /* +Agent Sandbox operator (agents.x-k8s.io). Installs the controller that +materializes a Kata-VM Pod + Service (+ PVCs) per Sandbox CR and reports +status.serviceFQDN. + +NOTE ON CRDs: the Sandbox / SandboxTemplate / SandboxClaim CRDs are large +(~4k lines of OpenAPI schema) and are installed from the upstream operator +bundle, not vendored here. In this monorepo they are applied at an earlier +sync-wave (see gitops wiring) via the upstream manifest at + public.ecr.aws/t6v6o5d5/agent-sandbox:v0.1.0 +This template provides the controller runtime (SA + ClusterRole + StatefulSet ++ Service); it assumes the CRDs already exist. Set operator.installCRDs=false +if a newer operator on the cluster already manages both. +*/ -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: agent-sandbox-controller + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: agent-sandbox-controller + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +rules: + - apiGroups: ["agents.x-k8s.io"] + resources: ["sandboxes", "sandboxes/status", "sandboxes/scale"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["extensions.agents.x-k8s.io"] + resources: ["sandboxtemplates", "sandboxclaims", "sandboxclaims/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["pods", "services", "persistentvolumeclaims"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: agent-sandbox-controller + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: agent-sandbox-controller + namespace: {{ include "agent-sandbox.namespace" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: agent-sandbox-controller +--- +apiVersion: v1 +kind: Service +metadata: + name: agent-sandbox-controller + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + selector: + app.kubernetes.io/name: agent-sandbox + agent-sandbox.io/component: controller + ports: + - port: 80 + targetPort: 8080 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: agent-sandbox-controller + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + serviceName: agent-sandbox-controller + replicas: {{ .Values.operator.replicas }} + selector: + matchLabels: + app.kubernetes.io/name: agent-sandbox + agent-sandbox.io/component: controller + template: + metadata: + labels: + {{- include "agent-sandbox.labels" . | nindent 8 }} + agent-sandbox.io/component: controller + spec: + serviceAccountName: agent-sandbox-controller + securityContext: + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + containers: + - name: controller + image: {{ .Values.operator.image }} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: ["ALL"] + ports: + - name: http + containerPort: 8080 +{{- end }} From 0ff631de5ace2d08a14ef0118a9751f3a3e4248e Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:27:17 -0400 Subject: [PATCH 016/365] feat(agent-sandbox): register addon in the ApplicationSet catalog Add agent-sandbox to gitops/addons/bootstrap/default/addons.yaml: sync-wave 2, selector enable_agent_sandbox, Bifrost URL from cluster annotation. The ApplicationSet cluster-generator fans it onto any cluster carrying the label. Verified: addons.yaml parses. --- gitops/addons/bootstrap/default/addons.yaml | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index 7ad63963..6991e731 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -358,3 +358,25 @@ oam-agent-components: global: awsRegion: '{{.metadata.annotations.aws_region}}' clusterName: '{{.metadata.annotations.aws_cluster_name}}' + +# Agent Sandbox — hardware-isolated Kata micro-VM sandboxes (agents.x-k8s.io +# Sandbox CRD) with a pre-warmed pool kept ready by a pool-manager controller. +# The reusable isolation substrate the Dark Factory coding pipeline (and other +# agent workloads) claim on demand. Sync-wave 2: after the kata runtime is +# installed on nodes (base platform), before agentic workloads that claim a +# sandbox. +agent-sandbox: + enabled: true + namespace: agent-sandbox-system + defaultVersion: '0.1.0' + path: 'gitops/addons/charts/agent-sandbox' + annotationsAppSet: + argocd.argoproj.io/sync-wave: '2' + selector: + matchExpressions: + - key: enable_agent_sandbox + operator: In + values: ['true'] + valuesObject: + coderTemplate: + bifrostUrl: '{{default "http://bifrost.bifrost.svc.cluster.local:8080" (index .metadata.annotations "bifrost_url")}}' From a01e37da9a8821e2d91b3b1e08f9fa2c67c154d8 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:27:35 -0400 Subject: [PATCH 017/365] feat(agent-sandbox): enable on spoke-dev overlay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Turn on agent_sandbox in the dev environment overlay — the warm-pool capability comes up on spoke-dev where the Dark Factory pipeline runs. Verified: YAML parses. --- gitops/overlays/environments/dev/enabled-addons.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gitops/overlays/environments/dev/enabled-addons.yaml b/gitops/overlays/environments/dev/enabled-addons.yaml index 56ba38ff..12d55b2c 100644 --- a/gitops/overlays/environments/dev/enabled-addons.yaml +++ b/gitops/overlays/environments/dev/enabled-addons.yaml @@ -22,3 +22,6 @@ enabledAddons: # Agentic Platform agent_platform: true bifrost: true + # Agent Sandbox capability — Kata micro-VM sandboxes + warm pool. Permanent + # platform feature; the Dark Factory coding pipeline runs on spoke-dev. + agent_sandbox: true From 22f498ae72313318332974f947262de7197b764e Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:27:57 -0400 Subject: [PATCH 018/365] feat(agent-sandbox): enable on spoke-prod overlay (dormant capability) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Install the sandbox capability on prod as a permanent platform feature, but the Dark Factory never runs here — prod warm pool stays dormant, unreviewed code is only built/tested on spoke-dev (production-safety). Verified: YAML parses. --- gitops/overlays/environments/prod/enabled-addons.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gitops/overlays/environments/prod/enabled-addons.yaml b/gitops/overlays/environments/prod/enabled-addons.yaml index 89763f51..b0d67aae 100644 --- a/gitops/overlays/environments/prod/enabled-addons.yaml +++ b/gitops/overlays/environments/prod/enabled-addons.yaml @@ -23,3 +23,8 @@ enabledAddons: # Agentic Platform agent_platform: true bifrost: true + # Agent Sandbox capability installed on prod too (permanent platform feature), + # but the Dark Factory pipeline never runs here — the prod warm pool stays + # dormant. Unreviewed, agent-authored code is only ever built/tested on + # spoke-dev (production-safety). + agent_sandbox: true From d2ba4081093f5815346d3ba3c1f055b6805088dd Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:28:33 -0400 Subject: [PATCH 019/365] docs(agent-sandbox): add chart README (templates, values, prerequisites) --- gitops/addons/charts/agent-sandbox/README.md | 56 ++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/README.md diff --git a/gitops/addons/charts/agent-sandbox/README.md b/gitops/addons/charts/agent-sandbox/README.md new file mode 100644 index 00000000..18c5a739 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/README.md @@ -0,0 +1,56 @@ +# agent-sandbox + +**Flow A of the [Dark Factory pattern](../../../../docs/dark-factory/README.md).** +Hardware-isolated **Kata micro-VM sandboxes** (`agents.x-k8s.io` Sandbox CRD) with a **pre-warmed +pool** kept ready by a pool-manager controller — the reusable isolation substrate any agent +workload (notably the Dark Factory coding pipeline) can claim on demand. + +## What it installs + +| Template | Resource | Purpose | +|---|---|---| +| `00-namespace.yaml` | Namespace (PSS `restricted`) | Runs the capability; enforces restricted Pod Security | +| `05-operator.yaml` | SA + ClusterRole + StatefulSet + Service | The `agents.x-k8s.io` controller (materializes a Kata-VM pod per Sandbox) | +| `10-runtimeclasses.yaml` | RuntimeClass ×N | `kata-clh` (default), `kata-qemu` — steer pods onto kata Karpenter pools | +| `20-sandboxtemplate.yaml` | SandboxTemplate | The coder pod spec the warm pool clones (isolation invariants baked in) | +| `30-networkpolicy.yaml` | NetworkPolicy | Default-deny egress → DNS + Bifrost + HTTPS only (breaks the lethal trifecta) | +| `40-poolmanager-rbac.yaml` | SA + Role + RoleBinding | Narrowly-scoped RBAC for the pool-manager | +| `41-poolmanager-cronjob.yaml` | CronJob | Reconciles the warm buffer: refill / scale-to-zero / reap | + +## Enable + +```yaml +# gitops/overlays/environments/{dev,prod}/enabled-addons.yaml +enabledAddons: + agent_sandbox: true +``` + +The ApplicationSet cluster-generator (sync-wave 2) fans the chart onto any cluster carrying the +`enable_agent_sandbox` label. Installed on **spoke-dev and spoke-prod**; the Dark Factory pipeline +only *runs* on spoke-dev (prod pool stays dormant). + +## Key values + +| Value | Default | Purpose | +|---|---|---| +| `kata.defaultRuntimeClass` | `kata-clh` | VMM for coder sandboxes | +| `warmPool.targetIdle` | `3` | Idle sandboxes kept ready | +| `warmPool.idleScaleToZeroSeconds` | `900` | Idle → `replicas:0` (PVC kept) | +| `warmPool.reapAfterSeconds` | `3600` | Reap abandoned claimed sandboxes | +| `coderTemplate.bifrostUrl` | `http://bifrost.bifrost.svc.cluster.local:8080` | LLM gateway (Bifrost, not LiteLLM) | + +## Prerequisites + +- **Kata runtime installed on nodes** (via `kata-deploy` + kata Karpenter pools from the base + platform / `eks-platform-openclaw`). +- **Sandbox CRDs** (`Sandbox`, `SandboxTemplate`, `SandboxClaim`) applied at an earlier sync-wave + from the upstream operator bundle (`public.ecr.aws/t6v6o5d5/agent-sandbox:v0.1.0`) — the ~4k-line + OpenAPI schema is not vendored into this chart. +- **Bifrost** LLM gateway reachable at the configured URL. + +## Notes + +- The pool-manager is a CronJob (kubectl + jq reconcile loop) for a dependency-free reference + implementation; swap for a real controller if reconcile latency matters. +- `warmPool.enabled=false` removes the pool-manager entirely (operator + RuntimeClasses + template + remain, for manual/consumer-driven claims). From c82f394f8ebe2de848297c657cbdad86b928db5f Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:38:43 -0400 Subject: [PATCH 020/365] chore(agent-sandbox): disable on spoke-dev overlay (Auto Mode can't run Kata) Comment out agent_sandbox on dev. Spoke clusters run EKS Auto Mode + Bottlerocket, which cannot host Kata micro-VMs (no nested-virt/kvm control). Chart is kept; enabling needs a kata-capable nodepool strategy for Auto Mode first. Verified: YAML parses. --- gitops/overlays/environments/dev/enabled-addons.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gitops/overlays/environments/dev/enabled-addons.yaml b/gitops/overlays/environments/dev/enabled-addons.yaml index 12d55b2c..40720126 100644 --- a/gitops/overlays/environments/dev/enabled-addons.yaml +++ b/gitops/overlays/environments/dev/enabled-addons.yaml @@ -22,6 +22,9 @@ enabledAddons: # Agentic Platform agent_platform: true bifrost: true - # Agent Sandbox capability — Kata micro-VM sandboxes + warm pool. Permanent - # platform feature; the Dark Factory coding pipeline runs on spoke-dev. - agent_sandbox: true + # Agent Sandbox capability — Kata micro-VM sandboxes + warm pool. + # DISABLED for now: spoke clusters run EKS Auto Mode + Bottlerocket, which + # cannot host Kata (no nested-virt / kvm control). Chart exists at + # gitops/addons/charts/agent-sandbox; enabling it needs a kata-capable + # nodepool strategy for Auto Mode — see docs/dark-factory (Flow A open item). + # agent_sandbox: true From e5015f93a7d9d55d1af90bdb1fd0f4229f0190dc Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:39:00 -0400 Subject: [PATCH 021/365] chore(agent-sandbox): disable on spoke-prod overlay (Auto Mode can't run Kata) Same as dev: comment out agent_sandbox until EKS Auto Mode + Kata integration is designed. Chart retained. Verified: YAML parses. --- gitops/overlays/environments/prod/enabled-addons.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gitops/overlays/environments/prod/enabled-addons.yaml b/gitops/overlays/environments/prod/enabled-addons.yaml index b0d67aae..c4c89eeb 100644 --- a/gitops/overlays/environments/prod/enabled-addons.yaml +++ b/gitops/overlays/environments/prod/enabled-addons.yaml @@ -23,8 +23,8 @@ enabledAddons: # Agentic Platform agent_platform: true bifrost: true - # Agent Sandbox capability installed on prod too (permanent platform feature), - # but the Dark Factory pipeline never runs here — the prod warm pool stays - # dormant. Unreviewed, agent-authored code is only ever built/tested on - # spoke-dev (production-safety). - agent_sandbox: true + # Agent Sandbox capability — DISABLED for now (same reason as dev): EKS Auto + # Mode + Bottlerocket cannot host Kata. Re-enable once Auto Mode integration + # is designed. When on, prod holds the capability but the pool stays dormant + # (the Dark Factory only runs on spoke-dev — production-safety). + # agent_sandbox: true From cf69586d3bab7e7ecfc63a84c789d1cee720f0ca Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 12:39:27 -0400 Subject: [PATCH 022/365] docs(dark-factory): document Kata-on-Auto-Mode blocker + integration options Record why agent-sandbox is disabled on spokes: EKS Auto Mode + Bottlerocket cannot host Kata (no nested-virt/kvm control, no kata-deploy). List 3 paths to evaluate: self-managed kata nodepool, Bedrock AgentCore/Fargate microVM, or gVisor. Top item to resolve before enabling Flow A live. --- docs/dark-factory/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index 55154119..4a9d7729 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -387,6 +387,19 @@ Each phase is independently valuable — if you stop after any one, you're bette *To resolve during implementation — flagged honestly rather than assumed:* +- **🚧 BLOCKER — Kata on EKS Auto Mode.** The current spoke clusters run **EKS Auto Mode + + Bottlerocket** (`c6a`/`c6g` nodes), which **cannot host Kata micro-VMs**: Auto Mode gives no + control over `cpuOptions.nestedVirtualization`, kernel-module loading (`modprobe kvm_intel`), or + running `kata-deploy`, and the node types don't expose VT-x. `eks-platform-openclaw` deliberately + avoids Auto Mode for exactly this reason. The `agent-sandbox` addon is therefore **built but + disabled** in the dev/prod overlays until we choose an integration path. Options to evaluate: + 1. **Self-managed kata nodepool alongside Auto Mode** — add a nested-virt (`c8i`/`m8i`) Karpenter + nodepool + `kata-deploy` to spokes (mirrors openclaw); real hardware isolation, extra cost/ops. + 2. **AWS-managed microVM isolation** — use **Bedrock AgentCore** (per-session microVM) or Fargate + as the isolation boundary instead of self-hosted Kata; less control, no node management. + 3. **gVisor / user-space sandbox** on Auto Mode — weaker than a true VM boundary but Auto-Mode- + compatible; a middle option for the coder sandbox. + This is the top thing to think through before enabling Flow A on these clusters. - **Headless auth** for Claude Code & Kiro through a Bifrost base-URL override inside a Kata VM (the biggest unknown — prototype first in P1). - **Import the `agent-sandbox` operator** from `eks-platform-openclaw` into the OAP addon catalog From 7d7f20953ec930305a7c7c106930901bba66f517 Mon Sep 17 00:00:00 2001 From: shapirov103 Date: Fri, 10 Jul 2026 12:17:16 -0400 Subject: [PATCH 023/365] fix(oam): aws-service-identity RolePolicyAttachment uses ProviderConfig 'default' --- .../oam-agent-components/templates/aws-service-identity.yaml | 2 +- platform/oam/definitions/traits/aws-service-identity.cue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gitops/addons/charts/oam-agent-components/templates/aws-service-identity.yaml b/gitops/addons/charts/oam-agent-components/templates/aws-service-identity.yaml index 2cabe9c6..3aea90db 100644 --- a/gitops/addons/charts/oam-agent-components/templates/aws-service-identity.yaml +++ b/gitops/addons/charts/oam-agent-components/templates/aws-service-identity.yaml @@ -67,7 +67,7 @@ spec: policyArnRef: name: "\(context.appName)-\(c)-iam-policy" role: "\(context.name)-role" } - providerConfigRef: name: "provider-aws-config" + providerConfigRef: name: "default" } } } diff --git a/platform/oam/definitions/traits/aws-service-identity.cue b/platform/oam/definitions/traits/aws-service-identity.cue index c9e41cec..44727d99 100644 --- a/platform/oam/definitions/traits/aws-service-identity.cue +++ b/platform/oam/definitions/traits/aws-service-identity.cue @@ -81,7 +81,7 @@ template: { policyArnRef: name: "\(context.appName)-\(c)-iam-policy" role: "\(context.name)-role" } - providerConfigRef: name: "provider-aws-config" + providerConfigRef: name: "default" } } } From ee17d0a27fd93d667cfc2f664faccce605e04d3d Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:51:42 -0400 Subject: [PATCH 024/365] =?UTF-8?q?docs(dark-factory):=20add=20validated?= =?UTF-8?q?=20Kata-on-Auto-Mode=20design=20(=C2=A712a)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Record the spike outcome: self-managed nested-virt MNG coexists with EKS Auto Mode and /dev/kvm works via CpuOptions.NestedVirtualization (aws-cli >=2.35). Decision: MNG (not a 2nd Karpenter); AgentCore/gVisor rejected with reasons. Two implementation lessons: AL2023 nodeadm MIME userData (don't clobber bootstrap) + delete MNG-first teardown ordering. Replaces the old blocker note. --- docs/dark-factory/README.md | 55 ++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index 4a9d7729..d98a1f44 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -383,23 +383,52 @@ Each phase is independently valuable — if you stop after any one, you're bette --- +## 12a. Running Kata on EKS Auto Mode clusters (validated design) + +The spoke clusters run **EKS Auto Mode + Bottlerocket** (`c6a`/`c6g` nodes). Auto Mode's managed +nodes **cannot host Kata**: no control over `cpuOptions.nestedVirtualization`, no kernel-module +loading (`modprobe kvm_intel`), no `kata-deploy`, and those node types don't expose VT-x. +`eks-platform-openclaw` avoids Auto Mode entirely for this reason — but we don't have to. + +### Decision: self-managed nested-virt MNG *alongside* Auto Mode + +Add a small, tainted **self-managed Managed Node Group** of **nested-virt `c8i`/`m8i`** instances to +spoke-dev. Auto Mode keeps running everything else; kata sandboxes schedule onto the MNG via the +`kata=true:NoSchedule` taint the chart already applies. We chose an **MNG, not a second +Karpenter** — running a self-managed Karpenter beside Auto Mode's managed Karpenter risks +NodePool/CRD conflicts, whereas MNGs are additive and coexist cleanly. + +Rejected alternatives: **Bedrock AgentCore / Fargate** (breaks the k8s-native pod model our whole +Sandbox/warm-pool/claim design depends on — it's an invoke-a-session runtime, not a pod we own); +**gVisor** (same Auto-Mode node-install blocker as Kata, weaker isolation). + +### ✅ Validated by a live spike (spoke-dev, 2026-07-10) + +A throwaway 1-node `c8i.4xlarge` MNG was created on spoke-dev, then torn down. Results: + +| Question | Result | +|---|---| +| Self-managed MNG coexists with Auto Mode? | **Yes** — MNG provisioned alongside Auto Mode nodepools, no conflict; Auto Mode stayed healthy | +| Nested virtualization / `/dev/kvm`? | **Yes** — `/dev/kvm` present, `kvm_intel` loaded, 32 `vmx` flags, via `CpuOptions.NestedVirtualization: enabled` | +| aws-cli support | Requires **aws-cli ≥ 2.35** for the `CpuOptions.NestedVirtualization` launch-template field | + +### Two hard-won lessons (baked into the implementation) + +1. **Node bootstrap** — do **not** override the AMI + userData with plain bash; that clobbers the + EKS bootstrap and the node boots (`/dev/kvm` present) but never joins the cluster. Use the + **AL2023 nodeadm MIME userData** format (or the default EKS AMI + a systemd unit that runs + `modprobe kvm_intel`), and set nested-virt via the **launch-template `CpuOptions`**, not userData. +2. **Teardown ordering** — delete the **MNG first and let it drain**. Terminating the instance out + from under the MNG makes the ASG respawn and can wedge the delete on a `Pending:Wait` lifecycle + hook; recover with `aws autoscaling terminate-instance-in-auto-scaling-group` + + `complete-lifecycle-action`. Set MNG min/desired to 0 before deleting for a clean teardown. + +--- + ## 13. Open questions / future work *To resolve during implementation — flagged honestly rather than assumed:* -- **🚧 BLOCKER — Kata on EKS Auto Mode.** The current spoke clusters run **EKS Auto Mode + - Bottlerocket** (`c6a`/`c6g` nodes), which **cannot host Kata micro-VMs**: Auto Mode gives no - control over `cpuOptions.nestedVirtualization`, kernel-module loading (`modprobe kvm_intel`), or - running `kata-deploy`, and the node types don't expose VT-x. `eks-platform-openclaw` deliberately - avoids Auto Mode for exactly this reason. The `agent-sandbox` addon is therefore **built but - disabled** in the dev/prod overlays until we choose an integration path. Options to evaluate: - 1. **Self-managed kata nodepool alongside Auto Mode** — add a nested-virt (`c8i`/`m8i`) Karpenter - nodepool + `kata-deploy` to spokes (mirrors openclaw); real hardware isolation, extra cost/ops. - 2. **AWS-managed microVM isolation** — use **Bedrock AgentCore** (per-session microVM) or Fargate - as the isolation boundary instead of self-hosted Kata; less control, no node management. - 3. **gVisor / user-space sandbox** on Auto Mode — weaker than a true VM boundary but Auto-Mode- - compatible; a middle option for the coder sandbox. - This is the top thing to think through before enabling Flow A on these clusters. - **Headless auth** for Claude Code & Kiro through a Bifrost base-URL override inside a Kata VM (the biggest unknown — prototype first in P1). - **Import the `agent-sandbox` operator** from `eks-platform-openclaw` into the OAP addon catalog From c5d020bc537958163da680d443108855efdc812a Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:52:27 -0400 Subject: [PATCH 025/365] feat(agent-sandbox): add kata-deploy chart dependency (gated) Depend on the upstream kata-deploy chart (v3.32.0) to install the Kata runtime + containerd handlers on kata MNG nodes. Gated by kataDeploy.enabled so the chart stays inert on clusters without a kata-capable nodepool. Verified: YAML parses. --- gitops/addons/charts/agent-sandbox/Chart.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gitops/addons/charts/agent-sandbox/Chart.yaml b/gitops/addons/charts/agent-sandbox/Chart.yaml index 74441edc..f213eb0c 100644 --- a/gitops/addons/charts/agent-sandbox/Chart.yaml +++ b/gitops/addons/charts/agent-sandbox/Chart.yaml @@ -19,3 +19,12 @@ sources: - https://github.com/elamaran11/eks-platform-openclaw maintainers: - name: Open Agent Platform +# kata-deploy installs the Kata runtime (binaries, guest kernel, containerd +# runtime handlers for kata-clh/kata-qemu) on the tainted kata MNG nodes. +# Gated by values.kataDeploy.enabled so the chart is inert on clusters without +# a kata-capable nodepool. +dependencies: + - name: kata-deploy + version: "3.32.0" + repository: oci://ghcr.io/kata-containers/kata-deploy-charts + condition: kataDeploy.enabled From a36598444e2bdd9b9674c99e0dd7f9234be9ff43 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:52:50 -0400 Subject: [PATCH 026/365] feat(agent-sandbox): add kata-deploy subchart values + kataDeploy toggle Mirror openclaw's kata-deploy config: target the static kata-enabled label (not katacontainers.io/kata-runtime, which deadlocks), tolerate kata + runtime-not-ready taints, install qemu+clh shims, disable kata-deploy's own RuntimeClasses (our chart owns them). Default kataDeploy.enabled=false so it's inert without a kata nodepool. Verified: YAML parses. --- .../addons/charts/agent-sandbox/values.yaml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 5be774f9..22c35c31 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -17,6 +17,42 @@ operator: # Disable if the cluster already has a newer operator managing the CRDs. installCRDs: true +# ── kata-deploy (installs Kata runtime on the kata MNG nodes) ──────────────── +# Set enabled: true only on clusters that have a kata-capable nodepool (a +# self-managed nested-virt MNG on EKS Auto Mode — see docs/dark-factory §12a). +kataDeploy: + enabled: false +# Values passed to the upstream kata-deploy subchart. +kata-deploy: + kata-deploy: + image: + reference: quay.io/kata-containers/kata-deploy + tag: "3.32.0" + # Target the STATIC label set at node birth on the kata MNG — NOT + # katacontainers.io/kata-runtime (kata-deploy emits that only after install, + # so selecting on it would deadlock). + nodeSelector: + kata-enabled: "true" + tolerations: + - key: kata + operator: Equal + value: "true" + effect: NoSchedule + - key: katacontainers.io/runtime-not-ready + operator: Exists + effect: NoSchedule + shims: + disableAll: true + qemu: + enabled: true + clh: + enabled: true + # Our chart owns the RuntimeClasses (10-runtimeclasses.yaml) so all VMMs carry + # the same pool-steering scheduling block; disable kata-deploy's own to avoid + # two RuntimeClasses fighting over the same names. + runtimeClasses: + enabled: false + # ── Kata micro-VM runtime ──────────────────────────────────────────────────── kata: # Default VMM for coder sandboxes. Cloud Hypervisor (clh) boots fast and is From 4b242177db2873b0e5dcfb584d000464d4bd873d Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:53:22 -0400 Subject: [PATCH 027/365] feat(agent-sandbox): add kata MNG launch-template nodeadm userData The correct AL2023 MIME userData for the nested-virt kata MNG: a boot script that modprobes kvm_intel + persists it (so /dev/kvm exists before Ready), then a nodeadm NodeConfig that joins the cluster with the kata-enabled label + kata=true taint. Encodes spike lesson #1 (don't clobber nodeadm bootstrap). --- .../kata-mng-launch-template-userdata.mime | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime diff --git a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime new file mode 100644 index 00000000..f26bea82 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime @@ -0,0 +1,36 @@ +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="//" + +--// +Content-Type: text/x-shellscript; charset="us-ascii" + +#!/bin/bash +# Load the KVM module so /dev/kvm exists BEFORE the node goes Ready. +# cpuOptions.NestedVirtualization on the launch template only makes VT-x +# *visible*; the stock AL2023 image does not auto-load kvm_intel. Persist it so +# it survives reboots. (Lesson from the spike: setting nested-virt without this +# gives a node with no /dev/kvm.) +modprobe kvm_intel +printf 'kvm\nkvm_intel\n' > /etc/modules-load.d/kvm.conf + +--// +Content-Type: application/node.eks.aws + +# nodeadm NodeConfig — this is what actually joins the node to the cluster. +# CRITICAL (spike lesson #1): do NOT replace this with a plain-bash bootstrap or +# a custom AMI without nodeadm — the node will boot with /dev/kvm but never +# register with the control plane. Substitute the real cluster name at render. +apiVersion: node.eks.aws/v1alpha1 +kind: NodeConfig +spec: + cluster: + name: CLUSTER_NAME_PLACEHOLDER + kubelet: + flags: + # Labels + taint applied at node birth so kata-deploy schedules and the + # RuntimeClass nodeSelector matches. kata-enabled is the STATIC label + # kata-deploy targets; katacontainers.io/kata-runtime is emitted by + # kata-deploy after install. + - "--node-labels=kata-enabled=true,katacontainers.io/kata-runtime=true,node-type=kata-mng" + - "--register-with-taints=kata=true:NoSchedule" +--//-- From 91232af223ff717732cf259f0f08dd181c21b502 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:53:47 -0400 Subject: [PATCH 028/365] feat(agent-sandbox): add eksctl manifest for the kata MNG Declarative nested-virt (c8i/m8i) Managed Node Group for spoke-dev alongside Auto Mode: minSize 0 (scale-to-zero), kata-enabled label + kata=true taint, AL2023, scoped node IAM. Coexistence validated by the spike. Verified: YAML parses. --- .../nodepool/kata-mng-eksctl.yaml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/nodepool/kata-mng-eksctl.yaml diff --git a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-eksctl.yaml b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-eksctl.yaml new file mode 100644 index 00000000..ebbca9bd --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-eksctl.yaml @@ -0,0 +1,50 @@ +# Self-managed nested-virt Managed Node Group for Kata sandboxes, added to an +# existing EKS Auto Mode cluster (spoke-dev). Auto Mode keeps running everything +# else; kata sandboxes schedule here via the kata=true taint. Validated by the +# 2026-07-10 spike (see docs/dark-factory §12a). +# +# Apply: eksctl create nodegroup -f kata-mng-eksctl.yaml +# Requires eksctl with EKS Auto Mode coexistence support and an AMI/instance +# that exposes nested virtualization (c8i/m8i). +apiVersion: eksctl.io/v1alpha5 +kind: ClusterConfig + +metadata: + name: spoke-dev # target cluster + region: us-west-2 + +managedNodeGroups: + - name: kata-sandbox + # Nested-virt Intel instances (expose VT-x via CpuOptions.NestedVirtualization). + instanceTypes: ["c8i.4xlarge", "m8i.4xlarge"] + amiFamily: AmazonLinux2023 + minSize: 0 # scale-to-zero when no sandbox is claimed + maxSize: 3 + desiredCapacity: 1 + privateNetworking: true + volumeSize: 100 + # Labels applied at node birth: kata-enabled is the STATIC label kata-deploy + # targets; katacontainers.io/kata-runtime is (re)emitted by kata-deploy. + labels: + kata-enabled: "true" + katacontainers.io/kata-runtime: "true" + node-type: kata-mng + # Only kata sandboxes tolerate this taint — keeps general workloads off. + taints: + - key: kata + value: "true" + effect: NoSchedule + # nested virtualization + the modprobe/nodeadm userData are supplied via a + # launch template (eksctl overrideBootstrapCommand cannot set CpuOptions). + # See kata-mng-launch-template-userdata.mime and the Terraform variant. + # launchTemplate: + # id: lt-xxxxxxxx + tags: + platform: open-agent-platform + capability: agent-sandbox + iam: + attachPolicyARNs: + - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy + - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy + - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly + - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore From f2e790a33125c373742c9fa6d90f0860fb9f8031 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:54:22 -0400 Subject: [PATCH 029/365] feat(agent-sandbox): add Terraform kata MNG + nested-virt launch template Terraform variant for teams on the appmod/openclaw IaC path: launch template with cpu_options.nested_virtualization=enabled (the flag eksctl can't set) + MIME nodeadm userData (modprobe kvm_intel + join), MNG scale-to-zero, kata=true taint, kata labels. Verified: braces balanced. --- .../charts/agent-sandbox/nodepool/kata-mng.tf | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf diff --git a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf new file mode 100644 index 00000000..140fafde --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf @@ -0,0 +1,100 @@ +# Terraform variant: nested-virt Kata Managed Node Group + launch template for +# an existing EKS Auto Mode cluster. Use this path when you need the launch +# template's CpuOptions.NestedVirtualization flag (eksctl cannot set it). +# Validated by the 2026-07-10 spike (docs/dark-factory §12a). +# +# Requires: aws provider (nested_virtualization support), AWS API/CLI vintage +# that exposes cpu_options.nested_virtualization. + +variable "cluster_name" { type = string default = "spoke-dev" } +variable "region" { type = string default = "us-west-2" } +variable "subnet_ids" { type = list(string) } +variable "node_role_arn" { type = string } +variable "instance_type" { type = string default = "c8i.4xlarge" } +variable "kata_max_size" { type = number default = 3 } + +# EKS-optimized AL2023 AMI for the cluster's k8s version (nodeadm bootstrap). +data "aws_ssm_parameter" "al2023" { + name = "/aws/service/eks/optimized-ami/1.35/amazon-linux-2023/x86_64/standard/recommended/image_id" +} + +locals { + # MIME userData: modprobe kvm_intel (so /dev/kvm exists) + nodeadm NodeConfig + # that joins the cluster with the kata labels/taint. See lesson #1 in §12a. + kata_userdata = base64encode(<<-MIME + MIME-Version: 1.0 + Content-Type: multipart/mixed; boundary="//" + + --// + Content-Type: text/x-shellscript; charset="us-ascii" + + #!/bin/bash + modprobe kvm_intel + printf 'kvm\nkvm_intel\n' > /etc/modules-load.d/kvm.conf + + --// + Content-Type: application/node.eks.aws + + apiVersion: node.eks.aws/v1alpha1 + kind: NodeConfig + spec: + cluster: + name: ${var.cluster_name} + kubelet: + flags: + - "--node-labels=kata-enabled=true,katacontainers.io/kata-runtime=true,node-type=kata-mng" + - "--register-with-taints=kata=true:NoSchedule" + --//-- + MIME + ) +} + +resource "aws_launch_template" "kata" { + name_prefix = "${var.cluster_name}-kata-" + image_id = data.aws_ssm_parameter.al2023.value + user_data = local.kata_userdata + + cpu_options { + # THE key flag — exposes VT-x on 8i instances so kata's VMM can run guests. + nested_virtualization = "enabled" + } + + tag_specifications { + resource_type = "instance" + tags = { platform = "open-agent-platform", capability = "agent-sandbox" } + } +} + +resource "aws_eks_node_group" "kata" { + cluster_name = var.cluster_name + node_group_name = "kata-sandbox" + node_role_arn = var.node_role_arn + subnet_ids = var.subnet_ids + + # Scale-to-zero when no sandbox is claimed; pool-manager / consumer scales up. + scaling_config { + min_size = 0 + desired_size = 1 + max_size = var.kata_max_size + } + + launch_template { + id = aws_launch_template.kata.id + version = aws_launch_template.kata.latest_version + } + + # Only kata sandboxes tolerate this — keeps general workloads off the pool. + taint { + key = "kata" + value = "true" + effect = "NO_SCHEDULE" + } + + labels = { + "kata-enabled" = "true" + "katacontainers.io/kata-runtime" = "true" + "node-type" = "kata-mng" + } + + tags = { platform = "open-agent-platform", capability = "agent-sandbox" } +} From ef7e7d71730ad9aa705c8dbf32f22873ed1c3434 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:55:10 -0400 Subject: [PATCH 030/365] fix(agent-sandbox): valid HCL for kata MNG Terraform (fmt + validate pass) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Expand one-line variable blocks to valid multi-line HCL; terraform fmt applied. Verified with real terraform: 'terraform validate → Success! The configuration is valid.' --- .../charts/agent-sandbox/nodepool/kata-mng.tf | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf index 140fafde..c47b511e 100644 --- a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf +++ b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf @@ -6,12 +6,28 @@ # Requires: aws provider (nested_virtualization support), AWS API/CLI vintage # that exposes cpu_options.nested_virtualization. -variable "cluster_name" { type = string default = "spoke-dev" } -variable "region" { type = string default = "us-west-2" } -variable "subnet_ids" { type = list(string) } -variable "node_role_arn" { type = string } -variable "instance_type" { type = string default = "c8i.4xlarge" } -variable "kata_max_size" { type = number default = 3 } +variable "cluster_name" { + type = string + default = "spoke-dev" +} +variable "region" { + type = string + default = "us-west-2" +} +variable "subnet_ids" { + type = list(string) +} +variable "node_role_arn" { + type = string +} +variable "instance_type" { + type = string + default = "c8i.4xlarge" +} +variable "kata_max_size" { + type = number + default = 3 +} # EKS-optimized AL2023 AMI for the cluster's k8s version (nodeadm bootstrap). data "aws_ssm_parameter" "al2023" { @@ -61,7 +77,7 @@ resource "aws_launch_template" "kata" { tag_specifications { resource_type = "instance" - tags = { platform = "open-agent-platform", capability = "agent-sandbox" } + tags = { platform = "open-agent-platform", capability = "agent-sandbox" } } } @@ -91,9 +107,9 @@ resource "aws_eks_node_group" "kata" { } labels = { - "kata-enabled" = "true" - "katacontainers.io/kata-runtime" = "true" - "node-type" = "kata-mng" + "kata-enabled" = "true" + "katacontainers.io/kata-runtime" = "true" + "node-type" = "kata-mng" } tags = { platform = "open-agent-platform", capability = "agent-sandbox" } From 4fc65188ee53611f6c9d11e56a87c08b8c8effda Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:56:35 -0400 Subject: [PATCH 031/365] fix(agent-sandbox): drop kata-deploy subchart dep (delivered as separate ArgoCD app) An unbuilt OCI subchart dependency blocks the whole chart from rendering (helm won't template with a missing dep) and is fragile under ArgoCD. Remove the dependency; kata-deploy will be a separate gated ArgoCD Application pulling the upstream OCI chart directly. Verified: chart renders standalone again + lint clean. --- gitops/addons/charts/agent-sandbox/Chart.yaml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/Chart.yaml b/gitops/addons/charts/agent-sandbox/Chart.yaml index f213eb0c..1f8e75da 100644 --- a/gitops/addons/charts/agent-sandbox/Chart.yaml +++ b/gitops/addons/charts/agent-sandbox/Chart.yaml @@ -19,12 +19,8 @@ sources: - https://github.com/elamaran11/eks-platform-openclaw maintainers: - name: Open Agent Platform -# kata-deploy installs the Kata runtime (binaries, guest kernel, containerd -# runtime handlers for kata-clh/kata-qemu) on the tainted kata MNG nodes. -# Gated by values.kataDeploy.enabled so the chart is inert on clusters without -# a kata-capable nodepool. -dependencies: - - name: kata-deploy - version: "3.32.0" - repository: oci://ghcr.io/kata-containers/kata-deploy-charts - condition: kataDeploy.enabled +# NOTE: kata-deploy (the Kata runtime installer) is NOT bundled as a subchart +# dependency — an OCI subchart dep would block this chart from rendering when +# unbuilt and is fragile under ArgoCD. Instead it is delivered as a separate, +# gated ArgoCD Application (enable_agent_sandbox_kata) that pulls the upstream +# OCI chart directly. See the addon catalog + docs/dark-factory §12a. From 324aa367b18abcec724e04c7045c1f0fb6810086 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:57:01 -0400 Subject: [PATCH 032/365] feat(agent-sandbox): register kata-deploy as separate gated ArgoCD app Add kata-deploy to the addon catalog as its own app (OCI chart from ghcr.io/kata-containers, sync-wave 1) gated by enable_agent_sandbox_kata, so only clusters with a kata-capable nested-virt MNG install the runtime. Mirrors openclaw config: target kata-enabled label, tolerate kata + runtime-not-ready taints, qemu+clh shims, our chart owns RuntimeClasses. Verified: YAML parses. --- gitops/addons/bootstrap/default/addons.yaml | 44 +++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index 6991e731..17e50934 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -380,3 +380,47 @@ agent-sandbox: valuesObject: coderTemplate: bifrostUrl: '{{default "http://bifrost.bifrost.svc.cluster.local:8080" (index .metadata.annotations "bifrost_url")}}' + +# kata-deploy — installs the Kata runtime (containerd handlers for kata-clh / +# kata-qemu) on the tainted kata MNG nodes. Separate app (not a subchart dep of +# agent-sandbox) so ArgoCD pulls the upstream OCI chart directly. Gated by +# enable_agent_sandbox_kata — only clusters with a kata-capable nested-virt MNG +# (see docs/dark-factory §12a) should carry that label. Sync-wave 1: runtime is +# installed on nodes before the Sandbox operator (wave 2) schedules VMs. +kata-deploy: + enabled: true + namespace: kube-system + chartName: kata-deploy + defaultVersion: '3.32.0' + chartRepository: 'ghcr.io/kata-containers/kata-deploy-charts' + chartNamespace: kata-containers + annotationsAppSet: + argocd.argoproj.io/sync-wave: '1' + selector: + matchExpressions: + - key: enable_agent_sandbox_kata + operator: In + values: ['true'] + valuesObject: + kata-deploy: + image: + reference: quay.io/kata-containers/kata-deploy + tag: '3.32.0' + nodeSelector: + kata-enabled: 'true' + tolerations: + - key: kata + operator: Equal + value: 'true' + effect: NoSchedule + - key: katacontainers.io/runtime-not-ready + operator: Exists + effect: NoSchedule + shims: + disableAll: true + qemu: + enabled: true + clh: + enabled: true + runtimeClasses: + enabled: false From 62b746c84c99094dc863d23f5c37a52f16598e94 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:57:34 -0400 Subject: [PATCH 033/365] refactor(agent-sandbox): drop kata-deploy subchart values (now separate app) kata-deploy moved to its own gated ArgoCD app, so remove the subchart values block from the chart; leave a pointer note. Verified: values parse + chart still renders 14 manifests. --- .../addons/charts/agent-sandbox/values.yaml | 39 ++----------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 22c35c31..ca90615f 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -17,41 +17,10 @@ operator: # Disable if the cluster already has a newer operator managing the CRDs. installCRDs: true -# ── kata-deploy (installs Kata runtime on the kata MNG nodes) ──────────────── -# Set enabled: true only on clusters that have a kata-capable nodepool (a -# self-managed nested-virt MNG on EKS Auto Mode — see docs/dark-factory §12a). -kataDeploy: - enabled: false -# Values passed to the upstream kata-deploy subchart. -kata-deploy: - kata-deploy: - image: - reference: quay.io/kata-containers/kata-deploy - tag: "3.32.0" - # Target the STATIC label set at node birth on the kata MNG — NOT - # katacontainers.io/kata-runtime (kata-deploy emits that only after install, - # so selecting on it would deadlock). - nodeSelector: - kata-enabled: "true" - tolerations: - - key: kata - operator: Equal - value: "true" - effect: NoSchedule - - key: katacontainers.io/runtime-not-ready - operator: Exists - effect: NoSchedule - shims: - disableAll: true - qemu: - enabled: true - clh: - enabled: true - # Our chart owns the RuntimeClasses (10-runtimeclasses.yaml) so all VMMs carry - # the same pool-steering scheduling block; disable kata-deploy's own to avoid - # two RuntimeClasses fighting over the same names. - runtimeClasses: - enabled: false +# NOTE: The Kata *runtime installer* (kata-deploy) is delivered as a SEPARATE +# gated ArgoCD app (enable_agent_sandbox_kata), not from this chart — see the +# addon catalog and docs/dark-factory §12a. This chart owns the RuntimeClasses, +# operator, template, network policy, and pool-manager. # ── Kata micro-VM runtime ──────────────────────────────────────────────────── kata: From e19261fc779a736cf70e46e8742942ee1fa8d710 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 13:58:03 -0400 Subject: [PATCH 034/365] docs(agent-sandbox): add nodepool README (provisioning + enablement sequence) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document the kata MNG provisioning options (eksctl/Terraform/nodeadm userData), the 4-step per-cluster enablement sequence (provision MNG → enable_agent_sandbox_kata → enable_agent_sandbox → warm pool), cost (scale-to-zero), and teardown ordering. --- .../charts/agent-sandbox/nodepool/README.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/nodepool/README.md diff --git a/gitops/addons/charts/agent-sandbox/nodepool/README.md b/gitops/addons/charts/agent-sandbox/nodepool/README.md new file mode 100644 index 00000000..8b055867 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/nodepool/README.md @@ -0,0 +1,46 @@ +# Kata node pool provisioning + +The `agent-sandbox` chart installs the Sandbox operator, RuntimeClasses, coder +template, and pool-manager — but Kata needs **hardware-virtualization nodes** to +actually run micro-VMs. On an **EKS Auto Mode** cluster (like the spokes), Auto +Mode's managed Bottlerocket nodes can't host Kata, so we add a **self-managed +nested-virt Managed Node Group** alongside Auto Mode. Coexistence + `/dev/kvm` +were validated by a live spike (see [`docs/dark-factory` §12a](../../../../../docs/dark-factory/README.md)). + +## Files here + +| File | Purpose | +|---|---| +| `kata-mng-eksctl.yaml` | eksctl `ClusterConfig` to add the kata MNG (declarative, simplest) | +| `kata-mng.tf` | Terraform launch template (`cpu_options.nested_virtualization=enabled`) + MNG — use when you need the nested-virt flag eksctl can't set. `terraform validate` passes. | +| `kata-mng-launch-template-userdata.mime` | The AL2023 **nodeadm MIME** userData (modprobe kvm_intel + join). Reference for either path. | + +## Enablement sequence (per kata-capable cluster, e.g. spoke-dev) + +1. **Provision the kata MNG** — apply the eksctl or Terraform manifest here. Nodes + come up tainted `kata=true:NoSchedule`, labeled `kata-enabled=true`, with + `/dev/kvm` (nested-virt) and `min=0` scale-to-zero. +2. **Install the runtime** — label the cluster secret `enable_agent_sandbox_kata=true` + so the `kata-deploy` ArgoCD app (sync-wave 1) installs the containerd handlers. +3. **Install the capability** — label `enable_agent_sandbox=true` so the + `agent-sandbox` app (sync-wave 2) installs the operator + RuntimeClasses + + template + pool-manager. +4. **Enable the pool** — `warmPool.enabled=true` (default) pre-warms idle sandboxes. + +> Both labels are set via the environment overlays (`gitops/overlays/environments/dev`). +> They are commented out today until a kata MNG exists on the spokes. + +## Cost note + +Nested-virt `c8i`/`m8i` nodes are more expensive than the `c6*` Auto Mode +defaults. `min=0` scale-to-zero + the pool-manager's idle scale-down keep cost +proportional to actual sandbox activity — you pay for kata nodes only while a +sandbox is claimed/warming. + +## Teardown (spike lesson #2) + +Delete the **MNG first and let it drain** (set `min/desired=0` beforehand). Don't +terminate the instance out from under the MNG — the ASG respawns and can wedge +the delete on a `Pending:Wait` lifecycle hook. Recover with +`aws autoscaling terminate-instance-in-auto-scaling-group` + +`complete-lifecycle-action`. From d92f5affbedf08dda28caa148f08b6e52656e062 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 14:19:29 -0400 Subject: [PATCH 035/365] fix(bifrost): Fix OTEL plugin config (add config nesting, use gRPC :4317) The Bifrost OTEL plugin requires settings under 'config:' key with 'collector_url' (not 'endpoint') and 'protocol: grpc' on port 4317. Previous config was ignored by Bifrost because: - Settings were at wrong nesting level (missing config:) - Used 'endpoint' instead of 'collector_url' - Used HTTP/4318 instead of gRPC/4317 This fix enables Bifrost to export LLM call spans to the OTel Collector, completing the unified trace tree: Agent spans + Bifrost LLM spans merged under the same W3C traceparent. --- gitops/addons/charts/bifrost/values.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gitops/addons/charts/bifrost/values.yaml b/gitops/addons/charts/bifrost/values.yaml index 485ae569..98cce9ae 100644 --- a/gitops/addons/charts/bifrost/values.yaml +++ b/gitops/addons/charts/bifrost/values.yaml @@ -16,6 +16,8 @@ bifrost: plugins: otel: enabled: true - endpoint: "http://otel-collector.otel.svc.cluster.local:4318" - protocol: "http" - insecure: true + config: + service_name: "bifrost" + collector_url: "otel-collector.otel.svc.cluster.local:4317" + protocol: "grpc" + insecure: true From 047b2717689d68457ae973cfe7ae72d283a12070 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 14:22:50 -0400 Subject: [PATCH 036/365] fix(bifrost): Add version and trace_type to OTEL plugin config The upstream chart requires 'version: 1' and supports 'trace_type: genai_extension' for Gen AI semantic spans. --- gitops/addons/charts/bifrost/values.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gitops/addons/charts/bifrost/values.yaml b/gitops/addons/charts/bifrost/values.yaml index 98cce9ae..583d3415 100644 --- a/gitops/addons/charts/bifrost/values.yaml +++ b/gitops/addons/charts/bifrost/values.yaml @@ -16,8 +16,10 @@ bifrost: plugins: otel: enabled: true + version: 1 config: service_name: "bifrost" collector_url: "otel-collector.otel.svc.cluster.local:4317" + trace_type: "genai_extension" protocol: "grpc" insecure: true From 2ebeb05ff3bfdb8394c9985abe4431a9b97a76c2 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 14:27:23 -0400 Subject: [PATCH 037/365] fix(bifrost): Add otel plugin to default addon overlay The default/addons/bifrost/values.yaml plugins block overrides the chart's values.yaml. The otel plugin must be in both places for Helm merge to include it in the rendered ConfigMap. --- gitops/addons/default/addons/bifrost/values.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gitops/addons/default/addons/bifrost/values.yaml b/gitops/addons/default/addons/bifrost/values.yaml index ebeefe3b..af460283 100644 --- a/gitops/addons/default/addons/bifrost/values.yaml +++ b/gitops/addons/default/addons/bifrost/values.yaml @@ -95,6 +95,15 @@ bifrost: enabled: true logging: enabled: true + otel: + enabled: true + version: 1 + config: + service_name: "bifrost" + collector_url: "otel-collector.otel.svc.cluster.local:4317" + trace_type: "genai_extension" + protocol: "grpc" + insecure: true governance: budgets: From d4307aadc6c9b1701a6b07007016422f4f8ddfc1 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 14:33:07 -0400 Subject: [PATCH 038/365] docs(dark-factory): note native SandboxWarmPool CRD (pool-manager likely redundant) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live testing found the upstream operator ships sandboxwarmpools.extensions. agents.x-k8s.io (spec: replicas + sandboxTemplateRef) — a first-class warm-pool primitive. Our custom pool-manager CronJob is likely redundant; prefer a SandboxWarmPool CR. To reconcile after the live test. --- docs/dark-factory/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index d98a1f44..372933db 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -429,6 +429,12 @@ A throwaway 1-node `c8i.4xlarge` MNG was created on spoke-dev, then torn down. R *To resolve during implementation — flagged honestly rather than assumed:* +- **⚡ SIMPLIFICATION — use the operator's native `SandboxWarmPool`.** Live testing revealed the + upstream agent-sandbox operator ships a **`sandboxwarmpools.extensions.agents.x-k8s.io` CRD** + (`spec: {replicas, sandboxTemplateRef}`) — a first-class warm-pool primitive. Our custom + pool-manager CronJob (`41-poolmanager-cronjob.yaml`) is therefore likely **redundant**: create a + `SandboxWarmPool` CR instead and let the operator maintain the buffer. Keep the CronJob only for + the extra scale-to-zero/reap behaviors the CR may not cover. To reconcile after the live test. - **Headless auth** for Claude Code & Kiro through a Bifrost base-URL override inside a Kata VM (the biggest unknown — prototype first in P1). - **Import the `agent-sandbox` operator** from `eks-platform-openclaw` into the OAP addon catalog From f65e3cb4b70d74a71cc0bf4887378d30260b9386 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 14:38:28 -0400 Subject: [PATCH 039/365] fix(observability): Use opentelemetry-instrument for both modes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Always wrap with opentelemetry-instrument as the container command. This enables httpx auto-instrumentation which injects W3C traceparent headers into outbound HTTP calls (agent → Bifrost). Without this, Bifrost creates a separate trace instead of attaching as child spans. Centralized mode: traceparent propagated → Bifrost spans appear as children in the same Langfuse trace tree. Decentralized mode: ADOT distro activates → CW GenAI export. --- .../charts/oam-agent-components/templates/agent.yaml | 8 ++++---- platform/oam/definitions/components/agent.cue | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gitops/addons/charts/oam-agent-components/templates/agent.yaml b/gitops/addons/charts/oam-agent-components/templates/agent.yaml index 61e55f0a..768ae420 100644 --- a/gitops/addons/charts/oam-agent-components/templates/agent.yaml +++ b/gitops/addons/charts/oam-agent-components/templates/agent.yaml @@ -64,10 +64,10 @@ spec: containers: [{ name: "agent" image: parameter.image - // Decentralized mode: wrap with opentelemetry-instrument for ADOT auto-instrumentation - if parameter.observability.mode == "decentralized" { - command: ["opentelemetry-instrument", "python", "-m", "app.main"] - } + // Always use opentelemetry-instrument for auto-instrumentation: + // - Centralized: instruments httpx to propagate W3C traceparent to Bifrost + // - Decentralized: activates ADOT distro for CW GenAI export + command: ["opentelemetry-instrument", "python", "-m", "app.main"] ports: [{ name: "a2a" containerPort: 8083 diff --git a/platform/oam/definitions/components/agent.cue b/platform/oam/definitions/components/agent.cue index e2b6d062..55fea6a4 100644 --- a/platform/oam/definitions/components/agent.cue +++ b/platform/oam/definitions/components/agent.cue @@ -69,10 +69,10 @@ template: { containers: [{ name: "agent" image: parameter.image - // Decentralized mode: wrap with opentelemetry-instrument for ADOT auto-instrumentation - if parameter.observability.mode == "decentralized" { - command: ["opentelemetry-instrument", "python", "-m", "app.main"] - } + // Always use opentelemetry-instrument for auto-instrumentation: + // - Centralized: instruments httpx to propagate W3C traceparent to Bifrost + // - Decentralized: activates ADOT distro for CW GenAI export + command: ["opentelemetry-instrument", "python", "-m", "app.main"] ports: [{ name: "a2a" containerPort: 8083 From 47e04c4910e39d96aa1a5021219a1bc8e672dff5 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 14:40:12 -0400 Subject: [PATCH 040/365] fix(agent-sandbox): custom-AMI nodeadm needs apiServerEndpoint/CA/cidr (lesson #3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live test caught it: with a custom ImageId, nodeadm does NOT auto-discover the cluster API endpoint/CA and fails 'Apiserver endpoint is missing in cluster configuration' — node boots with /dev/kvm but never joins. Add apiServerEndpoint, certificateAuthority, and cidr to the NodeConfig in both the reference MIME userData and the Terraform (via aws_eks_cluster data source). Verified: terraform validate passes. --- .../kata-mng-launch-template-userdata.mime | 14 +++++++++++++- .../charts/agent-sandbox/nodepool/kata-mng.tf | 12 +++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime index f26bea82..96e8b1c9 100644 --- a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime +++ b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng-launch-template-userdata.mime @@ -19,12 +19,24 @@ Content-Type: application/node.eks.aws # nodeadm NodeConfig — this is what actually joins the node to the cluster. # CRITICAL (spike lesson #1): do NOT replace this with a plain-bash bootstrap or # a custom AMI without nodeadm — the node will boot with /dev/kvm but never -# register with the control plane. Substitute the real cluster name at render. +# register with the control plane. +# +# LESSON #3 (live test): when you supply a CUSTOM ImageId in the launch template, +# nodeadm does NOT auto-discover the cluster API endpoint/CA — you must set +# apiServerEndpoint, certificateAuthority, and cidr explicitly, or nodeadm fails +# with "Apiserver endpoint is missing in cluster configuration". (The default +# EKS AMI path injects these for you; a custom AMI does not.) Substitute the +# cluster name + the three cluster values at render: +# aws eks describe-cluster --name \ +# --query 'cluster.{e:endpoint,ca:certificateAuthority.data,cidr:kubernetesNetworkConfig.serviceIpv4Cidr}' apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: CLUSTER_NAME_PLACEHOLDER + apiServerEndpoint: API_SERVER_ENDPOINT_PLACEHOLDER + certificateAuthority: CERTIFICATE_AUTHORITY_DATA_PLACEHOLDER + cidr: SERVICE_IPV4_CIDR_PLACEHOLDER kubelet: flags: # Labels + taint applied at node birth so kata-deploy schedules and the diff --git a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf index c47b511e..71ae3439 100644 --- a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf +++ b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf @@ -34,9 +34,16 @@ data "aws_ssm_parameter" "al2023" { name = "/aws/service/eks/optimized-ami/1.35/amazon-linux-2023/x86_64/standard/recommended/image_id" } +# Cluster endpoint/CA/cidr — REQUIRED in the NodeConfig when using a custom AMI +# (lesson #3, live test): nodeadm does not auto-discover these with a custom +# ImageId and fails with "Apiserver endpoint is missing in cluster configuration". +data "aws_eks_cluster" "this" { + name = var.cluster_name +} + locals { # MIME userData: modprobe kvm_intel (so /dev/kvm exists) + nodeadm NodeConfig - # that joins the cluster with the kata labels/taint. See lesson #1 in §12a. + # that joins the cluster with the kata labels/taint. See §12a lessons #1 + #3. kata_userdata = base64encode(<<-MIME MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="//" @@ -56,6 +63,9 @@ locals { spec: cluster: name: ${var.cluster_name} + apiServerEndpoint: ${data.aws_eks_cluster.this.endpoint} + certificateAuthority: ${data.aws_eks_cluster.this.certificate_authority[0].data} + cidr: ${data.aws_eks_cluster.this.kubernetes_network_config[0].service_ipv4_cidr} kubelet: flags: - "--node-labels=kata-enabled=true,katacontainers.io/kata-runtime=true,node-type=kata-mng" From 4f8e2cae283f4600c7383c244d6425f4b7ec8d65 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 14:47:43 -0400 Subject: [PATCH 041/365] fix(observability): Move opentelemetry-instrument to Dockerfile CMD KubeVela drops container command/args overrides. Moving the opentelemetry-instrument wrapper into the Dockerfile CMD ensures it's always active regardless of how the CUE renders. This enables httpx auto-instrumentation which propagates W3C traceparent headers to Bifrost, correlating agent + Bifrost spans into a single trace tree. --- applications/strands-agent-base/Dockerfile | 6 ++++-- .../addons/charts/oam-agent-components/templates/agent.yaml | 4 ---- platform/oam/definitions/components/agent.cue | 4 ---- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/applications/strands-agent-base/Dockerfile b/applications/strands-agent-base/Dockerfile index 7f65b2bc..2267d5a7 100644 --- a/applications/strands-agent-base/Dockerfile +++ b/applications/strands-agent-base/Dockerfile @@ -39,5 +39,7 @@ EXPOSE 8083 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8083/ping')" -# Run application -CMD ["python", "-m", "app.main"] +# Run application with OpenTelemetry auto-instrumentation +# This enables W3C traceparent propagation to Bifrost (centralized mode) +# and ADOT distro activation (decentralized mode) +CMD ["opentelemetry-instrument", "python", "-m", "app.main"] diff --git a/gitops/addons/charts/oam-agent-components/templates/agent.yaml b/gitops/addons/charts/oam-agent-components/templates/agent.yaml index 768ae420..5676ceeb 100644 --- a/gitops/addons/charts/oam-agent-components/templates/agent.yaml +++ b/gitops/addons/charts/oam-agent-components/templates/agent.yaml @@ -64,10 +64,6 @@ spec: containers: [{ name: "agent" image: parameter.image - // Always use opentelemetry-instrument for auto-instrumentation: - // - Centralized: instruments httpx to propagate W3C traceparent to Bifrost - // - Decentralized: activates ADOT distro for CW GenAI export - command: ["opentelemetry-instrument", "python", "-m", "app.main"] ports: [{ name: "a2a" containerPort: 8083 diff --git a/platform/oam/definitions/components/agent.cue b/platform/oam/definitions/components/agent.cue index 55fea6a4..97ce6400 100644 --- a/platform/oam/definitions/components/agent.cue +++ b/platform/oam/definitions/components/agent.cue @@ -69,10 +69,6 @@ template: { containers: [{ name: "agent" image: parameter.image - // Always use opentelemetry-instrument for auto-instrumentation: - // - Centralized: instruments httpx to propagate W3C traceparent to Bifrost - // - Decentralized: activates ADOT distro for CW GenAI export - command: ["opentelemetry-instrument", "python", "-m", "app.main"] ports: [{ name: "a2a" containerPort: 8083 From 188d672beff11ce55210edbb428bb81d88eeb6df Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 14:51:49 -0400 Subject: [PATCH 042/365] docs(agent-sandbox): vpc-cni addon required for self-managed MNG on Auto Mode (lesson #4) Live test: Auto Mode clusters have no vpc-cni addon (built-in networking is Auto-Mode-nodes-only), so a self-managed kata MNG node joins but stays NotReady with 'cni plugin not initialized'. Fix: install the vpc-cni EKS addon; aws-node tolerates all taints and schedules onto the kata node. Verified: node went Ready + /dev/kvm present after installing vpc-cni. --- .../charts/agent-sandbox/nodepool/README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gitops/addons/charts/agent-sandbox/nodepool/README.md b/gitops/addons/charts/agent-sandbox/nodepool/README.md index 8b055867..2bd3807b 100644 --- a/gitops/addons/charts/agent-sandbox/nodepool/README.md +++ b/gitops/addons/charts/agent-sandbox/nodepool/README.md @@ -15,11 +15,25 @@ were validated by a live spike (see [`docs/dark-factory` §12a](../../../../../d | `kata-mng.tf` | Terraform launch template (`cpu_options.nested_virtualization=enabled`) + MNG — use when you need the nested-virt flag eksctl can't set. `terraform validate` passes. | | `kata-mng-launch-template-userdata.mime` | The AL2023 **nodeadm MIME** userData (modprobe kvm_intel + join). Reference for either path. | +## ⚠️ Prerequisite on EKS Auto Mode: install the `vpc-cni` addon + +**Auto Mode clusters have NO `vpc-cni` addon** — Auto Mode's built-in networking +only applies to its own managed nodes. A self-managed MNG node will join but stay +`NotReady` with `cni plugin not initialized` until you install the standard CNI: + +``` +aws eks create-addon --cluster-name --addon-name vpc-cni --resolve-conflicts OVERWRITE +``` + +`aws-node` tolerates all taints (`operator: Exists`), so it schedules onto the +tainted kata node automatically. (Discovered in live testing — lesson #4.) + ## Enablement sequence (per kata-capable cluster, e.g. spoke-dev) 1. **Provision the kata MNG** — apply the eksctl or Terraform manifest here. Nodes come up tainted `kata=true:NoSchedule`, labeled `kata-enabled=true`, with - `/dev/kvm` (nested-virt) and `min=0` scale-to-zero. + `/dev/kvm` (nested-virt) and `min=0` scale-to-zero. On Auto Mode, ensure the + `vpc-cni` addon is installed (see prerequisite above) or the node stays NotReady. 2. **Install the runtime** — label the cluster secret `enable_agent_sandbox_kata=true` so the `kata-deploy` ArgoCD app (sync-wave 1) installs the containerd handlers. 3. **Install the capability** — label `enable_agent_sandbox=true` so the From af0e08710a520c8e2588d689a6199f8f17e29bed Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 14:55:40 -0400 Subject: [PATCH 043/365] =?UTF-8?q?fix(main.py):=20Remove=20duplicate=20tr?= =?UTF-8?q?acer=20init=20=E2=80=94=20opentelemetry-instrument=20handles=20?= =?UTF-8?q?it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since Dockerfile CMD is now opentelemetry-instrument, the auto-instrumentation configures the tracer provider from OTEL_EXPORTER_OTLP_ENDPOINT env var. The manual StrandsTelemetry().setup_otlp_exporter() call created a conflicting second provider that swallowed spans. Only manual init needed: direct-to-Langfuse mode (LANGFUSE_BASE_URL set) where custom auth headers must be constructed. --- applications/strands-agent-base/app/main.py | 24 ++++++--------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/applications/strands-agent-base/app/main.py b/applications/strands-agent-base/app/main.py index 8296f3d5..5c2647ee 100644 --- a/applications/strands-agent-base/app/main.py +++ b/applications/strands-agent-base/app/main.py @@ -13,17 +13,13 @@ from .config import config # ── OpenTelemetry initialization ───────────────────────────────────────── -# Three modes (mutually exclusive, checked in order): -# 1. Decentralized (OTEL_PYTHON_DISTRO=aws_distro) — ADOT handles everything, -# agent exports directly to CloudWatch. No manual init needed. -# 2. Direct to Langfuse (LANGFUSE_BASE_URL set) — agent sends OTLP directly -# 3. Via Collector (OTEL_EXPORTER_OTLP_ENDPOINT set) — agent sends to local collector -if os.getenv("OTEL_PYTHON_DISTRO") == "aws_distro": - # Decentralized mode: ADOT auto-instrumentation handles telemetry. - # No manual StrandsTelemetry init — the aws_distro entry point - # configures exporters via env vars (CW Logs, X-Ray, CW Metrics). - pass -elif os.getenv("LANGFUSE_BASE_URL"): +# The Dockerfile CMD uses `opentelemetry-instrument` which auto-configures +# tracing via env vars (OTEL_EXPORTER_OTLP_ENDPOINT for centralized, +# OTEL_PYTHON_DISTRO for decentralized). No manual init needed in either mode. +# +# The only case requiring manual setup: direct-to-Langfuse (bypassing collector) +# where we need to construct the auth headers. +if os.getenv("LANGFUSE_BASE_URL"): try: import base64 from strands.telemetry import StrandsTelemetry @@ -37,12 +33,6 @@ strands_telemetry = StrandsTelemetry().setup_otlp_exporter() except ImportError: pass -elif os.getenv("OTEL_EXPORTER_OTLP_ENDPOINT"): - try: - from strands.telemetry import StrandsTelemetry - strands_telemetry = StrandsTelemetry().setup_otlp_exporter() - except ImportError: - pass logging.basicConfig( level=getattr(logging, config.LOG_LEVEL.upper()), From 3b7f41603966f03181e973f899de6ddc423c7368 Mon Sep 17 00:00:00 2001 From: shapirov103 Date: Fri, 10 Jul 2026 14:58:38 -0400 Subject: [PATCH 044/365] refactor(oam): agent keys off context.name; owns SA; identity via traits MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Drop name/namespace/serviceAccount params; use context.name/context.namespace everywhere (Rollout/Services/SA/container/AGENT_NAME/route). Component name is now the single identity across k8s, gateway (sub), AWS pod identity, and A2A. - Agent owns a dedicated ServiceAccount (context.name) — the anchor the gateway-identity/aws-service-identity traits attach to (traits can only read context.name, not parameter.name). - Examples: simple (gateway-identity trait), agentcore-memory (gateway-identity + aws-service-identity accessFor, replacing dp-service-account wiring). BREAKING: OAM Applications must drop properties.name/namespace; the component name + app namespace drive identity. --- .../oam-agent-components/templates/agent.yaml | 79 +++++++++++-------- platform/oam/definitions/components/agent.cue | 78 ++++++++++-------- .../example-agent-agentcore-memory.yaml | 40 +++++----- .../oam/examples/example-agent-simple.yaml | 43 +++++----- 4 files changed, 126 insertions(+), 114 deletions(-) diff --git a/gitops/addons/charts/oam-agent-components/templates/agent.yaml b/gitops/addons/charts/oam-agent-components/templates/agent.yaml index 5676ceeb..215a2806 100644 --- a/gitops/addons/charts/oam-agent-components/templates/agent.yaml +++ b/gitops/addons/charts/oam-agent-components/templates/agent.yaml @@ -1,4 +1,5 @@ # Code generated by KubeVela templates. DO NOT EDIT. Please edit the original cue file. +# # Code generated from CUE definitions. DO NOT EDIT. apiVersion: core.oam.dev/v1beta1 kind: ComponentDefinition metadata: @@ -36,18 +37,18 @@ spec: apiVersion: "argoproj.io/v1alpha1" kind: "Rollout" metadata: { - name: parameter.name - namespace: parameter.namespace + name: context.name + namespace: context.namespace labels: { - "app.kubernetes.io/name": parameter.name + "app.kubernetes.io/name": context.name "app.kubernetes.io/component": "ai-agent" } } spec: { replicas: parameter.replicas strategy: blueGreen: { - activeService: parameter.name + "-stable" - previewService: parameter.name + "-preview" + activeService: context.name + "-stable" + previewService: context.name + "-preview" autoPromotionEnabled: parameter.autoPromotionEnabled if parameter.autoPromotionSeconds != _|_ { autoPromotionSeconds: parameter.autoPromotionSeconds @@ -56,13 +57,13 @@ spec: scaleDownDelaySeconds: parameter.scaleDownDelaySeconds } } - selector: matchLabels: "app.kubernetes.io/name": parameter.name + selector: matchLabels: "app.kubernetes.io/name": context.name template: { - metadata: labels: "app.kubernetes.io/name": parameter.name + metadata: labels: "app.kubernetes.io/name": context.name spec: { - serviceAccountName: parameter.serviceAccount + serviceAccountName: context.name containers: [{ - name: "agent" + name: context.name image: parameter.image ports: [{ name: "a2a" @@ -70,7 +71,7 @@ spec: protocol: "TCP" }] env: [ - {name: "AGENT_NAME", value: parameter.name}, + {name: "AGENT_NAME", value: context.name}, {name: "AGENT_DESCRIPTION", value: parameter.description}, {name: "MODEL_ID", value: parameter.modelConfig.modelId}, {name: "SYSTEM_PROMPT", value: parameter.systemMessage}, @@ -78,7 +79,7 @@ spec: {name: "LLM_GATEWAY_URL", value: parameter.modelConfig.llmGatewayUrl}, {name: "LLM_GATEWAY_API_KEY", value: parameter.modelConfig.llmGatewayApiKey}, // Observability env vars — mode-dependent - {name: "OTEL_SERVICE_NAME", value: parameter.name}, + {name: "OTEL_SERVICE_NAME", value: context.name}, {name: "OTEL_TRACES_EXPORTER", value: "otlp"}, if parameter.observability.mode == "centralized" { {name: "OTEL_EXPORTER_OTLP_ENDPOINT", value: "http://otel-collector.otel.svc.cluster.local:4318"} @@ -93,7 +94,7 @@ spec: {name: "OTEL_EXPORTER_OTLP_PROTOCOL", value: "http/protobuf"} }, if parameter.observability.mode == "decentralized" { - {name: "OTEL_RESOURCE_ATTRIBUTES", value: "service.name=" + parameter.name} + {name: "OTEL_RESOURCE_ATTRIBUTES", value: "service.name=" + context.name} }, if parameter.observability.mode == "decentralized" { {name: "AGENT_OBSERVABILITY_ENABLED", value: "true"} @@ -137,17 +138,30 @@ spec: } outputs: { + // Dedicated ServiceAccount — the agent's single identity anchor. The + // gateway-identity and aws-service-identity traits attach their + // capabilities to this SA (name == context.name). + serviceAccount: { + apiVersion: "v1" + kind: "ServiceAccount" + metadata: { + name: context.name + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name + } + } + // Stable service (active) stableService: { apiVersion: "v1" kind: "Service" metadata: { - name: parameter.name + "-stable" - namespace: parameter.namespace - labels: "app.kubernetes.io/name": parameter.name + name: context.name + "-stable" + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name } spec: { - selector: "app.kubernetes.io/name": parameter.name + selector: "app.kubernetes.io/name": context.name ports: [{ name: "a2a", port: 8083, targetPort: 8083, protocol: "TCP" appProtocol: "kgateway.dev/a2a" @@ -161,12 +175,12 @@ spec: apiVersion: "v1" kind: "Service" metadata: { - name: parameter.name + "-preview" - namespace: parameter.namespace - labels: "app.kubernetes.io/name": parameter.name + name: context.name + "-preview" + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name } spec: { - selector: "app.kubernetes.io/name": parameter.name + selector: "app.kubernetes.io/name": context.name ports: [{ name: "a2a", port: 8083, targetPort: 8083, protocol: "TCP" appProtocol: "kgateway.dev/a2a" @@ -180,15 +194,15 @@ spec: apiVersion: "v1" kind: "ConfigMap" metadata: { - name: parameter.name + "-card" - namespace: parameter.namespace + name: context.name + "-card" + namespace: context.namespace labels: { - "app.kubernetes.io/name": parameter.name + "app.kubernetes.io/name": context.name "agent.dev/type": "agent-card" } } data: { - name: parameter.name + name: context.name description: parameter.description model: parameter.modelConfig.modelId } @@ -206,9 +220,9 @@ spec: apiVersion: "gateway.networking.k8s.io/v1" kind: "HTTPRoute" metadata: { - name: parameter.name - namespace: parameter.namespace - labels: "app.kubernetes.io/name": parameter.name + name: context.name + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name } spec: { parentRefs: [{ @@ -219,7 +233,7 @@ spec: matches: [{ path: { type: "PathPrefix" - value: "/" + parameter.name + value: "/" + context.name } }] filters: [{ @@ -230,9 +244,9 @@ spec: } }] backendRefs: [{ - name: parameter.name + "-stable" + name: context.name + "-stable" port: 8083 - namespace: parameter.namespace + namespace: context.namespace }] }] } @@ -243,8 +257,6 @@ spec: parameter: { // Required fields - name: string - namespace: string description: string systemMessage: string @@ -252,8 +264,7 @@ spec: image: *"public.ecr.aws/z0a4o2j5/strands-agent:latest" | string // Optional fields with defaults - replicas: *3 | int - serviceAccount: *"default" | string + replicas: *3 | int // Blue-green deployment settings autoPromotionEnabled: *true | bool diff --git a/platform/oam/definitions/components/agent.cue b/platform/oam/definitions/components/agent.cue index 97ce6400..dc767b51 100644 --- a/platform/oam/definitions/components/agent.cue +++ b/platform/oam/definitions/components/agent.cue @@ -37,18 +37,18 @@ template: { apiVersion: "argoproj.io/v1alpha1" kind: "Rollout" metadata: { - name: parameter.name - namespace: parameter.namespace + name: context.name + namespace: context.namespace labels: { - "app.kubernetes.io/name": parameter.name + "app.kubernetes.io/name": context.name "app.kubernetes.io/component": "ai-agent" } } spec: { replicas: parameter.replicas strategy: blueGreen: { - activeService: parameter.name + "-stable" - previewService: parameter.name + "-preview" + activeService: context.name + "-stable" + previewService: context.name + "-preview" autoPromotionEnabled: parameter.autoPromotionEnabled if parameter.autoPromotionSeconds != _|_ { autoPromotionSeconds: parameter.autoPromotionSeconds @@ -58,16 +58,16 @@ template: { } } selector: matchLabels: { - "app.kubernetes.io/name": parameter.name + "app.kubernetes.io/name": context.name } template: { metadata: labels: { - "app.kubernetes.io/name": parameter.name + "app.kubernetes.io/name": context.name } spec: { - serviceAccountName: parameter.serviceAccount + serviceAccountName: context.name containers: [{ - name: "agent" + name: context.name image: parameter.image ports: [{ name: "a2a" @@ -75,7 +75,7 @@ template: { protocol: "TCP" }] env: [ - {name: "AGENT_NAME", value: parameter.name}, + {name: "AGENT_NAME", value: context.name}, {name: "AGENT_DESCRIPTION", value: parameter.description}, {name: "MODEL_ID", value: parameter.modelConfig.modelId}, {name: "SYSTEM_PROMPT", value: parameter.systemMessage}, @@ -83,7 +83,7 @@ template: { {name: "LLM_GATEWAY_URL", value: parameter.modelConfig.llmGatewayUrl}, {name: "LLM_GATEWAY_API_KEY", value: parameter.modelConfig.llmGatewayApiKey}, // Observability env vars — mode-dependent - {name: "OTEL_SERVICE_NAME", value: parameter.name}, + {name: "OTEL_SERVICE_NAME", value: context.name}, {name: "OTEL_TRACES_EXPORTER", value: "otlp"}, if parameter.observability.mode == "centralized" { {name: "OTEL_EXPORTER_OTLP_ENDPOINT", value: "http://otel-collector.otel.svc.cluster.local:4318"} @@ -98,7 +98,7 @@ template: { {name: "OTEL_EXPORTER_OTLP_PROTOCOL", value: "http/protobuf"} }, if parameter.observability.mode == "decentralized" { - {name: "OTEL_RESOURCE_ATTRIBUTES", value: "service.name=" + parameter.name} + {name: "OTEL_RESOURCE_ATTRIBUTES", value: "service.name=" + context.name} }, if parameter.observability.mode == "decentralized" { {name: "AGENT_OBSERVABILITY_ENABLED", value: "true"} @@ -142,17 +142,30 @@ template: { } outputs: { + // Dedicated ServiceAccount — the agent's single identity anchor. The + // gateway-identity and aws-service-identity traits attach their + // capabilities to this SA (name == context.name). + serviceAccount: { + apiVersion: "v1" + kind: "ServiceAccount" + metadata: { + name: context.name + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name + } + } + // Stable service (active) stableService: { apiVersion: "v1" kind: "Service" metadata: { - name: parameter.name + "-stable" - namespace: parameter.namespace - labels: "app.kubernetes.io/name": parameter.name + name: context.name + "-stable" + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name } spec: { - selector: "app.kubernetes.io/name": parameter.name + selector: "app.kubernetes.io/name": context.name ports: [{ name: "a2a", port: 8083, targetPort: 8083, protocol: "TCP" appProtocol: "kgateway.dev/a2a" @@ -166,12 +179,12 @@ template: { apiVersion: "v1" kind: "Service" metadata: { - name: parameter.name + "-preview" - namespace: parameter.namespace - labels: "app.kubernetes.io/name": parameter.name + name: context.name + "-preview" + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name } spec: { - selector: "app.kubernetes.io/name": parameter.name + selector: "app.kubernetes.io/name": context.name ports: [{ name: "a2a", port: 8083, targetPort: 8083, protocol: "TCP" appProtocol: "kgateway.dev/a2a" @@ -185,15 +198,15 @@ template: { apiVersion: "v1" kind: "ConfigMap" metadata: { - name: parameter.name + "-card" - namespace: parameter.namespace + name: context.name + "-card" + namespace: context.namespace labels: { - "app.kubernetes.io/name": parameter.name + "app.kubernetes.io/name": context.name "agent.dev/type": "agent-card" } } data: { - name: parameter.name + name: context.name description: parameter.description model: parameter.modelConfig.modelId } @@ -211,9 +224,9 @@ template: { apiVersion: "gateway.networking.k8s.io/v1" kind: "HTTPRoute" metadata: { - name: parameter.name - namespace: parameter.namespace - labels: "app.kubernetes.io/name": parameter.name + name: context.name + namespace: context.namespace + labels: "app.kubernetes.io/name": context.name } spec: { parentRefs: [{ @@ -224,7 +237,7 @@ template: { matches: [{ path: { type: "PathPrefix" - value: "/" + parameter.name + value: "/" + context.name } }] filters: [{ @@ -235,9 +248,9 @@ template: { } }] backendRefs: [{ - name: parameter.name + "-stable" + name: context.name + "-stable" port: 8083 - namespace: parameter.namespace + namespace: context.namespace }] }] } @@ -248,8 +261,6 @@ template: { parameter: { // Required fields - name: string - namespace: string description: string systemMessage: string @@ -257,8 +268,7 @@ template: { image: *"public.ecr.aws/z0a4o2j5/strands-agent:latest" | string // Optional fields with defaults - replicas: *3 | int - serviceAccount: *"default" | string + replicas: *3 | int // Blue-green deployment settings autoPromotionEnabled: *true | bool diff --git a/platform/oam/examples/example-agent-agentcore-memory.yaml b/platform/oam/examples/example-agent-agentcore-memory.yaml index 62930f15..4c20eb6c 100644 --- a/platform/oam/examples/example-agent-agentcore-memory.yaml +++ b/platform/oam/examples/example-agent-agentcore-memory.yaml @@ -1,13 +1,13 @@ -# Example: Agent with AgentCore memory provisioned via Crossplane managed resource +# Example: Agent with AgentCore memory, using identity traits (no dp-service-account). # # Flow: -# 1. agentcore-memory provisions a Memory via Crossplane bedrockagentcore provider, -# and emits a ComponentPolicy claim for IAM permissions. -# The memoryId is passed to the agent via outputs/inputs. -# 2. dp-service-account creates IAM Role + ServiceAccount + PodIdentityAssociation, -# then emits PolicyAttachment claims to wire the permissions -# 3. agent references the ServiceAccount and gets AWS credentials via pod identity -# +# 1. agentcore-memory provisions a Memory via Crossplane and emits an IAM policy +# (--iam-policy) for accessing it; memoryId is passed to the agent. +# 2. The agent owns its ServiceAccount (context.name). The aws-service-identity trait +# creates the IAM role + PodIdentityAssociation via the XPodIdentity Composition +# (clusterName/region resolved from the env-config EnvironmentConfig — no params) +# and attaches the memory policy via accessFor. +# 3. The gateway-identity trait gives the agent a projected token for AgentGateway/MCP. apiVersion: core.oam.dev/v1beta1 kind: Application metadata: @@ -25,30 +25,28 @@ spec: description: "Memory for my-agent" eventExpiryDuration: 30 - - name: my-agent-sa - type: dp-service-account - properties: - componentNamesForAccess: - - agentcore-short-memory - clusterName: hub - clusterRegion: us-west-2 - - - name: my-agent-with-mem + # Component name (my-agent) is the identity: Rollout/Service/SA/container all + # named my-agent; the traits attach AWS + gateway identity to that same SA. + - name: my-agent type: agent dependsOn: - - my-agent-sa - agentcore-short-memory inputs: - from: memory-id parameterKey: properties.memory.config.memoryId properties: - name: my-agent - namespace: agents description: "Assistant agent with persistent memory" systemMessage: "You are a helpful assistant." - serviceAccount: my-agent-sa memory: provider: agentcore config: memoryId: "injected-from-agentcore-memory-output" region: us-west-2 + traits: + # Secretless identity to AgentGateway/MCP. + - type: gateway-identity + # Secretless AWS IAM identity (EKS Pod Identity); attach the memory policy. + - type: aws-service-identity + properties: + accessFor: + - agentcore-short-memory diff --git a/platform/oam/examples/example-agent-simple.yaml b/platform/oam/examples/example-agent-simple.yaml index 0b13e431..587f43ab 100644 --- a/platform/oam/examples/example-agent-simple.yaml +++ b/platform/oam/examples/example-agent-simple.yaml @@ -2,51 +2,40 @@ apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: my-assistant - namespace: default + namespace: default # → context.namespace for the component's resources spec: components: - - name: assistant + # The component name IS the agent's identity (context.name): it names the + # Rollout, Services, ServiceAccount, container, AGENT_NAME and gateway route. + - name: oap-assistant-a type: agent properties: - name: oap-assistant-a - namespace: default description: "General purpose AI assistant with A2A protocol support" - - # agent image - # image: 498530348755.dkr.ecr.us-west-2.amazonaws.com/strands-agent:latest - - # Multiple replicas with consistent hashing + + # agent image (defaults to the public strands-agent image) + # image: public.ecr.aws/z0a4o2j5/strands-agent:latest + replicas: 3 - - # System prompt + systemMessage: | You are a helpful AI assistant with access to various tools and capabilities. You can help with general questions, data analysis, and task automation. Always be clear, concise, and helpful in your responses. When asked about time use the tools. - - # Model configuration + modelConfig: modelId: claude-sonnet - - # Service account for AWS permissions (if needed) - serviceAccount: default - + # Blue-green deployment settings autoPromotionEnabled: true autoPromotionSeconds: 10 scaleDownDelaySeconds: 30 - + # AgentGateway registration registerWithGateway: true - # Memory — AgentCore (native Strands session manager, not mem0) - # memory: - # provider: agentcore - # config: - # memoryId: my-agentcore-mem - # region: us-west-2 + mcpServers: - name: mcp-time - # Resource limits + resources: requests: cpu: 500m @@ -54,3 +43,7 @@ spec: limits: cpu: 1000m memory: 1Gi + traits: + # Secretless identity to AgentGateway/MCP: projected ServiceAccount token + # (audience agentgateway) validated by the gateway against the cluster OIDC. + - type: gateway-identity From 3bffdac8a606c2d34f1cd5d2c9f5b328d39047d6 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 15:00:57 -0400 Subject: [PATCH 045/365] =?UTF-8?q?docs(dark-factory):=20live-test=20resul?= =?UTF-8?q?ts=20=E2=80=94=204=20fixes=20validated=20+=20kata-deploy=20open?= =?UTF-8?q?=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two live tests on spoke-dev proved: MNG+Auto-Mode coexistence, /dev/kvm, node joins Ready (with nodeadm endpoint/CA fix + vpc-cni addon). kata-deploy itself crashloops on Auto Mode due to the experimental nydus snapshotter restarting containerd + dropping CNI mid-run (lesson #5, fix: disable nydus). Also noted the top-level-vs-nested kata-deploy values gotcha for direct helm installs. --- docs/dark-factory/README.md | 44 ++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index 372933db..4a4bb551 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -402,26 +402,44 @@ Rejected alternatives: **Bedrock AgentCore / Fargate** (breaks the k8s-native po Sandbox/warm-pool/claim design depends on — it's an invoke-a-session runtime, not a pod we own); **gVisor** (same Auto-Mode node-install blocker as Kata, weaker isolation). -### ✅ Validated by a live spike (spoke-dev, 2026-07-10) +### ✅ Validated by two live tests (spoke-dev, 2026-07-10) -A throwaway 1-node `c8i.4xlarge` MNG was created on spoke-dev, then torn down. Results: +A `c8i.4xlarge` kata MNG was created on spoke-dev, exercised, then torn down. Results: | Question | Result | |---|---| -| Self-managed MNG coexists with Auto Mode? | **Yes** — MNG provisioned alongside Auto Mode nodepools, no conflict; Auto Mode stayed healthy | -| Nested virtualization / `/dev/kvm`? | **Yes** — `/dev/kvm` present, `kvm_intel` loaded, 32 `vmx` flags, via `CpuOptions.NestedVirtualization: enabled` | -| aws-cli support | Requires **aws-cli ≥ 2.35** for the `CpuOptions.NestedVirtualization` launch-template field | +| Self-managed MNG coexists with Auto Mode? | **✅ Yes** — MNG provisioned alongside Auto Mode nodepools, no conflict; Auto Mode stayed healthy | +| Nested virtualization / `/dev/kvm`? | **✅ Yes** — `/dev/kvm` present, `kvm_intel` loaded, 32 `vmx` flags, via `CpuOptions.NestedVirtualization: enabled` | +| Node joins the cluster & goes Ready? | **✅ Yes** — with the fixes below (nodeadm endpoint/CA + vpc-cni addon) | +| Kata runtime install (kata-deploy)? | **⚠️ Partial** — kata-deploy schedules on the kata node but crashloops on Auto Mode; see lesson #5 | -### Two hard-won lessons (baked into the implementation) +### Hard-won lessons (baked into the implementation) 1. **Node bootstrap** — do **not** override the AMI + userData with plain bash; that clobbers the - EKS bootstrap and the node boots (`/dev/kvm` present) but never joins the cluster. Use the - **AL2023 nodeadm MIME userData** format (or the default EKS AMI + a systemd unit that runs - `modprobe kvm_intel`), and set nested-virt via the **launch-template `CpuOptions`**, not userData. -2. **Teardown ordering** — delete the **MNG first and let it drain**. Terminating the instance out - from under the MNG makes the ASG respawn and can wedge the delete on a `Pending:Wait` lifecycle - hook; recover with `aws autoscaling terminate-instance-in-auto-scaling-group` + - `complete-lifecycle-action`. Set MNG min/desired to 0 before deleting for a clean teardown. + EKS bootstrap and the node boots (`/dev/kvm` present) but never joins. Use the **AL2023 nodeadm + MIME userData**, and set nested-virt via the launch-template `CpuOptions`, not userData. +2. **Teardown ordering** — delete the **MNG first and let it drain** (set min/desired=0 first). + Terminating the instance out from under the MNG makes the ASG respawn and can wedge the delete on + a `Pending:Wait` lifecycle hook; recover with `terminate-instance-in-auto-scaling-group` + + `complete-lifecycle-action`. +3. **Custom-AMI nodeadm needs cluster coordinates** — with a custom `ImageId`, nodeadm can't + auto-discover the API; you must set `apiServerEndpoint` + `certificateAuthority` + `cidr` in the + NodeConfig, or it fails "Apiserver endpoint is missing in cluster configuration". +4. **Auto Mode has no `vpc-cni`** — self-managed MNG nodes stay `NotReady` (`cni plugin not + initialized`) until you install the `vpc-cni` EKS addon. `aws-node` tolerates all taints and + schedules onto the kata node once installed. +5. **kata-deploy on Auto Mode (open item)** — the upstream kata-deploy chart defaults to the + **experimental nydus snapshotter** (`EXPERIMENTAL_SETUP_SNAPSHOTTER=nydus`), which restarts + containerd and briefly drops CNI networking; kata-deploy then fails its own API call + (`Failed to get node ... client error (Connect)`) and crashloops before installing the runtime. + Fix to apply next: disable the experimental nydus snapshotter (openclaw uses overlayfs) and/or + raise kata-deploy's API-retry tolerance. Everything *up to* the runtime install is proven; the + runtime install itself needs this one chart-tuning fix. + +Also fixed during testing: the kata-deploy Helm values are **top-level** (`nodeSelector`, +`tolerations`, `shims`) for a direct install — the nested `kata-deploy:` key only applies when it's +a subchart. Our catalog entry uses the nested form (correct, since ArgoCD deploys it as its own +app), but a direct `helm install` must use top-level values. --- From cf6d0941ac71077727e8b55b5c301d398e058330 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 15:01:07 -0400 Subject: [PATCH 046/365] fix(otel): Disable metrics/logs exporter for centralized mode opentelemetry-instrument exports metrics and logs by default to the same OTLP endpoint. The OTel Collector only has a traces pipeline, so metrics export returns 404. Setting OTEL_METRICS_EXPORTER=none and OTEL_LOGS_EXPORTER=none for centralized mode stops the errors. Decentralized mode keeps metrics/logs enabled (CloudWatch handles them). --- .../addons/charts/oam-agent-components/templates/agent.yaml | 6 ++++++ platform/oam/definitions/components/agent.cue | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gitops/addons/charts/oam-agent-components/templates/agent.yaml b/gitops/addons/charts/oam-agent-components/templates/agent.yaml index 215a2806..af8f7b62 100644 --- a/gitops/addons/charts/oam-agent-components/templates/agent.yaml +++ b/gitops/addons/charts/oam-agent-components/templates/agent.yaml @@ -81,6 +81,12 @@ spec: // Observability env vars — mode-dependent {name: "OTEL_SERVICE_NAME", value: context.name}, {name: "OTEL_TRACES_EXPORTER", value: "otlp"}, + if parameter.observability.mode == "centralized" { + {name: "OTEL_METRICS_EXPORTER", value: "none"} + }, + if parameter.observability.mode == "centralized" { + {name: "OTEL_LOGS_EXPORTER", value: "none"} + }, if parameter.observability.mode == "centralized" { {name: "OTEL_EXPORTER_OTLP_ENDPOINT", value: "http://otel-collector.otel.svc.cluster.local:4318"} }, diff --git a/platform/oam/definitions/components/agent.cue b/platform/oam/definitions/components/agent.cue index dc767b51..dba6e88e 100644 --- a/platform/oam/definitions/components/agent.cue +++ b/platform/oam/definitions/components/agent.cue @@ -85,6 +85,12 @@ template: { // Observability env vars — mode-dependent {name: "OTEL_SERVICE_NAME", value: context.name}, {name: "OTEL_TRACES_EXPORTER", value: "otlp"}, + if parameter.observability.mode == "centralized" { + {name: "OTEL_METRICS_EXPORTER", value: "none"} + }, + if parameter.observability.mode == "centralized" { + {name: "OTEL_LOGS_EXPORTER", value: "none"} + }, if parameter.observability.mode == "centralized" { {name: "OTEL_EXPORTER_OTLP_ENDPOINT", value: "http://otel-collector.otel.svc.cluster.local:4318"} }, From a3e6ca8bae6cc93de0b49bf5aa0974e9691fb39d Mon Sep 17 00:00:00 2001 From: shapirov103 Date: Fri, 10 Jul 2026 15:02:35 -0400 Subject: [PATCH 047/365] docs(oam): update remaining agent examples to context.name + identity traits Drop properties.name/namespace/serviceAccount; attach gateway-identity where the agent uses the gateway/MCP; decentralized-observability attaches the observability identity trait. Aligns all examples with the refactored agent component. --- ...ample-agent-centralized-observability.yaml | 2 -- ...ple-agent-decentralized-observability.yaml | 5 +-- .../examples/example-agent-milvus-memory.yaml | 7 +++-- .../oam/examples/example-agent-minimal.yaml | 19 +++++------- .../oam/examples/example-agent-with-mcp.yaml | 31 +++++++------------ 5 files changed, 25 insertions(+), 39 deletions(-) diff --git a/platform/oam/examples/example-agent-centralized-observability.yaml b/platform/oam/examples/example-agent-centralized-observability.yaml index a7a05ac9..74557a42 100644 --- a/platform/oam/examples/example-agent-centralized-observability.yaml +++ b/platform/oam/examples/example-agent-centralized-observability.yaml @@ -23,8 +23,6 @@ spec: - name: my-agent type: agent properties: - name: my-agent - namespace: default description: "Agent with centralized observability (Langfuse)" replicas: 1 systemMessage: "You are a helpful assistant." diff --git a/platform/oam/examples/example-agent-decentralized-observability.yaml b/platform/oam/examples/example-agent-decentralized-observability.yaml index a0fa41ed..1b67336b 100644 --- a/platform/oam/examples/example-agent-decentralized-observability.yaml +++ b/platform/oam/examples/example-agent-decentralized-observability.yaml @@ -24,8 +24,6 @@ spec: - name: my-cw-agent type: agent properties: - name: my-cw-agent - namespace: default description: "Agent with CloudWatch GenAI observability" replicas: 1 systemMessage: "You are a helpful assistant." @@ -42,3 +40,6 @@ spec: limits: cpu: 500m memory: 512Mi + traits: + # CloudWatch/X-Ray IAM identity for ADOT export (EKS Pod Identity). + - type: decentralized-observability-identity diff --git a/platform/oam/examples/example-agent-milvus-memory.yaml b/platform/oam/examples/example-agent-milvus-memory.yaml index b8de701a..45e14e76 100644 --- a/platform/oam/examples/example-agent-milvus-memory.yaml +++ b/platform/oam/examples/example-agent-milvus-memory.yaml @@ -8,8 +8,6 @@ spec: - name: assistant type: agent properties: - name: assistant - namespace: agents description: "AI assistant with Milvus-backed mem0 memory" systemMessage: | @@ -19,7 +17,7 @@ spec: modelConfig: modelId: claude-sonnet - # Memory — mem0 with Milvus vector store + # Memory — mem0 with Milvus vector store (in-cluster; no AWS identity needed) memory: provider: milvus config: @@ -35,3 +33,6 @@ spec: limits: cpu: 1000m memory: 1Gi + traits: + # Secretless identity to AgentGateway/MCP. + - type: gateway-identity diff --git a/platform/oam/examples/example-agent-minimal.yaml b/platform/oam/examples/example-agent-minimal.yaml index bc60abd8..39d082f7 100644 --- a/platform/oam/examples/example-agent-minimal.yaml +++ b/platform/oam/examples/example-agent-minimal.yaml @@ -5,20 +5,15 @@ metadata: namespace: default spec: components: + # Component name is the agent identity (context.name). - name: simple-agent type: agent properties: - name: simple-agent - namespace: default description: "Minimal AI assistant configuration" - - # Only required fields + # Only required field systemMessage: "You are a helpful AI assistant." - - # Everything else uses defaults: - # - image: 498530348755.dkr.ecr.us-east-1.amazonaws.com/strands-agent:latest - # - replicas: 3 - # - modelId: claude-sonnet - # - llmGatewayUrl: http://bifrost.bifrost.svc.cluster.local:8080/v1 - # - autoPromotionEnabled: true - # - registerWithGateway: true + # Everything else uses defaults (image, replicas, modelId=claude-sonnet, + # llmGatewayUrl, autoPromotionEnabled, registerWithGateway). + traits: + # Secretless identity to AgentGateway/MCP. + - type: gateway-identity diff --git a/platform/oam/examples/example-agent-with-mcp.yaml b/platform/oam/examples/example-agent-with-mcp.yaml index e106ab3c..55adb740 100644 --- a/platform/oam/examples/example-agent-with-mcp.yaml +++ b/platform/oam/examples/example-agent-with-mcp.yaml @@ -5,46 +5,34 @@ metadata: namespace: default spec: components: - - name: memory - type: memory - name: tool-agent type: agent properties: - name: tool-agent - namespace: default description: "AI assistant with MCP tool integration" - + replicas: 3 - + systemMessage: | You are an AI assistant with access to various tools via MCP. You can check weather, search the web, and perform calculations. Use tools when appropriate to provide accurate information. - + modelConfig: modelId: claude-sonnet - region: us-west-2 llmGatewayUrl: http://bifrost.bifrost.svc.cluster.local:8080/v1 - llmGatewayApiKey: sk-1234 - - # MCP tool servers + + # MCP tool servers (reached through AgentGateway) mcpServers: - name: weather-tools - name: web-search - name: calculator - agents: - - name: design-agent - - - serviceAccount: default - + autoPromotionEnabled: true autoPromotionSeconds: 10 scaleDownDelaySeconds: 30 - + registerWithGateway: true - gatewayNamespace: agentgateway-system - + resources: requests: cpu: 500m @@ -52,3 +40,6 @@ spec: limits: cpu: 1000m memory: 1Gi + traits: + # Secretless identity to AgentGateway/MCP. + - type: gateway-identity From 38e5b37c95bfb34514ba33704cc367c0c0cf6b71 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 15:05:00 -0400 Subject: [PATCH 048/365] docs(agent-sandbox): document kata-deploy vs VPC-CNI Auto Mode blocker + options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live test confirmed: kata-deploy restarts containerd → drops the aws-node CNI on the same node → its own API call fails → crashloop before install completes. Disabling nydus snapshotter did not help (the restart is the trigger). Everything up to runtime install is proven. Options: bake Kata into a custom AMI (Packer), use openclaw's self-managed Karpenter model, or a no-restart containerd config. --- .../charts/agent-sandbox/nodepool/README.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gitops/addons/charts/agent-sandbox/nodepool/README.md b/gitops/addons/charts/agent-sandbox/nodepool/README.md index 2bd3807b..838eb96f 100644 --- a/gitops/addons/charts/agent-sandbox/nodepool/README.md +++ b/gitops/addons/charts/agent-sandbox/nodepool/README.md @@ -28,6 +28,31 @@ aws eks create-addon --cluster-name --addon-name vpc-cni --resolve-con `aws-node` tolerates all taints (`operator: Exists`), so it schedules onto the tainted kata node automatically. (Discovered in live testing — lesson #4.) +## ⚠️ Known blocker: kata-deploy vs the VPC-CNI on Auto Mode (lesson #5) + +Live testing found kata-deploy **crashloops** on a self-managed MNG node in an +Auto Mode cluster and never finishes installing the runtime. Root cause: kata-deploy +patches containerd and **restarts it**; because the VPC-CNI runs as `aws-node` pods +*on that same containerd*, the restart briefly drops node networking, and +kata-deploy's next Kubernetes API call fails (`Failed to get node ... client error +(Connect)`) → the pod exits and CrashLoopBackOffs *before* completing the install. +Disabling the experimental nydus snapshotter (`snapshotter.setup: []`) did **not** +resolve it — the containerd restart itself is the trigger. + +**Everything up to the runtime install is proven** (node joins Ready, `/dev/kvm`, +kata labels/taint, kata-deploy schedules only on the kata node). Options to finish: + +1. **Bake Kata into a custom AMI** (Packer) so no on-node containerd patch/restart is + needed at runtime — the most robust path on Auto Mode clusters. +2. **Follow openclaw's model** — a self-managed Karpenter (not Auto Mode) where the + CNI/containerd lifecycle is fully controlled and kata-deploy's restart is tolerated. +3. Investigate a kata-deploy mode that configures containerd **without a full restart**, + or pin `aws-node` to not depend on the restarted containerd during install. + +This is a **kata-deploy-on-Auto-Mode** integration issue, not a flaw in the +`agent-sandbox` chart (operator/RuntimeClasses/template/pool-manager all render and +apply fine). + ## Enablement sequence (per kata-capable cluster, e.g. spoke-dev) 1. **Provision the kata MNG** — apply the eksctl or Terraform manifest here. Nodes From fb34739a7b354d04649b5ff60f08f8a9e99f9bb3 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 15:08:19 -0400 Subject: [PATCH 049/365] fix(main.py): Restore StrandsTelemetry init for centralized mode opentelemetry-instrument provides httpx auto-instrumentation (traceparent propagation) but does NOT create Strands-specific spans (agent invocations, tool calls). StrandsTelemetry().setup_otlp_exporter() is needed to activate the Strands tracer which uses the same OTLP exporter configured by env vars. Both coexist: opentelemetry-instrument handles HTTP context propagation, StrandsTelemetry handles Strands SDK span creation. --- applications/strands-agent-base/app/main.py | 24 +++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/applications/strands-agent-base/app/main.py b/applications/strands-agent-base/app/main.py index 5c2647ee..fefb4e7b 100644 --- a/applications/strands-agent-base/app/main.py +++ b/applications/strands-agent-base/app/main.py @@ -13,13 +13,19 @@ from .config import config # ── OpenTelemetry initialization ───────────────────────────────────────── -# The Dockerfile CMD uses `opentelemetry-instrument` which auto-configures -# tracing via env vars (OTEL_EXPORTER_OTLP_ENDPOINT for centralized, -# OTEL_PYTHON_DISTRO for decentralized). No manual init needed in either mode. +# Dockerfile CMD uses `opentelemetry-instrument` which auto-instruments httpx +# (for W3C traceparent propagation to Bifrost). But Strands agent spans require +# StrandsTelemetry to be initialized separately — it uses the same tracer provider +# that opentelemetry-instrument configured via OTEL_EXPORTER_OTLP_ENDPOINT. # -# The only case requiring manual setup: direct-to-Langfuse (bypassing collector) -# where we need to construct the auth headers. -if os.getenv("LANGFUSE_BASE_URL"): +# Modes: +# - Centralized: setup_otlp_exporter() creates Strands spans → collector → Langfuse +# - Decentralized (OTEL_PYTHON_DISTRO=aws_distro): ADOT handles everything +# - Direct to Langfuse (LANGFUSE_BASE_URL): manual auth headers +if os.getenv("OTEL_PYTHON_DISTRO") == "aws_distro": + # Decentralized: ADOT distro handles all telemetry + pass +elif os.getenv("LANGFUSE_BASE_URL"): try: import base64 from strands.telemetry import StrandsTelemetry @@ -33,6 +39,12 @@ strands_telemetry = StrandsTelemetry().setup_otlp_exporter() except ImportError: pass +elif os.getenv("OTEL_EXPORTER_OTLP_ENDPOINT"): + try: + from strands.telemetry import StrandsTelemetry + strands_telemetry = StrandsTelemetry().setup_otlp_exporter() + except ImportError: + pass logging.basicConfig( level=getattr(logging, config.LOG_LEVEL.upper()), From 98c3ce0ba6367a05a103ffef4ab6c8e39d8a2b7f Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 15:20:02 -0400 Subject: [PATCH 050/365] =?UTF-8?q?revert(bifrost):=20Disable=20OTEL=20plu?= =?UTF-8?q?gin=20=E2=80=94=20trace=20correlation=20not=20working?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bifrost OTEL plugin creates separate traces instead of attaching as child spans under the agent's trace. Root cause: Strands SDK creates its own TracerProvider which doesn't share trace context with the global provider that opentelemetry-instrument configures. Bifrost doesn't see the agent's traceparent header. Reverted: - Bifrost OTEL plugin disabled in chart values and addon overlay - Dockerfile CMD back to 'python -m app.main' (no opentelemetry-instrument) - main.py restored to working StrandsTelemetry init Centralized traces (agent spans → Langfuse) work correctly. Bifrost trace correlation requires upstream Strands SDK fix to use the global OTel TracerProvider. Known limitation documented in OBSERVABILITY.md. --- applications/strands-agent-base/Dockerfile | 6 ++---- applications/strands-agent-base/app/main.py | 16 ++++++---------- gitops/addons/charts/bifrost/values.yaml | 14 +++++--------- gitops/addons/default/addons/bifrost/values.yaml | 9 --------- 4 files changed, 13 insertions(+), 32 deletions(-) diff --git a/applications/strands-agent-base/Dockerfile b/applications/strands-agent-base/Dockerfile index 2267d5a7..7f65b2bc 100644 --- a/applications/strands-agent-base/Dockerfile +++ b/applications/strands-agent-base/Dockerfile @@ -39,7 +39,5 @@ EXPOSE 8083 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8083/ping')" -# Run application with OpenTelemetry auto-instrumentation -# This enables W3C traceparent propagation to Bifrost (centralized mode) -# and ADOT distro activation (decentralized mode) -CMD ["opentelemetry-instrument", "python", "-m", "app.main"] +# Run application +CMD ["python", "-m", "app.main"] diff --git a/applications/strands-agent-base/app/main.py b/applications/strands-agent-base/app/main.py index fefb4e7b..524b5e9a 100644 --- a/applications/strands-agent-base/app/main.py +++ b/applications/strands-agent-base/app/main.py @@ -13,17 +13,13 @@ from .config import config # ── OpenTelemetry initialization ───────────────────────────────────────── -# Dockerfile CMD uses `opentelemetry-instrument` which auto-instruments httpx -# (for W3C traceparent propagation to Bifrost). But Strands agent spans require -# StrandsTelemetry to be initialized separately — it uses the same tracer provider -# that opentelemetry-instrument configured via OTEL_EXPORTER_OTLP_ENDPOINT. -# -# Modes: -# - Centralized: setup_otlp_exporter() creates Strands spans → collector → Langfuse -# - Decentralized (OTEL_PYTHON_DISTRO=aws_distro): ADOT handles everything -# - Direct to Langfuse (LANGFUSE_BASE_URL): manual auth headers +# Three modes (mutually exclusive, checked in order): +# 1. Decentralized (OTEL_PYTHON_DISTRO=aws_distro) — ADOT handles everything, +# agent exports directly to CloudWatch. No manual init needed. +# 2. Direct to Langfuse (LANGFUSE_BASE_URL set) — agent sends OTLP directly +# 3. Via Collector (OTEL_EXPORTER_OTLP_ENDPOINT set) — agent sends to local collector if os.getenv("OTEL_PYTHON_DISTRO") == "aws_distro": - # Decentralized: ADOT distro handles all telemetry + # Decentralized mode: ADOT auto-instrumentation handles telemetry. pass elif os.getenv("LANGFUSE_BASE_URL"): try: diff --git a/gitops/addons/charts/bifrost/values.yaml b/gitops/addons/charts/bifrost/values.yaml index 583d3415..5d589398 100644 --- a/gitops/addons/charts/bifrost/values.yaml +++ b/gitops/addons/charts/bifrost/values.yaml @@ -12,14 +12,10 @@ bifrost: serviceAccount: create: true name: bifrost - # Enable OTEL plugin — exports LLM call spans to the local OTel Collector + # OTEL plugin — disabled until Strands SDK supports shared TracerProvider + # for W3C traceparent correlation. See docs/OBSERVABILITY.md for details. + # When enabled, Bifrost creates separate traces (not child spans) because + # Strands SDK and opentelemetry-instrument use different TracerProviders. plugins: otel: - enabled: true - version: 1 - config: - service_name: "bifrost" - collector_url: "otel-collector.otel.svc.cluster.local:4317" - trace_type: "genai_extension" - protocol: "grpc" - insecure: true + enabled: false diff --git a/gitops/addons/default/addons/bifrost/values.yaml b/gitops/addons/default/addons/bifrost/values.yaml index af460283..ebeefe3b 100644 --- a/gitops/addons/default/addons/bifrost/values.yaml +++ b/gitops/addons/default/addons/bifrost/values.yaml @@ -95,15 +95,6 @@ bifrost: enabled: true logging: enabled: true - otel: - enabled: true - version: 1 - config: - service_name: "bifrost" - collector_url: "otel-collector.otel.svc.cluster.local:4317" - trace_type: "genai_extension" - protocol: "grpc" - insecure: true governance: budgets: From 278313441829fdcc69e262c19757a61d810f9a20 Mon Sep 17 00:00:00 2001 From: hmuthusamy Date: Fri, 10 Jul 2026 15:36:35 -0400 Subject: [PATCH 051/365] =?UTF-8?q?fix(otel):=20Remove=20METRICS/LOGS=20ex?= =?UTF-8?q?porter=3Dnone=20=E2=80=94=20breaks=20StrandsTelemetry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Those env vars were for opentelemetry-instrument which is reverted. With StrandsTelemetry init, setting OTEL_METRICS_EXPORTER=none appears to prevent the SDK from initializing correctly. --- .../charts/oam-agent-components/templates/agent.yaml | 7 ------- platform/oam/definitions/components/agent.cue | 6 ------ 2 files changed, 13 deletions(-) diff --git a/gitops/addons/charts/oam-agent-components/templates/agent.yaml b/gitops/addons/charts/oam-agent-components/templates/agent.yaml index af8f7b62..7b73ce91 100644 --- a/gitops/addons/charts/oam-agent-components/templates/agent.yaml +++ b/gitops/addons/charts/oam-agent-components/templates/agent.yaml @@ -1,5 +1,4 @@ # Code generated by KubeVela templates. DO NOT EDIT. Please edit the original cue file. -# # Code generated from CUE definitions. DO NOT EDIT. apiVersion: core.oam.dev/v1beta1 kind: ComponentDefinition metadata: @@ -81,12 +80,6 @@ spec: // Observability env vars — mode-dependent {name: "OTEL_SERVICE_NAME", value: context.name}, {name: "OTEL_TRACES_EXPORTER", value: "otlp"}, - if parameter.observability.mode == "centralized" { - {name: "OTEL_METRICS_EXPORTER", value: "none"} - }, - if parameter.observability.mode == "centralized" { - {name: "OTEL_LOGS_EXPORTER", value: "none"} - }, if parameter.observability.mode == "centralized" { {name: "OTEL_EXPORTER_OTLP_ENDPOINT", value: "http://otel-collector.otel.svc.cluster.local:4318"} }, diff --git a/platform/oam/definitions/components/agent.cue b/platform/oam/definitions/components/agent.cue index dba6e88e..dc767b51 100644 --- a/platform/oam/definitions/components/agent.cue +++ b/platform/oam/definitions/components/agent.cue @@ -85,12 +85,6 @@ template: { // Observability env vars — mode-dependent {name: "OTEL_SERVICE_NAME", value: context.name}, {name: "OTEL_TRACES_EXPORTER", value: "otlp"}, - if parameter.observability.mode == "centralized" { - {name: "OTEL_METRICS_EXPORTER", value: "none"} - }, - if parameter.observability.mode == "centralized" { - {name: "OTEL_LOGS_EXPORTER", value: "none"} - }, if parameter.observability.mode == "centralized" { {name: "OTEL_EXPORTER_OTLP_ENDPOINT", value: "http://otel-collector.otel.svc.cluster.local:4318"} }, From 54e23505a11dfd1d4c631b45593545faa5b60734 Mon Sep 17 00:00:00 2001 From: shapirov103 Date: Fri, 10 Jul 2026 15:48:14 -0400 Subject: [PATCH 052/365] fix(oam): agentcore-memory uses classic provider + default ProviderConfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The component referenced bedrockagentcore.aws.m.upbound.io + ClusterProviderConfig 'provider-aws-config' which does not exist on the cluster (namespaced provider family has no ProviderConfig). Switch to the classic provider (bedrockagentcore.aws.upbound.io) with providerConfigRef 'default' — matching the working crossplane-agentcore addon. Also fix the IAM Policy providerConfigRef to 'default'. --- .../oam-agent-components/templates/agentcore-memory.yaml | 9 +++------ platform/oam/definitions/components/agentcore-memory.cue | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/gitops/addons/charts/oam-agent-components/templates/agentcore-memory.yaml b/gitops/addons/charts/oam-agent-components/templates/agentcore-memory.yaml index c80c0539..e82ab955 100644 --- a/gitops/addons/charts/oam-agent-components/templates/agentcore-memory.yaml +++ b/gitops/addons/charts/oam-agent-components/templates/agentcore-memory.yaml @@ -16,7 +16,7 @@ spec: let _autoName = strings.Replace(context.namespace+"_"+context.name, "-", "_", -1) output: { - apiVersion: "bedrockagentcore.aws.m.upbound.io/v1beta1" + apiVersion: "bedrockagentcore.aws.upbound.io/v1beta1" kind: "Memory" metadata: name: context.name spec: { @@ -26,10 +26,7 @@ spec: description: parameter.description eventExpiryDuration: parameter.eventExpiryDuration } - providerConfigRef: { - name: "provider-aws-config" - kind: "ClusterProviderConfig" - } + providerConfigRef: name: "default" } } @@ -61,7 +58,7 @@ spec: } """ } - providerConfigRef: name: "provider-aws-config" + providerConfigRef: name: "default" } } diff --git a/platform/oam/definitions/components/agentcore-memory.cue b/platform/oam/definitions/components/agentcore-memory.cue index 77ef8a59..c9d2c2b9 100644 --- a/platform/oam/definitions/components/agentcore-memory.cue +++ b/platform/oam/definitions/components/agentcore-memory.cue @@ -22,7 +22,7 @@ template: { let _autoName = strings.Replace(context.namespace + "_" + context.name, "-", "_", -1) output: { - apiVersion: "bedrockagentcore.aws.m.upbound.io/v1beta1" + apiVersion: "bedrockagentcore.aws.upbound.io/v1beta1" kind: "Memory" metadata: name: context.name spec: { @@ -32,10 +32,7 @@ template: { description: parameter.description eventExpiryDuration: parameter.eventExpiryDuration } - providerConfigRef: { - name: "provider-aws-config" - kind: "ClusterProviderConfig" - } + providerConfigRef: name: "default" } } @@ -67,7 +64,7 @@ template: { } """ } - providerConfigRef: name: "provider-aws-config" + providerConfigRef: name: "default" } } From 5cc113c204c741ab91e0a5ce921e45c74aef1b0d Mon Sep 17 00:00:00 2001 From: shapirov103 Date: Fri, 10 Jul 2026 16:00:16 -0400 Subject: [PATCH 053/365] fix(strands-agent): present workload-identity token to MCP via gateway Read the projected SA token from WORKLOAD_TOKEN_PATH (mounted by the gateway-identity trait) and pass it as Authorization: Bearer to streamablehttp_client. Read fresh per connect (kubelet rotation-safe). Without this the agent got 401 from AgentGateway; now it authenticates and loads MCP tools. Image rebuilt/pushed to public.ecr.aws/z0a4o2j5/strands-agent:latest and the private ECR. --- applications/strands-agent-base/app/agent.py | 21 +++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/applications/strands-agent-base/app/agent.py b/applications/strands-agent-base/app/agent.py index 2e3162b5..c9502b92 100644 --- a/applications/strands-agent-base/app/agent.py +++ b/applications/strands-agent-base/app/agent.py @@ -47,6 +47,25 @@ def _get_model() -> OpenAIModel: return _model +def _gateway_headers() -> dict: + """Authorization header from the projected workload-identity token. + + The `gateway-identity` OAM trait mounts a projected ServiceAccount token + (audience `agentgateway`) and sets WORKLOAD_TOKEN_PATH. AgentGateway + validates it against the cluster OIDC issuer. Read fresh on each connect so + the kubelet-rotated token is always current. Returns {} when no token is + mounted (gateway auth not in use). + """ + path = os.getenv("WORKLOAD_TOKEN_PATH") + if path: + try: + with open(path) as f: + return {"Authorization": "Bearer " + f.read().strip()} + except OSError: + logger.warning("WORKLOAD_TOKEN_PATH set but token unreadable at %s", path) + return {} + + def _get_mcp_tools() -> list: global _mcp_tools, _mcp_exit_stack if _mcp_exit_stack is not None: @@ -61,7 +80,7 @@ def _get_mcp_tools() -> list: for url in urls: logger.info(f"Connecting to MCP server: {url}") try: - client = MCPClient(lambda u=url: streamablehttp_client(u)) + client = MCPClient(lambda u=url: streamablehttp_client(u, headers=_gateway_headers())) stack.enter_context(client) server_tools = client.list_tools_sync() logger.info(f" Loaded {len(server_tools)} tools from {url}") From d9d02c8722815de863e0081bd4fc7810a184abe6 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 16:50:05 -0400 Subject: [PATCH 054/365] =?UTF-8?q?docs(agent-sandbox):=20PROVEN=20?= =?UTF-8?q?=E2=80=94=20Kata=20micro-VM=20runs=20on=20EKS=20Auto=20Mode=20e?= =?UTF-8?q?nd-to-end?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live test success: pod under kata-clh ran with guest kernel 6.18.35 vs host 6.12.90 = real VM isolation. The real crux (NOT containerd restart / nydus — those were red herrings): self-managed MNG nodes on Auto Mode need BOTH vpc-cni AND kube-proxy addons, else kata-deploy can't reach kubernetes.default.svc and crashloops. Plus the runtime-not-ready startup-taint gate (openclaw PR #10) and an IAM access-entry-recreate gotcha. Full working recipe documented. --- .../charts/agent-sandbox/nodepool/README.md | 76 +++++++++++-------- 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/nodepool/README.md b/gitops/addons/charts/agent-sandbox/nodepool/README.md index 838eb96f..b1e5e8d3 100644 --- a/gitops/addons/charts/agent-sandbox/nodepool/README.md +++ b/gitops/addons/charts/agent-sandbox/nodepool/README.md @@ -15,43 +15,55 @@ were validated by a live spike (see [`docs/dark-factory` §12a](../../../../../d | `kata-mng.tf` | Terraform launch template (`cpu_options.nested_virtualization=enabled`) + MNG — use when you need the nested-virt flag eksctl can't set. `terraform validate` passes. | | `kata-mng-launch-template-userdata.mime` | The AL2023 **nodeadm MIME** userData (modprobe kvm_intel + join). Reference for either path. | -## ⚠️ Prerequisite on EKS Auto Mode: install the `vpc-cni` addon +## ✅ PROVEN END-TO-END on EKS Auto Mode (spoke-dev, 2026-07-10) -**Auto Mode clusters have NO `vpc-cni` addon** — Auto Mode's built-in networking -only applies to its own managed nodes. A self-managed MNG node will join but stay -`NotReady` with `cni plugin not initialized` until you install the standard CNI: +Kata micro-VMs **do run on an Auto Mode cluster** via a self-managed nested-virt MNG. +Verified with a pod under `runtimeClassName: kata-clh`: + +| | Value | +|---|---| +| Pod kernel (`uname -r` inside) | **`6.18.35`** — the Kata guest kernel | +| Host node kernel | `6.12.90-…amzn2023` | + +Different kernels ⇒ the pod ran in a **real VM with hardware isolation**, not a container. + +### The two Auto-Mode-specific prerequisites (the crux) + +Auto Mode's built-in networking applies ONLY to its own managed nodes. A self-managed +MNG node has **neither the CNI nor kube-proxy** that pods need — so you MUST install +both EKS addons, or pods on the kata node can't reach the API server: ``` -aws eks create-addon --cluster-name --addon-name vpc-cni --resolve-conflicts OVERWRITE +aws eks create-addon --cluster-name --addon-name vpc-cni --resolve-conflicts OVERWRITE +aws eks create-addon --cluster-name --addon-name kube-proxy --resolve-conflicts OVERWRITE ``` -`aws-node` tolerates all taints (`operator: Exists`), so it schedules onto the -tainted kata node automatically. (Discovered in live testing — lesson #4.) - -## ⚠️ Known blocker: kata-deploy vs the VPC-CNI on Auto Mode (lesson #5) - -Live testing found kata-deploy **crashloops** on a self-managed MNG node in an -Auto Mode cluster and never finishes installing the runtime. Root cause: kata-deploy -patches containerd and **restarts it**; because the VPC-CNI runs as `aws-node` pods -*on that same containerd*, the restart briefly drops node networking, and -kata-deploy's next Kubernetes API call fails (`Failed to get node ... client error -(Connect)`) → the pod exits and CrashLoopBackOffs *before* completing the install. -Disabling the experimental nydus snapshotter (`snapshotter.setup: []`) did **not** -resolve it — the containerd restart itself is the trigger. - -**Everything up to the runtime install is proven** (node joins Ready, `/dev/kvm`, -kata labels/taint, kata-deploy schedules only on the kata node). Options to finish: - -1. **Bake Kata into a custom AMI** (Packer) so no on-node containerd patch/restart is - needed at runtime — the most robust path on Auto Mode clusters. -2. **Follow openclaw's model** — a self-managed Karpenter (not Auto Mode) where the - CNI/containerd lifecycle is fully controlled and kata-deploy's restart is tolerated. -3. Investigate a kata-deploy mode that configures containerd **without a full restart**, - or pin `aws-node` to not depend on the restarted containerd during install. - -This is a **kata-deploy-on-Auto-Mode** integration issue, not a flaw in the -`agent-sandbox` chart (operator/RuntimeClasses/template/pool-manager all render and -apply fine). +- **Without `vpc-cni`** → node stays `NotReady` (`cni plugin not initialized`). +- **Without `kube-proxy`** → the node has no iptables rules for the `kubernetes.default.svc` + (172.20.0.1) service IP, so **kata-deploy crashloops** with `Failed to get node ... + client error (Connect)` — it connects to the API via the in-cluster service and times + out. This was the real blocker (NOT the containerd restart, and not the nydus + snapshotter — both were red herrings). Installing kube-proxy fixed it; kata-deploy then + reached `1/1 Running` with **zero restarts** and installed the runtime cleanly. + +Both `aws-node` and `kube-proxy` tolerate all taints (`operator: Exists`), so they land +on the tainted kata node automatically. + +### The startup-taint gate (from openclaw PR #10) + +The kata node registers with **two** taints: +- `kata=true:NoSchedule` — workload taint (only kata pods run here) +- `katacontainers.io/runtime-not-ready=true:NoSchedule` — **startup taint**; blocks all + workloads until the runtime is installed. Set via nodeadm + `--register-with-taints`. The **`kata-readiness` DaemonSet** watches kata-deploy's + `/readyz` and removes this taint once install completes — proven to work here + (`node ... untainted` in its log). + +### IAM access-entry gotcha (lesson from this test) + +If you recreate the node IAM role, its principal ID changes — **delete and recreate the +EKS access entry** (`type EC2_LINUX`) or the node's kubelet gets `Unauthorized` and never +registers. A stale access entry pointing at an old role ID is silent and confusing. ## Enablement sequence (per kata-capable cluster, e.g. spoke-dev) From 4b6bb52e66351495ef241b04842c88970a4e1cc2 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 16:50:21 -0400 Subject: [PATCH 055/365] =?UTF-8?q?docs(dark-factory):=20=C2=A712a=20?= =?UTF-8?q?=E2=80=94=20full=20Kata-on-Auto-Mode=20validation=20confirmed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Real kata VM ran (guest kernel 6.18.35 vs host 6.12.90). kata-deploy 1/1 zero restarts after kube-proxy addon. Flow A Kata isolation fully proven on Auto Mode. --- docs/dark-factory/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index 4a4bb551..c0a39bb8 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -410,8 +410,9 @@ A `c8i.4xlarge` kata MNG was created on spoke-dev, exercised, then torn down. Re |---|---| | Self-managed MNG coexists with Auto Mode? | **✅ Yes** — MNG provisioned alongside Auto Mode nodepools, no conflict; Auto Mode stayed healthy | | Nested virtualization / `/dev/kvm`? | **✅ Yes** — `/dev/kvm` present, `kvm_intel` loaded, 32 `vmx` flags, via `CpuOptions.NestedVirtualization: enabled` | -| Node joins the cluster & goes Ready? | **✅ Yes** — with the fixes below (nodeadm endpoint/CA + vpc-cni addon) | -| Kata runtime install (kata-deploy)? | **⚠️ Partial** — kata-deploy schedules on the kata node but crashloops on Auto Mode; see lesson #5 | +| Node joins the cluster & goes Ready? | **✅ Yes** — with the fixes below (nodeadm endpoint/CA + vpc-cni + kube-proxy) | +| Kata runtime install (kata-deploy)? | **✅ Yes** — `1/1`, zero restarts, once `kube-proxy` was installed | +| **Real Kata VM runs?** | **✅ YES** — pod under `kata-clh` had guest kernel `6.18.35` vs host `6.12.90` = true hardware VM isolation | ### Hard-won lessons (baked into the implementation) From f68fad29e2e4b168f1b450e53e33937144efba13 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:25:22 -0400 Subject: [PATCH 056/365] fix(agent-sandbox): SandboxTemplate has no volumeClaimTemplates (live schema) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live apply caught it: SandboxTemplate.spec supports ONLY podTemplate — the volumeClaimTemplates field belongs on the Sandbox CR, not the template ('unknown field spec.volumeClaimTemplates'). Move workspace to an emptyDir (sizeLimit) in the podTemplate. Verified: SandboxTemplate applies cleanly. --- .../templates/20-sandboxtemplate.yaml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml b/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml index 123dff2b..2c1f173d 100644 --- a/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml @@ -58,13 +58,14 @@ spec: - name: tmp mountPath: /tmp volumes: + # Ephemeral per-claim workspace. SandboxTemplate.spec only supports + # podTemplate (verified against the live CRD — it has NO + # volumeClaimTemplates field; that belongs on the Sandbox CR). Use an + # emptyDir sized by coderTemplate.workspaceSizeGi; consumers that need a + # persistent workspace across scale-to-zero set spec.volumeClaimTemplates + # on the Sandbox CR they create from this template. + - name: workspace + emptyDir: + sizeLimit: {{ .Values.coderTemplate.workspaceSizeGi }}Gi - name: tmp emptyDir: {} - volumeClaimTemplates: - - metadata: - name: workspace - spec: - accessModes: ["ReadWriteOnce"] - resources: - requests: - storage: {{ .Values.coderTemplate.workspaceSizeGi }}Gi From e973b3a331c8d0c48b493561c306ed5c6820289f Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:27:11 -0400 Subject: [PATCH 057/365] feat(agent-sandbox): enable on spoke-dev overlay (Kata-on-Auto-Mode proven) Uncomment agent_sandbox + agent_sandbox_kata on DEV now that Kata-on-Auto-Mode is validated end-to-end. ArgoCD manages the in-cluster pieces; the kata MNG + vpc-cni/kube-proxy node layer is provisioned out-of-band (documented recipe). Prod stays disabled. Verified: YAML parses. --- .../overlays/environments/dev/enabled-addons.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gitops/overlays/environments/dev/enabled-addons.yaml b/gitops/overlays/environments/dev/enabled-addons.yaml index 40720126..0b5df4fc 100644 --- a/gitops/overlays/environments/dev/enabled-addons.yaml +++ b/gitops/overlays/environments/dev/enabled-addons.yaml @@ -23,8 +23,13 @@ enabledAddons: agent_platform: true bifrost: true # Agent Sandbox capability — Kata micro-VM sandboxes + warm pool. - # DISABLED for now: spoke clusters run EKS Auto Mode + Bottlerocket, which - # cannot host Kata (no nested-virt / kvm control). Chart exists at - # gitops/addons/charts/agent-sandbox; enabling it needs a kata-capable - # nodepool strategy for Auto Mode — see docs/dark-factory (Flow A open item). - # agent_sandbox: true + # Enabled on DEV (where the Dark Factory runs). ArgoCD manages the IN-CLUSTER + # pieces (operator, CRDs, RuntimeClasses, SandboxTemplate, pool-manager). + # The kata-capable node layer is NOT GitOps-managed — it requires a + # self-managed nested-virt MNG + the vpc-cni & kube-proxy addons provisioned + # out-of-band (AWS infra ArgoCD can't create). See + # gitops/addons/charts/agent-sandbox/nodepool/README.md for the proven recipe + # (validated live on spoke-dev 2026-07-10: real kata VM, guest kernel 6.18.35). + agent_sandbox: true + # kata-deploy installs the runtime on the kata MNG nodes (separate app). + agent_sandbox_kata: true From 2feb326d846b9b2ea0f3076482f6f61430b1f486 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:39:08 -0400 Subject: [PATCH 058/365] fix(agent-sandbox): correct kata-deploy OCI chart path (drop chartNamespace) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live GitOps deploy caught it: chartNamespace made the appset build chart=kata-containers/kata-deploy → wrong OCI url (ghcr.io/.../kata-deploy-charts/kata-containers/kata-deploy). The namespace is already in chartRepository; chart must be just 'kata-deploy'. Verified: YAML parses. --- gitops/addons/bootstrap/default/addons.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index 17e50934..f316adc2 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -392,8 +392,11 @@ kata-deploy: namespace: kube-system chartName: kata-deploy defaultVersion: '3.32.0' + # OCI chart at oci://ghcr.io/kata-containers/kata-deploy-charts/kata-deploy. + # Do NOT set chartNamespace — the appset would build chart=/ + # (kata-containers/kata-deploy) producing a wrong OCI path. The namespace is + # already part of chartRepository. chartRepository: 'ghcr.io/kata-containers/kata-deploy-charts' - chartNamespace: kata-containers annotationsAppSet: argocd.argoproj.io/sync-wave: '1' selector: From 84173e401f96011701eb66a13c6d3968d0b0dfcb Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:41:26 -0400 Subject: [PATCH 059/365] fix(agent-sandbox): pool-manager image needs kubectl+jq (was aws-cli, has neither) Live GitOps deploy caught it: the pool-manager CronJob used aws-cli image which lacks kubectl/jq, so the script exited immediately (BackoffLimitExceeded). Switch to alpine/k8s:1.31.0 (bundles kubectl + jq + helm). Verified: YAML + render. --- gitops/addons/charts/agent-sandbox/values.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index ca90615f..4b191f9d 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -60,8 +60,10 @@ warmPool: # ── Pool-manager controller ────────────────────────────────────────────────── poolManager: - # Small controller image (kubectl + jq loop) that reconciles the warm buffer. - image: public.ecr.aws/aws-cli/aws-cli:2.17.0 + # Image for the reconcile loop — MUST have both kubectl AND jq (the script + # exits early if kubectl is missing). aws-cli image has neither; use an + # alpine/k8s image that bundles kubectl + jq + helm. + image: alpine/k8s:1.31.0 # How often the reconcile/reaper loop runs. intervalSeconds: 60 resources: From 341553fd71558b68c7afacfb305be2fc5c38f091 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:52:52 -0400 Subject: [PATCH 060/365] feat(agent-sandbox): vendor upstream agent-sandbox v0.5.1 install manifests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the upstream v0.5.1 manifest.yaml (operator Deployment + CRDs + RBAC + webhooks) and extensions.yaml (SandboxClaim/SandboxTemplate/SandboxWarmPool CRDs). v0.5.0+ is required for the native SandboxWarmPool + SandboxClaim reconcilers — live testing proved v0.1.0 (openclaw bundle) lacks them (operator only ran the Sandbox controller). Source: kubernetes-sigs/agent-sandbox. --- .../agent-sandbox-v0.5.1-extensions.yaml | 8999 +++++++++++++++++ .../agent-sandbox-v0.5.1-manifest.yaml | 8252 +++++++++++++++ 2 files changed, 17251 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-extensions.yaml create mode 100644 gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-manifest.yaml diff --git a/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-extensions.yaml b/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-extensions.yaml new file mode 100644 index 00000000..779e970c --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-extensions.yaml @@ -0,0 +1,8999 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.21.0 + name: sandboxclaims.extensions.agents.x-k8s.io +spec: + group: extensions.agents.x-k8s.io + names: + kind: SandboxClaim + listKind: SandboxClaimList + plural: sandboxclaims + shortNames: + - sandboxclaim + singular: sandboxclaim + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - jsonPath: .status.sandbox.name + name: Sandbox + type: string + - jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Reason + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + additionalPodMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + env: + items: + properties: + containerName: + type: string + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + lifecycle: + properties: + shutdownPolicy: + default: Retain + enum: + - Delete + - DeleteForeground + - Retain + type: string + shutdownTime: + format: date-time + type: string + ttlSecondsAfterFinished: + format: int32 + minimum: 0 + type: integer + type: object + volumeClaimTemplates: + items: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: array + x-kubernetes-list-type: atomic + warmPoolRef: + properties: + name: + type: string + required: + - name + type: object + required: + - warmPoolRef + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - 'True' + - 'False' + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + sandbox: + properties: + name: + type: string + podIPs: + items: + type: string + type: array + type: object + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - deprecated: true + deprecationWarning: extensions.agents.x-k8s.io/v1alpha1 SandboxClaim is deprecated; + use extensions.agents.x-k8s.io/v1beta1 SandboxClaim instead + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + additionalPodMetadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + env: + items: + properties: + containerName: + type: string + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + lifecycle: + properties: + shutdownPolicy: + default: Retain + enum: + - Delete + - DeleteForeground + - Retain + type: string + shutdownTime: + format: date-time + type: string + ttlSecondsAfterFinished: + format: int32 + minimum: 0 + type: integer + type: object + sandboxTemplateRef: + properties: + name: + type: string + required: + - name + type: object + warmpool: + default: default + type: string + required: + - sandboxTemplateRef + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - 'True' + - 'False' + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + sandbox: + properties: + name: + type: string + podIPs: + items: + type: string + type: array + type: object + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + status: {} + conversion: + strategy: Webhook + webhook: + conversionReviewVersions: + - v1 + - v1beta1 + clientConfig: + service: + name: agent-sandbox-webhook-service + namespace: agent-sandbox-system + path: /convert +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.21.0 + name: sandboxtemplates.extensions.agents.x-k8s.io +spec: + group: extensions.agents.x-k8s.io + names: + kind: SandboxTemplate + listKind: SandboxTemplateList + plural: sandboxtemplates + shortNames: + - sandboxtemplate + singular: sandboxtemplate + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + envVarsInjectionPolicy: + default: Disallowed + enum: + - Allowed + - Overrides + - Disallowed + type: string + networkPolicy: + properties: + egress: + items: + properties: + ports: + items: + properties: + endPort: + format: int32 + type: integer + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + protocol: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + to: + items: + properties: + ipBlock: + properties: + cidr: + type: string + except: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - cidr + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + podSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: array + ingress: + items: + properties: + from: + items: + properties: + ipBlock: + properties: + cidr: + type: string + except: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - cidr + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + podSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + ports: + items: + properties: + endPort: + format: int32 + type: integer + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + protocol: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: array + type: object + networkPolicyManagement: + default: Managed + enum: + - Managed + - Unmanaged + type: string + podTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + properties: + activeDeadlineSeconds: + format: int64 + type: integer + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + automountServiceAccountToken: + type: boolean + containers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + x-kubernetes-list-type: atomic + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + searches: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + dnsPolicy: + type: string + enableServiceLinks: + type: boolean + ephemeralContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + targetContainerName: + type: string + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + hostAliases: + items: + properties: + hostnames: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ip: + type: string + required: + - ip + type: object + type: array + x-kubernetes-list-map-keys: + - ip + x-kubernetes-list-type: map + hostIPC: + type: boolean + hostNetwork: + type: boolean + hostPID: + type: boolean + hostUsers: + type: boolean + hostname: + type: string + hostnameOverride: + type: string + imagePullSecrets: + items: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + initContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + nodeName: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + os: + properties: + name: + type: string + required: + - name + type: object + overhead: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + preemptionPolicy: + type: string + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessGates: + items: + properties: + conditionType: + type: string + required: + - conditionType + type: object + type: array + x-kubernetes-list-type: atomic + resourceClaims: + items: + properties: + name: + type: string + resourceClaimName: + type: string + resourceClaimTemplateName: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + runtimeClassName: + type: string + schedulerName: + type: string + schedulingGates: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + schedulingGroup: + properties: + podGroupName: + type: string + type: object + securityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxChangePolicy: + type: string + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccount: + type: string + serviceAccountName: + type: string + setHostnameAsFQDN: + type: boolean + shareProcessNamespace: + type: boolean + subdomain: + type: string + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + default: ext4 + type: string + kind: + type: string + readOnly: + default: false + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + default: default + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podCertificate: + properties: + certificateChainPath: + type: string + credentialBundlePath: + type: string + keyPath: + type: string + keyType: + type: string + maxExpirationSeconds: + format: int32 + type: integer + signerName: + type: string + userAnnotations: + additionalProperties: + type: string + type: object + required: + - keyType + - signerName + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + default: /etc/ceph/keyring + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + default: rbd + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + default: admin + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + default: xfs + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + default: ThinProvisioned + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + required: + - containers + type: object + required: + - spec + type: object + service: + type: boolean + volumeClaimTemplates: + items: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: array + x-kubernetes-list-type: atomic + volumeClaimTemplatesPolicy: + default: Disallowed + enum: + - Disallowed + - Allowed + - Overrides + type: string + required: + - podTemplate + type: object + required: + - spec + type: object + served: true + storage: true + - deprecated: true + deprecationWarning: extensions.agents.x-k8s.io/v1alpha1 SandboxTemplate is deprecated; + use extensions.agents.x-k8s.io/v1beta1 SandboxTemplate instead + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + envVarsInjectionPolicy: + default: Disallowed + enum: + - Allowed + - Overrides + - Disallowed + type: string + networkPolicy: + properties: + egress: + items: + properties: + ports: + items: + properties: + endPort: + format: int32 + type: integer + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + protocol: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + to: + items: + properties: + ipBlock: + properties: + cidr: + type: string + except: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - cidr + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + podSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: array + ingress: + items: + properties: + from: + items: + properties: + ipBlock: + properties: + cidr: + type: string + except: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - cidr + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + podSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + ports: + items: + properties: + endPort: + format: int32 + type: integer + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + protocol: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: array + type: object + networkPolicyManagement: + default: Managed + enum: + - Managed + - Unmanaged + type: string + podTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + properties: + activeDeadlineSeconds: + format: int64 + type: integer + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + automountServiceAccountToken: + type: boolean + containers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + x-kubernetes-list-type: atomic + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + searches: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + dnsPolicy: + type: string + enableServiceLinks: + type: boolean + ephemeralContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + targetContainerName: + type: string + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + hostAliases: + items: + properties: + hostnames: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ip: + type: string + required: + - ip + type: object + type: array + x-kubernetes-list-map-keys: + - ip + x-kubernetes-list-type: map + hostIPC: + type: boolean + hostNetwork: + type: boolean + hostPID: + type: boolean + hostUsers: + type: boolean + hostname: + type: string + hostnameOverride: + type: string + imagePullSecrets: + items: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + initContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + nodeName: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + os: + properties: + name: + type: string + required: + - name + type: object + overhead: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + preemptionPolicy: + type: string + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessGates: + items: + properties: + conditionType: + type: string + required: + - conditionType + type: object + type: array + x-kubernetes-list-type: atomic + resourceClaims: + items: + properties: + name: + type: string + resourceClaimName: + type: string + resourceClaimTemplateName: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + runtimeClassName: + type: string + schedulerName: + type: string + schedulingGates: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + schedulingGroup: + properties: + podGroupName: + type: string + type: object + securityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxChangePolicy: + type: string + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccount: + type: string + serviceAccountName: + type: string + setHostnameAsFQDN: + type: boolean + shareProcessNamespace: + type: boolean + subdomain: + type: string + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + default: ext4 + type: string + kind: + type: string + readOnly: + default: false + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + default: default + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podCertificate: + properties: + certificateChainPath: + type: string + credentialBundlePath: + type: string + keyPath: + type: string + keyType: + type: string + maxExpirationSeconds: + format: int32 + type: integer + signerName: + type: string + userAnnotations: + additionalProperties: + type: string + type: object + required: + - keyType + - signerName + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + default: /etc/ceph/keyring + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + default: rbd + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + default: admin + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + default: xfs + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + default: ThinProvisioned + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + required: + - containers + type: object + required: + - spec + type: object + service: + type: boolean + volumeClaimTemplates: + items: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: array + x-kubernetes-list-type: atomic + required: + - podTemplate + type: object + required: + - spec + type: object + served: true + storage: false + conversion: + strategy: Webhook + webhook: + conversionReviewVersions: + - v1 + - v1beta1 + clientConfig: + service: + name: agent-sandbox-webhook-service + namespace: agent-sandbox-system + path: /convert +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.21.0 + name: sandboxwarmpools.extensions.agents.x-k8s.io +spec: + group: extensions.agents.x-k8s.io + names: + kind: SandboxWarmPool + listKind: SandboxWarmPoolList + plural: sandboxwarmpools + shortNames: + - swp + singular: sandboxwarmpool + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.readyReplicas + name: Ready + type: integer + - jsonPath: .spec.replicas + name: Desired + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + replicas: + default: 1 + format: int32 + minimum: 0 + type: integer + sandboxTemplateRef: + properties: + name: + type: string + required: + - name + type: object + updateStrategy: + properties: + type: + default: OnReplenish + enum: + - Recreate + - OnReplenish + type: string + type: object + required: + - sandboxTemplateRef + type: object + status: + properties: + readyReplicas: + format: int32 + type: integer + replicas: + format: int32 + type: integer + selector: + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.replicas + status: {} + - additionalPrinterColumns: + - jsonPath: .status.readyReplicas + name: Ready + type: integer + - jsonPath: .spec.replicas + name: Desired + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: extensions.agents.x-k8s.io/v1alpha1 SandboxWarmPool is deprecated; + use extensions.agents.x-k8s.io/v1beta1 SandboxWarmPool instead + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + replicas: + format: int32 + minimum: 0 + type: integer + sandboxTemplateRef: + properties: + name: + type: string + required: + - name + type: object + updateStrategy: + properties: + type: + default: OnReplenish + enum: + - Recreate + - OnReplenish + type: string + type: object + required: + - replicas + - sandboxTemplateRef + type: object + status: + properties: + readyReplicas: + format: int32 + type: integer + replicas: + format: int32 + type: integer + selector: + type: string + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.replicas + status: {} + conversion: + strategy: Webhook + webhook: + conversionReviewVersions: + - v1 + - v1beta1 + clientConfig: + service: + name: agent-sandbox-webhook-service + namespace: agent-sandbox-system + path: /convert +--- +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: agent-sandbox-controller-extensions +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + - events.k8s.io + resources: + - events + verbs: + - create + - patch + - update +- apiGroups: + - agents.x-k8s.io + resources: + - sandboxes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - extensions.agents.x-k8s.io + resources: + - sandboxclaims + - sandboxtemplates + - sandboxwarmpools + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - extensions.agents.x-k8s.io + resources: + - sandboxclaims/finalizers + - sandboxclaims/status + - sandboxtemplates/finalizers + - sandboxwarmpools/finalizers + - sandboxwarmpools/status + verbs: + - get + - patch + - update +- apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +--- +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: agent-sandbox-controller + namespace: agent-sandbox-system + labels: + app: agent-sandbox-controller +spec: + replicas: 1 + selector: + matchLabels: + app: agent-sandbox-controller + template: + metadata: + labels: + app: agent-sandbox-controller + spec: + serviceAccountName: agent-sandbox-controller + containers: + - name: agent-sandbox-controller + image: registry.k8s.io/agent-sandbox/agent-sandbox-controller:v0.5.1 + args: + - "--leader-elect=true" + - "--extensions" + ports: + - name: metrics + containerPort: 8080 + protocol: TCP + - name: healthz + containerPort: 8081 + protocol: TCP + volumeMounts: + - name: config-volume + mountPath: /etc/sandbox-config + readOnly: true + volumes: + - name: config-volume + configMap: + name: agent-sandbox-config + optional: true + + +--- +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: agent-sandbox-controller-extensions +subjects: +- kind: ServiceAccount + name: agent-sandbox-controller + namespace: agent-sandbox-system +roleRef: + kind: ClusterRole + name: agent-sandbox-controller-extensions + apiGroup: rbac.authorization.k8s.io +--- diff --git a/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-manifest.yaml b/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-manifest.yaml new file mode 100644 index 00000000..a7997907 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-manifest.yaml @@ -0,0 +1,8252 @@ +--- +kind: Namespace +apiVersion: v1 +metadata: + name: agent-sandbox-system + +--- + +kind: ServiceAccount +apiVersion: v1 +metadata: + name: agent-sandbox-controller + namespace: agent-sandbox-system + labels: + app: agent-sandbox-controller + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: agent-sandbox-controller +subjects: +- kind: ServiceAccount + name: agent-sandbox-controller + namespace: agent-sandbox-system +roleRef: + kind: ClusterRole + name: agent-sandbox-controller + apiGroup: rbac.authorization.k8s.io + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: agent-sandbox-controller + namespace: agent-sandbox-system +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create +- apiGroups: + - "" + resourceNames: + - agent-sandbox-webhook-certs + resources: + - secrets + verbs: + - get + - patch + - update + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: agent-sandbox-controller + namespace: agent-sandbox-system +subjects: +- kind: ServiceAccount + name: agent-sandbox-controller + namespace: agent-sandbox-system +roleRef: + kind: Role + name: agent-sandbox-controller + apiGroup: rbac.authorization.k8s.io + +--- + +kind: Service +apiVersion: v1 +metadata: + name: agent-sandbox-controller + namespace: agent-sandbox-system + labels: + app: agent-sandbox-controller +spec: + selector: + app: agent-sandbox-controller + ports: + - name: metrics + port: 8080 + targetPort: metrics + protocol: TCP + +--- + +kind: Deployment +apiVersion: apps/v1 +metadata: + name: agent-sandbox-controller + namespace: agent-sandbox-system + labels: + app: agent-sandbox-controller +spec: + replicas: 1 + selector: + matchLabels: + app: agent-sandbox-controller + template: + metadata: + labels: + app: agent-sandbox-controller + spec: + serviceAccountName: agent-sandbox-controller + containers: + - name: agent-sandbox-controller + image: registry.k8s.io/agent-sandbox/agent-sandbox-controller:v0.5.1 + args: + - --leader-elect=true + ports: + - name: metrics + containerPort: 8080 + protocol: TCP + - name: healthz + containerPort: 8081 + protocol: TCP + - name: webhook + containerPort: 9443 + protocol: TCP + +--- + +kind: Service +apiVersion: v1 +metadata: + name: agent-sandbox-webhook-service + namespace: agent-sandbox-system +spec: + selector: + app: agent-sandbox-controller + ports: + - name: webhook + port: 443 + targetPort: 9443 + protocol: TCP + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.21.0 + name: sandboxes.agents.x-k8s.io +spec: + group: agents.x-k8s.io + names: + kind: Sandbox + listKind: SandboxList + plural: sandboxes + shortNames: + - sandbox + singular: sandbox + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Reason + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + operatingMode: + default: Running + enum: + - Running + - Suspended + type: string + podTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + properties: + activeDeadlineSeconds: + format: int64 + type: integer + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + automountServiceAccountToken: + type: boolean + containers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + x-kubernetes-list-type: atomic + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + searches: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + dnsPolicy: + type: string + enableServiceLinks: + type: boolean + ephemeralContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + targetContainerName: + type: string + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + hostAliases: + items: + properties: + hostnames: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ip: + type: string + required: + - ip + type: object + type: array + x-kubernetes-list-map-keys: + - ip + x-kubernetes-list-type: map + hostIPC: + type: boolean + hostNetwork: + type: boolean + hostPID: + type: boolean + hostUsers: + type: boolean + hostname: + type: string + hostnameOverride: + type: string + imagePullSecrets: + items: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + initContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + nodeName: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + os: + properties: + name: + type: string + required: + - name + type: object + overhead: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + preemptionPolicy: + type: string + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessGates: + items: + properties: + conditionType: + type: string + required: + - conditionType + type: object + type: array + x-kubernetes-list-type: atomic + resourceClaims: + items: + properties: + name: + type: string + resourceClaimName: + type: string + resourceClaimTemplateName: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + runtimeClassName: + type: string + schedulerName: + type: string + schedulingGates: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + schedulingGroup: + properties: + podGroupName: + type: string + type: object + securityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxChangePolicy: + type: string + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccount: + type: string + serviceAccountName: + type: string + setHostnameAsFQDN: + type: boolean + shareProcessNamespace: + type: boolean + subdomain: + type: string + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + default: ext4 + type: string + kind: + type: string + readOnly: + default: false + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + default: default + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podCertificate: + properties: + certificateChainPath: + type: string + credentialBundlePath: + type: string + keyPath: + type: string + keyType: + type: string + maxExpirationSeconds: + format: int32 + type: integer + signerName: + type: string + userAnnotations: + additionalProperties: + type: string + type: object + required: + - keyType + - signerName + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + default: /etc/ceph/keyring + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + default: rbd + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + default: admin + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + default: xfs + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + default: ThinProvisioned + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + required: + - containers + type: object + required: + - spec + type: object + service: + type: boolean + shutdownPolicy: + default: Retain + enum: + - Delete + - Retain + type: string + shutdownTime: + format: date-time + type: string + volumeClaimTemplates: + items: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: array + x-kubernetes-list-type: atomic + required: + - podTemplate + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - 'True' + - 'False' + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + nodeName: + type: string + podIPs: + items: + type: string + type: array + selector: + type: string + service: + type: string + serviceFQDN: + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - deprecated: true + deprecationWarning: agents.x-k8s.io/v1alpha1 Sandbox is deprecated; use agents.x-k8s.io/v1beta1 + Sandbox instead + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + podTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + properties: + activeDeadlineSeconds: + format: int64 + type: integer + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + automountServiceAccountToken: + type: boolean + containers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + dnsConfig: + properties: + nameservers: + items: + type: string + type: array + x-kubernetes-list-type: atomic + options: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + searches: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + dnsPolicy: + type: string + enableServiceLinks: + type: boolean + ephemeralContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + targetContainerName: + type: string + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + hostAliases: + items: + properties: + hostnames: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ip: + type: string + required: + - ip + type: object + type: array + x-kubernetes-list-map-keys: + - ip + x-kubernetes-list-type: map + hostIPC: + type: boolean + hostNetwork: + type: boolean + hostPID: + type: boolean + hostUsers: + type: boolean + hostname: + type: string + hostnameOverride: + type: string + imagePullSecrets: + items: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + initContainers: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + fileKeyRef: + properties: + key: + type: string + optional: + default: false + type: boolean + path: + type: string + volumeName: + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: '' + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + stopSignal: + type: string + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + restartPolicyRules: + items: + properties: + action: + type: string + exitCodes: + properties: + operator: + type: string + values: + items: + format: int32 + type: integer + type: array + x-kubernetes-list-type: set + required: + - operator + type: object + required: + - action + type: object + type: array + x-kubernetes-list-type: atomic + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + default: '' + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + nodeName: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + os: + properties: + name: + type: string + required: + - name + type: object + overhead: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + preemptionPolicy: + type: string + priority: + format: int32 + type: integer + priorityClassName: + type: string + readinessGates: + items: + properties: + conditionType: + type: string + required: + - conditionType + type: object + type: array + x-kubernetes-list-type: atomic + resourceClaims: + items: + properties: + name: + type: string + resourceClaimName: + type: string + resourceClaimTemplateName: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + restartPolicy: + type: string + runtimeClassName: + type: string + schedulerName: + type: string + schedulingGates: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + schedulingGroup: + properties: + podGroupName: + type: string + type: object + securityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxChangePolicy: + type: string + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccount: + type: string + serviceAccountName: + type: string + setHostnameAsFQDN: + type: boolean + shareProcessNamespace: + type: boolean + subdomain: + type: string + terminationGracePeriodSeconds: + format: int64 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + x-kubernetes-list-type: atomic + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + x-kubernetes-list-map-keys: + - topologyKey + - whenUnsatisfiable + x-kubernetes-list-type: map + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + default: ext4 + type: string + kind: + type: string + readOnly: + default: false + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + default: default + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podCertificate: + properties: + certificateChainPath: + type: string + credentialBundlePath: + type: string + keyPath: + type: string + keyType: + type: string + maxExpirationSeconds: + format: int32 + type: integer + signerName: + type: string + userAnnotations: + additionalProperties: + type: string + type: object + required: + - keyType + - signerName + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: '' + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + default: /etc/ceph/keyring + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + default: rbd + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + user: + default: admin + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + default: xfs + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + default: ThinProvisioned + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: '' + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + required: + - containers + type: object + required: + - spec + type: object + replicas: + default: 1 + format: int32 + maximum: 1 + minimum: 0 + type: integer + service: + type: boolean + shutdownPolicy: + default: Retain + enum: + - Delete + - Retain + type: string + shutdownTime: + format: date-time + type: string + volumeClaimTemplates: + items: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: array + x-kubernetes-list-type: atomic + required: + - podTemplate + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - 'True' + - 'False' + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + podIPs: + items: + type: string + type: array + replicas: + format: int32 + minimum: 0 + type: integer + selector: + type: string + service: + type: string + serviceFQDN: + type: string + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + scale: + labelSelectorPath: .status.selector + specReplicasPath: .spec.replicas + statusReplicasPath: .status.replicas + status: {} + conversion: + strategy: Webhook + webhook: + conversionReviewVersions: + - v1 + - v1beta1 + clientConfig: + service: + name: agent-sandbox-webhook-service + namespace: agent-sandbox-system + path: /convert +--- +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: agent-sandbox-controller +rules: +- apiGroups: + - "" + resources: + - persistentvolumeclaims + - pods + - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - agents.x-k8s.io + resources: + - sandboxes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - agents.x-k8s.io + resources: + - sandboxes/finalizers + - sandboxes/status + verbs: + - get + - patch + - update +- apiGroups: + - apiextensions.k8s.io + resourceNames: + - sandboxclaims.extensions.agents.x-k8s.io + - sandboxes.agents.x-k8s.io + - sandboxtemplates.extensions.agents.x-k8s.io + - sandboxwarmpools.extensions.agents.x-k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - patch + - update +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - list + - patch + - update + - watch +- apiGroups: + - events.k8s.io + resources: + - events + verbs: + - create + - patch +--- From f36326e3f5e39ea8f52ada82150aeafb03c5a8f5 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:53:05 -0400 Subject: [PATCH 061/365] refactor(agent-sandbox): drop hand-written operator (use vendored v0.5.1 upstream) The v0.1.0 operator we hand-wrote only reconciled Sandbox CRs (no warm pool). Replaced by the vendored upstream v0.5.1 manifest which includes the full operator + webhooks + SandboxClaim/WarmPool reconcilers. --- .../agent-sandbox/templates/05-operator.yaml | 106 ------------------ 1 file changed, 106 deletions(-) delete mode 100644 gitops/addons/charts/agent-sandbox/templates/05-operator.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/05-operator.yaml b/gitops/addons/charts/agent-sandbox/templates/05-operator.yaml deleted file mode 100644 index 181e098b..00000000 --- a/gitops/addons/charts/agent-sandbox/templates/05-operator.yaml +++ /dev/null @@ -1,106 +0,0 @@ -{{- if .Values.operator.installCRDs }} -{{- /* -Agent Sandbox operator (agents.x-k8s.io). Installs the controller that -materializes a Kata-VM Pod + Service (+ PVCs) per Sandbox CR and reports -status.serviceFQDN. - -NOTE ON CRDs: the Sandbox / SandboxTemplate / SandboxClaim CRDs are large -(~4k lines of OpenAPI schema) and are installed from the upstream operator -bundle, not vendored here. In this monorepo they are applied at an earlier -sync-wave (see gitops wiring) via the upstream manifest at - public.ecr.aws/t6v6o5d5/agent-sandbox:v0.1.0 -This template provides the controller runtime (SA + ClusterRole + StatefulSet -+ Service); it assumes the CRDs already exist. Set operator.installCRDs=false -if a newer operator on the cluster already manages both. -*/ -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: agent-sandbox-controller - namespace: {{ include "agent-sandbox.namespace" . }} - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: agent-sandbox-controller - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} -rules: - - apiGroups: ["agents.x-k8s.io"] - resources: ["sandboxes", "sandboxes/status", "sandboxes/scale"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] - - apiGroups: ["extensions.agents.x-k8s.io"] - resources: ["sandboxtemplates", "sandboxclaims", "sandboxclaims/status"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] - - apiGroups: [""] - resources: ["pods", "services", "persistentvolumeclaims"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: agent-sandbox-controller - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} -subjects: - - kind: ServiceAccount - name: agent-sandbox-controller - namespace: {{ include "agent-sandbox.namespace" . }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: agent-sandbox-controller ---- -apiVersion: v1 -kind: Service -metadata: - name: agent-sandbox-controller - namespace: {{ include "agent-sandbox.namespace" . }} - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} -spec: - selector: - app.kubernetes.io/name: agent-sandbox - agent-sandbox.io/component: controller - ports: - - port: 80 - targetPort: 8080 ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: agent-sandbox-controller - namespace: {{ include "agent-sandbox.namespace" . }} - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} -spec: - serviceName: agent-sandbox-controller - replicas: {{ .Values.operator.replicas }} - selector: - matchLabels: - app.kubernetes.io/name: agent-sandbox - agent-sandbox.io/component: controller - template: - metadata: - labels: - {{- include "agent-sandbox.labels" . | nindent 8 }} - agent-sandbox.io/component: controller - spec: - serviceAccountName: agent-sandbox-controller - securityContext: - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - containers: - - name: controller - image: {{ .Values.operator.image }} - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: ["ALL"] - ports: - - name: http - containerPort: 8080 -{{- end }} From 14d4f8e7e12d31493f4d81d8f6adcf268ab4ab66 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:53:06 -0400 Subject: [PATCH 062/365] refactor(agent-sandbox): drop custom pool-manager (use native SandboxWarmPool) v0.5.0+ ships a native SandboxWarmPool CR (spec: replicas + sandboxTemplateRef) reconciled by the operator. Our bash CronJob pool-manager was redundant AND buggy (aws-cli image lacked kubectl/jq; SandboxClaim adoption needs the v0.5 reconciler). Replace with a SandboxWarmPool CR (next commit). --- .../templates/40-poolmanager-rbac.yaml | 51 ------- .../templates/41-poolmanager-cronjob.yaml | 130 ------------------ 2 files changed, 181 deletions(-) delete mode 100644 gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml delete mode 100644 gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml b/gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml deleted file mode 100644 index 4e833063..00000000 --- a/gitops/addons/charts/agent-sandbox/templates/40-poolmanager-rbac.yaml +++ /dev/null @@ -1,51 +0,0 @@ -{{- if .Values.warmPool.enabled }} -{{- /* -RBAC for the pool-manager: narrowly scoped to Sandboxes/PVCs/Services in the -capability namespace only. It maintains the warm buffer and reaps idle/expired -sandboxes — it never touches cluster-wide resources or other namespaces. -*/ -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: agent-sandbox-pool-manager - namespace: {{ include "agent-sandbox.namespace" . }} - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: agent-sandbox-pool-manager - namespace: {{ include "agent-sandbox.namespace" . }} - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} -rules: - - apiGroups: ["agents.x-k8s.io"] - resources: ["sandboxes"] - verbs: ["get", "list", "watch", "create", "patch", "delete"] - - apiGroups: ["agents.x-k8s.io"] - resources: ["sandboxes/scale"] - verbs: ["get", "patch", "update"] - - apiGroups: ["extensions.agents.x-k8s.io"] - resources: ["sandboxtemplates", "sandboxclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims", "services"] - verbs: ["get", "list", "delete"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: agent-sandbox-pool-manager - namespace: {{ include "agent-sandbox.namespace" . }} - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} -subjects: - - kind: ServiceAccount - name: agent-sandbox-pool-manager - namespace: {{ include "agent-sandbox.namespace" . }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: agent-sandbox-pool-manager -{{- end }} diff --git a/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml b/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml deleted file mode 100644 index 8261ce9f..00000000 --- a/gitops/addons/charts/agent-sandbox/templates/41-poolmanager-cronjob.yaml +++ /dev/null @@ -1,130 +0,0 @@ -{{- if .Values.warmPool.enabled }} -{{- /* -Pool-manager: a CronJob that reconciles the warm buffer each interval. - 1. REFILL — if idle sandboxes < targetIdle, create SandboxClaims to top up. - 2. SCALE-TO-ZERO — idle sandboxes past idleScaleToZeroSeconds → replicas:0. - 3. REAP — claimed sandboxes with no activity past reapAfterSeconds → delete. -Idle vs claimed is tracked by the label agent-sandbox.io/state and the -agent-sandbox.io/last-seen annotation, both stamped by the consumer on claim. -A CronJob (not a Deployment) keeps the controller dependency-free and cheap; -swap for a real controller later if reconcile latency matters. -*/ -}} -apiVersion: batch/v1 -kind: CronJob -metadata: - name: agent-sandbox-pool-manager - namespace: {{ include "agent-sandbox.namespace" . }} - labels: - {{- include "agent-sandbox.labels" . | nindent 4 }} -spec: - schedule: "* * * * *" # every minute; loop below honors intervalSeconds - concurrencyPolicy: Forbid - successfulJobsHistoryLimit: 1 - failedJobsHistoryLimit: 2 - jobTemplate: - spec: - backoffLimit: 1 - template: - metadata: - labels: - {{- include "agent-sandbox.selectorLabels" . | nindent 12 }} - spec: - serviceAccountName: agent-sandbox-pool-manager - restartPolicy: OnFailure - securityContext: - runAsNonRoot: true - runAsUser: 1000 - seccompProfile: - type: RuntimeDefault - containers: - - name: pool-manager - image: {{ .Values.poolManager.image }} - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - capabilities: - drop: ["ALL"] - env: - - name: NS - value: {{ include "agent-sandbox.namespace" . }} - - name: TARGET_IDLE - value: {{ .Values.warmPool.targetIdle | quote }} - - name: IDLE_SCALE_TO_ZERO_SECONDS - value: {{ .Values.warmPool.idleScaleToZeroSeconds | quote }} - - name: REAP_AFTER_SECONDS - value: {{ .Values.warmPool.reapAfterSeconds | quote }} - - name: TEMPLATE_NAME - value: {{ .Values.warmPool.templateName }} - resources: - {{- toYaml .Values.poolManager.resources | nindent 16 }} - volumeMounts: - - name: tmp - mountPath: /tmp - command: - - /bin/sh - - -c - - | - set -eu - command -v kubectl >/dev/null 2>&1 || { echo "kubectl required in image"; exit 1; } - now=$(date -u +%s) - - idle=$(kubectl get sandboxes.agents.x-k8s.io -n "$NS" \ - -l 'agent-sandbox.io/state=idle' -o name 2>/dev/null | wc -l | tr -d ' ') - echo "warm pool: $idle idle / target $TARGET_IDLE" - - # 1. REFILL — top up idle sandboxes to the target buffer. - i="$idle" - while [ "$i" -lt "$TARGET_IDLE" ]; do - n="coder-idle-$(date -u +%s)-$i" - cat </dev/null - apiVersion: extensions.agents.x-k8s.io/v1alpha1 - kind: SandboxClaim - metadata: - name: $n - namespace: $NS - labels: - agent-sandbox.io/state: idle - spec: - sandboxTemplateRef: - name: $TEMPLATE_NAME - EOF - echo "refill: created idle claim $n" - i=$((i+1)) - done - - # 2. SCALE-TO-ZERO — idle sandboxes past the idle TTL scale to - # replicas:0 (PVC retained), resumed on demand by the consumer. - if [ "${IDLE_SCALE_TO_ZERO_SECONDS}" -gt 0 ]; then - kubectl get sandboxes.agents.x-k8s.io -n "$NS" \ - -l 'agent-sandbox.io/state=idle' -o json 2>/dev/null \ - | jq -r --argjson now "$now" --argjson ttl "$IDLE_SCALE_TO_ZERO_SECONDS" ' - .items[] - | select((.spec.replicas // 1) > 0) - | select(((.metadata.annotations["agent-sandbox.io/last-seen"] // "0") | fromdateiso8601? // 0) < ($now - $ttl)) - | .metadata.name' \ - | while read -r s; do - [ -n "$s" ] || continue - kubectl scale sandbox.agents.x-k8s.io "$s" -n "$NS" --replicas=0 >/dev/null 2>&1 \ - && echo "scale-to-zero: paused idle $s" - done - fi - - # 3. REAP — claimed sandboxes with no activity past the hard TTL - # are deleted (safety net for crashed/abandoned consumers). - kubectl get sandboxes.agents.x-k8s.io -n "$NS" \ - -l 'agent-sandbox.io/state=claimed' -o json 2>/dev/null \ - | jq -r --argjson now "$now" --argjson ttl "$REAP_AFTER_SECONDS" ' - .items[] - | select(((.metadata.annotations["agent-sandbox.io/last-seen"] // "0") | fromdateiso8601? // 0) < ($now - $ttl)) - | .metadata.name' \ - | while read -r s; do - [ -n "$s" ] || continue - kubectl delete sandbox.agents.x-k8s.io "$s" -n "$NS" --ignore-not-found >/dev/null 2>&1 \ - && echo "reap: deleted expired claimed $s" - done - - echo "pool-manager reconcile complete" - volumes: - - name: tmp - emptyDir: {} -{{- end }} From b9e2df9c68f7bb31e971129586217fa75828402f Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:53:25 -0400 Subject: [PATCH 063/365] feat(agent-sandbox): add native SandboxWarmPool CR (replaces pool-manager) Declares a SandboxWarmPool (replicas=targetIdle, sandboxTemplateRef) the v0.5.1 operator reconciles to keep the warm buffer. Gated by warmPool.enabled. Verified: renders. --- .../templates/40-sandboxwarmpool.yaml | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml b/gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml new file mode 100644 index 00000000..e0dbd2f1 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml @@ -0,0 +1,21 @@ +{{- if .Values.warmPool.enabled }} +{{- /* +Native SandboxWarmPool (operator v0.5.0+). The operator keeps `replicas` idle +sandboxes pre-warmed from the referenced SandboxTemplate; a consumer (the Dark +Factory) binds one via a SandboxClaim and the operator refills the buffer. This +replaces the custom pool-manager CronJob — the warm pool is now a first-class +operator primitive (requires the vendored v0.5.1 upstream, NOT v0.1.0). +*/ -}} +apiVersion: extensions.agents.x-k8s.io/v1alpha1 +kind: SandboxWarmPool +metadata: + name: {{ .Values.warmPool.name | default "coder-warmpool" }} + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + # Target number of pre-warmed idle sandboxes (the warm buffer). + replicas: {{ .Values.warmPool.targetIdle }} + sandboxTemplateRef: + name: {{ .Values.warmPool.templateName }} +{{- end }} From 36833f6628bff9540f64fe6a45cb3eb12b234247 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:54:14 -0400 Subject: [PATCH 064/365] feat(agent-sandbox): add kata-readiness DaemonSet (removes startup taint) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ported from openclaw PR #10 — the missing piece our chart lacked. Waits for kata-deploy Ready on each kata node, then removes the runtime-not-ready startup taint so kata sandboxes can schedule. Without it, Sandbox pods stay Pending (live-test finding). Verified: renders + chart lints clean. --- .../templates/15-kata-readiness.yaml | 113 ++++++++++++++++++ .../addons/charts/agent-sandbox/values.yaml | 7 ++ 2 files changed, 120 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/15-kata-readiness.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/15-kata-readiness.yaml b/gitops/addons/charts/agent-sandbox/templates/15-kata-readiness.yaml new file mode 100644 index 00000000..91f2b824 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/15-kata-readiness.yaml @@ -0,0 +1,113 @@ +{{- if .Values.kataReadiness.enabled }} +{{- /* +kata-readiness — removes the katacontainers.io/runtime-not-ready STARTUP TAINT +once kata-deploy finishes installing the runtime on a node. + +Why needed (live-test lesson): kata nodes register with a runtime-not-ready +startup taint so no workload binds before the runtime exists. kata-deploy does +NOT remove that taint itself. This DaemonSet watches the kata-deploy pod on its +node reach Ready (its /readyz flips 503→200 only after install completes), then +removes the taint so kata sandboxes can schedule. Ported from +eks-platform-openclaw PR #10. +*/ -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kata-readiness + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: agent-sandbox-kata-readiness + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "patch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: agent-sandbox-kata-readiness + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: kata-readiness + namespace: {{ include "agent-sandbox.namespace" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: agent-sandbox-kata-readiness +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: kata-readiness + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + app: kata-readiness + template: + metadata: + labels: + app: kata-readiness + {{- include "agent-sandbox.selectorLabels" . | nindent 8 }} + spec: + serviceAccountName: kata-readiness + # Tolerate everything so it lands BEFORE the runtime is ready — including + # the kata workload taint and the runtime-not-ready startup taint it removes. + tolerations: + - operator: Exists + # Static label present from node birth (kata-deploy emits + # katacontainers.io/kata-runtime only after install, so we can't select on it). + nodeSelector: + kata-enabled: "true" + securityContext: + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + containers: + - name: kata-readiness + image: {{ .Values.kataReadiness.image }} + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: ["ALL"] + env: + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + command: + - /bin/sh + - -c + - | + set -eu + echo "[kata-readiness] node=${NODE_NAME}: waiting for kata-deploy Ready..." + until [ "$(kubectl get pods -n kube-system -l name=kata-deploy \ + --field-selector "spec.nodeName=${NODE_NAME}" \ + -o jsonpath='{.items[0].status.conditions[?(@.type=="Ready")].status}')" = "True" ]; do + sleep 5 + done + echo "[kata-readiness] kata-deploy Ready; removing runtime-not-ready taint..." + kubectl taint node "${NODE_NAME}" katacontainers.io/runtime-not-ready:NoSchedule- || true + echo "[kata-readiness] node ${NODE_NAME} ready for kata workloads." + sleep infinity + resources: + requests: + cpu: 5m + memory: 32Mi +{{- end }} diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 4b191f9d..05b82483 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -43,6 +43,13 @@ kata: value: "true" effect: NoSchedule +# ── kata-readiness ─────────────────────────────────────────────────────────── +# Removes the runtime-not-ready startup taint once kata-deploy finishes on a +# node. Required whenever nodes carry that startup taint (the kata MNG does). +kataReadiness: + enabled: true + image: alpine/k8s:1.31.0 # needs kubectl + # ── Warm pool ──────────────────────────────────────────────────────────────── warmPool: enabled: true From e468e19e40e4b01a30f46aac34fcc032281bcc53 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 17:56:02 -0400 Subject: [PATCH 065/365] =?UTF-8?q?fix(agent-sandbox):=20namespace=20PSS?= =?UTF-8?q?=20restricted=E2=86=92baseline=20(was=20blocking=20the=20operat?= =?UTF-8?q?or)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live test: PSS restricted on the namespace blocked the upstream v0.5.1 operator pod (not restricted-compliant) — Deployment stuck 0/1. The namespace hosts the operator + kata-readiness too, not just coder pods. Coder isolation comes from the Kata VM boundary + the SandboxTemplate's restricted securityContext, not namespace PSS. Set enforce=baseline (audit/warn stay restricted). --- .../charts/agent-sandbox/templates/00-namespace.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml b/gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml index 31e3c4e5..f62077c0 100644 --- a/gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/00-namespace.yaml @@ -4,8 +4,13 @@ metadata: name: {{ include "agent-sandbox.namespace" . }} labels: {{- include "agent-sandbox.labels" . | nindent 4 }} - # Kata sandboxes run untrusted, LLM-generated code — enforce a restricted - # Pod Security Standard on the namespace as defense in depth. - pod-security.kubernetes.io/enforce: restricted + # PSS = baseline (NOT restricted). This namespace hosts BOTH the coder + # sandboxes AND the agent-sandbox operator/kata-readiness — and the upstream + # operator + kata tooling are not restricted-compliant (they'd be blocked). + # The coder sandboxes get their real isolation from the KATA micro-VM + # boundary + the restricted securityContext baked into the SandboxTemplate + # pod spec — not from namespace PSS. (Live-test lesson: restricted here + # blocks the v0.5.1 controller pod entirely.) + pod-security.kubernetes.io/enforce: baseline pod-security.kubernetes.io/audit: restricted pod-security.kubernetes.io/warn: restricted From 7cef4f34b5758ec979d35001be8a169d38dd04ca Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 18:00:46 -0400 Subject: [PATCH 066/365] fix(agent-sandbox): use v1beta1 for SandboxTemplate + SandboxWarmPool Operator v0.5.1 deprecates v1alpha1 for these CRDs. Bump to v1beta1 (schema compatible: podTemplate / replicas+sandboxTemplateRef). Verified live: warm pool reconciles 3/3 kata VMs, SandboxClaim(warmPoolRef) binds instantly + pool refills. Guest kernel 6.18.35 vs host 6.12.90 = real VM isolation. --- .../charts/agent-sandbox/templates/20-sandboxtemplate.yaml | 2 +- .../charts/agent-sandbox/templates/40-sandboxwarmpool.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml b/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml index 2c1f173d..5a56cecd 100644 --- a/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/20-sandboxtemplate.yaml @@ -9,7 +9,7 @@ LLM-generated code: The concrete coder image (claude-code | kiro) and per-claim secrets are patched in by the consumer when it binds a SandboxClaim. */ -}} -apiVersion: extensions.agents.x-k8s.io/v1alpha1 +apiVersion: extensions.agents.x-k8s.io/v1beta1 kind: SandboxTemplate metadata: name: {{ .Values.warmPool.templateName }} diff --git a/gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml b/gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml index e0dbd2f1..c58aaff2 100644 --- a/gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/40-sandboxwarmpool.yaml @@ -6,7 +6,7 @@ Factory) binds one via a SandboxClaim and the operator refills the buffer. This replaces the custom pool-manager CronJob — the warm pool is now a first-class operator primitive (requires the vendored v0.5.1 upstream, NOT v0.1.0). */ -}} -apiVersion: extensions.agents.x-k8s.io/v1alpha1 +apiVersion: extensions.agents.x-k8s.io/v1beta1 kind: SandboxWarmPool metadata: name: {{ .Values.warmPool.name | default "coder-warmpool" }} From d7f5d32924fffb4bd92adb63105740fee2ed5a8a Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 18:01:42 -0400 Subject: [PATCH 067/365] feat(agent-sandbox): add operator as GitOps app + fix sync-wave ordering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add agent-sandbox-operator app (vendored v0.5.1 upstream, directory source, sync-wave 0) so the operator + CRDs deploy via GitOps — previously applied manually. Correct ordering: operator (wave 0) → kata-deploy runtime (wave 1) → agent-sandbox chart CRs (wave 2). This is the order Flow B builds on. Verified: YAML parses. --- gitops/addons/bootstrap/default/addons.yaml | 35 +++++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index f316adc2..88116560 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -359,12 +359,35 @@ oam-agent-components: awsRegion: '{{.metadata.annotations.aws_region}}' clusterName: '{{.metadata.annotations.aws_cluster_name}}' -# Agent Sandbox — hardware-isolated Kata micro-VM sandboxes (agents.x-k8s.io -# Sandbox CRD) with a pre-warmed pool kept ready by a pool-manager controller. -# The reusable isolation substrate the Dark Factory coding pipeline (and other -# agent workloads) claim on demand. Sync-wave 2: after the kata runtime is -# installed on nodes (base platform), before agentic workloads that claim a -# sandbox. +# Agent Sandbox OPERATOR (upstream agent-sandbox v0.5.1) — the controller + +# Sandbox/SandboxClaim/SandboxTemplate/SandboxWarmPool CRDs + webhooks. Vendored +# manifest applied directly (it's a self-contained install; the ~400KB CRD set +# is too large for a Helm-templated chart). ServerSideApply + Replace handle the +# oversized CRDs. Sync-wave 0: CRDs + operator MUST exist before the kata-deploy +# runtime (wave 1) and the agent-sandbox chart CRs (wave 2). +agent-sandbox-operator: + enabled: true + namespace: agent-sandbox-system + defaultVersion: '0.5.1' + path: 'gitops/addons/charts/agent-sandbox/upstream' + annotationsAppSet: + argocd.argoproj.io/sync-wave: '0' + syncPolicyAppSet: + preserveResourcesOnDeletion: false + # Directory source of raw manifests, not a Helm chart. + directory: + recurse: true + selector: + matchExpressions: + - key: enable_agent_sandbox + operator: In + values: ['true'] + +# Agent Sandbox capability chart — RuntimeClasses, kata-readiness (removes the +# runtime-not-ready startup taint), coder SandboxTemplate, SandboxWarmPool, and +# the egress NetworkPolicy. Sync-wave 2: after the operator (wave 0) + kata +# runtime (wave 1). Consumers (the Dark Factory, Flow B) then claim from the +# warm pool via a SandboxClaim(warmPoolRef). agent-sandbox: enabled: true namespace: agent-sandbox-system From 7893a82268e02d100858d70b28fc652281dcf63b Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 18:03:44 -0400 Subject: [PATCH 068/365] fix(agent-sandbox): package upstream operator as Helm chart (appset needs it) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The platform ApplicationSet renders path-based addons as Helm charts, so the operator app failed reading upstream/Chart.yaml (raw manifests, no chart). Add a thin Chart.yaml + move the v0.5.1 manifests under templates/ (they have no Helm templating → applied verbatim). Drop the ignored 'directory' config. Verified: helm renders 16 manifests (operator + 4 CRDs + RBAC + webhooks). --- gitops/addons/bootstrap/default/addons.yaml | 3 --- .../addons/charts/agent-sandbox/upstream/Chart.yaml | 11 +++++++++++ .../agent-sandbox-v0.5.1-extensions.yaml | 0 .../agent-sandbox-v0.5.1-manifest.yaml | 0 4 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 gitops/addons/charts/agent-sandbox/upstream/Chart.yaml rename gitops/addons/charts/agent-sandbox/upstream/{ => templates}/agent-sandbox-v0.5.1-extensions.yaml (100%) rename gitops/addons/charts/agent-sandbox/upstream/{ => templates}/agent-sandbox-v0.5.1-manifest.yaml (100%) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index 88116560..c4ff1635 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -374,9 +374,6 @@ agent-sandbox-operator: argocd.argoproj.io/sync-wave: '0' syncPolicyAppSet: preserveResourcesOnDeletion: false - # Directory source of raw manifests, not a Helm chart. - directory: - recurse: true selector: matchExpressions: - key: enable_agent_sandbox diff --git a/gitops/addons/charts/agent-sandbox/upstream/Chart.yaml b/gitops/addons/charts/agent-sandbox/upstream/Chart.yaml new file mode 100644 index 00000000..f4493f7f --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/upstream/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v2 +name: agent-sandbox-operator +description: >- + Upstream agent-sandbox v0.5.1 operator install (controller Deployment + CRDs + + RBAC + webhooks) vendored verbatim from kubernetes-sigs/agent-sandbox. Packaged + as a thin Helm chart so the platform ApplicationSet (which renders addons as + Helm charts) can deploy it. The manifest files under templates/ contain no Helm + templating — they are applied as-is. ServerSideApply handles the oversized CRDs. +type: application +version: 0.5.1 +appVersion: "0.5.1" diff --git a/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-extensions.yaml b/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-extensions.yaml similarity index 100% rename from gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-extensions.yaml rename to gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-extensions.yaml diff --git a/gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-manifest.yaml b/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-manifest.yaml similarity index 100% rename from gitops/addons/charts/agent-sandbox/upstream/agent-sandbox-v0.5.1-manifest.yaml rename to gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-manifest.yaml From acc7e44368ca5b5be581d6bb49567b6eb482adb4 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 18:34:17 -0400 Subject: [PATCH 069/365] fix(agent-sandbox): gate appsets to spoke-dev only (drop hub + prod) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The agent-sandbox, agent-sandbox-operator, and kata-deploy addons were generated on every cluster carrying enable_agent_platform (hub, dev, prod) because their per-addon selector was dropped when the global useSelectors path isn't taken — producing unwanted agent-sandbox-hub and agent-sandbox-spoke-prod ArgoCD apps. Switch each entry from selector (enable_agent_sandbox*) to alwaysSelector (environment In [dev]), mirroring the langfuse hub-only precedent. alwaysSelector is honored regardless of useSelectors, so the generated ApplicationSets match ONLY the environment=dev cluster; hub and prod apps are pruned. Kata needs a nested-virt MNG that exists only on spoke-dev, so dev-only is also the correct capability scope. --- gitops/addons/bootstrap/default/addons.yaml | 27 ++++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index c4ff1635..e8384a02 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -374,11 +374,15 @@ agent-sandbox-operator: argocd.argoproj.io/sync-wave: '0' syncPolicyAppSet: preserveResourcesOnDeletion: false - selector: + # Agent Sandbox is a spoke-dev-only capability (Kata needs a nested-virt MNG; + # not on the hub, and prod stays off). alwaysSelector is honored regardless of + # the global useSelectors flag, so the generated ApplicationSet matches ONLY + # the cluster whose `environment` label is `dev` — hub and prod apps are pruned. + alwaysSelector: matchExpressions: - - key: enable_agent_sandbox + - key: environment operator: In - values: ['true'] + values: ['dev'] # Agent Sandbox capability chart — RuntimeClasses, kata-readiness (removes the # runtime-not-ready startup taint), coder SandboxTemplate, SandboxWarmPool, and @@ -392,11 +396,13 @@ agent-sandbox: path: 'gitops/addons/charts/agent-sandbox' annotationsAppSet: argocd.argoproj.io/sync-wave: '2' - selector: + # Spoke-dev-only (see agent-sandbox-operator note above). alwaysSelector pins + # generation to the `environment: dev` cluster regardless of useSelectors. + alwaysSelector: matchExpressions: - - key: enable_agent_sandbox + - key: environment operator: In - values: ['true'] + values: ['dev'] valuesObject: coderTemplate: bifrostUrl: '{{default "http://bifrost.bifrost.svc.cluster.local:8080" (index .metadata.annotations "bifrost_url")}}' @@ -419,11 +425,14 @@ kata-deploy: chartRepository: 'ghcr.io/kata-containers/kata-deploy-charts' annotationsAppSet: argocd.argoproj.io/sync-wave: '1' - selector: + # Spoke-dev-only: the kata runtime is only installed where a nested-virt MNG + # exists (spoke-dev). alwaysSelector pins generation to `environment: dev` + # regardless of useSelectors — no hub or prod kata-deploy app. + alwaysSelector: matchExpressions: - - key: enable_agent_sandbox_kata + - key: environment operator: In - values: ['true'] + values: ['dev'] valuesObject: kata-deploy: image: From b81c55e8ac3acaa4e31dae356032069298fb1ca9 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 18:47:06 -0400 Subject: [PATCH 070/365] fix(agent-sandbox): merge duplicate controller Deployment into one MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The vendored v0.5.1 bundle defined the agent-sandbox-controller Deployment twice — once in manifest.yaml (core API + webhook port 9443, no --extensions) and once in extensions.yaml (--extensions + config-volume, no 9443). Upstream ships them as two separate 'kubectl apply' bundles where the second overrides the first, but vendoring both into one Helm chart made ArgoCD render the Deployment twice (RepeatedResourceWarning) with last-apply-wins semantics: - if manifest won → controller lacked --extensions → the SandboxTemplate v1alpha1→v1beta1 conversion webhook failed with 'no kind "SandboxTemplate"' (this is what wedged the hub/prod app deletes on a cascade). - if extensions won → controller lacked port 9443 → webhook unreachable. Fix: keep a single controller Deployment in manifest.yaml carrying the union (--leader-elect --extensions, ports 8080/8081/9443, config-volume) and remove the duplicate from extensions.yaml. Now one controller serves both the core API and the extensions conversion webhook. Renders to exactly one Deployment; helm template + YAML parse verified. --- .../agent-sandbox-v0.5.1-extensions.yaml | 51 +++---------------- .../agent-sandbox-v0.5.1-manifest.yaml | 19 +++++++ 2 files changed, 25 insertions(+), 45 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-extensions.yaml b/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-extensions.yaml index 779e970c..4eb66967 100644 --- a/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-extensions.yaml +++ b/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-extensions.yaml @@ -8937,51 +8937,12 @@ rules: - patch - update - watch ---- ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: agent-sandbox-controller - namespace: agent-sandbox-system - labels: - app: agent-sandbox-controller -spec: - replicas: 1 - selector: - matchLabels: - app: agent-sandbox-controller - template: - metadata: - labels: - app: agent-sandbox-controller - spec: - serviceAccountName: agent-sandbox-controller - containers: - - name: agent-sandbox-controller - image: registry.k8s.io/agent-sandbox/agent-sandbox-controller:v0.5.1 - args: - - "--leader-elect=true" - - "--extensions" - ports: - - name: metrics - containerPort: 8080 - protocol: TCP - - name: healthz - containerPort: 8081 - protocol: TCP - volumeMounts: - - name: config-volume - mountPath: /etc/sandbox-config - readOnly: true - volumes: - - name: config-volume - configMap: - name: agent-sandbox-config - optional: true - - ---- +# NOTE: the agent-sandbox-controller Deployment that upstream ships in this +# extensions bundle has been removed to avoid a duplicate with the one in +# agent-sandbox-v0.5.1-manifest.yaml (ArgoCD RepeatedResourceWarning). The +# manifest.yaml Deployment now carries the union of both (--extensions + the +# 9443 webhook port + config-volume), so a single controller serves both the +# core API and the extensions conversion webhook. --- apiVersion: rbac.authorization.k8s.io/v1 diff --git a/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-manifest.yaml b/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-manifest.yaml index a7997907..a38aad60 100644 --- a/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-manifest.yaml +++ b/gitops/addons/charts/agent-sandbox/upstream/templates/agent-sandbox-v0.5.1-manifest.yaml @@ -111,8 +111,18 @@ spec: containers: - name: agent-sandbox-controller image: registry.k8s.io/agent-sandbox/agent-sandbox-controller:v0.5.1 + # Merged controller: --extensions (so the controller knows the + # SandboxTemplate/SandboxClaim/SandboxWarmPool extension types and the + # /convert conversion webhook can answer) PLUS the webhook port 9443 + # that agent-sandbox-webhook-service targets. Upstream ships these as + # two separate Deployments (manifest = core+webhook port, extensions = + # --extensions but no port); vendoring both into one chart made ArgoCD + # see the Deployment twice (RepeatedResourceWarning) and whichever + # applied last won — breaking either the conversion webhook (no 9443) + # or the extension types (no --extensions). This is the union of both. args: - --leader-elect=true + - --extensions ports: - name: metrics containerPort: 8080 @@ -123,6 +133,15 @@ spec: - name: webhook containerPort: 9443 protocol: TCP + volumeMounts: + - name: config-volume + mountPath: /etc/sandbox-config + readOnly: true + volumes: + - name: config-volume + configMap: + name: agent-sandbox-config + optional: true --- From 218b1c6e42cc21e5bfa41b8bfcdeb525881d3b5e Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:00:47 -0400 Subject: [PATCH 071/365] =?UTF-8?q?feat(dark-factory):=20P1=20orchestrator?= =?UTF-8?q?=20k8s=20lib=20=E2=80=94=20claim=20warm=20sandbox=20via=20Sandb?= =?UTF-8?q?oxClaim?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adapts the openclaw session-router to Flow B: keyed on GitHub issue-id, binds a pre-warmed Kata VM from the Flow A SandboxWarmPool via a SandboxClaim (warmPoolRef=coder-warmpool), waits for status.sandbox{name,podIPs}+Ready, and releases on teardown. CRD contract verified against the live v1beta1 schema. --- examples/dark-factory/orchestrator/lib/k8s.js | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 examples/dark-factory/orchestrator/lib/k8s.js diff --git a/examples/dark-factory/orchestrator/lib/k8s.js b/examples/dark-factory/orchestrator/lib/k8s.js new file mode 100644 index 00000000..160906ec --- /dev/null +++ b/examples/dark-factory/orchestrator/lib/k8s.js @@ -0,0 +1,181 @@ +// k8s.js — Sandbox lifecycle against the Flow A warm pool. +// +// The orchestrator claims a pre-warmed Kata micro-VM from the agent-sandbox +// SandboxWarmPool (Flow A) via a SandboxClaim keyed on the GitHub issue id, +// waits for it to bind + become Ready, then tears it down on merge. This is +// the Flow B adaptation of the openclaw session-router: keyed on issue-id +// instead of a Cognito sub, and it binds a warm sandbox instead of creating a +// per-user Sandbox/PVC/Service. +// +// CRD facts (verified against the live v1beta1 CRDs on spoke-dev): +// group/version : extensions.agents.x-k8s.io/v1beta1 +// SandboxClaim.spec : warmPoolRef.name, env[]{containerName,name,value}, +// lifecycle{ttlSecondsAfterFinished,...} +// SandboxClaim.status : sandbox{name, podIPs[]}, conditions[] +const k8s = require("@kubernetes/client-node"); + +const GROUP = "extensions.agents.x-k8s.io"; +const VERSION = "v1beta1"; +const CLAIM_PLURAL = "sandboxclaims"; + +const NAMESPACE = process.env.SANDBOX_NAMESPACE || "agent-sandbox-system"; +const WARM_POOL = process.env.WARM_POOL_NAME || "coder-warmpool"; +const CLAIM_READY_TIMEOUT_MS = parseInt( + process.env.CLAIM_READY_TIMEOUT_MS || "120000", + 10, +); +// Hard TTL so a crashed/abandoned run's sandbox is reclaimed even if teardown +// never runs (the reaper is the other half of this safety net). +const CLAIM_TTL_SECONDS = parseInt( + process.env.CLAIM_TTL_SECONDS || "10800", + 10, +); + +const kc = new k8s.KubeConfig(); +kc.loadFromDefault(); // in-cluster SA when deployed; kubeconfig locally. +const customApi = kc.makeApiClient(k8s.CustomObjectsApi); + +// Retry with capped exponential backoff — the operator/apiserver can be +// briefly unavailable during a warm-pool refill. +async function withRetry(label, fn, { attempts = 4, baseMs = 500 } = {}) { + for (let i = 0; i < attempts; i++) { + try { + return await fn(); + } catch (e) { + if (i === attempts - 1) throw e; + const wait = baseMs * Math.pow(2, i); + console.warn( + `[k8s] ${label} failed (attempt ${i + 1}/${attempts}): ` + + `${e?.body?.message || e?.message || e}; retry in ${wait}ms`, + ); + await new Promise((r) => setTimeout(r, wait)); + } + } +} + +// Deterministic claim name per issue so re-delivered webhooks are idempotent +// (a second trigger for the same issue binds to the existing claim). +function claimName(issueId) { + return `df-issue-${String(issueId).replace(/[^a-z0-9-]/gi, "").toLowerCase()}`; +} + +function buildClaim(issueId, env = []) { + return { + apiVersion: `${GROUP}/${VERSION}`, + kind: "SandboxClaim", + metadata: { + name: claimName(issueId), + namespace: NAMESPACE, + labels: { + "dark-factory.io/managed-by": "orchestrator", + "dark-factory.io/issue": String(issueId), + }, + }, + spec: { + warmPoolRef: { name: WARM_POOL }, + // Per-container env the coder reads (BIFROST_URL, CODER_PROFILE, etc.). + // Secrets are NOT passed here — they arrive via projected tmpfs. + env: env.map((e) => ({ + containerName: e.containerName || "coder", + name: e.name, + value: String(e.value), + })), + lifecycle: { ttlSecondsAfterFinished: CLAIM_TTL_SECONDS }, + }, + }; +} + +// Claim a warm sandbox (idempotent). Returns the created/existing claim object. +async function claimSandbox(issueId, env) { + const name = claimName(issueId); + try { + const existing = await withRetry("claim get", () => + customApi.getNamespacedCustomObject( + GROUP, + VERSION, + NAMESPACE, + CLAIM_PLURAL, + name, + ), + ); + console.log(`[k8s] claim ${name} already exists — reusing`); + return existing.body; + } catch (e) { + if (e?.statusCode !== 404) throw e; + } + const created = await withRetry("claim create", () => + customApi.createNamespacedCustomObject( + GROUP, + VERSION, + NAMESPACE, + CLAIM_PLURAL, + buildClaim(issueId, env), + ), + ); + console.log(`[k8s] SandboxClaim ${name} created (warmPoolRef=${WARM_POOL})`); + return created.body; +} + +function isReady(claim) { + const conds = claim?.status?.conditions || []; + return conds.some((c) => c.type === "Ready" && c.status === "True"); +} + +// Poll the claim until the operator binds a warm sandbox and reports Ready. +// Returns { name, podIPs } of the bound sandbox. +async function waitForClaimBound(issueId, deadlineMs = CLAIM_READY_TIMEOUT_MS) { + const name = claimName(issueId); + const deadline = Date.now() + deadlineMs; + while (Date.now() < deadline) { + const { body: claim } = await customApi.getNamespacedCustomObject( + GROUP, + VERSION, + NAMESPACE, + CLAIM_PLURAL, + name, + ); + const bound = claim?.status?.sandbox?.name; + if (bound && isReady(claim)) { + return { + name: bound, + podIPs: claim.status.sandbox.podIPs || [], + }; + } + await new Promise((r) => setTimeout(r, 2000)); + } + throw new Error( + `SandboxClaim ${name} not Ready within ${deadlineMs}ms ` + + `(warm pool exhausted or sandbox failed to start?)`, + ); +} + +// Teardown — delete the claim; the operator releases the sandbox back / reaps +// it and the warm pool refills. Idempotent (404 is success). +async function releaseSandbox(issueId) { + const name = claimName(issueId); + try { + await withRetry("claim delete", () => + customApi.deleteNamespacedCustomObject( + GROUP, + VERSION, + NAMESPACE, + CLAIM_PLURAL, + name, + ), + ); + console.log(`[k8s] SandboxClaim ${name} deleted (sandbox released)`); + } catch (e) { + if (e?.statusCode === 404) return; + throw e; + } +} + +module.exports = { + NAMESPACE, + WARM_POOL, + claimName, + claimSandbox, + waitForClaimBound, + releaseSandbox, + withRetry, +}; From 46771c743b4ff2e82f97afb1b97ab050334442a4 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:00:48 -0400 Subject: [PATCH 072/365] feat(dark-factory): P1 sticky PR status + PR creation lib One canonical status comment edited in place (found by a hidden marker so re-runs update the same comment), ticking each pipeline stage. P2/P3 stages render as pending placeholders so the surface is stable across phases. --- .../dark-factory/orchestrator/lib/github.js | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 examples/dark-factory/orchestrator/lib/github.js diff --git a/examples/dark-factory/orchestrator/lib/github.js b/examples/dark-factory/orchestrator/lib/github.js new file mode 100644 index 00000000..38bee0a5 --- /dev/null +++ b/examples/dark-factory/orchestrator/lib/github.js @@ -0,0 +1,114 @@ +// github.js — the ONE sticky PR status comment + PR creation. +// +// Flow B's canonical human surface (§7): the orchestrator maintains a single +// comment edited in place as each stage completes — no comment spam. The +// comment is found by a hidden marker so re-runs update the same comment. +// +// Uses the GitHub REST API directly (no SDK dep) with a short-TTL token the +// GitHub Action mints and hands to the orchestrator per run. The orchestrator +// holds the app credentials; the untrusted sandbox never sees this token. +const https = require("https"); + +const API = "api.github.com"; +const MARKER = ""; + +// Ordered pipeline stages shown in the sticky comment. P1 stops before the +// verification stages (holdout/security/devops arrive in P2/P3) — they render +// as pending placeholders so the surface is stable across phases. +const STAGES = [ + { key: "claim", label: "Claimed sandbox (spoke-dev)" }, + { key: "branch", label: "Branch" }, + { key: "implement", label: "Implement" }, + { key: "test", label: "Build + unit tests" }, + { key: "security", label: "Security Agent", phase: "P3" }, + { key: "devops", label: "DevOps Agent", phase: "P3" }, + { key: "holdout", label: "Holdout gate", phase: "P2" }, + { key: "pr", label: "PR ready for review" }, +]; + +function icon(state) { + return { done: "✅", now: "⏳", wait: "⬜", fail: "❌" }[state] || "⬜"; +} + +// Render the sticky comment body from a { stageKey: {state, at, note, log} } map. +function renderStatus(issueNumber, states) { + const lines = [MARKER, `## 🏭 Dark Factory — issue #${issueNumber}`, ""]; + for (const s of STAGES) { + const st = states[s.key] || { state: "wait" }; + const bits = [icon(st.state), s.label]; + if (st.note) bits.push(`· ${st.note}`); + if (s.phase && st.state === "wait") bits.push(`_(${s.phase})_`); + if (st.at) bits.push(`· ${st.at}`); + if (st.log) bits.push(`· [📄 log](${st.log})`); + lines.push(bits.join(" ")); + } + lines.push("", "_Human reviews **results, not diffs**. Approve the PR to merge + teardown._"); + return lines.join("\n"); +} + +function ghRequest(token, method, path, body) { + return new Promise((resolve, reject) => { + const data = body ? JSON.stringify(body) : null; + const req = https.request( + { + host: API, + method, + path, + headers: { + "User-Agent": "dark-factory-orchestrator", + Authorization: `Bearer ${token}`, + Accept: "application/vnd.github+json", + "X-GitHub-Api-Version": "2022-11-28", + ...(data ? { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(data) } : {}), + }, + }, + (res) => { + let buf = ""; + res.on("data", (c) => (buf += c)); + res.on("end", () => { + if (res.statusCode >= 200 && res.statusCode < 300) { + resolve(buf ? JSON.parse(buf) : {}); + } else { + reject(new Error(`GitHub ${method} ${path} → ${res.statusCode}: ${buf}`)); + } + }); + }, + ); + req.on("error", reject); + if (data) req.write(data); + req.end(); + }); +} + +// Find our sticky comment on an issue/PR (they share the comments endpoint). +async function findStickyComment(token, repo, issueNumber) { + const comments = await ghRequest( + token, + "GET", + `/repos/${repo}/issues/${issueNumber}/comments?per_page=100`, + ); + return comments.find((c) => (c.body || "").includes(MARKER)); +} + +// Upsert the sticky comment (create once, then edit in place). +async function upsertStatus(token, repo, issueNumber, states) { + const body = renderStatus(issueNumber, states); + const existing = await findStickyComment(token, repo, issueNumber); + if (existing) { + return ghRequest(token, "PATCH", `/repos/${repo}/issues/comments/${existing.id}`, { body }); + } + return ghRequest(token, "POST", `/repos/${repo}/issues/${issueNumber}/comments`, { body }); +} + +// Open the PR for the coder's branch. Body carries the evidence report. +async function openPullRequest(token, repo, { head, base, title, body }) { + return ghRequest(token, "POST", `/repos/${repo}/pulls`, { + title, + head, + base: base || "main", + body, + maintainer_can_modify: true, + }); +} + +module.exports = { STAGES, renderStatus, upsertStatus, openPullRequest, findStickyComment }; From 77895a1c0180405358620d01b3251ae968e30f17 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:00:48 -0400 Subject: [PATCH 073/365] =?UTF-8?q?feat(dark-factory):=20P1=20coder-drive?= =?UTF-8?q?=20lib=20=E2=80=94=20files+env=20contract=20over=20the=20sandbo?= =?UTF-8?q?x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Posts the run spec (SPEC.md + repo + branch df/issue-N + profile) to the coder agent's in-VM control endpoint and awaits result.json. No secrets cross here — they reach the sandbox via projected tmpfs, out of band. --- .../dark-factory/orchestrator/lib/coder.js | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 examples/dark-factory/orchestrator/lib/coder.js diff --git a/examples/dark-factory/orchestrator/lib/coder.js b/examples/dark-factory/orchestrator/lib/coder.js new file mode 100644 index 00000000..6b3f12ea --- /dev/null +++ b/examples/dark-factory/orchestrator/lib/coder.js @@ -0,0 +1,80 @@ +// coder.js — drive the pluggable coder inside the bound Kata sandbox. +// +// The coder contract crosses the trust boundary as files + env only (§5): +// INPUTS /workspace/SPEC.md, /workspace/repo/ (branch df/issue-), +// tmpfs bifrost-api-key + gh-token (mode 0400) +// ENV CODER_PROFILE, BIFROST_URL +// OUTPUTS git branch df/issue- + /workspace/artifacts/result.json +// +// P1 talks to the coder over the sandbox's in-VM control endpoint (the coder +// image runs a tiny agent listening on :8080 that accepts a run spec and +// streams stage events). The orchestrator NEVER hands cloud credentials in — +// it only writes the spec and reads back result.json. Secrets reach the +// sandbox via projected tmpfs wired on the SandboxTemplate, out of band. +const http = require("http"); + +const CODER_PORT = parseInt(process.env.CODER_PORT || "8080", 10); +const CODER_RUN_TIMEOUT_MS = parseInt( + process.env.CODER_RUN_TIMEOUT_MS || "1800000", // 30 min + 10, +); + +function branchName(issueId) { + return `df/issue-${issueId}`; +} + +// POST the run spec to the coder agent inside the sandbox and await result.json. +// `host` is the bound sandbox pod IP (from SandboxClaim.status.sandbox.podIPs). +function runCoder(host, spec) { + return new Promise((resolve, reject) => { + const payload = JSON.stringify(spec); + const req = http.request( + { + host, + port: CODER_PORT, + path: "/run", + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.byteLength(payload), + }, + timeout: CODER_RUN_TIMEOUT_MS, + }, + (res) => { + let buf = ""; + res.on("data", (c) => (buf += c)); + res.on("end", () => { + if (res.statusCode !== 200) { + return reject(new Error(`coder /run → ${res.statusCode}: ${buf}`)); + } + try { + resolve(JSON.parse(buf)); // result.json + } catch (e) { + reject(new Error(`coder returned non-JSON result: ${buf.slice(0, 200)}`)); + } + }); + }, + ); + req.on("timeout", () => req.destroy(new Error("coder run timed out"))); + req.on("error", reject); + req.write(payload); + req.end(); + }); +} + +// Build the run spec the coder consumes. The issue body becomes SPEC.md; the +// target repo + branch tell the coder where to work. No secrets in here. +function buildRunSpec({ issueId, repo, issueTitle, issueBody, base }) { + return { + spec: `# ${issueTitle}\n\n${issueBody || ""}\n`, + repo, // e.g. "aws-samples/sample-open-agentic-platform" + baseBranch: base || "main", + branch: branchName(issueId), + profile: process.env.CODER_PROFILE || "claude-code", + // P1: implement → build → unit tests until green, then open nothing — + // the orchestrator opens the PR after verification stages. + tasks: ["implement", "build", "test"], + }; +} + +module.exports = { branchName, runCoder, buildRunSpec, CODER_PORT }; From 235136973ec817c9bcc941830c35d1b97b470d11 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:00:48 -0400 Subject: [PATCH 074/365] =?UTF-8?q?feat(dark-factory):=20P1=20orchestrator?= =?UTF-8?q?=20server=20=E2=80=94=20claim=E2=86=92code=E2=86=92PR+live=20st?= =?UTF-8?q?atus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ties the pipeline together: POST /run claims a warm sandbox, drives the coder, opens a PR (no auto-merge), and maintains the live sticky status; POST /teardown releases the sandbox. Trusted component, runs outside the Kata VM. --- examples/dark-factory/orchestrator/server.js | 192 +++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 examples/dark-factory/orchestrator/server.js diff --git a/examples/dark-factory/orchestrator/server.js b/examples/dark-factory/orchestrator/server.js new file mode 100644 index 00000000..3a310784 --- /dev/null +++ b/examples/dark-factory/orchestrator/server.js @@ -0,0 +1,192 @@ +// server.js — Dark Factory orchestrator (Flow B, phase P1). +// +// Trigger → claim warm sandbox → drive the coder → open PR with a live sticky +// status comment → manual teardown. Runs on spoke-dev only, OUTSIDE the Kata +// sandbox, and is the trusted component: it holds the GitHub token (passed +// per-run by the Action) and — in later phases — AWS IAM. The untrusted coder +// sandbox never receives cloud credentials. +// +// Endpoints: +// POST /run { issue, repo, title, body, base, ghToken } → start a run +// POST /teardown { issue, repo, ghToken } → release sandbox +// GET /healthz +// +// This is the Flow B adaptation of the openclaw session-router: keyed on the +// GitHub issue id instead of a Cognito sub, and it binds a warm sandbox from +// the Flow A SandboxWarmPool via a SandboxClaim rather than creating per-user +// resources. +const http = require("http"); +const k8s = require("./lib/k8s"); +const gh = require("./lib/github"); +const coder = require("./lib/coder"); + +const PORT = parseInt(process.env.PORT || "8080", 10); +const BIFROST_URL = + process.env.BIFROST_URL || "http://bifrost.bifrost.svc.cluster.local:8080"; + +function now() { + // Wall-clock HH:MM stamp for the sticky comment. Uses the process TZ. + return new Date().toISOString().slice(11, 16); +} + +async function readJson(req) { + return new Promise((resolve, reject) => { + let buf = ""; + req.on("data", (c) => (buf += c)); + req.on("end", () => { + try { + resolve(buf ? JSON.parse(buf) : {}); + } catch (e) { + reject(e); + } + }); + req.on("error", reject); + }); +} + +// Run the P1 pipeline for one issue. Updates the sticky comment at each stage +// so the human watches the factory work in real time. +async function runPipeline({ issue, repo, title, body, base, ghToken }) { + const states = {}; + const push = async (key, patch) => { + states[key] = { ...(states[key] || {}), ...patch }; + try { + await gh.upsertStatus(ghToken, repo, issue, states); + } catch (e) { + console.error(`[orch] status update failed: ${e.message}`); + } + }; + + // Seed the comment with all stages pending, first one in progress. + await push("claim", { state: "now" }); + + // 1) Claim a warm sandbox (instant if the pool has buffer). + await k8s.claimSandbox(issue, [ + { name: "BIFROST_URL", value: BIFROST_URL }, + { name: "CODER_PROFILE", value: process.env.CODER_PROFILE || "claude-code" }, + ]); + const bound = await k8s.waitForClaimBound(issue); + await push("claim", { state: "done", at: now(), note: bound.name }); + + if (!bound.podIPs.length) { + throw new Error(`bound sandbox ${bound.name} reported no pod IPs`); + } + const host = bound.podIPs[0]; + + // 2) Drive the coder: SPEC.md + branch + implement/build/test until green. + await push("branch", { state: "done", at: now(), note: coder.branchName(issue) }); + await push("implement", { state: "now" }); + + const runSpec = coder.buildRunSpec({ + issueId: issue, + repo, + issueTitle: title, + issueBody: body, + base, + }); + const result = await coder.runCoder(host, runSpec); + + await push("implement", { state: "done", at: now() }); + const testState = result.testsGreen ? "done" : "fail"; + await push("test", { + state: testState, + at: now(), + log: result.logUrl, + note: result.testSummary, + }); + if (!result.testsGreen) { + throw new Error(`coder could not get tests green: ${result.testSummary || "unknown"}`); + } + + // 3) Verification stages are P2/P3 — leave them pending in the surface. + + // 4) Open the PR with the evidence report. P1 = no auto-merge; the human + // approves. Branch protections + CI still apply. + await push("pr", { state: "now" }); + const pr = await gh.openPullRequest(ghToken, repo, { + head: coder.branchName(issue), + base: base || "main", + title: `Dark Factory: ${title} (#${issue})`, + body: prBody(issue, result), + }); + await push("pr", { state: "done", at: now(), note: `#${pr.number}` }); + + console.log(`[orch] issue #${issue} → PR #${pr.number} (${pr.html_url})`); + return { pr: pr.number, url: pr.html_url, sandbox: bound.name }; +} + +function prBody(issue, result) { + return [ + `Closes #${issue}.`, + "", + "## 🏭 Dark Factory report", + "", + "_Autonomously implemented in a hardware-isolated Kata micro-VM (spoke-dev)._", + "_Review the **evidence** below, not the diff line-by-line._", + "", + `- **Build + unit tests:** ${result.testsGreen ? "✅ green" : "❌ failing"}` + + (result.testSummary ? ` — ${result.testSummary}` : ""), + result.logUrl ? `- **Logs:** ${result.logUrl}` : "", + "- **Holdout gate:** _pending (P2)_", + "- **Security / DevOps agents:** _pending (P3)_", + "", + result.summary ? `### What changed\n\n${result.summary}` : "", + ] + .filter(Boolean) + .join("\n"); +} + +const server = http.createServer(async (req, res) => { + try { + if (req.method === "GET" && req.url === "/healthz") { + res.writeHead(200).end("ok"); + return; + } + + if (req.method === "POST" && req.url === "/run") { + const b = await readJson(req); + for (const f of ["issue", "repo", "ghToken"]) { + if (!b[f]) { + res.writeHead(400).end(`missing field: ${f}`); + return; + } + } + // Acknowledge immediately; run the pipeline in the background so the + // Action's HTTP call doesn't hold open for the whole build. + res.writeHead(202).end(JSON.stringify({ accepted: true, issue: b.issue })); + runPipeline(b).catch(async (e) => { + console.error(`[orch] pipeline failed for #${b.issue}: ${e.message}`); + try { + const states = { test: { state: "fail", note: e.message.slice(0, 120) } }; + await gh.upsertStatus(b.ghToken, b.repo, b.issue, states); + } catch (_) { + /* best-effort */ + } + }); + return; + } + + if (req.method === "POST" && req.url === "/teardown") { + const b = await readJson(req); + if (!b.issue) { + res.writeHead(400).end("missing field: issue"); + return; + } + await k8s.releaseSandbox(b.issue); + res.writeHead(200).end(JSON.stringify({ released: true, issue: b.issue })); + return; + } + + res.writeHead(404).end("not found"); + } catch (e) { + console.error(`[orch] request error: ${e.message}`); + res.writeHead(500).end(e.message); + } +}); + +server.listen(PORT, "0.0.0.0", () => { + console.log( + `[orch] Dark Factory orchestrator listening on :${PORT} ` + + `(ns=${k8s.NAMESPACE}, warmPool=${k8s.WARM_POOL})`, + ); +}); From 3cb38976b982bf57be784b30ac687d727db7287a Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:00:48 -0400 Subject: [PATCH 075/365] feat(dark-factory): P1 orchestrator package.json (@kubernetes/client-node) --- examples/dark-factory/orchestrator/package.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 examples/dark-factory/orchestrator/package.json diff --git a/examples/dark-factory/orchestrator/package.json b/examples/dark-factory/orchestrator/package.json new file mode 100644 index 00000000..b20b2c73 --- /dev/null +++ b/examples/dark-factory/orchestrator/package.json @@ -0,0 +1,16 @@ +{ + "name": "dark-factory-orchestrator", + "version": "0.1.0", + "private": true, + "description": "Dark Factory (Flow B) orchestrator — claims a warm Kata sandbox per GitHub issue, drives the coder, opens a PR with a live sticky status comment.", + "main": "server.js", + "scripts": { + "start": "node server.js" + }, + "engines": { + "node": ">=20" + }, + "dependencies": { + "@kubernetes/client-node": "^0.21.0" + } +} From e02c771da49406e0e2ce32e4b8db6c82c79c795d Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:00:48 -0400 Subject: [PATCH 076/365] =?UTF-8?q?feat(dark-factory):=20P1=20orchestrator?= =?UTF-8?q?=20Dockerfile=20=E2=80=94=20non-root=20node:20-alpine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/dark-factory/orchestrator/Dockerfile | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 examples/dark-factory/orchestrator/Dockerfile diff --git a/examples/dark-factory/orchestrator/Dockerfile b/examples/dark-factory/orchestrator/Dockerfile new file mode 100644 index 00000000..232e6b7a --- /dev/null +++ b/examples/dark-factory/orchestrator/Dockerfile @@ -0,0 +1,22 @@ +# Dark Factory orchestrator — small, non-root Node image. +# Purpose-built (not npm-install-at-start) so the trusted component is +# auditable and starts fast. The orchestrator holds credentials and talks to +# the Kubernetes API + GitHub, so it stays minimal. +FROM public.ecr.aws/docker/library/node:20-alpine + +WORKDIR /app + +# Install deps first for layer caching. Only @kubernetes/client-node. +COPY package.json ./ +RUN npm install --omit=dev --no-audit --no-fund + +COPY server.js ./ +COPY lib ./lib + +# Non-root: the orchestrator needs no privileges beyond its ServiceAccount RBAC. +USER 1000 + +ENV PORT=8080 +EXPOSE 8080 + +CMD ["node", "server.js"] From 5d6a499a507a7080122669bbcd34236fbf744efc Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:01:01 -0400 Subject: [PATCH 077/365] =?UTF-8?q?feat(dark-factory):=20P1=20orchestrator?= =?UTF-8?q?=20RBAC=20=E2=80=94=20SandboxClaims=20only,=20namespace-scoped?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SA + Role + RoleBinding scoped to sandboxclaims (CRUD) + read sandboxes in agent-sandbox-system. No pod/exec, no secrets, no cluster scope — mirrors the session-router trust invariants. Validated server-side on spoke-dev. --- .../dark-factory/orchestrator/k8s/rbac.yaml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 examples/dark-factory/orchestrator/k8s/rbac.yaml diff --git a/examples/dark-factory/orchestrator/k8s/rbac.yaml b/examples/dark-factory/orchestrator/k8s/rbac.yaml new file mode 100644 index 00000000..669c70a0 --- /dev/null +++ b/examples/dark-factory/orchestrator/k8s/rbac.yaml @@ -0,0 +1,50 @@ +# Narrowly-scoped RBAC for the Dark Factory orchestrator. +# +# The orchestrator is trusted but still least-privilege: it only manages +# SandboxClaims (claim/inspect/release the warm pool) in the agent-sandbox +# namespace. It does NOT get pod/exec, secrets, or cluster scope — the coder +# runs in a Kata VM the orchestrator never shells into, and all model access is +# via Bifrost. This mirrors the openclaw session-router's trust invariants. +apiVersion: v1 +kind: ServiceAccount +metadata: + name: dark-factory-orchestrator + namespace: agent-sandbox-system + labels: + app: dark-factory-orchestrator + app.kubernetes.io/part-of: dark-factory +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: dark-factory-orchestrator + namespace: agent-sandbox-system + labels: + app: dark-factory-orchestrator + app.kubernetes.io/part-of: dark-factory +rules: + # Claim / inspect / release warm sandboxes. + - apiGroups: ["extensions.agents.x-k8s.io"] + resources: ["sandboxclaims"] + verbs: ["get", "list", "watch", "create", "delete"] + # Read the bound Sandbox + its pod IPs (status) — read-only. + - apiGroups: ["agents.x-k8s.io"] + resources: ["sandboxes"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: dark-factory-orchestrator + namespace: agent-sandbox-system + labels: + app: dark-factory-orchestrator + app.kubernetes.io/part-of: dark-factory +subjects: + - kind: ServiceAccount + name: dark-factory-orchestrator + namespace: agent-sandbox-system +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: dark-factory-orchestrator From 13b813d16cc278b4ba322dd430ee8c58987bf9ae Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:01:01 -0400 Subject: [PATCH 078/365] feat(dark-factory): P1 orchestrator Deployment + Service (spoke-dev) Runs on general Auto Mode nodes (trusted, no micro-VM needed), non-root, readOnlyRootFilesystem, drop ALL caps, healthz probes. Validated server-side. --- .../orchestrator/k8s/deployment.yaml | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 examples/dark-factory/orchestrator/k8s/deployment.yaml diff --git a/examples/dark-factory/orchestrator/k8s/deployment.yaml b/examples/dark-factory/orchestrator/k8s/deployment.yaml new file mode 100644 index 00000000..ecd083ea --- /dev/null +++ b/examples/dark-factory/orchestrator/k8s/deployment.yaml @@ -0,0 +1,94 @@ +# Dark Factory orchestrator — Deployment + Service. +# +# Runs on spoke-dev only (Flow B), on the general-purpose Auto Mode nodes (NOT +# the kata MNG — the orchestrator is trusted and holds no untrusted code, so it +# does not need micro-VM isolation). It reaches the coder sandbox over the +# pod network and the Kubernetes API via its ServiceAccount. +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dark-factory-orchestrator + namespace: agent-sandbox-system + labels: + app: dark-factory-orchestrator + app.kubernetes.io/part-of: dark-factory +spec: + replicas: 1 + selector: + matchLabels: + app: dark-factory-orchestrator + template: + metadata: + labels: + app: dark-factory-orchestrator + app.kubernetes.io/part-of: dark-factory + spec: + serviceAccountName: dark-factory-orchestrator + securityContext: + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + containers: + - name: orchestrator + # Replace with the built image (ECR). Placeholder tag pinned by the + # GitOps values/kustomize overlay at deploy time. + image: public.ecr.aws/docker/library/node:20-alpine + command: ["node", "server.js"] + workingDir: /app + env: + - name: PORT + value: "8080" + - name: SANDBOX_NAMESPACE + value: agent-sandbox-system + - name: WARM_POOL_NAME + value: coder-warmpool + - name: BIFROST_URL + value: http://bifrost.bifrost.svc.cluster.local:8080 + - name: CODER_PROFILE + value: claude-code + ports: + - containerPort: 8080 + name: http + readinessProbe: + httpGet: + path: /healthz + port: http + initialDelaySeconds: 3 + periodSeconds: 10 + livenessProbe: + httpGet: + path: /healthz + port: http + initialDelaySeconds: 10 + periodSeconds: 30 + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: ["ALL"] + resources: + requests: { cpu: 50m, memory: 96Mi } + limits: { cpu: 500m, memory: 256Mi } + volumeMounts: + - name: tmp + mountPath: /tmp + volumes: + - name: tmp + emptyDir: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: dark-factory-orchestrator + namespace: agent-sandbox-system + labels: + app: dark-factory-orchestrator + app.kubernetes.io/part-of: dark-factory +spec: + selector: + app: dark-factory-orchestrator + ports: + - name: http + port: 8080 + targetPort: http From d54f3c2df7126c0123998357508f9fcfb57f802c Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:01:01 -0400 Subject: [PATCH 079/365] =?UTF-8?q?feat(dark-factory):=20P1=20trigger=20?= =?UTF-8?q?=E2=80=94=20GitHub=20Action=20on=20dark-factory=20label?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gates on the label, acknowledges on the issue, and POSTs the run request (issue/repo/title/body/base + short-TTL github.token) to the orchestrator. Net-new — OAP had no GitHub Actions. Least-privilege permissions block. --- .github/workflows/dark-factory.yml | 75 ++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/dark-factory.yml diff --git a/.github/workflows/dark-factory.yml b/.github/workflows/dark-factory.yml new file mode 100644 index 00000000..8c9dddd0 --- /dev/null +++ b/.github/workflows/dark-factory.yml @@ -0,0 +1,75 @@ +# Dark Factory (Flow B) trigger — issue labeled `dark-factory` → orchestrator. +# +# This is the P1 entrypoint (§4 step 1). It gates on the label, mints a +# short-TTL token scoped to this repo, and POSTs the run request to the +# orchestrator running on spoke-dev. The orchestrator (not this Action) holds +# the long-lived credentials and drives the sandbox; the Action's only job is +# to authenticate the trigger and hand over a short-lived token. +# +# The token here is the workflow's GITHUB_TOKEN (auto-expires when the run +# ends). For cross-repo / org installs, swap in a GitHub App token minted via +# actions/create-github-app-token — the orchestrator treats it the same way. +name: dark-factory + +on: + issues: + types: [labeled] + +# Least-privilege: the orchestrator opens the PR + updates the sticky comment +# using the token we pass, so it needs write on contents + PRs + issues. +permissions: + contents: write + pull-requests: write + issues: write + +jobs: + dispatch: + # Only fire when the `dark-factory` label is the one that was added. + if: github.event.label.name == 'dark-factory' + runs-on: ubuntu-latest + steps: + - name: Acknowledge on the issue + uses: actions/github-script@v7 + with: + script: | + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: '🏭 Dark Factory accepted this issue — claiming a sandbox on spoke-dev…', + }); + + - name: Dispatch to orchestrator + env: + # The orchestrator's ingress URL (private ALB / VPN-reachable). + # Configure as a repo/org variable; kept out of the workflow so the + # endpoint isn't hard-coded. + ORCHESTRATOR_URL: ${{ vars.DARK_FACTORY_ORCHESTRATOR_URL }} + # Shared secret so the orchestrator only accepts trusted triggers. + DISPATCH_TOKEN: ${{ secrets.DARK_FACTORY_DISPATCH_TOKEN }} + GH_TOKEN: ${{ github.token }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + ISSUE_TITLE: ${{ github.event.issue.title }} + ISSUE_BODY: ${{ github.event.issue.body }} + REPO: ${{ github.repository }} + BASE: ${{ github.event.repository.default_branch }} + run: | + set -euo pipefail + if [ -z "${ORCHESTRATOR_URL:-}" ]; then + echo "::error::DARK_FACTORY_ORCHESTRATOR_URL is not set — cannot dispatch." + exit 1 + fi + # Build the JSON payload safely (jq handles escaping of title/body). + payload="$(jq -n \ + --arg issue "$ISSUE_NUMBER" \ + --arg repo "$REPO" \ + --arg title "$ISSUE_TITLE" \ + --arg body "$ISSUE_BODY" \ + --arg base "$BASE" \ + --arg ghToken "$GH_TOKEN" \ + '{issue: ($issue|tonumber), repo: $repo, title: $title, body: $body, base: $base, ghToken: $ghToken}')" + curl -fsS -X POST "$ORCHESTRATOR_URL/run" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer ${DISPATCH_TOKEN:-}" \ + -d "$payload" + echo "Dispatched issue #$ISSUE_NUMBER to the Dark Factory orchestrator." From 47cb0977e55d5b18c91e3c9094f33932e4bfe4e4 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:01:01 -0400 Subject: [PATCH 080/365] =?UTF-8?q?feat(dark-factory):=20P1=20in-VM=20code?= =?UTF-8?q?r=20agent=20=E2=80=94=20honors=20the=20files+env=20contract?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Untrusted side: reads Bifrost key + short-TTL gh-token from tmpfs (0400, never in env), writes SPEC.md, checks out df/issue-N, runs Claude Code headless via Bifrost, builds+tests until green (bounded, RETRY.md on failure), returns result.json. Kiro is a one-branch swap in runProfile(). --- examples/dark-factory/coder/agent.js | 159 +++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 examples/dark-factory/coder/agent.js diff --git a/examples/dark-factory/coder/agent.js b/examples/dark-factory/coder/agent.js new file mode 100644 index 00000000..56dd80ce --- /dev/null +++ b/examples/dark-factory/coder/agent.js @@ -0,0 +1,159 @@ +// agent.js — the in-VM coder agent (runs INSIDE the Kata micro-VM sandbox). +// +// This is the untrusted side of the trust boundary. It holds NO cloud +// credentials — only a Bifrost API key + a short-TTL GitHub token, both read +// from projected tmpfs (mode 0400), used, and never placed in the environment. +// It listens on :8080 for a run spec from the orchestrator, then: +// 1. writes /workspace/SPEC.md from the issue +// 2. checks out the target repo on branch df/issue- +// 3. runs the pluggable coder (Claude Code headless by default) via Bifrost +// 4. builds + runs unit tests until green (bounded attempts) +// 5. pushes the branch and returns /workspace/artifacts/result.json +// +// The concrete coder invocation is profile-pluggable (§5). This reference +// wires the contract and the Claude Code headless call; swapping to Kiro is a +// single branch in runProfile(). +const http = require("http"); +const fs = require("fs"); +const { execFileSync } = require("child_process"); + +const PORT = parseInt(process.env.CODER_PORT || "8080", 10); +const WORKSPACE = process.env.WORKSPACE || "/workspace"; +const BIFROST_URL = process.env.BIFROST_URL || "http://bifrost.bifrost.svc.cluster.local:8080"; +const MAX_TEST_ATTEMPTS = parseInt(process.env.MAX_TEST_ATTEMPTS || "3", 10); + +// Secrets live on tmpfs, mode 0400 — read at point of use, never in env. +function readSecret(path) { + try { + return fs.readFileSync(path, "utf8").trim(); + } catch { + return null; + } +} +const BIFROST_KEY_PATH = process.env.BIFROST_KEY_PATH || "/etc/secrets/bifrost-api-key"; +const GH_TOKEN_PATH = process.env.GH_TOKEN_PATH || "/etc/secrets/gh-token"; + +function sh(cmd, args, opts = {}) { + return execFileSync(cmd, args, { + cwd: opts.cwd || WORKSPACE, + encoding: "utf8", + stdio: ["ignore", "pipe", "pipe"], + env: opts.env || process.env, + maxBuffer: 32 * 1024 * 1024, + }); +} + +function writeSpec(spec) { + fs.writeFileSync(`${WORKSPACE}/SPEC.md`, spec, { mode: 0o644 }); +} + +// Clone/checkout the target repo on the coder branch. The gh-token authorizes +// the clone + later push; it never enters the process env. +function checkoutRepo(repo, base, branch) { + const token = readSecret(GH_TOKEN_PATH); + if (!token) throw new Error("gh-token not present on tmpfs"); + const url = `https://x-access-token:${token}@github.com/${repo}.git`; + const dir = `${WORKSPACE}/repo`; + if (!fs.existsSync(dir)) { + sh("git", ["clone", "--depth", "1", "--branch", base, url, dir]); + } + sh("git", ["checkout", "-B", branch], { cwd: dir }); + return dir; +} + +// Run the pluggable coder. Claude Code headless routes to Bedrock via Bifrost +// (base-URL override); Kiro headless is the second profile. +function runProfile(profile, repoDir, spec) { + const key = readSecret(BIFROST_KEY_PATH); + if (!key) throw new Error("bifrost-api-key not present on tmpfs"); + const env = { + ...process.env, + ANTHROPIC_BASE_URL: BIFROST_URL, + ANTHROPIC_API_KEY: key, + CLAUDE_CODE_USE_BEDROCK: "1", + }; + if (profile === "kiro") { + // Kiro headless (spec-driven): spec → requirements → design → tasks. + return sh("kiro", ["run", "--headless", "--spec", `${WORKSPACE}/SPEC.md`], { cwd: repoDir, env }); + } + // Default: Claude Code headless, non-interactive, prompted with the spec. + return sh( + "claude", + ["-p", `Implement the change described in ${WORKSPACE}/SPEC.md. Build and run unit tests until green. Commit your work.`], + { cwd: repoDir, env }, + ); +} + +// Build + unit tests. Auto-detects the toolchain; returns { green, summary }. +function buildAndTest(repoDir) { + let summary = ""; + for (let attempt = 1; attempt <= MAX_TEST_ATTEMPTS; attempt++) { + try { + if (fs.existsSync(`${repoDir}/package.json`)) { + sh("npm", ["install", "--no-audit", "--no-fund"], { cwd: repoDir }); + sh("npm", ["test"], { cwd: repoDir }); + } else if (fs.existsSync(`${repoDir}/go.mod`)) { + sh("go", ["test", "./..."], { cwd: repoDir }); + } else if (fs.existsSync(`${repoDir}/pyproject.toml`) || fs.existsSync(`${repoDir}/setup.py`)) { + sh("python", ["-m", "pytest", "-q"], { cwd: repoDir }); + } else { + return { green: true, summary: "no recognized test suite — skipped" }; + } + return { green: true, summary: `tests passed (attempt ${attempt})` }; + } catch (e) { + summary = (e.stdout || e.stderr || e.message || "").toString().slice(-500); + // Give the coder the failure reason and let it try again. + fs.writeFileSync(`${WORKSPACE}/RETRY.md`, `Test failure (attempt ${attempt}):\n${summary}\n`); + } + } + return { green: false, summary: `tests still failing after ${MAX_TEST_ATTEMPTS} attempts: ${summary}` }; +} + +function pushBranch(repoDir, branch) { + sh("git", ["push", "-u", "origin", branch, "--force-with-lease"], { cwd: repoDir }); +} + +function runOnce(runSpec) { + fs.mkdirSync(`${WORKSPACE}/artifacts`, { recursive: true }); + writeSpec(runSpec.spec); + const repoDir = checkoutRepo(runSpec.repo, runSpec.baseBranch, runSpec.branch); + runProfile(runSpec.profile, repoDir, runSpec.spec); + const test = buildAndTest(repoDir); + if (test.green) pushBranch(repoDir, runSpec.branch); + const result = { + branch: runSpec.branch, + testsGreen: test.green, + testSummary: test.summary, + summary: `Implemented per SPEC.md on ${runSpec.branch}.`, + }; + fs.writeFileSync(`${WORKSPACE}/artifacts/result.json`, JSON.stringify(result, null, 2)); + return result; +} + +const server = http.createServer((req, res) => { + if (req.method === "GET" && req.url === "/healthz") { + res.writeHead(200).end("ok"); + return; + } + if (req.method === "POST" && req.url === "/run") { + let buf = ""; + req.on("data", (c) => (buf += c)); + req.on("end", () => { + try { + const result = runOnce(JSON.parse(buf)); + res.writeHead(200, { "Content-Type": "application/json" }).end(JSON.stringify(result)); + } catch (e) { + console.error(`[coder] run failed: ${e.message}`); + res + .writeHead(200, { "Content-Type": "application/json" }) + .end(JSON.stringify({ testsGreen: false, testSummary: e.message })); + } + }); + return; + } + res.writeHead(404).end("not found"); +}); + +server.listen(PORT, "0.0.0.0", () => { + console.log(`[coder] agent listening on :${PORT} (workspace=${WORKSPACE}, bifrost=${BIFROST_URL})`); +}); From 9904e712e220872b245036411f0440f5d46454e4 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:01:01 -0400 Subject: [PATCH 081/365] =?UTF-8?q?feat(dark-factory):=20P1=20coder=20Dock?= =?UTF-8?q?erfile=20=E2=80=94=20Kata-VM=20image,=20no=20baked=20creds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/dark-factory/coder/Dockerfile | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 examples/dark-factory/coder/Dockerfile diff --git a/examples/dark-factory/coder/Dockerfile b/examples/dark-factory/coder/Dockerfile new file mode 100644 index 00000000..1fcac88a --- /dev/null +++ b/examples/dark-factory/coder/Dockerfile @@ -0,0 +1,26 @@ +# Dark Factory coder image — runs INSIDE the Kata micro-VM sandbox. +# +# Bundles the in-VM agent + the toolchains a coder run needs (git, node, the +# Claude Code CLI). This is untrusted-code territory: the image carries no +# credentials — secrets are injected at runtime via projected tmpfs (0400) and +# model access is only through Bifrost. Keep it lean and pinned. +FROM public.ecr.aws/docker/library/node:20-alpine + +# Toolchains for build/test across common stacks + git for checkout/push. +# (Extend per the repos the factory targets; kept minimal for P1.) +RUN apk add --no-cache git bash python3 py3-pip go + +# Claude Code headless CLI (primary coder profile). Pinned via npm. +RUN npm install -g @anthropic-ai/claude-code + +WORKDIR /app +COPY agent.js ./ + +# Non-root, matches the SandboxTemplate securityContext (runAsUser 1000). +USER 1000 + +ENV CODER_PORT=8080 \ + WORKSPACE=/workspace +EXPOSE 8080 + +CMD ["node", "agent.js"] From bfad46ad1d3b81e7149090f34f1f7e45fab918a9 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:01:01 -0400 Subject: [PATCH 082/365] =?UTF-8?q?feat(dark-factory):=20P1=20ArgoCD=20app?= =?UTF-8?q?=20=E2=80=94=20orchestrator=20pinned=20to=20spoke-dev=20only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/dark-factory/gitops-app.yaml | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 examples/dark-factory/gitops-app.yaml diff --git a/examples/dark-factory/gitops-app.yaml b/examples/dark-factory/gitops-app.yaml new file mode 100644 index 00000000..66b9007d --- /dev/null +++ b/examples/dark-factory/gitops-app.yaml @@ -0,0 +1,38 @@ +# ArgoCD Application for the Dark Factory orchestrator (Flow B, P1). +# +# Deploys the orchestrator's k8s manifests onto spoke-dev ONLY. Flow B runs on +# spoke-dev exclusively (prod is never a test bed — see docs/dark-factory §10). +# The `destination.name: spoke-dev` pins it to the dev spoke; apply this on the +# hub ArgoCD (the same control plane that owns the agent-sandbox appsets). +# +# The coder image is not deployed here — it's referenced by the Flow A +# SandboxTemplate that the warm pool clones; the orchestrator only claims from +# that pool. Build + push both images (orchestrator, coder) to ECR and pin the +# tags before enabling. +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: dark-factory-orchestrator + namespace: argocd + labels: + app.kubernetes.io/part-of: dark-factory + annotations: + # After the agent-sandbox capability (Flow A) is up. + argocd.argoproj.io/sync-wave: "3" +spec: + project: default + source: + repoURL: https://github.com/aws-samples/sample-open-agentic-platform.git + targetRevision: dark-factory-autonomous-agent-coding-pattern + path: examples/dark-factory/orchestrator/k8s + destination: + # spoke-dev only — Flow B does not run on hub or prod. + name: spoke-dev + namespace: agent-sandbox-system + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=false # agent-sandbox-system is owned by Flow A + - ServerSideApply=true From 14a41fae65fc68ca4b1275c17841f3f21048e0e2 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Fri, 10 Jul 2026 19:01:02 -0400 Subject: [PATCH 083/365] =?UTF-8?q?docs(dark-factory):=20P1=20README=20?= =?UTF-8?q?=E2=80=94=20components,=20request=20flow,=20claim=20contract,?= =?UTF-8?q?=20trust=20boundary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/dark-factory/README.md | 110 ++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 examples/dark-factory/README.md diff --git a/examples/dark-factory/README.md b/examples/dark-factory/README.md new file mode 100644 index 00000000..7bd262a3 --- /dev/null +++ b/examples/dark-factory/README.md @@ -0,0 +1,110 @@ +# Dark Factory — Flow B, Phase P1 + +**Trigger → claim warm sandbox → drive the coder → open a PR with a live sticky status → manual +teardown.** The first independently-useful slice of the [Dark Factory pattern](../../docs/dark-factory/README.md) +and the first real consumer of **[Flow A](../../docs/dark-factory/diagrams/flow-a-sandbox-capability.md)**'s +Kata micro-VM warm pool. + +Runs on **spoke-dev only**. Autonomy is bounded here: P1 opens a PR and **stops** — a human still +reviews and merges. The verification gates (holdout, Security/DevOps agents) arrive in P2/P3. + +## Components + +| Path | Role | Trust | +|---|---|---| +| `.github/workflows/dark-factory.yml` | GitHub Action — gates on the `dark-factory` label, mints a short-TTL token, POSTs to the orchestrator | trigger | +| `orchestrator/server.js` | HTTP service: `/run` drives the pipeline, `/teardown` releases the sandbox | **trusted** (holds the GH token; in later phases, AWS IAM) | +| `orchestrator/lib/k8s.js` | Claims a warm sandbox via a `SandboxClaim(warmPoolRef)`, waits for bind+Ready, releases on teardown | trusted | +| `orchestrator/lib/github.js` | The **one** sticky PR status comment (edited in place) + PR creation | trusted | +| `orchestrator/lib/coder.js` | Drives the pluggable coder inside the sandbox over its `:8080` control endpoint | trusted → boundary | +| `coder/agent.js` | The in-VM coder agent: writes `SPEC.md`, checks out `df/issue-`, runs Claude Code headless via Bifrost, builds+tests, returns `result.json` | **untrusted** (Kata VM, no cloud creds) | +| `orchestrator/k8s/*` | Deployment + Service + narrowly-scoped RBAC (SandboxClaims only) | — | +| `gitops-app.yaml` | ArgoCD Application pinning the orchestrator to **spoke-dev** | — | + +## Request flow + +``` +GitHub issue (label: dark-factory) + → GitHub Action (gate on label, mint short-TTL token) + → orchestrator POST /run ← trusted; holds GH token, narrow RBAC + ├─ SandboxClaim(warmPoolRef=coder-warmpool) ← binds a warm Kata VM (Flow A) + ├─ wait for status.sandbox {name, podIPs} + Ready + ├─ POST run spec to coder agent in the VM (SPEC.md + branch df/issue-N) + │ coder: implement → build → unit tests until green → push branch + ├─ open PR + maintain ONE sticky status comment (⏳→✅) + └─ (P2/P3) holdout gate + Security/DevOps agents — pending + → human reviews evidence, approves, merges + → orchestrator POST /teardown → delete SandboxClaim (pool refills) +``` + +## The SandboxClaim contract (verified against the live v1beta1 CRD) + +The orchestrator claims from Flow A's `SandboxWarmPool` rather than creating sandboxes: + +```yaml +apiVersion: extensions.agents.x-k8s.io/v1beta1 +kind: SandboxClaim +metadata: { name: df-issue-42, namespace: agent-sandbox-system } +spec: + warmPoolRef: { name: coder-warmpool } # bind a pre-warmed idle sandbox + env: # per-container, NON-secret + - { containerName: coder, name: BIFROST_URL, value: http://bifrost.bifrost.svc.cluster.local:8080 } + lifecycle: { ttlSecondsAfterFinished: 10800 } # safety-net TTL +# status.sandbox.{name, podIPs[]} + status.conditions[Ready] → the bound VM +``` + +## Trust boundary (§10) + +- The **orchestrator** is trusted and runs on general Auto Mode nodes (not the kata MNG). It holds + the GitHub token (handed per-run by the Action) and — in later phases — AWS IAM. Its RBAC is + scoped to `sandboxclaims` (+ read `sandboxes`) in one namespace; no pod/exec, no secrets, no + cluster scope. +- The **coder** is untrusted: it runs in a **Kata micro-VM**, holds only a Bifrost API key + a + short-TTL GitHub token via **projected tmpfs (mode 0400)** — read at point of use, never in env — + and reaches models only through **Bifrost**. Flow A's NetworkPolicy locks egress to + Bifrost + DNS + GitHub. +- This breaks the **lethal trifecta** (untrusted issue text + credentials + egress): credentials are + never in the issue-ingesting sandbox context, and egress is denied by default. + +## Build & deploy (staged — not auto-deployed) + +```bash +# 1) Build + push both images to ECR, pin the tags. +docker build -t /dark-factory-orchestrator:0.1.0 examples/dark-factory/orchestrator +docker build -t /dark-factory-coder:0.1.0 examples/dark-factory/coder +# → set the coder image on the Flow A SandboxTemplate (coderTemplate.image) +# → set the orchestrator image in orchestrator/k8s/deployment.yaml + +# 2) Deploy the orchestrator onto spoke-dev. +kubectl --context hub apply -f examples/dark-factory/gitops-app.yaml # ArgoCD (recommended) +# or directly: +kubectl --context spoke-dev apply -f examples/dark-factory/orchestrator/k8s/ + +# 3) Wire the trigger. +# repo/org variable DARK_FACTORY_ORCHESTRATOR_URL = https:// +# repo/org secret DARK_FACTORY_DISPATCH_TOKEN = shared dispatch secret +# Label an issue `dark-factory` to fire a run. +``` + +## Configuration (orchestrator env) + +| Var | Default | Purpose | +|---|---|---| +| `SANDBOX_NAMESPACE` | `agent-sandbox-system` | Where the warm pool + claims live | +| `WARM_POOL_NAME` | `coder-warmpool` | Flow A `SandboxWarmPool` to claim from | +| `CLAIM_READY_TIMEOUT_MS` | `120000` | Max wait for a claim to bind + Ready | +| `CLAIM_TTL_SECONDS` | `10800` | Safety-net TTL on the claim (reaper backstop) | +| `BIFROST_URL` | `http://bifrost.bifrost.svc.cluster.local:8080` | LLM gateway the coder uses | +| `CODER_PROFILE` | `claude-code` | `claude-code` (primary) or `kiro` | + +## Not in P1 (by design) + +- **Holdout gate** (P2), **AWS Security/DevOps agents** (P3) — rendered as pending in the sticky + comment so the surface is stable. +- **Auto-teardown on merge** + reaper (P4) — P1 teardown is the manual `/teardown` call. +- **Iterative comment loop** — P1 opens the PR and stops; the human drives from there. + +## Status + +Code + manifests validated (JS syntax, server-side `kubectl --dry-run` against spoke-dev). Images +are **not** built/pushed and nothing is deployed yet — this is the staged P1 implementation. From e97667bd768fc3126b4d712af48b9046e70697b5 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:01:56 -0400 Subject: [PATCH 084/365] =?UTF-8?q?docs(dark-factory):=20Flow=20A=20diagra?= =?UTF-8?q?m=20=E2=80=94=20relocate=20sandbox=20capability=20to=20hub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Capability moves spoke-dev → hub (build/author plane, co-located with Argo Workflows). Diagram now shows the tainted nested-virt nodegroup, native SandboxWarmPool (not the dropped pool-manager), control-plane fencing + NetworkPolicy egress lockdown, and hub-only alwaysSelector gating. Restyled to the EKS-isolation deck palette (gray/orange/green/pink, light background). --- .../diagrams/flow-a-sandbox-capability.md | 132 ++++++++++-------- 1 file changed, 77 insertions(+), 55 deletions(-) diff --git a/docs/dark-factory/diagrams/flow-a-sandbox-capability.md b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md index 6c6777a1..5cb62532 100644 --- a/docs/dark-factory/diagrams/flow-a-sandbox-capability.md +++ b/docs/dark-factory/diagrams/flow-a-sandbox-capability.md @@ -3,8 +3,18 @@ The **Agent Sandbox** capability ships as a first-class agent-platform GitOps addon. When the platform is deployed, it stands up the Kata (Cloud Hypervisor) micro-VM runtime, the `Sandbox` CRD + operator, and a **warm pool** of pre-provisioned, hardware-isolated sandboxes kept ready by -a pool-manager controller. This is independent of the Dark Factory — it is the reusable isolation -substrate any agent workload can claim. +the operator's native `SandboxWarmPool`. This is independent of the Dark Factory — it is the +reusable isolation substrate any agent workload can claim. + +> **Hosted on the hub cluster** — the build/author plane, co-located with Argo Workflows so Flow B +> orchestrates the pool single-cluster. Because the hub runs EKS Auto Mode (which can't host Kata) +> and the fleet control plane (Keycloak/ArgoCD/external-secrets), the capability requires a +> **dedicated tainted nested-virt nodegroup** and **control-plane egress lockdown** — see +> [README §3](../README.md#3-flow-a--agent-sandbox-capability-permanent-platform-feature) and +> [§10](../README.md#10-security-model). + +> Palette: **gray** = neutral · **orange** = active/warm · **green** = ready/verified · +> **pink** = fenced-off control plane · dashed = feedback/enforcement. --- @@ -13,82 +23,83 @@ substrate any agent workload can claim. ```mermaid %%{init: {'theme':'base','themeVariables':{ 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'14px', - 'primaryColor':'#2E3E50','primaryBorderColor':'#5F7185','primaryTextColor':'#FFFFFF', - 'lineColor':'#8B99A7','clusterBkg':'#26374A','clusterBorder':'#5F7185', - 'tertiaryColor':'#1B2733'}}}%% + 'primaryColor':'#F2F4F7','primaryBorderColor':'#B6C0CC','primaryTextColor':'#1B2733', + 'lineColor':'#8B99A7','clusterBkg':'#FBFCFD','clusterBorder':'#C7D0DA'}}}%% flowchart TB - classDef canvas fill:#1B2733,stroke:#1B2733,color:#FFFFFF; - classDef band fill:#26374A,stroke:#5F7185,color:#E8EDF2,stroke-width:1px; - classDef node fill:#2E4257,stroke:#7C8FA3,color:#FFFFFF,stroke-width:1.2px; - classDef accent fill:#FF9900,stroke:#EC7211,color:#161E2D,stroke-width:1.5px; - classDef warm fill:#22384A,stroke:#FF9900,color:#FFFFFF,stroke-width:1.4px; - classDef muted fill:#243244,stroke:#415266,color:#AEB8C4,stroke-width:1px; - - subgraph CANVAS[" "] + classDef active fill:#F59E0B,stroke:#D67E00,color:#1B2733,stroke-width:1.5px; + classDef ok fill:#10B981,stroke:#0E9A6C,color:#FFFFFF,stroke-width:1.3px; + classDef node fill:#FDE7C7,stroke:#E0A960,color:#1B2733,stroke-width:1.2px; + classDef vm fill:#FFF3E0,stroke:#F59E0B,color:#1B2733,stroke-width:1.4px; + classDef guard fill:#FCE7EA,stroke:#E0555F,color:#7A2531,stroke-width:1.3px; + classDef neutral fill:#ECEFF3,stroke:#B6C0CC,color:#1B2733,stroke-width:1px; + + subgraph GITOPS["🚀 GitOps enablement · ArgoCD app-of-apps"] + direction LR + FLAG["alwaysSelector
environment In [control-plane]
→ hub only"]:::active + APPSET["ApplicationSet
cluster-generator
sync-wave 0 → 1 → 2"]:::node + FLAG --> APPSET + end + + subgraph HUB["☸️ Hub cluster · build / author plane"] direction TB - subgraph GITOPS["🚀 GitOps enablement · ArgoCD app-of-apps"] + subgraph CP["🔐 Control plane — fenced off"] direction LR - FLAG["enable_agent_sandbox: true
overlays/environments/dev,prod"]:::accent - APPSET["ApplicationSet
cluster-generator
sync-wave −1 → 1"]:::node - FLAG --> APPSET + KC["Keycloak · ArgoCD · external-secrets"]:::guard end - subgraph CLUSTER["☸️ spoke-dev & spoke-prod · capability on both"] - direction TB - - subgraph OPER["🧩 Sandbox control plane"] - direction LR - CRD["Sandbox CRD
agents.x-k8s.io/v1alpha1
+ SandboxTemplate + SandboxClaim"]:::node - OPCTL["agent-sandbox
operator"]:::node - POOL["pool-manager
keeps N idle · refills · shrinks"]:::accent - CRD --- OPCTL --- POOL - end - - subgraph WARM["🔥 Warm pool · target buffer = 2–3 idle"] - direction LR - S1(["idle · sandbox-1"]):::warm - S2(["idle · sandbox-2"]):::warm - S3(["idle · sandbox-3"]):::warm - end - - subgraph KATA["🛡️ Kata micro-VM runtime · hardware isolation"] - direction LR - RC["RuntimeClasses
kata-clh · kata-qemu · kata-fc"]:::node - KD["kata-deploy
DaemonSet"]:::node - NP["Karpenter pools
kata-nested c8i/m8i · kata-metal"]:::node - RC --- KD --- NP - end - - MODEL["🧠 Bifrost LLM gateway
bifrost.bifrost.svc:8080 → Bedrock"]:::node + subgraph OPER["🧩 Sandbox control plane"] + direction LR + CRD["CRDs · extensions.agents.x-k8s.io/v1beta1
Sandbox · SandboxClaim · SandboxTemplate · SandboxWarmPool"]:::node + OPCTL["agent-sandbox operator
(vendored v0.5.1)"]:::node + WP["SandboxWarmPool
coder-warmpool · keeps N idle · refills"]:::active + CRD --- OPCTL --- WP end + + subgraph WARM["🔥 Warm pool · target buffer = 2–3 idle"] + direction LR + S1(["idle · sandbox-1"]):::vm + S2(["idle · sandbox-2"]):::vm + S3(["idle · sandbox-3"]):::vm + end + + subgraph KATA["🛡️ Tainted nested-virt nodegroup · kata=true:NoSchedule"] + direction LR + RC["RuntimeClasses
kata-clh · kata-qemu"]:::node + KD["kata-deploy
DaemonSet"]:::node + MNG["nested-virt MNG
c8i/m8i · /dev/kvm · min=0"]:::node + RC --- KD --- MNG + end + + NP{{"⛔ NetworkPolicy — deny control-plane + IMDS ·
allow DNS + Bifrost + GitHub"}}:::guard + MODEL["🧠 Bifrost LLM gateway
bifrost.bifrost.svc:8080 → Bedrock"]:::ok end APPSET ==> OPER APPSET ==> KATA - POOL ==> WARM - WARM -.-> KATA - WARM -.-> MODEL + WP ==> WARM + WARM -.runs on.-> KATA + WARM -.model access.-> MODEL + NP -. enforces .- WARM + WARM -. blocked .-x CP - class CANVAS canvas - class GITOPS,CLUSTER,OPER,WARM,KATA band + class GITOPS,HUB,CP,OPER,WARM,KATA band linkStyle default stroke:#8B99A7,stroke-width:1.4px; - linkStyle 7 stroke:#FF9900,stroke-width:2px; ``` --- ## A.2 — Warm-pool cycling (claim ↔ refill ↔ shrink) -The pool-manager keeps a steady buffer of idle sandboxes so a consumer (e.g. the Dark Factory) -binds to a **ready** VM instantly instead of paying cold-start. Idle sandboxes use the `Sandbox` +The operator keeps a steady buffer of idle sandboxes so a consumer (e.g. the Dark Factory) binds to +a **ready** VM instantly instead of paying cold-start. Idle sandboxes use the `Sandbox` `replicas: 0/1` **scale subresource**, so "idle" is cheap. ```mermaid %%{init: {'theme':'base','themeVariables':{ 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'14px', - 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', - 'lineColor':'#8B99A7','labelColor':'#E8EDF2'}}}%% + 'primaryColor':'#F59E0B','primaryBorderColor':'#D67E00','primaryTextColor':'#1B2733', + 'lineColor':'#8B99A7','labelColor':'#1B2733'}}}%% stateDiagram-v2 direction LR [*] --> Provisioning : pool below target @@ -101,8 +112,19 @@ stateDiagram-v2 Idle --> Retired : pool above target · shrink Retired --> [*] + classDef prov fill:#ECEFF3,stroke:#B6C0CC,color:#1B2733; + classDef idle fill:#FDE7C7,stroke:#E0A960,color:#1B2733; + classDef active fill:#F59E0B,stroke:#D67E00,color:#1B2733; + classDef paused fill:#ECEFF3,stroke:#B6C0CC,color:#5A6675; + classDef gone fill:#FCE7EA,stroke:#E0555F,color:#7A2531; + class Provisioning prov + class Idle idle + class Claimed active + class Paused paused + class Retired gone + note right of Claimed - On CLAIM the pool-manager provisions + On CLAIM the operator provisions a REFILL so the buffer stays at target. end note note right of Retired From ed54992ea171876c43f36ee064bbe1d2f17f5e84 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:01:58 -0400 Subject: [PATCH 085/365] =?UTF-8?q?docs(dark-factory):=20Flow=20B=20diagra?= =?UTF-8?q?ms=20=E2=80=94=20Argo=20Workflows=20on=20hub,=20single-cluster?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rewrites the Flow B diagrams for the hub-hosted Argo model: B.1 hub topology + isolation boundary, B.2 df-run DAG (parallel verification), B.3 event-driven lifecycle via Argo Events (short workflows keyed on issue-id), B.4 task lifecycle state machine, B.5 sticky PR comment. Restyled to the EKS-isolation deck palette. All 7 diagrams render clean via mmdc. --- .../diagrams/flow-b-dark-factory.md | 337 +++++++++++------- 1 file changed, 217 insertions(+), 120 deletions(-) diff --git a/docs/dark-factory/diagrams/flow-b-dark-factory.md b/docs/dark-factory/diagrams/flow-b-dark-factory.md index f314437d..ec4c0e7f 100644 --- a/docs/dark-factory/diagrams/flow-b-dark-factory.md +++ b/docs/dark-factory/diagrams/flow-b-dark-factory.md @@ -1,183 +1,280 @@ # Flow B — Dark Factory (issue → PR → merge → teardown) -A GitHub issue is a **spec**. The factory claims a warm sandbox on spoke-dev, a pluggable coding -assistant implements + tests the change, the orchestrator runs independent verification (holdout -gate + AWS frontier agents), a PR is opened with a **live-updating** status, a human approves on -results, and everything is torn down on merge. Autonomy **Level 3**: the human's only job is to +A GitHub issue is a **spec**. On the **hub cluster**, **Argo Workflows** claims a warm Kata sandbox, +a pluggable coding assistant implements + tests the change and pushes a branch, the workflow opens a +PR and runs independent verification (holdout gate + AWS Security/DevOps review), a human approves on +**results**, and everything is torn down on merge. Autonomy **Level 3**: the human's only job is to approve the merge. +> **Runs on the hub** — the build/author plane, co-located with Argo Workflows and the Flow A warm +> pool. Single-cluster orchestration: the workflow watches the coder pod and eval Job directly. See +> [README §2](../README.md#2-two-flows-at-a-glance) for *why the hub, not a spoke*, and +> [§10](../README.md#10-security-model) for the control-plane isolation that makes it safe. + +> Diagrams use the Dark Factory palette: **gray** = neutral/queued · **orange** = active · +> **green** = success/verified · **pink** = rework · **red** = fail/blocked · dashed = feedback loop. + --- -## B.1 — End-to-end pipeline (lights-off assembly line) +## B.1 — Hub topology & isolation boundary + +The Dark Factory lane and the hub's control-plane services share a cluster, so the isolation +boundary is explicit: coder VMs run **only** on a dedicated **tainted nested-virt nodegroup**, and a +**NetworkPolicy** denies egress to the control-plane services (Keycloak / ArgoCD / external-secrets / +Argo) and IMDS — allowing only DNS + Bifrost + GitHub. ```mermaid %%{init: {'theme':'base','themeVariables':{ - 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'13.5px', - 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', - 'lineColor':'#8B99A7','clusterBkg':'#26374A','clusterBorder':'#5F7185'}}}%% -flowchart LR - classDef canvas fill:#1B2733,stroke:#1B2733,color:#FFFFFF; - classDef band fill:#26374A,stroke:#5F7185,color:#E8EDF2,stroke-width:1px; - classDef node fill:#2E4257,stroke:#7C8FA3,color:#FFFFFF,stroke-width:1.2px; - classDef accent fill:#FF9900,stroke:#EC7211,color:#161E2D,stroke-width:1.5px; - classDef human fill:#22384A,stroke:#FF9900,color:#FFFFFF,stroke-width:1.4px; - classDef gate fill:#2E4257,stroke:#FF9900,color:#FFFFFF,stroke-width:1.4px; - - subgraph CANVAS[" "] - direction LR + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'14px', + 'primaryColor':'#F2F4F7','primaryBorderColor':'#B6C0CC','primaryTextColor':'#1B2733', + 'lineColor':'#8B99A7','clusterBkg':'#FBFCFD','clusterBorder':'#C7D0DA'}}}%% +flowchart TB + classDef active fill:#F59E0B,stroke:#D67E00,color:#1B2733,stroke-width:1.4px; + classDef ok fill:#10B981,stroke:#0E9A6C,color:#FFFFFF,stroke-width:1.3px; + classDef node fill:#FDE7C7,stroke:#E0A960,color:#1B2733,stroke-width:1.2px; + classDef vm fill:#FFF3E0,stroke:#F59E0B,color:#1B2733,stroke-width:1.4px; + classDef guard fill:#FCE7EA,stroke:#E0555F,color:#7A2531,stroke-width:1.3px; + classDef neutral fill:#ECEFF3,stroke:#B6C0CC,color:#1B2733,stroke-width:1px; - START(["🧾 Issue opened
label: dark-factory"]):::accent + GH["🐙 GitHub
issue · PR · webhook"]:::active - subgraph T["① Trigger"] - GHA["⚙️ GitHub Action
gate on label
mint short-TTL token"]:::node - end + subgraph HUB["☸️ Hub cluster · build / author plane"] + direction TB - subgraph O["② Orchestrate · spoke-dev · trusted (holds AWS IAM)"] - ORCH["🎛️ Orchestrator
key = issue-id
claim · drive · report"]:::node - CLAIM["🔒 SandboxClaim
bind warm sandbox · pool refills"]:::node - ORCH --> CLAIM + subgraph CP["🔐 Control plane — fenced off from the sandbox"] + direction LR + KC["Keycloak"]:::guard + ACD["ArgoCD"]:::guard + ESO["external-secrets"]:::guard end - subgraph SBX["③ Code + self-test · Kata micro-VM · isolated (no cloud creds)"] - CODER["🤖 Pluggable coder
Claude Code | Kiro
reads SPEC.md"]:::node - IMPL["✍️ implement
branch df/issue-N"]:::node - BUILD["🔧 build + unit tests
until green"]:::node - CODER --> IMPL --> BUILD + subgraph DF["🏭 Dark Factory lane"] + direction TB + EVT["Argo Events
Sensor"]:::neutral + WF["Argo Workflows
df-run · df-iterate · df-merge-teardown
holds AWS IAM + GitHub App"]:::active + OPER["agent-sandbox operator
+ SandboxWarmPool"]:::node + EVT --> WF --> OPER end - subgraph V["④ Independent verification · orchestrator-driven (NOT the coder)"] - HOLD["🎯 Holdout gate
hidden scenarios · different-model judge
+ executable tests · ≥90%"]:::gate - SEC["🛡️ AWS Security Agent"]:::node - DEV["🚀 AWS DevOps Agent"]:::node - HOLD -.-> SEC -.-> DEV + subgraph KATA["🛡️ Tainted nested-virt nodegroup · kata=true:NoSchedule"] + direction LR + POOL["🔥 warm pool
coder-warmpool"]:::vm + CODER["coder VM · kata-clh
no cloud creds"]:::vm + EVAL["holdout eval Job"]:::vm + POOL --> CODER end - subgraph P["⑤ Pull Request · live status"] - PR["🔀 PR opened
sticky comment ⏳→✅
results + findings + logs"]:::node - end + NP{{"⛔ NetworkPolicy — deny control-plane + IMDS ·
allow DNS + Bifrost + GitHub only"}}:::guard + MODEL["🧠 Bifrost gateway → Bedrock"]:::ok + end - subgraph H["⑥ Human · Level 3"] - REVIEW{"Approve?
reviews RESULTS"}:::human - COMMENT["💬 PR comment
resume sandbox · iterate
bounded N rounds"]:::human - end + GH -->|webhook| EVT + WF -->|SandboxClaim| OPER + OPER --> POOL + WF -. watch pod / Job .-> CODER + WF -. watch .-> EVAL + CODER -->|push branch| GH + WF -->|open PR · sticky comment · merge| GH + CODER --> MODEL + NP -. enforces .- CODER + CODER -. blocked .-x CP - subgraph TD["⑦ Merge + teardown"] - MERGE["✅ merge PR"]:::accent - DESTROY["🧹 delete sandbox + PVC
+ ephemeral test infra + eval job"]:::node - MERGE --> DESTROY --> DONE(["🏁 done"]):::node - end + class HUB,DF,KATA,CP band + linkStyle default stroke:#8B99A7,stroke-width:1.4px; +``` + +--- + +## B.2 — The `df-run` DAG (claim → code → verify → PR → await approval) - START ==> GHA ==> ORCH - CLAIM ==> CODER - BUILD ==> HOLD - DEV ==> PR - PR ==> REVIEW - REVIEW -->|changes requested| COMMENT - COMMENT -.->|new instruction| CODER - REVIEW ==>|approve| MERGE +All steps are **local to the hub**, so Argo watches pod/Job status directly and owner-references +cascade cleanup. Verification fans out in **parallel**; the coder never grades itself. + +```mermaid +%%{init: {'theme':'base','themeVariables':{ + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'13.5px', + 'primaryColor':'#F2F4F7','primaryBorderColor':'#B6C0CC','primaryTextColor':'#1B2733', + 'lineColor':'#8B99A7','clusterBkg':'#FBFCFD','clusterBorder':'#C7D0DA'}}}%% +flowchart LR + classDef active fill:#F59E0B,stroke:#D67E00,color:#1B2733,stroke-width:1.5px; + classDef ok fill:#10B981,stroke:#0E9A6C,color:#FFFFFF,stroke-width:1.3px; + classDef node fill:#FDE7C7,stroke:#E0A960,color:#1B2733,stroke-width:1.2px; + classDef gate fill:#FFF3E0,stroke:#F59E0B,color:#1B2733,stroke-width:1.4px; + classDef opt fill:#ECEFF3,stroke:#B6C0CC,color:#5A6675,stroke-width:1px; + classDef human fill:#FCE7EA,stroke:#E0555F,color:#7A2531,stroke-width:1.3px; + + START(["issue labeled
dark-factory"]):::active + CLAIM["claim
SandboxClaim → Ready"]:::node + CODE["coder
implement · build · test
push df/issue-N"]:::node + PR["open PR
after tests green"]:::active + + subgraph V["verification · parallel · workflow-driven (never the coder)"] + direction TB + HOLD["🎯 holdout gate
eval Job · diff-model judge
+ tests · ≥90%"]:::gate + SEC["🛡️ Security review
AWS Security Agent"]:::node + DOPS["🚀 DevOps review
AWS DevOps Agent"]:::node + DEEP["🔬 Fable-5 deep-sec
2nd Kata VM · optional"]:::opt end - class CANVAS canvas - class T,O,SBX,V,P,H,TD band - linkStyle default stroke:#8B99A7,stroke-width:1.4px; - linkStyle 7,8,9,10,11,12,15 stroke:#FF9900,stroke-width:2px; + GATE["gate
aggregate findings"]:::gate + CMT["sticky PR comment
⏳→✅ · single writer"]:::ok + WAIT{"await human
approval"}:::human + + START ==> CLAIM ==> CODE ==> PR ==> HOLD + PR ==> SEC + PR ==> DOPS + PR -. optional .-> DEEP + HOLD ==> GATE + SEC ==> GATE + DOPS ==> GATE + DEEP -.-> GATE + GATE ==> CMT ==> WAIT + + ONEXIT["onExit teardown (merge workflow)
delete claim + PVC + eval"]:::opt + WAIT -. df-run ends; approval is a new event .-> ONEXIT + + class V band + linkStyle default stroke:#8B99A7,stroke-width:1.5px; ``` --- -## B.2 — Detailed sequence (who does what, and the trust boundary) +## B.3 — Event-driven lifecycle (Argo Events → short workflows keyed on issue-id) + +Rather than one multi-day suspended workflow, each GitHub event submits a **short-lived workflow**. +Durable state lives in the retained workspace PVC + GitHub + a per-issue state ConfigMap. ```mermaid %%{init: {'theme':'base','themeVariables':{ 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'13px', - 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', - 'actorBkg':'#2E4257','actorBorder':'#FF9900','actorTextColor':'#FFFFFF', - 'signalColor':'#8B99A7','signalTextColor':'#E8EDF2','lineColor':'#8B99A7', - 'noteBkg':'#FF9900','noteTextColor':'#161E2D','noteBorderColor':'#EC7211', - 'loopTextColor':'#E8EDF2','sequenceNumberColor':'#161E2D'}}}%% + 'primaryColor':'#F59E0B','primaryBorderColor':'#D67E00','primaryTextColor':'#1B2733', + 'actorBkg':'#F59E0B','actorBorder':'#D67E00','actorTextColor':'#1B2733', + 'signalColor':'#8B99A7','signalTextColor':'#1B2733','lineColor':'#8B99A7', + 'noteBkg':'#FFF3E0','noteTextColor':'#1B2733','noteBorderColor':'#F59E0B', + 'loopTextColor':'#1B2733','sequenceNumberColor':'#FFFFFF'}}}%% sequenceDiagram autonumber actor Dev as 🧑‍💻 Human participant GH as 🐙 GitHub - participant GHA as ⚙️ Action - participant ORCH as 🎛️ Orchestrator (AWS IAM) + participant SEN as ⚡ Argo Events Sensor + participant WF as 🎛️ Argo Workflows (hub · AWS IAM) participant POOL as 🔥 Warm pool - box rgb(34,56,74) 🛡️ Kata micro-VM · isolated · no cloud creds + box rgb(255,243,224) 🛡️ Kata micro-VM · no cloud creds participant SBX as 🤖 Coder sandbox end - participant EVAL as 🎯 Holdout evaluator - participant AWS as ☁️ AWS Security / DevOps Agents + participant REV as 🛡️ Holdout Job / Security / DevOps Dev->>GH: open issue (label: dark-factory) - GH->>GHA: issues.labeled event - GHA->>ORCH: POST /run (issue #, repo, short-TTL token) - ORCH->>POOL: SandboxClaim (key = issue-id) - POOL-->>ORCH: bound warm sandbox (instant) - Note over POOL: pool-manager provisions a REFILL - - ORCH->>SBX: write SPEC.md + checkout df/issue-N + GH->>SEN: issues.labeled webhook + SEN->>WF: submit df-run (key = issue-id) + WF->>POOL: SandboxClaim(warmPoolRef) + POOL-->>WF: bound warm sandbox (Ready) + WF->>SBX: SPEC.md + checkout df/issue-N activate SBX - SBX->>SBX: implement · build · unit tests (until green) - SBX-->>ORCH: result.json (diff + logs) + SBX->>SBX: implement · build · test (until green) + SBX-->>WF: push branch + result.json deactivate SBX + WF->>GH: open PR (workflow, not coder) + par independent verification + WF->>REV: holdout eval Job (diff-model judge + tests) + WF->>REV: AWS Security + DevOps agents (read-only) + end + REV-->>WF: pass % + findings + WF->>GH: sticky comment (evidence) + label df/awaiting-approval + Note over WF: df-run ENDS here — no multi-day suspend - Note over ORCH,EVAL: Verification is INDEPENDENT of the coder
(coder never sees or edits the holdout) - ORCH->>EVAL: run hidden scenarios vs diff - EVAL-->>ORCH: satisfaction % (different-model judge + real tests) - ORCH->>AWS: invoke Security + DevOps agents on diff - AWS-->>ORCH: findings (advisory) - - ORCH->>GH: open PR + sticky status comment (⏳→✅) - GH-->>Dev: review request (results, not code) - - loop bounded iterations (max N) + opt bounded iterations (max N) Dev->>GH: PR comment (change requested) - GH->>ORCH: comment webhook - ORCH->>POOL: resume sandbox (scale 0→1, same PVC) - ORCH->>SBX: apply comment as new instruction - activate SBX - SBX-->>ORCH: push update - deactivate SBX - ORCH->>GH: update sticky status + GH->>SEN: issue_comment webhook + SEN->>WF: submit df-iterate (re-bind retained PVC) + WF->>SBX: apply comment → push → update sticky comment end - Dev->>GH: ✅ approve + merge - GH->>ORCH: pull_request closed+merged - ORCH->>POOL: release + delete sandbox + PVC - ORCH->>ORCH: delete ephemeral test infra + eval job - Note over ORCH: Reaper CronJob reaps any abandoned run + Dev->>GH: ✅ approve review + GH->>SEN: pull_request_review.approved webhook + SEN->>WF: submit df-merge-teardown + WF->>GH: merge PR (only after human approval) + WF->>POOL: onExit → delete claim + PVC + eval Job + Note over WF: Reaper CronJob sweeps any abandoned run +``` + +--- + +## B.4 — Task lifecycle (what the human sees) + +Mirrors the Dark Factory task-lifecycle model: neutral → active → verify → success, with the +rework/dropped branches. + +```mermaid +%%{init: {'theme':'base','themeVariables':{ + 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'14px', + 'primaryColor':'#F59E0B','primaryBorderColor':'#D67E00','primaryTextColor':'#1B2733', + 'lineColor':'#8B99A7','labelColor':'#1B2733'}}}%% +stateDiagram-v2 + direction LR + [*] --> Queued : issue labeled + Queued --> InProgress : sandbox claimed · coding + InProgress --> Inspection : PR open · verification + Inspection --> Merged : human approves ✅ + Inspection --> Rework : changes requested / gate fail + Rework --> InProgress : df-iterate (bounded N) + Rework --> Dropped : max rounds / abandoned + Merged --> [*] + Dropped --> [*] + + classDef queued fill:#ECEFF3,stroke:#B6C0CC,color:#1B2733; + classDef active fill:#F59E0B,stroke:#D67E00,color:#1B2733; + classDef inspect fill:#FDE7C7,stroke:#E0A960,color:#1B2733; + classDef merged fill:#10B981,stroke:#0E9A6C,color:#FFFFFF; + classDef rework fill:#FCE7EA,stroke:#E0555F,color:#7A2531; + classDef dropped fill:#F56565,stroke:#D64545,color:#FFFFFF; + class Queued queued + class InProgress active + class Inspection inspect + class Merged merged + class Rework rework + class Dropped dropped + + note right of Inspection + Holdout ≥90% + Security + DevOps + evidence on the sticky PR comment. + end note + note right of Merged + onExit teardown: delete + sandbox + PVC + eval Job. + end note ``` --- -## B.3 — Live PR status (the sticky comment the human watches) +## B.5 — The one sticky PR comment (single writer = the workflow) -The orchestrator maintains **one** PR comment, edited in place as each stage completes — no comment -spam, one canonical surface (the pattern Copilot/Devin/Factory converge on). +The workflow maintains **one** comment, edited in place via a hidden marker — no comment spam. Until +tests are green there is no PR, so pre-PR status lives on the **issue**; from PR-open onward the +comment is the canonical board. Parallel review steps are serialized by a **per-issue mutex**. ```mermaid %%{init: {'theme':'base','themeVariables':{ 'fontFamily':'Amazon Ember, Helvetica, Arial, sans-serif','fontSize':'13px', - 'primaryColor':'#2E4257','primaryBorderColor':'#7C8FA3','primaryTextColor':'#FFFFFF', - 'lineColor':'#8B99A7','clusterBkg':'#26374A','clusterBorder':'#5F7185'}}}%% + 'primaryColor':'#F2F4F7','primaryBorderColor':'#B6C0CC','primaryTextColor':'#1B2733', + 'lineColor':'#B6C0CC','clusterBkg':'#FBFCFD','clusterBorder':'#C7D0DA'}}}%% flowchart TB - classDef canvas fill:#1B2733,stroke:#1B2733,color:#FFFFFF; - classDef done fill:#22384A,stroke:#3FB950,color:#FFFFFF,stroke-width:1.3px; - classDef now fill:#FF9900,stroke:#EC7211,color:#161E2D,stroke-width:1.5px; - classDef wait fill:#243244,stroke:#5F7185,color:#AEB8C4,stroke-width:1px; + classDef done fill:#10B981,stroke:#0E9A6C,color:#FFFFFF,stroke-width:1.3px; + classDef now fill:#F59E0B,stroke:#D67E00,color:#1B2733,stroke-width:1.5px; + classDef wait fill:#ECEFF3,stroke:#B6C0CC,color:#5A6675,stroke-width:1px; - subgraph CANVAS["🏭 Dark Factory — issue #42"] + subgraph CANVAS["🏭 Dark Factory — issue #42 · PR #128"] direction TB - A["✅ Claimed sandbox (spoke-dev) · 12:01"]:::done + A["✅ Claimed sandbox (hub) · 12:01"]:::done B["✅ Branch df/issue-42 · 12:01"]:::done C["✅ Implement · 12:04"]:::done D["✅ Build + unit tests · 12:07 · 📄 log"]:::done - E["⏳ Security Agent…"]:::now - F["⬜ DevOps Agent"]:::wait - G["⬜ Holdout gate (0/12)"]:::wait - I["⬜ PR ready for review"]:::wait - A --> B --> C --> D --> E --> F --> G --> I + E["✅ PR opened #128 · 12:07"]:::done + F["⏳ Security review…"]:::now + G["⬜ DevOps review"]:::wait + H["⬜ Holdout gate (0/12)"]:::wait + I["⬜ Ready for review"]:::wait + A --> B --> C --> D --> E --> F --> G --> H --> I end - class CANVAS canvas - linkStyle default stroke:#5F7185,stroke-width:1.2px; + linkStyle default stroke:#B6C0CC,stroke-width:1.2px; ``` From 48fda1316f7535999bb0a9a86f4a3f9e8a1c25dd Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:01:58 -0400 Subject: [PATCH 086/365] =?UTF-8?q?docs(dark-factory):=20README=20?= =?UTF-8?q?=E2=80=94=20hub-hosted=20Argo=20orchestration=20+=20review=20ro?= =?UTF-8?q?les?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reworks §2 (why hub not spoke), §3 (hub prereqs: nested-virt MNG + isolation), §4 (Argo pipeline + PR-creation/reporting model), §6.2 (pluggable Security/ DevOps review roles + Fable-5 deep-sec tier; Mythos gated), §7 (single-writer sticky comment), new §7a (Argo/Prometheus success metrics), §8-§10 (iterate workflow, onExit teardown, control-plane isolation), §11-§13 (Argo alignment, phases P0-P5, refreshed open questions). --- docs/dark-factory/README.md | 367 +++++++++++++++++++++++++----------- 1 file changed, 262 insertions(+), 105 deletions(-) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index c0a39bb8..c49646db 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -10,8 +10,10 @@ approves the *results*) merge and tear everything down. This pattern wires that idea onto the **Open Agent Platform (OAP)** using components the platform already has: hardware-isolated **Kata micro-VM sandboxes** (from `eks-platform-openclaw`), the -**Bifrost → Bedrock** LLM gateway, the **hub + spoke-dev/spoke-prod** cluster fleet, and -**AWS-managed frontier agents** (Security, DevOps) for independent review. +**Bifrost → Bedrock** LLM gateway, **Argo Workflows** on the hub as the orchestrator, the +**hub + spoke** cluster fleet, and **AWS-managed frontier agents** (Security, DevOps) for +independent review. The factory itself runs on the **hub build plane**; its output ships to the +spokes as normal deployments. --- @@ -70,7 +72,7 @@ useful on its own and the factory is a consumer of it. |---|---|---| | **What** | A permanent platform feature: Kata micro-VM sandboxes + `Sandbox` CRD + a **warm pool** kept ready | The autonomous coding pipeline: issue → code → test → review → PR → merge → teardown | | **When** | Comes up automatically when the agent platform is deployed | Triggered per GitHub issue labeled `dark-factory` | -| **Where** | Installed on **spoke-dev *and* spoke-prod** (capability on both) | **Runs only on spoke-dev** (prod pool stays dormant) | +| **Where** | Installed on the **hub cluster** — the build/author plane, co-located with Argo Workflows | **Runs on the hub cluster**, orchestrated by Argo Workflows, co-located with the sandbox pool | | **Lifecycle** | Long-lived; pool self-heals to a target buffer | Ephemeral per issue; torn down on merge/close | | **Diagram** | [`diagrams/flow-a-sandbox-capability.md`](diagrams/flow-a-sandbox-capability.md) | [`diagrams/flow-b-dark-factory.md`](diagrams/flow-b-dark-factory.md) | @@ -78,6 +80,19 @@ useful on its own and the factory is a consumer of it. > an isolated VM). The Dark Factory is one *consumer* of that capability. Keeping them separate > means the isolation substrate can ship, be tested, and be reused independently of the factory. +> **Why the hub, not a spoke?** The Dark Factory is a **pre-dev build/author** activity: it *writes* +> code and needs GitHub write access. That belongs on the **hub — the control/build plane** — not on +> a spoke, which is the **deploy/run plane** hosting real enterprise workloads (putting a +> GitHub-write-capable author of untrusted code next to running apps is the wrong placement). The +> factory's output — *merged, reviewed* code — then flows to the spokes as a normal deployment, which +> is the right place for deployment-time security/DevOps gating. Co-locating the sandbox pool with +> Argo Workflows on the hub also keeps orchestration **single-cluster**: the workflow watches the +> coder pod and eval Job directly, owner-references cascade teardown, and no cross-cluster control +> plane is needed. The **Kata micro-VM is the isolation boundary** and travels with the workload — +> so "on the hub" is safe *provided* the control-plane-specific hardening in [§10](#10-security-model) +> is in place (dedicated tainted kata nodegroup + egress lockdown that denies the hub's own +> control-plane services). + --- ## 3. Flow A — Agent Sandbox capability (permanent platform feature) @@ -85,34 +100,58 @@ useful on its own and the factory is a consumer of it. > 📊 **See the fancy diagrams:** [`diagrams/flow-a-sandbox-capability.md`](diagrams/flow-a-sandbox-capability.md) > (capability architecture + warm-pool state machine). -Shipped as a GitOps addon, enabled exactly like every other platform addon — set a flag, an -ApplicationSet fans it onto the labelled clusters: +Shipped as a GitOps addon, enabled exactly like every other platform addon — an ApplicationSet fans +the three agent-sandbox charts (`agent-sandbox-operator`, `agent-sandbox`, `kata-deploy`) onto the +target cluster. The capability is gated to the **hub** via `alwaysSelector`, which is honoured +regardless of the global `useSelectors` flag: ```yaml -# gitops/overlays/environments/{dev,prod}/enabled-addons.yaml -enabledAddons: - enable_agent_sandbox: true # → ApplicationSet cluster-generator → ArgoCD sync waves +# gitops/addons/bootstrap/default/addons.yaml (per agent-sandbox entry) +alwaysSelector: + matchExpressions: + - key: environment + operator: In + values: ['control-plane'] # the hub's cluster-secret label → hub-only ``` -### What the addon installs (all reused from `eks-platform-openclaw`) +> **Migration note:** the capability was first proven on **spoke-dev** (gated `environment In [dev]`). +> It is being relocated to the **hub** (`environment In [control-plane]`) so it sits with Argo +> Workflows on the build plane — see [§2](#2-two-flows-at-a-glance) for why, and Phase 2 of the +> implementation plan for the dev→hub cutover (stand up on hub, then prune the spoke-dev pool). + +### What the addon installs -| Piece | Source in `eks-platform-openclaw` | Role | +| Piece | Source in this repo | Role | |---|---|---| -| **Kata runtime (Cloud Hypervisor default)** | `gitops/helm/kata/` + `kata-deploy` | Hardware VM isolation per sandbox | -| **RuntimeClasses** `kata-clh` · `kata-qemu` · `kata-fc` | `gitops/helm/kata/templates/runtimeclass-*.yaml` | Workload picks VMM via `runtimeClassName` | -| **Karpenter pools** `kata-nested` / `kata-metal` | `gitops/helm/karpenter-nodepools/` | Nested-virt `c8i/m8i` nodes (bare-metal fallback) | -| **`Sandbox` CRD + operator** (`agents.x-k8s.io/v1alpha1`) | `gitops/helm/agent-sandbox/` (sync-wave −1) | One Kata-VM pod per `Sandbox` CR; `replicas 0/1` scale subresource | -| **`SandboxTemplate` / `SandboxClaim`** | `.../agent-sandbox/templates/extensions.yaml` | Claim → template binding (like PVC → PV) | -| **Pool-manager controller** *(net-new)* | — | Maintains the warm buffer; refills on claim; shrinks on release | +| **Sandbox operator + CRDs** (`agents.x-k8s.io` + `extensions.agents.x-k8s.io/v1beta1`) | `gitops/addons/charts/agent-sandbox/upstream/` (vendored v0.5.1, sync-wave 0) | Materializes one Kata-VM pod per `Sandbox`; serves `SandboxClaim`/`SandboxTemplate`/`SandboxWarmPool` + the conversion webhook | +| **Kata runtime (Cloud Hypervisor default)** | `kata-deploy` OCI chart (sync-wave 1) | Installs the containerd handlers on the tainted kata nodes | +| **RuntimeClasses** `kata-clh` · `kata-qemu` | `agent-sandbox/templates/10-runtimeclasses.yaml` (sync-wave 2) | Workload picks its VMM via `runtimeClassName` | +| **`SandboxTemplate` `coder-sandbox`** | `agent-sandbox/templates/20-sandboxtemplate.yaml` | The coder pod spec the warm pool clones (isolation invariants baked in) | +| **`SandboxWarmPool` `coder-warmpool`** | `agent-sandbox/templates/40-sandboxwarmpool.yaml` | Native operator primitive — keeps N idle sandboxes pre-warmed; refills on claim | +| **NetworkPolicy** (egress lockdown) | `agent-sandbox/templates/30-networkpolicy.yaml` | Default-deny egress; allow only DNS + Bifrost + HTTPS — **plus, on the hub, deny the control-plane services** (see [§10](#10-security-model)) | +| **kata-readiness DaemonSet** | `agent-sandbox/templates/15-kata-readiness.yaml` | Removes the `runtime-not-ready` startup taint once kata-deploy is healthy | + +### Hub prerequisites (Auto Mode can't host Kata) -> ⚠️ **Import gap:** the `agent-sandbox` operator is not yet packaged as an OAP addon chart. Flow A's -> first implementation task is to import/repackage it from `eks-platform-openclaw` into the OAP -> addon catalog (`gitops/addons/`). +The hub runs **EKS Auto Mode + Bottlerocket**, which **cannot** run Kata micro-VMs (same blocker +proven on the Auto-Mode spokes). Hosting the capability on the hub therefore requires a **dedicated, +self-managed nested-virt Managed Node Group** alongside Auto Mode: + +| Requirement | Detail | +|---|---| +| **Nested-virt MNG** | `c8i`/`m8i` instances with `cpu_options.nested_virtualization=enabled`, `/dev/kvm` present, `min=0` scale-to-zero. Artifacts in `gitops/addons/charts/agent-sandbox/nodepool/` (`kata-mng.tf` / eksctl / nodeadm userData). | +| **Auto-Mode addon prereqs** | Self-managed nodes get neither CNI nor kube-proxy from Auto Mode — the `vpc-cni` **and** `kube-proxy` EKS addons must be installed or the kata node stays `NotReady` / kata-deploy crashloops. | +| **Tainted + labelled** | Node registers `kata=true:NoSchedule` (workload taint) + `katacontainers.io/runtime-not-ready` (startup taint, removed by kata-readiness), labelled `kata-enabled=true` — so **coder VMs never co-schedule with hub control-plane pods**. | + +> These are hard requirements: without the nested-virt MNG the warm pool has nowhere to run; without +> the taint + label + egress lockdown, an untrusted coder VM could land next to — or reach — the hub's +> control-plane services. See [§10](#10-security-model). ### Warm pool — instant claims, cheap idle -When the platform finishes deploying, the pool-manager brings up a **target buffer of 2–3 idle -sandboxes**. A consumer binds to a *ready* VM instantly (no cold boot). Cycling rules: +When the platform finishes deploying, the operator's native `SandboxWarmPool` brings up a **target +buffer of 2–3 idle sandboxes**. A consumer binds to a *ready* VM instantly (no cold boot). Cycling +rules: - **On claim** → provision a **refill** so the buffer stays at target. - **On release** → if the pool is above target, **remove** the extra idle sandbox. @@ -131,36 +170,65 @@ sandboxes**. A consumer binds to a *ready* VM instantly (no cold boot). Cycling > 📊 **See the fancy diagrams:** [`diagrams/flow-b-dark-factory.md`](diagrams/flow-b-dark-factory.md) > (end-to-end pipeline + detailed sequence + live-status mock). -Runs on **spoke-dev only**. End to end: - -1. **Trigger** — an issue labeled `dark-factory` fires a **GitHub Action**. The Action gates on the - label, mints a **short-TTL** installation token, and calls the orchestrator. *(Net-new — OAP has - no GitHub Actions today.)* -2. **Claim** — the **orchestrator** (adapting the openclaw `session-router`, but keyed on - **issue-id** instead of a Cognito `sub`) issues a `SandboxClaim` and **binds a warm sandbox**. - The pool-manager refills the buffer. +Runs on the **hub**, orchestrated by **Argo Workflows** (already deployed on the hub, GitOps-managed). +End to end: + +1. **Trigger** — an issue labeled `dark-factory` fires a GitHub **webhook** into an **Argo Events** + Sensor, which submits a `df-run` Workflow keyed on the issue id. *(Argo Events is the native + Kubernetes eventing path; a thin GitHub Action → `argo-server /api/v1/events` is the fallback if + Argo Events isn't enabled.)* +2. **Claim** — the workflow's `claim` step creates a `SandboxClaim(warmPoolRef: coder-warmpool)` and + **binds a warm sandbox**; the operator refills the buffer. Because Argo and the pool are on the + **same cluster**, the step watches the claim's `status.conditions[Ready]` directly — no + cross-cluster control needed. 3. **Code** — the issue is written into the sandbox as `/workspace/SPEC.md`. The **pluggable coder** (Claude Code headless by default; Kiro headless as a profile) implements on branch - `df/issue-` and **builds + runs unit tests until green** inside the VM. -4. **Independent verification** *(driven by the orchestrator — never by the coder — see [§6](#6-independent-verification-the-heart-of-the-pattern)):* - - **Holdout gate** — hidden BDD scenarios the coder can neither see nor edit, judged by a - **different model** than the coder used, **paired with executable tests**, ≥90% to pass. - - **AWS frontier agents** — the orchestrator invokes the **AWS Security Agent** and **AWS DevOps - Agent** on the diff/artifacts (advisory in v1). -5. **PR + live status** — the coder opens a PR via `gh`; the orchestrator maintains **one sticky - comment** that ticks each stage ⏳→✅/❌ with timestamps and log links (see [§7](#7-live-status-in-the-pr)). -6. **Human review** — a human reviews the **evidence** (test results, holdout satisfaction, - security/devops findings) and either approves or comments. -7. **Iterate** — a PR comment resumes the scaled-to-zero sandbox (same workspace) and the coder - applies the change. **Bounded to N rounds**, then a human breaks the tie (see [§8](#8-human-in-the-loop--the-iterative-comment-loop)). -8. **Merge + teardown** — on approve→merge, the orchestrator deletes the sandbox, PVC, any - ephemeral test infra, and the eval job. A **reaper CronJob** sweeps abandoned/timed-out runs. + `df/issue-` and **builds + runs unit tests until green** inside the Kata VM, then pushes the + branch. The coder holds only `contents:write` — it does *not* open the PR. +4. **PR opens (after green)** — the workflow reads the coder's result locally (completed pod + + `/workspace/artifacts/result.json`) and **the workflow opens the PR** once tests are green. Before + this point, status lives on the **issue**; from here on the canonical status board is the **PR**. +5. **Independent verification** — *parallel* DAG steps, driven by the workflow, **never by the coder** + (see [§6](#6-independent-verification-the-heart-of-the-pattern)): + - **Holdout gate** — an isolated eval **Job** runs hidden BDD scenarios the coder can neither see + nor edit, judged by a **different model**, **paired with executable tests**, ≥90% to pass. + - **Security review** — the **AWS Security Agent** (managed, read-only on the diff) as the primary + backend; an optional **Fable-5 deep-security sandbox** (a *second* isolated Kata VM) as a gated + deep tier. + - **DevOps review** — the **AWS DevOps Agent** (or a Fable-5 reviewer / IaC linters) for + reliability, deployability, cost, observability, and IaC correctness. Advisory in v1. +6. **Gate + live status** — a `gate` step aggregates the findings; each step upserts the **one sticky + PR comment** ⏳→✅/❌ with timestamps and log/trace links (single writer = the workflow, serialized + by a per-issue mutex — see [§7](#7-live-status-in-the-pr)). +7. **Human review** — a human reviews the **evidence** (test results, holdout %, security/devops + findings) and either approves or comments. The `df-run` workflow ends here (PR labelled + `df/awaiting-approval`); the human's response arrives as a *new* event. +8. **Iterate** — a PR comment fires the Sensor → a `df-iterate` workflow resumes the scaled-to-zero + sandbox (**same retained workspace PVC**) and the coder applies the change. **Bounded to N rounds**, + then a human breaks the tie (see [§8](#8-human-in-the-loop--the-iterative-comment-loop)). +9. **Merge + teardown** — a PR *review approved* event fires a `df-merge-teardown` workflow: it merges + the PR (the agent **never** self-merges — merge only follows an explicit human approval event), + then its `onExit` handler deletes the sandbox, PVC, and eval Job. A **reaper CronJob** sweeps + abandoned/timed-out runs as the crash-net. + +### Orchestration: Argo Workflows on the hub + +The orchestrator is **Argo Workflows**, not a bespoke long-running service. Each issue/comment/review +event submits a **short-lived Workflow** (`df-run`, `df-iterate`, `df-merge-teardown`) keyed on the +issue id — durable state lives in the retained workspace PVC + GitHub + a per-issue state ConfigMap, +not in a parked process. This buys per-issue isolation, concurrency (bounded by a semaphore against +the kata nodepool capacity), retries, a durable run history, native Prometheus metrics, and the Argo +UI — the substrate for scaling across many concurrent issues. + +> The earlier **P1 Node orchestrator** (`examples/dark-factory/`) is a working reference for the +> claim/coder/sticky-comment logic; under this design its libraries become **Argo workflow +> step-containers**, and the long-running Deployment is superseded by the DAG. ### Two worked use-cases | Issue example | How it's tested | Teardown | |---|---|---| -| *"Add a `weather-agent` to the examples"* | Deploy into an **ephemeral namespace** on spoke-dev → run holdout scenarios → delete namespace | Namespace + branch artifacts | +| *"Add a `weather-agent` to the examples"* | Deploy into an **ephemeral namespace** on the hub → run holdout scenarios → delete namespace | Namespace + branch artifacts | | *"Build an EKS cluster with X"* | **Dry-run / crossplane-render** by default; a `deep-test` label spins a **real ephemeral `PlatformCluster`** (appmod-blueprints composition) | Delete the `PlatformCluster` claim | --- @@ -231,44 +299,94 @@ holdout/ > found *"`return true` is a great way to pass narrowly written tests"* and fixed it by storing > scenarios **outside** the codebase. -### 6.2 AWS frontier agents — independent, read-only reviewers +### 6.2 Review roles — independent, read-only reviewers (Security + DevOps) -The **orchestrator** (not the coder) invokes the **AWS Security Agent** and **AWS DevOps Agent** on -the finished diff/artifacts: +The **workflow** (not the coder) runs two independent review roles on the finished diff, as +**parallel DAG steps**. Each role is a **pluggable slot with a swappable backend**, so we're not +locked to any single service's GA status: -- They are **out-of-cluster, AWS-managed** services — **not** kagent pods. -- They are **read-only reviewers on the finished diff** — never co-authors. Their findings are - folded into the PR report; the coder only *reacts* to them via the comment loop. +| Role | Answers | Primary backend | Fallback backend | +|---|---|---|---| +| **Security** | *"Can this code be attacked?"* — vulns, exploitability, injection, secrets, insecure deps | **AWS Security Agent** (managed, GA — autonomous pentest + validated exploitability) | Fable-5 deep-security sandbox *(deep tier)* | +| **DevOps** | *"Will this code operate well?"* — reliability, deployability, cost, observability, IaC/config correctness | **AWS DevOps Agent** (managed) | Fable-5 DevOps reviewer / IaC linters (cfn-guard, kube-linter, tflint) | + +- The managed agents are **out-of-cluster, AWS-managed** services invoked with the **hub + orchestrator's IAM** — **not** kagent pods, never running in the coder VM. +- They are **read-only reviewers on the finished diff** — never co-authors. Findings are folded into + the PR report; the coder only *reacts* to them via the comment loop. - **v1 = advisory** (report-only). Gate hooks are designed so **per-severity blocking** can be switched on later (e.g. a critical CVE blocks the PR). -> **Why the orchestrator invokes them, not the coder:** it keeps the untrusted sandbox +**Optional deep-security tier (gated, later phase).** For reasoning-heavy vulnerability discovery +beyond the managed Security Agent, a `deep-sec`-labelled run spins a **second, isolated Kata sandbox** +running a security agent backed by **Claude Fable 5** on Bedrock (via Bifrost) — read-only on the +diff, its own narrow credential, never sharing the coder's VM. *Note:* **Mythos** proper is +allow-list-gated (defensive-cyber partners only) and not assumed available; **Fable 5** is the +generally-available "Mythos-class" defensive model, and it carries a provider-data-share / 30-day +retention caveat to clear before enabling. + +> **Why the workflow invokes them, not the coder:** it keeps the untrusted sandbox > **credential-less** and preserves *separation of concerns* — the agent doing the work is not the > one grading it (see the [lethal-trifecta gotcha](#11-industry-alignment--anti-patterns-what-the-world-agrees-on)). +> This is also why security testing is a **separate step, not folded into the coding assistant**: a +> coder that ran its own security scan would grade its own work and could be prompt-injected into +> suppressing findings. --- ## 7. Live status in the PR The human **watches the factory work** (the Gas City idea) through **one sticky PR comment** the -orchestrator edits in place — no comment spam, one canonical surface (the pattern Copilot, Devin, -and Factory all converge on). +workflow edits in place — no comment spam, one canonical surface (the pattern Copilot, Devin, and +Factory all converge on). ``` ## 🏭 Dark Factory — issue #42 -✅ Claimed sandbox (spoke-dev) 12:01 +✅ Claimed sandbox (hub) 12:01 ✅ Branch df/issue-42 12:01 ✅ Implement 12:04 ✅ Build + unit tests 12:07 📄 log -⏳ Security Agent… -⬜ DevOps Agent +✅ PR opened #128 12:07 +⏳ Security review… +⬜ DevOps review ⬜ Holdout gate (0/12) -⬜ PR ready for review +⬜ Ready for review ``` -Each stage links to raw logs and test output (**verifiability-by-citation** — the human can audit -any step). The full PR body carries the report: what changed, test results, holdout satisfaction %, -and the Security/DevOps findings. +**Two status homes, one canonical board.** Until the coder's tests are green there is no PR, so the +pre-PR acknowledgement (claimed / branch / implementing) lives on the **issue**. Once the workflow +opens the PR (step 4), the sticky comment moves to the **PR** and becomes the canonical board. + +**Single writer = the workflow.** Every stage is reported by the Argo workflow (never the coder), +which **upserts one marker-based comment** (``) — edited in place. The +parallel review steps (security ∥ devops ∥ holdout) are serialized by a **per-issue mutex** so they +never race on the comment. Each line links to raw logs / the Argo run / the Langfuse trace +(**verifiability-by-citation**). The PR **body** carries the final report: what changed, test +results, holdout satisfaction %, and the Security/DevOps findings. + +--- + +## 7a. Success metrics (Argo/GitOps-native) + +Platform success is measured the same GitOps-native way everything else is — no bespoke telemetry. +Each workflow declares Prometheus metrics via Argo's `metrics:` blocks (scraped by the hub's +kube-prometheus-stack); a `grafana_dashboard`-labelled ConfigMap renders them, and **Langfuse** (on +the hub) captures the LLM-level token/cost/latency traces for per-issue drill-down. + +| Metric | Meaning | +|---|---| +| `df_lead_time_seconds` | Issue labelled → PR opened (histogram) | +| `df_claim_latency_seconds` | `SandboxClaim` create → Ready (warm-pool health) | +| `df_holdout_pass_pct` | Holdout satisfaction per run | +| `df_iteration_rounds` | Human comment loops per issue (convergence) | +| `df_vm_minutes` | Kata VM lifetime per run — the cost proxy | +| `df_teardown_success` | Teardown completed (leak detection) | +| throughput | `rate(argo_workflows_count{workflowtemplate=~"df-.*", status="Succeeded"})` | +| change-failure rate | merged `df` PRs later reverted (post-merge signal) | + +> This mirrors the Dark Factory deck's **Metrics & Cost Attribution** model: token counters → +> cost-tier routing → computed signals (items/hour, cycle time, queue depth) surfaced on a status +> API. Here the "status API" is Prometheus + the Argo UI + the sticky PR comment. --- @@ -276,13 +394,16 @@ and the Security/DevOps findings. Level 3 means the **human approves the merge** — and can steer via comments: -- A PR comment (change requested) → the orchestrator **resumes the scaled-to-zero sandbox** (same - workspace PVC) → the coder applies the change → pushes → the sticky status updates. -- **Bounded convergence:** the loop is capped at **N rounds**; after that a human must break the - tie. Comments are **batched into one agent run** (don't fire the agent per un-batched comment — - it thrashes). -- The agent **never self-merges**; it only pushes to its own `df/issue-` branch. Branch - protections and CI still apply. +- A PR comment (change requested) → the Argo Events Sensor submits a **`df-iterate` workflow** → + which **resumes the scaled-to-zero sandbox** (same retained workspace PVC, re-bound by the issue-id + label) → the coder applies the change → pushes → the sticky status updates. +- **Bounded convergence:** the loop is capped at **N rounds** (the counter lives in a per-issue state + ConfigMap, enforced statelessly across workflows); after that a human must break the tie. Comments + are **batched into one agent run** (don't fire the agent per un-batched comment — it thrashes). +- The agent **never self-merges**; it only pushes to its own `df/issue-` branch. Merge happens + only in the `df-merge-teardown` workflow, and *only* in response to a genuine **human PR-approval + event** — there is no path where the pipeline's own output produces an approval. Branch protections + and CI still apply. --- @@ -296,8 +417,12 @@ Level 3 means the **human approves the merge** — and can steer via comments: | Merged / closed | **Deleted** (Sandbox + PVC + test infra + eval job) | Zero | - **Scale-to-zero between activity** keeps the (possibly long) review window cheap. +- **Teardown is an Argo `onExit` handler** on the `df-merge-teardown` workflow — it fires on success + *or* failure, deleting the `SandboxClaim`, PVC, and eval Job. Because Argo and the pool are + co-located on the hub, owner-references cascade cleanup for in-workflow-created objects. - **Reaper CronJob** (adapted from openclaw `reaper-cronjob.yaml`) sweeps abandoned/timed-out runs - by TTL annotation — the safety net for crashes and forgotten PRs. + by TTL annotation — the crash-net for a workflow that dies before its `onExit` runs, and for + forgotten PRs. - **Ephemeral EKS test targets** (`deep-test`) are **gated behind a label** because they cost real money and take ~15–20 min to provision; the default path is dry-run/namespace testing. @@ -308,20 +433,38 @@ Level 3 means the **human approves the merge** — and can steer via comments: Untrusted, LLM-generated code + issue text from anyone = treat the whole sandbox as hostile. - **Hardware isolation:** every coder runs in a **Kata micro-VM** (own kernel), not a shared-kernel - container. + container. The isolation boundary is the VM — it travels with the workload regardless of host + cluster. - **No cloud credentials in the sandbox:** the coder holds only a **Bifrost API key** and a - **short-TTL GitHub token** via **projected tmpfs (mode 0400)** — read then unset, never in env. - All AWS IAM lives with the **orchestrator, outside the VM**. -- **Egress lockdown:** a **NetworkPolicy** restricts sandbox egress to **Bifrost:8080 + DNS + - GitHub only**. `automountServiceAccountToken: false`, runAsNonRoot, seccomp `RuntimeDefault`, + **short-TTL GitHub token (`contents:write` only)** via **projected tmpfs (mode 0400)** — read then + unset, never in env. All AWS IAM lives with the **Argo workflow orchestrator, outside the VM**. The + coder pushes a branch; the *workflow* opens the PR and does the merge. +- **Egress lockdown:** a **NetworkPolicy** default-denies egress and allows only **DNS + Bifrost:8080 + + GitHub/HTTPS**. `automountServiceAccountToken: false`, runAsNonRoot, seccomp `RuntimeDefault`, drop `ALL` caps. -- **Prod is never a test bed:** the factory runs on **spoke-dev**; spoke-prod holds the sandbox - capability but its pool is **dormant**. Unreviewed agent code never touches prod. + +**Running on the hub — the extra hardening that makes it safe.** Because the sandbox pool is +co-located with the hub's control-plane services (Keycloak, ArgoCD, external-secrets, Argo), the +generic egress rule is **not** sufficient on its own — an "allow HTTPS to the internet" rule would +also permit reaching those services in-cluster. The hub deployment therefore adds: + +- **Dedicated tainted kata nodegroup:** coder VMs schedule only onto the nested-virt MNG + (`kata=true:NoSchedule` + `kata-enabled=true`); control-plane pods never land there and vice-versa. +- **Control-plane egress deny:** the NetworkPolicy explicitly **denies** egress to the hub's + control-plane namespaces/services (keycloak, argocd, external-secrets, argo) **and** to IMDS + (`169.254.169.254`) — on top of the default-deny + narrow allowlist above. +- **No cluster API from the VM:** `automountServiceAccountToken: false` and no RBAC — the coder + cannot talk to the hub Kubernetes API at all. + +- **Prod is never a test bed, and neither is a spoke:** the factory runs on the **hub build plane**; + the spokes are the **deploy/run plane**. Unreviewed agent code never runs next to enterprise + workloads (spoke) or touches prod — its output reaches the spokes only as *merged, reviewed* code + through the normal deployment path. - **⚠️ Lethal trifecta (the #1 risk — see [§11](#11-industry-alignment--anti-patterns-what-the-world-agrees-on)):** untrusted issue text + credentials + egress is the exact recipe for prompt-injection exfiltration (demonstrated against GitHub-issue-driven agents in the wild). The mitigations above exist specifically to break that trifecta: keep credentials out of the issue-ingesting context, deny - egress, and treat all issue/repo content as hostile input. + egress (including the hub's own control plane), and treat all issue/repo content as hostile input. --- @@ -334,7 +477,8 @@ Jules, Cursor background agents, Factory.ai, and StrongDM's "Software Factory" a | Design choice | Industry practice | |---|---| -| Issue → Action → ephemeral sandbox → build/test → PR | The recurring ~7-stage pipeline across Copilot/Codex/Devin/Jules/Factory | +| Issue → event → ephemeral sandbox → build/test → PR | The recurring ~7-stage pipeline across Copilot/Codex/Devin/Jules/Factory | +| **DAG orchestration + concurrent dispatch** (Argo Workflows) | *Convergent pattern.* Stripe/Coinbase/Ramp/StrongDM independently arrived at isolated sandboxes + subagent/DAG orchestration + cost-routing for scale | | **Kata micro-VM isolation** | *Above-consensus.* microVM-class isolation (Firecracker, Kata, Bedrock AgentCore's per-session microVM) is the defensible choice for untrusted LLM code; shared-kernel containers are considered insufficient | | Build/test **until green before** the PR | Explicit in codex-1's RL training, Devin, Copilot | | **Holdout scenarios the coder never sees** | *Above-consensus.* Directly matches StrongDM's Software Factory (they learned it the hard way after `return true` gamed their tests) | @@ -375,28 +519,35 @@ Each phase is independently valuable — if you stop after any one, you're bette | Phase | Delivers | Independently useful? | |------:|----------|-----------------------| -| **P1** | Trigger → claim warm sandbox → Claude Code coder → build/test → PR + sticky status → manual teardown | ✅ A working autonomous-PR loop | -| **P2** | Strict **holdout gate** (isolated, different-model judge, executable-test pairing) + bounded retry | ✅ Quality gate that resists gaming | -| **P3** | **AWS Security + DevOps** frontier agents (advisory) folded into the PR report | ✅ Independent review evidence | -| **P4** | Ephemeral test targets (namespace default; `deep-test` `PlatformCluster`) + **auto-teardown** on merge + reaper | ✅ Full lights-off lifecycle | -| **P5** | **Kiro** coder profile; per-severity **blocking** gate option; spoke-prod pool activation story | ✅ Vendor-plurality + higher autonomy | +| **P0** | **Relocate the sandbox capability to the hub** — nested-virt MNG + control-plane isolation + dev→hub cutover (all GitOps) | ✅ Kata warm pool co-located with Argo on the build plane | +| **P1** | First `df-run` **WorkflowTemplate**: trigger → claim warm sandbox → Claude Code coder → build/test → workflow opens PR + sticky status → manual teardown | ✅ A working autonomous-PR loop on Argo | +| **P2** | Strict **holdout gate** (isolated eval Job, different-model judge, executable-test pairing) + bounded `df-iterate` retry | ✅ Quality gate that resists gaming | +| **P3** | **Security + DevOps review steps** (managed AWS Security/DevOps Agents, advisory) folded into the PR report; Argo Events Sensor for approve/comment/merge | ✅ Independent review evidence + full event-driven lifecycle | +| **P4** | Ephemeral test targets (namespace default; `deep-test` `PlatformCluster`) + **`onExit` auto-teardown** + reaper + success-metrics dashboard | ✅ Full lights-off lifecycle + measurement | +| **P5** | **Kiro** coder profile; per-severity **blocking** gate option; **Fable-5 deep-security sandbox** (`deep-sec`) | ✅ Vendor-plurality + higher autonomy + deep review | --- ## 12a. Running Kata on EKS Auto Mode clusters (validated design) -The spoke clusters run **EKS Auto Mode + Bottlerocket** (`c6a`/`c6g` nodes). Auto Mode's managed -nodes **cannot host Kata**: no control over `cpuOptions.nestedVirtualization`, no kernel-module -loading (`modprobe kvm_intel`), no `kata-deploy`, and those node types don't expose VT-x. -`eks-platform-openclaw` avoids Auto Mode entirely for this reason — but we don't have to. +The hub (like the spokes) runs **EKS Auto Mode + Bottlerocket** (`c6a`/`c6g` nodes). Auto Mode's +managed nodes **cannot host Kata**: no control over `cpuOptions.nestedVirtualization`, no +kernel-module loading (`modprobe kvm_intel`), no `kata-deploy`, and those node types don't expose +VT-x. `eks-platform-openclaw` avoids Auto Mode entirely for this reason — but we don't have to. + +> **Applies to the hub.** This design was first validated on spoke-dev, but the mechanism — a +> nested-virt MNG *alongside* Auto Mode — is exactly what the hub relocation requires. The same +> chart artifacts, node bootstrap, and hard-won lessons below carry over verbatim; only the target +> cluster changes (and the hub adds the control-plane egress lockdown from [§10](#10-security-model)). ### Decision: self-managed nested-virt MNG *alongside* Auto Mode Add a small, tainted **self-managed Managed Node Group** of **nested-virt `c8i`/`m8i`** instances to -spoke-dev. Auto Mode keeps running everything else; kata sandboxes schedule onto the MNG via the -`kata=true:NoSchedule` taint the chart already applies. We chose an **MNG, not a second -Karpenter** — running a self-managed Karpenter beside Auto Mode's managed Karpenter risks -NodePool/CRD conflicts, whereas MNGs are additive and coexist cleanly. +the cluster (spoke-dev in the original validation; **the hub** under the current design). Auto Mode +keeps running everything else; kata sandboxes schedule onto the MNG via the `kata=true:NoSchedule` +taint the chart already applies. We chose an **MNG, not a second Karpenter** — running a +self-managed Karpenter beside Auto Mode's managed Karpenter risks NodePool/CRD conflicts, whereas +MNGs are additive and coexist cleanly. Rejected alternatives: **Bedrock AgentCore / Fargate** (breaks the k8s-native pod model our whole Sandbox/warm-pool/claim design depends on — it's an invoke-a-session runtime, not a pod we own); @@ -448,22 +599,28 @@ app), but a direct `helm install` must use top-level values. *To resolve during implementation — flagged honestly rather than assumed:* -- **⚡ SIMPLIFICATION — use the operator's native `SandboxWarmPool`.** Live testing revealed the - upstream agent-sandbox operator ships a **`sandboxwarmpools.extensions.agents.x-k8s.io` CRD** - (`spec: {replicas, sandboxTemplateRef}`) — a first-class warm-pool primitive. Our custom - pool-manager CronJob (`41-poolmanager-cronjob.yaml`) is therefore likely **redundant**: create a - `SandboxWarmPool` CR instead and let the operator maintain the buffer. Keep the CronJob only for - the extra scale-to-zero/reap behaviors the CR may not cover. To reconcile after the live test. +- **Nested-virt capacity on the hub** — confirm `c8i`/`m8i` availability + headroom for the kata MNG + alongside the hub control plane; size the warm-pool/semaphore ceiling to it. +- **Exact hub control-plane egress deny list** — the concrete namespaces/service CIDRs (keycloak, + argocd, external-secrets, argo) to encode in the NetworkPolicy for the hub deployment. - **Headless auth** for Claude Code & Kiro through a Bifrost base-URL override inside a Kata VM - (the biggest unknown — prototype first in P1). -- **Import the `agent-sandbox` operator** from `eks-platform-openclaw` into the OAP addon catalog - (Flow A's first task). -- **Enable the sandbox/kagent addons on the dev overlay** (they're hub-only today). -- **Exact AWS Security / DevOps Agent APIs & auth** — confirm the invocation contract at build time. -- **Orchestrator RBAC scope** — Sandbox/PVC/Service/Job on spoke-dev + `PlatformCluster` claims for - the `deep-test` path. -- **Warm-pool implementation** — verify whether the `agent-sandbox` v0.1.0 operator supports - snapshot/fork warm-binding, or whether the pool-manager must create-on-demand. + (prototype first in P1). +- **Bifrost VK + tmpfs secret projection** — mint a short-TTL GitHub token + Bifrost virtual key and + project them onto the claimed sandbox (mode 0400). Documented but not yet wired — close in P1. +- **Exact AWS Security / DevOps Agent APIs & auth** — confirm the invocation contract at build time; + clear **Fable-5** provider-data-share / 30-day retention before enabling the deep-sec tier. +- **Workflow RBAC scope** — the Argo workflow SA needs `sandboxclaims` (CRUD) + read `sandboxes` + + eval `Job`/`ConfigMap` in `agent-sandbox-system`, plus `PlatformCluster` claims for the `deep-test` + path. No pod/exec, no secrets, no cluster scope. +- **Argo `resource`-template `successCondition` on CRD conditions** — validate the JSONPath filter + form against Argo v3.6.7, or fall back to a `kubectl wait --for=condition=Ready` step. +- **Workspace access mode** — RWO (EBS) forces strict coder↔eval serialization + same-AZ pinning; + RWX (EFS) allows read-only eval-alongside and cheaper iteration. Decide before P2. + +> ✅ **Resolved since the first draft:** native `SandboxWarmPool` CRD is adopted (custom pool-manager +> CronJob dropped); the upstream operator is vendored into the addon catalog; Kata-on-Auto-Mode is +> validated ([§12a](#12a-running-kata-on-eks-auto-mode-clusters-validated-design)); the sandbox +> capability is being relocated dev→hub (this design). --- From 04ae1a9648c1dc27cd29dfe3de8e9365a701e0ee Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:01:58 -0400 Subject: [PATCH 087/365] docs(dark-factory): mark P1 Node orchestrator superseded by Argo design P1 orchestrator becomes the reference implementation; its libs (github.js sticky comment, k8s.js claim shape, coder/agent.js) are reused as Argo workflow step-containers. Code kept, not deleted. --- examples/dark-factory/README.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/examples/dark-factory/README.md b/examples/dark-factory/README.md index 7bd262a3..bacfef51 100644 --- a/examples/dark-factory/README.md +++ b/examples/dark-factory/README.md @@ -1,12 +1,27 @@ -# Dark Factory — Flow B, Phase P1 +# Dark Factory — Flow B, Phase P1 (reference implementation — superseded) + +> ⚠️ **Superseded by the Argo Workflows design.** This directory is the **P1 reference**: a bespoke +> long-running **Node orchestrator** that imperatively drives claim → coder → PR → teardown. The +> current design orchestrates Flow B with **Argo Workflows on the hub** (see +> [`docs/dark-factory/README.md`](../../docs/dark-factory/README.md) §4 and +> [`diagrams/flow-b-dark-factory.md`](../../docs/dark-factory/diagrams/flow-b-dark-factory.md)). +> Under that design this code is **not deployed as a service** — instead its pieces become **Argo +> workflow step-containers**: +> - `orchestrator/lib/github.js` — the sticky-comment upsert + PR creation (reused verbatim as a step). +> - `orchestrator/lib/k8s.js` — the `SandboxClaim` shape / bind-poll (Argo does most of this +> declaratively via a `resource` template; the shape is the reference). +> - `coder/agent.js` — the in-VM coder workload, **unchanged** (it's behind the SandboxTemplate, +> independent of who orchestrates). +> +> Kept for reference and reuse; not deleted. The sections below describe the original P1 service. **Trigger → claim warm sandbox → drive the coder → open a PR with a live sticky status → manual teardown.** The first independently-useful slice of the [Dark Factory pattern](../../docs/dark-factory/README.md) and the first real consumer of **[Flow A](../../docs/dark-factory/diagrams/flow-a-sandbox-capability.md)**'s Kata micro-VM warm pool. -Runs on **spoke-dev only**. Autonomy is bounded here: P1 opens a PR and **stops** — a human still -reviews and merges. The verification gates (holdout, Security/DevOps agents) arrive in P2/P3. +Autonomy is bounded here: P1 opens a PR and **stops** — a human still reviews and merges. The +verification gates (holdout, Security/DevOps agents) arrive in P2/P3. ## Components From ef023ff32b90b380cb70b0f6ff877f729b0dbc77 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:18:03 -0400 Subject: [PATCH 088/365] feat(agent-sandbox): re-gate capability from spoke-dev to hub MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change alwaysSelector environment In [dev] → [control-plane] for the three agent-sandbox addons (operator, chart, kata-deploy). The Dark Factory is a pre-dev build/author activity that writes code + holds GitHub write access, so the sandbox capability belongs on the hub (build plane, co-located with Argo Workflows) — not on a spoke (deploy/run plane w/ enterprise workloads). ArgoCD will generate the apps on hub and prune the spoke-dev apps. --- gitops/addons/bootstrap/default/addons.yaml | 28 ++++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index e8384a02..5e4de77d 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -374,15 +374,19 @@ agent-sandbox-operator: argocd.argoproj.io/sync-wave: '0' syncPolicyAppSet: preserveResourcesOnDeletion: false - # Agent Sandbox is a spoke-dev-only capability (Kata needs a nested-virt MNG; - # not on the hub, and prod stays off). alwaysSelector is honored regardless of - # the global useSelectors flag, so the generated ApplicationSet matches ONLY - # the cluster whose `environment` label is `dev` — hub and prod apps are pruned. + # Agent Sandbox is a HUB-only capability. The Dark Factory (Flow B) is a + # pre-dev build/author activity that writes code + holds GitHub write access — + # it belongs on the hub (build plane, co-located with Argo Workflows), not on + # a spoke (deploy/run plane hosting enterprise workloads). alwaysSelector is + # honored regardless of the global useSelectors flag, so the generated + # ApplicationSet matches ONLY the cluster whose `environment` label is + # `control-plane` (the hub) — spoke apps are pruned. Kata runs on a dedicated + # tainted nested-virt MNG (Auto Mode can't host it) — see docs/dark-factory §10. alwaysSelector: matchExpressions: - key: environment operator: In - values: ['dev'] + values: ['control-plane'] # Agent Sandbox capability chart — RuntimeClasses, kata-readiness (removes the # runtime-not-ready startup taint), coder SandboxTemplate, SandboxWarmPool, and @@ -396,13 +400,13 @@ agent-sandbox: path: 'gitops/addons/charts/agent-sandbox' annotationsAppSet: argocd.argoproj.io/sync-wave: '2' - # Spoke-dev-only (see agent-sandbox-operator note above). alwaysSelector pins - # generation to the `environment: dev` cluster regardless of useSelectors. + # Hub-only (see agent-sandbox-operator note above). alwaysSelector pins + # generation to the `environment: control-plane` cluster regardless of useSelectors. alwaysSelector: matchExpressions: - key: environment operator: In - values: ['dev'] + values: ['control-plane'] valuesObject: coderTemplate: bifrostUrl: '{{default "http://bifrost.bifrost.svc.cluster.local:8080" (index .metadata.annotations "bifrost_url")}}' @@ -425,14 +429,14 @@ kata-deploy: chartRepository: 'ghcr.io/kata-containers/kata-deploy-charts' annotationsAppSet: argocd.argoproj.io/sync-wave: '1' - # Spoke-dev-only: the kata runtime is only installed where a nested-virt MNG - # exists (spoke-dev). alwaysSelector pins generation to `environment: dev` - # regardless of useSelectors — no hub or prod kata-deploy app. + # Hub-only: the kata runtime is only installed where the nested-virt MNG + # exists (the hub). alwaysSelector pins generation to `environment: + # control-plane` regardless of useSelectors — no spoke kata-deploy app. alwaysSelector: matchExpressions: - key: environment operator: In - values: ['dev'] + values: ['control-plane'] valuesObject: kata-deploy: image: From ce46ab6ccc7a44a3c89fb44d2032b88fe52badbb Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:18:03 -0400 Subject: [PATCH 089/365] feat(agent-sandbox): add networkPolicy.privateCidrsDenied for hub isolation On the hub the pool sits next to the fleet control plane (Keycloak/ArgoCD/ external-secrets/Argo) reachable via ClusterIPs + pod IPs in the VPC private range. Deny RFC-1918 + link-local from the coder's :443 public-egress allow so it can't reach the control plane, node, API server, or peer pods. --- gitops/addons/charts/agent-sandbox/values.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 05b82483..3c9199fb 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -43,6 +43,21 @@ kata: value: "true" effect: NoSchedule +# ── NetworkPolicy (egress lockdown) ────────────────────────────────────────── +networkPolicy: + # Private/link-local CIDRs carved OUT of the coder's :443 public-internet + # allow. On the hub the capability sits next to the fleet control plane + # (Keycloak/ArgoCD/external-secrets/Argo) reachable via ClusterIPs + pod IPs + # in the VPC private range; denying RFC-1918 + link-local blocks every path to + # the control plane, the node, the API server, and peer pods while still + # permitting public git/gh/registry egress. Covers hub VPC 10.0.0.0/16, pods + # (in-VPC), and service CIDR 172.20.0.0/16. + privateCidrsDenied: + - 10.0.0.0/8 # RFC-1918 (hub VPC + pod IPs) + - 172.16.0.0/12 # RFC-1918 (service CIDR 172.20.0.0/16) + - 192.168.0.0/16 # RFC-1918 + - 169.254.0.0/16 # link-local (blocks IMDS 169.254.169.254) + # ── kata-readiness ─────────────────────────────────────────────────────────── # Removes the runtime-not-ready startup taint once kata-deploy finishes on a # node. Required whenever nodes carry that startup taint (the kata MNG does). From 79e964959fc3d56b5d806477ccb491ca5356d325 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:18:04 -0400 Subject: [PATCH 090/365] =?UTF-8?q?feat(agent-sandbox):=20NetworkPolicy=20?= =?UTF-8?q?=E2=80=94=20deny=20control-plane=20egress=20on=20hub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scope DNS to kube-dns only, keep Bifrost:8080 as the sole in-cluster allow, and carve the private/link-local CIDRs (values.networkPolicy.privateCidrsDenied) out of the :443 public-internet allow. Breaks any coder→control-plane path while preserving public git/gh/registry egress. --- .../templates/30-networkpolicy.yaml | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml b/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml index 13a8a51e..ed7376bc 100644 --- a/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml @@ -2,9 +2,18 @@ Default-deny egress for coder sandboxes, then allow ONLY what a coder needs: - DNS (kube-dns) - Bifrost LLM gateway (model calls) - - HTTPS to the internet for git/gh + package registries the build needs + - HTTPS to the PUBLIC internet for git/gh + package registries the build needs + This breaks the "lethal trifecta": untrusted issue text runs in a pod that cannot reach arbitrary internal services or exfiltrate to arbitrary hosts. + +⚠️ HUB CONTROL-PLANE ISOLATION: the capability now runs on the hub, next to the +fleet control plane (Keycloak, ArgoCD, external-secrets, Argo). Those services +are reachable in-cluster via ClusterIPs / pod IPs inside the cluster + VPC +private ranges. So the HTTPS-egress rule must allow the PUBLIC internet ONLY — +it excludes RFC-1918 private ranges (and IMDS/link-local), which denies the +coder any path to the control plane, the node, the API server, or peer pods. +`values.privateCidrsDenied` lists the ranges carved out of the public allow. Selects coder pods by the label the SandboxTemplate stamps. */ -}} apiVersion: networking.k8s.io/v1 @@ -21,15 +30,19 @@ spec: policyTypes: - Egress egress: - # DNS resolution + # DNS resolution (kube-dns only — the one in-cluster service the coder needs) - to: - namespaceSelector: {} + podSelector: + matchLabels: + k8s-app: kube-dns ports: - protocol: UDP port: 53 - protocol: TCP port: 53 - # Bifrost LLM gateway (in-cluster) + # Bifrost LLM gateway (in-cluster) — the ONLY control-plane-side service the + # coder may reach, and only on :8080. - to: - namespaceSelector: matchLabels: @@ -37,14 +50,16 @@ spec: ports: - protocol: TCP port: 8080 - # HTTPS egress for git / gh / package registries (build dependencies). - # Note: broad :443 is required for public git+registry access; tighten to - # specific CIDRs/hostnames with an egress proxy for stricter deployments. + # HTTPS egress for git / gh / package registries — PUBLIC internet only. + # Private/link-local ranges are excluded so the coder cannot reach the hub's + # control-plane services, the node, the API server, or peer pods over :443. - to: - ipBlock: cidr: 0.0.0.0/0 except: - - 169.254.169.254/32 # block IMDS (instance metadata) + {{- range .Values.networkPolicy.privateCidrsDenied }} + - {{ . | quote }} + {{- end }} ports: - protocol: TCP port: 443 From 994a74690a7de474a0657e7aee0235704c84b680 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:18:04 -0400 Subject: [PATCH 091/365] =?UTF-8?q?fix(agent-sandbox):=20kata-mng.tf=20?= =?UTF-8?q?=E2=80=94=20set=20instance=5Ftype=20on=20the=20launch=20templat?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit var.instance_type was declared but never applied, so the node group defaulted to a type without nested-virt and CreateNodegroup failed with 'does not support Nested Virtualization'. Wire instance_type into the launch template (as the proven spoke-dev LT did). --- gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf index 71ae3439..b70e7348 100644 --- a/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf +++ b/gitops/addons/charts/agent-sandbox/nodepool/kata-mng.tf @@ -76,9 +76,10 @@ locals { } resource "aws_launch_template" "kata" { - name_prefix = "${var.cluster_name}-kata-" - image_id = data.aws_ssm_parameter.al2023.value - user_data = local.kata_userdata + name_prefix = "${var.cluster_name}-kata-" + image_id = data.aws_ssm_parameter.al2023.value + instance_type = var.instance_type + user_data = local.kata_userdata cpu_options { # THE key flag — exposes VT-x on 8i instances so kata's VMM can run guests. From d2fb5ffbdb8b0190a53775d49b43d27c8baf1840 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:26:17 -0400 Subject: [PATCH 092/365] fix(kata-deploy): pass values at chart root, not nested under kata-deploy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The kata-deploy OCI chart (v3.32.0) reads .Values.nodeSelector / .Values.tolerations / .Values.shims at the ROOT of values, but the addon entry nested them under a 'kata-deploy:' key — so they were silently dropped. Result: the DaemonSet had NO nodeSelector and landed on all Auto Mode nodes (crashing on the TEE/nydus snapshotter) instead of only the tainted kata node. Flatten valuesObject to root. Verified via helm template: root applies nodeSelector+tolerations, nested yields empty. --- gitops/addons/bootstrap/default/addons.yaml | 51 ++++++++++++--------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/gitops/addons/bootstrap/default/addons.yaml b/gitops/addons/bootstrap/default/addons.yaml index 5e4de77d..91b97d9e 100644 --- a/gitops/addons/bootstrap/default/addons.yaml +++ b/gitops/addons/bootstrap/default/addons.yaml @@ -437,26 +437,33 @@ kata-deploy: - key: environment operator: In values: ['control-plane'] + # The kata-deploy OCI chart reads these keys at the ROOT of values (verified + # against chart v3.32.0 templates/kata-deploy.yaml → .Values.nodeSelector / + # .Values.tolerations). Do NOT nest them under a `kata-deploy:` key. valuesObject: - kata-deploy: - image: - reference: quay.io/kata-containers/kata-deploy - tag: '3.32.0' - nodeSelector: - kata-enabled: 'true' - tolerations: - - key: kata - operator: Equal - value: 'true' - effect: NoSchedule - - key: katacontainers.io/runtime-not-ready - operator: Exists - effect: NoSchedule - shims: - disableAll: true - qemu: - enabled: true - clh: - enabled: true - runtimeClasses: - enabled: false + image: + reference: quay.io/kata-containers/kata-deploy + tag: '3.32.0' + # Run the DaemonSet ONLY on the tainted nested-virt kata node — never on the + # hub's Auto Mode control-plane nodes (where it crashes on the TEE/nydus + # snapshotter and would churn containerd). + nodeSelector: + kata-enabled: 'true' + tolerations: + - key: kata + operator: Equal + value: 'true' + effect: NoSchedule + - key: katacontainers.io/runtime-not-ready + operator: Exists + effect: NoSchedule + # Only install the two VMMs the platform uses (clh default + qemu); the + # RuntimeClasses are rendered by the agent-sandbox chart, not kata-deploy. + shims: + disableAll: true + qemu: + enabled: true + clh: + enabled: true + runtimeClasses: + enabled: false From e0125229cdbe6a848025cbb27b4e1926c2db7c08 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:33:50 -0400 Subject: [PATCH 093/365] fix(agent-sandbox): relax DNS egress to :53/any-ns (EKS Auto Mode CoreDNS) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The k8s-app=kube-dns pod-selector on the DNS egress rule matched nothing on the hub — EKS Auto Mode runs CoreDNS without that label, breaking in-cluster service resolution from the coder. Allow :53 to any namespace (standard); control-plane isolation is still fully enforced by the :443 + private-CIDR deny rule, so this does not weaken the security posture. --- .../charts/agent-sandbox/templates/30-networkpolicy.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml b/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml index ed7376bc..183cb77e 100644 --- a/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/30-networkpolicy.yaml @@ -30,12 +30,12 @@ spec: policyTypes: - Egress egress: - # DNS resolution (kube-dns only — the one in-cluster service the coder needs) + # DNS resolution — port 53 only, to the cluster DNS service. Kept broad by + # namespace (not pinned to a k8s-app=kube-dns pod label) because EKS Auto + # Mode runs CoreDNS without that label; :53 is harmless and control-plane + # isolation is enforced by the :443 + private-CIDR rule below, not here. - to: - namespaceSelector: {} - podSelector: - matchLabels: - k8s-app: kube-dns ports: - protocol: UDP port: 53 From f2d57c303e053b3f14229693bd3a7429fbd9a5ec Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:38:12 -0400 Subject: [PATCH 094/365] fix(agent-sandbox): add explicit service CIDR to NetworkPolicy deny list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EKS VPC-CNI evaluates egress ipBlock against the Service ClusterIP before kube-proxy DNAT, so the 172.16.0.0/12 supernet did NOT catch control-plane ClusterIPs in 172.20.0.0/16 — external-secrets/webhook was reachable via its ClusterIP (backend pod IP was correctly blocked). List the service CIDR 172.20.0.0/16 explicitly so control-plane services are denied on the DNAT path. --- gitops/addons/charts/agent-sandbox/values.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 3c9199fb..dcb8496f 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -52,9 +52,15 @@ networkPolicy: # the control plane, the node, the API server, and peer pods while still # permitting public git/gh/registry egress. Covers hub VPC 10.0.0.0/16, pods # (in-VPC), and service CIDR 172.20.0.0/16. + # NOTE (EKS VPC-CNI): NetworkPolicy egress ipBlock is matched on the Service + # ClusterIP *before* kube-proxy DNAT, so the service CIDR must be listed + # EXPLICITLY as its own except entry — the 172.16/12 supernet alone does NOT + # reliably catch 172.20.0.0/16 ClusterIP traffic (verified on this cluster: + # /12 let control-plane ClusterIPs through; the explicit /16 blocks them). privateCidrsDenied: + - 172.20.0.0/16 # EKS service CIDR (control-plane ClusterIPs) — MUST be explicit - 10.0.0.0/8 # RFC-1918 (hub VPC + pod IPs) - - 172.16.0.0/12 # RFC-1918 (service CIDR 172.20.0.0/16) + - 172.16.0.0/12 # RFC-1918 - 192.168.0.0/16 # RFC-1918 - 169.254.0.0/16 # link-local (blocks IMDS 169.254.169.254) From b5f531502c3e2e71d746bc19a140ee51c1db7850 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:42:45 -0400 Subject: [PATCH 095/365] feat(agent-sandbox): add Admin-tier ClusterNetworkPolicy for control-plane isolation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The standard NetworkPolicy does NOT reliably isolate coder pods on EKS: (1) VPC-CNI standard policies only apply to Deployment-owned pods, but coder pods are owned by a Sandbox CR; (2) egress ipBlock can't block Service ClusterIPs (matched pre-DNAT). Verified live: external-secrets-webhook was reachable via ClusterIP despite the CIDR denies. Add an Admin-tier ClusterNetworkPolicy (networking.k8s.aws/v1alpha1) with a Deny action — evaluated first, wins over everything, applies regardless of pod ownership — denying coder egress to argocd/argo/keycloak/external-secrets/ crossplane-system/langfuse. kube-system is intentionally excluded so CoreDNS (:53) still works. This is the authoritative control-plane isolation on the hub. --- .../templates/31-clusternetworkpolicy.yaml | 47 +++++++++++++++++++ .../addons/charts/agent-sandbox/values.yaml | 23 +++++++++ 2 files changed, 70 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/31-clusternetworkpolicy.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/31-clusternetworkpolicy.yaml b/gitops/addons/charts/agent-sandbox/templates/31-clusternetworkpolicy.yaml new file mode 100644 index 00000000..922a8e49 --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/31-clusternetworkpolicy.yaml @@ -0,0 +1,47 @@ +{{- if .Values.networkPolicy.adminDenyControlPlane }} +{{- /* +Admin-tier ClusterNetworkPolicy — the AUTHORITATIVE control-plane isolation for +coder sandboxes on the hub. + +Why this and not only the standard NetworkPolicy (30-networkpolicy.yaml): + 1. EKS VPC-CNI standard NetworkPolicy "are only applied to Pods that are part + of a Deployment" — coder pods are owned by a `Sandbox` CR (not a + Deployment), so a namespaced NetworkPolicy does not reliably apply to them. + 2. Standard NetworkPolicy egress ipBlock is matched on the Service ClusterIP + before kube-proxy DNAT, so control-plane Services (172.20.x) slip past an + ipBlock `except`. +Admin-tier ClusterNetworkPolicy with a Deny action is evaluated FIRST, wins over +everything, and applies regardless of pod ownership — the correct primitive for +"untrusted coder must never reach the hub control plane". + +Requires: VPC-CNI ≥ 1.21 with the ClusterNetworkPolicy CRD +(networking.k8s.aws/v1alpha1). +*/ -}} +apiVersion: networking.k8s.aws/v1alpha1 +kind: ClusterNetworkPolicy +metadata: + name: coder-sandbox-deny-control-plane + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + tier: Admin + priority: {{ .Values.networkPolicy.adminPriority | default 10 }} + subject: + namespaces: + matchLabels: + kubernetes.io/metadata.name: {{ include "agent-sandbox.namespace" . }} + egress: + # Deny the coder any egress to the hub control-plane / sensitive namespaces. + # Deny wins and cannot be overridden by a namespace-scoped policy. + - action: Deny + name: deny-control-plane-namespaces + to: + - namespaces: + matchExpressions: + - key: kubernetes.io/metadata.name + operator: In + values: + {{- range .Values.networkPolicy.controlPlaneNamespaces }} + - {{ . | quote }} + {{- end }} +{{- end }} diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index dcb8496f..05c8f0d7 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -64,6 +64,29 @@ networkPolicy: - 192.168.0.0/16 # RFC-1918 - 169.254.0.0/16 # link-local (blocks IMDS 169.254.169.254) + # Admin-tier ClusterNetworkPolicy (31-clusternetworkpolicy.yaml) — the + # AUTHORITATIVE control-plane isolation. The standard NetworkPolicy above does + # NOT reliably apply to coder pods (they're owned by a Sandbox CR, not a + # Deployment — an EKS VPC-CNI limitation) and can't block Service ClusterIPs. + # An Admin-tier Deny is evaluated first, wins over everything, and applies + # regardless of pod ownership. Requires VPC-CNI ≥1.21 + the ClusterNetworkPolicy + # CRD. Enabled on the hub (co-located with the control plane). + adminDenyControlPlane: true + adminPriority: 10 + # Namespaces the untrusted coder must NEVER reach on the hub build plane. + # NOTE: kube-system is deliberately NOT listed — CoreDNS lives there and the + # coder needs :53 for git/gh resolution; an Admin-tier Deny is all-ports and + # would break DNS. kube-system carries no exfil-worthy secrets the coder can + # use (it has no SA token), and IMDS/API access is already blocked by the + # standard policy's CIDR denies. + controlPlaneNamespaces: + - argocd + - argo + - keycloak + - external-secrets + - crossplane-system + - langfuse + # ── kata-readiness ─────────────────────────────────────────────────────────── # Removes the runtime-not-ready startup taint once kata-deploy finishes on a # node. Required whenever nodes carry that startup taint (the kata MNG does). From a78fa9845077d4987c627fe7f971f29c856668e1 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Mon, 13 Jul 2026 12:46:00 -0400 Subject: [PATCH 096/365] docs(agent-sandbox): document EKS VPC-CNI ClusterIP egress limitation + defense-in-depth Record the verified security posture: VPC-CNI doesn't enforce egress policy on Service ClusterIP (DNAT) traffic at either tier, but backend pod IPs ARE blocked, and the credential-less coder (no SA token, no IAM) can't authenticate to any control-plane service reached by ClusterIP. Isolation holds via layered defense. --- .../addons/charts/agent-sandbox/values.yaml | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 05c8f0d7..56ce50aa 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -64,13 +64,20 @@ networkPolicy: - 192.168.0.0/16 # RFC-1918 - 169.254.0.0/16 # link-local (blocks IMDS 169.254.169.254) - # Admin-tier ClusterNetworkPolicy (31-clusternetworkpolicy.yaml) — the - # AUTHORITATIVE control-plane isolation. The standard NetworkPolicy above does - # NOT reliably apply to coder pods (they're owned by a Sandbox CR, not a - # Deployment — an EKS VPC-CNI limitation) and can't block Service ClusterIPs. - # An Admin-tier Deny is evaluated first, wins over everything, and applies - # regardless of pod ownership. Requires VPC-CNI ≥1.21 + the ClusterNetworkPolicy - # CRD. Enabled on the hub (co-located with the control plane). + # Admin-tier ClusterNetworkPolicy (31-clusternetworkpolicy.yaml) — control-plane + # isolation that applies regardless of pod ownership (the standard NetworkPolicy + # above only applies to Deployment-owned pods; coder pods are Sandbox-CR-owned). + # + # ⚠️ Known EKS VPC-CNI limitation (verified on this cluster): neither standard + # NetworkPolicy nor Admin ClusterNetworkPolicy egress applies to traffic sent to + # a Service ClusterIP (172.20.x) — it's DNAT'd before policy eval. Pod-to-pod + # (backend pod IPs in 10.0.x) IS blocked by both tiers. So a coder can open a + # TCP socket to a control-plane ClusterIP but CANNOT reach the backend pods + # directly, and defense-in-depth makes the ClusterIP path useless: the coder has + # NO ServiceAccount token (automountServiceAccountToken:false) and no IAM, and + # every sensitive service requires auth (e.g. external-secrets webhook returns + # TLS alert 47 / conn reset; the API server rejects unauthenticated list calls). + # Layers: Kata VM + no creds + pod-IP deny (both tiers) + service auth. adminDenyControlPlane: true adminPriority: 10 # Namespaces the untrusted coder must NEVER reach on the hub build plane. From cd25645cf1b8a6aeff718427ceb897976ebd7898 Mon Sep 17 00:00:00 2001 From: shapirov103 Date: Mon, 13 Jul 2026 17:46:03 -0400 Subject: [PATCH 097/365] docs(architecture): identity + token-exchange decisions and roadmap ADRs for secretless workload identity (Shape A gateway identity; OAM identity traits; aws-service-identity/XPodIdentity/env-config; per-cluster eks_oidc_provider) and the user-delegated token-exchange roadmap, incl. the pending agentgateway release that ships backend.auth.oauthTokenExchange (v1.1.0 lacks it; PRs #2189/#2458). --- .../agent-identity-and-token-exchange.md | 233 ++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 docs/architecture/agent-identity-and-token-exchange.md diff --git a/docs/architecture/agent-identity-and-token-exchange.md b/docs/architecture/agent-identity-and-token-exchange.md new file mode 100644 index 00000000..3f5ee8c5 --- /dev/null +++ b/docs/architecture/agent-identity-and-token-exchange.md @@ -0,0 +1,233 @@ +# Agent Identity & Token Exchange — Architecture Decisions + +Status: living document. Captures the significant decisions behind the secretless +workload-identity model and the roadmap to user-delegated (on-behalf-of) access. + +Repos / branches: +- OAP (this repo): `aws-samples/sample-open-agentic-platform` — branch `feature/oam-for-agents` (PR #33 → `main`). +- Platform: `aws-samples/appmod-blueprints` — branch `feature/agent-platform-shapirov`. + +Reference environment: cluster `peeks-hub`, account `929819487611`, `us-west-2`. +EKS OIDC issuer: `https://oidc.eks.us-west-2.amazonaws.com/id/1BABC5C7BFD3BFE9636A486678E1D6F6`. +Component versions: agentgateway `v1.1.0`, Crossplane `v2.2.1` +(functions: environment-configs v0.3.0, patch-and-transform v0.10.0, cel-filter v0.2.0), +Keycloak `26.3.3`, Bifrost `2.1.16`, vela CLI `1.10.7`. + +--- + +## Goal + +Every agent gets a **secretless identity**. Two trust domains: +1. **AgentGateway / MCP** — so agents reach MCP servers and other agents. +2. **AWS** — so agents call AWS APIs (Bedrock, AgentCore memory, etc.). + +North star: when an agent calls MCP / another agent **on behalf of a user**, the +downstream request must carry the **user as subject** and the **agent as actor** +(delegation) — for (a) audit logs that show "API call X executed by agent Y on +behalf of user Z", and (b) authorization decisions based on the invoking +user/group/role, not just the agent's blanket workload trust. + +--- + +## ADR-1 — LLM gateway is Bifrost (context) + +Migrated LiteLLM → Bifrost. Bedrock via EKS Pod Identity; model alias +`claude-sonnet`. Agent uses Strands `OpenAIModel` against Bifrost `/v1`. Governance +VK auth currently disabled (`enforceAuthOnInference: false`). Not identity-critical +but sets the "gateway is the boundary" pattern. + +## ADR-2 — Inbound workload identity = "Shape A" (gateway trusts the cluster EKS OIDC) + +**Decision.** Agents authenticate to AgentGateway with their **projected Kubernetes +ServiceAccount token** (audience `agentgateway`). AgentGateway validates it against +the **cluster's own EKS OIDC issuer**, added as a *second* JWT provider on the +gateway policy (alongside the Keycloak provider used for humans). + +**Alternatives rejected:** +- *Keycloak-issued workload token (inbound "Shape B")* — Keycloak's external-token + grants (JWT Authorization Grant / legacy token exchange) require a **confidential + client secret** and a **per-workload linked Keycloak user**; not secretless, heavy. +- *client_credentials with a per-workload secret* — a secret per workload; rejected. +- *SPIRE* — heavier infra; kept as a fallback if the SA-token path proves insufficient. + +**Rationale.** No secret; kubelet auto-rotates the token; per-workload identity is +free (`sub = system:serviceaccount::`); **environment isolation is free** +(dev/prod clusters have distinct OIDC issuers, so a dev token is cryptographically +invalid at the prod gateway). Keycloak remains the **human** IdP unchanged. + +**Consequences / how.** +- Gateway `AgentgatewayPolicy.traffic.jwtAuthentication.providers` gets a 2nd + provider (issuer = cluster OIDC, JWKS over a static `AgentgatewayBackend` + host `oidc.eks..amazonaws.com:443` with inline `policies.tls: {}`). +- Authz CEL allows both shapes: + `(has(jwt.realm_access) && jwt.realm_access.roles.exists(r, r=="default-roles-platform")) || jwt.sub.startsWith("system:serviceaccount:")`. +- The agent app reads the token from `WORKLOAD_TOKEN_PATH` and sends + `Authorization: Bearer` to MCP (via `streamablehttp_client(headers=...)`). + +**Verified:** agent pod → gateway → `mcp-time` returns tools (HTTP 200; was 401 +before the provider + agent-code wiring). + +## ADR-3 — Identity is composed via OAM traits; the agent owns its ServiceAccount + +**Decision.** Identity is modeled as **KubeVela traits** attached to a component, +not baked into each ComponentDefinition: +- `gateway-identity` — projects the `agentgateway`-audience SA token + sets `WORKLOAD_TOKEN_PATH`. +- `aws-service-identity` — grants AWS IAM identity (see ADR-4). + +**Key constraint that drove the design:** a **trait can only read `context.name`** +(the component name) — it *cannot* read a component's `parameter.name`. So anything +a trait must reference (the ServiceAccount, the container) has to be named +`context.name`. Therefore: +- The `agent` component was refactored to key **everything** off `context.name` / + `context.namespace` (Rollout, Services, container, SA, `AGENT_NAME`, gateway route) + and to **own a dedicated ServiceAccount** = `context.name`. The `name`, + `namespace`, and `serviceAccount` parameters were **removed** (breaking change: + OAM Applications drop `properties.name/namespace`). +- Cloud-agnostic naming: `aws-service-identity` (future `gcp-service-identity`, …). +- Added a generic `service-rollout` component (Argo Rollout + health gating, owns + its SA) as the base for non-agent workloads. `appmod-service`/`dp-service-account` + kept for compatibility. + +## ADR-4 — AWS identity = Pod Identity, "Option C" (self-inject + init-wait) via an XPodIdentity Composition fed by `env-config` + +**Decision.** `aws-service-identity` emits a **`PodIdentity` claim** +(`platform.gitops.io`, appmod XRD/Composition). The **`XPodIdentity` Composition** +resolves `clusterName`/`region` from the ambient **`env-config` EnvironmentConfig** +(via `function-environment-configs`) and creates the IAM Role +(`-role`) + `PodIdentityAssociation`. The developer passes **no +cluster parameters** — only optional `accessFor` (sibling component policies). + +**Why "Option C" (self-inject + init-wait).** EKS Pod Identity injects creds via a +**mutating webhook at pod admission**, which only fires if the association already +exists → a race that broke the pure-trait approach historically. Option C makes the +pod self-inject the creds env (`AWS_CONTAINER_CREDENTIALS_FULL_URI`) + the +`pods.eks.amazonaws.com` projected token, and adds a `wait-for-aws-identity` init +container that blocks until `aws sts get-caller-identity` succeeds. **Verified on +cluster:** the EKS webhook *skips* injection when the creds env is already present +(no duplicate-volume conflict), and STS resolves without a region env. + +**`env-config` is the ambient metadata contract.** A cluster-scoped Crossplane +`EnvironmentConfig` named `env-config` on every cluster, carrying at least +`clusterName`, `region`, `vpcId`, `privateSubnetIds`, `publicSubnetIds`. Only +Compositions can consume it (not KubeVela, not raw MRs) — hence the `XPodIdentity` +Composition indirection. + +**Verified:** `PodIdentity` claim → Role + `PodIdentityAssociation` Ready +(`clusterName=peeks-hub` from `env-config`); agent pod init-wait logs "AWS identity +ready"; in-pod STS returns the assumed role. + +## ADR-5 — Per-cluster EKS OIDC issuer surfaced as the `eks_oidc_provider` annotation + +**Decision.** The gateway's workload JWT provider is templated per-cluster from an +`eks_oidc_provider` cluster-secret annotation: +- **Spokes:** the `platform-cluster` Crossplane Composition writes it from + `status.oidcIssuer` (same Observe+Update `Object` pattern as `aws_vpc_id`); + automatic for every spoke at provision time. +- **Hub:** set by the OAP `Taskfile` (`agentic:hub-oidc-annotation`), because the + hub is bootstrapped from a kind cluster before the platform exists (chicken-and-egg). + +## Key gotchas (do not re-discover) + +- **Crossplane ProviderConfig is `default`**, not `provider-aws-config` (the latter + is stale in `dp-service-account`). Applies to the classic `*.aws.upbound.io` + provider. The namespaced `*.aws.m.upbound.io` family has **no** ProviderConfig on + this cluster — so use the **classic** provider (this is why `agentcore-memory` was + switched from `bedrockagentcore.aws.m.upbound.io` → `bedrockagentcore.aws.upbound.io` + + `default`). +- **Keycloak 26.3.3 token-exchange matrix:** Standard Token Exchange v2 (GA) is + internal-internal only (subject must be a Keycloak access token). External-token → + Keycloak token needs Legacy Token Exchange V1 (preview, deprecated) or JWT + Authorization Grant (26.5 preview) — both require a **confidential client** and a + **linked user**. This is why inbound identity is Shape A, not Keycloak-brokered. +- ArgoCD stuck sync operations pin an old git revision; terminate with + `kubectl patch app -n argocd --type merge -p '{"operation":null}'` then refresh. +- OAM defs must be lowercase-hyphen (RFC-1123). Regenerate with + `bash platform/oam/generate.sh` after editing CUE; commit both `.cue` and generated YAML. + +--- + +# Roadmap — User-delegated access via gateway token exchange + +Target = ADR-6 (below). This is the mechanism that "checks the security boxes": +per-call audit of *user + agent*, and user/group/role-based authorization on MCP/API +calls. + +## ADR-6 (TARGET) — User on-behalf-of via AgentGateway backend token exchange + +**Model.** Gateway-side **backend** auth exchanges the inbound bearer for a +downstream token before calling the upstream, using **RFC 8693 delegation**: +`subject_token = user token`, `actor_token = agent's SA token` → downstream token +with `sub = user`, `act = agent`, audience-scoped to the target MCP/agent. Secrets +(the exchange client credential) live at the **gateway** (a k8s Secret), never in +the agent. Our existing pieces compose: **Shape A SA token = the `actor`**, the +**Keycloak user token = the `subject`**. + +**Standards / grants** (all under agentgateway `backendAuth.oauthTokenExchange`): +- RFC 8693 token exchange (`subject_token`, plus `actorToken`, `resources` per RFC 8707). +- RFC 7523 jwt-bearer / JWT assertion (`assertion`) — matches Keycloak JWT Authorization Grant. +- Entra OBO (jwt-bearer + `requested_token_use=on_behalf_of`). +Multi-hop (agent→agent→MCP) = OAuth Identity & Authorization Chaining / ID-JAG +(token-exchange + jwt-bearer composition; agentgateway `cross_app_access`). + +### Blocker — pending agentgateway release + +- **Feature status in agentgateway:** MERGED to `main`. Data plane in + `crates/agentgateway/src/http/auth/oauth/` (mod/transport/cross_app_access), + controller `backend_policies.go` + `agentgateway_policy_types.go`, e2e tests, and + `examples/traffic-token-exchange/{oauth-rfc8693,jwt-authz-grant}`. PRs **#2189** + (data plane) and **#2458** (controller). Blog: agentgateway.dev/blog/2026-07-12-…-token-exchange-jwt-assertion-entra-obo. +- **Installed version:** agentgateway **v1.1.0** (proxy + controller). Its + `AgentgatewayPolicy` `spec.backend.auth` keys are + `[aws, azure, gcp, key, passthrough, secretRef]` — **no `oauthTokenExchange`**. +- **Therefore:** token exchange is NOT usable on our cluster yet. It requires + upgrading agentgateway to the release that ships #2189/#2458 (post-v1.1.0; as of + 2026-07-13 appears to still be `main`/pre-release — verify a tagged release before + the bump). + +### Phased plan + +1. **Track & upgrade agentgateway.** Wait for / pin the release exposing + `backend.auth.oauthTokenExchange`; bump the `agentgateway`/`agentgateway-crds` + addons; re-verify the CRD has the field. +2. **Propagate user identity through the agent (the main app change).** Today the + agent calls MCP with its *own* SA token. For OBO it must capture the inbound + **user** token (A2A auth passthrough) and forward it as the subject on outbound + MCP calls; the SA token becomes the actor. This is the largest new piece. +3. **Attach a backend exchange policy** (`AgentgatewayPolicy` with + `backend.auth.oauthTokenExchange`) in front of the MCP backends: `subject_token` + = user token, `actorToken` = agent SA token, audience-scoped per tool; token + endpoint as an `AgentgatewayBackend`, client secret from a k8s Secret. +4. **Authorization at the gateway.** Enforce user/group/role (from the user's + claims) as the chokepoint — a tool call is allowed only if the invoking user is + authorized, not merely because the agent workload is trusted. +5. **Multi-hop chaining (ID-JAG)** for agent→agent→MCP, preserving the original user + and accumulating the actor chain so the audit trail stays intact. + +### Open questions to resolve during the spike + +- **Keycloak delegation support:** can our Keycloak issue a genuine RFC 8693 + delegation token with an `act` claim (vs impersonation)? Historically Keycloak is + strongest on internal-internal + impersonation; verify before committing. (May + require Keycloak 26.5 JWT Authorization Grant / config, or gateway-constructed + delegation.) +- **Token lifetime:** user tokens are ~1h; the exchanged token TTL is capped by the + subject `exp`. Long autonomous tasks need a refresh/offline strategy or must be + bounded to the user session. +- **Not fully secretless:** the exchange requires a client secret, but at the + **gateway** (correct place), not per-agent; the inbound SA-token path stays secretless. + +--- + +## Current state (implemented + verified) + +| Area | State | +|---|---| +| Bifrost LLM gateway (Bedrock, claude-sonnet) | done, verified | +| Gateway identity (Shape A) — SA token validated by cluster EKS OIDC | done, verified (agent→gateway→mcp-time 200) | +| `gateway-identity` trait + agent reads `WORKLOAD_TOKEN_PATH` | done, verified | +| `aws-service-identity` trait → `XPodIdentity` → Role + PodIdentityAssociation | done, verified (STS in-pod) | +| `env-config` EnvironmentConfig (clusterName/region) | live on hub | +| `service-rollout` component; `agent` refactored to `context.name` + owns SA | done | +| `agentcore-memory` classic provider + `default` | done, memory provisions | +| Per-cluster `eks_oidc_provider` (spoke Composition; hub Taskfile) | done | +| **User-delegated token exchange (OBO)** | **blocked on agentgateway release (ADR-6)** | From dab1c4fb2610cb404e05c4131621cadeff89f742 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Tue, 14 Jul 2026 08:41:17 -0400 Subject: [PATCH 098/365] feat(agent-sandbox): clusterip-egress-firewall DaemonSet closes VPC-CNI ClusterIP gap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The definitive fix for the documented EKS VPC-CNI limitation where egress policy doesn't apply to Service ClusterIP traffic (DNAT'd before eval). A host-network, NET_ADMIN DaemonSet on the tainted kata node installs FORWARD iptables rules matching conntrack --ctorigdst (the original ClusterIP BEFORE kube-proxy DNAT): ALLOW the Bifrost ClusterIP, DROP the rest of the service CIDR. Runs only on the kata node (governs coder egress only); the node's own kubelet→API traffic uses OUTPUT and is untouched. Reconciles every 30s (idempotent, survives kube-proxy flushes). Verified live: blocks external-secrets + kube-api ClusterIP sockets while Bifrost + public egress + DNS keep working. --- .../32-clusterip-egress-firewall.yaml | 156 ++++++++++++++++++ .../addons/charts/agent-sandbox/values.yaml | 16 ++ 2 files changed, 172 insertions(+) create mode 100644 gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml diff --git a/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml b/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml new file mode 100644 index 00000000..6f50074c --- /dev/null +++ b/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml @@ -0,0 +1,156 @@ +{{- if .Values.networkPolicy.clusteripFirewall.enabled }} +{{- /* +clusterip-egress-firewall — closes the EKS VPC-CNI ClusterIP egress gap. + +WHY: VPC-CNI NetworkPolicy/ClusterNetworkPolicy egress is evaluated against the +Service ClusterIP, but kube-proxy DNATs ClusterIP→podIP before that eval, so +traffic to control-plane Services (172.20.x) slips through even though backend +pod IPs are blocked (verified live: external-secrets/webhook was reachable by +ClusterIP). Standard/Admin policy tiers cannot close this on pure VPC-CNI. + +HOW: a host-network, privileged DaemonSet on the kata node installs iptables +rules in the FORWARD chain (pod-routed traffic only — the node's own kubelet→API +traffic goes through OUTPUT and is untouched) matching conntrack --ctorigdst, i.e. +the ORIGINAL ClusterIP destination BEFORE kube-proxy's DNAT. It ALLOWs the +coder's legitimate ClusterIPs (Bifrost) and DROPs the rest of the service CIDR. +Reconciles every interval so it survives kube-proxy flushes and is idempotent. + +This runs ONLY on the tainted kata node, so it governs only coder-sandbox egress. +*/ -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: clusterip-egress-firewall + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: clusterip-egress-firewall + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +rules: + # Discover the Bifrost ClusterIP to allow-list (read-only, cross-namespace via + # a dedicated Role in the bifrost namespace below). + - apiGroups: [""] + resources: ["services"] + verbs: ["get", "list"] +--- +# Read the Bifrost Service ClusterIP from its namespace. +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: clusterip-egress-firewall-bifrost + namespace: {{ .Values.networkPolicy.clusteripFirewall.bifrostNamespace | default "bifrost" }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["services"] + verbs: ["get", "list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: clusterip-egress-firewall + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: clusterip-egress-firewall + namespace: {{ include "agent-sandbox.namespace" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: clusterip-egress-firewall +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: clusterip-egress-firewall-bifrost + namespace: {{ .Values.networkPolicy.clusteripFirewall.bifrostNamespace | default "bifrost" }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: clusterip-egress-firewall + namespace: {{ include "agent-sandbox.namespace" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: clusterip-egress-firewall-bifrost +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: clusterip-egress-firewall + namespace: {{ include "agent-sandbox.namespace" . }} + labels: + {{- include "agent-sandbox.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + app: clusterip-egress-firewall + template: + metadata: + labels: + app: clusterip-egress-firewall + {{- include "agent-sandbox.selectorLabels" . | nindent 8 }} + spec: + serviceAccountName: clusterip-egress-firewall + # Host netns + PID so iptables acts on the node's FORWARD chain. + hostNetwork: true + # Runs only on the tainted kata node; tolerate its taints. + nodeSelector: + kata-enabled: "true" + tolerations: + - operator: Exists + containers: + - name: firewall + image: {{ .Values.networkPolicy.clusteripFirewall.image | default "alpine/k8s:1.31.0" }} + # NET_ADMIN to manage iptables; privileged not required with hostNetwork + # + NET_ADMIN, but the host iptables binary needs raw socket access. + securityContext: + capabilities: + add: ["NET_ADMIN"] + env: + - name: SERVICE_CIDR + value: {{ .Values.networkPolicy.clusteripFirewall.serviceCidr | quote }} + - name: BIFROST_NAMESPACE + value: {{ .Values.networkPolicy.clusteripFirewall.bifrostNamespace | default "bifrost" | quote }} + - name: BIFROST_SVC + value: {{ .Values.networkPolicy.clusteripFirewall.bifrostService | default "bifrost" | quote }} + - name: BIFROST_PORT + value: {{ .Values.networkPolicy.clusteripFirewall.bifrostPort | default 8080 | quote }} + - name: RECONCILE_SECONDS + value: {{ .Values.networkPolicy.clusteripFirewall.reconcileSeconds | default 30 | quote }} + command: + - /bin/sh + - -c + - | + set -eu + CHAIN=AGENT_SANDBOX_EGRESS + echo "[clusterip-fw] service_cidr=${SERVICE_CIDR} bifrost=${BIFROST_NAMESPACE}/${BIFROST_SVC}:${BIFROST_PORT}" + while true; do + BIP="$(kubectl get svc "${BIFROST_SVC}" -n "${BIFROST_NAMESPACE}" -o jsonpath='{.spec.clusterIP}' 2>/dev/null || true)" + # Build/refresh a dedicated chain, hooked from FORWARD, matched on + # the pre-DNAT original destination (conntrack --ctorigdst). + iptables -N "${CHAIN}" 2>/dev/null || iptables -F "${CHAIN}" + if [ -n "${BIP}" ]; then + iptables -A "${CHAIN}" -m conntrack --ctorigdst "${BIP}" --ctorigdstport "${BIFROST_PORT}" -j RETURN + fi + # Everything else to the service CIDR (control-plane ClusterIPs) is dropped. + iptables -A "${CHAIN}" -m conntrack --ctorigdst "${SERVICE_CIDR}" -j DROP + # Hook the chain at the top of FORWARD (idempotent). + iptables -C FORWARD -j "${CHAIN}" 2>/dev/null || iptables -I FORWARD 1 -j "${CHAIN}" + sleep "${RECONCILE_SECONDS}" + done + resources: + requests: + cpu: 5m + memory: 32Mi +{{- end }} diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 56ce50aa..321f93b6 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -94,6 +94,22 @@ networkPolicy: - crossplane-system - langfuse + # ClusterIP egress firewall (32-clusterip-egress-firewall.yaml) — the DEFINITIVE + # fix for the VPC-CNI ClusterIP-DNAT gap documented above. A host-network, + # NET_ADMIN DaemonSet on the kata node installs FORWARD iptables rules matching + # conntrack --ctorigdst (the ORIGINAL ClusterIP before kube-proxy DNAT), allowing + # only the Bifrost ClusterIP and DROPping the rest of the service CIDR. Verified + # live: closes the external-secrets/kube-api ClusterIP socket while keeping + # Bifrost + public egress + DNS working. Only runs on the tainted kata node. + clusteripFirewall: + enabled: true + image: alpine/k8s:1.31.0 # needs kubectl + iptables + serviceCidr: 172.20.0.0/16 # EKS service CIDR (hub) + bifrostNamespace: bifrost + bifrostService: bifrost + bifrostPort: 8080 + reconcileSeconds: 30 + # ── kata-readiness ─────────────────────────────────────────────────────────── # Removes the runtime-not-ready startup taint once kata-deploy finishes on a # node. Required whenever nodes carry that startup taint (the kata MNG does). From f687c9d19c5d5a7401aa546e0c9b9917ed4d146e Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Tue, 14 Jul 2026 08:44:51 -0400 Subject: [PATCH 099/365] fix(agent-sandbox): run clusterip-egress-firewall in kube-system (PodSecurity) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The firewall DaemonSet needs hostNetwork + NET_ADMIN, which the agent-sandbox-system namespace's baseline PodSecurity forbids (FailedCreate: violates baseline). Move it to kube-system — the standard home for privileged node infra (aws-node, kube-proxy), no PSS restriction. SA + Role + RoleBinding + DaemonSet all move; the cross-namespace Bifrost read Role stays in the bifrost namespace. --- .../32-clusterip-egress-firewall.yaml | 18 ++++++++++++------ gitops/addons/charts/agent-sandbox/values.yaml | 3 +++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml b/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml index 6f50074c..949c1070 100644 --- a/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml @@ -16,12 +16,18 @@ coder's legitimate ClusterIPs (Bifrost) and DROPs the rest of the service CIDR. Reconciles every interval so it survives kube-proxy flushes and is idempotent. This runs ONLY on the tainted kata node, so it governs only coder-sandbox egress. + +NOTE: deployed in kube-system (not agent-sandbox-system) because it needs +hostNetwork + NET_ADMIN, which the agent-sandbox namespace's `baseline` +PodSecurity forbids. kube-system is the standard home for privileged node +infra DaemonSets (aws-node, kube-proxy) and has no PSS restriction. */ -}} +{{- $fwNs := .Values.networkPolicy.clusteripFirewall.namespace | default "kube-system" }} apiVersion: v1 kind: ServiceAccount metadata: name: clusterip-egress-firewall - namespace: {{ include "agent-sandbox.namespace" . }} + namespace: {{ $fwNs }} labels: {{- include "agent-sandbox.labels" . | nindent 4 }} --- @@ -29,7 +35,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: clusterip-egress-firewall - namespace: {{ include "agent-sandbox.namespace" . }} + namespace: {{ $fwNs }} labels: {{- include "agent-sandbox.labels" . | nindent 4 }} rules: @@ -56,13 +62,13 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: clusterip-egress-firewall - namespace: {{ include "agent-sandbox.namespace" . }} + namespace: {{ $fwNs }} labels: {{- include "agent-sandbox.labels" . | nindent 4 }} subjects: - kind: ServiceAccount name: clusterip-egress-firewall - namespace: {{ include "agent-sandbox.namespace" . }} + namespace: {{ $fwNs }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -78,7 +84,7 @@ metadata: subjects: - kind: ServiceAccount name: clusterip-egress-firewall - namespace: {{ include "agent-sandbox.namespace" . }} + namespace: {{ $fwNs }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -88,7 +94,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: clusterip-egress-firewall - namespace: {{ include "agent-sandbox.namespace" . }} + namespace: {{ $fwNs }} labels: {{- include "agent-sandbox.labels" . | nindent 4 }} spec: diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 321f93b6..4075dd35 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -103,6 +103,9 @@ networkPolicy: # Bifrost + public egress + DNS working. Only runs on the tainted kata node. clusteripFirewall: enabled: true + # Runs in kube-system (privileged node infra home) — agent-sandbox-system + # enforces `baseline` PodSecurity which forbids hostNetwork + NET_ADMIN. + namespace: kube-system image: alpine/k8s:1.31.0 # needs kubectl + iptables serviceCidr: 172.20.0.0/16 # EKS service CIDR (hub) bifrostNamespace: bifrost From 984f990f4a46c1baba70628cc1d222657f0bbdf8 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Tue, 14 Jul 2026 08:46:35 -0400 Subject: [PATCH 100/365] fix(agent-sandbox): install iptables at start (alpine/k8s ships kubectl only) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The alpine/k8s image has kubectl but not iptables → 'iptables: not found' crashloop. apk add iptables once before the reconcile loop. --- .../agent-sandbox/templates/32-clusterip-egress-firewall.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml b/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml index 949c1070..199e1b1f 100644 --- a/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml +++ b/gitops/addons/charts/agent-sandbox/templates/32-clusterip-egress-firewall.yaml @@ -141,6 +141,8 @@ spec: set -eu CHAIN=AGENT_SANDBOX_EGRESS echo "[clusterip-fw] service_cidr=${SERVICE_CIDR} bifrost=${BIFROST_NAMESPACE}/${BIFROST_SVC}:${BIFROST_PORT}" + # The alpine/k8s image ships kubectl but not iptables — install it once. + command -v iptables >/dev/null 2>&1 || apk add --no-cache iptables >/dev/null 2>&1 while true; do BIP="$(kubectl get svc "${BIFROST_SVC}" -n "${BIFROST_NAMESPACE}" -o jsonpath='{.spec.clusterIP}' 2>/dev/null || true)" # Build/refresh a dedicated chain, hooked from FORWARD, matched on From debb450c2d71bf725568a389c35aaeae77fb63ee Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Tue, 14 Jul 2026 08:50:08 -0400 Subject: [PATCH 101/365] docs(agent-sandbox): note ClusterIP gap is now closed by the node firewall MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update the security-posture comment: the VPC-CNI ClusterIP egress gap is no longer just an accepted residual — the clusteripFirewall DaemonSet closes it at the node layer. Full defense-in-depth now includes ClusterIP deny. --- gitops/addons/charts/agent-sandbox/values.yaml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/gitops/addons/charts/agent-sandbox/values.yaml b/gitops/addons/charts/agent-sandbox/values.yaml index 4075dd35..64e69bfa 100644 --- a/gitops/addons/charts/agent-sandbox/values.yaml +++ b/gitops/addons/charts/agent-sandbox/values.yaml @@ -68,16 +68,13 @@ networkPolicy: # isolation that applies regardless of pod ownership (the standard NetworkPolicy # above only applies to Deployment-owned pods; coder pods are Sandbox-CR-owned). # - # ⚠️ Known EKS VPC-CNI limitation (verified on this cluster): neither standard - # NetworkPolicy nor Admin ClusterNetworkPolicy egress applies to traffic sent to - # a Service ClusterIP (172.20.x) — it's DNAT'd before policy eval. Pod-to-pod - # (backend pod IPs in 10.0.x) IS blocked by both tiers. So a coder can open a - # TCP socket to a control-plane ClusterIP but CANNOT reach the backend pods - # directly, and defense-in-depth makes the ClusterIP path useless: the coder has - # NO ServiceAccount token (automountServiceAccountToken:false) and no IAM, and - # every sensitive service requires auth (e.g. external-secrets webhook returns - # TLS alert 47 / conn reset; the API server rejects unauthenticated list calls). - # Layers: Kata VM + no creds + pod-IP deny (both tiers) + service auth. + # EKS VPC-CNI limitation (verified): neither standard NetworkPolicy nor Admin + # ClusterNetworkPolicy egress applies to Service ClusterIP (172.20.x) traffic — + # DNAT'd before policy eval. Pod-to-pod (backend pod IPs 10.0.x) IS blocked by + # both tiers. The ClusterIP gap is now CLOSED at the node layer by the + # clusteripFirewall DaemonSet below (conntrack --ctorigdst FORWARD rules). + # Full defense-in-depth: Kata VM + no creds (no SA token, no IAM) + pod-IP deny + # (both policy tiers) + ClusterIP deny (node firewall) + service auth. adminDenyControlPlane: true adminPriority: 10 # Namespaces the untrusted coder must NEVER reach on the hub build plane. From 2c071fd194441c70adbe95929fe616edd5cbec7d Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Tue, 14 Jul 2026 14:35:58 -0400 Subject: [PATCH 102/365] docs(dark-factory): refresh README to as-built hub migration + 3-layer isolation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit §3: mark the capability certified-live on the hub (nested-virt MNG, vpc-cni/ kube-proxy, warm pool 3/3, spoke-dev torn down). §10: document the three-layer control-plane isolation (NetworkPolicy + Admin ClusterNetworkPolicy + ClusterIP node-firewall) and the EKS VPC-CNI ClusterIP-DNAT gap that layer 3 closes. --- docs/dark-factory/README.md | 48 ++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/docs/dark-factory/README.md b/docs/dark-factory/README.md index c49646db..14c458c0 100644 --- a/docs/dark-factory/README.md +++ b/docs/dark-factory/README.md @@ -147,6 +147,13 @@ self-managed nested-virt Managed Node Group** alongside Auto Mode: > the taint + label + egress lockdown, an untrusted coder VM could land next to — or reach — the hub's > control-plane services. See [§10](#10-security-model). +> ✅ **As-built (certified on the hub):** the capability was migrated dev → hub via GitOps. A +> `c8i.4xlarge` nested-virt MNG was provisioned, the `vpc-cni` + `kube-proxy` addons installed, and +> the node joined Ready. Verified end-to-end: operator `1/1`, warm pool `3/3`, a `kata-clh` pod runs +> a real micro-VM (guest kernel ≠ host), `SandboxClaim` binds + the pool refills, and the coder is +> blocked from the control plane while Bifrost + public GitHub + DNS work. The old spoke-dev pool was +> torn down. + ### Warm pool — instant claims, cheap idle When the platform finishes deploying, the operator's native `SandboxWarmPool` brings up a **target @@ -443,18 +450,41 @@ Untrusted, LLM-generated code + issue text from anyone = treat the whole sandbox + GitHub/HTTPS**. `automountServiceAccountToken: false`, runAsNonRoot, seccomp `RuntimeDefault`, drop `ALL` caps. -**Running on the hub — the extra hardening that makes it safe.** Because the sandbox pool is -co-located with the hub's control-plane services (Keycloak, ArgoCD, external-secrets, Argo), the -generic egress rule is **not** sufficient on its own — an "allow HTTPS to the internet" rule would -also permit reaching those services in-cluster. The hub deployment therefore adds: +**Running on the hub — the three-layer control-plane isolation (verified live).** Because the sandbox +pool is co-located with the hub's control-plane services (Keycloak, ArgoCD, external-secrets, Argo), +a single egress NetworkPolicy is **not** sufficient — and on EKS it is also *incomplete* (see the +CNI note below). The hub deployment enforces isolation in **three independent layers**, all certified +against a live coder pod: + +1. **Standard `NetworkPolicy`** (`30-networkpolicy.yaml`) — default-deny egress; allow only DNS + + Bifrost:8080 + public HTTPS with all RFC-1918 + link-local (incl. IMDS `169.254.169.254`) + excepted, so pod-IP egress to the control plane is blocked. +2. **Admin-tier `ClusterNetworkPolicy`** (`31-clusternetworkpolicy.yaml`) — a `Deny` on egress to the + control-plane namespaces. Needed because EKS VPC-CNI standard NetworkPolicy *only applies to + Deployment-owned pods*, and coder pods are owned by a **`Sandbox` CR** — the Admin tier applies + regardless of ownership and is evaluated first (Deny wins). +3. **ClusterIP egress-firewall DaemonSet** (`32-clusterip-egress-firewall.yaml`) — a host-network, + `NET_ADMIN` DaemonSet on the kata node (in `kube-system`, since the sandbox namespace's `baseline` + PodSecurity forbids privileged pods) that installs `FORWARD` iptables rules matching + `conntrack --ctorigdst` (the **original ClusterIP before kube-proxy DNAT**): allow the Bifrost + ClusterIP, drop the rest of the service CIDR. This closes the CNI gap in the note below. + +> ⚠️ **EKS VPC-CNI ClusterIP gap (found + fixed).** Neither standard NetworkPolicy nor Admin +> ClusterNetworkPolicy egress applies to traffic sent to a **Service ClusterIP** — kube-proxy DNATs +> it to a backend pod IP *before* policy evaluation, so control-plane Services (e.g. `172.20.x`) slip +> past the CIDR/namespace denies even though backend **pod IPs are correctly blocked**. Layer 3 (the +> node firewall) is what actually closes this. Verified: before it, `external-secrets` + the API +> server were reachable by ClusterIP; after it, both are blocked while Bifrost + public egress + DNS +> still work. + +Plus the always-on basics: - **Dedicated tainted kata nodegroup:** coder VMs schedule only onto the nested-virt MNG (`kata=true:NoSchedule` + `kata-enabled=true`); control-plane pods never land there and vice-versa. -- **Control-plane egress deny:** the NetworkPolicy explicitly **denies** egress to the hub's - control-plane namespaces/services (keycloak, argocd, external-secrets, argo) **and** to IMDS - (`169.254.169.254`) — on top of the default-deny + narrow allowlist above. -- **No cluster API from the VM:** `automountServiceAccountToken: false` and no RBAC — the coder - cannot talk to the hub Kubernetes API at all. +- **No cluster API from the VM:** `automountServiceAccountToken: false`, no RBAC — even if a coder + opens a TCP socket to a ClusterIP, it has **no credentials** to authenticate (services reject it: + the external-secrets webhook returns TLS alert 47; the API server rejects unauthenticated calls). + Layers: Kata VM + no creds + pod-IP deny (2 tiers) + ClusterIP node-firewall + service auth. - **Prod is never a test bed, and neither is a spoke:** the factory runs on the **hub build plane**; the spokes are the **deploy/run plane**. Unreviewed agent code never runs next to enterprise From 0fdfefd4c5303450dca4cd870d49fd3b43d9305a Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Tue, 14 Jul 2026 14:35:58 -0400 Subject: [PATCH 103/365] docs(dark-factory): add editable draw.io diagram sources Five hand-authored draw.io diagrams in the deck visual language (white canvas, rounded shadowed cards, AWS palette, dashed grouped bands, clean typography): flow-a-capability, flow-a-warmpool, flow-b-lifecycle, flow-b-hub-topology, flow-b-lifecycle-events. Editable source of truth for future updates. --- .../diagrams/src/flow-a-capability.drawio | 73 ++++++++++++++ .../diagrams/src/flow-a-warmpool.drawio | 57 +++++++++++ .../diagrams/src/flow-b-hub-topology.drawio | 98 +++++++++++++++++++ .../src/flow-b-lifecycle-events.drawio | 64 ++++++++++++ .../diagrams/src/flow-b-lifecycle.drawio | 73 ++++++++++++++ 5 files changed, 365 insertions(+) create mode 100644 docs/dark-factory/diagrams/src/flow-a-capability.drawio create mode 100644 docs/dark-factory/diagrams/src/flow-a-warmpool.drawio create mode 100644 docs/dark-factory/diagrams/src/flow-b-hub-topology.drawio create mode 100644 docs/dark-factory/diagrams/src/flow-b-lifecycle-events.drawio create mode 100644 docs/dark-factory/diagrams/src/flow-b-lifecycle.drawio diff --git a/docs/dark-factory/diagrams/src/flow-a-capability.drawio b/docs/dark-factory/diagrams/src/flow-a-capability.drawio new file mode 100644 index 00000000..29bb04e5 --- /dev/null +++ b/docs/dark-factory/diagrams/src/flow-a-capability.drawio @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/dark-factory/diagrams/src/flow-a-warmpool.drawio b/docs/dark-factory/diagrams/src/flow-a-warmpool.drawio new file mode 100644 index 00000000..611d454a --- /dev/null +++ b/docs/dark-factory/diagrams/src/flow-a-warmpool.drawio @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/dark-factory/diagrams/src/flow-b-hub-topology.drawio b/docs/dark-factory/diagrams/src/flow-b-hub-topology.drawio new file mode 100644 index 00000000..dc1591be --- /dev/null +++ b/docs/dark-factory/diagrams/src/flow-b-hub-topology.drawio @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/dark-factory/diagrams/src/flow-b-lifecycle-events.drawio b/docs/dark-factory/diagrams/src/flow-b-lifecycle-events.drawio new file mode 100644 index 00000000..a3414440 --- /dev/null +++ b/docs/dark-factory/diagrams/src/flow-b-lifecycle-events.drawio @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/dark-factory/diagrams/src/flow-b-lifecycle.drawio b/docs/dark-factory/diagrams/src/flow-b-lifecycle.drawio new file mode 100644 index 00000000..f1dfa71e --- /dev/null +++ b/docs/dark-factory/diagrams/src/flow-b-lifecycle.drawio @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 7097a81253893d49cc7f8778d471839df290a484 Mon Sep 17 00:00:00 2001 From: elamaran shanmugam Date: Tue, 14 Jul 2026 14:35:59 -0400 Subject: [PATCH 104/365] docs(dark-factory): add rendered diagram PNGs (draw.io export) --- .../diagrams/img/flow-a-capability.png | Bin 0 -> 522574 bytes .../diagrams/img/flow-a-warmpool.png | Bin 0 -> 281471 bytes .../diagrams/img/flow-b-hub-topology.png | Bin 0 -> 604008 bytes .../diagrams/img/flow-b-lifecycle-events.png | Bin 0 -> 431385 bytes .../diagrams/img/flow-b-lifecycle.png | Bin 0 -> 370094 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/dark-factory/diagrams/img/flow-a-capability.png create mode 100644 docs/dark-factory/diagrams/img/flow-a-warmpool.png create mode 100644 docs/dark-factory/diagrams/img/flow-b-hub-topology.png create mode 100644 docs/dark-factory/diagrams/img/flow-b-lifecycle-events.png create mode 100644 docs/dark-factory/diagrams/img/flow-b-lifecycle.png diff --git a/docs/dark-factory/diagrams/img/flow-a-capability.png b/docs/dark-factory/diagrams/img/flow-a-capability.png new file mode 100644 index 0000000000000000000000000000000000000000..8290cbc6f77124f6eea4240aab190305133c552c GIT binary patch literal 522574 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 XvilqAt^gRy8<)y;f&wc9&g6 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

vBK*F0{~%>76nZISv)PYx^9hi!|xQ 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%0DuP+}XptcX#}X5}{1v83 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%0A&F=rl9$OiGCX<$S&Ca`o9pJ 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 z zyC&Hov@tV_zMp}M7t1DS@Io(>71uc3Mk`6H7Ot!aDZs1(s)}zV8rQX9YR^b?jEE)2 zeD){?*k{e}t?AQ>ZbJjaBT{Prl+`w0E!AKr3a#WcFE(XCg(E&ZlBIh7n27rM<3w7e zX}~yx?<7TTo81xW+A3RasX-CZ_vw#&8WtRN&IS$GHt-FBzj`Z*8UeoyLMgvDZ+0(> zu1jVqcH3%A4F*df&R01FNSyNv`XpWO6xC10pjH}3OWmngYc^hYahle5$BT%|jm5=Z zZg8|N|Cn9KP9(cwRhf}GzX)7;Hc^dp>84TvKsh%{%%NwF`M|qp-j_qYqdUJyg?(zL zEgVm?STD+%U&K3a=WirX5U^3fVzLz}&hb@l>QoQ(72Yk}aMamNQFlFA3SOFBfe10; zV0C{f4=b^L1A^HC9VEP#vqw|lxmMK~17>6j6Q#u^64o`uy(#5oVhJIr`8Z2H`X+?Y_7s(UN6qK6K8Q_pnU!7c)7bgj(fbF z$YV76`gmRV?x@f;BEXyo=uBF?*i%59b?ffb?eT@l<{Kp%D=6&mTQ}5}RZ-(Sb@d3d z9opI-{E6Fd4Zva3d}+RtOsld=a#H5Z=mR-S*{g_GGZ)t9sv5rBX|9ZT)(>J!peVSw5j#xjCagQLRn=AQ6!c>4WEh7 zKkQArD~Z!3W_`n0iDLHhW3U;qqFxBee)iHjhr^g zur;idg42x(=#+Il7SvBRqL10!w_=Q3T@_UnaRd4Kw~)et;*A>HPEwwb`_K5U;YwTx zainOwl7&{4pDSl-Pbq0?j;b%|VeV@V{(VyyuScjCHY2|hjyn~U&OF$~kd10B(|>q5 zqp+Uk71^;D3MLXi5>z0vPq3)m8!S4Mo*e7zHs?_0nf3DwXE73Lu}>O_&g7u$BxSPy z=oT;>aSW#xNgnzAHp+3RKj-v37*^i;S~sz^>eaE>kK?0m*SS=R&ol`U1EW>m7VLEV zv->25y;~mn#_PZRv;)Fu%nqfa0{?*aQ-t$cbG@5Kh7}%I_XGFGn8-PRE%9Oy%*_Wx zLdtx1MPqlaqe6gBDl2VUZlpdUwVLL-}g|(kw8JF^{JO*Qt0D}leuxAiTjJd^Q|X2{WyIIjUX#@3J%5qribCs8-k+m`zNVFDhmpcnUr5+I%n zh6u|ptU6z^Bbv{40goS(&`)$i5y32XFLnxya{96iB@_(0@efrtntCX4UEapO(AV74 z8}^7qFHg{SLhLYq9MDQk>yGt=G@daLWX2}7FK8i(8&N0&5L~giz)_*1p{lWvD0>Kz_Nnahcm|3=AFNByqK-B!% z6IFWyWF-OZ{%{^(WDsrd#?uqd=OFNL)P9O%uZn>A&a-DnWK%2y!~1(%jmHb4F)^zWV6FCp8Q~K9*Y%|@(^H#&Tx8YKz01E3XhaPe_Jdm#Lgyad z*4%&y7ze|4^UD^Y3OXWsGz^$ipg8iBRwFfgH?`=u>vW4k z=36*0Tdu?3L$>q%titCLMofUe(5%#p`t7Zv{sSuz0c6ZLbL268Y7T(zGTd|?N`);j z{(@;a;t9Y2Elo!-7X<0uN?9n=9TPZ4h^^V5EYxK_!@{Vo&Dr)k1QX`z- zEGHr11$Cnk!L^)oO`HWhp`iTdpp$T)x%`^Zdgz-_71G}CK}58l{@KPS?+5{jERg?A;{T*CkmA7C&~VLi{zyK;`m~43`N&wmWuZS*E@DfA6V)e}fjd{79y7=-qVR%KMNUb4 zyYb(@rAt4=AwtyO1dWCQr=U%ed^obU$rMszN@IK$Ul}X-bRmAcx?&VZgjp7= zn3cC-<05s=?v1svWI|+5PBp#gp2UrcnAJhtq5TH-8~WPGvQqkL|5K`&%6sc$w6gXq=w>JV~D zIY;L%R;!cem9NLC4SyzJUV2hUiF;8~(7Muf@?2nT zf5ok5f2Mx;aPojd*Za&GO>IVh`MID@j~I!CTdc_IVT{B4qt2`00NM}B#*%phEVY8_ zM_Gc;jw}HC74)6H6rcFx5gT572kvKJa>T0LaFPk74wI5)(5Q(M1Xd^y4kE=|V6 zj!$yNbcatd)7Px0y;Mi5zx$%NrvJwMO-6-_*SCcDtO8W5cLW?t<8y_Nk@MXoUfg?8 zYHK1me}IZGl29?gC$d27Z!-b2qN?o%uK>Jt7XXm&5mSGEEVHm7FvVnzvtW*QB!Ou4 za8DCqd3>XPqto@f`W?h-b?~ze*U>n5zrqrB$Dx;aL_DmXo9Z#T)4jVlPw0mAPG(eR zRg(XG-|r1IRc*HsnvIl3ud($Biz#5xS7t8xNmVJbgFRUt7%=ecpMg2L;D9H{@MoID zD=Rox3m@5|i&4+3Ej~oS#mPGofuTdpLnL0Z!@IFcf>rzMS1PYVoX5$r<+IqPpHIfP z41b68i{@~Raov*bWn^qpBwDIr%|`J2TEQ?rN$9l-OIlZQM4PTmv2N)Hk zIQ_(;PmCYRxjt>sU+Cz;YsXg1>^e@j5uXmn@I6A?vyQLa1(Q1HAMn0GV@=Q$7ah*g zEzpqRu!9R#|k`!cNInBtk4 z8mQ<_KSLdh*UFuLR9@((l0jN#F1btyHiiv#TJh9H-jlQqi7~SHtH- z6>>_y&J(fI0?Vl}X5tMh7RE1e4yMo~eySTO@!e>!#0~FrJjEwoBg(cCd7qVdbQSxd zMPu^d&6wB5Ia*Eec{ojP$ckcxW~-*Fb=z+&gG!y^ln3O?a!bAh%I5@9Va6UVQEhkz z5ntZ?#!FFc3puY;nF?n9G6NF0!jAcd)e&8z`m|Xr3ek(x&Bvv#v95vNIo64i@35x1 ztajlvKHv5DAxg{U{nT@!_8UpEBmE~rj*tCCyGd)K5g6Jon^df{)|#dKfxNVL;*iUY89j^i)j?Pv&f$0%@+uK0D z&QP-OX^4_MBO|lgSyw^H9=SF%$bNR5A&Rb#o>U}h#BWeD)#K_1yxP&TT#b(uKxE^; z>S+(taf@g6qaX%mpa9ozJCY25-H~eHN&|0A5bAn1W>>S|VN5Ekj%XaO59!Y=Q3=%7 znN7i*$Je0LHP(wSupR+UkE2R<&9&kyd#q5AQkSC{!q3I(Q@~ie;;gJ+d1Yl~-sUUg zQS#x^UvJlLr$Bj9%1}oV-t&{Q*)Sz7HMP$gcH^To#~VWtTYYLy=`D3Bn94xmrDZ<@ zBV+ne_e$V3`PHJIoTi&Wd1PiLkVsBLESv+0&i?9~(Z0Tn1O>rkWCDD1dpifhnWNBn zkj$Cq+d!RKQQuWIfI_zd+%CZmIx5+K0iL5bK}QuU5RJNzRpmxx>&lN7Q>yk*KCR3dRX|5-KRyav-oEee zD(Qv)W-MiO_t{pOQ0{hGrx46-D2gtrx)VB-62SDG^$VvsD&dLL@ zlq(8CHBRkaC3`xeQ~6&A*^`?$Nyr(V_ta-lvGhpDi zLl-{dDnM6H(1b(EnGBdW&3!3mL)WW1zxGsAwaEt1@Muj{{E0wsAqVM^^k%3&{zbF}%QiRg5L8jbP6Y58OqQV&pGLF5F!sgMn4 z;$9{aPXL98U=B^l;5FAmR$MxVB9nXN5 z2ZD32iqseFn$V242mvG9OKBM>|2?!71`M_I=x$QWD<=q9G^NfN!U85 zQp1-FnjNAQu@_@yDxgu1;#ryKQAmjCHLc#^C*LzR9VmAdQe`&e&ONXd*$N3yWf=&n z?CMrKwz&Bm65xV*mEp&z9vsx=bLmK|jpKt2J9^u`pgH7IB4*F~8bSU&KqSuo z0NF|of?~eR7Za8VHyFEMd)?d3f)F@IF!r^)mO`@v9p6YSL|~C_7;Tm;R)up^i|!d@ zWYEO@7@l)=Jz`af+5cTRPj{c)^UknSVsAXzt|;}~=w_NK3hi7Wr|1xM)b^*PT>2d? zjk^fm`Z0xA^gm7RAu+E7H07E}v)w#N;Z)8iGw`o2K!O{VOcw7tF~M#JV1;Nr{5^B? zO9XH8$tjzc1X@Z!S#imZ*Tu2G{;iFPNsa6+jV^Y8Serk~o7L_`#B4?|!GZpT7$bo2 z@0<+o^fy{4{YdXHY{h$fO5uESJapHAE6q<-my`eK@={gHuC=D=rnbS<7i${|%>S$2 zzX7z~TPXG#yVv$JT}U@BaLqUe2j8~uwY60QrsPR&Z&&X$A4lm5A;v2O>!eg1wQI<_ zp>RDA2$-}6(e<3@E@>KtJdZ?2B#GRtIfD@-WHub)Mk{7NNns-n#bxPwBd?EvAue|U zTNeg5igyU7oo3VP72yRG1{$7C^OQ_)$7RkA|l#|}g{rFYF1Y_)$Z z!IBlTswL{@z>WTS%#h>vSWk2r`!P;+s9h_*u3-aH{K9H zj26mOqX9s}<6%K~_u{37v~2_h1C8@}TYsr1yk117$xaSvgcTcN(&&X+imL$GYalUt z-E`SG9B=Gh;BTG}ZCXn17dCw9HukK-_-=%n1k9;uy1Y$Wa9s2WnZN=Hy#B=t(4H3xY5v-#L~!unxi&8z z7Mc6%l1SZNAz-Esm9UifMUJ-EK1#p;_Ewh}F`R_NyStgh1}{u5ECpUau5(V0vfKKx z;kCb``xEsX5*H{CwsUtfwPSO$Gvuf35aIx|W68j3A>NfniyAB9CCQ< zSuE;6zo_WwR8=?LhBYHHKq7bB3ZAJ>(Yw1%H+}ssYVp9uA(VFt4d0uN90Q_-m|os{UeuLQ1sN=zL;+P`}|&oQzs{^(Ju z(Cu%Cm+P%A!pof_rs7lnN|<`xS41l-GG;~j!xDK}UX_0Fr-n(Hyh}_@SeQJm&!E{d z$*R#OhOEyZHC}B&+W32vOZ#V&?z<4O6LxZCE|=>N$6^yEuNI!UuCzJEm)MgDUc{P5 zDFY7!3CKeo1~7~C*1hquZ)r6>h1^ef1jS>wjc}Z4w0Ta&oK7%{Hq#$Gqc{>jyQ<+Z zf@w2DEbF&lI~@&Ax3OU$oHkZ=w=C3#ol>Vh@T{)w(WbS8UC}UUbLr_{@m{UUi2IapV5SGe#7y3*{Cx#h~UKSqg} z)UP1f`(6>vU)6X-OVKivMj-wLer+F7pDp9Cf4~l;zzq3 zB-0@>oQ11)&4aTGdZl0=D|c#KVu|khKf!_q$yF;}WzkF@zV1q}CYH)L_&NZ$3ZMUGQDEl)!Q$AK}sjCTOIRzo4su&%bp>CP6s_H)w& zIBrz*J;lzIfVmNUKTpAR2!F)}=AJ7%6hak=aUH;VP9^m9rLx_P0kZfJ^pN8<6L*P@ zZqv~Xlkgl278gf|>F@f1n%Iyk3TFatd9ggzTwkd_RSLc#6KUV+#)i9g=#_f%pf1+LWVWY8Z@bRZ0gUL}xRG8mQK>b9e`5M5c(;4k4G z%EDc6wfR-=V==yI4_;Gv#VbBJZtv)WkV-w>{o3E2mX1)e1tRM}PZ6KSJ9FpM1En%S z@~!ZgH#alvXc-bOuba157dEVLy+l3nDo@6ETr#@f_mO#K-M5^KMRY!8{ax{f;EPq@ z5$gRg6+gWK5=azlu1yI=8KYQ9vGLO`lV7{9_@*q^YapjYFz@>bIsaR2IpFzxd;Y1A zfg)~{`2Dqcn8@>|>gLd-_J<3oQqfV*CO!E8M*xhiTGlZKoB8#_TwMJ4h5zoBI?J;Q z!cRA}NMHrXW_?A*2zDg$KI1OyX}5m^^*zDOug1nk;Kv-ym#~6B`4G2k{gOG0VuEC=dqo@z6hbBCdZ%CD9q~kcR-V_wmM)? zoPTj+12}5UFLJo-+6WL27b*^de_BzVc5`!0PEK;e7h`84V_Lg@yW?7ZyD|6f;(T{L z*O%kj)mW3}&5ERsFERu-bF;Ih%HW6m=ws*WXMQ*>06)q)xkyhRe#@$U*`2n39=;S+ zDGKZmA+t=QS|8T_PX^#`sNfuU{2U&p@jaE9zDKSrsPpE_5)fUQk`?;5(!B9GVa3De zEIR3~du!?^ndx24Qn}W!$&R>bcls<|85WO!@#)y>TpnMS!8F205Z3` zd!zbx`P+hUMXF;!5*}Jt!Nh4{S?Y!^2X#FgvC$*pFh*inZr>neGp%@gT6%A7bqtMQ zcOSQm*TW8&dU26@5fHCw&xf+8^<;fuha%W>S*WY+CZw!YLprdKlJ>p0FS_1Qt`3nQ3`eLEAl&LIp(MWhi8 z#xfX9duhPH9+J(Z0GKG1ZQ|RW`TXIdB&*c~M*lCfD)?1iHP73>hqbR^7Zo32yN1vIISa;MDFIJIoVhA|oaO#)-X19t-?=?%fk*CxtSSRCeNwpnSBxntkeGReT0+)lkim$*8A3KzjnyrTH_z%WTB~M ztu5~EF0U+IZg~R9$#A_#;$5ORPPAC{c-iCXe!M_nQddo|F2j!*_J(MzG)I_XxIm;Z{DX(IycDJp6@ZUcxl zyPP;McA0h+MgXybAPb`EImX@{WKYe|DAq@#Xq&h&B+1tFm z_?8Q!k`ohN&rkrXdfMW_3t<09g6fa`$wJCO2=z1uk&Un*@_k1xR8rHY7voUVP!LRi zyCnWNYu)nS2WpTQKwLK0*S3CpHxp7PO1ZnaYBo*I7YFyNTx`ER*~__+40@2=rZVX- zFKj63j0{H<*fupmW=EH%hNd44pNwlggyKJY_2>2}H(prT&9XN(S64#_>(<7~=H_V( zR}EFwTk!n!+v~HyT(eUQQj~1=bKmlO5`%Hfvyn^JGkesq1jNHP%#mQREIj-dL|c>G z-5y((8Mf2S1bB!KWz3MLPL5_0V0s3gkAJwWcUxKufCud@V_e`dRZk=CecuqWxjm-n zd0;#(S`Y8`pH9l{-*?RA`Ct0}l)lfDNBTMqi z5N~UACY7-e$t#F*a5UcC4<4{KOp0gwJV08}fa7uuV}&hnv$j1Lv^_Q^1r_i~H$HQ7 zlXWCg?I3kjC>O#SSNk0gPj}qZRarYJs8D5ldSzMSLTF{d3Z^8Ss5#5LHYp19yGzLP zQT;J5Ywu>X0}f0U(W>| zA#CG3sY2u3;C=(+dOOTCq}+Y-?$gIW>qjsXqgC(hTyPgS6ZVyb}itU$-eH7gVN zv|A%io9AO9gUcXkJ=<3Hqc2PZtT_AKZKB#Efqy%F5naf@4K@`VkI8lET)%51ZIS3S3`IK)z<=A2GZZAyqC!ONWJTTJ~&FMqHk z)$a3N@pzlUOuY#Z^T1S*QmM9R1eS0lGQ85tPbON*)9zhF95}c<2xE1`S&I5C^j^$R zN*z_qa!x`yjv?wrHOPuCe7mI788z;+2sFdbwTVhi{Z~D>eL(I6Jn7s3#dRVdDtcrg zDjbxq^Yg$wh#bm;rbXeXVre_`T2!1@H^enRsDaknv;V2Y>>y$`dJujgncgiX;PsE;$^3ti zAmsQPwi3m>Ln0p^4wsWe$qd)sAYd4TQ@nczyj>O!Ujtsde(^sC(9w@iQEW&RZD}-$ z!JhMiM~s;|pLt>|(2SqBqd{RYK0DLP9~Y2@Vd)}u9%Iym#NZ*OmZt4kmIb&8xB|2^ z6r?QWnL>0cPwT{f_Y*!>8iY0C_JyB~Vi(|v%I)pzRU9?$YU5Z`_;qxYwOwf6&V;t+R# zP;bA%jvr~dhYJ7Ntnmav!pyM`j%Ndk8P2`8UxCgs8_vfJT>Ky1-U1NTq0P(7=oSVm zzqIr)S3KK<%;ESwlo+DWTX4-h3m5|}LWGW~q3@u%eUuH)@oenxKB$C0CQ-f!TXWi6 zTt{0W-2E1H@*8z5K&ivt4x}$3L8?*E{d+k)uOk;Ac>gwq5tVzPkW$Mfu4S4U#?A{+NIv z4_;Zk#_{aKG#yE~=MBr0SbqSPkH32!^FgG$Dx98yUC*uZ0v^W#M4iVE`XAtSh;Y{> z@Fb6cb_C!%I0pHa&NCe3+0wJY;=!*ss>yHf$pX(1V1(CvDROIzpUA}QHg4N%c(c*< z*C{5X<$rxf;W`v0Tc|WEWZ0YmfGe2AR?!h_d+>BYxcp;Yq_9 zeykBrc0gd;EWewo(5vTRNF)z9@pU*I!svljch#8)?d9c}d{tF7S)A7rUORY0l5IbI z>ayYT`#)H~rybj!zcL2y^;=p*H2XkKh8Xj_B8hiQ{-v#2u9^t7I%&?D`1igefPZj! z%19l>S}EE5%7HT&=reZ6#$RdzcORHuku zdlGm6CtlprtqgUW1^pY)GUG4j4LMHAbDDfYjgUkCtwm;vW83ub`C)E(1xQ>Y!WMIS zyTK)SO(8sKF?#udM(3A32+2fqC>!lgbNf-AF>I53?YN7h*+PbaA$CEb{h<4>V|lTQ zuu`PW7JOi+%~{SJEGv*qSxSWjQBmo2aMsHXu~F7*s@Ly#kH-jgEcXhR@+{S;I5T{(C~JJrNf<>~~5QpGt2CLU^U- zpeWXzBlZ(N@4CfsTSj*~_IY?M)~M5+!2Cj|I{-yWWY2XH>7jQtlkrp96{N^-I`|CW zbsSq$t4Z!2(tD>B$e8fN?B@WE(56?u;(0$f+q`V1mT>3^1rOIA%3_mqA7x;!3Kb7} zETqLoAxGAf4f2j=5KR@J=93ljfDfe>MH^*Zr%*OVV4`ea3B18R4?Cx?Mk58EF=7pK zo%jt($YGc0vqrFeG)=tNSeNDZ<1cPeZYnHQ*j(N~U)da0=bNPgWJX6eA=D2L7o~Lz zViBc0q7shu^HOV7s@iOhLaq6k-2ZUu|4u(f=iXM)q&CDX!7{DMHa+Av-yUEKLC{Xt zA#}ih+Dpj#%W|D<|BSL_d49Y2pO=CFx$k9t@Mp+SdA_Ea&R@Mhx9fjzbND=&&FKo96UNDQdWR%lSL8QBhRsft z_v;Ve=MSOW9G!TS*Su25O3G2g5BK*s`QR^4?D0#J)6*|E)bGS>9wHH!Es$xPy}P2I zr7W+bxtWRUbm4cs`FD2f5c-e_YYv}akNOT`eDG>__wG6;@tOd4FiD{JZvQh}&G+`YkS^zxi>KUlxa_ z!ImoVx}&Y%`tZR|zub24TF=x5%pX^;$~{}(BnaI5japBC?%oZa#Y)a#GS_pP^=#OK zq^pNJaz`aCHHi}ep2^j9mo_%MwuL{&A-effx#D>YTDt#cLr4Vncw@9q8wDof`!fn4 zDTqPo8$`AoQ0?=s>@?F4*#vqXjqy7%?|y?`)MG}iu(x=fNbaVDWm$l%0Tz_pm~X#@ zL?*0l{=ET$Y~438V$F#qbFcn_~CWleX=oo|Fl-e#c8+YcJsTQcX<*!QQ!ER zpRe2-q~f|jXfGoTm8{ZoyW^?O4o)v`ZxATY*$i0DjvqGi$5tivZrNce($a~c?D*yJ zt$_KKwiFOtUKS@oQPpw~IPJGbj$utT6X%2~DNA@+{hzOMj|KHyTb)S;-y5mh+8eK9 z^2GYUHilvf;_fUIJ%DxmgE<{!NaWvm8_9x0Z)&8HC!?WV2zs1rZut zW6~g$J{skOQH!$0ZZmm6^k}oz()PfVU&f&5bFV+cqFU3{hjIJ zg8C_(H8atyM)J5O(;9cPW1>X}2E{V9rEr+hfPe^l-;A~Clqku@5P?5CtSb-e*eAiZ zGZ}zrVbh;!v({Z-tBH@045HU${f50=I+*o>OPo26`EBTA#f2rBf`Pst=pnczgIy5L z7s*te#ye%X?93aHl4l~eLZ31z-bSC2h&LN2r%)CF$2}`U-Xnz*;bJN@A91l-&5T#5 z)*TF&A=^%aK`@*=o5DMqN*iZS_1Crv{6qWEoG46`trC*>)@%&Kyt_0($sAkLell}^ z4b^Q4JSD9qjnS85@=5A+f@YdX)2~O+H#-b9mus-Psi}FWgwEcL02PL=a!-esh}_PO z?6Y_}eUjoQDIGk|-Ic_S0mV(cOHd6(hwc7QfBnY?a_y4Ua-Aoyu*LJf1`KFo%-XYU zP47Rod9U}CO0*5!Q4f)FLK+R)IZX)2KNr~d+SQd(bXu0D zVMNax8x%hL?+}?RRi?;fx82(d0FF4HKTUw7i`>r;L}a?WvOoxt3=4{i(o{K!-vLBM z%XQUqzLlRu)MPRn2w9uEyV-1Jy*1LK&E#|uw)==!_Irg^*FpalDm!0NR&t}mg)Q&m z>fYVvb7Kl<3}M&O|Pdhx(v>ZvoUjVd*@xiClKRD&EFS1M#hPFQVZYWj^h?OMsEF~ zhFKy=LR+`P<%jNbu6#=sb!d!EqZy%Zqs?JiQW7VRzSGUve@$sYnpK(SCi4mVd>rKG z?f>X{45+FiViUyqdpl=6t`oZ_ZD#ZWJm!A_vrSj7*Kng3h4M^H$6`ke`+008n@^|7 zeVG}M{9aT*#`Zn4E?G|(8y-m0ED{*)eg#+EGJwV;Jg22HMUMRIuA^S=ZJ5v<2L~I! zs5QUIZ~v$glC^hknsxqner?^o&r#fW2N?0Bosd^XrK0AuyB4GGI@t)^nC*ZF-{u*U ztF?@Oaq5bOsg#)sEe;-MPqNwH25>!%q$lh9Y+br=G3mbCqFjwPl766%qS4mprvWD%R8kC>Z=S;w87eP7&u_fMlf`E| ztwNNNX9r;8Xz;wfA8X0lEa1N=0Q*ETC|{Z2OONnP0J^plVL5kLD4wYWug+*AWO1~? zr6iE>!I!^lw;zXBS3QZI`Z^rooHqA&o5bcYc(nC{_{JT<(2gwSYbUJXc( zd7{Zr3por!&6`5vEsBa(Uk1-MF4ZLpm=C}6E8{+o=5OGZ|BNI45fAaPJu;wrNCEi~sjG`&JbSO%T`SRh)`g>l+=y$qi_Lpg6i@R-P5T;!+{D~pW%>z~E0 zo8ku4Gfk#me6fV143+K2lacLhBjM z#i@Ob!UJ8*eX$`(L_+h8yrMnvFqM~2JD$xCPPp|kAft+m`EFIu!F7|WGL0q9>`6IW>F9%_eM^pA zz!2fZsoL~J#QDgg2GYwqk8s1MJziXVu{c`cOIkfTU%pieM$)_R@6~Fma|P@uMpogD z#~~L0e>Uyog&c8y>fw*$!@5)6?@oQ9fd~ZXECDV?kqDmP{SejtGXP2Fi zdUq^;B`p1qjZ3dh(c%1d7?IDSDu^nG7d?!KHa4{w+BQNkknyX1_jbqi*lpuFBX#rT zfl~fGZ-h%Ad;Dr6jLrOLE0YhD?hNyPoinIMfIjhD4@-Yi`o9)KO!0{@izk%zY4>oA%*%QQ_T-rBNS6d0!i^l>OzONp$o!nPy zH{Rr~Ox$9^7tEi&hLF0sDAfAj{EG;e9I$6L{N7R*9$pOquUa+2y&wwb$5obmRjwlT z6kT6p=ob=YCrcFes?_2f7D%7u2i(>X z12X+~Zes7^Qws}Cu@VzCKEsdVTKdt+*5tx&=W!~0{0RF-Q$@QYh(IuB)u<8P&aNMjpk8i_L^cfId3UzC%Sy^kj7@Q{j9Le}@lX`cuNJGj6B97ej|@o< z1=0w6ihhB#MXgU?XrSew$`{R8Q+bJER!y#!+u_W8Zykr9(f5pgHQG0u3_=wA<;#{R zgxn$XgEpM|l-1KX_(q<`iO1FWzBrD>6hty&WhEsYcYCDn+g=#OSBuBAk<+PxeL@$k zWBb`=zFvwyCFGopCU`mLyOcFQxhmUR!bw;2d_ zucVyR0iF1!h!fiyDiBR`nilYh(}xn()>XMSOW|vvZ)HsjRr}Wl9~sj!xat2ER7^BW zmEXUDo?Xs2&=#?HAK%Y56jB9nJ~am}I_Y{cDNxBN^?Griyqr3$t7K;3h0KwZl#V z4|y}oKdKs|^M^Cx&(C?rIja&Dz8H#WH3>rp)XcXQz8!^Y$WCFv!+<@$hEnNWG)JVf ze6DvT-nq8$6m>&e4c_0Q^3qb-Uy!LC{b@$XQRz+&cpVazXC#T>>Z7w*_0_146)=VJ z!+laD^=9e=iGFdn13gPyZ<+@7;qB!`J^ZCHsmv+CD@=4(Du`?=;kgdK9Aj3-QaiLY z(*k^%5D0(#_9U|LzzmW3*1+&2X&L;>0OT>l7HS^%0e`=+OPQy70v$<56~v84#uLC9 zIZFR~%gZQV)y&^HWo6_4U;+6lJ{F`mi*pGcD(_MhBYKi=tfdkH!^v|mV6zz)n1=Sy zAw>dsEjI4+z0F;?fHQ-c(SZOE&u$M_0U1&Z4&GNf%|vNfZ$<(HVrM5Rv>!9s;;`o5 zz&Zoj{kgHd0%@Oq|E7fwAWvNT$rn9bq{2=m32~WQij^q83fUkO$z|grwXNSJHPXL= zHQKjaF>o~Xq8QPFl@wkzU{Ny?@m6388JVgu!ipWe_`>ePe!lWbdX#z)(45sz_G#D^HFuU|M%n1fQps^3N8WtvhYW0>jkSywQ)~HyJiB)Tm4%&%UBMrs6iXC^B8$} z5{IyOs|3HrWm7Ay!tk)@rj)YTJ{6i6F)VDW-p5l9bh|MbQ8N{v8(RS)(3*aIMQYd@(kmDbzrOFH?6bxWc zvlV*b$NSdFmCOE(P}Gok-TsFvZDQgfY5BvP#E^@nbI$6XB?}e4aQWOQkNmBm@Y9X2 zj}2lJjxi(mce(UUL)O%mI7Qtc*t_<(qI3R_qv4T}uU88bHZ0w@b8H$j=OD*qn|sGT z=FWx=D07l@vz>d-e6qe)E(Y$N?7rkbEgJE?J^Ku8I(Bk5N*0DK^#$`5ap-$byh_gz z(3lv6swz4{RWmB+;ge>rl-GpiV~x&_U9_H%`<5R>8` zZr(DVPQW1^Bm1@O-UKWiWYqjiNLUDSiUJvWD{D0D8>)dkZ9d6QL#Y2fA9NJKLh7jHS<$z)feO`$CTsPoWDA&NeHSIjbnq_Fa5x;5v7H!UO5^E=Hs^Tr~OxFo;Q za4Z$$QwW~VkMqUkV1Yd=phQurQ6rvT?9W~SyWUKi~rLQW(G2*@l@6-mY?J$+FD3TpFNY-r+CzekT2gO+m*FUxI; za1RQ-Er)Lw9-~x&DZB(Tdv5hbmo%t2FDc>k&lSVp!QwvSHFP3TsBV%&-A8^UhFX9v zQwIj1SUukb`p0lh)$WJ!uL_vFeubR{9$0-z4DpyphxtWQZqy{%==RWQhd&?hY&b14 zvI*;j^po%4FLL8${2QqF0`-S@K2=<{J}(}x8lXpZOZmI3ji~X>v{+sv7Hkw1v$)+S zQ}Let9Gi|`KXZPjG2;ChW`&z{DrWm1i@|kkx?D*V@k%ds8sKagmrR3rLa{~71 z-OqhE$44_I1sbtd$0U+MvkK1coEfV|%Rmc5tEe?S4HZ4TZ}cmNy3HFa6x^qmG5p(| z=K6|`-`27aVT0t#7tdY6;f*GT2U}j(SAP~NO z^$)T4<4HIcqh6O(`FvnCV`)nGUsoKN90UvLr-Az;vtF3D)dHRe421wYu1tk$Z&0}9 z*szbt69+mjQT6b-!;S}w8=B(q2=b8Xq)7pw#!)Yn_T=>J*2}*g%6LEjCucq)t*WNy z;1u7>y%(STS6g?rbl=%Itjo0q_(%z1=wh|+yY-x}px$lYkLaA?ebWsNK;9aYVB*%_ zslxqQe(RI5;mvJBqD%p?vI*&D+}1H87P@qujndER{LT}FNgBf8#!!CbxJaL=Z7UeB zhR++0#To+;TxfH4=kYKLSrf)gI3+({rGfJ>QBlFiq)V4jP{;J(XE|$Rg})RtbtSRj z<0hdg?2#2A{&*S11EPxY`T!_&+`S%D=s`_~Ezr!prIvSWJ5%Cze|$UoSTy<}T@eoX zYRS39nmp7#V@nS)b1ki&p~2?RsSd5KYqn}*wt&)R<-%$SrU(%^RZ?5{-y`Q2PqTNQ zSAEyZC8%6ZN`NN3Cawika&K-e>gud~!9JZ~MZuHA&(=0G)jAvp+w?{l-b4}W{tSE! z_SQ&_F&G*?LA>vJG%GR<%uX|fp-cIAiId{MUWmI}Mn?N5V!4TqYa zDJch_z-8n^O9j90-_^#7Q2s$F^5T^ZNmuTJYM)Wc{Da!cI6ocaV0B38>LRLTtr(Y; z%_eWUO3;x&jsq=?-}4g++~GaqTOew~f4AxXoPc`#UOjD0Vg~c8n}7a2t)KmheL(XE z{o>Js!^57uS-|kI2u9wIC4#EUwNhatp^WjvtagWQ=36w1_`i2*9q`=F?0{SvwjLTI!p2t)+`7FkcokDtjSw$8JS4BRxK@uF zl2>VI0dDK9Jcf1mtCdbJuI?VQ#^4a6ZB?`Q(u$6~{;+MtP6LC&$%iXyef%h~pxzy) z)&{Lh<(RD)Q*BOrd>jJMxjoxQMmzId&T!{f(f2Yp=@vX{q@@{tg)tIjv%&S)Q#*f?x11Rj z6GE;TSUHHzU{v?}ovT9#nGe1Mi}JqGjD^STr=vy$AE=aOxQQ1dmu7dqz(yR83_zG` z%<%${2cIL$tV%bJU=V1Y5}J*B$F*Y4%KJLLTF%~%2Bh|IO{ExeQ={OT0~AAsZ<LUIE1M`mc*R|chhZ`Z)QxU%vOC~JRzJQc*YT`0%KkP@s%zt>B+$i6a9UU^db}p9L?GcG{;-xtgqkG*7T}H4dyFtYIbYpcG*a|LDxA z;z$b0F!qb29Q;R=c;Uo0Oqj4nf(+70A2{F}*~(!RG|>ubsF-D}NZcFCcQ$Nv%ZZ#X z%>+iuxtEy}qIk{}RNe;H=KmU@;5h{~KO=es&GwxM?Dg;kaLfs-K~Dopvoh**K!S++ ziZ2@uH@`|;o5ly-|-`H}26thU&!3fHIznHl!`2mfz55j^t_#|j`b#?@l zZIuP8Q@U&etnWttU{PTzVGC=r)F+?!dBsG$ozLCGzy7~+HBFE@fHF(2c`)t9>qo~QOOugqxk74IE| z!o@Phm(yRb{E&V#JR*wEjaPRclsZ{NIj(+qa6~;Y3?;4VS)GQ2^Pv zS|wj>Y^kdC29bPwQza4LhDe6~2g7=k@neUmbnyrG@~PA3+F_T_=4-_LS(e7;ItE?3Y8fwlg7V%`7uiDmaWaF@b4`@mep%WD@N z;$(J$MQ08~QvoGOm18ie5QY8;nCOLA9(ityXgo8sc)QpzU@UQt_$KH){{9*bOGL_w zaHH;p+JPKiPE+elFI)Yo-+0IE6L+j?z~r}5^`ND`6NP(@UU<%KSWf;gcIK+RN9y$s zQAFM9^?kM?J+vEgCM1b#(?r&8ST^Z`e@LCWC5y&T7PT&>L)%awuN@wW^)?jWI_Gf5Ei}|D)_EvJrX-H0(`F=#oC^rk zUkly|bC?}Az#%E4&vYEd{0FY_TUyLD3h6h6Bxo;&2+Fg<*3f)nt&LZs| zAIinB##3^VQ=^|?>XduGyxeId*^qj*PI~rY7_8F(=CnNoIYB|eor_@j{|m;N^4d}J z^)kEKHKxv#OV+AXQ;m@&AK%j{@)yMVNie#9i=CVlJI?qoL(cs8;qs1$(7b17aTSE4 zUC9|fiQ}TMWyJY-zPM@UZU9@U20?y3KK7?GCPw-QP_17Mn^TE>-z!H&c-a7$l4?r^ z%r4h+qq{D741DYZtoFBa0>_LhX9E*l8;$^}7rj!xY5T>)4mn@gV;t@kuSgPb)BE6MzDl| zM#Op77eFlMariKsFEu{KVa1^q;d?vkBx#AaJu#%d0BZ%i-M(SR!5vY@s9C#a#L0q> z>U`?zg+kiYiH3zYTPW0&(?|6R8)W`d3x2?ukXIKm{Z@e5Qv`^q^ntmRnV*JWy`T`P7Y@j z5SBov$?>?9wO7NeOofY9Q`g&}d9h^_opJzrhPTQ`fqrSs5sci~90|zM;J4b8TJ+HV zS<*(=2s7D(oE>@%$-jej9#3cbfEVF@tit8u>=BQT`D%769;mbX(UN~en{5V-oo%k9 z&-pQZ>1Jl8-K@KB2C-Z3H=u(BqEfyo`*mZ3`RLB%YQ5njRaH#M5;>!t?Vp8(g#bf4 z7%Y{$9?7T@x`cSxLh0dz?w>S%)gG?1bdZM{=3V!HU+S+q9xJ*7Tzf2V+?8j6*QBk) z9wtUVHTmvnt#ikr|FNgAxZ*kvD}Hq&NKt+rAe747dOeW8>c|T9R49K4e<)~eL@muxL`)d99ZR-n{vxzF!!HjqVL&cw8HXs2x&B<2lp23aE zSn*o=8XPt5jW`Wv5qU}zhC-Tn)?Z0ENZ%4nE6uC((p>RtpaQ!xBrJ))}qzirsJRe_+GcAk?kC|NlLovZ7g+Kn?|& zsOcF>YWm2i2-#rT6~`tTs5Tj-|U_oz7I* z>N)nxD+4|*&ab(hMe}plhxc!RN?dyGi_`OFH@e#Os|_}bYrW)Ru2(CJTugxLci{;p z%ve7tPWSF_eg|0n-7l8m6GHHLXm7KQOhtv+7u(I|5I?gR<>G1G29@e%brmgXsc}YP zPIfBVxWu<}_i~-a%n3~nrEn zV9`NiBG0p27WW2=C6UV6oFujCZ4*{JmiqO5%S2RrcHF#tvPLb2BvlN$DbQt%veJ43 z>j{$gBeBn0X3QhuPa96W)NIx;!k>>%!lu3Y{uD39n0nreg(Z|^6ahBOxO#r)ZxB@9 z<$A3&FAvx(aBLKj3nAOi7cEro7lfr)Qe~>UL1^$x&E{O~^W6830*@EJaM6v#Zf)GW zlcO)E&*$gQ??Xa^w_G+Cr@MK2O~MU3=#FLGAv&%}F1O2t+=2#|p$kvCWxKE6NJF)e zi|Z|==3LeFhT21%x^AzA+aE4s!XtZ*#>U34JNJ*$tGkOn2G!^CSI!ZTkUWp~nL_k_ z)@TRiQm{DQxvB#|{nhk#MJBZ=j+|K&V||Vbr;P-hwr`eah(s%B9M>+b_U)%$uP5=o z97ge{E^DFLeuk4FvYR~aG&D46+~&Qz#+H#Xus>O}8Z9_21obC4ZBD*SrcoRp9OfHE ziR~Bb1MC~us#TM=iYAT--(Dq(okwO?Aor%j`e+Cs*%GfR1zapDG(cw@=AZ;6NYj{+ zJ%U9QkzE}Q%=i2>*-}2J69ra`+S^IJ8MvLTw&1+Fp^7~6mTwFI=n~h>IAf=Q z{Q^SU?mzr<3MilDiib%$kW4D!gmD`>u_7HOs#EYguDset^98+f`k_%{;qmAM%|jM` zy?zO39jP-Dex_%ZFmUe)sLq*QU-*9Y(>MggACj{5uRF*>dyjqR*lRFe*-GX8vUMS)_%$o0SY*5Lon z?ExRKnC+^U(&lR>OSpz-uO1KS%?D=>E%>P6eCv1QkYWGk13REaccM02%+$RtI&)-f zlu71q6n44{6qIY=t(*^jRGV#iQvESQ_*ay9%SP_jr(}JAcKksBgfV*!6zb4y(5jRx zJ|vhkIZK96MG!uwnx#3$5Atq7>eTHJ!Z()Wq(lbIF0JxK4SKWmNk&PnA3IIqaLA6W zo6s-!txqA=U9VTv^rp-wm7FgK)tymKd_*Wqc=-5zKXeq)c9{eo|7cYP&bP_05=Dvd z77Nx0bn1O<$}3a(z4egxZJlr*m07J0u=M4gSM8efIcs(*o+6SeG>lo& z9f-RsI-o>3@S-%D^75P(IMfYF4+>yZbnWy4#40({W!a7=w(E?kk48tvswx@`mpcO# z!WwXdrxf0uE>NqWtCxQ{4HOE&e{4=wXPuD z97A;f#3djmCid@vwo<+m{M@naH?TS=EV+b=q0HPV+};!;;4vLh-A#Z)5JW6XwLhT= z`bg>gw0Ppw+TSn4LM^w`@!B^YiqyHAM(4m^zMzUp^Iqca&HFP!K>jHc^YA_|Pl*2g zeUC=qe&o$8{u{NqjLO1%44=n!zWjO0FV+k{eVOOe;?izo&hp6+(FOVhD^Jlw@Nw4P zuxO)Z;kO3nC9nFTAG=Z61hi=c8TuBiso<9V%x|3?e z@bscT;4TbQ@U)QT9{!yd2k6VbLt8G|c8sbIYo7b4O?P{(4=ZK*ph$oPpWf)wwCB5=v$BbM=Q1{ z1u>O)-3!RRR8bYaZvvaspMV7S44##rDeL`8U266@YBYOuU@K7`Wd5k-|0pP09{eiI zZ^4)L{#xj9@EfP(-oXMrLk9sCX=P*P6gyn%)cNI`8_}-|4~)9U{xI%?Ur6(($uWp; z)IyvHl%v8q(lQ>!aI82&?cS2O8%IT`N&GZxvYrs;t{E=eP3ez_Q&Az1+Kdq{8IcN! zGA_FwDS((!#vglG5U7wRiAR1cmAw&}dRJU~7#S-2QNhZZGPZ?}(Kz8KDh zQ{}AZ`(Em8N1&^sqok#`>(W+38#KFf>wy3tQPpynNA*K8p(HRT7?r_t%lAHbHeU=I z8%w*=t%8}B6-qx!%vi(&cS%!8EBx0$Hh?+TIn>RLt1{L1Ag=;GV-~BU1-@%cJ?NFw zezilhp6bU6s(u4LUb6J9my&lYZVuTf;d-O5^=mz6dwyOWI!OFa@M!~nd%t1h+8s~k zsD(>g#%imldJHcA(L=i8(agVpjxhondYYq&sOUzcbTm9^NqU-={ZW_FO!$$DJehK- zeX>c6I&E>|{^u(Oqt>rlx2oM^L0C#OGM#>VFZOO0%Txl{$XCXbwJeIWim@!Sik#`4 zp7RNEgi4Y&*ci%Bv%AZ2$#Du2^wG&KJi00-9x^Tst0q7eYK@KZe1gQEP(xp;f(u zs5*V^F)1-w!0TgkRPr16y;S^4UQ$lvR>zLZ$_%ocdJT9^%*IrGQ>@@E^ekm@-+=s1 zDaiSGWMt(1{ldcgM)}+^4AflRfb1-Y??8|zay;epv_Q*GjGD@YB?gvawc^21Y+{@U zwv7AbFz5Z#VWN)Pwep*MFC=)RcPtYa*;dQ@bLOgwKULjDa=p5E
(E$A1fIjR_oW{u*!FA@ODsA| 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

R4O#S1>F()~P3Q*BYN_bx$mbzjXzE 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μ1ZcqL%Cyh*Q!*C$~-;N*APTltfI3f8N-al=J7xjSkAA=PP+i&voYy(95^3P3?CO{>iDC{1v{u& zCp>oNEm?X>?)KK`O36Xw+s3Jw`#QE(jrjwrIBVU7db-d#G1ZL5Jefr6^>vfuXJD?b z*dnH*r()WBP47GI5O3E7fsd7%X%o9UJ|w5Voi-ThpKs=!-d5Cg7|gy9wEu96O}*^C zQ29BP^uyItABDOKtudtHeM;ZS@SoE>ZdBY0B|fPeS~*HxK2)dc7Sj>0(sYX4%B+pN zaC6pufKgIKkW6yJ9fn=>HYinmt|NPy%oDsprngL9{`d7`aD0}EY0CXkJy6gaSG`lp z&Ad?3*3H{L-??Xrq^mw`;uHeRy)tO;{>=qssD>vK0E0dXE$}#sxkx+3{iwszOU+$C z6kFc@Ika<}-90NZ+8}k}m*_yhntE}1TUA4^ay{cO78Hh|m0!{MDV*K@4B=4a~ssUuE1K*CdFz+AqKoP-zcLat{jQ?QA@YbDO( zPl@!8f%@RkT`Y#+lY)gixb`FLGu%P1>X+pJth`8HGTgsmk?M6mnEQo&hLD!Kj(D}< zQR#t;tTTST*s>8XK?McZX_{A+_vwvJ-*3h0d$0Y8@Gx?u5*z%zD|LPn*?-nSDi~id znZhWG$xA1x)D!&YjWvM_ecUJd|`E98c$cM%dRKtr4&I zHrsRqu#^o`8qA8xS;*Wc>H%T6_{G#1tS2PpiE@<(l?JPY8pC=I0Ox@UUum5^Dm)@n z?DQm!7C9(}M4Z?*Zv|6S!s)ceTRxWV{56=3ud1n}TdGok41f9xgR#!ZV)7TBvHJF~ zdBL$o|BQf{p&9oCap}!+g8pKy#n>{;Iww1rs&(p2^skw&O~Tj|oR^Ij$BaTL#*z8c zP4{YKngF`y&#dd*Bg4T(^i$VnyS^p4%H-pzs+;q@SP4-yO`}E=UYr1lr*bZ?nebn3 zbqY*s?1oiZ3P4rfq=gpowOCvhuK57o`)EdmqPp$i~FNzNTRA_&f%;G2AO$!aN}T zcBgEQe;U2GMMc_fWEgPNpg%NIVV>O3ISPKZzDV$^JCTxu>&lh~2Bp*IuvwI)Y!SD1 zAJY6-LBc4^!=3Y*&buhEq+l3-SXo8#D7f;qHh~4F9=>wOdLoNhJs?U#kwb`MmaPRR zc!{kO(O}O6Ez|nj%(cd6jze#6S@A8m)l3t-UB`BL z*x)3x8dj4K9_ly}j!nnTBnL(DGXr9yTQT%<9y*bRm&xS-wOG&)58HzT#fQx*7fu#S z9%}lm(+J6_V@EKBq1cgF3V94&IjLvm;`w~Qx-v34)mDX8V4=Z+{8;==l|vd5QLb<> z`z^RcSZtv(_MNo%m!U_G6m*{oz`-E2^H}YV%loc%m~~y0au)SQIBk|`TTVzWZkfBd zkv6ORP-OBeuEZ!Y;kVDo37|J6yf$c5#($VH2Cts!=_`3XzTUjSi>OJcFfSI&(%PJc z+u{j|kFcGFq{uJ0*5NOom*J|9B|850m`Dy80E`qUSY}Vy0I9- z!h;G8Vm(Nmn_r}=0<+81pI-4?HVu!c6T326svK57jxFi_^+k<5pxx16`hF4qTx8J@ zkLKwUJisSByf2?usGkMnzi)19BlrF7(%sSqZjBqO_rF-mOwVp;6A9^9e>9)VJh1gy z(lngX1k#C8f1m|0qj_wtHLO}wtmT#Da?_- z@)NFYZYE=K8WCZoj-k^>w{e6fCe8n>ePVJ|zuWuk?XUBEZv1m zsgSsYRs8?Nq5pvZUrnAg)fm!|4}{+5+ngDv=l;v7u6HPw5x# zpkWXm(k`qiM_%uD1eudZkR$DJ=R^c+{5d<$Q&VZu#{Q?8T8xe80YAA@DzM{<1qMIn zoSGkp+09HlUGq+8IMD#y=>(Izyj22oBO<96lMifmh9$1@qTYPdhC?qRLdug z>#Xz+5I)5@@4RPedBdxn?q5gDozAW5(n>fgQF0L^vFJ90+VO?%HgTc>6TTv&2BpCT z$%B6)lTU28lp8H?%sAzA=hPG2b z<-t9#H|bTDZG6)jMlA^N*L$t`Iqh+_u4QrTpa=pSxe*0$wOmZu+)(UNeSj?FMi+{( z>-o7rW~6LXy(X?srrW`cSTH?o$^B02dfXRW`}I9ZDFRpe`r<;TIWX$8$lmC*11nL zVZ=*Xl9)6K^YgC($jGMPhD_TZ^CBq8iu&}He57&-CKpMFGnJX}iE4s5YMeT`ny!f6>HbZvl%(wzj1`U3Xlw@K2m z(w5k;%Jr(MSE<#5+MHC=^$q@gB`{2%06LYBaqRQtU*(_bTO##7C9oiH7fkDG438uO z?I=Q_2tZ@C;UgB%mD>^zYBh!M^mcU}mL|XwH1OD*;OrKTNyOZ*YM{URl%$(F7huJ# z(qUz{epz(#5`1azX1RGurapf3UhmV0cRW4EKCF*d;71xxe23{-dj?h=ega*xuSl2i zNqhl!Nte^T0E|Haqk3|*mi%=tV$ zYD?Mc855u75^27^nA&r(kkuJ1`D-dza4?$ZSTo}?-x6ZIlYn}tW+p*|n1hLCSBME6 zmTkZI-O(nzCkTTgL8_RA5RXiP%#d4?vh~pi<<*t-oeB`tdg8Cy#tpPK`f#~V_nGI2 zLJp`EjeJUdYC>q{Tb3I4vH8Yr@?C5@AING^nFjavOD!3ZjP{bBx+Yij!O1+NqE1yt zV@~HZRssPzi#f;udZ9bZ5w-zXi+s)eTr?)Ea_mT`%>8{kHkGnQ+2{1T9A$2J{Pg;O~Zi>PlQGa#vEjP6~Wd4L%-q{OQ7 zEUb3<+fFWO^Ns}O>=$G}=DgN?EY!1*=S7QNiXRHr^SivuzaDd>P}I|?Hz4^&d;>R$ zt^@<5YE=xYUA7b+hR~Q_q*<_d?;Uw$ZmGr$T8XVL3YAX>*7-bCyui%-qcBr$hYFXJ zKEocgJxY0rFkr60Epi#doR{mPJceQHE=3%7tRV6TE%v&n7#YXne=BIGFG4ZGN*s88 zw4C1$P-pSIdMuv_=!rg$n4PVAFzoU;=@(#2mp1Um`^YP^EK3wCbX5gBGd8;W1F1zY zhUiynLRLpv$^E8T`g)Y!o3o4&STgcjGpjV6_XIf`-+VAkEt;bWX(~&~Pl@hD!+G4y zqYi{9wn%dxY6wvZK_i6IQyJ9EWQhg3C;T#s^XEGjQad`24}w%~*&ja)Q7t&ux7f{x zSZDe=toc0B>Q@42NSas-Pahtq9F6h@K5H?4CQZ(X-u4k0z!tb1zUvH6d&SASa3Sg4 zuTB)c+w_wr5r4F;z>T zyT3i@Z1JE_9x#=PQ<;m5hOAmDg-ZvEYE<4;nq6>14h3$mjs*RYFp^r603!W}hH|)e z%UuC2<>K2?BW3FJqD}zX{-L-!>r8r*CQ# zBt|@^Sw_$^Mh)DO>a8>`>1 zb~qenfVT7B;80$l-s+TBnDx=08Flrq4n@4MdqIiZqo7v4zbsk~Cv8&ictPPg7diGo zTDj0m$VqV-7RdInLU#|b_lpyY#}q-#17%_p(NBwBp*47$j$l^1JoDf1UtkRg=l10-6c zVpDnydmz!Ut?fe#-S@Hks^w>X%486A_yr&*a7u|PHB^2t<`l?ec^|aTRL4HIqme3- z^<7M+Yyrv9Om%wRnA=+m@0=slg_K)YM0Im&SAh1>-akgyAxEi`x9_DNO?Usz1%NT2 zf{ji$5*1zkA18EjFkORG=6JaPUdzKyly%O743rq^6`rMlC8{9I-5hs#8oHUauwOF{R>Ort^k>2d{CzHza z?bWM-p*@>&1LUT}mMdEY>bb>Atm?Lg4{M-R`qv_d%JpfP z5kKwDJUG{f3m_gnv26hNjr2r7D!y^r?z{UPi0hJ=zOb6bD#~i_{aw5K|M?hiKYX(AQa*WPYv+T zgeNclpu!%UQf>m6cnba75WW2Gk?aqrXVpLJ` zP0D+}p8YMe?|K>PoH)xGkP+v_p1et+L-g*I#W{?=gYSa&`R6}H!CK9N}Rq@NmTF1u-j!NY1-s$xgX zhzDT`0D2=ulw-V0&c+nM~;5z7{?PX)Fm_8LskfSZ>rt+s;E6CRE z#u2;P&W#5D^$9%bi9njI*0X^GDT^G947vwv#@i23p8Y|kMqts->`*|hz)m=-cvk=Q zr;AnrwugtG#$7p6Zo;}2L$0!6R-raVN}B%JMME8uFWz7 z{d&DTQ9kGM+$WjzVB{CD@a+38^jpqP5@Aw}8msk@5>^ZzhdQDAk(v0pa;${lNZ%H- zDIyd&pmagn>xxM0OGoFb=lA0Rd%?e6@AkCCAs1EFM*=p>y_?0|ya^J}68Kh%eX290 z@A7g*=*l=7@RH>=*I71sN=a+q@I2=eTQL7qPONMMOV$D$MD}Rc?uVq08OTY5@CByS zh)kAg1tH@hJGCu$cyYP)XtQ7HB&8G(sE3L-h0UDea|Ant9Fb5)gN3y33XDd~&(=8? zFi6}oVn2ov$FX^z>2c;xN}309NoO_jMGdGoT<-0lwnEGnv2C1_^{h?WjM}(O?OU?~ zmm6nShuoU$%80gIGr&CsK$=Fj+tM<#OQt83KGavigb8>1&xwl2JAD)S(@-v1;cX zeg-FuGt#Ui`MctX&9@hcS#pwKk@So-p=@Td?hTQB$sw4}IFDDJ??p6yAW7-m7tG?x zEyODVkLeg#Trt$3Bd~umRiX9xA!mJ*Yh96s% znbV-D9d(bbB#@kX0{ctCyL5K6^HuYU;F6`ryLBO5!$n>H z8~SFV_ih;ZV|$%GR2pqND^a- zNgB>&RiSXwMu_jj>8o0k+z?jYbqM*A;;b(~fV7eMCCnkOJJWY0X@RTFqST@PM-!IY zD?JfM1XtI%`3F0T=}h-8!;hRQb%BRq?NHLDIQ|_$**L-WmW;`g0csd##20+5?)Jd& zGEZLAr)=unq-+hFr$k^-KND+F(k`8htNpU1xGT`AGtr81hF+fNW68YrKqnjE9+l!b&#jdAK^} zjZ)PzC>}n*V}0L9OY^Ffx6OerqhjWCFps%Yk7|CgCZMdu=40}Eoeo;UN?g~MhQZh+ zlj!z4yzVZkP7+oIa(ytoA!(v^WYcMKu0V$mcZv5K@m2xfCKg}w(WtJ4g9y4-m1dEm zjVBy&3RA1g=Lc@?aq8Sc$tkRVjtWQ0Qn6z~cTtg(hp>|Tv7in4S+M}BTo-tG)|Jm? zht1a}o+jAlQo~heRAs=!qSAmEm(LkvBz9u2p2Yqf<}#xk{`{}L4=ePh1o;wqO!l5V(x32u1t@yUz9tE@FBT(oEH`<$Ze(5sgFlb)YL5C{ z#8p+U1&hn*E{f=Z)?i26CyErNwN^cqlBNCqPbYW%7$}+kE16v9e4nzO;n3x+k8v|L zLe2$|S2E;kCjJPp{?6Rp>7@-$`jBVjq5J(KvkVm9-MMc3Ou8uR08p6}%kIujFd zyPC(+*{h{9E3Rc2Ls7Xw0kLDLCa`n2XC*809yZ}!DB$B!!bWH}%fE#z{BAH!*l{*C zujrQD`8nkv*0M2?r^GleGzJAx*NzF)RQbmIbZe169#P(jV!^>*j#Va8^H^LIWqKUR zNWo)v4M)$$W}tRmTUL%gWEE8yRw(#0i!$|hfic;MjA{z(Dd!?=O92e?56RCn7y+Vy za%hf)J-yIXe+yfr4!;&UxoMG*_AI=N6i+n;P04(xiU#2_=&!{L!qBd~Yxlh%0`&!l zLkS2Faf#;|<{noYpz~jg1SZf06meHwX$LJnh+6J20(@Q&anG0hMLPyKl&1lV@(`r>eSUtI~ogR)jn&!84Da(bN)o2pJBdZg-nlJ&{qRLAG~WSJ{i^Fa{XE zudpQA%mEuVYH=ubtILQsmVX&guQu#bC~~KtG^{GP_H32yGf(7m`#s*Vrnl&BUMg8A zTBi52hdc4jB#O8q^%cGvRGp6{J9J8-kjj8)c3FOCNQUebxxB;SV{g({)jiB(kYL_jC5#WtmL!ELm>TZHs2x!2x_iJqnCL`HUO5B+r7Xry_n9ck3k&62 z(g8F=bn;RN$s%qURWq3bANvufv@kPrW_#IOlLpr*ZoTii7+^`7t}%@NB8RRfxR`e8)(FJ}+VAe6t$43%yZXp19!FR@$jqFU9gP>bnl+tDb8- zZfI3>OX&!LH_{$0%>KZz!*)IyH@7)R75WSk#6F^VnhDi|H+w*DoGGdd`Lg?Ret90^ z)Ah4!h6{0Vj0uxi?8iz6=@n0EtJIw=05O+Sc-TDLD{XJfZE?m|@}-hr5JaVIj^>*x z0Ocg2!{}p@hNmX&_(oK&KOK1Y_aURBK=CP46(zvyeTs1UaKC4I{(j#`(tRTpsc;A6 z&*?C~S#MsXf9dEKdD)o-|sFf`(Jg(7cuqhFGI4DguZO{-V;K&#o<|uCi8XUpo zJsjN`Qlpf+nXjfi*meA=r`&twIB<*GpiVn^~9ilgHcs)f8P ziT%mzWcYA$0DH^ZHZWe`-Z-&JPl(N*B_}~HsqJE&>Zp6Jbf3}!y8t0xYE~OwPcNr0 zt{=P3<;i-lq+10qf3&o-%fR&S4GS&EUksG2ecs#Qa(U*VPb7HXS5Ml2$5T0}t#DDq zlN)L6#zEQO!Ihg&0v##phh2B{;9X(2cG8E_@kf!)ABsAi@I)5I#?_MW_(nI7|wc49)6vazKl`D-yfr%$mUe~=7eqb9VdkvnB9 z+Itt~W2Shs!nD0Ly7MQj)T(4xyE<3u3j0vJb4DHXPq*-2-;TZ?Qm`-|{P^(j<)QF( zhY;8HVF6Y8NbFKgGIIm-3Kmm=__Tp>ps_rTyl{(!d@YN*+CD)=u~bIIpm3InE(v+k zXjgUK;|F&N&YRJob-jf9_QQrn!Ci4Nzg}Z*9W(KW z!eJic1eQr#HySfjFHeT-VPno;uPgKsUA5;u`U(-KlmO;P_c&O3nqGuvul=30hdtom zT)?#M@3ecBh6KZ;k+Z`I+|f#^80Ja~@%{6UEd|wy>G(w!1~^hP1w}nd?|k=jvzM|W z336HQx5dJ6)fG6g|HVp=c(ZpM72;QA%Szv%5Og-3HT4;Gs?B?)sH?K z2)Yv5F0m|7lK-)bO1NI}GL`v2Ue250;h*ad8vG`5@ZveJSWA@Ui(fi}fUpDbh)$i^ z)s$maO8`;>G|Ji3sZ(Py$U&`yECHt)H@S=gyqte>YnSpinYmS_Kj_3kOA?6rvgMfq z0vh`eWx7HE({5c(VUjWVo6P zd+8z;M#IT(XL1V0eoBSdcikc-Jf->NS=R=HD~0xM4%33dP&|6Q=h#9Y0>! zp>!@3$Q33&FJh|W?MQm5O0SzS$#+_4FCRum?o?%Xaso`Q=rU7X8!XMvYiZ!EaHzMW znGQVTcQXNPk@#w;k{66Mx42)wf_+0VJ|^o~L^^jAC0&6F0ASS8uHSJ{go@_H{7weg zn&icS*n^DMMf$nh(941D?=5VPfqQ_agDQuf=v1~$!Mp2t*vG8s&k6h=1t>5r^r{?Qiw zwA9ls2I+=7y`QG^g62NNpAX`bB%cp zp3EmmV*&xBT>+-E5sx+JX*vu^4XgC|7h<^OOYFBOC8fcenM%(sjLgjv`kO(c5epT8 zV#mpt`L)6iM#jw5q+S!k#<$og6z~_d$HyiLH2y-gGM-f?Bnsd4c3o0<#g@;N>8AJ} zA9^|nh;aWUq!lb+aFnaP1P zMf5NQ=CpIh?P)2O6XNh2P>H&mEtiLIE%uGN~%=yF`mbTe+57+=?@$ECk_99IomDLel~&MFH! zZYyx%Tp2e$7uqn>bOYv|^k!63;$D#mrZ5iT-OU-G^d^jH$6|n5?gZ^XZh-zysk#mC zl(Q~7sx~!O+{Y=W-H760&F3L;iu4~Hgw{`QH_zYo3D+~5-&b1eEQ%w(Sx$(wTFlmV z&}S*f)Of6t>JxSp6t!#kaOf(H+%2uAr{OvQ>iP=4-vH&?X$#E%%zs_?T;1pu>EDMW zS1^mv%(X+N>|44rNTR|qZxyEvS|YwGZkDsPdXi#H@c-g;8my!lfeNFfUsvm^ua>D3 z9ai`I);8ZgeK9@F0SBe}mWV~&Iwxsv6`+7WjdSyzl+5EHxr|o21)a@m_Cv2Swc=EL zyCfP90a$Ek$L(XbIXs%4N|C^yo1`95vjLYeTs`09)ppjoT!o-`jLC=k{TYX}4o9d^ z2mRwOsbqV~+oXPf;ZJH3zBp#&u~j&IT*_MecXc}B>%T4-cpLs0>`ZG|Xip=UL)>a8BAp@g#LYn95!;r9UrnyTw4~)~p5S6DTtN!46`_liEP9D4ovjFBgweJ2 zYz!-L;xHmh^f5&MdU(FD*kVOxq5Fz+ z-N)5$HcR&v(C0XzYl!me5B4X7IHGoaC0-Hd3U|TcQGJv1wuZB8BDfUZ+m;fs_XSpU zOp$bDdZkWv_4+`j(+>%%i^kj*6VI86#Km%x~3S#J+YReR`J zDR`tIhN9&AjEd{~_@$&eWvIS4)D)Q8}%lZS`ue&GX^|?A%`q=I58Fox0w3 z!kn#jl788t!SY_u#9Am`y%xC~{w`x=yYs=qgWf%AYuKHmN2>G3Q_AR)4BGw!~KbnpoeB5=f56G%1ij2ca&2Gu$A+zAb?0p^q?tSpO0retzlv3U@Ds*zMQ|qm{6X5NT2`Q#iNdys zKeL1HDM$k@u>!DLbrKcYsx21d9!OCU(fA<&o-EO!)p7$CMK_e3jOn9IB%t^tZ@<{c z4|DFA%-lOBh!MD#F6sKRsv4{#$b#rxPju`&>P-HjjG<44x5~@)d4z}L6|b@>G>>{F z;H(giP&*jSxTqWP{#4sGqT_aOlb#_$yoJ)gBNBHLN7BAl9@KXrfAivL)Fei1!7~kc z)mBfcXrz)vT85HYh*?JDSxji3PAG}Ew~a^S_aA_YGNirtCU7LjNz3bmDmGSf#Sq6= z_2+r;B(c?CbhFj4$mHAwgTPFHc5@e{laELodvIUWxSyJ zojXhuAQhhNZ796h?AecxtsQITHtr-5dxIwLZLLRKrNt@FTp?hu9U#p_3WhSsYlJ4y z8wp*{c8z<`4jFN7Y*$ktRn3vE5JauuFgl|aBMEyb8aAodAvvqDDCUy+*>u${sKu2h zIp$Kf_j6C&BRJl?D&;l83g))xgRMQyr~LRC!I!5~?cDj9LfMwqIgb~@dOBl zQadGWEmcm*bbwyO`wQF)wyBh2QlNQK;ORF&i;Y&S;QDesA+!kv94Ktd;r!tOn))e| z+6J>nD;XYKvwy9}d;(`5;}&`>tg{U>kfyJOE*9xU^^L=N_N;}a=xhC4OXpCRR1&3E zLv2isOI+UG*FGR~$&-AWO!Xm0LG2;M5;*(Rf z22znQ6MOFWVp3RaahRb5RiW#xxWK?i+uBbJcIHE5O)LRjGtG6D8S@8JR=Ui7&e0^0 zY<1}aE3d6+;T=8W)%U8^?V|X+kN{oxmj}`X@@~GC5GFu#QK5`oA{idJB85n8%p@uP zd&ivNDQEOO-rD^pJb3{Dlp=FOc8-~`Q!mja5hObq^suMRq{ODk+Ip{9c~?Iso;uF> zAxg4#(HOGIl;-{?V02%!Uh?YQZGlaV)vEquO)8+6xKQ;b&MkUx{8EAASRp?^hTn6$-4xD^NOMeM0 zEO}AQ0M;&|$8v2yqyw9ja_P6>(xYt*COsC zd&_eDg`a0+_DyJ6gpJ!!yt#CCU_tNGC7QuXCQy!S_U+;R`-b=tb=c0y*PR-3O_>y2 z$9SDY&K~XYTm>LNXec&wM8;}|`E8^P^QxE(fwc#pmp?%uZQuC1g}8MH)x<|3;fL-g z7C}6Cs=5i9kn|aAyfd1gJQYf9d|hnd%a84^1}|l$y||_|8uXwJi!Uqu&Te52S?2K` z##)kN^QCoWPo!LE%oMQ}QZ_EcB8y_po@lGZj8Bk+{e*R+(dhz?9q$Mdd(tin(ns%T zTYt`(5hOo&c)P_tz!w&6Ac>)U!5$a#OVQk#Jjra!jpt}>LQ&<^;2l^(O1s2>h>HMZ zlZn(N(K69RP+ZL7^Cb}$hDLP~83m$az+oa~8xt2!pN;$##}_d&qNr)#3X?nO?>{B* z383fE1Zvv686I)Yo58hiJA3giL5~;kYxbK2>pW;hQ7|8}n$r4uDoM`i3XzN@_Gh9e zMSSm59b(wkI+<6iQiX>od4zkdUR!+4+E3gnWry*Tb_OIcDn-fWc}mpyc2p0f^|N4xc<66` zt}g)_8whWFl#TmR-pED7s;iJvYrT{;bHvUB9og$^tgn=3Sx=W50wAr5g82^v>33fV z8pUz*IvJPGli_(ql6YUIV+Scycb}S&z`{oNQRt}D;6C~1H380)ddb%1K z4XT*U1cY5DRqaXM99*+PtO?KbMy=KlWgUy5A|#j~EMLaMoN58dTQcQ%ewQse;kqcm z`8OA!k-@0NaYYh7qac~xNyV616wXXYz>wE+dQ0gKZP$Ke=EzlU=^>V5N}Dw1-nsK5 z*R|B5>K#baKv9WU=56$2+-9uCrd_gI`Y#&Z85-8EDLxM=Mrrgqb*3qXC+bLBTTt|y z3frxyqMwd*9vPX+vNTWKw;0I-pDJQdbXU%43zu)D)uDv9Z<9$f^f-LUlaAn3rug)r z%*EYBZftxGM)orzZpD;0bLzjzf9Rn11@nB*xEKjfe*Pos;+;o1z^9CF4x_TgCXxUr z3m_oOEef9#(Gj(5bKV?iV$JkzgCx_Qy$)M^oS=w%!4sb8%c#@jbF(fcur^cecX|VQ zlhn3i!g%JyCAlW7s>iV7+mb|+NTo`r|E0`v?Sp4CD(4FVoF;`8EmU~i3CHDe&MCZ< zs-f04tX&jX+qIt#ZmR#K-4|+BJpfvKMSx%K4&ytElMh39xnhydvUcWuav~HoxS!V~ zTz-E@9V`#gi@QjN3$68bX;o*BTIVXtg%SL+fJpS1?PrX)oVG|FP5o-y)Bxh)GH`JI? z(orE6QW=*vfP-cU+ow4Q@6`;FbM=cIWh9oKO1~~>qlpRsWo~K!{4_PM zQ=_HoP}x8LJSxOYztyNu82tp4+f%6KD5<{QH$r(8asZ)%6jfdp7rUQcuX?1r&YeXf z)ZQjHsFmiM%?Z&!pO;TN>YuWn?G%PW!+`(O@ zUAsP9g|-wZ?zFfCcW;ZkySr;}tKbg7-QC>^ZE*=2EI^=GaQ7npO`mn%Z$0n%&isR{ zteK4Lz3;i~mWk4Ko?Y?c!b;{J6uj|~0m~&b_`h}TAxDe)%K;@#u4lVbn@MRfVu=K5rnNudin(wdr!Z-tjamS3rIpc_M` zlc#f*FvZ+01_HV5x_k=#W(e}yM?tp1d`YS{*cIbAkIeki2(vcX zmmgBbUy6<1AK|GF85U~9ZYqaq{irUorYwYnxhA$pnG)5}^J--je+ZcYRH*7z_X6wZ z`|mZ}Ux>2d_bK2CQ+Y{FF-t;xV?|p4Ia?i6uPhOnfVYO@sDF^9adR6l} zrYQQX4>6O)>nP4v7L!|j5o@24O*W^_4|k^GNI%- zXDDLMWBM29mJqx;e84?66=)NhKTSCuaPDEzeE1C~xImtAs&e4tD@=8<&L0rQQ)Q*4 z1gV0fvUHx5*mM<>GN*$0;#b1NTx*jC)=H5fve6dQLB2udaGj}s^@1==o)RO|Hlwr- zK)?12xi_t^+8 zToF&Bsl!WEF3nO`Xxf;VJ^2l+@U~ziV@}Qu{lFsaf$s4)nHOny3GK{i zrB`L-fQm8+ImUeqd{w?TBH@lko;c+B1fOS8IF5s@`@)VW-Rd*j; zZ@B#RA)i|QhnbvXAXSA`27CXONVJm}m;flS7TC_x0L?q)=uBfap-W($Dz#ypOcNVV4va$1)Q`RW{IaZ&vc-4QvThS5#*ImFWU>1U`1A z;=5Wf{+aQboTdLwajAd&q{XLjd`sd{l1lM7cr91#@l-AJi0&skD<3R^+2;4c_=d-`O=>Kk3>x^oyJ-)l3vGebbARiTMw<_D8ugHnJid5+283DN z{FT`WNnxW!djs)_HBLH{c7x+AXUdF|fjQU*=Sy4^kz6ra6_JDwF_%4A6izWymCLwT$HJ^*6L#B~j1Y9L6$V7$YI+l8elMXy4kqoZ~ zf8qX28*yU6({lJ$RpO+KY(L|qEgGJoJ2DYNxY=dVG)+(xF#hoUh?;ZE93jJf{o8+{J1Kd24HJJHDn~Rh~uTVWxe zp7?BF10y$td~ThhVy_^E)%cDvB!6C<=v+IDpQuG#MAm}dTrQ2$Zw&g{3Xgxs>ccuc z<5#80?8?%5`qHqCfhB8e3!c|vhkUw(Xk6A;8#?vLtIQv>h)kHryLb)`L9-*t)N7_E zu0xey%hPG9Mz*;sh*4Qmds^Xvpsc}^qtKi=WzY7h0L18dw8=)ic2D)l)y z!F#buBo%${*{EQT^o`-L{h&aPlD$T2l zw?zv$>_h&~qMn#_a=Br}Sfr;+bk)$(6$3ndsDtQ;lRQLOlS>#Y>-H2+55G&|$s;-9 z!2vou`Ho0UQ(G}4Cj0|IW0niY_>9cjv$rj4JSBtaSqM6DGuK!v09+{zh)iGA6&K^L zu&$*mvC8#$+NAMSvxOP$iH2R7);6u`#GhPgHHn$@9rY9Cdrez&-AH>KL*1XJw@S(C zEkreH2JjANlHpXG?vs(jVf=ucZ@OGrRLLgJTFr#UyiAjj3}%BhpBB>_OTh_c7i zP-g<3%KvFj!PA1h8sY#*5j%Yj+>*n1Mn)DBr0g0}k0s2qTS^jL#T)D~-hwkMAv6gs z+s{;`%)*(;c%1s`uaMu)Z?#*$WQBSo>cSvU!JMIhcJ0$5#Mime2^=gWI@-Eo= zU%{CF00x(jT^Yqv?9Yy^pO|Bu4ja4}toL>EY^lWux9u7eQK#iZQXwR#uD<5?KSc)s zG4RQ;8a1cLW#u2g`}rGCTP#idm)d}{Zi}}|T$f87m0rqTGD8vmGh2VEv@e1)o;$Hc zdCh06@B-GguCD?77E}aXU|}5x@1Ud@7%iDWb4}aVz)@m3FnIjXb93i(Z+$MP5sTKRqexYMqbf@ z0E=?H`jT&yuj~Ahfo+lWyYJ&(33^#H2}k3UuE9ZS&$)T8l-YHbnhc=w7B30DZ~TyM z_O|3MO5D_IXiIg-5L8w@x=eGUK&zq2H=sG&t`lpG3>>h$8iX7k6Og)1!Za#Gn2a7= z0R1trPMc1QQr_>Ps~VfB3`RwJ}m#ErP46dy-wF_bqh zabUwQC|hB{txQ?;$tZ?Y9tOyF`2*s7EOnR8Ii$hOsgx6196U*C>azIRG=dIFE_jE< zRLO$7+lK37&HSBE3-Rk|U1pOOYhD1EHVr@19ra%|9GZQj_RLzH3dE+$Aw_X(%rI$8 zmK0hvlpyeeuzw(?kLt(CBXyxFiY&EFjIKMBlHRWu`(xe0{Nk?}(q~VksUrOcM}~yQ zab2p-hgTC(&8PTBAv$lUcwT6f70ip?P1%CfmC$@$4>qKBCv$CT-zBPhrQJ?wAM}7- zkBE@DmE|F0n$m}(c+YNueEBzzWW+zHW9Jf|z-ny<3tD%k8Qm6*4{4WPN~wq=4j>9L zO*{tx4e7XcLY5Y3H6BpX?&?c4iNZs;e+Y;@s&96&0y}6Xg}Jm_;7NkDkzX_t?6^mC zNk`v0dp&%nf;WpRFOhioa8-PCZ5-*IsqU)@Y2kXyjW1(Q($(g9_LX-@hvu9vT1?Bs z=EHZfZONQPyL~|6Rjq#!Jlt8l04=`c9NWk?w(kO8$prW$(9jkAETX&5dnrt8OZ8kQ zq*|asrrny}2zicAO$ihn-=l(egPb7vCzFl`sNy{*zYG7)1Ma)+t^Nka`0NVOf+N0>Y>nG=V7H|s6{6;_|4Auv4M6S;g-l9(>*K+Jf6((+U#6ffM{zmBlc zZw!{N#hP#qbTtFvudyz@J6koW!?=)MBI9HrC`w4B6N41_!x!hIDlM@`^{^F#kBd)h zon7aO{*$G3d<1Ahe-06~)^0j0hs0OL|hoP|+-28dBNj;mM=3G8DyYJ-pcy^9Rk7 z0hW(Wva_$s=p~b4-~{>L4*4M43Vx1xyK3x+V_t#eKOKBF1Pz6n%LS@n)(w*ChDwU@ z6J-`(G`sm_H5ZP@i4auSOd$%HBxTx~z%r8bH8E8ql=?(+61JXRXQfYv8c6}J_qPJM z%WyOVYxQNDyi9$Ih&%v_1>Y_<38>WvMc~D1Yf2ZE$UCisdkeNDl-5x!k^;mjf#6VWWd^Si{nXAK1+#^;+U3~^AFP@5(N zpxr>TP0yMIY&&@V=J8iha~4*QPhvN&x}4mH`uPj`*_q@#B{|Fu&|r(LgCPWsc_>|u zcSS9WB?e_+@f~BwmiSOq-SsD-CWDG8608yFMjhK!&QuUAomEqLrXTzAxgGC~oD_!= zZ8P>fK>5v@QFI7Oahzi;h%1J0;fRdoo9sLV&zd*_8NQgjjFj00v+YL`5MeNI)53+*eCmD4Xe8S!!(e*>c#<9AfJu8s5 z-R`3G@fESJ<FB0`?IR2(5)%yiANQNyfFD^{?G4mNBcGHm$LzQ-H(O} zoodjP_4HAr!X^`>KF&e~K?a~)Nj#hE7JZYo?k0t0stp|q&5ox&tF**trwkg1f z8WQ}(Vl~L!)1$1APrJusgE8lBI`1{DCWTCKk}PiWtVSqP#!Ig-y#JNaP&;lN9z>HL zTn0rlx%Z8mx6H>bb+@BYS_0_@z4_d|PoKtKJ6!xG0t$K4FI=rkGi#nsPzI7sCQ|b> z^B<1y)@fq-OdkYo8+(O$^l@W60)o{=uesLJ7 zNeFqxVtc9i#!h(;(@+fHA-3fio3v-CFxw(GNlNVC($@3)2_a(C7-fJJjRrM3g$Rl= zM-mj#D}Gx2aWGP>yY%Rr!w~8{X4hcS;&>Eqyp51{liy8=Ct3@(B~)a8YN-n~E!=tU zPKSslQIF<&uX024cS<7Ebs+F*TTq_xQtc>*b|o$qJ`0J*N5Fm#)lMj^)i-I%K-LZl zKp4U)CU@lpD=VjyV&XWjn#D1c`y~HN?5?vCwj!=e(W-FYx?Qt^eG~xx4p^Hdk+$V? z$mcazS$=t(9WB)H2TNTRV_d9pu5(u&tT`C!MF3c<99md*Lq>O1%nQ?x9wp z*~h#iVGT|ia|^6TRR}&UaH|c9_t`DF=uOB)!&}44$tp#o50u2m$P50<*c^b-`Wk>j zX2Ij2cYR?-uzM0$4llJ`Eq*1Zx_MNPv|--JmVVerhU&Y@ACjh)PSxRdeFEs9Y%yZX z2AY}gKP#E&G_}b}Wg64KxIKngLGHVS19H2n%!lQE;U+~8i)e2zH)fCZ7(o@kqBd7o z-)KN5J+aR+x`SxH&Uy&FgK7!Ma!^5pN5Z(Pa&EX*5@vq{jc9FKWgX@n+Rb-0G93&t z0nmmVY4#nURKizaUT6%MZCLkJOa%2z;Q$eMLR;{I5z%J2FxS;VcBV?nUEpjHbTh`+ ze=?C5SRD$n`VxpM!nK`uq<8_-r%8rjY_(d$Wh5Yq&39@OOkdIwEb-qYgpz>bfjW3} z)yyu@HZqt5kOuaqHXJ2pfxcxH@-;(!y8`wo%Qv-1TehQ z>vGqi79Xmkwv#2CO1?P@L>vuv`?uNgK$n`gv&h#2KsxNY8&8wuT3CGa%#XRE_?VNR zG{Mo0JY<81fo^kPuTyL6N!|WHHtuj~OKdP?%-te|ORKuLMt!skcy)e?(UB+xHI*p3 zEHgZ78cmY8k|Hij-pwCZXV65;sBk;A0Q6oCc#VgPPo~)$a4DvGqMe`Q}=YNbydiU--)e5aj~?>jzHv9Y6q;ycz9wk z8@av1VZ$XM%U0uoEX-)J{Wu)Xf4bAyh&_cHBb9M>`?j)nXh!-ufN&n|I+XUYE7~%A zvQ6mAdS(DG!f+DF0$YE(Hmj-y`C244wl-tbr);t{)S@E)UXhX_=&Ly(dWReof za&gsSff74@23%AQSrA~D^YZ6HG(h6?Qi?TMrg*|zO1P7cnPvD37|O9QwW=RDYOeS+!1R~<{_)-P zHqlmiJdvnxn>>E6o9k*iTpA;aos8}fVF`a$S@-7}-G`QXwTHybe=Ss4BXeb z2c;s!lObvA)Q4vS4wu~K5|-t46D1mS6{J+NIW~llOhQHs;Gb z5{Jy$+7UU9PEAUZ9IOfa+&oFFPSx5U?+>9KNw4!XeJbUu+@MMIyMW5W{-D^~4U|Qv z{@oqfkb*9>pMs&Jh(JEK>k81e$g2W*J9$PYx`}WpPri zdHtFW7)FLh@F`furYBr>Xj@PySYN7#wGE&Bh>KHG;Cx;qX9bY59yS+F@%m6g3^+hF zb6)VU<5C-gXxQvBWGLjR&RIj=J9sipdO*=wKXV&azeITo;h<3fIz<%pOG`M3b+i#bS%hT}W z7X#OQ+F2Sxtf%L2Y}a!FFut_;!y_YC{ty_X#N?YO^PE!mA?u)COjiVT)^wD>MY%yk z<<_V)w~--R9@c<$`CL~5)v{!I`LLFse1RO_OBq4?ZRoKLXjdXeuVbmL1@N@qZFELsOKGg$30=$FQko*kNzFJ?5s`jcEZTn~x zY*?-%8fkUNDd6@6dk-r*CHUxpa|#eT^L)j>X_n9Gusa!Up&}0$& zFF&+kK|CF(j?(@cn99}GRo78%d7$2#<#_`SLp!4tx@WTyN=L=MarCi*9nis4f8>9# z03)tc7KB7e_0f|<+9GQnmy$T@BFmnA$SPgK{*NR(X~GE{6=H)j8HZxm#b(#Fp<{!B zNj&h@<wBLiuIxUY82^S8m)GQe0&-B&cUN0T0@DS)ADPQ(_Bu!unjcI#gtbw4=sr&i zMTP0N^#yu-%0I|$qZ!H#PH$_KNZ+rVZU%~9z&4n?a%4;^z~mv&;M|fwxp|I1fl*G? z0T9o?GoE5uFu9$VWR8Rppl6=irF^d~Go2Y8Ke9N@KyG~eIs-&XKnZg2q0KE!@hdRe z$afwQ%uBVMHjCYrQ}J$jfH@8R?H76mQ^u@ayy=W=39>n;g&HBa&(%lV0&@QSs!Uj- zbY9baJ$}o2>gE;dGh5!%VsOpfK6$yyP8g0&=&8lqnp>nxG9Tm??2Yz2`89tChRNeg z4;M*l*c@@4vl%~H?%>G&=#kYBPcl+F`0M|kT9u>)$-+eoXVXp!JJBme3<|^uiVEq1 zOldzZcjpx--V9`>)L_Gh?O8ruEI4WUd(0iHIX1R649b&KXqT0G)Q?qP?|%mnlENP1 z7FHU;x0v54K0ZmSXWP@I1=AXrSn_yraI@ZS&q^HWi{4#}V)7$pvng0|={@SnSp06^ z0-$tRgRvyjxmS>{=&=`8@t}B7D%76Avy{0PNu>LGG$xM#LtuP3Dp2UGp%+wMM0MGw``5U?hLt&7=F0q~kIPv{pvX z2vR-$d>!iV}r?_ulu*U}D0uq4aGA$dCom1%2-Gu$5amNr1Kmd2(|o zlsHTAAxYnzI=d*frYRZ8HsAEHc=MDDNUNyt4j7OAu6ZlGV#LR$-NK;U@#UiUcpz8A zB5$lQhU%xzY>Z$_PmTDPM7UIPK6*L=UhBWp_$SNJ)9UR-N6Q(iJOhc#TJcTI(YK^w zNj;xZKqyfr(-XZoWL?F-6up=XB%*k#Q&C~590*lI3Y(uv)u}4t8i2rbct8SbnK0_x zlZ;_*m~|p#CoANn9@7cPk0?<8?$!E55{S~6GzZ4E(8e|sGpC`@xwezxku(?&ji#s+ z@NPK6zG)4rE6w_IES}N(Uy6hF$5=*>c;T`^G`_Q*E3!g9=8QddRw~;;d#U7S_^$_n z_$I$TI!b#A1tv}`CL)i_wL!(3^T8}0`vHeV2#cCYWO%y1xwa79*1}G#TERuO*D_$1 zsPzJMVkj=IHVN!Wq`$0tKRK~JBAE$fCoC!&#oH$U8W&`jE8a{PEgE`2@)Me87CNofzbAJaoaFp54t=~7bwaP`1V)9@JZwe^= zG)^wpcE>#z3_~{)DcBafIaOlR^k;EIc{Q?TRa^Lj0hODHiand=F3O@WEI9ewAJ&<} zDKnFHr819Zd7AtW>8zatSq?;?NQ(@t!4zkNYF3-@Ky9iyzFr4$GjnkkTq4cWHGez^ zjVIt1J5s-hztnR(M5AlX%mb+%H!M>U7P^P_`>ig|F4ssHAQ>9_ou)MK(S6A!)b@lO zA!$=Mc~`W{1PY-6qmnvr_wgt_RQ_$R8b;GvE6lb`cUIB(lV zvUF%LlsrJ%BsS&d2@)y=lgKp+DZ4`NeL9a`5IpK>)K#nRdUP z*-Yc@+_+zaNA654O5pKiq2R(q!5`x@{PaoM_K+nVBW*ItSB=*lsJ22&^XgrhD_l4{ z#BVz3Cc<@&KL-7G_m@YH_}wg1Blylt&Phci7z#~0DK^Am+2&jw zs52&8WXFPKE+@erTKp&X%Bie=QG91x!%~Z_(>9IJ?67e>2+^r?E)cBf&6vx0?YsX* ztY)$PGc^BP2W)kVhSDqMes>4*c}6s;bB@*r|C1ZJmWNVLTn-A%074lg?~|XKgD;R* zF4w2g;z1Y`6%=QTzgD{!yeQoC37B+JHWZ=rZ;yCy=(02Gy-E!?MjAT6Ub8|;m3duX zABT_^VV`-hr7|pFZ*k4P)N4`Njj%j*y`yVWQECPI@ZUc_Q8pX4_z*6YUREXUQ;&gx zrDZdR=D=iOsV+Olhj;5h4Q5OK4a9q>3G8cgJXLcav{ul7nSJY}>lgKJx5~gWf@8*mF9x>4__uiCy&#k51GH7gWHlJ7Sx=<4?Kw zO2_NvLhJ0aQRLp?Rj&ZbT1nOYq2K9M0(BZ{BvlKe*gG}4P1*6Uk4=dHa?PeO?4*G0 z%rCQ_B$nSQhQA}S3b$$SM-IYlN#~DBD;io;1M(cMufu_sw`DGZdgHGfow@O&P9V*N zOiNrgq{mKh9;(e&^Cxe8ye*-fhukrLcV0h0EH=$2vrR@u6{M{sLF{>1wVY3(DYOk` zBm+Xo)L*BIxT$8qta^KXreEZ>D}V^I^Jyv7pM%eB{*<)U@3ZE$^e zj&ZDAYOnctu~q6%QqV=SZxq7=6vq=iI4fqjWSmkq+z8nYpKp${kPIcanj2HlU}2Kf z#X0LP0yI<1-v}~5{s&m%;2#Ifp48C`dbC8BaG1B9*&n_XZHFZ-j&PVJcU2seY5Vl* zae1wIU#TkfU1JZx2zI~q`PD=3s7npa#;&ytR{}@9!leA{_pl_Wg1Uec+1-ZyiN%OI z>GgxAOk|C^o&{$BvOpCFM-kVc_57s$;7f2V&Fc(X+Kme?Qkw)pTu74$O+< z_nSzw&?vf~1o9Mtu(zkNcftqqo^Rzaw=T1%0To1iF(Xz+m}FNu{|-Gd0wB82(-fX9 zFF348)i=5nuO1^|R!GmHQVgXSOV3HiMqIUZ7^Te>UR~vl{z07~4crT~xA$;D3Tlk_dn6%UlL;8#4ky3Io=0r!1$&&~v*N!o*Tp|auzZJh&| zCr$xqXth~oI5r45@iMU;sGC+a*W9__w$(jGTW=H$!#0%4d%Q>9!&OYiF)`sPakhm5 z8Ci7+NaL4Wq6H*09R3=iZD$o?dFGVQe!oJU@>s~RRsZhYMeguxOoME^bz@uh85#;X z_vyxW8X%0x-%Z6&z-QAy@li$X12_uM*JXh^ z1?hF~W7(~)vX0lS!FY0EL;gf&KhpurT-}?qr^N+53Q5m_s5G|?CuZCC_)=9tv*;Zo zn@+JJwaNS7-^HDNAMM(M76n`@)4Mh}1y~|VSFW<1zofleRbEy6B6-`jEswIEhqF_?n#<25 zL|~)tRqt!5h8IQnR@zt8^#7Niari}Vek?vgM+mRpdI6#1L3cl9`LdYU|BPJ67__ec_$%I;)2a`#5vLnBcu3KSjEcJ?_IeIm3P72Px>z z@Q$ZdN^;E|NV`qdl3isQAg(IBCR8HIT{s(u?trG%FS)i$S1?3ZS?g`(!~@OUs0H5= zkwu1*`UB}b$rz$vf^l6e1n+}02)eO9dnzWv3P>UlT`a0oed6(hnMQoqagjOD zJx&>FM#=(_tieszbgyOMrkVphhhy{(hUIWQ-11Q@BDRH)v?kFO`)7=ArF z6m>83B&>Qt7$?9@>%*TwT;ygyWQjeN6hEXlpObGYlq`+QZH{-cFq}FmoZz>tkuxOzI0_1#X;xh&-%O%LJW# zmc9kE0X9uSVZh_heVD1||NN;rxw6#SG9h*Yi!WXFCm>MOY%re`lb8Jyl}zz6X~5kK zU{6Z~^2)$oS<8MvN)z&%IO^ok_M&=VWHFnLV5vuW%IMCP!m3gW$<=D^&rJoMc&14C z3(CRdqENXIGSS__?~B51pg_DU#b4Db(+cf9GfkSNGT7Xlr- zCtn%92SnRnHfjOs!kbZ{d+YJEyI;c}E%;f}|&OPW|px+G~1D zujx}<+C0r=((?|_FQzy=Qc3mGNK}HZepqTtyv1w5)m?z;$6t*Jaw5&B(u8zQgma8o zBhT^3eTEtUJ}lz-Y54PkFT}Q#zZLw&LnmE5uQzLOF+@TJj@7)sAF2A*mrA+WpVZ>S z+#M_m4`hC5k`_-dZLoHUIg{Y-*rI2AzY@q|nes~oyl^`g!NP9#^NZ9S@_58>pM4j% zBXm|6le?g$_Rlrgk)$sZ!#!;P9pcqWH!00^q;1!#i_A@OUBDS()hPL6l0xotk^nF2 zQBaEw*)908KyUX&x15Z7EEVRI>GjYVQ9cM7%IX&W39W0f&SL%#7GSj^upKs1Hmn|S zSY@AVy39=D(DQzhLia;`A#jiLHC(m zL0&uGh_ZbWhUiJHQP&0&xothJm%U+Pw8;9gT+RpsiA>WQ!G?gB)3p&+c(J0l$-tVZ zrWiuB??pZ0YmtXPHZi1;ct6p}=RL5sV(WovrzBDfS5Q`=5mx8g*aob8d*=joB>ts8 zrF*G$3L*fn11u2Z4<0uL^T=T)IY5fdRo;f6YBhNBt#e3q=N3G$ok)2K`ac)Qcri`v z?&hlHv9p2p7DVjztmzSAfpkA)PqykT!oJ^iIK&DMGjCFQWl9T}nN>**@p;B&H_izU zh7N{M@**8^y7E7S%0=|7<&9XkPWde*Exze6+-=^oYDkrk8?EflR^(#mOs%0qwCNAU zXu>P8zR*^^6z%fehqv%GL~PriC_iP!;&R+(4EG8nE;;Hw!+f|g1F&YqA-p@|1rjsW z^}5E8nJhp^fpkHqk~#i8cNJ&EC_msACG{BsSMPJk#WMKSQBp86wAb=yjB2qZ^!Ecn zW_!Y`Qe46|^mSD_W8{eU`<-34%gu;jjp7H(uR;dP!a54f6P33e1+&0Ip{$;+Q zl@WuHJ95gg)SYI`X~hr63DsF{5B|`)nXrcNgx`7XKCV6rcP9ucrH<^I4msNb1f`2)krG2nY3!uy_@O7=cZp4&=hS|@*W(UVfNGY|GcUVv%XkFc@V&$P;x zx-c;-l_g96@wVV-(hJQ{;^w+IIU%dG@78hMFs(@=13Q{kBOng71`iW}QTr%|wTlr6 zdJ{Q}96zGCx5HCwE7f=>-pLSD-bdMSTdF?&0fDS@n$Pm7*QA`*?y7XTJq2o*w%MVGo}?@d0j?7JL@49O zs=Q%W#s#$&n<5@&+M?oDks_(KL?Vp3#T4U0!%OluIp=kzdA~SCev;{M5DPWEYkX}m z^V9U0%RZV%>nyRpe8fmzE+Oo4&Z7+8sc6n_|C+cJvKBV&REglDTT*wVT@#AaaCAI! z0fK97FjDK@Vam`PIQpv2xCIB}sy<1o*yR~7NYXU@u>K8RLeutQKDuCD5GB~d0L<0Cb9Zk0f;`F)KGW8`h(zMY|a9y2xEy&Z`sp@@t?_? zDIa>~m0G?5m^jIB%I@U5$P`QP?^nOKuF}lU@XtE(7?Nq5Hzq&I!i?O5_IRF^&-PPA zD;nkTey?F_;carIoJ#DXVc;PEm)2V``yaJy7%d&06G*04{DrF~t(J+a4fMXd=Y^3Z zY6$VQ%xMec5n&c1Y74K8rqmbKM9gqH&zag6NKib*SkZGXB%wjhuFegI%U z1YUI2`eccH-N-XWa^`$Ldc;mvBCxUIjcSVC?##A$e^|e?@QGp^3#t2V{qDf&4F4pe z;V1PeM$6lwS#sZyBHu4rLjGb{bSZ%5O(%%L-WO+sJDS^}0>MQ$rL8Ch;HLzag4!;s z7f(aT6^yTBv;1KqdBtDS-vTJlsCqo~!_?o~b2Iv#NJ|w*A!~Jc# z{eEqHuJ?tqhS^O-e*_+v@in~`0$$W6-0$@YRknESV{rK6{(>Mz56pY9uL=m{4d^m& z$Zt=WzsS3juKny*j#gou&<>~WYh7(57W)<~AI*-&R!OI% zp%kQ=dgmT)6K$R}1XWtpSpsp}3~=HIy-Yl2a+RqUc4tJGTFT*HOng(LjB&abJ#Z1>B*(6ua2_MT3hnDtLKFAg;B{f<#+G-&!x zF+fcfETiU#e`(c|>^_tq65$CXF71n}VDZSL9R;u1`%ggw>`!c#E-o9zi*=h{s2sI` zO2|C@7t<%dq!+aL-R#zoW3TL-DCfu!B)%4nMt><&7qz`_#kvR>*EkZm0hS1&Vq}81i57oDe4WRLXTX>?tSMK2a-MWcJ)bSUyj;1Ok!rlY=CnERF zuMJcZ)eX1|37QPFboUigT*B4+45~bNXsFVwuVW-n4dY)4bmSfT;=gT|m82`iH&^jO zPHx*W@N`V>`DqqMEO0CcX1S=M+Qn29c}b=s!r%%GXBl3hd+!;QHAWD%rH!Z)QxOEhj)jOJUei5YWn1wr+7FX z7;h0(r~bC+cd%f0y{4>!5|g6~f%dYj>z<>6kMgPO0>>el%cTRI8H4v5u;t9PaM7q+ zSgmoLsX$}n6oz?ivv41_=EAq8y{`0!`QY-NtQWkOq~QLI9HHTlS1yyLPV&_MVst!m z$h<-hvh@i4x`F??Np<10uqiwdr0Nl{Gj|*xOiYZ}rHBd+fgh4W)ur*JMj~WvzQ3{b zQd>OA5z4r(qPyBMdI4_jQ^ISitW9(afAfJXaZGVWBxoFCcS`jU`Oa7WFewlNX!ji` z(t%}~GC7Sblk*}k!ItB;D80Nau~C~=m|TEQ9O-CImYkWRaI{gOSe<Pu|O_3ZU{0S7SpJ;9RNF+#KHfh(i zAj&`3(+yp5{8V)DfGAA@A}ViN0&VEs1=OyI1PtD*0`Z%9KkIczHFd_Ui=s~VW#~@P zhCq*UliE<~4^<%tnLEZUdIxFeOr|jo%p+yf^?Xc%)*iNK*%6w{^~cPU=a!V3K=S`Y zzpRsCjdX3E=}qV+lZXk!Dm8w0N$sD!2&$1N?ja#UYEQDg+`z)DXs8>!P#(2Dxk!F( z6i?wd{s~R+LEPkX2mD5J&ts+H^M8It;(v3gLXKe0IlydK4KVqEdDQ(rQvIcdbzm~m-cz>I( zjbV&67wCCZps>4-SVJn4i3U(rOE?W60-Y-LyJ=Yn`ZmIXM#n!{DwyJmk*XNoWPhbt*4im#^V4t?&o_9pif0+~18@{1Hw>w2G1mKbHp3ogHnz$gY=upK zP)YdY)(XBo^Gwm)bLnlVFFZu$XY|iJj3S06ajX zZWu~+d?MMceAU4{**^7a?Z_bg+Rs6yNmE4Q0Hv@o;nm?U78u;UPet&$d7arH4MR00 zG^mdaFQdg}@$2cP8rkxab*|+^q7m{^IE?OG{mKvfUuNmr(6Fnto%s3Pi=?`s>IkjT z#e*Jfx8ngFka4OFi-FeUDvTM%fxx)^Z1{Z1!1w>t1>CI?F8!UX?tXpNBLwdDq4boV zgzZVsp2z|*W=e6az(I(0X|>O&)_IC8xXgpsCjb1)gS>d4Bqef;Im7votP5gdDMa60 zexQmca6AX^F$GiOlgI-YxtNtGt=z&Q_L-}e(%>hOas=n^bCT~q+W>K(-C;8ZtYPFH zYwnb;hL+6j+9{oeE{`~Dj;QCd2IiNuF-)I_{bjA4)q>0Ufj&d%f`_a^Tb32lLI0X< z{fs7X7!v~QB5cz3T4v|DntBl0UbWLOPFN$4*0g79FIRgZ*kL$J2- zn$w55cCOJWn``bjk@d16eBZn=JXs<=EYpT$55``;?2``y-i--A9g+dfp0w08RJdhU z$dvdV{pgZZX%sJ<%z~LstbXUZ5dR|<;CQu>)+kS*4qWX2Y}@3ur8mV48MB|WpC>hq z*0ol zmj0{GoG_5yEUU#;(Ca93o#|)HC_Y^7sR(j>y`#rfs}x^GasYer_f%In zmx4fLk|DJy>T9{`nb@A7FYi-SM;my_FD_8&N1mX>57ic6A+eGFYVfT~gjEG)$ zyuZi$pN-*yFH1Opchs=2O^=Z{|0JkA60-&rGhlI~lW3Oq;;)eSS7;>V-?3z@702Jb zB4_gRhxQ%wi17zc5S3$^z*V9uOb53kyqVz}+$)o_Sds42l%5B#54}@_y5p!hhisZ} zH~`CT&b4*vl+8;cC0Jn&=8gf-_kJ z=Ct&l2`8Dw4zqj|ECQ462{(0g)A4at@=^VuA(geWme*B-G{eYZ6 z#bSdVG?Emis^s8Y3^cN6n=ltrwhh0gzDs*Xu4^#5EU$$)`g%~ z3BX4_JBEUYR*^M-%y&#=n$1V|L;*6=Meg>IINHBfwEx-HMCbg>XOn;KYwj(KMOQoS ze%WfW`xpMd?#O=*>q`ON4tzm~^jJWL?St+JFqtfyU*d&W|D7hCaPuH#d!6^sGc-0)c>g4l-y4RB zn5FscP$$?K)N%7zR<$;;^`8q-+k&Nvznt{U_xa$#KRdd8F?e9i`lOBQk@Jstnw(f{ z_Hq(pT-nMJFW40`lub+vfcD*}loJF$SSAsOZU`~jea$@e@A!FCCU?$(_oBvw>I!uc ze;>j}`&94Tz6d`P`)Abu5`6TLU|x(3n7L6IO%-q+_h>p)s&Y$!T-r@&#e#Q2v`=ae zA3wq{ez*U{Aitv{nC57yyvKJwE7?X`QoY!rJRw9t^78R}pP$3}RUD$y|9n?tRtoUK z3j+sg_D2HGTm}FB?}sPKhDYtnqckhfJ_e2@?@#`_}7PuH_;KI0cN^86SA6;J= z71j5JjXx9=RFssi0i=;`kZz=;K?Ecuqi?m1`gefEC#v-dsMZiI^=)(eM~3gfpV*2RC5Iwt@;*Vkwen}WajY#CYZ zdJofEA}4&$mVAttzLb?<{*R#+W5ejztXM+rK_%s$jJG0hExTWj_kQm_Ag?O_*@qZs z&&|lPTg>+Klgn(iDzX(m+8jUab_XJ-8I3&$#&3-4!Ndsje4^9K<6~{~yx`9{#VXrH}#N zyZakp%}7qbVCHiGwfbXXeRrGOM975{$%N7+WD}`BDG4N1eR6MZ_<^!OG}(_AuNV4p zu9r8+Y-9+EQj7xWeC5-xv?*=L9*oHD#?b|-j@TVFzwlWp?z6J~EFno#b+h@mrD>`H z8g2tx`H4qraA~cmWij<)8=N*1NlDJq@*0;|0ORN71H_$TJOJTLuE9uB#&KBC@%hcm zWqQqbWf3oWKeek$*O!3YyNyz4I{sL2e0jZvUe`b=tQ*GL%~7}Ql<%&ypc$W>hn+29 z;b2GK^xOvJ|5qKq>o5RO@Z3zN1*(#;8)Ez1B$bV|)+U42K?=%S}M&Oz7l9b+5c2>N;zLko1L#6qjI*@=}f znoKHth68Do-&0t8+RQF=6rRDqW^+XR*o5hV_TMZ-t`%Z`Jqt;4-acCWeJo52iWk>o zlU$GeNl%~K)Zn#{BSVPm=sT67w_k!^f4r;5eiWptLliu>T0XO0rK-iJlg{oeoXR); z^m-=mA1dBc25A6oz2tAC1YRG=@TPu)BXWA-R5F&>y_AKNMy= z5A;OGUAg1#hL|OIn_m#o-6LD_$NlRQb};}SWd3jDNPl4D+ko&J)Uk#0LCm4r6BOTV zLPw}W*+{cDTttpsd^v)RZF5p8^;2&~l_cr9kDYQEO;d(}wm{BRJn)wkR058xQsTSC z(_?v_Vj)3832jieNMuCE8g#^cZ1?>3Z_UX6oJH1!|4JTgeXaJ#*CVS03$w5@kA;^^ zuU2QU#M;>A8zgTHoYe5RN6z@Ra|1pdfMMjYpxl$9TSJbej}UDAZ|?`b-Ap3*n9ibP zKFNK*XYV!VqmZgkt+WYrq`d8z_)uVBM{S{c`6o4*g1BBJ@?#xQ=Gq&IwHFnPlC_Ew0+%GiU2r_qD|J?km&Wg}6v zVj+N64?ji70b;#{^G~dp%kG1ue;0=V*irCPd<>tE6JeGD{sK2``ku92eQ1ZP_DGCY zf5Aq5$tB3uJ?$DMQs$0u9mEZltx1~b2jizgm@uw4@DFA3)XwzZy?@J z54G%Wrg=sy{6ri6+jJJXcNw%*)db6{X{XNm@fGdMN$xq?0B6&i$3(_hNc;_wlBdAd zc>hOb7{Zu<$`~SL@VD=9Hz>6=KWD|s%l;a!anV!G7BOO?!Ww0fb?X1+#wYJLL^6L4 zVFQ73qRQo_>HSDQeLo0HAAx+#+bZw-W<0Es-9|dy1AYa$^>@2p{(ECHCNx`@Uh%lL_2MbKD3$nY{;wqdb4KC;qP*4w#;Y8_{EcBi z&fc~C4m;}PT9}Mwuv&z+vCsaG%he#FMC@7cg=BJ28NX`UOu~v=772ZI;*Ga=B^WMEIFsZ~ z8d&00iEjLqSQ+RL&(>PbVFJRpp!z}*aw78ApKM1+I$WjS`s3sCZP>y@hLyLd5~a@sgtu=($iFC@pAFsqDc5;8w|_TicI!n3(U7hmF+1lN;& z@1VE^133d{VOam`3wZv8lQ3k6`s0tb2l`R?q)xegy%U2x?2l~xU;H=ssRlBu4CG(gj@`pWC7yO`uNR;*RdG?IsZdGJaiX-;-FU} zM21&NRzuSy%dW;6hoLn|MF?CqVy5nsqjWthjBiO%%&@5C*cCTE-e5u>8c^2*dy8$p6iV510|n|7LUxm=W%{sZ@TI*E-&Hw!kXvWZHQS zoMp{s?4s|c@aBV`HsuCC^yjHkl5QMZbj?;9zFd4mt&DlxsCI^dpAA;| zHx@UUDdzV`tT;fA7~1HWOJRapel6hTT`Nme@vo=;dr7^YKE!@fc&eP9TbKm3(RYZO zGpo{oWYOdQl?5`2wm=`$6h+7sBQ>Y#CN1!wg^P4Ctv569{@nnX>%IK{8JIeXlwGCL z%d$>>d=|-J@Fe4>|6C4wQ<7Cduw5(706MUf@jPiE=4NYS)G{Y<;@@Nba?d$*j;p59 znk&$`lTV(<24-zv6)EZQ5AgZl0+#nr=C9P>1IweCzqKG{wx1T;I7woRQN>l9WFZ_L z%8q!JZa7rUtX!JSViFf1TiO0y`9`91R5f=(V1hb23X~;;NoGpI6GUx>GWNXDh&=?k zEdDz9uMP!Yy`KeR02ue?SKG9MBqt=p{=cSaXbqmMzk~&ww{O0ZT`d2sK*yGzo%a&w z-pzfkj>AxLMJKg7Rc^&Vt^106_r=aRq7)^Fub%NlbQ9t-45I&fzIQaYYS5B@*M%|Z z@{RNT$#vvn1a>L|k%n?8leMwg_s>0M1dj_2HgAH-Pq6=^nQ9}ZXf`Vxu@~dL%d9eT z!arOMDtcqEEL-Dt3;#_$5}5kGpp3CCG)N-p17x1=(Y;SUpfG3f1=tLkG{G8eZw8Zok1)B zkj$kQ#N~GK^;}wN+_m}o0w6@1p*NtQxG6GrRv}h79}?P4)Uu3}W_Hu)euPNou)vHIH=@~C2i0z#c%mE6)&bOtrf7Rr zWQT080N*Vz+IAh@uLblT6Yyx*_y0vG6To*rx;BD`3BNF9zf3LTs>Gg+H!J;_+f_42 z41Z0*%Hj$dIw_}Y*I=c@SpLYU7Wvm3138{E@)m$n{)m182zR%yWf-D|%RMKrukf}} ze7|^H?*=Gfoak1kJ`GcUxk>3ZVtYJZD`_3l6*rmA>aP4(S`@jG4ibPN-5@KB6OKWW z_ma^VlbFL{9}*rbzfijbPJ0Ee6LkZ-hf+j#H^pC7{mHaf;XKSq7aZvh(@ zs_>y9(9$gE=C^|T)<>I>ldltFW75SwpzrAGH(=rK|K>y(+nC=tT{)rpOEa`?ziX>V z20<7npO?vKors7ofixMou!*^S%swf4k=DLuC3;-D2;i3gk9kN{eW-9hw0{(I8A+Hm zrt5Q^(KQ4xXls)u{@Ka?cdF!JL~V#InMcSIt$(_V2XtBdKV32olGGBg>x&$7MV~)V z*0fM`+RZGszm^hqZr+~>fuwk1cuX{HhV*`d|7WWJ=*E8XKU=+hA$2Mp`}y6`1f(?H zDxTr3$(2TgLa5<1_O%65J{l#ve$?-uGIzapVx(JR=GFfR`PF~G{sB^jo1rF?Bu&@V zxY9&}upN~H*~D7wt*Y~@4|Mz`o{@?ys(4U|F-~T?O`G0YHH+NtYBJJ@NErjl1yzhUU z_sxTkseH1jt_`>E2d*D%SYMMH?dHMyE@`|{CPavv>B#UP=P3l~u$k(2v+XfXM1-{- z3>!WaO*rz2E1_Nfv!Fp*czA9-ebR?ki9O7O`m+2i#R;dJ)ui&BSJ+HZ?y?g-v%i$0 z=4-+a{=>lqj#~8GW^ypwKCu|at1}(hLx@oTETBB>&MAk|KBK&bw*EQzv$V({7S9%) zcz1zEWGyx`nmZ&vf2Zfo6D;&g!XTVfTPwv)81W!*uoH0oOfAD4d$os?Oc{!RhaDwU zkDop@m+t%nL6NxdgSQ|N=vY=myP6%2h={Mc?}RXtzw8+g{0TfuD=Q52Whb;SZmP)w zb92y+)}3eFQ1;w}R}gqGGI4j8IJW+H_$pL2gF3{oSo7h0HPbDCvV`67z(=^XtlJg9 zQWSb8cvTk^W*tKaF}Fla%||Azm8;cQ%i1ef-r5I~!E<4q2unrdy>UY-{GA(ZAoS@fvhPXZkND@pX$X+O%?f&XEdY4)*OJ_qPd|> z!6W}8H)HgNb*wIE8LxSkp$9G5HtJ3Ln__sPiAhN*=|3%ADduOtL860#&X+nq3-A3H zads~Cnk*(JlD$wSoWynVm1$;GZMlU5Cip0B7jSVHIMK zihhmvPV_(%YASAomF4?`FMV(5D~hVC-*wYsqtAY5;U$Ph#c&VxBMf7|9)@I7P6+6QLo z4E13sRE3@I!ud#!Q|ewFm|l7jlzrM~_kcUMR1eX&=?;s3`J)I`7!!WM$5l7|F?aJ?I2e5_LU=$VE`dt>Ra>NgJQ;&E$ZE z*;#ugW+?=1yVE`9e5K#m1gYyirC@wJ^xd(c%6$$?Q+@FukgHCR!o8}8&j}TumIm2P z$VrVayerxQcwfoa5>B|$L}N42X#4hf`SL8~Y9e4Wt-)Mc;&gS`4NKXoawRA9FPhyC zpbQ3@sx2z(7d)JeCqK>A;gF7|2+{3V!vw88h+z+0W(AM=D+NLP$~*%>e4(xKXuMQj z@#9!1VR(CDA|^*pbPVwc7!Q(?n*`KLG`&~-@Fbjij86r4`D={TRv%=uz*dHJ@3l-; z+iaB*eNXe-s89yG{|bjRCAxEIIm&2+#}?|zj^(5T{CeRhZN8fD$NNp%59j~d1X^D% zY`q-u~|R2I|j*AO3)B@N_uMn8t7IlQ$nff1iGFr`k(u zhr2d*wy}+@q=rU!q{MG@J{jS8P*Fw9ZoKPM^I>6s`QB2$*b?ET($Rbbv0M}D_xz@m zIvNoX)+hzR?UQ$cbUQj4LIt;@zNXg*{VtyRFa3oJ%};*!bfsp_(A#H7YA^0|CPMw8 z2WYFc6cN|`p9tmS6dm?dg-GH^cU*HTp5E}JDu?+>KS{W_CQAoyN+53xUN-ophK_yJ zluX})5mzA!nEWS99(7ryfPlaivfszlXZ5iL*oo@EY$>)NEUuulug}5SdULKUCuS(# zRZUfAt=|+;_x(x@DY*SGCmNhg6(O%^nH19gT1x`yylFMkFOH76n!kXY*VKsQUhivk z6dDu)s`JtBrS1LgV0P$1a!w5ZH~C?&6?=;h?`n+Ha^B&-Ez*yAr_K`8WnvX4U_bA@ zkky1n&FLyOOx2~D`L?}Tu}x{t)~Pl>nO6}7PoN`sdHHLTzbM%I=_}>|zs`#pZtmxp zzz-EViXB?e)s$~9?j4QX2;Vtfn+kb5wOTRA`faRK3rAZ^M`fN#;NuZ#8y;fS@!30gCR_4C5#>XhW; zCMy`{oc;iopH$G74=5f6k8B-#&xQo5HRp`-1s8KDh0vMPhg4`upcj8#iT~zcyDz}6 zDrDQ8B~d3C&w3(LJvW9Q8Xfs!$Gv9Q!OS?SB&$$XW_>?2K|Taeg!s_I04tBY9`jEq zIAJ!1=&|oyv`kV`51Vj-cM4AD!Dvbk6Nl=`ljbmp^Db#ldE9x{m(~e{O`Rr23Ath? zRaIE)abUL4w);Ujgj1<00a`QMo;|3sFr%%CD*XPv2|XX2G4xdNFhtL8vARUW9ap*I z2|fEym9DGXHn)Gh@ElsSL?aQziBbCoh85oSE;P$W7sJQI4rUuiRYE!%W(%Y0ISmrW zBO_|UCb#b^>qbvUs^FEoj1svBZf~>%*)J{)G}WI?=-z2rsGl{`5XjdCk`RkP>A(ReHyt)Jc~pC~Rojm@KXJ1MZy zw?QlAKFhWt&8AgThO-z^_h_@pY8RvGja0Q#9?Cal2&R0o$Ssc14|0v?wGrTSvdbrQ zHKjN{GzKgWpjqbO8PQh8E$i{Xsa|=uxVn+iDWfe8~($lIW|)N zJpwy*X}&v#XeKPhI8USfUU=_onCl}B$I7qsGu@LJrJ{~uW7$tMH`!6WA3{Q-%hOPm zDeX~S1t(ICqc27Ixyg;TzvqU|*5)R#C%7NKojXH?caQR$;MHr~5D$aw3O!@?R5{AC z1fN2R5bSXKjseHE7QNWldANAyZC1ttXPA2WcMD(2tFOxbLV=5lXe5}J>P(`1O^PD@ zXOfF$16S1-`rPp%XU-xkViF+q4@uP2utb`sOtg1@Y)o%YnfO^}u71L^c%Wf8L-?cL z9>-=!Qt8fp`UW{rP!8O^PSuFc7}gK6FH!HQdlrfxB16Jq><)yY?3q9{amOL(sw9m7 zlVJ>ur;WBDiZY9(YS!&)NSV?24f z7A(9(QK#gIox&f5sX|tlCxiw{y#`Co%N67C&!`|Jf0^nd?fYS#EKOk^S z8b;oR!0iRX$)541Z#9dBiO1+_i(Pe-12JQC$$caZoEEoyDH|52`b5CM+Il0-fO{bN za&W53_O1Q%b)k(3qt<6qvX9Bz9CJpVlQ8tP4wlPEO?cW_)Xj15Ccx2$i)qOo{1NtV zhIGZ#bd~gFxWi}*v$85-MGRn6)AgyUkN&!O zs+c#4wUbncXNx>NAS#Up0ptzg5J~Ie86J8NVcv za(CmXQf7Y>KdQ`_@bxu6)csf~jRrj}-L9*YWbj>-s`#ud8~~uPWzo>L?3SJN*4dBd zO^$5g;;z{bIseCDyWaiGFO||o=`nq`!^ZSG>{WudK&Et!E{#k_uLY$IHXFP2w6?Gy z=zKchDPz~Z3RHdFnWgh(Eoy_Hk~m$&^L?_H0+KtLFas=n&p^H!Fy&W(a!dFv6%wqQrr-_imbm zU7y1spuxO_ax|91l);IQ?WkdkGC8s#aLJuhuO5-NW_pP(0@MEY(T(xQFwbN4>Tn>* z*4DPHtjyE+e*P%CfDy9nsNc!S5UZpiPNH#(yx zH4ygp#%QP|Yg-*R4EmXpFBuVB9*h4)W|c$Ff-Lq&CrtA`wQzNH?u%UEus9C9k94qu zsBvD;!S@*-P<&hC>gesB!%!CGQl-$acEIRY1_J_bh2Ri}w|BF$V*Yv|9LjCaR`g@K z)ZRywYHy~FWJCFZsw%mFW5tZ!M>8l^TwD^pD|9n)dhG4Q$U|2)8$N=L2-@S-hP*U3 z!xCY_hgRpl+Hp$};&hg{`-WZ=P6#7~Fc66uV22?@cN+XzB3no$C&5Yf3& zwcw>mdb~72hu#{AtCiXFum+PVI#xb6H_oPm{^JQ$RF%EFZ~^E8F_&?auw{Fd3-Ixy zm!|MX;caNJse}7C0Ppb<1;6wb>utf@13li!1#0U0eI5hVd+iF4)AOh{}?Q!be6?BPwP=G;WvgqS$t)ma{Rr z#OWyZ)zfA7x($|KD$#?%E`q#XIk|7!#_U9FdN;TdnOJTl&u!=@y;OTl&X>eUQKRr1 z)RhKXF^0-kIdD!8c-u>3Ld4#8x%t0(H}^5zwV?TfZ_@yijNe7Fc2K$rqGL5HNgtEguWVM#bhB=|i)=79c*j1V8f?m| zIS+_v(o@#`Eay^MmbV{FEz0b-n!;b#hDrY^_6iYJw8n0rscTA&6QnrQInYNb@n+OX zUY&NQnb|9^0*h4%njS(P|6NR2G1jbdSdQJh5?i$MK2oiFzb@pUQ zw?~L=|5lWuBF@-|Ettu(Qw6D%vT_rBOE0l$S!Ms|5c8F|P9N*@^1Y2`muse~X;rVB z?ENq))!IKi$Go8Q7$sy8QWqaO#L&O{{YS51r61}%4uK&=r9OBWOwE1X+47KaXnH#l zmMBghQU@Z^;wfH3<%>FPKdG9r%$mo_@mo*evAO*a{AQZh_N=(RJ~^@W;xJT6(@%R97)%*wcSL-93jVV=JPjF08(bQJwe%~hw)CC?BxsHt6 zCso>I;Wc=lMApT6ry2yPV2*R!Is{&8X{q|Mx7 zG}6PJAOBd4YT!Ec>fd0BW^dmX&CKF5^u0V5F!kjN_?Ym{A+t>McyNx1!Ug1qzYrTz z3SI2jZ3+lQjN%q8TUcq3=BAkXY&C=|$r&0u%>u}`SOTc20NtFlk)tUJ_Vj*|GI+7o z9M3PPY?L~v`7D8i0~H#Vq;^o-DiVIIzmpbFs4pPZ9WngWU{x zzO5;wZIM4|e3a00`*H>X{uQxqD7BY-O*<1iUoN1n`3puGr-m|6<#7hmc%QDVJ z_qiqqb~ZMe5nSd-5a z&3hf9SCdzOw}g1LnOgNFkc7)wCiuxRNLUP?$?w&bnWmZ86zDAO3C&$~MxRPtELZLj zS$qAuQa87neT2v>N?p~3HDQ#8R- zYzj9uMnx+_z|W^uRo8C%2_4g~-MD6%q+J%Hh4_9oxKDbvH%g$(+07A0x*%$;k%JH!N}EI6Qj&6WKD8O8!en7kjo@YRQvM;gva-_lFH}y))L_5f$H6;#jCKU}TL)IA^*c>? zTs6j4MLlJAD-ti3c+^EMC+VkH8Bpx!h!UHDf+?4^E3|1P`pD4X4fM)o@ceg+O+ zatpvZA=nx5nyHEbI4hGJsN-zCj*&rBLPD@W-FTJ9z}v!$xdBc=-F11Gx-lZ@yTTeB zGq8*(CGMjUk3c^)?a;s@Tu!vHtXoCTf}Nd%@Iid$yzhb&><_2A&Up8rsH9{=p5#jS z$=yR;+dkbiuqP1Gu8_aY5xn9%@++rEb%~8?i0SDB6#9BvUMCvQ-2C7SvfFr-w`P)8 zSg>+fCMU(PBRTLr7?0Go=XipOZ)K1l&m3TkcG_ol_3Q0~AdLl4gUY20DSd0l;go!+ zM2SnadL`AveVa8?BV#RP&CHn{Iwt@QLxlWRA2X!@p@UQW5<{^G@h&N~1cKNg0c>NU zd+cqdXc1jVg2i2$s5%g;b53mrSy%OZW~u$%nCoU0iOR_@w%rhtDRnd9SK? zcf?WGr^dy(3}8lx@1OAmdDZl#>vvKCVE)f{1P0d^q?<0+RUbFlO(RH2u1?g!X##}z z!^woU(YmRZ=&^~0)1jPEl5;OFi)UU7V*-n!IHlH_`Iq5WHOMr9IdSV(R|9Y_eG9>< z5?CL6ovU4iqS0b1bXAh;(Oq`qlKf&C_;1zc20tqgaaeFRRF~u;;)SeIN5$W}$k7i@ z<&JA}=CqVp0xe=McI(f*zaM$nw6@2Y0!LhY^05#wF3HO~AAp=4-|L_tjp*Q`I#=0N zOi_lI9MANKpPc~*VD*eF9!LJy8SRtnIRJq2hxh+LM4DE^jcr+qh2WUsygeuZuA}<{UVq&=X~$!7}|s8N_W|p`D~!KNa0SNr%H3Dr0)*!>=&# zQ3n7V*DS1}!SbOcgXD0}(|`{jP&#kN{lv^)J_my<;f^8iW@C?!dxa#LP@#CHkkoR@ z0LOG(W4E0Lc%m0E18WRhgd1;Q@a`YXyez}3?1m8MslD&{`H<7^rtcnT88$f`trpBE z62T559r&#!n_LD2zvc`L4Liz*2;yL?Q(P4_8P5?~XKOJm-aC+rc#%FMEu7P`;0f8Z zl4x9a?#qrE>rlty&&NOA)T$Pl23SBa;G8?}x*iiXJ>EMVoZ7A4OK(EMA@wF6YHIv$ z<{AT2%5sd1z2k;Dl@I= za+@B21p3?Rx*Ohk!|9!%8>CZ=*XipgL8Xq`3~lN~xl<7gThst_aAX$&b7( zn?O!mimd#;J8AHIm4S}wg6dGeqX&Q$eO*xatc}6KH8rNNYe^f(9tK*dqw;iZ+vMYv zIF1zgsvE?RH^Dn>QCfxu5EvTBifpXyx(E8cb}d?#YHwJ;6ECL9ffS+XxS0TmXbPZ; zCwZC8Ov>QXE2^54_NzgLQj~aj)01eG?#!p7{WGjAoXD1I!~(f&S%C$_#1c}vw3=}? zoK()Nz<8p`_#g|zEqDo_|7c$X^coje=V!O?xN>(HzEl%Bcyf6Wnwr4#rw-?93Of?* z%p2f{I|7`WNv$t~m`=8QDah=|+7MwLS+1|IqxvB$e68-r3ckVO6>K z6$>A^o+ql9+M`=2ghqv>dGDvX42bffKb`I1Wt(_z?5%f+iNUkkhpa~}IC(s``3*&* z&fMpl%ODp$0%?%#v&;yZ1s;kogAqL&3d)C|Qk-Y0jYNCKT6tiPWB5j(3UuIPgk&-6 zEeoyKzKo~~UlyF^3}ZuQk`gfi94~Z!W*(S3V6>Z<1RxRhMX?G+nkV9$`_foP+EgH$ znHp7pFmBR^j!QQ{9#Xt?*=LO55^;nhbNz_s`6#U zsyI$Lbt!V?yv*vDBNwo@VXTvVDhL^ZnpbB_%j#EKklMRU?pR2Y^1YrUF&&^We4iTn zd(4dfGX=jZI=c^6e1>k!G4(ypSxe)2v;0mRpD-_F^Z8f$o$VPfTq89SW_8#>WV=U~ z`hfBjy#Y?q;Tu|Z;KfDL>mpahyQ&!m_g`Axz(IFhFRu3rwz#5O|DHJ`Hui>a{{G6a zk(w2dH_cFkRj8}&+dvHt+qsXO<%`y;rUny~B1K~$ss^n<$-phei)^S1$YyCC5jvQ) z$p+yPbNZc!djwLgfGAE>$niIrsD>kIgr^sD42-|HimKY%+0K`Hh1taS_4NT(Sfbba zyYl-76l%@H+izhp%Yo|WXZN=cZ(EBn8w8zum924juJm~%(373odm}d1u1+UM?%eT$ zg=mzJCnoY<8mLf4eBN1%O=_C++|uQFqa{6jlEwP+jx=qdY$;)KuuAIhgX)orPDC`o zy#kn{Tg2gF4dQS%lOkXW0X&vkcKk-}hfxt&&73O|()Dod$kQ5^xe74@@KGCy=Tr$ByH$C zd#)+mwG2{=ZlEPrjuccyMs|h%kU14Y!M^rh%`A`f1|J+Awvf`k0T}mqt0~& zW_@*&iW?CLgn>YcC2#(W+j?w#BD&fTKH1vq0hO_@26zD0OK)Q~;*d!j zE=>R)75#O^RdBuB)dnA$cOPLGxR|^ ztIeA|aKTUbCGtz0!ut8S7Za5aVG-MW#Z44gmxED2CkeE6`zsQ~p>~Rk7Ft?7A#lX{ z*X6q5#SG4z0lJVV*-gF#gy%ItzwF0G2&OErDe%e-RN8Ofc@wZ~BFrupRynn!YvO_i zz}I=1URHkgNg}xeV_p)~afeW*{6h)PMbDy+5yHEJ1asTlY|xnv|AJp8KVNR#6TP>S zpkB676(&~Xfg@3=@3MMzPAvfCketYn8V)c@SB+#-Wy)zLBq0_@4sU_FM&us1#^LzF zThs}OmtE2gaIgZ5UOK{pk6iJ+8IwsrvZUaais1`98%*t>7R&M&paR)xk=M+r4d0P@ zWjt>^4$w3#`T0O!!55^Kx~Q6B4PV8^2ZX$n8FYWbeiAX1WBTGqGbgYm>eZ(^jz`tT zi>i)8mW%ep+#D~yXQ!athv%R%g9M1XDXHa0^>me4J-Q_%oqVx!=0ngGSD|4U?^Cud zjh9l?S^b$o8a~ic_o1LQDwo#uK7Se;lLdw4Sdl&Ds&s}bme1CK73BQG3XeD!S~E&C zT7nT9bISK6gfJP7B^x1d@s{9+RKlJ#=-r;v*0O6?^a^O%0^T@%q|mr{v@4%hf3(oy zSbsWXxTl_#76DbXFXwHZof^#z4|i? z_t>H>5(e~URh%(m676w`Oq+=0Q;=c&=He|{=qc(n*m@8#?}J>rs&i?M*NC##R(z8% z1aN^*OY{aSYd?Ox5=Y!lXk;5vY9+A1s$02u+vs^!5i#$%JJEEOu+Ot(!x1jB>+>{K zp?FZg!p*4^&2>kSQMM40Hc#j6A2ZA|vKd|c$`Z=E>&mYs`uUz9{zbQVz|Jg zCT_Nw#MyhXJqJL(%O4|ZuUDUDf3fZB`}Othct}tE(XS2|ou+JV?&x+}q)jZz4%A)<32sPU}+!GCIVK9oY1px*~Z)Zpd3H5Zps#S&RT?|G2ucOu=XE zepPcZNznx19eItTj026R=|xLc85#d&W;SBG-i>!J#?-_w*Rl6%S5mKLJ!hkWqvsS} z*XX*I7W(n{0Jf{DHD7!+*n7YOI>Z*YTUw#1o6od_4J%MR{g`RQjM9w(9m+X0J-t z=Rb|ek^<88Ka?}3e_r~f`TlnB*1TxN^f=xcNm^D(2rEFS_>9lqA&#)Fb4Rx`rTT?1 zxO3fyVgcFwE`ZO0C0>Ydin##=(#UTd7NgS_AM2<+wHF66ngB?PJW+z;$%21Qr1@+| zSDAWm1$8ueUX1~qF|4-o%NHm^LTWFkej}8sbL62Zcz+spV6Kq+MkBjI2{z};G zfxW=F3wYSH5V@rT_dV>_!kd@gp>bpQOsr0~adh7PnL_P>@=pCH`MU%-Lm62;#vCN1 zO6_0BqIOQVJ~n0&99o;X*DX=&nm#X3Y60FdLGDL$0x6}-!E}vXMJd-OEgjtnP&N8P zEluhtJW}5G{7KmfCsmp1A@^S&2)a>Rg*Y9(2(zNPZUmqNMcu}DPyL@_SZC8-ecV-> zg;zq(3tIg&6;3vnP@AaNUI6JbhZ<-~^iiB7X|#s9iyk!9Jxt|It^7>RT@)^=tc%FbomX@IqW6ufNDSfwXT;GJthdEf=@q6tytBYUR0-2+} zKA1%gMBIS9Am?aW-f4sX`o{%WE!vsOhl7qcy4FmAMk7&&Qy>n#EHn}EZY}=ENc`$O zX(HQ*L)psO8Y63(#&1NJ$i}-n8$0-WsSmfxea8~5*>>IQ6t+%~Xpecsz~bvzc(k1x z=7d3m89jkI*D zz)Nq)Arajc({&N4Y+Pdo(0;L_(FAz^)pk!&S*h>ByU~r}B+*tx(jJ5`TrRH%5vXQ+ z6^%E`2kw0;Y}M4*z!X94fzl_5M1P(RCY-C1I6K>91*^XN9@?E>7@MD$2dlnY3p8;6 zwN3HnMJT_bDbSoVel_Qu^C_O_p}ez8nJGY~Hu`yQut9{QyXu~XL1pGeHN8&*2dYeb&h`zRGm#e1-)Yf9V5!oha!nSlgz>&O$| zwKkCIK9-`iBG&j$;DaRo0U(#f)&0pM0kuF*kKpBSdWLHqL=*e`TNqDA2 zp6YUwCt@8zW=o6 zizVyJ=qD1^k`ltUOREK}x&@CHg~v`~2)jvpW-zh<>@^&%aR6M0OfaU8&sr6Xns z&TY<=W#F70Ah=Mo2F zzx~l0W`}!4mm(?2twTUWp#~qGb8=pE0mSReA0}JQLU~xQw?NVGtdE51y2(r$>^(0; z(D9|_aC*y_BM$gFX{r*|a9*E*AWsT-_+X&%thUSa2-txa-tBhKG<{$07Mii23?|Wc z<@<$?TNg9_(`1t|Dx^G?>AsJz4k|?LST@zKH#ehvWus)bd2{BXDqreB`M#OLe;J{O zw~dBZ#dY{qDTREWLXxBzh|G@@kC!^Woew0*P`N=iIm6i-& zO8*;H{p!c0o!Op(6@wpqu9{mw9}Df~^Xr$_fBN6LK2+p)uq5{(4|6c-X6XKd==;V@ zQ{wm`6x=q=$RcrilM9Wn9D&iZ335NVhi*3mwLcJZuEp<#h4N+b2Jg>g&k#M1Z>GGu zJM}&{AUWo1LS!-%obt^@_druwu);vgSbYVqvi#MQL{H>t}Uy zR5(EqVvGCRY!Z2`iTTId8cK;f^+C#Z{H5?t3q}0BMmD|rm{A4USo#vZh+!yoiW}M2 z$a3*?dy}(F9#iinN-8cD8(W;-l%`MjWy=HhZ)GZVDskhKCokYs`mif1odIorg5Jwq zRneBipuW`YcToy4qY~UhbI8FZM)klJBJm#X=p8wC5g>;Q7TMiqltNn>%EaR)>r|Z{Pd}GwVXTN|bJ1qDO|~-iwZCj;kf-q8uYN|~@rBF@sd_b7 zPQD)bH0($Fu(qZLn@Q>H!aD`g;#*irc1uCWtu9}2hFae+4|Hy1Crlwz-l(?g_ zqgsL^>E_xrr?%bsonJNnDI*9(>M7&Xhx|%|96wN==)Y6HZFl7oF)QG`{0@J*OA2&* zudpX0yUk7)L;xM_Yv_g^)_1OPm<%)Vw3`;5^~p+{mvrnf_5fAd$BL5{Wwg?x$#=p` zJ$DM&nj#wB{$k@nF%auFuK9P2J4{Np#}ms+zH#;$pt77WI-Us%i{r!o&y{~Vy5D7E zfa3|j#UsT_QU6T0MJM?bk8vAy(Nkv=4jzXRx_99LIHtPrPUqI6?CO1atBu;n5gpoJ zQzP_&g4ErR(<2i0V{bl|W#|fP>vwuOCftzR1J4ilWv@^@Ux^_lsok=rh$}RDAWaRK z*l?O*V==8?V*7xZ-aXYRTW5r6WK?g&3aniD4BC?SYVa z=?yyz*S+86Ogj)njIXfk}bw?5Pw7^D!Aa{mRH1A1FA-CBY6z2O7jqJmFl0 z7dw`g3~dNKla-Hij9=qb7j0ZUIi}9q!{4@5dSz%?C!{N+~6>|ho?hq;WM%@YEiEb5lzxkeP=tUAi#?ml)DNszl3q0 z`OV)mmjj9ip{$fCsj7q@n${fA#}Q5F_&fg z?Vys%Cn$|O77YxfrI!`~z^A5rIOle0I?Voq3;t?)s&MkU5#H7OZx0D{TG`J}T8d=h z6MJf`jQb=dM_lyDySh%n@-q*}CDP9WRfkC~mo##~$!^2+EU@cQ)F434o~(5TfJ{zv z2E>cv8cteG-z$D+r3+IM-g@ngJM!sl%01gs5w${2KBck#D5+15j56;-*VArPaEy9% zP{GT<0#=|wo~x#?hltkc7${>CPlS>een{U>ATfdV+bB>gB#oWj+u*Tj0~!m~%O;i{ z+e>w9-Am!EJsJ8s6129Nn>@vwvA>fprW_Ww9xNW662d0k^YX_$(0#9JZ2XjvF&b}d zblHG34_*qjtJ0wV$X&%Rn~mizNbx|mZ=mU-{ivvM;}jW+a|om@ogp0*UWW%ApN`7* zUx~v%rAv!nY=_k+Q;?Bc#2M83j#V8I*BYy(4TyX*HJwf)+yI~sPKPMBhy7%IkhW9o zV#kV6vFB7&PI3|%F+ORb?bc=)3T!5kxrS+26&FDvZn3;y7}t&Oc0+q%Apbk?mbBF2 z3#sGhIEfa@&HeWNhs@$iuI2uz>=*QrRc`#)B#}r3ZhqdBu<_@}rp-edwWCy$eUY?*NHOxlZ zTUv?&78vgt6%Zsa=yu^dJER2^#*T?c?p`%m&YW1YDg7tv5#a&{?@0r;4o&F3Qe&5t zbrz;%#C`H+rnDd#Ti4y0;JzXfCt>kRsfN@!QQd_r59>^;@lqyIRaa^z{n$27k^$h9tXfDr$=cbj{#3{@hUCoy=Kg+ zb&PxVj=6k9`O)n!+xE9sNr`=yQt*Iw1iz+%q_`xP_2m#Iz{`>5B-1RL2w~<`fH-B) zK!f!Vj~PpnnH~t!)CJv#Sf5mpJ*Vp`6M9l!ViDF0`JR!V$nU^fL^uXJ93hGj+3GjG!)^-_q+WnV)ND8+z+C{#QLc|?{Hv38!H3`M~Zw|^q{rLH+ zK5u1f-@3Ed7&eRJN1SeI$kBPL8jIN*mijVKR=?{ye8FYW)8F0KM><$EfRa_#GxTt< zdAv$t0?Grpnx?BU2FTR}B)R5cM2{c9(HXtlP52?N!b(}77sLL4xcbY0HoB;76sAIH zp@mYcc#Av59g0J6cXuxi!P-(RxCMt2+}*7df;)v^f#UA&XL>*H^M2ns`2&PZl0CEc zp0zGnYw(bgIdJ{hJVnsLmW19y3L78YL@L`*uGbzXGT*j2yjL#1`5o>XAai&?`9Fb> zYJBS%3y~*%TlihoIirmP?bQb#S>3|bD%WV^<1zNnsHkfYcsU9JN{SKbD$`?60J`gA= zz7dr2r%J6ijCV$?#VpF`_zFfn$Wh$IJ?G#-mJ-3&97L%ymzl9|)r=#TR1_mD@A1OY8cg^`mDbx4v#y8UN5_l-uG>JE@n&D%tOq3JYn4~)JA)1@ru@OXd&g4V~IHzwP5Cx)~hIOK76Sy?XPGRuW%w!-A$? zOn79te}s|ls2OP)toNRfqi>P&xI0PAk+x`J*98|3KX)IWooD%siP60UNu@VHSQSE? zmg@c9Oy{`_u)od+E2OPQ*hib&11-@~@;`9#pt;4480s6CsNf8M!a2AokDD4BV|Yj@ zGeak-yRrAvzUx*rHKpjdG2z!YH5Pt_+nZ6F*Wp@y@zI~v(NR~w*a(Aha-mVN?8Fo9 zHRj|m)U2@0eFG@6r`7(koxv7E&Mk%ZRFEu}-)!3}qUrzDb=u0Te5rlMW`C1i>y^n| zwRv?nnm{Exszpphtig5N%Kt8mNxz!u)PzYWyY6(496jJYF*+L}E2n_ursj0i?<&kn zrr2$4QoDtDG*$u29Vb}DK<{$J&Z+HaP7h6iWYzm?=>K8?o}&Q|P5@!_LZrUS1u{(a z?R3Vh9}QVDUCPA)l9?g(2*Q{-bNF#f1`stDUz0F)9g_qGH`m#@D`?c7%tLJVf;1ZllUzYv;x}VLflt0xKW#|E*{30#b z_{=hzlBMjY6fr8flPI}VPSdgFB%_l_0CBb&Zaz1x@H~Y&cp@J|yE@xYnEA}C!pY$A zaqzSZ`mgKjiLy>2!dq13w^x3`U`?fas$-r-%JIU1L?(<>_ zlbr5)0-l~Px8{a+%?6R7b=?^f`tsrPRO=eWua@kT59}hCy@-w$G`d}j@QZB zR|t!(BG!}c%es8$@u`o>=uQ*49vRv%)iZ4bv|S9VU$imCY2Xka&2?L5jn~$f=>;hV z;b<`R+rLWzAbz>ll1RgMeus)lyOEb7!^49O$qMDBo`V|-Xjoun`bj5Qc~$X-7j$y1 z$K@d>C#Uq^tnkG6n$ApRWMt+wndfR9uP-}l=%x_8#_`(JIJ<6K;O$S2N@7eI>cBqjTI7a4>I>1qOn~}M6o6@Bwg_BF1gIAJCX}-v%NGgb*WQ9BA zKUp?yNC#?%09Ci*6XK~3-*coA!obhF1bik3F-V`-d4PJWmwxq0z? zTKm1zMF!Mmf>3y@V#Oy~W5?@$oqnq12YH4Q-nfNW`tXx`*6V`;BYNx{Z6SKTAO_TJ zb29#P^BUA9{ql|BRQ)fDI$(?F|3+Dd@2Xa5N*?A$QY!J|!wDO8ta6 z>$$iaO!?}KU06t@Va4U7XRy2dlI2?A(giuM`kD)>4s$I<3z8Vuyr$Z56wr~i-GA$~ zy5oZmS9XSEGHZM`bK8&BlC0eM!s|;t2?`oRKg4E+T8uO4WwNUBGbLUhk3B6mAu#o9 zy1u^dFDk`?6sXr!e$b2ADiaMq-x;s-Nm4ACc6f<}G2Ax<%i%rTYiHD~sGAQ&Ix2+< zT@^FlY->E5sAB!$G{)sqsc@Fc=5fl>W z%taBV<*9J(^;iMR>S_>Gg{f`kk?g=bqmjpdaf%Vd`1t%c4NEyWloFPkOUwf3po6{6 z&Q^^qG0#;*=~8l*(Pvu7`Q?V}82nMdbMU0;U4`b)=-x_C;hU2dax)l=%7~Q!1*K4A zjOjJX&yPou!EpZGQ$mey>tE^}rggdp9lP~Lw0E-G&!-HP-$?0#gZG@K%&nE+s;>r2 z&RRpc#WW=Bhpd`@FGpIil|*P36GGJ!{ke5zNe7&%^=?8@sl`$ITz=_2MDgcAKFYO2 z;wzPfRU2T9kaPn9&#RrThHEBh>vTv#{DbHp^JoMPIk9+!=k5X<1%)6ZW7_#17N%jl z?eL9)9@t|S7Trj*<4(72*aSwRW%+fbiKU>|R9Cc^7&qbB!1SWuD}0NaZ=A6nu*qOS zL?SR7o&RbW@Yg%xlKcGqYf=oE9F3(DOydl(*!ajQ$QA0p!K@3av$I1u%{7}@S!!}S zOkkT9l#J5}JNBPw;5^*jers`5!`1vf3HBhroIE;I=smydpekY%IlfBR?7&J;P zAtxmz5sDn^+HM1T?2LI#PVbulj=OFBdY3m-A?pOVKZ5w^5G`AGt`xt!*aH74Jw7wj zTK+w%Gh~;))8h88(PqZ&JP`O2`c$x)c{aB- zmix4ud|am2mhersKzYq3t8SfRSN`yPb#)Drj1`Ge(8o=~Z+km}6p13d+`&*HP76vT z!%q@g#;&U{AVOWv2@b%=!O1I1CF4HL4xNoNmoWuV$I(KKcN%R=K6H(smJ|Yof9q4B&9h%&%kpx!^Zd=<7PCNla$4 zni?a-C@6optbsD4V{fk*xp9Mb$XXv{SKwa1oY}@N0H2kRb*V~hTvAf+i>QrNF#(c~ zFcX|IZEbCdM4Wer9!kWuv){QLXQ63n1bBGawuyTejc9rs*ZF;=+R}v6r-t+?7wfr4 z1$Af1Z&^12Os+M+QkF@Iq}r&_-{x0$87YZI$8}X=u{X1jo_pOQMVL~i&nyIt!1qWI ze^Oa@8No7(5HWga@9zE9pcDN)#+x_T&k_v0XQ|gSNn*`a*QcTT0<$u@#n7y*fMLA* zfV&%7H=ZAy!QPz1d!JDAm%~Qvr|tV=uqc*2;EjUyNuGHz!GH zQDU38na~~X?w*?J>P;5yi4q^JX@hST{H2CgJ$v4!5^QE<<5bxyG0ZaS?pnA56Hios zkyknocs}J%36<8EqWf*s4rYcoU@x2Co=rfD1{_A)@6RZR#gnF)JsNCh(_N^G_T-Nr z*gEFwZToMJ?Gh-J^@W@|Cw42Ees8;}EQ+SQEEBMLfSr{NeUdJGZ(XKP0wp4^n;Cqu zTc>RBcgLMr9mGhItp@1CblYOy3Y5ugUO?nnr*{dk<^Iw0e=Mo9Em1K-^}5{d%H&!DND1 zIw2}f2#y}?#LC=q*r;_6x?ADgtZ)C7bFss8`c6{QE~Z^zoMCr|ktL73$P{+km6&9B zH%>sQ4~MHW4Cn+$lPGAsROg<1z`JLGeNDlHDz(sS9E-`QT70Zs#FT%%YhlmrITWK; z%bP=MAW-kgOA-_mR6FoPutksGxC!Mb|>HXcK0`(Gl*>WRp7~nZLO^S`Z zd=q1af}))D=YlY`HcsakC|1$-7NB)+WLOjef)qBTr#N5^NkhS0(=Cb0q|Yo+VQsiV zimB|8%%jgq6%?-@3XF>If1JaUY`-4s8EBeg9j+?+6ig5@nkk~EG?cD{=^thyXa2<4 zlW^@WQ_5C!Tvj=EUW(l3%Z4nHg0m3qmrcVh>B3ISsBpr8=2R z0tWCluv<0(JrYmLVW5`KP)T+;Wk%7~_J&dk%loRIfXv5nOX%_q__3y9TXNus9;cH_ z?=V6k;}Zj$aC_qnGtChblgmU)Z3Y^-R|GV`?I=d?fV9^1oF5!(d!@KLbq_Bf_j!y= z3fC!n&zShW;j71=8a;x6s-lRq<14F;y^efEgq-5wmH?HBuHfuili_~ zN;nCpy0m1r4G`Y>yKp-$4y??OS$Xcc`unCG1R4?LV}1KYUc>-**^-$^Blo4L`Z^72 zapljbXunr+G!!PM{HD?BzB{2p4sQBWbUFIqy6kPG_Mt2~{AfI>E1HU0Em%_TXK!Fg zwC}|*7Jj_WhC5#^6*KGUlYwro=9P)?tww9<(q6#NzsuuLg*FdKAK@<3O?R~2H%yVy1yx|f} z==3CT&vI|@QsiuH(5apFc*8UjhZy-~IMGbnf3n7hVBqD|RRc&x<>Qi0QJAn-g~RYr z$Vi^i?b!jg6b9$Y|6&0HzqPm>UIwjHwB53yX5E}{Y_eESU!QrjjpV)MuXk^_6uyUO z@|8*RG{0eCz_b>~@;em@_wp`P?C=-aK>#GP07wZ;cbr1qhBubxFdpyWpnEPmq0?VRnzffftSdVg;~E-iRer)(L`A5D*sok{2F zVZM<1&#wp!D2pkrk=2r`Kcw2>xy5nUxG`>u;L9zKUS^)PwT+1i+Z1kFb|*2<-ScN@ z+_Jg5@Sd0&-FP)Mv_(sr4jooAfV#$CjM} zNW?o-GdIp7i+)LA|NPG7kUrC_aT*vBPuH81dw%JMa zZ#@vVt=N0Lu3+3u-_Cp+0;XKOQ<1UrS^#a)m{r1tx_FhqYh%G69 zt(_T0wZmfbeHoVUQniEC%Rwe>_ZO&}tvTqsdyadDhAuA!V{H)m=X`#*cN}Jl5?;wu zwnC|KE?pT|i@x_cQ2c(>^+C=`>zY?E)!c1-k>U~bVnc{Rsfg+`Zq^Gk=nPq%+P zrto<#Ppq5X5bN?Xah|0zvYsY!d>F98QhzepV%2auavnzJa?IP0gk9yHM;vinFXjJ(0jD>U#$Zs>g`$D|v=g7To{dnHA zLLAd7<}1Aya{C{a-Q`e+T0_JwE`I=3;|-fz{NWZ!cLF}`-M55kR|~sAsKB}L(cHw` zm!M)wBICI7BJ8EZKJ}g8D1Mv$OMst04tBhnT$|z4Wn1NTIA^g4v&fEm%dOJ}8;d+9 zL-J1s#YEM#>zz{5?xAG)++`O{T3J|Fgwq>E;Bu3<@o>|CXTk#y1NL;9&6Eb!5~V@9 zH*JA0F5e%o68eEBbVD#{%XB(oC*C$UCIpR#41iS`O#uyti0V9$qb+Fv(bn^lbw6#& z7+!JuwX?7;o$GW7ez7gS$iac4o5ogNOCD!iFvL)|!@n=@G$uXs8R!Ev-()f7&Cv!DrdmvGZ9h z9UT+V&Bm=;+ZJIOSj~G4^2CV$!Ko!xuDm!tb zRO`A=m4v~FE~UBaHiBaQ8$iZZ0R#Y+3PcS~2(aIjsfq$aO1w~CPtV8vFHsaW=rrVh z8`S8JQvT=TK=vcuX$uC^z`N8_&U%+7HOusrG$ay&*ER`MBcl*YC$g(%)*6ebSstJ| zkx`NJt#nj52+}bePC`PGo}PNqbDO1FWKE2{ylhy!P_2D7tq#+{$2-{;#gfkwIy{Qa zSzgXQtFavhLzcHconoLfS#l7w>adOHmp7fTqkp~kGxo|L$=U{zZFzSF0HnV5oEGE` z%bjBAp~_kNrZ^HGy@04wLqm`7hRgE>S(P2j(-f!awEE^vZo^#V=z9*@ZnM0vBmWww z)%4jkps86a^eP;xj-1cM6wKtxT<@2VNF#hS1@dEk7WV1$I)aM1>JUiRBVl@{9pk(%*9?=ELI9)&+4z z8b?4?@@a-?S9JUPxs zyiW~RL-ER6q61^JfOrD~sAw?1ircSt#cy_T$9GCFZi;&}d2bRDIPig7L6Ow$5ee)M z(0PEQ2H=bW0SXzy$DED=BT)D zK~t$g+g(@yLimk=MB>+o4))Ah{164Ffv|qZ|_nHW@w+sbmWARO;Q~ z0!I=0k2s}h#2`=k&itQC87Hqd72yUxZ9QVw!C&(ul`*|7vkX&gwo7Nu7|AtLlVIs) zturaMWJeNFH^(xwB!jv5y$@Yc#86XXM)e@3Y6S{7H z69lpRF2V$y+B47RHvN*Vk%fJsVL9z>R{@)OR_4l6Ny#K3n%U_LadnN=6O6UP5ko^h zjxF1}(M$M*rJ49dgR<96Ua@h_M`L5@>G}ibbQpQV2QzK7w9%kERc=KeCME{hQ?;o- zrPtvLckcwjj|K<>cRp&TGYX5VSnSdytoS3lft>O!mYCGQBQkB@Cb^-Mfl}X zXn45nXkRXe1Yt{;qi2);HLCsH7h%E1)bzNyHo1b!B`=+hx8&_?2`93;c|U)KUWnPy z3QhPu=T~J=()8fYh<6h9uF%_z@+Cn(AHOZuEymoRD=Z~b5zYFC8Ga>FaeP}oYAmDl z!f^KSyX)x4(12wIzWl&9ap^^`LpAVaSjZtpi769*G#m!I?FLM`qEoou-l&GtAo=X0 zI0k5XxhVu}0iIbtT*uQ4^n>*5wpR-l~>FXT6#Z)_E-EV zoq7bI_w&6Qu?vzM`Tm;%oUz04jtH)1O@vLB8K364IO`Yaz+Eu8tpw;v-lg(5uy3@m z>T=q}L7~8{JYO6G3nQm(QnyyHEiNJ5WhBL~{qBg_RaV;DP$!QL?&z5YWfmj-SX-C8 z)ps?Md~^hq*79z{VAZ=;Dt`C3)LaViz_O}oC?!Z|@ zQT9pjshRTSXWMs&haJRj~!IR`EaS+vnyt2^%*Hu<-Ziv)OD~rum;k6VFpe$LNK%b7^ zEw2qKH~eGTC${7_TkGK>O1rZTYg*)L9x<7*k`_7dlk3HgMex3QUb?G(68!S{k;lk8 z6JAaOwb1w8hIa+O&L`ehBwL$2!9A9emJa?g6P`YTF(NRSn+ypLA6%TMxZ{Kz(1k^= zjEb~4DLO_CDA|Z+bI|bLK>P{9I#t`KMQHb18tQq9Uxln2U?WR z_dSzbP!;9!ccQ<$3gZGF#J6GQecHYmw_Ih?2*reG70kDIgtFIbTh2JMbf%WmSor{3 z6>xvC3e0%La}0G1F+xgm^byN#gXGqNi zI>dE^M9y%Pi8|BoH@^1gEJA+H9x*~H?SI~nW#nhxFb}7Dx$;(9j^4R>=A%R?Tdj?eP>cJu`x+vH zzcxpmkCG#tTSg%AB?dA3)$yyGcA)|%^5WVvb&3DQ0vcgzVMbr{?$b{ zpjg(XzjpyNQDnS-*@a0`DWDbLqBDNh|3o5+$z(cwVq#}s_&GV%u`KBK0=83niQ({I zmE?mjoOW|wBj4cwZhe5vnP*)J&^XslC{D8eCdVrHc*`ncKMNzA!lL)(mWA+L*KW`G zc`lwzg#akABtAYL{jZV1!2$vRCu6^xyp)Q(63kX1No0si{B+ln<)7W02WdvXvK94u z(<=lFZh6ybzTQzXC>Q0_+Qmf?)2{JiWiqh+W@~?JEGF)~Kq!31lo|c2)!q3#K#O5w zxUUi5=H}*yS=Uz<(g`x11r?y(AMeT(+rCrdfz;4VGcz#3KuJacSIyFh5%n@?O2+Wb z58jNA9=8~QXpy%zycvcmSXv)6-mb|##2NWat>bbS`F48K==6^aEAXd^5uyoAxPpTW z3p{NIu~l}t^j2i&ro)Cv8AyEELjO9T2)MXs6(^Hy1Zlx=3 ze&f!7kAgzJ!$C2->47CEki7kTV1~S7dn$)G$k#0^RZJRESX1pnXD*cEsnq=KaZIRT zH=7cf^|%tq6L7Z?Kh3OXT`c8ktad%D{SYJGkTGB9a6ieDC3wE|jA8|kRPdm2dv0_w zAkfh{9P}KWf!Q*?QBCgrsg^!?ytIGSvEz8|LkSlTYc#=!jDurUCQyU#66wXn40$_D zTbCq1)XT`rcFfbrccxK=5?x>IO5r4ZL9p2G>ThIrMaS7|q{oE@MI}_0y5TI^n@F;& z)DG<|Ix;F>NJ_GbC~}assnRB1V!T`7bd*vSW6~j@`Fd25sX`#;K7)>qm!L>`mLK&S z@-!)NbSYrbWzFJb%fd>EPNGC|Vcg$D8g4_&GWWra{khuQTqXzu zrI;9?i5M?;m#e~_M$Q>^c8&%+)z-N1FW8<}j8iT5D|Re2H=fMq^f+HS2zHJ=P_zZP^=E&@(KU>_xM-Xh0 zj8uLd8C@kG?y%76fb3C7FsnHbRf#p=ci%$Rl)&xB1yp1oULavQY1-i@Yj4u(OOciI zlpJY_*rWmSZhvfqTF!SCHK=01Cp6c$WWZ;HxlBBx_A)hps`46acfC{B;&GUFDplv^ zr?i`xJQlhLt5IQ6e3_+{QoOD$CmcXX*98>2IlVCOadB~>KhBZ+eC?eSwcp~opL--_ z|8QdGi%tf$CF75)b)O$`5b(sq#Z?Wq$EvTh9Z!ckE!Kv0OXqQ4&sS|zd-5BUAe?4e z-O=`0`fRfe&h{4b)NVcA9fsv8eJVDZWq_gw2%|iRw`b#MxF2S#b2BGz3@a^3FHPZN zq#Y(I-3)BZqpH7+0?sq2M>AVV^rzh2JwWmf+Ng(2cL<_ZfVilw0zzf?!Mj0?a6(n_dA5^+n zwx1plj}`ppHGpSF#XyHsFSe1CEZkBngP{+XwQGS&f+Ci8hbpnLxWkyOC)L1)2YLE{ zS27I{A2EuyrecCqqtx7xq&vcI!V#iPqW+)XwmbBePwjHk6y#5+C{G#ZH1dK-0GR{h zHHEFDKDKkK>4ztCBS1o%Ma0g;LX&#Anq+y;SMSp>VtRNbjAs4eZ3BWMbpFW>kN;!x zy2WYs3{SmEUh46&VGaFBWR{fO=m# zjn8W`_?F93P+e&4uxvxcH)H2v2-fLe|&H|XBO@6lUWc_mqi+gD&=uFMu_FIuL{ ziQ&#G@qytt0!WI=4O?Pu(H9&&y}YbFLc?ME|0vj0~)~mILmkZt6&?>yc z84+Bq1&W)}jpaS>ehkvwf%@Yq=2yVJ)&DH=EyUA!V|hR1cL|H+S%EjM9xGmE2)3Qb@@sope`FJ)lJ{UxS`tH%*3O?{?`|K0+lYqH@P|eP1oK40he>t=$HXestYPBvmxDf z9y5PZXoQbAp1%0n{Q6pqx!`dsMo@B3>FYbOhAt{NO;&nx2PPLr%j6i-9`WqTm^!O) z_#<9!5z3n%tk%X{_}_Bmh)#!yX2T6VDF}ndZ97h@NXmr!h`@Mwu_3`Zl z9Q?vr07aeUr;pUv)JRE2uw3-BLF7-j(zv9SVF)^Xn5KO@+l$<4o2V*5@cU98jKQIS z_6NWzNcLdEC*7GAtFf+>P4+{}?Qh(&ei-0dVmSo>uV}JfNJ4y?kK)o~fdUEh0r5ja z3NA`ID0F_85LjyG885|@jPF5C@NU`p*L!@1N#a~JfaP$`D>&yy9#REpnIvK?$rZu|;0?5I>+(qB#$dwDnPDb{K^B z8lgYY*Ze&$LGSe{BMdL0FVr_O%~!3x4{Sv``-!x`@Ld%J`GD@!8I6kX&@)|xIv8mN zo$TP!IL*R@8+B-0>lSysU4aI^r1HWBB^v3g&whHSACOian|DRs8@XCgZ?<2-y?()< z1VuaVG)I%%%hlZe#rU zKa{FPEB2D7$n^yErK)Ruob}hC(8!W-*ceh(MbGGjUqs3;IuY#}{DaAZihCU+T2As0 zt)+MDfqI6w$Wt9MCLWKp`eUU?FSgIJDtm|ckk@A zSGknhhJ#2D839e`b$ILepSg#YN3e8O(Qvi(K5Bi^)s}2wyw#*Gk?94+4rrbw_%K9x z$E)+-zCGK^*~2XHQURJ?5rH0_TQfYKmVzE^sFiv=SyKTQ-5>EM!--MXj_ctX)kACu zhRbuagK~!TqJiHUf_DQv78j!t-a{STJ-JChyXG=^vqqQE9k%F(I7MB&GWf~e3D{c0 zUuRoO&HLI_(q~zkXr`nz&Op6N{l64dt@z!&CRv0AC4M5qVun}g3O*yN_UB*vi4IWY z&)Kn?;#@OyEk)9}<%n_262sQ71kV;HI53O8A8EI$>hHB%jr}!fx%6%|ln%{U`I0m^ zRV;b>?b*$)NfR*rP*CcW&K)(AZecK)8;4EEK`EJ2ExiVF9FM(n(ajt4?dPWFAbf#X zNVHkG;YJgcY;QTJaHZ^_xI+&vMuw=8(YO^nLn+p6Vh(*Ce z?<>-5$=kO6>dp`t1Jv#=Ces#pTaY59S%lhW;A%M)?~2YWP1A^}lxlja!W# zgWDWej>nz}C4rPG{cS-MH^-YB>sIFG8w4{$H1SimO}7_mWX+eD4DW)`|EC}V0He5M z>-=X0`}a1V>Di@~GX3{D0Zqq*Z5?h4GLjfBSI{cgHbaVMJR>)no1dr01Pwi^RNS9G z-Z$sUV1cY2w4k;NhyIA3<`_ZZFRY$Jppf!)ibsg~k5Ls*xvI zJaa|TaTczmf=>TFRoS73uK7YD5H=Ay@Hr1wO^=Qdxt%ztIkNih?f$8;kqz&+219Hw z)tWT52yzIBTn5_M&+Y=i4k)~dXGarPC0^wn{_J9YejQ|3$dDw4Calp5Mp=ru3g??| zYCWGt3HO7dYO{l83z*=Axf)Ah0fiu8m9uX}(pqC*+-IcK&FgMNHmZJ#gfAJ_f#$ z+I#&cQ9k=cMyi^@!KT8IR~tQyk@PDxYUzqI*-GD;3B9$`2N41DSi0_~j zYDBsutzJCmoR}t`Ekua&=OZ;ULbAm4aaFdMT?&{BUtjzXGmn>@t@hi@?SJG1h-L&c zPiQ;A)YYy_oXdvUyS%(szoACiTP%{+yNU4IvmM2X(c~KAi}Y(Duv^=Hk6m6Wjg%3u z*Hzz4Sis!(?_{l;9zI__SrCJeeE;WSQxGjQ`LIfkcV7IxJ!s_nvs_r@!%2PF`GyNk zqZMmJYE&bE&~<}VufE#zF!R}skyyo{$QSDc^7t}M#zYQ5CV5=L;=}>6md5DAV=sRa z4i;+Wdq8@%gUlhG(nz-5{h0nzyi1s$-{Wg3rtGBrUTS9d-bO-pY2?Z9d0KtMt)I&z zO&Au^wWW&TU!SkPxf6O4Vc6Q+-j0rjj)sO_Uhh#)SIQg7R1o%s6+9>d10#fd8x6*3 z``JE+mC3_B!w@_ak?jbjI>lRj*&VpzViK1t6 zS@cCt(Ym0PWc<)<@0{Qw(-^jecO(Hazu79k&Bqau%{$i-T;w*RQJXzGb#@#o$`0;D zBJ~4BpS`{NHkB6Ps>f@T&(C1RZbpXxXmvYQOoyf0TD=N#?R`rV@JOq}<^fRRfR-D? zds#ZU9xt+!$Qpj?C4A%34aLJyfJQ4GA_EPxgsmQ|4%@xAxp;um{He^reH9*ia{}gD zY1!D=4U3<~$VlY5xZ{dO(s}+(|3Yro=objb1z=KC1a(Up3H%h9!b5d?Qo)UFo1dGn z_9k-HzWwN~Mttw0_<0EI6*iJH^$PJP*2vGL%K$6X(q!J_fav5T?V@t5gtdcHkf}7T zNdCcfWyba71fNMa-*%_TDia%zP!#RJ1rMN;3Zy+9>(ByvcI>?_!9|PXcG1u>eb>K# zvjKU!=k^~_l0DgBM@7P8C-ePag~N_x$B@OggO*i%*X=oF;Ol;kr~2^X;TrL3l~!TV z^GMmy-``8yYZrg`pnX4ox4d0{h*Y*yb~yOPv|ViO_uh4QX23}bMtS2(?CpX2b)`J` z0~IJ4nt6O7Z8WB*W#Dh)YcD?>d;m*)CuF&~A$+}3nY)(bMtSoFz2=g1Z@kV`+z#JE zRqeI24*Ys(r2qQnHtR8i>kvpw=G;p*hRYlGR)B)L9K5_&5{iwy5Eu-GSiI(?6>9U@ zi~^>@AdM+-_oP)7tU7oI4ACmnAt%~t1XvMuwv$UNj(orC{b)I>d!eg51TZ_~*_uVy zccBXT%^nBZi5KQTP$1E7ZIUS#*51&Xn%fs=+GP#g(7(XCjj+?0`|t^rzO^sXOEAPU z>>8y0sLnZrtU(P^j(QVJSUdb5@(4y#*%$Ym%r&o@Rr8oL}6$~S<;;W4dAYD18ChQ{FusRipdb!1vi|bEB5<3 zC{*jhBiAt}qc5NE@m?^t^q*Y*vzBZjjTk0&mLR`ZA68B;Sa5MnIRt4rA8_;+pk^#b z^sa`2Ll(WyC7nySKl~AiwU$_7O=b1D{9`nXr!2d zTc=Q)!#bhqJp5fA^92FlvI%lR;%alM~JhI zbvVc^X&Tv!@yeCJ!sdqK+TesagOo@p6WbcW_HLri>QVX0M39H&a zd5pX1fs;P>OG~Z5QR)xB@t!_xeIHJ1$aoHp^zi$4*XAvf;5_fBxgELpd8#qf4eycZ z2@R)U6n_7e%^wG2tD$(Xr)Q;|5AGKia1!;`m{>!au!{rRIc$f*%vVyh=%wd5imJr# z6$7&UB#AO`>{D(SniHOee*)x%w+x~7lMmOsi?8iuEq2xz_(V(z!D79Nw3-Pa=u#c3 zWwIu*HQtjwD|bmXECG@vK{GiIuu!dYdR?z4bpx;^5M%t)@5=+DnFC2IJTjP}Ymu~k zbbSo-fkn2`k3YOhph$IfvE%Jx>$p^xawqt=wqp*GD?TRIr|0nQr)T*|m|vsdT`oL+ zo-pHH4NG9CC^^MHY=OWuEg<7)vyW|c&%@_2oYiY<@&&)wTg_YQ|jb@yg^P7}Vv(mc=oY|62e(kiHa;&S7hNKC(d z84_utI$Kz@;K5;j@Eu;Bo{llXH;Dai#jS~s8|O)je>5VwAVH|>M&OCw^r*+I%t`Wc zp4*)j*WZ5U{Ui_FL|jT^K)$M3VVG@z<#TBU6wYBAZ$JVyGI;bUYetp>qHi2lYExX7 zZr4gYL)xgmFXFuN6e`utt!6Cj&{m`iVA3_gJ*OoEwFpT*S%3H!gvkY zYx#@Kkq{S#M||y!NbTTh1x1A%Hwqel1_t);i@2g4nsI9Hr}5q-UO~1AQ)=zz%yO=H zb=%`IG!I+1rHiw88hX1J?d8FeGKPl!Qku|N^Qf0tuDoJV-izh|;w6yjM27b!gEQQU z3AD64tQ|kUvVY>YNoezyT(ppBy^aDwYjv6I&$!xmt9b~l)6^LXCKI8tqDgTRy7vcC zv6G3Jv7$;VW@g=0a>3(IUytg%SG#aGw+1GMGHvKjYC*wL>4uRftPn5RA76@Wwj~v5 z;ZCN1S=xjm+fk-o=UJGmzL$EUQP}m7P>i*rc>64JcO3BOs%UC*qo&7V*Ip|(JCkd_ zQa2fWvcw`$2#rmVd{QqogHKLiSErkY{@d&x9%ro#t)Xun8J3f`H@8fi==KXxQ6FAn zm*;RxDO|Z8Pa2OlSmC)BsCOz!3dwk`pnCnCCLr~*C=W{0xe~njB*)ti#Q2R$BBA6f@I!T@-8cSZ= z1_`g1Y2u!?nUK%>OjQ%Ny*{H@cP7-Ct<|^z%o=%+g2W=$*RAco?l)g-i}6WGWxanK z+wQdd>=H?h18IZ-;A(y(&hR??5$5Igam(T+cYK+6hm}i+kZ+Ow-+r=HtI7=3{t4(^ zy?E(U4v5u!WxkbLJHx-fl}!`&$?V0MPim@DRAOi6 zFn~KkoVu>xf=p$F>N$IidrZR%Q+o~V1rk6*nH_YTEC=6DM?6}D>@lio4$6qlEUR<| zc)xpH>DHe|vx+a@=ROm&n3Dn761BbSRcdd94;#r}dI_@O8lL>sVMGEL+i3A|Oi9Di zFWkV1=aKhDqquZgm9yW^h>;o*au%~%RzOf&E>fV_Fl!H}F|KJ3TWJ>ekvV!EiX%!L zidSYkXI5EWYtJ`rnfN~9>5DRi!AKQBHW)Uu~ctdx&Ps$ z5??MPn&h7<%4)=H-SW~oR`ZWi`Si%Li(H>=b{tpjn>L~n9 zK&jwI|34Lgxig2Kc1~TpaJAMDdDyg{A3h=yq6v^On{pN-^PA+Y*gto^M)6pG{`c2HhvAfCWMJ2tT2|%N!iuuOtAjIOUYHi`izr&i$smD)fv~LB;-!Tk-%JdcMT( zc>vRnC30)odmsd(AM&=k^z-ZE04z^uPhxwUpWr}Wtb*8IOs9+c#F+i z>Uj(WfX-ZwF?T{}4CY(YkAqjTOVLCvR!dKc-+iJ7)%1ilEPNRTsAU#U$QzaHYJk7l zH1cC);og`ZU3|2^!m33@=hYg@_iWc)lf^^lNgXPu^S(!M^DW5Gw5!Qm8Qj&bVEpoOJCrHx=P1Qd#kf*5nI6wF@ z3ySu3b=CM!aVYHIjXZ$1$ZxS5tc{F9H~isag}@jDUO7vRkMh9I5h^>`=;K^xESzt#Z|gu>cThI(PP>c>2INXU&7tzM=&xMz zX>&uITwFQ+6L_TDaXt^iY`|xP6mktVF8Cbyd*yV&WA8xGV@jwo?_)BSUMj0M<6p&< z*JTN&roM)J6A|A*}(v9s&} zD$hqJI>l=(bnyyHm~)rg@;f|D&!$`YAH)|@k?iuixg^Y(Vtm;@&mP4Bn7reaS*L*?{qWi_>9 z@UY)5Po!8Z+p+u)Dqpfkl;511>3;^>wbySd7mgu}EPjB`IrsoZai)f5&#+pek(H6T zJ{f{?!zmS&a{R4M@CxkJsLxiGn)E%pxXk9d`)CAs_G>JILE!i8Bwnns3jg7>PaZXm zOyv1q@)Vt^o44<225u6YvD=J2-_n4*=bti(p=;iwDh@dYbzo#B+9WJ?z4ujcoe*~U z{%#-l<0H2M)(4ZDcx!Gd@8gS&yaB(<6YrG+{T|Ow*R;&>C$I$C^c|mK*!S9Udm(ql zGy%)s#g3!G9UfZlXR(`Qj5Rr>Nz_FyphU@`X<^7^2IQd-b2*z;SHROV!e5c}rQ5FK zV{AXQ0{tMBLo@1^8(EVIy@Z>^i8nA1Izp9=8g2F`kMfFJgEs5+5bhed8phI136afkg&10C@FgLC=6x|Bjz!Aw!BgqLEH>o-3m1BZ}?4Oo!c6st~28 z>1bw01@IBnigJSpTsT%ab`hekp52lKk#<8yXn^B9(v$6jNgf zA2uc=#Zx*pvTpHGxBOE`1fogge2~~-ybnqI;MuHn3a~pAc$7*+>G)Jolhw6N-ZUOQ zF=MU>d6_D8{B5UMZ0zuSGxJGsDcx)MC+&l3?6&CDq;;LCX`U`E!SKJ~hV^#l-rie3 zO^~dHE%Y3GVsGALGBY#IUYShll+s+d?0sytR}@DA#Dzoq?&@Oub@S|Yb@kh@dmhNS zCamJecxa&$ zCj*CLZ~6tu4hwm1_p^+OX?ne*dtjlryC2=@dAg5_kj-nJ{rkd4++=J%GEKYE&>sYg zlwq$d$j7u^q!nBSV96&k@P_%HBS@I2%`4*f+~ab|6=iknon$}6^=h=x5f^@ncb9Pc z_r!bMLb2QRTc+G7uBMP8%{QZ5dMR)b@s9AK?}`(c`@Po5Am18+abn2LJx zTVGN^Lu$IMI1*%_&t*Qo$4cPPUJHl=txpSC5EMlQKIceE*=&Q?Zq%DJm|^wjxnyML zvvnFimGK&@0cSzR)>@RsFg9>fGYZnMuy6~($9{1P)ES%(qIl_2A@yN{4VmA$F0>WiRS8z zvCW_-Ak)w5WcCSV6(2owm;;KQjt&D7UjrBgf6QqTRVPv@yhlN|_cvB})4}ZN_KnAp z{${7{+4k8LkPa;J3vssnYpkM_SJxJ?!ZT8IZ`k>x<$9#CCupZvQ_&gOZQX=MYM*!= zSMkf(wu`F7I<8}}e{|mbx?Q>g$QVa*{{Q%Y@hxTFqO(%Qj%vVxp1aR#)W}T7wtwm& zrrT!X0udMYHL#Pmpf`USEs7eSMAZ4GybX<|hdnA}1UAhc6Xf3#uhkM6siqX0bp0dh zDK1vM*4Q)W_N%G$_f~aVY>QAg9|WOUf&jl~ceELAg%Qa@Jty)@jAEY~NQ+%xT~!sK z58jOAXfVwaWjl6>^V!ecPW3smZ1U{oNjf6JrsCg>1BW;@ zfaa3m;Ti3*7v`@l>!KX0>IWsBp&MK;O1&`GK6+J|nk|CrebI%NCBS8rC|B5MFIHjM zG>8d$aPOUt6&v=wzbo5bLE7euF?Z2K%=)Mr#eft^rkLAWa$|+wpl@pIs7yru!buXk z&1%|seVRSB1~O1i1-;1kTbKr(BdEf8K;z#$eYhs7XbCdm_6qR|{CEsREq9U~q1Ae< z2~|QCi?k`q?`TN55htIPhWeh(R(t6i*!>Zz!qF8#X7ONSZh)0BmB-qb7O^d39P#ra zg6DqS$66auor3u#p@Dm{MJ54PNNKjZqyo>FupQpx<73Dxv65U#!_gOva6TmqHsjj|Y;}6V`d97O{W*i-f51YMo=9E)h0#AFi17BR1@0IyeiY*-}Op z#{VPT+lb)RtGpv3C6*(S z_oiKcY(mVcJ67sd7n%n(JV8>$`ClQx~6%I5UD zH49wH4}F@nwr&PzGZ5Zs3VrkD%uC%La~P>@z)sQ=xb9EdX?2;UNXjsN2EDpSGW0of zvsymus}d_*aavk?#f`b%uMOwO7P=LSx{Z9`8D3J${8ZEIRKn-%0CT($^IWFCPFc9! z^k9+)yJ!>xNBba~Q;c2-TsGbHGmOlcM<-DWh82`t1|A0)Eww%Oxo8;`^9+beg4G78 zy|+xdp;-uL(AYO|Q7P9x_NIedUJN!2X;tv1DMF*Jcao4${06Q18%PyRX5r7NJ=02O5r2_Nwc6IPI=O$H{5*47@_%qya*&a6w zIdrmfQTu}OAfR6oOEge$UlKKN^m1n(A+#Ce3%nb^W8)LmO00jzBJgLDHCU%$wE^>8FbHZLgXHiygy!WF>3C57=AN2b)Q2NLbdi?u0 z!k_gT9nB%;SqApT8Z*bUbrL0OlAm8Vr(AFn1t~ebr0O$0(tLP{5jn8DT)7cmtD_Hn zVzO#d{(+M_JTb=c%9ee^s% zXCHbjE1^Hku%!+-6u9rQI>c>lZBE3MRW-*a8h1dt45Ni*k1keeWGsgbJ(1a#vFd7w z5xASSA-i630?z3}_aZcPcCni9*wwFpS(y%|EA{Fe;FU`tJaRBzL&4UL`7dV%b{k?^ z2KZ{vF&iBh6Ob&f12{|N9u&A0*G!uRs2J5k&Ie|eZ?1PenFl1$Fi}+1GVy4-@IjFy zW7MhlR1(bd?)=@lI<9J6u}RA3NBH^XSrS|>ypSO-55i)`M!EJJ)Y63X^h3GwSHtRM^zd#pvv z13o`obKlvK9&aeVPi#KJX_zov+bo-Lw_5Oi8coa8m-8uM4MyeviiCiAfy7k|eoUXJt6R`&LG zhR+!#zvuQTU+_pK7vx|vbo7~bNbO7J(Bk_!J=?Q}m1}Y;$7|*qf@bx;3%nJQ0dH@b zbE&()Y@96tN~X-9EZ>GpyJKA&!SH*+ts;(tmE~04&hoJa4N9Ppn|=`K>vx5}C7qwi z(^hDqs>JTDEaF0$B&GV`v32?iy|zm033^a8A~-cvZpa@n0=MUTmOt8yR4+V$)p5M` zC&YXvWuRrvIGs_ChGk{M$-})yCXZY&l*-B)RhO$IT`X0{FJ$Dr;?^F6V1B8y8(343 zRJZ}oRlHoGR`utwhDz>~pK|x^{qx_Q?uioxn+g1|FLry2{>6|vIy@wTNw4d@Jp_@- z`j=zg=*}B!#H+^aY_zd|iF&ZR-3t!gmM<$`0T{O9^q@~BPTdMSo>9FwVU`i5Z$Q5F z7_98VXGQh-@_xI;oww#*(thoC-{LT8bQ*BhyQz7E%#r-i?grBCv~8TQEvTYd?QQgA}{pBGP{!)|Tbb$A=XW^cqq?;|GRsz+nm-h z1so(OfIDg#a|thzp$dtPT(#6;VRX&(aW{rJMfNkfcpcABd|6|L_q<~$ zt&zqN=SSeiZI@U1+3onXxK!(mG(6D`7>e$_r=TU>B!f&XQhERzILOsZ6`1*W7r2!X z8~dG{^=K~v0bcgoHfBTs^-=BkZneO?IlWs|Fq{1QO{t^zPRtc(lzoR7Wddf{ob2%2 zk}g>pO_)%-eo~aHyx}Cne!fSBQt4#NMQfR^Q!!<A`i(emO{;%wmSz4*$k%7l*`_ zP!BP&VYg~kEU2jH5N!%NSeNzCs)-2_dV354?dZKFsM{5L*h3aXsFB775c?;( z$Ci0)$939i=_OQ$sve?9jm4%f=EU6|0)9lnAahKPtKD*;L>q7Y%c++L9-Gcc6#w}8 zSv%O|6;b(pHOkos0V6+9isH~ErqT;AkZ1N}J(OljjrRO&)T2dwAzIJv10daai zf(cqe+m@ql(wJN{lB{@|s=;@*w$itK8P>DCPKbvm{bZyuqm2Q>jXGFxI63@7{r1UyL!ki zY&P@GX1#X7Qp4A%A!3Pi)BeLNP{pcb_&m3kaV9eUpNHq zoUQQ2G{$T{@D|3Ta9WOB_qdLxnDRay+#U!Sg^5*Ydwk(GK!)hA8eMo+R<)o0awNdC zAMCKe{OliNeRRemh?&@}BVl#7Fh{q29mbQbioP~C(37@s)z}#A5-WHgpNRO|IE*Md zZMIvf0O*(kpB~dCiQwq#LsXS3L0azMYF2w+w5-ioISBq#RJNSLz-V-Hc4cgt@ns(T zv%SBa!@y1i?vd+r33RF_&C910OoPnsL|HBtSzC%}%@_T(WYdoGfH59?X77VijrT0F z3N=0Z`&PzVdJD%xwAu8ub#{CEuFh#tp2K~tq*|x4wS9RMs`OD-K8we3?4iff&XMQ# zHAr1p0|i5$4ofwt(UJ-D zzF77#(`zQ_g4TO&OO@7}zQWt_TN_(2K)$IG#<*H&J-2@=$Q6r}CorTqhl@YK#mU2{ zY5gW;8<6wL;y|EQX`nA}y96vVjz9=3=!f87){~giq^iTGtxPg2Jg zTx zjDUx52|l%;;PFUWRi5y-Qewu7e1@jQw}-2JlG3o;NQzkoM0U ztH>#DTF*2l>>Q~q{aDy%Ul@>{RQRJ`?|Ll8%_w!@-2HJrq2!O%{malioO%0SfJb)I z_=u{gw7hPV-~RU~jb4)-JH6AG4qetd7}hgy`#6#e`nS~b)6<_XBV56nv;VV2mn*7Q zZ8NKhxqOJ2#RpbfJLi=qYAG%!XES7>NZAT^*BkE|D*;<*GHM!{V%SG=H5>2CTyqx0 zX`5qP3C?KxO&%5_hsYH_T{__0r8U_lo#X(Q&Rq`tSTJd*r;xlskCcHPT$`Cb(};M_ z@Da88hQL7S_~@-oA{Bw2)5pSIw=#;{*LQY4l_b^n#H1vT8_gsS#B8RiDokc^0X${E zBGtcDSQVr9oYksaVYct}&$EZz-0~2%_~*Fnf{wVoZ@9%hA)D z%lV&{w<%n=Ot7be-9`9C+qMg5hOST})130AV}PZg#>U1mj~gQ-fnN9exDpuu)4FPs zgDO&51TU4yhmWd1B+gh$WdFS5H}KkyC-2}gzGL(FKyZ_!#$nqhEQZCEbs6|v*Di6* z*RMF>zpv?0OY2clQLVd)yVf+Owg3l(^=P3uPyKbsm?3DJCa`a zT1*V84_ETOVqX1W`)~SKTTxlHRo50<`&LQ2fYo_l*ShB2Hpkty(v(k`s`!sap7bxV z{h;Yo9)DGD3$4$e&n3$B`aRAylEFKn*S0EmeYU~F-$w5ecJrvX_NPq_Wea-b?o`j< zl?r#;Ut9&8oT1TS?QPVMhtCIdU=jQJukt@XPnN+14Dv*}tkXcD$$a#w$8{lr`X@jv z-OMpicHR{3N>1cP{3!>MT4)1fn0sA_{5lQWKzL#$z+ZA}nkYR?kcpOwjfGx7G^B~s z@NfFZHo|%r3qnGka$DX~`?#K9Mug-g&nGPYSzzkUeXOu% zue<%_?0XN`T#UuU#M7TQ4p1#L+51g2Xsf$6d_nPsIopeigKQ)o(WfPVZHWk#eoNML zC*#UjFG-J)U~`EW>3P6@(|MI3?$%k~)jE0H)t7A=_GTO4Bf*&lEf#*L!bll^^aT)( z6yTD7c)nOizp%XX6W@KLl1qoUgj*SDtcxOlaT z{1-Vcc>u-P5}IAD!tBT@D5|8hDr5XydAOfk%=#F##@%G0xI8^l!YW_;opmb(QwYUO z4$61y;9qXgpp`R)4^ES28Gai3rikXIH8~XJOPiZ9m)##o^U(6(ZJYE`8`)pp=`w`S~2ipsEmprE)2~qX2#XiaL8dGU?O~{r#P|dT9VY5sW{UCaT9MOmQ-)ue%j{19d;n}1oXFH~c zO_oY=kI96oBq)E%!qv?Y1SspYAF~pKs_Xx$lg11m>%|>=qYl~Bc{J0s*nkDm7hn~J zq8KeC;S3BM$RoH>&bt8TWco+~eO||2pVf1Vto+ZNK*5?|nXnuMIIF&~cn!fbiZ(z{ zt;=HGIAKfjfkm}cZY!vtwJ-Tx4O6uX#2*CwWs7XI*Xud@)_Ky}0cZ=r1#qz3p{+47 zMg+`81y8F%6t5GFm|_1y590Umt*xNh0B-KO*w{F_?|O0P z0TsG(#~(bNF$#R>M~ki=fJ^C(-h+5oQNq)`yeE1?@f|&S9En0lw5 zQ#Ka+4?4{II>$#_1~9Fdop5+xze9I;8~OnE=~HK766nP*%L1jO@{LWB*}cZe`e!w| zCC}y=66RJP7<|m6nxLM(P}VE_qd3K5h z9mJW=-zuCt6TEu(ri24 zIvU!It1&YUq{nIyJWGOO2fZwF&A%0nM^nPy9hWftW6C|SyRV0yH*DGeu-btBk_5Wz zrL?&l#&NjV-o8g8vzTeh`#xzvBUyaz3wuRcTpGhsuflCA{@6>M>AoZ01U^1tTh{W@ zvrlcHJTGx_*YH`1()%AA&l|ylWdefP{4b{qezLDVXH4ur#85P0-t=gq)&E+=9+*lz zmb_`i{#m9fyyJy~EjpF3YyMj{!(4@T-AYp$!>P36HCLnRD_(KeZYl{?EKiL`yoSu- zY)lA73S~*p<{G|;kG-?6r>+C5C(`2d4GipXLAB>aRwz{Qgr_d?VvI@7Nk>Ojsj~SW zQlUKN1Zpm>-^ppA`W(PbT{So!{c*$T2SFjCBj{b{vnjTVTi-nUyS&4sUvB5OH9C>W zNyl#a+v4a4rD!Anfz`)3+bjY+_Gjr>ClWk@oSdpj#?E+CoPR5PJK6kS^mNhch1)c0 zRp?>>`HWq^fu4^}aa@D$-8*LLbge&wgVRw{SGp*Y*Q~6rlOdzVepg)p&smh8e{%s} z_E$2}@et`jdUy+Oc8#O5c`@>7#IMdp>?~(*mX5{*U<7Uyh3_mz0D+Vu0s8f_* zQjrnZuM$COp)3y;g60&S1l!G~BR39%_tM+Vq@fx)FO!)Lb1lr_fG5!S+SXNraFp}& zSjV>+X&u5&yyZj3+T$e(URig_eIp0EqV26yBcU*=Mn16g_(06 zD=Oj;aXZ&{n>6)!{x{DFNC@m3uu6#@SWkX@(}rBlJu=0nm~Ut~|Bk9`yZI)7O$=Vo8{)W&6Xn+HgGIdAKSO^D z$%Ob_D|gM5FU;oYC#lF>xLk+cvpD!pcVUgVp=@PHjvjN{u#!{7OJm|lT{cfJH=cNf zk4G%MxsjJtL*jxuX5!5YT83QF4E$aCpf*>ZL|n#0!z~{XJXvFy26{*pFL$%Re=K&k zB2piuiz2ouMaKd#+4-{JpZP@l1%3S?Z|DAg7*WBWzFJ!tU53IN$pHR?%_2*CFf#C_qhhGzyXlbY zPHED|u-2~tP4>)hH=qTZ*pj|Tj&LVXdSKvQyTN>khE%F(b(ZU&oml4qwS>wj z5DU~)2lT^>+<(-6uBS&cX2-NExfcz7Ch-547MSKCwT_=Z!5g#(sU9t3-&lx)X>D7kwEf_l$0mof;HU`dgfF=Buz!UFAU`ih`izaPp)Ldjq^chr zYLbDnb^JGu!&8&Pem_+P={Qs92Jp5bZEl(T7g;ioa5+=rk4MRrzP$oVN*}AE zV^HwtpmWz4z_u_k!417QkSQ9vxFMkmQK=vYvDbKS!Wmv?^PSlJGo?wGBDx5dt=dp;dLI#kf15<(0UpDQ2 zp~Et-LU6;0fAWRiqU}20Xu1%QT&0m-HY#(~xiAVm#d#7M9s2xft(qqBCRdLy7s-H= z_}sNnk3-O=t81)s@gMM0zE|td`yU8u5Y}2!incUbvD2H1Kb4nUf&4gY1ZL4cRV~w$QWiM;hF&R3Q4=$ zWYqK0P<+*dB-5kObIbxecSghrH@d`^^CeWfl!%b{_)DfQI*iG^;KL8W53s9MmarZi3?Sx=8`EI7P; zNxbu-Z^Vb6kuthTcKshY3COkiBF8#IBL$Ezj^G-CQn)ae zg$M!c+6nGULvK~k`Q!J9{fd;A>6Wa&mjzUu#y(s_?PM;f4bA+8(8)S_SlU^C_S8Nu z5ObZH?aPbp+^{P*n0`f1&Gp^kH=8_6etuD}QKaU~o`q>({T7667RUFp^CF zDAx$mu))ggWSlKe0$C9UZ9;+q0kqid-kLcJP&tvEXm`2z)OSjD3$1j1q#Wcr2!u}Qth{yYk}4^_fW z&&nj$OwA;X2{QZ%x1H&8l9&rEv2({_MVr4!v8eH=C3hVSGaz{#=Qnza9xb8zCxWAB zJI)UJ#C$Jebj$%FA%3gDalsp0Qf;m~*;OAoY|8r*a=3r4wp+I&rZ{IRuG^)gYU<;5 z&?j$}JtGt1)ECU(Bokh3=B_P{bJXe&u@G6N>;Nk6rihF>mrACGs4^~fKUu&45DoD02yBhu%3oy4p1U&juV;Z+< ztiK%GN3uUuFvMyB$$zN*hyL;zAQ7k^GrlS$Ujp_p)fjG3US2Nd*yFtF>c5MN?Z7Kj zZwJ#zryGlkFd94GHsMjb%THOYe8w;q4X5!usd)s4laLE|zvH4#?5^Gio0BYPFc@-d_wTjt0MJM8yaG`2a1M~`z!nM!QKG%ORAaN|+RqX;E37++j&B9kpu6V?uLA#=*KwSdyuTHh}TeKYh4 zcNE9ZWi!KLG2zk^?Lu$?zI*|I&D5^T!?MYXgj)V7rAlkFz`iE@J0*0<@EF z1kI8>9$Ztj-vk_JsY$2~5as*hY0A>d+b}*e|2z9}bg-7lme+1xE~_gk)6W#hXQx=j z_}yJa$s`hT^0)FTsoLJyx82<8cJNX5Io&|+qn9aAr;;hLPVKpoEK{cc+XbL3 z*0@y)LB*8$QrL)o8*fGNGY#&qw`n1VorzE%^_O1 zCTYB8N>0^^s8ak`uDkPxggI2KN0^m+i?!M6zsRN~v5@cVVSf!=uk>TV`sZYl23JK# z1}`l+Um427QTQMS4i>P4`G5qy#D6Hq8{INQ$NSOa0{bbp*WONB0gd(xy-@FP4(Qd< zb@-$9qhFRM?ai}_3n1C1A@I)Wy}$MwEQFMASmM*@4~cRx{B`-c@4Ce@F|e5Y&y)yR z;&1^529L9AsW)doV+UhPd*G=#(r+01OJ~0SQ>iJNZS;%%Gi0dDE!<278Vo3=ge9~+ zF9LAutzhroy`$ye@V}<=56=m|*vQ-)$Wku?M+M!xFkts*(>IDKSXY*&?O^z~%8>JF ztB3(xfpp4db<$Ueu?S_ku1M-bz zHw%)X=voWez`}7Z0Kr$D5rvBhohaf7Pb99do3aaI$h|*&JD`fgaAINMtgtm%nMi4Y z%~ZYX>AVG7T9(TeqSjyV@pQ~LTzjICU~=1u(jM+;5lOPeTED)lEI+p2hCx)YyB!dh zvatT-$@9*mR2IY%bx{k6zw$6J}TyfpNdXf(TL0<&GY3KA&iNblVXyj$lu(I{|U$D_~y5mTzv z-Dh`VEtMmeamQ@Ufevj#5U0S}Py`5RBxH(Dn9X_O--pqQww>*@IsWAan9at80POJe z6N1HtD90*#gN_+otle#tI%^sw^%u%~*Be@gZNlUetFPzr5>~rh= z6;gPCC(}h|TQkX+6d(UXXyh02t$Vk=EBWbsp}5zd))X^-;JhLyA(Kd%wRQB5&y0~p zs;$YSO!cxYOxw>&GJJcU$()kud7JRc1s*K;L5JZbOrqZt_MBYU;E#{4)DIbQ7sF*Q z?vx0)qDHHM-$enZ>X@sLS%0;M2Xcu4W(bfLAd%$InCuDZR(fK;11gS=yr-sir=d4v z@c5arD60XG(}SGuD^pgX*Dx6ijczQV1#44J@FmBm_&L8l|28ttMkZ!@R_kqh+|nfsb?-O}|=?(PSUP>fVsEfy9LkpPgHCX1GRk&mAoc?uKaUpYj? z8yl~X?U$&xHPWZqZ!Kc^-`-SB+2Hx%Gm2&jcy!wF-l@;SH+{QhQC^bNf=;IL)AH<4pK%dsDs%w?)KEplW8cLc#j7RYZ`w|7n*5Jqx zQVU<693*SLm+^R>xGDwSFr!6HxlF`#00OUrD+N!s7;Wi0uiAJs%BC1eU;{4SGGR|7MZ z@Xt|d4cR)VT!9a3x-%&1bx?(hcidn> zytpDI%uZVt6K8%8qf~C};rANcUM9x7ef6Zz+5uybjiHbmU}9i1ez^Mbr&+A%cIX3- zlrD%v?jrq2Ki8b>PqYF5OoxwqbYx_Xrs&O9n^@uX5b38Q#B2KNBXpBkWX{_%$1Eel zNO>OB)qV+YUhWl;)MNGKeUFDwRYjaWI%th_SOWtP`UoCuVPPKLLN7*k+ZAtJH~Y1` zl>S2%_NYjjLxj&_CI|G!`Zl+KutPmRJ}r(9^qp!|EPZkbTzuD)WCRp+z1ic++1>gHNBz?-z?ya@(!sZ6 zcMIx70m(t)3m2P0i#Uj4fMjM-cC{6t;Q}R`B*WhwyeA_Uo(TIQpsMOuY#co*-CM?9 zw}>nN!9yL6O8Z}V&1GfD_@1p7BSCi{<@|45%MXyxEVIauGzDaIq6k{-XBs~soeRef;$v#?rrBrr8=9cUJ~pT-&bp-Udhp^msWi$ z{(A4;W0eJln12A*oHp0w>2l9|b$r|mgzWN!_mWTFa276Aizi}Gx%2j*z%sLWYjEf` zg)`XU#Mo;+1AZcs;Vd>tTXI>dTy+3av`at(`%fR~?=kygu#${VDZ7HUC_mln=qqYO z(Cm7Yrjo+x0$ha5#^?Y(JnqfQ0j3HU%Z9j> z{<6#(3s#)$AJsR8z+;;Nn?`nkWu|;+ zm}7gka(JPt{dHrxTq!WC%nqIOJ7ia@SA-c$eJ{we42^yxJ|zH_4`;v^RjJo@`<uGxxIHpN9O4^ChNl_bBA3<|Jy&yB+xP(A)DD zsY4t$CX=(#o#f)GUqCL7P`B`Hw2cF!yC2Av?)wTaStzFdvz&k8 z1}IUNM>9vZVBxe93cqVG`3@w9#TM+Oy#;?pLHbLWkOLlGhMISAfOE8VV8&9Ldu~9k zSqiW1$j&KQ+B>CL3G@ms`QBIuz#hvIA_g>t#4dL=;GcO@N^ESwl_Caq0UXPIvI!;{ z+Bp|VF@uso|}DT?V98_=;W~~Bi?l>5}#MX+rRuRN5Bw(MoBE^?))THOasXo z|A}e)7Ox9%68RivE=c+*%(<8g2ipnuI5SAEYI+0KCxDwi_rF~$*!Rie1KUm`$bsxM z6Lfq}dbMYFGG~c}L-^+8r%8BXdGp@<0^@3KhDyTfuPzzFo_Bjazbf>3N#b6;!u_km zTjE+@Wz2u0vyHkKuTwVgLxIznsu}b>UxGrgS9mohsA&-&G@OJO<~M{B-xBilH^|L< zUha7T*^%sW`U*y`ZPy4+hv)xx%Oq z$W9cR*fV}hNN86q{7lTm+i_|?9Yj%&_?`j+HVy<~<-F4oka;j(B4L_$p1%>VXve;n z3oJH{9mn5Omd!QggWpdzTg%!e6Q&$MI1CzdWl}VyBtoGa({T#e9t=vfn>6axbsU9~pfCWn{hXYO?+Ny8XavLBo`Pq! z9vuWTh2{xe$G-!u6$kSjO@9%4e;aYIE^eiLoKI~Sfk}Fd$QQDm#(hibb5TIzf8Nvd z=s86xV~lSgT`Vrl3v~*1v?sd945nRuzE^a%%5#mw^QUCGSwHDm@CnvHXL7SmPpUh` zf|O*SdMkQfh>C$iG3Om`c4YR;@d7DS;YpyJ^PF3g>eK)LvKxX{(Z2HI?1*yZDoS=^ zE&Zu7nyWZ|Gp^Ha3G_JB)2xC3oY&`i|J<{BFPTqiS2tGS8@A5GHZ>7Sl1b{SH|kJR zGX{;om@VJlp$;ah-vlrv6*6ZcrK3`X?dc1$mmz1r@;R5)MdZXyRzakeF+97%5Cjsy z3Ls?1V7n*2-u3AKvVHRsbnjFiyY zW0(z%LkDDKHpV#gRzJQ^Ixy&mw3J#bhZb(lf&>k<4xCv;=9tQkQA{Vr^1)P@_6u7q zEL~9I+tt-2sU~h2J&0K`Y%&ImdowfB+YBDZ&D2xSaS2skrT~p5DXEztKyBQI;S6H_ z2J_h^DxJ-HiYs>nmiwvk@d{A%(BJ!~)80m1!O zS2xga>v}M7^kKdu{uZBWxW{`}5~+V6XGkS{5zc zx!Fa69T0jQd~{@GW%C}p?BN=#Kg~YMagtx2AQ`K26v{1C$XW{c{=a+nH)^y|uL8`O ziB)>)8agM(C}k)RJbu3Las3=9rUwijHCPMV+D!`-6hxg60x&wlix2ZP}rp z-@Us(Gox2%x8_zVlTYx`aqQ81gKX>(k=>@OA09iiQOxzX;C?^Zt^qSpPJo}q-vDFC zdEzWR5!V}0hwIUT&P9{t}hA7txk7oYJH7k~`u}tPfQ*@81ZiB^5_Y?n0 zqox=KA0zjHAVO{R7wn{ij{+~JLL@YJgYz4`m;PCmY45f$>@-AvgiCP$0^3iXyJGvYi z1%7@OwE;!FY1$C3=dCeHyS;tAFn*`6{GSB{T$dq3XBqZFZuxOEM?Q#76o1A#9y)(FvyKDAA`a);(|WoPA2)OIDxEg1T;S z088DegqfHVT^G>8u23>41w0Z|lfAz2+h5!BNG-EtS(<&8Z)*r{^C>{gzhe-8z%30F zl**O$^-AuB>Nv~k8HtP1xe~@@x&2EQJ-<9*8TnEmRg`GP*#C5ST?UBxe)0TvAPjv` z+F&lT!8K6+XiT>V-T7rDLF4b5>7b1|SQ&25ihRfg8_8&cr9=)|4Yd)IF5%rpA4S9__2R=k$ty2AF{ z6P2qF|Acr-bwli)WzZJT;U1i+lDXnaG~uWfg&z+F3CG3S$lqwNNCyHXQHrLP`v_1@ zK1fL1QEbmMx# z5R>GI`|{{iO+!QSf|zdHR4D#KvjMv|CAk5Y%p3b*&}Hr1TI>*Dlysv$B;O}nF2zJl z5yd(XPjM7!b(hwO^-X zd}+gpl^KE|g1?< zBQ4V19RkuIAuR}a?g8H4`#k75*LA+@JNpl3M(%sZ>b3UXYaLs~r&Ygt^$M(44J7}2 zeef;)YaKOpn~~>N2ac2!!-#dTQItN68|z{*(P| za&$Zv8ukQlnM$G}5$yxyq`_67+Qa5%GO%~kpUR!^6Z{)UApmR^0+ofrGP8w{VoSK1ZblF{iu*9u0? zKJ*_<7R-?HQN=^rto1M(*Ksh1BJH_Tt6o_z;FgSFvEeO`lYf5h*8n-ob19)c|G0sS zyI@djDWvg|*I?jBX(^E3N=2LbjNEGCO#HWfu!2~)j4`drA|K()7`}ra| z1G~Ji4~V^HmOM)vuC8tc^l_>Pp&bMj7lj1lyBjZ`e|Zrx9bq1PLggoOaldXi1=}8V z4OZo6MMWn0OgnICC_j{znY-@UFrlo^1|9xEEmkd7GZTRhnk4_z>O%M3B0`FYIjFN z;&?Gsoa6f}dR3mM>5WI4zWT^ga=<~>4zo!KN$fE!>|q?CuZR;y* zsP(kTlg*dKXi^UpN~TdQ-mE1!K_j&c(w_%n2Ed(!%-7jKh}SB8UJpXLm*0WMyM~3y zGtVGTd5FmW)I216Dwho{3#o0;Y9Gi(fJy{HeEfKKsuz{!J}#@7)~|0h-%4Br;>i!rp?XB@hh=^!<=vW~I$$ zvwJaD8)ch*-;<HX?a8_x9RKDRdai9j^^#Lq<4+Ly&wrnP`x2#Aj);K$Q7 z6>=f1YccI!ezJiUPc$P>1p|*0M6OOtOjEC)KFVyQkW6_QMwxj9scMeS5!*5WaPymo z4tXxImfw4RbeAweQw{6T&Xh{*64XdnsMs{Z)G<<-`!rHm52!cPrC}zsMQ6kD6e`zQp7gYybjLMnBR>4}Y*Nu1}QH_l@MR2re7u zygfcrLqOY8O=C{#OPkhhM<#%UiF+fqN&NSN)TX(m8|RsGxjE7cE?99XvPnM zq-Z|G#Hw`z`TqfAT^TO+Zp!V@k!}Rl-y)p2D#42Ug$&7S?joaK@$=dE;^f z0mE6sGsi*# zpLjr{CfY2>L4$FSEo-7D_Wm-xMtFf@2h*G@kE+^iK}T&o#6zD8JygC^ZLtUT>lTsM zmn{uJSgd$4dX{L$)4sTRN322B2*4oP8!u>p_I#bM|2TGgj~N3EA0Hphv0}O{tSbz< zn*X*fq3itk`Gc5Jc!ysTfuu;5NHIecB>#N^_?BS;O}+%T^U*$X@in&U*jf zhcbvIZl4&f^w(;uj6uhL1KmFOZyS4RjSY~FvPk^w2@(o`uzxoE`~Mdi{o`kZL$Y&i z${9zqezu>su75#y0{yeIoA1WTz=6AvAfxSQp${@rF`OV~Z=^q;3f~&AHc3g0z{ste z&N5BV`OaF249z?FujbD$u8`~{H+EuaB5bI2RZfc&O zok5+dQ$Ms*wsJ_gX|aVq;9OEzfw&;Wz)cMww^Q3)Ao8BX_xgne3j|;K&jJPhGf`FU zOW+UY^6;1B-6{5-!D~u1S!n7GPT095wZLg?4q3VFkQb4_;lVr2zfLSxq1j~pIeB+X z_G{TtMmp}zm3)d=S$6#2(Y{ed7D>Qi#5+y-SA6(uDrqE+>FL50YOcQFmJH?*N`#0L z=yO}FD8u>z{xw9v_Y6mgxp`K=G6TN*Z;5_Z*0X5<;|j^8^w31FL|x(7HCW)L1d2rr zUl=iN!-hFQYft#|hneyvKUEl}hyTur(ric+bko%f(K*8=vYW0jUiyBRKu2lv?Qhbq zV7)T)Dzv0S7e$GlM*S6ja1zG#+XN_S596;E-~lpeRP}-*x4S1aswC}%#T);m8j7wl zR6t+w0QGEu=1l&U#UCJkWi#y*`kB}fKXpz<=gLSN@a>%tKQ$UUE}L8#zo$%=-?r4(=KDR7haCKhmA{$cCBkZYE< z;_~xgPL1OzW+tsl)-k@@zBt=<_`Sy0=;Rq14JO8?XPAB$uS6^qF?(ZJ*zDwxSqV8lP6hg0kJsw`K&EE$W zu>Njv38VPr;2|qe?Sq%>Jn^BEGQHl^qtGgLCfC}{kg@{cLf?IbaTj!%l%Sw+6%9bAKHN9ldGlAYxYu*ttq+IlNq?q|W<^ogQ9%rlqBW|s(C>pR zv}fh|&1eECmjP2AivaYTFh`nR0xluG5G8Ty z9C(dikmEeBuzqpP%ww9m2qBrgQIiY|p?NjR$3DI<(?9IKOfNN8jZr33S-)X{{Lv@X zJWpg&pGZvEB5x)1V}97H#AkN7phAqmeOx zNfp8M%TT$FEa_6MUpK6f{|G4b_3XCGng4Vt3-amtEWGhs^{tK?CP-zaCDYWZOb=Nw z_^|>M1XT%Sy0LUGvS<}mFvq`p;;as1plycGz@dj-T&Sgyjuc+rLct?=mf-#kF(?al z;bf2lP#CBDjCnLK|G5MO{3(gDFw-`s2x9B$_!2i%S^N<-(7XSPT-3xy6K0dQhK8m> zyVRMXQkgwFNKnf>imEYCu3Wl*C=4ECw)6V$2&8`nHB^_LiTP4&G$uaqajce&D;=4X zQ+yFUs=*j1iB=CYBr}~EE}WeyKJv)iUAx5M7ErK&I1#!9ltUNJ7GWcrA_J}fLn z$`Bt-Yh?In<_YoJ)$jwd;@+*SAYMW8Koe*+T~cgs^NaI8@#X@m;bicKBjoKP{F*yJ zga2qrC%d0de@UKWxr$vcgh-I1+?ogvj3~nE4z% zlO^fCm5Zx1_uizsEz`AVR{Z$oiDC?$B7<|C0=17+e=l!Qfni`yFy?TwarlDj< zvE)6y*o+ggx$6tkIAo4a);D+;9S0^b+7phQFi5O4V{HPZE%OUi))#7}3vEZ0q1~C* zn%xDqDbv~J>sZA7T?rQp)VMF81hzOfYQ}0rO4Ez^K_$&n6BER}YDMf(kEmdIlFFiz z-7vh8MH7CtE3qmWfIcRCi+w@>`%iAMPYz(8NT8d1QA>eJPOGkR1NrM@$VlR!Bl5Y%@tYz*2 z^CTB#($saK9&<+jp3FW~o8+-8@)A|n61WvL5&-12Zy}!qRBt26D?NLsb3Y$DIwiq@ zAM(^Ja}P5DdERR$rf{j}8J^RpYZ;47(khQe;k@=w@K7YByM<8$jyqTdW zIye92)(ns%HS)Iwig74E?-)}*KxMa1iqt%blD7V28(5wvIzCmc^r7OXsH%^r;fJ4} zhiA(&X@H#?7}0)u0_!qsZ~`5AmREQtJI0=C`uq5__sQ9%ZEsC^l4YC)RgNO)9k7?> zdwoznawwfRHPvO6^=_fi|D^iXx`F8t{|rL|pA{%}{Loh*9|CD=rxxQXd$^$|V`0RO zU09z#m1S%B==nYG#`)~ZqJ~$QNnJxg9$0lB+7|yYt!qTkj|SxXv%Qzn)>xre9PH_3 za35ibdu$6ydH32CZeLBVYu=KxRE4C5_Lrf6*p5~5g)U_pT`%YKDYV#*`8BF4Ggg@^Gb8nDzimU zQ_zgfR!z}WUO{|1)hZD{r^6NL_|ard7m6i}j7KUy!5SOxt1DQmD>w&>5mf$;S|*O? zCeV4Em^6Jyiu*VIG_&6GJpHOv) z840nP_)UL{}el377oPbx6J(`VHf)Tc>Y(QR3=^qskF*bT{VW$<}z zrakEgBo%`jepqY*W*_^4fMUI7zvzjQ}D&MxV|{VInLnyj=j;ce0Uwhp~V)# zY*b|#ckG<7@?w}VU3)`?aml3~X|yp^ql_QZj`cYfi1F(3nVgZdFDuZS6K1b?E#?v%SnqCNuakT-rmu0uL3f9I{! zJ|O55k1mz|pvP3friW^C*!0`iH?&%qO4`M=BT^*GiV5vnb?&`yu-)7AuU{_!UqCk?g^e=960=_Ebc^eJKa}w5I-wB`{*r` zb>elvl*k}^8=*9P`GNx}-yE!=QPQasCqtK6$g1U0zX47c>hUS=8kNG><1uF=;732J z$2dzE7C=2aG2JL-79)CjEt3{S0J9d7k-OyCZp-r@S^1XbOSg&)bu?xzB9P0uf_1*) zVLz4~stZ%w(5rI~G^LAV`uZSCx9)YY@9I#N%)XZpaTG_VK^#*z^)z92QjvX{L~P*a zdh>S5&w=5|1>utM%ge7v>0(8?^!N&_waV72y2|AbnLUYi9Ya*OqP8`L)&X}lLrnSD zDvr#j(J*Su<=I!}sM$?A<^!KO-+Y5WR4S%33eI7_E}6l{{XuNGmqg)mu2NwEQ$HKxMdCzaNCn>1lj0DA_Ch@uYmy zvHyzeC)e?M*^$P|>e$jNQ?95}y`?N2yK-F2dP){7C6|4^lI%d6HP)OjHmVdB4DVPp z64qDuKGUa0kQJB|0~U~fP*4UUP-seJmJM=%rOcDQ*Q$;37#P`*r);X}=`klSuqAFLGt*S^u z$xy%2Vjw5R!&RxgPrtDaxP(Jbe#C*7RWPE;F}c4KmoPl^TTmjQ)1?gcks+@D4dS&s zA?{h4kEpfB7?@~p@;|<%ZUCO@csBwO?h!!Ugiv3CI^%mxnFHNwK7@YsX%uBa!ys_P zF~)m=dOv41heTNTLrWi)!w@PHyFt?SJ1dF>T%yg0&6dGQ z5Hgd!p@9_R^2F$O$8cc&uK2ZO^W(kf+~dw$SrYIHz&<))Q{Yo1;*HJxq$1DF&Y^+O zpTSk-{`P7lmsu@^6xIfsyL{caKVn(##^GG)~uTh$|=`b@vE=bS_kNE~X1IWc$Vln4z4=p|t4_s6)H3zBAmI^uMv%c9a2M2x_yL9J=yt*mJRJ|iF9 zP*c#uv-@LEyDvox1RN*{&Q|Bt!NQ|^PN$-4tDt-=)6JS$_4b`Y~M4A4s1AF7o z{H|4p7@H6pq0XWpda-%q_kt|Eb=AQ0x(BJWse(if%&SKzvc!s;q1m>VUF=CFoO6 zkFe4_9MgJeMsBTb8AubVN33z>Mx^}m$c2_vFS4Y6JxWeME}@OdW+6_Zl>>0Vayvdk z+m5sT4QX)F0=_65P^vVI@m?|nlQ*-9mG(RgPfcw< z&hXR;j1gfJJm@RZCDEzwg(vMgb5Pl~6@z+2k{k zigJA@^d?(wnJ3@x2C!)WzkRE@QDN4sKs2Er2yF3g-p7A$Ytd1YfNZ4Q;X5wUS5k0RYawB{7r-z~az=#pTJ0GK__$6EronWyxw%aT*Cxr%$5> zTOX@+aL2Eoc(yl??#af`hzu|Nur^E+1vCg;a1`TCST1c*Ob;?4lg3+Gx!}+Ew_&V2 z;w4XB!&~lsyn^IR4yD|8t{CdelgeLkV$%zHaHmQUwJA*cpE+7Ddy1h67)&>pPiNA~ zgdVQ15q%aaPTlfIv3Qt=3XsY-S^}L-C3?gK^1!2mlV2~1;kPb=HOgEN;S8W z?wG_XgjNwCdgve2hAWI`Mqi*Xmm_20gYxpht&WZZq%;lujn)$aw4S2A0|`?RrHzTw zMzruo3T0x$Lyx$!)0llUp#;U(3Rdb9#o_j68a>jeLh+SPVl7+@N5rfYIrM6@j_G-m zp^_&){Sm$Z@MzBX7>S!hf>w3lXSHo&&hI0Uf_6=pJXw?kBp%3 zPV3VSMBRtc4k7XlNR@JYwljLDow)Hc>3Fd=V@%o>b6P^hZ?a!DkTs1TB|tPk!-Ron zBjyR&m$Dmg9vY98IKKIA4G;K~kMf)$)zBLno!@(mxFruUq?-GOvzG91QATv&PNo?N|Iu1}>*yS68oGg_aNOa2GxiuVA~@#$;dq2MCBVk`yplS~YPWnO7+ju_dmFIud-8SM zX8R!I-g73hBP6>O6VJ4Un#NB&NTX5u+z-p}D5*{)MP$%na7!)YQWy);i%+J~$z0?Q zVhE|jbYeM#2K*{eE0IDbf4(mIc^$k4Q1(CVhtUwFn)8(Rd)abIIISB2-R#`KSTG8NQ(k?4vlATshVy3g?PRG^N zfI77QY-zgogd`LB5~J!Yzg4&fPBp>6o{zteR3Ak_LHbGauodqTl6n+*ucc1+3AR%2 zG)u*B3uicV)8}8!Idl^?;Ne?VU0fK#SU+MASd|f$T(<(-*mpuUtVm&Ses8}{p`6@= z81%2#01om&0XF)!2y_y#bYe74SJC>H89l4BZDX*Dl6Ww)KMp8G1L=aVk@v4Rx43{U zu6!p>uo|V#_*m|z;0g&0qz1?HaYlyP`K5yCUsHlHzIe#EcPFZB1gIp@=M>WS4{cMZ zQ%gdvndHl<PZ+tv|=ks+baj->v{L`bG6m+{xVUe>-R#MzcfJb zu`qp9yeh=Uv${fyK#t&dX;p6`D1!ci1v)4e-d`Nb%B4^O!rvwyOJh_WRL+o4Tl+@U zfRDO88g5?Ij1qvLjS1pPa8nAJLmivi-Twmv00pl8pHS@DsXs#4Y&Mra?tOJ{KMiB3=;f&YK_-K*0CNP*AQdNHCr5MZ%|ZVZ_f(OeVS{z7q1Zo zN;odLOJXp*Ag@#u?!wffq@PjbZZX0X`Vmk-ohzL9`B|q-h%`v$cQ1{rYp6;nBv75n zoMKy)dsD8)9<1J_0T_O6+bG=6ody}ThgD1W`_;S-fQ>+T80C_(d#wOt?Cz448SJnX z9;k_9hDpV6%t?*9K1N0i85JZ3j|{OR-&xoqWh|AG$!<$CutgffHN6dAzo-W)lc%`{ zY;xwWw>g^_g1J)dwO&^ZSLir&wS}Jv+GGVnp>#=O z88gPYhZW640p^a%g``+&F%}}Ke!|L?4^57s`5Tz=C%7fdm^jVb)el+;?9;+6383iu zeYPHbpxKbNJLuEuMt^v)KWI^|gg5Hj*;x;K)hqwf+Ck9$;vq{65S2QP6IhLty(` z+G>Y5$9Zb0Nk9?ra8TUl@2SUI<53r;Uw!M(>f^4?hQwHE^?gSinZU`G3w`(}&811E zIH7|gcwPZJ#Oj;b{XaAxr39AgaAC!oy2wI$bU#@ejvJ76hf3&m0N6s-9PkJ| z5-7@szJKr&r`G8{#{QjJ@&2;)AfoM!A2fvfuf`Q#4Vy(Gb;xVc&v3|XQa)WwmmA9& zsRZ4A4%u(U5G(d9VR(C;d0r8ep6?_>x4*KF3`pl)%^#uQ9CvIeK(xcKirler5E`0UF_qUxov?5J zjybxd@wx7IWqPP3v#E@RQ&CVk0i^k_8tuy|Qz@s5 zuyZgSu8MzliMJE>%{X}>zN#0rw|ka_+bn}6FoiDMdV09umd{TXc{@OVH!F)vH;0fbw*{nYDdv5dB!* z`cZtKa26Rx@In^zpW$I7PBX)96&q4oe%19+W)Rypvq#| zAzi&>#lt3@yxUx($m9sJ)x#}SS@zUVe?)!0rO#bIVgyqBm=h`X*kwc#mW|DY(f~n? z)ebwiZqpsqU?V@B%a}r$`#Wx9#di08_X-~#2^y%(`a-;1Ui~;B02uy+Bp&R#E`Zg$ zY53Glrnj}cA5x&HBV>=LOReYVoVQMk9ji`Mll#X+p|e+w5dYiaB&M_R1OL0Yyaszy zomfK54*Zwi?@~G~K)kc_mk4~6Vrq@sO!KUA{0Lj36{YAty{w?6{#{BCTLsC-r9$R} zL?QH4N7cjMV~n4{RN65gW4al;J4aog0F-eRRz563nOH>W6LzH)cm6Ibu>X4w*vH&L z*SV!?zhsi!>$3=_@Zfa(sXI@2Po?2m< z0I=!1f%3tE(b=kly#{Gby-7ReRO;M1c2^WFaB&q~?#a_sF*)=`Gyoodq4wq`z1omp zM|5h&9nU(5n4;Pvw_6d@Q^?$Mt;jX|tuyTmF03K`|2EI6I{OsqUfSlea-o5d4FxxM zo_6eR{8ylqqEc!Lni4QBLsss%mwcU?xYH9&n=`H#R8#1NGzRi628xIk5yC_>``a*3 zV78Wrl*E&dyPZt92)s*fX160tDZ~a6$?csaMG}L#ddE{i=#!ZLWJrYTA9w%Fj(zaY zhi>T@`qY;4G$*%g5}mA*TL(>~Im)nP?8n$i>TrjKVs0c@e+<#z+l{`JUp_oqYjm@A z32#>{F@F|X9JVP~d?~sg;ep=d^)D>~{J=*BtDTL-{(Uo)Me-9j8)J9(;(cc?PpsN{;FqKRSfHo6KpK9IM9|#H|et?yhpY=XmF*)`M^ZNeWohxGmCm-Kt1QcqCX} zX_t6J1y&ao(DM(Q)q&p;dCYyVrBf!`>o>WYAC~{&!x4r&!G?1VkD>UAIPf5q7?MT= z39YvosBI5-6u9yllrEM|lKRAYXL|k=Xe});kt+H*NN%s~T$c|woLc-6 z4QFBk)5%Hpy19m7PS@|7O<)xpjRVAmGRtx6TRKYG-vEFL1(^*$MiND~ygbcJ3mA!p ziV&4&cTX3`Z3LSGK*OEIIGc-U<9;cNbaQm|rsr+)YN=F~8v22qdS$DWKO5PE=76SO zgDY{@0bLAkiGBpXh$};L5AQT*B&a>Dl1cygZMv0k>yc}$MQrF@IDbLA2VKmQ=M8Sc z8($LrAd^#$txe`fxFkLuUBGn-wmZ}EZ+!$^37`9zz`+--Z~Eb>LDA1%{A}a@!GLp2 zwIW&DUGviV4~l8MUOriU&vq3LUeiH9>&bEBosMCgX?2icBH3&v&&JF11kllDJ*?s) zKA+X7onAH4bzYsf{1RBYw3&Qopz^eL`{7+r4(2fjlwgA3$&g!19oDUS)9rWd%p#vV zUZ$l+33%*P1m+m5zb7!Xi}W0Qrf0_CnB3@}?rwlH{fDpnm;~C9&q@@+_ns#8(nRFb z9ykY=;;j0fi*K^@>F(R)MxsLfQYSm-FO6I03ypdgx2)E?VjNGh&N7tNrRQg*JlO+! z`S#Lq#Cz_p@i9G=K&i}e6C#IP4Mth}#Ggx-SH!ilU^BQH>0vgc4?@YKDg=5uLgaYi_`n|hnJ;YbNGu*MCl zj?^q6hPqUNWwhQ>>A=uPhT>vmY<4V%4!l$Rwdys)1W%$AnJ)*KlrSGt}QiI&ALgPt?9kaPXN<0<~-Cvz#pc;JOPBUS}w*@i%Ii zi7-yyI}`%B&7Rx&=&D6hB>hOy96Dmme|M6@htp3>5DV_F;^0(h8eVJ=n)n^Bwdd{p z{otO!W(_lVjV;{N>FxZlDh!rnWpy#9P`*u$-CrQLN}A27^-1vMX&^}!kML;a?pLMD z=2mdZ{;6W!*8WZ*@l3hG8t(F(ldcHg@yw}G@^2%S`TdgPFjLPSixwxZ0RoQIYOAl> zYp8D2>;+wS=e|e^Wl%JwsM!s~NzT4{p3g3=evVjaI9?Ym#-E%~Ixr$HqdZCk7s{^+ z7#x$;^;hAAip_#TyV2<;YxfI8gla87Vi`j#(yCJmtYHK~1yk>}gzJm!evN9)sjeW6 z=w)qEUQ)hu7koEjCPr;g&w_WDlF;5?^4W7CQv3bj(E~=7{->nxF4pW&1#2ueTlEsX z!BL&8u(_M?E_>%%VZJX#-v1I7s-wC)aY9KrSbqwAOL$pFPShjclNkE$(wP z_q0%j3E-0~e2O6!=&M4OxJ=45aSpu764`vS_BB3O^C4m*cGL?x6`8q}uMk6R5sF^Bj_?7r!ewV0gXWG9fPp)4X<0`u=T#h``V((mnAJ z(lZQLqz=X3hkSbshi}rI4E?4lnzj{?om+jKdq>{C^K2X}Z7Y>!Oz8tj&RXEJT@AIr z=eO%~Ia+B*`~m?-QZ?kM(EhJP-HA6Ai@K&Z>n9=Y8m`;&cNq@m5eig3dWplw5*+;+ zpNI%DnJNBW-LN3A34s`YV3>2W%kwqu;2Y#BLDD8Jv7y?jT#$Kml_5sC**G~im~6;h zH%4;cdN`I6G~i`!X4Dy=mzWZiqRL8yni~@lq3~EJScct_;F2svt~Alg5YjRbYhk1c#->(92E zd=Tc2%}kxtJNLe?X~L6eV8uEn!K7nnY+#WYZ;$F7n-BWsT-CSZ&eTa?w_#X=Zfnl? zZTWVjh8I9u5)xT%cD`hj2TV~6`knDkbO&$-)P$2CA7lG~!xEYog9a;;Y%I$o5wuF~ z-Mz5jAMglJK{Bvpk~1FU1=-Djkdm7B@2-tb4C-Y+=&;GQlA=bJkHjl5ZR0-m&_Dd? zl(;?BrVutyza95&KjBP*ZgRT+OSD9SmQ#Vo;c&@7h{&MvEXYH)}1lyU@X|E^=E2qCgzAfj=l?~o| z@lC(f_HlH%F(0%%FPI96U*4 z{y8s#`mwjKqM;%S8HaDkOZOgZ=6;&hsZlwZ&7{&wv)?Ai^5PrcNG(3GzB{sG>5QAB zXg*;c`(yMIG{E*GL_v;!`~A7v+Hc3zLj(bXMHInOi|&HcN@6Y5ic*KzX78cpusjTs z_bv$*NeG>5(`ZB}SQ?ruD6bj!MEO+~QRXXbTtZm137DUo{({I5XuWQHArzc#<19qD zGN1Dky%jEk@I39@`cIZ5f{wn=yAHP=`F#RMBN(h70i+mZ)tMa8{q3{mNHF-urwbL3QxW>LbZb zREz9Snwp#3M4VgnDBTz5sSZTXAsz>`ioA0%2 zZ|hwWUR?avH45v@sl3dw)tc-!j~3N1SLdRaJ&WdOQMwohIY*GfQn1)!uMvxF-;T=~ z@$p9HF!nYebN8PdiQMU}Pl-|Vk+bQ)*n&&ZV0>2|*t)6TEID+b8-xd@@sMNnAygML z{`9?Vn=?_K>>{_*PS>^wge{-9*~s~_JHnV+KfG6#izdekm$i|2bng30y1VAAaS18Z z-XR?mNq#F2pNJ5P3VyJGn8;B~gNq)J^B!$W-x&EtH`?x79Te|hj^uUbh#YM`cROhy zf_gSCHyYFu+pbyr|ZP!kq+I$Kky{N;66asI4S+w zBy@`W7Y_^SmiY^HpmAU;gRQy+H*;<`?2F1>-cnmZ};T6&DHJnsdB?@HajaqYtQgUVq_*o?iM_ zdxHdhC*4Kr+7B*Uh5Es0>>s6~6OQ*C2a*Bj=nt>S`6U#59AxHmI2iWQ`CG4*!E<1O zG`+r!Ps>rK_AB8?;n34#|7y-tqT0AH+sSg+)Sb~Q;YO+>#z&fowAQ=^Ts_I2j|u$ z=_a7)ja4k6Obpqda5jPZbER5<4~*Es%$!V{bWZd7|Lg+qyn!xWFU?It>WzUad)Wwv zB8Lp?H=ZJmvVrzt&6F?ge}VBmD2(UP#c{*yTRtA+q#J58bVi%I5_Sj2`sP~+ttY!s zMzj7wraOVxLji7Z*8L`CrgyS_@XY!^9AJHTH^PO+fi1vLyydP9=wFQkSX9O&&I4da z=Z-;^bk-TIx1I)Ek=eDv^OvsX0z#gAfAU>JKNNVsM5$rT`b-?-d3-&GYwl@9QrNgs ze49b_DADq6sYwsN%lThsA3&jpdIS?~iwkm*+B6Sy6N)q+s!ZRW9dHQ6W`BpL_6@3{n*OEw9$zNLjUb=;KcFt8c zTa1)eIumc`bYlG_9x^Ws6%@~7MIu+?b7G&*xd%EY6L1O+9yvNFp(OP^`3wCtI9!8( zktcHHqGcxJ}alJRC8^H z-(TSH7EsGD+cZ#tAe4kvoK6IZthE`ad6R75xgDL3A`bTdi>xAsVpU|*-6YZ(?5M9k zV~mt|IDf@ma%<{G?R&8WWeSPLSY8#Y>LJKN0kwS0X4tQ7p_h&c{j7;$F4K)`QY| z5iB8pd7ceA#Jz7iIPsiu-mh%d5UKA6RrzK(=(s-u`~PpBA6}NN6Ib|=*vFDj;dxB~k7XSRLCtLzR2buG0LdM`-1V@TWLsT8M)*?~;z4Ki zaw#o!E@J^nZcE0ym5zraa%IMAlHn4}`LZ{f=?`f$1UTq0gtUB-lxD@wGG~YbjD!Sk zqj0e=O<@(Gfx22jlfRG)CzMBq!R&7Y z162lu57G)%DDgzH@*TsgSy%aAA&^vaQ~4NfJ7sq=xBf+n!UGhuNUFRn>-we^D}9Ks zeR+&GCaBq4l^4~c+lA5t!YTyTW2(5^7gmf#TG2bp&x=@t8)a1 zc>bbyK0u8FUfvbn7==g*Z(S9KfF{mwGe=WaNfF(jaVTd0BG$;Da)6iDot-tcRx085 z+>(n+C-;U^GZ7gOvE=b31VwjZB?q&$Mf@>4UMQZLqlrjW;k*nC`RR;xBb^NZY2#b$ z^gU92%v?XeTap<*oK5D+RGQlwIZNU05f8%a9>gdB0R^ZNHN*~u$8l8pZ-}3vWbxs7 zms?dJ-yijEKFDllWR__8M05UZBm{_r{tHCF4?=k8Jj7xNWY~>;nCWeT>umzusLf+a z-#nXeOTd$4$3gkTG<-Tc!NY9yyiQzrcd-O`zLvQUH<(^ zrjpr~oILT|_4ccs{(`IF&*CW=RCu*b&%VYsrW!?XdgLwJObSI)SKR@JAZk#1J7gZLvWw!XsRpq4?LU@T+7zgSB;Dv$;NhO?@ph7 ztgp7~?~qh_AB&8ekeKRzAoyqRp{+947JhSZbYm0Neq0({Ew{ zRca?}?BQ<7O!k!}{<%-b-p1XXJj`R)Ky<-8*kG;!HkJJp!lRi+iI;Og>cG|7EPnVHJn*Vu6Eq#5t zH(I3_{k{~MI~cehESvG2eS-@Y#y{YpiOG)>3Adf$(36606fJm}8h-ZeM5eGFL9txV z>R#=k9}38EtU55b*B9eqV8Y=YmP&aJX0eqmZ@PjHgrETOSRWoKpjzey@{?klNXH-r zC7b6$8Q$L1cBcBjEVyE8o@D95*tXRvxRil46hvBPTieC8SKRbBa8<*)g z-17n$n9>CRE^pL}!Q8)F9`;ws2r-|syS+XXF&lhLFz;mlthno_R$*wb`=#p4sXpr& zaCjbQ#!27$7brBDzG-u;?4DhGdKm4Eg$2I;6YpGve!;ZI^G8@FFfdazz-%SVyW-`p z#>3+r3bFWK)BZ{=c;uYjyE7DL=2z<}EOglKFz8*Yf&u@mCYkP5i3LPVkq$^hblG_m zR`yQGh-iwP$0-l0?3=%Qw7wq2*=zV1Lrcp+J*UItE18+hZkm_2r+H8);Ph;By$)>F zbCh*+SOXnH!#T!7Q4KL{M`Pvt*ueTI0$k45`3Dm1)}Ph7^d``Bcp+T`y{RpxYwd8p zyoSBA0){#Wv$${z4sQI3+i|CT+u&PiXYQKZ5bk}mwjZV$y>K4+xM`{S<17YSMlPep zU^V6SP-ep9O%;Xf$t^mxTWHa07}ikzlCIri#ZnLXrjDhFfn0K2x_xN>g9y5NYODl+ z-RUD5i$3ABZm-}RsV%v*LluZ-HQ!P{9S56w$oSdVhjd~dCSethr*4@%Ta*-v>=v_d zbfA!`0?Y0q7-N>Z;X(`eV6 zG!8O{CvcIZ4!Qz%oTf0$hu>5yUnxIMDeMT#Ueg6EO&V+&J)^KsMUfu%^2dPQRiRmB zk8bqpMxj8E!7G+QK6d5U%JrRViM-}3-h={f7h-lntn@`~qi=Dd?Q_okX~rI9Jd!0j zbDXi=t*$7`0Vxe{1f|WVRP5U*P54Q}iBG5Z!LaXU(Hk2#y>xl`*=q4Y=sc;{3h9f9 z%%rXRPDg9MX|G6!7U#T??h=BsR>2n2s-PYkvFhMz>u$QZ6u_CDK+xnz!jy&EN4iuy z92wo+UHwbv!JrQF-~OrGc&E5yk#@K>wtNZj)Yf_R!3Z~c$^#?1RZ^EX@(Ech$Aq4j zi_2w|h1z{?5@OgD#i);`11_s4`B-aPnItd%q z?I`DJaG1Ld-;r}}D0^NyIW&Y&>kZ^fOI2X+*mGqC4fBg2t_dwcE@ho9gxus_^{efR zu2O@q%z?U4VuovJSzIKT*O%AgE`PYdnjrP`BHQL$RwKcAn)%QVFO*UB{&Ie9cnh=} z%A3k2C`CDLYL)EqFm*4%5Yd+dMr#k?RT(SydI|7;k#*42>IEiUqG*eSw|uiPj_5UO2vNoc&b^S&+U zi>fj~Eprbwe*x9Z1iVi!JmdJ6BG04Jn&}s1NP9ZHyA}r#-@we$K zh%UxZPaFRkE#%ZM6`J@bz{Xj*{Bv|>j>L-1fI0#J zdOh9W&t`|Yabocje2$_>*=;&e{AT2+<{FWDV^yFWk3t1?{7Yxi;gLd+_PTMnS3{V+ zQ5S=$Wx;n_O+25{ z;-GAha{V>N6n!r5+6pZ^BKm6HY~$rWRdpCMYTB4Dif{u#Q%BQ$pZsj$M>4T%Ar5E9kdsg-_ort812WcBndcFjRcsdG-0M0 zzL;^4dKl*i`Ene`W{?%*6En#A`J-OH3Q<0zme&EF>-vT9zc!J@-w*tj?2%Vb%@*u4 z;Gt8)H@B{^-q}2U@icC@l?;_^ujWVNFNe0dD`X73-_hGD>3l1maFkXZ9N+d>Q-OZ! zaE!~vxbSbky`a_%c){dSily#69~*6n>gR(z84$alw~<^OxPzN`I@tL_3P&a*{Erxg zbfVz~F7)G`s))0Z;9C&ut_edcn!(%z)9l9nQhyk)P~$p_rN?8VnqS>)_)m z|Fe7RwAQ{kVvXUAY&%VRNXYzZ#3z3;lDE58+p@nh_LjCe8r!kTIwS~G8GsmSkBjnA zKDrPJd~*4}3#H@wxH_@613|TccsxnTnv#6buAqcQ$BXizo-R*W59bfFo?rJRe}X5nfTp#2}dwogPsLdesS3IS%?_z9#a{7VOUBl4C* z4*Vro{^mzQ`_YsmLz??ZXlrV&LWlv5?h+P51mo#HR?B2_3a|e8D-azoLbj%Diz39i zDN2r%%INH_ik!(T5o7}t#jdbLZS*B^<|LGMHA7jUxZiFh-AM>(zgrWF+8SKS9nHKP z%9ND*&(a}hqae|+LmGtf-nW=mjjdV>3Y*lkCGh@3jaq;B!~tH3#a#_mZ(y*P{fi=M zwNd(1t?d(4habsMkN;vtBFq|L;l*#di)O^#sE`no7Kr>$S-0R?Q^B2^@yZtt-$+#i zpP+p)eUQoz8>Gve#a&a!(Tp_q_Z4o+**k9IeE(6qJ$InU zrT$J_{TB&e3+6cQ*wvuZl zoFBU%r!JZX4)&t0YdFPaBD63hVRk5b3KVMQnB{tAdw42VKgfZ|-PH8nZ!k}CevkU{ zk5cgeUXo0>1qAFug@^WCVamBy>v-=5BtH`b_Gi=l8W+L#9-bYPwq1~K?xNUWOfgVe zvj__N^k09Hn>%w;h`CXfJW>|^Vbdma2ypdYti{9}Dt(L>jMuG%g6G-(L3P9z?8Xh4 zdDqJ3WPgN|H!op|$kT4Azl%%9$9Q?-O)rMF+w)mm?zlVvfrm5BZzfg_Iq|Many#$H zw^ReGG}n_S%qM`*)Y>z}_oOuQBx*m2k*I8QR9PvC3*Ix?6(K3#{TQbE?dW+`hO1t` ztFimxT@iKNBK1HwYUs(&P=?FXx9u1_v8i!Yf&!Z7{4$|r*dsN6sz7rbcLF$5zSw!1 zlN!M6-(@#VDv~GfD^0^E_5&9r9vB%n#@0r^MB-sqQaN##LuzPz*ygpb^yjyHIvX~^ zYUnxM&!+?JRtp;D-{f39>xSPdchhu7Jz(I@4^K85mk1>9@7`DJqdHt9W)q6Qe$hSs zpV>}srZ(-0amIO;{7Kc8W6)f+A)N}pfC}6CQ6F$JsQqRM3#O~*I9~_;Z?5hC_vY6Q(kuMjgAjsV zvWXe{0TC+RfBN$Odwk2gqQRXF$r`~*ra9v|IXs#jiz>U4O8xMHM?u+gxTop*L|rQ_ zf)smoYjTy98)OHpCMH|@XQ($rm6h%I;>+goS!fl#aS1o2q2_{;}*dLJR+hD>=Jd<-Zmzaj4;$ z`{pk48qo!;ZQ{KdI1QX9=3=4l3dS|P0@ql&XYRQdntD@dAjPi4b5Pa|s(i`SKUAPo z*}>wB=NB9_%VE=8B#%cO#-<*0W~*L=fztIT1eyF5a`0QqS}ed@w`9!!#edt~6=q2S zMZ7I$fL(_SJ9LCfgho^Z`(Q;XSdb zx}203L_&aBYp8p=T-QGJvu-=B6D5~!z z#Tpp(ch~#{oX{d1Jb+mwNZcCd^ZH3QN_xt&^@-#}2Dv!iBkMik7JsVmsFH;Go25%@ z#3v0k?%|gFyR}RbUwTvBdCr7lRJ3?lLewne_HJf$S;m$A)71{#)Ab|2#yi+}p`_(> zLsPn|Y&?0*-*iZ(?(k1RR}9`9f2v+dqGgm9Tc-GRs%pL!6o6CA`v(?5K_*7+85ZsVBbOWpPSK+XJWzc2A-Ty%XGRgQI9y&ynLfOyK3M6I%cl5z@=+IaAJJ&@11>I zqu<+>=~e9qd%m;xI`c|dH!=|XK?@#+-a%Z)ZUg;3X`eKyZ!cy2O^s2>?K>5e@{tymqT_Yu#i$B;?c_*9yGs{{~w8RX|_TU4LrU6Q-d?pv7+P zN)fdxpfDEPh<)a{e}(=kxi8{2{ZS+|B421EXpI3vAKRwIdKTe*0C3%vHz$2NW8qdB(X8N zU;l5VdZ>UyTh{4+h-Q#l{i@HnCkcu)Ao5dV`n!8^zQ2649~24%6SlB}Q4$rvfKm&8 zY>&r4`|NJWf1=ls-D%FP#_O?X#J0#(en$BcM?`;`CdFS$Bue*9mb|NiT!_5hImzokPN1wj437g3Sk1plY`|JRrQ zzo=M>lDa4AuT-Ep2xen@b^MpaxE;X%hc9T~lNX_ptUJRMSVd+VBU(H()nt*5pH^D;J5In3b&ZK|%U z2z*1p+A@goZiZ{9EE&i#VA1EyPtY9u9h*LECO>u6aeW%};}P2WdQcQ@r{faZmsZXj zxvq%mlDVj}t*RE(9C(;Pp^wlyj1~Gpw7lCMU3F{a2bjDUIi2BOjIVG)DfznM_1Of) zw?F- z(>H_zgVze!)J^H0YUqu9>We+-gH8AqdQ6PExybXUwY7(LJBm{6!8Jfowx!4JsD^+|#)6iq*O9hU6Hy@^gGzr$q7QilogtI=45+JNk2nse)(y=Zla& z4!V0=bFgJeG(w{|B&6A7%e^BRB@;UpbZ#^nDa}vCr|qmnt=Kjt=iEo#T$JjX=mLH03WM$1=?LvAVv(o17EpK(|l;S%oY_5 z_(Xei3=Hf(G>`7DXy0P39C!1$ViN4d`m=v!dk_@zO;`NDfv_L3c|3LWUr!;JwxvSU zb8Wpz%nP`J2(jh*=_=gaY*sd4dDFZ70qwwz%p2)GjDZVHb@5wuV_MU9lEx~<0{aF4phZjx z#>1@yTww096LcxEHFs^RE0EXD+if2M_!&%*nCTc-zt{ge8~H*!P%|<7ZG7@#d8y52 z%sfp$vo}rrI{^V)l0L9N6ys5C~Ty~5f$e`@RZ4&0GdDl zV`sW@RXN)z43`kO+`ZG!uAar>+I=Pw(P53yz%(=^ck? zmQxAe5BR@)R+Y-%K3%Ak*!YCgZ{g;1X8NVs$bxd4Sl|j9n$qc5RJo&kcO3t?x^EIH zn()Ksr?J2v{N=X&36ZA4#~Y5Z*M1X*Y-u}1jKIV<;D%(;6W!J|_>H+)w)LUkXU%tt z-i)8s02&3xVV5^cV`dH-W<9)=pRP1<8;eT1dGEq3S(w$zw3iF$UAf{0F6?D-=Pn(t z2M<-F9o2lxY!v$`qE3x1DpuhS)4*}~A)ujSH5_X<gP zbU4ZhCTeeRskc1y1~P_Q)0-0K=*NHfP4+WgZ(8kGWlC&xsK!0#W@M z2V|?s_;BxFgX@|qq9Xn$~k>gZT%!890brsTGZC{ z;E&HQ|CW^UUfHX&^mQ7hM|X$WCIJ!Ec_l=wsXZxl!(CBYG<6lxm3awCFruwUEo18%1rJB2sF5og}wKQb$O?je8nDXLxY)#3LjkG@nl!9{;iK68)D%?W0c%c z)c`Q@43ScIVfWef`tsi`%Gfgz!D3$AkqPr}B74pAhBvnnys|$(usoYv0Ta8PUfpb~ ziU=a#rYu+J7~Xdx5{HBz1+@mimvU;XbleF~qjt{8l9fymGZ6jP=?Y>+Xne>F^<~vJ z2Tl1JD-+g74D~mHG0{Ua3o>*pu_UN`887eSPX#qAl?xw^lU*CT>1ObHMr&BMo>p+G znEkFwil`9&XG=a^IYz|VHs{D=q(Wq}=0tx3vaHYFI-}Y1ocxKS-B6uck#8x=9aJxU zvw<2AIq*;X#ip)f{>^v5yhE>ui%KMzyAp{!VIDiEN1!?AxH9f~%zOx37W1!DE_ zQiVoLNSO1cITlzGJDf+v&TV3wnp*B*rD}SIWeZcl7fIol3|#@S43f}S2^{g`Ln}}D z`{^&j5yOESsZBaN{wyMZh^olFa!oTAXv7w8S#6jw*ZFL@s=k)<>N@^Xh*jC}Lg3;L zPh!e10+@r!j|yZ{c|rHVAo=q0>rsrO&E2|S8Ll&XaRDd z=7I%Qy&JmK?qaa`mV&+4aRO!1q8MoYN>C^%U(r|_RKXV&C1^NfXr;{f<$1lMxq=_} zS4urrBTp74Yb_6WzE*FY%- zNb{kbEV;8>Qt1Gc&l#gYv7jYq(M$(9(+XVV7c&<;CDZ7K&!%mfY;%b<-O5(xMkz!| z>Q;2&=ZQ*rVGRq{x$S;(@G4_-89*ryp{cFz)ie~S^uRpP3dT(2Z2^%--V>o=V&~nJZ}|bLYdD6QJj`Yj)|su8);o2m zNa|dnRR#w>-i`csILi*+{M#pd{#Yd;qHNoC?%F#&Rc*f)(pR`MD((0Rx*hYrl?hPl z31Hf^V8AUK35FM|jov9LSfxd6sLtT0vn6ra|8r^(u@PRotATcPJbW z+UriA9(iAPL#>Hj_Qq2VV(EqH`-njnoaT0( z#(rMEmekwHq}+H^eGfcb>Ra*!Slq(T=tfQtOtpxCoGSbvzqP@O``f+*(bu!6b25g= zXN!Ae)(V-E_=dPf{M!OJ=eqbJ-(;@eg*sRLNl+k8@y(H{?uWY`AK$g8XHyN2-)syzjZAjszf&yfYmx}2Y~J-6 zTiLp}UPGMf`-m52MZyM>vrB>s+iE7ss*BlmHvF-G~Tv z)RLPYL&f$JOAe3q_PWk!v4Bn> z04`J0%?-Egk!gKl{ftx`eR1iH>*G_G*wN#rSBubAo)~Ezivl|ORRKa?{A+GWHZ<~I zdS3Tv&9>cpsN6sZeNzw7&1G0kYcGqgkxInvdBBB7&o!i6usP>2VGe8dQ7pYXwm;#@ zVYtI34&w$4$~~N}EFvj7w&X4L1k@k`@Mdz+tp-JQqQab9AyQ2xG6SK_VX69vf)Ta67w!|&8%^~ESPr+F6uh9FQ|mM5Xk%<#bZ59C0C2P? zbOAP;pMah(#S-2icO!St_zsrdfW{f#Gd%l#MJ=P0x8;yru!Bd4M6choNDx<7E^1_o zR=DWPl@SDP#Sl^Hox{dh?pJ~o8^@i<*H$C~H#VOiUt)vUw$G3Hnzl50PM=zn(e88U zlkGbXf}L|WyY7~}t|JX+YfW@U8n#64{J-@1G)#MNm`-p&Ifg};=@<} zfFiB1y>kHIhc)H2>-*4hYbehr{NfzR3e7FEHA$xg4CAURVkQib*(YbKXjM5t(@(6% z0wY|9X#{;ZnDqoWK8!)8`Fp4IO`61oq1CxmNnRte-jA;u!vy8r=f}z1%73mNd`t$r zTy-MDxfn^fX_nuoqA(Lq|1&-Gc_3T64$Y zJKx#i^U7t)%alHwgIay)i+g4%jPXvOEgK6>A<$LhXWTr5EbT4v7+_USuwa+obdEV| z=u5GPnq+-ZGBM2oM=PP^(#$M>(85yQFN@^yQt%s@)Tp(mCqH6ONeU8E1%B8#EcMT! zoZeG_k-TQ37?V-nV7E>q5$uJJ3Dy^3fe%_5vu!yL&DrKxS4g8=?=kuAsay_2fkC$Z>>oK>GAww_K}dTXN9IXhGqjiOyLXie){Y^EsN zA%>u$o!#bxRb<`i^wcJg3+wYwQS5LLd6;!^+FC43#f8?}wfrl2lt*)FMxLgClnsS4 z2Eo;q<8At{)#_CW?d(?MGRZg-3TcL1#$n*7nJ%Syr!9JKA`D%7#W7W2YOEMSrG

z0o2sY_fOzqoUyfYAO(e<8CaAoO-wRfZqk}yFG1sD)77=fQDpUEA|sC{G}I20iuUPQ zIFa^UQmjexC%$A&7t71lQdY#P^H6DyFS+W6jK}qE6(ZG#1Qu5en4d+t4zQEUIw`Ky zK3LX+0G?(1uo3cRZk{!izHp7)|C;vB3@pq^Sm$tcH{`)?81)YSTq2%xuy1>7jykJN z(d@0T%Z^}ZTOi^&dGB*OJV!1Fk*4zp-R_$sy2Hy~H5YM&35a(liHfNgjhq!}oCVY? zCzD>R2?`=rfB}%GS04;wEohWYp5mJ|E`!nEG$jo@&g0r( z%SWZ-H^>*s<7WliP_zC(+H@2HMduJ`@unk-jA2HQWFHb@X zhi?~>8UB@QrQevfk6!vEpL(c!VxwCNUEh?tzfH}8g4WV%tVlUi0|1wgD~)}E4w{sd zOFvt5a{%#@iK~AFw%A5Czm5sZ)E2#Mbs2M8H}4*wPJC9bS16$OGl*|E^L`YE&#p9F zErer8ATMpJU|(_Yc0Q5#xff$yD8E^Wv>hu?B4v6^WbH?1f{xW7VzOd&r6RHy^GF}R zn|)z8(q}VGbp@}0qR%v?Nn*;${Pv`s)z`z`DL_yq_LZhQs4z@8V&K$z+b922^o_%S zi*lJYG)vSBo%afN|TO$TT9V) zbt%e{<}0RM6g61iS1aN^h*1I1yIZq7Y&08O2y9V(ZGh9iGSBFC^Ypl%Xa5TSZad$Vy;&Kxlg;0t2OjJ%c$6ZZ89N&A_*IgK&CYfeJ{Mz3 z5^_zo{DAXk<<4|C@CwIEAXXzYR=OF`0UyU=rz`XMf+(5z=)OgU4yf*n&`n!%=+RHz z)Hd=KX2^NZ+mU?85!3C){&7gM-I}z5lsssr7AiBrK&0a=RAHyVJZCnuS8zu3O`}tV zS)^&ByiZ}XDSNy9i!la{VkE`&ZW6@edx^?aUXIjL&M;n@GEpl(FJlmXYt^Wxr|QOV zq}rI%`EIG6ieahnLGjWE!{R8*bsc;&=V@)|T7;f_`yk~DRkCFVPpe0A1T_+}YmUm> zC-(*C=RVCde7oVbDL{ou4zn9{VU43fyPh{gQk+N5FKeYAK|VL&jwl6HuulV)*4|pr zZLe8v))rbpCUE0hof=1cj>k`xjhnMPyHY$YRjV^YqG}Aw#++T)lXF8uq&}CU2s>+o zxBHZQv~dLn%u&Za?p>?Brrh>hnN*3b{2a@hk}nfJi~BoH7rNqoLOa?x ze5n1S2FEDF`=O-1*@K9s#@}f?(bH)mLNhh1i}9S+2ct}+f}@&KaUq^(z0rBXpLE@7 z!N>bKP6E|u#Y@bovBDAspw~X-u}>q62MLWyglCSuYb7ZC1r=SBudi4ciZzw{yK={p zeFQ%2OugV}RYU;%8f?oJvI`OwXuRtc5aX3*zQx1j9I4mCX(()uCBLZ8!Dm?^4|`& zCa@zB>$H|E5Fna}v~*+yl}{{Nl>7CXC1+%(H|yPIl0DI(O7f>gLH`nmAvyg-$4^2Z z7l0QGv&LSY&cB6drc?1Yot25Vk-7k58%vFN=WVUn+J^3|&+{TO3x=F^0!NZ_%LOu!^Z;t@5U+@fkWjkgovA3n^TP=Tg9?FP34yo|O|KD~uR z;>#Ot&D-Oci%nWKY?^&6J>jz{)js*g|)LG=<3!j)5NRl6&KYITM#zp zQIQhNF3_R(NoJpGPS4F*n#dzkhHC{{rGU{i=hw0X$LxF!hTtdbqYC0d-p|BQA-hwbWn=>6qE+ozw!6??y!ODj^GLU4nd zossmMd$cTbEy!!d`59+rYu>Ky?TKWiYS)OZzEyB+ZMKFR#L){dQ5zI8=2Q6X8E%_a@}W3v&J(&u_am@+$14-IQ5Xnc)<{7KRo z!Z=6^^~A!Ib8um(re3-=x@a18Z5cl`f5V_f8%9&&tfa5YWA3MXF!jMJfbJ8kTi#QR zK0(97`8%tl-lVjYU8SVVs<2 zgAe+=1nCnB{DcJK=c5A{xnm6Eng=-Hr?18b?PcJf7U5XHd4otEskA)YdbahVXoYy* zPd?PEuqmd*mkOpiW9AB|eL2lRSQlQ$5BvXN0Rr*;p9?UXD{Pq$q9ZlNP$B4Hr-ZeI zPwU@$A06t54-HS1Of02Q{v=;x{Lzf){d57;-`nbrUOZ|c^bE)587nfY6LoE348*nB zGd%)p3X`*Y&86o*t>S$SJmYzV+Oz7Zm2~W`kO!{_jyBNkQ}Ko2jnuG-x!=Oy4Jg|~ zKqk)PDkQ=vN`*Ez9U}ouxT7DBi@92C+q7msLE-NMDC;wCdS*53!7s5nqI6FOEdood zTDKuPb{}-V@K_X5FmeG4A}-ZZ0b9cX^X7d;X=%EseE!bT=mMhadID`fMT_DE1)ncV zK7J?P>AyO|TuV*UDd6|dTy-E zcAj%aO`hXY@Y1hDTSPM%I&6WI<5hDh5iB9KKf~&VjybxW&B@0AV99#~TH;9s7b8rY zjwm8qd!nZnu&8h|x75phf(yH(?xx9g^YAGefT}Tapr|6slRjR*vGW{bO+MaBfTDY? zNpDI&11c1)>&Ku{e5%wf+Zu91N|6Nn-n3w`osXo3WT9``(gNh->fQ8*h*mNY43 z+eTJuJFgS*Jt31YcM9{L)&RM_`jY1cDaO=5=AvZCi_d}qo08Y9qne-gAW8c^{MG4g zPMAy%oOU5)yFTQRogjWRn^hvI;$Fau|-s*~aq%m?bv ze5Bx-)D-^;XeZ+as{;M!>NFO@CofP;lBRg#$o1k)V%(4W)BGSvgnZ#oEV{9) z)ptj3W{+)2UdE+{8I-XwUF{H1HLT1yqy(OK3_{y{CgjyIehI8g8+4P=%Gb2G*}51K zwYK(CrD+H!&>9KEeMY5*yvy06wfDk{Cnpx^;)X_yYZ|5sZn4gkt=Q=kDVsubzn2zM-zjES9Fw)*MN5*b!G%3(r;+W`5S%WFuv&o9BVpM#dQN zT?b!RQK@6d{%A-im3{{Ys}CylsdZImK@*>?s+<@b#EL9f?H<_dTZb0B%>R1qq;87o z`!Rhz*b@B`uE1-49n)M@Q%3`nIx4{>iexRVU)TTe?ZE9ocZqLnwzklDxsoY$qNJ^5 z^DwpD6;^>FZ2{NhSDejgQr+LZPKJq7ehSbj3SFQ;cRPu9n(&^)M%F+fWb8KoOv52=d%AayhF;e9kVvqyg6Jy+pvX9A|l&+aP%j;5n zS5sA(UQbK_vw`U`+{sbB+BKL>*Nt2f!;;ipFeP@)!;Zw7ddk4F=M3EB-{SxfW?- z)y^BSgtQy|-&V6{$c83ud)#VsObg)$StZoU-1SAOxQR4rlPVK)GPH4vZnFt2FYB3b z%hL_(r`wYFZ5FQZEf?=LYv3FQFWl(qAbArfm!oTnhE2e=TSmicxuJwLsc>lX6Yjsj z@)*0W|bFKU6eX8?EncFB{ zk=eS#1ZKrUX}n7{v!n>_V!XH;o2~#9#ygaG>XNH?Cy%msfAs42fuyZhmpG8?71J4# z=@(ZOezbm*L|~zF>9N3nh#&mt5JA7^z!=2^3UuBA{ zAzYB=m*w)Q0SP0+wrEJrzQI)JGOOx0e)P4vl2+q`F+sqi{rir94@P?@{$U~3zh+1-e zL%4rx50b30P+8r7gvi!fns@Q^KAkKk8!QBwOfBr|ed_+b?3!;{J2%Ekd4Kkd$ZV-- zvhfyL6sv$D)*L%VIj0O-H(6j^pj6i@84S}?L!|3Si=w^X&0V>hM8X(9+dp4K>flZ`b#jnKJSM(9!B&qjpM$_P!SSEur-@+-AZ+A$~M>j0W7r>&@U?GWjLDLfB4%?R*91x>$+J^PJ9Fb6yRy#)1z9?rl(1`2vJ@= zFK=av)~UE3X?3UdZ)r>;46osJ9x6|K5r-95Zp!?W!M{lAMsR6N5nuz zRhFT;@oWR(V9S8)K486Xvv-naDWqhVM^yN_4c|nnXG$BYT&;=m&|dq^v>YoQ$hL+l zeB10+UDn=W#4Hwyb0(U~xckL^#`~^`RUa4>;dXqqs9d1VLhjefJ`ImF{KF)toeP^6uU2tb7UwpXVv{oZiMcGH2zE86=QCT6&W7s0;&xOq3+bC>s%_x)YWL$ zhSl6x>1LR(W`*yisJx-_hM#A597OIeHp+Bk-BU8MlhcIUPZe2!%Tv1onmC+=HIK@y z7Ll!mhu(m-5G?^2hwOLHyn!`RikCCrP)!1aC=5zqT@CnvE{=DheXkO4x5Ss3aRS^7 zbeqE9Nt*|unYXZ9Fh=WF-HNMAe*DP7V3cjedJXYN^?`|cAf}-dAY>xd?OqL;=D3NH ze5S?So!1udA}3WK_tp@&U*9*wbg0$q<7JIq@%&kN;$-yKgZRJmCG(skgBmlO5|n0U7%D17n=S^n(WKeF7*bW>4O zBJ*xos$Fvht7u2BeZxKyesdA)AyjLFqPu{4T*L=qin{a?WC|Uq@WxWdSmFatKumsz z_Xb{O;!?6*1r=zk7nc?@VYl1#MD1&rs+{;WateEkaqRkju3Sr_Pe@?qVtEIy)|D#> zHRX5xi|skBF83t?hJyD^QGHt$QsMVQIdu26+XHR~Bf+&{eVCrUevv`$NV-i!XZP-5 zIa2x5w!S2g82 z6R?I7d)+Eg*Zb=>p6s6ju~DpKE(lS@rIYJ``)rIm)Qt7p&ckxuY@vRqQQo|AZ-8)C zRrL8-v;xyEEXI1yBP79VFQfYI4yLX}yq28(Brxth1^x`>&h3(_$5Q)gUAfjL%0`Bs zvhvfj-1Prp0ePp8LVZMMEYWsq=VpAdJ%ZNMP~@UXG1Hws{R5LJo~iGiR!2(%Zvg~& zJ^gQsD^FH8o2vH|weMW5m#7~iqulDKJwXU`Q*d7p96r$Mev_Sn1NU8!zsA9HEBYDkk>2*Z;tiDYEscZOQVONu-AM{QDBC2k2-v9% zlz@LL)4?nTHxH8Cp~AEV%Q~cZM0RW7vwF$<+i<=Ofn_ouo^!22JqE?Jx!5w1Y$$++^+nL2w3diRw}S$B{D^K zv1rdKGzb1=dR6d*(G^U1KIhYLrF4OOhhFwh<25sR#ueY3r6dlosDt*Dbswh-DnL$4 zssoO_Pmb~-DyT0yIa41c-9$jtAJ^0_m^k0*y^EY!gN)#6F7sbeBvv$@i3+C<3Qd&{ z;+N;d4~`n}=To%W*S^SDa! zNNLTuGD!n)GTySH0XWbR5w$ZX4^9QVnvu8m8Bjwn_nOwSvm}UY-fFO2szNMZlafeg z3esqKL7kvU{_{sx2Q2jIe2i+q4Va)Nj_a$WYGLp=oItmlL?cUZZK z*)g%AR46xmF1L#nfNJ?h>+8;RYkqC0Ls|QJ?_jc^6#se{V&`Oa*QZc#J}qn?1(CK$ zSRy}M_pO(XGG?&B)stQN?+*t_h!UnC*|i)qFUYO0vG{8<8*Q@m1KZenxRuy@bsMNB zHV*_BQ$T%V2vH9ZZHTmBaF44GdRY@ieTh}Z3NXVTLG14FZ` zz_2ChvLIBXa^ zyap))9t$A)kRc$^lS%&7l*p;!0lbR58nFPn%e9j&w|o@y%+L3AkHrTA=@tDsSY<2H z8%p*Y=4th*{qvu&J|zgl(-_OpWZR8VzYl42c7?8#gP#DsGh;m!H%?HNxd|>K@gu-Q zA&UH|)%X_3ir^+Zr2j{CX_q;y-1X*bxmzX$kYnT?#gBH<_S?SL55=i=_iv0?`gf|` zrAiuZrQK&gT7+d;?G?{O=fQ3*Aj0^Z(9fhO=K5}ir`ZZTGWfe{#(Gbp?2||qT(-Vv zBv~kB;W8HVlFk%*c(+ZR?$Jb#GHk6&43^w(OnG*<7q!3s{q}yTF-KZn66*vkqiLWa zV0|eSc1CnxeJ2L_p$ivv@1fgYaN_wbAn`6Llw}oFToFnVNA5 zZEk%g+>`l-Q>)5?ZWaStNQ((bJ8XG9S3lhG=@;|@F&qx@K4-5oL3m%>T#ai~`{&V) zIm#fo@VLYvVrJL(z4I5N?wg_AM8D(B-1%H#=Oj8n++}yB@LkK;SlfsE@hC7=n$xmk zO0KX>pGZ4kSD45z%%Zy1<$5FXCPYEB-mwjII_=^AK+iX9E<-|J#**>N?@7_4j#Y7} z?oK}lI3Fl2R_{Da%4uwH@QHRWiFVDum&6hoGh2BGx`(0OWsPq4Plrpc(R4i9eHiKzVC*Ft=j&*IlgY*gJ-NGw2aW@hVX_VMnH=Rl%hV+l(| zvI`8M1Udr6K=e*2O=gr^Xst04*j|z~>rNq{-Zode^IO!fxvU~o!Bpa_W3(t=)Mxik zKAC!8_;i^qC9(rN`ZJTIaNWWdbP;jLBV}>uq{WjMX>eNpRazE`8_D`gruV!F5)8EU z&>j15Ph-2(U^);g%Ufo2m(^E284>G#aPM_PwOF;?6tP*T+1e`?*@p_EsvkRTsWm?r zyhGk@iJqWSu#2Bn$(?eN3Vq>g-xU8(pCGEk-W(*7SOn zE(M1J>!ZSenComiB!N9vG%YhM!>xo|5H-Fun8G;b0GoG_lXul~;1bvWtMs|JqtLIFr zT+=WhQBJt3sj^m((0cbk4^n^I0}HNgBjgkTE+2u;7k~>iq1w@+>ldEZ`BvRaH8=56 z8ts125yLjST_NNhw_NN@G>@GR2ue23`w+c>UutlM^auEU*vcOYFtj}TJ}~UQ?0rLZ ze>Rm4my%(-Dclp4zkbg-`MaD@mjchX@^O+r*0jI+OkEZP^2OwTu#w_X*1?)JZ$vtHgB6Yek{W9$u;+}Ai8 z#~O=(f zrqe*1HeLsD>#Nz=5U6LiEvirQW5;^mx*f^7463n4CwK$X%kN~1{|8oI>S1?1o-S%w zYrp8QbixiR*~sn^137v@Hc>WN-GMw^ShG0WI{c6lnfhjA( z-p9qLFGu=p(9@?!!Cn!8#IX^oaa{|DcwTZw05l!mDbZKl1cRrJEm46OE;;|ktEFwq zw6eC_cmc(8bh$gt{K4O`zdb9WKZ7i7`z6;p7C~=fCWG$}^;GSy>{svXZoWOci;3Iw zlQ$GWz808-#YT{k~LhkPtX;rGp`M>)jP_rg@_t5#9GGdZ)Q=HHJfx zjhW0W{N^<_Cui-qu)3UQR@F5c3kk2_e8}##Ce>8jbDEH^=2=% zN+gE=w7q<^XUgv)R<-(xt2OYj2B}o(HYqny+|;%wUs$g&?|38Uk0(a^=52MKgtNY;d)|EkUfGgCfN+9gIjgBg+Lt58 z)|1~9h)#L)mHiGwh|QYTsxXINKZUNc$H5xFbrTeM6B5jpb075rR->BWE?w)BW1gLA zUH7xJw9lMx+}YaR#=%^ABEK+~f1p3UK`(voqvkyHj}fiyKQ08%^c?D~=u_Gj<>wDl zAliNA%f9l9`g@@_6ckvN7wWa{G3~C}ZXO*Ng6DIRL**TZlt6{AgpJ%XDKyc$ihTz= z+EZE4hN|k~9aYhT1D^g5u8TdGtXfBS=GBz_XmKFl+O%waL0&_; zSX&dJ@sxV6VG%RXF5bww6u)!ooIuugra7E<3de>xWV`mHvOCx+NwxMeRQ!Tp&)Pl% z7IKm=X77@uW)U%;c363FzR;i?d{ei0KR%l7JZNd9UO6g}iM(V{5e&JT-=@M!r|T?a zdQ)ef3$((wQcWBZ={~8md@o>SJe=d}$Z@Zn_ybq2T*UpXcCxvm&b{}Rg3Uy+FQ`1+ zO=Py7i#da$lRr68IWJFwxF@+c1L}V!#6tW**{>Md;Fm>(ZfMv9k63e-w61z2s^l9; zj{2A5>iVDp6=5EJmJ1}zS^%lU+Knw}Z~TBXB9HS4C3fua^%>y}YJnM2;c6lURg5T5 zhwDI+=s|+2NniJM{l{C_VE#o%&0NCL*@j=B;##7igPe&8D+k(&p;NTuRFyQp1t2Eo z#32cJl|3kuJ*(eaAu>~!3LqAQucGeCMB%z_Pe9$dqw}y-ErNf zGLSiq;5)qw)8BGyPWBUag-gzayEdCoXjZ)3pfu$wA#h^IHLA&5$0obB28}b*iJ{_0 zYvORzDO;e&(dXsp{D*}5DxspgU1*HaMDtlB>@Y#nwRsYLH7rG5 z*LUfLAnBk{LT@IWg2XQRs4MU$npLrc0@RCuLb~*bSi~{Rqzqy?e zdXGzEt55UjR!g}5lH1qWC`w+ytvB4`{C6m<+HRS~3{dDg(JqIB^icz@6Yu6ED1jE_ z|8@k1DWp}Z%wnU`BOvDA8H)$Y==7DYa~%eGBK3^C_AN)3H6Gs&Z6)Z9AZ&hb%!#3D z^W2b?hEUJ(22$IFbcd_$(X5NvGi*+H$nQ3Wn7%p&?dsTNzv0D`iWEQf0PdpF{KRJ7XNM6ciy!Yw*6y@Fa?Ak55U6Aq+6^CcFDGB2bz z;q>HZCae};sIhJ6a&`5-XLCo(L3F#^# z=`7P1ql9g^u>VP?B+>7$zm9!3CP`GX-%XinkJ{<`?REC8!6!$vTRilwr~EUW1gCyq z`1$&7`yWDrBZ{=9L>sLIeX;YnEkRQnEC04SuhVi8M(#(H_uAS=v)!h2NO?OAZ>F0P{ve_#tJtIXp*G+5+|It~_VMf=)FBaDQ%W?NV1YKMoyBGGXddRp zqwlaQylLajAGANJ_boZ)^2u`LM7PlPqJ!3Ftyq_4X^$sV<&Z(O2fGIb_=z^85f>K+ z7b%qwI>RGFA2eqRo%RsW`0eS0EWyd1jT(9WjZSZW170hQwz|1IIG6G+m~r&lj>$eA zxJaH(1dk08whBXymJkBQMIFaG_M`r5#Nw?RqDsD*{|QV{^yU1)g*P6jeIiNxE|VYd zJHX|1*s)GMZuV;9$UyW2Jm2BgL&ergvv|*6;(r*-%hMMigtAoZNCGP z8!KSLl#i%}N;AQ{ZU;K2y#Jy%7^%dROOMYHAaSqxLLSW&WsBY@2G_pwixU>8&sFh*mquUuWAmFoy1PSQwx-IN1u45!TKTlb80hWp~;g#5Ecn0V{4m4V#m%xFgzS;h(Lh@Tgd zMo7Y1A?qE&(ENsnTA(7LD4sd@wh&QUyRYPYgQ(4p96}xHyCCG?)t9U}$_UaVuEUgo zcV2x8{l>sFrRq^Kp|~?@&Z*aq+ra=@yL#BH@OGw0XA0D}BS1BOZDQ_=gMAlml3rrd;?v)al zwbTyJb)-zW-`cA(snG}x%!LQwh!N9*Lv0AV!ARA@=;gOJ;9-iO1?Sh+JF^ovHS9jMRxYe!;4+>U&D|U=`nG45I!v zbE*{RgRGv_ahYqW*4OtpkH-VN!rgJflVp9FigUBYg{qg&Lil&Sx-oIscd;w5S_VD< z|C!*{Gi<4KaqFxf<)pdUoWEd(t$>vvyn%^@THoBww<>z$4ycC3k`i{B5UfxE(S?@! zA&RU2rU+F9=SWHT;ZA#-W7UhhlO|S*=BN%w&jwS^xr2eJ8P|K zvlY5p&{j{H9~=z3FKg&vWP8M#R&!;%1xoUlF*dPtkInsSzwjlTIe7kQA8~X39du$- zfWFz~&O3`ap^m~)sWQ3{)J%64f{0W|wvndFqUv*n8FU&sD}uuj(-|FXo^xwJ^`YUv@5{jlhSrq$>~+u| z{X$L#WJIy&qeT1+u047+tZjwQ+FAOyI>D9ggBVzfc_Yfowm;T1;dJ3hL4l?OJhWL8 zK+kR#-PKk?y&=?g?=%2Syemh^XH6)yM_V?E%vqKOB@dnZQ&9OpCq;B?j|e7s9md0n z(j1raYsBfPilfg@D7XIee2bfQw&LVLKFZ^Z@=K=5;74kvT)uGPn;G_;-`b+n9 z-j}Ge<-zqkuuysAS!2g!+&;PXEuqwwIl>(_HNMbq=xdcjm>;X0UY21Y<&~O--WU_b zd10!a1re7zdan4f*jQVZvMuG@OO{)IK8`to`^)?zFgNl7RD~i3fBSEr5(@|I*lF0| zlQRB3NkIEaU%1JMc1yK?4C9_n{6SWr@iJ!SZ>T?FBg}ShTbZL`GWQC*ejhdYmI17F zUxBRnHMbL9{U~QM6RfWk199g^B`bSXeU=OCv;}EW_T}tV#OdYYKG9k7XgkiEdZnPK!vsH&xY}7M0!_E} zqP8!>5kD8HhS$1TBQ2mlK(oBv|HvErQ=`O&S~1HPv*LGt2x0U$Mh#BcFIdDRHERCY zAMIxs-e)#ADI}Sv-OjoUwG~I7^{34P-4}77mFR7JQgS;xTMGx=8lGC$k3_GrX->)4 zM=c?nI@2}5@cj|KE=R)l;ka4kynDMRZfd3F+(L8{z7ErWk10^N!LBHzfq*k=s*T;S zZ8eBj$HLCsD=N)-f)_A6yWFycoD?M;glW5a*HOY&G6mZpZqfKE6r<>A9)3bmon7pF zgaS{GJzsu*GC2}JU=;Uu6v`BIXu6^J!30_XD$(%D~S@u0i-b0q2DnLd)Y%Z?& zVxlm#!g;>zy0j|v;=%2{T8Fc^1j|Fx^Y4C0mr-w^zZ+x?U8|+B7-9r%;urk)&xim| z{W~br(_QWbhcwNMv!mHs-K5+3`NUumXpE7Ivmm|LaPH8u#+!fXf?LhL8Be6hT26=HA98*3w{_HPa z!GdfR<8)a zg{dpCByrk{Bdr5F@9R3)?c2>wwwXHjJc9xXrMERw3n3&@=-?b6o^!{nhbtVExLn13 z{;Ooh?2&$htZIa+2giJQZ+(Hf({M&D;VTA+_SGL-XtJ3cM}JT*;y~6F4~eum3DTDc zu`l@1eg2;_u;Blnfif>tyM9wQitz*UM*3A5y7%qo{^|MLV4r}OWoyliP+*-Hov~H% zF800#HHtPek3;P6@DlN9R$~2=ubD+bzRoDq2z+C(=x=i%;q+)_AlTG(Av-tzdH?=f z>4SW?$UwS~V|@J?M^wYPq9YG|Of&k1!8@tc5o}sEcI-vU^fm*Kd%Q+hD{MIaoE6*RLa^4(7Cq{)44x@w@;%u2}&6czU z*FA)(SPg{jpvjN+&ku0a{(J}e!rmu~+tS%XHJ_fqdCE7gheX;&Yl4V*w z(^-0=nl_=0YUUy%q@vdlw~KnEF-m9On3~I$xc^BE04rXl4y&Z_> zlc~TR9T(TD1ocUCQt=IxFP~| zL~iF}Wn0rYNb&FP@?eYbj8DOC5bEKc6>qZ6Et?M!AK>KRVK&Hm0xb0sfEshe)FWNZ zZ8q93g&|6RldoJmFW%}{oc%I(=*LDMQQn`r^%qE+K}k#JAI=`P0no~p4qJ?+^l(1s zdOpF3|DWj}#6RQ-tdf}(+}ZNALbXS@zu9{xkBbRV*K{J*t&- z28}0-p7P@adDx2QDb(42YmwE7FW15cA#eKT%mUqQZS&54AGq~}mhxP4`KV63eM#Y$ z0wfP{G7Cm;YBpeh2W#bF2_XU;nRmt7(c^AM6>KUgT1CurXP-y6cq4kp$0cZ2N%XRH zg{riYL;j&4`@`x`2wB^2B_U5nw608qQpB_^>mgeIWPDc; z+FxZPz>O#})hulMR%(CxaR$K{E!x<jx0z}VKt;Nw>( zAOHa~U0X4)x6{uQh|<{+UNH28T)3jXtlwd#xCT6G21(AH*z#QI@p=`uXTG{><#eW< z@7hITFRK{Wf9Y z&wG-xvoij$8;Xr7%Pf8{swSJrqn9tbkU+_7-(>`)YdjG$lpa_Wi>izLWWiTmK7rX$ zlGcE>5t&=O;M)JwPG`=+tq+M=zRbjMFV3|GJ|u6G=z-eiZFAcr2`fQFbz!?cQf#6r z8e62)&&8N%??F}{405C_Mh>JHWa)Vcz3>T{0vZW59w)+sura#-0*-FTJ^Th;y@ut_ zN%Wz)&2Rq#Z(mgwT8bZE|M~D$B3Q}1CU}7T6|OuK)OTtnvu_nfIO!D2AP5 zVPfSp*Yc*Jz(p^Yb&T@x2DMA=|8;PRt;TCdHbRii5R^UMYGQ))L2QTI;XCU3Xw9W`Xna)A`x z+YkE-3r6RbeS@@vFiK}s-|3k8{X(J->YJU9@2Sh3j=gzw*R6Ye`R<$IboVmA{i|*( zN>IK#GbG{$+-@6IVK!9OeGe{g8;RfG*$Gz$2`qXiz5lTphC-&u3Mg2ol>U>`CZ?J= zzb9?5F8i!Ci+kag>Eo6ww13VMo58jN?hl8G6&7}QzepUr=v8k}LirQQN^K(Kzqfyk z6R-2XU}-KPp}v${Y1y&p=u59d9kaYbx*X3AjM`~W(=wi)!;>>K#U*1>0=C0CqN+)zivsO$Ku(|6=xxqF{xFc_r}mTk&sWDUln8&wk~;Z z7DoAWjLrlTEVj2)A^Ptt{dx;Z-UDASkH^j;xnPVjL));n#!bQB=bM<&&Z(LX!t$cj zwf^JDiGeC((z97zI8eX z;#WWlv1|K?>O9a$^i0TCQ3tkKyxJ=6-An0jbhU`U!3sI`rW-*@8o9b`>vToUzK3h+ z%Yv7WLcX)kpb9TmnX^NyvcM`)2bvpUvzO%3U7E1n>OOeQQscoN` zKN5BwTw4Ld$OX@trm;Oq_IB?&f{f-IUp%$122{A~KLaGn&kV$2#XbflUPrj7BiHZ- z?ZIlJmG*%2-r4x@kpNj4|1;aDJr;;6FPUDQy=Zxpxeh?xf@$^9|BDwe^F>cZTRAGo zoQ#ls_F^cc$Vv|9<0Q}2g)}&bdM!FdM}C_O2y-3;LX4jrbHu6U#^ySY?@gQi&!rXl zA5`<#YDAh~v4)v<%}xB2hmSQDepr^GYjxpLsa|h{OSbH@D5${N4i=4&#l&^06q0T~jmeKeT_ku4{4hT3)&03@t8!+atNwl-^5IVbrzGRS%W5;x1`J*yv{~)#DJOg2 z?1{R9)G~V8)Ke3Rq?!z!ux&t$aHjscUJ;#$wE;j{QRzDSq)T(nyGi4$F~^kqPIH9*NRa6tmE zp=_eRDZoFLYj()yQ(QXvHM7RLKcWGQxVp-p$j)j-`WRs9QN31}US^L1$U_p6qnpD> zTDUXK*gOnk2eUdhGS-f~kni4Tg^?{|!U!D=oSa(3x?A_A_q!*BE};Iv3?n(caGkNz zOBtB#eW6IR$K)7Ta2(8p{Uf(iJ*Z{BsVj&%RE2-4Db<@xZIWf#l9l1W&}f6Sgy+SA zKOFpek&jaZ!$1E)EU_&zEd}m5hIIlNDE0&)^Oxhk%ZC3B4jAthDX&t_?7o}HaJZ{a z-*DU7Ya)?0N@#mr$Dy zYgr`Wd;Zfku@6-mDQ1{tA5OJ>mO*6eF-7;lX=*cNT0jOm?in;PHLHEYm9x%^a%!6o zxZhOFjQ0Ygvk&_zE&~QPO#WPPB@(KBt)l{-*tF_4GSRai^-q%RHY&bE?Y%Y&;hMP~ zDo(KKIo#2gGJ1|to^u-tj zSt| zFKSWCg84p=d^LwT7*9G*D)s*U8Qq~Bd{?F^%85X_Kuo=mFZ&a!&y-XBue-e}Xm0IF zqDIcIcd5R~R@jAz5m$>=jb@8wO$I>&33^>7IzRRhjJ z*3Eyqk8|&PU5i6cj+iqSwl$;0ZLu4DT$hUd$Gv9c)h~IuofFyz&sy$enOEkW=HphKyqx$^!@sZTT8>F0*WRF#PM>9QJ zl@rQBzx|9@Jx#hxqI=nrKhU(^l+>4@t+t+QOoyJKnK3%rzPb22K%F7rXQO2NmUBqX zloh4oAmv^k2=$su_21#U#~Y8HM6VZ3Q6-PZdn+N`H{5CzX{C*fL%gnbj)W593J>>C z>tN?B*&?&5G;7fgYpK_tB5aJ_UEHlSA8&kcZNcO5Qv{SHbkI~1xCRIirCuQ*%tb$Q(>T=SS@f#QJf@2b(`vO}xfi@V^fvA+iS9SzQE95%n?HAanm zx$JF<*z`sG7oR@g&vO_Z>uRDtzpcppZ9mz1^n-m6plzsik@?CQyuaR9)aBKwP3Ra+ z{cwWo8ST~xqb!fAd(~WKVYf1HD0Vp;UB zT@@g-^e^f(VBpA9NnVJQ+OQ;5z5-?tR zEdTijyJg04k(3Gx21~KGe02_|E>(4IsB&6@jcBn|TTZG}awajpH+h{vV2}Ty7Cg3B zYo&2w*S|hujg<>QZWt0le+>M#^4j^F%hVPUBtCIip>3vvq=MdbAE%wLjwY=_lgxLH zM9r-L>eWPk1Q1Od$$W&=YDf~_jU-Y)!=JwA-%{h_j`el!ZKp*rNaz!5z%x9 z6BF113c0289g8$!dO?dM{$&U-<58TxXeW>5q@VqCeI!Ro`WP6gNoZrgH?P@A>(PDS zDC)BT^Hk9&5x4SG-;H`Hi5mv7c(dLcq;sRrQ7&`#DIQc0Fo_=Y;R@ZWN!VobAkkQ| z5Ou#ASO%QsV*Rke*b2wnA|&+>Jv!0aKoUaCUwfZ?jeu+Cs>bqE|}dEgWeyD!hUX~pXrh> zW?m?L!^y_EGK<^SHgb~hVLEVvrZV>{byOao^G5Uuvi;j*nj(}+C(7Mtv|t*WId2a3 zGjSLkT!xp$km!B`2Gn5>9pLhx>Mk>Eu*+L!pD~My>?z^*UDqngHMpGkg^a2<^Lb#P z2b8pW4pMQpQiUP@=O@_|5DU*N z3_EnD9xH;T%%$w+i+Y-Pf`3&3IGq-rd7j3C+}WQ_d1r2w`R3^q6}iLSP~#;9Up*GQ zLJUdLxB}-u|AcmWxR|l^YWu&|dF`?CDm!^=A*s0!gVfGRjH*Q#b zAn-b3rUFO5P7l}SN%xX!Fhz*GwX1i$dur$?iye#KGuIGZV*4o5cz;h+cw^d#KPPaJ zu*(@0whYXiCerUS@z#G?StbNJ*pUv%-l3lr>YUDL)5ma*)k0y8wh$phvx^MHK`B^m zT)B#?RHhl6RTe4uR<)tZ5xKoPLQoxkVEt)fQ5BTY!pCZ(103l~mC|WDbt+LSeimvk z{VOVuIwzoMH&Ouo7-*B0D{DC4m7A(QlJ`f2YYS)2F2zBq%>qDeqgZ>ie4l*zugNbx zWvWwq<5csXfFxGQ@m=e;$)7#S!reAvLOs7(sWmcR?qr~U49PmU{%xr%T6E>=qC2G- z&pval5G?(nO!mr3Tb#jvIk|7hAFwlfKO*yFk-$X=19u}ypWn^lktQRLnbP}`9nB;5 zMv&T3g}h*jT0COIQfCGY-e6#X9DKSoB*KlvJ?Ei`qhM-BnkM-Nh~c$nY(h zd?Yvf5-T+Cy|!Dy@LuAoxL+&Otzl;IZ9!pWy7Iq#q3djYUmIMyy?p6qMq}P`EiBeE z85g}8&~|$9GfZk-TBqux8I!x~QqTym7(427PCAi%AW^pXUWwj8%hWcBNQd<%Qg7zx z-A+`AtxARPLEQrl6-IH+ozuDK{P@_gClFO5w_V1H!e$O(64V9qZ5&(AAm?6{E#amo0-tjMhNG(_8GN2Zx7o<+m9vST$-@JwBO zM?;GFw_kChCXd#zN236(F1y}Q;M9%()C~ydjJ+HK@N!D>iQKHT%8hN63GQ5!S?e-N zs<+Z?zR4s#c*yY}gjz8zvoTFlhNduH)+MR=KwqY?HU9grG_buoaalB$MpKsbiAbul z$0O`!$p%==HUjAun<4hqO{@XctCFd%+0tshSE@I|kE@H}gy+pL8k|UTB<83)ZDJEN zOY^H9iCsO-%|KdKNlihSb*o z^P7Ypzh!^Z?z7uU4JwDaAk$_V%8LxX&};#(Jem_QCTStMa6LhH4FRj_^?`FV1?=YU z#2J~ln%#lT4G`d3YPq5m8tM4^H#?j0GGBs!qJryZPe2t%am~irp$C}xKT(2?=)e7s zuPGCs6r%T6@`$Aa(DsVBn-aIU-C89E}-?f}KGb)w^Xm*1mr(e+nVMw@l4I<167 zqci3e^01~=z@*Dc5hn<(Q*tn)UG-?ZstCUs?3pu%lGoUm;VCtOb9c6o2d?@>-v);R z9zubT{tu6AHSNZ};O$faNufuU{(jiE>%Kj=DC1H`)w;C*E{!NG@r(#hR9jxsY?r7p z6%n(i+M?c@!^Og;s-yKEWKfpm-6*q{OiAVd#DU;xiK0aLW@R7&v72%+15wO(`5{;! z>iSjucMc@TDh}SfAB(21?h-O#HF*9uWuWNi%H%UQ4Y*xJ{nek0eFVlp?Oy-75Ve@bMIgC zd-JixZ#ieLm-e{W>~lnAw|#^dD->L(FTywO$J_899_rG1?8o*An>@Q~PtoeKXgyQ2x|spB5B8@TDc*bc zV@)t~P^MPgnswnT$XbAoxO0)Tw zH5I@oDs{9@j9}M0<=^qjf}A2Rb29nwBdo3#Qz1#jB!2j-YuXlF(}B;nY;!;ma}ojA z>Xq$f_`c-!o4mI!uIFF}vI}EHggMiuYLC>THng$<=_S~YJ99fdVkof;QJi=rnkt)M z9L0-|F0$f*ga;YgTY9F+=pQ`7fz`As zB9}uU=(h`S?nJ#ze2pJp^#r5j=LWQ4beGd{Ak z`t#B&NqPmeEjSYiu`f;Xt%$ZGt3l;-SP_qYK~f^=+t+nEW@vZ# zZO6R_V1}y>?N4* zqu!fIn30*p2-#Wdwk_=(0UHv?z+hp#P%@t*Ogx#--d!UMa89OxZdRY-`6X>{Zw0+l zTc%%(N221pUf|A(q7qA%i^c%=eSu2^M(AKf_O~LvyM)e^(eg#=lyF1kp4I%=I0Arv z121OtT-7_oA3pO-j+lXyTS*)!ezM`g!hPhesJ7Sl<#WSp0ul0I;1i0@g4z6hbrcv(A># z&)TK{$QU^dVD0^7NkdbU?M(@wm9SfmZPgn5Dq$t{&Ed&x;o8N{5oY(LFP#62y8e~Q0s^Hw5^}9+vhu#B2%}7>Z~R%sQ7Mr1{b!lbZXK z{fclyl~b8n-dSXZ^W#rgo8L_=nzD-NyGd9aFO4b@`L<7XV5ppUD91HOdY|IM0qWw; z#g7CiFXB6t0iS7>iw5f8BaTGCq6e1ND2#7hVe)Ru*UT!kFTe_Ld1&KYTbKvz=m<~T ziScmEpeku9FkAbPJyLszbmIU-e_SHO`jtMk|6XI5WgvNK%gOY`6{x1IbLvx(_jIjN z_II&Y3k?-e`jEEdDE(H!M8-DtI#TpdY|B)-`O1p~4BTKn(OgjDcBnn6;Ifr0(dxja zS!#w!vu{cG&kW`4d)8?MRp^b!)d_Xis8U5q%L4F!Mg%38DH?jXcdK0mTmHb1#Zf$`Hqkh3DeM-ca9ovp@I;C)u|O(M;rIBe zNr&|~Grl6pYJ0}WPaBM5xP7fSyIw?4PW*vV5^Cr-M4;d-#zl0L>4h$9@7$DtjA)V3 zd%tOVTEh;Hlk`$Vx_A8h-FS|__a3(OV2%hXZRevimDl*aTCu7XIUW7e>+?cRm6ds% z1$@)PL-=Uy+dKb(OSTw)qs=lKN9|d654J3=nW$GM!?*vDd0oM4`d+NjL4B55RuBj1 zbWCBM{oB-YlQTYJj$VG}n+oKd^G$)N)BL>KwRZSd(5w+Vq1OtbRy(|jm=E@GhV=hD zImVxcI#=_$Kq_=3xmCBC7uVp#pi$8?{G26+o&MR{mZl@0z4m-vGw1vs;s9uU>^WSn zQZQZ|44AT7c4fF5BF+E34=*x>zc!WRF82~ZCua;!HNM`U`o7(X>>lxUJ6_wEbX4d$ ze2u{lyNssu!^FgeqReggz;EARiSA@6eytMwZIKL&#GWh)6dc0m*Bt}C!xMrHlolp)~KsTnx1 z#KgmKr8d)l1|1J-A9Y0*s`tgvcpd@}*V@=fKZ#g?pHqrp!T((#IF}M55I{zUm{7ccNgo zYt6jA*7g}LC#LuuCZbdbn-S!v%=Z`!YR~hF46pDw(sUs`D*~W68_;m%kUaZN%jCc% z3d(*MT-5b4P2SA?R}R=X)!e0)7B$-w-2GSYM+yx>t+8m_sjsH|aq6ii`y_qDAm`i9 z{nTR-Y7liNz()X{JOD-$U6i1pCx9wFv0)wWKG|iVyi0=5^F``5oO7sn6o8&S%AR^B zSsX_urQ8W9` z{7->*?vHlRe=CJuKpLpPA0U{qBU#jpeuO@kTh*`HWu#qO5|do^2hdAun*ii>jD+V6Hl!qL$Psd%bLu>*49B(as1rq>8l zm%MENc_;i5+y)Ae=>nPJZmnR_O1MYcsN9O zFjq=4r17^=C$9UkbJKuJc&~4>dwV<6vfUq1k=_Q2LV07>8R0r^LBM@Jv(QlvG<^ zpS&xd$>+3(TSYZ~B#YYS9{+Ao5ng{LD5q;7R5!{+1KE8r#Qx09<`btzKnS>kAntv3 z%Mzl)>T@Nyy(s3(lCbm0sQrCHaII$rc^1MOO3e&Hro`&}*26Vc5?L7+Kb$YV%Wa@h!3@fq0eiG2Ap)$b6 zh}3psk2fCSkauro;b1NQuJ0?FYW*sSP|2y{W4WjC9a0V;ID(832}TuCo#FN)9xLMw zcufBG0P$w?UV1u%V24B6#g7iRvcxI)wA{I*qKJjEs;2T)`^ag{abz@PcrY?8)g~>i zgq9Lg`$c4__Ed`Z`-Wf9!w8>Zv=8Wg31!N%*F_sk%#(}b7UAjsDckTuOUty8;?&op zvD?$i|S(v^tbJXmH+L$@mqp?iEySpq5N;o0Z{~-=(@2RK_h9`U#F=vf;fA!KoTveok9&VK%lx%q=|pA&sUcJGisxYPzB! z>{N-xp_grwaef*#KC#3lZmy^#85KS8jtSODq57h%DxzzCD)8OXgWa^1NGZ7<3QIhDJwN5Mt}Ub5spwV~`SOIc-dUc!om-5K@n`B-DX z^f=NaRvBF;_F4JOX$7Kg@YYKDo{{I|qDQuK?z6PFQT;q;#np^d5e#(NinUM0gs&F9 z2ULIPajeam+-Erdq-B<&B9vt{2yVo=4mzU!1^3h`hCo9_vt2Azk60g&4r&!+bL@r1 zz4k|1^t(JCr7R)m;{72MzX!ejFe&*Lo6i0Em&sq(Q%5ZmPiyX9~M98oW0#9DV(zd|~c* z!IE*v`@q&B`@H0Btt-1H1f3d1Z=jhR*;m`_r!yLXw%#&79?B1;oTZ)D>-puNPI0d>&rPG_p-gS>^dzy6MvjPg2LJVJ zOOn`26(@hAi$y?_QAX@ezOCJ$-Gn=;FBMa_%x5h&$sgR|&dwBY*bSqInXt7uTn#6! z?ex8{b0Y0}tk`z*|JZxau%zENY}|HgWo2fWqow9vDQ?Ovb5bcTR2-?Px%Yymm73;W ziK)32+_=DUBaWP?xN;*ZiW3Js^nH%saXhd8um8LdkqI^W+U#Vr-_3;PcV^t0Qj{?Zwirq_060#L z%+D`6JOSwp?+4j+pNG}T_HMi3X^2UWsuK5C$x5Qef|R>Bq5(B;%3n*kP|`V>KbbYi z$FI^c*!;4xK)rY(XHk2oTfdp8xQHwZVHiLKDz1T1$h0xiJa4*&kZU_-)xzXY=IQFO z%ISQcS#BYT__V~KQGyRVd@7Yv>oq8|IH(_kiU+z)JF4yORD-VzU%E;`&al0%eZ)O% zP^M$HJkJ*5J8*{r@x^~tNyOVm5_?4CIh)sNllmTNV{W2BS3B}G7ig2N2j7IdijzXh zig8Y2#;HeMCZAUN3Z88K>BkOB0v1gVz^{~-^twmU6RUFRh=D$u|tj z8}lbKQGkab%IUD>LCAHJA}n(8ua4aVK2`VC-#lEXsdHR6>P<`x0gZdHVN=mtS^Fex zkMa(An0sz*uRBVR?43^iaqpy+=yN%>A?bAkmz--nGT&`F=N|Yf^Ow#qX$u6Y%45ye z#zk<-W^&yUub&rNFE931pe!1u)j&OPLPKGnMsKWAfc>D-AAj@$SfEn;ZJcwPz0X3) zkNe|O!)E-w$h2aibR!XtP5i!pr{VXI(q{Yxx{Tc1>A&5VF+UnBOQbXWZHGn-$+_RH zRB);XN$L1dxid3=?Cit((Iqub^cew$53!;g+1a0* z?&d6eEcJwY-AQHdUz7ayT<^JeU*b>5OdJ34c=#=mi`yWL2-hXDVZ`3cxd`J1u*D8k zoGT3xtV}R&7rhHSQQ8|WbIh6U>8mxxH`6`6^BhHQ7z2(>mTII@3q*$ z%?UZwCN~mkZ_5te8HoJi2DFc?^VkmK@IZ$(#5nN->)d=EmFrkJ8VmQMk)dlzc!BLf z=g(8fkQt65M4`dU!Tlw6bJ`449KLb{KgjSuJPM0&KiX-AnCKU~H3Th)0M&QL00N;e zK$1lRta#lejURbF96JaUy9L7rJNWK*y&hLYPA)Dn$x3B{UiM{KN?(09Gmx@3_)~7M zcnu*2RL&L7A`4wtR2{ z!>pWnj+cX!_pD8xeZIC|*gN2jg)?Frdk*$}7a4or%;|7md5-N=?bgEbzF4%%Cc*t6 zIW?@`Q^9ZLtdGefz1FgV^(vT&{Y*@k#y)%P8G?9Bnz1^f@XGZ&I|$Z>6cs<6+gH)9 zi#ztc9b9n&cL~psj&OBhT_@7;ws0u9Sqn~6V|Wcjm%Jz)vx4cwl;o-M3*FR?u)4-w zp;E-k8KK>9LgwDN{4BlO@{TK4%-*bqssW?|H6$|uN!|6QXxXvIQ!_-4N!3j;irNmD zFj2Rq4W32-R{Xd!WJyZR84ny2;u4lkKvTPEk9SQ32fWT$)=ukHdj%m}MBdvMGAjUm_t|Rv9_VCJ z4OnPVrxP;#w|2uGKK@OYKXW`i+0eX_CK$NVvE9ft!C8n*`7Sm$FZ7aK$xKP5A{1Zk z9^P*2(B1*9NEJ2`?AI2i54I(wy|lktc%kS{hhZ}he7h?&<7jpl#UL}7)s{R(I=it8 zoLKuISpr9k}qLMirj&=c(?2`hxhKH&diuNy;n_Dh^__dU1Q7r%QCj{DT<7*D$ceRSQ` zAsGdMLvtzA?WzJ%+NV-GfAQdjYI_hXF=ktz|2Q)Bgunlp*CZUZPNM5dN?9V(uU6}2 zYa+atU#*WfbU|N@R-B?_w06bYlIPDAW=}-L+n1Om;-`CRdUB?djfP7<1cx5+>4sYXgg5c|LE#J%d~8-Zl_jZIMW?(WS#GT?~V< zj(QDsQ(_(Jsf7Fam4Y!&ec?*+JBbahjTL`(J(89M`Y@M8kA@b7C3v}dE9dGVRJE$I z7L&a1d2$=)Qtm=`!wZxo8QxT-*~>!`wfwY!i@NlKxsTM}r3a+n$nz6cZjj8~TI|({ z9Kn#kAiW_NjM`L8=?q>ada2QVVPO4AREO9U@H6a6Ep|1HYN?Iy8;~`hLipJvAY2XG zA)hY*T*A(Eatps+Y|OPXU2U<9+is5n_F-s~QNBULPlq*LeVIdsB< zX^nhh7AhzZqwC=#(%B6!bvfD$B@P(t86{Koj$#FFZ5f?fP}z%F`&!M3iq27H3l%p0 zng*3OPXf0TUfdh)=X#}19opy9wG>d*0J%=62J7jucx1$@r{Wgz79y=B0+!E%RBcS zZs2iJ5->Ap+{`yFZ6;+Q02~p%U;gQ7NRD53Cq2CmH4e=7qk0b61syf00t#a*jpmTT zhXjS5`vnz=Th(hm2e!(ICUpKoy96QA`>LUB0r@V?sdPUYDDYw^e7{vbDpkbJ5W6|q z<2z)~MC`s)e071nb_y!%=|JJHm|k{BID9a?sWTz9f1(>^yQ-FM)x&JOHqg4|^f))G)BOw|C&phZMgG+T20|1gcIe~s z`GmqB!)ly61~O(`yT8^^AkR4oT+^%|!CfJOjlA2HKet*>oQVXB6tvyaKqX^uhYRz& zn^mmmq8b-aQ%dAqlv=4hSpW9K;(`zuV5LI7kDu!r$@4ho-CQMNc?4>gT*2=OzgAfo zp&oG)w%0pD|^`H_|3&t}X@G^Id!rCT;!mIkz1JcqBjToHhp> zULB{mWxxYlcl5uQiaV$TT~LA0C(?Rh>umy)6<(gAiTMUOK(8J9w`-u9mpflb0kT{X zjKhL@!pbY{LTM4M=DUo00c+<$li62oM^V6?E1NdKigx}#K#HC!)y@ZPTEpTP*U^FU zUQLOH`|&;77TdB@E`^0x_lqr2e0|hm()smP2)qL16*EB+K+) zb}4D~-hdcNp^x0fuBLRz$vc&E>Ixg(?0`>heqt_U3vwdwdsemH(i{FAnS1^=CzLIr zT<)8ol>hgt_JRAKoW4t@`ZlCYZZrziN>FOSIHTKFlYl9jUiuI`fl}`|6eU3>LL3!9 z_w<{Twyf{+S#X-DXp}^b-Vuf7yE0=;$SnQF6k}1KV`h1U6tY;<1N0vI{_cXTZu{kG z#GqV}Fq@ttmD%<0jC}!&@t25T_6-w4#1lny)ep@DayPrSDr&JNf6RV|OfmLq-BVTk z!b6;y5t!k*OBsBhGb+5BS0pU{c_tj^4z|>tE!?s#2zap;gPJ(V)8|vUTz5jpEjPr> zTYn-@Zeejk0|MPe^EZqRUwXWJHoP6+S4pRm4hng+Kzwqf!|Uwgd^htU&qXUS$|+tx zu@y}J8-BT<*y3YSuPqsI?UY!Kwym3bS^|wgI2GYKv09Fv8)v2}C>LJjjnb#ve=U?3 z!RNv9)LHE29|>La;WVu|1T`!wsXqAWnxk4wiiQV|5 z#twP+XtcjI$JpG`rIp|6VCKC`Qm0m~LZq2usN0X|GwGW%h`VMa?34OO(S$o4*?nYi3SyVt_4&jZ1{S&vuCL25r zuj(Zu^YG#dmV|0oGTw3C%vr-SPU#iLGVU0&qWdH+6m#;;qj=#%XW>8>VrQ>`YK20g z(FxvDH9jHTW^MbFgZ#(hpfSUVBU$p%9 zjUw+_GwSK&Kj_h}fNpXdV#{{wLhT&-D}wP6$3ArE83g?#XSe3){})ku!N59M{Hoar z$}4Dkr5)J77G>AO?1ui_0vMPnzL|p|&N#ei{B_VDZvrwH!r6CD_CoxS`Cc>SO%X@W zQuiLTx^`g1>t)-8UDRdigP>xJ%B}i8;*NO)6|sRs+!x1y;6JS>XY1+RgHv)pOpO;R z`KFA&wZGOw=8aDx453$ZCg`K+hz1pktk zH#3Clm=$hrj3P>0KhmFX=vBp)4oVv{m@Y5QRDG`Otf+YP#%EGScSl!z3@7ovV^Mhv zQ{wkq`lk@Ez7|b=$@Le?I$gV7uxApYIlI@cANK$J9ubV@L-ooD@W4A)SEXFL{qdLM z1jn!G!ks#69ky1pEpGr8>IXHY6LcP7bH@xibtY3OE}wJe5PRc4DQOF3EM4xu*TWPwS+l09-%}$k7Df;@lyXQ`|fTKS`4c*|M|ct5=*6n5TdcG z)Ruy>lm9RA&skI*<&87-!|pi$XkDXd&|s?Ju;BzGahIZ(avf{chO`04CSnwb*n!oe z=p3P3XXt>(mOCT^q=KulN*%PJ< zRh5qYNbnH#4L7*wLaJ>w-&dZGZis-!J;f1wk7z4Qdo5?5T;pW?(sJ{`#q zi|$`pUw~0QW3C*F(i1wZY0rid*nSVdQo^Ajg6U7yDx9{9;9Kq{{Qhlb1B(hKL!ENO z{>1Z*A^Ve#091j_U6q4ictGo!g{ZXK0!fP>26DTw0Xts+YP%g5@IlSJj7^5+eh;S* ze?qw6aFr{gHy9>06}vm(9i8frTj881gFm)Yb&<20tR2MU-Jjpvs9u1>H}V7iA%tRMM^Z`7(VKyEQ14FG10BQ z4+~(0bBxdiEU-}}P5}%Oindh(EGj9)ED)v+sV>M`>xB&_e#gY|rb4Er(Ad3~vN5WD z{gJyFeqW?|C;e!j3r+;f$~S+V1AIKp(iVCVjSSsrTNFqiR&W?h1*2=!58{H@ZpAKjS)FXFU%v9E`hSnH3BW5o;;^weq= zTB9eu-WN3n>c1;PzRoCi5Hkmu2*2P9oyZfA-<^_b7;DMW-fRbbRgoEuJ=m7p#WhZa zjHh@#*F_iT1T=H{dnbqg243md7bKec?j$AtDIYnK~$R5y-KW~h1Yx?feZ ze)nlkuswpPz{`x&4aaHgW=WHKP1)sY+s#_;NiOTvoITee#P#t+-;DZM6G;8ozSj{W zp!4JT6lcQ-SxJ^^V}uBFJ{ekttY15EOJp!39{~vwe*FMd$v)dqvb#CF{+FX zvHXzV_4F*X{bg;l)#k|Q2z0T;73%houOlb}qB`-fzGOPq-4;K`a^bnNYSwCTPjx74 z_Gl^{R)%s%bsY3@W$De&7sJ~(&*`#J+E2a@c=(4|IAXk4GyEmt z1NnB;x7>v1ui70_=c5CYm_1JNI=)E$7WX5t7^>aKwfJu4w9DYbrb5+ggY6uj^nUoYUvh`J^U>=&{Amm3oi%S_X3Ol3{2&ZFCy+nc70A z9kZj|L_U<9z~w{}S}HBE4^`>D`(Bt3$(Sexz})e1d{zehJSZo{{jd5J`tskNkh&b1 zqMfmLa;)Xo1boY7>h#!mveh`z%elMdo$BPrRKu!?Rez?G<^tfrW48@(zbDpL$VQ3m z#V571`gA!YxO}p@ezX-s6uRp&FEVq7(;%Terg#x-F!OWS( zZIoMTl>+e=_3haf#FdF@g3;uqn2G0pdmPX+VGx67HcBT%LvoyNGNgKQ)L?76Hw5-K zWlTCB9ehaj^zX*(=SlRsN%$~9dW`qhyV;`lPPs_cuZQ{b*X2E3Jr@WMA)*}4_|aH0 zeQj8nVb`ft-eWQDQCVCBbTZr0pzMs9F2CD%VkpzEB+U2tS*^GnH4bwx+lp|R)wF+l zZ=g0mK3+|IGz+yqZtAKg(9*49((<7skGJA&0+ZOi|w**A6zUA4>g zC81zcQg4eKt-qz_Va|jl*5zHNfJ{L2$rJvs<|IVVBp<3XZB0s4zlBa6jCL_;Q=Uz9 zRMN}Vq6k5$>;C;(!ru!wq2{}O$O+Ppi3)3NA#oFfwdz-C7ytIjSvPYRUaeMPqBT08 z21(p<1Kh#4{t6Q8G>DGjGWKMBd-(3zmy2_|eSq9_sou@ro$B!kY#V=omjeEI`hf;t zEC4M5tn${+|HYGsMsx}4%q+nA(;9goiKoY-imTo;%XWjoD-K)GR7d>%Lie)Z+EYjfm z3qBB?dg#v}&H^SHc51BvdG6mKBHKnDdd(vsUiijPg~54BQpAbhFVEf(x~Zo=pFA3+ zX8_Im{U+w#pQH!XrD{|4uP2=V4YX!~I#N3ZNgO5|t)6kC*WAhqGs@X;vm*MTod0b}y^-!1z2RprUa zqY!1&eZKfP;L%gvmXJgf^RGWDWu05+lmqH*;oZd^%MwA|-9LRbJ~3c(EBK75x-~Rt zDotW;YO|dJFd1s)%fmG0i4ld93^NMoztfO$jq_S~4F%n^z(G+7Gv14Jr~Vj$)_JHGhy8(v4;y(+76i_o0KCEjwY6v1GmOM4u%#NAzCHtQNTzE){p z^u(Ll11Xp0NMGvYh%7AJ-cCXts<~{npffzyIMy1=3hUP11L#XGa7NrX)8?N~EnTJU zYf4C4rJb72`|H8Oo`iYiUpd5=C^ z!3DqA(5#nqMSla%E(H>xhkkP0)hi9DeX8^xZvJgf+`qJ{_%*s=(|fVkVtrwjTfGc6 zkESrZl@n-9mW}kD_vnuFWN&tf3DL$Xi%zs8BQH+4_kLzd-w6qG0UaWLe)9IOy4Pz3 z=!SJu*{d!Ta*WoW!;OIxm(F?f**eF6kx>imk8G3-)L7fC#`2p9H{UW`$hHg(S#_>6 zuP=Ix;Q3|0oF^Vs}UI&cf!z%6TYZ2v7TF9UJd*x=~f3$}4&`HH}%xv+(Kq5@9$w_Gm2T$x+E zy6(9YJE`K!frNyQhlh#25yKJ!f8wlDJkL-AcH0K;)0e_IEbbqil#|cdVj}g1&9tVHbZE0xe zD{LHX5@*TQIL++{(<@TCj!D`lM&s_Q>`V3{&H9^iNUY9!9jPG^4fRqg*1QwwTa1*- z^c+lyfLWfb0xbs|*t-m2s2&u~7Pfc5J0x2}UOoZJUrH;Ti^!mi3PFW@dJ09=Hd9m7 z`@5odjdm9@+@a&&ocDeY=S_{N`ujP=hjbdJShx7+TKY`(Lvi)SyC0~rv_Ef{hX}cO4P2&d@0n%jlna#{PuWg@8UUw^Szt5ZwM5Zabnjb z&mWx6ethKuwo?DT70D|53peZ33*Nxurh{S*tWP_1vBB3kS9@p8a!6H+-r<~5IRuVV zO&wlT*7q>oVi6&ptR1439yLeh5F!z1Ceyq^4so50)a8j<+hqsuS0lGf3AxuvPXa4D zt1vcgIecOhE(>fugkf_Mb6SXv)DIj^W-H-x+y#|;aaAw{Xb_<#)H@N-i{!wQSP zF+p=+BW%A)j9#AW4{0#+>FYGCUD9i}Em%ufJ?l+r;ceLY;cQVhyy~Ykd=dXeoog-o zRYrNBj$gvCG7dsCfd$SsXQcdm@*(4y+S(bd=uIQ%=9!ToF3#%hlr*C8pi+S=O{3<+ zu}`s9y{V>D2n3;67PP{IqU^z{d2WS=q#ZBnR$A=PlMKHx_9IF#shVHPB&P}TUJb}U zcU;czwP)`zQ*2;RcwK6%T6}eauG#Al=-(**tD|diM$^y2Gu0}z?q71tM3*uu!{tZ2 zZaO7CGk#_JIb1D(q9T+Yq5axexhVd^S4)`?W2bOEOo)y8{1ialQWrdsJ(vd{k5UPJm=-W^%`w(5i;CH`07i3q2qw z?}surmJ8S3wEX=a7I5mXS?kqmav(*K)(|+G3!9|_rz*V4LaL=QR>_nE?$`p&Lgf@? zCaN8szS$<1%Qsu_@KUZ?k(ZQyp@1*B9=N*!f&1-twx*BLCnqI+_dg4h4Z)6j8JkrE zdh>UgILwPW@xXqU4x>ekhH}i67(Igp|3`IoLWUCXw9V2Gf^ctW++yHV@E%Hyw$e7- zeFN!Ge%lLp#HK~Gt_MMx49cb zLtLA=8uy$<6Q8z*oBX6&o-bIo5Q3!ZMRXLmQz=HOw+IjE$=r~7b5lP%aCZ;gts-b4 zlGpz`v|$^{ME4If+9|JBN#m7v5kb1QN53JJ7xQTuio0L)^im2I|AL86O-}KTr)j=Csy-B>G|q z+!wF>x5cF&%q`Hk9>F{>Ya_Tt#*%l0LP-y|7lu|mDW5q0Yf=yXbu!H!8dp`IXIfA^ zbMAAY9@YmZ&umLD0qrPpo;V~w-i1#`5|(W;j6a_LBFrN`es zg=2cCl+c;V=d;!R{vBwG!13$O`HmumT|CONT@4Gdqr#KeEnGUrGD4xzhaNe*)hSl3 z+*ZUR3#MkSwS`oVHh({`mEpx`2VUT?a(vxPqruBU&5i*rbBx95wiC%sE)cYo!cfNFfT!laQ$vQz4!4W`yqnJ%epB$^{70#Y|I?RFpZd%>7CQ*xEftdHsIdxkwFX`+<-pPsX4s-rv{ z51eV`OiF{tmJ~8Q)N&b(M!^`%L?DnVid7x-X!c$^d32l-fbuhtX|3h>)%cwi>*Vb>hf@o6|)BV=-9MxC% z?UgDQf>BKReY|jCN2Bq&#Nw&nivZPc+n6xZkUS!Tazo&7<2mZm{%OScx)W*NC2bLI zw`sS$fVn7NHpfw|e)PJx8lY$jj!|i6 z234P;a5p{P4mi~~NPel_r024v>6b#vU;P$5aM=OA9S|5gP@H1@Q&t z2`Gm?68fy=W}cK5C$`O002EcYLQ}k~9*Jb88l61^R%7=ze0N{^{z_zBkj}Z4;ksKc zB>MPjO-PICJ$7Mb8CxF#9Nb~MB4`J_w-C~MBk^dhen1La8vn7Ub$HDJ&DDAPUBdwLjlZvPOgtpKlCcyFBDK z15{8SjHS?8S_XuLhIp+ORz#CZv*3&9YE?RUSWrYQAyd5lmhK|~Hv?;o-Mj=edHmL{ zQ`ID1-k`tX0dnq6`VIApHEdo`b+VC7uy3(h&Y&T+QbBCs4?^2~s7ja8P9IXgsN9vh;_9#@o3|UTr9(qruh~7Ai+Dd1 zU*p9Jwo*ko+>+Pk_H)$;Xae8~j?}%e*X;#rjC9F57a?9AZ2o09_R$VdySzpv_bb$bI5szIjqY2)gbwE7iKIfVzp-CV-a zDMIiTWbgUqSkjV9cgqr$X_S1wGow7gAN=(9vCpiW`^93QH|3#y^Yi|k7ag!OtY=R= zsaqenoslp|Ry+c@GxqALS9@QZSC!dmxvQHbJk`&4QTCj9K9FVv+mdei{arvW=x4!K zJNjM}2#5~sp1omQz2npJePn65E>5T?83-#3jBwj7s_1lyQgYgMgx&VZ{~8!vBg87~ zcMy!7CXKe~OCxm*U0bmpeM6L>p;OWBre#dI@TBjJetAQl)WxWDS?{frnZ0wO(|W?3 z=F&F%j|2|K25y+3oLpk?DHcIJt4j+j0eA?@zgKmj zXYvb};Y$hz)tg#n=5n$g8F`+cX9KRkMJ4;hdbU^kfla@RkH8z3N+?R(O`nFvEs53o zk}qHDA9>E^ag6wdE+G0;VH;YFMe6r+)qOmK`(bNZa_Rf66`%n6>=bmO4vZuwr|#EP z@|14_X;2l@Av6HbOuf3=hCpr>qr(Ktv@ShnI@VUH z)IH>zrC8H3{N6w`L?&e-sP$0JD!2>xzOnK+->sx@!6vEH2XKzm7+9|JP_8VnVWw_3 z9ftFU47-unz73ITHU{SC^13yfY6PjVhB~Q?G&zUzL&wnEWgG`w7psOuBUd=#Uh`)d z2VW^k2ZAfhF-5{ajp4;b^&K@cKoiT-@8A|yFIvNZBqB8Huz5u>c;u;&7JQp2BRD*& z$_Vjl?qtSycM6#wO7J=SKx&Und1^P|j)%PyW+1_A8-+Y@0jJ zuM+3OB8yyAg9a7No`3w3QW5cWCOfrl5Z{iR&vKur*fQ0sU589baNOr=OJ!UPtLhnN_UWqpOc z`M?N%Azi50I@!9wGR?i{>2E-f$|`wxq6X``DWQv~v0gYXSL^Vj%~=`HNS?A#JDJ~k zGVFrdh5o@T=Kjw5dK)CdU(U3aKGx;#xUqon`rCDi18G_JvM3e#+%4OpcOb8eA5v6j z?DGyx?BaJJiK>;s2E7H2kgP{ir{AZ(V1LKV=J=RASxJ@;>>5l?KcOaInAJu7U?9`# zuC5}N)RP~na$y&3CLbP1NvUG9i!jxNJIkCsSD6`sV!6yk&VzfO^_+$DK>9bws2E|) zUL#e(b>)p8fJLjk|CPD!WOHKUyc&rq(FHvnylbSM@G?3h2`~+quNPPzD=mlTmDqL6 z9g(Exzcds{P<~qsdJK*PRE1RcO8pDmDU*ruTt!iuhB*2=i)pT{8kxWW<-@Jl(^t19 zjy&`Whbmgv&IU#c=RK0tOG-RcSq#n_jD-6hRsJ;iHn6-i!BkA-(03LBp0tK1s27=l zc7(a_0P%VeB0h61Q5uwyfbLV<15AXT4^z$IgM^L~FArSzZ!!&EpPefSHM_|@2okt~ z>ReKMqb@b|VhK}k_qE}=)YNU0=79lKV$G2of#;Xi8b- z1ubv0`HeVA6iZst~yD0i_fzo1&JItBGnOb+ngppr;qym5DNp2gdi zALr5A!aIQatmF!GPKlY`pr)hIC6ne$JtJStYb6$hQmo=&jnk(dik9E2E#)^1 z3v#Q8#}rk_leyXIesno^BvhVWm8x)aQsFOQahSM}*&&Td(szw_!B+ec-rZ&{@ljA* z7J7w3;v$03xy1n*lQ-^#3gRSm$mouvNeY)mO4dzUPX*H7pj2Wd`sf) zgK%;0Yg;OcE$2u7?)+mkkTzkepO*6FDWu5~4nJhlya@i5YpbM_sQB1uj%!7 z`DQ;vlwG*UZu<1q^tgL!H;g4VjZ7uxMGHFamXZBXB}F+1usfg%`TElZ(?rN%*c{8nyTplNRUnX9uWzhTJ0~hXpM?SpiY~Fu${4>F6^P`$f;9=MiX;+b_@12kM{7JvV~UWA zV3e`ub)Io^g#^xr1BXVmp}ZQ7=GHI2X@&Y;JoxHu{z%nTcm}6=J0-p`K6ycL+2CjG zbtk?bZ}R@0`i+#~I>FE3KKSK@VzR2;`muU2rY3qfVfO0Xux`HN)1}s7*OLQo(t!0ZxU;l7!I5`ZL81GWHcy&=yR&XV zj+YV4N}D&MQHu*V4&OkbI(@!L0rYqti!&S=eORNoLi>G zGB+LISHZj;Mu8b&wKH8G_vzmcyT3>Jkz{}D<%9LE6>ABeANgi`zOwk}uuTRmrgtHT zo?o;CT#5kh^~Vw> zJVM zlXvQp&@=86D7p8y_@muA=meSc+kK)vPR}|&rAu7tIi!Fj&Fi;T^DMTC(4qI0d5-HIG9GHF5pt)9m8hH&q8uIiTw$j>`~3V8a1gUt$p=dCVkAF!D~-^eJfMJaIeG@yxg>1LPu41L8h2c6rJcb% z4NIPRpTo-eDNx~_uh%vW$<{6+bgiOjHK0EV*Gs+Q?xS-QYW0#&obPWuhiYKlq~^Jf zq>fct7f2$wBjo$xcrj&%BqCN~8znI0l+c%R%cM)nH!ko5z&O9R{HQ;$OEc_oMwQMf zWWj*8%2gor zt~^18Qdo1(P?r8j#XcEhW-Jt?_@VAo=kQcleBmO0XA%-(q;DMPzhzaeL*z;f1M@h! zlI}wOMi$v`E18%6y>)Tz4$T^!)LX=I(-5MWkp7LU{8?eIJ$rHKtrJOhUT;T(pu!UE z%%WO#{-J0_#|UdeozqgzM>6m5MYUEVCx7x(J>qgAmnFdRtG&#^agecUsKzs~xKcZ? z-?))G-%vb&b*|9IxQW^{8kcpW^3He5zE7>%*3HgJdL_heudRi1RlF4v_8_p8k;q#0 z#Q@B5S9a7Z+Gka6+?ZhRWh$!|_l^TKMF^-g`0{^4SUWnWt01$44`G!+Iex}*Ke>`2$&piv_8M`uXGyVGUOn8Kav@GrhWg{?Ya*ytc&aunnJS#Y|fuc`TAtoyt$3A z{LO4CQb9&n3X+lk)T2bc#?|h8_{LY*vsU>lk6PF`#LH%Qu14st^i@Y3ect60H@C?7 zX!2_LoZ-rQzOYTJ|ml>Pbkb^w&d)Aa0|_kx)+!;X!{Sf*J`{D5tGy+ z6vJlYkuRz64Dz6pDGJ?{zS&!x8e--GS~O!E6(m50VcX@qA=Cyji{2Z&t@4NSQ~bjq zIN>*>7Ipz1bba~f-LT1DYQ;o*cK=Y|nqs5n)~~8YI=m`nj5#8;%r5W4Lzso;u}`Qs z%!T#8VAhwlSrq3;?0#`#V)iQ6RUFJ(O$7(^?SoKRfra7jY{yMbvf{N{ZH-0XU-AZ; zPA0q#q6yJeh+#w!QYO>|viA=!gF&73n|Tdq-9l@q*!wtf3Cl zmQt{1f3K98oEErb`#Gz~)UA(a#;EXC?&t5BqM%W&bG5tph)}}it&yeQc#f@1%i@5X z3be#!;~b5M5PVCKFGol~$I9w+<1(wqCdIZ&2m6&Gz*gQnf1A!U)=YF4>U&pE(mclE zjW8jz5ttG<#S}7oS8acqh4=dFbbjhT7|TS6D=+e-$K4wq{AUNxz5o5ox}ekb!&{Cp z3eU2{d(;RXW&$fiz}!H?T1#)0ZT&@&ZR?;_2gq%g8WSRnWz`&Pb9~cpvopNa?L7Yh zx;|9-kh;6x%EfRpOZcQnMifm@%KtKIiF|i=etZ^1LiTo_fy-W>S;av*)onY#JVqR? z{Kbu6Hu*Ss$mZL|%57iw*HfN^@WLlDytu8asx>nl)`rprzNT(zPBII4&aCyVz>R&?lPd4 z4QM@0k>hd>}}{xtC$KVsp;uiDFUmeBrgH_q#5KnI8k0@N848AFQWbJQ0aO4K)TFx@Ezj2>_RfocQS43te!l=3H0uG zx65myUnqrH#3kz1Z~TSO$@Da2 zqLg&-`%MGoIP)rL-EC@OnO^r^+SP36vRZ&W>ST0y{@B^R1$JC=1db>^UMW%gB1bIx z*bv*wf0A*3=Yz?Ro-`Z}HXCZ(M3?9~gA1iI_F1N%KGQ3+TVR0mUM`3+S@6foAr>hB zzs_*iG$Fu!kUP&Nj@cR-2utnsscP3Q3Fp4n`Zi?71$FQ#+1`HQ-D^MGN8S_yzYrO5 zI59aDO#8BkWvt+NWQT$gZ_YD!^UgIJ8|D*>hxL`?sJ$e639<|GsEI)hA#GpcM9=-Y z^e$40g~j^XLiu!kQseHwfj@BSwsKN4uxw7{`ld95Rv0T&i5G(J%WgZO^JVmNoXG(x z&Y0#@ItWPrn!TH>e)-?qns>hy zDUvHM*!9QpuHlOZ{(6Z&-_NmYiW&6F%U?0#&$@3j?;jo;8%67Pzh0Q!Ei4+IsXO^^Qx6ZbWgw@- z%b@lX$~dif%X&jU#fw}_eJsoL=c^s3OP%(O4f-BNTw{60EEyE7#l^lcMiX=B7yo^h zg;!G{wUI`IH z5Ofy(zjx;ao>9^&51Z1~1q%?DMz&8sxmID6Wa3ZGP;aoq8U5YR>o!bL=;F zJ~|VZfiKfKlD=Bwy+XD>YmYo1R?n(E$#N~SRGOD%A-skA;aC*NVDPF@uWCBw-wwTb zFLbf|uSi;kU5SxwsoJ*tkw*cfL0nUBdfiSbQR3kG@yr(=nOsbT%a@&h|8^d8&zyew z6d5zEf-+<8wW|fbhgL;oz0cOGmQK}WdGnijAaq&o>r}MVabi@rfkKe-r-Faq!!mud zY)kz8+hhlD&WBm@J(&S@3HGz>H%g9wN_cQm29K=f^dfMDpep`IiGB_H?{F@Ozdngm zh#?1;hZZ$8g$(g3tWJf$&t_pcd+BP}5m#6Sq?}WI9n=+BQay{PW68|^2ko(VTs&EL zW}M?){CpRyv!!mg!mEWCadl`oFIzB=@N+fZ?=s( zY15E&m#C>B%&NA(8HKXr>Q>VE@-L%DD&Mw=4Vc znQ*-rHoJ$&+QgeY&BO8C3aSg_!>5p{NysC<33UlMu6Y5gG^R$+=CD3f(Sm!cpa-=VLV+Vr6Z|&wl-dIIB4kDC7 ziR~vy(B!hL%5Kk7ye~BCo;j%5H(9v+F8?z!tGxye(?F^VSZ+y=@iRQ_OveToYHE}& z4>N16H9@)p!XjyCa}R)rG%LzQbJpXpD>bt8Yr<7SA}&{Qr{^)hF{Lixn#pYywdkiN zj)YO%F3`XKI0fQ2a47cF;`_3A)1Ii4!4DO>&w5OA$PwN&95pI$600A8Nqggw4DpJ_ zkrI|EqwaCOr-^)U>svY(r}(=~p1a7}SEW$hlduz6MMqn_{LuLkUWkJ0|Xb9A~V zszrXR;eJGUKj&pwbXb@1*N)3xeVOVqOkT2~%5j2ku7*pz8-Xqvz?~J$<=$aI3=v6F z0Q4EK4EFY8Fp?R8+^m}0#?yZ;cE)Kt%^3Xhcu8xRf?ETYnw)I%ga{K1qmHU;?l|Rh z9Gc}K?3gqzp+@^dg_c+{2~4gaM?7C5dR@P&7!_L4%D>6gcct;-%!WrDR+{fkcJaGe zxFMX+-hv~hGAu*d2$p3`+q1WhG$6=x+p|n&_j8)HDHy&lkf3v%a2=Uc5GRH;P zNTI~0xptt$lFR0o$szptS3Fki29N>I#PT0!mpivjG+jLICab!dad{R6D>u$5;jy^= z^Mn_!RMPgQ%9*^|3+n|2QQzm=K}XPB|7{Wk3@Sj0&0z?Qa%5V4KF!|v3p=NOuOoJs*ZzmGX73)&3$M|26t*wn3-l^GEtA_pjSo zioCe29x|_7fTyWx*?iX?-#EWf>N3U2T0DR8($oE`YTpV9!J&h$J7G^ED9);>dzLF} zS(3T9pgilxt>?Fh-i2)IEO5F)B{z`yh?koBkKgoud=%veb@%2L5yFd#yj4C%TC4d{d zcWF>~vQddL$-ON)TM}k>Hg>{q+iU`RetY%w$$)^Y>;qkVksw!GC)}ijCnE;OEY4UK zW9DgIw47u%R+J2Ch&QgGXXwICdt`lF^HkJG+_@iL>h`4~l859Fu(yeFs~Of6ODn4O zHOi@zVg734`BWqkyz*sTg)#B^>HfjLJ6_g7VbIy=#Mu=q#p+0bP~uA5-IdRYzNaYp z#w;rF+AhLv4DHF!Dj53a4h zRw2gv1~QUV>R{X)^q;6s`uwemsH*Kt!o-#9)9KmU5~Wf zZEa&d{v@tstM{WV(msGC77{~J8anSLhmAAKpW>v3N$GO7e$J&K+gnN0A-pM15!1})EF9CNnF z*ROV{*q6%1ZTRd`6uTyvj1xjC{K#KA&dE`4t)Nz+v++{BUPY^7V%cjhG_3oOC822b z#hAU-Xn*P1q8nw_2hZz&I$nPetG2Uu3)mU3x7opt--_cfh^mgpMa$!)us z7x?&`<9waWy$*te#?mC{n{CO>m&Y; z?q5_VgCUiK)2g^}=}5=&w~GZInDm5IgILMZp#5lR4Ceu6>2V|EyG`jTeUJBTep!UBdb*|I=%U*}|qQ=+72FD)^# zt*^TXjqO~!!t9)S03yk!A)*jhI~9D@;~bi3uc~%rlMK{W3MBOhgF7n=Z)4YI_3BAvJd`-Kj2d^$f{t>(3rh zNNQO+&{es0_~bx6J-5zdV1wPL&p8UqjZ~G4;j)8}*^|li}BHNxL zL$mWF$CfQ4?uI<*p%JmRHiXa>tJ;vQHGZ#1;f$HdpSedRu}S7Hyjv;VZ9c#>gZ#ki#g<>g_>%X>5jsKR&}|NV=m za?<*(BrbPT(pZlYlM`uaach_319gv4ekn*lq1g-&4{2c4m$G7!uH%a>2ik1?@|ryb zGPVq7gU7;-U#ko(P*$LHMt_W8dw-wHxyCozo4NS6E8V-&6Q<}rtI1=0Q^aOG`uz3U z!IB5I9G8e?)$z0#YWwbY5rr2Q+4##(C*;kRu1#lhH4v5bI*k$xW`0 z&yD#V*N7M1EK*7{R!z#^qj1jn%+9F>&6%N}@w#>rQHCyxgLJmrTW?cRsYq7a1Ex4y zQuO#JrgFS!Hz4t1C*Q{KVC|T?mM-EtJao4$io?u1o(nDlX;X* zbO13*(BuX0wvA@L##Z3v|<-S91mG|Jp-sf{3 zI$ceB&hb0}{W-Hcg; zA>_$dcMQMlC`RhnL7muLfMY`9bi0!HEAiXMoba!c632Ar>Xz=LJwQ^D61gUhSeM~o zq38<|*c2lxL@=0TQEGTxfx|so9?rr_dNfHo0`o_5d92ABq;!MYLKTmb0zwH3Q zxI-XJGlX5KPt+BI!TiP+s$mUu8!J?sm-r;YA(E~+(yzYZ@WFRndN7!UvpDYibug#x zeHy6<3O$a4no3Sj(OS1!(FOlaF(a9a!-;sI>hv-afs6fb={eR`^5t8`{A9c2iXK%VY(r}%Qm zLp^D@y2bqt+qTmjm%1Eqj*B|d0VJKrJpy+t-0m$=aiyvT)y9R|@~Mz)L}($m-oWr7 zP*rhy#x46qYq5@gnVK;v) zWvXz^)P3mq=x6Pht4^~Mh=YVK*`d%x>b{7An}>cH=BubRLQ`v~RE(P|k&wr=B^YmE zapYR=0dl8a(zU_Yy8st_ArCM4ORsNUC2M}h|DLyhm7>fJ_-9c~v+yETyAhT0L_~CS zH@`#e;+iBQFt=s2#DrXR#cWZ9_{>TexB)cUXnV)}m*17%yAY6ECEaYZ3uu=Kjh&Ve zd+^!Sg$$JE?b~THWLBh5S1l46Y*Uj>0pH--Ot)X|D6v==j|Zmw_3A-ENuC35-p4_= z`n4O&t|2(ark;TQ*Z88#NLM*4eRqmk@dpCDD`Wf5iStI2H)eWtBV8{zDvNG85MPKU z@8C!`(SbKnS-2)Ov5F6$&p_B?lBJ~xZ{xiFDhOdgmc>=G{mEew0KmovV*v&`ETl{L zFF)_FWsqB@pGZ^r&Eot7D7kfk*@Oz0e6~yHXoH!72 zcThPgcVsG|)MxNn2K*P0fUs90)|^SfKA)<%;J?t(EA>dvR*x9N96$DFAj2Vsr+o%_M~1@yQ@23L2^CKq9123z>fgNIYP

b)_rn`svlH$9`y23PhnI8z?_;qSg7yFR@y7pu v5l9~YmvY(q3w7Y{-_&8UH}nMon+6*Ya{2SuFI2HQ=nZi6h#kJt%scL1hqzNH literal 0 HcmV?d00001 diff --git a/docs/dark-factory/diagrams/img/flow-a-warmpool.png b/docs/dark-factory/diagrams/img/flow-a-warmpool.png new file mode 100644 index 0000000000000000000000000000000000000000..96e84fb752f1458801c7c66c3904007d00ad40c8 GIT binary patch literal 281471 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%0Ah! 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

)BcezLZa+zmf$yBV4fDmCOv^uLQD*m3k zS*C^F;_$y7%}MPd=~kDOf}RQ8nckjQ<5s^I^@3Sw)Aeu#hu4-; zSfAn7;tNHf({jjdb?e*C-P}*e5V5OyFx$+K52Ke+yt#bjdmEia8RG4;AjE>(r|6~j zdo3rP%H+#$9r(DxzwBr=ARVu)I(2LJ1r0LfIxH1Ym+*v*3-iXQDuG@fT6eJp&S&X9 z{^aKQzdddTiG}4tcQ`36F4`@*99R|$9vVKO@IGL~Mu-)a4-n(9`y9Ed>%mLdg6lKY zot=V-qF6*p|LSoOVWJG`p4!j?M<4VAvx0yfYWooDiQYxUmQb1O(ftgwfNvE%5wKi& zpFT&e|40WeTklxF7#QtN46Ywk!6?-P%ixZofG84uV2AquJ{4@MUCKmvDqKm!!-f1) zN(G&b)g0M@)M2s^hx)Jr(yTATcloNgO( z-jb{!Z4g~GU4~pPiLdpr5Rs)cG3gG5R`ah$OUbri=-!*<0kD{)2b(gYm3txe-tGJX zi_b}Hg?R~0VwEgQZ^CPjxUih_g$~|kBimE~=Ri^dAd{~f@Ar%KS^|dO<{KHOdCZh5 zZ$Cs7c|g~b0v>Xe4dVlRlQpY&fs}kl4o2Kh%hi8llg}ebE39Xg!!tJn4hwrGIj%3F z9LmDNrG8zT#Y74qn*^Sd?LLd0#(fQz`7BV=8KhjzuCBuKJ&~SZmzM1*Lz(LB=(|MZ z<<$w3`r4yONv>2pg?FO+Dn5dQzN_ECmC$0>V*ws)*LBe9T=FL$Oe?D_uiM6aMu9~| z_JQ3CJAEPAqymR}{cB)m=?DqDaFi8zVYo39oji;@f5~wNeU{TJ14up-x^v~_1twiz z>(j(_;HPyx(Dbb*y2N!NPKEu-)!k|2Sco&Z6M@QaPQShQ=VEDOp7Fk{xa0`<$*751 zn>jGcMFg{4AQ`Yf&vL`*a9uBMhz&9JP+RK_1|f>J+&Tjp=D{6!fkM@nG$*JCHZKhtxCplxy3P{a#!542UJ z4<8tqndI^Qi*vK{YK?Wf+_QLmbY#-T!a@b(X;kNSV31hHlV&7ys8Xw)p8&aieNvEw zEyq3^%(TVTyIq@#5W7~oycK|7uf5j$KOz)lD-r;YYK3o*}vcIdTwVL&br_4g6r4=07O53l*q% zv!0SIFC`z?S=Dye`z=2dw6o~%uwok?(*0k074BKKrLRn7YC&C|O^_mYbylnC)o={a zY)sr0Loi8Ac)aSntdYGv%H`hnR^BIQrM^5XdHUkNjc5F9seTd|Vx` zxM%Q(we{_`HHb+YSOxi?boG>#uWeSem)LrAs2g2Y;4IOU{nWmzNI3?{uB7Zd!8l(CesW6tq-}&<3>i|52!wrAd zGB{c`as9iK`f3FfTUt#&sOU^nAV*7k6nlQw9tyl*)5=pmPTn4v{&Nitn3&h0txg|( zo}Mds>}2t$wbj|JtSPxl<@EjJow9wF2Buv*4rlt6qMjm;bFadqrqb?a={mVmfj%j- zwcu2nK1y3lo?>d5FnsL3$#T&abvEcvhGc7eDotoW^qe* zjSaOHJ0b&aRJgmbsKR z_|QW$d5sa<2HSD4Q&8ONC9bM7aN`ij=!G7@qYos&Wy{%&Qs9;BH5Dr@t6J`G4U6%> zc!msMJ(%RWZQx3)x^+<)AZfC6U9Lcnf%SOx?LkdR+cxshUUV;7?xD9AreR;IO2Jz z|IPYkPil84nwZaN`o}wdGD9E>_u!9&#NZ&|*VG8lG_cMCi9}XtnYOt5K0hHaID#eR z!QcS~0q-MmRnN=k?jk7`(-pt07f{YN<22qSg^gl^-px&m^j(ib0H=9hs+s?kCJp*F z8T}eM7teqmVEc+w!BhIlQ_lj9P1o=G+1CrRMC1KW`Kx#gPI6MJXG_CefN{CAB7Umn zX;e(Q_S^ej0pM)HR#V_(B<_1+(pCxFX9AP=mvScmSCAN;T6G9yK>p-^7NZOtdZR#A z*FD1MB#PaPAQD>mmjLteGRzKEVj0R%tBW_36nEr9{OHUEVD1!EizZ-{X0EAa+hAJJ8Ph(9NNYjmPTM){ zk0bYt9XAy2OEUe+V0)dV(6daJSKoep(CgkxZnD;L{WW@q{kMSc^B4~8o!DbB z)|}vq@zndNb)-K4;I*%FJt~rQ<{~otMXF-MnOS3V7+skj1IKYD6^NHy_LrfvC}s+W zyT<60ahc+(PNmbCI9a488XtbBUMb1rMT4K+m40ITAvSqC3>~VGLXp|^jO%ezt~tK& zx6X62Zjl}8BmI1O=C{3$*}HJ*7gM-A=C?f7=I&0MwxKAWmJ$6XONp2GcT8=!9>J@? z?@NrZtbVRR6T5+(IbZcKir1XZvrtkNE|@UR;hp=8n7h>fv1J@8Zkn|01JB)lqHe+S z(4&9uQB0hA{Uh+s=5i${H%lQE%_N5Ik=3TbMHm}iCY>jlnHm`>1KC5O02|haJ{Vmm zi6!7gH}85D#^$(oG?49gao>_FOM)7E^BVO3S^%%k_q5am=+!Ac=ZkXtPMJV^DbxL5 z=}k82T(&o{y57hbL~16u53cPQhfS1ZXKQ-U`Z0uj!pWvu(Jh8z8-ADhoSVAfdL#Hm z7s(U&A6PmcWV271Da+R1p0VC-R9cD~D%FDVDrU6fTn#DcrPk$}PxjEnwU3V%W}4@8Bs68*pvvVWDI`L^;lueX!ed6C zyctls!^(q~5f3Jcem!bIQ%w(|j5X`97mZ>0FrC>A<7a?hulls%lhI1SH8GRs$-T#K zwSVn)gAqZHq{B6$R8EgYGM`bYv_d1Lu^sDBQfU_=VC!(JYDckdyM(aZur60%q9jOQ zJ)r{*`q+?A6Ts@BUdoNlcI^F#x$$SD`;e2$tLx|jzggaA_dWSzbD1W%yfF1} z4M}V8E=mW`dU%}}kJQ)CJ5Q>#Zp()iOBcM?wB_F+$*4qS37h6DgeF)-_3|uBJip^S zxWa453?>nJuO>Fdc73aI4d!%%D2I~D5=Ad6NtsYD53%WxR72DF9EZhuRy`X;)Kg@H zhT$ptIuru~67Q#=#v4lJ`LDWp0iHj0w_Sv#tE$bA&Px?|{8Mxm)ugnvV5e{Oo%>^3 zVA(-WxV*GMIIg5_Huk(5`Sm0$YxQoYJsCF!@w1bvv16)*GW}Qh^4f~;>g-Ah5lOs^ zXucr|yb27Ju!MZbSRBPxD}Pwc5;B7DmRu}9v}wydl|G4){jMYr*s@lC4~*hU5)!c@ z0fc|Hj161YrnNROR;H1!hJsvVpHIooWVeFFLNm?48D&F!DtjD<+t+pN`JA_dp``ZH>e*_$k**Qq!OC3=H{%Zxyz- zYA(9A%=cERDA_3fz&JFz5Ne5N_-WEYW%x+)RllsZ6c^3EAa$1V@p!$wrC@HmhLeqh zLBA8ZsY0W(s(Y3nc`C`nzi^uZq_s7O-*bI57Wm@cd-%44m#d%thFsB8-s4iz+9g9VK1o{`k zAZQi#A0d!g_IB4pCdgkOqIM04*6h>+A=S#;F~bx&b*p!NL`r-WYaWv-<}Jb@y9pam zl2i6!eiw{~K54kBRrJwA@nM@-(EY2dyd~MQ2u|exakZdP=D=|pOVO;Jx(LhQ3Pp-u zT!#{!NM&fU#-6&^D%FTG8&T|p5PDHpwmN)L_x3RXXl9DVdkh=~ua zLgBKvd&%)*!}@9Y+lyMK^U&ZLJKYnaUD`3P<+X3>rZ_qk%z0`QT1p3|*ORavb zJ~rSIO(7%(_dV|Zf|W!lzrwrT)vbB>&Z&b-(=ULC?_ax~F&tdgfH9Y52(~@@=o^5| zUXuZ<5NiNYp{GZE|IKFifGT`8hoAH^QhN4kW}y?Iee5%z)QgtQKv))R0HwPYU7hHo zx<;r+YHCPV@y+jF;5|uaYGliL0zSSZqG-&rHIK2oKSaY2d#@b3j3zdK(b|&Xc_`DD zoiBxDE6c^%w2^sLrLuns-WhpV@Ne_M zH+UYKi%CeyTs0pIcH6A$t442toYycRt#INi-(j52_9Vr&R zHSAgSu=Wbk#%M!UySST#H3w*C>&QH=YjJQc*MG8$D`EP$s(+T{1iXOwu;$y zg@#uC{Z?DosO^{Vq5o(8&~1lqjxSB3yc?Z5*Z4!yHTcaxpF>|MjLhq` z*2oLqL+;^OlmKe%tC*f@V`SM02gBDgD{Cn>%HSxe?}<~`o4)U<#eAS%y0$91$PV+5 z0I;lWyI#9$*IbIm&Nbq`a9k`NB3Z7SLgRCY4h7*w5xFyE*Fp5IR=rwdvOJ2E-fXv7 z+n!siG>ZgQw>VG1A{yT-GVkqsDpsuCA7`Lq@m^1FoF|)92(9hir{tj;{}e;g9^Sh;*Cz(~8X z5}(dY?0gO&vi8B1lkAOm5|^K@%(8h#&@_+g< zm}5C*6^5TU!Vk!z8=jElnq`BAQbQd`z6&J|>iG7&Q0Xg!g!Ddti?=VWVkavjiFC_` z>59=x=l4#8Hgl1sGq73Rg zMw3Io?jV9UM?Cjm5bzi2H5#Z>LZ@S0&JKcTV{!OFmp&9C`4d5J52Wg$m?0Oz|1-hh zEg;Pc`P*?^&(lT^xbY$reM$@m787-qax8rmmwU>QUgv!oAfMTGq#>qvv{?LDoL#*IOsN=tMZxlGHGM6( zHqL>IhcFn#5DTyeD_i{8*caV(05HYm#A+hdLXVV-H6?@$`6_+Y!hLey;V#5KPJ11O zj)#}Np;dDg*WHQ4#052x0GQ`wW7O&BKX>X)FwcVkzrqX*7oCNLwv|vz4IC1~u{@z>mzwC{pUxz3GY-_wdCv@{J}=q_Vwz9PNN{xZ z7m1AWz@i7o-5%D&*B)pz$57MEY?h<6yM!rq+XpG+tX)g^UNgQoumnRSq$bo)CSDB6 zeW?tv!e>f5$IzdF!J1pmGWi>RMnGJ9SN_QGRN$8_(hyKOK{1?~7-cn~$jjY(9rpX0 z9>;ikTBo0exGkP`8GGRpT}ZG0+k0zxsZ7QeYQdAd;Vd;Gr#L+%^ccG4&0RrPX=0y! zi6UatoJ3lc6!A8O31R9u(*JPJ5PlIAI68|`5ZDMnzve?o^W-&>%gZOOA4n^d+S*{5 zpq4&KqEFJo>bKSZ6%!kT7gP#og8`%`ek<^A_d=2@Mw5w9R%bg$i8RxU%-U82w}>ds zRi0QFk(W+Jimmo`V=Sp}>Ef0aA%g~yzMSIyg?T(2;E0r9CYIRLoEg@b_74Iiel;zv zE$HwWs|p-3z6+16vDBVZJ)e$rP3$9zI{*vaT~y$fprdGuJnY0(dCA~@^}Ut9BNykr zObK_*QhJv^Ba9(?P;DHSZ1Fj4pEq}>gnuOhMiQayFZ}mL7}{@j>ElG99&XJXx;^E#_#t^yqvLU*ob)2$o`2HQk{K zyva|lW&>*YPj;h2{_rlej782FuftLqY*&7uJnP+7Nq*|R=N`Q8n!=QDQ_p`@ND3-^527`%e>x|tonlV=o#r95J z@sMeWWi-{(`vR;`=R%T-$Y2tVh3YHwUYLs++XpNL8QUL!3MDA`e=WdVhBlTBGX!7G zsrpB@VbR%(??!aErAp~Le4}Ru&tp@D6m^@{FAy{?*n|xqWr^&~3{E4!YnKL+zK;&T ziVsnuZ`vL*OP*D8G%4s@N-ye(<2tYACcqrB5$U>&*8RfUqW2AEDC2&*|Ms2FU~*^k z4WY5KW6R)~8#xsv*+wZLpURU{2XXa-OtQI79BJ_4u83y%yR+teoj-4K%UBsqR;T^& zTG(JVg8v7hr`LAmeT~dPxX_FS5rO^5VB`lcuANmtR(Ks$rxs|dp4}Tc;@rsnAA>do z*r2@&B}8rs+KQCf@bpK+ydZFUz5IBn*7bgz$l$=`@aZzTPrqbz;U>6K14!?nRCNSj zP{V$9T@pCFQ@-@SqtRUy;v$a#erhQzTTaC_&)^7aiy|EH%(i=MSvM9((Z3xKZ=OAN z0Sf4Mon&=`UUzP%MkHkhNL$n@xK%tfC^?VA@xTJ9KJT5nk?LFkyqD_>O}#iGVT1Lh zU-9~d8&^uD9_L3LF?eL;+xVRe&KxUvD5kcydHr&Z`aKd-N`}9@kX}{MaUvkkUSVF? z*y$wnn~CDb@@#QOyMv=sVw~Oc2$LVEzn;mH?*i;En4f2FaX_UH%J13-I~M2?4WLDU zRSej!{-RV=*ICN8EK{t-!CB#$+WlCF63Cb-s*4;4CPfEkMa#DEM%L>%RA>ZnFpQq# zf8(AKx<#a|*iv)Im4Ab<+>cZX7Mv}UTF;ad;6CR%+)1i>{K~Kqv#R`yQt>XZCyPW1 zA!TQHqP(^-#Ndy1IlKe27JLSDM+~c8>d?IX5;;f8MUz|#ZkQ!t&3h!z%PEktcnSt~ zVQH$9_a|HDqkHs4a+>si&$tOkKeEy~yTpyTrr(-4f|6jW{hC~3ECIu7sr0D4#)(j^ zxuclAHHtMkhXKg6y)*QT#IF6V0Zw*DJtp!c ziXeX)&1ZwnS$2~di%%SSZwlG1%?Gk8xD`^r&OkOJL}=+LKmzKqpB~$aCELek6H9UM zezxZgGFLhy*Fws4vuUM}{29&sGj7(C{b6(*y^Ne@F|Bm&X;Qx&o_rdiVtEYdB64%X zOS@H@Un} z&4~^gYkC|^b&eE3L=)ZL&|)dDIV8kmo#l5qxQYIWv4<^;4;7pM?+C8?Y}op~)^0oP zNuy!j(6>*`el#58XZcJdB-1b3s`5N`x`GJ7yXE^+vX$#Er_(+q5DQ#=R;w@FR?!<^9}+~Ub_U(DpPohJ6N`EKTJmo;(QV$mP? zUT;pBy52c{2E_4K!)*Ui5e9q46{@=39`0yr5M2M{Z_^l_T3ITe~b7mkF^Uq?dIy$t3o4X;aujsX}kLEiotim z%eS}9H80i+{1lC$=1=pv#=g99e*TA*bcQVM8$;|BbD_qwysv|!WDZ3}hVZ{))V z{Q5ddPOYG3n{_bK4zMkW&9o3g>=Rat-3b-Y`b(mh%k2mrxAO8qsHIW~(-DYNOxds^ zk+tjKd1}xSQ0&*dx9G0$KAv7b2!@$xm|EsKgGpRM6qD_?RzeXF>eFaV%`uaSineo) z4Ghd0IFgZj9_4P2jh5tQ&t9d;q=_=8a+=2W!p6Hn>{8ic2aOU!Oo(ycwy}kDC@+QX#Lo&?Fi|! z{UK{9|30D$lU!lPSpL0(F@06F$r9#G3b`E*wwF9+$IYn&wWNyBXCcGzFxw7~lIbcB zKtrTnu#Cb!CND8_5)(qlxs=2w@P21HQsgr*DaK?pjV=*szcN*={WKjSekrJYFFKIS`|h_ZmH$HHnCCQ+TA7I^Lb>!mU``u_gr z;G5}9?0a_KVyY>xAlH~TDV0%VSyr|%XVhHQy?$#w8x0+o`zWBx36T1q?FQr%(pR)g z?*-7lYBkToy7cksVe^sl`ik@_$^)s**zNKD!o(>6js=XxB1#x(r_88`y|I8BbU$Lm zkdOPrcFH(n1W*E?bhfNSW_gW^_5F6y+wZf8$hFD}dWb4H&O6#5p&ELy@tk;J?juBX?Zc4$T6dE9FA?uNHAF3G;Ay7<6M3 z`EP}4+c7aRI0MfTsYeqL+ls($Hqs#IXk7NUP80z(lT_C6g<~=BBmwPdeWW*9_e+7h z{U+VkR9sfdIKFRFwbyDb#+CPq?B~0MPTQ2YJD=46t9`mI2?qddX^3JXmg-;!-%?Z;;^ z$(z9Y7!Wu3nj;|9$q@eDTD+IKo;-Z0;Ga`bCbIdC#3u!|EGti*u6Tfbe>n-L5x%@3&OSGp0g@xT44X zJHPm7uc6lUXrLUUkKk>ho!rOC(P`jUtpu6Ka?Bo|{8nM|C=u4YBKBq6pg9`IK7YZ2 zHg2Ahm>vRxGuU)Tw)3+7fDW?>iaI79%uYYQA@tp>4wS0ukV}~ETNPN8CC@7_-b3P} zuy^3$tkW=Db8(be&*r2Lj)P!#S^gt+_(1e!s#7?uS3hX+p>k7C9Uf+phE4$Av5d^8 zSj7ZT6JP2O2!J0*Fgu7Cc%qz^X^z3J61WojGhH=CAl78GEenR*GT+R>J`D0Rdb%Kb^gZr`TQ!Vs?TYd1H31qfijSCXtI{qRG$;pNS=w zF6>ATCUg;_fz@%Hvfzx=A0g7ENC~jN3OwZ-*_&ElNnzN)hazuK&ZwKs)y6-VQ!UUH z_yXNeDpW)DdZ(ySw`!oBQ{{J=x1V428^ujeU+>{d9LTokV_nsKt7gY>gpn#aQFivi zH65Cl&1$=-Es(}|>g}-lixP8fv}q&V# z6d$j26;*OiK8&1|{Cu%_ zaDlM*tY{fMNBmEQK{`DT7ffEhJv)x%p|aU*p*m3G=vd%M2LZh&X)l3m6?)HH4eRze zFfy}uamf`nHde=(DM)D;ZgNMh@rr0Od;CyEhK6@4;cY!C42=*lU7zVNnKZ1F$G1P* zd{4X{m{804P5guo@YZr?Wp{r3s0cmpeR>TSLyZbgMl0HuVIViLWWcI@AU&JFBumT+ z0K}F)z16|DFg`mXO8lH6XCgli>lL`8(f6 zrs!{WD{&%)0hDnmawHx&RsD53b`#EJh%+1q);dU+Xbwf6L#7cF`lmlywm}Af@VP6^ zpdv-$3haj}ki#V&fY$P24?lD=etTq?S7_z?OAb7@R>I+;3c=IyO-l0uR-c*JPtjOT zdUWo$moBFF_x(I=iOh%gTJyBw&kQWT9|V|Ioj22(6Z#<4hsRzNWENnqO-T-Trrt6c>9SgU~ekvwQ##KrO^rT z!uf~wahYwviOEcrHYJiNOgra^p%^OLY&?DL7f~kq$m^Qx70~7S;%h_d#^=A^8?w#= z%1$4;1tyX{4g)pu{IUidYpP`N|Bt3`;EuCv+iqjqb{ePQ#BQv{wrwYkZ8f%STTRla znKZU-H2kjn`PTafX4b4Vd++l+*jv~EH4O%O0FA{R#f8fU;KtO+onyZhyLFLl#u;)%dr$$4jcp?U{> z+u2}%X{9Ak$nzMx@X78jJ0$#HrPED6h2IN={1`$2yM}CH#Y}bxQB;@lcewrSS=q&@Y0oo>N0J=?=@p)|PCXM2unyRCBe($R~XJX*S`xeB9PYE{iKQO6`9AOfcM%fc~SMI&ms{-smu%t4f{m+@1_Csw7o} zt4kh3hx2D-L4CP}nu*G7n7q!zh0qds4T7|X((P)6VE2Mv07l;(pUsrR~|TmoSWFk;)xf^aMj7@Vxq1agy$j~$e8AoG+{@8Z<-YHmQ6Ez*nM6RSCpOSSN(3c z#aUR|SMVJ}#5UL~6&rMD3IaU^3+Km+eK}AVGk-4*el{E^(7ju(OyB(H2u}Fi_P(dh zj8k5>J{RMlxI|ol!eft7S2AY|)CeJr)+v1WK6S+Exc|=MeyNO}xhO?dAEUuI4LQ6O zdOh7PJ?NKT)aUnpGHlJPDMJ_PYQ1D)q_6n#V$y}BU>cin?7YNht!Z3_Tv&$9Y$oA~{#3Z?$=8&43nd)bj z#66(7*hbC!)7%%t?g%I!8^UkD*xXJi;z0v!qQ6vmF434>xEf1>ykQP`!P?c8`|598 zzUQgBzrf3W=}xcx9`=*0o{Q5#7GBiSX`U2F##U(gRa(7Of5`5yws_v3XYzc^S1qKc zO`n#^Va)WQ#5^@M)*JP3hDW7l$tNaf`b<=47vF)_@WKxj#;dHcrw5K0#d@`$jy&G>sv28|lZe_6A zrS@2chQBC_;4>yQ=G>JW@eFW`=xwFO+-G7IL9%Jf5p-Z?SofKhL=AJDV%R;^iN^Vh zbVh#?G{z?qRB1+wsW{BD&R%)D6jDg>JtT;Y z`1N)B;{~M$e_(mDSTZ|^VU%i}C{s0OT*alrGXvY|GE~uQ?@$_sY+w_|?@${@4 z&m){I0iTVdk}Bk!YKE?3nS#O4`Wn_W64$myjl7&F??F{`xF>Zd9dm(=q8Qt`W~=|; zfScl9)FZ(23r3-Omj`oL5uCp5S7ph*hMi#B(R3IN3oIBG{k|@HdX8~1OVoFM8FE7; zMBzBz<`^Gu%YmYC^Un)BZJNX|K&PRVcGpi!`5AV_$AX#b$y>f&ZC`%SSu$|y4tsQQ zB-P?}P2vX`{?p#Qeco7I?%O#?Z+(%7=3=R$wdwS4yms|`0~yS=%_%(J7x;$D81y*t zwCW}b`m!$@O%~37JZz33b_vm1e2+UxqJ{(7uCfsZwRfa3I4KCja1h2GshQQeZaxLo zXNG9<1DdA^K&Hz=50I{B&QCWk&SOX}rGYYNd9n3~GOSQT-vZq9@=Fzv!wMwInMw>; zM6m86fa=k+#>sI7KBl!=NTpod5O-SkH|*Ighy7_kY#k5SQv%1#K`Mil1pnotFu1}c zYdi8ns>rg?;EHFP6WPCZ_KbAl{xsNodx`{hiZ=w6FmDCPkc0K&yhHvXNHTXxRmbv( z>EvqcPz7H$X@3YyosImL1~{~1__c62pafxCYSX=e<@Icx`7qIa&-mR1+=O7SELdl8 zafW}jXpc+4MnCtN;n`Z^tyXuMt47oAvi%ObR@^?lYCg_*ztL#PcH#(qXsd45(Gqq? z;Ig^WGurp}h&A}C;A*iJ58l@d-tKZ|wzUh(f$m4^p&l#lUq{EPZysAC!kB0Cyd=>N))zh!q6@y7`ADn zXdgx>%UOb+c)7uL*h~>3&HaB36b*N+T zaUE-Xb|lks`WvSG-n5^be(+wd_NbWMwxU&Az6h6x=gqUt5V(t}SBJDCI8Dtj^yfXl z)y%aWAwh#Z7i*)DV?MX5ZN zU&4Ks+HT&Z*IhFfain#I)uAw$`3{^g!; zf3{Ee6pzl(;DA(GFiTV?bd2<5pW`e?nQ?HuBjeE;%>%+%z6>7mIhWhB6??`Wn&wf2 zVj^#xwdJh8=+_QAlKvxfDm|H|t~w%C^o{3**>W&HuWV%WXG^03JKBoflvKy!l~`h- z^CT1G_56-M)juKC$F^tHpEPr5H;cYHg$yjichnjiA9KK#hwj*GB7LK{w$V$n3~n;( z>9h5kH+mA8rK+KKq6Ng7lKt^`PO#NSalfo(5@ta=exXx#Y4BbB@%AEb8{F0&bF#g| z(aieJ@XkvdK~fHF>7hA=stiVyGZHmUOUDRS*EbN>Epp|h=nCaB5pUVYlwKyHo1ViX zVx}3x*dVRu#p42ts#XFrfl+64`ffOZ$Ea4%Mu|W8D1xFhM&hJgX8~>Y+%+nDP)kQR zDL9nIErck>bB91mWprwNy^wutu>m#xaADiiQqa&}HYfBre}#lkD>Vvo;7W)&J#J`2qT!?`4iRdUs`kbFyeCNW(LdtjJ z@IE#o+rJASx9Y?!kP2-hc*2rA^`075SoN&NgJ*b3^o&H(wl1Y&fn?81dO)v;PJK;Y zu&%K-7qZyCw|*bz1doay&U6x)+WtEwUfRE$J;z*^VXkFq(aqxMrTxwUgO;u^f)-KK z=|#62^2ic136#dwqD-s=PK=gKQRh?tMQoHIYy26!T;8>`A#pe!jD3j;_5N@PD~(@V zvBKcMH2YC9llxU|{vHw*@$zj(%mf3fp<)DU#$x|H0bpP7j!frv&(*kK6;F)(_7qsN`C0Ax*Zr;UQG zJ>a2ZzuEZ#M*2iEy79x7#BhYl!TJb+NL>RaTO|qy<7aen7N&_ZA6*AQOj%p%?H6>`3ymBQWa)pZ zyJLvMVkuZ|h|6 zb2NzgXG0)=ugkypup6u{NlxU%-4E{D$|_ie0*zsefVcSc-ui0Scnzl|sDFV>vIqO9 zHt7VvqXc4u^5Nx&80{*U=ny#uZHre0-u&=;1S%k6HRPFdEglKJGFXr~QHlvtSLW8D zzR2I8?JA!|kzF`cuP7VTW{u_-|K6tSpm7SUM1?i{g`6lH;4u0Ntec2iZ-aY6-$INW zPk9T$(bLuI>me3up6SP5VKVO{5_-J^|F3rMrBqLJH>!i02u5e`Uw$dfJ=}G(#5k9R zl*V>@$}?e--8A|5GV2$tzJl3yC4N-mupzxAU54w|_B(yQo?~B~RVv)*Rb+P0_7Zy! zKM7?-EF9--=^+(oXI<%t(d#IQaZv#bXK%?o9(3zd*#$dAMsW_Rnt?UE7`(ejQFbKY zg+dl3z;#i29HtrgKP&*vRx^zvKt0?MLeu{AcNFTX6hHkmWxv+Aaz~81F`AGniCbg( z?Da%a0#k#D7sJ4O^R9+?>De9w7N#UJN}0SIj@@07Xn<@f_PHtHabk3*k%S~w>$eMT zDWd}Ruh?IE>onn4QZG~GJcG7ZYLV({9N=Jv0Pp#(Grf3*xtrskN(aju*x)Od2QLA8 zTz(#mK=zaNadZK~!f#LsL76%bR7_#((m0|z#Hx-1O63*Hs4w2S%(y547}&H&p$sQi z-~nN@O$F{9P&JPJ@l+xQ0n>XvRiu7f^hB~!l6?p&#t8H&F_j@I+j~ePA7?#njIP^9adES3O*c>#q3hy9-{b?QRh$sg>QR+jBVuO+|Y! zk5QVWExA(B1Vu*@AJIcR_}3%)Y1T13PZDVu4p)ZKFA$qLclFRYV`WZSF_-oYk}=K3 z%da{i0*w{xt{?oFKI^uApxr|KY=bGFG8g#@-7fSSe8aD(5=&Rpn>*>>OXW3KxT~R* zec0?9iho=-o=>JpT0g3JSc~aR!=H?P>e}p4=qs6F8VX0@1zcLPX>~HP3NS{zSdqGq z0d1vJ|MFkng~>3Kx8Y%F>EOcs1TRZ)vu)hqvWK2{o4@hzbpD8cBlm_fu^=?g<{w7I z_apg)Jzm=bEA(uu=A;FU9Fdxl=KOc39t3XC>0<3 z8#p6*G!9QRT7u!Q9Wc>WYj!oX7NASE?k0?#lL%QK9lMk+OE=CfoN}`~`?|5>K?uzK z)$;+^&P;y$VSJa;xw{A-R2(L)-rD+h)%k0-eehl}yh+$h2Ctw$bWzT-PyW$viH!_B zJ&+M7?(~%J&t4{s|5?Z_IXTf{F@)sXsaxL04<#R=$_q=)@=Vm1*SRv;QbQvmi#U3^ zkqsS?xtcLPczq>KlRVM`dz~O!f9Rq$1`|>e0`+Ez09jG2ducl!%5kS?c@u;(^3Jzh z5cwNI8_Eb0{ukj|f3X~vtV4m;LGkb2bmX7yg|>NODW)P66^~bTRlqQn)#A`+(9D!C ziDVp{=($15r!YzQ+~s7Uyjhx1JMH_Jw@{GwgW!GtXg&$+Fprx#B(~FRqC4SK?s;g~ zh2>Ict~mE{SmmUFc=BSs8IFEY4)TD1asOp(5790NYzV!2zeYiKk)LbfQPb%$FG>9l zlTC^GqR`>ba|2%eHp3n{gHYqHD7H^*v!Scr%3WR+7Fnl9!P0KF`l?^_F1SC4)CGId z%6B?B^L`}~*-jXOd|uKa#9L$tO7S&+tkluyJxDzNtT*LGT?6_+NyOA&?Gs7FYNu^0 z9}tr7-Z~Lcah=aEV7S#CSDfx_{g~{lu&#hUwv|4`<^=Z zbM9ya_mTLd8EJiN+%#C9;7D(IF8qj8{N0OF`8GKk>X!J!eg~d3CFS4VnT=%G!Tgf) z5nQ_E*~O^Sl=YFv>4ul%ss+JxSPbL|lKk}hOtWmM+5IAt7)FTQy;)gbfDl{{azUDq zLg!Z8*Ro*HZ5>neM~hRUO2a;H@+E%2^yOk-TU~=pQ+-yZiYoJ|(EG+XF34!(cX{9X zVM&*R&fCGps0<#>Ywua%-5C7gO^wWhx<<^X)D;UMPH(*jGSNVNAhdZTW_Q%vt6AYXOgNrIo>9g^>|ESYGW2-qV&);oz|wP^ znMG;YcSUbCHBzsKd%)q$zzo6!dyx7zc9-@BdUhg0KI7=RPU|Ywt5B1G-H#lPC1ur# z80kw|mThG|09GN7i=CD|hvx6oQB!JF?-IYO;U)tMKf_-g-w>mh3Ae1#7(Czcj$1>@ zFZTMLw|>$|wY^7YOneW_23_cPJVE`y*Xwx=WbkMmU-~{RhcWR%44~c3?mPcLah!Nk zb|Mu#l6H~Z0w~nBiI}Ti?!#e8UFe;+Mb_P>`Ee&-VKaR=9?!J ziWtf&++_Q$RL>2;P**B;;UO}OGS{RyRMP&IYFZUhv^?RxpFaG_|LZ8Fj!MZ*(#c|E zP(PniC$^)Nr7uDwK~p$0w7E*~l&;`g;_o^Q>^^j|#o zT>PLR2DP>jYaBIA8C<^KZ@h66fmHXd+nvm{q;Ft@h#shd!)dxoj|U9lHa-sP`Yu+(-IUeb4bTYsn9lLj)@Eklc;#GbFgBOIJzzkPE8KMg3jlz3^3T7|f z!XHTJJGXwTOy}~kS4s-6MLYCgbZRYxaIGNP?a2?+-Dhhx)_0o(x}#CK-DB5Rp0!2&zD+1Zap7(w}C)o z!nQN0Da5~MTEAfAp~Rwv43Kjo%L(BBMURyq!wAUY3qUa#rIL?1N%C^(S!uFG(x&MJ zUb;Ky8&*xhlS(M*C0&;m#lT7Ku3jN_1g<-z|TU#^FmM&l6^hH!B5b@h7n zkRWJwTmu?fFH*3u?hUr>_3lRMV;K_QOQ5d{?DF1hmu0z@&2h~#_DC7;x!*015&7M(Fht=is=u(Y zq(BpVIP5bRHYY=igniUEDQrDp*OiyPuQpg%QAsTnl%BZY2s-9BOxU<|P(k}#{pgWT zL7McnKfLjiUqGDc9I0BOHGk+Z?jMHb4mfM_A)p-S>eXcBcCZwVUhBFp`h@S_MBwfC zyw6%Y#W_+E2$O+ZP|0ZV$1S+*n+x#`(f#v;8?6B63oLAArIFHX8phO7`jw`P{l1}g zm(6-tfZk*6&;^DUIfNp~@CHoN-Q2bv!^ESX|AyV}A0LtN2&<5mdV>_lFSrx|nWpwx zlp-K_(&dh7uDx(3cV&zLBr80YGd&H=n*jaJG6}>XshlLFv7O1v!YUy@>$j1<;NzBR zN^eGyH~W$6-??i3oJdoF*M9=f-T#K26av4z`L28QThi}f!;o7WbP&hv*M;Kn(V$zZ zd>Ahg5cvD;P|3_f=o_mnSK!?Qm~^8V?%QMk-Q>0a(QNAe%e3|r84+chX>epvFx>6G zRkzC(sAVQP0{Db)5_BL;d+mpv(=Lq;;tjZIy11MLEa{M<+oLo^dIVbV? zhl$*fm`@%e)DBO%bKTDovWb^XflwS&QuVj*bvm52t&y>V2ypePFaBlGY;G>Bd>FN1 zIgrjsJ?-_~jztxghm~Rf0?EhC#aXA>=JePbEYx$+CW8c7C`WaP5Id0+3N{*9hESO_nu$2RH)Jb8I0pt)DSDx6G;5bD8A z;(M~+mYm#u+Pem`Ip{u1{TwXv<-l=C5}8=)MmwVA9vM~WcBNpbWERR5M*EWlHInaq z>$*_y^I!qwixyQV4u`VJ>eXCQ>WCS3ti0hDxUfMZX7X$#KQRqrB6%07y%~E;KC9xA z%uX1~yXdLa^tyG=_GXIZ!)?cQ7XCEJT)*?yymv$4JP43`egprBX8zBNEz(!NgRB$y zNnqtwFt5~0bj$8orGT$05@pXa7`-maDY;+mIlV8R{?F)u_+Q(GZ(sf(2mb~VA=_0E zw}JQF@gc5%cX4B-_Pnd-6Vw}{`0iHD9c2hGDk(a~V zp%~2F=N7mxaQeP3Mpj;_tNYp9HWR}Qlv~`I-_`$J6wUzQU%iiWhyQrAhF~AVE7faP z@BW=2M=_$FEWVt1dF~S(i3=LE`0uZpwb(A_a>KEH7vC<`2^|6*V@x|3*q#+Rj&6Z8n1>@(jGTwXS?%nI;J@ z1CUU`vl;W|3iw>*24r~8w)?oVcC+}`4YC7K$g4;gk;GrU@mvdx7R`9AHG}evcvN+@ zwIEMY&+f34&~~1v((u{W8z83uE6ErVCOLkjgBEqX1XpPYbnvBW-lJaE)yc2BtDDxZ z+*8x|mg!hi9Os42Z4Eak)QT1$eoB=a8q+(1WOY`$CWp>-;`LBZPA0~cXRq;ER}UE_ z4ZWmuU|BJ(bz+k!)QI z)y`dQ@>ZV~j>MIDLk@Vm5rb8zqW#wrq0uT*v`~PPDz3M~_gkRFU@L;A^jPgoI;x2I z4Ars{2ph~g70MFoD878^-Qci1!mZL5n$=7_xN5Z|4=)#XF&x#=aYK7hbfd1LTfGfO zz7%48b8d(J@Y?a3oOrmfDwk^M;8G*@Hku(QzZDjf$YiLXS-J}zn6D)Q!AA{XL31uJ zF?{CaXKx9pWr+Mw)Gm(vWRF6P*(t*oM4c_e@zYw_Wh%K#{W)9k2}bUR1#XN~OP6}e zIRi3B@v;DC;OOE*9ckWN)>$-rROHflbhJ&jgz?W5uLeOPC8)2f$H5!VoY))D5dnRc zRll47IOD3JyaNS+c2%$IbaI2I`CnyVvg33kC0@+6W&|Z}bK>^Z;5IWNM?`i4vhFnJ z|6u{fE&#~9h1c`-veXmyDqrfaXeV^vHZ&+xDL@HPEdAN@&(^OrSOVh0Gv{ah<;M}d z-RZF7(A}FcWYY4mG*g!W)0=jtcmqW4N^)XYt>TQ4LiiCu{_gYpH^T3~{&DenZ2dk9 zRJvL4J7o}?lAbPx4$T4-6+bh$9S8rGY0Dvx#(A?E$vz@PExQ#^`WWk_0svP^0km_{ zpoEJwk|A-sRnw*p9KgZ+p z@-R{5U<GF?WY)3kgb=*}K|B5NX+|hw{Q>;3)GJthg1e58#|Ad7ro`~&-=4aO<{xcwl zK_NrX37FdQ_m(>j$&iH5;DWer+JrvPzkDjd)=D9AUj<@^MJ6&i-E_TW*vg?WbB;SK zAFMAdGlz~&psCkvcArGcZ%1^R52XeA z`52KuSekU4;&T5;bKA#VM3K+p3!OyESva6VWW|`&AApP>ceEIcY z0H(m(WGT-^ivN1`3tZ;$-uLeO2m}lt|2^-budHOKszP4B@)pp_z%L3zJx|R;+_!>a zY@Iz>LPK7)$(Xykzeejjm7mw}CR7Q^NF`W)T&27huxx9nL_wY)uKbKjb)1Xb=2)lCdl2hn!V>T zU`Jw2y4q`iwxSeB*r~D@oYRC}pZ!Z?tqEnUgB(ifgPNMA4&F00EAH~5EhDSSIQ9dQ zO?HTGt;k7M9WmJ zb8|nWw*u^dHr%G~A?pc?8s!b(?toEM|$15BdU=c~hL%pSa)A6j@6 zHi0P&n1&b7P?p3iOg;+o{F&IeYPPPm7VmC~vA7o3>+k+ewTzIA>*HGc8!tu$DD+xN z{OeVW@}ODP^=Hc7mGi!DCLAll?eD$B6(!A$#LJvK@b=oo?IYr8>(ALqJb#q$x%(aZ zXp^>`MBJzI$Q-k1;?i0^(7SOLAlI8PT45an<)(7T(`7}#GyHjy%84Gc2y5u5Fqk&^ z6Qta4qVQWPiss54VK-SOTKY7CZjaGa0571itw!NO^}ByW7dwP%U|S-px{8RWoD~cI z(&u>+55Nxmvzl%Lg_4ty$gFx8V^fo)4|mz5{hxbGrgY+M4Kk}i+ldwyei;%;LL|y5 zWH<-)wd-8Z%>bqn4Eg+bfW<-U8o_nE2!w-s`6HN(yr|7M%sFSGCIoLz8aATQ;un^fV#3JiGxFXR*ky-c$S!I>qTx z0U7V@aA%q4KUvPzI$2_;sIE`nCIAK(@G^geHPHHJNyOOxNJWoO1dX;!7&s&Y5Apl9 zae2d`;04j+jEB|fcSMN|*AE%Mm%8D&9}4ZY z+#JR;PcwLWiinf0uIk_6wg||W664EdC6KPRGN-R& zKzU_%BSBOg5exw*Q8vl4txGA;2O_Ic2Sg=Oid;h%io_uBMxvJ~RXMIkRaU-vAHLmn zPEx@W-ZKk*#N_y(LJcKS)g4M|=>5z}{Y)sbuA!^_Sso1L6!wx(=CWID@!2GoPMYR7 zd&V!5D^lAxH3t#L;chD27;mtD*h zqwhZF?`(D1trvN-d;`7Km}d)GoIqRT$jIs^W~nKwK}wcYcB;?2;@yuj@pTf&%CC>w zb(zcKlPYsUTEv+L$)?nm(H7@wZabP9C~IlC>A6?V&_*>@UIT`-|9>g|hus2~;!eCv z!_%m`w)I3sQ<(>&v|i{>$iEFC(Sk!tak^30dSoZrA-Gof_UR5A)fF^ueUvjz^E5G9 zo!%x+S`uzdtpq!U>*$=EJXR0j>pc&vq!u&v#u+~6qkhG-Iws~Suxn2>Milp89cGFk zR~Cehuz?94Z#jGZATaeIgo(bOl1$6V2G*5Vkxu7}ZZtnZ!Xf}LN{qCL2xYMG%mM^U zw#y2mQZ!UBx#h^Ilfy;>EQd%i>|F+{ISA#4;%}w=W02cuu^%j|P6Kg+1gs>PA+4?A z9)n)l7Go7unAbSNHTzxs+zALGLmP)}Fryn+LGeW%~DaAnRpdOVMEo#K7dc1C(cc% zT^=|quwfO=<(GOg&BhEr2q++qmgw2B>g9>{U9~?r#^(Yq*g2J2#g;DN&a521dM)JC zXF^;YyU>HDpOhMMo=2}SA?g4GJ?d;;w>^6i0q$l;3=?R+XYY!D6kTK6Nm0ezD1~;PmCDiMR}jq+(aTDhI|cB|Kij%|mJ`pFgOaU&X#jx|Dw<^z)%7q?Xz=R4 z#?vEUg)TPfL2IyNaTXQ@$-MlxFsw>+slnFIt)Nr_Y8iblxDVgupu$T`Sc&9k%Kg#r zs?wfYAd7Xv8d;(YpZ8VJXwc{dJCC1-CEy5Pu2h+hmuw4iPY@6JQcH8@Sz@NK;eaqU zo&@B?J>rstb&#y}DPDFH&BhqzWSIq(o}P8E|4~VHX=JCU^xjhXy2c%jN}`mIESs znh^w9C51QwE=S;c8lL)16@9M_&2ttnA!=l|-qB_=MZRCYGX3XfLYP&&$Wi1&CCRsJ zI@|V7ObppIg6O8cS6164d?+QEzpT`mHzVI8F+E+?4*{!wn$iZjJzzNwE)WP0rb8*o ztK|6^2DmbT3EI9NF!97(605?Kc)%3qYS!4;OTp**V(Wzs64l3HtDo-aNU~G0Dp*_k zLLfa1u&E^bGMD90Hnbd@XUUI`%P=rAIat~UCV%FjxysDRNISbnqovhG%A?IVuDJT9 z)}r(UXly|AhE1QJYtvxXi}*IQBBH#sc^?Jz}}Ie9fE;{7LaVVJV7>FCs%_3 zW1QsUVw*CfbLaONrP=ub{L^}dHy;agPmrWj$9UvfhJ zc+V-Y?CZS}SPFCzJph7 z@%MltD!7q%Z%dR)iSAGLK6Y^#%Wn-XsK{bw1;@*8r0cy{+nz`;SVfAOS7h!pPcG`I zmz(Mu*0^S0&NRe?@VQ>P1&jKpsW52S%cv;h#?%~r<;(GnypoFCJH$=!qRbfoNCWvk zW89hD4vx-TuYTH%r}IfUsJ1%aNoxQC=;&0zd?%Qs;bubY5>A8d9774vpHV)` zZyzSv{kt%w|HMa~#Ten5W(+ZmzL*DRC=aGAJ3tOZF$`yF{BEgmkx%Q+Oe@AtA0!{~ zY8nS-`1z&ImNYY4-quZ1c%;{34qXevtF{KErQb;zSz!4BV48j!q01JSp~#QprzJf~ zEQn;_9-Vy#d~#x(v-nwL*sb7qkK3`NFJ7jA5F`lkIp*J7!ZE9!ytXFgp$lqyLa!(h zBZNSW=j)fjQ2Cw>@H4%%kV2kUX4fJQ>_#Jq1`PQein6-hv zwV@*ebgkKQ+jML?mQJKdz=!dkZ))ad$BGq3cd3&g7B9&km9$=4Ttbzq@t1@1rJ^@m z#wo+9LfH)g-7vxam!@r#aFysoqdcC#*}6oY7IJL7(8srL+A?`TYx-Wx!1F0BEB$SF zA8y+v|4ks%lT=H*%4Ec$_i1^6!%Ry?;YNFyIFAaS11b;}or8KDSI0?yL8PAa;ZqTt zzJyvVRaE|o*JII)F@+WwE?+dy4F4e9+$)TQQ~okJPu8SK+0UdfMM@q%ztGl}H|ii^ zT3_A{(zS@euB@~LD#$(^GkRwUcJkD9si6|Hj&6jFX?pb6c3uAGTT2sV(~5@ic#pku zsEs1OeMPDC83=&7VC{{kq952jO{!U1 zaXN5y>)ygJ{x=##RdD3JyF@sg*5QZSUm3L&57$hkAJ1?x7ZKt8Nf5|4^u$C6m7fpN zcp8;d#V8KJ7LpWK&OdE4G?>M=>SUHqn%O;wIH7oNg06v*oMuhN3+5%zejOmQ{Ensd z?z~#7cFNuMK02<=9ZsxDH4sr5M)?#!!~kuErO}e0!G{O-3^cb2tfNxilE;Cqq7~iU z@i=7LsCZPN9}+xwkvU ztwACl1h*4kQq@gWwv=6I<*K_NOo5{5o+OvxP3JW1X-57W6)YOcft-oyMP6K0;f|X& zbv?XmSi&sr6eT09!l#P(z%gG2k}}#LvsbK77W=+ci&&_gOz=l;y-q@yD`bAHuu>#)fO>xh$j9Xg@YH~!^e9+jutm#yC{Gy;l@3{w}% zQ0Vsa6f?N3V9WtVYpKYIzz7E0%8J-0Xp}Qkbs>jN$<{H8(WuDi*)~$Y_t#UOMZ?>4 zvW!lIH<`vR0Gda5Q%;5uGiYS~^Z9%L!tDXN zW1f#EQFVQZP0jXHC&k{}%+q$;im2KU4osY{@3M6M`9t_$%Sb`QCj9;3p-_p`>J^)-DQi8gXsv{@v^P9Jx^F=q zE$9g=c>)wXIv4L{smz0;8epFuUE3AY67iTS4#-ISbsDfUB6`E^pCHM9hGcezEpF(A zV3a^i4w64`_Eap#AJL=#`7APAt8tCi6nQKCa)JsKU&&L<2P3i?SQ@=pwwQQwe zDveQ*6!oRWc%bbUOVO%{)c|^j_}8zY6uX2+@W``xhvudGrX}OQ5YG86HF1pHDgSqP zJ3s$-c=43SGfu(JL!i=rlg^pl>(1==QF>`CD&^7sqHd`8ZH#WXPm1a6+prRqxQ6;p zw8X0M!Ah!GILe$iG!HtIk~pe3;7f!%)F=qW#O?I9;DOByf*MMk(QT}mY!pz zVk)*M;%1g~MgCVqlkUIT^BDWjZHm~(xK3V&bVH^R8GE~LoW80%2(XvJ&%fMJ(gM&JO755-0C+kdp$i| z_6ImLoSSe+vQv0i9F}HN7`yUcJ(m$V?v#z!;C3D`4Rro=3V1J4u1e@DK{ZGq582g9 zBkycUE8}9>Di_WDxrafmj{!&LQPyRg`bm?c4&h5t#;yqymb!i~#BDOF!y?h$D$?$taKwFkeI9f-74 z8ZAk9xlC;XlwQ&Njhfh4V6S5~lLGg>i=g+Bk_(eLyce}+D zz;%_hCsCActDGG^5O9KcY)oY??(>8Ua4aKyT-`+0K9@}mQGSKc{&iyNVGJv-=dGlC zOXk)bw4LN=P_Bh+6L!(xWLmPUw^zmNo%*wQEQ*x%Pmg7t<1daz=(rRE7E zA2>{dl4B&qSVUuhj`&dr&@;97XUcs7koK!qx4@Q z@N5k?LVsin+`VLcJ-e=yA1|CbYjiX|tNL``D?@r89Fv&QILY=qqTm~2&QBjL4xIn4 z^N0SH1#)%9NGmwt41Fh`NAnjGb`D;ys;(@-zuU>|Y+u93)6bIMc9Nr03OAHw zXw?78d!GN*>Kaz~yVQ-BRF3Ma)&0J86PV`##?(t>YnpF2Ma4pH!zI7Iy#3WsS=!6Y zjg{!#c>W}1rlJy6N zRv!1IUqmdzniZxVq{?FS0!m~ZP6jmXIk~KfTb-OI8$<^sxazaMwG7#6!oY$vB*D6 zJQl%!B~{fDOP(GxYc&?YBJlBqb%wInUfXv--^S2(iwfItA=%0;eg8MZVxx@$2Gndg4L7GIj11HK#0_uz}R31=1`{>nz8;UIA0~wV4uzk!3Uv}ZB6-;arn)7b zbs59RW8v+73-+_&8L>J(sm>0xxF-;iK%APT7CGCMZYnQ;mZPJ}+lp%Rv+wGXMvjxc ze7nH^NWbV;F9h()=5nJtW7?(+yd7>FOPuIgt zuar5FGjJExh$~UH?|ju?lr+<*;LHNU>{?1N*~g2+Rr)Nb98}A?nLCsq+S!1QR{iFFfR_bCPHvH?flQ^w(8$u6exakaO^j*7${xJij8&)ppo)brpX(A@3m1k7Bv-bk&tm)+EdOm}L=@ zNIGO9C8YbCV(qZnrEEuCb#3g7N58?P|F;^dz z=)UesZH$q3KZMa(B7}fW`yZ9(0F?tsjWl%Cm9>=@_=LtdBD31&O#OKFD$YWLTJpZ0o=#KJ$hvmR7v5y%UO4R)v5g3=4 zJIf&wY4<&m%^hx;^M8SzG>akhf`j97h5Uds2R)8%BNsTTPMO30>ZzOl@R zMwbCpi>Xs$Hs>mW2ZB^h%5qlPe683GyT8mqj7qgcdmk2tm8%*2@8o|znfiolN8I&2 z>lytW>Bb_ds>|zUGMJ{30~3*CzVYR@k#gw5X(hX@*82^Z(Ld|O9uXjUiK)#I+iW&U z!I8FGAj?kw6+Tu>s;CGPX$ilOW#E31)2xLjVQo{h(Cfy5i-hmgMF* z6D$d{*LnM5zx>dML@nn!iM-#VHx&$oxysv0BhncwomIteR$RiqDvaz zFMlaJTcq&|VQB%}p8&3a?uJe&3ZRmcc;#krgVTNlrRZuo8_25&(=!$E^*y{njc%n` z)ddWWAi7D)Z3vQ)fALe%z2*E=HxMzz?tMmAuIsZ#w#>`#+uL@Bes@=uQE$lG{RO3& zeYToUr!5XV5`>W#hPq%6IaOfefP_k7spFr8Q`cKy{cfvp@&lT`+t11mM3$KH)%?^j zKJl?7w7rPOc_{K6ZU25jB4GW=Xn1yO*4Ni_tjR~c3rlhsoNO02Zfg9GS>@eHGGbmh zR^dwMH&ghC`Prw(M|sk7tMU+p)1h~RTJIiSuw0nKoNhELa^H*b0CJvy&(v6a-s9Xy z=E7`3%2^&#*8McT5b@Sz#7_b+%)V8A1j$Pk$2fFIcSCy!8bJ+v@PHGg_>)=2w;Ym* z6up3{ydLMLmcHq%O!BU+;rZ>g-H4A|vljEw|2jrSzlJ`mxOqui5DYqmNFN}ol2*_O zDs|aybZE?Toa94NXoE1cUIEdBjynejw-|oi7;?~Rsa==b&?mKA2`Y+&YJiumYFKt? zTYcU;9M+AC`{JMf^NZV&<9Gn6&vikW!RK`X-w^k0{mkT4|LJZm*F|AgC~7mU5E|gF za1+QB#1p&_&{S1ZVMz+{ZqQz3WU^emLWeRCpP$)3G##)pl3son8;M{;~2qC z<*O!I!DGgFVIxo9ya%^c72*1zt2b%vU2rVEZZiD;Q6AL={y!ERQ^Hr-|E}QXOFrdr zi+MKIaJuz2v}X6!^xzCXv&Kg+^wpD&rsmDVprT06pE5F!GdSCjEDralKMSX)KymWx z7G~RIBykg{wxVOdV{yagI@~tOd7@dmo|*w0z|6u_ut%!FhO{FoA zQ_%dVb(&r1DdMwB!(WH|^ikc5$U9M`G3aehf(p>S*keiLvYJ12kuuZKRe8P)Q6FY= zVOB!d3_r`S3h8v9M4^(*(lQ8O^RoM_gxGaGzz%L(80a~km)s`%DHXI>zm0MdwyxN6 z&Dsw`1_QSQY*Kkrbd^Rm^I~(sPd3C6ilL@0jsI>v-EEARFPo%RXq!JHy8e{BjcxYb z&#%;PGOVJ$oX+Un^~r^^%x}XVuK>p-p}@SZ}4Vkm?RrYNqheM{M@$STYRhBbVw%)4M>rDZ5nm4-3T(6z`jG zx64wVo`HymXtg>(Zg2uoo-3hCHR@0I}z(Sd#{PbB@P3zsh->H;Tjio}4 ziEpVJgBqzI3!q^xLniINzNdePT?m(-bd7SBuRo45YJ#OQE7VNOsGAeK7wRhBY?o|h zS^utcrbgtLV!`sX`2UD{3#K^Ku4y+xgAPt`x1hm&aM$4O?(PuWA-H>jyF0-lID`A( z?yleLr_NjF4^R};th;Be?!GQ}voQh$2*vnDJ*9R^j#7`dQkHq3k+RC!^ynN}v)i|T zkYEjhN@GjGwvY-6VP(70&EcGH7A@YKU02Ebw>C~zqY70^H=-9r+l+xbnf#eODI@9& z2rgylDmcXSd1Ew$=Btv&&tu!k#>f{`;_B+E0PqChzdJtd!0YD^h?8k{dMP_`mq@@B zZTz^hYzLKysjRfz3w-y$oB^ELt0gFIvbpGml$8X@z}+)`CZ)yU9 zEe}*W%n6lc;`=~`5Sa)l(A}O^Vo4KuuzeKFd6RFw*7&DhpnJvhs`&jT**y(@=szFx zMI(d$R!EWnALxdg??W(Bj+UO!rU~=yzp+#?NMUV#T^p=S5Kb{EbF{YiB(K@f zz21w>3I2xf2d0wUZ|awP&Lw(6WtWCoh>D8jMEQq0y(4r20eCrl?D&<)<#|H-#K&`Z zyef8conveX)e*&ML_T*6FD6IzCC|x>4npO%k9~9>~(QJ z-bsv6RMDd(#C85}U{j^2d=vF#;n)eKXMCuG2en;7G1Q_wW^=y|kp(*mElc~& zx0Y!X5p)Uhp5Ak+65Cc@uVjar`RaCJ!dc={l@?Mf0jVse^Qb4oQA1GPKGZvP32g6| zbz=)sNl@}QSUDim%Fll)(>S0@_QyiX#oNhHXh4RmU?ctY>rO+py|Sn*szb{d>LJVR zzZ&s;p#E}orngEwnW&t8iXg8HM*AAT**|N%VP0(qHrnyp+l$0rs^!; zLRaf%`*@iu1?i`ofu{rCN5ckuXX)nrY9{8*@S=IdAkiO&bKHbE(v0#8L`8}Qx}8Ox ze>QAf&TLDUR9(I%U@o?dQfAUn+OiY(2mlAk2~cY~KOJ{5Sg{{n(9; zlt=^-m?jd)cmlqcxLM6rFV3qF2r)<{Nw`j3Wf4ue31lu$%v#GF!3fD7t+iSWr>#Cz zuD9L^DN8Gud&`n4{ZL0hp)7v^kDO z-DS0qFjX9?{Gykg4HQx8Qw!}&@M!Yk!VC+KSC}onpwi##9)Rz>8ewRxz)b*0Mb&pO>@Oo@iE^g@f)|T!X0Dv05(ooD$ z(~`NG9t$#`N~XdR$TJ6c>Y67_Ke6U%#=ELckTK@%-VutgW@N!KA_fUP+fJuI>)JSr zR;qK1;1WjmyUx{_S`^QShpBV@unhnnRX?b)H!~%y@*!0G`|m>pw?hjV84`*#OkTq+ zEZ;MG4R0N{ZDO!sOY$LqKP7LO>+LCxGob5NCWA}4tjt7LuvSSNA@47y5lA2%bNHvS z6}V)KAWIwKw?I*BanG9AaSoC(e(zk?3>F$U9F^Y43h;cYxbRn1{o$W~d3pW@kF6C} zvWFfFuj~GPG;r~)+$J63(t7VR4j}#dB}}*nI;Un%UsU97}S2MiMjAD2K+7&HYdHWvlE~Kn@qnC8FK{Wu4Vn zL67_LHJ5`lJH!>cJ2QL!q2MU(;la$(5tWn@iJZrswEHWkaPb}YpydhYb~APjUKre} zAM345Bbe4eisKf96xQQ5^s(Ok99x*`&Alunq~UqRWil1APrTF)qX2LY+ZrWEPk!3S z;QH{|fgh8307ocw8iIM9QnNwV;k^m?8JQOMr=*%h1sU-1kg5PP5wTE_#KokHmG*(C zN%dRMs0)y{?BaLM{rxJw2p^cR>5lzvp=0juKUjyT?%3y^;1ec@@No5Qv(wP?Gcj|k zDjbp4pGuA_n&LIXkBX!Rc3wjb2My|YoHN!`GBGe=i=$)FwP_vU=CFBO{uCs=K+x3Q z%688Jfq$8yH^nOAtj3vPqhU{Fa8;BI0-6F5?KgY-mA+WJbmZKa%kwl%1Ekg`xD*EE; zr}XuG+xen%S>=q=3|vBgOpvwUuz?EI+;1eSD9!tpd;}5yMNAhn?|ej23`G>QZ-qC~ ztZQzPE~O{W%1t?q=G=rVZm3zakmg;6$l5ph*igQ*kVec=jcH8s0m3UqmQ6eYOI_OI zQqwpG{)AxO*@5Pl5hi@SX(!YjF$;kB9WtP5y@LqG3tP9u8z%4$>fM}?usMO)??WjPDDzqZ z@}QLP(u>7G-2-DSkI+5~}8->WsV4B5Izi`wvHPxebtCmqO zo{X+*XC;Or-Pi0$vAHN~!Z|Vu#$~G(l`2H6U?Kocii9dQadQJ3$mhVLp4qn7Ut63i zteS?#3;yl`Ik(-yj#<5f*}AP5QDA>?FG zvBc3jX)u~*FM)dO&QS>dbz>la<_wSErR|D6?XUFrRLi`p*ZvGR8X}x_ZbE}#2BPMe zq&aP`YyD?l;skrtkkgT2e;LQEaR(Q;%ZtqT9C7no3;+7S;IY3+C>JYQmkc$OqZo=I z!VD--T{H#N&Uq9YSPMZPUeAv#4ZlCqwm_7k*xe^ zbNg&W0Sbf}khu)tgyT?ak*cINZ(T3`$tT{QOen^)=S0C$%S%P?Q{p^L$jJ4 zX+LpQa8_Njq^Y8ci~3h11NCAcW}}P0Y{uz||L7YEr|C?X_8(ymxg-ddn=~la^Fy=F z*O$@S(r&K+vcmCagc6&DxQ%<}zVXMkid4@|2NA#H}bOZFBc?GxFp91PSQk zZzb4e8vXrrl|8Uub=J+Q$SNh`@|(bJzgdsIF}&Cej=f3GXs(yFWEQ}?r3_yc)T-e6nHEW+J*&+9&^WCLuiocP^7i@xc_9Y(GeiX* zHLSpfPB_`fK)%*T@IREYLTFSW+zkzOOq^pm>VZH{M%5a)p)>Dl$n||-F*b0dOzOOh zTR&agzJexAmEspkoY(a&WUA2g*aT;T2@#e>rlgZX3V3><1M?!#Y!cjsBHn})TmvdC zD}}i$;p%TSYlY&((i|7aBmQp}usb^B86X7&Cl2@Xb*;X|HiicpWc`jmjv#kP<=(R%$SWT7Y&!~2Y)%d zW(ECtc^C~h5gtgioV$!D@BJf%Av{k*$xB#@KN3?c)g2N29TFW9r`qc^{CfLWu!fI| zkBx$nYJt`-A1nfvGIG+Ajo#dI-Z!`KTxVKmQB@0d7cPj1_=k$W7ZHF>0vc(u`L2wO z03Bk$i=~k4^A@g*oIlz&2rx;^YkxUA*nhn7A`i zCE$>7B4wSXZ(puic58TX?%9Mlg%l%fy$bXEAbBb8@B$0?OOq0gS+PZD0Gzn%EKrcEIl}}VS)fMQ zTYN^Rr+Z4eBDD8e<8!&(GS031UZd^{^S4t0M1rK8(6o-pEAYmEA)g(u1=h(5fzD*n zYh+O{men!R2zC&1edp-10<-?M4kN|ddx1gw64{l$9H(fV4#0sNhw3n(u=*v*sJ(7W zZ#c{GXvjHlqc0M2_#^+j9zD|aPL-aeatbQmo=e30lnfdZQ_)rrONVUWKc(y6NtH|_ z5Ie8TFI&|qteV{tYP-?3 z8~GHU_9iF?R}s;I+FKdc#cz6Ut0*{)lJJNThnq@2#xnwOz}}?LVG}$QrAM+Q2ZylA zID*J5(n3)@BPRycg61>Jqx?pxK}~OH3Fl-Llo3)49cKNjns-#v)tIz|{B?t4%yO23 zSo!J;q8&k;UNCW7db>vB%qkN(m&&30*St@4rOfYm# zt}sowS~ayh`=9uRPnjmQN)t)=%oAbS!vyfC? zurT0~?W|HBryGA|?!I@Q0dKP%xcb2ce_K07kuk9O6St`F>_ZR;_|{O zcv)DO2Y&n`$p6uKorvUI&#L&_;WO@yAP#2OGN?MS5m*=Pl@$y5QdFu*w0&+|h3MxF z!CGyu2rLYZW&K884_BlOEBx%Jokl+Rjb_EkS~QYFa&us80G9Q+%4+sZ{iHibJeewf zsj8!e2o>|foA4?a7G7cAEw6v0hO`Pa9xSkI?RmPDfDT^kdi>1Q+d2_Er4!3nN3(z+ zRVf+-r{(<#Pk2B&d-r|6!4Ca`#Q(5{+oD^mZTy=T06mR*F1SuE7}NIk(!eEgtWw`j zjX~Tn?jJB-7C&$f?q&;VWUe)-H<@5Q<^~Z1i@S_LML;@0kkUV81kfJZP@;pfI*}Nv z%aEs`VF+KzazN0xH!+-o#ax@|Zo*aR0LyK3OPa=;aN$??N3wGLfuafh>eTC=lH%JC zT3r|gn7wcteO)9Jbl+)=bPgl;s4!HE2rV z#DPnnH}>igCWmwJE>)qWC98U1y$w}g&@M{c0y$vHiG70z7r4FdP#XO{Y!RQU>T5v* z&p19DM@ok;Q0!^+!??!#vg>DV-n7*`JG(%#nPNAaofrhroiLbt)k6)(immV{+gph> z^RC?g`OyU_YIz5fyRRTV-P=ItTCriMcbMi|&l+ZVgHb>+rz0hcelRh_C=M1cA=TN; z?T;1j%-rfk$%4cXp_!%d*hg{`>Dso?RILJYdNUVo+!^h@VetrWKVj~N!P;3CdqJ9M zzfX?a1(qM!H1|?00YH+mZf0kw^MZO!PcUz-BOEfjkJJ>2WIPVzgf5vi7luCNVy36R z%IuI;eU(}+s@eqzop3^8g+;T@7}Jl=U^fNz+Yt0a?Z51@)F~Yh@u(zTDZJ>zk1R=H}G08>uLWC|=x(pxFA|^cQaj$S?Ebz5LpHjO6u8goATOqq0<6j@DwT+c63g@?k+xOBv{ek8rB-&9u4 z2jNRO;L+qhqSuXH=ljF@-85j=j~~92s|8AW$9mvgLi@vzRJPxluTv{DQk*;zAk{*v zM~tOU{!tX}Wj(p1O3T=(W%;(CF@w+!7-5_p;KD`=k$tVLrHqL3xP*yisE^i>Z4fu{`KWNDQ;9p&{^8 z3i=CZOK~wxH;V?3Q&y`=zK9!=RHEha|M==o;LG|7Kk+=VTVh&>32^!nJbC$66Yfs{ zpIg`G<`{J67$7Dg*-l5)Br0UE{P}0J41dn)(l;z41HuBnyGDPp^~A%7B+O&;96bkz z7UiwDg&n5j3zm&Is*avNd|hX)dr~j%-%Sk43aa@?3D10Gxw#Y;NSSp{-!tht{PkE~ z7P6(S5;4DDRG1)sS*j=9NaW}xlbUFMwm-A4v1F^t^#=yIXmiAFaBjx44gVefBQL%R zHSdl#zp^3Chyj0+d5i96+a3EJMHL%5=Xap<`2<-WG#RZ3;6CV^>y0$nqs{$ZU0DH= z^wkZxEDk1FI3mLfzvC7D3+|>hyRU`<6Z15%b#%W6e{tz zd{NZm@p*mmpz-~F*B$oSt{dqGoPjp*RuUeE6A!(FG!)q_uI0h5Ey?HtQWyxwpmr$1 z7?4{lXEUAAple0vYO?5~taDKPAgFb}Ws>CY zsK(`2yFIDH@q(&$zH~4uHP zR&lYXNa**xX|H&mBMH4&u=620!~+l8ZG3V*_5Nx&*$OUV0%{~vJ+|&n0nAZ}SoSlK zV5E7EVse#97($vm-+NQjHXFRwwMo-8KbaG7t|WD0+PB)y%4_s)!AQSehk6)pjr!gA zC}wR*$=4fyhAqpY?zE~deShTou>Dpwj?ZJc24E&5cEe#t%relf-R`EzlBu|rg3+KF z^X7(%KkvZxZw4PNDs~;<_D|;Fdi0AR!%=*OWd8qZO6tc%^CsD^GLlHY9+wVcj14+8 z(v3)ZUbk%Dvfi!cB)N#5SXhb~8)QNNo29aOn|VK)Bqw)b~`Uf>INu zlEFg@G5H4NCR=tniCY|mW)cbpEZu>Jj-ek}F|+Xu@)Yo7)Wl*H(HGIY#5o}nZHJnl znm%VNr=G_b_rI*DBu(p90(U9mfW!hum5&l)(C;my+|w(o3(KUDxR_y>RW!QMwq=b| zk2VwW2J>*%t0&X&)gY_kE^D^487~`}1WI0o885!sTVl5`%Yz~?Qa^|9Mw{*sJL>pC zAsfB{m>??~@&!a`_(=ZO^!AKvJGa-0y!rMho&b3Quc>Tvqj}u^zf;?d6+$Qa%;;au z_6e$qk^K%Xh*Ykl);_h<=mGXsC3xh+SZQ5NguKSw4uqpZ2WMsgy9$s* zQIM=fmrUh!)P!jRdSHevIRJlJ=F}v;-I1Epj!1ar;?}n|?$vVooc>Xn>j(_;d)pxN zO^6kPt5SwWI(|qgn}FJe50sP_y-|qU?AoB;jS98gcTf)j^ix&q{;+%SxiN znWb14YM6qMQ^(qdYu0cqZ_}qCk!h-CGdws~Zi zJaXw!YMM*&iXPp^ik|fLgf%_~$nZ!+bQWG*(p6S#HTJv94Tcvqc$d7bjmNE<-l-X#yO zX=!3vi}M}}bY7UlOZ?SBc7DsnMDS_VC>-oP9ybCkdBKzE;_J0a52tew$UF>WRvZ$7 z26{`k(`5Tu9yPgzu{z)z=|Oc6{yO0ulMM2;Y5Gz-oX+<9WNlIPiFz8GIBh;bn6%XR z_F}hkAqJTT+5pYtMqfA7lT=QNROqxNd(7vqKQotYk-_y+5<163DWzFbb3gOl6Xk;z zRXZ`5_U$ALK9_>*TOtdE`0zf;O-L*?U<=$BuDD#GFb_EWbyp_h=NBp}K@?JN)yC&j zt;pjIFkOvwjo~=Q)eX4+jT8lzt7x{oN8N|F`SO7nCQ5m@VFaAGm_OtcBAwin17o)e z>4sBVR~p6Efn*b`wSN-R5=fOLvlj>ix=9d6<{ZDP(Aeu?D5wtiRxLzGQxyM!FZlU~ zvtI(^yHtb#5UCY^1?HUGD)g4pdjRcDJrcVJRZ5Ak+d$OlyEPuTyP81hws%8}vWIN# z*va9lQ8PPVsRDz2C?m{lM&bGrJsw@Wgq~BvJ1!yR#&g#7G&8s)NOkF(n@}FrDHntn ztmQ+@IfiR8%&`3rlZassFp+^CBA?#Mh_yawsm6OrZV{AksW~@38tEBjNMS3@uHGAQ zSrEuWqb6LpbnBmDAS`Fozsj>b{Lm3baxI&AOr<@=<@ht21nx(?m3TZ9NgCd&Lwr=4 zD>yJh>L(XJ@2l2;1uIXcouWyIqFYk>@TFXzZ`3aTZzwt*a^)9oTZ5%9H*jW$WTcXT z#83mhfi8vRYWq?2j-hT@+`Yo6-vvTPc%%bRmB{Sk*siQhjvgz8%ugvD7NzX z61_L!m*%9Pw|~A93t%R1>qD4vH(4;<4};)ezeY~ecsMugf`>*Snq>!ioNBx_f~{)@^{AWH5Ubd>(p{hJ)3I_#FYJ#l7Lmh2qf)V9~^*v?KrS;S{7r`G+*Qgs;zarYuR?VB2LLm6n9P>FWGc_6NLZ zMptjU?0t6^y{71tu$TBxRl1NYjXGtUaRG~) zd_NS9bQ1PMC*%`wnIZu|haZlJkD}20^(Ri9gY=jk~jc@>6h2|h^ zJ}__q-B%JzdQ)eN;8*k}?P@5)Pa*^}m9P#O%%Ctc%Eo;AsjARC9Lda>L!l6>+|GlS zsi{;wwoX_sv)HzpS0rEIpP+bLu_VRh)_iR8b}ink@uHo+MYO`tp@ryUk5|0_74hLf zM*#&fDFwD*?sM5kWu(0DOZ5B1%Sd^mF*E_5$hk?-%CAs`S+wB)rt56)ZHPe9BZ@#~ zV!ZYV%m%xZy*tZKeDhAqrjr?%fba4&g?QUS+6Cq^?Ss>er4;DPAs&?O67?qI=@AnF zzU+@IP0BKbrY#6jgh_G6>nF~e3a^9cg(g}LOS0Z#@@Jbbg)|?zf~^LfKYQBUuN*$y z9GBbwo%y&kJ(`|!;2Ks?;Swph5^tB+St52mLd|K~;4F#8x~l|AfoRR^>~fgeX~r=! zG*!4N(;2@a5@gz=tFZa@p$z`*k13g_V5AubF4ldOX@p8jt{|!!DxLV+4y6&T2)7*= z-X3UWT~JF;ao1P!&JJ*7jBN(s1#IVyb7{`r*o1JjOk$#Wm*zaDVjI56bV z{cu!h@F9u>2mBcOxTcA1e&JVVXoiI1^Z)a%6tAyCC9o(bL}+X2LAS(Jjw5TOuJRBo z1If@3Wd8kw3d}F0<yFyx_%~MVSYnPqj2g|@U?yO9m*TA0)(%h3cM-mq2{WGgZovRZQ zjM!@P?e?Bs=WC}7meoxabw^QST*}z#R?3RsusWuk&Y*1E9QB(qB5`e_rm3uw;m6McX=tN+TaODX8t1pIZkn#%AbxqteFrZ4(tWl*B@YCv#z9PA<= z`M>)E0VE^DQ0JnmO=(NRhtK@f#SmAM#8kg^$7Gm^5t8y8E+J42-$)j4ecnAXkJRh) zL55W+1OXS0Hk5iG#pg)Hu+&>PE6FK{Sa;3)ehMxBwfl)JM7+|>RFH=-Ugp|)qkAMF z+V3Z%T0YR2Fj3MuFcj&8LX0L|SqfF~^GnT7yU^x7q}2W4V`d%vARvoQh)tyw;|4j; zmU5QhT0f}y&r6+_q_l8Q43X{}^`oe=6^b84zc{;Q8chFiw~93z=Th6tU&#tDARbx# zY7p7dEV`=@V4FD1CgD&jor(63;ThB|X04fXH57~}5+QZc4)rrWQqwmj2-vQ2e_b79 z|BIPhzn~C!V8|lg6RhVV?Y8dC{7@bP??KiNg${~T!!_4;gbtCVyccdQq&y9 z@~}8c?0}J!jfBj%1F2qke0Kya9q{pE;5#A^-m;HRGyRFWgpzD#(nufz&RJ#d=FEog zFQioYmG94n&ys;mgVNj*{yG!wlKjM68HfbK5tWYLRAnz&)pTko4459`h*C!BuM0Ew zrPpha=Y~fyU~M>6RJ|3kI4G%W>3n!F6=9Z*N6^9XOEMO1aQ2g9Wt9{WLVK~KihiFL zlFmOtYCenu8eeuZU*{k%WxD~%&v8h%JWAGOZc>h+=(af6OEbae3p~^#7B zrhPjSw_$%wDl{mUQz6ePol9S@qbS0CUrTn7Et&&f`8Vt7etqR53)u-Z{@OR8Rc@#Pko0n zK%*=Wj^Y%Gj$POR+RV3*QTi7cr#j0#ff%`$u{#)*#YsvDs2Y@Gjs`Chsq?F>BmO5* zdZjrg6PHpX$@VF8o-jSe&2# zj&$8z`+{onTR;L&s>QDkPq=)+^BIZs#};AJL77BdcHJ-Dd2pe_ZS|X#%cGH;xrE8p ztA+g@&fHWg(ddDra!G{C^#tZ+46{&FRQf-?@-a~fM2q1}!dVfSGh3aTw2{QBa%W04 z2vg*0c_+V=M8x^uQ+kFL=@ME6F%tKhCyL`L$qD&3pf}(A0P3*blDP9>+0!CIDD(Xk zw9^9VOnh$Lk~oc2H#6L(?EaBSX(*=GI2u-u0ZBX@lD#-JkX=FAnV+N>KQd2so8E$| zYky#9beOT?GXd)`zd=_O`E2$hw{R{}Ek~0+Ko~?<*p;>&n=X;DvSwUbi>^S7Rbi** zf`D=_@d9lTkwoaqJ-oFxlBkE5SRr$xQSSfsx9}Pao0&!PZZ%h5E&3!OciITr(%ye& ze+3vh#U*H~CIVv;3ft!BMi`-6Ol-Utk2_@+%o{{W)+<|IG-NAIZ2;`MEE*ur4rhn7mc|5$p(l*8Qx%?+BpJpu=NKR+#T z+G(vMyi|6Dc2{PlWe7`vd>3)tQm1{^a43d|^N*)r!AGnUjGeWOVYm7d!2B_qk%!4px*%J1<}_)f7m&xlihf|<0ednP&O4b6|ckB&qz&?c;8HN|w z^ZO^QFi4}7TU&2Fz4$SAy~k}{gbPA$ss?V$uv{OH?Vh_dD~JCdFV$u-0PhPNtp4F< z%Ocf5-b=p?6E1A;&t7V=o!_VvtK;8-jDc{c?tbtubU`9Zj*CD zXIwUiw{;RO-?qCsEztXI$7+!Y`?$_|tIuL?7apFKqQI>~8mR1uxAA(YgM|O`GU@I4 z&g(TWUEPoY@BlHF4u*U$+VI=6!gn|g z)!6jDYHC3x{1)`@<#w`XZx}c}G5UP)7LQE8f9TQjfsFVSP7Zx@dg-=@CReZ3Q(8-$ z>h>F?KxcBijAg02%STugQVz_u>8=3=8@G%d0br(jw!@m4;i)8BL zKKs3fUBSI=FJC|gyEl`GKjB;$N{U1Y@{r-c06dS~7+*fDc)b|edCts?Dh?aCh2R23Uu?WTh z9l^3$reGlzoXyV7wHw;PNT8C&XE+SNGkUTO|1AFW<>r@Qhvt82=|05Z;nx&de0y>0 zi9r`RiZ9T+H&Z)s?MwQSmOob8Fx$aR>(JPB%Cz6A_;!6$05CM+0pTyOyRZE(5+^(v({ zq&uDMmTI257mYtSS#a_2e-Ml(K8#ldgyPq(YIz8hNI}>IafDiruf0bMJ9Sd=?^(wi z%0eu@{^OevI;8p=j>~-0W8-gW7I}{LF7Md3d+JlQRF`%Zu)pk0Rz=N$x54B?_g88C z(;V}1^U?7A{Y`EB>^yEEEQP6qZ)g(lfn$QO9hIM1lo>8S!q4?VD>KF>Po1)ti72;g4`auSefza`SmammMPYQv7EjQ7v01kIVmxu*aZ?=YVMf11C0jES^ueU_U^|Z!{!=eHpA8+`>~V7cT7Id5 zFL|8%insVX7V<`7#8=7Rc^|&D`voxRY5jpa4YG8{zzq~rW_7DE?BMfw7B3T>rG&p_ zu{~rAYyW*T{kCWLrQ9{TK5)h7VEPeGft8R{Zrgs_7)P=%L|cEksr7wJKEsW!5ZYVB zINBLq^rW4!#?of4--7zir}YAlQDQgq?Lsew_jR_hKv4PfSfVxF#o|Rr!yy~DHMu_3 zC@gYQJmb-W7u)`$_ox^YT_pRa!Miv^lJjXej{IbV{W#&v%_#zGl*TqpPr*6T;zyV3 z9sJ#k?f^7G`;uwMlmfn^#bk0poN8JGVo8uiaVA2m2DQ^Loq}i|Tmp~FXvOcUwZf7#@Z5fK`Qx;jMvB*!?0C-NkIZDs#9%Z5 zs@%gqefHM&-hg=R%$FWR5XT*4ZMl}tV_r)!PeDt4)wqgT?o;l3W7EWE*ZE0>@n-wv zjrr@Tluw=as)39~@8>QKpV^!?6?b@>01wY2qBa$C&ugPj7M~Ms83+DLqk7X1o!)He zb6q~>z9YSI&W{4mCm*+$EupN4HlzPq=OTZOh6tcka403g;#WeRUwhB}*vzi*Mx~|P z)Bix`{tYEx5=$jj>2XM-XcTy|^tEf>&cxl|qZ#^>3GdgO`XNU`qu$-`+}jq7#|!GE z&^XLrjw}N&K-^>N2~&NWu%BIF(O~lSwuR~|H|a5tc@T$ypCJjiPNQLITW2Pu z1d+vIr~upGk=_QCNrw;e!yP;3_TqL>89&ICRN}|71(P5t+Ul-79e3dt_#BRoi}6Sn z@#%oTkq`dxqSU{)aqXvT>qx-hvU`n1WoEAZ!%;)ZzW=GE6nlHCr^}?NEetJ#%~sQ8 znU=AP?Bu!a2Z!bM9gD0MA_j)%2Lpcx3?M_`0YpC-e7uZc*5*x}TzT`ObJUwGZfx52 zcsw09F$-Ry*|JLw{Y~5SJfLZLr^Z6$BSOuag4WpFo}HD<^|n8Xny(SO85uDW9T9Ky zajG4OeLC=X_g}0Qu#bn&gn&vr?$3J8s(}|99$Qy0AL#K=cPpzGo6av6$HxSOsFI0` zm|x)1s&zYj?{G;1x?h*WFI;%*1{>9GDO;$7x1wdon4WrLPq^&s=wxJ^6ANi$<>jLV z_1azcGJ7`s4w(JDq1SX>M$hlW;q`fnV?lf!j=k znh~Cm6R;`5=-ST{*iFNon;U6$0hCB4qkS9Sl>y5&^Ckpo{oN6au-6#b9K*`inASGh z)P(^+hv-)?4OPdP;MUetu=73w9w?S$F$><{zz#2)ZLzSokte~$lzhf0u#Qo;e=nO! z&IjjTQR_{F<&L)=xoMtxW#>?(?&O%hip@TV2BBf2Z&G5WGdMz#Xjt9{zeC84XUQ_1 zDX|K`wO%%cu2ns-I?J;h&T9T8gDrtEwp2h2sUx82Qqksq@Wx18pykafFFW zVgtmSEQOze7}T#^+7bZLnMhNTJRk`b3Rh~jo%nIB;*TDi5CnkOn5F-zZ_#6GW2DH6 z7_Gy(529ij9tO1_M52Vy5;#ss-IM#Yvuwdl&aZ0v*?X3O~mv4RAiH$d&a2pJuno@6vhbG>7H*y?Wb%y+U7#I(li{jb)JqLX)FV^)qkZz9lwKt~fG>Wj47- z^egfMq7mV`&s^8l{HWp${~QZ*Nc?GDO3L&_AvMKOg* zW(fLBUX+4fvn3fP{>BNg!JZ>YB-q{t)=dhPNdAe%`wr`W{}&5u374{$;4+We@Az@w4|kM2~Lk^4&j!1!1S{+WX* zo(svD@WS%wIcHMRVjiLxKN(DDNMyT&@o3-R) z(Q>O}TJGr+J8o!={)dzh*v9&eHR`0dUrLv|_T;lc8_iBn3GmF~MUUHnDe`Ro;BiTM z-j>I)o~2-6vkKa|ZZvA>?3&!TJKiwN>5D$IzZe*d3=iW@6urD(qw5f9dJ%E+7ftfq zfE!{Om_O`Y=F{IrcfaY2lPPwZYeo$r5F!jTGN-qnckSfe3KG2k?OEhbsh1w(cj1U|=i2%HPXAs#j<@mZDcw>U<7U>yb67a` z(0QZ2evUPxUlQ)0{{8r>+hT^OuNXBPJ4*fmNA6~K({rmI;)M#8d%Ii72{_?^M|`bV zEVI#;fjAi}!!JhjzQ@PdsHt4le^^{FecCNO2mb8gs_*vkZ)>H$LL+U3G!l5yVbNh* zez*l9x_J~dhT*nbPSm^fd{4RxHRO!EcG$9JvIaJjHKY`#of zG}&en6SEJ{uo*F&E;aGapw0TK+ovD-jl!rJPOQ)v2wsr%l%}&# zFVCvK?PFvnrds`(op)ets#jHUM9$M{@$UD_Yp-7Pn(Eop*xQlt0*mE5HL8;Oma1+% z`xQ(V1^`)X&u_`ts6Fhl&sxlKeBW@_f*f7Kt=r%CCp-jP-W;r$g9gO|HA7O@+U*t# zo3a*xd>?(Q{#>WiR?ZTu8}~!oo}xD{z*m*KRawy4m8P0FbxN_Grt1r|9iKJOeVD`* zg!V0PBx&<~Z?)w$jdM8Pe_6?KxNi^O_x>C;x-;SUi$^~xKVN^wROO~C?-kMJqCwQFc5!FR#)n=2So$B3hXrAwvLj*CUO!8=<@;gO`UF% z6G*_P26SWvzK2^O_HFlwi(Fdn!?=HVsXEb7ED&SEYDNtDW%!uv+P{wwm3Y6q_?G6g z(gJ}@C$N?^w+I+T%+jKMupeHL`|hiU&*809b2DDx-w+TaZ@zG{<&If4i_wq$M}z-b zkyohQXe8PE8V_Jv34a(;$0O|QkeXSHJ#5@7v=#aUsTw`|Z9&rQ1EyCLaDM1f5CktN z(RzY<-f#NoYyN#cWj~wrA$i>~_&`U5o8mdSEg^0VruI2omh8T{V@^&>5xiTI1wKAG ztdFW!>c8Awye~NooMwQ|KOW?x^}W1jUM=3AJM!Z3IGp?U8S_4lTecC7J5|?>F5J!B zgX8R0HyX`WtxB>Vr}bJo@7E|EJ`PB3_9x@SDLmG0{$fsbZkY#aw;Ru=Rd)#zD-wS9 zxEJ_%CXg44A~yNIUBLZgSBt^hsN%FKK=65PDj*;@mn4~`Mb}NEkh-A89}*$PWv-}X z_!zxgWb(WRi{IpVzviwg3S4n(??3oIXIU8dhEnrAg_uOasWmn>S8I1o#vbdnnreN^ zVPa-(VmPS^jkdxUUF754j!vt(OiRgi?yIw}uI!V$aAj`a$qRUzn&28yr(AvCsqw#E zh>oAi{GQ_9^<>~tx!LM9J8;$Vy4NDB?`M8hp$NR$(ksdH6(L1y-MjC=&&rfn;XHdn z?q^`u>9FrVap>}cR7<~K;{u=e(|`_Nhg7Dz9@DbyQQ)8ibLDdkHJ8V|$j~?h<)#CU`%^tq*jVvrPoNOW(%nj2C6=pOwqD9mFIw&wMYX zS7I*yMah- z_S0dxxk!Iy7I-dnZGe7J93RfgH}x^l^f|>-PoacJ@!z20sMhX-FO@7_k|34!tBS-s z4A0Fmz8G=iTWY+raH>vKtKL>Os`?ebPqFKHJ)a7mvkm?g|FI>Quov(Td7DEheEy!X zOUEmbbqTrl=hkTEc{5fexY@el`2O>@jk`OvJvggTS$5W5{5>^_e#=_bc`YUQEW)F{ zem`7Avp-7lczUET;k*3KvTG{1T|`b%6kS?+gm(K@BbD08K#KQ?@^}-gsU~VgLkxsb z7v8_oHiff9XD?x?d`x?}0k^K6B1KaqLyi;qr=8{ehluEmozZ3E5%|*9a7qO< zTt>~tS}$0UvXc%4%T=ci=hu%kwJVRmcGtrfMs)5#Y>XW`d_ztK;HO5wcv-VC?kKU?*xMHXCbw}?X(Ow(T(zCe*StB~CB9Vhe=nYQuRP{q2Sl(yh6hH&QUv`P&XkXIO#LfyH+H(B0&y0{DRv zPC(N{OJ=1-tn~~FNlXTU=m3_CWGuUAI*457I z&d~O}k-uZQ{a;?`jo(R6uioFS+)&`2dD2rOqI(aVDvd6}J;*1lEd8)sJD6c$z}|3) z<$PWxsp!(c*g+knn_iH*qS?7;se`fln9zQ*;>#M^@BA_VA$}3DKKom7qEkrxD1I!w zC@E_2$r^l>RFS*oB(6IU*0RFrHObTX%CCwC=wQ-{8yO73D({wzq#0*l^d<9GUROd0-)!OmD^ZLz?f(Ky{E`^e4H;zRPZ z(T=!O{mp2t9u~m*7_f~#K0>jgWdsD+@80?S2}$}p*T@Ui0OPs7QmEJ}Fjvet!E9A} zZ)Y)fY^f&>OH_k*Si}=2EQnY{+pN|r7rZYM#2F41yTVL;Zde)4F*@oCo}JQxq7J+6 zX5z!Q>%$X!oO!nTQXJM!5}yDnjUEyg$&7+!7;Qd6d8u^AX-Sb&$5nh_ru#LuEUv)A zUP#Jkho{Wls&C+Z7I<-JgF16&bVOUs>Tglz^>B0GCDdts!!zxyH(>DcuP~TJ@uhq3 z!0xkYF7*2lj(!DtK~^k-Ge*O2t+(A}m=fr>(-Y_%;AocHtRqxM6H1%*f%;v354VHQ zk+YYksH(_GDvIIia-wq1ZScxZ8q^ir-y7{vX{+x!oY%aoO*2J#91?6~>Q`j3GD3WN zvc-|rgj*875h3hS`RH19u~TpyTS~U!q2AHDfBMirXQa=kmZu3fr6=Ku!rxx$%uH(# zcn)gaA9KI+9Ntc7OnILRrt}2`te)21o?quK1`mGUn^;&F(`-{Yakl5VKI{STv{A5g zNo^AA8RO5n^g0fKvqSK;3@f6m%3It5YR@mIq3YXGDjIx93KU7QaRA>a27*erhOhs{ zA|a>i*@v-L_=oWknkT8;d!<0ZDRJkQ@ewsjKDLeL4Oo{cc_TZbV8oN6ypSeWk3pk` zj_ctTxPxsMJ4>`qmz+rTn`EZg48Vgg*OOxnX}-|CiFoX;EvS^P1eJD*HJ$Z{yO951Pj7(N8bD@H7$` z2V)|aK9&}~#pl=Z7+3r50G$v!Kh0zNEouUr@xbw4AKYfg1Fr>zMNBj}FRr)Rb@dj` zhXWU`|K+KJH#SRqVrV?j<+rvr4z!wr>x3RSr~drMyN2Ai=OM>}*Qlw0z=N7(b*ZC2 zct%MS1o&^k60?FcT1INytscwnwq5Uy{(80UH67PUs4SP<=%RL6+(!i(%}IrUx|sSdFqddR@c)_io62Bxgu{a z`-6lt1ATrh?A?x8S6*!12J{dX8#LECUvBNG-}H6cPnO?K(Vt}ypcMiB!P$5)tsWSo zNXS@`yP}Wv!I<1zn#W=5lWi_YP`y&S!$ey7gt$t-a;)f~OJNWO@%O8%6zIIlon?8x zfJOb4uEWiw+1d8vkDv9AO1W@WQn@$>(=x9`@GH{<4Mxx zy);9e8L*h_!sd^`;}QjFA`{(981*^@3<9oLao%>?Q-&8ze)viYT6VKYdi6dD z_2tU3KV5%+xoszRO!WYVRIHJz_aD(}Jv+oai=V z0v3cgHZGiJ6bHx`CT~)$?XL2t#BQUBu{l_OoF-(NyVStzvo3D#Es5S{wqf+spO)%vTDO)^s;_hnt)c>Z zf^|SmVkK8)&7-Eb>I|bQqJ`=Aaka|zFpK;v2-kcx(6AVk! z^Dg<3btoX*#b>L_>Uu=7LVKhhi@z7uK9sJud{RyTG{RTt_Zg&rm}z zlp@}m-qCDBb+k%9uhxBp_fVk1ryG3o9Hb)9(YDe%p!e=!3<>$NrJLM!dI+!nA7vZM zTAf^jE}yMPwIdKs5TwLw9?!xf9h5w{RP8!I>gu*UHg`&YCe5BBkynBf2YO7-%dOSc zCf?{mc7QgAJhKGPYkHGL`7=x&}~N^r#)0* zDH}UJK^8{CA$w%vq4V&ey7`4B_H2CUg?Uy*nj^8bUg7c|!81oCK}x#LG>2Y!`#ryJ z{k`h!41n9!?ob{Z4ArE62*6)Er<&egSxGlN(et#HF0&X}7v|w+P#7$r+R?~;^X)v#*7*6vpfj1cviUb%i~X8e6V~J?H>P1zdknaz zq~)1sPtgXsV3}P%OC>${1;@+C4`=HS*E;5JE`)`ppMNp%&a$8R>T**Z0XGj~rq)xv z-f2jwtPs<-B7VM*C{IA1?_CGvB25W!>|1QJ5_l$J8uS~P}R+DYdN|f%I>rYL2qo95yX>o zrEZdr%r>>RQa7q7*M@wfV(n72qrd?Hc*Vq!R(_B*zgO@ETZiSbA)K^_Of=0k>(b;b zX=%aC@@rQ(c_DqH|K|dFWv$fEuvjrqI&&2KGn>dO7zw?#MWrCLK$ zGk{oaQP(IdTArJ29&xJ5IRXL2+e^R8NFAfAGYu`1enu-1kkAs~C&J@FYbUccrcun0 zB#!q3MhFWK@YI`nl5(G=0s<5Ff-{ClIf9)fhKA3r|2#34LBbrwO_Q24%KeuvUA1Fx zWiPN9G^Q^a#4uHu>1Ky5@!+{xs&s7G452;yvXkY)DQ>I_+67263K$gH^3Y2z4FCf# zfsEJgxjD^F6QLT4^mauAe$tmmkOmS>7r5xyK}v;Me9+$;n;UrB{O@SvG-ilB%HbAW zgIqa28kX3aT5w&+@SNZ1OqjmTy3xf9&31c9xc?y(ZdGEN4i~L$d&x!D#-Ddw`*_v- zelr?7zu$!!!VkoRa8O-e{*WD#gl#Ga>=mY%0>QUh_F29@6HLRF&ydkP?P>+CB zL5n>*I2w}Tr;04(r$JnxhZB}^39Mp{gHVev))ygOVbbVIAg270c}?I(mEOUIMqq4-NRkR#IgA4FLX~Z)r2$ttK?uH~Dqo6F;ieV#6yQ)g zIN7NTd_x;8ASlcOtPgD#7J|?fr`}v%sT>($Wbnf``c#sZe=ef^oDV^{#&T~cpjuIHtB@$yk9c= z_<0D;^%&~e=DaaJv(GV8>q;ML2*ai9ehj&q6*>1Ve7NpcQhOj2?*xJ8tP{Iut6HSP zxX$`xh?xHNlUrLQC8M|npmerVwGsl_F#<(+@9YdKiy2SoFx;PvpK0zFXt44y%zlnD zHyIQNCHb1$I6Em?di%FnrRQ@gn7h~Df`D<7b%JukLGKWqtSGK}Pgalw-wtAwwyZ+mAaQqB*ZDqqq!YB*_kDU)?aJlbW|bb%Q6WWzqh~Xo%MMqK zwK$F4$o_5R@kmIq+vJtOi56ZTr=co!kxAU^+Hj>e{h5I+S)PJ+$-z&~-67#plTW9x z=$UR7g}E9;V^NQuRpos(dgk;sIVpr`4j%!9fpl-@;Q`V0WnX>cVtySBd7P#Lb7dg+ zlp{FlIZXwEdV7%U5oI!B#?iTKM_}HZ!JBZQmHRmx?lv}$htRzk^(;=IE0t6P`@l1X zlBLckVs_YDq%g|cyI6t-q(jeotKOOtr6NP;#!IdXqD(xSU;61=`3)y#jI*6>7-I1)BI z9ob>s;oEFuJb?X=Y49aSCTAE^{({Zp0Lu)`>*!qb+G4OagSgmM@s*Kov-zip=-Wjr z?M%dvXPMJTOYx`AkExRe4?Bxo0(mC}VH1H=Ty(gFyD%B6zccl}XIxsgbqnbQ%q92| zQU)P`$ruI~&$idSj`?k5q+Xjqt-xesPah_7sylbKwHgrBQka^J&O$-T8~u;`M9_F& z4p;jfO`7yS^~lacf@&neuK3QUz+(%|MQ6*Wg$_t#5R`2k=XOkaFVj7@{#2IVv1II6 zKV-f9?PB|cnKiiny1r_cW9%NK6`PYa&{|274=a6uRdWa4_aU?x@mOypw`VvS&VCOL^#A|M-=^{ zxw#dp5Ch{KJBm%Kip}*}l0Bt4h3;v)0~tM6j1HwZtH*a)3XiTNbQLl0oqedT8JSSnDDvW ziA`ox7+$8A69K$f#&Q3^IlQNG;R{Mjg+75GR!UTu{1j{YZUxX_Gji+?DIkyfOt@kO zYFiW=6HdxAc~7chv=iZpIx6u?y!BdYW_=Nxi(4@1SZYAv3KT{l&FDky*Pxw3v--*> z&j$jSVAuc;}ADQ{>tk56SfYvOv%F>aR|N%OjbrHIsnP8^vbu$x~RQZplZsUR|14i$FGy z!~WLNZ)g?gU1Vzsw8*WkW+)q_HZmReDP`^`#qIW{)*ws7dL-!}=WxkgG1nH|a6)*^ z9y&WAuIEa#T6a@sER+i@pAiVC%-dL?iT_lVMPY$43o*ngmH>W6NlnP6GPc?Z!1mB= z`~EO>1_7UpS#6pMZ3#OY2c?2!<(2~-4}0MWPNO`Ui#c`Er<^ec8&T}joQ^#!{OWON zn`R-+oJ_Xkkgg-Cv&Z;#pb+(`!0At)E;5*cNy(s5iEUf@S_jO=j+CmKtnKiwfv!Ob z`4huzihXs-H336aG-SsS;|0HeI`nxeu-anf%j~pu;QnO_7_T>b&fClAI&IBe$Xr@{ z%l%1vK9RDn{&;vFdd&YcvI%`Z;@fd)#e9BX$c!W+OJn@RVf~JY0C2;w4ib#l^1;BaWkvg7<3IJQwYC-fG~<%N-(oSr66(+Z zhg;%H1gmY1kFwgA3hk?Q*F8+DLtyJsO)CS%Veu#`Cj+YMZOB6uz0hbRxm%b) z{>f0fc-Xwbeh(%RQeF&)V+^!veN+U?gEn97l8SWP-wYavq2={IA9-`!Zu{jjw87jO zAO?H?o;?lR_fAJHv~W|sjyOyes#GtW7TxeuYPQO@c41H5l27_(f)PPgGdWK|{`0Q; zzx7{zTmy^-UQ85yBzNxIBlgM?wgK`iLtm+2uj%pf9X`yAfQ7|-oP3(0s-s>CrNI-e zoOzlnE`G;;5PR@s`;T_ze)gyi)t{kAwx=a=<6KWYmHEFp=?gB4sW(PgaPjNBOk}W{ z@jXKd=}ctDJT}y(ASaFQ&?`wJ}j?;R!3QT`F@Y;+Fv> zDi>}k-h5Wbe4Ol)DCT`d3G$a5{CA@%xRR45NoRfHJYrE(W|5T8vm)-?zw((coBiL= z{3X$d#>f?)Lf9tzNhRvwaHWKPW?&^U!jXIy!(bI;7^G?@ERG69M)cU5^H}DXaq=ld z##k-J53n-Y(o-T$j_}!C z^)w6S?jqlwnDt_!M8f9UdRsjW}Vl%gsOveT24c!)n=3{ zzb%qKXvpoPEK6uxmX8&(s`bVxEjzP$%-~QvzaS)Z4BDf8KUE@8C)qfYpM6)kuEO(D zEB+xdftBEz;O(5>n3k86&}Pi1%cSe55#e6oZPv9SQoM-lLbT=$I%6Q7oE0){a8IRZ zIWFBAmgliV*Ll~>X4ok|2Byvf-0l!}yz*lrfp=L~*ExBm6%~ zvo$^bq%})TT>zdCM6 zq<#Xx0!dgkRuaUlN8?pfcj=_8S@M;fuS)<>3NxJ3kPYMGDt-xH?KavuzOc|r=2=>a zjcGYZ*W}s(>3`?;$K%sbkx#{GaI2bWgscZEwas5S@GD_-1N$MPwCJ6jbw6Zg@7{ zs075RqVt9rlt}p(fn1dX*jGL4z?}B~`hv$LqiuK0ubIv7F*Dthm$%E8m#v4N()QwZ zox@-T={EVKo_$~N`fV}>~BJZaNCI+K$c90xmL%iC7l*XB^>Pb`3Pc{wj15CkaHPObhFQ) z?fNMBMYJ@YZT4R>xg@&P!%xw~{IbG#_WLAEu;$g1o;|IdIzB57;J3ruy8A%3d*zZJ)N=wX>E;ee$6(4h1kfsy);Eg z?&|Aqq*4@JpKl?|MjB2AzTsBS>@YfwC-otqA2E3wzRQJxmd)l&920de>{$dF#kA3P z`P2(izgzsC)=*v=`{R)!V_=i?Ge`(rjWtj}Rl3}rWpr#a^5@*jE0|B!;mK#fp8o|k zw)YP9H4(AcD07mN1GuB3wJwSBKFR2?65GlVbjG2fzOAjijR~gq;EK|+py04#xheUf zXn}3o;cDrjQhh_c5rmS2=%J2olQ65Ui!B+EWky95A%Uh#|w6wLM+L4UfG#>!hJ0U6+w;PqfKtD4hM@ei%y-m_- zV{2<&b8|t}D4_dKq|&=>st`Z7^7-~!CJG+*2uf=BThMcl5|dvcOi`Xcc5&kpDT6{n zf@oI*g5l)MG>|`QUaIlE!n+HM1>?H`5+=4Z=9lT1WwH zRU*oeP+lf>4&rh3INM}Kcv|o_ecUH`dcG#Pp{@O|l!8iq&1F9?j91yec$pbU{!>#9 z5Eeq5F}PCJScLwx>R)Sq%T)h3Yok5hNht5%S1UPh?`SfHc!_+goCbzj{tlVKzq^Ct6VIm1%BB7iJo%PB5yjyMqh0u`?hVtn(L2=NqAbQC_N@MIqs61ddCw?!?&-( zuX7wzFo=gs;ZOsQJa!)o%3I7f&3&S*&d2Nfw_Nu#&z3PB)fhziHbk(DNQ+tu?K=j=GEJ(;Rd!;z@sRxr&xf zhP{l!_iCqPbDeq>pL(hIK*&cS3FNC?DXLfRVk2QxYCWWOAoVBg1IF)?`+4FQ-U~he z*izYt-5Ssxx#~`Xt+ZGTBU;S#o4@?Yd}Duj<@HSbXY#l|SokDJJiaWb->&6sZ8ej@ z&b-*lZiUvV&Wv%>;4PMtu=s283N#z> zPfQm#TI)41ZCC)X&Lxi+Oqib%_AI+;pCw0uAQTf4%pB(00RyBpe-H{%a5k$&EuZu! zQ(LDH%aHz4qqJsdw5Gn)fDVHg|c({~rF3oo!VOi~8q7?xo=~d;+&~ znHzFYZ5RPJy9zkLnz3ruIsy87<&Xj-b|7ZI_eN-SAW@~~1z4^?u1y7u-A`LZxRy%3 zQ8O{s=1Dp*ZE$HQz}!HMRWEhQE_?5*R4{_K6;)WrE(zp)fC_d@NL=ub-f?3!qi>2w z_>e+pQq-l_R_$ErZx^WAz#_s~SxLyY&=EB_jQX^VnjF+CC?G*K!v&iW7RlvAafs~=phB+>5gfnpV7^YX!GF3 z8?eYlQYES6+YH8;I3&8qwswrStE0t5vYtuXURA`Pg3l5jWgxnFwN0`>=#_F=hu*vM zJva$b8qr|lF=H`Hav@tFf9O<#%gYua|N9n^gMoC9r*E8+VFlogyWLp}#ouD*y8C=# zi)UL>Ofz%etXJ~V@j`F$OzA`U%b)pQOjo<$L)WO>X}G>rebjh|j?bn!5`4PHZ!lb~ zxuGg?P;o@Ht+soUNqm1;y8eCG^zs}v8Cj-S{0%Z7oK;uyctEA&%KpoXa_@g|pDAP7 z@{;Vch4zzq;ajjGy2mkmRhR$YnY_$mKj@;^5~F51@{HNM#2p|^+DJFMbJR4b9 zjWRGfX`VnCR^#qo0{HSA89#RyH45FO<1S9}8#quwJ_L$7=KfJYkO zoh`DCSAb@Vh(A}CuJHep8d^_R?ryame$?L+ldax7a5{R; zd(SYh!d9HBylIVKpaG+=zo0#4L1{R+^R03>24|O_<$G~TnC$xvwE5y?_~cuYqe*Fw zDJXA>UK<r!kCoGidjgKPIs_hO>A26&dnP7?{a4KO#2z5u6)XJJ#$}^& zwH*iPKaMy~JasBi{2=yZfVgQ=AZs{9wQ!YQ>as-L*!ZO_t3?tWy@9ohPQg={I>JYO zv}0cB4#DijeAYG+h2Z5LD93yWkU8U@VT+?GxA(@ytK!O^HJ?5_v1lD=HHSBGXn_-K zUHQuS65|R>5B7c*wy(4_x?aeq%Ck?~msTb6F(>!7!NjPv$Oj{Pm_c)rgRF-p&p`4s zO(aKl3&kL{0!yQyT`%d=b|%y>8h%82OBJGf>kwWDxP{ceqq(R}R~(REE0Q=1YEe(* z9h^DfEcFS8nhD1z`~K>;@(i*CCu=DaDK*!w39ChO0J`n&>w6a)CUsjbKiDf>dR>~K z%h%}NwYS2U-rtDnyTdu79p^aOW1Opg+i=yV9Jv`Lw`B<3weQvP-!AyJDQuC(?DP7S zPrjF=^;E~uLwXd)+CfcotAh}6654cqSsGbGf4a11a|5D!b>(C}{aCcjY@rRX_Xifg zH8goSQ6X<(V^~Rnhiz2It%>tVroMk@VNo_^psnZd$+UcqVg)qat6I9x;N#XyZt?bv zVhVRJNUiX7UUJE~D2@5X&&ao7YjTz*c1SBN`GngE5#x$}GpAaa1 z;|j4gA|TvrUC8mVbrlV1$*)Z^R`fSkEE|oEhr6@W+p||p=JKJck@d_IX)ZMd68fo+ zBTGL!yy=h52BQ6pTEywC@zH(5@6%CY+fgm1Iy!^pQ_&4P{K3t=C#NpLI^LSPI=8A7 zVIKU96x?SilYFW%ORUc8uB>Pk3S>+BIV#oo%Xp6kx(l$CR<<&!y%iyc4M-efq~qMN zpAdS^yXyzq?AFe|EjBoA+f4c9`~6g{ARr;DLUkP2u$%J$U70~!!X_A0M>A;Px;)KK z&~#h3xIvZQw!7uwyp`~G*l9t`mYb#y4dWCl>g(bpg8n-N)_T=^bS`|uI+gua#z9GN z!fF|2zn0-sUKKT}QE`amwV|yIuQRvTZWzcB?vP&67c-SQxn9x=wwj-*3i4#lrvq2; zL{2prYA zEH>ws-`m7h8Qk(B=Q5?<)EsDYU&bT+>_RI-2Z&)_=waK6pj1|l2lqhE{?>U( z2ucjTatl)kWk?t(qC|O?&G)1bohKGBfTJ+xs7+1Wu6VxpqyiXGbvK1{{Yw z->9OaOKhLBW`O;}Ul~=E*lqqKTuEz3(l=UWK?TNbGM0lbhvYKu%fv(;(6B#{U?Qsf z&s`}8t%_>rYr{6-MqKGi5p(x`8t-&mi9A;yBWgJ?L$JGv!(8dIpZG;5mY3_Y)3Zg$ zv!k${BG@9Xi?e(69Fv;=rFH%;3Cn_kM`vWM)#97~lC&9pPiiT4@!426Cqo0eqL=#J z-=#G=6vc)PLGA8eaSFe9eWu7X&x!3LveUuT@Ec(JbVl9kRdlwU!XNWUCX3k-=u}ft zpSj5?YDfQ#!I>-(FEod%u~{mzkWi8mP982U_J|3> z=HBVL?lyr){|I;T^b{$>A zXVE`5iWc@too!MD%{RN(0_!j`Hp&;DF~d*NwC9vq5Y6ae()30{NV#ou3!Ls_y%m-y zt>zlTxutHI=I@`70t`?fH&;pp&lb$^ z;qc~YRLnmn4Cn%NMCWpH*m8BX=d8Sl{96ui}EMnAALYTk6p zp}KD-=ac+SG~SP>NQ|abn8bUD}7h%P93!qCQ!@Cccn%x9_P1`|X*5=O#zJ8QfZLe;6gwuVP0kx`x`1k_6S_J!ZY|jZhN1{NH9-r?}sZ+Nl!VbYatVd z&u1B&R==G;5pIgT-Z{MgtufZuFN_Rfr!26u6Dw-Ouy_;qM14FpaVfsK^&9tfa=3Qh z`m~&N-oSTCTIFt~=tw8JIL`0?zGO1?g#Pb9h&#C;&%Z*|S3?p=DlA{wD;FDEML%=U zD>T_D#=DCa|cwU8s zYVWZ2C{rn!JPjHr*pdVnmMUDuX8}j6s%Z*b#?Aw|na{eUR&O!%}ZL6nUvCQO0dVB5c z^YdH{znY35J9g?;{(qQs1uMfUzS4w~Uh3$4(w7#Y!ue_N4-*+d5Ft}}cU$~RCgIMB z{A`H}NdL=ChV?f$HsQ2Wl}KeFgU9UEzxL^$l^nZuAj(H_NuzYzt9Hy-j1}h+~ zXk1#L@jQMkp9g=HR;C@lTY0D$D7=~EHaW+kEn%FOtpBPq=bC;gHXs)?8{61sjEl51 z;6~nqLF#(C@?>Lwk)p&-59P2BcVe_arCIF7n9Uo;$_!yBh%y3>Gi#XRy7|UU)7sBN36A)2rhL~IAz-qVRtExvWJw9 z3Itre?_Do6Gonf+(c_>Kv$iWPtIKOJL&C_1o3A9;{|iG5kv2jNS?=)rw5F0XAm*!x~B$W+)1+`*N2LBsnUC%Q>7o~;rI;{WG ze>XNif3Wb7Vd4e!{C6A=ga0<1a8teseh7Fe4FS`OgYqkE$t4Lt5>sf47*#vISyq?s z2w1BaOITtegB1k1)=M@Ep_3q%XvoNModCjmWY}Hodf!}qR6J}b^AkGim6XGN_LGZ~ z3O~kNzbECwFl1AB)6H>Xpqk{;U-MzYa5qHTGxyKv|3RugXY~1xzpJJ#-y``|XB;jop(x@zEWx0@ro8Sx9^6gQx+#}K zBk|?)t;MhDY1DCI)<|qyVk|=G9mW9T+syj|B(%iDCp7>7CzTK^V!yAMcNtEaOPif1 zgix`GeWywP5I_Mg${8V=J-$^LVLGK;o#i!)ZA&?vm`;W{TxR z>0y;ZK43h_%O|l(OfOhG!|ByQ!0@?uv$c=tJ8QKU*EhWlW|Md}+yW~HZ$e0v4pTr_ zRyQEmZQk@v>Q%e>eal2um$+BfA0(o}N>;X#%bLl|mLCNR^SEW9 zmX|BOw!e0Zh0|EJYwn!ijxh#-k2{(wmFmiie<(YyG;iM7 zATg&PP?b_RDV5utF<0}u%mCelT{Tx$d%KGVxI{Qtai=opMsalrT8WX@(-fc29#}V_ z+&suhKl4`}7xvR*=2ab^#xQi1Y)z37K&H79X&C~`pS}B>@jWbcSOTH=Gos$ETC?0U z%`{6($hE1mct+W^*#{cuWU4JBzrqhYtG>S&^48$bXVHevdfdTmnKGpd7;jM`ng41= zM8U`gbe&i596nD-dpXxRlCOtq#U(}BF&OkRFtQcYG`(w#S!76J>D#KAtkpgGq;_u7c<6gCEMbc4A;O z_^VH=ed|@uq~d9(b)CwYh$U%lGItv_9(pgpL`I>*SkZ>|jqnubq_*rX!Nd)gIY>=Y z6{n|73n4QO5Mn@IchGp$WNo<{&Kq>Rb+Vpt?Gt1kv(V_0o}$KUp@q+ z%Ms6=U)ei~+vB33QOt>=)tike*E{EtH{dyWI-oZIMeeXx81})x(4TE&k50g2X?G2~ z|L1Np9!c>a_^|CL+D*uE43Vtw zS9#!tC6_R$Dei~z%r>G3nA1#9_KxK(3q5;l*7e_QrVo5s&*-@Fo)=6RyX(bm*!)lZ zHX-ESqsk-@T^uti8t4+^D89#OdWc@Q;!Ur=lFBlB87pxxKpNOF zQL~d6D{XZ(J*sLMmOzXHJ^gsG_kdB-zCS-aT<*|F`U+o@T_?EWY0KgY(FWUU9Yy$lU8{r&whlADi&Tg#^I za8?j8<_FHGdQQxqz+ZTb)R@UW)N-w_tHXLM$O@SM-cx7M5}x^ZlJJ|i=t((&dq zoz_XQVn`me|GS^l%OE&hvn{?Cu-_9nH#t8VuUatgYki<|dse>+p<=&JnZZrh#Vv8R z9Z@qD6LVfKeLfQkFtRDoRz6-*nF2fOIb!$CWQRpBNg55}o^~Vtk$W z1ilbQ6E2WQLlLmMM;IHS8+OY(Z<*1SqFc9bs9%Dj{NwBwF;N7Sbb!#CfjdKYawEtV3E?NbY{r__T z4U%s;c&c45ayl&AQRDkY2*d}hIY(GlCxh!j?p31u<+TW&fE_bku9q#6A``+I>Ej5mth%N41`VAU9% zl!}y5nVdKN=V2j<@ul2p`HUw#rV`;u_P9?ExcMA&&2o$#kZ)%5hvEP2)qsu^GCGN} zIQ@p#N4{+A_)nT1&{=P&Z(B-l;fLd;19v&EDO4u==4@48WGdxWJvqMNkg2=$Oknnc zuT~ceEkB$C_B7?h;!~xzSP#+0Q#Q`_!$pp4-WV&Xj@lEc(e}?oT+z2lQa9|vjgSF0 zq0{H?Vn`CRK^4n)xh{v1V;0TGWAhlHtFGqz+U{>jF5`suoChBD9}37AAE6BN&z`ND zz7BxtnG|{ybA8$N)u=0jKt~9JJL92_*Ilcg`Du>EM1i^ltWFYq`?dt?PhoFD0Qv zH(Pv5&jHZrIX%-c#hDK*9q8j)9%5LEP1Am0xs>p!wgR3eTU!Ybn478+`*yAsLvY-# z=b=@4z`5VV1~u*O2MS*#@vHP2ZJxpyZS{|f=~hBB59afA1PqacFU$=|df92z6X>1a zp``UgF7Rc*X2$wc;p>FP-%c$owKDKW%!XS(KhAsz6ezqT>{rQjnpY}UFM>o}cDjlW9wfmWh~%N+--4D zbUhi|TE8BDLY>(kKG>rTR%?rQ75B5>d3NS=Mc13@y0dSN0*Hz*l^1K1XXr`c=fl^? zk9yaaS<{5;EVVG`9hvSw9hV3Z4o(H(AA~}L{%IyA7q71Voed$wf7TC&@yGv~jSD!$ z>n*Ng6&dz$=6!?d!12nB;$(mTJTJmtk6bjvDj(}xWWJU-NN1zyGQ->36>T(Kqa-2s{A{rNIHqbx_{Ot$w#XF1E6Mj? zLX;_Oz<^mW8O@$Wxv(?BjgTPm$g(~6ho8o*fv?sGrrV3RIkHlq5{L?+NNg+Ve!B1O zhQjL+jfL}LuRx5cmbx1a7)a3WhHw6nLu2IdKS!6g~Sc2^}g*hGy!brjJh$vUfvZT-!qkhKj4USD%nUgJ(ZbfuU&V|wQ;pm|r zz!NG;HK!3|Kk`Z+^^v>S5`ds~0%0AW%woevnmkLZ^uVV(4vMTyfvH{h_t*7``aWaz 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 e^~@f)L~z%v>iwOxy|}Z^1~4-Snx4RrVI-#vBS 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/dark-factory/diagrams/img/flow-b-lifecycle-events.png b/docs/dark-factory/diagrams/img/flow-b-lifecycle-events.png new file mode 100644 index 0000000000000000000000000000000000000000..9384d30725c9adbe7cec23e164dcbbb742eec970 GIT binary patch literal 431385 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%0Du9S@L1UL0}v#bgw$I+jr16dfiyT(?DEn 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

    =fAfiRlSp%_{`M)qyOP1J zV)g#(j*+`36_;K`$f@b@vIwg8YkV=z9y5e!`r5A)h@@(FTw9(p{8)^Xa}4QxYWdjB za?MhX)-(e4nECsG$A$6VXq=0IHfPmX@GSmouBanCIA0$reCPN)2w!VavZ+TENXIpL zLaZNfesk*X6}uc00}rEoZ~JT;lwZ(9qL}Y+SbzTHMb)hCpG-y{?7CU z+sOqUo(mUvs7verMHJC*Xx6Oi*fSw7$lPdU7x>crVrqnc{4$inE31e!<|w^+Iu$LScm5 zTpKDTW>r4q6NRa>=NjWz%IBk4WVIWN1OnbmsqU(Lq3 zBo5%s*yFBc9BLT9sTxlvz5NlrO5Q4|XoD<{oGhVpz8|Cn{sP9T*raKmjAA*a8KscZ z1NN{9lz;x}c>H{8vslMn^w%fX6#Ui>7`q^)c9-?T(`7NJ6;0tTY>%nq|Gy8}!or0o z=%FW;&h-*gSvwz-M>zKD>;AUIu5&Al9i!H<`S$*zhIjHPzB)yA{Yvv-SPQPaI6_+% z+UIBJQuu)s_l0H|TN?B7)0z8Me7$mg%4|z>^&oY=PM@PZvMVhX08=RfK7yt<6$HxG zi?cPR6z^Cz^GfxWKWtm^G_h2bDVnXUma-sA39c4-Z5WeIwp48Np7ORhkw#zzsNj(< zSTi0>I6w?U1wt?@6qbMlpU&?zhr=I((JF?{%D#ez3b&JTu!y@3t7bj7grY;5!=Q2kZP3a{HXjSL9+xi6b~^IZ~d z^t@s9K=7PN%_AoR$z2Ohx$E~9Hh(RJYN;&A<_T(Dy%5~ftn|03HxR;aek)2|k@`nG zX4L~9GD|INO;4;gb${*mI&b5Qw$4DBmM#_2iLc^$ZR5T=L7MW63};dXBt)U>d{;f# z{`yqbman9^)RcW9Fvb8Lj4wju;&r0c^cs^hC!H6)vhsg;y9)HRE*!dghUnVNI3{~% z_sH&Yd0vFR*os-tmYLq|*^{RCg^uWeU9Obn4++Hw5rrcnJU?`1y!1=}HTrpk2ukm@ zMj;?HoE=Xqr*w6E&@9rZj=T|T@MAL|kM9I%mUw;C(SFi!1u=E6AnS?m+z? z+{*(7*!ub1dLip3Up(%Y{$>po={eW`6B@T zT*D{cy!q#cFi0G93%t;6Q)=Zwuk;0-sxM9kJ9eC~^L!LO!g9fS@f*_(a{`FpCVgK? z$`Gv_dNOoJ3Gd-zy-Um_9;XDavW7ldQ892BFT}BYdZ+T78W+1GP|*JI&a~C9%?BO7 zON!!0@73Sfvo|5U7~gbFJhE*eKeqZ4uT|4kdXzNG0aiGf3M0|UHGYL?=bu%^o;Cb; zZ%35CEoC#eppg){95=IIVVAMrL`lkuja=x^%V} zlhKSlCPDdPrx;U%L~YbFei_Nbe(@IXiZ{Muh)#vfIv$4-zo1mS_EGBl;im)pY^5fj7lb|V(f|{*dtk(>9CXKc9*~lE(0O4 zitUsL4ut}aZ};{Bo~km_HLnnsZG^AqKXvY`cY^TGNnq;y*QZ+irb?4<^{oypxRYoR zZ?~2K`N6$dwA<^a%bV;8p%j0t@V=YrNt3&iSD@kVBoF%5BK_RAYSF!?f(%bX|KjC!JT#{&~H}b<* z<-DSvC?&7N19wBu!0{+usOIc5+2+ubxe+;n8ABO|JA+FC*w)dn6#h6_hx4k1Q1@lL87N#@Q_BAyhn8*ZgJz=0)m8bI_c8aW%R* zEr@$k)py4dOe1saI$c@S($^B z0T1`~4Yf8~7f&G8yEHfSH@3s;#{X~N_CHS^ek5-j*(^S?rpKBk8|K}-yJ-FOUf5-T zM!nkzl*4X;zn5pmr_+_GD(9Rc;oAl`7)F93a~3 z_K?%Zbn5qrr4Jr*>v2d*H9VU&_24A{BOL8k{_LNDo3<58Jh`5wVG&lQm#hshFeR}MxW>glMvj~lY9EiI)tmF zTG*|1=0@e~_#cMYmVxC7^stVC6}sV=p`fMI9$;Ii?b2D;orc+OL%I5S26bb<7@K)& z`YBq0)-5<49K4=pbkTWtUERLC@i68}%b`b#;P$qavNsu&9MDnErz|P<%3Zy5LbL51 zPOpM9yU<{2N!UueqA*ccUnI>lOQg>`rm#FWhQuUzJR z{&{;fgDsi^A<^!A%mH0?wAg-eH}O_^h(%$e-1n_mM1e@Lfen|G$i)R$9MnXCr zXf8VZ0wP(m7kUH8y5;0O9dmULti%UZNQ$1O_3rHBAhYZHF20kVOOG#nU9L4>T2dS6 z?p?JUUF&=9q6&6vx$I7T2iXXy^VcotGWUT$eN_BiUKCiF5mBPjd8h8El*O|=H)vzS z0UFvW)_&})G9wg{bohYNJng&fULL1EL2;+%Gw{%U$ticIRnD`u&aR&~7;;iF&uEXC zBE3{Dn+u@$0!iRr3jA%?`e|Nf$g66{r^K?A1Ve|h%Exam;{O%o8RTj@O12X9ZVfI7 zks;K73&zizwDgO*UIL|encBEVYD*saU1IJeKP-amBOmhQ)PWS<1ure#ONF}QKpfBwWI&OpnAsE z5{dz$22+Oz4>qIA?WR!k;9%YIFxkSJ=l`XPPM|`2bb(u}xoNyWhjxLyL-ZIPeJ92P zt!QQm(7*d+5otTGJOde_JU<1( zlJ?PI2tWQR6VInXz$=l|UuDpvv42fGe80YimFfR@;;8^lP&b}XHc}s_{wL;p9S0o| z<`gOu-l=bw{nHoo0W~V1VO3zMJN{?KStvL4d(PQH;Sk9Kz!i~8uSI+zspqRLvd`Zk zXfRqK13&1B;LKa=V>{i(`{~oJznUIeo-|e7AdI{R-O?8>?gd_v>mFIlJu?J5i`W^n zg*rpYyw9`8@v(*8KE9-X)je2Bozpd~ApR{5 zSrKXa_k`b+5(vpt%_#ScYUc?gpzKfYI&Ze0gEtHQDK$wx-q6~d!=yhK$CBDmfwkvR zsQfpOyx-6-ws^M_j(?l>R{2KqDXRe~n3Pq!e=<(hXkd8m4?ght07CM+Q zLi}dEyjNWepc_yjm#5BJR6m*4NBBSWvCP1#P)+PSn>>}ry=t)Ao27PTS~}t&M-)=& zlek$(YcyaSRHb_|6|RS9pz9xG12}X-&dJBer^d3wd8)S`pKp$8aBtxe9~7Od8>gjK z)gmbl0ub8lpy2<1;2=7R+vUS>+9BF#ZLQ8i*sCoIm5FtV4tc4fhi#65o&(4Uj0Bl1 z_5#*2G)a7xB^y`o6#YARz;8ditU_+X-lDs6{ld3cp&t?V+}d`@dj7DoyQTG{{8{k^ zBe-abUttLpl|rg5Z0GqL`5bg8BA;iXXD?&q}P@o?Y65558 z8fdSyTR+<-0UfO8hPLN7*rxr3ZbfM@5p{7QP>v6|jQZkb$m!%W%&LbH``$C3=3H zW&4ttsF};Hqad!S6g7L%n&Jn4mlKwIdF{`>=#8EYu>>#GTs@xFoXSecGfjd12NKS@HyxnG$U?)tUTm38I_gmYCgM2l7rlF zlADVsQ1E1UDosq>?^#`&h6SO-127@F>M~fbVz!l%PilAS;nPuAIAo}e^d(l0e&kR9 zDLMjf1g9NO5BmRVVO}GWRF@p~Zok$$arrEz? zF)+&&?g_|=Zwh0L$xX|?l>_TrGUTTIj`=-UIbfqR#Vf2oUKSU8?bSQe!VK4(Fe-DN zuskLaD*`T>pNrJ-52LkWV~x8bM4f9k%*C!K0;Uv?C;2vO1ztWcw{qiNv}!so*t|H< z>*VVhY7rTIY3gM9$>L=*NqM$T@K|OuTT7zr8{6I{m4{t-e6A8_l5<@amN?kNq=Wqw zdqh$vt0|bPq_v3?ZM~%SEYsWjFF5u3V_Rkdj#J=Q6K?a!xcGU78l+j2mCgCD+gEtM zsIZH5mXn{x^*5FW{F*-Z5+#H$2el6tTyXlRKdU*VKw&fVz}xA7#dp zV*rIQa=+P(?1gO4p1!>%e_h$lN8yma?akb!nOW}*`coRZd-Cz?7UC^9cpSSQyhHa~ z9#-y%Qt!r$6nXFV^CoAq)AIDC$W2z2+N69I`A8$1P5G&bw+?kz4*%?_el9iB*|wIr z@1vaoPLdsO+3uOR*hp zq=r&wv$}5dqQ|;vu+!8RElR1_hjOAbgV9_TX0}4+r|ToPvTWKMY~*&nue8K-$hVnP zzuMq8A{aKiBQ)QB>$pGGu)bUgeD`Vh)6C9#KyGfi$gTFP*%58^3Tc&<*DT_4bR{yU z(2sx7O}C13T5~*+HbEV$@+eo(F5;Wt{h;TzrP+I|xjbwF<>LsALCbx9ghP``7-ml$ z_70N-RhcjC)$Uk`_UI2l4W@SlL5oCu-D3%Z7b9{suM3B%$1w3r(&~Sc@?8O4M)8Xq z+~&m14{v-sYaYbZ%wa2oc!r5cN>F;bdH4h1IKzI$;~NUDlkk^J7~33+Pp`uL_qk$! zDS~9GCfK5^V4N2mcnBf#h=g~BUe>n9TAEK$Y%wMq!sE=t3sD1M5B7g|YEt}^@T&>b zB@cVMrexJhc(^jbD74~#3xUd)UsY*-Ftoo+H=RVIXCt`f9eRhy^m%Zzj%Z$qtPIvDd~>k7%(k1LF=|2mcZ4a>V~ zGgc?bHid$88tkvb0teq$?ZnM?!Y# z*TGIeJ6KP~{Pw4_SAmq)ey$aJY6c41TK>u`Knzxl`F``k{ zg6a|Nn_)}7wXJ>ZXI|WvAflJ|f+4k*eBO5agW2Ox_c$RI)e&7xp-N#SMyWkWhx{cF zeL6mZA3e@3;P%$F3dkAAy>+gzt^h8RJdLVVT9BOxu@c9xEgQ;iW-apD4NTEhXp|&Q znnF^~uj1rd!~)HpeCg0nHRy+C&6fgNn}k_1P1XViL|B}3bR6Wm$v91z_%j_toN0IDqJFGFqfdhgeKrqUQJtnOpozK$rDM2PoP;- z(A}FX^}9MjBiUuvAfdaJgFr1SeVN>kE3q{**km>(Avz~WQTS1c!^h`cIU>zR>kXZF z^R0a}p~d^5AYj>{ebo^~2FpZSrFDJC@u{SKT-$T%znuw3xng(iz(LuZwVW`MF>_++ zg=Up~F);NdSx<)1sf$@H>sc+^a|`ROw@sUGRNAhpD?^UdWEKM*H-i?+nEwu$sdK!7 z#a}wkY@|FW&ukml7{gXEN*#ig+@qFpv1`kh0N6uXj6jkZ<=rV8td zBiM_z(S7&5AES$Kq*DG>mpR0yr~FCN*1=fl;MBtoR)zz1(`6fVY6;qYn7Z97$u<`P zin)f^2|2Bok5^U)LF zQf9fO(*keWYIP;$wM}a{RtHpicNMwo9+y*h=vZiJ?>#5^^Yo3`$HC3w&S58G2WF6q zOu5b_hOcMqahH`JyZR7ky$;5D1o^lBRR(L<4gXLQG=$zpUbJz96qlK4*0M<1@>Mg80!bU6ppFx;E_ zUy>^>UAElny#qjRE@xFN;yW%a>iHcei@<_3^l;GA$IngICQIe7d|pO=Ia-Qkf+A2K zYV5r$rO?MSu+?=wg4X`K{UWC^e&VvB7;97u*HZ!OzgV?xix?u?I6oBpe5z#r$4kE? zovkQmB~qU96$SWGW(CyZ>h0<2_#z4hbEM<9ADt|v}!(90x9?TQBQo|TgaI&PwPC5gtz7Y3D6I!NErA5;I zDBDLEAYt|7LGRPgQOwVw=1r~@OZ&_uv=U$F#3gd1omPa=E zdl{FiD{O28t#H|aL+lCz^Wb|^TCgD$^^&wd*eJ^_udER3{Oo&s*n4h#Wd0XW->AyW zL1oFo^Y>JF=Qr^MBav*T&&=vFHOhReLx065TX5{b+iJXzQB5P_qMJ=0b0P&f*VP2B zXo3}!Goht8hTIbIGPBmch^e>THq4bH6hoyBzWxgN_&>FO4BMHnpDBn}ATF-qgaqIWI?d<^n6%E$8Ez^KRC%lbZ5qvyzsGkifdOirogFdoT?I#x>1jQG-+U2M4RYc?W~w`U2OHF7uO*zylYwf*SB{@}?DMqLRmvr<`|Yc7MQ>)5ApY)&6_ugr9K&{*>0iMq=c z!J7vpgBnhyR(r-Ttm^WEUlL2pL<5ybezAu#*xI*8W_<4rbf&WTCiW6) z@ecaA6PbrVJ0G;5rbmDG&VKSFk!*(*Ay-xbyJTda;hwCih1&L!;k)b^Z6osHNaK+p zzw(Hilrv*Z_ck`mD?e6BN-Ip__` zJ^KS9U5SAj9c+6%p(xVfB<2rX68K-6ht*YiO-n<+go>Qj9~XGy!gc^`FeihZqh-r?o0o4HGm zAr!spdFan*k{Lh=3sU_QX&vULTfDjMm7|;jnEq5PE0sg4`R1W*xj_>)34gU<93?5a zY*gz+-(xa`<1IsT4iht0FH3HJ@BHnVbINS%VOXF~W~msUX=8!TDc?dIM4ARLm{o0R zk1}X{`x>Jpq@Q9ql02B=`nn^rzH8w94L@Y*IC{t@S@;fOfi3Zp4C@Fzk3Qj4RiPrzQM5#NIsan=??vZs@ytt`(g z+MNz1*9T{8vY=czZVf%bCW{>)*oDW*K&nR5JcrFYW!0uD2k!@L{~V3YFEALaT(wr1 z%?V2&=wR0^(7PwKOT|vJ;b)Nh+@Q5mmfDFX3VS6h7$E2aKiCxkD zgAJK?+b{n~`|saaF?JWbAq3XPv$)_Ily`aJz#cXzjCd$lvGBYh12I_!Vdye-l63DBeN>UE(h9ZcFy)b?;{xWjPrepDY9}(o(qs>e;(zbNuDtfK z7YhEm6eFV}X)T)TMY}|_3f$WCY*R{3TYUZM=^c9L>E>yGky<}{%4-1wtbKvrd!rvF zyXjKzV*iT)NK$_BM0bNmGkXk{S5N62jJf=oJ$bqIaK05#?oaN!6rs}11a}X&J47U` zD=k2AVSH~olvm}1z-K`e3e2-pIDT3OfsaAb-k?(+sciMp%F+}?)OU`bfz<&+>Fnv2 z0eSA*xpzvPuVl!Xl?L|kF9HMikl9qn6Vq>VOR^u$zh9LCm}Bz{vXS)kD( zbRshRnmlKY==gq`M1vDJ*aaJ7B>X__mzQIn|L_OKvON+2d19QH>6X+=`Ov@@IG1Um z%op23x!{Rf-J~n+-@ZWcrT=yaVSEO(0m>YNyHG~p(jo)4-m$iKi^8xBC^3QyPqNivx$*0yYUj4eZJ z_lhwnyp-crsM?mp-#GtJ+vA#3xn+k_Wrjokb=a6*X!&k__ct?K6fSX;^q&A}W33kf z*$CZR(6q|^E%F#MfNvBp{eF{%v_Iy&o6rvTI7pBmQ>GNVuB)|$?($l4Z?xFn0k%NE zJvFJU4gpHMhTGaMx8jJp|zzacJdddPT+jEBn(0AMn3oIoH#{0_2|GnYICZ2b=|`D6?8BiQ4Rc8?*?95;9G4eY09hIeN5L*CD-K)o50RoXu) zLyBQ!=hH^UG|=mwsDhQ-OxyYiP`CXc7#wu;QBvjm-XI_4q84b@!C&Px8Z?O&U>+fB zS$2F16+-5P>R|FmLgupNHgJujH(xSKX^Zk-&Qu97iy_oM*|Cc((yC=<&roLgmc0Sr^`7HyQQkib zGQ_u^opo>9PEO|0s?_WpY*^Hxp8wW@4+n=R%=J6gWuWNLmY%Xr8l zpn2+)Uyemz*i?e8b#_4hMOMg9K%hdB^#n{<@(SIWaN#yQ>7Hp_+X74N@+7iPQ`V%f zZ_^A#D+Btw3QT^UG$8I7=w@4VQ6rOoa9s5Urt_8OdwCUl*;cp$qQ7O1jU9Fj?~M-1 z-V*-X%B6+ID+*|uwRqUBk2ZAO2bNh&?vmj;gQgOsKleCMOk%eeYPs<>@vMC?Ft6fN zZpmdo_yIua0Z#}-V`v)sef?{g!Y$PQ#6YMYyu{}fWJe)-!w7ue1V&$h_v_-V#UEXv z;POdL^}(yqTtQ7Z-sE8yL=TCqI9Oa?kBg+MK#9bs>oKR6j93u|UTAazTUj7!cgIt8 zi~Hg3mZ_#?6on5Rh2Uz;*{UT=mpSigiF|{-VvWOelrGe5`g_7~;IWKmCcJ>H=TG++ zEVuA@+AhN{WEg)^<=qt_ypu-EZ^poohnd#grMx$T>{Fq-@sCxK za(y<`=i(Y7i4M1=kF~g?COR{dj2D|EU!`?_cEpJ7q;9(N^WT^o}aS6?z-^>q;36Im)#WX z^2gw#m5kDCqgNR+6n{M9>*_+4zeyo6uP4Gp^1dFvnoS+WIpP3*iv08{{U|xRPnQb{ z{PcjLChW|qkL|`8>+@y0B+7MNv?+39Ma!Cw6N%*q<^#`#e-~|N7GUnK49(3A4U@kX zZA_5RZ%=ZF$hmq0EbGnC?%L!u7Kc=daUP#`-uMmwDGPLY^e+&UX>4hYU%g!U35rfz z`LN5U{_-7Go#+ck?mL8Eq!d$r!R-Lamwf*?Kc1_r>(`02)#uVkiD(l}riHSxG#CZh z%keVOHTgC8XI54=5VYa+T;zLLfvG{+jZn6&)ZryQ$Zvx*QQ424S}N z@vy+dRc5A)u5Ma#CV+$XsK-Dk^9%lZ{X~vMV+(SRbK6mOkSoSmdZzt*s`&IF!AefZ zGEuYF9H6_lv2mSxu_2_+C}o?i8$W0rGJI*9-sJ!5X|H|Lq+hW5V%oaGcBHE40`AV5 ztEY86p#yI~1I+8n5(A6xCdAZJB!}3!Ou+QH*R~TTX@P#JiFh{4Lc`mNa0?;_ipr5te>p=}(Lt zSS#_h+jhIR%*9m$5k~P3VpVHld-$m=iRThkX}sIA|}$+L#OfYZ8}R zE-lL0!O#7K+vyyvz=HH|#q_zTR#y-%(r_fGd3mxkorC?OHFIH8*CzB>kx|f{As13N z3B-0@h%|5<76O+>x@NmZO2T-1H_QD)%ikF99HZ*pcy9YFbl{%;3QBvSHN~5~aUkp8 zh`IjYERnBBvEpQV?!ANxF{E=9VEtELC7rVbi92JA(SH!t)3czpD_2|QG#tox+k2QK zdp~LB;lMA4GMBPE-kbL3jw)&bpthQ;$X8FJ~!9(EN74zUg-5&ThcC!-2E zQ0Jq}O)Z%w8bp8#=j*R{QUu?n2u>~5 z!C24$WkWVlY4b3SZjCaIskpCl(#QTqVK=TM&jaC_Wc@U3imXvlm6u5FKC<;#Vd`SD z12Zi~c8E2lJZZ$7@I#Ti_Mr-YAbQij7gZECcIZ+Afo2sA$sK0^LZCDQx(q`3T#q;t z9?7N2%V)>82drT?lU%=&JuQ$7)s z!7A&e1clw)x;94@VnN{n1zj8!d|z5@B!&rE(yQWqN?RhPSeGYx$KF6DNEdp#n&$7K zm)b6>djSb*kv62cHMH_tgVnt1`Zi(DX}WVCv;&ThF_E` zLPT$0$yXAXxqUEW=J5(GB4P$#r$y_6pPwvqYMlNh3?kl+xxzuR>^YOKI=?g7>U@2( zDoHp4edPSt+md`KA)BI z`&`&n5do0Pw0=1-CF~-FBOb8&bZTeE73~SQOGwZ{`%SWpz>oMC*&;+it7L+Kx1%=f zA^pZnvv4~uR8XfJpGj5b^o_Gkg$KqWy*~(|YL|RqS2sp7M#=dbG|gl zi!r24MJOvKixok05)jMq>jC-l*v`aRdWz0I_Y`&E)ou~JqN%#UO_=UWtI|w#g;?k7 zTQyc%#^IpyjKV?bfeuqx4bLT))m&r2Fe_?8wPNWUs^zbf#rD+b{>z(`IGD97Vdyor zOizvVVIeTrYH5!t3jF5+3o|^zDTP~)5}vroAX*;N%$V_9Ozi~Got)Fp8KSasG*q{K za4;D=ps*@Uv}g;qR(D^Y2^rLVJSU$Y13pLv^BZCxx7c>iAE-TpArTd`yq;|v?4YUX z2?B39`l&mqSyb68^|aUkt4Cdh@{oMjzOTTfEuUz`%^!vzeNv=AEg{qkGORB*cMNZ# ziNParE#!&mA+yV8k_WwN#;_bSTTu|@gVEvUso>$tgaOk&0>++ZDJLYCg}Kz#YvsNC zGHid_-Mpn``JIee#-#QEfoS2!c)7@F+|6z5kt`hBxv7ogidh6IyOT3YRi=W7+peG; zd++*>P&Iu0yoCQrPG&9opgypn%xOEPTO@}4Nq^E}{(CZ6V;+Oua>t0@jPZ8V$yTf@ zDGowaX9YMjwdTslU+KroX$t8|?ZVmp+b#D2;@JllPAe%IwMbf$Ay`p4fAK_$T1Gij z+PX0R{13*iPS5F`AxFxiU!L8~ZVa`1A8~hoM;Fjy6Rmy3^R1g4QSqk@+Hj@oN!;El ze|0@kvkM){2i+r66FCst=<+q);jfr=EJcnvI%c^7)2-7mv2GuiaA(seX>t|^#XPYDn1BL@ zKYQ|Y?9a$P<`;xEr!s}uy`wcPdV>b%RXBB>8wS@PE`x)wfsGL^93m8?sBK9mwt>6R1Hd5*!?Vwb76g!q_-{3gD5qc+)_!ip*wYPl3| zXIN^*sQH`5ZtpLinr?aZp6z?+&0LKA4~=B;f{@1fT|Xq)>N}|Q5czSypm*r97n|x_ z{BW!1&vyu)7k60r0aL?Lo19FtsTW)-=cJ8n4i83A`pk#E$Ogb~S9zuyw^7l+4J#;$ z*brNE(PuFyo;s$J_kN+HIfqdzoFZ&AB&W37Af8R%GnXOn&922eJggPZ%!UTKmRX$` z2Sx@n<14x$6i-3wPKxyv)(9bQ&cV)5NRjyN1tm9pTT2QA@ z-N7yJGk)MvwBOX1*w#mgM1?3rs><5T*8-@l!_Gy&dSqq!mB4v$D1F+=6Srw;H!dNP zw@m(<0FR>+!R<_On9K1{_@mt*@u5oUtL@9i7h?yEyJm8%bD¸#arOuc+3+V^38 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